debian-cd-clone/boot-m68k

181 lines
6.0 KiB
Bash
Executable File

#!/bin/bash
#
# boot-m68k v 1.13 (c) Steve McIntyre <stevem@chiark.greenend.org.uk>,
# Chris Lawrence <lawrencc@debian.org>, Christian Steigies <cts@debian.org>,
# Michael Schmitz <MSchmitz@lbl.gov>
# Released under GPL 31 Mar 1999
# See the file COPYING for license details
# Released as part of the slink_cd package, not much use standalone
#
# Do install stuff for sparc, including making bootable CDs
#
# $1 is Debian-mirror location
# $2 is start directory location (where the scripts live)
# $3 is tmpdir location
# $4 is the binary arch
# $5 is debug level
# $6 is $BOOTDIR
#
# Enjoy! This is all completely free.
# - Chris Lawrence <lawrencc@debian.org>
#
# Rewritten by Steve McIntyre <stevem@chiark.greenend.org.uk> in sh to
# interface better with the slink_cd package and cope with the mirror
# layout, 28 Feb 1999.
# Hopefully this will do the same job as the python map stuff did, it
# appears to...
#
# If you're burning a CD, use the mkhybrid in potato (HFS is broken in the
# slink version of mkhybrid; at least it is for me). Please don't use Joliet
# extensions; some Mac kernels have apparently been known to choke on them
# (and you really shouldn't be supporting a Microsoft Standard anyway :-)
#
# You may also want the following:
# * A copy of the Linux/m68k FAQ
# * A copy of my m68k-specific README and m68k-tools directories
# * The m68k kernel sources from sunsite.auc.dk:/projects/680x0
# (Sunsite-Denmark is rsync-capable at sunsite.auc.dk::ftp)
# I recommend getting the 2.0.36 and 2.2.1-pre2 sources at least.
# (Actually 2.0.36 is non-essential since it's on the CDs already;
# you probably DO want the 2.2.1-pre2 tree however [under v2.1!]).
#
# MVME/BVME users will love you if you also include the "tools" directory
# from the FTP site, since they may want/need rawwrite for MS-DOS.
#
# The first two items are in a tar file at master.debian.org:~lawrencc, along
# with a silly rsync script that will accomplish the last item.
MIRROR=$1
BASEDIR=$2
TDIR=$3
ARCH=$4
VERBOSE=$5
BOOTDIR=$6
. $BASEDIR/vecho # Include local definitions for vecho, vvecho, vvvecho
DISKSROOT="$MIRROR/dists/slink/main/disks-m68k/current"
CDROOT="$TDIR/slink1"
INSTALLDIR="$CDROOT/install"
cd $INSTALLDIR
vecho Installing Amiga files
lha xqf $DISKSROOT/amiga/amigainstall.lha
mv debian amiga
mv debian.info amiga.info
cp $DISKSROOT/amiga/* amiga
# Needs to be executable
chmod a+x amiga/amiboot-5.6
# Add .info files for amiga
tar -C .. -xzf $BASEDIR/cts_amiga_info.tar.gz
for file in `tar tzf $BASEDIR/cts_amiga_info.tar.gz`
do
chmod a+r ../$file
done
# And fix a few things up...
mkdir common
mv basecont.txt.info common
mv ../README.info ../README.m68k.info
cp ../README.1ST.info ../README.multicd.info
vecho Installing Atari files
lha xqf $DISKSROOT/atari/install.lzh
mv debian atari
cp $DISKSROOT/atari/* atari
vecho Installing Mac files
tar -C .. -zxf $DISKSROOT/source/macinstall.tar.gz
cp $DISKSROOT/mac/* mac
for TYPE in common bvme6000 mvme162 mvme167 source
do
vecho Installing $TYPE files
if [ ! -d $TYPE ] ; then
mkdir $TYPE
fi
cp $DISKSROOT/$TYPE/* $TYPE
done
vecho hexbin Mac files
cd $INSTALLDIR/mac
hexbin *.hqx
vecho Installing m68k FAQ and tools
mkdir $CDROOT/tmp
cd $CDROOT/tmp
tar xzf $BASEDIR/m68k-cd-misc.tar.gz
mv m68k-faq m68k-tools ..
mv update-kernels ../update-kernels.m68k
cd ..
rm -rf tmp
cd $CDROOT
# make mountpoint and temp HFS filesystem image
rm -rf /var/tmp/mnt-macinstall
mkdir /var/tmp/mnt-macinstall
dd if=/dev/zero of=/var/tmp/macinstall-temp.img bs=1024 count=1440
hformat /var/tmp/macinstall-temp.img
# mount it (':' is top dir) using hfsutils
hmount /var/tmp/macinstall-temp.img
# copy booter and preferences files in place (color table missing but
# Penguin-17 has colors fixed anyway
hcopy -b install/mac/Penguin-17.hqx :
hcopy -b install/mac/Penguin_Prefs.hqx :"Penguin Prefs"
hcopy -b "install/mac/Penguin_Prefs_(autoboot).hqx" :"Penguin Prefs (autoboot)"
# unmount HFS image
humount /var/tmp/macinstall-temp.img
# mount this HFS floppy image again as netatalk using the loopback mount command
if [ ! 'mount -t hfs -o loop,fork=netatalk,afpd /var/tmp/macinstall-temp.img /var/tmp/mnt-macinstall' ] ; then
# We managed to mount it loop-back
# copy over both Penguin-15 and .AppleDouble/Penguin-15
# copy over both Penguin Prefs and .AppleDouble/Penguin Prefs
# (.AppleDouble files go into .AppleDouble subdir of target dir)
cp /var/tmp/mnt-macinstall/Penguin* install/mac/
mkdir install/mac/.AppleDouble
cp /var/tmp/mnt-macinstall/.AppleDouble/Penguin* install/mac/.AppleDouble/
# unmount, cleanup
umount /var/tmp/mnt-macinstall
rm /var/tmp/macinstall-temp.img
rmdir /var/tmp/mnt-macinstall
else
# We failed to mount it. Use the fallback tar.gz that we have
vecho HFS loopback mount failed on /var/tmp/macinstall-temp.img
vecho This is not fatal, but check that you have permissions to do this
vecho and that you have HFS support in your kernel...
vecho Extracting $BASEDIR/macinstall-cd.tar.gz instead.
tar xzf $BASEDIR/macinstall-cd.tar.gz
fi
#
# can remove the .hqx stuff now I guess.
#
# make CD image using the command
# mkhybrid -map <mapfile> --netatalk -a -j -hfs -r -V <label> -o <image> <source dir>
#
# map file contains stuff like
# # ext. xlate creator type comment
# .hqx Ascii 'BnHx' 'TEXT' "BinHex file"
# .mov Raw 'TVOD' 'MooV' "QuickTime Movie"
# .deb Raw 'Debn' 'bina' "Debian package"
# .bin Raw 'Debn' 'bina' "Floppy or ramdisk image"
# * Ascii 'ttxt' 'TEXT' "Text file"
#
# Note that we can't use MacBinary mapping for .bin files due to
# name clashes with the binary image files, so we have to provide
# all encoded Mac files in BinHex format.
#
# Kudos Brad Midgley, <brad@pht.com> for the tricks!
#
# Possible alternative: convert .hqx in MacBinary files, but we'd need
# to use a different extension as .bin is taken by the disk images.
# i.e. hexbin -s Penguin-17.hqx > Penguin-17.mac
# and use .mac as MacBinary extension. I don't know offhand what the
# creator/type for MacBinary is. --netatalk would be replaced by
# --macbin, possibly together with --probe.