On 06/03/17 09:04, Armin K. wrote: > On 06.03.2017 00:00, Allan McRae wrote: >> On 06/03/17 08:40, Armin K. wrote: >>> On 05.03.2017 23:38, Armin K. wrote: >>>> Hi all. >>>> >>>> I'm using pacman for my LFS install, and as part of that, I also use >>>> hooks >>>> used by Arch for, say, systemd-sysusers, systemd-tmpfiles, etc. >>>> >>>> Some packages require that certain files/directories are owned by a >>>> certain >>>> user/group after install. This is somehow hard to achieve with >>>> .install file >>>> when systemd-sysuser hook is used (see [1] for an example). >>>> >>>> Since this is a LFS, it's "bootstrapped" from an already existing >>>> linux distro >>>> (doesn't have to be arch, it has its own temporary pacman). I use >>>> pacman -U -r >>>> /path/to/lfs to install packages from the host system. >>>> >>>> The issue I'm having is when an user isn't created and chown is ran in >>>> PKGBUILD's >>>> with statically assigned id's (ie, chown 20:20, where 20 will be an >>>> UID for the >>>> created user), pacman chowns those files/directories to something else >>>> entirely. >>>> >>>> I did however notice that on my host (Arch, of course), those >>>> missleading uids/gids >>>> correspond to the uids/gids of the users that are going to be created >>>> in LFS. >>>> >>>> So, if I have user/group named:named with uid:gid 20:20, and host >>>> system (Arch) >>>> has same user:group, with with uid:gid 40:40, the files that I >>>> explicitly chowned >>>> to 20:20 in PKGBUILD will be chown-ed to 40:40 instead when pacman -U >>>> -r ... >>>> is ran. >>>> >>>> So, how do I solve this problem? I suppose it's an issue in pacman -U >>>> with -r >>>> option. I can use chown 20:20 in .install file (before the user:groups >>>> have been created), and the file will be created with proper ownership. >>>> >>>> Thanks in advance. >>>> >>>> [1] https://bugs.archlinux.org/task/52680 >>> >>> Oh, and I'm using stock pacman-5.0.1, no additional patches (besides >>> minor makepkg hacks to set CC/CXX and different debug/nondebug >>> CFLAGS/CXXFLAGS). >>> . >>> >> >> You can either create the groups in the install file and chown the >> needed files, or have the same group IDs across systems. >> >> A >> > Entries are alright in .MTREE (correct gid's). I don't suppose pacman > does something odd there? Why doesn't it use those uid's/gid's? > > If you could point me to the part in the pacman code which does the > extraction, I might be able to find a solution (at least for myself). >
Extraction is just taking files out of the tarball. Note that the tarball store files with UID/GID numbers and not names. A
