Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Build Fedora packages #872

Open
alerque opened this issue May 25, 2020 · 57 comments
Open

Build Fedora packages #872

alerque opened this issue May 25, 2020 · 57 comments
Assignees
Labels
todo tooling Build tooling, release management, and packaging processes
Milestone

Comments

@alerque
Copy link
Member

alerque commented May 25, 2020

Using a SILE official copy repository?

@alerque alerque added todo tooling Build tooling, release management, and packaging processes labels May 25, 2020
@hegjon
Copy link
Contributor

hegjon commented Nov 14, 2022

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

@hegjon
Copy link
Contributor

hegjon commented Nov 14, 2022

Dependency lua-cldr is also added for package review https://bugzilla.redhat.com/show_bug.cgi?id=2142653

@alerque
Copy link
Member Author

alerque commented Nov 15, 2022

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.

@hegjon
Copy link
Contributor

hegjon commented Nov 15, 2022

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/

@hegjon
Copy link
Contributor

hegjon commented Nov 15, 2022

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.

@alerque
Copy link
Member Author

alerque commented Nov 15, 2022

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.

@hegjon
Copy link
Contributor

hegjon commented Nov 15, 2022

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.

@alerque
Copy link
Member Author

alerque commented Nov 15, 2022

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.

@hegjon
Copy link
Contributor

hegjon commented Nov 15, 2022

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

@hegjon
Copy link
Contributor

hegjon commented Nov 15, 2022

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

@hegjon
Copy link
Contributor

hegjon commented Nov 16, 2022

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

@alerque
Copy link
Member Author

alerque commented Nov 16, 2022

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.

@hegjon
Copy link
Contributor

hegjon commented Nov 16, 2022

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

@hegjon
Copy link
Contributor

hegjon commented Nov 16, 2022

The build log, including commands and flags can be found here: https://copr.fedorainfracloud.org/coprs/jonny/SILE/build/5043639/

@alerque
Copy link
Member Author

alerque commented Nov 17, 2022

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.

@hegjon
Copy link
Contributor

hegjon commented Nov 18, 2022

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

@alerque
Copy link
Member Author

alerque commented Nov 18, 2022

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.

alerque added a commit to sile-typesetter/sile-typesetter.github.io that referenced this issue Nov 18, 2022
Allows examples to be built from *either* the project root *or* the
examples directory without running into relative path issues.

See sile-typesetter/sile#872 (comment)
@alerque
Copy link
Member Author

alerque commented Nov 18, 2022

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.

@hegjon
Copy link
Contributor

hegjon commented Nov 18, 2022

Ah, makes sense, I downloaded snakes from the home page, I did not think about that it was referencing a image

@alerque
Copy link
Member Author

alerque commented Nov 18, 2022

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.

@alerque alerque added this to the v0.14.x milestone Nov 19, 2022
@alerque
Copy link
Member Author

alerque commented Nov 19, 2022

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.

@hegjon
Copy link
Contributor

hegjon commented Nov 19, 2022

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.

@alerque
Copy link
Member Author

alerque commented Nov 19, 2022

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...

@alerque
Copy link
Member Author

alerque commented Nov 19, 2022

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?

@hegjon
Copy link
Contributor

hegjon commented Nov 19, 2022

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.

@hegjon
Copy link
Contributor

hegjon commented Nov 20, 2022

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

@alerque
Copy link
Member Author

alerque commented Nov 20, 2022

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.

@alerque
Copy link
Member Author

alerque commented Nov 20, 2022

(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.)

@hegjon
Copy link
Contributor

hegjon commented Nov 20, 2022

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

@hegjon
Copy link
Contributor

hegjon commented Nov 20, 2022

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.

@hegjon
Copy link
Contributor

hegjon commented Nov 20, 2022

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/

@hegjon
Copy link
Contributor

hegjon commented Nov 20, 2022

There is a new SILE build on COPR, changelog:

  • Version 0.14.5
  • Changed fonts from requires to recommends and suggests
  • Suggests on libertinus built from github instead of via texlive
  • Removed bit32 dependency since we are running on Lua 5.4.4

@hegjon
Copy link
Contributor

hegjon commented Nov 21, 2022

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/

@hegjon
Copy link
Contributor

hegjon commented Nov 21, 2022

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?

@alerque
Copy link
Member Author

alerque commented Nov 21, 2022

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.

@alerque
Copy link
Member Author

alerque commented Nov 21, 2022

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.

@hegjon
Copy link
Contributor

hegjon commented Nov 21, 2022

Ok, that makes sense, then I will not spend any time on trying to "fix" it

@alerque
Copy link
Member Author

alerque commented Nov 24, 2022

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.

@hegjon
Copy link
Contributor

hegjon commented Nov 24, 2022

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.

[1] https://docs.fedoraproject.org/en-US/packaging-guidelines/FontsPolicy/#_dependencies_to_font_packages_in_other_packages

@hegjon
Copy link
Contributor

hegjon commented Nov 30, 2022

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

https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/message/NPO6REEV6NZOG2E2434QA5VRTZ5WCLEO/

@hegjon
Copy link
Contributor

hegjon commented Mar 15, 2023

The process is slow due to all new packages needs to be peer reviewed and I do not have time to do review swaps.

The remaining packages:

sile - The SILE Typesetter:
https://bugzilla.redhat.com/show_bug.cgi?id=2149698

lua-fluent - Lua implementation of Project Fluent:
https://bugzilla.redhat.com/show_bug.cgi?id=2142798

lua-linenoise - A binding for the linenoise command line library:
https://bugzilla.redhat.com/show_bug.cgi?id=2143020

lua-loadkit - Loadkit allows you to load arbitrary files within the Lua package path:
https://bugzilla.redhat.com/show_bug.cgi?id=2143028

lua-utf8 - A UTF-8 support module for Lua:
https://bugzilla.redhat.com/show_bug.cgi?id=2143391

If you are interested and have time, then @alerque can be co-maintainer for the new packages that depends on SILE. I can also sponsor you to be a Fedora maintainer.

See https://docs.fedoraproject.org/en-US/fesco/Packager_sponsor_policy/#comaintainer for more details

@alerque
Copy link
Member Author

alerque commented Oct 23, 2023

@hegjon Reviewing the dependencies it looks like they have all been merged. Are there any next steps we can take on the main SILE package now?

And yes if (probably after it initially merges) if you want to open an issue to add me as a co-maintainer I'd be happy to apply just to reduce the bus factor, but I'm glad an active Fedora user is spear-heading the packaging.

@hegjon
Copy link
Contributor

hegjon commented Oct 25, 2023

Yes, all the dependencies should have been added to the official Fedora repository.

The review of the final SILE package halted just before I moved my family from Norway to Crete in Greece, so it got down prioritized.

The peer reviewer wanted me to look if it was possible to unbundle libtexpdf. Do you mind giving feedback as upstream to the issue tracker [1]?

[1] https://bugzilla.redhat.com/show_bug.cgi?id=2149698

@alerque
Copy link
Member Author

alerque commented Oct 26, 2023

Hey, that puts you a lot closer to me! Still too far to swim, but...

It is possible to unbundle libtexpdf, but it is not actually setup to do that so you'd have to hack the makefiles and shuffle some stuff around. I commented on the bugzilla issue too, but the TL;DR version is that while we'd like the project to be separate one day it is currently not released with any versioning or a working independent build system, it is only used inside SILE and SILE releases with a pinned SHA of the matching library repo. Once we have separate versioning, build systems, and releases then I would say it should be unbundled.

@hegjon
Copy link
Contributor

hegjon commented Oct 27, 2023

Hey, that puts you a lot closer to me! Still too far to swim, but...

Nice, let me know if you plan to go to Crete some day!

I commented on the bugzilla issue too.

Thanks, I will update the review when 0.14.12 have been built.

@alerque
Copy link
Member Author

alerque commented Dec 11, 2023

@hegjon Looks like the Fedora review system might be waiting for a poke from your side?

@alerque
Copy link
Member Author

alerque commented Sep 5, 2024

It's coming: package!

The first builds to hit stable repos will be v0.14.17 because it was much easier to proceed with the review process based on the package that was already working with all the dependencies already approved, but we'll be looking into adding any necessary Rust dependency packages and updating to v0.15.x soon after packages actually land.

I'll probably hold off on the documentation and/or blog post announcement until the current version lands. In other news it looks like said announcement may also include Void Linux packages....finally back on their feet after being stuck on v0.9.x!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
todo tooling Build tooling, release management, and packaging processes
Projects
None yet
Development

No branches or pull requests

2 participants