It seems to me nobody has commented on one huge difference between
Windows and Linux. Windows already caries a huge amount of libraries
by default in the OS. That may not be apparent, but all the thousands
of Win32 APIs, are in essence standard libraries available everywhere
(more or less). This includes GUI controls, etc.
There is no equivalent in Linux. The only somewhat standard library
is libc. A "bundled" Linux app would have to bundle everything under
the sun - X11 libraries, GUI toolkits, etc. This is crazy and in no
way comparable to Windows.
Posted Mar 19, 2010 16:12 UTC (Fri) by tzafrir (subscriber, #11501)
[Link]
You can consider whatever is in the LSB as "standard library".
Alternatively, consider any library that comes with the package management system as "standard library" :-)
Now, check what libraries Firefox bundles in its installation for Windows (those are not system libraries)
Applications and bundled libraries
Posted Mar 19, 2010 17:28 UTC (Fri) by mikov (subscriber, #33179)
[Link]
Unfortunately, the LSB libraries and the ones coming from package
management are not really standard, or we wouldn't be having this
discussion at all.
The GUI libraries are the biggest problems I still experience
horror trying to get vmware-server-console working on a new system.
But there are plenty of other things which come bundled with
Windows, like secure sockets (Firefox doesn't use them, but Chrome
does AFAIK) and so on.
The bottom line is that bundling for Linux will create larger and
clumsier applications than their Windows equivalents. I am not
advocating against it - it is a solution, but I think it is a
really really ugly solution. In this case it is better to work on a
proper solution than to settle for a horrible one.
What would be a "proper" solution? For example, a global repository
with libraries which can all exist side by side. For example, if
Firefox wants to bundle a library "libfoo", it will be called
"libfoo-firefox-e0b146e7-26e5-4c2c-90e0-bec9bac7218e.so.1.2" .
Other packages can use it, and decrease the duplication. There will
have to be extensive metadata, etc.
It is complex, but it is worthwhile and doable.
Applications and bundled libraries
Posted Mar 19, 2010 18:02 UTC (Fri) by dlang (✭ supporter ✭, #313)
[Link]
if you look at the LSB, I believe that you will find that the GUI libraries are not part of it's specs.
Applications and bundled libraries
Posted Mar 19, 2010 18:12 UTC (Fri) by mikov (subscriber, #33179)
[Link]
Isn't that exactly what I am saying? The LSB is not adequate to solve
the problems to which bundling is perceived as a solution. Neither is
distribution package management.
Applications and bundled libraries
Posted Mar 25, 2010 21:38 UTC (Thu) by rqosa (subscriber, #24136)
[Link]
> The LSB is not adequate to solve
the problems to which bundling is perceived as a solution.
Why not? The whole point of the LSB is to have "libraries by default in the OS", and to have an
unchanging ABI for those included libraries, just like they are with
Windows
or Mac OS X. (That is, for a single version of Windows or Mac OS
X, at least, since the API/ABI has changed between releases.)
An application compiled for the LSB can depend on those
libraries without bundling them with the application, and any other
libraries must be bundled with the application (which can be done by
linking
it statically, or can be done by putting the library in a directory under
/opt and then setting RUNPATH or RPATH to that directory). This is
essentially what developers of apps for Windows and Mac OS X
must do already.
In short, your proposed solution for Linux to include "libraries
by default in the OS" exists, and it's called the LSB.
Applications and bundled libraries
Posted Mar 19, 2010 18:48 UTC (Fri) by boudewijn (subscriber, #14185)
[Link]