miktex-kiss-repo

KISS Linux repo for MiKTeX
git clone git://bvnf.space/miktex-kiss-repo.git
Log | Files | Refs | README | LICENSE

README.md (3774B)


      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
# miktex-kiss-repo

This is a repository which provides all the necessary dependencies to build
the MiKTeX distribution of TeX (other dependencies are in the official repos).
It worked but I'm no longer maintaining it, so you may wish to bump version
numbers etc.

MiKTeX provides a package manager which can install packages as they are needed
at compilation time ("on-the-fly"), which helps to keep the installed size
small(er).

NOTE: TeX Live, another TeX distribution, has also been packaged for KISS.

## NEWS

### MiKTeX 21.6.28
The latest release of MiKTeX uses a C++ class which is not implemented for Linux
(yet). See the issue [here].

**Fixed with latest release (21.7)**

### log4cxx
log4cxx 0.12.0 has been released upstream, including some changes to the version
of C++ being used, and MiKTeX's build is currently incompatible with it (see the 
[issue upstream]).
Therefore, log4cxx has not been updated (yet).

**This seems to be fixed now. log4cxx has been updated and it all builds for me.**

### gettext-tiny
This package of MiKTeX now uses [gettext-tiny] instead of gettext. This is much
more lightweight than the GNU version, weighing in at 340 kB compared to 19 MB.
Of course, it is less featureful.

## Installation

To use, clone the repo and add it to `KISS_PATH`, then run:
```
$ cd boost && kiss b
```
This builds the version of boost from this repo, which includes locale support. (Keep
that in mind when a boost update comes along - or put this repo earlier in `KISS_PATH`
than the community repo.
By the way, I really do intend to patch out all the locale requirements from MiKTeX.
One day.

Next,
```
$ kiss b graphite-harfbuzz
```
This will take a moment, then print a message telling you to run
`kiss alternatives`. MiKTeX needs the harfbuzz font libraries to be built with
graphite support, so now run:
```
$ kiss a | grep graphite-harfbuzz | kiss a -
```
to switch the necessary libraries to include graphite support.
Now, you can sit back and run
```
$ kiss b miktex
```
This might take a while.

## Finish setup

After installing, you need to complete the setup.
MiKTeX can be installed either

* for all users on your system, in which case you'll need root privileges;
* or just for your own user.

If installing user-wide, every command must be run as root (ie. use 
`sudo`, `doas`, or similar) and with the `--admin` flag.
Otherwise, omit these and run as a normal user. I'm going to give the commands
as to install MiKTeX for the whole system.

```
# mpm --admin --update-db
```

Enable on-the-fly package installation: (this is optional)
```
# initexmf --admin --set-config-value [MPM]AutoInstall=1
# initexmf --admin --update-fndb
```

Create symlinks to executables (such as `pdflatex`):
```
# initexmf --admin --mklinks
```

Install basic packages and fonts to `/usr/local/share`:
```
# mpm --admin --verbose --package-level=basic --upgrade
# initexmf --admin --mkmaps
# initexmf --admin --update-fndb
```

Finally, update the databases (you'll probably have to run these two several times)
```
# mpm --admin --update
$ mpm --update
```

Test compiling a sample document: (this will download some packages
if you enabled on-the-fly package installation)
```
$ pdflatex sample2e
```

## Troubleshooting

If anything fails, it's probably a network error, so try again.
Your first check should be the error logs (MiKTeX will tell you where
to find them).

Check the documentation at <https://miktex.org/howto/build-unx>.

The output of `initexmf --report`, both with and without
root privileges and `--admin`, may be useful.

Feel free to open an issue.

[gettext-tiny]: https://github.com/sabotage-linux/gettext-tiny
[issue upstream]: https://github.com/MiKTeX/miktex/issues/817
[here]: https://github.com/MiKTeX/miktex/issues/860