Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 13 Jul 2001 12:07:59 +0200 (CEST)
From:      Simon Nielsen <simon@nitro.dk>
To:        FreeBSD-gnats-submit@freebsd.org
Subject:   misc/28938: PicoBSD - An update to the build script to add new features
Message-ID:  <200107131007.f6DA7xF34151@xserver.babeltech.dk>

next in thread | raw e-mail | index | archive | help

>Number:         28938
>Category:       misc
>Synopsis:       PicoBSD - An update to the build script to add new features
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Fri Jul 13 03:10:00 PDT 2001
>Closed-Date:
>Last-Modified:
>Originator:     Simon Nielsen
>Release:        FreeBSD 4.3-STABLE i386
>Organization:
BabelTech A/S
>Environment:
System: FreeBSD simon.babeltech.dk 4.3-STABLE FreeBSD 4.3-STABLE #18: Fri May 4 21:24:39 CEST 2001 root@babeltech.dk:/usr/obj/usr/src/sys/GENERIC i386

>Description:
A patch to the build script that adds the possibility to make make
overrides for the MFS filesystem in the type specific floppy's and
still use the main MFS as base. It also adds the -nn (or -n -n) switch
which make the script not ask for confirmation for writing the floppy
to disk when building.
>How-To-Repeat:
N/A
>Fix:
Patch is also avalible at
http://simon.nitro.dk/patch/picobsd/buildscript-nonint-mfsmerge.patch

diff -u /usr/src/release/orig.picobsd/build/config picobsd/build/config
--- /usr/src/release/orig.picobsd/build/config	Wed Jul 11 14:30:41 2001
+++ picobsd/build/config	Fri Jul 13 11:02:32 2001
@@ -13,3 +13,9 @@
 
 MY_DEVS=${MY_DEVS:-"std tun2 cuaa0 cuaa1 cuaa2 vty10 fd0 ad0 pty0 \
 	ttyd0 cuaa0 bpf0 bpf1 sa0 sa1"}
+
+# If present should the type specific MFS be merged in instead of
+# replacing the general PicoBSD MFS. Files from the type specific MFS
+# overrides files from general PicoBSD MFS.
+# Option can be yes or no. Default is no
+MERGE_TYPE_SPECIFIC_MFS=${MERGE_TYPE_SPECIFIC_MFS:-"no"}
diff -u /usr/src/release/orig.picobsd/build/picobsd picobsd/build/picobsd
--- /usr/src/release/orig.picobsd/build/picobsd	Wed Jul 11 14:30:41 2001
+++ picobsd/build/picobsd	Fri Jul 13 11:04:10 2001
@@ -82,6 +82,16 @@
     boot1=/boot/boot1
     boot2=/boot/boot2
 
+    # interactive is if interactive mode should be used.
+    interactive="YES"
+
+    # install_interactive is if the confirmation for install of the
+    #	binary image on the floppy should be interactive
+    install_interactive="YES"
+
+    # verbose is if script should be verbose
+    verbose="NO"
+
     # abort in case of error...
     set -e
 
@@ -90,10 +100,13 @@
 }
 
 # log something on stdout if verbose.
+# and wait after each log if interactive
 log() {
-    if [ "$verbose" != "" ] ; then
+    if [ "${verbose}" = "YES" ] ; then
 	printf "%s\n" "$*"
-	read -p "(log) enter to continue" foo
+	if [ "${interactive}" = "YES" ]; then
+	    read -p "(log) enter to continue" foo
+	fi
     fi
 }
 
@@ -307,18 +320,32 @@
 # Call the build procedure
 # Install image
 do_install() {
-    dialog --title "Build ${TYPE} completed" --inputbox \
-"\nThe build process was completed successfuly.\n\
+    local text_common text_interactive text_noninteractive
+
+    abort_time=10
+
+    text_common="\nThe build process was completed successfuly.\n\
 `cat .build.reply` \n\n\
 Now we are going to install the image on the floppy.\n\
-Please insert a blank floppy in /dev/fd0.\\n
-WARNING: the contents of the floppy will be permanently erased!\n\
-\n\
-Your options:\n\
+Please insert a blank floppy in /dev/fd0.\n\n\
+WARNING: the contents of the floppy will be permanently erased!\n\n"
+
+    text_interactive="Your options:\n\
 	* ^C or [Cancel] to abort,\n\
 	* Enter to install \"picobsd.bin\",\n\
-" 20 80 2> ${RISU}
-    if [ "$?" = "0" ]; then
+"
+
+    text_noninteractive="You have ${abort_time} to abort by pressing ^C\n"
+
+    if [ ${install_interactive} = "YES" ]; then
+	dialog --title "Build ${TYPE} completed" --inputbox \
+	    "${text_common}${text_interactive}" 20 80 2> ${RISU}
+    else
+	echo -e "\n\n\n${text_common}${text_noninteractive}"
+	sleep ${abort_time}
+    fi
+
+    if [ "$?" = "0" -o "${install_interactive}" = "NO" ]; then
 	echo "Writing picobsd.bin..."
 	dd if=${BUILDDIR}/picobsd.bin of=/dev/rfd0.${FLOPPY_SIZE}
     else
@@ -512,7 +539,7 @@
 	ssh-keygen -f ${MFS_MOUNTPOINT}/etc/ssh_host_key -N "" -C "root@picobsd"
     fi
 
-    if [ -d ${MY_TREE}/mfs_tree ]; then
+    if [ -d ${MY_TREE}/mfs_tree -a ${MERGE_TYPE_SPECIFIC_MFS} = "no" ]; then
 	log "---> Copy site-specific MFS tree..."
 	MFS_TREE=${MY_TREE}/mfs_tree
     else
@@ -522,6 +549,15 @@
     (cd ${MFS_TREE} ; tar -cf - --exclude CVS . ) | \
 	    (cd ${MFS_MOUNTPOINT} ; tar x${TAR_VERBOSE}f - )
 
+    # Now merge in type specific MFS if requested
+    if [ -d ${MY_TREE}/mfs_tree -a ${MERGE_TYPE_SPECIFIC_MFS} = "yes" ]; then
+	log "---> Merging  type-specific MFS tree..."
+	MFS_TREE=${MY_TREE}/mfs_tree
+
+        (cd ${MFS_TREE} ; tar -cf - --exclude CVS . ) | \
+	    (cd ${MFS_MOUNTPOINT} ; tar x${TAR_VERBOSE}f - )
+    fi
+
     if [ "${INCLUDE_FLOPPY_IN_MFS}" = "yes" ]; then
 	log "---> Copy generic floppy_tree into MFS..."
 	cp -Rp ${BUILDDIR}/floppy.tree/* ${MFS_MOUNTPOINT}/fd
@@ -658,7 +694,15 @@
 	shift
 	;;
     -n)
+	# If -n i specified two times also set install_interactive to no
+	if [ "${interactive}" = "NO" ]; then
+	    install_interactive="NO"
+	fi
+	interactive="NO"
+	;;
+    -nn)
 	interactive="NO"
+	install_interactive="NO"
 	;;
     -c*) # clean
 	clean="YES"
	
>Release-Note:
>Audit-Trail:
>Unformatted:

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-bugs" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200107131007.f6DA7xF34151>