# TODO:
# - cgi-bin package - separate, because of suid-root
-# - use shared versions of lpc10, gsm,...
+# - use shared versions of LIBILBC:=ilbc/libilbc.a (ilbc not enabled currently)
# - CFLAGS passing
# - fix bluetooth patch
-# - system mxml
# - ~/.asterisk_history gets encoded with \xxx on exit, each time yet again
-# - openh323 is missing regardless of BR, see http://pld.pastebin.com/f7f84c312
-# - libpath:
-# /usr/bin/ld: skipping incompatible /usr/lib/libpthread.so when searching for -lpthread
-# /usr/bin/ld: skipping incompatible /usr/lib/libpthread.a when searching for -lpthread
-# /usr/bin/ld: skipping incompatible /usr/lib/libc.so when searching for -lc
-# /usr/bin/ld: skipping incompatible /usr/lib/libc.a when searching for -lc
-# - package:
-# /usr/lib64/asterisk/modules/app_mp3.so
-# /usr/lib64/asterisk/modules/cdr_sqlite.so
-# /usr/lib64/asterisk/modules/format_ilbc.so
-# /usr/lib64/asterisk/modules/res_config_sqlite.so
-# - package for moh sound files
+# - make package for moh sound files
+# - likely odbc and imap broken:
+# *** WARNING: identical binaries are copied, not linked:
+# /usr/lib64/asterisk/modules/app_directory_odbc.so
+# and /usr/lib64/asterisk/modules/app_directory_imap.so
+# *** WARNING: identical binaries are copied, not linked:
+# /usr/lib64/asterisk/modules/app_directory_plain.so
+# and /usr/lib64/asterisk/modules/app_directory_imap.so
+# - ncurses dep gone for good (replaced by libedit)?
+# - missing/failed features:
+# $ grep =0 build_tools/menuselect-deps
+# H323=0
+# HOARD=0
+# NBS=0
+# OSPTK=0
+# RESAMPLE=0
+# SS7=0
+# VPBAPI=0
+# WINARCH=0
#
# Conditional build:
%bcond_with rxfax # without rx (also tx:-D) fax
%bcond_with zhone_hack # huge hack workarounding broken zhone channel banks which start randomly
# issuing pulse-dialled calls to weird numbers
%bcond_with bristuff # BRIstuff (Junghanns.NET BRI adapters) support
-%bcond_with verbose # verbose build
+%bcond_without apidocs # disable apidocs building
+%bcond_without verbose # verbose build
%define spandsp_version 0.0.2pre26
-%define rel 0.11
+%define rel 0.38
Summary: Asterisk PBX
Summary(pl.UTF-8): Centralka (PBX) Asterisk
Name: asterisk
# Source10-md5: 8c8fcb263b76897022b4c28052a7b439
Source11: http://soft-switch.org/downloads/spandsp/spandsp-%{spandsp_version}/asterisk-1.2.x/app_rxfax.c
# Source11-md5: ab6983b51c412883545b36993d704999
+Patch0: mxml-system.patch
+Patch1: lua51-path.patch
Patch2: %{name}-no_k6_on_sparc.patch
Patch3: %{name}-lib.patch
Patch4: %{name}-ppc.patch
Patch5: external-libedit.patch
Patch6: pkg-config-gmime.patch
Patch7: FHS-paths.patch
+Patch8: libedit-history.patch
+Patch9: pld-banner.patch
# http://soft-switch.org/downloads/spandsp/spandsp-%{spandsp_version}/asterisk-1.2.x/apps_Makefile.patch
Patch10: %{name}-txfax-Makefile.patch
-Patch12: %{name}-chan_bluetooth.patch
-Patch13: %{name}-zhone.patch
+Patch11: %{name}-chan_bluetooth.patch
+Patch12: %{name}-zhone.patch
# http://svn.debian.org/wsvn/pkg-voip/asterisk/trunk/debian/patches/bristuff
-Patch14: %{name}-bristuff.patch
-Patch15: %{name}-bristuff-build.patch
-Patch16: %{name}-bristuff-libpri.patch
+Patch13: %{name}-bristuff.patch
+Patch14: %{name}-bristuff-build.patch
+Patch15: %{name}-bristuff-libpri.patch
+Patch16: lpc10-system.patch
+Patch17: gsm-libpoison.patch
URL: http://www.asterisk.org/
BuildRequires: OSPToolkit
BuildRequires: SDL_image-devel
BuildRequires: jack-audio-connection-kit-devel
BuildRequires: libcap-devel
BuildRequires: libedit-devel
+BuildRequires: libgsm-devel
BuildRequires: libogg-devel
BuildRequires: libvorbis-devel
+BuildRequires: lpc10-devel
+BuildRequires: lua51-devel
BuildRequires: mISDNuser-devel
+BuildRequires: mxml-devel
BuildRequires: mysql-devel
BuildRequires: ncurses-devel
BuildRequires: net-snmp-devel
BuildRequires: newt-devel
BuildRequires: openais-devel
-BuildRequires: openh323-devel
+BuildRequires: openh323-devel >= 1.19.0
BuildRequires: openldap-devel
BuildRequires: openssl-devel >= 0.9.7d
BuildRequires: pam-devel
BuildRequires: radiusclient-ng-devel
BuildRequires: rpmbuild(macros) >= 1.268
BuildRequires: sed >= 4.0
-BuildRequires: spandsp-devel
-%{?with_rxfax:BuildRequires: spandsp-devel >= %{spandsp_version}}
+BuildRequires: spandsp-devel >= 0.0.5
BuildRequires: speex-devel
BuildRequires: sqlite-devel
BuildRequires: sqlite3-devel
BuildRequires: libtool-ltdl-devel
BuildRequires: libusb-devel
BuildRequires: lm_sensors-devel
-BuildRequires: lua-devel
BuildRequires: mISDN-devel
%endif
Requires: rc-scripts
Application for the Asterisk PBX that uses Festival to convert text to
speech.
+%package h323
+Summary: H.323 protocol support for Asterisk
+Group: Applications/Networking
+Requires: %{name} = %{version}-%{release}
+
+%description h323
+This channel driver (chan_h323) provides support for the H.323
+protocol for Asterisk. This is an implementation originally
+contributed by NuFone and nowdays maintained and distributed by
+Digium, Inc. Hence, it is considered the official H.323 chanel driver.
+
%package ices
Summary: Stream audio from Asterisk to an IceCast server
Group: Applications/Networking
Summary: Module that enables SNMP monitoring of Asterisk
Group: Applications/Networking
Requires: %{name} = %{version}-%{release}
+Requires: mibs-dirs
%description snmp
Module that enables SNMP monitoring of Asterisk.
%prep
%setup -q
+%patch0 -p1
+%patch1 -p1
%patch2 -p1
%patch3 -p1
%patch4 -p1
%patch5 -p0
%patch6 -p0
%patch7 -p0
-
+%patch8 -p1
+%patch9 -p1
%if %{with zhone}
sed -i -e 's|.*#define.*ZHONE_HACK.*|#define ZHONE_HACK 1|g' channels/chan_zap.c
%endif
-
%if %{with rxfax}
cd apps
%patch10 -p0
cp %{SOURCE10} .
cp %{SOURCE11} .
%endif
-
-%{?with_bluetooth:%patch12 -p1}
-%{?with_zhonehack:%patch13 -p1}
-
+%{?with_bluetooth:%patch11 -p1}
+%{?with_zhonehack:%patch12 -p1}
%if %{with bristuff}
+%patch13 -p1
%patch14 -p1
%patch15 -p1
-%patch16 -p1
%endif
+%patch16 -p1
+%patch17 -p1
# Fixup makefile so sound archives aren't downloaded/installed
%{__sed} -i -e 's/^all:.*$/all:/' sounds/Makefile
%{__sed} -i -e 's/^install:.*$/install:/' sounds/Makefile
-# avoid using it
-rm -rf imap
+# avoid using these
+rm -rf imap menuselect/mxml main/editline codecs/gsm codecs/lpc10
%build
rm -f pbx/.depend
%{__autoconf}
export ASTCFLAGS="%{rpmcflags}"
-export CPPFLAGS="%{rpmcppflags} -I/usr/include/openh323"
+export ASTLDFLAGS="%{rpmldflags}"
export WGET="/bin/true"
# be sure to invoke ./configure with our flags
-cd menuselect/mxml
-%configure2_13
-cd ../../
-
cd menuselect
-%{__aclocal}
+%{__aclocal} -I ../autoconf
%{__autoheader}
%{__autoconf}
-%configure
+# we need just plain cli for building
+%configure \
+ --without-newt \
+ --without-gtk2 \
+ --without-curses \
+ --without-ncurses
cd ..
-cd main/editline
-%configure2_13
-cd ../..
-
%configure \
%{?with_bristuff:--with-gsmat=%{_prefix}} \
--with-imap=system \
--with-gsm=/usr \
+ --with-lpc10=/usr \
--with-libedit=yes
# safe checks
cp -f .cleancount .lastclean
+# included conditionally, so make sure its there first
+%{__make} -C channels/h323 Makefile.ast \
+ %{?with_verbose:NOISY_BUILD=yes} \
+
%{__make} DEBUG= \
OPTIMIZE= \
ASTVARRUNDIR=%{_localstatedir}/run/asterisk \
touch apps/app_voicemail.o apps/app_directory.o
touch apps/app_voicemail.so apps/app_directory.so
-# it requires doxygen - I don't know if we should do this...
-# - ???
+%if %{with apidocs}
%{__make} progdocs \
DEBUG= \
OPTIMIZE= \
ASTVARLIBDIR=%{_datadir}/asterisk \
ASTDBDIR=%{_localstatedir}/spool/asterisk \
%{?with_verbose:NOISY_BUILD=yes} \
+%endif
%{__make} \
DEBUG= \
install -p %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/%{name}
cp -a %{SOURCE2} $RPM_BUILD_ROOT/etc/sysconfig/%{name}
cp -a %{SOURCE5} $RPM_BUILD_ROOT/etc/logrotate.d/%{name}
-install -D -p doc/asterisk-mib.txt $RPM_BUILD_ROOT%{_datadir}/snmp/mibs/ASTERISK-MIB.txt
-install -D -p doc/digium-mib.txt $RPM_BUILD_ROOT%{_datadir}/snmp/mibs/DIGIUM-MIB.txt
+install -D -p doc/asterisk-mib.txt $RPM_BUILD_ROOT%{_datadir}/mibs/ASTERISK-MIB.txt
+install -D -p doc/digium-mib.txt $RPM_BUILD_ROOT%{_datadir}/mibs/DIGIUM-MIB.txt
# create some directories that need to be packaged
install -d $RPM_BUILD_ROOT%{_datadir}/asterisk/moh
install -d $RPM_BUILD_ROOT%{_datadir}/asterisk/sounds
+install -d $RPM_BUILD_ROOT%{_datadir}/asterisk/licenses
install -d $RPM_BUILD_ROOT%{_localstatedir}/lib/asterisk
install -d $RPM_BUILD_ROOT%{_localstatedir}/log/asterisk/cdr-custom
install -d $RPM_BUILD_ROOT%{_localstatedir}/spool/asterisk/festival
install -d $RPM_BUILD_ROOT%{_localstatedir}/spool/asterisk/outgoing
install -d $RPM_BUILD_ROOT%{_localstatedir}/spool/asterisk/uploads
+# upstream prebuilt binaries (register, benchg729) use /var location
+ln -s %{_datadir}/asterisk/licenses $RPM_BUILD_ROOT%{_localstatedir}/lib/asterisk
+
# We're not going to package any of the sample AGI scripts
rm -f $RPM_BUILD_ROOT%{_datadir}/asterisk/agi-bin/*
rm -rf $RPM_BUILD_ROOT%{_datadir}/asterisk/firmware/iax/*
+%if %{with apidocs}
find doc/api/html -name '*.map' -size 0 -delete
+%endif
%clean
rm -rf $RPM_BUILD_ROOT
%postun
if [ "$1" = 0 ]; then
- %groupremove asterisk
%userremove asterisk
+ %groupremove asterisk
fi
%pre dahdi
/sbin/chkconfig --del asterisk
fi
+%triggerpostun -- %{name} < 1.6.1.12-0.1
+# chown to asterisk previously root owned files
+# loose one (not one that cames from rpm), as we're not trying to split the
+# hair with file permission bits.
+chown -R asterisk:asterisk /var/spool/asterisk
+chown -R asterisk:asterisk /var/lib/asterisk
+
%files
%defattr(644,root,root,755)
%doc README* *.txt ChangeLog BUGS CREDITS configs
%attr(640,root,asterisk) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/asterisk/extensions.conf
%attr(640,root,asterisk) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/asterisk/features.conf
%attr(640,root,asterisk) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/asterisk/followme.conf
-%attr(640,root,asterisk) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/asterisk/h323.conf
%attr(640,root,asterisk) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/asterisk/http.conf
%attr(640,root,asterisk) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/asterisk/iax.conf
%attr(640,root,asterisk) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/asterisk/iaxprov.conf
%attr(755,root,root) %{_libdir}/asterisk/modules/app_milliwatt.so
%attr(755,root,root) %{_libdir}/asterisk/modules/app_mixmonitor.so
%attr(755,root,root) %{_libdir}/asterisk/modules/app_morsecode.so
+%attr(755,root,root) %{_libdir}/asterisk/modules/app_mp3.so
%attr(755,root,root) %{_libdir}/asterisk/modules/app_nbscat.so
%attr(755,root,root) %{_libdir}/asterisk/modules/app_parkandannounce.so
%attr(755,root,root) %{_libdir}/asterisk/modules/app_playback.so
%attr(755,root,root) %{_libdir}/asterisk/modules/codec_g726.so
%attr(755,root,root) %{_libdir}/asterisk/modules/codec_gsm.so
%attr(755,root,root) %{_libdir}/asterisk/modules/codec_lpc10.so
-#%attr(755,root,root) %{_libdir}/asterisk/modules/codec_resample.so
%attr(755,root,root) %{_libdir}/asterisk/modules/codec_speex.so
%attr(755,root,root) %{_libdir}/asterisk/modules/codec_ulaw.so
%attr(755,root,root) %{_libdir}/asterisk/modules/format_g723.so
%attr(755,root,root) %{_libdir}/asterisk/modules/format_gsm.so
%attr(755,root,root) %{_libdir}/asterisk/modules/format_h263.so
%attr(755,root,root) %{_libdir}/asterisk/modules/format_h264.so
+%attr(755,root,root) %{_libdir}/asterisk/modules/format_ilbc.so
%attr(755,root,root) %{_libdir}/asterisk/modules/format_jpeg.so
%attr(755,root,root) %{_libdir}/asterisk/modules/format_ogg_vorbis.so
%attr(755,root,root) %{_libdir}/asterisk/modules/format_pcm.so
-%attr(755,root,root) %{_libdir}/asterisk/modules/format_sln.so
%attr(755,root,root) %{_libdir}/asterisk/modules/format_sln16.so
+%attr(755,root,root) %{_libdir}/asterisk/modules/format_sln.so
%attr(755,root,root) %{_libdir}/asterisk/modules/format_vox.so
%attr(755,root,root) %{_libdir}/asterisk/modules/format_wav_gsm.so
%attr(755,root,root) %{_libdir}/asterisk/modules/format_wav.so
%attr(755,root,root) %{_libdir}/asterisk/modules/res_clioriginate.so
%attr(755,root,root) %{_libdir}/asterisk/modules/res_convert.so
%attr(755,root,root) %{_libdir}/asterisk/modules/res_crypto.so
-%attr(755,root,root) %{_libdir}/asterisk/modules/res_indications.so
%attr(755,root,root) %{_libdir}/asterisk/modules/res_http_post.so
+%attr(755,root,root) %{_libdir}/asterisk/modules/res_indications.so
%attr(755,root,root) %{_libdir}/asterisk/modules/res_limit.so
%attr(755,root,root) %{_libdir}/asterisk/modules/res_monitor.so
%attr(755,root,root) %{_libdir}/asterisk/modules/res_musiconhold.so
%attr(755,root,root) %{_libdir}/asterisk/modules/res_smdi.so
%attr(755,root,root) %{_libdir}/asterisk/modules/res_speech.so
%attr(755,root,root) %{_libdir}/asterisk/modules/res_timing_pthread.so
+#%attr(755,root,root) %{_libdir}/asterisk/modules/codec_resample.so
#%attr(755,root,root) %{_libdir}/asterisk/modules/test_dlinklists.so
#%attr(755,root,root) %{_libdir}/asterisk/modules/test_heap.so
%dir %{_datadir}/asterisk/images
%dir %{_datadir}/asterisk/moh
%dir %{_datadir}/asterisk/sounds
+%dir %attr(750,root,asterisk) %{_datadir}/asterisk/licenses
%dir %attr(750,root,asterisk) %{_datadir}/asterisk/keys
+# no need to protect publicly downloaded and packaged .pub
%{_datadir}/asterisk/keys/*.pub
%{_datadir}/asterisk/images/*.jpg
%{_datadir}/asterisk/static-http
%{_datadir}/asterisk/phoneprov
%attr(770,root,asterisk) %dir %{_localstatedir}/lib/asterisk
+%{_localstatedir}/lib/asterisk/licenses
%attr(770,root,asterisk) %dir %{_localstatedir}/log/asterisk
%attr(770,root,asterisk) %dir %{_localstatedir}/log/asterisk/cdr-csv
%{_includedir}/asterisk/*.h
%{_includedir}/asterisk.h
+%if %{with apidocs}
%files apidocs
%defattr(644,root,root,755)
%doc doc/api/html/*
+%endif
%files ais
%defattr(644,root,root,755)
#%attr(770,root,asterisk) %dir %{_localstatedir}/spool/asterisk/festival
%attr(755,root,root) %{_libdir}/asterisk/modules/app_festival.so
+%files h323
+%defattr(644,root,root,755)
+%attr(640,root,asterisk) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/asterisk/h323.conf
+%attr(755,root,root) %{_libdir}/asterisk/modules/chan_h323.so
+
%files ices
%defattr(644,root,root,755)
%doc contrib/asterisk-ices.xml
%files lua
%defattr(644,root,root,755)
%attr(640,root,asterisk) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/asterisk/extensions.lua
-#%attr(755,root,root) %{_libdir}/asterisk/modules/pbx_lua.so
+%attr(755,root,root) %{_libdir}/asterisk/modules/pbx_lua.so
%files ldap
%defattr(644,root,root,755)
%doc doc/snmp.txt
%attr(640,root,asterisk) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/asterisk/res_snmp.conf
%attr(755,root,root) %{_libdir}/asterisk/modules/res_snmp.so
-# XXX: system mibs dir
-%{_datadir}/snmp/mibs/ASTERISK-MIB.txt
-%{_datadir}/snmp/mibs/DIGIUM-MIB.txt
+%{_datadir}/mibs/ASTERISK-MIB.txt
+%{_datadir}/mibs/DIGIUM-MIB.txt
%files sqlite
%defattr(644,root,root,755)
%attr(640,root,asterisk) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/asterisk/cdr_sqlite3_custom.conf
%attr(755,root,root) %{_libdir}/asterisk/modules/cdr_sqlite3_custom.so
+%attr(755,root,root) %{_libdir}/asterisk/modules/cdr_sqlite.so
+%attr(755,root,root) %{_libdir}/asterisk/modules/res_config_sqlite.so
%files tds
%defattr(644,root,root,755)