Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
CUPS License Change Coming (cups.org)
168 points by executesorder66 on Nov 10, 2017 | hide | past | favorite | 92 comments



The OpenStreetMap project changed the licence of the data a few years ago (for Complicated Reasons™). People had to be contacted and ask to relicence their data, and eventually some data had to be deleted.

There is now a Contributor Terms¹ which governs how the licence can be changed. It requires a two thirds majority of active contributors (at least one change in at least 3 of the last 12 months, a working email address and replies to an email within 3 weeks) to approve a change to an "other free and open licence".

That's a good way to change licences like that.

[1] https://wiki.osmfoundation.org/wiki/Licence/Contributor_Term...


I did some digging, and found an explanation for the change:

http://wiki.osmfoundation.org/wiki/Licence_and_Legal_FAQ/Why...


Good, but IMO far from watertight. They do not define what “free” and “open” mean. Presumably this refers to Free Software and Open Source licenses, but data isn’t software, so it cannot fully mean that. Also, I’m not sure all contributors would be happy if they moved to a license analogous to the GPL (that would mean users combining openStreetMap data with their own data would have to release their data under a similar license)

As it stands, worst-case, the data can, in theory, get locked up in two steps. Step one would move to a “free and open” license that doesn’t include the requirement to keep the license “free and open”, step two would take it commercial.

Also, reading that license for corner cases, what is the legal meaning of “worldwide”? Would it be legal to use OpenStreetMap data from orbit? From a moon observatory? From Mars?


1. Open Definition, http://opendefinition.org/

2. OSM already has a sharealike licence, albeit more akin to LGPL than GPL

3. No, you misunderstand entirely. The Contributor Terms and the current choice of licence (the Open Database Licence) are separate. Even if OSM changes licence, the same Contributor Terms still apply, and those continue to mandate a free and open licence. There is no way to move to a non-open licence without breaking the terms under which every mapper has agreed to contribute their data.

(Even if you did: why? The OSM Foundation is intentionally light - it's a million miles away from the Wikimedia Foundation. Its assets are the domain name and trademark, a very small amount of hardware, and one part-time staff member. You could fork OSM trivially if the Foundation decided to "close the dataset", i.e. hosted a non-open dataset on openstreetmap.org.)


> Also, reading that license for corner cases, what is the legal meaning of “worldwide”? Would it be legal to use OpenStreetMap data from orbit? From a moon observatory? From Mars?

I guess that you have similar issues with Apache 2.0 (which also uses the term "worldwide"), GPLv3 (it uses "worldwide" for the patent grant), MPLv2, all of the Creative Commons licenses, etc.

"Worldwide" is a very commonly used term in license texts (even texts of proprietary licenses). Since NASA uses software licensed under the above licenses, and nobody has sued them, I doubt that this is going to be a huge legal problem. Not to mention if it ever went to court, the context of the time the license was written would be considered, and the term "worldwide" would likely be considered identical to "universal".


> * Also, I’m not sure all contributors would be happy if they moved to a license analogous to the GPL (that would mean users combining openStreetMap data with their own data would have to release their data under a similar license)*

Ummm... the OSM licence is very close to that already. It has a share-alike part, and most of the members are very much in favour of that....


Another day, another reason to never sign a CLA unless it _explicitly_ states what licenses your code can be relicensed as. I really wish more people used the FSF CLA, which effectively states that they will not relicense your code under a license that isn't copyleft[1].

[1]: https://mjg59.dreamwidth.org/29160.html?thread=1094632


Or just never sign a CLA. Can’t relicense my code? That’s a feature, not a bug.


There are valid reasons to sign a CLA, though they are vary rare. I believe the FSF CLA is the only one I would ever feel confident signing (because it very strongly restricts what they can do) -- mainly because it means that the FSF has a much stronger case (legally speaking) if it decides to file a copyright suit against an alleged infringement of the work. From my (not-an-American-and-definitely-not-a-lawyer) understanding, American copyright suits are much stronger if you hold a majority copyright over a work rather than only having a very small set of contributions you own.

But really, licensing things under GPLvX-or-later is the best way of handling licensing updates with many contributors.


For example, one possible reason to sign a CLA is if you want to contribute, and the repository owner will not allow you to do so otherwise. It may be that you value contributing more highly than what license later versions of the code use. At least for me, that would typically be the case.


> But really, licensing things under GPLvX-or-later is the best way of handling licensing updates with many contributors.

Even worse. Now the FSF, or whoever wrestled control of the FSF in he future, has the authority to relicense as they see fit.

No, I stated my preferences when I licensed it the first time. If that doesn’t work for you in the future, tough beans.


... but it also means the project maintainers won't maintain your feature.

(still one has to decide for oneself ... I wouldn't sign any CLA with anybody either)


I’m okay with that. I wrote code on my own time. It is my natural product of my own labor. I’m not giving it away.


Just remember all of the work that the MAME team had to do to actually relicense all of its code under the GPL from essentially no license agreement.


What are you arguing? The fact that someone can’t come along later and relicense the code I wrote is a good thing. Why do you assume I’d be okay with whatever license they want to use in the future?


In the case of MAME, a lot of folks contributed without knowing/caring about a license.

I think if you gave people the option of signing something that allows relicensing of their code under copyleft agreements without needing explicit permission, a lot of people would take it. Tracking folks down who have been gone from your community for years takes a lot of effort.


Finding all previous contributors might be difficult, but the hardest part of a relicensing effort is that a previous contributor may have died. At that point, the copyrights they had are passed via their will (usually to a spouse or child) and now you have to convince someone who might not even be aware of Free Software as a concept to make a decision about their departed relative's views on a topic they knew nothing about.


It's at least somewhat unclear whether relicensing can happen anyway even in the absence of a CLA. This question came up a bit at the time of GPLv3 introduction when there was some question whether Linux could relicense even if Linus wanted to--which he didn't. Lawyers like Eben Moglen argued that there were legal theories under which it might be possible. [1]

[1] https://www.cnet.com/news/linux-to-gplv3-a-practical-matter-...


Where can I read more about this "FSF CLA" thing?


For those of you that are surprised that this is possible, "In February 2007, Apple Inc. hired chief developer Michael Sweet and purchased the CUPS source code." (from Wikipedia)


Not only that. If I remember correctly, contributors also had to sign a contributor agreement which gave ownership of the code to the project.

If they didn't, I guess they would have had to ask every contributor if they were ok with a license change.


or throw out their code i guess.



Which is a tough dilemma when you work on something for the love of it. Your work on code for it to be used, but if someone bullies you with something like : change your license or get lost, well, it's a tough decision.

Now, in this case, CUPS on Apple product is not the only use of CUPS, but being able to claim your software runs in Apple product is certainly a nice to have.


If I own something and I want to control the term of how it's used, that's not bullying. Isn't that exactly what licensing is all about in the first place? If that's 'bullying' then every OSS project with a license is also bullying...


It goes to show you how old that article is in that I wrote that article and I flamed out of Wikipedia years ago.


The title here suggests the license was GPLv2 previously. It was GPLv2 and proprietary relicensing.

That is, printer vendors were already able to not comply with the GPL when a proprietary license from Apple applied.


Indeed, the old license [1] was not pure GPLv2, but a variant of GPLv2 with additional exceptions for Apple operating systems, allowing others to develop proprietary printer drivers for Apple operating systems. It even covered the use of the example code for this purpose without the need to release the source code of the resulting driver based on that.

[1] https://github.com/apple/cups/blob/branch-2.2/LICENSE.txt


I’m just glad Apple still uses CUPS. The CUPS web interface provides a bit more power over System Preferences


There's a web interface?


You just have to enable it first.

    $ cupsctl WebInterface=yes


Yeah, it's great for setting stuff like printing defaults so you don't have to set the print quality or page size over and over again (unless I'm missing an obvious way to do it in System Preferences?).


I have my printer added multiple times with different default configurations; eg b&w-draft-printer, colour-photo-printer; it's much easier than messing with settings all the time.


Also it's the only way to disable a printer from certain users. (Great when a 5 year old is kept quiet on a laptop to discover she can print from Chrome's PDF viewer and starts manically laughing at sending 20 colouring in sheets to the printer...)


No, there's no other obvious way. You can create and edit presets in print dialogs (unless you're using an app that refuses to use system print dialogs like Chrome), and the printer can default to the last used preset, so that covers the most common use cases.

Happy to know about the web interface though, that will be very handy!


Not obvious, but you can also use the command line tool lpadmin.


I can’t remember if it’s enabled by default but it’s at localhost:631


I like the Apache license, and I'm sure some projects such as the BSDs will be happy about the change, but is there an explanation of why this change came to be, and why now?


I just hope they will not start to have an internal branch and slowly stop pushing improvements back into the mainline. This is the only point where the Apache license change could negatively affect all the users.


I don't see any difference between GPL or Apache in this case.

Since they apparently have the full copyright on the code (otherwise they wouldn't be able to make the license change in the first place), they can do whatever they want with the code, no matter which license they offer to others.

Moreover, even if they don't have the full copyright, the GPL already allows for having an "internal" branch - as long as it is really internal. Also you, privately, can use and change the code as you want, without any obligation to publish anything. The GPL rules are designed to only apply once you give the modified code (source or binary) to others.


> Moreover, even if they don't have the full copyright, the GPL already allows for having an "internal" branch - as long as it is really internal. Also you, privately, can use and change the code as you want, without any obligation to publish anything. The GPL rules are designed to only apply once you give the modified code (source or binary) to others.

Since Apple actually does redistribute the binaries this second point is moot. But the first part is spot on. It's their code, they can do whatever they want. I have to admit I'm not even sure why they did change licence.


> I have to admit I'm not even sure why they did change licence.

See previous discussion on HN https://news.ycombinator.com/item?id=12894721 , Apple has a history of it.

I think a lot of companies view it as a liability regardless of whether or not it actually is due to a lot of the legality of copy-left licenses being pretty untested in court, as well as just generally a liability with little advantage (Apple probably doesn't care about external contributions to CUPS). I don't feel like switching CUPS to Apache has any real advantage to Apple practically, apart from the GPL makes them nervous. I guess I could see why they wouldn't want it in other places, but surely CUPS doesn't have much in the way of secret sauce IP.


I thought Apple also dislikes the GPL because it forced them to open source the original implementation of Objective-C. (I don’t remember where I heard this... something about the origins of llvm probably.)


Here's Stallman's recollection of what happened:

>The issue first arose when NeXT proposed to distribute a modified GCC in two parts and let the user link them. Jobs asked me whether this was lawful. It seemed to me at the time that it was, following reasoning like what you are using; but since the result was very undesirable for free software, I said I would have to ask the lawyer.

>What the lawyer said surprised me; he said that judges would consider such schemes to be "subterfuges" and would be very harsh toward them. He said a judge would ask whether it is "really" one program, rather than how it is labeled.

>So I went back to Jobs and said we believed his plan was not allowed by the GPL.

>The direct result of this is that we now have an Objective C front end. They had wanted to distribute the Objective C parser as a separate proprietary package to link with the GCC back end, but since I didn't agree this was allowed, they made it free.

http://clisp.cvs.sourceforge.net/viewvc/clisp/clisp/doc/Why-...

I think this highlights a few important things:

1) there's significant room for interpretation of what a license means

2) what lawyers and courts think words mean can be quite different from what technologists think

Also, a lot of interactions are mediated by chances of a lawsuit. So if you're a party that is generally disliked by the Free Software folks, like Apple, there's significantly more risk, for identical uses, than a company like Google, which is more popular. There's room for interpretation of what actions mean, and if somebody is more likely to think that you're a nefarious actor, there's a high risk.

I don't blame Apple for switching from GPL to licenses that I consider to be more "free" than the "Free" software licenses. When I read the philosophy pages of the FSF, I come away disagreeing vehemently with their arguments, and often simply unable to understand why people find those documents convincing for anything.


> When I read the philosophy pages of the FSF, I come away disagreeing vehemently with their arguments, and often simply unable to understand why people find those documents convincing for anything.

I mean, there's one thing that is obviously appealing (to a developer, benefits to a user are distinct) - "you can't use my code without giving back." Apple probably doesn't care whether or not you give back, but on the other hand a small developer (like me) often does.

From a developer's point of view I think of GPL not in terms of freedom to do whatever you want, but instead of protecting the developer's wishes about what people do with their software (roughly). When I choose to license something with GPL it's not because I want people to take it and do whatever, it's because I only want people to use it if they are going to be a good citizen.


As a developer, I care a lot more about getting improvements back. GPL is massively beneficial from that orientation. That's why some commercial companies prefer GPL, because the developer of code gets stuff back.

As a user, I care a lot less for GPL, because now I have to publish my changes if I choose to distribute binaries. If I'm a user and I have MIT or BSD code, as a user I have a lot more freedom to do what I want with MIT code.


Since the original NeXT Objective-C compiler was written as an extension to GCC, and GCC has always been (at least perceived) as some sort of legal minefield WRT licensing, this doesn't seem so far-fetched.

What surprises me is that it took them so long to try to divorce from GCC.

EDIT: specified I was talking about the compiler used on the NeXT.


Does it really matter? CUPS is a pain to use because they have forked it within the code base. I spent years fighting CUPS because they switching from IPP to zeroconf at some point, and the transition plan didn't work for me. (debian was way behind, while freebsd was up to date: the two versions didn't talk to each other)


I've always wanted to pull code out of this project to make a simple utility or script that would print a PDF from the command line without needing to set up printers or run a daemon. If I have access to an IP address or a USB port as a user, I want to be able to print using a self contained utility. Does anything exist like this, and if not, is this now the right time (as I typically develop everything with Apache/BSD/MIT licenses.)


You should be able to do it with foomatic: https://wiki.linuxfoundation.org/openprinting/database/nospo...

(The prologue talks about non-network printing, but an example below uses nc to talk to a remote printer)


Since the Apache 2.0 license is incompatible with GPLv2 [1], will that cause problems in projects depending on CUPS?

[1] https://www.apache.org/licenses/GPL-compatibility.html


Apache-licensed code can be used in GPL projects. Just not the other way around (as noted in your link).

[ADDED: WRT GPLv2 specifically, the quote from the link is: "the FSF has never considered the Apache License to be compatible with GPL version 2, citing the patent termination and indemnification provisions as restrictions not present in the older GPL license." However, note that the quote specifically says that it's the FSF's opinion.]


GPLv3 code can incorporate Apache 2.0 code, but GPLv2 code cannot.



Two URLs one CUPS



Does this mean that the *BSDs can adopt CUPS now?


FreeBSD has had cups in the ports forever. Can’t see it being in base, it’s too big.


Couldn't they before? I'm pretty sure there's plenty of GPL code in the *BSDs (I'm sure there's emacs in FreeBSD's ports). Am I missing something obvious?


They strongly prefer to avoid GPL code as much as possible in the core system, and have on occasion gone to great lengths to use a non-GPL alternative. I haven't used FreeBSD in a long time, but as I recall ports are considered extra software, not part of the FreeBSD OS.


CUPS will stay in ports anyway, I really doubt anyone even wants it in base


It makes me wonder whether it wouldn't be worthwhile for Apple to reconsider their strategy regarding the GPL and open-sourcing only a part of their system. If they decided to be more open about macOS development, they might have spared their users a lot of unpleasant experiences and avoided many recent complaints.


macOS has much less unpleasant experiences than e.g. each new Ubuntu version brings, with its incompatibilities, changed subsystems, major bugs, and what have you...

Not to mention that a lot of majorly used open source stuff have even less developers (despite being nominally open to all to give a hand/debug/etc) than a typical macOS component.

To the point that the GTK+ maintainer lamented that it was just him, a single person, doing most of the work, a few years ago -- and begging for others to come help.


GNOME and KDE destroyed their former community, such stupid decisions over and over again. Changing directions, etc. Gnome 2 and KDE 3 were great, then both went downhill.

Ubuntu w Unity 7 and Ubuntu MATE are great, but standard GNOME3 is garbage - too many stupid UI warts.


Unity is getting ditched in favour of GNOME3 as of 18.04, which probably means it's going to die...


GTK+ is maybe a bad example. The developers were not exactly welcoming of contributions or particularly friendly to suggestions. My experience was that they did not foster an environment which was amenable to participation, and that is their loss, but essentially a self-inflicted loss at that.


I completely agree. However, when we talk about power users who love their system and depend on it to work - and macOS is often used for development work - it's just feels natural that you at least try to fix the problem yourself, and if the fix works well, it's also natural you send it upstream.


The whole Darwin FLOSS distro thing died a long time ago.


How so?


If they do it well (I mean like Mint developers, not like Gnome developers), they could get free dedicated beta testers of their products who would hopefully help them to find and fix the bugs in the new releases of macOS.


Apple has a paid professional QA department. Would amateur volunteers really provide a better service?

The cause of many of these bugs is an aggressive annual release cycle and fixed release deadlines, not necessarily insufficient QA. Making a significant part of the QA function voluntary wouldn't help with meeting tight deadlines or dependability of the QA process.

The general point of expanding QA resources might help, but it's certainly not a given that making that on a voluntary, best effort, when you get round to it basis would help with the timeliness and reliability of releases without sacrificing some of the other goals Apple and their customers holds dear.


It looks like Apple pay for the majority of work too, assuming @michaelrsweet is paid by Apple to work on cups.

https://github.com/apple/cups/graphs/contributors


He is the original developer of CUPS. Apple bought the source, and hired him back in 2007, and have employed him since then.


I wish someone gets ghostscript-like tools for processing PS to be license under a license other than GPL2 (older) and new releases under AGPL


Can a mod please fix the typo in the title with the word 'changing'?

Current: Apple announces CUPS changeing from GPLv2 to Apache licensing

Fixed: Apple announces CUPS changing from GPLv2 to Apache licensing


They prefer emails for this sort of thing; address is in the footer somewhere, IIRC.


hn@ycombinator.com


I always hated cups and now I hate it more.


CUPS is great when you have a printer with a weird driver that you can only get from the manufacturers website. A few minutes setting up a CUPS VM, install the printer driver, and now I can print from my phone.


Oh I know, (sysadmin here) but it has a host of other problems. For example security wise, distro specific quirks etc. I do have to acknowledge it has worked when nothing else has sometimes, and I liked how easy it was to use with samba. Also I prefer IPP these days, at least when stuck dealing with windows clients.


Now, if it didn't suck so bad with usb printers, it would be amazing.


USB printers are still a thing ? Even the €79 color laser printer I got the other day has ethernet.


I’ve seen many cases first hand where a non technical user was able to buy a new printer, plug it into usb, wait 10 seconds and literally print their document without any further setup.

Don’t believe I can say the same for Ethernet. Let alone WiFi, God help us.


The last two printers I bought (sub $100 each) had WiFi and just required being unpackaged and plugged in before Linux found and used them over the network. This was probably via CUPS, but as a user I clicked on something like "Print" -> "Add a Printer" -> "Network" -> "Scan" and then hit "Next" a couple times. I use gnome3 and either Fedora or Ubuntu. Basic printing without driver preinstall has been solved for a decade at least.


I do not print stuff very often, but in my experience CUPS has been way easier to get along with than Windows' printing subsystem.

Not to speak of LPR (which does have the advantage of not having to set up anything printer-specific on the client, but it is a pain to set up on the server).


If you can plug in an Ethernet cable, that's all that's needed. It automatically appears in your print dialog (at least on OS X).

For wifi all you need is to enter the wifi password.


Even better, the £99 printer I got had wifi.

So near and yet so far because it required an Android app to configure the wifi password, despite the printer having a 2.5" display and a simple keyboard. But apart from the Android app the printer just worked out of the box with CUPS and SANE.


What! That's utterly bizarre. How did anybody ever think that might be a good idea?

Actually the whole of printing is still a pain, my printer (on wifi, because it has wifi but no ethernet despite being plenty big enough for an ethernet port and thus having no reasonable excuse not to have one) randomly decides not to exist, or Windows decides it's perpetually stuck, or that a job has not finished, or the Linux box stops being able to get any kind of coherent reply from it, or my Android phone starts printing everything all fuzzy.

The latter might be the phone's fault, I haven't quite figured that one out yet.

I daren't get another one because I can't trust that any other printer will behave, but this is a Hewlett-Packard. You would think HP would have figured out how to make a printer that actually WORKS by now.

They were a lot easier when they just plugged into the parallel port. Okay so you spent a couple of hours trying to get the right drivers in place, but once you did it generally just worked and kept on working. The latter seems to be something they're incapable of delivering these days.


I blamed Google cloud print for a while, but the printer's own Android driver also prints in 50 dpi or something, so it might be Android's fault. Or possibly the PDF tool.

I can't see why someone thinks it's a good idea to drop the resolution when printing from a phone, but maybe it's because phones running Android 2.2 might run out of memory.


I have a Brother WiFi laser printer and I love it. Sure, the first time I set it up, I needed to enter the WiFi password using arrow keys to select each letter, but it took a few minutes once and then it was done forever. The printer just works with every computer on the network (including phones), and I can stick it in a corner out of the way because the only thing it needs is power.


> the £99 printer I got had wifi

And now that KRACK is here, you can only wonder who gets a carbon copy.


The £25 one I got the other year didn't...




Consider applying for YC's Fall 2025 batch! Applications are open till Aug 4

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: