Cannot install kernel as user

Jeremie Le Hen jeremie at le-hen.org
Fri Jan 21 15:32:34 PST 2005


On Sat, Jan 22, 2005 at 05:35:46AM +1100, Peter Jeremy wrote:
> On Fri, 2005-Jan-21 08:59:35 -0700, Ryan Sommers wrote:
> >> I thought about adding a flag such as NO_INSTALLCHOWN in both
> >> kern.post.mk and kmod.mk.  What do you think of the idea ?
> >>
> >> I saw there are KMODOWN and KMODGRP in kmod.mk, but it seems there is
> >> no similar facility in kern.post.mk.  Maybe it would be worth having
> >> KERNOWN and KERNGRP as well.
> >>
> >> I can submit a patch if asked.
> 
> Yes please.

Well, firstly I wanted to introduced the NO_INSTALLCHOWN variable as I
said in my previous mail, preventing install(8) from doing a chown(2)
on the installed file (kernel or module).  But I finally decided to
use a variable named INSTALLCHOWN which will contain "-o user -g group".
This is more flexible and reduces the patch to its simplest form.

As Ryan Sommers stated, this patch is not mandatory but I will leave it
online [1] as it can be useful for some people.

Regards,

[1] http://jeremie.le-hen.org/~tataz/patches/FreeBSD/sys.INSTALLCHOWN.patch
-- 
Jeremie Le Hen
jeremie at le-hen.org
-------------- next part --------------
Index: conf/kern.post.mk
===================================================================
RCS file: /home/ncvs/src/sys/conf/kern.post.mk,v
retrieving revision 1.74
diff -u -p -u -p -r1.74 kern.post.mk
--- conf/kern.post.mk	1 Dec 2004 23:16:31 -0000	1.74
+++ conf/kern.post.mk	21 Jan 2005 23:18:49 -0000
@@ -14,6 +14,9 @@ MKMODULESENV+=	DESTDIR="${DESTDIR}"
 .endif
 MKMODULESENV+=	KERNBUILDDIR="${.CURDIR}"
 
+# Default to install as root:wheel.
+INSTALLCHOWN?=	-o root -g wheel
+
 .MAIN: all
 
 .for target in all clean cleandepend cleandir clobber depend install \
@@ -211,17 +214,17 @@ kernel-install:
 .endif
 	mkdir -p ${DESTDIR}${KODIR}
 .if defined(DEBUG) && defined(INSTALL_DEBUG)
-	${INSTALL} -p -m 555 -o root -g wheel ${FULLKERNEL} ${DESTDIR}${KODIR}
+	${INSTALL} -p -m 555 ${INSTALLCHOWN} ${FULLKERNEL} ${DESTDIR}${KODIR}
 .else
-	${INSTALL} -p -m 555 -o root -g wheel ${KERNEL_KO} ${DESTDIR}${KODIR}
+	${INSTALL} -p -m 555 ${INSTALLCHOWN} ${KERNEL_KO} ${DESTDIR}${KODIR}
 .endif
 
 kernel-reinstall:
 	@-chflags -R noschg ${DESTDIR}${KODIR}
 .if defined(DEBUG) && defined(INSTALL_DEBUG)
-	${INSTALL} -p -m 555 -o root -g wheel ${FULLKERNEL} ${DESTDIR}${KODIR}
+	${INSTALL} -p -m 555 ${INSTALLCHOWN} ${FULLKERNEL} ${DESTDIR}${KODIR}
 .else
-	${INSTALL} -p -m 555 -o root -g wheel ${KERNEL_KO} ${DESTDIR}${KODIR}
+	${INSTALL} -p -m 555 ${INSTALLCHOWN} ${KERNEL_KO} ${DESTDIR}${KODIR}
 .endif
 
 config.o env.o hints.o majors.o vers.o vnode_if.o:
Index: conf/kmod.mk
===================================================================
RCS file: /home/ncvs/src/sys/conf/kmod.mk,v
retrieving revision 1.176
diff -u -p -u -p -r1.176 kmod.mk
--- conf/kmod.mk	8 Dec 2004 07:23:12 -0000	1.176
+++ conf/kmod.mk	21 Jan 2005 23:18:41 -0000
@@ -225,6 +225,8 @@ _INSTALLFLAGS:=	${INSTALLFLAGS}
 _INSTALLFLAGS:=	${_INSTALLFLAGS${ie}}
 .endfor
 
+INSTALLCHOWN?=	-o ${KMODOWN} -g ${KMODGRP}
+
 .if !target(install.debug) && defined(DEBUG_FLAGS)
 install.debug:
 	cd ${.CURDIR}; ${MAKE} -DINSTALL_DEBUG install
@@ -235,10 +237,10 @@ realinstall: _kmodinstall
 .ORDER: beforeinstall _kmodinstall
 _kmodinstall:
 .if defined(DEBUG_FLAGS) && defined(INSTALL_DEBUG)
-	${INSTALL} -o ${KMODOWN} -g ${KMODGRP} -m ${KMODMODE} \
+	${INSTALL} ${INSTALLCHOWN} -m ${KMODMODE} \
 	    ${_INSTALLFLAGS} ${FULLPROG} ${DESTDIR}${KMODDIR}
 .else
-	${INSTALL} -o ${KMODOWN} -g ${KMODGRP} -m ${KMODMODE} \
+	${INSTALL} ${INSTALLCHOWN} -m ${KMODMODE} \
 	    ${_INSTALLFLAGS} ${PROG} ${DESTDIR}${KMODDIR}
 
 .include <bsd.links.mk>


More information about the freebsd-current mailing list