summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Laß2021-08-02 19:57:14 +0200
committerMichael Laß2021-08-02 19:59:31 +0200
commitab44442ce13539b9700ad9b7922e55e7cc47851e (patch)
tree135730f9eeb6f73bdf49f871355485d277b08a6a
parent97fcdf4c46b570e55abc4c64483d0264ac9b28c4 (diff)
downloadaur-ab44442ce13539b9700ad9b7922e55e7cc47851e.tar.gz
Update to 4.0
-rw-r--r--.SRCINFO17
-rw-r--r--0001-mot_dir-changes.patch150
-rw-r--r--0002-padHandler-verify-data-length.patch42
-rw-r--r--0003-padHandler-correct-valid-range-for-last.patch30
-rw-r--r--0004-hackrf-update-gain-display-when-restoring-settings.patch56
-rw-r--r--PKGBUILD34
6 files changed, 13 insertions, 316 deletions
diff --git a/.SRCINFO b/.SRCINFO
index 15b6660bcbff..8957b76f0133 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,7 +1,7 @@
pkgbase = qt-dab
pkgdesc = Software DAB decoder for use with various SDR devices
- pkgver = 3.72
- pkgrel = 2
+ pkgver = 4.0
+ pkgrel = 1
url = https://www.sdr-j.tk/
arch = x86_64
license = GPL2
@@ -18,16 +18,7 @@ pkgbase = qt-dab
optdepends = libad9361: Support for Pluto
optdepends = rtl-sdr: Support for RTL-SDR
optdepends = libsdrplay: Support for SDRplay
- source = https://github.com/JvanKatwijk/qt-dab/archive/refs/tags/Qt-DAB3.72.tar.gz
- source = 0001-mot_dir-changes.patch
- source = 0002-padHandler-verify-data-length.patch
- source = 0003-padHandler-correct-valid-range-for-last.patch
- source = 0004-hackrf-update-gain-display-when-restoring-settings.patch
- sha256sums = 8e90bd7e35a2fb6e3f3f3aee61ee65d3c37ead5731ba0146fa29883685167ed4
- sha256sums = f4f60612d82afffbbd99b5549a4e4ddcd9745e046da9974fe373091251ace85c
- sha256sums = f20e66cd0a2f29ee90e20bcdf8aa6ca5b2f06e554e3373ef9118823d5b2ca9d6
- sha256sums = 170fe2ce981e1d7bc4a7ea5924862887a5c752822375887935f67ea5c34341d6
- sha256sums = 09ee42c73a928688e710d961c16d46f5d804fb00f7037e24109823b0898d22d4
+ source = https://github.com/JvanKatwijk/qt-dab/archive/refs/tags/qt-dab-4.0.tar.gz
+ sha256sums = 4abaee18c385e7c0aade3e53296c96b1779d4e0e5604968cc9c696a4e937a05b
pkgname = qt-dab
-
diff --git a/0001-mot_dir-changes.patch b/0001-mot_dir-changes.patch
deleted file mode 100644
index b0ccae1503d8..000000000000
--- a/0001-mot_dir-changes.patch
+++ /dev/null
@@ -1,150 +0,0 @@
-From c59f0f924e5808b9f5d9ad9a223c22d22c254872 Mon Sep 17 00:00:00 2001
-From: JvanKatwijk <J.vanKatwijk@gmail.com>
-Date: Thu, 13 May 2021 12:11:32 +0200
-Subject: [PATCH 1/4] mot_dir changes
-
----
- dab-maxi/main.cpp | 6 +++---
- includes/backend/data/mot/mot-dir.h | 5 +++--
- src/backend/data/mot/mot-dir.cpp | 27 ++++++++++++++-------------
- src/backend/data/mot/mot-handler.cpp | 3 ++-
- 4 files changed, 22 insertions(+), 19 deletions(-)
-
-diff --git a/dab-maxi/main.cpp b/dab-maxi/main.cpp
-index 26ef9d4..c303ed6 100755
---- a/dab-maxi/main.cpp
-+++ b/dab-maxi/main.cpp
-@@ -160,7 +160,7 @@ int fmFrequency = 110000;
- }
-
- void setTranslator (QString Language) {
--QTranslator Translator;
-+QTranslator *Translator = new QTranslator;
-
- // German is special (as always)
- if ((Language == "de_AT") || (Language == "de_CH"))
-@@ -168,9 +168,9 @@ QTranslator Translator;
- //
- // what about Dutch?
- bool TranslatorLoaded =
-- Translator. load (QString(":/i18n/") + Language);
-+ Translator -> load (QString(":/i18n/") + Language);
- qDebug() << "main:" << "Set language" << Language;
-- QCoreApplication::installTranslator (&Translator);
-+ QCoreApplication::installTranslator (Translator);
-
- if (!TranslatorLoaded) {
- qDebug() << "main:" << "Error while loading language specifics" << Language << "use English \"en_GB\" instead";
-diff --git a/includes/backend/data/mot/mot-dir.h b/includes/backend/data/mot/mot-dir.h
-index a549898..6a43cf7 100755
---- a/includes/backend/data/mot/mot-dir.h
-+++ b/includes/backend/data/mot/mot-dir.h
-@@ -28,6 +28,7 @@
-
- #include "mot-object.h"
- #include <QString>
-+#include <vector>
- class RadioInterface;
-
- class motDirectory {
-@@ -52,7 +53,7 @@ private:
- uint16_t transportId;
-
- RadioInterface *myRadioInterface;
-- uint8_t *dir_segments;
-+ std::vector<uint8_t> dir_segments;
- bool marked [512];
- int16_t dir_segmentSize;
- int16_t num_dirSegments;
-@@ -63,7 +64,7 @@ private:
- uint16_t transportId;
- motObject *motSlide;
- } motComponentType;
-- motComponentType *motComponents;
-+ std::vector<motComponentType> motComponents;
- };
-
- #endif
-diff --git a/src/backend/data/mot/mot-dir.cpp b/src/backend/data/mot/mot-dir.cpp
-index 8f1c2c0..59cd71e 100755
---- a/src/backend/data/mot/mot-dir.cpp
-+++ b/src/backend/data/mot/mot-dir.cpp
-@@ -43,22 +43,23 @@ int16_t i;
- this -> dir_segmentSize = segmentSize;
- fprintf (stderr, "dirSize %d, numObjects %d, segmentSize %d\n",
- dirSize, objects, segmentSize);
-- dir_segments = new uint8_t [dirSize];
-- motComponents = new motComponentType [objects];
-- for (i = 0; i < objects; i ++)
-+ dir_segments. resize (dirSize);
-+ motComponents. resize (objects);
-+ for (i = 0; i < objects; i ++) {
- motComponents [i]. inUse = false;
-+ motComponents [i]. motSlide = nullptr;
-+ }
- memcpy (&dir_segments [0], segment, segmentSize);
- marked [0] = true;
-- }
-+}
-
- motDirectory::~motDirectory() {
- int i;
-- delete [] dir_segments;
-
- for (i = 0; i < numObjects; i ++)
-- if (motComponents [i]. inUse)
-- delete [] motComponents [i]. motSlide;
-- delete [] motComponents;
-+ if (motComponents [i]. inUse &&
-+ (motComponents [i]. motSlide != nullptr))
-+ delete motComponents [i]. motSlide;
- }
-
- motObject *motDirectory::getHandle (uint16_t transportId) {
-@@ -118,18 +119,18 @@ int16_t i;
-
- void motDirectory::analyse_theDirectory() {
- uint32_t currentBase = 11; // in bytes
--uint8_t *data = dir_segments;
-+//uint8_t *data = dir_segments;
- uint16_t extensionLength = (dir_segments [currentBase] << 8) |
-- data [currentBase + 1];
-+ dir_segments [currentBase + 1];
-
- currentBase += 2 + extensionLength;
- for (int i = 0; i < numObjects; i ++) {
-- uint16_t transportId = (data [currentBase] << 8) |
-- data [currentBase + 1];
-+ uint16_t transportId = (dir_segments [currentBase] << 8) |
-+ dir_segments [currentBase + 1];
- if (transportId == 0) // just a dummy
- break;
-
-- uint8_t *segment = &data [currentBase + 2];
-+ uint8_t *segment = &dir_segments [currentBase + 2];
- motObject *handle = new motObject (myRadioInterface,
- true,
- transportId,
-diff --git a/src/backend/data/mot/mot-handler.cpp b/src/backend/data/mot/mot-handler.cpp
-index f505cd4..6b8b082 100755
---- a/src/backend/data/mot/mot-handler.cpp
-+++ b/src/backend/data/mot/mot-handler.cpp
-@@ -48,13 +48,14 @@ struct motTable_ {
- motHandler::~motHandler() {
- int i;
-
-- for (i = 0; i < 15; i ++)
-+ for (i = 0; i < 15; i ++) {
- if (motTable [i]. orderNumber > 0) {
- if (motTable [i]. motSlide != nullptr) {
- delete motTable [i]. motSlide;
- motTable [i]. motSlide = nullptr;
- }
- }
-+ }
- if (theDirectory != nullptr)
- delete theDirectory;
- }
---
-2.31.1
-
diff --git a/0002-padHandler-verify-data-length.patch b/0002-padHandler-verify-data-length.patch
deleted file mode 100644
index 9296fb594293..000000000000
--- a/0002-padHandler-verify-data-length.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From 3a2adddfb7e1c5c77b231d3d245a011ee35773cf Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Michael=20La=C3=9F?= <bevan@bi-co.net>
-Date: Thu, 13 May 2021 12:33:32 +0200
-Subject: [PATCH 2/4] padHandler: verify data length
-
-Make sure to never compute negative offsets for array accesses.
----
- src/backend/data/pad-handler.cpp | 11 +++++++++++
- 1 file changed, 11 insertions(+)
-
-diff --git a/src/backend/data/pad-handler.cpp b/src/backend/data/pad-handler.cpp
-index 19517ac..570bb2e 100755
---- a/src/backend/data/pad-handler.cpp
-+++ b/src/backend/data/pad-handler.cpp
-@@ -193,6 +193,12 @@ std::vector<uint8_t> data; // for the local addition
- // the size of the latest xpadfield that had a CI_flag != 0
- if (CI_flag == 0) {
- if (mscGroupElement && (xpadLength > 0)) {
-+
-+ if (last < xpadLength) {
-+ fprintf(stderr, "handle_variablePAD: last < xpadLength\n");
-+ return;
-+ }
-+
- data. resize (xpadLength);
- for (j = 0; j < xpadLength; j ++)
- data [j] = b [last - j];
-@@ -407,6 +413,11 @@ void padHandler::build_MSC_segment (std::vector<uint8_t> data) {
- // is
- int32_t size = data. size() < (uint32_t)dataGroupLength ? data. size() :
- dataGroupLength;
-+
-+if (size < 2) {
-+ fprintf (stderr, "build_MSC_segment: data size < 2\n");
-+ return;
-+}
-
- uint8_t groupType = data [0] & 0xF;
- //uint8_t continuityIndex = (data [1] & 0xF0) >> 4;
---
-2.31.1
-
diff --git a/0003-padHandler-correct-valid-range-for-last.patch b/0003-padHandler-correct-valid-range-for-last.patch
deleted file mode 100644
index 407b5e52799e..000000000000
--- a/0003-padHandler-correct-valid-range-for-last.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From 8d0826759666dd0c207790b4ce8ac548bec760b8 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Michael=20La=C3=9F?= <bevan@bi-co.net>
-Date: Thu, 13 May 2021 13:22:57 +0200
-Subject: [PATCH 3/4] padHandler: correct valid range for last
-
-3a2addd introduced a check for last in padHandler::handle_variablePAD.
-However, j only runs until xpadLength-1, so last being xpadLength-1 is
-totally fine.
----
- src/backend/data/pad-handler.cpp | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/src/backend/data/pad-handler.cpp b/src/backend/data/pad-handler.cpp
-index 570bb2e..c694fea 100755
---- a/src/backend/data/pad-handler.cpp
-+++ b/src/backend/data/pad-handler.cpp
-@@ -194,8 +194,8 @@ std::vector<uint8_t> data; // for the local addition
- if (CI_flag == 0) {
- if (mscGroupElement && (xpadLength > 0)) {
-
-- if (last < xpadLength) {
-- fprintf(stderr, "handle_variablePAD: last < xpadLength\n");
-+ if (last < xpadLength - 1) {
-+ fprintf(stderr, "handle_variablePAD: last < xpadLength - 1\n");
- return;
- }
-
---
-2.31.1
-
diff --git a/0004-hackrf-update-gain-display-when-restoring-settings.patch b/0004-hackrf-update-gain-display-when-restoring-settings.patch
deleted file mode 100644
index 5f79a14293d7..000000000000
--- a/0004-hackrf-update-gain-display-when-restoring-settings.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-From 665f8840df98c050adc64a9e4e64cd9e3a6c0378 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Michael=20La=C3=9F?= <bevan@bi-co.net>
-Date: Thu, 13 May 2021 15:31:20 +0200
-Subject: [PATCH 4/4] hackrf: update gain display when restoring settings
-
-So far, only the sliders are updated and not the LCD type numeric
-displays. Since signal emission is disabled during restore, the updates
-do not automatically propagate to the numeric displays.
-
-This commit also removes leftover definitions of __KEEP_GAIN_SETTINGS__
-in qt-dab.pro since this setting is gone since qt-dab 3.5.
----
- dab-maxi/qt-dab.pro | 2 --
- dab-maxi/qt-devices/hackrf-handler/hackrf-handler.cpp | 4 ++++
- 2 files changed, 4 insertions(+), 2 deletions(-)
-
-diff --git a/dab-maxi/qt-dab.pro b/dab-maxi/qt-dab.pro
-index dd91bcc..a2a83fd 100755
---- a/dab-maxi/qt-dab.pro
-+++ b/dab-maxi/qt-dab.pro
-@@ -346,7 +346,6 @@ CONFIG += PC
- #CONFIG += RPI
- #DEFINES += SHOW_MISSING
- DEFINES += __DUMP_SNR__ # for experiments only
--DEFINES +=__KEEP_GAIN_SETTINGS__
- }
-
-
-@@ -430,7 +429,6 @@ CONFIG += faad
-
- CONFIG += try-epg # do not use
- DEFINES += __DUMP_SNR__ # for experiments only
--DEFINES +=__KEEP_GAIN_SETTINGS__
- }
- # devices
- #
-diff --git a/dab-maxi/qt-devices/hackrf-handler/hackrf-handler.cpp b/dab-maxi/qt-devices/hackrf-handler/hackrf-handler.cpp
-index cb41ec9..4a9da5d 100755
---- a/dab-maxi/qt-devices/hackrf-handler/hackrf-handler.cpp
-+++ b/dab-maxi/qt-devices/hackrf-handler/hackrf-handler.cpp
-@@ -208,8 +208,12 @@ int res;
- AmpEnableButton, SLOT (setChecked (bool)));
- connect (this, SIGNAL (new_vgaValue (int)),
- vgaGainSlider, SLOT (setValue (int)));
-+ connect (this, SIGNAL (new_vgaValue (int)),
-+ vgagainDisplay, SLOT (display (int)));
- connect (this, SIGNAL (new_lnaValue (int)),
- lnaGainSlider, SLOT (setValue (int)));
-+ connect (this, SIGNAL (new_lnaValue (int)),
-+ lnagainDisplay, SLOT (display (int)));
- xmlDumper = nullptr;
- dumping. store (false);
- running. store (false);
---
-2.31.1
-
diff --git a/PKGBUILD b/PKGBUILD
index e332120426a9..7d5efabacd03 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -5,8 +5,8 @@
pkgname=qt-dab
_pkgname=Qt-DAB
-pkgver=3.72
-pkgrel=2
+pkgver=4.0
+pkgrel=1
pkgdesc="Software DAB decoder for use with various SDR devices"
arch=(x86_64)
url="https://www.sdr-j.tk/"
@@ -18,27 +18,11 @@ optdepends=('airspy: Support for Airspy'
'libad9361: Support for Pluto'
'rtl-sdr: Support for RTL-SDR'
'libsdrplay: Support for SDRplay')
-source=("https://github.com/JvanKatwijk/${pkgname}/archive/refs/tags/${_pkgname}${pkgver}.tar.gz"
- 0001-mot_dir-changes.patch
- 0002-padHandler-verify-data-length.patch
- 0003-padHandler-correct-valid-range-for-last.patch
- 0004-hackrf-update-gain-display-when-restoring-settings.patch)
-sha256sums=('8e90bd7e35a2fb6e3f3f3aee61ee65d3c37ead5731ba0146fa29883685167ed4'
- 'f4f60612d82afffbbd99b5549a4e4ddcd9745e046da9974fe373091251ace85c'
- 'f20e66cd0a2f29ee90e20bcdf8aa6ca5b2f06e554e3373ef9118823d5b2ca9d6'
- '170fe2ce981e1d7bc4a7ea5924862887a5c752822375887935f67ea5c34341d6'
- '09ee42c73a928688e710d961c16d46f5d804fb00f7037e24109823b0898d22d4')
+source=("https://github.com/JvanKatwijk/${pkgname}/archive/refs/tags/${pkgname}-${pkgver}.tar.gz")
+sha256sums=('4abaee18c385e7c0aade3e53296c96b1779d4e0e5604968cc9c696a4e937a05b')
prepare() {
- cd "${pkgname}-${_pkgname}${pkgver}"
-
- # Some stability fixes
- patch -p1 < "$srcdir"/0001-mot_dir-changes.patch
- patch -p1 < "$srcdir"/0002-padHandler-verify-data-length.patch
- patch -p1 < "$srcdir"/0003-padHandler-correct-valid-range-for-last.patch
-
- # Fix for gain display for hackrf
- patch -p1 < "$srcdir"/0004-hackrf-update-gain-display-when-restoring-settings.patch
+ cd "${pkgname}-${pkgname}-${pkgver}"
# The program is officially called Qt-DAB.
sed -i 's/Qt_DAB/Qt-DAB/g' dab-maxi/${pkgname}.desktop
@@ -58,14 +42,14 @@ build() {
-DHACKRF=ON \
-DPLUTO=ON \
-DCMAKE_INSTALL_PREFIX=/usr \
- ../$pkgname-$_pkgname$pkgver/dab-maxi
+ ../$pkgname-$pkgname-$pkgver/dab-maxi
make
}
package() {
install -Dm 755 build-maxi/${pkgname}-${pkgver} "${pkgdir}"/usr/bin/${pkgname}
- install -Dm 644 ${pkgname}-${_pkgname}${pkgver}/dab-maxi/${pkgname}.desktop "${pkgdir}"/usr/share/applications/${pkgname}.desktop
- install -Dm 644 ${pkgname}-${_pkgname}${pkgver}/dab-maxi/${pkgname}.png "${pkgdir}"/usr/share/icons/hicolor/256x256/apps/${pkgname}.png
- install -Dm 644 ${pkgname}-${_pkgname}${pkgver}/docs/${pkgname}.pdf "${pkgdir}"/usr/share/doc/${pkgname}/${pkgname}.pdf
+ install -Dm 644 ${pkgname}-${pkgname}-${pkgver}/dab-maxi/${pkgname}.desktop "${pkgdir}"/usr/share/applications/${pkgname}.desktop
+ install -Dm 644 ${pkgname}-${pkgname}-${pkgver}/dab-maxi/${pkgname}.png "${pkgdir}"/usr/share/icons/hicolor/256x256/apps/${pkgname}.png
+ install -Dm 644 ${pkgname}-${pkgname}-${pkgver}/docs/${pkgname}.pdf "${pkgdir}"/usr/share/doc/${pkgname}/${pkgname}.pdf
}