Date: Sat, 28 Oct 2006 20:32:07 -0200 From: Jean Milanez Melo <jmelo@freebsdbrasil.com.br> To: Jeremie Le Hen <jeremie@le-hen.org> Cc: freebsd-small@FreeBSD.org, freebsd-current@FreeBSD.org, Julian Elischer <julian@FreeBSD.org> Subject: Re: Handling non-standard directories in tinybsd Message-ID: <4543DA67.4030008@freebsdbrasil.com.br> In-Reply-To: <20061026133742.GK20405@obiwan.tataz.chchile.org> References: <20061024100641.GB20405@obiwan.tataz.chchile.org> <453DE863.7070305@freebsdbrasil.com.br> <20061024115727.GD20405@obiwan.tataz.chchile.org> <453E1FBC.5060700@freebsdbrasil.com.br> <20061025104306.GI20405@obiwan.tataz.chchile.org> <453F5271.70309@freebsdbrasil.com.br> <20061026133637.GJ20405@obiwan.tataz.chchile.org> <20061026133742.GK20405@obiwan.tataz.chchile.org>
next in thread | previous in thread | raw e-mail | index | archive | help
This is a multi-part message in MIME format. --------------060509030608050000020407 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Jeremie Le Hen wrote: > And the patch... > > On Thu, Oct 26, 2006 at 03:36:37PM +0200, Jeremie Le Hen wrote: >> Hi Jean, >> >> On Wed, Oct 25, 2006 at 10:02:57AM -0200, Jean Milanez Melo wrote: >>>> My feeling is that TinyBSD has used the KISS principle so far. The code >>>> as well as the configuration is somewhat raw (no offence here), but it is >>>> thereby easy to use, debug and modify at needs. I am going to code this >>>> in my source tree this afternoon and I will be glad to provide you the >>>> patch. >>> That's right, make tinybsd simpler is really our idea :) >>> >>> Send to me your patch and i'll take a look. >> The patch is attached and works pretty well for me. >> In addition to tinybsd.localfiles, I've made a few improvements: >> - I've moved the configuration filenames in a variable ; >> - When computing "sub-dependencies", use a temporary alternate file >> and then merge it back to the main dependency file ; >> - "chflags 0" files that are to be turned into symlinks before unlinking >> them ; >> - Handle /boot.config correctly in the configuration directory. >> >> Thank you. >> Regards, > > Hi Jeremie, Your patch was good, but i've made some changes. Here the patch. Take a look and tell me what do you think, if it's ok for you i'll ask Julian to commit. Thanks. Jean --------------060509030608050000020407 Content-Type: text/plain; x-mac-type="0"; x-mac-creator="0"; name="tinybsd.diff" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="tinybsd.diff" Index: README =================================================================== RCS file: /home/ncvs/src/tools/tools/tinybsd/README,v retrieving revision 1.1 diff -u -r1.1 README --- README 20 Sep 2006 22:24:17 -0000 1.1 +++ README 28 Oct 2006 23:22:41 -0000 @@ -69,6 +69,10 @@ usr/sbin/pwd_mkdb usr/sbin/setkey +tinybsd.localfiles: Similar to tinybsd.basefiles but for /usr/local/. The +difference is that directories will have to be created by TinyBSD because +they are not handle by mtree(1). + etc/: This is the directory where you can put your custom /etc configuration. # ls /usr/src/tools/tools/tinybsd/tinybsd Index: tinybsd =================================================================== RCS file: /home/ncvs/src/tools/tools/tinybsd/tinybsd,v retrieving revision 1.4 diff -u -r1.4 tinybsd --- tinybsd 11 Oct 2006 21:46:53 -0000 1.4 +++ tinybsd 28 Oct 2006 23:22:41 -0000 @@ -14,6 +14,8 @@ fi WORKDIR=/usr/obj/tinybsdbuild KERNCONF=TINYBSD +BASEFILE="tinybsd.basefiles" +LOCALFILE="tinybsd.localfiles" DEFINSTARGS="-o 0 -g 0 -m 555" TS="=====>" @@ -239,6 +241,10 @@ fi } +rotate_buidlog() { + mv -f ${HOME}/tinybsd.log ${HOME}/tinybsd.log.old +} + remove_workdir() { chflags -R noschg ${WORKDIR} echo "${TS} Removing "${WORKDIR} @@ -250,7 +256,7 @@ prework() { - remove_workdir + remove_workdir mkdir -p ${WORKDIR} } @@ -259,18 +265,18 @@ echo "${TS} Creating directory hierarchy... " mtree -deU -f /etc/mtree/BSD.root.dist -p ${WORKDIR} mtree -deU -f /etc/mtree/BSD.usr.dist -p ${WORKDIR}/usr + mtree -deU -f /etc/mtree/BSD.local.dist -p ${WORKDIR}/usr/local mtree -deU -f /etc/mtree/BSD.var.dist -p ${WORKDIR}/var } - copy_binaries() { -#set -xv - for file in `cat ${CURRENTDIR}/conf/${CONF}/tinybsd.basefiles | grep -v "#" | \ + cd ${CURRENTDIR}/conf/${CONF} + + for file in `cat ${BASEFILE} ${LOCALFILE} | grep -v "#" | \ cut -f1 -d":" | sort | uniq` ; do echo "${TS} Copying "/${file}" to "${WORKDIR}/${file} cp -fp /${file} ${WORKDIR}/${file} ; done -#set +xv } make_kernel() { @@ -293,7 +299,7 @@ TDEPFILES="`mktemp -t depsymlnk`" cd ${CURRENTDIR}/conf/${CONF} - for file in `cat tinybsd.basefiles | grep -v "#" | cut -f1 -d":"`; do + for file in `cat ${BASEFILE} ${LOCALFILE} | grep -v "#" | cut -f1 -d":"`; do ldd -f "%p\n" /${file} >> ${TDEPFILE} ; # don't worry on progs been "not dynamic" done @@ -305,7 +311,7 @@ echo $pamdep >> ${TDEPFILE} ; ldd -f "%p\n" /${pamdep} >> ${TDEPFILE} ; done - + for lib in `cat ${TDEPFILE} | sort | uniq`; do echo "${TS} Copying "${lib}" to "${WORKDIR}${lib} cp -fp ${lib} ${WORKDIR}${lib} ; @@ -321,6 +327,7 @@ TARGET_FILE=`echo $i | awk -F ":" '{print $2}'` echo "${TS} Unlinking ${WORKDIR}${TARGET_FILE}" + chroot ${WORKDIR} /bin/chflags 0 ${TARGET_FILE} chroot ${WORKDIR} /bin/rm -f ${TARGET_FILE} echo "${TS} Symlinking ${SOURCE_FILE} to ${TARGET_FILE}" @@ -349,27 +356,29 @@ ssh-keygen -t rsa -f ${WORKDIR}/etc/ssh/ssh_host_rsa_key -N '' } -personal_directories() { +personal_conf() { echo "${TS} Copying your custom configuration on conf/ ..." - for custom in `find ${CURRENTDIR}/conf/${CONF}/ -type d -depth 1`; do + for custom in `find ${CURRENTDIR}/conf/${CONF}/ -type d -depth 1 \! -name CVS`; do cp -Rp ${custom}/* ${WORKDIR}/${custom#${CURRENTDIR}/conf/${CONF}/}/ done + + if [ -f ${CURRENTDIR}/conf/${CONF}/boot.config ]; then + cp ${CURRENTDIR}/conf/${CONF}/boot.config ${WORKDIR}/boot.config + fi } symlinks() { -#set -xv - for i in `cat tinybsd.basefiles | grep -v "#" | grep ":"`; do +set -xv + for i in `cat ${BASEFILE} ${LOCALFILE} | grep -v "#" | grep ":"`; do SOURCE_FILE=`echo $i | awk -F ":" {'print $1'}` TARGET_FILE=`echo $i | awk -F ":" {'print $2'}` chroot ${WORKDIR} /bin/ln -vs /${SOURCE_FILE} ${TARGET_FILE} done -#set +xv +set +xv } create_image() { - #set -ex - VNODEFILE=`mktemp -t tinybsd` IMGMNT=`mktemp -d -t tinybsd` @@ -448,6 +457,9 @@ loadconfig saveconfig +# Rotate build log +rotate_buidlog + # Now start logging. ( # Do the build @@ -460,7 +472,7 @@ symlinks create_etc create_ssh_keys - personal_directories + personal_conf create_image #set +xv ) 2>&1 |tee -a ${HOME}/tinybsd.log Index: conf/bridge/tinybsd.localfiles =================================================================== RCS file: conf/bridge/tinybsd.localfiles diff -N conf/bridge/tinybsd.localfiles --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ conf/bridge/tinybsd.localfiles 28 Oct 2006 23:22:41 -0000 @@ -0,0 +1,6 @@ +# $FreeBSD$ +# Add here your third-party applications that are already installed on /usr/local +# Make sure you have enough space to add it. +# Example: +# usr/local/sbin/httpd + Index: conf/default/tinybsd.localfiles =================================================================== RCS file: conf/default/tinybsd.localfiles diff -N conf/default/tinybsd.localfiles --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ conf/default/tinybsd.localfiles 28 Oct 2006 23:22:41 -0000 @@ -0,0 +1,6 @@ +# $FreeBSD$ +# Add here your third-party applications that are already installed on /usr/local +# Make sure you have enough space to add it. +# Example: +# usr/local/sbin/httpd + Index: conf/firewall/tinybsd.localfiles =================================================================== RCS file: conf/firewall/tinybsd.localfiles diff -N conf/firewall/tinybsd.localfiles --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ conf/firewall/tinybsd.localfiles 28 Oct 2006 23:22:41 -0000 @@ -0,0 +1,6 @@ +# $FreeBSD$ +# Add here your third-party applications that are already installed on /usr/local +# Make sure you have enough space to add it. +# Example: +# usr/local/sbin/httpd + Index: conf/minimal/tinybsd.localfiles =================================================================== RCS file: conf/minimal/tinybsd.localfiles diff -N conf/minimal/tinybsd.localfiles --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ conf/minimal/tinybsd.localfiles 28 Oct 2006 23:22:41 -0000 @@ -0,0 +1,6 @@ +# $FreeBSD$ +# Add here your third-party applications that are already installed on /usr/local +# Make sure you have enough space to add it. +# Example: +# usr/local/sbin/httpd + Index: conf/vpn/tinybsd.localfiles =================================================================== RCS file: conf/vpn/tinybsd.localfiles diff -N conf/vpn/tinybsd.localfiles --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ conf/vpn/tinybsd.localfiles 28 Oct 2006 23:22:41 -0000 @@ -0,0 +1,6 @@ +# $FreeBSD$ +# Add here your third-party applications that are already installed on /usr/local +# Make sure you have enough space to add it. +# Example: +# usr/local/sbin/httpd + Index: conf/wireless/tinybsd.localfiles =================================================================== RCS file: conf/wireless/tinybsd.localfiles diff -N conf/wireless/tinybsd.localfiles --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ conf/wireless/tinybsd.localfiles 28 Oct 2006 23:22:41 -0000 @@ -0,0 +1,6 @@ +# $FreeBSD$ +# Add here your third-party applications that are already installed on /usr/local +# Make sure you have enough space to add it. +# Example: +# usr/local/sbin/httpd + Index: conf/wrap/tinybsd.localfiles =================================================================== RCS file: conf/wrap/tinybsd.localfiles diff -N conf/wrap/tinybsd.localfiles --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ conf/wrap/tinybsd.localfiles 28 Oct 2006 23:22:41 -0000 @@ -0,0 +1,6 @@ +# $FreeBSD$ +# Add here your third-party applications that are already installed on /usr/local +# Make sure you have enough space to add it. +# Example: +# usr/local/sbin/httpd + --------------060509030608050000020407--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4543DA67.4030008>