nixpkgs/pkgs/development/libraries/policykit/default.nix
Eelco Dolstra 56ea7df62d * Several buildInputs of Gnome-related packages should be
propagatedBuildInputs, because those inputs are required by the *.pc
  or *.la files of the package:

  - If a *.pc file references a non-propagated input, then Gnome
    packages have the bad tendency to silently ignore this problem in
    configure scripts - the failure of a command like `pkg-config
    --cflags foo' will be ignored if a dependency of foo.pc is
    missing, so no flags will be added, and the build will fail later
    on a missing header or library.

  - If a *.la file references a non-propagated input, the build will
    also fail, because Libtool will add library dependencies that it
    cannot find.  (Arguably *.la files should never reference packages
    that aren't in the corresponding *.pc file, but they do it
    anyway).

  By setting the propagatedBuildInputs properly, it should be possible
  to get rid of all the NIX_CFLAGS_COMPILE / NIX_LDFLAGS hacks in the
  Gnome expressions.

svn path=/nixpkgs/branches/xorg-7.5/; revision=18084
2009-11-03 23:26:14 +00:00

35 lines
1.2 KiB
Nix

{ stdenv, fetchurl, pkgconfig, glib, dbus, dbus_glib, expat, pam
, intltool, gettext, libxslt, docbook_xsl, ... }:
stdenv.mkDerivation rec {
name = "policykit-0.9";
src = fetchurl {
url = http://hal.freedesktop.org/releases/PolicyKit-0.9.tar.gz;
sha256 = "1dw05s4xqj67i3c13knzl04l8jap0kywzpav6fidpmqrximpq37l";
};
buildInputs =
[ pkgconfig glib dbus_glib pam intltool gettext libxslt ];
propagatedBuildInputs = [ expat dbus.libs ];
configureFlags = "--localstatedir=/var --sysconfdir=/etc";
installFlags = "localstatedir=$(TMPDIR)/var sysconfdir=$(out)/etc"; # keep `make install' happy
# Read policy files from /etc/PolicyKit/policy instead of
# /usr/share/PolicyKit/policy. Using PACKAGE_DATA_DIR is hacky, but
# it works because it's only used in the C code for finding the
# policy directory.
NIX_CFLAGS_COMPILE = "-DPACKAGE_DATA_DIR=\"/etc\"";
# Needed to build the manpages.
XML_CATALOG_FILES = "${docbook_xsl}/xml/xsl/docbook/catalog.xml";
meta = {
homepage = http://www.freedesktop.org/wiki/Software/PolicyKit;
description = "A toolkit for defining and handling the policy that allows unprivileged processes to speak to privileged processes";
};
}