Actually I should be a bit more precise. Ownership of file was changed without any issues. Ownership of folders was not. So the files are replaced but the folders are not, and that means if you change the ownership of the folders between revisions of the same ebuild (or next version of the package), it is not done without extra action.
It is alright if you get it right the first time. But here it is a bit of an after thought. I have two packages so far that do the tarball unpacking thing that can give funny ownership if you don’t do it right. I suspect there are more out there. > On 9/02/2021, at 21:28, Andrew Ammerlaan <andrewammerl...@riseup.net> wrote: > > On 09/02/2021 00:39, François Bissey wrote: >> It looks like “--no-same-owner” does work in the end. >> However, I bumped into a probably subtle bug in portage. >> >> Before the permission were right I had to un-merge the >> package (emerge -C …) first, then merge it again. >> It looks like the ownership is not changed if there are files >> from a previous install. Even if the new install has different >> ownership. It could be interesting to see if permission are >> affected as well. >> > I'm pretty sure this behavior is intentional and not a bug. If an user were > to change the permissions/owner of some file to adapt it to his/her > configuration and an update would overwrite this. Well that would lead to > annoying breakage on this users system on every update/rebuild. > > If an ebuild for whatever reason has to change the owner/permissions of an > existing file I guess the pkg_postinst/pkg_preinst phases could be used. > >>> On 9/02/2021, at 12:03, François Bissey <frp.bis...@gmail.com> wrote: >>> >>> Just for the record so that some root cause of the issue are more clear. >>> From “man tar” >>> --no-same-owner >>> Extract files as yourself (default for ordinary users). >>> >>> >>> --same-owner >>> Try extracting files with the same ownership as exists in the >>> archive (default for superuser). >>> >>> ====== >>> >>> So, by default, when you emerge with root, tar will try to preserve >>> ownership >>> as stated inside the tarball. I was hoping that inserting “—no-same-owner” >>> in the tar command would changes things a little bit. But for some reasons >>> it didn’t have any effect when I inserted it inside the makefile. >>> >>>> On 9/02/2021, at 11:55, François Bissey <frp.bis...@gmail.com> wrote: >>>> >>>> Nope, just plain emerge as root. >>>> >>>>> On 9/02/2021, at 11:55, Aisha Tammy <gentoo.scie...@aisha.cc> wrote: >>>>> >>>>> Are you installing/building with the ebuild command and then merging with >>>>> sudo or >>>>> something similar? >>>>> That may be one reason something like this is happening. >>>>> >>>>> On 2/8/21 5:28 PM, François Bissey wrote: >>>>>> Hi all, >>>>>> >>>>>> I discovered an issue in a couple of packages for which sage-on-gentoo >>>>>> provides ebuilds. >>>>>> Some packages install data directly from a tar command. By that I mean >>>>>> Makefile.am will a line like >>>>>> cd $(DESTDIR)$(dbdir) && tar xf $(dist_db_DATA) && rm $(dist_db_DATA) >>>>>> >>>>>> From a real Makefile at >>>>>> https://github.com/sagemath/p_group_cohomology/blob/master/present/Makefile.am >>>>>> >>>>>> I looks innocuous until you realise it has some funny effects on >>>>>> ownership. >>>>>> fbissey@moonloop ~ $ ll /usr/share/pGroupCohomology/ >>>>>> total 1.1M >>>>>> drwxr-xr-x 270 root root 12K Feb 3 21:55 . >>>>>> drwxr-xr-x 319 root root 12K Feb 3 21:55 .. >>>>>> drwxr-xr-x 3 fbissey fbissey 4.0K Feb 9 10:46 64gp1 >>>>>> drwxr-xr-x 4 fbissey fbissey 4.0K Feb 9 10:46 64gp10 >>>>>> drwxr-xr-x 4 fbissey fbissey 4.0K Feb 9 10:46 64gp100 >>>>>> drwxr-xr-x 4 fbissey fbissey 4.0K Feb 9 10:46 64gp101 >>>>>> drwxr-xr-x 4 fbissey fbissey 4.0K Feb 9 10:46 64gp102 >>>>>> >>>>>> the files in the tarball are owned by user/group 1001:1001 >>>>>> and on my system it is my personal user. >>>>>> sci-mathematics/singular and that may include the version in the main >>>>>> tree, >>>>>> would have to check, install its documentation from a tarball as well >>>>>> fbissey@moonloop ~ $ ll /usr/share/doc/singular-4.1.1_p2-r3/ >>>>>> total 216K >>>>>> drwxr-xr-x 3 2345 uucp 4.0K Nov 10 10:49 . >>>>>> drwxr-xr-x 1361 root root 64K Feb 9 10:39 .. >>>>>> drwxr-xr-x 2 2345 uucp 128K Nov 10 10:49 html >>>>>> -rw-r--r-- 1 root root 497 Nov 10 10:48 README.bz2 >>>>>> -rw-r--r-- 1 root root 517 Nov 10 10:48 README.md.bz2 >>>>>> -rw-r--r-- 1 root root 585 Nov 10 10:48 README.pkg.bz2 >>>>>> fbissey@moonloop ~ $ ll /usr/share/doc/singular-4.1.1_p2-r3/html >>>>>> total 30M >>>>>> drwxr-xr-x 2 2345 uucp 128K Nov 10 10:49 . >>>>>> drwxr-xr-x 3 2345 uucp 4.0K Nov 10 10:49 .. >>>>>> -rwxr-xr-x 1 2345 uucp 915 Feb 14 2018 a_begin.gif >>>>>> -rwxr-xr-x 1 2345 uucp 909 Feb 14 2018 a_begin_na.gif >>>>>> -rwxr-xr-x 1 2345 uucp 927 Feb 14 2018 a_document.gif >>>>>> >>>>>> I tried to use fowners inside the ebuild, but it only fixes file >>>>>> ownership, >>>>>> folders are not touched. I tried to insert “—no-same-owner” in the call >>>>>> to tar >>>>>> and that didn’t really help either. At best, I am expecting ownership to >>>>>> change >>>>>> to portage:portage. >>>>>> >>>>>> Has anyone dealt with something like this before? Apart from >>>>>> “recursively” >>>>>> scripting install in the make file is there anything simple I could do? >>>>>> >>>>>> Cheers, >>>>>> François >>>>> >>>> >>> >> > >