Bug 9826

Summary: post-build scritp - symlinks created in post-build script are overwritten after exit of the script
Product: buildroot Reporter: Timo Välimäki <timo.valimaki>
Component: OtherAssignee: unassigned
Status: RESOLVED INVALID    
Severity: normal CC: buildroot, yann.morin.1998
Priority: P5    
Version: 2017.02   
Target Milestone: ---   
Hardware: All   
OS: Linux   
Host: Target:
Build:

Description Timo Välimäki 2017-04-20 09:35:50 UTC
I'm trying to symlink  /etc/group, /etc/passwd and /etc/shadow to RW partition, in my case to /data/etc (rootfs-overlay).


I created a post-build that moves above files to /data/etc/ directory and creates symlinks pointing to the moved files. When I'm pausing my post-build script just before the exit everything is looking fine.

/output/target:

lrwxrwxrwx  1 timo timo    17 huhti 20 12:24 group -> ../data/etc/group
lrwxrwxrwx  1 timo timo    18 huhti 20 12:24 passwd -> ../data/etc/passwd
lrwxrwxrwx  1 timo timo    18 huhti 20 12:24 shadow -> ../data/etc/shadow

But when the Buildroot build is finished the above symlinks are overwritten
-rw-r--r--  1 timo timo   320 huhti 20 12:29 group
-rw-r--r--  1 timo timo   389 huhti 20 12:29 passwd
-rw-------  1 timo timo   291 huhti 20 12:29 shadow

Q: Is this as specified or a bug?
Q: If as specified, what is correct way to symlink above files?
Comment 1 Yann E. MORIN 2017-04-20 20:15:55 UTC
Timo,

This is (somewhat) expected. When creating the filsystem images,
there is a part creating the passwd, groups and shadow (and possibly,
gshadow) files from the setting in Buildroot.

This will forcibly create files (AFAIR).

So, what you want to provide is probably a "fakeroot" script. This
will be called after the passwd, group and shadow files are created,
but before the images are assembled.
Comment 2 Timo Välimäki 2017-04-20 21:37:55 UTC
Thanks.

I have totally missed the fakeroot script - perhaps I have just skipped it as didn't understood when to use it.

I moved /etc/group, /etc/passwd and /etc/shadow handling from post-build script to fakeroot script.  Result: works as it should be.

I mark bug resolved as invalid.