Search Results: "tar"

24 January 2010

Gregor Herrmann: RC bugs 2010/02, 2010/03

during the last two weeks I focused on the FTBFS bugs in the Debian Perl Group, only one NMU:

Marco d'Itri: H.264, Firefox and the <video> element

Recently some Mozilla developers (1, 2) have been trying to justify the lack of support of the HTML 5 <video> element in Firefox for the system-provided codecs (e.g. GStreamer, DirectShow and so on). While I fully agree that patented codecs like H.264 are very bad for the Internet, it is not clear to me how watching H.264 video with the proprietary Flash plugin would help promoting unencumbered codecs more than watching H.264 video without using non-free software. Beware: if your position is that there is no need to watch H.264 Youtube videos then please refrain from wasting your and my time with a reply, because you are missing the point (and probably many others as well).

Russell Coker: Preventing Children from Accessing Porn

The following was written by Stefano Cosentino in regard to the ongoing efforts of the Australian government to censor the Internet with protecting the children as an excuse. All these Internet filtering ideas that have been in the news lately has made me voice my own opinion on the matter as a non-expert. I m an IT advisor. I take someone s problem and help them fix it. I have a few clients who provide laptops to their students, everything is done with these laptops. The students have no books. The school provides laptops to their primary school students as well as their high school students. They have done this long before the public system started to hand out laptops to a select number of high school students. When you provide a child with anything, there are always areas where a child will find that you may have overlooked. In fact, a young kid will probably find a host of things that you might have totally missed or didn t ever know about. One of these things is the inappropriate nature of information you may find that are associated with computers. This can be anything. But specifically, what the filtering argument has been about has been leaning towards Internet pornography and I would imagine, more specifically content of a pedophiliac nature. I m not against child pornography being banned or filtered. I personally think this is one of the most cruel, inconsiderate, disrespectful and self centered behaviors a person could display. Their psychological makeup isn t the scope of this article. However these ideas must be conveyed when discussing the Internet as a modern technological device that can be used for both good and bad. The primary school students that I attend to aren t very interested in this stuff and as it has been mentioned long ago by others who have joined this argument, are more interested in online flash games that include characters such as Ben 10, Pokemon and Yu-Gi-Oh. When I m called in to scan these computers during the school holidays and hand the laptops back to the kids or when they get handed back after 3 years for new ones, I find that the older primary school kids computers are usually more prone to the adult orientated content. To me this is the first sign of a filter s failure. This customer of mine spends more money on the filtering devices they use on campus than I charge them for a few days of work. Does it work? Sadly, I hate to report that no, it does not. It s completely useless. The kids still have files and traces of files on their computers that isn t suitable for young children. Not only pornography but also content of a violent or morbid nature. As young and impressionable people, everything they read, see and hear is absorbed. This shapes the way society will become in years to come. Since no one can realistically tell the future, wouldn t it be nice if we could make sure that the people looking after us and our lives forty or fifty years from now have a sane mind free of blemish? It s a different story for the high school children. While scanning their laptops I have to contact the police on a daily basis because of the nature of the content I find during my day. Some things you can let slip, today s version of a pinup girl, or a provocative pic of whatever skimpy clad girl the record companies are flogging off these days as musicians. But sadly that s rare. I won t go into detail of what I find on these laptops of 14 year old boys, but it ranges from some innocent growing up curiosity right to perverted, sick and most if not all of the time, illegal content. The filters fail again. The kids find a way around it. And they find it easily. I ve seen filters work and not work at all with young kids right through to young adults. All the filters do is either hinder the poor kids actually trying to do research of scholastic nature or prolong the inevitable and temporarily block a determined child s interest in the search for some adult related material. The filter might prevent accidental viewing but it doesn t stop the deliberate finding of pornography and other illegal content. How does a filter stop this from happening? How does a filter stop a child taking their parents adult videos and copying them to their laptop or finding dad s stash of Penthouse? How does it stop a school mate bringing this stuff to school to show everyone at lunch time or to trade for other content they found by other means. Remember back to when you were their age and caught a glimpse of your big brother s room wall. How many times did you try and catch a peak at that Samantha Fox poster hanging off the wall? Where s the filter now? Here s some thing to think about. The filter shouldn t be a thing, it should be a person. They re called responsible . They re called parents. What priorities do parents have if their child feels that what they look at online that is of an adult nature is acceptable? Or maybe the kid knows better, knows it isn t acceptable but still goes out of their way to get the stuff on their computer? Sneaker Net still exists, USB memory sticks are cheap and can now have two or three straight DVD rips on them, or perhaps five or six encoded films on there. Hundreds and thousands of images and so on. Filter failure again. When the kids go online, they know of the technology used to block them from gaining access to what they want to see. Chances are, they ll know what a proxy server is and does. Then they ll figure out what they need to do to get around the filter. I, myself did this back in high school and TAFE when I couldn t find photographs of a particular device I was researching. Turns out the name is also a form of sexual activity, in another language, but still. The filter stopped me from not only looking the offending content but also to look at the legitimate data that I needed to complete an assignment. I got around the problem by researching some more information and the following day I was breaking through firewalls and proxy servers with easy. Filter failure. How do I get around this issue when speaking to younger kids that need guidance and knowledge on how to deal with this situation? I hold talks at the school I provide my services to. I talk to the parents, no kids. The talk costs less than a broken filter they keep throwing money at keep up-to-date. The school puts these filters in place to appear responsible, because while the kids are attending their school, the school is in fact responsible. In fact, there is nothing more the school can do. They could educate the children, but you can tell someone what to do, and the chances of them doing it are pretty dismal. Music is not allowed on their computers either. Yet we constantly find iTunes on there and a host of music that traces to certain peer to peer applications where they acquired the stolen music. If a kid can learn how to do that, imagine what sort of influence can be placed on them from a more positive angle. Like maybe parents providing an explanation for starters of what it is they re looking at. What it is they ll find online. What material is inappropriate. What material should you tell an adult about. Why do I get stupid emails with Russian girls wanting to marry me. Kids absorb everything. Parents have relegated responsibility but not delegated it. This filter idea might help slow down a child s enthusiasm to learn about everything, both good and bad. But educating the kids from an early stage in life about morals and the modern world where lets think about it, we have absolutely everything we need and want at our finger tips will be more valuable than any filter. But the fact that we have so much available makes it difficult to say what is and isn t appropriate for a child to see. It is up to us to inform the children of what s out there is the world. It may or may not stop them from seeing the adult related content, but it will help them respond to it in a mature and adult manner. We all know, kids aren t stupid. So, if the filters worked, why am I called in once a year, every year to give my talk to parents?

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.

Robert Collins: lCA 2010 Friday


Tridge on Patent defence for open source projects . Watch it! Some key elements:
  • prior art defence is very very hard non infringement is a much better defense because you only need to show you don t do the independent claims.
  • Reading a patent doesn t really harm us because triple damages is no less fatal than single damages :) Reading patents to avoid them is a good idea.
  • Dealing with patents is very technical. It needs training (and the talk has that training)
  • Patents are hard to read.
  • Claims are often interpreted much more specifically than engineers expect.
  • Best prior art is our own source code, with VCS date records and the exact date often matters because of the riority date.
  • Invalidation: dead patents are vampires and when they come back they are harder to kill again. Read the file wrapper audit log containing all correspondence <-> patent office and applicant.
  • Patents are not code: judges can vary the meaning.
  • Claim charts are what you use to talk to patent lawyers.
  • Build workarounds *and publish them*. Encourage others to adopt them.

23 January 2010

Jan Wagner: new nagios-plugins (1.4.14-1), now also installable on kfreebsd and hurd

Last night here at BSP I released nagios-plugins (1.4.14-1), which has a couple of fixes and enhancements. For more information, see the changelog.
The main change may, that with this version, the package should be installable on non-linux archs, where iputils-ping is not available. The downside of using inetutils-ping is, that its behavior is different from iputils-ping. As result of this, check_ping will timeout much often, even if there isn t any problem and you will have false positives. As suggested long ago, at least on this archs, you should consider to replace the use of check_ping with check_icmp.

Joerg Jaspert: Uploaders index

For a long time we had a bug against the archive asking us to export a file similar to the Maintainers index, just for the Uploaders (aka Co-Maintainers). Back then it wasn t that easy, but this changed. A while ago I also got a patch from Emilio Pozuelo Monfort against the first bug asking for it (#120262 !, and so went to integrate it. Of course this told us about a deficit in daks code parsing the Uploaders field. No, it is not good to solely split on a comma, when we have at least one Maintainer with a comma in their name field. We now split on the end of a mail address, followed by a comma. This simple idea is from Alexander Reichle-Schmehl, I was always thinking of a more complicated parser for it But heck, why? Yes, this can easily go wrong, if people, for whatever reason, add a space in there. But it only harms them, not us, so I don t think it is a big problem. Let us help you shot in your own foot. :) The new file will be exported as Uploaders.gz right besides the Maintainers.gz we already have on every mirror in the indices/ directory, starting with the next dinstall run (that will start in 2 hours and some 42 minutes, at time of writing this entry). Until then you can find a version at my space, to poke around and find bugs. A good example is right at the top - a52dec. Bug already filed, they missed a comma between two Uploaders. Feel free to hunt for your own bugs. :) And while I am writing already: Are you working with data generated out of the Debian archive, but have to generate the data yourself? (Like people had with the Uploaders index in the past, for example). Feel free to ask for it to be generated during dinstall. If the data is available (or can be made) and makes sense to have for more than just a personal pet project, we are happy to merge patches, help with it, provide it. (And really, asking cost nothing, we can t do more than deny it).

Debian News: Brief updates: OOo 3.2.0, java networking, oldstable support and mini-DebCamp in Thailand

22 January 2010

Steve Kemp: We have to be ready to do anything. Do you hear me?

Good people steal ideas, right? On that basis I setup a static domain to host the javascript and icons I use upon a few different sites & projects. This was preempted by the release of a new version of the excellent jQuery library. I also managed to put together a tremendous hack to solve a pretty annoying problem running multiple distributions from a single external kernel under KVM. Ubuntu users, in particular, will be well aware of dmesg SPAM coming from the use of CONFIG_SYSFS_DEPRECATED. In short the way that the kernel presents information beneath the /sys tree has changed over the life of the kernel - and this has a knock-on effect to the userspace supplied by different distributions and releases of GNU/Linux.
Some distributions need an "old" kernel and an "old" udev with "old" udev rules in order to create the appropriate device nodes such that the kernel will boot & mount its filesystems. (i.e. These need CONFIG_SYSFS_DEPRECATED to be set.) Conversely some distributions mandate a "new" minimum kernel version, and supply a "new" version of udev with "new" udev rules and they absolutely will not function when presented with an "old" kernel. (i.e. They must have kernels without CONFIG_SYSFS_DEPRECATED set.)
I've solved this problem via a kernel patch which is both evil and genius. The details are a little me-specific, but in short: Ultimately udev doesn't get an empty /dev tree to play with, instead it finds one already pre-populated, such that any devices it cannot create are there regardless - because the devtmpfs implementation has already created them. Genius. And evil. So very evil. Meh. Steal that idea. I dare you .. (I'm impressed at how well devtmpfs works, and how easy I was able to make my "patch of evil"tm. Just a few lines in fs/namespace.c.) ObSubject: The Last House On The Left

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.

Michal &#268;iha&#345;: phpMyAdmin 3.4 will be feature killer

I know this is quite premature as we're just about to release 3.3, however development on 3.4 has already started in SVN and we've already implemented more than 20 requests from our features tracker. This is even bigger number than release 3.3 will have! Well the fact is that most of these things are cosmetic or tiny improvements, on the other side some of them were requested for very long time (the oldest one currently dates to 2003). The new features bring things such as direct blob download (thing we definitely should have earlier), links to documentation for SQL commands in highlighted SQL (what was quite easy, but nobody requested such thing and I added the feature after seeing that Adminer does this), possibility to directly bookmark most pages or exporting user privileges. See ChangeLog for more detailed list of features. You can try all new features on our demo server.

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.

Julien Danjou: On media players: 2 years after

Two years ago, I wrote about my switch from my beloved xmms to audacious. During this 2 years with Audacious, I suffered a bit. It was working quite fine, but I saw no big progress around it. Life happened, and I had to use a network system to play music. I started to use PulseAudio over TCP, but it does not work well, and does not work at all with Audacious (and even if the plugin is provided by upstream). So I decided to dump it. And some days ago I discovered Sonata, a MPD client. I never liked MPD so far because all clients I found were lame. But I really like Sonata. It allows me to listen music the way I still want: load everything in one playlist, listen everything randomly or type a song/artist to jump to it directly in the current playlist. It even has some nice feature (lyrics, so I'll be able to song out loud, covers, tag editing ) and is written in Python and GTK+ (some days I may even hack it!). You can rest in peace x11amp :-p

Russell Coker: Three Monopolists

  1. This afternoon I tried to unlock my old Three mobile phones for the purpose of getting cheap net access as described in my previous post [1]. I wanted to use Dodo 3G Internet (via the Optus network) for my parents which would cost them $139 per year and I wanted to use my old Three phone tethered to their PC as the 3G modem (cheaper than buying a new 3G modem). I took in 3 Three phones to the Three store to get unlocked, I actually have 4 old Three phones (my wife and I are each on our third Three phone) but I seem to have misplaced one. It turned out that the two newer phones (LG U890) can t be unlocked as they are permanently locked to the Three network. The older LG U8110 can be unlocked, doing this took 30 minutes of the Three employee speaking to other Three employees on the phone and I will now have to wait 4 days to receive an SMS with the unlock code. So the Three anti-competitive behavior of making it unreasonably difficult to get a phone unlocked and of selling phones that (supposedly) can never be unlocked wasted them 30 minutes of store employee time when other potential customers were queuing up as well as 30 minutes of employee time in their call center. If the call-center employee was based in Australia then as the minimum wage is $14.31 per hour [2] that would have cost them at least $14.31 for 2*30min of work, as a rule of thumb it s generally regarded that the costs of employing people are twice the salary (including costs of maintaining office/shop space, paying managers, doing paperwork, etc). So it probably cost Three about $29 to unlock one of my phones and tell me that the others can t be unlocked, when I find phone 4 it will cost them another $29. As $29 is my typical monthly bill this has got to make an impact on the profitability of Three. If they were smart they would have sent me an SMS when I got a new phone telling me whether the old phone can be unlocked and if so giving me the code to do so. For phones that can be unlocked I doubt that would make anyone unlock their phone who wouldn t do so anyway, and for phones that can t be unlocked they could encourage the owner to give the phone to someone who wants a phone for pre-paid use (thus locking in a new customer). It probably won t be worth the effort of cracking an LG U890 phone to save my parents $10 per annum. As I couldn t get the LG U8110 to talk to my laptop I guess that forces my parents to eventually use Three for 3G net access. But they could have just matched the Dodo price and got the same result without having me spend half an hour in their store. Update: I just enquired about ending my Three contract for 3G net access ($15 per month for 1G of data) in favor of the yearly prepaid option of $149 per annum for 12G. The prepaid option would save me $31 per annum and allow me to use more than 1G in the busy months. But it seems that I subscribed to a two year contract for that one and I have 6 months to go. Over those 6 months they will make about $15 extra in revenue from me while annoying me in the process, this probably isn t a good deal. As my 3G modem is locked to the Three network even if I didn t have a contract I would still be unable to use a different provider.

  2. My mother phoned Optus about her Internet connection and discovered that she had supposedly renewed her Optus cable Internet contract in September last year. Presumably someone from Optus phoned my parents and asked what seemed like a routine do you want to keep using the Internet? question but was really a do you agree to a 2 year contract with a $250 penalty clause for exiting early? . This isn t the first time that Oprus has scammed my parents (previously they charged them rental for a phone that they never supplied), I guess that they have a practice of pulling such stunts on pensioners. I guess I ll have to call the TIO, which will end up costing them more than the $250 penalty clause. The irony here is that as Dodo uses the Optus network I would have used Optus by choice for my parents, but now that they are being scum I will willingly pay the extra $10 per annum to use Three (which while annoying aren t actually hostile).

  3. Finally while Google is admirably living up to their don t be evil motto in regards to China [3] their conduct regarding Google Talk leaves a lot to be desired. Two employees of a company I work for use Google Talk for their instant messaging, this has a Windows client but also allows general access via the Jabber protocol. So these two guys wanted to talk to me via Jabber but Google would just send me email saying X has invited you to sign up for Google Talk so you can talk to each other for free over your computers , I received 5 such messages from a colleague who was particularly persistent. It seems impossible for the Google Talk server to send a chat request to my personal Jabber server (which works well with a variety of other Jabber servers). So I have now started using my Gmail address to talk via the Jabber protocol to other Gmail users. This means that I have a TCP connection to the Google servers open most of the time and Google can boast of having one more active Gmail user. But it doesn t seem to really provide them a benefit. I am going to keep using my main email address as my primary Jabber ID and only use my Gmail address for talking to Google Talk users and only when paid to do so. But as a result of this I recommend that everyone avoid Google Talk as much as possible. Use open Jabber servers such as the ones run by Jabber.org.

It seems to me that none of these companies are really gaining anything from trying to lock customers in. They would be better off spending their efforts on being friendly to people and making them want to be repeat users/customers.

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!

Robert Collins: LCA 2010 Friday keynote/lightning talks


Nathan Torkington on 3 lightning keynotes: 1) Lessons learnt! Technology solves problems no it doesn t, its all about the meatsacks! If you live a good life you ll never have to care about marketing steer the meatsacks English is an imperative language for controlling meatsacks. Tell the smart meatsacks what you want (english is declarative). 2) Open source in New Zealand: A bit of a satire :) Sheep calculator , tatoos as circuit diagrams. The reserve bank apparently has a *working* water-economy-simulator. Shades of Terry Pratchett! 3) Predictions more satire about folk that make predictions financial analysts, science journalists. After that, it was lightning talk time. I ve just grabbed some highlights. Selena Deckelmann talked about going to Ondo in Nigeria and un-rigging an election:
  1. Run for political office.
  2. Lose but polls had suggested the reverse result
  3. Don t give up protest file May 14 2007
  4. Use technology fingerprint scanning 84814 duplicate fingerprints, 360 exactly the same fingerprints
  5. Patience 2 years and the courts reversed the election
http://flossmanuals.net nice friendly manuals in many languages writen at book sprints. Kate Olliver presented on making an origami penguin. Mark Osbourne presented Open Source School a school in New Zealand that has gone completely open source, even though the NZ school system pays microsoft 10Million/year for a country wide license.

Daniel Kahn Gillmor: TCP weirdness, IMAP, wireshark, and perdition

This is the story of a weirdly unfriendly/non-compliant IMAP server, and some nice interactions that arose from a debugging session around it. Over the holidays, i got to do some computer/network debugging for friends and family. One old friend (I'll call him Fred) had a series of problems i managed to help work through, but was ultimately basically stumped based on the weird behavior of an IMAP server. Here's the details (names of the innocent and guilty have been changed), just in case it helps other folks in at least diagnosing similar situations. the diagnosis The initial symptom was that Fred's computer was "very slow". Sadly, this was a Windows machine, so my list of tricks for diagnosing sluggishness is limited. I went through a series of questions, uninstalling things, etc, until we figured it would be better to just have him do his usual work while i watched, kibitzing on what seemed acceptable and what seemed slow. Quite soon, we hit a very specific failure: Fred's Thunderbird installation (version 2, FWIW) was sometimes hanging for a very long period of time during message retrieval. This was not exhaustion of the CPU, disk, RAM, or other local resource. It was pure network delay, and it was a frequent (if unpredictable) frustrating hiccup in his workflow. One thought i had was Thunderbird's per-server max_cached_connections setting, which can sometimes cause a TB instance to hang if a remote server thinks Thunderbird is being too aggressive. After sorting out why Thunderbird was resetting the values after we'd set them to 0 (grr, thanks for the confusing UI, folks!), we set it to 1, but still had the same occasional, lengthy (about 2 minutes) hang when transfering messages between folders (including the trash folder!), or when reading new messages. Sending mail was quite fast, except for occasional (similarly lengthy) hangs writing the copy to the sent folder. So IMAP was the problem (not SMTP), and the 2-minute timeouts smelled like an issue with the networking layer to me. At this point, i busted out wireshark, the trusty packet sniffer, which fortunately works as well on Windows as it does on GNU/Linux. Since Fred was doing his IMAP traffic in the clear, i could actually see when and where in the IMAP session the hang was happening. (BTW, Fred's IMAP traffic is no longer in the clear: after all this happened, i switched him to IMAPS (IMAP wrapped in a TLS session), because although the IMAP server in question actually supports the STARTTLS directive, it fails to advertise it in response to the CAPABILITIES query, so Thunderbird refuses to try it. arrgh.) The basic sequence of Thunderbird's side of an initial IMAP conversation (using plain authentication, anyway) looks something like this:
1 capability
2 login "user" "pass"
3 lsub "" "*"
4 list "" "INBOX"
5 select "INBOX"
6 UID fetch 1:* (FLAGS)
What i found with this server was that if i issued commands 1 through 5, and then left the connection idle for over 5 minutes, then the next command (even if it was just a 6 NOOP or 6 LOGOUT) would cause the IMAP server to issue a TCP reset. No IMAP error message or anything, just a failure at the TCP level. But a nice, fast, responsive failure -- any IMAP client could recover nicely from that by just immediately opening a new connection. I don't mind busy servers killing inactive connections after a reasonable timeout. If it was just this, though, Thunderbird should have continued to be responsive. the deep weirdness But if i issued commands 1 through 6 in rapid succession (the only difference is that extra 6 UID fetch 1:* (FLAGS) command), and then let the connection idle for 5 minutes, then sent the next command: no response of any kind would come from the remote server (not even a TCP ACK or TCP RST). In this circumstance, my client OS's TCP stack would re-send the data repeatedly (staggered at appropriate intervals), until finally the client-side TCP timeout would trigger, and the OS would report the failure to the app, which could turn around and do a simple connection restart to finish up the desired operation. This was the underlying situation causing Fred's Thunderbird client to hang. In both cases above (with or without the 6th command), the magic window for the idle cutoff was a little more than 300 seconds (5 minutes) of idleness. If the client issued a NOOP at 4 minutes, 45 seconds from the last NOOP, it could keep a connection active indefinitely. Furthermore, i could replicate the exact same behavior when i used IMAPS -- the state of the IMAP session itself was somehow modifying the TCP session behavior characteristics, whether it was wrapped in a TLS tunnel or not. One interesting thing about this set of data is that it rules out most common problems in the network connectivity between the two machines. Since none of the hops between the two endpoints know anything about the IMAP state (especially under TLS), and some of the failures are reported properly (e.g. the TCP RST in the 5-command scenario), it's probably safe to say that the various routers, NAT devices, and such were not themselves responsible for the failures. So what's going on on that IMAP server? The service itself does not announce the flavor of IMAP server, though it does respond to a successful login with You are so in, and to a logout with IMAP server logging out, mate. A bit of digging on the 'net suggests that they are running a perdition IMAP proxy. (clearly written by an Aussie, mate!) But why does it not advertise its STARTTLS capability, even though it is capable? And why do some idle connections end up timing out without so much as an RST, when other idle connections give at least a clean break at the TCP level? Is there something about issuing the UID command that causes perdition to hand off the connection to some other service, which in turn doesn't do proper TCP error handling? I don't really know anything about the internals of perdition, so i'm just guessing here. the workaround I ultimately recommended to Fred to reduce the number of cached connections to 1, and to set Thunderbird's interval to check for new mail down to 4 minutes. Hopefully, this will keep his one connection active enough that nothing will timeout, and will keep the interference to his workflow to a minimum. It's an unsatisfactory solution to me, because the behavior of the remote server still seems so non-standard. However, i don't have any sort of control over the remote server, so there's not too much i can do to provide a real fix (other than point the server admins (and perdition developers?) at this writeup). I don't even know the types of backend server that their perdition proxy is balancing between, so i'm pretty lost for better diagnostics even, let alone a real resolution. some notes I couldn't have figured out the exact details listed above just using Thunderbird on Windows. Fortunately, i had a machine with a decent OS available, and was able to cobble together a fake IMAP client from a couple files (imapstart contained the lines above, and imapfinish contained 8 LOGOUT), bash, and socat. Here's the bash snippet i used as a fake IMAP client:
spoolout()   while read foo; do sleep 1 && printf "%s\r\n" "$foo" ; done  
( sleep 2 && spoolout < imapstart && sleep 4 && spoolout < imapfinish && sleep 500 )   socat STDIO TCP4:imap.fubar.example.net:143
To do the test under IMAPS, i just replaced TCP4:imap.fubar.example.net:143 with OPENSSL:imap.fubar.example.net:993. And of course, i had wireshark handy on the GNU/Linux machine as well, so i could analyze the generated packets over there. One thing to note about user empowerment: Fred isn't a tech geek, but he can be curious about the technology he relies on if the situation is right. He was with me through the whole process, didn't get antsy, and never tried to get me to "just fix it" while he did something else. I like that, and wish i got to have that kind of interaction more (though i certainly don't begrudge people the time if they do need to get other things done). I was nervous about breaking out wireshark and scaring him off with it, but it turned out it actually was a good conversation starter about what was actually happening on the network, and how IP and TCP traffic worked. Giving a crash course like that in a quarter of an hour, i can't expect him to retain any concrete specifics, of course. But i think the process was useful in de-mystifying how computers talk to each other somewhat. It's not magic, there are just a lot of finicky pieces that need to fit together a certain way. And Wireshark turned out to be a really nice window into that process, especially when it displays packets during a real-time capture. I usually prefer to do packet captures with tcpdump and analyze them as a non-privileged user afterward for security reasons. But in this case, i felt the positives of user engagement (how often do you get to show someone how their machine actually works?) far outweighed the risks. As an added bonus, it also helped Fred really understand what i meant when i said that it was a bad idea to use IMAP in the clear. He could actually see his username and password in the network traffic! This might be worth keeping in mind as an idea for a demonstration for workshops or hacklabs for folks who are curious about networking -- do a live packet capture of the local network, project it, and just start asking questions about it. Wireshark contains such a wealth of obscure packet dissectors (and today's heterogenous public/open networks are so remarkably chatty and filled with weird stuff) that you're bound to run into things that most (or all!) people in the room don't know about, so it could be a good learning activity for groups of all skill levels. Tags: debugging, imap, perdition, wireshark

Robert Collins: LCA 2010 Thursday


Jeremy Allison on The elephant in the room free software and microsoft . While he works at Google, this talk was off the leash not about Google :) . As usual grab the video :) We should care about Microsoft because Microsoft s business model depends on a monopoly [the desktop]. Microsoft are very interested in Open Source Apache, MIT, BSD licenced software the GPL is intolerable. Jeremy models Microsoft as a collection of warring tribes that hate each other e.g. Word vs Excel. The first attack was on protocols make the protocols more complex and sophisticated. MS have done this on Kerberos, DCE/RPC, HTTP, and higher up the stack via MSIE rendering modes, ActiveX plugins, Silverlight The EU case was brought about this in the Workgroup Server Market . MS were fined 1 Billion Euros and forced to document their proprietary protocols. OOXML showed up rampant corruption in the ISO Standards process but it got through even though it was a battle against nearly everyone! On the good side it resulted into an investigation into MS dominance in file formats -> MS implemented ODF and MS have had to document their old formats. MS have an ongoing battle in the world wide web IE / Firefox, ajax applications/ silverlight. All of these things are long term failures for MS so what next? Patents :( . Patents are GPL incompatible, but fine with BSD/MIT. The Tom Tom is the first direct attack using MS s patent portfolio. This undermines all the outreach work done by the MS Open Source team which Jeremy tells us are true believers in open source, trying to change MS from the inside. Look for MS pushing RAND patented standards: such things lock us out. Netbooks are identified as a key point for MS to fight on lose that and the desktop position is massively weakened. We should:
  • Keep creating free software and content *under a copyleft license*.
  • Keep pressure on Governments and organisations to adopt open standards and investigate monopolies.
  • Lobby against software patents.
  • Search for prior art on relevant patents and destroy them.
  • Working for a corporation is a moral choice: respectfully call out MS employees.
Jonathan Oxer spoke about the google Moon X-prize and the lunarnumbat.org project it needs contributors: software and hardware hackers, arduino/beagleboard/[M]JPEG2000 gooks, code testers and reviewers, web coding, documentation, math heads & RF hackers. Sounds like fun now to find time! Paul McKenney did another RCU talk and as always it was interesting Optimisation Gone Bad (RCU in Linux 1993-2008). Linux 2.6 -rt patch made RCU much much much more complex with atomic operations, memory barriers, frequent cache misses, and since then it was slowly being whittled back, but there is now a new simpler RCU based around the concept of doing the accounting during context switches & tracking running tasks.

Benjamin Mako Hill: Annual Free Software Foundation Membership Drive Appeal

I wrote this for the FSF's annual membership drive where it was originally published. I am reposting it here.
At its core, I think of free software as about the ability of computer users to take control of their technology. Insofar as our software defines our experience of the world and each other, software freedom is an important part of what allows us to determine the way we live, work, and communicate. Free software is not really about software in this fundamental sense; it's about bringing freedom to users through software. In free software's incredible success over the last two decades, many people have lost sight of this simple fact. We have created an incredible array of applications, libraries, and tools. We have created vibrant development and support communities. We have created new development methodologies, powerful copyleft licenses, and massive collaborative projects. But these are all how we give users freedom. They are not freedom itself. They are not what we were trying to achieve. They are our instruments, not our goal. This distinction becomes central in a world where technology is in flux. Indeed, we live in such a world. We can see signs of this in how, as most users' primary computers become mobile phones and new types of network services make up most of many users' interactions with computers, the free software movement's old applications, communities, development methodologies, and licenses can become ill-suited to, or ineffective at, protecting user freedoms. And indeed, in the next few years, bringing freedom to computer users will need to involve new software and new forms of advocacy. It will need to involve new licenses and new techniques for their enforcement. It will need to involve new forms of collaboration and organization. If the free software movement is to succeed, it must stay focused on computer users' freedom -- on the question of why we do what we do -- and then work creatively on how to best respect and protect the freedom we are working toward. If we are overly focused on how we've done things in the past, we may lose sight of the most fundamental goal of supporting users' control over their technology in general. There are many organizations that support the how of today's free software in various ways -- they are law firms and companies and nonprofit organizations supporting various free software projects. The Free Software Foundation is, by far, the most important organization focused on why --- on the underlying principle of software freedom. As such, it plays an essential role in keeping our broader community focused on the key issues, threats, and challenges that will affect the success of every free software project, and every computer user, in the present and in the future. In this period of rapid change in computer technology, its role is more vital than ever. The consequence of any failure is more dire. Here are some of the ways that I will be encouraging the FSF to serve the free software movement in the coming year: Mobile Phones In a short essay I wrote earlier this year, I pointed out that there are now billions of mobile phones and that, although these phones are increasingly powerful computers, they represent one of the most locked-down, proprietary, and unfree technologies in wide use. The implications of this fact for users' control over their technology are dire. Although some widely used phones make extensive use of free software, most free phones are locked down and Tivoized and their users remain fettered, divided, and helpless. We must raise awareness of free software issues among users of phones, communicate to users that phones are powerful general purpose computers, and explain that control over these devices has critical implications for individual autonomy in the future. Toward this end, the FSF staff will launch an advocacy campaign around mobile phones and software freedom in the coming year. Network Services As network services -- like those built by Facebook, Google, and others -- have continued to grow both in scope and penetration over the last year, the importance of a meaningful free software responses grows as well. The launch of products like Google's network-centric ChromeOS offers one glimpse of what a future computing platform may look like. The implications for user freedom, and for the effectiveness of traditional free software approaches, are frightening. The fact that many network services are built using free software does not make the effect of these services on users' autonomy and freedom any less catastrophic. In the next year, the FSF is planning to release the first of what I hope will be several statements on software freedom and network services. Building off the work of the FSF-supported group Autonomous, the Foundation will help provide guidelines for those implementing network services, for users deciding whether to use services, and for developers trying to build services that go further to respect their users' freedom. Reaching beyond our traditional communities Successfully fighting for user freedom is going to mean successfully reaching out to users outside the FSF's historical base . The FSF continues to do so with its Defective By Design anti-DRM campaign and its End Software Patents work. In the last year, the FSF has also reached out to younger users through its "GNU Generation" campaign run by and for high school students. Additionally, the FSF convened a summit this year on women in free software. The FSF plans to build on these successes in the coming year and to expand similar outreach projects. Of course, fighting for and promoting software freedom is more work than today's FSF has the resources to accomplish. Each of my three points above represents an ambitious undertaking, and yet just a portion of the items on the plate of the FSF's small but dedicated staff. Even just continuing its existing projects will require that the FSF adds hundreds of new members by the end of this period. Your membership and donations help make goals like this possible. A strong free software movement focused on the principled issues of software freedom -- and a strong FSF in particular -- will determine what freedoms the next generation of computer users will enjoy. At stake is no less than that next generation's autonomy. I know that this is not the first fundraising appeal you've read this season and I know that the weakened economy makes giving difficult for many. I understand that the cost of a membership or donation may be less easy to afford this year. But we also cannot afford a weakened FSF at this important point of technological transition. If you are not an FSF associate member, now is the time to become one. If you've read my appeal the last two years and decided to wait, now is the time to take the plunge. Membership is $120 per year ($60 for students) and payable monthly. If you are already a member, please join me in giving generously through a tax-deductible donation, or encourage a friend to sign up. The FSF is a small, humble organization of passionate individuals working tirelessly for our software freedom. I've seen firsthand that even small gifts make a difference.

Join now with a $10 monthly donation

20 January 2010

Theodore Ts'o: The Transitive Grace Period Public Licence: good ideas come around

I recently came across the Transitive Grace Period Public License (alternate link) by Zooko Wilcox-O Hearn. I fonud it interesting because it s very similar almost identical to something I had first starting floating about ten years ago. I called it the Temporary Proprietary License (TPL). I m sure this is a case of great minds think alike . One things that I like about my write up is that I gave some of the rationale behind why this approach is a fruitful one:
A while ago, I was talking to Jim Gettys at the IETF meeting in Orlando, and the subject of software licensing issues came up, and he had a very interesting perspective to share about the X Consortium License, and what he viewed as bugs in the GPL. His basic observation was this: Many companies made various improvements to the X code, which they would keep as proprietary and give them a temporary edge in the marketplace. However, since the X code base was continually evolving, over time it became less attractive to maintain these code forks, since it would mean that they would have to be continually merging their enhancements into the evolving code base. Also, in general, the advantage in having the proprietary new feature or speed enhancement typically degraded over time. After all, most companies are quite happy if it takes 18-24 months for their competitor to match a feature in their release. So sometime later, the companies would very often donate their previously proprietary enhancement to the X consortium, which would then fold it into the public release of X. Jim Gettys complaint about the GPL was that by removing this ability for companies to recoup the investment needed to make major developmental improvements to Open Source code bases, companies might not have the incentive do this type of infrastructural improvements to GPL ed projects. Upon reflection, I think this is a very valid model. When Open Vision distributed the Kerberos Administration daemon to MIT, they wanted an 18 month sunset clause in the license which would prevent commercial competitors from turning around and bidding their work against them. My contract with Powerquest for doing the ext2 partition resizer had a similar clause which kept the resizing code proprietary until a suitable timeout period had occurred, at which point it would be released under the GPL. (Note that by releasing under the GPL, it prevents any of Partition Magic s commercial competitors from including it in their proprietary products!)
For more, read the full proposal. No related posts.

Next.

Previous.