Commit Briefs

Dhruvin Gandhi

ci: remove sourcehut build manifest (main)


Dhruvin Gandhi

feat: update guix to 1.4.0


Dhruvin Gandhi

ci: change the public key


Dhruvin Gandhi

ci: correct clean and remove sourcehut user


Dhruvin Gandhi

ci: move to /srv/www


Dhruvin Gandhi

ci: use sudo and correct service name


Dhruvin Gandhi

feat: add guix-binary-aarch64


Dhruvin Gandhi

fix(readme): correct the license link


Dhruvin Gandhi

docs: add readme


Dhruvin Gandhi

fix(ci): use self-hosted mirror


Branches


Tags

This repository contains no tags

Tree

.gitignorecommits | blame
.reuse/
LICENSES/
Makefilecommits | blame
README.mdcommits | blame
alguix/
alguix.rsa.pubcommits | blame

README.md

# alguix

Alpine Linux packages of GNU Guix.

## What is it

alguix is an alpine linux package repository, providing packages related to
guix package manager, hosted at https://mirror.dhruvin.dev/alpine/alguix

## Why did I make it

I contribute to both guix and alpine. I was looking for a way to bring guix
closer to alpine. I initially [tried to port
it](https://gitlab.alpinelinux.org/dhruvin/aports/-/tree/guix) to
alpine (`<arch>-unknown-linux-musl`). But I failed, sort of. guix compiles
nicely, but errors out a lot at runtime, since the target is not supported by
upstream.

What now? guix is self-contained. It should be easier to just *plop* it on any
linux distro. So I just did that. For now, alguix, the repository, contains
`guix-binary` package that has all necessary runtime dependencies of guix to be
able to run on alpine linux. Including, well I'm just gonna say it, glibc.

I can now peacefully develop packages for guix on alpine. What an abomination!

### Why did I really make it

Because I just wanted to experiment with hosting my own alpine package
repository. How did it go? Pretty well.

## How to use it

1. Download the signing key to `/etc/apk/keys`:

	```shell
	doas wget -qO \
		/etc/apk/keys/alguix.rsa.pub \
		"https://mirror.dhruvin.dev/alpine/alguix/alguix.rsa.pub"
	```

2. Add the repository to `/etc/apk/repositories`:

	```shell
	echo "https://mirror.dhruvin.dev/alpine/alguix" \
		| doas tee -a /etc/apk/repositories \
		> /dev/null
	```

3. Update and install `guix-binary`:

	```shell
	doas apk update \
		&& doas apk add guix-binary
	```

4. Start `guix-daemon`:

	```shell
	doas rc-service guix-daemon start
	```

5. Optionally, add `guix-daemon` to default runlevel:

	```shell
	doas rc-update add guix-daemon default
	```

6. Optionally, enable `https://ci.guix.gnu.org` substitute server:

	```
	doas guix archive --authorize < \
	     /var/guix/profiles/per-user/root/current-guix/share/guix/ci.guix.gnu.org.pub
	```

7. Optionally, follow steps in the [Application
   Setup](https://guix.gnu.org/manual/en/html_node/Application-Setup.html)
   guide.

## License

[GPL-3.0-or-later](LICENSES/GPL-3.0-or-later.txt)