This is an automated email from the git hooks/post-receive script.

guix_mirror_bot pushed a commit to branch master
in repository guix.

The following commit(s) were added to refs/heads/master by this push:
     new a41eca569f gnu: bdb-4.8, bdb-5.3: Fix build on arm.
a41eca569f is described below

commit a41eca569f12648767581f413bedc20baba8b884
Author: Vagrant Cascadian <vagr...@debian.org>
AuthorDate: Sat Jul 19 11:02:42 2025 -0700

    gnu: bdb-4.8, bdb-5.3: Fix build on arm.
    
    * gnu/packages/patches/bdb-4-5-configure.patch: New file.
    * gnu/local.mk [dist_patch_DATA]: Register file.
    * gnu/packages/dbm.scm (bdb-4.8)[arguments]<#:phases>: Add
    'bdb-configure-patch on arm.
    (bdb-6)[arguments]: Copy-paste the arguments from bdb-4.8 without the
    additional phase.
    
    Change-Id: Id75bbb519006f3b3871a23ba3d668e0ef24e6a7a
    Co-authored-by: Andreas Enge <andr...@enge.fr>
    Co-authored-by: Brennan Vincent <bren...@umanwizard.com>
---
 gnu/local.mk                                 |   1 +
 gnu/packages/dbm.scm                         |  65 ++++++-
 gnu/packages/patches/bdb-4-5-configure.patch | 258 +++++++++++++++++++++++++++
 3 files changed, 323 insertions(+), 1 deletion(-)

diff --git a/gnu/local.mk b/gnu/local.mk
index 92e89dd1e5..00cb3a1c9e 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1051,6 +1051,7 @@ dist_patch_DATA =                                         
\
   %D%/packages/patches/bash-linux-pgrp-pipe.patch              \
   %D%/packages/patches/bastet-change-source-of-unordered_set.patch     \
   %D%/packages/patches/bc-fix-cross-compilation.patch          \
+  %D%/packages/patches/bdb-4-5-configure.patch                  \
   %D%/packages/patches/bdb-5.3-atomics-on-gcc-9.patch          \
   %D%/packages/patches/biboumi-cmake-ignore-git.patch          \
   %D%/packages/patches/brightnessctl-elogind-support.patch     \
diff --git a/gnu/packages/dbm.scm b/gnu/packages/dbm.scm
index f4a0c06857..ec4346ad19 100644
--- a/gnu/packages/dbm.scm
+++ b/gnu/packages/dbm.scm
@@ -1,6 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2012, 2013, 2014, 2016, 2020 Ludovic Courtès <l...@gnu.org>
-;;; Copyright © 2013, 2015 Andreas Enge <andr...@enge.fr>
+;;; Copyright © 2013, 2015, 2025 Andreas Enge <andr...@enge.fr>
 ;;; Copyright © 2016, 2017, 2018, 2020, 2021 Efraim Flashner 
<efr...@flashner.co.il>
 ;;; Copyright © 2017, 2018 Marius Bakke <mba...@fastmail.com>
 ;;; Copyright © 2018 Mark H Weaver <m...@netris.org>
@@ -9,6 +9,7 @@
 ;;; Copyright © 2021, 2022 Maxime Devos <maximede...@telenet.be>
 ;;; Copyright © 2021 LuHui <luhu...@gmail.com>
 ;;; Copyright © 2024 Janneke Nieuwenhuizen <jann...@gnu.org>
+;;; Copyright © 2025 Brennan Vincent <bren...@umanwizard.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -119,6 +120,14 @@
                          (symlink (string-append automake-files "/" file) 
file))
                        (for-each replace '("config.sub" "config.guess"
                                            "install-sh"))))))
+               #$@(if (target-arm?)
+                 #~((add-after 'unpack 'bdb-configure-patch
+                   (lambda _
+                     (invoke
+                      "patch" "-p1" "-i"
+                      #$(local-file
+                         (search-patch "bdb-4-5-configure.patch"))))))
+                 #~())
                (add-before 'configure 'pre-configure
                  (lambda _
                    (chdir "dist")
@@ -173,6 +182,60 @@ SQL, Key/Value, XML/XQuery or Java Object storage for 
their data model.")
                (base32
                 "1yx8wzhch5wwh016nh0kfxvknjkafv6ybkqh6nh7lxx50jqf5id9"))
               (patches '())))
+    ;; Copy-paste the arguments from bdb-4.8 and drop the
+    ;; 'bdb-configure patch phase.
+    (arguments
+     (list #:tests? #f                        ; no check target available
+           #:disallowed-references '("doc")
+           #:out-of-source? #true
+           #:configure-flags
+           #~(list
+              "CFLAGS=-g -O2 -Wno-error=implicit-function-declaration"
+              ;; Remove 7 MiB of .a files.
+              "--disable-static"
+
+              ;; The compatibility mode is needed by some packages,
+              ;; notably iproute2.
+              "--enable-compat185"
+
+              ;; The following flag is needed so that the inclusion
+              ;; of db_cxx.h into C++ files works; it leads to
+              ;; HAVE_CXX_STDHEADERS being defined in db_cxx.h.
+              "--enable-cxx")
+           #:phases
+           #~(modify-phases %standard-phases
+               (replace 'bootstrap
+                 (lambda* (#:key inputs native-inputs outputs
+                           #:allow-other-keys #:rest arguments)
+                   (with-directory-excursion "dist"
+                     (for-each (lambda (x)
+                                 (install-file x "aclocal"))
+                               (find-files "aclocal_java"))
+                     (apply (assq-ref %standard-phases 'bootstrap) arguments)
+                     (let ((automake-files (search-input-directory
+                                            (or native-inputs inputs)
+                                            "share/automake-1.16")))
+                       (define (replace file)
+                         (symlink (string-append automake-files "/" file) 
file))
+                       (for-each replace '("config.sub" "config.guess"
+                                           "install-sh"))))))
+               (add-before 'configure 'pre-configure
+                 (lambda _
+                   (chdir "dist")
+                   ;; '--docdir' is not honored, so we need to patch.
+                   (substitute* "Makefile.in"
+                     (("docdir[[:blank:]]*=.*")
+                      (string-append "docdir = " #$output:doc
+                                     "/share/doc/bdb")))
+                   ;; Replace __EDIT_DB_VERSION__... by actual version numbers.
+                   ;; s_config is responsible for this, but also runs autoconf
+                   ;; again, so patch out the autoconf bits.
+                   (substitute* "s_config"
+                     (("^.*(aclocal|autoconf|autoheader|config\\.hin).*$") "")
+                     (("^.*auto4mte.*$") "")
+                     (("rm (.*) configure") "")
+                     (("chmod (.*) config.guess(.*)$") ""))
+                   (invoke "sh" "s_config"))))))
     ;; Starting with version 6, BDB is distributed under AGPL3. Many individual
     ;; files are covered by the 3-clause BSD license.
     (license (list license:agpl3+ license:bsd-3))))
diff --git a/gnu/packages/patches/bdb-4-5-configure.patch 
b/gnu/packages/patches/bdb-4-5-configure.patch
new file mode 100644
index 0000000000..d1344a8930
--- /dev/null
+++ b/gnu/packages/patches/bdb-4-5-configure.patch
@@ -0,0 +1,258 @@
+Taken from https://lists.debian.org/debian-qa-packages/2024/10/msg00088.html,
+modified to also be applicable to bdb-5.3
+by Vagrant Cascadian <vagr...@debian.org>
+
+
+diff -ur db-4.8.30-pristine/dist/aclocal/mutex.m4 dist/aclocal/mutex.m4
+--- db-4.8.30-pristine/dist/aclocal/mutex.m4   2025-07-19 10:38:23.425962695 
-0700
++++ dist/aclocal/mutex.m4      2025-07-19 10:40:42.146993750 -0700
+@@ -4,12 +4,12 @@
+ AC_DEFUN(AM_PTHREADS_SHARED, [
+ AC_TRY_RUN([
+ #include <pthread.h>
+-main() {
++int main() {
+       pthread_cond_t cond;
+       pthread_mutex_t mutex;
+       pthread_condattr_t condattr;
+       pthread_mutexattr_t mutexattr;
+-      exit (
++      return (
+       pthread_condattr_init(&condattr) ||
+       pthread_condattr_setpshared(&condattr, PTHREAD_PROCESS_SHARED) ||
+       pthread_mutexattr_init(&mutexattr) ||
+@@ -29,7 +29,7 @@
+       pthread_mutex_t mutex;
+       pthread_condattr_t condattr;
+       pthread_mutexattr_t mutexattr;
+-      exit (
++      return (
+       pthread_condattr_init(&condattr) ||
+       pthread_condattr_setpshared(&condattr, PTHREAD_PROCESS_SHARED) ||
+       pthread_mutexattr_init(&mutexattr) ||
+@@ -46,12 +46,12 @@
+ AC_DEFUN(AM_PTHREADS_PRIVATE, [
+ AC_TRY_RUN([
+ #include <pthread.h>
+-main() {
++int main() {
+       pthread_cond_t cond;
+       pthread_mutex_t mutex;
+       pthread_condattr_t condattr;
+       pthread_mutexattr_t mutexattr;
+-      exit (
++      return (
+       pthread_condattr_init(&condattr) ||
+       pthread_mutexattr_init(&mutexattr) ||
+       pthread_cond_init(&cond, &condattr) ||
+@@ -69,7 +69,7 @@
+       pthread_mutex_t mutex;
+       pthread_condattr_t condattr;
+       pthread_mutexattr_t mutexattr;
+-      exit (
++      return (
+       pthread_condattr_init(&condattr) ||
+       pthread_mutexattr_init(&mutexattr) ||
+       pthread_cond_init(&cond, &condattr) ||
+@@ -163,7 +163,7 @@
+               static lwp_cond_t ci = SHAREDCV;
+               lwp_mutex_t mutex = mi;
+               lwp_cond_t cond = ci;
+-              exit (
++              return (
+               _lwp_mutex_lock(&mutex) ||
+               _lwp_mutex_unlock(&mutex));
+       ], [db_cv_mutex=Solaris/lwp])
+@@ -178,7 +178,7 @@
+               mutex_t mutex;
+               cond_t cond;
+               int type = USYNC_PROCESS;
+-              exit (
++              return (
+               mutex_init(&mutex, type, NULL) ||
+               cond_init(&cond, type, NULL) ||
+               mutex_lock(&mutex) ||
+@@ -193,7 +193,7 @@
+               mutex_t mutex;
+               cond_t cond;
+               int type = USYNC_PROCESS;
+-              exit (
++              return (
+               mutex_init(&mutex, type, NULL) ||
+               cond_init(&cond, type, NULL) ||
+               mutex_lock(&mutex) ||
+@@ -213,7 +213,7 @@
+       # x86/gcc: FreeBSD, NetBSD, BSD/OS, Linux
+       AC_TRY_COMPILE(,[
+       #if (defined(i386) || defined(__i386__)) && defined(__GNUC__)
+-              exit(0);
++              return(0);
+       #else
+               FAIL TO COMPILE/LINK
+       #endif
+@@ -222,7 +222,7 @@
+       # x86_64/gcc: FreeBSD, NetBSD, BSD/OS, Linux
+       AC_TRY_COMPILE(,[
+       #if (defined(x86_64) || defined(__x86_64__)) && defined(__GNUC__)
+-              exit(0);
++              return(0);
+       #else
+               FAIL TO COMPILE/LINK
+       #endif
+@@ -245,7 +245,7 @@
+       AC_TRY_COMPILE(,[
+       #if defined(__sparc__) && defined(__GNUC__)
+               asm volatile ("membar #StoreStore|#StoreLoad|#LoadStore");
+-              exit(0);
++              return(0);
+       #else
+               FAIL TO COMPILE/LINK
+       #endif
+@@ -287,7 +287,7 @@
+       msem_init(&x, 0);
+       msem_lock(&x, 0);
+       msem_unlock(&x, 0);
+-      exit(0);
++      return(0);
+ #else
+       FAIL TO COMPILE/LINK
+ #endif
+@@ -304,7 +304,7 @@
+       msem_init(&x, 0);
+       msem_lock(&x, 0);
+       msem_unlock(&x, 0);
+-      exit(0);
++      return(0);
+ ], [db_cv_mutex=UNIX/msem_init])
+ fi
+ 
+@@ -326,7 +326,7 @@
+ if test "$db_cv_mutex" = no; then
+ AC_TRY_COMPILE(,[
+ #if defined(__USLC__)
+-      exit(0);
++      return(0);
+ #else
+       FAIL TO COMPILE/LINK
+ #endif
+@@ -383,7 +383,7 @@
+ if test "$db_cv_mutex" = no; then
+ AC_TRY_COMPILE(,[
+ #if defined(__alpha) && defined(__DECC)
+-      exit(0);
++      return(0);
+ #else
+       FAIL TO COMPILE/LINK
+ #endif
+@@ -394,7 +394,7 @@
+ if test "$db_cv_mutex" = no; then
+ AC_TRY_COMPILE(,[
+ #if defined(__alpha) && defined(__GNUC__)
+-      exit(0);
++      return(0);
+ #else
+       FAIL TO COMPILE/LINK
+ #endif
+@@ -405,7 +405,7 @@
+ if test "$db_cv_mutex" = no; then
+ AC_TRY_COMPILE(,[
+ #if defined(__arm__) && defined(__GNUC__)
+-      exit(0);
++      return(0);
+ #else
+       FAIL TO COMPILE/LINK
+ #endif
+@@ -416,7 +416,7 @@
+ if test "$db_cv_mutex" = no; then
+ AC_TRY_COMPILE(,[
+ #if (defined(__mips) || defined(__mips__)) && defined(__GNUC__)
+-      exit(0);
++      return(0);
+ #else
+       FAIL TO COMPILE/LINK
+ #endif
+@@ -427,7 +427,7 @@
+ if test "$db_cv_mutex" = no; then
+ AC_TRY_COMPILE(,[
+ #if (defined(__hppa) || defined(__hppa__)) && defined(__GNUC__)
+-      exit(0);
++      return(0);
+ #else
+       FAIL TO COMPILE/LINK
+ #endif
+@@ -438,7 +438,7 @@
+ if test "$db_cv_mutex" = no; then
+ AC_TRY_COMPILE(,[
+ #if (defined(__powerpc__) || defined(__ppc__)) && defined(__GNUC__)
+-      exit(0);
++      return(0);
+ #else
+       FAIL TO COMPILE/LINK
+ #endif
+@@ -449,7 +449,7 @@
+ if test "$db_cv_mutex" = no; then
+ AC_TRY_COMPILE(,[
+ #if (defined(mc68020) || defined(sun3)) && defined(__GNUC__)
+-      exit(0);
++      return(0);
+ #else
+       FAIL TO COMPILE/LINK
+ #endif
+@@ -460,7 +460,7 @@
+ if test "$db_cv_mutex" = no; then
+ AC_TRY_COMPILE(,[
+ #if defined(__MVS__) && defined(__IBMC__)
+-      exit(0);
++      return(0);
+ #else
+       FAIL TO COMPILE/LINK
+ #endif
+@@ -471,7 +471,7 @@
+ if test "$db_cv_mutex" = no; then
+ AC_TRY_COMPILE(,[
+ #if defined(__s390__) && defined(__GNUC__)
+-      exit(0);
++      return(0);
+ #else
+       FAIL TO COMPILE/LINK
+ #endif
+@@ -482,7 +482,7 @@
+ if test "$db_cv_mutex" = no; then
+ AC_TRY_COMPILE(,[
+ #if defined(__ia64) && defined(__GNUC__)
+-      exit(0);
++      return(0);
+ #else
+       FAIL TO COMPILE/LINK
+ #endif
+@@ -493,7 +493,7 @@
+ if test "$db_cv_mutex" = no; then
+ AC_TRY_COMPILE(,[
+ #if defined(_UTS)
+-      exit(0);
++      return(0);
+ #else
+       FAIL TO COMPILE/LINK
+ #endif
+@@ -814,9 +814,9 @@
+ if test "$db_cv_atomic" = no; then
+       AC_TRY_COMPILE(,[
+       #if ((defined(i386) || defined(__i386__)) && defined(__GNUC__))
+-              exit(0);
++              return(0);
+       #elif ((defined(x86_64) || defined(__x86_64__)) && defined(__GNUC__))
+-              exit(0);
++              return(0);
+       #else
+               FAIL TO COMPILE/LINK
+       #endif
+@@ -827,7 +827,7 @@
+ AC_TRY_LINK([
+ #include <sys/atomic.h>],[
+       volatile unsigned val = 1;
+-      exit (atomic_inc_uint_nv(&val) != 2 ||
++      return (atomic_inc_uint_nv(&val) != 2 ||
+             atomic_dec_uint_nv(&val) != 1 ||
+             atomic_cas_32(&val, 1, 3) != 3);
+ ], [db_cv_atomic="solaris/atomic"])
+Nur in db-4.8.30/dist/aclocal: mutex.m4~.

Reply via email to