efraim pushed a commit to branch rust-team
in repository guix.

commit 8663522f4ee1c395aa6f361fe1234aec34ef4937
Author: Efraim Flashner <[email protected]>
AuthorDate: Sat Dec 28 21:59:58 2024 +0200

    gnu: tectonic: Update to 0.15.0.
    
    * gnu/packages/rust-apps.scm (tectonic): Update to 0.15.0.
    [source]: Download from git repository.  Add a snippet to remove the
    bundled harfbuzz sources.
    [arguments]: Rewrite using g-exps.  Add feature flags.  Add
    cargo-test-flags.
    [cargo-inputs]: Add rust-app-dirs2-2, rust-anyhow-1, rust-byteorder-1,
    rust-cc-1, rust-curl-0.4, rust-html-escape-0.2, rust-nom-7,
    rust-percent-encoding-2, rust-pinot-0.1, rust-pkg-config-0.3,
    rust-reqwest-0.11, rust-serde-json-1, rust-tera-1, rust-thiserror-1,
    rust-tokio-1, rust-vcpkg-0.2, rust-watchexec-filterer-globset-1,
    rust-watchexec-signals-1.  Replace rust-md-5-0.9 with 1, rust-open-1
    with 4, rust-quick-xml-0.22 with 0.28, rust-sha2-0.9 with 0.10,
    rust-toml-0.5 with 0.7, rust-watchexec-1 with 2, rust-zip-0.5 with 0.6.
    Remove rust-tectonic-bridge-core-0.3, rust-tectonic-bundles-0.3,
    rust-tectonic-docmodel-0.2, rust-tectonic-engine-bibtex-0.1,
    rust-tectonic-engine-spx2html-0.1, rust-tectonic-engine-xdvipdfmx-0.4,
    rust-tectonic-engine-xetex-0.4, rust-tectonic-errors-0.2,
    rust-tectonic-geturl-0.3, rust-tectonic-io-base-0.4,
    rust-tectonic-status-base-0.2, rust-tectonic-xdv-0.2.
    [cargo-development-inputs]: Add rust-clap-2, rust-structopt-0.3.
    Replace rust-futures-0.1 with 0.3, rust-headers-0.2 with 0.3,
    rust-hyper-0.12 with 0.14.  Remove rust-tokio-0.1.
    [inputs]: Remove libpng, zlib.
    * gnu/packages/crates-io.scm (rust-tectonic-bridge-core-0.4,
    rust-tectonic-bridge-core-0.3, rust-tectonic-bridge-flate-0.1,
    rust-tectonic-bridge-freetype2-0.2, rust-tectonic-bridge-graphite2-0.2,
    rust-tectonic-bridge-harfbuzz-0.2, rust-tectonic-bridge-icu-0.2,
    rust-tectonic-bundles-0.3, rust-tectonic-cfg-support-0.1,
    rust-tectonic-dep-support-0.1, rust-tectonic-docmodel-0.2,
    rust-tectonic-engine-bibtex-0.1, rust-tectonic-engine-spx2html-0.3,
    rust-tectonic-engine-spx2html-0.1, rust-tectonic-engine-xdvipdfmx-0.4,
    rust-tectonic-engine-xetex-0.4, rust-tectonic-errors-0.2,
    rust-tectonic-geturl-0.3, rust-tectonic-io-base-0.4,
    rust-tectonic-io-base-0.3, rust-tectonic-pdf-io-0.4,
    rust-tectonic-status-base-0.2, rust-tectonic-xdv-0.2,
    rust-tectonic-xetex-layout-0.2): Remove variables.
    
    Change-Id: I41a791ad5eec4ee6cf3cad207146a87d3873134b
---
 gnu/packages/crates-io.scm | 671 ---------------------------------------------
 gnu/packages/rust-apps.scm | 121 ++++----
 2 files changed, 68 insertions(+), 724 deletions(-)

diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index 108bb9826d..215d7a7e52 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -81231,677 +81231,6 @@ tools.")
 supplies to build scripts.")
     (license (list license:expat license:asl2.0))))
 
-(define-public rust-tectonic-bridge-core-0.4
-  (package
-    (name "rust-tectonic-bridge-core")
-    (version "0.4.1")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (crate-uri "tectonic_bridge_core" version))
-       (file-name (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32 "1j730zbzi19z45pp995483g1dcax50j4n67aymyhvyscypibv87c"))))
-    (build-system cargo-build-system)
-    (arguments
-     `(#:cargo-inputs
-       (("rust-cc" ,rust-cc-1)
-        ("rust-flate2" ,rust-flate2-1)
-        ("rust-lazy-static" ,rust-lazy-static-1)
-        ("rust-libc" ,rust-libc-0.2)
-        ("rust-md-5" ,rust-md-5-0.10)
-        ("rust-tectonic-errors" ,rust-tectonic-errors-0.2)
-        ("rust-tectonic-io-base" ,rust-tectonic-io-base-0.3)
-        ("rust-tectonic-status-base" ,rust-tectonic-status-base-0.2))))
-    (inputs (list zlib))
-    (native-inputs (list pkg-config))
-    (home-page "https://tectonic-typesetting.github.io/";)
-    (synopsis "Expose core backend APIs to the Tectonic C/C++ code")
-    (description
-     "This crate is part of the Tectonic project.  It provides a C API to core
-I/O services provided by the Tectonic Rust code.  This API is then consumed by
-the various C/C++ ``engines`` implementing the TeX software.")
-    (license license:expat)))
-
-(define-public rust-tectonic-bridge-core-0.3
-  (package
-    (inherit rust-tectonic-bridge-core-0.4)
-    (name "rust-tectonic-bridge-core")
-    (version "0.3.2")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (crate-uri "tectonic_bridge_core" version))
-       (file-name (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32 "0zqhyn00wx6qxs4a0m9iy1qmd1451vx2i3b31ng256x7rm0k6dx4"))))
-    (arguments
-     `(#:cargo-inputs
-       (("rust-cc" ,rust-cc-1)
-        ("rust-flate2" ,rust-flate2-1)
-        ("rust-lazy-static" ,rust-lazy-static-1)
-        ("rust-libc" ,rust-libc-0.2)
-        ("rust-md-5" ,rust-md-5-0.10)
-        ("rust-tectonic-errors" ,rust-tectonic-errors-0.2)
-        ("rust-tectonic-io-base" ,rust-tectonic-io-base-0.4)
-        ("rust-tectonic-status-base" ,rust-tectonic-status-base-0.2))))))
-
-(define-public rust-tectonic-bridge-flate-0.1
-  (package
-    (name "rust-tectonic-bridge-flate")
-    (version "0.1.7")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (crate-uri "tectonic_bridge_flate" version))
-       (file-name (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32 "0hz274rzlx528a8szlrpjxlv35sqw558wzybm2y63yy1s317z316"))))
-    (build-system cargo-build-system)
-    (arguments
-     `(#:cargo-inputs
-       (("rust-flate2" ,rust-flate2-1)
-        ("rust-libc" ,rust-libc-0.2))))
-    (inputs (list zlib))
-    (native-inputs (list pkg-config))
-    (home-page "https://tectonic-typesetting.github.io/";)
-    (synopsis "Expose flate compression to the Tectonic C code")
-    (description
-     "This crate is part of the Tectonic project.  It provides a limited C API
-to the @code{flate2} crate.  This API is consumed by other Tectonic crates
-that include C code that require flate2 functionality.")
-    (license license:expat)))
-
-(define-public rust-tectonic-bridge-freetype2-0.2
-  (package
-    (name "rust-tectonic-bridge-freetype2")
-    (version "0.2.0")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (crate-uri "tectonic_bridge_freetype2" version))
-       (file-name (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32 "1vnn6c4cp1qaqnr74bi9mzh25l6dxi8h753lqrfkqz5wb57fv29b"))))
-    (build-system cargo-build-system)
-    (arguments
-     `(#:cargo-inputs
-       (("rust-tectonic-dep-support" ,rust-tectonic-dep-support-0.1))))
-    (inputs (list freetype))
-    (native-inputs (list pkg-config))
-    (home-page "https://tectonic-typesetting.github.io/";)
-    (synopsis "Expose the FreeType2 library C APIs to Rust/Cargo")
-    (description
-     "This crate is part of the Tectonic project.  It exposes the C API of the
-FreeType font rendering engine within the Rust/Cargo build framework, with no
-Rust bindings.")
-    (license license:expat)))
-
-(define-public rust-tectonic-bridge-graphite2-0.2
-  (package
-    (name "rust-tectonic-bridge-graphite2")
-    (version "0.2.2")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (crate-uri "tectonic_bridge_graphite2" version))
-       (file-name (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32 "0r0bi0qs0393vnh7q3yh71niwvqlm5qdzi0yq13z5v4przqi7lpc"))))
-    (build-system cargo-build-system)
-    (arguments
-     `(#:cargo-inputs
-       (("rust-tectonic-dep-support" ,rust-tectonic-dep-support-0.1))))
-    (native-inputs
-     (list pkg-config))
-    (inputs
-     (list graphite2))
-    (home-page "https://tectonic-typesetting.github.io/";)
-    (synopsis "Expose the graphite2 library to Rust/Cargo")
-    (description
-     "This crate is part of the Tectonic project.  It exposes the C API of the
-@code{graphite2} ``smart font`` system within the Rust/Cargo build framework,
-with no Rust bindings.")
-    (license license:expat)))
-
-(define-public rust-tectonic-bridge-harfbuzz-0.2
-  (package
-    (name "rust-tectonic-bridge-harfbuzz")
-    (version "0.2.9")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (crate-uri "tectonic_bridge_harfbuzz" version))
-       (file-name (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32 "17mj3qks5nv0cc65h7h27j1kz3l5lib0krcai1mwdng72igmrypp"))
-       (snippet
-        #~(begin (use-modules (guix build utils))
-                 (delete-file-recursively "harfbuzz")
-                 (substitute* "Cargo.toml"
-                   (("external-harfbuzz")
-                    (string-append "default = ['external-harfbuzz']\n"
-                                   "external-harfbuzz")))))))
-    (build-system cargo-build-system)
-    (arguments
-     `(#:cargo-inputs
-       (("rust-cc" ,rust-cc-1)
-        ("rust-tectonic-bridge-graphite2" ,rust-tectonic-bridge-graphite2-0.2)
-        ("rust-tectonic-bridge-icu" ,rust-tectonic-bridge-icu-0.2))))
-    (inputs (list freetype graphite2 harfbuzz icu4c))
-    (native-inputs (list pkg-config))
-    (home-page "https://tectonic-typesetting.github.io/";)
-    (synopsis "Expose the Harfbuzz C/C++ APIs to Rust/Cargo")
-    (description
-     "This crate is part of the Tectonic project.  It exposes the C API of the
-Harfbuzz text shaping library the Rust/Cargo build framework, with no Rust
-bindings.")
-    (license license:expat)))
-
-(define-public rust-tectonic-bridge-icu-0.2
-  (package
-    (name "rust-tectonic-bridge-icu")
-    (version "0.2.1")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (crate-uri "tectonic_bridge_icu" version))
-       (file-name (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32 "0zhvqbysn58ja5f4ki7ip6asdqbii45f5l79g90g50q293pfc12d"))))
-    (build-system cargo-build-system)
-    (arguments
-     `(#:cargo-inputs
-       (("rust-tectonic-dep-support" ,rust-tectonic-dep-support-0.1))))
-    (inputs (list icu4c))
-    (native-inputs (list pkg-config))
-    (home-page "https://tectonic-typesetting.github.io/";)
-    (synopsis "Expose a subset of the ICU Unicode APIs to Rust/Cargo")
-    (description
-     "This crate is part of the Tectonic project.  It exposes the C API of the
-@code{ICU4C} Unicode library the Rust/Cargo build framework, with no Rust
-bindings.")
-    (license license:expat)))
-
-(define-public rust-tectonic-bundles-0.3
-  (package
-    (name "rust-tectonic-bundles")
-    (version "0.3.1")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (crate-uri "tectonic_bundles" version))
-       (file-name (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32 "1qgprq4p7pgmgzrzq3zjghh0b045i66nmk8kwxwlp5qx8nx4myah"))))
-    (build-system cargo-build-system)
-    (arguments
-     `(#:cargo-inputs
-       (("rust-flate2" ,rust-flate2-1)
-        ("rust-fs2" ,rust-fs2-0.4)
-        ("rust-tectonic-errors" ,rust-tectonic-errors-0.2)
-        ("rust-tectonic-geturl" ,rust-tectonic-geturl-0.3)
-        ("rust-tectonic-io-base" ,rust-tectonic-io-base-0.4)
-        ("rust-tectonic-status-base" ,rust-tectonic-status-base-0.2)
-        ("rust-zip" ,rust-zip-0.6))))
-    (native-inputs
-     (list pkg-config))
-    (inputs
-     (list openssl zlib))
-    (home-page "https://tectonic-typesetting.github.io/";)
-    (synopsis "Tectonic ``bundle'' (support file collection) implementations")
-    (description
-     "This crate is part of the Tectonic project.  It implements various
-Tectonic ``bundles`` that provide access to collections of TeX support
-files.")
-    (license license:expat)))
-
-(define-public rust-tectonic-cfg-support-0.1
-  (package
-    (name "rust-tectonic-cfg-support")
-    (version "0.1.4")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (crate-uri "tectonic_cfg_support" version))
-       (file-name (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32 "07pd5fpqshxa7x8iky3hg4dznsx6xxf51s4336ynbvfw82ycis12"))))
-    (build-system cargo-build-system)
-    (arguments
-     `(#:cargo-inputs
-       (("rust-lazy-static" ,rust-lazy-static-1))))
-    (home-page "https://tectonic-typesetting.github.io/";)
-    (synopsis "Support crate for @code{CARGO_CFG_TARGET_*} variables")
-    (description
-     "This package provides a build.rs support crate that helps deal
-with @code{CARGO_CFG_TARGET_*} variables.")
-    (license license:expat)))
-
-(define-public rust-tectonic-dep-support-0.1
-  (package
-    (name "rust-tectonic-dep-support")
-    (version "0.1.1")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (crate-uri "tectonic_dep_support" version))
-       (file-name (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32 "1sr9yvxar239qmhhzb9ql7j79iqlma11r83shalv9h82nzcky2cv"))))
-    (build-system cargo-build-system)
-    (arguments
-     `(#:cargo-inputs
-       (("rust-pkg-config" ,rust-pkg-config-0.3)
-        ("rust-vcpkg" ,rust-vcpkg-0.2))))
-    (home-page "https://tectonic-typesetting.github.io/";)
-    (synopsis "Find third-party libraries using either pkg-config or vcpkg")
-    (description
-     "This crate is part of the Tectonic project.  It provides build-time
-utilities for finding external library dependencies, allowing either
-@code{pkg-config} or @code{vcpkg} to be used as the dep-finding backend, and
-providing whatever fiddly features are needed to enable the Tectonic build
-process.")
-    (license license:expat)))
-
-(define-public rust-tectonic-docmodel-0.2
-  (package
-    (name "rust-tectonic-docmodel")
-    (version "0.2.2")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (crate-uri "tectonic_docmodel" version))
-       (file-name (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32 "1dn539wm8lcb34zqwybcwdnhj4yd44adk2wky0frx7s2lr5hfaas"))))
-    (build-system cargo-build-system)
-    (arguments
-     `(#:cargo-inputs
-       (("rust-serde" ,rust-serde-1)
-        ("rust-tectonic-errors" ,rust-tectonic-errors-0.2)
-        ("rust-toml" ,rust-toml-0.7))))
-    (home-page "https://tectonic-typesetting.github.io/";)
-    (synopsis "Tectonic document model")
-    (description
-     "This crate is part of the Tectonic project.  It implements the Tectonic
-document model, including the @file{Tectonic.toml} file.")
-    (license license:expat)))
-
-(define-public rust-tectonic-engine-bibtex-0.1
-  (package
-    (name "rust-tectonic-engine-bibtex")
-    (version "0.1.5")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (crate-uri "tectonic_engine_bibtex" version))
-       (file-name (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32 "1h6q7wba6i92rfhyp98dy6v3sv6ccjdkc8wwl202vc26pllw1cn9"))))
-    (build-system cargo-build-system)
-    (arguments
-     `(#:cargo-inputs
-       (("rust-cc" ,rust-cc-1)
-        ("rust-libc" ,rust-libc-0.2)
-        ("rust-tectonic-bridge-core" ,rust-tectonic-bridge-core-0.3)
-        ("rust-tectonic-errors" ,rust-tectonic-errors-0.2))))
-    (inputs (list zlib))
-    (native-inputs (list pkg-config))
-    (home-page "https://tectonic-typesetting.github.io/";)
-    (synopsis "@code{bibtex} program as a reusable crate")
-    (description
-     "This crate is part of the Tectonic project.  It provides the
-@code{bibtex} program as a reusable crate.")
-    (license license:expat)))
-
-(define-public rust-tectonic-engine-spx2html-0.3
-  (package
-    (name "rust-tectonic-engine-spx2html")
-    (version "0.3.2")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (crate-uri "tectonic_engine_spx2html" version))
-       (file-name (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32 "1skbxcng0spml3lhb9mmh7sr4nvfvwq715hggxr6pjs3id5p4s5q"))))
-    (build-system cargo-build-system)
-    (arguments
-     `(#:cargo-inputs (("rust-byteorder" ,rust-byteorder-1)
-                       ("rust-html-escape" ,rust-html-escape-0.2)
-                       ("rust-percent-encoding" ,rust-percent-encoding-2)
-                       ("rust-pinot" ,rust-pinot-0.1)
-                       ("rust-serde" ,rust-serde-1)
-                       ("rust-serde-json" ,rust-serde-json-1)
-                       ("rust-tectonic-bridge-core" 
,rust-tectonic-bridge-core-0.3)
-                       ("rust-tectonic-errors" ,rust-tectonic-errors-0.2)
-                       ("rust-tectonic-io-base" ,rust-tectonic-io-base-0.4)
-                       ("rust-tectonic-status-base" 
,rust-tectonic-status-base-0.2)
-                       ("rust-tectonic-xdv" ,rust-tectonic-xdv-0.2)
-                       ("rust-tempfile" ,rust-tempfile-3)
-                       ("rust-tera" ,rust-tera-1))))
-    (inputs (list zlib))
-    (native-inputs (list pkg-config))
-    (home-page "https://tectonic-typesetting.github.io/";)
-    (synopsis "Tectonic engine that converts SPX output to HTML")
-    (description "This crate implements the Tectonic engine that converts SPX
-output to HTML.")
-    (license license:expat)))
-
-(define-public rust-tectonic-engine-spx2html-0.1
-  (package
-    (inherit rust-tectonic-engine-spx2html-0.3)
-    (name "rust-tectonic-engine-spx2html")
-    (version "0.1.1")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (crate-uri "tectonic_engine_spx2html" version))
-       (file-name (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32 "15nxgx20x3ii9ksdj2w9jis1qm1rd451kw3jh87ydvwqnzg88f3m"))))
-    (arguments
-     `(#:cargo-inputs
-       (("rust-byteorder" ,rust-byteorder-1)
-        ("rust-percent-encoding" ,rust-percent-encoding-2)
-        ("rust-pinot" ,rust-pinot-0.1)
-        ("rust-tectonic-bridge-core" ,rust-tectonic-bridge-core-0.3)
-        ("rust-tectonic-errors" ,rust-tectonic-errors-0.2)
-        ("rust-tectonic-io-base" ,rust-tectonic-io-base-0.4)
-        ("rust-tectonic-status-base" ,rust-tectonic-status-base-0.2)
-        ("rust-tectonic-xdv" ,rust-tectonic-xdv-0.2)
-        ("rust-tempfile" ,rust-tempfile-3)
-        ("rust-tera" ,rust-tera-1))))))
-
-(define-public rust-tectonic-engine-xdvipdfmx-0.4
-  (package
-    (name "rust-tectonic-engine-xdvipdfmx")
-    (version "0.4.1")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (crate-uri "tectonic_engine_xdvipdfmx" version))
-       (file-name (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32 "1h8lslv1h6g8971787sa818g6yhpqr00g13sw6ij14m6k9bi1dq7"))))
-    (build-system cargo-build-system)
-    (arguments
-     `(#:cargo-inputs
-       (("rust-cc" ,rust-cc-1)
-        ("rust-libc" ,rust-libc-0.2)
-        ("rust-tectonic-bridge-core" ,rust-tectonic-bridge-core-0.3)
-        ("rust-tectonic-errors" ,rust-tectonic-errors-0.2)
-        ("rust-tectonic-pdf-io" ,rust-tectonic-pdf-io-0.4))))
-    (native-inputs
-     (list pkg-config))
-    (inputs
-     (list libpng zlib))
-    (home-page "https://tectonic-typesetting.github.io/";)
-    (synopsis "@code{xdvipdfmx} program as a reusable crate")
-    (description
-     "This crate is part of the Tectonic project.  It provides XeTeX’s
-@code{xdvipdfmx} program as a reusable crate.")
-    (license license:expat)))
-
-(define-public rust-tectonic-engine-xetex-0.4
-  (package
-    (name "rust-tectonic-engine-xetex")
-    (version "0.4.4")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (crate-uri "tectonic_engine_xetex" version))
-       (file-name (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32 "11if3zyzp8149gf1j4fhwk8kbbs2agxkk5la1lhmq4icrj6szwrf"))))
-    (build-system cargo-build-system)
-    (arguments
-     `(#:cargo-inputs
-       (("rust-cc" ,rust-cc-1)
-        ("rust-libc" ,rust-libc-0.2)
-        ("rust-tectonic-bridge-core" ,rust-tectonic-bridge-core-0.3)
-        ("rust-tectonic-bridge-flate" ,rust-tectonic-bridge-flate-0.1)
-        ("rust-tectonic-bridge-graphite2" ,rust-tectonic-bridge-graphite2-0.2)
-        ("rust-tectonic-bridge-harfbuzz" ,rust-tectonic-bridge-harfbuzz-0.2)
-        ("rust-tectonic-cfg-support" ,rust-tectonic-cfg-support-0.1)
-        ("rust-tectonic-errors" ,rust-tectonic-errors-0.2)
-        ("rust-tectonic-pdf-io" ,rust-tectonic-pdf-io-0.4)
-        ("rust-tectonic-xetex-layout" ,rust-tectonic-xetex-layout-0.2))))
-    (native-inputs
-     (list pkg-config))
-    (inputs
-     (list fontconfig
-           freetype
-           graphite2
-           harfbuzz
-           icu4c
-           zlib))
-    (home-page "https://tectonic-typesetting.github.io/";)
-    (synopsis "XeTeX engine as a reusable crate")
-    (description
-     "This crate is part of the Tectonic project.  It provides the XeTeX
-engine as a reusable crate.")
-    (license license:expat)))
-
-(define-public rust-tectonic-errors-0.2
-  (package
-    (name "rust-tectonic-errors")
-    (version "0.2.1")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (crate-uri "tectonic_errors" version))
-       (file-name (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32 "1xa10hy6llyhvn5yxnzdkhp94qfnidnwfrd858k86jp74f9c0wwf"))))
-    (build-system cargo-build-system)
-    (arguments
-     `(#:cargo-inputs
-       (("rust-anyhow" ,rust-anyhow-1))))
-    (home-page "https://tectonic-typesetting.github.io/";)
-    (synopsis "Boxed error type for Tectonic, with supporting utilities")
-    (description
-     "This crate is part of the Tectonic project.  It provides a basic boxed
-error type and utilities.")
-    (license license:expat)))
-
-(define-public rust-tectonic-geturl-0.3
-  (package
-    (name "rust-tectonic-geturl")
-    (version "0.3.2")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (crate-uri "tectonic_geturl" version))
-       (file-name (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32 "19rr4072na5h9sh9fpyzs1n9k3zrwj1gw4l9344alcsznn5fyryz"))))
-    (build-system cargo-build-system)
-    (arguments
-     `(#:cargo-inputs
-       (("rust-cfg-if" ,rust-cfg-if-1)
-        ("rust-curl" ,rust-curl-0.4)
-        ("rust-reqwest" ,rust-reqwest-0.11)
-        ("rust-tectonic-errors" ,rust-tectonic-errors-0.2)
-        ("rust-tectonic-status-base" ,rust-tectonic-status-base-0.2))))
-    (inputs (list openssl))
-    (native-inputs (list pkg-config))
-    (home-page "https://tectonic-typesetting.github.io/";)
-    (synopsis "Interface for HTTP GETs and byte-range requests")
-    (description
-     "This crate is part of the Tectonic project.  It provides an
-interface for fetching URLs using one of several HTTP backends.")
-    (license license:expat)))
-
-(define-public rust-tectonic-io-base-0.4
-  (package
-    (name "rust-tectonic-io-base")
-    (version "0.4.3")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (crate-uri "tectonic_io_base" version))
-       (file-name (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32 "13vqkvxn2r6y827ghj84ndmx991m26sdd4zxpgb7fll00bqwcr6v"))))
-    (build-system cargo-build-system)
-    (arguments
-     `(#:cargo-inputs
-       (("rust-app-dirs2" ,rust-app-dirs2-2)
-        ("rust-flate2" ,rust-flate2-1)
-        ("rust-libc" ,rust-libc-0.2)
-        ("rust-sha2" ,rust-sha2-0.10)
-        ("rust-tectonic-errors" ,rust-tectonic-errors-0.2)
-        ("rust-tectonic-status-base" ,rust-tectonic-status-base-0.2)
-        ("rust-thiserror" ,rust-thiserror-1))))
-    (inputs (list zlib))
-    (native-inputs (list pkg-config))
-    (home-page "https://tectonic-typesetting.github.io/";)
-    (synopsis "Basic types for Tectonic's pluggable I/O backend system")
-    (description
-     "This crate is part of the Tectonic project.  It provides basic
-types for Tectonic's pluggable I/O backend system, with
-implementations for @code{std} I/O types as well as @code{flate2} gzip
-streams.")
-    (license license:expat)))
-
-(define-public rust-tectonic-io-base-0.3
-  (package
-    (inherit rust-tectonic-io-base-0.4)
-    (name "rust-tectonic-io-base")
-    (version "0.3.1")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (crate-uri "tectonic_io_base" version))
-       (file-name (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32 "0i74dlahsrz2yzdlirpwhpnfqpyidh5bz1z1iqnqv9ds9krw6yvb"))))
-    (arguments
-     `(#:cargo-inputs
-       (("rust-app-dirs2" ,rust-app-dirs2-2)
-        ("rust-flate2" ,rust-flate2-1)
-        ("rust-libc" ,rust-libc-0.2)
-        ("rust-sha2" ,rust-sha2-0.9)
-        ("rust-tectonic-errors" ,rust-tectonic-errors-0.2)
-        ("rust-tectonic-status-base" ,rust-tectonic-status-base-0.2)
-        ("rust-thiserror" ,rust-thiserror-1))))))
-
-(define-public rust-tectonic-pdf-io-0.4
-  (package
-    (name "rust-tectonic-pdf-io")
-    (version "0.4.1")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (crate-uri "tectonic_pdf_io" version))
-       (file-name (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32 "0d3pj1q1hyn0kkh6fyw9b2z5ppwz6bck4s5236wx3a1kpp1k5irr"))))
-    (build-system cargo-build-system)
-    (arguments
-     `(#:cargo-inputs
-       (("rust-cc" ,rust-cc-1)
-        ("rust-tectonic-bridge-core" ,rust-tectonic-bridge-core-0.3)
-        ("rust-tectonic-bridge-flate" ,rust-tectonic-bridge-flate-0.1)
-        ("rust-tectonic-cfg-support" ,rust-tectonic-cfg-support-0.1)
-        ("rust-tectonic-dep-support" ,rust-tectonic-dep-support-0.1))))
-    (native-inputs
-     (list pkg-config))
-    (inputs
-     (list libpng))
-    (home-page "https://tectonic-typesetting.github.io/";)
-    (synopsis "Xdvipdfmx's PDF, XDV, and image I/O APIs in C, as a Rust crate")
-    (description
-     "This crate is part of the Tectonic project.  It provides the PDF, XDV,
-and image I/O capabilities of XeTeX’s xdvipdfmx as a crate, currently
-providing only a C API.")
-    (license license:expat)))
-
-(define-public rust-tectonic-status-base-0.2
-  (package
-    (name "rust-tectonic-status-base")
-    (version "0.2.1")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (crate-uri "tectonic_status_base" version))
-       (file-name (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32 "11v0ds5jwkg4jm18n0a0qxhlrfh27inls0kyjsi42arrmqm0mcwk"))))
-    (build-system cargo-build-system)
-    (arguments
-     `(#:cargo-inputs
-       (("rust-tectonic-errors" ,rust-tectonic-errors-0.2))))
-    (home-page "https://tectonic-typesetting.github.io/";)
-    (synopsis "Basic types for reporting status messages to a user")
-    (description
-     "This crate is part of the Tectonic project.  It provides a basic
-types for reporting status messages to a user.")
-    (license license:expat)))
-
-(define-public rust-tectonic-xdv-0.2
-  (package
-    (name "rust-tectonic-xdv")
-    (version "0.2.2")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (crate-uri "tectonic_xdv" version))
-       (file-name (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32 "0dc9hs4nyxligv53nbn20mpqysfv5awrw24bm3bgzawiv7vf17gm"))))
-    (build-system cargo-build-system)
-    (arguments
-     `(#:cargo-inputs (("rust-byteorder" ,rust-byteorder-1))
-       #:cargo-development-inputs (("rust-clap" ,rust-clap-2))))
-    (home-page "https://tectonic-typesetting.github.io/";)
-    (synopsis "Decoder for the XDV and SPX file formats")
-    (description
-     "This package provides a decoder for the XDV and SPX file formats
-used by XeTeX and Tectonic.")
-    (license license:expat)))
-
-(define-public rust-tectonic-xetex-layout-0.2
-  (package
-    (name "rust-tectonic-xetex-layout")
-    (version "0.2.4")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (crate-uri "tectonic_xetex_layout" version))
-       (file-name (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32 "0sbh8wnyrkfvzjlzyk3p9zbzp277p1qhmz0davz2sgnzzgp8ffsn"))))
-    (build-system cargo-build-system)
-    (arguments
-     `(#:cargo-inputs
-       (("rust-cc" ,rust-cc-1)
-        ("rust-tectonic-bridge-core" ,rust-tectonic-bridge-core-0.3)
-        ("rust-tectonic-bridge-freetype2" ,rust-tectonic-bridge-freetype2-0.2)
-        ("rust-tectonic-bridge-graphite2" ,rust-tectonic-bridge-graphite2-0.2)
-        ("rust-tectonic-bridge-harfbuzz" ,rust-tectonic-bridge-harfbuzz-0.2)
-        ("rust-tectonic-bridge-icu" ,rust-tectonic-bridge-icu-0.2)
-        ("rust-tectonic-cfg-support" ,rust-tectonic-cfg-support-0.1)
-        ("rust-tectonic-dep-support" ,rust-tectonic-dep-support-0.1))))
-    (native-inputs
-     (list pkg-config))
-    (inputs
-     (list fontconfig
-           freetype
-           graphite2
-           harfbuzz
-           icu4c
-           zlib))
-    (home-page "https://tectonic-typesetting.github.io/";)
-    (synopsis "XeTeX's font loading and layout interface encapsulation")
-    (description
-     "This crate is part of the Tectonic project.  It provides the font
-loading and layout routines of XeTeX as a crate, currently providing only
-a C API.")
-    (license license:expat)))
-
 (define-public rust-temp-dir-0.1
   (package
     (name "rust-temp-dir")
diff --git a/gnu/packages/rust-apps.scm b/gnu/packages/rust-apps.scm
index ace5d0b61d..4465d2e348 100644
--- a/gnu/packages/rust-apps.scm
+++ b/gnu/packages/rust-apps.scm
@@ -2971,64 +2971,81 @@ model.")
 (define-public tectonic
   (package
     (name "tectonic")
-    (version "0.12.0")
+    (version "0.15.0")
     (source
      (origin
-       (method url-fetch)
-       (uri (crate-uri "tectonic" version))
-       (file-name (string-append name "-" version ".tar.gz"))
+       ;; Grab all the sources instead of each packaged crate in the workspace.
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/tectonic-typesetting/tectonic";)
+             (commit (string-append name "@" version))
+             (recursive? #t)))
+       (file-name (git-file-name name version))
        (sha256
-        (base32 "1q4mz2c32gfypx33zlzgd1q9h4322jrk13fzvsf8h676ylclqzpc"))))
+        (base32 "02wchm7kmfsw8y71x84hlk9qf5ldvj2ir7j8pcq2a09wlj4xi4f5"))
+       (snippet
+        #~(begin (use-modules (guix build utils))
+                 (delete-file-recursively 
"crates/bridge_harfbuzz/harfbuzz")))))
     (build-system cargo-build-system)
     (arguments
-     `(#:install-source? #f
+     (list
+       #:install-source? #f
+       #:features '(list "external-harfbuzz")
+       #:cargo-test-flags '(list "--features" "external-harfbuzz")
        #:cargo-inputs
-       (("rust-atty" ,rust-atty-0.2)
-        ("rust-byte-unit" ,rust-byte-unit-4)
-        ("rust-cfg-if" ,rust-cfg-if-1)
-        ("rust-error-chain" ,rust-error-chain-0.12)
-        ("rust-flate2" ,rust-flate2-1)
-        ("rust-fs2" ,rust-fs2-0.4)
-        ("rust-lazy-static" ,rust-lazy-static-1)
-        ("rust-libc" ,rust-libc-0.2)
-        ("rust-md-5" ,rust-md-5-0.9)
-        ("rust-open" ,rust-open-1)
-        ("rust-quick-xml" ,rust-quick-xml-0.22)
-        ("rust-serde" ,rust-serde-1)
-        ("rust-sha2" ,rust-sha2-0.9)
-        ("rust-structopt" ,rust-structopt-0.3)
-        ("rust-tectonic-bridge-core" ,rust-tectonic-bridge-core-0.3)
-        ("rust-tectonic-bundles" ,rust-tectonic-bundles-0.3)
-        ("rust-tectonic-docmodel" ,rust-tectonic-docmodel-0.2)
-        ("rust-tectonic-engine-bibtex" ,rust-tectonic-engine-bibtex-0.1)
-        ("rust-tectonic-engine-spx2html" ,rust-tectonic-engine-spx2html-0.1)
-        ("rust-tectonic-engine-xdvipdfmx" ,rust-tectonic-engine-xdvipdfmx-0.4)
-        ("rust-tectonic-engine-xetex" ,rust-tectonic-engine-xetex-0.4)
-        ("rust-tectonic-errors" ,rust-tectonic-errors-0.2)
-        ("rust-tectonic-geturl" ,rust-tectonic-geturl-0.3)
-        ("rust-tectonic-io-base" ,rust-tectonic-io-base-0.4)
-        ("rust-tectonic-status-base" ,rust-tectonic-status-base-0.2)
-        ("rust-tectonic-xdv" ,rust-tectonic-xdv-0.2)
-        ("rust-tempfile" ,rust-tempfile-3)
-        ("rust-termcolor" ,rust-termcolor-1)
-        ("rust-toml" ,rust-toml-0.5)
-        ("rust-url" ,rust-url-2)
-        ("rust-watchexec" ,rust-watchexec-1)
-        ("rust-zip" ,rust-zip-0.5))
+       (list rust-app-dirs2-2
+             rust-anyhow-1
+             rust-atty-0.2
+             rust-byte-unit-4
+             rust-byteorder-1
+             rust-cc-1
+             rust-cfg-if-1
+             rust-curl-0.4
+             rust-error-chain-0.12
+             rust-flate2-1
+             rust-fs2-0.4
+             rust-html-escape-0.2
+             rust-lazy-static-1
+             rust-libc-0.2
+             rust-md-5-0.10
+             rust-nom-7
+             rust-open-4
+             rust-percent-encoding-2
+             rust-pinot-0.1
+             rust-pkg-config-0.3
+             rust-quick-xml-0.28
+             rust-reqwest-0.11
+             rust-serde-1
+             rust-serde-json-1
+             rust-sha2-0.10
+             rust-structopt-0.3
+             rust-tempfile-3
+             rust-tera-1
+             rust-termcolor-1
+             rust-thiserror-1
+             rust-tokio-1
+             rust-toml-0.7
+             rust-url-2
+             rust-vcpkg-0.2
+             rust-watchexec-2
+             rust-watchexec-filterer-globset-1
+             rust-watchexec-signals-1
+             rust-zip-0.6)
        #:cargo-development-inputs
-       (("rust-filetime" ,rust-filetime-0.2)
-        ("rust-futures" ,rust-futures-0.1)
-        ("rust-headers" ,rust-headers-0.2)
-        ("rust-hyper" ,rust-hyper-0.12)
-        ("rust-tempfile" ,rust-tempfile-3)
-        ("rust-tokio" ,rust-tokio-0.1))
+       (list rust-clap-2
+             rust-filetime-0.2
+             rust-futures-0.3
+             rust-headers-0.3
+             rust-hyper-0.14
+             rust-structopt-0.3
+             rust-tempfile-3)
        #:phases
-       (modify-phases %standard-phases
-         (add-after 'install 'install-doc
-           (lambda* (#:key outputs #:allow-other-keys)
-             (let* ((out (assoc-ref outputs "out"))
-                    (doc (string-append out "/share/doc/" ,name "-" ,version)))
-               (copy-recursively "docs/src" doc)))))))
+       #~(modify-phases %standard-phases
+           (add-after 'install 'install-doc
+             (lambda* (#:key outputs #:allow-other-keys)
+               (let* ((out (assoc-ref outputs "out"))
+                      (doc (string-append out "/share/doc/" #$name "-" 
#$version)))
+                 (copy-recursively "docs/src" doc)))))))
     (native-inputs
      (list pkg-config))
     (inputs
@@ -3037,9 +3054,7 @@ model.")
            graphite2
            harfbuzz
            icu4c
-           libpng
-           openssl
-           zlib))
+           openssl))
     (home-page "https://tectonic-typesetting.github.io/";)
     (synopsis "Complete, embeddable TeX/LaTeX engine")
     (description


Reply via email to