summaryrefslogtreecommitdiff
path: root/Build/tools/tlrebuild
blob: 8a0ae6fd6ef29e969002aad2a7d4e05a4f139214 (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
#!/bin/sh
# $Id$
# 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-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"
#xx (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 '

$chicken && exit 0

# 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

  # 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' 

  # 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