svn commit: r264860 - head/tools/tools/nanobsd/dhcpd

Warner Losh imp at FreeBSD.org
Thu Apr 24 02:02:37 UTC 2014


Author: imp
Date: Thu Apr 24 02:02:37 2014
New Revision: 264860
URL: http://svnweb.freebsd.org/changeset/base/264860

Log:
  Switch to using pkgng for all package management. Add necessary
  bootstrap step for pkg. Fix a bunch of annoying little nits. We can
  now build fat or thin images successfully for the dhcpd config.

Modified:
  head/tools/tools/nanobsd/dhcpd/common
  head/tools/tools/nanobsd/dhcpd/os-base

Modified: head/tools/tools/nanobsd/dhcpd/common
==============================================================================
--- head/tools/tools/nanobsd/dhcpd/common	Thu Apr 24 02:02:28 2014	(r264859)
+++ head/tools/tools/nanobsd/dhcpd/common	Thu Apr 24 02:02:37 2014	(r264860)
@@ -44,7 +44,8 @@ NANO_SRC=${NANO_SRC%/tools/tools/nanobsd
 NANO_OBJ=${NANO_SRC}/../dhcpd/obj
 # Where cust_pkg() finds packages to install
 #XXX: Is this the right place?
-NANO_PORTS=${NANO_SRC}/../ports
+#NANO_PORTS=$(realpath ${NANO_SRC}/../ports)
+NANO_PORTS=/usr/ports
 NANO_PACKAGE_DIR=${NANO_SRC}/${NANO_TOOLS}/Pkg
 NANO_DATADIR=${NANO_OBJ}/_.data
 NANO_DATASIZE=40960
@@ -173,7 +174,7 @@ do_add_pkg ()
 	    ${NANO_WORLDDIR}/usr/ports/packages
 	mount -t nullfs -o noatime ${NANO_OBJ}/ports/distfiles \
 	    ${NANO_WORLDDIR}/usr/ports/distfiles
-	CR "cd /usr/ports/packages/All;pkg_add -F $1.tbz"
+	CR env ASSUME_ALWAYS_YES=YES SIGNATURE_TYPE=none /usr/sbin/pkg add /usr/ports/packages/All/$1.txz
 	umount ${NANO_WORLDDIR}/usr/ports/distfiles
 	umount ${NANO_WORLDDIR}/usr/ports/packages
 	rmdir ${NANO_WORLDDIR}/usr/ports/packages
@@ -206,12 +207,16 @@ do_add_port ()
 	mount -t devfs devfs ${NANO_WORLDDIR}/dev
 	mkdir -p ${NANO_WORLDDIR}/usr/workdir
 	cp /etc/resolv.conf ${NANO_WORLDDIR}/etc/resolv.conf
+	# OK, a little inefficient, but likely not enough to worry about.
+	CR ldconfig /lib /usr/lib /usr/local/lib
+	CR ldconfig -R
+	CR ldconfig -r
 # Improvement: Don't know why package-recursive don't works here
 	CR "env UNAME_p=${NANO_ARCH} TARGET=${NANO_ARCH} \
-	    TARGET_ARCH=${NANO_ARCH} make \
+	    TARGET_ARCH=${NANO_ARCH} PORTSDIR=${NANO_PORTS} make \
 	    __MAKE_CONF=${NANO_MAKE_CONF_BUILD} \
 	    WRKDIRPREFIX=/usr/workdir -C /usr/ports/$port_path \
-	    package BATCH=yes $* clean FORCE_PKG_REGISTER=t"
+	    package-recursive BATCH=yes $* clean FORCE_PKG_REGISTER=t"
 	rm ${NANO_WORLDDIR}/etc/resolv.conf
 	rm -rf ${NANO_WORLDDIR}/usr/obj
 	rm -rf ${NANO_WORLDDIR}/usr/workdir
@@ -228,15 +233,14 @@ do_add_port ()
 add_port () {
     local port_path=$1
     local port=`echo $1 | sed -e 's/\//_/'`
-    export PORTSDIR=${NANO_PORTS}
     shift
     # Check if package allready exist
     # Need to:
     # 1. check ARCH of this package!
     # 2. Add a trap
     cd ${NANO_PORTS}/${port_path}
-    PKG_NAME=`make ${PKGNAME_HACK} PORTSDIR=${NANO_PORTS} __MAKE_CONF=${NANO_MAKE_CONF_BUILD} package-name` 
-    if [ -f ${NANO_OBJ}/ports/packages/All/${PKG_NAME}.tbz ]; then
+    PKG_NAME=`env PORTSDIR=${NANO_PORTS} make __MAKE_CONF=${NANO_MAKE_CONF_BUILD} package-name` 
+    if [ -f ${NANO_OBJ}/ports/packages/All/${PKG_NAME}.txz ]; then
 	# Pkg file found: Generate add_pkg_NAME function
 	eval "
 	    add_pkg_${port} () {
@@ -267,6 +271,10 @@ create_amd64_diskimage()
 	create_i386_diskimage "$*"
 }
 
+# Automatically include the packaging port here so it is always first so it
+# builds the port and adds the package so we can add other packages.
+add_port ports-mgmt/pkg
+
 rp=$(realpath ${NANO_OBJ}/)
 __a=`mount | grep ${rp} | awk '{print length($3), $3;}' | sort -rn | awk '{$1=""; print;}'`
 if [ -n "$__a" ]; then

Modified: head/tools/tools/nanobsd/dhcpd/os-base
==============================================================================
--- head/tools/tools/nanobsd/dhcpd/os-base	Thu Apr 24 02:02:28 2014	(r264859)
+++ head/tools/tools/nanobsd/dhcpd/os-base	Thu Apr 24 02:02:37 2014	(r264860)
@@ -108,28 +108,6 @@ save_build ( )
 }
 customize_cmd save_build
 
-# Move the $world/data to the /data partion
-move_data()
-{
-	db=${NANO_WORLDDIR}/data
-	rm -rf ${NANO_DATADIR}
-	mkdir -p ${NANO_DATADIR}
-	( cd ${db} ; find . | cpio -R root:wheel -dumpv ${NANO_DATADIR} )
-	rm -rf ${db}
-}
-customize_cmd move_data
-
-add_data_to_fstab ( )
-{
-	(
-	cd ${NANO_WORLDDIR}
-	echo "/dev/${NANO_DRIVE}s4 /data ufs rw,noatime 2 2" >> etc/fstab
-	mkdir -p data
-	)
-	
-}
-customize_cmd add_data_to_fstab
-
 remove_patch_divots ( )
 {
 	find ${NANO_WORLDDIR} -name \*.orig -or -name \*.rej -delete
@@ -168,7 +146,7 @@ customize_cmd unmute_console_logging
 
 fi
 
-freenas_custom()
+product_custom()
 {
 	gzip -v9 ${NANO_WORLDDIR}/boot/kernel/kernel
 
@@ -199,29 +177,10 @@ freenas_custom()
 	# magic.mgc is just a speed optimization.  Kill it for 1.7MB
 	rm -f ${NANO_WORLDDIR}/usr/share/misc/magic.mgc
 
-	# strip binaries (saves spaces on non-debug images).
-	if [ "${DEBUG}" != 1 ]; then
-		pprint 4 "Stripping binaries and libraries"
-		for dir in $(find ${NANO_WORLDDIR}/usr/local -name '*bin' -or -name 'libexec' -maxdepth 3); do
-			for f in $(find $dir -type f); do
-				if ! dontstrip "$f"
-				then
-					strip 2>/dev/null $f || :
-				fi
-			done
-		done
-		# .so's are the only thing that need to be stripped. The rest
-		# should remain untouched.
-		for f in $(find ${NANO_WORLDDIR}/usr/local/lib -name '*.so' -or -name '*.so.*' -maxdepth 3); do
-				strip 2>/dev/null $f || :
-		done
-	fi
-
 	# Last second tweaks
 	chown -R root:wheel ${NANO_WORLDDIR}/root
 	chmod 0755 ${NANO_WORLDDIR}/root/*
 	chmod 0755 ${NANO_WORLDDIR}/*
-	chmod 0440 ${NANO_WORLDDIR}/usr/local/etc/sudoers
 	chown -R root:wheel ${NANO_WORLDDIR}/etc
 	chown -R root:wheel ${NANO_WORLDDIR}/boot
 	chown root:wheel ${NANO_WORLDDIR}/
@@ -229,16 +188,7 @@ freenas_custom()
 	find ${NANO_WORLDDIR} -type f -name "*~" -delete
 	find ${NANO_WORLDDIR}/usr/local -type f -name "*.po" -delete
 	find ${NANO_WORLDDIR} -type f -name "*.service" -delete
-	mkdir ${NANO_WORLDDIR}/data/zfs
-	ln -s -f /usr/local/bin/bash ${NANO_WORLDDIR}/bin/bash
-	ln -s -f /data/zfs/zpool.cache ${NANO_WORLDDIR}/boot/zfs/zpool.cache
-
-	# This is wrong.  Needs a way to tell kernel how to find the mount utility
-	# instead.
-	mv ${NANO_WORLDDIR}/sbin/mount_ntfs ${NANO_WORLDDIR}/sbin/mount_ntfs-kern
-	ln -s -f /usr/local/bin/ntfs-3g ${NANO_WORLDDIR}/sbin/mount_ntfs
-
 }
-late_customize_cmd freenas_custom
+late_customize_cmd product_custom
 
 fi # [ $PACKAGE_PREP_BUILD = 1 ]


More information about the svn-src-all mailing list