Arch Linux

Please read this before reporting a bug:

Do NOT report bugs when a package is just outdated, or it is in the AUR. Use the 'flag out of date' link on the package page, or the Mailing List.

REPEAT: Do NOT report bugs for outdated packages!

FS#12890 - {core} Clean up the base group

Attached to Project: Arch Linux
Opened by Greg (dolby) - Thursday, 22 January 2009, 17:01 GMT
Last edited by Allan McRae (Allan) - Sunday, 28 February 2010, 11:34 GMT
Task Type Feature Request
Category Packages: Core
Status Closed
Assigned To Aaron Griffin (phrakture)
Thomas Bächler (brain0)
Allan McRae (Allan)
Architecture All
Severity Very Low
Priority Normal
Reported Version None
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 10
Private No


Now that a new ISO is in the works maybe it would be a good idea, and an apropriate time to clean up the base group a bit.
I remember brain0 sending some emails on arch-dev-public about it, but never went "all the way".
Heres some suggestions:
Despite the fact that most networking support is only in core, ppp and rp-pppoe are still in base. Those could move out of the group, along with the ppp dependendy of libpcap.
Theres already a BR for wpa_supplicant & dbus-core:  FS#12391 
Then there is dash, which isnt used anywhere by default, maybe it would be better out of the group too.
Also lzo2, which isnt a dependency for anything in base, only packages in core.
tcp_wrappers as well. pcmciautils is only needed for laptops for the most part.
& then theres stuff like lvm & encryption support which, as long as Archlinux ships installation media that include the core repository, IMO could be moved too.

I dont know how the new ISOs treat base, if they invoke a pacman -S base like before, or if theres an individual package selection like there used to in the past.
This task depends upon

Closed by  Allan McRae (Allan)
Sunday, 28 February 2010, 11:34 GMT
Reason for closing:  Implemented
Additional comments about closing:  See final comment
Comment by Greg (dolby) - Monday, 11 May 2009, 21:32 GMT
Adding cpio. AFAIK it doesnt need to be in base either. Its not used by any of the Arch developed tools, besides archboot.
Comment by Allan McRae (Allan) - Tuesday, 12 May 2009, 07:41 GMT
Assigning to Thomas given his email regarding doing this a while ago.

@Thomas, do you have a copy of your list of possible removals?
Comment by Greg (dolby) - Tuesday, 12 May 2009, 08:23 GMT
Keeping track of such things is very hard and pointless to some extend.
In the report that was closed as solved i linked above,  FS#12391  , which is only 50% solved by the way,
wpa_supplicant is still in base. That makes dbus-core to stay in base with it, but dbus-core also depends in expat, which is only in core not base.

Also relevant to the  FS#12391  part that WAS solved, diffutils was added in base as a dependency of grub and man.
Man is already replaced by man-db. If/when grub gets replaced by grub2, there is no need for diffutils in base then. ARGH!
Comment by Greg (dolby) - Tuesday, 12 May 2009, 08:37 GMT
gmp is required by coreutils so that should go into base as well.
Comment by Thomas Bächler (brain0) - Tuesday, 12 May 2009, 11:01 GMT
I disagree. The base group should only contain base packages. GMP is not a base package only a dependency of one. If you install base, it installs all base packages AND their dependencies.

I thought we removed all wireless-related stuff from base, I'd be fine with that. My list is somewhere on the public ML, but it is too long ago and I never got to finish the process - however, most of it has been done by others.
Comment by Greg (dolby) - Tuesday, 12 May 2009, 11:48 GMT
That sounds logical, and form a point of view better.
I only said that in the basis that "all packages needed by packages in base should be in base"
If that doesnt apply, its fine. FTR that was the argument that got diffutils out of base-devel and in base in  FS#12391  and at least Dan agreed that this is a policy.

What i want to ask is the following:
The base group is effectively needed mostly during installation. Besides that, the packages are treated like all other packages in core.
In the basis that not all dependencies of packages in base, should also be part of the group, but they can just be in core, maybe it better to change the group entirely?
Let me explain that with an example. pacman has 3 dependencies besides bash. libarchive libdownload & pacman-mirrorlist.
Those packages arent really base packages, they are just there because of pacman. What if those weren't in base? That would ease installations very much cause it would cut down the packages you have to review
if you want to customise the installation. The user would just have to select pacman instead of all that. Obviously most of the libs would go out of base that way.

Also an additional group named networking could be introduced, that includes the networking packages. So the script for the installation images could just call pacman -S base, pacman -S base-devel & pacman -S networking.
and leave the libs & packages only being dependencies out of the selection as they're gonna get installed anyway.
I realise that would leave out some packages from the installation process. lilo comes to mind for example.
Comment by Greg (dolby) - Tuesday, 12 May 2009, 13:23 GMT
For example:
cpio is not needed if i am not mistaking. it can probably leave core too.
dbus-core leaves with wpa_supplicant, dhcpcd too, dialog isnt needed by any package in base AFAIK just the installer.
libpcap is only needed by ppp, while leaves along with rp-pppoe.
lzo2 leaves cause its needed only by openvpn which is in core. tcp_wrappers is not needed by any package in base. just openssh and portmap in core.
These are the IMO standard ones.
Comment by Thomas Bächler (brain0) - Wednesday, 13 May 2009, 09:22 GMT
Agreed mostly.

1) We do need cpio for mkinitcpio.
2) The rest can in fact leave base but stay in core (dhcpcd is a dep of initscripts (I think), so no problem here)
3) We could create base-networking and base-wireless groups with the extra net packages.
Comment by Allan McRae (Allan) - Wednesday, 13 May 2009, 09:32 GMT
Do we really need cpio for mkinitcpio. It is not a dep but gen_init_cpio is...
Comment by Thomas Bächler (brain0) - Wednesday, 13 May 2009, 09:47 GMT
Indeed it doesn't seem like we need it.
Comment by Greg (dolby) - Wednesday, 13 May 2009, 18:17 GMT
I made a list of all packages in core since i found that libelf isnt needed by anything in core either, so excuse me but i will expand the base in description of this request to a core cleanup.
Heres the highlights:
cpio, part of BASE isnt needed by anything in the repo
dbus-core, part of BASE is needed by wpa_supplicant which will leave BASE
dhcpcd, part of BASE could leave to join a possible networking group, or just be in CORE. Although it should be noted that its an optional dependency of initscripts. But so are bridge-utils & wireless_tools which are only in CORE.
dialog, part of BASE not needed by anything in the repo
diffutils, part of BASE, moved there only in the basis that its needed by GRUB. Could go back into BASE-DEVEL if thats not the case. See  FS#12391 
ed, part of BASE-DEVEL, is now only an optional dependency of patch. Could go anywhere if found appropriate.
eventlog Its related to syslog-ng. I dont know how useful it is in CORE. Its not needed by anything.
glib2 not needed by anything in the repo
libelf not needed by anything in the repo
libpcap, part of BASE should move to CORE along with ppp
lzo2, part of BASE, only needed by openvpn which is in CORE
ppp, is in BASE. should move out
rp-pppoe is in BASE, should move out
tcp_wrappers is in BASE, its only needed by openssh in CORE. Could move, although during installation you are prompted to edit /etc/hosts.allow & .deny
wpa_supplicant is in BASE. should move out.

Also: IF you liked the idea about creating a networking group, and are willing to add that to the installation media like i described above (by invoking pacman -S <groupname>)
these are he packages that dont fit any group:
gpm,lilo, links (if not considered part of networking), & sudo

See attached file for more details.
   core (4 KiB)
Comment by Thomas Bächler (brain0) - Monday, 18 May 2009, 14:50 GMT
Sorry for not responding. Thanks for the work, I guess we can take all this as you write it. I'd like to have the following groups in core:

base-networking (this is tools, not drivers)
base-wireless (again, tools: iw, wireless_tools, wpa_supplicant, crda and so on)
base-wireless-drivers (all firmware packages and external driver packages)

We can put links in the base-networking group, and leave gpm in core without any group (it's just a dep of links). We should move lilo to extra, as we removed support from our installer iirc.

We should also consider leaving dbus-core as part of base, because dbus is now an essential component of virtually any Linux system.

dialog should move to extra

diffutils could go back to base-devel: should it ever stop being a dependency of any base package, it won't be pulled in anymore with a base installation, which is desirable, move it to base-devel.

glib2 is a makedepend of syslog-ng (or a depend, don't remember). If it's just a makedepend, we can move it to extra IMO.
Comment by Thomas Bächler (brain0) - Monday, 18 May 2009, 14:51 GMT
Ah, and dhcpcd should be a depend of initscripts or remain in base, otherwise the number of "Arch doesn't support dhcp" bug reports will crush our bugtracker.
Comment by Greg (dolby) - Monday, 18 May 2009, 22:34 GMT
Also, with todays netcfg upgrade i noticed that it has an optional dependency on dialog : Required for menu based profile selector. But also dbus-python which isnt in core.
Even so disalog doesnt have to stay in the base group AFAICT. Especially makedepends and probably optdepends needs to be checked before going through with something like this.
Comment by Greg (dolby) - Wednesday, 20 May 2009, 08:31 GMT
I am working on an updated document which includes opt & makedepends but wont be able to complete it for at least two more days. Its only half done.
I also noticed that dmapi isnt needed by xfsprogs nowadays (i seem to remember it did but might be wrong), but only xfsdump which is in extra. Checked Slackware and CRUX and they both dont have it in their own core directories, but along with xfsdump.
Comment by Greg (dolby) - Friday, 19 June 2009, 20:19 GMT
libelf was already woved to extra, by AndyRTR. Theres quite a few changes happening in core right now. I will post the list when those are done.
Comment by Allan McRae (Allan) - Friday, 10 July 2009, 06:01 GMT
Here is a draft of the moves I propose:

Not I did not keep packages in the base group just because they are deps of packages in the base group. The justification for this is that when you install the base group, you do not specifically want (e.g) libarchive but you do want pacman. This cleans up initial package selection in the installer and when selecting individual packages from a "pacman -Sg base"
Comment by Gerardo Exequiel Pozzi (djgera) - Tuesday, 14 July 2009, 05:31 GMT
DSO provided by eventlog, glib2 and tcp_wrappers are now used by testing/syslog-ng-3.0.3-1
Also libcap will become part of [core] when syslog-ng-3.0.3-1 moved out from [testing]
Comment by Gavin Bisesi (Daenyth) - Wednesday, 11 November 2009, 15:35 GMT
What's the status on this at the moment?
Comment by Allan McRae (Allan) - Wednesday, 11 November 2009, 23:23 GMT
  • Field changed: Severity (Low → Very Low)
Status = there is probably nothing lower on the priority list...
Comment by James Conway (MuffinFlavored) - Sunday, 17 January 2010, 23:48 GMT
I suggest somehow during setup, the automated installed determines the following:
which file systems are going to be used (remove un-needed)
if the file systems do not involve encryption, remove cryptsetup and all un-needed dependencies
if a wireless device is present (remove wpa_supplicant and un-needed dependencies if not)
if the network was configured to use dhcpd, if not remove it
if the network requires rs-pppoe, if not, remove it
is dash required? it has no dependencies nor is it required by any packages. is it used?
are kblic and its collection of packages required?

Attached is a list of every package in base, its dependencies, and what other packages in base require it.
   base.txt (16.2 KiB)
Comment by Allan McRae (Allan) - Sunday, 28 February 2010, 11:34 GMT