diff options
Diffstat (limited to 'nixpkgs/pkgs/applications/misc/ikiwiki/default.nix')
-rw-r--r-- | nixpkgs/pkgs/applications/misc/ikiwiki/default.nix | 88 |
1 files changed, 88 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/applications/misc/ikiwiki/default.nix b/nixpkgs/pkgs/applications/misc/ikiwiki/default.nix new file mode 100644 index 000000000000..957f0f7f68bb --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/ikiwiki/default.nix @@ -0,0 +1,88 @@ +{ stdenv, fetchurl, perlPackages, gettext, makeWrapper, PerlMagick, which +, gitSupport ? false, git ? null +, docutilsSupport ? false, python ? null, docutils ? null +, monotoneSupport ? false, monotone ? null +, bazaarSupport ? false, bazaar ? null +, cvsSupport ? false, cvs ? null, cvsps ? null +, subversionSupport ? false, subversion ? null +, mercurialSupport ? false, mercurial ? null +, extraUtils ? [] +}: + +assert docutilsSupport -> (python != null && docutils != null); +assert gitSupport -> (git != null); +assert monotoneSupport -> (monotone != null); +assert bazaarSupport -> (bazaar != null); +assert cvsSupport -> (cvs != null && cvsps != null && perlPackages.Filechdir != null); +assert subversionSupport -> (subversion != null); +assert mercurialSupport -> (mercurial != null); + +let + name = "ikiwiki"; + version = "3.20170111"; + + lib = stdenv.lib; +in +stdenv.mkDerivation { + name = "${name}-${version}"; + + src = fetchurl { + url = "mirror://debian/pool/main/i/ikiwiki/${name}_${version}.tar.xz"; + sha256 = "00d7yzv426fvqbhvzyafddv7fa6b4j2647b0wi371wd5yjj9j3sz"; + }; + + buildInputs = [ which ] + ++ (with perlPackages; [ perl TextMarkdown URI HTMLParser HTMLScrubber HTMLTemplate + TimeDate gettext makeWrapper DBFile CGISession CGIFormBuilder LocaleGettext + RpcXML XMLSimple PerlMagick YAML YAMLLibYAML HTMLTree AuthenPassphrase + NetOpenIDConsumer LWPxParanoidAgent CryptSSLeay ]) + ++ lib.optionals docutilsSupport [python docutils] + ++ lib.optionals gitSupport [git] + ++ lib.optionals monotoneSupport [monotone] + ++ lib.optionals bazaarSupport [bazaar] + ++ lib.optionals cvsSupport [cvs cvsps perlPackages.Filechdir] + ++ lib.optionals subversionSupport [subversion] + ++ lib.optionals mercurialSupport [mercurial]; + + patchPhase = '' + sed -i s@/usr/bin/perl@${perlPackages.perl}/bin/perl@ pm_filter mdwn2man + sed -i s@/etc/ikiwiki@$out/etc@ Makefile.PL + sed -i /ENV{PATH}/d ikiwiki.in + # State the gcc dependency, and make the cgi use our wrapper + sed -i -e 's@$0@"'$out/bin/ikiwiki'"@' \ + -e "s@'cc'@'${stdenv.cc}/bin/gcc'@" IkiWiki/Wrapper.pm + ''; + + configurePhase = "perl Makefile.PL PREFIX=$out"; + + postInstall = '' + for a in "$out/bin/"*; do + wrapProgram $a --suffix PERL5LIB : $PERL5LIB --prefix PATH : ${perlPackages.perl}/bin:$out/bin \ + ${lib.optionalString gitSupport ''--prefix PATH : ${git}/bin \''} + ${lib.optionalString monotoneSupport ''--prefix PATH : ${monotone}/bin \''} + ${lib.optionalString bazaarSupport ''--prefix PATH : ${bazaar}/bin \''} + ${lib.optionalString cvsSupport ''--prefix PATH : ${cvs}/bin \''} + ${lib.optionalString cvsSupport ''--prefix PATH : ${cvsps}/bin \''} + ${lib.optionalString subversionSupport ''--prefix PATH : ${subversion.out}/bin \''} + ${lib.optionalString mercurialSupport ''--prefix PATH : ${mercurial}/bin \''} + ${lib.concatMapStrings (x: "--prefix PATH : ${x}/bin ") extraUtils} + done + ''; + + preCheck = '' + # Git needs some help figuring this out during test suite run. + export EMAIL="nobody@example.org" + ''; + + checkTarget = "test"; + doCheck = true; + + meta = { + description = "Wiki compiler, storing pages and history in a RCS"; + homepage = http://ikiwiki.info/; + license = stdenv.lib.licenses.gpl2Plus; + platforms = stdenv.lib.platforms.linux; + maintainers = [ stdenv.lib.maintainers.peti ]; + broken = true; # https://ikiwiki.info/bugs/imagemagick_6.9.8_test_suite_failure/ + }; +} |