Bug#1089319: epics-base: Supporting rootless builds by default

Niels Thykier niels at thykier.net
Sat Dec 7 19:02:50 GMT 2024


Source: epics-base
Version: 7.0.8.1+dfsg1-6
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`,
epics-base failed to rebuild.

Log Summary:
-------------------------------------------------------------------------------
[...]
/usr/bin/g++ -o softIocPVA  -L/<<PKGBUILDDIR>>/lib/linux-aarch64 
-Wl,-rpath,/<<PKGBUILDDIR>>/lib/linux-aarch64      -Wl,-z,relro 
-Wl,-z,now -Wl,-z,relro -Wl,-z,now    -rdynamic         softMain.o 
softIocPVA_registerRecordDeviceDriver.o    -lqsrv -lpvAccessIOC 
-lpvAccessCA -lpvAccess -lpvData -ldbRecStd -ldbCore -lca -lCom 
Installing created executable /<<PKGBUILDDIR>>/bin/linux-aarch64/softIocPVA
perl -CSD /<<PKGBUILDDIR>>/bin/linux-aarch64/installEpics.pl  -d -m 555 
softIocPVA /<<PKGBUILDDIR>>/bin/linux-aarch64
make[6]: Leaving directory 
'/<<PKGBUILDDIR>>/modules/pva2pva/pdbApp/O.linux-aarch64'
make[5]: Leaving directory '/<<PKGBUILDDIR>>/modules/pva2pva/pdbApp'
/usr/bin/make -C ./testApp install
make[5]: Entering directory '/<<PKGBUILDDIR>>/modules/pva2pva/testApp'
/usr/bin/make -C O.linux-aarch64 -f ../Makefile TOP=../.. \
     T_A=linux-aarch64 install
make[6]: Entering directory 
'/<<PKGBUILDDIR>>/modules/pva2pva/testApp/O.linux-aarch64'
/usr/bin/g++ -o testweak  -L/<<PKGBUILDDIR>>/lib/linux-aarch64 
-Wl,-rpath,/<<PKGBUILDDIR>>/lib/linux-aarch64      -Wl,-z,relro 
-Wl,-z,now -Wl,-z,relro -Wl,-z,now    -rdynamic         testweak.o 
utilitiesx.o   -lCom -lpvAccess -lpvData -ldbRecStd -ldbCore -lca -lCom 
  /usr/bin/g++ -o testtest  -L/<<PKGBUILDDIR>>/lib/linux-aarch64 
-Wl,-rpath,/<<PKGBUILDDIR>>/lib/linux-aarch64      -Wl,-z,relro 
-Wl,-z,now -Wl,-z,relro -Wl,-z,now    -rdynamic         testtest.o 
utilitiesx.o   -lpvAccess -lpvData -ldbRecStd -ldbCore -lca -lCom 
/usr/bin/g++ -o testpvif  -L/<<PKGBUILDDIR>>/lib/linux-aarch64 
-Wl,-rpath,/<<PKGBUILDDIR>>/lib/linux-aarch64      -Wl,-z,relro 
-Wl,-z,now -Wl,-z,relro -Wl,-z,now    -rdynamic         testpvif.o 
p2pTestIoc_registerRecordDeviceDriver.o utilitiesx.o   -lqsrv -lpvAccess 
-lpvData -ldbRecStd -ldbCore -lca -lCom   /usr/bin/g++ -o testpdb 
-L/<<PKGBUILDDIR>>/lib/linux-aarch64 
-Wl,-rpath,/<<PKGBUILDDIR>>/lib/linux-aarch64      -Wl,-z,relro 
-Wl,-z,now -Wl,-z,relro -Wl,-z,now    -rdynamic         testpdb.o 
p2pTestIoc_registerRecordDeviceDriver.o utilitiesx.o   -lqsrv -lpvAccess 
-lpvData -ldbRecStd -ldbCore -lca -lCom   /usr/bin/g++ -o check_consist 
-L/<<PKGBUILDDIR>>/lib/linux-aarch64 
-Wl,-rpath,/<<PKGBUILDDIR>>/lib/linux-aarch64      -Wl,-z,relro 
-Wl,-z,now -Wl,-z,relro -Wl,-z,now    -rdynamic         check_consist.o 
utilitiesx.o   -lpvAccess -lpvData -ldbRecStd -ldbCore -lca -lCom 
/usr/bin/g++ -o testpvalink  -L/<<PKGBUILDDIR>>/lib/linux-aarch64 
-Wl,-rpath,/<<PKGBUILDDIR>>/lib/linux-aarch64      -Wl,-z,relro 
-Wl,-z,now -Wl,-z,relro -Wl,-z,now    -rdynamic         testpvalink.o 
pvaLinkTestIoc_registerRecordDeviceDriver.o utilitiesx.o   -lqsrv 
-lpvAccess -lpvData -ldbRecStd -ldbCore -lca -lCom   /usr/bin/g++ -o 
testgroupconfig  -L/<<PKGBUILDDIR>>/lib/linux-aarch64 
-Wl,-rpath,/<<PKGBUILDDIR>>/lib/linux-aarch64      -Wl,-z,relro 
-Wl,-z,now -Wl,-z,relro -Wl,-z,now    -rdynamic 
testgroupconfig.o utilitiesx.o   -lqsrv -lpvAccess -lpvData -ldbRecStd 
-ldbCore -lca -lCom -lpvAccess -lpvData -ldbRecStd -ldbCore -lca -lCom 
/usr/bin/g++ -o testdbf_copy  -L/<<PKGBUILDDIR>>/lib/linux-aarch64 
-Wl,-rpath,/<<PKGBUILDDIR>>/lib/linux-aarch64      -Wl,-z,relro 
-Wl,-z,now -Wl,-z,relro -Wl,-z,now    -rdynamic         testdbf_copy.o 
utilitiesx.o   -lqsrv -lpvAccess -lpvData -ldbRecStd -ldbCore -lca -lCom 
-lpvAccess -lpvData -ldbRecStd -ldbCore -lca -lCom   perl -CSD 
/<<PKGBUILDDIR>>/bin/linux-aarch64/makeTestfile.pl linux-aarch64 
linux-aarch64 testweak.t testweak
perl -CSD /<<PKGBUILDDIR>>/bin/linux-aarch64/makeTestfile.pl 
linux-aarch64 linux-aarch64 testtest.t testtest
perl -CSD /<<PKGBUILDDIR>>/bin/linux-aarch64/makeTestfile.pl 
linux-aarch64 linux-aarch64 testpvif.t testpvif
perl -CSD /<<PKGBUILDDIR>>/bin/linux-aarch64/makeTestfile.pl 
linux-aarch64 linux-aarch64 testpdb.t testpdb
perl -CSD /<<PKGBUILDDIR>>/bin/linux-aarch64/makeTestfile.pl 
linux-aarch64 linux-aarch64 testgroupconfig.t testgroupconfig
perl -CSD /<<PKGBUILDDIR>>/bin/linux-aarch64/makeTestfile.pl 
linux-aarch64 linux-aarch64 testdbf_copy.t testdbf_copy
make[6]: Leaving directory 
'/<<PKGBUILDDIR>>/modules/pva2pva/testApp/O.linux-aarch64'
make[5]: Leaving directory '/<<PKGBUILDDIR>>/modules/pva2pva/testApp'
/usr/bin/make -C ./iocBoot install
make[5]: Entering directory '/<<PKGBUILDDIR>>/modules/pva2pva/iocBoot'
/usr/bin/make -C ./iocimagedemo install
make[6]: Entering directory 
'/<<PKGBUILDDIR>>/modules/pva2pva/iocBoot/iocimagedemo'
make[6]: Nothing to be done for 'install'.
make[6]: Leaving directory 
'/<<PKGBUILDDIR>>/modules/pva2pva/iocBoot/iocimagedemo'
/usr/bin/make -C ./iocputlog install
make[6]: Entering directory 
'/<<PKGBUILDDIR>>/modules/pva2pva/iocBoot/iocputlog'
make[6]: Nothing to be done for 'install'.
make[6]: Leaving directory 
'/<<PKGBUILDDIR>>/modules/pva2pva/iocBoot/iocputlog'
/usr/bin/make -C ./iocpvalink install
make[6]: Entering directory 
'/<<PKGBUILDDIR>>/modules/pva2pva/iocBoot/iocpvalink'
make[6]: Nothing to be done for 'install'.
make[6]: Leaving directory 
'/<<PKGBUILDDIR>>/modules/pva2pva/iocBoot/iocpvalink'
/usr/bin/make -C ./iocutag install
make[6]: Entering directory 
'/<<PKGBUILDDIR>>/modules/pva2pva/iocBoot/iocutag'
make[6]: Nothing to be done for 'install'.
make[6]: Leaving directory 
'/<<PKGBUILDDIR>>/modules/pva2pva/iocBoot/iocutag'
/usr/bin/make -C ./iocwfdemo install
make[6]: Entering directory 
'/<<PKGBUILDDIR>>/modules/pva2pva/iocBoot/iocwfdemo'
make[6]: Nothing to be done for 'install'.
make[6]: Leaving directory 
'/<<PKGBUILDDIR>>/modules/pva2pva/iocBoot/iocwfdemo'
make[5]: Leaving directory '/<<PKGBUILDDIR>>/modules/pva2pva/iocBoot'
make[4]: Leaving directory '/<<PKGBUILDDIR>>/modules/pva2pva'
make[3]: Leaving directory '/<<PKGBUILDDIR>>/modules'
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[1]: Leaving directory '/<<PKGBUILDDIR>>'
    debian/rules override_dh_install
make[1]: Entering directory '/<<PKGBUILDDIR>>'
dh_perl libepics-perl usr/lib/epics/
dh_install
dh_install -plibepics-perl lib/perl/* ./usr/lib/aarch64-linux-gnu/epics/
rm -f debian/libepics-perl/usr/lib/aarch64-linux-gnu/epics/EpicsHostArch.pl
dh_install -pepics-base              lib/linux-aarch64/libdbCore.so.* 
   usr/lib/aarch64-linux-gnu
cp: cannot create regular file 'debian/epics-base/./usr/bin/acctst': 
Permission denied
cp: cannot create regular file 'debian/epics-base/./usr/bin/antelope': 
Permission denied
cp: cannot create regular file 'debian/epics-base/./usr/bin/caConnTest': 
Permission denied
cp: cannot create regular file 
'debian/epics-base/./usr/bin/caEventRate': Permission denied
cp: cannot create regular file 'debian/epics-base/./usr/bin/caRepeater': 
Permission denied
cp: cannot create regular file 'debian/epics-base/./usr/bin/caget': 
Permission denied
cp: cannot create regular file 'debian/epics-base/./usr/bin/cainfo': 
Permission denied
cp: cannot create regular file 'debian/epics-base/./usr/bin/camonitor': 
Permission denied
cp: cannot create regular file 'debian/epics-base/./usr/bin/caput': 
Permission denied
cp: cannot create regular file 'debian/epics-base/./usr/bin/casw': 
Permission denied
cp: cannot create regular file 'debian/epics-base/./usr/bin/catime': 
Permission denied
cp: cannot create regular file 'debian/epics-base/./usr/bin/e_flex': 
Permission denied
cp: cannot create regular file 
'debian/epics-base/./usr/bin/iocLogServer': Permission denied
cp: cannot create regular file 'debian/epics-base/./usr/bin/pvcall': 
Permission denied
cp: cannot create regular file 'debian/epics-base/./usr/bin/pvget': 
Permission denied
cp: cannot create regular file 'debian/epics-base/./usr/bin/pvinfo': 
Permission denied
cp: cannot create regular file 'debian/epics-base/./usr/bin/pvlist': 
Permission denied
cp: cannot create regular file 'debian/epics-base/./usr/bin/pvmonitor': 
Permission denied
cp: cannot create regular file 'debian/epics-base/./usr/bin/pvput': 
Permission denied
dh_install: error: cp --reflink=auto -a ./bin/linux-aarch64/acctst 
./bin/linux-aarch64/antelope ./bin/linux-aarch64/caConnTest 
./bin/linux-aarch64/caEventRate ./bin/linux-aarch64/caRepeater 
./bin/linux-aarch64/caget ./bin/linux-aarch64/cainfo 
./bin/linux-aarch64/camonitor ./bin/linux-aarch64/caput 
./bin/linux-aarch64/casw ./bin/linux-aarch64/catime 
./bin/linux-aarch64/e_flex ./bin/linux-aarch64/iocLogServer 
./bin/linux-aarch64/pvcall ./bin/linux-aarch64/pvget 
./bin/linux-aarch64/pvinfo ./bin/linux-aarch64/pvlist 
./bin/linux-aarch64/pvmonitor ./bin/linux-aarch64/pvput 
debian/epics-base/./usr/bin// returned exit code 1
make[1]: *** [debian/rules:57: override_dh_install] Error 25
make[1]: Leaving directory '/<<PKGBUILDDIR>>'
make: *** [debian/rules:29: binary] Error 2
dpkg-buildpackage: error: debian/rules binary subprocess returned exit 
status 2
--------------------------------------------------------------------------------
Build finished at 2024-11-16T02:51:40Z

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


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/982973.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/debian-science-maintainers/attachments/20241207/68b4dfaf/attachment-0001.sig>


More information about the debian-science-maintainers mailing list