Spam, and 2008

It amazes me how sophisticated spam is getting. I just deleted a comment on the official Mandriva blog. It was a response to a post I wrote about the latest newsletter being released. It seemed to just be a straightforward comment about the newsletter saying how much the guy liked it. Only problem - it mentioned two things, a Q&A section and 'reader interaction' - which don't feature in our newsletter. The URL of the submitter was an obvious spam site. So obviously the spambots (as well as being able to work around our captcha) are able to scan the post they're responding to for certain key terms ('newsletter'), and post a message which makes sense in context. Scary.

Lots more good stuff going on for 2008. Some more things on the tech specs have been checked off - migration to the XDG spec for user directories is complete, as (mostly) is migration to using upstream pci.ids and kernel modalias tables for hardware detection. We have Compiz Fusion 0.52. Also, I have temporarily made the experimental 'avivo' driver the default free driver for all Radeon X1xxx series cards: this will be the case for beta 2. This is in order to hopefully get feedback on which cards work well with this driver and which don't. Unless the feedback is more positive than I'm expecting I'll probably switch back to the 'vesa' driver as the default free driver for these cards in the RCs and the final release, with a few specific exceptions for cards that are verified to work well with the avivo driver, but this will help generate more testing and information. So if you have such a card, please try out Beta 2 when it's released (should be early next week), use the free driver (not the proprietary one), and tell us how well it works.

I'm still catching up with Bugzilla mails from the last week - only another 1200 to go...sigh.

Back from LinuxWorld

I'm back from LinuxWorld. Unfortunately I didn't have time to take any pictures, but the conference was excellent.

It's mostly a business-focused conference, and we were mostly concentrating on promoting the classmate PC, which we will be selling in bulk quantities with Mandriva pre-loaded (the system is that we buy the systems from Intel and sell them on, with Mandriva pre-loaded, at a profit. Well, hopefully. :>). I was there with Walt Pennington and Gaurav Parakh, we were occupying one corner of Intel's rather large area. We had a demo classmate which worked fine except for the little pen reader attachment, and several hundred people came by to take a look over the course of three days. It was my first time seeing the system, and it is a very neat little machine - it's basically a full laptop, although somewhat below the specs of a regular one (900MHz CPU, 256MB RAM) in a small but very ruggedized case that can stand up to quite a bit of abuse (although the Intel guys wouldn't let me drop it for people - boo). The distro is basically Flash with a custom launcher app on top of KDE which displays a set of colour coded boxes on the desktop that let you launch the basic apps (Evolution for email, Kopete for IM, Firefox for browsing, OpenOffice.org for Office stuff and a few media apps). People were generally impressed with the system, particularly the price point (around $200), and we had a lot of people who wanted to know if they could just buy one for themselves :).

We also managed to give away over 150 One CDs and also Linux Pro Magazine's entire stock of spare 2007 Spring cover DVDs, which they came over and dumped on me with about an hour to go on the last day of the conference. I went over to the community section and forced them onto people. Muahaha. I also had my story explaining the Mandrake -> Mandriva name change and Mandriva's subsequent history quite polished by the end of the weekend - it's sad how many people know Mandrake but not Mandriva and assume we just sort of disappeared or went on holiday or something.

I didn't get much chance to just poke around the floor, but I did manage to get a short play with a Neo1973 - the software is pretty alpha ATM, but the hardware is nice, and the screen is just amazing - and had a chat with the guys (and girls) on the Creative Commons stand, as well as donating some cash to the EFF. I also had a quick play with an OLPC, which was interesting - it and the classmate may be aiming at the same sectors but they're very, very different and I can certainly see them co-existing.

We also managed to talk to quite a few press people, which was great, and hopefully they'll follow up on running some articles on the classmate and also on Flash.

Overall it was a very fun experience and also seemed pretty productive. Now I just have to deal with 1000 new Cooker mails, 1141 new bug mails, 188 new Club mails, 61 new personal mails, the entire response to beta 1, and a week's worth of forum posts.

Monday may be quite busy.

Bugzilla upgrade

So after a few weeks of testing, we've gone ahead and migrated Bugzilla over to the new 3.0 implementation done by Vincent. This new Bugzilla is almost unpatched from upstream and is orders of magnitude faster than the previous implementation, so thanks to Vincent for his work. It's a lot nicer to work with now.

LinuxWorld San Francisco

Some cool news (for me anyway :>) - if it all works out, Mandriva's going to be sending me to LinuxWorld in San Francisco this year (conference runs August 6th - 9th at the Moscone Center). First time I've been to a conference and also the first time I've been to SF, so I'm looking forward to it! We'll be part of an Intel booth, apparently, and I expect I'll also be running around pressing One CDs on all and sundry. Hope everything comes together.

Edit, forgot to mention, I'll be travelling to SF on the train - the Amtrak Coast Starlight, which I hear is beautiful. Saves money and carbon and I get to see most of the western seaboard in one trip. Can't be bad.

Hack Week, Patch Day, Fix Everything Hour

So hot on the heels of Novell's 'hack week' comes Sun's 'patch day'...

Important to note I'm speaking entirely personally here. Does anyone else find this kind of thing vaguely bogus? It feels to me like this kind of short-termism is heavily aimed at PR rather than real usefulness and likely to cause more problems than it solves.

Hack week isn't as bad as patch day, okay. You can probably do some useful stuff a week's hacking. And it seems most of the Novell guys used it as time to work on something they would otherwise have done anyway (just more slowly), so it probably didn't cause any harm in terms of stuff being half-finished and then abandoned.

But 'patch day' is just silly. Here's what they say about it:

"The goal of the patch day is to go through all Sun's GNOME (JDS) patches and: - push the less controversial ones upstream - a great opportunity to vent your frustration about all the crack that may have slipped in - start a discussion about the more controversial patches"

sorry, but I really don't think a single day is going to be enough time for you to go through your entire GNOME patch load and actually do anything substantially useful. Patching sensibly and - wherever possible - in sync with other distributions, and pushing your patches upstream as far and as soon as possible, is an ongoing issue of good maintenance practice, not something you can do in a blaze of publicity for 24 hours every year. I think it would have been rather more productive for Sun's maintainers to simply start reviewing their own patches and then quietly making appropriate moves to drop them or get them merged upstream as an ongoing process rather than attempt to rope the entire rest of the GNOME community into fixing their problems for them in a twenty four hour period. If the intention is for 'patch day' to form the start of such a process, fine, but then why have a 'patch day' in the first place? Why is an entirely mundane issue of good maintenance sufficiently important for you to try and get everyone else to drop everything and pitch in right now?

More generally, I guess I'm just not a big fan of the 'let's focus on one thing really intensely for a short period' school of thought which leads to initiatives like these, probably because I've seen it have damaging effects a few too many times. (Whatever) Days are not a substitute for decent project management...

Lots of news

Lots of news around lately. aKademy is winding up; haven't seen much visible posting about the Flash we handed out, which is a shame, but Helio, our man on the spot, tells me that inside the conference there were a lot of people coming up to him to talk about it and ask questions (like "How do I get KDE 4 on this thing?" :>), so that's good. Hopefully people will be writing about it when they get home.

There's been a full and frank exchange of views (;)) regarding the new Bugzilla on the Cooker mailing list. Things have got a bit confused: everyone more or less agrees that upgrading to 3.0 and dropping as many patches as possible is a Good Thing, but the discussion has now got tangled up in the question of the maintainer database (which is currently kinda intrinsically tied into Bugzilla) and the question of whether we should continue to list every package in the distribution as a component in Mandriva. Vincent proposed that we go with a small list of groups for components, instead of packages, which would simplify the list drastically and make a lot of important operations a lot faster (as downloading a list of some 9,000 components every time you file a new bug or do an advanced search is very slow). It would also avoid the need for the maintainer DB, more or less. Some people have objected to this on the grounds that it doesn't really tie into our way of working; we don't have maintainer groups for most packages in the distro.

I initially liked the idea, but I'm reluctantly coming around to thinking it's probably impractical, at least at present. We can't really cover the whole range of packages in Mandriva by splitting them into, say, 20 groups. This doesn't map to how packages are actually maintained at all. So a 'hybrid' proposal was made, which would result in a larger number of smaller groups. I don't like this either, though, because a 100-entry long component list is too long for reporters: you don't want to go to Bugzilla and have to look through a list of 100 components to find the right one for your bug, that's a horrible experience. So right now I feel like we're kinda stuck with the packages-as-components situation, and the consequent slowness and need for a maintainer database. We could only really change if we created groups of packagers first, and proved that we could use that development style. We can't change Bugzilla first and then try and kinda rejig our development process to fit our bug tracker, that's not the right way around at all.

Couple of good pieces of news from the press team: firstly, the French Ministry of Agriculture and Fisheries is going with Corporate Server, secondly, an interesting press release on NEPOMUK, the 'semantic desktop' (think metadata) we're playing a leading role in developing, and which is being integrated into KDE 4. Digg and Digg :)

I got embroiled in a bit of a brouhaha with various PCLinuxOS folks in the Distrowatch Weekly comments regarding the extent to which PCLOS is based on Mandriva - all in good fun and resolved amicably in the end. See also the discussion thread in the PCLOS forums (which gets a lot less heated towards the end, keep reading :))

Tech stuff: I finished my work on EDE and uploaded it to 2007 Spring /backports along with Cooker. If you're looking for an old-school, Win98-looking, fast yet slightly creaky desktop, give it a shot ;)

After the wvstreams maintainer mentioned that he wants to release a new version of wvstreams but needed people to check whether wvdial still worked with it, I updated Cooker's packages to his test versions and Michael Scherer was kind enough to test it out. The result was positive, so wvstreams 4.4 should be coming out in a few weeks if no-one else hits problems.

Otherwise, I've just been slowly continuing my trek through the old packages in Cooker - I'm working on 2007.0 stuff in /main now. I think my goal for 2008 is to make sure everything in /main has a 2008.0 tag, or as close as is practically possible. /contrib might have to wait for 2008.1, I'm afraid. Unless someone wants to help!

Anime checksums on Linux

Quite a small interest group here, but hey!

UPDATE #3: okay, enough! I've now been sent more ways to do CRC32 checksums than you could possibly ever need =)

UPDATE #2: Pascal Terjan points out that the perl-Archive-Zip package contains /usr/bin/crc32, which is a perl script that does exactly what you'd expect. I don't know how I missed that, I thought I searched for binaries named crc32...

UPDATE: thanks a lot to Eskild, who clued me in to a command-line way to do this using perl:

perl -MDigest -e 'my $dig = Digest->new("CRC-32"); $dig->add(<>); print $dig->hexdigest(),"\n"' FILENAME

for ease of use, you can do:

alias crc32sum="perl -MDigest -e 'my \$dig = Digest->new(\"CRC-32\"); \$dig->add(<>); print \$dig->hexdigest(),\"\n\"'"

and then just do crc32sum filename

Anyone who watches fansubbed anime on Linux might be interested in this. As you no doubt have noticed, many groups in recent years have started including checksums in the file names. For some reason, though, they've mostly standardized on using CRC32 checksums, not the MD5 or SHA1 we Linux users are more used to seeing. I poked around looking for a Linux app that could do CRC32 checksums and eventually found one: CalcChecksum. It's a KDE / Qt app, which is a pain, but I couldn't find anything that was simpler (a simple command line tool would be great). I've now packaged it in Cooker and will push it to /contrib/backports for 2007 and 2007 Spring. It works fine and has a pretty simple interface, so now you can checksum your anime :). Packagers for other distros might want to take note, and users of other distros should be able to build it pretty easily: on Mandriva it builds and installs fine with a simple configure, make, make install, all you need are the KDE development libraries.

If anyone knows a simpler way to get a CRC32 checksum for a file on Linux, do enlighten me!

News

Some more cool stuff happening at Mandriva lately: Vincent Danen has been working on Bugzilla. Our current bugzilla is occasionally nicknamed 'warlyzilla', as it's a heavily customised Bugzilla 2.x that was built (or, more accurately, grown...) by Warly over several years. No-one else really understands the patches and it's more or less impossible to maintain as it's so far diverged from upstream. It's also very slow because the database is gigantic.

So we're doing the sensible thing, and dumping it. We're moving to Bugzilla 3.0 and sticking as close to upstream as possible, so it'll be simple to maintain and update. Vincent's also been able to reduce the database size so it's massively faster. You can check out his progress at the test site. Please don't try and use it, though, as no maintainer will actually be following their bugs here, and the database will be dropped and re-merged with the old one when the work is complete, so any change made on the test site will be lost. It's just for looking!

Personally, I've been working on the communications related to our presence at aKademy and GUADEC. I also happened to pick up a bug report (because it was assigned to Lenny) which complained that our build of EDE was out of date. EDE is a lightweight desktop environment that's kinda reminiscent of Windows 9x, built on top of EFLTK, a fork of FLTK maintained by the same people as EDE. It's rather hacky (the default 'start menu' structure is hard coded into the initial build and may well reference packages that aren't installed at all, for instance), but pretty fast.

The packages were in a bit of a state, so I took some time to clean them up nicely. So we're now the only major distro with a working, up-to-date build of both EFLTK and EDE. (Actually almost no other distros have it packaged at all). I even customized the EDE build a bit to link to apps that are more likely to exist, have entries for RPMdrake and the Control Center on the start menu, use a Mandriva background by default and stuff. I also contributed a couple of patches upstream to fix various problems with the build. It's nice to do something productive...

Mandriva sponsoring aKademy 2007, handing out free Flashes

Cool news: we're sponsoring aKademy 2007 (the KDE developers' / users' conference) at the Silver level, and as if that wasn't enough, we're also handing out free Mandriva Flashes to the developers attending the conference. Helio will be giving a presentation, too. I know a lot of you guys have mentioned in the past that we should try to have a more obvious presence at major expos and similar events, so I hope this is a step in the right direction!

Press release is up here, and you can digg it (please do, let's hit the front page!) here.

spaghetti

I am, in a weird way, quite proud of this hideous abomination:

pushd doc

italian is already unicode, leave it out.

for i in es hu pl ru sr; do pushd $i; \

this is ugly, but assume same encoding as .po file for each language.

iconv --from-code=grep charset= ../../po/$i.po | cut -c36- | head -c-4 | tr "[:lower:]" "[:upper:]" --to-code=UTF-8 mc.1.in > mc.1.in.new; \ mv -f mc.1.in.new mc.1.in; popd; done popd

pushd lib

rename zh to zh_TW, which is what it really is (I think)

mv mc.hint.zh mc.hint.zh_TW

hardcode the list as we need to leave italian out and it just gets ugly doing it 'smartly'...

for i in cs es hu nl pl ru sr uk zh_TW; \

this is ugly, but assume same encoding as .po file for each language.

do iconv --from-code=grep charset= ../po/$i.po | cut -c36- | head -c-4 | tr "[:lower:]" "[:upper:]" --to-code=UTF-8 mc.hint.$i > mc.hint.$i.new; \ mv -f mc.hint.$i.new mc.hint.$i; done popd

pushd po

remove the original .mo files

rm -f *.gmo

find stuff that's not Unicode already

for i in file *.po | grep -v Unicode | cut -d: -f1; \

convert it: the grep, cut, head, tr grabs the source encoding from the .po file header, there's no other way to find it

do iconv --from-code=grep charset= $i | cut -c36- | head -c-4 | tr "[:lower:]" "[:upper:]" --to-code=UTF-8 $i > $i.new; \

change the header to say UTF-8

mv -f $i.new $i; perl -pi -e 's,charset=.*$,charset=UTF-8\n",g' $i; done

regenerate the .mo files

for i in ls *.po | cut -d. -f1; do /usr/bin/msgfmt -c --statistics -o $i.gmo $i.po; done popd

that's what you need to do to convert all of mc's documentation, help files etc to Unicode when packaging it. Elegance, I've heard of it...