Search Results: "ed"

12 June 2011

Neil Williams: Ideas for TDeb packages

This is a follow-up on TDebs with some detail of how existing packages can be adapted to support TDebs.

$ cat debian/package-tdeb.tdeb

[gettextdir] po
[gettextname] package
[po4apodir] doc/po
[po4amandir] doc/package/man/
[po4acommand] po4a-build


What's happening then? Well, the first thing to take into account is that a lot of the values for these settings will be dictated by upstream, which is why it is necessary for maintainers to add this information as a support file in debian/. I tried determining all this information automatically but the script got far too long and still was far from complete.
Other changes
The (currently unsupported in Debian) XC-Package-Type: tdeb option is used in debian/control to mark a new or existing package as a TDeb. To use an existing package, it must comply with the rules for a TDeb including that it must be Architecture: all. The other rules centre around build issues. If any of the files in the existing package would require execution of any part of the normal build process of the package, these would have to be moved out of the package before that package could be a TDeb. The reason is that TDeb generation by translators needs to not require a full build environment for every individual package and must not risk modifying package contents in ways which are related to the build environment. So, unchanged images and other architecture-independent files are OK, any files which need build-dependencies are a problem. I don't know how many packages there are out there with such files. If you have a -data or -common package which contains translated data and that package also includes architecture-independent files, I'd be interested in knowing the name of the packages involved. If those packages also include files which are generated or modified within the package build, I'll be particularly interested in knowing about those source packages.
debconf
The most common use of TDebs during a release cycle is probably going to be debconf template updates by Christian and these are handled without needing a listing in the .tdeb file.
Other formats
I'm looking at QtLinguist support and it should be fairly straightforward using the .tdeb file arrangement.

Once that's done (in a branch, please - these can't be uploaded yet), the package can be tested with the soon-to-be-uploaded emdebian-tdeb package. The old content has been moved into the emdebian-grip-server package and the dependencies of the old version stripped back. The package contains two scripts dpkg-gentdeb and dh_gentdeb which I hope to get included into the respective packages in time for Wheezy. The idea will be that build systems (dh7, CDBS, debhelper-plain etc.) includes a call to the relevant script. (dh_ is just a wrapper around dpkg- in this case). This would allow maintainers to create the first TDeb, get that through NEW and then the fun starts. Once the translation mechanism is set up, I would like a nominated person (likely to be Christian if he agrees) to co-ordinate translation updates for particular packages to allow for a single upload including updates for many translations. This would be package_version+t1_all.tdeb and an appropriate .diff.gz or debian.tar.gz. No binary upload, no impact on testing migrations.

This is mostly theory right now but the scripts do exist in Emdebian SVN.

Still more testing to do but I hope to upload these scripts to unstable in the next few days.

Clint Adams: Debian on the DreamPlug, Part II

If you have debootstrapped the internal microSD card, the vendor-supplied U-Boot config should serve you adequately. To boot off of a USB stick, however, interrupt the boot sequence (if you don't have a JTAG/serial board at this point, go buy one immediately), and enter the following commands:
setenv x_bootcmd_kernel fatload usb 1:1 0x6400000 uImage
setenv x_bootargs_root root=/dev/sdc2 rootdelay=10
saveenv
reset
If you just want to testboot once, and don't want to make it permanent, omit the saveenv. If you do want to make it permanent, consider removing the superfluous pings from the bootcmd, but be careful to escape semicolons and dollar signs instead of zealously copying and pasting. If you haven't bothered putting a FAT partition with uImage on the USB stick, omit the setenv x_bootcmd_kernel line. Once you've booted Debian, you may wish to natively-debootstrap or copy your new partition to /dev/sda2 (which is what Linux will call the ext3 partition of your microSD card). To then return to fully booting off of microSD so you can repurpose the USB stick,
setenv x_bootcmd_kernel fatload usb 0:1 0x6400000 uImage
setenv x_bootargs_root root=/dev/sda2 rootdelay=10
saveenv
reset
Enjoy.

Matt Brown: Using StartCom Free SSL certificates with Cyrus imapd

A stumbled across Start Com a few months ago, an Israeli company that run a Certificate Authority (CA) called StartSSL with a root certificate in all the modern browsers and operating systems. Best of all they don t participate in the cartel run by the rest of the SSL certificate industry and offer domain validated certificates at the price it costs them to issue them nothing. I had the first opportunity to use their services today when I needed an SSL cert to secure the IMAP server I run for my parents and I was very pleased with the experience. The web interface is a bit weird and you have to jump through some strange hoops, but to save paying more money to the SSL certificate cartel it seemed more than worthwhile. Like most CAs these days the certificate which signs your server certificate is not the actual root certificate included in your operating system or browser, but an intermediate CA certificate which is in turn signed by the root certificate. This means that you have to ensure that your server includes the intermediate CA certificate alongside the server certificate so the client can validate the entire path back to the root. Unlike Apache which explicitly allows you to specify a certificate chain file, the openssl methods used by Cyrus 2.2 only seem to recognise a single CA certificate in the file pointed to by tls_ca_file. All as not lost however, as the openssl libraries are actually quite smart and will automagically determine which intermediate certs they need to bundle into the handshake if you install them appropriately under /etc/ssl/certs (at least on Debian). The trick is that you have to install the intermediate CA cert into a file named after the hash of the certificate, like so:

# wget http://www.startssl.com/certs/sub.class1.server.ca.pem -O /etc/ssl/certs/startcom-class1-intermediate.pem
# hash=$(openssl x509 -hash -noout -in /etc/ssl/certs/startcom-class1-intermediate.pem)
# ln -s ./startcom-class1-intermediate.pem /etc/ssl/certs/$ hash .0
# ls -l /etc/ssl/certs/$ hash .0
lrwxrwxrwx 1 root root 34 2011-06-13 07:43 /etc/ssl/certs/ea59305e.0 -> ./startcom-class1-intermediate.pem
Then in imapd.conf:

tls_cert_file: /etc/ssl/certs/your-server-cert.pem
tls_key_file: /etc/ssl/private/your-server-key.key
tls_ca_file: /etc/ssl/certs/startcom-ca.pem
Voila. Works everywhere I ve tried so far. Start Com Highly Recommended. I ll be using them for any future SSL certificate purchases (e.g. EV certs) that I need to make.

Christoph Egger: Marking all closed bug reports "read" in a Maildir

#!/usr/bin/python
from btsutils.debbugs import debbugs
import mailbox
import re
import sys
mailbox =  mailbox.Maildir(sys.argv[1], factory=False)
bts = debbugs()
for key in mailbox.keys():
    message = mailbox[key]
    if not 'S' in message.get_flags():
        if message['X-Debian-PR-Message']:
            try:
                bugnr = message['X-Debian-PR-Message'].split()[1]
            except IndexError:
                continue
        else:
            test = re.search('Bug#(\d 6 )', message['Subject'])
            if test:
                bugnr = test.group(0)[4:]
            else:
                continue
        try:
            bug = bts.get(bugnr)
        except AttributeError:
            print bugnr
            continue
        if bug.getStatus() == u'done':
            message.set_flags(message.get_flags() + 'S')
            mailbox[key] = message
mailbox.flush()
Run it like python cleanbugsmail.py ~/Maildir/.debian.bugs. Anyone aware of a better solution?

Steve McIntyre: How to not embarrass yourself with missing attachments in mutt

I keep on seeing people sending messages saying "see attached file" or similar in their emails, but then forgetting to actually attach the file. I used to do it myself lots, but then with the help of some ideas I found on the net I wrote the following script to use with mutt. To use it, use the setting "set sendmail=" to point at it.
#!/bin/bash
#
# mutt-sendmail
# helper script to reduce embarrassment with mutt :-)
#
# Copyright 2011 Steve McIntyre <steve>
# GPL v2
###
# save msg in file to re-use it for multiple tests
###
TMPFILE= mktemp -p ~/tmp -t mutt.XXXXXX    exit 2
cat > $TMPFILE
## Attachment keywords that the message body will be searched for:
KEYWORDS='attach patch'
## Define test for multipart message.
function multipart  
    grep -q '^Content-Type: multipart' "$TMPFILE"
 
## Define test for keyword search.
function word-attach  
    grep -v '^>' "$TMPFILE"   grep -v "^X-attached:"   grep -E -i -q "$KEYWORDS"
 
## Header override.
function header-override  
    grep -i -E "^X-attached: *none *$" "$TMPFILE"
 
###
# FINAL DECISION:
# chain series of functions, use !   && for logic connections,
###
if multipart   ! word-attach   header-override; then
    formail -I bcc < $TMPFILE   /usr/lib/sendmail -oi -oem "$@"
    status=$?
else
    echo "No file was attached but a search of the message text suggests there"
    echo "should be one.  Add a header \"X-attached: none\" to override this"
    echo "check if no attachment is intended."
    status=1
fi
rm -f $TMPFILE
exit $status

Christian Perrier: Kikithon - THANK YOU

So, I just got this surprise by my beloved ones. I'm a little bit too moved right now to write down something coherent but, at least I would like to say THANK YOU to all those of you who contributed to it. And, yes, I'll have the book with me at DC11, so you can admire Elizabeth's work for collecting all these tiny bits of friendship from all around the world...and JB's commitment to make all this happen with her. He's sitting close to me right now and joins me for these thanks. You made my day, ladies and gentlemen. Bubulle

Kai Wasserb ch: r[36]00g: S3TC support on amd64 (especially for Wine)

I already blogged about S3TC support with Wine, but back then I wrote about problems to get that working on amd64 without a proprietary driver. Now I've figured out a way to get it working on amd64 with the free radeon drivers (Gallium versions). It's actually pretty simple, as most things are, once you figured it out. For 64 bit applications, you just need a recent Mesa version and the package libtxc-dxtn0. If you're using a card supported by the r600g driver, you first need a version of the Mesa package, which is build with the Gallium version of the r600 driver (the classic driver should work too, but I haven't tested that), like my unofficial Mesa packages (those packages were built for testing r600g, see this e-mail to debian-x). r600g users also need to set R600_S3TC_ENABLE=1, otherwise the driver won't attempt to load libtxc-dxtn0. For 32 bit applications (like Windows games run with Wine) the initial setup is a little bit more involved: in addition to the above you also need to update a few libraries under /usr/lib32: namely Mesa and libdrm (if you use my Mesa packages you need a i386 copy of libffi too). The quick and dirty approach is to download the i386 packages for libgl1-mesa-dri, libgl1-mesa-glx, libglu1-mesa, libdrm2, libdrm-intel1, libdrm-radeon1 and (if you use my Mesa build) libffi5. Unpack the packages (dpkg-deb -x) and move the files under /path/to/unpack/dir/usr/lib to /usr/lib32. Alternatively you can also build a new ia32-libs package (make sure you change the source.list file of ia32-libs to use at least testing as a base, otherwise you'll end up with basically the same versions as are in the current package). No matter how you updated your drivers you now need the 32 bit version of libtxc-dxtn0. debian-multimedia.org offers a packaged version. After installing all the previous packages, Wine should be able to display (most) S3TC-using programs (in case you use the r600g driver, make sure you have R600_S3TC_ENABLE=1 set). If you're using my Mesa builds you can drop the LIBGL_DRIVERS_PATH=/usr/lib32/dri part again from your Wine invocation. Please note, that there might be some S3TC-using applications with graphical glitches, when using the above method, as the support for S3TC in r600g is still marked as WIP.

Kai Wasserb ch: Thanks for the support!

As I'm asking for donations to help cover the traffic costs for the wine-unstable packages I provide and to support my Debian work in general if appreciated, I thought a "Thank you!" to all those who've donated something so far would be in order (don't worry, I won't disclose any names of donators or other personal information). Thus here we go: Thank you! It's much appreciated. For all those who just read this and think they'd like to donate something too, if just they could locate the links to do so, here they come:

Christian Perrier: Developers per country (June 2011) - 3rd take

See comments at the end about this 3rd version This is time again for yet another bubulle game: counting the number of developers per country. I already published such analysis in 2010 and 2009. So, here we are with the June 2011 version, sorted by the ratio of *active* developers per million population for each country.
Act: number of active developers
Dev: total number of developers
A/M: number of active devels per million pop.
D/M: number of devels per million pop.
2009: rank in 2009
2010: rank in 2010
June 2011: rank now
Code Name Population Act Dev Dev Act/Million Dev/Million 2009 2010 June 2011
fi Finland 5374781 21 31 3,91 5,77 1 1 1
ch Switzerland 7866500 21 26 2,67 3,31 2 2 2
mq Martinique 397730 1 1 2,51 2,51

3
no Norway 4964500 12 15 2,42 3,02 5 4 4
nz New Zealand 4393500 10 15 2,28 3,41 4 3 5
ie Ireland 4470700 10 13 2,24 2,91 13 9 6
se Sweden 9354462 19 35 2,03 3,74 3 6 7
lu Luxemburg 511840 1 1 1,95 1,95 8 5 8
de Germany 81802000 155 221 1,89 2,7 7 7 9
at Austria 8404252 15 25 1,78 2,97 6 8 10
fr France 63136180 91 119 1,44 1,88 12 12 11
au Australia 22632213 31 57 1,37 2,52 9 10 12
be Belgium 11007020 15 17 1,36 1,54 10 11 13
uk United-Kingdom 62008048 67 106 1,08 1,71 14 14 14
nl Netherlands 16674600 18 37 1,08 2,22 11 13 15
dk Denmark 5564219 6 10 1,08 1,8 17 17 16
ca Canada 34480000 27 57 0,78 1,65 15 15 17
hr Croatia 4429078 3 3 0,68 0,68 20 18 18
es Spain 46030109 31 51 0,67 1,11 16 16 19
lt Lithuania 3225346 2 2 0,62 0,62 28 19 20
cz Czech Rep 10540748 6 6 0,57 0,57 21 20 21
it Italy 60605053 33 47 0,54 0,78 23 22 22
bg Bulgaria 7351254 4 4 0,54 0,54 25 23 23
il Israel 7602400 4 6 0,53 0,79 24 24 24
us USA 308745538 162 364 0,52 1,18 19 21 25
hu Hungary 9979000 5 11 0,5 1,1 18 25 26
lv Latvia 2245357 1 1 0,45 0,45 26 26 27
uy Uruguay 3494382 1 2 0,29 0,57 22 27 28
jp Japan 127960000 33 46 0,26 0,36 30 28 29
pl Poland 38186860 9 13 0,24 0,34 29 29 30
cr Costa Rica 4253897 1 1 0,24 0,24 31 30 31
pt Portugal 10647763 2 4 0,19 0,38 27 32 32
sk Slovakia 5429763 1 1 0,18 0,18 32 31 33
gr Greece 11305118 2 3 0,18 0,27 33 38 34
ar Argentina 40091359 7 9 0,17 0,22 34 33 35
sv El Salvador 6134000 1 1 0,16 0,16

36
tw Taiwan 23061689 3 3 0,13 0,13 37 34 37
br Brazil 190732694 20 21 0,1 0,11 36 35 38
by Belarus 9648533 1 1 0,1 0,1 35 36 39
mg Madagascar 20653556 2 2 0,1 0,1 44 37 40
cu Cuba 11239363 1 1 0,09 0,09
38 41
kr South Korea 48758000 4 6 0,08 0,12 39 39 42
ec Ecuador 14790608 1 1 0,07 0,07
40 43
cl Chile 17224200 1 2 0,06 0,12 42 41 44
ro Romania 21466174 1 2 0,05 0,09 45 43 45
co Colombia 45925397 2 3 0,04 0,07 41 44 46
ru Russia 142905200 6 7 0,04 0,05 43 42 47
za South Africa 49991300 2 9 0,04 0,18 38 48 48
my Malaysia 27565821 1 1 0,04 0,04

49
ve Venezuela 29105632 1 1 0,03 0,03 40 45 50
pe Peru 29496000 1 1 0,03 0,03 46 46 51
tr Turkey 73722988 2 2 0,03 0,03 47 47 52
mx Mexico 112322757 2 2 0,02 0,02 49 49 53
th Thailand 63878267 1 2 0,02 0,03 50 50 54
eg Egypt 80085862 1 3 0,01 0,04 51 51 55
in India 1210193422 8 8 0,01 0,01 52 52 56
cn China 1339724852 7 11 0,01 0,01 53 53 57
ua Ukraine 45888000 0 0 0 0 48 53 58























896 1450 61,79%



A few interesting facts: v2 comment: This is the second version of this blog post. I have been pointed that the population I was using for "Ireland" is indeed the population of the entire island, so Republic of Ireland (Eire) plus Northern Ireland (Ulster). We may guess that people listing "IE" as their country are citizens of the Republic of Ireland, so the population to use is that of this part of the island. As a consequence, Ireland is bumped up to 6th rank instead of 9th. v3 comment: Doh. Since I'm doing this survey, I was always adding people using "sv" as country to Sweden. This is a quite common mistake and it was happening in the past. But now, there is only ONE developer who uses "sv" as country, this is Rene Mayorga and he definitely lives in El Salvador, not Sweden. As a consequence, Sweden lost one developer (but keeps its rank) and El Salvador now appears at rank 36. It is not a "new" country as Rene is DD for quite some time.

11 June 2011

Dirk Eddelbuettel: United Sounds of America: New York

Last night was the kick-off concert in a series the Chicago Symphony has been preparing (and pushing) for the last little while: United Sounds of America: A Journey through Musical Roots. Five concerts featuring New York (last night), Chicago/Route 66 (tonight), New Orleans (tomorrow), Detroit (next Friday) and Austin (next Saturday). The New York evening was organized by pianist Bill Charlap (wikipedia) who also headlined and MC-ed the first set. Covering the birth of Jazz until early post-war bebop in chronological fashion, it was a pretty decent jazz set with a very nice band featuring Kenny Washington (dr), Peter Washington (b), Jeremy Pelt (tp), Jimmy Greene (ts) and Ken Peplowski (cl) --- and local favourite Kurt Elling (wikipedia) who was simply outstanding with the classic songbook material. Having seen him live once before a few years ago, I happened to listen a lot to Elling of late, following the random find of this stream from a live concert in February as well as his two most recent records, the Grammy-winning Dedicated to You (which retakes the wonderful Coltrane/Hartman album from 1963) and the simply amazing very recent The Gate (which you should go and buy right now). And I was not disappointed. He has a great four-octave-spanning baritone voice and great stage presence. The second set was dedicated to post-war folk and singer/songwriter material and organized by Suzanne Vega. That was neat too, if somewhat different in format and more like your standard (rock-ish) concert. Vega brought her own band featuring Gerry Leonard (g), Mike Visceglia (b), Graham Hawthorne (dr) along with guest appearances by Tom Paxton (g, vocals) and Richard Julian (g, vocals). Somehow Vega seems a little trapped in her own success in the 1980s and rehashed a lot of old hits. Nothing wrong that per se as it is good material (more on that below). Only during three encores did she provide new material which was ... excellent. So maybe some rebalancing towards new stuff was neat. Also nice was the additiona of four string players from the Chicago Symphony which had joined the band for a Simon and Garfunkel's song The Boxer. Oh, and of course seeing Vega perform Tom's Diner was nice, especially in such a fast and rocking version, even enhanced by the those strings. Just a few months ago I had gone over the passage from the original a-capella version of Tom's Diner to the various beat-box remixes which were then remixed by Vega in various live performances (e.g. videos of a capella, rockish, another rockish and beatboxish versions). Good fun, and it is nice to see she is playing along and enjoying it as well. All told, a really nice iniative by the CSO. If you're in Chicagoland, go and see some of the remaining shows.

Christian Perrier: Developers per country (June 2011) - 2nd take

See comment at the end about this 2nd version This is time again for yet another bubulle game: counting the number of developers per country. I already published such analysis in 2010 and 2009. So, here we are with the June 2011 version, sorted by the ratio of *active* developers per million population for each country.
Act: number of active developers
Dev: total number of developers
A/M: number of active devels per million pop.
D/M: number of devels per million pop.
2009: rank in 2009
2010: rank in 2010
June 2011: rank now
Code Name Population Act Dev Dev Act/Million Dev/Million 2009 2010 June 2011
fi Finland 5374781 21 31 3,91 5,77 1 1 1 1
ch Switzerland 7866500 21 26 2,67 3,31 2 2 2 2
mq Martinique 397730 1 1 2,51 2,51

3 3
no Norway 4964500 12 15 2,42 3,02 5 4 4 4
nz New Zealand 4393500 10 15 2,28 3,41 4 3 5 5
ie Ireland 4470700 10 13 2,24 2,91 13 9 6 6
se Sweden 9354462 20 36 2,14 3,85 3 6 7 7
lu Luxemburg 511840 1 1 1,95 1,95 8 5 8 8
de Germany 81802000 155 221 1,89 2,7 7 7 9 9
at Austria 8404252 15 25 1,78 2,97 6 8 10 10
fr France 63136180 91 119 1,44 1,88 12 12 11 11
au Australia 22632213 31 57 1,37 2,52 9 10 12 12
be Belgium 11007020 15 17 1,36 1,54 10 11 13 13
uk United-Kingdom 62008048 67 106 1,08 1,71 14 14 14 14
nl Netherlands 16674600 18 37 1,08 2,22 11 13 15 15
dk Denmark 5564219 6 10 1,08 1,8 17 17 16 16
ca Canada 34480000 27 57 0,78 1,65 15 15 17 17
hr Croatia 4429078 3 3 0,68 0,68 20 18 18 18
es Spain 46030109 31 51 0,67 1,11 16 16 19 19
lt Lithuania 3225346 2 2 0,62 0,62 28 19 20 20
cz Czech Rep 10540748 6 6 0,57 0,57 21 20 21 21
it Italy 60605053 33 47 0,54 0,78 23 22 22 22
bg Bulgaria 7351254 4 4 0,54 0,54 25 23 23 23
il Israel 7602400 4 6 0,53 0,79 24 24 24 24
us USA 308745538 162 364 0,52 1,18 19 21 25 25
hu Hungary 9979000 5 11 0,5 1,1 18 25 26 26
lv Latvia 2245357 1 1 0,45 0,45 26 26 27 27
uy Uruguay 3494382 1 2 0,29 0,57 22 27 28 28
jp Japan 127960000 33 46 0,26 0,36 30 28 29 29
pl Poland 38186860 9 13 0,24 0,34 29 29 30 30
cr Costa Rica 4253897 1 1 0,24 0,24 31 30 31 31
pt Portugal 10647763 2 4 0,19 0,38 27 32 32 32
sk Slovakia 5429763 1 1 0,18 0,18 32 31 33 33
gr Greece 11305118 2 3 0,18 0,27 33 38 34 34
ar Argentina 40091359 7 9 0,17 0,22 34 33 35 35
tw Taiwan 23061689 3 3 0,13 0,13 37 34 36 36
br Brazil 190732694 20 21 0,1 0,11 36 35 37 37
by Belarus 9648533 1 1 0,1 0,1 35 36 38 38
mg Madagascar 20653556 2 2 0,1 0,1 44 37 39 39
cu Cuba 11239363 1 1 0,09 0,09
38 40 40
kr South Korea 48758000 4 6 0,08 0,12 39 39 41 41
ec Ecuador 14790608 1 1 0,07 0,07
40 42 42
cl Chile 17224200 1 2 0,06 0,12 42 41 43 43
ro Romania 21466174 1 2 0,05 0,09 45 43 44 44
co Colombia 45925397 2 3 0,04 0,07 41 44 45 45
ru Russia 142905200 6 7 0,04 0,05 43 42 46 46
za South Africa 49991300 2 9 0,04 0,18 38 48 47 47
my Malaysia 27565821 1 1 0,04 0,04

48 48
ve Venezuela 29105632 1 1 0,03 0,03 40 45 49 49
pe Peru 29496000 1 1 0,03 0,03 46 46 50 50
tr Turkey 73722988 2 2 0,03 0,03 47 47 51 51
mx Mexico 112322757 2 2 0,02 0,02 49 49 52 52
th Thailand 63878267 1 2 0,02 0,03 50 50 53 53
eg Egypt 80085862 1 3 0,01 0,04 51 51 54 54
in India 1210193422 8 8 0,01 0,01 52 52 55 55
cn China 1339724852 7 11 0,01 0,01 53 53 56 56
ua Ukraine 45888000 0 0 0 0 48 53 57 57

























896 1450 61,79%




A few interesting facts: This is the second version of this blog post. I have been pointed that the population I was using for "Ireland" is indeed the population of the entire island, so Republic of Ireland (Eire) plus Northern Ireland (Ulster). We may guess that people listing "IE" as their country are citizens of the Republic of Ireland, so the population to use is that of this part of the island. As a consequence, Ireland is bumped up to 6th rank instead of 9th.

Clint Adams: Debian on the DreamPlug

The DreamPlug is like a GuruPlug Server-Plus with a few notable differences: So let's say you want to put Debian on your DreamPlug. You do, of course, because running some other operating system is in poor taste, and you'd be embarrassed telling your friends. How do you do it? You can't use d-i. Let me back up. In the onboard SPI flash, there is a copy of Das U-Boot. This is a fork of mainline U-Boot, with no complete and corresponding source available. To the casual observer, this might look like an egregious GPL violation, but, on the other hand, no one seems to know how to rewrite the SPI flash except from U-Boot itself, so if you happen to corrupt said flash, your plug is bricked and openocd can't save you. I would be happy to be proven wrong on this last point, but for not let's assume that you're screwed and unable to replace your boot loader with free software. The next problem is the kernel, which lives on the microSD card. This is potentially free software, though I can't swear that complete and corresponding source code is available. What I can claim is that linux-2.6.33.6.tar.bz2 on Google Code will build a Linux that works on the plug. I will also point out that this doesn't match Linux 2.6.33.6 from kernel.org. Some other time I should rant about ARM Linux but for now I will just say that if you use the U-Boot of questionable provenance and either the Linux that's shipped with the plug or the one at the above link, you will be able to boot a mostly Debian system. I'll mention the third exception later. One thing you can do is to take the plug apart, remove the microSD card from its slot, and then stick it into a reader that you can then manipulate on another machine. If you're choosing this route and wish to take this opportunity to replace the microSD card with something larger than 2 gigs, keep in mind that you'll have to either preserve the uImage file from the first partition or build a new one. I am not fond of cross-architecture anything. I prefer to do things natively rather than cross-compile or foreign-debootstrap, and I own enough armel boxes that I can do this easily. So at this point I would just debootstrap a new Debian base onto the second partition of the microSD card. The first partition contains the uImage (which is your Linux image in a wrapper), and must be a FAT filesystem since you can't replace your boot loader with something that can read a better filesystem. The second partition will be your rootfs and can be whichever filesystem your Linux can read. If you do not have another armel system to play with, you might want to familiarize yourself with Marco's Sheevaplug instructions. You can install to a USB stick as well. Just remember that U-Boot needs a FAT filesystem containing the uImage on it and that you can't use a kernel in Debian yet. You'll also want to ignore the instructions regarding U-Boot, since that must be done differently. I'll be back later with some more details.

Christian Perrier: Developers per country (June 2011)

This is time again for yet another bubulle game: counting the number of developers per country. I already published such analysis in 2010 and 2009. So, here we are with the June 2011 version, sorted by the ratio of *active* developers per million population for each country.
Act: number of active developers
Dev: total number of developers
A/M: number of active devels per million pop.
D/M: number of devels per million pop.
2009: rank in 2009
2010: rank in 2010
June 2011: rank now
Code Name Population Act Dev Dev Act/Million Dev/Million 2009 2010 June 2011
fi Finland 5374781 21 31 3,91 5,77 1 1 1
ch Switzerland 7866500 21 26 2,67 3,31 2 2 2
mq Martinique 397730 1 1 2,51 2,51

3
no Norway 4964500 12 15 2,42 3,02 5 4 4
nz New Zealand 4393500 10 15 2,28 3,41 4 3 5
se Sweden 9354462 20 36 2,14 3,85 3 6 6
lu Luxemburg 511840 1 1 1,95 1,95 8 5 7
de Germany 81802000 155 221 1,89 2,7 7 7 8
at Austria 8404252 15 25 1,78 2,97 6 8 9
ie Ireland 6197100 10 13 1,61 2,1 13 9 10
fr France 63136180 91 119 1,44 1,88 12 12 11
au Australia 22632213 31 57 1,37 2,52 9 10 12
be Belgium 11007020 15 17 1,36 1,54 10 11 13
uk United-Kingdom 62008048 67 106 1,08 1,71 14 14 14
nl Netherlands 16674600 18 37 1,08 2,22 11 13 15
dk Denmark 5564219 6 10 1,08 1,8 17 17 16
ca Canada 34480000 27 57 0,78 1,65 15 15 17
hr Croatia 4429078 3 3 0,68 0,68 20 18 18
es Spain 46030109 31 51 0,67 1,11 16 16 19
lt Lithuania 3225346 2 2 0,62 0,62 28 19 20
cz Czech Rep 10540748 6 6 0,57 0,57 21 20 21
it Italy 60605053 33 47 0,54 0,78 23 22 22
bg Bulgaria 7351254 4 4 0,54 0,54 25 23 23
il Israel 7602400 4 6 0,53 0,79 24 24 24
us USA 308745538 162 364 0,52 1,18 19 21 25
hu Hungary 9979000 5 11 0,5 1,1 18 25 26
lv Latvia 2245357 1 1 0,45 0,45 26 26 27
uy Uruguay 3494382 1 2 0,29 0,57 22 27 28
jp Japan 127960000 33 46 0,26 0,36 30 28 29
pl Poland 38186860 9 13 0,24 0,34 29 29 30
cr Costa Rica 4253897 1 1 0,24 0,24 31 30 31
pt Portugal 10647763 2 4 0,19 0,38 27 32 32
sk Slovakia 5429763 1 1 0,18 0,18 32 31 33
gr Greece 11305118 2 3 0,18 0,27 33 38 34
ar Argentina 40091359 7 9 0,17 0,22 34 33 35
tw Taiwan 23061689 3 3 0,13 0,13 37 34 36
br Brazil 190732694 20 21 0,1 0,11 36 35 37
by Belarus 9648533 1 1 0,1 0,1 35 36 38
mg Madagascar 20653556 2 2 0,1 0,1 44 37 39
cu Cuba 11239363 1 1 0,09 0,09
38 40
kr South Korea 48758000 4 6 0,08 0,12 39 39 41
ec Ecuador 14790608 1 1 0,07 0,07
40 42
cl Chile 17224200 1 2 0,06 0,12 42 41 43
ro Romania 21466174 1 2 0,05 0,09 45 43 44
co Colombia 45925397 2 3 0,04 0,07 41 44 45
ru Russia 142905200 6 7 0,04 0,05 43 42 46
za South Africa 49991300 2 9 0,04 0,18 38 48 47
my Malaysia 27565821 1 1 0,04 0,04

48
ve Venezuela 29105632 1 1 0,03 0,03 40 45 49
pe Peru 29496000 1 1 0,03 0,03 46 46 50
tr Turkey 73722988 2 2 0,03 0,03 47 47 51
mx Mexico 112322757 2 2 0,02 0,02 49 49 52
th Thailand 63878267 1 2 0,02 0,03 50 50 53
eg Egypt 80085862 1 3 0,01 0,04 51 51 54
in India 1210193422 8 8 0,01 0,01 52 52 55
cn China 1339724852 7 11 0,01 0,01 53 53 56
ua Ukraine 45888000 0 0 0 0 48 53 57























896 1450 61,79%



A few interesting facts:

Nathan Handler: Google Summer of Code Update #3

Last week was a rather slow week. I did some work on allowing the dashboard to store and process information that does not come from the BTS. This exposed a few issues with the way we were storing and presenting information. After talking to Matt, we decided that the dashboard should deal with task objects. These tasks would contain basic information such as a name, person assigned to it, status, and possibly a link to a bug. This means that we would be able to start up a new DEX project by simply choosing a project name and creating a basic text file containing a list of tasks (package names, patches, bugs, etc). I also have been trying to get a hold of some people who participated in the last DEX project. I am interested in getting some more feedback about what went well, problems they encountered, and tools that might have made things easier. I am also talking to some people who are currently working on starting up new DEX projects to try and make dextools align with as many workflows as possible. If you fall into either of these categories, I would really appreciate it if you contact me. There is also a new wiki page that I created so that it is easier for people who are not interested in me or the Google Summer of Code to quickly see what dextools is about and monitor its progress. I will be adding more information over the next few days. Currently, I am continuing to work on the dashboard and talking to people about their DEX experiences. I have also begun working on some scripts to generate graphs that will go on the dashboard. These graphs will allow us to quickly check our progress on different projects. They will also allow us to see and acknowledge individuals working on the tasks. I will add more information about these graphs to this blog and to the dextools wiki page.

Nathan Handler: Google Summer of Code Update #3

Last week was a rather slow week. I did some work on allowing the dashboard to store and process information that does not come from the BTS. This exposed a few issues with the way we were storing and presenting information. After talking to Matt, we decided that the dashboard should deal with task objects. These tasks would contain basic information such as a name, person assigned to it, status, and possibly a link to a bug. This means that we would be able to start up a new DEX project by simply choosing a project name and creating a basic text file containing a list of tasks (package names, patches, bugs, etc). I also have been trying to get a hold of some people who participated in the last DEX project. I am interested in getting some more feedback about what went well, problems they encountered, and tools that might have made things easier. I am also talking to some people who are currently working on starting up new DEX projects to try and make dextools align with as many workflows as possible. If you fall into either of these categories, I would really appreciate it if you contact me. There is also a new wiki page that I created so that it is easier for people who are not interested in me or the Google Summer of Code to quickly see what dextools is about and monitor its progress. I will be adding more information over the next few days. Currently, I am continuing to work on the dashboard and talking to people about their DEX experiences. I have also begun working on some scripts to generate graphs that will go on the dashboard. These graphs will allow us to quickly check our progress on different projects. They will also allow us to see and acknowledge individuals working on the tasks. I will add more information about these graphs to this blog and to the dextools wiki page.

Kenshi Muto: Squeeze amd64 d-i images with Linux kernel 2.6.38.bpo

This is first release of backported Debian-installer for Debian GNU/Linux 6.0, Squeeze. You can download it from the place. Update #1: I updated images, as revision 0614. It is based on Debian 6.0.1 + firmware netinst. So, you don't need to make a memory stick to insert additional firmwares. Plus, this image includes new DHCP client which is fixed an interacting problem with some DHCP servers. Notice: This ISO image doesn't include non-free firmware. You can take it from Debian official page (please see Debian squeeze installation information and look Section 2.2, Installation Guide). WPA support isn't implemented yet. Enjoy!

10 June 2011

Neil Williams: Putting the magic smoke back into the ring main

Haven't been in my new home that long and through a long chain of contacts, my neighbour was finally able to contact me. (Just goes to show that having Debian friends nearby who like board games turns out to make some things JustWork.)
So, when I got the message and got home the flat was fine - just with no electrical power. Murphy's Law ensured that my laptop was also low on power, as was my mobile phone and my landline is cordless and the router was, naturally, not working. My communication options were suddenly rather limited.

The 50yr old wiring in this block finally surrendered the magic smoke and caused a fire downstairs (mostly melted insulation) before it disconnected. I got home around 1pm, electricians to fix the problem arrived about 5pm and haven't finished quite yet. (It's now 12:11am). A relatively large hole in the lawn was dug (a hard task in itself seeing as this area is officially in a drought and the ground is like iron), two junction boxes rebuilt, new connection made from downstairs to upstairs, the work just went on and on.

I'll get some accurate details when I manage to speak to my brother - I do a little bit of hardware but I deal in 1W or a few hundred mA, when a 80A cable melts I'm just a bit out of my depth. I've not seen a fuse that size since I left school.

Thanks to those Debian and non-Debian people who helped me actually contact the relevant people today. I was due to get so many things done today, instead I got through the worry to end up incredibly bored - it turns out to be surprisingly difficult to find things to do when there is no mains power, all the batteries in mobile devices are flat and it's too dark to read.
:-(

Nathan Handler: irssi bansearch.pl script

As a freenode staffer and Ubuntu Operator, a frequent question that I am asked is, Why can t I join #channel? or Why can t I talk in #chanel? . To answer this question, I normally check the ban and quiet lists for #channel, and then I check what channel modes are applied. For small channels, this is not too bad, but for channels with very large ban/quiet lists, it can take some time. This is why I have created bansearch.pl. This irssi script will attempt to determine why a user is unable to join/talk in a channel. Currently, the script is maintained in a Launchpad bzr branch. To get and install the script, run the following commands from your home directory. bzr branch lp:~nhandler/+junk/bansearch
mkdir -p ~/.irssi/scripts/autorun
ln -s ~/bansearch/bansearch.pl ~/.irssi/scripts/bansearch.pl
ln -s ~/.irssi/scripts/bansearch.pl ~/.irssi/scripts/autorun/bansearch.pl
You can leave out the last command if you do not want the script to run automatically when you start irssi. Using the script is quite simple. You can use it like this: /script load bansearch.pl
/bansearch nick [#channel]
If you do not specify a channel, it will use the current channel. The script will currently look for bans and quiets matching the user. It has some limited extban support, but it does not support CIDR bans. It also supports looking at channel modes that might prevent the user from joining/talking. The script knows whether the user is identified, so $a extbans, $~a, and cmode +r are all supported, and the script will only warn you about them if they match the user. The script was written for freenode, so while basic ban/quiet searching might work on other IRC networks, the channel mode checks will probably not work properly. The script is still fairly new, so there are still bugs in it. If you find any, please let me know, and I will try and patch them as quickly as possible. I am also open to any feedback about how to improve the script.

Nathan Handler: Google Summer of Code Update #2

I ve been spending the past few days working on a dashboard for DEX. I ve been using Python, javascript, and jquery to create this dashboard (partially as a learning exercise). Earlier today, I started thinking that a visual mockup of the dashboard might be helpful, as it will allow me to create and revise a design based on feedback without having to touch the code. At this point, I had already written a fair bit of code and had a rough but working early version of a dashboard coded. So for the first mockup, I simply created it to match my code. DEX Dashboard Thanks to the generosity of the folks at Balsamiq, I was able to get myself a free key to create the mockup above. As I mentioned earlier, this is what the code currently looks like, not what it will look like. Next, I m going to be spending some time revising that mockup so I have a visual goal to work towards. I also will be cleaning up the code that I currently have and making it available in a public VCS.

Nathan Handler: Google Summer of Code Report #1

Here is my first official Google Summer of Code report. As I still had classes, the first week of coding was rather slow. However, after my first phone call with my mentor, Matt Zimmerman, things started to pick up. I spent most of my time working on a dashboard/portal for the Debian Derivatives Exchange (DEX). We decided that the best approach to this would be to store as little information ourselves as possible. Instead, we will try to pull most of our information from other sources, such as Debian s BTS. The main advantage to this is that package maintainers do not need to change any of their workflows, but they still get to benefit from DEX s work. Currently, I have a python script that gets a list of usertags and bugs for debian-derivatives@lists.debian.org from the BTS. This script will end up getting run by cron. It stores the information it gets in static HTML files. Finally, JQuery and Javascript are used to present the final dashboard to the user. I created a mockup showing how this looks. I also have a functioning website that looks and acts like the mockup, but the code is not publicly available yet (see below). DEX uses Alioth to host its git branches and website. I have spent some time trying to familiarize myself with the recent changes that have taken place on Alioth, as well as trying to figure out the best way to store and execute my script to generate the website. So far, it looks like people are still deciding on the best way to handle having websites that are updated from VCS hooks (due to things being split between vasks and wagner). I will continue to look into this, and might try using an alternate host until things settle down. Next, I plan to work on updating the dashboard to provide a way to edit, store, and display certain extra fields of information. This is necessary for certain pieces of information that are not appropriate for adding to bugs and in a few other cases. I will also be taking some time to talk to a few people who were active contributors to the last DEX project. This will allow me to learn more about their experience, find out what changes they feel should be made to make things run smoother, and get feedback on my current Summer of Code work. Finally, although I have been posting updates on my Summer of Code work to my blog [2][3], Matt thinks that having all of this information in one place will be useful. As a result, I will be creating another wiki page about the project that will contain all of the information people need to know. This page will be updated as the summer progresses. I am also hoping to have my code available in a public VCS by the time of my next progress update so that people can check it out and provide feedback. In addition to the dashboard, I will be working on creating a few other tools to assist with the creation and tracking of new DEX projects. I will also be coming up with a way to generate graphs to visually allow us to track our progress on projects versus time as well as show the work done by people at the individual level. This last task is part of a goal to get more people involved in the DEX project. While we may only be a few weeks into the actual Google Summer of Code, I have already learned a lot of new things. I am looking forward to working more with Matt and other members of the community over the course of the summer.

Next.

Previous.