protobuf normally generates, among other sub-packages, protobuf-devel and protobuf-compiler. Those latter are however missing from RHEL/CentOS 8, even with EPEL enabled:
protobuf-devel
protobuf-compiler
$ sudo dnf search protobuf Last metadata expiration check: 1:29:52 ago on Sat 26 Oct 2019 05:48:02 PM CEST. protobuf.x86_64 : Protocol Buffers - Google's data interchange format protobuf-c.x86_64 : C bindings for Google's Protocol Buffers protobuf-lite.x86_64 : Protocol Buffers LITE_RUNTIME libraries
Quite a few other sub-packages are missing too (e.g., protobuf-lie-devel, python3-protobuf, protobuf-vim, protobuf-java).
protobuf-lie-devel
python3-protobuf
protobuf-vim
protobuf-java
And it does not appear that the epel8 branch can be added to the protobuf source code on Pagure:
epel8
protobuf
$ fedpkg request-branch epel8 Could not execute request_branch: This package is already an EL package and is built on all supported arches, therefore, it cannot be in EPEL. If this is a mistake or you have an exception, please contact the Release Engineering team.
Could you deliver the missing protobuf sub-packages for RHEL/CentOS 8?
Thanks!
Kind regards
Denis
Cross-referenced in https://bugzilla.redhat.com/show_bug.cgi?id=1765844
Hi Denis
Thanks for opening these, but I think this is again the 'PowerTools is not enabled' problem. Looking at PowerTools in CentOS-8 I see:
./PowerTools/x86_64/os/Packages/protobuf-devel-3.5.0-7.el8.i686.rpm ./PowerTools/x86_64/os/Packages/protobuf-devel-3.5.0-7.el8.x86_64.rpm ./PowerTools/x86_64/os/Packages/protobuf-c-compiler-1.3.0-4.el8.i686.rpm ./PowerTools/x86_64/os/Packages/protobuf-c-compiler-1.3.0-4.el8.x86_64.rpm ./PowerTools/x86_64/os/Packages/protobuf-c-devel-1.3.0-4.el8.i686.rpm ./PowerTools/x86_64/os/Packages/protobuf-c-devel-1.3.0-4.el8.x86_64.rpm ./PowerTools/x86_64/os/Packages/protobuf-compiler-3.5.0-7.el8.i686.rpm ./PowerTools/x86_64/os/Packages/protobuf-compiler-3.5.0-7.el8.x86_64.rpm
Does that cover the packages you needed?
Thanks Stephen, yes that's perfect!
For the record (as I may not be the only one wondering on how to get those packages):
$ sudo dnf config-manager --set-enabled PowerTools $ sudo dnf -y install protobuf-devel protobuf-compiler
Would you know, by the way, how to reference (with BuildRequires) those packages from within the EPEL 8 RPM spec file?
BuildRequires
Metadata Update from @denisarnaud: - Issue close_status updated to: Fixed - Issue status updated to: Closed (was: Open)
Hm, I forgot about python3-protobuf (or it may be named protobuf-python3 on RHEL/CentOS 8)... Would you know how to get my hands on the Python bindings for Protobuf?
protobuf-python3
On Fedora rawhide:
$ sudo dnf search protobuf|grep python python3-protobuf.noarch : Python 3 bindings for Google Protocol Buffers
On CentOS 7:
$ sudo yum search protobuf|grep python protobuf-python.x86_64 : Python bindings for Google Protocol Buffers
But on CentOS 8, even with PowerTools enabled:
$ sudo dnf search protobuf|grep python
Metadata Update from @denisarnaud: - Issue status updated to: Open (was: Closed)
I would update the bugzilla to say that is what you are needing. The package is built out of the main-protobuf so would be hard to get into EPEL without rebuilding all the rest of the code.
Is that something we could build, in the meantime, into https://copr.fedorainfracloud.org/coprs/smooge/not-yet-in-epel8/ ?
Not really.. it would need to be in a different copr because it would replace packages shipped by Red Hat or CentOS.
I'm still missing protobuf-lite-devel.
protobuf-lite-devel
(Not an EPEL issue, but mentioning it here since other packages were mentioned here as well.)
Opened a bug to have this addressed in RHEL 8/CentOS 8: https://bugzilla.redhat.com/show_bug.cgi?id=1787458
python3-protobuf and protobuf-lite-devel are now available in EPEL8. Please build your packages. I believe this issue can be closed.
Metadata Update from @smooge: - Issue close_status updated to: Fixed - Issue status updated to: Closed (was: Open)
# This should work for devel repo name=CentOS-$releasever - Devel #mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=Devel&infra=$infra baseurl=http://mirror.centos.org/$contentdir/$releasever/Devel/$basearch/os/ gpgcheck=1 enabled=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial
Note1: The above information is for mock/copr/local builds. You do not have to do anything to build in EPEL8.
Note2: The solution isn't perfect. The biggest problem is that there are no s390x packages. But we figured it was better than no -devel packages at all. Workaround: In your EPEL8 rpm specs you will have to use ExcludeArch, ExclusiveArch, %ifarch, or %ifnarch so that your builds do not build on s390x, or skip that library for s390x. Example: Put the following line in your spec file. ExcludeArch: s390x
Indeed, if you edit /etc/yum.repos.d/CentOS-Devel.repo to switch the enabled flag to 1 (the repository name is explicitly cluttered to avoid use by chance, so dnf --enablerepo=CentOS-Devel does not work), then the following works: dnf -y install python3-protobuf.
/etc/yum.repos.d/CentOS-Devel.repo
enabled
1
dnf --enablerepo=CentOS-Devel
dnf -y install python3-protobuf
Also note that the current version of Python is 3.6.8. Note sure whether newer stable versions (e.g., 3.8.2) will make their way into CentOS 8.
Thanks again for that great work!
Login to comment on this ticket.