Since I can’t apologize for the Fedora Board, I’ll apologize and explain for myself. Despite feeling that we are doing the best we can for Fedora in this situation, I feel bad that we abused our relationship with Fluendo.
We once again are in the midst of making the same mistake we made for Fedora 8, that of reviewing and trying to fix codeina very late in the release process. Greg is right that Fluendo is not being treated well in all this. AFAIK, the Fedora Board never wrote a detailed functional spec on what we expected codeina to do beyond provide a better dialog box than, “The codec you want is not installed, whatever a codec is, sorry.” Without that spec, Fluendo went and did what they thought was the right thing, which just doesn’t happen to fit in with Fedora’s mission of advancing free and open source software.
The original work of CodecBuddy done by the Fedora Board was before I was appointed, and although I was interested I didn’t pay much attention in advance to how the process went. This is a problem in free software — sometimes we don’t show interest in a project until it does something we don’t like, when it’s too late to easily fix it.
That is exactly what happened. Late in the Fedora 8 testing cycle I got a peek at how codeina behaved, and I was thoroughly shocked. It had very little explanatory text, just a link to CodecBuddy (iirc), and lots of up-front web shopping links directly from the Fedora desktop. Where was the user education? Why was it not there in favor of a list of for-sale closed-source, patent-encumbered codec plugins?
At that point in the Fedora 8 release cycle it felt too late to affect the underlying code and flow. It might even have been after feature freeze, meaning our only choice was to drop the plugin entirely. Of course, we knew that would be bad treatment of Fluendo, but to be honest, since the Board’s job is watching over Fedora, we have to care about upstream but not over the interests of Fedora. We chose a middle-ground to see how it would progress, which happened to leave Fluendo’s shopping path intact.
So Bill Nottingham offered to get the up-front education fixed so that was the first thing a user saw before being offered a shopping experience. We left the situation as-is from there, knowing it was sub-optimal, but being new software, we didn’t know how it would all turn out. Sometimes you have to try things that even seem like poor ideas. It sure worked in this case, where everyone has been nicely vocal about how they feel about the solution.
In the meantime, over the Fedora 8 life, the Board came under fire for apparent double-standards, that is, allowing codeina to fetch non-free bits but resisting autodownloader doing the same thing for open source game engines. We began to discuss what was the right thing to do, and nothing seemed like a perfect situation.
So here we are again … too late in the release cycle to get new coding done on codeina but with the same situation. Same mistake made in not engaging with Fluendo earlier to get the situation resolved properly. What could we have done?
- Encouraged Fluendo to come up with a more modular approach, so we could remove direct links to fetching non-free software and make it possible for someone to, for example, grab another plugin that would enable Fluendo’s webshop.
- Given them more time than “nearly zero” to come up with any other solution, or the same solution but executed better.
- Done all this with enough time to have a longer discussion cycle.
I’m unclear if it is too late to do much else other than what we decided to do with patching out the links to the non-free software. Users can still go to the web shop, and that could be linked from codeina better.
Even though it is rather late to try fixing this situation, that doesn’t mean a good enough solution can’t be worked up. There are updates to packages, maybe even a zero-day fix, if we can’t get better changes to ship with Fedora 9. Rather than asking the Board to “reverse its decision”, please join us on fedora-advisory-board to figure out what is the right thing to do.