From fe3bde8f623ef5d55d22e5e69a5fabb730ec77e6 Mon Sep 17 00:00:00 2001 From: Ralph Boehme Date: Thu, 16 Jan 2025 09:35:22 +0100 Subject: [PATCH] build: Detect libevent Signed-off-by: Ralph Boehme Reviewed-by: Guenther Deschner --- .gitlab-ci-main.yml | 2 +- bootstrap/config.py | 1 + bootstrap/generated-dists/centos9s/bootstrap.sh | 1 + bootstrap/generated-dists/centos9s/packages.yml | 1 + .../generated-dists/debian11-32bit/bootstrap.sh | 1 + .../generated-dists/debian11-32bit/packages.yml | 1 + bootstrap/generated-dists/debian11/bootstrap.sh | 1 + bootstrap/generated-dists/debian11/packages.yml | 1 + .../generated-dists/debian12-32bit/bootstrap.sh | 1 + .../generated-dists/debian12-32bit/packages.yml | 1 + bootstrap/generated-dists/debian12/bootstrap.sh | 1 + bootstrap/generated-dists/debian12/packages.yml | 1 + bootstrap/generated-dists/fedora41/bootstrap.sh | 1 + bootstrap/generated-dists/fedora41/packages.yml | 1 + .../generated-dists/opensuse155/bootstrap.sh | 1 + .../generated-dists/opensuse155/packages.yml | 1 + bootstrap/generated-dists/rocky8/bootstrap.sh | 1 + bootstrap/generated-dists/rocky8/packages.yml | 1 + .../generated-dists/ubuntu1804-32bit/bootstrap.sh | 1 + .../generated-dists/ubuntu1804-32bit/packages.yml | 1 + bootstrap/generated-dists/ubuntu1804/bootstrap.sh | 1 + bootstrap/generated-dists/ubuntu1804/packages.yml | 1 + bootstrap/generated-dists/ubuntu2004/bootstrap.sh | 1 + bootstrap/generated-dists/ubuntu2004/packages.yml | 1 + bootstrap/generated-dists/ubuntu2204/bootstrap.sh | 1 + bootstrap/generated-dists/ubuntu2204/packages.yml | 1 + bootstrap/sha1sum.txt | 2 +- script/autobuild.py | 7 ++++--- source3/wscript | 15 +++++++++++++++ 29 files changed, 46 insertions(+), 5 deletions(-) diff --git a/.gitlab-ci-main.yml b/.gitlab-ci-main.yml index df3ec8ae984..216e996f42d 100644 --- a/.gitlab-ci-main.yml +++ b/.gitlab-ci-main.yml @@ -47,7 +47,7 @@ variables: # Set this to the contents of bootstrap/sha1sum.txt # which is generated by bootstrap/template.py --render # - SAMBA_CI_CONTAINER_TAG: d20548dec714e202867b593f5e19f3004f7a2457 + SAMBA_CI_CONTAINER_TAG: 26a734ea226b4fd32141ae950af16f75f290645f # # We use the ubuntu2204 image as default as # it matches what we have on atb-devel-224 diff --git a/bootstrap/config.py b/bootstrap/config.py index ae94c75bfa0..dbc0f96a539 100644 --- a/bootstrap/config.py +++ b/bootstrap/config.py @@ -116,6 +116,7 @@ PKGS = [ ('libglib2.0-dev', 'glib2-devel'), ('libicu-dev', 'libicu-devel'), ('heimdal-multidev', ''), + ('libevent-dev', 'libevent-devel'), # NAME1, NAME2 # for debian, locales provide locale support with language packs diff --git a/bootstrap/generated-dists/centos9s/bootstrap.sh b/bootstrap/generated-dists/centos9s/bootstrap.sh index e3ad1344985..9181f97d278 100755 --- a/bootstrap/generated-dists/centos9s/bootstrap.sh +++ b/bootstrap/generated-dists/centos9s/bootstrap.sh @@ -64,6 +64,7 @@ dnf install -y \ libblkid-devel \ libbsd-devel \ libcap-devel \ + libevent-devel \ libicu-devel \ libpcap-devel \ libtasn1-devel \ diff --git a/bootstrap/generated-dists/centos9s/packages.yml b/bootstrap/generated-dists/centos9s/packages.yml index 4a4f99b8564..b78799a24ff 100644 --- a/bootstrap/generated-dists/centos9s/packages.yml +++ b/bootstrap/generated-dists/centos9s/packages.yml @@ -45,6 +45,7 @@ packages: - libblkid-devel - libbsd-devel - libcap-devel + - libevent-devel - libicu-devel - libpcap-devel - libtasn1-devel diff --git a/bootstrap/generated-dists/debian11-32bit/bootstrap.sh b/bootstrap/generated-dists/debian11-32bit/bootstrap.sh index b7d5f87018b..a32636de32f 100755 --- a/bootstrap/generated-dists/debian11-32bit/bootstrap.sh +++ b/bootstrap/generated-dists/debian11-32bit/bootstrap.sh @@ -53,6 +53,7 @@ apt-get -y install \ libclang-dev \ libcups2-dev \ libdbus-1-dev \ + libevent-dev \ libglib2.0-dev \ libgnutls28-dev \ libgpgme11-dev \ diff --git a/bootstrap/generated-dists/debian11-32bit/packages.yml b/bootstrap/generated-dists/debian11-32bit/packages.yml index b39e3c31dae..f2249eba899 100644 --- a/bootstrap/generated-dists/debian11-32bit/packages.yml +++ b/bootstrap/generated-dists/debian11-32bit/packages.yml @@ -42,6 +42,7 @@ packages: - libclang-dev - libcups2-dev - libdbus-1-dev + - libevent-dev - libglib2.0-dev - libgnutls28-dev - libgpgme11-dev diff --git a/bootstrap/generated-dists/debian11/bootstrap.sh b/bootstrap/generated-dists/debian11/bootstrap.sh index b7d5f87018b..a32636de32f 100755 --- a/bootstrap/generated-dists/debian11/bootstrap.sh +++ b/bootstrap/generated-dists/debian11/bootstrap.sh @@ -53,6 +53,7 @@ apt-get -y install \ libclang-dev \ libcups2-dev \ libdbus-1-dev \ + libevent-dev \ libglib2.0-dev \ libgnutls28-dev \ libgpgme11-dev \ diff --git a/bootstrap/generated-dists/debian11/packages.yml b/bootstrap/generated-dists/debian11/packages.yml index b39e3c31dae..f2249eba899 100644 --- a/bootstrap/generated-dists/debian11/packages.yml +++ b/bootstrap/generated-dists/debian11/packages.yml @@ -42,6 +42,7 @@ packages: - libclang-dev - libcups2-dev - libdbus-1-dev + - libevent-dev - libglib2.0-dev - libgnutls28-dev - libgpgme11-dev diff --git a/bootstrap/generated-dists/debian12-32bit/bootstrap.sh b/bootstrap/generated-dists/debian12-32bit/bootstrap.sh index 58d3866fdf2..ba78ddddc12 100755 --- a/bootstrap/generated-dists/debian12-32bit/bootstrap.sh +++ b/bootstrap/generated-dists/debian12-32bit/bootstrap.sh @@ -53,6 +53,7 @@ apt-get -y install \ libclang-dev \ libcups2-dev \ libdbus-1-dev \ + libevent-dev \ libglib2.0-dev \ libgnutls28-dev \ libgpgme11-dev \ diff --git a/bootstrap/generated-dists/debian12-32bit/packages.yml b/bootstrap/generated-dists/debian12-32bit/packages.yml index c7756de7cbd..61058195154 100644 --- a/bootstrap/generated-dists/debian12-32bit/packages.yml +++ b/bootstrap/generated-dists/debian12-32bit/packages.yml @@ -42,6 +42,7 @@ packages: - libclang-dev - libcups2-dev - libdbus-1-dev + - libevent-dev - libglib2.0-dev - libgnutls28-dev - libgpgme11-dev diff --git a/bootstrap/generated-dists/debian12/bootstrap.sh b/bootstrap/generated-dists/debian12/bootstrap.sh index 58d3866fdf2..ba78ddddc12 100755 --- a/bootstrap/generated-dists/debian12/bootstrap.sh +++ b/bootstrap/generated-dists/debian12/bootstrap.sh @@ -53,6 +53,7 @@ apt-get -y install \ libclang-dev \ libcups2-dev \ libdbus-1-dev \ + libevent-dev \ libglib2.0-dev \ libgnutls28-dev \ libgpgme11-dev \ diff --git a/bootstrap/generated-dists/debian12/packages.yml b/bootstrap/generated-dists/debian12/packages.yml index c7756de7cbd..61058195154 100644 --- a/bootstrap/generated-dists/debian12/packages.yml +++ b/bootstrap/generated-dists/debian12/packages.yml @@ -42,6 +42,7 @@ packages: - libclang-dev - libcups2-dev - libdbus-1-dev + - libevent-dev - libglib2.0-dev - libgnutls28-dev - libgpgme11-dev diff --git a/bootstrap/generated-dists/fedora41/bootstrap.sh b/bootstrap/generated-dists/fedora41/bootstrap.sh index ae7e1a5d891..b985b14d754 100755 --- a/bootstrap/generated-dists/fedora41/bootstrap.sh +++ b/bootstrap/generated-dists/fedora41/bootstrap.sh @@ -61,6 +61,7 @@ dnf install -y \ libbsd-devel \ libcap-devel \ libcephfs-devel \ + libevent-devel \ libicu-devel \ libpcap-devel \ libtasn1-devel \ diff --git a/bootstrap/generated-dists/fedora41/packages.yml b/bootstrap/generated-dists/fedora41/packages.yml index 427b236d394..930e0a98652 100644 --- a/bootstrap/generated-dists/fedora41/packages.yml +++ b/bootstrap/generated-dists/fedora41/packages.yml @@ -50,6 +50,7 @@ packages: - libbsd-devel - libcap-devel - libcephfs-devel + - libevent-devel - libicu-devel - libpcap-devel - libtasn1-devel diff --git a/bootstrap/generated-dists/opensuse155/bootstrap.sh b/bootstrap/generated-dists/opensuse155/bootstrap.sh index f94b52bb244..bcf8fbca90b 100755 --- a/bootstrap/generated-dists/opensuse155/bootstrap.sh +++ b/bootstrap/generated-dists/opensuse155/bootstrap.sh @@ -58,6 +58,7 @@ zypper --non-interactive install \ libbsd-devel \ libcap-devel \ libcephfs-devel \ + libevent-devel \ libicu-devel \ libjansson-devel \ libpcap-devel \ diff --git a/bootstrap/generated-dists/opensuse155/packages.yml b/bootstrap/generated-dists/opensuse155/packages.yml index 866d4d376b0..6bb490ce5be 100644 --- a/bootstrap/generated-dists/opensuse155/packages.yml +++ b/bootstrap/generated-dists/opensuse155/packages.yml @@ -46,6 +46,7 @@ packages: - libbsd-devel - libcap-devel - libcephfs-devel + - libevent-devel - libicu-devel - libjansson-devel - libpcap-devel diff --git a/bootstrap/generated-dists/rocky8/bootstrap.sh b/bootstrap/generated-dists/rocky8/bootstrap.sh index 9faf66829e2..87d62646820 100755 --- a/bootstrap/generated-dists/rocky8/bootstrap.sh +++ b/bootstrap/generated-dists/rocky8/bootstrap.sh @@ -71,6 +71,7 @@ yum install -y \ libbsd-devel \ libcap-devel \ libcephfs-devel \ + libevent-devel \ libicu-devel \ libpcap-devel \ libtasn1-devel \ diff --git a/bootstrap/generated-dists/rocky8/packages.yml b/bootstrap/generated-dists/rocky8/packages.yml index 7b7ed9e6967..b7ee2c54c4a 100644 --- a/bootstrap/generated-dists/rocky8/packages.yml +++ b/bootstrap/generated-dists/rocky8/packages.yml @@ -47,6 +47,7 @@ packages: - libbsd-devel - libcap-devel - libcephfs-devel + - libevent-devel - libicu-devel - libpcap-devel - libtasn1-devel diff --git a/bootstrap/generated-dists/ubuntu1804-32bit/bootstrap.sh b/bootstrap/generated-dists/ubuntu1804-32bit/bootstrap.sh index 53d82f3bb79..ac716b38593 100755 --- a/bootstrap/generated-dists/ubuntu1804-32bit/bootstrap.sh +++ b/bootstrap/generated-dists/ubuntu1804-32bit/bootstrap.sh @@ -55,6 +55,7 @@ apt-get -y install \ libclang-dev \ libcups2-dev \ libdbus-1-dev \ + libevent-dev \ libglib2.0-dev \ libgnutls28-dev \ libgpgme11-dev \ diff --git a/bootstrap/generated-dists/ubuntu1804-32bit/packages.yml b/bootstrap/generated-dists/ubuntu1804-32bit/packages.yml index cfa24e50a79..eb8e7ad4053 100644 --- a/bootstrap/generated-dists/ubuntu1804-32bit/packages.yml +++ b/bootstrap/generated-dists/ubuntu1804-32bit/packages.yml @@ -44,6 +44,7 @@ packages: - libclang-dev - libcups2-dev - libdbus-1-dev + - libevent-dev - libglib2.0-dev - libgnutls28-dev - libgpgme11-dev diff --git a/bootstrap/generated-dists/ubuntu1804/bootstrap.sh b/bootstrap/generated-dists/ubuntu1804/bootstrap.sh index 53d82f3bb79..ac716b38593 100755 --- a/bootstrap/generated-dists/ubuntu1804/bootstrap.sh +++ b/bootstrap/generated-dists/ubuntu1804/bootstrap.sh @@ -55,6 +55,7 @@ apt-get -y install \ libclang-dev \ libcups2-dev \ libdbus-1-dev \ + libevent-dev \ libglib2.0-dev \ libgnutls28-dev \ libgpgme11-dev \ diff --git a/bootstrap/generated-dists/ubuntu1804/packages.yml b/bootstrap/generated-dists/ubuntu1804/packages.yml index cfa24e50a79..eb8e7ad4053 100644 --- a/bootstrap/generated-dists/ubuntu1804/packages.yml +++ b/bootstrap/generated-dists/ubuntu1804/packages.yml @@ -44,6 +44,7 @@ packages: - libclang-dev - libcups2-dev - libdbus-1-dev + - libevent-dev - libglib2.0-dev - libgnutls28-dev - libgpgme11-dev diff --git a/bootstrap/generated-dists/ubuntu2004/bootstrap.sh b/bootstrap/generated-dists/ubuntu2004/bootstrap.sh index 53d82f3bb79..ac716b38593 100755 --- a/bootstrap/generated-dists/ubuntu2004/bootstrap.sh +++ b/bootstrap/generated-dists/ubuntu2004/bootstrap.sh @@ -55,6 +55,7 @@ apt-get -y install \ libclang-dev \ libcups2-dev \ libdbus-1-dev \ + libevent-dev \ libglib2.0-dev \ libgnutls28-dev \ libgpgme11-dev \ diff --git a/bootstrap/generated-dists/ubuntu2004/packages.yml b/bootstrap/generated-dists/ubuntu2004/packages.yml index cfa24e50a79..eb8e7ad4053 100644 --- a/bootstrap/generated-dists/ubuntu2004/packages.yml +++ b/bootstrap/generated-dists/ubuntu2004/packages.yml @@ -44,6 +44,7 @@ packages: - libclang-dev - libcups2-dev - libdbus-1-dev + - libevent-dev - libglib2.0-dev - libgnutls28-dev - libgpgme11-dev diff --git a/bootstrap/generated-dists/ubuntu2204/bootstrap.sh b/bootstrap/generated-dists/ubuntu2204/bootstrap.sh index 0b9fd98c480..669d53ea747 100755 --- a/bootstrap/generated-dists/ubuntu2204/bootstrap.sh +++ b/bootstrap/generated-dists/ubuntu2204/bootstrap.sh @@ -55,6 +55,7 @@ apt-get -y install \ libclang-dev \ libcups2-dev \ libdbus-1-dev \ + libevent-dev \ libglib2.0-dev \ libgnutls28-dev \ libgpgme11-dev \ diff --git a/bootstrap/generated-dists/ubuntu2204/packages.yml b/bootstrap/generated-dists/ubuntu2204/packages.yml index 23e416fc1aa..0343ebe0915 100644 --- a/bootstrap/generated-dists/ubuntu2204/packages.yml +++ b/bootstrap/generated-dists/ubuntu2204/packages.yml @@ -44,6 +44,7 @@ packages: - libclang-dev - libcups2-dev - libdbus-1-dev + - libevent-dev - libglib2.0-dev - libgnutls28-dev - libgpgme11-dev diff --git a/bootstrap/sha1sum.txt b/bootstrap/sha1sum.txt index 56996ed8632..39ed53b31ca 100644 --- a/bootstrap/sha1sum.txt +++ b/bootstrap/sha1sum.txt @@ -1 +1 @@ -d20548dec714e202867b593f5e19f3004f7a2457 +26a734ea226b4fd32141ae950af16f75f290645f diff --git a/script/autobuild.py b/script/autobuild.py index 8817968d760..ca227fc088b 100755 --- a/script/autobuild.py +++ b/script/autobuild.py @@ -176,7 +176,7 @@ builddirs = { } ctdb_configure_params = " --enable-developer ${PREFIX}" -samba_configure_params = " ${ENABLE_COVERAGE} ${PREFIX} --with-profiling-data" +samba_configure_params = " ${ENABLE_COVERAGE} ${PREFIX} --with-profiling-data --with-libevent" # We cannot configure himmelblau on old systems missing openssl 3, with glibc # older than version 2.32, or when cargo isn't available. @@ -879,6 +879,7 @@ tasks = { "./configure.developer ${PREFIX} " "--with-selftest-prefix=./bin/ab " "--with-cluster-support " + "--with-libevent " "--bundled-libraries=!tdb"), ("samba-make", "make"), ("samba-check", "./bin/smbd --configfile=/dev/null -b | grep CLUSTER_SUPPORT"), @@ -1039,7 +1040,7 @@ tasks = { "sequence": [ # build the fuzzers (static) via the oss-fuzz script ("fuzzers-mkdir-prefix", "mkdir -p ${PREFIX_DIR}"), - ("fuzzers-build", "OUT=${PREFIX_DIR} LIB_FUZZING_ENGINE= SANITIZER=address CXX= CFLAGS= ADDITIONAL_LDFLAGS='-fuse-ld=bfd' ./lib/fuzzing/oss-fuzz/build_samba.sh --enable-afl-fuzzer"), + ("fuzzers-build", "OUT=${PREFIX_DIR} LIB_FUZZING_ENGINE= SANITIZER=address CXX= CFLAGS= ADDITIONAL_LDFLAGS='-fuse-ld=bfd' ./lib/fuzzing/oss-fuzz/build_samba.sh --enable-afl-fuzzer --with-libevent"), ], }, @@ -1118,7 +1119,7 @@ tasks = { "sequence": [ ("random-sleep", random_sleep(300, 900)), - ("configure", "./configure.developer ${ENABLE_COVERAGE} ${PREFIX} --with-profiling-data --disable-python --without-ad-dc"), + ("configure", "./configure.developer ${ENABLE_COVERAGE} ${PREFIX} --with-profiling-data --disable-python --without-ad-dc --with-libevent"), ("make", "make -j"), ("find-python", "script/find_python.sh ${PREFIX}"), ("test", "make test-nopython"), diff --git a/source3/wscript b/source3/wscript index bf77040fd4f..6d9fbd6491c 100644 --- a/source3/wscript +++ b/source3/wscript @@ -77,6 +77,7 @@ def options(opt): opt.samba_add_onoff_option('fam', default=None) # None means autodetection opt.samba_add_onoff_option('profiling-data', default=False) opt.samba_add_onoff_option('libarchive', default=True) + opt.samba_add_onoff_option('libevent', default=False) opt.samba_add_onoff_option('cluster-support', default=False) @@ -204,6 +205,20 @@ long ret = splice(0,0,1,0,400,SPLICE_F_MOVE); raise Errors.WafError('libarchive library required for ' '--enable-selftest') + # check for libevent, needed for prometheus http endpoint + conf.SET_TARGET_TYPE('event', 'EMPTY') + if Options.options.with_libevent is True: + Logs.info("Checking for libevent existence") + if conf.CHECK_HEADERS('event2/http.h') and conf.CHECK_LIB('event', shlib=True): + conf.CHECK_FUNCS_IN('evhttp_new', 'event') + if not conf.CONFIG_SET('HAVE_EVHTTP_NEW'): + conf.fatal("libevent support not found. " + "Try installing libevent-dev or libevent-devel. " + "libevent support is required for the prometheus " + "endpoint") + elif conf.CONFIG_GET('ENABLE_SELFTEST'): + raise Errors.WafError('libevent library required for ' + '--enable-selftest') # check for DMAPI libs if Options.options.with_dmapi == False: