summaryrefslogtreecommitdiff
path: root/Master/install-live.sh
diff options
context:
space:
mode:
Diffstat (limited to 'Master/install-live.sh')
-rwxr-xr-xMaster/install-live.sh336
1 files changed, 336 insertions, 0 deletions
diff --git a/Master/install-live.sh b/Master/install-live.sh
new file mode 100755
index 00000000000..e33a4561014
--- /dev/null
+++ b/Master/install-live.sh
@@ -0,0 +1,336 @@
+#!/bin/sh
+# $Id: //depot/Master/install-live.sh#58 $ $Date: 2005/09/20 $ $Author: karl $
+#
+# install-live.sh -- install live packages. This is install-tl.sh
+# in the `demo' and `live' distributions.
+#
+# Copyright (c) Thomas Esser, Sebastian Rahtz, 1996, 1997, 1998, 1999,
+# 2000, 2001, 2003, 2004, 2005.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+# 02110-1301, USA.
+#
+# Send bug reports or suggestions to tex-live@tug.org.
+#
+# Call this script with a full-featured bourne shell, which may be
+# /bin/sh, /bin/bsh (e.g. AIX-4.XX), /bin/sh5 (e.g. ULTRIX) or
+# /bin/bash (on GNU systems) on your system.
+
+
+# set this for debugging...
+debug=${OVERRIDE_DEBUG-false}
+
+unset CDPATH # avoid unwanted output
+
+while test $# -gt 0; do
+ case $1 in
+ --debug) debug=true;;
+ --cddir=*)
+ cddir=`echo $1 | sed 's/.*=//'`;;
+ *) break;;
+ esac
+ shift
+done
+
+HERE=`cd \`dirname $0\` && /bin/pwd`
+. $HERE/utils.sh
+. $HERE/common.sh
+
+series_init()
+{
+ thisdir=`pwd`
+ CDDIR=${cddir-${OVERRIDE_CDDIR-$thisdir}}
+ LISTS=${OVERRIDE_LISTS-$CDDIR/texmf/lists}
+ BIN=${OVERRIDE_LISTS-$CDDIR/bin}
+ test -d $LISTS || fatal "$0: $LISTS: no such directory. Are you sure this is the TeX Live CD?"
+
+ echo "Initializing collections... "
+ setvars
+ systems=`(cd $LISTS; ls bin-tex.* | sed -e 's/bin-tex.//')`
+
+ all_schemes=`(cd $LISTS; ls *.scheme | sed -e 's/-/_/g' -e 's/\.scheme//' | sort )`
+ sc=24
+ for s in $all_schemes; do
+ S=`echo $s | sed -e 's/_/-/g' `
+ sc=`expr $sc + 1`
+ eval N=\"\$iden_${sc}\"
+ eval SCHEMES_${N}=\"$s\"
+ T=`grep '^\*Title' $LISTS/$S.scheme | sed -e 's/\*Title: //'`
+ C=`grep '^\*Size' $LISTS/$S.scheme | sed -e 's/\*Size: //'`
+ C=`expr $C / 1000`
+ eval schemes_${s}_n=\"$T\"
+ eval schemes_${s}_ident=\"$N\"
+ eval schemes_${s}_du=\"$C\"
+ done
+
+ all_lang_collections=`(cd $LISTS; ls collection-lang* | sed 's/-/_/g' | sort )`
+ sc=0
+ for s in $all_lang_collections; do
+ S=`echo $s | sed 's/_/-/g'`
+ sc=`expr $sc + 1`
+ eval N=\"\$iden_${sc}\"
+ eval LP_${N}=\"$s\"
+ T=`grep '^\*Title' $LISTS/$S | sed -e 's/\*Title: //'`
+ C=`grep '^\*Size' $LISTS/$S | sed -e 's/\*Size: //'`
+ C=`expr $C / 1000`
+ eval p_${s}_n=\"$T\"
+ eval p_${s}_ident=\"$N\"
+ eval p_${s}_du=\"$C\"
+ series_select_level $s 0
+ done
+
+ all_collections=`(cd $LISTS; ls collection* | grep -v collection-lang | sed 's/-/_/g' | sort )`
+ sc=0
+ for s in $all_collections; do
+ S=`echo $s | sed 's/_/-/g'`
+ sc=`expr $sc + 1`
+ eval N=\"\$iden_${sc}\"
+ eval P_${N}=\"$s\"
+ T=`grep '^\*Title' $LISTS/$S | sed -e 's/\*Title: //'`
+ C=`grep '^\*Size' $LISTS/$S | sed -e 's/\*Size: //'`
+ C=`expr $C / 1000`
+ eval p_${s}_n=\"$T\"
+ eval p_${s}_ident=\"$N\"
+ eval p_${s}_du=\"$C\"
+ series_select_level $s 0
+ done
+ scheme_select scheme_full
+ selected_scheme=scheme_full
+ echo "Done initializing collections."
+ all_collections_anz=`echo $all_lang_collections $all_collections | awk '{print NF}'`
+ systems_init
+}
+
+
+# This is run when the user does "R" to run live.
+# (Not available for the compressed image.)
+#
+install_cd()
+{
+ TEXDIR=$CDDIR
+ unset TEXMFCNF
+ unset TEXMFMAIN
+ TEXMFCNF_DIR=$TEXDIR/texmf/web2c
+ echo "Preparing destination directories... " >&2
+ test -d "$CDDIR" || fatal "$CDDIR does not seem to be the TeX Live CD-ROM."
+ alldirs="$TEXMFSYSVAR"
+ test -z "$TEXMFSYSVAR" || alldirs="$alldirs $TEXMFSYSVAR/fonts/pk $TEXMFSYSVAR/fonts/tfm $TEXMFSYSVAR/web2c $TEXMFSYSVAR/pdftex/config $TEXMFSYSVAR/tex/generic/config $TEXMFSYSVAR/web2c $TEXMFSYSVAR/xdvi $TEXMFSYSVAR/dvips/config $TEXMFSYSVAR/etex/plain/config"
+ for dir in $alldirs; do
+ while test ! -d $dir || test ! -w $dir; do
+ mkdirhier $dir
+ test -d $dir || { warn "could not make directory '$dir'"; continue; }
+ test -w $dir || { warn "cannot write to directory '$dir'"; continue; }
+ done
+ done
+ test -z "$TEXMFSYSVAR" || chmod -R a+w $TEXMFSYSVAR ||
+ warn "command 'chmod -R a+w $TEXMFSYSVAR' failed"
+ test -z "$opt_varfonts_dir" ||
+ chmod 1777 $opt_varfonts_dir/pk $opt_varfonts_dir/tfm ||
+ warn "command 'chmod 1777 $opt_varfonts_dir/pk $opt_varfonts_dir/tfm' failed"
+ pd=$this_platform_fn
+ have_system=false
+ if test -x $TEXDIR/bin/$pd/mktexlsr; then
+ have_system=true
+ bindir=$TEXDIR/bin/$pd
+ PATH=$TEXDIR/bin/$pd:$PATH
+ export PATH TEXMFSYSVAR
+ echo Current system detected as $pd.
+ fi
+ make_var_skeleton
+ cp $TEXDIR/texmf/tex/generic/config/language.dat $TEXMFSYSVAR/tex/generic/config/language.dat
+ test -f $TEXDIR/texmf-dist/tex/plain/config/language.def && cp $TEXDIR/texmf-dist/tex/plain/config/language.def $TEXMFSYSVAR/tex/plain/config
+ test -f $TEXDIR/texmf/xdvi/XDvi && cp $TEXDIR/texmf/xdvi/XDvi $TEXMFSYSVAR/xdvi
+ cp $CDDIR/texmf/dvips/config/config.ps $TEXMFSYSVAR/dvips/config/config.ps
+ cp $CDDIR/texmf/dvipdfm/config/config $TEXMFSYSVAR/dvipdfm/config
+ cp $TEXDIR/texmf/web2c/mktex.cnf $TEXMFSYSVAR/web2c
+ cp $TEXDIR/texmf/web2c/updmap.cfg $TEXMFSYSVAR/web2c
+ cp $CDDIR/texmf-dist/tex/context/config/cont-usr.tex $TEXMFSYSVAR/tex/context/config/cont-usr.tex
+ cp $CDDIR/texmf/tex/generic/config/pdftexconfig.tex $TEXMFSYSVAR/tex/generic/config/pdftexconfig.tex
+test -z "$TEXMFSYSVAR" || chmod -R a+w $TEXMFSYSVAR ||
+ warn "command 'chmod -R a+w $TEXMFSYSVAR' failed"
+ TEXMFCNF__fix_fmtutil
+ make_local_skeleton
+ $bindir/updmap --nohash --cnffile $TEXMFSYSVAR/web2c/updmap.cfg --dvipsoutputdir=$TEXMFSYSVAR/fonts/map/dvips/updmap --dvipdfmoutputdir=$TEXMFSYSVAR/fonts/map/dvipdfm/updmap --pdftexoutputdir=$TEXMFSYSVAR/fonts/map/pdftex/updmap
+ $have_system && $bindir/mktexlsr
+cat <<ENDC
+ Now you are finished.
+ For future configuration, edit files in $TEXMFSYSVAR
+
+ You should now add these setup statements to your environment,
+ depending on what shell is running,
+
+ For csh (~/.cshrc):
+
+ setenv TEXMFSYSVAR $TEXMFSYSVAR
+ setenv PATH $TEXDIR/bin/$pd:\$PATH
+
+ For bash (~/.bash_profile) or sh (~/.profile):
+
+ TEXMFSYSVAR=$TEXMFSYSVAR
+ PATH=$TEXDIR/bin/$pd:\$PATH
+ export PATH TEXMFSYSVAR
+ENDC
+ greetings
+ exit
+}
+
+list_system_files()
+{
+ arg=$1
+ :>$work_dir/$arg.list
+ for i in $all_collections
+ do
+ I=`echo $i | sed 's/_/-/g'`
+ grep "^[A-Za-z0-9]" $LISTS/$I.$arg >> $work_dir/$arg.list
+ done
+ for i in $all_lang_collections
+ do
+ I=`echo $i | sed 's/_/-/g'`
+ grep "^[A-Za-z0-9]" $LISTS/$I.$arg >> $work_dir/$arg.list
+ done
+}
+
+
+list_files()
+{
+ :>$work_dir/tmp.jobs
+ :>$work_dir/tmp
+ col=`echo $1 | sed 's/_/-/g'`
+ $debug && echo " [ -> collection $col]" >&2
+ packages=
+ morecols=
+ filters="| grep -v '^ *$' "
+ if test "$opt_source" = X; then
+ filters="$filters | grep -v texmf-dist/source/"
+ fi
+ if test "$opt_doc" = X; then
+ filters="$filters | grep -v texmf-dist/doc/"
+ fi
+ if test -f $LISTS/$col; then
+ packages=`grep "^+" $LISTS/$col | sed 's/.//'`
+ morecols=`grep "^-" $LISTS/$col | sed 's/.//'`
+ grep "^[a-z]" $LISTS/$col >> $work_dir/tmp
+ grep '^\!' $LISTS/$col >> $work_dir/tmp.jobs
+ for i in $all_systems
+ do
+ eval \$p_${i}_s || continue
+ eval this=\$p_${i}_fn
+ if test -f $LISTS/$col.$this; then
+ $debug && echo " debug:system package $col.$this" >&2
+ grep "^[\!a-z]" $LISTS/$col.$this >> $work_dir/tmp
+ fi
+ done
+ for i in $packages
+ do
+ list_package $i $col
+ done
+
+ eval sort -u < $work_dir/tmp $filters >> $work_dir/$col.list
+ eval sort -u < $work_dir/tmp.jobs | tr ' ' '=' >> $work_dir/$col.jobs
+ fi
+ rm $work_dir/tmp $work_dir/tmp.jobs
+ for p in $morecols
+ do
+ list_files $p
+ done
+
+}
+
+list_package()
+{
+ :>$work_dir/ptmp.jobs
+ :>$work_dir/ptmp
+ pack=`echo $1 | sed 's/_/-/g'`
+ # if no lists file, return. Many packages exist only on win32, e.g.,
+ # lib-geturl, and so we won't have lists for them when not installing
+ # that arch.
+ test -s $LISTS/$pack || return
+ col=$2
+ filters="| grep -v '^ *$' "
+ if test "$opt_source" = X; then
+ filters="$filters | grep -v texmf-dist/source/"
+ fi
+ if test "$opt_doc" = X; then
+ filters="$filters | grep -v texmf-dist/doc/"
+ fi
+ $debug && echo " debug:package $pack" >&2
+ grep "^[A-Za-z0-9]" $LISTS/$pack >> $work_dir/ptmp
+ grep '^\!' $LISTS/$pack >> $work_dir/ptmp.jobs
+ for j in $all_systems
+ do
+ eval \$p_${j}_s || continue
+ eval this=\$p_${j}_fn
+ if test -f $LISTS/$pack.$this; then
+ $debug && echo " debug:list_package:system package $pack.$this" >&2
+ grep "^[A-Za-z0-9]" $LISTS/$pack.$this >> $work_dir/ptmp
+ fi
+ done
+
+ eval sort -u < $work_dir/ptmp $filters >> $work_dir/$col.list
+ eval sort -u < $work_dir/ptmp.jobs | tr ' ' '=' >> $work_dir/$col.jobs
+ rm $work_dir/ptmp $work_dir/ptmp.jobs
+ for i in `grep "^+" $LISTS/$pack | sed 's/.//'`
+ do
+ list_package $i $col
+ done
+}
+
+# This is run when the user does "I" for a normal disk install.
+#
+install_now()
+{
+ list_file_func=list_files
+ list_package_func=list_package
+ common_start_install
+
+ echo >&2
+ echo "Now copying selected files" >&2
+ $debug && echo " from the lists in $work_dir... " >&2
+ for f in `ls $work_dir/*.*list`
+ do
+ $debug && echo "Copy files listed in $f" >&2
+ $debug || $echon "`basename $f .list` " >&2
+ sort -u $f > $f.uniq
+ if test "x$TAROPT" = "x"; then
+ $debug && tarverbose=v
+ (cd $CDDIR; $XARGS sh -c 'tar cf - $* \
+ | (cd '"$TEXDIR"'; umask 0; $TARPROG x${tarverbose}f -)' sh < $f.uniq )
+ else
+ $debug && tarverbose=-v
+ (cd $CDDIR; $TARPROG -c -f - $TAROPT $f.uniq ) \
+ | (cd $TEXDIR; umask 0; $TARPROG -x $tarverbose -f -)
+ fi
+ done
+ echo
+ echo "Done copying." >&2
+ test -f $TEXDIR/texmf-dist/tex/plain/config/language.def && cp $TEXDIR/texmf-dist/tex/plain/config/language.def $TEXMFSYSVAR/tex/plain/config
+ test -f $TEXDIR/texmf/xdvi/XDvi && cp $TEXDIR/texmf/xdvi/XDvi $TEXMFSYSVAR/xdvi
+ cp $TEXDIR/texmf/dvips/config/config.ps $TEXMFSYSVAR/dvips/config/config.ps
+ cp $TEXDIR/texmf/dvipdfm/config/config $TEXMFSYSVAR/dvipdfm/config
+ cp $TEXDIR/texmf/web2c/mktex.cnf $TEXMFSYSVAR/web2c
+ cp $CDDIR/texmf-dist/tex/context/config/cont-usr.tex $TEXMFSYSVAR/tex/context/config/cont-usr.tex
+ cp $CDDIR/texmf/tex/generic/config/pdftexconfig.tex $TEXMFSYSVAR/tex/generic/config/pdftexconfig.tex
+
+ common_end_install
+}
+
+################################################################
+# main()
+################################################################
+unset TEXCONFIG
+cd `dirname $0`
+init
+menu_main
+