On Sun Jul 10, 2022 at 09:54:00PM +0200, Omar Polo wrote:
> I was taking a look at deadbeef for curiosity and it seems that newer
> versions needs this Grand Central Dispatch thingy.  Fortunately, an
> impavid user has already done the though work to get this working on
> OpenBSD [0], so this took just minutes to port.  (thanks!)
> 
> [0]: https://github.com/apple/swift-corelibs-libdispatch/pull/559
> 
> (I've just added two small patches on top to drop a -O3 and -Werror)
> 
> All but one test are passing!
> 
> As-is this conflicts with devel/blocksruntime due to
> /usr/local/include/Block.h.  FWIW the two headers are practically
> identical.  Maybe this libdispatch will deprecate blocksruntime?  Never
> used blocks before so I don't know.
> 
> With this installed i manage to start compiling deadbeef and get until
> the linking of the deadbeef executable (which fails for other reasons
> than libdispatch.)
> 

This may help us with asterisk? Of course this requires run-time tests. I
have no chance to test this. Don't shoot the messenger!

Rafael



Index: Makefile.inc
===================================================================
RCS file: /cvs/ports/telephony/asterisk/Makefile.inc,v
retrieving revision 1.13
diff -u -p -r1.13 Makefile.inc
--- Makefile.inc        12 May 2022 20:51:20 -0000      1.13
+++ Makefile.inc        12 Jul 2022 10:09:08 -0000
@@ -25,33 +25,14 @@ PERMIT_PACKAGE=     Yes
 WANTLIB-main += c crypto curl curses edit gsm iconv iksemel
 WANTLIB-main += jansson m ogg portaudio pthread radcli spandsp
 WANTLIB-main += sqlite3 srtp2 ssl tiff uriparser unbound uuid
-WANTLIB-main += vorbis vorbisenc vorbisfile xml2 xslt z
+WANTLIB-main += vorbis vorbisenc vorbisfile xml2 xslt z BlocksRuntime
 
 DEBUG_PACKAGES=        ${BUILD_PACKAGES}
 DPB_PROPERTIES=        parallel
 
-# Asterisk requires either nested functions (gcc extension), or -fblocks 
(clang).
-# However -fblocks fails:
-#
-# - configure test fails on ld.bfd arches:
-#
-#    echo 'int main(){return ^{return 42;}();}' | \
-#         clang -o /tmp/blockstest -fblocks -x c -L/usr/local/lib 
-lBlocksRuntime -
-#
-# -> undefined reference to `_NSConcreteGlobalBlock' (also can be tested
-# on ld.lld arches by adding "-fuse-ld=bfd")
-#
-# - runtime fails on ld.lld arches: dlopen()ing the .so modules results in
-# undefined symbols from the BlocksRuntime lib (_NSConcreteStackBlock,
-# _Block_object_dispose, _Block_object_assign, etc); Asterisk appears to
-# start up but without modules loaded it is useless.
-#
-# So, as things stand, this requires building with gcc.
-#
-# If this is fixed and moved to clang, update telephony/asterisk-g729 in sync.
 COMPILER=              ports-gcc
-# XXX bsd.port.arch.mk is included below, before compiler.port.mk can set
-# ONLY_FOR_ARCHS
+#COMPILER=             base-clang ports-gcc
+
 ONLY_FOR_ARCHS=                ${GCC49_ARCHS}
 
 SHARED_LIBS+=          asteriskssl ${SHLIB_V}
@@ -74,6 +55,7 @@ FLAVOR+=        no_vm_odbc
 # MODGCC4_CPPLIBDEP is empty on a clang build.
 # leave it here, don't try to conditionalize it below, dpb doesn't like that.
 LIB_DEPENDS-main=      ${MODGCC4_CPPLIBDEP} \
+                       devel/libdispatch \
                        audio/gsm \
                        audio/libogg \
                        audio/libvorbis \
@@ -113,6 +95,7 @@ MODPY_RUNDEP=                No
 
 CPPFLAGS+=             -I${X11BASE}/include -I${LOCALBASE}/include
 LDFLAGS+=              -L${X11BASE}/lib -L${LOCALBASE}/lib
+LDFLAGS+=              -lBlocksRuntime
 CONFIGURE_ENV+=                CPPFLAGS="${CPPFLAGS}" \
                        CFLAGS="${CFLAGS}" \
                        LDFLAGS="${LDFLAGS}" \
@@ -179,20 +162,19 @@ CFLAGS +=         -DHAVE_OPENSSL_BIO_METHOD
 
 .include <bsd.port.arch.mk>
 
-#.if ${PROPERTIES:Mclang}
-#BUILD_DEPENDS +=      devel/blocksruntime
-#LDFLAGS +=            -lBlocksRuntime
-#WANTLIB-main +=               ${COMPILER_LIBCXX}
-#.else
-CFLAGS +=              -ftrampolines
+.if ${PROPERTIES:Mclang}
+WANTLIB-main +=                ${COMPILER_LIBCXX}
+.else
+FLAGS +=               -ftrampolines
 WANTLIB-main +=                ${MODGCC4_CPPWANTLIB}
-#.endif
+.endif
 
 # calendar
 COMMENT-calendar=      calendar support for Asterisk
 WANTLIB-calendar=      crypto expat ical intl iksemel neon \
-                       proxy pthread ssl xml2 z
+                       proxy pthread ssl xml2 z BlocksRuntime
 LIB_DEPENDS-calendar=  devel/gettext,-runtime \
+                       devel/libdispatch \
                        net/neon \
                        textproc/libical
 .if !${BUILD_PACKAGES:M-calendar}
@@ -202,24 +184,27 @@ CONFIGURE_ARGS+=  --with-ical=no
 # http_post
 COMMENT-http_post=     HTTP POST support for Asterisk
 LIB_DEPENDS-http_post= devel/gettext,-runtime \
+                       devel/libdispatch \
                        mail/gmime30
-WANTLIB-http_post=     gio-2.0 glib-2.0 gmime-3.0 gobject-2.0 intl pthread
+WANTLIB-http_post=     gio-2.0 glib-2.0 gmime-3.0 gobject-2.0 intl pthread 
BlocksRuntime
 .if !${BUILD_PACKAGES:M-http_post}
 CONFIGURE_ARGS+=       --with-gmime=no
 .endif
 
 # ldap
 COMMENT-ldap=          LDAP support for Asterisk
-LIB_DEPENDS-ldap=      databases/openldap,-main
-WANTLIB-ldap=          ldap pthread
+LIB_DEPENDS-ldap=      databases/openldap,-main \
+                       devel/libdispatch
+WANTLIB-ldap=          ldap pthread BlocksRuntime
 .if !${BUILD_PACKAGES:M-ldap}
 CONFIGURE_ARGS+=       --with-ldap=no
 .endif
 
 # freetds
 COMMENT-tds=           MSSQL/Sybase support for Asterisk
-LIB_DEPENDS-tds=       databases/freetds
-WANTLIB-tds=           pthread sybdb
+LIB_DEPENDS-tds=       databases/freetds \
+                       devel/libdispatch
+WANTLIB-tds=           pthread sybdb BlocksRuntime
 .if !${BUILD_PACKAGES:M-tds}
 CONFIGURE_ARGS+=       --with-tds=no
 .else
@@ -228,8 +213,8 @@ CONFIGURE_ARGS+=    --with-tds=${LOCALBASE}
 
 # kqueue
 COMMENT-kqueue=                kqueue-backed timer for Asterisk
-LIB_DEPENDS-kqueue=
-WANTLIB-kqueue=                pthread
+LIB_DEPENDS-kqueue=    devel/libdispatch
+WANTLIB-kqueue=                pthread BlocksRuntime
 
 # lua
 MODULES+=              lang/lua
@@ -237,8 +222,9 @@ MODLUA_SA=          yes
 MODLUA_RUNDEP=         no
 MODLUA_VERSION=                5.3
 COMMENT-lua=           lua support for Asterisk
-LIB_DEPENDS-lua=       ${MODLUA_LIB_DEPENDS}
-WANTLIB-lua=           ${MODLUA_WANTLIB} m pthread
+LIB_DEPENDS-lua=       ${MODLUA_LIB_DEPENDS} \
+                       devel/libdispatch
+WANTLIB-lua=           ${MODLUA_WANTLIB} m pthread BlocksRuntime
 .if !${BUILD_PACKAGES:M-lua}
 CONFIGURE_ARGS+=       --with-lua=no
 MODLUA_BUILDDEP=       no
@@ -249,8 +235,9 @@ CONFIGURE_ENV+=             LUA_VERSIONS="${MODLUA_
 
 # odbc
 COMMENT-odbc=          ODBC support for Asterisk
-LIB_DEPENDS-odbc=      databases/iodbc
-WANTLIB-odbc=          iodbc pthread
+LIB_DEPENDS-odbc=      databases/iodbc \
+                       devel/libdispatch
+WANTLIB-odbc=          iodbc pthread BlocksRuntime
 .if !${BUILD_PACKAGES:M-odbc}
 CONFIGURE_ARGS+=       --with-iodbc=no \
                        --with-ltdl=no
@@ -258,24 +245,27 @@ CONFIGURE_ARGS+=  --with-iodbc=no \
 
 # postgresql
 COMMENT-pgsql=         PostgreSQL support for Asterisk
-WANTLIB-pgsql=         pq pthread z
-LIB_DEPENDS-pgsql=     databases/postgresql
+WANTLIB-pgsql=         pq pthread z BlocksRuntime
+LIB_DEPENDS-pgsql=     databases/postgresql \
+                       devel/libdispatch
 .if !${BUILD_PACKAGES:M-pgsql}
 CONFIGURE_ARGS+=       --with-postgres=no
 .endif
 
 # snmp
 COMMENT-snmp=          Net-SNMP support for Asterisk
-WANTLIB-snmp=          netsnmp netsnmpagent netsnmpmibs pthread
-LIB_DEPENDS-snmp=      net/net-snmp
+WANTLIB-snmp=          netsnmp netsnmpagent netsnmpmibs pthread BlocksRuntime
+LIB_DEPENDS-snmp=      net/net-snmp \
+                       devel/libdispatch
 .if !${BUILD_PACKAGES:M-snmp}
 CONFIGURE_ARGS+=       --with-snmp=no
 .endif
 
 # speex
 COMMENT-speex=         Speex codec for Asterisk
-WANTLIB-speex=         m ogg pthread speex speexdsp
-LIB_DEPENDS-speex=     audio/speex>=1.2rc1
+WANTLIB-speex=         m ogg pthread speex speexdsp BlocksRuntime
+LIB_DEPENDS-speex=     audio/speex>=1.2rc1 \
+                       devel/libdispatch
 .if !${BUILD_PACKAGES:M-speex}
 CONFIGURE_ARGS+=       --with-speex=no
 .endif
@@ -283,8 +273,9 @@ CONFIGURE_ARGS+=    --with-speex=no
 .if ${MULTI_PACKAGES:M-vm_imap}
 # vm_imap
 COMMENT-vm_imap=       IMAP voicemail support for Asterisk
-LIB_DEPENDS-vm_imap=   mail/alpine,-c-client
-WANTLIB-vm_imap=               c-client crypto pthread ssl
+LIB_DEPENDS-vm_imap=   mail/alpine,-c-client \
+                       devel/libdispatch
+WANTLIB-vm_imap=               c-client crypto pthread ssl BlocksRuntime
 .  if !${BUILD_PACKAGES:M-vm_imap}
 CONFIGURE_ARGS+=       --with-imap=no
 .  else
@@ -297,8 +288,9 @@ MENUSELECT+=                --enable app_voicemail_ima
 .if ${MULTI_PACKAGES:M-vm_imap}
 # vm_odbc
 COMMENT-vm_odbc=       ODBC voicemail support for Asterisk
-LIB_DEPENDS-vm_odbc=   databases/iodbc
-WANTLIB-vm_odbc=       iodbc pthread
+LIB_DEPENDS-vm_odbc=   databases/iodbc \
+                       devel/libdispatch
+WANTLIB-vm_odbc=       iodbc pthread BlocksRuntime
 .  if ${BUILD_PACKAGES:M-vm_odbc}
 MENUSELECT+=           --enable app_voicemail_odbc
 .  endif
Index: 16/Makefile
===================================================================
RCS file: /cvs/ports/telephony/asterisk/16/Makefile,v
retrieving revision 1.17
diff -u -p -r1.17 Makefile
--- 16/Makefile 27 Jun 2022 08:23:06 -0000      1.17
+++ 16/Makefile 12 Jul 2022 10:09:08 -0000
@@ -3,6 +3,16 @@ PJ_V=          2.12
 SHLIB_V=       0.0
 VERSION_SPEC=  >=16.0,<17.0
 PORTROACH=     limit:^16\.
-REVISION-main= 0
+REVISION-main=         1
+REVISION-calendar=     0
+REVISION-http_post=    0
+REVISION-kqueue=       0
+REVISION-ldap=         0
+REVISION-lua=          0
+REVISION-odbc=         0
+REVISION-pgsql=                0
+REVISION-snmp=         0
+REVISION-speex=                0
+REVISION-tds=          0
 
 .include <bsd.port.mk>
Index: 18/Makefile
===================================================================
RCS file: /cvs/ports/telephony/asterisk/18/Makefile,v
retrieving revision 1.19
diff -u -p -r1.19 Makefile
--- 18/Makefile 27 Jun 2022 08:23:07 -0000      1.19
+++ 18/Makefile 12 Jul 2022 10:09:08 -0000
@@ -3,6 +3,16 @@ PJ_V=          2.12
 SHLIB_V=       0.0
 VERSION_SPEC=  >=18.0,<19.0
 PORTROACH=     limit:^18\.
-REVISION-main= 0
+REVISION-main=         1
+REVISION-calendar=     0
+REVISION-http_post=    0
+REVISION-kqueue=       0
+REVISION-ldap=         0
+REVISION-lua=          0
+REVISION-odbc=         0
+REVISION-pgsql=                0
+REVISION-snmp=         0
+REVISION-speex=                0
+REVISION-tds=          0
 
 .include <bsd.port.mk>
Index: 19/Makefile
===================================================================
RCS file: /cvs/ports/telephony/asterisk/19/Makefile,v
retrieving revision 1.17
diff -u -p -r1.17 Makefile
--- 19/Makefile 27 Jun 2022 08:23:07 -0000      1.17
+++ 19/Makefile 12 Jul 2022 10:09:08 -0000
@@ -3,6 +3,16 @@ PJ_V=          2.12
 SHLIB_V=       0.0
 VERSION_SPEC=  >=19.0,<20.0
 # no PORTROACH marker for the highest branch, to allow finding new branches
-REVISION-main= 0
+REVISION-main=         1
+REVISION-calendar=     0
+REVISION-http_post=    0
+REVISION-kqueue=       0
+REVISION-ldap=         0
+REVISION-lua=          0
+REVISION-odbc=         0
+REVISION-pgsql=                0
+REVISION-snmp=         0
+REVISION-speex=                0
+REVISION-tds=          0
 
 .include <bsd.port.mk>

Reply via email to