summaryrefslogtreecommitdiff
path: root/Master/Tools/tlrebuild
blob: cf1167030b796fbb725d6763185d5831a3dbba96 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
#!/bin/sh
# $Id: //depot/Master/Tools/tlrebuild#19 $ $Date: 2005/10/19 $ $Author: karl $
# Originally written 2004, Karl Berry.  Public domain.
# 
# Rebuild the TeX Live distribution -- no actual recompilation of
# sources (run bash Build.sh for that), but all the infrastructure files.

mydir=`dirname $0`
tools=`cd $mydir && pwd`
PATH=$tools:$PATH; export PATH
umask 0

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/.. && 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

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

#  # new tpms not in depot  xx must svn add/remove somehow
#  message "$dir: finding new tpms"
#  find . -type f | p4 -x - add 2>&1 \
#  | egrep -v 'already opened|add.*existing file'
#
#  message "$dir: finding obsolete tpms"
#  p4 diff -sd ... | p4 -x - delete  # old tpms no longer needed

  svn commit -m'tlrebuild [tpm] autoupdate' 

  # keep writable for next time, trying to have rahtz/staw share /home/tlprod.
  chmod a+rw * >&/dev/null
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 <<EOF
D
1
$instdir
R
I
EOF
chmod -R a+rwX $instdir