Re: [Evolution] downloads page




I'm not convinced that a mailing list for helping users with Evolution
is really the place to be teaching someone about packaging software ...

But nevertheless...



Several times i have seen people saying that packages in Gnu&Linux
need a separate new compile for each individual distro.  However all
the links i gave to other projects show only 2-3 downloads and that
seems to be enough to cover almost all versions of almost all
distros.  

A program inevitably depends for much of its functionality on libraries
of common routines - for instance Evo depends a lot on GTK libraries and
other Gnome 3 things.  When compiling a program you can either
statically link the executable, in which case all the library routines
it needs are part of the executable, or you can dynamically link it, in
which case the routines are pulled in at execution time.  Statically
linked programs don't rely on anything else to be installed, but they
end up being absolutely massive and take up lots of memory; dynamically
linked programs are smaller, but require the presence of libraries -
and, here's the critical thing, the version of the installed library
must be compatible with the version the executable was linked against
when it was compiled.

Statically linking user applications is usually not a good idea because
of the size of the executables, so that is not considered to be an
option for something like Evo.

For dynamically linked applications there are two real options.  The
first, as used by distro packagers, is to compile the application
against the libraries used in the particular version of the distro and
effectively just distribute the executable (there are other things in
the package, such as configuration things as well). The second method is
to package up all the libraries you used to create the executable into
one big download that contains the executable + libraries +
configuration and then make sure they are installed in a separate
directory structure away from the distro libraries - this is what things
like libreoffice do for their downloads.  You can see the effect in the
package sizes - the libreoffice RPMs for Fedora amount to about 10Mb,
the RPM download from the libreoffice website is 130Mb.

So, in order to distribute something like Evo as a standalone package,
you will need to package up all the Gnome 3 libraries, GDK, GTK, D-bus
service libraries, cryptographic libraries, keystore things, Samba
libraries, and so on.  You would have to totally replicate a Gnome 3
install and more.  It's more than many distros provide!  Even then,
there is no guarantee it will work in every desktop environment.

Then you will need to install the whole package again if anything
critical changed in any of the libraries.

In the end you would be much better of installing a distro that provides
all these things as part of it.  Which is what everyone has been saying
all along.



I hadn't realised that Evo is slightly different and more tightly
integrated with just 1 version of just 1 DE.  So although it's not
quite possible with Evo it does seem to be fine with the others.  

Hallelujah, the penny has dropped.

And it's not just Evo, virtually all Gnome packages are like that. 


Anyway, to mitigate against that the DE is an excellent one and pretty
much my fav.  Almost any distro can choose to have that DE even if
users are actually using a different one that is kinda in parallel.
Users could be seeing and using KDE, or LXDE or anything else but just
have Gnome 3 as one of the options that they barely notice as they are
logging in. 

Yes.  Evo works well under KDE, but you need the core Gnome 3 libraries
installed as well.


So for a Gnu&Linux app to hit the vast majority of users it just needs
to be compiled about 3 times. 

What?  Why have you got this fixation about compiling a package 3 times.
If you are talking about the downloads available on some websites, then
I suspect they only compile it once - what you see is different
packaging for different package managers, it's the same underlying
executable.


From what i have heard ... 
For Windows it's a separate one for Xp, then for Win7, Win8 needs
another (skip Vista right?).  So that's about 3-4 too except that
rewrites will probably be crucial.  

I am particularly unqualified to talk about Windows or Mac development,
but I think you may need to find a different source of information to
listen to.

P.




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]