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
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
|
This file records noteworthy changes. (Public domain.)
6.2.1 (for TeX Live 2015)
* kpsewhich --help outputs more information the search paths.
* install <kpatsea/c-auto.h> in an architecture dependent location
and use pkg-config to get the required flags.
6.2.0 (for TeX Live 2014, 30 May 2013)
* mktexlsr outputs normal msgs to stdout instead of stderr.
* do not ignore a non-terminated last line of a file.
* new texmf.cnf variables SELFAUTOGRANDPARENT, guess_input_kanji_encoding.
* Numerous changes for Windows.
6.1.1 (for TeX Live 2013, 30 May 2013)
* just one tree: merge texmf into texmf-dist.
6.1.0 (for TeX Live 2012, 1 July 2012)
* texmf.cnf is found in the great-grandparent's texmf-local,
corresponding to the default TeX Live installation.
* New formats for .ris, .bltxml.
* Merge with W32TeX.
6.0.1 (for TeX Live 2011, 5 July 2011)
* Trailing comments and whitespace omitted from config values.
* Add .tlu to type lua suffixes, and .dfont to truetype suffixes.
* Prefix program_invocation{,_short}_name with kpse_.
* Finally remove kpse_set_progname (deprecated since 1998).
6.0.0 (for TeX Live 2010, 4 June 2010)
* Change xmalloc and friends to use size_t, unfortunately changing the ABI.
5.0.0 (for TeX Live 2009, 13 October 2009)
* Make shared library version and general package version the same.
* Make library re-entrant, thus unavoidable binary API changes.
* Change build system to Automake.
3.5.7 (for TeX Live 2008, 8 July 2008)
* kpsewhich has new options --all (to report all matches) and --subdir
(to limit matches).
* more file suffixes (.dtx, et al.) and special files (updmap.cfg, et al.)
found automatically.
* add basic Lua support.
* add 64-bit functions for pdftex.
* autoconf support finally modernized.
3.5.6 (for TeX Live 2006-07, 30 December 2006)
* longstanding minor portability/warnings problems.
3.5.5
* Copyrights of some source files were erroneously attributed to FSF.
* On Unix, accept the semicolon as well as the colon in environment
variables like TEXINPUTS.
* Keep metafont from choking on large literals (> 4000) when calling
mktexpk.
3.5.4 (7 March 2005)
* Change of some standard environment/texmf.cnf variables:
HOMETEXMF -> TEXMFHOME
VARTEXMF -> TEXMFVAR
TEXMFVAR, TEXMFCONFIG: Always defined for the sake of teTeX 3.0.
TEXMFSYSVAR, TEXMFSYSCONFIG: Added for the sake of teTeX 3.0.
* mktex*: A new option for MT_FEATURES in mktex.cnf: texmfvar. If
selected, files that would be written into a system texmf tree go
to the TEXMFVAR tree. Overriden by varfonts.
3.5.3 (28 November 2004)
* New options for kpsewhich
-var-value=VARIABLE to expand $VARIABLE without having to give an $
on the command line.
-engine=ENGINE to set the engine name, used in some search paths.
* New formats: kpse_enc_format, kpse_cmap_format, kpse_sfd_format,
kpse_opentype_fomat, kpse_pdftex_config_format, kpse_lig_format,
kpse_texmfscript_format.
* Add .afmt to the suffixes for kpse_fmt_format. Aleph uses this.
* Rename access to kpseaccess.
* Rename readlink to kpsereadlink.
* Stop search early if we're given absolute or explicit relative names.
* Add 'angle(0,0)' to the metafont errors mktexpk will ignore.
* The withenable.ac script (used in configure) will fall back on using
kpsewhich to look for texmf trees.
* If ls-R is not found check for ls-r as well.
* kpsewhich: add -var-value option.
3.5.2 (19 February 2003)
* Critical bugfix to db.c.
3.5.1 (17 February 2003)
* No news.
3.5.0 (15 February 2003)
* Use libtool.
* Do absolute searches again.
* Retain '${prefix}' in Makefile for texmf if that's how we found the tree.
3.4.6 (7 February 2003)
* Support for e-Omega.
* Change to the search algorithm: when there are several possibilities, look
for all of them in one directory before moving to the next directory.
3.4.5 (28 January 2003)
* Remove "." from the TEXCONFIG path.
3.4.4 (16 January 2003)
* Add VARTEXMF HOMETEXMF to the default paths of texmf.in.
3.4.3 (11 January 2003)
* Minor fixes.
* Use both .w and .web suffixes for cweb.
3.4.2 (23 December 2002)
* Minor fixes to makefiles.
* A Win32 implementation of the fork/exec path in mktex. This leaves
MSDOS to be done.
3.4.1 (20 December 2002)
* A couple of fixes for the fork/exec code.
3.4.0 (14 December 2002)
* 3.4.x number as ABI is certainly broken now.
* Change the way the mktex* command lines are set up on unix systems.
Now we call fork/exec directly instead of using popen.
This code is not yet implemented for Windows/DOS.
* We're now (un?)fairly restrictive on what names are allowed for fonts.
That part of the code probably need improvement.
* When reading names from the ls-R file, they are no longer case-smashed.
So on platforms where this matters, the case-smashing should occur before
names are inserted into the ls-R file -- only lowercase should be used in
that file.
3.3.11 (13 November 2002)
* Minor fixes.
3.3.10 (11 November 2002)
* Minor fixes.
3.3.9 (22 October 2002)
* New extension: .oft for Omega formats.
3.3.8 (11 October 2002)
* Add support for mktexfmt (which is normally a link to fmtutil).
* Check both VAR.progname and VAR_progname in the environment.
3.3.7 (27 November 2001)
* Minor fixes/changes to assist Omega development.
3.3.6 (18 November 2001)
* Minor fixes/changes to assist Omega development.
3.3.5 (10 November 2001)
* Minor bug fixes.
3.3.4 (30 October 2001)
* Minor bug fixes.
3.3.3 (5 August 2000)
* On NeXT, 'rm -rf' will not fail, but uses the cwd as its argument.
mktexlsr counted on it to fail, with sometimes disastrous results.
3.3.2 (25 April 1999)
* Minor bug fixes.
3.3.1 (29 May 1999)
* Minor bug fixes.
3.3 (26 March 1999)
* Minor bugfixes.
3.2 (15 March 1998)
* Brace expansion will accept the path separator as well as the comma,
e.g., {foo:bar}.
* For TeX, we only recognize one suffix, because there is no such thing
as a canonical list of TeX suffixes.
* We distinguish between two kinds of suffixes in the code: the standard
suffixes which may be appended to filenames when searching; and the
alternative suffixes which are never appended, but when found this
prevents a search with one of the standard suffixes.
* kpse_reset_program_name: change assumed program name, resets the search
paths, so that searches will work as expected for the new name.
* kpse_set_program_name: new function, replaces kpse_set_progname.
* The MakeTeX* scripts have been renamed to mktex* forms.
3.1 (10 November 1997)
* The support for multiple texmf trees is much improved.
* New MakeTeX* scripts, based on teTeX's. These scripts now use
heuristics to decide where generated files are placed and which
permissions they should have.
* The varfonts feature is enabled by default.
* Some MSDOS/Win32 support added to the sources.
* Change in searching algorithm: if a name doesn't have the default suffix
we append it for the first search. Then we search for the bare name.
Thus if you have foo.bar and foo.bar.tex, the latter will now be found
first. Under the old system, you had to specify boo.bar.tex.tex to get
foo.bar.tex instead of foo.bar.
* Prepend the value of KPSE_DOT to relative paths from texmf.cnf if it
defined in the environment. This means we can use . instead of
$KPSE_DOT in paths.
* Define brace expansion so that {a,b}{1,2} expands to a1:b1:a2:b2. This
is different from how shells do it, and exploited in texmf.in.
* Renamed texmf.cnf.in to texmf.in.
* New value for debugging: DEBUG_VARS, equal to 64.
* If a file format has no suffix, allow its long name as the argument to
kpsewhich --format.
3.0 (7 February 1997)
* Distribution terms changed to the GNU Library General Public License.
* Default directory structure matches the TDS standard. The most
important change is in the fonts/ directory: the file type (tfm, pk)
is now directly underneath fonts/. Also, mft/ is now at the top level.
`modeless' is used for gsftopk/ps2pk/etc.-generated fonts.
* Change in searching algorithm: if the name already has a suffix
(foo.sty), search for it by itself first, before appending the default
suffix (foo.sty.tex). This loses if you have an executable named
foo.bar, with documentation in foo.bar.tex (foo.bar will be found
first). But this is unusual, and the other case is common.
* Environment variables PATH_program (e.g., TEXINPUTS_latex) checked
for, as with configuration file values (TEXINPUTS.latex).
* Multiple TEXMF trees supported, via the following new facility:
* Shell brace expansion {foo,bar} implemented, thanks to Bash.
* Multiple ls-R files supported via the TEXMFDBS path.
* An ``alias'' database for files in ls-R supported, to handle 8.3 problems.
* Directories in the ls-R file can be relative (./) as well as absolute (/).
* New MakeTeX{PK,TFM,MF} scripts with more features, based on teTeX's.
* DVIPSMAKEPK (etc.) actually overrides the name `MakeTeXPK', as documented.
* MakeTeX* can be globally disabled via configure options.
* Support for building as a shared library with configure --enable-shared.
* Directories whose names begin with `.' are ignored.
* Some warnings can be suppressed by TEX_HUSH cnf value or envvar.
* kpsewhich has many new capabilities, documented via --help and in the manual.
* texfonts.map parsing has an include directive, and @c is a comment.
* Input lines in texmf.cnf can be continued with \.
* TEXMFLOG can be set in texmf.cnf, as previously documented.
* SELFAUTODIR and SELFAUTOPARENT are defined according to the location
of the binary, and used to search for texmf.cnf.
* /// (or more) is equivalent to //.
* If $HOME = / (as with root on some systems), avoid creating // in paths.
* Support for AFM, PostScript Type 1 font, source, documentation, Omega,
and MetaPost-related file formats.
* New header kpathsea.h with all #include files.
* Under DOS, ls-R lines need not start with . or / or \ (e.g., c:).
* Amiga support.
2.6 (9 January 1995)
* MakeTeXPK installed from kpathsea, instead of each driver.
* MakeTeXPK.site looked for in texmf/web2c, instead of texmf/dvips.
* texmf.cnf installed and looked for in texmf/web2c, instead of texmf.
* If a mode is not explicitly specified, search all subdirectories (this
was actually in a previous release).
* install-sh only looked for in the top-level directory.
* kpsewhich replaces and generalizes kpsexpand.
2.5 (15 December 1994)
* Go back to calling db_insert after a successful MakeTeXPK, and check
for lack of an ls-R.
* Handle case of magstep -.5 for MakeTeXPK properly.
2.4 (28 October 1994)
* Avoid calling db_insert, which caused a segmentation fault.
2.3 (26 October 1994)
* Extra :'s in an envvar value, referring to the texmf.cnf value, work.
* Names like dpi600/cmr10.pk can be found in ls-R.
* KPATHSEA_DEBUG environment variable checked.
* Directories like pk/ljfour directly under $TEXMF/fonts are found.
* New standalone program, kpsexpand, optionally compiled and installed,
to do variable expansion (not path searching).
* Debugging output written to stderr instead of stdout.
* pxlNNN support removed; I never intended to support `pxl1500', and
pxl300 is never used.
2.2 (14 October 1994)
* MakeTeXPK invoked for the any_glyph type; this is for xdvik.
* MakeTeXPK sources $(psheaderdir)/MakeTeXPK.site if it exists.
* pxlNNN/cmr10.pk searched for (as well as dpiNNN/cmr10.pk and cmr10.NNNpk)
2.1 (12 September 1994)
* Manual goes through TeX, and .cps/.aux files are in the distribution.
* INSTALL* variables set at the top level.
* Dependency on GNU tr making paths.h and texmf.sed (->texmf.cnf) removed.
* texmf.cnf installed if it didn't previously exist.
2.0 (8 September 1994)
* Runtime configuration file support; see the manual.
* Both dpi600/cmr10.pk and cmr10.600pk are searched for.
* ls-R matches $TEXMF//latex2e vs. $TEXMF//latex209.
* $TEXMFLOG, if set, specifies a filename for logging successful searches.
* All directory entries beginning with `.' are ignored, not just `.' and `..'.
* Default path for PK and GF fonts includes the mode name.
* ls-R is in $TEXMFROOT instead of hardwired at compile time.
* More debugging flags, and they can be set with client program options.
* If MakeTeX{PK,TFM} fail, or aren't invoked, a file missfont.log is
written with the requisite commands, as in dvips.
* More 328/329/330 fixes, maybe for the last time.
* The override font paths (XDVIFONTS etc.) apply only to glyph (PK/GF)
searches, not TFM or VF.
* -g is not the default when linking, to avoid unnecessarily large binaries
(due to static libraries) under Linux.
* configure checks for a smart putenv.
* Stat results are cached to speed up disk searches.
1.8 (2 April 1994)
* New target install-info, so the documentation can be installed without
the headers.
* Existing but unreadable files are complained about, instead of just ignored.
* A leading %% in a path element forbids searching the disk for that
element; only a db will be searched (if it exists).
* The db is only used if it might be relevant to a given path element,
not searched first regardless.
1.7 (1 March 1994)
* Searches can use an externally-built ls-R ``database'', for speed.
* `VPATH = .' lines removed from generated Makefile, for broken Sun make.
* A path foo//tfm finds foo/tfm as well as foo/*/tfm.
1.6 (3 February 1994)
* Memory fault in copying long paths fixed.
* More variables passed down from the top-level Makefile.
* Mention SMART_PUTENV in the INSTALL file, and fix bug in xputenv.c
when one envvar is a proper prefix of another.
* More attempts at eliminating magstephalf annoyances.
* Directory name substitutions are done globally when creating paths.h.
* Various changes for DOS.
1.5 (24 January 1994)
* Default paths changed.
* Defining GCC_WCHAR lets GCC define wchar_t.
* EXIT_FAILURE and EXIT_SUCCESS defined in all cases (if they're not already).
* str[r]chr never redefined (I hope).
1.4 (3 November 1993)
* Check closest fallback font size.
* All default paths (including dvips') in paths.h.in, not the Makefile.
* Rearrange directory lists so that dirs in which a file is found
migrate to the top.
* Update for Autoconf 1.7.
1.3 (6 October 1993)
* Fix free of non-malloced memory bug.
* Fix uninitialized gf path bug.
* mkdirchain invoked as an absolute filename.
1.2 (27 September 1993)
* Running MakeTeXPK is tried before the fallback resolutions.
* The final bitmap name uses a variable spec, so DOS & OS/2 can get
dpi300/cmr10.pk.
* Document TeX-specific features.
* Dpi passed to MakeTeXPK via the envvar KPATHSEA_DPI instead of MAKETEX_DPI.
1.1 (26 August 1993)
* Installation fixes.
1.0 (5 August 1993)
* Routines to look up TeX font files, default path specifications, etc.
* Sort-of pattern matching: /foo//bar matches subdirectories
/foo/a/bar, /foo/b/bar, /foo/a1/a2/bar, etc.
* $var and ${var} expansion.
* Support for MakeTeX... scripts.
* Support for fallback resolutions and font.
* Lazy evaluation of path elements.
* Some runtime debugging support.
0.2 (12 May 1993)
First general release as a standalone library.
|