diff --git a/.gitignore b/.gitignore index e69de29..13173ea 100644 --- a/.gitignore +++ b/.gitignore @@ -0,0 +1 @@ +/RTLSDR-Scanner-1.0.22298.18049.tar.gz diff --git a/rtlsdr-scanner-1.0.22298.18049-fedora.patch b/rtlsdr-scanner-1.0.22298.18049-fedora.patch new file mode 100644 index 0000000..d67f4fa --- /dev/null +++ b/rtlsdr-scanner-1.0.22298.18049-fedora.patch @@ -0,0 +1,56 @@ +diff --git a/src/misc.py b/src/misc.py +index 0cd8092..475702e 100644 +--- a/src/misc.py ++++ b/src/misc.py +@@ -78,12 +78,7 @@ class RemoteControl(object): + + + def get_script_dir(): +- if not hasattr(sys, 'frozen'): +- scriptDir = os.path.dirname(os.path.realpath(sys.argv[0])) +- else: +- scriptDir = sys._MEIPASS +- +- return scriptDir ++ return '/usr/share/rtlsdr-scanner' + + + def get_resdir(): +diff --git a/src/rtlsdr_scan.py b/src/rtlsdr_scan.py +index ba72ab1..001505e 100755 +--- a/src/rtlsdr_scan.py ++++ b/src/rtlsdr_scan.py +@@ -45,6 +45,10 @@ import os.path + import signal + import sys + ++# hack to easy modularize ++from distutils.sysconfig import get_python_lib ++sys.path.append(os.path.join(get_python_lib(), 'rtlsdr-scanner')) ++ + from cli import Cli + from constants import APP_NAME + from file import File +diff --git a/src/utils_wx.py b/src/utils_wx.py +index 0c72173..08265c2 100644 +--- a/src/utils_wx.py ++++ b/src/utils_wx.py +@@ -77,14 +77,10 @@ def load_bitmap(name): + + + def load_icon(name): +- name += '.ico' +- scriptDir = get_script_dir() +- if os.path.isfile(os.path.join(scriptDir, name)): +- iconFile = os.path.join(scriptDir, name) +- else: +- iconFile = os.path.join(scriptDir, '..', name) +- +- return wx.Icon(iconFile, wx.BITMAP_TYPE_ICO) ++ name += '.png' ++ iconFile = os.path.join('/usr/share/icons/hicolor/256x256/apps', name) ++ ++ return wx.Icon(iconFile, wx.BITMAP_TYPE_PNG) + + + def close_modeless(): diff --git a/rtlsdr-scanner.desktop b/rtlsdr-scanner.desktop new file mode 100644 index 0000000..33976a6 --- /dev/null +++ b/rtlsdr-scanner.desktop @@ -0,0 +1,9 @@ +[Desktop Entry] +Icon=rtlsdr_scan +Name=rtlsdr-scanner +Comment=Frequency scanning GUI for RTL2832 based DVB-T dongles +Exec=/usr/bin/rtlsdr_scan +Terminal=false +Type=Application +Categories=Utility; +StartupNotify=true diff --git a/rtlsdr-scanner.spec b/rtlsdr-scanner.spec new file mode 100644 index 0000000..a323fa3 --- /dev/null +++ b/rtlsdr-scanner.spec @@ -0,0 +1,89 @@ +# Only python2 is supported +Name: rtlsdr-scanner +Version: 1.0.22298.18049 +Release: 2%{?dist} +Summary: Frequency scanning GUI for RTL2832 based DVB-T dongles +License: GPLv3 +Group: Applications/Engineering +URL: http://eartoearoak.com/software/rtlsdr-scanner +Source0: https://github.com/EarToEarOak/RTLSDR-Scanner/archive/v%{version}.tar.gz#/RTLSDR-Scanner-%{version}.tar.gz +Source1: rtlsdr-scanner.desktop +BuildRequires: python2-devel, ImageMagick, desktop-file-utils +Requires: wxPython, python2-matplotlib, python2-matplotlib-wx, numpy +Requires: python-pillow, pyserial, python2-pyrtlsdr, hicolor-icon-theme +BuildArch: noarch +# distribution specific patch changing paths and modularizing the code +Patch0: rtlsdr-scanner-1.0.22298.18049-fedora.patch + +%description +Frequency scanning GUI for RTL2832 based DVB-T dongles. In other +words a cheap, simple Spectrum Analyser. + +%package doc +Summary: Documentation files for rtlsdr-scanner +Requires: %{name} = %{version}-%{release} +BuildArch: noarch + +%description doc +%{summary}. + +%prep +%setup -qn RTLSDR-Scanner-%{version} +%patch0 -p1 + +find src -name '*.py' | xargs sed -i '1s|^#!.*|#!%{__python2}|' + +# rtlsdr_scan_diag.py is not needed in distribution +rm -f src/rtlsdr_scan_diag.py + +mv src/rtlsdr_scan.py ./rtlsdr_scan + +# icon +convert rtlsdr_scan.ico rtlsdr_scan.png + +%build + +%install +install -Dpm 0755 rtlsdr_scan %{buildroot}%{_bindir}/rtlsdr_scan +install -Dpm 0644 -t %{buildroot}%{python2_sitelib}/%{name} src/* +install -Dpm 0644 -t %{buildroot}%{_datadir}/%{name}/res res/* + +# icon +install -Dpm 0644 rtlsdr_scan-8.png %{buildroot}%{_datadir}/icons/hicolor/256x256/apps/rtlsdr_scan.png + +# desktop file +mkdir -p %{buildroot}%{_datadir}/applications +desktop-file-install --add-category="Utility" \ + --dir=%{buildroot}%{_datadir}/applications \ + %{SOURCE1} + +%post +/bin/touch --no-create %{_datadir}/icons/hicolor &>/dev/null || : + +%postun +if [ $1 -eq 0 ] ; then + /bin/touch --no-create %{_datadir}/icons/hicolor &>/dev/null + /usr/bin/gtk-update-icon-cache -f %{_datadir}/icons/hicolor &>/dev/null || : +fi + +%posttrans +/usr/bin/gtk-update-icon-cache -f %{_datadir}/icons/hicolor &>/dev/null || : + +%files +%license COPYING +%doc readme.md +%{_bindir}/rtlsdr_scan +%{_datadir}/icons/hicolor/256x256/apps/rtlsdr_scan.png +%{_datadir}/applications/rtlsdr-scanner.desktop +%{_datadir}/%{name} +%{python2_sitelib}/rtlsdr-scanner/ + +%files doc +%doc doc/Manual.pdf + +%changelog +* Fri Jul 15 2016 Jaroslav Škarvada - 1.0.22298.18049-2 +- Fixed icon packaging according to review + +* Tue Apr 12 2016 Jaroslav Škarvada - 1.0.22298.18049-1 +- Initial release diff --git a/sources b/sources index e69de29..b51778a 100644 --- a/sources +++ b/sources @@ -0,0 +1 @@ +641c25866800b1c3caa81009d91e3ae6 RTLSDR-Scanner-1.0.22298.18049.tar.gz