blob: 98e9a57b4fddf3cf61a0b419e4fcf18146aa9204 (
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
127
128
129
130
131
132
133
|
#!/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
else
no_tpm=false
fi
#
if test x$1 = x--no-images; then
no_images=true
else
no_images=false
fi
#
if test x$1 = x--no-test; then
no_test=true
else
no_test=false
fi
message() \
{
printf "\f\n`date` $0: $*...\n"
}
# don't work with old stuff.
message "p4 sync"
p4 sync || 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
master=`cd $mydir/.. && pwd`
for dir in texmf/tpm texmf-dist/tpm texmf-doc/tpm; do
cd $master/$dir || exit 1
message "$dir: finding changed tpms"
changelist=`p4 diff -se ...`
if test -n "$changelist"; then
echo "$changelist" | p4 -x - edit 2>&1 | grep -v 'opened for edit'
for f in $changelist; do
#echo "checking $f for unimportant change..."
# revert tpms that differ only in the date.
diff="`p4 diff $f \
| egrep -v '^===|^---|^[0-9]+c[0-9]|TPM:Date' 2>/dev/null`"
if test -z "$diff"; then
p4 revert $f 2>&1 | grep -v 'was edit'
else
echo $f diff: $diff
fi
done
fi
# new tpms not in depot
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
done
# lists files used by the Unix installer.
message "update-lists for Unix installer"
update-lists || exit 1
#
# if we have any files, submit to perforce (frightening but necessary).
if p4 change -o | grep '^Files:' >/dev/null; then
message "submitting to p4"
p4 change -o \
| sed "s!<enter description here>!regenerated by $0!" \
| p4 submit -i
else
message "no changes to submit to p4"
fi
# keep writable for next time, trying to have rahtz/staw share /home/tlprod.
chmod a+rw $master/*/tpm/* >&/dev/null
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
|