diff options
Diffstat (limited to 'Build')
-rw-r--r-- | Build/source/texk/kpathsea/ChangeLog | 5 | ||||
-rw-r--r-- | Build/source/texk/kpathsea/HIER | 88 | ||||
-rw-r--r-- | Build/source/texk/kpathsea/INSTALL | 849 | ||||
-rw-r--r-- | Build/source/texk/kpathsea/Makefile.am | 2 | ||||
-rw-r--r-- | Build/source/texk/kpathsea/Makefile.in | 7 | ||||
-rw-r--r-- | Build/source/texk/kpathsea/PROJECTS | 2 | ||||
-rw-r--r-- | Build/source/texk/kpathsea/doc/install.texi | 7 | ||||
-rw-r--r-- | Build/source/texk/kpathsea/doc/kpathsea.info | 156 |
8 files changed, 89 insertions, 1027 deletions
diff --git a/Build/source/texk/kpathsea/ChangeLog b/Build/source/texk/kpathsea/ChangeLog index 2092d8830bb..edaa0139d43 100644 --- a/Build/source/texk/kpathsea/ChangeLog +++ b/Build/source/texk/kpathsea/ChangeLog @@ -1,7 +1,8 @@ 2009-12-24 Karl Berry <karl@tug.org> - * README.CONFIGURE: remove, stale. - * README, + * HIER, INSTALL, README.CONFIGURE: remove, stale. + * Makefile.am (EXTRA_DIST): change accordingly. + * README, PROJECTS, access.c, readlink.c, mktex.opt, mktexdir, mktexdir.opt, mktexmf, mktexnam, mktexnam.opt, mktextfm, mktexupd: doc/email updates. diff --git a/Build/source/texk/kpathsea/HIER b/Build/source/texk/kpathsea/HIER deleted file mode 100644 index bfcaf10b133..00000000000 --- a/Build/source/texk/kpathsea/HIER +++ /dev/null @@ -1,88 +0,0 @@ -TeX directory structure -======================= - - This section describes the default installation hierarchy of the -distribution. It conforms to both the GNU coding standards and the TeX -directory structure (TDS) standard. For rationale and further -explanation, please see those documents. The GNU standard is available -as `ftp://prep.ai.mit.edu/pub/gnu/standards/standards.texi' and -mirrors. The TDS document is available from `CTAN:/tex-archive/tds' -(*note unixtex.ftp::.). - - You can change the default paths in many ways (*note Changing search -paths::.). One common desire is to put everything (binaries and all) -under a single top-level directory such as `/usr/local/texmf' or -`/opt/texmf'--in the terms used below, make PREFIX and TEXMF the same. -For specific instructions on doing that, see *Note configure -scenarios::. - - Here is a skeleton of the default directory structure, extracted from -the TDS document: - - PREFIX/ installation root (`/usr/local' by default) - bin/ executables - man/ man pages - include/ C header files - info/ GNU info files - lib/ libraries (`libkpathsea.*') - share/ architecture-independent files - texmf/ TDS root - bibtex/ BibTeX input files - bib/ BibTeX databases - base/ base distribution (e.g., `xampl.bib') - misc/ single-file databases - PKG/ name of a package - bst/ BibTeX style files - base/ base distribution (e.g., `plain.bst', `acm.bst') - misc/ single-file styles - PKG/ name of a package - doc/ additional documentation - dvips/ `.pro', `.ps', `psfonts.map' - fonts/ font-related files - TYPE/ file type (e.g., `tfm', `pk') - MODE/ type of output device (types `pk' and `gf' only) - SUPPLIER/ name of a font supplier (e.g., `public') - TYPEFACE/ name of a typeface (e.g., `cm') - dpiNNN/ font resolution (types `pk' and `gf' only) - metafont/ Metafont (non-font) input files - base/ base distribution (e.g., `plain.mf') - misc/ single-file packages (e.g., `modes.mf') - PKG/ name of a package (e.g., `mfpic') - metapost/ MetaPost input files - base/ base distribution (e.g., `plain.mp') - misc/ single-file packages - PKG/ name of a package - support/ support files for MetaPost-related utilities (e.g., `trfonts.map') - mft/ `MFT' inputs (e.g., `plain.mft') - tex/ TeX input files - FORMAT/ name of a format (e.g., `plain') - base/ base distribution for FORMAT (e.g., `plain.tex') - misc/ single-file packages (e.g., `webmac.tex') - local/ local additions to or local configuration files for FORMAT - PKG/ name of a package (e.g., `graphics', `mfnfss') - generic/ format-independent packages - hyphen/ hyphenation patterns (e.g., `hyphen.tex') - images/ image input files (e.g., Encapsulated PostScript) - misc/ single-file format-independent packages (e.g., `null.tex'). - PKG/ name of a package (e.g., `babel') - web2c/ implementation-dependent files (`.pool', `.fmt', `texmf.cnf', etc.) - - Some concrete examples for most file types: - - /usr/local/bin/tex - /usr/local/man/man1/xdvi.1 - /usr/local/info/kpathsea.info - /usr/local/lib/libkpathsea.a - /usr/local/share/texmf/bibtex/bst/base/plain.bst - /usr/local/share/texmf/fonts/pk/ljfour/public/cm/cmr10.600pk - /usr/local/share/texmf/fonts/source/public/pandora/pnr10.mf - /usr/local/share/texmf/fonts/tfm/public/cm/cmr10.tfm - /usr/local/share/texmf/fonts/type1/adobe/utopia/putr.pfa - /usr/local/share/texmf/metafont/base/plain.mf - /usr/local/share/texmf/metapost/base/plain.mp - /usr/local/share/texmf/tex/plain/base/plain.tex - /usr/local/share/texmf/tex/generic/hyphen/hyphen.tex - /usr/local/share/texmf/web2c/tex.pool - /usr/local/share/texmf/web2c/tex.fmt - /usr/local/share/texmf/web2c/texmf.cnf - diff --git a/Build/source/texk/kpathsea/INSTALL b/Build/source/texk/kpathsea/INSTALL deleted file mode 100644 index 9b3e5621cb7..00000000000 --- a/Build/source/texk/kpathsea/INSTALL +++ /dev/null @@ -1,849 +0,0 @@ -Contents: - -1 Installation - 1.1 Simple installation - 1.2 Custom installation - 1.2.1 Disk space - 1.2.2 Kpathsea application distributions - 1.2.3 Changing search paths - 1.2.3.1 Default path features - 1.2.3.2 Default path generation - 1.2.4 Running `configure' - 1.2.4.1 `configure' shells - 1.2.4.2 `configure' options - 1.2.4.3 `configure' environment - 1.2.4.4 `configure' scenarios - 1.2.4.5 Shared library - 1.2.5 Running `make' - 1.2.6 Installing files - 1.2.7 Cleaning up - 1.2.8 Filename database generation - 1.2.9 `mktex' scripts - 1.2.9.1 `mktex' configuration - 1.2.9.2 `mktex' script names - 1.2.9.3 `mktex' script arguments - 1.2.10 Installation testing - 1.3 Security - - -1 Installation -************** - -The procedure for Kpathsea (and Web2c, etc.) configuration and -installation follows. If you encounter trouble, see *Note Common -problems::, a copy of which is in the file `kpathsea/BUGS'. - -1.1 Simple installation -======================= - -Installing TeX and friends for the first time can be a daunting -experience. Thus, you may prefer to skip this whole thing and just get -precompiled executables: see *Note unixtex.ftp::. - - This section explains what to do if you wish to take the defaults for -everything, and generally to install in the simplest possible way. Most -steps here refer to corresponding subsection in the next section which -explains how to override defaults and generally gives more details. - - By default everything will be installed under `/usr/local' and the -following discussion assumes this. However, if you already have TeX -installed, its location is used to derive the directory under which -everything is to be installed. - - 1. Be sure you have enough disk space: approximately 8 megabytes for - the compressed archives, 15MB for sources, 50MB for compilation, - 40MB for the (initial) installed system (including library files). - *Note Disk space::. - - 2. Retrieve these distribution archives: - `ftp://ftp.tug.org/tex/texk.tar.gz' - These are the sources, which you will be compiling. - - `ftp://ftp.tug.org/tex/texklib.tar.gz' - This is a basic set of input files. You should unpack it in - the directory `/usr/local/share'; doing so will create a - `texmf' subdirectory there. - - These archives are mirrored on the CTAN hosts, in the - `systems/web2c' directory. - - *Note Kpathsea application distributions::. - - 3. When using the default search paths, there is no need to edit any - distribution files. *Note Changing search paths::. - - 4. At the top level of the distribution, run `sh configure'. (If you - have the GNU Bash shell installed, run `bash configure'.) *Note - Running configure::. - - 5. `make'. *Note Running make::. If you are using a BSD 4.4 system - such as FreeBSD or NetBSD, you may have to use GNU make (often - installed in `/usr/local/bin'), not the BSD make. - - 6. `make install'. *Note Installing files::. - - 7. `make distclean'. *Note Cleaning up::. - - 8. Set up a cron job to rebuild the filename database that makes - searching faster. This line will rebuild it every midnight: - 0 0 * * * cd /usr/local/share/texmf && /BINDIR/mktexlsr - *Note Filename database generation::, and *Note Filename - database::. - - 9. If you're installing Dvips, you also need to set up configuration - files for your printers and make any additional PostScript fonts - available. *Note Installation: (dvips)Installation. If you have - any color printers, see *Note Color device configuration: - (dvips)Color device configuration. - - 10. The first time you run a DVI driver, a bunch of PK fonts will be - built by Metafont via `mktexpk' (and added to the filename - database). This will take some time. Don't be alarmed; they will - created only this first time (unless something is wrong with your - path definitions). - - By default, `mktexpk' will create these fonts in a hierarchy under - `/var/tmp/texfonts'; it simply assumes that `/var/tmp' exists and - is globally writable. If you need a different arrangement, see - *Note mktex configuration::. - - *Note mktex scripts::. - - 11. For some simple tests, try `tex story \\bye' and `latex sample2e'. - Then run `xdvi story' or `dvips sample2e' on the resulting DVI - files to preview/print the documents. *Note Installation - testing::. - -1.2 Custom installation -======================= - -Most sites need to modify the default installation procedure in some -way, perhaps merely changing the prefix from `/usr/local', perhaps -adding extra compiler or loader options to work around `configure' -bugs. This section explains how to override default choices. For -additional distribution-specific information: - * `dviljk/INSTALL'. - - * *Note Installation: (dvips)Installation. - - * *Note Installation: (web2c)Installation. - - * `xdvik/INSTALL'. - - These instructions are for Unix systems. Other operating-system -specific distributions have their own instructions. The code base -itself supports Amiga, DOS, OS/2, and VMS. - - Following are the same steps as in the previous section (which -describes the simplest installation), but with much more detail. - -1.2.1 Disk space ----------------- - -Here is a table showing the disk space needed for each distribution -(described in the next section). The `(totals)' line reflects the -`texk' source distribution and `texklib'; the individual distributions -don't enter into it. Sizes are in megabytes. All numbers are -approximate. - -Distribution .tar.gz Unpacked Compiled Installed -dviljk .9 3.8 -dvipsk .9 3.2 -xdvik .7 2.5 -web2c 1.3 5.0 -web 1.9 6.5 - - -texk 7.5 32.1 95.3 33.5 -texklib 6.3 15.0 - 15.0 -(totals) 14.6 47.1 95.3 48.5 - -1.2.2 Kpathsea application distributions ----------------------------------------- - -The archive `ftp://ftp.tug.org/tex/texk.tar.gz' contains all of the -Kpathsea applications I maintain, and the library itself. For example, -since NeXT does not generally support X11, you'd probably want to skip -`xdvik' (or simply remove it after unpacking `texk.tar.gz'. If you are -not interested in all of them, you can also retrieve them separately: - -`dviljk.tar.gz' - DVI to PCL, for LaserJet printers. - -`dvipsk.tar.gz' - DVI to PostScript, for previewers, printers, or PDF generation. - -`web2c.tar.gz' - The software needed to compile TeX and friends. - -`web.tar.gz' - The original WEB source files, also used in compilation. - -`xdvik.tar.gz' - DVI previewing under the X window system. - - - If you want to use the Babel LaTeX package for support of non-English -typesetting, you may need to retrieve additional files. See the file -`install.txt' in the Babel distribution. - -1.2.3 Changing search paths ---------------------------- - -If the search paths for your installation differ from the standard TeX -directory structure (*note Introduction: (tds)Top.), edit the file -`kpathsea/texmf.in' as desired, before running `configure'. For -example, if you have all your fonts or macros in one big directory. - - You may also wish to edit the file `mktex.cnf', either before or -after installation, to control various aspects of `mktexpk' and -friends. *Note mktex configuration::. - - You do not need to edit `texmf.in' to change the default top-level or -other installation _directories_ (only the paths). You can and should -do that when you run `configure' (next step). - - You also do not need to edit `texmf.in' if you are willing to rely on -`texmf.cnf' at runtime to define the paths, and let the compile-time -default paths be incorrect. Usually there is no harm in doing this. - - The section below explains default generation in more detail. - -1.2.3.1 Default path features -............................. - -The purpose of having all the different files described in the section -above is to avoid having the same information in more than one place. If -you change the installation directories or top-level prefix at -`configure'-time, those changes will propagate through the whole -sequence. And if you change the default paths in `texmf.in', those -changes are propagated to the compile-time defaults. - - The Make definitions are all repeated in several Makefile's; but -changing the top-level `Makefile' should suffice, as it passes down all -the variable definitions, thus overriding the submakes. (The -definitions are repeated so you can run Make in the subdirectories, if -you should have occasion to.) - - By default, the bitmap font paths end with `/$MAKETEX_MODE', thus -including the device name (usually a Metafont mode name such as -`ljfour'). This distinguishes two different devices with the same -resolution--a write/white from a write/black 300dpi printer, for -example. - - However, since most sites don't have this complication, Kpathsea -(specifically, the `kpse_init_prog' function in `kpathsea/proginit.c') -has a special case: if the mode has not been explicitly set by the user -(or in a configuration file), it sets `MAKETEX_MODE' to `/'. This -makes the default PK path, for example, expand into `.../pk//', so -fonts will be found even if there is no subdirectory for the mode (if -you arranged things that way because your site has only one printer, -for example) or if the program is mode-independent (e.g., `pktype'). - - To make the paths independent of the mode, simply edit `texmf.in' -before installation, or the installed `texmf.cnf', and remove the -`$MAKETEX_MODE'. - - *Note mktex script arguments::, for how this interacts with `mktexpk'. - - *Note TeX directory structure: TeX directory structure, for a -description of the default arrangement of the input files that comprise -the TeX system. The file `kpathsea/HIER' is a copy of that section. - -1.2.3.2 Default path generation -............................... - -This section describes how the default paths are constructed. - - You may wish to ignore the whole mess and simply edit `texmf.cnf' -after it is installed, perhaps even copying it into place beforehand so -you can complete the installation, if it seems necessary. - - To summarize the chain of events that go into defining the default -paths: - - 1. `configure' creates a `Makefile' from each `Makefile.in'. - - 2. When Make runs in the `kpathsea' directory, it creates a file - `texmf.sed' that substitutes the Make value of `$(var)' for a - string `@var@'. The variables in question are the one that define - the installation directories. - - 3. `texmf.sed' (together with a little extra magic--see - `kpathsea/Makefile') is applied to `texmf.in' to generate - `texmf.cnf'. This is the file that will eventually be installed - and used. - - 4. The definitions in `texmf.cnf' are recast as C `#define''s in - `paths.h'. These values will be the compile-time defaults; they - are not used at runtime unless no `texmf.cnf' file can be found. - - (That's a lie: the compile-time defaults are what any extra :'s in - `texmf.cnf' expand into; but the paths as distributed have no extra - :'s, and there's no particular reason for them to.) - -1.2.4 Running `configure' -------------------------- - -Run `sh configure OPTIONS' (in the top-level directory, the one -containing `kpathsea/'), possibly using a shell other than `sh' (*note -configure shells::). - - `configure' adapts the source distribution to the present system via -`#define''s in `*/c-auto.h', which are created from the corresponding -`c-auto.in'. It also creates a `Makefile' from the corresponding -`Makefile.in', doing `@VAR@' and `ac_include' substitutions). - - `configure' is the best place to control the configuration, -compilation, and installed location of the software, either via -command-line options, or by setting environment variables before -invoking it. For example, you can disable `mktexpk' by default with -the option `--disable-mktexpk'. *Note configure options::. - -1.2.4.1 `configure' shells -.......................... - -Considerable effort has gone into trying to ensure that the `configure' -scripts can be run by most Bourne shell variants. If `sh' runs into -trouble, your best bet is to use Bash, the GNU Bourne-again shell -(*note Top: (bash)Top.). - - Bourne shell variants for which problems have been reported in the -past are: -`ksh' - Old versions of the Korn shell may fail to handle the scripts. - The Korn shell may be installed as `/bin/sh' on AIX, in which case - `/bin/bsh' may serve instead. - -`ash' - Old versions of ash are unable to handle the scripts. Ash is - sometimes installed as `/bin/sh' on NetBSD, FreeBSD, and Linux - systems. `/bin/bash' should be available for those systems, but - might not be part of a default installation. - -`Ultrix /bin/sh' - `/bin/sh' under Ultrix is a DEC-grown shell that is notably - deficient in many ways. `/bin/sh5' may be necessary. - -1.2.4.2 `configure' options -........................... - -For a complete list of all `configure' options, run `configure --help' -or see *Note Running `configure' scripts: (autoconf)Invoking configure, -(a copy is in the file `kpathsea/README.CONFIGURE'). The generic -options are listed first in the `--help' output, and the -package-specific options come last. The environment variables -`configure' pays attention to are listed below. - - Options particularly likely to be useful are `--prefix', `--datadir', -and the like; see *Note configure scenarios::. - - This section gives pointers to descriptions of the `--with' and -`--enable' options to `configure' that Kpathsea-using programs accept. - -`--without-mktexmf-default' -`--without-mktexpk-default' -`--without-mktextfm-default' -`--with-mktextex-default' - Enable or disable the dynamic generation programs. *Note mktex - configuration::. - -`--enable-shared' - Build Kpathsea as a shared library, and link against it. Also - build the usual static library. *Note Shared library::. - -`--disable-static' - Build only the shared library. Implies `--enable-shared'. - -`--enable-maintainer-mode' - Enables make targets that are useful for the maintainer and likely - to be a pain for anyone else; the makefiles created when this - option is enabled may not work at all for you. You have been - warned. - -1.2.4.3 `configure' environment -............................... - -`configure' uses the value of the following environment variables in -determining your system's characteristics, and substitutes for them in -Makefile's: - -`CC' - The compiler to use: default is `gcc' if it's installed, otherwise - `cc'. - -`CFLAGS' - Options to give the compiler: default is `-g -O2' for `gcc', `-g' - otherwise. `CFLAGS' comes after any other options. You may need - to include `-w' here if your compilations commonly have useless - warnings (e.g., `NULL redefined'), or `configure' may fail to - detect the presence of header files (it takes the messages on - standard error to mean the header file doesn't exist). - -`CPPFLAGS' - Options to pass to the compiler preprocessor; this matters most for - configuration, not the actual source compilation. The `configure' - script often does only preprocessing (e.g., to check for the - existence of #include files), and `CFLAGS' is not used for this. - You may need to set this to something like - `-I/usr/local/include/wwwhatever' if you have the libwww library - installed for hyper-xdvik (see `xdvik/INSTALL'). - -`DEFS' - Additional preprocessor options, but not used by `configure'. - Provided for enabling or disabling program features, as documented - in the various program-specific installation instructions. `DEFS' - comes before any compiler options included by the distribution - `Makefile's or by `configure'. - -`LDFLAGS' - Additional options to give to the loader. `LDFLAGS' comes before - any other linker options. - -`LIBS' - Additional libraries to link with. - -1.2.4.4 `configure' scenarios -............................. - -Here are some common installation scenarios: - - * Including X support in Metafont. This is disabled by default, - since many sites have no use for it, and it's a leading cause of - configuration problems. - configure --with-x - - * Putting the binaries, TeX files, GNU info files, etc. into a single - TeX hierarchy, say `/here/texmf', requires overriding defaults in - `configure': - configure --prefix=/here/texmf --datadir=/here - - * You can compile on multiple architectures simultaneously either by - building symbolic link trees with the `lndir' script from the X11 - distribution, or with the `--srcdir' option: - configure --srcdir=SRCDIR - - * If you are installing binaries for multiple architectures into a - single hierarchy, you will probably want to override the default - `bin' and `lib' directories, something like this: - configure --prefix=TEXMF --datadir=TEXMF \ - --bindir=TEXMF/ARCH/bin --libdir=TEXMF/ARCH/lib - make texmf=TEXMF - (Unless you make provisions for architecture-specific files in - other ways, e.g., with Depot or an automounter.) - - * To compile with optimization (to compile without debugging, remove - the `-g'): - env CFLAGS="-g -O" sh configure ... - For a potential problem if you optimize, see *Note TeX or Metafont - failing: TeX or Metafont failing. - -1.2.4.5 Shared library -...................... - -You can compile Kpathsea as a shared library on a few systems, by -specifying the option `--enable-shared' when you run `configure'. - - The main advantage in doing this is that the executables can then -share the code, thus decreasing memory and disk space requirements. - - On some systems, you can record the location of shared libraries in a -binary, usually by giving certain options to the linker. Then -individual users do not need to set their system's environment variable -(e.g., `LD_LIBRARY_PATH') to find shared libraries. If you want to do -this, you will need to add the necessary options to `LDFLAGS' yourself; -for example, on Solaris, include something like `-R${prefix}/lib', on -IRIX or Linux, use `-rpath${prefix}/lib'. (Unfortunately, making this -happen by default is very difficult, because of interactions with an -existing installed shared library.) - - Currently, shared library support is implemented only on Linux, SunOS -4 (Solaris 1), SunOS 5 (Solaris 2), IRIX 5, and IRIX 6. If you're -interested and willing in adding support for other systems, please see -the `configure' mode in the `klibtool' script, especially the -host-specific case statement around line 250. - -1.2.5 Running `make' --------------------- - -`make' (still in the top-level directory). This also creates the -`texmf.cnf' and `paths.h' files that define the default search paths, -and (by default) the `plain' and `latex' TeX formats. - - You can override directory names and other values at `make'-time. -`make/paths.make' lists the variables most commonly reset. For -example, `make default_texsizes=600' changes the list of fallback -resolutions. - - You can also override each of `configure''s environment variables -(*note configure environment::). The Make variables have the same -names. - - Finally, you can supply additional options via the following -variables. (`configure' does not use these.) - -`XCPPFLAGS' -`XDEFS' - Preprocessor options. - -`XCFLAGS' - Compiler options. - -`XLDFLAGS' - Loader options (included at beginning of link commands). - -`XLOADLIBES' - More loader options (included at end of link commands). - -`XMAKEARGS' - Additional Make arguments passed to all sub-`make''s. You may need - to include assignments to the other variables here via `XMAKEARGS'; - for example: `make XMAKEARGS="CFLAGS=-O XDEFS=-DA4"'. - - It's generally a bad idea to use a different compiler (`CC') or -libraries (`LIBS') for compilation than you did for configuration, -since the values `configure' determined may then be incorrect. - - Adding compiler options to change the "universe" you are using -(typically BSD vs. system V) is generally a cause of trouble. It's -best to use the native environment, whatever that is; `configure' and -the software usually adapt best to that. In particular, under Solaris -2.x, you should not use the BSD-compatibility library (`libucb') or -include files (`ucbinclude'). - - If you want to use the Babel LaTeX package for support of non-English -typesetting, you need to modify some files before making the LaTeX -format. See the file `install.txt' in the Babel distribution. - -1.2.6 Installing files ----------------------- - -The basic command is the usual `make install'. For security issues, -*note Security::. - - The first time you install any manual in the GNU Info system, you -should add a line (you choose where) to the file `dir' in your -`$(infodir)' directory. Sample text for this is given near the top of -the Texinfo source files (`kpathsea/kpathsea.texi', -`dvipsk/dvips.texi', and `web2c/doc/web2c.texi'). If you have a recent -version of the GNU Texinfo distribution installed -(`ftp://prep.ai.mit.edu/pub/gnu/texinfo-3.9.tar.gz' or later), this -should happen automatically. - - On the offchance that this is your first Info installation, the `dir' -file I use is included in the distribution as `etc/dir-example'. - - You may wish to use one of the following targets, especially if you -are installing on multiple architectures: - * `make install-exec' to install in architecture-dependent - directories, i.e., ones that depend on the `$(exec_prefix)' Make - variable. This includes links to binaries, libraries, etc., not - just "executables". - - * `make install-data' to install in architecture-independent - directories, such as documentation, configuration files, pool - files, etc. - - If you use the Andrew File System, the normal path (e.g., PREFIX/bin) -only gets you to a read-only copy of the files, and you must specify a -different path for installation. The best way to do this is by setting -the `prefix' variable on the `make' command line. The sequence becomes -something like this: - configure --prefix=/whatever - make - make install prefix=/afs/.SYSTEM.NAME/system/1.3/@sys/whatever - With AFS, you will definitely want to use relative filenames in -`ls-R' (*note Filename database::), not absolute filenames. This is -done by default, but check anyway. - -1.2.7 Cleaning up ------------------ - -The basic command is `make distclean'. This removes all files created -by the build. - - Alternatively, - * `make mostlyclean' if you intend to compile on another - architecture. For Web2C, since the generated C files are portable, - they are not removed. If the `lex' vs. `flex' situation is going - to be different on the next machine, `rm web2c/lex.yy.c'. - - * `make clean' to remove files created by compiling, but leave - configuration files and Makefiles. - - * `make maintainer-clean' to remove everything that the Makefiles can - rebuild. This is more than `distclean' removes, and you should - only use it if you are thoroughly conversant with (and have the - necessary versions of) Autoconf. - - * `make extraclean' to remove other junk, e.g., core files, log - files, patch rejects. This is independent of the other `clean' - targets. - -1.2.8 Filename database generation ----------------------------------- - -You will probably want to set up a `cron' entry on the appropriate -machine(s) to rebuild the filename database nightly or so, as in: - 0 0 * * * cd TEXMF && /BINDIR/mktexlsr - *Note Filename database::. - - Although the `mktex...' scripts make every effort to add -newly-created files on the fly, it can't hurt to make sure you get a -fresh version every so often. - -1.2.9 `mktex' scripts ---------------------- - -If Kpathsea cannot otherwise find a file, for some file types it is -configured by default to invoke an external program to create it -dynamically (*note mktex configuration::). This is most useful for -fonts (bitmaps, TFM's, and arbitrarily-sizable Metafont sources such as -the Sauter and EC fonts), since any given document can use fonts never -before referenced. Trying to build all fonts in advance is therefore -impractical, if not impossible. - - The script is passed the name of the file to create and possibly other -arguments, as explained below. It must echo the full pathname of the -file it created (and nothing else) to standard output; it can write -diagnostics to standard error. - -1.2.9.1 `mktex' configuration -............................. - -The following file types can run an external program to create missing -files: `pk', `tfm', `mf', `tex'; the scripts are named `mktexpk', -`mktextfm', `mktexmf', and `mktextex'. - - In the absence of `configure' options specifying otherwise, -everything but `mktextex' will be enabled by default. The `configure' -options to change the defaults are: - - --without-mktexmf-default - --without-mktexpk-default - --without-mktextfm-default - --with-mktextex-default - - The `configure' setting is overridden if the environment variable or -configuration file value named for the script is set; e.g., `MKTEXPK' -(*note mktex script arguments::). - - As distributed, all the scripts source a file `texmf/web2c/mktex.cnf' -if it exists, so you can override various defaults. See `mktex.opt', -for instance, which defines the default mode, resolution, some special -directory names, etc. If you prefer not to change the distributed -scripts, you can simply create `mktex.cnf' with the appropriate -definitions (you do not need to create it if you have nothing to put in -it). `mktex.cnf' has no special syntax; it's an arbitrary Bourne shell -script. The distribution contains a sample `mktex.cnf' for you to copy -and modify as you please (it is not installed anywhere). - - In addition, you can configure a number of features with the -`MT_FEATURES' variable, which you can define: - * in `mktex.opt', as just mentioned; - - * by editing the file `mktex.opt', either before `make install' (in - the source hierarchy) or after (in the installed hierarchy); - - * or in the environment. - - If none of the options below are enabled, `mktexpk', `mktextfm', and -`mktexmf' follow the following procedure to decide where fonts should -be installed. Find the tree where the font's sources are, and test the -permissions of the `fonts' directory of that tree to determine whether -it is writable. If it is, put the files in the tree in appropriate -locations. If it isn't writable, see whether the tree is a system tree -(named in `SYSTEXMF'). If so, the `VARTEXFONTS' tree is used. In all -other cases the working directory is used. - - The `appendonlydir' option is enabled by default. - -`appendonlydir' - Tell `mktexdir' to create directories append-only, i.e., set their - sticky bit (*note Mode Structure: (coreutils)Mode Structure.). - This feature is silently ignored on non-Unix platforms (e.g. - Windows/NT and MS-DOS) which don't support similar functionality. - This feature is enabled by default. - -`dosnames' - Use 8.3 names; e.g., `dpi600/cmr10.pk' instead of `cmr10.600pk'. - Note that this feature only affects filenames that would otherwise - clash with other TeX-related filenames; `mktex' scripts do nothing - about filenames which exceed the 8+3 MS-DOS limits but remain - unique when truncated (by the OS) to these limits, and nether do - the scripts care about possible clashes with files which aren't - related with TeX. For example, `cmr10.600pk' would clash with - `cmr10.600gf' and is therefore changed when `dosnames' is in - effect, but `mf.pool' and `mp.base' don't clash with any - TeX-related files and are therefore unchanged. - - This feature is turned on by default on MS-DOS. If you do not wish - `dosnames' to be set on an MS-DOS platform, you need to set the - `MT_FEATURES' environment variable to a value that doesn't include - `dosnames'. You can also change the default setting by editing - `mktex.opt', but only if you use the `mktex' shell scripts; the - emulation programs don't consult `mktex.opt'. - -`fontmaps' - Instead of deriving the location of a font in the destination tree - from the location of the sources, the aliases and directory names - from the Fontname distribution are used. (*note Introduction: - (fontname)Top.). - -`nomfdrivers' - Let mktexpk and mktextfm create metafont driver files in a - temporary directory. These will be used for just one metafont run - and not installed permanently. - -`nomode' - Omit the directory level for the mode name; this is fine as long as - you generate fonts for only one mode. - -`stripsupplier' - Omit the font supplier name directory level. - -`striptypeface' - Omit the font typeface name directory level. - -`strip' - Omit the font supplier and typeface name directory levels. This - feature is deprecated in favour of `stripsupplier' and - `striptypeface'. - -`varfonts' - When this option is enabled, fonts that would otherwise be written - in system texmf tree go to the `VARTEXFONTS' tree instead. The - default value in `kpathsea/Makefile.in' is `/var/tmp/texfonts'. - The `Linux File System Standard' recommends `/var/tex/fonts'. - - The `varfonts' setting in `MT_FEATURES' is overridden by the - `USE_VARTEXFONTS' environment variable: if set to `1', the feature - is enabled, and if set to `0', the feature is disabled. - -`texmfvar' - Force generated files that would go into a system tree (as defined - by `SYSTEXMF') into `TEXMFVAR'. Starting with teTeX-3.0, the - variable `TEXMFVAR' is always set. The `varfonts' feature takes - precedence if also set. - - The `texmfvar' setting in `MT_FEATURES' is overridden by the - `USE_TEXMFVAR' environment variable: if set to `1', the feature is - enabled, and if set to `0', the feature is disabled. - -1.2.9.2 `mktex' script names -............................ - -The following table shows the default name of the script for each -possible file types. (The source is the variable `kpse_make_specs' in -`kpathsea/tex-make.c'.) - -`mktexpk' - Glyph fonts. - -`mktextex' - TeX input files. - -`mktexmf' - Metafont input files. - -`mktextfm' - TFM files. - -These names are overridden by an environment variable specific to the -program--for example, `DVIPSMAKEPK' for Dvipsk. - - If a `mktex...' script fails, the invocation is appended to a file -`missfont.log' (by default) in the current directory. You can then -execute the log file to create the missing files after fixing the -problem. - - If the current directory is not writable and the environment variable -or configuration file value `TEXMFOUTPUT' is set, its value is used. -Otherwise, nothing is written. The name `missfont.log' is overridden -by the `MISSFONT_LOG' environment variable or configuration file value. - -1.2.9.3 `mktex' script arguments -................................ - -The first argument to a `mktex' script is always the name of the file -to be created. - - In the default `mktexpk' implementation, additional arguments may -also be passed: - -`--dpi NUM' - Sets the resolution of the generated font to NUM. - -`--mfmode NAME' - Sets the Metafont mode to NAME. - -`--bdpi NUM' - Sets the the "base dpi" for the font. This must match the mode - being used. - -`--mag STRING' - A "magstep" string suitable for the Metafont `mag' variable. This - must match the combination of BDPI and DPI being used. - -`--destdir STRING' - A directory name. If the directory is absolute, it is used as-is. - Otherwise, it is appended to the root destination directory set in - the script. - -1.2.10 Installation testing ---------------------------- - -Besides the tests listed in *Note Simple installation::, you can try -running `make check'. This includes the torture tests (trip, trap, and -mptrap) that come with Web2c (*note Triptrap: (web2c)Triptrap.). - -1.3 Security -============ - -None of the programs in the TeX system require any special system -privileges, so there's no first-level security concern of people gaining -illegitimate root access. - - A TeX document, however, can write to arbitrary files, e.g., -`~/.rhosts', and thus an unwitting user who runs TeX on a random -document is vulnerable to a trojan horse attack. This loophole is -closed by default, but you can be permissive if you so desire in -`texmf.cnf'. *Note tex invocation: (web2c)tex invocation. MetaPost has -the same issue. - - Dvips, Xdvi, and TeX can also execute shell commands under some -circumstances. To disable this, see the `-R' option in *Note Option -details: (dvips)Option details, the xdvi man page, and *Note tex -invocation: (web2c)tex invocation, respectively. - - Another security issue arises because it's very useful--almost -necessary--to make arbitrary fonts on user demand with `mktexpk' and -friends. Where do these files get installed? By default, the -`mktexpk' distributed with Kpathsea assumes a world-writable `/var/tmp' -directory; this is a simple and convenient approach, but it may not -suit your situation because it means that a local cache of fonts is -created on every machine. - - To avoid this duplication, many people consider a shared, globally -writable font tree desirable, in spite of the potential security -problems. To do this you should change the value of `VARTEXFONTS' in -`texmf.cnf' to refer to some globally known directory. *Note mktex -configuration::. - - The first restriction you can apply is to make newly-created -directories under `texmf' be append-only with an option in `mktex.cnf'. -*Note mktex configuration::. - - Another approach is to establish a group (or user) for TeX files, -make the `texmf' tree writable only to that group (or user), and make -`mktexpk' et al. setgid to that group (or setuid to that user). Then -users must invoke the scripts to install things. (If you're worried -about the inevitable security holes in scripts, then you could write a -C wrapper to exec the script.) - - The `mktex...' scripts install files with the same read and write -permissions as the directory they are installed in. The executable, -sgid, suid, and sticky bits are always cleared. - - Any directories created by the `mktex...' scripts have the same -permissions as their parent directory, unless the `appendonlydir' -feature is used, in which case the sticky bit is always set. - diff --git a/Build/source/texk/kpathsea/Makefile.am b/Build/source/texk/kpathsea/Makefile.am index 6a796fa0ae4..29bc038e9bf 100644 --- a/Build/source/texk/kpathsea/Makefile.am +++ b/Build/source/texk/kpathsea/Makefile.am @@ -11,7 +11,7 @@ rebuild: all SUBDIRS = . doc man -EXTRA_DIST = BUGS HIER PROJECTS README.CONFIGURE +EXTRA_DIST = BUGS PROJECTS INCLUDES = -I$(top_builddir)/.. -I$(top_srcdir)/.. AM_CFLAGS = $(WARNING_CFLAGS) diff --git a/Build/source/texk/kpathsea/Makefile.in b/Build/source/texk/kpathsea/Makefile.in index fe999188a5b..a3ba0117cc4 100644 --- a/Build/source/texk/kpathsea/Makefile.in +++ b/Build/source/texk/kpathsea/Makefile.in @@ -56,7 +56,7 @@ DIST_COMMON = README $(am__configure_deps) $(dist_noinst_DATA) \ ../../build-aux/config.sub ../../build-aux/depcomp \ ../../build-aux/install-sh ../../build-aux/ltmain.sh \ ../../build-aux/missing ../../build-aux/texinfo.tex \ - ../../build-aux/ylwrap AUTHORS ChangeLog INSTALL NEWS putenv.c \ + ../../build-aux/ylwrap AUTHORS ChangeLog NEWS putenv.c \ strcasecmp.c strstr.c strtol.c ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/../../m4/kpse-common.m4 \ @@ -350,9 +350,8 @@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ ACLOCAL_AMFLAGS = -I ../../m4 SUBDIRS = . doc man -EXTRA_DIST = BUGS HIER PROJECTS README.CONFIGURE putenv.c strcasecmp.c \ - strtol.c strstr.c mktex.cnf Makefile.in.orig common.ac.orig \ - withenable.ac +EXTRA_DIST = BUGS PROJECTS putenv.c strcasecmp.c strtol.c strstr.c \ + mktex.cnf Makefile.in.orig common.ac.orig withenable.ac INCLUDES = -I$(top_builddir)/.. -I$(top_srcdir)/.. AM_CFLAGS = $(WARNING_CFLAGS) lib_LTLIBRARIES = libkpathsea.la diff --git a/Build/source/texk/kpathsea/PROJECTS b/Build/source/texk/kpathsea/PROJECTS index 80d5063a79d..c8f2bef47ec 100644 --- a/Build/source/texk/kpathsea/PROJECTS +++ b/Build/source/texk/kpathsea/PROJECTS @@ -1,5 +1,5 @@ Here are some ideas for improvements. If you would like to contribute, -please send mail to me (infovore@xs4all.nl) first. +please send mail to tex-k@tug.org first. If the library is built shared, it would be nice if the binaries did not diff --git a/Build/source/texk/kpathsea/doc/install.texi b/Build/source/texk/kpathsea/doc/install.texi index 67e82a8acd1..dd78b88a9aa 100644 --- a/Build/source/texk/kpathsea/doc/install.texi +++ b/Build/source/texk/kpathsea/doc/install.texi @@ -332,12 +332,11 @@ To make the paths independent of the mode, simply edit @xref{mktex script arguments}, for how this interacts with @code{mktexpk}. -@flindex HIER -@flindex kpathsea/HIER +@cindex TDS +@cindex @TeX{} directory structure @xref{TeX directory structure,, @TeX{} directory structure}, for a description of the default arrangement of the input files that comprise -the @TeX{} system. The file @file{kpathsea/HIER} is a copy of that -section. +the @TeX{} system. @node Default path generation diff --git a/Build/source/texk/kpathsea/doc/kpathsea.info b/Build/source/texk/kpathsea/doc/kpathsea.info index b9701102961..de65f5a3bb0 100644 --- a/Build/source/texk/kpathsea/doc/kpathsea.info +++ b/Build/source/texk/kpathsea/doc/kpathsea.info @@ -454,7 +454,7 @@ before installation, or the installed `texmf.cnf', and remove the *Note TeX directory structure: TeX directory structure, for a description of the default arrangement of the input files that comprise -the TeX system. The file `kpathsea/HIER' is a copy of that section. +the TeX system. File: kpathsea.info, Node: Default path generation, Prev: Default path features, Up: Changing search paths @@ -4215,8 +4215,6 @@ Index * hash table routines: Calling sequence. (line 112) * hash_summary_only variable for debugging: Debugging. (line 105) * help, mailing list for general TeX: Mailing lists. (line 25) -* HIER: Default path features. - (line 41) * history of Kpathsea: History. (line 6) * home directories in paths: Tilde expansion. (line 6) * HOME, as ~ expansion: Tilde expansion. (line 6) @@ -4263,8 +4261,6 @@ Index (line 6) * kpathsea.h: Programming overview. (line 24) -* kpathsea/HIER: Default path features. - (line 41) * kpathsea/README.CONFIGURE: Running configure. (line 15) * kpathsea_cnf_get: Programming with config files. (line 23) @@ -4654,14 +4650,18 @@ Index (line 204) * tcfmgr.map: Specially-recognized files. (line 47) -* TDS: TeX directory structure. +* TDS <1>: TeX directory structure. (line 6) +* TDS: Default path features. + (line 41) * testing, post-installation: Installation testing. (line 6) * tests, simple: Simple installation. (line 79) * teTeX: Other TeX packages. (line 13) -* TeX directory structure: TeX directory structure. +* TeX directory structure <1>: TeX directory structure. (line 6) +* TeX directory structure: Default path features. + (line 41) * TeX distributions besides Web2c: Other TeX packages. (line 6) * TeX environment variables: Supported file formats. (line 6) @@ -4855,76 +4855,76 @@ Node: Disk space13713 Node: Kpathsea application distributions14597 Node: Changing search paths15712 Node: Default path features16894 -Node: Default path generation19030 -Node: Running configure20473 -Node: configure shells21524 -Node: configure options22576 -Node: configure environment24083 -Node: configure scenarios25885 -Node: Shared library27471 -Node: Running make28485 -Node: Installing files30532 -Node: Cleaning up32479 -Node: Filename database generation33527 -Node: mktex scripts34094 -Node: mktex configuration35371 -Node: mktex script names41190 -Node: mktex script arguments42581 -Node: Installation testing43471 -Node: Security43835 -Node: TeX directory structure46402 -Node: unixtex.ftp50824 -Node: Electronic distribution52834 -Node: CD-ROM distribution55599 -Node: Other TeX packages56414 -Node: Reporting bugs57710 -Node: Bug checklist58445 -Node: Mailing lists62142 -Node: Debugging63351 -Node: Logging68429 -Node: Common problems70299 -Node: Unable to find files71130 -Node: Slow path searching73541 -Node: Unable to generate fonts74918 -Node: TeX or Metafont failing77427 -Node: Empty Makefiles79306 -Node: XtStrings80536 -Node: dlopen81372 -Node: ShellWidgetClass82190 -Node: Pointer combination warnings83822 -Node: Path searching84211 -Node: Searching overview84858 -Node: Path sources88254 -Node: Config files89325 -Node: Path expansion92970 -Node: Default expansion93919 -Node: Variable expansion95989 -Node: Tilde expansion97392 -Node: Brace expansion98372 -Node: KPSE_DOT expansion99477 -Node: Subdirectory expansion99990 -Node: Filename database102341 -Node: ls-R103395 -Node: Filename aliases106289 -Node: Database format107467 -Node: Invoking kpsewhich108480 -Node: Path searching options109425 -Node: Specially-recognized files117086 -Node: Auxiliary tasks118442 -Node: Standard options120267 -Node: TeX support120587 -Node: Supported file formats121878 -Node: File lookup129394 -Node: Glyph lookup131126 -Node: Basic glyph lookup132250 -Node: Fontmap133129 -Node: Fallback font135746 -Node: Suppressing warnings136659 -Node: Programming137764 -Node: Programming overview138277 -Node: Calling sequence140971 -Node: Program-specific files147494 -Node: Programming with config files148536 -Node: Index149848 +Node: Default path generation18977 +Node: Running configure20420 +Node: configure shells21471 +Node: configure options22523 +Node: configure environment24030 +Node: configure scenarios25832 +Node: Shared library27418 +Node: Running make28432 +Node: Installing files30479 +Node: Cleaning up32426 +Node: Filename database generation33474 +Node: mktex scripts34041 +Node: mktex configuration35318 +Node: mktex script names41137 +Node: mktex script arguments42528 +Node: Installation testing43418 +Node: Security43782 +Node: TeX directory structure46349 +Node: unixtex.ftp50771 +Node: Electronic distribution52781 +Node: CD-ROM distribution55546 +Node: Other TeX packages56361 +Node: Reporting bugs57657 +Node: Bug checklist58392 +Node: Mailing lists62089 +Node: Debugging63298 +Node: Logging68376 +Node: Common problems70246 +Node: Unable to find files71077 +Node: Slow path searching73488 +Node: Unable to generate fonts74865 +Node: TeX or Metafont failing77374 +Node: Empty Makefiles79253 +Node: XtStrings80483 +Node: dlopen81319 +Node: ShellWidgetClass82137 +Node: Pointer combination warnings83769 +Node: Path searching84158 +Node: Searching overview84805 +Node: Path sources88201 +Node: Config files89272 +Node: Path expansion92917 +Node: Default expansion93866 +Node: Variable expansion95936 +Node: Tilde expansion97339 +Node: Brace expansion98319 +Node: KPSE_DOT expansion99424 +Node: Subdirectory expansion99937 +Node: Filename database102288 +Node: ls-R103342 +Node: Filename aliases106236 +Node: Database format107414 +Node: Invoking kpsewhich108427 +Node: Path searching options109372 +Node: Specially-recognized files117033 +Node: Auxiliary tasks118389 +Node: Standard options120214 +Node: TeX support120534 +Node: Supported file formats121825 +Node: File lookup129341 +Node: Glyph lookup131073 +Node: Basic glyph lookup132197 +Node: Fontmap133076 +Node: Fallback font135693 +Node: Suppressing warnings136606 +Node: Programming137711 +Node: Programming overview138224 +Node: Calling sequence140918 +Node: Program-specific files147441 +Node: Programming with config files148483 +Node: Index149795 End Tag Table |