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