guix_mirror_bot pushed a commit to branch gnome-team
in repository guix.

commit 198e3709733d9bcd4f95432e39052c62d7e65247
Author: Noé Lopez <[email protected]>
AuthorDate: Sat Nov 8 11:56:14 2025 +0100

    gnu: Add rust-glycin-3.
    
    * gnu/packages/rust-crates.scm (rust-glycin-3.0.7)
    (rust-glycin-common-1.0.3, rust-glycin-utils-4.0.4): New variables.
    * gnu/packages/rust-sources.scm (rust-glycin-3): New variable.
    * gnu/packages/gnome.scm (glycin-loaders): Add reminder to update related
    glycin packages.
    
    Change-Id: Id60cd2cfbaef98f87037ccfde9da33135fa9813f
    Signed-off-by: Liliana Marie Prikler <[email protected]>
---
 gnu/packages/gnome.scm        |  1 +
 gnu/packages/rust-crates.scm  |  6 +++++
 gnu/packages/rust-sources.scm | 51 ++++++++++++++++++++++++++++++++++++++++++-
 3 files changed, 57 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 21c1b2101d..4bf868462e 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -6917,6 +6917,7 @@ side panel;
     ;; ".gresource.eog_postasa_plugin" ELF section.
     (license license:gpl2+)))
 
+;; Also update (@ (gnu packages rust-sources) rust-glycin-3) when updating 
this.
 (define-public glycin-loaders
   (package
     (name "glycin-loaders")
diff --git a/gnu/packages/rust-crates.scm b/gnu/packages/rust-crates.scm
index 9ac19de343..7d62dcf183 100644
--- a/gnu/packages/rust-crates.scm
+++ b/gnu/packages/rust-crates.scm
@@ -8049,6 +8049,12 @@
   (crate-source "glutin_wgl_sys" "0.6.1"
                 "0gng2810jb5x133lmy17qifjx6s90lnprm86afg7mfls505y0kic"))
 
+(define rust-glycin-3.0.7 package:rust-glycin-3)
+
+(define rust-glycin-common-1.0.3 package:rust-glycin-3)
+
+(define rust-glycin-utils-4.0.4 package:rust-glycin-3)
+
 (define rust-gobject-sys-0.10.0
   (crate-source "gobject-sys" "0.10.0"
                 "1311d3zbdhl1g7ibj1iy1650513yrhxbjxgfhazn52ii1jv368cm"))
diff --git a/gnu/packages/rust-sources.scm b/gnu/packages/rust-sources.scm
index c9216835de..d383a88081 100644
--- a/gnu/packages/rust-sources.scm
+++ b/gnu/packages/rust-sources.scm
@@ -1,6 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2025 Hilton Chain <[email protected]>
 ;;; Copyright © 2023-2025 Efraim Flashner <[email protected]>
+;;; Copyright © 2025 Noé Lopez <[email protected]>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -23,8 +24,10 @@
   #:use-module (guix packages)
   #:use-module (guix download)
   #:use-module (guix git-download)
+  #:use-module (guix search-paths)
   #:use-module (guix build-system cargo)
   #:use-module (guix build-system trivial)
+  #:use-module ((guix config) #:select (%storedir))
   #:use-module (guix utils)
   #:use-module (gnu packages)
   #:use-module (gnu packages assembly)
@@ -36,7 +39,8 @@
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages python)
   #:use-module (gnu packages rust)
-  #:use-module (gnu packages textutils))
+  #:use-module (gnu packages textutils)
+  #:use-module (gnu packages virtualization))
 
 ;;;
 ;;; Cargo workspaces and Rust libraries requiring external inputs to unbundle.
@@ -662,3 +666,48 @@ intelligence.")
 webview, a tiny cross-platform library to render web-based GUIs as desktop
 applications.")
        (license license:expat)))))
+
+;; Also update (@ (gnu packages gnome) glycin-loaders) when updating this.
+(define-public rust-glycin-3
+  (package
+    (name "rust-glycin")
+    (version "3.0.7")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+              (url "https://gitlab.gnome.org/GNOME/glycin.git";)
+              ;; Rust library version is different from the tagged version.
+              (commit "2.0.7")))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "0v6szxk5h8a4b28xb0lrhqrq6b4vka2ha4qgpdp35f6c49v9pdyp"))
+       (patches (search-patches 
"glycin-sandbox-Adapt-bwrap-invocation.patch"))))
+    (build-system cargo-build-system)
+    (arguments
+     (list
+      #:skip-build? #t
+      #:cargo-package-crates ''("glycin-common" "glycin-utils" "glycin")
+      #:phases
+      #~(modify-phases %standard-phases
+          (add-after 'unpack 'set-bin-paths
+            (lambda* (#:key inputs #:allow-other-keys)
+              (substitute* "glycin/src/sandbox.rs"
+                (("@bwrap@")
+                 (search-input-file inputs "bin/bwrap"))
+                (("@storedir@")
+                   #$%storedir)
+                (("/usr/bin/true")
+                 (search-input-file inputs "bin/true"))))))))
+    (inputs (cons* bubblewrap (cargo-inputs 'glycin)))
+    ;; Uses XDG_DATA_DIRS to search for the loaders. See Config::data_dirs() in
+    ;; config.rs.  Using a specific search path was discussed in
+    ;; <https://codeberg.org/guix/guix/pulls/1653> and
+    ;; <https://gitlab.gnome.org/GNOME/glycin/-/merge_requests/343>.
+    (native-search-paths (list $XDG_DATA_DIRS))
+    (home-page "https://gitlab.gnome.org/GNOME/glycin";)
+    (synopsis "Rust library for sandboxed image decoding")
+    (description "Glycin is a sandbox image decoder for image viewers and
+thumbnails to display untrusted content safely.")
+    (license (list license:mpl2.0 license:lgpl2.1+))))

Reply via email to