Feature merge from development version. Changes include:

* Support for experimental ports directory.
* Support for patches to be applied automatically.
* Acknowledge that we're currently testing 2.7, not 2.8.
* Various formatting and string tweaks.
* Use a slightly better logic for clearing out stale patches.
* Work around 4-STABLE's default pkg_add weirdnesses.
* Add a mechanism to skip running cvsup.
* 4-STABLE caveat tweaks.
This commit is contained in:
Adam Weinberger 2004-08-23 22:09:53 +00:00
parent 3739fbfe85
commit 8ed0811868
Notes: svn2git 2020-12-08 03:00:23 +00:00
svn path=/www/; revision=22086

View file

@ -2,19 +2,23 @@
# builditinator.sh
# written by Adam Weinberger <adamw@FreeBSD.org>
# owned by the FreeBSD GNOME team <freebsd-gnome@FreeBSD.org>
# pwned by the FreeBSD GNOME team <freebsd-gnome@FreeBSD.org>
# under the BSD Public Licence
# Adam hungry. need taco. unga.
# handles the basic processes of testing old and new GNOME versions
SKIP_CVSUP=${SKIP_CVSUP:=0}
#### Be sure to change these variables to match your system:
LOGDIR=/build/output
MCOM_PORTS=/usr/ports/MARCUSCOM/ports
MCOM_PORTSTOOLS=/usr/ports/MARCUSCOM/portstools
MCOM_PORTSEXP=/usr/ports/MARCUSCOM/ports-experimental
FBSD_PORTS=/usr/ports
MCOM_PATCHES=/usr/ports/PATCHES/marcuscom
FBSD_PATCHES=/usr/ports/PATCHES/freebsd
CVSUP_CONF=/etc/cvsup.conf
# Re-order these to install them in differing orders
@ -28,27 +32,27 @@ METAPORTS="${METAPORTS} devel/gnome2-hacker-tools"
#### There are no interesting user-settable variables below this line.
BUILDITINATOR_VERSION=2.8.0
BUILDITINATOR_VERSION=2.7.2
OLDVER=2.6
NEWVER=2.8
NEWVER=2.7
echo "`basename $0` version ${BUILDITINATOR_VERSION}"
clean() {
echo "==> Cleaning system..."
echo "Clearing out work directories..."
find ${FBSD_PORTS} ${MCOM_PORTS} -type d -name work | xargs rm -R 2>/dev/null
find ${FBSD_PORTS} ${MCOM_PORTS} ${MCOM_PORTSEXP} -type d -name work | xargs rm -R 2>/dev/null
echo "Removing all ports..."
pkg_delete -a
echo "Finding missing plist items in /usr/local..."
find /usr/local -type f -o -type l > ${LOGDIR}/missing-plist-items-localbase 2>/dev/null
echo -n "Number of items found: "
wc -l ${LOGDIR}/missing-plist-items-localbase ; echo
wc -l ${LOGDIR}/missing-plist-items-localbase | cut -f1 -d/ ; echo
echo "Finding missing plist items in /usr/X11R6..."
find /usr/X11R6 -type f -o -type l > ${LOGDIR}/missing-plist-items-x11base 2>/dev/null
echo -n "Number of items found: "
wc -l ${LOGDIR}/missing-plist-items-x11base ; echo
wc -l ${LOGDIR}/missing-plist-items-x11base | cut -f1 -d/ ; echo
echo "Backing up extra files..."
tar cfy ${LOGDIR}/localbase-missing-items.tbz /usr/local 2>/dev/null
tar cfy ${LOGDIR}/x11base-missing-items.tbz /usr/X11R6 2>/dev/null
@ -60,13 +64,27 @@ clean() {
update() {
echo "==> Updating repositories..."
for dir in `find ${MCOM_PORTS} -type d -name files | sed -e "s|${MCOM_PORTS}|${FBSD_PORTS}|g"`
# prevent stale patches by removing files/ directories prn before cvsupping.
for dir in `find ${MCOM_PORTS} -type f -name distinfo | sed -e "s|${MCOM_PORTS}|${FBSD_PORTS}|g; s|/distinfo|/files/|g"`
do
rm -R ${dir} 2>/dev/null
done
[ -f /usr/local/bin/cvsup ] || pkg_add -r cvsup-without-gui
cvsup ${CVSUP_CONF}
for dir in `find ${MCOM_PORTSEXP} -type f -name distinfo | sed -e "s|${MCOM_PORTSEXP}|${FBSD_PORTS}|g; s|/distinfo|/files/|g"`
do
rm -R ${dir} 2>/dev/null
done
if [ ! -f /usr/local/bin/cvsup ]; then
if [ -f ~/cvsup-without-gui.tgz ]; then
pkg_add ~/cvsup-without-gui.tgz
else
pkg_add -r cvsup-without-gui
fi
fi
if [ ${SKIP_CVSUP} = 0 ]; then
cvsup ${CVSUP_CONF}
fi
make -C ${MCOM_PORTSTOOLS} clean all
mkdir -p /usr/local/bin
install -m 755 ${MCOM_PORTSTOOLS}/marcusmerge.sh /usr/local/bin/marcusmerge
install -m 755 ${MCOM_PORTSTOOLS}/gnome_upgrade.sh /usr/local/bin/
}
@ -75,6 +93,7 @@ prime() {
echo "==> Priming system..."
make -C ${FBSD_PORTS}/sysutils/portupgrade install clean
pkgdb -F
# if you prefer any particular tools in your build environment, put them here.
WITHOUT_X11=yes portinstall editors/vim
}
@ -92,7 +111,18 @@ upgrade() {
/usr/local/bin/gnome_upgrade.sh
}
patches() {
if find ${MCOM_PATCHES} -type f 2>/dev/null; then
for patchfile in ${MCOM_PATCHES}/*; do
cd ${MCOM_PORTS} && patch -p0 < patchfile
done
fi
if find ${FBSD_PATCHES} -type f 2>/dev/null; then
for patchfile in ${FBSD_PATCHES}/*; do
cd ${FBSD_PORTS} && patch -p0 < patchfile
done
fi
}
cat <<MENU
@ -102,10 +132,12 @@ BUILD ACTIONS
1) Run full upgrade cycle
2) Install fresh ${OLDVER} system
3) Install fresh ${NEWVER} system
4) Upgrade to ${NEWVER}
5) Freshen ${OLDVER} system
6) Freshen ${NEWVER} system
7) Clean and prime system
4) Install fresh ${NEWVER}-experimental system
5) Upgrade to ${NEWVER}
6) Freshen ${OLDVER} system
7) Freshen ${NEWVER} system
8) Freshen ${NEWVER}-experimental system
9) Clean and prime system
MENU
read -p "Select build action [1]: " action
@ -113,11 +145,13 @@ read -p "Select build action [1]: " action
# do all interactive thingers at the beginning
cd ${MCOM_PORTS} && cvs up
cd ${MCOM_PORTSTOOLS} && cvs up
cd ${MCOM_PORTSEXP} && cvs up
case "${action}" in
"2")
clean
update
patches
prime
install_new
exit
@ -125,42 +159,65 @@ case "${action}" in
"3")
clean
update
prime
marcusmerge
patches
prime
install_new
exit
;;
"4")
clean
update
marcusmerge
upgrade
marcusmerge -x
patches
prime
install_new
exit
;;
"5")
update
pkgdb -F
portupgrade -a
marcusmerge ${expargs}
patches
upgrade
exit
;;
"6")
update
marcusmerge
patches
pkgdb -F
portupgrade -a
exit
;;
"7")
update
marcusmerge
patches
pkgdb -F
portupgrade -a
exit
;;
"8")
update
marcusmerge -x
patches
pkgdb -F
portupgrade -a
exit
;;
"9")
clean
update
patches
prime
exit
;;
*)
clean
update
patches
prime
install_new
marcusmerge
marcusmerge ${expargs}
upgrade
exit
;;