Blob Blame History Raw
%global betaver beta3
%global tclver 0.2
%global mainver 2.1
%{!?tcl_version: %global tcl_version %(echo 'puts $tcl_version' | tclsh)}
%{!?tcl_sitearch: %global tcl_sitearch %{_libdir}/tcl%{tcl_version}}
%global tkphonearch %{_arch}

Name:		iaxclient
Version:	%{mainver}
Release:	0.37.%{betaver}%{?dist}
Summary:	Library for creating telephony solutions that interoperate with Asterisk
License:	LGPLv2+
URL:		http://iaxclient.wiki.sourceforge.net/
Source0:	http://downloads.sourceforge.net/iaxclient/%{name}-%{version}%{betaver}.tar.gz
Source1:	tkiaxphone.desktop
Source2:	wxiax.desktop
Source3:	phone.png
Source4:	run-tkiaxphone.sh
Patch0:		iaxclient-2.1beta3-wxGTK28.patch
Patch1:		iaxclient-2.1beta3-tkphone-cleanups.patch
Patch2:		iaxclient-2.1beta3-tcl-includedir.patch
Patch3:		iaxclient-2.1beta3-tcl-libdir.patch
Patch4:		iaxclient-2.1beta3-tcl-nodoc.patch
Patch5:		iaxclient-2.1beta3-theora-detection.patch
Patch6:		iaxclient-2.1beta3-implicit-DSO-libm.patch
Patch7:		iaxclient-2.1beta3-arm-barriers.patch
Patch8:		iaxclient-portable.patch
# Link against the locally build iax
Patch9:		iaxclient-link-local-iax.patch
# Use system ilbc
Patch10:	iaxclient-system-ilbc.patch
# Add missing -fPIC to configure.ac test
Patch11:	iaxclient-2.1beta3-fpic.patch
Patch12:        wxwidgets-3.0.patch
Patch13:        gtk3.patch
# Fix some makefile issues
Patch20:	iax-0.2.3_makefile.patch
# Fix format-security issue
Patch21:	iax-0.2.3_format-security.patch
# Add missing #include <sys/socket.h>
Patch22:	iax-0.2.3_socket.patch

BuildRequires:  gcc-c++
BuildRequires:  make
BuildRequires:	speex-devel, libtheora-devel, gsm-devel, portaudio-devel
BuildRequires:	tk-devel, gtk3-devel, SDL-devel, libogg-devel, liboggz-devel
BuildRequires:	wxGTK3-devel, libvidcap-devel, desktop-file-utils, libtool
BuildRequires:	spandsp-devel, ilbc-devel, speexdsp-devel

%description
Iaxclient is an open source, multiplatform library for creating telephony 
solutions that interoperate with Asterisk, the Open Source PBX.

Although asterisk supports other VOIP protocols (including SIP, and with 
patches, H.323), IAX's simple, lightweight nature gives it several advantages, 
particularly in that it can operate easily through NAT and packet firewalls, 
and it is easily extensible and simple to understand.
Iaxclient pulls together the wide array of open source technologies required 
for telephony applications.

%package libiax
Summary:	IAX library
Obsoletes:	iax < 0.2.3

%description libiax
The %{name}-libs package contains the IAX library version 0.2.3, an improved
version of the abandoned upstream IAX library.

%package libiax-devel
Summary:	IAX library development files
Requires:	%{name}-libiax%{?_isa} = %{version}-%{release}
Obsoletes:	iax-devel < 0.2.3

%description libiax-devel
The %{name}-libiax-devel package contains libraries and header files for
developing applications that use %{name}-libiax.


%package devel
Summary:	Development files for %{name}
Requires:	pkgconfig
Requires:	%{name} = %{mainver}-%{release}

%description devel
The %{name}-devel package contains libraries and header files for
developing applications that use %{name}.

%package -n tcl-iaxclient
Summary:	Tcl interface to iax2 client lib
Version:	%{tclver}
License:	BSD
Requires:	tcl(abi) = 8.6
Requires:	%{name} = %{mainver}-%{release}

%description -n tcl-iaxclient
Tcl extensions to iaxclient libraries.

%package -n tkiaxphone
Summary:	Tk IAX Phone Client
Version:	%{mainver}
License:	LGPLv2+
Requires:	tcl(abi) = 8.6
Requires:	%{name} = %{mainver}-%{release}

%description -n tkiaxphone
Tk IAX Phone Client.

%package -n wxiax
Summary:	wx IAX Phone Client
Version:	%{mainver}
License:	LGPLv2+
Requires:	%{name} = %{mainver}-%{release}

%description -n wxiax
wx IAX Phone Client.

%prep
%setup -q -n %{name}-%{mainver}%{betaver}
%patch0 -p1 -b .wxGTK28
%patch1 -p1 -b .tkphone
%patch2 -p1 -b .includedir
%patch3 -p1 -b .libdir
%patch4 -p1 -b .nodoc
%patch5 -p1 -b .theoradetect
%patch6 -p1 -b .DSO
%patch7 -p1 -b .arm
%patch8 -p1 -b .portable
%patch9 -p1 -b .linkiax
%patch10 -p1 -b .ilbc
%patch11 -p1 -b .fpic
%patch12 -p1 -b .wx3
%patch13 -p1 -b .gtk3

# Delete bundled libraries (except libiax2) just to be sure
rm -rf lib/{gsm, portmixer, sox, spandsp}

autoreconf -vif

chmod -x contrib/tcl/README.txt

(
cd lib/libiax2
%patch20 -p1 -b .iaxmakefile
%patch21 -p1 -b .iaxfmtsecurity
%patch22 -p1 -b .iaxsocket

sed -i 's|${exec_prefix}/lib|${exec_prefix}/%{_lib}|g' iax-config.in
sed -i 's|/usr/lib|%{_libdir}|g' iax-config.in

autoreconf -vif
)

%build
(
cd lib/libiax2
%configure --disable-static
make %{?_smp_mflags} UCFLAGS="%{optflags}"
)

%configure --disable-static
# sed -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' libtool
# sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' libtool
make %{?_smp_mflags} LIBTOOL="%{_bindir}/libtool"

(
cd contrib/tcl/
%configure
make %{?_smp_mflags} LIBTOOL="%{_bindir}/libtool"
)

%install
%make_install -C lib/libiax2

%make_install LIBTOOL="%{_bindir}/libtool"

find %{buildroot} -name '*.a' -exec rm -f {} ';'
find %{buildroot} -name '*.la' -exec rm -f {} ';'

install -d %{buildroot}%{tcl_sitearch}
mv %{buildroot}%{_libdir}/iaxclient %{buildroot}%{tcl_sitearch}/

%make_install LIBTOOL="%{_bindir}/libtool" -C contrib/tcl
mv %{buildroot}%{_libdir}/tcliaxclient0.2 %{buildroot}%{tcl_sitearch}/tcliaxclient0.2
chmod +x %{buildroot}%{tcl_sitearch}/iaxclient/tkphone/phone.ui.tcl
chmod +x %{buildroot}%{tcl_sitearch}/iaxclient/tkphone/pref.ui.tcl
install -p %{SOURCE4} %{buildroot}%{_bindir}

install -Dd %{buildroot}%{_datadir}/pixmaps/
install -p %{SOURCE3} %{buildroot}%{_datadir}/pixmaps/tkiaxphone.png
install -p %{SOURCE3} %{buildroot}%{_datadir}/pixmaps/wxiax.png

install -Dd %{buildroot}%{_datadir}/applications/

desktop-file-install --vendor ""			\
	--dir $RPM_BUILD_ROOT%{_datadir}/applications	\
	%{SOURCE1}

desktop-file-install --vendor ""			\
	--dir $RPM_BUILD_ROOT%{_datadir}/applications	\
	%{SOURCE2}	

cd %{buildroot}%{tcl_sitearch}/iaxclient/tkphone/
ln -s iaxcli iaxcli-Linux-%{tkphonearch}


%ldconfig_scriptlets

%ldconfig_scriptlets libiax

%files
%doc AUTHORS ChangeLog README
%license COPYING.LIB
%{_bindir}/iaxcomm
%{_bindir}/iaxphone
%{_datadir}/iaxcomm/
%{_libdir}/libiaxclient.so.*

%files libiax
%doc lib/libiax2/ChangeLog lib/libiax2/COPYING lib/libiax2/COPYING.LIB
%{_libdir}/libiax.so.*

%files libiax-devel
%{_bindir}/iax-config
%{_includedir}/iax/
%{_libdir}/libiax.so

%files devel
%{_bindir}/stresstest
%{_bindir}/testcall
%{_bindir}/vtestcall
%{_includedir}/iaxclient.h
%{_libdir}/libiaxclient.so
%{_libdir}/pkgconfig/iaxclient.pc

%files -n tcl-iaxclient
%doc contrib/tcl/README.txt
%{tcl_sitearch}/tcliaxclient0.2/

%files -n tkiaxphone
%{_bindir}/run-tkiaxphone.sh
%{_bindir}/tkiaxphone
%{tcl_sitearch}/iaxclient/
%{_datadir}/applications/tkiaxphone.desktop
%{_datadir}/pixmaps/tkiaxphone.png

%files -n wxiax
%{_bindir}/wxiax
%{_datadir}/applications/wxiax.desktop
%{_datadir}/pixmaps/wxiax.png

%changelog
* Tue Jul 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 2.1-0.37.beta3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild

* Wed Jan 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 2.1-0.36.beta3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild

* Fri Oct 25 2019 Scott Talbert <swt@techie.net> - 2.1-0.35.beta3
- Rebuild with wxWidgets GTK3 build

* Thu Jul 25 2019 Fedora Release Engineering <releng@fedoraproject.org> - 2.1-0.34.beta3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild

* Fri Feb 01 2019 Fedora Release Engineering <releng@fedoraproject.org> - 2.1-0.33.beta3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild

* Thu Aug 23 2018 Scott Talbert <swt@techie.net> - 2.1-0.32.beta3
- Rebuild with wxWidgets 3.0

* Fri Jul 13 2018 Fedora Release Engineering <releng@fedoraproject.org> - 2.1-0.31.beta3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild

* Sun Feb 18 2018 Sandro Mani <manisandro@gmail.com> - 2.1-0.30.beta3
- Add missing BR: gcc-c++, make

* Wed Feb 07 2018 Fedora Release Engineering <releng@fedoraproject.org> - 2.1-0.29.beta3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild

* Wed Aug 02 2017 Fedora Release Engineering <releng@fedoraproject.org> - 2.1-0.28.beta3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild

* Wed Jul 26 2017 Fedora Release Engineering <releng@fedoraproject.org> - 2.1-0.27.beta3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild

* Fri Feb 10 2017 Fedora Release Engineering <releng@fedoraproject.org> - 2.1-0.26.beta3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild

* Thu Feb 04 2016 Fedora Release Engineering <releng@fedoraproject.org> - 2.1-0.25.beta3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild

* Tue Jan 19 2016 Tom Callaway <spot@fedoraproject.org> - 2.1-0.24.beta3
- spec file cleanups

* Wed Jun 17 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.1-0.23.beta3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild

* Mon May 04 2015 Sandro Mani <manisandro@gmail.com> - 2.1-0.22.beta3
- Rebuild (GCC5)

* Thu Jan 08 2015 Sandro Mani <manisandro@gmail.com> - 2.1-0.21.beta3
- Ship bundled libiax2 in -libiax
- Use system spandsp
- Use system ilbc

* Sat Aug 16 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.1-0.20.beta3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild

* Thu Jul  3 2014 Peter Robinson <pbrobinson@fedoraproject.org> 2.1-0.19.beta3
- Add patch to fix build on aarch64

* Sat Jun 07 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.1-0.18.beta3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild

* Tue May 27 2014 Jaroslav Škarvada <jskarvad@redhat.com> - 2.1-0.17.beta3
- Updated requires to require tcl-8.6

* Wed May 21 2014 Jaroslav Škarvada <jskarvad@redhat.com> - 2.1-0.16.beta3
- Rebuilt for https://fedoraproject.org/wiki/Changes/f21tcl86

* Tue Dec 03 2013 Tom Callaway <spot@fedoraproject.org> - 2.1-0.15.beta3
- Fix format-security issue (bz 1037126)

* Sat Aug 03 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.1-0.14.beta3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild

* Mon Jul 15 2013 Tom Callaway <spot@fedoraproject.org> - 2.1-0.13.beta3
- add memory barriers for arm (bz 927443)

* Thu Feb 14 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.1-0.12.beta3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild

* Thu Jul 19 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.1-0.11.beta3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild

* Fri Jan 13 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.1-0.10.beta3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild

* Tue Dec 06 2011 Adam Jackson <ajax@redhat.com> - 2.1-0.9.beta3
- Rebuild for new libpng

* Wed Feb 09 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.1-0.8.beta3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild

* Wed Jul 14 2010 Dan Horák <dan@danny.cz> - 2.1-0.7.beta3
- rebuilt against wxGTK-2.8.11-2

* Wed Jun 02 2010 Rakesh Pandit <rakesh@fedoraproject.org> - 2.1-0.6.beta3
- Bump for new liboggz lib

* Wed Feb 10 2010 Tom "spot" Callaway <tcallawa@redhat.com> - 2.1-0.5.beta3
- fix implicit DSO linking issue with libm

* Fri Jul 24 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.1-0.4.beta3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild

* Thu Mar 12 2009 Tom "spot" Callaway <tcallawa@redhat.com> 2.1-0.3.beta3
- fix lib/libiax2/iax-config.in to not use wrong /usr/lib

* Mon Nov  3 2008 Tom "spot" Callaway <tcallawa@redhat.com> 2.1-0.2.beta3
- fix theora detection

* Tue Jun 10 2008 Tom "spot" Callaway <tcallawa@redhat.com> 2.1-0.1.beta3
- Initial package for Fedora