My personalized Arch Linux distribution https://arch.p1st.de
Go to file
2021-05-25 22:01:48 +02:00
pkg btrfs: use zstd:1 compression 2021-05-25 22:01:48 +02:00
prototype add htop pkg; fix locale? 2021-05-13 15:44:02 +00:00
.dockerignore Build packages with Docker 2021-05-13 13:44:34 +00:00
.gitignore Build packages with Docker 2021-05-13 13:44:34 +00:00
build-archiso.sh arch-repo: list VCS packages 2021-05-24 15:09:45 +02:00
build-pkg-docker.sh minor 2021-05-14 14:27:39 +02:00
build-pkg.sh minor 2021-05-14 14:27:39 +02:00
docker-compose.yml update build container 2021-05-14 12:59:53 +02:00
Dockerfile add htop pkg; fix locale? 2021-05-13 15:44:02 +00:00
LICENSE add htop pkg; fix locale? 2021-05-13 15:44:02 +00:00
README.md minor 2021-05-22 13:48:59 +02:00
run.sh update build container 2021-05-14 12:59:53 +02:00

My personalized Arch Linux packages

Build packages from source

Fork this repository.

Then and adjust the following files:

  • pkg/de-p1st-repo/arch-repo.cfg
    • For your build-machine, adjust section LOCAL MACHINE CONFIGURATION: Add absolute path of folder ./out to array LOCAL_PKG_DIRS as the build packages will be stored there.
    • For your mirror-server, adjust section REMOTE MIRROR SERVER CONFIGURATION accordingly.
  • pkg/de-p1st-pacman/pacman.d/de-p1st
    • Add the address of your mirror-server.

Build de-p1st-repo ...

sudo docker-compose run makepkg de-p1st-repo

... and install it on your build-machine and your mirror-server:

# on your local machine
sudo pacman -U out/de-p1st-repo*.pkg.tar.*

# copy the package to your mirror-server and install it there as well

Then you can start building all packages and adding them to your mirror-server:

./build-pkg-docker.sh

Some notes on arch (meta-)package management

Managing custom packages; managing a remote repository

  1. One could use crema
  2. Or some self-made shell scripts: pkg/de-p1st-repo/README.md

Notes about PKGBUILD

Package naming

Package names are prefixed with de-p1st as this is one of my domains (p1st.de) which itself is an abbreviation of privacy1st.de

Creating config files

install -Dm644 $src $pkgdir/$dst

Example: pkg/de-p1st-sudo/PKGBUILD

Changing existing config files

install -Dm0544 some-config.conf.holoscript "$pkgdir"/usr/share/holo/files/"$pkgname"/etc/path/to/some-config.conf.holoscript

Example:

Changing config files that are not owned by any package

See pkg/de-p1st-locale/PKGBUILD for an example.

Home skeleton

Pacman should never change files in $HOME. To still be able to include customized configurations, one can copy them to the skeleton used for new users:

Files from /etc/skel are copied to /home/$USER when new users are created.

Example: pkg/de-p1st-gnupg/PKGBUILD

Enabling services

Note: the preset name shall start with a two-digit number < 99.

install -Dm0644 systemd.preset "$pkgdir"/usr/lib/systemd/system-preset/20-"$pkgname".preset

Example package:

Multiple providers

Example:

  • Two packages (de-p1st-test2 and de-p1st-test3) provide de-p1st-test
  • If one installs de-p1st-test he can interactively choose one which provider to select:
$ sudo pacman -S de-p1st-test
:: There are 2 providers available for de-p1st-test:
:: Repository de-p1st
   1) de-p1st-test2  2) de-p1st-test3

Enter a number (default=1): 

TODO: