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
Opened by Greg (dolby) - Thursday, 22 January 2009, 17:01 GMT
Last edited by Allan McRae (Allan) - Sunday, 28 February 2010, 11:34 GMT
|
Details
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: 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
Sunday, 28 February 2010, 11:34 GMT
Reason for closing: Implemented
Additional comments about closing: See final comment
@Thomas, do you have a copy of your list of possible removals?
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#12391part 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!
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.
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#12391and 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.
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.
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.
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#12391ed, 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.
base
base-devel
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.
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.
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.
http://wiki.archlinux.org/index.php/User:Allan/Base_Cleanup
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"
Also libcap will become part of [core] when syslog-ng-3.0.3-1 moved out from [testing]
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.
Commit to SVN trunk: http://mailman.archlinux.org/pipermail/arch-commits/2010-February/080091.html
Added to unimportant rebuild list: http://wiki.archlinux.org/index.php/DeveloperWiki:Unimportant_Rebuild_List#Packages_removed_from_base_group