Neil Williams: When firmware is not software
So the failings of the GR result in just what everyone didn't need - a restarted discussion about the firmware issue without first releasing Lenny. Come on people, leave it alone and get Lenny done. Anthony, Thomas and Theodore (also in his blog) all seem to be missing the point(s):- We had the GR and despite all the manifold failings of the GR itself, Further Discussion FAILED as did the option to delay Lenny ad infinitum (Option 1 on the vote).
- Everyone seems hung up on firmware as something that requires source code, when the real point is that firmware isn't necessarily like other content in Debian and in some (many?) situations, there is no, nor can be any, human-readable form - it really can be nothing more than a series of initialisation flags, not instructions that are specific to that chip or would not make any sense to any CPU.
To me, it's more like data for the chips - it's saying "this is who you are, this is what you do and this is how to understand all subsequent instructions". Software is what follows - the instructions themselves.
We have a very good understanding of the separation between software and data in userspace - we all recognise that unless the output of a program consists to a large extent of modified versions of already licensed code (e.g. code generators), then the data created by your free software GPL-3+ text editor (or blogging client) cannot be deemed to be under the GPL-3+ or any other licence until such a statement is made by the copyright holder and that the copyright holder is the user of the software, not the author of the software. I could quite easily put this blog under a Microsoft-style EULA or even NDA if I wanted to be obtuse, despite it being created using a free software stack. The point remains - I am the copyright holder of the content created using the free software on my machines and I am free to publish that data as I see fit. The authors of the software itself have no rights to dictate what I do with the content I create using the software, just as I - as a user - cannot dictate whether the authors of my editor choose to migrate from GPL-2+ to GPL-3+ or even BSD.
Where firmware can have source code, let it have source code - we have such packages in Debian already. Even then, much of the code may be simply calculations or conditionals to select the right combination of binary flags for specific situations. This isn't about Nvidia kernel drivers that do real runtime calculations during the entire runtime of the machine, this is about tiny bits of initialisation data that are set once and not touched again. Can we not accept that some firmware is derived from a process that does not involve source code? How about experimentation and calculation? We know the voltage on pins 5 and 19, we know the state of register A and that for this specific case, it needs to be toggled to match the state of register E because otherwise another chip on the same board gets confused, so setup the chip to do that by setting a firmware datum point to initialise A? Where's the source code in that process? There is none - it is a piece of data, an item in the design notes (or more likely the errata). Yes, maybe the chip should know how to set this datum itself but for whatever reason (probably financial), it doesn't.
Source code could be used to calculate the datum point for a range of chips and chipsets according to a range of data inputs but the creative effort is then in the calculation not the data. The chip doesn't want the calculation, it cannot perform a calculation in this uninitialised state, it needs the datum point. Once it has the registers set, it can then understand subsequent instructions - the software itself. The datum point itself is just a raw piece of initialisation junk for the chip, it has no source code, it is determined by a physical process. It is a reference point - a fixed value that is determined during the design of the chip and/or chipset.
It's like saying you want the source code that determines whether there are one hundred cents in a Euro so that you could modify it to create a thousand or just ten or maybe turn the Euro into a hexadecimal currency. Weird. The fact that the Euro has one hundred sub-divisions is not up for negotiation, it isn't a modifiable value - changing the value unilaterally is not going to magically make everyone use the new value. It is a fixed reference point - a single datum point that initialises all subsequent behaviour of all software utilising such a currency. Even if there was source code (gee, what could that be, do you think? "%.2i" ?) it would be meaningless to insist on being able to modify it.
Few people can make the judgement about whether particular firmware can or cannot have source code - in most cases it comes down to the hardware design of either just the chip or how the chip is utilised for a particular board.
At some point, Debian has to accept that we cannot know if source code was used to create a particular blob. We simply have to ensure that maintainers ask upstream, elucidate as much information as possible about how the firmware was created and document that in debian/copyright. If that information is proved to be incorrect, then we have to deal with it as best we can - on a package-by-package basis. The assumption has to be that firmware does not necessarily have any source code.
In the end, I think the GR came up with the right result, despite all the failings - Option 5, assume that firmware is compliant with the GPL unless there is evidence to the contrary.
Sometimes, there simply is no source code - sometimes all you have is data.
Debian cannot insist on source code for data that is not generated from source code and it is the difficulty in deciding whether one set of figures is initialisation data or a set of compiled instructions that will defeat all debate on a general solution for the firmware debate. It is comparing apples and oranges - we can insist on source code where source code was used but we also have to accept that some firmware is identified, not programmed. In the end, Debian will have to trust the maintainer and the maintainer will have to trust upstream. Documenting that in debian/copyright seems to be the only sane option.
Now can we all just shut up and release Lenny? Please?
This is the final part of my review of popular articles on my news websites during 2008. It follows
Last night I ve been recalling how many debconfs I ve already missed and this got me thinking about how long I ve been a bit off the records on my Debian involvement. Many things have happened in the last couple of years, many for the good. I ve started a business and learned a lot about entrepreneurship, resumed my computer science career, started a pretty awesome (yet to be released) personal project involving music and computers, and most important: discovered what I want from life, who I want to be and who I d love to be with :)
Latest weeks I ve progresivily started to get back on track with my Debian duties. Took care of my packages, update some information, kept track on current issues and hanged on IRC. While doing that I ve found some issues I d like to elaborate on later, so we could improve things. So, expect me to be more active and post updates about my findings. It s good to be back! I ve missed you guys :)
It's not a holiday without a road trip, especially with petrol prices being
lower now than they were three years ago when we arrived here.
So we headed off on Christmas Day for San Simeon, with the general plan to
tour
Yesterday my cat spilled a full cup of hot coffee on my 2k$+ laptop. Today, there is no trace of the incident and the laptop is working perfectly again. This is partially thanks to luck, partially to Dell laptop engineering and partially to my instinctive actions within first 10 seconds of the incident. I will recap it here so that if you happen to have a mishap of such kind you would know what to do to save your laptop.
The first thing I did is pick up the laptop (so that extra coffee from the table would not go into the vents at the bottom of the laptop) keeping the corner that was soaked with coffee downwards. With one hand I held the notebook and pressed and held the Power button to turn the laptop off as soon as possible. With the other hand I removed the power cord and tried to remove the battery as well. It took a couple seconds, but when that was done and the laptop was placed on a towel on the floor the time sensitive part was over.
After that was the clean-up. Coffee from the table and floor (so that other things don t get soaked), coffee form the outside of the laptop (with a damp cloth), After that I disassembled my laptop down to removing the motherboard and checking it for damage. Where ever I found traces of coffee, I cleaned them up with cotton swabs and spirit (clean water would also work, but would require more drying time). After I cleaned and dried every part off with a fan, I put the laptop back together. It took around 2 hours (more like 4 because I had to ask my girlfriend to pick up a new screwdriver on her way home as I lost mine). Everything was working, except the keyboard.
Bits of coffee got inside the keyboard and were shortening the wires so some lines of buttons were not working and some were activating other keys when pressed. On an advice from a fried, I took out the keyboard and washed it. I simply put the keyboard under a stream on running water and made sure that the water got into every possible and impossible opening. After 5 minutes of washing I got the hairdryer and proceeded to dry the keyboard. After an hour I put it in, but it still did not work, so I left it on a heating radiator overnight. After around 18 hours of drying the keyboard started working again. Oh and it was cleaner than it ever was
A
For various reasons (which in the end boil down to lack of manpower), we are quite late in the process of packaging GNOME 2.24. (This is almost finished now, I ll keep you informed.) Which is why I may sound coming a bit late on noticing this one, but I was really speechless.
The problem: session management has flaws
Currently, a session manager uses XSMP (the X Session Management Protocol) to talk to applications. What it means is that for applications supporting this protocol, it is able to do more than simply starting and killing them: it will also remember their state, and offer them a way to shut down gracefully. However, XSMP is really a shitty protocol I won t explain why here, you will find tons of better explanations on the intarweb.
The gnome-session developers, being quite aware of this issue, did what anyone interested enough would have done: they designed a new protocol, based on D-Bus, and implemented it. The new protocol is not considered stable yet, but it is simple, efficient and above all, reliable that s a giant leap forward. For this reason, I was very excited to see what gnome-session 2.24 would look like, since it brings major cleanups in the code.
The solution: remove session management!
When I first started it, it did not restore my saved session. I simply supposed that the format of the saved session had changed, and that writing a conversion tool would be in order. Wrong. Let s bring the session preferences:


So in the end I decided to vote in the
A reel from Glenn Gould's 1955 recording of the Goldberg Variations contains the following dialogue between the 22-year-old pianist and the recording engineer after a take of the 30th variation, a quodlibet:
So I have been getting used to
Christmas is a time to ignore such trifling details as nearly accidently burning the house down, and instead to focus on what's important in life - working out which hoops to jump through to make new hardware useful without installing less convenient operating systems. This year was more straightforward than some, and merely involved attempting to work out how to give people money in return for books that could then be read on my Sony reader thingy. Shockingly enough, the Sony Ebook Store requires a windows app, so not a good start. There's no shortage of sites that sell ebooks in a variety of formats without any platform dependent awkwardness, though - of course, most of them are inconveniently DRMed. And the only DRMed content the Sonys will read is either Sony's own or some encrypted PDFs[1].