Slackbuilds.org is pretty amazing

Created: 2023-03-05

Back to my Slackware pages

Cool, I am now the maintainer of four packages on slackbuilds.org!

It’s the Hare programming language compiler and all dependencies to bootstrap the compiler from C source:

That last package just adds a single leap-seconds.list file, which is part of the tz/zoneinfo database. Wild stuff and a very deep rabbit hole once you start reading about it.

(There’s also a fifth dependency, scdoc, which is used to generate man pages, but a package for that was already on slackbuilds.org, yay!)

But this page isn’t to crow about having successfully created these packages.

It’s about how deeply impressed I am with the dedicated volunteer team at slackbuilds.org.

Not only did they thank me for my submissions, they pointed out a couple minor problems they had corrected (a README line too long, for example) and requested that I update any local repos to match theirs.

To lint, verify, and vet dozens of packages (and updates) every week, including unsolicited submissions like mine takes a really special kind of stamina.

So thank you volunteer slackbuilds.org maintainers! You make Slackware great for the rest of us.

Also, thanks to my (now) fellow package submitters. I’ve been benefitting from your volunteer work for years.

But enough about them, now back to me:

Installing the Hare compiler from source (and all four dependency packages in the correct order) for Slackware with the sbopkg (sbopkg.org) tool is now as easy as:

# sbopkg -r      # updated local SBo repository
# sqg -p hare    # generate sbopkg queue file
# sbopkg -i hare

Output:

+++++++++++++++++++++++++++++++++++++++++++
SUMMARY LOG
Using the SBo repository for Slackware 15.0
Queue Process:  Download, build, and install

tzleap:
  MD5SUM check for leap-seconds.list ... OK
  Building package tzleap-2022g-noarch-1_SBo.tgz ... OK
  Installing package tzleap-2022g-noarch-1_SBo.tgz ... OK

scdoc:
  MD5SUM check for 1.11.2.tar.gz ... OK
  Building package scdoc-1.11.2-x86_64-1_SBo.tgz ... OK
  Installing package scdoc-1.11.2-x86_64-1_SBo.tgz ... OK

qbe:
  MD5SUM check for qbe-1.1.tar.xz ... OK
  Building package qbe-1.1-x86_64-1_SBo.tgz ... OK
  Installing package qbe-1.1-x86_64-1_SBo.tgz ... OK

harec:
  MD5SUM check for b95dcfd0ca8d599c406415236329020fb31c72e4.tar.gz ... OK
  Building package harec-20230225-x86_64-1_SBo.tgz ... OK
  Installing package harec-20230225-x86_64-1_SBo.tgz ... OK

hare:
  MD5SUM check for 1cbc3d0453055fa75b15797e937f4abafe53bcbc.tar.gz ... OK
  Building package hare-20230225-x86_64-1_SBo.tgz ... OK
  Installing package hare-20230225-x86_64-1_SBo.tgz ... OK

+++++++++++++++++++++++++++++++++++++++++++

###########################################
          Queue process complete!
###########################################

But does it actually work?

$ cat > hello.ha
use fmt;

export fn main() void = {
    fmt::println("Hello world!")!;
};

$ hare run hello.ha
Hello world!

Oh, you know what? I’m also deeply impressed with the QBE and Hare developers for creating a tiny bootstrapping compiler that can be created from source in a matter of minutes on a low-power laptop!