From patchwork Fri Feb 10 14:01:12 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Gwenhael Goavec-Merou X-Patchwork-Id: 726546 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from whitealder.osuosl.org (smtp1.osuosl.org [140.211.166.138]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 3vKc5J5h7Vz9s7C for ; Sat, 11 Feb 2017 00:59:48 +1100 (AEDT) Received: from localhost (localhost [127.0.0.1]) by whitealder.osuosl.org (Postfix) with ESMTP id 4705E86C73; Fri, 10 Feb 2017 13:59:46 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from whitealder.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id LBli7u1OsfEd; Fri, 10 Feb 2017 13:59:44 +0000 (UTC) Received: from ash.osuosl.org (ash.osuosl.org [140.211.166.34]) by whitealder.osuosl.org (Postfix) with ESMTP id E6E2E86C2F; Fri, 10 Feb 2017 13:59:43 +0000 (UTC) X-Original-To: buildroot@lists.busybox.net Delivered-To: buildroot@osuosl.org Received: from whitealder.osuosl.org (smtp1.osuosl.org [140.211.166.138]) by ash.osuosl.org (Postfix) with ESMTP id C12431C0916 for ; Fri, 10 Feb 2017 13:59:42 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by whitealder.osuosl.org (Postfix) with ESMTP id BB0C886C2F for ; Fri, 10 Feb 2017 13:59:42 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from whitealder.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id MPwyTS5fw7Sz for ; Fri, 10 Feb 2017 13:59:41 +0000 (UTC) X-Greylist: whitelisted by SQLgrey-1.7.6 Received: from smtp3-g21.free.fr (smtp3-g21.free.fr [212.27.42.3]) by whitealder.osuosl.org (Postfix) with ESMTPS id E93D586C02 for ; Fri, 10 Feb 2017 13:59:40 +0000 (UTC) Received: from x230.trabucayre.com (unknown [78.252.129.8]) by smtp3-g21.free.fr (Postfix) with ESMTP id BF6B013F80A; Fri, 10 Feb 2017 14:59:37 +0100 (CET) From: Gwenhael Goavec-Merou To: buildroot@busybox.net Date: Fri, 10 Feb 2017 15:01:12 +0100 Message-Id: <20170210140112.26552-1-gwenj@trabucayre.com> X-Mailer: git-send-email 2.10.2 Cc: Romain Naour , Gwenhael Goavec-Merou Subject: [Buildroot] [PATCH v5] gqrx: new package X-BeenThere: buildroot@busybox.net X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: Discussion and development of buildroot List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: buildroot-bounces@busybox.net Sender: "buildroot" From: Gwenhael Goavec-Merou Gqrx is an open source software defined radio (SDR) receiver implemented using GNU Radio and the Qt GUI toolkit. Currently it works on Linux and Mac with hardware supported by gr-osmosdr, including Funcube Dongle, RTL-SDR, Airspy, HackRF, BladeRF, RFSpace, USRP and SoapySDR. Gqrx can operate as an AM/FM/SSB receiver with audio output or as an FFT-only instrument. There are also various hooks for interacting with external application using network sockets. Signed-off-by: Gwenhael Goavec-Merou Reviewed-by: Romain Naour --- Changes v4 -> v5: * re-order depends/select Changes v3 -> v4: * revert help text and fix columns size; * depends on BR2_PACKAGE_QT5 instead of select Changes v2 -> v3: * backport patch to fix Wmisleading-indentation with gcc6; * inherits alsa-lib or portaudio dependencies from gr-audio; * reduce help text size; * add upstream url. Changes v1 -> v2: * typo --- package/Config.in | 1 + package/gqrx/0001-fix_compilation_in_gcc-6.patch | 34 +++++++++++++++++++ package/gqrx/Config.in | 43 ++++++++++++++++++++++++ package/gqrx/gqrx.hash | 2 ++ package/gqrx/gqrx.mk | 15 +++++++++ 5 files changed, 95 insertions(+) create mode 100644 package/gqrx/0001-fix_compilation_in_gcc-6.patch create mode 100644 package/gqrx/Config.in create mode 100644 package/gqrx/gqrx.hash create mode 100644 package/gqrx/gqrx.mk diff --git a/package/Config.in b/package/Config.in index deff0fe..e78fb75 100644 --- a/package/Config.in +++ b/package/Config.in @@ -1451,6 +1451,7 @@ menu "Miscellaneous" source "package/empty/Config.in" source "package/gnuradio/Config.in" source "package/googlefontdirectory/Config.in" + source "package/gqrx/Config.in" source "package/gr-osmosdr/Config.in" source "package/gsettings-desktop-schemas/Config.in" source "package/haveged/Config.in" diff --git a/package/gqrx/0001-fix_compilation_in_gcc-6.patch b/package/gqrx/0001-fix_compilation_in_gcc-6.patch new file mode 100644 index 0000000..e1824c3 --- /dev/null +++ b/package/gqrx/0001-fix_compilation_in_gcc-6.patch @@ -0,0 +1,34 @@ +From e6baaee4968345a53e977f593362267a91041cff Mon Sep 17 00:00:00 2001 +From: Valentin Ochs +Date: Fri, 21 Oct 2016 20:12:50 +0200 +Subject: [PATCH 05/34] Cosmetic & readability changes + +Backport patch from +https://github.com/csete/gqrx/commit/e6baaee4968345a53e977f593362267a91041cff + +Fix compilation in gcc-6 + +Signed-off-by: Valentin Ochs +Signed-off-by: Gwenhael Goavec-Merou +--- +diff --git a/src/qtgui/plotter.cpp b/src/qtgui/plotter.cpp +index e491632..b877546 100644 +--- a/src/qtgui/plotter.cpp ++++ b/src/qtgui/plotter.cpp +@@ -1336,8 +1336,11 @@ void CPlotter::drawOverlay() + #endif + + int level = 0; +- for (; level < nLevels && tagEnd[level] > x; level++); +- level %= nLevels; ++ while(level < nLevels && tagEnd[level] > x) ++ level++; ++ ++ if(level == nLevels) ++ level = 0; + + tagEnd[level] = x + nameWidth + slant - 1; + m_BookmarkTags.append(qMakePair(QRect(x, level * levelHeight, nameWidth + slant, fontHeight), bookmarks[i].frequency)); +-- +2.10.2 + diff --git a/package/gqrx/Config.in b/package/gqrx/Config.in new file mode 100644 index 0000000..c6bef76 --- /dev/null +++ b/package/gqrx/Config.in @@ -0,0 +1,43 @@ +comment "gqrx needs a toolchain w/ C++, threads, wchar, dynamic library" + depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS || \ + !BR2_USE_WCHAR || BR2_STATIC_LIBS + +comment "gqrx needs qt5, gnuradio, fftw's single precision, alsa-lib or portaudio" + depends on !BR2_PACKAGE_GNURADIO || !BR2_PACKAGE_FFTW_PRECISION_SINGLE || \ + !(BR2_PACKAGE_ALSA_LIB || BR2_PACKAGE_PORTAUDIO) || !BR2_PACKAGE_QT5 + +config BR2_PACKAGE_GQRX + bool "gqrx" + depends on BR2_PACKAGE_ALSA_LIB || BR2_PACKAGE_PORTAUDIO # gr-audio + depends on BR2_PACKAGE_FFTW_PRECISION_SINGLE # gnuradio + depends on BR2_PACKAGE_GNURADIO + depends on BR2_PACKAGE_QT5 + depends on BR2_INSTALL_LIBSTDCPP # boost, qt5 + depends on !BR2_STATIC_LIBS # qt5 + depends on BR2_TOOLCHAIN_HAS_THREADS # boost, qt5 + depends on BR2_USE_WCHAR # boost, qt5 + select BR2_PACKAGE_BOOST + select BR2_PACKAGE_BOOST_PROGRAM_OPTIONS + select BR2_PACKAGE_BOOST_SYSTEM + select BR2_PACKAGE_GNURADIO_ANALOG + select BR2_PACKAGE_GNURADIO_AUDIO + select BR2_PACKAGE_GNURADIO_BLOCKS + select BR2_PACKAGE_GNURADIO_DIGITAL + select BR2_PACKAGE_GNURADIO_FFT + select BR2_PACKAGE_GNURADIO_FILTER + select BR2_PACKAGE_GR_OSMOSDR + select BR2_PACKAGE_QT5BASE_GUI + select BR2_PACKAGE_QT5BASE_WIDGETS + select BR2_PACKAGE_QT5SVG + help + Gqrx is an open source software defined radio (SDR) receiver + implemented using GNU Radio and the Qt GUI toolkit. Currently + it works on Linux and Mac with hardware supported by gr-osmosdr, + including Funcube Dongle, RTL-SDR, Airspy, HackRF, BladeRF, + RFSpace, USRP and SoapySDR. + + Gqrx can operate as an AM/FM/SSB receiver with audio output or + as an FFT-only instrument. There are also various hooks for + interacting with external application using network sockets. + + http://gqrx.dk/ diff --git a/package/gqrx/gqrx.hash b/package/gqrx/gqrx.hash new file mode 100644 index 0000000..2d126aa --- /dev/null +++ b/package/gqrx/gqrx.hash @@ -0,0 +1,2 @@ +# Locally calculated: +sha256 53d25db8d987a41ccccaf6fd85262bd7770cdfab5539b5901c4558756483c9db gqrx-v2.6.tar.gz diff --git a/package/gqrx/gqrx.mk b/package/gqrx/gqrx.mk new file mode 100644 index 0000000..b591e60 --- /dev/null +++ b/package/gqrx/gqrx.mk @@ -0,0 +1,15 @@ +################################################################################ +# +# gqrx +# +################################################################################ + +GQRX_VERSION = v2.6 +GQRX_SITE = $(call github,csete,gqrx,$(GQRX_VERSION)) +GQRX_LICENSE = GPLv3+, Apache-2.0 +GQRX_LICENSE_FILES = COPYING LICENSE-CTK +GQRX_DEPENDENCIES = boost gnuradio gr-osmosdr qt5base qt5svg + +GQRX_CONF_OPTS = -DLINUX_AUDIO_BACKEND=Gr-audio + +$(eval $(cmake-package))