Source: suck
Version: 4.3.5-3
Severity: important
Tags: ftbfs
Justification: FTBFS
X-Debbugs-Cc: ni...@thykier.net
User: ni...@thykier.net
Usertags: rrr-no-as-default-issue

Dear maintainer,

During a test rebuild for building packages with
`Rules-Requires-Root: no` as the default in `dpkg`,
suck failed to rebuild.

Log Summary:
-------------------------------------------------------------------------------
[...]
rpost.c: In function ‘load_phrases’:
rpost.c:1177:25: warning: ignoring return value of ‘fgets’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
 1177 |                         fgets(buf, MAXLINLEN, fpi);
      |                         ^~~~~~~~~~~~~~~~~~~~~~~~~~
gcc -Wl,-z,relro -L/usr/lib/news -Wl,-z,relro -o rpost both.o both_phrases.o rpost.o rpost_phrases.o -lssl
/usr/bin/ld: rpost.o: in function `parse_filter_args':
././rpost.c:885:(.text+0x9e0): warning: the use of `tmpnam' is dangerous, better use `mkstemp' gcc -c -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -DHAVE_LIBSSL -I. -I. -Wdate-time -D_FORTIFY_SOURCE=2 -DHAVE_CONFIG_H -DSUCK_VERSION=\"4.3.5\" testhost.c testhost.c: In function ‘load_phrases’: testhost.c:406:25: warning: ignoring return value of ‘fgets’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
  406 |                         fgets(buf, MAXLINLEN, fpi);
      |                         ^~~~~~~~~~~~~~~~~~~~~~~~~~
gcc -Wl,-z,relro -L/usr/lib/news -Wl,-z,relro -o testhost both.o both_phrases.o testhost.o test_phrases.o -lssl gcc -c -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -DHAVE_LIBSSL -I. -I. -Wdate-time -D_FORTIFY_SOURCE=2 -DHAVE_CONFIG_H -DSUCK_VERSION=\"4.3.5\" lmove.c lmove.c: In function ‘do_lockfile’: lmove.c:673:25: warning: ignoring return value of ‘fscanf’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
  673 |                         fscanf(f_lock, "%ld", &tmp);
      |                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~
lmove.c: In function ‘load_phrases’:
lmove.c:731:25: warning: ignoring return value of ‘fgets’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
  731 |                         fgets(buf, MAXLINLEN, fpi);
      |                         ^~~~~~~~~~~~~~~~~~~~~~~~~~
lmove.c: In function ‘rewrite_active’:
lmove.c:181:27: warning: ‘.old’ directive writing 4 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
  181 |         sprintf(fname, "%s.old", master->active_file);
      |                           ^~~~
In file included from /usr/include/stdio.h:970,
                 from lmove.c:2:
In function ‘sprintf’,
    inlined from ‘rewrite_active’ at lmove.c:181:2:
/usr/include/aarch64-linux-gnu/bits/stdio2.h:30:10: note: ‘__builtin___sprintf_chk’ output between 5 and 4101 bytes into a destination of size 4097
   30 |   return __builtin___sprintf_chk (__s, __USE_FORTIFY_LEVEL - 1,
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   31 |                                   __glibc_objsize (__s), __fmt,
      |                                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   32 |                                   __va_arg_pack ());
      |                                   ~~~~~~~~~~~~~~~~~
lmove.c: In function ‘check_dirs’:
lmove.c:520:51: warning: ‘__builtin___sprintf_chk’ may write a terminating nul past the end of the destination [-Wformat-overflow=] 520 | sprintf(path, "%s/", master->basedir);
      |                                                   ^
In function ‘sprintf’,
    inlined from ‘check_dirs’ at lmove.c:520:5:
/usr/include/aarch64-linux-gnu/bits/stdio2.h:30:10: note: ‘__builtin___sprintf_chk’ output between 2 and 4098 bytes into a destination of size 4097
   30 |   return __builtin___sprintf_chk (__s, __USE_FORTIFY_LEVEL - 1,
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   31 |                                   __glibc_objsize (__s), __fmt,
      |                                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   32 |                                   __va_arg_pack ());
      |                                   ~~~~~~~~~~~~~~~~~
lmove.c: In function ‘do_lockfile’:
lmove.c:669:39: warning: ‘%s’ directive writing 10 bytes into a region of size between 0 and 4096 [-Wformat-overflow=] 669 | sprintf(lockfile, "%s/%s", master->basedir, N_LMOVE_LOCKFILE);
      |                                       ^~
In function ‘sprintf’,
    inlined from ‘do_lockfile’ at lmove.c:669:3:
/usr/include/aarch64-linux-gnu/bits/stdio2.h:30:10: note: ‘__builtin___sprintf_chk’ output between 12 and 4108 bytes into a destination of size 4097
   30 |   return __builtin___sprintf_chk (__s, __USE_FORTIFY_LEVEL - 1,
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   31 |                                   __glibc_objsize (__s), __fmt,
      |                                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   32 |                                   __va_arg_pack ());
      |                                   ~~~~~~~~~~~~~~~~~
gcc -Wl,-z,relro -L/usr/lib/news -Wl,-z,relro -o lmove both.o both_phrases.o lmove.o lmove_phrases.o -lssl
make done
make[1]: Leaving directory '/<<PKGBUILDDIR>>'
   dh_auto_test -O--no-parallel
   create-stamp debian/debhelper-build-stamp
   dh_testroot -O--no-parallel
   dh_prep -O--no-parallel
   dh_installdirs -O--no-parallel
   debian/rules override_dh_auto_install
make[1]: Entering directory '/<<PKGBUILDDIR>>'
/usr/bin/make prefix=/<<PKGBUILDDIR>>/debian/suck/usr install
make[2]: Entering directory '/<<PKGBUILDDIR>>'
mkdir -p /<<PKGBUILDDIR>>/debian/suck/usr/bin
/usr/bin/install -c suck /<<PKGBUILDDIR>>/debian/suck/usr/bin/suck
/usr/bin/install -c rpost /<<PKGBUILDDIR>>/debian/suck/usr/bin/rpost
/usr/bin/install -c testhost /<<PKGBUILDDIR>>/debian/suck/usr/bin/testhost
/usr/bin/install -c lmove /<<PKGBUILDDIR>>/debian/suck/usr/bin/lmove
mkdir -p /<<PKGBUILDDIR>>/debian/suck/usr/share/man/man1
rm -f /<<PKGBUILDDIR>>/debian/suck/usr/share/man/man1/lpost.1
/usr/bin/install -c -m 644 ./man/suck.1 /<<PKGBUILDDIR>>/debian/suck/usr/share/man/man1/suck.1 /usr/bin/install -c -m 644 ./man/rpost.1 /<<PKGBUILDDIR>>/debian/suck/usr/share/man/man1/rpost.1 /usr/bin/install -c -m 644 ./man/testhost.1 /<<PKGBUILDDIR>>/debian/suck/usr/share/man/man1/testhost.1 /usr/bin/install -c -m 644 ./man/lmove.1 /<<PKGBUILDDIR>>/debian/suck/usr/share/man/man1/lmove.1
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[1]: Leaving directory '/<<PKGBUILDDIR>>'
   dh_install -O--no-parallel
   dh_installdocs -O--no-parallel
   dh_installchangelogs -O--no-parallel
   dh_installexamples -O--no-parallel
   dh_installman -O--no-parallel
   dh_installdebconf -O--no-parallel
   dh_installsystemduser -O--no-parallel
   debian/rules override_dh_installlogrotate
make[1]: Entering directory '/<<PKGBUILDDIR>>'
dh_installlogrotate
# logroate 3.8+ requires an additional "su" command which is not
# backportable, see #640493
if dpkg --compare-versions `apt-cache show logrotate | grep ^Version | cut -f2- -d' '` ge 3.8; then \
echo "Fixing logrotate configuration for logrotate >= 3.8..."; \
sed -i '/^}/ i\ su news news' debian/suck/etc/logrotate.d/*; \
fi
Fixing logrotate configuration for logrotate >= 3.8...
make[1]: Leaving directory '/<<PKGBUILDDIR>>'
   dh_perl -O--no-parallel
   dh_link -O--no-parallel
   dh_strip_nondeterminism -O--no-parallel
   dh_compress -O--no-parallel
   debian/rules override_dh_fixperms
make[1]: Entering directory '/<<PKGBUILDDIR>>'
dh_fixperms
chown -R news:news debian/suck/etc/suck debian/suck/var/spool/suck debian/suck/var/log/suck debian/suck/var/lib/suck chown: changing ownership of 'debian/suck/etc/suck/get-news.conf': Operation not permitted chown: changing ownership of 'debian/suck/etc/suck/suckkillfile': Operation not permitted chown: changing ownership of 'debian/suck/etc/suck/sucknewsrc': Operation not permitted
chown: changing ownership of 'debian/suck/etc/suck': Operation not permitted
chown: changing ownership of 'debian/suck/var/spool/suck': Operation not permitted chown: changing ownership of 'debian/suck/var/log/suck': Operation not permitted chown: changing ownership of 'debian/suck/var/lib/suck': Operation not permitted
make[1]: *** [debian/rules:17: override_dh_fixperms] Error 1
make[1]: Leaving directory '/<<PKGBUILDDIR>>'
make: *** [debian/rules:4: binary] Error 2
dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2
--------------------------------------------------------------------------------
Build finished at 2024-11-18T16:20:39Z

-------------------------------------------------------------------------------


The above is just how the build ends and not necessarily the most
relevant part. If required, the full build log is available here:

https://people.debian.org/~nthykier/rrr-no-as-default/logs/1046705.gz

You can find common solutions at
https://people.debian.org/~nthykier/rrr-no-as-default/docs/solutions.md

If this is really a bug in one of the build-depends, please use
reassign and affects, so that this is still visible in the BTS web
page for this package.

If this package is listed in
https://people.debian.org/~nthykier/rrr-no-as-default/docs/static-ownership.list,
then please just set `Rules-Requires-Root: binary-targets` to the source
stanza of `debian/control` as a fix to this bug.

If this package is listed in
https://people.debian.org/~nthykier/rrr-no-as-default/docs/maybe-misbuilds.list,
then the package was deemed at risk for misbuilding (having wrong
ownership) but had a FTBFS problem we tested it. Please test whether the
package works with `Rules-Requires-Root: no` validating that the
resulting deb has the correct ownership for all paths in the deb.

The goal is to have the default changed in `dpkg` either in `Trixie` or
`Forky`, depending on progress and feasibility with the release schedule
for Trixie.

For more information on this bug filing, please see:
https://lists.debian.org/debian-dpkg/2024/11/msg00016.html

Thanks,


PS: The builds were performed in mid-November. If you fixed the problem
between between then and this bug being filed, then please just close
the bug with the version it was fixed in.

Attachment: OpenPGP_signature.asc
Description: OpenPGP digital signature

Reply via email to