summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorxtraeme <xtraeme@pkgsrc.org>2008-03-27 20:54:09 +0000
committerxtraeme <xtraeme@pkgsrc.org>2008-03-27 20:54:09 +0000
commit2222d2fd5b4198f29de094e91f9e66791b74f5d9 (patch)
tree48e225ffa8dc05a1474cace9d08edaf1a261c0b0
parent8fdfd84e9aade80c3e92605aa6771284c12b0e98 (diff)
downloadpkgsrc-2222d2fd5b4198f29de094e91f9e66791b74f5d9.tar.gz
Update to 0.16 (leaf package):
* Introduce the MOUNT_{PACKAGES,PKGSRC,PKGSRCDIST}_DIR options in the configuration file, to use null mounts for them. By default neither of these directories will be mounted by default. * Introduce the concept of 'targets done'. If the user tries to issue a 'base' target before the 'kernel' target an error message will be printed and an appropiate error code returned (just an example, it is done for all required targets). This is useful to avoid silly things like: [mklivecd kernel target was skipped here] $ mklivecd base $ mklivecd chroot $ mklivecd iso Obviously the 'iso' target failed because it couldn't find some required files.
-rw-r--r--sysutils/mklivecd/Makefile4
-rw-r--r--sysutils/mklivecd/files/mklivecd.824
-rwxr-xr-xsysutils/mklivecd/files/mklivecd.sh252
3 files changed, 170 insertions, 110 deletions
diff --git a/sysutils/mklivecd/Makefile b/sysutils/mklivecd/Makefile
index 14ce5ae7606..4f5e637cd37 100644
--- a/sysutils/mklivecd/Makefile
+++ b/sysutils/mklivecd/Makefile
@@ -1,6 +1,6 @@
-# $NetBSD: Makefile,v 1.44 2008/03/04 10:36:58 xtraeme Exp $
+# $NetBSD: Makefile,v 1.45 2008/03/27 20:54:09 xtraeme Exp $
-DISTNAME= mklivecd-0.15.3
+DISTNAME= mklivecd-0.16
CATEGORIES= sysutils
MASTER_SITES= # empty
DISTFILES= # empty
diff --git a/sysutils/mklivecd/files/mklivecd.8 b/sysutils/mklivecd/files/mklivecd.8
index 3173d9273ed..16957de335f 100644
--- a/sysutils/mklivecd/files/mklivecd.8
+++ b/sysutils/mklivecd/files/mklivecd.8
@@ -1,8 +1,8 @@
-.\" $NetBSD: mklivecd.8,v 1.18 2007/12/01 20:27:16 wiz Exp $
+.\" $NetBSD: mklivecd.8,v 1.19 2008/03/27 20:54:09 xtraeme Exp $
.\"
.\" mklivecd - Make your own NetBSD/x86 Live CD-ROM/DVD-ROM
.\"
-.\" Copyright (c) 2004-2007 Juan Romero Pardines.
+.\" Copyright (c) 2004-2008 Juan Romero Pardines.
.\" All rights reserved.
.\"
.\" This code is derived from software contributed to The NetBSD Foundation
@@ -36,7 +36,7 @@
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
.\" POSSIBILITY OF SUCH DAMAGE.
.\"
-.Dd July 3, 2007
+.Dd March 27, 2008
.Dt MKLIVECD 8
.Os
.Sh NAME
@@ -158,6 +158,12 @@ target is invoked, the pkgsrc directory will be mounted via
and you could install any package.
Defaults to
.Pa /usr/pkgsrc .
+.It MOUNT_PKGSRC_DIR
+Mount the pkgsrc directory specified in the
+.Pa $PKGSRCDIR
+option.
+Defaults to
+.Pa no .
.It PKGSRCDISTDIR
The
.Nx
@@ -168,6 +174,12 @@ target is invoked, the distfiles directory will be mounted via
.Xr mount_null 8 .
Defaults to
.Pa /usr/pkgsrc/distfiles .
+.It MOUNT_PKGSRCDIST_DIR
+Mount the pkgsrc distfiles directory specified in the
+.Pa $PKGSRCDISTDIR
+option.
+Defaults to
+.Pa no .
.It PACKAGESDIR
The
.Nx
@@ -178,6 +190,12 @@ target is invoked, the packages directory will be mounted via
.Xr mount_null 8 .
Defaults to
.Pa /usr/pkgsrc/packages .
+.It MOUNT_PACKAGES_DIR
+Mount the packages pkgsrc directory specified in the
+.Pa $PACKAGESDIR
+option.
+Defaults to
+.Pa no .
.It SHAREDIR
The main directory used to store the Makefiles, kernel, example configuration
files, etc.
diff --git a/sysutils/mklivecd/files/mklivecd.sh b/sysutils/mklivecd/files/mklivecd.sh
index a5cac1a776a..e43eab3791c 100755
--- a/sysutils/mklivecd/files/mklivecd.sh
+++ b/sysutils/mklivecd/files/mklivecd.sh
@@ -1,8 +1,8 @@
#!/bin/sh
#
-# $NetBSD: mklivecd.sh,v 1.46 2007/07/03 15:45:06 xtraeme Exp $
+# $NetBSD: mklivecd.sh,v 1.47 2008/03/27 20:54:09 xtraeme Exp $
#
-# Copyright (c) 2004-2007 Juan Romero Pardines.
+# Copyright (c) 2004-2008 Juan Romero Pardines.
# All rights reserved.
#
# This code is derived from software contributed to The NetBSD Foundation
@@ -40,13 +40,19 @@
# mklivecd - Make your own NetBSD/x86 Live CD-ROM/DVD-ROM #
# ======================================================================== #
+#
+# Private stuff.
+#
: ${progname:=$(basename $0)}
: ${config_dir:=$HOME/.mklivecd}
: ${pers_conffile:=personal_config}
: ${tmp_file:=$(/usr/bin/mktemp /tmp/${progname}.XXXXXX)}
-: ${pkgsrc_mntstat:=$config_dir/pkgsrc_mount.stat}
-: ${pkgsrcdist_mntstat:=$config_dir/pkgsrcdist_mount.stat}
-: ${packages_mntstat:=$config_dir/packages_mount.stat}
+: ${pkgsrc_mntstat:=$config_dir/.pkgsrc_mount.stat}
+: ${pkgsrcdist_mntstat:=$config_dir/.pkgsrcdist_mount.stat}
+: ${packages_mntstat:=$config_dir/.packages_mount.stat}
+: ${kernel_stage_done:=$config_dir/.kernel_stage_done}
+: ${base_stage_done:=$config_dir/.base_stage_done}
+: ${chroot_stage_done:=$config_dir/.chroot_stage_done}
#
# Neeeded to disable GRUB on amd64.
@@ -187,7 +193,8 @@ bye()
do_conf()
{
- BASE_VARS="SOURCEDIR PACKAGESDIR PKGSRCDIR PKGSRCDISTDIR SHAREDIR BASEDIR \
+ BASE_VARS="SOURCEDIR MOUNT_PACKAGES_DIR PACKAGESDIR MOUNT_PKGSRC_DIR \
+ PKGSRCDIR MOUNT_PKGSRCDIST_DIR PKGSRCDISTDIR SHAREDIR BASEDIR \
WORKDIR ISODIR FETCH_SETS REMOTE_SETS_URL BASE_SETS_DIR \
X11_SETS_DIR BASE_SETS X11_SETS CHROOT_SHELL"
@@ -206,8 +213,11 @@ do_conf()
# Base directories/sets
: ${SOURCEDIR:=/usr/src}
+ : ${MOUNT_PACKAGES_DIR:=no}
: ${PACKAGESDIR:=/usr/pkgsrc/packages}
+ : ${MOUNT_PKGSRC_DIR:=no}
: ${PKGSRCDIR:=/usr/pkgsrc}
+ : ${MOUNT_PKGSRCDIST_DIR:=no}
: ${PKGSRCDISTDIR:=/usr/pkgsrc/distfiles}
: ${SHAREDIR:=@PREFIX@/share/mklivecd}
: ${BASEDIR:=$HOME/livecd}
@@ -471,7 +481,8 @@ do_cdlive()
. $config_file
YESNOVARS="FETCH_SETS ENABLE_X11 USE_GNU_GRUB \
- VND_COMPRESSION BLANK_BEFORE_BURN PERSONAL_CONFIG"
+ VND_COMPRESSION BLANK_BEFORE_BURN PERSONAL_CONFIG \
+ MOUNT_PKGSRC_DIR MOUNT_PKGSRCDIST_DIR MOUNT_PACKAGES_DIR"
for v in $YESNOVARS
do
@@ -559,6 +570,8 @@ do_cdlive()
copy_bootfiles
do_build_kernels
fi
+
+ touch $kernel_stage_done
;;
fetch)
#
@@ -566,8 +579,7 @@ do_cdlive()
#
if is_enabled FETCH_SETS; then
if [ ! -d $BASE_SETS_DIR ]; then
- showmsg "Couldn't find $BASE_SETS_DIR, exiting"
- bye 1
+ mkdir -p $BASE_SETS_DIR
fi
cd $BASE_SETS_DIR
for f in ${BASE_SETS}
@@ -601,6 +613,11 @@ do_cdlive()
;;
base)
+ if [ ! -f $kernel_stage_done ]; then
+ showmsg "The kernel target wasn't called, please do so."
+ bye 1
+ fi
+
for F in ${BASE_SETS}
do
if [ ! -f $BASE_SETS_DIR/$F ]; then
@@ -672,7 +689,7 @@ do_cdlive()
cat > $ISODIR/etc/rc.d/root <<_EOF_
#!/bin/sh
#
-# \$NetBSD: mklivecd.sh,v 1.46 2007/07/03 15:45:06 xtraeme Exp $
+# \$NetBSD: mklivecd.sh,v 1.47 2008/03/27 20:54:09 xtraeme Exp $
#
# PROVIDE: root
@@ -701,8 +718,14 @@ _EOF_
showmsgstring
showmsg "Target base finished."
[ -n "$verbose_mode" ] && showmsg "Next step: ${progname} chroot"
+ touch $base_stage_done
;;
chroot)
+ if [ ! -f $base_stage_done ]; then
+ showmsg "The base target wasn't called, please do so."
+ bye 1
+ fi
+
if [ ! -f $ISODIR/etc/profile ]; then
( \
echo "export PS1=\"$KERNEL_NAME> \""; \
@@ -724,55 +747,61 @@ _EOF_
showmsg "Entering into the chroot!"
- if [ -d $PKGSRCDIR ]; then
- if [ -f $pkgsrc_mntstat ]; then
- count=$(cat $pkgsrc_mntstat)
- count=$(($count + 1))
- echo $count > $pkgsrc_mntstat
- echo "=> pkgsrc directory already mounted."
- else
- mount_null $PKGSRCDIR $ISODIR/usr/pkgsrc
- if [ "$?" -eq 0 ]; then
- echo "=> pkgsrc directory ready."
- echo "1" > $pkgsrc_mntstat
+ if is_enabled MOUNT_PKGSRC_DIR; then
+ if [ -d $PKGSRCDIR ]; then
+ if [ -f $pkgsrc_mntstat ]; then
+ count=$(cat $pkgsrc_mntstat)
+ count=$(($count + 1))
+ echo $count > $pkgsrc_mntstat
+ echo "=> pkgsrc directory already mounted."
+ else
+ mount_null $PKGSRCDIR $ISODIR/usr/pkgsrc
+ if [ "$?" -eq 0 ]; then
+ echo "=> pkgsrc directory ready."
+ echo "1" > $pkgsrc_mntstat
+ fi
fi
- fi
- else
- showmsg "==> couldn't find $PKGSRCDIR."
- fi
-
- if [ -d $PKGSRCDISTDIR ]; then
- if [ -f $pkgsrcdist_mntstat ]; then
- count=$(cat $pkgsrcdist_mntstat)
- count=$(($count +1))
- echo $count > $pkgsrcdist_mntstat
- echo "=> distfiles directory already mounted."
else
- mount_null $PKGSRCDISTDIR $ISODIR/usr/pkgsrc/distfiles
- if [ "$?" -eq 0 ]; then
- echo "=> distfiles directory ready."
- echo "1" > $pkgsrcdist_mntstat
+ showmsg "==> couldn't find $PKGSRCDIR."
+ fi
+ fi
+
+ if is_enabled MOUNT_PKGSRCDIST_DIR; then
+ if [ -d $PKGSRCDISTDIR ]; then
+ if [ -f $pkgsrcdist_mntstat ]; then
+ count=$(cat $pkgsrcdist_mntstat)
+ count=$(($count +1))
+ echo $count > $pkgsrcdist_mntstat
+ echo "=> distfiles directory already mounted."
+ else
+ mount_null $PKGSRCDISTDIR $ISODIR/usr/pkgsrc/distfiles
+ if [ "$?" -eq 0 ]; then
+ echo "=> distfiles directory ready."
+ echo "1" > $pkgsrcdist_mntstat
+ fi
fi
- fi
- else
- echo "==> couldn't find $PKGSRCDISTDIR."
- fi
+ else
+ echo "==> couldn't find $PKGSRCDISTDIR."
+ fi
+ fi
- if [ -d $PACKAGESDIR ]; then
- if [ -f $packages_mntstat ]; then
- count=$(cat $packages_mntstat)
- count=$(($count + 1))
- echo $count > $packages_mntstat
- echo "=> packages directory already mounted."
- else
- mount_null $PACKAGESDIR $ISODIR/usr/pkgsrc/packages
- if [ "$?" -eq 0 ]; then
- echo "=> packages directory ready."
- echo "1" > $packages_mntstat
+ if is_enabled MOUNT_PACKAGES_DIR; then
+ if [ -d $PACKAGESDIR ]; then
+ if [ -f $packages_mntstat ]; then
+ count=$(cat $packages_mntstat)
+ count=$(($count + 1))
+ echo $count > $packages_mntstat
+ echo "=> packages directory already mounted."
+ else
+ mount_null $PACKAGESDIR $ISODIR/usr/pkgsrc/packages
+ if [ "$?" -eq 0 ]; then
+ echo "=> packages directory ready."
+ echo "1" > $packages_mntstat
fi
fi
- else
- echo "==> couldn't find $PACKAGESDIR."
+ else
+ echo "==> couldn't find $PACKAGESDIR."
+ fi
fi
echo
@@ -877,68 +906,76 @@ _EOF_
#
# Unmount pkgsrc related directories.
#
- if [ ! -f $pkgsrcdist_mntstat ]; then
- showmsg "distfiles directory was not mounted before."
- else
- cnt=$(cat $pkgsrcdist_mntstat)
- if [ "$cnt" -gt 1 ]; then
- cnt=$(($cnt - 1))
- echo $cnt > $pkgsrcdist_mntstat
- [ -n "$verbose_mode" ] && \
- showmsg "distfiles directory still in use."
- else
- [ -n "$verbose_mode" ] && \
- echo "=> Unmounting distfiles directory."
- umount -R $ISODIR/usr/pkgsrc/distfiles
- if [ $? -eq 0 ]; then
- rm $pkgsrcdist_mntstat
- else
- showmsg "Couldn't umount $PKGSRCDISTDIR."
- fi
- fi
- fi
+ if is_enabled MOUNT_PKGSRCDIST_DIR; then
+ if [ ! -f $pkgsrcdist_mntstat ]; then
+ showmsg "distfiles directory was not mounted before."
+ else
+ cnt=$(cat $pkgsrcdist_mntstat)
+ if [ "$cnt" -gt 1 ]; then
+ cnt=$(($cnt - 1))
+ echo $cnt > $pkgsrcdist_mntstat
+ [ -n "$verbose_mode" ] && \
+ showmsg "distfiles directory still in use."
+ else
+ [ -n "$verbose_mode" ] && \
+ echo "=> Unmounting distfiles directory."
+ umount -R $ISODIR/usr/pkgsrc/distfiles
+ if [ $? -eq 0 ]; then
+ rm $pkgsrcdist_mntstat
+ else
+ showmsg "Couldn't umount $PKGSRCDISTDIR."
+ fi
+ fi
+ fi
+ fi
- if [ ! -f $packages_mntstat ]; then
- showmsg "packages directory was not mounted before."
- else
- cnt=$(cat $packages_mntstat)
- if [ "$cnt" -gt 1 ]; then
- cnt=$(($cnt - 1))
- echo $cnt > $packages_mntstat
- showmsg "pkgsrc directory still in use."
+ if is_enabled MOUNT_PACKAGES_DIR; then
+ if [ ! -f $packages_mntstat ]; then
+ showmsg "packages directory was not mounted before."
else
- [ -n "$verbose_mode" ] && \
- echo "=> Unmounting packages directory."
- umount -R $ISODIR/usr/pkgsrc/packages
- if [ "$?" -eq 0 ]; then
- rm $packages_mntstat
+ cnt=$(cat $packages_mntstat)
+ if [ "$cnt" -gt 1 ]; then
+ cnt=$(($cnt - 1))
+ echo $cnt > $packages_mntstat
+ showmsg "pkgsrc directory still in use."
else
- showmsg "Couldn't umount $PACKAGESDIR."
+ [ -n "$verbose_mode" ] && \
+ echo "=> Unmounting packages directory."
+ umount -R $ISODIR/usr/pkgsrc/packages
+ if [ "$?" -eq 0 ]; then
+ rm $packages_mntstat
+ else
+ showmsg "Couldn't umount $PACKAGESDIR."
+ fi
fi
fi
fi
- if [ ! -f $pkgsrc_mntstat ]; then
- showmsg "pkgsrc directory was not mounted before."
- else
- cnt=$(cat $pkgsrc_mntstat)
- if [ "$cnt" -gt 1 ]; then
- cnt=$(($cnt - 1))
- echo $cnt > $pkgsrc_mntstat
- showmsg "pkgsrc directory still in use."
+ if is_enabled MOUNT_PKGSRC_DIR; then
+ if [ ! -f $pkgsrc_mntstat ]; then
+ showmsg "pkgsrc directory was not mounted before."
else
- [ -n "$verbose_mode" ] && \
- echo "=> Unmounting pkgsrc directory."
- umount -R $ISODIR/usr/pkgsrc
- if [ $? -eq 0 ]; then
- rm $pkgsrc_mntstat
- else
- showmsg "Couldn't umount $PKGSRCDIR."
- fi
- fi
- fi
+ cnt=$(cat $pkgsrc_mntstat)
+ if [ "$cnt" -gt 1 ]; then
+ cnt=$(($cnt - 1))
+ echo $cnt > $pkgsrc_mntstat
+ showmsg "pkgsrc directory still in use."
+ else
+ [ -n "$verbose_mode" ] && \
+ echo "=> Unmounting pkgsrc directory."
+ umount -R $ISODIR/usr/pkgsrc
+ if [ $? -eq 0 ]; then
+ rm $pkgsrc_mntstat
+ else
+ showmsg "Couldn't umount $PKGSRCDIR."
+ fi
+ fi
+ fi
+ fi
[ -n "$verbose_mode" ] && showmsg "Size: $(du -sh $ISODIR)"
+
+ touch $chroot_stage_done
;;
clean)
if [ -f $pkgsrc_mntstat -o \
@@ -959,6 +996,11 @@ _EOF_
done
;;
iso)
+ if [ ! -f $chroot_stage_done ]; then
+ showmsg "The chroot target wasn't called, please do do."
+ bye 1
+ fi
+
if is_enabled VND_COMPRESSION; then
cd $ISODIR