#!/bin/sh yesno () { answ=X; while [ $answ = X ]; do echo -n "$1" read answ if [ X$answ = X ]; then answ="YES"; fi case $answ in y|yes|Y|YES) answ=YES;; n|no|N|NO) answ=NO;; *) echo invalid answer answ=X ;; esac done } if [ -f $WRKDIR/.cdrom ]; then X11FIXES=`cat $WRKDIR/.cdrom` echo -n 'Where is the "xc" directory on the cdrom? [/cdrom] ' read X11R6; if [ X$X11R6 = X ]; then X11R6=/cdrom; fi if [ ! -d $X11R6/xc/config/cf ]; then echo "Can't find X11R6 in $X11R6" exit 1 fi yesno "Is your cdrom distibution already patched? [y] "; if [ $answ = YES ]; then echo -n "What is the patchlevel of the distribution? [3] "; read pl; if [ X$pl = X ]; then pl=3; fi pl=`expr $pl + 1` if [ $pl -lt 10 ]; then pl=0$pl; fi else pl=01 fi echo "==> building the tree (please wait)" if [ -f ${WRKDIR}/.cd_OR ] ; then (cd $WRKDIR; cp $X11R6/xc/config/util/lndir.c .; cc -o lndir lndir.c; mkdir ./xc; ./lndir $X11R6/xc ./xc) fi if [ -f ${WRKDIR}/.cd_X ] ; then (cd $WRKDIR; sh $FILESDIR/maketree $X11R6) fi else X11FIXES=`cat $WRKDIR/.ftp` pl=12 fi echo -n "==> applying XC patches (please wait)" ok=0 for i in 01 02 03 04 05 06 07 08 09 10 11; do if [ $i = $pl ]; then ok=1; fi if [ $ok = 1 ]; then echo -n .; patch -d $WRKSRC --forward --quiet -E -p1 < $X11FIXES/fix-$i if [ $i = 10 ]; then zcat $X11FIXES/fix10fonts.Z | patch -d $WRKSRC --forward --quiet -E -p1 fi if [ $i = 11 ]; then rm -rf $WRKDIR/xc/programs/Xserver/hw/xfree86 tar -C $WRKDIR -xzf $X11FIXES/XFree86-3.1.1.tar.gz fi fi done echo echo "==> applying XFree86 patches (please wait)" zcat $X11FIXES/XFree86-3.1.1.diff.gz | patch -d $WRKSRC --forward --quiet -E -p1 cd $WRKSRC/config/cf/ || exit 1; F=xf86site.def cat <>$F echo "#define XF86${i}Server $answ" >>$F done echo echo -n "default server to install. [none] " read answ if [ X$answ = X ]; then answ=none; fi if [ $answ != none ]; then echo "#define ServerToInstall XF86_$answ" >>$F fi cat >> $F <> $F echo "#define InstallXdmConfig $answ" >> $F yesno "Install xinit config? [YES] " echo "#undef InstallXinitConfig" >> $F echo "#define InstallXinitConfig $answ" >> $F yesno "Do you want to include support for the FontServer? [YES] " echo "#undef BuildFontServer" >>$F echo "#define BuildFontServer $answ" >>$F echo "#undef InstallFSConfig" >>$F echo "#define InstallFSConfig $answ" >>$F cat <<'END' Do you want to Build Fonts (Usually you only want to build and install fonts once, if this is a first time install you will want to build the fonts) END yesno "Build fonts? [YES] " if [ $answ = NO ]; then echo "#define BuildFonts NO" >> $F fi yesno "Build PEX? [YES] " if [ $answ = NO ]; then echo "#define BuildPexExt NO" >> $F fi yesno "Build XIE? [YES] " if [ $answ = NO ]; then echo "#define BuildXIE NO" >> $F fi version=`uname -r` set `echo $version|sed -e 's/\./ /g' -e 's/-/ /g'` mv FreeBSD.cf FreeBSD.cf.old sed -e "s/2.0/$version/" \ -e "s/OSMajorVersion *2/OSMajorVersion $1/" \ -e "s/OSMinorVersion *0/OSMinorVersion $2/" \ -e "s/OSTeenyVersion *0/OSTeenyVersion $3/" \ FreeBSD.cf #you may change ExtraLibraries too: #echo "#undef ExtraLibraries >> FreeBSD.cf #echo "#define ExtraLibraries -lgnumalloc >>FreeBSD.cf exit 0