diff --git a/_service b/_service
index 2860c4e..b9510a3 100644
--- a/_service
+++ b/_service
@@ -1,19 +1,16 @@
-
- git
- https://github.com/sile-typesetter/sile.git
- v0.14.17
- @PARENT_TAG@+@TAG_OFFSET@
- v?(.*)\+0
- \1
-
+
+ https
+ github.com
+ /sile-typesetter/sile/releases/download/v0.15.3/sile-0.15.3.tar.zst
-
-
- *.tar
- zst
+
+ sile*.tar.zst
+ zst
+ true
+ true
-
+
diff --git a/sile-0.14.17.obscpio b/sile-0.14.17.obscpio
deleted file mode 100644
index e959883..0000000
--- a/sile-0.14.17.obscpio
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:bd1a57cf80a9ec41303cf556f1a51da1bb7bb66616ade80b9d72c2e1af35d191
-size 11584525
diff --git a/sile-0.15.3.tar.zst b/sile-0.15.3.tar.zst
new file mode 100644
index 0000000..079b7c0
--- /dev/null
+++ b/sile-0.15.3.tar.zst
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:88d24a70710e301ba3400351a82c5f28b49cebcd637b7a59d28b001a56b398c6
+size 3150046
diff --git a/sile-rpmlintrc b/sile-rpmlintrc
index ed6990c..1f1a78d 100644
--- a/sile-rpmlintrc
+++ b/sile-rpmlintrc
@@ -1,2 +1,2 @@
-# Without the Requires, lua54-zlib module isn't counted as a dependency
-addFilter("explicit-lib-dependency lua54-zlib")
+# Without the Requires, lua51-zlib module isn't counted as a dependency
+addFilter("explicit-lib-dependency lua51-zlib")
diff --git a/sile.changes b/sile.changes
index 41b4ae1..72dc9d9 100644
--- a/sile.changes
+++ b/sile.changes
@@ -1,3 +1,47 @@
+-------------------------------------------------------------------
+Tue Jun 18 17:16:10 UTC 2024 - Gordon Leung
+
+- Add export LUA_INCLUDE="$(pkg-config --cflags-only-I luajit)"
+ so that we are finally building with LuaJIT headers.
+ * I don't know why the configure file does not detect them by default
+ are they placed in a non-standard location?
+ * Since the headers exist I will close boo#1226307 I guess...
+
+-------------------------------------------------------------------
+Tue Jun 18 15:10:43 UTC 2024 - Soc Virnyl Estela
+
+- Point to use LuaJIT headers and use LuaJIT for Sile
+
+-------------------------------------------------------------------
+Fri Jun 14 16:42:20 UTC 2024 - Gordon Leung
+
+- Add zsh completion subpackage
+- Fixup rpmlintrc
+- Document that we are using lua51 includes because luajit includes
+ are missing from the openSUSE package
+ * boo#1226307
+- Switch back to gcc because clang fails on armv7l
+
+-------------------------------------------------------------------
+Fri Jun 14 10:20:53 UTC 2024 - Soc Virnyl Estela
+
+- Update to 0.15.3:
+ * A lot of breaking changes in the transition to 0.15.0
+ https://github.com/sile-typesetter/sile/releases/tag/v0.15.0
+ * Bug Fixes
+ - build: Distribute vendored compat-5.3.c source file
+ - build: Remove Git from configure dependencies
+ - classes: Correct order of operations when paragraphs are ended manually
+ - packages: Change retrograde package so 'target' version works as expected
+ - build: Bundle all assets in source distribution
+ - core: Allow LUA_PATH env var to take effect at runtime
+- New build dependencies
+ * cargo/rust
+ * clang to replicate upstream's choice of c compiler
+ * jq
+- Switch to lua51 for luajit. luajit only supports lua51 for now
+- New subpackages: fish and bash completions
+
-------------------------------------------------------------------
Thu May 23 09:56:22 UTC 2024 - Dominique Leuenberger
diff --git a/sile.obsinfo b/sile.obsinfo
index 0ef3a79..d94958d 100644
--- a/sile.obsinfo
+++ b/sile.obsinfo
@@ -1,4 +1,4 @@
name: sile
-version: 0.14.17
-mtime: 1707331766
-commit: 4276c710386866f7c2eff85c9f3fc1825be5636a
+version: 0.15.3
+mtime: 1718059936
+commit: 6404c537a68e9f3c77fc5f70f1a8b912e2c75708
diff --git a/sile.spec b/sile.spec
index eafde04..e0bf9d5 100644
--- a/sile.spec
+++ b/sile.spec
@@ -18,53 +18,55 @@
%bcond_without tests
Name: sile
-Version: 0.14.17
+Version: 0.15.3
Release: 0
Summary: Simon’s Improved Layout Engine
-Group: Productivity/Publishing
License: MIT
URL: https://sile-typesetter.org/
-Source0: sile-0.14.17.tar.zst
-Source1: sile-rpmlintrc
-Source2: LICENSE
+Source0: sile-%{version}.tar.zst
+Source1: vendor.tar.zst
+Source2: sile-rpmlintrc
+Source3: LICENSE
# Lua modules
-Requires: lua54
-BuildRequires: lua54-bit32
-BuildRequires: lua54-devel
-Requires: lua54-bit32
-BuildRequires: lua54-cassowary
-Requires: lua54-cassowary
-Requires: lua54-cldr
-BuildRequires: lua54-cliargs
-Requires: lua54-cliargs
-BuildRequires: lua54-cosmo
-Requires: lua54-cosmo
-BuildRequires: lua54-luaexpat
-Requires: lua54-luaexpat
-BuildRequires: lua54-luafilesystem
-Requires: lua54-luafilesystem
-BuildRequires: lua54-fluent
-Requires: lua54-fluent
-BuildRequires: lua54-linenoise
-Requires: lua54-linenoise
-BuildRequires: lua54-loadkit
-Requires: lua54-loadkit
-Requires: lua54-lpeg
-Requires: lua54-luaepnf
-BuildRequires: lua54-luarepl
-Requires: lua54-luarepl
-BuildRequires: lua54-luautf8
-Requires: lua54-luautf8
-Requires: lua54-penlight
-BuildRequires: lua54-luasec
-Requires: lua54-luasec
-Requires: lua54-luasocket
-BuildRequires: lua54-vstruct
-Requires: lua54-vstruct
-BuildRequires: lua54-zlib
-# Without this Requires, lua54-zlib isn't counted as a dependency
-Requires: lua54-zlib
+BuildRequires: luajit
+BuildRequires: luajit-devel
+BuildRequires: lua51-bit32
+Requires: lua51-bit32
+BuildRequires: lua51-cassowary
+Requires: lua51-cassowary
+Requires: lua51-cldr
+BuildRequires: lua51-cliargs
+Requires: lua51-cliargs
+BuildRequires: lua51-compat-5.3
+Requires: lua51-compat-5.3
+BuildRequires: lua51-cosmo
+Requires: lua51-cosmo
+BuildRequires: lua51-luaexpat
+Requires: lua51-luaexpat
+BuildRequires: lua51-luafilesystem
+Requires: lua51-luafilesystem
+BuildRequires: lua51-fluent
+Requires: lua51-fluent
+BuildRequires: lua51-linenoise
+Requires: lua51-linenoise
+BuildRequires: lua51-loadkit
+Requires: lua51-loadkit
+Requires: lua51-lpeg
+Requires: lua51-luaepnf
+BuildRequires: lua51-luarepl
+Requires: lua51-luarepl
+BuildRequires: lua51-luautf8
+Requires: lua51-luautf8
+Requires: lua51-penlight
+BuildRequires: lua51-luasec
+Requires: lua51-luasec
+Requires: lua51-luasocket
+BuildRequires: lua51-vstruct
+Requires: lua51-vstruct
+BuildRequires: lua51-zlib
+# Without this Requires, lua51-zlib isn't counted as a dependency
+Requires: lua51-zlib
# Other Dependencies
%if %{with tests}
@@ -73,7 +75,6 @@ BuildRequires: sil-gentium-fonts
%endif
BuildRequires: automake
BuildRequires: fontconfig-devel
-BuildRequires: libtool
Requires: fontconfig
BuildRequires: freetype2-devel
Requires: freetype2
@@ -85,9 +86,12 @@ BuildRequires: glibc-devel
Requires: glibc
# Harfbuzz's minimum version is now 6 https://github.com/sile-typesetter/sile/releases/tag/v0.14.8
BuildRequires: harfbuzz-devel >= 6.0.0
+BuildRequires: jq
BuildRequires: libicu-devel
Requires: icu
BuildRequires: libpng16-compat-devel
+BuildRequires: libtool
+BuildRequires: pkgconf-pkg-config
BuildRequires: zlib-devel
# Default font for SILE
# Without this, you have to specify the font every time you write a new .sil
@@ -99,6 +103,12 @@ Suggests: noto-sans-cjk-fonts
# Default mono font
Suggests: hack-fonts
+# Rust build dependencies. We don't need cargo packaging.
+# Sile has a flags we have to respect it
+BuildRequires: cargo
+# For tar scm lol
+BuildRequires: zstd
+
%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
@@ -118,7 +128,6 @@ This package contains the shared library for libtexpdf.
%package -n libtexpdf-devel
Summary: Development files for libtexpdf
-Group: Productivity/Publishing
License: GPL-2.0-or-later
Requires: libtexpdf0 = %{version}
@@ -126,17 +135,68 @@ Requires: libtexpdf0 = %{version}
A PDF library extracted from TeX's dvipdfmx. Used in software such as SILE.
This package contains the development files for libtexpdf.
-%prep
-%autosetup -p1
+%package bash-completion
+Summary: Bash Completion for %{name}
+Supplements: (%{name} and bash-completion)
+Requires: bash-completion
+Requires: sile
+BuildArch: noarch
-cp %{SOURCE2} .
+%description bash-completion
+Bash command-line completion support for %{name}.
+
+%package fish-completion
+Summary: Fish Completion for %{name}
+Supplements: (%{name} and fish)
+Requires: fish
+Requires: sile
+BuildArch: noarch
+
+%description fish-completion
+Fish command-line completion support for %{name}.
+
+%package zsh-completion
+Summary: Zsh Completion for %{name}
+Supplements: (%{name} and zsh)
+Requires: sile
+Requires: zsh
+BuildArch: noarch
+
+%description zsh-completion
+Zsh command-line completion support for %{name}.
+
+%prep
+%autosetup -p1 -a1
+cp %{SOURCE3} .
%build
-autoreconf -fiv
-%configure --disable-static --with-system-luarocks
+# The macros uses this but we have to respect what upstream config.toml
+# uses for the RUSTFLAGS
+unset LIBSSH2_SYS_USE_PKG_CONFIG
+export RUSTFLAGS=" -Clink-arg=-Wl,-z,relro,-z,now -C debuginfo=2 -C incremental=false -C strip=none"
+export CARGO_AUDITABLE=auditable
+export CARGO_FEATURE_VENDORED=1
+export LUA_INCLUDE="$(pkg-config --cflags-only-I luajit)"
+export CFLAGS="%optflags $(pkg-config --cflags-only-I luajit)"
+export CXXFLAGS="%optflags $(pkg-config --cflags-only-I luajit)"
+%configure \
+ --disable-static \
+ --disable-embeded-resources \
+ --with-system-lua-sources \
+ --with-system-luarocks
+
%make_build all
%install
+# The macros uses this but we have to respect what upstream config.toml
+# uses for the RUSTFLAGS
+unset LIBSSH2_SYS_USE_PKG_CONFIG
+export RUSTFLAGS=" -Clink-arg=-Wl,-z,relro,-z,now -C debuginfo=2 -C incremental=false -C strip=none"
+export CARGO_AUDITABLE=auditable
+export CARGO_FEATURE_VENDORED=1
+export LUA_INCLUDE="$(pkg-config --cflags-only-I luajit)"
+export CFLAGS="%optflags $(pkg-config --cflags-only-I luajit)"
+export CXXFLAGS="%optflags $(pkg-config --cflags-only-I luajit)"
%make_install
rm %{buildroot}%{_libdir}/*.la
%fdupes %{buildroot}
@@ -150,15 +210,16 @@ make check
%ldconfig_scriptlets -n libtexpdf-devel
%files
-%license %{_datadir}/licenses/sile/LICENSE
-%license %{_datadir}/licenses/sile/LICENSE-lunamark
+%license LICENSE.md
%doc %{_datadir}/doc/sile/*
%dir %{_datadir}/doc/sile
%dir %{_datadir}/licenses/sile
%{_bindir}/sile
+%{_bindir}/sile-lua
%{_datadir}/sile
%{_libdir}/sile
-%{_mandir}/man1/sile.1.gz
+%{_mandir}/man1/sile.1%{?ext_man}
+%{_mandir}/man1/sile-lua.1%{?ext_man}
%files -n libtexpdf0
%license LICENSE
@@ -168,4 +229,22 @@ make check
%{_includedir}/libtexpdf
%{_libdir}/libtexpdf.so
+%files bash-completion
+%license LICENSE.md
+%dir %{_datadir}/bash-completion
+%dir %{_datadir}/bash-completion/completions
+%{_datadir}/bash-completion/completions/%{name}
+
+%files fish-completion
+%license LICENSE.md
+%dir %{_datadir}/fish
+%dir %{_datadir}/fish/vendor_completions.d
+%{_datadir}/fish/vendor_completions.d/%{name}.fish
+
+%files zsh-completion
+%license LICENSE.md
+%dir %{_datadir}/zsh
+%dir %{_datadir}/zsh/site-functions
+%{_datadir}/zsh/site-functions/_%{name}
+
%changelog
diff --git a/vendor.tar.zst b/vendor.tar.zst
new file mode 100644
index 0000000..f018b92
--- /dev/null
+++ b/vendor.tar.zst
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:6e2f1df18c37e5c927d1d08f87624aac0b9248fa356cfc1cc0e61d665b788121
+size 14778379