You are not logged in.

#1 2017-10-19 20:01:07

daniel_shub
Member
Registered: 2012-06-21
Posts: 82

For makedepends assume base-devel or base group is installed?

I just want to clarify something in https://wiki.archlinux.org/index.php/De … ean_Chroot. The clean chroot that the wiki creates only has the base-devel group installed and not the base group installed. Does that mean that package maintainers should assume that at build time that not all packages in the base group will be installed and to explicitly include the needed packages (in my case systemd) in makedepends?

Offline

#2 2017-10-19 20:06:05

Slithery
Administrator
From: Norfolk, UK
Registered: 2013-12-01
Posts: 5,776

Re: For makedepends assume base-devel or base group is installed?

This is something that has been discussed by the Arch devs for years with no real outcome reached, it's probably better to assume that base isn't installed (although you can safetly assume that everything in base that is a dependency of packages in base-devel is installed).


No, it didn't "fix" anything. It just shifted the brokeness one space to the right. - jasonwryan
Closing -- for deletion; Banning -- for muppetry. - jasonwryan

aur - dotfiles

Offline

#3 2017-10-19 20:26:56

Trilby
Inspector Parrot
Registered: 2011-11-29
Posts: 29,525
Website

Re: For makedepends assume base-devel or base group is installed?

There has been controversy over whether or not any depends should be assumed - meaning if base-devel packages are required some packages believe they should be explicitly listed even though they should be able to be safely assumed.  Base group packages, in contrast, have never been safe to assume to be installed - I don't think this has ever been in question: if your package requires something from the base group it absolutely must be listed.  If it requires something from base-devel then there is some controversy and the current documentation says it is not required but some argue that explicit depends are better.


"UNIX is simple and coherent..." - Dennis Ritchie, "GNU's Not UNIX" -  Richard Stallman

Offline

#4 2017-10-19 20:34:48

daniel_shub
Member
Registered: 2012-06-21
Posts: 82

Re: For makedepends assume base-devel or base group is installed?

Trilby wrote:

There has been controversy over whether or not any depends should be assumed - meaning if base-devel packages are required some packages believe they should be explicitly listed even though they should be able to be safely assumed.  Base group packages, in contrast, have never been safe to assume to be installed - I don't think this has ever been in question: if your package requires something from the base group it absolutely must be listed.  If it requires something from base-devel then there is some controversy and the current documentation says it is not required but some argue that explicit depends are better.

Let me just check to see I understand:

depends is for package installation: can assume the base group but not base-devel group
makedepends is for package build: cannot assume base group but some people assume base-devel group is present but some people list packages in the group as makedepends

Offline

#5 2017-10-19 20:45:33

Slithery
Administrator
From: Norfolk, UK
Registered: 2013-12-01
Posts: 5,776

Re: For makedepends assume base-devel or base group is installed?

No.

Depends is for package installation - shouldn't assume that anything is installed.
Makedepends is for package build - base-devel is installed but can't assume that anything else is (except dependencies of base-devel).

That's my take on it anyway.

Last edited by Slithery (2017-10-19 20:48:58)


No, it didn't "fix" anything. It just shifted the brokeness one space to the right. - jasonwryan
Closing -- for deletion; Banning -- for muppetry. - jasonwryan

aur - dotfiles

Offline

#6 2017-10-19 20:56:23

eschwartz
Fellow
Registered: 2014-08-08
Posts: 4,097

Re: For makedepends assume base-devel or base group is installed?

Trilby wrote:

There has been controversy over whether or not any depends should be assumed - meaning if base-devel packages are required some packages believe they should be explicitly listed even though they should be able to be safely assumed.  Base group packages, in contrast, have never been safe to assume to be installed - I don't think this has ever been in question: if your package requires something from the base group it absolutely must be listed.  If it requires something from base-devel then there is some controversy and the current documentation says it is not required but some argue that explicit depends are better.

It's the exact opposite. The base-devel groups is mandatory for running makepkg on Arch Linux (other distros and MSYS2 on Windows are free to assume whatever they want).

The base group, on the other hand, is "assumed installed", and there is controversy over whether they should or should not be listed as make/depends. e.g. FOr official repository packages, some Devs/TUs will list base packages in the depends, others will refuse to.

We've bikeshedded the "base group is assumed installed" thing all over the forums and mailing lists, but no one has ever ever ever said it was okay to include base-devel packages in your makedepends.

NOTE: Obviously if some base-devel package is a runtime dependency of a package, it must be listed as a dependency. base-devel is only mandated as available for building packages, not installing them. wink

Last edited by eschwartz (2017-10-19 20:58:15)


Managing AUR repos The Right Way -- aurpublish (now a standalone tool)

Offline

#7 2017-10-19 21:19:06

Trilby
Inspector Parrot
Registered: 2011-11-29
Posts: 29,525
Website

Re: For makedepends assume base-devel or base group is installed?

I don't follow the mailing list, but the wiki page clearly says base-devel can be assumed to be installed during the build (so they do not need to be listed in makedepends, no such note exists for depends) while absolutely nothing is said about assuming base packages are installed.  The AUR page also says base-devel should be installed but also says absolutely nothing about the base group.

Frankly any notion of assuming base is installed seems completely absurd.  It does seem like a very reasonable mistake to make to fail to list a base package, but it is unambiguously a mistake.

Base-devel (according to the wiki) can be assumed, but this neither precludes the philosophy of "explicit is better than implicit" as well as the consideration that base-devel is only assumed to be installed when the package is *built*.  If the built package actually requires something else be present, I've yet to see any documentation nor reasoning for leaving it out of the depends array.

If systemd is required as a makedpends, then list it as a makedepends.

Last edited by Trilby (2017-10-19 21:20:31)


"UNIX is simple and coherent..." - Dennis Ritchie, "GNU's Not UNIX" -  Richard Stallman

Offline

#8 2017-10-19 21:57:25

eschwartz
Fellow
Registered: 2014-08-08
Posts: 4,097

Re: For makedepends assume base-devel or base group is installed?

Trilby wrote:

I don't follow the mailing list, but the wiki page clearly says base-devel can be assumed to be installed during the build (so they do not need to be listed in makedepends, no such note exists for depends) while absolutely nothing is said about assuming base packages are installed.  The AUR page also says base-devel should be installed but also says absolutely nothing about the base group.

Frankly any notion of assuming base is installed seems completely absurd.  It does seem like a very reasonable mistake to make to fail to list a base package, but it is unambiguously a mistake.

The Wiki does strongly imply that base is required, and the official installation instructions direct you to `pacstrap /mnt base`. The bikeshed is over whether that constitutes a strong enough implication that it is a mandatory policy, and is complicated by the presence of pointless packages in the base group. We may get a new base-system group which will be declared mandatory, depending on how the bikeshed resolves this time.

Trilby wrote:

Base-devel (according to the wiki) can be assumed, but this neither precludes the philosophy of "explicit is better than implicit" as well as the consideration that base-devel is only assumed to be installed when the package is *built*.  If the built package actually requires something else be present, I've yet to see any documentation nor reasoning for leaving it out of the depends array.

If systemd is required as a makedpends, then list it as a makedepends.

systemd was recently added to base-devel as of 234.11-9 due to the now-pervasive assumption that basic user setup is managed via sysusers.d, which was failing to happen in nspawn containers. See FS#55492. That being said, explicit is NOT better than implicit when the Arch Linux documentation (which is distinctly different from the pacman/makepkg project documentation) says "base-devel is mandatory to use makepkg and we encourage users to downright persecute AUR maintainers for violating that rule".

It is not optional when for years and years and years every single respected community member who reviews the PKGBUILD attempts of new UAR contributors tells everyone, without exception, "you must remove gcc from makedepends, it is part of base-devel". It is not optional when there are no repo packages which list base-devel packages in the makedepends (I could be wrong about this, but if you find one then please submit a bugreport to have that fixed by removing it).

It is also not optional when the IRC ops, forum moderators, and regular helpers have pre-canned responses along the lines of "Do you even read the basic documentation? Install the base-devel group you help vampire." whenever people post here asking "omg why am I getting this yaourt error: gcc: command not found". Because only the type of person who installs an AUR helper from some lousy thirdparty repo neglects to read the very clear instructions to install base-devel before using makepkg.

This is not ambiguous in the slightest.

Last edited by eschwartz (2017-10-19 22:04:43)


Managing AUR repos The Right Way -- aurpublish (now a standalone tool)

Offline

#9 2017-10-19 22:45:30

Trilby
Inspector Parrot
Registered: 2011-11-29
Posts: 29,525
Website

Re: For makedepends assume base-devel or base group is installed?

Thanks for the note on systemd changing to base-devel.  I was unaware of that - it seems also the OP was.

Eschwartz wrote:

The Wiki does strongly imply that base is required

Strongly implies?  What does that even mean.  More importantly can you provide a reference for this.  Search the AUR and PKGBUILD pages on the wiki, or the PKGBUILD man page, you will find absolutely no mention of this.  Not only is it not implied, it is not even mentioned.

Eschwartz wrote:

It is not optional when for years and years and years every single respected community member...

I suppose there are many TUs, forum fellows, and active community members here then that you don't respect - but I'll stay away from this game of 'no true scotsman'.

Eschwartz wrote:

That being said, explicit is NOT better than implicit when the Arch Linux documentation (which is distinctly different from the pacman/makepkg project documentation) says "base-devel is mandatory to use makepkg and we encourage users to downright persecute AUR maintainers for violating that rule".

Where is this quote from?  It is most certainly not in `man archlinux`.

Eschwartz wrote:

This is not ambiguous in the slightest.

What you are railing against, so absurdly aggressively, is not something I ever said was ambiguous.  Please actually read my posts before you take a patronizing approach treating me like a complete ass for things I never said.  I most certainly never said failing to have base-devel installed was an excusable mistake.  Quite the opposite, I suggested that I recall cases being made for base-devel packages being explicitly listed when required.  I don't even agree with those arguements, I was simply stating that I've seen it argued.  In neither case would the "vampires" you refer to have any excuse for not having those packages installed.

I quite happily do not have all of the base group installed.  I am also quite happy to have many active community members who even maintain and use init systems other than systemd.  It is quite different to say that systemd is the officially supported init system and to just bin anyone who uses something else in as a clueless help vampire.

It's appropriate that I'm no longer a moderator and have been moved to forum fellow as I grow disgusted with this type of attitude growing in the arch community.  Officially supporting one configuration is absolutely not the same as intentionally going out of ones way to make all other configurations difficult.

Last edited by Trilby (2017-10-19 22:51:16)


"UNIX is simple and coherent..." - Dennis Ritchie, "GNU's Not UNIX" -  Richard Stallman

Offline

#10 2017-10-20 00:28:49

eschwartz
Fellow
Registered: 2014-08-08
Posts: 4,097

Re: For makedepends assume base-devel or base group is installed?

Trilby wrote:

Thanks for the note on systemd changing to base-devel.  I was unaware of that - it seems also the OP was.

Yeah, and I'm not sure this is the best answer myself -- I think it would probably be "more proper" to handle this in devtools when creating chroots.

Trilby wrote:
Eschwartz wrote:

The Wiki does strongly imply that base is required

Strongly implies?  What does that even mean.  More importantly can you provide a reference for this.  Search the AUR and PKGBUILD pages on the wiki, or the PKGBUILD man page, you will find absolutely no mention of this.  Not only is it not implied, it is not even mentioned.

... for an Arch Linux system, not for building packages.
https://wiki.archlinux.org/index.php/In … e_packages


But there is also https://wiki.archlinux.org/index.php/Makepkg#Usage

Trilby wrote:
Eschwartz wrote:

It is not optional when for years and years and years every single respected community member...

I suppose there are many TUs, forum fellows, and active community members here then that you don't respect - but I'll stay away from this game of 'no true scotsman'.


Maybe that was badly worded, I was not referring to the subset of community members that I respect, who also regularly review PKGBUILDs. I was referring to the subset of community members who regularly review PKGBUILDs, and are therefore deserving of a certain degree of respect in that field.

Trilby wrote:
Eschwartz wrote:

That being said, explicit is NOT better than implicit when the Arch Linux documentation (which is distinctly different from the pacman/makepkg project documentation) says "base-devel is mandatory to use makepkg and we encourage users to downright persecute AUR maintainers for violating that rule".

Where is this quote from?  It is most certainly not in `man archlinux`.

It wasn't a literal quote. wink

https://wiki.archlinux.org/index.php/PK … akedepends

the wiki wrote:

Note: The group base-devel is assumed to be already installed when building with makepkg. Members of this group should not be included in makedepends array.

As for persecuting AUR maintainers who violate that rule, that's more of an unwritten rule for things like AUR cleanup day when we go hunting for badly written PKGBUILDs.

Also:

[eschwartz@arch ~]$ man archlinux
No manual entry for archlinux

https://git.archlinux.org/svntogit/pack … a0b1706ae8 tongue

Trilby wrote:
Eschwartz wrote:

This is not ambiguous in the slightest.

What you are railing against, so absurdly aggressively, is not something I ever said was ambiguous.  Please actually read my posts before you take a patronizing approach treating me like a complete ass for things I never said.  I most certainly never said failing to have base-devel installed was an excusable mistake.  Quite the opposite, I suggested that I recall cases being made for base-devel packages being explicitly listed when required.  I don't even agree with those arguements, I was simply stating that I've seen it argued.  In neither case would the "vampires" you refer to have any excuse for not having those packages installed.

I quite happily do not have all of the base group installed.  I am also quite happy to have many active community members who even maintain and use init systems other than systemd.  It is quite different to say that systemd is the officially supported init system and to just bin anyone who uses something else in as a clueless help vampire.

It's appropriate that I'm no longer a moderator and have been moved to forum fellow as I grow disgusted with this type of attitude growing in the arch community.  Officially supporting one configuration is absolutely not the same as intentionally going out of ones way to make all other configurations difficult.

... what?

You certainly seemed to be "stating that I've seen it argued" that base-devel packages, whether in a specific case or as a general rule, could or should be listed in makedepends=(). I asserted that people who do not have base-devel installed when they run `makepkg` are as a rule help vampires who did not read the wiki documentation on building Arch Linux packages. And that either way, it is mandatory according to the official documentation for the AUR and Arch packaging policies (that is to say, the Wiki).

As for base, I acknowledged that there is no official policy, only some wording on the Wiki in several places that makes it sound like base is required. I have issues with that myself, and uninstalled several base packages which I feel don't belong there, but I did say it was a bikeshed.

Using different init systems? I have no problems with people doing that, so long as they clearly mark their issues as related to using a different init system. I won't call someone a help vampire unless they genuinely come across as clueless... which people who don't install base-devel usually (but not always) do.


Managing AUR repos The Right Way -- aurpublish (now a standalone tool)

Offline

#11 2017-10-20 03:45:53

Allan
Pacman
From: Brisbane, AU
Registered: 2007-06-09
Posts: 11,390
Website

Re: For makedepends assume base-devel or base group is installed?

My guidelines:

For makedepends, always assume base-devel is installed.   There is no need for thousands of packages to have gcc, make, etc in there.

For depends, assume glibc is installed.  You are fucked without it.

Offline

Board footer

Powered by FluxBB