Copyright (C) 1993, 94 Karl Berry.
Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies.
Permission is granted to copy and distribute modified versions of this manual under the conditions for verbatim copying, provided also that the sections entitled "Regain your programming freedom" and "GNU General Public License" are included exactly as in the original, and provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one.
Permission is granted to copy and distribute translations of this manual into another language, under the above conditions for modified versions, except that the sections entitled "Regain your programming freedom" and "GNU General Public License" may be included in a translation approved by the Free Software Foundation instead of in the original English.
This manual corresponds to version 2.6 of the Kpathsea library, released in January 1995.
The library's fundamental purpose is to look up a file in a list of directories specified by the user, similar to what shells do when looking up program names to execute.
The following software, all of which I maintain, uses this library:
The library is still under development (and probably always will be, despite my hopes). I do not promise to keep the interface unchanged. If you have comments or suggestions, please send them to me (see section 2.4 Reporting bugs).
Currently, I distribute the library under the GNU General Public License (see section A. GNU GENERAL PUBLIC LICENSE). In short, this means if you write a program using the library, you must (offer to) distribute the source, and allow anyone to modify the source and distribute their modifications.
If you have a problem with this, contact me. I would consider putting the library under the GNU Library General Public License, which would permit you to distribute the source only to the library, not to your program using it. But I will only do this if someone actually says they will not use the library under the GPL conditions, and would use it under the LGPL.
If you know enough about TeX to be reading this manual, then you (or perhaps your institution) should consider joining the TeX Users Group (if you're already a member, great!). TUG produces a periodical called TUGboat, sponsors an annual meeting (the proceedings of which are published in TUGboat), and arranges courses on TeX for all levels of users. Given sufficient funding (which your joining will help) TUG could sponsor more projects that will benefit the TeX community, such as a successor to TeX $\pi$ . Anyway, here is the address:
TeX Users Group P.O. Box 869 Santa Barbara, CA 93102 USA phone: (805) 899-4673 email: `tug@tug.org'
(This section is for those people who are curious about how this came about.) (If you like to read historical accounts of software, I urge you to seek out the GNU Autoconf manual and, even more fun, the "Errors of TeX" paper that Don Knuth published in Software--Practice and Experience.)
My first ChangeLog entry for Web2c seems to be February 1990, but I may have done some stuff before then. In any case, Tim Morgan and I were sort of jointly maintaining it for a time. (I should say that Tim had made Web2c into a real distribution long before I had ever used it or even heard of it, and Tom Rokicki did the original implementation.)
It must have been later in 1990 and 1991 that I started working on TeX for the Impatient and Dvips, Xdvi, Web2c, and the GNU fontutils (which I was also writing at the time) using different environment variables, and, even more importantly, having different bugs in their path searching became extremely painful. I also desperately wanted to implement subdirectory searching, since I couldn't stand putting everything in one big directory, and also couldn't stand having to explicitly specify `pandora', `cm' in a path.
In the first incarnation, I just hacked separately on each program--- that was the original subdirectory searching code in both Xdvi and Dvips, though I think Paul Vojta has completely rewritten Xdvi's support by now. That is, I tried to go with the flow in each program, rather than changing the program's calling sequences to conform to common routines.
Then, as bugs inevitably appeared, I found I was fixing the same thing in each of three (Web2c and fontutils were always sharing code, since I maintained those--there was no Dvipsk or Xdvik or Dviljk at this point). After a while, I finally started sharing source files. They weren't a library, though. I just kept things up to date with shell scripts. (I was developing on a 386 running ISC 2.2 at the time, and so didn't have symbolic links. An awful experience.)
Things kept on like this for quite a while. The `ChangeLog's for Xdvik and Dvipsk record initial releases of those distributions in May and June 1992. I think it was because I was tired of the different configuration strategies of each program, not so much because of the path searching. (Autoconf was being developed by David MacKenzie and others, and I was adapting it to TeX and friends.)
I starting to make it a separate library that other programs could link with on my birthday in April 1993, according to the ChangeLog. I don't remember exactly why I finally took the time to make it a separate library; I think it was a conversation with david zuhn that led to doing it. Just seemed like it was time.
Dviljk got started in March 1994 after I bought a Laserjet 4. (Kpathsea work got suspended while Norm Walsh and I, with Gustaf Neumann's help, implemented a way for TeX to get at all those neat builtin LJ4 fonts ... such a treat to have something to typeset in besides Palatino!)
At this point (October 1994), I've implemented just about all the path-searching features in Kpathsea that I ever intended to (and some I didn't intend ...). After the next stable release of Web2c, I figure I'll be able to stop development, and turn most of my attention back to making fonts for GNU. (Always assuming Microsoft hasn't completely obliterated Unix by then, or that software patents haven't stopped software development by anybody smaller than a company with a million-dollar-a-year legal budget. Which is actually what I think is likely to happen, but that's another story...)
Go to the first, previous, next, last section, table of contents.