Linux

Here you can find information about my engagements with Linux, and about software I package for Linux, especially for Arch Linux. If you have any questions, please contact me at me@xuanruiqi.com. You can also find me on the Arch Linux Forums.

Arch Linux Packages

I maintain a few unofficial software packages for Arch Linux, including a package for the CompCert verified C compiler, and the SML# programming language and compiler. The PKGBUILDs can be found on the Arch User Repository (AUR). You can see a list of all packages I maintain here.

I also maintain an unofficial repository of pre-built1 AUR packages at https://arch.xuanruiqi.com/repo/, mainly of interest to functional programmers and formal methods practitioners. You should follow the instructions on the Arch Wiki, and add the following to your pacman.conf:

[xuanrui]
Server = https://arch.xuanruiqi.com/repo/

The main repository is hosted on Keybase, as a Keybase Pages static site. There are also mirrors located at the Graduate School of Mathematics, Nagoya University (https://www.math.nagoya-u.ac.jp/~x18004y/repo/), and at the Department of Computer Science, Tufts University (https://www.cs.tufts.edu/~xqi01/repo/).

You will also need to add my key to the pacman keyring and sign it:

# pacman-key --recv-keys 6E06FBC8
# pacman-key --lsign-key 6E06FBC8

It is assumed that you have a very up-to-date system. Otherwise. my repository will not work properly for you and you will get weird errors. For example, I have zst-compressed packages in my repository, and the database itself is also zst-compressed, so you must have the latest pacman with the zst compression/decompression tool (which you should have anyways to be running on latest Arch). Moreover, everything Python will only work with the latest Python, due to how the Arch Linux packaging system works.

1: my compilation flags are a bit more aggressive that the defaults set by Arch, but they should be completely safe. To be more specific, I use -O3 -fomit-frame-pointer instead of the default -O2. Also, I use -mtune=native and my main working machine is a relatively new AMD Ryzen 5, so if you run an old CPU (or an Intel CPU), there could be performance issues but it shouldn't really matter.