summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile1
-rw-r--r--audio/Makefile5
-rw-r--r--audio/pwvucontrol/Makefile180
-rw-r--r--audio/pwvucontrol/distinfo273
-rw-r--r--audio/pwvucontrol/files/patch-cargo-crates_pipewire-sys-0.9.2_build.rs22
-rw-r--r--audio/pwvucontrol/pkg-descr4
-rw-r--r--audio/pwvucontrol/pkg-plist14
-rw-r--r--pkglist1
8 files changed, 500 insertions, 0 deletions
diff --git a/Makefile b/Makefile
index 5e04e99..d91615a 100644
--- a/Makefile
+++ b/Makefile
@@ -1,5 +1,6 @@
COMMENT = Custom ports tree
+SUBDIR += audio
SUBDIR += devel
SUBDIR += misc
SUBDIR += multimedia
diff --git a/audio/Makefile b/audio/Makefile
new file mode 100644
index 0000000..b00fe4a
--- /dev/null
+++ b/audio/Makefile
@@ -0,0 +1,5 @@
+COMMENT = Audio tools
+
+SUBDIR += pwvucontrol
+
+.include <bsd.port.subdir.mk>
diff --git a/audio/pwvucontrol/Makefile b/audio/pwvucontrol/Makefile
new file mode 100644
index 0000000..6e22c23
--- /dev/null
+++ b/audio/pwvucontrol/Makefile
@@ -0,0 +1,180 @@
+PORTNAME= pwvucontrol
+DISTVERSION= 0.5.3
+PORTREVISION= 1
+CATEGORIES= audio
+
+MAINTAINER= cashmere@autistici.org
+COMMENT= GTK4 volume control applet for PipeWire
+WWW= https://github.com/saivert/pwvucontrol
+
+LICENSE= GPLv3
+LICENSE_FILE= ${WRKSRC}/COPYING
+
+BUILD_DEPENDS= blueprint-compiler:devel/blueprint-compiler
+LIB_DEPENDS= libpipewire-0.3.so:multimedia/pipewire \
+ libwireplumber-0.5.so:multimedia/wireplumber
+
+USES= cargo gettext gnome llvm localbase:ldflags meson pkgconfig
+USE_GITHUB= yes
+GH_ACCOUNT= saivert
+# wireplumber crate is a git dependency (see post-patch): fetch the pinned
+# commit and point Cargo.toml at it as a path dependency
+GH_TUPLE= saivert:wireplumber.rs:04fbbc6ea157cdd7061f6a5f2a6b22e102fccbcc:wireplumber/wireplumber.rs
+USE_GNOME= glib20 gtk40 libadwaita
+
+CARGO_BUILD= no
+CARGO_INSTALL= no
+CARGO_TEST= no
+MAKE_ENV= ${CARGO_ENV}
+
+CARGO_CRATES= aho-corasick-1.1.4 \
+ annotate-snippets-0.11.5 \
+ anstyle-1.0.14 \
+ anyhow-1.0.103 \
+ autocfg-1.5.1 \
+ bindgen-0.72.1 \
+ bitflags-2.13.0 \
+ bitmaps-3.2.1 \
+ block-0.1.6 \
+ cairo-rs-0.21.5 \
+ cairo-sys-rs-0.21.5 \
+ cc-1.2.66 \
+ cexpr-0.6.0 \
+ cfg-expr-0.15.8 \
+ cfg-expr-0.20.8 \
+ cfg-if-1.0.4 \
+ cfg_aliases-0.2.1 \
+ clang-sys-1.8.1 \
+ convert_case-0.8.0 \
+ cookie-factory-0.3.3 \
+ either-1.16.0 \
+ equivalent-1.0.2 \
+ field-offset-0.3.6 \
+ find-msvc-tools-0.1.9 \
+ formatx-0.2.4 \
+ futures-0.3.32 \
+ futures-channel-0.3.32 \
+ futures-core-0.3.32 \
+ futures-executor-0.3.32 \
+ futures-io-0.3.32 \
+ futures-macro-0.3.32 \
+ futures-sink-0.3.32 \
+ futures-task-0.3.32 \
+ futures-util-0.3.32 \
+ gdk-pixbuf-0.21.5 \
+ gdk-pixbuf-sys-0.21.5 \
+ gdk4-0.10.3 \
+ gdk4-sys-0.10.3 \
+ gettext-rs-0.7.7 \
+ gettext-sys-0.26.0 \
+ gio-0.21.5 \
+ gio-sys-0.21.5 \
+ glib-0.21.5 \
+ glib-macros-0.21.5 \
+ glib-sys-0.21.5 \
+ glob-0.3.3 \
+ gobject-sys-0.21.5 \
+ graphene-rs-0.21.5 \
+ graphene-sys-0.21.5 \
+ gsk4-0.10.3 \
+ gsk4-sys-0.10.3 \
+ gtk4-0.10.3 \
+ gtk4-macros-0.10.3 \
+ gtk4-sys-0.10.3 \
+ hashbrown-0.17.1 \
+ heck-0.5.0 \
+ imbl-3.0.0 \
+ imbl-sized-chunks-0.1.3 \
+ indexmap-2.14.0 \
+ itertools-0.13.0 \
+ lazy_static-1.5.0 \
+ libadwaita-0.8.1 \
+ libadwaita-sys-0.8.1 \
+ libc-0.2.186 \
+ libloading-0.8.9 \
+ libspa-0.9.2 \
+ libspa-sys-0.9.2 \
+ locale_config-0.3.0 \
+ log-0.4.33 \
+ malloc_buf-0.0.6 \
+ memchr-2.8.3 \
+ memoffset-0.9.1 \
+ minimal-lexical-0.2.1 \
+ nix-0.30.1 \
+ nom-7.1.3 \
+ nom-8.0.0 \
+ objc-0.2.7 \
+ objc-foundation-0.1.1 \
+ objc_id-0.1.1 \
+ once_cell-1.21.4 \
+ pango-0.21.5 \
+ pango-sys-0.21.5 \
+ pin-project-lite-0.2.17 \
+ pipewire-0.9.2 \
+ pipewire-sys-0.9.2 \
+ pkg-config-0.3.33 \
+ proc-macro-crate-3.5.0 \
+ proc-macro2-1.0.106 \
+ quote-1.0.46 \
+ rand_core-0.6.4 \
+ rand_xoshiro-0.6.0 \
+ regex-1.12.4 \
+ regex-automata-0.4.14 \
+ regex-syntax-0.8.11 \
+ rustc-hash-2.1.3 \
+ rustc_version-0.4.1 \
+ semver-1.0.28 \
+ serde-1.0.228 \
+ serde_core-1.0.228 \
+ serde_derive-1.0.228 \
+ serde_spanned-0.6.9 \
+ serde_spanned-1.1.1 \
+ shlex-1.3.0 \
+ shlex-2.0.1 \
+ slab-0.4.12 \
+ smallvec-1.15.2 \
+ syn-2.0.118 \
+ system-deps-6.2.2 \
+ system-deps-7.0.8 \
+ target-lexicon-0.12.16 \
+ target-lexicon-0.13.5 \
+ temp-dir-0.1.16 \
+ thiserror-2.0.18 \
+ thiserror-impl-2.0.18 \
+ toml-0.8.23 \
+ toml-1.1.2+spec-1.1.0 \
+ toml_datetime-0.6.11 \
+ toml_datetime-1.1.1+spec-1.1.0 \
+ toml_edit-0.22.27 \
+ toml_edit-0.25.12+spec-1.1.0 \
+ toml_parser-1.1.2+spec-1.1.0 \
+ toml_writer-1.1.1+spec-1.1.0 \
+ unicode-ident-1.0.24 \
+ unicode-segmentation-1.13.3 \
+ unicode-width-0.2.2 \
+ version-compare-0.2.1 \
+ version_check-0.9.5 \
+ winapi-0.3.9 \
+ winapi-i686-pc-windows-gnu-0.4.0 \
+ winapi-x86_64-pc-windows-gnu-0.4.0 \
+ windows-link-0.2.1 \
+ windows-sys-0.61.2 \
+ winnow-0.7.15 \
+ winnow-1.0.3
+
+post-patch:
+# clang-sys: use the llvm-config from devel/llvm (same fix as multimedia/helvum)
+ @${REINPLACE_CMD} -e 's,"llvm-config,"${LLVM_CONFIG},' \
+ ${WRKSRC_crate_clang-sys}/build/common.rs \
+ ${WRKSRC_crate_clang-sys}/src/support.rs
+# turn the wireplumber git dependency into a path dependency (GH_TUPLE above)
+ @${REINPLACE_CMD} -e 's|^git = "https://github.com/saivert/wireplumber.rs.git"|path = "wireplumber.rs"|' \
+ -e '/^branch = "wp-0.5-glib-0.21-pipewire-0.9"$$/d' ${WRKSRC}/Cargo.toml
+ @${REINPLACE_CMD} -e '/^source = "git+https:\/\/github.com\/saivert\/wireplumber.rs.git/d' \
+ ${WRKSRC}/Cargo.lock
+# do not override CARGO_HOME: the ports framework's vendor config lives there
+ @${REINPLACE_CMD} -e "/'CARGO_HOME='/d" ${WRKSRC}/src/meson.build
+# caches are rebuilt by pkg triggers on the target system, not staged
+ @${REINPLACE_CMD} -e 's/: true,$$/: false,/' ${WRKSRC}/meson.build
+
+.include <bsd.port.mk>
diff --git a/audio/pwvucontrol/distinfo b/audio/pwvucontrol/distinfo
new file mode 100644
index 0000000..ee8003f
--- /dev/null
+++ b/audio/pwvucontrol/distinfo
@@ -0,0 +1,273 @@
+TIMESTAMP = 1784991534
+SHA256 (rust/crates/aho-corasick-1.1.4.crate) = ddd31a130427c27518df266943a5308ed92d4b226cc639f5a8f1002816174301
+SIZE (rust/crates/aho-corasick-1.1.4.crate) = 184015
+SHA256 (rust/crates/annotate-snippets-0.11.5.crate) = 710e8eae58854cdc1790fcb56cca04d712a17be849eeb81da2a724bf4bae2bc4
+SIZE (rust/crates/annotate-snippets-0.11.5.crate) = 34687
+SHA256 (rust/crates/anstyle-1.0.14.crate) = 940b3a0ca603d1eade50a4846a2afffd5ef57a9feac2c0e2ec2e14f9ead76000
+SIZE (rust/crates/anstyle-1.0.14.crate) = 17787
+SHA256 (rust/crates/anyhow-1.0.103.crate) = 2a4385e2e34eb35d6b3efe798b9eb88096925d87726c0798709bf56d9ed84af3
+SIZE (rust/crates/anyhow-1.0.103.crate) = 48746
+SHA256 (rust/crates/autocfg-1.5.1.crate) = f2032f911046de80f0a198e0901378627c33f59ea0ac00e363d481118bd70a53
+SIZE (rust/crates/autocfg-1.5.1.crate) = 18911
+SHA256 (rust/crates/bindgen-0.72.1.crate) = 993776b509cfb49c750f11b8f07a46fa23e0a1386ffc01fb1e7d343efc387895
+SIZE (rust/crates/bindgen-0.72.1.crate) = 246071
+SHA256 (rust/crates/bitflags-2.13.0.crate) = b4388bee8683e3d04af747c73422af53102d2bd24d9eadb6cbc100baef4b43f8
+SIZE (rust/crates/bitflags-2.13.0.crate) = 51280
+SHA256 (rust/crates/bitmaps-3.2.1.crate) = a1d084b0137aaa901caf9f1e8b21daa6aa24d41cd806e111335541eff9683bd6
+SIZE (rust/crates/bitmaps-3.2.1.crate) = 19587
+SHA256 (rust/crates/block-0.1.6.crate) = 0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a
+SIZE (rust/crates/block-0.1.6.crate) = 4077
+SHA256 (rust/crates/cairo-rs-0.21.5.crate) = b01fe135c0bd16afe262b6dea349bd5ea30e6de50708cec639aae7c5c14cc7e4
+SIZE (rust/crates/cairo-rs-0.21.5.crate) = 58086
+SHA256 (rust/crates/cairo-sys-rs-0.21.5.crate) = 06c28280c6b12055b5e39e4554271ae4e6630b27c0da9148c4cf6485fc6d245c
+SIZE (rust/crates/cairo-sys-rs-0.21.5.crate) = 14448
+SHA256 (rust/crates/cc-1.2.66.crate) = f5d6cac793997bd970000024b2934968efe83b382de4fdcf4fcb46b6ee4ad996
+SIZE (rust/crates/cc-1.2.66.crate) = 95653
+SHA256 (rust/crates/cexpr-0.6.0.crate) = 6fac387a98bb7c37292057cffc56d62ecb629900026402633ae9160df93a8766
+SIZE (rust/crates/cexpr-0.6.0.crate) = 17966
+SHA256 (rust/crates/cfg-expr-0.15.8.crate) = d067ad48b8650848b989a59a86c6c36a995d02d2bf778d45c3c5d57bc2718f02
+SIZE (rust/crates/cfg-expr-0.15.8.crate) = 42108
+SHA256 (rust/crates/cfg-expr-0.20.8.crate) = fb693542bcafa528e198be0ebd9d3632ca5b7c93dbe7237460e199910835997c
+SIZE (rust/crates/cfg-expr-0.20.8.crate) = 45531
+SHA256 (rust/crates/cfg-if-1.0.4.crate) = 9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801
+SIZE (rust/crates/cfg-if-1.0.4.crate) = 9360
+SHA256 (rust/crates/cfg_aliases-0.2.1.crate) = 613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724
+SIZE (rust/crates/cfg_aliases-0.2.1.crate) = 6355
+SHA256 (rust/crates/clang-sys-1.8.1.crate) = 0b023947811758c97c59bf9d1c188fd619ad4718dcaa767947df1cadb14f39f4
+SIZE (rust/crates/clang-sys-1.8.1.crate) = 44009
+SHA256 (rust/crates/convert_case-0.8.0.crate) = baaaa0ecca5b51987b9423ccdc971514dd8b0bb7b4060b983d3664dad3f1f89f
+SIZE (rust/crates/convert_case-0.8.0.crate) = 22097
+SHA256 (rust/crates/cookie-factory-0.3.3.crate) = 9885fa71e26b8ab7855e2ec7cae6e9b380edff76cd052e07c683a0319d51b3a2
+SIZE (rust/crates/cookie-factory-0.3.3.crate) = 19084
+SHA256 (rust/crates/either-1.16.0.crate) = 91622ff5e7162018101f2fea40d6ebf4a78bbe5a49736a2020649edf9693679e
+SIZE (rust/crates/either-1.16.0.crate) = 21248
+SHA256 (rust/crates/equivalent-1.0.2.crate) = 877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f
+SIZE (rust/crates/equivalent-1.0.2.crate) = 7419
+SHA256 (rust/crates/field-offset-0.3.6.crate) = 38e2275cc4e4fc009b0669731a1e5ab7ebf11f469eaede2bab9309a5b4d6057f
+SIZE (rust/crates/field-offset-0.3.6.crate) = 10032
+SHA256 (rust/crates/find-msvc-tools-0.1.9.crate) = 5baebc0774151f905a1a2cc41989300b1e6fbb29aff0ceffa1064fdd3088d582
+SIZE (rust/crates/find-msvc-tools-0.1.9.crate) = 31493
+SHA256 (rust/crates/formatx-0.2.4.crate) = d8866fac38f53fc87fa3ae1b09ddd723e0482f8fa74323518b4c59df2c55a00a
+SIZE (rust/crates/formatx-0.2.4.crate) = 15119
+SHA256 (rust/crates/futures-0.3.32.crate) = 8b147ee9d1f6d097cef9ce628cd2ee62288d963e16fb287bd9286455b241382d
+SIZE (rust/crates/futures-0.3.32.crate) = 61234
+SHA256 (rust/crates/futures-channel-0.3.32.crate) = 07bbe89c50d7a535e539b8c17bc0b49bdb77747034daa8087407d655f3f7cc1d
+SIZE (rust/crates/futures-channel-0.3.32.crate) = 33213
+SHA256 (rust/crates/futures-core-0.3.32.crate) = 7e3450815272ef58cec6d564423f6e755e25379b217b0bc688e295ba24df6b1d
+SIZE (rust/crates/futures-core-0.3.32.crate) = 14684
+SHA256 (rust/crates/futures-executor-0.3.32.crate) = baf29c38818342a3b26b5b923639e7b1f4a61fc5e76102d4b1981c6dc7a7579d
+SIZE (rust/crates/futures-executor-0.3.32.crate) = 18581
+SHA256 (rust/crates/futures-io-0.3.32.crate) = cecba35d7ad927e23624b22ad55235f2239cfa44fd10428eecbeba6d6a717718
+SIZE (rust/crates/futures-io-0.3.32.crate) = 9191
+SHA256 (rust/crates/futures-macro-0.3.32.crate) = e835b70203e41293343137df5c0664546da5745f82ec9b84d40be8336958447b
+SIZE (rust/crates/futures-macro-0.3.32.crate) = 11929
+SHA256 (rust/crates/futures-sink-0.3.32.crate) = c39754e157331b013978ec91992bde1ac089843443c49cbc7f46150b0fad0893
+SIZE (rust/crates/futures-sink-0.3.32.crate) = 8106
+SHA256 (rust/crates/futures-task-0.3.32.crate) = 037711b3d59c33004d3856fbdc83b99d4ff37a24768fa1be9ce3538a1cde4393
+SIZE (rust/crates/futures-task-0.3.32.crate) = 11377
+SHA256 (rust/crates/futures-util-0.3.32.crate) = 389ca41296e6190b48053de0321d02a77f32f8a5d2461dd38762c0593805c6d6
+SIZE (rust/crates/futures-util-0.3.32.crate) = 168797
+SHA256 (rust/crates/gdk-pixbuf-0.21.5.crate) = debb0d39e3cdd84626edfd54d6e4a6ba2da9a0ef2e796e691c4e9f8646fda00c
+SIZE (rust/crates/gdk-pixbuf-0.21.5.crate) = 21530
+SHA256 (rust/crates/gdk-pixbuf-sys-0.21.5.crate) = bd95ad50b9a3d2551e25dd4f6892aff0b772fe5372d84514e9d0583af60a0ce7
+SIZE (rust/crates/gdk-pixbuf-sys-0.21.5.crate) = 13417
+SHA256 (rust/crates/gdk4-0.10.3.crate) = 756564212bbe4a4ce05d88ffbd2582581ac6003832d0d32822d0825cca84bfbf
+SIZE (rust/crates/gdk4-0.10.3.crate) = 102540
+SHA256 (rust/crates/gdk4-sys-0.10.3.crate) = a6d4e5b3ccf591826a4adcc83f5f57b4e59d1925cb4bf620b0d645f79498b034
+SIZE (rust/crates/gdk4-sys-0.10.3.crate) = 76249
+SHA256 (rust/crates/gettext-rs-0.7.7.crate) = 5d5857dc1b7f0fee86961de833f434e29494d72af102ce5355738c0664222bdf
+SIZE (rust/crates/gettext-rs-0.7.7.crate) = 15518
+SHA256 (rust/crates/gettext-sys-0.26.0.crate) = 4ea859ab0dd7e70ff823032b3e077d03d39c965d68c6c10775add60e999d8ee9
+SIZE (rust/crates/gettext-sys-0.26.0.crate) = 9677636
+SHA256 (rust/crates/gio-0.21.5.crate) = c5ff48bf600c68b476e61dc6b7c762f2f4eb91deef66583ba8bb815c30b5811a
+SIZE (rust/crates/gio-0.21.5.crate) = 233123
+SHA256 (rust/crates/gio-sys-0.21.5.crate) = 0071fe88dba8e40086c8ff9bbb62622999f49628344b1d1bf490a48a29d80f22
+SIZE (rust/crates/gio-sys-0.21.5.crate) = 86597
+SHA256 (rust/crates/glib-0.21.5.crate) = 16de123c2e6c90ce3b573b7330de19be649080ec612033d397d72da265f1bd8b
+SIZE (rust/crates/glib-0.21.5.crate) = 298716
+SHA256 (rust/crates/glib-macros-0.21.5.crate) = cf59b675301228a696fe01c3073974643365080a76cc3ed5bc2cbc466ad87f17
+SIZE (rust/crates/glib-macros-0.21.5.crate) = 70178
+SHA256 (rust/crates/glib-sys-0.21.5.crate) = 2d95e1a3a19ae464a7286e14af9a90683c64d70c02532d88d87ce95056af3e6c
+SIZE (rust/crates/glib-sys-0.21.5.crate) = 67231
+SHA256 (rust/crates/glob-0.3.3.crate) = 0cc23270f6e1808e30a928bdc84dea0b9b4136a8bc82338574f23baf47bbd280
+SIZE (rust/crates/glob-0.3.3.crate) = 22861
+SHA256 (rust/crates/gobject-sys-0.21.5.crate) = 2dca35da0d19a18f4575f3cb99fe1c9e029a2941af5662f326f738a21edaf294
+SIZE (rust/crates/gobject-sys-0.21.5.crate) = 22168
+SHA256 (rust/crates/graphene-rs-0.21.5.crate) = 2730030ac9db663fd8bfe1e7093742c1cafb92db9c315c9417c29032341fe2f9
+SIZE (rust/crates/graphene-rs-0.21.5.crate) = 23098
+SHA256 (rust/crates/graphene-sys-0.21.5.crate) = 915e32091ea9ad241e4b044af62b7351c2d68aeb24f489a0d7f37a0fc484fd93
+SIZE (rust/crates/graphene-sys-0.21.5.crate) = 14991
+SHA256 (rust/crates/gsk4-0.10.3.crate) = e755de9d8c5896c5beaa028b89e1969d067f1b9bf1511384ede971f5983aa153
+SIZE (rust/crates/gsk4-0.10.3.crate) = 38675
+SHA256 (rust/crates/gsk4-sys-0.10.3.crate) = 7ce91472391146f482065f1041876d8f869057b195b95399414caa163d72f4f7
+SIZE (rust/crates/gsk4-sys-0.10.3.crate) = 19987
+SHA256 (rust/crates/gtk4-0.10.3.crate) = acb21d53cfc6f7bfaf43549731c43b67ca47d87348d81c8cfc4dcdd44828e1a4
+SIZE (rust/crates/gtk4-0.10.3.crate) = 488701
+SHA256 (rust/crates/gtk4-macros-0.10.3.crate) = 3ccfb5a14a3d941244815d5f8101fa12d4577b59cc47245778d8d907b0003e42
+SIZE (rust/crates/gtk4-macros-0.10.3.crate) = 22842
+SHA256 (rust/crates/gtk4-sys-0.10.3.crate) = 842577fe5a1ee15d166cd3afe804ce0cab6173bc789ca32e21308834f20088dd
+SIZE (rust/crates/gtk4-sys-0.10.3.crate) = 116244
+SHA256 (rust/crates/hashbrown-0.17.1.crate) = ed5909b6e89a2db4456e54cd5f673791d7eca6732202bbf2a9cc504fe2f9b84a
+SIZE (rust/crates/hashbrown-0.17.1.crate) = 155512
+SHA256 (rust/crates/heck-0.5.0.crate) = 2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea
+SIZE (rust/crates/heck-0.5.0.crate) = 11517
+SHA256 (rust/crates/imbl-3.0.0.crate) = bc3be8d8cd36f33a46b1849f31f837c44d9fa87223baee3b4bd96b8f11df81eb
+SIZE (rust/crates/imbl-3.0.0.crate) = 121927
+SHA256 (rust/crates/imbl-sized-chunks-0.1.3.crate) = 8f4241005618a62f8d57b2febd02510fb96e0137304728543dfc5fd6f052c22d
+SIZE (rust/crates/imbl-sized-chunks-0.1.3.crate) = 43637
+SHA256 (rust/crates/indexmap-2.14.0.crate) = d466e9454f08e4a911e14806c24e16fba1b4c121d1ea474396f396069cf949d9
+SIZE (rust/crates/indexmap-2.14.0.crate) = 104085
+SHA256 (rust/crates/itertools-0.13.0.crate) = 413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186
+SIZE (rust/crates/itertools-0.13.0.crate) = 146261
+SHA256 (rust/crates/lazy_static-1.5.0.crate) = bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe
+SIZE (rust/crates/lazy_static-1.5.0.crate) = 14025
+SHA256 (rust/crates/libadwaita-0.8.1.crate) = fb09e12bf8f73342b3315c839d0a7668cc0ccebd78490c49fec48bab15d5484b
+SIZE (rust/crates/libadwaita-0.8.1.crate) = 137357
+SHA256 (rust/crates/libadwaita-sys-0.8.1.crate) = 6d7f94227ba87eb596fecada2491f04e357d507324142f77bf76d9e6be4a3e31
+SIZE (rust/crates/libadwaita-sys-0.8.1.crate) = 38338
+SHA256 (rust/crates/libc-0.2.186.crate) = 68ab91017fe16c622486840e4c83c9a37afeff978bd239b5293d61ece587de66
+SIZE (rust/crates/libc-0.2.186.crate) = 821883
+SHA256 (rust/crates/libloading-0.8.9.crate) = d7c4b02199fee7c5d21a5ae7d8cfa79a6ef5bb2fc834d6e9058e89c825efdc55
+SIZE (rust/crates/libloading-0.8.9.crate) = 30222
+SHA256 (rust/crates/libspa-0.9.2.crate) = b6b8cfa2a7656627b4c92c6b9ef929433acd673d5ab3708cda1b18478ac00df4
+SIZE (rust/crates/libspa-0.9.2.crate) = 60642
+SHA256 (rust/crates/libspa-sys-0.9.2.crate) = 901049455d2eb6decf9058235d745237952f4804bc584c5fcb41412e6adcc6e0
+SIZE (rust/crates/libspa-sys-0.9.2.crate) = 8920
+SHA256 (rust/crates/locale_config-0.3.0.crate) = 08d2c35b16f4483f6c26f0e4e9550717a2f6575bcd6f12a53ff0c490a94a6934
+SIZE (rust/crates/locale_config-0.3.0.crate) = 20808
+SHA256 (rust/crates/log-0.4.33.crate) = 0ceec5bc11778974d1bcb055b18002eba7f4b3518b6a0081b3af5f21666da9ad
+SIZE (rust/crates/log-0.4.33.crate) = 52997
+SHA256 (rust/crates/malloc_buf-0.0.6.crate) = 62bb907fe88d54d8d9ce32a3cceab4218ed2f6b7d35617cafe9adf84e43919cb
+SIZE (rust/crates/malloc_buf-0.0.6.crate) = 1239
+SHA256 (rust/crates/memchr-2.8.3.crate) = cf8baf1c55e62ffcace7a9f06f4bd9cd3f0c4beb022d3b367256b91b87513d98
+SIZE (rust/crates/memchr-2.8.3.crate) = 99165
+SHA256 (rust/crates/memoffset-0.9.1.crate) = 488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a
+SIZE (rust/crates/memoffset-0.9.1.crate) = 9032
+SHA256 (rust/crates/minimal-lexical-0.2.1.crate) = 68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a
+SIZE (rust/crates/minimal-lexical-0.2.1.crate) = 94841
+SHA256 (rust/crates/nix-0.30.1.crate) = 74523f3a35e05aba87a1d978330aef40f67b0304ac79c1c00b294c9830543db6
+SIZE (rust/crates/nix-0.30.1.crate) = 342015
+SHA256 (rust/crates/nom-7.1.3.crate) = d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a
+SIZE (rust/crates/nom-7.1.3.crate) = 117570
+SHA256 (rust/crates/nom-8.0.0.crate) = df9761775871bdef83bee530e60050f7e54b1105350d6884eb0fb4f46c2f9405
+SIZE (rust/crates/nom-8.0.0.crate) = 135590
+SHA256 (rust/crates/objc-0.2.7.crate) = 915b1b472bc21c53464d6c8461c9d3af805ba1ef837e1cac254428f4a77177b1
+SIZE (rust/crates/objc-0.2.7.crate) = 22036
+SHA256 (rust/crates/objc-foundation-0.1.1.crate) = 1add1b659e36c9607c7aab864a76c7a4c2760cd0cd2e120f3fb8b952c7e22bf9
+SIZE (rust/crates/objc-foundation-0.1.1.crate) = 9063
+SHA256 (rust/crates/objc_id-0.1.1.crate) = c92d4ddb4bd7b50d730c215ff871754d0da6b2178849f8a2a2ab69712d0c073b
+SIZE (rust/crates/objc_id-0.1.1.crate) = 3258
+SHA256 (rust/crates/once_cell-1.21.4.crate) = 9f7c3e4beb33f85d45ae3e3a1792185706c8e16d043238c593331cc7cd313b50
+SIZE (rust/crates/once_cell-1.21.4.crate) = 35010
+SHA256 (rust/crates/pango-0.21.5.crate) = 52d1d85e2078077a065bb7fc072783d5bcd4e51b379f22d67107d0a16937eb69
+SIZE (rust/crates/pango-0.21.5.crate) = 50279
+SHA256 (rust/crates/pango-sys-0.21.5.crate) = b4f06627d36ed5ff303d2df65211fc2e52ba5b17bf18dd80ff3d9628d6e06cfd
+SIZE (rust/crates/pango-sys-0.21.5.crate) = 28298
+SHA256 (rust/crates/pin-project-lite-0.2.17.crate) = a89322df9ebe1c1578d689c92318e070967d1042b512afbe49518723f4e6d5cd
+SIZE (rust/crates/pin-project-lite-0.2.17.crate) = 31034
+SHA256 (rust/crates/pipewire-0.9.2.crate) = 9688b89abf11d756499f7c6190711d6dbe5a3acdb30c8fbf001d6596d06a8d44
+SIZE (rust/crates/pipewire-0.9.2.crate) = 55856
+SHA256 (rust/crates/pipewire-sys-0.9.2.crate) = cb028afee0d6ca17020b090e3b8fa2d7de23305aef975c7e5192a5050246ea36
+SIZE (rust/crates/pipewire-sys-0.9.2.crate) = 6679
+SHA256 (rust/crates/pkg-config-0.3.33.crate) = 19f132c84eca552bf34cab8ec81f1c1dcc229b811638f9d283dceabe58c5569e
+SIZE (rust/crates/pkg-config-0.3.33.crate) = 21590
+SHA256 (rust/crates/proc-macro-crate-3.5.0.crate) = e67ba7e9b2b56446f1d419b1d807906278ffa1a658a8a5d8a39dcb1f5a78614f
+SIZE (rust/crates/proc-macro-crate-3.5.0.crate) = 12709
+SHA256 (rust/crates/proc-macro2-1.0.106.crate) = 8fd00f0bb2e90d81d1044c2b32617f68fcb9fa3bb7640c23e9c748e53fb30934
+SIZE (rust/crates/proc-macro2-1.0.106.crate) = 59765
+SHA256 (rust/crates/quote-1.0.46.crate) = dfbc457d0c7a0759a614551b11a6409e5951f6c7537be1f1b7682b9ae9230368
+SIZE (rust/crates/quote-1.0.46.crate) = 31628
+SHA256 (rust/crates/rand_core-0.6.4.crate) = ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c
+SIZE (rust/crates/rand_core-0.6.4.crate) = 22666
+SHA256 (rust/crates/rand_xoshiro-0.6.0.crate) = 6f97cdb2a36ed4183de61b2f824cc45c9f1037f28afe0a322e9fff4c108b5aaa
+SIZE (rust/crates/rand_xoshiro-0.6.0.crate) = 17125
+SHA256 (rust/crates/regex-1.12.4.crate) = f1292b7759ae1cb9ec195452d1390a074f0cd8541ab7a5a8c31cd6db45d4a6ba
+SIZE (rust/crates/regex-1.12.4.crate) = 153468
+SHA256 (rust/crates/regex-automata-0.4.14.crate) = 6e1dd4122fc1595e8162618945476892eefca7b88c52820e74af6262213cae8f
+SIZE (rust/crates/regex-automata-0.4.14.crate) = 618012
+SHA256 (rust/crates/regex-syntax-0.8.11.crate) = d6f6ff9a378485b298a5286656da665ba74413d36db0979633275d2e708145d4
+SIZE (rust/crates/regex-syntax-0.8.11.crate) = 359055
+SHA256 (rust/crates/rustc-hash-2.1.3.crate) = 6b1e7f9a428571be2dc5bc0505c13fb6bf936822b894ec87abf8a08a4e51742d
+SIZE (rust/crates/rustc-hash-2.1.3.crate) = 14811
+SHA256 (rust/crates/rustc_version-0.4.1.crate) = cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92
+SIZE (rust/crates/rustc_version-0.4.1.crate) = 12245
+SHA256 (rust/crates/semver-1.0.28.crate) = 8a7852d02fc848982e0c167ef163aaff9cd91dc640ba85e263cb1ce46fae51cd
+SIZE (rust/crates/semver-1.0.28.crate) = 33064
+SHA256 (rust/crates/serde-1.0.228.crate) = 9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e
+SIZE (rust/crates/serde-1.0.228.crate) = 83652
+SHA256 (rust/crates/serde_core-1.0.228.crate) = 41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad
+SIZE (rust/crates/serde_core-1.0.228.crate) = 63111
+SHA256 (rust/crates/serde_derive-1.0.228.crate) = d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79
+SIZE (rust/crates/serde_derive-1.0.228.crate) = 59605
+SHA256 (rust/crates/serde_spanned-0.6.9.crate) = bf41e0cfaf7226dca15e8197172c295a782857fcb97fad1808a166870dee75a3
+SIZE (rust/crates/serde_spanned-0.6.9.crate) = 10210
+SHA256 (rust/crates/serde_spanned-1.1.1.crate) = 6662b5879511e06e8999a8a235d848113e942c9124f211511b16466ee2995f26
+SIZE (rust/crates/serde_spanned-1.1.1.crate) = 11025
+SHA256 (rust/crates/shlex-1.3.0.crate) = 0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64
+SIZE (rust/crates/shlex-1.3.0.crate) = 18713
+SHA256 (rust/crates/shlex-2.0.1.crate) = f8fadd59c855ef2080decdef8ff161eb6661b86933c9d82e5ba29dc602a55aba
+SIZE (rust/crates/shlex-2.0.1.crate) = 19332
+SHA256 (rust/crates/slab-0.4.12.crate) = 0c790de23124f9ab44544d7ac05d60440adc586479ce501c1d6d7da3cd8c9cf5
+SIZE (rust/crates/slab-0.4.12.crate) = 19080
+SHA256 (rust/crates/smallvec-1.15.2.crate) = 8ed6a63f02c8539c91a8685a86f4099661ba3da017932f6ebbea6de3f0fa7c90
+SIZE (rust/crates/smallvec-1.15.2.crate) = 34899
+SHA256 (rust/crates/syn-2.0.118.crate) = 1b9ae57f904213ebb649ce6895b8a66c66f0203b9319718f69a5612a065b1422
+SIZE (rust/crates/syn-2.0.118.crate) = 305533
+SHA256 (rust/crates/system-deps-6.2.2.crate) = a3e535eb8dded36d55ec13eddacd30dec501792ff23a0b1682c38601b8cf2349
+SIZE (rust/crates/system-deps-6.2.2.crate) = 25546
+SHA256 (rust/crates/system-deps-7.0.8.crate) = 396a35feb67335377e0251fcbc1092fc85c484bd4e3a7a54319399da127796e7
+SIZE (rust/crates/system-deps-7.0.8.crate) = 30092
+SHA256 (rust/crates/target-lexicon-0.12.16.crate) = 61c41af27dd6d1e27b1b16b489db798443478cef1f06a660c96db617ba5de3b1
+SIZE (rust/crates/target-lexicon-0.12.16.crate) = 26488
+SHA256 (rust/crates/target-lexicon-0.13.5.crate) = adb6935a6f5c20170eeceb1a3835a49e12e19d792f6dd344ccc76a985ca5a6ca
+SIZE (rust/crates/target-lexicon-0.13.5.crate) = 26928
+SHA256 (rust/crates/temp-dir-0.1.16.crate) = 83176759e9416cf81ee66cb6508dbfe9c96f20b8b56265a39917551c23c70964
+SIZE (rust/crates/temp-dir-0.1.16.crate) = 6127
+SHA256 (rust/crates/thiserror-2.0.18.crate) = 4288b5bcbc7920c07a1149a35cf9590a2aa808e0bc1eafaade0b80947865fbc4
+SIZE (rust/crates/thiserror-2.0.18.crate) = 28875
+SHA256 (rust/crates/thiserror-impl-2.0.18.crate) = ebc4ee7f67670e9b64d05fa4253e753e016c6c95ff35b89b7941d6b856dec1d5
+SIZE (rust/crates/thiserror-impl-2.0.18.crate) = 21413
+SHA256 (rust/crates/toml-0.8.23.crate) = dc1beb996b9d83529a9e75c17a1686767d148d70663143c7854d8b4a09ced362
+SIZE (rust/crates/toml-0.8.23.crate) = 36050
+SHA256 (rust/crates/toml-1.1.2+spec-1.1.0.crate) = 81f3d15e84cbcd896376e6730314d59fb5a87f31e4b038454184435cd57defee
+SIZE (rust/crates/toml-1.1.2+spec-1.1.0.crate) = 56327
+SHA256 (rust/crates/toml_datetime-0.6.11.crate) = 22cddaf88f4fbc13c51aebbf5f8eceb5c7c5a9da2ac40a13519eb5b0a0e8f11c
+SIZE (rust/crates/toml_datetime-0.6.11.crate) = 16125
+SHA256 (rust/crates/toml_datetime-1.1.1+spec-1.1.0.crate) = 3165f65f62e28e0115a00b2ebdd37eb6f3b641855f9d636d3cd4103767159ad7
+SIZE (rust/crates/toml_datetime-1.1.1+spec-1.1.0.crate) = 17982
+SHA256 (rust/crates/toml_edit-0.22.27.crate) = 41fe8c660ae4257887cf66394862d21dbca4a6ddd26f04a3560410406a2f819a
+SIZE (rust/crates/toml_edit-0.22.27.crate) = 78602
+SHA256 (rust/crates/toml_edit-0.25.12+spec-1.1.0.crate) = d2153edc6955a6c354fad8f5efd38b6a8769bdccf9fe50f8e1329f81b0baa5d7
+SIZE (rust/crates/toml_edit-0.25.12+spec-1.1.0.crate) = 68620
+SHA256 (rust/crates/toml_parser-1.1.2+spec-1.1.0.crate) = a2abe9b86193656635d2411dc43050282ca48aa31c2451210f4202550afb7526
+SIZE (rust/crates/toml_parser-1.1.2+spec-1.1.0.crate) = 35485
+SHA256 (rust/crates/toml_writer-1.1.1+spec-1.1.0.crate) = 756daf9b1013ebe47a8776667b466417e2d4c5679d441c26230efd9ef78692db
+SIZE (rust/crates/toml_writer-1.1.1+spec-1.1.0.crate) = 18841
+SHA256 (rust/crates/unicode-ident-1.0.24.crate) = e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75
+SIZE (rust/crates/unicode-ident-1.0.24.crate) = 49298
+SHA256 (rust/crates/unicode-segmentation-1.13.3.crate) = c6f5d3c3b1bf09027a88a6bc961fc00497d651009560b5463668dc81b0fa87a8
+SIZE (rust/crates/unicode-segmentation-1.13.3.crate) = 112325
+SHA256 (rust/crates/unicode-width-0.2.2.crate) = b4ac048d71ede7ee76d585517add45da530660ef4390e49b098733c6e897f254
+SIZE (rust/crates/unicode-width-0.2.2.crate) = 282768
+SHA256 (rust/crates/version-compare-0.2.1.crate) = 03c2856837ef78f57382f06b2b8563a2f512f7185d732608fd9176cb3b8edf0e
+SIZE (rust/crates/version-compare-0.2.1.crate) = 14245
+SHA256 (rust/crates/version_check-0.9.5.crate) = 0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a
+SIZE (rust/crates/version_check-0.9.5.crate) = 15554
+SHA256 (rust/crates/winapi-0.3.9.crate) = 5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419
+SIZE (rust/crates/winapi-0.3.9.crate) = 1200382
+SHA256 (rust/crates/winapi-i686-pc-windows-gnu-0.4.0.crate) = ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6
+SIZE (rust/crates/winapi-i686-pc-windows-gnu-0.4.0.crate) = 2918815
+SHA256 (rust/crates/winapi-x86_64-pc-windows-gnu-0.4.0.crate) = 712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f
+SIZE (rust/crates/winapi-x86_64-pc-windows-gnu-0.4.0.crate) = 2947998
+SHA256 (rust/crates/windows-link-0.2.1.crate) = f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5
+SIZE (rust/crates/windows-link-0.2.1.crate) = 6133
+SHA256 (rust/crates/windows-sys-0.61.2.crate) = ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc
+SIZE (rust/crates/windows-sys-0.61.2.crate) = 2517186
+SHA256 (rust/crates/winnow-0.7.15.crate) = df79d97927682d2fd8adb29682d1140b343be4ac0f08fd68b7765d9c059d3945
+SIZE (rust/crates/winnow-0.7.15.crate) = 187092
+SHA256 (rust/crates/winnow-1.0.3.crate) = 0592e1c9d151f854e6fd382574c3a0855250e1d9b2f99d9281c6e6391af352f1
+SIZE (rust/crates/winnow-1.0.3.crate) = 187990
+SHA256 (saivert-pwvucontrol-0.5.3_GH0.tar.gz) = 5ac6db39d8bb347c3447592fbc923465c9e4b001da8e330861a215c964c74e27
+SIZE (saivert-pwvucontrol-0.5.3_GH0.tar.gz) = 105560
+SHA256 (saivert-wireplumber.rs-04fbbc6ea157cdd7061f6a5f2a6b22e102fccbcc_GH0.tar.gz) = e6fc47c182cd691027e52a9ce215add31d10c34a2aa71f516f9b1b3f68e695df
+SIZE (saivert-wireplumber.rs-04fbbc6ea157cdd7061f6a5f2a6b22e102fccbcc_GH0.tar.gz) = 237800
diff --git a/audio/pwvucontrol/files/patch-cargo-crates_pipewire-sys-0.9.2_build.rs b/audio/pwvucontrol/files/patch-cargo-crates_pipewire-sys-0.9.2_build.rs
new file mode 100644
index 0000000..a9bae1b
--- /dev/null
+++ b/audio/pwvucontrol/files/patch-cargo-crates_pipewire-sys-0.9.2_build.rs
@@ -0,0 +1,22 @@
+--- cargo-crates/pipewire-sys-0.9.2/build.rs.orig
++++ cargo-crates/pipewire-sys-0.9.2/build.rs
+@@ -20,6 +20,7 @@
+ .parse_callbacks(Box::new(bindgen::CargoCallbacks::new()))
+ .size_t_is_usize(true)
+ .allowlist_function("pw_.*")
++ .allowlist_function("pipewire_.*")
+ .allowlist_type("pw_.*")
+ .allowlist_var("pw_.*")
+ .allowlist_var("PW_.*")
+@@ -27,7 +28,11 @@
+ .blocklist_type("spa_.*")
+ .blocklist_item("spa_.*")
+- .raw_line("use spa_sys::*;");
++ .raw_line("use spa_sys::*;")
++ .raw_line("#[allow(non_snake_case)]")
++ .raw_line("pub unsafe fn pw_init(argc: *mut ::std::os::raw::c_int, argv: *mut *mut *mut ::std::os::raw::c_char) { pipewire_init(argc, argv) }")
++ .raw_line("#[allow(non_snake_case)]")
++ .raw_line("pub unsafe fn pw_deinit() { pipewire_deinit() }");
+
+ let builder = libpipewire
+ .include_paths
diff --git a/audio/pwvucontrol/pkg-descr b/audio/pwvucontrol/pkg-descr
new file mode 100644
index 0000000..9de76c2
--- /dev/null
+++ b/audio/pwvucontrol/pkg-descr
@@ -0,0 +1,4 @@
+pwvucontrol is a volume control applet for PipeWire written in Rust with
+GTK4 and libadwaita. Unlike pavucontrol it talks to PipeWire directly
+through the WirePlumber API. It provides playback and recording stream
+control, output/input device and profile management.
diff --git a/audio/pwvucontrol/pkg-plist b/audio/pwvucontrol/pkg-plist
new file mode 100644
index 0000000..dd1830c
--- /dev/null
+++ b/audio/pwvucontrol/pkg-plist
@@ -0,0 +1,14 @@
+bin/pwvucontrol
+share/applications/com.saivert.pwvucontrol.desktop
+share/glib-2.0/schemas/com.saivert.pwvucontrol.gschema.xml
+share/icons/hicolor/scalable/apps/com.saivert.pwvucontrol.svg
+share/icons/hicolor/symbolic/apps/com.saivert.pwvucontrol-symbolic.svg
+share/locale/en/LC_MESSAGES/pwvucontrol.mo
+share/locale/fr/LC_MESSAGES/pwvucontrol.mo
+share/locale/ka/LC_MESSAGES/pwvucontrol.mo
+share/locale/nb/LC_MESSAGES/pwvucontrol.mo
+share/locale/nl/LC_MESSAGES/pwvucontrol.mo
+share/locale/pl/LC_MESSAGES/pwvucontrol.mo
+share/locale/ru/LC_MESSAGES/pwvucontrol.mo
+share/metainfo/com.saivert.pwvucontrol.metainfo.xml
+%%DATADIR%%/resources.gresource
diff --git a/pkglist b/pkglist
index 6100e7f..b3fcb07 100644
--- a/pkglist
+++ b/pkglist
@@ -1,6 +1,7 @@
# Every custom port in this overlay, one origin per line.
# Build all:
# doas poudriere bulk -j 151amd64 -p base -O custom -f /home/cashmere/ports/pkglist
+audio/pwvucontrol
devel/bash-language-server
devel/just-lsp
devel/nixd