@@ -1,35 +1,42 @@ -{stdenv, m4, yasm}: +{stdenv, m4, yasm, cmark, groff}: stdenv.mkDerivation { name = "libk"; version = "0.0.0"; - src = stdenv.lib.cleanSource ./.; + src = stdenv.lib.cleanSource ../.; - nativeBuildInputs = [ m4 yasm ]; + # 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 sh" "${stdenv.shell}" - substituteInPlace global/build-manpage.sh --replace "/usr/bin/env sh" "${stdenv.shell}" + 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; - # This doesn't seem to work anyways? + # 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/lexi/libk; - changelog = "https://c.hale.su/lexi/libk/timeline"; + 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; }; }