THE WRITER MUST EAT -> patreon.com/trn1ty <-

| \    |   | blah!
|\ | `\|\  | the rantings and ravings
|/ |(_|| | * of a depraved lunatic

<^>

2023-10-21

: fuck unrar

I run Chimera Linux, an Alpine-based operating system still in its very early
stages but stable enough that I trust it for my meager, mostly console and X11
based workflow. It can run a C compiler, so good enough for me. The only issue
is, despite being based on Alpine, a popular operating system not for desktop
but for embedded environments like containers, for which a lot of software is
packaged and available in system repositories, Chimera does not have a lot of
packages. I'm going to package UNRAR, a non-free ("freeware") tool that has no
dependencies aside from the C++ standard library, to get a feel for Alpine
packaging.

UNRAR is an almost delightful little tool with the unfortunate, heinous problem
of being non-free, and its license forbidding the use of the provided source
code for reimplementation - otherwise I would just rewrite it in sane C89
without encumbrence. But we don't need to read the source code in order to
compile the C++.

The Alpine Wiki section on Creating an Alpine package says to apk add
alpine-sdk but Chimera has no such thing so hopefully that's fine. It says to
check out the aports tree but I don't want to put my packages upstream (dealing
with large software projects is tiresome and I know Chimera is in a constant
state of flux).

I did this:

# mkdir -p /var/cache/distfiles
# chmod a+w /var/cache/distfiles

I now need abuild-keygen according to the wiki but it isn't installed.
$ apk search abuild-keygen
pulled up nothing. Nor did a package contents search. Maybe it's fine? On a
whim I searched cbuild* in the contents search and found apk:base-cbuild-progs.
# apk add base-cbuild-progs
(1/1) Installing base-cbuild-progs (0.1-r2)
OK: 2083 MiB in 896 packages

On the Chimera Linux website I found the Chimera-specific packaging stuff.
There is a cports repository with Packaging.md but it's kind of long so I'll
use it as a reference while following the less complete Alpine guide. This is
the rat bastard approach to software but I am doing this for my own uses and
for pleasure and I don't wanna spend five hours contributing to this project
right now because I am tired.

I need newapkbuild but don't have it so I'll try to find the default template
on-line or go off an existing thingy.

I found contrib/jq/template.py so I'll copy that.

pkgname = "unrar"

What's the pkgver?

$ cd /usr/local/src/unrar
-sh: 5: cd: can't cd to /usr/local/src/unrar
$ cd /usr/local/src
$ ls
$ 
Connection to tebibyte.media closed.
; # oops
; cd /usr/local/src/unrar
; cat version.hpp
#define RARVER_MAJOR     6
#define RARVER_MINOR    24
#define RARVER_BETA      1
#define RARVER_DAY      17
#define RARVER_MONTH     9
#define RARVER_YEAR   2023
# apk del qemu-system-x86_64

<^>

No rights reserved, all rights exercised, rights turned to lefts, left in this
corner of the web.