{stdenv, m4, yasm, cmark, groff}:
stdenv.mkDerivation {
name = "libk";
version = "0.0.0";
src = stdenv.lib.cleanSource ../.;
# Need to figure out how split builds work... but that also kinda needs
# an install script first, so.
nativeBuildInputs = [ m4 yasm cmark groff ];
# TODO: maybe make this more generic? IIRC I couldn't use the
# patch-everything whatever, for some reason. It also probably should be in
# an earlier build step.
buildPhase = ''
substituteInPlace global/build-id.sh --replace "/usr/bin/env bash" "${stdenv.shell}"
substituteInPlace global/build-manpage.sh --replace "/usr/bin/env bash" "${stdenv.shell}"
env os=lin arch=x86 bits=64 to=$prefix debug=yes \
bash build.sh
'';
# No proper install yet...
dontInstall = true;
# Not sure if these work or are needed, but better safe than sorry, here.
dontStrip = true;
dontPatchELF = true;
# I think there's supposed to be a stack check fail fn now, so maybe this
# is okay? TODO: test if this is still needed.
hardeningDisable = [ "stackprotector" ];
meta = with stdenv.lib; {
description = "A modern replacement for libc";
homepage = https://c.hale.su/libk;
changelog = "https://c.hale.su/libk/timeline";
license = licenses.agpl3;
# Doesn't actually match w/ supported platforms, but...
platforms = platforms.unix;
};
}