diff --git a/audio/shortwave/files/patch-Cargo.toml b/audio/shortwave/files/patch-Cargo.toml new file mode 100644 index 000000000000..48ac761b7f66 --- /dev/null +++ b/audio/shortwave/files/patch-Cargo.toml @@ -0,0 +1,10 @@ +--- Cargo.toml.orig 2025-02-05 10:44:30 UTC ++++ Cargo.toml +@@ -17,7 +17,6 @@ futures-util = "0.3" + diesel = { version = "2.2", features = ["sqlite", "r2d2"] } + diesel_migrations = "2.2" + futures-util = "0.3" +-glycin = { version = "2.0", features = ["gdk4"] } + indexmap = "2.7" + Inflector = "0.11" + language-tags = "0.3" diff --git a/audio/shortwave/files/patch-meson.build b/audio/shortwave/files/patch-meson.build new file mode 100644 index 000000000000..f8c9ae7d237a --- /dev/null +++ b/audio/shortwave/files/patch-meson.build @@ -0,0 +1,15 @@ +--- meson.build.orig 2025-02-05 10:44:30 UTC ++++ meson.build +@@ -19,8 +19,10 @@ dependency('shumate-1.0', version: '>= 1.3') + dependency('shumate-1.0', version: '>= 1.3') + + # Required by glycin crate +-dependency('lcms2', version: '>= 2.12.0') +-dependency('libseccomp', version: '>= 2.5.0') ++if host_machine.system() == 'linux' ++ dependency('lcms2', version: '>= 2.12.0') ++ dependency('libseccomp', version: '>= 2.5.0') ++endif + + dependency('gstreamer-1.0', version: '>= 1.16') + dependency('gstreamer-base-1.0', version: '>= 1.16') diff --git a/audio/shortwave/files/patch-src_api_cover__loader.rs b/audio/shortwave/files/patch-src_api_cover__loader.rs new file mode 100644 index 000000000000..cb4f3baf003e --- /dev/null +++ b/audio/shortwave/files/patch-src_api_cover__loader.rs @@ -0,0 +1,40 @@ +--- src/api/cover_loader.rs.orig 2025-02-05 10:44:30 UTC ++++ src/api/cover_loader.rs +@@ -22,7 +22,6 @@ use gdk::RGBA; + use async_compat::CompatExt; + use futures_util::StreamExt; + use gdk::RGBA; +-use glycin::Loader; + use gtk::gio::{Cancelled, File}; + use gtk::graphene::Rect; + use gtk::prelude::TextureExt; +@@ -88,9 +87,7 @@ impl CoverRequest { + async fn cover_bytes(&self) -> Result<(gdk::Texture, Vec)> { + self.download_tmp_file().compat().await?; + +- let loader = Loader::new(self.tmp_file.clone()); +- let image = loader.load().await?; +- let texture = image.next_frame().await?.texture(); ++ let texture = Self::load_texture(&self.tmp_file).await?; + + let snapshot = gtk::Snapshot::new(); + snapshot_thumbnail(&snapshot, texture, self.size as f32); +@@ -106,6 +103,18 @@ impl CoverRequest { + + let png_bytes = texture.save_to_png_bytes().to_vec(); + Ok((texture, png_bytes)) ++ } ++ ++ #[cfg(target_os = "linux")] ++ async fn load_texture(file: &gio::File) -> Result { ++ let loader = glycin::Loader::new(file.clone()); ++ let image = loader.load().await?; ++ Ok(image.next_frame().await?.texture()) ++ } ++ ++ #[cfg(target_os = "freebsd")] ++ async fn load_texture(file: &gio::File) -> Result { ++ Ok(gdk::Texture::from_file(file)?) + } + + async fn download_tmp_file(&self) -> Result<()> {