Return to BSD News archive
Received: by minnie.vk1xwt.ampr.org with NNTP id AA1489 ; Tue, 23 Feb 93 14:44:05 EST Path: sserve!manuel.anu.edu.au!munnari.oz.au!sgiblab!zaphod.mps.ohio-state.edu!howland.reston.ans.net!paladin.american.edu!news.univie.ac.at!hp4at!mcsun!sun4nl!tuegate.tue.nl!rw8.urc.tue.nl!rcpt From: rcpt@rw8.urc.tue.nl (Piet Tutelaers) Newsgroups: comp.unix.bsd Subject: [386 BSD] Running patchkit outside /usr/src Message-ID: <rcpt.729818276@rw8.urc.tue.nl> Date: 15 Feb 93 23:17:56 GMT Sender: root@tuegate.tue.nl Reply-To: rcpt@urc.tue.nl Lines: 220 Hello 386-patchkitters, Last weekend I have installed a fresh 386 BSD source tree on our PMO650 (Pinnacle Magneto Optical disk). This disk is connected to our SUN so it was necessary for me to run the patchkit from /pmo/386bsd-0.1 instead of the default root directory. Here is a summary of the steps I needed to do in order to build a complete source tree on our SUN. I hope that the authors/maintainers of the patchkit will make it easier in a next release! Although the patchkit carefully checks if a patch does need other patches it does not check if you have installed all needed distribution sets. So it took me quite a lot of time to discover that I not only needed the source distribution (srcdist) but also the binary distribution (bindist) because that contains the kernel sources. Next patches could not be installed because they rely on sources I still do not seem to have: patch00504 /usr/othersrc patch00600 /usr/obj/games Being super user on 386 is checked with `id -u'. This test does not work on SunOS4.1.2. For the moment I have commented out the `exit' in the script `patches' to avoid an early breakdown. This has even the benefit that I could test the patch kit procedure under my own usercode, quite a happy feeling on the SUN. There should be a neater solution. Next problem is more cumbersome. A lot of patches are provided to the source directory /sys. This is a symbolic link to /usr/src/sys.386bsd. I have changed all supplied patch/ready/patch000???/PATCH files that refer to /sys/ manuallly into /usr/src/sys.386bsd. There were quite a lot of PATCH files I needed to change. I could also have linked /pmo/386bsd-0.1/sys to /pmo/386bsd-0.1/usr/src/sys.386bsd before patching and putting it back afterwards. But I hope next patchkit release will not accept patches on linked directories! And last but not least I needed to change mkpatchdirs and patches in order to handle my different patch directory (/pmo/386bsd-0.1/patch) and rootdirectory (/pmo/386bsd-0.1). I have included a shar-file containing context diffs for both in case other people are interested too. Best wishes, --Piet --------------------- patchkit.shar -------------------------- #! /bin/sh # This is a shell archive. Remove anything before this line, then unpack # it by saving it into a file and typing "sh file". To overwrite existing # files, type "sh file -c". You can also feed this as standard input via # unshar, or by typing "sh <file", e.g.. If this archive is complete, you # will see the following message at the end: # "End of shell archive." # Contents: mkpatchdirs.diff patches.diff # Wrapped by rcpt@rw2.urc.tue.nl on Tue Feb 16 00:12:12 1993 PATH=/bin:/usr/bin:/usr/ucb ; export PATH if test -f 'mkpatchdirs.diff' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'mkpatchdirs.diff'\" else echo shar: Extracting \"'mkpatchdirs.diff'\" \(364 characters\) sed "s/^X//" >'mkpatchdirs.diff' <<'END_OF_FILE' X*** mkpatchdirs.orig Fri Feb 12 17:16:23 1993 X--- mkpatchdirs Fri Feb 12 17:17:46 1993 X*************** X*** 11,17 **** X # 12 Sep 92 Terry Lambert Original X # X # X! PATCHDIR=/patch X X # X # Find out where we were installed X--- 11,17 ---- X # 12 Sep 92 Terry Lambert Original X # X # X! PATCHDIR=/pmo/386bsd-0.1/patch X X # X # Find out where we were installed END_OF_FILE if test 364 -ne `wc -c <'mkpatchdirs.diff'`; then echo shar: \"'mkpatchdirs.diff'\" unpacked with wrong size! fi # end of 'mkpatchdirs.diff' fi if test -f 'patches.diff' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'patches.diff'\" else echo shar: Extracting \"'patches.diff'\" \(3075 characters\) sed "s/^X//" >'patches.diff' <<'END_OF_FILE' X*** patches.orig Fri Feb 12 17:16:11 1993 X--- patches Tue Feb 16 00:09:06 1993 X*************** X*** 58,64 **** X DONTWAIT=0 X YESNO=0 X X! PATCHDIR=/patch X TMPDIR=$PATCHDIR/tmp X AVAILDIR=$PATCHDIR/ready X INSTDIR=$PATCHDIR/installed X--- 58,65 ---- X DONTWAIT=0 X YESNO=0 X X! ROOTDIR=/pmo/386bsd-0.1 X! PATCHDIR=/pmo/386bsd-0.1/patch X TMPDIR=$PATCHDIR/tmp X AVAILDIR=$PATCHDIR/ready X INSTDIR=$PATCHDIR/installed X*************** X*** 74,80 **** X then X echo "You are not root." X echo "This program will not run correctly if you are not root." X! exit 7 X fi X X X--- 75,81 ---- X then X echo "You are not root." X echo "This program will not run correctly if you are not root." X! # exit 7 X fi X X X*************** X*** 262,267 **** X--- 263,269 ---- X ex_level=`echo $x | cut -f2 -d" "` X ex_patch=`echo $x | cut -f3 -d" "` X ex_file=`echo $x | cut -f4 -d" "` X+ ex_file=$ROOTDIR$ex_file X if test ! -f $ex_file X then X echo $ex_patch >> reqs X*************** X*** 355,360 **** X--- 357,363 ---- X DIR) dstowner=`echo $x | cut -f2 -d" "`; X dstmode=`echo $x | cut -f3 -d" "`; X dst=`echo $x | cut -f4 -d" "`; X+ dst=$ROOTDIR$dst X echo "rmdir $dst > /dev/null 2>&1" >> $UNDODIR; X echo " mkdir $dst" >> $LOG; X if test ! -d $dst ; then X*************** X*** 381,386 **** X--- 384,390 ---- X dstowner=`echo $x | cut -f3 -d" "`; X dstmode=`echo $x | cut -f4 -d" "`; X dst=`echo $x | cut -f5 -d" "`; X+ dst=$ROOTDIR$dst X echo "rm $dst" >> $UNDO; X echo " cp $src $dst" >> $LOG; X cp $src $dst; X*************** X*** 403,408 **** X--- 407,413 ---- X PATCH) lvl=`echo $x | cut -f2 -d" "`; X pch=`echo $x | cut -f3 -d" "`; X fle=`echo $x | cut -f4 -d" "`; X+ fle=$ROOTDIR$fle X echo "mv $fle.pl$lvl $fle" >> $UNDO; X echo " patch -b .pl$lvl -c $fle $AVAILDIR/$patch/$pch" >> $LOG; X patch -b .pl$lvl -c $fle $AVAILDIR/$patch/$pch 2>/dev/null; X*************** X*** 627,632 **** X--- 632,638 ---- X # we didn't, we might not be able to deinstall binaries. X case $field in X NEW) dst=`echo $x | cut -f5 -d" "`; X+ dst=$ROOTDIR$dst X if test ! -f $dst; then X echo X echo "(FATAL: THE FILE $dst WAS DELETED BY THE USER)" X*************** X*** 654,659 **** X--- 660,666 ---- X fi;; X PATCH) lvl=`echo $x | cut -f2 -d" "`; X fle=`echo $x | cut -f4 -d" "`; X+ fle=$ROOTDIR$fle X if test ! -f $fle.pl$lvl; then X echo X echo "(FATAL: THE FILE $fle.pl$lvl WAS DELETED BY THE USER)" X*************** X*** 770,777 **** X--- 777,786 ---- X field=`echo $x | cut -f1 -d" "` X case $field in X DIR) dst=`echo $x | cut -f4 -d" "`; X+ dst=$ROOTDIR$dst X echo "rmdir $dst > /dev/null 2>&1" >> $UNDODIR;; X NEW) dst=`echo $x | cut -f5 -d" "`; X+ dst=$ROOTDIR$dst X rm -f $dst; X if test "$?" != "0"; then X touch $FAIL X*************** X*** 781,786 **** X--- 790,796 ---- X fi;; X PATCH) lvl=`echo $x | cut -f2 -d" "`; X fle=`echo $x | cut -f4 -d" "`; X+ fle=$ROOTDIR$fle X mv -f $fle.pl$lvl $fle; X st=$?; X if test "$st" != "0"; then END_OF_FILE echo shar: 2 control characters may be missing from \"'patches.diff'\" if test 3075 -ne `wc -c <'patches.diff'`; then echo shar: \"'patches.diff'\" unpacked with wrong size! fi # end of 'patches.diff' fi echo shar: End of shell archive. exit 0