GPL in ROM
Steve Pampling (1551) 8170 posts |
Slow response:
Not what I do as things shifted several times1 but my professional qualification is Electrical and Electronic engineering. I was playing with some of the early transistors, used once by students and discarded, when I was in junior school. Rick was very limited in his scope when he mentioned how the RPC and Archimedes start up. I’ll make it less so: “The processor, when it comes out of a RESET condition will branch to a specific place.”
Simon, you seem to skip over salient points, like when people have said that the current situation is the best compromise available at present. The bull at a gate method tends to leave the bull with a headache, sometimes ruins the gate and doesn’t achieve the object.
No, not “troll” but very reminiscent of people at work that argue with things I’ve said then run away when the answer they get doesn’t fit their world view and then later claim either they hadn’t said/asked what everyone else heard or claim to be misunderstood or just hide and wait for people to forget that they were wrong.5
Er, yes. Before you started this thread in fact. Everyone knows that GPL is your only option, while they (I’m sure it is more than me) view it as a single but not highly favoured option. Others exist that do a better job. In short you are selecting the wrong tool for the job and attempting to force that tool on people who carefully (it was several years) selected the tool(s) in use. Impatience or evangelism on your part?6 I can’t make my mind up at present. 1 For my age group computers and networks were things that happened rather than existing kit. Computers were big things in other buildings with punch cards and whizzy new features like BASIC for “interactive” sessions. Checking dates ARPANET was declared operational the year before I left school for university 2 In the early code that gets run there is a mix of authorship and licence so you can’t glibly assign it GPL status (which the GPL wrongly tries to do to associated code ) without consulting the rights owner.(If you can contact them) 3 But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License’.4 4 For some reason the GPL legal team seem to thing attached to or even sat near means “based on” 5This is particularly tiresome when they are at director level as my tact training failed when it came in contact with my Yorkshireness 6 Old joke: Young bull to old bull “Let’s run down into the other field and take a few of those heifers” |
Simon Inns (2484) 108 posts |
Yes, I agree; there is a bootloader (the CPU executes a branch command – which is code, i.e. a program, i.e. a bootloader) – I think I mentioned that before. It still makes absolutely no difference. The image on CD-ROM/SDcard/whatever is still the same as an image on ROM. Therefore the storage medium makes no difference from a licensing perspective. What you are stating is that the amount of code in the boot-loader makes a difference (at least I hope so or none of what you stated on the subject really makes sense to me). Otherwise if I put the same image on a CD-ROM or a physical ROM what is the difference? Answer: The medium. Everything else about the image (which is the manner of distribution – not the content of the distribution) is the same. So are there different licensing rules for a physical ROM containing an image and a CD-ROM containing the same image? Answer: No.
Well, I am in very good company in this forum then. Quite a bit of ‘pot calling kettle black’ going on around here imho.
But, my OP was about how I could use GPL code – exploring the restrictions others perceive to exist such as the “not in my ROM” attitude. I was trying to decide on using an RM for my GPL application, or just embedding the code in the main executable. An RM seemed to make more sense from a design perspective, but embedding the code was easier from a licensing perspective (even if it precludes the ability to place the RM in ROM). The fact that the merest mention of GPL sends Rick and others off in a spinning tiffy isn’t really my problem is it? Seems if I stop discussing the issue in a thread I am accused of “running away when the answer doesn’t fit my view” and if I continue to discuss it I’m a troll. Nicely done! I appreciate that others are working towards a true open RISC OS (and this is a good thing!), but until I can grab the source and fork the project the freedom you think you have isn’t actually yours. (and yes I know forking = bad, etc. etc. but the fact you don’t have the freedom to do so, means it’s not open – not to you and not to me). If you’d like to discuss the bootloader issue some more (I’m happy to continue the discussion) please open a new thread and I will join in there. |
Frederick Bambrough (1372) 837 posts |
I’m not a programmer so this might be stupid but here’s my tuppence worth (free for a short period). I suspect there may be an issue with labels here. So with two rhetorical questions; 1. When is a ROM not a ROM? |
David Feugey (2125) 2709 posts |
You can boot form a CD-Rom: the image will still be a single file, so with a single license. Now, if you want to say that components could be individual files, with their own licenses, that’s different. And that’s the case today for all the disc components delivered with RISC OS. Here the code can use any license you want.
True: the image file on a CD-Rom will still be under the Castle License. |
Rick Murray (539) 13840 posts |
I’m sure you won’t be the slightest bit surprised if I disagree. ;-) The exemption from the viral-licensing stuff applies to “a collection of files”. In this respect a CD-ROM can contain content with various licences which don’t interfere with each other. Difference between ROM and not a ROM? Try this – a ROM contains code that is (usually) executed in situ. A CD-ROM is never, ever, executed in situ. In this situation, instead of asking if a ROM is like a CD-ROM, we should instead ask how much is a ROM like a “program”? After all, isn’t an operating system a really complicated program? |
Simon Inns (2484) 108 posts |
David, I agree that the harddisc4 image and the ROM are two separate distributions; they contain very different things. What I was reacting to was the comments that, if there was GPL code in the ROM image you couldn’t use it for the IOMD as it is a physical ROM. A filesystem is an organised BLOB of things, so is a ROM (even if it’s just executable code blacks placed one after another). Perhaps the end-point of my line of argumentation is that you cannot have GPL code in the ROM or any other distribution medium; or you can have it in both. The argument that a physical ROM is a special case is what I don’t agree with. So to Frederick I would state that the issue is the term ‘ROM’. What we are talking about is a distribution of the OS. It can be on ROM, it can be on CD-ROM or you can download it as a .zip file. It’s still the same distribution so the same licensing rules apply equally to all media. A ROM doesn’t offer two functions, it’s no different from a CD-ROM in its essential purpose which is to store things. If you wrote out the contents of the RISC OS ROM image on paper and distributed that, the same license rules would apply as it’s still the same distribution of the OS. So, in essence if you make the statement that GPL code is bad because you couldn’t include it in the IOMD ROM (i.e. the ROM is an exceptional case with regards to licensing) then, I believe, you are mistaken.
It’s a nice try, but if I copy the code RISC OS image from CD-ROM into RAM and then execute it it’s functionality identical to the ROM. The ROM was blank – you programmed it and booted it. The RAM was blank you programmed it and booted it. If the ROM and the CD-ROM both had the same distribution image of RISC OS then the rules of the licensing apply equally to both. i.e. the IOMD ROM image is not a special case at all. |
Steve Pampling (1551) 8170 posts |
No, the amount of code in the boot loader makes no difference. In the SoC hardware the image of a RISC OS ROM is copied to a specific point in the memory map by the boot loader (e.g. U-Boot in the OMAP systems) so things are rather obscured.
I believe so. Otherwise you couldn’t have a CD full of software with mixed licence types.
Personally speaking – I don’t start arguments, just correct what I know to be wrong. It’s a “cheat” that allows me to “win” all the time.
Nothing wrong with creating a RM under GPL, just don’t include it in the ROM image and cause conflicts with regard to GPL conditions.
No, but when people suggest that it would be nicer if it was under something like bsd or cddl it shouldn’t cause hissy fits either.
Just an observation that as soon as the discussion pointed out that you repeating the same things and that they still weren’t true no matter how often repeated you seemed to want to up sticks to another thread.
Ah, you mean free to create a derivative work1 without having to pay if you include it in a commercial item2. 1 The standard definition rather than the GPL which seems to regard attached or associated code as derivative work even if the GPL item is an adjunct. 2 add some closed code and claim it’s super secret stuff so no-one else can use your code in their copy hardware seems to be the standard business use of GPL.
Interesting idea. |
David Feugey (2125) 2709 posts |
You both wrong :)
Short answer: not at all. You could mix GPL and non GPL code only if the ROM was seen as a true archive. If a filesystem is made for the ROM image, the problem will be solved. In an archive, you can mix GPL and non GPL code. The same way, you could mix GPL and non GPL code in an ELF file, with the suitable filesystem :) The point is that without a filesystem, a ROM file is a unique file, as en EXE, with a unique license (from a GPL point of view)
Technically, a CD-Rom and an EXE just store code, but GPL made a difference between the two.
I don’t say it’s bad. I say it’s impossible.
You can (most Linux OS do that). Separate files can be considered as separate projects. The same is true for an archive or an installer, but not true with some firmware (for example in DSL boxes). The right question to ask is ‘can I access to the GPL code directly or not?’ |
Steve Pampling (1551) 8170 posts |
Shame, because although the minders for GPL are happy with mixed licence stuff on a CD, they were less than happy when some GPL code appeared in the ROM – specifically the HAL element.
No, people are saying it’s a bad choice because it conflicts. You get far more done in life if you work on changing lots of things that can be changed there and then and coming back for the isolated bits later.
Yes, the ROM image stored in ROM and the ROM image stored on a CD have the same status – you can’t put items into the image that have a conflicting licence. You can put the items into another file on the CD ROM, much as you could put a GPL code set onto a CD with BSD on it without the two conflicting. We won’t speak of Windows plus GPL as the CD would be sold and that doesn’t fit with the GPL except as a media cost allowance. Anyway – bootloaders… |
Simon Inns (2484) 108 posts |
Well, that really comes back to is one of my main points; the ROM image is the ROM image independent of the medium it’s stored on (can we at least agree on this?). If I put the ROM image on CD along with a bunch of other stuff they don’t interact as far as the licensing is concerned. The IOMD ROM image is not an exception to the other ROM images (on disc, on SDcard or on anything else for that matter). This is important because it has been stated that the IOMD ROM is the reason why no GPL can be included in the ROM image; this is, however, not the case. If I write a GPL’d RM it can be placed in ROM provided it’s interaction with other parts of the ROM don’t contravene the GPL (i.e. you would need to link it to unixlib not the shared C lib so the ROM image would just be the ‘file system’ in which it resides). You can’t put netsurf in there though since that would be bundling a GPL application along with the non-GPL runtime libraries on which it depends (and the GPL specifically states that the user has to get both parts separately). The physical medium of ‘ROM’ has no bearing here. (as a footnote I’d say this is where the HAL issue stems from; the GPL code was an integral part of the overall piece of code – but, since the code it was integrated with was not GPL, it breaks the ‘separate distribution’ clauses. So, this is good for RISC OS. There are scenarios where GPL code can be included in the ROM image, even for IOMD machines. |
Rick Murray (539) 13840 posts |
<sigh>
If, If, If… You seem to continually keep missing the point that code intended for a ROM is in itself directly executable, it normally executes directly from the ROM where it is. A CD-ROM is not, not ever, executed where it is. It is a collection of files and one or more are transferred into RAM and then is executed. It does not matter to us what you choose to do with the data. Write it to punch cards for all it matters. Read this part of the GPL v3 very carefully: You must license the entire work, as a whole, under this License to anyone who comes into possession of a copy. This License will therefore apply, along with any applicable section 7 additional terms, to the whole of the work, and all its parts, regardless of how they are packaged. Now read this part: A compilation of a covered work with other separate and independent works, which are not by their nature extensions of the covered work, and which are not combined with it such as to form a larger program, in or on a volume of a storage or distribution medium, is called an “aggregate” if the compilation [blah blah blah]" The addition of a system module to the operating system could be considered a part of the operating system. Clearly, most of the parts of RISC OS interact with each other, they are not separate and independent works. Equally so, all of the system modules that form the operating system are combined together in a big lump of code that is either read directly from a ROM chip (IOMD release) or loaded into RAM and executed in-place (SoC releases). I repeat, in case you disregarded the last times it was pointed out: We have been here before. It caused problems before. Etc.
The fact that you evangelise about a licence that tries to wangle its tentacles into code that it has no legitimate rights over shouldn’t be my problem, but when it threatens something that I like, I speak out. I’m sure there are people here that are sick of reading this stuff, but really, if nobody stands up and says “hang on a mo”…
…not even me. Do you see me complaining about NetSurf? About Nettle? David:
Nope. Read this http://www.gnu.org/licenses/gpl-faq.html#WindowsRuntimeAndGPL – it says that you cannot distribute compiled closed-source DLLs along with a GPL program (at all). So you can link to, say, the VisualBasic RunTime, but you cannot include it in your installer as it is non-free. If Simon can argue that a ROM is just data because he can copy it to a CD-ROM or something, then I could argue that the VB RunTime is a necessary Major Component of the language. But, then, read the last line of that section. The “interpretation” of the licence in that way is basically a dig at Windows.
Where, exactly? I have mentioned the IOMD as it is an actual ROM (as opposed to a softloaded image), and because you mentioned having a RiscPC and buying the IOMD ROMs so I assumed it would be familiar hardware to you. This forum has a search and Firefox has a useful feature to highlight matches of IOMD. I see this:
Is this something you have convinced yourself? Like the idea that you seem to believe that it is perfectly okay to include GPL code in the ROM image?
…says you. It’s fine for you to build GPL-containing ROMs if you so wish. You hold no copyrights on the rest of RISC OS, so if it is a GPL violation, it is you and you alone that will have to rectify the situation. The really depressingly sad thing? This whole discussion and every single objection would vanish if you were to choose a non-political non-activist OSI free licence such as the CDDL. |
Colin (478) 2433 posts |
x |
Steve Pampling (1551) 8170 posts |
I think you would quickly find that there is far more in the ROM than just the SharedC library that acts as a dependency for pretty much everything that runs in/on RISC OS.
You seem fixated on the IOMD image for some reason. The IOMD image has a different HAL since it deals with different hardware, in fact the HAL is just there to make parallel OS image builds easier – after all RO4.x didn’t have a HAL at all. The IOMD HAL just gives a backward compatibility element to RO5. Other than hardware specific elements for each platform there is no difference between on image and any other.
That was a point of dispute. Is the HAL distinct or is it integrated? To stop the arguments Castle re-wrote the HAL without GPL code.
Indeed. Just don’t use any facilities in the main block of code in the ROM. So that’s all your IO facilities gone (filesystem access, video, sound, oh and if you answer “integrated” to the question I posed above you can’t access the HAL which means you can’t access anything) See what we mean about the conflicts if the GPL code is in the ROM image? Don’t put it in the same image and you can use the built in facilities, put it in and you can’t because the GPL (in dictatorial fashion) says so. 1 Essentially “small library of extra commands / facilities” equates to “ROM module” throw away the access to those and you have a non-functional program – unless it includes all those facilities in its own code, but then you aren’t using RO anymore. How are you on writing an OS from scratch? Edit: As Rick said not even he objects to people writing GPL code for use on RISC OS. |
Simon Inns (2484) 108 posts |
True, but it would also vanish if the rest of the code was GPL too, although I wouldn’t be depressed and sad over a piece of code either way; there’s so much more in life to be happy about :)
Yes; am I not allowed to discuss things in order to form a point of view? Are you posting from China or something? Have I changed my mind about certain things? Yes; this isn’t religion, it’s computer science. Of course I can be convinced to change my view point, or even change it based on my own analysis. Once upon a time I too considered GPL to be a political hardline, but over the course of several years I changed my opinions based on a wide variety of things I learnt and concluded for myself. Freedom is important, and worth some sacrifices to maintain and support. What I am convinced of (now) is that the IOMD ROM is not an exception amongst the RISC OS images.
Because it was given as an exception amongst the ROM images by others – and I couldn’t fathom why.
How about you? Ready to shift your opinions based on what you’ve read, learnt and debated with others? Or are you religious in your opinions?
A good point; I too believe it’s morally right to pay for software projects which clearly have great effort put into them but I don’t think I should be forced to and I believe that someone who cannot afford to pay should have the same rights as I do despite their financial circumstances (and all of these rights should be protected now and in the future). I have also got an ubuntu hat and backpack, many more Pi’s than I rightfully need, 2 Raspberry Pi t-shirts and a Babbage the bear teddybear. I’m also a member of the EFF.
Nice, why not include a ‘your mama’ joke in there for good measure? I don’t see anything in the GPL that excludes inclusion of GPL code in the ROM image (restrictions, yes, exclusion, no).
Go back and read it one more time; it is talking about an application which has dependencies on closed-source DLLs. If I have a GPL RM (as a hypothetical example) and it is linked only with UnixLib; it can go in the ROM image. |
Rick Murray (539) 13840 posts |
However this gets problematic with RISC OS. Not only are there CallBacks, but commands, SWI handlers, events… what are they if not the kernel calling the “application”? Control and data transfer goes all over the place.
! Eeek! “not even he”? While I think the GPL is a generally bad licence with an ardent army of followers, I have no qualms with stand-alone applications written and released as GPL. The issues of what is and is not GPL is contained within the application. Their code, their choice. |
Steve Pampling (1551) 8170 posts |
Since that isn’t going to happen anytime soon I (and Rick too) was expecting that there might be some likelihood of you using CDDL in a shortish timeframe.
Well, it’s an exception in that the hardware has the facilities that RISC OS was built to expect and therefore doesn’t strictly need a HAL. As I said before (maybe not explicitly enough) the HAL on IOMD hardware just makes a level playing field for the RO5.2x OS |
Steve Pampling (1551) 8170 posts |
You don’t regard it as the scribblings of Satan? :) Maybe more like the neighbour who borrows a tool and never returns it. Later checks reveal it on his garage tool board in its own special place. |
Simon Inns (2484) 108 posts |
For me, no. I only release GPL code these days; only the RISC OS project and it’s user-base stands to loose out if the licensing restricts contributions. Not the other way around.
Well if I can convince even 1 or 2 other people who may or may not be vocal in this forum to think a little differently then I have made a change. Perhaps not, but it’s my time, so I’ll spend it as I see fit :) Projects aren’t just about code.
What’s the fun in doing easy stuff?
..and if you follow your own advice RISC OS will never be truly available and open; Just think how much better RISC OS would be if you could build on and use all that GPL code available from the thousands of projects on the web and how much other projects could benefit from the RISC OS code too. Anyway, I digress. |
Rick Murray (539) 13840 posts |
Unlikely to ever happen in practice. Different code by different authors under different licences, all of which somehow manage to play nice with each other, so it pretty much a non-issue until the GPL gets involved.
Mmmm. Kittens. A day forecast to be cold and rainy but was horizon-to-horizon sunshine. Not at work today.
I was not calling you on discussing things. I was calling you on “it has been stated that the IOMD ROM is the reason” – something you seem to have believed to have been the case.
Should I go find an umbrella?
Indeed it is. I do not believe the GPL demonstrates freedom.
If FSF comes along and states that the inclusion of GPL code within the RISC OS ROM image does not create problems for other code that it interacts with that is not licenced GPL and that the combination can be distributed without any GPL violations, then I will be happy to have a little more trust in the GPL.
….oh, this is all over life. Medical coverage (especially specialist things like dentistry), education, access to important career paths, the quality of the food eaten – people are continually judged by their finances and those with less are often neglected or ignored. Ask yourself if an average inner-city child to a poor family (ethnicity not necessarily relevant) is going to have anything anywhere near the same chances as the child of a well-off family? People have certain basic rights, but anything beyond that pretty much depends upon wealth. It might be a system that sucks, but given what we had before, it is a small improvement. One step at a time…
I have an Acorn mug (somewhere) and a RiscPC sweatshirt. I’d like to get a Jaxa sweatshirt, but it looks like the best I’ll be able to do there is CafePress – ho hum.
I’m not trying to be offensive, I’m pointing out that your interpretation of the GPL is yours.
Go back and note that I was not replying to you here, I was replying to “Separate files can be considered as separate projects. The same is true for an archive or an installer,”. Anyway, I’m going to wind up for tonight. The Autumn animé season has finally started, so time to warm up VLC and see which first episodes are keepers and which are not. |
Chris Hall (132) 3554 posts |
It seems to me that any GPL modules just need to be in the HardDisc4 Modules directory rather than in the ROM itself. That way the ROM is not infected. I think this was done for the VCHIQ drivers for the Pi. If necessary a non-functional dummy module (i.e. not GPL licensed) could be in the ROM itself, with the later module version RMEnsured as required. |
Steve Pampling (1551) 8170 posts |
I see no reason for any loss: simply obey the GPL and don’t try and put your code where the GPL does not permit.
“80/20”, “concentrate”. Those were the words/phrases/concepts.
Not always a good thing: (Contract programmer put together “working”1 code from snippets on the net and then departed with a CV containing a claim that 5 years worth of other peoples code was his, by the time our permanent guy had debugged the code2 he had removed virtually all the web derived code and all the “sticking plaster” used to bolt it together.)
Someone said “What’s the fun in doing easy stuff?” :) BTW. Loose = slack, lose = the act of losing such that the item is lost. (My weakness is the i before e except when it isn’t stuff) 1 Using a loose definition of the word. |
Steve Pampling (1551) 8170 posts |
I’ve forgotten how many times we’ve collectively made that point. Of course for purist GPL I suspect the other elements using the components sitting in the HardDisc distribution might need to be elsewhere. |
Simon Inns (2484) 108 posts |
I keep seeing prose like ‘acolyte’, ‘infect’, ‘purist’: some of you chaps have obviously missed a career as spin-doctors. The GPL is a license; last time I checked it didn’t have tentacles or any form of bestial components nor was it designed for monks or was it some form of disease.
Again, there you go, thinking of RISC OS as some valuable commercial project which needs such protection. It doesn’t; get over it. If a RISC OS module was built of GPL code snippets then great; sure would save some time over re-inventing the wheel. As free advice to the company to which you refer I would suggest peer code review as a good technique to employ; bad programmers are bad programmers – nothing to do with GPL or any other license.
RISC OS hasn’t been open-source for over 25 years and still isn’t; How much patience are you expecting?
Seriously? Correcting grammar in a computing forum will really eat your time; head over to YouTube, the comments section would keep you busy all day :) |
David Feugey (2125) 2709 posts |
That’s not always true. See BeOS: not an open source OS, but delivered with GPL tools, in zip, installer or CD-Rom. I think the FAQ goes a bit too far here. Other example: I make a closed source tool, that relies on an open source component (for example a frontend for wget). It’s perfectly legal, if I deliver the source code of wget. Now, where is the limit between a package and the project… That’s the point. |
Colin (478) 2433 posts |
x |