lol
1{ lib
2, stdenv
3, fetchurl
4, boost
5, gfortran
6, lhapdf
7, ncurses
8, perl
9, python ? null
10, swig
11, yoda
12, zlib
13, withPython ? false
14}:
15
16stdenv.mkDerivation rec {
17 pname = "fastnlo_toolkit";
18 version = "2.5.0-2826";
19
20 src = fetchurl {
21 url = "https://fastnlo.hepforge.org/code/v25/fastnlo_toolkit-${version}.tar.gz";
22 sha256 = "sha256-7aIMYCOkHC/17CHYiEfrxvtSJxTDivrS7BQ32cGiEy0=";
23 };
24
25 buildInputs = [
26 boost
27 gfortran
28 gfortran.cc.lib
29 lhapdf
30 yoda
31 ] ++ lib.optional withPython python
32 ++ lib.optional (withPython && python.isPy3k) ncurses;
33
34 propagatedBuildInputs = [
35 zlib
36 ] ++ lib.optional withPython swig;
37
38 preConfigure = ''
39 substituteInPlace ./fastnlotoolkit/Makefile.in \
40 --replace "-fext-numeric-literals" ""
41
42 # disable test that fails due to strict floating-point number comparison
43 echo "#!/usr/bin/env perl" > check/fnlo-tk-stattest.pl.in
44 chmod +x check/fnlo-tk-stattest.pl.in
45 '';
46
47 configureFlags = [
48 "--with-yoda=${yoda}"
49 ] ++ lib.optional withPython "--enable-pyext";
50
51 enableParallelBuilding = true;
52
53 doCheck = true;
54 checkInputs = [
55 perl
56 lhapdf.pdf_sets.CT10nlo
57 ];
58 preCheck = ''
59 patchShebangs --build check
60 '';
61 enableParallelChecking = false;
62
63 meta = with lib; {
64 homepage = "http://fastnlo.hepforge.org";
65 description = "Fast pQCD calculations for hadron-induced processes";
66 longDescription = ''
67 The fastNLO project provides computer code to create and evaluate fast
68 interpolation tables of pre-computed coefficients in perturbation theory
69 for observables in hadron-induced processes.
70
71 This allows fast theory predictions of these observables for arbitrary
72 parton distribution functions (of regular shape), renormalization or
73 factorization scale choices, and/or values of alpha_s(Mz) as e.g. needed
74 in PDF fits or in systematic studies. Very time consuming complete
75 recalculations are thus avoided.
76 '';
77 license = licenses.gpl3Plus;
78 maintainers = with maintainers; [ veprbl ];
79 platforms = platforms.unix;
80 };
81}