[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#1109975: unblock: debianutils/5.23.1 (pre-approval)



Control: tags -1 moreinfo confirmed

On 2025-07-27 13:28:27 +0200, Niels Thykier wrote:
> Niels Thykier:
> > Package: release.debian.org
> > Severity: normal
> > X-Debbugs-Cc: debianutils@packages.debian.org, niels@thykier.net
> > Control: affects -1 + src:debianutils
> > User: release.debian.org@packages.debian.org
> > Usertags: unblock
> > 
> > Please permit the upload of and provide an unblock for the package
> > debianutils.
> > 
> 
> Correction to this unblock request. At request of Bastian Blank (who
> requested the change originally for the Linux team), I have removed the
> message entirely.
> 
> In his view, the standard error message would only have been fine if none of
> the directories existed and we emitted for each missing directory. Removing
> the message entirely was the simpler of the two options, so I went with
> that. Updated diff attached.

Assuming this can be uploaded very soon, please go ahead and remove the
moreinfo tag once the upload is in unstable.

Cheers

> 
> > [ Reason ]
> > In 5.22 (April), `run-parts --list` was changed to no longer fail when
> > given non-existing directories per #1102512 to support the UAPI
> > Configuration Files Spec.
> > 
> > The code replaced a hard error with a warning for this case.
> > Unfortunately, the warning is emitted to `stdout` interleaved with the
> > directories making scripting usage hard.
> > 
> > [ Impact ]
> > For script consumers of `run-parts --list`, then #1102512 might as well
> > not be fixed since it will be difficult to use the change in practice.
> > 
> > However, existing stable users will not be relying on this feature yet
> > anyhow (the change is making `run-parts` more permissive).
> > 
> > For other consumers of `debianutils`, there will be no impact.
> > 
> > [ Tests ]
> > A test case was added to ensure non-existing directories with `run-parts
> > --list` does not emit any output. See `debian/tests/run-parts.test`.
> > 
> > [ Risks ]
> > We believe the risks to be low but it is a change to an `Essential: yes`
> > package. The code change itself is trivial and tested.
> > 
> > [ Checklist ]
> >    [X] all changes are documented in the d/changelog
> >    [X] I reviewed all changes and I approve them
> >    [X] attach debdiff against the package in testing. Note the diff is a
> >    `git diff`, but I will be using `tag2upload`.
> > 
> > [ Other info ]
> > (Anything else the release team should know.)
> > 
> > unblock debianutils/5.23.1
> 

> diff --git a/debian/changelog b/debian/changelog
> index 9587aeb..ba141c6 100644
> --- a/debian/changelog
> +++ b/debian/changelog
> @@ -1,3 +1,12 @@
> +debianutils (5.23.2) unstable; urgency=medium
> +
> +  * run-parts: Remove warning on non-existing
> +    directory with `--list`. It was emitted
> +    to `stdout` and even on `stderr` it would
> +    cause issues. (Closes: #1109705)
> +
> + -- Niels Thykier <niels@thykier.net>  Sun, 27 Jul 2025 11:01:22 +0000
> +
>  debianutils (5.23.1) unstable; urgency=medium
>  
>    * Re-release to fix a few mistakes in 5.23.
> diff --git a/debian/tests/run-parts.test b/debian/tests/run-parts.test
> index 5574526..87d962c 100755
> --- a/debian/tests/run-parts.test
> +++ b/debian/tests/run-parts.test
> @@ -29,6 +29,12 @@ END
>  chmod 755 "${AUTOPKGTEST_TMP}/Run-parts/executable1"
>  cp --archive "${AUTOPKGTEST_TMP}/Run-parts/executable1" "${AUTOPKGTEST_TMP}/Run-parts/executable2"
>  
> +list_missing_path=$("$RUN_PARTS" --list "${AUTOPKGTEST_TMP}/nonexisting" 2>/dev/null)
> +if [ -n "${list_missing_path}" ]; then
> +    echo "Failure! 'run-parts --list .../nonexisting' should return no matches, got: ${list_missing_path}" >&2
> +    exit 1
> +fi
> +
>  list=$("$RUN_PARTS" --list "${AUTOPKGTEST_TMP}/Run-parts")
>  echo "$list"
>  test=$("$RUN_PARTS" --test "${AUTOPKGTEST_TMP}/Run-parts")
> @@ -74,4 +80,4 @@ chmod 755 "${AUTOPKGTEST_TMP}/Run-parts2/executable1"
>  "$RUN_PARTS" -v --exit-on-error "${AUTOPKGTEST_TMP}/Run-parts2" "${AUTOPKGTEST_TMP}/Run-parts" 2>&1
>  
>  # Run-parts3 does not exist, so it is skipped and processing continues
> -"$RUN_PARTS" -v --exit-on-error "${AUTOPKGTEST_TMP}/Run-parts3" "${AUTOPKGTEST_TMP}/Run-parts2" 2>&1
> \ No newline at end of file
> +"$RUN_PARTS" -v --exit-on-error "${AUTOPKGTEST_TMP}/Run-parts3" "${AUTOPKGTEST_TMP}/Run-parts2" 2>&1
> diff --git a/run-parts.c b/run-parts.c
> index 9fce509..294c492 100644
> --- a/run-parts.c
> +++ b/run-parts.c
> @@ -506,7 +506,6 @@ void run_parts(char **dirnames)
>    for (int i = 0; dirnames[i] != NULL; i++) {
>      DIR *dirfd = opendir(dirnames[i]);
>      if (!dirfd) {
> -      printf("run-parts: Skipping \"%s\"; failed to opendir: %s\n", dirnames[i], strerror(errno));
>        continue;
>      }
>      struct dirent *dp;





-- 
Sebastian Ramacher


Reply to: