Cannot install kernel as user
Jeremie Le Hen
jeremie at le-hen.org
Tue Jan 25 11:12:03 PST 2005
> It's also useful when doing a build inside a jail as flags cannot be
> changed insode a jail.
>
> I got around it by replacing 'chflags' in the jail by a shell script the
> does nothing :-).
I thought over how getting neatly rid of this. I would like to
introduce a `INSTALL_AS_USER' variable, as it exists in
ports/Mk/bsd.port.mk. However I don't want to duplicate this code :
%%%
.if exists(${DESTDIR}${KODIR})
-thiskernel=`sysctl -n kern.bootfile` ; \
if [ "`dirname "$$thiskernel"`" != ${DESTDIR}${KODIR} ] ; then \
chflags -R noschg ${DESTDIR}${KODIR} ; \
rm -rf ${DESTDIR}${KODIR} ; \
else \
if [ -d ${DESTDIR}${KODIR}.old ] ; then \
chflags -R noschg ${DESTDIR}${KODIR}.old ; \
rm -rf ${DESTDIR}${KODIR}.old ; \
fi ; \
mv ${DESTDIR}${KODIR} ${DESTDIR}${KODIR}.old ; \
sysctl kern.bootfile=${DESTDIR}${KODIR}.old/"`basename "$$thiskernel"`" ; \
fi
.endif
%%%
Your workaround might be a good start : create a dummy chflags(8) which
will be used when INSTALL_AS_USER is set. Of course this will need to
introduce an internal variable, say ${CHFLAGS}.
My problem is actually that I don't know where to make this dummy
chflags(8) live in the source tree. Ideas ?
Regards,
--
Jeremie Le Hen
jeremie at le-hen.org
More information about the freebsd-current
mailing list