DEB/RPM Integration

I am sure this topic has probably been discussed before but I would like some feedback on this idea. Of course we all know that linux is great and a reliable system but the latest focus is trying to get new users to adopt it.

Is it possible from a developer standpoint to integrate a system including packages like alien for deb etc, that would allow SUSE to user either deb or rpm packages or better yet introduce a brand new file type say .lnx for linux (easier since the intro for SUSE build service) to begin a movement that would allow packages to be cross compatible between linux systems, so long as the kernel version is suppported?

This would bring a unifying and innovative solution to a common issue for linux systems. Of course a standard would have to be set on the binaries to ensure proper dependency resolution between systems would be accomplished, but SUSE might actually be able to lead the way!

Just an idea, I would like to see comments on its possibility. And of course with a possible acquirer of Novell on the way, it might just be something the new company would be behind the community for to bring more attention to the product! I also have a feature request in openFate for your voting https://features.opensuse.org/310567

Thanks.

By the way I do understand the whole Linux Foundation thing, so that is why I am proposing create a new .lnx to complement the unification or have the ability “by default” to use either rpm or deb (yast or zypper auto using something like alien to convert and install automatically the deb to rpm file) with obviously SUSE having a preference to the rpm. I know one can use alien at the command line, further most new users don’t understand all of the command line options at first. Point being if linux distros cannot get together on a unification of standards then it may be sadly doomed to always being a niche less than 5% desktop, a geek system, or just a server operating system as it is today and has been for the last 15 years.

Yes, has been discussed before. Conclusion: The packaging format has never been the problem.

The day Fedora, openSUSE and Mandriva packages (all of them RPM from rpm.org) are 100% compatible between them then you can start to worry about Debian/Ubuntu’s. Until then it should be obvious that there are other problems and that making ZYpp able to handle DEB files would not solve anything.

That is what I was concerned of. Most irritating. I know integrated alien wouldn’t solve anything but it might be a step in a direction on ease of use for newbies not understanding the command line, but then again, if a newbie got deb install happy he/she could have a really messy system so I see what you mean. Thanks for the feedback though.

Hello,

It’s very ambitious and seemingly a “no-brainer”. Each distribution is actually an OS, different from the others. Even though OpenSUSE and Fedora both use the rpm package system, I would not install a Fedora rpm on OpenSUSE or vice versa. To have genuine cross distro compatiblilty would be to eliminate interesting differences between distros … it’s almost asking for a unified gnu/linux os.

In recent years, distributions have evolved to have much more in common with one another than in the recent past … thanks to standards such as LFS and LSB. In essence, you are proposing a unified approach to package mangement. For simple packages, packages that don’t run distribution specific macros in the install, translation will work. Things get a little trickier when a package needs to do something along the lines of run “SuSEconfig” at the end of an install. How can that ever be translated reliably? Are all such scenerios to be eleminated from distributions?

It’s technically possible, but not technically desirable. Installing foreign packages is asking for problems. Eliminate those problems … different distros are the same os with different branding.

Take care,

oxala

Supposing…

  • names of dependency packages match
  • versions of dependent libraries are new enough
  • nobody played funny games with library sonames

Some restrictions >>

  • Standard Linux laws
  • Debian’s own community laws/regulations

Currently some discussions are going on in Unix world to make standard format i.e .RPM or Deb etc.

The deb packages and rpm packages both come essentially from src files with the headers, modules, depends-on … etc. So in theory, one could write a universal translator capable of grabbing the src and making both a baseline deb package and baseline rpm package on the fly from original source file constructs. A transforms file for each of the major distro’s technically could also enhance such a process to create versions for each distro, which will work somewhat until a distro does something unique that breaks the rules of the transform.

My two cents worth

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Is openSUSE really needing .deb packages? I don’t think so


VampirD

Microsoft Windows is like air conditioning
Stops working when you open a window.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.15 (GNU/Linux)
Comment: Using GnuPG with SUSE - http://enigmail.mozdev.org/

iEYEARECAAYFAkyaK5gACgkQJQ+0ABWtaVl/uQCeL2YVv2c023C4Hqh62qJfnxzN
AiQAoJFINMiw/EmbJ6l7F/WKdj+cX8Tt
=9CZ7
-----END PGP SIGNATURE-----

Such standard already exists, it is called Linux Standard Base. It requires use of RPM package format for third-party software:
http://refspecs.linux-foundation.org/LSB_4.0.0/LSB-Core-generic/LSB-Core-generic/swinstall.html

the package format itself is also standardised: Package File Format

Those developers who ship their software in .deb, .tgz or .bin formats openly break with the LSB specification as published by the Linux Foundation.

The alien utility was designed solely to be used on non-RPM systems to become compatible with LSB packages.

The only obstacle to wide use of LSB currently is that no build system has LSB as a build target. This hopely will change soon as LSB build target is going to be added to OpenSUSE Build Service.

One thing to note here is .tgz was available on UNIX and the first few releases of Linux before Redhat introduced RPM. When Linux was originally released the documentation stated “The official format for all package inclusions will always be .tgz on all Linux systems to retain non-proprietary rights to sharing applications coming from Unix”. LSB came a long time afterward as did the Linux foundation.

It is frustrating when some very powerful software comes only as .tgz .deb or .rpm where .tgz isn’t in distro repos, .deb are scattered amongst ubuntu repos and .rpm are also scattered between multiple repos. For starters, there should be a central registry of packages which basically has the program name, package it is found in, description of what it does, formats it is available in (.tgz,.deb,.rpm,.srcrpm), software version, minimum kernel version required, and links to distro repos. As it stands now, .rpms and .debs reside in repos that at times break the system because a particular repo has some older version software than is currently being used.