/
default.nix
128 lines (111 loc) · 2.46 KB
/
default.nix
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
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
{ lib, stdenv
, buildPackages
, fetchFromGitHub
, nix-update-script
, substituteAll
, plymouth
, pam
, pkg-config
, autoconf
, automake
, libtool
, libxcb
, glib
, libXdmcp
, itstool
, intltool
, libxklavier
, libgcrypt
, audit
, busybox
, polkit
, accountsservice
, gtk-doc
, gnome
, gobject-introspection
, vala
, fetchpatch
, withQt5 ? false
, qtbase
, yelp-tools
}:
stdenv.mkDerivation rec {
pname = "lightdm";
version = "1.32.0";
outputs = [ "out" "dev" ];
src = fetchFromGitHub {
owner = "canonical";
repo = pname;
rev = version;
sha256 = "sha256-ttNlhWD0Ran4d3QvZ+PxbFbSUGMkfrRm+hJdQxIDJvM=";
};
nativeBuildInputs = [
autoconf
automake
yelp-tools
gnome.yelp-xsl
gobject-introspection
gtk-doc
intltool
itstool
libtool
pkg-config
vala
];
buildInputs = [
accountsservice
audit
glib
libXdmcp
libgcrypt
libxcb
libxklavier
pam
polkit
] ++ lib.optional withQt5 qtbase;
patches = [
# Adds option to disable writing dmrc files
(fetchpatch {
url = "https://src.fedoraproject.org/rpms/lightdm/raw/4cf0d2bed8d1c68970b0322ccd5dbbbb7a0b12bc/f/lightdm-1.25.1-disable_dmrc.patch";
sha256 = "06f7iabagrsiws2l75sx2jyljknr9js7ydn151p3qfi104d1541n";
})
# Hardcode plymouth to fix transitions.
# For some reason it can't find `plymouth`
# even when it's in PATH in environment.systemPackages.
(substituteAll {
src = ./fix-paths.patch;
plymouth = "${plymouth}/bin/plymouth";
})
];
dontWrapQtApps = true;
preConfigure = "NOCONFIGURE=1 ./autogen.sh";
configureFlags = [
"--localstatedir=/var"
"--sysconfdir=/etc"
"--disable-tests"
"--disable-dmrc"
] ++ lib.optional withQt5 "--enable-liblightdm-qt5";
installFlags = [
"sysconfdir=${placeholder "out"}/etc"
"localstatedir=\${TMPDIR}"
];
prePatch = ''
substituteInPlace autogen.sh \
--replace "which" "${buildPackages.busybox}/bin/which"
substituteInPlace src/shared-data-manager.c \
--replace /bin/rm ${busybox}/bin/rm
'';
postInstall = ''
rm -rf $out/etc/apparmor.d $out/etc/init $out/etc/pam.d
'';
passthru = {
updateScript = nix-update-script { };
};
meta = with lib; {
homepage = "https://github.com/canonical/lightdm";
description = "A cross-desktop display manager";
platforms = platforms.linux;
license = licenses.gpl3;
maintainers = with maintainers; [ ] ++ teams.pantheon.members;
};
}