Bug 28938

Summary: PicoBSD - An update to the build script to add new features
Product: Base System Reporter: simon <simon>
Component: miscAssignee: freebsd-small (Nobody) <small>
Status: Closed FIXED    
Severity: Affects Only Me    
Priority: Normal    
Version: 4.3-STABLE   
Hardware: Any   
OS: Any   
Attachments:
Description Flags
file.diff none

Description simon 2001-07-13 11:10:00 UTC
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.

Fix: Patch is also avalible at
http://simon.nitro.dk/patch/picobsd/buildscript-nonint-mfsmerge.patch
How-To-Repeat: N/A
Comment 1 simon 2001-08-12 19:46:22 UTC
This PR should be assigned to freebsd-small.
Comment 2 Doug Barton freebsd_committer freebsd_triage 2001-08-12 20:21:05 UTC
Responsible Changed
From-To: freebsd-bugs->freebsd-small


According to Simon Nielsen <simon@nitro.dk>
Comment 3 simon 2001-09-06 22:13:09 UTC
There have been some changes to the build script that made the original
patch fail. This patch should work with at least 1.1.2.12 of the build
script.

Some comments have also been changed from the original patch.

Patch is also at
http://simon.nitro.dk/patch/picobsd/buildscript-nonint-mfsmerge.2.patch

Index: config
===================================================================
RCS file: /home/ncvs/src/release/picobsd/build/config,v
retrieving revision 1.1.2.1
diff -u -d -r1.1.2.1 config
--- config	2001/02/19 23:35:24	1.1.2.1
+++ config	2001/09/06 21:06:51
@@ -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"}
Index: picobsd
===================================================================
RCS file: /home/ncvs/src/release/picobsd/build/picobsd,v
retrieving revision 1.1.2.12
diff -u -d -r1.1.2.12 picobsd
--- picobsd	2001/09/04 02:03:04	1.1.2.12
+++ picobsd	2001/09/06 21:06:51
@@ -1,6 +1,6 @@
 #!/bin/sh -
 #
-# $FreeBSD: src/release/picobsd/build/picobsd,v 1.1.2.12 2001/09/04 02:03:04 luigi Exp $
+# $FreeBSD$
 #
 # The new PicoBSD build script. Invoked as
 #
@@ -87,6 +87,19 @@
     boot1=/boot/boot1
     boot2=/boot/boot2

+    # Should interactive mode be used
+    interactive=${interactive:-YES}
+
+    # Should the confirmation for install of the
+    #	binary image on the floppy be interactive
+    install_interactive=${install_interactive:-YES}
+
+    # Should the script be verbose
+    verbose=${verbose:-NO}
+
+    # How long to wait with floppy write in "not not" interactive mode
+    floppy_write_abort_time=10
+
     makeopts=${MAKEOPTS:--s}	# be silent by default
     # abort in case of error...
     set -e
@@ -96,10 +109,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
 }

@@ -313,18 +329,31 @@
 # Call the build procedure
 # Install image
 do_install() {
-    dialog --title "Build ${THETYPE} completed" --inputbox \
-"\nThe build process was completed successfuly.\n\
+    local text_common text_interactive text_noninteractive
+
+    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\
+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 ${floppy_write_abort_time} seconds to \
+abort by pressing ^C\n"
+
+    if [ ${install_interactive} = "YES" ]; then
+	dialog --title "Build ${THETYPE} completed" --inputbox \
+	    "${text_common}${text_interactive}" 20 80 2> ${RISU}
+    else
+	echo -e "\n\n\n${text_common}${text_noninteractive}"
+	sleep ${floppy_write_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
@@ -506,7 +535,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
@@ -516,6 +545,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
@@ -702,7 +740,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"
Comment 4 simon 2002-11-06 09:19:27 UTC
Hello

This PR can be closed since the important parts if this PR has already
been included in PicoBSD, and the other parts doesn't really matter that
much.

-- 
Simon L. Nielsen
Comment 5 Tilman Keskinoz freebsd_committer freebsd_triage 2003-01-19 18:49:08 UTC
State Changed
From-To: open->closed

Submitters request