diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 41975ce..7063575 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -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: diff --git a/Makefile b/Makefile index 9961872..858c80c 100644 --- a/Makefile +++ b/Makefile @@ -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) diff --git a/arm/GridTracker.desktop b/arm/GridTracker.desktop new file mode 100644 index 0000000..d7eb4ac --- /dev/null +++ b/arm/GridTracker.desktop @@ -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; diff --git a/arm/README.txt b/arm/README.txt new file mode 100644 index 0000000..0671d80 --- /dev/null +++ b/arm/README.txt @@ -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; diff --git a/arm/gridtracker.png b/arm/gridtracker.png new file mode 100644 index 0000000..8139154 Binary files /dev/null and b/arm/gridtracker.png differ diff --git a/debian/arm/GridTracker.desktop b/debian/arm/GridTracker.desktop new file mode 100644 index 0000000..d89f977 --- /dev/null +++ b/debian/arm/GridTracker.desktop @@ -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; + + diff --git a/debian/arm/README.txt b/debian/arm/README.txt new file mode 100644 index 0000000..0671d80 --- /dev/null +++ b/debian/arm/README.txt @@ -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; diff --git a/debian/arm/gridtracker.png b/debian/arm/gridtracker.png new file mode 100644 index 0000000..8139154 Binary files /dev/null and b/debian/arm/gridtracker.png differ diff --git a/debian/control b/debian/control index f4d811f..edf5bc6 100644 --- a/debian/control +++ b/debian/control @@ -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 . diff --git a/docker/Dockerfile b/docker/Dockerfile index 95b55c9..297f698 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -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 diff --git a/docker/build-all.sh b/docker/build-all.sh index db3b368..c7ed4d0 100755 --- a/docker/build-all.sh +++ b/docker/build-all.sh @@ -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 diff --git a/gridtracker.arm.spec b/gridtracker.arm.spec new file mode 100644 index 0000000..40ed5bc --- /dev/null +++ b/gridtracker.arm.spec @@ -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 +# 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 new file mode 100644 index 0000000..0f5a15f --- /dev/null +++ b/gridtracker.i386.spec @@ -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 +# 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 deleted file mode 100644 index e9f6f68..0000000 --- a/gridtracker.spec +++ /dev/null @@ -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 diff --git a/gridtracker.x86_64.spec b/gridtracker.x86_64.spec new file mode 100644 index 0000000..5cdac38 --- /dev/null +++ b/gridtracker.x86_64.spec @@ -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}/ diff --git a/package.nw/package.json b/package.nw/package.json index 3198d7e..772c91d 100644 --- a/package.nw/package.json +++ b/package.nw/package.json @@ -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",