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? Michael -- Pengutronix e.K. | | Industrial Linux Solutions | http://www.pengutronix.de/ | Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 | Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |