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+))))