Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Adding nvchecker conf, listing most (or all) optional package dependencies and fixed license identifier #2406

Open
wants to merge 5 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
149 changes: 140 additions & 9 deletions PKGBUILD
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,14 @@
# Contributor: demostanis worlds <[email protected]>

pkgname=archinstall
pkgver=2.6.0
pkgver=2.7.2
pkgrel=1
pkgdesc="Just another guided/automated Arch Linux installer with a twist"
arch=(any)
url="https://github.com/archlinux/archinstall"
license=(GPL3)
license=(GPL-3.0-or-later)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

According to the project information it is GPL-3.0-only though?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

hmm, let me double check. if that's the case I'll change.

depends=(
'arch-install-scripts'
'btrfs-progs'
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does archinstall no longer support btrfs or is support for the filesystem achieved in another way?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

humm, crap you're right. It needs it in the ISO to also be able to do mkfs.btrfs. Good catch! I was thinking it just needed it to be installed inside the system.

'coreutils'
'cryptsetup'
'e2fsprogs'
Expand All @@ -24,7 +23,10 @@ depends=(
'python-pyparted'
'python-simple-term-menu'
'systemd'
'mkinitcpio'
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does archinstall use mkinitcpio on the system running archinstall or in the new system?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It also triggers mkinitcpio inside the system, to make sure modifications to HOOKS etc are updated before rebooting.

'util-linux'
'base'
'base-devel'
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why is base-devel added?
If archinstall now depends on particular build tools to do its job, those need to be listed here instead.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I agree.

)
makedepends=(
'python-setuptools'
Expand All @@ -34,7 +36,135 @@ makedepends=(
'python-wheel'
)
optdepends=(
'linux: Used when linux kernel is selected'
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The newly added optdepends are not really needed for running archinstall though.
They will be installed on-the-fly into a newly setup system (which is not the same system as the one running archinstall).
Therefore they should not be added. Only optional dependencies required for additional features of archinstall should be added here.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For anyone reading -> Ongoing discussion internally about how to solve the core need of why I've attempted to add them here.

'linux-lts: Used when linux-lts kernel is selected'
'linux-zen: Used when linux-zen kernel is selected'
'linux-hardened: Used when linux-hardened kernel is selected'
'amd-ucode: Used when AMD microcode dependency is detected'
'intel-ucode: Used when Intel microcode dependency is detected'
'btrfs-progs: Used when btrfs is selected as a filesystem'
'xfsprogs: Used when xfs is selected as a filesystem'
'f2fs-tools: Used when f2fs is selected as a filesystem'
'python-systemd: Adds journald logging'
'xorg-server: Adds the base for X11 based desktop profiles'
'nano: Used in desktop profile to give simple tooling'
'vim: Used in desktop profile to give simple tooling'
'openssh: Used in desktop profile to give simple tooling'
'htop: Used in desktop profile to give simple tooling'
'wget: Used in desktop profile to give simple tooling'
'iwd: Used in desktop profile to give simple tooling'
'wireless_tools: Used in desktop profile to give simple tooling'
'wpa_supplicant: Used in desktop profile to give simple tooling'
'smartmontools: Used in desktop profile to give simple tooling'
'xdg-utils: Used in desktop profile to give simple tooling'
'tomcat10: Used in server profile when tomcat is selected'
'openssh: Used in server profile when sshd is selected'
'postgresql: Used in server profile when postgresql is selected'
'nginx: Used in server profile when nginx is selected'
'mariadb: Used in server profile when mariadb is selected'
'lighttpd: Used in server profile when lighttpd is selected'
'apache: Used in server profile when httpd is selected'
'docker: Used in server profile when docker is selected'
'cockpit: Used in server profile when cockpit is selected'
'udisks2: Used in server profile when cockpit is selected'
'packagekit: Used in server profile when cockpit is selected'
'alacritty: Used when qtile, awesome desktop is selected'
'xterm: Used when i3, awesome desktop is selected'
'slock: Used when lxqt, awesome desktop is selected'
'brltty: Used if accessibility was detected during installation'
'espeakup: Used if accessibility was detected during installation'
'alsa-utils: Used if accessibility was detected during installation'
'xfce4: Used in server profile when xfce4 is selected'
'xfce4-goodies: Used in server profile when xfce4 is selected'
'pavucontrol: Used in server profile when xfce4, sway is selected'
'gvfs: Used in server profile when xfce4 is selected'
'xarchiver: Used in server profile when xfce4 is selected'
'sway: Used when sway desktop is selected'
'swaybg: Used when sway desktop is selected'
'swaylock: Used when sway desktop is selected'
'swayidle: Used when sway desktop is selected'
'waybar: Used when sway desktop is selected'
'dmenu: Used when sway desktop is selected'
'brightnessctl: Used when sway desktop is selected'
'grim: Used when sway desktop is selected'
'slurp: Used when sway desktop is selected'
'foot: Used when sway desktop is selected'
'xorg-xwayland: Used when sway desktop is selected'
'seatd: Used when sway desktop is selected with seatd'
'polkit: Used when sway desktop is selected with polkit'
'dolphin: Used when kde, hyprland desktop is selected'
'qtile: Used when qtile desktop is selected'
'mate: Used when mate desktop is selected'
'mate-extra: Used when mate desktop is selected'
'lxqt: Used when lxqt desktop is selected'
'breeze-icons: Used when lxqt desktop is selected'
'oxygen-icons: Used when lxqt desktop is selected'
'ttf-freefont: Used when lxqt desktop is selected'
'leafpad: Used when lxqt desktop is selected'
'plasma-meta: Used when kde desktop is selected'
'konsole: Used when kde desktop is selected'
'kwrite: Used when kde desktop is selected'
'ark: Used when kde desktop is selected'
'plasma-workspace: Used when kde desktop is selected'
'egl-wayland: Used when kde desktop is selected'
'i3-wm: Used when i3 desktop is selected'
'i3lock: Used when i3 desktop is selected'
'i3status: Used when i3 desktop is selected'
'i3blocks: Used when i3 desktop is selected'
'lightdm-gtk-greeter: Used when i3 desktop is selected'
'lightdm: Used when i3 desktop is selected'
'dmenu: Used when i3 desktop is selected'
'hyprland: Used when hyprland desktop is selected'
'dunst: Used when hyprland desktop is selected'
'kitty: Used when hyprland desktop is selected'
'wofi: Used when hyprland desktop is selected'
'xdg-desktop-portal-hyprland: Used when hyprland desktop is selected'
'qt5-wayland: Used when hyprland desktop is selected'
'qt6-wayland: Used when hyprland desktop is selected'
'gnome: Used when gnome desktop is selected'
'gnome-tweaks: Used when gnome desktop is selected'
'enlightenment: Used when enlightenment desktop is selected'
'terminology: Used when enlightenment desktop is selected'
'deepin: Used when deepin desktop is selected'
'deepin-terminal: Used when deepin desktop is selected'
'deepin-editor: Used when deepin desktop is selected'
'cutefish: Used when cutefish desktop is selected'
'noto-fonts: Used when cutefish desktop is selected'
'cinnamon: Used when cinnamon desktop is slected'
'system-config-printer: Used when cinnamon desktop is slected'
'gnome-keyring: Used when cinnamon desktop is slected'
'gnome-terminal: Used when cinnamon desktop is slected'
'blueberry: Used when cinnamon desktop is slected'
'metacity: Used when cinnamon desktop is slected'
'budgie: Used when budgie desktop is slected'
'arc-gtk-theme: Used when budgie desktop is slected'
'mate-terminal: Used when budgie desktop is slected'
'nemo: Used when budgie desktop is slected'
'papirus-icon-theme: Used when budgie desktop is slected'
'bspwm: Used when bspwn desktop is selected'
'sxhkd: Used when bspwn desktop is selected'
'dmenu: Used when bspwn desktop is selected'
'xdo: Used when bspwn desktop is selected'
'rxvt-unicode: Used when bspwn desktop is selected'
'awesome: Used when awesome desktop is selected'
'xorg-xinit: Used when awesome desktop is selected'
'xorg-xrandr: Used when awesome desktop is selected'
'feh: Used when awesome desktop is selected'
'terminus-font: Used when awesome desktop is selected'
'gnu-free-fonts: Used when awesome desktop is selected'
'ttf-liberation: Used when awesome desktop is selected'
'xsel: Used when awesome desktop is selected'
'pipewire: Used when pipewire is selected as an audio server'
'pipewire-alsa: Used when pipewire is selected as an audio server'
'pipewire-jack: Used when pipewire is selected as an audio server'
'pipewire-pulse: Used when pipewire is selected as an audio server'
'gst-plugin-pipewire: Used when pipewire is selected as an audio server'
'libpulse: Used when pipewire is selected as an audio server'
'wireplumber: Used when pipewire is selected as an audio server'
'pulseaudio: Used when pulseaudio is selected as an audio server'
'grub: Used in server profile when grub bootloader option is selected'
'efibootmgr: Used in server profile when efistub bootloader option is selected'
'limine: Used in server profile when limine bootloader option is selected'
)
provides=(python-archinstall archinstall)
conflicts=(python-archinstall archinstall-git)
Expand All @@ -57,21 +187,22 @@ pkgver() {

prepare() {
cd $pkgname-$pkgver

# use real directories for examples and profiles, as symlinks do not work
rm -fv $pkgname/{examples,profiles}
Torxed marked this conversation as resolved.
Show resolved Hide resolved
}

build() {
cd $pkgname-$pkgver

python -m build --wheel --no-isolation
PYTHONDONTWRITEBYTECODE=1 make man -C docs
}

package() {
cd "$pkgname-$pkgver"

cd $pkgname-$pkgver
python -m installer --destdir="$pkgdir" dist/*.whl
install -vDm 644 docs/_build/man/archinstall.1 -t "$pkgdir/usr/share/man/man1/"
}

check() {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If check() does nothing, it should not be here.
Once it calls something, it should be ordered before package() as that is when it is called.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

To not forget that we want tests, is it fine if I comment it out instead of removing it?

cd $pkgname-$pkgver
# Once we adopt pytest or something similar,
# this is where the test call will live
}
4 changes: 4 additions & 0 deletions nvchecker.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
[nvchecker]
source = "git"
git = "https://github.com/archlinux/archinstall"
prefix = "v"
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It seems your editor does not like newlines at the end of the file.
Might be worth changing, since PKGBUILDs usually use that by default as well and it will turn into a non-needed change every time otherwise.