c568b5d285
also rolled in Kerberos V4 support so xdm can aquire your tickets for you. Approved by: jmz & asami
275 lines
7.9 KiB
Bash
275 lines
7.9 KiB
Bash
#!/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
|
|
}
|
|
F=$WRKDIR/.config
|
|
configure () {
|
|
rm -f $F
|
|
cat <<END
|
|
Which servers do you wish to build, you can save a lot of disk space
|
|
by only compiling the server you will be using. It will also save you
|
|
considerable compile time.
|
|
END
|
|
servers="SVGA VGA16 VGA16Dual Mono MonoDual S3 I8514 Mach8 Mach32 Mach64 P9000 AGX W32"
|
|
for i in $servers; do
|
|
yesno "Do you want to build the $i server? [YES] "
|
|
echo "#undef XF86${i}Server" >>$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 <<END
|
|
#define XF86SvgaDrivers et4000 et3000 pvga1 gvga ati tvga8900 cirrus \
|
|
ncr77c22 compaq oak mx al2101 ali cl64xx \
|
|
video7 chips generic
|
|
|
|
#define XF86Vga16Drivers et4000 ncr77c22 ati tvga8900 oak cl64xx generic
|
|
|
|
#define XF86Vga2Drivers et4000 et3000 pvga1 gvga ati tvga8900 cirrus \
|
|
ncr77c22 compaq oak cl64xx generic
|
|
|
|
#define XF86MonoDrivers hgc1280 sigma apollo hercules
|
|
|
|
#define XF86W32Drivers et4000w32
|
|
|
|
END
|
|
|
|
cat <<END
|
|
|
|
|
|
Do you want to install the default system config files, this will overwrite
|
|
and files that you may be currently using. This would only be required
|
|
on a first time build.
|
|
END
|
|
yesno "Install xdm config? [YES] "
|
|
echo "#undef InstallXdmConfig" >> $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
|
|
echo
|
|
yesno "Do you want your X applications linked with gnu malloc? [YES] "
|
|
gnumalloc=$answ
|
|
|
|
cat <<'END'
|
|
|
|
MIT supplies an authentication mechanism that relies upon DES, this is
|
|
called XDM-AUTHORIZATION-1.
|
|
|
|
Source code for this authentication mechanism may not be exported from
|
|
the United States, however, there are compatible replacements for this
|
|
mechanism available elsewhere. Also, while this scheme is not used for
|
|
general purpose encryption, some countries restrict the use of strong
|
|
cryptography.
|
|
|
|
If you have aquired a copy of "Wraphelp.c" and it currently resides in
|
|
the same location as the XFree86 upgrade patches or in the ports "files"
|
|
subdirectory, it will be copied into the right place in the X11 source
|
|
distribution and support for this feature will be enabled if you answer
|
|
YES to the following question.
|
|
|
|
If you do not have a copy of this file, even if you answer YES to this
|
|
question, support will not be enabled. If you wish to change this later,
|
|
the option controling this is contined the file xc/config/cf/xf86site.def.
|
|
|
|
END
|
|
yesno "Do you want to enable XDM-AUTHORIZATION-1 support? [YES] "
|
|
if [ $answ = YES ]; then
|
|
WH=$WRKDIR/xc/lib/Xdmcp/Wraphelp.c
|
|
|
|
if [ -f $WH ] ; then
|
|
echo "==> $WH found in source distribution."
|
|
elif [ -f $X11FIXES/Wraphelp.c ] ; then
|
|
echo "==> Wraphelp.c found in fix directory, copying to source tree."
|
|
cp $X11FIXES/Wraphelp.c $WH
|
|
elif [ -f $FILESDIR/Wraphelp.c ] ; then
|
|
echo "==> Wraphelp.c found in files directory, copying to source tree."
|
|
cp $FILESDIR/Wraphelp.c $WH
|
|
else
|
|
echo "==> Wraphelp.c not found, DES support NOT enabled."
|
|
answ=NO
|
|
fi
|
|
fi
|
|
echo "#undef HadXdmAuth" >> $F
|
|
echo "#define HasXdmAuth $answ" >> $F
|
|
|
|
cat <<'END'
|
|
|
|
Additional support for Kerberos V4 is available should you chose to
|
|
install it. If you choose to install the Kerberos V4 patches, you
|
|
will also be asked if you want to enable Kerberos V4 support.
|
|
|
|
END
|
|
|
|
yesno "Do you want to add the Kerberos V4 support patches? [YES] "
|
|
k4patch=$answ
|
|
if [ $k4patch = YES ] ; then
|
|
echo
|
|
yesno "Do you want to enable Kerberos V4 support? [YES] "
|
|
echo "#undef HasKrb4" >>$F
|
|
echo "#define HasKrb4 $answ" >>$F
|
|
fi
|
|
|
|
echo
|
|
echo "End of configuration questions. No more user input required"
|
|
echo
|
|
}
|
|
|
|
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
|
|
ok=0
|
|
err=0
|
|
for i in 01 02 03 04 05 06 07 08 09 10 11 12; do
|
|
if [ $i = $pl ]; then ok=1; fi
|
|
if [ $ok = 1 ]; then
|
|
if [ ! -f $X11FIXES/fix-$i ]; then
|
|
echo "can't find $X11FIXES/fix-$i !!!"
|
|
err=1
|
|
fi
|
|
if [ $i = 10 ]; then
|
|
if [ ! -f $X11FIXES/fix10fonts.Z ]; then
|
|
echo "can't find $X11FIXES/fix10fonts.Z !!!"
|
|
err=1
|
|
fi
|
|
fi
|
|
if [ $i = 11 ]; then
|
|
if [ ! -f $X11FIXES/XFree86-3.1.1.tar.gz ]; then
|
|
echo "can't find $X11FIXES/XFree86-3.1.1.tar.gz !!!"
|
|
err=1
|
|
fi
|
|
fi
|
|
fi
|
|
done
|
|
if [ ! -f $X11FIXES/XFree86-3.1.2.diff.gz ]; then
|
|
echo "can't find $X11FIXES/XFree86-3.1.2.diff.gz !!!"
|
|
err=1
|
|
fi
|
|
if [ ! -f $X11FIXES/cfont312.tgz ]; then
|
|
echo "can't find $X11FIXES/cfont312.tgz !!!"
|
|
err=1
|
|
fi
|
|
if [ ! -f $X11FIXES/3.1.2-3.1.2-S.diff.gz ]; then
|
|
echo "can't find $X11FIXES/3.1.2-3.1.2-S.diff.gz !!!"
|
|
err=1
|
|
fi
|
|
if [ $err = 1 ]; then exit 1; fi
|
|
configure
|
|
echo "==> building the tree"
|
|
(cd $WRKDIR; sh $FILESDIR/maketree $X11R6)
|
|
else
|
|
X11FIXES=`cat $WRKDIR/.ftp`
|
|
pl=12
|
|
configure
|
|
fi
|
|
|
|
echo -n "==> applying XC patches"
|
|
ok=0
|
|
for i in 01 02 03 04 05 06 07 08 09 10 11 12; 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
|
|
(cd $WRKDIR; gunzip -c $X11FIXES/XFree86-3.1.1.tar.gz | tar xpf -)
|
|
fi
|
|
if [ $i = 12 ]; then
|
|
rm -f $WRKDIR/xc/lib/Xt/Shell.h
|
|
rm -f $WRKDIR/xc/lib/StringDefs.h
|
|
rm -f $WRKDIR/xc/lib/StringDefs.c
|
|
fi
|
|
fi
|
|
done
|
|
echo
|
|
echo "==> applying XFree86 patches"
|
|
zcat $X11FIXES/XFree86-3.1.2.diff.gz | patch -d $WRKSRC --forward --quiet -E -p1
|
|
tar xzf $X11FIXES/cfont312.tgz -C $WRKDIR
|
|
zcat $X11FIXES/3.1.2-3.1.2-S.diff.gz | patch -d $WRKSRC --forward --quiet -E -p1
|
|
|
|
if [ $k4patch = YES ] ; then
|
|
echo
|
|
echo "==> applying Kerberos-V4 support patch"
|
|
zcat $FILESDIR/kerberos4.diffs.gz | \
|
|
patch -d $WRKSRC --forward --quiet -E -p1
|
|
fi
|
|
|
|
cat $F >> $WRKSRC/config/cf/xf86site.def
|
|
|
|
cd $WRKSRC/config/cf/ || exit 1;
|
|
|
|
version=`uname -r`
|
|
set `echo $version|sed -e 's/\./ /g' -e 's/-/ /g'`
|
|
mv FreeBSD.cf FreeBSD.cf.old
|
|
sed -e "s/2.0.5/$version/" \
|
|
-e "s/OSMajorVersion *2/OSMajorVersion $1/" \
|
|
-e "s/OSMinorVersion *0/OSMinorVersion $2/" \
|
|
-e "s/OSTeenyVersion *5/OSTeenyVersion $3/" \
|
|
-e "s/m486/m486 -fno-strength-reduce/" \
|
|
-e "s/UseGnuMalloc.*YES/UseGnuMalloc $gnumalloc/" \
|
|
<FreeBSD.cf.old >FreeBSD.cf
|
|
|
|
exit 0
|