Andreas Wacknitz
2024-03-24 3df02058fb3d48a999bbc8d5d56c2910fbc249a4
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
#
# This file and its contents are supplied under the terms of the
# Common Development and Distribution License ("CDDL"). You may
# only use this file in accordance with the terms of the CDDL.
#
# A full copy of the text of the CDDL should have accompanied this
# source. A copy of the CDDL is also available via the Internet at
# http://www.illumos.org/license/CDDL.
#
 
#
# Copyright 2016 Andrey Sokolov. All rights reserved.
# Copyright 2017 Alexander Pyhalov
# Copyright 2021 Olaf Bohlen
# Copyright 2023 Friedrich Kink
#
 
OPENSSL_VERSION= 3.1
BUILD_BITS= 64
USE_PARALLEL_BUILD= yes
include ../../../make-rules/shared-macros.mk
 
COMPONENT_NAME=        asterisk
COMPONENT_VERSION=    21.2.0
COMPONENT_SUMMARY=    Asterisk is an all-purpose telephony server
COMPONENT_SRC=        $(COMPONENT_NAME)-$(COMPONENT_VERSION)
COMPONENT_ARCHIVE=    $(COMPONENT_SRC).tar.gz
COMPONENT_ARCHIVE_HASH=    sha256:5737a976e9252e2d5e87d2e8176b1e07415057291c656b7547d0a79e0e8c3969
COMPONENT_PROJECT_URL=    https://www.asterisk.org
COMPONENT_ARCHIVE_URL=    https://downloads.asterisk.org/pub/telephony/asterisk/old-releases/$(COMPONENT_ARCHIVE)
COMPONENT_FMRI=        network/asterisk
COMPONENT_CLASSIFICATION=Applications/Internet
COMPONENT_LICENSE=    GPLv2
COMPONENT_LICENSE_FILE=    COPYING
 
TEST_TARGET= $(NO_TESTS) 
include $(WS_MAKE_RULES)/common.mk
 
PATH= $(PATH.gnu)
 
PATCH_LEVEL= 0
 
COMPONENT_PRE_CONFIGURE_ACTION += ($(CLONEY) $(SOURCE_DIR) $(@D));
 
#
# res_geolocation does not build with the illumos linker due to missing capabilities/options
# no workaround known so far
# also remove deprecated functions
#
COMPONENT_POST_CONFIGURE_ACTION += ( \
    cd $(@D); \
    $(GSED) -i -e 's:LDAP_INCLUDE=:LDAP_INCLUDE=-I/usr/include/openldap:' makeopts; \
    $(GSED) -i -e 's/ -lldap-2.6//' makeopts; \
    $(GSED) -i -e 's/LDAP_LIB= -lldap/LDAP_LIB= -lldap-2.6/' makeopts; \
    $(GSED) -i -e "s:-L$(OPENSSL_PREFIX)/lib :-L$(OPENSSL_LIBDIR.$(BITS)) :" makeopts; \
    $(GSED) -i -e "s:$(MYSQL_HOME)$(MYSQL_HOME):$(MYSQL_HOME):g" makeopts; \
    $(GSED) -i -e "s:-L$(MYSQL_LIBDIR):-L$(MYSQL_LIBDIR) -R$(MYSQL_LIBDIR):" makeopts; \
    $(GSED) -i -e "s:-L$(PG_LIBDIR.$(BITS)):-L$(PG_LIBDIR.$(BITS)) -R$(PG_LIBDIR.$(BITS)):" makeopts; \
    $(GMAKE) menuselect.makeopts; \
    ./menuselect/menuselect --disable res_geolocation menuselect.makeopts; \
    ./menuselect/menuselect --enable format_mp3 menuselect.makeopts; \
    ./menuselect/menuselect --enable res_config_mysql menuselect.makeopts; \
    ./menuselect/menuselect --enable res_mwi_external menuselect.makeopts; \
    ./menuselect/menuselect --enable res_chan_stats menuselect.makeopts; \
    ./menuselect/menuselect --enable res_endpoint_stats menuselect.makeopts; \
    ./menuselect/menuselect --enable res_stasis_mailbox menuselect.makeopts; \
    ./menuselect/menuselect --enable res_mwi_external_ami menuselect.makeopts; \
    ./menuselect/menuselect --enable app_voicemail_odbc menuselect.makeopts; \
    ./menuselect/menuselect --enable app_saycounted menuselect.makeopts; \
    ./menuselect/menuselect --enable app_statsd menuselect.makeopts; \
    ./menuselect/menuselect --enable G711_NEW_ALGORITHM menuselect.makeopts; \
    ./menuselect/menuselect --enable G711_REDUCED_BRANCHING menuselect.makeopts; \
    ./menuselect/menuselect --disable app_adsiprog menuselect.makeopts; \
    ./menuselect/menuselect --disable app_getcpeid menuselect.makeopts; \
    ./menuselect/menuselect --disable res_adsi menuselect.makeopts; \
    );
 
CONFIGURE_BINDIR=    /usr/bin
CONFIGURE_SBINDIR=    /usr/sbin
 
CONFIGURE_OPTIONS +=    --sysconfdir=$(ETCDIR)
CONFIGURE_OPTIONS +=    --localstatedir=$(VARDIR)
CONFIGURE_OPTIONS +=    --with-gnu-ld=no
CONFIGURE_OPTIONS +=    --with-crypto=$(OPENSSL_PREFIX)
CONFIGURE_OPTIONS +=    --with-ssl=$(OPENSSL_PREFIX)
CONFIGURE_OPTIONS +=    --with-pjproject-bundled
#CONFIGURE_OPTIONS +=    --with-libjwt-bundled
CONFIGURE_OPTIONS +=    --with-gsm=internal
CONFIGURE_OPTIONS +=    --with-ilbc=internal
CONFIGURE_OPTIONS +=    --with-unixodbc
CONFIGURE_OPTIONS +=    --with-ldap
CONFIGURE_OPTIONS +=    --with-gmime
CONFIGURE_OPTIONS +=    --with-netsnmp
CONFIGURE_OPTIONS +=    --with-vorbis
CONFIGURE_OPTIONS +=    --with-ogg
CONFIGURE_OPTIONS +=    --with-opus
CONFIGURE_OPTIONS +=    --with-sdl
CONFIGURE_OPTIONS +=    --with-neon
CONFIGURE_OPTIONS +=    --with-lua
CONFIGURE_OPTIONS +=    --with-tds
CONFIGURE_OPTIONS +=    --with-jansson
CONFIGURE_OPTIONS +=    --with-libedit
CONFIGURE_OPTIONS +=    --with-libxml2
CONFIGURE_OPTIONS +=    --with-libxslt
CONFIGURE_OPTIONS +=    --with-libcurl
CONFIGURE_OPTIONS +=    --with-gtk2
CONFIGURE_OPTIONS +=    --with-popt
CONFIGURE_OPTIONS +=    --with-spandsp
CONFIGURE_OPTIONS +=    --with-speex
CONFIGURE_OPTIONS +=    --with-speexdsp
CONFIGURE_OPTIONS +=    --with-mysqlclient=$(MYSQL_HOME)
#CONFIGURE_OPTIONS +=    --with-avcodec
CONFIGURE_OPTIONS +=    --with-postgres=$(PG_HOME)
CONFIGURE_OPTIONS +=    NOISY_BUILD=yes
CONFIGURE_OPTIONS +=    PKG_CONFIG_PATH=$(PKG_CONFIG_PATH.$(BITS))
CONFIGURE_OPTIONS +=    LDFLAGS="-m64 -lldap-2.6 -L$(JPEG_LIBDIR)"
CONFIGURE_OPTIONS +=    CPPFLAGS="-I/usr/include/jansson -I/usr/include/odbc -I/usr/include/openldap"
# HAVE_OPENSSL_BIO_METHOD not properly recognised by configure therefore expiclitly set
CONFIGURE_OPTIONS +=    CFLAGS="-m64 -I/usr/include/odbc -DHAVE_OPENSSL_BIO_METHOD $(JPEG_CPPFLAGS) $(JPEG_CFLAGS)"
CONFIGURE_OPTIONS +=    CXXFLAGS="-m64 $(JPEG_CPPFLAGS) $(JPEG_CFLAGS)"
 
COMPONENT_INSTALL_TARGETS += samples
 
# Build dependencies
REQUIRED_PACKAGES += $(PG_DEVELOPER_PKG)
REQUIRED_PACKAGES += $(MYSQL_BASEPKG)
REQUIRED_PACKAGES += library/popt
 
# Auto-generated dependencies
REQUIRED_PACKAGES += $(MYSQL_LIBRARY_PKG)
REQUIRED_PACKAGES += $(PG_LIBRARY_PKG)
REQUIRED_PACKAGES += SUNWcs
REQUIRED_PACKAGES += codec/speex
REQUIRED_PACKAGES += database/sqlite-3
REQUIRED_PACKAGES += library/freetds
REQUIRED_PACKAGES += library/glib2
REQUIRED_PACKAGES += library/gmime3
REQUIRED_PACKAGES += library/jansson
REQUIRED_PACKAGES += library/libedit
REQUIRED_PACKAGES += library/libical
REQUIRED_PACKAGES += library/libogg
REQUIRED_PACKAGES += library/libvorbis
REQUIRED_PACKAGES += library/libxml2
REQUIRED_PACKAGES += library/libxslt
REQUIRED_PACKAGES += library/neon
REQUIRED_PACKAGES += library/openldap
REQUIRED_PACKAGES += library/security/openssl-31
REQUIRED_PACKAGES += library/spandsp
REQUIRED_PACKAGES += library/speexdsp
REQUIRED_PACKAGES += library/unixodbc
REQUIRED_PACKAGES += library/zlib
REQUIRED_PACKAGES += runtime/lua-54
REQUIRED_PACKAGES += shell/bash
REQUIRED_PACKAGES += shell/ksh93
REQUIRED_PACKAGES += system/library
REQUIRED_PACKAGES += system/library/libupnp
REQUIRED_PACKAGES += system/library/math
REQUIRED_PACKAGES += system/management/snmp/net-snmp
REQUIRED_PACKAGES += web/curl