anvil-editor: init at 0.4
[NixPkgs.git] / pkgs / applications / display-managers / lightdm / default.nix
blob820477861bb594b402812eb88ace643299dabd92
1 { lib, stdenv
2 , buildPackages
3 , fetchFromGitHub
4 , nix-update-script
5 , substituteAll
6 , plymouth
7 , pam
8 , pkg-config
9 , autoconf
10 , automake
11 , libtool
12 , libxcb
13 , glib
14 , libXdmcp
15 , itstool
16 , intltool
17 , libxklavier
18 , libgcrypt
19 , audit
20 , busybox
21 , polkit
22 , accountsservice
23 , gtk-doc
24 , gobject-introspection
25 , vala
26 , fetchpatch
27 , withQt5 ? false
28 , qtbase
29 , yelp-tools
30 , yelp-xsl
31 , nixosTests
34 stdenv.mkDerivation rec {
35   pname = "lightdm";
36   version = "1.32.0";
38   outputs = [ "out" "dev" ];
40   src = fetchFromGitHub {
41     owner = "canonical";
42     repo = pname;
43     rev = version;
44     sha256 = "sha256-ttNlhWD0Ran4d3QvZ+PxbFbSUGMkfrRm+hJdQxIDJvM=";
45   };
47   nativeBuildInputs = [
48     autoconf
49     automake
50     yelp-tools
51     yelp-xsl
52     gobject-introspection
53     gtk-doc
54     intltool
55     itstool
56     libtool
57     pkg-config
58     vala
59   ];
61   buildInputs = [
62     accountsservice
63     audit
64     glib
65     libXdmcp
66     libgcrypt
67     libxcb
68     libxklavier
69     pam
70     polkit
71   ] ++ lib.optional withQt5 qtbase;
73   patches = [
74     # Adds option to disable writing dmrc files
75     (fetchpatch {
76       url = "https://src.fedoraproject.org/rpms/lightdm/raw/4cf0d2bed8d1c68970b0322ccd5dbbbb7a0b12bc/f/lightdm-1.25.1-disable_dmrc.patch";
77       sha256 = "06f7iabagrsiws2l75sx2jyljknr9js7ydn151p3qfi104d1541n";
78     })
80     # Hardcode plymouth to fix transitions.
81     # For some reason it can't find `plymouth`
82     # even when it's in PATH in environment.systemPackages.
83     (substituteAll {
84       src = ./fix-paths.patch;
85       plymouth = "${plymouth}/bin/plymouth";
86     })
87   ];
89   dontWrapQtApps = true;
91   preConfigure = "NOCONFIGURE=1 ./autogen.sh";
93   configureFlags = [
94     "--localstatedir=/var"
95     "--sysconfdir=/etc"
96     "--disable-tests"
97     "--disable-dmrc"
98   ] ++ lib.optional withQt5 "--enable-liblightdm-qt5";
100   installFlags = [
101     "sysconfdir=${placeholder "out"}/etc"
102     "localstatedir=\${TMPDIR}"
103   ];
105   prePatch = ''
106     substituteInPlace autogen.sh \
107       --replace "which" "${buildPackages.busybox}/bin/which"
109     substituteInPlace src/shared-data-manager.c \
110       --replace /bin/rm ${busybox}/bin/rm
111   '';
113   postInstall = ''
114     rm -rf $out/etc/apparmor.d $out/etc/init $out/etc/pam.d
115   '';
117   passthru = {
118     updateScript = nix-update-script { };
119     tests = { inherit (nixosTests) lightdm; };
120   };
123   meta = with lib; {
124     homepage = "https://github.com/canonical/lightdm";
125     description = "Cross-desktop display manager";
126     platforms = platforms.linux;
127     license = licenses.gpl3;
128     maintainers = with maintainers; [ ] ++ teams.pantheon.members;
129   };