nixpkgs/pkgs/applications/misc/ikiwiki/default.nix

90 lines
3.4 KiB
Nix
Raw Normal View History

2012-07-14 12:51:08 +00:00
{ stdenv, fetchurl, perl, gettext, makeWrapper, PerlMagick, YAML
, TextMarkdown, URI, HTMLParser, HTMLScrubber, HTMLTemplate, TimeDate
, CGISession, CGIFormBuilder, DBFile, LocaleGettext, RpcXML, XMLSimple
, YAMLLibYAML, which, HTMLTree, AuthenPassphrase
, gitSupport ? false, git ? null
, docutilsSupport ? false, python ? null, docutils ? null
, monotoneSupport ? false, monotone ? null
2012-07-14 12:51:08 +00:00
, bazaarSupport ? false, bazaar ? null
, cvsSupport ? false, cvs ? null, cvsps ? null, Filechdir ? null
2012-07-14 12:51:08 +00:00
, subversionSupport ? false, subversion ? null
, mercurialSupport ? false, mercurial ? null
, extraUtils ? []
}:
assert docutilsSupport -> (python != null && docutils != null);
assert gitSupport -> (git != null);
assert monotoneSupport -> (monotone != null);
2012-07-14 12:51:08 +00:00
assert bazaarSupport -> (bazaar != null);
assert cvsSupport -> (cvs != null && cvsps != null && Filechdir != null);
2012-07-14 12:51:08 +00:00
assert subversionSupport -> (subversion != null);
assert mercurialSupport -> (mercurial != null);
let
name = "ikiwiki";
2012-07-14 12:51:08 +00:00
version = "3.20120629";
lib = stdenv.lib;
in
stdenv.mkDerivation {
name = "${name}-${version}";
src = fetchurl {
url = "http://ftp.de.debian.org/debian/pool/main/i/ikiwiki/${name}_${version}.tar.gz";
2012-07-14 12:51:08 +00:00
sha256 = "7e39cdb727f261ce20fde5f0b05966680589a3d028c569780addd4b530382f07";
};
buildInputs = [ perl TextMarkdown URI HTMLParser HTMLScrubber HTMLTemplate
TimeDate gettext makeWrapper DBFile CGISession CGIFormBuilder LocaleGettext
RpcXML XMLSimple PerlMagick YAML YAMLLibYAML which HTMLTree AuthenPassphrase ]
++ lib.optionals docutilsSupport [python docutils]
2012-07-14 12:51:08 +00:00
++ lib.optionals gitSupport [git]
++ lib.optionals monotoneSupport [monotone]
++ lib.optionals bazaarSupport [bazaar]
++ lib.optionals cvsSupport [cvs cvsps Filechdir]
++ lib.optionals subversionSupport [subversion]
++ lib.optionals mercurialSupport [mercurial];
patchPhase = ''
sed -i s@/usr/bin/perl@${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.gcc}/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 : ${perl}/bin:$out/bin \
2012-07-14 12:51:08 +00:00
${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}/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"
'';
2012-07-14 12:51:08 +00:00
checkTarget = "test";
doCheck = true;
meta = {
description = "Wiki compiler, storing pages and history in a RCS";
2012-07-14 12:51:08 +00:00
homepage = "http://ikiwiki.info/";
license = "GPLv2+";
2012-07-14 12:51:08 +00:00
platforms = stdenv.lib.platforms.linux;
maintainers = [ stdenv.lib.maintainers.simons ];
};
}