TeX Live for *Open*BSD ====================== Contents -------- - [Current Release](#2024-release) - [Running TeX Live in OpenBSD](#running-tex-live-in-openbsd) - [TeX Live for OpenBSD at Utah](#tex-live-for-openbsd-at-utah) - [Installing TeX Live on OpenBSD With Ready-to-Use Binaries](#installing-tex-live-on-openbsd-with-ready-to-use-binaries) - [Updating the Binaries Over the Course of the Year](#updating-the-binaries-over-the-course-of-the-year) - [Package Installation and Updates](#package-installation-and-updates) - [Building the Sources](#building-the-sources) - [Acknowledgements](#acknowledgements) 2024 Release ------------ [Updated April 6, 2024] At the time of writing, TeX Live for OpenBSD is meant for the [2024 release of TeX Live](https://tug.org/texlive), and will always run on both -stable and -current versions of OpenBSD. The TeX Live 2024 binaries are available for the following versions of OpenBSD: 1. 7.4 2. 7.5 3. 7.5-current Running TeX Live in OpenBSD --------------------------- There are two ways of using TeX Live in OpenBSD. 1. From ports. TeX Live is available in variety of “schemes” to wit different sets of package collections, of which a list can be found on [openports.pl](https://openports.pl/search?file=&pkgname=texlive).[^1] 2. By installing the “native” TeX Live over the internet, as described on [its home page](https://tug.org/texlive). This latter method facilitates the installation of new packages and the updating of existing ones. However, the binaries for OpenBSD are not currently part of the official TeX Live distribution. The reason for this is that the TeX Live binaries are published once a year while the OpenBSD system undergoes two updates a year. This page provides an easy way to build one's own TeX Live binaries for OpenBSD—either -stable or -current—through a simple script which is nothing but an adapted version of the one used to build TeX Live for the supported systems.[^2] Furthermore, *TeX Live for OpenBSD* provides ready-to-use binary sets for those who do not wish to compile their own. In addition to the standard binaries supported by TeX Live, TeX Live for OpenBSD provides the following: - xindy - LuaMetaTeX (ConTeXt) - asymptote biber will soon be added to this list. ### TeX Live for OpenBSD at Utah By far the most abundant source of documentation on TeX Live builds for a large number of systems is Nelson Beebe's work at Utah. It can be found here: . From this url, the binaries for OpenBSD are located in the [`bin/`](https://ftp.math.utah.edu/pub/texlive-utah/bin) subdirectory. Look for `amd64-openbsd*.tar.xz`. the build for 7.4 was done with the `gcc-11` compilers. The one for 7.5 is done with the `gcc-8.4.0` compilers which are widely used to build most OpenBSD ports. The binaries available here are made with `clang`, which is the base system compiler. Installing TeX Live on OpenBSD with ready-to-use binaries --------------------------------------------------------- Please read first the reference page on this matter: . 1. Requirements: - curl - gpg - xz - p5-Tk 2. Acquire `install-tl-unx.tar.gz` from CTAN as described [on this page](https://tug.org/texlive/acquire-netinstall.html). - do: ```sh zcat < install-tl-unx.tar.gz | tar xf - ``` - do: (Replace with the actual date.) ```sh cd install-tl- ``` 3. Import the public key used to sign the archive: ```sh gpg --keyserver hkps://keys.openpgp.org --recv 1773E9248085C8C7 ``` The GPG public key used to sign the archives [can also be retrieved here](https://git.sr.ht/~ralessi/texlive-openbsd/blob/master/alessi.asc). (You can view the contents with `gpg --show-keyring`, or `gpg --list-options show-keyring` depending on your gpg version.) 4. Clone this git repository and fetch the binaries: ```sh git clone https://git.sr.ht/~ralessi/texlive-openbsd cd texlive-openbsd make fetch ``` or ```sh git clone https://git.robertalessi.net/texlive-openbsd cd texlive-openbsd make fetch ``` 5. TeX Live can be installed as root or as a normal user. Make a decision, then do: ```sh cd .. ``` and proceed with the installation, as per the instructions displayed on the terminal. 6. Post-install actions. (What follows assumes that the installation has been performed as root. Adapt.) At the end of the installation, the script offers to create environment variables. Say no, then: 1. Edit root's `.profile` file and add the path to the binaries, like so (replace here and below `` with the actual year): ```sh # insert this line: TLBIN=/usr/local/texlive//bin/custom # modify this line like so: PATH=/sbin:/usr/sbin:/bin:/usr/bin:/usr/X11R6/bin:$TLBIN:/usr/local/sbin:/usr/local/bin ``` Make sure to insert `$TLBIN` *before* `/usr/local/bin`. Then do the same in other users' `.profile` files. 2. Edit `/etc/man.conf` (copy `/etc/examples/man.conf` to `/etc` if this file doesn't exist) and add the manpath to TL man files, like so: ``` manpath /usr/share/man manpath /usr/X11R6/man manpath /usr/local/man manpath /usr/local/texlive//texmf-dist/doc/man ``` 3. Symlink `texlive-fontconfig.conf` file to `/etc/fonts/conf.d/09-texlive.conf` and update the font cache: ```sh cd /etc/fonts/conf.d ln -sf /usr/local/texlive//texmf-var/fonts/conf/texlive-fontconfig.conf 09-texlive.conf fc-cache -fsv ``` 4. Symlink `/usr/local/texlive//bin/custom` to `/usr/local/texlive//bin/amd64-openbsd`: ```sh cd /usr/local/texlive//bin/custom ln -s custom amd64-openbsd ``` 7. Reboot and enjoy TeX Live on OpenBSD! ### All by hand Direct link to the binaries: . Updating the binaries over the course of the year ------------------------------------------------- The requirements are the same as above. (Make sure you already have imported the public key used to sign the archives.) 1. Go to the directory where the texlive-openbsd git repository was cloned, then do: ```sh git pull make ``` 2. Proceed as per the instructions displayed on the terminal. Alternatively, the direct link to the binaries provided above can be used. Package installation and updates -------------------------------- To install new packages and to update already existing ones, do: ```sh tlobsd tlmgr update --all ``` This command requires the `subversion` package. In TeX Live for OpenBSD, `tlobsd tlmgr` replaces the standard `tlmgr` command which is the command name of TeX Live package manager. `tlobsd tlmgr` can be used with the exact same options and arguments as `tlmgr`. More information can be found [on this page](https://tug.org/texlive/pkginstall.html) or in the [full `tlmgr` documentation](https://tug.org/texlive/doc/tlmgr.html). `tlobsd tlmgr` updates the links to a number of scripts that are shipped within TeX Live and are found in the `texmf-dist/scripts/` directory. Most of them can be invoked by users from symlinks installed along with the usual TeX Live binaries. As OpenBSD is not officially supported by TeX Live, it is important to note that the standard `tlmgr update --all` *does not update these links,* especially in the case of scripts that come with new packages. Users who for some reason wish to continue using `tlmgr` are advised to update all existing links and install new links after using `tlmgr`, like so: ```sh tlobsd mksymlinks ``` Just as `tlobsd tlmgr`, this command requires the `subversion` package. Building the sources -------------------- ### References - General information: - Building GNU CLISP for xindy: ### Requirements - For texlive - git - gmake - rsync - subversion - wget - curl - For context: - cmake - ninja - For asymptote: - readline - freeglut - eigen3 - py3-cson, py3-qt5 and py3-numpy (run dependencies for `xasy`) ### Getting the sources ```sh ./checkout-tl.sh ``` ### Building ```sh ./tl-build.sh ``` Acknowledgements ---------------- Special thanks go to the following people for their work and kind advice: Karl Berry, Nelson H. F. Beebe, Norbert Preining and Mojca Miklavec. Notes ----- [^1]: More information on how TL is built for OpenBSD here: [^2]: See . The `Build` script can be found here: .