Trying to contribute
One of the nice things about Open Source programs is that you can squash the bugs that bite you. Of course, not everyone is able to do that, but still. And though there is no obligation to do so, it is nice if you share your patches with the rest of the world.
Sometimes, though, the sharing part just does not work out. I recently encountered two such cases, where I tried to do the right thing but my patches will probably never be used.
I used openconnect version 3.20. The most recent version is something like 7.04, but 3.20 is in Debian Stable and there is also not a more recent version in wheezy-backports.
When playing around with it, I found that it is possible to put options either on the command line or in a configuration file. Well, that seemed a good idea - except that when the configuration file was used, the most weird errors suddenly came up. After some investigating, it turned out that some string corruption was causing this. Fixing it was quite easy (just add a strdup at the right place). So I wrote a patch and sent in Debian bug 776484.
I got a reaction within a few hours. The bug got closed and the patch discarded. The maintainer rightfully decided that, as this was fixed in newer version and as this was hardly a critical error, it would never be fixed.
The second case is a MySQL interoperability error between versions 5.5 and 5.6. If you create a dump file with MySQL 5.6 then MySQL 5.5 can sometimes not parse it. This happens if you have tables with STATS_PERSISTENT set to a specific value.
There was already a bug opened for this (MySQL bug 70778) and writing a patch was quite easy (MySQL can put such things between magic comments which indicate that the comment contents should only be processed starting with a specific MySQL version).
After I submitted the patch, I became aware of the Oracle Contributor Agreement. Unless I sign that Oracle will not use any of my contributions. Too bad.
So what did this teach me? First, always check the current project repository to see whether a bug is already fixed. Second, always check whether a project is open enough to contribute freely.