From e50b14ff2d131043d415816872df434d9fd54b80 Mon Sep 17 00:00:00 2001 From: Paul Traina <216482-pleasantone@users.noreply.gitlab.com> Date: Tue, 17 Nov 2020 20:08:56 +0000 Subject: [PATCH] Move all versioning to package.json and create an architecture independent RPM .spec file. --- .gitlab-ci.yml | 8 +++++++- Makefile | 6 +++++- debian/control | 5 ++++- gridtracker.desktop | 2 +- gridtracker.spec | 45 +++++++++++++++++++++++++++++++++++++++++ package.nw/lib/gt.js | 7 ++++--- package.nw/package.json | 1 + version.js | 2 ++ 8 files changed, 69 insertions(+), 7 deletions(-) create mode 100644 gridtracker.spec create mode 100644 version.js diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 4a79191..3c69210 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -64,17 +64,23 @@ packaging: - package.nw/package.json script: - mkdir -p $APT_CACHE_DIR $NPM_CONFIG_CACHE - - mkdir -p build/debian + - mkdir -p build/debian build/rpm - dpkg --add-architecture i386 - apt-get -qq update - apt-get -qq -o dir::cache::archives="$APT_CACHE_DIR" install -y npm wine wine32 + - echo "Building native packages" - npm install --prefer-offline - npm run dist - (cd dist ; mv *.zip *.exe *.7z *.json ../build) + - echo "Building Debian packages" - apt-get -qq -o dir::cache::archives="$APT_CACHE_DIR" install -y build-essential devscripts - apt-get -qq -o dir::cache::archives="$APT_CACHE_DIR" build-dep . - dpkg-buildpackage -uc -us - mv ../*.{deb,dsc,buildinfo,tar.xz,changes} build/debian/ + - echo "Building RPM packages" + - apt-get -qq -o dir::cache::archives="$APT_CACHE_DIR" install -y rpmbuild + - rpmbuild -D "version `node ./version.js`" --build-in-place -bb --target noarch gridtracker.spec + - mv $HOME/rpmbuild/RPMS/noarch/gridtracker-*.noarch.rpm build/rpm # copy the assets over to our distribution storage (testing, tag = test_.*) upload_testing: diff --git a/Makefile b/Makefile index 008b961..509c929 100644 --- a/Makefile +++ b/Makefile @@ -2,12 +2,16 @@ BIN = $(DESTDIR)/usr/bin LIB = $(DESTDIR)/usr/share/gridtracker APP = $(DESTDIR)/usr/share/applications MAN = $(DESTDIR)/usr/share/man/man1 +DOC = $(DESTDIR)/usr/share/doc/gridtracker all: +clean: + install: - install -d $(BIN) $(LIB) $(APP) $(MAN) + install -d $(BIN) $(LIB) $(APP) $(MAN) $(DOC) install -c -m 755 gridtracker.sh $(BIN)/gridtracker install -c -m 644 gridtracker.desktop $(APP)/gridtracker.desktop install -c -m 644 gridtracker.1 $(MAN) + install -c -m 644 LICENSE $(DOC) cp -r package.nw/* $(LIB) diff --git a/debian/control b/debian/control index 54d76e0..f4d811f 100644 --- a/debian/control +++ b/debian/control @@ -12,4 +12,7 @@ Depends: nwjs (>= 0.47.4), fonts-noto, ${misc:Depends} Recommends: speech-dispatcher-espeak-ng Description: Companion program to WSJT-X/JTDX . - GridTracker cleans your teeth and freshens your breath. + GridTracker listens to traffic from WSJT-X/JTDX, displays it on a map, + and has a sophisticated alerting and filtering system for finding and + working interesting stations. It also will upload QSO records to multiple + logging frameworks including Logbook of the World. diff --git a/gridtracker.desktop b/gridtracker.desktop index cfefa0c..bd71089 100644 --- a/gridtracker.desktop +++ b/gridtracker.desktop @@ -1,7 +1,7 @@ [Desktop Entry] Name=GridTracker Comment=GridTracker -GenericName=GridTracker, a WSJT-X Companion +GenericName=GridTracker, an Amateur Radio Companion Exec=gridtracker Icon=/usr/share/gridtracker/gridview.png Encoding=UTF-8 diff --git a/gridtracker.spec b/gridtracker.spec new file mode 100644 index 0000000..d072c02 --- /dev/null +++ b/gridtracker.spec @@ -0,0 +1,45 @@ +# Build with the following syntax: +# +# version=`node ./version.js` +# rpmbuild -D "version ${version}" --build-in-place -bb --target noarch gridtracker.spec + +Name: gridtracker +Summary: GridTracker: An amateur radio companion to WSJT-X or JTDX +Version: %{version} +Release: 1%{?dist} +BuildArch: noarch + +License: BSD 3-Clause License +URL: https://gridtracker.org +Group: Science & Math +Packager: Matthew Chambers +Requires: nwjs +# BuildRequires: desktop-file-utils + +%description +GridTracker listens to traffic from WSJT-X/JTDX, displays it on a map, +and has a sophisticated alerting and filtering system for finding and +working interesting stations. It also will upload QSO records to multiple +logging frameworks including Logbook of the World. + +%prep +mkdir -pv ${RPM_BUILD_ROOT} + +%build +make + +%install +make install DESTDIR=${RPM_BUILD_ROOT} + +%check +# desktop-file-validate desktop-file-validate %{buildroot}/%{_datadir}/applications/%{name}.desktop + +%clean +make clean + +%files +%{_bindir}/%{name} +%{_mandir}/man1/%{name}.1 +%{_datadir}/applications/%{name}.desktop +%{_datadir}/%{name}/ +%license %{_docdir}/%{name}/LICENSE diff --git a/package.nw/lib/gt.js b/package.nw/lib/gt.js index 09c64bf..590170e 100644 --- a/package.nw/lib/gt.js +++ b/package.nw/lib/gt.js @@ -1,10 +1,11 @@ // GridTracker ©2020 GridTracker.org // All rights reserved. // See LICENSE for more information. -var gtVersion = 1201107; -var gtBeta = "Phoenix"; -var g_startVersion = 0; +var pjson = require("./package.json"); +var gtVersion = parseInt(pjson.version.replace(/\./g, "")); +var gtBeta = pjson.betaVersion; +var g_startVersion = 0; if (typeof localStorage.currentVersion != "undefined") g_startVersion = localStorage.currentVersion; diff --git a/package.nw/package.json b/package.nw/package.json index 01ae970..468daea 100644 --- a/package.nw/package.json +++ b/package.nw/package.json @@ -2,6 +2,7 @@ "name": "GridTracker", "product_string_do_not_use": "gridtracker", "version": "1.20.1107", + "betaVersion": "Phoenix II", "description": "GridTracker, an amateur radio companion", "author": "Steven Tag Loomis (N0TTL) and GridTracker.org", "license": "BSD-3-Clause", diff --git a/version.js b/version.js new file mode 100644 index 0000000..d927a6a --- /dev/null +++ b/version.js @@ -0,0 +1,2 @@ +var pjson = require('./package.nw/package.json'); +console.log(pjson.version);