X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=flakes%2Fmypackages%2Fpkgs%2Fwebapps%2Fmantisbt_2%2Fdefault.nix;h=466595d04095c06ae69ca57b5283b2f51b4b4492;hb=1a64deeb894dc95e2645a75771732c6cc53a79ad;hpb=fa25ffd4583cc362075cd5e1b4130f33306103f0;p=perso%2FImmae%2FConfig%2FNix.git diff --git a/flakes/mypackages/pkgs/webapps/mantisbt_2/default.nix b/flakes/mypackages/pkgs/webapps/mantisbt_2/default.nix new file mode 100644 index 0000000..466595d --- /dev/null +++ b/flakes/mypackages/pkgs/webapps/mantisbt_2/default.nix @@ -0,0 +1,44 @@ +{ mantis_config ? "/etc/mantisbt/config_inc.php", stdenv, fetchurl, lib, callPackage}: +let + pluginNames = [ "slack" "source-integration" ]; + allPlugins = lib.attrsets.genAttrs pluginNames + (name: callPackage (./plugins + "/${name}") {}); + toPassthru = pkg: plugins: { + inherit plugins allPlugins; + pluginNames = map (n: n.pluginName) plugins; + withPlugins = withPlugins pkg; + }; + withPlugins = pkg: toPlugins: + let + plugins = toPlugins allPlugins; + toInstallPlugin = n: + if builtins.hasAttr "selector" n then + "ln -sf ${n}/${n.selector} $out/plugins/" + else + "ln -sf ${n} $out/plugins/${n.pluginName}"; + newMantisbt = pkg.overrideAttrs(old: { + installPhase = old.installPhase + "\n" + builtins.concatStringsSep "\n" (map toInstallPlugin plugins); + passthru = toPassthru newMantisbt (pkg.plugins ++ plugins); + }); + in newMantisbt; + package = stdenv.mkDerivation rec { + name = "mantisbt-${version}"; + version = "2.21.0"; + src = fetchurl { + url = "https://downloads.sourceforge.net/project/mantisbt/mantis-stable/${version}/${name}.tar.gz"; + sha256 = "13lx569dp1gibq5daqp7dj6gsqic85rrix1s7xkp60gwpzk8wiw5"; + }; + patches = [ + ./bug_report.php.diff + ./bug_report_page.php.diff + ./bugnote_add.php.diff + ./bugnote_add_inc.php.diff + ]; + installPhase = '' + cp -a . $out + ln -s ${mantis_config} $out/config/config_inc.php + ''; + + passthru = toPassthru package []; + }; +in package