FS#48514 - [virtualbox] Please bring back virtualbox-host-modules

Attached to Project: Community Packages
Opened by Frank Vanderham (twelveeighty) - Wednesday, 09 March 2016, 04:43 GMT
Last edited by Sébastien Luttringer (seblu) - Sunday, 17 April 2016, 23:44 GMT
Task Type General Gripe
Category Packages
Status Closed
Assigned To Sébastien Luttringer (seblu)
Architecture All
Severity Medium
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 18
Private No

Details

Description:

The recent update of virtualbox 5.0.14-4 replaced virtualbox-host-modules with virtualbox-host-dkms. For reasons discussed in detail on arch-dev-public [1] and the forum [2], which can be summarized by: "Arch is not a source based distribution. Binary packages should be the default.", this request is to bring back virtualbox-host-modules to [Community].

[1] https://lists.archlinux.org/pipermail/arch-dev-public/2016-March/027801.html
[2] https://bbs.archlinux.org/viewtopic.php?id=209780
This task depends upon

Closed by  Sébastien Luttringer (seblu)
Sunday, 17 April 2016, 23:44 GMT
Reason for closing:  Fixed
Additional comments about closing:  virtualbox-modules-arch
Comment by Phillip Smith (fukawi2) - Wednesday, 09 March 2016, 05:01 GMT
To summarize the linked ML and BBS threads (forgive me if I miss any points):

Reasons for precompiled binary packages:
=> Users don't need gcc, kernel headers etc installed (saving disk space)
=> Users with low-spec computers (laptops) aren't forced to compile code (saving time, disk space, power and heat)
=> Users with low-spec internet connections aren't forced to download additional code to compile (saving time, disk space and bandwidth)
=> Prevents modules being recompiled unnecessarily on the end-users PC for minor kernel upgrades.
=> Users don't end up with files in /usr that are not tracked by pacman
=> Other kernel modules are distributed this way (eg, nvidia drivers)
=> dkms + alpm hooks do not work prior to pacman 5.0 (short-term reason)
=> No sane way (currently) to handle package (opt)depends for dkms packages to ensure appropriate kernel-headers are installed

Reasons for DKMS:
=> Simpler for package maintainer to package
=> Allow users of all kernels to install modules the same way (users of "non-standard" kernels have to compile modules anyway)
=> Other kernel modules are distributed this way (eg, ndiswrapper)

The list is quite unbalanced, so I hope I haven't missed any points but I think I've managed to collect them all.

Comment by Marty Plummer (ntzrmtthihu777) - Wednesday, 09 March 2016, 18:59 GMT
While I do agree that there should be binary options for repo kernels, I find
that a few of the above arguements are a bit flawed in the grander scheme of
things, considering the fact that the AUR is a thing, and a possibly large part
of the userbase uses it. Using the AUR assumes that base-devel is installed.

A bit of expac magic and math gives us a total of 110.30 MiB download size for
the 'base' group, with an installed size of 291.89 MiB, for a total size on disk
of 402.19 MiB (assuming you don't nuke the package cache with `pacman -Scc');
with 'base-devel' added (not all of the packages add to the 'base' totals,
because they share some packages in common) bring these totals up to 152.67 MiB,
474.63 MiB, and 627.3 MiB.

Taking all these numbers together, we get the following

Installed: Download Size: Size on Disk: Size (Cleaned)
base 110.30 402.19 291.89
base-devel 152.67 (+38.41%) 627.30 (+55.97%) 474.63 (+62.60%)
linux-headers 159.24 (+44.36%) 667.49 (+65.96%) 508.24 (+74.12%)
virtualbox-host-dkms 159.83 (+44.90%) 678.30 (+68.65%) 518.46 (+77.62%)
[Edit: flyspray wrecked my formatting, see attached for a more readable version]

Now, these numbers may be fuzzy due to floating point math in python (and me chopping it at two digits),
but what do they tell us? Yes, there are some pretty scary percentage increases in used disk space and
download size, but even in the worst case scenario you're only downloading ~160mb and using ~680mb of disk space.
   list.txt (0.3 KiB)
Comment by jb (jb.1234abcd) - Friday, 11 March 2016, 15:00 GMT
OK. I may repeat myself, but this bug report and request is the right place and to the point.

The prevailing view is that we should revert to pre-dkms changes, i.e. back to use of virtualbox-host-modules.
I experienced it myself and think it was not done professionally (learning from pacman update about vb modules
handling change, then frantically looking for some news about it on the main web site, vb wiki page stating that
for regular kernel no dkms was involved, etc).

The arguments for precompiled virtualbox-host-modules package has merits (I may add/emphasize that users consider
nondeployment of dev tools, i.e. compiler, headers, etc, as a preemptive security measure) - this should be default.
Please restore it now so that I can continue updating my kernels too.

You may consider dkms-based solution as an option, with a clear fallback procedure available and documented on vb wiki,
when you figure out technical details of dependencies, handling of various kernel-type header files, etc - this should
be done now on dev list until there is no doubt that consensus exists.
Comment by Oscar Garcia (ogarcia) - Saturday, 12 March 2016, 10:34 GMT
My main worry as maintainer of Arch Vagrant Box is that the base image with base-devel installed now grows over 90 MB approximately, and now cannot provide a base image without base-devel package cause this break the box... :(
Comment by Doug Newgard (Scimmia) - Saturday, 12 March 2016, 12:36 GMT
Who said anything about base-devel?
Comment by Oscar Garcia (ogarcia) - Saturday, 12 March 2016, 12:53 GMT
@Scimmia, base-devel to build modules. Maybe you don't need all base-devel, but sure that you need serveral packages of these group.
Comment by Doug Newgard (Scimmia) - Saturday, 12 March 2016, 13:06 GMT
You need the packages that are deps of the dkms package. You do not need base-devel.
Comment by Oscar Garcia (ogarcia) - Saturday, 12 March 2016, 13:21 GMT
Ok, I correct myself. You can provide a base image without *all* base-devel, only need the dkms deps that not is the entire base-devel group. But the image stills grow.
Comment by Marty Plummer (ntzrmtthihu777) - Saturday, 12 March 2016, 14:44 GMT
I brought up base-devel as it is assumed to be installed for using the AUR, and I thought it was a safe assumption that most everybody uses the AUR as an 'end user'
Comment by Kai Hendry (hendry) - Sunday, 13 March 2016, 01:38 GMT
Is there a workaround here? I can't get dkms to work: http://s.natalian.org/2016-03-13/vbox.txt
Comment by Phillip Smith (fukawi2) - Sunday, 13 March 2016, 06:48 GMT
@hendry Did you read the output?

==> Kernel 4.1.19-1-lts headers are missing. Nothing will be done for this kernel!
==> You have to install the matching kernel headers package to use dkms

Install linux-lts-headers
Comment by Kai Hendry (hendry) - Sunday, 13 March 2016, 07:05 GMT
I'm not using LTS. 4.4.5-1-ARCH

I think the real issue is "Error! Could not locate dkms.conf file." but I don't know how to fix it.
Comment by jb (jb.1234abcd) - Friday, 15 April 2016, 04:15 GMT
Since today:
# pacman -Syu
...
:: Starting full system upgrade...
:: Replace virtualbox-host-modules with community/virtualbox-host-dkms? [Y/n] n
resolving dependencies...
looking for conflicting packages...
error: failed to prepare transaction (could not satisfy dependencies)
:: virtualbox-host-modules: installing linux (4.5-1) breaks dependency 'linux<4.5'
#

$ pacman -Q |grep virtualbox
virtualbox 5.0.14-4
virtualbox-host-modules 5.0.14-4
$ uname -a
Linux myhost 4.4.3-1-ARCH #1 SMP PREEMPT Fri Feb 26 15:09:29 CET 2016 x86_64 GNU/Linux

I am aware of the discussion here:
https://lists.archlinux.org/pipermail/arch-dev-public/2016-April/date.html#start

Loading...