[Pulp-dev] Dependency on gi / GObject

Mike DePaulo mikedep333 at redhat.com
Thu Oct 10 16:12:02 UTC 2019


Hi everyone,

pulp_rpm (Pulp 3) recently added a dependency on the python module "gi"
(GObject Introspection), part of "PyGObject".
https://pulp.plan.io/issues/5172
https://github.com/pulp/pulp_rpm/pull/1434

This now requires every linux distro that pulp_rpm is installed on to
provide the package named like:
Fedora: python3-gobject , which has most files provided by its dep
python3-gobject-bas
Debian: python3-gi

And they must also have the following ansible-pulp "pulp" role variable set:
pulp_use_system_wide_pkgs: true

The need for that variable is making for a bad user experience in
installing Pulp with pulp_rpm, although I can probably force it via the
pulp-rpm-prerequisites role.

Shouldn't pulp_rpm declare its pip dependency on PyGObject ?
https://pypi.org/project/PyGObject/

I simulated it declaring that dependency, and added the C / devel packages
needed to build it, via this PR:
https://github.com/pulp/pulp-rpm-prerequisites/pull/16
(I tested it afterwards with the master branch of pulp_rpm by viewing the
pulp status page).

The PR would increase the number of C / devel dependency RPMs by a dozen or
2, since pip installing GyGObject needs to compile it, but it does allow
for pulp_use_system_wide_pkgs: to remain at false by default.

Note that "python3-libmodulemd" (a currently specified dependency) and
"firewalld" (an optional feature for pulp) still depend
on python3-gobject-base. (Although python3-modulemd does not show up in the
venv.)

Perhaps the rpm prereqs role should have 2 modes via a variable:
"maximize-pip-pkgs" or "maximize-os-pkgs"? (And an "auto"). And the auto
would be per-distro.

Also, I should ask the more fundamental question:
Is pulp_rpm using PyGObject worth the trade-offs of depending on it?

If firewalld is depending on python3-gobject-base, that's a good sign.

However, GObject has been upgraded 4 times (as part of GNOME) during the
life of RHEL7/CentOS7, and at least 1 time during the life of SLES12 that I
know of. It's also probably categorized as a desktop package by distros;
even Ubuntu LTS has a shotter lifecycle for desktop packages than server
packages. This is in contrast to probably all of Pulp's other dependencies.

I'm also worried that if GObject (OS package) is upgraded, then PyGObject
(pip) will need to be reinstalled.

-Mike

-- 

Mike DePaulo

He / Him / His

Service Reliability Engineer, Pulp

Red Hat <https://www.redhat.com/>

IM: mikedep333

GPG: 51745404
<https://www.redhat.com/>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listman.redhat.com/archives/pulp-dev/attachments/20191010/5267c54c/attachment.htm>


More information about the Pulp-dev mailing list