From 3dcdb1a2a3b2a3fb4233967af13890696e9c1e31 Mon Sep 17 00:00:00 2001 From: Paul Traina <216482-pleasantone@users.noreply.gitlab.com> Date: Sat, 7 Nov 2020 22:58:20 +0000 Subject: [PATCH] Make UDP port validations clearer, allow receive port to be 2238 if forwarding is not enabled, and only use port after it's been validated --- .gitignore | 1 + .gitlab-ci.yml | 13 ++++++-- README.md | 30 +++++++++++++++++++ debian/changelog | 7 ++--- debian/control | 2 +- debian/source/options | 5 ++++ docker/Dockerfile | 16 ++++++++++ docker/build-all.sh | 9 ++++++ docker/run-docker.sh | 8 +++++ macos/README.md | 6 ++++ macos/build.sh | 2 +- macos/run.sh | 2 +- package-lock.json | 13 -------- package.json | 8 +++-- macos/app.icns => package.nw/gridview.icns | Bin package.nw/gridview.ico | Bin 0 -> 77517 bytes package.nw/lib/gt.js | 4 +-- package.nw/package.json | 33 +++++++++++++++++++-- 18 files changed, 130 insertions(+), 29 deletions(-) create mode 100644 debian/source/options create mode 100644 docker/Dockerfile create mode 100755 docker/build-all.sh create mode 100755 docker/run-docker.sh delete mode 100644 package-lock.json rename macos/app.icns => package.nw/gridview.icns (100%) create mode 100644 package.nw/gridview.ico diff --git a/.gitignore b/.gitignore index 8309bc6..ec699d0 100644 --- a/.gitignore +++ b/.gitignore @@ -9,3 +9,4 @@ debian/*.substvars debian/tmp .DS_Store node_modules +package-lock.json diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 10b3662..a11a0ae 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -25,12 +25,19 @@ build1: paths: - build/* script: + - dpkg --add-architecture i386 - apt-get update - - apt-get -y install git dh-make build-essential autoconf autotools-dev + - apt-get -y install npm wine wine32 + - apt-get -y install git dh-make build-essential devscripts lintian diffutils patch \ + patchutils quilt - apt-get -y build-dep . - dpkg-buildpackage -uc -us - - mkdir build - - mv ../*.{deb,dsc,buildinfo,tar.xz,changes} build/ + - mkdir build build/debian + - mv ../*.{deb,dsc,buildinfo,tar.xz,changes} build/debian/ + - debian/rules clean + - npm install + - npm run dist + - (cd package.nw/build ; mv *.zip *.exe *.7z *.json ../build) # test1: # stage: test diff --git a/README.md b/README.md index 4e7e86a..41f8b37 100644 --- a/README.md +++ b/README.md @@ -40,3 +40,33 @@ We suggest using the `macos/run.sh` script to launch GridTracker while developin of NWJS if needed, and use it to run the app. To access the Developer Tools, right-click on an unused area of a window, or press F12. + +# Building for Distribution + +## Docker Build Environment + +The following code uses docker to create a build environment for packaging +GridTracker for distribution. It can be used to support, or in lieu of, +GitLab's CI/CD chain. + +- `docker/run-docker.sh` + 1. Build a build-environment container. This container does NOT carry the source code + of GridTracker inside it, it is merely a build container. + 2. Execute the build container, linking it up to the current directory and `../gridtracker-dist` + +- `docker/build-all.sh` + 1. Package the full debian release for gridtracker (which does not require binaries). + 2. Build npmjs+gridtracker native binaries for Win (32, 64) including installers, + Mac OS (Intel 64), and Linux (I386 and AMD64) binaries. + THe Linux binaries are for use in non-debian/raspbian/ubuntu distributions. + +TODO: + 3. Package up a release for Fedora/RPM distributions. + +Temporary artifacts are left in: + gridtracker/node_modules (including cached copies of npmjs binaries) + gridtracker/package-json.lock + +Final build results are left in: + gridtracker-dist/ + gridtracker-dist/debian diff --git a/debian/changelog b/debian/changelog index e7de3e8..a96d965 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,16 +1,15 @@ -gridtracker (1.20.1104) unstable; urgency=low +gridtracker (1.20.1107) unstable; urgency=low - [Tag Loomis/Paul Traina/Sebastian Delmont] * GridTracker is now Open Source! Copyright assigned to GridTracker.org and is BSD 3-clause. - [Paul Traina] + [ Paul Traina ] * Disable fit to QTH when in PSK mode * Higlight confirmed DXCC countries in DXCC report * Unify worked/confirmed/unworked in WAC/WAS/CQ Zones/ITU Zones reports * In call roster, when requiring LoTW, don't show stations that don't meet time limits. * Support auto-building CI/CD for GitLab and Debian Packaging - [Sebastian Delmont] + [ Sebastian Delmont ] * Improve roster controls * Clean up and pretify HTML and JSON code, reformat code base. * Make UDP port vaildation behavior clearer, allow recevie on 2238 if diff --git a/debian/control b/debian/control index 150185a..93f1f33 100644 --- a/debian/control +++ b/debian/control @@ -1,5 +1,5 @@ Source: gridtracker -Section: non-free/hamradio +Section: hamradio Priority: optional Maintainer: Tag Loomis Build-Depends: debhelper (>= 12.1) diff --git a/debian/source/options b/debian/source/options new file mode 100644 index 0000000..cf5d494 --- /dev/null +++ b/debian/source/options @@ -0,0 +1,5 @@ +tar-ignore +tar-ignore=.DS_Store +tar-ignore=node_modules +tar-ignore=package-lock.json +tar-ignore=package.nw/dist diff --git a/docker/Dockerfile b/docker/Dockerfile new file mode 100644 index 0000000..43cbc50 --- /dev/null +++ b/docker/Dockerfile @@ -0,0 +1,16 @@ +# Generic builder environment for GridTracker using nwjs-builder-phoenix and debian. +# NOTE: We assume an amd64 environment that is capable of running i386 and wine (which +# are needed for resource hacking for Windows. + +FROM debian:buster +RUN dpkg --add-architecture i386 && \ + apt-get update && \ + apt-get install -y npm wine wine32 && \ + apt-get install -y build-essential devscripts lintian diffutils patch \ + patchutils quilt git dgit + +VOLUME /build/gridtracker +VOLUME /build/dist + +WORKDIR /build/gridtracker +CMD docker/build-all.sh diff --git a/docker/build-all.sh b/docker/build-all.sh new file mode 100755 index 0000000..c68d7de --- /dev/null +++ b/docker/build-all.sh @@ -0,0 +1,9 @@ +#!/bin/bash +apt-get -y build-dep . +dpkg-buildpackage -uc -us +test -d ../dist/debian || mkdir -p ../dist/debian +mv ../*.{deb,dsc,buildinfo,changes,tar.xz} ../dist/debian +debian/rules clean +npm install +npm run dist +mv package.nw/dist/*.{exe,7z,zip,json} ../dist diff --git a/docker/run-docker.sh b/docker/run-docker.sh new file mode 100755 index 0000000..3051546 --- /dev/null +++ b/docker/run-docker.sh @@ -0,0 +1,8 @@ +#!/bin/sh +# Build a docker environment and run it to do the build +docker build -t gridtracker-build docker +test -d ../gridtracker-dist || mkdir ../gridtracker-dist +docker run --rm \ + -v `/bin/pwd`:/build/gridtracker \ + -v `/bin/pwd`/../gridtracker-dist:/build/dist \ + gridtracker-build $* diff --git a/macos/README.md b/macos/README.md index e45fe7c..717eaf1 100644 --- a/macos/README.md +++ b/macos/README.md @@ -1,3 +1,9 @@ +# [Deprecated] + +Use standard "npm run start" and "npm run dist" commands. + + + # MacOS-specific notes and instructions # Development Environment diff --git a/macos/build.sh b/macos/build.sh index 6948387..bb86362 100755 --- a/macos/build.sh +++ b/macos/build.sh @@ -1,4 +1,4 @@ -NWJS_VERSION=0.49.0 +NWJS_VERSION=0.49.2 if [ ! -e build/macos/nwjs-v$NWJS_VERSION-osx-x64/nwjs.app ]; then echo "Downloading NWJS $NWJS_VERSION" diff --git a/macos/run.sh b/macos/run.sh index 4431973..b2dbc63 100755 --- a/macos/run.sh +++ b/macos/run.sh @@ -1,4 +1,4 @@ -NWJS_VERSION=0.49.0 +NWJS_VERSION=0.49.2 NWJS_FULL_NAME=nwjs-sdk-v$NWJS_VERSION-osx-x64 if [ ! -e build/macos/$NWJS_FULL_NAME/nwjs.app ]; then diff --git a/package-lock.json b/package-lock.json deleted file mode 100644 index 35223c4..0000000 --- a/package-lock.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "name": "gridtracker-development", - "requires": true, - "lockfileVersion": 1, - "dependencies": { - "prettier": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.1.2.tgz", - "integrity": "sha512-16c7K+x4qVlJg9rEbXl7HEGmQyZlG4R9AgP+oHKRMsMsuk8s+ATStlf1NpDqyBI1HpVyfjLOeMhH2LvuNvV5Vg==", - "dev": true - } - } -} diff --git a/package.json b/package.json index 1f447aa..f803d1d 100644 --- a/package.json +++ b/package.json @@ -1,11 +1,15 @@ { "name": "gridtracker-development", "devDependencies": { - "prettier": "2.1.2" + "nwjs-builder-phoenix": "^1.15.0", + "prettier": "^2.1.2" }, "scripts": { "test": "npm run prettier-check", "prettier-check": "npx prettier --check package.nw", - "prettier-write": "npx prettier --write package.nw" + "prettier-write": "npx prettier --write package.nw", + "dist": "build --tasks win-x86,win-x64,linux-x86,linux-x64,mac-x64 --mirror https://dl.nwjs.io/ package.nw", + "distsome": "build --debug --tasks linux-x64,mac-x64 --mirror https://dl.nwjs.io/ package.nw", + "start": "run --mirror https://dl.nwjs.io/ package.nw" } } diff --git a/macos/app.icns b/package.nw/gridview.icns similarity index 100% rename from macos/app.icns rename to package.nw/gridview.icns diff --git a/package.nw/gridview.ico b/package.nw/gridview.ico new file mode 100644 index 0000000000000000000000000000000000000000..a92c05f4276e60af09280cc380b225d455d7c901 GIT binary patch literal 77517 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 z zxSTC;khDrwTaOv;KfKTJtu-RDBBdYx-5>hjT{|nT^8nsJvj8`naL4b|ogjn^vKhm2 z)p2sXq-!0UtuFGCd)K%|<&eg4B!$GC+ed^D>34(HJKJIb=hHIR+)Gi3&7nbY0!muH zl78|IP@ZgdyZ72}LJ3`|SF+ z;swlg2@gUV6NxDhGC9a#HJ!JL$ik5PNIKsrKv;@-X5g;6?o-OQcu_?ovFHXC##|9_ zO(9@hGo^H8BHe`G8HSN=VQH<)sYV6%v>w0Is91IL6NG}==lI+tA(oVLt|Z*`8)AFL z-Pj~e~)3;lSKYy;J@J-QqXk<;KsW@KwQ7AAW9P2&aqr9u+FhucQ_-QpKrOi=ov;| zW91^*9I`b%S}ky`<8r%W9DV)!Z2HXR+hi09E>N!}MdX^5Rp_CKnKoX{7R<>=roIL_ zJejRYM3AWJwdHdREnsLkVo0Z&4s{K75X_Tv-OcU^IR9PV`#+jdv4RhMmcug@>QO|2 z!2Fz++9Qwz_Hu`hnjTca)O~G->3JuJ;H*+b*J>(Ez2?Bfm$gYtoE(el&4@PsU@Bth~DdMB{ zXgI%k%H{BcX5~3Kxy{ky0ZtZ*J>{^WauP)KBkR1(9+NeN;-1eRLap0S7Gie&O(~mJ zk6Rk0}!_VvLGLXJ()gXkFA;t#S~w97l}B*&{>@PL61{4RUq{Vv+kvm4MRA z7C!a+q^mEow;Br7-ac6oOs=)&4bsu^mkg%+1c|e;Ua@@ShIvC{q96Cd~kBWhQP~W;n1Fy<*WFW70C8KT_&O%5Lvm z#)_D-V3odI=_*OaD|bip`u56EEatdq6K)X8Y-cbSMW{>w4OD>wBT3_w12(;3#@ zc?WB?PWt?^XSW$@>P#wuqFCoNTi}v6VWZrD5ZGp^snRMer2-^fe=TLF_aW5WaH-x4 z*$pZ@`ojIz`|NWr-(>(P-~8P1M|ljkrshjgiW-^R8k!PjWJ6>UE-aC>WYyf~&f*wz zvElOUQWX{Mh8x_?`InmkbmjN?lAC7-xyFl`rx*{4QU)T^_LgKRc%M=dCSgeDnH~ZSUS~Dq}p4c zWRA)+tsIiNNV7JB0tt#I)C$1KGf*N?k55~o474jqv@E(cO|v2eA)-ViP2Xt<&^B$= zB>=6SBqmiA0-SMRq{@ob4M=8nH8EuI7X`)3Tp!0c^M+FGE0~FMUlNhqz+mzsp+nSlG+-%WB_uDYNv{_!{`}?INMRn^o=jv2ULnl zOE$}h%y*v5O~?Yps|7BC0yWgcp6LEg6~a@_1`7SOV3n)>-68>qRGF{G+YT{JHBeXh!& z7rg=z`JWD7|BHKJz`g-6%_n(H! z0MlkvT(;|{bxhejh_?Ke;?iZ>XF-gO7_H-vktkETsNCjxT|i|X7Ox;pX+lKQJ%#FC zP1h?}CoETv<&hz5dv@P^7hyo|Ce3xNK^3kYVZ(d?bZvZ+NRSxo9^-GZ)JVa)+Fe1>%Gfv9O5*2=GIW8^n#z}Kq(6@3-~Z` zHQ(hX!N$3FV(Q6^6}qlry=n;}T%KH111+zjz+V z)$2OADbpgK?XMLNkc0DGJ$C+{{m;zJNpM(874g)$Z)do}v;d1Sm{ZY9_pBm9s$r{o zuC9=NDjt>3TU3s77~pf)Bj;RhqHC(|VY!#Nzrare3&`p<92fu*K6T^0%67!|&cr!S z>{-+~jdy>dQRih!Fph!ew*S8VvDX+brmPv53J0Jp`dRwwU{X)5JFeN((*9>0x{oC` z7BM(iQZ?%48PVQvm;K1**%moH2Q0h^a?2wGZG-jFv43T9@Jix(10bkidd+e?_wLQC zUT_6j1*!lYeol{}&dZuevwVn)nMlV0#Gl!pBei)-N=8I}x&NiV z@E>&l`L887FaTzG_ea9TyEnS#w0uyzmrQAz+28AyTddG5mdani#|VA~#@t{SDN`!D zHA41(XMOqh(BMQeYACAKV4N)Sbd5P|$tlXcjkaub88A}fiOGPqe#SU@?I#x!X*aOg zTqs(6BrpiEwGijt*LB}_T7u>GG8GECB75)MHw^|;<-W|dXD{c-IraSWI~u%vC(vG-1aZfO!#h(n=f3A?h3Q z{7?P^6aM=D`m1m=1HkgZEKmRP8(VhmdIOVc|L?m*FF1qA$bV@B87Wxu3FlO!+HI&s>SJcHRlJ)B1^!;OQRuGNBra;&45DfmQ!T;B5 zWU&Cx+%>xLb1CwPv)9us5mJA?hKgI{vnuiFIp?nvFr|G{P(q$G`<$eyFfGta`=JOZ zAX+~^Ord{@`W^C!<>rwv*nB@TWOqB^{!!vtbUfKv%#)tg8wu^TakB;aoJeKQKF(Ro zd(qVOx3f&!7tHTsIEzUxCi38@1Ds)gaZ`48|BoensL!#k5xqF?A=!v^1y{RzAEwYF zO{qp5zl7p^JD3@O-+8o>x5xOo=0>+1LU*4KN^Ey{YYu-X_}Of)NeN?a5bNa!7Dfd@ zqEGk`8I#4Cz*r1`DaIkEt_~jV^bpEj3R5UjZf&{AGrwB|3|9LN)P6zxD!>m7_6)JDA%OtlccMUq`p4)0GNH>ltN9> z*4-mb6FSO)cT&8ml=uDW#wJt;Fdv;gwDR|ulna2-Bbqj_{f6Q1Z$HZ)jBoI6BBNNzYB4dpy&77{@1FR+2-6oI`Xt zITS{;UPgyxZcElHr(~-cQ!5G~mO0g|Tn-v%cwUn5wDJ_$ah5n<>h}nQe<(ySfp>gD))gBg3JaEYhIb zYLv^RgR#M|>W7E+N)3}vw2iRHdi26(rY~=t10rg&HVNyAQrDa-@c^fG+|KEzbIbPv z;68KW7eRrME!K-~+R>OXk)OyoHt6kXaJ|pj=TBblxd_`Us_bx>@^}x`?H{n}w=UzB4IF)R0p=rN+Tv@5oW0PVA~tm!LV|fh#+;;sDe+ z?6SVh_Wkg}Iza*L13e(vXO#0d_Oj_6aNmE6sO!7Jb%0yR z4Z&R4r>FYby>s9Cwy4&iCAq;Og*M4GN_o}B?NsnaRv;ZA-OiziPC1kcnAa49x9Eq%ywlay? zin_{*=5SQ@Dej)sM=?n!@;CbTycLXDIp!)#okX7g7u+tU7NTvq^nB8Bq=A`C zpLR6hPs?Z{?fZNBPr+`#V6U>P$ba-U$=&%@EyM{>F+o9;LF3jQ$HkLOE9wIo5>f{z zc$(T!Hd>X_TxsVvyqOV$aOCd{e}5ByEO1~FV-j6eyL%Y%piA){ePjO)PtHk;7C$wN zcKD8zpdNEKPdHiDUsz7pv|w0wAJjz05THDH+cu)>R>EMk3qB0Qzsqr!=i}L*@Ari$ zp;PjN#tqpAytI)cO=DP^>Y(5i_jkmZ@v(e#1vuVjYyHdq9xP4gOh6ylkg}Wg&fZ0y zEEwdIpTK(A)B zJn)GX*WG%w^nfe)a*lO4vY7ZN?X|%e_7T}M&=v3~w(yO%{Pi>)&?{pc2%L{R5K1B9Jc1 zElaW+ODm*iV`hh7dAws3M3~p(N*;eF;njsI9N3y!rxq_zc?;ipqoC1iBnfN{g_eFT zYLe8OtFzeHCW}BA5@4!Z028uUUG+osj3pQLn6vEN)9w+!jgw4R-|QT z2>$9qu9Y$H%^csekw0$LfCC|#hxL_THL{6ntv87zasG@#i@!DMQ&Cbqu4q2-+Q66S z2?PhaK{6#Up7Vd+ob+Mi7L_iycSa?Gz91Z7{DRt-{;usRl>R-crL#`V6Qm`5jZ8NL YV5zH}tLLnYFd)_Q@<1GBxShHFAIJH7*#H0l literal 0 HcmV?d00001 diff --git a/package.nw/lib/gt.js b/package.nw/lib/gt.js index 319d17c..7b9716b 100644 --- a/package.nw/lib/gt.js +++ b/package.nw/lib/gt.js @@ -1,8 +1,8 @@ // GridTracker ©2020 GridTracker.org // All rights reserved. // See LICENSE for more information. -var gtVersion = 1200927; -var gtBeta = "Elsa III"; +var gtVersion = 1201107; +var gtBeta = "Phoenix"; var g_startVersion = 0; if (typeof localStorage.currentVersion != "undefined") diff --git a/package.nw/package.json b/package.nw/package.json index 796baec..7189bed 100644 --- a/package.nw/package.json +++ b/package.nw/package.json @@ -1,6 +1,11 @@ { "name": "GridTracker", - "product_string": "GridTracker", + "product_string_do_not_use": "gridtracker", + "version": "1.20.1107", + "description": "GridTracker, an amateur radio companion", + "author": "Steven Tag Loomis (N0TTL) and GridTracker.org", + "license": "BSD-3-Clause", + "main": "GridTracker.html", "window": { "id": "mainWindow", "icon": "gridview.png", @@ -12,5 +17,29 @@ "webkit": { "plugin": true }, - "main": "GridTracker.html" + "scripts": { + "test": "npm run prettier-check", + "prettier-check": "npx prettier --check .", + "prettier-write": "npx prettier --write .", + "start": "run --mirror https://dl.nwjs.io/ ." + }, + "build": { + "nwVersion": "0.48.4", + "targets": [ + "zip", + "nsis7z" + ], + "mac": { + "icon": "gridview.icns", + "copyright": "Copyright (c) 2020 GridTracker.org", + "plistStrings": { + "CFBundleIdentifier": "org.gridtracker.gridtracker", + "CFBundleDocumentTypes": [] + } + }, + "win": { + "icon": "gridview.ico", + "copyright": "Copyright (c) 2020 GridTracker.org" + } + } }