diff --git a/devel/Makefile b/devel/Makefile --- a/devel/Makefile +++ b/devel/Makefile @@ -8225,6 +8225,7 @@ SUBDIR += terraform-ls SUBDIR += test-drive SUBDIR += tevent + SUBDIR += tevent016 SUBDIR += tex-kpathsea SUBDIR += tex-libtexlua SUBDIR += tex-libtexluajit diff --git a/devel/tevent016/Makefile b/devel/tevent016/Makefile new file mode 100644 --- /dev/null +++ b/devel/tevent016/Makefile @@ -0,0 +1,76 @@ +PORTNAME= tevent +DISTVERSION= 0.16.1 +CATEGORIES= devel +MASTER_SITES= SAMBA + +MAINTAINER= samba@FreeBSD.org +COMMENT= Talloc based event loop library +WWW= https://tevent.samba.org/ + +LICENSE= LGPL3 + +BUILD_DEPENDS= talloc>=2.3.4:devel/talloc242 +RUN_DEPENDS= talloc>=2.3.4:devel/talloc242 + +USES= compiler pkgconfig shebangfix waf +USE_LDCONFIG= yes +SHEBANG_GLOB= *.py +WAF_CMD= buildtools/bin/waf +CONFIGURE_LOG= bin/config.log + +PKGCONFIGDIR?= ${PREFIX}/libdata/pkgconfig +PLIST_SUB= PKGCONFIGDIR=${PKGCONFIGDIR:S;^${PREFIX}/;;} + +CONFIGURE_ARGS= --disable-rpath \ + --disable-rpath-install \ + --bundled-libraries=!talloc,cmocka \ + --builtin-libraries=replace \ + --without-gettext +CONFIGURE_ENV= PYTHONHASHSEED=1 +MAKE_ENV= PYTHONHASHSEED=1 + +MANPAGES_DESC= Build and install manpages (requires textproc/docbook-xsl) + +OPTIONS_DEFINE= DEBUG MANPAGES PYTHON +OPTIONS_DEFAULT= PYTHON +OPTIONS_SUB= yes + +DEBUG_CFLAGS= -g -ggdb3 -O0 +DEBUG_CONFIGURE_ON= --verbose --enable-debug +DEBUG_MAKE_ARGS= --verbose + +PYTHON_USES= gettext-runtime python +PYTHON_USE= python=py3kplist +PYTHON_USES_OFF= python:build,test +PYTHON_CONFIGURE_OFF= --disable-python + +MANPAGES_CONFIGURE_ENV_OFF= XSLTPROC="true" +MANPAGES_BUILD_DEPENDS= ${LOCALBASE}/share/xsl/docbook/manpages/docbook.xsl:textproc/docbook-xsl \ + xsltproc:textproc/libxslt +# No fancy color error messages +CFLAGS+= ${CFLAGS_${CHOSEN_COMPILER_TYPE}} +CFLAGS_clang= -fno-color-diagnostics +CONFIGURE_ENV+= NOCOLOR=yes +MAKE_ENV+= NOCOLOR=yes +# Some symbols in tevent'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= tevent + +post-patch: + @${REINPLACE_CMD} -e 's|%%PKGCONFIGDIR%%|${PKGCONFIGDIR}|g' \ + ${BUILD_WRKSRC}/wscript + +post-install: + ${RM} ${STAGEDIR}${PREFIX}/lib/tevent/libcmocka-tevent.so + ${RM} ${STAGEDIR}${PREFIX}/lib/tevent/libpytalloc-util.cpython-${PYTHON_SUFFIX}-tevent.so + ${RMDIR} ${STAGEDIR}${PREFIX}/lib/tevent + ${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/libtevent.so + +post-install-PYTHON-on: + ${STRIP_CMD} ${STAGEDIR}${PYTHONPREFIX_SITELIBDIR}/_tevent*.so + ${PYTHON_CMD} -m compileall -d ${PYTHON_SITELIBDIR} ${STAGEDIR}${PYTHON_SITELIBDIR} + +.include diff --git a/devel/tevent016/distinfo b/devel/tevent016/distinfo new file mode 100644 --- /dev/null +++ b/devel/tevent016/distinfo @@ -0,0 +1,3 @@ +TIMESTAMP = 1737642434 +SHA256 (tevent-0.16.1.tar.gz) = 362971e0f32dc1905f6fe4736319c4b8348c22dc85aa6c3f690a28efe548029e +SIZE (tevent-0.16.1.tar.gz) = 890010 diff --git a/devel/tevent016/files/patch-buildtools_wafsamba_samba__autoconf.py b/devel/tevent016/files/patch-buildtools_wafsamba_samba__autoconf.py new file mode 100644 --- /dev/null +++ b/devel/tevent016/files/patch-buildtools_wafsamba_samba__autoconf.py @@ -0,0 +1,35 @@ +--- buildtools/wafsamba/samba_autoconf.py.orig 2019-09-04 15:42:16 UTC ++++ buildtools/wafsamba/samba_autoconf.py +@@ -573,7 +573,7 @@ def library_flags(self, libs): + + + @conf +-def CHECK_LIB(conf, libs, mandatory=False, empty_decl=True, set_target=True, shlib=False): ++def CHECK_LIB(conf, libs, mandatory=False, empty_decl=True, set_target=True, shlib=False, msg=None): + '''check if a set of libraries exist as system libraries + + returns the sublist of libs that do exist as a syslib or [] +@@ -593,11 +593,14 @@ int foo() + ret.append(lib) + continue + ++ if msg is None: ++ msg = 'Checking for library %s' % lib ++ + (ccflags, ldflags, cpppath) = library_flags(conf, lib) + if shlib: +- res = conf.check(features='c cshlib', fragment=fragment, lib=lib, uselib_store=lib, cflags=ccflags, ldflags=ldflags, uselib=lib.upper(), mandatory=False) ++ res = conf.check(features='c cshlib', fragment=fragment, lib=lib, uselib_store=lib, cflags=ccflags, ldflags=ldflags, uselib=lib.upper(), mandatory=False, msg=msg) + else: +- res = conf.check(lib=lib, uselib_store=lib, cflags=ccflags, ldflags=ldflags, uselib=lib.upper(), mandatory=False) ++ res = conf.check(lib=lib, uselib_store=lib, cflags=ccflags, ldflags=ldflags, uselib=lib.upper(), mandatory=False, msg=msg) + + if not res: + if mandatory: +@@ -949,5 +952,5 @@ def SAMBA_CHECK_UNDEFINED_SYMBOL_FLAGS(conf): + conf.env.undefined_ldflags = conf.ADD_LDFLAGS('-Wl,-no-undefined', testflags=True) + + if (conf.env.undefined_ignore_ldflags == [] and +- conf.CHECK_LDFLAGS(['-undefined', 'dynamic_lookup'])): ++ conf.CHECK_LDFLAGS(['-undefined', 'dynamic_lookup'] + conf.env.WERROR_CFLAGS)): + conf.env.undefined_ignore_ldflags = ['-undefined', 'dynamic_lookup'] diff --git a/devel/tevent016/files/patch-buildtools_wafsamba_samba__install.py b/devel/tevent016/files/patch-buildtools_wafsamba_samba__install.py new file mode 100644 --- /dev/null +++ b/devel/tevent016/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/tevent016/files/patch-buildtools_wafsamba_wscript b/devel/tevent016/files/patch-buildtools_wafsamba_wscript new file mode 100644 --- /dev/null +++ b/devel/tevent016/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/tevent016/files/patch-lib_replace_wscript b/devel/tevent016/files/patch-lib_replace_wscript new file mode 100644 --- /dev/null +++ b/devel/tevent016/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/tevent016/files/patch-wscript b/devel/tevent016/files/patch-wscript new file mode 100644 --- /dev/null +++ b/devel/tevent016/files/patch-wscript @@ -0,0 +1,11 @@ +--- wscript.orig 2017-07-22 22:25:22 UTC ++++ wscript +@@ -88,7 +88,7 @@ def build(bld): + SRC += ' tevent_port.c' + + if bld.env.standalone_tevent: +- bld.env.PKGCONFIGDIR = '${LIBDIR}/pkgconfig' ++ bld.env.PKGCONFIGDIR = '%%PKGCONFIGDIR%%' + private_library = False + else: + private_library = True diff --git a/devel/tevent016/pkg-descr b/devel/tevent016/pkg-descr new file mode 100644 --- /dev/null +++ b/devel/tevent016/pkg-descr @@ -0,0 +1,6 @@ +tevent is a simple library that can handle the main event loop for an +application. It supports three kinds of events: timed events, file +descriptors becoming readable or writable and signals. + +Talloc is used for memory management, both internally and for private +data provided by users of the library. diff --git a/devel/tevent016/pkg-plist b/devel/tevent016/pkg-plist new file mode 100644 --- /dev/null +++ b/devel/tevent016/pkg-plist @@ -0,0 +1,7 @@ +include/tevent.h +lib/libtevent.so +lib/libtevent.so.0 +%%PYTHON%%%%PYTHON_SITELIBDIR%%/__pycache__/tevent.cpython-%%PYTHON_SUFFIX%%.pyc +%%PYTHON%%%%PYTHON_SITELIBDIR%%/_tevent%%PYTHON_EXT_SUFFIX%%.so +%%PYTHON%%%%PYTHON_SITELIBDIR%%/tevent.py +%%PKGCONFIGDIR%%/tevent.pc