File sile.spec of Package sile
#
# spec file for package sile
#
Name: sile
Version: 0.15.7
Release: 0
Summary: Simon’s Improved Layout Engine
License: MIT
URL: https://sile-typesetter.org/
Source0: sile-%{version}.tar.zst
Source1: vendor.tar.zst
Source2: sile-rpmlintrc
# Lua modules
BuildRequires: luajit
BuildRequires: lua51-bit32
BuildRequires: lua51-luarocks
BuildRequires: luajit-devel
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
Requires: lua51-zlib
# Other Dependencies for all builds
BuildRequires: sil-gentium-fonts
BuildRequires: automake
BuildRequires: fontconfig-devel
Requires: fontconfig
BuildRequires: freetype2-devel
Requires: freetype2
BuildRequires: fdupes
BuildRequires: gcc-objc
BuildRequires: git-core
Requires: git-core
BuildRequires: glibc-devel
Requires: glibc
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
Recommends: sil-gentium-fonts
Suggests: libertinus-fonts
Suggests: noto-sans-cjk-fonts
Suggests: hack-fonts
# Rust dependencies
BuildRequires: cargo
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
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.
%package -n libtexpdf0
Summary: A PDF library extracted from TeX's dvipdfmx
Group: Productivity/Publishing
License: GPL-2.0-or-later
%description -n libtexpdf0
A PDF library extracted from TeX's dvipdfmx. Used in software such as SILE.
This package contains the shared library for libtexpdf.
%package -n libtexpdf-devel
Summary: Development files for libtexpdf
License: GPL-2.0-or-later
Requires: libtexpdf0 = %{version}
%description -n libtexpdf-devel
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 -a1
%build
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="-I/usr/include/luajit-5_1-2.1"
export CFLAGS="%optflags $(pkg-config --cflags-only-I luajit)"
export CXXFLAGS="%optflags $(pkg-config --cflags-only-I luajit)"
fc-cache -fv # Regenerate font cache
fc-list | grep -i "Gentium Plus" || {
echo "Gentium Plus font not detected, installation missing." >&2
exit 1
}
%configure \
--disable-static \
--disable-embeded-resources \
--with-system-lua-sources \
--with-system-luarocks
%make_build all
%install
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}
%files
%license LICENSE.md
%doc %{_datadir}/doc/sile/*
%{_bindir}/sile
%{_bindir}/sile-lua
%{_datadir}/sile
%{_libdir}/sile
%{_mandir}/man1/sile.1%{?ext_man}
%{_mandir}/man1/sile-lua.1%{?ext_man}
%files -n libtexpdf0
%license %{_datadir}/licenses/libtexpdf/LICENSE
%{_libdir}/libtexpdf.so.0*
%files -n libtexpdf-devel
%{_includedir}/libtexpdf
%{_libdir}/libtexpdf.so