Category Archives: Open Source

Open Source, Free Software, and similar

Distros Don’t Drive Development

Lots of press and people focus on Linux distributions when they check out what happens in Linux land. This and that distro come in new releases and they offer this and that brand new feature. This is also true of the many linux podcasts. They give credit to distros for new things that pop up.

Mostly everyone of us involved in open source projects have a different view on all that:

Distros package the developments that are done elsewhere by other people. Sure they contribute with glue code and they do put pieces together in useful ways but really, most of the real grunt work – the actual sweating, is done by ordinary open source teams working independently of distros (but sure, sometimes people related to or even employed by distros contribute in such projects).

This is also part of the explanation to why most distros are at about the same level of development, why no distro outcompetes the others at one go. When X11 brings a fancy new feature, all distros have it. When compiz can rotate the screen in yet another way, all distros ship that…

Of course the other part of the explanation is that most distros release their own work as open source, free for the other distros to absorb.

In fact, many times the distros actually hinder the work of the open source projects since they add a filter to bug reports, they patch in their own dirty solutions in their distro rather than to work with the projects to do the fix the best possible way and similar.

Distros are exactly what they’re called: distributions – they distribute bundled collections of software, the vast majority of that software is not made by the distro.

wget going libcurl?

Micah Cowan is the current maintainer of GNU Wget, and he recently posted a long mail to the wgetA gnu head! mailing list titled “Thoughts on Wget 1.x, 2.0“.

Two fun quotes for the curious who don’t feel like reading the whole post:

1. On the subject of making wget deal with multiple simultanous connections/requests: The obvious solution to that is to use c-ares, which does exactly that: handle DNS queries asynchronously. Actually, I didn’t know this until just now, but c-ares was split off from ares to meet the needs of the curl developers.

2. Following the first reasoning, they can indeed get away with even less work if they base that work on an existing solution: While I’ve talked about not reinventing the wheel, using existing packages to save us the trouble of having to maintain portable async code, higher-level buffered-IO and network comm code, etc, I’ve been neglecting one more package choice. There is, after all, already a Free Software package that goes beyond handling asynchronous network operations, to specifically handle asynchronous _web_ operations; I’m speaking, of course, of libcurl. There would seem to be some obvious motivation for simply using libcurl to handle all asynchronous web traffic, and wrapping it with the logic we need to handle retries, recursion, timestamping, traversing, selecting which files to download, etc. Besides async web code, of course, we’d also automatically get support for a number of various protocols (SFTP, for example) that have been requested in Wget.libcurl

I am of course happy to see that the consideration exists – even if this won’t go further than just expressed in a mail. I did ventilate this idea to the wget people back in 2001, and even though we’re now more than six years down the road since then the situation is now even more clear: libcurl is a much more capable and proven transport layer solution and it supports much more protocols than wget is/does.

Me biased? naaah… 🙂

curl work towards release #102

libcurlThis is a bug fix week in curl land, trying to get everything sorted and fine to be able to release a really fine 7.17.1 release within a week or so. We got some nasty memory-related problems with changed protocols re-using the same easy handle, but it was good that they crept up and I think we’re doing good changes now that stabilize curl.

Release date now targeted perhaps around October 28-30.

OpenMoko yes, Greenphone no

Trolltech’s GreenphoneObviously Trolltech announced their killing of the Greenphone, a Linux and qtopia powered GSM phone. I was seriously trying to get one when they launched it, but during the time they had troubles providing me one I rethought my position about it and decided I didn’t really have time nor energy to work on it and thus I never ended up getting one…

Openmoko So for the eager hackers wanting an open phone to hack on, I guess the Openmoko Neo1973 is now the evident “winner” of this moment.

this week in curl land

It has been another busy week, and this time people brought up a range of stupid and annoying bugs:

libcurl…but also included Patrick Monnerat’s cool internal re-arrange to use handler structs for the various protocols.

Upcoming dates to check for:

  • October 14 – Feature freeze for the 7.17.1 release (and I take off for China)
  • October 21 – I come back home from China (to catch up with a million emails)
  • Octobert 27-28 (something) – Probable release date for the 7.17.1 release, assuming that all serious bugs have been fixed by then.

As usual, post curl-related stuff on the mailing lists and not to me personally!

gcc 4.2.x woes

In Rockbox we’ve seen the gcc 4.2.x series introduce warnings on C code that really is perfectly fine, and also compiles warning-less on all other versions of gcc. (We use the 4.2.x series in Rockbox only for the simulator, built for running on host.)

In the linux-mips project, they’ve found gcc 4.2.2 to not even be able to build their kernel…It has been suggested that perhaps the best thing is to just skip to 4.3. Bugzilla entry.

Rockbox USB

USB type A plugUSB in Rockbox land was originally a matter of supporting the USB bridge chips in the first targets we supported (the Archos ones, the irivers and the iAudios).

Since the USB stacks moved into pure software in the used soc chips, Rockbox has (unfortunately) relied on the original firmwares (the so called OF) to provide USB support so that host computers can access the players.

One of the projects in the Google Summer of Code 2007 for Rockbox was to introduce a USB stack and offer native USB support for Rockbox, at least on the PortalPlayer-based targets. These targets were selected because the PortalPlayer chips have been found to have a USB set that is next to identical to the one used in the Freescale i.MX31 and that is fully documented online. Christian Gmeiner took this project to state where it partially works, but not enough to be actually useful to any Rockbox user. Christian’s code was largely based on USB code from the Linux kernel.

Now, long time Rockbox hacker Björn Stenberg enters the stage. Being one of the (original) core guys, he has a firm believe in KISS and as such he has started over on a brand new USB stack implementation that is meant to replace Christian’s and to be smaller, less complicated and quite possibly end up actually working! Björn once wrote the ISD200 support in the USB stack for Linux, so he has been in this neighborhood before…