Working sile for darwin
This commit is contained in:
parent
f9434e85ac
commit
acf75faa29
@ -89,8 +89,7 @@
|
|||||||
coreutils
|
coreutils
|
||||||
watch
|
watch
|
||||||
iterm2
|
iterm2
|
||||||
# TODO(jwall): Find a non broken sile package version and add it as an overlay
|
inputs.sile
|
||||||
# sile # this is currently broken on darwin: https://github.com/NixOS/nixpkgs/issues/23018
|
|
||||||
# TODO add sonic-pi here if it supports the arch
|
# TODO add sonic-pi here if it supports the arch
|
||||||
];
|
];
|
||||||
|
|
||||||
|
47
nix/darwin/flake.lock
generated
47
nix/darwin/flake.lock
generated
@ -132,6 +132,21 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"flake-utils_5": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1649676176,
|
||||||
|
"narHash": "sha256-OWKJratjt2RW151VUlJPRALb7OU2S5s+f0vLj4o1bHM=",
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"rev": "a4b154ebbdc88c8498a5c7b01589addc9e9cb678",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"naersk": {
|
"naersk": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": "nixpkgs"
|
"nixpkgs": "nixpkgs"
|
||||||
@ -226,13 +241,28 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"nixpkgs_5": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1651545648,
|
||||||
|
"narHash": "sha256-7f1JYFHtfTOvois5LdXrKXthjb6rE9i8ZxWDQyzYKAk=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "24c33ab7952544ad355d0677c9eea931b23f371c",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"id": "nixpkgs",
|
||||||
|
"type": "indirect"
|
||||||
|
}
|
||||||
|
},
|
||||||
"root": {
|
"root": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"darwin": "darwin",
|
"darwin": "darwin",
|
||||||
"durnitisp": "durnitisp",
|
"durnitisp": "durnitisp",
|
||||||
"nixpkgs": "nixpkgs_2",
|
"nixpkgs": "nixpkgs_2",
|
||||||
"runwhen": "runwhen",
|
"runwhen": "runwhen",
|
||||||
"rust-overlay": "rust-overlay_2"
|
"rust-overlay": "rust-overlay_2",
|
||||||
|
"sile": "sile"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"runwhen": {
|
"runwhen": {
|
||||||
@ -299,6 +329,21 @@
|
|||||||
"repo": "rust-overlay",
|
"repo": "rust-overlay",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"sile": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-utils": "flake-utils_5",
|
||||||
|
"nixpkgs": "nixpkgs_5"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"narHash": "sha256-5JapwZZF3DBmVXtyK8gzDgaquNMgzS8l5+nR8lMm9uk=",
|
||||||
|
"path": "./../sile",
|
||||||
|
"type": "path"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"path": "./../sile",
|
||||||
|
"type": "path"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"root": "root",
|
"root": "root",
|
||||||
|
@ -11,9 +11,10 @@
|
|||||||
url = "github:oxalica/rust-overlay";
|
url = "github:oxalica/rust-overlay";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
|
sile.url = "path:./../sile";
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs = {self, nixpkgs, darwin, runwhen, durnitisp, rust-overlay, ...}:
|
outputs = {self, nixpkgs, darwin, runwhen, durnitisp, rust-overlay, sile }:
|
||||||
let
|
let
|
||||||
forSystem = (system:
|
forSystem = (system:
|
||||||
let
|
let
|
||||||
@ -29,11 +30,12 @@
|
|||||||
durnitisp = durnitisp.defaultPackage."${system}";
|
durnitisp = durnitisp.defaultPackage."${system}";
|
||||||
rust-overlay = rust-overlay.overlay;
|
rust-overlay = rust-overlay.overlay;
|
||||||
buildah = pkgs.buildah;
|
buildah = pkgs.buildah;
|
||||||
|
sile = sile.defaultPackage."${system}";
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
darwinConfigurations."jeremys-mbp" = forSystem "aarch64-darwin";
|
darwinConfigurations."jeremys-mbp" = forSystem "aarch64-darwin";
|
||||||
darwinConfigurations."jeremys-mbpx86" = forSystem "x86_64-darwin";
|
darwinConfigurations."jeremys-mbpx86" = forSystem "x86_64-darwin";
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
41
nix/sile/flake.lock
generated
Normal file
41
nix/sile/flake.lock
generated
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
{
|
||||||
|
"nodes": {
|
||||||
|
"flake-utils": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1649676176,
|
||||||
|
"narHash": "sha256-OWKJratjt2RW151VUlJPRALb7OU2S5s+f0vLj4o1bHM=",
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"rev": "a4b154ebbdc88c8498a5c7b01589addc9e9cb678",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1651545648,
|
||||||
|
"narHash": "sha256-7f1JYFHtfTOvois5LdXrKXthjb6rE9i8ZxWDQyzYKAk=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "24c33ab7952544ad355d0677c9eea931b23f371c",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"id": "nixpkgs",
|
||||||
|
"type": "indirect"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"root": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-utils": "flake-utils",
|
||||||
|
"nixpkgs": "nixpkgs"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"root": "root",
|
||||||
|
"version": 7
|
||||||
|
}
|
15
nix/sile/flake.nix
Normal file
15
nix/sile/flake.nix
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
{
|
||||||
|
inputs = {
|
||||||
|
nixpkgs.url = "nixpkgs";
|
||||||
|
flake-utils.url = "github:numtide/flake-utils";
|
||||||
|
};
|
||||||
|
|
||||||
|
outputs = {self, nixpkgs, flake-utils}:
|
||||||
|
flake-utils.lib.eachDefaultSystem (system:
|
||||||
|
let
|
||||||
|
pkgs = import nixpkgs { inherit system; };
|
||||||
|
sile = with pkgs; callPackage ./package.nix { };
|
||||||
|
in {
|
||||||
|
defaultPackage = sile;
|
||||||
|
});
|
||||||
|
}
|
117
nix/sile/package.nix
Normal file
117
nix/sile/package.nix
Normal file
@ -0,0 +1,117 @@
|
|||||||
|
{ lib, stdenv
|
||||||
|
, darwin
|
||||||
|
, fetchurl
|
||||||
|
, makeBinaryWrapper
|
||||||
|
, pkg-config
|
||||||
|
, poppler_utils
|
||||||
|
, gitMinimal
|
||||||
|
, harfbuzz
|
||||||
|
, icu
|
||||||
|
, fontconfig
|
||||||
|
, lua
|
||||||
|
, libiconv
|
||||||
|
, makeFontsConf
|
||||||
|
, gentium
|
||||||
|
}:
|
||||||
|
|
||||||
|
let
|
||||||
|
luaEnv = lua.withPackages(ps: with ps; [
|
||||||
|
cassowary
|
||||||
|
cosmo
|
||||||
|
compat53
|
||||||
|
linenoise
|
||||||
|
lpeg
|
||||||
|
lua-zlib
|
||||||
|
lua_cliargs
|
||||||
|
luaepnf
|
||||||
|
luaexpat
|
||||||
|
luafilesystem
|
||||||
|
luarepl
|
||||||
|
luasec
|
||||||
|
luasocket
|
||||||
|
luautf8
|
||||||
|
penlight
|
||||||
|
stdlib
|
||||||
|
vstruct
|
||||||
|
]);
|
||||||
|
in
|
||||||
|
|
||||||
|
stdenv.mkDerivation rec {
|
||||||
|
pname = "sile";
|
||||||
|
version = "0.12.5";
|
||||||
|
|
||||||
|
src = fetchurl {
|
||||||
|
url = "https://github.com/sile-typesetter/sile/releases/download/v${version}/${pname}-${version}.tar.xz";
|
||||||
|
sha256 = "0z9wdiqwarysh3lhxss3w53vq58ml46bdi9ymr853kfl7m4gz5yy";
|
||||||
|
};
|
||||||
|
|
||||||
|
configureFlags = [
|
||||||
|
"--with-system-luarocks"
|
||||||
|
"--with-manual"
|
||||||
|
];
|
||||||
|
|
||||||
|
nativeBuildInputs = [
|
||||||
|
gitMinimal
|
||||||
|
pkg-config
|
||||||
|
makeBinaryWrapper
|
||||||
|
];
|
||||||
|
buildInputs = [
|
||||||
|
harfbuzz
|
||||||
|
icu
|
||||||
|
fontconfig
|
||||||
|
libiconv
|
||||||
|
luaEnv
|
||||||
|
]
|
||||||
|
++ lib.optional stdenv.isDarwin darwin.apple_sdk.frameworks.AppKit
|
||||||
|
;
|
||||||
|
checkInputs = [
|
||||||
|
poppler_utils
|
||||||
|
];
|
||||||
|
|
||||||
|
preConfigure = ''
|
||||||
|
patchShebangs build-aux/*.sh
|
||||||
|
'' + lib.optionalString stdenv.isDarwin ''
|
||||||
|
sed -i -e 's|@import AppKit;|#import <AppKit/AppKit.h>|' src/macfonts.m
|
||||||
|
'';
|
||||||
|
|
||||||
|
NIX_LDFLAGS = lib.optionalString stdenv.isDarwin "-framework AppKit";
|
||||||
|
|
||||||
|
FONTCONFIG_FILE = makeFontsConf {
|
||||||
|
fontDirectories = [
|
||||||
|
gentium
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
#TODO(jwall): Eventually we shouldn't need this anymore
|
||||||
|
#doCheck = true;
|
||||||
|
|
||||||
|
enableParallelBuilding = true;
|
||||||
|
|
||||||
|
preBuild = lib.optionalString stdenv.cc.isClang ''
|
||||||
|
substituteInPlace libtexpdf/dpxutil.c \
|
||||||
|
--replace "ASSERT(ht && ht->table && iter);" "ASSERT(ht && iter);"
|
||||||
|
'';
|
||||||
|
|
||||||
|
# Hack to avoid TMPDIR in RPATHs.
|
||||||
|
preFixup = ''rm -rf "$(pwd)" && mkdir "$(pwd)" '';
|
||||||
|
|
||||||
|
outputs = [ "out" "doc" "man" "dev" ];
|
||||||
|
|
||||||
|
meta = with lib; {
|
||||||
|
description = "A typesetting system";
|
||||||
|
longDescription = ''
|
||||||
|
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.
|
||||||
|
'';
|
||||||
|
homepage = "https://sile-typesetter.org";
|
||||||
|
changelog = "https://github.com/sile-typesetter/sile/raw/v${version}/CHANGELOG.md";
|
||||||
|
platforms = platforms.unix;
|
||||||
|
license = licenses.mit;
|
||||||
|
};
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user