xbps-create: set root:root if e[gu]id == st.st_e[gu]id in package files.
The rational is that packages should have proper perms to be installed globally in a system as root, and fakeroot is useless when generating packages with xbps-create when it's statically build.
This commit is contained in:
parent
dd9cf9737b
commit
7491c0e584
4
NEWS
4
NEWS
@ -1,5 +1,9 @@
|
||||
xbps-0.22 (???):
|
||||
|
||||
* xbps-create(8): if effective user/group is the same than files being
|
||||
packaged in a package, set user/group to root:root. This way we don't
|
||||
have to depend in an external tool to assume proper permissions (fakeroot).
|
||||
|
||||
* xbps-query(8): fix segfault when showing unexistent package files.
|
||||
|
||||
* When checking for obsolete files in upgrades, ignore unexistent files in
|
||||
|
@ -431,6 +431,10 @@ process_entry_file(struct archive *ar,
|
||||
archive_entry_set_pathname(entry, xe->file);
|
||||
archive_entry_copy_stat(entry, &st);
|
||||
archive_entry_copy_sourcepath(entry, p);
|
||||
if (st.st_uid == geteuid())
|
||||
archive_entry_set_uname(entry, "root");
|
||||
if (st.st_gid == getegid())
|
||||
archive_entry_set_gname(entry, "root");
|
||||
|
||||
if (S_ISLNK(st.st_mode)) {
|
||||
len = readlink(p, buf, sizeof(buf));
|
||||
|
Loading…
Reference in New Issue
Block a user