#!/bin/sh # $Id$ # Originally written 2004, Karl Berry. Public domain. # # Rebuild the TeX Live distribution -- no actual recompilation of # sources (see Build/source/Build for that), but all the infrastructure # files, up to and including making ISO images. mydir=`dirname $0` tools=`cd $mydir && pwd` PATH=$tools:$PATH; export PATH umask 0 if test x$1 = x-n; then chicken=true shift else chicken=false fi # if test x$1 = x--no-tpm; then no_tpm=true shift else no_tpm=false fi # if test x$1 = x--no-images; then no_images=true shift else no_images=false fi # if test x$1 = x--no-test; then no_test=true shift else no_test=false fi message() \ { printf "\f\n`date` $0: $*...\n" } # don't work with old stuff. master=`cd $tools/../../Master && pwd` top=`cd $master/.. && pwd` message "svn update" (cd $top && svn update) || exit 1 if $no_tpm; then :; else # have to run multiple times to make the sizes converge, since the .tpm # file is itself one of the files in the package. # Fabrice says four times is the magic number. message "update-tpm regeneration #1" (update-tpm message "#2" update-tpm message "#3" update-tpm message "#4" update-tpm || exit 1) | grep -v '^Writing ' # sanity check of tpms, hopefully nothing to report after the update. message "tpm-check" tpm-check || exit 1 # just checking? $chicken && exit 0 for dir in texmf/tpm texmf-dist/tpm texmf-doc/tpm; do cd $master/$dir || exit 1 message "$dir: finding changed tpms" for f in "$@"; do diff="`svn --diff-cmd=diff -x -u0 diff $f`" diff_without_date=`echo "$diff" | egrep -v '^[-+=@]{2,3}|TPM:Date|^Index'` if test -z "$diff"; then svn revert $f elif test -z "$diff_without_date"; then # checking to see if this ever happens; the date should be stable? echo "$f diff only in date, reverted: $diff" svn revert $f else echo " $f diff:" echo "$diff" fi done # This will not svn add new tpm's, or svn remove old ones. # Theory is that that should be done when adding/removing packages, # too dangerous to do it here. svn commit -m"tlrebuild [tpm] autoupdate of `pwd`" done # lists files used by the Unix installer. message "update-lists for Unix installer" update-lists || exit 1 message "ls-R updates" update-lsr fi # end --no-tpm # $no_images && exit 0 message "making ISO images" MakeImages.sh --debug --target=/home/ftp/texlive/Images/test $no_test && exit 0 message "doing test installation" instdir=/home/ftp/texlive/Contents/testinstalled rm -rf $instdir cd $master || exit # D/1/$instdir/R -- target directory # I -- do installation time nice sh ./install-live.sh <