xref: /freebsd-src/release/scripts/pkg-stage.sh (revision 2483a2d36803896d27861c03e1f53dd9546b1e73)
1042a51f6SGlen Barber#!/bin/sh
2042a51f6SGlen Barber#
3042a51f6SGlen Barber#
4042a51f6SGlen Barber
5042a51f6SGlen Barberset -e
6042a51f6SGlen Barber
7f0d60b2aSGlen Barberexport ASSUME_ALWAYS_YES="YES"
86f50c4eaSGlen Barberexport PKG_DBDIR="/tmp/pkg"
96f50c4eaSGlen Barberexport PERMISSIVE="YES"
106f50c4eaSGlen Barberexport REPO_AUTOUPDATE="NO"
11ea266304SJohn Baldwinexport ROOTDIR="$PWD/dvd"
12ea266304SJohn Baldwinexport PKGCMD="/usr/sbin/pkg -d --rootdir ${ROOTDIR}"
13fefd0439SGlen Barberexport PORTSDIR="${PORTSDIR:-/usr/ports}"
14042a51f6SGlen Barber
15d31ed58bSColin Percival_DVD_PACKAGES="devel/git@lite
16fea4a44cSLi-Wen Hsugraphics/drm-kmod
17fea4a44cSLi-Wen Hsugraphics/drm-510-kmod
18fea4a44cSLi-Wen Hsugraphics/drm-515-kmod
196f50c4eaSGlen Barbermisc/freebsd-doc-all
206f50c4eaSGlen Barbernet/mpd5
216f50c4eaSGlen Barbernet/rsync
22*2483a2d3SBjoern A. Zeebnet/wifi-firmware-kmod@release
236f50c4eaSGlen Barberports-mgmt/pkg
246f50c4eaSGlen Barbershells/bash
256f50c4eaSGlen Barbershells/zsh
266f50c4eaSGlen Barbersecurity/sudo
276f50c4eaSGlen Barbersysutils/screen
28d31ed58bSColin Percivalsysutils/seatd
29868f280aSEd Mastesysutils/tmux
306f50c4eaSGlen Barberwww/firefox
316f50c4eaSGlen Barberwww/links
32e4e139b8SGlen Barberx11/gnome
33dc39aae3SGlen Barberx11/kde5
345ff76402SGraham Perrinx11/sddm
35d31ed58bSColin Percivalx11/xorg
36d31ed58bSColin Percivalx11-wm/sway"
37042a51f6SGlen Barber
3889df2158SGlen Barber# If NOPORTS is set for the release, do not attempt to build pkg(8).
39fefd0439SGlen Barberif [ ! -f ${PORTSDIR}/Makefile ]; then
40fefd0439SGlen Barber	echo "*** ${PORTSDIR} is missing!    ***"
41ef6db579SGlen Barber	echo "*** Skipping pkg-stage.sh     ***"
42ef6db579SGlen Barber	echo "*** Unset NOPORTS to fix this ***"
4389df2158SGlen Barber	exit 0
4489df2158SGlen Barberfi
4589df2158SGlen Barber
46042a51f6SGlen Barberif [ ! -x /usr/local/sbin/pkg ]; then
476b7ca552SGlen Barber	/etc/rc.d/ldconfig restart
48fefd0439SGlen Barber	/usr/bin/make -C ${PORTSDIR}/ports-mgmt/pkg install clean
49042a51f6SGlen Barberfi
50042a51f6SGlen Barber
51ea266304SJohn Baldwinexport PKG_ABI=$(pkg --rootdir ${ROOTDIR} config ABI)
52ea266304SJohn Baldwinexport PKG_ALTABI=$(pkg --rootdir ${ROOTDIR} config ALTABI 2>/dev/null)
53ea266304SJohn Baldwinexport PKG_REPODIR="packages/${PKG_ABI}"
546f50c4eaSGlen Barber
55ea266304SJohn Baldwin/bin/mkdir -p ${ROOTDIR}/${PKG_REPODIR}
568f85f8e6SGlen Barberif [ ! -z "${PKG_ALTABI}" ]; then
57ea266304SJohn Baldwin	ln -s ${PKG_ABI} ${ROOTDIR}/packages/${PKG_ALTABI}
588f85f8e6SGlen Barberfi
59042a51f6SGlen Barber
6006699389SGlen Barber# Ensure the ports listed in _DVD_PACKAGES exist to sanitize the
6106699389SGlen Barber# final list.
6206699389SGlen Barberfor _P in ${_DVD_PACKAGES}; do
63d31ed58bSColin Percival	if [ -d "${PORTSDIR}/${_P%%@*}" ]; then
6406699389SGlen Barber		DVD_PACKAGES="${DVD_PACKAGES} ${_P}"
6506699389SGlen Barber	else
66d31ed58bSColin Percival		echo "*** Skipping nonexistent port: ${_P%%@*}"
6706699389SGlen Barber	fi
6806699389SGlen Barberdone
6906699389SGlen Barber
7006699389SGlen Barber# Make sure the package list is not empty.
7106699389SGlen Barberif [ -z "${DVD_PACKAGES}" ]; then
7206699389SGlen Barber	echo "*** The package list is empty."
7306699389SGlen Barber	echo "*** Something is very wrong."
7406699389SGlen Barber	# Exit '0' so the rest of the build process continues
7506699389SGlen Barber	# so other issues (if any) can be addressed as well.
7606699389SGlen Barber	exit 0
7706699389SGlen Barberfi
7806699389SGlen Barber
796f50c4eaSGlen Barber# Print pkg(8) information to make debugging easier.
806f50c4eaSGlen Barber${PKGCMD} -vv
81042a51f6SGlen Barber${PKGCMD} update -f
8253bdd39bSGlen Barber${PKGCMD} fetch -o ${PKG_REPODIR} -d ${DVD_PACKAGES}
83042a51f6SGlen Barber
8483f0a683SGlen Barber# Create the 'Latest/pkg.txz' symlink so 'pkg bootstrap' works
8583f0a683SGlen Barber# using the on-disc packages.
86ea266304SJohn Baldwinexport LATEST_DIR="${ROOTDIR}/${PKG_REPODIR}/Latest"
87ea266304SJohn Baldwinmkdir -p ${LATEST_DIR}
88ea266304SJohn Baldwinln -s ../All/$(${PKGCMD} rquery %n-%v pkg).pkg ${LATEST_DIR}/pkg.pkg
89ea266304SJohn Baldwinln -sf pkg.pkg ${LATEST_DIR}/pkg.txz
9083f0a683SGlen Barber
91017717d8SGlen Barber${PKGCMD} repo ${PKG_REPODIR}
92042a51f6SGlen Barber
93042a51f6SGlen Barber# Always exit '0', even if pkg(8) complains about conflicts.
94042a51f6SGlen Barberexit 0
95