From 4858d182faebbd867a6acdc28663558f9c50ffc3 Mon Sep 17 00:00:00 2001 From: Daniel Date: Tue, 23 Apr 2024 10:11:39 +0200 Subject: [PATCH 1/6] Fix app icon component re-use --- desktop/angular/src/app/shared/app-icon/app-icon.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/desktop/angular/src/app/shared/app-icon/app-icon.ts b/desktop/angular/src/app/shared/app-icon/app-icon.ts index 826c89c0..e9a32ce1 100644 --- a/desktop/angular/src/app/shared/app-icon/app-icon.ts +++ b/desktop/angular/src/app/shared/app-icon/app-icon.ts @@ -94,7 +94,7 @@ export class AppIconComponent implements OnInit, OnDestroy { this._profile = p || null; if (this.initDone) { - this.updateView(true); + this.updateView(); } } get profile(): IDandName | null | undefined { From 0e69fefa637a319eaa23dc8b15cc277105bc1695 Mon Sep 17 00:00:00 2001 From: Daniel Date: Tue, 23 Apr 2024 10:25:36 +0200 Subject: [PATCH 2/6] Do not cache angular lib builds --- Earthfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Earthfile b/Earthfile index a6265aee..716fee92 100644 --- a/Earthfile +++ b/Earthfile @@ -217,9 +217,9 @@ angular-base: COPY assets/data ./assets IF [ "${configuration}" = "production" ] - RUN npm run build-libs + RUN --no-cache npm run build-libs ELSE - RUN npm run build-libs:dev + RUN --no-cache npm run build-libs:dev END # Explicitly cache here. From fc7e11e456d24cea037869cf9120e4ff6941191c Mon Sep 17 00:00:00 2001 From: Daniel Date: Tue, 23 Apr 2024 10:25:52 +0200 Subject: [PATCH 3/6] Keep timestamps of build artifacts --- Earthfile | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/Earthfile b/Earthfile index 716fee92..5d9d3394 100644 --- a/Earthfile +++ b/Earthfile @@ -90,16 +90,16 @@ go-update-deps: RUN go get -u ./.. RUN go mod tidy - SAVE ARTIFACT go.mod AS LOCAL go.mod - SAVE ARTIFACT --if-exists go.sum AS LOCAL go.sum + SAVE ARTIFACT --keep-ts go.mod AS LOCAL go.mod + SAVE ARTIFACT --keep-ts --if-exists go.sum AS LOCAL go.sum # mod-tidy runs 'go mod tidy', saving go.mod and go.sum locally. mod-tidy: FROM +go-base RUN go mod tidy - SAVE ARTIFACT go.mod AS LOCAL go.mod - SAVE ARTIFACT --if-exists go.sum AS LOCAL go.sum + SAVE ARTIFACT --keep-ts go.mod AS LOCAL go.mod + SAVE ARTIFACT --keep-ts --if-exists go.sum AS LOCAL go.sum # go-build runs 'go build ./cmds/...', saving artifacts locally. # If --CMDS is not set, it defaults to building portmaster-start, portmaster-core and hub @@ -130,10 +130,10 @@ go-build: DO +GO_ARCH_STRING --goos="${GOOS}" --goarch="${GOARCH}" --goarm="${GOARM}" FOR bin IN $(ls -1 "/tmp/build/") - SAVE ARTIFACT "/tmp/build/${bin}" AS LOCAL "${outputDir}/${GO_ARCH_STRING}/${bin}" + SAVE ARTIFACT --keep-ts "/tmp/build/${bin}" AS LOCAL "${outputDir}/${GO_ARCH_STRING}/${bin}" END - SAVE ARTIFACT "/tmp/build/" ./output + SAVE ARTIFACT --keep-ts "/tmp/build/" ./output # Test one or more go packages. # Test are always run as -short, as "long" tests require a full desktop system. @@ -241,11 +241,11 @@ angular-project: RUN --no-cache ./node_modules/.bin/ng build --configuration ${configuration} --base-href ${baseHref} "${project}" RUN --no-cache cwd=$(pwd) && cd "${dist}" && zip -r "${cwd}/${project}.zip" ./ - SAVE ARTIFACT "${dist}" "./output/${project}" + SAVE ARTIFACT --keep-ts "${dist}" "./output/${project}" # Save portmaster UI as local artifact. IF [ "${project}" = "portmaster" ] - SAVE ARTIFACT "./${project}.zip" AS LOCAL ${outputDir}/all/${project}-ui.zip + SAVE ARTIFACT --keep-ts "./${project}.zip" AS LOCAL ${outputDir}/all/${project}-ui.zip END # Build the angular projects (portmaster-UI and tauri-builtin) in dev mode @@ -441,7 +441,7 @@ tauri-build: END # Save output binary as local artifact. IF [ -f "target/${target}/release/${bin}" ] - SAVE ARTIFACT "target/${target}/release/${bin}" AS LOCAL "${outputDir}/${GO_ARCH_STRING}/${outbin}" + SAVE ARTIFACT --keep-ts "target/${target}/release/${bin}" AS LOCAL "${outputDir}/${GO_ARCH_STRING}/${outbin}" END END From e2652d0934f44ded34ac1697c90954b6f4564d42 Mon Sep 17 00:00:00 2001 From: Daniel Date: Tue, 23 Apr 2024 10:26:08 +0200 Subject: [PATCH 4/6] Add new ready api endpoint --- .../safing/portmaster-api/src/lib/debug-api.service.ts | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/desktop/angular/projects/safing/portmaster-api/src/lib/debug-api.service.ts b/desktop/angular/projects/safing/portmaster-api/src/lib/debug-api.service.ts index f0617943..36d3cd4f 100644 --- a/desktop/angular/projects/safing/portmaster-api/src/lib/debug-api.service.ts +++ b/desktop/angular/projects/safing/portmaster-api/src/lib/debug-api.service.ts @@ -18,6 +18,12 @@ export class DebugAPI { }) } + ready(): Observable { + return this.http.get(`${this.httpAPI}/v1/ready`, { + responseType: 'text' + }) + } + getStack(): Observable { return this.http.get(`${this.httpAPI}/v1/debug/stack`, { responseType: 'text' From 8c85259cc168c26f7948fac0b4528f525e8903e0 Mon Sep 17 00:00:00 2001 From: Daniel Date: Tue, 23 Apr 2024 10:28:56 +0200 Subject: [PATCH 5/6] Bump UI version --- desktop/angular/package-lock.json | 4 ++-- desktop/angular/package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/desktop/angular/package-lock.json b/desktop/angular/package-lock.json index 48bce952..2d89a425 100644 --- a/desktop/angular/package-lock.json +++ b/desktop/angular/package-lock.json @@ -1,12 +1,12 @@ { "name": "portmaster", - "version": "0.8.5", + "version": "0.8.6", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "portmaster", - "version": "0.8.5", + "version": "0.8.6", "dependencies": { "@angular/animations": "^16.0.1", "@angular/cdk": "^16.0.1", diff --git a/desktop/angular/package.json b/desktop/angular/package.json index 7a743ea1..e784196e 100644 --- a/desktop/angular/package.json +++ b/desktop/angular/package.json @@ -1,6 +1,6 @@ { "name": "portmaster", - "version": "0.8.5", + "version": "0.8.6", "scripts": { "ng": "ng", "start": "npm install && npm run build-libs:dev && ng serve --proxy-config ./proxy.json", From 0f808f568bbb6d4c8d9c99ecbaefc2f199aab0ad Mon Sep 17 00:00:00 2001 From: Daniel Date: Tue, 23 Apr 2024 12:25:32 +0200 Subject: [PATCH 6/6] Update deps --- go.mod | 22 ++++++++++------------ go.sum | 16 ++++++++++++++++ 2 files changed, 26 insertions(+), 12 deletions(-) diff --git a/go.mod b/go.mod index 2a52ff35..64ecc785 100644 --- a/go.mod +++ b/go.mod @@ -1,10 +1,8 @@ module github.com/safing/portmaster -go 1.21.1 +go 1.22.0 -toolchain go1.21.2 - -// TODO: Remove when https://github.com/tc-hib/winres/pull/4 is merged or changes are otherwise integrated. +// TODO: Remove when https://github.com/tc-hib/winres/pull/4 is released. replace github.com/tc-hib/winres => github.com/dhaavi/winres v0.2.2 require ( @@ -12,7 +10,7 @@ require ( github.com/Xuanwo/go-locale v1.1.0 github.com/agext/levenshtein v1.2.3 github.com/awalterschulze/gographviz v2.0.3+incompatible - github.com/cilium/ebpf v0.14.0 + github.com/cilium/ebpf v0.15.0 github.com/coreos/go-iptables v0.7.0 github.com/dhaavi/go-notify v0.0.0-20190209221809-c404b1f22435 github.com/florianl/go-conntrack v0.4.0 @@ -26,14 +24,14 @@ require ( github.com/hashicorp/go-version v1.6.0 github.com/jackc/puddle/v2 v2.2.1 github.com/mat/besticon v3.12.0+incompatible - github.com/miekg/dns v1.1.58 + github.com/miekg/dns v1.1.59 github.com/mitchellh/go-server-timing v1.0.1 github.com/mr-tron/base58 v1.2.0 github.com/oschwald/maxminddb-golang v1.12.0 github.com/r3labs/diff/v3 v3.0.1 github.com/rot256/pblind v0.0.0-20231024115251-cd3f239f28c1 github.com/safing/jess v0.3.3 - github.com/safing/portbase v0.19.4 + github.com/safing/portbase v0.19.5 github.com/safing/portmaster-android/go v0.0.0-20230830120134-3226ceac3bec github.com/shirou/gopsutil v3.21.11+incompatible github.com/spf13/cobra v1.8.0 @@ -44,7 +42,7 @@ require ( github.com/tevino/abool v1.2.0 github.com/umahmood/haversine v0.0.0-20151105152445-808ab04add26 github.com/vincent-petithory/dataurl v1.0.0 - golang.org/x/exp v0.0.0-20240409090435-93d18d7e34b8 + golang.org/x/exp v0.0.0-20240416160154-fe59bbe5cc7f golang.org/x/image v0.15.0 golang.org/x/net v0.24.0 golang.org/x/sync v0.7.0 @@ -107,7 +105,7 @@ require ( github.com/vmihailenco/tagparser/v2 v2.0.0 // indirect github.com/x448/float16 v0.8.4 // indirect github.com/yusufpapurcu/wmi v1.2.4 // indirect - github.com/zalando/go-keyring v0.2.3 // indirect + github.com/zalando/go-keyring v0.2.4 // indirect github.com/zeebo/blake3 v0.2.3 // indirect go.etcd.io/bbolt v1.3.9 // indirect golang.org/x/crypto v0.22.0 // indirect @@ -116,9 +114,9 @@ require ( golang.org/x/time v0.5.0 // indirect golang.org/x/tools v0.20.0 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect - gvisor.dev/gvisor v0.0.0-20240409213450-87d8df37c71e // indirect - modernc.org/libc v1.49.3 // indirect + gvisor.dev/gvisor v0.0.0-20240422234719-5cecdfbabd15 // indirect + modernc.org/libc v1.50.2 // indirect modernc.org/mathutil v1.6.0 // indirect modernc.org/memory v1.8.0 // indirect - modernc.org/sqlite v1.29.6 // indirect + modernc.org/sqlite v1.29.8 // indirect ) diff --git a/go.sum b/go.sum index 154b520e..5f2b3834 100644 --- a/go.sum +++ b/go.sum @@ -36,6 +36,8 @@ github.com/cilium/ebpf v0.12.3 h1:8ht6F9MquybnY97at+VDZb3eQQr8ev79RueWeVaEcG4= github.com/cilium/ebpf v0.12.3/go.mod h1:TctK1ivibvI3znr66ljgi4hqOT8EYQjz1KWBfb1UVgM= github.com/cilium/ebpf v0.14.0 h1:0PsxAjO6EjI1rcT+rkp6WcCnE0ZvfkXBYiMedJtrSUs= github.com/cilium/ebpf v0.14.0/go.mod h1:DHp1WyrLeiBh19Cf/tfiSMhqheEiK8fXFZ4No0P1Hso= +github.com/cilium/ebpf v0.15.0 h1:7NxJhNiBT3NG8pZJ3c+yfrVdHY8ScgKD27sScgjLMMk= +github.com/cilium/ebpf v0.15.0/go.mod h1:DHp1WyrLeiBh19Cf/tfiSMhqheEiK8fXFZ4No0P1Hso= github.com/coreos/go-iptables v0.7.0 h1:XWM3V+MPRr5/q51NuWSgU0fqMad64Zyxs8ZUoMsamr8= github.com/coreos/go-iptables v0.7.0/go.mod h1:Qe8Bv2Xik5FyTXwgIbLAnv2sWSBmvWdFETJConOQ//Q= github.com/cpuguy83/go-md2man/v2 v2.0.3/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= @@ -207,6 +209,8 @@ github.com/miekg/dns v1.1.57 h1:Jzi7ApEIzwEPLHWRcafCN9LZSBbqQpxjt/wpgvg7wcM= github.com/miekg/dns v1.1.57/go.mod h1:uqRjCRUuEAA6qsOiJvDd+CFo/vW+y5WR6SNmHE55hZk= github.com/miekg/dns v1.1.58 h1:ca2Hdkz+cDg/7eNF6V56jjzuZ4aCAE+DbVkILdQWG/4= github.com/miekg/dns v1.1.58/go.mod h1:Ypv+3b/KadlvW9vJfXOTf300O4UqaHFzFCuHz+rPkBY= +github.com/miekg/dns v1.1.59 h1:C9EXc/UToRwKLhK5wKU/I4QVsBUc8kE6MkHBkeypWZs= +github.com/miekg/dns v1.1.59/go.mod h1:nZpewl5p6IvctfgrckopVx2OlSEHPRO/U4SYkRklrEk= github.com/mitchellh/copystructure v1.2.0 h1:vpKXTN4ewci03Vljg/q9QvCGUDttBOGBIa15WveJJGw= github.com/mitchellh/copystructure v1.2.0/go.mod h1:qLl+cE2AmVv+CoeAwDPye/v+N2HKCj9FbZEVFJRxO9s= github.com/mitchellh/go-server-timing v1.0.1 h1:f00/aIe8T3MrnLhQHu3tSWvnwc5GV/p5eutuu3hF/tE= @@ -251,6 +255,8 @@ github.com/safing/portbase v0.19.3 h1:fzb4d2nzhmRq4Lt6sgn9R20iykireAkBNyf9pfGqQj github.com/safing/portbase v0.19.3/go.mod h1:Qrh3ck+7VZloFmnozCs9Hj8godhJAi55cmiDiC7BwTc= github.com/safing/portbase v0.19.4 h1:Oh7oUBp6xn5whhKtvnNKS5rhHqyXJDDxfxwf+gRswhQ= github.com/safing/portbase v0.19.4/go.mod h1:Qrh3ck+7VZloFmnozCs9Hj8godhJAi55cmiDiC7BwTc= +github.com/safing/portbase v0.19.5 h1:3/8odzlvb629tHPwdj/sthSeJcwZHYrqA6YuvNUZzNc= +github.com/safing/portbase v0.19.5/go.mod h1:Qrh3ck+7VZloFmnozCs9Hj8godhJAi55cmiDiC7BwTc= github.com/safing/portmaster-android/go v0.0.0-20230830120134-3226ceac3bec h1:oSJY1seobofPwpMoJRkCgXnTwfiQWNfGMCPDfqgAEfg= github.com/safing/portmaster-android/go v0.0.0-20230830120134-3226ceac3bec/go.mod h1:abwyAQrZGemWbSh/aCD9nnkp0SvFFf/mGWkAbOwPnFE= github.com/safing/spn v0.7.5 h1:WfkMs2omLrwxBWccGGG9Akx0AvsvJLG+W7rjWQpQhl4= @@ -330,6 +336,8 @@ github.com/yusufpapurcu/wmi v1.2.4 h1:zFUKzehAFReQwLys1b/iSMl+JQGSCSjtVqQn9bBrPo github.com/yusufpapurcu/wmi v1.2.4/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= github.com/zalando/go-keyring v0.2.3 h1:v9CUu9phlABObO4LPWycf+zwMG7nlbb3t/B5wa97yms= github.com/zalando/go-keyring v0.2.3/go.mod h1:HL4k+OXQfJUWaMnqyuSOc0drfGPX2b51Du6K+MRgZMk= +github.com/zalando/go-keyring v0.2.4 h1:wi2xxTqdiwMKbM6TWwi+uJCG/Tum2UV0jqaQhCa9/68= +github.com/zalando/go-keyring v0.2.4/go.mod h1:HL4k+OXQfJUWaMnqyuSOc0drfGPX2b51Du6K+MRgZMk= github.com/zeebo/assert v1.1.0 h1:hU1L1vLTHsnO8x8c9KAR5GmM5QscxHg5RNU5z5qbUWY= github.com/zeebo/assert v1.1.0/go.mod h1:Pq9JiuJQpG8JLJdtkwrJESF0Foym2/D9XMU5ciN/wJ0= github.com/zeebo/blake3 v0.2.3 h1:TFoLXsjeXqRNFxSbk35Dk4YtszE/MQQGK10BH4ptoTg= @@ -354,6 +362,8 @@ golang.org/x/exp v0.0.0-20240110193028-0dcbfd608b1e h1:723BNChdd0c2Wk6WOE320qGBi golang.org/x/exp v0.0.0-20240110193028-0dcbfd608b1e/go.mod h1:iRJReGqOEeBhDZGkGbynYwcHlctCvnjTYIamk7uXpHI= golang.org/x/exp v0.0.0-20240409090435-93d18d7e34b8 h1:ESSUROHIBHg7USnszlcdmjBEwdMj9VUvU+OPk4yl2mc= golang.org/x/exp v0.0.0-20240409090435-93d18d7e34b8/go.mod h1:/lliqkxwWAhPjf5oSOIJup2XcqJaw8RGS6k3TGEc7GI= +golang.org/x/exp v0.0.0-20240416160154-fe59bbe5cc7f h1:99ci1mjWVBWwJiEKYY6jWa4d2nTQVIEhZIptnrVb1XY= +golang.org/x/exp v0.0.0-20240416160154-fe59bbe5cc7f/go.mod h1:/lliqkxwWAhPjf5oSOIJup2XcqJaw8RGS6k3TGEc7GI= golang.org/x/image v0.15.0 h1:kOELfmgrmJlw4Cdb7g/QGuB3CvDrXbqEIww/pNtNBm8= golang.org/x/image v0.15.0/go.mod h1:HUYqC05R2ZcZ3ejNQsIHQDQiwWM4JBqmm6MKANTp4LE= golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= @@ -488,12 +498,16 @@ gvisor.dev/gvisor v0.0.0-20240327015314-08ed01b28587 h1:wH3g/qTCPlVBwkFktYuKNFJG gvisor.dev/gvisor v0.0.0-20240327015314-08ed01b28587/go.mod h1:NQHVAzMwvZ+Qe3ElSiHmq9RUm1MdNHpUZ52fiEqvn+0= gvisor.dev/gvisor v0.0.0-20240409213450-87d8df37c71e h1:jpvBdtqDLzu2MZuruscr008NwJxiDidjFF4ZQq7YZbk= gvisor.dev/gvisor v0.0.0-20240409213450-87d8df37c71e/go.mod h1:NQHVAzMwvZ+Qe3ElSiHmq9RUm1MdNHpUZ52fiEqvn+0= +gvisor.dev/gvisor v0.0.0-20240422234719-5cecdfbabd15 h1:zf/5V7KP7FL0G5GXg1zGPeaBkBG3CdJagSHbYZxsYKU= +gvisor.dev/gvisor v0.0.0-20240422234719-5cecdfbabd15/go.mod h1:sxc3Uvk/vHcd3tj7/DHVBoR5wvWT/MmRq2pj7HRJnwU= honnef.co/go/tools v0.2.1/go.mod h1:lPVVZ2BS5TfnjLyizF7o7hv7j9/L+8cZY2hLyjP9cGY= honnef.co/go/tools v0.2.2/go.mod h1:lPVVZ2BS5TfnjLyizF7o7hv7j9/L+8cZY2hLyjP9cGY= modernc.org/libc v1.40.1 h1:ZhRylEBcj3GyQbPVC8JxIg7SdrT4JOxIDJoUon0NfF8= modernc.org/libc v1.40.1/go.mod h1:YAXkAZ8ktnkCKaN9sw/UDeUVkGYJ/YquGO4FTi5nmHE= modernc.org/libc v1.49.3 h1:j2MRCRdwJI2ls/sGbeSk0t2bypOG/uvPZUsGQFDulqg= modernc.org/libc v1.49.3/go.mod h1:yMZuGkn7pXbKfoT/M35gFJOAEdSKdxL0q64sF7KqCDo= +modernc.org/libc v1.50.2 h1:I0+3wlRvXmAEjAJvD7BhP1kmKHwkzV0rOcqFcD85u+0= +modernc.org/libc v1.50.2/go.mod h1:Fd8TZdfRorOd1vB0QCtYSHYAuzobS4xS3mhMGUkeVcA= modernc.org/mathutil v1.6.0 h1:fRe9+AmYlaej+64JsEEhoWuAYBkOtQiMEU7n/XgfYi4= modernc.org/mathutil v1.6.0/go.mod h1:Ui5Q9q1TR2gFm0AQRqQUaBWFLAhQpCwNcuhBOSedWPo= modernc.org/memory v1.7.2 h1:Klh90S215mmH8c9gO98QxQFsY+W451E8AnzjoE2ee1E= @@ -504,6 +518,8 @@ modernc.org/sqlite v1.28.0 h1:Zx+LyDDmXczNnEQdvPuEfcFVA2ZPyaD7UCZDjef3BHQ= modernc.org/sqlite v1.28.0/go.mod h1:Qxpazz0zH8Z1xCFyi5GSL3FzbtZ3fvbjmywNogldEW0= modernc.org/sqlite v1.29.6 h1:0lOXGrycJPptfHDuohfYgNqoe4hu+gYuN/pKgY5XjS4= modernc.org/sqlite v1.29.6/go.mod h1:S02dvcmm7TnTRvGhv8IGYyLnIt7AS2KPaB1F/71p75U= +modernc.org/sqlite v1.29.8 h1:nGKglNx9K5v0As+zF0/Gcl1kMkmaU1XynYyq92PbsC8= +modernc.org/sqlite v1.29.8/go.mod h1:lQPm27iqa4UNZpmr4Aor0MH0HkCLbt1huYDfWylLZFk= zombiezen.com/go/sqlite v1.0.0 h1:D2EvOZqumJBy+6t+0uNTTXnepUpB/pKG45op/UziI1o= zombiezen.com/go/sqlite v1.0.0/go.mod h1:Yx7FJ77tr7Ucwi5solhXAxpflyxk/BHNXArZ/JvDm60= zombiezen.com/go/sqlite v1.2.0 h1:jja0Ubpzpl6bjr/bSaPyvafHO+extoDJJXIaqXT7VOU=