sile: 0.14.17 -> 0.15.5

Diff: https://github.com/sile-typesetter/sile/compare/None...v0.15.5

Changelog: https://github.com/sile-typesetter/sile/raw/v0.15.5/CHANGELOG.md

Cleanup many unnecessary hooks.
This commit is contained in:
Doron Behar 2024-11-04 10:23:25 +02:00
parent 6b90fbc91f
commit 5a37bac414

View File

@ -1,12 +1,14 @@
{
lib,
stdenv,
fetchurl,
fetchzip,
# nativeBuildInputs
gitMinimal,
pkg-config,
makeWrapper,
jq,
cargo,
rustc,
rustPlatform,
# buildInputs
lua,
@ -14,6 +16,8 @@
icu,
fontconfig,
libiconv,
stylua,
typos,
darwin,
# FONTCONFIG_FILE
makeFontsConf,
@ -26,23 +30,27 @@
stdenv.mkDerivation (finalAttrs: {
pname = "sile";
version = "0.14.17";
version = "0.15.5";
src = fetchurl {
url = "https://github.com/sile-typesetter/sile/releases/download/v${finalAttrs.version}/sile-${finalAttrs.version}.tar.xz";
sha256 = "sha256-f4m+3s7au1FoJQrZ3YDAntKJyOiMPQ11bS0dku4GXgQ=";
src = fetchzip {
url = "https://github.com/sile-typesetter/sile/releases/download/v${finalAttrs.version}/sile-${finalAttrs.version}.zip";
sha256 = "sha256-zP+MGCXGEg19U6tMrHIdgAAfKQT21vFtmoEROXgxUB0=";
};
configureFlags = [
"--with-system-luarocks"
"--with-manual"
];
cargoDeps = rustPlatform.fetchCargoTarball {
inherit (finalAttrs) src;
dontConfigure = true;
hash = "sha256-hmgDG29C5JfQX2acMr8c3lmswa1u5XHauRWFd4QGmOo=";
};
nativeBuildInputs = [
gitMinimal
pkg-config
makeWrapper
jq
cargo
rustc
rustPlatform.cargoSetupHook
];
buildInputs =
[
finalAttrs.finalPackage.passthru.luaEnv
@ -50,10 +58,55 @@ stdenv.mkDerivation (finalAttrs: {
icu
fontconfig
libiconv
stylua
typos
]
++ lib.optionals stdenv.hostPlatform.isDarwin [
darwin.apple_sdk.frameworks.AppKit
];
configureFlags =
[
# Nix will supply all the Lua dependencies, so stop the build system from
# bundling vendored copies of them.
"--with-system-lua-sources"
"--with-system-luarocks"
# The automake check target uses pdfinfo to confirm the output of a test
# run, and uses autotools to discover it. This flake build eschews that
# test because it is run from the source directory but the binary is
# already built with system paths, so it can't be checked under Nix until
# after install. After install the Makefile isn't available of course, so
# we have our own copy of it with a hard coded path to `pdfinfo`. By
# specifying some binary here we skip the configure time test for
# `pdfinfo`, by using `false` we make sure that if it is expected during
# build time we would fail to build since we only provide it at test time.
"PDFINFO=false"
]
++ lib.optionals (!lua.pkgs.isLuaJIT) [
"--without-luajit"
];
outputs = [
"out"
"doc"
"man"
"dev"
];
# TODO: At some point, upstream should support installing the pre-built
# manual automatically
postInstall = ''
install -Dm0644 documentation/sile.pdf $out/share/doc/sile/manual.pdf
'';
FONTCONFIG_FILE = makeFontsConf {
fontDirectories = [
gentium
];
};
enableParallelBuilding = true;
passthru = {
luaEnv = lua.withPackages (
ps:
@ -61,7 +114,6 @@ stdenv.mkDerivation (finalAttrs: {
[
cassowary
cldr
cosmo
fluent
linenoise
loadkit
@ -77,6 +129,12 @@ stdenv.mkDerivation (finalAttrs: {
luautf8
penlight
vstruct
# lua packages needed for testing
busted
luacheck
# packages needed for building api docs
ldoc
# NOTE: Add lua packages here, to change the luaEnv also read by `flake.nix`
]
++ lib.optionals (lib.versionOlder lua.luaversion "5.2") [
bit32
@ -85,9 +143,10 @@ stdenv.mkDerivation (finalAttrs: {
compat53
]
);
# Copied from Makefile.am
tests.test = lib.optionalAttrs (!(stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isAarch64)) (
runCommand "sile-test"
runCommand "${finalAttrs.pname}-test"
{
nativeBuildInputs = [
poppler_utils
@ -103,45 +162,6 @@ stdenv.mkDerivation (finalAttrs: {
);
};
postPatch =
''
patchShebangs build-aux/*.sh
''
+ lib.optionalString stdenv.hostPlatform.isDarwin ''
sed -i -e 's|@import AppKit;|#import <AppKit/AppKit.h>|' src/macfonts.m
'';
NIX_LDFLAGS = lib.optionalString stdenv.hostPlatform.isDarwin "-framework AppKit";
FONTCONFIG_FILE = makeFontsConf {
fontDirectories = [
gentium
];
};
enableParallelBuilding = true;
preBuild = lib.optionalString stdenv.cc.isClang ''
substituteInPlace libtexpdf/dpxutil.c \
--replace "ASSERT(ht && ht->table && iter);" "ASSERT(ht && iter);"
'';
# remove forbidden references to $TMPDIR
preFixup = lib.optionalString stdenv.hostPlatform.isLinux ''
for f in "$out"/bin/*; do
if isELF "$f"; then
patchelf --shrink-rpath --allowed-rpath-prefixes "$NIX_STORE" "$f"
fi
done
'';
outputs = [
"out"
"doc"
"man"
"dev"
];
meta = {
description = "Typesetting system";
longDescription = ''