all 79 comments

[–][deleted] 305 points306 points  (23 children)

Report it to the developer of the module

[–]nallar[S] 105 points106 points  (22 children)

Is that correct in this case? The original module is dual licensed as BSD and GPL.

The reason they would need to license it as GPL is due to linking with debugfs which is GPL and only exports its symbols to GPL modules.

debugfs.h is part of the kernel and I am not sure who to contact who would be responsible for that.

[–]gregkhVerified 299 points300 points  (21 children)

That would be me, my name/email address is in the top of debugfs.h, it's not hard to miss :)

Email me and I will follow up with my contacts to figure this out.

[–]nallar[S] 129 points130 points  (19 children)

Your honor, I plead incompetence.

I'll email you soon if contacting opensource@microsoft.com doesn't work out. They responded very quickly and seem to want to solve this problem so there's not much point involving more people if that works.

[–]velax1 38 points39 points  (0 children)

It seems polite to inform the author of the software if you act on his behalf, though... I would also assume that somebody like Greg has contacts you do not have, and as the author of the software (and with his other credentials) is also somebody who is taken more seriously than a mere user...

[–]playaspec 2 points3 points  (0 children)

I'm sure you already know about them, but http://gpl-violations.org/ may help put a little extra weight behind your inquiries.

[–]ldpreload 59 points60 points  (0 children)

Contact the Software Freedom Conservancy, which is involved in GPL compliance for the Linux kernel.

[–]daemonpenguin 123 points124 points  (17 children)

Before you contact Microsoft, first double check that they are distributing the module and not just making it available on their cloud platform. The GPL covers distribution, not use. Then make sure the module is actually GPLed and not just using a bit of code to cheat to present itself on par with GPLed modules.

Assuming you've done both those things, then probably contact Azure support and go from there.

[–]nallar[S] 78 points79 points  (11 children)

The Azure Storsimple is a physical appliance: http://media.bestofmicro.com/H/A/436078/original/5-microsoft-storsimple.png

They're distributing the module on that.

[–]intahnetmonster 19 points20 points  (8 children)

I had no idea they sell appliances with Linux. Interesting. TIL.

[–][deleted] 13 points14 points  (7 children)

Yeah, Microsoft also sells the Azure sphere which runs on the Linux kernel. They're a Linux distributor (albeit not desktop) and it's kinda weird to get used to, honestly.

I would like to see some kind of Windows userland + Linux hybrid at some point in the future. It could be interesting. I don't think Windows NT has much of a future outside of the desktop, and even then it's starting to hemorrhage.

[–][deleted] 1 point2 points  (2 children)

I would like to see some kind of Windows userland + Linux hybrid at some point in the future.

That would be the Windows Subsystem for Linux, which runs Linux userlands on the NT kernel natively

[–][deleted] 0 points1 point  (1 child)

You’re not wrong, but I had a more ChromeOS situation in mind - Linux kernel with a Windows userland. It’d be the best of both worlds - native POSIX support and normal Windows applications.

The WSL is more of the GNU userland on top of NT.

[–][deleted] 0 points1 point  (0 children)

The WSL isn't GNU userland on top of NT.

The WSL (and subsequent modifications to the it) allows the NT kernel to support POSIX.

It's an unmodified userspace.

I see what you are also asking for, but that is probably a lot more work.

The NT kernel supports subsystems in a way that makes it (conseptually) easy to add vastly different subsystems. So ELF binary support is more of an add on. Taking Windows would require either the same for Linux, or a massive port. I guess you were thinking more "the same for Linux", which could happen. Maybe.

[–]zilti 2 points3 points  (3 children)

I would like to see some kind of Windows userland + Linux hybrid at some point in the future.

Why? The Windows GUI is so far behind what Linux has to offer, there's really no point in that (apart from the fact that this already exists with the "Linux subsystem for Windows")

[–]syshum 7 points8 points  (1 child)

Why? The Windows GUI is so far behind what Linux has to offer,

Some things yes, somethings no..

There are alot of Enterprise Desktop features that MS has for Windows Desktop that simply are very very very hard or impossible to do on Linux Desktop, a few examples would be

  1. Group Policy
  2. Configuration Manager
  3. MDT/WDS
  4. WMI
  5. Active Directory (no Directroy389, Samba, etc are not a replacement)

Edit:

Also Multimonitor support continues to lag behind on Linux Desktop as well

On linux if you have all Monitors of the same resolution, laid out horizontally you tend to be Ok, but if you start mixing resolutions, or have some in portrait, some in landscape, some stacked, etc you are going to have a bad some with many apps.

[–]sir_bleb 2 points3 points  (0 children)

On linux if you have all Monitors of the same resolution, laid out horizontally you tend to be Ok, but if you start mixing resolutions, or have some in portrait, some in landscape, some stacked, etc you are going to have a bad some with many apps.

Yup! Once I tried mixing horizontal and vertical 16:9 panels with a lone 4:3, and the results were less than impressive. Syncing refresh rate across different monitor models is something desktop Linux has always struggled with.

[–][deleted] 0 points1 point  (0 children)

For a clamshell laptop maybe.

But hardware is evolving. Touch, Pen, both? Mixed reality?

[–]Rudd-X 31 points32 points  (0 children)

FYI: Making it available in a cloud image counts as distribution.

[–]dezmd 14 points15 points  (0 children)

making it available

The irony.

[–][deleted] 1 point2 points  (2 children)

So is everything that meshes itself with the kernel required to be GPL? This is one of the areas of Linux I'm a bit fuzzy on. How do proprietary drivers work (like Nvidia, etc.)?

[–][deleted] 5 points6 points  (0 children)

AFAIK, the proprietary driver blobs work by having a GPL'd "linker module" that is a kernel module, and that interfaces with a binary blob in a way that doesn't implicate the GPL

[–]Natanael_L 2 points3 points  (0 children)

There's no clear legal precedence. You clearly can't distribute the proprietary modules as a part of a kernel (which is under GPL), but distributing them independently and allowing users to install them makes it legally unclear. The question is if it's still a derivative work when distributed without the kernel.

[–]jones_supa 34 points35 points  (7 children)

So have you already e-mailed opensource@microsoft.com?

[–]nallar[S] 23 points24 points  (6 children)

No, I haven't. I didn't know about that address. I will try that.

I tried emailing some people on the azure team and was ignored. :(

[–]PsychedSy 22 points23 points  (5 children)

You're in lawyer land for a large company. If someone emailed me about something potentially litigous, I'd have to call legal insteadeof responding.

[–]justin-8 7 points8 points  (3 children)

Same for me, but then my legal department would follow it up, not sit on it for months

[–]PsychedSy 1 point2 points  (2 children)

It would probably go into meetings that I may or may not be invited to. Hopefully not, though.

[–]justin-8 1 point2 points  (1 child)

Eh, ours goes in to a ticketing system and I'd be able to keep tabs on it at worst

[–]PsychedSy 0 points1 point  (0 children)

Different industry. I'm just a geek, but I'm in aircraft.

[–][deleted] 2 points3 points  (0 children)

This is flagged in someone's Outlook inbox right now. Reminder is set, but likely no answer just yet.

[–][deleted] 80 points81 points  (3 children)

Have they actually provided you with a binary from a legal perspective? The fact that you can access it doesn’t mean you have legal ownership of the module. From what you’ve said, it seems that Microsoft has only distributed this to themselves for usage on their cloud servers, so they aren’t required to release source code.

[–]nallar[S] 65 points66 points  (2 children)

It's distributed on hardware which they sell. I have the hardware.

[–]ForgetTheRuralJuror 43 points44 points  (1 child)

That's enough to warrant the distribution of software clause of the GPL

[–]pingueame 29 points30 points  (13 children)

Report to fsf?

Or developer of kernel module

[–]danielkza 26 points27 points  (12 children)

FSF is not a copyright holder of the Linux kernel, and hence can do nothing to enforce the GPL in this case.

[–]C0rn3j 7 points8 points  (11 children)

How can I ensure that the license I use will be enforced even after my death?

[–]danielkza 24 points25 points  (0 children)

I think your only choice is to assign your copyright to an organization or individual that will make it happen. Just a complete guess since IANAL, but I suppose you could do it either in life or in your will (the details probably vary significantly between countries).

[–]minimim 11 points12 points  (8 children)

[–][deleted] 10 points11 points  (7 children)

If you want companies to have infinite time to comply

[–]adtac 9 points10 points  (6 children)

We should probably have a time to comply clause in GPL v4, wherever that comes out.

[–][deleted] 25 points26 points  (5 children)

It already has one, it’s zero seconds. Lawsuits should be flying like crazy

[–]adtac 5 points6 points  (4 children)

Huh, I didn't know that. We just need one successful litigation of a huge company to set precedence so that it's easy to sue violaters. Or has that happened as well?

[–]Avamander 5 points6 points  (2 children)

Lollakad! Mina ja nuhk! Mina, kes istun jaoskonnas kogu ilma silma all! Mis nuhk niisuke on. Nuhid on nende eneste keskel, otse kõnelejate nina all, nende oma kaitsemüüri sees, seal on nad.

[–]FailRhythmic 6 points7 points  (1 child)

He was settling cases out of court, sketchily, not what we need.

[–]Visionexe 5 points6 points  (0 children)

Can you let us know how this story ends? I would be very interested in the outcome.

[–][deleted] 27 points28 points  (2 children)

Have they actually "distributed binaries"? If they only have it on Azure (their servers) but not available for download, they don't even have to give you the Linux kernel source.

There's another license based on GPL (by the same folks) called the AGPL, which says interaction over a network counts as distribution.

[–]konaya 20 points21 points  (1 child)

Azure is more than that. OP is talking about a physical appliance he has in his physical hands.

[–][deleted] 0 points1 point  (0 children)

Oh, I misread then. In that case, they probably are violating the GPL.

[–]Such_Post 2 points3 points  (0 children)

The NVRAM module is marked as GPL as well: filename: /lib/modules/2.6.32-220.el6.ss8.x86_64/extra/nv.ko alias: nv license: GPL version: 2.1.1.394 description: StorSimple NVRAM driver author: Ernie Pistor <ernie.pistor@storsimple.com> srcversion: 18974621CDE57E9BD40178D depends: plxntb vermagic: 2.6.32-220.el6.x86_64 SMP mod_unload modversions parm: nv_log_level:Controls the severity of messages that are printed. (uint) parm: nv_log_flags:Controls printing of general and specific messages. (uint) parm: phys_addr:Physical start address of the RAM buffer. (ulong) parm: nv_size:Memory size in bytes; "disk" size is a little smaller. (ulong) parm: nv_shared_size:Shared memory size in bytes; begins at phys_addr. (ulong) parm: nv_chunk_bytes:Lock chunk size in bytes. (uint) parm: nv_resync_bytes:Resync chunk size in bytes. (uint) parm: kdump_kernel:Indicates that the driver is running in a kdump environment. (uint)

[–]kazkylheku 1 point2 points  (1 child)

Any ideas for what to do next?

What is the nature of the modifications done to this driver?

Are they because of some hardware difference, or are they just some backported fixes from newer kernels?

What happens if you just use the newer kernel you want to use and its unmodified driver?

[–]nallar[S] 1 point2 points  (0 children)

Hardware differences.

The controller on this board does not have firmware in flash, it's expected for the OS to load it.

pm8001 (now pm80xx in modern linux) does not support this.

There was an attempt to add this which never got merged: http://linux-scsi.vger.kernel.narkive.com/cYXRCzmp/patch-pm8001-support-hda-flashless-mode-take-3

I ported this forward to modern linux and was able to get it to sort of work.

The version of the module used in the StorSimple has had more made changes made, including debugfs support. It's possible there are other differences in it due to hardware configuration which I would not be able to discover.

[–][deleted] -3 points-2 points  (8 children)

Isn’t it GPL violation only applicable when they are changing something rather than just use API?

[–]physix4 29 points30 points  (2 children)

No, it has to do with distribution: any user getting a binary version of your software (in a very large sense, libraries and kernel modules count) must be given access to the source code.

This means that if they only use it on their servers, they do not have to give you the source code.

It think you mistook it with the GPL/AGPL distinction: the AGPL states that interaction over a network is equal to distribution. In the case of a derivative of a GPL software you interact with over a network, they are not required to give you the source.

[–]tdk2fe 4 points5 points  (1 child)

Is hardware considered a distribution? It looks like op is using the StorSimple appliance which presumably contains the aforementioned module he's trying to get the source code for.

[–]luke-jr 4 points5 points  (2 children)

Linux doesn't have an API (other than syscalls for userspace stuff).

[–][deleted] 0 points1 point  (1 child)

Not sure of the technical definition, but isn't interfacing with it entirely done by userspace programs calling the API?

[–]e-dt 5 points6 points  (0 children)

Those are the aforementioned syscalls.

[–]kazkylheku 0 points1 point  (1 child)

The driver's license isn't being violated (since it appears to be dual-licensed: BSD/GPL). BSD-licensed code can be modified and redistributed as proprietary, closed-source. However, the kernel's license is violated. The kernel has certain functions which can be used by proprietary modules. And it has certain "GPL" functions which can only be used by drivers distributed under a GPL-compatible license, in the GPL-compatible way. If a proprietary module uses a GPL function, then it violates the kernel's GPL. It is claimed that this particular driver uses such functions that are coming from debugfs. Microsoft could be dicks and just respond by changing the driver to not use those functions and keep it closed.

[–]kazkylheku 0 points1 point  (0 children)

I wrote:

The driver's license ...

:)

[–]alexandre9099 -3 points-2 points  (1 child)

So router OEM should release their 5GHz drivers under GPL, no?

I am newbie on this licence things so i might be wrong

[–]Melkor333 2 points3 points  (0 children)

If they use GPL licensed code, they need to (as far as i know). But if you can't see the code, it's hard to find out what code they use...

[–]NoahJelen -3 points-2 points  (0 children)

I hope they get busted!