PDA

View Full Version : The future of Linux - the value of native java and package inter-dependencies


kaimano
18th February 2006, 04:03 PM
Linux represents a greatly stable platform and the FC team is doing a great work in improving the operating system, however I think that we should all take a step back and look at what the market and ourselves really need.

What I am looking for, like, I believe 99% of the user base not involved with developing the OS, is:

1) to install an OS and forget about re-installs for at least two years
2) to be able to upgrade the applications I most use without having to re-install the operating system
3) to include among the applications I most use the following:
* openoffice
* evolution
* http server
* kde
* gnome
* firefox and mozilla
* mysql and postgresql
* eclipse
* java

to name a few.

I am unsure about the real value of building java within the OS, so tightly that most packages builds depend on them.

If I seriously need eclipse, I will go an get the latest JDK from Sun and the latest eclipse from eclipse.org and run them as such, they install in minutes and I can update them whenever available. FC5 has created a massive and unnecessary overhead of work essential to keep up with the latest releases.

firefox 1.5 is hard to build for FC4 due to the dependencies, not to talk about evolution 2.4 openoffice and KDE just to name some. The dependencies on a miriad of packages make the effort ridicolously hard.

The risk is to alienate potential users by forcing them to re-install their operating system whenever they/we want to use the latest release of an application that we really care about.

My proposition is to start thinking of a Linux architecture that allows the re-build/re-placement of essential packages without having to rebuild most of the operating system, thus increasing the life-span and viability of a platform installation that need not to be replaced every year.

K

GarySaved
18th February 2006, 09:53 PM
I agree that an upgrading system is a must.
YUM does great for updating packages, so we are set there, but to expect people to backup their data and install their operating system new every 6 months or so is silly.
I would consider this FC's worst bug. (not being able to upgrade from one version to the next)

We do not want to build anything extra into the operating system.
That is one of the downfalls for M$, like their browser being part of the O.S.

Have Java be an installable program, and it can be resolved as a dependency, just like anything else.

Paul_Vandenberg
18th February 2006, 10:04 PM
Fedora is meant to be a rapidly changing, bleeding-edge distro. That's why it releases every 6 to 9 months. If you need something that changes less frequently, try CentOS. It is a rebuild of the publicly available sources for Red Hat Enterprise Linux. New releases are 18 months apart and updates are available for at least 5 years for each release. Fedora is meant for the computer hobbyist that wants the latest and greatest software. I've used CentOS before and highly recommend it. I prefer Fedora, because I want more up to date software.

Paul

kaimano
19th February 2006, 11:24 AM
Fedora is meant to be a rapidly changing, bleeding-edge distro. That's why it releases every 6 to 9 months. If you need something that changes less frequently, try CentOS. It is a rebuild of the publicly available sources for Red Hat Enterprise Linux.

I think you missed the point, because although updated less frequently, the architecture is still the same with several dependencies built into vital applications that make almost impossible to upgrade to the next version without changing the OS. Can you get an RPM of Openoffice 2.0 for RH Enterprise? No you cannot. Or Evolution 2.4 for Fedora 3? No you cannot.

I think we should get sensible on building a system with a modular architecture. From this point of view Linux has become much worse than MS Windows which has only Explorer embedded. And that is not a Linux fault, they are those responsible for road-mapping and designing the distributions who are not forward thinking enough.

K

RahulSundaram
19th February 2006, 02:48 PM
Linux represents a greatly stable platform and the FC team is doing a great work in improving the operating system, however I think that we should all take a step back and look at what the market and ourselves really need.

What I am looking for, like, I believe 99% of the user base not involved with developing the OS, is:

1) to install an OS and forget about re-installs for at least two years
2) to be able to upgrade the applications I most use without having to re-install the operating system
3) to include among the applications I most use the following:
* openoffice
* evolution
* http server
* kde
* gnome
* firefox and mozilla
* mysql and postgresql
* eclipse
* java

to name a few.

I am unsure about the real value of building java within the OS, so tightly that most packages builds depend on them.

If I seriously need eclipse, I will go an get the latest JDK from Sun and the latest eclipse from eclipse.org and run them as such, they install in minutes and I can update them whenever available. FC5 has created a massive and unnecessary overhead of work essential to keep up with the latest releases.

firefox 1.5 is hard to build for FC4 due to the dependencies, not to talk about evolution 2.4 openoffice and KDE just to name some. The dependencies on a miriad of packages make the effort ridicolously hard.

The risk is to alienate potential users by forcing them to re-install their operating system whenever they/we want to use the latest release of an application that we really care about.

My proposition is to start thinking of a Linux architecture that allows the re-build/re-placement of essential packages without having to rebuild most of the operating system, thus increasing the life-span and viability of a platform installation that need not to be replaced every year.

K


The difference between upstream Java components and the versions shipped within Fedora is that, they are buiild entirely on GCJ and other completely Free and open source libraries. Refer to http://fedoraproject.org/wiki/FAQ for the java related information.

It is entirely possible to remove Java related components easily using Yum remove/groupremove. If you have any problems with that, file a bug report or post to fedora-test list.

http://fedoraproject.org/wiki/Testing

Firefox 1.5 in development tree may depend on development libraries to take advantage of the newer functionalities which is the same as new version upgrades between releases of Fedora. If you have specific ideas feel free to participate in the development of Fedora. Ideas needs to be followed by actual work to make any significant impact.

ELD
19th February 2006, 03:00 PM
I would consider this FC's worst bug. (not being able to upgrade from one version to the next)


Since when?

http://fedoraproject.org/wiki/YumUpgradeFaq#head-bee4591f4bebe867a1cfbbef57475418fe6bc228

Upgrade guides are there mate.

kaimano
19th February 2006, 05:34 PM
Since when?

http://fedoraproject.org/wiki/YumUpgradeFaq#head-bee4591f4bebe867a1cfbbef57475418fe6bc228

Upgrade guides are there mate.

Again, you also missed the point. The problem is not updating from one version to the next, the problem is actually to keep up with updating the core, though not system vital applications, without updating the core operating system. One guy using its own computer can do that accepting some difficulties and risk.

Assume an hipotetical scenario of an organization that rolled out Linux desktop to 35000 workstations. The roadmap includes a desktop refresh in no less than five years due to costs implications.

The core e-Mail application is evolution 2.0. A bug is found on evolution which requires upgrading to the latest 2.4. But ... evolution 2.4 requires python 2.4, our installed base is on a distribution based on python 2.3 (like FC2) which is deeply rooted in several applications. In addition, upgrading to python 2.4 involves upgrading also to a later version of db4, on which several other applications depend. Here we go, the chain is so long and tight that just a simple upgrade of evolution involves re-building most of the operating system, or ... rolling out a newer version. That puts me off recommending Linux Fedora or Red Hat for any business desktop platform.

Are any of the core Fedora / Red Hat architects watching this forum?

I would like to hear from them on this.

K

ELD
19th February 2006, 05:36 PM
Hey im not the guy who said the problem was updating, i was pointing out a fact to someone who seems as if they didn't know about updating.

You are missing a big point, this distro is keeping with the times, always upgrading to newer advanced software hence why so many updates so fast, don't like it? Then choose a new distro to bash.

brunson
19th February 2006, 06:06 PM
If I have a 1995 Socket A motherboard, I'm not going to be able to upgrade to a new Dual Core AMD processor, the support is not there in the base system. This is very much the same as trying to keep the latest and greatest applications running when you don't want to upgrade your OS.

I want the latest version of Application X, but it requires dbus which is part of a version of GNOME which I don't have, but the version of GNOME I need relies on features in GTK that aren't in the version from 1996 that I'm running, which in turn relies on functionality of glibc that needs to be installed. Just like you can't get the latest apps on Windows 95 or Mac OS 9, you're not going to be able to stay on RH 7.1 until the year 2020 and expect all the latest applications to run.

What you're suggesting is not feasible.

ELD
19th February 2006, 06:21 PM
Just like you can't get the latest apps on Windows 95 or Mac OS 9, you're not going to be able to stay on RH 7.1 until the year 2020 and expect all the latest applications to run.

What you're suggesting is not feasible.

haha very true!

Linux The Great
19th February 2006, 07:59 PM
I believe that the next major step for linux is multimedia. Linux has to support all forms of media out of the box before people will believe it is ready for the big time.

Fedora has a major problem in this regard.

kaimano
20th February 2006, 02:06 AM
this distro is keeping with the times, always upgrading to newer advanced software hence why so many updates so fast, don't like it? Then choose a new distro to bash.

The good of this distro is right that there are discussions and participation from the community that can have its input, beside the fact that I am uncomfortable in participating, because I would be working for free for Red Hat that holds its fingers deep in the pie. As a matter of fact I am not particularly content with Fedora's license terms (the packages are open source, but we hold the rights on the OS structure, not just the logos, that belongs to us), an american lawyer must be behind those. To this end I believe that either we all work for free or we all get a share of the benefits.

Having clarified this, I would like to make my little free contribution by drawing your attention to the fact that "having the latest version of a package at all costs" does not bring all the advantages that it could. On the contrary, I think that this tendency has brought Linux to being worse than Windows that we all criticized when got IE embedded.

I would rather ensure that more attention is given to the system's architectural solution that should be based on modular components that, although interacting with each other, allow for the isolation of the applications into services that are as much as possible independent from each other, thus allowing for greater flexibility (in replacing them with newer or different versions), which in the end would bring to the system greater stability, lower cost of ownership (maintenance effort), and eventually deeper market penetration.

If Fedora is what Red Hat will pick from, for their future releases, maybe Red Hat are missing the point, because their are getting spaghetti code.

K

kaimano
20th February 2006, 02:31 AM
It is entirely possible to remove Java related components easily using Yum remove/groupremove. If you have any problems with that, file a bug report or post to fedora-test list.

Rahul,

That is OK, but it is not only about Java, beside the fact that beyond the academic exercise I am unsure of what real value it brings. The point of Java is "platform independency", if this requires more CPU and memory, that is OK ,they come cheaper than the work necessary to maintain a parallel product line. If it is about license independence from Sun, Sun have never hinted that they will create any problem in future, it would all go to their disadvantage. Commercially, I would never recommend to rely on the native java packages. Just look at Eclipse, the masterpiece, 3.1.2 is out and FC5 dev is still on 3.1.1. What is FC4 on? I do not even know, never used, it did not even work with plugins like MyEclipseIDE. How much work has been spent to build those packages? It must have been man years. How much more will be needed to maintain them?

I would rather spend my investment in time in re-designing the architecture of the system to take it to the next level. Please, see also my previous post.

K

brunson
20th February 2006, 03:40 AM
because I would be working for free for Red Hat that holds its fingers deep in the pie.
You have an awfully high opinion of the value of your comments.
... the system's architectural solution ... based on modular components ... interacting ... isolation of the applications into services ... greater flexibility ... greater stability, lower cost of ownership ... deeper market penetration.
Wow, that is a mouthful of buzz words, you must be in management because you dont' seem to have a firm technical grasp of how a modern operating system works.

One of the great advantages of the open source community is being able to leverage the work of others and have others enhance their work to complement yours. If I have the latest version of GNOME running and I wish to install the gnome-weather applet in my toolbar it takes the installation of less than 100K if software and suddenly I have automatic updates, interaction with the desktop, alert notification, configuration GUIs, etc. If I wanted to write something that did all that from scratch it would take far more code and far more effort, but even more to the point of this discussion, if I wanted to consolidate all the requirements to run that applet, i.e. the correct version of the GNOME libraries, GTK libs, glibc and every other specific version of code that was used to build that applet, then it would require a huge installation.

But, to expect that to be able to be run along side any newer or older piece of software with all of it's dependencies on newer or older versions of libraries, you'd end up with a system so bloated and huge it would make Vista look like QNX.
And don't overlook the waste of system resources. If you have one, two or a hundred applications that are all using the same share library, that library is only loaded into memory once, but if you have a hundred application running with 20 different versions of the same libraries, then each of those 20 versions has to be resident in virtual memory.

Your beloved Eclipse (the masterpiece? whatever), it has such a bloated slew of dependencies it is actually a tremendous example in support of my argument. It is built on top of dozens of dependencies and just because it drags them all along in its porcine installer doesn't make it a good thing, it just makes it more bloatware. If every java package I installed brought along it's own copy of the JRE, it'd be a nightmare, but that's pretty much what you're suggesting. Everything with it's own dependencies, which it would have to bring along in case a newer version of a library came along with an incompatible change to the API.

It's a great idea from an ivory tower, but completely impractical and technologically infeasible.

JordanN
20th February 2006, 06:38 AM
One of the great advantages of the open source community is being able to leverage the work of others and have others enhance their work to complement yours. If I have the latest version of GNOME running and I wish to install the gnome-weather applet in my toolbar it takes the installation of less than 100K if software and suddenly I have automatic updates, interaction with the desktop, alert notification, configuration GUIs, etc. If I wanted to write something that did all that from scratch it would take far more code and far more effort, but even more to the point of this discussion, if I wanted to consolidate all the requirements to run that applet, i.e. the correct version of the GNOME libraries, GTK libs, glibc and every other specific version of code that was used to build that applet, then it would require a huge installation.

This is also the cause of its greatest disadvantages: time and dependencies.. The open-source development cycle is slow, because everyone is depending on everyone else. Software also requires the right versions of all of its dependent packages in order to work. Microsoft Windows has this same problem, but to a much lesser degree, given that at least developers will know that all of the basic operating system components will be there.

Yum is a step in the right direction, but in order for it to be truly successful, it needs to expand. Yum repositories should be available to install every software package and every library a software package could need. Libraries and apps need to be written for backwards compatibility. An older app should still function if an updated library is installed.

RahulSundaram
20th February 2006, 09:12 AM
Rahul,

That is OK, but it is not only about Java, beside the fact that beyond the academic exercise I am unsure of what real value it brings. The point of Java is "platform independency", if this requires more CPU and memory, that is OK ,they come cheaper than the work necessary to maintain a parallel product line. If it is about license independence from Sun, Sun have never hinted that they will create any problem in future, it would all go to their disadvantage. Commercially, I would never recommend to rely on the native java packages. Just look at Eclipse, the masterpiece, 3.1.2 is out and FC5 dev is still on 3.1.1. What is FC4 on? I do not even know, never used, it did not even work with plugins like MyEclipseIDE. How much work has been spent to build those packages? It must have been man years. How much more will be needed to maintain them?

I would rather spend my investment in time in re-designing the architecture of the system to take it to the next level. Please, see also my previous post.

K

There is no requirement that the Java like components included in Fedora only run native packages. It can very well run bytecode through GIJ. Again look at the java FAQ I pointed out earlier. If you want to help with development post to fedora-devel list instead of this end user forum.

kaimano
20th February 2006, 11:11 AM
Libraries and apps need to be written for backwards compatibility. An older app should still function if an updated library is installed.

Precisely, this is at the foundation of any healthy information system, but it is not happeining with Linux right now, because of the lack of planning hidden behind the excuse that software solutions evolve rapidly.

Rahoul, please could you point me to that mailing list you mentioned?

K

RahulSundaram
20th February 2006, 11:14 AM
Precisely, this is at the foundation of any healthy information system, but it is not happeining with Linux right now, because of the lack of planning hidden behind the excuse that software solutions evolve rapidly.

Rahoul, please could you point me to that mailing list you mentioned?

K


http://fedoraproject.org/wiki/Communicate. Check the fedora-devel lists and others and go ahead and send in the work being done

brunson
20th February 2006, 04:08 PM
Libraries and apps need to be written for backwards compatibility. An older app should still function if an updated library is installed.
Sometimes you have to break backwards compatibility to move forward efficiently. Whether it's to include new technology or fix a bad design decision. Microsoft breaks backward compatability all the time, and Mac OS X was only able to maintain OS 9 applications by including an entire virtual machine.

You make these statements that sound great in sweeping terms, but just don't work in the real world. You can't put leaded gas in an engine built for unleaded, planes can't fly Mach 12 just because you say it would be a good idea and software can't be 100% backwards compatible for eternity.

Botond
20th February 2006, 11:46 PM
The core e-Mail application is evolution 2.0. A bug is found on evolution which requires upgrading to the latest 2.4. But ... evolution 2.4 requires python 2.4, our installed base is on a distribution based on python 2.3 (like FC2) which is deeply rooted in several applications. In addition, upgrading to python 2.4 involves upgrading also to a later version of db4, on which several other applications depend.

Firstly it isn't the fault of Fedora/RedHat but that of the Evolution team.
But if the fix is there in evolution-2.4 one would need to adapt that fix to 2.0. If Fedora/RedHat doesn't do this favor for you than you'll have to fix evolution-2.0 manually.
OTOH a company with 35000 desktops would probably by some RHEL licences to keep its desktops uptodate.

Jman
21st February 2006, 04:23 AM
There are several conflicting concepts and problems working against each other, let's see if I can untangle them without too much confusion.

Number of users to keep track of. The example of 30,000 or so desktop is one example where it's a bit more work to roll out updates. With these updates you typically don't grab the latest release and update, you backport the fix to your working version or get someone to do it for you. And you want them to be tested for a long time. So usually something like RHEL with RHN makes more sense. CentOS maybe, but usually 30,000 desktop customers want support.

Which brings us to fast vs. slow. It is a lot of work for the Fedora project to maintain compatability with every old library when everything gets rereleased, mostly from the newest release, in less than a year. So we make some compatability packages where needed and charge on ahead. Again, RHEL/CentOS moves slower.

rpm dependencies. For example Gnome needs xorg, gtk, and xml libraries to function just to name a few. These are not going away. Yes some packages require stuff they do not need, but these are packaging bugs and will be fixed when found.

And project releases versus Fedora releases. Yes the Eclipse and other packages will lag behind the official. I'll sacrifice the very latest release for something I can update with yum update
And I'll admit Eclipse plugin packaging vs. rpm is still something to work on. Update managers in the program are great but not when they conflict with the system package manager.

Yes not having to worry about reinstalling for a couple years would be nice, but as a showcase of the latest technology Fedora is releasing so fast you'll need fedoralegacy.org by the end of that.

We really need to define OS here. You refer to "reinstall the OS" when a lot of things are updated. The kernel I am sure is the OS. But what about gnome-panel? firefox? openoffice.org?

I can wipe all traces of any browser I want from my Linux box. I can't remove IE from Windows, that's OS integrated. The package manager may want to remove lots of useful software because it depends on mozilla, for example, but I can if I want to. You can and update all you want, but those will affect your other pacakges due to dependencies. There still is a dependency house of cards that comes crashing down when you remove something important.

Package updates have to redownload and reinstall the whole thing, so really you are reinstalling several packages during updates. But this is necessary if the latest fixes are going to go out.

jult
26th March 2006, 03:25 PM
I think we should get sensible on building a system with a modular architecture. From this point of view Linux has become much worse than MS Windows which has only Explorer embedded.One of the biggest misconceptions about MS Windows and Internet Explorer. The one can easily run without the other. I have yet to find any difficulties in uninstalling and NOT starting IE related services in Windows 2000 or XP.
( try http://www.sysinternals.com/Utilities/Autoruns.html )

I have no idea who started that rumour, because that's all it is. Internet Explorer isn't 'embedded' in the OS, it is a separate bunch of executables and can be removed and disabled entirely. That is: If you would need or want to do that, because its presence doesn't really harm the system, despite of the many security issues, while those too are easily avoided and remedied. Like I often say (still an unfortunate truth):
It's easier to remove spyware in Windows than it is to install a driver in Linux.

brunson
26th March 2006, 03:42 PM
I have no idea who started that rumour, because that's all it is. Internet Explorer isn't 'embedded' in the OS, it is a separate bunch of executables and can be removed and disabled entirely.

That's funny, because that's exactly the opposite of what Microsoft told the courts during their anti-trust hearings.

jult
26th March 2006, 03:50 PM
No it isn't. You should read up on that.

http://www.vorck.com/remove-ie.html

twiistedkaos
26th March 2006, 04:05 PM
You can upgrade from 1 version to the next, I upgraded from fc4 to fc5 with little to no problems at all.

Also, note.
IE is embeded into Windows, Don't believe me? Then try any remove method, I've tried them all. Theres still traces of IE in windows even using guides to remove it. All you're technically removing is itexplorer.exe and it's modules, but that isn't completely removing it from windows.

jult
26th March 2006, 04:12 PM
No, you haven't 'tried them all'. You're one of those claiming it can't be done.
RTFM: http://www.vorck.com/remove-ie.html

It's always laughable how Linux 'believers' suddenly pretend to be stupid idiots as soon as they need to do patching or editing for MS Windows systems. It isn't much harder for Windows than it is for Linux.

twiistedkaos
27th March 2006, 05:57 AM
No, you haven't 'tried them all'. You're one of those claiming it can't be done.
RTFM: http://www.vorck.com/remove-ie.html

It's always laughable how Linux 'believers' suddenly pretend to be stupid idiots as soon as they need to do patching or editing for MS Windows systems. It isn't much harder for Windows than it is for Linux.

RTFM:
http://en.wikipedia.org/wiki/Removal_of_Internet_Explorer

One of Microsoft's arguments during the United States v. Microsoft trial was that removing Internet Explorer from Windows may result in system instability. At least one commentator supports this argument, and notes that removing Internet Explorer will also disable Windows Update, leaving the user without vital security updates to the operating system

...

Both removing and restoring IE is risky and difficult. IE is complex with extensive hooks built into Windows, for efficiency and functionality. Thus unplugging it from your system may impact Internet connectivity, Windows functionality, and break functionality in Microsoft Office and non-MS products.


Even if you do manage to "competely" remove IE, many of the hooks required for alot of windows apps will no longer function. Including the Windows Updater. So yes, in all do respect. IE is embeded into Windows weather anyone feels like admitting it or not. But according to court cases, it's clearly stated that IE is embeded into windows.