[Pkg-tcltk-devel] Bug#1089480: xotcl: Supporting rootless builds by default

Niels Thykier niels at thykier.net
Sat Dec 7 21:10:33 GMT 2024


Source: xotcl
Version: 1.6.8-5
Severity: important
Tags: ftbfs
Justification: FTBFS
X-Debbugs-Cc: niels at thykier.net
User: niels at 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`,
xotcl failed to rebuild.

Log Summary:
-------------------------------------------------------------------------------
[...]
rm -f libxotclexpat0.9.so
aarch64-linux-gnu-gcc -shared -g -O2 
-Werror=implicit-function-declaration 
-ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong 
-fstack-clash-protection -Wformat -Werror=format-security 
-mbranch-protection=standard -pipe -O2 -fomit-frame-pointer -DNDEBUG 
-Wall -fPIC -Wdate-time -D_FORTIFY_SOURCE=2 -Wl,-z,relro 
-Wl,--export-dynamic  -o libxotclexpat0.9.so tclexpat.o -lexpat 
-L/<<PKGBUILDDIR>> -lxotclstub1.6.8  -L/usr/lib/aarch64-linux-gnu 
-ltclstub8.6 : libxotclexpat0.9.so
( echo pkg_mkIndex . libxotclexpat0.9.so \; exit; ) | TCL_LIBRARY=`echo 
/usr/include/tcl8.6/tcl-private/library` LD_LIBRARY_PATH=".:/usr/lib:" 
PATH=".:/usr/lib:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" 
TCLLIBPATH="." /usr/bin/tclsh8.6
make[2]: Leaving directory '/<<PKGBUILDDIR>>/library/xml/TclExpat-1.1'
make[2]: Entering directory '/<<PKGBUILDDIR>>/library/store/XOTclSdbm'
make[2]: Nothing to be done for 'libraries'.
make[2]: Leaving directory '/<<PKGBUILDDIR>>/library/store/XOTclSdbm'
make[2]: Entering directory '/<<PKGBUILDDIR>>/library/xml/TclExpat-1.1'
make[2]: Nothing to be done for 'libraries'.
make[2]: Leaving directory '/<<PKGBUILDDIR>>/library/xml/TclExpat-1.1'
XOTcl Documentation Tool
------------------------
Documenting to directory ./doc:
..../doc/langRef.xotcl
..../library/lib/Script.xotcl
..../library/lib/changeXOTclVersion.xotcl
..../library/lib/htmllib.xotcl
..../library/lib/make.xotcl
..../library/lib/makeDoc.xotcl
..../library/lib/metadataAnalyzer.xotcl
..../library/lib/mixinStrategy.xotcl
..../library/lib/package.xotcl
..../library/lib/staticMetadata.xotcl
..../library/lib/test.xotcl
..../library/lib/trace.xotcl
..../library/lib/upvarcompat.xotcl
..../library/lib/xodoc.xotcl
..../library/store/JufGdbmStorage.xotcl
..../library/store/MemStorage.xotcl
..../library/store/MultiStorage.xotcl
..../library/store/Persistence.xotcl
..../library/store/Storage.xotcl
..../library/store/TclGdbmStorage.xotcl
..../library/store/TextFileStorage.xotcl
..../library/store/persistenceExample.xotcl
..../library/serialize/Serializer.xotcl
..../tests/forwardtest.xotcl
..../tests/mixinoftest.xotcl
..../tests/slottest.xotcl
..../tests/speedtest.xotcl
..../tests/testo.xotcl
..../tests/testx.xotcl
..../tests/varresolutiontest.xotcl
..../apps/scripts/adapter.xotcl
..../apps/scripts/adapterExample.xotcl
..../apps/scripts/composite.xotcl
..../apps/scripts/compositeExample.xotcl
..../apps/scripts/observer.xotcl
..../apps/scripts/parameter.xotcl
..../apps/scripts/pinger.xotcl
..../apps/scripts/simpleFilters.xotcl
..../apps/scripts/soccerClub.xotcl
..../apps/comm/ftp.xotcl
..../apps/comm/link-checker.xotcl
..../apps/comm/secure-webclient.xotcl
..../apps/comm/secure-webserver.xotcl
..../apps/comm/webclient.xotcl
..../apps/comm/webserver.xotcl
..../apps/actiweb/univ/UNIVERSAL.xotcl
..../apps/utils/xo-daemon
..../apps/utils/xo-whichPkg
Documentation finished

************************************************************
  Make completed. In order to test XOTcl, invoke:
    make test

  In order install XOTcl, invoke:
    make install

  In order to install XOTcl for AOLserver 4.x, invoke:
    make install-aol

  In order to invoke XOTcl interactively (before install), use:
    export TCLLIBPATH=""   or       setenv TCLLIBPATH ""
  and
    /usr/bin/tclsh8.6
    package require XOTcl; namespace import -force xotcl::*
  or
    put the 'package require' line into your ~/.tclshrc
************************************************************
make[1]: Leaving directory '/<<PKGBUILDDIR>>'
touch build-stamp
dh_testdir
dh_testroot
dh_prep
dh_installdirs
/usr/bin/make DESTDIR=/<<PKGBUILDDIR>>/debian/tmp XOTCLSH=xotclsh install
make[1]: Entering directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>/library/store/XOTclSdbm'
make[2]: Nothing to be done for 'binaries'.
make[2]: Leaving directory '/<<PKGBUILDDIR>>/library/store/XOTclSdbm'
make[2]: Entering directory '/<<PKGBUILDDIR>>/library/xml/TclExpat-1.1'
make[2]: Nothing to be done for 'binaries'.
make[2]: Leaving directory '/<<PKGBUILDDIR>>/library/xml/TclExpat-1.1'
  /bin/bash ./tclconfig/install-sh -c libxotcl1.6.8.so 
/<<PKGBUILDDIR>>/debian/tmp/usr/lib/xotcl1.6.8/libxotcl1.6.8.so
  : /<<PKGBUILDDIR>>/debian/tmp/usr/lib/xotcl1.6.8/libxotcl1.6.8.so
  /bin/bash ./tclconfig/install-sh -c libxotclstub1.6.8.a 
/<<PKGBUILDDIR>>/debian/tmp/usr/lib/xotcl1.6.8/libxotclstub1.6.8.a
  aarch64-linux-gnu-ranlib 
/<<PKGBUILDDIR>>/debian/tmp/usr/lib/xotcl1.6.8/libxotclstub1.6.8.a
make[2]: Entering directory '/<<PKGBUILDDIR>>/library/store/XOTclSdbm'
make[2]: Nothing to be done for 'libraries'.
make[2]: Leaving directory '/<<PKGBUILDDIR>>/library/store/XOTclSdbm'
make[2]: Entering directory '/<<PKGBUILDDIR>>/library/xml/TclExpat-1.1'
make[2]: Nothing to be done for 'libraries'.
make[2]: Leaving directory '/<<PKGBUILDDIR>>/library/xml/TclExpat-1.1'
mkdir -p /<<PKGBUILDDIR>>/debian/tmp/usr/include/xotcl
Installing header files in /<<PKGBUILDDIR>>/debian/tmp/usr/include/xotcl
     Installing generic/xotcl.h
     Installing generic/xotclInt.h
     Installing generic/xotclDecls.h
     Installing generic/xotclIntDecls.h
Installing Libraries to /<<PKGBUILDDIR>>/debian/tmp/usr/lib/xotcl1.6.8/
     Installing comm/
     Installing lib/
     Installing serialize/
     Installing actiweb/
     Installing rdf/
     Installing registry/
     Installing store/
     Installing xml/
     Installing patterns/
     Installing COPYRIGHT
     Installing pkgIndex.tcl
cat unix/pkgIndex.unix >> 
/<<PKGBUILDDIR>>/debian/tmp/usr/lib/xotcl1.6.8/pkgIndex.tcl
/bin/bash ./tclconfig/install-sh -c -m 644 xotclConfig.sh 
/<<PKGBUILDDIR>>/debian/tmp/usr/lib/
Installing Applications to 
/<<PKGBUILDDIR>>/debian/tmp/usr/lib/xotcl1.6.8/apps/
     Installing comm/
     Installing scripts/
     Installing utils/
     Installing actiweb/
     Installing persistence/
     Installing COPYRIGHT
mkdir -p  /<<PKGBUILDDIR>>/debian/tmp/usr/share/man/man1
mkdir -p  /<<PKGBUILDDIR>>/debian/tmp/usr/share/man/man3
mkdir -p  /<<PKGBUILDDIR>>/debian/tmp/usr/share/man/mann
Installing xotclsh.1
Installing xowish.1
make[2]: Entering directory '/<<PKGBUILDDIR>>/library/store/XOTclSdbm'
If you have documentation to create, place the commands to
build the docs in the 'doc:' target.  For example:
         xml2nroff sample.xml > sample.n
         xml2html sample.xml > sample.html
  /bin/bash ./tclconfig/install-sh -c libxotclsdbm1.2.so 
/<<PKGBUILDDIR>>/debian/tmp/usr/lib/xotclsdbm1.2/libxotclsdbm1.2.so
  : /<<PKGBUILDDIR>>/debian/tmp/usr/lib/xotclsdbm1.2/libxotclsdbm1.2.so
if test "x1" = "x1"; then \
     /bin/bash ./tclconfig/install-sh -c -m 644 pkgIndex.tcl 
/<<PKGBUILDDIR>>/debian/tmp/usr/lib/xotclsdbm1.2; \
fi
Installing header files in /<<PKGBUILDDIR>>/debian/tmp/usr/include/xotcl
make[2]: Leaving directory '/<<PKGBUILDDIR>>/library/store/XOTclSdbm'
make[2]: Entering directory '/<<PKGBUILDDIR>>/library/xml/TclExpat-1.1'
If you have documentation to create, place the commands to
build the docs in the 'doc:' target.  For example:
         xml2nroff sample.xml > sample.n
         xml2html sample.xml > sample.html
  /bin/bash ./tclconfig/install-sh -c libxotclexpat0.9.so 
/<<PKGBUILDDIR>>/debian/tmp/usr/lib/xotclexpat0.9/libxotclexpat0.9.so
  : /<<PKGBUILDDIR>>/debian/tmp/usr/lib/xotclexpat0.9/libxotclexpat0.9.so
if test "x1" = "x1"; then \
     /bin/bash ./tclconfig/install-sh -c -m 644 pkgIndex.tcl 
/<<PKGBUILDDIR>>/debian/tmp/usr/lib/xotclexpat0.9; \
fi
Installing header files in /<<PKGBUILDDIR>>/debian/tmp/usr/include/xotcl
make[2]: Leaving directory '/<<PKGBUILDDIR>>/library/xml/TclExpat-1.1'
make[1]: Leaving directory '/<<PKGBUILDDIR>>'
# / / / / / / / / / / / / / / / / / / / / / / / / / / /
# xotcl
#install -d -m 755 -o root -g root /<<PKGBUILDDIR>>/debian/xotcl/usr/lib
install -d -m 755 -o root -g root 
/<<PKGBUILDDIR>>/debian/xotcl/usr/lib/tcltk/xotcl1.6.8
install: cannot change owner and permissions of 
‘/<<PKGBUILDDIR>>/debian/xotcl/usr/lib/tcltk/xotcl1.6.8’: Operation not 
permitted
make: *** [debian/rules:107: install] Error 1
dpkg-buildpackage: error: debian/rules binary subprocess returned exit 
status 2
--------------------------------------------------------------------------------
Build finished at 2024-11-18T21:18:24Z

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


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/1052570.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.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: OpenPGP_signature.asc
Type: application/pgp-signature
Size: 488 bytes
Desc: OpenPGP digital signature
URL: <http://alioth-lists.debian.net/pipermail/pkg-tcltk-devel/attachments/20241207/885ec5ef/attachment.sig>


More information about the Pkg-tcltk-devel mailing list