Looks like the bind-sdb package is not available on Rocky Linux 9.x. Will it be integrated with the next versions?
[root@testsrv ~]$ cat /etc/redhat-release
Rocky Linux release 9.2 (Blue Onyx)
[root@testsrv ~]$ dnf search bind-*
Last metadata expiration check: 2:21:47 ago on Wed 26 Jul 2023 07:31:10 AM CEST.
==================================================================================================================================================== Name Matched: bind-* ====================================================================================================================================================
bind-chroot.x86_64 : A chroot runtime environment for the ISC BIND DNS server, named(8)
bind-devel.i686 : Header files and libraries needed for bind-dyndb-ldap
bind-devel.x86_64 : Header files and libraries needed for bind-dyndb-ldap
bind-dnssec-doc.noarch : Manual pages of DNSSEC utilities
bind-dnssec-utils.x86_64 : DNSSEC keys and zones management utilities
bind-doc.noarch : BIND 9 Administrator Reference Manual
bind-dyndb-ldap.x86_64 : LDAP back-end plug-in for BIND
bind-libs.x86_64 : Libraries used by the BIND DNS packages
bind-libs.i686 : Libraries used by the BIND DNS packages
bind-license.noarch : License of the BIND DNS suite
bind-utils.x86_64 : Utilities for querying DNS name servers
bind-sdb was a subpackage provided in bind 9.11. This is no longer the case. DLZ, which replaces a lot of that functionality and more, is also disabled.
You would need to use DLZ to get what you’re after. Since it’s disabled, the packages aren’t available. You can however try to enable that support. It requires a patch for it to build properly. Below is what I roughly did to make it build with the following caveats:
It’s not clear if it it will actually work
You will have to maintain the bind package yourself (e.g. if we release any updates, you’re on the hook for keeping your packages up to date)
% cd /tmp/
% wget http://dl.rockylinux.org/pub/rocky/9/devel/source/tree/Packages/b/bind-9.16.23-11.el9_2.1.src.rpm
% dnf install epel-release rpm-build -y
% crb enable
% dnf install mock -y
% usermod -aG mock user
% su - user
% rpm -i /tmp/bind-9.16.23-11.el9_2.1.src.rpm
# download the patches
% cd rpmbuild/SOURCES
% wget https://src.fedoraproject.org/rpms/bind/raw/ec7f7e4c125f8d3ac99dd1bba0fba0d4f7639a5d/f/bind-9.16-openldap-2.6.patch
# modify the spec file (below is a diff)
54c54
< Release: 11%{?dist}.1
---
> Release: 11%{?dist}.1.1
128a129
> Patch9998: bind-9.16-openldap-2.6.patch
443a446
> %patch9998 -p1
1166a1171,1173
> * Wed Jul 26 2023 Louis Abel <label@rockylinux.org> - 32:9.16.23-11.1.1
> - Add patches for DLZ support
>
% rpmbuild -bs ~/rpmbuild/SPECS/bind.spec
Wrote: /home/user/rpmbuild/SRPMS/bind-9.16.23-11.el9.1.1.src.rpm
% mock -r rocky-9-x86_64 \
/home/user/rpmbuild/SRPMS/bind-9.16.23-11.el9.1.1.src.rpm \
--enablerepo=devel --with=DLZ --define 'dist .el9_2.dlz'
# this produces the following packages
Wrote: /builddir/build/RPMS/bind-libs-9.16.23-11.el9_2.dlz.1.1.x86_64.rpm
Wrote: /builddir/build/RPMS/bind-debuginfo-9.16.23-11.el9_2.dlz.1.1.x86_64.rpm
Wrote: /builddir/build/RPMS/bind-doc-9.16.23-11.el9_2.dlz.1.1.noarch.rpm
Wrote: /builddir/build/RPMS/bind-9.16.23-11.el9_2.dlz.1.1.x86_64.rpm
Wrote: /builddir/build/RPMS/bind-devel-9.16.23-11.el9_2.dlz.1.1.x86_64.rpm
Wrote: /builddir/build/RPMS/bind-utils-debuginfo-9.16.23-11.el9_2.dlz.1.1.x86_64.rpm
Wrote: /builddir/build/RPMS/bind-dnssec-utils-debuginfo-9.16.23-11.el9_2.dlz.1.1.x86_64.rpm
Wrote: /builddir/build/RPMS/bind-dnssec-utils-9.16.23-11.el9_2.dlz.1.1.x86_64.rpm
Wrote: /builddir/build/RPMS/bind-utils-9.16.23-11.el9_2.dlz.1.1.x86_64.rpm
Wrote: /builddir/build/RPMS/python3-bind-9.16.23-11.el9_2.dlz.1.1.noarch.rpm
Wrote: /builddir/build/RPMS/bind-dlz-mysql-debuginfo-9.16.23-11.el9_2.dlz.1.1.x86_64.rpm
Wrote: /builddir/build/RPMS/bind-dlz-mysql-9.16.23-11.el9_2.dlz.1.1.x86_64.rpm
Wrote: /builddir/build/RPMS/bind-dlz-ldap-debuginfo-9.16.23-11.el9_2.dlz.1.1.x86_64.rpm
Wrote: /builddir/build/RPMS/bind-dlz-sqlite3-debuginfo-9.16.23-11.el9_2.dlz.1.1.x86_64.rpm
Wrote: /builddir/build/RPMS/bind-dlz-ldap-9.16.23-11.el9_2.dlz.1.1.x86_64.rpm
Wrote: /builddir/build/RPMS/bind-dlz-sqlite3-9.16.23-11.el9_2.dlz.1.1.x86_64.rpm
Wrote: /builddir/build/RPMS/bind-dlz-filesystem-debuginfo-9.16.23-11.el9_2.dlz.1.1.x86_64.rpm
Wrote: /builddir/build/RPMS/bind-dlz-filesystem-9.16.23-11.el9_2.dlz.1.1.x86_64.rpm
Wrote: /builddir/build/RPMS/bind-dnssec-doc-9.16.23-11.el9_2.dlz.1.1.noarch.rpm
Wrote: /builddir/build/RPMS/bind-libs-debuginfo-9.16.23-11.el9_2.dlz.1.1.x86_64.rpm
Wrote: /builddir/build/RPMS/bind-chroot-9.16.23-11.el9_2.dlz.1.1.x86_64.rpm
Wrote: /builddir/build/RPMS/bind-license-9.16.23-11.el9_2.dlz.1.1.noarch.rpm
Wrote: /builddir/build/RPMS/bind-debugsource-9.16.23-11.el9_2.dlz.1.1.x86_64.rpm
With that being said, there have been some talks about starting a “fast track” like SIG to have modified packages like this or even upgraded packages. This might be one (of many) candidates that could make it, but no guarantees.
When I start named, I get the following error :
Jul 26 12:46:14 dc03.tad.prolune.ch named[41826]: Loading ‘ldap’ using driver ldap
Jul 26 12:46:14 dc03.tad.prolune.ch named[41826]: unsupported DLZ database driver ‘ldap’. ldap not loaded.
Jul 26 12:46:14 dc03.tad.prolune.ch named[41826]: loading configuration: not found
Jul 26 12:46:14 dc03.tad.prolune.ch named[41826]: exiting (due to fatal error)
Do you have any idea what it is? Should I install another package?
I’m not sure what the issue could be here. As I said, I cannot guarantee what I did to make it build to allow it to work. There’s another patch you can add to see if that helps, but there’s no guarantees.
As an aside, if you are just looking to use bind with ldap, I would use the regular bind packages from our repositories and install bind-dyndb-ldap.
I don’t know when to apply this last patch? the contrib/dlz/modules/ldap/dlz_ldap_dynamic.c file is produced with the last command "mock -r rocky-9-x86_64 …" in :
This file is generated at the same time as the rpm files which are put in /var/lib/mock /rocky-9-x86_64/result.
I don’t know how to apply the 2nd patch with the first. When to edit the dlz_ldap_dynamic.c file when I will directly install the bind-xxx.x86_64.rpm I need?