Search Results: "cas"

28 January 2010

Martin F. Krafft: DistroSummit 2010

Linux.conf.au 2010 has come to an end and I am looking back at an intense week of conferencing. A big shout out to the organisers for their excellent work. I think LCA (as well as DebConf) just keeps getting better every year. This does not at all discredit previous organisers, because they were the best at their times and then passed on the wisdom and experience to help make it even better in the following year. The week started off with the DistroSummit, which Fabio and I organised. Slides are forthcoming, as I failed to get them off the speakers right after their talks it s interesting how stress levels and adrenaline can cause one to forget the most obvious things. This is where experience comes in. I ll be there again next year, I hope, to do things better. The theme of the day was cross-distro collaboration, and we started the day a little bit on the Debian-side with Lucas Nussbaum telling us about quality assurance in Debian, alongside an overview of available resources. We hoped to give people from other distros pointers, and solicit feedback that would enable us to tie quality assurance closer together. Next up was Bdale Garbee who talked about the status of the Linux Standard Base. While I am really interested in such standardisation efforts, I realised during his talks that I had considerable difficulties paying attention because as organiser of the conference, I had all sorts of other things occupying my thoughts. I proceeded to tell the audience the room was mostly filled throughout the day with an estimated 40 50 folks, and I d say about half of them stayed throughout, while the other half came in and left the room between talks. I could not get the projector to work with my laptop after the upgrade to Kernel Mode Setting, and thus used the whiteboard to give a brief introduction to vcs-pkg.org, talk about the current state of affairs, summarise the trends in discussions around patch management and collaboration, give an outlook of what s up next, and solicit some discussion. Sadly, just like during Bdale s talk, I found myself worrying over the organisation of the day, rather than actually taking in most of the discussion. Fortunately, others have written about the most important points, so I defer to them. Michael Homer then told us about GoboLinux s Aliens system, which is a way to integrate domain-specific packages with distro-specific package maintenance e.g. how to get APT to handle CPAN directly, or how to let YUM manage Python packages. The ensuing discussion was interesting, and we carried it over to the next slot, because Scott, the next speaker, was stuck in traffic. To summarise briefly: scripting languages have a lot of NIH-style solutions because it works for them, but these are a nightmare to distro packagers. One symptom of the status quo is that complex software packages like Zimbra are forced to distribute all required components in their installation packages, which make distro packaging, quality assurance, and security support even harder. I don t think we found a solution, other than the need for further standardisation (like the LSB), but the road seems to be a long and windy one. Laszlo Peter introduced the audience to SourceJuicer, a new build system used by OpenSolaris. The idea is that contributors submit packages via a web interface, kicking off a workflow incorporating discussion and vetting, and only after changes have been signed-off are packages forwarded to auto-builders and eventually end up in the package repository. This is very similar to upload ideas I ve had a while ago, which I ve started to (finally) implement. Unfortunately, SourceJuicer seems very specific to OpenSolaris, as well as non-modular, so that I probably won t be able to reuse e.g. the web interface on top of a Debian-specific package builder. After the break, Dustin Kirkland stepped up to tell us about his user experience of Launchpad. Unfortunately, I found his talk a bit too enthusiastic. Launchpad undoubtedly has some very cool features and ideas, but it s just one of the available solutions. The dicussion of Launchpad also dominated the next talk, in which Lucas Nussbaum told us about the Debian-Ubuntu relationship. While his presentation showed that the relationship was improving (Matt Zimmerman made the point that there are rather many relationships, rather than one relationship), I was a bit disturbed by the comments of Launchpad developers in the room, ranging from Debian is declining anyway to Just use Launchpad if you want to collaborate with others and not go down . There was a slight aura of arrogance in their comments which tainted my experience of the otherwise constructive discussions of the day. Overall I had a great time. Debian and Ubuntu made up the vast majority of attendants, with only a handful of representatives from other distros present. I wonder why that would be. One reason might be that around 70% of LCA attendants declared themselves Debian or Ubuntu users, and so there weren t many other distros around. Another might be that I still haven t spread the word enough. Let s hope to do better next year! Thanks to all the speakers. We may have organised the day, but you made it happen and interesting! Slides and recordings of the talks will be linked from the archived website when they become available (yes, the archive page does not exist yet either).

27 January 2010

Joerg Jaspert: HP Mini 5101, gobi_loader problem

A short while ago I bought a new device, a HP Mini 5101. Basically a slightly oversized pocket calculator, but exactly what I wanted: It is painful to do anything real on it, but it can be used if there is really no better way. And this is exactly what I want to take with me on the vacation starting soon. A device that ensures I will not use it for more than the emergency case and as backup storage for pictures I take. This little thing has a tiny 10.1 (non-glare, I want it painful but even there is a limit. Idiot mirrors, brrr) TFT (1366x768), an Atom N280 with 1.66GHz, 2G RAM, a 160Gb disc, 3 usb ports, wifi, gigabit lan, bluetooth and a 3G module. It ships with one of those pain adventures with which the seller shows you how much they hate you (Windows XP), but that did only boot twice yet. Once to check everything works, for the second read on. It weights 1.3kg and HP imagines some 8 and a half hour runtime with the 6-cell battery. ACPI and powertop predict between 7 and 14hours, depending on my workload and probably the phase of the moon. But 7 will do nicely. Of course I put a Debian on this device. It runs all well. As it has no optical drive its either usbboot or netboot and off it goes. Easy install, only need to remember installing the broadcom-sta packages and building the module for the kernel to get wifi. Otherwise its a simple install and the stuff works out of the box. Except for one thing. I can not get this goddamn 3G module to work. It works fine in Windows, confirming this was the second time I did boot this abomination of a bad joke. When using that HP manager thingie for 3G, its all fine and works. When you then reboot into Linux - it also works. Annoying. It is one of those Qualcomm Gobi USB chipsets and to function it needs it firmware transferred over. Fine. Using google one can easily find gobiloader, which is meant to do that. Just get the firmware from Windows and let gobiloader do the rest. Except - it does not work. Everything I can find tells me it should, ie. various posts on various places on the net, the usbids the device has when without firmware and after this windows crap put firmware into it, everything looks exactly like it should. Yet, gobi_loader simply hangs itself right in the first while (1) loop, where it wants to send the first real data after the set of 3 magics it send before. The write never times out, the firmware never gets into the device, its not usable. Argh. Dear lazyweb, anyone out there with an idea? I tested various firmwares (the one I found in Windows, the one you can find at vendors download page, various of the 10 different you find in each), even let it run for some while before interrupting. Unfortunately I do not have enough clue in this area to debug what is happening here, nor to fix this up myself.

Aurelien Jarno: Working on the eglibc package

In the last weeks, I stopped being motivated to work on the eglibc package, it s not fun as it was before. Maintaining this package is taking a lot of my (free) time, and I am not anymore able to follow the bug rate, especially for RC bugs or bugs that I consider high priority. In turn it does not give me time to integrate eglibc 2.11 or other wishlist features I would have liked to see (rework of the locales* packages, using multiarch paths, etc.). I hope it s only a bad moment and that things will change soon, so I can find time to work on GNU/kFreeBSD, QEMU or to do electronics. In any case you can help by handling bug reports or writing patches. Everything is in the BTS!

Christian Perrier: Translations: LOL, but after?

Of course, one would expect me to react to this post. Apparently, from my cumulated experience, joking about funny translations is a very widespread game among german-speaking developers (of course, as everybody knows, us French do translate everissing and no single Frainche DiDi will make such fun abaouttel10n wouhorke, aha). I'd say: more generally widespread among people .who jargonize about computing so often in their daily work that they often forget that not everybody, even in a country where people are as clever about English as German/Austrian/Swiss folks are (we all know that 100% population in these places speak a very perfect English) do understand what "downgrade" means. Seriously, "funny" translations are our (translators) daily nightmare. We hate them because we know people hate us (or make jokes about our work) when they face them. The example taken by Patrick is a nice case as "downgrade" is tricky for all of us. For instance, French translators have chosen "revenir la version pr c dente" as "bring back to former version". This is about the only "right" way to say what's being done ("d grader" is another option but that has a negative connotation). Of course, I often *hear* people (incl. me) say "downgrader" which is an horrible neologism....and of course doesn't say anything to people who are clueless in English. English is, unfortunately, often a very compact language. This is our daily pain. So, as German translation of "to downgrade", what do *you* propose, Patrick? "Downgradieren"? Tricky, eh? Taken from APT for "downgrade": Hint: you can see this with "apt-get source aptitude" and look in po/ for you favorite language. That sounds funny to you? Fine. But as usual in free software, please report.....and patches welcome...

Bastian Venthur: Query Google Scholar using Python

In desperate need to organize my collection of scientific papers, I had a look at various tools which could help me organizing them. Probably one of the best out there is Mendeley. Mendeley seems to be a very good tool to keep your massive collection of pdfs under control. Unfortunately a very basic function, namely looking up a newly imported paper in Google Scholar to get attributes like: Authors, Year, etc. right, is bundled with a Mendeley account. I guess that s their way of forcing the user to participate to their community stuff, since without the Google Scholar lookup Mendeley is pretty useless unless you want to fill all the attributes manually. So I decided to write my own tool to make the lookup. Unfortunately Google does not really want to give away that precious data: they don t provide an API and even block certain User-Agents from accessing the page. Then, there is also the problem of scraping the results page to get the right data. The first problem can be trivially solved by setting a common User-Agent string, the second one can be elegantly circumvented by using the bibtex files provided in the search results. The bibtex entries are however only showed if you enabled them in the settings, which are stored in a cookie. After a few tries, I figured that the CF attribute (citation format?) controls which bibliography format should be offered in the results page and CF=4 corresponds to bibtex. Generating a fake cookie is easy, but you have to know what must be included. In this case it looks like a 16 digit hex as ID and the CF attribute is sufficient. The ID is probably supposed to be your id, but a randomly generated one also works like a charm. The resulting cookie looks like this: GSP=ID=762a112b5c765732:CF=4 All you have to do now is to query Google Scholar using the user string and the cookie:

...
# fake google id (looks like it is a 16 elements hex)
google_id = hashlib.md5(str(random.random())).hexdigest()[:16]
GOOGLE_SCHOLAR_URL =  http://scholar.google.com 
HEADERS =  User-Agent  :  Mozilla/5.0 ,
         Cookie  :  GSP=ID=%s:CF=4  % google_id  
def query(searchstr):
     "Return a list of bibtex items. " 
    searchstr =  /scholar?q= +urllib2.quote(searchstr)
    url = GOOGLE_SCHOLAR_URL + searchstr
    request = urllib2.Request(url, headers=HEADERS)
    response = urllib2.urlopen(request)
    html = response.read()
    # grab the bibtex links
     

And Google Scholar will offer you links to the bibtex files of the results. Getting those links is easy since they all start with "/scholar.bib". Just search for those and download the targets. The complete code is available on github. It can be used as a python library or a standalone application, you just call it like this: gscolar "some author or title" and it will print the first ten results in bibtex to stdout.

Romain Beauxis: Voluntering

For those who wonder why Debian is and should remain a voluntary-driven project, here are some insights... I hope I will never read this in a Debian mailing list:
Why? I am pursuing this change because Debian has negotiated a revenue sharing deal with XXXXX
I have nothing against ubuntu and I think it is a great distro. However, I believe that decisions like this go strongly against the principle of free software as we consider, in particular when it comes to putting the user first and not some cash deal. Forcing the user to choose for something because the company gave money for that is totally again this to me.

Patrick Schoenfeld: Debian translations - EPIC LOL

As a german I'm used to strange translations in computer context.
I saw it back when I was using Microsoft products and I regulary stumble upon it on Debian systems. But whats actually kind of funny:Debian is outstanding in that regard.
An example:
Debian has that "wonderful" package manpages-de which provides a german manpage for ps.
It contains a formulation that is so inaccurate and not really funny:

"--cumulative Daten von toten Kindern einbeziehen (als Summe zusammen mit den Eltern)"


For the English only speakers: That can be roughly translated to "Collect data from dead children
(summed with their parents)". For me this somehow sounds like we are a butcher OS and so I reported #495441 but nobody cared about it yet.

Today I had another WTF on german translations because when I wanted to upgrade my system I read the following sentence:

"Sind Sie sich sicher, dass Sie die oben genannten Pakete installieren bzw. aufr sten wollen?"


Cold war, anyone?

Well its a classical case of using a word-by-word translation instead of a meaning-orientied translation. Its a fact that 'upgrade' can be translated to 'aufr sten' (as done above) but in that case its just not appropriate. As a matter of fact most german people I'm aware of would actually confuse the meaning with a meaning such as in a military context (therefore the "Cold war, anyone?" text above). And just btw. if we would rely on computing power to translate it back into English we would get:

Are you sure itself that you want to install and/or rig the packages specified above?


So it seems that Babelfish has a similar pereception.

26 January 2010

Joey Hess: started termcasting

I've hooked one of my laptop's terminals up to the net, so anyone with IPv6 can telnet in and see it. I've long wanted to be able to broadcast my terminal sessions on occasions when it makes sense. Like when I'm fixing someone's bug, or closely collaborating with someone distant. I am also interested in finding things to host on IPv6. Right now, that means only people who care will be able to access it. So it seems the trick is to find places where that is a benefit. I plan to keep an eye out for more things like this. (A side benefit of using IPv6 is that it makes it easier to serve content from my laptop, that moves from network to network.) So, tune in to my termcast! termcast

Lucas Nussbaum: Re: How free is the Nokia N900?

Following my questions on the freeness of the Nokia N900, I received quite a lot of comments. I m trying to summarize the most important points here. For all the details, see the comments and Tollef s blog.

25 January 2010

Tollef Fog Heen: How free is the N900?

Lucas asks about how free the N900 is, whether he can download and recompile and reflash. I'll try to answer some of those questions. No, you can't download all the source. Part of it is just not open. I am not privy to Nokia's decisions on why or why not to open up, but it seems like the user interface bits are only partially open. Hildon itself is open so you can poke at widgets and see how those work. The address book is not open. The telepathy component that talks to the cellular modem is not open. As for having to accept EULAs, I honestly don't remember accepting one of those, but I'm not going to say there are none. There's at least one which is every time you install a package where you have to check a box saying "Yes, I know this package is third party and will not sue Nokia if it causes my house to burn down, my wife to divorce me or causes somebody to steal the car". It's annoying, but I'm willing to live with it. The contents of apt's sources.list is:
deb https://downloads.maemo.nokia.com/fremantle/ssu/apps/ ./ 
deb https://downloads.maemo.nokia.com/fremantle/ssu/mr0 ./ 
deb https://downloads.maemo.nokia.com/fremantle/ovi/ ./ 
deb http://repository.maemo.org/extras/ fremantle free non-free
deb http://repository.maemo.org/extras-devel/ fremantle free non-free
(technically, it comes from /etc/apt/sources.list.d/hildon-application-manager.list, not sources.list.) I believe the built-in applications are generally not free, so rebuilding everything that is free will for instance leave you without any address book UI, the built-in map application or camera. Sadly, the X driver is also proprietary, so you won't be able to see anything either. I don't think you can usefully install another free distro on the N900. You might be able to, at some point, assuming somebody goes to the effort. The last question is "- Besides the non-free telephony stack, are there any other antifeatures I should be aware of?". The telephony stack is implemented around Telepathy, which is LGPL-ed free software. While it's correct that telepathy-ring (which talks to the cellular modem), the call UI and most of the address book are proprietary, the rest of Telepathy is free. There are SIP and XMPP connection managers that are free, and you can install more connection managers for MSN, IRC and so on. Also, I think it's important to emphasise that the telephony stack does not contain any antifeatures. The closest thing you would be able to find is probably the restriction to one active and one held call at the same time, but as one of the developers said: "That's to prevent the UI from going mad". While I like to tout the N900 as a free phone, it is in no way completely free. Large parts of it are free, and almost as importantly: most of the programming interfaces are free and at least somewhat documented, so if somebody wants to replace the built-in camera application with a free one, they can replace the DBus interface that the camera app provides. Ditto for maps applications, the address book and so on.

Lucas Nussbaum: How free is the Nokia N900?

Dear readers, So, I ve been looking into buying a Nokia N900. However, what it provides regarding freedom is still not completely clear to me. And given that it is significantly more expensive than other smartphones, I d like to make sure that it s not a loss of money :-) - Can I download the full source, recompile it, build a firmware from it and re-install my Nokia N900 from scratch? Is the process documented? It seems that you need to accept a EULA to download updated firmwares, and I couldn t find the source for them. What exactly is available from firmware that is not available through normal repositories? (Are normal repositories only for extras apps, or is the base system also installable / upgradable from them? - What s the content of /etc/apt/sources.list? What exactly is http://repository.maemo.org/pool/maemo5.0/nokia-binaries/? What does Nokia need to hide? :-) - Would it be possible to develop a Centos-like distribution, installing the Maemo firmware, but then upgrading everything to rebuilt versions using an unofficial repository? Are there some applications that are not packaged, or that would break if re-installed that way? - Could I install Debian or Ubuntu on the N900? Is the process documented? Is it possible to dual-boot between, say, Maemo5 and Debian? (I m not talking about setting up a chroot, of course) - Besides the non-free telephony stack, are there any other antifeatures I should be aware of? Thanks.

David Welton: Flippa experiment

I decided to try a little experiment with Flippa.com, a site where you can auction off domains or web sites. I put http://www.innsbruck-apartments.com up for auction:
http://flippa.com/auctions/83341/Innsbruck-Austria-rental-listing-site---Ski-Season
We'll see how it goes and whether the site is worth using for other sites that I'd like to sell on. It's a good test case, because it's a site I threw together years ago simply to aid our search for a new apartment in Innsbruck, and then requested by friends.

Martin F. Krafft: Vodafone intransparency

Coming to New Zealand for an extended period of time, I figured it would make sense to purchase a prepay mobile plan to make it easier to mix with locals. Not knowing better, I went with Vodafone, which I whole-heartedly regret: their website is a massive pain in the ass, their price plans completely over the top, and their customer service representative incompetent and unfriendly. My latest experience eclipsed all previous encounters, and makes me want to tell you about it: Between all the obscure add-ons Vodafone threw at me when I bought this SIM card, two weeks ago I couldn t figure out how my balance had decreased from $30 to $0 when I rarely ever made calls. I wrote an e-mail to their customer service hotline, and it took them a week to get back to me, with the following text:
Due to being a Prepay Customer, unfortunately usage details are not available as per terms and conditions. I have although checked your usage and can confirm that all charges are correct.
Obviously, I wasn t going to accept this claim of omniscience, so when last weekend, $20 disappeared over the course of a day, that was the catalyst for me to reopen the ticket and reply along the lines of:
Only I know when I used my phone and thus only I can determine whether the charges are correct. Please show the full records to me, or else
This seemed to convince the representative, and 8 messages and 11 days after my initial request, I was told I could request the records at $5/30 records. Yes, you read that right: they wanted to charge me to view the records. I thus replied:
I am NOT willing to pay for that. If you are unable to comply with my desire for transparency, then I shall terminate the contract and make sure to inform the media as well as the consumer institute of this conduct. As stated previously, I shall also consult with a lawyer. Charging consumers to view data that is obviously available is a strong indication that you do not want me to see it. I can t imaging why this would be the case other than the data being inconsistent with reality.
That worked, and I finally got an Excel sheet with my usage data, which allowed me to track down the depletion of my account: to lure customers in, they promise free calls to other Vodafone numbers for the first four weekends. There are three problems with that though:
  1. Having purchased my card on Saturday afternoon, I was annoyed to find out that the remaining 34 hours of that weekend would be counted as a whole weekend.
  2. They don t provide a way by which to find out whether a given number actually belongs to Vodafone or not. The 021 prefix is not enough of an indication.
  3. They don t actually tell you anywhere but the aforementioned horrific website that the addon has expired.
So thanks, Vodafone. You ve lost a customer, who should have gone with 2degrees in the first place, who have much lower rates, even though their data coverage doesn t seem as good. I don t need data anyway. I ll still insist on Vodafone providing the data in a Free format. You can find more information about NZ mobile phone providers on the LCA2010 wiki page. NP: Age Pryor: Shank s Pony

24 January 2010

Andrew Pollock: [debian] elfsign's days may be numbered

There's a release critical bug (that severity is debateable, in my opinion) in elfsign, a package I maintain. It seems to my casual observation, that switching it to generate SHA1 signatures wouldn't be too hard, given it's using OpenSSL, and OpenSSL has a sha.h file. I really wouldn't know where to start, though, and ideally it should continue to verify existing MD5 signatures, so it's more than just changing an include and a few function calls. To boot, upstream seems to have disappeared, so it's looking like removal is the best option. The popcon numbers for this package aren't very high either, which is another nail in the coffin. So if someone reading this cares about elfsign in Debian enough to send me a patch to use SHA1 in the next month or so, I won't file a removal request.

23 January 2010

Marc 'Zugschlus' Haber: How much added complexity in packages to cater for apt's shortcomings?

It is well known that apt has an issue when it comes to resolving circular dependencies. Therefore, Debian bug reporters have set out to eradicate circular dependencies from the archive. This does, however, add significant bloat to the actual packages, and I am questioning why this is really necessary. For example, aide. aide has an aide-common package, depending on aide aide-binary. aide-binary is a virtual package by aide, aide-dynamic, and aide-xen. All three providers of aide-binary depend on aide-common again, which is a circular dependency. If I now follow the request posed in #545852 and remove aide-common s dependency on aide aide-binary, I ll have to cater for the case of the aide-binary bein absent in each and every helper script included in aide-common, which would drive the script s complexity up to a new level. I really hate that idea. Is it really necessary to work around apt s shortcomings by eliminating the case that apt doesn t handle well from the archive, and driving up other packages complexity (and the possibility of bugs in this added complexity)?

22 January 2010

Lucas Nussbaum: Simpler GnuPG-encrypted password store

Roland blogs about his GPG-encrypted password store. When I read the title of his blog post, I thought he would be writing about the gnupg.vim Vim plugin. But he didn t, so I ll take care of that: The gnupg.vim plugin provides transparent editing of GPG-encrypted files. It s as simple as vim foo.gpg, enter your GPG key if you are creating the file, and you are done.

Russell Coker: How to Lose Customers

Bruce Everiss who is famous for being threatened with legal action by Evony has been writing about the supposed losses from game piracy, in his latest missive he copies the text from a number of blog comments without citing the original authors [1]. He copied my text without citing me as the author (which is at best shoddy journalism and by a fundamentalist attitude such as his could be considered as piracy). He also copied my text in with a bunch of other comments which he attributes to The thieves . It s unfortunate that Bruce doesn t seem capable of understanding irony, he wrote There is no doubt whatsoever that downloading and playing a game that should have been paid for is theft and then copied part of the text of my comment where I provided a dictionary definition of theft that directly contradicts his claim. If he was at all interested in quality writing he would cite his references and then when a dictionary is cited which disagrees with his opinion he would at least try to find a dictionary with a more agreeable definition. It shouldn t be THAT difficult to find a dictionary that has multiple definitions of theft of which one is agreeable to the MAFIAA [2]. Now if Bruce had properly read my comment he would have seen I ve started watching content from sites such as blip.tv (in the little time I have for such things) and I only play games that are part of the Debian distribution of Linux (free software) which makes it very clear to any reasonable interpretation that I am not a game pirate and probably not even a movie pirate. I did mention in a comment on Bruce s blog that the DVD experience of being forced to sit through a whinge about piracy was a factor that made buying a DVD a worse experience than downloading it, a concept that I expanded into a blog post on the relative technical merits of DVDs and pirate MP4 files [3]. That post received a number of interesting comments including one from Josselin Mouette which had some useful technical detail about subtitles and audio track storage. I had believed that there were some real technical advantages of DVDs but Josselin corrected me on this matter. Also one thing that is noteworthy is that Bruce seems to use a copyright picture in almost every post but he doesn t attribute any of them. It does seem unusual for someone to use commercial artwork without any copyright or trademark notices attached. This usually isn t a big deal for a blogger, a liberal interpretation of copyright and trademark law is usually expected in terms of blogging corporations will tend to be hesitant to invoke the Streisand effect by suing a blogger (EG Bruce blog came to fame when he was sued by Evony). But when a blogger is writing about the importance of not pirating anything it would seem sensible to go to the effort of citing trademark and copyright references and also mentioning the licence agreements under which the IP was used. I believe that any loss of customers and revenue by the MAFIAA and the gaming industry is due to the actions of the companies involved. They should just try to make their customers happy, otherwise they lose the customers. The same goes for bloggers. I read blogs written by people who disagree with me, and sometimes by people who offend me on occasion. But Bruce is making baseless claims while deliberately ignoring evidence. He is calling for strong anti-piracy measures while doing what could be considered as pirating my work. He uses words in ways that conflict with dictionary definitions, and he calls for an end to our current legal system by demanding punishment based on three accusations rather than any legal process. I even pointed out to Bruce that if there was a three strikes law regarding accusations of copyright infringement then his blog would be offline after three accusations by Evony. Sorry Bruce, if I was looking for irrational rants about copyright then I would look at what the members of the Science Fiction Writers of America (SFWA) are doing [4]. The SFWA people demonstrate as much knowledge of computers and the Internet as Bruce does, but they are at least really good writers. If it was just me unsubscribing from Bruce s RSS feed then it wouldn t matter (I m one of tens of thousands of readers). But I expect that a large portion of the new readers Bruce acquired after being attacked by Evony will disappear when they see Bruce as the attacker and everyone who uses the Internet as a potential victim of the Three Strikes law.

Marc 'Zugschlus' Haber: Block devices in KVM guests

In the last few days, I found the time to spend some with KVM and libvirt. Unfortunately, there is a subject that I haven t yet found a satisfying solution: Naming of block devices in guest instances. This is surely a common issue, but solutions are rare. Neither an article on Usenet (in German) nor the German version of this blog article has found solutions for the main question. I should have written this in English in the first place and am thus translating from German to english, hoping that there will be some answers and suggestions. KVM is quite inflexible when it coms to configure block devices. It is possible to define on the host, which files or whole devices from the host should be visible in the guest. The documentation suggests that devices should be brought into the guest with the virtio model, which needs suppport in the guest kernel. Importing a device as emulated ATA or SCSI device brings a performance penalty. The devices brought into the guest via virtio appear in the guest s dev as /dev/vd<x> and do also have their corresponding entries in /dev/disk/by-uuid and /dev/disk/by-path. The vd<x> node is simply numbered in consecutive order as hd<x> and sd<x>. /dev/disk/by-uuid is the correct UUID of the file system found on the device, at least if it s a block device partitioned inside the guest and formatted with ext3 (I didn t try anything else yet). The terminology of the /dev/disk/by-path node is not yet understood, and I am somewhat reluctant to assume the PCI paths of emulated hardware as stable. Looks like I am forced to configure inside the guest when I have changed the host s mass storage system (for example, after migration to a different file system or after new block devices have been added) to accommodate for the new order of the /dev/vd<x> or to have the UUID correctly configured. This is like calling for configuration errors. This is a reincarnation of the same issue that has been killed by LVM on Linuxes running on bare metal : The block device itself has a mnemonic name which is constant even in migration and copy actions. This works without file-system specific stuff like UUID or label, and wouldn t even be possible with a UUID (which won t be unique in this case). The mnemonic names of LVs are also available when the data is directly written to the raw device such as a CNFS buffer of a news server. I would love to have something like a paravirtualized device mapper interface which would allow to say in the host s configuration which of the host s LVs should be visible in the guest with which name in /dev/mapper. That way, the guest s configuration could remain stable during data wrangling operations on the host. One solution is to have a single LV for each guest and import this LV as /dev/vda into the guest. /dev/vda would then be partitioned like a real disk and have its own LVM installation. This would however need kpartx if one wants to access the data from the host, and loses flexibility when resizing file systems. These issues appear in every installation of KVM virtualization, and I would expect that there are gazillions of other possible solutions. I am interested in knowing how other people have tackled this issue and whether there are more possiblity that I haven t thought of before. Maybe there is a solution that doesn t leave me with the feeling of having implemented something ugly. Does the interface between the host s KVM and the guest s device mapper that I have been dreaming of maybe exist. Or is there any other possibility of configuring the device node s name in the guest Linux on the host side?

Theppitak Karoonboonyanan: Thailand Mini-DebCamp 2010

Hello, Planet Debian. I'm pleased to have announced about the first Debian event in Thailand: Thailand MiniDebCamp 2010. This is a follow-up to Taiwan MiniDebConf 2009 in last September in Taipei. At the end of that event, we discussed about having a mini-DebCamp in Thailand during the New Year holidays. However, with many factors, it has been moved to this March. And the date has been settled on 13-19 March. The place will be Khon Kaen University (KKU) in Khon Kaen, a north-eastern province of Thailand (close to Lao, if you look for it in a map). In this event, we plan to arrange a Bug Squad Party for the Squeeze release, and some meetings between DDs and local people, to encourage more Debian activities in Thailand and nearby countries. Thailand has started its GNU/Linux development and usage since no later than 1997. Currently, we have projects like Thai Linux Working Group for upstream Thai resource developments; OpenTLE.Org and thaiopensource.org for local distros (Ubuntu-based); and some communities like ubuntuclub, debianclub, and more others for other distros. The user base is slowly growing, while developer base is yet growing more slowly. We have had domestic events occasionally. But certainly, an international one like this would effectively encourage more prospecters, as well as create closer cooperations with the global projects. We also hope this event to be a meeting point for developers from nearby regions. And internationalization, among other issues, can be discussed and worked out. So, please be invited to join and discuss. Please make sure to add your name to the Wiki page so we can prepare things for you, including accommodation. And feel free to propose your agenda in BarCamp style. It will be summarized some time before the event date. We also have a mailing list for updates and discussions.

21 January 2010

Ian Wienand: Separate debug info

I've recently found out a bit more about separating debug info, and thought a consolidated reference might be handy. The Idea Most every distribution now provides separate debug packages which contain only the debug info, saving much space for the 99% of people who never want to start gdb. This is achieved with objcopy and --only-keep-debug/--add-gnu-debuglink and is well explained in the man page. What does this do? This adds a .gnu_debuglink section to the binary with the name of debug file to look for.
$ gcc -g -shared -o libtest.so libtest.c
$ objcopy --only-keep-debug libtest.so libtest.debug
$ objcopy --add-gnu-debuglink=libtest.debug libtest.so
$ objdump -s -j .gnu_debuglink libtest.so
libtest.so:     file format elf32-i386
Contents of section .gnu_debuglink:
 0000 6c696274 6573742e 64656275 67000000  libtest.debug...
 0010 52a7fd0a                             R... 
The first part is the name of the file, the second part is a check-sum of debug-info file for later reference. Build ID Did you know that binaries also get stamped with a unique id when they are built? The ld --build-id flag stamps in a hash near the end of the link.
$ readelf --wide --sections ./libtest.so    grep build
  [ 1] .note.gnu.build-id NOTE            000000d4 0000d4 000024 00   A  0   0  4
$ objdump -s -j .note.gnu.build-id libtest.so 
libtest.so:     file format elf32-i386
Contents of section .note.gnu.build-id:
 00d4 04000000 14000000 03000000 474e5500  ............GNU.
 00e4 a07ab0e4 7cd54f60 0f5cf66b 5799b05c  .z.. .O .\.kW..\
 00f4 2d43f456                             -C.V            
Incase you're wondering what the format of that is...
uint32 name_size; /* size of the name */
uint32 hash_size; /* size of the hash */
uint32 identifier; /* NT_GNU_BUILD_ID == 0x3 */
char   name[name_size]; /* the name "GNU" */
char   hash[hash_size]; /* the hash */
Although the actual file may change (due to prelink or similar) the hash will not be updated and remain constant. Finding the debug info files The last piece of the puzzle is how gdb attempts to find the debug-info files when it is run. The main variable influencing this is debug-file-directory.
(gdb) show debug-file-directory 
The directory where separate debug symbols are searched for is "/usr/lib/debug".
The first thing gdb does, which you can verify via an strace, is search for a file called [debug-file-directory]/.build-id/xx/yyyyyy.debug; where xx is the first two hexadecimal digits of the hash, and yyy the rest of it:
$ objdump -s -j .note.gnu.build-id /bin/ls
/bin/ls:     file format elf32-i386
Contents of section .note.gnu.build-id:
 8048168 04000000 14000000 03000000 474e5500  ............GNU.
 8048178 c6fd8024 2a11673c 7c6a5af6 2c65b1b5  ...$*.g< jZ.,e..
 8048188 d7e13fd4                             ..?.            
... [running gdb /bin/ls] ...
access("/usr/lib/debug/.build-id/c6/fd80242a11673c7c6a5af62c65b1b5d7e13fd4.debug", F_OK) = -1 ENOENT (No such file or directory)
Next it moves onto the debug-link info filename. First it looks for the filename in same directory as the object being debugged. After that it looks for the file in a sub-directory called .debug/ in the same directory. Finally, it prepends the debug-file-directory to the path of the object being inspected and looks for the debug info there. This is why the /usr/lib/debug directory looks like the root of a file-system; if you're looking for the debug-info of /usr/lib/libfoo.so it will be looked for in /usr/lib/debug/usr/lib/libfoo.so. Interestingly, the sysroot and solib-search-path don't appear to have anything to do with these lookups. So if you change the sysroot, you also need to change the debug-file-directory to match. However, most distributions make all this "just work", so hopefully you'll never have to worry about anyway!

Next.

Previous.