summaryrefslogtreecommitdiff
path: root/sysutils/mklivecd
diff options
context:
space:
mode:
authorxtraeme <xtraeme@pkgsrc.org>2005-08-11 20:48:55 +0000
committerxtraeme <xtraeme@pkgsrc.org>2005-08-11 20:48:55 +0000
commit3ee187be18c7353afb9121f2453dae5f8bf3f4da (patch)
tree16a701112d56146e12e2a6357df05b4308190c0a /sysutils/mklivecd
parent38e162ab6af545e9eac130e1c7e000d444ce30b3 (diff)
downloadpkgsrc-3ee187be18c7353afb9121f2453dae5f8bf3f4da.tar.gz
Update to 0.13.0
Changes: * New option added: VND_COMPRESSION. To enable vnd(4) compression on /usr and /var/db/pkg (at the moment). * Fixed a problem with -k and USE_GNU_GRUB=yes, building a kernel with -k overwrites the "menu.lst" file. * Only copy /etc/X11/XF86Config to $ISODIR when there is not a previous file, fixes PR pkg/30889. * Renamed the rc.d script mfs_rcd to livecd, because it's not only mfs anymore. Finally we can have kde-3.4.2 with NetBSD in a live CD-ROM: 416M netbsd-3.99.7_kde-3.4.2.iso Enjoy.
Diffstat (limited to 'sysutils/mklivecd')
-rw-r--r--sysutils/mklivecd/Makefile9
-rw-r--r--sysutils/mklivecd/PLIST4
-rw-r--r--sysutils/mklivecd/files/livecd (renamed from sysutils/mklivecd/files/mfs_rcd)40
-rw-r--r--sysutils/mklivecd/files/mklivecd.821
-rwxr-xr-xsysutils/mklivecd/files/mklivecd.sh123
5 files changed, 142 insertions, 55 deletions
diff --git a/sysutils/mklivecd/Makefile b/sysutils/mklivecd/Makefile
index aa60bc21541..41fab1939e8 100644
--- a/sysutils/mklivecd/Makefile
+++ b/sysutils/mklivecd/Makefile
@@ -1,7 +1,6 @@
-# $NetBSD: Makefile,v 1.22 2005/08/02 12:32:23 xtraeme Exp $
+# $NetBSD: Makefile,v 1.23 2005/08/11 20:48:55 xtraeme Exp $
-DISTNAME= mklivecd-0.12.0
-PKGREVISION= 1
+DISTNAME= mklivecd-0.13.0
CATEGORIES= sysutils
MASTER_SITES= # empty
DISTFILES= # empty
@@ -28,7 +27,7 @@ INSTALLATION_DIRS= man/man8 sbin share/mklivecd
FILES= KERN-LIVECD personal_config
do-install:
-.for f in mfs_rcd mklivecd.sh mklivecd.8
+.for f in livecd mklivecd.sh mklivecd.8
@${SED} -e "s,@PREFIX@,${PREFIX},g" \
-e "s,@LOCALBASE@,${LOCALBASE},g" \
-e "s,@TAR@,${TAR},g" \
@@ -38,7 +37,7 @@ do-install:
${INSTALL_DATA_DIR} ${PREFIX}/share/mklivecd
${INSTALL_SCRIPT} ${WRKDIR}/mklivecd.sh ${PREFIX}/sbin/mklivecd
${INSTALL_MAN} ${WRKDIR}/mklivecd.8 ${PREFIX}/man/man8
- ${INSTALL_DATA} ${WRKDIR}/mfs_rcd ${PREFIX}/share/mklivecd
+ ${INSTALL_DATA} ${WRKDIR}/livecd ${PREFIX}/share/mklivecd
.for F in ${FILES}
${INSTALL_DATA} ${FILESDIR}/${F} ${PREFIX}/share/mklivecd
.endfor
diff --git a/sysutils/mklivecd/PLIST b/sysutils/mklivecd/PLIST
index 5015f412e8d..947ce6f8d66 100644
--- a/sysutils/mklivecd/PLIST
+++ b/sysutils/mklivecd/PLIST
@@ -1,7 +1,7 @@
-@comment $NetBSD: PLIST,v 1.2 2004/04/26 17:28:58 xtraeme Exp $
+@comment $NetBSD: PLIST,v 1.3 2005/08/11 20:48:55 xtraeme Exp $
man/man8/mklivecd.8
sbin/mklivecd
share/mklivecd/KERN-LIVECD
-share/mklivecd/mfs_rcd
+share/mklivecd/livecd
share/mklivecd/personal_config
@dirrm share/mklivecd
diff --git a/sysutils/mklivecd/files/mfs_rcd b/sysutils/mklivecd/files/livecd
index a4e469168f6..076157bc822 100644
--- a/sysutils/mklivecd/files/mfs_rcd
+++ b/sysutils/mklivecd/files/livecd
@@ -1,31 +1,51 @@
-# $NetBSD: mfs_rcd,v 1.5 2005/07/29 12:13:01 xtraeme Exp $
+# $NetBSD: livecd,v 1.1 2005/08/11 20:48:55 xtraeme Exp $
#
# Mount mfs directories and unpack the required files
# before anything.
-# PROVIDE: LiveCD
+# PROVIDE: mklivecd
# BEFORE: disks
-. /etc/rc.subr
+$_rc_subr_loaded . /etc/rc.subr
-name="mfsrc"
+name="livecd"
rcvar=$name
-start_cmd="mfsrc_start"
-stop_cmd="mfsrc_stop"
+start_cmd="livecd_start"
+stop_cmd="livecd_stop"
-mfsrc_start()
+livecd_start()
{
+ if [ -f /stand/usr.zfs ]; then
+ echo -n "=> Mounting compressed images: "
+ /rescue/vnconfig -z vnd0 /stand/usr.zfs
+ /rescue/mount -r /dev/vnd0a /usr
+ if [ ! -f /stand/var_db_pkg.zfs ]; then
+ echo "/usr."
+ else
+ /rescue/vnconfig -z vnd1 /stand/var_db_pkg.zfs
+ /rescue/mount -r /dev/vnd1a /var/db/pkg
+ echo "/usr, /var/db/pkg."
+ fi
+ fi
+
echo -n "=> Mounting Memory based filesystems: "
+
mount_mfs @MNT_DEV_ARGS@ swap /dev
echo -n "/dev, "
+
mount_mfs @MNT_ETC_ARGS@ swap /etc
echo -n "/etc, "
+
mount_mfs @MNT_VAR_ARGS@ swap /var
- echo -n "/root, "
+ echo -n "/var, "
+
mount_mfs @MNT_ROOT_ARGS@ swap /root
- echo "/tmp."
+ echo -n "/root, "
+
mount_mfs @MNT_TMP_ARGS@ swap /tmp
+ echo "/tmp"
+
@HOME@
@HOMETAR@
@USRPKGETC@
@@ -42,7 +62,7 @@ mfsrc_start()
done
}
-mfsrc_stop()
+livecd_stop()
{
echo "Please don't do that :-)"
}
diff --git a/sysutils/mklivecd/files/mklivecd.8 b/sysutils/mklivecd/files/mklivecd.8
index 165ad7e0b1c..82eb6fc4cdd 100644
--- a/sysutils/mklivecd/files/mklivecd.8
+++ b/sysutils/mklivecd/files/mklivecd.8
@@ -1,4 +1,4 @@
-.\" $NetBSD: mklivecd.8,v 1.11 2005/07/29 12:13:01 xtraeme Exp $
+.\" $NetBSD: mklivecd.8,v 1.12 2005/08/11 20:48:55 xtraeme Exp $
.\"
.\" mklivecd - Make your own NetBSD/i386 Live CD-ROM/DVD-ROM
.\"
@@ -28,7 +28,7 @@
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
.\" POSSIBILITY OF SUCH DAMAGE.
.\"
-.Dd July 25, 2005
+.Dd August 11, 2005
.Dt MKLIVECD 8
.Os
.Sh NAME
@@ -274,11 +274,26 @@ When it's disabled the
CDBootloader will be used.
Defaults to
.Sy yes .
+.It VND_COMPRESSION
+Enable this to mount
+.Pa /usr ,
+and
+.Pa /var/db/pkg
+via
+.Xr vnconfig 8
+with compression enabled.
+Note you'll need to have
+.Sy options VND_COMPRESSION
+in your kernel config, at the moment
+this option is only available on
+.Nx
+>=4.0. Defaults to
+.Sy no .
.It MNT_{MOUNT_POINT}_ARGS
This specifies the arguments passed to the
.Xr mount 8
command used in the
-.Pa mfs_rcd
+.Pa livecd
script, when the
.Nx
Live CD is booted.
diff --git a/sysutils/mklivecd/files/mklivecd.sh b/sysutils/mklivecd/files/mklivecd.sh
index 3bc311180e7..afc2de496b4 100755
--- a/sysutils/mklivecd/files/mklivecd.sh
+++ b/sysutils/mklivecd/files/mklivecd.sh
@@ -1,6 +1,6 @@
#!/bin/sh
#
-# $NetBSD: mklivecd.sh,v 1.21 2005/07/29 12:13:01 xtraeme Exp $
+# $NetBSD: mklivecd.sh,v 1.22 2005/08/11 20:48:55 xtraeme Exp $
#
# Copyright (c) 2004, 2005 The NetBSD Foundation, Inc.
# All rights reserved.
@@ -62,6 +62,7 @@
: ${GRUB_FILES:=stage1 stage2 stage2_eltorito iso9660_stage1_5 \
xfs_stage1_5 ufs2_stage1_5 reiserfs_stage1_5 \
jfs_stage1_5 ffs_stage1_5 fat_stage1_5 e2fs_stage1_5}
+: ${GRUB_BOOT_ARGS:= -boot-load-size 30 -boot-info-table}
#
# Common vars for cdboot/grub.
#
@@ -128,8 +129,9 @@ do_conf()
KERNEL_VARS="MULTIPLE_KERNELS BOOTKERN KERNEL_NAME"
MISC_VARS="ENABLE_X11 MKISOFS_ARGS CDRECORD_ARGS BLANK_BEFORE_BURN \
- CDROM_DEVICE PERSONAL_CONFIG IMAGE_NAME PKG_SYSCONFDIR\
- REMOVE_DIRS USE_GNU_GRUB GRUB_FILES_DIR HOSTNAME"
+ CDROM_DEVICE PERSONAL_CONFIG IMAGE_NAME PKG_SYSCONFDIR \
+ REMOVE_DIRS USE_GNU_GRUB GRUB_FILES_DIR HOSTNAME \
+ VND_COMPRESSION"
MNT_VARS="MNT_ETC_ARGS MNT_VAR_ARGS MNT_ROOT_ARGS \
MNT_TMP_ARGS MNT_HOME_ARGS MNT_PKG_SYSCONFDIR_ARGS \
@@ -167,6 +169,7 @@ do_conf()
: ${REMOVE_DIRS:=altroot usr/share/info}
: ${USE_GNU_GRUB:=yes}
: ${GRUB_FILES_DIR:=@LOCALBASE@/lib/grub/@MACHINE_ARCH@-}
+ : ${VND_COMPRESSION:=no}
#
# Mount arguments
#
@@ -293,9 +296,16 @@ copy_bootfiles()
do_menu_lst()
{
- [ -n "$verbose_mode" ] && \
- showmsg_n "Creating $ISODIR/$GRUB_BOOTDIR/menu.lst..."
- if [ ! -f $ISODIR/$GRUB_BOOTDIR/menu.lst ]; then
+ if [ -f $ISODIR/$GRUB_BOOTDIR/menu.lst ]; then
+ showmsg_n "Updating menu.lst..."
+ ( \
+ echo "title NetBSD/$KERNEL_NAME kernel"; \
+ echo "kernel --type=netbsd /$GRUB_BOOTDIR/$BOOTKERN.gz"; \
+ echo; \
+ ) >> $ISODIR/$GRUB_BOOTDIR/menu.lst
+ else
+ [ -n "$verbose_mode" ] && \
+ showmsg_n "Creating $ISODIR/$GRUB_BOOTDIR/menu.lst..."
cat > $ISODIR/$GRUB_BOOTDIR/menu.lst << _EOF_
# Default GRUB menu file created by ${progname}.
# Date: $(date).
@@ -524,7 +534,7 @@ do_cdlive()
fi
fi # ENABLE_X11
- cp $SHAREDIR/mfs_rcd $ISODIR/etc/rc.d
+ cp $SHAREDIR/livecd $ISODIR/etc/rc.d
# /etc/rc.conf
showmsg_n "Installing configuration files..."
@@ -534,7 +544,7 @@ do_cdlive()
touch $ISODIR/etc/fstab
( \
- echo "mfsrc=yes"; \
+ echo "livecd=yes"; \
echo "dhclient=yes dhclient_flags=-q"; \
echo "wscons=yes"; \
echo "hostname=$HOSTNAME"; \
@@ -551,7 +561,7 @@ do_cdlive()
cat > $ISODIR/etc/rc.d/root <<_EOF_
#!/bin/sh
#
-# \$NetBSD: mklivecd.sh,v 1.21 2005/07/29 12:13:01 xtraeme Exp $
+# \$NetBSD: mklivecd.sh,v 1.22 2005/08/11 20:48:55 xtraeme Exp $
#
# PROVIDE: root
@@ -608,9 +618,11 @@ _EOF_
echo $count > $pkgsrc_mntstat
echo "=> pkgsrc directory already mounted."
else
- echo "=> pkgsrc directory ready."
- echo "1" > $pkgsrc_mntstat
- mount_null $PKGSRCDIR $ISODIR/usr/pkgsrc
+ mount_null $PKGSRCDIR $ISODIR/usr/pkgsrc
+ if [ "$?" -eq 0 ]; then
+ echo "=> pkgsrc directory ready."
+ echo "1" > $pkgsrc_mntstat
+ fi
fi
else
showmsg "==> CANNOT FIND $PKGSRCDIR"
@@ -623,9 +635,11 @@ _EOF_
echo $count > $pkgsrcdist_mntstat
echo "=> distfiles directory already mounted."
else
- echo "=> distfiles directory ready."
- echo "1" > $pkgsrcdist_mntstat
- mount_null $PKGSRCDISTDIR $ISODIR/usr/pkgsrc/distfiles
+ mount_null $PKGSRCDISTDIR $ISODIR/usr/pkgsrc/distfiles
+ if [ "$?" -eq 0 ]; then
+ echo "=> distfiles directory ready."
+ echo "1" > $pkgsrcdist_mntstat
+ fi
fi
else
echo "==> CANNOT FIND $PKGSRCDISTDIR"
@@ -641,7 +655,7 @@ _EOF_
fi
cd $ISODIR
- cp -f $SHAREDIR/mfs_rcd $ISODIR/etc/rc.d
+ cp -f $SHAREDIR/livecd $ISODIR/etc/rc.d
SUBST_H="mount_mfs $MNT_HOME_ARGS swap /home"
SUBST_HT="@TAR@ xfzp /stand/mfs_home.tgz -C /"
@@ -653,26 +667,32 @@ _EOF_
-e "s|@MNT_VAR_ARGS@|$MNT_VAR_ARGS|g" \
-e "s|@MNT_ROOT_ARGS@|$MNT_ROOT_ARGS|g" \
-e "s|@MNT_TMP_ARGS@|$MNT_TMP_ARGS|g" \
- $ISODIR/etc/rc.d/mfs_rcd > $ISODIR/etc/rc.d/mfs_rcd.in
- mv $ISODIR/etc/rc.d/mfs_rcd.in $ISODIR/etc/rc.d/mfs_rcd
+ $ISODIR/etc/rc.d/livecd > $ISODIR/etc/rc.d/livecd.in
+ mv $ISODIR/etc/rc.d/livecd.in $ISODIR/etc/rc.d/livecd
- for U in root var dev etc home
+ for U in root dev etc home
do
if [ -d $ISODIR/$U ]; then
- showmsg_n "Creating /stand/mfs_$U.tgz..."
+ showmsg_n "Creating /stand/mfs_$U.tgz... "
@TAR@ cfzp $ISODIR/stand/mfs_$U.tgz $U >/dev/null 2>&1
showmsgstring
fi
done
+
+ if [ "$VND_COMPRESSION" = "no" ]; then
+ showmsg_n "Creating /stand/mfs_var.tgz... "
+ @TAR@ cfzp $ISODIR/stand/mfs_var.tgz var >/dev/null 2>&1
+ showmsgstring
+ fi
if [ -d $ISODIR/home ]; then
sed -e "s|@HOME@|$SUBST_H|" -e "s|@HOMETAR@|$SUBST_HT|" \
- $ISODIR/etc/rc.d/mfs_rcd > $ISODIR/etc/rc.d/mfs_rcd.f
- mv $ISODIR/etc/rc.d/mfs_rcd.f $ISODIR/etc/rc.d/mfs_rcd
+ $ISODIR/etc/rc.d/livecd > $ISODIR/etc/rc.d/livecd.f
+ mv $ISODIR/etc/rc.d/livecd.f $ISODIR/etc/rc.d/livecd
else
sed -e "s|@HOME@||" -e "s|@HOMETAR@||" \
- $ISODIR/etc/rc.d/mfs_rcd > $ISODIR/etc/rc.d/mfs_rcd.f
- mv $ISODIR/etc/rc.d/mfs_rcd.f $ISODIR/etc/rc.d/mfs_rcd
+ $ISODIR/etc/rc.d/livecd > $ISODIR/etc/rc.d/livecd.f
+ mv $ISODIR/etc/rc.d/livecd.f $ISODIR/etc/rc.d/livecd
fi
if [ -d $ISODIR/$PKG_SYSCONFDIR ]; then
@@ -681,19 +701,20 @@ _EOF_
$PKG_SYSCONFDIR >/dev/null 2>&1
showmsgstring
sed -e "s|@USRPKGETC@|$SUBST_S|" -e "s|@USRPKGETCTAR@|$SUBST_ST|" \
- $ISODIR/etc/rc.d/mfs_rcd > $ISODIR/etc/rc.d/mfs_rcd.f
- mv $ISODIR/etc/rc.d/mfs_rcd.f $ISODIR/etc/rc.d/mfs_rcd
+ $ISODIR/etc/rc.d/livecd > $ISODIR/etc/rc.d/livecd.f
+ mv $ISODIR/etc/rc.d/livecd.f $ISODIR/etc/rc.d/livecd
else
sed -e "s|@USRPKGETC@||" -e "s|@USRPKGETCTAR@||" \
- $ISODIR/etc/rc.d/mfs_rcd > $ISODIR/etc/rc.d/mfs_rcd.f
- mv $ISODIR/etc/rc.d/mfs_rcd.f $ISODIR/etc/rc.d/mfs_rcd
- fi
-
- if [ "${ENABLE_X11}" = "yes" ]; then
- [ -f /etc/X11/XF86Config ] && \
- cp /etc/X11/XF86Config $ISODIR/etc/X11
+ $ISODIR/etc/rc.d/livecd > $ISODIR/etc/rc.d/livecd.f
+ mv $ISODIR/etc/rc.d/livecd.f $ISODIR/etc/rc.d/livecd
fi
+ if [ "${ENABLE_X11}" = "yes" -a ! -f $ISODIR/etc/X11/XF86Config ]; then
+ if [ -f /etc/X11/XF86Config ]; then
+ cp /etc/X11/XF86Config $ISODIR/etc/X11
+ fi
+ fi
+
if [ "${PERSONAL_CONFIG}" = "yes" ]; then
if [ -f $config_dir/$pers_conffile ]; then
echo
@@ -713,7 +734,7 @@ _EOF_
fi
fi
- # Make sure mfs_rcd has the right permissions, because
+ # Make sure livecd has the right permissions, because
# it could be critical!.
chmod -R a+rx $ISODIR/etc/rc.d
@@ -778,6 +799,38 @@ _EOF_
done
;;
iso)
+ if [ "$VND_COMPRESSION" = "yes" ]; then
+ cd $ISODIR
+
+ if [ ! -f $ISODIR/stand/usr.zfs ]; then
+ showmsg_n "Creating image of /usr..."
+ makefs -t ffs stand/usr.fs usr > /dev/null 2>&1
+ showmsgstring
+ showmsg_n "Compressing image of /usr..."
+ vndcompress stand/usr.fs stand/usr.zfs > /dev/null 2>&1
+ showmsgstring
+ rm stand/usr.fs
+ find $ISODIR/usr -type f | xargs rm -v
+ fi
+ if [ -d $ISODIR/var/db/pkg ]; then
+ if [ ! -f stand/var_db_pkg.zfs ]; then
+ showmsg_n "Creating image of /var/db/pkg... "
+ makefs -t ffs -M 1m $ISODIR/stand/var_db_pkg.fs \
+ var/db/pkg > /dev/null 2>&1
+ showmsgstring
+ showmsg_n "Compressing image of /var/db/pkg... "
+ vndcompress $ISODIR/stand/var_db_pkg.fs \
+ $ISODIR/stand/var_db_pkg.zfs > /dev/null 2>&1
+ showmsgstring
+ rm -f $ISODIR/stand/var_db_pkg.fs
+ rm -rf $ISODIR/var/db/pkg/*
+ @TAR@ cfzp stand/mfs_var.tgz var
+ fi
+ else
+ @TAR@ cfzp stand/mfs_var.tgz var
+ fi
+ fi
+
_do_real_iso_image()
{
if [ -f "$BASEDIR/$IMAGE_NAME.iso" ]; then
@@ -804,7 +857,7 @@ _EOF_
showmsg_n "Creating ISO CD9660 image..."
if [ "$USE_GNU_GRUB" = "yes" ]; then
- $MKISOFS $MKISOFS_FIXED_ARGS $MKISOFS_ARGS \
+ $MKISOFS $MKISOFS_FIXED_ARGS $GRUB_BOOT_ARGS $MKISOFS_ARGS \
-b $GRUB_BOOTDIR/$GRUB_BOOTIMAGE \
-o $BASEDIR/$IMAGE_NAME.iso $ISODIR > /dev/null 2>&1
showmsgstring