[arch-general] should gawk be in group base-devel?
Hi, It is often quoted that, for package building purposes, it is assumed a user has packages in group base-devel installed. gawk is part of base but a user could deselect it within the Arch Installer. Does it make sense to add gawk to group base-devel so that its presence is mandated by the previous assumption? Should I raise a feature request for this? Regards, Neil Darlow
On Tue, Jun 3, 2008 at 7:05 AM, Neil Darlow <neil@darlow.co.uk> wrote:
Hi,
It is often quoted that, for package building purposes, it is assumed a user has packages in group base-devel installed.
Ideally, the user should have BOTH base and base-devel installed for package building.
2008/6/3 Travis Willard <travis@archlinux.org>:
On Tue, Jun 3, 2008 at 7:05 AM, Neil Darlow <neil@darlow.co.uk> wrote:
Hi,
It is often quoted that, for package building purposes, it is assumed a user has packages in group base-devel installed.
Ideally, the user should have BOTH base and base-devel installed for package building.
+1. When user omits any package from base - it's on his/her own risk, it is assumed that base is installed on every system, so packages from base are not mentioned in (make)depends (ok, some cases exists, but they are exceptions from the rule, and should had not exist). -- Roman Kyrylych (Роман Кирилич)
It is often quoted that, for package building purposes, it is assumed a user has packages in group base-devel installed.
Ideally, the user should have BOTH base and base-devel installed for package building.
+1. When user omits any package from base - it's on his/her own risk, it is assumed that base is installed on every system, so packages from base are not mentioned in (make)depends (ok, some cases exists, but they are exceptions from the rule, and should had not exist).
I'd say -1 from me...we have discussed this issue before (http://archlinux.org/pipermail/aur-general/2007-July/005541.html) and never really reached a good consensus. I'd still argue that people out there do customize their systems, it eliminates ambiguity, if base packages happen to change it will still work, why assume things when the package manager is there to ensure dependencies are present, etc. I think there are a lot of good reasons to list them in the depends array, and only the risk of some things becoming somewhat boilerplate as a downside. Last time I think someone mentioned bringing it up with the devs to see what they say...maybe that's a good idea? -- Aaron "ElasticDog" Schaefer
On Tue, 2008-06-03 at 18:03 +0300, Roman Kyrylych wrote:
2008/6/3 Travis Willard <travis@archlinux.org>:
On Tue, Jun 3, 2008 at 7:05 AM, Neil Darlow <neil@darlow.co.uk> wrote:
Hi,
It is often quoted that, for package building purposes, it is assumed a user has packages in group base-devel installed.
Ideally, the user should have BOTH base and base-devel installed for package building.
+1. When user omits any package from base - it's on his/her own risk, it is assumed that base is installed on every system, so packages from base are not mentioned in (make)depends (ok, some cases exists, but they are exceptions from the rule, and should had not exist).
I know it's against the policy, but if some program requires a package from base to work, it should be a dependency. That's why I explicitly list glibc in packages that link to /lib/libc.so.6 and friends and have no other dependencies. For the base/base-devel discussion: when building packages, base-devel and base should be installed. Looking at debian-alike distributions, I don't see packages makedepending on g++ either when c++ code needs to be compiled.
Hi, Jan de Groot wrote:
For the base/base-devel discussion: when building packages, base-devel and base should be installed. Looking at debian-alike distributions, I don't see packages makedepending on g++ either when c++ code needs to be compiled.
The gcc dependency within base-devel would cover the use of g++. Perhaps I "muddied" the waters by suggesting that a user could choose to not install gawk. Maybe the real question is: What is the purpose of base-devel? 1) To specify the standalone packages required to build base packages or 2) To specify a recommended set of packages required for package building in general If the answer is (1) and something in base requires gawk to build then I suggest gawk should be a dependency of base-devel. If the answer is (2) then I guess I can live with the implied requirement that gawk is installed as part of base _always_. I suppose I'm being a bit pedantic here but, from my engineering background, I don't really like assumptions and would prefer explicit requirement. I don't have the exact quote to hand but it has been said that "90% of programming errors arise from false assumptions". I guess that's why formal design methodologies evolved - but that's another story ;-) Regards, Neil Darlow
On Wed, 2008-06-04 at 09:57 +0100, Neil Darlow wrote:
Hi,
Jan de Groot wrote:
For the base/base-devel discussion: when building packages, base-devel and base should be installed. Looking at debian-alike distributions, I don't see packages makedepending on g++ either when c++ code needs to be compiled.
The gcc dependency within base-devel would cover the use of g++.
Perhaps I "muddied" the waters by suggesting that a user could choose to not install gawk.
Maybe the real question is: What is the purpose of base-devel?
1) To specify the standalone packages required to build base packages or
2) To specify a recommended set of packages required for package building in general
If the answer is (1) and something in base requires gawk to build then I suggest gawk should be a dependency of base-devel.
If the answer is (2) then I guess I can live with the implied requirement that gawk is installed as part of base _always_.
I suppose I'm being a bit pedantic here but, from my engineering background, I don't really like assumptions and would prefer explicit requirement.
I don't have the exact quote to hand but it has been said that "90% of programming errors arise from false assumptions". I guess that's why formal design methodologies evolved - but that's another story ;-)
The purpose of the base-devel group is to have a group of packages that are required to use most functionality of makepkg. This includes a compiler, assembler, patch tool, etc. The base group itself is quite special. Ever tried building glibc from scratch? You'll need a compiler and a base system installed to get glibc built. When we do glibc, compiler, binutils or kernel-headers updates, we always rebuild glibc, gcc and binutils 2 times to make sure they are built correctly and are tied together. This procedure is commented in the PKGBUILD, but nothing prevents you from taking this step only once and uploading the resulted package straight to the repositories.
participants (5)
-
Aaron Schaefer
-
Jan de Groot
-
Neil Darlow
-
Roman Kyrylych
-
Travis Willard