2020-10-08 13:41:36 +01:00
|
|
|
{ stdenv, fetchurl, perlPackages, gettext, makeWrapper, PerlMagick, which, highlight
|
2012-02-07 14:01:05 +00:00
|
|
|
, gitSupport ? false, git ? null
|
2012-07-14 14:47:05 +01:00
|
|
|
, docutilsSupport ? false, python ? null, docutils ? null
|
2012-02-07 14:01:05 +00:00
|
|
|
, monotoneSupport ? false, monotone ? null
|
2020-04-19 09:48:42 +01:00
|
|
|
, bazaarSupport ? false, breezy ? null
|
2018-12-15 03:50:31 +00:00
|
|
|
, cvsSupport ? false, cvs ? null, cvsps ? null
|
2012-07-14 13:51:08 +01:00
|
|
|
, subversionSupport ? false, subversion ? null
|
|
|
|
, mercurialSupport ? false, mercurial ? null
|
2010-07-09 14:16:00 +01:00
|
|
|
, extraUtils ? []
|
|
|
|
}:
|
|
|
|
|
2012-07-14 14:47:05 +01:00
|
|
|
assert docutilsSupport -> (python != null && docutils != null);
|
2010-07-09 14:16:00 +01:00
|
|
|
assert gitSupport -> (git != null);
|
|
|
|
assert monotoneSupport -> (monotone != null);
|
2020-04-19 09:48:42 +01:00
|
|
|
assert bazaarSupport -> (breezy != null);
|
2018-12-15 03:50:31 +00:00
|
|
|
assert cvsSupport -> (cvs != null && cvsps != null && perlPackages.Filechdir != null);
|
2012-07-14 13:51:08 +01:00
|
|
|
assert subversionSupport -> (subversion != null);
|
|
|
|
assert mercurialSupport -> (mercurial != null);
|
2009-10-14 22:00:54 +01:00
|
|
|
|
2010-04-29 10:35:09 +01:00
|
|
|
let
|
|
|
|
name = "ikiwiki";
|
2020-10-08 13:48:22 +01:00
|
|
|
version = "3.20200202.3";
|
2012-07-14 13:51:08 +01:00
|
|
|
|
|
|
|
lib = stdenv.lib;
|
2010-04-29 10:35:09 +01:00
|
|
|
in
|
|
|
|
stdenv.mkDerivation {
|
|
|
|
name = "${name}-${version}";
|
2009-10-14 22:00:54 +01:00
|
|
|
|
|
|
|
src = fetchurl {
|
2019-12-12 09:11:07 +00:00
|
|
|
url = "mirror://debian/pool/main/i/ikiwiki/${name}_${version}.orig.tar.xz";
|
2020-10-08 13:48:22 +01:00
|
|
|
sha256 = "0skrc8r4wh4mjfgw1c94awr5sacfb9nfsbm4frikanc9xsy16ksr";
|
2009-10-14 22:00:54 +01:00
|
|
|
};
|
|
|
|
|
2020-10-08 13:41:36 +01:00
|
|
|
buildInputs = [ which highlight ]
|
2018-12-15 03:50:31 +00:00
|
|
|
++ (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 ])
|
2012-07-14 14:47:05 +01:00
|
|
|
++ lib.optionals docutilsSupport [python docutils]
|
2012-07-14 13:51:08 +01:00
|
|
|
++ lib.optionals gitSupport [git]
|
|
|
|
++ lib.optionals monotoneSupport [monotone]
|
2020-04-19 09:48:42 +01:00
|
|
|
++ lib.optionals bazaarSupport [breezy]
|
2018-12-15 03:50:31 +00:00
|
|
|
++ lib.optionals cvsSupport [cvs cvsps perlPackages.Filechdir]
|
2012-07-14 13:51:08 +01:00
|
|
|
++ lib.optionals subversionSupport [subversion]
|
|
|
|
++ lib.optionals mercurialSupport [mercurial];
|
2010-07-09 14:16:00 +01:00
|
|
|
|
2019-12-12 09:11:07 +00:00
|
|
|
# A few markdown tests fail, but this is expected when using Text::Markdown
|
|
|
|
# instead of Text::Markdown::Discount.
|
|
|
|
patches = [ ./remove-markdown-tests.patch ];
|
|
|
|
|
|
|
|
postPatch = ''
|
2018-12-15 03:50:31 +00:00
|
|
|
sed -i s@/usr/bin/perl@${perlPackages.perl}/bin/perl@ pm_filter mdwn2man
|
2009-10-14 22:00:54 +01:00
|
|
|
sed -i s@/etc/ikiwiki@$out/etc@ Makefile.PL
|
|
|
|
sed -i /ENV{PATH}/d ikiwiki.in
|
2009-10-15 23:08:35 +01:00
|
|
|
# State the gcc dependency, and make the cgi use our wrapper
|
|
|
|
sed -i -e 's@$0@"'$out/bin/ikiwiki'"@' \
|
2014-12-17 18:11:30 +00:00
|
|
|
-e "s@'cc'@'${stdenv.cc}/bin/gcc'@" IkiWiki/Wrapper.pm
|
2009-10-14 22:00:54 +01:00
|
|
|
'';
|
|
|
|
|
|
|
|
configurePhase = "perl Makefile.PL PREFIX=$out";
|
|
|
|
|
|
|
|
postInstall = ''
|
2011-07-08 10:30:01 +01:00
|
|
|
for a in "$out/bin/"*; do
|
2018-12-15 03:50:31 +00:00
|
|
|
wrapProgram $a --suffix PERL5LIB : $PERL5LIB --prefix PATH : ${perlPackages.perl}/bin:$out/bin \
|
2020-10-08 13:54:19 +01:00
|
|
|
${lib.optionalString gitSupport ''--prefix PATH : ${git}/bin ''} \
|
|
|
|
${lib.optionalString monotoneSupport ''--prefix PATH : ${monotone}/bin ''} \
|
|
|
|
${lib.optionalString bazaarSupport ''--prefix PATH : ${breezy}/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 ''} \
|
2020-10-08 14:00:30 +01:00
|
|
|
${lib.optionalString docutilsSupport ''--prefix PYTHONPATH : "$(toPythonPath ${docutils})" ''} \
|
2009-10-16 09:38:25 +01:00
|
|
|
${lib.concatMapStrings (x: "--prefix PATH : ${x}/bin ") extraUtils}
|
2009-10-14 22:00:54 +01:00
|
|
|
done
|
|
|
|
'';
|
|
|
|
|
2012-07-27 09:25:06 +01:00
|
|
|
preCheck = ''
|
|
|
|
# Git needs some help figuring this out during test suite run.
|
|
|
|
export EMAIL="nobody@example.org"
|
|
|
|
'';
|
|
|
|
|
2012-07-14 13:51:08 +01:00
|
|
|
checkTarget = "test";
|
|
|
|
doCheck = true;
|
|
|
|
|
2010-04-29 09:53:43 +01:00
|
|
|
meta = {
|
2009-10-14 22:00:54 +01:00
|
|
|
description = "Wiki compiler, storing pages and history in a RCS";
|
2020-04-01 02:11:51 +01:00
|
|
|
homepage = "http://ikiwiki.info/";
|
2014-06-19 05:19:00 +01:00
|
|
|
license = stdenv.lib.licenses.gpl2Plus;
|
2012-07-14 13:51:08 +01:00
|
|
|
platforms = stdenv.lib.platforms.linux;
|
2016-05-16 21:30:20 +01:00
|
|
|
maintainers = [ stdenv.lib.maintainers.peti ];
|
2009-10-14 22:00:54 +01:00
|
|
|
};
|
|
|
|
}
|