diff options
Diffstat (limited to 'nixpkgs/pkgs/applications/display-managers/lightdm')
-rw-r--r-- | nixpkgs/pkgs/applications/display-managers/lightdm/default.nix | 89 | ||||
-rw-r--r-- | nixpkgs/pkgs/applications/display-managers/lightdm/gtk-greeter.nix | 56 |
2 files changed, 145 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/applications/display-managers/lightdm/default.nix b/nixpkgs/pkgs/applications/display-managers/lightdm/default.nix new file mode 100644 index 000000000000..61d65cb64b6b --- /dev/null +++ b/nixpkgs/pkgs/applications/display-managers/lightdm/default.nix @@ -0,0 +1,89 @@ +{ stdenv, fetchFromGitHub, pam, pkgconfig, autoconf, automake, libtool, libxcb +, glib, libXdmcp, itstool, intltool, libxklavier, libgcrypt, audit, busybox +, polkit, accountsservice, gtk-doc, gnome3, gobject-introspection, vala, fetchpatch +, withQt4 ? false, qt4 +, withQt5 ? false, qtbase +}: + +with stdenv.lib; + +stdenv.mkDerivation rec { + pname = "lightdm"; + version = "1.30.0"; + + outputs = [ "out" "dev" ]; + + src = fetchFromGitHub { + owner = "CanonicalLtd"; + repo = pname; + rev = version; + sha256 = "0i1yygmjbkdjnqdl9jn8zsa1mfs2l19qc4k2capd8q1ndhnjm2dx"; + }; + + nativeBuildInputs = [ + autoconf + automake + gnome3.yelp-tools + gnome3.yelp-xsl + gobject-introspection + gtk-doc + intltool + itstool + libtool + pkgconfig + vala + ]; + + buildInputs = [ + accountsservice + audit + glib + libXdmcp + libgcrypt + libxcb + libxklavier + pam + polkit + ] ++ optional withQt4 qt4 + ++ 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"; + }) + ]; + + preConfigure = "NOCONFIGURE=1 ./autogen.sh"; + + configureFlags = [ + "--localstatedir=/var" + "--sysconfdir=/etc" + "--disable-tests" + "--disable-static" + "--disable-dmrc" + ] ++ optional withQt4 "--enable-liblightdm-qt" + ++ optional withQt5 "--enable-liblightdm-qt5"; + + installFlags = [ + "sysconfdir=${placeholder ''out''}/etc" + "localstatedir=\${TMPDIR}" + ]; + + prePatch = '' + substituteInPlace autogen.sh \ + --replace "which" "${busybox}/bin/which" + + substituteInPlace src/shared-data-manager.c \ + --replace /bin/rm ${busybox}/bin/rm + ''; + + meta = { + homepage = https://github.com/CanonicalLtd/lightdm; + description = "A cross-desktop display manager"; + platforms = platforms.linux; + license = licenses.gpl3; + maintainers = with maintainers; [ ocharles worldofpeace ]; + }; +} diff --git a/nixpkgs/pkgs/applications/display-managers/lightdm/gtk-greeter.nix b/nixpkgs/pkgs/applications/display-managers/lightdm/gtk-greeter.nix new file mode 100644 index 000000000000..61db182f7446 --- /dev/null +++ b/nixpkgs/pkgs/applications/display-managers/lightdm/gtk-greeter.nix @@ -0,0 +1,56 @@ +{ stdenv, fetchurl, lightdm, pkgconfig, intltool +, hicolor-icon-theme, makeWrapper +, useGTK2 ? false, gtk2, gtk3 # gtk3 seems better supported +, exo, at-spi2-core +}: + +#ToDo: bad icons with gtk2; +# avatar icon is missing in standard hicolor theme, I don't know where gtk3 takes it from + +let + ver_branch = "2.0"; + version = "2.0.6"; +in +stdenv.mkDerivation rec { + name = "lightdm-gtk-greeter-${version}"; + + src = fetchurl { + url = "${meta.homepage}/${ver_branch}/${version}/+download/${name}.tar.gz"; + sha256 = "1pis5qyg95pg31dvnfqq34bzgj00hg4vs547r8h60lxjk81z8p15"; + }; + + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ lightdm exo intltool makeWrapper hicolor-icon-theme ] + ++ (if useGTK2 then [ gtk2 ] else [ gtk3 ]); + + configureFlags = [ + "--localstatedir=/var" + "--sysconfdir=/etc" + "--disable-indicator-services-command" + ] ++ stdenv.lib.optional useGTK2 "--with-gtk2"; + + preConfigure = '' + configureFlagsArray+=( --enable-at-spi-command="${at-spi2-core}/libexec/at-spi-bus-launcher --launch-immediately" ) + ''; + + NIX_CFLAGS_COMPILE = [ "-Wno-error=deprecated-declarations" ]; + + installFlags = [ + "localstatedir=\${TMPDIR}" + "sysconfdir=${placeholder "out"}/etc" + ]; + + postInstall = '' + substituteInPlace "$out/share/xgreeters/lightdm-gtk-greeter.desktop" \ + --replace "Exec=lightdm-gtk-greeter" "Exec=$out/sbin/lightdm-gtk-greeter" + wrapProgram "$out/sbin/lightdm-gtk-greeter" \ + --prefix XDG_DATA_DIRS ":" "${hicolor-icon-theme}/share" + ''; + + meta = with stdenv.lib; { + homepage = https://launchpad.net/lightdm-gtk-greeter; + platforms = platforms.linux; + license = licenses.gpl3; + maintainers = with maintainers; [ ocharles ]; + }; +} |