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: [email protected], [email protected] > > Control: affects -1 + src:debianutils > > User: [email protected] > > 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 <[email protected]> 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

