diff --git a/iaxclient-c99.patch b/iaxclient-c99.patch new file mode 100644 index 0000000..42e0c03 --- /dev/null +++ b/iaxclient-c99.patch @@ -0,0 +1,28 @@ +Include for the gettimeofday function. This prevents an +implicit function declaration and build failures with future +compilers. + +Submitted upstream: + +diff -ur iaxclient-2.1beta3.orig/simpleclient/stresstest/file.c iaxclient-2.1beta3/simpleclient/stresstest/file.c +--- iaxclient-2.1beta3.orig/simpleclient/stresstest/file.c 2008-04-07 18:05:27.000000000 +0200 ++++ iaxclient-2.1beta3/simpleclient/stresstest/file.c 2023-02-24 15:00:47.282858961 +0100 +@@ -1,6 +1,7 @@ + #include + #include + #include ++#include + #include "file.h" + + #ifdef __GNUC__ +diff -ur iaxclient-2.1beta3.orig/simpleclient/stresstest/stresstest.c iaxclient-2.1beta3/simpleclient/stresstest/stresstest.c +--- iaxclient-2.1beta3.orig/simpleclient/stresstest/stresstest.c 2008-04-07 18:05:27.000000000 +0200 ++++ iaxclient-2.1beta3/simpleclient/stresstest/stresstest.c 2023-02-24 15:00:33.952996082 +0100 +@@ -24,6 +24,7 @@ + #include + #include + #include ++#include + + #include "iaxclient.h" + #include "file.h" diff --git a/iaxclient-gcc14.patch b/iaxclient-gcc14.patch new file mode 100644 index 0000000..92122b6 --- /dev/null +++ b/iaxclient-gcc14.patch @@ -0,0 +1,78 @@ +diff -rupN iaxclient-2.1beta3/simpleclient/stresstest/file.c iaxclient-2.1beta3-new/simpleclient/stresstest/file.c +--- iaxclient-2.1beta3/simpleclient/stresstest/file.c 2008-04-07 18:05:27.000000000 +0200 ++++ iaxclient-2.1beta3-new/simpleclient/stresstest/file.c 2024-01-30 08:30:07.301340562 +0100 +@@ -65,11 +65,12 @@ void append_node(struct ogg_stream *os, + * + * To whoever came up with this convoluted scheme: please consider a change of careers. + */ +-int read_theora_cb(OGGZ *oggz, ogg_packet *op, long serialno, void *data) ++int read_theora_cb(OGGZ *oggz, oggz_packet *ozp, long serialno, void *data) + { + struct op_node *node; + struct theora_headers *th; + long timestamp = 0; ++ ogg_packet *op = &(ozp->op); + + //mylog("Got theora packet, serialno=%d, size=%d, packetno=%lld, granulepos=%lld\n", + // serialno, op->bytes, op->packetno, op->granulepos); +@@ -115,11 +116,12 @@ int read_theora_cb(OGGZ *oggz, ogg_packe + return 0; + } + +-int read_speex_cb(OGGZ *oggz, ogg_packet *op, long serialno, void *data) ++int read_speex_cb(OGGZ *oggz, oggz_packet *ozp, long serialno, void *data) + { + struct op_node *node; + long timestamp; + static int cnt = 0; ++ ogg_packet *op = &(ozp->op); + + timestamp = audio_stream->page_ts + audio_stream->page_count * SPEEX_FRAME_DURATION; + audio_stream->page_count++; +@@ -138,12 +140,13 @@ int read_speex_cb(OGGZ *oggz, ogg_packet + return 0; + } + +-int read_cb(OGGZ *oggz, ogg_packet *op, long serialno, void *data) ++int read_cb(OGGZ *oggz, oggz_packet *ozp, long serialno, void *data) + { + struct theora_headers *th; + + const char theoraId[] = "\x80theora"; + const char speexId[] = "Speex "; ++ ogg_packet *op = &(ozp->op); + + if ( memcmp(op->packet, theoraId, strlen(theoraId)) == 0 ) + { +@@ -157,13 +160,13 @@ int read_cb(OGGZ *oggz, ogg_packet *op, + theora_comment_init(&(th->tc)); + video_stream->data = th; + +- read_theora_cb(oggz, op, serialno, data); ++ read_theora_cb(oggz, ozp, serialno, data); + } else if ( memcmp(op->packet, speexId, strlen(speexId)) == 0 ) + { + //mylog("Detected a Speex stream with serialno=%d\n", serialno); + oggz_set_read_callback(oggz, serialno, read_speex_cb, NULL); + audio_stream->serialno = serialno; +- read_speex_cb(oggz, op, serialno, data); ++ read_speex_cb(oggz, ozp, serialno, data); + } else + { + mylog("Got unknown ogg packet, serialno=%d, size=%d, packetno=%d, granulepos=%d\n", +diff -rupN iaxclient-2.1beta3/simpleclient/stresstest/file.h iaxclient-2.1beta3-new/simpleclient/stresstest/file.h +--- iaxclient-2.1beta3/simpleclient/stresstest/file.h 2008-04-07 18:05:27.000000000 +0200 ++++ iaxclient-2.1beta3-new/simpleclient/stresstest/file.h 2024-01-30 08:26:43.708245923 +0100 +@@ -39,9 +39,9 @@ struct theora_headers + int have_headers; + }; + +-int read_theora_cb(OGGZ *oggz, ogg_packet *op, long serialno, void *data); +-int read_speex_cb(OGGZ *oggz, ogg_packet *op, long serialno, void *data); +-int read_cb(OGGZ *oggz, ogg_packet *op, long serialno, void *data); ++int read_theora_cb(OGGZ *oggz, oggz_packet *ozp, long serialno, void *data); ++int read_speex_cb(OGGZ *oggz, oggz_packet *ozp, long serialno, void *data); ++int read_cb(OGGZ *oggz, oggz_packet *ozp, long serialno, void *data); + int read_page_cb(OGGZ *oggz, const ogg_page *og, long serialno, void *data); + void load_ogg_file(const char *filename); + diff --git a/iaxclient.spec b/iaxclient.spec index 4adfb47..028f838 100644 --- a/iaxclient.spec +++ b/iaxclient.spec @@ -1,15 +1,15 @@ %global betaver beta3 %global tclver 0.2 %global mainver 2.1 -%{!?tcl_version: %global tcl_version %(echo 'puts $tcl_version' | tclsh)} +%{!?tcl_version: %global tcl_version %(echo 'puts $tcl_version' | tclsh8.6)} %{!?tcl_sitearch: %global tcl_sitearch %{_libdir}/tcl%{tcl_version}} %global tkphonearch %{_arch} Name: iaxclient Version: %{mainver} -Release: 0.40.%{betaver}%{?dist} +Release: 0.53.%{betaver}%{?dist} Summary: Library for creating telephony solutions that interoperate with Asterisk -License: LGPLv2+ +License: LGPL-2.0-or-later URL: http://iaxclient.wiki.sourceforge.net/ Source0: http://downloads.sourceforge.net/iaxclient/%{name}-%{version}%{betaver}.tar.gz Source1: tkiaxphone.desktop @@ -33,19 +33,34 @@ Patch10: iaxclient-system-ilbc.patch Patch11: iaxclient-2.1beta3-fpic.patch Patch12: wxwidgets-3.0.patch Patch13: gtk3.patch +Patch14: iaxclient-gcc14.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 Patch22: iax-0.2.3_socket.patch +Patch23: iaxclient-c99.patch +BuildRequires: desktop-file-utils BuildRequires: gcc-c++ +BuildRequires: gsm-devel +BuildRequires: gtk3-devel +BuildRequires: ilbc-devel +BuildRequires: libogg-devel +BuildRequires: liboggz-devel +BuildRequires: libtheora-devel +BuildRequires: libtool +BuildRequires: libvidcap-devel 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 +BuildRequires: portaudio-devel +BuildRequires: SDL-devel +BuildRequires: spandsp-devel +BuildRequires: speex-devel +BuildRequires: speexdsp-devel +BuildRequires: tk-devel < 1:9 +BuildRequires: wxGTK-devel %description Iaxclient is an open source, multiplatform library for creating telephony @@ -88,7 +103,7 @@ developing applications that use %{name}. %package -n tcl-iaxclient Summary: Tcl interface to iax2 client lib Version: %{tclver} -License: BSD +License: BSD-3-Clause-No-Nuclear-License Requires: tcl(abi) = 8.6 Requires: %{name} = %{mainver}-%{release} @@ -98,7 +113,7 @@ Tcl extensions to iaxclient libraries. %package -n tkiaxphone Summary: Tk IAX Phone Client Version: %{mainver} -License: LGPLv2+ +License: LGPL-2.0-or-later Requires: tcl(abi) = 8.6 Requires: %{name} = %{mainver}-%{release} @@ -108,7 +123,7 @@ Tk IAX Phone Client. %package -n wxiax Summary: wx IAX Phone Client Version: %{mainver} -License: LGPLv2+ +License: LGPL-2.0-or-later Requires: %{name} = %{mainver}-%{release} %description -n wxiax @@ -116,20 +131,21 @@ 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 +%patch -P0 -p1 -b .wxGTK28 +%patch -P1 -p1 -b .tkphone +%patch -P2 -p1 -b .includedir +%patch -P3 -p1 -b .libdir +%patch -P4 -p1 -b .nodoc +%patch -P5 -p1 -b .theoradetect +%patch -P6 -p1 -b .DSO +%patch -P7 -p1 -b .arm +%patch -P8 -p1 -b .portable +%patch -P9 -p1 -b .linkiax +%patch -P10 -p1 -b .ilbc +%patch -P11 -p1 -b .fpic +%patch -P12 -p1 -b .wx3 +%patch -P13 -p1 -b .gtk3 +%patch -P14 -p1 -b .gcc14 # Delete bundled libraries (except libiax2) just to be sure rm -rf lib/{gsm, portmixer, sox, spandsp} @@ -140,9 +156,9 @@ chmod -x contrib/tcl/README.txt ( cd lib/libiax2 -%patch20 -p1 -b .iaxmakefile -%patch21 -p1 -b .iaxfmtsecurity -%patch22 -p1 -b .iaxsocket +%patch -P20 -p1 -b .iaxmakefile +%patch -P21 -p1 -b .iaxfmtsecurity +%patch -P22 -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 @@ -150,6 +166,8 @@ sed -i 's|/usr/lib|%{_libdir}|g' iax-config.in autoreconf -vif ) +%patch -P23 -p1 -b .c99 + %build ( cd lib/libiax2 @@ -157,7 +175,7 @@ cd lib/libiax2 make %{?_smp_mflags} UCFLAGS="%{optflags}" ) -%configure --disable-static +%configure --disable-static --with-wish=%{_bindir}/wish8.6 # 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" @@ -203,10 +221,6 @@ 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 @@ -249,6 +263,45 @@ ln -s iaxcli iaxcli-Linux-%{tkphonearch} %{_datadir}/pixmaps/wxiax.png %changelog +* Thu Jul 24 2025 Fedora Release Engineering - 2.1-0.53.beta3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild + +* Sun Jan 19 2025 Sandro Mani - 2.1-0.52.beta3 +- BR: tk-devel < 1:9 + +* Fri Jan 17 2025 Fedora Release Engineering - 2.1-0.51.beta3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild + +* Mon Sep 02 2024 Miroslav Suchý - 2.1-0.50.beta3 +- convert license to SPDX + +* Thu Jul 18 2024 Fedora Release Engineering - 2.1-0.49.beta3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild + +* Wed Jan 24 2024 Fedora Release Engineering - 2.1-0.48.beta3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Sat Jan 20 2024 Fedora Release Engineering - 2.1-0.47.beta3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Thu Jul 20 2023 Fedora Release Engineering - 2.1-0.46.beta3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + +* Fri Feb 24 2023 Florian Weimer - 2.1-0.45.beta3 +- Port to C99 + +* Thu Jan 19 2023 Fedora Release Engineering - 2.1-0.44.beta3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + +* Thu Aug 04 2022 Scott Talbert - 2.1-0.43.beta3 +- Rebuild with wxWidgets 3.2 + +* Thu Jul 21 2022 Fedora Release Engineering - 2.1-0.42.beta3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + +* Mon May 30 2022 Sandro Mani - 2.1-0.41.beta3 +- Rebuild (ilbc) + * Thu Jan 20 2022 Fedora Release Engineering - 2.1-0.40.beta3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild