My monthly 'oh yeah, the platform' mail

Daniel Stone daniel at fooishbar.org
Fri Jan 7 10:15:15 EET 2005


On Tue, Dec 21, 2004 at 10:24:22PM -0500, Havoc Pennington wrote:
> I concur that getting a bundle of the specs to "1.0" state as a unit
> would be useful, but I don't see the bright line between a specs release
> and a code release. I'll get back to this by the end of the long mail
> here.

Thanks for the reply.

> On technology pimping
> ===
> 
> The "stack" concept is useful but NOT for technology pimping.
> A goal of the stack should be to show which technology is *well-cooked*
> - and part of the definition of "well-cooked" is "widely de facto shown
> to be useful." So it doesn't make sense to use the stack to "push" or
> promote technologies, since "already accepted" should be a gating
> principle.

Agreed -- I suppose this was again badly expressed.  As said before, I'm
not so keen on ramming things like D-BUS and Cairo down people's
throats, hence why they were never proposed.

> Another reason not to go the "push technologies" route is that it can
> come back and bite you in the ass. If I can be controversial for a
> moment, look at XPrint: it's generally agreed by mainstream toolkit
> authors that XPrint is the 100% wrong direction, yet it's being pushed
> into the stack anyhow.

Agreed.

> Many of the things that have been discussed for the stack are in fact
> not ready. Cairo is a good example: most of the desktop world agrees
> this is the right path and that it's going well, but it's *not done*.
> The API is not ready to lock down. Same for D-BUS.

Yep.

> Platform stack is not all-inclusive
> ===
> 
> [...]
> 
> This implies that we have a basic goal with freedesktop.org platform of
> targeting the "mainstream" open source desktop, rather than some of the
> corner cases we could think about. freedesktop.org *the hosting site*
> can and does host alternate platforms or projects that don't have this
> "mainstream" orientation, but I think most of us talking about this
> platform release are thinking about the primary toolkits and
> environments.

Agreed.

> [...]
> 
> So guideline 1 for a platform stack: it should be defined to be
> "mainstream desktop" and not these other cases. There should be a target
> audience.
> 
> Guideline 2: it should require that the specs or libraries have de facto
> success among the target audience (whether toolkit maintainers or app
> developers).

Right.

> Purpose of the stack
> ===
> 
> Some thoughts on why we'd collect widely-accepted technologies into a
> release:
>  - snapshot particular branches/versions of these technologies and  
>    give them an overall version number; this avoids the issue 
>    where environment or app A requires foo 1.0 and bar 1.2 and 
>    environment or app B requires foo 2.0 and bar 1.0, and so 
>    you can't make things work. Of course if foo and bar 
>    support parallel install this doesn't come up... ;-)
>    http://ometer.com/parallel.html
>  - the other reason to snapshot a set of branches/versions is for 
>    testing purposes; we can have everyone testing the same 
>    *combination* of platform elements
>  - naming the whole big bundle lets something like GNOME say 
>    "we require freedesktop.org platform 1.0" rather than 
>    "we require the following long-ass list of stuff: ..."
>  - OS vendors can also refer to including a particular platform release
>  - have a "release train" that people want to catch, which gives some 
>    deadlines and incentive to the development process, and a freeze-and-
>    stabilize phase as well. This should encourage more 1.0 releases.
> 
> These same basic goals apply to a GNOME or X.org or KDE release.

All of these criteria are good -- the other thing there is that it
encourages more of a static baseline between desktops, so we don't end
up with, say, four multimedia frameworks.

> Purpose of the LSB
> ===
> 
> While I see freedesktop.org solving communication, coordination, and
> software development problems - it's largely an intra-community effort -
> the LSB is solving the ISV problem.
> 
> So what the LSB is doing is documenting, testing, and enforcing the
> interfaces that ISVs are supposed to use. They collect not only desktop
> technologies but also other elements of the Linux platform.
> 
> This LSB process *should* be more conservative even than
> freedesktop.org. Though they have been moving somewhat too slow on the
> desktop front, that's largely due to lack of volunteers and assistance
> from what I've seen. Because the LSB goes further than just releasing
> the software, and creates validation tests for ABIs (to be sure they
> didn't change) and for ISV apps (to be sure they don't have extraneous
> dependencies) it simply takes some work. But this stuff is useful.
> 
> Here's another twist, though, for the ISV question: freedesktop.org is
> largely creating a "backend for toolkits," and only a few of the specs
> are really intended to be used directly by applications. So what we'd
> expect the LSB to bless is a bit higher-level - GTK+ and Qt, rather than
> XSETTINGS or fontconfig.
> 
> Another way to look at LSB: they are not releasing software. They're
> releasing a contract-enforcement layer between the ISV and the software.
> This is a fundamentally different thing from a
> freedesktop/X.org/GNOME/KDE release.

It's an interesting distinction that I honestly hadn't thought about --
but as long as the LSB aren't abdicating their duties, I'm happy to walk
this line.

> ISV Credibility
> ===
> 
> A danger for the open source desktop is that ISVs look at the huge
> collection of libraries available in your average distribution, use a
> few of the ones that "everyone" knows are crap, and are turned off when
> they get shafted by the decision. There's really no good guidance on
> which of the zillion things in /usr/lib are considered OK. And for all
> of them you can find some nitwit on the Internet who will say it's the
> best thing ever.
> 
> This is why having a line where we say "these are the libs to use" is
> useful. But that line has to be oriented toward *keeping ISVs from
> getting shafted* not toward *getting ISVs to use half-baked gee-whiz
> stuff*
> 
> If we consider this, plus the goal of using a platform release for
> stabilization and integration, I hope it's clear that trying to push
> technologies before their time is highly counterproductive.

Yes, agreed.  But wouldn't the LSB fill this role, if they're playing
the ISV liason?

> X.org
> ===
> 
> An additional question people have brought up is the relationship
> between freedesktop.org and X.org. I think potentially X.org could
> define the entire platform and eliminate the need for freedesktop.org. 

I don't think they can, to be honest.

> This hasn't happened because there was resistance to defining the scope
> of X.org to be "entire open source desktop" as opposed to "X Window
> System." Because the X.org scope doesn't cover freedesktop.org goals we
> have a need to do a freedesktop.org platform that is complementary to
> the X11 releases.

I'm personally happy with this resistance ...

> My expectation is that the freedesktop.org platform would include by
> reference the X11 release, or at least those parts that are relevant to
> the modern desktop. For example, I don't think twm needs to be defined
> as part of the platform that GTK+/Qt/GNOME/KDE rely upon. But
> freedesktop.org would say "the modern desktop requires the core X Window
> System" and then define additional components such as D-BUS that X.org
> feels fall outside the X.org scope.

I would take 'the core X Window System' to be the standard X client
libraries (libX11, libXext, libXau), plus the extensions (libXrender,
libXrandr, libXfixes, libXdamage, libXcomposite, et al), plus libXft,
libXt, and anything else I've forgotten.  That sort of thing.

> Perhaps more controversially, I think the same cautions I've suggested
> for freedesktop.org platform would apply to X.org releases. So if X.org
> is blessing de jure technologies that have flopped de facto, then X.org
> has a problem. So far I think X.org is doing mostly fine in this
> respect. And since freedesktop.org hasn't done a platform release it's
> unknown whether freedesktop.org will do fine.

I think this will become less of a problem as X.Org migrates to a
modular structure.  Instead of dragging Xprint through and dealing with
it as a part of a single, massive, release process, modules no-one cares
about get to rot away in obscurity; people can essentially vote with
their feet.

> Anyhow, the point I'm trying to make is that to the extent X.org and
> freedesktop.org exist as usefully distinct entities, it's a matter of
> technology scope (X11 vs. all of desktop). I don't think there's a
> fundamental difference in the kinds of release the two entities are
> making, just a difference in what categories of stuff are in the
> releases.

Right.  I still think this is a useful distinction, however.  X is a
rather large scope, and I think many considerations we have with X are
totally different; for example, I don't really see the value in a stack
that stretches down from D-BUS up to the Radeon DRI driver.  While I
think the modularity within X is much-needed, so we can finally shed
some things that no-one cares about (for instance, we're still dragging
xedit along -- why?), I'm not entirely sure that the scopes of the two
platforms should merge.

> There's no real difference between X.org, freedesktop.org, and GNOME or
> KDE either.

No, but they're still separate ...

> >From my point of view freedesktop.org just covers the block of
> technology in between X.org and GNOME/KDE. If X.org wants to expand up
> to meet GNOME/KDE and leave nothing in the middle then that would be
> fine.

I personally prefer the current situation as it is.

> In summary
> ===
> 
> Getting back to my first paragraph: I don't really see a reason for a
> "specs only" release, I think there are some things such as fontconfig
> that are ready to be in a platform release that also includes code.

Fair point.

> The relevant line to draw is between things that are fully baked and
> things that are works in progress. There's *nothing* wrong with works in
> progress, in fact as an open source community we're usually too afraid
> to try something out and consider dropping it if it fails. However,
> there *is* something wrong with considering something ready to bless
> before it has some de facto success.

Agreed.

> So I like the idea of a platform release. But the idea that it's a way
> to "push" technologies is simply broken. It's a way to communicate which
> technologies have been successfully pushed *already*.

Agreed.

> Hopefully all this makes sense, if I had more time I'd edit and cut the
> mail in half, but better verbose than silent ;-)

Something that would make even more sense: if you were doing the
release, what would you put in the platform?



More information about the platform mailing list