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
|
Changes applied to the icu tree as obtained from:
github.com/unicode-org/icu/releases/download/release-74-2/icu4c-74_2-src.tgz
cd $Build/source/libs/icu # for whatever $Build directory
# update version.ac
tar xf /tmp/icu4c-*-src.tgz # check that unpacks into icu/*
mv icu-src icu-prev
mv icu icu-src
cd icu-src
rm -r as_is packaging # don't bother including these in our tree
#
# files to add:
svn status | sed -n 's/^\?//p'
svn add `!!` # if looks reasonable
svn status | sed -n 's/^\?//p' # rerun, should be empty now
#
# files to remove:
svn status | sed -n 's/^\!//p'
svn rm `!!` # if looks reasonable
svn status | sed -n 's/^\!//p' # rerun, should be empty now
# update generic files (still in icu-src):
aux=$Build/source/build-aux
cp -p $aux/config.guess $aux/config.sub $aux/install-sh source
# patch --backup -p0 for all ../TLpatches/patch-* files.
# Save original (since not committed yet)
# and diff -u2 after each to update patch-* file.
# Don't lose our leading comments.
# autoreconf in the TL directory (Build/source/libs/icu);
# don't run autoreconf in the icu-src/source/ directory, it fails due to
# missing pkg-config prerequisites. (Thus we patch configure, not just
# configure.ac; not worth more effort for our small change of preferring gcc.)
#
# rebuild; must rerun configure (not just config.status),
# so easiest is to just do a whole new build.
# Besides, that also tests use of the new icu version by our programs.
# Assuming all seems ok, reduce size of source/data/in/icudt*.dat
# to decrease data segment size, e.g., for old BSD. First, check
# that we successfully built the full .dat:
ver=74
srcdat=$Build/source/libs/icu/icu-src/source/data/in/icudt${ver}l.dat
cd $Work/libs/icu/icu-build/data/out/build/icudt${ver}l
indat=../../tmp/icudt${ver}l.dat
diff $srcdat $indat
# should be identical, amazingly enough.
# we need to use icupkg, which may need LD_LIBRARY_PATH since it is a
# C++ binary and we didn't cxx-hack it.
icupkg="env LD_LIBRARY_PATH=$gnu/lib ../../../../bin/icupkg"
# then remove some elements unused by the icu clients in our tree, which are
# bibtexu (in texk/bibtex-x), upmendex, and xetex (in texk/web2c/xetexdir).
outdat=icudt${ver}l.dat
$icupkg -r 'curr/*' $indat $outdat && \mv -v $outdat $indat
$icupkg -r 'lang/*' $indat $outdat && \mv -v $outdat $indat
$icupkg -r 'region/*' $indat $outdat && \mv -v $outdat $indat
$icupkg -r 'rfc*.spp' $indat $outdat && \mv -v $outdat $indat
$icupkg -r 'zone/*' $indat $outdat && \mv -v $outdat $indat
ls -l $indat $srcdat # indat should be about 2/3 the size
cp $indat $srcdat
# check that nothing besides backup files is left, back in the srcdir:
cd $Build/source/libs/icu # for whatever $Build directory
svn status | grep -v '^[MAD]' | sort -k 2b
# In 74.2, LICENSE became a (broken) symlink; revert to file.
# if all is ok.
# update icu/ChangeLog and icu/TLpatches/ChangeLog.
# then commit.
|