aboutsummaryrefslogtreecommitdiff
path: root/pkgs/mediawiki/default.nix
diff options
context:
space:
mode:
authorIgor Pashev <pashev.igor@gmail.com>2018-12-11 18:10:48 +0300
committerIgor Pashev <pashev.igor@gmail.com>2018-12-11 18:10:48 +0300
commit8b0968b2054d3bb8d90b5ac056727f7c2ebeaed3 (patch)
treed03b70f693463fc836a8dbe4240424d2547530c8 /pkgs/mediawiki/default.nix
parentc4273035cf5876e3ba8ed2c6b492d31c2de290ee (diff)
downloadnixsap-8b0968b2054d3bb8d90b5ac056727f7c2ebeaed3.tar.gz
(* HUGE *) Use nixpkgs overlays
Diffstat (limited to 'pkgs/mediawiki/default.nix')
-rw-r--r--pkgs/mediawiki/default.nix60
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}
+ '';
+}