miktex-kiss-repo

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

README.md (3751B)


      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
# 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 works, but I intend to try to remove more of the dependencies.

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