Bug 294341 - Review Request: open-vm-tools-kmods - Kernel modules for open-vm-tools
Summary: Review Request: open-vm-tools-kmods - Kernel modules for open-vm-tools
Keywords:
Status: CLOSED CANTFIX
Alias: None
Product: Fedora
Classification: Fedora
Component: Package Review
Version: rawhide
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Nobody's working on this, feel free to take it
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks: 294321
TreeView+ depends on / blocked
 
Reported: 2007-09-18 06:45 UTC by Brandon Holbrook
Modified: 2013-02-28 14:41 UTC (History)
12 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2007-09-27 09:35:26 UTC
Type: ---
Embargoed:


Attachments (Terms of Use)

Description Brandon Holbrook 2007-09-18 06:45:11 UTC
Spec URL: http://theholbrooks.org/RPMS/open-vm-tools-kmods.spec
SRPM URL: http://theholbrooks.org/RPMS/open-vm-tools-kmods-0-0.1.20070904svn56574.2.6.22.5_76.fc7.src.rpm
Description:
This package contains the 4 kernel modules required by open-vm-tools:
vmblock
vmhgfs
vmmemctl
vmxnet

Some general RFC:
- First and foremost, should this package really be split up into 4 packages, one for each module, like "kmod-vmblock" and "kmod-vmhgfs"  There shouldn't be a reason anybody would want a subset of the 4...
- This package currently builds, installs, and works in F7 but not rawhide (upstream incompat with latest kernels... working on a patch).

Comment 1 manuel wolfshant 2007-09-18 07:13:38 UTC
MInd that I did not test for this particular application, but usually vmware
incompatibility with recent kernels (actually vmware-config.pl -> compilation of
kernel modules ) is fixed by the any-any patch from
http://platan.vc.cvut.cz/ftp/pub/vmware/. Wouldn't it help here too ?

Comment 2 Brandon Holbrook 2007-09-18 07:22:02 UTC
I asked the vmware guys that very question and they responded that their release
to SoruceForge was essentially 'trunk' from their internal source control, which
includes all the any-any updates.  It appears f8 needs the _next_ any-any update :)

Comment 3 Parag AN(पराग) 2007-09-18 10:35:40 UTC
kmod packages? are they allowed still?

Comment 4 Till Maas 2007-09-18 12:19:00 UTC
Kernel Modules in Fedora have been banned from Fedora, see:
http://bpepple.fedorapeople.org/FESCo-2007-09-13.html 

Search for:
| Proposal: No new kmods, and existing ones dropped by F9.

Comment 5 Warren Togami 2007-09-19 22:38:11 UTC
The easiest way for Fedora to ship these kernel modules is if they are accepted
into the upstream kernel.  Now that the license is acceptable (GPLv2) it should
be possible.  Is it heading upstream?

The more difficult way for Fedora to ship these kernel modules is to convince
the Fedora kernel maintainers that we should.  This is more difficult, because
we generally only accept things that are definitely heading to upstream but not
quite there yet.

Comment 6 Denis Leroy 2007-09-21 09:48:18 UTC
Could we ship this as a dkms package ?


Comment 7 Till Maas 2007-09-21 10:24:45 UTC
(In reply to comment #6)
> Could we ship this as a dkms package ?

No, the only way to include this in Fedora is to persuade the kernel maintainers
to include this module directly in the kernel package.


Comment 8 Denis Leroy 2007-09-21 14:34:50 UTC
Here's what Philip Langdale (from VMWare) has to say (he also happens to be the
author of galeon, btw):

> There is a basic acceptance of the principle that we should push them
> upstream but we also know that some of the drivers will require a lot
> of changes or a complete rewrite to get accepted (and vmblock probably
> wouldn't get accepted at all and we'd need to rewrite it using fuse).
> So, given how busy people are, we're being unavoidably vague about
> when this is going to happen.
>
> If you're trying to make an argument for maintaining the modules externally
> for the time being - the big win is having the distro fully functional out
> of the box when installed in a VM - that's what the ubuntu guys are shooting
> for, and I would hope the Fedora guys would want the same thing.

How can we make this work into Fedora ? There are a lot of vmware users out
there, and I think not having open-vm-tools packaged hurts Fedora more that it
helps it. Certainly having it for F-8 would be huge.


Comment 9 Warren Togami 2007-09-21 17:19:33 UTC
This sounds doubtful that it will ever reach upstream.  I recommend pursuing
three parallel tracks on this:

1) Show us that VMWare is making a real effort to eventually get it toward
upstream acceptance.
2) VMWare and davej need to talk about this to see if davej will accept it in
the Fedora kernel in the mean time.
3) Bring this to the next FESCO meeting for discussion.

Comment 10 Dave Jones 2007-09-21 17:25:33 UTC
Re: 2)

Absolutely not.
It's already enough of a battle to get upstream to look at our kernel bugs, and
we aren't that far away from mainline.  Adding stuff that is extremely unlikely
to go upstream is counter-productive to that effort.


Comment 11 Brandon Holbrook 2007-09-21 19:31:31 UTC
This ticket reeks of bureaucracy so bad it's hard to come near it.  First it's
quite annoying that FESCo closed the door on kmods less than a week before I
submitted this pacakge, and they have yet to update the wiki, which I followed
word-for-word making this package.  As far as wiki readers are concerned, there
is still a tried-and-true method to getting kernel modules into Fedora.

I know I'm pleasantly separated from the complexities of kernel maintenance, but
I'm really struggling with how this is different from other packages I maintain.
 As a fedora contributor, I know my upstream packages well and subscribe to all
their {lists|forums|etc}, and more importantly I am willing to put forth any
effort required to keep this packages shipping with Fedora in an operable state.
 I maintain several php-pear and php-pecl packages.  Are you going to argue next
that separate php modules cause needless complexity to I should force jorton to
merge my modules and maintain them himself as part of php.rpm?  He may not know
the modules well or at all.  On top of all that, I am sitting here twiddling my
thumbs ready willing to do the voluntary packaging and maintenance work, why
should I force that work onto somebody else who may not be ready and willing?

What this all comes down to, open-vm-tools is a _HUGE_ new piece of software for
the community.  The ability to install linux in a virtual environment and have 
the guest vm tools come with the distro rocks.  Gentoo has already checked in a
changeset for it, and by Philip's testimony above, Ubuntu is somehow finding a
way through their own red tape to get this working "out of the box".  We all
know RHEL is the big player in the IT server market, but if every other linux
distro on the planet prepackages open-vm-tools except RHEL, that's really going
to hurt its credibility in the ESX community (which I believe is going to
explode in the next [235] years).  I don't care if I package it or the kernel
guys package it, but I'm not wasting my effort convincing the kernel guys to do
it when I'm willing to do it myself.

I'd like to reiterate Denis in Comment #8:
"How can we make this work into Fedora ? There are a lot of vmware users out
there, and I think not having open-vm-tools packaged hurts Fedora more that it
helps it."

Comment 12 Warren Togami 2007-09-21 20:44:07 UTC
I understand your frustration.  You may want to escalate this to the Fedora
Board if you are not satisfied with the rules as decided by FESCO.

Meanwhile you might want to submit the kmod or dkms to Livna so it can be easily
installed for users in the meantime.

Two other issues here:
1) Even prior to this FESCO policy change, it required a case-by-case FESCO
approval for any kmod to get into Fedora.  And that included a requirement that
it was already heading for upstream.  We had outright rejected kmods for
Asterisk hardware due to their refusal to go upstream, while their competitor's
drivers were included because they played by the rules.
2) Even if #1 were not a problem, this is WAY past the feature freeze for F8.

Comment 13 Ville Skyttä 2007-09-21 20:59:44 UTC
I'd like to point out that (unless I've missed something) FESCo has not 1)
announced that external kernel module packages are now banned in Fedora on
fedora-devel-announce nor 2) even posted the summary of the meeting where this
was decided, so it's not that big of a surprise that people may still be
spending time to package things that do not have a chance to be included.  I've
contacted bpepple earlier today, asking for the announcement.

Comment 14 Neal Gompa 2007-09-22 00:16:44 UTC
It is actually kinda sad that Fedora decided to pull dkms kernel module packages
from the repositories because some of those kernel modules are very useful, and
there is no doubt in my mind that Fedora is going to get A LOT of flak for not
finding a way to permit the open-vm-tools into the distribution. Heck, I am mad
myself, because Fedora, my FAVORITE distro, is going to reject one of the
biggest boons to Linux since Xen! It seems that Fedora is losing its ability to
progress and is shooting itself in the foot too many times.... If you really
don't want to support them, simply put the optional kernel modules in a separate
repository, but that is inadvisable. Just allow them in, and better yet, work on
improving them for mainline submission!

Comment 15 Jason Tibbitts 2007-09-22 00:41:33 UTC
There have never been any dkms kernel packages in the repositories, so it is
incorrect to say that anything has been pulled.

Comment 16 Neal Gompa 2007-09-22 00:50:31 UTC
Sorry, I meant dkms/kernel module packages... But there used to be packages in
Fedora for them. For instance, kqemu accelerator...

Comment 17 David Woodhouse 2007-09-22 00:51:45 UTC
(In reply to comment #8)
> > some of the drivers will require a lot
> > of changes or a complete rewrite to get accepted (and vmblock probably
> > wouldn't get accepted at all and we'd need to rewrite it using fuse).

So it's not actually something we'd have wanted to ship even if we _hadn't_
decided not to allow any more kernel module packages.

The reason we decided not to allow any more kernel module packages is because
this is actually almost always the case. If it's not good enough for upstream,
it's not good enough for us. There are _few_ exceptions, and we've _always_
coped with those by carrying patches in the kernel package.

Comment 18 Jason Tibbitts 2007-09-22 01:48:22 UTC
kqemu has never been shipped in Fedora.  There is at least one third-party
repository which ships a dkms package of it.  For that matter, there has never
been a dmks-based kernel module package in Fedora.  dkms itself is  shipped, of
course.

There have only been two kernel modules shipped in Fedora which are not part of
the kernel package: kmod-em8300 and kmod-sysprof.

Comment 19 Parag AN(पराग) 2007-09-22 02:26:39 UTC
(In reply to comment #13)
> I'd like to point out that (unless I've missed something) FESCo has not 1)
> announced that external kernel module packages are now banned in Fedora on
> fedora-devel-announce nor 2) even posted the summary of the meeting where this
> was decided, so it's not that big of a surprise that people may still be
> spending time to package things that do not have a chance to be included.  I've
> contacted bpepple earlier today, asking for the announcement.

 
 AFAIK, FESCO has not yet got their final conclusion. Its not yet made public
whether to ban kernel module or accept them. I think this is second time I am
asking FESCO to make decision in public early(whatever maybe either ban kernel
modules or accept needed kernel modules only).
 I already raised this issue on fedora-devel. If its been unclear to FESCO
itself then people will not stop submitting kernel module packages and same
discussion will get forked again and again whether to accept or ban kernel
modules and which one is good kmod or dkms packaging?


Comment 20 Brandon Holbrook 2007-09-22 02:51:58 UTC
Till posted the IRC log from last week's FESCo meeting in Comment #4 where they
voted 8-1 (Thanks jtibbs, you've got my vote any day of the week) on this very
matter.  I agree with you that the decision hasn't been made public (yet), but
that doesn't mean FESCo is unclear / undecided on the matter.

Comment 21 Parag AN(पराग) 2007-09-22 04:47:02 UTC
FESCO,
Am I supposed to look at wikipages for what happened last week's meeting? I
thought its usual way of FESCO to post minutes of meeting on fedora-devel. I
guess If I have not missed any mail I have not seen FESCO meeting minutes got
posted to fedora-devel after 2007-09-06 meeting. How am I supposed to know what
decisions were made in last FESCO meeting?

Brandon,
  Sorry, I missed that comment to read.



Comment 22 Jason Tibbitts 2007-09-22 04:55:23 UTC
Might I ask why you think a comment in a random bugzilla ticket is the proper
way to reach FESCO?


Comment 23 Parag AN(पराग) 2007-09-22 05:37:19 UTC
Sure(In reply to comment #22)
> Might I ask why you think a comment in a random bugzilla ticket is the proper
> way to reach FESCO?
> 

Sure. I saw most of peoples related to FESCO and Kernel module packaging are
commenting here. So I took the opportunity to continue the forked (Kernel
modules) discussion.
Do you want me to ask the same(again and again whether kernel modules are banned
or not?) in Fedora-devel mailing list as I can't see any mail on
fedora-devel/fedora-announce saying like that?

Comment 24 Brian Pepple 2007-09-22 20:36:47 UTC
(In reply to comment #21)
> FESCO,
> Am I supposed to look at wikipages for what happened last week's meeting? I
> thought its usual way of FESCO to post minutes of meeting on fedora-devel. I
> guess If I have not missed any mail I have not seen FESCO meeting minutes got
> posted to fedora-devel after 2007-09-06 meeting. How am I supposed to know what
> decisions were made in last FESCO meeting?

Normally, I send out a summary for the FESCo meetings, unfortunately I've been
swamped at work the last 2 week and haven't had a chance to write-up a summary
(though the irc logs are available on the wiki).  When I get back home tomorrow,
I should have some free time to work on it.


Comment 25 Denis Leroy 2007-09-23 09:43:09 UTC
(in reply to comment #17)
> > some of the drivers will require a lot
> > of changes or a complete rewrite to get accepted (and vmblock probably
> > wouldn't get accepted at all and we'd need to rewrite it using fuse).
>
> So it's not actually something we'd have wanted to ship even if we _hadn't_
> decided not to allow any more kernel module packages.
> 
> The reason we decided not to allow any more kernel module packages is because
> this is actually almost always the case. If it's not good enough for upstream,
> it's not good enough for us. There are _few_ exceptions, and we've _always_
> coped with those by carrying patches in the kernel package.

David, I think that is not a fair assessment. Pushing code to the upstream
kernel is known to be a long and arduous process, and is not always related to
the quality of the code in question, but more about the way it's written, how
it's integrated with other/newer parts of the kernel, and so on.

A prime example I'm familiar with was the Marvell SATA driver: a very high
quality (based on extensive experience) driver, but written straight on top of
the SCSI stuff without using the new libata layer, and as such unpushable
upstream. (a moot example too, Marvell is now working with the upstream
maintainer to port the driver, but these things take time)

I think the things that matter most here are:
 1) is the code stable and high-quality (and well QAed) ?
 2) is the code actively maintained ?
 3) will the code have a large user base ?



Comment 26 David Woodhouse 2007-09-23 10:00:56 UTC
I disagree -- I think it _is_ a fair assessment. It's about the quality of the
code and the design -- and that really _should_ be about "the way it's written,
how it's integrated with other/newer parts of the kernel, and so on."

Yes, the bar is high. But with good reason. And the line we tend to take in
Fedora is "if it's not good enough for Linus, we want you to make a _very_ good
case for why you think it's good enough for us".

Remember that we are _not_ just banning all non-upstream code. We've always
carried patches with new drivers &c in our kernel RPM, and now that all packages
are effectively part of "Extras" where the Great Unwashed can get at them, you
have the opportunity to maintain your patch there directly. The only thing
that's different, fundamentally, is that before you had to get an explicit
agreement from FESCo for a kmod package -- and now you have to get an explicit
agreement and commit access from the kernel maintainers instead.

And _if_ your code is deemed good enough to ship, then it's a whole lot nicer
from a technical point of view, because it's not in a separate package with all
the rpm hassle that entails and the requirement for builds to be in lock-step.

On a separate but mostly related note -- at the Kernel Summit a couple of weeks
ago, we spoke about making it easier to merge code which distributions wanted to
ship, and perhaps being slightly less picky about it and more pragmatic. Linus
indicated a desire _not_ to see distributions carrying such patches, like the
wireless-dev tree that Fedora is currently shipping. The idea is that if distros
are going to ship it, we might as well merge it upstream. So merging upstream
_may_ get a little easier too. But there are downsides to that approach on
Linus' part -- because people may stop trying as soon as code is merged, and the
final issues may never get sorted out. We'll see how it works out.

Comment 27 Christoph Hellwig 2007-09-23 10:24:55 UTC
(In reply to comment #25)

> A prime example I'm familiar with was the Marvell SATA driver: a very high
> quality (based on extensive experience) driver, 

Sorry, but either you have no clue or you're a liar.

Comment 28 Christoph Hellwig 2007-09-23 10:36:31 UTC
(In reply to comment #10)
> Re: 2)
> 
> Absolutely not.
> It's already enough of a battle to get upstream to look at our kernel bugs, and
> we aren't that far away from mainline.  Adding stuff that is extremely unlikely
> to go upstream is counter-productive to that effort.

I took a quick look at the filesystem and block driver in the package and
they're a complete nightmare.  Nothing I would recommend people to use at all,
nevermind to package.



Comment 29 Denis Leroy 2007-09-23 10:44:31 UTC
Christoph, this is getting off-topic, but we ship mv_sata 3.6.3 with the SunFire
X4500 ("Thumper", 6 88SX controllers, 48 disks). Granted my experience is only
with the 88SX chip series, i cannot speak for other products, and we support
only enterprise kernels, not the latest and greatest. We ship that driver on the
Thumper support CD for very good reasons. We've pushed that driver to its limit
in terms of performance for some of our Thumper-based products, using 12 4-disk
software RAIDs, with hot-swaps etc... Back when Thumper was designed, the kernel
sata_mv driver was not in a usable state yet. It has made much progress since.


Comment 30 Colin Walters 2007-09-24 20:52:36 UTC
If it's just the block driver/filesystem modules that are bad, is it possible to
include a subset of functionality?  For example, "Drag and Drop, Text and File
Copy/Paste" and "Time synchronization", "Automatic guest screen resolution
resizing"?

Looking at http://open-vm-tools.sourceforge.net/faq.php there is a fairly big
list of stuff.


Comment 31 Christoph Hellwig 2007-09-24 21:03:02 UTC
(In reply to comment #30)
> If it's just the block driver/filesystem modules that are bad, is it possible to
> include a subset of functionality?  For example, "Drag and Drop, Text and File
> Copy/Paste" and "Time synchronization", "Automatic guest screen resolution
> resizing"?

I don't think either of these features requires a kernel driver.  I can't easily
spot any routines related to these items at least.

Comment 32 Christoph Hellwig 2007-09-24 21:13:45 UTC
Looks like the vmblock filesystem-lookalike actually is used to implement
cut&paste in some odd way.  Not much of a chance there, sorry.

Comment 33 Adar Dembo 2007-09-25 01:37:46 UTC
(In reply to comment #32)
> Looks like the vmblock filesystem-lookalike actually is used to implement
> cut&paste in some odd way.  Not much of a chance there, sorry.

Yeah, it's used to handle both copy/paste and DnD. See
http://sourceforge.net/mailarchive/message.php?msg_name=46E6FDEC.3090700%40codemonkey.ws.

Christoph, since we do want to upstream our kernel modules, could you give us an
idea of what needs to change? Obviously we have to adapt the modules to the
kernel coding style and cut out the older kernel compatibility code, but what
else needs to be reimplemented or redesigned?

Comment 34 Dave Jones 2007-09-25 01:59:41 UTC
A better forum for kernel code review is probably the kernel-mentors list, or
linux-kernel rather than bugzilla.


Comment 35 Elliot Lee 2007-09-26 23:26:15 UTC
[Blargh, I need to get my fedorabugs access set up so I can close this myself.
:] Given the Fedora policy, and the impossibility of complying with it just yet,
it seems like this bug should be closed for now. And it's clear that there's
more communication that needs to happen in general about the purpose behind and
implementation of the modules, before they go upstream (thanks for the pointer
to kernel-mentors, Dave).

(Can anyone suggest a preferred "fringe" repository to try getting this package
into in the meantime, so that users that really want the modules can get them?
ATrpms/DAG/Dries/FreshRPMS/NewRPMS/Livna?)

Comment 36 manuel wolfshant 2007-09-27 09:38:33 UTC
Elliot, I've closed the bug for you, I hope you agree on the resolution.
I would have suggested rpmfusion as alternate repo, but since the review rules
are mostly the same, I am not sure it can be included over there, either.

Comment 37 Thorsten Leemhuis 2007-09-27 10:35:05 UTC
(In reply to comment #36)
>
> I would have suggested rpmfusion as alternate repo, but since the review rules
> are mostly the same, I am not sure it can be included over there, either.

The "mostly" here is the point; packages with kernel modules will be allowed in
rpmfusion, but we are not 100% sure yet how to package them. A mix/combination
of kmods and dkms seems likely to me ATM. 

But rpmfusion needs to get it's infra running first before we take care of that
problem.


Comment 38 Thorsten Leemhuis 2007-09-27 10:35:52 UTC
In addition: livna will of course take the kmods and from there we'll make it
easy to move them to rpmfusion later.

Comment 39 Brandon Holbrook 2007-10-02 04:01:28 UTC
Submitted to livna

Comment 40 john.r.moser 2013-02-28 14:41:09 UTC
The fact that Fedora takes a "Kernel upstream won't talk to us if we have bugs in tainted kernel, so we don't ship kernel mods" stance is the big blocker here.

In essence, it's a matter of user choice.  RMS will say this is great and fine, because users can just decide that Fedora is crap and fork it, because GPL.  Sensible people will realize 1) forking something huge like Fedora is nutty; 2) add-on repos (RPMForge) are simpler; and 3) "Fedora is crap" is the ultimate bug.

More to (3), re 'user choice', the Fedora developers aren't shipping kernel module packages or dkms for users to electively add on.  I fully support Dave Jones in his idealism of a perfect, pristine, untainted main kernel package.  A base vanilla package I would support in any distro, with whatever kernel patches (yeah every distribution has a pile...) in a different kernel package.  I don't mind very-vanilla.

I think better would be a hard-line policy that additional kernel modules 1) must not modify the kernel tree; and 2) must ship as separate packages.  The user can always subvert "No External Modules" with a compiler, and what then?  "Well that's not supported?"  You could always mark external modules as "At your own risk" as policy--because face it, resources are limited and not everyone can approach kernel issues.


Note You need to log in before you can comment on or make changes to this bug.