fix: resolve all Go and TypeScript linting issues

Address all linting warnings and errors in both backend and frontend code:

**Go (golangci-lint):**
- Add error checking for ignored return values (errcheck)
- Remove unused RPC functions (unused)
- Fix import formatting (goimports)

**TypeScript/React (eslint):**
- Replace all 'any' and 'Function' types with proper type definitions
- Add RpcSendFunction type for consistent JSON-RPC callback signatures
- Fix React Hook exhaustive-deps warnings by adding missing dependencies
- Wrap functions in useCallback where needed to stabilize dependencies
- Remove unused variables and imports
- Remove empty code blocks
- Suppress exhaustive-deps warnings where intentional (with comments)

All linting now passes with 0 errors and 0 warnings.
This commit is contained in:
Alex P 2025-10-08 20:10:22 +03:00
parent cd70efb83f
commit b322255684
29 changed files with 1299 additions and 284 deletions

View File

@ -4,7 +4,7 @@ import "github.com/pion/webrtc/v4"
func handlePermissionDeniedChannel(d *webrtc.DataChannel, message string) {
d.OnOpen(func() {
d.SendText(message + "\r\n")
_ = d.SendText(message + "\r\n")
d.Close()
})
d.OnMessage(func(msg webrtc.DataChannelMessage) {})

999
deploy.log Normal file
View File

@ -0,0 +1,999 @@
▶ Building frontend(B
added 429 packages, and audited 430 packages in 16s
142 packages are looking for funding
run `npm fund` for details
found 0 vulnerabilities
> kvm-ui@2025.10.01.1900 build:device
> tsc && vite build --mode=device --emptyOutDir
vite v7.1.7 building for device...
transforming...
✓ 2995 modules transformed.
rendering chunks...
20:14:45 info [plugin vite:reporter]
20:14:45 info (!) /workspaces/kvm/ui/src/hooks/hidRpc.ts is dynamically imported by /workspaces/kvm/ui/src/hooks/usePermissions.ts but also statically imported by /workspaces/kvm/ui/src/hooks/useHidRpc.ts, /workspaces/kvm/ui/src/hooks/useKeyboard.ts, dynamic import will not move module into another chunk.
20:14:45 info 
computing gzip size...
../static/index.html 2.84 kB │ gzip: 0.95 kB
../static/assets/immutable/netboot-icon-OoGRDuxL.svg 10.60 kB │ gzip: 4.51 kB
../static/assets/immutable/keyboard-and-mouse-connected-CIPI4-KS.png 13.38 kB
../static/assets/immutable/CircularXXWeb-Book-DcdztGze.woff2 68.28 kB
../static/assets/immutable/CircularXXWeb-Thin-CgvRHm5r.woff2 69.73 kB
../static/assets/immutable/CircularXXWeb-ThinItalic-BbeKWZX4.woff2 69.82 kB
../static/assets/immutable/CircularXXWeb-Regular-C2Km8yIq.woff2 70.32 kB
../static/assets/immutable/CircularXXWeb-Italic-D9ZGG85N.woff2 70.87 kB
../static/assets/immutable/CircularXXWeb-BookItalic-Dot97ozQ.woff2 70.92 kB
../static/assets/immutable/CircularXXWeb-Medium-B7cMW5Np.woff2 71.26 kB
../static/assets/immutable/CircularXXWeb-MediumItalic-Cw0wlEIE.woff2 72.14 kB
../static/assets/immutable/CircularXXWeb-BlackItalic-2aNe932P.woff2 72.99 kB
../static/assets/immutable/CircularXXWeb-LightItalic-DkMJsSQn.woff2 73.33 kB
../static/assets/immutable/CircularXXWeb-Light-COmyZsa9.woff2 73.63 kB
../static/assets/immutable/CircularXXWeb-Black-CPoU8bYr.woff2 73.63 kB
../static/assets/immutable/CircularXXWeb-BoldItalic-BY-z05Z9.woff2 73.76 kB
../static/assets/immutable/CircularXXWeb-Bold-6tPVDRzI.woff2 74.18 kB
../static/assets/immutable/CircularXXWeb-ExtraBlackItalic-B8bd8esZ.woff2 75.12 kB
../static/assets/immutable/CircularXXWeb-ExtraBlack-zwQ9rYrv.woff2 76.17 kB
../static/assets/immutable/jetkvm-device-still-ktpTGyfA.png 188.53 kB
../static/assets/immutable/vendor-CCFZcsOx.css 3.55 kB │ gzip: 1.08 kB
../static/assets/immutable/index-3KaWki3G.css 108.89 kB │ gzip: 16.78 kB
../static/assets/immutable/AutoHeight-DNMbSxBi.js 0.40 kB │ gzip: 0.30 kB
../static/assets/immutable/FeatureFlag-CpBy_yIc.js 0.56 kB │ gzip: 0.39 kB
../static/assets/immutable/login-jvmJO2K9.js 0.65 kB │ gzip: 0.40 kB
../static/assets/immutable/signup-Dcu7CrZF.js 0.68 kB │ gzip: 0.40 kB
../static/assets/immutable/devices._id.settings.macros.add-DtgJATY5.js 0.86 kB │ gzip: 0.57 kB
../static/assets/immutable/devices._id.settings.appearance-D-zQ8eOU.js 0.94 kB │ gzip: 0.53 kB
../static/assets/immutable/devices._id.settings.general.reboot-ZolNQeG-.js 1.04 kB │ gzip: 0.54 kB
../static/assets/immutable/UpdateInProgressStatusCard-CxrffonE.js 1.09 kB │ gzip: 0.56 kB
../static/assets/immutable/devices._id.other-session-DOmnPqBd.js 1.12 kB │ gzip: 0.57 kB
../static/assets/immutable/devices.already-adopted-CUKof-fH.js 1.20 kB │ gzip: 0.58 kB
../static/assets/immutable/Checkbox-DfeYpuQt.js 1.27 kB │ gzip: 0.66 kB
../static/assets/immutable/devices._id.settings.keyboard-Brhk8Q16.js 1.66 kB │ gzip: 0.83 kB
../static/assets/immutable/devices._id.settings.general._index-Cojn7PdF.js 1.74 kB │ gzip: 0.77 kB
../static/assets/immutable/ConfirmDialog-ZPsIbN8O.js 1.80 kB │ gzip: 0.81 kB
../static/assets/immutable/devices._id.settings.macros.edit-CKsO8CQU.js 1.95 kB │ gzip: 1.01 kB
../static/assets/immutable/Terminal-DrfJbtdJ.js 3.18 kB │ gzip: 1.63 kB
../static/assets/immutable/AuthLayout-BU_zUyj5.js 3.85 kB │ gzip: 1.73 kB
../static/assets/immutable/devices._id.settings.multi-session-BAaxVISr.js 5.81 kB │ gzip: 1.85 kB
../static/assets/immutable/devices._id.settings.macros-CSWrsivS.js 5.98 kB │ gzip: 2.12 kB
../static/assets/immutable/devices._id.settings.advanced-BKtcXLuC.js 6.01 kB │ gzip: 2.09 kB
../static/assets/immutable/devices._id.settings.access.local-auth-AMVTxQRp.js 6.17 kB │ gzip: 1.54 kB
../static/assets/immutable/devices._id.settings.video-w6XP12DM.js 6.88 kB │ gzip: 2.60 kB
../static/assets/immutable/devices._id.settings-DQ5hSmGr.js 8.77 kB │ gzip: 1.63 kB
../static/assets/immutable/devices._id.settings.mouse-J-WjFYto.js 8.77 kB │ gzip: 3.05 kB
../static/assets/immutable/connectionStats-BTh-HMMJ.js 8.92 kB │ gzip: 3.57 kB
../static/assets/immutable/devices._id.settings.general.update-DSe-tEcb.js 9.70 kB │ gzip: 2.49 kB
../static/assets/immutable/MacroForm-DlAcnh76.js 10.00 kB │ gzip: 3.55 kB
../static/assets/immutable/devices._id.settings.hardware-BJuy5KhB.js 10.82 kB │ gzip: 3.17 kB
../static/assets/immutable/devices._id.settings.network-PcgdKo-I.js 15.47 kB │ gzip: 3.30 kB
../static/assets/immutable/devices._id.mount-eRr7fRnt.js 32.30 kB │ gzip: 14.11 kB
../static/assets/immutable/index-ITvbnH2t.js 249.49 kB │ gzip: 64.18 kB
../static/assets/immutable/vendor-C8gpwofI.js 1,568.17 kB │ gzip: 469.07 kB
20:14:46 info 
20:14:46 info (!) Some chunks are larger than 500 kB after minification. Consider:
20:14:46 info - Using dynamic import() to code-split the application
20:14:46 info - Use build.rollupOptions.output.manualChunks to improve chunking: https://rollupjs.org/configuration-options/#output-manualchunks
20:14:46 info - Adjust chunk size limit for this warning via build.chunkSizeWarningLimit.
✓ built in 9.00s
20:14:46 info ../static/favicon.ico: 92.7% -- created ../static/favicon.ico.gz
20:14:46 info ../static/index.html: 67.0% -- created ../static/index.html.gz
20:14:46 info ../static/web-app-manifest-192x192.png: -0.3% -- created ../static/web-app-manifest-192x192.png.gz
20:14:46 info ../static/apple-touch-icon.png: -0.3% -- created ../static/apple-touch-icon.png.gz
20:14:46 info ../static/favicon.png: -0.4% -- created ../static/favicon.png.gz
20:14:46 info ../static/web-app-manifest-512x512.png: 5.1% -- created ../static/web-app-manifest-512x512.png.gz
20:14:46 info ../static/favicon-96x96.png: 0.0% -- created ../static/favicon-96x96.png.gz
20:14:46 info ../static/sse.html: 77.3% -- created ../static/sse.html.gz
20:14:46 info ../static/fonts/CircularXXWeb-Regular.woff2: 0.1% -- created ../static/fonts/CircularXXWeb-Regular.woff2.gz
20:14:46 info ../static/fonts/CircularXXWeb-ExtraBlackItalic.woff2: 0.0% -- created ../static/fonts/CircularXXWeb-ExtraBlackItalic.woff2.gz
20:14:46 info ../static/fonts/CircularXXWeb-BookItalic.woff2: 0.1% -- created ../static/fonts/CircularXXWeb-BookItalic.woff2.gz
20:14:46 info ../static/fonts/CircularXXWeb-Black.woff2: 0.1% -- created ../static/fonts/CircularXXWeb-Black.woff2.gz
20:14:46 info ../static/fonts/CircularXXWeb-Medium.woff2: 0.1% -- created ../static/fonts/CircularXXWeb-Medium.woff2.gz
20:14:46 info ../static/fonts/CircularXXWeb-BlackItalic.woff2: 0.2% -- created ../static/fonts/CircularXXWeb-BlackItalic.woff2.gz
20:14:46 info ../static/fonts/CircularXXWeb-Book.woff2: 0.1% -- created ../static/fonts/CircularXXWeb-Book.woff2.gz
20:14:46 info ../static/fonts/CircularXXWeb-Light.woff2: 0.1% -- created ../static/fonts/CircularXXWeb-Light.woff2.gz
20:14:46 info ../static/fonts/CircularXXWeb-Bold.woff2: 0.1% -- created ../static/fonts/CircularXXWeb-Bold.woff2.gz
20:14:46 info ../static/fonts/CircularXXWeb-MediumItalic.woff2: 0.0% -- created ../static/fonts/CircularXXWeb-MediumItalic.woff2.gz
20:14:47 info ../static/fonts/CircularXXWeb-Thin.woff2: 0.2% -- created ../static/fonts/CircularXXWeb-Thin.woff2.gz
20:14:47 info ../static/fonts/CircularXXWeb-LightItalic.woff2: 0.1% -- created ../static/fonts/CircularXXWeb-LightItalic.woff2.gz
20:14:47 info ../static/fonts/CircularXXWeb-Italic.woff2: 0.1% -- created ../static/fonts/CircularXXWeb-Italic.woff2.gz
20:14:47 info ../static/fonts/CircularXXWeb-BoldItalic.woff2: 0.1% -- created ../static/fonts/CircularXXWeb-BoldItalic.woff2.gz
20:14:47 info ../static/fonts/CircularXXWeb-ExtraBlack.woff2: 0.1% -- created ../static/fonts/CircularXXWeb-ExtraBlack.woff2.gz
20:14:47 info ../static/fonts/CircularXXWeb-ThinItalic.woff2: 0.2% -- created ../static/fonts/CircularXXWeb-ThinItalic.woff2.gz
20:14:47 info ../static/fonts/fonts.css: 89.4% -- created ../static/fonts/fonts.css.gz
20:14:47 info ../static/assets/immutable/devices._id.settings.video-w6XP12DM.js: 62.8% -- created ../static/assets/immutable/devices._id.settings.video-w6XP12DM.js.gz
20:14:47 info ../static/assets/immutable/vendor-C8gpwofI.js: 70.3% -- created ../static/assets/immutable/vendor-C8gpwofI.js.gz
20:14:47 info ../static/assets/immutable/CircularXXWeb-Medium-B7cMW5Np.woff2: 0.1% -- created ../static/assets/immutable/CircularXXWeb-Medium-B7cMW5Np.woff2.gz
20:14:47 info ../static/assets/immutable/devices._id.settings.multi-session-BAaxVISr.js: 68.4% -- created ../static/assets/immutable/devices._id.settings.multi-session-BAaxVISr.js.gz
20:14:47 info ../static/assets/immutable/CircularXXWeb-Italic-D9ZGG85N.woff2: 0.1% -- created ../static/assets/immutable/CircularXXWeb-Italic-D9ZGG85N.woff2.gz
20:14:47 info ../static/assets/immutable/index-ITvbnH2t.js: 74.6% -- created ../static/assets/immutable/index-ITvbnH2t.js.gz
20:14:47 info ../static/assets/immutable/jetkvm-device-still-ktpTGyfA.png: 0.6% -- created ../static/assets/immutable/jetkvm-device-still-ktpTGyfA.png.gz
20:14:47 info ../static/assets/immutable/AutoHeight-DNMbSxBi.js: 29.0% -- created ../static/assets/immutable/AutoHeight-DNMbSxBi.js.gz
20:14:47 info ../static/assets/immutable/AuthLayout-BU_zUyj5.js: 55.6% -- created ../static/assets/immutable/AuthLayout-BU_zUyj5.js.gz
20:14:47 info ../static/assets/immutable/MacroForm-DlAcnh76.js: 64.8% -- created ../static/assets/immutable/MacroForm-DlAcnh76.js.gz
20:14:47 info ../static/assets/immutable/devices._id.settings.network-PcgdKo-I.js: 78.8% -- created ../static/assets/immutable/devices._id.settings.network-PcgdKo-I.js.gz
20:14:47 info ../static/assets/immutable/index-3KaWki3G.css: 84.9% -- created ../static/assets/immutable/index-3KaWki3G.css.gz
20:14:47 info ../static/assets/immutable/FeatureFlag-CpBy_yIc.js: 34.8% -- created ../static/assets/immutable/FeatureFlag-CpBy_yIc.js.gz
20:14:47 info ../static/assets/immutable/CircularXXWeb-Bold-6tPVDRzI.woff2: 0.1% -- created ../static/assets/immutable/CircularXXWeb-Bold-6tPVDRzI.woff2.gz
20:14:47 info ../static/assets/immutable/devices._id.settings.macros.add-DtgJATY5.js: 36.3% -- created ../static/assets/immutable/devices._id.settings.macros.add-DtgJATY5.js.gz
20:14:47 info ../static/assets/immutable/login-jvmJO2K9.js: 41.1% -- created ../static/assets/immutable/login-jvmJO2K9.js.gz
20:14:47 info ../static/assets/immutable/devices.already-adopted-CUKof-fH.js: 52.5% -- created ../static/assets/immutable/devices.already-adopted-CUKof-fH.js.gz
20:14:47 info ../static/assets/immutable/devices._id.mount-eRr7fRnt.js: 56.6% -- created ../static/assets/immutable/devices._id.mount-eRr7fRnt.js.gz
20:14:48 info ../static/assets/immutable/CircularXXWeb-Regular-C2Km8yIq.woff2: 0.1% -- created ../static/assets/immutable/CircularXXWeb-Regular-C2Km8yIq.woff2.gz
20:14:48 info ../static/assets/immutable/devices._id.settings.general.reboot-ZolNQeG-.js: 49.8% -- created ../static/assets/immutable/devices._id.settings.general.reboot-ZolNQeG-.js.gz
20:14:48 info ../static/assets/immutable/CircularXXWeb-LightItalic-DkMJsSQn.woff2: 0.1% -- created ../static/assets/immutable/CircularXXWeb-LightItalic-DkMJsSQn.woff2.gz
20:14:48 info ../static/assets/immutable/signup-Dcu7CrZF.js: 43.2% -- created ../static/assets/immutable/signup-Dcu7CrZF.js.gz
20:14:48 info ../static/assets/immutable/devices._id.settings.macros.edit-CKsO8CQU.js: 48.8% -- created ../static/assets/immutable/devices._id.settings.macros.edit-CKsO8CQU.js.gz
20:14:48 info ../static/assets/immutable/devices._id.settings.mouse-J-WjFYto.js: 65.7% -- created ../static/assets/immutable/devices._id.settings.mouse-J-WjFYto.js.gz
20:14:48 info ../static/assets/immutable/CircularXXWeb-Light-COmyZsa9.woff2: 0.1% -- created ../static/assets/immutable/CircularXXWeb-Light-COmyZsa9.woff2.gz
20:14:48 info ../static/assets/immutable/devices._id.settings.advanced-BKtcXLuC.js: 65.6% -- created ../static/assets/immutable/devices._id.settings.advanced-BKtcXLuC.js.gz
20:14:48 info ../static/assets/immutable/CircularXXWeb-BlackItalic-2aNe932P.woff2: 0.2% -- created ../static/assets/immutable/CircularXXWeb-BlackItalic-2aNe932P.woff2.gz
20:14:48 info ../static/assets/immutable/Terminal-DrfJbtdJ.js: 49.2% -- created ../static/assets/immutable/Terminal-DrfJbtdJ.js.gz
20:14:48 info ../static/assets/immutable/devices._id.other-session-DOmnPqBd.js: 50.2% -- created ../static/assets/immutable/devices._id.other-session-DOmnPqBd.js.gz
20:14:48 info ../static/assets/immutable/Checkbox-DfeYpuQt.js: 49.7% -- created ../static/assets/immutable/Checkbox-DfeYpuQt.js.gz
20:14:48 info ../static/assets/immutable/devices._id.settings.hardware-BJuy5KhB.js: 70.8% -- created ../static/assets/immutable/devices._id.settings.hardware-BJuy5KhB.js.gz
20:14:48 info ../static/assets/immutable/connectionStats-BTh-HMMJ.js: 60.5% -- created ../static/assets/immutable/connectionStats-BTh-HMMJ.js.gz
20:14:48 info ../static/assets/immutable/devices._id.settings.keyboard-Brhk8Q16.js: 50.8% -- created ../static/assets/immutable/devices._id.settings.keyboard-Brhk8Q16.js.gz
20:14:48 info ../static/assets/immutable/CircularXXWeb-ThinItalic-BbeKWZX4.woff2: 0.2% -- created ../static/assets/immutable/CircularXXWeb-ThinItalic-BbeKWZX4.woff2.gz
20:14:48 info ../static/assets/immutable/CircularXXWeb-ExtraBlackItalic-B8bd8esZ.woff2: 0.0% -- created ../static/assets/immutable/CircularXXWeb-ExtraBlackItalic-B8bd8esZ.woff2.gz
20:14:48 info ../static/assets/immutable/CircularXXWeb-MediumItalic-Cw0wlEIE.woff2: 0.0% -- created ../static/assets/immutable/CircularXXWeb-MediumItalic-Cw0wlEIE.woff2.gz
20:14:48 info ../static/assets/immutable/CircularXXWeb-BoldItalic-BY-z05Z9.woff2: 0.1% -- created ../static/assets/immutable/CircularXXWeb-BoldItalic-BY-z05Z9.woff2.gz
20:14:48 info ../static/assets/immutable/devices._id.settings.general._index-Cojn7PdF.js: 56.6% -- created ../static/assets/immutable/devices._id.settings.general._index-Cojn7PdF.js.gz
20:14:48 info ../static/assets/immutable/CircularXXWeb-Black-CPoU8bYr.woff2: 0.1% -- created ../static/assets/immutable/CircularXXWeb-Black-CPoU8bYr.woff2.gz
20:14:48 info ../static/assets/immutable/devices._id.settings-DQ5hSmGr.js: 81.6% -- created ../static/assets/immutable/devices._id.settings-DQ5hSmGr.js.gz
20:14:48 info ../static/assets/immutable/ConfirmDialog-ZPsIbN8O.js: 56.3% -- created ../static/assets/immutable/ConfirmDialog-ZPsIbN8O.js.gz
20:14:48 info ../static/assets/immutable/UpdateInProgressStatusCard-CxrffonE.js: 50.6% -- created ../static/assets/immutable/UpdateInProgressStatusCard-CxrffonE.js.gz
20:14:48 info ../static/assets/immutable/devices._id.settings.macros-CSWrsivS.js: 65.0% -- created ../static/assets/immutable/devices._id.settings.macros-CSWrsivS.js.gz
20:14:48 info ../static/assets/immutable/devices._id.settings.access.local-auth-AMVTxQRp.js: 75.3% -- created ../static/assets/immutable/devices._id.settings.access.local-auth-AMVTxQRp.js.gz
20:14:49 info ../static/assets/immutable/devices._id.settings.general.update-DSe-tEcb.js: 74.6% -- created ../static/assets/immutable/devices._id.settings.general.update-DSe-tEcb.js.gz
20:14:49 info ../static/assets/immutable/CircularXXWeb-ExtraBlack-zwQ9rYrv.woff2: 0.1% -- created ../static/assets/immutable/CircularXXWeb-ExtraBlack-zwQ9rYrv.woff2.gz
20:14:49 info ../static/assets/immutable/CircularXXWeb-Thin-CgvRHm5r.woff2: 0.2% -- created ../static/assets/immutable/CircularXXWeb-Thin-CgvRHm5r.woff2.gz
20:14:49 info ../static/assets/immutable/devices._id.settings.appearance-D-zQ8eOU.js: 44.7% -- created ../static/assets/immutable/devices._id.settings.appearance-D-zQ8eOU.js.gz
20:14:49 info ../static/assets/immutable/netboot-icon-OoGRDuxL.svg: 56.5% -- created ../static/assets/immutable/netboot-icon-OoGRDuxL.svg.gz
20:14:49 info ../static/assets/immutable/CircularXXWeb-BookItalic-Dot97ozQ.woff2: 0.1% -- created ../static/assets/immutable/CircularXXWeb-BookItalic-Dot97ozQ.woff2.gz
20:14:49 info ../static/assets/immutable/vendor-CCFZcsOx.css: 70.1% -- created ../static/assets/immutable/vendor-CCFZcsOx.css.gz
20:14:49 info ../static/assets/immutable/CircularXXWeb-Book-DcdztGze.woff2: 0.1% -- created ../static/assets/immutable/CircularXXWeb-Book-DcdztGze.woff2.gz
20:14:49 info ../static/assets/immutable/keyboard-and-mouse-connected-CIPI4-KS.png: 12.6% -- created ../static/assets/immutable/keyboard-and-mouse-connected-CIPI4-KS.png.gz
20:14:49 info ../static/jetkvm.svg: 72.2% -- created ../static/jetkvm.svg.gz
20:14:49 info ../static/favicon.svg: 70.1% -- created ../static/favicon.svg.gz
▶ Building release binary(B
▶ Building the project in host ...(B
20:14:49 info + make build_release SKIP_NATIVE_IF_EXISTS=0 SKIP_UI_BUILD=1
Skipping frontend build...
Building native...
▶ Generating UI index(B
ui_index.c has been generated successfully.
▶ Building native library(B
Re-run cmake no build system arguments
-- Using defconfig: /workspaces/kvm/internal/native/cgo/lvgl_defconfig
-- Converted to absolute path: /workspaces/kvm/internal/native/cgo/lvgl_defconfig
['/workspaces/kvm/internal/native/cgo/build/_deps/lvgl-src/scripts/kconfig.py', '/workspaces/kvm/internal/native/cgo/build/_deps/lvgl-src/Kconfig', '/workspaces/kvm/internal/native/cgo/build/_deps/lvgl-src/.config', '/workspaces/kvm/internal/native/cgo/build/_deps/lvgl-build/autoconf.h', '/workspaces/kvm/internal/native/cgo/build/_deps/lvgl-build/kconfig_list', '/workspaces/kvm/internal/native/cgo/lvgl_defconfig']
Parsing /workspaces/kvm/internal/native/cgo/build/_deps/lvgl-src/Kconfig
Loaded configuration '/workspaces/kvm/internal/native/cgo/lvgl_defconfig'
No change to configuration in '/workspaces/kvm/internal/native/cgo/build/_deps/lvgl-src/.config'
No change to Kconfig header in '/workspaces/kvm/internal/native/cgo/build/_deps/lvgl-build/autoconf.h'
Failed to locate pcpp - installing it
PCPP is already installed in venv
Preprocessing completed. Output saved to /workspaces/kvm/internal/native/cgo/build/_deps/lvgl-build/tmp.h
Expanded configuration header saved to /workspaces/kvm/internal/native/cgo/build/_deps/lvgl-build/lv_conf_expanded.h
Temporary preprocessed file /workspaces/kvm/internal/native/cgo/build/_deps/lvgl-build/tmp.h removed.
-- Enabling the building of ThorVG internal
-- Configuring done (3.8s)
-- Generating done (0.3s)
-- Build files have been written to: /workspaces/kvm/internal/native/cgo/build
▶ Copying built library and header files(B
gmake[1]: Entering directory '/workspaces/kvm/internal/native/cgo/build'
20:14:55 info gmake[1]: Warning: File 'Makefile' has modification time 0.11 s in the future
20:14:56 info gmake[3]: Warning: File '_deps/lvgl-build/CMakeFiles/lvgl_thorvg.dir/compiler_depend.make' has modification time 0.32 s in the future
20:14:56 info gmake[3]: warning: Clock skew detected. Your build may be incomplete.
[ 7%] Built target lvgl_thorvg
[ 51%] Built target lvgl
[ 52%] Building C object CMakeFiles/jknative.dir/ui_index.c.o
[ 52%] Linking CXX static library libjknative.a
[100%] Built target jknative
Install the project...
-- Install configuration: "Release"
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/misc
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/misc/lv_templ.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/misc/lv_async.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/misc/lv_timer.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/misc/lv_rb.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/misc/lv_math.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/misc/lv_anim.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/misc/cache
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/misc/cache/instance
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/misc/cache/instance/lv_image_header_cache.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/misc/cache/instance/lv_image_cache.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/misc/cache/instance/lv_cache_instance.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/misc/cache/class
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/misc/cache/class/lv_cache_class.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/misc/cache/class/lv_cache_lru_ll.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/misc/cache/class/lv_cache_lru_rb.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/misc/cache/lv_cache_entry.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/misc/cache/lv_cache.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/misc/lv_profiler_builtin.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/misc/lv_array.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/misc/lv_bidi.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/misc/lv_grad.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/misc/lv_palette.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/misc/lv_assert.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/misc/lv_utils.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/misc/lv_types.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/misc/lv_event.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/misc/lv_style_gen.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/misc/lv_iter.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/misc/lv_style.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/misc/lv_anim_timeline.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/misc/lv_text_ap.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/misc/lv_circle_buf.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/misc/lv_text.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/misc/lv_fs.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/misc/lv_color_op.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/misc/lv_area.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/misc/lv_log.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/misc/lv_lru.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/misc/lv_profiler.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/misc/lv_matrix.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/misc/lv_ll.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/misc/lv_tree.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/misc/lv_color.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/drivers
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/drivers/qnx
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/drivers/qnx/lv_qnx.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/drivers/uefi
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/drivers/uefi/lv_uefi_display.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/drivers/uefi/lv_uefi_gnu_efi.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/drivers/uefi/lv_uefi_edk2.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/drivers/uefi/lv_uefi_std_wrapper.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/drivers/uefi/lv_uefi_indev.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/drivers/uefi/lv_uefi.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/drivers/uefi/lv_uefi_context.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/drivers/evdev
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/drivers/evdev/lv_evdev.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/drivers/libinput
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/drivers/libinput/lv_xkb.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/drivers/libinput/lv_libinput.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/drivers/lv_drivers.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/drivers/wayland
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/drivers/sdl
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/drivers/sdl/lv_sdl_keyboard.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/drivers/sdl/lv_sdl_window.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/drivers/sdl/lv_sdl_mousewheel.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/drivers/sdl/lv_sdl_mouse.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/drivers/x11
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/drivers/x11/lv_x11.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/drivers/display
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/drivers/display/st7796
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/drivers/display/st7796/lv_st7796.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/drivers/display/drm
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/drivers/display/drm/lv_linux_drm.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/drivers/display/fb
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/drivers/display/fb/lv_linux_fbdev.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/drivers/display/renesas_glcdc
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/drivers/display/renesas_glcdc/lv_renesas_glcdc.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/drivers/display/st7735
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/drivers/display/st7735/lv_st7735.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/drivers/display/ft81x
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/drivers/display/ft81x/lv_ft81x_defines.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/drivers/display/ft81x/lv_ft81x.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/drivers/display/lcd
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/drivers/display/lcd/lv_lcd_generic_mipi.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/drivers/display/st_ltdc
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/drivers/display/st_ltdc/lv_st_ltdc.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/drivers/display/ili9341
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/drivers/display/ili9341/lv_ili9341.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/drivers/display/tft_espi
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/drivers/display/tft_espi/lv_tft_espi.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/drivers/display/st7789
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/drivers/display/st7789/lv_st7789.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/drivers/glfw
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/drivers/windows
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/drivers/nuttx
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/drivers/nuttx/lv_nuttx_entry.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/drivers/nuttx/lv_nuttx_profiler.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/drivers/nuttx/lv_nuttx_cache.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/drivers/nuttx/lv_nuttx_image_cache.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/drivers/nuttx/lv_nuttx_lcd.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/drivers/nuttx/lv_nuttx_libuv.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/drivers/nuttx/lv_nuttx_fbdev.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/drivers/nuttx/lv_nuttx_touchscreen.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/core
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/core/lv_obj_style.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/core/lv_group.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/core/lv_obj_event.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/core/lv_obj_property.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/core/lv_obj_style_gen.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/core/lv_obj.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/core/lv_obj_pos.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/core/lv_obj_scroll.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/core/lv_obj_tree.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/core/lv_obj_class.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/core/lv_refr.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/core/lv_global.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/core/lv_obj_draw.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/lv_api_map_v9_1.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/lv_init.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/lv_api_map_v8.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/osal
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/osal/lv_cmsis_rtos2.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/osal/lv_pthread.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/osal/lv_mqx.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/osal/lv_sdl2.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/osal/lv_os.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/osal/lv_windows.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/osal/lv_rtthread.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/osal/lv_freertos.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/osal/lv_os_none.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/lv_conf_kconfig.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/others
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/others/snapshot
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/others/snapshot/lv_snapshot.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/others/ime
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/others/ime/lv_ime_pinyin.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/others/vg_lite_tvg
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/others/vg_lite_tvg/vg_lite.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/others/test
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/others/test/lv_test_display.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/others/test/lv_test_indev.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/others/test/lv_test_indev_gesture.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/others/test/lv_test_helpers.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/others/test/lv_test_screenshot_compare.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/others/test/lv_test.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/others/file_explorer
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/others/file_explorer/lv_file_explorer.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/others/observer
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/others/observer/lv_observer.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/others/xml
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/others/xml/lv_xml_widget.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/others/xml/parsers
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/others/xml/parsers/lv_xml_checkbox_parser.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/others/xml/parsers/lv_xml_dropdown_parser.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/others/xml/parsers/lv_xml_keyboard_parser.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/others/xml/parsers/lv_xml_textarea_parser.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/others/xml/parsers/lv_xml_canvas_parser.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/others/xml/parsers/lv_xml_chart_parser.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/others/xml/parsers/lv_xml_slider_parser.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/others/xml/parsers/lv_xml_spangroup_parser.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/others/xml/parsers/lv_xml_tabview_parser.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/others/xml/parsers/lv_xml_obj_parser.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/others/xml/parsers/lv_xml_calendar_parser.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/others/xml/parsers/lv_xml_roller_parser.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/others/xml/parsers/lv_xml_table_parser.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/others/xml/parsers/lv_xml_label_parser.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/others/xml/parsers/lv_xml_image_parser.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/others/xml/parsers/lv_xml_event_parser.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/others/xml/parsers/lv_xml_buttonmatrix_parser.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/others/xml/parsers/lv_xml_button_parser.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/others/xml/parsers/lv_xml_scale_parser.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/others/xml/parsers/lv_xml_arc_parser.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/others/xml/parsers/lv_xml_bar_parser.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/others/xml/lv_xml_base_types.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/others/xml/lv_xml_component.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/others/xml/lv_xml_parser.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/others/xml/lv_xml_utils.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/others/xml/lv_xml_update.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/others/xml/lv_xml.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/others/xml/lv_xml_style.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/others/fragment
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/others/fragment/lv_fragment.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/others/gridnav
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/others/gridnav/lv_gridnav.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/others/monkey
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/others/monkey/lv_monkey.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/others/sysmon
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/others/sysmon/lv_sysmon.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/others/imgfont
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/others/imgfont/lv_imgfont.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/others/font_manager
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/others/font_manager/lv_font_manager.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/others/font_manager/lv_font_manager_recycle.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/svg
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/svg/lv_svg.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/svg/lv_svg_parser.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/svg/lv_svg_decoder.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/svg/lv_svg_token.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/svg/lv_svg_render.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/thorvg
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/thorvg/tvgSvgUtil.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/thorvg/tvgLottieProperty.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/thorvg/tvgLottieInterpolator.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/thorvg/tvgFill.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/thorvg/tvgLottieModifier.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/thorvg/tvgLottieModel.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/thorvg/tvgArray.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/thorvg/tvgLoadModule.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/thorvg/tvgSvgLoaderCommon.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/thorvg/thorvg.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/thorvg/tvgPicture.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/thorvg/config.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/thorvg/tvgLoader.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/thorvg/tvgCommon.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/thorvg/tvgText.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/thorvg/tvgSwRasterAvx.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/thorvg/tvgLottieParserHandler.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/thorvg/thorvg_capi.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/thorvg/tvgScene.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/thorvg/tvgSwRasterTexmap.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/thorvg/tvgRender.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/thorvg/tvgLock.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/thorvg/tvgLottieParser.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/thorvg/tvgPaint.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/thorvg/tvgLottieBuilder.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/thorvg/tvgStr.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/thorvg/tvgCanvas.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/thorvg/tvgSwRasterC.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/thorvg/tvgTaskScheduler.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/thorvg/tvgLottieExpressions.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/thorvg/tvgLottieLoader.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/thorvg/tvgIteratorAccessor.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/thorvg/tvgLottieCommon.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/thorvg/tvgSvgPath.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/thorvg/tvgInlist.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/thorvg/tvgSvgSceneBuilder.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/thorvg/tvgSvgLoader.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/thorvg/tvgMath.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/thorvg/tvgSwRenderer.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/thorvg/tvgRawLoader.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/thorvg/rapidjson
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/thorvg/rapidjson/fwd.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/thorvg/rapidjson/memorystream.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/thorvg/rapidjson/reader.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/thorvg/rapidjson/prettywriter.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/thorvg/rapidjson/ostreamwrapper.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/thorvg/rapidjson/encodedstream.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/thorvg/rapidjson/filereadstream.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/thorvg/rapidjson/cursorstreamwrapper.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/thorvg/rapidjson/istreamwrapper.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/thorvg/rapidjson/uri.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/thorvg/rapidjson/stringbuffer.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/thorvg/rapidjson/internal
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/thorvg/rapidjson/internal/ieee754.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/thorvg/rapidjson/internal/strtod.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/thorvg/rapidjson/internal/swap.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/thorvg/rapidjson/internal/regex.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/thorvg/rapidjson/internal/diyfp.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/thorvg/rapidjson/internal/biginteger.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/thorvg/rapidjson/internal/strfunc.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/thorvg/rapidjson/internal/itoa.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/thorvg/rapidjson/internal/stack.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/thorvg/rapidjson/internal/dtoa.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/thorvg/rapidjson/internal/clzll.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/thorvg/rapidjson/internal/meta.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/thorvg/rapidjson/internal/pow10.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/thorvg/rapidjson/encodings.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/thorvg/rapidjson/schema.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/thorvg/rapidjson/stream.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/thorvg/rapidjson/filewritestream.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/thorvg/rapidjson/rapidjson.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/thorvg/rapidjson/document.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/thorvg/rapidjson/allocators.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/thorvg/rapidjson/writer.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/thorvg/rapidjson/error
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/thorvg/rapidjson/error/error.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/thorvg/rapidjson/error/en.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/thorvg/rapidjson/memorybuffer.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/thorvg/rapidjson/pointer.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/thorvg/rapidjson/msinttypes
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/thorvg/rapidjson/msinttypes/inttypes.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/thorvg/rapidjson/msinttypes/stdint.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/thorvg/tvgShape.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/thorvg/tvgSaveModule.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/thorvg/tvgBinaryDesc.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/thorvg/thorvg_lottie.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/thorvg/tvgSwRasterNeon.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/thorvg/tvgAnimation.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/thorvg/tvgSvgCssStyle.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/thorvg/tvgLottieRenderPooler.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/thorvg/tvgXmlParser.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/thorvg/tvgFrameModule.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/thorvg/tvgCompressor.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/thorvg/tvgSwCommon.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/libjpeg_turbo
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/libjpeg_turbo/lv_libjpeg_turbo.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/ffmpeg
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/ffmpeg/lv_ffmpeg.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/libpng
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/libpng/lv_libpng.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/tjpgd
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/tjpgd/tjpgd.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/tjpgd/tjpgdcnf.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/tjpgd/lv_tjpgd.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/tiny_ttf
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/tiny_ttf/stb_truetype_htcw.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/tiny_ttf/stb_rect_pack.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/tiny_ttf/lv_tiny_ttf.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/freetype
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/freetype/ftoption.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/freetype/lv_freetype.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/freetype/ftmodule.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/expat
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/expat/expat_config.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/expat/internal.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/expat/xmltok.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/expat/nametab.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/expat/siphash.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/expat/latin1tab.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/expat/expat_external.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/expat/winconfig.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/expat/xmltok_impl.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/expat/utf8tab.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/expat/ascii.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/expat/xmlrole.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/expat/expat.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/expat/asciitab.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/expat/iasciitab.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/lz4
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/lz4/lz4.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/qrcode
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/qrcode/lv_qrcode.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/qrcode/qrcodegen.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/rle
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/rle/lv_rle.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/lodepng
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/lodepng/lodepng.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/lodepng/lv_lodepng.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/bin_decoder
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/bin_decoder/lv_bin_decoder.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/rlottie
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/rlottie/lv_rlottie.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/fsdrv
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/fsdrv/lv_fsdrv.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/bmp
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/bmp/lv_bmp.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/barcode
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/barcode/code128.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/barcode/lv_barcode.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/gif
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/gif/gifdec_mve.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/gif/lv_gif.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/gif/gifdec.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/lv_api_map_v9_0.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/lv_conf_internal.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/layouts
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/layouts/lv_layout.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/layouts/flex
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/layouts/flex/lv_flex.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/layouts/grid
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/layouts/grid/lv_grid.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/stdlib
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/stdlib/lv_sprintf.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/stdlib/uefi
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/stdlib/clib
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/stdlib/micropython
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/stdlib/lv_string.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/stdlib/lv_mem.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/stdlib/rtthread
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/stdlib/builtin
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/stdlib/builtin/lv_tlsf.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/indev
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/indev/lv_indev_gesture.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/indev/lv_indev_scroll.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/indev/lv_indev.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/display
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/display/lv_display.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/font
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/font/lv_binfont_loader.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/font/lv_font_fmt_txt.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/font/lv_symbol_def.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/font/lv_font.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/lvgl.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/themes
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/themes/default
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/themes/default/lv_theme_default.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/themes/simple
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/themes/simple/lv_theme_simple.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/themes/lv_theme.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/themes/mono
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/themes/mono/lv_theme_mono.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/draw
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/draw/sw
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/draw/sw/lv_draw_sw.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/draw/sw/lv_draw_sw_grad.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/draw/sw/lv_draw_sw_mask.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/draw/sw/blend
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/draw/sw/blend/lv_draw_sw_blend_to_l8.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/draw/sw/blend/helium
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/draw/sw/blend/helium/lv_blend_helium.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/draw/sw/blend/lv_draw_sw_blend_to_al88.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/draw/sw/blend/lv_draw_sw_blend_to_rgb888.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/draw/sw/blend/lv_draw_sw_blend_to_i1.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/draw/sw/blend/lv_draw_sw_blend_to_rgb565_swapped.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/draw/sw/blend/arm2d
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/draw/sw/blend/arm2d/lv_blend_arm2d.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/draw/sw/blend/lv_draw_sw_blend_to_rgb565.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/draw/sw/blend/lv_draw_sw_blend_to_argb8888_premultiplied.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/draw/sw/blend/neon
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/draw/sw/blend/neon/lv_blend_neon.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/draw/sw/blend/lv_draw_sw_blend.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/draw/sw/blend/lv_draw_sw_blend_to_argb8888.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/draw/sw/arm2d
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/draw/sw/arm2d/lv_draw_sw_arm2d.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/draw/sw/arm2d/lv_draw_sw_helium.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/draw/sw/lv_draw_sw_utils.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/draw/lv_image_decoder.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/draw/nxp
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/draw/nxp/g2d
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/draw/nxp/g2d/lv_g2d_utils.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/draw/nxp/g2d/lv_g2d_buf_map.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/draw/nxp/g2d/lv_draw_g2d.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/draw/nxp/pxp
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/draw/nxp/pxp/lv_pxp_utils.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/draw/nxp/pxp/lv_pxp_cfg.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/draw/nxp/pxp/lv_draw_pxp.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/draw/nxp/pxp/lv_pxp_osa.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/draw/nxp/vglite
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/draw/nxp/vglite/lv_vglite_matrix.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/draw/nxp/vglite/lv_vglite_utils.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/draw/nxp/vglite/lv_draw_vglite.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/draw/nxp/vglite/lv_vglite_buf.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/draw/nxp/vglite/lv_vglite_path.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/draw/lv_draw_label.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/draw/lv_draw_mask.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/draw/lv_image_dsc.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/draw/lv_draw.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/draw/lv_draw_triangle.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/draw/lv_draw_vector.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/draw/lv_draw_3d.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/draw/lv_draw_line.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/draw/sdl
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/draw/sdl/lv_draw_sdl.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/draw/vg_lite
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/draw/vg_lite/lv_draw_vg_lite.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/draw/vg_lite/lv_vg_lite_path.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/draw/vg_lite/lv_draw_vg_lite_type.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/draw/vg_lite/lv_vg_lite_utils.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/draw/vg_lite/lv_vg_lite_math.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/draw/vg_lite/lv_vg_lite_stroke.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/draw/vg_lite/lv_vg_lite_decoder.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/draw/vg_lite/lv_vg_lite_pending.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/draw/vg_lite/lv_vg_lite_grad.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/draw/lv_draw_image.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/draw/nema_gfx
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/draw/dma2d
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/draw/lv_draw_rect.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/draw/lv_draw_arc.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/draw/opengles
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/draw/renesas
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/draw/renesas/dave2d
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/draw/lv_draw_buf.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/widgets
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/widgets/3dtexture
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/widgets/3dtexture/lv_3dtexture.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/widgets/dropdown
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/widgets/dropdown/lv_dropdown.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/widgets/calendar
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/widgets/calendar/lv_calendar.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/widgets/calendar/lv_calendar_header_arrow.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/widgets/calendar/lv_calendar_header_dropdown.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/widgets/calendar/lv_calendar_chinese.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/widgets/objx_templ
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/widgets/objx_templ/lv_objx_templ.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/widgets/scale
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/widgets/scale/lv_scale.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/widgets/led
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/widgets/led/lv_led.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/widgets/property
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/widgets/property/lv_obj_property_names.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/widgets/property/lv_style_properties.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/widgets/win
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/widgets/win/lv_win.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/widgets/chart
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/widgets/chart/lv_chart.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/widgets/checkbox
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/widgets/checkbox/lv_checkbox.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/widgets/label
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/widgets/label/lv_label.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/widgets/spinbox
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/widgets/spinbox/lv_spinbox.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/widgets/animimage
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/widgets/animimage/lv_animimage.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/widgets/slider
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/widgets/slider/lv_slider.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/widgets/buttonmatrix
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/widgets/buttonmatrix/lv_buttonmatrix.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/widgets/spinner
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/widgets/spinner/lv_spinner.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/widgets/image
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/widgets/image/lv_image.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/widgets/canvas
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/widgets/canvas/lv_canvas.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/widgets/tabview
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/widgets/tabview/lv_tabview.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/widgets/msgbox
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/widgets/msgbox/lv_msgbox.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/widgets/textarea
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/widgets/textarea/lv_textarea.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/widgets/button
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/widgets/button/lv_button.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/widgets/span
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/widgets/span/lv_span.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/widgets/imagebutton
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/widgets/imagebutton/lv_imagebutton.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/widgets/line
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/widgets/line/lv_line.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/widgets/table
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/widgets/table/lv_table.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/widgets/list
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/widgets/list/lv_list.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/widgets/menu
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/widgets/menu/lv_menu.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/widgets/switch
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/widgets/switch/lv_switch.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/widgets/lottie
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/widgets/lottie/lv_lottie.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/widgets/bar
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/widgets/bar/lv_bar.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/widgets/arc
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/widgets/arc/lv_arc.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/widgets/roller
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/widgets/roller/lv_roller.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/widgets/tileview
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/widgets/tileview/lv_tileview.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/widgets/keyboard
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/widgets/keyboard/lv_keyboard.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/tick
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/tick/lv_tick.h
-- Up-to-date: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src
-- Up-to-date: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/misc
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/misc/lv_bidi_private.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/misc/lv_color_op_private.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/misc/lv_area_private.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/misc/lv_fs_private.h
-- Up-to-date: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/misc/cache
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/misc/cache/lv_cache_private.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/misc/cache/lv_cache_entry_private.h
-- Up-to-date: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/misc/cache/instance
-- Up-to-date: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/misc/cache/class
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/misc/lv_text_private.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/misc/lv_profiler_builtin_private.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/misc/lv_anim_private.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/misc/lv_timer_private.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/misc/lv_style_private.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/misc/lv_rb_private.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/misc/lv_event_private.h
-- Up-to-date: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/drivers
-- Up-to-date: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/drivers/qnx
-- Up-to-date: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/drivers/uefi
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/drivers/uefi/lv_uefi_private.h
-- Up-to-date: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/drivers/evdev
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/drivers/evdev/lv_evdev_private.h
-- Up-to-date: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/drivers/libinput
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/drivers/libinput/lv_xkb_private.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/drivers/libinput/lv_libinput_private.h
-- Up-to-date: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/drivers/wayland
-- Up-to-date: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/drivers/sdl
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/drivers/sdl/lv_sdl_private.h
-- Up-to-date: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/drivers/x11
-- Up-to-date: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/drivers/display
-- Up-to-date: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/drivers/display/st7796
-- Up-to-date: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/drivers/display/drm
-- Up-to-date: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/drivers/display/fb
-- Up-to-date: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/drivers/display/renesas_glcdc
-- Up-to-date: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/drivers/display/st7735
-- Up-to-date: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/drivers/display/ft81x
-- Up-to-date: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/drivers/display/lcd
-- Up-to-date: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/drivers/display/st_ltdc
-- Up-to-date: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/drivers/display/ili9341
-- Up-to-date: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/drivers/display/tft_espi
-- Up-to-date: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/drivers/display/st7789
-- Up-to-date: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/drivers/glfw
-- Up-to-date: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/drivers/windows
-- Up-to-date: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/drivers/nuttx
-- Up-to-date: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/core
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/core/lv_group_private.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/core/lv_obj_draw_private.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/core/lv_refr_private.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/core/lv_obj_scroll_private.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/core/lv_obj_event_private.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/core/lv_obj_class_private.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/core/lv_obj_private.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/core/lv_obj_style_private.h
-- Up-to-date: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/osal
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/osal/lv_linux_private.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/osal/lv_os_private.h
-- Up-to-date: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/others
-- Up-to-date: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/others/snapshot
-- Up-to-date: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/others/ime
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/others/ime/lv_ime_pinyin_private.h
-- Up-to-date: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/others/vg_lite_tvg
-- Up-to-date: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/others/test
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/others/test/lv_test_private.h
-- Up-to-date: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/others/file_explorer
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/others/file_explorer/lv_file_explorer_private.h
-- Up-to-date: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/others/observer
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/others/observer/lv_observer_private.h
-- Up-to-date: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/others/xml
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/others/xml/lv_xml_component_private.h
-- Up-to-date: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/others/xml/parsers
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/others/xml/lv_xml_private.h
-- Up-to-date: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/others/fragment
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/others/fragment/lv_fragment_private.h
-- Up-to-date: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/others/gridnav
-- Up-to-date: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/others/monkey
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/others/monkey/lv_monkey_private.h
-- Up-to-date: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/others/sysmon
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/others/sysmon/lv_sysmon_private.h
-- Up-to-date: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/others/imgfont
-- Up-to-date: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/others/font_manager
-- Up-to-date: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs
-- Up-to-date: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/svg
-- Up-to-date: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/thorvg
-- Up-to-date: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/thorvg/rapidjson
-- Up-to-date: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/thorvg/rapidjson/internal
-- Up-to-date: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/thorvg/rapidjson/error
-- Up-to-date: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/thorvg/rapidjson/msinttypes
-- Up-to-date: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/libjpeg_turbo
-- Up-to-date: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/ffmpeg
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/ffmpeg/lv_ffmpeg_private.h
-- Up-to-date: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/libpng
-- Up-to-date: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/tjpgd
-- Up-to-date: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/tiny_ttf
-- Up-to-date: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/freetype
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/freetype/lv_freetype_private.h
-- Up-to-date: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/expat
-- Up-to-date: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/lz4
-- Up-to-date: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/qrcode
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/qrcode/lv_qrcode_private.h
-- Up-to-date: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/rle
-- Up-to-date: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/lodepng
-- Up-to-date: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/bin_decoder
-- Up-to-date: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/rlottie
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/rlottie/lv_rlottie_private.h
-- Up-to-date: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/fsdrv
-- Up-to-date: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/bmp
-- Up-to-date: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/barcode
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/barcode/lv_barcode_private.h
-- Up-to-date: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/gif
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/libs/gif/lv_gif_private.h
-- Up-to-date: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/layouts
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/layouts/lv_layout_private.h
-- Up-to-date: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/layouts/flex
-- Up-to-date: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/layouts/grid
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/lvgl_private.h
-- Up-to-date: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/stdlib
-- Up-to-date: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/stdlib/uefi
-- Up-to-date: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/stdlib/clib
-- Up-to-date: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/stdlib/micropython
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/stdlib/lv_mem_private.h
-- Up-to-date: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/stdlib/rtthread
-- Up-to-date: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/stdlib/builtin
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/stdlib/builtin/lv_tlsf_private.h
-- Up-to-date: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/indev
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/indev/lv_indev_gesture_private.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/indev/lv_indev_private.h
-- Up-to-date: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/display
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/display/lv_display_private.h
-- Up-to-date: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/font
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/font/lv_font_fmt_txt_private.h
-- Up-to-date: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/themes
-- Up-to-date: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/themes/default
-- Up-to-date: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/themes/simple
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/themes/lv_theme_private.h
-- Up-to-date: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/themes/mono
-- Up-to-date: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/draw
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/draw/lv_draw_label_private.h
-- Up-to-date: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/draw/sw
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/draw/sw/lv_draw_sw_private.h
-- Up-to-date: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/draw/sw/blend
-- Up-to-date: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/draw/sw/blend/helium
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/draw/sw/blend/lv_draw_sw_blend_private.h
-- Up-to-date: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/draw/sw/blend/arm2d
-- Up-to-date: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/draw/sw/blend/neon
-- Up-to-date: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/draw/sw/arm2d
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/draw/sw/lv_draw_sw_mask_private.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/draw/lv_draw_buf_private.h
-- Up-to-date: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/draw/nxp
-- Up-to-date: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/draw/nxp/g2d
-- Up-to-date: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/draw/nxp/pxp
-- Up-to-date: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/draw/nxp/vglite
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/draw/lv_draw_image_private.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/draw/lv_draw_mask_private.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/draw/lv_draw_rect_private.h
-- Up-to-date: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/draw/sdl
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/draw/lv_draw_private.h
-- Up-to-date: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/draw/vg_lite
-- Up-to-date: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/draw/nema_gfx
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/draw/lv_draw_triangle_private.h
-- Up-to-date: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/draw/dma2d
-- Up-to-date: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/draw/opengles
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/draw/lv_image_decoder_private.h
-- Up-to-date: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/draw/renesas
-- Up-to-date: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/draw/renesas/dave2d
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/draw/lv_draw_vector_private.h
-- Up-to-date: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/widgets
-- Up-to-date: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/widgets/3dtexture
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/widgets/3dtexture/lv_3dtexture_private.h
-- Up-to-date: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/widgets/dropdown
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/widgets/dropdown/lv_dropdown_private.h
-- Up-to-date: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/widgets/calendar
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/widgets/calendar/lv_calendar_private.h
-- Up-to-date: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/widgets/objx_templ
-- Up-to-date: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/widgets/scale
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/widgets/scale/lv_scale_private.h
-- Up-to-date: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/widgets/led
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/widgets/led/lv_led_private.h
-- Up-to-date: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/widgets/property
-- Up-to-date: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/widgets/win
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/widgets/win/lv_win_private.h
-- Up-to-date: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/widgets/chart
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/widgets/chart/lv_chart_private.h
-- Up-to-date: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/widgets/checkbox
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/widgets/checkbox/lv_checkbox_private.h
-- Up-to-date: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/widgets/label
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/widgets/label/lv_label_private.h
-- Up-to-date: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/widgets/spinbox
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/widgets/spinbox/lv_spinbox_private.h
-- Up-to-date: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/widgets/animimage
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/widgets/animimage/lv_animimage_private.h
-- Up-to-date: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/widgets/slider
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/widgets/slider/lv_slider_private.h
-- Up-to-date: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/widgets/buttonmatrix
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/widgets/buttonmatrix/lv_buttonmatrix_private.h
-- Up-to-date: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/widgets/spinner
-- Up-to-date: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/widgets/image
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/widgets/image/lv_image_private.h
-- Up-to-date: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/widgets/canvas
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/widgets/canvas/lv_canvas_private.h
-- Up-to-date: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/widgets/tabview
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/widgets/tabview/lv_tabview_private.h
-- Up-to-date: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/widgets/msgbox
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/widgets/msgbox/lv_msgbox_private.h
-- Up-to-date: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/widgets/textarea
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/widgets/textarea/lv_textarea_private.h
-- Up-to-date: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/widgets/button
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/widgets/button/lv_button_private.h
-- Up-to-date: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/widgets/span
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/widgets/span/lv_span_private.h
-- Up-to-date: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/widgets/imagebutton
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/widgets/imagebutton/lv_imagebutton_private.h
-- Up-to-date: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/widgets/line
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/widgets/line/lv_line_private.h
-- Up-to-date: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/widgets/table
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/widgets/table/lv_table_private.h
-- Up-to-date: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/widgets/list
-- Up-to-date: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/widgets/menu
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/widgets/menu/lv_menu_private.h
-- Up-to-date: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/widgets/switch
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/widgets/switch/lv_switch_private.h
-- Up-to-date: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/widgets/lottie
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/widgets/lottie/lv_lottie_private.h
-- Up-to-date: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/widgets/bar
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/widgets/bar/lv_bar_private.h
-- Up-to-date: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/widgets/arc
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/widgets/arc/lv_arc_private.h
-- Up-to-date: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/widgets/roller
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/widgets/roller/lv_roller_private.h
-- Up-to-date: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/widgets/tileview
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/widgets/tileview/lv_tileview_private.h
-- Up-to-date: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/widgets/keyboard
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/widgets/keyboard/lv_keyboard_private.h
-- Up-to-date: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/tick
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/src/tick/lv_tick_private.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/lv_conf.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/lv_version.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/lvgl.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/include/lvgl/lvgl_private.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/lib/liblvgl.a
-- Up-to-date: /tmp/tmp.w0Bd5jwcNB/include/lvgl/lv_version.h
-- Up-to-date: /tmp/tmp.w0Bd5jwcNB/include/lvgl/lvgl.h
-- Up-to-date: /tmp/tmp.w0Bd5jwcNB/include/lvgl/lvgl_private.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/share/pkgconfig/lvgl.pc
-- Installing: /tmp/tmp.w0Bd5jwcNB/lib/liblvgl_thorvg.a
-- Up-to-date: /tmp/tmp.w0Bd5jwcNB/include/lvgl/lv_version.h
-- Up-to-date: /tmp/tmp.w0Bd5jwcNB/include/lvgl/lvgl.h
-- Up-to-date: /tmp/tmp.w0Bd5jwcNB/include/lvgl/lvgl_private.h
-- Installing: /tmp/tmp.w0Bd5jwcNB/lib/libjknative.a
20:15:14 info gmake[1]: warning: Clock skew detected. Your build may be incomplete.
gmake[1]: Leaving directory '/workspaces/kvm/internal/native/cgo/build'
Building release...
GOOS=linux GOARCH=arm GOARM=7 ARCHFLAGS="-arch arm" CGO_CFLAGS="-I/opt/jetkvm-native-buildkit/arm-rockchip830-linux-uclibcgnueabihf/include -I/opt/jetkvm-native-buildkit/arm-rockchip830-linux-uclibcgnueabihf/sysroot/usr/include" CGO_LDFLAGS="-L/opt/jetkvm-native-buildkit/arm-rockchip830-linux-uclibcgnueabihf/lib -L/opt/jetkvm-native-buildkit/arm-rockchip830-linux-uclibcgnueabihf/sysroot/usr/lib -lrockit -lrockchip_mpp -lrga -lpthread -lm" CC="/opt/jetkvm-native-buildkit/bin/arm-rockchip830-linux-uclibcgnueabihf-gcc" LD="/opt/jetkvm-native-buildkit/bin/arm-rockchip830-linux-uclibcgnueabihf-ld" CGO_ENABLED=1 go build \
-ldflags="-s -w -X github.com/prometheus/common/version.Branch=feat/multisession-support -X github.com/prometheus/common/version.BuildDate=2025-10-08T17:14:49+0000 -X github.com/prometheus/common/version.Revision=81bc5055dbcb97923288f523a97ffc892fe682f7 -X github.com/jetkvm/kvm.builtTimestamp=1759943689 -X github.com/jetkvm/kvm.builtAppVersion=0.4.8" \
-trimpath -tags netgo,timetzdata,nomsgpack \
-o bin/jetkvm_app cmd/main.go
20:15:19 info + set +x
Deployment complete.
20:15:31 error Error tunneling to container: wait: remote command exited without exit status or exit signal

View File

@ -56,7 +56,6 @@ type DisplayRotationSettings struct {
Rotation string `json:"rotation"`
}
type BacklightSettings struct {
MaxBrightness int `json:"max_brightness"`
DimAfter int `json:"dim_after"`
@ -1358,7 +1357,6 @@ func rpcTransferPrimary(fromId string, toId string) error {
return sessionManager.TransferPrimary(fromId, toId)
}
func rpcGetSessionConfig() (map[string]interface{}, error) {
maxSessions := 10
primaryTimeout := 300
@ -1380,20 +1378,6 @@ func rpcGetSessionConfig() (map[string]interface{}, error) {
}, nil
}
func (s *Session) rpcApprovePrimaryRequest(requesterID string) error {
if s == nil || s.ID == "" {
return errors.New("invalid session")
}
return sessionManager.ApprovePrimaryRequest(s.ID, requesterID)
}
func (s *Session) rpcDenyPrimaryRequest(requesterID string) error {
if s == nil || s.ID == "" {
return errors.New("invalid session")
}
return sessionManager.DenyPrimaryRequest(s.ID, requesterID)
}
var (
keyboardMacroCancel context.CancelFunc
keyboardMacroLock sync.Mutex

View File

@ -24,7 +24,7 @@ func Main() {
ReconnectGrace: 10,
PrivateKeystrokes: false,
}
SaveConfig()
_ = SaveConfig()
}
currentSessionSettings = config.SessionSettings

View File

@ -1113,7 +1113,7 @@ func (sm *SessionManager) removeFromQueue(sessionID string) {
func (sm *SessionManager) clearInputState() {
// Clear keyboard state
if gadget != nil {
gadget.KeyboardReport(0, []byte{0, 0, 0, 0, 0, 0})
_ = gadget.KeyboardReport(0, []byte{0, 0, 0, 0, 0, 0})
}
}

View File

@ -1,45 +1,52 @@
import { SessionInfo } from "@/stores/sessionStore";
interface JsonRpcResponse {
result?: unknown;
error?: { message: string };
}
type RpcSendFunction = (method: string, params: Record<string, unknown>, callback: (response: JsonRpcResponse) => void) => void;
export const sessionApi = {
getSessions: async (sendFn: Function): Promise<SessionInfo[]> => {
getSessions: async (sendFn: RpcSendFunction): Promise<SessionInfo[]> => {
return new Promise((resolve, reject) => {
sendFn("getSessions", {}, (response: any) => {
sendFn("getSessions", {}, (response: JsonRpcResponse) => {
if (response.error) {
reject(new Error(response.error.message));
} else {
resolve(response.result || []);
resolve((response.result as SessionInfo[]) || []);
}
});
});
},
getSessionInfo: async (sendFn: Function, sessionId: string): Promise<SessionInfo> => {
getSessionInfo: async (sendFn: RpcSendFunction, sessionId: string): Promise<SessionInfo> => {
return new Promise((resolve, reject) => {
sendFn("getSessionInfo", { sessionId }, (response: any) => {
sendFn("getSessionInfo", { sessionId }, (response: JsonRpcResponse) => {
if (response.error) {
reject(new Error(response.error.message));
} else {
resolve(response.result);
resolve(response.result as SessionInfo);
}
});
});
},
requestPrimary: async (sendFn: Function, sessionId: string): Promise<{ status: string; mode?: string; message?: string }> => {
requestPrimary: async (sendFn: RpcSendFunction, sessionId: string): Promise<{ status: string; mode?: string; message?: string }> => {
return new Promise((resolve, reject) => {
sendFn("requestPrimary", { sessionId }, (response: any) => {
sendFn("requestPrimary", { sessionId }, (response: JsonRpcResponse) => {
if (response.error) {
reject(new Error(response.error.message));
} else {
resolve(response.result);
resolve(response.result as { status: string; mode?: string; message?: string });
}
});
});
},
releasePrimary: async (sendFn: Function, sessionId: string): Promise<void> => {
releasePrimary: async (sendFn: RpcSendFunction, sessionId: string): Promise<void> => {
return new Promise((resolve, reject) => {
sendFn("releasePrimary", { sessionId }, (response: any) => {
sendFn("releasePrimary", { sessionId }, (response: JsonRpcResponse) => {
if (response.error) {
reject(new Error(response.error.message));
} else {
@ -50,12 +57,12 @@ export const sessionApi = {
},
transferPrimary: async (
sendFn: Function,
sendFn: RpcSendFunction,
fromId: string,
toId: string
): Promise<void> => {
return new Promise((resolve, reject) => {
sendFn("transferPrimary", { fromId, toId }, (response: any) => {
sendFn("transferPrimary", { fromId, toId }, (response: JsonRpcResponse) => {
if (response.error) {
reject(new Error(response.error.message));
} else {
@ -66,12 +73,12 @@ export const sessionApi = {
},
updateNickname: async (
sendFn: Function,
sendFn: RpcSendFunction,
sessionId: string,
nickname: string
): Promise<void> => {
return new Promise((resolve, reject) => {
sendFn("updateSessionNickname", { sessionId, nickname }, (response: any) => {
sendFn("updateSessionNickname", { sessionId, nickname }, (response: JsonRpcResponse) => {
if (response.error) {
reject(new Error(response.error.message));
} else {
@ -82,11 +89,11 @@ export const sessionApi = {
},
approveNewSession: async (
sendFn: Function,
sendFn: RpcSendFunction,
sessionId: string
): Promise<void> => {
return new Promise((resolve, reject) => {
sendFn("approveNewSession", { sessionId }, (response: any) => {
sendFn("approveNewSession", { sessionId }, (response: JsonRpcResponse) => {
if (response.error) {
reject(new Error(response.error.message));
} else {
@ -97,11 +104,11 @@ export const sessionApi = {
},
denyNewSession: async (
sendFn: Function,
sendFn: RpcSendFunction,
sessionId: string
): Promise<void> => {
return new Promise((resolve, reject) => {
sendFn("denyNewSession", { sessionId }, (response: any) => {
sendFn("denyNewSession", { sessionId }, (response: JsonRpcResponse) => {
if (response.error) {
reject(new Error(response.error.message));
} else {

View File

@ -1,13 +1,15 @@
import { useEffect, useState } from "react";
import { useEffect, useState, useCallback } from "react";
import { useNavigate } from "react-router";
import { XCircleIcon } from "@heroicons/react/24/outline";
import { Button } from "./Button";
import { DEVICE_API, CLOUD_API } from "@/ui.config";
import { isOnDevice } from "@/main";
import { useUserStore } from "@/hooks/stores";
import { useSessionStore, useSharedSessionStore } from "@/stores/sessionStore";
import api from "@/api";
import { Button } from "./Button";
interface AccessDeniedOverlayProps {
show: boolean;
message?: string;
@ -25,7 +27,7 @@ export default function AccessDeniedOverlay({
const { clearNickname } = useSharedSessionStore();
const [countdown, setCountdown] = useState(10);
const handleLogout = async () => {
const handleLogout = useCallback(async () => {
try {
const logoutUrl = isOnDevice ? `${DEVICE_API}/auth/logout` : `${CLOUD_API}/logout`;
const res = await api.POST(logoutUrl);
@ -41,7 +43,7 @@ export default function AccessDeniedOverlay({
clearSession();
clearNickname();
navigate("/");
};
}, [navigate, setUser, clearSession, clearNickname]);
useEffect(() => {
if (!show) return;
@ -59,7 +61,7 @@ export default function AccessDeniedOverlay({
}, 1000);
return () => clearInterval(timer);
}, [show]);
}, [show, handleLogout]);
if (!show) return null;

View File

@ -11,7 +11,7 @@ import {
useMountMediaStore,
useSettingsStore,
useUiStore,
} from "@/hooks/stores";
useRTCStore } from "@/hooks/stores";
import Container from "@components/Container";
import { cx } from "@/cva.config";
import PasteModal from "@/components/popovers/PasteModal";
@ -21,7 +21,6 @@ import ExtensionPopover from "@/components/popovers/ExtensionPopover";
import SessionPopover from "@/components/popovers/SessionPopover";
import { useDeviceUiNavigation } from "@/hooks/useAppNavigation";
import { useSessionStore } from "@/stores/sessionStore";
import { useRTCStore } from "@/hooks/stores";
import { usePermissions, Permission } from "@/hooks/usePermissions";
export default function Actionbar({
@ -54,7 +53,7 @@ export default function Actionbar({
setSessions(response.result);
rpcDataChannel.removeEventListener("message", handler);
}
} catch (error) {
} catch {
// Ignore parse errors for non-JSON messages
}
};
@ -67,7 +66,7 @@ export default function Actionbar({
rpcDataChannel.removeEventListener("message", handler);
}, 5000);
}
}, [rpcDataChannel?.readyState]);
}, [rpcDataChannel, sessions.length, setSessions]);
// This is the only way to get a reliable state change for the popover
// at time of writing this there is no mount, or unmount event for the popover

View File

@ -1,12 +1,13 @@
import { useState, useEffect, useRef } from "react";
import { Dialog, DialogPanel, DialogBackdrop } from "@headlessui/react";
import { UserIcon, XMarkIcon } from "@heroicons/react/20/solid";
import { Button } from "./Button";
import { useSettingsStore } from "@/hooks/stores";
import { useSettingsStore , useRTCStore } from "@/hooks/stores";
import { useJsonRpc } from "@/hooks/useJsonRpc";
import { useRTCStore } from "@/hooks/stores";
import { generateNickname } from "@/utils/nicknameGenerator";
import { Button } from "./Button";
type SessionRole = "primary" | "observer" | "queued" | "pending";
interface NicknameModalProps {
@ -128,8 +129,8 @@ export default function NicknameModal({
await onSubmit(trimmedNickname);
setNickname("");
setGeneratedNickname(""); // Reset generated nickname after successful submit
} catch (error: any) {
setError(error.message || "Failed to set nickname");
} catch (error) {
setError(error instanceof Error ? error.message : "Failed to set nickname");
setIsSubmitting(false);
}
};

View File

@ -1,16 +1,19 @@
import { useSessionStore } from "@/stores/sessionStore";
import { sessionApi } from "@/api/sessionApi";
import { Button } from "@/components/Button";
import {
LockClosedIcon,
LockOpenIcon,
ClockIcon
} from "@heroicons/react/16/solid";
import clsx from "clsx";
import { useSessionStore } from "@/stores/sessionStore";
import { sessionApi } from "@/api/sessionApi";
import { Button } from "@/components/Button";
import { usePermissions, Permission } from "@/hooks/usePermissions";
type RpcSendFunction = (method: string, params: Record<string, unknown>, callback: (response: { result?: unknown; error?: { message: string } }) => void) => void;
interface SessionControlPanelProps {
sendFn: Function;
sendFn: RpcSendFunction;
className?: string;
}
@ -48,8 +51,8 @@ export default function SessionControlPanel({ sendFn, className }: SessionContro
setSessionError(result.message || "Failed to request primary control");
setRequestingPrimary(false);
}
} catch (error: any) {
setSessionError(error.message);
} catch (error) {
setSessionError(error instanceof Error ? error.message : "Unknown error");
console.error("Failed to request primary control:", error);
setRequestingPrimary(false);
}
@ -60,8 +63,8 @@ export default function SessionControlPanel({ sendFn, className }: SessionContro
try {
await sessionApi.releasePrimary(sendFn, currentSessionId);
} catch (error: any) {
setSessionError(error.message);
} catch (error) {
setSessionError(error instanceof Error ? error.message : "Unknown error");
console.error("Failed to release primary control:", error);
}
};

View File

@ -1,5 +1,6 @@
import { PencilIcon, CheckIcon, XMarkIcon } from "@heroicons/react/20/solid";
import clsx from "clsx";
import { formatters } from "@/utils";
import { usePermissions, Permission } from "@/hooks/usePermissions";

View File

@ -1,5 +1,6 @@
import { useEffect, useState } from "react";
import { XMarkIcon, UserIcon, GlobeAltIcon, ComputerDesktopIcon } from "@heroicons/react/20/solid";
import { Button } from "./Button";
type RequestType = "session_approval" | "primary_control";
@ -55,7 +56,8 @@ export default function UnifiedSessionRequestDialog({
return () => clearInterval(timer);
}
}, [request?.id, request?.type]); // Only depend on stable properties
// eslint-disable-next-line react-hooks/exhaustive-deps
}, [request?.id, request?.type]); // Only depend on stable properties to avoid unnecessary re-renders
// Handle auto-deny when timeout occurs
useEffect(() => {

View File

@ -14,7 +14,6 @@ import {
useSettingsStore,
useVideoStore,
} from "@/hooks/stores";
import { useSessionStore } from "@/stores/sessionStore";
import { usePermissions, Permission } from "@/hooks/usePermissions";
import useMouse from "@/hooks/useMouse";
@ -37,7 +36,6 @@ export default function WebRTCVideo() {
// Store hooks
const settings = useSettingsStore();
const { currentMode } = useSessionStore();
const { hasPermission } = usePermissions();
const { handleKeyPress, resetKeyboardState } = useKeyboard();
const {
@ -230,7 +228,7 @@ export default function WebRTCVideo() {
if (!hasPermission(Permission.MOUSE_INPUT)) return;
handler(e);
};
}, [currentMode, getAbsMouseMoveHandler, videoClientWidth, videoClientHeight, videoWidth, videoHeight]);
}, [getAbsMouseMoveHandler, videoClientWidth, videoClientHeight, videoWidth, videoHeight, hasPermission]);
const relMouseMoveHandler = useMemo(() => {
const handler = getRelMouseMoveHandler();
@ -239,7 +237,7 @@ export default function WebRTCVideo() {
if (!hasPermission(Permission.MOUSE_INPUT)) return;
handler(e);
};
}, [currentMode, getRelMouseMoveHandler]);
}, [getRelMouseMoveHandler, hasPermission]);
const mouseWheelHandler = useMemo(() => {
const handler = getMouseWheelHandler();
@ -248,7 +246,7 @@ export default function WebRTCVideo() {
if (!hasPermission(Permission.MOUSE_INPUT)) return;
handler(e);
};
}, [currentMode, getMouseWheelHandler]);
}, [getMouseWheelHandler, hasPermission]);
const keyDownHandler = useCallback(
(e: KeyboardEvent) => {
@ -288,7 +286,7 @@ export default function WebRTCVideo() {
}, 100);
}
},
[currentMode, handleKeyPress, isKeyboardLockActive],
[handleKeyPress, isKeyboardLockActive, hasPermission],
);
const keyUpHandler = useCallback(
@ -310,7 +308,7 @@ export default function WebRTCVideo() {
handleKeyPress(hidKey, false);
},
[currentMode, handleKeyPress],
[handleKeyPress, hasPermission],
);
const videoKeyUpHandler = useCallback((e: KeyboardEvent) => {

View File

@ -1,12 +1,13 @@
import { useState, useEffect } from "react";
import { useSessionStore, useSharedSessionStore } from "@/stores/sessionStore";
import { useJsonRpc } from "@/hooks/useJsonRpc";
import { useState, useEffect, useCallback } from "react";
import {
UserGroupIcon,
ArrowPathIcon,
PencilIcon,
} from "@heroicons/react/20/solid";
import clsx from "clsx";
import { useSessionStore, useSharedSessionStore } from "@/stores/sessionStore";
import { useJsonRpc } from "@/hooks/useJsonRpc";
import SessionControlPanel from "@/components/SessionControlPanel";
import NicknameModal from "@/components/NicknameModal";
import SessionsList, { SessionModeBadge } from "@/components/SessionsList";
@ -29,11 +30,11 @@ export default function SessionPopover() {
const { send } = useJsonRpc();
// Adapter function to match existing callback pattern
const sendRpc = (method: string, params: any, callback?: (response: any) => void) => {
const sendRpc = useCallback((method: string, params: Record<string, unknown>, callback?: (response: { result?: unknown; error?: { message: string } }) => void) => {
send(method, params, (response) => {
if (callback) callback(response);
});
};
}, [send]);
const handleRefresh = async () => {
if (isRefreshing) return;
@ -56,7 +57,7 @@ export default function SessionPopover() {
.then(sessions => setSessions(sessions))
.catch(error => console.error("Failed to fetch sessions:", error));
}
}, []);
}, [sendRpc, sessions.length, setSessions]);
return (
<div className="w-full rounded-lg bg-white dark:bg-slate-800 shadow-lg border border-slate-200 dark:border-slate-700">
@ -141,7 +142,7 @@ export default function SessionPopover() {
setShowNicknameModal(true);
}}
onApprove={(sessionId) => {
sendRpc("approveNewSession", { sessionId }, (response: any) => {
sendRpc("approveNewSession", { sessionId }, (response) => {
if (response.error) {
console.error("Failed to approve session:", response.error);
} else {
@ -150,7 +151,7 @@ export default function SessionPopover() {
});
}}
onDeny={(sessionId) => {
sendRpc("denyNewSession", { sessionId }, (response: any) => {
sendRpc("denyNewSession", { sessionId }, (response) => {
if (response.error) {
console.error("Failed to deny session:", response.error);
} else {

View File

@ -1,8 +1,11 @@
import { useState, useEffect, useRef, useCallback } from "react";
import { useJsonRpc } from "@/hooks/useJsonRpc";
import { useJsonRpc, JsonRpcRequest } from "@/hooks/useJsonRpc";
import { useSessionStore } from "@/stores/sessionStore";
import { useRTCStore } from "@/hooks/stores";
type RpcSendFunction = (method: string, params: Record<string, unknown>, callback: (response: { result?: unknown; error?: { message: string } }) => void) => void;
// Permission types matching backend
export enum Permission {
// Video/Display permissions
@ -65,11 +68,11 @@ export function usePermissions() {
const previousCanControl = useRef<boolean>(false);
// Function to poll permissions
const pollPermissions = useCallback((send: any) => {
const pollPermissions = useCallback((send: RpcSendFunction) => {
if (!send) return;
setIsLoading(true);
send("getPermissions", {}, (response: any) => {
send("getPermissions", {}, (response: { result?: unknown; error?: { message: string } }) => {
if (!response.error && response.result) {
const result = response.result as PermissionsResponse;
setPermissions(result.permissions);
@ -79,13 +82,14 @@ export function usePermissions() {
}, []);
// Handle connectionModeChanged events that require WebRTC reconnection
const handleRpcRequest = useCallback((request: any) => {
const handleRpcRequest = useCallback((request: JsonRpcRequest) => {
if (request.method === "connectionModeChanged") {
console.info("Connection mode changed, WebRTC reconnection required", request.params);
// For session promotion that requires reconnection, refresh the page
// This ensures WebRTC connection is re-established with proper mode
if (request.params?.action === "reconnect_required" && request.params?.reason === "session_promotion") {
const params = request.params as { action?: string; reason?: string };
if (params.action === "reconnect_required" && params.reason === "session_promotion") {
console.info("Session promoted, refreshing page to re-establish WebRTC connection");
// Small delay to ensure all state updates are processed
setTimeout(() => {
@ -132,7 +136,8 @@ export function usePermissions() {
}
previousCanControl.current = currentCanControl;
}, [permissions, rpcHidChannel, setRpcHidProtocolVersion]);
// eslint-disable-next-line react-hooks/exhaustive-deps
}, [permissions, rpcHidChannel, setRpcHidProtocolVersion]); // hasPermission depends on permissions which is already in deps
const hasPermission = (permission: Permission): boolean => {
return permissions[permission] === true;

View File

@ -1,11 +1,14 @@
import { useEffect, useRef } from "react";
import { useSessionStore } from "@/stores/sessionStore";
import { useSessionStore, SessionInfo } from "@/stores/sessionStore";
import { useRTCStore } from "@/hooks/stores";
import { sessionApi } from "@/api/sessionApi";
import { notify } from "@/notifications";
type RpcSendFunction = (method: string, params: Record<string, unknown>, callback: (response: { result?: unknown; error?: { message: string } }) => void) => void;
interface SessionEventData {
sessions: any[];
sessions: SessionInfo[];
yourMode: string;
}
@ -13,7 +16,7 @@ interface ModeChangedData {
mode: string;
}
export function useSessionEvents(sendFn: Function | null) {
export function useSessionEvents(sendFn: RpcSendFunction | null) {
const {
currentMode,
setSessions,
@ -25,7 +28,7 @@ export function useSessionEvents(sendFn: Function | null) {
sendFnRef.current = sendFn;
// Handle session-related RPC events
const handleSessionEvent = (method: string, params: any) => {
const handleSessionEvent = (method: string, params: unknown) => {
switch (method) {
case "sessionsUpdated":
handleSessionsUpdated(params as SessionEventData);
@ -52,7 +55,7 @@ export function useSessionEvents(sendFn: Function | null) {
// CRITICAL: Only update mode, never show notifications from sessionsUpdated
// Notifications are exclusively handled by handleModeChanged to prevent duplicates
if (data.yourMode && data.yourMode !== currentMode) {
updateSessionMode(data.yourMode as any);
updateSessionMode(data.yourMode as "primary" | "observer" | "queued" | "pending");
}
};
@ -64,7 +67,7 @@ export function useSessionEvents(sendFn: Function | null) {
// Get the most current mode from the store to avoid race conditions
const { currentMode: currentModeFromStore } = useSessionStore.getState();
const previousMode = currentModeFromStore;
updateSessionMode(data.mode as any);
updateSessionMode(data.mode as "primary" | "observer" | "queued" | "pending");
// Clear requesting state when mode changes from queued
if (previousMode === "queued" && data.mode !== "queued") {
@ -139,7 +142,7 @@ export function useSessionEvents(sendFn: Function | null) {
try {
const sessions = await sessionApi.getSessions(sendFnRef.current);
setSessions(sessions);
} catch (error) {
} catch {
// Silently fail on refresh errors
}
}, 30000); // Refresh every 30 seconds

View File

@ -1,9 +1,12 @@
import { useEffect, useCallback, useState } from "react";
import { useSessionStore } from "@/stores/sessionStore";
import { useSessionEvents } from "@/hooks/useSessionEvents";
import { useSettingsStore } from "@/hooks/stores";
import { usePermissions, Permission } from "@/hooks/usePermissions";
type RpcSendFunction = (method: string, params: Record<string, unknown>, callback: (response: { result?: unknown; error?: { message: string } }) => void) => void;
interface SessionResponse {
sessionId?: string;
mode?: string;
@ -23,7 +26,7 @@ interface NewSessionRequest {
nickname?: string;
}
export function useSessionManagement(sendFn: Function | null) {
export function useSessionManagement(sendFn: RpcSendFunction | null) {
const {
setCurrentSession,
clearSession
@ -39,7 +42,7 @@ export function useSessionManagement(sendFn: Function | null) {
// Handle session info from WebRTC answer
const handleSessionResponse = useCallback((response: SessionResponse) => {
if (response.sessionId && response.mode) {
setCurrentSession(response.sessionId, response.mode as any);
setCurrentSession(response.sessionId, response.mode as "primary" | "observer" | "queued" | "pending");
}
}, [setCurrentSession]);
@ -48,7 +51,7 @@ export function useSessionManagement(sendFn: Function | null) {
if (!sendFn) return;
return new Promise<void>((resolve, reject) => {
sendFn("approvePrimaryRequest", { requesterID: requestId }, (response: any) => {
sendFn("approvePrimaryRequest", { requesterID: requestId }, (response: { result?: unknown; error?: { message: string } }) => {
if (response.error) {
console.error("Failed to approve primary request:", response.error);
reject(new Error(response.error.message || "Failed to approve"));
@ -65,7 +68,7 @@ export function useSessionManagement(sendFn: Function | null) {
if (!sendFn) return;
return new Promise<void>((resolve, reject) => {
sendFn("denyPrimaryRequest", { requesterID: requestId }, (response: any) => {
sendFn("denyPrimaryRequest", { requesterID: requestId }, (response: { result?: unknown; error?: { message: string } }) => {
if (response.error) {
console.error("Failed to deny primary request:", response.error);
reject(new Error(response.error.message || "Failed to deny"));
@ -82,7 +85,7 @@ export function useSessionManagement(sendFn: Function | null) {
if (!sendFn) return;
return new Promise<void>((resolve, reject) => {
sendFn("approveNewSession", { sessionId }, (response: any) => {
sendFn("approveNewSession", { sessionId }, (response: { result?: unknown; error?: { message: string } }) => {
if (response.error) {
console.error("Failed to approve new session:", response.error);
reject(new Error(response.error.message || "Failed to approve"));
@ -99,7 +102,7 @@ export function useSessionManagement(sendFn: Function | null) {
if (!sendFn) return;
return new Promise<void>((resolve, reject) => {
sendFn("denyNewSession", { sessionId }, (response: any) => {
sendFn("denyNewSession", { sessionId }, (response: { result?: unknown; error?: { message: string } }) => {
if (response.error) {
console.error("Failed to deny new session:", response.error);
reject(new Error(response.error.message || "Failed to deny"));
@ -112,7 +115,7 @@ export function useSessionManagement(sendFn: Function | null) {
}, [sendFn]);
// Handle RPC events
const handleRpcEvent = useCallback((method: string, params: any) => {
const handleRpcEvent = useCallback((method: string, params: unknown) => {
// Pass session events to the session event handler
if (method === "sessionsUpdated" ||
method === "modeChanged" ||
@ -122,12 +125,12 @@ export function useSessionManagement(sendFn: Function | null) {
// Handle new session approval request (only if approval is required and user has permission)
if (method === "newSessionPending" && requireSessionApproval && hasPermission(Permission.SESSION_APPROVE)) {
setNewSessionRequest(params);
setNewSessionRequest(params as NewSessionRequest);
}
// Handle primary control request
if (method === "primaryControlRequested") {
setPrimaryControlRequest(params);
setPrimaryControlRequest(params as PrimaryControlRequest);
}
// Handle approval/denial responses
@ -147,13 +150,14 @@ export function useSessionManagement(sendFn: Function | null) {
// Handle session access denial (when your new session is denied)
if (method === "sessionAccessDenied") {
const { clearSession, setSessionError } = useSessionStore.getState();
setSessionError(params.message || "Session access was denied by the primary session");
const errorParams = params as { message?: string };
setSessionError(errorParams.message || "Session access was denied by the primary session");
// Clear session data as we're being disconnected
setTimeout(() => {
clearSession();
}, 3000); // Give user time to see the error
}
}, [handleSessionEvent]);
}, [handleSessionEvent, hasPermission, requireSessionApproval]);
// Cleanup on unmount
useEffect(() => {

View File

@ -1,4 +1,8 @@
import { useEffect, useState } from "react";
import {
UserGroupIcon,
} from "@heroicons/react/16/solid";
import { useJsonRpc, JsonRpcResponse } from "@/hooks/useJsonRpc";
import { usePermissions, Permission } from "@/hooks/usePermissions";
import { useSettingsStore } from "@/hooks/stores";
@ -7,9 +11,6 @@ import Card from "@/components/Card";
import Checkbox from "@/components/Checkbox";
import { SettingsPageHeader } from "@/components/SettingsPageheader";
import { SettingsItem } from "@/components/SettingsItem";
import {
UserGroupIcon,
} from "@heroicons/react/16/solid";
export default function SessionsSettings() {
const { send } = useJsonRpc();

View File

@ -1,5 +1,5 @@
import React, { useEffect, useRef, useState } from "react";
import { NavLink, Outlet, useLocation } from "react-router";
import { NavLink, Outlet, useLocation , useNavigate } from "react-router";
import {
LuSettings,
LuMouse,
@ -15,7 +15,6 @@ import {
LuUsers,
} from "react-icons/lu";
import { useResizeObserver } from "usehooks-ts";
import { useNavigate } from "react-router";
import { cx } from "@/cva.config";
import Card from "@components/Card";

View File

@ -230,7 +230,6 @@ export default function KvmIdRoute() {
);
cleanupAndStopReconnecting();
clearInterval(checkInterval);
} else {
}
}, 1000);
},
@ -270,6 +269,7 @@ export default function KvmIdRoute() {
// We don't want to close everything down, we wait for the reconnect to stop instead
},
onOpen() {
// Connection established, message handling will begin
},
onMessage: message => {
@ -572,7 +572,7 @@ export default function KvmIdRoute() {
setRequireSessionNickname(response.result.requireNickname);
}
}
} catch (error) {
} catch {
// Ignore parse errors
}
};
@ -627,6 +627,9 @@ export default function KvmIdRoute() {
setRpcHidUnreliableNonOrderedChannel,
setRpcHidUnreliableChannel,
setTransceiver,
hasPermission,
setRequireSessionApproval,
setRequireSessionNickname,
]);
useEffect(() => {

View File

@ -1,7 +1,9 @@
// Nickname generation using backend API for consistency
type RpcSendFunction = (method: string, params: Record<string, unknown>, callback: (response: { result?: unknown; error?: { message: string } }) => void) => void;
// Main function that uses backend generation
export async function generateNickname(sendFn?: Function): Promise<string> {
export async function generateNickname(sendFn?: RpcSendFunction): Promise<string> {
// Require backend function - no fallback
if (!sendFn) {
throw new Error('Backend connection required for nickname generation');
@ -9,9 +11,10 @@ export async function generateNickname(sendFn?: Function): Promise<string> {
return new Promise((resolve, reject) => {
try {
const result = sendFn('generateNickname', { userAgent: navigator.userAgent }, (response: any) => {
if (response && !response.error && response.result?.nickname) {
resolve(response.result.nickname);
const result = sendFn('generateNickname', { userAgent: navigator.userAgent }, (response: { result?: unknown; error?: { message: string } }) => {
const result = response.result as { nickname?: string } | undefined;
if (response && !response.error && result?.nickname) {
resolve(result.nickname);
} else {
reject(new Error('Failed to generate nickname from backend'));
}