Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 11 Jan 2015 01:49:53 +0000 (UTC)
From:      Glen Barber <gjb@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-9@freebsd.org
Subject:   svn commit: r276954 - stable/9/release/scripts
Message-ID:  <201501110149.t0B1nrUj093364@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: gjb
Date: Sun Jan 11 01:49:52 2015
New Revision: 276954
URL: https://svnweb.freebsd.org/changeset/base/276954

Log:
  MFC r271480, r271483, r271491, r276765, r276766, r276820,
  r276822, r276827, r276828:
  
  r271480:
    Set PKG_CACHEDIR to an 'All/' directory one level lower
    to fix 'pkg repo' generating repository metadata for the
    on-disc packages.
  
  r271483:
    Fix duplicate PKG_ABI in the PKG_CACHEDIR path.
  
  r271491:
    Simplify dvd package population with pkg-1.3.
  
  r276765:
    Update pkg-stage.sh to be compatible with pkg-1.4.x.
  
    In 1.3.x and earlier, ABI format is, for example,
    freebsd:11:x86:64.
  
    In 1.4.x, ABI format is FreeBSD:11:amd64, and a new
    configuration entry, ALTABI, is: freebsd:11:x86:64.
  
    Export PKG_ABI and PKG_ALTABI accordingly, and if
    PKG_ALTABI is set, create a symlink within the dvd
    PKG_CACHEDIR so both new and old ABI directories
    exist.
  
  r276766:
    Properly change directories before creating the
    PKG_ALTABI -> PKG_ABI symlink.
  
  r276820:
    Print informational output when NOPORTS is set,
    which would otherwise cause pkg-stage.sh to
    silently exit.
  
  r276822:
    Ensure /var/run/ld-elf.so.hints exists before building
    pkg(8).
  
  r276827:
    Ensure the ports directories exist for the list of
    packages intended to be included on the DVD, and
    remove any nonexistent ports from the final list.
  
    Print the list of missing paths, and ensure that
    DVD_PACKAGES is non-zero length (which should never
    happen).
  
  r276828:
    Switch to x11/gnome3 now that x11/gnome2 no
    longer exists in the ports tree.
  
  Sponsored by:	The FreeBSD Foundation

Modified:
  stable/9/release/scripts/pkg-stage.sh
Directory Properties:
  stable/9/release/   (props changed)

Modified: stable/9/release/scripts/pkg-stage.sh
==============================================================================
--- stable/9/release/scripts/pkg-stage.sh	Sun Jan 11 01:38:32 2015	(r276953)
+++ stable/9/release/scripts/pkg-stage.sh	Sun Jan 11 01:49:52 2015	(r276954)
@@ -11,7 +11,7 @@ export PERMISSIVE="YES"
 export REPO_AUTOUPDATE="NO"
 export PKGCMD="/usr/sbin/pkg -d"
 
-DVD_PACKAGES="archivers/unzip
+_DVD_PACKAGES="archivers/unzip
 devel/subversion
 devel/subversion-static
 emulators/linux_base-f10
@@ -27,33 +27,58 @@ sysutils/screen
 www/firefox
 www/links
 x11-drivers/xf86-video-vmware
-x11/gnome2
+x11/gnome3
 x11/kde4
 x11/xorg"
 
 # If NOPORTS is set for the release, do not attempt to build pkg(8).
 if [ ! -f /usr/ports/Makefile ]; then
+	echo "*** /usr/ports is missing!    ***"
+	echo "*** Skipping pkg-stage.sh     ***"
+	echo "*** Unset NOPORTS to fix this ***"
 	exit 0
 fi
 
 if [ ! -x /usr/local/sbin/pkg ]; then
+	/etc/rc.d/ldconfig restart
 	/usr/bin/make -C /usr/ports/ports-mgmt/pkg install clean
 fi
 
-PKG_ABI=$(pkg -vv | grep ^ABI | awk '{print $3}')
-PKG_ABI="${PKG_ABI%\";}"
-PKG_ABI="${PKG_ABI#\"}"
-export PKG_ABI
-export PKG_CACHEDIR="dvd/packages/${PKG_ABI}"
+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 [ ! -z "${PKG_ALTABI}" ]; then
+	(cd ${DVD_DIR} && ln -s ${PKG_ABI} ${PKG_ALTABI})
+fi
 
-/bin/mkdir -p ${PKG_CACHEDIR}
+# Ensure the ports listed in _DVD_PACKAGES exist to sanitize the
+# final list.
+for _P in ${_DVD_PACKAGES}; do
+	if [ -d "/usr/ports/${_P}" ]; then
+		DVD_PACKAGES="${DVD_PACKAGES} ${_P}"
+	else
+		echo "*** Skipping nonexistent port: ${_P}"
+	fi
+done
+
+# Make sure the package list is not empty.
+if [ -z "${DVD_PACKAGES}" ]; then
+	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
+fi
 
 # Print pkg(8) information to make debugging easier.
 ${PKGCMD} -vv
 ${PKGCMD} update -f
-${PKGCMD} fetch -d ${DVD_PACKAGES}
+${PKGCMD} fetch -o ${PKG_REPODIR} -d ${DVD_PACKAGES}
 
-${PKGCMD} repo ${PKG_CACHEDIR}
+${PKGCMD} repo ${PKG_REPODIR}
 
 # Always exit '0', even if pkg(8) complains about conflicts.
 exit 0



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201501110149.t0B1nrUj093364>