summaryrefslogtreecommitdiff
path: root/audio/shortwave
diff options
context:
space:
mode:
Diffstat (limited to 'audio/shortwave')
-rw-r--r--audio/shortwave/Makefile1
-rw-r--r--audio/shortwave/files/patch-Cargo.toml10
-rw-r--r--audio/shortwave/files/patch-meson.build15
-rw-r--r--audio/shortwave/files/patch-src_api_cover__loader.rs40
4 files changed, 66 insertions, 0 deletions
diff --git a/audio/shortwave/Makefile b/audio/shortwave/Makefile
index 718eba2769e5..7b84b067b80b 100644
--- a/audio/shortwave/Makefile
+++ b/audio/shortwave/Makefile
@@ -1,5 +1,6 @@
PORTNAME= shortwave
DISTVERSION= 5.0.0
+PORTREVISION= 2
CATEGORIES= audio
MAINTAINER= decke@FreeBSD.org
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<u8>)> {
+ 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<gdk::Texture> {
++ 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<gdk::Texture> {
++ Ok(gdk::Texture::from_file(file)?)
+ }
+
+ async fn download_tmp_file(&self) -> Result<()> {