Add a script and configuration files to fetch pre-built packages

from pkg.FreeBSD.org for inclusion on release medium (dvd1.iso).

The script sources ${.CURDIR}/${TARGET}/pkg-stage.conf, which sets
several environment variables, such as the pkg(8) ABI, PACKAGESITE,
PKG_DBDIR, and PKG_CACHEDIR.  PKG_CACHEDIR is set to the directory
on the release medium used by bsdconfig(8) (/packages/${ABI}).  ABI
is determined by output of 'make -C /usr/src/release -V REVISION'.
See pkg.conf(5) for descripton on other variables set here.

The list of packages to include are set within the configuration
file.

The script and configuration files are intended to be run by the
'make dvd' target within the release directory, and assume the
release is built within a chroot environment (such as by using
release.sh).

Relevant updates to release/Makefile will follow.

Sponsored by:	The FreeBSD Foundation
This commit is contained in:
Glen Barber 2013-11-18 15:22:55 +00:00
parent 849861d03f
commit 042a51f641
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=258307
3 changed files with 111 additions and 0 deletions

36
release/amd64/pkg-stage.conf Executable file
View File

@ -0,0 +1,36 @@
#!/bin/sh
#
# $FreeBSD$
#
export PKG_ABI="freebsd:$(echo ${REVISION} | tr -d '.0'):x86:64"
export ASSUME_ALWAYS_YES=1
export __PKG_CONF="/etc/pkg/FreeBSD.conf"
export PACKAGESITE="http://pkg.FreeBSD.org/${PKG_ABI}/latest"
export MIRROR_TYPE="SRV"
export REPO_AUTOUPDATE="NO"
export PKG_DBDIR="/tmp/pkg"
export PKG_CACHEDIR="release/packages/${PKG_ABI}"
export PERMISSIVE="YES"
export PKGCMD="/usr/sbin/pkg -d -C ${__PKG_CONF}"
DVD_PACKAGES="archivers/unzip
devel/subversion
devel/subversion-static
emulators/linux_base-f10
misc/freebsd-doc-all
net/mpd5
net/rsync
ports-mgmt/pkg
ports-mgmt/portaudit
ports-mgmt/portmaster
shells/bash
shells/zsh
security/sudo
sysutils/screen
www/firefox
www/links
x11-drivers/xf86-video-vmware
x11/gnome2
x11/kde4
x11/xorg"

36
release/i386/pkg-stage.conf Executable file
View File

@ -0,0 +1,36 @@
#!/bin/sh
#
# $FreeBSD$
#
export PKG_ABI="freebsd:$(echo ${REVISION} | tr -d '.0'):x86:32"
export ASSUME_ALWAYS_YES=1
export __PKG_CONF="/etc/pkg/FreeBSD.conf"
export PACKAGESITE="http://pkg.FreeBSD.org/${PKG_ABI}/latest"
export MIRROR_TYPE="SRV"
export REPO_AUTOUPDATE="NO"
export PKG_DBDIR="/tmp/pkg"
export PKG_CACHEDIR="release/packages/${PKG_ABI}"
export PERMISSIVE="YES"
export PKGCMD="/usr/sbin/pkg -d -C ${__PKG_CONF}"
DVD_PACKAGES="archivers/unzip
devel/subversion
devel/subversion-static
emulators/linux_base-f10
misc/freebsd-doc-all
net/mpd5
net/rsync
ports-mgmt/pkg
ports-mgmt/portaudit
ports-mgmt/portmaster
shells/bash
shells/zsh
security/sudo
sysutils/screen
www/firefox
www/links
x11-drivers/xf86-video-vmware
x11/gnome2
x11/kde4
x11/xorg"

39
release/scripts/pkg-stage.sh Executable file
View File

@ -0,0 +1,39 @@
#!/bin/sh
#
# $FreeBSD$
#
set -e
usage() {
echo "$(basename ${0}) /path/to/pkg-stage.conf revision"
exit 1
}
if [ ! -e "${1}" ]; then
echo "Configuration file not specified."
echo
usage
fi
if [ "$#" -lt 2 ]; then
usage
fi
# Source config file for this architecture.
REVISION="${2}"
. "${1}" || exit 1
if [ ! -x /usr/local/sbin/pkg ]; then
/usr/sbin/pkg bootstrap
fi
/bin/mkdir -p ${PKG_CACHEDIR}
${PKGCMD} update -f
${PKGCMD} fetch -d ${DVD_PACKAGES}
${PKGCMD} repo ${PKG_CACHEDIR}
# Always exit '0', even if pkg(8) complains about conflicts.
exit 0