#!/bin/sh # # Author: Jordan Hubbard # Date: Mon Jul 10 01:18:20 2000 # Version: $FreeBSD$ # # MAINTAINER: re # # This script prints out the list of "minimum required packages" for # a given CDROM number, that numer currently referring to the 4 CD # "official set" published by BSDi. If there is no minimum package # set for the given CDROM, or none is known, the script will exit # with an error code of 1. At some point, this script should be extended # to at least cope with other official CD distributions, like non-US ones. # # usage: print-cdrom-packages.sh cdrom-number # # example: ./print-cdrom-packages.sh 1 # will print the minimal package set for the first cdrom (what's generally # referred to as the installation boot CD). # # This information is codified in script form so that some definitive # reference for the package set info exists rather than having it # be left up to everybody's best guess. It's currently hard-coded directly # into the script but may, at some point, switch to a more sophisticated # data-extraction technique from the ports collection. For now, add your # packages to the appropriate CDROM_SET_ variable as /usr/ports/ # so that the package name and dependency list for each can be at least be # obtained in an automated fashion. # The following are required if you obtained your packages from one of the # package building clusters or otherwise had these defined when the packages # were built. export BATCH=t export PACKAGE_BUILDING=t export PARALLEL_PACKAGE_BUILD=t # Don't pick up installed packages from the host export LOCALBASE=/nonexistentlocal export X11BASE=/nonexistentx export PKG_DBDIR=/nonexistentdb if [ "X${PKG_ARCH}" = "X" ]; then export PKG_ARCH=`uname -m` fi export ARCH=${PKG_ARCH} # usage: extract-names cd# [portsdir] extract-names() { portsdir=${2-/usr/ports} _FOO=`eval echo \\${CDROM_SET_$1}` if [ "${_FOO}" ]; then TMPNAME="/tmp/_extract_names$$" rm -f ${TMPNAME} for i in ${_FOO}; do ( cd $portsdir/$i && PORTSDIR=$portsdir make package-name package-depends ) >> ${TMPNAME}; done if [ -s "${TMPNAME}" ]; then sed -e 's/:.*$//' < ${TMPNAME} | sort -u fi rm -f ${TMPNAME} else exit 1 fi } ## Start of set for CDROM #1 CDROM_SET_1="" if [ "X${PKG_ARCH}" = "Xia64" ]; then CDROM_SET_1="${CDROM_SET_1} archivers/unzip" CDROM_SET_1="${CDROM_SET_1} devel/gmake" CDROM_SET_1="${CDROM_SET_1} lang/perl5.8" CDROM_SET_1="${CDROM_SET_1} security/sudo" CDROM_SET_1="${CDROM_SET_1} shells/bash2" CDROM_SET_1="${CDROM_SET_1} shells/pdksh" CDROM_SET_1="${CDROM_SET_1} shells/zsh" CDROM_SET_1="${CDROM_SET_1} x11/gnome2-lite" CDROM_SET_1="${CDROM_SET_1} x11/kde-lite" CDROM_SET_1="${CDROM_SET_1} x11/xorg" CDROM_SET_1="${CDROM_SET_1} x11/xorg-manpages" else # This is the set required by sysinstall. if [ "X${PKG_ARCH}" = "Xalpha" ]; then CDROM_SET_1="${CDROM_SET_1} emulators/osf1_base" elif [ "X${PKG_ARCH}" = "Xi386" ]; then CDROM_SET_1="${CDROM_SET_1} emulators/linux_base" fi CDROM_SET_1="${CDROM_SET_1} lang/perl5.8" CDROM_SET_1="${CDROM_SET_1} mail/exim" CDROM_SET_1="${CDROM_SET_1} mail/postfix" CDROM_SET_1="${CDROM_SET_1} net/pcnfsd" CDROM_SET_1="${CDROM_SET_1} x11-fonts/xorg-fonts-100dpi" CDROM_SET_1="${CDROM_SET_1} x11-fonts/xorg-fonts-75dpi" CDROM_SET_1="${CDROM_SET_1} x11-fonts/xorg-fonts-cyrillic" CDROM_SET_1="${CDROM_SET_1} x11-fonts/xorg-fonts-encodings" CDROM_SET_1="${CDROM_SET_1} x11-fonts/xorg-fonts-miscbitmaps" CDROM_SET_1="${CDROM_SET_1} x11-fonts/xorg-fonts-truetype" CDROM_SET_1="${CDROM_SET_1} x11-fonts/xorg-fonts-type1" CDROM_SET_1="${CDROM_SET_1} x11-servers/xorg-fontserver" CDROM_SET_1="${CDROM_SET_1} x11-servers/xorg-nestserver" CDROM_SET_1="${CDROM_SET_1} x11-servers/xorg-printserver" CDROM_SET_1="${CDROM_SET_1} x11-servers/xorg-server" CDROM_SET_1="${CDROM_SET_1} x11-servers/xorg-vfbserver" CDROM_SET_1="${CDROM_SET_1} x11-wm/afterstep" CDROM_SET_1="${CDROM_SET_1} x11-wm/enlightenment" CDROM_SET_1="${CDROM_SET_1} x11-wm/fvwm2" CDROM_SET_1="${CDROM_SET_1} x11-wm/sawfish2" CDROM_SET_1="${CDROM_SET_1} x11-wm/windowmaker" CDROM_SET_1="${CDROM_SET_1} x11/xorg" CDROM_SET_1="${CDROM_SET_1} x11/xorg-clients" CDROM_SET_1="${CDROM_SET_1} x11/xorg-documents" CDROM_SET_1="${CDROM_SET_1} x11/xorg-libraries" CDROM_SET_1="${CDROM_SET_1} x11/xorg-manpages" if [ "X${PKG_ARCH}" = "Xi386" ]; then CDROM_SET_1="${CDROM_SET_1} x11/gnome2-lite" else CDROM_SET_1="${CDROM_SET_1} x11/gnome2" fi CDROM_SET_1="${CDROM_SET_1} x11/kde-lite" CDROM_SET_1="${CDROM_SET_1} www/links" # This is the set of "people really want these" packages. Please # add to this list. CDROM_SET_1="${CDROM_SET_1} astro/xearth" CDROM_SET_1="${CDROM_SET_1} editors/emacs" CDROM_SET_1="${CDROM_SET_1} editors/vim" CDROM_SET_1="${CDROM_SET_1} editors/vim-lite" CDROM_SET_1="${CDROM_SET_1} emulators/mtools" CDROM_SET_1="${CDROM_SET_1} graphics/xv" CDROM_SET_1="${CDROM_SET_1} irc/xchat2" CDROM_SET_1="${CDROM_SET_1} mail/fetchmail" CDROM_SET_1="${CDROM_SET_1} mail/mutt" CDROM_SET_1="${CDROM_SET_1} mail/pine4" CDROM_SET_1="${CDROM_SET_1} mail/popd" CDROM_SET_1="${CDROM_SET_1} mail/xfmail" CDROM_SET_1="${CDROM_SET_1} misc/bsdiff" CDROM_SET_1="${CDROM_SET_1} net/cvsup" CDROM_SET_1="${CDROM_SET_1} net/rsync" CDROM_SET_1="${CDROM_SET_1} net/samba" CDROM_SET_1="${CDROM_SET_1} news/slrn" CDROM_SET_1="${CDROM_SET_1} news/tin" CDROM_SET_1="${CDROM_SET_1} print/a2ps-letter" if [ "X${PKG_ARCH}" = "Xi386" ]; then CDROM_SET_1="${CDROM_SET_1} print/acroread5" CDROM_SET_1="${CDROM_SET_1} comms/ltmdm" fi CDROM_SET_1="${CDROM_SET_1} print/apsfilter" CDROM_SET_1="${CDROM_SET_1} print/ghostscript-gnu-nox11" CDROM_SET_1="${CDROM_SET_1} print/gv" CDROM_SET_1="${CDROM_SET_1} print/psutils-letter" CDROM_SET_1="${CDROM_SET_1} security/freebsd-update" CDROM_SET_1="${CDROM_SET_1} security/sudo" CDROM_SET_1="${CDROM_SET_1} shells/bash2" CDROM_SET_1="${CDROM_SET_1} shells/pdksh" CDROM_SET_1="${CDROM_SET_1} shells/zsh" CDROM_SET_1="${CDROM_SET_1} sysutils/portupgrade" CDROM_SET_1="${CDROM_SET_1} www/lynx" if [ "X${PKG_ARCH}" = "Xi386" ]; then CDROM_SET_1="${CDROM_SET_1} www/opera" fi CDROM_SET_1="${CDROM_SET_1} x11/rxvt" # VERY common build dependencies CDROM_SET_1="${CDROM_SET_1} archivers/unzip" CDROM_SET_1="${CDROM_SET_1} devel/gmake" CDROM_SET_1="${CDROM_SET_1} graphics/png" if [ "X${PKG_ARCH}" = "Xi386" -o "X${PKG_ARCH}" = "Xalpha" ]; then CDROM_SET_1="${CDROM_SET_1} misc/compat4x" fi fi ## End of set for CDROM #1 ## Start of set for CDROM #2 ## Live file system, CVS repositories, and commerical software demos ## typically live on this disc. Users do not expect to find packages ## here. ## End of set for CDROM #2 ## Start of set for CDROM #3 CDROM_SET_3="${CDROM_SET_3} editors/xemacs" CDROM_SET_3="${CDROM_SET_3} lang/gnat" CDROM_SET_3="${CDROM_SET_3} lang/php4" CDROM_SET_3="${CDROM_SET_3} lang/php5" CDROM_SET_3="${CDROM_SET_3} net/cvsup-without-gui" CDROM_SET_3="${CDROM_SET_3} print/teTeX" CDROM_SET_3="${CDROM_SET_3} security/portaudit" CDROM_SET_3="${CDROM_SET_3} textproc/docproj-jadetex" CDROM_SET_3="${CDROM_SET_3} www/apache13" CDROM_SET_3="${CDROM_SET_3} www/apache13-modssl" CDROM_SET_3="${CDROM_SET_3} www/apache2" ## End of set for CDROM #3 ## Start of set for CDROM #4 ## End of set for CDROM #4 ## Start of set that should not be included on any CDROM. ## This should not contain packages that are already marked BROKEN or ## RESTRICTED, it is only for packages that sysinstall(8) has trouble ## with. NO_CDROM_SET="" NO_CDROM_SET="${NO_CDROM_SET} net/cvsupit" # Start of actual script. if [ $# -lt 1 ]; then echo "usage: $0 cdrom-number [portsdir]" exit 2 fi if [ ${1} = 0 ]; then echo $NO_CDROM_SET else extract-names $* fi exit 0