commit:     6b0adb14104b158f535dce26d43ff67540ffe9cd
Author:     Ryan Wong <juan <AT> juancord <DOT> xyz>
AuthorDate: Sun Apr 20 12:49:34 2025 +0000
Commit:     Ryan Wong <juan <AT> juancord <DOT> xyz>
CommitDate: Sun Apr 20 12:49:34 2025 +0000
URL:        https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=6b0adb14

dev-tex/tectonic: Fix not closing files when spotless history is returned

This fixes the problem of checking if .bbl file changes, by backporting
a commit in master branch.

Upstream issue tracker:
https://github.com/tectonic-typesetting/tectonic/issues/1150

Upstream commit that is used in patch:
https://github.com/tectonic-typesetting/tectonic/pull/1155/commits/fbb145cd079497b8c88197276f92cb89685b4d54

Signed-off-by: Ryan Wong <juan <AT> juancord.xyz>

 ...15.0-fix-internal-consistency-problem-bbl.patch |  32 ++
 dev-tex/tectonic/tectonic-0.15.0-r1.ebuild         | 392 +++++++++++++++++++++
 2 files changed, 424 insertions(+)

diff --git 
a/dev-tex/tectonic/files/tectonic-0.15.0-fix-internal-consistency-problem-bbl.patch
 
b/dev-tex/tectonic/files/tectonic-0.15.0-fix-internal-consistency-problem-bbl.patch
new file mode 100644
index 000000000..6c7e1e814
--- /dev/null
+++ 
b/dev-tex/tectonic/files/tectonic-0.15.0-fix-internal-consistency-problem-bbl.patch
@@ -0,0 +1,32 @@
+From fbb145cd079497b8c88197276f92cb89685b4d54 Mon Sep 17 00:00:00 2001
+From: Rune Tynan <runety...@gmail.com>
+Date: Tue, 20 Feb 2024 16:43:04 -0800
+Subject: [PATCH] Fix not closing files when spotless history is returned
+
+---
+ crates/engine_bibtex/src/lib.rs | 5 ++---
+ 1 file changed, 2 insertions(+), 3 deletions(-)
+
+diff --git a/crates/engine_bibtex/src/lib.rs b/crates/engine_bibtex/src/lib.rs
+index fd97b461d..61efc469c 100644
+--- a/crates/engine_bibtex/src/lib.rs
++++ b/crates/engine_bibtex/src/lib.rs
+@@ -333,9 +333,7 @@ pub(crate) fn bibtex_main(ctx: &mut Bibtex<'_, '_>, 
aux_file_name: &CStr) -> His
+ 
+     let res = inner_bibtex_main(ctx, &mut globals, aux_file_name);
+     match res {
+-        Ok(History::Spotless) => (),
+-        Ok(hist) => return hist,
+-        Err(BibtexError::Recover) => {
++        Err(BibtexError::Recover) | Ok(History::Spotless) => {
+             // SAFETY: bst_file guaranteed valid at this point
+             unsafe { peekable_close(ctx, ctx.bst_file) };
+             ctx.bst_file = None;
+@@ -345,6 +343,7 @@ pub(crate) fn bibtex_main(ctx: &mut Bibtex<'_, '_>, 
aux_file_name: &CStr) -> His
+             ttbc_output_close(ctx.engine, ctx.bbl_file);
+         }
+         Err(BibtexError::Fatal) => (),
++        Ok(hist) => return hist,
+     }
+ 
+     match get_history() {

diff --git a/dev-tex/tectonic/tectonic-0.15.0-r1.ebuild 
b/dev-tex/tectonic/tectonic-0.15.0-r1.ebuild
new file mode 100644
index 000000000..1283dc316
--- /dev/null
+++ b/dev-tex/tectonic/tectonic-0.15.0-r1.ebuild
@@ -0,0 +1,392 @@
+# Copyright 2023-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+# Auto-Generated by cargo-ebuild 0.5.4-r1
+
+EAPI=8
+
+CRATES="
+       addr2line@0.21.0
+       adler@1.0.2
+       aho-corasick@1.1.2
+       android-tzdata@0.1.1
+       android_system_properties@0.1.5
+       ansi_term@0.12.1
+       anyhow@1.0.79
+       app_dirs2@2.5.5
+       async-priority-channel@0.1.0
+       async-recursion@1.0.5
+       async-trait@0.1.77
+       atomic-take@1.1.0
+       atty@0.2.14
+       autocfg@1.1.0
+       backtrace@0.3.69
+       base64@0.21.7
+       bitflags@1.3.2
+       bitflags@2.4.2
+       block-buffer@0.10.4
+       bstr@1.9.0
+       btoi@0.4.3
+       bumpalo@3.14.0
+       byte-unit@4.0.19
+       byteorder@1.5.0
+       bytes@1.5.0
+       cc@1.0.83
+       cesu8@1.1.0
+       cfg-if@1.0.0
+       chrono@0.4.33
+       chrono-tz@0.8.5
+       chrono-tz-build@0.2.1
+       clap@2.34.0
+       clearscreen@2.0.1
+       combine@4.6.6
+       command-group@2.1.0
+       core-foundation@0.9.4
+       core-foundation-sys@0.8.6
+       cpufeatures@0.2.12
+       crc32fast@1.3.2
+       crossbeam-channel@0.5.11
+       crossbeam-deque@0.8.5
+       crossbeam-epoch@0.9.18
+       crossbeam-utils@0.8.19
+       crypto-common@0.1.6
+       curl@0.4.44
+       curl-sys@0.4.71+curl-8.6.0
+       deranged@0.3.11
+       deunicode@1.4.2
+       digest@0.10.7
+       dirs@4.0.0
+       dirs-sys@0.3.7
+       dunce@1.0.4
+       either@1.9.0
+       encoding_rs@0.8.33
+       endian-type@0.1.2
+       equivalent@1.0.1
+       errno@0.3.8
+       error-chain@0.12.4
+       event-listener@2.5.3
+       fastrand@2.0.1
+       filetime@0.2.23
+       flate2@1.0.28
+       fnv@1.0.7
+       foreign-types@0.3.2
+       foreign-types-shared@0.1.1
+       form_urlencoded@1.2.1
+       fs2@0.4.3
+       fsevent-sys@4.1.0
+       futures@0.3.30
+       futures-channel@0.3.30
+       futures-core@0.3.30
+       futures-executor@0.3.30
+       futures-io@0.3.30
+       futures-macro@0.3.30
+       futures-sink@0.3.30
+       futures-task@0.3.30
+       futures-util@0.3.30
+       generic-array@0.14.7
+       getrandom@0.2.12
+       gimli@0.28.1
+       gix-actor@0.20.0
+       gix-config@0.22.0
+       gix-config-value@0.12.5
+       gix-date@0.5.1
+       gix-features@0.29.0
+       gix-fs@0.1.1
+       gix-glob@0.7.0
+       gix-hash@0.11.4
+       gix-lock@5.0.1
+       gix-object@0.29.2
+       gix-path@0.8.4
+       gix-ref@0.29.1
+       gix-sec@0.8.4
+       gix-tempfile@5.0.3
+       gix-trace@0.1.7
+       gix-utils@0.1.9
+       gix-validate@0.7.7
+       globset@0.4.14
+       globwalk@0.8.1
+       h2@0.3.24
+       hashbrown@0.14.3
+       headers@0.3.9
+       headers-core@0.2.0
+       heck@0.3.3
+       hermit-abi@0.1.19
+       hermit-abi@0.3.4
+       hex@0.4.3
+       home@0.5.9
+       html-escape@0.2.13
+       http@0.2.11
+       http-body@0.4.6
+       httparse@1.8.0
+       httpdate@1.0.3
+       humansize@2.1.3
+       hyper@0.14.28
+       hyper-tls@0.5.0
+       iana-time-zone@0.1.60
+       iana-time-zone-haiku@0.1.2
+       idna@0.5.0
+       ignore@0.4.22
+       ignore-files@1.3.1
+       indexmap@2.2.2
+       inotify@0.9.6
+       inotify-sys@0.1.5
+       ipnet@2.9.0
+       is-docker@0.2.0
+       is-wsl@0.4.0
+       itoa@1.0.10
+       jni@0.21.1
+       jni-sys@0.3.0
+       js-sys@0.3.67
+       kqueue@1.0.8
+       kqueue-sys@1.0.4
+       lazy_static@1.4.0
+       libc@0.2.153
+       libm@0.2.8
+       libredox@0.0.1
+       libz-sys@1.1.15
+       linux-raw-sys@0.4.13
+       lock_api@0.4.11
+       log@0.4.20
+       md-5@0.10.6
+       memchr@2.7.1
+       memmap2@0.5.10
+       memoffset@0.7.1
+       miette@5.10.0
+       miette-derive@5.10.0
+       mime@0.3.17
+       minimal-lexical@0.2.1
+       miniz_oxide@0.7.2
+       mio@0.8.10
+       native-tls@0.2.11
+       ndk-context@0.1.1
+       nibble_vec@0.1.0
+       nix@0.26.4
+       nom@7.1.3
+       normalize-path@0.2.1
+       notify@5.2.0
+       num-conv@0.1.0
+       num-traits@0.2.17
+       num_cpus@1.16.0
+       num_threads@0.1.6
+       object@0.32.2
+       once_cell@1.19.0
+       open@4.2.0
+       openssl@0.10.63
+       openssl-macros@0.1.1
+       openssl-probe@0.1.5
+       openssl-src@300.2.2+3.2.1
+       openssl-sys@0.9.99
+       parking_lot@0.12.1
+       parking_lot_core@0.9.9
+       parse-zoneinfo@0.3.0
+       pathdiff@0.2.1
+       percent-encoding@2.3.1
+       pest@2.7.6
+       pest_derive@2.7.6
+       pest_generator@2.7.6
+       pest_meta@2.7.6
+       phf@0.11.2
+       phf_codegen@0.11.2
+       phf_generator@0.11.2
+       phf_shared@0.11.2
+       pin-project-lite@0.2.13
+       pin-utils@0.1.0
+       pinot@0.1.5
+       pkg-config@0.3.29
+       powerfmt@0.2.0
+       ppv-lite86@0.2.17
+       proc-macro-error@1.0.4
+       proc-macro-error-attr@1.0.4
+       proc-macro2@1.0.78
+       project-origins@1.2.0
+       quick-xml@0.28.2
+       quote@1.0.35
+       radix_trie@0.2.1
+       rand@0.8.5
+       rand_chacha@0.3.1
+       rand_core@0.6.4
+       redox_syscall@0.4.1
+       redox_users@0.4.4
+       regex@1.10.3
+       regex-automata@0.4.5
+       regex-syntax@0.8.2
+       reqwest@0.11.24
+       rustc-demangle@0.1.23
+       rustix@0.38.31
+       rustls-pemfile@1.0.4
+       ryu@1.0.16
+       same-file@1.0.6
+       schannel@0.1.23
+       scopeguard@1.2.0
+       security-framework@2.9.2
+       security-framework-sys@2.9.1
+       serde@1.0.196
+       serde_derive@1.0.196
+       serde_json@1.0.113
+       serde_spanned@0.6.5
+       serde_urlencoded@0.7.1
+       sha1@0.10.6
+       sha1_smol@1.0.0
+       sha2@0.10.8
+       signal-hook-registry@1.4.1
+       siphasher@0.3.11
+       slab@0.4.9
+       slug@0.1.5
+       smallvec@1.13.1
+       socket2@0.4.10
+       socket2@0.5.5
+       strsim@0.8.0
+       structopt@0.3.26
+       structopt-derive@0.4.18
+       syn@1.0.109
+       syn@2.0.48
+       sync_wrapper@0.1.2
+       system-configuration@0.5.1
+       system-configuration-sys@0.5.0
+       tempfile@3.9.0
+       tera@1.19.1
+       termcolor@1.4.1
+       terminfo@0.8.0
+       textwrap@0.11.0
+       thiserror@1.0.56
+       thiserror-impl@1.0.56
+       time@0.3.36
+       time-core@0.1.2
+       time-macros@0.2.18
+       tinyvec@1.6.0
+       tinyvec_macros@0.1.1
+       tokio@1.36.0
+       tokio-macros@2.2.0
+       tokio-native-tls@0.3.1
+       tokio-stream@0.1.14
+       tokio-util@0.7.10
+       toml@0.7.8
+       toml_datetime@0.6.5
+       toml_edit@0.19.15
+       tower-service@0.3.2
+       tracing@0.1.40
+       tracing-attributes@0.1.27
+       tracing-core@0.1.32
+       try-lock@0.2.5
+       typenum@1.17.0
+       ucd-trie@0.1.6
+       unic-char-property@0.9.0
+       unic-char-range@0.9.0
+       unic-common@0.9.0
+       unic-segment@0.9.0
+       unic-ucd-segment@0.9.0
+       unic-ucd-version@0.9.0
+       unicode-bidi@0.3.15
+       unicode-bom@2.0.3
+       unicode-ident@1.0.12
+       unicode-normalization@0.1.22
+       unicode-segmentation@1.10.1
+       unicode-width@0.1.11
+       url@2.5.0
+       utf8-width@0.1.7
+       vcpkg@0.2.15
+       vec_map@0.8.2
+       version_check@0.9.4
+       walkdir@2.4.0
+       want@0.3.1
+       wasi@0.11.0+wasi-snapshot-preview1
+       wasm-bindgen@0.2.90
+       wasm-bindgen-backend@0.2.90
+       wasm-bindgen-futures@0.4.40
+       wasm-bindgen-macro@0.2.90
+       wasm-bindgen-macro-support@0.2.90
+       wasm-bindgen-shared@0.2.90
+       watchexec@2.3.2
+       watchexec-events@1.0.0
+       watchexec-filterer-globset@1.2.0
+       watchexec-filterer-ignore@1.2.1
+       watchexec-signals@1.0.0
+       web-sys@0.3.67
+       which@4.4.2
+       winapi@0.3.9
+       winapi-i686-pc-windows-gnu@0.4.0
+       winapi-util@0.1.6
+       winapi-x86_64-pc-windows-gnu@0.4.0
+       windows@0.48.0
+       windows-core@0.52.0
+       windows-sys@0.45.0
+       windows-sys@0.48.0
+       windows-sys@0.52.0
+       windows-targets@0.42.2
+       windows-targets@0.48.5
+       windows-targets@0.52.0
+       windows_aarch64_gnullvm@0.42.2
+       windows_aarch64_gnullvm@0.48.5
+       windows_aarch64_gnullvm@0.52.0
+       windows_aarch64_msvc@0.42.2
+       windows_aarch64_msvc@0.48.5
+       windows_aarch64_msvc@0.52.0
+       windows_i686_gnu@0.42.2
+       windows_i686_gnu@0.48.5
+       windows_i686_gnu@0.52.0
+       windows_i686_msvc@0.42.2
+       windows_i686_msvc@0.48.5
+       windows_i686_msvc@0.52.0
+       windows_x86_64_gnu@0.42.2
+       windows_x86_64_gnu@0.48.5
+       windows_x86_64_gnu@0.52.0
+       windows_x86_64_gnullvm@0.42.2
+       windows_x86_64_gnullvm@0.48.5
+       windows_x86_64_gnullvm@0.52.0
+       windows_x86_64_msvc@0.42.2
+       windows_x86_64_msvc@0.48.5
+       windows_x86_64_msvc@0.52.0
+       winnow@0.5.37
+       winreg@0.50.0
+       xdg@2.5.2
+       zip@0.6.6
+"
+
+inherit cargo
+
+DESCRIPTION="A modernized, complete, embeddable TeX/LaTeX engine."
+HOMEPAGE="https://github.com/tectonic-typesetting/tectonic/";
+SRC_URI="
+       
https://github.com/tectonic-typesetting/tectonic/archive/refs/tags/tectonic@${PV}.tar.gz
 -> ${P}.tar.gz
+       ${CARGO_CRATE_URIS}
+"
+S="${WORKDIR}/${PN}-${P}"
+
+LICENSE="MIT"
+# Dependent crate licenses
+LICENSE+="
+       Apache-2.0 BSD ISC MIT Unicode-DFS-2016 WTFPL-2
+       || ( Artistic-2 CC0-1.0 )
+"
+SLOT="0"
+KEYWORDS="~amd64"
+
+DEPEND="
+       dev-libs/icu:=
+       dev-libs/openssl:=
+       media-gfx/graphite2
+       media-libs/fontconfig
+       media-libs/freetype
+       media-libs/harfbuzz:=
+       media-libs/libpng:=
+       sys-libs/zlib
+"
+RDEPEND="${DEPEND}"
+BDEPEND="media-libs/harfbuzz"
+
+# rust does not use *FLAGS from make.conf, silence portage warning
+# update with proper path to binaries this crate installs, omit leading /
+QA_FLAGS_IGNORED="usr/bin/${PN}"
+
+PATCHES=(
+       "${FILESDIR}/${P}-fix-internal-consistency-problem-bbl.patch"
+       "${FILESDIR}/${P}-fix-xetex_layout-build.patch"
+       "${FILESDIR}/${P}-rust-1.80.patch"
+)
+
+src_configure() {
+       local myfeatures=(
+               external-harfbuzz
+       )
+       cargo_src_configure
+}

Reply via email to