diff options
author | Bruce M Simpson <bms@FreeBSD.org> | 2013-03-08 15:06:47 +0000 |
---|---|---|
committer | Bruce M Simpson <bms@FreeBSD.org> | 2013-03-08 15:06:47 +0000 |
commit | 84e60b1bea98509772b48f953326b267cc5a6366 (patch) | |
tree | 27a25626f8629e7cb9b38b4fb50a0ef3793dafd6 /sysutils/pc-sysinstall | |
parent | 051cbebcc8048ad3e56ad943504c537077e0d5e3 (diff) |
Notes
Diffstat (limited to 'sysutils/pc-sysinstall')
-rw-r--r-- | sysutils/pc-sysinstall/Makefile | 60 | ||||
-rw-r--r-- | sysutils/pc-sysinstall/distinfo | 2 | ||||
-rw-r--r-- | sysutils/pc-sysinstall/files/patch-pc-sysinstall-distfiles | 273 | ||||
-rw-r--r-- | sysutils/pc-sysinstall/files/pc-sysinstall.mtree | 15 | ||||
-rw-r--r-- | sysutils/pc-sysinstall/pkg-descr | 2 | ||||
-rw-r--r-- | sysutils/pc-sysinstall/pkg-plist | 78 |
6 files changed, 430 insertions, 0 deletions
diff --git a/sysutils/pc-sysinstall/Makefile b/sysutils/pc-sysinstall/Makefile new file mode 100644 index 000000000000..50fbf9f0fc77 --- /dev/null +++ b/sysutils/pc-sysinstall/Makefile @@ -0,0 +1,60 @@ +# Created by: bms +# $FreeBSD$ + +PORTNAME= pc-sysinstall +PORTVERSION= 9.1r${PSVN_REV} +CATEGORIES= sysutils +MASTER_SITES= LOCAL/bms + +MAINTAINER= josh@ixsystems.com +COMMENT= PC-BSD system install utility + +LICENSE= BSD + +PATCH_STRIP= -p2 +USE_BZIP2= yes + +MAN8= ${PORTNAME}.8 +MANCOMPRESSED= yes + +ONLY_FOR_ARCH= i386 amd64 + +FSVN_REV= 243808 +PSVN_REV= 21630 + +post-patch: + ${RM} -f ${WRKSRC}/Makefile.inc + @${REINPLACE_CMD} -e 's|/usr|${LOCALBASE}|g' \ + ${WRKSRC}/pc-sysinstall/pc-sysinstall.sh + +do-build: + cd ${WRKSRC} && ${MAKE} DESTDIR=${PREFIX} SHAREDIR=/share BINDIR=/sbin MANDIR=/man/man + +do-install: + ${MKDIR} ${DATADIR} + ${MKDIR} ${EXAMPLESDIR} + ${MTREE_CMD} -U -d -p ${DATADIR} -f ${FILESDIR}/pc-sysinstall.mtree + cd ${WRKSRC} && make install DESTDIR=${PREFIX} SHAREDIR=/share BINDIR=/sbin MANDIR=/man/man + +.if defined(BOOTSTRAP) || defined(SVN_FETCH) +FETCH_DEPENDS+= svn:${PORTSDIR}/devel/subversion + +FSVNPATH?= http://svn.freebsd.org/base/release/9.1.0 +FSVNDIR= usr.sbin/pc-sysinstall + +PSVNPATH?= svn://trac.pcbsd.org/pcbsd/branches/9.1 +PSVNDIR= build-files/src-patches +PSVNFILE= patch-pc-sysinstall-distfiles + +do-fetch: + ${MKDIR} ${WRKDIR} + svn export -r ${FSVN_REV} ${FSVNPATH}/${FSVNDIR} ${WRKDIR}/${DISTNAME} + #svn export -r ${PSVN_REV} ${PSVNPATH}/${PSVNDIR}/${PSVNFILE} ${WRKDIR}/${PORTNAME} + cd ${WRKDIR}; tar cvfy ${DISTDIR}/${DISTNAME}.tar.bz2 ${DISTNAME} +.if ${USER} == bmsNOTYET + scp ${DISTDIR}/${DISTNAME}.tar.bz2 \ + bms@freefall.freebsd.org:public_distfiles/ +.endif +.endif + +.include <bsd.port.mk> diff --git a/sysutils/pc-sysinstall/distinfo b/sysutils/pc-sysinstall/distinfo new file mode 100644 index 000000000000..0bd0b76a0acd --- /dev/null +++ b/sysutils/pc-sysinstall/distinfo @@ -0,0 +1,2 @@ +SHA256 (pc-sysinstall-9.1r21630.tar.bz2) = 3f11727d9fdfb07be99ec138fec7221ba8ca7172dce336a4fb74c7e2145ac95e +SIZE (pc-sysinstall-9.1r21630.tar.bz2) = 56061 diff --git a/sysutils/pc-sysinstall/files/patch-pc-sysinstall-distfiles b/sysutils/pc-sysinstall/files/patch-pc-sysinstall-distfiles new file mode 100644 index 000000000000..767179c6e1f3 --- /dev/null +++ b/sysutils/pc-sysinstall/files/patch-pc-sysinstall-distfiles @@ -0,0 +1,273 @@ +Index: usr.sbin/pc-sysinstall/backend/functions-extractimage.sh +=================================================================== +--- usr.sbin/pc-sysinstall/backend/functions-extractimage.sh (revision 241789) ++++ usr.sbin/pc-sysinstall/backend/functions-extractimage.sh (working copy) +@@ -29,23 +29,60 @@ + + . ${BACKEND}/functions-mountoptical.sh + ++# Performs the extraction of data to disk from FreeBSD dist files ++start_extract_dist() ++{ ++ if [ -z "$1" ] ; then exit_err "Called dist extraction with no directory set!"; fi ++ if [ -z "$INSFILE" ]; then exit_err "Called extraction with no install file set!"; fi ++ local DDIR="$1" ++ ++ # Check if we are doing an upgrade, and if so use our exclude list ++ if [ "${INSTALLMODE}" = "upgrade" ]; then ++ TAROPTS="-X ${PROGDIR}/conf/exclude-from-upgrade" ++ else ++ TAROPTS="" ++ fi ++ ++ # Loop though and extract dist files ++ for di in $INSFILE ++ do ++ # Check the MANIFEST see if we have an archive size / count ++ if [ -e "${DDIR}/MANIFEST" ]; then ++ count=`grep "^${di}.txz" ${DDIR}/MANIFEST | awk '{print $3}'` ++ if [ ! -z "$count" ] ; then ++ echo "INSTALLCOUNT: $count" ++ fi ++ fi ++ echo_log "pc-sysinstall: Starting Extraction (${di})" ++ tar -xpv -C ${FSMNT} -f ${DDIR}/${di}.txz ${TAROPTS} >&1 2>&1 ++ if [ $? -ne 0 ]; then ++ exit_err "ERROR: Failed extracting the dist file: $di" ++ fi ++ done ++ ++ # Check if this was a FTP download and clean it up now ++ if [ "${INSTALLMEDIUM}" = "ftp" ]; then ++ echo_log "Cleaning up downloaded archives" ++ rm -rf ${DDIR} ++ fi ++ ++ echo_log "pc-sysinstall: Extraction Finished" ++} ++ + # Performs the extraction of data to disk from a uzip or tar archive + start_extract_uzip_tar() + { +- if [ -z "$INSFILE" ] +- then ++ if [ -z "$INSFILE" ]; then + exit_err "ERROR: Called extraction with no install file set!" + fi + + # Check if we have a .count file, and echo it out for a front-end to use in progress bars +- if [ -e "${INSFILE}.count" ] +- then ++ if [ -e "${INSFILE}.count" ]; then + echo "INSTALLCOUNT: `cat ${INSFILE}.count`" + fi + + # Check if we are doing an upgrade, and if so use our exclude list +- if [ "${INSTALLMODE}" = "upgrade" ] +- then ++ if [ "${INSTALLMODE}" = "upgrade" ]; then + TAROPTS="-X ${PROGDIR}/conf/exclude-from-upgrade" + else + TAROPTS="" +@@ -87,9 +124,8 @@ + mdconfig -d -u ${MDDEVICE} + ;; + tar) +- tar -xpv -C ${FSMNT} -f ${INSFILE} ${TAROPTS} >&1 2>&1 +- if [ $? -ne 0 ] +- then ++ tar -xpv -C ${FSMNT} -f ${INSFILE} ${TAROPTS} >&1 2>&1 ++ if [ $? -ne 0 ]; then + exit_err "ERROR: Failed extracting the tar image" + fi + ;; +@@ -176,6 +212,38 @@ + echo_log "pc-sysinstall: Extraction Finished" + }; + ++# Function which will attempt to fetch the dist file(s) before we start ++fetch_dist_file() ++{ ++ get_value_from_cfg ftpPath ++ if [ -z "$VAL" ] ++ then ++ exit_err "ERROR: Install medium was set to ftp, but no ftpPath was provided!" ++ fi ++ ++ FTPPATH="${VAL}" ++ ++ # Check if we have a /usr partition to save the download ++ if [ -d "${FSMNT}/usr" ] ++ then ++ DLDIR="${FSMNT}/usr/.fetch.$$" ++ else ++ DLDIR="${FSMNT}/.fetch.$$" ++ fi ++ mkdir -p ${DLDIR} ++ ++ # Do the fetch of the dist archive(s) now ++ for di in $INSFILE ++ do ++ fetch_file "${FTPPATH}/${di}.txz" "${DLDIR}/${di}.txz" "1" ++ done ++ ++ # Check to see if there is a MANIFEST file for this install ++ fetch_file "${FTPPATH}/MANIFEST" "${DLDIR}/MANIFEST" "0" ++ ++ export DLDIR ++}; ++ + # Function which will attempt to fetch the install file before we start + # the install + fetch_install_file() +@@ -390,6 +458,13 @@ + case $PACKAGETYPE in + uzip) INSFILE="${FBSD_UZIP_FILE}" ;; + tar) INSFILE="${FBSD_TAR_FILE}" ;; ++ dist) ++ get_value_from_cfg_with_spaces distFiles ++ if [ -z "$VAL" ] ; then ++ exit_err "No dist files specified!" ++ fi ++ INSFILE="${VAL}" ++ ;; + split) + INSDIR="${FBSD_BRANCH_DIR}" + +@@ -401,6 +476,13 @@ + case $PACKAGETYPE in + uzip) INSFILE="${UZIP_FILE}" ;; + tar) INSFILE="${TAR_FILE}" ;; ++ dist) ++ get_value_from_cfg_with_spaces distFiles ++ if [ -z "$VAL" ] ; then ++ exit_err "No dist files specified!" ++ fi ++ INSFILE="${VAL}" ++ ;; + esac + fi + export INSFILE +@@ -417,22 +499,32 @@ + start_extract_split + + else +- INSFILE="${CDMNT}/${INSFILE}" ; export INSFILE +- start_extract_uzip_tar ++ if [ "$PACKAGETYPE" = "dist" ] ; then ++ start_extract_dist "${CDMNT}/usr/freebsd-dist" ++ else ++ INSFILE="${CDMNT}/${INSFILE}" ; export INSFILE ++ start_extract_uzip_tar ++ fi + fi + ;; + + ftp) +- if [ "$PACKAGETYPE" = "split" ] +- then +- fetch_split_files ++ case $PACKAGETYPE in ++ split) ++ fetch_split_files + +- INSDIR="${INSFILE}" ; export INSDIR +- start_extract_split +- else +- fetch_install_file +- start_extract_uzip_tar +- fi ++ INSDIR="${INSFILE}" ; export INSDIR ++ start_extract_split ++ ;; ++ dist) ++ fetch_dist_file ++ start_extract_dist "$DLDIR" ++ ;; ++ *) ++ fetch_install_file ++ start_extract_uzip_tar ++ ;; ++ esac + ;; + + sftp) ;; +@@ -446,8 +538,13 @@ + exit_err "Install medium was set to local, but no localPath was provided!" + fi + LOCALPATH=$VAL +- INSFILE="${LOCALPATH}/${INSFILE}" ; export INSFILE +- start_extract_uzip_tar ++ if [ "$PACKAGETYPE" = "dist" ] ; then ++ INSFILE="${LOCALPATH}/${INSFILE}" ; export INSFILE ++ start_extract_dist "$LOCALPATH" ++ else ++ INSFILE="${LOCALPATH}/${INSFILE}" ; export INSFILE ++ start_extract_uzip_tar ++ fi + ;; + *) exit_err "ERROR: Unknown install medium" ;; + esac +Index: usr.sbin/pc-sysinstall/backend/functions-parse.sh +=================================================================== +--- usr.sbin/pc-sysinstall/backend/functions-parse.sh (revision 241789) ++++ usr.sbin/pc-sysinstall/backend/functions-parse.sh (working copy) +@@ -45,7 +45,7 @@ + { + if [ -n "${1}" ] + then +- export VAL=`grep "^${1}=" ${CFGF} | head -n 1 | cut -d '=' -f 2-` ++ export VAL="`grep ^${1}= ${CFGF} | head -n 1 | cut -d '=' -f 2-`" + else + exit_err "Error: Did we forgot to supply a setting to grab?" + fi +Index: usr.sbin/pc-sysinstall/backend/parseconfig.sh +=================================================================== +--- usr.sbin/pc-sysinstall/backend/parseconfig.sh (revision 241789) ++++ usr.sbin/pc-sysinstall/backend/parseconfig.sh (working copy) +@@ -69,7 +69,7 @@ + check_value installMode "fresh upgrade extract" + check_value installType "PCBSD FreeBSD" + check_value installMedium "dvd usb ftp rsync image local" +-check_value packageType "uzip tar rsync split" ++check_value packageType "uzip tar rsync split dist" + if_check_value_exists mirrorbal "load prefer round-robin split" + + # We passed all sanity checks! Yay, lets start the install +Index: usr.sbin/pc-sysinstall/examples/README +=================================================================== +--- usr.sbin/pc-sysinstall/examples/README (revision 241789) ++++ usr.sbin/pc-sysinstall/examples/README (working copy) +@@ -243,11 +243,16 @@ + + Available Types: + dvd - Search for and mount the DVD which contains the install archive ++local - Pull files directly from a local directory + usb - Search for and mount the USB drive which contains the install archive + ftp - The install archive will be fetched from a FTP / HTTP server before install + rsync - Pull the system data from a ssh + rsync server, specified with variables below + image - Install system from an image + ++# localPath=/usr/freebsd-dist ++ ++Location of the directory we will be pulling installation files from ++ + # installType=(PCBSD, FreeBSD) + + Set the type of system we are installing, PCBSD or FreeBSD +@@ -256,10 +261,14 @@ + + The installer archive, if not using the defaults specified in conf/pc-sysinstall.conf + +-# packageType=(tar, uzip, split) ++# packageType=(tar, uzip, split, dist) + + The archive type we are extracting from when using dvd, usb or ftp + ++# distFiles=base src kernel ++ ++List of dist files to install when packageType=dist ++ + # ftpPath=ftp://ftp.pcbsd.org/pub/8.0/netinstall + + Location of the installer archive when using a installMedium=ftp diff --git a/sysutils/pc-sysinstall/files/pc-sysinstall.mtree b/sysutils/pc-sysinstall/files/pc-sysinstall.mtree new file mode 100644 index 000000000000..0398d97220c3 --- /dev/null +++ b/sysutils/pc-sysinstall/files/pc-sysinstall.mtree @@ -0,0 +1,15 @@ +# pc-sysinstall hierarchy +. +/set type=dir uname=root gname=wheel mode=0755 + backend + .. + backend-partmanager + .. + backend-query + .. + conf + license + .. + .. + doc + .. diff --git a/sysutils/pc-sysinstall/pkg-descr b/sysutils/pc-sysinstall/pkg-descr new file mode 100644 index 000000000000..ce853f978ab0 --- /dev/null +++ b/sysutils/pc-sysinstall/pkg-descr @@ -0,0 +1,2 @@ +This port produces a package of the pc-sysinstall utility, intended +for use on older FreeBSD installations. diff --git a/sysutils/pc-sysinstall/pkg-plist b/sysutils/pc-sysinstall/pkg-plist new file mode 100644 index 000000000000..158126ef3854 --- /dev/null +++ b/sysutils/pc-sysinstall/pkg-plist @@ -0,0 +1,78 @@ +sbin/pc-sysinstall +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/README +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/pc-autoinstall.conf +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/pcinstall.cfg.fbsd-netinstall +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/pcinstall.cfg.geli +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/pcinstall.cfg.gmirror +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/pcinstall.cfg.netinstall +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/pcinstall.cfg.restore +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/pcinstall.cfg.rsync +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/pcinstall.cfg.upgrade +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/pcinstall.cfg.zfs +%%DATADIR%%/backend-partmanager/create-part.sh +%%DATADIR%%/backend-partmanager/delete-part.sh +%%DATADIR%%/backend-query/detect-emulation.sh +%%DATADIR%%/backend-query/detect-laptop.sh +%%DATADIR%%/backend-query/detect-nics.sh +%%DATADIR%%/backend-query/disk-info.sh +%%DATADIR%%/backend-query/disk-list.sh +%%DATADIR%%/backend-query/disk-part.sh +%%DATADIR%%/backend-query/enable-net.sh +%%DATADIR%%/backend-query/get-packages.sh +%%DATADIR%%/backend-query/list-components.sh +%%DATADIR%%/backend-query/list-config.sh +%%DATADIR%%/backend-query/list-mirrors.sh +%%DATADIR%%/backend-query/list-packages.sh +%%DATADIR%%/backend-query/list-rsync-backups.sh +%%DATADIR%%/backend-query/list-tzones.sh +%%DATADIR%%/backend-query/query-langs.sh +%%DATADIR%%/backend-query/send-logs.sh +%%DATADIR%%/backend-query/set-mirror.sh +%%DATADIR%%/backend-query/setup-ssh-keys.sh +%%DATADIR%%/backend-query/sys-mem.sh +%%DATADIR%%/backend-query/test-live.sh +%%DATADIR%%/backend-query/test-netup.sh +%%DATADIR%%/backend-query/update-part-list.sh +%%DATADIR%%/backend-query/xkeyboard-layouts.sh +%%DATADIR%%/backend-query/xkeyboard-models.sh +%%DATADIR%%/backend-query/xkeyboard-variants.sh +%%DATADIR%%/backend/functions-bsdlabel.sh +%%DATADIR%%/backend/functions-cleanup.sh +%%DATADIR%%/backend/functions-disk.sh +%%DATADIR%%/backend/functions-extractimage.sh +%%DATADIR%%/backend/functions-ftp.sh +%%DATADIR%%/backend/functions-installcomponents.sh +%%DATADIR%%/backend/functions-installpackages.sh +%%DATADIR%%/backend/functions-localize.sh +%%DATADIR%%/backend/functions-mountdisk.sh +%%DATADIR%%/backend/functions-mountoptical.sh +%%DATADIR%%/backend/functions-networking.sh +%%DATADIR%%/backend/functions-newfs.sh +%%DATADIR%%/backend/functions-packages.sh +%%DATADIR%%/backend/functions-parse.sh +%%DATADIR%%/backend/functions-runcommands.sh +%%DATADIR%%/backend/functions-unmount.sh +%%DATADIR%%/backend/functions-upgrade.sh +%%DATADIR%%/backend/functions-users.sh +%%DATADIR%%/backend/functions.sh +%%DATADIR%%/backend/installimage.sh +%%DATADIR%%/backend/parseconfig.sh +%%DATADIR%%/backend/startautoinstall.sh +%%DATADIR%%/conf/avail-langs +%%DATADIR%%/conf/exclude-from-upgrade +%%DATADIR%%/conf/license/bsd-en.txt +%%DATADIR%%/conf/license/intel-en.txt +%%DATADIR%%/conf/license/nvidia-en.txt +%%DATADIR%%/conf/pc-sysinstall.conf +%%DATADIR%%/doc/help-disk-list +%%DATADIR%%/doc/help-disk-size +%%DATADIR%%/doc/help-index +%%DATADIR%%/doc/help-start-autoinstall +@dirrm %%DATADIR%%/doc +@dirrm %%DATADIR%%/conf/license +@dirrm %%DATADIR%%/conf +@dirrm %%DATADIR%%/backend-query +@dirrm %%DATADIR%%/backend-partmanager +@dirrm %%DATADIR%%/backend +@dirrm %%DATADIR%% +%%PORTEXAMPLES%%@dirrm %%EXAMPLESDIR%% |