Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
1{
2 stdenv,
3 lib,
4 fetchFromGitHub,
5 bzip2,
6 gd,
7 libjpeg,
8 libpng,
9}:
10
11stdenv.mkDerivation rec {
12 pname = "analog";
13 version = "6.0.18";
14
15 src = fetchFromGitHub {
16 owner = "c-amie";
17 repo = "analog-ce";
18 rev = version;
19 sha256 = "sha256-NCturEibnpl6+paUZezksHzP33WtAzfIolvBLeEHXjY=";
20 };
21
22 buildInputs = [
23 bzip2
24 gd
25 libjpeg
26 libpng
27 ];
28
29 postPatch = ''
30 sed -i src/anlghead.h \
31 -e "s|#define DEFAULTCONFIGFILE .*|#define DEFAULTCONFIGFILE \"$out/etc/analog.cfg\"|g" \
32 -e "s|#define LANGDIR .*|#define LANGDIR \"$out/share/${pname}/lang/\"|g"
33 substituteInPlace src/Makefile \
34 --replace-fail "gcc" "${stdenv.cc.targetPrefix}cc" \
35 --replace-fail "LIBS = -lm" "LIBS = -lm -lpng -lgd -ljpeg -lz -lbz2" \
36 --replace-fail "DEFS =" "DEFS = -DHAVE_GD -DHAVE_ZLIB -DHAVE_BZLIB"
37 '';
38
39 installPhase = ''
40 mkdir -p $out/bin $out/etc $out/share/doc/$pname $out/share/man/man1 $out/share/$pname
41 mv analog $out/bin/
42 cp examples/big.cfg $out/etc/analog.cfg
43 mv analog.man $out/share/man/man1/analog.1
44 mv docs $out/share/doc/$pname/manual
45 mv how-to $out/share/doc/$pname/
46 mv lang images examples $out/share/$pname/
47 '';
48
49 meta = {
50 homepage = "https://www.c-amie.co.uk/software/analog/";
51 license = lib.licenses.gpl2Only;
52 description = "Powerful tool to generate web server statistics";
53 platforms = lib.platforms.all;
54 mainProgram = "analog";
55 };
56
57}