Free desktop application distribution and installation

Matthias Klumpp matthias at tenstral.net
Tue Dec 16 13:06:25 PST 2014


Hi!
And hello Alexander ;-)

2014-12-10 2:22 GMT+01:00 Thomas Kluyver <thomas at kluyver.me.uk>:
> [...]
>
> Can you expand on why this is so complex? I'm thinking of something like
> this:
>
> depends[apt]=python3-pyqt5
> depends[rpm]=python3-qt5

How do you account for package renames? How do you ensure that if an
app needs a specific version oe a minimal version of a package, that
that package is present? Fedora and OpenSUSE, Debian and Ubuntu each
sometimes have different package names, so you would force the app
author to write a huge metadata file, and *know* which package
contains what - distributions usually split stuff into sub-packages to
increase flexibility, so on some distributions the feature your app
needs might be split into multiple packages.

ABI compatibility is also an issue, although on that I think we are
getting very good at solving it. Still, there are sometimes cases
where different compiler settings break the ABI, or - much more likely
- someone unintentionally breaks it. This sometimes leads to
hard-to-debug issues.

> Is this something that's complex primarily for compiled languages because of
> ABI changes? I'm used to dynamic languages, so I don't have a good feel for
> ABI incompatibility, though I know what it means. Is the complexity to do
> with working out what distro you're actually in? Or something else?

It's the huge testmatrix you have, and also the excessive interaction
with the native PM you need. You can also e.g. not lock a package in
the native package manager, since that would break upgrades, so you
application might break at any time the user decides to remove an
installed package, or the distributor or another package forces the
removal of something your application depends on.

Cheers,
    Matthias


-- 
Debian Developer | Freedesktop-Developer
I welcome VSRE emails. See http://vsre.info/


More information about the xdg mailing list