diff options
Diffstat (limited to 'pkgs/mediawiki/default.nix')
-rw-r--r-- | pkgs/mediawiki/default.nix | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/pkgs/mediawiki/default.nix b/pkgs/mediawiki/default.nix new file mode 100644 index 0000000..e5a5910 --- /dev/null +++ b/pkgs/mediawiki/default.nix @@ -0,0 +1,60 @@ +{ lib, pkgs }: + +let + inherit (builtins) elemAt; + inherit (lib) splitString concatMapStrings; + + bundled = [ + "Cite" "ConfirmEdit" "Gadgets" "ImageMap" "InputBox" "Interwiki" + "LocalisationUpdate" "Nuke" "ParserFunctions" "PdfHandler" "Poem" + "Renameuser" "SpamBlacklist" "SyntaxHighlight_GeSHi" "TitleBlacklist" + "WikiEditor" + ]; + +in pkgs.stdenv.mkDerivation rec { + version = "1.23.17"; + name = "mediawiki-${version}"; + + src = let + v = splitString "." version; + minor = "${elemAt v 0}.${elemAt v 1}"; + in pkgs.fetchurl { + url = "https://releases.wikimedia.org/mediawiki/${minor}/${name}.tar.gz"; + sha256 = "1fxymqirjj2sfbrgcgxig9k6ik5ndw9qq9qn91xm9cnpjksc079x"; + }; + + patches = [ + ./T122487.patch + ./file-backend-default-mode.patch + ]; + + outputs = [ "out" ] ++ bundled; + + installPhase = '' + cp -a . $out + + rm -rf $out/tests + rm -rf $out/mw-config + rm -rf $out/maintenance/dev + rm -rf $out/maintenance/hiphop + + sed -i \ + -e 's|/bin/bash|${pkgs.bash}/bin/bash|g' \ + -e 's|/usr/bin/timeout|${pkgs.coreutils}/bin/timeout|g' \ + $out/includes/limit.sh \ + $out/includes/GlobalFunctions.php + + cat <<'EOF' > $out/LocalSettings.php + <?php + $MEDIAWIKI_LOCAL_SETTINGS = getenv('MEDIAWIKI_LOCAL_SETTINGS'); + if (isset($MEDIAWIKI_LOCAL_SETTINGS)) { + require_once ($MEDIAWIKI_LOCAL_SETTINGS); + }; + ?> + EOF + + ${concatMapStrings (e: '' + mv $out/extensions/${e} ''${${e}} + '') bundled} + ''; +} |