nkadel / samba4repo

Wrapper for SRPM building tools for Samba with domain controller on RHEL and Fedora
13 stars 11 forks source link

Depency issues when building on CentOS 8 #9

Closed h289072 closed 3 years ago

h289072 commented 3 years ago

Hello,

I'm trying to build samba on CentOS 8. Obviously this is not an easy task. This repository seems to be very helpful, because it builds required packages that are not available in the CentOS package source.

Unfortunately I'm encountering this depency issue when executing 'make':

make[1]: Entering directory '/root/samba4repo/libtevent-0.10.x-srpm'
        Skipping RPM populated samba4repo-f33-x86_64
Actally building src.rpm in samba4repo-8-x86_64
ERROR: Exception(src.rpm) Config(samba4repo-8-x86_64) 2 minutes 16 seconds
ERROR: Command failed:
 # /usr/bin/systemd-nspawn -q -M a1814e5a8abe48dba6aef16ea9f785d6 -D /var/lib/mock/samba4repo-8-x86_64-bootstrap/root -a --capability=cap_ipc_lock --bind=/tmp/mock-resolv.dm_uywvm:/etc/resolv.conf --setenv=TERM=vt100 --setenv=SHELL=/bin/bash --setenv=HOME=/var/lib/mock/samba4repo-8-x86_64/root/installation-homedir --setenv=HOSTNAME=mock --setenv=PATH=/usr/bin:/bin:/usr/sbin:/sbin --setenv=PROMPT_COMMAND=printf "\033]0;<mock-chroot>\007" --setenv=PS1=<mock-chroot> \s-\v\$  --setenv=LANG=C.UTF-8 --setenv=LC_MESSAGES=C.UTF-8 --resolv-conf=off /usr/bin/dnf builddep --installroot /var/lib/mock/samba4repo-8-x86_64/root/ --releasever 8 --setopt=deltarpm=False --allowerasing --disableplugin=local --disableplugin=spacewalk --disableplugin=local --disableplugin=spacewalk /var/lib/mock/samba4repo-8-x86_64/root//builddir/build/SRPMS/libtevent-0.10.2-0.1.el8.src.rpm --setopt=tsflags=nocontexts
No matches found for the following disable plugin patterns: local, spacewalk
CentOS-8 - Base                                  22 kB/s | 3.9 kB     00:00
CentOS-8 - AppStream                             11 kB/s | 4.3 kB     00:00
CentOS-8 - PowerTools                            31 kB/s | 4.3 kB     00:00
CentOS-8 - Extras                               4.3 kB/s | 1.5 kB     00:00
epel                                             22 kB/s | 4.7 kB     00:00
samba4repo                                      2.9 MB/s | 3.0 kB     00:00
Package gcc-8.3.1-5.1.el8.x86_64 is already installed.
Error:
 Problem: libtalloc-2.3.1-2.el8.i686 has inferior architecture
  - package libtalloc-devel-2.3.1-2.el8.x86_64 requires libtalloc = 2.3.1-2.el8, but none of the providers can be installed
  - cannot install both libtalloc-2.3.1-0.1.el8.x86_64 and libtalloc-2.3.1-2.el8.x86_64
  - package python3-talloc-2.3.1-0.1.el8.x86_64 requires libtalloc = 2.3.1-0.1.el8, but none of the providers can be installed
  - package python3-talloc-devel-2.3.1-0.1.el8.x86_64 requires python3-talloc = 2.3.1-0.1.el8, but none of the providers can be installed
  - cannot install the best candidate for the job
  - conflicting requests
(try to add '--skip-broken' to skip uninstallable packages or '--nobest' to use not only best candidate packages)

make[1]: *** [Makefile:46: samba4repo-8-x86_64] Error 30
make[1]: Leaving directory '/root/samba4repo/libtevent-0.10.x-srpm'
make: *** [Makefile:100: libtevent-0.10.x-srpm] Error 2

When I grep for the "wrong" version number '2.3.1-2' I only find it in two rpm files:

I hope somebody can help me with the compilation.

Regards, Carsten

nkadel commented 3 years ago

This is why I publish the dependency tree at https://github.com/nkadel/samba4repo, to build it with "mock" and all the modules in dependencies. Start from there, check out all the submodules, and use "make getsrc; make" and you should get RPMs for all the different supported operating systems, including CentOS 8.

Of course, RHEL has decided to keep CentOS from competing with RHEL for commercial use by publishing "CentOS Stream" rather than CentOS 8 point releases, and compiling third party software will be unreliable. Then building things like this will become a crapshoot, since libraries in CentOS 8 Stream may never be available in RHEL 8. So I'd move quickly.

h289072 commented 3 years ago

Thanks for your quick answer, nkadel. "make getsrc; make" in sambe4repo is exactly what I do -- leading to the mentioned error message.

On the other hand if you suggest to switch to CentOS Stream, I can still do that. I'm completely new to CentOS (coming from Debian), so I've just downloaded the current Release -- thinking this would be the thing to do...

Thinking further... In this case I can also stick to Debian. The only reason to switch to CentOS is the better support for ceph. But there is no special support for CentOS Stream, only CentOS 8.

nkadel commented 3 years ago

then I'm confused by the failure. It should be finding libtalloc for x86_64 from samba4repo, I'm not sure why it's seeing libtalloc for i686 from anywhere. Did libtalloc compile soccessfully and there are RPMs for it in samba4repo/* ?

nkadel commented 3 years ago

CentOS 8 Strream is not my friend, and I'm concerned that building third party tools like these will be dangerously unstable under CentOS 8 due to unpredictable and unreliable library updates that may never make it to a production grade operating system from anyone.

h289072 commented 3 years ago

I did not encouter any error message before the mentioned one. There are these rpms in samba4repo/libtalloc-2.3.x-srpm/samba4repo-8-x86_64: libtalloc-2.3.1-0.1.el8.src.rpm libtalloc-2.3.1-0.1.el8.x86_64.rpm libtalloc-debuginfo-2.3.1-0.1.el8.x86_64.rpm libtalloc-debugsource-2.3.1-0.1.el8.x86_64.rpm libtalloc-devel-2.3.1-0.1.el8.x86_64.rpm python3-talloc-2.3.1-0.1.el8.x86_64.rpm python3-talloc-debuginfo-2.3.1-0.1.el8.x86_64.rpm python3-talloc-devel-2.3.1-0.1.el8.x86_64.rpm

h289072 commented 3 years ago

No rpm in samba4repo quires version 2.3.1-2...

[samba4repo]# find . -name "*.rpm" | xargs rpm -qpR | grep 2.3.1 libtalloc = 2.3.1-0.1.fc33 libtalloc-debuginfo(x86-64) = 2.3.1-0.1.fc33 libtalloc = 2.3.1-0.1.fc33 python3-talloc = 2.3.1-0.1.fc33 libtalloc = 2.3.1-0.1.el8 libtalloc = 2.3.1-0.1.el8 python3-talloc = 2.3.1-0.1.el8 libtalloc-debuginfo(x86-64) = 2.3.1-0.1.el8 libtalloc = 2.3.1-0.1.el7 libtalloc = 2.3.1-0.1.el7 python3-talloc = 2.3.1-0.1.el7 libtalloc = 2.3.1-0.1.el7 libtalloc = 2.3.1-0.1.el7 python3-talloc = 2.3.1-0.1.el7 libtalloc = 2.3.1-0.1.el8 libtalloc = 2.3.1-0.1.el8 python3-talloc = 2.3.1-0.1.el8 libtalloc = 2.3.1-0.1.fc33 libtalloc = 2.3.1-0.1.fc33 python3-talloc = 2.3.1-0.1.fc33

nkadel commented 3 years ago

Red Hat are, themselves, packaging libtalloc-2.3.1-2 for RHEL 8. I'll update the Makefile in the srpm repos to skip compilation on CentOS 8 as unneeded until Samba publishes the next update. Red Hat also apparently does not publish the python3-talloc-devel package, for no particular reason I can assess and even though Fedora publishes one.

Give me a day to publish an update for that. I'm trying to restrain colorful language about it.

h289072 commented 3 years ago

Thanks for your support, nkadel. I've just tried out the most recent version of samba4repo. Unfortunately for me the situation is the same. The error hasn't changed at all. This is what I did:

make distclean
git pull
make getsrc
make cfgs
make repos
make
nkadel commented 3 years ago

Dude! I said "give me a day!" The testing cycle on this stuff is nearly six hours on my very modest build setup! You only gave me 18 hours!

h289072 commented 3 years ago

Oops, I'm sorry :-) I just indended to provide feedback...

nkadel commented 3 years ago

Try it now?

nkadel commented 3 years ago

I believe this is resolved with the setting of "priority=" in the samba*.cfg iles.