On Wed, Feb 20, 2019 at 9:42 AM Michael Olbrich wrote: > On Wed, Feb 20, 2019 at 09:09:18AM -0500, Jon Ringle wrote: > > On Wed, Feb 20, 2019 at 8:22 AM Ian Abbott wrote: > > > > > On 20/02/2019 13:17, Ian Abbott wrote: > > > > On 20/02/2019 00:59, Jon Ringle wrote: > > > >> I've got a strange permission problem when I build on our build > server > > > >> that was recently updated from Ubuntu-14.04 to Ubuntu-16.04. > > > >> > > > >> On our Ubuntu-16.04 server, on most of the platform/packages/ > > > >> subdirectories the packages are getting created with other having no > > > >> permissions at all: > > > >> > > > >> rootfs/platform-ec1c/packages$ tree -d -L 1 -p > > > >> . > > > >> ├── [drwxr-x---] attr-2.4.47 > > > >> ├── [drwxr-x---] avahi-0.7 > > > >> ├── [drwxr-x---] bash-4.3.30 > > > >> ├── [drwxr-x---] boost_1_67_0 > > > >> ├── [drwxr-x---] busybox-1.29.3 > > > >> ├── [drwxr-x---] coreutils-8.29 > > > >> ... > > > >> > > > >> This results in all files contained within those directories to also > > > >> have no perms for other, and get installed on my target in the same > > > >> way. This in turn then causes permission problems to occur. > > > >> > > > >> I'm at a loss as to what to look for to resolve this problem. > > > >> > > > >> Suggestions? > > > > > > > > I think you are building with umask 0027, so files are created with > no > > > > permissions for 'other' users. This should not affect the contents > of > > > > the platform-ec1c/packages/*.ipk files, or the contents of the > > > > platform-ec1c/root/ directory, or the contents of the > > > > platform-ec1c/images/root.* images, which should all contain files > with > > > > the correct permissions for the target. > > > > > > Correction: The platform-ec1c/root/ directory contents do not have the > > > correct ownership for the target, but the file mode bits should be > correct. > > > > > > > > I also thought that perhaps it was a umask issue, but as you can see > below, > > umask is 0022, which should be ok. > > The permission problem that I am having on the target is that > > systemd-networkd.service won't start because it can't read the > > configuration files below. These files are installed in systemd.make via: > > > > ifdef PTXCONF_SYSTEMD_NETWORK > > @$(call install_tree, systemd, 0, 0, -, /usr/lib/systemd/network) > > @$(call install_alternative_tree, systemd, 0, 0, > > /usr/lib/systemd/network) > > endif > > @$(call install_alternative, systemd, 0, 0, 0644, \ > > /usr/lib/systemd/network/99-default.link) > > Right, install_alternative_tree picks the source file permissions. The > question is, why are those incorrect? > > I've come across some issues with fakeroot and permissions elsewhere. Can > you run the attached script with the fakeroot from sysroot-host/ and send > the results? > > jringle@dev-atl-bamb01:/srv/gpec-build/rootfs/platform-ec1c/sysroot-host/bin$ ./fakeroot ~/fake-test fakeroot: preload library `libfakeroot.so' not found, aborting. jringle@dev-atl-bamb01:/srv/gpec-build/rootfs/platform-ec1c/sysroot-host/bin$ cd ../../.. jringle@dev-atl-bamb01:/srv/gpec-build/rootfs$ ptxdist bash [ptx] jringle@dev-atl-bamb01:/srv/gpec-build/rootfs$ which fakeroot /srv/gpec-build/rootfs/platform-ec1k/sysroot-host/bin/fakeroot [ptx] jringle@dev-atl-bamb01:/srv/gpec-build/rootfs$ fakeroot ~/fake-test -rw-r--r-- 1 0 0 0 Feb 20 15:08 empty -rw-r--r-- 1 0 0 0 Feb 20 15:08 empty-a -rw-r--r-- 1 0 0 0 Feb 20 15:08 empty-r # file: empty # owner: 0 # group: 0 user::rw- group::r-- other::r-- # file: empty-a # owner: 0 # group: 0 user::rw- group::r-- other::r-- # file: empty-r # owner: 0 # group: 0 user::rw- group::r-- other::r-- [ptx] jringle@dev-atl-bamb01:/srv/gpec-build/rootfs$ exit exit jringle@dev-atl-bamb01:/srv/gpec-build/rootfs$ which fakeroot /usr/bin/fakeroot jringle@dev-atl-bamb01:/srv/gpec-build/rootfs$ fakeroot ~/fake-test -rw-r--r-- 1 0 0 0 Feb 20 15:08 empty -rw-r--r-- 1 0 0 0 Feb 20 15:08 empty-a -rw-r--r-- 1 0 0 0 Feb 20 15:08 empty-r # file: empty # owner: 0 # group: 0 user::rw- group::r-- other::r-- # file: empty-a # owner: 0 # group: 0 user::rw- group::r-- other::r-- # file: empty-r # owner: 0 # group: 0 user::rw- group::r-- other::r--