From f6dec2567dc997a32ef308bd42d259ac60dbbab5 Mon Sep 17 00:00:00 2001 From: Jean-Pierre De Jesus DIAZ 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 ;;; Copyright © 2022 Marius Bakke ;;; Copyright © 2022 Evgenii Lepikhin +;;; Copyright © 2022 Jean-Pierre De Jesus DIAZ ;;; ;;; 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