pkg-stage.sh revision 318291
1153761Swollman#!/bin/sh 2192886Sedwin# 3192886Sedwin# $FreeBSD: stable/11/release/scripts/pkg-stage.sh 318291 2017-05-15 14:22:03Z emaste $ 464499Swollman# 52742Swollman 62742Swollmanset -e 7243020Sedwin 82742Swollmanexport ASSUME_ALWAYS_YES="YES" 9158421Swollmanexport PKG_DBDIR="/tmp/pkg" 102742Swollmanexport PERMISSIVE="YES" 11158421Swollmanexport REPO_AUTOUPDATE="NO" 12158421Swollmanexport PKGCMD="/usr/sbin/pkg -d" 132742Swollman 14248310Sedwin_DVD_PACKAGES="archivers/unzip 15248310Sedwindevel/subversion 16248310Sedwindevel/subversion-static 17248310Sedwinemulators/linux_base-c6 1886222Swollmanmisc/freebsd-doc-all 1920094Swollmannet/mpd5 2020094Swollmannet/rsync 2120094Swollmanports-mgmt/pkg 2220094Swollmanports-mgmt/portmaster 2320094Swollmanshells/bash 24158421Swollmanshells/zsh 25158421Swollmansecurity/sudo 2620094Swollmansysutils/screen 2719878Swollmansysutils/tmux 2819878Swollmanwww/firefox 2919878Swollmanwww/links 3019878Swollmanx11-drivers/xf86-video-vmware 3119878Swollmanx11/gnome3 3219878Swollmanx11/kde4 3319878Swollmanx11/xorg" 3419878Swollman 3558787Sru# If NOPORTS is set for the release, do not attempt to build pkg(8). 3658787Sruif [ ! -f /usr/ports/Makefile ]; then 3758787Sru echo "*** /usr/ports is missing! ***" 3858787Sru echo "*** Skipping pkg-stage.sh ***" 3958787Sru echo "*** Unset NOPORTS to fix this ***" 4058787Sru exit 0 4158787Srufi 4258787Sru 4358787Sruif [ ! -x /usr/local/sbin/pkg ]; then 4458787Sru /etc/rc.d/ldconfig restart 4558787Sru /usr/bin/make -C /usr/ports/ports-mgmt/pkg install clean 4658787Srufi 4758787Sru 4858787Sruexport DVD_DIR="dvd/packages" 4958787Sruexport PKG_ABI=$(pkg config ABI) 5058787Sruexport PKG_ALTABI=$(pkg config ALTABI 2>/dev/null) 5158787Sruexport PKG_REPODIR="${DVD_DIR}/${PKG_ABI}" 5258787Sru 532742Swollman/bin/mkdir -p ${PKG_REPODIR} 542742Swollmanif [ ! -z "${PKG_ALTABI}" ]; then 552742Swollman (cd ${DVD_DIR} && ln -s ${PKG_ABI} ${PKG_ALTABI}) 562742Swollmanfi 572742Swollman 582742Swollman# Ensure the ports listed in _DVD_PACKAGES exist to sanitize the 592742Swollman# final list. 6019878Swollmanfor _P in ${_DVD_PACKAGES}; do 612742Swollman if [ -d "/usr/ports/${_P}" ]; then 622742Swollman DVD_PACKAGES="${DVD_PACKAGES} ${_P}" 632742Swollman else 6419878Swollman echo "*** Skipping nonexistent port: ${_P}" 652742Swollman fi 662742Swollmandone 67149514Swollman 6821217Swollman# Make sure the package list is not empty. 699908Swollmanif [ -z "${DVD_PACKAGES}" ]; then 709908Swollman echo "*** The package list is empty." 712742Swollman echo "*** Something is very wrong." 7219878Swollman # Exit '0' so the rest of the build process continues 7319878Swollman # so other issues (if any) can be addressed as well. 7419878Swollman exit 0 7519878Swollmanfi 7619878Swollman 7719878Swollman# Print pkg(8) information to make debugging easier. 7819878Swollman${PKGCMD} -vv 7919878Swollman${PKGCMD} update -f 8019878Swollman${PKGCMD} fetch -o ${PKG_REPODIR} -d ${DVD_PACKAGES} 8119878Swollman 8219878Swollman# Create the 'Latest/pkg.txz' symlink so 'pkg bootstrap' works 8319878Swollman# using the on-disc packages. 8419878Swollmanmkdir -p ${PKG_REPODIR}/Latest 8519878Swollman(cd ${PKG_REPODIR}/Latest && \ 8619878Swollman ln -s ../All/$(${PKGCMD} rquery %n-%v pkg).txz pkg.txz) 8719878Swollman 8893799Swollman${PKGCMD} repo ${PKG_REPODIR} 8958787Sru 9058787Sru# Always exit '0', even if pkg(8) complains about conflicts. 9119878Swollmanexit 0 9219878Swollman