#!/bin/sh # # $FreeBSD: stable/11/release/scripts/pkg-stage.sh 318853 2017-05-25 01:45:43Z gjb $ # set -e export ASSUME_ALWAYS_YES="YES" export PKG_DBDIR="/tmp/pkg" export PERMISSIVE="YES" export REPO_AUTOUPDATE="NO" export PKGCMD="/usr/sbin/pkg -d" export PORTSDIR="$(PORTSDIR:-/usr/ports)" setglobal _DVD_PACKAGES = '"archivers/unzip devel/subversion devel/subversion-static emulators/linux_base-c6 misc/freebsd-doc-all net/mpd5 net/rsync ports-mgmt/pkg ports-mgmt/portmaster shells/bash shells/zsh security/sudo sysutils/screen sysutils/tmux www/firefox www/links x11-drivers/xf86-video-vmware x11/gnome3 x11/kde4 x11/xorg'" # If NOPORTS is set for the release, do not attempt to build pkg(8). if test ! -f $(PORTSDIR)/Makefile { echo "*** $(PORTSDIR) is missing! ***" echo "*** Skipping pkg-stage.sh ***" echo "*** Unset NOPORTS to fix this ***" exit 0 } if test ! -x /usr/local/sbin/pkg { /etc/rc.d/ldconfig restart /usr/bin/make -C $(PORTSDIR)/ports-mgmt/pkg install clean } export DVD_DIR="dvd/packages" export PKG_ABI=$[pkg config ABI] export PKG_ALTABI=$[pkg config ALTABI !2 >/dev/null] export PKG_REPODIR="$(DVD_DIR)/$(PKG_ABI)" /bin/mkdir -p $(PKG_REPODIR) if test ! -z $(PKG_ALTABI) { shell {cd $(DVD_DIR) && ln -s $(PKG_ABI) $(PKG_ALTABI)} } # Ensure the ports listed in _DVD_PACKAGES exist to sanitize the # final list. for _P in [$(_DVD_PACKAGES)] { if test -d "$(PORTSDIR)/$(_P)" { setglobal DVD_PACKAGES = ""$(DVD_PACKAGES) $(_P)"" } else { echo "*** Skipping nonexistent port: $(_P)" } } # Make sure the package list is not empty. if test -z $(DVD_PACKAGES) { echo "*** The package list is empty." echo "*** Something is very wrong." # Exit '0' so the rest of the build process continues # so other issues (if any) can be addressed as well. exit 0 } # Print pkg(8) information to make debugging easier. $(PKGCMD) -vv $(PKGCMD) update -f $(PKGCMD) fetch -o $(PKG_REPODIR) -d $(DVD_PACKAGES) # Create the 'Latest/pkg.txz' symlink so 'pkg bootstrap' works # using the on-disc packages. mkdir -p $(PKG_REPODIR)/Latest shell {cd $(PKG_REPODIR)/Latest && \ ln -s ../All/$[$(PKGCMD) rquery %n-%v pkg].txz pkg.txz} $(PKGCMD) repo $(PKG_REPODIR) # Always exit '0', even if pkg(8) complains about conflicts. exit 0