Subject: bug#57043: closed (Re: [PATCH] gnu: rust-freetype-sys-0.13: Unbundle freetype2.)

From: [email-masked] (GNU bug Tracking System)
Date: Sun, 15 Jun 2025 17:57:04 +0000

Your bug report

#57043: [PATCH] gnu: rust-freetype-sys-0.13: Unbundle freetype2.

which was filed against the guix-patches package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
57043: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=57043
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: [PATCH] gnu: rust-freetype-sys-0.13: Unbundle freetype2.
From: Hilton Chain <[email-masked]>
To: [email-masked]
Date: Mon, 16 Jun 2025 01:49:02 +0800
List-Id: <debbugs-submit.debbugs.gnu.org>

Closing since unbundling has been done already and crates-io will be removed.

Subject: [PATCH] gnu: rust-freetype-sys-0.13: Unbundle freetype2.
From: Jean Pierre De Jesus DIAZ <[email-masked]>
To: "[email-masked]" <[email-masked]>
Date: Sun, 07 Aug 2022 18:39:55 +0000
List-Id: <debbugs-submit.debbugs.gnu.org>

Hello,

This patch removes the bundled freetype2 library on `rust-freetype-sys-0.13'.

Also removes unneeded build dependencies (`pkg-config' and `cmake').

One less bundled dependency ;).

—
Jean-Pierre De Jesus DIAZ

From f6dec2567dc997a32ef308bd42d259ac60dbbab5 Mon Sep 17 00:00:00 2001
From: Jean-Pierre De Jesus DIAZ <[email-masked]>
Date: Sun, 7 Aug 2022 20:36:14 +0200
Subject: [PATCH] gnu: rust-freetype-sys-0.13: Unbundle freetype2.

* gnu/packages/crates-io.scm (rust-freetype-sys-0.13)
  [source]: Remove bundled `freetype2' source code and add patch to use
  system library.
---
 gnu/packages/crates-io.scm                    | 16 +++---
 ...ust-freetype-sys-0.13-simplify-build.patch | 53 +++++++++++++++++++
 2 files changed, 63 insertions(+), 6 deletions(-)
 create mode 100644 gnu/packages/patches/rust-freetype-sys-0.13-simplify-build.patch

diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index cfafce9aa3..cddd8ebaf0 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -27,6 +27,7 @@
 ;;; Copyright © 2022 Aleksandr Vityazev <[email-masked]>
 ;;; Copyright © 2022 Marius Bakke <[email-masked]>
 ;;; Copyright © 2022 Evgenii Lepikhin <[email-masked]>
+;;; Copyright © 2022 Jean-Pierre De Jesus DIAZ <[email-masked]>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -22904,14 +22905,17 @@ (define-public rust-freetype-sys-0.13
        (uri (crate-uri "freetype-sys" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "06kkds31s6b1i39dyanwmzbnic7laia1kk3gfvx8sqncq08l0zd3"))))
+        (base32 "06kkds31s6b1i39dyanwmzbnic7laia1kk3gfvx8sqncq08l0zd3"))
+       (patches (search-patches "rust-freetype-sys-0.13-simplify-build.patch"))
+       (modules '((guix build utils)))
+       (snippet
+         '(delete-file-recursively "freetype2"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
-       (("rust-cmake" ,rust-cmake-0.1)
-        ("rust-libc" ,rust-libc-0.2)
-        ("rust-pkg-config" ,rust-pkg-config-0.3))))
+     `(#:cargo-inputs
+       (("rust-libc" ,rust-libc-0.2))))
+    (inputs
+      (list freetype))
     (home-page "https://github.com/PistonDevelopers/freetype-sys")
     (synopsis "Low level binding for FreeType font library")
     (description
diff --git a/gnu/packages/patches/rust-freetype-sys-0.13-simplify-build.patch b/gnu/packages/patches/rust-freetype-sys-0.13-simplify-build.patch
new file mode 100644
index 0000000000..bb16f3e065
--- /dev/null
+++ b/gnu/packages/patches/rust-freetype-sys-0.13-simplify-build.patch
@@ -0,0 +1,53 @@
+Force freetype-sys to use system libraries, this removes the need for CMake.
+
+The bundled source is still present at the crate package, it should be removed
+through a package snippet.
+
+diff -Naur freetype-sys-0.13.1/Cargo.toml freetype-sys-0.13.1-patch/Cargo.toml > 1.patch
+--- freetype-sys-0.13.1/Cargo.toml	2020-07-05 11:15:43.000000000 +0200
++++ freetype-sys-0.13.1-patch/Cargo.toml	2022-08-07 19:53:57.649678214 +0200
+@@ -24,8 +24,3 @@
+ repository = "https://github.com/PistonDevelopers/freetype-sys.git"
+ [dependencies.libc]
+ version = "0.2.42"
+-[build-dependencies.cmake]
+-version = "0.1.42"
+-
+-[build-dependencies.pkg-config]
+-version = "0.3.11"
+diff -Naur freetype-sys-0.13.1/build.rs freetype-sys-0.13.1-patch/build.rs > 2.patch
+--- freetype-sys-0.13.1/build.rs	2020-05-30 05:59:09.000000000 +0200
++++ freetype-sys-0.13.1-patch/build.rs	2022-08-07 19:54:34.153503846 +0200
+@@ -1,30 +1,4 @@
+-extern crate cmake;
+-extern crate pkg_config;
+-
+-use cmake::Config;
+-use std::env;
+-
+ fn main() {
+-    let target = env::var("TARGET").unwrap();
+-    if !target.contains("android")
+-        && pkg_config::Config::new().atleast_version("18.5.12").find("freetype2").is_ok()
+-    {
+-        return
+-    }
+-
+-    let mut config = Config::new("freetype2");
+-    if let Ok(s) = env::var("FREETYPE_CMAKE_GENERATOR") {
+-        config.generator(s);
+-    }
+-    let dst = config
+-        .define("WITH_BZip2", "OFF")
+-        .define("WITH_HarfBuzz", "OFF")
+-        .define("WITH_PNG", "OFF")
+-        .define("WITH_ZLIB", "OFF")
+-        .profile("Release")
+-        .build();
+-    let out_dir = env::var("OUT_DIR").unwrap();
+-    println!("cargo:rustc-link-search=native={}/lib", dst.display());
+-    println!("cargo:rustc-link-lib=static=freetype");
++    println!("cargo:rustc-link-lib=freetype");
+-    println!("cargo:outdir={}", out_dir);
+ }
++
-- 
2.36.1