#!/bin/sh -e # $Id$ # # Create the .iso file system images for TeX Live: # a) live: the complete uncompressed system (for DVD) # # Copyright 2003, 2004, 2005 Sebastian Rahtz. # Copyright 2007, 2008 Karl Berry. # # This file is licensed under the GNU General Public License version 2 # or any later version. # # In 2003, we also produced: # c) demo: live subset which can be run as is (CD) # but this was dropped in 2004. # # From 2004-2007, we also produced: # b) inst: compressed zip files and installer only (CD) # but this was dropped in 2008. # # Send bug reports or suggestions to tex-live@tug.org. unset CDPATH # avoid output from cd umask 0 renice +19 -p $$ >/dev/null 2>&1 HERE=`cd \`dirname $0\` && /bin/pwd` cd $HERE || exit 1 # the Master/tlpkg/bin directory master=`cd ../.. && /bin/pwd` test -z "$master" && exit 1 NAME=texlivetest V=2008 D=`date +%Y%m%d` debug=${OVERRIDE_DEBUG-false} target=/home/ftp/texlive/Images/test work=/home/texlive/tmp/TL_$$ quiet= # for passing to mkisofs makelive=true mkisofs=mkisofs while test $# -gt 0; do case $1 in --debug) debug=true; quiet=;; --help) echo "No help, use the source, sorry."; exit 0;; --master=*) master=`echo $1 | sed 's/.*=//'`;; --mkisofs=*) mkisofs=`echo $1 | sed 's/.*=//'`;; --nolive) makelive=false;; --quiet) quiet=-quiet;; --target=*) target=`echo $1 | sed 's/.*=//'`;; --work=*) work=`echo $1 | sed 's/.*=//'`;; *) break;; esac shift done if $debug; then echo "master = $master" echo "target = $target" echo "work = $work" fi mkdir -p $target # From the days when we made multiple images. Keep it factored out in # case they come back. common_mkisofs_options=" $quiet -pad -J -dir-mode 0755 -r \ -copyright LICENSE.TL \ -x ./support/tests \ -x .svn \ " # MAKELIVE () { prefix=$target/$NAME$V live_iso=$prefix-$D.iso echo "-- `date` Writing live image to $live_iso." # remove old images and checksums. rm -f $prefix-*.iso* $prefix-*.md5 $prefix-*.sha256 # The Master directory is the image. (cd $master && mkisofs $common_mkisofs_options -o $live_iso .) # also make compressed version, helps people downloading test images. # this takes two hours or so, so write to a temp file and then rename. lzma -v <$live_iso >$live_iso.lzma.part mv $live_iso.lzma.part $live_iso.lzma # make checksums # and symlinks with short names (potentially used in /etc/fstab). for ext in "" .lzma; do rm -f $prefix.iso$ext $prefix.iso$ext.md5 $prefix.iso$ext.sha256 (cd $target && md5sum `basename $live_iso$ext`) >$live_iso$ext.md5 (cd $target && sha256sum `basename $live_iso$ext`) >$live_iso$ext.sha256 ln -s `basename $live_iso$ext` $prefix.iso$ext ln -s `basename $live_iso`$ext.md5 $prefix.iso$ext.md5 ln -s `basename $live_iso`$ext.sha256 $prefix.iso$ext.sha256 ls -l $live_iso$ext done } # main program. $makelive && MAKELIVE rm -rf $work