Include xP and xS in the xK derivation

This commit is contained in:
Přemysl Eric Janouch 2023-07-03 04:41:09 +02:00
parent 8372c2a680
commit 3c5b114c56
Signed by: p
GPG Key ID: A0420B94F92B9493
1 changed files with 53 additions and 3 deletions

View File

@ -10,6 +10,8 @@ pkgs.stdenv.mkDerivation rec {
cmake cmake
pkg-config pkg-config
perl perl
] ++ lib.optionals full [
makeWrapper
]; ];
buildInputs = with pkgs; [ buildInputs = with pkgs; [
@ -24,8 +26,6 @@ pkgs.stdenv.mkDerivation rec {
libedit libedit
]; ];
# TODO: Try to integrate xP in the build.
# That might need a separate package. See https://nixos.wiki/wiki/Go.
src = if local then src = if local then
builtins.path { builtins.path {
path = ../${pname}/git; path = ../${pname}/git;
@ -45,10 +45,60 @@ pkgs.stdenv.mkDerivation rec {
"-DWANT_LIBEDIT=ON" "-DWANT_LIBEDIT=ON"
]; ];
xP = pkgs.buildGoModule rec {
pname = "xP";
inherit version src doCheck meta;
modRoot = "./${pname}/";
# vendorHash = pkgs.lib.fakeHash;
vendorHash = "sha256-TK3rivjzYZwG8bfia22iQO5ZKnBzeIidsHNl6jnQUio=";
mithril = pkgs.fetchurl {
url = "https://unpkg.com/mithril@2.2.3/mithril.js";
sha256 = "sha256-136Ow56fShnPfIrUvyjg4oR7tHXyGUkdzThYm+940AY=";
};
# This invokes a premature build that may miss compiler flags.
preBuild = ''
cp ${mithril} public/mithril.js
make
'';
installPhase = ''
runHook preInstall
mkdir -p $out/lib/xP $out/share/xP
mv $GOPATH/bin/xP $out/lib/xP/
cp -r public/ $out/share/xP/
runHook postInstall
'';
};
xS = pkgs.buildGoModule rec {
pname = "xS";
inherit version src doCheck meta;
modRoot = "./${pname}/";
vendorHash = null;
# This invokes a premature build that may miss compiler flags.
preBuild = ''
make
'';
};
# While we can't include them in this derivation, we can link to them.
postInstall = pkgs.lib.optionals full ''
makeWrapper ${xP}/lib/xP/xP $out/bin/xP --chdir ${xP}/share/xP/public
makeWrapper ${xS}/bin/xS $out/bin/xS
'';
doCheck = true; doCheck = true;
meta = with pkgs.lib; { meta = with pkgs.lib; {
description = "IRC daemon, bot, TUI client"; description = "IRC daemon, bot, TUI client"
+ optionals full " and its web frontend";
homepage = "https://git.janouch.name/p/${pname}"; homepage = "https://git.janouch.name/p/${pname}";
platforms = platforms.all; platforms = platforms.all;
license = licenses.bsd0; license = licenses.bsd0;