I know this is an old thread, but …
FWIW, I needed this (trivial) patch to get the CentOS 8 SRPM rebuilt to install on Rocky Linux 9. The CentOS 8 RPM installation fails with:
[root@backup01 build]# dnf install ./urbackup-server-2.5.33.0-1.1.x86_64.rpm
Last metadata expiration check: 2:34:16 ago on Wed 13 Nov 2024 05:53:52 PM EST.
Error:
Problem: conflicting requests
- nothing provides /bin/chown needed by urbackup-server-2.5.33.0-1.1.x86_64 from @commandline
- nothing provides /bin/mkdir needed by urbackup-server-2.5.33.0-1.1.x86_64 from @commandline
(try to add '--skip-broken' to skip uninstallable packages or '--nobest' to use not only best candidate packages)
(No, I don’t like --skip-broken/–nobest/other “forceme” options)
Trivial Patch:
*** urbackup-server.spec.org 2024-11-13 20:31:16.610647213 -0500
--- urbackup-server.spec 2024-11-13 20:32:14.843657453 -0500
***************
*** 61,67 ****
Requires: libguestfs-tools
%endif
! %if 0%{?fedora} >= 17
Requires(post): /usr/bin/chown
Requires(pre): /usr/bin/mkdir
Requires(pre): /usr/bin/sed
--- 61,67 ----
Requires: libguestfs-tools
%endif
! %if 0%{?fedora} >= 17 || 0%{?el9}
Requires(post): /usr/bin/chown
Requires(pre): /usr/bin/mkdir
Requires(pre): /usr/bin/sed
I’m not entirely certain what the point of explicitly listing chown/mkdir in the Requires is? I can’t think of any Linux (or Unix) system I’ve ever seen without chown/mkdir. sed perhaps, but not chown/mkdir.
Anyways, additionally, the system needed the following RPM’s installed to build (from a relatively minimal server only install):
dnf -y install gcc
dnf -y install gcc-c++
dnf -y install rpm-build
dnf -y install autoconf automake
dnf -y install libcurl-devel
dnf -y install zlib-devel
dnf -y install libzstd-devel
dnf -y --enablerepo=crb install fuse-devel
The rebuilt RPM seems to work in my (albeit limited) testing so far, and the configure output during rpmbuild seem reasonable.
Appears coreutils fails to provide mkdir, but does provide chown, despite the installation error message.
[root@backup01 ~]# rpm -q --provides coreutils
/bin/cat
/bin/chmod
/bin/echo
/bin/ln
/bin/rm
/bin/touch
bundled(gnulib)
coreutils = 8.32-35.el9
coreutils(x86-64) = 8.32-35.el9
coreutils-full = 8.32-35.el9
libstdbuf.so()(64bit)
Go figure…
Anyways, hope it helps someone… perhaps we could get the patch above applied to the EL8 build, and then abuse the EL8 repo?
Cheers,
David