From 9961a31936eb61a7b53e0e8da1b077cf23fd64f9 Mon Sep 17 00:00:00 2001 From: Jonas Heinrich Date: Tue, 10 Mar 2026 23:58:45 +0100 Subject: [PATCH] ui fix --- build-aux/cargo-sources.json | 1472 +++++++++++++++++++++ build-aux/cargo-vendor-config.toml | 5 + build-aux/flatpak-cargo-generator.py | 55 + data/icons/org.nextbike.NextCompanion.png | Bin 0 -> 18362 bytes flake.nix | 4 + org.nextbike.NextCompanion.yml | 47 + src/main.rs | 20 +- 7 files changed, 1587 insertions(+), 16 deletions(-) create mode 100644 build-aux/cargo-sources.json create mode 100644 build-aux/cargo-vendor-config.toml create mode 100644 build-aux/flatpak-cargo-generator.py create mode 100644 data/icons/org.nextbike.NextCompanion.png create mode 100644 org.nextbike.NextCompanion.yml diff --git a/build-aux/cargo-sources.json b/build-aux/cargo-sources.json new file mode 100644 index 0000000..0cac0f1 --- /dev/null +++ b/build-aux/cargo-sources.json @@ -0,0 +1,1472 @@ +[ + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/atomic-waker/1.1.2/download", + "sha256": "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0", + "dest": "cargo-vendor/atomic-waker-1.1.2" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/autocfg/1.5.0/download", + "sha256": "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8", + "dest": "cargo-vendor/autocfg-1.5.0" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/base64/0.22.1/download", + "sha256": "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6", + "dest": "cargo-vendor/base64-0.22.1" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/bitflags/2.11.0/download", + "sha256": "843867be96c8daad0d758b57df9392b6d8d271134fce549de6ce169ff98a92af", + "dest": "cargo-vendor/bitflags-2.11.0" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/bumpalo/3.20.2/download", + "sha256": "5d20789868f4b01b2f2caec9f5c4e0213b41e3e5702a50157d699ae31ced2fcb", + "dest": "cargo-vendor/bumpalo-3.20.2" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/bytes/1.11.1/download", + "sha256": "1e748733b7cbc798e1434b6ac524f0c1ff2ab456fe201501e6497c8417a4fc33", + "dest": "cargo-vendor/bytes-1.11.1" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/cairo-rs/0.21.5/download", + "sha256": "b01fe135c0bd16afe262b6dea349bd5ea30e6de50708cec639aae7c5c14cc7e4", + "dest": "cargo-vendor/cairo-rs-0.21.5" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/cairo-sys-rs/0.21.5/download", + "sha256": "06c28280c6b12055b5e39e4554271ae4e6630b27c0da9148c4cf6485fc6d245c", + "dest": "cargo-vendor/cairo-sys-rs-0.21.5" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/cc/1.2.56/download", + "sha256": "aebf35691d1bfb0ac386a69bac2fde4dd276fb618cf8bf4f5318fe285e821bb2", + "dest": "cargo-vendor/cc-1.2.56" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/cfg-expr/0.20.7/download", + "sha256": "3c6b04e07d8080154ed4ac03546d9a2b303cc2fe1901ba0b35b301516e289368", + "dest": "cargo-vendor/cfg-expr-0.20.7" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/cfg-if/1.0.4/download", + "sha256": "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801", + "dest": "cargo-vendor/cfg-if-1.0.4" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/cfg_aliases/0.2.1/download", + "sha256": "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724", + "dest": "cargo-vendor/cfg_aliases-0.2.1" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/dirs/5.0.1/download", + "sha256": "44c45a9d03d6676652bcb5e724c7e988de1acad23a711b5217ab9cbecbec2225", + "dest": "cargo-vendor/dirs-5.0.1" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/dirs-sys/0.4.1/download", + "sha256": "520f05a5cbd335fae5a99ff7a6ab8627577660ee5cfd6a94a6a929b52ff0321c", + "dest": "cargo-vendor/dirs-sys-0.4.1" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/displaydoc/0.2.5/download", + "sha256": "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0", + "dest": "cargo-vendor/displaydoc-0.2.5" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/equivalent/1.0.2/download", + "sha256": "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f", + "dest": "cargo-vendor/equivalent-1.0.2" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/field-offset/0.3.6/download", + "sha256": "38e2275cc4e4fc009b0669731a1e5ab7ebf11f469eaede2bab9309a5b4d6057f", + "dest": "cargo-vendor/field-offset-0.3.6" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/find-msvc-tools/0.1.9/download", + "sha256": "5baebc0774151f905a1a2cc41989300b1e6fbb29aff0ceffa1064fdd3088d582", + "dest": "cargo-vendor/find-msvc-tools-0.1.9" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/form_urlencoded/1.2.2/download", + "sha256": "cb4cb245038516f5f85277875cdaa4f7d2c9a0fa0468de06ed190163b1581fcf", + "dest": "cargo-vendor/form_urlencoded-1.2.2" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/futures-channel/0.3.32/download", + "sha256": "07bbe89c50d7a535e539b8c17bc0b49bdb77747034daa8087407d655f3f7cc1d", + "dest": "cargo-vendor/futures-channel-0.3.32" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/futures-core/0.3.32/download", + "sha256": "7e3450815272ef58cec6d564423f6e755e25379b217b0bc688e295ba24df6b1d", + "dest": "cargo-vendor/futures-core-0.3.32" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/futures-executor/0.3.32/download", + "sha256": "baf29c38818342a3b26b5b923639e7b1f4a61fc5e76102d4b1981c6dc7a7579d", + "dest": "cargo-vendor/futures-executor-0.3.32" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/futures-io/0.3.32/download", + "sha256": "cecba35d7ad927e23624b22ad55235f2239cfa44fd10428eecbeba6d6a717718", + "dest": "cargo-vendor/futures-io-0.3.32" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/futures-macro/0.3.32/download", + "sha256": "e835b70203e41293343137df5c0664546da5745f82ec9b84d40be8336958447b", + "dest": "cargo-vendor/futures-macro-0.3.32" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/futures-sink/0.3.32/download", + "sha256": "c39754e157331b013978ec91992bde1ac089843443c49cbc7f46150b0fad0893", + "dest": "cargo-vendor/futures-sink-0.3.32" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/futures-task/0.3.32/download", + "sha256": "037711b3d59c33004d3856fbdc83b99d4ff37a24768fa1be9ce3538a1cde4393", + "dest": "cargo-vendor/futures-task-0.3.32" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/futures-util/0.3.32/download", + "sha256": "389ca41296e6190b48053de0321d02a77f32f8a5d2461dd38762c0593805c6d6", + "dest": "cargo-vendor/futures-util-0.3.32" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/gdk-pixbuf/0.21.5/download", + "sha256": "debb0d39e3cdd84626edfd54d6e4a6ba2da9a0ef2e796e691c4e9f8646fda00c", + "dest": "cargo-vendor/gdk-pixbuf-0.21.5" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/gdk-pixbuf-sys/0.21.5/download", + "sha256": "bd95ad50b9a3d2551e25dd4f6892aff0b772fe5372d84514e9d0583af60a0ce7", + "dest": "cargo-vendor/gdk-pixbuf-sys-0.21.5" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/gdk4/0.10.3/download", + "sha256": "756564212bbe4a4ce05d88ffbd2582581ac6003832d0d32822d0825cca84bfbf", + "dest": "cargo-vendor/gdk4-0.10.3" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/gdk4-sys/0.10.3/download", + "sha256": "a6d4e5b3ccf591826a4adcc83f5f57b4e59d1925cb4bf620b0d645f79498b034", + "dest": "cargo-vendor/gdk4-sys-0.10.3" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/getrandom/0.2.17/download", + "sha256": "ff2abc00be7fca6ebc474524697ae276ad847ad0a6b3faa4bcb027e9a4614ad0", + "dest": "cargo-vendor/getrandom-0.2.17" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/getrandom/0.3.4/download", + "sha256": "899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd", + "dest": "cargo-vendor/getrandom-0.3.4" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/gio/0.21.5/download", + "sha256": "c5ff48bf600c68b476e61dc6b7c762f2f4eb91deef66583ba8bb815c30b5811a", + "dest": "cargo-vendor/gio-0.21.5" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/gio-sys/0.21.5/download", + "sha256": "0071fe88dba8e40086c8ff9bbb62622999f49628344b1d1bf490a48a29d80f22", + "dest": "cargo-vendor/gio-sys-0.21.5" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/glib/0.21.5/download", + "sha256": "16de123c2e6c90ce3b573b7330de19be649080ec612033d397d72da265f1bd8b", + "dest": "cargo-vendor/glib-0.21.5" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/glib-macros/0.21.5/download", + "sha256": "cf59b675301228a696fe01c3073974643365080a76cc3ed5bc2cbc466ad87f17", + "dest": "cargo-vendor/glib-macros-0.21.5" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/glib-sys/0.21.5/download", + "sha256": "2d95e1a3a19ae464a7286e14af9a90683c64d70c02532d88d87ce95056af3e6c", + "dest": "cargo-vendor/glib-sys-0.21.5" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/gobject-sys/0.21.5/download", + "sha256": "2dca35da0d19a18f4575f3cb99fe1c9e029a2941af5662f326f738a21edaf294", + "dest": "cargo-vendor/gobject-sys-0.21.5" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/graphene-rs/0.21.5/download", + "sha256": "2730030ac9db663fd8bfe1e7093742c1cafb92db9c315c9417c29032341fe2f9", + "dest": "cargo-vendor/graphene-rs-0.21.5" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/graphene-sys/0.21.5/download", + "sha256": "915e32091ea9ad241e4b044af62b7351c2d68aeb24f489a0d7f37a0fc484fd93", + "dest": "cargo-vendor/graphene-sys-0.21.5" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/gsk4/0.10.3/download", + "sha256": "e755de9d8c5896c5beaa028b89e1969d067f1b9bf1511384ede971f5983aa153", + "dest": "cargo-vendor/gsk4-0.10.3" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/gsk4-sys/0.10.3/download", + "sha256": "7ce91472391146f482065f1041876d8f869057b195b95399414caa163d72f4f7", + "dest": "cargo-vendor/gsk4-sys-0.10.3" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/gtk4/0.10.3/download", + "sha256": "acb21d53cfc6f7bfaf43549731c43b67ca47d87348d81c8cfc4dcdd44828e1a4", + "dest": "cargo-vendor/gtk4-0.10.3" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/gtk4-macros/0.10.3/download", + "sha256": "3ccfb5a14a3d941244815d5f8101fa12d4577b59cc47245778d8d907b0003e42", + "dest": "cargo-vendor/gtk4-macros-0.10.3" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/gtk4-sys/0.10.3/download", + "sha256": "842577fe5a1ee15d166cd3afe804ce0cab6173bc789ca32e21308834f20088dd", + "dest": "cargo-vendor/gtk4-sys-0.10.3" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/hashbrown/0.16.1/download", + "sha256": "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100", + "dest": "cargo-vendor/hashbrown-0.16.1" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/heck/0.5.0/download", + "sha256": "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea", + "dest": "cargo-vendor/heck-0.5.0" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/http/1.4.0/download", + "sha256": "e3ba2a386d7f85a81f119ad7498ebe444d2e22c2af0b86b069416ace48b3311a", + "dest": "cargo-vendor/http-1.4.0" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/http-body/1.0.1/download", + "sha256": "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184", + "dest": "cargo-vendor/http-body-1.0.1" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/http-body-util/0.1.3/download", + "sha256": "b021d93e26becf5dc7e1b75b1bed1fd93124b374ceb73f43d4d4eafec896a64a", + "dest": "cargo-vendor/http-body-util-0.1.3" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/httparse/1.10.1/download", + "sha256": "6dbf3de79e51f3d586ab4cb9d5c3e2c14aa28ed23d180cf89b4df0454a69cc87", + "dest": "cargo-vendor/httparse-1.10.1" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/hyper/1.8.1/download", + "sha256": "2ab2d4f250c3d7b1c9fcdff1cece94ea4e2dfbec68614f7b87cb205f24ca9d11", + "dest": "cargo-vendor/hyper-1.8.1" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/hyper-rustls/0.27.7/download", + "sha256": "e3c93eb611681b207e1fe55d5a71ecf91572ec8a6705cdb6857f7d8d5242cf58", + "dest": "cargo-vendor/hyper-rustls-0.27.7" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/hyper-util/0.1.20/download", + "sha256": "96547c2556ec9d12fb1578c4eaf448b04993e7fb79cbaad930a656880a6bdfa0", + "dest": "cargo-vendor/hyper-util-0.1.20" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/icu_collections/2.1.1/download", + "sha256": "4c6b649701667bbe825c3b7e6388cb521c23d88644678e83c0c4d0a621a34b43", + "dest": "cargo-vendor/icu_collections-2.1.1" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/icu_locale_core/2.1.1/download", + "sha256": "edba7861004dd3714265b4db54a3c390e880ab658fec5f7db895fae2046b5bb6", + "dest": "cargo-vendor/icu_locale_core-2.1.1" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/icu_normalizer/2.1.1/download", + "sha256": "5f6c8828b67bf8908d82127b2054ea1b4427ff0230ee9141c54251934ab1b599", + "dest": "cargo-vendor/icu_normalizer-2.1.1" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/icu_normalizer_data/2.1.1/download", + "sha256": "7aedcccd01fc5fe81e6b489c15b247b8b0690feb23304303a9e560f37efc560a", + "dest": "cargo-vendor/icu_normalizer_data-2.1.1" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/icu_properties/2.1.2/download", + "sha256": "020bfc02fe870ec3a66d93e677ccca0562506e5872c650f893269e08615d74ec", + "dest": "cargo-vendor/icu_properties-2.1.2" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/icu_properties_data/2.1.2/download", + "sha256": "616c294cf8d725c6afcd8f55abc17c56464ef6211f9ed59cccffe534129c77af", + "dest": "cargo-vendor/icu_properties_data-2.1.2" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/icu_provider/2.1.1/download", + "sha256": "85962cf0ce02e1e0a629cc34e7ca3e373ce20dda4c4d7294bbd0bf1fdb59e614", + "dest": "cargo-vendor/icu_provider-2.1.1" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/idna/1.1.0/download", + "sha256": "3b0875f23caa03898994f6ddc501886a45c7d3d62d04d2d90788d47be1b1e4de", + "dest": "cargo-vendor/idna-1.1.0" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/idna_adapter/1.2.1/download", + "sha256": "3acae9609540aa318d1bc588455225fb2085b9ed0c4f6bd0d9d5bcd86f1a0344", + "dest": "cargo-vendor/idna_adapter-1.2.1" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/indexmap/2.13.0/download", + "sha256": "7714e70437a7dc3ac8eb7e6f8df75fd8eb422675fc7678aff7364301092b1017", + "dest": "cargo-vendor/indexmap-2.13.0" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/ipnet/2.12.0/download", + "sha256": "d98f6fed1fde3f8c21bc40a1abb88dd75e67924f9cffc3ef95607bad8017f8e2", + "dest": "cargo-vendor/ipnet-2.12.0" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/iri-string/0.7.10/download", + "sha256": "c91338f0783edbd6195decb37bae672fd3b165faffb89bf7b9e6942f8b1a731a", + "dest": "cargo-vendor/iri-string-0.7.10" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/itoa/1.0.17/download", + "sha256": "92ecc6618181def0457392ccd0ee51198e065e016d1d527a7ac1b6dc7c1f09d2", + "dest": "cargo-vendor/itoa-1.0.17" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/js-sys/0.3.91/download", + "sha256": "b49715b7073f385ba4bc528e5747d02e66cb39c6146efb66b781f131f0fb399c", + "dest": "cargo-vendor/js-sys-0.3.91" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/libadwaita/0.8.1/download", + "sha256": "fb09e12bf8f73342b3315c839d0a7668cc0ccebd78490c49fec48bab15d5484b", + "dest": "cargo-vendor/libadwaita-0.8.1" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/libadwaita-sys/0.8.1/download", + "sha256": "6d7f94227ba87eb596fecada2491f04e357d507324142f77bf76d9e6be4a3e31", + "dest": "cargo-vendor/libadwaita-sys-0.8.1" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/libc/0.2.183/download", + "sha256": "b5b646652bf6661599e1da8901b3b9522896f01e736bad5f723fe7a3a27f899d", + "dest": "cargo-vendor/libc-0.2.183" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/libredox/0.1.14/download", + "sha256": "1744e39d1d6a9948f4f388969627434e31128196de472883b39f148769bfe30a", + "dest": "cargo-vendor/libredox-0.1.14" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/litemap/0.8.1/download", + "sha256": "6373607a59f0be73a39b6fe456b8192fcc3585f602af20751600e974dd455e77", + "dest": "cargo-vendor/litemap-0.8.1" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/log/0.4.29/download", + "sha256": "5e5032e24019045c762d3c0f28f5b6b8bbf38563a65908389bf7978758920897", + "dest": "cargo-vendor/log-0.4.29" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/lru-slab/0.1.2/download", + "sha256": "112b39cec0b298b6c1999fee3e31427f74f676e4cb9879ed1a121b43661a4154", + "dest": "cargo-vendor/lru-slab-0.1.2" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/memchr/2.8.0/download", + "sha256": "f8ca58f447f06ed17d5fc4043ce1b10dd205e060fb3ce5b979b8ed8e59ff3f79", + "dest": "cargo-vendor/memchr-2.8.0" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/memoffset/0.9.1/download", + "sha256": "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a", + "dest": "cargo-vendor/memoffset-0.9.1" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/mio/1.1.1/download", + "sha256": "a69bcab0ad47271a0234d9422b131806bf3968021e5dc9328caf2d4cd58557fc", + "dest": "cargo-vendor/mio-1.1.1" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/once_cell/1.21.3/download", + "sha256": "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d", + "dest": "cargo-vendor/once_cell-1.21.3" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/option-ext/0.2.0/download", + "sha256": "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d", + "dest": "cargo-vendor/option-ext-0.2.0" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/pango/0.21.5/download", + "sha256": "52d1d85e2078077a065bb7fc072783d5bcd4e51b379f22d67107d0a16937eb69", + "dest": "cargo-vendor/pango-0.21.5" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/pango-sys/0.21.5/download", + "sha256": "b4f06627d36ed5ff303d2df65211fc2e52ba5b17bf18dd80ff3d9628d6e06cfd", + "dest": "cargo-vendor/pango-sys-0.21.5" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/percent-encoding/2.3.2/download", + "sha256": "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220", + "dest": "cargo-vendor/percent-encoding-2.3.2" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/pin-project-lite/0.2.17/download", + "sha256": "a89322df9ebe1c1578d689c92318e070967d1042b512afbe49518723f4e6d5cd", + "dest": "cargo-vendor/pin-project-lite-0.2.17" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/pin-utils/0.1.0/download", + "sha256": "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184", + "dest": "cargo-vendor/pin-utils-0.1.0" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/pkg-config/0.3.32/download", + "sha256": "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c", + "dest": "cargo-vendor/pkg-config-0.3.32" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/potential_utf/0.1.4/download", + "sha256": "b73949432f5e2a09657003c25bca5e19a0e9c84f8058ca374f49e0ebe605af77", + "dest": "cargo-vendor/potential_utf-0.1.4" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/ppv-lite86/0.2.21/download", + "sha256": "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9", + "dest": "cargo-vendor/ppv-lite86-0.2.21" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/proc-macro-crate/3.5.0/download", + "sha256": "e67ba7e9b2b56446f1d419b1d807906278ffa1a658a8a5d8a39dcb1f5a78614f", + "dest": "cargo-vendor/proc-macro-crate-3.5.0" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/proc-macro2/1.0.106/download", + "sha256": "8fd00f0bb2e90d81d1044c2b32617f68fcb9fa3bb7640c23e9c748e53fb30934", + "dest": "cargo-vendor/proc-macro2-1.0.106" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/quinn/0.11.9/download", + "sha256": "b9e20a958963c291dc322d98411f541009df2ced7b5a4f2bd52337638cfccf20", + "dest": "cargo-vendor/quinn-0.11.9" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/quinn-proto/0.11.14/download", + "sha256": "434b42fec591c96ef50e21e886936e66d3cc3f737104fdb9b737c40ffb94c098", + "dest": "cargo-vendor/quinn-proto-0.11.14" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/quinn-udp/0.5.14/download", + "sha256": "addec6a0dcad8a8d96a771f815f0eaf55f9d1805756410b39f5fa81332574cbd", + "dest": "cargo-vendor/quinn-udp-0.5.14" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/quote/1.0.45/download", + "sha256": "41f2619966050689382d2b44f664f4bc593e129785a36d6ee376ddf37259b924", + "dest": "cargo-vendor/quote-1.0.45" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/r-efi/5.3.0/download", + "sha256": "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f", + "dest": "cargo-vendor/r-efi-5.3.0" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/rand/0.9.2/download", + "sha256": "6db2770f06117d490610c7488547d543617b21bfa07796d7a12f6f1bd53850d1", + "dest": "cargo-vendor/rand-0.9.2" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/rand_chacha/0.9.0/download", + "sha256": "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb", + "dest": "cargo-vendor/rand_chacha-0.9.0" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/rand_core/0.9.5/download", + "sha256": "76afc826de14238e6e8c374ddcc1fa19e374fd8dd986b0d2af0d02377261d83c", + "dest": "cargo-vendor/rand_core-0.9.5" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/redox_users/0.4.6/download", + "sha256": "ba009ff324d1fc1b900bd1fdb31564febe58a8ccc8a6fdbb93b543d33b13ca43", + "dest": "cargo-vendor/redox_users-0.4.6" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/reqwest/0.12.28/download", + "sha256": "eddd3ca559203180a307f12d114c268abf583f59b03cb906fd0b3ff8646c1147", + "dest": "cargo-vendor/reqwest-0.12.28" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/ring/0.17.14/download", + "sha256": "a4689e6c2294d81e88dc6261c768b63bc4fcdb852be6d1352498b114f61383b7", + "dest": "cargo-vendor/ring-0.17.14" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/rustc-hash/2.1.1/download", + "sha256": "357703d41365b4b27c590e3ed91eabb1b663f07c4c084095e60cbed4362dff0d", + "dest": "cargo-vendor/rustc-hash-2.1.1" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/rustc_version/0.4.1/download", + "sha256": "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92", + "dest": "cargo-vendor/rustc_version-0.4.1" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/rustls/0.23.37/download", + "sha256": "758025cb5fccfd3bc2fd74708fd4682be41d99e5dff73c377c0646c6012c73a4", + "dest": "cargo-vendor/rustls-0.23.37" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/rustls-pki-types/1.14.0/download", + "sha256": "be040f8b0a225e40375822a563fa9524378b9d63112f53e19ffff34df5d33fdd", + "dest": "cargo-vendor/rustls-pki-types-1.14.0" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/rustls-webpki/0.103.9/download", + "sha256": "d7df23109aa6c1567d1c575b9952556388da57401e4ace1d15f79eedad0d8f53", + "dest": "cargo-vendor/rustls-webpki-0.103.9" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/rustversion/1.0.22/download", + "sha256": "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d", + "dest": "cargo-vendor/rustversion-1.0.22" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/ryu/1.0.23/download", + "sha256": "9774ba4a74de5f7b1c1451ed6cd5285a32eddb5cccb8cc655a4e50009e06477f", + "dest": "cargo-vendor/ryu-1.0.23" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/semver/1.0.27/download", + "sha256": "d767eb0aabc880b29956c35734170f26ed551a859dbd361d140cdbeca61ab1e2", + "dest": "cargo-vendor/semver-1.0.27" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/serde/1.0.228/download", + "sha256": "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e", + "dest": "cargo-vendor/serde-1.0.228" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/serde_core/1.0.228/download", + "sha256": "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad", + "dest": "cargo-vendor/serde_core-1.0.228" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/serde_derive/1.0.228/download", + "sha256": "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79", + "dest": "cargo-vendor/serde_derive-1.0.228" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/serde_json/1.0.149/download", + "sha256": "83fc039473c5595ace860d8c4fafa220ff474b3fc6bfdb4293327f1a37e94d86", + "dest": "cargo-vendor/serde_json-1.0.149" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/serde_spanned/1.0.4/download", + "sha256": "f8bbf91e5a4d6315eee45e704372590b30e260ee83af6639d64557f51b067776", + "dest": "cargo-vendor/serde_spanned-1.0.4" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/serde_urlencoded/0.7.1/download", + "sha256": "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd", + "dest": "cargo-vendor/serde_urlencoded-0.7.1" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/shlex/1.3.0/download", + "sha256": "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64", + "dest": "cargo-vendor/shlex-1.3.0" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/slab/0.4.12/download", + "sha256": "0c790de23124f9ab44544d7ac05d60440adc586479ce501c1d6d7da3cd8c9cf5", + "dest": "cargo-vendor/slab-0.4.12" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/smallvec/1.15.1/download", + "sha256": "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03", + "dest": "cargo-vendor/smallvec-1.15.1" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/socket2/0.6.3/download", + "sha256": "3a766e1110788c36f4fa1c2b71b387a7815aa65f88ce0229841826633d93723e", + "dest": "cargo-vendor/socket2-0.6.3" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/stable_deref_trait/1.2.1/download", + "sha256": "6ce2be8dc25455e1f91df71bfa12ad37d7af1092ae736f3a6cd0e37bc7810596", + "dest": "cargo-vendor/stable_deref_trait-1.2.1" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/subtle/2.6.1/download", + "sha256": "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292", + "dest": "cargo-vendor/subtle-2.6.1" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/syn/2.0.117/download", + "sha256": "e665b8803e7b1d2a727f4023456bbbbe74da67099c585258af0ad9c5013b9b99", + "dest": "cargo-vendor/syn-2.0.117" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/sync_wrapper/1.0.2/download", + "sha256": "0bf256ce5efdfa370213c1dabab5935a12e49f2c58d15e9eac2870d3b4f27263", + "dest": "cargo-vendor/sync_wrapper-1.0.2" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/synstructure/0.13.2/download", + "sha256": "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2", + "dest": "cargo-vendor/synstructure-0.13.2" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/system-deps/7.0.7/download", + "sha256": "48c8f33736f986f16d69b6cb8b03f55ddcad5c41acc4ccc39dd88e84aa805e7f", + "dest": "cargo-vendor/system-deps-7.0.7" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/target-lexicon/0.13.3/download", + "sha256": "df7f62577c25e07834649fc3b39fafdc597c0a3527dc1c60129201ccfcbaa50c", + "dest": "cargo-vendor/target-lexicon-0.13.3" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/thiserror/1.0.69/download", + "sha256": "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52", + "dest": "cargo-vendor/thiserror-1.0.69" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/thiserror/2.0.18/download", + "sha256": "4288b5bcbc7920c07a1149a35cf9590a2aa808e0bc1eafaade0b80947865fbc4", + "dest": "cargo-vendor/thiserror-2.0.18" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/thiserror-impl/1.0.69/download", + "sha256": "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1", + "dest": "cargo-vendor/thiserror-impl-1.0.69" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/thiserror-impl/2.0.18/download", + "sha256": "ebc4ee7f67670e9b64d05fa4253e753e016c6c95ff35b89b7941d6b856dec1d5", + "dest": "cargo-vendor/thiserror-impl-2.0.18" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/tinystr/0.8.2/download", + "sha256": "42d3e9c45c09de15d06dd8acf5f4e0e399e85927b7f00711024eb7ae10fa4869", + "dest": "cargo-vendor/tinystr-0.8.2" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/tinyvec/1.10.0/download", + "sha256": "bfa5fdc3bce6191a1dbc8c02d5c8bffcf557bafa17c124c5264a458f1b0613fa", + "dest": "cargo-vendor/tinyvec-1.10.0" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/tinyvec_macros/0.1.1/download", + "sha256": "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20", + "dest": "cargo-vendor/tinyvec_macros-0.1.1" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/tokio/1.50.0/download", + "sha256": "27ad5e34374e03cfffefc301becb44e9dc3c17584f414349ebe29ed26661822d", + "dest": "cargo-vendor/tokio-1.50.0" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/tokio-rustls/0.26.4/download", + "sha256": "1729aa945f29d91ba541258c8df89027d5792d85a8841fb65e8bf0f4ede4ef61", + "dest": "cargo-vendor/tokio-rustls-0.26.4" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/toml/0.9.12+spec-1.1.0/download", + "sha256": "cf92845e79fc2e2def6a5d828f0801e29a2f8acc037becc5ab08595c7d5e9863", + "dest": "cargo-vendor/toml-0.9.12+spec-1.1.0" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/toml_datetime/0.7.5+spec-1.1.0/download", + "sha256": "92e1cfed4a3038bc5a127e35a2d360f145e1f4b971b551a2ba5fd7aedf7e1347", + "dest": "cargo-vendor/toml_datetime-0.7.5+spec-1.1.0" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/toml_datetime/1.0.0+spec-1.1.0/download", + "sha256": "32c2555c699578a4f59f0cc68e5116c8d7cabbd45e1409b989d4be085b53f13e", + "dest": "cargo-vendor/toml_datetime-1.0.0+spec-1.1.0" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/toml_edit/0.25.4+spec-1.1.0/download", + "sha256": "7193cbd0ce53dc966037f54351dbbcf0d5a642c7f0038c382ef9e677ce8c13f2", + "dest": "cargo-vendor/toml_edit-0.25.4+spec-1.1.0" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/toml_parser/1.0.9+spec-1.1.0/download", + "sha256": "702d4415e08923e7e1ef96cd5727c0dfed80b4d2fa25db9647fe5eb6f7c5a4c4", + "dest": "cargo-vendor/toml_parser-1.0.9+spec-1.1.0" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/toml_writer/1.0.6+spec-1.1.0/download", + "sha256": "ab16f14aed21ee8bfd8ec22513f7287cd4a91aa92e44edfe2c17ddd004e92607", + "dest": "cargo-vendor/toml_writer-1.0.6+spec-1.1.0" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/tower/0.5.3/download", + "sha256": "ebe5ef63511595f1344e2d5cfa636d973292adc0eec1f0ad45fae9f0851ab1d4", + "dest": "cargo-vendor/tower-0.5.3" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/tower-http/0.6.8/download", + "sha256": "d4e6559d53cc268e5031cd8429d05415bc4cb4aefc4aa5d6cc35fbf5b924a1f8", + "dest": "cargo-vendor/tower-http-0.6.8" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/tower-layer/0.3.3/download", + "sha256": "121c2a6cda46980bb0fcd1647ffaf6cd3fc79a013de288782836f6df9c48780e", + "dest": "cargo-vendor/tower-layer-0.3.3" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/tower-service/0.3.3/download", + "sha256": "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3", + "dest": "cargo-vendor/tower-service-0.3.3" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/tracing/0.1.44/download", + "sha256": "63e71662fa4b2a2c3a26f570f037eb95bb1f85397f3cd8076caed2f026a6d100", + "dest": "cargo-vendor/tracing-0.1.44" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/tracing-core/0.1.36/download", + "sha256": "db97caf9d906fbde555dd62fa95ddba9eecfd14cb388e4f491a66d74cd5fb79a", + "dest": "cargo-vendor/tracing-core-0.1.36" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/try-lock/0.2.5/download", + "sha256": "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b", + "dest": "cargo-vendor/try-lock-0.2.5" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/unicode-ident/1.0.24/download", + "sha256": "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75", + "dest": "cargo-vendor/unicode-ident-1.0.24" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/untrusted/0.9.0/download", + "sha256": "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1", + "dest": "cargo-vendor/untrusted-0.9.0" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/url/2.5.8/download", + "sha256": "ff67a8a4397373c3ef660812acab3268222035010ab8680ec4215f38ba3d0eed", + "dest": "cargo-vendor/url-2.5.8" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/utf8_iter/1.0.4/download", + "sha256": "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be", + "dest": "cargo-vendor/utf8_iter-1.0.4" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/version-compare/0.2.1/download", + "sha256": "03c2856837ef78f57382f06b2b8563a2f512f7185d732608fd9176cb3b8edf0e", + "dest": "cargo-vendor/version-compare-0.2.1" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/want/0.3.1/download", + "sha256": "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e", + "dest": "cargo-vendor/want-0.3.1" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/wasi/0.11.1+wasi-snapshot-preview1/download", + "sha256": "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b", + "dest": "cargo-vendor/wasi-0.11.1+wasi-snapshot-preview1" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/wasip2/1.0.2+wasi-0.2.9/download", + "sha256": "9517f9239f02c069db75e65f174b3da828fe5f5b945c4dd26bd25d89c03ebcf5", + "dest": "cargo-vendor/wasip2-1.0.2+wasi-0.2.9" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/wasm-bindgen/0.2.114/download", + "sha256": "6532f9a5c1ece3798cb1c2cfdba640b9b3ba884f5db45973a6f442510a87d38e", + "dest": "cargo-vendor/wasm-bindgen-0.2.114" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/wasm-bindgen-futures/0.4.64/download", + "sha256": "e9c5522b3a28661442748e09d40924dfb9ca614b21c00d3fd135720e48b67db8", + "dest": "cargo-vendor/wasm-bindgen-futures-0.4.64" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/wasm-bindgen-macro/0.2.114/download", + "sha256": "18a2d50fcf105fb33bb15f00e7a77b772945a2ee45dcf454961fd843e74c18e6", + "dest": "cargo-vendor/wasm-bindgen-macro-0.2.114" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/wasm-bindgen-macro-support/0.2.114/download", + "sha256": "03ce4caeaac547cdf713d280eda22a730824dd11e6b8c3ca9e42247b25c631e3", + "dest": "cargo-vendor/wasm-bindgen-macro-support-0.2.114" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/wasm-bindgen-shared/0.2.114/download", + "sha256": "75a326b8c223ee17883a4251907455a2431acc2791c98c26279376490c378c16", + "dest": "cargo-vendor/wasm-bindgen-shared-0.2.114" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/web-sys/0.3.91/download", + "sha256": "854ba17bb104abfb26ba36da9729addc7ce7f06f5c0f90f3c391f8461cca21f9", + "dest": "cargo-vendor/web-sys-0.3.91" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/web-time/1.1.0/download", + "sha256": "5a6580f308b1fad9207618087a65c04e7a10bc77e02c8e84e9b00dd4b12fa0bb", + "dest": "cargo-vendor/web-time-1.1.0" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/webpki-roots/1.0.6/download", + "sha256": "22cfaf3c063993ff62e73cb4311efde4db1efb31ab78a3e5c457939ad5cc0bed", + "dest": "cargo-vendor/webpki-roots-1.0.6" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/windows-link/0.2.1/download", + "sha256": "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5", + "dest": "cargo-vendor/windows-link-0.2.1" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/windows-sys/0.48.0/download", + "sha256": "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9", + "dest": "cargo-vendor/windows-sys-0.48.0" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/windows-sys/0.52.0/download", + "sha256": "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d", + "dest": "cargo-vendor/windows-sys-0.52.0" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/windows-sys/0.60.2/download", + "sha256": "f2f500e4d28234f72040990ec9d39e3a6b950f9f22d3dba18416c35882612bcb", + "dest": "cargo-vendor/windows-sys-0.60.2" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/windows-sys/0.61.2/download", + "sha256": "ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc", + "dest": "cargo-vendor/windows-sys-0.61.2" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/windows-targets/0.48.5/download", + "sha256": "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c", + "dest": "cargo-vendor/windows-targets-0.48.5" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/windows-targets/0.52.6/download", + "sha256": "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973", + "dest": "cargo-vendor/windows-targets-0.52.6" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/windows-targets/0.53.5/download", + "sha256": "4945f9f551b88e0d65f3db0bc25c33b8acea4d9e41163edf90dcd0b19f9069f3", + "dest": "cargo-vendor/windows-targets-0.53.5" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/windows_aarch64_gnullvm/0.48.5/download", + "sha256": "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8", + "dest": "cargo-vendor/windows_aarch64_gnullvm-0.48.5" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/windows_aarch64_gnullvm/0.52.6/download", + "sha256": "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3", + "dest": "cargo-vendor/windows_aarch64_gnullvm-0.52.6" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/windows_aarch64_gnullvm/0.53.1/download", + "sha256": "a9d8416fa8b42f5c947f8482c43e7d89e73a173cead56d044f6a56104a6d1b53", + "dest": "cargo-vendor/windows_aarch64_gnullvm-0.53.1" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/windows_aarch64_msvc/0.48.5/download", + "sha256": "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc", + "dest": "cargo-vendor/windows_aarch64_msvc-0.48.5" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/windows_aarch64_msvc/0.52.6/download", + "sha256": "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469", + "dest": "cargo-vendor/windows_aarch64_msvc-0.52.6" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/windows_aarch64_msvc/0.53.1/download", + "sha256": "b9d782e804c2f632e395708e99a94275910eb9100b2114651e04744e9b125006", + "dest": "cargo-vendor/windows_aarch64_msvc-0.53.1" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/windows_i686_gnu/0.48.5/download", + "sha256": "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e", + "dest": "cargo-vendor/windows_i686_gnu-0.48.5" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/windows_i686_gnu/0.52.6/download", + "sha256": "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b", + "dest": "cargo-vendor/windows_i686_gnu-0.52.6" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/windows_i686_gnu/0.53.1/download", + "sha256": "960e6da069d81e09becb0ca57a65220ddff016ff2d6af6a223cf372a506593a3", + "dest": "cargo-vendor/windows_i686_gnu-0.53.1" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/windows_i686_gnullvm/0.52.6/download", + "sha256": "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66", + "dest": "cargo-vendor/windows_i686_gnullvm-0.52.6" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/windows_i686_gnullvm/0.53.1/download", + "sha256": "fa7359d10048f68ab8b09fa71c3daccfb0e9b559aed648a8f95469c27057180c", + "dest": "cargo-vendor/windows_i686_gnullvm-0.53.1" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/windows_i686_msvc/0.48.5/download", + "sha256": "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406", + "dest": "cargo-vendor/windows_i686_msvc-0.48.5" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/windows_i686_msvc/0.52.6/download", + "sha256": "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66", + "dest": "cargo-vendor/windows_i686_msvc-0.52.6" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/windows_i686_msvc/0.53.1/download", + "sha256": "1e7ac75179f18232fe9c285163565a57ef8d3c89254a30685b57d83a38d326c2", + "dest": "cargo-vendor/windows_i686_msvc-0.53.1" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/windows_x86_64_gnu/0.48.5/download", + "sha256": "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e", + "dest": "cargo-vendor/windows_x86_64_gnu-0.48.5" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/windows_x86_64_gnu/0.52.6/download", + "sha256": "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78", + "dest": "cargo-vendor/windows_x86_64_gnu-0.52.6" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/windows_x86_64_gnu/0.53.1/download", + "sha256": "9c3842cdd74a865a8066ab39c8a7a473c0778a3f29370b5fd6b4b9aa7df4a499", + "dest": "cargo-vendor/windows_x86_64_gnu-0.53.1" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/windows_x86_64_gnullvm/0.48.5/download", + "sha256": "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc", + "dest": "cargo-vendor/windows_x86_64_gnullvm-0.48.5" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/windows_x86_64_gnullvm/0.52.6/download", + "sha256": "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d", + "dest": "cargo-vendor/windows_x86_64_gnullvm-0.52.6" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/windows_x86_64_gnullvm/0.53.1/download", + "sha256": "0ffa179e2d07eee8ad8f57493436566c7cc30ac536a3379fdf008f47f6bb7ae1", + "dest": "cargo-vendor/windows_x86_64_gnullvm-0.53.1" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/windows_x86_64_msvc/0.48.5/download", + "sha256": "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538", + "dest": "cargo-vendor/windows_x86_64_msvc-0.48.5" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/windows_x86_64_msvc/0.52.6/download", + "sha256": "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec", + "dest": "cargo-vendor/windows_x86_64_msvc-0.52.6" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/windows_x86_64_msvc/0.53.1/download", + "sha256": "d6bbff5f0aada427a1e5a6da5f1f98158182f26556f345ac9e04d36d0ebed650", + "dest": "cargo-vendor/windows_x86_64_msvc-0.53.1" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/winnow/0.7.15/download", + "sha256": "df79d97927682d2fd8adb29682d1140b343be4ac0f08fd68b7765d9c059d3945", + "dest": "cargo-vendor/winnow-0.7.15" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/wit-bindgen/0.51.0/download", + "sha256": "d7249219f66ced02969388cf2bb044a09756a083d0fab1e566056b04d9fbcaa5", + "dest": "cargo-vendor/wit-bindgen-0.51.0" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/writeable/0.6.2/download", + "sha256": "9edde0db4769d2dc68579893f2306b26c6ecfbe0ef499b013d731b7b9247e0b9", + "dest": "cargo-vendor/writeable-0.6.2" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/yoke/0.8.1/download", + "sha256": "72d6e5c6afb84d73944e5cedb052c4680d5657337201555f9f2a16b7406d4954", + "dest": "cargo-vendor/yoke-0.8.1" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/yoke-derive/0.8.1/download", + "sha256": "b659052874eb698efe5b9e8cf382204678a0086ebf46982b79d6ca3182927e5d", + "dest": "cargo-vendor/yoke-derive-0.8.1" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/zerocopy/0.8.42/download", + "sha256": "f2578b716f8a7a858b7f02d5bd870c14bf4ddbbcf3a4c05414ba6503640505e3", + "dest": "cargo-vendor/zerocopy-0.8.42" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/zerocopy-derive/0.8.42/download", + "sha256": "7e6cc098ea4d3bd6246687de65af3f920c430e236bee1e3bf2e441463f08a02f", + "dest": "cargo-vendor/zerocopy-derive-0.8.42" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/zerofrom/0.1.6/download", + "sha256": "50cc42e0333e05660c3587f3bf9d0478688e15d870fab3346451ce7f8c9fbea5", + "dest": "cargo-vendor/zerofrom-0.1.6" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/zerofrom-derive/0.1.6/download", + "sha256": "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502", + "dest": "cargo-vendor/zerofrom-derive-0.1.6" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/zeroize/1.8.2/download", + "sha256": "b97154e67e32c85465826e8bcc1c59429aaaf107c1e4a9e53c8d8ccd5eff88d0", + "dest": "cargo-vendor/zeroize-1.8.2" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/zerotrie/0.2.3/download", + "sha256": "2a59c17a5562d507e4b54960e8569ebee33bee890c70aa3fe7b97e85a9fd7851", + "dest": "cargo-vendor/zerotrie-0.2.3" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/zerovec/0.11.5/download", + "sha256": "6c28719294829477f525be0186d13efa9a3c602f7ec202ca9e353d310fb9a002", + "dest": "cargo-vendor/zerovec-0.11.5" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/zerovec-derive/0.11.2/download", + "sha256": "eadce39539ca5cb3985590102671f2567e659fca9666581ad3411d59207951f3", + "dest": "cargo-vendor/zerovec-derive-0.11.2" + }, + { + "type": "archive", + "archive-type": "tar-gz", + "url": "https://static.crates.io/crates/zmij/1.0.21/download", + "sha256": "b8848ee67ecc8aedbaf3e4122217aff892639231befc6a1b58d29fff4c2cabaa", + "dest": "cargo-vendor/zmij-1.0.21" + } +] diff --git a/build-aux/cargo-vendor-config.toml b/build-aux/cargo-vendor-config.toml new file mode 100644 index 0000000..3152530 --- /dev/null +++ b/build-aux/cargo-vendor-config.toml @@ -0,0 +1,5 @@ +[source.crates-io] +replace-with = "vendored-sources" + +[source.vendored-sources] +directory = "/run/build/next-companion/cargo-vendor" diff --git a/build-aux/flatpak-cargo-generator.py b/build-aux/flatpak-cargo-generator.py new file mode 100644 index 0000000..2c0079c --- /dev/null +++ b/build-aux/flatpak-cargo-generator.py @@ -0,0 +1,55 @@ +#!/usr/bin/env python3 +"""Generate Flatpak source entries for Cargo dependencies from Cargo.lock. + +Usage: + python3 build-aux/flatpak-cargo-generator.py [Cargo.lock] \ + > build-aux/cargo-sources.json +""" + +import json +import sys + +try: + import tomllib +except ImportError: + try: + import tomli as tomllib # pip install tomli + except ImportError: + print("Error: requires Python 3.11+ or the 'tomli' package", file=sys.stderr) + sys.exit(1) + +CRATES_IO_DL = "https://static.crates.io/crates" +REGISTRY_SOURCE = "registry+https://github.com/rust-lang/crates.io-index" + + +def main() -> None: + lockfile = sys.argv[1] if len(sys.argv) > 1 else "Cargo.lock" + + with open(lockfile, "rb") as f: + lock = tomllib.load(f) + + sources = [] + + for pkg in lock.get("package", []): + name = pkg["name"] + version = pkg["version"] + source = pkg.get("source", "") + checksum = pkg.get("checksum") + + # Only vendor packages from crates.io (they have a checksum) + if source == REGISTRY_SOURCE and checksum: + sources.append( + { + "type": "archive", + "archive-type": "tar-gz", + "url": f"{CRATES_IO_DL}/{name}/{version}/download", + "sha256": checksum, + "dest": f"cargo-vendor/{name}-{version}", + } + ) + + print(json.dumps(sources, indent=2)) + + +if __name__ == "__main__": + main() diff --git a/data/icons/org.nextbike.NextCompanion.png b/data/icons/org.nextbike.NextCompanion.png new file mode 100644 index 0000000000000000000000000000000000000000..e96c6aa8fd71eb03c0aa721a8f85038a399f93ea GIT binary patch literal 18362 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 Bb6NlZ literal 0 HcmV?d00001 diff --git a/flake.nix b/flake.nix index 97f288f..0fe5510 100644 --- a/flake.nix +++ b/flake.nix @@ -37,6 +37,10 @@ cargoLock.lockFile = ./Cargo.lock; nativeBuildInputs = buildDeps; buildInputs = runtimeDeps; + postInstall = '' + install -Dm644 data/icons/org.nextbike.NextCompanion.png \ + $out/share/icons/hicolor/512x512/apps/org.nextbike.NextCompanion.png + ''; }; apps.${system}.default = { diff --git a/org.nextbike.NextCompanion.yml b/org.nextbike.NextCompanion.yml new file mode 100644 index 0000000..38049f9 --- /dev/null +++ b/org.nextbike.NextCompanion.yml @@ -0,0 +1,47 @@ +app-id: org.nextbike.NextCompanion +runtime: org.gnome.Platform +runtime-version: '47' +sdk: org.gnome.Sdk +sdk-extensions: + - org.freedesktop.Sdk.Extension.rust-stable +command: next-companion + +finish-args: + - --share=network # nextbike API calls + - --share=ipc + - --socket=wayland + - --socket=fallback-x11 + - --device=dri # GPU acceleration + +build-options: + append-path: /usr/lib/sdk/rust-stable/bin + env: + CARGO_HOME: /run/build/next-companion/cargo-home + RUST_BACKTRACE: '1' + arch: + aarch64: + env: + CARGO_BUILD_TARGET: aarch64-unknown-linux-gnu + CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER: aarch64-unknown-linux-gnu-gcc + +modules: + - name: next-companion + buildsystem: simple + build-commands: + - mkdir -p .cargo + - cp cargo-vendor-config/cargo-vendor-config.toml .cargo/config.toml + - cargo --offline build --release + - | + install -Dm755 \ + "target/${CARGO_BUILD_TARGET:+${CARGO_BUILD_TARGET}/}release/next-companion" \ + /app/bin/next-companion + - install -Dm644 data/icons/org.nextbike.NextCompanion.png + /app/share/icons/hicolor/512x512/apps/org.nextbike.NextCompanion.png + sources: + - type: dir + path: . + - type: file + path: build-aux/cargo-vendor-config.toml + dest: cargo-vendor-config + dest-filename: cargo-vendor-config.toml + - build-aux/cargo-sources.json diff --git a/src/main.rs b/src/main.rs index 1d13efd..b730196 100644 --- a/src/main.rs +++ b/src/main.rs @@ -263,12 +263,7 @@ fn build_ui(app: &Application) { let rent_sheet = Box::builder() .orientation(Orientation::Vertical) - .spacing(16) - .build(); - let rent_sheet_title = Label::builder() - .css_classes(["title-4"]) - .label("Rent Bike") - .xalign(0.0) + .spacing(12) .build(); let rent_form = Box::builder() .orientation(Orientation::Vertical) @@ -278,7 +273,6 @@ fn build_ui(app: &Application) { rent_form.append(&rent_err); rent_form.append(&rent_submit); rent_form.append(&rent_spinner); - rent_sheet.append(&rent_sheet_title); rent_sheet.append(&rent_form); // — Return form — @@ -318,14 +312,8 @@ fn build_ui(app: &Application) { let ret_sheet = Box::builder() .orientation(Orientation::Vertical) - .spacing(16) + .spacing(12) .build(); - let ret_sheet_title = Label::builder() - .css_classes(["title-4"]) - .label("Return Bike") - .xalign(0.0) - .build(); - ret_sheet.append(&ret_sheet_title); ret_sheet.append(&ret_inner); // — Shared sheet stack — @@ -335,8 +323,8 @@ fn build_ui(app: &Application) { let sheet_box = Box::builder() .orientation(Orientation::Vertical) - .margin_top(8) - .margin_bottom(24) + .margin_top(34) + .margin_bottom(18) .margin_start(16) .margin_end(16) .build();