Matthew Chambers 2021-03-15 17:02:13 +00:00
rodzic 73fc5c1d3e
commit ca443011a7
16 zmienionych plików z 474 dodań i 71 usunięć

Wyświetl plik

@ -18,6 +18,8 @@ variables:
AWS_DEFAULT_REGION: ""
AWS_RELEASE_DEPLOY_PATH: s3://download.gridtracker.org/release/$CI_COMMIT_TAG
AWS_TESTING_DEPLOY_PATH: s3://download.gridtracker.org/testing/$CI_COMMIT_TAG
NR0Q_SERVER_ADDRESS: ""
NR0Q_SERVER_PASSWORD: ""
# nothing in this file ill be allowed to run automatically except for:
# 1. merge requests
@ -53,8 +55,7 @@ npm_test:
# package binaries and create build artifacts that may be used in later stages
packaging:
intel-packaging:
stage: package
rules:
# only do this with a manual tag starting with v or test_
@ -74,38 +75,173 @@ packaging:
script:
- |
mkdir -p $APT_CACHE_DIR $NPM_CONFIG_CACHE
mkdir -p artifacts/{debian,rpm}
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
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 Windows, MacOS and distro agnostic Linux packages
- |
echo -e "\e[0Ksection_start:`date +%s`:native_build\r\e[0KBuilding native packages"
npm install --prefer-offline
npm run dist
for dir in dist/*-linux-* ; do if [ -d $dir ] ; then tar -C dist -cjf ${dir}.tar.bz `basename $dir` ; fi ; done
echo `pwd`
(cd dist ; mv *.exe *-mac-x64.zip *.tar.bz ../artifacts)
chmod 755 dist/*-linux-*/GridTracker dist/*-linux-*/lib dist/*-linux-*/locales dist/*-linux-*/swiftshader/
for dir in dist/*-linux-* ; do
if [ -d $dir ] ; then
cp package.nw/img/gridtracker.png $dir/
tar -C dist -czf ${dir}.tar.gz `basename $dir`
fi
done
(cd dist ; mv *.exe *-mac-x64.zip *.tar.gz ../artifacts)
echo -e "\e[0Ksection_end:`date +%s`:native_build\e[0K"
- |
echo -e "\e[0Ksection_start:`date +%s`:debian_build\r\e[0KBuilding Debian packages"
echo `pwd`
dpkg-buildpackage -uc -us
echo `pwd`
mv ../*.{deb,dsc,buildinfo,tar.xz,changes} artifacts/debian/
echo -e "\e[0Ksection_end:`date +%s`:debian_build\r\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"
rpmbuild -D "version `node ./version.js`" --build-in-place -bb gridtracker.spec
mv $HOME/rpmbuild/RPMS/noarch/gridtracker-*.noarch.rpm artifacts/rpm
ls -laR artifacts
# 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!"
ls -laR artifacts
arm-packaging:
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
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 arch build
- |
echo -e "\e[0Ksection_start:`date +%s`:arm_build\r\e[0KBuilding ARM packages"
wget https://github.com/LeonardLaszlo/nw.js-armv7-binaries/releases/download/nw49_2020-10-26/nw49_2020-10-26.tar.gz
tar -xf nw49_2020-10-26.tar.gz
tar -xf usr/docker/dist/nwjs-chromium-ffmpeg-branding/nwjs-v0.49.2-linux-arm.tar.gz
mv nwjs-v0.49.2-linux-arm/nw nwjs-v0.49.2-linux-arm/GridTracker
ls
version=`node ./version.js`
mkdir GridTracker-$version-linux-arm
cp -r nwjs-v0.49.2-linux-arm/* GridTracker-$version-linux-arm/
cp -r arm/* GridTracker-$version-linux-arm/
cp -r package.nw GridTracker-$version-linux-arm/
cp LICENSE GridTracker-$version-linux-arm/
tar -cjf GridTracker-$version-linux-arm.tar.gz GridTracker-$version-linux-arm
mv GridTracker-$version-linux-arm.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!"
ls -laR artifacts
# copy test assets to NR0Q's server
nr0q_upload_testing:
stage: deploy
image: alpine
rules:
- if: '$CI_COMMIT_TAG =~ /^(test_).*/ && $NR0Q_SERVER_KEY != ""'
before_script:
- |
apk add openssh-client
eval $(ssh-agent -s)
echo "$NR0Q_SERVER_KEY" | tr -d '\r' | ssh-add -
mkdir -p ~/.ssh; chmod 700 ~/.ssh
script:
- |
cd artifacts
for FILE in *.*
do
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:
stage: deploy
image: alpine
rules:
- if: '$CI_COMMIT_TAG =~ /^(v).*/ && $NR0Q_SERVER_KEY != ""'
before_script:
- |
apk add openssh-client
eval $(ssh-agent -s)
echo "$NR0Q_SERVER_KEY" | tr -d '\r' | ssh-add -
mkdir -p ~/.ssh; chmod 700 ~/.ssh
script:
- |
cd artifacts
for FILE in *.*
do
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/
# copy the assets over to our distribution storage (testing, tag = test_.*)
s3_upload_testing:

Wyświetl plik

@ -29,4 +29,4 @@ install:
install -Dcm 644 LICENSE $(DOC)/LICENSE
mkdir -p $(LIB)
cp -r package.nw/* $(LIB)
cp -r dist/*-linux-x64/* $(LIB)

Wyświetl plik

@ -0,0 +1,11 @@
[Desktop Entry]
Name=GridTracker
Comment=GridTracker
GenericName=GridTracker, An Amateur Radio Companion
Exec=/home/pi/Downloads/GridTracker/GridTracker
Icon=/home/pi/Downloads/GridTracker/gridtracker.png
Path=/home/pi/Downloads/GridTracker
Type=Application
Encoding=UTF-8
Terminal=false
Categories=None;

38
arm/README.txt 100644
Wyświetl plik

@ -0,0 +1,38 @@
A PI DESKTOP LAUNCHER FOR RASPBIAN
Instead of opening a terminal instance to launch GridTracker on the
Raspberry pi running Raspbian*, there is an easy way to create a
launch icon on the desktop.
Included in this archive are two files; a desktop icon for GridTracker,
gridtracker.png, and a simple text file, GridTracker.desktop.
As an example, assume that GridTracker-Lunux-Arm1.18.xxxx.tar.gz was downloaded to /home/pi/Downloads/, and
extracted to a folder directly below it,
/home/pi/Downloads/GridTracker/.
Copy GridTracker.desktop to /home/pi/Desktop/, and
gridtracker.png to /home/pi/Downloads/GridTracker/.
If your GridTracker install uses other file locations, simply edit the
apporpriate lines in GridTracker.desktop to reference the proper
folders.
You should now see an icon on your desktop, . Simply double
click to launch GridTracker.
*Or other flavors of linux. Other changes may be required. See your package
documentation.
GridTracker.desktop example below
[Desktop Entry]
Name=GridTracker
Comment=GridTracker
GenericName=GridTracker, a WSJT-X Companion
Exec=/home/pi/Downloads/GridTracker/GridTracker
Icon=/home/pi/Downloads/GridTracker/gridtracker.png
Path=/home/pi/Downloads/GridTracker
Type=Application
Encoding=UTF-8
Terminal=false
Categories=None;

BIN
arm/gridtracker.png 100644

Plik binarny nie jest wyświetlany.

Po

Szerokość:  |  Wysokość:  |  Rozmiar: 59 KiB

13
debian/arm/GridTracker.desktop vendored 100644
Wyświetl plik

@ -0,0 +1,13 @@
[Desktop Entry]
Name=GridTracker
Comment=GridTracker
GenericName=GridTracker, An Amateur Radio Companion
Exec=/home/mchambers/Downloads/GridTracker/GridTracker
Icon=/home/mchambers/Downloads/GridTracker/gridtracker.png
Path=/home/mchambers/Downloads/GridTracker
Type=Application
Encoding=UTF-8
Terminal=false
Categories=None;

38
debian/arm/README.txt vendored 100644
Wyświetl plik

@ -0,0 +1,38 @@
A PI DESKTOP LAUNCHER FOR RASPBIAN
Instead of opening a terminal instance to launch GridTracker on the
Raspberry pi running Raspbian*, there is an easy way to create a
launch icon on the desktop.
Included in this archive are two files; a desktop icon for GridTracker,
gridtracker.png, and a simple text file, GridTracker.desktop.
As an example, assume that GridTracker-Lunux-Arm1.18.xxxx.tar.gz was downloaded to /home/pi/Downloads/, and
extracted to a folder directly below it,
/home/pi/Downloads/GridTracker/.
Copy GridTracker.desktop to /home/pi/Desktop/, and
gridtracker.png to /home/pi/Downloads/GridTracker/.
If your GridTracker install uses other file locations, simply edit the
apporpriate lines in GridTracker.desktop to reference the proper
folders.
You should now see an icon on your desktop, . Simply double
click to launch GridTracker.
*Or other flavors of linux. Other changes may be required. See your package
documentation.
GridTracker.desktop example below
[Desktop Entry]
Name=GridTracker
Comment=GridTracker
GenericName=GridTracker, a WSJT-X Companion
Exec=/home/pi/Downloads/GridTracker/GridTracker
Icon=/home/pi/Downloads/GridTracker/gridtracker.png
Path=/home/pi/Downloads/GridTracker
Type=Application
Encoding=UTF-8
Terminal=false
Categories=None;

BIN
debian/arm/gridtracker.png vendored 100644

Plik binarny nie jest wyświetlany.

Po

Szerokość:  |  Wysokość:  |  Rozmiar: 59 KiB

4
debian/control vendored
Wyświetl plik

@ -7,8 +7,8 @@ Standards-Version: 4.3.0
Homepage: http://gridtracker.org/
Package: gridtracker
Architecture: all
Depends: nwjs (>= 0.47.4), fonts-noto, ${misc:Depends}
Architecture: any
Depends: ${misc:Depends}
Recommends: speech-dispatcher-espeak-ng
Description: Companion program to WSJT-X/JTDX
.

Wyświetl plik

@ -8,7 +8,7 @@ RUN dpkg --add-architecture i386 && \
apt-get install -y npm wine wine32 && \
apt-get install -y build-essential devscripts lintian diffutils patch \
patchutils quilt git && \
apt-get install -y rpm
apt-get install -y rpm zip
VOLUME /build/gridtracker
VOLUME /build/dist

Wyświetl plik

@ -7,11 +7,27 @@ mv ../*.{deb,dsc,buildinfo,changes,tar.xz} ../dist/debian
debian/rules clean
npm install
npm run dist
chmod 755 dist/*-linux-*/GridTracker dist/*-linux-*/lib dist/*-linux-*/locales dist/*-linux-*/swiftshader/
for dir in dist/*-linux-* ; do
if [ -d $dir ] ; then
tar -C dist -cjf ${dir}.tar.bz `basename $dir`
# mkdir $dir/package.nw
# for file in package.nw/* ; do
# if [ `basename $file` = "lib" ] ; then
# continue # skip lib dir
# fi
# mv $dir/`basename $file` $dir/package.nw
# done
# pushd .
# cd $dir/package.nw
# zip ../package.nw.zip -r *
# popd
# rm -Rf $dir/package.nw
# mv $dir/package.nw.zip $dir/package.nw
tar -C dist -czf ${dir}.tar.gz `basename $dir`
fi
done
mv dist/*{.exe,mac-x64.zip,.tar.bz} ../dist
rpmbuild -D "version `node ./version.js`" --build-in-place -bb gridtracker.spec
mv $HOME/rpmbuild/RPMS/noarch/gridtracker-*.noarch.rpm ../dist/rpm
mv dist/*{.exe,mac-x64.zip,.tar.gz} ../dist
rpmbuild -D "version `node ./version.js`" --build-in-place -bb gridtracker.i386.spec
rpmbuild -D "version `node ./version.js`" --build-in-place -bb gridtracker.x86_64.spec
mv $HOME/rpmbuild/RPMS/i386/gridtracker-*.i386.rpm ../dist/rpm
mv $HOME/rpmbuild/RPMS/x86_64/gridtracker-*.x86_64.rpm ../dist/rpm

Wyświetl plik

@ -0,0 +1,65 @@
# 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 <nr0q@gridtracker.org>
# 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}/

Wyświetl plik

@ -0,0 +1,65 @@
# 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 <nr0q@gridtracker.org>
# 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}/

Wyświetl plik

@ -1,45 +0,0 @@
# 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}
%{_datadir}/applications/%{name}.desktop
%{_datadir}/%{name}/
%{_mandir}/man1/%{name}.1*
%license %{_docdir}/%{name}/LICENSE

Wyświetl plik

@ -0,0 +1,66 @@
# 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}/

Wyświetl plik

@ -2,7 +2,7 @@
"name": "GridTracker",
"product_string_do_not_use": "gridtracker",
"version": "1.21.0307",
"betaVersion": "Phoenix II",
"betaVersion": "",
"description": "GridTracker, an amateur radio companion",
"author": "Stephen Loomis (N0TTL) and GridTracker.org",
"license": "BSD-3-Clause",