Skip to content

Commit b580bc3

Browse files
author
cranko
committed
Release request commit created with Cranko.
+++ cranko-rc-info-v1 [[projects]] qnames = ["tectonic_pdf_io", "cargo"] bump_spec = "minor bump" [[projects]] qnames = ["tectonic_engine_xdvipdfmx", "cargo"] bump_spec = "minor bump" [[projects]] qnames = ["tectonic_engine_spx2html", "cargo"] bump_spec = "micro bump" [[projects]] qnames = ["tectonic", "cargo"] bump_spec = "minor bump" +++
2 parents cc4051e + 204f033 commit b580bc3

19 files changed

Lines changed: 489 additions & 276 deletions

File tree

CHANGELOG.md

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,42 @@
11
# rc: minor bump
22

3+
This release has only a few code updates:
4+
5+
- Partial support for the `dvipdfmx:config` special has been added (#953,
6+
@vlasakm). This should fix some aspects of PDF generation, including named
7+
anchors created by `hyperref`. Other fixes might help with the `attachfile`
8+
package, although that is awaiting further confirmation.
9+
- A dumb crash was fixed when attempting to create HTML output with an input
10+
that has not been set up for the Tectonic HTML compilation framework (#955,
11+
@pkgw). Note, however, that generic documents will still fail to build in HTML
12+
mode. The program just won't crash now. As of this release, the *only* example
13+
of working HTML output from Tectonic is the [tt-weave] system (see below).
14+
15+
More noteworthy are several non-code improvements!
16+
17+
- A preliminary official build for the Apple Metal platform
18+
(`aarch64-apple-darwin`) is now available (#959, @pkgw). Due to lack of
19+
support in the continuous integration system we can't test the build
20+
thoroughly, but it appears to work.
21+
- @KaranAhlawat contributed a [how-to guide for using Tectonic in Emacs AucTeX][auctex].
22+
- @mnrvwl has done a fantastic job reviewing our GitHub issues, gathering more
23+
information when needed, and closing out ones that have been solved.
24+
- @pkgw has published *[XeTeX: A Pseudoprogram][xap]*, a digital book that
25+
derives from Knuth's *[TeX: The Program][ttp]*. This book is generated from
26+
the reference XeTeX code underlaying Tectonic’s typesetting using a new
27+
processor called [tt-weave]. See [the book’s preface][xap] for more
28+
information.
29+
30+
Thank you to all of our contributors!
31+
32+
[auctex]: https://tectonic-typesetting.github.io/book/latest/howto/auctex-setup/
33+
[tt-weave]: https://github.com/tectonic-typesetting/tt-weave/
34+
[xap]: https://stacks.fullyjustified.net/xap/2022.0/
35+
[ttp]: https://www.worldcat.org/title/876762639
36+
37+
38+
# tectonic 0.11.0 (2022-10-04)
39+
340
- Many updates to the experimental, unstable `spx2html` engine for creating HTML
441
output (#941, @pkgw). They will not be documented here because there are a lot
542
and the aforementioned experimental-ness and instability. This work is in

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,7 @@ tokio = "0.1.22"
120120

121121
[package.metadata.vcpkg]
122122
git = "https://github.com/microsoft/vcpkg"
123-
rev = "01b29f6d8212bc845da64773b18665d682f5ab66"
123+
rev = "1be5a98d090b1d2beeb63a48ba800fbf006e8aca"
124124

125125
[package.metadata.vcpkg.target]
126126
x86_64-apple-darwin = { install = ["freetype","harfbuzz[icu,graphite2]"] }
Lines changed: 6 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -1,62 +1,8 @@
1-
# rc: micro bump
1+
# See elsewhere for changelog
22

3-
- On macOS, build with the preprocessor directive
4-
`__ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES=0`, which should
5-
hopefully fix compile failures with old SDKs (#944, @pkgw).
3+
This project’s release notes are curated from the Git history of its main
4+
branch. You can find them by looking at [the version of this file on the
5+
`release` branch][branch] or the [GitHub release history][gh-releases].
66

7-
8-
# tectonic_bridge_harfbuzz 0.2.6 (2022-10-03)
9-
10-
- Update the vendored harfbuzz to 5.2.0.
11-
12-
13-
# tectonic_bridge_harfbuzz 0.2.5 (2022-04-26)
14-
15-
- Update the vendored harfbuzz to 4.1.0.
16-
17-
18-
# tectonic_bridge_harfbuzz 0.2.4 (2022-02-28)
19-
20-
- Update the vendored Harfbuzz to 3.0.0.
21-
22-
23-
# tectonic_bridge_harfbuzz 0.2.3 (2021-10-11)
24-
25-
- Update the vendored Harfbuzz source to
26-
- Fixes for Clippy 1.53.0
27-
28-
29-
# tectonic_bridge_harfbuzz 0.2.2 (2021-06-07)
30-
31-
- Still no code changes
32-
- 0.2.1 didn't publish to Crates.io because our package file was too big for it;
33-
we've eliminated some of the Harfbuzz support files that should fix this
34-
([#781], [@pkgw])
35-
36-
[#781]: https://github.com/tectonic-typesetting/tectonic/pull/781
37-
[@pkgw]: https://github.com/pkgw
38-
39-
40-
# tectonic_bridge_harfbuzz 0.2.1 (2021-06-07)
41-
42-
- No code changes
43-
- The 0.2.0 package didn't actually contain the vendored Harfbuzz source files,
44-
breaking `cargo` builds. We’ve modified the CI scripts to attempt to fix this
45-
([#777], [@pkgw])
46-
47-
[#777]: https://github.com/tectonic-typesetting/tectonic/pull/777
48-
[@pkgw]: https://github.com/pkgw
49-
50-
51-
# tectonic_bridge_harfbuzz 0.2.0 (2021-06-03)
52-
53-
- Update the vendored Harfbuzz to 2.8.1.
54-
- Fix up handling of how C/C++ header file paths are exported to dependent
55-
crates. This is a breaking change: we've moved from a single include directory
56-
to a list of them.
57-
58-
59-
# tectonic_bridge_harfbuzz 0.1.0 (2021-01-15)
60-
61-
Initial release of Harfbuzz "bridge" crate for Tectonic. Includes the ability to
62-
vendor Harfbuzz.
7+
[branch]: https://github.com/tectonic-typesetting/tectonic/blob/release/crates/bridge_harfbuzz/CHANGELOG.md
8+
[gh-releases]: https://github.com/tectonic-typesetting/tectonic/releases

crates/engine_spx2html/CHANGELOG.md

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,11 @@
1-
# rc: minor bump
1+
# rc: micro bump
2+
3+
- Avoid a dumb crash when attempting to compile documents that have not been
4+
set up for the Tectonic HTML compilation framework (#955, @pkgw). Note,
5+
however, that generic documents will still fail to build in HTML mode.
6+
7+
8+
# tectonic_engine_spx2html 0.2.0 (2022-10-04)
29

310
- Many updates for [tt-weave] (#941, @pkgw). This crate is still highly unstable
411
so we're not going to document them.

crates/engine_spx2html/src/lib.rs

Lines changed: 26 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1657,16 +1657,27 @@ impl EmittingState {
16571657
)
16581658
};
16591659

1660-
let cur_fam = self.font_families.get(&cur_ffid).unwrap();
1660+
let (path, desired_af) = if let Some(cur_fam) = self.font_families.get(&cur_ffid) {
1661+
// Already set up for the right font? If so, great!
1662+
if cur_fam.relative_id_to_font_num(cur_af) == fnum {
1663+
return;
1664+
}
16611665

1662-
// Already set up for the right font? If so, great!
1663-
if cur_fam.relative_id_to_font_num(cur_af) == fnum {
1664-
return;
1665-
}
1666+
// No. Figure out what we need to do.
1667+
let desired_af = cur_fam.font_num_to_relative_id(fnum);
1668+
(cur_fam.path_to_new_font(cur_af, desired_af), desired_af)
1669+
} else {
1670+
// We don't seem to be in a defined "family". So we have to
1671+
// select it explicitly.
1672+
let path = PathToNewFont {
1673+
close_all: true,
1674+
select_explicitly: true,
1675+
..Default::default()
1676+
};
16661677

1667-
// No. Figure out what we need to do.
1668-
let desired_af = cur_fam.font_num_to_relative_id(fnum);
1669-
let path = cur_fam.path_to_new_font(cur_af, desired_af);
1678+
let desired_af = FamilyRelativeFontId::Other(fnum);
1679+
(path, desired_af)
1680+
};
16701681

16711682
if path.close_one_and_retry {
16721683
if cur_is_autofont {
@@ -1969,7 +1980,13 @@ impl EmittingState {
19691980
}
19701981

19711982
// Read in the template. Let's not cache it, in case someone wants to do
1972-
// something fancy with rewriting it.
1983+
// something fancy with rewriting it. If that setting is empty, probably
1984+
// the user is compiling the document in HTML mode without all of the
1985+
// TeX infrastructure that Tectonic needs to make it work.
1986+
1987+
if self.next_template_path.is_empty() {
1988+
bail!("need to emit HTML content but no template has been specified; is your document HTML-compatible?");
1989+
}
19731990

19741991
let mut ih = atry!(
19751992
common.hooks.io().input_open_name(&self.next_template_path, common.status).must_exist();
Lines changed: 69 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,71 @@
1-
# See elsewhere for changelog
1+
# rc: minor bump
22

3-
This project’s release notes are curated from the Git history of its main
4-
branch. You can find them by looking at [the version of this file on the
5-
`release` branch][branch] or the [GitHub release history][gh-releases].
3+
- Use new support in the `pdf_io` backend to handle the `dvipdfmx:config`
4+
special (#904, #953, @vlasakm). This should fix some aspects of PDF generation,
5+
including named anchors created by `hyperref`.
66

7-
[branch]: https://github.com/tectonic-typesetting/tectonic/blob/release/crates/engine_xdvipdfmx/CHANGELOG.md
8-
[gh-releases]: https://github.com/tectonic-typesetting/tectonic/releases
7+
8+
# tectonic_engine_xdvipdfmx 0.3.0 (2022-10-03)
9+
10+
- Synchronize with TeXLive 2022.0 (#936, @pkgw). There are no changes in this
11+
crate related to the update, but some in `tectonic_pdf_io`.
12+
- Remove C's `time_t` from internal FFI APIs to avoid portability issues. This
13+
should avoid issues with Linux Musl builds.
14+
15+
16+
# tectonic_engine_xdvipdfmx 0.2.0 (2022-04-26)
17+
18+
Update xdvipdfmx for TeXLive 2021 (#882, @pkgw). A brief summary of changes
19+
based on the TeXLive 2021 release notes:
20+
21+
- Not applicable to Tectonic: GhostScript safety improvements.
22+
- If an image file is not found, exit with bad status.
23+
- Extended special syntax for color support.
24+
- Specials for manipulating ExtGState.
25+
- Compatibility specials `pdfcolorstack` and `pdffontattr`.
26+
- Experimental support for dviluatex’s extended `fnt_def`.
27+
- Support new feature of virtual font to fallback Japanese font definition.
28+
29+
There are other internal changes; see [the low-level ChangeLog][xdvcl]. Note
30+
that most of these changes are actually found in the `tectonic_pdf_io` crate,
31+
which contains most of the actual exported xdvipdfmx code.
32+
33+
[xdvcl]: https://github.com/TeX-Live/texlive-source/blob/404d2e476949c1e225e6b94ff92e3a113ab6b413/texk/dvipdfm-x/ChangeLog#L107-L557
34+
35+
36+
# tectonic_engine_xdvipdfmx 0.1.3 (2021-06-19)
37+
38+
- Fix a `build.rs` typo causing nonstop rebuilds
39+
- Fixes for Clippy 1.53.0
40+
41+
42+
# tectonic_engine_xdvipdfmx 0.1.2 (2021-06-17)
43+
44+
- Switch from running [cbindgen] at build time to having the developer run it
45+
manually. This really ought to fix the crate builds on docs.rs ([#788]), and
46+
should speed builds too.
47+
48+
[cbindgen]: https://github.com/eqrion/cbindgen
49+
[#788]: https://github.com/tectonic-typesetting/tectonic/issues/788
50+
51+
52+
# tectonic_engine_xdvipdfmx 0.1.1 (2021-06-17)
53+
54+
- Attempt to fix crate builds on docs.rs — see [#788]. This works around an
55+
issue in Tectonic’s usage of [cbindgen] by configuring Cargo to operate in
56+
offline mode when building on docs.rs, which builds crates with network access
57+
turned off.
58+
59+
[#788]: https://github.com/tectonic-typesetting/tectonic/issues/788
60+
[cbindgen]: https://github.com/eqrion/cbindgen
61+
62+
63+
# tectonic_engine_xdvipdfmx 0.1.0 (2021-06-03)
64+
65+
This crate introduces the `xdvipdfmx` engine as a standalone crate, building on
66+
the new "core bridge" functionality. The API is iterated somewhat from the one
67+
that was previously provided in the main `tectonic` crate.
68+
69+
Note that the vast majority of the `xdvipdfmx` C/C++ code is found in the new
70+
`tectonic_pdf_io` crate, because both this crate and the XeTeX engine need to
71+
share library routines to do I/O on PDF files.

crates/engine_xdvipdfmx/Cargo.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Copyright 2021 the Tectonic Project
1+
# Copyright 2021-2022 the Tectonic Project
22
# Licensed under the MIT License.
33

44
# See README.md for discussion of features (or lack thereof) in this crate.
@@ -30,4 +30,4 @@ cc = "^1.0.66"
3030
[package.metadata.internal_dep_versions]
3131
tectonic_bridge_core = "thiscommit:2021-01-17:fohCh1sh"
3232
tectonic_errors = "5c9ba661edf5ef669f24f9904f99cca369d999e7"
33-
tectonic_pdf_io = "thiscommit:2022-03-29:6nizWic"
33+
tectonic_pdf_io = "thiscommit:2022-10-21:pkYKcMI"

crates/engine_xdvipdfmx/xdvipdfmx/dvipdfmx.c

Lines changed: 21 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -66,19 +66,14 @@ typedef struct page_range
6666
int last;
6767
} PageRange;
6868

69+
/* Compatibility options */
6970
#define OPT_TPIC_TRANSPARENT_FILL (1 << 1)
7071
#define OPT_CIDFONT_FIXEDPITCH (1 << 2)
7172
#define OPT_FONTMAP_FIRST_MATCH (1 << 3)
7273
#define OPT_PDFDOC_NO_DEST_REMOVE (1 << 4)
7374
#define OPT_PDFOBJ_NO_PREDICTOR (1 << 5)
7475
#define OPT_PDFOBJ_NO_OBJSTM (1 << 6)
7576

76-
static int pdf_version_major = 1;
77-
static int pdf_version_minor = 5;
78-
static int compression_level = 9;
79-
80-
static double annot_grow_x = 0.0;
81-
static double annot_grow_y = 0.0;
8277
static char ignore_colors = 0;
8378
static int bookmark_open = 0;
8479
static double mag = 1.0;
@@ -248,10 +243,18 @@ do_dvi_pages (void)
248243
xo = x_offset; yo = y_offset;
249244
dvi_scan_specials(page_no,
250245
&w, &h, &xo, &yo, &lm,
246+
/* No PDF version */
247+
NULL, NULL,
248+
/* No compression */
249+
NULL,
250+
/* No annotation grow */
251+
NULL, NULL,
251252
/* No need for encryption options */
252-
NULL, NULL, NULL, NULL, NULL, NULL, NULL,
253+
NULL, NULL, NULL, NULL, NULL,
253254
/* No trailer IDs */
254-
NULL, NULL, NULL);
255+
NULL, NULL, NULL,
256+
/* No opt_flags */
257+
NULL);
255258
if (lm != landscape_mode) { /* already swapped for the first page */
256259
SWAP(w, h);
257260
landscape_mode = lm;
@@ -336,6 +339,11 @@ dvipdfmx_main (
336339
int has_id = 0;
337340
unsigned char id1[16], id2[16];
338341
struct pdf_setting settings;
342+
int pdf_version_major = 1;
343+
int pdf_version_minor = 5;
344+
int compression_level = 9;
345+
double annot_grow_x = 0;
346+
double annot_grow_y = 0;
339347

340348
assert(pdf_filename);
341349
assert(dvi_filename);
@@ -369,8 +377,7 @@ dvipdfmx_main (
369377
* code bits. */
370378

371379
select_paper(paperspec);
372-
annot_grow_x = 0;
373-
annot_grow_y = 0;
380+
374381
bookmark_open = 0;
375382
key_bits = 40;
376383
permission = 0x003C;
@@ -397,8 +404,10 @@ dvipdfmx_main (
397404
&paper_width, &paper_height,
398405
&x_offset, &y_offset, &landscape_mode,
399406
&pdf_version_major, &pdf_version_minor,
407+
&compression_level,
408+
&annot_grow_x, &annot_grow_y,
400409
&do_encryption, &key_bits, &permission, oplain, uplain,
401-
&has_id, id1, id2);
410+
&has_id, id1, id2, &opt_flags);
402411
}
403412

404413
/*kpse_init_prog("", font_dpi, NULL, NULL);
@@ -518,4 +527,4 @@ tt_engine_xdvipdfmx_main(
518527

519528
ttbc_global_engine_exit();
520529
return rv;
521-
}
530+
}

0 commit comments

Comments
 (0)