void-packages/srcpkgs/xbps/patches/0003-xbps-create-set-root-r...

33 lines
1.1 KiB
Diff

From 7491c0e5847b5b4ccca5369442ae394e34ed6cb1 Mon Sep 17 00:00:00 2001
From: Juan RP <xtraeme@gmail.com>
Date: Fri, 15 Mar 2013 09:31:15 +0100
Subject: [PATCH] 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.
---
NEWS | 4 ++++
bin/xbps-create/main.c | 4 ++++
2 files changed, 8 insertions(+)
diff --git a/bin/xbps-create/main.c b/bin/xbps-create/main.c
index 913f63b..fad76fd 100644
--- bin/xbps-create/main.c
+++ bin/xbps-create/main.c
@@ -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));
--
1.8.1.3