Skip to content

Conversation

@Torxed
Copy link
Member

@Torxed Torxed commented Mar 11, 2024

This PR mainly aims to conform with Arch's best practices surrounding PKGBUILD's.

@Torxed Torxed requested a review from grazzolini as a code owner March 11, 2024 09:26
@Torxed Torxed requested a review from dvzrv March 11, 2024 10:00
Copy link
Member

@dvzrv dvzrv left a comment

Choose a reason for hiding this comment

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

Generally I am wondering why these files live in here at all and why this has not been a merge request towards the package repository instead:
https://gitlab.archlinux.org/archlinux/packaging/packages/archinstall/-/merge_requests

'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.

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 need to re-visit this, and get feedback from other packages.
Because it happens from time to time, and today it struck again: https://gitlab.archlinux.org/archlinux/packaging/packages/xf86-video-vmware/-/issues/3#note_277232

There's no other way for me to link "indirect" package ties between a package like xf86-video-vmware to archinstall is there?

Copy link
Member

Choose a reason for hiding this comment

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

Even if you created a metapackage with depends on all the things archinstall can try to install, I'm not sure it would have helped. Anyone removing a package from our repos must still manually double-check for depends, just as for optdepends.

I think what we want is for dbscripts to disallow removing packages that are still referenced by any {,make,opt,check}depends.

Copy link
Member Author

Choose a reason for hiding this comment

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

In such a case, this list still makes sense? But in a meta package and then enhance dbscripts? This sounds like a very viable option tbh!

Copy link
Member

Choose a reason for hiding this comment

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

If dbscripts can be enhanced, either way should work.

Copy link
Member

Choose a reason for hiding this comment

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

That said, having metapackages like archinstall-meta-desktop-budgie that define what gets installed when the budgie desktop is selected (instead of archinstall's code) has some appeal, IMO.

'mkinitcpio'
'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.

'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.

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?

[nvchecker]
source = "git"
git = "https://github.com/archlinux/archinstall"
prefix = "v" No newline at end of file
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.

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.

license=(GPL-3.0-or-later)
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.

@Torxed
Copy link
Member Author

Torxed commented Mar 11, 2024

Generally I am wondering why these files live in here at all and why this has not been a merge request towards the package repository instead:

It's because:

git clone https://github.com/archlinux/archinstall.git
cd archinstall
makepkg -s

To get the latest code for testing, we have archinstall-git option too but this was added way back before that existed as an option.

@Torxed
Copy link
Member Author

Torxed commented Aug 27, 2025

We'll create a meta package containing all the dependencies, to not bloat this one.
The nvchecker will still go in

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants