Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
1{
2 mkDerivation,
3 lib,
4 stdenv,
5 writeScript,
6 extra-cmake-modules,
7 kdoctools,
8 kconfig,
9 kcrash,
10 ki18n,
11 kio,
12 kparts,
13 kservice,
14 kwindowsystem,
15 plasma-framework,
16}:
17
18let
19 inherit (lib) getLib;
20in
21
22mkDerivation {
23 pname = "kinit";
24 outputs = [
25 "out"
26 "dev"
27 ];
28 nativeBuildInputs = [
29 extra-cmake-modules
30 kdoctools
31 ];
32 buildInputs = [
33 kconfig
34 kcrash
35 ki18n
36 kio
37 kservice
38 kwindowsystem
39 ];
40 patches = [
41 ./0002-start_kdeinit-path.patch
42 ./0003-kdeinit-extra-libs.patch
43 ./0004-start_kdeinit-environ-hard-limit.patch
44 ];
45 CXXFLAGS = [
46 ''-DNIXPKGS_KF5_KIOCORE=\"${getLib kio}/lib/libKF5KIOCore.so.5\"''
47 ''-DNIXPKGS_KF5_PARTS=\"${getLib kparts}/lib/libKF5Parts.so.5\"''
48 ]
49 ++ lib.optionals stdenv.hostPlatform.isLinux [
50 ''-DNIXPKGS_KF5_PLASMA=\"${getLib plasma-framework}/lib/libKF5Plasma.so.5\"''
51 ];
52 setupHook = writeScript "setup-hook.sh" ''
53 kinitFixupOutputHook() {
54 if [ $prefix != ''${!outputBin} ] && [ -d $prefix/lib ]; then
55 mkdir -p ''${!outputBin}/lib
56 find $prefix/lib -maxdepth 1 -name 'libkdeinit5_*.so' -exec ln -s \{\} ''${!outputBin}/lib \;
57 rmdir --ignore-fail-on-non-empty ''${!outputBin}/lib
58 fi
59 }
60
61 fixupOutputHooks+=(kinitFixupOutputHook)
62 '';
63}