• Bug#1107839: marked as done (unblock: cifs-utils/2:7.4-1) (5/6)

    From Debian Bug Tracking System@21:1/5 to All on Sun Jun 15 22:20:01 2025
    [continued from previous message]

    -## (We might end up doing this anyway to support other compilers.)
    -## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like
    -## -MM, not -M (despite what the docs say). Also, it might not be
    -## supported by the other compilers which use the 'gcc' depmode.
    -## - Using -M directly means running the compiler twice (even worse
    -## than renaming).
    - if test -z "$gccflag"; then
    - gccflag=-MD,
    - fi
    - "$@" -Wp,"$gccflag$tmpdepfile"
    - stat=$?
    - if test $stat -ne 0; then
    - rm -f "$tmpdepfile"
    - exit $stat
    - fi
    - rm -f "$depfile"
    - echo "$object : \\" > "$depfile"
    - # The second -e expression handles DOS-style file names with drive
    - # letters.
    - sed -e 's/^[^:]*: / /' \
    - -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile"
    -## This next piece of magic avoids the "deleted header file" problem.
    -## The problem is that when a header file which appears in a .P file
    -## is deleted, the dependency causes make to die (because there is
    -## typically no way to rebuild the header). We avoid this by adding
    -## dummy dependencies for each header file. Too bad gcc doesn't do
    -## this for us directly.
    -## Some versions of gcc put a space before the ':'. On the theory
    -## that the space means something, we add a space to the output as
    -## well. hp depmode also adds that space, but also prefixes the VPATH
    -## to the object. Take care to not repeat it in the output.
    -## Some versions of the HPUX 10.20 sed can't process this invocation
    -## correctly. Breaking it into two sed invocations is a workaround.
    - tr ' ' "$nl" < "$tmpdepfile" \
    - | sed -e 's/^\\$//' -e '/^$/d' -e "s|.*$object$||" -e '/:$/d' \
    - | sed -e 's/$/ :/' >> "$depfile"
    - rm -f "$tmpdepfile"
    - ;;
    -
    -hp)
    - # This case exists only to let depend.m4 do its work. It works by
    - # looking at the text of this script. This case will never be run,
    - # since it is checked for above.
    - exit 1
    - ;;
    -
    -sgi)
    - if test "$libtool" = yes; then
    - "$@" "-Wp,-MDupdate,$tmpdepfile"
    - else
    - "$@" -MDupdate "$tmpdepfile"
    - fi
    - stat=$?
    - if test $stat -ne 0; then
    - rm -f "$tmpdepfile"
    - exit $stat
    - fi
    - rm -f "$depfile"
    -
    - if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files - echo "$object : \\" > "$depfile"
    - # Clip off the initial element (the dependent). Don't try to be
    - # clever and replace this with sed code, as IRIX sed won't handle
    - # lines with more than a fixed number of characters (4096 in
    - # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines;
    - # the IRIX cc adds comments like '#:fec' to the end of the
    - # dependency line.
    - tr ' ' "$nl" < "$tmpdepfile" \
    - | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' \
    - | tr "$nl" ' ' >> "$depfile"
    - echo >> "$depfile"
    - # The second pass generates a dummy entry for each header file.
    - tr ' ' "$nl" < "$tmpdepfile" \
    - | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \
    - >> "$depfile"
    - else
    - make_dummy_depfile
    - fi
    - rm -f "$tmpdepfile"
    - ;;
    -
    -xlc)
    - # This case exists only to let depend.m4 do its work. It works by
    - # looking at the text of this script. This case will never be run,
    - # since it is checked for above.
    - exit 1
    - ;;
    -
    -aix)
    - # The C for AIX Compiler uses -M and outputs the dependencies
    - # in a .u file. In older versions, this file always lives in the
    - # current directory. Also, the AIX compiler puts '$object:' at the
    - # start of each line; $object doesn't have directory information.
    - # Version 6 uses the directory in both cases.
    - set_dir_from "$object"
    - set_base_from "$object"
    - if test "$libtool" = yes; then
    - tmpdepfile1=$dir$base.u
    - tmpdepfile2=$base.u
    - tmpdepfile3=$dir.libs/$base.u
    - "$@" -Wc,-M
    - else
    - tmpdepfile1=$dir$base.u
    - tmpdepfile2=$dir$base.u
    - tmpdepfile3=$dir$base.u
    - "$@" -M
    - fi
    - stat=$?
    - if test $stat -ne 0; then
    - rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
    - exit $stat
    - fi
    -
    - for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
    - do
    - test -f "$tmpdepfile" && break
    - done
    - aix_post_process_depfile
    - ;;
    -
    -tcc)
    - # tcc (Tiny C Compiler) understand '-MD -MF file' since version 0.9.26
    - # FIXME: That version still under development at the moment of writing.
    - # Make that this statement remains true also for stable, released
    - # versions.
    - # It will wrap lines (doesn't matter whether long or short) with a
    - # trailing '\', as in:
    - #
    - # foo.o : \
    - # foo.c \
    - # foo.h \
    - #
    - # It will put a trailing '\' even on the last line, and will use leading
    - # spaces rather than leading tabs (at least since its commit 0394caf7
    - # "Emit spaces for -MD").
    - "$@" -MD -MF "$tmpdepfile"
    - stat=$?
    - if test $stat -ne 0; then
    - rm -f "$tmpdepfile"
    - exit $stat
    - fi
    - rm -f "$depfile"
    - # Each non-empty line is of the form 'foo.o : \' or ' dep.h \'.
    - # We have to change lines of the first kind to '$object: \'.
    - sed -e "s|.*:|$object :|" < "$tmpdepfile" > "$depfile"
    - # And for each line of the second kind, we have to emit a 'dep.h:'
    - # dummy dependency, to avoid the deleted-header problem.
    - sed -n -e 's|^ *\(.*\) *\\$|\1:|p' < "$tmpdepfile" >> "$depfile"
    - rm -f "$tmpdepfile"
    - ;;
    -
    -## The order of this option in the case statement is important, since the
    -## shell code in configure will try each of these formats in the order
    -## listed in this file. A plain '-MD' option would be understood by many
    -## compilers, so we must ensure this comes after the gcc and icc options. -pgcc)
    - # Portland's C compiler understands '-MD'.
    - # Will always output deps to 'file.d' where file is the root name of the
    - # source file under compilation, even if file resides in a subdirectory.
    - # The object file name does not affect the name of the '.d' file.
    - # pgcc 10.2 will output
    - # foo.o: sub/foo.c sub/foo.h
    - # and will wrap long lines using '\' :
    - # foo.o: sub/foo.c ... \
    - # sub/foo.h ... \
    - # ...
    - set_dir_from "$object"
    - # Use the source, not the object, to determine the base name, since
    - # that's sadly what pgcc will do too.
    - set_base_from "$source"
    - tmpdepfile=$base.d
    -
    - # For projects that build the same source file twice into different object
    - # files, the pgcc approach of using the *source* file root name can cause
    - # problems in parallel builds. Use a locking strategy to avoid stomping on - # the same $tmpdepfile.
    - lockdir=$base.d-lock
    - trap "
    - echo '$0: caught signal, cleaning up...' >&2
    - rmdir '$lockdir'
    - exit 1
    - " 1 2 13 15
    - numtries=100
    - i=$numtries
    - while test $i -gt 0; do
    - # mkdir is a portable test-and-set.
    - if mkdir "$lockdir" 2>/dev/null; then
    - # This process acquired the lock.
    - "$@" -MD
    - stat=$?
    - # Release the lock.
    - rmdir "$lockdir"
    - break
    - else
    - # If the lock is being held by a different process, wait
    - # until the winning process is done or we timeout.
    - while test -d "$lockdir" && test $i -gt 0; do
    - sleep 1
    - i=`expr $i - 1`
    - done
    - fi
    - i=`expr $i - 1`
    - done
    - trap - 1 2 13 15
    - if test $i -le 0; then
    - echo "$0: failed to acquire lock after $numtries attempts" >&2
    - echo "$0: check lockdir '$lockdir'" >&2
    - exit 1
    - fi
    -
    - if test $stat -ne 0; then
    - rm -f "$tmpdepfile"
    - exit $stat
    - fi
    - rm -f "$depfile"
    - # Each line is of the form `foo.o: dependent.h',
    - # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'.
    - # Do two passes, one to just change these to
    - # `$object: dependent.h' and one to simply `dependent.h:'.
    - sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile"
    - # Some versions of the HPUX 10.20 sed can't process this invocation
    - # correctly. Breaking it into two sed invocations is a workaround.
    - sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" \
    - | sed -e 's/$/ :/' >> "$depfile"
    - rm -f "$tmpdepfile"
    - ;;
    -
    -hp2)
    - # The "hp" stanza above does not work with aCC (C++) and HP's ia64
    - # compilers, which have integrated preprocessors. The correct option
    - # to use with these is +Maked; it writes dependencies to a file named
    - # 'foo.d', which lands next to the object file, wherever that
    - # happens to be.
    - # Much of this is similar to the tru64 case; see comments there.
    - set_dir_from "$object"
    - set_base_from "$object"
    - if test "$libtool" = yes; then
    - tmpdepfile1=$dir$base.d
    - tmpdepfile2=$dir.libs/$base.d
    - "$@" -Wc,+Maked
    - else
    - tmpdepfile1=$dir$base.d
    - tmpdepfile2=$dir$base.d
    - "$@" +Maked
    - fi
    - stat=$?
    - if test $stat -ne 0; then
    - rm -f "$tmpdepfile1" "$tmpdepfile2"
    - exit $stat
    - fi
    -
    - for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2"
    - do
    - test -f "$tmpdepfile" && break
    - done
    - if test -f "$tmpdepfile"; then
    - sed -e "s,^.*\.[$lower]*:,$object:," "$tmpdepfile" > "$depfile"
    - # Add 'dependent.h:' lines.
    - sed -ne '2,${
    - s/^ *//
    - s/ \\*$//
    - s/$/:/
    - p
    - }' "$tmpdepfile" >> "$depfile"
    - else
    - make_dummy_depfile
    - fi
    - rm -f "$tmpdepfile" "$tmpdepfile2"
    - ;;
    -
    -tru64)
    - # The Tru64 compiler uses -MD to generate dependencies as a side
    - # effect. 'cc -MD -o foo.o ...' puts the dependencies into 'foo.o.d'.
    - # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put
    - # dependencies in 'foo.d' instead, so we check for that too.
    - # Subdirectories are respected.
    - set_dir_from "$object"
    - set_base_from "$object"
    -
    - if test "$libtool" = yes; then
    - # Libtool generates 2 separate objects for the 2 libraries. These
    - # two compilations output dependencies in $dir.libs/$base.o.d and
    - # in $dir$base.o.d. We have to check for both files, because
    - # one of the two compilations can be disabled. We should prefer
    - # $dir$base.o.d over $dir.libs/$base.o.d because the latter is
    - # automatically cleaned when .libs/ is deleted, while ignoring
    - # the former would cause a distcleancheck panic.
    - tmpdepfile1=$dir$base.o.d # libtool 1.5
    - tmpdepfile2=$dir.libs/$base.o.d # Likewise.
    - tmpdepfile3=$dir.libs/$base.d # Compaq CCC V6.2-504
    - "$@" -Wc,-MD
    - else
    - tmpdepfile1=$dir$base.d
    - tmpdepfile2=$dir$base.d
    - tmpdepfile3=$dir$base.d
    - "$@" -MD
    - fi
    -
    - stat=$?
    - if test $stat -ne 0; then
    - rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
    - exit $stat
    - fi
    -
    - for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
    - do
    - test -f "$tmpdepfile" && break
    - done
    - # Same post-processing that is required for AIX mode.
    - aix_post_process_depfile
    - ;;
    -
    -msvc7)
    - if test "$libtool" = yes; then
    - showIncludes=-Wc,-showIncludes
    - else
    - showIncludes=-showIncludes
    - fi
    - "$@" $showIncludes > "$tmpdepfile"
    - stat=$?
    - grep -v '^Note: including file: ' "$tmpdepfile"
    - if test $stat -ne 0; then
    - rm -f "$tmpdepfile"
    - exit $stat
    - fi
    - rm -f "$depfile"
    - echo "$object : \\" > "$depfile"
    - # The first sed program below extracts the file names and escapes
    - # backslashes for cygpath. The second sed program outputs the file
    - # name when reading, but also accumulates all include files in the
    - # hold buffer in order to output them again at the end. This only
    - # works with sed implementations that can handle large buffers.
    - sed < "$tmpdepfile" -n '
    -/^Note: including file: *\(.*\)/ {
    - s//\1/
    - s/\\/\\\\/g
    - p
    -}' | $cygpath_u | sort -u | sed -n '
    -s/ /\\ /g
    -s/\(.*\)/'"$tab"'\1 \\/p
    -s/.\(.*\) \\/\1:/
    -H
    -$ {
    - s/.*/'"$tab"'/
    - G
    - p
    -}' >> "$depfile"
    - echo >> "$depfile" # make sure the fragment doesn't end with a backslash
    - rm -f "$tmpdepfile"
    - ;;
    -
    -msvc7msys)
    - # This case exists only to let depend.m4 do its work. It works by
    - # looking at the text of this script. This case will never be run,
    - # since it is checked for above.
    - exit 1
    - ;;
    -
    -#nosideeffect)
    - # This comment above is used by automake to tell side-effect
    - # dependency tracking mechanisms from slower ones.
    -
    -dashmstdout)
    - # Important note: in order to support this mode, a compiler *must*
    - # always write the preprocessed file to stdout, regardless of -o.
    - "$@" || exit $?
    -
    - # Remove the call to Libtool.
    - if test "$libtool" = yes; then
    - while test "X$1" != 'X--mode=compile'; do
    - shift
    - done
    - shift
    - fi
    -
    - # Remove '-o $object'.
    - IFS=" "
    - for arg
    - do
    - case $arg in
    - -o)
    - shift
    - ;;
    - $object)
    - shift
    - ;;
    - *)
    - set fnord "$@" "$arg"
    - shift # fnord
    - shift # $arg
    - ;;
    - esac
    - done
    -
    - test -z "$dashmflag" && dashmflag=-M
    - # Require at least two characters before searching for ':'
    - # in the target name. This is to cope with DOS-style filenames:
    - # a dependency such as 'c:/foo/bar' could be seen as target 'c' otherwise.
    - "$@" $dashmflag |
    - sed "s|^[$tab ]*[^:$tab ][^:][^:]*:[$tab ]*|$object: |" > "$tmpdepfile"
    - rm -f "$depfile"
    - cat < "$tmpdepfile" > "$depfile"
    - # Some versions of the HPUX 10.20 sed can't process this sed invocation
    - # correctly. Breaking it into two sed invocations is a workaround.
    - tr ' ' "$nl" < "$tmpdepfile" \
    - | sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \
    - | sed -e 's/$/ :/' >> "$depfile"
    - rm -f "$tmpdepfile"
    - ;;
    -
    -dashXmstdout)
    - # This case only exists to satisfy depend.m4. It is never actually
    - # run, as this mode is specially recognized in the preamble.
    - exit 1
    - ;;
    -
    -makedepend)
    - "$@" || exit $?
    - # Remove any Libtool call
    - if test "$libtool" = yes; then
    - while test "X$1" != 'X--mode=compile'; do
    - shift
    - done
    - shift
    - fi
    - # X makedepend
    - shift
    - cleared=no eat=no
    - for arg
    - do
    - case $cleared in
    - no)
    - set ""; shift
    - cleared=yes ;;
    - esac
    - if test $eat = yes; then
    - eat=no
    - continue
    - fi
    - case "$arg" in
    - -D*|-I*)
    - set fnord "$@" "$arg"; shift ;;
    - # Strip any option that makedepend may not understand. Remove
    - # the object too, otherwise makedepend will parse it as a source file.
    - -arch)
    - eat=yes ;;
    - -*|$object)
    - ;;
    - *)
    - set fnord "$@" "$arg"; shift ;;
    - esac
    - done
    - obj_suffix=`echo "$object" | sed 's/^.*\././'`
    - touch "$tmpdepfile"
    - ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@"
    - rm -f "$depfile"
    - # makedepend may prepend the VPATH from the source file name to the object. - # No need to regex-escape $object, excess matching of '.' is harmless.
    - sed "s|^.*\($object *:\)|\1|" "$tmpdepfile" > "$depfile"
    - # Some versions of the HPUX 10.20 sed can't process the last invocation
    - # correctly. Breaking it into two sed invocations is a workaround.
    - sed '1,2d' "$tmpdepfile" \
    - | tr ' ' "$nl" \
    - | sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \
    - | sed -e 's/$/ :/' >> "$depfile"
    - rm -f "$tmpdepfile" "$tmpdepfile".bak
    - ;;
    -
    -cpp)
    - # Important note: in order to support this mode, a compiler *must*
    - # always write the preprocessed file to stdout.
    - "$@" || exit $?
    -
    - # Remove the call to Libtool.
    - if test "$libtool" = yes; then
    - while test "X$1" != 'X--mode=compile'; do
    - shift
    - done
    - shift
    - fi
    -
    - # Remove '-o $object'.
    - IFS=" "
    - for arg
    - do
    - case $arg in
    - -o)
    - shift
    - ;;
    - $object)
    - shift
    - ;;
    - *)
    - set fnord "$@" "$arg"
    - shift # fnord
    - shift # $arg
    - ;;
    - esac
    - done
    -
    - "$@" -E \
    - | sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \
    - -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \
    - | sed '$ s: \\$::' > "$tmpdepfile"
    - rm -f "$depfile"
    - echo "$object : \\" > "$depfile"
    - cat < "$tmpdepfile" >> "$depfile"
    - sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile"
    - rm -f "$tmpdepfile"
    - ;;
    -
    -msvisualcpp)
    - # Important note: in order to support this mode, a compiler *must*
    - # always write the preprocessed file to stdout.
    - "$@" || exit $?
    -
    - # Remove the call to Libtool.
    - if test "$libtool" = yes; then
    - while test "X$1" != 'X--mode=compile'; do
    - shift
    - done
    - shift
    - fi
    -
    - IFS=" "
    - for arg
    - do
    - case "$arg" in
    - -o)
    - shift
    - ;;
    - $object)
    - shift
    - ;;
    - "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI")
    - set fnord "$@"
    - shift
    - shift
    - ;;
    - *)
    - set fnord "$@" "$arg"
    - shift
    - shift
    - ;;
    - esac
    - done
    - "$@" -E 2>/dev/null |
    - sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::\1:p' | $cygpath_u | sort -u > "$tmpdepfile"
    - rm -f "$depfile"
    - echo "$object : \\" > "$depfile"
    - sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::'"$tab"'\1 \\:p' >> "$depfile"
    - echo "$tab" >> "$depfile"
    - sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depfile"
    - rm -f "$tmpdepfile"
    - ;;
    -
    -msvcmsys)
    - # This case exists only to let depend.m4 do its work. It works by
    - # looking at the text of this script. This case will never be run,
    - # since it is checked for above.
    - exit 1
    - ;;
    -
    -none)
    - exec "$@"
    - ;;
    -
    -*)
    - echo "Unknown depmode $depmode" 1>&2
    - exit 1
    - ;;
    -esac
    -
    -exit 0
    -
    -# Local Variables:
    -# mode: shell-script
    -# sh-indentation: 2
    -# eval: (add-hook 'before-save-hook 'time-stamp)
    -# time-stamp-start: "scriptversion="
    -# time-stamp-format: "%:y-%02m-%02d.%02H"
    -# time-stamp-time-zone: "UTC0"
    -# time-stamp-end: "; # UTC"
    -# End:
    diff -Nru cifs-utils-7.3/getcifsacl.c cifs-utils-7.4/getcifsacl.c
    --- cifs-utils-7.3/getcifsacl.c 2025-03-21 02:04:28.000000000 +0300
    +++ cifs-utils-7.4/getcifsacl.c 2025-06-11 02:48:48.000000000 +0300
    @@ -33,6 +33,7 @@
    #include <stdlib.h>
    #include <stddef.h>
    #include <errno.h>
    +#include <libgen.h>
    #include <limits.h>
    #include <ctype.h>
    #include <linux/limits.h>
    diff -Nru cifs-utils-7.3/install-sh cifs-utils-7.4/install-sh
    --- cifs-utils-7.3/install-sh 2025-03-21 02:22:36.000000000 +0300
    +++ cifs-utils-7.4/install-sh 1970-01-01 03:00:00.000000000 +0300
    @@ -1,518 +0,0 @@
    -#!/bin/sh
    -# install - install a program, script, or datafile
    -
    -scriptversion=2018-03-11.20; # UTC
    -
    -# This originates from X11R5 (mit/util/scripts/install.sh), which was
    -# later released in X11R6 (xc/config/util/install.sh) with the
    -# following copyright and license.
    -#
    -# Copyright (C) 1994 X Consortium
    -#
    -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to
    -# deal i