mika / jenkins-debian-glue

Scripts for Debian package/repository handling inside Jenkins
MIT License
131 stars 91 forks source link

Permission problem - denied to create directory in fakeroot /etc/ #200

Closed vchrizz closed 6 years ago

vchrizz commented 6 years ago

( this is maybe related to #156 ) i've setup a new debian9 vm (amd64), installed fresh instance of jenkins-debian-glue (Jenkins ver. 2.138.2). now im trying to build olsrd packages from debian git repo. created olsrd-source and olsrd-binaries jobs exactly same as jenkins-debian-glue-source and jenkins-debian-glue-binaries. (added architectures: amd64 i386 mips mipsel - arch amd64 and i386 have the same problem) replaced every "jenkins-debian-glue" stanza for "olsrd" and replaced git repo to https://salsa.debian.org/debian/olsrd.git

then i run job olsrd-source and this runs fine, this starts olsrd-binaries and there it stops.. something is wrong with permissions because all runs well until here:

make[1]: Leaving directory '/build/olsrd-0.9.6.1'
   dh_auto_test
   create-stamp debian/debhelper-build-stamp
 fakeroot debian/rules binary
dh binary
   create-stamp debian/debhelper-build-stamp
   dh_testroot
   dh_prep
   dh_installdirs
   debian/rules override_dh_auto_install
make[1]: Entering directory '/build/olsrd-0.9.6.1'
/usr/bin/make VERBOSE=1 STRIP=: DESTDIR=/build/olsrd-0.9.6.1/debian/olsrd \
    prefix=/usr libdir=/usr/lib/olsrd install
make[2]: Entering directory '/build/olsrd-0.9.6.1'
mkdir -p /build/olsrd-0.9.6.1/debian/olsrd/usr/sbin
install -m 755 olsrd /build/olsrd-0.9.6.1/debian/olsrd/usr/sbin
: /build/olsrd-0.9.6.1/debian/olsrd/usr/sbin/olsrd
if [ -e /build/olsrd-0.9.6.1/debian/olsrd/usr/sbin/sgw_policy_routing_setup.sh ]; then \
        cp -f files/sgw_policy_routing_setup.sh /build/olsrd-0.9.6.1/debian/olsrd/usr/sbin/sgw_policy_routing_setup.sh.new; \
        echo "Policy routing script was saved as /build/olsrd-0.9.6.1/debian/olsrd/usr/sbin/sgw_policy_routing_setup.sh.new"; \
    else \
        cp -f files/sgw_policy_routing_setup.sh /build/olsrd-0.9.6.1/debian/olsrd/usr/sbin/sgw_policy_routing_setup.sh; \
    fi
========= C O N F I G U R A T I O N - F I L E ============
olsrd uses the configfile /etc/olsrd/olsrd.conf
a default configfile. A sample RFC-compliance aimed
configfile can be found in olsrd.conf.default.rfc.
However none of the larger OLSRD using networks use that
so install a configfile with activated link quality exstensions
per default.
can be found at files/olsrd.conf.default.lq
==========================================================
mkdir -p /etc/olsrd
mkdir: cannot create directory '/etc/olsrd': Permission denied
Makefile:168: recipe for target 'install_olsrd' failed
make[2]: *** [install_olsrd] Error 1
make[2]: Leaving directory '/build/olsrd-0.9.6.1'
debian/rules:27: recipe for target 'override_dh_auto_install' failed
make[1]: *** [override_dh_auto_install] Error 2
make[1]: Leaving directory '/build/olsrd-0.9.6.1'
debian/rules:15: recipe for target 'binary' failed
make: *** [binary] Error 2
dpkg-buildpackage: error: fakeroot debian/rules binary gave error exit status 2
I: copying local configuration
E: Failed autobuilding of package
mika commented 6 years ago

The mkdir -p /etc/olsrd looks strange, this should be a mkdir somewhere below /build/olsrd-0.9.6.1'. The packaging clearly shouldn't write just to the rootfs itself. It's a packaging bug and not a j-d-g issue, I can reproduce the problem in a normal cowbuilder environment (building against Debian/unstable).

The cuprit might be ae21699d33cd7dbf3cf12d07b0def652a527269a in https://salsa.debian.org/debian/olsrd. You might consider contacting the author (Nicolas), when doing so send him best regards from Mika. :)