[arch-commits] Commit in mksyslinux/repos (3 files)

Tobias Powalowski tpowa at archlinux.org
Wed Sep 17 21:13:46 UTC 2008


    Date: Wednesday, September 17, 2008 @ 17:13:46
  Author: tpowa
Revision: 12663

Merged revisions 2-12662 via svnmerge from 
svn+ssh://svn.archlinux.org/home/svn-packages/mksyslinux/trunk

........
  r356 | aaron | 2008-04-19 00:56:27 +0200 (Sa, 19 Apr 2008) | 1 line
  
  Added svn:keywords to all PKGBUILDs
........
  r12662 | tpowa | 2008-09-17 23:13:10 +0200 (Mi, 17 Sep 2008) | 1 line
  
  upgpkg: mksyslinux 2008.09-1
........

Modified:
  mksyslinux/repos/extra-x86_64/	(properties)
  mksyslinux/repos/extra-x86_64/PKGBUILD
  mksyslinux/repos/extra-x86_64/mksyslinux

------------+
 PKGBUILD   |   11 ++++++-----
 mksyslinux |   55 +++++++++++++++++++++++++++++++++++++++++++++----------
 2 files changed, 51 insertions(+), 15 deletions(-)


Property changes on: mksyslinux/repos/extra-x86_64
___________________________________________________________________
Name: svnmerge-integrated
   - /mksyslinux/trunk:1
   + /mksyslinux/trunk:1-12662

Modified: extra-x86_64/PKGBUILD
===================================================================
--- extra-x86_64/PKGBUILD	2008-09-17 21:13:10 UTC (rev 12662)
+++ extra-x86_64/PKGBUILD	2008-09-17 21:13:46 UTC (rev 12663)
@@ -2,7 +2,7 @@
 # Maintainer : Tobias Powalowski <tpowa at archlinux.org>
 
 pkgname=mksyslinux
-pkgver=2008.03
+pkgver=2008.09
 pkgrel=1
 pkgdesc="Advanced, modular syslinux boot image creation utility"
 arch=(i686 x86_64)
@@ -11,6 +11,10 @@
 depends=('mkinitcpio' 'syslinux')
 source=('boot.msg' 'mksyslinux' 'mksyslinux.conf' 'options.msg')
 backup=(etc/mksyslinux.conf)
+md5sums=('6a269fc5b58c7bcc6688efeaa2075606'
+         '3eaa9d2699a4afd28731f52855ff2272'
+         'a393348c07bccabcd52b4d8c5d4d42a7'
+         'fa078942b8adf261e4d925e080dc3018')
 
 build()
 {
@@ -20,7 +24,4 @@
   install -D -m644 boot.msg $startdir/pkg/usr/share/mksyslinux/boot.msg
   install -D -m644 options.msg  $startdir/pkg/usr/share/mksyslinux/options.msg
 }
-md5sums=('6a269fc5b58c7bcc6688efeaa2075606'
-         '748763a29e29cb0570d108f8700ebcd4'
-         'a393348c07bccabcd52b4d8c5d4d42a7'
-         'fa078942b8adf261e4d925e080dc3018')
+

Modified: extra-x86_64/mksyslinux
===================================================================
--- extra-x86_64/mksyslinux	2008-09-17 21:13:10 UTC (rev 12662)
+++ extra-x86_64/mksyslinux	2008-09-17 21:13:46 UTC (rev 12663)
@@ -4,14 +4,22 @@
 APPNAME=$(basename "${0}")
 CONFIG="/etc/mksyslinux.conf"
 export TEMPDIR=$(mktemp /tmp/mksyslinux.XXX)
+TMPDIR=$(mktemp -d /tmp/mksyslinux-image.XXX)
 
 usage ()
 {
     echo "${APPNAME}: usage"
-    echo "PREPARATION: Your device must have a bootable first partition in FAT16 format!"
-    echo "ATTENTION: The MBR of your DEVICE will be overwritten! You have been warned!"
-    echo""
+    echo "WRITING TO DEVICE:"
+    echo "- PREPARATION: Your device must have a bootable first partition in FAT16 format!"
+    echo "- ATTENTION: The MBR of your DEVICE will be overwritten! You have been warned!"
+    echo ""
+    echo "CREATING AN IMAGE FILE:"
+    echo "- For creating an image file use the -i=IMAGEFILE switch"
+    echo "- use 'dd if=<yourimage> of=<yourdevice>' to write to your device afterwards."
+    echo ""
+    echo "PARAMETERS:"
     echo "  -d=DEVICE        Your DEVICE first partition from /dev/xxx tree to install"
+    echo "  -i=IMAGENAME     Your IMAGENAME"
     echo "  -c=CONFIG        Use CONFIG file. default: /etc/mksyslinux.conf"
     echo "  -h               This message."
     exit 1
@@ -24,6 +32,7 @@
 	case $1 in
 		-c=*|--c=*) CONFIG="$(echo $1 | awk -F= '{print $2;}')" ;;
 		-d=*|--d=*) DEVICE="$(echo $1 | awk -F= '{print $2;}')" ;;
+		-i=*|--i=*) IMAGENAME="$(echo $1 | awk -F= '{print $2;}')" ;;
 		-h|--h|?) usage ;; 
 		*) usage ;;
 		esac
@@ -35,9 +44,11 @@
     exit 1
 fi
 
-if [ "${DEVICE}" = "" ]; then 
-	echo "ERROR: No DEVICE name specified, please use the -d option"
-	 exit 1
+if [ "${IMAGENAME}" = "" ]; then
+	if [ "${DEVICE}" = "" ]; then 
+		echo "ERROR: No DEVICE name specified, please use the -d option"
+	 	exit 1
+	fi
 fi
 
 if ! [ $UID -eq 0 ]; then 
@@ -62,7 +73,11 @@
 [ -e ${TEMPDIR} ] && rm -r ${TEMPDIR}
 mkdir -p ${TEMPDIR}
 echo ":: Mounting ${DEVICE} ..."
-mount ${DEVICE} ${TEMPDIR} || exit 1
+if ! [ "${IMAGENAME}" = "" ]; then
+	modprobe loop
+else
+	mount ${DEVICE} ${TEMPDIR} || exit 1
+fi
 # create syslinux.cfg
 echo ":: Creating syslinux.cfg ..."
 if [ "${SYSLINUXCFG}" = "" ]; then
@@ -91,11 +106,31 @@
 	install -m644 ${OPTIONSBOOTMESSAGE} ${TEMPDIR}/options.msg
 	[ ! -s ${TEMPDIR}/boot.msg ] && echo 'ERROR:no boot.msg found, aborting!' && exit 1
 	[ ! -s ${TEMPDIR}/options.msg ] && echo 'ERROR:no options.msg found, aborting!' && exit 1
-echo ":: Unmounting ${DEVICE} ..."
+if ! [ "${IMAGENAME}" = "" ]; then
+	# ext2 overhead's upper bound is 6%
+	# empirically tested up to 1GB
+	rootsize=$(du -bs ${TEMPDIR}|cut -f1)
+	IMGSZ=$(( (${rootsize}*106)/100/512 + 1)) # image size in sectors
+	# create the filesystem image file
+	dd if=/dev/zero of="${IMAGENAME}" bs=512 count="${IMGSZ}"
+	# create a filesystem on the image
+	mkfs.vfat "${IMAGENAME}"
+	mount -o loop ${IMAGENAME} ${TMPDIR} || exit 1
+	cp -r "${TEMPDIR}"/* "$TMPDIR"
+	umount ${TMPDIR}
+else
+	echo ":: Unmounting ${DEVICE} ..."
 	umount ${TEMPDIR} || exit 1
-echo ":: Installing MBR on ${MBRDEVICE} ..."
+fi
+if ! [ "${IMAGENAME}" = "" ]; then
+	echo ":: Installing SYSLINUX on ${IMAGENAME} ..."
+	/usr/bin/syslinux ${IMAGENAME} && echo "Installation completed."
+else
+	echo ":: Installing MBR on ${MBRDEVICE} ..."
 	cat ${MBR} > ${MBRDEVICE}
-echo ":: Installing SYSLINUX on ${DEVICE} ..."
+	echo ":: Installing SYSLINUX on ${DEVICE} ..."
 	/usr/bin/syslinux -o offset ${DEVICE} && echo "Installation completed."
+fi
 # clean /tmp
 rm -r ${TEMPDIR}
+! [ ${IMAGENAME} = "" ] && rm -r ${TMPDIR}
\ No newline at end of file




More information about the arch-commits mailing list