]> CyberLeo.Net >> Repos - FreeBSD/stable/10.git/blob - release/scripts/pkg-stage.sh
MFC r368207,368607:
[FreeBSD/stable/10.git] / release / scripts / pkg-stage.sh
1 #!/bin/sh
2 #
3 # $FreeBSD$
4 #
5
6 set -e
7
8 export ASSUME_ALWAYS_YES="YES"
9 export PKG_DBDIR="/tmp/pkg"
10 export PERMISSIVE="YES"
11 export REPO_AUTOUPDATE="NO"
12 export PKGCMD="/usr/sbin/pkg -d"
13 export PORTSDIR="${PORTSDIR:-/usr/ports}"
14
15 _DVD_PACKAGES="archivers/unzip
16 devel/subversion
17 devel/subversion-static
18 emulators/linux_base-f10
19 misc/freebsd-doc-all
20 net/mpd5
21 net/rsync
22 ports-mgmt/pkg
23 ports-mgmt/portmaster
24 shells/bash
25 shells/zsh
26 security/sudo
27 sysutils/screen
28 www/firefox
29 www/links
30 x11-drivers/xf86-video-vmware
31 x11/gnome3
32 x11/kde5
33 x11/xorg"
34
35 # If NOPORTS is set for the release, do not attempt to build pkg(8).
36 if [ ! -f ${PORTSDIR}/Makefile ]; then
37         echo "*** ${PORTSDIR} is missing!    ***"
38         echo "*** Skipping pkg-stage.sh     ***"
39         echo "*** Unset NOPORTS to fix this ***"
40         exit 0
41 fi
42
43 if [ ! -x /usr/local/sbin/pkg ]; then
44         /etc/rc.d/ldconfig restart
45         /usr/bin/make -C ${PORTSDIR}/ports-mgmt/pkg install clean
46 fi
47
48 export DVD_DIR="dvd/packages"
49 export PKG_ABI=$(pkg config ABI)
50 export PKG_ALTABI=$(pkg config ALTABI 2>/dev/null)
51 export PKG_REPODIR="${DVD_DIR}/${PKG_ABI}"
52
53 /bin/mkdir -p ${PKG_REPODIR}
54 if [ ! -z "${PKG_ALTABI}" ]; then
55         (cd ${DVD_DIR} && ln -s ${PKG_ABI} ${PKG_ALTABI})
56 fi
57
58 # Ensure the ports listed in _DVD_PACKAGES exist to sanitize the
59 # final list.
60 for _P in ${_DVD_PACKAGES}; do
61         if [ -d "${PORTSDIR}/${_P}" ]; then
62                 DVD_PACKAGES="${DVD_PACKAGES} ${_P}"
63         else
64                 echo "*** Skipping nonexistent port: ${_P}"
65         fi
66 done
67
68 # Make sure the package list is not empty.
69 if [ -z "${DVD_PACKAGES}" ]; then
70         echo "*** The package list is empty."
71         echo "*** Something is very wrong."
72         # Exit '0' so the rest of the build process continues
73         # so other issues (if any) can be addressed as well.
74         exit 0
75 fi
76
77 # Print pkg(8) information to make debugging easier.
78 ${PKGCMD} -vv
79 ${PKGCMD} update -f
80 ${PKGCMD} fetch -o ${PKG_REPODIR} -d ${DVD_PACKAGES}
81
82 # Create the 'Latest/pkg.txz' symlink so 'pkg bootstrap' works
83 # using the on-disc packages.
84 mkdir -p ${PKG_REPODIR}/Latest
85 (cd ${PKG_REPODIR}/Latest && \
86         ln -s ../All/$(${PKGCMD} rquery %n-%v pkg).txz pkg.txz)
87
88 ${PKGCMD} repo ${PKG_REPODIR}
89
90 # Always exit '0', even if pkg(8) complains about conflicts.
91 exit 0