diff --git a/.gitignore b/.gitignore index 8309bc6..d4073ad 100644 --- a/.gitignore +++ b/.gitignore @@ -9,3 +9,5 @@ debian/*.substvars debian/tmp .DS_Store node_modules +package-lock.json +.vscode diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index cad0833..135a6f2 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -2,7 +2,7 @@ # see https://docs.gitlab.com/ee/ci/yaml/README.html for all available options variables: - DEFAULT_IMAGE: debian:stable + DEFAULT_IMAGE: registry.gitlab.com/gridtracker.org/gtbuilder:v1-0 APT_CACHE_DIR: $CI_PROJECT_DIR/.cache/apt NPM_CONFIG_CACHE: $CI_PROJECT_DIR/.cache/npm @@ -16,6 +16,13 @@ variables: NR0Q_SERVER_ADDRESS: "" NR0Q_SERVER_PASSWORD: "" + # + # Because it's getting to be that kind of world, we're going to have to + # sign our packages/exectuables with a signing key. + # That signing chain and spec file will be stored in a Gitlab CI Variable and protected, + # here's a placeholder for the script + G_CODE_SIGNING_CHAIN: "" + # nothing in this file ill be allowed to run automatically except for: # 1. merge requests # 2. manual tagging @@ -31,7 +38,9 @@ include: stages: - build - test + - staging - package + - pre-deploy - deploy default: @@ -40,7 +49,7 @@ default: # just do a quick syntax check job, we don't need to "build" anything here other than the # outer dev environment for gridtracker -npm_test: +npm:test: stage: test image: node:latest script: @@ -54,7 +63,7 @@ npm_test: # - echo "For example run a lint test" # package binaries and create build artifacts that may be used in later stages -win-packaging: +win:package: stage: package rules: # only do this with a manual tag starting with v or test_ @@ -71,26 +80,26 @@ win-packaging: files: - package.json - package.nw/package.json - script: + before_script: - | - mkdir -p $APT_CACHE_DIR $NPM_CONFIG_CACHE + mkdir -p $NPM_CONFIG_CACHE mkdir -p artifacts - dpkg --add-architecture i386 - - | echo -e "\e[0Ksection_start:`date +%s`:apt_get[collapsed=true]\r\e[0KGetting Build Dependencies" - apt-get -qq update - apt-get -qq -o dir::cache::archives="$APT_CACHE_DIR" install -y npm wine wine32 - 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" install -y zip nsis nsis nsis-pluginapi wget + apt-get update && apt-get upgrade -y wget https://nsis.sourceforge.io/mediawiki/images/4/47/Registry.zip unzip Registry.zip mv Desktop/Plugin/registry.dll /usr/share/nsis/Plugins/x86-unicode/ mv Desktop/Include/Registry.nsh /usr/share/nsis/Include/ rm -Rf Desktop PocketPC Source - echo -e "\e[0Ksection_end:`date +%s`:apt_get\r\e[0K" - - test `node version.js` = `dpkg-parsechangelog -S version` || (echo "package.nw/package.json and debian/changelog version mismatch"; exit 1) - # Making our Windows packages + eval $(ssh-agent -s) + echo "$NR0Q_PRIV" | tr -d '\r' | ssh-add - + mkdir -p ~/.ssh; chmod 700 ~/.ssh + scp -o StrictHostKeyChecking=no mchambers@$NR0Q_SERVER_ADDRESS:~/codecert.spc ./ + script: - | + # Making our Windows packages + echo -e "\e[0Ksection_end:`date +%s`:apt_get\r\e[0K" + test `node version.js` = `dpkg-parsechangelog -S version` || (echo "package.nw/package.json and debian/changelog version mismatch"; exit 1) echo -e "\e[0Ksection_start:`date +%s`:native_build\r\e[0KBuilding native packages" npm install --prefer-offline npm run dist-win @@ -106,20 +115,23 @@ win-packaging: rm $dir fi done + # Now we need to sign the executable before it get's stuffed into Nullsoft + # using mono signcode + signcode -spc codecert.spc -t http://time.certum.pl/ -a sha256 dist/GridTracker-*-win-*/*.exe + # Now the executable should be signed sed "s#GridTracker-\${VERSION}-win-x86/#`pwd`/dist/GridTracker-\${VERSION}-win-x86/#g" windows/setup.nsi.tmpl > windows/setup.nsi.tmp.1 sed "s#GridTracker-Installer.#`pwd`/dist/GridTracker-Installer.#g" windows/setup.nsi.tmp.1 > windows/setup.nsi.tmp.2 sed "s#define VERSION windows/setup.nsi - makensis windows/setup.nsi # clean up generated files rm windows/setup.nsi rm windows/setup.nsi.tmp.1 rm windows/setup.nsi.tmp.2 + signcode -spc codecert.spc -t http://time.certum.pl/ -a sha256 dist/GridTracker-Installer.*.exe (cd dist ; mv GridTracker-Installer.*.exe ../artifacts) echo -e "\e[0Ksection_end:`date +%s`:native_build\e[0K" - -intel-packaging: +linux:package: stage: package rules: # only do this with a manual tag starting with v or test_ @@ -136,22 +148,17 @@ intel-packaging: files: - package.json - package.nw/package.json + before_script: + - | + mkdir -p $NPM_CONFIG_CACHE + mkdir -p artifacts + echo -e "\e[0Ksection_start:`date +%s`:apt_get[collapsed=true]\r\e[0KGetting Build Dependencies" + apt-get update && apt-get upgrade -y + echo -e "\e[0Ksection_end:`date +%s`:apt_get\r\e[0K" script: - | - mkdir -p $APT_CACHE_DIR $NPM_CONFIG_CACHE - mkdir -p artifacts/rpm - dpkg --add-architecture i386 - - | - echo -e "\e[0Ksection_start:`date +%s`:apt_get[collapsed=true]\r\e[0KGetting Build Dependencies" - apt-get -qq update - apt-get -qq -o dir::cache::archives="$APT_CACHE_DIR" install -y npm wine wine32 - 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" install -y rpm zip wget - apt-get -qq -o dir::cache::archives="$APT_CACHE_DIR" build-dep . - echo -e "\e[0Ksection_end:`date +%s`:apt_get\r\e[0K" - - test `node version.js` = `dpkg-parsechangelog -S version` || (echo "package.nw/package.json and debian/changelog version mismatch"; exit 1) - # Making our MacOS and distro agnostic Linux packages - - | + # Making our distro agnostic Linux packages + test `node version.js` = `dpkg-parsechangelog -S version` || (echo "package.nw/package.json and debian/changelog version mismatch"; exit 1) echo -e "\e[0Ksection_start:`date +%s`:native_build\r\e[0KBuilding native packages" npm install --prefer-offline npm run dist-nix @@ -163,30 +170,53 @@ intel-packaging: tar -C dist -czf ${dir}.tar.gz `basename $dir` fi done - (cd dist ; mv *-mac-x64.zip *.tar.gz ../artifacts) + (cd dist; mv *.tar.gz ../artifacts/) echo -e "\e[0Ksection_end:`date +%s`:native_build\e[0K" - # This section handles making RPMs for Fedora/CentOS/RHEL - - | - echo -e "\e[0Ksection_start:`date +%s`:rpm_build\r\e[0KBuilding RPM packages" - # mkdir -p $HOME/rpmbuild/SOURCES - # cp artifacts/*.tar.gz $HOME/rpmbuild/SOURCES/ - setarch i386 rpmbuild -D "version `node ./version.js`" --build-in-place -bb gridtracker.i386.spec - setarch x86_64 rpmbuild -D "version `node ./version.js`" --build-in-place -bb gridtracker.x86_64.spec - mv $HOME/rpmbuild/RPMS/i386/*.rpm artifacts/rpm/ - mv $HOME/rpmbuild/RPMS/x86_64/*.rpm artifacts/rpm/ - echo -e "\e[0Ksection_end:`date +%s`:rpm_build\r\e[0K" - # This section does debian DEBs - #- | - # echo -e "\e[0Ksection_start:`date +%s`:debian_build\r\e[0KBuilding Debian packages" - # dpkg-buildpackage -uc -us - # mkdir artifacts/debian - # mv ../*.{deb,dsc,buildinfo,tar.xz,changes} artifacts/debian/ - # echo -e "\e[0Ksection_end:`date +%s`:debian_build\r\e[0K" - - | - echo "we made packages!" + # This section does debian DEBs + echo -e "\e[0Ksection_start:`date +%s`:debian_build\r\e[0KBuilding Debian packages" + dpkg-buildpackage -b --no-sign + mv ../*.{deb,buildinfo,changes} artifacts/ + echo -e "\e[0Ksection_end:`date +%s`:debian_build\r\e[0K" + echo "we made LINUX packages!" ls -laR artifacts -arm-packaging: +mac:package: + stage: package + rules: + # only do this with a manual tag starting with v or test_ + - if: '$CI_COMMIT_TAG =~ /^(v|test_).*/' + artifacts: + paths: + - artifacts/ + name: '$CI_COMMIT_REF_SLUG' + cache: + paths: + - .cache/ + - node_modules/ + key: + files: + - package.json + - package.nw/package.json + before_script: + - | + mkdir -p $NPM_CONFIG_CACHE + mkdir -p artifacts + echo -e "\e[0Ksection_start:`date +%s`:apt_get[collapsed=true]\r\e[0KGetting Build Dependencies" + apt-get update && apt-get upgrade -y + echo -e "\e[0Ksection_end:`date +%s`:apt_get\r\e[0K" + script: + - | + # Making our MacOS packages + test `node version.js` = `dpkg-parsechangelog -S version` || (echo "package.nw/package.json and debian/changelog version mismatch"; exit 1) + echo -e "\e[0Ksection_start:`date +%s`:native_build\r\e[0KBuilding native packages" + npm install --prefer-offline + npm run dist-mac + (cd dist; mv *.zip ../artifacts/) + echo -e "\e[0Ksection_end:`date +%s`:native_build\e[0K" + echo "we made MAC packages!" + ls -laR artifacts + +arm:package: stage: package variables: NWJS_VERSION: "v0.54.2" @@ -207,28 +237,26 @@ arm-packaging: files: - package.json - package.nw/package.json + before_script: + - | + mkdir -p $NPM_CONFIG_CACHE + mkdir -p artifacts + #dpkg --add-architecture armhf + echo -e "\e[0Ksection_start:`date +%s`:apt_get[collapsed=true]\r\e[0KGetting Build Dependencies" + apt-get update && apt-get upgrade -y + apt-get build-dep . + echo -e "\e[0Ksection_end:`date +%s`:apt_get\r\e[0K" script: - | - mkdir -p $APT_CACHE_DIR $NPM_CONFIG_CACHE - mkdir -p artifacts/rpm - dpkg --add-architecture armhf - - | - echo -e "\e[0Ksection_start:`date +%s`:apt_get[collapsed=true]\r\e[0KGetting Build Dependencies" - apt-get -qq update - apt-get -qq -o dir::cache::archives="$APT_CACHE_DIR" install -y npm - 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" install -y rpm zip wget - apt-get -qq -o dir::cache::archives="$APT_CACHE_DIR" build-dep . - echo -e "\e[0Ksection_end:`date +%s`:apt_get\r\e[0K" - - test `node version.js` = `dpkg-parsechangelog -S version` || (echo "package.nw/package.json and debian/changelog version mismatch"; exit 1) - # This is for ARM 32 arch build - - | + # This is for ARM 32 arch build + test `node version.js` = `dpkg-parsechangelog -S version` || (echo "package.nw/package.json and debian/changelog version mismatch"; exit 1) + echo -e "\e[0Ksection_start:`date +%s`:wget[collapsed=true]\r\e[0KGetting Upstream NWJS Binary" wget https://github.com/LeonardLaszlo/nw.js-armv7-binaries/releases/download/$NWJS32_BUILD/$NWJS32_BUILD.tar.gz tar -xf $NWJS32_BUILD.tar.gz tar -xf usr/docker/dist/nwjs-chromium-ffmpeg-branding/nwjs-$NWJS_VERSION-linux-arm.tar.gz + echo -e "\e[0Ksection_end:`date +%s`:wget\r\e[0K" rm nwjs-$NWJS_VERSION-linux-arm/locales/*.info mv nwjs-$NWJS_VERSION-linux-arm/nw nwjs-$NWJS_VERSION-linux-arm/GridTracker - ls version=`node ./version.js` mkdir GridTracker-$version-linux-arm32 cp -r nwjs-$NWJS_VERSION-linux-arm/* GridTracker-$version-linux-arm32/ @@ -237,14 +265,12 @@ arm-packaging: cp LICENSE GridTracker-$version-linux-arm32/ tar -czf GridTracker-$version-linux-arm32.tar.gz GridTracker-$version-linux-arm32 mv GridTracker-$version-linux-arm32.tar.gz artifacts/ - # This is for ARM 64 arch build - - | + # This is for ARM 64 arch build wget https://github.com/LeonardLaszlo/nw.js-armv7-binaries/releases/download/$NWJS64_BUILD/$NWJS64_BUILD.tar.gz tar -xf $NWJS64_BUILD.tar.gz tar -xf usr/docker/dist/nwjs-chromium-ffmpeg-branding/nwjs-$NWJS_VERSION-linux-arm64.tar.gz rm nwjs-$NWJS_VERSION-linux-arm64/locales/*.info mv nwjs-$NWJS_VERSION-linux-arm64/nw nwjs-$NWJS_VERSION-linux-arm64/GridTracker - ls version=`node ./version.js` mkdir GridTracker-$version-linux-arm64 cp -r nwjs-$NWJS_VERSION-linux-arm64/* GridTracker-$version-linux-arm64/ @@ -253,29 +279,11 @@ arm-packaging: cp LICENSE GridTracker-$version-linux-arm64/ tar -czf GridTracker-$version-linux-arm64.tar.gz GridTracker-$version-linux-arm64 mv GridTracker-$version-linux-arm64.tar.gz artifacts/ - - # This section handles making RPMs for Fedora/CentOS/RHEL - #- | - # echo -e "\e[0Ksection_start:`date +%s`:rpm_build\r\e[0KBuilding RPM packages" - # mkdir -p $HOME/rpmbuild/SOURCES - # cp artifacts/*.tar.gz $HOME/rpmbuild/SOURCES/ - #setarch --list - #setarch armhf rpmbuild -D "version `node ./version.js`" --build-in-place -bb gridtracker.arm.spec - #mv $HOME/rpmbuild/RPMS/armv7l/*.rpm artifacts/rpm/ - #echo -e "\e[0Ksection_end:`date +%s`:rpm_build\r\e[0K" - # This section does debian DEBs - #- | - # echo -e "\e[0Ksection_start:`date +%s`:debian_build\r\e[0KBuilding Debian packages" - # dpkg-buildpackage -uc -us - # mkdir artifacts/debian - # mv ../*.{deb,dsc,buildinfo,tar.xz,changes} artifacts/debian/ - # echo -e "\e[0Ksection_end:`date +%s`:debian_build\r\e[0K" - - | - echo "we made packages!" + echo "we made ARM packages!" ls -laR artifacts # copy test assets to NR0Q's server -nr0q_upload_testing: +uploadtest: stage: deploy image: alpine variables: @@ -296,16 +304,10 @@ nr0q_upload_testing: echo "Calculating MD5 Hash for $FILE" md5sum $FILE > $FILE.md5 done - for FILE in rpm/*.rpm - do - echo "Calculating MD5 Hash for $FILE" - md5sum $FILE > $FILE.md5 - done - ssh -o StrictHostKeyChecking=no gridtracker@$NR0Q_SERVER_ADDRESS "mkdir ~/$CI_COMMIT_TAG" && scp -o StrictHostKeyChecking=no -r ./* gridtracker@$NR0Q_SERVER_ADDRESS:~/$CI_COMMIT_TAG/ && ssh -o StrictHostKeyChecking=no gridtracker@$NR0Q_SERVER_ADDRESS "rm latest_test && ln -s $CI_COMMIT_TAG latest_test" # copy release assets to NR0Q's server -nr0q_upload_release: +uploadrelease: stage: deploy image: alpine rules: @@ -324,17 +326,12 @@ nr0q_upload_release: echo "Calculating MD5 Hash for $FILE" md5sum $FILE > $FILE.md5 done - for FILE in rpm/*.rpm - do - echo "Calculating MD5 Hash for $FILE" - md5sum $FILE > $FILE.md5 - done ssh -o StrictHostKeyChecking=no gridtracker@$NR0Q_SERVER_ADDRESS "mkdir ~/$CI_COMMIT_TAG" && scp -o StrictHostKeyChecking=no -r ./* gridtracker@$NR0Q_SERVER_ADDRESS:~/$CI_COMMIT_TAG/ # this only creates a "source code release" -- gitlab doesn't specify binaries # except as links to external storage, which is suboptimal for now -source_release: +sourcerelease: stage: deploy image: registry.gitlab.com/gitlab-org/release-cli:latest variables: @@ -354,3 +351,45 @@ source_release: link_type: package script: - echo 'Release for $CI_COMMIT_TAG' + +update_arch_aur: + stage: deploy + image: archlinux:base-devel + variables: + GIT_STRATEGY: none + rules: + # only do this with a manual tag starting with v + - if: '$CI_COMMIT_TAG =~ /^v.*/ && $AUR_KEY != ""' + before_script: + - | + pacman -Sy; pacman -S --needed --noconfirm openssh git + eval $(ssh-agent -s) + echo "$AUR_KEY" | tr -d '\r' | ssh-add - + mkdir -p ~/.ssh; chmod 700 ~/.ssh + git config --global user.name "nr0q" + git config --global user.email "nr0q@gridtracker.org" + script: + # generate the PKGBUILD + - | + cd arch-linux + curl -o gridtracker.tar.gz "https://gitlab.com/gridtracker.org/gridtracker/-/archive/${CI_COMMIT_TAG}/gridtracker-${CI_COMMIT_TAG}.tar.gz" + SHASUM=$(sha256sum gridtracker.tar.gz | cut -d ' ' -f1) + sed "s/REPLACE_WITH_VERSION/${CI_COMMIT_TAG#v}/;s/REPLACE_WITH_SHASUM/${SHASUM}/" PKGBUILD.template > PKGBUILD + # test that it builds + - | + useradd builder -m + passwd -d builder + printf 'builder ALL=(ALL) ALL\n' | tee -a /etc/sudoers + # build nwjs-bin + sudo -u builder bash -c 'git clone https://aur.archlinux.org/nwjs-bin.git nwjs-bin && cd nwjs-bin && makepkg -si --noconfirm' + # build gridtracker + sudo -u builder makepkg -si --noconfirm PKGBUILD + # push the new version + - | + makepkg --printsrcinfo > .SRCINFO + git clone ssh://aur@aur.archlinux.org/gridtracker.git + cp PKGBUILD gridtracker/PKGBUILD + cp .SRCINFO gridtracker/.SRCINFO + cd gridtracker + git add PKGBUILD .SRCINFO && git commit -m "upgpkg: gridtracker ${CI_COMMIT_TAG#v}" && git push + diff --git a/Makefile b/Makefile index 8201947..4e53ed9 100644 --- a/Makefile +++ b/Makefile @@ -21,6 +21,10 @@ clean: @echo "Cleaning $(DESTDIR)..." rm -rf $(DESTDIR)/* +.PHONY: build +build: + @echo "GridTracker doesn't need building :D" + .PHONY: install install: @echo "Installing gridtracker in $(DESTDIR)..." diff --git a/arch-linux/PKGBUILD.template b/arch-linux/PKGBUILD.template new file mode 100644 index 0000000..09f1f89 --- /dev/null +++ b/arch-linux/PKGBUILD.template @@ -0,0 +1,19 @@ +# Maintainer: nr0q +# Contributor: classabbyamp + +pkgname=gridtracker +pkgver=REPLACE_WITH_VERSION +pkgrel=1 +pkgdesc="Companion program for WSJT-X for mapping contacts" +arch=('x86_64') +url="https://gridtracker.org/grid-tracker/" +license=('BSD') +depends=('nwjs-bin>=0.48.0') +replaces=('gridtracker-bin') +source=("https://gitlab.com/gridtracker.org/$pkgname/-/archive/v$pkgver/$pkgname-v$pkgver.tar.gz") +sha256sums=('REPLACE_WITH_SHASUM') + +package() { + cd "$srcdir/$pkgname-v$pkgver/" + make install DESTDIR=$pkgdir NO_DIST_INSTALL=true +} diff --git a/debian/changelog b/debian/changelog index ac06d70..2e12e22 100644 --- a/debian/changelog +++ b/debian/changelog @@ -5,16 +5,15 @@ gridtracker (1.21.0928) unstable; urgency=medium [Enhancements] - ARM builds now with NWJS 0.54.2 and 64 bit ARM binaries. --- Matthew Chambers Sun, 28 Sept 2021 00:00:00 -0000 + -- Matthew Chambers Sun, 28 Sep 2021 00:00:00 -0000 - -- Matthew Chambers Sund, 26 Sept 2021 19:03:30 -0000 gridtracker (1.21.0620) unstable; urgency=medium [Bug Fixes] - Fix pulling down of LoTW logs at start-up with a differential log syncing mechanism that only get's changes since last sync, also cool down timer to prevent rapid reloading of LoTW log. [Enhancements] - Automatic pulling down of acknowledgements.json file daily when doing version check (if enabled). --- Matthew Chambers Sat, 19 June 2021 16:49:00 -0000 + -- Matthew Chambers Sat, 19 Jun 2021 16:49:00 -0000 gridtracker (1.21.0613) unstable; urgency=medium [Bug Fixes] @@ -22,7 +21,7 @@ gridtracker (1.21.0613) unstable; urgency=medium [Enhancements] - Updated list of contributors --- Matthew Chambers Sun, 13 June 2021 03:04:00 -0000 + -- Matthew Chambers Sun, 13 Jun 2021 03:04:00 -0000 gridtracker (1.21.0530) unstable; urgency=medium [Bug Fixes] @@ -35,7 +34,7 @@ gridtracker (1.21.0530) unstable; urgency=medium [Enhancements] - Add statistical information to call roster title bar --- Matthew Chambers Sat, 30 May 2021 00:10:00 -0000 + -- Matthew Chambers Sat, 30 May 2021 00:10:00 -0000 gridtracker (1.21.0520) unstable; urgency=medium [Bug Fixes] @@ -51,7 +50,7 @@ gridtracker (1.21.0520) unstable; urgency=medium - Make settings icon a toggle that both opens and closes the settings pane - Grid and IP Address Fields are slightly wider --- Matthew Chambers Mon, 17 May 2021 02:30:00 -0000 + -- Matthew Chambers Mon, 17 May 2021 02:30:00 -0000 gridtracker (1.21.0407) unstable; urgency=medium [Bug Fixes] @@ -62,12 +61,12 @@ gridtracker (1.21.0407) unstable; urgency=medium - new icon to request ClubLog OQRS QSL - add eQSL check in log file processing --- Matthew Chambers Wed, 07 Apr 2021 00:00:00 -0000 + -- Matthew Chambers Wed, 07 Apr 2021 00:00:00 -0000 gridtracker (1.21.0327) unstable; urgency=medium This is the public release of the 1.21.0324 hotfix release candidates --- Matthew Chambers Fri, 27 Mar 2021 00:38:00 -0000 + -- Matthew Chambers Fri, 27 Mar 2021 00:38:00 -0000 gridtracker (1.21.0324) unstable; urgency=medium [Christian Bayer] @@ -77,7 +76,7 @@ gridtracker (1.21.0324) unstable; urgency=medium * Fixed #71 bug with loading adif files This is the hotfix release of the first public release of 1.21.0322 --- Christian Bayer Wed, 22 Mar 2021 22:00:00 -0500 + -- Christian Bayer Wed, 22 Mar 2021 22:00:00 -0500 gridtracker (1.21.0322) unstable; urgency=medium [Christian Bayer] @@ -86,7 +85,7 @@ gridtracker (1.21.0322) unstable; urgency=medium * Fixed linux and arm packaging This is the public release of 1.21.0307 release candidates --- Matthew Chambers Mon, 22 Mar 2021 20:30:00 -0500 + -- Matthew Chambers Mon, 22 Mar 2021 20:30:00 -0500 gridtracker (1.21.0307) unstable; urgency=medium @@ -114,7 +113,7 @@ gridtracker (1.21.0307) unstable; urgency=medium queried from Callook since it usually has more data than free QRZ lookup * fixed CR alert script not being triggered for Awared Tracker hits --- Matthew Chambers Sun, 7 Mar 2021 12:00:00 -0000 + -- Matthew Chambers Sun, 7 Mar 2021 12:00:00 -0000 gridtracker (1.20.1118) unstable; urgency=low @@ -145,13 +144,13 @@ gridtracker (1.20.1118) unstable; urgency=low * Improve debugging/developer experience by enabling context menus when using nwjs's SDK. --- Paul Traina <216482-pleasantone@users.noreply.gitlab.com> Wed, 04 Nov 2020 15:58:29 -0800 + -- Paul Traina <216482-pleasantone@users.noreply.gitlab.com> Wed, 04 Nov 2020 15:58:29 -0800 gridtracker (1.20.0927+repack1) unstable; urgency=high * Clean up nw execution in .desktop and .sh file. --- Paul Traina <216482-pleasantone@users.noreply.gitlab.com> Wed, 07 Oct 2020 09:16:02 -0700 + -- Paul Traina <216482-pleasantone@users.noreply.gitlab.com> Wed, 07 Oct 2020 09:16:02 -0700 gridtracker (1.20.0927) unstable; urgency=medium @@ -161,4 +160,4 @@ gridtracker (1.20.0927) unstable; urgency=medium [ Paul Traina ] * Debian package building support --- Paul Traina <216482-pleasantone@users.noreply.gitlab.com> Mon, 28 Sep 2020 14:06:49 -0700 + -- Paul Traina <216482-pleasantone@users.noreply.gitlab.com> Mon, 28 Sep 2020 14:06:49 -0700 diff --git a/debian/control b/debian/control index edf5bc6..8d0ff62 100644 --- a/debian/control +++ b/debian/control @@ -1,14 +1,14 @@ Source: gridtracker Section: hamradio Priority: optional -Maintainer: Paul Traina <216482-pleasantone@users.noreply.gitlab.com> +Maintainer: Matthew Chambers Build-Depends: debhelper (>= 12.1) Standards-Version: 4.3.0 -Homepage: http://gridtracker.org/ +Homepage: https://gridtracker.org/ Package: gridtracker -Architecture: any -Depends: ${misc:Depends} +Architecture: all +Depends: ${misc:Depends} nwjs Recommends: speech-dispatcher-espeak-ng Description: Companion program to WSJT-X/JTDX . diff --git a/debian/rules b/debian/rules index 2d33f6a..074af28 100755 --- a/debian/rules +++ b/debian/rules @@ -1,4 +1,6 @@ #!/usr/bin/make -f +export NO_DIST_INSTALL = true +export DH_VERBOSE = 1 %: dh $@ diff --git a/gridtracker.arm.spec b/gridtracker.arm.spec deleted file mode 100644 index 40ed5bc..0000000 --- a/gridtracker.arm.spec +++ /dev/null @@ -1,65 +0,0 @@ -# Build with the following syntax: -# -# version=`node ./version.js` -# rpmbuild -D "version ${version}" --build-in-place -bb --target i386 gridtracker.i386.spec - -Name: gridtracker -Summary: GridTracker: An amateur radio companion to WSJT-X or JTDX -Version: %{version} -Release: 1%{?dist} -BuildArch: armv7 -Source0: GridTracker-%{version}-linux-arm.tar.gz - -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 -%setup -n GridTracker - -#%build - - -%install -mkdir -p ${RPM_BUILD_ROOT}/usr/share/%{name} -cp -aR GridTracker-%version-linux-arm/ ${RPM_BUILD_ROOT}/usr/share/%{name}/ -mkdir -p ${RPM_BUILD_ROOT}%{_mandir}/man1 -cp -a %{name}.1 ${RPM_BUILD_ROOT}%{_mandir}/man1/ -mkdir -p ${RPM_BUILD_ROOT}%{_docdir}/%{name} -cp -a LICENSE ${RPM_BUILD_ROOT}%{_docdir}/%{name}/ -mkdir -p ${RPM_BUILD_ROOT}/usr/share/applications -cat > ${RPM_BUILD_ROOT}/usr/share/applications/%{name}.desktop << 'EOF' -[Desktop Entry] -Name=GridTracker -Comment=GridTracker -Exec=/usr/share/%{name}/GridTracker -Icon=/usr/share/%{name}/gridtracker.png -Path=/usr/share/%{name} -Type=Application -Encoding=UTF-8 -Terminal=false -Categories=DataVisualization,Geography,Education; -EOF - -chmod 755 ${RPM_BUILD_ROOT}/usr/share/%{name}/; chmod 755 ${RPM_BUILD_ROOT}/usr/share/%{name}/GridTracker; chmod 755 ${RPM_BUILD_ROOT}/usr/share/%{name}/lib; chmod 755 ${RPM_BUILD_ROOT}/usr/share/%{name}/locales -find ${RPM_BUILD_ROOT}/usr/share/ -type f \( -name '*.so' -o -name '*.so.*' \) -exec chmod 755 {} + - -# %check - -# %clean - -%files -/usr/share/%{name}/ -/usr/share/applications/%{name}.desktop -%{_datadir}/%{name}/ -%{_mandir}/man1/ -%license %{_docdir}/%{name}/ diff --git a/gridtracker.i386.spec b/gridtracker.i386.spec deleted file mode 100644 index 0f5a15f..0000000 --- a/gridtracker.i386.spec +++ /dev/null @@ -1,65 +0,0 @@ -# Build with the following syntax: -# -# version=`node ./version.js` -# rpmbuild -D "version ${version}" --build-in-place -bb --target i386 gridtracker.i386.spec - -Name: gridtracker -Summary: GridTracker: An amateur radio companion to WSJT-X or JTDX -Version: %{version} -Release: 1%{?dist} -BuildArch: i386 -Source0: GridTracker-%{version}-linux-x86.tar.gz - -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 -%setup -n GridTracker - -#%build - - -%install -mkdir -p ${RPM_BUILD_ROOT}/usr/share/%{name} -cp -aR dist/*-linux-x86/* ${RPM_BUILD_ROOT}/usr/share/%{name}/ -mkdir -p ${RPM_BUILD_ROOT}%{_mandir}/man1 -cp -a %{name}.1 ${RPM_BUILD_ROOT}%{_mandir}/man1/ -mkdir -p ${RPM_BUILD_ROOT}%{_docdir}/%{name} -cp -a LICENSE ${RPM_BUILD_ROOT}%{_docdir}/%{name}/ -mkdir -p ${RPM_BUILD_ROOT}/usr/share/applications -cat > ${RPM_BUILD_ROOT}/usr/share/applications/%{name}.desktop << 'EOF' -[Desktop Entry] -Name=GridTracker -Comment=GridTracker -Exec=/usr/share/%{name}/GridTracker -Icon=/usr/share/%{name}/gridtracker.png -Path=/usr/share/%{name} -Type=Application -Encoding=UTF-8 -Terminal=false -Categories=DataVisualization,Geography,Education; -EOF - -chmod 755 ${RPM_BUILD_ROOT}/usr/share/%{name}/; chmod 755 ${RPM_BUILD_ROOT}/usr/share/%{name}/GridTracker; chmod 755 ${RPM_BUILD_ROOT}/usr/share/%{name}/lib; chmod 755 ${RPM_BUILD_ROOT}/usr/share/%{name}/locales -find ${RPM_BUILD_ROOT}/usr/share/ -type f \( -name '*.so' -o -name '*.so.*' \) -exec chmod 755 {} + - -# %check - -# %clean - -%files -/usr/share/%{name}/ -/usr/share/applications/%{name}.desktop -%{_datadir}/%{name}/ -%{_mandir}/man1/ -%license %{_docdir}/%{name}/ diff --git a/gridtracker.spec b/gridtracker.spec new file mode 100644 index 0000000..5b70a1a --- /dev/null +++ b/gridtracker.spec @@ -0,0 +1,46 @@ +Name: gridtracker +Summary: GridTracker: An amateur radio companion to WSJT-X or JTDX +Version: 1.21.1212 +Release: 1%{?dist} +BuildArch: noarch +Source0: %{name}-%{version}.tar.gz + +License: BSD 3-Clause License +URL: https://gridtracker.org +Group: Science & Math +Packager: Matthew Chambers +Requires: nwjs +BuildRequires: desktop-file-utils make nodejs + +%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 +%setup -q GridTracker + +%build + +%install +DESTDIR=${RPM_BUILD_ROOT} make NO_DIST_INSTALL=true install + +%check + +%clean +DESTDIR=${RPM_BUILD_ROOT} make clean + +%files +%{_datadir}/%{name}/ +%{_datadir}/applications/%{name}.desktop +%{_datadir}/%{name}/ +%{_bindir}/%{name} +%{_mandir}/man1/ +%license %{_docdir}/%{name}/ + +%changelog +* Sun Dec 13 2021 Matthew Chambers - 1.21.1212-1 +- Release with refactored Call Roster code and minor improvements. +* Thu Sep 30 2021 Matthew Chambers - 1.21.0928-1 +- First attempt at repo grade RPM builds diff --git a/gridtracker.x86_64.spec b/gridtracker.x86_64.spec deleted file mode 100644 index 5cdac38..0000000 --- a/gridtracker.x86_64.spec +++ /dev/null @@ -1,66 +0,0 @@ -# Build with the following syntax: -# -# version=`node ./version.js` -# rpmbuild -D "version ${version}" --build-in-place -bb --target x86_64 gridtracker.x86_64.spec - -Name: gridtracker -Summary: GridTracker: An amateur radio companion to WSJT-X or JTDX -Version: %{version} -Release: 1%{?dist} -BuildArch: x86_64 -Source0: GridTracker-%{version}-linux-x64.tar.bz - -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 -%setup -n GridTracker - -%build - - -%install -mkdir -p ${RPM_BUILD_ROOT}/usr/share/%{name} -cp -aR dist/*-linux-x64/* ${RPM_BUILD_ROOT}/usr/share/%{name}/ -mkdir -p ${RPM_BUILD_ROOT}%{_mandir}/man1 -cp -a %{name}.1 ${RPM_BUILD_ROOT}%{_mandir}/man1/ -mkdir -p ${RPM_BUILD_ROOT}%{_docdir}/%{name} -cp -a LICENSE ${RPM_BUILD_ROOT}%{_docdir}/%{name}/ -mkdir -p ${RPM_BUILD_ROOT}/usr/share/applications -cat > ${RPM_BUILD_ROOT}/usr/share/applications/%{name}.desktop << 'EOF' -[Desktop Entry] -Name=GridTracker -Comment=GridTracker -Exec=/usr/share/%{name}/GridTracker -Icon=/usr/share/%{name}/gridtracker.png -Path=/usr/share/%{name} -Type=Application -Encoding=UTF-8 -Terminal=false -Categories=DataVisualization,Geography,Education; -EOF - -chmod 755 ${RPM_BUILD_ROOT}/usr/share/%{name}/; chmod 755 ${RPM_BUILD_ROOT}/usr/share/%{name}/GridTracker; chmod 755 ${RPM_BUILD_ROOT}/usr/share/%{name}/lib; chmod 755 ${RPM_BUILD_ROOT}/usr/share/%{name}/locales -find ${RPM_BUILD_ROOT}/usr/share/ -type f \( -name '*.so' -o -name '*.so.*' \) -exec chmod 755 {} + - -# %check - -# %clean - -%files -/usr/share/%{name}/ -/usr/share/applications/%{name}.desktop -%{_datadir}/%{name}/ -%{_mandir}/man1/ -%license %{_docdir}/%{name}/ diff --git a/package.json b/package.json index 3070198..f5c940d 100644 --- a/package.json +++ b/package.json @@ -13,7 +13,8 @@ "test": "eslint package.nw", "lint-check": "eslint package.nw", "lint-fix": "eslint --fix package.nw", - "dist-nix": "build --concurrent --tasks linux-x86,linux-x64,mac-x64 package.nw", + "dist-nix": "build --concurrent --tasks linux-x86,linux-x64 package.nw", + "dist-mac": "build --concurrent --tasks mac-x64 package.nw", "dist-win": "build --concurrent --tasks win-x86,win-x64 package.nw", "distsome": "build --debug --tasks linux-x64,mac-x64 package.nw", "start": "run package.nw", diff --git a/package.nw/package.json b/package.nw/package.json index e3cd574..36f2f0d 100644 --- a/package.nw/package.json +++ b/package.nw/package.json @@ -23,7 +23,7 @@ "start": "run --mirror https://dl.nwjs.io/ ." }, "build": { - "nwVersion": "0.49.2", + "nwVersion": "0.54.0", "output": "../dist/.", "targets": [ "zip",