[aur-general] Is base an implicit dependency?
Hi, I would like to have a confirmation. I encountered a PKGBUILD on AUR that is not building correctly except when systemd is present when building. The maintainer considers the makedeps is implicit as systemd is dragged by base metapackage. However devtools only ensures base-devel is present, not base, when building in a clean chroot. And I could not find a mention in the wiki of base expected to be present when writing a PKGBUILD. Could you confirm to me what are the guidelines? Does systemd (make)dependency should be explicit or not? Regards, -- Cédric Girard
Hello,
The most important meta package is base. It contains a minimal package set that defines a basic Arch Linux installation. It includes: Without base you wouldn't be building the package on a system that can be called Arch Linux. What's the point then?
Regards, Marcin Wieczorek On 21/07/27 11:15, Cedric Girard via aur-general wrote:
Hi,
I would like to have a confirmation. I encountered a PKGBUILD on AUR that is not building correctly except when systemd is present when building. The maintainer considers the makedeps is implicit as systemd is dragged by base metapackage.
However devtools only ensures base-devel is present, not base, when building in a clean chroot. And I could not find a mention in the wiki of base expected to be present when writing a PKGBUILD.
Could you confirm to me what are the guidelines? Does systemd (make)dependency should be explicit or not?
Regards,
-- Cédric Girard
Without base you wouldn't be building the package on a system that can be called Arch Linux. What's the point then?
Regards, Marcin Wieczorek
This is actually an interesting question. I assumed this was the answer at first too and even composed a message based on that and noting it as an exception to the rule against transitive dependencies, but then I actually checked the Wiki and my build tooling for backup and ... this can't be the whole story. The wiki instructions for building from a clean chroot only setup an image with `base-devel` not `base`, and the result is a container that has systemd-libs but not actually systemd. The issue is not just the wiki either, the images used by `extra-x86_64-build` and friends are the same way. Either the docs and all the current tooling is wrong and all sorts of official packages are being built in something that "can't be called Arch Linux", or there is more to the story. Caleb
On Tue, 2021-07-27 at 11:15 +0200, Cedric Girard via aur-general wrote:
Hi,
I would like to have a confirmation. I encountered a PKGBUILD on AUR that is not building correctly except when systemd is present when building. The maintainer considers the makedeps is implicit as systemd is dragged by base metapackage.
However devtools only ensures base-devel is present, not base, when building in a clean chroot. And I could not find a mention in the wiki of base expected to be present when writing a PKGBUILD.
Could you confirm to me what are the guidelines? Does systemd (make)dependency should be explicit or not?
Regards,
Hi Cedric, Yes, see [1]. Packages in base can, and should, be omitted from dependencies. Similarly, the base-devel group is assumed to be installed when building packages, see [2]. Its members should be omitted from makedepends and checkdepends. [1] https://wiki.archlinux.org/title/Meta_package_and_package_group#Meta_package... [2] https://wiki.archlinux.org/title/PKGBUILD#makedepends Cheers, Filipe Laíns
Le 27/07/2021 à 16:11, Filipe Laíns via aur-general a écrit :
On Tue, 2021-07-27 at 11:15 +0200, Cedric Girard via aur-general wrote:
Hi,
I would like to have a confirmation. I encountered a PKGBUILD on AUR that is not building correctly except when systemd is present when building. The maintainer considers the makedeps is implicit as systemd is dragged by base metapackage.
However devtools only ensures base-devel is present, not base, when building in a clean chroot. And I could not find a mention in the wiki of base expected to be present when writing a PKGBUILD.
Could you confirm to me what are the guidelines? Does systemd (make)dependency should be explicit or not?
Regards,
Hi Cedric,
Yes, see [1]. Packages in base can, and should, be omitted from dependencies.
This is not generally true. While base can arguably be implicitly depended on for most basic tools (e.g. standard POSIX things), library dependencies should still be listed for instance: https://wiki.archlinux.org/title/Arch_package_guidelines#Package_dependencie... And we are subject to remove some packages, see https://bugs.archlinux.org/task/64028, https://bugs.archlinux.org/task/64029, https://bugs.archlinux.org/task/64030, https://bugs.archlinux.org/task/64047. Also, makedepencies != dependencies, so:
Similarly, the base-devel group is assumed to be installed when building packages, see [2]. Its members should be omitted from makedepends and checkdepends.
yes, but once again base is not in building chroots, thus anything from base and not in base-devel required for building must be listed in makedepends, in this case systemd. I still have yet to find again where we discussed base in chroots/systemd in base-devel, but this is the current states of things so as long as it stays this way, systemd should be listed in makedepends if required.
[1] https://wiki.archlinux.org/title/Meta_package_and_package_group#Meta_package... [2] https://wiki.archlinux.org/title/PKGBUILD#makedepends
Regards, Bruno/Archange
Le 27/07/2021 à 16:46, Archange a écrit :
Le 27/07/2021 à 16:11, Filipe Laíns via aur-general a écrit :
On Tue, 2021-07-27 at 11:15 +0200, Cedric Girard via aur-general wrote:
Hi,
I would like to have a confirmation. I encountered a PKGBUILD on AUR that is not building correctly except when systemd is present when building. The maintainer considers the makedeps is implicit as systemd is dragged by base metapackage.
However devtools only ensures base-devel is present, not base, when building in a clean chroot. And I could not find a mention in the wiki of base expected to be present when writing a PKGBUILD.
Could you confirm to me what are the guidelines? Does systemd (make)dependency should be explicit or not?
Regards,
Hi Cedric,
Yes, see [1]. Packages in base can, and should, be omitted from dependencies.
This is not generally true. While base can arguably be implicitly depended on for most basic tools (e.g. standard POSIX things), library dependencies should still be listed for instance:
https://wiki.archlinux.org/title/Arch_package_guidelines#Package_dependencie...
And we are subject to remove some packages, see https://bugs.archlinux.org/task/64028, https://bugs.archlinux.org/task/64029, https://bugs.archlinux.org/task/64030, https://bugs.archlinux.org/task/64047.
Also, makedepencies != dependencies, so:
Similarly, the base-devel group is assumed to be installed when building packages, see [2]. Its members should be omitted from makedepends and checkdepends.
yes, but once again base is not in building chroots, thus anything from base and not in base-devel required for building must be listed in makedepends, in this case systemd. I still have yet to find again where we discussed base in chroots/systemd in base-devel, but this is the current states of things so as long as it stays this way, systemd should be listed in makedepends if required.
Not the one I had in mind, but I was pointed at https://bugs.archlinux.org/task/66762 So a solution would indeed be to add base to base-devel and be done with it (w.r.t. the specific question of whether systemd should be a makedep). Bruno/Archange
Em julho 27, 2021 6:15 Cedric Girard via aur-general escreveu:
Hi,
I would like to have a confirmation. I encountered a PKGBUILD on AUR that is not building correctly except when systemd is present when building. The maintainer considers the makedeps is implicit as systemd is dragged by base metapackage.
However devtools only ensures base-devel is present, not base, when building in a clean chroot. And I could not find a mention in the wiki of base expected to be present when writing a PKGBUILD.
Could you confirm to me what are the guidelines? Does systemd (make)dependency should be explicit or not?
Regards,
-- Cédric Girard
The base package is expected to be installed on all Arch Linxu systems, ever since we moved to a metapackage for base. Having said that, I'm always in favor of explicit dependency listing, instead of implicit. This has been discussed a few times, but, for the time being, always assume base. Regards, Giancarlo Razzolini
Le 27/07/2021 à 16:42, Giancarlo Razzolini via aur-general a écrit :
Em julho 27, 2021 6:15 Cedric Girard via aur-general escreveu:
Hi,
I would like to have a confirmation. I encountered a PKGBUILD on AUR that is not building correctly except when systemd is present when building. The maintainer considers the makedeps is implicit as systemd is dragged by base metapackage.
However devtools only ensures base-devel is present, not base, when building in a clean chroot. And I could not find a mention in the wiki of base expected to be present when writing a PKGBUILD.
Could you confirm to me what are the guidelines? Does systemd (make)dependency should be explicit or not?
Regards,
-- Cédric Girard
The base package is expected to be installed on all Arch Linxu systems, ever since we moved to a metapackage for base.
Having said that, I'm always in favor of explicit dependency listing, instead of implicit. This has been discussed a few times, but, for the time being, always assume base.
Not for makedeps, not for sodeps. See my other email. ;) Bruno/Archange
participants (6)
-
Archange
-
Caleb Maclennan
-
Cedric Girard
-
Filipe Laíns
-
Giancarlo Razzolini
-
Marcin Wieczorek