annotate third_party/tectonic/runtime.bzl @ 258:60a876c4587a

[ui] Add semantic primitive ownership Build a layered Zenbu token and sizing system, make authored controls use native-underneath primitives, migrate mrjunejune without imposing visual surfaces, and document/enforce HTML ownership in the catalog and wiki. Co-authored-by: Copilot <[email protected]>
author MrJuneJune <me@mrjunejune.com>
date Wed, 05 Aug 2026 05:25:40 -0700
parents 70f2a3dafc1c
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
247
70f2a3dafc1c [build] Bundle offline Tectonic runtime
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1 def _tectonic_runtime_impl(ctx):
70f2a3dafc1c [build] Bundle offline Tectonic runtime
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2 output = ctx.actions.declare_directory(ctx.label.name)
70f2a3dafc1c [build] Bundle offline Tectonic runtime
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
3 commands = [
70f2a3dafc1c [build] Bundle offline Tectonic runtime
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
4 "set -e",
70f2a3dafc1c [build] Bundle offline Tectonic runtime
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
5 "mkdir -p {}/bin {}/cache {}/sysroot/etc/fonts {}/sysroot/usr/share/fontconfig/conf.avail".format(
70f2a3dafc1c [build] Bundle offline Tectonic runtime
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
6 output.path,
70f2a3dafc1c [build] Bundle offline Tectonic runtime
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
7 output.path,
70f2a3dafc1c [build] Bundle offline Tectonic runtime
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
8 output.path,
70f2a3dafc1c [build] Bundle offline Tectonic runtime
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
9 output.path,
70f2a3dafc1c [build] Bundle offline Tectonic runtime
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
10 ),
70f2a3dafc1c [build] Bundle offline Tectonic runtime
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
11 "cp {} {}/bin/tectonic".format(ctx.file.binary.path, output.path),
70f2a3dafc1c [build] Bundle offline Tectonic runtime
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
12 "cp {} {}/sysroot/etc/fonts/fonts.conf".format(
70f2a3dafc1c [build] Bundle offline Tectonic runtime
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
13 ctx.file.fontconfig.path,
70f2a3dafc1c [build] Bundle offline Tectonic runtime
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
14 output.path,
70f2a3dafc1c [build] Bundle offline Tectonic runtime
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
15 ),
70f2a3dafc1c [build] Bundle offline Tectonic runtime
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
16 "cp {} {}/LICENSE".format(ctx.file.license.path, output.path),
70f2a3dafc1c [build] Bundle offline Tectonic runtime
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
17 "cp {} {}/THIRD_PARTY_NOTICES.md".format(
70f2a3dafc1c [build] Bundle offline Tectonic runtime
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
18 ctx.file.notices.path,
70f2a3dafc1c [build] Bundle offline Tectonic runtime
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
19 output.path,
70f2a3dafc1c [build] Bundle offline Tectonic runtime
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
20 ),
70f2a3dafc1c [build] Bundle offline Tectonic runtime
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
21 "tar -xzf {} -C {}/cache".format(
70f2a3dafc1c [build] Bundle offline Tectonic runtime
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
22 ctx.file.cache_archive.path,
70f2a3dafc1c [build] Bundle offline Tectonic runtime
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
23 output.path,
70f2a3dafc1c [build] Bundle offline Tectonic runtime
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
24 ),
70f2a3dafc1c [build] Bundle offline Tectonic runtime
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
25 "chmod 0555 {}/bin/tectonic".format(output.path),
70f2a3dafc1c [build] Bundle offline Tectonic runtime
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
26 "chmod 0444 {}/sysroot/etc/fonts/fonts.conf".format(output.path),
70f2a3dafc1c [build] Bundle offline Tectonic runtime
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
27 "chmod 0444 {}/LICENSE {}/THIRD_PARTY_NOTICES.md".format(
70f2a3dafc1c [build] Bundle offline Tectonic runtime
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
28 output.path,
70f2a3dafc1c [build] Bundle offline Tectonic runtime
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
29 output.path,
70f2a3dafc1c [build] Bundle offline Tectonic runtime
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
30 ),
70f2a3dafc1c [build] Bundle offline Tectonic runtime
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
31 ]
70f2a3dafc1c [build] Bundle offline Tectonic runtime
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
32 commands.append("chmod -R a-w {}/cache".format(output.path))
70f2a3dafc1c [build] Bundle offline Tectonic runtime
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
33
70f2a3dafc1c [build] Bundle offline Tectonic runtime
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
34 ctx.actions.run_shell(
70f2a3dafc1c [build] Bundle offline Tectonic runtime
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
35 inputs = [
70f2a3dafc1c [build] Bundle offline Tectonic runtime
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
36 ctx.file.binary,
70f2a3dafc1c [build] Bundle offline Tectonic runtime
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
37 ctx.file.cache_archive,
70f2a3dafc1c [build] Bundle offline Tectonic runtime
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
38 ctx.file.fontconfig,
70f2a3dafc1c [build] Bundle offline Tectonic runtime
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
39 ctx.file.license,
70f2a3dafc1c [build] Bundle offline Tectonic runtime
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
40 ctx.file.notices,
70f2a3dafc1c [build] Bundle offline Tectonic runtime
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
41 ],
70f2a3dafc1c [build] Bundle offline Tectonic runtime
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
42 outputs = [output],
70f2a3dafc1c [build] Bundle offline Tectonic runtime
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
43 command = "\n".join(commands),
70f2a3dafc1c [build] Bundle offline Tectonic runtime
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
44 progress_message = "Assembling offline Tectonic runtime",
70f2a3dafc1c [build] Bundle offline Tectonic runtime
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
45 )
70f2a3dafc1c [build] Bundle offline Tectonic runtime
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
46 return [
70f2a3dafc1c [build] Bundle offline Tectonic runtime
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
47 DefaultInfo(
70f2a3dafc1c [build] Bundle offline Tectonic runtime
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
48 files = depset([output]),
70f2a3dafc1c [build] Bundle offline Tectonic runtime
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
49 runfiles = ctx.runfiles(files = [output]),
70f2a3dafc1c [build] Bundle offline Tectonic runtime
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
50 ),
70f2a3dafc1c [build] Bundle offline Tectonic runtime
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
51 ]
70f2a3dafc1c [build] Bundle offline Tectonic runtime
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
52
70f2a3dafc1c [build] Bundle offline Tectonic runtime
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
53 tectonic_runtime = rule(
70f2a3dafc1c [build] Bundle offline Tectonic runtime
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
54 implementation = _tectonic_runtime_impl,
70f2a3dafc1c [build] Bundle offline Tectonic runtime
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
55 attrs = {
70f2a3dafc1c [build] Bundle offline Tectonic runtime
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
56 "binary": attr.label(allow_single_file = True, mandatory = True),
70f2a3dafc1c [build] Bundle offline Tectonic runtime
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
57 "cache_archive": attr.label(allow_single_file = True, mandatory = True),
70f2a3dafc1c [build] Bundle offline Tectonic runtime
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
58 "fontconfig": attr.label(allow_single_file = True, mandatory = True),
70f2a3dafc1c [build] Bundle offline Tectonic runtime
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
59 "license": attr.label(allow_single_file = True, mandatory = True),
70f2a3dafc1c [build] Bundle offline Tectonic runtime
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
60 "notices": attr.label(allow_single_file = True, mandatory = True),
70f2a3dafc1c [build] Bundle offline Tectonic runtime
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
61 },
70f2a3dafc1c [build] Bundle offline Tectonic runtime
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
62 )