Matthew Garrett
The DCC Alliance (not to be confused with the DCC Alliance, which is entirely unaffiliated with the former. But it's a recursive acronym, so there's NO TRADEMARK ISSUE) aim to produce a distribution which is entirely binary compatible with Sarge. A laudable aim. Sadly, there's a bit of a problem.
OpenOffice.org 2.0 was released this week. In common with previous versions, it's a horrid mixture of C++, Java and assembler. It's the Java that's the problem, of course. To compile it, you either need Sun's ridiculously non-free Java, or you can use gcj. That's gcj 4.0, of course. Which can be installed in parallel with gcc 3.3, so that's not a problem. Except. gcj 4.0 wants the libgcc from gcc 4.0 (unsurprisingly), which has the same SONAME as the libgcc from 3.3 (correct behaviour - code built against libgcc from 3.3 will run fine with libgcc from 4.0). However, libgcc from 4.0 adds some extra symbols - as a result, code built against libgcc from 4.0 will not necessarily run on systems with libgcc from 3.3.
Or, in other words, shipping libgcc from gcc 4.0 will result in a system that will build binaries that can't be installed on machines running plain Sarge.
So, there's a bit of a dilemma. Either
The DCC Alliance want to build a distribution base that's binary compatible with Sarge. It's an entirely laudable aim, and (regardless of any impression I may have given in the past) I hope it's successful. But. That level of binary compatibility inherently compromises your ability to use new software. To begin with, you can work around that - backport code to older versions of libraries, include local copies, do static linking, that sort of thing. Over time, it gets harder.
Optimistically, Etch will be released in December 2006. If we assume that DCC releases occur at roughly the same rate as Debian ones, we're looking at 18 months until we get a DCC based on etch.
In 18 months time, is it really going to be possible to build a useful modern desktop system that's binary compatible with Sarge without it being an utterly unmaintainable pile of ugly hacks? Even after 5, we're seeing pain.
There's a reason that derivative distributions tend to diverge from the original project. It's because it's really quite remarkably difficult to maintain sanity, technical correctness and not change any of the underlying structure. I'd like to see DCCA succeed in doing so, and I do admire them for not just giving up in exasperation already.
OpenOffice.org 2.0 was released this week. In common with previous versions, it's a horrid mixture of C++, Java and assembler. It's the Java that's the problem, of course. To compile it, you either need Sun's ridiculously non-free Java, or you can use gcj. That's gcj 4.0, of course. Which can be installed in parallel with gcc 3.3, so that's not a problem. Except. gcj 4.0 wants the libgcc from gcc 4.0 (unsurprisingly), which has the same SONAME as the libgcc from 3.3 (correct behaviour - code built against libgcc from 3.3 will run fine with libgcc from 4.0). However, libgcc from 4.0 adds some extra symbols - as a result, code built against libgcc from 4.0 will not necessarily run on systems with libgcc from 3.3.
Or, in other words, shipping libgcc from gcc 4.0 will result in a system that will build binaries that can't be installed on machines running plain Sarge.
So, there's a bit of a dilemma. Either
- Fail to support OpenOffice.org 2.0
- Only support OpenOffice.org 2.0 if non-free Java is used
- Break binary compatibility with Sarge
- Do something really quite nasty
The DCC Alliance want to build a distribution base that's binary compatible with Sarge. It's an entirely laudable aim, and (regardless of any impression I may have given in the past) I hope it's successful. But. That level of binary compatibility inherently compromises your ability to use new software. To begin with, you can work around that - backport code to older versions of libraries, include local copies, do static linking, that sort of thing. Over time, it gets harder.
Optimistically, Etch will be released in December 2006. If we assume that DCC releases occur at roughly the same rate as Debian ones, we're looking at 18 months until we get a DCC based on etch.
In 18 months time, is it really going to be possible to build a useful modern desktop system that's binary compatible with Sarge without it being an utterly unmaintainable pile of ugly hacks? Even after 5, we're seeing pain.
There's a reason that derivative distributions tend to diverge from the original project. It's because it's really quite remarkably difficult to maintain sanity, technical correctness and not change any of the underlying structure. I'd like to see DCCA succeed in doing so, and I do admire them for not just giving up in exasperation already.