summaryrefslogtreecommitdiff
blob: d30cbd3b3eac005dd983f535cba5e8a528a01c15 (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
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
#!@GENTOO_PORTAGE_EPREFIX@/bin/bash
#
# Utility to update Gentoo TeXLive distribution configuration files
#

echo "Configuring TeXLive ..."

PATH="@GENTOO_PORTAGE_EPREFIX@"/bin:"@GENTOO_PORTAGE_EPREFIX@"/usr/bin

# Fix for all those with altered umask for root
umask 022

# Ensure reliable order when concatenating files, bug #579018
LC_COLLATE=C

# Make sure we have a correct environment, bug #30432
# The list of env. vars is taken from the INSTALL file
for texvar in AFMFONTS BIBINPUTS BSTINPUTS DVILJFONTS DVIPSFONTS \
	DVIPSHEADERS GFFONTS GLYPHFONTS INDEXSTYLE MFBASES MFINPUTS \
	MFPOOL MFTINPUTS MPINPUTS MPMEMS MPPOOL MPSUPPORT OCPINPUTS \
	OFMFONTS OPLFONTS OTPINPUTS OVFFONTS OVPFONTS PKFONTS PSHEADERS \
	T1FONTS T1INPUTS TEXBIB TEXCONFIG TEXDOCS TEXFONTMAPS TEXFONTS \
	TEXFORMATS TEXINDEXSTYLE TEXINPUTS TEXMFCNF TEXMFDBS TEXMFINI \
	TEXPICTS TEXPKS TEXPOOL TEXPSHEADERS TEXSOURCES TFMFONTS TRFONTS \
	VFFONTS XDVIFONTS XDVIVFS ; do

	if [ "${!texvar}" ]; then
		if ! $(echo ${!texvar} | grep '^:\|::\|:$' &>/dev/null) ; then
			export ${texvar}="${!texvar}:"
		fi
	fi
done

if [ "$TEXINPUTS" ]; then
	if $(echo ${TEXINPUTS} | grep '@GENTOO_PORTAGE_EPREFIX@/usr/share/texmf' &>/dev/null) ; then
		export TEXINPUTS=$(echo ${TEXINPUTS} | sed -e 's|@GENTOO_PORTAGE_EPREFIX@/usr/share/texmf/*:\?||g')
	elif $(echo ${TEXINPUTS} | grep '@GENTOO_PORTAGE_EPREFIX@/var/lib/texmf' &>/dev/null) ; then
		export TEXINPUTS=$(echo ${TEXINPUTS} | sed -e 's|@GENTOO_PORTAGE_EPREFIX@/var/lib/texmf/*:\?||g')
	fi
fi

MKTEMP_COMMAND="mktemp -t tmp.XXXXXXXXXX"
DIFF_COMMAND="cmp -s"
TEMP_FILE="`${MKTEMP_COMMAND}`"

if [ -z "${TEMP_FILE}" ]; then
    exit
fi

# check whether config files for fmtutil and updmap have changed
STATUS_FMTUTIL="0"
STATUS_UPDMAP="0"

if [ -d "@GENTOO_PORTAGE_EPREFIX@"/etc/texmf/texmf.d ]; then
    echo "Generating @GENTOO_PORTAGE_EPREFIX@/etc/texmf/web2c/texmf.cnf from @GENTOO_PORTAGE_EPREFIX@/etc/texmf/texmf.d ..."
    cat "@GENTOO_PORTAGE_EPREFIX@"/etc/texmf/texmf.d/*.cnf > "@GENTOO_PORTAGE_EPREFIX@/etc/texmf/web2c/texmf.cnf"
fi

if [ -d "@GENTOO_PORTAGE_EPREFIX@"/etc/texmf/fmtutil.d ]; then
    echo "Generating @GENTOO_PORTAGE_EPREFIX@/etc/texmf/web2c/fmtutil.cnf from @GENTOO_PORTAGE_EPREFIX@/etc/texmf/fmtutil.d ..."
    if [ -f "@GENTOO_PORTAGE_EPREFIX@"/etc/texmf/web2c/fmtutil.cnf ]; then
	cp -f "@GENTOO_PORTAGE_EPREFIX@"/etc/texmf/web2c/fmtutil.cnf ${TEMP_FILE}
    else
	touch ${TEMP_FILE}
    fi
    cat "@GENTOO_PORTAGE_EPREFIX@"/etc/texmf/fmtutil.d/*.cnf > "@GENTOO_PORTAGE_EPREFIX@/etc/texmf/web2c/fmtutil.cnf"
    ${DIFF_COMMAND} "@GENTOO_PORTAGE_EPREFIX@"/etc/texmf/web2c/fmtutil.cnf ${TEMP_FILE}
    STATUS_FMTUTIL="${STATUS_FMTUTIL}$?"
else
# if no regeneration took place:
# always regenerate the formats to be on the safe side
    STATUS_FMTUTIL="${STATUS_FMTUTIL}3"
fi

if [ -d "@GENTOO_PORTAGE_EPREFIX@"/etc/texmf/updmap.d ]; then
    if [ -f "@GENTOO_PORTAGE_EPREFIX@"/etc/texmf/web2c/updmap.cfg ]; then
	cp -f "@GENTOO_PORTAGE_EPREFIX@"/etc/texmf/web2c/updmap.cfg ${TEMP_FILE}
    else
	touch ${TEMP_FILE}
    fi
    echo "Generating @GENTOO_PORTAGE_EPREFIX@/etc/texmf/web2c/updmap.cfg from @GENTOO_PORTAGE_EPREFIX@/etc/texmf/updmap.d ..."
    cat "@GENTOO_PORTAGE_EPREFIX@"/etc/texmf/updmap.d/*.cfg > "@GENTOO_PORTAGE_EPREFIX@/etc/texmf/web2c/updmap.cfg"
    ${DIFF_COMMAND} "@GENTOO_PORTAGE_EPREFIX@"/etc/texmf/web2c/updmap.cfg ${TEMP_FILE}
    STATUS_UPDMAP="${STATUS_UPDMAP}$?"
else
# if no regeneration could be done:
# always regenerate the maps to be on the safe side
    STATUS_UPDMAP="${STATUS_UPDMAP}3"
fi

echo "Generating ls-R files"
mktexlsr &>/dev/null

# Generate language.dat file, from texlive install-pkg.sh
X=`kpsewhich language.dat`
Z=`dirname $X`
if [ -n "$X" -a -f "$Z/language.dat" -a -f "$Z/language.us" ] ; then
    echo "Generating language.dat file"

    # Save the old one, we will check if it has changed
    cp -f "$Z/language.dat" "${TEMP_FILE}"

    cat "$Z/language.us" > "$Z/language.dat"
    for i in "@GENTOO_PORTAGE_EPREFIX@"/etc/texmf/language.dat.d/language.*.dat; do
            [ -f "$i" ] && cat "$i" >> "$Z/language.dat"
    done

    ${DIFF_COMMAND} "$Z/language.dat" "${TEMP_FILE}"
    STATUS_FMTUTIL="${STATUS_FMTUTIL}$?"
fi

# Generate language.def file.
if [ -n "$X" -a -f "$Z/language.def" -a -f "$Z/language.us.def" ] ; then
    echo "Generating language.def file"

    # Save the old one, we will check if it has changed
    cp -f "$Z/language.def" "${TEMP_FILE}"

    cat "$Z/language.us.def" > "$Z/language.def"
    for i in "@GENTOO_PORTAGE_EPREFIX@"/etc/texmf/language.def.d/language.*.def; do
            [ -f "$i" ] && cat "$i" >> "$Z/language.def"
    done
    cat << EOF >> "$Z/language.def"
%%% No changes may be made beyond this point.

\uselanguage {USenglish}             %%% This MUST be the last line of the file.
EOF

    ${DIFF_COMMAND} "$Z/language.def" "${TEMP_FILE}"
    STATUS_FMTUTIL="${STATUS_FMTUTIL}$?"
fi

# Generate language.dat.lua file.
if [ -n "$X" -a -f "$Z/language.dat.lua" -a -f "$Z/language.us.lua" ] ; then
    echo "Generating language.dat.lua file"

    # Save the old one, we will check if it has changed
    cp -f "$Z/language.dat.lua" "${TEMP_FILE}"

    cat "$Z/language.us.lua" > "$Z/language.dat.lua"
    for i in "@GENTOO_PORTAGE_EPREFIX@"/etc/texmf/language.dat.lua.d/language.*.dat.lua; do
            [ -f "$i" ] && cat "$i" >> "$Z/language.dat.lua"
    done
    printf "}\n" >> "$Z/language.dat.lua"

    ${DIFF_COMMAND} "$Z/language.dat.lua" "${TEMP_FILE}"
    STATUS_FMTUTIL="${STATUS_FMTUTIL}$?"
fi

if [ "${STATUS_FMTUTIL}" -ne 0 ] ; then
    echo "Generating format files ..."
    fmtutil-sys --all &>/dev/null
else
    echo "Skipping format files, since they are unchanged"
fi

if [ "${STATUS_UPDMAP}" -ne 0 ] ; then
    echo "Generating font maps..."
    updmap-sys &>/dev/null
else
    echo "Skipping font maps, since they are unchanged"
fi

rm -f ${TEMP_FILE}

echo
echo "Use 'texconfig font ro'(rw) to disable (enable) font generation for users"
echo