Files
mingw-sword-build/flake.nix
T
Greg Hellings 570aa6ae52 Add UCRT and fix timestamp
Add the UCRT build
Add support for UCRT on AArch64, but still need more help getting that
built with the zlib build failure
Convert to a run command, instead of a build command, so that the
timestamp of the tarball is more accurate
2025-02-06 14:38:55 -06:00

102 lines
3.3 KiB
Nix

# To update to the newest version of SWORD do the following:
# * Scroll down to the line where the "rev" is listed
# * Update that value to match the latest revision of SWORD's SVN trunk
# * Comment out the hash line below that
# * Run a `nix build` on the current target
# * When you receive an error about the hash mismatch, copy the correct value
# and paste it into the hash as the new value, then uncomment the hash
# * Run the build again. It won't need to re-fetch the sources, it will only
# execute the build
{
description = "Subversion SWORD builds.";
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
flake-parts.url = "github:hercules-ci/flake-parts";
flake-root.url = "github:srid/flake-root";
hooks.url = "github:cachix/git-hooks.nix";
};
outputs =
{ flake-parts, ... }@inputs:
flake-parts.lib.mkFlake { inherit inputs; } {
imports = [ inputs.flake-root.flakeModule ];
flake = {
# Universal things
overlays.default = _final: _prev: { };
};
systems = [
"x86_64-linux"
"aarch64-linux"
"aarch64-darwin"
];
perSystem =
{ pkgs, self', ... }@inputs':
{
_module.args.pkgs = import inputs.nixpkgs {
inherit (inputs') system;
overlays = [
(_: prev: {
icu = prev.icu76;
})
];
};
devShells.default = pkgs.mkShell {
# These will just be available
packages = with pkgs; [ pre-commit ];
buildInputs = self'.checks.pre-commit.enabledPackages;
inherit (self'.checks.pre-commit) shellHook;
};
checks = {
pre-commit = inputs.hooks.lib.${inputs'.system}.run {
src = ./.;
hooks = {
check-added-large-files.enable = true;
check-case-conflicts.enable = true;
check-merge-conflicts.enable = true;
check-symlinks.enable = true;
deadnix.enable = true;
end-of-file-fixer.enable = true;
fix-byte-order-marker.enable = true;
mixed-line-endings.enable = true;
nixfmt-rfc-style.enable = true;
trim-trailing-whitespace.enable = true;
};
};
};
# This is not special, this is just flakes
packages =
let
tar =
win:
let
svnSword = (
win.sword.overrideAttrs {
src = pkgs.fetchsvn {
url = "https://svn.crosswire.org/svn/sword/trunk";
rev = "3895";
hash = "sha256-ju6TsfiAUquXbost6PzStHDLfvOJTNON/iSIupi6IOc=";
};
}
);
in
pkgs.writeShellScriptBin "package-sword" ''
out=$(pwd)
pushd ${svnSword}
${pkgs.gnutar}/bin/tar cvhaf $out/sword.tar.xz *
'';
in
with pkgs.pkgsCross;
{
default = tar mingwW64;
x86 = tar mingwW64;
ucrt = tar ucrt64;
ucrtAarch = tar ucrtAarch64;
};
};
};
}