Hybrid installation?
This is going to be my first post here at Phoronix.
I have been a linux user for almost a year, and I've had an idea that I've been thinking about consequently:
Let's say the program to be distributed is compiled with all library dynamically linked into it.
Then, an installer file is created which contains all data, the binary(ies) and, every single linked library there is,
maybe even glibc. This would possibly create a huge installer, but this shouldn't be a problem nowadays.
At install time, the installer copies all data and the binary, then creates a "lib" folder and scans the system:
For every required library that is found, it simply puts a symlink in the lib folder, for every library it cannot find
it copies the whole library from itself into this lib folder. A launcher script will make sure LD_LIBRARY_PATH is
adjusted accordingly.
Maybe, at some point, the system will be upgraded, and old libraries might get replaced with newer, ABI-incompatible ones.
Then the program would obviously stop working. That's why the installer would contain a "fix dependencies", or just plain
"fix problems" button by which then the system would be rescaned, and for every library that disappeared from it,
the installer would replace the symlink in the lib folder with the actual require library, just as at install-time.
This would provide continuous compatibility with changing systems, while still keeping the size of the installation
as low as possible. And since most programs would be supplied by CD/DVD, I don't think the size of all
the libraries supplied as well would be a hindrance.
or maybe I'm just a foolish noob..
Announcement
Collapse
No announcement yet.
Ryan Gordon Criticizes Open-Source Drivers Again
Collapse
X
-
Originally posted by deanjo View PostDo YOU personally audit ALL the code on your system? If not then you are living under a false sense of security. There have been cases where even when the source was open it had nefarious code that has undiscovered for years.
Open software written to scratch an itch - why would it try to snoop your info? A binary on the other hand, if they can earn $$ by selling your stuff, and think they won't get caught, they will.
(Yes, a generalization, but the figures are really scary. Over 20% of smartphone apps snoop on you, and that's just those that got caught.)
Leave a comment:
-
always will remain "hostile"
Originally posted by ean5533 View PostGood reading. All points that seem obvious after you're read them.
If one takes everything you've said at face value, the sad conclusion is that the divided world of Linux is fundamentally hostile to 3rd party vendors, and will remain hostile as long as it remains divided. That's quite a depressing realization to have.
putting closed-source, binary-only, hacked-together abandonware into GNU/Linux system goes against all principles it stands on. it will never work on large scale.
either they will grant us freedoms of use and modification of their [bought] software or someone has to share & enjoy the pain of dealing with shitty development practices.
Leave a comment:
-
Originally posted by AdamW View PostLike I wrote: it's not a new idea. It's come up before. (See United Linux for only one example). The problem is, well, in the end, too many people simply disagree on what should be *in* the base. To take a trivial example: should ALSA or PulseAudio APIs be used? Or both, or neither? To take a bigger example: GTK+ or Qt? And once you magically solve all those questions - what versions? Again, remember, distros are different _because they want to be different_. Fedora, generally speaking, is going to want somewhat newer versions of stuff than Ubuntu is. So what do we do? Who do we side with? Or do we bless both, and not really solve the problem at all?
Ultimately it involves distributions sacrificing a lot of their independence for something they generally just don't consider terribly important: the ability of third parties to bypass their distribution mechanisms. Distributions generally reckon third parties should send them tarballs and let them deal with the distribution. Whether this is 'right' or 'wrong' is a bit simplistic and really kinda missing the point: right or wrong, it's how distros think, if you imagine them as single entities with minds.
Leave a comment:
-
compromise that not completely delusional
Originally posted by mirv View PostSo long as [insert client name here] doesn't attempt to install things itself. Perhaps it might work with Ubuntu, but I personally don't want such a client touching any more than necessary to run (which basically means touch nothing other than the games!). Let [insert client name here] handle the games, and the distro package manager handle [insert client name here]. That's how I see it anyway.
Leave a comment:
-
Originally posted by lienmeat View PostI've not been using linux that horribly long, only since about 2005 for my default OS of choice, but I've been messing around with it since 2003. I realize I'm pretty new in linux land, so my opinions may be off. I mean no harm. I am a programmer, and CS major, so I do understand some of the technical implications for what I'm about to speak about.
Anyway, I do feel that it aught to be easier for 3rd parties to build software for linux. I love how linux is currently, but as already mentioned, does definitely have some issues as well for some purposes. I do see packaging and dependencies being a major reason why we can't get 3rd parties enthusiastic about desktop linux. Here's how I think this could be solved:
Firstly, I think one thing MS has done right, is the win32 api. I'm by no means saying it's perfect, it's not...not close. But the concept is good, IMHO. Look at it like this. Right now, on any desktop linux installation, you can expect to see the common GNU tools. Sure, you will have many different versions of some tools on different distros, but you know you will have some gnu tools. Also, you know that for a modern desktop, you should be able to build against the 2.6 (or 3.0) kernel, and not have issues (hopefully). Then we have all this distro fragmentation. I've used almost all of the major distros at one time or another I think. I get that people think things need to be done different, but here's what I propose. Why can't a group of the linux desktop community build a base Linux Desktop Framework (LDF) and api to run off of. I'm talking make members from all major distros get together and say ok, so let's build this set of libraries and tools, and call it the Linux Desktop Framework (LDF). In the next/first version of the framework, let's target these specific versions of libraries and tools, (sdl, gnu tools, asla, pulseaudio, etc...) and also build an API for working with that framework. Every so often (a year, 6 months, whatever) a new LDF release comes out, and at most a vendor might have to target maybe 2-3 versions of the api and framework (depending on release cycle), to get all his boilerplate stuff working good and compatible. It could work much like building against gnome or kde, but at a lower level. In fact, you could have gnome and kde (or whatever DE you choose) target these LDF's too.
It seems crazy at first, but I've actually put some thought into this. People I'm sure will answer with "but then we can't choose a library incompatible with LDF and even have a usable desktop". Well no kidding...but that's the case already. You can always have libraries in addition to the ones included with LDF, or even maybe have multiple versions of LDF installed. Point is, I think it would be beneficial to have a standard linux desktop base, and iterate on that, usable on all major distros. Now, distros could always package different libraries in addition, in order to have a competitive edge, or do things differently in the rest of the userland, but would always target a specific version of LDF to have compatibility with. Basically, I think desktop linux needs to agree on a base for a userland, agree to work on it collectively, and make sure to keep it as API compatible as possible going forward (like MS tries to), and iterate it just like we do for distros, however, it would be the one common thing you could always expect, besides just a 2.6 (or 3.x) kernel.
What problems does this actually solve? Well, you no longer have people with up to date distros having compatibility issues as often with software released by third parties, because they should be at least close to the same version of LDF, which should be using an almost completely compatible version of the API as the game/software was written against. The less things vendors have to worry about, the more likely they will be to port/write software for the platform.
I know what I've said is a complete pipe dream, and flies in the face of so much of what traditional linux development has been about. I understand that. However, if desktop linux is ever going to attract 3rd parties really well, in my opinion, that's what would best benefit it in that regard. I do understand it would probably KILL the way some/many people prefer linux to work.
Ultimately it involves distributions sacrificing a lot of their independence for something they generally just don't consider terribly important: the ability of third parties to bypass their distribution mechanisms. Distributions generally reckon third parties should send them tarballs and let them deal with the distribution. Whether this is 'right' or 'wrong' is a bit simplistic and really kinda missing the point: right or wrong, it's how distros think, if you imagine them as single entities with minds.
Leave a comment:
-
congratulations
Originally posted by allquixotic View PostI can understand the desire to prevent users from inadvertently running malicious code on their machine, but being unable to run a MojoSetup .run or .bin file from Chrome or Firefox is just ridiculous. Does Windows make you go into CMD.EXE and run two or three commands to run an executable, just because Microsoft thinks that executables are a security risk? No.
and why people are willing to put up a good buck for cleaning their installation afterwards.
if you have to put something from damn web browser into your system - make sure it's data and not a program. otherwise you're doing something very stupid.
Leave a comment:
-
it just doesn't
Originally posted by ean5533 View PostOn Windows you just pop in the install disk and it works.
i have no world to explain how sick i'm from this "IT JUST WORKS"?? idiocity. if it "just worked" i would not be making my living from going in people's homes and offices to fix that shit. including instances of "this game just doesn't work anymore!!1" and "it wouldn't install/my system gone down after installation".
and it does not bring with itself a perfect astral knowledge of how to operate it either.
many people willing to pay inadequate sums to make it somehow usable again.
Originally posted by ean5533 View PostHaving to manually install libraries is not something that users should be required to do in order to play the latest version of Angry Birds (or whatever example game you want to use).
once back in the day i had an old game that force-installed some deep system crap from Win98 to WinXP. WinXP didn't liked that at all. great design, right ? "just-fucking-works" !
Originally posted by ean5533 View PostOf course, the appearance of something like a Desura (or Steam*) client on Linux could make a lot of those problems go away.
most games made to be sturdy playable about a year or so from release date, after that they are in a free voyage. someone have to support that code shitfest and here we come to the same situation with long-term game distributions on GNU/Linux as with anti-virus support & update - no one going to bother keeping those games holding on nails and crutches unless there are no nails and crutches or there is a sufficient potential market to "consume".
GNU/Linux is rapidly evolving in all directions OS. there is just no place for abandonware.
and there is NO pretty solution other that what Carmack does. either devs extend on that one or we can wait for someone like Valve indefinitely to take care for nails and crutches while devs are putting those nails and crutches, sure.
PS: while foreseeing some additional moral preaching about civility i'll add: no, i don't give a damn, get off from your high horse or take it like it is from there.
Leave a comment:
-
So here goes me trying to be smart again...
I've not been using linux that horribly long, only since about 2005 for my default OS of choice, but I've been messing around with it since 2003. I realize I'm pretty new in linux land, so my opinions may be off. I mean no harm. I am a programmer, and CS major, so I do understand some of the technical implications for what I'm about to speak about.
Anyway, I do feel that it aught to be easier for 3rd parties to build software for linux. I love how linux is currently, but as already mentioned, does definitely have some issues as well for some purposes. I do see packaging and dependencies being a major reason why we can't get 3rd parties enthusiastic about desktop linux. Here's how I think this could be solved:
Firstly, I think one thing MS has done right, is the win32 api. I'm by no means saying it's perfect, it's not...not close. But the concept is good, IMHO. Look at it like this. Right now, on any desktop linux installation, you can expect to see the common GNU tools. Sure, you will have many different versions of some tools on different distros, but you know you will have some gnu tools. Also, you know that for a modern desktop, you should be able to build against the 2.6 (or 3.0) kernel, and not have issues (hopefully). Then we have all this distro fragmentation. I've used almost all of the major distros at one time or another I think. I get that people think things need to be done different, but here's what I propose. Why can't a group of the linux desktop community build a base Linux Desktop Framework (LDF) and api to run off of. I'm talking make members from all major distros get together and say ok, so let's build this set of libraries and tools, and call it the Linux Desktop Framework (LDF). In the next/first version of the framework, let's target these specific versions of libraries and tools, (sdl, gnu tools, asla, pulseaudio, etc...) and also build an API for working with that framework. Every so often (a year, 6 months, whatever) a new LDF release comes out, and at most a vendor might have to target maybe 2-3 versions of the api and framework (depending on release cycle), to get all his boilerplate stuff working good and compatible. It could work much like building against gnome or kde, but at a lower level. In fact, you could have gnome and kde (or whatever DE you choose) target these LDF's too.
It seems crazy at first, but I've actually put some thought into this. People I'm sure will answer with "but then we can't choose a library incompatible with LDF and even have a usable desktop". Well no kidding...but that's the case already. You can always have libraries in addition to the ones included with LDF, or even maybe have multiple versions of LDF installed. Point is, I think it would be beneficial to have a standard linux desktop base, and iterate on that, usable on all major distros. Now, distros could always package different libraries in addition, in order to have a competitive edge, or do things differently in the rest of the userland, but would always target a specific version of LDF to have compatibility with. Basically, I think desktop linux needs to agree on a base for a userland, agree to work on it collectively, and make sure to keep it as API compatible as possible going forward (like MS tries to), and iterate it just like we do for distros, however, it would be the one common thing you could always expect, besides just a 2.6 (or 3.x) kernel.
What problems does this actually solve? Well, you no longer have people with up to date distros having compatibility issues as often with software released by third parties, because they should be at least close to the same version of LDF, which should be using an almost completely compatible version of the API as the game/software was written against. The less things vendors have to worry about, the more likely they will be to port/write software for the platform.
I know what I've said is a complete pipe dream, and flies in the face of so much of what traditional linux development has been about. I understand that. However, if desktop linux is ever going to attract 3rd parties really well, in my opinion, that's what would best benefit it in that regard. I do understand it would probably KILL the way some/many people prefer linux to work.
Leave a comment:
Leave a comment: