[PATCH resend 2/2] scripts/package: use fakeroot if available

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Unless already running as root, use fakeroot to ensure the files
in the generated binary packages are owned by root.  Without this
change, you have to set ROOTCMD or become root yourself to run
"make foo-pkg".

With this patch applied, you can run "make oldconfig rpm-pkg" as
an ordinary user to build a binary package for an updated kernel
tree and it should just work.

fakeroot is a bit too zealous by default in pretending files are
owned by root.  Unless directed otherwise, its wrapped stat() and
lstat() set st_uid and st_gid to 0 for all files.  This slows
down the Linux build with CONFIG_LOCALVERSION_AUTO a lot, since
git notices that the owners have changed and has to reread the
entire kernel tree to learn that the content has not changed.
Since "make modules_install" and "scripts/package/foo" run within
the same fakeroot session, we are free to avoid this by telling
fakeroot to use the actual owner and group for preexisting files,
by passing it the -u option.

Signed-off-by: Jonathan Nieder <jrnieder@xxxxxxxxx>
---
 scripts/package/Makefile |    9 +++++++++
 1 files changed, 9 insertions(+), 0 deletions(-)

diff --git a/scripts/package/Makefile b/scripts/package/Makefile
index 14b65a8..14fdeda 100644
--- a/scripts/package/Makefile
+++ b/scripts/package/Makefile
@@ -1,6 +1,15 @@
 # Makefile for the different targets used to generate full packages of a kernel
 # It uses the generic clean infrastructure of kbuild
 
+# How to acquire (fake) root privileges
+ifndef ROOTCMD
+ifneq ($(shell id -u),0)
+ifeq ($(shell which fakeroot >/dev/null 2>&1 && echo found),found)
+ROOTCMD := fakeroot -u
+endif
+endif
+endif
+
 # RPM target
 # ---------------------------------------------------------------------------
 # The rpm target generates two rpm files:
-- 
1.6.5.rc1.199.g596ec

--
To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux&nblp;USB Development]     [Linux Media]     [Video for Linux]     [Linux Audio Users]     [Yosemite Secrets]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux