mirror of
https://codeberg.org/privacy1st/arch
synced 2024-12-23 01:16:04 +01:00
improve README; minor;
This commit is contained in:
parent
14b9dd7701
commit
91369b04a0
145
README.md
145
README.md
@ -1,10 +1,12 @@
|
||||
# My personalized Arch Linux packages
|
||||
|
||||
## Submodules
|
||||
## Submodules - Initialization and Updating
|
||||
|
||||
There are several AUR packages added as submodules inside [pkg](pkg).
|
||||
See [build-pkg/pkglist-AUR.txt](build-pkg/pkglist-AUR.txt) for a full list.
|
||||
|
||||
They were added in the following manner:
|
||||
|
||||
```shell
|
||||
AUR=(xorg-meta riseup-vpn nordic-kde-git ...)
|
||||
|
||||
@ -13,11 +15,7 @@ for pkg in "${AUR[@]}"; do
|
||||
done
|
||||
```
|
||||
|
||||
Notes:
|
||||
* `qt-installer-framework` does currently not build (the docs fail :/):
|
||||
* https://aur.archlinux.org/pkgbase/qt-installer-framework/#comment-813127
|
||||
|
||||
To init the submodules, run
|
||||
To initialize the submodules, run
|
||||
|
||||
```shell
|
||||
git submodule init
|
||||
@ -29,6 +27,7 @@ To update all submodules, run
|
||||
git submodule update --remote
|
||||
```
|
||||
|
||||
|
||||
## Build packages from source
|
||||
|
||||
Fork this repository.
|
||||
@ -41,20 +40,20 @@ Then and adjust the following files:
|
||||
* [pkg/de-p1st-pacman/pacman.d/de-p1st](pkg/de-p1st-pacman/pacman.d/de-p1st)
|
||||
* Add the address of your mirror-server.
|
||||
|
||||
Build [de-p1st-repo](pkg/de-p1st-repo) ...
|
||||
Build [de-p1st-repo](pkg/de-p1st-repo):
|
||||
|
||||
```shell
|
||||
cd build-pkg
|
||||
sudo docker-compose run --rm makepkg de-p1st-repo
|
||||
```
|
||||
|
||||
... and install it on your build-machine and your mirror-server:
|
||||
Install it on your build-machine and your mirror-server:
|
||||
|
||||
```shell
|
||||
# on your local machine
|
||||
# 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
|
||||
# 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:
|
||||
@ -64,129 +63,11 @@ Then you can start building all packages and adding them to your mirror-server:
|
||||
```
|
||||
|
||||
|
||||
## Some notes on arch (meta-)package management
|
||||
## Installing Arch Linux
|
||||
|
||||
* https://disconnected.systems/blog/archlinux-meta-packages/
|
||||
* https://nerdstuff.org/posts/2020/2020-002_meta_packages/
|
||||
|
||||
* https://gitlab.com/archi3linux/meta/-/blob/master/PKGBUILD
|
||||
* https://github.com/alfredopalhares/arch-pkgbuilds
|
||||
See [pkg/de-p1st-installer/README.md](pkg/de-p1st-installer/README.md)
|
||||
|
||||
|
||||
### Managing custom packages; managing a remote repository
|
||||
|
||||
1) One could use [crema](https://gitlab.com/mipimipi/crema)
|
||||
2) Or some self-made shell scripts: [pkg/de-p1st-repo/README.md](pkg/de-p1st-repo/README.md)
|
||||
|
||||
|
||||
## Notes about PKGBUILD
|
||||
|
||||
### Package naming
|
||||
|
||||
* [package naming](https://wiki.archlinux.org/index.php/Arch_package_guidelines#Package_naming)
|
||||
|
||||
Package names are prefixed with `de-p1st` as this is one of my
|
||||
domains ([p1st.de](https://p1st.de)) which itself is an abbreviation of
|
||||
[privacy1st.de](https://privacy1st.de)
|
||||
|
||||
### Creating config files
|
||||
|
||||
```shell
|
||||
install -Dm644 $src $pkgdir/$dst
|
||||
```
|
||||
|
||||
Example: [pkg/de-p1st-sudo/PKGBUILD](pkg/de-p1st-sudo/PKGBUILD)
|
||||
|
||||
### Changing existing config files
|
||||
|
||||
* `holo` from the AUR
|
||||
* [https://github.com/holocm/holo/blob/master/doc/holo-files.8.pod]()
|
||||
|
||||
```shell
|
||||
install -Dm0544 some-config.conf.holoscript "$pkgdir"/usr/share/holo/files/"$pkgname"/etc/path/to/some-config.conf.holoscript
|
||||
```
|
||||
|
||||
Example:
|
||||
* [pkg/de-p1st-pacman/pacman.conf.holoscript](pkg/de-p1st-pacman/pacman.conf.holoscript)
|
||||
* [pkg/de-p1st-pacman/PKGBUILD](pkg/de-p1st-pacman/PKGBUILD)
|
||||
|
||||
### Changing config files that are not owned by any package
|
||||
|
||||
See [pkg/de-p1st-locale/PKGBUILD](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](pkg/de-p1st-gnupg/PKGBUILD)
|
||||
|
||||
### Enabling services
|
||||
|
||||
* systemd.preset - Service enablement presets
|
||||
* [man 5 systemd.preset](https://www.systutorials.com/docs/linux/man/5-systemd.preset/)
|
||||
|
||||
**Note**: the preset name shall start with a two-digit number < 99.
|
||||
|
||||
```shell
|
||||
install -Dm0644 systemd.preset "$pkgdir"/usr/lib/systemd/system-preset/20-"$pkgname".preset
|
||||
```
|
||||
|
||||
Example package:
|
||||
* [pkg/de-p1st-networkmanager/systemd.preset](pkg/de-p1st-networkmanager/systemd.preset)
|
||||
* [pkg/de-p1st-networkmanager/PKGBUILD](pkg/de-p1st-networkmanager/PKGBUILD)
|
||||
|
||||
**Note**:
|
||||
|
||||
Running `systemctl preset-all` resets all installed unit files to the defaults configured in the preset policy files.
|
||||
|
||||
This implies: **All manual changes** such as `systemctl enable serviceXYZ` will get lost!
|
||||
|
||||
To avoid this, enable your services with systemd-presets!
|
||||
|
||||
```shell
|
||||
echo 'enable NetworkManager.service' | sudo tee -a /usr/lib/systemd/system-preset/20-custom.preset
|
||||
sudo systemctl preset-all
|
||||
```
|
||||
|
||||
### 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**:
|
||||
* How does Pacman pick the default option? Are packages simply
|
||||
ordered alphabetically?
|
||||
|
||||
* split up the "base" package:
|
||||
* base-headless (no fonts required)
|
||||
* base-graphical (depends on base-headless)
|
||||
* remove "de-p1st-grub" from base
|
||||
* just one "base" package for both: BIOS and (U)EFI installation!
|
||||
|
||||
* installer: support BIOS boot mode
|
||||
* installer: Option to disable full disk encryption
|
||||
|
||||
* for each PKG: built with docker then sign wit pgp
|
||||
* signed package db
|
||||
* build for multiple architectures
|
||||
* https://ownyourbits.com/2018/06/27/running-and-building-arm-docker-containers-in-x86/
|
||||
* https://ownyourbits.com/2018/06/27/running-and-building-arm-docker-containers-in-x86/#comment-19124
|
||||
|
||||
* de-p1st-pacman -> ungoogled-chromium
|
||||
* https://github.com/ungoogled-software/ungoogled-chromium-archlinux#open-build-service-repository
|
||||
## Notes and TODOs
|
||||
|
||||
See [notes.md](notes.md)
|
@ -4,16 +4,17 @@
|
||||
|
||||
FROM archlinux:base-devel
|
||||
|
||||
# Add de-p1st mirror ...
|
||||
RUN printf '\n[de-p1st]\nSigLevel = Optional TrustAll\nServer = https://arch.p1st.de\n' >> /etc/pacman.conf
|
||||
# ... and update mirrors + packages
|
||||
RUN pacman -Syu --noconfirm && \
|
||||
# 1. Add de-p1st mirror
|
||||
# 2. Update mirrors + packages
|
||||
|
||||
RUN printf '\n[de-p1st]\nSigLevel = Optional TrustAll\nServer = https://arch.p1st.de\n' >> /etc/pacman.conf && \
|
||||
pacman -Syu --noconfirm && \
|
||||
pacman -S --noconfirm archiso openssh
|
||||
|
||||
# Set packager
|
||||
RUN sed --in-place 's|^#PACKAGER=.*$|PACKAGER="Daniel Langbein <daniel@systemli.org>"|' /etc/makepkg.conf
|
||||
# Store built packages in /out/
|
||||
RUN sed --in-place 's|^#PKGDEST=.*$|PKGDEST=/out|' /etc/makepkg.conf
|
||||
# 1. Set packager
|
||||
# 2. Store built packages in /out/
|
||||
RUN sed --in-place 's|^#PACKAGER=.*$|PACKAGER="Daniel Langbein <daniel@systemli.org>"|' /etc/makepkg.conf && \
|
||||
sed --in-place 's|^#PKGDEST=.*$|PKGDEST=/out|' /etc/makepkg.conf
|
||||
|
||||
# Create a normal user to build the ISO
|
||||
RUN useradd --create-home build
|
||||
|
@ -4,15 +4,18 @@
|
||||
|
||||
FROM archlinux:base-devel
|
||||
|
||||
# Add de-p1st mirror ...
|
||||
RUN printf '\n[de-p1st]\nSigLevel = Optional TrustAll\nServer = https://arch.p1st.de\n' >> /etc/pacman.conf
|
||||
# ... and update mirrors + packages
|
||||
RUN pacman -Syu --noconfirm
|
||||
# 1. Add de-p1st mirror
|
||||
# 2. Enable parallel downloads
|
||||
# TODO: Wait until next baseimage update
|
||||
# && sed --in-place 's|^#ParallelDownloads\s*=.*$|ParallelDownloads = 4|' /etc/pacman.conf \
|
||||
# 3. Update mirrors + packages
|
||||
RUN printf '\n[de-p1st]\nSigLevel = Optional TrustAll\nServer = https://arch.p1st.de\n' >> /etc/pacman.conf && \
|
||||
pacman -Syu --noconfirm
|
||||
|
||||
# Set packager
|
||||
RUN sed --in-place 's|^#PACKAGER=.*$|PACKAGER="Daniel Langbein <daniel@systemli.org>"|' /etc/makepkg.conf
|
||||
# Store built packages in /out/
|
||||
RUN sed --in-place 's|^#PKGDEST=.*$|PKGDEST=/out|' /etc/makepkg.conf
|
||||
# 1. Set packager
|
||||
# 2. Store built packages in /out/
|
||||
RUN sed --in-place 's|^#PACKAGER=.*$|PACKAGER="Daniel Langbein <daniel@systemli.org>"|' /etc/makepkg.conf && \
|
||||
sed --in-place 's|^#PKGDEST=.*$|PKGDEST=/out|' /etc/makepkg.conf
|
||||
|
||||
# Create a normal user to be used by makepkg
|
||||
RUN useradd --create-home build
|
||||
|
125
notes.md
Normal file
125
notes.md
Normal file
@ -0,0 +1,125 @@
|
||||
# Notes and TODOs
|
||||
|
||||
## Some notes on arch (meta-)package management
|
||||
|
||||
* https://disconnected.systems/blog/archlinux-meta-packages/
|
||||
* https://nerdstuff.org/posts/2020/2020-002_meta_packages/
|
||||
|
||||
* https://gitlab.com/archi3linux/meta/-/blob/master/PKGBUILD
|
||||
* https://github.com/alfredopalhares/arch-pkgbuilds
|
||||
|
||||
### Managing custom packages; managing a remote repository
|
||||
|
||||
1) One could use [crema](https://gitlab.com/mipimipi/crema)
|
||||
2) Or some self-made shell scripts: [pkg/de-p1st-repo/README.md](pkg/de-p1st-repo/README.md)
|
||||
|
||||
|
||||
## Notes about PKGBUILD
|
||||
|
||||
### Package naming
|
||||
|
||||
* [package naming](https://wiki.archlinux.org/index.php/Arch_package_guidelines#Package_naming)
|
||||
|
||||
Package names are prefixed with `de-p1st` as this is one of my
|
||||
domains ([p1st.de](https://p1st.de)) which itself is an abbreviation of
|
||||
[privacy1st.de](https://privacy1st.de)
|
||||
|
||||
### Creating config files
|
||||
|
||||
```shell
|
||||
install -Dm644 $src $pkgdir/$dst
|
||||
```
|
||||
|
||||
Example: [pkg/de-p1st-sudo/PKGBUILD](pkg/de-p1st-sudo/PKGBUILD)
|
||||
|
||||
### Changing existing config files
|
||||
|
||||
* `holo` from the AUR
|
||||
* [https://github.com/holocm/holo/blob/master/doc/holo-files.8.pod]()
|
||||
|
||||
```shell
|
||||
install -Dm0544 some-config.conf.holoscript "$pkgdir"/usr/share/holo/files/"$pkgname"/etc/path/to/some-config.conf.holoscript
|
||||
```
|
||||
|
||||
Example:
|
||||
* [pkg/de-p1st-pacman/pacman.conf.holoscript](pkg/de-p1st-pacman/pacman.conf.holoscript)
|
||||
* [pkg/de-p1st-pacman/PKGBUILD](pkg/de-p1st-pacman/PKGBUILD)
|
||||
|
||||
### Changing config files that are not owned by any package
|
||||
|
||||
See [pkg/de-p1st-locale/PKGBUILD](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](pkg/de-p1st-gnupg/PKGBUILD)
|
||||
|
||||
### Enabling services
|
||||
|
||||
* systemd.preset - Service enablement presets
|
||||
* [man 5 systemd.preset](https://www.systutorials.com/docs/linux/man/5-systemd.preset/)
|
||||
|
||||
**Note**: the preset name shall start with a two-digit number < 99.
|
||||
|
||||
```shell
|
||||
install -Dm0644 systemd.preset "$pkgdir"/usr/lib/systemd/system-preset/20-"$pkgname".preset
|
||||
```
|
||||
|
||||
Example package:
|
||||
* [pkg/de-p1st-networkmanager/systemd.preset](pkg/de-p1st-networkmanager/systemd.preset)
|
||||
* [pkg/de-p1st-networkmanager/PKGBUILD](pkg/de-p1st-networkmanager/PKGBUILD)
|
||||
|
||||
**Note**:
|
||||
|
||||
Running `systemctl preset-all` resets all installed unit files to the defaults configured in the preset policy files.
|
||||
|
||||
This implies: **All manual changes** such as `systemctl enable serviceXYZ` will get lost!
|
||||
|
||||
To avoid this, enable your services with systemd-presets!
|
||||
|
||||
```shell
|
||||
echo 'enable NetworkManager.service' | sudo tee -a /usr/lib/systemd/system-preset/20-custom.preset
|
||||
sudo systemctl preset-all
|
||||
```
|
||||
|
||||
### 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):
|
||||
```
|
||||
|
||||
## TODOs
|
||||
|
||||
* How does Pacman pick the default option? Are packages simply
|
||||
ordered alphabetically?
|
||||
|
||||
* split up the "base" package:
|
||||
* base-headless (no fonts required)
|
||||
* base-graphical (depends on base-headless)
|
||||
* remove "de-p1st-grub" from base
|
||||
* just one "base" package for both: BIOS and (U)EFI installation!
|
||||
|
||||
* installer: support BIOS boot mode
|
||||
* installer: Option to disable full disk encryption
|
||||
|
||||
* for each PKG: built with docker then sign wit pgp
|
||||
* signed package db
|
||||
* build for multiple architectures
|
||||
* https://ownyourbits.com/2018/06/27/running-and-building-arm-docker-containers-in-x86/
|
||||
* https://ownyourbits.com/2018/06/27/running-and-building-arm-docker-containers-in-x86/#comment-19124
|
||||
|
||||
* de-p1st-pacman -> ungoogled-chromium
|
||||
* https://github.com/ungoogled-software/ungoogled-chromium-archlinux#open-build-service-repository
|
@ -1,4 +1,4 @@
|
||||
# Arch installer
|
||||
# Arch Installer
|
||||
|
||||
## Running the installer
|
||||
|
||||
|
@ -47,7 +47,7 @@ ADDITIONAL_PKGS+=('de-p1st-gpu-generic' 'de-p1st-xfce4-hidpi' 'de-p1st-sddm-tabl
|
||||
# smartcard
|
||||
ADDITIONAL_PKGS+=('de-p1st-smartcard')
|
||||
# other programs
|
||||
ADDITIONAL_PKGS+=('signal-desktop' 'nextcloud-client' 'keepassxc' 'xournalpp')
|
||||
ADDITIONAL_PKGS+=('signal-desktop' 'nextcloud-client' 'keepassxc' 'xournalpp' 'evince')
|
||||
ADDITIONAL_PKGS+=('intellij-idea-ultimate-edition' 'intellij-idea-ultimate-edition-jre')
|
||||
# gallery / image viewer
|
||||
ADDITIONAL_PKGS+=('nomacs' 'qt5-imageformats')
|
||||
|
@ -1 +1,2 @@
|
||||
de-p1st mirror
|
||||
ParallelDownloads = 4
|
@ -1,6 +1,4 @@
|
||||
WindowScalingFactor
|
||||
99_hidpi.sh -> QT_AUTO_SCREEN_SCALE_FACTOR and QT_FONT_DPI
|
||||
sddm HiDpi
|
||||
|
||||
TODO: cursor size 32
|
||||
TODO: thunar settings
|
||||
Mouse Cursor size 32
|
||||
|
@ -2,7 +2,7 @@
|
||||
_pkgname=xfce4
|
||||
_reponame=arch
|
||||
pkgname="de-p1st-$_pkgname"
|
||||
pkgver=0.0.18
|
||||
pkgver=0.0.19
|
||||
pkgrel=1
|
||||
pkgdesc="XFCE4 with configuration"
|
||||
arch=('any')
|
||||
@ -47,7 +47,8 @@ depends+=(de-p1st-redshift)
|
||||
|
||||
# ============== display manager ==============
|
||||
# sddm with autologin
|
||||
depends+=(de-p1st-sddm-autologin)
|
||||
# depends+=(de-p1st-sddm-autologin)
|
||||
#
|
||||
# sddm themeing
|
||||
depends+=(de-p1st-sddm-theme)
|
||||
|
||||
@ -62,10 +63,10 @@ depends+=(de-p1st-theme)
|
||||
# x11 keyboard layouts
|
||||
depends+=(de-p1st-keyboard-x11)
|
||||
|
||||
# ============== browser ==============
|
||||
depends+=(firefox)
|
||||
# ============== wallpaper ==============
|
||||
depends+=(de-p1st-wallpaper)
|
||||
# ============== browser ==============
|
||||
depends+=(firefox)
|
||||
|
||||
package() {
|
||||
cd "${_reponame}/pkg/${pkgname}"
|
||||
|
@ -3,6 +3,8 @@ Whisker Menu:
|
||||
-> Firefox as favourite top right
|
||||
|
||||
desktop-icons on primary display is set to "true"
|
||||
custom destkop background
|
||||
power button suspends the system
|
||||
|
||||
Panel1:
|
||||
-> 2 workspaces (instead of 4)
|
||||
@ -11,6 +13,6 @@ Panel1:
|
||||
Panel2:
|
||||
-> lower (2nd) panel removed
|
||||
|
||||
TODO: power manager settings
|
||||
TODO: wallpaper
|
||||
TODO: thunar settings
|
||||
Thunar:
|
||||
-> hidden files visible
|
||||
-> filders not before files
|
||||
|
Loading…
Reference in New Issue
Block a user