1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
|
{ lib
, stdenv
, fetchFromGitHub
, fpc
, lazarus
, atk
, cairo
, gdk-pixbuf
, glib
, gtk2-x11
, libX11
, pango
, hamlib
, mariadb
, tqsl
, xdg-utils
, xplanet
, autoPatchelfHook
, wrapGAppsHook
}:
stdenv.mkDerivation rec {
pname = "cqrlog";
version = "2.5.2";
src = fetchFromGitHub {
owner = "ok2cqr";
repo = "cqrlog";
rev = "v${version}";
sha256 = "0zzcg0bl6mq4wfifj998x9x09w8sigbh46synpqx034fpr0swyhb";
};
# Adds the possiblity to change the lazarus directory,
# otherwise, we would get error : "directory lcl not found"
patches = [ ./fix-makefile-lazarusdir.patch ];
postPatch = ''
substituteInPlace Makefile \
--replace @Lazarusdir@ "${lazarus}/share/lazarus" \
--replace /usr ""
substituteInPlace src/fTRXControl.pas \
--replace "/usr/bin/rigctld" "${hamlib}/bin/rigctld"
substituteInPlace src/fCallAttachment.pas \
--replace "/usr/bin/xdg-open" "${xdg-utils}/bin/xdg-open"
substituteInPlace src/fRotControl.pas \
--replace "/usr/bin/rotctld" "${hamlib}/bin/rotctld"
substituteInPlace src/fPreferences.pas \
--replace "/usr/bin/rigctld" "${hamlib}/bin/rigctld" \
--replace "/usr/bin/rotctld" "${hamlib}/bin/rotctld" \
--replace "/usr/bin/xplanet" "${xplanet}/bin/xplanet"
substituteInPlace src/fLoTWExport.pas \
--replace "/usr/bin/tqsl" "${tqsl}/bin/tqsl"
substituteInPlace src/dUtils.pas \
--replace "/usr/bin/xplanet" "${xplanet}/bin/xplanet" \
--replace "/usr/bin/rigctld" "${hamlib}/bin/rigctld"
# Order is important
substituteInPlace src/dData.pas \
--replace "/usr/bin/mysqld_safe" "${mariadb}/bin/mysqld_safe" \
--replace "/usr/bin/mysqld" "${mariadb}/bin/mysqld"
# To be fail when I need to patch a new hardcoded binary
! grep -C src -RC0 "/usr"
'';
nativeBuildInputs = [ lazarus fpc autoPatchelfHook wrapGAppsHook ];
buildInputs = [
atk
cairo
gdk-pixbuf
glib
gtk2-x11
libX11
pango
];
propagatedBuildInputs = [
hamlib
mariadb
tqsl
xdg-utils
xplanet
];
makeFlags = [
"FPC=fpc"
"PP=fpc"
"DESTDIR=$(out)"
];
postFixup = ''
libmysqlclient=$(find "${mariadb.client}/lib" -name "libmysqlclient.so" | tail -n1)
patchelf --add-needed "libmysqlclient.so" \
--add-rpath "$(dirname "$libmysqlclient")" \
"$out/bin/.cqrlog-wrapped"
'';
meta = with lib; {
description = "Linux logging program for amateur radio operators";
mainProgram = "cqrlog";
homepage = "https://www.cqrlog.com/";
license = licenses.gpl2Plus;
maintainers = with maintainers; [ shamilton ];
platforms = platforms.linux;
};
}
|