diff --git a/.github/workflows/build-rust.yml b/.github/workflows/build-rust.yml index f56e26b..66c389c 100644 --- a/.github/workflows/build-rust.yml +++ b/.github/workflows/build-rust.yml @@ -17,24 +17,21 @@ jobs: platform: Linux packages: - gcc-aarch64-linux-gnu - test-targets: - - x86_64-unknown-linux-gnu targets: + - x86_64-unknown-linux-gnu - aarch64-unknown-linux-gnu - os: macos-12 platform: macOS - test-targets: - - x86_64-apple-darwin targets: + - x86_64-apple-darwin - aarch64-apple-darwin - aarch64-apple-ios - aarch64-apple-ios-sim - x86_64-apple-ios - os: windows-2022 platform: Windows - test-targets: - - x86_64-pc-windows-msvc targets: + - x86_64-pc-windows-msvc - aarch64-pc-windows-msvc runs-on: ${{ matrix.os }} env: @@ -62,7 +59,4 @@ jobs: targets: ${{ join(matrix.targets, ', ') }} - name: Build shell: bash - run: cargo build --verbose --workspace --all-features --target ${{ join(matrix.targets, ' --target ') }} --target ${{ join(matrix.test-targets, ' --target ') }} - - name: Test - shell: bash - run: cargo test --verbose --workspace --all-features --target ${{ join(matrix.test-targets, ' --target ') }} + run: cargo build --verbose --workspace --all-features --target ${{ join(matrix.targets, ' --target ') }} diff --git a/.gitignore b/.gitignore index 889c0f6..102ee0d 100644 --- a/.gitignore +++ b/.gitignore @@ -3,7 +3,3 @@ xcuserdata # Rust target/ - -# GTK -blueprint-compiler/ -.flatpak-builder/ diff --git a/Cargo.toml b/Cargo.toml index 7a17276..fcb83f5 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,3 +1,2 @@ [workspace] members = ["burrow", "tun"] -exclude = ["burrow-gtk"] diff --git a/burrow-gtk/Cargo.lock b/burrow-gtk/Cargo.lock deleted file mode 100644 index 4e87651..0000000 --- a/burrow-gtk/Cargo.lock +++ /dev/null @@ -1,897 +0,0 @@ -# This file is automatically @generated by Cargo. -# It is not intended for manual editing. -version = 3 - -[[package]] -name = "aho-corasick" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43f6cb1bf222025340178f382c426f13757b2960e89779dfcb319c32542a5a41" -dependencies = [ - "memchr", -] - -[[package]] -name = "anyhow" -version = "1.0.71" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c7d0618f0e0b7e8ff11427422b64564d5fb0be1940354bfe2e0529b18a9d9b8" - -[[package]] -name = "autocfg" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" - -[[package]] -name = "bitflags" -version = "1.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" - -[[package]] -name = "block" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a" - -[[package]] -name = "burrow-gtk" -version = "0.1.0" -dependencies = [ - "gettext-rs", - "gtk4", - "libadwaita", -] - -[[package]] -name = "cairo-rs" -version = "0.17.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab3603c4028a5e368d09b51c8b624b9a46edcd7c3778284077a6125af73c9f0a" -dependencies = [ - "bitflags", - "cairo-sys-rs", - "glib", - "libc", - "once_cell", - "thiserror", -] - -[[package]] -name = "cairo-sys-rs" -version = "0.17.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "691d0c66b1fb4881be80a760cb8fe76ea97218312f9dfe2c9cc0f496ca279cb1" -dependencies = [ - "glib-sys", - "libc", - "system-deps", -] - -[[package]] -name = "cc" -version = "1.0.79" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f" - -[[package]] -name = "cfg-expr" -version = "0.15.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "215c0072ecc28f92eeb0eea38ba63ddfcb65c2828c46311d646f1a3ff5f9841c" -dependencies = [ - "smallvec", - "target-lexicon", -] - -[[package]] -name = "equivalent" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88bffebc5d80432c9b140ee17875ff173a8ab62faad5b257da912bd2f6c1c0a1" - -[[package]] -name = "field-offset" -version = "0.3.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38e2275cc4e4fc009b0669731a1e5ab7ebf11f469eaede2bab9309a5b4d6057f" -dependencies = [ - "memoffset", - "rustc_version", -] - -[[package]] -name = "futures-channel" -version = "0.3.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "955518d47e09b25bbebc7a18df10b81f0c766eaf4c4f1cccef2fca5f2a4fb5f2" -dependencies = [ - "futures-core", -] - -[[package]] -name = "futures-core" -version = "0.3.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4bca583b7e26f571124fe5b7561d49cb2868d79116cfa0eefce955557c6fee8c" - -[[package]] -name = "futures-executor" -version = "0.3.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ccecee823288125bd88b4d7f565c9e58e41858e47ab72e8ea2d64e93624386e0" -dependencies = [ - "futures-core", - "futures-task", - "futures-util", -] - -[[package]] -name = "futures-io" -version = "0.3.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fff74096e71ed47f8e023204cfd0aa1289cd54ae5430a9523be060cdb849964" - -[[package]] -name = "futures-macro" -version = "0.3.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.22", -] - -[[package]] -name = "futures-task" -version = "0.3.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76d3d132be6c0e6aa1534069c705a74a5997a356c0dc2f86a47765e5617c5b65" - -[[package]] -name = "futures-util" -version = "0.3.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26b01e40b772d54cf6c6d721c1d1abd0647a0106a12ecaa1c186273392a69533" -dependencies = [ - "futures-core", - "futures-macro", - "futures-task", - "pin-project-lite", - "pin-utils", - "slab", -] - -[[package]] -name = "gdk-pixbuf" -version = "0.17.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "695d6bc846438c5708b07007537b9274d883373dd30858ca881d7d71b5540717" -dependencies = [ - "bitflags", - "gdk-pixbuf-sys", - "gio", - "glib", - "libc", - "once_cell", -] - -[[package]] -name = "gdk-pixbuf-sys" -version = "0.17.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9285ec3c113c66d7d0ab5676599176f1f42f4944ca1b581852215bf5694870cb" -dependencies = [ - "gio-sys", - "glib-sys", - "gobject-sys", - "libc", - "system-deps", -] - -[[package]] -name = "gdk4" -version = "0.6.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3abf96408a26e3eddf881a7f893a1e111767137136e347745e8ea6ed12731ff" -dependencies = [ - "bitflags", - "cairo-rs", - "gdk-pixbuf", - "gdk4-sys", - "gio", - "glib", - "libc", - "pango", -] - -[[package]] -name = "gdk4-sys" -version = "0.6.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bc92aa1608c089c49393d014c38ac0390d01e4841e1fedaa75dbcef77aaed64" -dependencies = [ - "cairo-sys-rs", - "gdk-pixbuf-sys", - "gio-sys", - "glib-sys", - "gobject-sys", - "libc", - "pango-sys", - "pkg-config", - "system-deps", -] - -[[package]] -name = "gettext-rs" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e49ea8a8fad198aaa1f9655a2524b64b70eb06b2f3ff37da407566c93054f364" -dependencies = [ - "gettext-sys", - "locale_config", -] - -[[package]] -name = "gettext-sys" -version = "0.21.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c63ce2e00f56a206778276704bbe38564c8695249fdc8f354b4ef71c57c3839d" -dependencies = [ - "cc", - "temp-dir", -] - -[[package]] -name = "gio" -version = "0.17.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a6973e92937cf98689b6a054a9e56c657ed4ff76de925e36fc331a15f0c5d30a" -dependencies = [ - "bitflags", - "futures-channel", - "futures-core", - "futures-io", - "futures-util", - "gio-sys", - "glib", - "libc", - "once_cell", - "pin-project-lite", - "smallvec", - "thiserror", -] - -[[package]] -name = "gio-sys" -version = "0.17.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ccf87c30a12c469b6d958950f6a9c09f2be20b7773f7e70d20b867fdf2628c3" -dependencies = [ - "glib-sys", - "gobject-sys", - "libc", - "system-deps", - "winapi", -] - -[[package]] -name = "glib" -version = "0.17.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3fad45ba8d4d2cea612b432717e834f48031cd8853c8aaf43b2c79fec8d144b" -dependencies = [ - "bitflags", - "futures-channel", - "futures-core", - "futures-executor", - "futures-task", - "futures-util", - "gio-sys", - "glib-macros", - "glib-sys", - "gobject-sys", - "libc", - "memchr", - "once_cell", - "smallvec", - "thiserror", -] - -[[package]] -name = "glib-macros" -version = "0.17.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eca5c79337338391f1ab8058d6698125034ce8ef31b72a442437fa6c8580de26" -dependencies = [ - "anyhow", - "heck", - "proc-macro-crate", - "proc-macro-error", - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "glib-sys" -version = "0.17.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d80aa6ea7bba0baac79222204aa786a6293078c210abe69ef1336911d4bdc4f0" -dependencies = [ - "libc", - "system-deps", -] - -[[package]] -name = "gobject-sys" -version = "0.17.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd34c3317740a6358ec04572c1bcfd3ac0b5b6529275fae255b237b314bb8062" -dependencies = [ - "glib-sys", - "libc", - "system-deps", -] - -[[package]] -name = "graphene-rs" -version = "0.17.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "def4bb01265b59ed548b05455040d272d989b3012c42d4c1bbd39083cb9b40d9" -dependencies = [ - "glib", - "graphene-sys", - "libc", -] - -[[package]] -name = "graphene-sys" -version = "0.17.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1856fc817e6a6675e36cea0bd9a3afe296f5d9709d1e2d3182803ac77f0ab21d" -dependencies = [ - "glib-sys", - "libc", - "pkg-config", - "system-deps", -] - -[[package]] -name = "gsk4" -version = "0.6.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f01ef44fa7cac15e2da9978529383e6bee03e570ba5bf7036b4c10a15cc3a3c" -dependencies = [ - "bitflags", - "cairo-rs", - "gdk4", - "glib", - "graphene-rs", - "gsk4-sys", - "libc", - "pango", -] - -[[package]] -name = "gsk4-sys" -version = "0.6.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c07a84fb4dcf1323d29435aa85e2f5f58bef564342bef06775ec7bd0da1f01b0" -dependencies = [ - "cairo-sys-rs", - "gdk4-sys", - "glib-sys", - "gobject-sys", - "graphene-sys", - "libc", - "pango-sys", - "system-deps", -] - -[[package]] -name = "gtk4" -version = "0.6.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b28a32a04cd75cef14a0983f8b0c669e0fe152a0a7725accdeb594e2c764c88b" -dependencies = [ - "bitflags", - "cairo-rs", - "field-offset", - "futures-channel", - "gdk-pixbuf", - "gdk4", - "gio", - "glib", - "graphene-rs", - "gsk4", - "gtk4-macros", - "gtk4-sys", - "libc", - "once_cell", - "pango", -] - -[[package]] -name = "gtk4-macros" -version = "0.6.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a4d6b61570f76d3ee542d984da443b1cd69b6105264c61afec3abed08c2500f" -dependencies = [ - "anyhow", - "proc-macro-crate", - "proc-macro-error", - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "gtk4-sys" -version = "0.6.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f8283f707b07e019e76c7f2934bdd4180c277e08aa93f4c0d8dd07b7a34e22f" -dependencies = [ - "cairo-sys-rs", - "gdk-pixbuf-sys", - "gdk4-sys", - "gio-sys", - "glib-sys", - "gobject-sys", - "graphene-sys", - "gsk4-sys", - "libc", - "pango-sys", - "system-deps", -] - -[[package]] -name = "hashbrown" -version = "0.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c6201b9ff9fd90a5a3bac2e56a830d0caa509576f0e503818ee82c181b3437a" - -[[package]] -name = "heck" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" - -[[package]] -name = "indexmap" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5477fe2230a79769d8dc68e0eabf5437907c0457a5614a9e8dddb67f65eb65d" -dependencies = [ - "equivalent", - "hashbrown", -] - -[[package]] -name = "lazy_static" -version = "1.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" - -[[package]] -name = "libadwaita" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1c4efd2020a4fcedbad2c4a97de97bf6045e5dc49d61d5a5d0cfd753db60700" -dependencies = [ - "bitflags", - "futures-channel", - "gdk-pixbuf", - "gdk4", - "gio", - "glib", - "gtk4", - "libadwaita-sys", - "libc", - "once_cell", - "pango", -] - -[[package]] -name = "libadwaita-sys" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0727b85b4fe2b1bed5ac90df6343de15cbf8118bfb96d7c3cc1512681a4b34ac" -dependencies = [ - "gdk4-sys", - "gio-sys", - "glib-sys", - "gobject-sys", - "gtk4-sys", - "libc", - "pango-sys", - "system-deps", -] - -[[package]] -name = "libc" -version = "0.2.147" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4668fb0ea861c1df094127ac5f1da3409a82116a4ba74fca2e58ef927159bb3" - -[[package]] -name = "locale_config" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08d2c35b16f4483f6c26f0e4e9550717a2f6575bcd6f12a53ff0c490a94a6934" -dependencies = [ - "lazy_static", - "objc", - "objc-foundation", - "regex", - "winapi", -] - -[[package]] -name = "malloc_buf" -version = "0.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62bb907fe88d54d8d9ce32a3cceab4218ed2f6b7d35617cafe9adf84e43919cb" -dependencies = [ - "libc", -] - -[[package]] -name = "memchr" -version = "2.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" - -[[package]] -name = "memoffset" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c" -dependencies = [ - "autocfg", -] - -[[package]] -name = "objc" -version = "0.2.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "915b1b472bc21c53464d6c8461c9d3af805ba1ef837e1cac254428f4a77177b1" -dependencies = [ - "malloc_buf", -] - -[[package]] -name = "objc-foundation" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1add1b659e36c9607c7aab864a76c7a4c2760cd0cd2e120f3fb8b952c7e22bf9" -dependencies = [ - "block", - "objc", - "objc_id", -] - -[[package]] -name = "objc_id" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c92d4ddb4bd7b50d730c215ff871754d0da6b2178849f8a2a2ab69712d0c073b" -dependencies = [ - "objc", -] - -[[package]] -name = "once_cell" -version = "1.18.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d" - -[[package]] -name = "pango" -version = "0.17.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35be456fc620e61f62dff7ff70fbd54dcbaf0a4b920c0f16de1107c47d921d48" -dependencies = [ - "bitflags", - "gio", - "glib", - "libc", - "once_cell", - "pango-sys", -] - -[[package]] -name = "pango-sys" -version = "0.17.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3da69f9f3850b0d8990d462f8c709561975e95f689c1cdf0fecdebde78b35195" -dependencies = [ - "glib-sys", - "gobject-sys", - "libc", - "system-deps", -] - -[[package]] -name = "pin-project-lite" -version = "0.2.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116" - -[[package]] -name = "pin-utils" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" - -[[package]] -name = "pkg-config" -version = "0.3.27" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964" - -[[package]] -name = "proc-macro-crate" -version = "1.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919" -dependencies = [ - "once_cell", - "toml_edit", -] - -[[package]] -name = "proc-macro-error" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" -dependencies = [ - "proc-macro-error-attr", - "proc-macro2", - "quote", - "syn 1.0.109", - "version_check", -] - -[[package]] -name = "proc-macro-error-attr" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" -dependencies = [ - "proc-macro2", - "quote", - "version_check", -] - -[[package]] -name = "proc-macro2" -version = "1.0.63" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b368fba921b0dce7e60f5e04ec15e565b3303972b42bcfde1d0713b881959eb" -dependencies = [ - "unicode-ident", -] - -[[package]] -name = "quote" -version = "1.0.29" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "573015e8ab27661678357f27dc26460738fd2b6c86e46f386fde94cb5d913105" -dependencies = [ - "proc-macro2", -] - -[[package]] -name = "regex" -version = "1.8.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0ab3ca65655bb1e41f2a8c8cd662eb4fb035e67c3f78da1d61dffe89d07300f" -dependencies = [ - "aho-corasick", - "memchr", - "regex-syntax", -] - -[[package]] -name = "regex-syntax" -version = "0.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "436b050e76ed2903236f032a59761c1eb99e1b0aead2c257922771dab1fc8c78" - -[[package]] -name = "rustc_version" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" -dependencies = [ - "semver", -] - -[[package]] -name = "semver" -version = "1.0.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bebd363326d05ec3e2f532ab7660680f3b02130d780c299bca73469d521bc0ed" - -[[package]] -name = "serde" -version = "1.0.164" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e8c8cf938e98f769bc164923b06dce91cea1751522f46f8466461af04c9027d" - -[[package]] -name = "serde_spanned" -version = "0.6.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96426c9936fd7a0124915f9185ea1d20aa9445cc9821142f0a73bc9207a2e186" -dependencies = [ - "serde", -] - -[[package]] -name = "slab" -version = "0.4.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6528351c9bc8ab22353f9d776db39a20288e8d6c37ef8cfe3317cf875eecfc2d" -dependencies = [ - "autocfg", -] - -[[package]] -name = "smallvec" -version = "1.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0" - -[[package]] -name = "syn" -version = "1.0.109" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - -[[package]] -name = "syn" -version = "2.0.22" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2efbeae7acf4eabd6bcdcbd11c92f45231ddda7539edc7806bd1a04a03b24616" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - -[[package]] -name = "system-deps" -version = "6.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30c2de8a4d8f4b823d634affc9cd2a74ec98c53a756f317e529a48046cbf71f3" -dependencies = [ - "cfg-expr", - "heck", - "pkg-config", - "toml", - "version-compare", -] - -[[package]] -name = "target-lexicon" -version = "0.12.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b1c7f239eb94671427157bd93b3694320f3668d4e1eff08c7285366fd777fac" - -[[package]] -name = "temp-dir" -version = "0.1.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af547b166dd1ea4b472165569fc456cfb6818116f854690b0ff205e636523dab" - -[[package]] -name = "thiserror" -version = "1.0.40" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "978c9a314bd8dc99be594bc3c175faaa9794be04a5a5e153caba6915336cebac" -dependencies = [ - "thiserror-impl", -] - -[[package]] -name = "thiserror-impl" -version = "1.0.40" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9456a42c5b0d803c8cd86e73dd7cc9edd429499f37a3550d286d5e86720569f" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.22", -] - -[[package]] -name = "toml" -version = "0.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ebafdf5ad1220cb59e7d17cf4d2c72015297b75b19a10472f99b89225089240" -dependencies = [ - "serde", - "serde_spanned", - "toml_datetime", - "toml_edit", -] - -[[package]] -name = "toml_datetime" -version = "0.6.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7cda73e2f1397b1262d6dfdcef8aafae14d1de7748d66822d3bfeeb6d03e5e4b" -dependencies = [ - "serde", -] - -[[package]] -name = "toml_edit" -version = "0.19.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "266f016b7f039eec8a1a80dfe6156b633d208b9fccca5e4db1d6775b0c4e34a7" -dependencies = [ - "indexmap", - "serde", - "serde_spanned", - "toml_datetime", - "winnow", -] - -[[package]] -name = "unicode-ident" -version = "1.0.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b15811caf2415fb889178633e7724bad2509101cde276048e013b9def5e51fa0" - -[[package]] -name = "version-compare" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "579a42fc0b8e0c63b76519a339be31bed574929511fa53c1a3acae26eb258f29" - -[[package]] -name = "version_check" -version = "0.9.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" - -[[package]] -name = "winapi" -version = "0.3.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" -dependencies = [ - "winapi-i686-pc-windows-gnu", - "winapi-x86_64-pc-windows-gnu", -] - -[[package]] -name = "winapi-i686-pc-windows-gnu" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" - -[[package]] -name = "winapi-x86_64-pc-windows-gnu" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" - -[[package]] -name = "winnow" -version = "0.4.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca0ace3845f0d96209f0375e6d367e3eb87eb65d27d445bdc9f1843a26f39448" -dependencies = [ - "memchr", -] diff --git a/burrow-gtk/Cargo.toml b/burrow-gtk/Cargo.toml deleted file mode 100644 index 4b7e9dc..0000000 --- a/burrow-gtk/Cargo.toml +++ /dev/null @@ -1,15 +0,0 @@ -[package] -name = "burrow-gtk" -version = "0.1.0" -edition = "2021" - -[dependencies] -gettext-rs = { version = "0.7", features = ["gettext-system"] } -gtk = { version = "0.6", package = "gtk4" } - -[dependencies.adw] -package = "libadwaita" -version = "0.3" -features = ["v1_2"] - -[workspace] diff --git a/burrow-gtk/README.md b/burrow-gtk/README.md deleted file mode 100644 index 130bae1..0000000 --- a/burrow-gtk/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# Burrow (GTK) - -A description of this project. diff --git a/burrow-gtk/com.hackclub.burrow.json b/burrow-gtk/com.hackclub.burrow.json deleted file mode 100644 index e4bfabe..0000000 --- a/burrow-gtk/com.hackclub.burrow.json +++ /dev/null @@ -1,64 +0,0 @@ -{ - "app-id" : "com.hackclub.burrow", - "runtime" : "org.gnome.Platform", - "runtime-version" : "45", - "sdk" : "org.gnome.Sdk", - "sdk-extensions" : [ - "org.freedesktop.Sdk.Extension.rust-stable" - ], - "command" : "burrow-gtk", - "finish-args" : [ - "--share=network", - "--share=ipc", - "--socket=fallback-x11", - "--device=dri", - "--socket=wayland" - ], - "build-options" : { - "append-path" : "/usr/lib/sdk/rust-stable/bin", - "build-args" : [ - "--share=network" - ], - "env" : { - "RUST_BACKTRACE" : "1", - "RUST_LOG" : "burrow-gtk=debug" - } - }, - "cleanup" : [ - "/include", - "/lib/pkgconfig", - "/man", - "/share/doc", - "/share/gtk-doc", - "/share/man", - "/share/pkgconfig", - "*.la", - "*.a" - ], - "modules" : [ - { - "name": "blueprint-compiler", - "buildsystem": "meson", - "sources": [ - { - "type": "git", - "url": "https://gitlab.gnome.org/jwestman/blueprint-compiler", - "tag": "v0.8.1" - } - ] - }, - { - "name" : "burrow-gtk", - "builddir" : true, - "subdir" : "burrow-gtk", - "buildsystem" : "meson", - "sources" : [ - { - "type": "dir", - "path": "./" - } - - ] - } - ] -} diff --git a/burrow-gtk/data/com.hackclub.burrow.appdata.xml.in b/burrow-gtk/data/com.hackclub.burrow.appdata.xml.in deleted file mode 100644 index 7f8e86b..0000000 --- a/burrow-gtk/data/com.hackclub.burrow.appdata.xml.in +++ /dev/null @@ -1,8 +0,0 @@ - - - com.hackclub.burrow.desktop - GPL-3.0-or-later - -

No description

-
-
diff --git a/burrow-gtk/data/com.hackclub.burrow.desktop.in b/burrow-gtk/data/com.hackclub.burrow.desktop.in deleted file mode 100644 index 91c463d..0000000 --- a/burrow-gtk/data/com.hackclub.burrow.desktop.in +++ /dev/null @@ -1,8 +0,0 @@ -[Desktop Entry] -Name=Burrow -Exec=burrow-gtk -Icon=com.hackclub.burrow -Terminal=false -Type=Application -Categories=GTK;Network -StartupNotify=true diff --git a/burrow-gtk/data/com.hackclub.burrow.gschema.xml b/burrow-gtk/data/com.hackclub.burrow.gschema.xml deleted file mode 100644 index d1bceef..0000000 --- a/burrow-gtk/data/com.hackclub.burrow.gschema.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/burrow-gtk/data/icons/hicolor/scalable/apps/com.hackclub.burrow.svg b/burrow-gtk/data/icons/hicolor/scalable/apps/com.hackclub.burrow.svg deleted file mode 100644 index a74c4df..0000000 --- a/burrow-gtk/data/icons/hicolor/scalable/apps/com.hackclub.burrow.svg +++ /dev/null @@ -1,130 +0,0 @@ - - - - - - - - - - - - - - image/svg+xml - - - - - - - - application-x-executable - - - - - - - - - - - - - - - - diff --git a/burrow-gtk/data/icons/hicolor/symbolic/apps/com.hackclub.burrow-symbolic.svg b/burrow-gtk/data/icons/hicolor/symbolic/apps/com.hackclub.burrow-symbolic.svg deleted file mode 100644 index 0444828..0000000 --- a/burrow-gtk/data/icons/hicolor/symbolic/apps/com.hackclub.burrow-symbolic.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/burrow-gtk/data/icons/meson.build b/burrow-gtk/data/icons/meson.build deleted file mode 100644 index 86f6480..0000000 --- a/burrow-gtk/data/icons/meson.build +++ /dev/null @@ -1,13 +0,0 @@ -application_id = 'com.hackclub.burrow' - -scalable_dir = join_paths('hicolor', 'scalable', 'apps') -install_data( - join_paths(scalable_dir, ('@0@.svg').format(application_id)), - install_dir: join_paths(get_option('datadir'), 'icons', scalable_dir) -) - -symbolic_dir = join_paths('hicolor', 'symbolic', 'apps') -install_data( - join_paths(symbolic_dir, ('@0@-symbolic.svg').format(application_id)), - install_dir: join_paths(get_option('datadir'), 'icons', symbolic_dir) -) diff --git a/burrow-gtk/data/meson.build b/burrow-gtk/data/meson.build deleted file mode 100644 index fadf18f..0000000 --- a/burrow-gtk/data/meson.build +++ /dev/null @@ -1,39 +0,0 @@ -desktop_file = i18n.merge_file( - input: 'com.hackclub.burrow.desktop.in', - output: 'com.hackclub.burrow.desktop', - type: 'desktop', - po_dir: '../po', - install: true, - install_dir: join_paths(get_option('datadir'), 'applications') -) - -desktop_utils = find_program('desktop-file-validate', required: false) -if desktop_utils.found() - test('Validate desktop file', desktop_utils, args: [desktop_file]) -endif - -appstream_file = i18n.merge_file( - input: 'com.hackclub.burrow.appdata.xml.in', - output: 'com.hackclub.burrow.appdata.xml', - po_dir: '../po', - install: true, - install_dir: join_paths(get_option('datadir'), 'appdata') -) - -appstream_util = find_program('appstream-util', required: false) -if appstream_util.found() - test('Validate appstream file', appstream_util, args: ['validate', appstream_file]) -endif - -install_data('com.hackclub.burrow.gschema.xml', - install_dir: join_paths(get_option('datadir'), 'glib-2.0/schemas') -) - -compile_schemas = find_program('glib-compile-schemas', required: false) -if compile_schemas.found() - test('Validate schema file', - compile_schemas, - args: ['--strict', '--dry-run', meson.current_source_dir()]) -endif - -subdir('icons') diff --git a/burrow-gtk/meson.build b/burrow-gtk/meson.build deleted file mode 100644 index 3e9a026..0000000 --- a/burrow-gtk/meson.build +++ /dev/null @@ -1,20 +0,0 @@ -project('burrow-gtk', 'rust', - version: '0.1.0', - meson_version: '>= 0.62.0', - default_options: [ 'warning_level=2', 'werror=false', ], -) - -i18n = import('i18n') -gnome = import('gnome') - - - -subdir('data') -subdir('src') -subdir('po') - -gnome.post_install( - glib_compile_schemas: true, - gtk_update_icon_cache: true, - update_desktop_database: true, -) diff --git a/burrow-gtk/po/LINGUAS b/burrow-gtk/po/LINGUAS deleted file mode 100644 index e69de29..0000000 diff --git a/burrow-gtk/po/POTFILES b/burrow-gtk/po/POTFILES deleted file mode 100644 index d1acb5a..0000000 --- a/burrow-gtk/po/POTFILES +++ /dev/null @@ -1,4 +0,0 @@ -data/com.hackclub.Burrow.desktop.in -data/com.hackclub.Burrow.appdata.xml.in -data/com.hackclub.Burrow.gschema.xml -src/window.ui diff --git a/burrow-gtk/po/meson.build b/burrow-gtk/po/meson.build deleted file mode 100644 index 4b239a8..0000000 --- a/burrow-gtk/po/meson.build +++ /dev/null @@ -1 +0,0 @@ -i18n.gettext('burrow-gtk', preset: 'glib') diff --git a/burrow-gtk/src/.gitignore b/burrow-gtk/src/.gitignore deleted file mode 100644 index c6bb786..0000000 --- a/burrow-gtk/src/.gitignore +++ /dev/null @@ -1 +0,0 @@ -config.rs diff --git a/burrow-gtk/src/application.rs b/burrow-gtk/src/application.rs deleted file mode 100644 index 6db828c..0000000 --- a/burrow-gtk/src/application.rs +++ /dev/null @@ -1,92 +0,0 @@ -use gtk::prelude::*; -use adw::subclass::prelude::*; -use gtk::{gio, glib}; - -use crate::config::VERSION; -use crate::BurrowGtkWindow; - -mod imp { - use super::*; - - #[derive(Debug, Default)] - pub struct BurrowGtkApplication {} - - #[glib::object_subclass] - impl ObjectSubclass for BurrowGtkApplication { - const NAME: &'static str = "BurrowGtkApplication"; - type Type = super::BurrowGtkApplication; - type ParentType = adw::Application; - } - - impl ObjectImpl for BurrowGtkApplication { - fn constructed(&self) { - self.parent_constructed(); - let obj = self.obj(); - obj.setup_gactions(); - obj.set_accels_for_action("app.quit", &["q"]); - } - } - - impl ApplicationImpl for BurrowGtkApplication { - // We connect to the activate callback to create a window when the application - // has been launched. Additionally, this callback notifies us when the user - // tries to launch a "second instance" of the application. When they try - // to do that, we'll just present any existing window. - fn activate(&self) { - let application = self.obj(); - // Get the current window or create one if necessary - let window = if let Some(window) = application.active_window() { - window - } else { - let window = BurrowGtkWindow::new(&*application); - window.upcast() - }; - - // Ask the window manager/compositor to present the window - window.present(); - } - } - - impl GtkApplicationImpl for BurrowGtkApplication {} - impl AdwApplicationImpl for BurrowGtkApplication {} -} - -glib::wrapper! { - pub struct BurrowGtkApplication(ObjectSubclass) - @extends gio::Application, gtk::Application, adw::Application, - @implements gio::ActionGroup, gio::ActionMap; -} - -impl BurrowGtkApplication { - pub fn new(application_id: &str, flags: &gio::ApplicationFlags) -> Self { - glib::Object::builder() - .property("application-id", application_id) - .property("flags", flags) - .build() - } - - fn setup_gactions(&self) { - let quit_action = gio::ActionEntry::builder("quit") - .activate(move |app: &Self, _, _| app.quit()) - .build(); - let about_action = gio::ActionEntry::builder("about") - .activate(move |app: &Self, _, _| app.show_about()) - .build(); - self.add_action_entries([quit_action, about_action]); - } - - fn show_about(&self) { - let window = self.active_window().unwrap(); - let about = adw::AboutWindow::builder() - .transient_for(&window) - .application_name("Burrow") - .application_icon("com.hackclub.burrow") - .developer_name("Hack Club") - .version(VERSION) - .developers(vec!["Hack Club"]) - .copyright("© 2023 The Hack Foundation") - .build(); - - about.present(); - } -} diff --git a/burrow-gtk/src/burrow-gtk.gresource.xml b/burrow-gtk/src/burrow-gtk.gresource.xml deleted file mode 100644 index 7a7357e..0000000 --- a/burrow-gtk/src/burrow-gtk.gresource.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - window.ui - gtk/help-overlay.ui - - - diff --git a/burrow-gtk/src/config.rs b/burrow-gtk/src/config.rs deleted file mode 100644 index cb50d0e..0000000 --- a/burrow-gtk/src/config.rs +++ /dev/null @@ -1,4 +0,0 @@ -pub static VERSION: &str = "0.1.0"; -pub static GETTEXT_PACKAGE: &str = "burrow-gtk"; -pub static LOCALEDIR: &str = "/usr/local/share/locale"; -pub static PKGDATADIR: &str = "/usr/local/share/burrow-gtk"; diff --git a/burrow-gtk/src/config.rs.in b/burrow-gtk/src/config.rs.in deleted file mode 100644 index 1a24858..0000000 --- a/burrow-gtk/src/config.rs.in +++ /dev/null @@ -1,4 +0,0 @@ -pub static VERSION: &str = @VERSION@; -pub static GETTEXT_PACKAGE: &str = @GETTEXT_PACKAGE@; -pub static LOCALEDIR: &str = @LOCALEDIR@; -pub static PKGDATADIR: &str = @PKGDATADIR@; diff --git a/burrow-gtk/src/gtk/help-overlay.blp b/burrow-gtk/src/gtk/help-overlay.blp deleted file mode 100644 index 90ee78f..0000000 --- a/burrow-gtk/src/gtk/help-overlay.blp +++ /dev/null @@ -1,24 +0,0 @@ -using Gtk 4.0; - -ShortcutsWindow help_overlay { - modal: true; - - ShortcutsSection { - section-name: "shortcuts"; - max-height: 10; - - ShortcutsGroup { - title: C_("shortcut window", "General"); - - ShortcutsShortcut { - title: C_("shortcut window", "Show Shortcuts"); - action-name: "win.show-help-overlay"; - } - - ShortcutsShortcut { - title: C_("shortcut window", "Quit"); - action-name: "app.quit"; - } - } - } -} diff --git a/burrow-gtk/src/main.rs b/burrow-gtk/src/main.rs deleted file mode 100644 index 85acd15..0000000 --- a/burrow-gtk/src/main.rs +++ /dev/null @@ -1,35 +0,0 @@ -mod application; -mod config; -mod window; - -use self::application::BurrowGtkApplication; -use self::window::BurrowGtkWindow; - -use config::{GETTEXT_PACKAGE, LOCALEDIR, PKGDATADIR}; -use gettextrs::{bind_textdomain_codeset, bindtextdomain, textdomain}; -use gtk::{gio, glib}; -use gtk::prelude::*; - -fn main() -> glib::ExitCode { - // Set up gettext translations - bindtextdomain(GETTEXT_PACKAGE, LOCALEDIR).expect("Unable to bind the text domain"); - bind_textdomain_codeset(GETTEXT_PACKAGE, "UTF-8") - .expect("Unable to set the text domain encoding"); - textdomain(GETTEXT_PACKAGE).expect("Unable to switch to the text domain"); - - // Load resources - let resources = gio::Resource::load(PKGDATADIR.to_owned() + "/burrow-gtk.gresource") - .expect("Could not load resources"); - gio::resources_register(&resources); - - // Create a new GtkApplication. The application manages our main loop, - // application windows, integration with the window manager/compositor, and - // desktop features such as file opening and single-instance applications. - let app = BurrowGtkApplication::new("com.hackclub.burrow", &gio::ApplicationFlags::empty()); - - // Run the application. This function will block until the application - // exits. Upon return, we have our exit code to return to the shell. (This - // is the code you see when you do `echo $?` after running a command in a - // terminal. - app.run() -} diff --git a/burrow-gtk/src/meson.build b/burrow-gtk/src/meson.build deleted file mode 100644 index 15ec34b..0000000 --- a/burrow-gtk/src/meson.build +++ /dev/null @@ -1,67 +0,0 @@ -pkgdatadir = join_paths(get_option('prefix'), get_option('datadir'), meson.project_name()) -gnome = import('gnome') - - -blueprints = custom_target('blueprints', - input: files( - 'gtk/help-overlay.blp', - 'window.blp', - ), - output: '.', - command: [find_program('blueprint-compiler'), 'batch-compile', '@OUTPUT@', '@CURRENT_SOURCE_DIR@', '@INPUT@'], -) - -gnome.compile_resources('burrow-gtk', - 'burrow-gtk.gresource.xml', - gresource_bundle: true, - install: true, - install_dir: pkgdatadir, - dependencies: blueprints -) - -conf = configuration_data() -conf.set_quoted('VERSION', meson.project_version()) -conf.set_quoted('GETTEXT_PACKAGE', 'burrow-gtk') -conf.set_quoted('LOCALEDIR', join_paths(get_option('prefix'), get_option('localedir'))) -conf.set_quoted('PKGDATADIR', pkgdatadir) - -configure_file( - input: 'config.rs.in', - output: 'config.rs', - configuration: conf -) - -# Copy the config.rs output to the source directory. -run_command( - 'cp', - join_paths(meson.project_build_root(), 'src', 'config.rs'), - join_paths(meson.project_source_root(), 'src', 'config.rs'), - check: true -) - -cargo_bin = find_program('cargo') -cargo_opt = [ '--manifest-path', meson.project_source_root() / 'Cargo.toml' ] -cargo_opt += [ '--target-dir', meson.project_build_root() / 'src' ] -cargo_env = [ 'CARGO_HOME=' + meson.project_build_root() / 'cargo-home' ] - -if get_option('buildtype') == 'release' - cargo_options += [ '--release' ] - rust_target = 'release' -else - rust_target = 'debug' -endif - -cargo_build = custom_target( - 'cargo-build', - build_by_default: true, - build_always_stale: true, - output: meson.project_name(), - console: true, - install: true, - install_dir: get_option('bindir'), - command: [ - 'env', cargo_env, - cargo_bin, 'build', - cargo_opt, '&&', 'cp', 'src' / rust_target / meson.project_name(), '@OUTPUT@', - ] -) diff --git a/burrow-gtk/src/window.blp b/burrow-gtk/src/window.blp deleted file mode 100644 index 74f662d..0000000 --- a/burrow-gtk/src/window.blp +++ /dev/null @@ -1,48 +0,0 @@ -using Gtk 4.0; -using Adw 1; - -template BurrowGtkWindow : Adw.ApplicationWindow { - default-width: 600; - default-height: 400; - - Box { - orientation: vertical; - - HeaderBar header_bar { - [end] - MenuButton { - icon-name: "open-menu-symbolic"; - menu-model: primary_menu; - } - } - - Label label { - label: "Burrow GNOME"; - - vexpand: true; - - styles [ - "title-1", - ] - } - } -} - -menu primary_menu { - section { - item { - label: _("_Preferences"); - action: "app.preferences"; - } - - item { - label: _("_Keyboard Shortcuts"); - action: "win.show-help-overlay"; - } - - item { - label: _("_About Burrow"); - action: "app.about"; - } - } -} diff --git a/burrow-gtk/src/window.rs b/burrow-gtk/src/window.rs deleted file mode 100644 index 81037ab..0000000 --- a/burrow-gtk/src/window.rs +++ /dev/null @@ -1,51 +0,0 @@ -use gtk::prelude::*; -use adw::subclass::prelude::*; -use gtk::{gio, glib}; - -mod imp { - use super::*; - - #[derive(Debug, Default, gtk::CompositeTemplate)] - #[template(resource = "/com/hackclub/burrow/window.ui")] - pub struct BurrowGtkWindow { - // Template widgets - #[template_child] - pub header_bar: TemplateChild, - #[template_child] - pub label: TemplateChild, - } - - #[glib::object_subclass] - impl ObjectSubclass for BurrowGtkWindow { - const NAME: &'static str = "BurrowGtkWindow"; - type Type = super::BurrowGtkWindow; - type ParentType = adw::ApplicationWindow; - - fn class_init(klass: &mut Self::Class) { - klass.bind_template(); - } - - fn instance_init(obj: &glib::subclass::InitializingObject) { - obj.init_template(); - } - } - - impl ObjectImpl for BurrowGtkWindow {} - impl WidgetImpl for BurrowGtkWindow {} - impl WindowImpl for BurrowGtkWindow {} - impl ApplicationWindowImpl for BurrowGtkWindow {} - impl AdwApplicationWindowImpl for BurrowGtkWindow {} -} - -glib::wrapper! { - pub struct BurrowGtkWindow(ObjectSubclass) - @extends gtk::Widget, gtk::Window, gtk::ApplicationWindow, adw::ApplicationWindow, @implements gio::ActionGroup, gio::ActionMap; -} - -impl BurrowGtkWindow { - pub fn new>(application: &P) -> Self { - glib::Object::builder() - .property("application", application) - .build() - } -} diff --git a/burrow-gtk/subprojects/blueprint-compiler.wrap b/burrow-gtk/subprojects/blueprint-compiler.wrap deleted file mode 100644 index 6e6ee32..0000000 --- a/burrow-gtk/subprojects/blueprint-compiler.wrap +++ /dev/null @@ -1,8 +0,0 @@ -[wrap-git] -directory = blueprint-compiler -url = https://gitlab.gnome.org/jwestman/blueprint-compiler.git -revision = main -depth = 1 - -[provide] -program_names = blueprint-compiler \ No newline at end of file diff --git a/tun/src/unix/apple/mod.rs b/tun/src/unix/apple/mod.rs index 427f5e8..b96be9b 100644 --- a/tun/src/unix/apple/mod.rs +++ b/tun/src/unix/apple/mod.rs @@ -156,3 +156,32 @@ impl TunInterface { .map_err(|_| Error::new(ErrorKind::Other, "Conversion error"))? } } + +#[cfg(test)] +mod test { + use super::*; + use std::net::Ipv4Addr; + + #[test] + fn mtu() { + let interf = TunInterface::new().unwrap(); + + interf.set_mtu(500).unwrap(); + + assert_eq!(interf.mtu().unwrap(), 500); + } + + #[test] + #[throws] + fn netmask() { + let interf = TunInterface::new()?; + + let netmask = Ipv4Addr::new(255, 0, 0, 0); + let addr = Ipv4Addr::new(192, 168, 1, 1); + + interf.set_ipv4_addr(addr)?; + interf.set_netmask(netmask)?; + + assert_eq!(interf.netmask()?, netmask); + } +} diff --git a/tun/src/unix/linux/mod.rs b/tun/src/unix/linux/mod.rs index 7b8b05d..abc1ccd 100644 --- a/tun/src/unix/linux/mod.rs +++ b/tun/src/unix/linux/mod.rs @@ -172,3 +172,32 @@ impl TunInterface { self.socket.send(buf)? } } + +#[cfg(test)] +mod test { + use super::TunInterface; + use std::net::Ipv4Addr; + + #[test] + fn mtu() { + let interf = TunInterface::new().unwrap(); + + interf.set_mtu(500).unwrap(); + + assert_eq!(interf.mtu().unwrap(), 500); + } + + #[test] + #[throws] + fn netmask() { + let interf = TunInterface::new()?; + + let netmask = Ipv4Addr::new(255, 0, 0, 0); + let addr = Ipv4Addr::new(192, 168, 1, 1); + + interf.set_ipv4_addr(addr)?; + interf.set_netmask(netmask)?; + + assert_eq!(interf.netmask()?, netmask); + } +} diff --git a/tun/src/unix/mod.rs b/tun/src/unix/mod.rs index 1defbbd..af67d39 100644 --- a/tun/src/unix/mod.rs +++ b/tun/src/unix/mod.rs @@ -61,4 +61,39 @@ pub fn string_to_ifname(name: &str) -> [libc::c_char; libc::IFNAMSIZ] { let len = name.len().min(buf.len()); buf[..len].copy_from_slice(unsafe { &*(name.as_bytes() as *const _ as *const [libc::c_char]) }); buf -} \ No newline at end of file +} + +#[cfg(test)] +mod test { + + use super::*; + + use std::net::Ipv4Addr; + + #[throws] + #[test] + fn tst_read() { + // This test is interactive, you need to send a packet to any server through 192.168.1.10 + // EG. `sudo route add 8.8.8.8 192.168.1.10`, + //`dig @8.8.8.8 hackclub.com` + let mut tun = TunInterface::new()?; + println!("tun name: {:?}", tun.name()?); + tun.set_ipv4_addr(Ipv4Addr::from([192, 168, 1, 10]))?; + println!("tun ip: {:?}", tun.ipv4_addr()?); + println!("Waiting for a packet..."); + let buf = &mut [0u8; 1500]; + let res = tun.recv(buf); + println!("Received!"); + assert!(res.is_ok()); + } + + #[test] + #[throws] + fn write_packets() { + let tun = TunInterface::new()?; + let mut buf = [0u8; 1500]; + buf[0] = 6 << 4; + let bytes_written = tun.send(&buf)?; + assert_eq!(bytes_written, 1504); + } +} diff --git a/tun/tests/configure.rs b/tun/tests/configure.rs index 35f9726..48ddd96 100644 --- a/tun/tests/configure.rs +++ b/tun/tests/configure.rs @@ -1,6 +1,6 @@ use fehler::throws; use std::io::Error; -use std::net::Ipv4Addr; +use std::net::{Ipv4Addr}; use tun::TunInterface; #[test] @@ -11,7 +11,6 @@ fn test_create() { #[test] #[throws] -#[cfg(not(target_os = "windows"))] fn test_set_get_ipv4() { let tun = TunInterface::new()?; @@ -24,10 +23,8 @@ fn test_set_get_ipv4() { #[test] #[throws] -#[cfg(not(any(target_os = "windows", target_vendor = "apple")))] +#[cfg(target_os = "linux")] fn test_set_get_ipv6() { - use std::net::Ipv6Addr; - let tun = TunInterface::new()?; let addr = Ipv6Addr::new(1, 1, 1, 1, 1, 1, 1, 1); @@ -36,29 +33,3 @@ fn test_set_get_ipv6() { // let result = tun.ipv6_addr()?; // assert_eq!(addr, result); } - -#[test] -#[throws] -#[cfg(not(target_os = "windows"))] -fn test_set_get_mtu() { - let interf = TunInterface::new()?; - - interf.set_mtu(500)?; - - assert_eq!(interf.mtu().unwrap(), 500); -} - -#[test] -#[throws] -#[cfg(not(target_os = "windows"))] -fn test_set_get_netmask() { - let interf = TunInterface::new()?; - - let netmask = Ipv4Addr::new(255, 0, 0, 0); - let addr = Ipv4Addr::new(192, 168, 1, 1); - - interf.set_ipv4_addr(addr)?; - interf.set_netmask(netmask)?; - - assert_eq!(interf.netmask()?, netmask); -} diff --git a/tun/tests/packets.rs b/tun/tests/packets.rs deleted file mode 100644 index 69f9226..0000000 --- a/tun/tests/packets.rs +++ /dev/null @@ -1,36 +0,0 @@ -use fehler::throws; -use std::io::Error; -use std::io::Write; -use std::net::Ipv4Addr; -use tun::TunInterface; - -#[throws] -#[test] -#[ignore = "requires interactivity"] -#[cfg(not(target_os = "windows"))] -fn tst_read() { - // This test is interactive, you need to send a packet to any server through 192.168.1.10 - // EG. `sudo route add 8.8.8.8 192.168.1.10`, - //`dig @8.8.8.8 hackclub.com` - let mut tun = TunInterface::new()?; - println!("tun name: {:?}", tun.name()?); - tun.set_ipv4_addr(Ipv4Addr::from([192, 168, 1, 10]))?; - println!("tun ip: {:?}", tun.ipv4_addr()?); - println!("Waiting for a packet..."); - let buf = &mut [0u8; 1500]; - let res = tun.recv(buf); - println!("Received!"); - assert!(res.is_ok()); -} - -#[test] -#[throws] -#[ignore = "requires interactivity"] -#[cfg(not(target_os = "windows"))] -fn write_packets() { - let tun = TunInterface::new()?; - let mut buf = [0u8; 1500]; - buf[0] = 6 << 4; - let bytes_written = tun.send(&buf)?; - assert_eq!(bytes_written, 1504); -}