Open alerque opened 4 years ago
My name is Jonny Heggheim [1], I'm a Fedora package maintainer and I would love to have SILE included in our official RPM repository.
I am new to Lua and its eco-system and how to package it for Fedora. I have started with one of the missing dependencies [2].
[1] https://src.fedoraproject.org/user/jonny [2] https://bugzilla.redhat.com/show_bug.cgi?id=2142399
Dependency lua-cldr is also added for package review https://bugzilla.redhat.com/show_bug.cgi?id=2142653
This is great! Let me know if you need anything from me. It's been a long time since I worked with RPM packaging (and it was PLD Linux long before Fedora existed) but if you get stuck let me know. You might also be able to take some hints from the recently added OpenSUSE packaging since it is RPM based on they have all the Lua dependencies built now. The distro specific packaging macros are bound to be different but you can probably still take some clues from them.
Thanks, I have looked at the OpenSUSE packaging, they are using luarocks RPM macros that is not included in Fedora. So my packages are mostly dropping files into /usr/share/lua/5.4/
I have made and added the following depenecies for package review:
I have started on lua-linenoise, but I am not sure how to package it, since Fedora does not want bundled libraries and it is built against a forked version of linenoise.
I think you'll need somebody with Fedora expertise to answer that one. As a general rule Arch Linux doesn't like bundling libraries either and when possible we don't — but Arch also takes a pragmatism-above-principles approach and when there isn't another way to get the job done we do what works. That means there are some bundled libraries in packages.
In the case of forked libraries and where the fork is (as in the case of Lua linenoise) the long stading defacto library to use for the ecosystem I think there should be a way to do it.
I started building the dependencies at COPR while I am waiting for peer review approval https://copr.fedorainfracloud.org/coprs/jonny/SILE/packages/
You can use COPR for CI if you have a static build/check, then you get a large coverage of RPM distros/arches.
I've only ever heard of COPR as a repository of user contributed packages, not as a CI tool. But I'm happy to consider adding CI runners to our toolking that trigger test builds on other platform. We already do this with Nix confirming that the Nix Flake builds and runs for everything that hits the master branch. If there is some way we can do that with other distros without adding the packaging itself to our repo then that might be a useful signal helping us not to break things for downstream folks.
You do not need to distribute artifacts if they are not working. I would start by getting it to compile (and running tests), once you get a hang of it, then you can start by building RPMS for different distros.
Copr is a build system available for everybody. You provide the src.rpm and Copr provides a yum repository. Copr can be used for upstream builds, for continuous integration, or to provide a yum repository for users of your project,
https://docs.pagure.org/copr.copr/user_documentation.html#faq
Here is a complete build that is using rpkg templates where they built an RPM for each commit: https://github.com/francescmm/GitQlient/blob/2976ce31b1cc0bad65db97b788da48c0415b96b9/contrib/rpm/gitqlient.spec
You can also use Makefiles: https://github.com/hegjon/storj-rpm/blob/master/.copr/Makefile
Let me know if you need anything from me.
It would be great to know if the dependency luautf8
is needed when using Lua 5.4.4 or later
As of current versions, yes. We're assuming it's API including the bits above and beyond what Lua proper introduced. In practice most of what we use could probably be refactored to be 5.4 compatible and only need that rock as a shim for older versions, but that has not been done yet and it would come with some downsides for downstream class and package authors that would need to be aware of the differences instead of just being guarantied a consistent API.
All of the missing dependencies have been built and I am running into my first SILE issue :)
Do you see a configuration issue?
sile/documentation on master took 39s
❯ sile --traceback c01-whatis.sil
SILE v0.14.3 (Lua 5.4)
<c01-whatis.sil> as sil
! Unknown command chapter at:
c01-whatis.sil:2:1: in \chapter
c01-whatis.sil:1:1: in \document
c01-whatis.sil: in <snippet>:
[[\begin{document}\chapter{What is SILE?}% Our chapters open on double page spreads. We want% chapt]]
stack traceback:
[C]: in function 'error'
/usr/local/share/sile/core/utilities.lua:39: in function 'core.utilities.error'
/usr/local/share/sile/core/sile.lua:232: in function 'core.sile.process'
/usr/local/share/sile/classes/base.lua:306: in field '?'
/usr/local/share/sile/core/sile.lua:363: in function 'core.sile.call'
/usr/local/share/sile/core/sile.lua:224: in function 'core.sile.process'
(...tail calls...)
/usr/local/share/sile/core/sile.lua:288: in function 'core.sile.processString'
/usr/local/share/sile/core/sile.lua:319: in function 'core.sile.processFile'
(...tail calls...)
[C]: in function 'xpcall'
/usr/local/bin/sile:115: in main chunk
[C]: in ?
error summary:
Processing at: c01-whatis.sil:2:1: in \chapter
Using code at: /usr/local/share/sile/core/sile.lua:232: Unknown command chapter
Files in sile package:
❯ rpm -qlv sile
-rwxr-xr-x 1 root root 3538 Nov 16 22:45 /usr/bin/sile
drwxr-xr-x 2 root root 0 Nov 16 22:45 /usr/lib/.build-id
drwxr-xr-x 2 root root 0 Nov 16 22:45 /usr/lib/.build-id/3a
lrwxrwxrwx 1 root root 33 Nov 16 22:45 /usr/lib/.build-id/3a/15d22b20fd207fa738d5c9f57ec2054ba7f8ee -> ../../../../usr/lib64/sile/svg.so
drwxr-xr-x 2 root root 0 Nov 16 22:45 /usr/lib/.build-id/3f
lrwxrwxrwx 1 root root 43 Nov 16 22:45 /usr/lib/.build-id/3f/a8bc2e589e1a039fcf55afb41208d5df923d5f -> ../../../../usr/lib64/sile/justenoughicu.so
drwxr-xr-x 2 root root 0 Nov 16 22:45 /usr/lib/.build-id/5e
lrwxrwxrwx 1 root root 50 Nov 16 22:45 /usr/lib/.build-id/5e/db6e0d05b7b79e4ab0a7b0f1196c1a351a6dcd -> ../../../../usr/lib64/sile/justenoughfontconfig.so
drwxr-xr-x 2 root root 0 Nov 16 22:45 /usr/lib/.build-id/9a
lrwxrwxrwx 1 root root 48 Nov 16 22:45 /usr/lib/.build-id/9a/3dcf138026a34b80885afc8900bfe38697df6c -> ../../../../usr/lib64/sile/justenoughharfbuzz.so
drwxr-xr-x 2 root root 0 Nov 16 22:45 /usr/lib/.build-id/b0
lrwxrwxrwx 1 root root 41 Nov 16 22:45 /usr/lib/.build-id/b0/78bb40023d10ed5d10140cb65f0cf2e359b2dc -> ../../../../usr/lib64/sile/fontmetrics.so
drwxr-xr-x 2 root root 0 Nov 16 22:45 /usr/lib/.build-id/d4
lrwxrwxrwx 1 root root 49 Nov 16 22:45 /usr/lib/.build-id/d4/e2737caa5d17c00f21bdc37302b651cfac0c4b -> ../../../../usr/lib64/sile/justenoughlibtexpdf.so
drwxr-xr-x 2 root root 0 Nov 16 22:45 /usr/lib64/sile
-rwxr-xr-x 1 root root 15912 Nov 16 22:45 /usr/lib64/sile/fontmetrics.so
-rwxr-xr-x 1 root root 15920 Nov 16 22:45 /usr/lib64/sile/justenoughfontconfig.so
-rwxr-xr-x 1 root root 24160 Nov 16 22:45 /usr/lib64/sile/justenoughharfbuzz.so
-rwxr-xr-x 1 root root 24144 Nov 16 22:45 /usr/lib64/sile/justenoughicu.so
-rwxr-xr-x 1 root root 36952 Nov 16 22:45 /usr/lib64/sile/justenoughlibtexpdf.so
-rwxr-xr-x 1 root root 57616 Nov 16 22:45 /usr/lib64/sile/svg.so
drwxr-xr-x 2 root root 0 Nov 16 22:45 /usr/share/doc/sile
-rw-r--r-- 1 root root 102857 Nov 5 06:56 /usr/share/doc/sile/CHANGELOG.md
-rw-r--r-- 1 root root 15390 Nov 5 06:56 /usr/share/doc/sile/README.md
drwxr-xr-x 2 root root 0 Nov 16 22:45 /usr/share/licenses/sile
-rw-r--r-- 1 root root 1102 Nov 5 06:56 /usr/share/licenses/sile/LICENSE
-rw-r--r-- 1 root root 1838 Nov 16 22:45 /usr/share/man/man1/sile.1.gz
drwxr-xr-x 2 root root 0 Nov 16 22:45 /usr/share/sile
drwxr-xr-x 2 root root 0 Nov 16 22:45 /usr/share/sile/classes
-rw-r--r-- 1 root root 20610 Nov 5 06:56 /usr/share/sile/classes/base.lua
-rw-r--r-- 1 root root 8687 Nov 5 06:56 /usr/share/sile/classes/bible.lua
-rw-r--r-- 1 root root 8199 Nov 5 06:56 /usr/share/sile/classes/book.lua
-rw-r--r-- 1 root root 768 Nov 5 06:56 /usr/share/sile/classes/diglot.lua
-rw-r--r-- 1 root root 12876 Nov 5 06:56 /usr/share/sile/classes/docbook.lua
-rw-r--r-- 1 root root 409 Nov 5 06:56 /usr/share/sile/classes/jbook.lua
-rw-r--r-- 1 root root 401 Nov 5 06:56 /usr/share/sile/classes/jplain.lua
-rw-r--r-- 1 root root 2103 Nov 5 06:56 /usr/share/sile/classes/letter.lua
-rw-r--r-- 1 root root 1749 Nov 5 06:56 /usr/share/sile/classes/markdown.lua
-rw-r--r-- 1 root root 2013 Nov 5 06:56 /usr/share/sile/classes/pecha.lua
-rw-r--r-- 1 root root 11518 Nov 5 06:56 /usr/share/sile/classes/plain.lua
-rw-r--r-- 1 root root 905 Nov 5 06:56 /usr/share/sile/classes/tbook.lua
-rw-r--r-- 1 root root 1389 Nov 5 06:56 /usr/share/sile/classes/tplain.lua
-rw-r--r-- 1 root root 1023 Nov 5 06:56 /usr/share/sile/classes/triglot.lua
drwxr-xr-x 2 root root 0 Nov 16 22:45 /usr/share/sile/core
-rw-r--r-- 1 root root 26131 Nov 5 06:56 /usr/share/sile/core/break.lua
-rw-r--r-- 1 root root 5391 Nov 5 06:56 /usr/share/sile/core/cli.lua
-rw-r--r-- 1 root root 6646 Nov 5 06:56 /usr/share/sile/core/color.lua
-rw-r--r-- 1 root root 2659 Nov 5 06:56 /usr/share/sile/core/deprecations.lua
-rw-r--r-- 1 root root 6171 Nov 5 06:56 /usr/share/sile/core/font.lua
-rw-r--r-- 1 root root 475 Nov 5 06:56 /usr/share/sile/core/fontmanager.lua
-rw-r--r-- 1 root root 9489 Nov 5 06:56 /usr/share/sile/core/frame.lua
-rw-r--r-- 1 root root 1481 Nov 5 06:56 /usr/share/sile/core/frameparser.lua
-rw-r--r-- 1 root root 5845 Nov 5 06:56 /usr/share/sile/core/hyphenator-liang.lua
-rw-r--r-- 1 root root 3305 Nov 5 06:56 /usr/share/sile/core/languages.lua
-rw-r--r-- 1 root root 5280 Nov 5 06:56 /usr/share/sile/core/length.lua
-rw-r--r-- 1 root root 1394 Nov 5 06:56 /usr/share/sile/core/makedeps.lua
-rw-r--r-- 1 root root 5735 Nov 5 06:56 /usr/share/sile/core/measurement.lua
-rw-r--r-- 1 root root 19430 Nov 5 06:56 /usr/share/sile/core/nodefactory.lua
-rw-r--r-- 1 root root 23993 Nov 5 06:56 /usr/share/sile/core/opentype-parser.lua
-rw-r--r-- 1 root root 6906 Nov 5 06:56 /usr/share/sile/core/packagemanager.lua
-rw-r--r-- 1 root root 4946 Nov 5 06:56 /usr/share/sile/core/pagebuilder.lua
-rw-r--r-- 1 root root 2779 Nov 5 06:56 /usr/share/sile/core/papersize.lua
-rw-r--r-- 1 root root 2877 Nov 5 06:56 /usr/share/sile/core/parserbits.lua
-rw-r--r-- 1 root root 983 Nov 5 06:56 /usr/share/sile/core/repl.lua
-rw-r--r-- 1 root root 5041 Nov 5 06:56 /usr/share/sile/core/settings.lua
-rw-r--r-- 1 root root 14791 Nov 5 06:56 /usr/share/sile/core/sile.lua
-rw-r--r-- 1 root root 7671 Nov 5 06:56 /usr/share/sile/core/tracestack.lua
-rw-r--r-- 1 root root 109 Nov 5 06:56 /usr/share/sile/core/typesetter.lua
-rw-r--r-- 1 root root 5537 Nov 5 06:56 /usr/share/sile/core/units.lua
-rw-r--r-- 1 root root 18185 Nov 5 06:56 /usr/share/sile/core/utilities.lua
-rw-r--r-- 1 root root 17 Nov 16 22:45 /usr/share/sile/core/version.lua
drwxr-xr-x 2 root root 0 Nov 16 22:45 /usr/share/sile/i18n
-rw-r--r-- 1 root root 81 Nov 5 06:56 /usr/share/sile/i18n/af.ftl
-rw-r--r-- 1 root root 78 Nov 5 06:56 /usr/share/sile/i18n/am.ftl
-rw-r--r-- 1 root root 84 Nov 5 06:56 /usr/share/sile/i18n/ar.ftl
-rw-r--r-- 1 root root 87 Nov 5 06:56 /usr/share/sile/i18n/as.ftl
-rw-r--r-- 1 root root 90 Nov 5 06:56 /usr/share/sile/i18n/bg.ftl
-rw-r--r-- 1 root root 102 Nov 5 06:56 /usr/share/sile/i18n/bn.ftl
-rw-r--r-- 1 root root 96 Nov 5 06:56 /usr/share/sile/i18n/bo.ftl
-rw-r--r-- 1 root root 74 Nov 5 06:56 /usr/share/sile/i18n/ca.ftl
-rw-r--r-- 1 root root 73 Nov 5 06:56 /usr/share/sile/i18n/cs.ftl
-rw-r--r-- 1 root root 73 Nov 5 06:56 /usr/share/sile/i18n/cy.ftl
-rw-r--r-- 1 root root 74 Nov 5 06:56 /usr/share/sile/i18n/da.ftl
-rw-r--r-- 1 root root 85 Nov 5 06:56 /usr/share/sile/i18n/de.ftl
-rw-r--r-- 1 root root 98 Nov 5 06:56 /usr/share/sile/i18n/el-monoton.ftl
-rw-r--r-- 1 root root 98 Nov 5 06:56 /usr/share/sile/i18n/el-polyton.ftl
-rw-r--r-- 1 root root 98 Nov 5 06:56 /usr/share/sile/i18n/el.ftl
-rw-r--r-- 1 root root 381 Nov 5 06:56 /usr/share/sile/i18n/en.ftl
-rw-r--r-- 1 root root 351 Nov 5 06:56 /usr/share/sile/i18n/eo.ftl
-rw-r--r-- 1 root root 76 Nov 5 06:56 /usr/share/sile/i18n/es.ftl
-rw-r--r-- 1 root root 76 Nov 5 06:56 /usr/share/sile/i18n/et.ftl
-rw-r--r-- 1 root root 85 Nov 5 06:56 /usr/share/sile/i18n/eu.ftl
-rw-r--r-- 1 root root 73 Nov 5 06:56 /usr/share/sile/i18n/fi.ftl
-rw-r--r-- 1 root root 270 Nov 5 06:56 /usr/share/sile/i18n/fr.ftl
-rw-r--r-- 1 root root 81 Nov 5 06:56 /usr/share/sile/i18n/ga.ftl
-rw-r--r-- 1 root root 0 Nov 5 06:56 /usr/share/sile/i18n/gu.ftl
-rw-r--r-- 1 root root 99 Nov 5 06:56 /usr/share/sile/i18n/hi.ftl
-rw-r--r-- 1 root root 77 Nov 5 06:56 /usr/share/sile/i18n/hr.ftl
-rw-r--r-- 1 root root 84 Nov 5 06:56 /usr/share/sile/i18n/hu.ftl
-rw-r--r-- 1 root root 100 Nov 5 06:56 /usr/share/sile/i18n/hy.ftl
-rw-r--r-- 1 root root 73 Nov 5 06:56 /usr/share/sile/i18n/id.ftl
-rw-r--r-- 1 root root 77 Nov 5 06:56 /usr/share/sile/i18n/is.ftl
-rw-r--r-- 1 root root 74 Nov 5 06:56 /usr/share/sile/i18n/it.ftl
-rw-r--r-- 1 root root 77 Nov 5 06:56 /usr/share/sile/i18n/ja.ftl
-rw-r--r-- 1 root root 0 Nov 5 06:56 /usr/share/sile/i18n/jv.ftl
-rw-r--r-- 1 root root 96 Nov 5 06:56 /usr/share/sile/i18n/ka.ftl
-rw-r--r-- 1 root root 99 Nov 5 06:56 /usr/share/sile/i18n/kn.ftl
-rw-r--r-- 1 root root 362 Nov 5 06:56 /usr/share/sile/i18n/la.ftl
-rw-r--r-- 1 root root 74 Nov 5 06:56 /usr/share/sile/i18n/lt.ftl
-rw-r--r-- 1 root root 73 Nov 5 06:56 /usr/share/sile/i18n/lv.ftl
-rw-r--r-- 1 root root 114 Nov 5 06:56 /usr/share/sile/i18n/ml.ftl
-rw-r--r-- 1 root root 111 Nov 5 06:56 /usr/share/sile/i18n/mr.ftl
-rw-r--r-- 1 root root 0 Nov 5 06:56 /usr/share/sile/i18n/my.ftl
-rw-r--r-- 1 root root 389 Nov 5 06:56 /usr/share/sile/i18n/nb.ftl
-rw-r--r-- 1 root root 82 Nov 5 06:56 /usr/share/sile/i18n/nl.ftl
-rw-r--r-- 1 root root 389 Nov 5 06:56 /usr/share/sile/i18n/nn.ftl
-rw-r--r-- 1 root root 389 Nov 5 06:56 /usr/share/sile/i18n/no.ftl
-rw-r--r-- 1 root root 0 Nov 5 06:56 /usr/share/sile/i18n/or.ftl
-rw-r--r-- 1 root root 0 Nov 5 06:56 /usr/share/sile/i18n/pa.ftl
-rw-r--r-- 1 root root 81 Nov 5 06:56 /usr/share/sile/i18n/pl.ftl
-rw-r--r-- 1 root root 78 Nov 5 06:56 /usr/share/sile/i18n/pt.ftl
-rw-r--r-- 1 root root 85 Nov 5 06:56 /usr/share/sile/i18n/rm.ftl
-rw-r--r-- 1 root root 76 Nov 5 06:56 /usr/share/sile/i18n/ro.ftl
-rw-r--r-- 1 root root 423 Nov 5 06:56 /usr/share/sile/i18n/ru.ftl
-rw-r--r-- 1 root root 0 Nov 5 06:56 /usr/share/sile/i18n/sa.ftl
-rw-r--r-- 1 root root 73 Nov 5 06:56 /usr/share/sile/i18n/sk.ftl
-rw-r--r-- 1 root root 74 Nov 5 06:56 /usr/share/sile/i18n/sl.ftl
-rw-r--r-- 1 root root 83 Nov 5 06:56 /usr/share/sile/i18n/sr.ftl
-rw-r--r-- 1 root root 76 Nov 5 06:56 /usr/share/sile/i18n/sv.ftl
-rw-r--r-- 1 root root 105 Nov 5 06:56 /usr/share/sile/i18n/ta.ftl
-rw-r--r-- 1 root root 93 Nov 5 06:56 /usr/share/sile/i18n/th.ftl
-rw-r--r-- 1 root root 70 Nov 5 06:56 /usr/share/sile/i18n/tk.ftl
-rw-r--r-- 1 root root 117 Nov 5 06:56 /usr/share/sile/i18n/tr.ftl
-rw-r--r-- 1 root root 84 Nov 5 06:56 /usr/share/sile/i18n/ug.ftl
-rw-r--r-- 1 root root 82 Nov 5 06:56 /usr/share/sile/i18n/uk.ftl
-rw-r--r-- 1 root root 147 Nov 5 06:56 /usr/share/sile/i18n/und.ftl
-rw-r--r-- 1 root root 91 Nov 5 06:56 /usr/share/sile/i18n/ur.ftl
drwxr-xr-x 2 root root 0 Nov 16 22:45 /usr/share/sile/inputters
-rw-r--r-- 1 root root 2687 Nov 5 06:56 /usr/share/sile/inputters/base.lua
-rw-r--r-- 1 root root 1131 Nov 5 06:56 /usr/share/sile/inputters/lua.lua
-rw-r--r-- 1 root root 5729 Nov 5 06:56 /usr/share/sile/inputters/sil.lua
-rw-r--r-- 1 root root 2475 Nov 5 06:56 /usr/share/sile/inputters/xml.lua
drwxr-xr-x 2 root root 0 Nov 16 22:45 /usr/share/sile/languages
-rw-r--r-- 1 root root 110964 Nov 5 06:56 /usr/share/sile/languages/af.lua
-rw-r--r-- 1 root root 1314 Nov 5 06:56 /usr/share/sile/languages/am.lua
-rw-r--r-- 1 root root 1139 Nov 5 06:56 /usr/share/sile/languages/as.lua
-rw-r--r-- 1 root root 17439 Nov 5 06:56 /usr/share/sile/languages/bg.lua
-rw-r--r-- 1 root root 1139 Nov 5 06:56 /usr/share/sile/languages/bn.lua
-rw-r--r-- 1 root root 9077 Nov 5 06:56 /usr/share/sile/languages/ca.lua
-rw-r--r-- 1 root root 32883 Nov 5 06:56 /usr/share/sile/languages/cs.lua
-rw-r--r-- 1 root root 63368 Nov 5 06:56 /usr/share/sile/languages/cy.lua
-rw-r--r-- 1 root root 9669 Nov 5 06:56 /usr/share/sile/languages/da.lua
-rw-r--r-- 1 root root 147282 Nov 5 06:56 /usr/share/sile/languages/de.lua
-rw-r--r-- 1 root root 8444 Nov 5 06:56 /usr/share/sile/languages/el-monoton.lua
-rw-r--r-- 1 root root 20562 Nov 5 06:56 /usr/share/sile/languages/el-polyton.lua
-rw-r--r-- 1 root root 76408 Nov 5 06:56 /usr/share/sile/languages/el.lua
-rw-r--r-- 1 root root 42772 Nov 5 06:56 /usr/share/sile/languages/en.lua
-rw-r--r-- 1 root root 25889 Nov 5 06:56 /usr/share/sile/languages/eo.lua
-rw-r--r-- 1 root root 37908 Nov 5 06:56 /usr/share/sile/languages/es.lua
-rw-r--r-- 1 root root 34423 Nov 5 06:56 /usr/share/sile/languages/et.lua
-rw-r--r-- 1 root root 1911 Nov 5 06:56 /usr/share/sile/languages/eu.lua
-rw-r--r-- 1 root root 4649 Nov 5 06:56 /usr/share/sile/languages/fi.lua
-rw-r--r-- 1 root root 28766 Nov 5 06:56 /usr/share/sile/languages/fr.lua
-rw-r--r-- 1 root root 62041 Nov 5 06:56 /usr/share/sile/languages/ga.lua
-rw-r--r-- 1 root root 1042 Nov 5 06:56 /usr/share/sile/languages/gu.lua
-rw-r--r-- 1 root root 1001 Nov 5 06:56 /usr/share/sile/languages/hi.lua
-rw-r--r-- 1 root root 12132 Nov 5 06:56 /usr/share/sile/languages/hr.lua
-rw-r--r-- 1 root root 716733 Nov 5 06:56 /usr/share/sile/languages/hu.lua
-rw-r--r-- 1 root root 15778 Nov 5 06:56 /usr/share/sile/languages/hy.lua
-rw-r--r-- 1 root root 2456 Nov 5 06:56 /usr/share/sile/languages/id.lua
-rw-r--r-- 1 root root 38677 Nov 5 06:56 /usr/share/sile/languages/is.lua
-rw-r--r-- 1 root root 2859 Nov 5 06:56 /usr/share/sile/languages/it.lua
-rw-r--r-- 1 root root 7279 Nov 5 06:56 /usr/share/sile/languages/ja.lua
-rw-r--r-- 1 root root 2022 Nov 5 06:56 /usr/share/sile/languages/jv.lua
-rw-r--r-- 1 root root 32129 Nov 5 06:56 /usr/share/sile/languages/ka.lua
-rw-r--r-- 1 root root 1168 Nov 5 06:56 /usr/share/sile/languages/kn.lua
-rw-r--r-- 1 root root 2970 Nov 5 06:56 /usr/share/sile/languages/la.lua
-rw-r--r-- 1 root root 13145 Nov 5 06:56 /usr/share/sile/languages/lt.lua
-rw-r--r-- 1 root root 119171 Nov 5 06:56 /usr/share/sile/languages/lv.lua
-rw-r--r-- 1 root root 1283 Nov 5 06:56 /usr/share/sile/languages/ml.lua
-rw-r--r-- 1 root root 1070 Nov 5 06:56 /usr/share/sile/languages/mr.lua
-rw-r--r-- 1 root root 3157 Nov 5 06:56 /usr/share/sile/languages/my.lua
-rw-r--r-- 1 root root 225 Nov 5 06:56 /usr/share/sile/languages/nb.lua
-rw-r--r-- 1 root root 122262 Nov 5 06:56 /usr/share/sile/languages/nl.lua
-rw-r--r-- 1 root root 406 Nov 5 06:56 /usr/share/sile/languages/nn.lua
-rw-r--r-- 1 root root 276885 Nov 5 06:56 /usr/share/sile/languages/no.lua
-rw-r--r-- 1 root root 1012 Nov 5 06:56 /usr/share/sile/languages/or.lua
-rw-r--r-- 1 root root 995 Nov 5 06:56 /usr/share/sile/languages/pa.lua
-rw-r--r-- 1 root root 42905 Nov 5 06:56 /usr/share/sile/languages/pl.lua
-rw-r--r-- 1 root root 2538 Nov 5 06:56 /usr/share/sile/languages/pt.lua
-rw-r--r-- 1 root root 3001 Nov 5 06:56 /usr/share/sile/languages/rm.lua
-rw-r--r-- 1 root root 5471 Nov 5 06:56 /usr/share/sile/languages/ro.lua
-rw-r--r-- 1 root root 88324 Nov 5 06:56 /usr/share/sile/languages/ru.lua
-rw-r--r-- 1 root root 11132 Nov 5 06:56 /usr/share/sile/languages/sa.lua
-rw-r--r-- 1 root root 27306 Nov 5 06:56 /usr/share/sile/languages/sk.lua
-rw-r--r-- 1 root root 9347 Nov 5 06:56 /usr/share/sile/languages/sl.lua
-rw-r--r-- 1 root root 37757 Nov 5 06:56 /usr/share/sile/languages/sr.lua
-rw-r--r-- 1 root root 43567 Nov 5 06:56 /usr/share/sile/languages/sv.lua
-rw-r--r-- 1 root root 1192 Nov 5 06:56 /usr/share/sile/languages/ta.lua
-rw-r--r-- 1 root root 66430 Nov 5 06:56 /usr/share/sile/languages/th.lua
-rw-r--r-- 1 root root 21122 Nov 5 06:56 /usr/share/sile/languages/tk.lua
-rw-r--r-- 1 root root 9252 Nov 5 06:56 /usr/share/sile/languages/tr.lua
-rw-r--r-- 1 root root 5300 Nov 5 06:56 /usr/share/sile/languages/ug.lua
-rw-r--r-- 1 root root 55470 Nov 5 06:56 /usr/share/sile/languages/uk.lua
-rw-r--r-- 1 root root 67 Nov 5 06:56 /usr/share/sile/languages/und.lua
-rw-r--r-- 1 root root 6109 Nov 5 06:56 /usr/share/sile/languages/unicode.lua
drwxr-xr-x 2 root root 0 Nov 16 22:45 /usr/share/sile/lua-libraries
-rw-r--r-- 1 root root 1456 Nov 5 06:56 /usr/share/sile/lua-libraries/bitshim.lua
-rw-r--r-- 1 root root 2110178 Nov 5 06:56 /usr/share/sile/lua-libraries/char-def.lua
drwxr-xr-x 2 root root 0 Nov 16 22:45 /usr/share/sile/lua-libraries/imagesize
-rw-r--r-- 1 root root 3974 Nov 5 06:56 /usr/share/sile/lua-libraries/imagesize.lua
drwxr-xr-x 2 root root 0 Nov 16 22:45 /usr/share/sile/lua-libraries/imagesize/format
-rw-r--r-- 1 root root 827 Nov 5 06:56 /usr/share/sile/lua-libraries/imagesize/format/bmp.lua
-rw-r--r-- 1 root root 5140 Nov 5 06:56 /usr/share/sile/lua-libraries/imagesize/format/gif.lua
-rw-r--r-- 1 root root 1663 Nov 5 06:56 /usr/share/sile/lua-libraries/imagesize/format/jpeg.lua
-rw-r--r-- 1 root root 1079 Nov 5 06:56 /usr/share/sile/lua-libraries/imagesize/format/mng.lua
-rw-r--r-- 1 root root 1332 Nov 5 06:56 /usr/share/sile/lua-libraries/imagesize/format/pcd.lua
-rw-r--r-- 1 root root 1011 Nov 5 06:56 /usr/share/sile/lua-libraries/imagesize/format/png.lua
-rw-r--r-- 1 root root 1200 Nov 5 06:56 /usr/share/sile/lua-libraries/imagesize/format/pnm.lua
-rw-r--r-- 1 root root 428 Nov 5 06:56 /usr/share/sile/lua-libraries/imagesize/format/psd.lua
-rw-r--r-- 1 root root 1697 Nov 5 06:56 /usr/share/sile/lua-libraries/imagesize/format/swf.lua
-rw-r--r-- 1 root root 3389 Nov 5 06:56 /usr/share/sile/lua-libraries/imagesize/format/tiff.lua
-rw-r--r-- 1 root root 439 Nov 5 06:56 /usr/share/sile/lua-libraries/imagesize/format/xbm.lua
-rw-r--r-- 1 root root 520 Nov 5 06:56 /usr/share/sile/lua-libraries/imagesize/format/xcf.lua
-rw-r--r-- 1 root root 619 Nov 5 06:56 /usr/share/sile/lua-libraries/imagesize/format/xpm.lua
-rw-r--r-- 1 root root 517 Nov 5 06:56 /usr/share/sile/lua-libraries/imagesize/util.lua
drwxr-xr-x 2 root root 0 Nov 16 22:45 /usr/share/sile/lua-libraries/lunamark
-rw-r--r-- 1 root root 3477 Nov 5 06:56 /usr/share/sile/lua-libraries/lunamark.lua
-rw-r--r-- 1 root root 6201 Nov 5 06:56 /usr/share/sile/lua-libraries/lunamark/entities.lua
drwxr-xr-x 2 root root 0 Nov 16 22:45 /usr/share/sile/lua-libraries/lunamark/reader
-rw-r--r-- 1 root root 739 Nov 5 06:56 /usr/share/sile/lua-libraries/lunamark/reader.lua
-rw-r--r-- 1 root root 41584 Nov 5 06:56 /usr/share/sile/lua-libraries/lunamark/reader/markdown.lua
-rw-r--r-- 1 root root 5760 Nov 5 06:56 /usr/share/sile/lua-libraries/lunamark/util.lua
drwxr-xr-x 2 root root 0 Nov 16 22:45 /usr/share/sile/lua-libraries/lunamark/writer
-rw-r--r-- 1 root root 733 Nov 5 06:56 /usr/share/sile/lua-libraries/lunamark/writer.lua
-rw-r--r-- 1 root root 1984 Nov 5 06:56 /usr/share/sile/lua-libraries/lunamark/writer/ast.lua
-rw-r--r-- 1 root root 4472 Nov 5 06:56 /usr/share/sile/lua-libraries/lunamark/writer/context.lua
-rw-r--r-- 1 root root 4326 Nov 5 06:56 /usr/share/sile/lua-libraries/lunamark/writer/docbook.lua
-rw-r--r-- 1 root root 10245 Nov 5 06:56 /usr/share/sile/lua-libraries/lunamark/writer/dzslides.lua
-rw-r--r-- 1 root root 7442 Nov 5 06:56 /usr/share/sile/lua-libraries/lunamark/writer/generic.lua
-rw-r--r-- 1 root root 1646 Nov 5 06:56 /usr/share/sile/lua-libraries/lunamark/writer/groff.lua
-rw-r--r-- 1 root root 5230 Nov 5 06:56 /usr/share/sile/lua-libraries/lunamark/writer/html.lua
-rw-r--r-- 1 root root 735 Nov 5 06:56 /usr/share/sile/lua-libraries/lunamark/writer/html5.lua
-rw-r--r-- 1 root root 7754 Nov 5 06:56 /usr/share/sile/lua-libraries/lunamark/writer/latex.lua
-rw-r--r-- 1 root root 3084 Nov 5 06:56 /usr/share/sile/lua-libraries/lunamark/writer/man.lua
-rw-r--r-- 1 root root 1817 Nov 5 06:56 /usr/share/sile/lua-libraries/lunamark/writer/tex.lua
-rw-r--r-- 1 root root 1499 Nov 5 06:56 /usr/share/sile/lua-libraries/lunamark/writer/xml.lua
drwxr-xr-x 2 root root 0 Nov 16 22:45 /usr/share/sile/outputters
-rw-r--r-- 1 root root 1003 Nov 5 06:56 /usr/share/sile/outputters/base.lua
-rw-r--r-- 1 root root 3673 Nov 5 06:56 /usr/share/sile/outputters/cairo.lua
-rw-r--r-- 1 root root 5395 Nov 5 06:56 /usr/share/sile/outputters/debug.lua
-rw-r--r-- 1 root root 319 Nov 5 06:56 /usr/share/sile/outputters/dummy.lua
-rw-r--r-- 1 root root 7177 Nov 5 06:56 /usr/share/sile/outputters/libtexpdf.lua
-rw-r--r-- 1 root root 3098 Nov 5 06:56 /usr/share/sile/outputters/podofo.lua
-rw-r--r-- 1 root root 1875 Nov 5 06:56 /usr/share/sile/outputters/text.lua
drwxr-xr-x 2 root root 0 Nov 16 22:45 /usr/share/sile/packages
drwxr-xr-x 2 root root 0 Nov 16 22:45 /usr/share/sile/packages/autodoc
-rw-r--r-- 1 root root 14110 Nov 5 06:56 /usr/share/sile/packages/autodoc/init.lua
drwxr-xr-x 2 root root 0 Nov 16 22:45 /usr/share/sile/packages/background
-rw-r--r-- 1 root root 2016 Nov 5 06:56 /usr/share/sile/packages/background/init.lua
drwxr-xr-x 2 root root 0 Nov 16 22:45 /usr/share/sile/packages/balanced-frames
-rw-r--r-- 1 root root 4022 Nov 5 06:56 /usr/share/sile/packages/balanced-frames/init.lua
-rw-r--r-- 1 root root 3232 Nov 5 06:56 /usr/share/sile/packages/base.lua
drwxr-xr-x 2 root root 0 Nov 16 22:45 /usr/share/sile/packages/bibtex
-rw-r--r-- 1 root root 14406 Nov 5 06:56 /usr/share/sile/packages/bibtex/bibliography.lua
-rw-r--r-- 1 root root 5526 Nov 5 06:56 /usr/share/sile/packages/bibtex/init.lua
drwxr-xr-x 2 root root 0 Nov 16 22:45 /usr/share/sile/packages/bibtex/styles
-rw-r--r-- 1 root root 3916 Nov 5 06:56 /usr/share/sile/packages/bibtex/styles/chicago.lua
drwxr-xr-x 2 root root 0 Nov 16 22:45 /usr/share/sile/packages/bidi
-rw-r--r-- 1 root root 10305 Nov 5 06:56 /usr/share/sile/packages/bidi/init.lua
drwxr-xr-x 2 root root 0 Nov 16 22:45 /usr/share/sile/packages/boustrophedon
-rw-r--r-- 1 root root 2699 Nov 5 06:56 /usr/share/sile/packages/boustrophedon/init.lua
drwxr-xr-x 2 root root 0 Nov 16 22:45 /usr/share/sile/packages/break-firstfit
-rw-r--r-- 1 root root 2204 Nov 5 06:56 /usr/share/sile/packages/break-firstfit/init.lua
drwxr-xr-x 2 root root 0 Nov 16 22:45 /usr/share/sile/packages/chapterverse
-rw-r--r-- 1 root root 3829 Nov 5 06:56 /usr/share/sile/packages/chapterverse/init.lua
drwxr-xr-x 2 root root 0 Nov 16 22:45 /usr/share/sile/packages/chordmode
-rw-r--r-- 1 root root 3926 Nov 5 06:56 /usr/share/sile/packages/chordmode/init.lua
drwxr-xr-x 2 root root 0 Nov 16 22:45 /usr/share/sile/packages/color
drwxr-xr-x 2 root root 0 Nov 16 22:45 /usr/share/sile/packages/color-fonts
-rw-r--r-- 1 root root 3419 Nov 5 06:56 /usr/share/sile/packages/color-fonts/init.lua
-rw-r--r-- 1 root root 1921 Nov 5 06:56 /usr/share/sile/packages/color/init.lua
drwxr-xr-x 2 root root 0 Nov 16 22:45 /usr/share/sile/packages/complex-spaces
-rw-r--r-- 1 root root 1875 Nov 5 06:56 /usr/share/sile/packages/complex-spaces/init.lua
drwxr-xr-x 2 root root 0 Nov 16 22:45 /usr/share/sile/packages/converters
-rw-r--r-- 1 root root 4324 Nov 5 06:56 /usr/share/sile/packages/converters/init.lua
drwxr-xr-x 2 root root 0 Nov 16 22:45 /usr/share/sile/packages/counters
-rw-r--r-- 1 root root 11285 Nov 5 06:56 /usr/share/sile/packages/counters/init.lua
drwxr-xr-x 2 root root 0 Nov 16 22:45 /usr/share/sile/packages/cropmarks
-rw-r--r-- 1 root root 4316 Nov 5 06:56 /usr/share/sile/packages/cropmarks/init.lua
drwxr-xr-x 2 root root 0 Nov 16 22:45 /usr/share/sile/packages/date
-rw-r--r-- 1 root root 1268 Nov 5 06:56 /usr/share/sile/packages/date/init.lua
drwxr-xr-x 2 root root 0 Nov 16 22:45 /usr/share/sile/packages/debug
-rw-r--r-- 1 root root 830 Nov 5 06:56 /usr/share/sile/packages/debug/init.lua
drwxr-xr-x 2 root root 0 Nov 16 22:45 /usr/share/sile/packages/dropcaps
-rw-r--r-- 1 root root 5748 Nov 5 06:56 /usr/share/sile/packages/dropcaps/init.lua
drwxr-xr-x 2 root root 0 Nov 16 22:45 /usr/share/sile/packages/features
-rw-r--r-- 1 root root 7593 Nov 5 06:56 /usr/share/sile/packages/features/init.lua
drwxr-xr-x 2 root root 0 Nov 16 22:45 /usr/share/sile/packages/folio
-rw-r--r-- 1 root root 3757 Nov 5 06:56 /usr/share/sile/packages/folio/init.lua
drwxr-xr-x 2 root root 0 Nov 16 22:45 /usr/share/sile/packages/font-fallback
-rw-r--r-- 1 root root 9255 Nov 5 06:56 /usr/share/sile/packages/font-fallback/init.lua
drwxr-xr-x 2 root root 0 Nov 16 22:45 /usr/share/sile/packages/footnotes
-rw-r--r-- 1 root root 4434 Nov 5 06:56 /usr/share/sile/packages/footnotes/init.lua
drwxr-xr-x 2 root root 0 Nov 16 22:45 /usr/share/sile/packages/frametricks
-rw-r--r-- 1 root root 12323 Nov 5 06:56 /usr/share/sile/packages/frametricks/init.lua
drwxr-xr-x 2 root root 0 Nov 16 22:45 /usr/share/sile/packages/grid
-rw-r--r-- 1 root root 10212 Nov 5 06:56 /usr/share/sile/packages/grid/init.lua
drwxr-xr-x 2 root root 0 Nov 16 22:45 /usr/share/sile/packages/gutenberg
-rw-r--r-- 1 root root 1509 Nov 5 06:56 /usr/share/sile/packages/gutenberg/init.lua
drwxr-xr-x 2 root root 0 Nov 16 22:45 /usr/share/sile/packages/hanmenkyoshi
-rw-r--r-- 1 root root 3730 Nov 5 06:56 /usr/share/sile/packages/hanmenkyoshi/init.lua
drwxr-xr-x 2 root root 0 Nov 16 22:45 /usr/share/sile/packages/ifattop
-rw-r--r-- 1 root root 828 Nov 5 06:56 /usr/share/sile/packages/ifattop/init.lua
drwxr-xr-x 2 root root 0 Nov 16 22:45 /usr/share/sile/packages/image
-rw-r--r-- 1 root root 3028 Nov 5 06:56 /usr/share/sile/packages/image/init.lua
drwxr-xr-x 2 root root 0 Nov 16 22:45 /usr/share/sile/packages/indexer
-rw-r--r-- 1 root root 3623 Nov 5 06:56 /usr/share/sile/packages/indexer/init.lua
drwxr-xr-x 2 root root 0 Nov 16 22:45 /usr/share/sile/packages/infonode
-rw-r--r-- 1 root root 4004 Nov 5 06:56 /usr/share/sile/packages/infonode/init.lua
drwxr-xr-x 2 root root 0 Nov 16 22:45 /usr/share/sile/packages/inputfilter
-rw-r--r-- 1 root root 2007 Nov 5 06:56 /usr/share/sile/packages/inputfilter/init.lua
drwxr-xr-x 2 root root 0 Nov 16 22:45 /usr/share/sile/packages/insertions
-rw-r--r-- 1 root root 18586 Nov 5 06:56 /usr/share/sile/packages/insertions/init.lua
drwxr-xr-x 2 root root 0 Nov 16 22:45 /usr/share/sile/packages/leaders
-rw-r--r-- 1 root root 5899 Nov 5 06:56 /usr/share/sile/packages/leaders/init.lua
drwxr-xr-x 2 root root 0 Nov 16 22:45 /usr/share/sile/packages/linespacing
-rw-r--r-- 1 root root 7822 Nov 5 06:56 /usr/share/sile/packages/linespacing/init.lua
drwxr-xr-x 2 root root 0 Nov 16 22:45 /usr/share/sile/packages/lists
-rw-r--r-- 1 root root 13606 Nov 5 06:56 /usr/share/sile/packages/lists/init.lua
drwxr-xr-x 2 root root 0 Nov 16 22:45 /usr/share/sile/packages/lorem
-rw-r--r-- 1 root root 5148 Nov 5 06:56 /usr/share/sile/packages/lorem/init.lua
drwxr-xr-x 2 root root 0 Nov 16 22:45 /usr/share/sile/packages/masters
-rw-r--r-- 1 root root 4596 Nov 5 06:56 /usr/share/sile/packages/masters/init.lua
drwxr-xr-x 2 root root 0 Nov 16 22:45 /usr/share/sile/packages/math
-rw-r--r-- 1 root root 43263 Nov 5 06:56 /usr/share/sile/packages/math/base-elements.lua
-rw-r--r-- 1 root root 13448 Nov 5 06:56 /usr/share/sile/packages/math/init.lua
-rw-r--r-- 1 root root 14661 Nov 5 06:56 /usr/share/sile/packages/math/texlike.lua
-rw-r--r-- 1 root root 5992 Nov 5 06:56 /usr/share/sile/packages/math/typesetter.lua
-rw-r--r-- 1 root root 193564 Nov 5 06:56 /usr/share/sile/packages/math/unicode-symbols.lua
drwxr-xr-x 2 root root 0 Nov 16 22:45 /usr/share/sile/packages/pagebuilder-bestfit
-rw-r--r-- 1 root root 2426 Nov 5 06:56 /usr/share/sile/packages/pagebuilder-bestfit/init.lua
drwxr-xr-x 2 root root 0 Nov 16 22:45 /usr/share/sile/packages/pandoc
-rw-r--r-- 1 root root 9851 Nov 5 06:56 /usr/share/sile/packages/pandoc/init.lua
drwxr-xr-x 2 root root 0 Nov 16 22:45 /usr/share/sile/packages/parallel
-rw-r--r-- 1 root root 6043 Nov 5 06:56 /usr/share/sile/packages/parallel/init.lua
drwxr-xr-x 2 root root 0 Nov 16 22:45 /usr/share/sile/packages/pdf
-rw-r--r-- 1 root root 7732 Nov 5 06:56 /usr/share/sile/packages/pdf/init.lua
drwxr-xr-x 2 root root 0 Nov 16 22:45 /usr/share/sile/packages/pdfstructure
-rw-r--r-- 1 root root 4657 Nov 5 06:56 /usr/share/sile/packages/pdfstructure/init.lua
drwxr-xr-x 2 root root 0 Nov 16 22:45 /usr/share/sile/packages/pullquote
-rw-r--r-- 1 root root 4156 Nov 5 06:56 /usr/share/sile/packages/pullquote/init.lua
drwxr-xr-x 2 root root 0 Nov 16 22:45 /usr/share/sile/packages/raiselower
-rw-r--r-- 1 root root 2105 Nov 5 06:56 /usr/share/sile/packages/raiselower/init.lua
drwxr-xr-x 2 root root 0 Nov 16 22:45 /usr/share/sile/packages/rebox
-rw-r--r-- 1 root root 1551 Nov 5 06:56 /usr/share/sile/packages/rebox/init.lua
drwxr-xr-x 2 root root 0 Nov 16 22:45 /usr/share/sile/packages/rotate
-rw-r--r-- 1 root root 4937 Nov 5 06:56 /usr/share/sile/packages/rotate/init.lua
drwxr-xr-x 2 root root 0 Nov 16 22:45 /usr/share/sile/packages/ruby
-rw-r--r-- 1 root root 5076 Nov 5 06:56 /usr/share/sile/packages/ruby/init.lua
drwxr-xr-x 2 root root 0 Nov 16 22:45 /usr/share/sile/packages/rules
-rw-r--r-- 1 root root 12515 Nov 5 06:56 /usr/share/sile/packages/rules/init.lua
drwxr-xr-x 2 root root 0 Nov 16 22:45 /usr/share/sile/packages/simpletable
-rw-r--r-- 1 root root 3466 Nov 5 06:56 /usr/share/sile/packages/simpletable/init.lua
drwxr-xr-x 2 root root 0 Nov 16 22:45 /usr/share/sile/packages/specimen
-rw-r--r-- 1 root root 3148 Nov 5 06:56 /usr/share/sile/packages/specimen/init.lua
drwxr-xr-x 2 root root 0 Nov 16 22:45 /usr/share/sile/packages/svg
-rw-r--r-- 1 root root 4472 Nov 5 06:56 /usr/share/sile/packages/svg/init.lua
drwxr-xr-x 2 root root 0 Nov 16 22:45 /usr/share/sile/packages/tableofcontents
-rw-r--r-- 1 root root 9395 Nov 5 06:56 /usr/share/sile/packages/tableofcontents/init.lua
drwxr-xr-x 2 root root 0 Nov 16 22:45 /usr/share/sile/packages/tate
-rw-r--r-- 1 root root 6384 Nov 5 06:56 /usr/share/sile/packages/tate/init.lua
drwxr-xr-x 2 root root 0 Nov 16 22:45 /usr/share/sile/packages/textcase
-rw-r--r-- 1 root root 2870 Nov 5 06:56 /usr/share/sile/packages/textcase/init.lua
drwxr-xr-x 2 root root 0 Nov 16 22:45 /usr/share/sile/packages/twoside
-rw-r--r-- 1 root root 6722 Nov 5 06:56 /usr/share/sile/packages/twoside/init.lua
drwxr-xr-x 2 root root 0 Nov 16 22:45 /usr/share/sile/packages/unichar
-rw-r--r-- 1 root root 1838 Nov 5 06:56 /usr/share/sile/packages/unichar/init.lua
drwxr-xr-x 2 root root 0 Nov 16 22:45 /usr/share/sile/packages/url
-rw-r--r-- 1 root root 7899 Nov 5 06:56 /usr/share/sile/packages/url/init.lua
drwxr-xr-x 2 root root 0 Nov 16 22:45 /usr/share/sile/packages/verbatim
-rw-r--r-- 1 root root 2682 Nov 5 06:56 /usr/share/sile/packages/verbatim/init.lua
drwxr-xr-x 2 root root 0 Nov 16 22:45 /usr/share/sile/packages/xmltricks
-rw-r--r-- 1 root root 1516 Nov 5 06:56 /usr/share/sile/packages/xmltricks/init.lua
drwxr-xr-x 2 root root 0 Nov 16 22:45 /usr/share/sile/shapers
-rw-r--r-- 1 root root 5729 Nov 5 06:56 /usr/share/sile/shapers/base.lua
-rw-r--r-- 1 root root 4697 Nov 5 06:56 /usr/share/sile/shapers/harfbuzz.lua
-rw-r--r-- 1 root root 2967 Nov 5 06:56 /usr/share/sile/shapers/pango.lua
drwxr-xr-x 2 root root 0 Nov 16 22:45 /usr/share/sile/typesetters
-rw-r--r-- 1 root root 26257 Nov 5 06:56 /usr/share/sile/typesetters/base.lua
The build log, including commands and flags can be found here: https://copr.fedorainfracloud.org/coprs/jonny/SILE/build/5043639/
The above shows you are manually trying to build one chapter of the manual using a file that is a fragment not a complete document. The error is because the chapter files ASSUME they are fragments included into the master documentation file. Hence they do not specify the class and macros and various other things needed to build them. The \chapter
and other commands are defined in the book class, but the chapter fragment files don't specify their class, assuming the master document will do that. The master file is sile.sil
, but you'll actually run into trouble trying to build that with sile sile.sil
as well because the documentation makes a number of assumptions about fonts and packages locations (it extracts strings from the package source code to document them). The correct way to build the manual is to run make docs
from the root source directory after configuring and building SILE itself. (./configure
and make
). That will download all the necessary fonts locally and invoke SILE with the necessary arguments to use the fonts without installing them on the system.
If you want a quick and dirty test you can do something as simple as:
$ echo -n '\document{foo}' | sile - -o foo.pdf
There is also a make selfcheck
target that does something like this, then checks that the resulting PDF file is valid.
Thanks for the explanation, $ echo -n '\document{foo}' | sile - -o foo.pdf
seems like a good smoke test during build.
It's getting close for testing. Most of the examples are working.
I got this error on snakes.sil
example:
$ sile snakes.sil
SILE v0.14.3 (Lua 5.4)
<snakes.sil> as sil
</usr/local/share/sile/core/sile.lua:363> as lua
! Font family 'Hack' not available, falling back to 'OpenSymbol' at snakes.sil: in \vbox near 26:1: in \footnote after 26:50: in \url
libtexpdf:fatal: Invalid XObject ID: -1
That error message could be more friendly! I'll look into it, but in this case 'Invalid XQbject' just means it couldn't find the image it was asked to load. You seem to hake cd
'ed into the examples directory, but the examples have paths in them relative to the website project root. This is evident from this bit in the example:
SILE.outputter:drawImage("content/examples/snake.png", ...
Note I get the same result, but it works if you start from the same relative path as the resources.
$ pwd
sile-typesetter.github.io/content/examples
$ sile snakes.sil
SILE v0.14.4 (Lua 5.4)
<snakes.sil> as sil
</usr/share/sile/core/sile.lua:363> as lua
libtexpdf:fatal: Invalid XObject ID: -1
$ cd ../../
$ pwd
sile-typesetter.github.io
$ sile content/examples/snakes.sil
SILE v0.14.4 (Lua 5.4)
<content/examples/snakes.sil> as sil
</usr/share/sile/core/sile.lua:363> as lua
[1]
It would be possible to rewrite the example to use a path relative to the base file rather than to the CWD, it just so happens it wasn't written that way. I'll look into that as well as to a more friendly error message on the image loader.
The other message you see is just that you don't have the Hack font used in some of the examples on your system.
I fixed the example so it will be more flexible about where you call it from. I also looked into fixing the error message and I think I'm going to duck out of that for now. We have an image package that provides an \img[src=...]
function that already does some error checking and makes sure it can resolve the file before passing it to the outputter. This function returns friendly error messages. That friendly stuff is being bypassed in that example because the snakes example is reaching deep into internals to hand draw the image with customized properties. The error being thrown is by the libtexpdf backend and Lua doesn't actually give us a way to catch it because it is dying rather than returning an error that we could wrap in something friendly. I'll open an issue on that project to do better on that front, but the only other thing we could do easily is test for the file ahead of time. This would slow down the snakes example any anything else that was using it a lot because we would have to run the tests every time it looks through the code, defeating the purpose of reaching in so deep to the backend. At the end of the day that example is to demonstrate reaching deep into the backend of things and I guess it shouldn't come as a surprise that it can give cryptic errors when you do cryptic things. Again the normal document command for loading an image will be much friendlier already.
Ah, makes sense, I downloaded snakes from the home page, I did not think about that it was referencing a image
I just tweaked the example on the site so that the example itself checks for the file up front so that you get a friendly error in case of people downloading standalone examples instead of the whole example directory. That should probably be addresses in the online gallery so examples that require more than one file are available as a zip or something like that.
I saw there was some progress on Lua packages getting moved to core Fedora packaging. It looks like there are a few more to go, and then SILE itself. Again let me know if you need any help from me.
When it does make it in, I'd love to see a PR that adds a section to the README and manual with the correct install command for Fedora. Also let me know at that point if there is somebody I should ping or some out of date flag mechanism I should trigger on future releases.
Once we have install instructions documented, I'll probably mention it in a blog post. We still haven't announced the OpenSUSE packaging either so something short that points out the new options might be in order.
I saw there was some progress on Lua packages getting moved to core Fedora packaging. It looks like there are a few more to go, and then SILE itself. Again let me know if you need any help from me.
Yes, it will probably take some time before all the dependencies are approved, all packages in Fedora are peer reviewed.
It would be great if you could test the RPM package so that package bugs are detected early.
How to test/install for now:
$ sudo dnf copr enable jonny/SILE
$ sudo dnf install sile
The sile command will be installed in /usr/bin/sile. To list the files in the package you can run: $ rpm -ql sile
, if something is wrong, just let me know.
When it does make it in, I'd love to see a PR that adds a section to the README and manual with the correct install command for Fedora. Also let me know at that point if there is somebody I should ping or some out of date flag mechanism I should trigger on future releases.
Would be great to have the install steps in the README so that your Fedora users know that it is easy to get going on Fedora. For up-to-date packages I like the usage of https://release-monitoring.org/ I tend to declare a new project if it is not already there. The service will create and assign a bug ticket to me when it noticed that there is a new version.
Once we have install instructions documented, I'll probably mention it in a blog post. We still haven't announced the OpenSUSE packaging either so something short that points out the new options might be in order.
I think it would be great to write and prepare an article at https://fedoramagazine.org/ and publish it once SILE have been pushed to Fedora stable repository.
How to test/install for now:
I would be happy to see these provisional install instructions added to the README with a note that they will eventually change to official repos. Fell free to send a PR and we can tweak the wording again later when the steps change.
I'll check it out when I get a chance, but if you got it to run at all and the ./configure
didn't block you out I suspect everything is likely to be fine. It's pretty aggressive about checking for dependencies and the install step puts almost everything in nearly the same place so if it runs it found it...
Those steps don't quite get me there, at least not from a fresh Fedora docker image:
[root@0fa9995cc78c /]# dnf copr enable jonny/SILE
No such command: copr. Please use /usr/bin/dnf --help
It could be a DNF plugin command, try: "dnf install 'dnf-command(copr)'"
I tried dnf install copr-cli
, but that didn't get me there. How does one get started?
I tried
dnf install copr-cli
, but that didn't get me there. How does one get started?
I would give dnf install 'dnf-command(copr)'
a try, copr-cli is mostly for developers who want to build on copr.
Doh. I tried that but without the quotes.
I got it to install this time, but it looks like the sile package doesn't specify all/any of the Lua dependencies it needs. It installs but doesn't run. The first one it trips on is Penlight, but lua-penlight was not among the packages that installed as a dependency.
[root@ab3c4f4dcaec /]# dnf install sile
Copr repo for SILE owned by jonny 15 kB/s | 23 kB 00:01
Last metadata expiration check: 0:00:01 ago on Sat Nov 19 19:03:16 2022.
Dependencies resolved.
=================================================================================================================================================
Package Architecture Version Repository Size
=================================================================================================================================================
Installing:
sile x86_64 0.14.4-1.fc37 copr:copr.fedorainfracloud.org:jonny:SILE 1.1 M
Installing dependencies:
fontconfig x86_64 2.14.1-1.fc37 updates 294 k
fonts-filesystem noarch 1:2.0.5-9.fc37 fedora 7.9 k
freetype x86_64 2.12.1-3.fc37 fedora 407 k
google-noto-fonts-common noarch 20201206^1.git0c78c8329-5.fc37 fedora 18 k
google-noto-sans-vf-fonts noarch 20201206^1.git0c78c8329-5.fc37 fedora 728 k
graphite2 x86_64 1.3.14-10.fc37 fedora 95 k
harfbuzz x86_64 5.2.0-1.fc37 fedora 801 k
langpacks-core-font-en noarch 3.0-26.fc37 fedora 10 k
libicu x86_64 71.1-2.fc37 fedora 10 M
libpng x86_64 2:1.6.37-13.fc37 fedora 119 k
libtexpdf x86_64 0.14.4-1.fc37 copr:copr.fedorainfracloud.org:jonny:SILE 264 k
lua x86_64 5.4.4-4.fc37 fedora 189 k
xml-common noarch 0.6.3-59.fc37 fedora 31 k
Transaction Summary
=================================================================================================================================================
Install 14 Packages
Lua itself is there but none of the other packages. Are they not in your COPR repo?
Also google-noto-fonts getting pulled in as a dependency but no Gentium Plus (the document default font) or Libertinus (the default math font)? Technically those are optional, but at least Gentium should probably be marked as a hard dependency to meat end user expectations of being able to do basic stuff out of the box.
That is very strange, the last build two days ago explicit lists these runtime dependencies:
Requires: lua-bit32
Requires: lua-cassowary
Requires: lua-cldr
Requires: lua-cliargs
Requires: lua-cosmo
Requires: lua-expat
Requires: lua-filesystem
Requires: lua-fluent
Requires: lua-linenoise
Requires: lua-loadkit
Requires: lua-lpeg
Requires: lua-luarepl
Requires: lua-penlight
Requires: lua-sec
Requires: lua-socket
Requires: lua-utf8
Requires: lua-vstruct
Requires: lua-zlib
Requires: sil-gentium-plus-fonts
Requires: texlive-libertinus-fonts
Could you run rpm -qi sile
, so that I see the build date in case that users end up installing an older build?
[root@ab3c4f4dcaec /]# rpm -qi sile
Name : sile
Version : 0.14.4
Release : 1.fc37
Architecture: x86_64
Install Date: Sat Nov 19 19:04:01 2022
Group : Unspecified
Size : 6051080
License : MIT
Signature : RSA/SHA256, Wed Nov 16 21:56:06 2022, Key ID 0f1d583869ad2ac0
Source RPM : sile-0.14.4-1.fc37.src.rpm
Build Date : Wed Nov 16 21:55:33 2022
Build Host : copr-hv-x86-64-04-prod-02725019-20221116-212749
Vendor : Fedora Copr - user jonny
URL : https://sile-typesetter.org/
Summary : The SILE Typesetter
Description :
SILE is a typesetting system; its job is to produce beautiful printed documents.
Conceptually, SILE is similar to TeX—from which it borrows some concepts and
even syntax and algorithms—but the similarities end there.
Rather than being a derivative of the TeX family SILE is a new typesetting and
layout engine written from the ground up using modern technologies and borrowing
some ideas from graphical systems such as InDesign.
Ok, seems like copr/dnf is installing an older build, all my builds on sile have used the same version.
Doing a build now with a bumped release https://copr.fedorainfracloud.org/coprs/jonny/SILE/build/5048100/
Just run dnf upgrade sile --refresh
to have the new build
Also google-noto-fonts getting pulled in as a dependency but no Gentium Plus (the document default font) or Libertinus (the default math font)? Technically those are optional, but at least Gentium should probably be marked as a hard dependency to meat end user expectations of being able to do basic stuff out of the box.
It would be great to fine tune the dependencies before getting it into the Fedora repository. The font hack is not included in Fedora, not sure how that affects they output.
Not having Hack will mean the default monospace font doesn't work. Not a hard requirement but including the default base font, monospace font, and math font would definitely give the smoothest entry point for folks. On most platforms I've only specified Gentium as a hard requirement and used optional dependencies or suggestions or whatever is available for the others.
That package update now pulls in a ton of bogus dependencies including tons of perl modules and a whole texlive instalation, groff, etc. I think you've crosswired some of the devevloper / build time dependencies with run time (perl, groff) and pulled the wrong package for Libertinus (tex package instead of plain font).
Hmm.. looks like all the libertinus packages are tied to texlive, not sure why there is not an non-tex variant?
$ dnf search \*libertinus\*
Last metadata expiration check: 0:05:14 ago on Sun 20 Nov 2022 12:49:09 PM CET.
================================== Name & Summary Matched: *libertinus* ==================================
texlive-libertinus.noarch : The Libertinus font family
texlive-libertinus-doc.noarch : doc files of libertinus
texlive-libertinus-fonts.noarch : The Libertinus font family
texlive-libertinus-otf.noarch : Support for Libertinus OpenType
texlive-libertinus-type1.noarch : Support for using Libertinus fonts with LaTeX/pdfLaTeX
texlive-libertinust1math.noarch : A Type 1 font and LaTeX support for Libertinus Math
texlive-libertinust1math-doc.noarch : doc files of libertinust1math
Then I would suggest either not making a dependency at all (documents that use math will throw a warning, and people have the option to specify a math font or go get that font on their own) or alternatively package it as a stand along package yourself. Pulling in all of texlive to get SILE running is worse than not having the default math font.
As for perl and all the modules, it is only needed for testing SILE as a developer, not for running it as an end user. The regression test suite uses it, but nothing else.
(A pending PR #1563 already has better separation of developer-tooling dependencies vs. run time ones and by default ./configure
will only check for the later in future releases.)
As for perl and all the modules, it is only needed for testing SILE as a developer, not for running it as an end user. The regression test suite uses it, but nothing else.
I think perl might get pulled in because of texlive, there are no explicit dependencies on the build tools
Then I would suggest either not making a dependency at all (documents that use math will throw a warning, and people have the option to specify a math font or go get that font on their own) or alternatively package it as a stand along package yourself. Pulling in all of texlive to get SILE running is worse than not having the default math font.
It seems like most other distros are packaging https://github.com/alerque/libertinus as a standalone font, not sure what the history for Fedora and texlive is.
I am building [1] from https://github.com/alerque/libertinus now. I will update SILE later with new relaxed font dependencies.
[1] https://copr.fedorainfracloud.org/coprs/jonny/SILE/package/libertinus-fonts/
There is a new SILE build on COPR, changelog:
I have made a RPM package for hack-fonts, it also live in the same SILE copr project https://copr.fedorainfracloud.org/coprs/jonny/SILE/build/5057377/
I found this corner-case / issue, had to use strace in order to figure out what was going on:
$ cat /usr/local/share/sile/core/version.lua
return "v0.14.3"
$ cat /usr/share/sile/core/version.lua
return "v0.14.5"
$ sile --version
SILE v0.14.3 (Lua 5.4)
sile will use libraries located in /usr/local/share/sile
over /usr/share/sile/
, the other variant is an older install via make install. Users might run into strange issues if they have several version installed.
Would it be possible to patch the /usr/bin/sile for the RPM during build to make sure the packaged files have priority?
It would be possible but would also have serious adverse effects. That path priority is not coming from SILE it is coming from the lua interpreter itself and the default package path. SILE deliberately plays nicely with the default LUA path and uses this as a mechanism for end users to override any part of SILE itself. Users can use document level, project level, user level, and system level overrides to either extend or change existing functionality. Preferring the /usr/local path is a way LuaRocks allows users to install something that overrides what their system might have installed.
If you patch that out of SILE by extracting and dropping it from the default path you'll take away that standard pattern. I think your situation of having two versions installed, one manually and one system package installed is working as expected: the manual one takes precedence. That it is older in your case is an artifact of they way you played around with it. The correct way to fix it would be to make uninstall
using the same configured source tree you installed from.
I'm pretty sure the same is true on most linux systems with /usr/local/bin/foo
executables taking precedence over /usr/bin/foo
when both appear on the same system. The latter is the system package manager managed location, the former is the default user source install location and the user managed one takes precedency and can be used to override system tools in most cases.
Ok, that makes sense, then I will not spend any time on trying to "fix" it
I'm back from the road and just took another swipe at this. The install now asks for a set of lua dependencies and a "weak" font dependency that looks completely correct to me. I've never heard of a "weak" dependency but it sounds like just the ticket for covering default fonts that are assumed but not actually required to function. I'd be happy to see the COPR installation documented now and updated again for official repos later unless you think it will hit repos relatively soon, in which case we could wait.
I seldom use weak dependencies, but Fedora guidelines demand [1] using fonts as weak dependency.
Non-font packages SHOULD NOT require specific font packages
I think it will take a lot of time before all the packages are included in the main repository, so having them in COPR while waiting seems like a good plan. I will update the documentation at the COPR project settings, so it seems more polished. Once that is done, I will make a PR for the documentation/README.
Complete overview of the remaining packages:
lua-fluent - Lua implementation of Project Fluent: https://bugzilla.redhat.com/show_bug.cgi?id=2142798
lua-cliargs - A command-line argument parser: https://bugzilla.redhat.com/show_bug.cgi?id=2143056
lua-vstruct - Lua library to manipulate binary data: https://bugzilla.redhat.com/show_bug.cgi?id=2143351
lua-cosmo - Safe templates for Lua: https://bugzilla.redhat.com/show_bug.cgi?id=2142671
lua-luarepl - REPL.lua a reusable Lua REPL written in Lua: https://bugzilla.redhat.com/show_bug.cgi?id=2143382
lua-linenoise - A binding for the linenoise command line library: https://bugzilla.redhat.com/show_bug.cgi?id=2143020
lua-cldr - Lua interface to Unicode CLDR data: https://bugzilla.redhat.com/show_bug.cgi?id=2142653
lua-zlib - Simple streaming interface to zlib for Lua: https://bugzilla.redhat.com/show_bug.cgi?id=2143050
lua-epnf - Extended PEG Notation Format (easy grammars for LPeg): https://bugzilla.redhat.com/show_bug.cgi?id=2142786
lua-utf8 - A UTF-8 support module for Lua: https://bugzilla.redhat.com/show_bug.cgi?id=2143391
lua-loadkit - Loadkit allows you to load arbitrary files within the Lua package path: https://bugzilla.redhat.com/show_bug.cgi?id=2143028
libertinus-fonts - The Libertinus Fonts project: https://bugzilla.redhat.com/show_bug.cgi?id=2149626
hack-fonts - A typeface designed for source code: https://bugzilla.redhat.com/show_bug.cgi?id=2149686
sile - The SILE Typesetter: https://bugzilla.redhat.com/show_bug.cgi?id=2149698
Using a SILE official copy repository?