git: 1d31a63ad847 - main - devel/talloc250: new port talloc 2.5.0 needed by net/samba425

From: Xavier Beaudouin <kiwi_at_FreeBSD.org>
Date: Fri, 09 Oct 2026 08:50:27 UTC
The branch main has been updated by kiwi:

URL: https://cgit.FreeBSD.org/ports/commit/?id=1d31a63ad847f9a8c03490d50716482da51d49c9

commit 1d31a63ad847f9a8c03490d50716482da51d49c9
Author:     Xavier Beaudouin <kiwi@FreeBSD.org>
AuthorDate: 2026-10-09 08:48:03 +0000
Commit:     Xavier Beaudouin <kiwi@FreeBSD.org>
CommitDate: 2026-10-09 08:49:55 +0000

    devel/talloc250: new port talloc 2.5.0 needed by net/samba425
    
    New port needed by samba 4.25.0
    
    PR:     299196
    Sponsored by:   Klara, Inc.
---
 devel/Makefile                                     |  1 +
 devel/talloc250/Makefile                           | 65 ++++++++++++++++++++++
 devel/talloc250/distinfo                           |  3 +
 .../patch-buildtools_wafsamba_samba__install.py    | 11 ++++
 .../files/patch-buildtools_wafsamba_wscript        | 15 +++++
 devel/talloc250/files/patch-lib_replace_wscript    | 11 ++++
 devel/talloc250/files/patch-talloc.c               | 20 +++++++
 devel/talloc250/files/patch-wscript                | 18 ++++++
 devel/talloc250/pkg-descr                          |  2 +
 devel/talloc250/pkg-plist                          | 10 ++++
 10 files changed, 156 insertions(+)

diff --git a/devel/Makefile b/devel/Makefile
index 4f3af6c411df..e4f1bc6b4fa6 100644
--- a/devel/Makefile
+++ b/devel/Makefile
@@ -8794,6 +8794,7 @@
     SUBDIR += talloc242
     SUBDIR += talloc243
     SUBDIR += talloc244
+    SUBDIR += talloc250
     SUBDIR += task
     SUBDIR += taskctl
     SUBDIR += taskflow
diff --git a/devel/talloc250/Makefile b/devel/talloc250/Makefile
new file mode 100644
index 000000000000..121fbdef5f6c
--- /dev/null
+++ b/devel/talloc250/Makefile
@@ -0,0 +1,65 @@
+PORTNAME=	talloc
+DISTVERSION=	2.5.0
+CATEGORIES=	devel
+MASTER_SITES=	SAMBA
+PKGNAMESUFFIX=	250
+
+MAINTAINER=	samba@FreeBSD.org
+COMMENT=	Hierarchical pool based memory allocator
+WWW=		https://talloc.samba.org/
+
+LICENSE=	LGPL3
+
+USES=		compiler pkgconfig shebangfix waf
+USE_LDCONFIG=	yes
+WAF_CMD=	buildtools/bin/waf
+SHEBANG_GLOB=	*.py
+CONFIGURE_LOG=	bin/config.log
+
+PKGCONFIGDIR?=	${PREFIX}/libdata/pkgconfig
+
+CONFIGURE_ARGS+=	--builtin-libraries=replace \
+			--bundled-libraries=NONE \
+			--disable-rpath \
+			--disable-rpath-install \
+			--without-gettext
+CONFIGURE_ENV=		PYTHONHASHSEED=1
+MAKE_ENV=		PYTHONHASHSEED=1
+# Some symbols in talloc's linker version scripts are not defined, but since the
+# scripts are generated dynamically, suppress errors with lld >= 17 due to these
+# undefined symbols.
+LDFLAGS+=		-Wl,--undefined-version
+
+CONFLICTS_INSTALL=	talloc talloc[0-9]*
+
+PLIST_SUB+=	PKGCONFIGDIR=${PKGCONFIGDIR:S;^${PREFIX}/;;}
+
+OPTIONS_DEFINE=		DEBUG MANPAGES PYTHON
+OPTIONS_DEFAULT=	MANPAGES PYTHON
+OPTIONS_SUB=		yes
+
+DEBUG_CONFIGURE_ON=	--enable-debug \
+			--verbose
+DEBUG_MAKE_ARGS=	--verbose
+DEBUG_CFLAGS=		-g -ggdb3 -O0
+
+MANPAGES_BUILD_DEPENDS=		${LOCALBASE}/share/xsl/docbook/manpages/docbook.xsl:textproc/docbook-xsl \
+				xsltproc:textproc/libxslt
+MANPAGES_CONFIGURE_ENV_OFF=	XSLTPROC="false"
+
+PYTHON_USES=		gettext-runtime python
+PYTHON_USES_OFF=	python:build,test
+PYTHON_CONFIGURE_OFF=	--disable-python
+
+post-patch:
+	@${REINPLACE_CMD} -e 's|%%PKGCONFIGDIR%%|${PKGCONFIGDIR}|g' \
+		${BUILD_WRKSRC}/wscript
+
+post-install:
+	${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/libtalloc.so.2
+
+post-install-PYTHON-on:
+	${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/libpytalloc-util*.so
+	${STRIP_CMD} ${STAGEDIR}${PYTHONPREFIX_SITELIBDIR}/talloc*.so
+
+.include <bsd.port.mk>
diff --git a/devel/talloc250/distinfo b/devel/talloc250/distinfo
new file mode 100644
index 000000000000..1c877665590c
--- /dev/null
+++ b/devel/talloc250/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1791347911
+SHA256 (talloc-2.5.0.tar.gz) = 912afa237510ae542a7733998eb18a12bcda35ab6729c8e2ddb43e8d0ebab007
+SIZE (talloc-2.5.0.tar.gz) = 690172
diff --git a/devel/talloc250/files/patch-buildtools_wafsamba_samba__install.py b/devel/talloc250/files/patch-buildtools_wafsamba_samba__install.py
new file mode 100644
index 000000000000..5a85a034aea7
--- /dev/null
+++ b/devel/talloc250/files/patch-buildtools_wafsamba_samba__install.py
@@ -0,0 +1,11 @@
+--- buildtools/wafsamba/samba_install.py.orig	2019-03-21 10:12:32 UTC
++++ buildtools/wafsamba/samba_install.py
+@@ -115,7 +115,7 @@ def install_library(self):
+                 inst_name    = bld.make_libname(t.target)
+         elif self.vnum:
+             vnum_base    = self.vnum.split('.')[0]
+-            install_name = bld.make_libname(target_name, version=self.vnum)
++            install_name = bld.make_libname(target_name, version=vnum_base)
+             install_link = bld.make_libname(target_name, version=vnum_base)
+             inst_name    = bld.make_libname(t.target)
+             if not self.private_library or not t.env.SONAME_ST:
diff --git a/devel/talloc250/files/patch-buildtools_wafsamba_wscript b/devel/talloc250/files/patch-buildtools_wafsamba_wscript
new file mode 100644
index 000000000000..3d4b6a56e345
--- /dev/null
+++ b/devel/talloc250/files/patch-buildtools_wafsamba_wscript
@@ -0,0 +1,15 @@
+--- buildtools/wafsamba/wscript.orig	2019-03-21 10:12:32 UTC
++++ buildtools/wafsamba/wscript
+@@ -82,10 +82,10 @@ def options(opt):
+ 
+     opt.add_option('--with-libiconv',
+                    help='additional directory to search for libiconv',
+-                   action='store', dest='iconv_open', default='/usr/local',
++                   action='store', dest='iconv_open', default=None,
+                    match = ['Checking for library iconv', 'Checking for iconv_open', 'Checking for header iconv.h'])
+     opt.add_option('--without-gettext',
+-                   help=("Disable use of gettext"),
++                   help=("disable use of gettext"),
+                    action="store_true", dest='disable_gettext', default=False)
+ 
+     gr = opt.option_group('developer options')
diff --git a/devel/talloc250/files/patch-lib_replace_wscript b/devel/talloc250/files/patch-lib_replace_wscript
new file mode 100644
index 000000000000..d476cec47cfb
--- /dev/null
+++ b/devel/talloc250/files/patch-lib_replace_wscript
@@ -0,0 +1,11 @@
+--- lib/replace/wscript.orig	2019-03-21 10:12:32 UTC
++++ lib/replace/wscript
+@@ -119,7 +119,7 @@ def configure(conf):
+     conf.CHECK_HEADERS('sys/atomic.h stdatomic.h')
+     conf.CHECK_HEADERS('libgen.h')
+ 
+-    if conf.CHECK_CFLAGS('-Wno-format-truncation'):
++    if conf.CHECK_CFLAGS(['-Wno-format-truncation'] + conf.env.WERROR_CFLAGS):
+         conf.define('HAVE_WNO_FORMAT_TRUNCATION', '1')
+ 
+     if conf.CHECK_CFLAGS('-Wno-unused-function'):
diff --git a/devel/talloc250/files/patch-talloc.c b/devel/talloc250/files/patch-talloc.c
new file mode 100644
index 000000000000..2add4433b724
--- /dev/null
+++ b/devel/talloc250/files/patch-talloc.c
@@ -0,0 +1,20 @@
+--- talloc.c.orig	2019-03-21 10:12:32 UTC
++++ talloc.c
+@@ -396,6 +396,9 @@ void talloc_lib_init(void) __attribute__
+ void talloc_lib_init(void)
+ {
+ 	uint32_t random_value;
++#if defined(HAVE_ARC4RANDOM)
++	random_value = arc4random();
++#else
+ #if defined(HAVE_GETAUXVAL) && defined(AT_RANDOM)
+ 	uint8_t *p;
+ 	/*
+@@ -429,6 +432,7 @@ void talloc_lib_init(void)
+ 		 */
+ 		random_value = ((uintptr_t)talloc_lib_init & 0xFFFFFFFF);
+ 	}
++#endif /* HAVE_ARC4RANDOM */
+ 	talloc_magic = random_value & ~TALLOC_FLAG_MASK;
+ }
+ #else
diff --git a/devel/talloc250/files/patch-wscript b/devel/talloc250/files/patch-wscript
new file mode 100644
index 000000000000..8097c806c2a4
--- /dev/null
+++ b/devel/talloc250/files/patch-wscript
@@ -0,0 +1,18 @@
+--- wscript.orig	2019-03-21 10:12:32 UTC
++++ wscript
+@@ -45,13 +45,14 @@ def configure(conf):
+     conf.env.TALLOC_COMPAT1 = False
+     if conf.env.standalone_talloc:
+         conf.env.TALLOC_COMPAT1 = Options.options.TALLOC_COMPAT1
+-        conf.env.PKGCONFIGDIR = '${LIBDIR}/pkgconfig'
++        conf.env.PKGCONFIGDIR = '%%PKGCONFIGDIR%%'
+         conf.env.TALLOC_VERSION = VERSION
+ 
+     conf.CHECK_XSLTPROC_MANPAGES()
+ 
+     conf.CHECK_HEADERS('sys/auxv.h')
+     conf.CHECK_FUNCS('getauxval')
++    conf.CHECK_FUNCS('arc4random')
+ 
+     conf.SAMBA_CONFIG_H()
+ 
diff --git a/devel/talloc250/pkg-descr b/devel/talloc250/pkg-descr
new file mode 100644
index 000000000000..70543e3f9210
--- /dev/null
+++ b/devel/talloc250/pkg-descr
@@ -0,0 +1,2 @@
+A hierarchical pool based memory allocator with destructors. It uses
+reference counting to determine when memory should be freed.
diff --git a/devel/talloc250/pkg-plist b/devel/talloc250/pkg-plist
new file mode 100644
index 000000000000..aa22a5d358d7
--- /dev/null
+++ b/devel/talloc250/pkg-plist
@@ -0,0 +1,10 @@
+%%PYTHON%%include/pytalloc.h
+include/talloc.h
+%%PYTHON%%lib/libpytalloc-util%%PYTHON_TAG%%.so
+%%PYTHON%%lib/libpytalloc-util%%PYTHON_TAG%%.so.2
+lib/libtalloc.so
+lib/libtalloc.so.2
+%%PYTHON%%%%PYTHON_SITELIBDIR%%/talloc%%PYTHON_TAG%%.so
+%%PYTHON%%%%PKGCONFIGDIR%%/pytalloc-util%%PYTHON_TAG%%.pc
+%%PKGCONFIGDIR%%/talloc.pc
+%%MANPAGES%%share/man/man3/talloc.3.gz