diff --git a/.gitignore b/.gitignore index a2e9b65..e270a23 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,3 @@ -wsjtx-*.tgz +/wsjtx-*.tgz +/wsjtx-3.0.0.tar.gz +/wsjtx-3.0.1.tar.gz diff --git a/wsjtx.appdata.xml b/edu.princeton.physics.WSJTX.metainfo.xml similarity index 91% rename from wsjtx.appdata.xml rename to edu.princeton.physics.WSJTX.metainfo.xml index 49abb3f..b24ae3c 100644 --- a/wsjtx.appdata.xml +++ b/edu.princeton.physics.WSJTX.metainfo.xml @@ -1,6 +1,7 @@ - - wsjtx.desktop + + edu.princeton.physics.WSJTX + wsjtx.desktop wsjtx Amateur Radio Weak Signal Operating Joe Taylor and others @@ -76,13 +77,13 @@ are available for all three platforms. CC0-1.0 GPL-3.0+ https://sourceforge.net/projects/wsjt/lists/wsjt-devel - https://physics.princeton.edu/pulsar/K1JT/index.html - none + https://wsjt.sourceforge.io/wsjtx.html - XXX: Describe the default screenshot - https://sourceforge.net/p/wsjt/wsjtx/ci/master/tree/doc/user_guide/en/images/main-ui.png?format=raw + Main WSJT-X window + https://sourceforge.net/p/wsjt/wsjtx/ci/master/tree/doc/user_guide/en/images/main-ui.png?format=raw + hobbes1069@fedoraproject.org diff --git a/sources b/sources index 099c406..c456f58 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (wsjtx-2.2.2.tgz) = 923df18f5cbbd3e40294ccc4d3730f40c13c7777345723b9e66063ff0dd7db65caa9a64323711201a73b8c455dc1c29f67e4645dfbf98e0fc2c60a1630ce6cd1 +SHA512 (wsjtx-3.0.1.tar.gz) = b1ba505f31e35908eba9f73be2995e20ba17b81b1ca16cbe13bed3f6f458bb7e8bd7f176fef83097edef3ea0823a73560cf421a8ea4b9d9e8cd8b0d31e6dd8a9 diff --git a/wsjtx-2.0.0-compile-fix.patch b/wsjtx-2.0.0-compile-fix.patch deleted file mode 100644 index f442c25..0000000 --- a/wsjtx-2.0.0-compile-fix.patch +++ /dev/null @@ -1,50 +0,0 @@ -Index: wsjtx-2.2.2/wsjtx/CMakeLists.txt -=================================================================== ---- wsjtx-2.2.2.orig/wsjtx/CMakeLists.txt -+++ wsjtx-2.2.2/wsjtx/CMakeLists.txt -@@ -852,7 +852,7 @@ find_program(ETAGS etags) - # - # Boost - # --set (Boost_NO_SYSTEM_PATHS TRUE) -+set (Boost_NO_SYSTEM_PATHS TRUE CACHE BOOL "") - if (Boost_NO_SYSTEM_PATHS) - set (BOOST_ROOT ${PROJECT_SOURCE_DIR}/boost) - endif () -@@ -871,7 +871,7 @@ find_package (FFTW3 COMPONENTS double si - # - # libhamlib setup - # --set (hamlib_STATIC 1) -+set (hamlib_STATIC 1 CACHE BOOL "") - find_package (hamlib 3 REQUIRED) - find_program (RIGCTL_EXE rigctl) - find_program (RIGCTLD_EXE rigctld) -@@ -1491,27 +1491,6 @@ install (TARGETS ft8code jt65code qra64c - ) - endif(WSJT_BUILD_UTILS) - --install (PROGRAMS -- ${RIGCTL_EXE} -- DESTINATION ${CMAKE_INSTALL_BINDIR} -- #COMPONENT runtime -- RENAME rigctl-wsjtx${CMAKE_EXECUTABLE_SUFFIX} -- ) -- --install (PROGRAMS -- ${RIGCTLD_EXE} -- DESTINATION ${CMAKE_INSTALL_BINDIR} -- #COMPONENT runtime -- RENAME rigctld-wsjtx${CMAKE_EXECUTABLE_SUFFIX} -- ) -- --install (PROGRAMS -- ${RIGCTLCOM_EXE} -- DESTINATION ${CMAKE_INSTALL_BINDIR} -- #COMPONENT runtime -- RENAME rigctlcom-wsjtx${CMAKE_EXECUTABLE_SUFFIX} -- ) -- - install (FILES - README - COPYING diff --git a/wsjtx-3.0.0-path-fix.patch b/wsjtx-3.0.0-path-fix.patch new file mode 100644 index 0000000..845d531 --- /dev/null +++ b/wsjtx-3.0.0-path-fix.patch @@ -0,0 +1,124 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index cb951fd..d27c7c7 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -1832,7 +1832,7 @@ install (FILES + + install (FILES + ALLCALL7.TXT +- DESTINATION ${CMAKE_INSTALL_BINDIR} ++ DESTINATION ${CMAKE_INSTALL_DATADIR}/${CMAKE_PROJECT_NAME} + #COMPONENT runtime + ) + +@@ -1845,7 +1845,7 @@ install (DIRECTORY + + install (DIRECTORY + ${PROJECT_SOURCE_DIR}/sounds +- DESTINATION ${CMAKE_INSTALL_BINDIR} ++ DESTINATION ${CMAKE_INSTALL_DATADIR}/${CMAKE_PROJECT_NAME} + #COMPONENT runtime + ) + +diff --git a/Configuration.cpp b/Configuration.cpp +index f56139c..e896653 100644 +--- a/Configuration.cpp ++++ b/Configuration.cpp +@@ -4979,7 +4979,7 @@ void Configuration::impl::on_voices_combo_box_currentIndexChanged (int /* index + + void Configuration::impl::read_voices () + { +- QString audioPath = QCoreApplication::applicationDirPath() + "/sounds/"; ++ QString audioPath = "/usr/share/wsjtx/sounds/"; + QString voiceList = audioPath + "voices.dat"; // load the content of voices.dat file to the voices combo box + QFile file2 {voiceList}; + QStringList wordList; +@@ -5023,7 +5023,7 @@ void Configuration::impl::on_pb_test_alerts_clicked (bool) + effect->open(QIODevice::ReadOnly); + audio->start(effect); + #else +- QString audioPath = QCoreApplication::applicationDirPath() + "/sounds" + voicesPath_ + "/"; ++ QString audioPath = "/usr/share/wsjtx/sounds" + voicesPath_ + "/"; + QSound::play(audioPath + "Testing123.wav"); // for Linux and macOS + #endif + } +diff --git a/lib/ft8var/cwfilter.f90 b/lib/ft8var/cwfilter.f90 +index 913c7e3..087bc70 100644 +--- a/lib/ft8var/cwfilter.f90 ++++ b/lib/ft8var/cwfilter.f90 +@@ -17,7 +17,7 @@ subroutine cwfilter(first) + !note that with new, larger ALLCALL7.TXT files, dimensions of various ncall arrays may need to be increased in jt65_mod9.f90 + !on 20250709 callj dim was increased from 9000 to 10000 when updated ALLCALL7.TXT file was added + if(first) then +- open(24,file='ALLCALL7.TXT',status='unknown') ! accepting Australian 7-char callsigns ++ open(24,file='/usr/share/wsjtx/ALLCALL7.TXT',status='unknown') ! accepting Australian 7-char callsigns + do i=1,MAXC + read(24,1004,end=20) line + 1004 format(a80) +diff --git a/widgets/displaytext.cpp b/widgets/displaytext.cpp +index 1e2f642..421e032 100644 +--- a/widgets/displaytext.cpp ++++ b/widgets/displaytext.cpp +@@ -931,7 +931,7 @@ void DisplayText::AudioAlerts() + connect(audio, SIGNAL(stateChanged(QAudio::State)), this, SLOT(handleStateChanged(QAudio::State))); + #else + if(m_config->alert_Enabled()) { +- QString audioPath = QCoreApplication::applicationDirPath() + "/sounds" + m_config->voicesPath() + "/"; ++ QString audioPath = "/usr/share/wsjtx/sounds" + m_config->voicesPath() + "/"; + #endif + QFile *effect2 = new QFile(this); + QFile *effect3 = new QFile(this); +diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp +index b2c399e..0cb4b55 100644 +--- a/widgets/mainwindow.cpp ++++ b/widgets/mainwindow.cpp +@@ -3381,7 +3381,7 @@ void MainWindow::fastSink(qint64 frames) + effect1->open(QIODevice::ReadOnly); + audio->start(effect1); + #else +- QString audioPath = QCoreApplication::applicationDirPath() + "/sounds" + m_config.voicesPath() + "/"; ++ QString audioPath = "/usr/share/wsjtx/sounds" + m_config.voicesPath() + "/"; + if (m_config.alert_DXcall() && play_DXcall) QSound::play(audioPath + "DXcall.wav"); // for Linux and macOS + else if (m_config.alert_DXcall() && play_Wanted) QSound::play(audioPath + "Wanted.wav"); // for Linux and macOS + #endif +@@ -7208,7 +7208,7 @@ void MainWindow::readFromStdout() //readFromStdout + effect1->open(QIODevice::ReadOnly); + audio->start(effect1); + #else +- QString audioPath = QCoreApplication::applicationDirPath() + "/sounds" + m_config.voicesPath() + "/"; ++ QString audioPath = "/usr/share/wsjtx/sounds" + m_config.voicesPath() + "/"; + if (m_config.alert_DXcall() && play_DXcall) QSound::play(audioPath + "DXcall.wav"); // for Linux and macOS + else if (m_config.alert_DXcall() && play_Wanted) QSound::play(audioPath + "Wanted.wav"); // for Linux and macOS + #endif +@@ -10404,7 +10404,7 @@ void MainWindow::mousePressEvent(QMouseEvent *event) // mouse press events + effect->open(QIODevice::ReadOnly); + audio->start(effect); + #else +- QString audioPath = QCoreApplication::applicationDirPath() + "/sounds" + m_config.voicesPath() + "/"; ++ QString audioPath = "/usr/share/wsjtx/sounds" + m_config.voicesPath() + "/"; + QSound::play(audioPath + "Testing_long.wav"); // for Linux and macOS + #endif + } +@@ -17332,7 +17332,7 @@ void MainWindow::on_actionErase_Ignore_List_triggered() + + void MainWindow::read_ALLCALL7() + { +- static QFile AllCall7File {"ALLCALL7.TXT"}; ++ static QFile AllCall7File {"/usr/share/wsjtx/ALLCALL7.TXT"}; + QTextStream AllCall7Stream(&AllCall7File); + if(AllCall7File.open(QIODevice::ReadOnly | QIODevice::Text)) { + while (!AllCall7Stream.atEnd()) { +@@ -17379,11 +17379,11 @@ void MainWindow::alertQSYmessage () + audio = new QAudioOutput(format, this); + connect(audio, SIGNAL(stateChanged(QAudio::State)), this, SLOT(handleStateChanged(QAudio::State))); + QFile *effect1 = new QFile(this); +- effect1->setFileName(QString("%1/%2").arg(binPath, "/sounds/Message.wav")); ++ effect1->setFileName(QString("%1/%2").arg("/usr/share/wsjtx", "/sounds/Message.wav")); + effect1->open(QIODevice::ReadOnly); + audio->start(effect1); + #else + QString binPath = QCoreApplication::applicationDirPath(); +- QSound::play(binPath + "/sounds/Message.wav"); // for Linux and macOS ++ QSound::play("/usr/share/wsjtx/sounds/Message.wav"); // for Linux and macOS + #endif + } diff --git a/wsjtx.spec b/wsjtx.spec index 9fe60e4..96c60d5 100644 --- a/wsjtx.spec +++ b/wsjtx.spec @@ -1,28 +1,50 @@ -#global rctag rc6 +# for fortran nested functions that (still in 2026) in gfortran implementation uses +# trampolines that require executable stack +%undefine _hardened_linker_errors -Name: wsjtx -Version: 2.2.2 -Release: 6%{?dist} -Summary: Weak Signal communication by K1JT -License: GPLv3+ +Name: wsjtx +Version: 3.0.1 +Release: 2%{?dist} +Summary: Weak Signal communication by K1JT -URL: http://physics.princeton.edu/pulsar/k1jt/wsjtx.html -Source0: http://physics.princeton.edu/pulsar/k1jt/%{name}-%{version}%{?rctag:-%{rctag}}.tgz -Source100: wsjtx.appdata.xml +License: GPL-3.0-or-later -Patch0: wsjtx-2.0.0-compile-fix.patch +URL: https://github.com/WSJTX/wsjtx +Source0: %{url}/archive/v%{version}/%{name}-%{version}.tar.gz +Source100: edu.princeton.physics.WSJTX.metainfo.xml + +ExcludeArch: i686 + +BuildRequires: cmake +BuildRequires: gcc-c++ +BuildRequires: gcc-gfortran -BuildRequires: dos2unix, tar, cmake, gcc-c++, gcc-gfortran BuildRequires: qt5-qtbase-devel BuildRequires: qt5-linguist BuildRequires: qt5-qtserialport-devel BuildRequires: qt5-qtmultimedia-devel -BuildRequires: desktop-file-utils, hamlib-devel, fftw-devel, libusbx-devel -BuildRequires: boost-devel, portaudio-devel +BuildRequires: qt5-qtwebsockets-devel +BuildRequires: desktop-file-utils +BuildRequires: hamlib-devel +BuildRequires: fftw-devel +BuildRequires: libusbx-devel +BuildRequires: systemd-devel +%if 0%{?rhel} && 0%{?rhel} < 9 +BuildRequires: boost169-devel +%else +BuildRequires: boost-devel +%endif +BuildRequires: portaudio-devel %if 0%{?fedora} -BuildRequires: asciidoc, rubygem-asciidoctor +BuildRequires: asciidoc +BuildRequires: rubygem-asciidoctor BuildRequires: libappstream-glib %endif +# Temporal fix, problem reported upstream +# https://github.com/WSJTX/wsjtx/issues/5 +# https://www.mail-archive.com/wsjt-devel@lists.sourceforge.net/msg28480.html +Patch: wsjtx-3.0.0-path-fix.patch + %description WSJT-X is a computer program designed to facilitate basic amateur radio @@ -33,25 +55,7 @@ from the Moon. %prep -%setup -n %{name}-%{version}%{?rctag:-%{rctag}} - -# remove bundled hamlib -rm -f src/hamlib*.tgz* src/hamlib*.tar.gz* -tar -xzf src/%{name}.tgz -%patch0 -p1 - -# remove archive -rm -f src/wsjtx.tgz* - -cd %{name} - -%if 0%{?fedora} -# remove bundled boost. EL 7 is not required version. -rm -rf boost -%endif - -# convert CR + LF to LF -dos2unix *.ui *.iss *.rc *.txt +%autosetup -p1 %build @@ -60,26 +64,27 @@ dos2unix *.ui *.iss *.rc *.txt # need to be fixed for this package to work with LTO %define _lto_cflags %{nil} -# Workaround for build with gcc-10, problem reported upstream -export CFLAGS="%{optflags} -fcommon" -export LDFLAGS="%{?__global_ldflags}" +# -fcommon is a workaround for build with gcc-10, reported upstream +export CFLAGS="%{build_cflags} -fcommon -Wno-error=maybe-uninitialized" +# reported upstream +export CXXFLAGS="%{build_cxxflags} -Wno-error=maybe-uninitialized" +export LDFLAGS="%{build_ldflags}" # workaround for hamlib check, i.e. for hamlib_LIBRARY_DIRS not to be empty export PKG_CONFIG_ALLOW_SYSTEM_LIBS=1 -cd %{name} %cmake -Dhamlib_STATIC=FALSE \ -%if 0%{?fedora} -DBoost_NO_SYSTEM_PATHS=FALSE \ -%else - -DBoost_NO_SYSTEM_PATHS=TRUE \ +%if 0%{?rhel} + -DBOOST_INCLUDEDIR=%{_includedir}/boost169 \ + -DBOOST_LIBRARYDIR=%{_libdir}/boost169 \ -DWSJT_GENERATE_DOCS=FALSE \ -DWSJT_SKIP_MANPAGES=TRUE %endif + %cmake_build %install -cd %{name} %cmake_install # Make sure the right style is used. @@ -89,30 +94,36 @@ desktop-file-edit --set-key=Exec --set-value="wsjtx --style=fusion" \ desktop-file-validate %{buildroot}%{_datadir}/applications/wsjtx.desktop desktop-file-validate %{buildroot}%{_datadir}/applications/message_aggregator.desktop -# fix docs -rm -f %{buildroot}%{_datadir}/doc/WSJT-X/{INSTALL,COPYING,copyright,changelog.Debian.gz} -mv %{buildroot}%{_datadir}/doc/WSJT-X %{buildroot}%{_datadir}/doc/%{name} -install -p -m 0644 -t %{buildroot}%{_datadir}/doc/%{name} GUIcontrols.txt jt9.txt \ - mouse_commands.txt prefixes.txt shortcuts.txt v1.7_Features.txt \ - wsjtx_changelog.txt - - %if 0%{?fedora} -# appdata file +# metainfo file mkdir -p %{buildroot}%{_metainfodir} install -pm 0644 %{SOURCE100} %{buildroot}%{_metainfodir}/ +%endif +# fix docs +install -p -m 0644 -t %{buildroot}%{_datadir}/doc/%{name} GUIcontrols.txt jt9.txt \ + v1.7_Features.txt wsjtx_changelog.txt NEWS README THANKS + +# drop copies of the hamlib bins +# https://github.com/WSJTX/wsjtx/issues/6 +rm -f %{buildroot}%{_bindir}/rigctl*-wsjtx + +%if 0%{?fedora} %check -appstream-util validate-relax --nonet %{buildroot}%{_metainfodir}/*.appdata.xml +appstream-util validate-relax --nonet %{buildroot}%{_metainfodir}/*.metainfo.xml %endif %files %license COPYING %doc %{_datadir}/doc/%{name} +%{_bindir}/cablog +%{_bindir}/echosim %{_bindir}/fcal %{_bindir}/fmeasure %{_bindir}/fmtave +%{_bindir}/fst4sim +%{_bindir}/hash22calc %{_bindir}/jt4code %{_bindir}/jt65code %{_bindir}/jt9 @@ -120,11 +131,16 @@ appstream-util validate-relax --nonet %{buildroot}%{_metainfodir}/*.appdata.xml %{_bindir}/ft8code %{_bindir}/message_aggregator %{_bindir}/msk144code -%{_bindir}/qra64code -%{_bindir}/qra64sim +%{_bindir}/qmap +%{_bindir}/q65sim +%{_bindir}/q65code %{_bindir}/udp_daemon %{_bindir}/wsjtx +%{_bindir}/wsjtx_app_version %{_bindir}/wsprd +%{_bindir}/EchoCallSim +%{_bindir}/ft8sim +%{_bindir}/testEchoCall %{?fedora:%{_mandir}/man1/*.1.gz} %{?fedora:%{_metainfodir}/*.xml} %{_datadir}/applications/wsjtx.desktop @@ -134,6 +150,141 @@ appstream-util validate-relax --nonet %{buildroot}%{_metainfodir}/*.appdata.xml %changelog +* Fri Jul 17 2026 Fedora Release Engineering - 3.0.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_45_Mass_Rebuild + +* Mon May 04 2026 Jaroslav Škarvada - 3.0.1-1 +- New version + Resolves: rhbz#2464806 + +* Tue Apr 14 2026 Jaroslav Škarvada - 3.0.0-1 +- New version + +* Sat Jan 17 2026 Fedora Release Engineering - 3.0.0~rc1-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild + +* Thu Jan 15 2026 Jaroslav Škarvada - 3.0.0~rc1-2 +- Rebuilt for boost + Resolves: rhbz#2429735 + +* Mon Jan 05 2026 Jaroslav Škarvada - 3.0.0~rc1-1 +- New version + +* Fri Jul 25 2025 Fedora Release Engineering - 2.7.0-14 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild + +* Mon Mar 31 2025 Richard Shaw - 2.7.0-13 +- Update to 2.8.0 final release. + +* Thu Feb 06 2025 Richard Shaw - 2.7.0-12 +- Rebuild for hamlib 4.6. + +* Sun Jan 19 2025 Fedora Release Engineering - 2.7.0-11 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild + +* Tue Jan 07 2025 Richard Shaw - 2.7.0-10 +- Update to 2.7.0 RC8. + +* Tue Dec 31 2024 Richard Shaw - 2.7.0-9 +- Rebuild for Hamlib 4.6. + +* Tue Oct 01 2024 Richard Shaw - 2.7.0-8 +- Update to 2.7.0 RC7. + +* Sat Sep 14 2024 Richard Shaw - 2.7.0-7 +- Remove superfox binaries and patch build system. + +* Thu Aug 1 2024 Richard Shaw - 2.7.0-6 +- Update to 2.7.0 RC6. + +* Thu Jul 25 2024 Miroslav Suchý - 2.7.0-5 +- convert license to SPDX + +* Sat Jul 20 2024 Fedora Release Engineering - 2.7.0-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild + +* Mon Jul 01 2024 Richard Shaw - 2.7.0-5 +- Update to 2.7.0 RC5. + +* Mon Jan 22 2024 Richard Shaw - 2.7.0-3 +- Update to 2.7.0 RC3. + +* Thu Jan 18 2024 Jonathan Wakely - 2.7.0-2 +- Rebuilt for Boost 1.83 + +* Mon Feb 20 2023 Jonathan Wakely - 2.6.1-2 +- Rebuilt for Boost 1.81 + +* Thu Jan 19 2023 Richard Shaw - 2.6.1-1 +- Update to 2.6.0. + +* Mon Nov 07 2022 Richard Shaw - 2.5.4-5 +- Rebuild for updated hamlib 4.5. + +* Sat Jul 23 2022 Fedora Release Engineering - 2.5.4-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + +* Wed May 04 2022 Thomas Rodgers - 2.5.4-3 +- Rebuilt for Boost 1.78 + +* Sat Jan 22 2022 Fedora Release Engineering - 2.5.4-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + +* Mon Jan 03 2022 Richard Shaw - 2.5.4-1 +- Update to 2.5.4. + +* Thu Dec 23 2021 Richard Shaw - 2.5.3-2 +- Rebuild for hamlib 4.4. + +* Thu Dec 23 2021 Jaroslav Škarvada - 2.5.3-1 +- New version + Resolves: rhbz#2034707 + +* Thu Dec 23 2021 Richard Shaw - 2.5.2-2 +- 36-build-side-49086 + +* Mon Nov 29 2021 Jaroslav Škarvada - 2.5.2-1 +- New version + Resolves: rhbz#2020399 + +* Mon Oct 25 2021 Jaroslav Škarvada - 2.5.1-1 +- New version + Resolves: rhbz#2016506 + +* Wed Oct 13 2021 Jaroslav Škarvada - 2.5.0-1 +- New version + Resolves: rhbz#2008230 + +* Tue Oct 12 2021 Richard Shaw - 2.4.0-5 +- Rebuild for hamlib 4.3.1. + +* Sat Aug 07 2021 Jonathan Wakely - 2.4.0-4 +- Rebuilt for Boost 1.76 + +* Fri Jul 23 2021 Fedora Release Engineering - 2.4.0-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + +* Sun May 30 2021 Richard Shaw - 2.4.0-2 +- Rebuild for hamlib 4.2. + +* Mon May 24 2021 Richard Shaw - 2.4.0-1 +- Update to 2.4.0. + +* Tue Mar 30 2021 Jonathan Wakely - 2.3.1-2 +- Rebuilt for removed libstdc++ symbol (#1937698) + +* Fri Mar 26 2021 Richard Shaw - 2.3.1-1 +- Update to 2.3.1. + +* Wed Feb 03 2021 Richard Shaw - 2.3.0-1 +- Update to 2.3.0 final. + +* Tue Feb 02 2021 Richard Shaw - 2.2.2-8 +- Rebuild for hamlib 4.1. + +* Wed Jan 27 2021 Fedora Release Engineering - 2.2.2-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + * Fri Jan 01 2021 Richard Shaw - 2.2.2-6 - Rebuilt for hamlib 4.0 release.