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

Bug#1089444: marked as done (suck: Supporting rootless builds by default)



Your message dated Sat, 7 Dec 2024 23:13:23 +0100
with message-id <04189029-faea-4401-9a6f-c362d7ea112d@debian.org>
and subject line suck: Supporting rootless builds by default
has caused the Debian Bug report #1089444,
regarding suck: Supporting rootless builds by default
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact owner@bugs.debian.org
immediately.)


-- 
1089444: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1089444
Debian Bug Tracking System
Contact owner@bugs.debian.org with problems
--- Begin Message ---
Source: suck
Version: 4.3.5-3
Severity: important
Tags: ftbfs
Justification: FTBFS
X-Debbugs-Cc: niels@thykier.net
User: niels@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


--- End Message ---
--- Begin Message ---
Version: 4.3.5-4

I fixed this one this afternoon, since it's orphaned.

Thanks a lot.

--- End Message ---

Reply to: