Mayo commited on
Commit
23946ba
·
unverified ·
1 Parent(s): b687739

refactor: remove auto-update

Browse files
.github/signing/metadata.json DELETED
@@ -1,16 +0,0 @@
1
- {
2
- "Endpoint": "https://eus.codesigning.azure.net/",
3
- "CodeSigningAccountName": "Mayo",
4
- "CertificateProfileName": "Hawaii",
5
- "ExcludeCredentials": [
6
- "ManagedIdentityCredential",
7
- "WorkloadIdentityCredential",
8
- "SharedTokenCacheCredential",
9
- "VisualStudioCredential",
10
- "VisualStudioCodeCredential",
11
- "AzureCliCredential",
12
- "AzurePowerShellCredential",
13
- "AzureDeveloperCliCredential",
14
- "InteractiveBrowserCredential"
15
- ]
16
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
.github/workflows/release.yaml CHANGED
@@ -14,165 +14,80 @@ env:
14
  CUDA_COMPUTE_CAP: 75
15
 
16
  jobs:
17
- build-windows:
18
- name: Windows
19
- runs-on: windows-latest
 
 
 
 
 
 
 
 
 
20
  steps:
21
  - uses: actions/checkout@v6
 
22
  - uses: oven-sh/setup-bun@v2
23
- - uses: Jimver/cuda-toolkit@master
 
 
 
 
 
 
 
 
 
24
  with:
25
  cuda: '13.1.0'
26
- - uses: ilammy/msvc-dev-cmd@v1
27
- - run: bun install
28
- - run: bun tauri build --features=cuda,cudnn,bundle
29
- - name: Prepare distribution folder
30
- shell: bash
31
- run: |
32
- mkdir dist
33
- cp target/release/koharu.exe dist/
34
 
35
- - name: Generate release notes
36
- run: bun git-cliff --current -o RELEASE_NOTES.md
37
 
38
- - name: Package
39
- shell: bash
40
- env:
41
- AZURE_CLIENT_ID: ${{ secrets.AZURE_CLIENT_ID }}
42
- AZURE_CLIENT_SECRET: ${{ secrets.AZURE_CLIENT_SECRET }}
43
- AZURE_TENANT_ID: ${{ secrets.AZURE_TENANT_ID }}
44
- run: |
45
- dotnet tool update -g vpk
46
- vpk pack -u Koharu -v ${{ github.ref_name }} -p dist -e koharu.exe -i koharu/icons/icon.ico \
47
- --releaseNotes RELEASE_NOTES.md \
48
- --azureTrustedSignFile .github/signing/metadata.json
49
- vpk upload github \
50
- --repoUrl https://github.com/${{ github.repository }} \
51
- --releaseName ${{ github.ref_name }} \
52
- --tag ${{ github.ref_name }} \
53
- --token ${{ secrets.GITHUB_TOKEN }} \
54
- --merge
55
 
56
- build-macos:
57
- name: macOS
58
- runs-on: macos-latest
59
- steps:
60
- - uses: actions/checkout@v6
61
- - uses: oven-sh/setup-bun@v2
62
- - run: bun install
63
- - run: bun tauri build --features=metal,bundle
64
- - name: Prepare distribution folder
65
- run: |
66
- mkdir dist
67
- cp target/release/koharu dist/
68
- - name: Generate release notes
69
- run: bun git-cliff --current -o RELEASE_NOTES.md
70
- - name: Install Apple certificates and notary profile
71
  env:
72
- BUILD_CERTIFICATE_BASE64: ${{ secrets.BUILD_CERTIFICATE_BASE64 }}
73
- INSTALLER_CERTIFICATE_BASE64: ${{ secrets.INSTALLER_CERTIFICATE_BASE64 }}
74
- P12_PASSWORD: ""
75
- APPLE_ID: ${{ secrets.APPLE_ID }}
76
- APPLE_PASSWORD: ${{ secrets.APPLE_PASSWORD }}
77
- APPLE_TEAM: ${{ secrets.APPLE_TEAM }}
78
  KEYCHAIN_PASSWORD: ${{ secrets.KEYCHAIN_PASSWORD }}
79
  run: |
80
- # create variables for file paths
81
- CERT_BUILD_PATH=$RUNNER_TEMP/build_certificate.p12
82
- CERT_INSTALLER_PATH=$RUNNER_TEMP/installer_certificate.p12
83
- KEYCHAIN_PATH=$RUNNER_TEMP/app-signing.keychain-db
84
-
85
- # import certificates from secrets
86
- echo -n "$BUILD_CERTIFICATE_BASE64" | base64 --decode -o $CERT_BUILD_PATH
87
- echo -n "$INSTALLER_CERTIFICATE_BASE64" | base64 --decode -o $CERT_INSTALLER_PATH
88
-
89
- # create temporary keychain
90
- security create-keychain -p "$KEYCHAIN_PASSWORD" $KEYCHAIN_PATH
91
- security set-keychain-settings -lut 21600 $KEYCHAIN_PATH
92
- security unlock-keychain -p "$KEYCHAIN_PASSWORD" $KEYCHAIN_PATH
93
 
94
- # import certificates to keychain
95
- security import $CERT_BUILD_PATH -P "$P12_PASSWORD" -A -t cert -f pkcs12 -k $KEYCHAIN_PATH
96
- security import $CERT_INSTALLER_PATH -P "$P12_PASSWORD" -A -t cert -f pkcs12 -k $KEYCHAIN_PATH
97
- security list-keychain -d user -s $KEYCHAIN_PATH
98
-
99
- # create notarytool profile
100
- xcrun notarytool store-credentials --keychain $KEYCHAIN_PATH --apple-id "$APPLE_ID" --team-id "$APPLE_TEAM" --password "$APPLE_PASSWORD" velopack-profile
101
- - uses: actions/setup-dotnet@v5
102
- with:
103
- dotnet-version: '9.0.x'
104
- - name: Package
105
  run: |
106
- dotnet tool update -g vpk
107
- vpk pack -u Koharu -v ${{ github.ref_name }} -p dist -e koharu -i koharu/icons/icon.icns \
108
- --releaseNotes RELEASE_NOTES.md \
109
- --signAppIdentity "Developer ID Application: Mayo Takanashi" \
110
- --signInstallIdentity "Developer ID Installer: Mayo Takanashi" \
111
- --notaryProfile "velopack-profile" \
112
- --keychain $RUNNER_TEMP/app-signing.keychain-db
113
- vpk upload github \
114
- --repoUrl https://github.com/${{ github.repository }} \
115
- --releaseName ${{ github.ref_name }} \
116
- --tag ${{ github.ref_name }} \
117
- --token ${{ secrets.GITHUB_TOKEN }} \
118
- --merge
119
 
120
- build-linux:
121
- name: Linux
122
- runs-on: ubuntu-latest
123
- steps:
124
- - name: Install dependencies
125
- run: |
126
- sudo apt update
127
- sudo apt install libwebkit2gtk-4.1-dev \
128
- build-essential \
129
- curl \
130
- wget \
131
- file \
132
- libxdo-dev \
133
- libssl-dev \
134
- libayatana-appindicator3-dev \
135
- librsvg2-dev
136
- - uses: actions/checkout@v6
137
- - uses: Jimver/cuda-toolkit@master
138
- with:
139
- cuda: '13.1.0'
140
- - uses: oven-sh/setup-bun@v2
141
- - run: bun install
142
- - run: bun tauri build --features=cuda,cudnn,bundle
143
- - name: Prepare distribution folder
144
- run: |
145
- mkdir dist
146
- cp target/release/koharu dist/
147
- - name: Generate release notes
148
- run: bun git-cliff --current -o RELEASE_NOTES.md
149
- - uses: actions/setup-dotnet@v5
150
- with:
151
- dotnet-version: '9.0.x'
152
- - name: Package
153
- run: |
154
- dotnet tool update -g vpk
155
- vpk pack -u Koharu -v ${{ github.ref_name }} -p dist -e koharu -i koharu/icons/icon.ico \
156
- --releaseNotes RELEASE_NOTES.md
157
- vpk upload github \
158
- --repoUrl https://github.com/${{ github.repository }} \
159
- --releaseName ${{ github.ref_name }} \
160
- --tag ${{ github.ref_name }} \
161
- --token ${{ secrets.GITHUB_TOKEN }} \
162
- --merge
163
-
164
- publish:
165
- needs: [build-windows, build-macos, build-linux]
166
- runs-on: ubuntu-latest
167
- steps:
168
- - uses: actions/checkout@v6
169
- - uses: oven-sh/setup-bun@v2
170
- - run: bun install
171
- - name: Generate release notes
172
- run: bun git-cliff --current -o RELEASE_NOTES.md
173
- - name: Upload Bundled Artifacts
174
- uses: softprops/action-gh-release@v2
175
- with:
176
- body_path: RELEASE_NOTES.md
177
  env:
178
- token: ${{ secrets.GITHUB_TOKEN }}
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
14
  CUDA_COMPUTE_CAP: 75
15
 
16
  jobs:
17
+ release:
18
+ strategy:
19
+ matrix:
20
+ include:
21
+ - platform: 'macos-latest' # for Arm based macs (M1 and above).
22
+ args: '--target aarch64-apple-darwin'
23
+ - platform: 'ubuntu-latest'
24
+ args: ''
25
+ - platform: 'windows-latest'
26
+ args: ''
27
+
28
+ runs-on: ${{ matrix.platform }}
29
  steps:
30
  - uses: actions/checkout@v6
31
+
32
  - uses: oven-sh/setup-bun@v2
33
+
34
+ - name: install dependencies (ubuntu only)
35
+ if: matrix.platform == 'ubuntu-latest'
36
+ run: |
37
+ sudo apt-get update
38
+ sudo apt-get install -y libwebkit2gtk-4.1-dev libappindicator3-dev librsvg2-dev patchelf
39
+
40
+ - name: Install CUDA Toolkit
41
+ uses: Jimver/cuda-toolkit@master
42
+ if: matrix.platform != 'macos-latest'
43
  with:
44
  cuda: '13.1.0'
 
 
 
 
 
 
 
 
45
 
46
+ - name: Install dependencies
47
+ run: bun install
48
 
49
+ - name: Install trusted-signing-cli (windows only)
50
+ if: matrix.platform == 'windows-latest'
51
+ run: cargo install trusted-signing-cli
 
 
 
 
 
 
 
 
 
 
 
 
 
 
52
 
53
+ - name: Import Apple Developer Certificate
 
 
 
 
 
 
 
 
 
 
 
 
 
 
54
  env:
55
+ APPLE_CERTIFICATE: ${{ secrets.BUILD_CERTIFICATE_BASE64 }}
56
+ APPLE_CERTIFICATE_PASSWORD: ""
 
 
 
 
57
  KEYCHAIN_PASSWORD: ${{ secrets.KEYCHAIN_PASSWORD }}
58
  run: |
59
+ echo $APPLE_CERTIFICATE | base64 --decode > certificate.p12
60
+ security create-keychain -p "$KEYCHAIN_PASSWORD" build.keychain
61
+ security default-keychain -s build.keychain
62
+ security unlock-keychain -p "$KEYCHAIN_PASSWORD" build.keychain
63
+ security set-keychain-settings -t 3600 -u build.keychain
64
+ security import certificate.p12 -k build.keychain -P "$APPLE_CERTIFICATE_PASSWORD" -T /usr/bin/codesign
65
+ security set-key-partition-list -S apple-tool:,apple:,codesign: -s -k "$KEYCHAIN_PASSWORD" build.keychain
66
+ security find-identity -v -p codesigning build.keychain
 
 
 
 
 
67
 
68
+ - name: Verify Certificate
 
 
 
 
 
 
 
 
 
 
69
  run: |
70
+ CERT_INFO=$(security find-identity -v -p codesigning build.keychain | grep "Apple Development")
71
+ CERT_ID=$(echo "$CERT_INFO" | awk -F'"' '{print $2}')
72
+ echo "CERT_ID=$CERT_ID" >> $GITHUB_ENV
73
+ echo "Certificate imported."
 
 
 
 
 
 
 
 
 
74
 
75
+ - uses: tauri-apps/tauri-action@v0
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
76
  env:
77
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
78
+ APPLE_ID: ${{ secrets.APPLE_ID }}
79
+ APPLE_PASSWORD: ${{ secrets.APPLE_PASSWORD }}
80
+ APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM }}
81
+ APPLE_CERTIFICATE: ${{ secrets.BUILD_CERTIFICATE_BASE64 }}
82
+ APPLE_CERTIFICATE_PASSWORD: ""
83
+ APPLE_SIGNING_IDENTITY: ${{ env.CERT_ID }}
84
+ AZURE_CLIENT_ID: ${{ secrets.AZURE_CLIENT_ID }}
85
+ AZURE_CLIENT_SECRET: ${{ secrets.AZURE_CLIENT_SECRET }}
86
+ AZURE_TENANT_ID: ${{ secrets.AZURE_TENANT_ID }}
87
+ with:
88
+ tagName: ${{ github.ref_name }}
89
+ releaseName: ${{ github.ref_name }}
90
+ releaseBody: 'See the assets to download this version and install.'
91
+ releaseDraft: false
92
+ prerelease: false
93
+ args: ${{ matrix.args }}
Cargo.lock CHANGED
@@ -180,9 +180,6 @@ name = "arbitrary"
180
  version = "1.4.2"
181
  source = "registry+https://github.com/rust-lang/crates.io-index"
182
  checksum = "c3d036a3c4ab069c7b410a2ce876bd74808d2d0888a82667669f8e783a898bf1"
183
- dependencies = [
184
- "derive_arbitrary",
185
- ]
186
 
187
  [[package]]
188
  name = "arg_enum_proc_macro"
@@ -253,23 +250,12 @@ version = "0.7.2"
253
  source = "registry+https://github.com/rust-lang/crates.io-index"
254
  checksum = "435a87a52755b8f27fcf321ac4f04b2802e337c8c4872923137471ec39c37532"
255
  dependencies = [
256
- "event-listener 5.4.1",
257
  "event-listener-strategy",
258
  "futures-core",
259
  "pin-project-lite",
260
  ]
261
 
262
- [[package]]
263
- name = "async-channel"
264
- version = "1.9.0"
265
- source = "registry+https://github.com/rust-lang/crates.io-index"
266
- checksum = "81953c529336010edd6d8e358f886d9581267795c61b19475b71314bffa46d35"
267
- dependencies = [
268
- "concurrent-queue",
269
- "event-listener 2.5.3",
270
- "futures-core",
271
- ]
272
-
273
  [[package]]
274
  name = "async-channel"
275
  version = "2.5.0"
@@ -307,21 +293,6 @@ dependencies = [
307
  "futures-lite",
308
  ]
309
 
310
- [[package]]
311
- name = "async-global-executor"
312
- version = "2.4.1"
313
- source = "registry+https://github.com/rust-lang/crates.io-index"
314
- checksum = "05b1b633a2115cd122d73b955eadd9916c18c8f510ec9cd1686404c60ad1c29c"
315
- dependencies = [
316
- "async-channel 2.5.0",
317
- "async-executor",
318
- "async-io",
319
- "async-lock",
320
- "blocking",
321
- "futures-lite",
322
- "once_cell",
323
- ]
324
-
325
  [[package]]
326
  name = "async-io"
327
  version = "2.6.0"
@@ -346,7 +317,7 @@ version = "3.4.2"
346
  source = "registry+https://github.com/rust-lang/crates.io-index"
347
  checksum = "290f7f2596bd5b78a9fec8088ccd89180d7f9f55b94b0576823bbbdc72ee8311"
348
  dependencies = [
349
- "event-listener 5.4.1",
350
  "event-listener-strategy",
351
  "pin-project-lite",
352
  ]
@@ -368,14 +339,14 @@ version = "2.5.0"
368
  source = "registry+https://github.com/rust-lang/crates.io-index"
369
  checksum = "fc50921ec0055cdd8a16de48773bfeec5c972598674347252c0399676be7da75"
370
  dependencies = [
371
- "async-channel 2.5.0",
372
  "async-io",
373
  "async-lock",
374
  "async-signal",
375
  "async-task",
376
  "blocking",
377
  "cfg-if",
378
- "event-listener 5.4.1",
379
  "futures-lite",
380
  "rustix",
381
  ]
@@ -409,32 +380,6 @@ dependencies = [
409
  "windows-sys 0.61.2",
410
  ]
411
 
412
- [[package]]
413
- name = "async-std"
414
- version = "1.13.2"
415
- source = "registry+https://github.com/rust-lang/crates.io-index"
416
- checksum = "2c8e079a4ab67ae52b7403632e4618815d6db36d2a010cfe41b02c1b1578f93b"
417
- dependencies = [
418
- "async-channel 1.9.0",
419
- "async-global-executor",
420
- "async-io",
421
- "async-lock",
422
- "crossbeam-utils",
423
- "futures-channel",
424
- "futures-core",
425
- "futures-io",
426
- "futures-lite",
427
- "gloo-timers",
428
- "kv-log-macro",
429
- "log",
430
- "memchr",
431
- "once_cell",
432
- "pin-project-lite",
433
- "pin-utils",
434
- "slab",
435
- "wasm-bindgen-futures",
436
- ]
437
-
438
  [[package]]
439
  name = "async-task"
440
  version = "4.7.1"
@@ -712,7 +657,7 @@ version = "1.6.2"
712
  source = "registry+https://github.com/rust-lang/crates.io-index"
713
  checksum = "e83f8d02be6967315521be875afa792a316e28d57b5a2d401897e2a7921b7f21"
714
  dependencies = [
715
- "async-channel 2.5.0",
716
  "async-task",
717
  "futures-io",
718
  "futures-lite",
@@ -862,7 +807,7 @@ dependencies = [
862
  "safetensors 0.7.0",
863
  "thiserror 2.0.18",
864
  "yoke 0.8.1",
865
- "zip 7.2.0",
866
  ]
867
 
868
  [[package]]
@@ -1581,28 +1526,6 @@ dependencies = [
1581
  "serde_core",
1582
  ]
1583
 
1584
- [[package]]
1585
- name = "derivative"
1586
- version = "2.2.0"
1587
- source = "registry+https://github.com/rust-lang/crates.io-index"
1588
- checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b"
1589
- dependencies = [
1590
- "proc-macro2",
1591
- "quote",
1592
- "syn 1.0.109",
1593
- ]
1594
-
1595
- [[package]]
1596
- name = "derive_arbitrary"
1597
- version = "1.4.2"
1598
- source = "registry+https://github.com/rust-lang/crates.io-index"
1599
- checksum = "1e567bd82dcff979e4b03460c307b3cdc9e96fde3d73bed1496d2bc75d9dd62a"
1600
- dependencies = [
1601
- "proc-macro2",
1602
- "quote",
1603
- "syn 2.0.114",
1604
- ]
1605
-
1606
  [[package]]
1607
  name = "derive_builder"
1608
  version = "0.20.2"
@@ -1982,12 +1905,6 @@ dependencies = [
1982
  "num-traits",
1983
  ]
1984
 
1985
- [[package]]
1986
- name = "event-listener"
1987
- version = "2.5.3"
1988
- source = "registry+https://github.com/rust-lang/crates.io-index"
1989
- checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0"
1990
-
1991
  [[package]]
1992
  name = "event-listener"
1993
  version = "5.4.1"
@@ -2005,7 +1922,7 @@ version = "0.5.4"
2005
  source = "registry+https://github.com/rust-lang/crates.io-index"
2006
  checksum = "8be9f3dfaaffdae2972880079a491a1a8bb7cbed0b8dd7a347f668b4150a3b93"
2007
  dependencies = [
2008
- "event-listener 5.4.1",
2009
  "pin-project-lite",
2010
  ]
2011
 
@@ -2880,18 +2797,6 @@ version = "0.3.3"
2880
  source = "registry+https://github.com/rust-lang/crates.io-index"
2881
  checksum = "0cc23270f6e1808e30a928bdc84dea0b9b4136a8bc82338574f23baf47bbd280"
2882
 
2883
- [[package]]
2884
- name = "gloo-timers"
2885
- version = "0.3.0"
2886
- source = "registry+https://github.com/rust-lang/crates.io-index"
2887
- checksum = "bbb143cf96099802033e0d4f4963b19fd2e0b728bcf076cd9cf7f6634f092994"
2888
- dependencies = [
2889
- "futures-channel",
2890
- "futures-core",
2891
- "js-sys",
2892
- "wasm-bindgen",
2893
- ]
2894
-
2895
  [[package]]
2896
  name = "glow"
2897
  version = "0.16.0"
@@ -3160,7 +3065,7 @@ dependencies = [
3160
  "serde_json",
3161
  "thiserror 2.0.18",
3162
  "tokio",
3163
- "ureq 2.12.1",
3164
  "windows-sys 0.60.2",
3165
  ]
3166
 
@@ -4104,7 +4009,6 @@ dependencies = [
4104
  "tower",
4105
  "tracing",
4106
  "tracing-subscriber",
4107
- "velopack",
4108
  "windows 0.62.2",
4109
  "windows-sys 0.61.2",
4110
  "winreg",
@@ -4203,7 +4107,7 @@ dependencies = [
4203
  "tempfile",
4204
  "tokio",
4205
  "tracing",
4206
- "zip 7.2.0",
4207
  ]
4208
 
4209
  [[package]]
@@ -4218,15 +4122,6 @@ dependencies = [
4218
  "selectors",
4219
  ]
4220
 
4221
- [[package]]
4222
- name = "kv-log-macro"
4223
- version = "1.0.7"
4224
- source = "registry+https://github.com/rust-lang/crates.io-index"
4225
- checksum = "0de8b303297635ad57c9f5059fd9cee7a47f8e8daa09df0fcd07dd39fb22977f"
4226
- dependencies = [
4227
- "log",
4228
- ]
4229
-
4230
  [[package]]
4231
  name = "lazy_static"
4232
  version = "1.5.0"
@@ -4376,9 +4271,6 @@ name = "log"
4376
  version = "0.4.29"
4377
  source = "registry+https://github.com/rust-lang/crates.io-index"
4378
  checksum = "5e5032e24019045c762d3c0f28f5b6b8bbf38563a65908389bf7978758920897"
4379
- dependencies = [
4380
- "value-bag",
4381
- ]
4382
 
4383
  [[package]]
4384
  name = "loop9"
@@ -4761,15 +4653,6 @@ version = "0.3.0"
4761
  source = "registry+https://github.com/rust-lang/crates.io-index"
4762
  checksum = "0676bb32a98c1a483ce53e500a81ad9c3d5b3f7c920c28c24e9cb0980d0b5bc8"
4763
 
4764
- [[package]]
4765
- name = "normpath"
4766
- version = "1.5.0"
4767
- source = "registry+https://github.com/rust-lang/crates.io-index"
4768
- checksum = "bf23ab2b905654b4cb177e30b629937b3868311d4e1cba859f899c041046e69b"
4769
- dependencies = [
4770
- "windows-sys 0.61.2",
4771
- ]
4772
-
4773
  [[package]]
4774
  name = "nu-ansi-term"
4775
  version = "0.50.3"
@@ -8238,35 +8121,6 @@ dependencies = [
8238
  "webpki-roots 0.26.11",
8239
  ]
8240
 
8241
- [[package]]
8242
- name = "ureq"
8243
- version = "3.1.4"
8244
- source = "registry+https://github.com/rust-lang/crates.io-index"
8245
- checksum = "d39cb1dbab692d82a977c0392ffac19e188bd9186a9f32806f0aaa859d75585a"
8246
- dependencies = [
8247
- "base64 0.22.1",
8248
- "flate2",
8249
- "log",
8250
- "percent-encoding",
8251
- "rustls",
8252
- "rustls-pki-types",
8253
- "ureq-proto",
8254
- "utf-8",
8255
- "webpki-roots 1.0.5",
8256
- ]
8257
-
8258
- [[package]]
8259
- name = "ureq-proto"
8260
- version = "0.5.3"
8261
- source = "registry+https://github.com/rust-lang/crates.io-index"
8262
- checksum = "d81f9efa9df032be5934a46a068815a10a042b494b6a58cb0a1a97bb5467ed6f"
8263
- dependencies = [
8264
- "base64 0.22.1",
8265
- "http",
8266
- "httparse",
8267
- "log",
8268
- ]
8269
-
8270
  [[package]]
8271
  name = "url"
8272
  version = "2.5.8"
@@ -8330,7 +8184,6 @@ checksum = "ee48d38b119b0cd71fe4141b30f5ba9c7c5d9f4e7a3a8b4a674e4b6ef789976f"
8330
  dependencies = [
8331
  "getrandom 0.3.4",
8332
  "js-sys",
8333
- "rand 0.9.2",
8334
  "serde_core",
8335
  "wasm-bindgen",
8336
  ]
@@ -8352,48 +8205,12 @@ version = "0.1.1"
8352
  source = "registry+https://github.com/rust-lang/crates.io-index"
8353
  checksum = "ba73ea9cf16a25df0c8caa16c51acb937d5712a8429db78a3ee29d5dcacd3a65"
8354
 
8355
- [[package]]
8356
- name = "value-bag"
8357
- version = "1.12.0"
8358
- source = "registry+https://github.com/rust-lang/crates.io-index"
8359
- checksum = "7ba6f5989077681266825251a52748b8c1d8a4ad098cc37e440103d0ea717fc0"
8360
-
8361
  [[package]]
8362
  name = "vcpkg"
8363
  version = "0.2.15"
8364
  source = "registry+https://github.com/rust-lang/crates.io-index"
8365
  checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426"
8366
 
8367
- [[package]]
8368
- name = "velopack"
8369
- version = "0.0.1298"
8370
- source = "registry+https://github.com/rust-lang/crates.io-index"
8371
- checksum = "8c52ad32d830442c54fad3c888fadcf071d4a086efea38f64924f31ce0353360"
8372
- dependencies = [
8373
- "async-std",
8374
- "bitflags 2.10.0",
8375
- "derivative",
8376
- "glob",
8377
- "lazy_static",
8378
- "libc",
8379
- "log",
8380
- "normpath",
8381
- "rand 0.9.2",
8382
- "regex",
8383
- "semver",
8384
- "serde",
8385
- "serde_json",
8386
- "sha1",
8387
- "sha2",
8388
- "thiserror 2.0.18",
8389
- "ureq 3.1.4",
8390
- "url",
8391
- "uuid",
8392
- "windows 0.61.3",
8393
- "xml",
8394
- "zip 3.0.0",
8395
- ]
8396
-
8397
  [[package]]
8398
  name = "version-compare"
8399
  version = "0.2.1"
@@ -9571,15 +9388,6 @@ dependencies = [
9571
  "pkg-config",
9572
  ]
9573
 
9574
- [[package]]
9575
- name = "xml"
9576
- version = "0.8.20"
9577
- source = "registry+https://github.com/rust-lang/crates.io-index"
9578
- checksum = "ede1c99c55b4b3ad0349018ef0eccbe954ce9c342334410707ee87177fcf2ab4"
9579
- dependencies = [
9580
- "xml-rs",
9581
- ]
9582
-
9583
  [[package]]
9584
  name = "xml-rs"
9585
  version = "0.8.28"
@@ -9666,7 +9474,7 @@ dependencies = [
9666
  "async-trait",
9667
  "blocking",
9668
  "enumflags2",
9669
- "event-listener 5.4.1",
9670
  "futures-core",
9671
  "futures-lite",
9672
  "hex",
@@ -9792,20 +9600,6 @@ dependencies = [
9792
  "syn 2.0.114",
9793
  ]
9794
 
9795
- [[package]]
9796
- name = "zip"
9797
- version = "3.0.0"
9798
- source = "registry+https://github.com/rust-lang/crates.io-index"
9799
- checksum = "12598812502ed0105f607f941c386f43d441e00148fce9dec3ca5ffb0bde9308"
9800
- dependencies = [
9801
- "arbitrary",
9802
- "crc32fast",
9803
- "flate2",
9804
- "indexmap 2.13.0",
9805
- "memchr",
9806
- "zopfli",
9807
- ]
9808
-
9809
  [[package]]
9810
  name = "zip"
9811
  version = "7.2.0"
 
180
  version = "1.4.2"
181
  source = "registry+https://github.com/rust-lang/crates.io-index"
182
  checksum = "c3d036a3c4ab069c7b410a2ce876bd74808d2d0888a82667669f8e783a898bf1"
 
 
 
183
 
184
  [[package]]
185
  name = "arg_enum_proc_macro"
 
250
  source = "registry+https://github.com/rust-lang/crates.io-index"
251
  checksum = "435a87a52755b8f27fcf321ac4f04b2802e337c8c4872923137471ec39c37532"
252
  dependencies = [
253
+ "event-listener",
254
  "event-listener-strategy",
255
  "futures-core",
256
  "pin-project-lite",
257
  ]
258
 
 
 
 
 
 
 
 
 
 
 
 
259
  [[package]]
260
  name = "async-channel"
261
  version = "2.5.0"
 
293
  "futures-lite",
294
  ]
295
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
296
  [[package]]
297
  name = "async-io"
298
  version = "2.6.0"
 
317
  source = "registry+https://github.com/rust-lang/crates.io-index"
318
  checksum = "290f7f2596bd5b78a9fec8088ccd89180d7f9f55b94b0576823bbbdc72ee8311"
319
  dependencies = [
320
+ "event-listener",
321
  "event-listener-strategy",
322
  "pin-project-lite",
323
  ]
 
339
  source = "registry+https://github.com/rust-lang/crates.io-index"
340
  checksum = "fc50921ec0055cdd8a16de48773bfeec5c972598674347252c0399676be7da75"
341
  dependencies = [
342
+ "async-channel",
343
  "async-io",
344
  "async-lock",
345
  "async-signal",
346
  "async-task",
347
  "blocking",
348
  "cfg-if",
349
+ "event-listener",
350
  "futures-lite",
351
  "rustix",
352
  ]
 
380
  "windows-sys 0.61.2",
381
  ]
382
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
383
  [[package]]
384
  name = "async-task"
385
  version = "4.7.1"
 
657
  source = "registry+https://github.com/rust-lang/crates.io-index"
658
  checksum = "e83f8d02be6967315521be875afa792a316e28d57b5a2d401897e2a7921b7f21"
659
  dependencies = [
660
+ "async-channel",
661
  "async-task",
662
  "futures-io",
663
  "futures-lite",
 
807
  "safetensors 0.7.0",
808
  "thiserror 2.0.18",
809
  "yoke 0.8.1",
810
+ "zip",
811
  ]
812
 
813
  [[package]]
 
1526
  "serde_core",
1527
  ]
1528
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1529
  [[package]]
1530
  name = "derive_builder"
1531
  version = "0.20.2"
 
1905
  "num-traits",
1906
  ]
1907
 
 
 
 
 
 
 
1908
  [[package]]
1909
  name = "event-listener"
1910
  version = "5.4.1"
 
1922
  source = "registry+https://github.com/rust-lang/crates.io-index"
1923
  checksum = "8be9f3dfaaffdae2972880079a491a1a8bb7cbed0b8dd7a347f668b4150a3b93"
1924
  dependencies = [
1925
+ "event-listener",
1926
  "pin-project-lite",
1927
  ]
1928
 
 
2797
  source = "registry+https://github.com/rust-lang/crates.io-index"
2798
  checksum = "0cc23270f6e1808e30a928bdc84dea0b9b4136a8bc82338574f23baf47bbd280"
2799
 
 
 
 
 
 
 
 
 
 
 
 
 
2800
  [[package]]
2801
  name = "glow"
2802
  version = "0.16.0"
 
3065
  "serde_json",
3066
  "thiserror 2.0.18",
3067
  "tokio",
3068
+ "ureq",
3069
  "windows-sys 0.60.2",
3070
  ]
3071
 
 
4009
  "tower",
4010
  "tracing",
4011
  "tracing-subscriber",
 
4012
  "windows 0.62.2",
4013
  "windows-sys 0.61.2",
4014
  "winreg",
 
4107
  "tempfile",
4108
  "tokio",
4109
  "tracing",
4110
+ "zip",
4111
  ]
4112
 
4113
  [[package]]
 
4122
  "selectors",
4123
  ]
4124
 
 
 
 
 
 
 
 
 
 
4125
  [[package]]
4126
  name = "lazy_static"
4127
  version = "1.5.0"
 
4271
  version = "0.4.29"
4272
  source = "registry+https://github.com/rust-lang/crates.io-index"
4273
  checksum = "5e5032e24019045c762d3c0f28f5b6b8bbf38563a65908389bf7978758920897"
 
 
 
4274
 
4275
  [[package]]
4276
  name = "loop9"
 
4653
  source = "registry+https://github.com/rust-lang/crates.io-index"
4654
  checksum = "0676bb32a98c1a483ce53e500a81ad9c3d5b3f7c920c28c24e9cb0980d0b5bc8"
4655
 
 
 
 
 
 
 
 
 
 
4656
  [[package]]
4657
  name = "nu-ansi-term"
4658
  version = "0.50.3"
 
8121
  "webpki-roots 0.26.11",
8122
  ]
8123
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
8124
  [[package]]
8125
  name = "url"
8126
  version = "2.5.8"
 
8184
  dependencies = [
8185
  "getrandom 0.3.4",
8186
  "js-sys",
 
8187
  "serde_core",
8188
  "wasm-bindgen",
8189
  ]
 
8205
  source = "registry+https://github.com/rust-lang/crates.io-index"
8206
  checksum = "ba73ea9cf16a25df0c8caa16c51acb937d5712a8429db78a3ee29d5dcacd3a65"
8207
 
 
 
 
 
 
 
8208
  [[package]]
8209
  name = "vcpkg"
8210
  version = "0.2.15"
8211
  source = "registry+https://github.com/rust-lang/crates.io-index"
8212
  checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426"
8213
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
8214
  [[package]]
8215
  name = "version-compare"
8216
  version = "0.2.1"
 
9388
  "pkg-config",
9389
  ]
9390
 
 
 
 
 
 
 
 
 
 
9391
  [[package]]
9392
  name = "xml-rs"
9393
  version = "0.8.28"
 
9474
  "async-trait",
9475
  "blocking",
9476
  "enumflags2",
9477
+ "event-listener",
9478
  "futures-core",
9479
  "futures-lite",
9480
  "hex",
 
9600
  "syn 2.0.114",
9601
  ]
9602
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
9603
  [[package]]
9604
  name = "zip"
9605
  version = "7.2.0"
Cargo.toml CHANGED
@@ -46,7 +46,6 @@ tracing-subscriber = { version = "0.3", features = ["env-filter", "fmt"] }
46
  open = "5.3"
47
  rfd = "0.16"
48
  postcard = { version = "1.0", features = ["use-std"] }
49
- velopack = { version = "0.0", features = ["async"] }
50
  thiserror = "2.0"
51
  tauri = { version = "2.9", features = ["devtools"] }
52
  tauri-build = "2.5"
 
46
  open = "5.3"
47
  rfd = "0.16"
48
  postcard = { version = "1.0", features = ["use-std"] }
 
49
  thiserror = "2.0"
50
  tauri = { version = "2.9", features = ["devtools"] }
51
  tauri-build = "2.5"
koharu/Cargo.toml CHANGED
@@ -42,7 +42,6 @@ blake3 = { workspace = true }
42
  tokio = { workspace = true }
43
  rayon = { workspace = true }
44
  strum = { workspace = true }
45
- velopack = { workspace = true, optional = true }
46
  dirs = { workspace = true }
47
  clap = { workspace = true }
48
  once_cell = { workspace = true }
@@ -65,7 +64,6 @@ winreg = { workspace = true }
65
  cuda = ["koharu-runtime/cuda", "koharu-ml/cuda"]
66
  cudnn = ["koharu-runtime/cudnn", "koharu-ml/cudnn"]
67
  metal = ["koharu-ml/metal"]
68
- bundle = ["velopack"]
69
 
70
  [build-dependencies]
71
  tauri-build = { workspace = true }
 
42
  tokio = { workspace = true }
43
  rayon = { workspace = true }
44
  strum = { workspace = true }
 
45
  dirs = { workspace = true }
46
  clap = { workspace = true }
47
  once_cell = { workspace = true }
 
64
  cuda = ["koharu-runtime/cuda", "koharu-ml/cuda"]
65
  cudnn = ["koharu-runtime/cudnn", "koharu-ml/cudnn"]
66
  metal = ["koharu-ml/metal"]
 
67
 
68
  [build-dependencies]
69
  tauri-build = { workspace = true }
koharu/src/app.rs CHANGED
@@ -133,27 +133,6 @@ fn initialize(headless: bool, _debug: bool) -> Result<()> {
133
  }));
134
  }
135
 
136
- #[cfg(feature = "bundle")]
137
- {
138
- // https://docs.velopack.io/integrating/overview#application-startup
139
- velopack::VelopackApp::build().run();
140
- }
141
-
142
- Ok(())
143
- }
144
-
145
- #[cfg(feature = "bundle")]
146
- async fn update_app() -> Result<()> {
147
- use velopack::{UpdateCheck, UpdateManager, sources::HttpSource};
148
-
149
- let source = HttpSource::new("https://github.com/mayocream/koharu/releases/latest/download");
150
- let um = UpdateManager::new(source, None, None)?;
151
-
152
- if let UpdateCheck::UpdateAvailable(updates) = um.check_for_updates()? {
153
- um.download_updates(&updates, None)?;
154
- um.apply_updates_and_restart(&updates)?;
155
- }
156
-
157
  Ok(())
158
  }
159
 
@@ -222,14 +201,6 @@ pub async fn run() -> Result<()> {
222
  return Ok(());
223
  }
224
 
225
- // Spawn background update check and auto-apply
226
- #[cfg(feature = "bundle")]
227
- tokio::spawn(async move {
228
- if let Err(err) = update_app().await {
229
- tracing::error!("Auto-update failed: {err:#}");
230
- }
231
- });
232
-
233
  let listener = TcpListener::bind(format!("127.0.0.1:{}", port.unwrap_or(0))).await?;
234
  let ws_port = listener.local_addr()?.port();
235
  let shared: SharedResources = Arc::new(tokio::sync::OnceCell::new());
 
133
  }));
134
  }
135
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
136
  Ok(())
137
  }
138
 
 
201
  return Ok(());
202
  }
203
 
 
 
 
 
 
 
 
 
204
  let listener = TcpListener::bind(format!("127.0.0.1:{}", port.unwrap_or(0))).await?;
205
  let ws_port = listener.local_addr()?.port();
206
  let shared: SharedResources = Arc::new(tokio::sync::OnceCell::new());
koharu/tauri.conf.json CHANGED
@@ -33,5 +33,10 @@
33
  "center": true
34
  }
35
  ]
 
 
 
 
 
36
  }
37
  }
 
33
  "center": true
34
  }
35
  ]
36
+ },
37
+ "bundle": {
38
+ "windows": {
39
+ "signCommand": "trusted-signing-cli -e https://eus.codesigning.azure.net -a Mayo -c Hawaii -d Koharu %1"
40
+ }
41
  }
42
  }