openSUSE and portage

I’ve been wanting to try out portage on openSUSE for a while now, and a little bit ago I found an rpm http://software.opensuse.org/search?q=portage&baseproject=openSUSE%3A13.1&search_devel=false&search_unsupported=false So I installed the rpm. It didn’t create the group and/or username portage, so I had to. No big deal. When I went to

emerge --oneshot portage

it complained about circular deps pertaining to glibc and gcc, which I have both. I went to #gentoo-guis and talked to dol-sen the lead portage developer and he suggested i do package.provided which from the man page states

package.provided
A list of packages (one per line) that portage should assume have been provided. Useful for porting to non-Linux systems. Basically, it’s a list that replaces the emerge --inject syntax.
For example, if you manage your own copy of a 2.6 kernel, then you can tell portage that ‘sys-kernel/development-sources-2.6.7’ is already taken care of and it should get off your back about it.

Portage will not attempt to update a package that is listed here unless another package explicitly requires a version that is newer than what has been listed. Dependencies that are satisfied by package.provided entries may cause installed packages satisfying equivalent dependencies to be removed by emerge(1) --depclean actions (see the ACTIONS section of the emerge(1) man page for more information).

Virtual packages (virtual/*) should not be specified in package.provided. Depending on the type of virtual, it may be necessary to add an entry to the virtuals file and/or add a package that satisfies a virtual to package.provided.

Format:

  • comments begin with # (no inline comments)
  • one DEPEND atom per line
  • relational operators are not allowed
  • must include a version
    Example:

you take care of the kernel

sys-kernel/development-sources-2.6.7

you installed your own special copy of QT

x11-libs/qt-3.3.0

you have modular X but packages want monolithic

x11-base/xorg-x11-6.8

So I added

sys-devel/gcc-4.8.2
sys-libs/glibc-2.19

to my package.provided. Same issue. So I got to thinking, wouldn’t it be nice if portage, on a non native Gentoo system like openSUSE, could read from the rpm database. Portage is written in python, and this should be able to be accomplished with a few if than else statements. Is this a native Gentoo system? If yes, continue as normal. If no is it an rpm based distro? If yes, read from rpmdb. That sort of thing. This is why I post it here, because my programming is novice at best. Anyway, any help would be appreciated.

According to Wikipedia, portage is something different than what you describe in your post
http://en.wikipedia.org/wiki/Portage_(software)

According to Wikipedia, it’s Gentoo’s package management system, an alternative to using apt-get.
Sort of like zypper which we use in openSUSE instead of rpm.

I’m not sure how portage would work on openSUSE without actually trying… whether it would support a different set of commands but still manage the rpms we use in openSUSE or if it will actually try to import and manage deb packages like alien.

I guess if I understood what your objectives were, I’d better understand why you’d want to use portage.

TSU

That’s all true and that is the point. If you noticed, I pasted a section from the portage man page. So yes, it is Gentoo’s package manager. I know it’s like zypper and apt. We may not have many times where we need to install from source, but sometimes it’s unavoidable. With portage, you could do that and have the granular control. Right now, I just want to get portage to read the rpmdb or the zypper database. Either way works for me.

Without knowing how well Gentoo might be integrated into openSUSE,
On general principles unless you have a very good reason to do this, it’s usually a bad idea.

Different package managers <may> not work from the same metadata, so may not be aware of what another package manager is tracking. For that reason, I stick <only> to native package managers working in any distro.

TSU

There is no separate zypper database. For querying RPM you could use rpm-python package which provides RPM Python bindings. Some documentation with usage examples is available at www.rpm.org.

On 2014-06-06 04:46, arvidjaar wrote:
>
> Jonathan_R;2647361 Wrote:
>> Right now, I just want to get portage to read the rpmdb or the zypper
>> database.
>
> There is no separate zypper database. For querying RPM you could use
> rpm-python package which provides RPM Python bindings. Some
> documentation with usage examples is available at www.rpm.org.

But the repository metadata is not there, and it needs to be parsed for
making decisions like what to upgrade, how to solve dependencies, etc.


Cheers / Saludos,

Carlos E. R.
(from 13.1 x86_64 “Bottle” at Telcontar)