Calum wrote:i agree totally with all the stuff you said in your last 3 posts void main, you raise some very good points.
when i said directory structure, all i meant was that instead of having directories called /usr/share/mdk and /usr/lib/redhat (yes i just made them up, but there are some like that hanging around in most distros), which ruins any binary rpms trying to install into those directories on another system (installing an RH rpm in mandrake and the libraries it wants are not in /usr/lib/redhat or something, you get the idea), we could have the normal basic sensible directory structure that everybody knows and can probably draw a diagram of on a napkin if called to do so.
also, when installing a package that depends on 'bzip2' and i cannot install 'bzip2' because i already have 'bz2-mdk' installed, and i cannot uninstall bz2-mdk because that'll break another 38 programs (which will in turn break.... ) i would be grateful for a situation where a binary rpm can be installed on any rpm based system. this is as you say, architecture dependent and also system dependent, but if we be reasonable i believe we can hammer down a requirement for all linux 386 style rpms to be compatible with all participating systems, and for all 586 and 686 rpms to be compatible with any participating system that runs on a 586 or a 686 (and i know very little about it but i would like to see x86 clones like amd and cyrix chips be fully supported by this format even at a cost to performance (which i am not convinced would be a big one)), now source rpms and maybe machine/system specific binary rpms could still be available, but so long as everybody made a big deal of the fact that there was a standard and that people should keep to it for their own good, the more easy it would be for people to just click and run when they are installing new rpms on their systems (especially important when we are now going to see a continuous stream of newbies as linux swells in popularity)....
I'm not quite sure what you mean and I think you are still looking at it wrong. The real problem is that you are trying to install a Red Hat RPM on Mandrake. Just because it's an RPM doesn't mean it should install on your system. The RPM needs to be built for your distro and version. RPM, the format, is a packaging, or a box. "rpm" the command is a tool for taking what is in that box and installing it.
I'm not that familiar with Eoropean cars so I will use American cars as an example. I get my car parts in a box (RPM) for my Chevrolet (Red Hat) and my Ford (Mandrake). I use my Socket set (rpm) to install those parts. Now some car parts come in different boxes and require different tools (metric vs English units or RPM vs apt). Sure some parts will fit on either car but some are specific to each (most are specific to each). In fact most of the parts for my 1976 Camaro will not fit on my 1996 Camaro. And some people who do not understand "rpm" might think it closer to a hammer than a socket set. Sure, the car manufacturers could get together so every part on the Chevy will fit on the Ford but then they would be the exact same car and what would the point be of having both?
I know a lot of people just like you who are severely frustrated because of things like this. But to me it's like a person walking into a car parts store and saying "I need a new muffler". The store clerk would ask you what the make/model/year of your car is. You wouldn't say "what's the difference, just give me a muffler, it should fit on all cars". Or maybe you would. :) And would you expect the car parts store to have a muffler for every make/model/year of car ever made? Again, maybe you would. :) But that *is* the issue. We do want to be able to get any part in any box we want. It is achievable but it will take a lot of work and coordination and the Linux world would be better for it. Or we could all just switch to Debian and be done with it. :)
...At the moment a lot of binary only rpms are only out for red hat or only out for SuSE and those rpms don't work on other systems or even some versions of the system they are supposed to be for.
If that is your hangup then I suggest picking one of those other distros that have most of the software you want. But who's fault is it that not all applications are available in every distros packaging format? Right now, the answer is the author and the user. The distro vendor picks a number of applications that they want to include and support. They just can't include everything and in fact can only include a tiny fraction of the software available to support. They only have so many resources and applications are in a wide varying degree of completeness, stability, compatibility, usefulness, etc, etc because they are written by whoever wants to write one.
As it stands right now popular applications that are not included by a distribution will get some volunteer somewhere to put that application into that particular distributions packaging format and made available for download (someone has to also donate the space and bandwidth to host those applications). Sure if everyone used a single distro this would become easier but who wants a single distro? Distro's want to be unique, even if it means that at some deep level they are not compatible.
The issue is more or less moot when it comes to open source things, that are available as source or source rpms, but a lot of popular software (java virtual machine, flash plugin i think and others) is not available as source. also a lot of people don't know how to convert source stuff into installable binary rpms, i don't, but if i had to i could learn it, and probably will at some point. the mandrake version of rpm uses an option the red hat one doesn't have enabling the user to install a source rpm transparently as if it were a binary one, maybe that's something to think about having as a standard.
The command to create binary RPMs from SRC RPMs is "rpm --rebuild xxx.src.rpm" or if you have the newest version of RPM it is "rpmbuild --rebuild xxx.src.rpm", see
man rpmbuild and
man rpmas for init scripts, why not just make all distros support both styles? contrary to popular belief, slackware supports both styles, even though it is initially set up to only use the bsd one, if something is added sysV style into a sysV init script, it will work. maybe rpm needs to have something added where rpm will read through the init scripts and figure out what style is supported? this would mean rpms would need to support both styles, i think it would be better to just say that all standard linuces fullt support both styles, myself.
Contrary to popular belief all distros support both styles. Luke, you have the source. I could convert my Red Hat system to BSD style in very little time. The init processes are not large things and if you know both you could use either. Of course Red Hat only includes graphical tools for the SysV style but who uses graphical tools? People that use graphical tools could care less which init style is used anyway. I don't like the BSD style init and it's one of the many reasons I chose Red Hat as my OS of choice. It has very nice init management and is layed out just about the way I like it. And I *do* like the command line tools "chkconfig" and "service".
just my thoughts. i do think rpm will and most likely should be the standard, but i think these issues need addressed before it can be considered a real standard.
Again, I think the issues that you refer to are not RPM issues but software repository issues. As far as whether RPM should be the standard I don't know whether I agree with that. I'm sure the Debian users would have a *huge* beef with that. Again, some people like working on autos that have their units in metric and use metrics tools because it makes sense to them and some prefer the English units. No one could argue that metric is easier unless you've been using English all your life. :)