]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
build: Detect libevent
authorRalph Boehme <slow@samba.org>
Thu, 16 Jan 2025 08:35:22 +0000 (09:35 +0100)
committerGünther Deschner <gd@samba.org>
Fri, 11 Apr 2025 18:46:40 +0000 (18:46 +0000)
Signed-off-by: Ralph Boehme <slow@samba.org>
Reviewed-by: Guenther Deschner <gd@samba.org>
29 files changed:
.gitlab-ci-main.yml
bootstrap/config.py
bootstrap/generated-dists/centos9s/bootstrap.sh
bootstrap/generated-dists/centos9s/packages.yml
bootstrap/generated-dists/debian11-32bit/bootstrap.sh
bootstrap/generated-dists/debian11-32bit/packages.yml
bootstrap/generated-dists/debian11/bootstrap.sh
bootstrap/generated-dists/debian11/packages.yml
bootstrap/generated-dists/debian12-32bit/bootstrap.sh
bootstrap/generated-dists/debian12-32bit/packages.yml
bootstrap/generated-dists/debian12/bootstrap.sh
bootstrap/generated-dists/debian12/packages.yml
bootstrap/generated-dists/fedora41/bootstrap.sh
bootstrap/generated-dists/fedora41/packages.yml
bootstrap/generated-dists/opensuse155/bootstrap.sh
bootstrap/generated-dists/opensuse155/packages.yml
bootstrap/generated-dists/rocky8/bootstrap.sh
bootstrap/generated-dists/rocky8/packages.yml
bootstrap/generated-dists/ubuntu1804-32bit/bootstrap.sh
bootstrap/generated-dists/ubuntu1804-32bit/packages.yml
bootstrap/generated-dists/ubuntu1804/bootstrap.sh
bootstrap/generated-dists/ubuntu1804/packages.yml
bootstrap/generated-dists/ubuntu2004/bootstrap.sh
bootstrap/generated-dists/ubuntu2004/packages.yml
bootstrap/generated-dists/ubuntu2204/bootstrap.sh
bootstrap/generated-dists/ubuntu2204/packages.yml
bootstrap/sha1sum.txt
script/autobuild.py
source3/wscript

index df3ec8ae98408ef72dd003cf2b4c44e98931cd3b..216e996f42d9c0dc87ca2ca141ffcdfcb9f051b4 100644 (file)
@@ -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
index ae94c75bfa025dd8e356e04c7697e473bf79d0b9..dbc0f96a539a5c691dc7ec1582a0192f4db048f9 100644 (file)
@@ -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
index e3ad1344985ea438d7f265660d7ba195d8165b43..9181f97d278c827c3bc593718a3fc33dc6ed08fc 100755 (executable)
@@ -64,6 +64,7 @@ dnf install -y \
     libblkid-devel \
     libbsd-devel \
     libcap-devel \
+    libevent-devel \
     libicu-devel \
     libpcap-devel \
     libtasn1-devel \
index 4a4f99b8564a2688a4649b752238e7bab30c6c89..b78799a24ffe15bb154e6e472879ea1318acdf45 100644 (file)
@@ -45,6 +45,7 @@ packages:
   - libblkid-devel
   - libbsd-devel
   - libcap-devel
+  - libevent-devel
   - libicu-devel
   - libpcap-devel
   - libtasn1-devel
index b7d5f87018b0f2a4139723c9300b8458472fe1df..a32636de32f0c73a8a03efb68c65411f05df10f6 100755 (executable)
@@ -53,6 +53,7 @@ apt-get -y install \
     libclang-dev \
     libcups2-dev \
     libdbus-1-dev \
+    libevent-dev \
     libglib2.0-dev \
     libgnutls28-dev \
     libgpgme11-dev \
index b39e3c31dae51ae738274ff71e1432a051a53660..f2249eba899922b9e30b564072771a86e2573810 100644 (file)
@@ -42,6 +42,7 @@ packages:
   - libclang-dev
   - libcups2-dev
   - libdbus-1-dev
+  - libevent-dev
   - libglib2.0-dev
   - libgnutls28-dev
   - libgpgme11-dev
index b7d5f87018b0f2a4139723c9300b8458472fe1df..a32636de32f0c73a8a03efb68c65411f05df10f6 100755 (executable)
@@ -53,6 +53,7 @@ apt-get -y install \
     libclang-dev \
     libcups2-dev \
     libdbus-1-dev \
+    libevent-dev \
     libglib2.0-dev \
     libgnutls28-dev \
     libgpgme11-dev \
index b39e3c31dae51ae738274ff71e1432a051a53660..f2249eba899922b9e30b564072771a86e2573810 100644 (file)
@@ -42,6 +42,7 @@ packages:
   - libclang-dev
   - libcups2-dev
   - libdbus-1-dev
+  - libevent-dev
   - libglib2.0-dev
   - libgnutls28-dev
   - libgpgme11-dev
index 58d3866fdf25aaf558535354658da4fc70f6a4be..ba78ddddc128aba61169f0c4237e829381d9b306 100755 (executable)
@@ -53,6 +53,7 @@ apt-get -y install \
     libclang-dev \
     libcups2-dev \
     libdbus-1-dev \
+    libevent-dev \
     libglib2.0-dev \
     libgnutls28-dev \
     libgpgme11-dev \
index c7756de7cbdc27a52c3a9f7c1c621e7c54595554..6105819515415b57c8ec0785258807232c2d5f81 100644 (file)
@@ -42,6 +42,7 @@ packages:
   - libclang-dev
   - libcups2-dev
   - libdbus-1-dev
+  - libevent-dev
   - libglib2.0-dev
   - libgnutls28-dev
   - libgpgme11-dev
index 58d3866fdf25aaf558535354658da4fc70f6a4be..ba78ddddc128aba61169f0c4237e829381d9b306 100755 (executable)
@@ -53,6 +53,7 @@ apt-get -y install \
     libclang-dev \
     libcups2-dev \
     libdbus-1-dev \
+    libevent-dev \
     libglib2.0-dev \
     libgnutls28-dev \
     libgpgme11-dev \
index c7756de7cbdc27a52c3a9f7c1c621e7c54595554..6105819515415b57c8ec0785258807232c2d5f81 100644 (file)
@@ -42,6 +42,7 @@ packages:
   - libclang-dev
   - libcups2-dev
   - libdbus-1-dev
+  - libevent-dev
   - libglib2.0-dev
   - libgnutls28-dev
   - libgpgme11-dev
index ae7e1a5d891b2d6abac76ee432cd0ba411982126..b985b14d754118f2d8fb7d4cd590d3a58dbad69f 100755 (executable)
@@ -61,6 +61,7 @@ dnf install -y \
     libbsd-devel \
     libcap-devel \
     libcephfs-devel \
+    libevent-devel \
     libicu-devel \
     libpcap-devel \
     libtasn1-devel \
index 427b236d394222ae09ffe874a967510c64b59e07..930e0a986524c02fd18b82a77f1b56f08476dd0c 100644 (file)
@@ -50,6 +50,7 @@ packages:
   - libbsd-devel
   - libcap-devel
   - libcephfs-devel
+  - libevent-devel
   - libicu-devel
   - libpcap-devel
   - libtasn1-devel
index f94b52bb244cb65c926d6eb7edb7fe39576ca645..bcf8fbca90b110187bed93d60c0e610b0bc31fcb 100755 (executable)
@@ -58,6 +58,7 @@ zypper --non-interactive install \
     libbsd-devel \
     libcap-devel \
     libcephfs-devel \
+    libevent-devel \
     libicu-devel \
     libjansson-devel \
     libpcap-devel \
index 866d4d376b00591f8445b5fa02981bbdc7fbce76..6bb490ce5be3f7f72c8a47dd6b6c3ac592a25de3 100644 (file)
@@ -46,6 +46,7 @@ packages:
   - libbsd-devel
   - libcap-devel
   - libcephfs-devel
+  - libevent-devel
   - libicu-devel
   - libjansson-devel
   - libpcap-devel
index 9faf66829e27278f7d631a5b38bcefb3bcf22f25..87d6264682055808e793b246a08d3b21eaeba056 100755 (executable)
@@ -71,6 +71,7 @@ yum install -y \
     libbsd-devel \
     libcap-devel \
     libcephfs-devel \
+    libevent-devel \
     libicu-devel \
     libpcap-devel \
     libtasn1-devel \
index 7b7ed9e6967fa8d46defdb05eaa6570c12692b82..b7ee2c54c4a7aafa529c5ca315b03b596b3ee2c8 100644 (file)
@@ -47,6 +47,7 @@ packages:
   - libbsd-devel
   - libcap-devel
   - libcephfs-devel
+  - libevent-devel
   - libicu-devel
   - libpcap-devel
   - libtasn1-devel
index 53d82f3bb79893a4732bd60294aa74087af694d2..ac716b38593e286655a1ef2c46b1643f2da1ac26 100755 (executable)
@@ -55,6 +55,7 @@ apt-get -y install \
     libclang-dev \
     libcups2-dev \
     libdbus-1-dev \
+    libevent-dev \
     libglib2.0-dev \
     libgnutls28-dev \
     libgpgme11-dev \
index cfa24e50a79b5b4b2d6aa27aa6a61e897e0f711a..eb8e7ad4053d2b9cb0c6c02edc86b8ee65e58de2 100644 (file)
@@ -44,6 +44,7 @@ packages:
   - libclang-dev
   - libcups2-dev
   - libdbus-1-dev
+  - libevent-dev
   - libglib2.0-dev
   - libgnutls28-dev
   - libgpgme11-dev
index 53d82f3bb79893a4732bd60294aa74087af694d2..ac716b38593e286655a1ef2c46b1643f2da1ac26 100755 (executable)
@@ -55,6 +55,7 @@ apt-get -y install \
     libclang-dev \
     libcups2-dev \
     libdbus-1-dev \
+    libevent-dev \
     libglib2.0-dev \
     libgnutls28-dev \
     libgpgme11-dev \
index cfa24e50a79b5b4b2d6aa27aa6a61e897e0f711a..eb8e7ad4053d2b9cb0c6c02edc86b8ee65e58de2 100644 (file)
@@ -44,6 +44,7 @@ packages:
   - libclang-dev
   - libcups2-dev
   - libdbus-1-dev
+  - libevent-dev
   - libglib2.0-dev
   - libgnutls28-dev
   - libgpgme11-dev
index 53d82f3bb79893a4732bd60294aa74087af694d2..ac716b38593e286655a1ef2c46b1643f2da1ac26 100755 (executable)
@@ -55,6 +55,7 @@ apt-get -y install \
     libclang-dev \
     libcups2-dev \
     libdbus-1-dev \
+    libevent-dev \
     libglib2.0-dev \
     libgnutls28-dev \
     libgpgme11-dev \
index cfa24e50a79b5b4b2d6aa27aa6a61e897e0f711a..eb8e7ad4053d2b9cb0c6c02edc86b8ee65e58de2 100644 (file)
@@ -44,6 +44,7 @@ packages:
   - libclang-dev
   - libcups2-dev
   - libdbus-1-dev
+  - libevent-dev
   - libglib2.0-dev
   - libgnutls28-dev
   - libgpgme11-dev
index 0b9fd98c48008eb2be86a1bdb1c7be4c19feb8e8..669d53ea747608947f39671eedeb56c5b9c0e110 100755 (executable)
@@ -55,6 +55,7 @@ apt-get -y install \
     libclang-dev \
     libcups2-dev \
     libdbus-1-dev \
+    libevent-dev \
     libglib2.0-dev \
     libgnutls28-dev \
     libgpgme11-dev \
index 23e416fc1aa5a504fe81896915c5eded8ae1ebf2..0343ebe0915327fa1558c37b0531e70bb327d3e7 100644 (file)
@@ -44,6 +44,7 @@ packages:
   - libclang-dev
   - libcups2-dev
   - libdbus-1-dev
+  - libevent-dev
   - libglib2.0-dev
   - libgnutls28-dev
   - libgpgme11-dev
index 56996ed863222ee001269302740164b215f21eec..39ed53b31caa58b97a9ed8e49556c44562f0f130 100644 (file)
@@ -1 +1 @@
-d20548dec714e202867b593f5e19f3004f7a2457
+26a734ea226b4fd32141ae950af16f75f290645f
index 8817968d760c6fb8b2245b8c93a874f0eced1edd..ca227fc088bebee6312fbaa53e7e9bc58d654ef4 100755 (executable)
@@ -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"),
index bf77040fd4f03665602d250e1b57dfbb3ccdee21..6d9fbd6491c1095eff7258216c05d8eef37fe63a 100644 (file)
@@ -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: