diff options
Diffstat (limited to 'pkgs/development/libraries')
327 files changed, 3814 insertions, 807 deletions
diff --git a/pkgs/development/libraries/SDL/default.nix b/pkgs/development/libraries/SDL/default.nix index 7ca594e9bc4a..6c3920ff8aa8 100644 --- a/pkgs/development/libraries/SDL/default.nix +++ b/pkgs/development/libraries/SDL/default.nix @@ -27,7 +27,8 @@ stdenv.mkDerivation rec { sha256 = "005d993xcac8236fpvd1iawkz4wqjybkpn8dbwaliqz5jfkidlyn"; }; - outputs = [ "out" "man" ]; + outputs = [ "dev" "out" ]; + outputBin = "dev"; # sdl-config nativeBuildInputs = [ pkgconfig ]; @@ -58,7 +59,7 @@ stdenv.mkDerivation rec { "--disable-osmesa-shared" ] ++ stdenv.lib.optionals (stdenv ? cross) ([ "--without-x" - ] ++ stdenv.lib.optional alsaSupport "--with-alsa-prefix=${alsaLib}/lib"); + ] ++ stdenv.lib.optional alsaSupport "--with-alsa-prefix=${alsaLib.out}/lib"); patches = [ # Fix window resizing issues, e.g. for xmonad @@ -96,6 +97,8 @@ stdenv.mkDerivation rec { }) ]; + postFixup = ''moveToOutput share/aclocal "$dev" ''; + passthru = { inherit openglSupport; }; meta = with stdenv.lib; { diff --git a/pkgs/development/libraries/SDL2/default.nix b/pkgs/development/libraries/SDL2/default.nix index 529c485930b3..1c260c2ba911 100644 --- a/pkgs/development/libraries/SDL2/default.nix +++ b/pkgs/development/libraries/SDL2/default.nix @@ -19,7 +19,7 @@ let configureFlagsFun = attrs: '' --disable-oss --disable-x11-shared --disable-pulseaudio-shared --disable-alsa-shared - ${if alsaSupport then "--with-alsa-prefix=${attrs.alsaLib}/lib" else ""} + ${if alsaSupport then "--with-alsa-prefix=${attrs.alsaLib.out}/lib" else ""} ${if (!x11Support) then "--without-x" else ""} ''; in diff --git a/pkgs/development/libraries/aalib/default.nix b/pkgs/development/libraries/aalib/default.nix index d7dcbeba330b..7ddb78d052e0 100644 --- a/pkgs/development/libraries/aalib/default.nix +++ b/pkgs/development/libraries/aalib/default.nix @@ -8,16 +8,30 @@ stdenv.mkDerivation { sha256 = "1vkh19gb76agvh4h87ysbrgy82hrw88lnsvhynjf4vng629dmpgv"; }; + outputs = [ "dev" "out" "bin" "doc" ]; + setOutputFlags = false; # Doesn't support all the flags + + patches = stdenv.lib.optionals stdenv.isDarwin [ ./darwin.patch ]; + # The fuloong2f is not supported by aalib still preConfigure = '' cp ${automake}/share/automake*/config.{sub,guess} . + configureFlagsArray+=( + "--bindir=$bin/bin" + "--includedir=$dev/include" + "--libdir=$out/lib" + ) ''; buildInputs = [ ncurses ]; configureFlags = "--without-x --with-ncurses=${ncurses}"; - patches = stdenv.lib.optionals stdenv.isDarwin [ ./darwin.patch ]; + postInstall = '' + mkdir -p $dev/bin + mv $bin/bin/aalib-config $dev/bin/aalib-config + substituteInPlace $out/lib/libaa.la --replace "${ncurses.dev}/lib" "${ncurses.out}/lib" + ''; meta = { description = "ASCII art graphics library"; diff --git a/pkgs/development/libraries/acl/default.nix b/pkgs/development/libraries/acl/default.nix index f6445874913a..29b31a8b492c 100644 --- a/pkgs/development/libraries/acl/default.nix +++ b/pkgs/development/libraries/acl/default.nix @@ -8,6 +8,8 @@ stdenv.mkDerivation rec { sha256 = "08qd9s3wfhv0ajswsylnfwr5h0d7j9d4rgip855nrh400nxp940p"; }; + outputs = [ "dev" "out" "bin" "doc" ]; + nativeBuildInputs = [ gettext ]; buildInputs = [ attr ]; diff --git a/pkgs/development/libraries/apr-util/default.nix b/pkgs/development/libraries/apr-util/default.nix index c123740f5c12..6f0956f1d1d1 100644 --- a/pkgs/development/libraries/apr-util/default.nix +++ b/pkgs/development/libraries/apr-util/default.nix @@ -22,6 +22,9 @@ stdenv.mkDerivation rec { patches = optional stdenv.isFreeBSD ./include-static-dependencies.patch; + outputs = [ "dev" "out" ]; + outputBin = "dev"; + buildInputs = optional stdenv.isFreeBSD autoreconfHook; configureFlags = [ "--with-apr=${apr}" "--with-expat=${expat}" ] @@ -42,7 +45,10 @@ stdenv.mkDerivation rec { # Give apr1 access to sed for runtime invocations postInstall = '' - wrapProgram $out/bin/apu-1-config --prefix PATH : "${gnused}/bin" + for f in $out/lib/*.la $out/lib/apr-util-1/*.la; do + substituteInPlace $f --replace "${expat.dev}/lib" "${expat.out}/lib" + done + wrapProgram $dev/bin/apu-1-config --prefix PATH : "${gnused}/bin" ''; enableParallelBuilding = true; diff --git a/pkgs/development/libraries/apr/default.nix b/pkgs/development/libraries/apr/default.nix index 08fd1fe4d5f3..c6e505f43d23 100644 --- a/pkgs/development/libraries/apr/default.nix +++ b/pkgs/development/libraries/apr/default.nix @@ -10,6 +10,14 @@ stdenv.mkDerivation rec { patches = stdenv.lib.optionals stdenv.isDarwin [ ./is-this-a-compiler-bug.patch ]; + outputs = [ "dev" "out" ]; + outputBin = "dev"; + + preConfigure = + '' + configureFlagsArray+=("--with-installbuilddir=$dev/share/build") + ''; + configureFlags = # Including the Windows headers breaks unistd.h. # Based on ftp://sourceware.org/pub/cygwin/release/libapr1/libapr1-1.3.8-2-src.tar.bz2 @@ -17,10 +25,10 @@ stdenv.mkDerivation rec { enableParallelBuilding = true; - meta = { + meta = with stdenv.lib; { homepage = http://apr.apache.org/; description = "The Apache Portable Runtime library"; - platforms = stdenv.lib.platforms.all; - maintainers = [ stdenv.lib.maintainers.eelco ]; + platforms = platforms.all; + maintainers = [ maintainers.eelco ]; }; } diff --git a/pkgs/development/libraries/at-spi2-core/default.nix b/pkgs/development/libraries/at-spi2-core/default.nix index 808de07c52fd..e49569bc226a 100644 --- a/pkgs/development/libraries/at-spi2-core/default.nix +++ b/pkgs/development/libraries/at-spi2-core/default.nix @@ -12,7 +12,7 @@ stdenv.mkDerivation rec { sha256 = "0afn4x04j5l352vj0dccb2hkpzg3l2vhr8h1yv89fpqmjkfnm8md"; }; - outputs = [ "out" "doc" ]; + outputs = [ "dev" "out" ]; buildInputs = [ python pkgconfig popt intltool dbus_glib diff --git a/pkgs/development/libraries/atk/default.nix b/pkgs/development/libraries/atk/default.nix index dcb90aa16cd1..14e2e71c0bd0 100644 --- a/pkgs/development/libraries/atk/default.nix +++ b/pkgs/development/libraries/atk/default.nix @@ -12,6 +12,10 @@ stdenv.mkDerivation rec { sha256 = "ce6c48d77bf951083029d5a396dd552d836fff3c1715d3a7022e917e46d0c92b"; }; + enableParallelBuilding = true; + + outputs = [ "dev" "out" ]; + buildInputs = libintlOrEmpty; nativeBuildInputs = [ pkgconfig perl ]; @@ -20,8 +24,6 @@ stdenv.mkDerivation rec { #doCheck = true; # no checks in there (2.10.0) - postInstall = "rm -rf $out/share/gtk-doc"; - meta = { description = "Accessibility toolkit"; diff --git a/pkgs/development/libraries/attr/default.nix b/pkgs/development/libraries/attr/default.nix index 3c69a7328b23..2bb5b2d25807 100644 --- a/pkgs/development/libraries/attr/default.nix +++ b/pkgs/development/libraries/attr/default.nix @@ -8,6 +8,8 @@ stdenv.mkDerivation rec { sha256 = "0nd8y0m6awc9ahv0ciiwf8gy54c8d3j51pw9xg7f7cn579jjyxr5"; }; + outputs = [ "dev" "out" "bin" "doc" ]; + nativeBuildInputs = [ gettext ]; configureFlags = "MAKE=make MSGFMT=msgfmt MSGMERGE=msgmerge XGETTEXT=xgettext ECHO=echo SED=sed AWK=gawk"; diff --git a/pkgs/development/libraries/boehm-gc/default.nix b/pkgs/development/libraries/boehm-gc/default.nix index 158f4b227dd3..4839bedd8bb0 100644 --- a/pkgs/development/libraries/boehm-gc/default.nix +++ b/pkgs/development/libraries/boehm-gc/default.nix @@ -7,9 +7,10 @@ stdenv.mkDerivation rec { url = http://www.hboehm.info/gc/gc_source/gc-7.2f.tar.gz; sha256 = "119x7p1cqw40mpwj80xfq879l9m1dkc7vbc1f3bz3kvkf8bf6p16"; }; - patches = if stdenv.isCygwin then [ ./cygwin.patch ] else null; + outputs = [ "dev" "out" "doc" ]; + configureFlags = [ "--enable-cplusplus" ] ++ lib.optional enableLargeConfig "--enable-large-config"; @@ -19,6 +20,12 @@ stdenv.mkDerivation rec { # Don't run the native `strip' when cross-compiling. dontStrip = stdenv ? cross; + postInstall = + '' + mkdir -p $out/share/doc + mv $out/share/gc $out/share/doc/gc + ''; + meta = { description = "The Boehm-Demers-Weiser conservative garbage collector for C and C++"; diff --git a/pkgs/development/libraries/boost/generic.nix b/pkgs/development/libraries/boost/generic.nix index b28668e7b301..5b0c06bd6bb2 100644 --- a/pkgs/development/libraries/boost/generic.nix +++ b/pkgs/development/libraries/boost/generic.nix @@ -64,8 +64,8 @@ let ] ++ optional (variant == "release") "debug-symbols=off"; nativeB2Flags = [ - "-sEXPAT_INCLUDE=${expat}/include" - "-sEXPAT_LIBPATH=${expat}/lib" + "-sEXPAT_INCLUDE=${expat.dev}/include" + "-sEXPAT_LIBPATH=${expat.out}/lib" ] ++ optional (toolset != null) "toolset=${toolset}" ++ optional (mpi != null) "--user-config=user-config.jam"; nativeB2Args = concatStringsSep " " (genericB2Flags ++ nativeB2Flags); @@ -148,7 +148,7 @@ stdenv.mkDerivation { configureScript = "./bootstrap.sh"; configureFlags = commonConfigureFlags ++ [ - "--with-icu=${icu}" + "--with-icu=${icu.dev}" "--with-python=${python.interpreter}" ] ++ optional (toolset != null) "--with-toolset=${toolset}"; @@ -159,6 +159,7 @@ stdenv.mkDerivation { postFixup = fixup; outputs = [ "out" "dev" "lib" ]; + setOutputFlags = false; crossAttrs = rec { buildInputs = [ expat.crossDrv zlib.crossDrv bzip2.crossDrv ]; diff --git a/pkgs/development/libraries/cairo/default.nix b/pkgs/development/libraries/cairo/default.nix index 537107f3f6a8..2e4821b30738 100644 --- a/pkgs/development/libraries/cairo/default.nix +++ b/pkgs/development/libraries/cairo/default.nix @@ -19,6 +19,9 @@ stdenv.mkDerivation rec { sha256 = "0lmjlzmghmr27y615px9hkm552x7ap6pmq9mfbzr6smp8y2b6g31"; }; + outputs = [ "dev" "out" "docdev" ]; + outputBin = "dev"; # very small + nativeBuildInputs = [ pkgconfig libiconv @@ -29,12 +32,12 @@ stdenv.mkDerivation rec { ]); propagatedBuildInputs = - with xorg; [ xorg.xlibsWrapper fontconfig expat freetype pixman zlib libpng ] + with xorg; [ libXext fontconfig expat freetype pixman zlib libpng ] ++ optional (!stdenv.isDarwin) libXrender ++ optionals xcbSupport [ libxcb xcbutil ] ++ optional gobjectSupport glib - ++ optionals glSupport [ mesa_noglu ] - ; + ++ optional glSupport mesa_noglu + ; # TODO: maybe liblzo but what would it be for here? configureFlags = if stdenv.isDarwin then [ "--disable-dependency-tracking" @@ -50,29 +53,24 @@ stdenv.mkDerivation rec { preConfigure = # On FreeBSD, `-ldl' doesn't exist. - (stdenv.lib.optionalString stdenv.isFreeBSD + stdenv.lib.optionalString stdenv.isFreeBSD '' for i in "util/"*"/Makefile.in" boilerplate/Makefile.in do cat "$i" | sed -es/-ldl//g > t mv t "$i" done - '') - + + '' + + '' # Work around broken `Requires.private' that prevents Freetype # `-I' flags to be propagated. sed -i "src/cairo.pc.in" \ - -es'|^Cflags:\(.*\)$|Cflags: \1 -I${freetype}/include/freetype2 -I${freetype}/include|g' + -es'|^Cflags:\(.*\)$|Cflags: \1 -I${freetype.dev}/include/freetype2 -I${freetype.dev}/include|g' ''; enableParallelBuilding = true; - # The default `--disable-gtk-doc' is ignored. - postInstall = "rm -rf $out/share/gtk-doc" - + stdenv.lib.optionalString stdenv.isDarwin ('' - #newline - '' + glib.flattenInclude - ); + postInstall = stdenv.lib.optionalString stdenv.isDarwin glib.flattenInclude; meta = with stdenv.lib; { description = "A 2D graphics library with support for multiple output devices"; diff --git a/pkgs/development/libraries/cogl/1.20.nix b/pkgs/development/libraries/cogl/1.20.nix index 5eb12fe29989..ae202b093777 100644 --- a/pkgs/development/libraries/cogl/1.20.nix +++ b/pkgs/development/libraries/cogl/1.20.nix @@ -34,7 +34,7 @@ stdenv.mkDerivation rec { COGL_PANGO_DEP_CFLAGS = stdenv.lib.optionalString (stdenv.isDarwin && pangoSupport) - "-I${pango}/include/pango-1.0 -I${cairo}/include/cairo"; + "-I${pango.dev}/include/pango-1.0 -I${cairo.dev}/include/cairo"; NIX_LDFLAGS = stdenv.lib.optionalString stdenv.isDarwin "-lintl"; diff --git a/pkgs/development/libraries/cogl/1.22.nix b/pkgs/development/libraries/cogl/1.22.nix index ce4fda5bd468..88bb67077490 100644 --- a/pkgs/development/libraries/cogl/1.22.nix +++ b/pkgs/development/libraries/cogl/1.22.nix @@ -34,7 +34,7 @@ stdenv.mkDerivation rec { COGL_PANGO_DEP_CFLAGS = stdenv.lib.optionalString (stdenv.isDarwin && pangoSupport) - "-I${pango}/include/pango-1.0 -I${cairo}/include/cairo"; + "-I${pango.dev}/include/pango-1.0 -I${cairo.dev}/include/cairo"; NIX_LDFLAGS = stdenv.lib.optionalString stdenv.isDarwin "-lintl"; diff --git a/pkgs/development/libraries/cogl/default.nix b/pkgs/development/libraries/cogl/default.nix index a4a20fce023a..e45702090665 100644 --- a/pkgs/development/libraries/cogl/default.nix +++ b/pkgs/development/libraries/cogl/default.nix @@ -35,7 +35,7 @@ stdenv.mkDerivation rec { COGL_PANGO_DEP_CFLAGS = stdenv.lib.optionalString (stdenv.isDarwin && pangoSupport) - "-I${pango}/include/pango-1.0 -I${cairo}/include/cairo"; + "-I${pango.dev}/include/pango-1.0 -I${cairo.dev}/include/cairo"; NIX_LDFLAGS = stdenv.lib.optionalString stdenv.isDarwin "-lintl"; diff --git a/pkgs/development/libraries/cyrus-sasl/default.nix b/pkgs/development/libraries/cyrus-sasl/default.nix index 059b0ab0042a..21ad12869f9c 100644 --- a/pkgs/development/libraries/cyrus-sasl/default.nix +++ b/pkgs/development/libraries/cyrus-sasl/default.nix @@ -9,6 +9,8 @@ stdenv.mkDerivation rec { sha256 = "1hvvbcsg21nlncbgs0cgn3iwlnb3vannzwsp6rwvnn9ba4v53g4g"; }; + outputs = [ "dev" "bin" "out" "man" "docdev" ]; + buildInputs = [ openssl db gettext kerberos ] ++ lib.optional stdenv.isFreeBSD autoreconfHook @@ -39,6 +41,12 @@ stdenv.mkDerivation rec { installFlags = lib.optional stdenv.isDarwin [ "framedir=$(out)/Library/Frameworks/SASL2.framework" ]; + postInstall = '' + for f in $out/lib/*.la $out/lib/sasl2/*.la; do + substituteInPlace $f --replace "${openssl.dev}/lib" "${openssl.out}/lib" + done + ''; + meta = { homepage = "http://cyrusimap.web.cmu.edu/"; description = "library for adding authentication support to connection-based protocols"; diff --git a/pkgs/development/libraries/dbus-glib/default.nix b/pkgs/development/libraries/dbus-glib/default.nix index 480dc61897bb..59d227f0e868 100644 --- a/pkgs/development/libraries/dbus-glib/default.nix +++ b/pkgs/development/libraries/dbus-glib/default.nix @@ -8,13 +8,14 @@ stdenv.mkDerivation rec { sha256 = "1xi1v1msz75qs0s4lkyf1psrksdppa3hwkg0mznc6gpw5flg3hdz"; }; - outputs = [ "out" "doc" ]; + outputs = [ "dev" "out" "docdev" ]; + outputBin = "dev"; nativeBuildInputs = [ pkgconfig gettext ]; buildInputs = [ expat libiconv ]; - propagatedBuildInputs = [ dbus.libs glib ]; + propagatedBuildInputs = [ dbus glib ]; doCheck = true; diff --git a/pkgs/development/libraries/dbus/default.nix b/pkgs/development/libraries/dbus/default.nix index 7f5e2f6311b2..83635d9739f1 100644 --- a/pkgs/development/libraries/dbus/default.nix +++ b/pkgs/development/libraries/dbus/default.nix @@ -1,5 +1,4 @@ -{ stdenv, fetchurl, pkgconfig, autoreconfHook -, expat, systemd, glib, dbus_glib, python +{ stdenv, lib, fetchurl, pkgconfig, expat, systemd, glib, dbus_glib, python , libX11 ? null, libICE ? null, libSM ? null, x11Support ? (stdenv.isLinux || stdenv.isDarwin) }: assert x11Support -> libX11 != null @@ -10,108 +9,77 @@ let version = "1.8.20"; sha256 = "0fkh3d5r57a659hw9lqnw4v0bc5556vx54fsf7l9c732ci6byksw"; - inherit (stdenv) lib; - - buildInputsX = lib.optionals x11Support [ libX11 libICE libSM ]; - - # also other parts than "libs" need this statically linked lib - makeInternalLib = "(cd dbus && make libdbus-internal.la)"; - - systemdOrEmpty = lib.optional stdenv.isLinux systemd; - - # A generic builder for individual parts (subdirs) of D-Bus - dbus_drv = name: subdirs: merge: stdenv.mkDerivation (lib.mergeAttrsByFuncDefaultsClean [{ - - name = "dbus-${name}-${version}"; +self = stdenv.mkDerivation { + name = "dbus-${version}"; src = fetchurl { url = "http://dbus.freedesktop.org/releases/dbus/dbus-${version}.tar.gz"; inherit sha256; }; - patches = [ - ./ignore-missing-includedirs.patch - ./ucred-dirty-hack.patch - ./no-create-dirs.patch - ] - ++ lib.optional (stdenv.isSunOS || stdenv.isLinux) ./implement-getgrouplist.patch - ; - - # build only the specified subdirs - postPatch = "sed '/SUBDIRS/s/=.*/=" + subdirs + "/' -i Makefile.am\n" - # use already packaged libdbus instead of trying to build it again - + lib.optionalString (name != "libs") '' - for mfile in */Makefile.am; do - sed 's,\$(top_builddir)/dbus/\(libdbus-[0-9]\),${libs}/lib/\1,g' -i "$mfile" - done - ''; - - nativeBuildInputs = [ pkgconfig autoreconfHook ]; - propagatedBuildInputs = [ expat ]; - - preAutoreconf = '' - substituteInPlace tools/Makefile.am --replace 'install-localstatelibDATA:' 'disabled:' + patches = [ ./ignore-missing-includedirs.patch ] + ++ lib.optional stdenv.isSunOS ./implement-getgrouplist.patch; + postPatch = '' + substituteInPlace tools/Makefile.in \ + --replace 'install-localstatelibDATA:' 'disabled:' \ + --replace 'install-data-local:' 'disabled:' \ + --replace 'installcheck-local:' 'disabled:' + substituteInPlace bus/Makefile.in \ + --replace '$(mkinstalldirs) $(DESTDIR)$(localstatedir)/run/dbus' ':' + '' + /* cleanup of runtime references */ '' + substituteInPlace ./dbus/dbus-sysdeps-unix.c \ + --replace 'DBUS_BINDIR "/dbus-launch"' "\"$lib/bin/dbus-launch\"" + substituteInPlace ./tools/dbus-launch.c \ + --replace 'DBUS_DAEMONDIR"/dbus-daemon"' '"/run/current-system/sw/bin/dbus-daemon"' ''; - preConfigure = '' - patchShebangs . - ''; + outputs = [ "dev" "out" "lib" "doc" ]; + + nativeBuildInputs = [ pkgconfig ]; + propagatedBuildInputs = [ expat ]; + buildInputs = lib.optional stdenv.isLinux systemd + ++ lib.optionals x11Support [ libX11 libICE libSM ]; + # ToDo: optional selinux? configureFlags = [ "--localstatedir=/var" "--sysconfdir=/etc" "--with-session-socket-dir=/tmp" "--with-systemdsystemunitdir=$(out)/etc/systemd/system" + # this package installs nothing into those dirs and they create a dependency + "--datadir=/run/current-system/sw/share" + "--libexecdir=$(out)/libexec" # we don't need dbus-daemon-launch-helper ] ++ lib.optional (!x11Support) "--without-x"; - enableParallelBuilding = true; - - doCheck = true; - - installFlags = "sysconfdir=$(out)/etc"; - - } merge ]); - - libs = dbus_drv "libs" "dbus" { # Enable X11 autolaunch support in libdbus. This doesn't actually depend on X11 # (it just execs dbus-launch in dbus.tools), contrary to what the configure script demands. - NIX_CFLAGS_COMPILE = "-DDBUS_ENABLE_X11_AUTOLAUNCH=1"; - buildInputs = [ systemdOrEmpty ]; - meta.platforms = stdenv.lib.platforms.all; - }; - - - attrs = rec { - # If you change much fix indentation + # problems building without x11Support so disabled in that case for now + NIX_CFLAGS_COMPILE = lib.optionalString x11Support "-DDBUS_ENABLE_X11_AUTOLAUNCH=1"; + NIX_CFLAGS_LINK = lib.optionalString (!stdenv.isDarwin) "-Wl,--as-needed"; - # This package has been split because most applications only need dbus.lib - # which serves as an interface to a *system-wide* daemon, - # see e.g. http://en.wikipedia.org/wiki/D-Bus#Architecture . + enableParallelBuilding = true; - inherit libs; + doCheck = true; - tools = dbus_drv "tools" "tools bus" { - preBuild = makeInternalLib; - buildInputs = buildInputsX ++ systemdOrEmpty ++ [ libs ]; - NIX_CFLAGS_LINK = - stdenv.lib.optionalString (!stdenv.isDarwin && !stdenv.isSunOS) "-Wl,--as-needed " - + "-ldbus-1"; + installFlags = "sysconfdir=$(out)/etc datadir=$(out)/share"; - # don't provide another dbus-1.pc (with incorrect include and link dirs), - # also remove useless empty dirs - postInstall = '' - rm "$out"/lib/pkgconfig/dbus-1.pc - rmdir --parents --ignore-fail-on-non-empty "$out"/{lib/pkgconfig,share/dbus-1/*} + # it's executed from $lib by absolute path + postFixup = '' + moveToOutput bin/dbus-launch "$lib" + ln -s "$lib/bin/dbus-launch" "$out/bin/" ''; - meta.platforms = with stdenv.lib.platforms; allBut darwin; - }; - - daemon = tools; + passthru = { + dbus-launch = "${self.lib}/bin/dbus-launch"; + daemon = self.out; + }; - docs = dbus_drv "docs" "doc" { - postInstall = ''rm -r "$out/lib"''; + meta = with stdenv.lib; { + description = "Simple interprocess messaging system"; + homepage = http://www.freedesktop.org/wiki/Software/dbus/; + license = licenses.gpl2Plus; # most is also under AFL-2.1 + platforms = platforms.unix; + }; }; -}; -in attrs.libs // attrs +in self diff --git a/pkgs/development/libraries/dbus/no-create-dirs.patch b/pkgs/development/libraries/dbus/no-create-dirs.patch deleted file mode 100644 index cf10d9775991..000000000000 --- a/pkgs/development/libraries/dbus/no-create-dirs.patch +++ /dev/null @@ -1,26 +0,0 @@ -diff --git a/bus/Makefile.am b/bus/Makefile.am -index 6cbc09a..be60bb8 100644 ---- a/bus/Makefile.am -+++ b/bus/Makefile.am -@@ -212,7 +212,6 @@ clean-local: - /bin/rm *.bb *.bbg *.da *.gcov || true - - install-data-hook: -- $(mkinstalldirs) $(DESTDIR)$(localstatedir)/run/dbus - $(mkinstalldirs) $(DESTDIR)$(configdir)/system.d - $(mkinstalldirs) $(DESTDIR)$(configdir)/session.d - $(mkinstalldirs) $(DESTDIR)$(datadir)/dbus-1/services -diff --git a/tools/Makefile.am b/tools/Makefile.am -index cfd54b8..b6e28f9 100644 ---- a/tools/Makefile.am -+++ b/tools/Makefile.am -@@ -74,7 +74,7 @@ CLEANFILES = \ - - # create the /var/lib/dbus directory for dbus-uuidgen - install-data-local: -- $(MKDIR_P) $(DESTDIR)$(localstatedir)/lib/dbus -+ : - - installcheck-local: -- test -d $(DESTDIR)$(localstatedir)/lib/dbus -+ : diff --git a/pkgs/development/libraries/dbus/ucred-dirty-hack.patch b/pkgs/development/libraries/dbus/ucred-dirty-hack.patch deleted file mode 100644 index a07abcc15fb0..000000000000 --- a/pkgs/development/libraries/dbus/ucred-dirty-hack.patch +++ /dev/null @@ -1,18 +0,0 @@ -diff --git a/dbus/dbus-sysdeps-unix.c b/dbus/dbus-sysdeps-unix.c -index b4ecc96..267984a 100644 ---- a/dbus/dbus-sysdeps-unix.c -+++ b/dbus/dbus-sysdeps-unix.c -@@ -1635,6 +1635,13 @@ write_credentials_byte (int server_fd, - } - } - -+struct ucred -+{ -+ pid_t pid; /* PID of sending process. */ -+ uid_t uid; /* UID of sending process. */ -+ gid_t gid; /* GID of sending process. */ -+}; -+ - /** - * Reads a single byte which must be nul (an error occurs otherwise), - * and reads unix credentials if available. Clears the credentials diff --git a/pkgs/development/libraries/epoxy/default.nix b/pkgs/development/libraries/epoxy/default.nix index daffae90b127..009624096605 100644 --- a/pkgs/development/libraries/epoxy/default.nix +++ b/pkgs/development/libraries/epoxy/default.nix @@ -13,6 +13,8 @@ stdenv.mkDerivation rec { sha256 = "0dfkd4xbp7v5gwsf6qwaraz54yzizf3lj5ymyc0msjn0adq3j5yl"; }; + outputs = [ "dev" "out" ]; + nativeBuildInputs = [ autoreconfHook pkgconfig utilmacros python ]; buildInputs = [ mesa libX11 ]; diff --git a/pkgs/development/libraries/expat/default.nix b/pkgs/development/libraries/expat/default.nix index 96d46649d916..774190278cb3 100644 --- a/pkgs/development/libraries/expat/default.nix +++ b/pkgs/development/libraries/expat/default.nix @@ -10,8 +10,13 @@ stdenv.mkDerivation rec { patches = [ ./CVE-2015-1283.patch ]; + outputs = [ "dev" "out" ]; # TODO: fix referrers + outputBin = "dev"; + configureFlags = stdenv.lib.optional stdenv.isFreeBSD "--with-pic"; + outputMan = "dev"; # tiny page for a dev tool + meta = with stdenv.lib; { homepage = http://www.libexpat.org/; description = "A stream-oriented XML parser library written in C"; diff --git a/pkgs/development/libraries/ffmpeg/generic.nix b/pkgs/development/libraries/ffmpeg/generic.nix index d8c488d2999f..d50c20331e4a 100644 --- a/pkgs/development/libraries/ffmpeg/generic.nix +++ b/pkgs/development/libraries/ffmpeg/generic.nix @@ -71,6 +71,10 @@ stdenv.mkDerivation rec { patchPhase = ''patchShebangs .''; + outputs = [ "dev" "out" "bin" ] + ++ optional (reqMin "1.0") "doc" ; # just dev-doc + setOutputFlags = false; # doesn't accept all and stores configureFlags in libs! + configureFlags = [ # License "--enable-gpl" @@ -155,6 +159,11 @@ stdenv.mkDerivation rec { enableParallelBuilding = true; + postFixup = '' + moveToOutput bin "$bin" + moveToOutput share/ffmpeg/examples "$doc" + ''; + /* Cross-compilation is untested, consider this an outline, more work needs to be done to portions of the build to get it to work correctly */ crossAttrs = let diff --git a/pkgs/development/libraries/fftw/default.nix b/pkgs/development/libraries/fftw/default.nix index dfa4541e34b7..a7a02521c69c 100644 --- a/pkgs/development/libraries/fftw/default.nix +++ b/pkgs/development/libraries/fftw/default.nix @@ -14,6 +14,9 @@ stdenv.mkDerivation rec { sha256 = "10h9mzjxnwlsjziah4lri85scc05rlajz39nqf3mbh4vja8dw34g"; }; + outputs = [ "dev" "out" "doc" ]; # it's dev-doc only + outputBin = "dev"; # fftw-wisdom + configureFlags = [ "--enable-shared" "--disable-static" "--enable-threads" diff --git a/pkgs/development/libraries/fontconfig/2.10.nix b/pkgs/development/libraries/fontconfig/2.10.nix index 2951dbb44d4f..fea9efde1cfd 100644 --- a/pkgs/development/libraries/fontconfig/2.10.nix +++ b/pkgs/development/libraries/fontconfig/2.10.nix @@ -16,6 +16,8 @@ stdenv.mkDerivation rec { } ; + outputs = [ "dev" "lib" "bin" "out" ]; # $out contains all the config + propagatedBuildInputs = [ freetype ]; buildInputs = [ pkgconfig expat ]; diff --git a/pkgs/development/libraries/fontconfig/default.nix b/pkgs/development/libraries/fontconfig/default.nix index b03528de2d5d..6acf1ebce29c 100644 --- a/pkgs/development/libraries/fontconfig/default.nix +++ b/pkgs/development/libraries/fontconfig/default.nix @@ -36,6 +36,8 @@ stdenv.mkDerivation rec { }) ]; + outputs = [ "dev" "lib" "bin" "out" ]; # $out contains all the config + propagatedBuildInputs = [ freetype ]; buildInputs = [ pkgconfig expat ]; @@ -65,7 +67,7 @@ stdenv.mkDerivation rec { postInstall = '' cd "$out/etc/fonts" rm conf.d/{50-user,51-local}.conf - "${libxslt}/bin/xsltproc" --stringparam fontDirectories "${fontbhttf}" \ + "${libxslt.bin}/bin/xsltproc" --stringparam fontDirectories "${fontbhttf}" \ --stringparam fontconfig "$out" \ --stringparam fontconfigConfigVersion "${configVersion}" \ --path $out/share/xml/fontconfig \ diff --git a/pkgs/development/libraries/fontconfig/make-fonts-cache.nix b/pkgs/development/libraries/fontconfig/make-fonts-cache.nix index 1321948c3c81..b996cd228c77 100644 --- a/pkgs/development/libraries/fontconfig/make-fonts-cache.nix +++ b/pkgs/development/libraries/fontconfig/make-fonts-cache.nix @@ -16,7 +16,7 @@ runCommand "fc-cache" <?xml version='1.0'?> <!DOCTYPE fontconfig SYSTEM 'fonts.dtd'> <fontconfig> - <include>${fontconfig}/etc/fonts/fonts.conf</include> + <include>${fontconfig.out}/etc/fonts/fonts.conf</include> <cachedir>$out</cachedir> EOF cat "$fontDirsPath" >> fonts.conf diff --git a/pkgs/development/libraries/fontconfig/make-fonts-conf.nix b/pkgs/development/libraries/fontconfig/make-fonts-conf.nix index 2b02e0df7a04..2d0a21ea9ddf 100644 --- a/pkgs/development/libraries/fontconfig/make-fonts-conf.nix +++ b/pkgs/development/libraries/fontconfig/make-fonts-conf.nix @@ -8,9 +8,9 @@ runCommand "fonts.conf" } '' xsltproc --stringparam fontDirectories "$fontDirectories" \ - --stringparam fontconfig "${fontconfig}" \ + --stringparam fontconfig "${fontconfig.out}" \ --stringparam fontconfigConfigVersion "${fontconfig.configVersion}" \ - --path ${fontconfig}/share/xml/fontconfig \ - ${./make-fonts-conf.xsl} ${fontconfig}/etc/fonts/fonts.conf \ + --path ${fontconfig.out}/share/xml/fontconfig \ + ${./make-fonts-conf.xsl} ${fontconfig.out}/etc/fonts/fonts.conf \ > $out '' diff --git a/pkgs/development/libraries/freetype/default.nix b/pkgs/development/libraries/freetype/default.nix index 61d8cb582a01..81e98056e90b 100644 --- a/pkgs/development/libraries/freetype/default.nix +++ b/pkgs/development/libraries/freetype/default.nix @@ -35,12 +35,16 @@ stdenv.mkDerivation rec { "0wcjf9hiymplgqm3szla633i417pb57vpzzs2dyl1dnmcxgqa2y8") ]; + outputs = [ "dev" "out" ]; + propagatedBuildInputs = [ zlib bzip2 libpng ]; # needed when linking against freetype # dependence on harfbuzz is looser than the reverse dependence buildInputs = [ pkgconfig which ] # FreeType requires GNU Make, which is not part of stdenv on FreeBSD. ++ optional (!stdenv.isLinux) gnumake; + configureFlags = "--disable-static --bindir=$(dev)/bin"; + # from Gentoo, see https://bugzilla.redhat.com/show_bug.cgi?id=506840 NIX_CFLAGS_COMPILE = "-fno-strict-aliasing"; # The asm for armel is written with the 'asm' keyword. diff --git a/pkgs/development/libraries/gdk-pixbuf/default.nix b/pkgs/development/libraries/gdk-pixbuf/default.nix index 18562d1d12e3..756ebf816199 100644 --- a/pkgs/development/libraries/gdk-pixbuf/default.nix +++ b/pkgs/development/libraries/gdk-pixbuf/default.nix @@ -13,12 +13,17 @@ stdenv.mkDerivation rec { sha256 = "0cfh87aqyqbfcwpbv1ihgmgfcn66il5q2n8yjyl8gxkjmkqp2rrb"; }; + outputs = [ "dev" "out" "docdev" ]; + outputBin = "dev"; + setupHook = ./setup-hook.sh; + enableParallelBuilding = true; + # !!! We might want to factor out the gdk-pixbuf-xlib subpackage. - buildInputs = [ libX11 libintlOrEmpty ]; + buildInputs = [ libX11 gobjectIntrospection ] ++ libintlOrEmpty; - nativeBuildInputs = [ pkgconfig gobjectIntrospection ]; + nativeBuildInputs = [ pkgconfig ]; propagatedBuildInputs = [ glib libtiff libjpeg libpng jasper ]; @@ -34,12 +39,11 @@ stdenv.mkDerivation rec { # The tests take an excessive amount of time (> 1.5 hours) and memory (> 6 GB). inherit (doCheck); - postInstall = "rm -rf $out/share/gtk-doc"; - - meta = { + meta = with stdenv.lib; { description = "A library for image loading and manipulation"; homepage = http://library.gnome.org/devel/gdk-pixbuf/; - maintainers = [ stdenv.lib.maintainers.eelco ]; - platforms = stdenv.lib.platforms.unix; + maintainers = [ maintainers.eelco ]; + platforms = platforms.unix; }; } + diff --git a/pkgs/development/libraries/geoclue/2.0.nix b/pkgs/development/libraries/geoclue/2.0.nix index 83becae05a4c..0c22cc9ff9fd 100644 --- a/pkgs/development/libraries/geoclue/2.0.nix +++ b/pkgs/development/libraries/geoclue/2.0.nix @@ -3,11 +3,11 @@ }: stdenv.mkDerivation rec { - name = "geoclue-2.4.2"; + name = "geoclue-2.4.3"; src = fetchurl { url = "http://www.freedesktop.org/software/geoclue/releases/2.4/${name}.tar.xz"; - sha256 = "0g4krigdaf5ipkp4mi16rca62crr8pdk3wkhm0fxbcqnil75fyy4"; + sha256 = "0pk07k65dlw37nz8z5spksivsv5nh96xmbi336rf2yfxf2ldpadd"; }; buildInputs = diff --git a/pkgs/development/libraries/gettext/default.nix b/pkgs/development/libraries/gettext/default.nix index c96d241ee903..940df56c03c3 100644 --- a/pkgs/development/libraries/gettext/default.nix +++ b/pkgs/development/libraries/gettext/default.nix @@ -50,7 +50,7 @@ stdenv.mkDerivation rec { sed -i -e "s/\(am_libgettextlib_la_OBJECTS = \)error.lo/\\1/" gettext-tools/gnulib-lib/Makefile.in ''; - buildInputs = [ xz ] ++ lib.optional (!stdenv.isLinux) libiconv; + buildInputs = [ xz xz.bin libiconv ]; enableParallelBuilding = true; diff --git a/pkgs/development/libraries/git2/default.nix b/pkgs/development/libraries/git2/default.nix index fb380d60cf92..3cf429ab1d73 100644 --- a/pkgs/development/libraries/git2/default.nix +++ b/pkgs/development/libraries/git2/default.nix @@ -1,4 +1,4 @@ -{stdenv, fetchurl, pkgconfig, cmake, zlib, python, libssh2, openssl, http-parser, libiconv}: +{ stdenv, fetchurl, pkgconfig, cmake, zlib, python, libssh2, openssl, http-parser, libiconv }: stdenv.mkDerivation (rec { version = "0.23.2"; diff --git a/pkgs/development/libraries/glfw/3.x.nix b/pkgs/development/libraries/glfw/3.x.nix index 681137cd590b..094856b66ab7 100644 --- a/pkgs/development/libraries/glfw/3.x.nix +++ b/pkgs/development/libraries/glfw/3.x.nix @@ -21,6 +21,7 @@ stdenv.mkDerivation rec { ]; cmakeFlags = "-DBUILD_SHARED_LIBS=ON"; + NIX_LDFLAGS= "-lpthread -L${stdenv.cc.libc.out}/lib"; meta = with stdenv.lib; { description = "Multi-platform library for creating OpenGL contexts and managing input, including keyboard, mouse, joystick and time"; diff --git a/pkgs/development/libraries/glib-networking/default.nix b/pkgs/development/libraries/glib-networking/default.nix index 6bb3c8c1e5a2..fc4707aedb75 100644 --- a/pkgs/development/libraries/glib-networking/default.nix +++ b/pkgs/development/libraries/glib-networking/default.nix @@ -13,10 +13,12 @@ stdenv.mkDerivation rec { sha256 = "1cchmi08jpjypgmm9i7xzh5qfg2q5k61kry9ns8mhw3z44a440ym"; }; + outputs = [ "dev" "out" ]; # to deal with propagatedBuildInputs + configureFlags = "--with-ca-certificates=/etc/ssl/certs/ca-certificates.crt"; preBuild = '' - sed -e "s@${glib}/lib/gio/modules@$out/lib/gio/modules@g" -i $(find . -name Makefile) + sed -e "s@${glib.out}/lib/gio/modules@$out/lib/gio/modules@g" -i $(find . -name Makefile) ''; nativeBuildInputs = [ pkgconfig intltool ]; diff --git a/pkgs/development/libraries/glib/default.nix b/pkgs/development/libraries/glib/default.nix index 9dd927d55ced..120d398bd44d 100644 --- a/pkgs/development/libraries/glib/default.nix +++ b/pkgs/development/libraries/glib/default.nix @@ -31,12 +31,12 @@ let # This is intended to be run in postInstall of any package # which has $out/include/ containing just some disjunct directories. flattenInclude = '' - for dir in "$out"/include/*; do - cp -r "$dir"/* "$out/include/" + for dir in "''${!outputInclude}"/include/*; do + cp -r "$dir"/* "''${!outputInclude}/include/" rm -r "$dir" ln -s . "$dir" done - ln -sr -t "$out/include/" "$out"/lib/*/include/* 2>/dev/null || true + ln -sr -t "''${!outputInclude}/include/" "''${!outputInclude}"/lib/*/include/* 2>/dev/null || true ''; ver_maj = "2.46"; @@ -53,21 +53,22 @@ stdenv.mkDerivation rec { patches = optional stdenv.isDarwin ./darwin-compilation.patch ++ optional doCheck ./skip-timer-test.patch; + outputs = [ "dev" "out" "docdev" ]; + outputBin = "dev"; + setupHook = ./setup-hook.sh; - buildInputs = [ libelf ] + buildInputs = [ libelf setupHook pcre ] ++ optionals doCheck [ tzdata libxml2 desktop_file_utils shared_mime_info ]; nativeBuildInputs = [ pkgconfig gettext perl python ]; - propagatedBuildInputs = [ pcre zlib libffi libiconv ] + propagatedBuildInputs = [ zlib libffi libiconv ] ++ libintlOrEmpty; - LIBELF_CFLAGS = optional stdenv.isFreeBSD "-I${libelf}"; - LIBELF_LIBS = optional stdenv.isFreeBSD "-L${libelf} -lelf"; - - configureFlags = - optional stdenv.isDarwin "--disable-compile-warnings" + # internal pcre would only add <200kB, but it's relatively common + configureFlags = [ "--with-pcre=system" ] + ++ optional stdenv.isDarwin "--disable-compile-warnings" ++ optional (stdenv.isFreeBSD || stdenv.isSunOS) "--with-libiconv=gnu" ++ optional stdenv.isSunOS "--disable-dtrace"; @@ -79,6 +80,9 @@ stdenv.mkDerivation rec { sed -i -e 's|inotify.h|foobar-inotify.h|g' configure ''; + LIBELF_CFLAGS = optional stdenv.isFreeBSD "-I${libelf}"; + LIBELF_LIBS = optional stdenv.isFreeBSD "-L${libelf} -lelf"; + preBuild = optionalString stdenv.isDarwin '' export MACOSX_DEPLOYMENT_TARGET= @@ -87,6 +91,12 @@ stdenv.mkDerivation rec { enableParallelBuilding = true; DETERMINISTIC_BUILD = 1; + postInstall = '' + moveToOutput "share/glib-2.0" "$dev" + substituteInPlace "$dev/bin/gdbus-codegen" --replace "$out" "$dev" + sed -i "$dev/bin/glib-gettextize" -e "s|^gettext_dir=.*|gettext_dir=$dev/share/glib-2.0/gettext|" + ''; + inherit doCheck; preCheck = optionalString doCheck '' export LD_LIBRARY_PATH="$NIX_BUILD_TOP/${name}/glib/.libs:$LD_LIBRARY_PATH" @@ -95,7 +105,7 @@ stdenv.mkDerivation rec { export XDG_RUNTIME_HOME="$TMP" export HOME="$TMP" export XDG_DATA_DIRS="${desktop_file_utils}/share:${shared_mime_info}/share" - export G_TEST_DBUS_DAEMON="${dbus_daemon}/bin/dbus-daemon" + export G_TEST_DBUS_DAEMON="${dbus_daemon.out}/bin/dbus-daemon" substituteInPlace gio/tests/desktop-files/home/applications/epiphany-weather-for-toronto-island-9c6a4e022b17686306243dada811d550d25eb1fb.desktop --replace "Exec=/bin/true" "Exec=${coreutils}/bin/true" # Needs machine-id, comment the test @@ -109,8 +119,6 @@ stdenv.mkDerivation rec { sed -e '/g_subprocess_launcher_set_environ (launcher, envp);/a g_subprocess_launcher_setenv (launcher, "PATH", g_getenv("PATH"), TRUE);' -i gio/tests/gsubprocess.c ''; - postInstall = ''rm -rvf $out/share/gtk-doc''; - passthru = { gioModuleDir = "lib/gio/modules"; inherit flattenInclude; diff --git a/pkgs/development/libraries/glib/setup-hook.sh b/pkgs/development/libraries/glib/setup-hook.sh index ca7e326bd02e..c5cf293902cd 100644 --- a/pkgs/development/libraries/glib/setup-hook.sh +++ b/pkgs/development/libraries/glib/setup-hook.sh @@ -1,5 +1,3 @@ -# Install gschemas, if any, in a package-specific directory -installFlagsArray+=("gsettingsschemadir=$out/share/gsettings-schemas/$name/glib-2.0/schemas/") make_glib_find_gsettings_schemas() { # For packages that need gschemas of other packages (e.g. empathy) @@ -7,17 +5,22 @@ make_glib_find_gsettings_schemas() { addToSearchPath GSETTINGS_SCHEMAS_PATH "$1/share/gsettings-schemas/"* fi } - envHooks+=(make_glib_find_gsettings_schemas) +# Install gschemas, if any, in a package-specific directory +glibPreInstallPhase() { + installFlagsArray+=("gsettingsschemadir=${!outputLib}/share/gsettings-schemas/$name/glib-2.0/schemas/") +} +preInstallPhases+=(glibPreInstallPhase) + glibPreFixupPhase() { # Move gschemas in case the install flag didn't help - if [ -d "$out/share/glib-2.0/schemas" ]; then - mkdir -p "$out/share/gsettings-schemas/$name/glib-2.0" - mv "$out/share/glib-2.0/schemas" "$out/share/gsettings-schemas/$name/glib-2.0/" + if [ -d "${!outputLib}/share/glib-2.0/schemas" ]; then + mkdir -p "${!outputLib}/share/gsettings-schemas/$name/glib-2.0" + mv "${!outputLib}/share/glib-2.0/schemas" "${!outputLib}/share/gsettings-schemas/$name/glib-2.0/" fi - addToSearchPath GSETTINGS_SCHEMAS_PATH "$out/share/gsettings-schemas/$name" + addToSearchPath GSETTINGS_SCHEMAS_PATH "${!outputLib}/share/gsettings-schemas/$name" } +preFixupPhases+=(glibPreFixupPhase) -preFixupPhases="$preFixupPhases glibPreFixupPhase" diff --git a/pkgs/development/libraries/glibc/builder.sh b/pkgs/development/libraries/glibc/builder.sh index d60b143a1eca..85f27c7b3559 100644 --- a/pkgs/development/libraries/glibc/builder.sh +++ b/pkgs/development/libraries/glibc/builder.sh @@ -12,8 +12,10 @@ postConfigure() { export NIX_DONT_SET_RPATH=1 unset CFLAGS -} + # Apparently --bindir is not respected. + makeFlagsArray+=("bindir=$bin/bin" "sbindir=$bin/sbin" "rootsbindir=$bin/sbin") +} postInstall() { if test -n "$installLocales"; then @@ -25,7 +27,7 @@ postInstall() { if test -n "$linuxHeaders"; then # Include the Linux kernel headers in Glibc, except the `scsi' # subdirectory, which Glibc provides itself. - (cd $out/include && \ + (cd $dev/include && \ ln -sv $(ls -d $linuxHeaders/include/* | grep -v 'scsi$') .) fi @@ -41,6 +43,16 @@ postInstall() { for i in $out/lib/*.a; do strip -S "$i" done + # Put libraries for static linking in a separate output. Note + # that libc_nonshared.a and libpthread_nonshared.a are required + # for dynamically-linked applications. + mkdir -p $static/lib + mv $out/lib/*.a $static/lib + mv $static/lib/lib*_nonshared.a $out/lib + + # Work around a Nix bug: hard links across outputs cause a build failure. + cp $bin/bin/getconf $bin/bin/getconf_ + mv $bin/bin/getconf_ $bin/bin/getconf } genericBuild diff --git a/pkgs/development/libraries/glibc/common.nix b/pkgs/development/libraries/glibc/common.nix index 13d5adcd9b13..893f65c3e205 100644 --- a/pkgs/development/libraries/glibc/common.nix +++ b/pkgs/development/libraries/glibc/common.nix @@ -112,6 +112,8 @@ stdenv.mkDerivation ({ installFlags = [ "sysconfdir=$(out)/etc" ]; + outputs = [ "dev" "out" "bin" "static" ]; + buildInputs = lib.optionals (cross != null) [ gccCross ] ++ lib.optionals withGd [ gd libpng ]; diff --git a/pkgs/development/libraries/glibc/default.nix b/pkgs/development/libraries/glibc/default.nix index 2630cdb127f7..80fc2ce1e93d 100644 --- a/pkgs/development/libraries/glibc/default.nix +++ b/pkgs/development/libraries/glibc/default.nix @@ -64,7 +64,7 @@ in # To avoid a dependency on the build system 'bash'. preFixup = '' - rm $out/bin/{ldd,tzselect,catchsegv,xtrace} + rm $bin/bin/{ldd,tzselect,catchsegv,xtrace} ''; } else {})) diff --git a/pkgs/development/libraries/glibc/info.nix b/pkgs/development/libraries/glibc/info.nix index 1e60856430db..84ec43e11a85 100644 --- a/pkgs/development/libraries/glibc/info.nix +++ b/pkgs/development/libraries/glibc/info.nix @@ -8,6 +8,8 @@ build null { inherit fetchurl stdenv lib; + outputs = [ "out" ]; + configureFlags = [ "--enable-add-ons" ]; buildInputs = [ texinfo perl ]; diff --git a/pkgs/development/libraries/glibc/locales.nix b/pkgs/development/libraries/glibc/locales.nix index 9607d7ecb223..994390cf8290 100644 --- a/pkgs/development/libraries/glibc/locales.nix +++ b/pkgs/development/libraries/glibc/locales.nix @@ -18,6 +18,8 @@ build null { builder = ./locales-builder.sh; + outputs = [ "out" ]; + # Awful hack: `localedef' doesn't allow the path to `locale-archive' # to be overriden, but you *can* specify a prefix, i.e. it will use # <prefix>/<path-to-glibc>/lib/locale/locale-archive. So we use @@ -25,7 +27,7 @@ build null { # $TMPDIR/nix/store/...-glibc-.../lib/locale/locale-archive. buildPhase = '' - mkdir -p $TMPDIR/"$(dirname $(readlink -f $(type -p localedef)))/../lib/locale" + mkdir -p $TMPDIR/"${stdenv.cc.libc.out}/lib/locale" # Hack to allow building of the locales (needed since glibc-2.12) sed -i -e 's,^$(rtld-prefix) $(common-objpfx)locale/localedef,localedef --prefix='$TMPDIR',' ../glibc-2*/localedata/Makefile diff --git a/pkgs/development/libraries/glibc/multi.nix b/pkgs/development/libraries/glibc/multi.nix index b5b4eabe9c74..0d7bed99f22f 100644 --- a/pkgs/development/libraries/glibc/multi.nix +++ b/pkgs/development/libraries/glibc/multi.nix @@ -3,32 +3,26 @@ let nameVersion = builtins.parseDrvName glibc.name; + glibc64 = glibc; in runCommand "${nameVersion.name}-multi-${nameVersion.version}" - { inherit glibc32; - glibc64 = glibc; - } + { outputs = [ "dev" "out" "bin" ]; } # TODO: no static version here (yet) '' - mkdir -p $out - ln -s $glibc64/* $out/ - - rm $out/lib $out/lib64 - mkdir -p $out/lib - ln -s $glibc64/lib/* $out/lib - ln -s $glibc32/lib $out/lib/32 - ln -s lib $out/lib64 + mkdir -p "$out/lib" + ln -s '${glibc64.out}'/lib/* "$out/lib" + ln -s '${glibc32.out}/lib' "$out/lib/32" + ln -s lib "$out/lib64" # fixing ldd RLTDLIST - rm $out/bin - cp -rs $glibc64/bin $out - chmod u+w $out/bin - rm $out/bin/ldd + mkdir -p "$bin/bin" + cp -s '${glibc64.bin}'/bin/* "$bin/bin/" + rm "$bin/bin/ldd" sed -e "s|^RTLDLIST=.*$|RTLDLIST=\"$out/lib/ld-linux-x86-64.so.2 $out/lib/32/ld-linux.so.2\"|g" \ - $glibc64/bin/ldd > $out/bin/ldd - chmod 555 $out/bin/ldd + '${glibc64.bin}/bin/ldd' > "$bin/bin/ldd" + chmod +x "$bin/bin/ldd" - rm $out/include - cp -rs $glibc32/include $out - chmod -R u+w $out/include - cp -rsf $glibc64/include $out + mkdir "$dev" + cp -rs '${glibc32}'/include "$dev/" + chmod +w -R "$dev" + cp -rsf '${glibc64}'/include "$dev/" '' diff --git a/pkgs/development/libraries/gmime/default.nix b/pkgs/development/libraries/gmime/default.nix index 6564fc511867..ee81aec07976 100644 --- a/pkgs/development/libraries/gmime/default.nix +++ b/pkgs/development/libraries/gmime/default.nix @@ -8,9 +8,13 @@ stdenv.mkDerivation rec { sha256 = "0rfzbgsh8ira5p76kdghygl5i3fvmmx4wbw5rp7f8ajc4vxp18g0"; }; + outputs = [ "dev" "out" ]; + nativeBuildInputs = [ pkgconfig ]; propagatedBuildInputs = [ glib zlib libgpgerror ]; + enableParallelBuilding = true; + meta = { homepage = http://spruce.sourceforge.net/gmime/; description = "A C/C++ library for manipulating MIME messages"; diff --git a/pkgs/development/libraries/gmp/5.1.x.nix b/pkgs/development/libraries/gmp/5.1.x.nix index 7b393067ff52..0768df60a794 100644 --- a/pkgs/development/libraries/gmp/5.1.x.nix +++ b/pkgs/development/libraries/gmp/5.1.x.nix @@ -10,6 +10,8 @@ stdenv.mkDerivation rec { sha256 = "0q5i39pxrasgn9qdxzpfbwhh11ph80p57x6hf48m74261d97j83m"; }; + outputs = [ "out" "info" ]; + nativeBuildInputs = [ m4 ]; patches = if stdenv.isDarwin then [ ./need-size-t.patch ] else null; diff --git a/pkgs/development/libraries/gmp/6.x.nix b/pkgs/development/libraries/gmp/6.x.nix index 5025557458cd..a7443c02c5b6 100644 --- a/pkgs/development/libraries/gmp/6.x.nix +++ b/pkgs/development/libraries/gmp/6.x.nix @@ -1,8 +1,8 @@ -{ stdenv, fetchurl, m4, cxx ? true, withStatic ? true }: +{ stdenv, fetchurl, m4, cxx ? true, withStatic ? false }: with { inherit (stdenv.lib) optional optionalString; }; -stdenv.mkDerivation rec { +let self = stdenv.mkDerivation rec { name = "gmp-6.1.0"; src = fetchurl { # we need to use bz2, others aren't in bootstrapping stdenv @@ -10,6 +10,12 @@ stdenv.mkDerivation rec { sha256 = "1s3kddydvngqrpc6i1vbz39raya2jdcl042wi0ksbszgjjllk129"; }; + #outputs TODO: split $cxx due to libstdc++ dependency; maybe port to gmp5; + # maybe let ghc use a version with *.so shared with rest of nixpkgs and *.a added + # - see #5855 for related discussion + outputs = [ "dev" "out" "info" ]; + passthru.static = self.out; + nativeBuildInputs = [ m4 ]; configureFlags = @@ -69,4 +75,5 @@ stdenv.mkDerivation rec { platforms = platforms.all; maintainers = [ maintainers.simons ]; }; -} +}; + in self diff --git a/pkgs/development/libraries/gnutls/generic.nix b/pkgs/development/libraries/gnutls/generic.nix index e51b77eb5b07..b54ea52b880b 100644 --- a/pkgs/development/libraries/gnutls/generic.nix +++ b/pkgs/development/libraries/gnutls/generic.nix @@ -13,7 +13,8 @@ stdenv.mkDerivation { inherit src patches postPatch; - outputs = [ "out" "man" ]; + outputs = [ "dev" "out" "bin" "man" "docdev" ]; + outputInfo = "docdev"; configureFlags = lib.optional stdenv.isLinux "--with-default-trust-store-file=/etc/ssl/certs/ca-certificates.crt" @@ -34,8 +35,6 @@ stdenv.mkDerivation { ++ [ unbound ] ++ lib.optional guileBindings guile; - # AutoreconfHook is temporary until the patch lands upstream to fix - # header file generation with parallel building nativeBuildInputs = [ perl pkgconfig ] ++ nativeBuildInputs; # XXX: Gnulib's `test-select' fails on FreeBSD: @@ -45,9 +44,10 @@ stdenv.mkDerivation { # Fixup broken libtool and pkgconfig files preFixup = lib.optionalString (!stdenv.isDarwin) '' sed ${lib.optionalString tpmSupport "-e 's,-ltspi,-L${trousers}/lib -ltspi,'"} \ - -e 's,-lz,-L${zlib}/lib -lz,' \ - -e 's,-lgmp,-L${gmp}/lib -lgmp,' \ - -i $out/lib/libgnutls.la $out/lib/pkgconfig/gnutls.pc + -e 's,-lz,-L${zlib.out}/lib -lz,' \ + -e 's,-L${gmp.dev}/lib,-L${gmp.out}/lib,' \ + -e 's,-lgmp,-L${gmp.out}/lib -lgmp,' \ + -i $out/lib/*.la "$dev/lib/pkgconfig/gnutls.pc" ''; meta = with lib; { diff --git a/pkgs/development/libraries/gobject-introspection/default.nix b/pkgs/development/libraries/gobject-introspection/default.nix index e13ce337f388..47ccb17e4845 100644 --- a/pkgs/development/libraries/gobject-introspection/default.nix +++ b/pkgs/development/libraries/gobject-introspection/default.nix @@ -19,20 +19,21 @@ stdenv.mkDerivation rec { sha256 = "6658bd3c2b8813eb3e2511ee153238d09ace9d309e4574af27443d87423e4233"; }; - buildInputs = [ flex bison pkgconfig python ] + outputs = [ "dev" "out" ]; + outputBin = "dev"; + outputMan = "dev"; # tiny pages + + buildInputs = [ flex bison pkgconfig python setupHook/*move .gir*/ ] ++ libintlOrEmpty ++ stdenv.lib.optional stdenv.isDarwin cctools; propagatedBuildInputs = [ libffi glib ]; - # The '--disable-tests' flag is no longer recognized, so can be safely removed - # next time this package changes. - configureFlags = [ "--disable-tests" ]; - preConfigure = '' sed 's|/usr/bin/env ||' -i tools/g-ir-tool-template.in ''; - postInstall = "rm -rf $out/share/gtk-doc"; + # outputs TODO: share/gobject-introspection-1.0/tests is needed during build + # by pygobject3 (and maybe others), but it's only searched in $out setupHook = ./setup-hook.sh; diff --git a/pkgs/development/libraries/gobject-introspection/setup-hook.sh b/pkgs/development/libraries/gobject-introspection/setup-hook.sh index d411ad69dc43..583d8475ec3b 100644 --- a/pkgs/development/libraries/gobject-introspection/setup-hook.sh +++ b/pkgs/development/libraries/gobject-introspection/setup-hook.sh @@ -12,3 +12,10 @@ make_gobject_introspection_find_gir_files() { } envHooks+=(make_gobject_introspection_find_gir_files) + +_multioutMoveGlibGir() { + moveToOutput share/gir-1.0 "${!outputDev}" +} + +preFixupHooks+=(_multioutMoveGlibGir) + diff --git a/pkgs/development/libraries/gpgme/default.nix b/pkgs/development/libraries/gpgme/default.nix index 4572387e2252..c60311423233 100644 --- a/pkgs/development/libraries/gpgme/default.nix +++ b/pkgs/development/libraries/gpgme/default.nix @@ -16,6 +16,9 @@ stdenv.mkDerivation rec { sha256 = "17892sclz3yg45wbyqqrzzpq3l0icbnfl28f101b3062g8cy97dh"; }; + outputs = [ "dev" "out" "info" ]; + outputBin = "dev"; # gpgme-config; not so sure about gpgme-tool + propagatedBuildInputs = [ libgpgerror glib libassuan pth ]; nativeBuildInputs = [ pkgconfig gnupg ]; @@ -25,11 +28,11 @@ stdenv.mkDerivation rec { "--enable-fixed-path=${gpgStorePath}/bin" ]; - meta = { + meta = with stdenv.lib; { homepage = "http://www.gnupg.org/related_software/gpgme"; description = "Library for making GnuPG easier to use"; - license = stdenv.lib.licenses.gpl2; - platforms = stdenv.lib.platforms.unix; - maintainers = with stdenv.lib.maintainers; [ fuuzetsu ]; + license = licenses.gpl2; + platforms = platforms.unix; + maintainers = [ maintainers.fuuzetsu ]; }; } diff --git a/pkgs/development/libraries/gstreamer/default.nix b/pkgs/development/libraries/gstreamer/default.nix index 81e5726fa946..3118caffb11a 100644 --- a/pkgs/development/libraries/gstreamer/default.nix +++ b/pkgs/development/libraries/gstreamer/default.nix @@ -1,4 +1,4 @@ -{ callPackage }: +{ callPackage, libva-full }: rec { gstreamer = callPackage ./core { }; @@ -21,7 +21,10 @@ rec { # (Non Linear Engine). gst-editing-services = callPackage ./ges { inherit gnonlin; }; - gst-vaapi = callPackage ./vaapi { inherit gst-plugins-base gstreamer gst-plugins-bad; }; + gst-vaapi = callPackage ./vaapi { + inherit gst-plugins-base gstreamer gst-plugins-bad; + libva = libva-full; # looks also for libva-{x11,wayland} + }; gst-validate = callPackage ./validate { inherit gst-plugins-base; }; } diff --git a/pkgs/development/libraries/gstreamer/legacy/gst-plugins-good/default.nix b/pkgs/development/libraries/gstreamer/legacy/gst-plugins-good/default.nix index dc39bddc232f..191c1f6b0f2c 100644 --- a/pkgs/development/libraries/gstreamer/legacy/gst-plugins-good/default.nix +++ b/pkgs/development/libraries/gstreamer/legacy/gst-plugins-good/default.nix @@ -1,7 +1,7 @@ { fetchurl, stdenv, pkgconfig, gst_plugins_base, aalib, cairo , flac, libjpeg, zlib, speex, libpng, libdv, libcaca, libvpx , libiec61883, libavc1394, taglib, libpulseaudio, gdk_pixbuf, orc -, glib, gstreamer, bzip2, libsoup, libshout, libintlOrEmpty +, glib, gstreamer, bzip2, libsoup, libshout, ncurses, libintlOrEmpty , # Whether to build no plugins that have external dependencies # (except the PulseAudio plugin). minimalDeps ? false @@ -34,6 +34,11 @@ stdenv.mkDerivation rec { enableParallelBuilding = true; + postInstall = '' + substituteInPlace $out/lib/gstreamer-0.10/libgstaasink.la \ + --replace "${ncurses.dev}/lib" "${ncurses.out}/lib" + ''; + meta = { homepage = http://gstreamer.freedesktop.org; diff --git a/pkgs/development/libraries/gstreamer/vaapi/default.nix b/pkgs/development/libraries/gstreamer/vaapi/default.nix index 015aa4e07f5d..bf061b4125b5 100644 --- a/pkgs/development/libraries/gstreamer/vaapi/default.nix +++ b/pkgs/development/libraries/gstreamer/vaapi/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, pkgconfig, gst-plugins-base, bzip2, libva +{ stdenv, fetchurl, pkgconfig, gst-plugins-base, bzip2, libva, wayland , libdrm, udev, xorg, mesa, yasm, gstreamer, gst-plugins-bad, nasm , libvpx }: @@ -14,8 +14,10 @@ stdenv.mkDerivation rec { nativeBuildInputs = with stdenv.lib; [ pkgconfig bzip2 ]; - buildInputs = with stdenv.lib; [ gstreamer gst-plugins-base gst-plugins-bad libva libdrm udev - xorg.libX11 xorg.libXext xorg.libXv xorg.libXrandr xorg.libSM xorg.libICE mesa nasm libvpx ]; + buildInputs = [ + gstreamer gst-plugins-base gst-plugins-bad libva wayland libdrm udev + xorg.libX11 xorg.libXext xorg.libXv xorg.libXrandr xorg.libSM xorg.libICE mesa nasm libvpx + ]; preConfigure = " export GST_PLUGIN_PATH_1_0=$out/lib/gstreamer-1.0 diff --git a/pkgs/development/libraries/gtk+/2.x.nix b/pkgs/development/libraries/gtk+/2.x.nix index 8830e1425b68..d4d4cddb4023 100644 --- a/pkgs/development/libraries/gtk+/2.x.nix +++ b/pkgs/development/libraries/gtk+/2.x.nix @@ -15,11 +15,16 @@ stdenv.mkDerivation rec { sha256 = "1f1ifv1ijrda4jx831l24d3ww65v5gf56r464fi11n6k02bcah87"; }; + outputs = [ "dev" "out" "docdev" ]; + outputBin = "dev"; + enableParallelBuilding = true; NIX_CFLAGS_COMPILE = stdenv.lib.optionalString (libintlOrEmpty != []) "-lintl"; - nativeBuildInputs = [ perl pkgconfig gettext ]; + setupHook = ./setup-hook.sh; + + nativeBuildInputs = [ setupHook perl pkgconfig gettext ]; propagatedBuildInputs = with xorg; with stdenv.lib; [ glib cairo pango gdk_pixbuf atk ] @@ -35,7 +40,9 @@ stdenv.mkDerivation rec { then "--disable-glibtest --disable-introspection --disable-visibility" else "--with-xinput=yes"; - postInstall = "rm -rf $out/share/gtk-doc"; + postInstall = '' + moveToOutput share/gtk-2.0/demo "$docdev" + ''; passthru = { gtkExeEnvPostBuild = '' diff --git a/pkgs/development/libraries/gtk+/3.x.nix b/pkgs/development/libraries/gtk+/3.x.nix index f738f76ca029..a2da4c7b0339 100644 --- a/pkgs/development/libraries/gtk+/3.x.nix +++ b/pkgs/development/libraries/gtk+/3.x.nix @@ -1,12 +1,11 @@ { stdenv, fetchurl, pkgconfig, gettext, perl , expat, glib, cairo, pango, gdk_pixbuf, atk, at_spi2_atk, gobjectIntrospection -, xlibs, x11, wayland, libxkbcommon, epoxy +, xorg, wayland, epoxy, json_glib, libxkbcommon, gmp , xineramaSupport ? stdenv.isLinux , cupsSupport ? stdenv.isLinux, cups ? null , darwin }: -assert xineramaSupport -> xlibs.libXinerama != null; assert cupsSupport -> cups != null; with stdenv.lib; @@ -24,17 +23,22 @@ stdenv.mkDerivation rec { sha256 = "107aeb9a4244ce3c044becdd6dffc32d83202595181597180d4c736302a71852"; }; + outputs = [ "dev" "out" ]; + outputBin = "dev"; + nativeBuildInputs = [ pkgconfig gettext gobjectIntrospection perl ]; - buildInputs = [ libxkbcommon epoxy ]; - propagatedBuildInputs = with xlibs; with stdenv.lib; - [ expat glib cairo pango gdk_pixbuf atk at_spi2_atk libXrandr libXrender libXcomposite libXi libXcursor ] + buildInputs = [ libxkbcommon epoxy json_glib ]; + propagatedBuildInputs = with xorg; with stdenv.lib; + [ expat glib cairo pango gdk_pixbuf atk at_spi2_atk + libXrandr libXrender libXcomposite libXi libXcursor libSM libICE ] ++ optionals stdenv.isLinux [ wayland ] ++ optional stdenv.isDarwin (with darwin.apple_sdk.frameworks; [ AppKit Cocoa ]) ++ optional xineramaSupport libXinerama ++ optional cupsSupport cups; + #TODO: colord? - NIX_LDFLAGS = if stdenv.isDarwin then "-lintl" else null; + NIX_LDFLAGS = stdenv.lib.optionalString stdenv.isDarwin "-lintl"; # demos fail to install, no idea where's the problem preConfigure = "sed '/^SRC_SUBDIRS /s/demos//' -i Makefile.in"; @@ -49,7 +53,10 @@ stdenv.mkDerivation rec { "--enable-quartz-backend" ]; - postInstall = "rm -rf $out/share/gtk-doc"; + postInstall = '' + substituteInPlace "$out/lib/gtk-3.0/3.0.0/printbackends/libprintbackend-cups.la" \ + --replace '-L${gmp.dev}/lib' '-L${gmp.out}/lib' + ''; passthru = { gtkExeEnvPostBuild = '' @@ -58,7 +65,7 @@ stdenv.mkDerivation rec { ''; # workaround for bug of nix-mode for Emacs */ ''; }; - meta = { + meta = with stdenv.lib; { description = "A multi-platform toolkit for creating graphical user interfaces"; longDescription = '' @@ -74,9 +81,9 @@ stdenv.mkDerivation rec { homepage = http://www.gtk.org/; - license = stdenv.lib.licenses.lgpl2Plus; + license = licenses.lgpl2Plus; - maintainers = with stdenv.lib.maintainers; [ urkud raskin vcunat lethalman ]; - platforms = stdenv.lib.platforms.all; + maintainers = with maintainers; [ urkud raskin vcunat lethalman ]; + platforms = platforms.all; }; } diff --git a/pkgs/development/libraries/gtk+/setup-hook.sh b/pkgs/development/libraries/gtk+/setup-hook.sh new file mode 100644 index 000000000000..c2b0ab502db7 --- /dev/null +++ b/pkgs/development/libraries/gtk+/setup-hook.sh @@ -0,0 +1,10 @@ +fixupOutputHooks+=(_gtk2CleanComments) + +# Clean comments that link to generator of the file +_gtk2CleanComments() { + local f="$prefix/lib/gtk-2.0/2.10.0/immodules.cache" + if [ -f "$f" ]; then + sed 's|Created by .*bin/gtk-query-|Created by bin/gtk-query-|' -i "$f" + fi +} + diff --git a/pkgs/development/libraries/gupnp/default.nix b/pkgs/development/libraries/gupnp/default.nix index 6145c8c49477..45f5217d3c91 100644 --- a/pkgs/development/libraries/gupnp/default.nix +++ b/pkgs/development/libraries/gupnp/default.nix @@ -15,7 +15,7 @@ stdenv.mkDerivation rec { postInstall = '' ln -sv ${libsoup}/include/*/libsoup $out/include - ln -sv ${libxml2}/include/*/libxml $out/include + ln -sv ${libxml2.dev}/include/*/libxml $out/include ln -sv ${gssdp}/include/*/libgssdp $out/include ''; diff --git a/pkgs/development/libraries/gvfs/default.nix b/pkgs/development/libraries/gvfs/default.nix index d2a958faed8b..37403f50e2b1 100644 --- a/pkgs/development/libraries/gvfs/default.nix +++ b/pkgs/development/libraries/gvfs/default.nix @@ -19,7 +19,7 @@ stdenv.mkDerivation rec { nativeBuildInputs = [ pkgconfig intltool libtool ]; buildInputs = - [ makeWrapper glib dbus.libs udev libgudev udisks2 libgcrypt + [ makeWrapper glib dbus udev libgudev udisks2 libgcrypt libgphoto2 avahi libarchive fuse libcdio libxml2 libxslt docbook_xsl samba libmtp # ToDo: a ligther version of libsoup to have FTP/HTTP support? diff --git a/pkgs/development/libraries/harfbuzz/default.nix b/pkgs/development/libraries/harfbuzz/default.nix index d2546ebd496d..2d84b1e73a82 100644 --- a/pkgs/development/libraries/harfbuzz/default.nix +++ b/pkgs/development/libraries/harfbuzz/default.nix @@ -1,38 +1,49 @@ { stdenv, fetchurl, pkgconfig, glib, freetype, cairo, libintlOrEmpty -, icu, graphite2 +, icu, graphite2, harfbuzz # The icu variant uses and propagates the non-icu one. , withIcu ? false # recommended by upstream as default, but most don't needed and it's big , withGraphite2 ? true # it is small and major distros do include it }: -# TODO: split non-icu and icu lib into different outputs? -# (icu is a ~30 MB dependency, the rest is very small in comparison) +let + version = "1.1.2"; + inherit (stdenv.lib) optional optionals optionalString; +in -stdenv.mkDerivation rec { - name = "harfbuzz-1.1.2"; +stdenv.mkDerivation { + name = "harfbuzz${optionalString withIcu "-icu"}-${version}"; src = fetchurl { - url = "http://www.freedesktop.org/software/harfbuzz/release/${name}.tar.bz2"; + url = "http://www.freedesktop.org/software/harfbuzz/release/harfbuzz-${version}.tar.bz2"; sha256 = "07s6z3hbrb4rdfgzmln169wxz4nm5y7qbr02ik5c7drxpn85fb2a"; }; - outputs = [ "out" "doc" ]; + outputs = [ "dev" "out" ]; + outputBin = "dev"; configureFlags = [ ( "--with-graphite2=" + (if withGraphite2 then "yes" else "no") ) # not auto-detected by default ( "--with-icu=" + (if withIcu then "yes" else "no") ) ]; - buildInputs = [ pkgconfig glib freetype cairo ] # recommended by upstream + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ glib freetype cairo ] # recommended by upstream ++ libintlOrEmpty; propagatedBuildInputs = [] - ++ stdenv.lib.optional withGraphite2 graphite2 - ++ stdenv.lib.optional withIcu icu + ++ optional withGraphite2 graphite2 + ++ optionals withIcu [ icu harfbuzz ] ; - meta = { + # Slightly hacky; some pkgs expect them in a single directory. + postInstall = optionalString withIcu '' + rm "$out"/lib/libharfbuzz.* "$dev/lib/pkgconfig/harfbuzz.pc" + ln -s {'${harfbuzz.out}',"$out"}/lib/libharfbuzz.la + ln -s {'${harfbuzz.dev}',"$dev"}/lib/pkgconfig/harfbuzz.pc + ''; + + meta = with stdenv.lib; { description = "An OpenType text shaping engine"; homepage = http://www.freedesktop.org/wiki/Software/HarfBuzz; - maintainers = [ stdenv.lib.maintainers.eelco ]; - platforms = stdenv.lib.platforms.linux ++ stdenv.lib.platforms.darwin; + maintainers = [ maintainers.eelco ]; + platforms = with platforms; linux ++ darwin; }; } diff --git a/pkgs/development/libraries/hunspell/default.nix b/pkgs/development/libraries/hunspell/default.nix index 98f6511f3917..0d0ff38fb47f 100644 --- a/pkgs/development/libraries/hunspell/default.nix +++ b/pkgs/development/libraries/hunspell/default.nix @@ -8,8 +8,10 @@ stdenv.mkDerivation rec { sha256 = "0v14ff9s37vkh45diaddndcrj0hmn67arh8xh8k79q9c1vgc1cm7"; }; - propagatedBuildInputs = [ ncurses readline ]; - configureFlags = "--with-ui --with-readline"; + outputs = [ "dev" "out" "bin" "man" ]; + + buildInputs = [ ncurses readline ]; + configureFlags = [ "--with-ui" "--with-readline" ]; meta = with stdenv.lib; { homepage = http://hunspell.sourceforge.net; diff --git a/pkgs/development/libraries/icu/default.nix b/pkgs/development/libraries/icu/default.nix index 224e9302baa6..d2604b03f74f 100644 --- a/pkgs/development/libraries/icu/default.nix +++ b/pkgs/development/libraries/icu/default.nix @@ -13,6 +13,9 @@ stdenv.mkDerivation ({ sha256 = "05j86714qaj0lvhvyr2s1xncw6sk0h2dcghb3iiwykbkbh8fjr1s"; }; + outputs = [ "dev" "out" ]; + outputBin = "dev"; + makeFlags = stdenv.lib.optionalString stdenv.isDarwin "CXXFLAGS=-headerpad_max_install_names"; @@ -37,6 +40,8 @@ stdenv.mkDerivation ({ sed -i 's/INSTALL_CMD=.*install/INSTALL_CMD=install/' $out/lib/icu/${version}/pkgdata.inc ''; + postFixup = ''moveToOutput lib/icu "$dev" ''; + enableParallelBuilding = true; meta = with stdenv.lib; { diff --git a/pkgs/development/libraries/jasper/default.nix b/pkgs/development/libraries/jasper/default.nix index 40d54ed400a3..50bebca6b312 100644 --- a/pkgs/development/libraries/jasper/default.nix +++ b/pkgs/development/libraries/jasper/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, unzip, xorg, libjpeg }: +{ stdenv, fetchurl, unzip, libjpeg, autoreconfHook }: stdenv.mkDerivation rec { name = "jasper-1.900.1"; @@ -18,11 +18,16 @@ stdenv.mkDerivation rec { ./jasper-CVE-2014-9029.diff ]; - nativeBuildInputs = [unzip]; + # newer reconf to recognize a multiout flag + nativeBuildInputs = [ unzip autoreconfHook ]; propagatedBuildInputs = [ libjpeg ]; configureFlags = "--enable-shared"; + outputs = [ "dev" "out" "man" "bin" ]; + + enableParallelBuilding = true; + meta = { homepage = https://www.ece.uvic.ca/~frodo/jasper/; description = "JPEG2000 Library"; diff --git a/pkgs/development/libraries/json-c/default.nix b/pkgs/development/libraries/json-c/default.nix index ad425f2a3812..d5e0694e0516 100644 --- a/pkgs/development/libraries/json-c/default.nix +++ b/pkgs/development/libraries/json-c/default.nix @@ -9,11 +9,13 @@ stdenv.mkDerivation rec { patches = [ ./unused-variable.patch ]; - buildInputs = [ autoreconfHook ]; # won't configure without it, no idea why + outputs = [ "dev" "out" ]; + + nativeBuildInputs = [ autoreconfHook ]; # won't configure without it, no idea why # compatibility hack (for mypaint at least) postInstall = '' - ln -s json-c.pc "$out/lib/pkgconfig/json.pc" + ln -s json-c.pc "$dev/lib/pkgconfig/json.pc" ''; meta = with stdenv.lib; { diff --git a/pkgs/development/libraries/kde-frameworks-5.19/attica.nix b/pkgs/development/libraries/kde-frameworks-5.19/attica.nix new file mode 100644 index 000000000000..98721876c120 --- /dev/null +++ b/pkgs/development/libraries/kde-frameworks-5.19/attica.nix @@ -0,0 +1,11 @@ +{ kdeFramework, lib +, extra-cmake-modules +}: + +kdeFramework { + name = "attica"; + nativeBuildInputs = [ extra-cmake-modules ]; + meta = { + maintainers = [ lib.maintainers.ttuegel ]; + }; +} diff --git a/pkgs/development/libraries/kde-frameworks-5.19/baloo.nix b/pkgs/development/libraries/kde-frameworks-5.19/baloo.nix new file mode 100644 index 000000000000..38c41d9271d8 --- /dev/null +++ b/pkgs/development/libraries/kde-frameworks-5.19/baloo.nix @@ -0,0 +1,25 @@ +{ kdeFramework, lib, extra-cmake-modules, kauth, kconfig +, kcoreaddons, kcrash, kdbusaddons, kfilemetadata, ki18n, kidletime +, kio, lmdb, makeQtWrapper, qtbase, qtquick1, solid +}: + +kdeFramework { + name = "baloo"; + nativeBuildInputs = [ extra-cmake-modules makeQtWrapper ]; + buildInputs = [ + kconfig kcrash kdbusaddons lmdb qtquick1 solid + ]; + propagatedBuildInputs = [ + kauth kcoreaddons kfilemetadata ki18n kio kidletime qtbase + ]; + postInstall = '' + wrapQtProgram "$out/bin/baloo_file" + wrapQtProgram "$out/bin/baloo_file_extractor" + wrapQtProgram "$out/bin/balooctl" + wrapQtProgram "$out/bin/baloosearch" + wrapQtProgram "$out/bin/balooshow" + ''; + meta = { + maintainers = [ lib.maintainers.ttuegel ]; + }; +} diff --git a/pkgs/development/libraries/kde-frameworks-5.19/bluez-qt.nix b/pkgs/development/libraries/kde-frameworks-5.19/bluez-qt.nix new file mode 100644 index 000000000000..f981b0516f72 --- /dev/null +++ b/pkgs/development/libraries/kde-frameworks-5.19/bluez-qt.nix @@ -0,0 +1,17 @@ +{ kdeFramework, lib +, extra-cmake-modules +, qtdeclarative +}: + +kdeFramework { + name = "bluez-qt"; + nativeBuildInputs = [ extra-cmake-modules ]; + buildInputs = [ qtdeclarative ]; + preConfigure = '' + substituteInPlace CMakeLists.txt \ + --replace /lib/udev/rules.d "$out/lib/udev/rules.d" + ''; + meta = { + maintainers = [ lib.maintainers.ttuegel ]; + }; +} diff --git a/pkgs/development/libraries/kde-frameworks-5.19/breeze-icons.nix b/pkgs/development/libraries/kde-frameworks-5.19/breeze-icons.nix new file mode 100644 index 000000000000..44cc99daf261 --- /dev/null +++ b/pkgs/development/libraries/kde-frameworks-5.19/breeze-icons.nix @@ -0,0 +1,10 @@ +{ kdeFramework +, extra-cmake-modules +, qtsvg +}: + +kdeFramework { + name = "breeze-icons"; + nativeBuildInputs = [ extra-cmake-modules ]; + buildInputs = [ qtsvg ]; +} diff --git a/pkgs/development/libraries/kde-frameworks-5.19/default.nix b/pkgs/development/libraries/kde-frameworks-5.19/default.nix new file mode 100644 index 000000000000..bb96048d6ff5 --- /dev/null +++ b/pkgs/development/libraries/kde-frameworks-5.19/default.nix @@ -0,0 +1,114 @@ +# Maintainer's Notes: +# +# How To Update +# 1. Edit the URL in ./manifest.sh +# 2. Run ./manifest.sh +# 3. Fix build errors. + +{ pkgs, debug ? false }: + +let + + inherit (pkgs) lib makeSetupHook stdenv; + + mirror = "mirror://kde"; + srcs = import ./srcs.nix { inherit (pkgs) fetchurl; inherit mirror; }; + + packages = self: with self; { + kdeFramework = args: + let + inherit (args) name; + inherit (srcs."${name}") src version; + in stdenv.mkDerivation (args // { + name = "${name}-${version}"; + inherit src; + + outputs = args.outputs or [ "dev" "out" ]; + + cmakeFlags = + (args.cmakeFlags or []) + ++ [ "-DBUILD_TESTING=OFF" ] + ++ lib.optional debug "-DCMAKE_BUILD_TYPE=Debug"; + + meta = { + license = with lib.licenses; [ + lgpl21Plus lgpl3Plus bsd2 mit gpl2Plus gpl3Plus fdl12 + ]; + platforms = lib.platforms.linux; + homepage = "http://www.kde.org"; + } // (args.meta or {}); + }); + + attica = callPackage ./attica.nix {}; + baloo = callPackage ./baloo.nix {}; + bluez-qt = callPackage ./bluez-qt.nix {}; + breeze-icons = callPackage ./breeze-icons.nix {}; + extra-cmake-modules = callPackage ./extra-cmake-modules {}; + frameworkintegration = callPackage ./frameworkintegration.nix {}; + kactivities = callPackage ./kactivities.nix {}; + kapidox = callPackage ./kapidox.nix {}; + karchive = callPackage ./karchive.nix {}; + kauth = callPackage ./kauth {}; + kbookmarks = callPackage ./kbookmarks.nix {}; + kcmutils = callPackage ./kcmutils {}; + kcodecs = callPackage ./kcodecs.nix {}; + kcompletion = callPackage ./kcompletion.nix {}; + kconfig = callPackage ./kconfig.nix {}; + kconfigwidgets = callPackage ./kconfigwidgets {}; + kcoreaddons = callPackage ./kcoreaddons.nix {}; + kcrash = callPackage ./kcrash.nix {}; + kdbusaddons = callPackage ./kdbusaddons.nix {}; + kdeclarative = callPackage ./kdeclarative.nix {}; + kded = callPackage ./kded.nix {}; + kdelibs4support = callPackage ./kdelibs4support {}; + kdesignerplugin = callPackage ./kdesignerplugin.nix {}; + kdewebkit = callPackage ./kdewebkit.nix {}; + kdesu = callPackage ./kdesu.nix {}; + kdnssd = callPackage ./kdnssd.nix {}; + kdoctools = callPackage ./kdoctools {}; + kemoticons = callPackage ./kemoticons.nix {}; + kfilemetadata = callPackage ./kfilemetadata {}; + kglobalaccel = callPackage ./kglobalaccel.nix {}; + kguiaddons = callPackage ./kguiaddons.nix {}; + khtml = callPackage ./khtml.nix {}; + ki18n = callPackage ./ki18n.nix {}; + kiconthemes = callPackage ./kiconthemes {}; + kidletime = callPackage ./kidletime.nix {}; + kimageformats = callPackage ./kimageformats.nix {}; + kinit = callPackage ./kinit {}; + kio = callPackage ./kio {}; + kitemmodels = callPackage ./kitemmodels.nix {}; + kitemviews = callPackage ./kitemviews.nix {}; + kjobwidgets = callPackage ./kjobwidgets.nix {}; + kjs = callPackage ./kjs.nix {}; + kjsembed = callPackage ./kjsembed.nix {}; + kmediaplayer = callPackage ./kmediaplayer.nix {}; + knewstuff = callPackage ./knewstuff.nix {}; + knotifications = callPackage ./knotifications.nix {}; + knotifyconfig = callPackage ./knotifyconfig.nix {}; + kpackage = callPackage ./kpackage {}; + kparts = callPackage ./kparts.nix {}; + kpeople = callPackage ./kpeople.nix {}; + kplotting = callPackage ./kplotting.nix {}; + kpty = callPackage ./kpty.nix {}; + kross = callPackage ./kross.nix {}; + krunner = callPackage ./krunner.nix {}; + kservice = callPackage ./kservice {}; + ktexteditor = callPackage ./ktexteditor {}; + ktextwidgets = callPackage ./ktextwidgets.nix {}; + kunitconversion = callPackage ./kunitconversion.nix {}; + kwallet = callPackage ./kwallet.nix {}; + kwidgetsaddons = callPackage ./kwidgetsaddons.nix {}; + kwindowsystem = callPackage ./kwindowsystem.nix {}; + kxmlgui = callPackage ./kxmlgui.nix {}; + kxmlrpcclient = callPackage ./kxmlrpcclient.nix {}; + modemmanager-qt = callPackage ./modemmanager-qt.nix {}; + networkmanager-qt = callPackage ./networkmanager-qt.nix {}; + oxygen-icons5 = callPackage ./oxygen-icons5.nix {}; + plasma-framework = callPackage ./plasma-framework {}; + solid = callPackage ./solid.nix {}; + sonnet = callPackage ./sonnet.nix {}; + threadweaver = callPackage ./threadweaver.nix {}; + }; + +in packages diff --git a/pkgs/development/libraries/kde-frameworks-5.19/extra-cmake-modules/default.nix b/pkgs/development/libraries/kde-frameworks-5.19/extra-cmake-modules/default.nix new file mode 100644 index 000000000000..1c2ea70442d3 --- /dev/null +++ b/pkgs/development/libraries/kde-frameworks-5.19/extra-cmake-modules/default.nix @@ -0,0 +1,20 @@ +{ kdeFramework, lib, copyPathsToStore, cmake, pkgconfig, qttools }: + +kdeFramework { + name = "extra-cmake-modules"; + + patches = copyPathsToStore (lib.readPathsFromFile ./. ./series); + + outputs = [ "out" ]; # this package has no runtime components + setupHook = ./setup-hook.sh; + + # It is OK to propagate these inputs as long as + # extra-cmake-modules is never a propagated input + # of some other derivation. + propagatedNativeBuildInputs = [ cmake pkgconfig qttools ]; + + meta = with lib; { + license = licenses.bsd2; + maintainers = [ maintainers.ttuegel ]; + }; +} diff --git a/pkgs/development/libraries/kde-frameworks-5.19/extra-cmake-modules/nix-lib-path.patch b/pkgs/development/libraries/kde-frameworks-5.19/extra-cmake-modules/nix-lib-path.patch new file mode 100644 index 000000000000..a74340a6dc96 --- /dev/null +++ b/pkgs/development/libraries/kde-frameworks-5.19/extra-cmake-modules/nix-lib-path.patch @@ -0,0 +1,37 @@ +Index: extra-cmake-modules-5.18.0/kde-modules/KDEInstallDirs.cmake +=================================================================== +--- extra-cmake-modules-5.18.0.orig/kde-modules/KDEInstallDirs.cmake ++++ extra-cmake-modules-5.18.0/kde-modules/KDEInstallDirs.cmake +@@ -200,32 +200,6 @@ + # GNUInstallDirs code deals with re-configuring, but that is dealt with + # by the _define_* macros in this module). + set(_LIBDIR_DEFAULT "lib") +-# Override this default 'lib' with 'lib64' iff: +-# - we are on a Linux, kFreeBSD or Hurd system but NOT cross-compiling +-# - we are NOT on debian +-# - we are on a 64 bits system +-# reason is: amd64 ABI: http://www.x86-64.org/documentation/abi.pdf +-# For Debian with multiarch, use 'lib/${CMAKE_LIBRARY_ARCHITECTURE}' if +-# CMAKE_LIBRARY_ARCHITECTURE is set (which contains e.g. "i386-linux-gnu" +-# See http://wiki.debian.org/Multiarch +-if((CMAKE_SYSTEM_NAME MATCHES "Linux|kFreeBSD" OR CMAKE_SYSTEM_NAME STREQUAL "GNU") +- AND NOT CMAKE_CROSSCOMPILING) +- if (EXISTS "/etc/debian_version") # is this a debian system ? +- if(CMAKE_LIBRARY_ARCHITECTURE) +- set(_LIBDIR_DEFAULT "lib/${CMAKE_LIBRARY_ARCHITECTURE}") +- endif() +- else() # not debian, rely on CMAKE_SIZEOF_VOID_P: +- if(NOT DEFINED CMAKE_SIZEOF_VOID_P) +- message(AUTHOR_WARNING +- "Unable to determine default LIB_INSTALL_LIBDIR directory because no target architecture is known. " +- "Please enable at least one language before including KDEInstallDirs.") +- else() +- if("${CMAKE_SIZEOF_VOID_P}" EQUAL "8") +- set(_LIBDIR_DEFAULT "lib64") +- endif() +- endif() +- endif() +-endif() + + set(_gnu_install_dirs_vars + BINDIR diff --git a/pkgs/development/libraries/kde-frameworks-5.19/extra-cmake-modules/series b/pkgs/development/libraries/kde-frameworks-5.19/extra-cmake-modules/series new file mode 100644 index 000000000000..b4569e50a5f7 --- /dev/null +++ b/pkgs/development/libraries/kde-frameworks-5.19/extra-cmake-modules/series @@ -0,0 +1 @@ +nix-lib-path.patch diff --git a/pkgs/development/libraries/kde-frameworks-5.19/extra-cmake-modules/setup-hook.sh b/pkgs/development/libraries/kde-frameworks-5.19/extra-cmake-modules/setup-hook.sh new file mode 100644 index 000000000000..56ed09f4ea59 --- /dev/null +++ b/pkgs/development/libraries/kde-frameworks-5.19/extra-cmake-modules/setup-hook.sh @@ -0,0 +1,81 @@ +_ecmSetXdgDirs() { + addToSearchPathOnce XDG_DATA_DIRS "$1/share" + addToSearchPathOnce XDG_CONFIG_DIRS "$1/etc/xdg" + addToSearchPathOnce NIX_WRAP_XDG_CONFIG_DIRS "$1/etc/xdg" +} + +_ecmPropagateSharedData() { + local sharedPaths=( \ + "config.cfg" \ + "doc" \ + "kconf_update" \ + "kservices5" \ + "kservicetypes5" \ + "kxmlgui5" \ + "knotifications5" \ + "icons" \ + "sounds" \ + "templates" \ + "wallpapers" \ + "applications" \ + "desktop-directories" \ + "mime" \ + "info" \ + "dbus-1" \ + "interfaces" \ + "services" \ + "system-services" ) + for dir in ${sharedPaths[@]}; do + if [ -d "$1/share/$dir" ]; then + addToSearchPathOnce NIX_WRAP_XDG_DATA_DIRS "$1/share" + propagateOnce propagatedUserEnvPkgs "$1" + break + fi + done +} + +_ecmConfig() { + # Because we need to use absolute paths here, we must set *all* the paths. + cmakeFlags+=" -DKDE_INSTALL_EXECROOTDIR=${!outputBin}" + cmakeFlags+=" -DKDE_INSTALL_BINDIR=${!outputBin}/bin" + cmakeFlags+=" -DKDE_INSTALL_SBINDIR=${!outputBin}/sbin" + cmakeFlags+=" -DKDE_INSTALL_LIBDIR=${!outputLib}/lib" + cmakeFlags+=" -DKDE_INSTALL_LIBEXECDIR=${!outputLib}/lib/libexec" + cmakeFlags+=" -DKDE_INSTALL_CMAKEPACKAGEDIR=${!outputDev}/lib/cmake" + cmakeFlags+=" -DKDE_INSTALL_QTPLUGINDIR=${!outputLib}/lib/qt5/plugins" + cmakeFlags+=" -DKDE_INSTALL_PLUGINDIR=${!outputLib}/lib/qt5/plugins" + cmakeFlags+=" -DKDE_INSTALL_QTQUICKIMPORTSDIR=${!outputLib}/lib/qt5/imports" + cmakeFlags+=" -DKDE_INSTALL_QMLDIR=${!outputLib}/lib/qt5/qml" + cmakeFlags+=" -DKDE_INSTALL_INCLUDEDIR=${!outputInclude}/include" + cmakeFlags+=" -DKDE_INSTALL_LOCALSTATEDIR=/var" + cmakeFlags+=" -DKDE_INSTALL_DATAROOTDIR=${!outputLib}/share" + cmakeFlags+=" -DKDE_INSTALL_DATADIR=${!outputLib}/share" + cmakeFlags+=" -DKDE_INSTALL_DOCBUNDLEDIR=${!outputLib}/share/doc/HTML" + cmakeFlags+=" -DKDE_INSTALL_KCFGDIR=${!outputLib}/share/config.kcfg" + cmakeFlags+=" -DKDE_INSTALL_KCONFUPDATEDIR=${!outputLib}/share/kconf_update" + cmakeFlags+=" -DKDE_INSTALL_KSERVICES5DIR=${!outputLib}/share/kservices5" + cmakeFlags+=" -DKDE_INSTALL_KSERVICETYPES5DIR=${!outputLib}/share/kservicetypes5" + cmakeFlags+=" -DKDE_INSTALL_KXMLGUI5DIR=${!outputLib}/share/kxmlgui5" + cmakeFlags+=" -DKDE_INSTALL_KNOTIFY5RCDIR=${!outputLib}/share/knotifications5" + cmakeFlags+=" -DKDE_INSTALL_ICONDIR=${!outputLib}/share/icons" + cmakeFlags+=" -DKDE_INSTALL_LOCALEDIR=${!outputLib}/share/locale" + cmakeFlags+=" -DKDE_INSTALL_SOUNDDIR=${!outputLib}/share/sounds" + cmakeFlags+=" -DKDE_INSTALL_TEMPLATEDIR=${!outputLib}/share/templates" + cmakeFlags+=" -DKDE_INSTALL_WALLPAPERDIR=${!outputLib}/share/wallpapers" + cmakeFlags+=" -DKDE_INSTALL_APPDIR=${!outputLib}/share/applications" + cmakeFlags+=" -DKDE_INSTALL_DESKTOPDIR=${!outputLib}/share/desktop-directories" + cmakeFlags+=" -DKDE_INSTALL_MIMEDIR=${!outputLib}/share/mime/packages" + cmakeFlags+=" -DKDE_INSTALL_METAINFODIR=${!outputLib}/share/appdata" + cmakeFlags+=" -DKDE_INSTALL_MANDIR=${!outputLib}/share/man" + cmakeFlags+=" -DKDE_INSTALL_INFODIR=${!outputLib}/share/info" + cmakeFlags+=" -DKDE_INSTALL_DBUSDIR=${!outputLib}/share/dbus-1" + cmakeFlags+=" -DKDE_INSTALL_DBUSINTERFACEDIR=${!outputLib}/share/dbus-1/interfaces" + cmakeFlags+=" -DKDE_INSTALL_DBUSSERVICEDIR=${!outputLib}/share/dbus-1/services" + cmakeFlags+=" -DKDE_INSTALL_DBUSSYSTEMSERVICEDIR=${!outputLib}/share/dbus-1/system-services" + cmakeFlags+=" -DKDE_INSTALL_SYSCONFDIR=${!outputLib}/etc" + cmakeFlags+=" -DKDE_INSTALL_CONFDIR=${!outputLib}/etc/xdg" + cmakeFlags+=" -DKDE_INSTALL_AUTOSTARTDIR=${!outputLib}/etc/xdg/autostart" +} + +envHooks+=(_ecmSetXdgDirs _ecmPropagateSharedData) +preConfigureHooks+=(_ecmConfig) diff --git a/pkgs/development/libraries/kde-frameworks-5.19/fetchsrcs.sh b/pkgs/development/libraries/kde-frameworks-5.19/fetchsrcs.sh new file mode 100755 index 000000000000..7937e6f8bed9 --- /dev/null +++ b/pkgs/development/libraries/kde-frameworks-5.19/fetchsrcs.sh @@ -0,0 +1,57 @@ +#! /usr/bin/env nix-shell +#! nix-shell -i bash -p coreutils findutils gnused nix wget + +set -x + +# The trailing slash at the end is necessary! +RELEASE_URL="http://download.kde.org/stable/frameworks/5.19/" +EXTRA_WGET_ARGS='-A *.tar.xz' + +mkdir tmp; cd tmp + +rm -f ../srcs.csv + +wget -nH -r -c --no-parent $RELEASE_URL $EXTRA_WGET_ARGS + +find . | while read src; do + if [[ -f "${src}" ]]; then + # Sanitize file name + filename=$(basename "$src" | tr '@' '_') + nameVersion="${filename%.tar.*}" + name=$(echo "$nameVersion" | sed -e 's,-[[:digit:]].*,,' | sed -e 's,-opensource-src$,,') + version=$(echo "$nameVersion" | sed -e 's,^\([[:alpha:]][[:alnum:]]*-\)\+,,') + echo "$name,$version,$src,$filename" >>../srcs.csv + fi +done + +cat >../srcs.nix <<EOF +# DO NOT EDIT! This file is generated automatically by fetchsrcs.sh +{ fetchurl, mirror }: + +{ +EOF + +gawk -F , "{ print \$1 }" ../srcs.csv | sort | uniq | while read name; do + versions=$(gawk -F , "/^$name,/ { print \$2 }" ../srcs.csv) + latestVersion=$(echo "$versions" | sort -rV | head -n 1) + src=$(gawk -F , "/^$name,$latestVersion,/ { print \$3 }" ../srcs.csv) + filename=$(gawk -F , "/^$name,$latestVersion,/ { print \$4 }" ../srcs.csv) + url="${src:2}" + sha256=$(nix-hash --type sha256 --base32 --flat "$src") + cat >>../srcs.nix <<EOF + $name = { + version = "$latestVersion"; + src = fetchurl { + url = "\${mirror}/$url"; + sha256 = "$sha256"; + name = "$filename"; + }; + }; +EOF +done + +echo "}" >>../srcs.nix + +rm -f ../srcs.csv + +cd .. diff --git a/pkgs/development/libraries/kde-frameworks-5.19/frameworkintegration.nix b/pkgs/development/libraries/kde-frameworks-5.19/frameworkintegration.nix new file mode 100644 index 000000000000..26987c385ad5 --- /dev/null +++ b/pkgs/development/libraries/kde-frameworks-5.19/frameworkintegration.nix @@ -0,0 +1,17 @@ +{ kdeFramework, lib, extra-cmake-modules, kbookmarks, kcompletion +, kconfig, kconfigwidgets, ki18n, kiconthemes, kio, knotifications +, kwidgetsaddons, libXcursor, qtx11extras +}: + +kdeFramework { + name = "frameworkintegration"; + nativeBuildInputs = [ extra-cmake-modules ]; + buildInputs = [ + kbookmarks kcompletion kconfig knotifications kwidgetsaddons + libXcursor + ]; + propagatedBuildInputs = [ kconfigwidgets ki18n kio kiconthemes qtx11extras ]; + meta = { + maintainers = [ lib.maintainers.ttuegel ]; + }; +} diff --git a/pkgs/development/libraries/kde-frameworks-5.19/kactivities.nix b/pkgs/development/libraries/kde-frameworks-5.19/kactivities.nix new file mode 100644 index 000000000000..3225098f4398 --- /dev/null +++ b/pkgs/development/libraries/kde-frameworks-5.19/kactivities.nix @@ -0,0 +1,22 @@ +{ kdeFramework, lib, extra-cmake-modules, boost, kcmutils, kconfig +, kcoreaddons, kdbusaddons, kdeclarative, kglobalaccel, ki18n +, kio, kservice, kwindowsystem, kxmlgui, makeQtWrapper, qtdeclarative +}: + +kdeFramework { + name = "kactivities"; + nativeBuildInputs = [ extra-cmake-modules makeQtWrapper ]; + buildInputs = [ + boost kcmutils kconfig kcoreaddons kdbusaddons kservice + kxmlgui + ]; + propagatedBuildInputs = [ + kdeclarative kglobalaccel ki18n kio kwindowsystem qtdeclarative + ]; + postInstall = '' + wrapQtProgram "$out/bin/kactivitymanagerd" + ''; + meta = { + maintainers = [ lib.maintainers.ttuegel ]; + }; +} diff --git a/pkgs/development/libraries/kde-frameworks-5.19/kapidox.nix b/pkgs/development/libraries/kde-frameworks-5.19/kapidox.nix new file mode 100644 index 000000000000..647be8f052c3 --- /dev/null +++ b/pkgs/development/libraries/kde-frameworks-5.19/kapidox.nix @@ -0,0 +1,12 @@ +{ kdeFramework, lib +, extra-cmake-modules +, python +}: + +kdeFramework { + name = "kapidox"; + nativeBuildInputs = [ extra-cmake-modules python ]; + meta = { + maintainers = [ lib.maintainers.ttuegel ]; + }; +} diff --git a/pkgs/development/libraries/kde-frameworks-5.19/karchive.nix b/pkgs/development/libraries/kde-frameworks-5.19/karchive.nix new file mode 100644 index 000000000000..a8d9a0003c3b --- /dev/null +++ b/pkgs/development/libraries/kde-frameworks-5.19/karchive.nix @@ -0,0 +1,11 @@ +{ kdeFramework, lib +, extra-cmake-modules +}: + +kdeFramework { + name = "karchive"; + nativeBuildInputs = [ extra-cmake-modules ]; + meta = { + maintainers = [ lib.maintainers.ttuegel ]; + }; +} diff --git a/pkgs/development/libraries/kde-frameworks-5.19/kauth/cmake-install-paths.patch b/pkgs/development/libraries/kde-frameworks-5.19/kauth/cmake-install-paths.patch new file mode 100644 index 000000000000..c66f5ecd008f --- /dev/null +++ b/pkgs/development/libraries/kde-frameworks-5.19/kauth/cmake-install-paths.patch @@ -0,0 +1,17 @@ +Index: kauth-5.18.0/KF5AuthConfig.cmake.in +=================================================================== +--- kauth-5.18.0.orig/KF5AuthConfig.cmake.in ++++ kauth-5.18.0/KF5AuthConfig.cmake.in +@@ -4,9 +4,9 @@ set(KAUTH_STUB_FILES_DIR "@PACKAGE_KDE_I + + set(KAUTH_BACKEND_NAME "@KAUTH_BACKEND_NAME@") + set(KAUTH_HELPER_BACKEND_NAME "@KAUTH_HELPER_BACKEND_NAME@") +-set(KAUTH_POLICY_FILES_INSTALL_DIR "@KAUTH_POLICY_FILES_INSTALL_DIR@") +-set(KAUTH_HELPER_INSTALL_DIR "@KAUTH_HELPER_INSTALL_DIR@") +-set(KAUTH_HELPER_INSTALL_ABSOLUTE_DIR "@KAUTH_HELPER_INSTALL_ABSOLUTE_DIR@") ++set(KAUTH_POLICY_FILES_INSTALL_DIR "${KDE_INSTALL_DATADIR}/polkit-1/actions") ++set(KAUTH_HELPER_INSTALL_DIR "${KDE_INSTALL_LIBEXECDIR}") ++set(KAUTH_HELPER_INSTALL_ABSOLUTE_DIR "${KDE_INSTALL_LIBEXECDIR}") + + find_dependency(KF5CoreAddons "@KF5_DEP_VERSION@") + diff --git a/pkgs/development/libraries/kde-frameworks-5.19/kauth/default.nix b/pkgs/development/libraries/kde-frameworks-5.19/kauth/default.nix new file mode 100644 index 000000000000..1352d8c5821f --- /dev/null +++ b/pkgs/development/libraries/kde-frameworks-5.19/kauth/default.nix @@ -0,0 +1,16 @@ +{ kdeFramework, lib, copyPathsToStore +, extra-cmake-modules +, kcoreaddons +, polkit-qt +}: + +kdeFramework { + name = "kauth"; + nativeBuildInputs = [ extra-cmake-modules ]; + buildInputs = [ polkit-qt ]; + propagatedBuildInputs = [ kcoreaddons ]; + patches = copyPathsToStore (lib.readPathsFromFile ./. ./series); + meta = { + maintainers = [ lib.maintainers.ttuegel ]; + }; +} diff --git a/pkgs/development/libraries/kde-frameworks-5.19/kauth/series b/pkgs/development/libraries/kde-frameworks-5.19/kauth/series new file mode 100644 index 000000000000..d2689425c387 --- /dev/null +++ b/pkgs/development/libraries/kde-frameworks-5.19/kauth/series @@ -0,0 +1 @@ +cmake-install-paths.patch diff --git a/pkgs/development/libraries/kde-frameworks-5.19/kbookmarks.nix b/pkgs/development/libraries/kde-frameworks-5.19/kbookmarks.nix new file mode 100644 index 000000000000..1a469ab4db6d --- /dev/null +++ b/pkgs/development/libraries/kde-frameworks-5.19/kbookmarks.nix @@ -0,0 +1,25 @@ +{ kdeFramework, lib +, extra-cmake-modules +, kcodecs +, kconfig +, kconfigwidgets +, kcoreaddons +, kiconthemes +, kxmlgui +}: + +kdeFramework { + name = "kbookmarks"; + nativeBuildInputs = [ extra-cmake-modules ]; + buildInputs = [ + kcodecs + kconfig + kconfigwidgets + kcoreaddons + kiconthemes + kxmlgui + ]; + meta = { + maintainers = [ lib.maintainers.ttuegel ]; + }; +} diff --git a/pkgs/development/libraries/kde-frameworks-5.19/kcmutils/0001-qdiriterator-follow-symlinks.patch b/pkgs/development/libraries/kde-frameworks-5.19/kcmutils/0001-qdiriterator-follow-symlinks.patch new file mode 100644 index 000000000000..0d861fa95012 --- /dev/null +++ b/pkgs/development/libraries/kde-frameworks-5.19/kcmutils/0001-qdiriterator-follow-symlinks.patch @@ -0,0 +1,25 @@ +From f14d2a275323a47104b33eb61c5b6910ae1a9f59 Mon Sep 17 00:00:00 2001 +From: Thomas Tuegel <ttuegel@gmail.com> +Date: Wed, 14 Oct 2015 06:43:53 -0500 +Subject: [PATCH] qdiriterator follow symlinks + +--- + src/kpluginselector.cpp | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/kpluginselector.cpp b/src/kpluginselector.cpp +index 9c3431d..d6b1ee2 100644 +--- a/src/kpluginselector.cpp ++++ b/src/kpluginselector.cpp +@@ -305,7 +305,7 @@ void KPluginSelector::addPlugins(const QString &componentName, + QStringList desktopFileNames; + const QStringList dirs = QStandardPaths::locateAll(QStandardPaths::GenericDataLocation, componentName + QStringLiteral("/kpartplugins"), QStandardPaths::LocateDirectory); + Q_FOREACH (const QString &dir, dirs) { +- QDirIterator it(dir, QStringList() << QStringLiteral("*.desktop"), QDir::NoFilter, QDirIterator::Subdirectories); ++ QDirIterator it(dir, QStringList() << QStringLiteral("*.desktop"), QDir::NoFilter, QDirIterator::Subdirectories | QDirIterator::FollowSymlinks); + while (it.hasNext()) { + desktopFileNames.append(it.next()); + } +-- +2.5.2 + diff --git a/pkgs/development/libraries/kde-frameworks-5.19/kcmutils/default.nix b/pkgs/development/libraries/kde-frameworks-5.19/kcmutils/default.nix new file mode 100644 index 000000000000..dbbb783ac615 --- /dev/null +++ b/pkgs/development/libraries/kde-frameworks-5.19/kcmutils/default.nix @@ -0,0 +1,17 @@ +{ kdeFramework, lib, extra-cmake-modules, kconfigwidgets +, kcoreaddons, kdeclarative, ki18n, kiconthemes, kitemviews +, kpackage, kservice, kxmlgui +}: + +kdeFramework { + name = "kcmutils"; + nativeBuildInputs = [ extra-cmake-modules ]; + buildInputs = [ + kcoreaddons kiconthemes kitemviews kpackage kxmlgui + ]; + propagatedBuildInputs = [ kconfigwidgets kdeclarative ki18n kservice ]; + patches = [ ./0001-qdiriterator-follow-symlinks.patch ]; + meta = { + maintainers = [ lib.maintainers.ttuegel ]; + }; +} diff --git a/pkgs/development/libraries/kde-frameworks-5.19/kcodecs.nix b/pkgs/development/libraries/kde-frameworks-5.19/kcodecs.nix new file mode 100644 index 000000000000..53a69a69b69c --- /dev/null +++ b/pkgs/development/libraries/kde-frameworks-5.19/kcodecs.nix @@ -0,0 +1,11 @@ +{ kdeFramework, lib +, extra-cmake-modules +}: + +kdeFramework { + name = "kcodecs"; + nativeBuildInputs = [ extra-cmake-modules ]; + meta = { + maintainers = [ lib.maintainers.ttuegel ]; + }; +} diff --git a/pkgs/development/libraries/kde-frameworks-5.19/kcompletion.nix b/pkgs/development/libraries/kde-frameworks-5.19/kcompletion.nix new file mode 100644 index 000000000000..e393774f16a5 --- /dev/null +++ b/pkgs/development/libraries/kde-frameworks-5.19/kcompletion.nix @@ -0,0 +1,14 @@ +{ kdeFramework, lib +, extra-cmake-modules +, kconfig +, kwidgetsaddons +}: + +kdeFramework { + name = "kcompletion"; + nativeBuildInputs = [ extra-cmake-modules ]; + buildInputs = [ kconfig kwidgetsaddons ]; + meta = { + maintainers = [ lib.maintainers.ttuegel ]; + }; +} diff --git a/pkgs/development/libraries/kde-frameworks-5.19/kconfig.nix b/pkgs/development/libraries/kde-frameworks-5.19/kconfig.nix new file mode 100644 index 000000000000..e132afe59886 --- /dev/null +++ b/pkgs/development/libraries/kde-frameworks-5.19/kconfig.nix @@ -0,0 +1,16 @@ +{ kdeFramework, lib +, extra-cmake-modules +, makeQtWrapper +}: + +kdeFramework { + name = "kconfig"; + nativeBuildInputs = [ extra-cmake-modules makeQtWrapper ]; + postInstall = '' + wrapQtProgram "$out/bin/kreadconfig5" + wrapQtProgram "$out/bin/kwriteconfig5" + ''; + meta = { + maintainers = [ lib.maintainers.ttuegel ]; + }; +} diff --git a/pkgs/development/libraries/kde-frameworks-5.19/kconfigwidgets/0001-qdiriterator-follow-symlinks.patch b/pkgs/development/libraries/kde-frameworks-5.19/kconfigwidgets/0001-qdiriterator-follow-symlinks.patch new file mode 100644 index 000000000000..7a6c0ee90534 --- /dev/null +++ b/pkgs/development/libraries/kde-frameworks-5.19/kconfigwidgets/0001-qdiriterator-follow-symlinks.patch @@ -0,0 +1,25 @@ +From 4f84780893d505b2d62a14633dd983baa8ec6e28 Mon Sep 17 00:00:00 2001 +From: Thomas Tuegel <ttuegel@gmail.com> +Date: Wed, 14 Oct 2015 06:47:01 -0500 +Subject: [PATCH] qdiriterator follow symlinks + +--- + src/khelpclient.cpp | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/khelpclient.cpp b/src/khelpclient.cpp +index 53a331e..80fbb01 100644 +--- a/src/khelpclient.cpp ++++ b/src/khelpclient.cpp +@@ -48,7 +48,7 @@ void KHelpClient::invokeHelp(const QString &anchor, const QString &_appname) + QString docPath; + const QStringList desktopDirs = QStandardPaths::standardLocations(QStandardPaths::ApplicationsLocation); + Q_FOREACH (const QString &dir, desktopDirs) { +- QDirIterator it(dir, QStringList() << appname + QLatin1String(".desktop"), QDir::NoFilter, QDirIterator::Subdirectories); ++ QDirIterator it(dir, QStringList() << appname + QLatin1String(".desktop"), QDir::NoFilter, QDirIterator::Subdirectories | QDirIterator::FollowSymlinks); + while (it.hasNext()) { + const QString desktopPath(it.next()); + KDesktopFile desktopFile(desktopPath); +-- +2.5.2 + diff --git a/pkgs/development/libraries/kde-frameworks-5.19/kconfigwidgets/default.nix b/pkgs/development/libraries/kde-frameworks-5.19/kconfigwidgets/default.nix new file mode 100644 index 000000000000..0e14d06edd36 --- /dev/null +++ b/pkgs/development/libraries/kde-frameworks-5.19/kconfigwidgets/default.nix @@ -0,0 +1,17 @@ +{ kdeFramework, lib, extra-cmake-modules, kauth, kcodecs, kconfig +, kdoctools, kguiaddons, ki18n, kwidgetsaddons, makeQtWrapper +}: + +kdeFramework { + name = "kconfigwidgets"; + nativeBuildInputs = [ extra-cmake-modules kdoctools makeQtWrapper ]; + buildInputs = [ kguiaddons ]; + propagatedBuildInputs = [ kauth kconfig kcodecs ki18n kwidgetsaddons ]; + patches = [ ./0001-qdiriterator-follow-symlinks.patch ]; + postInstall = '' + wrapQtProgram "$out/bin/preparetips5" + ''; + meta = { + maintainers = [ lib.maintainers.ttuegel ]; + }; +} diff --git a/pkgs/development/libraries/kde-frameworks-5.19/kcoreaddons.nix b/pkgs/development/libraries/kde-frameworks-5.19/kcoreaddons.nix new file mode 100644 index 000000000000..f3a1db7bd484 --- /dev/null +++ b/pkgs/development/libraries/kde-frameworks-5.19/kcoreaddons.nix @@ -0,0 +1,16 @@ +{ kdeFramework, lib, makeQtWrapper +, extra-cmake-modules +, shared_mime_info +}: + +kdeFramework { + name = "kcoreaddons"; + nativeBuildInputs = [ extra-cmake-modules makeQtWrapper ]; + buildInputs = [ shared_mime_info ]; + postInstall = '' + wrapQtProgram "$out/bin/desktoptojson" + ''; + meta = { + maintainers = [ lib.maintainers.ttuegel ]; + }; +} diff --git a/pkgs/development/libraries/kde-frameworks-5.19/kcrash.nix b/pkgs/development/libraries/kde-frameworks-5.19/kcrash.nix new file mode 100644 index 000000000000..bbab78ccb409 --- /dev/null +++ b/pkgs/development/libraries/kde-frameworks-5.19/kcrash.nix @@ -0,0 +1,16 @@ +{ kdeFramework, lib +, extra-cmake-modules +, kcoreaddons +, kwindowsystem +, qtx11extras +}: + +kdeFramework { + name = "kcrash"; + nativeBuildInputs = [ extra-cmake-modules ]; + buildInputs = [ kcoreaddons ]; + propagatedBuildInputs = [ kwindowsystem qtx11extras ]; + meta = { + maintainers = [ lib.maintainers.ttuegel ]; + }; +} diff --git a/pkgs/development/libraries/kde-frameworks-5.19/kdbusaddons.nix b/pkgs/development/libraries/kde-frameworks-5.19/kdbusaddons.nix new file mode 100644 index 000000000000..d2ceab31d14b --- /dev/null +++ b/pkgs/development/libraries/kde-frameworks-5.19/kdbusaddons.nix @@ -0,0 +1,17 @@ +{ kdeFramework, lib +, extra-cmake-modules +, makeQtWrapper +, qtx11extras +}: + +kdeFramework { + name = "kdbusaddons"; + nativeBuildInputs = [ extra-cmake-modules makeQtWrapper ]; + propagatedBuildInputs = [ qtx11extras ]; + postInstall = '' + wrapQtProgram "$out/bin/kquitapp5" + ''; + meta = { + maintainers = [ lib.maintainers.ttuegel ]; + }; +} diff --git a/pkgs/development/libraries/kde-frameworks-5.19/kdeclarative.nix b/pkgs/development/libraries/kde-frameworks-5.19/kdeclarative.nix new file mode 100644 index 000000000000..74d107466cfc --- /dev/null +++ b/pkgs/development/libraries/kde-frameworks-5.19/kdeclarative.nix @@ -0,0 +1,22 @@ +{ kdeFramework, lib, extra-cmake-modules, epoxy, kconfig +, kglobalaccel, kguiaddons, ki18n, kiconthemes, kio, kpackage +, kwidgetsaddons, kwindowsystem, makeQtWrapper, pkgconfig +, qtdeclarative +}: + +kdeFramework { + name = "kdeclarative"; + nativeBuildInputs = [ extra-cmake-modules makeQtWrapper ]; + buildInputs = [ + epoxy kguiaddons kiconthemes kwidgetsaddons + ]; + propagatedBuildInputs = [ + kconfig kglobalaccel ki18n kio kpackage kwindowsystem qtdeclarative + ]; + postInstall = '' + wrapQtProgram "$out/bin/kpackagelauncherqml" + ''; + meta = { + maintainers = [ lib.maintainers.ttuegel ]; + }; +} diff --git a/pkgs/development/libraries/kde-frameworks-5.19/kded.nix b/pkgs/development/libraries/kde-frameworks-5.19/kded.nix new file mode 100644 index 000000000000..47ae2d68c68e --- /dev/null +++ b/pkgs/development/libraries/kde-frameworks-5.19/kded.nix @@ -0,0 +1,19 @@ +{ kdeFramework, lib +, extra-cmake-modules +, kconfig +, kcoreaddons +, kcrash +, kdbusaddons +, kdoctools +, kinit +, kservice +}: + +kdeFramework { + name = "kded"; + buildInputs = [ kconfig kcoreaddons kcrash kdbusaddons kinit kservice ]; + nativeBuildInputs = [ extra-cmake-modules kdoctools ]; + meta = { + maintainers = [ lib.maintainers.ttuegel ]; + }; +} diff --git a/pkgs/development/libraries/kde-frameworks-5.19/kdelibs4support/default.nix b/pkgs/development/libraries/kde-frameworks-5.19/kdelibs4support/default.nix new file mode 100644 index 000000000000..843db83a99b2 --- /dev/null +++ b/pkgs/development/libraries/kde-frameworks-5.19/kdelibs4support/default.nix @@ -0,0 +1,36 @@ +{ kdeFramework, lib, copyPathsToStore +, extra-cmake-modules, docbook_xml_dtd_45, kauth +, karchive, kcompletion, kconfig, kconfigwidgets, kcoreaddons +, kcrash, kdbusaddons, kded, kdesignerplugin, kdoctools, kemoticons +, kglobalaccel, kguiaddons, ki18n, kiconthemes, kio, kitemmodels +, kinit, knotifications, kparts, kservice, ktextwidgets +, kunitconversion, kwidgetsaddons, kwindowsystem, kxmlgui +, networkmanager, qtsvg, qtx11extras, xlibs +}: + +# TODO: debug docbook detection + +kdeFramework { + name = "kdelibs4support"; + outputs = [ "dev" "out" ]; + patches = copyPathsToStore (lib.readPathsFromFile ./. ./series); + setupHook = ./setup-hook.sh; + nativeBuildInputs = [ extra-cmake-modules kdoctools ]; + buildInputs = [ + kcompletion kconfig kded kservice kwidgetsaddons + kxmlgui networkmanager qtsvg qtx11extras xlibs.libSM + ]; + propagatedBuildInputs = [ + kauth karchive kconfigwidgets kcoreaddons kcrash kdbusaddons + kdesignerplugin kemoticons kglobalaccel kguiaddons ki18n kio + kiconthemes kitemmodels kinit knotifications kparts ktextwidgets + kunitconversion kwindowsystem + ]; + cmakeFlags = [ + "-DDocBookXML4_DTD_DIR=${docbook_xml_dtd_45}/xml/dtd/docbook" + "-DDocBookXML4_DTD_VERSION=4.5" + ]; + meta = { + maintainers = [ lib.maintainers.ttuegel ]; + }; +} diff --git a/pkgs/development/libraries/kde-frameworks-5.19/kdelibs4support/nix-kde-include-dir.patch b/pkgs/development/libraries/kde-frameworks-5.19/kdelibs4support/nix-kde-include-dir.patch new file mode 100644 index 000000000000..eabb70254483 --- /dev/null +++ b/pkgs/development/libraries/kde-frameworks-5.19/kdelibs4support/nix-kde-include-dir.patch @@ -0,0 +1,13 @@ +Index: kdelibs4support-5.18.0/src/kdecore/kstandarddirs.cpp +=================================================================== +--- kdelibs4support-5.18.0.orig/src/kdecore/kstandarddirs.cpp ++++ kdelibs4support-5.18.0/src/kdecore/kstandarddirs.cpp +@@ -292,7 +292,7 @@ static QString relativeInstallPath(const + return QFile::decodeName(ICON_INSTALL_DIR "/"); + } + if (strcmp("include", type) == 0) { +- return QFile::decodeName(INCLUDE_INSTALL_DIR "/"); ++ return QFile::decodeName(qgetenv("NIX_KDE_INCLUDE_DIR")); + } + break; + case 'l': diff --git a/pkgs/development/libraries/kde-frameworks-5.19/kdelibs4support/series b/pkgs/development/libraries/kde-frameworks-5.19/kdelibs4support/series new file mode 100644 index 000000000000..9b08ab208774 --- /dev/null +++ b/pkgs/development/libraries/kde-frameworks-5.19/kdelibs4support/series @@ -0,0 +1 @@ +nix-kde-include-dir.patch diff --git a/pkgs/development/libraries/kde-frameworks-5.19/kdelibs4support/setup-hook.sh b/pkgs/development/libraries/kde-frameworks-5.19/kdelibs4support/setup-hook.sh new file mode 100644 index 000000000000..21ac2e83b5da --- /dev/null +++ b/pkgs/development/libraries/kde-frameworks-5.19/kdelibs4support/setup-hook.sh @@ -0,0 +1 @@ +export NIX_KDE_INCLUDE_DIR="@dev@/include/" # trailing slash is required! diff --git a/pkgs/development/libraries/kde-frameworks-5.19/kdesignerplugin.nix b/pkgs/development/libraries/kde-frameworks-5.19/kdesignerplugin.nix new file mode 100644 index 000000000000..cbc114ccca03 --- /dev/null +++ b/pkgs/development/libraries/kde-frameworks-5.19/kdesignerplugin.nix @@ -0,0 +1,34 @@ +{ kdeFramework, lib, makeQtWrapper +, extra-cmake-modules +, kcompletion +, kconfig +, kconfigwidgets +, kcoreaddons +, kdewebkit +, kdoctools +, kiconthemes +, kio +, kitemviews +, kplotting +, ktextwidgets +, kwidgetsaddons +, kxmlgui +, sonnet +}: + +kdeFramework { + name = "kdesignerplugin"; + nativeBuildInputs = [ extra-cmake-modules kdoctools makeQtWrapper ]; + buildInputs = [ + kcompletion kconfig kconfigwidgets kcoreaddons kdewebkit + kiconthemes kitemviews kplotting ktextwidgets kwidgetsaddons + kxmlgui + ]; + propagatedBuildInputs = [ kio sonnet ]; + postInstall = '' + wrapQtProgram "$out/bin/kgendesignerplugin" + ''; + meta = { + maintainers = [ lib.maintainers.ttuegel ]; + }; +} diff --git a/pkgs/development/libraries/kde-frameworks-5.19/kdesu.nix b/pkgs/development/libraries/kde-frameworks-5.19/kdesu.nix new file mode 100644 index 000000000000..364fbd6a720b --- /dev/null +++ b/pkgs/development/libraries/kde-frameworks-5.19/kdesu.nix @@ -0,0 +1,13 @@ +{ kdeFramework, lib, extra-cmake-modules, kcoreaddons, ki18n, kpty +, kservice +}: + +kdeFramework { + name = "kdesu"; + nativeBuildInputs = [ extra-cmake-modules ]; + buildInputs = [ kcoreaddons kservice ]; + propagatedBuildInputs = [ ki18n kpty ]; + meta = { + maintainers = [ lib.maintainers.ttuegel ]; + }; +} diff --git a/pkgs/development/libraries/kde-frameworks-5.19/kdewebkit.nix b/pkgs/development/libraries/kde-frameworks-5.19/kdewebkit.nix new file mode 100644 index 000000000000..d361313d1d49 --- /dev/null +++ b/pkgs/development/libraries/kde-frameworks-5.19/kdewebkit.nix @@ -0,0 +1,13 @@ +{ kdeFramework, lib, extra-cmake-modules, kconfig, kcoreaddons +, ki18n, kio, kjobwidgets, kparts, kservice, kwallet, qtwebkit +}: + +kdeFramework { + name = "kdewebkit"; + nativeBuildInputs = [ extra-cmake-modules ]; + buildInputs = [ kconfig kcoreaddons kjobwidgets kparts kservice kwallet ]; + propagatedBuildInputs = [ ki18n kio qtwebkit ]; + meta = { + maintainers = [ lib.maintainers.ttuegel ]; + }; +} diff --git a/pkgs/development/libraries/kde-frameworks-5.19/kdnssd.nix b/pkgs/development/libraries/kde-frameworks-5.19/kdnssd.nix new file mode 100644 index 000000000000..f00432b0c9ce --- /dev/null +++ b/pkgs/development/libraries/kde-frameworks-5.19/kdnssd.nix @@ -0,0 +1,13 @@ +{ kdeFramework, lib +, extra-cmake-modules +, avahi +}: + +kdeFramework { + name = "kdnssd"; + nativeBuildInputs = [ extra-cmake-modules ]; + buildInputs = [ avahi ]; + meta = { + maintainers = [ lib.maintainers.ttuegel ]; + }; +} diff --git a/pkgs/development/libraries/kde-frameworks-5.19/kdoctools/default.nix b/pkgs/development/libraries/kde-frameworks-5.19/kdoctools/default.nix new file mode 100644 index 000000000000..f67c19f42395 --- /dev/null +++ b/pkgs/development/libraries/kde-frameworks-5.19/kdoctools/default.nix @@ -0,0 +1,19 @@ +{ kdeFramework, lib, extra-cmake-modules, docbook_xml_dtd_45 +, docbook5_xsl, karchive, ki18n, makeQtWrapper, perl, perlPackages +}: + +kdeFramework { + name = "kdoctools"; + nativeBuildInputs = [ extra-cmake-modules ]; + buildInputs = [ karchive ]; + propagatedBuildInputs = [ ki18n ]; + propagatedNativeBuildInputs = [ makeQtWrapper perl perlPackages.URI ]; + cmakeFlags = [ + "-DDocBookXML4_DTD_DIR=${docbook_xml_dtd_45}/xml/dtd/docbook" + "-DDocBookXSL_DIR=${docbook5_xsl}/xml/xsl/docbook" + ]; + patches = [ ./kdoctools-no-find-docbook-xml.patch ]; + meta = { + maintainers = [ lib.maintainers.ttuegel ]; + }; +} diff --git a/pkgs/development/libraries/kde-frameworks-5.19/kdoctools/kdoctools-no-find-docbook-xml.patch b/pkgs/development/libraries/kde-frameworks-5.19/kdoctools/kdoctools-no-find-docbook-xml.patch new file mode 100644 index 000000000000..4e3a33efab32 --- /dev/null +++ b/pkgs/development/libraries/kde-frameworks-5.19/kdoctools/kdoctools-no-find-docbook-xml.patch @@ -0,0 +1,12 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 5c4863c..f731775 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -46,7 +46,6 @@ set_package_properties(LibXml2 PROPERTIES + ) + + +-find_package(DocBookXML4 "4.5") + + set_package_properties(DocBookXML4 PROPERTIES + TYPE REQUIRED diff --git a/pkgs/development/libraries/kde-frameworks-5.19/kemoticons.nix b/pkgs/development/libraries/kde-frameworks-5.19/kemoticons.nix new file mode 100644 index 000000000000..d165f84e3a2d --- /dev/null +++ b/pkgs/development/libraries/kde-frameworks-5.19/kemoticons.nix @@ -0,0 +1,17 @@ +{ kdeFramework, lib +, extra-cmake-modules +, karchive +, kconfig +, kcoreaddons +, kservice +}: + +kdeFramework { + name = "kemoticons"; + nativeBuildInputs = [ extra-cmake-modules ]; + buildInputs = [ karchive kconfig kcoreaddons ]; + propagatedBuildInputs = [ kservice ]; + meta = { + maintainers = [ lib.maintainers.ttuegel ]; + }; +} diff --git a/pkgs/development/libraries/kde-frameworks-5.19/kfilemetadata/cmake-install-paths.patch b/pkgs/development/libraries/kde-frameworks-5.19/kfilemetadata/cmake-install-paths.patch new file mode 100644 index 000000000000..732f7b69c828 --- /dev/null +++ b/pkgs/development/libraries/kde-frameworks-5.19/kfilemetadata/cmake-install-paths.patch @@ -0,0 +1,13 @@ +Index: kfilemetadata-5.18.0/src/CMakeLists.txt +=================================================================== +--- kfilemetadata-5.18.0.orig/src/CMakeLists.txt ++++ kfilemetadata-5.18.0/src/CMakeLists.txt +@@ -49,7 +49,7 @@ install(TARGETS KF5FileMetaData EXPORT K + + install(EXPORT KF5FileMetaDataTargets + NAMESPACE KF5:: +- DESTINATION ${LIB_INSTALL_DIR}/cmake/KF5FileMetaData ++ DESTINATION ${KDE_INSTALL_FULL_CMAKEPACKAGEDIR}/KF5FileMetaData + FILE KF5FileMetaDataTargets.cmake) + + install(FILES diff --git a/pkgs/development/libraries/kde-frameworks-5.19/kfilemetadata/default.nix b/pkgs/development/libraries/kde-frameworks-5.19/kfilemetadata/default.nix new file mode 100644 index 000000000000..9bb4831cf8da --- /dev/null +++ b/pkgs/development/libraries/kde-frameworks-5.19/kfilemetadata/default.nix @@ -0,0 +1,14 @@ +{ kdeFramework, lib, copyPathsToStore, extra-cmake-modules +, attr, ebook_tools, exiv2, ffmpeg, karchive, ki18n, poppler, qtbase, taglib +}: + +kdeFramework { + name = "kfilemetadata"; + patches = copyPathsToStore (lib.readPathsFromFile ./. ./series); + nativeBuildInputs = [ extra-cmake-modules ]; + buildInputs = [ attr ebook_tools exiv2 ffmpeg karchive poppler taglib ]; + propagatedBuildInputs = [ qtbase ki18n ]; + meta = { + maintainers = [ lib.maintainers.ttuegel ]; + }; +} diff --git a/pkgs/development/libraries/kde-frameworks-5.19/kfilemetadata/series b/pkgs/development/libraries/kde-frameworks-5.19/kfilemetadata/series new file mode 100644 index 000000000000..d2689425c387 --- /dev/null +++ b/pkgs/development/libraries/kde-frameworks-5.19/kfilemetadata/series @@ -0,0 +1 @@ +cmake-install-paths.patch diff --git a/pkgs/development/libraries/kde-frameworks-5.19/kglobalaccel.nix b/pkgs/development/libraries/kde-frameworks-5.19/kglobalaccel.nix new file mode 100644 index 000000000000..c535b3590a38 --- /dev/null +++ b/pkgs/development/libraries/kde-frameworks-5.19/kglobalaccel.nix @@ -0,0 +1,23 @@ +{ kdeFramework, lib +, extra-cmake-modules +, kconfig +, kcoreaddons +, kcrash +, kdbusaddons +, kwindowsystem +, makeQtWrapper +, qtx11extras +}: + +kdeFramework { + name = "kglobalaccel"; + nativeBuildInputs = [ extra-cmake-modules makeQtWrapper ]; + buildInputs = [ kconfig kcoreaddons kcrash kdbusaddons ]; + propagatedBuildInputs = [ kwindowsystem qtx11extras ]; + postInstall = '' + wrapQtProgram "$out/bin/kglobalaccel5" + ''; + meta = { + maintainers = [ lib.maintainers.ttuegel ]; + }; +} diff --git a/pkgs/development/libraries/kde-frameworks-5.19/kguiaddons.nix b/pkgs/development/libraries/kde-frameworks-5.19/kguiaddons.nix new file mode 100644 index 000000000000..bc4e9ab11843 --- /dev/null +++ b/pkgs/development/libraries/kde-frameworks-5.19/kguiaddons.nix @@ -0,0 +1,13 @@ +{ kdeFramework, lib +, extra-cmake-modules +, qtx11extras +}: + +kdeFramework { + name = "kguiaddons"; + nativeBuildInputs = [ extra-cmake-modules ]; + buildInputs = [ qtx11extras ]; + meta = { + maintainers = [ lib.maintainers.ttuegel ]; + }; +} diff --git a/pkgs/development/libraries/kde-frameworks-5.19/khtml.nix b/pkgs/development/libraries/kde-frameworks-5.19/khtml.nix new file mode 100644 index 000000000000..d40df466ebbd --- /dev/null +++ b/pkgs/development/libraries/kde-frameworks-5.19/khtml.nix @@ -0,0 +1,21 @@ +{ kdeFramework, lib, extra-cmake-modules, giflib, karchive +, kcodecs, kglobalaccel, ki18n, kiconthemes, kio, kjs +, knotifications, kparts, ktextwidgets, kwallet, kwidgetsaddons +, kwindowsystem, kxmlgui, perl, phonon, qtx11extras, sonnet +}: + +kdeFramework { + name = "khtml"; + nativeBuildInputs = [ extra-cmake-modules perl ]; + buildInputs = [ + giflib karchive kiconthemes knotifications kwallet kwidgetsaddons + kxmlgui phonon + ]; + propagatedBuildInputs = [ + kcodecs kglobalaccel ki18n kio kjs kparts ktextwidgets + kwindowsystem qtx11extras sonnet + ]; + meta = { + maintainers = [ lib.maintainers.ttuegel ]; + }; +} diff --git a/pkgs/development/libraries/kde-frameworks-5.19/ki18n.nix b/pkgs/development/libraries/kde-frameworks-5.19/ki18n.nix new file mode 100644 index 000000000000..268006512e7c --- /dev/null +++ b/pkgs/development/libraries/kde-frameworks-5.19/ki18n.nix @@ -0,0 +1,17 @@ +{ kdeFramework, lib +, extra-cmake-modules +, gettext +, python +, qtdeclarative +, qtscript +}: + +kdeFramework { + name = "ki18n"; + nativeBuildInputs = [ extra-cmake-modules ]; + buildInputs = [ qtdeclarative qtscript ]; + propagatedNativeBuildInputs = [ gettext python ]; + meta = { + maintainers = [ lib.maintainers.ttuegel ]; + }; +} diff --git a/pkgs/development/libraries/kde-frameworks-5.19/kiconthemes/default-theme-breeze.patch b/pkgs/development/libraries/kde-frameworks-5.19/kiconthemes/default-theme-breeze.patch new file mode 100644 index 000000000000..5b3b15d5d5b5 --- /dev/null +++ b/pkgs/development/libraries/kde-frameworks-5.19/kiconthemes/default-theme-breeze.patch @@ -0,0 +1,13 @@ +Index: kiconthemes-5.17.0/src/kicontheme.cpp +=================================================================== +--- kiconthemes-5.17.0.orig/src/kicontheme.cpp ++++ kiconthemes-5.17.0/src/kicontheme.cpp +@@ -557,7 +557,7 @@ void KIconTheme::reconfigure() + // static + QString KIconTheme::defaultThemeName() + { +- return QStringLiteral("oxygen"); ++ return QStringLiteral("breeze"); + } + + void KIconTheme::assignIconsToContextMenu(ContextMenus type, diff --git a/pkgs/development/libraries/kde-frameworks-5.19/kiconthemes/default.nix b/pkgs/development/libraries/kde-frameworks-5.19/kiconthemes/default.nix new file mode 100644 index 000000000000..b78b25582beb --- /dev/null +++ b/pkgs/development/libraries/kde-frameworks-5.19/kiconthemes/default.nix @@ -0,0 +1,18 @@ +{ kdeFramework, lib, copyPathsToStore +, extra-cmake-modules, makeQtWrapper +, kconfigwidgets, ki18n, breeze-icons, kitemviews, qtsvg +}: + +kdeFramework { + name = "kiconthemes"; + patches = copyPathsToStore (lib.readPathsFromFile ./. ./series); + nativeBuildInputs = [ extra-cmake-modules makeQtWrapper ]; + buildInputs = [ kconfigwidgets kitemviews qtsvg ]; + propagatedBuildInputs = [ breeze-icons ki18n ]; + postInstall = '' + wrapQtProgram "$out/bin/kiconfinder5" + ''; + meta = { + maintainers = [ lib.maintainers.ttuegel ]; + }; +} diff --git a/pkgs/development/libraries/kde-frameworks-5.19/kiconthemes/series b/pkgs/development/libraries/kde-frameworks-5.19/kiconthemes/series new file mode 100644 index 000000000000..ab5cc8a3edb2 --- /dev/null +++ b/pkgs/development/libraries/kde-frameworks-5.19/kiconthemes/series @@ -0,0 +1 @@ +default-theme-breeze.patch diff --git a/pkgs/development/libraries/kde-frameworks-5.19/kidletime.nix b/pkgs/development/libraries/kde-frameworks-5.19/kidletime.nix new file mode 100644 index 000000000000..fc0865600239 --- /dev/null +++ b/pkgs/development/libraries/kde-frameworks-5.19/kidletime.nix @@ -0,0 +1,15 @@ +{ kdeFramework, lib +, extra-cmake-modules +, qtbase +, qtx11extras +}: + +kdeFramework { + name = "kidletime"; + nativeBuildInputs = [ extra-cmake-modules ]; + buildInputs = [ qtx11extras ]; + propagatedBuildInputs = [ qtbase ]; + meta = { + maintainers = [ lib.maintainers.ttuegel ]; + }; +} diff --git a/pkgs/development/libraries/kde-frameworks-5.19/kimageformats.nix b/pkgs/development/libraries/kde-frameworks-5.19/kimageformats.nix new file mode 100644 index 000000000000..49d66bbcc2c6 --- /dev/null +++ b/pkgs/development/libraries/kde-frameworks-5.19/kimageformats.nix @@ -0,0 +1,13 @@ +{ kdeFramework, lib +, extra-cmake-modules +, ilmbase +}: + +kdeFramework { + name = "kimageformats"; + nativeBuildInputs = [ extra-cmake-modules ]; + NIX_CFLAGS_COMPILE = "-I${ilmbase}/include/OpenEXR"; + meta = { + maintainers = [ lib.maintainers.ttuegel ]; + }; +} diff --git a/pkgs/development/libraries/kde-frameworks-5.19/kinit/0001-kinit-libpath.patch b/pkgs/development/libraries/kde-frameworks-5.19/kinit/0001-kinit-libpath.patch new file mode 100644 index 000000000000..9c76079a382a --- /dev/null +++ b/pkgs/development/libraries/kde-frameworks-5.19/kinit/0001-kinit-libpath.patch @@ -0,0 +1,42 @@ +From 723c9b1268a04127647a1c20eebe9804150566dd Mon Sep 17 00:00:00 2001 +From: Thomas Tuegel <ttuegel@gmail.com> +Date: Sat, 13 Jun 2015 08:57:55 -0500 +Subject: [PATCH] kinit libpath + +--- + src/kdeinit/kinit.cpp | 18 ++++++++++-------- + 1 file changed, 10 insertions(+), 8 deletions(-) + +diff --git a/src/kdeinit/kinit.cpp b/src/kdeinit/kinit.cpp +index 9e775b6..0ac5646 100644 +--- a/src/kdeinit/kinit.cpp ++++ b/src/kdeinit/kinit.cpp +@@ -660,15 +660,17 @@ static pid_t launch(int argc, const char *_name, const char *args, + if (!libpath.isEmpty()) { + if (!l.load()) { + if (libpath_relative) { +- // NB: Because Qt makes the actual dlopen() call, the +- // RUNPATH of kdeinit is *not* respected - see +- // https://sourceware.org/bugzilla/show_bug.cgi?id=13945 +- // - so we try hacking it in ourselves +- QString install_lib_dir = QFile::decodeName( +- CMAKE_INSTALL_PREFIX "/" LIB_INSTALL_DIR "/"); +- libpath = install_lib_dir + libpath; +- l.setFileName(libpath); ++ // Use QT_PLUGIN_PATH to find shared library directories ++ // For KF5, the plugin path is /lib/qt5/plugins/, so kdeinit5 ++ // shared libraries should be in /lib/qt5/plugins/../../ ++ const QRegExp pathSepRegExp(QString::fromLatin1("[:\b]")); ++ const QString up = QString::fromLocal8Bit("/../../"); ++ const QStringList paths = QString::fromLocal8Bit(qgetenv("QT_PLUGIN_PATH")).split(pathSepRegExp, QString::KeepEmptyParts); ++ Q_FOREACH (const QString &path, paths) { ++ l.setFileName(path + up + libpath); + l.load(); ++ if (l.isLoaded()) break; ++ } + } + } + if (!l.isLoaded()) { +-- +2.4.2 + diff --git a/pkgs/development/libraries/kde-frameworks-5.19/kinit/default.nix b/pkgs/development/libraries/kde-frameworks-5.19/kinit/default.nix new file mode 100644 index 000000000000..5f644d7c424e --- /dev/null +++ b/pkgs/development/libraries/kde-frameworks-5.19/kinit/default.nix @@ -0,0 +1,17 @@ +{ kdeFramework, lib, extra-cmake-modules, kconfig, kcrash +, kdoctools, ki18n, kio, kservice, kwindowsystem, libcap +, libcap_progs +}: + +# TODO: setuid wrapper + +kdeFramework { + name = "kinit"; + nativeBuildInputs = [ extra-cmake-modules kdoctools libcap_progs ]; + buildInputs = [ kconfig kcrash kservice libcap ]; + propagatedBuildInputs = [ ki18n kio kwindowsystem ]; + patches = [ ./0001-kinit-libpath.patch ]; + meta = { + maintainers = [ lib.maintainers.ttuegel ]; + }; +} diff --git a/pkgs/development/libraries/kde-frameworks-5.19/kio/default.nix b/pkgs/development/libraries/kde-frameworks-5.19/kio/default.nix new file mode 100644 index 000000000000..a2131ff33850 --- /dev/null +++ b/pkgs/development/libraries/kde-frameworks-5.19/kio/default.nix @@ -0,0 +1,33 @@ +{ kdeFramework, lib, copyPathsToStore +, extra-cmake-modules, acl, karchive +, kbookmarks, kcompletion, kconfig, kconfigwidgets, kcoreaddons +, kdbusaddons, kdoctools, ki18n, kiconthemes, kitemviews +, kjobwidgets, knotifications, kservice, ktextwidgets, kwallet +, kwidgetsaddons, kwindowsystem, kxmlgui, makeQtWrapper +, qtscript, qtx11extras, solid +}: + +kdeFramework { + name = "kio"; + patches = copyPathsToStore (lib.readPathsFromFile ./. ./series); + nativeBuildInputs = [ extra-cmake-modules kdoctools makeQtWrapper ]; + buildInputs = [ + acl karchive kconfig kcoreaddons kdbusaddons kiconthemes + knotifications ktextwidgets kwallet kwidgetsaddons + qtscript + ]; + propagatedBuildInputs = [ + kbookmarks kcompletion kconfigwidgets ki18n kitemviews kjobwidgets + kservice kwindowsystem kxmlgui solid qtx11extras + ]; + postInstall = '' + wrapQtProgram "$out/bin/kcookiejar5" + wrapQtProgram "$out/bin/ktelnetservice5" + wrapQtProgram "$out/bin/ktrash5" + wrapQtProgram "$out/bin/kmailservice5" + wrapQtProgram "$out/bin/protocoltojson" + ''; + meta = { + maintainers = [ lib.maintainers.ttuegel ]; + }; +} diff --git a/pkgs/development/libraries/kde-frameworks-5.19/kio/samba-search-path.patch b/pkgs/development/libraries/kde-frameworks-5.19/kio/samba-search-path.patch new file mode 100644 index 000000000000..c9ad46b41bb7 --- /dev/null +++ b/pkgs/development/libraries/kde-frameworks-5.19/kio/samba-search-path.patch @@ -0,0 +1,28 @@ +Index: kio-5.17.0/src/core/ksambashare.cpp +=================================================================== +--- kio-5.17.0.orig/src/core/ksambashare.cpp ++++ kio-5.17.0/src/core/ksambashare.cpp +@@ -67,13 +67,18 @@ KSambaSharePrivate::~KSambaSharePrivate( + + bool KSambaSharePrivate::isSambaInstalled() + { +- if (QFile::exists(QStringLiteral("/usr/sbin/smbd")) +- || QFile::exists(QStringLiteral("/usr/local/sbin/smbd"))) { +- return true; ++ const QByteArray pathEnv = qgetenv("PATH"); ++ if (!pathEnv.isEmpty()) { ++ QLatin1Char pathSep(':'); ++ QStringList paths = QFile::decodeName(pathEnv).split(pathSep, QString::SkipEmptyParts); ++ for (QStringList::iterator it = paths.begin(); it != paths.end(); ++it) { ++ it->append("/smbd"); ++ if (QFile::exists(*it)) { ++ return true; ++ } ++ } + } + +- //qDebug() << "Samba is not installed!"; +- + return false; + } + diff --git a/pkgs/development/libraries/kde-frameworks-5.19/kio/series b/pkgs/development/libraries/kde-frameworks-5.19/kio/series new file mode 100644 index 000000000000..77ca15450047 --- /dev/null +++ b/pkgs/development/libraries/kde-frameworks-5.19/kio/series @@ -0,0 +1 @@ +samba-search-path.patch diff --git a/pkgs/development/libraries/kde-frameworks-5.19/kitemmodels.nix b/pkgs/development/libraries/kde-frameworks-5.19/kitemmodels.nix new file mode 100644 index 000000000000..a9024d771cc3 --- /dev/null +++ b/pkgs/development/libraries/kde-frameworks-5.19/kitemmodels.nix @@ -0,0 +1,11 @@ +{ kdeFramework, lib +, extra-cmake-modules +}: + +kdeFramework { + name = "kitemmodels"; + nativeBuildInputs = [ extra-cmake-modules ]; + meta = { + maintainers = [ lib.maintainers.ttuegel ]; + }; +} diff --git a/pkgs/development/libraries/kde-frameworks-5.19/kitemviews.nix b/pkgs/development/libraries/kde-frameworks-5.19/kitemviews.nix new file mode 100644 index 000000000000..931019ce495d --- /dev/null +++ b/pkgs/development/libraries/kde-frameworks-5.19/kitemviews.nix @@ -0,0 +1,11 @@ +{ kdeFramework, lib +, extra-cmake-modules +}: + +kdeFramework { + name = "kitemviews"; + nativeBuildInputs = [ extra-cmake-modules ]; + meta = { + maintainers = [ lib.maintainers.ttuegel ]; + }; +} diff --git a/pkgs/development/libraries/kde-frameworks-5.19/kjobwidgets.nix b/pkgs/development/libraries/kde-frameworks-5.19/kjobwidgets.nix new file mode 100644 index 000000000000..746edf12eea0 --- /dev/null +++ b/pkgs/development/libraries/kde-frameworks-5.19/kjobwidgets.nix @@ -0,0 +1,16 @@ +{ kdeFramework, lib +, extra-cmake-modules +, kcoreaddons +, kwidgetsaddons +, qtx11extras +}: + +kdeFramework { + name = "kjobwidgets"; + nativeBuildInputs = [ extra-cmake-modules ]; + buildInputs = [ kcoreaddons kwidgetsaddons ]; + propagatedBuildInputs = [ qtx11extras ]; + meta = { + maintainers = [ lib.maintainers.ttuegel ]; + }; +} diff --git a/pkgs/development/libraries/kde-frameworks-5.19/kjs.nix b/pkgs/development/libraries/kde-frameworks-5.19/kjs.nix new file mode 100644 index 000000000000..768720f178c8 --- /dev/null +++ b/pkgs/development/libraries/kde-frameworks-5.19/kjs.nix @@ -0,0 +1,16 @@ +{ kdeFramework, lib +, extra-cmake-modules +, kdoctools +, makeQtWrapper +}: + +kdeFramework { + name = "kjs"; + nativeBuildInputs = [ extra-cmake-modules kdoctools makeQtWrapper ]; + postInstall = '' + wrapQtProgram "$out/bin/kjs5" + ''; + meta = { + maintainers = [ lib.maintainers.ttuegel ]; + }; +} diff --git a/pkgs/development/libraries/kde-frameworks-5.19/kjsembed.nix b/pkgs/development/libraries/kde-frameworks-5.19/kjsembed.nix new file mode 100644 index 000000000000..22eef2d47bde --- /dev/null +++ b/pkgs/development/libraries/kde-frameworks-5.19/kjsembed.nix @@ -0,0 +1,17 @@ +{ kdeFramework, lib, extra-cmake-modules, kdoctools, ki18n, kjs +, makeQtWrapper, qtsvg +}: + +kdeFramework { + name = "kjsembed"; + nativeBuildInputs = [ extra-cmake-modules kdoctools makeQtWrapper ]; + buildInputs = [ qtsvg ]; + propagatedBuildInputs = [ ki18n kjs ]; + postInstall = '' + wrapQtProgram "$out/bin/kjscmd5" + wrapQtProgram "$out/bin/kjsconsole" + ''; + meta = { + maintainers = [ lib.maintainers.ttuegel ]; + }; +} diff --git a/pkgs/development/libraries/kde-frameworks-5.19/kmediaplayer.nix b/pkgs/development/libraries/kde-frameworks-5.19/kmediaplayer.nix new file mode 100644 index 000000000000..460458b22323 --- /dev/null +++ b/pkgs/development/libraries/kde-frameworks-5.19/kmediaplayer.nix @@ -0,0 +1,15 @@ +{ kdeFramework, lib +, extra-cmake-modules +, kparts +, kxmlgui +}: + +kdeFramework { + name = "kmediaplayer"; + nativeBuildInputs = [ extra-cmake-modules ]; + buildInputs = [ kxmlgui ]; + propagatedBuildInputs = [ kparts ]; + meta = { + maintainers = [ lib.maintainers.ttuegel ]; + }; +} diff --git a/pkgs/development/libraries/kde-frameworks-5.19/knewstuff.nix b/pkgs/development/libraries/kde-frameworks-5.19/knewstuff.nix new file mode 100644 index 000000000000..5bcd6f301462 --- /dev/null +++ b/pkgs/development/libraries/kde-frameworks-5.19/knewstuff.nix @@ -0,0 +1,17 @@ +{ kdeFramework, lib, extra-cmake-modules, attica, karchive +, kcompletion, kconfig, kcoreaddons, ki18n, kiconthemes, kio +, kitemviews, kservice, ktextwidgets, kwidgetsaddons, kxmlgui +}: + +kdeFramework { + name = "knewstuff"; + nativeBuildInputs = [ extra-cmake-modules ]; + buildInputs = [ + karchive kcompletion kconfig kcoreaddons kiconthemes + kitemviews ktextwidgets kwidgetsaddons + ]; + propagatedBuildInputs = [ attica ki18n kio kservice kxmlgui ]; + meta = { + maintainers = [ lib.maintainers.ttuegel ]; + }; +} diff --git a/pkgs/development/libraries/kde-frameworks-5.19/knotifications.nix b/pkgs/development/libraries/kde-frameworks-5.19/knotifications.nix new file mode 100644 index 000000000000..7e301dd0f268 --- /dev/null +++ b/pkgs/development/libraries/kde-frameworks-5.19/knotifications.nix @@ -0,0 +1,21 @@ +{ kdeFramework, lib +, extra-cmake-modules +, kcodecs +, kconfig +, kcoreaddons +, kwindowsystem +, phonon +, qtx11extras +}: + +kdeFramework { + name = "knotifications"; + nativeBuildInputs = [ extra-cmake-modules ]; + buildInputs = [ + kcodecs kconfig kcoreaddons phonon + ]; + propagatedBuildInputs = [ kwindowsystem qtx11extras ]; + meta = { + maintainers = [ lib.maintainers.ttuegel ]; + }; +} diff --git a/pkgs/development/libraries/kde-frameworks-5.19/knotifyconfig.nix b/pkgs/development/libraries/kde-frameworks-5.19/knotifyconfig.nix new file mode 100644 index 000000000000..dd99d2d4f1e5 --- /dev/null +++ b/pkgs/development/libraries/kde-frameworks-5.19/knotifyconfig.nix @@ -0,0 +1,13 @@ +{ kdeFramework, lib, extra-cmake-modules, kcompletion, kconfig +, ki18n, kio, phonon +}: + +kdeFramework { + name = "knotifyconfig"; + nativeBuildInputs = [ extra-cmake-modules ]; + buildInputs = [ kcompletion kconfig phonon ]; + propagatedBuildInputs = [ ki18n kio ]; + meta = { + maintainers = [ lib.maintainers.ttuegel ]; + }; +} diff --git a/pkgs/development/libraries/kde-frameworks-5.19/kpackage/allow-external-paths.patch b/pkgs/development/libraries/kde-frameworks-5.19/kpackage/allow-external-paths.patch new file mode 100644 index 000000000000..e9d744448148 --- /dev/null +++ b/pkgs/development/libraries/kde-frameworks-5.19/kpackage/allow-external-paths.patch @@ -0,0 +1,13 @@ +Index: kpackage-5.18.0/src/kpackage/package.cpp +=================================================================== +--- kpackage-5.18.0.orig/src/kpackage/package.cpp ++++ kpackage-5.18.0/src/kpackage/package.cpp +@@ -808,7 +808,7 @@ PackagePrivate::PackagePrivate() + : QSharedData(), + fallbackPackage(0), + metadata(0), +- externalPaths(false), ++ externalPaths(true), + valid(false), + checkedValid(false) + { diff --git a/pkgs/development/libraries/kde-frameworks-5.19/kpackage/default.nix b/pkgs/development/libraries/kde-frameworks-5.19/kpackage/default.nix new file mode 100644 index 000000000000..aea1b0d31a0d --- /dev/null +++ b/pkgs/development/libraries/kde-frameworks-5.19/kpackage/default.nix @@ -0,0 +1,23 @@ +{ kdeFramework, lib, copyPathsToStore +, extra-cmake-modules +, karchive +, kconfig +, kcoreaddons +, kdoctools +, ki18n +, makeQtWrapper +}: + +kdeFramework { + name = "kpackage"; + nativeBuildInputs = [ extra-cmake-modules kdoctools makeQtWrapper ]; + buildInputs = [ karchive kconfig ]; + propagatedBuildInputs = [ kcoreaddons ki18n ]; + patches = copyPathsToStore (lib.readPathsFromFile ./. ./series); + postInstall = '' + wrapQtProgram "$out/bin/kpackagetool5" + ''; + meta = { + maintainers = [ lib.maintainers.ttuegel ]; + }; +} diff --git a/pkgs/development/libraries/kde-frameworks-5.19/kpackage/qdiriterator-follow-symlinks.patch b/pkgs/development/libraries/kde-frameworks-5.19/kpackage/qdiriterator-follow-symlinks.patch new file mode 100644 index 000000000000..ddbf17d00064 --- /dev/null +++ b/pkgs/development/libraries/kde-frameworks-5.19/kpackage/qdiriterator-follow-symlinks.patch @@ -0,0 +1,26 @@ +Index: kpackage-5.18.0/src/kpackage/packageloader.cpp +=================================================================== +--- kpackage-5.18.0.orig/src/kpackage/packageloader.cpp ++++ kpackage-5.18.0/src/kpackage/packageloader.cpp +@@ -241,7 +241,7 @@ QList<KPluginMetaData> PackageLoader::li + } else { + //qDebug() << "Not cached"; + // If there's no cache file, fall back to listing the directory +- const QDirIterator::IteratorFlags flags = QDirIterator::Subdirectories; ++ const QDirIterator::IteratorFlags flags = QDirIterator::Subdirectories | QDirIterator::FollowSymlinks; + const QStringList nameFilters = QStringList(QStringLiteral("metadata.desktop")) << QStringLiteral("metadata.json"); + + QDirIterator it(plugindir, nameFilters, QDir::Files, flags); +Index: kpackage-5.18.0/src/kpackage/private/packagejobthread.cpp +=================================================================== +--- kpackage-5.18.0.orig/src/kpackage/private/packagejobthread.cpp ++++ kpackage-5.18.0/src/kpackage/private/packagejobthread.cpp +@@ -146,7 +146,7 @@ bool indexDirectory(const QString& dir, + + QJsonArray plugins; + +- QDirIterator it(dir, *metaDataFiles, QDir::Files, QDirIterator::Subdirectories); ++ QDirIterator it(dir, *metaDataFiles, QDir::Files, QDirIterator::Subdirectories | QDirIterator::FollowSymlinks); + while (it.hasNext()) { + it.next(); + const QString path = it.fileInfo().absoluteFilePath(); diff --git a/pkgs/development/libraries/kde-frameworks-5.19/kpackage/series b/pkgs/development/libraries/kde-frameworks-5.19/kpackage/series new file mode 100644 index 000000000000..9b7f076efc70 --- /dev/null +++ b/pkgs/development/libraries/kde-frameworks-5.19/kpackage/series @@ -0,0 +1,2 @@ +allow-external-paths.patch +qdiriterator-follow-symlinks.patch diff --git a/pkgs/development/libraries/kde-frameworks-5.19/kparts.nix b/pkgs/development/libraries/kde-frameworks-5.19/kparts.nix new file mode 100644 index 000000000000..1c3e0b2cbc51 --- /dev/null +++ b/pkgs/development/libraries/kde-frameworks-5.19/kparts.nix @@ -0,0 +1,17 @@ +{ kdeFramework, lib, extra-cmake-modules, kconfig, kcoreaddons +, ki18n, kiconthemes, kio, kjobwidgets, knotifications, kservice +, ktextwidgets, kwidgetsaddons, kxmlgui +}: + +kdeFramework { + name = "kparts"; + nativeBuildInputs = [ extra-cmake-modules ]; + buildInputs = [ + kconfig kcoreaddons kiconthemes kjobwidgets knotifications + kservice kwidgetsaddons + ]; + propagatedBuildInputs = [ ki18n kio ktextwidgets kxmlgui ]; + meta = { + maintainers = [ lib.maintainers.ttuegel ]; + }; +} diff --git a/pkgs/development/libraries/kde-frameworks-5.19/kpeople.nix b/pkgs/development/libraries/kde-frameworks-5.19/kpeople.nix new file mode 100644 index 000000000000..4c3877e7efd2 --- /dev/null +++ b/pkgs/development/libraries/kde-frameworks-5.19/kpeople.nix @@ -0,0 +1,15 @@ +{ kdeFramework, lib, extra-cmake-modules, kcoreaddons, ki18n +, kitemviews, kservice, kwidgetsaddons, qtdeclarative +}: + +kdeFramework { + name = "kpeople"; + nativeBuildInputs = [ extra-cmake-modules ]; + buildInputs = [ + kcoreaddons kitemviews kservice kwidgetsaddons + ]; + propagatedBuildInputs = [ ki18n qtdeclarative ]; + meta = { + maintainers = [ lib.maintainers.ttuegel ]; + }; +} diff --git a/pkgs/development/libraries/kde-frameworks-5.19/kplotting.nix b/pkgs/development/libraries/kde-frameworks-5.19/kplotting.nix new file mode 100644 index 000000000000..c16f51b5ac3c --- /dev/null +++ b/pkgs/development/libraries/kde-frameworks-5.19/kplotting.nix @@ -0,0 +1,11 @@ +{ kdeFramework, lib +, extra-cmake-modules +}: + +kdeFramework { + name = "kplotting"; + nativeBuildInputs = [ extra-cmake-modules ]; + meta = { + maintainers = [ lib.maintainers.ttuegel ]; + }; +} diff --git a/pkgs/development/libraries/kde-frameworks-5.19/kpty.nix b/pkgs/development/libraries/kde-frameworks-5.19/kpty.nix new file mode 100644 index 000000000000..2e34e6f674ce --- /dev/null +++ b/pkgs/development/libraries/kde-frameworks-5.19/kpty.nix @@ -0,0 +1,10 @@ +{ kdeFramework, lib, extra-cmake-modules, kcoreaddons, ki18n }: + +kdeFramework { + name = "kpty"; + nativeBuildInputs = [ extra-cmake-modules ]; + propagatedBuildInputs = [ kcoreaddons ki18n ]; + meta = { + maintainers = [ lib.maintainers.ttuegel ]; + }; +} diff --git a/pkgs/development/libraries/kde-frameworks-5.19/kross.nix b/pkgs/development/libraries/kde-frameworks-5.19/kross.nix new file mode 100644 index 000000000000..7c6f079feaa7 --- /dev/null +++ b/pkgs/development/libraries/kde-frameworks-5.19/kross.nix @@ -0,0 +1,14 @@ +{ kdeFramework, lib, extra-cmake-modules, kcompletion, kcoreaddons +, kdoctools, ki18n, kiconthemes, kio, kparts, kwidgetsaddons +, kxmlgui, qtscript +}: + +kdeFramework { + name = "kross"; + nativeBuildInputs = [ extra-cmake-modules kdoctools ]; + buildInputs = [ kcompletion kcoreaddons kxmlgui ]; + propagatedBuildInputs = [ ki18n kiconthemes kio kparts kwidgetsaddons qtscript ]; + meta = { + maintainers = [ lib.maintainers.ttuegel ]; + }; +} diff --git a/pkgs/development/libraries/kde-frameworks-5.19/krunner.nix b/pkgs/development/libraries/kde-frameworks-5.19/krunner.nix new file mode 100644 index 000000000000..12d2b54d0eb3 --- /dev/null +++ b/pkgs/development/libraries/kde-frameworks-5.19/krunner.nix @@ -0,0 +1,16 @@ +{ kdeFramework, lib, extra-cmake-modules, kconfig, kcoreaddons +, ki18n, kio, kservice, plasma-framework, qtquick1, solid +, threadweaver +}: + +kdeFramework { + name = "krunner"; + nativeBuildInputs = [ extra-cmake-modules ]; + buildInputs = [ + kconfig kcoreaddons kservice qtquick1 solid threadweaver + ]; + propagatedBuildInputs = [ ki18n kio plasma-framework ]; + meta = { + maintainers = [ lib.maintainers.ttuegel ]; + }; +} diff --git a/pkgs/development/libraries/kde-frameworks-5.19/kservice/0001-qdiriterator-follow-symlinks.patch b/pkgs/development/libraries/kde-frameworks-5.19/kservice/0001-qdiriterator-follow-symlinks.patch new file mode 100644 index 000000000000..3d8397d8ee2d --- /dev/null +++ b/pkgs/development/libraries/kde-frameworks-5.19/kservice/0001-qdiriterator-follow-symlinks.patch @@ -0,0 +1,25 @@ +From ae8919eb81abad369e4a26ffcd845b140983398d Mon Sep 17 00:00:00 2001 +From: Thomas Tuegel <ttuegel@gmail.com> +Date: Wed, 14 Oct 2015 06:28:57 -0500 +Subject: [PATCH 1/2] qdiriterator follow symlinks + +--- + src/sycoca/kbuildsycoca.cpp | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/sycoca/kbuildsycoca.cpp b/src/sycoca/kbuildsycoca.cpp +index 1deae14..250baa8 100644 +--- a/src/sycoca/kbuildsycoca.cpp ++++ b/src/sycoca/kbuildsycoca.cpp +@@ -208,7 +208,7 @@ bool KBuildSycoca::build() + QStringList relFiles; + const QStringList dirs = QStandardPaths::locateAll(QStandardPaths::GenericDataLocation, m_resourceSubdir, QStandardPaths::LocateDirectory); + Q_FOREACH (const QString &dir, dirs) { +- QDirIterator it(dir, QDirIterator::Subdirectories); ++ QDirIterator it(dir, QDirIterator::Subdirectories | QDirIterator::FollowSymlinks); + while (it.hasNext()) { + const QString filePath = it.next(); + Q_ASSERT(filePath.startsWith(dir)); // due to the line below... +-- +2.5.2 + diff --git a/pkgs/development/libraries/kde-frameworks-5.19/kservice/0002-no-canonicalize-path.patch b/pkgs/development/libraries/kde-frameworks-5.19/kservice/0002-no-canonicalize-path.patch new file mode 100644 index 000000000000..685c68526119 --- /dev/null +++ b/pkgs/development/libraries/kde-frameworks-5.19/kservice/0002-no-canonicalize-path.patch @@ -0,0 +1,25 @@ +From 46d124da602d84b7611a7ff0ac0862168d451cdb Mon Sep 17 00:00:00 2001 +From: Thomas Tuegel <ttuegel@gmail.com> +Date: Wed, 14 Oct 2015 06:31:29 -0500 +Subject: [PATCH 2/2] no canonicalize path + +--- + src/sycoca/vfolder_menu.cpp | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/sycoca/vfolder_menu.cpp b/src/sycoca/vfolder_menu.cpp +index d3e31c3..d15d743 100644 +--- a/src/sycoca/vfolder_menu.cpp ++++ b/src/sycoca/vfolder_menu.cpp +@@ -415,7 +415,7 @@ VFolderMenu::absoluteDir(const QString &_dir, const QString &baseDir, bool keepR + } + + if (!relative) { +- QString resolved = QDir(dir).canonicalPath(); ++ QString resolved = QDir::cleanPath(dir); + if (!resolved.isEmpty()) { + dir = resolved; + } +-- +2.5.2 + diff --git a/pkgs/development/libraries/kde-frameworks-5.19/kservice/default.nix b/pkgs/development/libraries/kde-frameworks-5.19/kservice/default.nix new file mode 100644 index 000000000000..3a27d85b9166 --- /dev/null +++ b/pkgs/development/libraries/kde-frameworks-5.19/kservice/default.nix @@ -0,0 +1,18 @@ +{ kdeFramework, lib, extra-cmake-modules, kconfig, kcoreaddons +, kcrash, kdbusaddons, kdoctools, ki18n, kwindowsystem +}: + +kdeFramework { + name = "kservice"; + propagatedNativeBuildInputs = [ extra-cmake-modules ]; + nativeBuildInputs = [ kdoctools ]; + buildInputs = [ kcrash kdbusaddons ]; + propagatedBuildInputs = [ kconfig kcoreaddons ki18n kwindowsystem ]; + patches = [ + ./0001-qdiriterator-follow-symlinks.patch + ./0002-no-canonicalize-path.patch + ]; + meta = { + maintainers = [ lib.maintainers.ttuegel ]; + }; +} diff --git a/pkgs/development/libraries/kde-frameworks-5.19/ktexteditor/default.nix b/pkgs/development/libraries/kde-frameworks-5.19/ktexteditor/default.nix new file mode 100644 index 000000000000..b8df6a5f4c0d --- /dev/null +++ b/pkgs/development/libraries/kde-frameworks-5.19/ktexteditor/default.nix @@ -0,0 +1,22 @@ +{ kdeFramework, lib, copyPathsToStore +, extra-cmake-modules, makeQtWrapper, perl +, karchive, kconfig, kguiaddons, kiconthemes, kparts +, libgit2 +, qtscript, qtxmlpatterns +, ki18n, kio, sonnet +}: + +kdeFramework { + name = "ktexteditor"; + nativeBuildInputs = [ extra-cmake-modules makeQtWrapper perl ]; + buildInputs = [ + karchive kconfig kguiaddons kiconthemes kparts + libgit2 + qtscript qtxmlpatterns + ]; + propagatedBuildInputs = [ ki18n kio sonnet ]; + patches = copyPathsToStore (lib.readPathsFromFile ./. ./series); + meta = { + maintainers = [ lib.maintainers.ttuegel ]; + }; +} diff --git a/pkgs/development/libraries/kde-frameworks-5.19/ktexteditor/no-qcoreapplication.patch b/pkgs/development/libraries/kde-frameworks-5.19/ktexteditor/no-qcoreapplication.patch new file mode 100644 index 000000000000..19ab1e1e5513 --- /dev/null +++ b/pkgs/development/libraries/kde-frameworks-5.19/ktexteditor/no-qcoreapplication.patch @@ -0,0 +1,36 @@ +Index: ktexteditor-5.18.0/src/syntax/data/katehighlightingindexer.cpp +=================================================================== +--- ktexteditor-5.18.0.orig/src/syntax/data/katehighlightingindexer.cpp ++++ ktexteditor-5.18.0/src/syntax/data/katehighlightingindexer.cpp +@@ -55,19 +55,16 @@ QStringList readListing(const QString &f + + int main(int argc, char *argv[]) + { +- // get app instance +- QCoreApplication app(argc, argv); +- + // ensure enough arguments are passed +- if (app.arguments().size() < 3) ++ if (argc < 3) + return 1; + + // open schema + QXmlSchema schema; +- if (!schema.load(QUrl::fromLocalFile(app.arguments().at(2)))) ++ if (!schema.load(QUrl::fromLocalFile(QString::fromLocal8Bit(argv[2])))) + return 2; + +- const QString hlFilenamesListing = app.arguments().value(3); ++ const QString hlFilenamesListing = QString::fromLocal8Bit(argv[3]); + if (hlFilenamesListing.isEmpty()) { + return 1; + } +@@ -152,7 +149,7 @@ int main(int argc, char *argv[]) + return anyError; + + // create outfile, after all has worked! +- QFile outFile(app.arguments().at(1)); ++ QFile outFile(QString::fromLocal8Bit(argv[1])); + if (!outFile.open(QIODevice::WriteOnly | QIODevice::Truncate)) + return 7; + diff --git a/pkgs/development/libraries/kde-frameworks-5.19/ktexteditor/series b/pkgs/development/libraries/kde-frameworks-5.19/ktexteditor/series new file mode 100644 index 000000000000..46cd23829a2f --- /dev/null +++ b/pkgs/development/libraries/kde-frameworks-5.19/ktexteditor/series @@ -0,0 +1 @@ +no-qcoreapplication.patch diff --git a/pkgs/development/libraries/kde-frameworks-5.19/ktextwidgets.nix b/pkgs/development/libraries/kde-frameworks-5.19/ktextwidgets.nix new file mode 100644 index 000000000000..e332d4ff9a83 --- /dev/null +++ b/pkgs/development/libraries/kde-frameworks-5.19/ktextwidgets.nix @@ -0,0 +1,16 @@ +{ kdeFramework, lib, extra-cmake-modules, kcompletion, kconfig +, kconfigwidgets, ki18n, kiconthemes, kservice, kwindowsystem +, sonnet +}: + +kdeFramework { + name = "ktextwidgets"; + nativeBuildInputs = [ extra-cmake-modules ]; + buildInputs = [ + kcompletion kconfig kconfigwidgets kiconthemes kservice + ]; + propagatedBuildInputs = [ ki18n kwindowsystem sonnet ]; + meta = { + maintainers = [ lib.maintainers.ttuegel ]; + }; +} diff --git a/pkgs/development/libraries/kde-frameworks-5.19/kunitconversion.nix b/pkgs/development/libraries/kde-frameworks-5.19/kunitconversion.nix new file mode 100644 index 000000000000..3cf0f847d83d --- /dev/null +++ b/pkgs/development/libraries/kde-frameworks-5.19/kunitconversion.nix @@ -0,0 +1,10 @@ +{ kdeFramework, lib, extra-cmake-modules, ki18n }: + +kdeFramework { + name = "kunitconversion"; + nativeBuildInputs = [ extra-cmake-modules ]; + propagatedBuildInputs = [ ki18n ]; + meta = { + maintainers = [ lib.maintainers.ttuegel ]; + }; +} diff --git a/pkgs/development/libraries/kde-frameworks-5.19/kwallet.nix b/pkgs/development/libraries/kde-frameworks-5.19/kwallet.nix new file mode 100644 index 000000000000..5ade5f63a8d0 --- /dev/null +++ b/pkgs/development/libraries/kde-frameworks-5.19/kwallet.nix @@ -0,0 +1,21 @@ +{ kdeFramework, lib, extra-cmake-modules, kconfig, kconfigwidgets +, kcoreaddons , kdbusaddons, kdoctools, ki18n, kiconthemes +, knotifications , kservice, kwidgetsaddons, kwindowsystem, libgcrypt +, makeQtWrapper }: + +kdeFramework { + name = "kwallet"; + nativeBuildInputs = [ extra-cmake-modules kdoctools makeQtWrapper ]; + buildInputs = [ + kconfig kconfigwidgets kcoreaddons kdbusaddons kiconthemes + knotifications kservice kwidgetsaddons libgcrypt + ]; + propagatedBuildInputs = [ ki18n kwindowsystem ]; + postInstall = '' + wrapQtProgram "$out/bin/kwalletd5" + wrapQtProgram "$out/bin/kwallet-query" + ''; + meta = { + maintainers = [ lib.maintainers.ttuegel ]; + }; +} diff --git a/pkgs/development/libraries/kde-frameworks-5.19/kwidgetsaddons.nix b/pkgs/development/libraries/kde-frameworks-5.19/kwidgetsaddons.nix new file mode 100644 index 000000000000..d95f44d3fecf --- /dev/null +++ b/pkgs/development/libraries/kde-frameworks-5.19/kwidgetsaddons.nix @@ -0,0 +1,11 @@ +{ kdeFramework, lib +, extra-cmake-modules +}: + +kdeFramework { + name = "kwidgetsaddons"; + nativeBuildInputs = [ extra-cmake-modules ]; + meta = { + maintainers = [ lib.maintainers.ttuegel ]; + }; +} diff --git a/pkgs/development/libraries/kde-frameworks-5.19/kwindowsystem.nix b/pkgs/development/libraries/kde-frameworks-5.19/kwindowsystem.nix new file mode 100644 index 000000000000..09ab1f2200de --- /dev/null +++ b/pkgs/development/libraries/kde-frameworks-5.19/kwindowsystem.nix @@ -0,0 +1,13 @@ +{ kdeFramework, lib +, extra-cmake-modules +, qtx11extras +}: + +kdeFramework { + name = "kwindowsystem"; + nativeBuildInputs = [ extra-cmake-modules ]; + buildInputs = [ qtx11extras ]; + meta = { + maintainers = [ lib.maintainers.ttuegel ]; + }; +} diff --git a/pkgs/development/libraries/kde-frameworks-5.19/kxmlgui.nix b/pkgs/development/libraries/kde-frameworks-5.19/kxmlgui.nix new file mode 100644 index 000000000000..f081d5f9170e --- /dev/null +++ b/pkgs/development/libraries/kde-frameworks-5.19/kxmlgui.nix @@ -0,0 +1,18 @@ +{ kdeFramework, lib, extra-cmake-modules, attica, kconfig +, kconfigwidgets, kglobalaccel, ki18n, kiconthemes, kitemviews +, ktextwidgets, kwindowsystem, sonnet +}: + +kdeFramework { + name = "kxmlgui"; + nativeBuildInputs = [ extra-cmake-modules ]; + buildInputs = [ + attica kconfig kiconthemes kitemviews ktextwidgets + ]; + propagatedBuildInputs = [ + kconfigwidgets kglobalaccel ki18n kwindowsystem sonnet + ]; + meta = { + maintainers = [ lib.maintainers.ttuegel ]; + }; +} diff --git a/pkgs/development/libraries/kde-frameworks-5.19/kxmlrpcclient.nix b/pkgs/development/libraries/kde-frameworks-5.19/kxmlrpcclient.nix new file mode 100644 index 000000000000..20a300b68bc8 --- /dev/null +++ b/pkgs/development/libraries/kde-frameworks-5.19/kxmlrpcclient.nix @@ -0,0 +1,10 @@ +{ kdeFramework, lib, extra-cmake-modules, ki18n, kio }: + +kdeFramework { + name = "kxmlrpcclient"; + nativeBuildInputs = [ extra-cmake-modules ]; + propagatedBuildInputs = [ ki18n kio ]; + meta = { + maintainers = [ lib.maintainers.ttuegel ]; + }; +} diff --git a/pkgs/development/libraries/kde-frameworks-5.19/modemmanager-qt.nix b/pkgs/development/libraries/kde-frameworks-5.19/modemmanager-qt.nix new file mode 100644 index 000000000000..7d7f769d6a9b --- /dev/null +++ b/pkgs/development/libraries/kde-frameworks-5.19/modemmanager-qt.nix @@ -0,0 +1,13 @@ +{ kdeFramework, lib +, extra-cmake-modules +, modemmanager +}: + +kdeFramework { + name = "modemmanager-qt"; + nativeBuildInputs = [ extra-cmake-modules ]; + propagatedBuildInputs = [ modemmanager ]; + meta = { + maintainers = [ lib.maintainers.ttuegel ]; + }; +} diff --git a/pkgs/development/libraries/kde-frameworks-5.19/networkmanager-qt.nix b/pkgs/development/libraries/kde-frameworks-5.19/networkmanager-qt.nix new file mode 100644 index 000000000000..333378bd1431 --- /dev/null +++ b/pkgs/development/libraries/kde-frameworks-5.19/networkmanager-qt.nix @@ -0,0 +1,13 @@ +{ kdeFramework, lib +, extra-cmake-modules +, networkmanager +}: + +kdeFramework { + name = "networkmanager-qt"; + nativeBuildInputs = [ extra-cmake-modules ]; + propagatedBuildInputs = [ networkmanager ]; + meta = { + maintainers = [ lib.maintainers.ttuegel ]; + }; +} diff --git a/pkgs/development/libraries/kde-frameworks-5.19/oxygen-icons5.nix b/pkgs/development/libraries/kde-frameworks-5.19/oxygen-icons5.nix new file mode 100644 index 000000000000..ee350f8e1536 --- /dev/null +++ b/pkgs/development/libraries/kde-frameworks-5.19/oxygen-icons5.nix @@ -0,0 +1,13 @@ +{ kdeFramework +, lib +, extra-cmake-modules +}: + +kdeFramework { + name = "oxygen-icons5"; + nativeBuildInputs = [ extra-cmake-modules ]; + meta = { + license = lib.licenses.lgpl3Plus; + maintainers = [ lib.maintainers.ttuegel ]; + }; +} diff --git a/pkgs/development/libraries/kde-frameworks-5.19/plasma-framework/default.nix b/pkgs/development/libraries/kde-frameworks-5.19/plasma-framework/default.nix new file mode 100644 index 000000000000..d8846f777231 --- /dev/null +++ b/pkgs/development/libraries/kde-frameworks-5.19/plasma-framework/default.nix @@ -0,0 +1,25 @@ +{ kdeFramework, lib, extra-cmake-modules, kactivities, karchive +, kconfig, kconfigwidgets, kcoreaddons, kdbusaddons, kdeclarative +, kdoctools, kglobalaccel, kguiaddons, ki18n, kiconthemes, kio +, knotifications, kpackage, kservice, kwindowsystem, kxmlgui +, makeQtWrapper, qtscript, qtx11extras +}: + +kdeFramework { + name = "plasma-framework"; + nativeBuildInputs = [ extra-cmake-modules kdoctools makeQtWrapper ]; + buildInputs = [ + karchive kconfig kconfigwidgets kcoreaddons kdbusaddons kguiaddons + kiconthemes knotifications kxmlgui qtscript + ]; + propagatedBuildInputs = [ + kactivities kdeclarative kglobalaccel ki18n kio kpackage kservice kwindowsystem + qtx11extras + ]; + postInstall = '' + wrapQtProgram "$out/bin/plasmapkg2" + ''; + meta = { + maintainers = [ lib.maintainers.ttuegel ]; + }; +} diff --git a/pkgs/development/libraries/kde-frameworks-5.19/solid.nix b/pkgs/development/libraries/kde-frameworks-5.19/solid.nix new file mode 100644 index 000000000000..afd125e3c597 --- /dev/null +++ b/pkgs/development/libraries/kde-frameworks-5.19/solid.nix @@ -0,0 +1,17 @@ +{ kdeFramework, lib +, extra-cmake-modules +, makeQtWrapper +, qtdeclarative +}: + +kdeFramework { + name = "solid"; + nativeBuildInputs = [ extra-cmake-modules makeQtWrapper ]; + buildInputs = [ qtdeclarative ]; + postInstall = '' + wrapQtProgram "$out/bin/solid-hardware5" + ''; + meta = { + maintainers = [ lib.maintainers.ttuegel ]; + }; +} diff --git a/pkgs/development/libraries/kde-frameworks-5.19/sonnet.nix b/pkgs/development/libraries/kde-frameworks-5.19/sonnet.nix new file mode 100644 index 000000000000..943fe04a1c92 --- /dev/null +++ b/pkgs/development/libraries/kde-frameworks-5.19/sonnet.nix @@ -0,0 +1,13 @@ +{ kdeFramework, lib +, extra-cmake-modules +, hunspell +}: + +kdeFramework { + name = "sonnet"; + nativeBuildInputs = [ extra-cmake-modules ]; + buildInputs = [ hunspell ]; + meta = { + maintainers = [ lib.maintainers.ttuegel ]; + }; +} diff --git a/pkgs/development/libraries/kde-frameworks-5.19/srcs.nix b/pkgs/development/libraries/kde-frameworks-5.19/srcs.nix new file mode 100644 index 000000000000..b86c0b71224d --- /dev/null +++ b/pkgs/development/libraries/kde-frameworks-5.19/srcs.nix @@ -0,0 +1,565 @@ +# DO NOT EDIT! This file is generated automatically by fetchsrcs.sh +{ fetchurl, mirror }: + +{ + attica = { + version = "5.19.0"; + src = fetchurl { + url = "${mirror}/stable/frameworks/5.19/attica-5.19.0.tar.xz"; + sha256 = "0cbvjnv2fcqsxspiy5pzmnnzrpfamlsc9j927kd6gpzai1ckf1lv"; + name = "attica-5.19.0.tar.xz"; + }; + }; + baloo = { + version = "5.19.0"; + src = fetchurl { + url = "${mirror}/stable/frameworks/5.19/baloo-5.19.0.tar.xz"; + sha256 = "02yy0w13h5wxm74a87zi439f6yd9miid6rb54nia0pgvcka98svg"; + name = "baloo-5.19.0.tar.xz"; + }; + }; + bluez-qt = { + version = "5.19.0"; + src = fetchurl { + url = "${mirror}/stable/frameworks/5.19/bluez-qt-5.19.0.tar.xz"; + sha256 = "0609i7rzhnnnp4fqnwscwp6y646ji8kl2hw5sy7azc87yllisnyv"; + name = "bluez-qt-5.19.0.tar.xz"; + }; + }; + breeze-icons = { + version = "5.19.0"; + src = fetchurl { + url = "${mirror}/stable/frameworks/5.19/breeze-icons-5.19.0.tar.xz"; + sha256 = "0bwix0jl1dscqfb7ygn9drpd9ivfx4g15vz6h01mswvxa9lz1vj0"; + name = "breeze-icons-5.19.0.tar.xz"; + }; + }; + extra-cmake-modules = { + version = "5.19.0"; + src = fetchurl { + url = "${mirror}/stable/frameworks/5.19/extra-cmake-modules-5.19.0.tar.xz"; + sha256 = "1dl3hhbara7iswb5wsc5dp17ar3ljw5f0nrncl8vry9smaz2zl63"; + name = "extra-cmake-modules-5.19.0.tar.xz"; + }; + }; + frameworkintegration = { + version = "5.19.0"; + src = fetchurl { + url = "${mirror}/stable/frameworks/5.19/frameworkintegration-5.19.0.tar.xz"; + sha256 = "00la7p7wcyqpxyi73h4fjrmm9d2gqzdaljn4468xya4bfns5ijy3"; + name = "frameworkintegration-5.19.0.tar.xz"; + }; + }; + kactivities = { + version = "5.19.0"; + src = fetchurl { + url = "${mirror}/stable/frameworks/5.19/kactivities-5.19.0.tar.xz"; + sha256 = "0yml1sbn3z4jd4vsfs25kqrl03pmlcgamzbgpw3248sabhyg7ks3"; + name = "kactivities-5.19.0.tar.xz"; + }; + }; + kapidox = { + version = "5.19.0"; + src = fetchurl { + url = "${mirror}/stable/frameworks/5.19/kapidox-5.19.0.tar.xz"; + sha256 = "0a9731xrkd6mnqh72592rx6gfnxxdfd7xl8pdpgdn7qs3394k1yz"; + name = "kapidox-5.19.0.tar.xz"; + }; + }; + karchive = { + version = "5.19.0"; + src = fetchurl { + url = "${mirror}/stable/frameworks/5.19/karchive-5.19.0.tar.xz"; + sha256 = "043spmi7s2d1bj8d3wbgzbhisip6h92kqjhlvg8gyv0a7vy54ymv"; + name = "karchive-5.19.0.tar.xz"; + }; + }; + kauth = { + version = "5.19.0"; + src = fetchurl { + url = "${mirror}/stable/frameworks/5.19/kauth-5.19.0.tar.xz"; + sha256 = "0fm9ih2hkh2rpmlf98yw8z1r5bn2qmpva2k7mrv6ijd5h767fxss"; + name = "kauth-5.19.0.tar.xz"; + }; + }; + kbookmarks = { + version = "5.19.0"; + src = fetchurl { + url = "${mirror}/stable/frameworks/5.19/kbookmarks-5.19.0.tar.xz"; + sha256 = "0q418jpdc348nqgdavsmxxka4g8sldpdi9n89i1pllfmq10kw9sd"; + name = "kbookmarks-5.19.0.tar.xz"; + }; + }; + kcmutils = { + version = "5.19.0"; + src = fetchurl { + url = "${mirror}/stable/frameworks/5.19/kcmutils-5.19.0.tar.xz"; + sha256 = "0qhdjb3zvqq9ycfgb52lz4flgipyplj5ksz8h8y71bbs4w6lazd8"; + name = "kcmutils-5.19.0.tar.xz"; + }; + }; + kcodecs = { + version = "5.19.0"; + src = fetchurl { + url = "${mirror}/stable/frameworks/5.19/kcodecs-5.19.0.tar.xz"; + sha256 = "1rzp314fv9n5168j7nhv1c8fjaszpmgdx6javrx4w0hyrjdfkg66"; + name = "kcodecs-5.19.0.tar.xz"; + }; + }; + kcompletion = { + version = "5.19.0"; + src = fetchurl { + url = "${mirror}/stable/frameworks/5.19/kcompletion-5.19.0.tar.xz"; + sha256 = "05n0y5kf3bcc4wgn6k0js5cravv1k93xxzrgapm21323qgvfagwd"; + name = "kcompletion-5.19.0.tar.xz"; + }; + }; + kconfig = { + version = "5.19.0"; + src = fetchurl { + url = "${mirror}/stable/frameworks/5.19/kconfig-5.19.0.tar.xz"; + sha256 = "0nk5hfl8yh0kgaa7xi0cc05dl6nf7prvbvxv0i99207xh9dafdmm"; + name = "kconfig-5.19.0.tar.xz"; + }; + }; + kconfigwidgets = { + version = "5.19.0"; + src = fetchurl { + url = "${mirror}/stable/frameworks/5.19/kconfigwidgets-5.19.0.tar.xz"; + sha256 = "1nld27chcjwjgwv76s2j77ifmca235yp10bm08rjmvnfn6778ypv"; + name = "kconfigwidgets-5.19.0.tar.xz"; + }; + }; + kcoreaddons = { + version = "5.19.0"; + src = fetchurl { + url = "${mirror}/stable/frameworks/5.19/kcoreaddons-5.19.0.tar.xz"; + sha256 = "07sm0givfdx28p302fkynzsd3xkpn1hbs43d4rscyx18yxfsldcw"; + name = "kcoreaddons-5.19.0.tar.xz"; + }; + }; + kcrash = { + version = "5.19.0"; + src = fetchurl { + url = "${mirror}/stable/frameworks/5.19/kcrash-5.19.0.tar.xz"; + sha256 = "1dy03gp1sj96wn0zfa0dpbvz8pz0ia1j7p1wcif3iqk55pjxdgyl"; + name = "kcrash-5.19.0.tar.xz"; + }; + }; + kdbusaddons = { + version = "5.19.0"; + src = fetchurl { + url = "${mirror}/stable/frameworks/5.19/kdbusaddons-5.19.0.tar.xz"; + sha256 = "1bb5aik0kl3kab5399drfjxrm8iysgkf813xgr0y4k64c9kwfp28"; + name = "kdbusaddons-5.19.0.tar.xz"; + }; + }; + kdeclarative = { + version = "5.19.0"; + src = fetchurl { + url = "${mirror}/stable/frameworks/5.19/kdeclarative-5.19.0.tar.xz"; + sha256 = "03g02zy7wjzmpvqzxx32z8ap7jyj9sf432g1d3csb0dcbx2ny52g"; + name = "kdeclarative-5.19.0.tar.xz"; + }; + }; + kded = { + version = "5.19.0"; + src = fetchurl { + url = "${mirror}/stable/frameworks/5.19/kded-5.19.0.tar.xz"; + sha256 = "0nyvg0h2aqy7qr57bad6wyc2rmcv9nhdq0py4fxc3irb6516p9hz"; + name = "kded-5.19.0.tar.xz"; + }; + }; + kdelibs4support = { + version = "5.19.0"; + src = fetchurl { + url = "${mirror}/stable/frameworks/5.19/portingAids/kdelibs4support-5.19.0.tar.xz"; + sha256 = "0iqnb2j6gfy8006arwv65vljfhxdnk6aia0zppngb481jnd9n2pn"; + name = "kdelibs4support-5.19.0.tar.xz"; + }; + }; + kdesignerplugin = { + version = "5.19.0"; + src = fetchurl { + url = "${mirror}/stable/frameworks/5.19/kdesignerplugin-5.19.0.tar.xz"; + sha256 = "11inmvyair796rx4842naf1dnxqvc6bqqzrv700ycvisad646ws5"; + name = "kdesignerplugin-5.19.0.tar.xz"; + }; + }; + kdesu = { + version = "5.19.0"; + src = fetchurl { + url = "${mirror}/stable/frameworks/5.19/kdesu-5.19.0.tar.xz"; + sha256 = "19w8m7ji61bpd368lzkwlizcwa1l968l568lksgm2mm9pnyjjhgz"; + name = "kdesu-5.19.0.tar.xz"; + }; + }; + kdewebkit = { + version = "5.19.0"; + src = fetchurl { + url = "${mirror}/stable/frameworks/5.19/kdewebkit-5.19.0.tar.xz"; + sha256 = "04b5qanhxggffnvmi28lspyi8kj4kq7mxhxndar9fmkzzgvy70hj"; + name = "kdewebkit-5.19.0.tar.xz"; + }; + }; + kdnssd = { + version = "5.19.0"; + src = fetchurl { + url = "${mirror}/stable/frameworks/5.19/kdnssd-5.19.0.tar.xz"; + sha256 = "15a8w2i29mrbhadw6y123mr0cc45ijabnwdfp3lbkd40lk8nq314"; + name = "kdnssd-5.19.0.tar.xz"; + }; + }; + kdoctools = { + version = "5.19.0"; + src = fetchurl { + url = "${mirror}/stable/frameworks/5.19/kdoctools-5.19.0.tar.xz"; + sha256 = "06g77n9wxpiv4skc1kz794ppfb2mkmd3fgn6an5kr301xc76cnpn"; + name = "kdoctools-5.19.0.tar.xz"; + }; + }; + kemoticons = { + version = "5.19.0"; + src = fetchurl { + url = "${mirror}/stable/frameworks/5.19/kemoticons-5.19.0.tar.xz"; + sha256 = "0fiix2sf2wrvmrpx8whdr1bzm7gbv7pvg02y47w5bl6s9gh176g5"; + name = "kemoticons-5.19.0.tar.xz"; + }; + }; + kfilemetadata = { + version = "5.19.0"; + src = fetchurl { + url = "${mirror}/stable/frameworks/5.19/kfilemetadata-5.19.0.tar.xz"; + sha256 = "11j8if3xhp3xxwibwm6nxb4lh8wx40ni3zf5hki327pxv4vpq3qr"; + name = "kfilemetadata-5.19.0.tar.xz"; + }; + }; + kglobalaccel = { + version = "5.19.0"; + src = fetchurl { + url = "${mirror}/stable/frameworks/5.19/kglobalaccel-5.19.0.tar.xz"; + sha256 = "021j98f7217m83aqxpamg0lzlaiskdaqsd9iabc8wrp1g0nkm05d"; + name = "kglobalaccel-5.19.0.tar.xz"; + }; + }; + kguiaddons = { + version = "5.19.0"; + src = fetchurl { + url = "${mirror}/stable/frameworks/5.19/kguiaddons-5.19.0.tar.xz"; + sha256 = "019xaf7vpgifcw8wibli9d2b50brhgdaypsqknh6mqq8q9g06jhy"; + name = "kguiaddons-5.19.0.tar.xz"; + }; + }; + khtml = { + version = "5.19.0"; + src = fetchurl { + url = "${mirror}/stable/frameworks/5.19/portingAids/khtml-5.19.0.tar.xz"; + sha256 = "0hqa54a9nxy954vy8gf52y89xd3ibz9b4jgh6w347b1alp1zn145"; + name = "khtml-5.19.0.tar.xz"; + }; + }; + ki18n = { + version = "5.19.0"; + src = fetchurl { + url = "${mirror}/stable/frameworks/5.19/ki18n-5.19.0.tar.xz"; + sha256 = "0v3arc20y5d8afm9zfrz1skd2xg3ng62cq1xvxiq645w6mxf7y05"; + name = "ki18n-5.19.0.tar.xz"; + }; + }; + kiconthemes = { + version = "5.19.0"; + src = fetchurl { + url = "${mirror}/stable/frameworks/5.19/kiconthemes-5.19.0.tar.xz"; + sha256 = "0riicirgda3w2b30dzsa2lq9xrr4y04qwhxyzq1p8gn2x4pp3g3n"; + name = "kiconthemes-5.19.0.tar.xz"; + }; + }; + kidletime = { + version = "5.19.0"; + src = fetchurl { + url = "${mirror}/stable/frameworks/5.19/kidletime-5.19.0.tar.xz"; + sha256 = "0jlbzqv36ddhfhk8xkkgw0xhq8s371z9ama1cyv2xq8kk4vjywc6"; + name = "kidletime-5.19.0.tar.xz"; + }; + }; + kimageformats = { + version = "5.19.0"; + src = fetchurl { + url = "${mirror}/stable/frameworks/5.19/kimageformats-5.19.0.tar.xz"; + sha256 = "1ydizc6b0ncndazk62h8y249yfcx381pwzyivfpka1f69zfgyvv5"; + name = "kimageformats-5.19.0.tar.xz"; + }; + }; + kinit = { + version = "5.19.0"; + src = fetchurl { + url = "${mirror}/stable/frameworks/5.19/kinit-5.19.0.tar.xz"; + sha256 = "03l7pijqdnnsfg6yz9p73p7xa86sldayggl6rc5hpkzmgyczcfzm"; + name = "kinit-5.19.0.tar.xz"; + }; + }; + kio = { + version = "5.19.0"; + src = fetchurl { + url = "${mirror}/stable/frameworks/5.19/kio-5.19.0.tar.xz"; + sha256 = "0c7smp7cajivx53shy65mp9zcc51pha9iyvh37dggfflxy3xf9nv"; + name = "kio-5.19.0.tar.xz"; + }; + }; + kitemmodels = { + version = "5.19.0"; + src = fetchurl { + url = "${mirror}/stable/frameworks/5.19/kitemmodels-5.19.0.tar.xz"; + sha256 = "0skmim986qnncbzd84vm1wp1fr41jn04af2dgckirsk23d35bln7"; + name = "kitemmodels-5.19.0.tar.xz"; + }; + }; + kitemviews = { + version = "5.19.0"; + src = fetchurl { + url = "${mirror}/stable/frameworks/5.19/kitemviews-5.19.0.tar.xz"; + sha256 = "118zv46mvrfwbvl06bb1m8axv92wnp4pfs36hsxvnjl7gfjk5xjn"; + name = "kitemviews-5.19.0.tar.xz"; + }; + }; + kjobwidgets = { + version = "5.19.0"; + src = fetchurl { + url = "${mirror}/stable/frameworks/5.19/kjobwidgets-5.19.0.tar.xz"; + sha256 = "1qzf8nzy8rxkdai9aj2lyrww90245v0p2q115xiz73bsg9rahmji"; + name = "kjobwidgets-5.19.0.tar.xz"; + }; + }; + kjs = { + version = "5.19.0"; + src = fetchurl { + url = "${mirror}/stable/frameworks/5.19/portingAids/kjs-5.19.0.tar.xz"; + sha256 = "08m01762hb25vm020g3v37bh40cgvcfrj45ql135klx96x9imfaf"; + name = "kjs-5.19.0.tar.xz"; + }; + }; + kjsembed = { + version = "5.19.0"; + src = fetchurl { + url = "${mirror}/stable/frameworks/5.19/portingAids/kjsembed-5.19.0.tar.xz"; + sha256 = "1wmkgy8jgm21y2cvcbv1fdv29dxxla8n6ws78kzzbbw4cgqwwl48"; + name = "kjsembed-5.19.0.tar.xz"; + }; + }; + kmediaplayer = { + version = "5.19.0"; + src = fetchurl { + url = "${mirror}/stable/frameworks/5.19/portingAids/kmediaplayer-5.19.0.tar.xz"; + sha256 = "1vhqr2c7q8vwzdj29vpmfjfhyal8wp9ffirrnqc98vb6sffs85ay"; + name = "kmediaplayer-5.19.0.tar.xz"; + }; + }; + knewstuff = { + version = "5.19.0"; + src = fetchurl { + url = "${mirror}/stable/frameworks/5.19/knewstuff-5.19.0.tar.xz"; + sha256 = "12acd12vxk9z83zg3yz8lvmmb8737z9lzd4hs9a3jcs1z5k2nhb4"; + name = "knewstuff-5.19.0.tar.xz"; + }; + }; + knotifications = { + version = "5.19.0"; + src = fetchurl { + url = "${mirror}/stable/frameworks/5.19/knotifications-5.19.0.tar.xz"; + sha256 = "0grgm0ws16gp2j77nslqpl1jpxbi0m6g59zr7v1xnmzdk2j6n4av"; + name = "knotifications-5.19.0.tar.xz"; + }; + }; + knotifyconfig = { + version = "5.19.0"; + src = fetchurl { + url = "${mirror}/stable/frameworks/5.19/knotifyconfig-5.19.0.tar.xz"; + sha256 = "161brvryxzdkny7sf6icn1jpyi6rnw6jc808gdf5g41v50xpnxfj"; + name = "knotifyconfig-5.19.0.tar.xz"; + }; + }; + kpackage = { + version = "5.19.0"; + src = fetchurl { + url = "${mirror}/stable/frameworks/5.19/kpackage-5.19.0.tar.xz"; + sha256 = "1km4sjgxfljp2pnjnzj48q3c574zvj7341a57n4ifhjwj37yzxdv"; + name = "kpackage-5.19.0.tar.xz"; + }; + }; + kparts = { + version = "5.19.0"; + src = fetchurl { + url = "${mirror}/stable/frameworks/5.19/kparts-5.19.0.tar.xz"; + sha256 = "05g59x2mrqygawzcwgw3igl5n96l649h0kpzh37sfq4i8kg15g7l"; + name = "kparts-5.19.0.tar.xz"; + }; + }; + kpeople = { + version = "5.19.0"; + src = fetchurl { + url = "${mirror}/stable/frameworks/5.19/kpeople-5.19.0.tar.xz"; + sha256 = "1ksf6g71li1xk4q98cvwkam8m8g32x2815kj1gfwbg4g6iw74w98"; + name = "kpeople-5.19.0.tar.xz"; + }; + }; + kplotting = { + version = "5.19.0"; + src = fetchurl { + url = "${mirror}/stable/frameworks/5.19/kplotting-5.19.0.tar.xz"; + sha256 = "169x4m9ms8yhfha8zclnl8wrnfhfqshpwwg4b5bd046pcrkqmnqq"; + name = "kplotting-5.19.0.tar.xz"; + }; + }; + kpty = { + version = "5.19.0"; + src = fetchurl { + url = "${mirror}/stable/frameworks/5.19/kpty-5.19.0.tar.xz"; + sha256 = "0289vzfjwppwqj9h03flzhwm18dnxz11hqhdhr9990x7rw6a4n03"; + name = "kpty-5.19.0.tar.xz"; + }; + }; + kross = { + version = "5.19.0"; + src = fetchurl { + url = "${mirror}/stable/frameworks/5.19/portingAids/kross-5.19.0.tar.xz"; + sha256 = "1nv7mrhn7wa4bs2a164x42d3b37akyvhkxqs8cg5fqp4vr2wkw0p"; + name = "kross-5.19.0.tar.xz"; + }; + }; + krunner = { + version = "5.19.0"; + src = fetchurl { + url = "${mirror}/stable/frameworks/5.19/portingAids/krunner-5.19.0.tar.xz"; + sha256 = "054s8309lxi27gpbg7iygbcxsp0pwrzbzww3h8zp2a9yiic4s5mx"; + name = "krunner-5.19.0.tar.xz"; + }; + }; + kservice = { + version = "5.19.0"; + src = fetchurl { + url = "${mirror}/stable/frameworks/5.19/kservice-5.19.0.tar.xz"; + sha256 = "02lbia26r2462nwksizaxjfkhxfqqs732dp495yx8bjc7wcv3srm"; + name = "kservice-5.19.0.tar.xz"; + }; + }; + ktexteditor = { + version = "5.19.0"; + src = fetchurl { + url = "${mirror}/stable/frameworks/5.19/ktexteditor-5.19.0.tar.xz"; + sha256 = "0v3l44w4k43ajs81i8386hszk3x7rajjlb6z3jb7q98vhp91b5dp"; + name = "ktexteditor-5.19.0.tar.xz"; + }; + }; + ktextwidgets = { + version = "5.19.0"; + src = fetchurl { + url = "${mirror}/stable/frameworks/5.19/ktextwidgets-5.19.0.tar.xz"; + sha256 = "1xydb76r6x1p10bkr2nlqg3md78jw8zvqad0h42dgvl4f5xvjknp"; + name = "ktextwidgets-5.19.0.tar.xz"; + }; + }; + kunitconversion = { + version = "5.19.0"; + src = fetchurl { + url = "${mirror}/stable/frameworks/5.19/kunitconversion-5.19.0.tar.xz"; + sha256 = "11g1vhqkrb1k748drj7klkbb7jca3dybakcmcgqf53g8vxfih8kb"; + name = "kunitconversion-5.19.0.tar.xz"; + }; + }; + kwallet = { + version = "5.19.0"; + src = fetchurl { + url = "${mirror}/stable/frameworks/5.19/kwallet-5.19.0.tar.xz"; + sha256 = "0z0c62fdfx9syrq6z7bk0ihac4yqyxpycll7h3mijj29km4jnpjm"; + name = "kwallet-5.19.0.tar.xz"; + }; + }; + kwidgetsaddons = { + version = "5.19.0"; + src = fetchurl { + url = "${mirror}/stable/frameworks/5.19/kwidgetsaddons-5.19.0.tar.xz"; + sha256 = "0b85ng0dj5gpzifqmhyzgx61nb37vq7d0gvfpfazlcp5n27ywivm"; + name = "kwidgetsaddons-5.19.0.tar.xz"; + }; + }; + kwindowsystem = { + version = "5.19.0"; + src = fetchurl { + url = "${mirror}/stable/frameworks/5.19/kwindowsystem-5.19.0.tar.xz"; + sha256 = "115xs34r74j9zcsw69glnh8w59iyh764n3gniawwrk23c6yb8fch"; + name = "kwindowsystem-5.19.0.tar.xz"; + }; + }; + kxmlgui = { + version = "5.19.0"; + src = fetchurl { + url = "${mirror}/stable/frameworks/5.19/kxmlgui-5.19.0.tar.xz"; + sha256 = "1al2xifiyvl3zpva9nqap8gb6vqfgmf2fnhkmymm02rwg4yn4gah"; + name = "kxmlgui-5.19.0.tar.xz"; + }; + }; + kxmlrpcclient = { + version = "5.19.0"; + src = fetchurl { + url = "${mirror}/stable/frameworks/5.19/kxmlrpcclient-5.19.0.tar.xz"; + sha256 = "0lji7cxvh2lmjz42lx6ymz962gr4cyqfzksz0n5vgzfk5z0vq98g"; + name = "kxmlrpcclient-5.19.0.tar.xz"; + }; + }; + modemmanager-qt = { + version = "5.19.0"; + src = fetchurl { + url = "${mirror}/stable/frameworks/5.19/modemmanager-qt-5.19.0.tar.xz"; + sha256 = "05x9jicryjw9fj02arpya8xsh79rsnljnqjfpwbb7pi38f9i8v4w"; + name = "modemmanager-qt-5.19.0.tar.xz"; + }; + }; + networkmanager-qt = { + version = "5.19.0"; + src = fetchurl { + url = "${mirror}/stable/frameworks/5.19/networkmanager-qt-5.19.0.tar.xz"; + sha256 = "0wi0mkygzbvvyil1nyzc3ihgilvpx6j7caqaa9k38p85g93vsq13"; + name = "networkmanager-qt-5.19.0.tar.xz"; + }; + }; + oxygen-icons5 = { + version = "5.19.0"; + src = fetchurl { + url = "${mirror}/stable/frameworks/5.19/oxygen-icons5-5.19.0.tar.xz"; + sha256 = "09vfwcyidj3bl0qr4sq78bkc69zp9x8dwp8bsay5y05q8591dkg0"; + name = "oxygen-icons5-5.19.0.tar.xz"; + }; + }; + plasma-framework = { + version = "5.19.0"; + src = fetchurl { + url = "${mirror}/stable/frameworks/5.19/plasma-framework-5.19.0.tar.xz"; + sha256 = "1588r1jag0s9hhw4qq7mr2mcdd3d9az5ngb3z1l58xdhvfcc4497"; + name = "plasma-framework-5.19.0.tar.xz"; + }; + }; + solid = { + version = "5.19.0"; + src = fetchurl { + url = "${mirror}/stable/frameworks/5.19/solid-5.19.0.tar.xz"; + sha256 = "02bnvhscb55r6q5hkyh7rqi6zsc3r974y3x9shi8l0xbs78snkgz"; + name = "solid-5.19.0.tar.xz"; + }; + }; + sonnet = { + version = "5.19.0"; + src = fetchurl { + url = "${mirror}/stable/frameworks/5.19/sonnet-5.19.0.tar.xz"; + sha256 = "02ringh0wyiq1n19c200bcyf5x2w5jhw0pcxvfjzjai1sjig03x7"; + name = "sonnet-5.19.0.tar.xz"; + }; + }; + threadweaver = { + version = "5.19.0"; + src = fetchurl { + url = "${mirror}/stable/frameworks/5.19/threadweaver-5.19.0.tar.xz"; + sha256 = "1jm1sw7xq76s2ggghm6qqdn7452myy9n7p5zzdb01qbaw2y1x4pw"; + name = "threadweaver-5.19.0.tar.xz"; + }; + }; +} diff --git a/pkgs/development/libraries/kde-frameworks-5.19/threadweaver.nix b/pkgs/development/libraries/kde-frameworks-5.19/threadweaver.nix new file mode 100644 index 000000000000..52817921cc72 --- /dev/null +++ b/pkgs/development/libraries/kde-frameworks-5.19/threadweaver.nix @@ -0,0 +1,11 @@ +{ kdeFramework, lib +, extra-cmake-modules +}: + +kdeFramework { + name = "threadweaver"; + nativeBuildInputs = [ extra-cmake-modules ]; + meta = { + maintainers = [ lib.maintainers.ttuegel ]; + }; +} diff --git a/pkgs/development/libraries/lame/default.nix b/pkgs/development/libraries/lame/default.nix index f4ea47e633f9..b324494faff7 100644 --- a/pkgs/development/libraries/lame/default.nix +++ b/pkgs/development/libraries/lame/default.nix @@ -32,6 +32,9 @@ stdenv.mkDerivation rec { patches = [ ./gcc-4.9.patch ]; + outputs = [ "out" "lib" "doc" ]; # a small single header + outputMan = "out"; + nativeBuildInputs = [ ] ++ optional nasmSupport nasm; diff --git a/pkgs/development/libraries/lcms/default.nix b/pkgs/development/libraries/lcms/default.nix index c98a01f6f70f..9365cf0b5f09 100644 --- a/pkgs/development/libraries/lcms/default.nix +++ b/pkgs/development/libraries/lcms/default.nix @@ -8,6 +8,8 @@ stdenv.mkDerivation { sha256 = "1abkf8iphwyfs3z305z3qczm3z1i9idc1lz4gvfg92jnkz5k5bl0"; }; + outputs = [ "dev" "out" "bin" "man" ]; + meta = { description = "Color management engine"; homepage = http://www.littlecms.com/; diff --git a/pkgs/development/libraries/lcms2/default.nix b/pkgs/development/libraries/lcms2/default.nix index db82c943d7c2..7dea029491aa 100644 --- a/pkgs/development/libraries/lcms2/default.nix +++ b/pkgs/development/libraries/lcms2/default.nix @@ -1,4 +1,4 @@ -{stdenv, fetchurl, libtiff, libjpeg, zlib}: +{ stdenv, fetchurl, libtiff, libjpeg, zlib }: stdenv.mkDerivation rec { name = "lcms2-2.7"; @@ -8,13 +8,14 @@ stdenv.mkDerivation rec { sha256 = "0lvaglcjsvnyglgj3cb3pjc22nq8fml1vlx5dmmmw66ywx526925"; }; + outputs = [ "dev" "out" "bin" ]; + propagatedBuildInputs = [ libtiff libjpeg zlib ]; - meta = { + meta = with stdenv.lib; { description = "Color management engine"; homepage = http://www.littlecms.com/; - license = stdenv.lib.licenses.mit; - platforms = stdenv.lib.platforms.all; - maintainers = [ stdenv.lib.maintainers.urkud ]; + license = licenses.mit; + platforms = platforms.all; }; } diff --git a/pkgs/development/libraries/libao/default.nix b/pkgs/development/libraries/libao/default.nix index c0a6d4b6b1f1..776cd0f5b91f 100644 --- a/pkgs/development/libraries/libao/default.nix +++ b/pkgs/development/libraries/libao/default.nix @@ -10,6 +10,8 @@ stdenv.mkDerivation rec { sha256 = "1bwwv1g9lchaq6qmhvj1pp3hnyqr64ydd4j38x94pmprs4d27b83"; }; + outputs = [ "dev" "out" "doc" ]; + buildInputs = [ pkgconfig ] ++ lib.optional stdenv.isLinux (if usePulseAudio then libpulseaudio else alsaLib) ++ diff --git a/pkgs/development/libraries/libarchive/default.nix b/pkgs/development/libraries/libarchive/default.nix index ff33043dbaea..467dd87f43e9 100644 --- a/pkgs/development/libraries/libarchive/default.nix +++ b/pkgs/development/libraries/libarchive/default.nix @@ -27,7 +27,7 @@ stdenv.mkDerivation rec { preFixup = '' sed -i $out/lib/libarchive.la \ - -e 's|-lcrypto|-L${openssl}/lib -lcrypto|' \ + -e 's|-lcrypto|-L${openssl.out}/lib -lcrypto|' \ -e 's|-llzo2|-L${lzo}/lib -llzo2|' ''; diff --git a/pkgs/development/libraries/libassuan/default.nix b/pkgs/development/libraries/libassuan/default.nix index a9c83594179f..f2f31963d670 100644 --- a/pkgs/development/libraries/libassuan/default.nix +++ b/pkgs/development/libraries/libassuan/default.nix @@ -8,13 +8,16 @@ stdenv.mkDerivation rec { sha256 = "086bbcdnvs48qq5g4iac7dpk76j0q3jrp16mchdvyx0b720xq1mv"; }; + outputs = [ "dev" "out" "info" ]; + outputBin = "dev"; # libassuan-config + buildInputs = [ libgpgerror pth ]; doCheck = true; # Make sure includes are fixed for callers who don't use libassuan-config postInstall = '' - sed -i 's,#include <gpg-error.h>,#include "${libgpgerror}/include/gpg-error.h",g' $out/include/assuan.h + sed -i 's,#include <gpg-error.h>,#include "${libgpgerror.dev}/include/gpg-error.h",g' $dev/include/assuan.h ''; meta = { diff --git a/pkgs/development/libraries/libav/default.nix b/pkgs/development/libraries/libav/default.nix index 4d5563adab02..b84b852691fd 100644 --- a/pkgs/development/libraries/libav/default.nix +++ b/pkgs/development/libraries/libav/default.nix @@ -7,10 +7,10 @@ , x264Support ? false, x264 ? null , xvidSupport ? true, xvidcore ? null , faacSupport ? false, faac ? null -, vaapiSupport ? false, libva ? null # ToDo: it has huge closure +, vaapiSupport ? true, libva ? null , vdpauSupport ? true, libvdpau ? null , freetypeSupport ? true, freetype ? null # it's small and almost everywhere -, SDL # only for avplay in $tools, adds nontrivial closure to it +, SDL # only for avplay in $bin, adds nontrivial closure to it , enableGPL ? true # ToDo: some additional default stuff may need GPL , enableUnfree ? faacSupport }: @@ -81,20 +81,18 @@ let enableParallelBuilding = true; - outputs = [ "out" "tools" ]; + outputs = [ "dev" "out" "bin" ]; + setOutputFlags = false; # alltools to build smaller tools, incl. aviocat, ismindex, qt-faststart, etc. buildFlags = "all alltools install-man"; postInstall = '' - # move avplay to get rid of the SDL dependency in the main output - mkdir -p "$tools/bin" - mv "$out/bin/avplay" "$tools/bin" - + moveToOutput bin "$bin" # alltools target compiles an executable in tools/ for every C # source file in tools/, so move those to $out for tool in $(find tools -type f -executable); do - mv "$tool" "$out/bin/" + mv "$tool" "$bin/bin/" done ''; diff --git a/pkgs/development/libraries/libcaca/default.nix b/pkgs/development/libraries/libcaca/default.nix index c3059642382a..7a905d9c82a6 100644 --- a/pkgs/development/libraries/libcaca/default.nix +++ b/pkgs/development/libraries/libcaca/default.nix @@ -11,10 +11,17 @@ stdenv.mkDerivation rec { sha256 = "1x3j6yfyxl52adgnabycr0n38j9hx2j74la0hz0n8cnh9ry4d2qj"; }; + outputs = [ "dev" "bin" "out" "man" ]; + configureFlags = "--disable-x11 --disable-imlib2 --disable-doc"; propagatedBuildInputs = [ ncurses zlib ]; + postInstall = '' + mkdir -p $dev/bin + mv $bin/bin/caca-config $dev/bin/caca-config + ''; + meta = { homepage = http://libcaca.zoy.org/; description = "A graphics library that outputs text instead of pixels"; diff --git a/pkgs/development/libraries/libcanberra/default.nix b/pkgs/development/libraries/libcanberra/default.nix index b441719d31cd..8e3523a27e9f 100644 --- a/pkgs/development/libraries/libcanberra/default.nix +++ b/pkgs/development/libraries/libcanberra/default.nix @@ -18,7 +18,7 @@ stdenv.mkDerivation rec { postInstall = '' for f in $out/lib/*.la; do - sed 's|-lltdl|-L${libtool}/lib -lltdl|' -i $f + sed 's|-lltdl|-L${libtool.lib}/lib -lltdl|' -i $f done ''; diff --git a/pkgs/development/libraries/libdbi-drivers/default.nix b/pkgs/development/libraries/libdbi-drivers/default.nix index ccc0a1996549..f64174778b20 100644 --- a/pkgs/development/libraries/libdbi-drivers/default.nix +++ b/pkgs/development/libraries/libdbi-drivers/default.nix @@ -31,11 +31,11 @@ stdenv.mkDerivation rec { ] ++ optionals (postgresql != null) [ "--with-pgsql" "--with-pgsql_incdir=${postgresql}/include" - "--with-pgsql_libdir=${postgresql}/lib" + "--with-pgsql_libdir=${postgresql.lib}/lib" ] ++ optionals (sqlite != null) [ "--with-sqlite3" - "--with-sqlite3-incdir=${sqlite}/include/sqlite" - "--with-sqlite3-libdir=${sqlite}/lib/sqlite" + "--with-sqlite3-incdir=${sqlite.dev}/include/sqlite" + "--with-sqlite3-libdir=${sqlite.out}/lib/sqlite" ]; installFlags = [ "DESTDIR=\${out}" ]; diff --git a/pkgs/development/libraries/libdrm/default.nix b/pkgs/development/libraries/libdrm/default.nix index 154277f9cc66..ad524ffeb027 100644 --- a/pkgs/development/libraries/libdrm/default.nix +++ b/pkgs/development/libraries/libdrm/default.nix @@ -8,6 +8,8 @@ stdenv.mkDerivation rec { sha256 = "79cb8e988749794edfb2d777b298d5292eff353bbbb71ed813589e61d2bc2d76"; }; + outputs = [ "dev" "out" ]; + nativeBuildInputs = [ pkgconfig ]; buildInputs = [ libpthreadstubs libpciaccess ] ++ stdenv.lib.optional stdenv.isLinux udev; diff --git a/pkgs/development/libraries/libdvdcss/default.nix b/pkgs/development/libraries/libdvdcss/default.nix index d68b0a367517..c5cdec0ae5ff 100644 --- a/pkgs/development/libraries/libdvdcss/default.nix +++ b/pkgs/development/libraries/libdvdcss/default.nix @@ -1,4 +1,4 @@ -{stdenv, fetchurl}: +{ stdenv, fetchurl }: stdenv.mkDerivation rec { name = "libdvdcss-${version}"; @@ -9,8 +9,10 @@ stdenv.mkDerivation rec { sha256 = "158k9zagmbk5bkbz96l6lwhh7xcgfcnzflkr4vblskhcab6llhbw"; }; - meta = { + meta = with stdenv.lib; { homepage = http://www.videolan.org/developers/libdvdcss.html; description = "A library for decrypting DVDs"; + license = licenses.gpl2; + platforms = platforms.linux; }; } diff --git a/pkgs/development/libraries/libedit/default.nix b/pkgs/development/libraries/libedit/default.nix index 6e8d85cb88d9..7868c2cfd140 100644 --- a/pkgs/development/libraries/libedit/default.nix +++ b/pkgs/development/libraries/libedit/default.nix @@ -19,7 +19,7 @@ stdenv.mkDerivation rec { postInstall = '' find $out/lib -type f | grep '\.\(la\|pc\)''$' | xargs sed -i \ - -e 's,-lncurses[a-z]*,-L${ncurses}/lib -lncursesw,g' + -e 's,-lncurses[a-z]*,-L${ncurses.out}/lib -lncursesw,g' ''; meta = with stdenv.lib; { diff --git a/pkgs/development/libraries/libelf/default.nix b/pkgs/development/libraries/libelf/default.nix index 048902f4fc49..623256bb6b7b 100644 --- a/pkgs/development/libraries/libelf/default.nix +++ b/pkgs/development/libraries/libelf/default.nix @@ -1,6 +1,6 @@ { fetchurl, stdenv, gettext, glibc }: -stdenv.mkDerivation (rec { +stdenv.mkDerivation rec { name = "libelf-0.8.13"; src = fetchurl { @@ -15,6 +15,11 @@ stdenv.mkDerivation (rec { nativeBuildInputs = [ glibc ]; }; + # Libelf's custom NLS macros fail to determine the catalog file extension on + # Darwin, so disable NLS for now. + # FIXME: Eventually make Gettext a build input on all platforms. + configureFlags = stdenv.lib.optional stdenv.isDarwin "--disable-nls"; + buildInputs = [ gettext ]; meta = { @@ -28,12 +33,3 @@ stdenv.mkDerivation (rec { maintainers = [ ]; }; } - -// - -# Libelf's custom NLS macros fail to determine the catalog file extension on -# Darwin, so disable NLS for now. -# FIXME: Eventually make Gettext a build input on all platforms. -(if stdenv.isDarwin - then { configureFlags = [ "--disable-nls" ]; } - else { })) diff --git a/pkgs/development/libraries/libevent/default.nix b/pkgs/development/libraries/libevent/default.nix index bddda9f3eadd..b0b537ddb175 100644 --- a/pkgs/development/libraries/libevent/default.nix +++ b/pkgs/development/libraries/libevent/default.nix @@ -8,14 +8,14 @@ stdenv.mkDerivation { url = "mirror://sourceforge/levent/libevent-${version}-stable.tar.gz"; sha256 = "18qz9qfwrkakmazdlwxvjmw8p76g70n3faikwvdwznns1agw9hki"; }; + postPatch = "patchShebangs event_rpcgen.py"; + + outputs = [ "dev" "out" ]; + outputBin = "dev"; nativeBuildInputs = [ autoreconfHook ]; buildInputs = [ openssl python ] ++ stdenv.lib.optional stdenv.isCygwin findutils; - patchPhase = '' - patchShebangs event_rpcgen.py - ''; - meta = with stdenv.lib; { description = "Event notification library"; diff --git a/pkgs/development/libraries/libextractor/default.nix b/pkgs/development/libraries/libextractor/default.nix index 18387c904f83..2b6571290dfb 100644 --- a/pkgs/development/libraries/libextractor/default.nix +++ b/pkgs/development/libraries/libextractor/default.nix @@ -29,7 +29,7 @@ stdenv.mkDerivation rec { configureFlags = "--disable-ltdl-install " + "--with-ltdl-include=${libtool}/include " - + "--with-ltdl-lib=${libtool}/lib " + + "--with-ltdl-lib=${libtool.lib}/lib " + "--enable-xpdf"; # Checks need to be run after "make install", otherwise plug-ins are not in diff --git a/pkgs/development/libraries/libffi/default.nix b/pkgs/development/libraries/libffi/default.nix index 5c981e664cb4..962f716c120a 100644 --- a/pkgs/development/libraries/libffi/default.nix +++ b/pkgs/development/libraries/libffi/default.nix @@ -8,7 +8,9 @@ stdenv.mkDerivation rec { sha256 = "0dya49bnhianl0r65m65xndz6ls2jn1xngyn72gd28ls3n7bnvnh"; }; - patches = if stdenv.isCygwin then [ ./3.2.1-cygwin.patch ] else null; + patches = stdenv.lib.optional stdenv.isCygwin ./3.2.1-cygwin.patch; + + outputs = [ "dev" "out" "doc" ]; buildInputs = stdenv.lib.optional doCheck dejagnu; @@ -21,9 +23,13 @@ stdenv.mkDerivation rec { dontStrip = stdenv ? cross; # Don't run the native `strip' when cross-compiling. - # Install headers in the right place. - postInstall = '' - ln -s${if (stdenv.isFreeBSD || stdenv.isOpenBSD || stdenv.isDarwin) then "" else "r"}v "$out/lib/"libffi*/include "$out/include" + # Install headers and libs in the right places. + postFixup = '' + mkdir -p "$dev/" + mv "$out/lib/${name}/include" "$dev/include" + rmdir "$out/lib/${name}" + substituteInPlace "$dev/lib/pkgconfig/libffi.pc" \ + --replace 'includedir=''${libdir}/libffi-3.2.1' "includedir=$dev" ''; meta = with stdenv.lib; { diff --git a/pkgs/development/libraries/libfm/default.nix b/pkgs/development/libraries/libfm/default.nix index efa9b90e869f..db17b46b0d35 100644 --- a/pkgs/development/libraries/libfm/default.nix +++ b/pkgs/development/libraries/libfm/default.nix @@ -3,11 +3,15 @@ let inherit (stdenv.lib) optional; in -stdenv.mkDerivation { - name = if extraOnly then "libfm-extra-1.2.3" else "libfm-1.2.3"; +stdenv.mkDerivation rec { + name = if extraOnly + then "libfm-extra-${version}" + else "libfm-${version}"; + version = "1.2.4"; + src = fetchurl { - url = "mirror://sourceforge/pcmanfm/libfm-1.2.3.tar.xz"; - sha256 = "1ygvw52262r3jp1f45m9cdpx5xgvd4rkyfszslfqvg2c99ig34n6"; + url = "mirror://sourceforge/pcmanfm/libfm-${version}.tar.xz"; + sha256 = "0bsh4p7h2glhxf1cc1lvbxyb4qy0y1zsnl9izf7vrldkikrgc13q"; }; buildInputs = [ glib gtk intltool pango pkgconfig vala ] diff --git a/pkgs/development/libraries/libgcrypt/1.5.nix b/pkgs/development/libraries/libgcrypt/1.5.nix index 990e73d0a63e..d77946e5ec37 100644 --- a/pkgs/development/libraries/libgcrypt/1.5.nix +++ b/pkgs/development/libraries/libgcrypt/1.5.nix @@ -17,9 +17,9 @@ stdenv.mkDerivation rec { # Make sure libraries are correct for .pc and .la files # Also make sure includes are fixed for callers who don't use libgpgcrypt-config postInstall = '' - sed -i 's,#include <gpg-error.h>,#include "${libgpgerror}/include/gpg-error.h",g' $out/include/gcrypt.h + sed -i 's,#include <gpg-error.h>,#include "${libgpgerror.dev}/include/gpg-error.h",g' $out/include/gcrypt.h '' + stdenv.lib.optionalString enableCapabilities '' - sed -i 's,\(-lcap\),-L${libcap}/lib \1,' $out/lib/libgcrypt.la + sed -i 's,\(-lcap\),-L${libcap.out}/lib \1,' $out/lib/libgcrypt.la ''; doCheck = true; diff --git a/pkgs/development/libraries/libgcrypt/default.nix b/pkgs/development/libraries/libgcrypt/default.nix index 835d6f0f5c29..f36113090ce4 100644 --- a/pkgs/development/libraries/libgcrypt/default.nix +++ b/pkgs/development/libraries/libgcrypt/default.nix @@ -10,16 +10,19 @@ stdenv.mkDerivation rec { sha256 = "0959mwfzsxhallxdqlw359xg180ll2skxwyy35qawmfl89cbr7pl"; }; + outputs = [ "dev" "out" "info" ]; + outputBin = "dev"; + buildInputs = [ libgpgerror ] ++ lib.optional enableCapabilities libcap; # Make sure libraries are correct for .pc and .la files # Also make sure includes are fixed for callers who don't use libgpgcrypt-config - postInstall = '' - sed -i 's,#include <gpg-error.h>,#include "${libgpgerror}/include/gpg-error.h",g' $out/include/gcrypt.h + postFixup = '' + sed -i 's,#include <gpg-error.h>,#include "${libgpgerror.dev}/include/gpg-error.h",g' "$dev/include/gcrypt.h" '' + stdenv.lib.optionalString enableCapabilities '' - sed -i 's,\(-lcap\),-L${libcap}/lib \1,' $out/lib/libgcrypt.la + sed -i 's,\(-lcap\),-L${libcap.out}/lib \1,' $out/lib/libgcrypt.la ''; # TODO: figure out why this is even necessary and why the missing dylib only crashes diff --git a/pkgs/development/libraries/libgpg-error/default.nix b/pkgs/development/libraries/libgpg-error/default.nix index 26214bd8801b..9c4f3705b3ed 100644 --- a/pkgs/development/libraries/libgpg-error/default.nix +++ b/pkgs/development/libraries/libgpg-error/default.nix @@ -10,6 +10,9 @@ stdenv.mkDerivation rec { postPatch = "sed '/BUILD_TIMESTAMP=/s/=.*/=1970-01-01T00:01+0000/' -i ./configure"; + outputs = [ "dev" "out" "info" ]; + outputBin = "dev"; # deps want just the lib, most likely + # If architecture-dependent MO files aren't available, they're generated # during build, so we need gettext for cross-builds. crossAttrs.buildInputs = [ gettext ]; @@ -25,7 +28,7 @@ stdenv.mkDerivation rec { doCheck = true; - meta = { + meta = with stdenv.lib; { homepage = "https://www.gnupg.org/related_software/libgpg-error/index.html"; description = "A small library that defines common error values for all GnuPG components"; @@ -36,9 +39,9 @@ stdenv.mkDerivation rec { Daemon and possibly more in the future. ''; - license = stdenv.lib.licenses.lgpl2Plus; - platforms = stdenv.lib.platforms.all; - maintainers = with stdenv.lib.maintainers; [ fuuzetsu ]; + license = licenses.lgpl2Plus; + platforms = platforms.all; + maintainers = [ maintainers.fuuzetsu ]; }; } diff --git a/pkgs/development/libraries/libgphoto2/default.nix b/pkgs/development/libraries/libgphoto2/default.nix index e25cdb61d86a..55129a94476a 100644 --- a/pkgs/development/libraries/libgphoto2/default.nix +++ b/pkgs/development/libraries/libgphoto2/default.nix @@ -5,7 +5,7 @@ stdenv.mkDerivation rec { src = fetchurl { url = "mirror://sourceforge/gphoto/${name}.tar.bz2"; - sha256 = "0chz57rhzdz1cbdjw1q5rs439s879kk06jrci4jyn5rlm7iyic6d"; + sha256 = "1wjf79ipqwb5phfjjwf15rwgigakylnfqaj4crs5qnds6ba6i1ld"; }; nativeBuildInputs = [ pkgconfig gettext ]; @@ -22,7 +22,7 @@ stdenv.mkDerivation rec { MTP, and other vendor specific protocols for controlling and transferring data from digital cameras. ''; - version = "2.5.9"; + version = "2.5.10"; # XXX: the homepage claims LGPL, but several src files are lgpl21Plus license = stdenv.lib.licenses.lgpl21Plus; platforms = with stdenv.lib.platforms; unix; diff --git a/pkgs/development/libraries/libgsf/default.nix b/pkgs/development/libraries/libgsf/default.nix index b7e774b52235..25d1ceb40bdb 100644 --- a/pkgs/development/libraries/libgsf/default.nix +++ b/pkgs/development/libraries/libgsf/default.nix @@ -4,11 +4,11 @@ with { inherit (stdenv.lib) optionals; }; stdenv.mkDerivation rec { - name = "libgsf-1.14.34"; + name = "libgsf-1.14.36"; src = fetchurl { url = "mirror://gnome/sources/libgsf/1.14/${name}.tar.xz"; - sha256 = "f0fea447e0374a73df45b498fd1701393f8e6acb39746119f8a292fb4a0cb528"; + sha256 = "0h19ssxzz0cmznwga2xy55kjibm24mwxqarnpd0w7xy0hrzm1dvi"; }; nativeBuildInputs = [ pkgconfig intltool ]; diff --git a/pkgs/development/libraries/libguestfs/default.nix b/pkgs/development/libraries/libguestfs/default.nix index 2e3307b54bf5..8901fef21fd0 100644 --- a/pkgs/development/libraries/libguestfs/default.nix +++ b/pkgs/development/libraries/libguestfs/default.nix @@ -26,7 +26,7 @@ stdenv.mkDerivation rec { configureFlags = "--disable-appliance --disable-daemon"; patches = [ ./libguestfs-syms.patch ]; - NIX_CFLAGS_COMPILE="-I${libxml2}/include/libxml2/"; + NIX_CFLAGS_COMPILE="-I${libxml2.dev}/include/libxml2/"; postInstall = '' for bin in $out/bin/*; do diff --git a/pkgs/development/libraries/libidn/default.nix b/pkgs/development/libraries/libidn/default.nix index c3c6c13c98fc..b16dc8357414 100644 --- a/pkgs/development/libraries/libidn/default.nix +++ b/pkgs/development/libraries/libidn/default.nix @@ -8,6 +8,8 @@ stdenv.mkDerivation rec { sha256 = "1xf4hphhahcjm2xwx147lfpsavjwv9l4c2gf6hx71zxywbz5lpds"; }; + outputs = [ "dev" "out" "bin" "info" "docdev" ]; + doCheck = ! stdenv.isDarwin; buildInputs = stdenv.lib.optional stdenv.isDarwin libiconv; diff --git a/pkgs/development/libraries/libjpeg-turbo/default.nix b/pkgs/development/libraries/libjpeg-turbo/default.nix index 3660a652e79d..79cf45a8005f 100644 --- a/pkgs/development/libraries/libjpeg-turbo/default.nix +++ b/pkgs/development/libraries/libjpeg-turbo/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, nasm }: +{ stdenv, fetchurl, nasm, autoreconfHook }: stdenv.mkDerivation rec { name = "libjpeg-turbo-1.4.2"; @@ -8,7 +8,11 @@ stdenv.mkDerivation rec { sha256 = "0gi349hp1x7mb98s4mf66sb2xay2kjjxj9ihrriw0yiy0k9va6sj"; }; - buildInputs = [ nasm ]; + outputs = [ "dev" "out" "doc" "bin" ]; + + buildInputs = [ autoreconfHook nasm ]; + + enableParallelBuilding = true; doCheck = true; checkTarget = "test"; diff --git a/pkgs/development/libraries/libjpeg/default.nix b/pkgs/development/libraries/libjpeg/default.nix index bf2ebb27f37f..025be2009599 100644 --- a/pkgs/development/libraries/libjpeg/default.nix +++ b/pkgs/development/libraries/libjpeg/default.nix @@ -12,6 +12,8 @@ stdenv.mkDerivation { configureFlags = optional static "--enable-static --disable-shared"; + outputs = [ "dev" "out" "man" "bin" ]; + meta = { homepage = http://www.ijg.org/; description = "A library that implements the JPEG image file format"; diff --git a/pkgs/development/libraries/libmbim/default.nix b/pkgs/development/libraries/libmbim/default.nix index f910741c446e..8baf4a77c362 100644 --- a/pkgs/development/libraries/libmbim/default.nix +++ b/pkgs/development/libraries/libmbim/default.nix @@ -8,6 +8,8 @@ stdenv.mkDerivation rec { sha256 = "0abv0h9c3kbw4bq1b9270sg189jcjj3x3wa91bj836ynwg9m34wl"; }; + outputs = [ "dev" "out" "doc" ]; + preConfigure = '' patchShebangs . ''; diff --git a/pkgs/development/libraries/libmicrohttpd/default.nix b/pkgs/development/libraries/libmicrohttpd/default.nix index 3ef4ba77c31c..c68187945334 100644 --- a/pkgs/development/libraries/libmicrohttpd/default.nix +++ b/pkgs/development/libraries/libmicrohttpd/default.nix @@ -8,7 +8,7 @@ stdenv.mkDerivation rec { sha256 = "07j1p21rvbrrfpxngk8xswzkmjkh94bp1971xfjh1p0ja709qwzj"; }; - outputs = [ "out" "info" ]; + outputs = [ "dev" "out" "docdev" ]; buildInputs = [ libgcrypt ]; diff --git a/pkgs/development/libraries/libmng/default.nix b/pkgs/development/libraries/libmng/default.nix index 234f56863c09..b97ee6a4ced0 100644 --- a/pkgs/development/libraries/libmng/default.nix +++ b/pkgs/development/libraries/libmng/default.nix @@ -8,13 +8,16 @@ stdenv.mkDerivation rec { sha256 = "0l5wa3b9rr4zl49zbbjpapqyccqjwzkzw1ph3p4pk9p5h73h9317"; }; + outputs = [ "dev" "out" "docdev" ]; + outputMan= "docdev"; + propagatedBuildInputs = [ zlib libpng libjpeg lcms2 ]; - meta = { + meta = with stdenv.lib; { description = "Reference library for reading, displaying, writing and examining Multiple-Image Network Graphics"; homepage = http://www.libmng.com; - license = stdenv.lib.licenses.zlib; - maintainers = with stdenv.lib.maintainers; [ marcweber urkud ]; - hydraPlatforms = stdenv.lib.platforms.linux; + license = licenses.zlib; + maintainers = with maintainers; [ marcweber urkud ]; + hydraPlatforms = platforms.linux; }; } diff --git a/pkgs/development/libraries/libmpc/default.nix b/pkgs/development/libraries/libmpc/default.nix index 1e8ea0ffa138..2a4600f52045 100644 --- a/pkgs/development/libraries/libmpc/default.nix +++ b/pkgs/development/libraries/libmpc/default.nix @@ -12,7 +12,7 @@ stdenv.mkDerivation rec { buildInputs = [ gmp mpfr ]; - CFLAGS = "-I${gmp}/include"; + CFLAGS = "-I${gmp.dev}/include"; doCheck = true; diff --git a/pkgs/development/libraries/libmtp/default.nix b/pkgs/development/libraries/libmtp/default.nix index 13b405019336..671169b9ab3a 100644 --- a/pkgs/development/libraries/libmtp/default.nix +++ b/pkgs/development/libraries/libmtp/default.nix @@ -3,17 +3,19 @@ stdenv.mkDerivation rec { name = "libmtp-1.1.9"; - propagatedBuildInputs = [ libusb1 ]; - buildInputs = [ pkgconfig ]; - - # tried to install files to /lib/udev, hopefully OK - configureFlags = [ "--with-udev=$$out/lib/udev" ]; - src = fetchurl { url = "mirror://sourceforge/libmtp/${name}.tar.gz"; sha256 = "12dinqic0ljnhrwx3rc61jc7q24ybr0mckc2ya5kh1s1np0d7w93"; }; + outputs = [ "dev" "bin" "out" ]; + + propagatedBuildInputs = [ libusb1 ]; + buildInputs = [ pkgconfig ]; + + # tried to install files to /lib/udev, hopefully OK + configureFlags = [ "--with-udev=$$bin/lib/udev" ]; + meta = { homepage = http://libmtp.sourceforge.net; description = "An implementation of Microsoft's Media Transfer Protocol"; diff --git a/pkgs/development/libraries/liboauth/default.nix b/pkgs/development/libraries/liboauth/default.nix index 479a187cf87c..f62fb400199f 100644 --- a/pkgs/development/libraries/liboauth/default.nix +++ b/pkgs/development/libraries/liboauth/default.nix @@ -15,7 +15,7 @@ stdenv.mkDerivation rec { postInstall = '' substituteInPlace $out/lib/liboauth.la \ - --replace "-lnss3" "-L${nss}/lib -lnss3" + --replace "-lnss3" "-L${nss.out}/lib -lnss3" ''; meta = with stdenv.lib; { diff --git a/pkgs/development/libraries/libogg/default.nix b/pkgs/development/libraries/libogg/default.nix index 407e218065bb..1aa4b8ad0453 100644 --- a/pkgs/development/libraries/libogg/default.nix +++ b/pkgs/development/libraries/libogg/default.nix @@ -8,7 +8,7 @@ stdenv.mkDerivation rec { sha256 = "16z74q422jmprhyvy7c9x909li8cqzmvzyr8cgbm52xcsp6pqs1z"; }; - outputs = [ "out" "doc" ]; + outputs = [ "dev" "out" "doc" ]; meta = with stdenv.lib; { homepage = http://xiph.org/ogg/; diff --git a/pkgs/development/libraries/liboil/default.nix b/pkgs/development/libraries/liboil/default.nix index 43b1f3470934..754e308ac15b 100644 --- a/pkgs/development/libraries/liboil/default.nix +++ b/pkgs/development/libraries/liboil/default.nix @@ -8,10 +8,13 @@ stdenv.mkDerivation rec { sha256 = "0sgwic99hxlb1av8cm0albzh8myb7r3lpcwxfm606l0bkc3h4pqh"; }; - buildInputs = [ pkgconfig ]; - patches = [ ./x86_64-cpuid.patch ]; + outputs = [ "dev" "out" "docdev" ]; + outputBin = "dev"; # oil-bugreport + + nativeBuildInputs = [ pkgconfig ]; + # fix "argb_paint_i386.c:53:Incorrect register `%rax' used with `l' suffix" # errors configureFlags = stdenv.lib.optional stdenv.isDarwin "--build=x86_64"; diff --git a/pkgs/development/libraries/libopus/default.nix b/pkgs/development/libraries/libopus/default.nix index 460aaa2b0eca..b8951e66c8bd 100644 --- a/pkgs/development/libraries/libopus/default.nix +++ b/pkgs/development/libraries/libopus/default.nix @@ -11,6 +11,8 @@ stdenv.mkDerivation rec { sha256 = "158xprn2086arvdib3vbbygz7z6jqkw2nci7nlywzzwallap0wmr"; }; + outputs = [ "dev" "out" ]; + configureFlags = stdenv.lib.optional fixedPoint "--enable-fixed-point" ++ stdenv.lib.optional withCustomModes "--enable-custom-modes"; diff --git a/pkgs/development/libraries/libpng/12.nix b/pkgs/development/libraries/libpng/12.nix index 7ae3d0e1d682..01e90cb19132 100644 --- a/pkgs/development/libraries/libpng/12.nix +++ b/pkgs/development/libraries/libpng/12.nix @@ -10,6 +10,8 @@ stdenv.mkDerivation rec { sha256 = "0zkra0b9lrpk2axassdgkqinmc2ba6b473sm52xbpyknaqs2fljy"; }; + outputs = [ "dev" "out" "man" ]; + propagatedBuildInputs = [ zlib ]; passthru = { inherit zlib; }; @@ -21,6 +23,8 @@ stdenv.mkDerivation rec { configureFlags = "--enable-static"; + postInstall = ''mv "$out/bin" "$dev/bin"''; + meta = with stdenv.lib; { description = "The official reference implementation for the PNG file format"; homepage = http://www.libpng.org/pub/png/libpng.html; diff --git a/pkgs/development/libraries/libpng/default.nix b/pkgs/development/libraries/libpng/default.nix index 4e18dcb680f9..6faed97aaee2 100644 --- a/pkgs/development/libraries/libpng/default.nix +++ b/pkgs/development/libraries/libpng/default.nix @@ -18,13 +18,18 @@ in stdenv.mkDerivation rec { url = "mirror://sourceforge/libpng/libpng-${version}.tar.xz"; inherit sha256; }; - postPatch = whenPatched "gunzip < ${patch_src} | patch -Np1"; + outputs = [ "dev" "out" "man" ]; + propagatedBuildInputs = [ zlib ]; + preConfigure = "export bin=$dev"; + doCheck = true; + postInstall = ''mv "$out/bin" "$dev/bin"''; + passthru = { inherit zlib; }; meta = with stdenv.lib; { diff --git a/pkgs/development/libraries/libproxy/default.nix b/pkgs/development/libraries/libproxy/default.nix index 7085236feb52..0f0808506398 100644 --- a/pkgs/development/libraries/libproxy/default.nix +++ b/pkgs/development/libraries/libproxy/default.nix @@ -7,6 +7,8 @@ stdenv.mkDerivation rec { sha256 = "0jw6454gxjykmbnbh544axi8hzz9gmm4jz1y5gw1hdqnakg36gyw"; }; + outputs = [ "dev" "out" ]; # to deal with propagatedBuildInputs + nativeBuildInputs = [ pkgconfig cmake ]; propagatedBuildInputs = [ zlib ] # now some optional deps, but many more are possible diff --git a/pkgs/development/libraries/libqmi/default.nix b/pkgs/development/libraries/libqmi/default.nix index 9699d67d7b87..82768cd350dd 100644 --- a/pkgs/development/libraries/libqmi/default.nix +++ b/pkgs/development/libraries/libqmi/default.nix @@ -8,6 +8,8 @@ stdenv.mkDerivation rec { sha256 = "101ppan2q1h4pyp2zbn9b8sdwy2c7fk9rp91yykxz3afrvzbymq8"; }; + outputs = [ "dev" "out" "docdev" ]; + preBuild = '' patchShebangs . ''; diff --git a/pkgs/development/libraries/libraw/default.nix b/pkgs/development/libraries/libraw/default.nix index 3d564fc00f8b..031886d34516 100644 --- a/pkgs/development/libraries/libraw/default.nix +++ b/pkgs/development/libraries/libraw/default.nix @@ -9,7 +9,7 @@ stdenv.mkDerivation rec { sha256 = "043kckxjqanw8dl3m9f6kvsf0l20ywxmgxd1xb0slj6m8l4w4hz6"; }; - buildInputs = [ lcms2 jasper ] ; + buildInputs = [ lcms2 jasper ]; nativeBuildInputs = [ pkgconfig ]; diff --git a/pkgs/development/libraries/librsvg/default.nix b/pkgs/development/libraries/librsvg/default.nix index ea1910733e7d..0768a21bf543 100644 --- a/pkgs/development/libraries/librsvg/default.nix +++ b/pkgs/development/libraries/librsvg/default.nix @@ -26,7 +26,7 @@ stdenv.mkDerivation rec { ++ stdenv.lib.optional stdenv.isDarwin "--disable-Bsymbolic"; NIX_CFLAGS_COMPILE - = stdenv.lib.optionalString stdenv.isDarwin "-I${cairo}/include/cairo"; + = stdenv.lib.optionalString stdenv.isDarwin "-I${cairo.dev}/include/cairo"; # It wants to add loaders and update the loaders.cache in gdk-pixbuf # Patching the Makefiles to it creates rsvg specific loaders and the @@ -47,7 +47,7 @@ stdenv.mkDerivation rec { # Merge gdkpixbuf and librsvg loaders postInstall = '' mv $GDK_PIXBUF/loaders.cache $GDK_PIXBUF/loaders.cache.tmp - cat ${gdk_pixbuf}/lib/gdk-pixbuf-2.0/2.10.0/loaders.cache $GDK_PIXBUF/loaders.cache.tmp > $GDK_PIXBUF/loaders.cache + cat ${gdk_pixbuf.out}/lib/gdk-pixbuf-2.0/2.10.0/loaders.cache $GDK_PIXBUF/loaders.cache.tmp > $GDK_PIXBUF/loaders.cache rm $GDK_PIXBUF/loaders.cache.tmp ''; } diff --git a/pkgs/development/libraries/libsamplerate/default.nix b/pkgs/development/libraries/libsamplerate/default.nix index 481d82c0c9ad..f0ff549c7168 100644 --- a/pkgs/development/libraries/libsamplerate/default.nix +++ b/pkgs/development/libraries/libsamplerate/default.nix @@ -1,6 +1,4 @@ -{ stdenv, fetchurl, pkgconfig -, fftw, libsndfile -}: +{ stdenv, fetchurl, pkgconfig, libsndfile }: stdenv.mkDerivation rec { name = "libsamplerate-0.1.8"; @@ -11,12 +9,14 @@ stdenv.mkDerivation rec { }; nativeBuildInputs = [ pkgconfig ]; - buildInputs = [ fftw libsndfile ]; + buildInputs = [ libsndfile ]; # maybe interesting configure flags: #--disable-fftw disable usage of FFTW #--disable-cpu-clip disable tricky cpu specific clipper + outputs = [ "dev" "bin" "out" ]; + postConfigure = stdenv.lib.optionalString stdenv.isDarwin '' # need headers from the Carbon.framework in /System/Library/Frameworks to diff --git a/pkgs/development/libraries/libsndfile/default.nix b/pkgs/development/libraries/libsndfile/default.nix index 48a2999e7af9..547c7647b7a8 100644 --- a/pkgs/development/libraries/libsndfile/default.nix +++ b/pkgs/development/libraries/libsndfile/default.nix @@ -3,16 +3,20 @@ }: stdenv.mkDerivation rec { - name = "libsndfile-1.0.25"; + name = "libsndfile-1.0.26"; src = fetchurl { url = "http://www.mega-nerd.com/libsndfile/files/${name}.tar.gz"; - sha256 = "10j8mbb65xkyl0kfy0hpzpmrp0jkr12c7mfycqipxgka6ayns0ar"; + sha256 = "14jhla289cj45946h0hq2an0a9g4wkwb3v4571bla6ixfvn20rfd"; }; buildInputs = [ pkgconfig flac libogg libvorbis ] ++ stdenv.lib.optional stdenv.isDarwin Carbon; + enableParallelBuilding = true; + + outputs = [ "dev" "out" "bin" "doc" ]; + # need headers from the Carbon.framework in /System/Library/Frameworks to # compile this on darwin -- not sure how to handle preConfigure = stdenv.lib.optionalString stdenv.isDarwin diff --git a/pkgs/development/libraries/libsodium/default.nix b/pkgs/development/libraries/libsodium/default.nix index 1490e15c361f..e8b3bc1cebc9 100644 --- a/pkgs/development/libraries/libsodium/default.nix +++ b/pkgs/development/libraries/libsodium/default.nix @@ -8,7 +8,9 @@ stdenv.mkDerivation rec { sha256 = "1gn45g956lyz8l6iq187yc6l627vyivyp8qc5dkr6dnhdnlqddvi"; }; - NIX_LDFLAGS = stdenv.lib.optionalString stdenv.cc.isGNU "-lssp"; + outputs = [ "dev" "out" ]; + + enableParallelBuilding = true; doCheck = true; diff --git a/pkgs/development/libraries/libsoup/default.nix b/pkgs/development/libraries/libsoup/default.nix index 3d10e6135055..aa84c507c97a 100644 --- a/pkgs/development/libraries/libsoup/default.nix +++ b/pkgs/development/libraries/libsoup/default.nix @@ -18,11 +18,13 @@ stdenv.mkDerivation { patchShebangs libsoup/ ''; + outputs = [ "dev" "out" ]; + buildInputs = libintlOrEmpty ++ [ intltool python sqlite ]; nativeBuildInputs = [ pkgconfig ]; propagatedBuildInputs = [ glib libxml2 gobjectIntrospection ] ++ stdenv.lib.optionals gnomeSupport [ libgnome_keyring ]; - passthru.propagatedUserEnvPackages = [ glib_networking ]; + passthru.propagatedUserEnvPackages = [ glib_networking.out ]; # glib_networking is a runtime dependency, not a compile-time dependency configureFlags = "--disable-tls-check --enable-vala=no" + stdenv.lib.optionalString (!gnomeSupport) " --without-gnome"; diff --git a/pkgs/development/libraries/libssh/default.nix b/pkgs/development/libraries/libssh/default.nix index 17538a6c3803..adfd11d9b197 100644 --- a/pkgs/development/libraries/libssh/default.nix +++ b/pkgs/development/libraries/libssh/default.nix @@ -13,6 +13,8 @@ stdenv.mkDerivation rec { sed -i 's,nacl/,sodium/,g' ./include/libssh/curve25519.h src/curve25519.c ''; + outputs = [ "dev" "out" ]; + buildInputs = [ zlib openssl libsodium ]; nativeBuildInputs = [ cmake pkgconfig ]; diff --git a/pkgs/development/libraries/libssh2/default.nix b/pkgs/development/libraries/libssh2/default.nix index 326817843351..855e57c0550a 100644 --- a/pkgs/development/libraries/libssh2/default.nix +++ b/pkgs/development/libraries/libssh2/default.nix @@ -8,6 +8,8 @@ stdenv.mkDerivation rec { sha256 = "116mh112w48vv9k3f15ggp5kxw5sj4b88dzb5j69llsh7ba1ymp4"; }; + outputs = [ "dev" "out" "docdev" ]; + buildInputs = [ openssl zlib ]; crossAttrs = { diff --git a/pkgs/development/libraries/libtasn1/default.nix b/pkgs/development/libraries/libtasn1/default.nix index 1ae26c48fc21..5ac8cc94d044 100644 --- a/pkgs/development/libraries/libtasn1/default.nix +++ b/pkgs/development/libraries/libtasn1/default.nix @@ -8,6 +8,9 @@ stdenv.mkDerivation rec { sha256 = "1j8iixynchziw1y39lnibyl5h81m4p78w3i4f28q2vgwjgf801x4"; }; + outputs = [ "dev" "out" "docdev" ]; + outputBin = "dev"; + buildInputs = [ perl texinfo ]; doCheck = true; diff --git a/pkgs/development/libraries/libtheora/default.nix b/pkgs/development/libraries/libtheora/default.nix index da590adae062..129dface2d93 100644 --- a/pkgs/development/libraries/libtheora/default.nix +++ b/pkgs/development/libraries/libtheora/default.nix @@ -8,6 +8,9 @@ stdenv.mkDerivation rec { sha256 = "0swiaj8987n995rc7hw0asvpwhhzpjiws8kr3s6r44bqqib2k5a0"; }; + outputs = [ "dev" "out" "docdev" ]; + outputDoc = "docdev"; + nativeBuildInputs = [ pkgconfig ]; propagatedBuildInputs = [ libogg libvorbis ]; diff --git a/pkgs/development/libraries/libtiff/default.nix b/pkgs/development/libraries/libtiff/default.nix index 2c559d221abe..a506279c2a4a 100644 --- a/pkgs/development/libraries/libtiff/default.nix +++ b/pkgs/development/libraries/libtiff/default.nix @@ -14,7 +14,7 @@ stdenv.mkDerivation rec { sha256 = "136nf1rj9dp5jgv1p7z4dk0xy3wki1w0vfjbk82f645m0w4samsd"; }; - outputs = [ "out" "doc" "man" ]; + outputs = [ "dev" "out" "bin" "doc" ]; nativeBuildInputs = [ pkgconfig ]; diff --git a/pkgs/development/libraries/libtoxcore/new-api/default.nix b/pkgs/development/libraries/libtoxcore/new-api/default.nix index 9702fbd02da3..eff8e2449a13 100644 --- a/pkgs/development/libraries/libtoxcore/new-api/default.nix +++ b/pkgs/development/libraries/libtoxcore/new-api/default.nix @@ -23,8 +23,8 @@ stdenv.mkDerivation rec { ''; configureFlags = [ - "--with-libsodium-headers=${libsodium}/include" - "--with-libsodium-libs=${libsodium}/lib" + "--with-libsodium-headers=${libsodium.dev}/include" + "--with-libsodium-libs=${libsodium.out}/lib" "--enable-ntox" "--enable-daemon" ]; diff --git a/pkgs/development/libraries/libtoxcore/old-api/default.nix b/pkgs/development/libraries/libtoxcore/old-api/default.nix index 471fafdad38b..2fb5e93eab95 100644 --- a/pkgs/development/libraries/libtoxcore/old-api/default.nix +++ b/pkgs/development/libraries/libtoxcore/old-api/default.nix @@ -27,8 +27,8 @@ stdenv.mkDerivation rec { ''; configureFlags = [ - "--with-libsodium-headers=${libsodium}/include" - "--with-libsodium-libs=${libsodium}/lib" + "--with-libsodium-headers=${libsodium.dev}/include" + "--with-libsodium-libs=${libsodium.out}/lib" "--enable-ntox" "--enable-daemon" ]; diff --git a/pkgs/development/libraries/libuchardet/default.nix b/pkgs/development/libraries/libuchardet/default.nix index 86428e08c475..4b81152a4329 100644 --- a/pkgs/development/libraries/libuchardet/default.nix +++ b/pkgs/development/libraries/libuchardet/default.nix @@ -3,13 +3,13 @@ stdenv.mkDerivation rec { name = "libuchardet-${version}"; - version = "0.0.1"; + version = "0.0.5"; src = fetchFromGitHub { owner = "BYVoid"; repo = "uchardet"; - rev = "69b7133995e4ee260b093323c57a7f8c6c6803b8"; - sha256 = "0yqrc9a7wxsh2fvigjppjp55v4r1q8p40yh048xsvl3kly2rkqy9"; + rev = "v${version}"; + sha256 = "0rkym5bhq3hn7623fy0fggw0qaghha71k8bi41ywqd2lchpahrrm"; }; buildInputs = [ cmake ]; diff --git a/pkgs/development/libraries/libunwind/default.nix b/pkgs/development/libraries/libunwind/default.nix index 3fc8b5085590..da09e2fcbe25 100644 --- a/pkgs/development/libraries/libunwind/default.nix +++ b/pkgs/development/libraries/libunwind/default.nix @@ -20,6 +20,8 @@ stdenv.mkDerivation rec { sed -i -e '/LIBLZMA/s:-lzma:-llzma:' configure ''; + outputs = [ "dev" "out" ]; + propagatedBuildInputs = [ xz ]; NIX_CFLAGS_COMPILE = if stdenv.system == "x86_64-linux" then "-fPIC" else ""; @@ -30,7 +32,7 @@ stdenv.mkDerivation rec { postInstall = '' find $out -name \*.la | while read file; do - sed -i 's,-llzma,${xz}/lib/liblzma.la,' $file + sed -i 's,-llzma,${xz.out}/lib/liblzma.la,' $file done ''; diff --git a/pkgs/development/libraries/libusb/default.nix b/pkgs/development/libraries/libusb/default.nix index 7aec64d596fc..b1872779b707 100644 --- a/pkgs/development/libraries/libusb/default.nix +++ b/pkgs/development/libraries/libusb/default.nix @@ -3,6 +3,9 @@ stdenv.mkDerivation { name = "libusb-compat-0.1.5"; + outputs = [ "dev" "out" ]; # get rid of propagating systemd closure + outputBin = "dev"; + nativeBuildInputs = [ pkgconfig ]; propagatedBuildInputs = [ libusb1 ]; diff --git a/pkgs/development/libraries/libusb1/default.nix b/pkgs/development/libraries/libusb1/default.nix index 75d6bdb4cc6a..fe920bba411f 100644 --- a/pkgs/development/libraries/libusb1/default.nix +++ b/pkgs/development/libraries/libusb1/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, pkgconfig, udev ? null, libobjc, IOKit }: +{ stdenv, fetchurl, pkgconfig, libudev ? null, libobjc, IOKit }: stdenv.mkDerivation rec { name = "libusb-1.0.19"; @@ -8,15 +8,17 @@ stdenv.mkDerivation rec { sha256 = "0h38p9rxfpg9vkrbyb120i1diq57qcln82h5fr7hvy82c20jql3c"; }; + outputs = [ "dev" "out" ]; # get rid of propagating systemd closure + buildInputs = [ pkgconfig ]; propagatedBuildInputs = - stdenv.lib.optional stdenv.isLinux udev ++ + stdenv.lib.optional stdenv.isLinux libudev ++ stdenv.lib.optionals stdenv.isDarwin [ libobjc IOKit ]; NIX_LDFLAGS = stdenv.lib.optionalString stdenv.isLinux "-lgcc_s"; preFixup = stdenv.lib.optionalString stdenv.isLinux '' - sed 's,-ludev,-L${udev}/lib -ludev,' -i $out/lib/libusb-1.0.la + sed 's,-ludev,-L${libudev.out}/lib -ludev,' -i $out/lib/libusb-1.0.la ''; meta = { diff --git a/pkgs/development/libraries/libva/default.nix b/pkgs/development/libraries/libva/default.nix index 557d0f591553..9e22aa1d37cf 100644 --- a/pkgs/development/libraries/libva/default.nix +++ b/pkgs/development/libraries/libva/default.nix @@ -1,10 +1,9 @@ { stdenv, lib, fetchurl, libX11, pkgconfig, libXext, libdrm, libXfixes, wayland, libffi -, mesa_noglu ? null +, mesa_noglu +, minimal ? true, libva }: -let - withMesa = mesa_noglu != null; -in stdenv.mkDerivation rec { +stdenv.mkDerivation rec { name = "libva-1.6.2"; src = fetchurl { @@ -12,9 +11,15 @@ in stdenv.mkDerivation rec { sha256 = "1l4bij21shqbfllbxicmqgmay4v509v9hpxyyia9wm7gvsfg05y4"; }; - buildInputs = [ libX11 libXext pkgconfig libdrm libXfixes wayland libffi mesa_noglu ]; + outputs = [ "dev" "out" "bin" ]; - configureFlags = lib.optionals withMesa [ + nativeBuildInputs = [ pkgconfig ]; + + buildInputs = [ libdrm ] + ++ lib.optionals (!minimal) [ libva libX11 libXext libXfixes wayland libffi mesa_noglu ]; + # TODO: share libs between minimal and !minimal - perhaps just symlink them + + configureFlags = lib.optionals (!minimal) [ "--with-drivers-path=${mesa_noglu.driverLink}/lib/dri" "--enable-glx" ]; diff --git a/pkgs/development/libraries/libvdpau/default.nix b/pkgs/development/libraries/libvdpau/default.nix index 446f2917fe71..3337a89dd1ce 100644 --- a/pkgs/development/libraries/libvdpau/default.nix +++ b/pkgs/development/libraries/libvdpau/default.nix @@ -8,6 +8,8 @@ stdenv.mkDerivation rec { sha256 = "857a01932609225b9a3a5bf222b85e39b55c08787d0ad427dbd9ec033d58d736"; }; + outputs = [ "dev" "out" ]; + buildInputs = with xorg; [ pkgconfig dri2proto libXext ]; propagatedBuildInputs = [ xorg.libX11 ]; diff --git a/pkgs/development/libraries/libvirt/default.nix b/pkgs/development/libraries/libvirt/default.nix index 343f3b757e33..1d1945af3194 100644 --- a/pkgs/development/libraries/libvirt/default.nix +++ b/pkgs/development/libraries/libvirt/default.nix @@ -1,7 +1,7 @@ { stdenv, fetchurl, fetchpatch , pkgconfig, makeWrapper , libxml2, gnutls, devicemapper, perl, python -, iproute, iptables, readline, lvm2, utillinux, udev, libpciaccess, gettext +, iproute, iptables, readline, lvm2, utillinux, systemd, libpciaccess, gettext , libtasn1, ebtables, libgcrypt, yajl, pmutils, libcap_ng , dnsmasq, libnl, libpcap, libxslt, xhtml1, numad, numactl, perlPackages , curl, libiconv, gmp, xen @@ -9,11 +9,11 @@ stdenv.mkDerivation rec { name = "libvirt-${version}"; - version = "1.3.2"; + version = "1.3.3"; src = fetchurl { url = "http://libvirt.org/sources/${name}.tar.gz"; - sha256 = "01fg9jbifndwc3jzzizsisvz98q325xarczgf6rn11hphckgrip3"; + sha256 = "13w56fhspf7ygr3v0jhh44g25xbcx5vmrprzcy9cajsppa6knq4r"; }; patches = [ ./build-on-bsd.patch ]; @@ -24,14 +24,14 @@ stdenv.mkDerivation rec { gettext libtasn1 libgcrypt yajl libxslt xhtml1 perlPackages.XMLXPath curl libpcap ] ++ stdenv.lib.optionals stdenv.isLinux [ - libpciaccess devicemapper lvm2 utillinux udev libcap_ng + libpciaccess devicemapper lvm2 utillinux systemd.udev.lib libcap_ng libnl numad numactl xen ] ++ stdenv.lib.optionals stdenv.isDarwin [ libiconv gmp ]; preConfigure = stdenv.lib.optionalString stdenv.isLinux '' - PATH=${iproute}/sbin:${iptables}/sbin:${ebtables}/sbin:${lvm2}/sbin:${udev}/sbin:$PATH + PATH=${iproute}/sbin:${iptables}/sbin:${ebtables}/sbin:${lvm2}/sbin:${systemd.udev.bin}/bin:$PATH substituteInPlace configure --replace 'as_dummy="/bin:/usr/bin:/usr/sbin"' 'as_dummy="${numad}/bin"' '' + '' PATH=${dnsmasq}/bin:$PATH diff --git a/pkgs/development/libraries/libvorbis/default.nix b/pkgs/development/libraries/libvorbis/default.nix index 68f1fe720856..0022799c88fe 100644 --- a/pkgs/development/libraries/libvorbis/default.nix +++ b/pkgs/development/libraries/libvorbis/default.nix @@ -8,7 +8,8 @@ stdenv.mkDerivation rec { sha256 = "1lg1n3a6r41492r7in0fpvzc7909mc5ir9z0gd3qh2pz4yalmyal"; }; - outputs = [ "out" "doc" ]; + outputs = [ "dev" "out" "doc" ]; + nativeBuildInputs = [ pkgconfig ]; propagatedBuildInputs = [ libogg ]; diff --git a/pkgs/development/libraries/libvpx/default.nix b/pkgs/development/libraries/libvpx/default.nix index 6a4756670786..5c593dd1f75e 100644 --- a/pkgs/development/libraries/libvpx/default.nix +++ b/pkgs/development/libraries/libvpx/default.nix @@ -72,6 +72,9 @@ stdenv.mkDerivation rec { patchPhase = ''patchShebangs .''; + outputs = [ "dev" "out" "bin" ]; + setOutputFlags = false; + configureFlags = [ (enableFeature (vp8EncoderSupport || vp8DecoderSupport) "vp8") (enableFeature vp8EncoderSupport "vp8-encoder") @@ -146,6 +149,8 @@ stdenv.mkDerivation rec { enableParallelBuilding = true; + postInstall = ''moveToOutput bin "$bin" ''; + crossAttrs = let isCygwin = stdenv.cross.libc == "msvcrt"; isDarwin = stdenv.cross.libc == "libSystem"; diff --git a/pkgs/development/libraries/libvpx/git.nix b/pkgs/development/libraries/libvpx/git.nix index 31b1c197e9ff..064fb807a214 100644 --- a/pkgs/development/libraries/libvpx/git.nix +++ b/pkgs/development/libraries/libvpx/git.nix @@ -73,6 +73,9 @@ stdenv.mkDerivation rec { patchPhase = ''patchShebangs .''; + outputs = [ "dev" "out" "bin" ]; + setOutputFlags = false; + configureFlags = [ (enableFeature (vp8EncoderSupport || vp8DecoderSupport) "vp8") (enableFeature vp8EncoderSupport "vp8-encoder") @@ -147,6 +150,8 @@ stdenv.mkDerivation rec { enableParallelBuilding = true; + postInstall = ''moveToOutput bin "$bin" ''; + crossAttrs = let isCygwin = stdenv.cross.libc == "msvcrt"; isDarwin = stdenv.cross.libc == "libSystem"; diff --git a/pkgs/development/libraries/libwnck/3.x.nix b/pkgs/development/libraries/libwnck/3.x.nix index 6c6c0812c43c..a763af96667b 100644 --- a/pkgs/development/libraries/libwnck/3.x.nix +++ b/pkgs/development/libraries/libwnck/3.x.nix @@ -8,6 +8,9 @@ stdenv.mkDerivation { sha256 = "d48ac9c7f50c0d563097f63d07bcc83744c7d92a1b4ef65e5faeab32b5ccb723"; }; + outputs = [ "dev" "out" "docdev" ]; + outputBin = "dev"; + patches = [ ./install_introspection_to_prefix.patch ]; buildInputs = [ pkgconfig intltool ]; diff --git a/pkgs/development/libraries/libwnck/default.nix b/pkgs/development/libraries/libwnck/default.nix index 6a4479bdda38..bb5258120494 100644 --- a/pkgs/development/libraries/libwnck/default.nix +++ b/pkgs/development/libraries/libwnck/default.nix @@ -12,6 +12,9 @@ stdenv.mkDerivation rec { sha256 = "17isfjvrzgj5znld2a7zsk9vd39q9wnsysnw5jr8iz410z935xw3"; }; + outputs = [ "dev" "out" "docdev" ]; + outputBin = "dev"; + buildInputs = [ pkgconfig gtk intltool xorg.libX11 xorg.libXres ]; # ?another optional: startup-notification diff --git a/pkgs/development/libraries/libxkbcommon/default.nix b/pkgs/development/libraries/libxkbcommon/default.nix index ea74bea152c2..2bf7bbaabb31 100644 --- a/pkgs/development/libraries/libxkbcommon/default.nix +++ b/pkgs/development/libraries/libxkbcommon/default.nix @@ -8,6 +8,8 @@ stdenv.mkDerivation rec { sha256 = "176ii5dn2wh74q48sd8ac37ljlvgvp5f506glr96z6ibfhj7igch"; }; + outputs = [ "dev" "out" ]; + buildInputs = [ pkgconfig yacc flex xkeyboard_config libxcb ]; configureFlags = '' diff --git a/pkgs/development/libraries/libxklavier/default.nix b/pkgs/development/libraries/libxklavier/default.nix index d69276a070bb..f074b31bb682 100644 --- a/pkgs/development/libraries/libxklavier/default.nix +++ b/pkgs/development/libraries/libxklavier/default.nix @@ -12,6 +12,8 @@ stdenv.mkDerivation rec { sha256 = "016lpdv35z0qsw1cprdc2k5qzkdi5waj6qmr0a2q6ljn9g2kpv7b"; }; + outputs = [ "dev" "out" "docdev" ]; + # TODO: enable xmodmap support, needs xmodmap DB propagatedBuildInputs = with xorg; [ libX11 libXi xkeyboard_config libxml2 libICE glib libxkbfile isocodes ]; diff --git a/pkgs/development/libraries/libxml2/default.nix b/pkgs/development/libraries/libxml2/default.nix index cac8f10d37aa..f7e175373e12 100644 --- a/pkgs/development/libraries/libxml2/default.nix +++ b/pkgs/development/libraries/libxml2/default.nix @@ -1,10 +1,6 @@ -{ stdenv, fetchurl, zlib, xz, python ? null, pythonSupport ? true, findXMLCatalogs }: +{ stdenv, fetchurl, zlib, xz, python, findXMLCatalogs }: -assert pythonSupport -> python != null; - -#TODO: share most stuff between python and non-python builds, perhaps via multiple-output - -stdenv.mkDerivation (rec { +stdenv.mkDerivation rec { name = "libxml2-${version}"; version = "2.9.3"; @@ -13,9 +9,10 @@ stdenv.mkDerivation (rec { sha256 = "0bd17g6znn2r98gzpjppsqjg33iraky4px923j3k8kdl8qgy7sad"; }; - outputs = [ "out" "doc" ]; + outputs = [ "dev" "out" "bin" "doc" "py" ]; + propagatedBuildOutputs = "out bin py"; - buildInputs = stdenv.lib.optional pythonSupport python + buildInputs = [ python ] # Libxml2 has an optional dependency on liblzma. However, on impure # platforms, it may end up using that from /usr/lib, and thus lack a # RUNPATH for that, leading to undefined references for its users. @@ -23,10 +20,21 @@ stdenv.mkDerivation (rec { propagatedBuildInputs = [ zlib findXMLCatalogs ]; - passthru = { inherit pythonSupport version; }; + configureFlags = "--with-python=${python}"; enableParallelBuilding = true; + preInstall = ''substituteInPlace python/libxml2mod.la --replace "${python}" "$py"''; + installFlags = ''pythondir="$(py)/lib/${python.libPrefix}/site-packages"''; + + postFixup = '' + moveToOutput bin/xml2-config "$dev" + moveToOutput lib/xml2Conf.sh "$dev" + moveToOutput share/man/man1 "$bin" + ''; + + passthru = { inherit version; pythonSupport = true; }; + meta = { homepage = http://xmlsoft.org/; description = "An XML parsing library for C"; @@ -34,14 +42,4 @@ stdenv.mkDerivation (rec { platforms = stdenv.lib.platforms.unix; maintainers = [ stdenv.lib.maintainers.eelco ]; }; - -} // stdenv.lib.optionalAttrs pythonSupport { - configureFlags = "--with-python=${python}"; - - # this is a pair of ugly hacks to make python stuff install into the right place - preInstall = ''substituteInPlace python/libxml2mod.la --replace "${python}" "$out"''; - installFlags = ''pythondir="$(out)/lib/${python.libPrefix}/site-packages"''; - -} // stdenv.lib.optionalAttrs (!pythonSupport) { - configureFlags = "--with-python=no"; # otherwise build impurity bites us -}) +} diff --git a/pkgs/development/libraries/libxslt/default.nix b/pkgs/development/libraries/libxslt/default.nix index 9aa70ea04716..0eda42879ece 100644 --- a/pkgs/development/libraries/libxslt/default.nix +++ b/pkgs/development/libraries/libxslt/default.nix @@ -17,14 +17,13 @@ stdenv.mkDerivation rec { }) ]; - outputs = [ "out" "doc" ]; + outputs = [ "dev" "out" "bin" "doc" ]; buildInputs = [ libxml2 ]; propagatedBuildInputs = [ findXMLCatalogs ]; configureFlags = [ - "--with-libxml-prefix=${libxml2}" "--without-python" "--without-crypto" "--without-debug" @@ -32,11 +31,17 @@ stdenv.mkDerivation rec { "--without-debugger" ]; - meta = { + postFixup = '' + moveToOutput bin/xslt-config "$dev" + moveToOutput lib/xsltConf.sh "$dev" + moveToOutput share/man/man1 "$bin" + ''; + + meta = with stdenv.lib; { homepage = http://xmlsoft.org/XSLT/; description = "A C library and tools to do XSL transformations"; license = "bsd"; - platforms = stdenv.lib.platforms.unix; - maintainers = [ stdenv.lib.maintainers.eelco ]; + platforms = platforms.unix; + maintainers = [ maintainers.eelco ]; }; } diff --git a/pkgs/development/libraries/mailcore2/default.nix b/pkgs/development/libraries/mailcore2/default.nix index de82bd0243e9..f535b19bd0eb 100644 --- a/pkgs/development/libraries/mailcore2/default.nix +++ b/pkgs/development/libraries/mailcore2/default.nix @@ -23,9 +23,10 @@ stdenv.mkDerivation rec { substituteInPlace CMakeLists.txt \ --replace "tidy/tidy.h" "tidy.h" \ --replace "/usr/include/tidy" "${libtidy}/include" \ - --replace "/usr/include/libxml2" "${libxml2}/include/libxml2" + --replace "/usr/include/libxml2" "${libxml2.dev}/include/libxml2" substituteInPlace src/core/basetypes/MCHTMLCleaner.cpp \ --replace buffio.h tidybuffio.h +>>>>>>> master ''; cmakeFlags = [ diff --git a/pkgs/development/libraries/mesa/default.nix b/pkgs/development/libraries/mesa/default.nix index 1c2257998e86..ad6bf8ba3190 100644 --- a/pkgs/development/libraries/mesa/default.nix +++ b/pkgs/development/libraries/mesa/default.nix @@ -1,6 +1,5 @@ -{ stdenv, fetchurl, fetchpatch, pkgconfig, intltool, flex, bison, autoreconfHook, substituteAll -, python, libxml2Python, file, expat, makedepend, pythonPackages -, libdrm, xorg, wayland, udev, llvmPackages, libffi, libomxil-bellagio +{ stdenv, fetchurl, fetchpatch, pkgconfig, intltool, autoreconfHook, substituteAll +, file, expat, libdrm, xorg, wayland, libudev, llvmPackages, libffi, libomxil-bellagio , libvdpau, libelf, libva , grsecEnabled , enableTextureFloats ? false # Texture floats are patented, see docs/patents.txt @@ -21,12 +20,13 @@ else - libOSMesa is in $osmesa (~4 MB) */ +with { inherit (stdenv.lib) optional optionalString; }; + let version = "11.1.2"; # this is the default search path for DRI drivers - driverLink = "/run/opengl-driver" + stdenv.lib.optionalString stdenv.isi686 "-32"; + driverLink = "/run/opengl-driver" + optionalString stdenv.isi686 "-32"; in -with { inherit (stdenv.lib) optional optionals optionalString; }; stdenv.mkDerivation { name = "mesa-noglu-${version}"; @@ -50,7 +50,7 @@ stdenv.mkDerivation { ] ++ optional stdenv.isLinux (substituteAll { src = ./dlopen-absolute-paths.diff; - inherit udev; + libudev = libudev.out; }); postPatch = '' @@ -58,7 +58,7 @@ stdenv.mkDerivation { --replace _EGL_DRIVER_SEARCH_DIR '"${driverLink}"' ''; - outputs = ["out" "drivers" "osmesa"]; + outputs = [ "dev" "out" "drivers" "osmesa" ]; configureFlags = [ "--sysconfdir=/etc" @@ -103,17 +103,17 @@ stdenv.mkDerivation { ] ++ optional enableTextureFloats "--enable-texture-float" ++ optional grsecEnabled "--enable-glx-rts"; # slight performance degradation, enable only for grsec - nativeBuildInputs = [ pkgconfig python makedepend file flex bison pythonPackages.Mako ]; + nativeBuildInputs = [ pkgconfig file ]; propagatedBuildInputs = with xorg; [ libXdamage libXxf86vm ] - ++ optionals stdenv.isLinux [ libdrm ]; + ++ optional stdenv.isLinux libdrm; buildInputs = with xorg; [ - autoreconfHook intltool expat libxml2Python llvmPackages.llvm + autoreconfHook intltool expat llvmPackages.llvm glproto dri2proto dri3proto presentproto libX11 libXext libxcb libXt libXfixes libxshmfence libffi wayland libvdpau libelf libXvMC /* libomxil-bellagio libva */ - ] ++ optional stdenv.isLinux udev; + ] ++ optional stdenv.isLinux libudev; enableParallelBuilding = true; doCheck = false; @@ -133,41 +133,42 @@ stdenv.mkDerivation { $out/lib/vdpau \ $out/lib/libxatracker* - mkdir -p {$osmesa,$drivers}/lib/pkgconfig + mkdir -p {$osmesa,$drivers}/lib/ mv -t $osmesa/lib/ \ $out/lib/libOSMesa* - mv -t $drivers/lib/pkgconfig/ \ - $out/lib/pkgconfig/xatracker.pc - - mv -t $osmesa/lib/pkgconfig/ \ - $out/lib/pkgconfig/osmesa.pc - '' + /* now fix references in .la files */ '' sed "/^libdir=/s,$out,$osmesa," -i \ $osmesa/lib/libOSMesa*.la - '' + /* work around bug #529, but maybe $drivers should also be patchelf-ed */ '' - find $drivers/ $osmesa/ -type f -executable -print0 | xargs -0 strip -S || true + '' + /* set the default search path for DRI drivers; used e.g. by X server */ '' + substituteInPlace "$dev/lib/pkgconfig/dri.pc" --replace '$(drivers)' "${driverLink}" + '' + /* move vdpau drivers to $drivers/lib, so they are found */ '' + mv "$drivers"/lib/vdpau/* "$drivers"/lib/ && rmdir "$drivers"/lib/vdpau + ''; + #ToDo: @vcunat isn't sure if drirc will be found when in $out/etc/, but it doesn't seem important ATM */ - '' + /* add RPATH so the drivers can find the moved libgallium and libdricore9 */ '' + postFixup = + # add RPATH so the drivers can find the moved libgallium and libdricore9 + # moved here to avoid problems with stripping patchelfed files + '' for lib in $drivers/lib/*.so* $drivers/lib/*/*.so*; do if [[ ! -L "$lib" ]]; then patchelf --set-rpath "$(patchelf --print-rpath $lib):$drivers/lib" "$lib" fi done - '' + /* set the default search path for DRI drivers; used e.g. by X server */ '' - substituteInPlace "$out/lib/pkgconfig/dri.pc" --replace '$(drivers)' "${driverLink}" ''; - #ToDo: @vcunat isn't sure if drirc will be found when in $out/etc/, but it doesn't seem important ATM + # ToDo + /* check $out doesn't depend on llvm */ '' + # builder failures are ignored for some reason + # grep -qv '${llvmPackages.llvm}' -R "$out" passthru = { inherit libdrm version driverLink; }; - meta = { + meta = with stdenv.lib; { description = "An open source implementation of OpenGL"; homepage = http://www.mesa3d.org/; - license = "bsd"; - platforms = stdenv.lib.platforms.mesaPlatforms; - maintainers = with stdenv.lib.maintainers; [ eduarrrd simons vcunat ]; + license = licenses.mit; # X11 variant, in most files + platforms = platforms.mesaPlatforms; + maintainers = with maintainers; [ eduarrrd simons vcunat ]; }; } diff --git a/pkgs/development/libraries/mesa/dlopen-absolute-paths.diff b/pkgs/development/libraries/mesa/dlopen-absolute-paths.diff index a4bb6a72b138..9a5226572239 100644 --- a/pkgs/development/libraries/mesa/dlopen-absolute-paths.diff +++ b/pkgs/development/libraries/mesa/dlopen-absolute-paths.diff @@ -16,7 +16,7 @@ index 4fdf3c2..69ea22d 100644 do { for (version = 1; version >= 0; version--) { - snprintf(name, sizeof(name), "libudev.so.%d", version); -+ snprintf(name, sizeof(name), "@udev@/lib/libudev.so.%d", version); ++ snprintf(name, sizeof(name), "@libudev@/lib/libudev.so.%d", version); udev_handle = dlopen(name, flags); if (udev_handle) return udev_handle; diff --git a/pkgs/development/libraries/mpfr/default.nix b/pkgs/development/libraries/mpfr/default.nix index 581f956b0afd..8a964af01c80 100644 --- a/pkgs/development/libraries/mpfr/default.nix +++ b/pkgs/development/libraries/mpfr/default.nix @@ -10,6 +10,8 @@ stdenv.mkDerivation rec { patches = [ ./upstream.patch ]; + outputs = [ "dev" "out" "doc" ]; + # mpfr.h requires gmp.h propagatedBuildInputs = [ gmp ]; diff --git a/pkgs/development/libraries/mygui/default.nix b/pkgs/development/libraries/mygui/default.nix index 2fa62ced2d5b..6e4b3e6a862a 100644 --- a/pkgs/development/libraries/mygui/default.nix +++ b/pkgs/development/libraries/mygui/default.nix @@ -1,9 +1,12 @@ -{stdenv, fetchFromGitHub, libX11, unzip, ogre, cmake, ois, freetype, libuuid, boost, pkgconfig}: +{ stdenv, fetchFromGitHub, libX11, unzip, cmake, ois, freetype, libuuid, + boost, pkgconfig, withOgre ? false, ogre ? null, mesa ? null } : -stdenv.mkDerivation rec { +let + renderSystem = if withOgre then "3" else "4"; +in stdenv.mkDerivation rec { name = "mygui-${version}"; version = "3.2.2"; - + src = fetchFromGitHub { owner = "MyGUI"; repo = "mygui"; @@ -13,11 +16,15 @@ stdenv.mkDerivation rec { enableParallelBuilding = true; - buildInputs = [ libX11 unzip ogre cmake ois freetype libuuid boost pkgconfig ]; + buildInputs = [ libX11 unzip cmake ois freetype libuuid boost pkgconfig (if withOgre then ogre else mesa) ]; + + # Tools are disabled due to compilation failures. + cmakeFlags = [ "-DMYGUI_BUILD_TOOLS=OFF" "-DMYGUI_BUILD_DEMOS=OFF" "-DMYGUI_RENDERSYSTEM=${renderSystem}" ]; - meta = { + meta = with stdenv.lib; { homepage = http://mygui.info/; description = "Library for creating GUIs for games and 3D applications"; - license = stdenv.lib.licenses.lgpl3Plus; + license = licenses.lgpl3Plus; + platforms = platforms.linux; }; } diff --git a/pkgs/development/libraries/ncurses/default.nix b/pkgs/development/libraries/ncurses/default.nix index 8817e2c5523b..edd263605960 100644 --- a/pkgs/development/libraries/ncurses/default.nix +++ b/pkgs/development/libraries/ncurses/default.nix @@ -20,6 +20,9 @@ stdenv.mkDerivation rec { # gcc-5.patch should be removed after 5.9 patches = [ ./clang.patch ./gcc-5.patch ]; + outputs = [ "dev" "out" "man" ]; + setOutputFlags = false; # some aren't supported + configureFlags = [ "--with-shared" "--without-debug" @@ -33,9 +36,15 @@ stdenv.mkDerivation rec { buildInputs = lib.optional (mouseSupport && stdenv.isLinux) gpm; preConfigure = '' - configureFlagsArray+=("--includedir=$out/include") - export PKG_CONFIG_LIBDIR="$out/lib/pkgconfig" + export PKG_CONFIG_LIBDIR="$dev/lib/pkgconfig" mkdir -p "$PKG_CONFIG_LIBDIR" + configureFlagsArray+=( + "--libdir=$out/lib" + "--includedir=$dev/include" + "--bindir=$dev/bin" + "--mandir=$man/share/man" + "--with-pkg-config-libdir=$PKG_CONFIG_LIBDIR" + ) '' + lib.optionalString stdenv.isSunOS '' sed -i -e '/-D__EXTENSIONS__/ s/-D_XOPEN_SOURCE=\$cf_XOPEN_SOURCE//' \ @@ -55,44 +64,52 @@ stdenv.mkDerivation rec { # When building a wide-character (Unicode) build, create backward # compatibility links from the the "normal" libraries to the # wide-character libraries (e.g. libncurses.so to libncursesw.so). - postInstall = '' + postFixup = '' # Determine what suffixes our libraries have suffix="$(awk -F': ' 'f{print $3; f=0} /default library suffix/{f=1}' config.log)" - libs="$(ls $out/lib/pkgconfig | tr ' ' '\n' | sed "s,\(.*\)$suffix\.pc,\1,g")" + libs="$(ls $dev/lib/pkgconfig | tr ' ' '\n' | sed "s,\(.*\)$suffix\.pc,\1,g")" suffixes="$(echo "$suffix" | awk '{for (i=1; i < length($0); i++) {x=substr($0, i+1, length($0)-i); print x}}')" # Get the path to the config util - cfg=$(basename $out/bin/ncurses*-config) + cfg=$(basename $dev/bin/ncurses*-config) # symlink the full suffixed include directory - ln -svf . $out/include/ncurses$suffix + ln -svf . $dev/include/ncurses$suffix for newsuffix in $suffixes ""; do # Create a non-abi versioned config util links - ln -svf $cfg $out/bin/ncurses$newsuffix-config + ln -svf $cfg $dev/bin/ncurses$newsuffix-config # Allow for end users who #include <ncurses?w/*.h> - ln -svf . $out/include/ncurses$newsuffix + ln -svf . $dev/include/ncurses$newsuffix - for lib in $libs; do + for library in $libs; do for dylibtype in so dll dylib; do - if [ -e "$out/lib/lib''${lib}$suffix.$dylibtype" ]; then - ln -svf lib''${lib}$suffix.$dylibtype $out/lib/lib$lib$newsuffix.$dylibtype - ln -svf lib''${lib}$suffix.$dylibtype.${abiVersion} $out/lib/lib$lib$newsuffix.$dylibtype.${abiVersion} + if [ -e "$out/lib/lib''${library}$suffix.$dylibtype" ]; then + ln -svf lib''${library}$suffix.$dylibtype $out/lib/lib$library$newsuffix.$dylibtype + ln -svf lib''${library}$suffix.$dylibtype.${abiVersion} $out/lib/lib$library$newsuffix.$dylibtype.${abiVersion} fi done for statictype in a dll.a la; do - if [ -e "$out/lib/lib''${lib}$suffix.$statictype" ]; then - ln -svf lib''${lib}$suffix.$statictype $out/lib/lib$lib$newsuffix.$statictype + if [ -e "$out/lib/lib''${library}$suffix.$statictype" ]; then + ln -svf lib''${library}$suffix.$statictype $out/lib/lib$library$newsuffix.$statictype fi done - ln -svf ''${lib}$suffix.pc $out/lib/pkgconfig/$lib$newsuffix.pc + ln -svf ''${library}$suffix.pc $dev/lib/pkgconfig/$library$newsuffix.pc done done + + # move some utilities to $bin + # these programs are used at runtime and don't really belong in $dev + moveToOutput "bin/clear" "$out" + moveToOutput "bin/reset" "$out" + moveToOutput "bin/tabs" "$out" + moveToOutput "bin/tput" "$out" + moveToOutput "bin/tset" "$out" ''; preFixup = '' - rm $out/lib/*.a + rm "$out"/lib/*.a ''; meta = { diff --git a/pkgs/development/libraries/nettle/generic.nix b/pkgs/development/libraries/nettle/generic.nix index 3c439eb404cc..1bfb739712f4 100644 --- a/pkgs/development/libraries/nettle/generic.nix +++ b/pkgs/development/libraries/nettle/generic.nix @@ -9,6 +9,9 @@ stdenv.mkDerivation (rec { inherit src; + outputs = [ "dev" "out" ]; + outputBin = "dev"; + buildInputs = [ gnum4 ]; propagatedBuildInputs = [ gmp ]; @@ -61,5 +64,5 @@ stdenv.lib.optionalAttrs stdenv.isSunOS { # /usr/include/mp.h from OpenSolaris. See # <https://lists.gnu.org/archive/html/hydra-users/2012-08/msg00000.html> # for details. - configureFlags = [ "--with-include-path=${gmp}/include" ]; + configureFlags = [ "--with-include-path=${gmp.dev}/include" ]; }) diff --git a/pkgs/development/libraries/newt/default.nix b/pkgs/development/libraries/newt/default.nix index f5f72c006c73..8a4b793cad79 100644 --- a/pkgs/development/libraries/newt/default.nix +++ b/pkgs/development/libraries/newt/default.nix @@ -14,16 +14,18 @@ stdenv.mkDerivation rec { buildInputs = [ slang popt ]; + NIX_LDFLAGS = "-lncurses"; + crossAttrs = { makeFlags = "CROSS_COMPILE=${stdenv.cross.config}-"; }; - meta = { + meta = with stdenv.lib; { homepage = https://fedorahosted.org/newt/; description = "Library for color text mode, widget based user interfaces"; - license = stdenv.lib.licenses.lgpl2; - platforms = stdenv.lib.platforms.linux; - maintainers = [ stdenv.lib.maintainers.viric ]; + license = licenses.lgpl2; + platforms = platforms.linux; + maintainers = [ maintainers.viric ]; }; } diff --git a/pkgs/development/libraries/nspr/default.nix b/pkgs/development/libraries/nspr/default.nix index 230c22258e2e..726b5d7b29af 100644 --- a/pkgs/development/libraries/nspr/default.nix +++ b/pkgs/development/libraries/nspr/default.nix @@ -10,6 +10,9 @@ stdenv.mkDerivation { sha256 = "1pk98bmc5xzbl62q5wf2d6mryf0v95z6rsmxz27nclwiaqg0mcg0"; }; + outputs = [ "dev" "out" ]; + outputBin = "dev"; + preConfigure = '' cd nspr ''; @@ -21,6 +24,7 @@ stdenv.mkDerivation { postInstall = '' find $out -name "*.a" -delete + moveToOutput share "$dev" # just aclocal ''; enableParallelBuilding = true; diff --git a/pkgs/development/libraries/nss/default.nix b/pkgs/development/libraries/nss/default.nix index e8be72999527..fc5bffe6b740 100644 --- a/pkgs/development/libraries/nss/default.nix +++ b/pkgs/development/libraries/nss/default.nix @@ -1,6 +1,4 @@ -{ stdenv, fetchurl, nspr, perl, zlib, sqlite -, includeTools ? false -}: +{ stdenv, fetchurl, nspr, perl, zlib, sqlite }: let @@ -46,15 +44,18 @@ in stdenv.mkDerivation rec { INSTALL_TARGET ''; + outputs = [ "dev" "out" "tools" ]; + preConfigure = "cd nss"; makeFlags = [ - "NSPR_INCLUDE_DIR=${nspr}/include/nspr" - "NSPR_LIB_DIR=${nspr}/lib" + "NSPR_INCLUDE_DIR=${nspr.dev}/include/nspr" + "NSPR_LIB_DIR=${nspr.out}/lib" "NSDISTMODE=copy" "BUILD_OPT=1" "SOURCE_PREFIX=\$(out)" "NSS_ENABLE_ECC=1" + "USE_SYSTEM_ZLIB=1" "NSS_USE_SYSTEM_SQLITE=1" ] ++ stdenv.lib.optional stdenv.is64bit "USE_64=1"; @@ -77,8 +78,11 @@ in stdenv.mkDerivation rec { libfile="$out/lib/lib$libname.so" LD_LIBRARY_PATH=$out/lib $out/bin/shlibsign -v -i "$libfile" done - '' + stdenv.lib.optionalString (!includeTools) '' - find $out/bin -type f \( -name nss-config -o -delete \) + + moveToOutput bin "$tools" + moveToOutput bin/nss-config "$dev" + moveToOutput lib/libcrmf.a "$dev" # needed by firefox, for example + rm "$out"/lib/*.a ''; meta = { diff --git a/pkgs/development/libraries/nss_wrapper/default.nix b/pkgs/development/libraries/nss_wrapper/default.nix index 278834190bbf..a81d95e6b987 100644 --- a/pkgs/development/libraries/nss_wrapper/default.nix +++ b/pkgs/development/libraries/nss_wrapper/default.nix @@ -8,7 +8,8 @@ stdenv.mkDerivation rec { sha256 = "0bysdijvi9n0jk74iklbfhbp0kvv81a727lcfd5q03q2hkzjfm18"; }; - buildInputs = [ cmake pkgconfig ]; + buildInputs = [ cmake pkgconfig (stdenv.cc.libc.out or null) ]; + # outputs TODO: missing glibc.out might become a general problem meta = with stdenv.lib; { description = "A wrapper for the user, group and hosts NSS API"; diff --git a/pkgs/development/libraries/ogrepaged/default.nix b/pkgs/development/libraries/ogrepaged/default.nix index 27193e045450..3539a6302b14 100644 --- a/pkgs/development/libraries/ogrepaged/default.nix +++ b/pkgs/development/libraries/ogrepaged/default.nix @@ -11,7 +11,7 @@ stdenv.mkDerivation rec { buildInputs = [ ois ogre libX11 boost ]; nativeBuildInputs = [ cmake pkgconfig ]; - cmakeFlags = "-DPAGEDGEOMETRY_BUILD_SAMPLES=OFF"; + cmakeFlags = [ "-DPAGEDGEOMETRY_BUILD_SAMPLES=OFF" ]; enableParallelBuilding = true; @@ -19,5 +19,7 @@ stdenv.mkDerivation rec { description = "Paged Geometry for Ogre3D"; homepage = http://code.google.com/p/ogre-paged/; license = stdenv.lib.licenses.mit; + # Build failures + broken = true; }; } diff --git a/pkgs/development/libraries/opendkim/default.nix b/pkgs/development/libraries/opendkim/default.nix index e89cd880df13..7f4b5ba2e328 100644 --- a/pkgs/development/libraries/opendkim/default.nix +++ b/pkgs/development/libraries/opendkim/default.nix @@ -16,7 +16,7 @@ stdenv.mkDerivation rec { postInstall = '' wrapProgram $out/sbin/opendkim-genkey \ - --prefix PATH : ${openssl}/bin + --prefix PATH : ${openssl.bin}/bin ''; meta = with stdenv.lib; { diff --git a/pkgs/development/libraries/openldap/default.nix b/pkgs/development/libraries/openldap/default.nix index c4f8ef0ee661..cc5a26a557d5 100644 --- a/pkgs/development/libraries/openldap/default.nix +++ b/pkgs/development/libraries/openldap/default.nix @@ -8,7 +8,8 @@ stdenv.mkDerivation rec { sha256 = "0044p20hx07fwgw2mbwj1fkx04615hhs1qyx4mawj2bhqvrnppnp"; }; - outputs = [ "out" "man" ]; + # TODO: separate "out" and "bin" + outputs = [ "dev" "out" "man" "docdev" ]; buildInputs = [ openssl cyrus_sasl db groff ]; @@ -19,12 +20,10 @@ stdenv.mkDerivation rec { ++ stdenv.lib.optional (cyrus_sasl == null) "--without-cyrus-sasl" ++ stdenv.lib.optional stdenv.isFreeBSD "--with-pic"; - dontPatchELF = 1; # !!! - # Fixup broken libtool preFixup = '' - sed -e 's,-lsasl2,-L${cyrus_sasl}/lib -lsasl2,' \ - -e 's,-lssl,-L${openssl}/lib -lssl,' \ + sed -e 's,-lsasl2,-L${cyrus_sasl.out}/lib -lsasl2,' \ + -e 's,-lssl,-L${openssl.out}/lib -lssl,' \ -i $out/lib/libldap.la -i $out/lib/libldap_r.la ''; diff --git a/pkgs/development/libraries/openscenegraph/default.nix b/pkgs/development/libraries/openscenegraph/default.nix index 578d0219c020..1b69563355bc 100644 --- a/pkgs/development/libraries/openscenegraph/default.nix +++ b/pkgs/development/libraries/openscenegraph/default.nix @@ -1,8 +1,9 @@ -{ stdenv, fetchurl, cmake, giflib, libjpeg, libtiff, lib3ds, freetype +{ stdenv, lib, fetchurl, cmake, giflib, libjpeg, libtiff, lib3ds, freetype , libpng, coin3d, jasper, gdal_1_11, xproto, libX11, libXmu , freeglut, mesa, doxygen, ffmpeg, xineLib, unzip, zlib, openal , libxml2, curl, a52dec, faad2, gdk_pixbuf, pkgconfig, kbproto, SDL -, qt4, poppler, librsvg, gtk }: +, qt4, poppler, librsvg, gtk +, withApps ? true }: stdenv.mkDerivation rec { name = "openscenegraph-${version}"; @@ -20,11 +21,13 @@ stdenv.mkDerivation rec { pkgconfig kbproto SDL qt4 poppler librsvg gtk ]; + enableParallelBuilding = true; + cmakeFlags = [ "-DMATH_LIBRARY=" "-DCMAKE_C_FLAGS=-D__STDC_CONSTANT_MACROS=1" "-DCMAKE_CXX_FLAGS=-D__STDC_CONSTANT_MACROS=1" - ]; + ] ++ lib.optional (!withApps) "-DBUILD_OSG_APPLICATIONS=OFF"; meta = with stdenv.lib; { description = "A 3D graphics toolkit"; diff --git a/pkgs/development/libraries/openssl/default.nix b/pkgs/development/libraries/openssl/default.nix index 081f71b498e1..1e0f419c5f73 100644 --- a/pkgs/development/libraries/openssl/default.nix +++ b/pkgs/development/libraries/openssl/default.nix @@ -16,8 +16,6 @@ let inherit sha256; }; - outputs = [ "out" "man" ]; - patches = [ ./use-etc-ssl-certs.patch ] ++ optional stdenv.isCygwin ./1.0.1-cygwin64.patch @@ -25,6 +23,9 @@ let (versionOlder version "1.0.2" && (stdenv.isDarwin || (stdenv ? cross && stdenv.cross.libc == "libSystem"))) ./darwin-arch.patch; + outputs = [ "dev" "out" "man" "bin" ]; + setOutputFlags = false; + nativeBuildInputs = [ perl ]; buildInputs = stdenv.lib.optional withCryptodev cryptodevHeaders; @@ -44,9 +45,7 @@ let "-DUSE_CRYPTODEV_DIGESTS" ]; - makeFlags = [ - "MANDIR=$(out)/share/man" - ]; + makeFlags = [ "MANDIR=$(man)/share/man" ]; # Parallel building is broken in OpenSSL. enableParallelBuilding = false; @@ -58,14 +57,20 @@ let rm "$out/lib/"*.a fi + mkdir -p $bin + mv $out/bin $bin/ + + mkdir $dev + mv $out/include $dev/ + # remove dependency on Perl at runtime - rm -r $out/etc/ssl/misc $out/bin/c_rehash + rm -r $out/etc/ssl/misc rmdir $out/etc/ssl/{certs,private} ''; postFixup = '' - # Check to make sure we don't depend on perl + # Check to make sure the main output doesn't depend on perl if grep -r '${perl}' $out; then echo "Found an erroneous dependency on perl ^^^" >&2 exit 1 diff --git a/pkgs/development/libraries/p11-kit/default.nix b/pkgs/development/libraries/p11-kit/default.nix index eefed304134f..f2a9bdc12309 100644 --- a/pkgs/development/libraries/p11-kit/default.nix +++ b/pkgs/development/libraries/p11-kit/default.nix @@ -8,6 +8,9 @@ stdenv.mkDerivation rec { sha256 = "1i3a1wdpagm0p3y1bwaz5x5rjhcpqbcrnhkcp10p259vkxk72wz5"; }; + outputs = [ "dev" "out" "docdev" ]; + outputBin = "dev"; + buildInputs = [ pkgconfig libffi libtasn1 libiconv ]; configureFlags = [ diff --git a/pkgs/development/libraries/pango/default.nix b/pkgs/development/libraries/pango/default.nix index bb619c7fda5f..c4456035cca2 100644 --- a/pkgs/development/libraries/pango/default.nix +++ b/pkgs/development/libraries/pango/default.nix @@ -1,5 +1,5 @@ -{ stdenv, fetchurl, pkgconfig, xlibsWrapper, glib, cairo, libpng, harfbuzz -, fontconfig, freetype, libintlOrEmpty, gobjectIntrospection +{ stdenv, fetchurl, pkgconfig, libXft, cairo, harfbuzz +, libintlOrEmpty, gobjectIntrospection }: with stdenv.lib; @@ -16,11 +16,11 @@ stdenv.mkDerivation rec { sha256 = "1dsf45m51i4rcyvh5wlxxrjfhvn5b67d5ckjc6vdcxbddjgmc80k"; }; - buildInputs = with stdenv.lib; [ gobjectIntrospection ] - ++ optional stdenv.isDarwin fontconfig; - nativeBuildInputs = [ pkgconfig ]; + outputs = [ "dev" "out" "bin" "docdev" ]; - propagatedBuildInputs = [ xlibsWrapper glib cairo libpng fontconfig freetype harfbuzz ] ++ libintlOrEmpty; + buildInputs = [ gobjectIntrospection ]; + nativeBuildInputs = [ pkgconfig ]; + propagatedBuildInputs = [ cairo harfbuzz libXft ] ++ libintlOrEmpty; enableParallelBuilding = true; @@ -33,8 +33,6 @@ stdenv.mkDerivation rec { configureFlags = optional stdenv.isDarwin "--without-x"; - postInstall = "rm -rf $out/share/gtk-doc"; - meta = with stdenv.lib; { description = "A library for laying out and rendering of text, with an emphasis on internationalization"; diff --git a/pkgs/development/libraries/pcre/CVE-2016-1283.patch b/pkgs/development/libraries/pcre/CVE-2016-1283.patch new file mode 100644 index 000000000000..2c2dad29e929 --- /dev/null +++ b/pkgs/development/libraries/pcre/CVE-2016-1283.patch @@ -0,0 +1,18 @@ +Index: pcre_compile.c +=================================================================== +--- a/pcre_compile.c (revision 1635) ++++ b/pcre_compile.c (revision 1636) +@@ -7311,7 +7311,12 @@ + so far in order to get the number. If the name is not found, leave + the value of recno as 0 for a forward reference. */ + +- else ++ /* This patch (removing "else") fixes a problem when a reference is ++ to multiple identically named nested groups from within the nest. ++ Once again, it is not the "proper" fix, and it results in an ++ over-allocation of memory. */ ++ ++ /* else */ + { + ng = cd->named_groups; + for (i = 0; i < cd->names_found; i++, ng++) diff --git a/pkgs/development/libraries/pcre/default.nix b/pkgs/development/libraries/pcre/default.nix index afeffae3e5fa..8bce1512d138 100644 --- a/pkgs/development/libraries/pcre/default.nix +++ b/pkgs/development/libraries/pcre/default.nix @@ -1,43 +1,50 @@ -{ stdenv, lib, fetchurl, unicodeSupport ? true, cplusplusSupport ? true -, windows ? null +{ stdenv, fetchurl +, windows ? null, variant ? null, pcre , withCharSize ? 8 }: with stdenv.lib; -assert withCharSize != 8 -> !cplusplusSupport; +assert elem variant [ null "cpp" "pcre16" "pcre32" ]; let - charFlags = if withCharSize == 8 then [ ] - else if withCharSize == 16 then [ "--enable-pcre16" "--disable-pcre8" ] - else if withCharSize == 32 then [ "--enable-pcre32" "--disable-pcre8" ] - else abort "Invalid character size"; + version = "8.38"; + pname = if (variant == null) then "pcre" + else if (variant == "cpp") then "pcre-cpp" + else variant; in stdenv.mkDerivation rec { - name = "pcre${lib.optionalString (withCharSize != 8) (toString withCharSize)}-8.38"; - # FIXME: add "version" attribute and use it in URL + name = "${pname}-${version}"; src = fetchurl { - url = "ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.38.tar.bz2"; + url = "ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-${version}.tar.bz2"; sha256 = "1pvra19ljkr5ky35y2iywjnsckrs9ch2anrf5b0dc91hw8v2vq5r"; }; - patches = - [ ]; + patches = [ + ./CVE-2016-1283.patch + ]; - outputs = [ "out" "doc" "man" ]; + outputs = [ "dev" "out" "bin" "doc" "man" ]; - # FIXME: Refactor into list! - configureFlags = '' - --enable-jit - ${lib.optionalString unicodeSupport "--enable-unicode-properties"} - ${lib.optionalString (!cplusplusSupport) "--disable-cpp"} - '' + lib.optionalString (charFlags != []) " ${toString charFlags}"; + configureFlags = [ + "--enable-jit" + "--enable-unicode-properties" + "--disable-cpp" + ] + ++ optional (variant != null) "--enable-${variant}"; doCheck = with stdenv; !(isCygwin || isFreeBSD); # XXX: test failure on Cygwin # we are running out of stack on both freeBSDs on Hydra + postFixup = '' + moveToOutput bin/pcre-config "$dev" + '' + + optionalString (variant != null) '' + ln -sf -t "$out/lib/" '${pcre.out}'/lib/libpcre{,posix}.so.*.*.* + ''; + crossAttrs = optionalAttrs (stdenv.cross.libc == "msvcrt") { buildInputs = [ windows.mingw_w64_pthreads.crossDrv ]; }; diff --git a/pkgs/development/libraries/pdf2xml/default.nix b/pkgs/development/libraries/pdf2xml/default.nix index c7c5aff24558..4ebb0cbcc260 100644 --- a/pkgs/development/libraries/pdf2xml/default.nix +++ b/pkgs/development/libraries/pdf2xml/default.nix @@ -16,8 +16,8 @@ stdenv.mkDerivation { preBuild = '' cp Makefile.linux Makefile - sed -i 's|/usr/include/libxml2|${libxml2}/include/libxml2|' Makefile - sed -i 's|-lxml2|-lxml2 -L${libxml2}/lib|' Makefile + sed -i 's|/usr/include/libxml2|${libxml2.dev}/include/libxml2|' Makefile + sed -i 's|-lxml2|-lxml2 -L${libxml2.out}/lib|' Makefile sed -i 's|XPDF = xpdf_3.01|XPDF = ${libxpdf}/lib|' Makefile mkdir exe diff --git a/pkgs/development/libraries/polkit/default.nix b/pkgs/development/libraries/polkit/default.nix index cdeaa0cb1d96..5744460008fd 100644 --- a/pkgs/development/libraries/polkit/default.nix +++ b/pkgs/development/libraries/polkit/default.nix @@ -22,6 +22,8 @@ stdenv.mkDerivation rec { sha256 = "109w86kfqrgz83g9ivggplmgc77rz8kx8646izvm2jb57h4rbh71"; }; + outputs = [ "dev" "out" "bin" ]; # small man pages in $bin + buildInputs = [ pkgconfig glib expat pam intltool spidermonkey gobjectIntrospection ] ++ [ libxslt docbook_xsl docbook_xml_dtd_412 ] # man pages diff --git a/pkgs/development/libraries/poppler/default.nix b/pkgs/development/libraries/poppler/default.nix index 92777f001695..ebcdcc2b3efd 100644 --- a/pkgs/development/libraries/poppler/default.nix +++ b/pkgs/development/libraries/poppler/default.nix @@ -16,7 +16,7 @@ stdenv.mkDerivation rec { inherit sha256; }; - outputs = [ "out" ] ++ lib.optional (!minimal) "doc"; + outputs = [ "dev" "out" ]; patches = [ ./datadir_env.patch ]; diff --git a/pkgs/development/libraries/portaudio/default.nix b/pkgs/development/libraries/portaudio/default.nix index 46d512814015..5d8c2430ab9f 100644 --- a/pkgs/development/libraries/portaudio/default.nix +++ b/pkgs/development/libraries/portaudio/default.nix @@ -35,7 +35,7 @@ stdenv.mkDerivation rec { make install # fixup .pc file to find alsa library - sed -i "s|-lasound|-L${alsaLib}/lib -lasound|" "$out/lib/pkgconfig/"*.pc + sed -i "s|-lasound|-L${alsaLib.out}/lib -lasound|" "$out/lib/pkgconfig/"*.pc ''; meta = with stdenv.lib; { diff --git a/pkgs/development/libraries/qhull/default.nix b/pkgs/development/libraries/qhull/default.nix index 76ceb12b401f..f98c7bdb97e4 100644 --- a/pkgs/development/libraries/qhull/default.nix +++ b/pkgs/development/libraries/qhull/default.nix @@ -12,6 +12,11 @@ stdenv.mkDerivation rec { cmakeFlags = "-DMAN_INSTALL_DIR=share/man/man1 -DDOC_INSTALL_DIR=share/doc/qhull"; + patchPhase = stdenv.lib.optionalString stdenv.isDarwin '' + sed -i 's/namespace std { struct bidirectional_iterator_tag; struct random_access_iterator_tag; }/#include <iterator>/' ./src/libqhullcpp/QhullIterator.h + sed -i 's/namespace std { struct bidirectional_iterator_tag; struct random_access_iterator_tag; }/#include <iterator>/' ./src/libqhullcpp/QhullLinkedList.h + ''; + meta = { homepage = http://www.qhull.org/; description = "Computes the convex hull, Delaunay triangulation, Voronoi diagram and more"; diff --git a/pkgs/development/libraries/qt-3/default.nix b/pkgs/development/libraries/qt-3/default.nix index 08d8f141deb0..40fa63d75caf 100644 --- a/pkgs/development/libraries/qt-3/default.nix +++ b/pkgs/development/libraries/qt-3/default.nix @@ -49,9 +49,9 @@ stdenv.mkDerivation { ${if cursorSupport then "-L${libXcursor}/lib -I${libXcursor}/include" else ""} ${if mysqlSupport then "-qt-sql-mysql -L${mysql.lib}/lib/mysql -I${mysql.lib}/include/mysql" else ""} ${if xftSupport then "-xft - -L${libXft}/lib -I${libXft}/include - -L${libXft.freetype}/lib -I${libXft.freetype}/include - -L${libXft.fontconfig}/lib -I${libXft.fontconfig}/include" else "-no-xft"} + -L${libXft.out}/lib -I${libXft.dev}/include + -L${libXft.freetype.out}/lib -I${libXft.freetype.dev}/include + -L${libXft.fontconfig.lib}/lib -I${libXft.fontconfig.dev}/include" else "-no-xft"} "; patches = [ diff --git a/pkgs/development/libraries/qt-4.x/4.8/default.nix b/pkgs/development/libraries/qt-4.x/4.8/default.nix index 17e0485b29fe..788fb8741402 100644 --- a/pkgs/development/libraries/qt-4.x/4.8/default.nix +++ b/pkgs/development/libraries/qt-4.x/4.8/default.nix @@ -53,19 +53,24 @@ stdenv.mkDerivation rec { ./libressl.patch (substituteAll { src = ./dlopen-absolute-paths.diff; - inherit cups icu libXfixes; - glibc = stdenv.cc.libc; + cups = if cups != null then cups.out else null; + icu = icu.out; + libXfixes = libXfixes.out; + glibc = stdenv.cc.libc.out; openglDriver = if mesaSupported then mesa.driverLink else "/no-such-path"; }) ] ++ stdenv.lib.optional gtkStyle (substituteAll { src = ./dlopen-gtkstyle.diff; # substituteAll ignores env vars starting with capital letter - gconf = GConf; - inherit gnome_vfs libgnomeui gtk; + gconf = GConf.out; + gtk = gtk.out; + libgnomeui = libgnomeui.out; + gnome_vfs = gnome_vfs.out; }) ++ stdenv.lib.optional flashplayerFix (substituteAll { src = ./dlopen-webkit-nsplugin.diff; - inherit gtk gdk_pixbuf; + gtk = gtk.out; + gdk_pixbuf = gdk_pixbuf.out; }) ++ [(fetchpatch { name = "fix-medium-font.patch"; @@ -113,7 +118,7 @@ stdenv.mkDerivation rec { propagatedBuildInputs = [ libXrender libXrandr libXinerama libXcursor libXext libXfixes libXv libXi - libSM zlib libpng openssl dbus.libs freetype fontconfig glib ] + libSM zlib libpng openssl dbus freetype fontconfig glib ] # Qt doesn't directly need GLU (just GL), but many apps use, it's small and doesn't remain a runtime-dep if not used ++ optional mesaSupported mesa_glu ++ optional ((buildWebkit || buildMultimedia) && stdenv.isLinux ) alsaLib @@ -131,7 +136,7 @@ stdenv.mkDerivation rec { enableParallelBuilding = false; NIX_CFLAGS_COMPILE = optionalString (stdenv.isFreeBSD || stdenv.isDarwin) - "-I${glib}/include/glib-2.0 -I${glib}/lib/glib-2.0/include"; + "-I${glib.dev}/include/glib-2.0 -I${glib.out}/lib/glib-2.0/include"; NIX_LDFLAGS = optionalString (stdenv.isFreeBSD || stdenv.isDarwin) "-lglib-2.0"; diff --git a/pkgs/development/libraries/qt-5/5.4/default.nix b/pkgs/development/libraries/qt-5/5.4/default.nix index 9b1324d11373..df2fb8ad1862 100644 --- a/pkgs/development/libraries/qt-5/5.4/default.nix +++ b/pkgs/development/libraries/qt-5/5.4/default.nix @@ -37,21 +37,19 @@ let inherit src; propagatedBuildInputs = args.qtInputs ++ (args.propagatedBuildInputs or []); + nativeBuildInputs = (args.nativeBuildInputs or []) ++ [ self.fixQtModuleCMakeConfig ]; NIX_QT_SUBMODULE = args.NIX_QT_SUBMODULE or true; dontAddPrefix = args.dontAddPrefix or true; dontFixLibtool = args.dontFixLibtool or true; configureScript = args.configureScript or "qmake"; + outputs = args.outputs or [ "dev" "out" ]; + setOutputFlags = false; + enableParallelBuilding = args.enableParallelBuilding or true; - meta = { - homepage = http://qt-project.org; - description = "A cross-platform application framework for C++"; - license = with licenses; [ fdl13 gpl2 lgpl21 lgpl3 ]; - maintainers = with maintainers; [ bbenoist qknight ttuegel ]; - platforms = platforms.linux; - } // (args.meta or {}); + meta = self.qtbase.meta // (args.meta or {}); }); addPackages = self: with self; @@ -110,7 +108,10 @@ let ]; makeQtWrapper = makeSetupHook { deps = [ makeWrapper ]; } ./make-qt-wrapper.sh; + fixQtModuleCMakeConfig = makeSetupHook { } ./fix-qt-module-cmake-config.sh; }; -in makeScope pkgs.newScope addPackages + self = makeScope pkgs.newScope addPackages; + +in self diff --git a/pkgs/development/libraries/qt-5/5.4/fix-qt-module-cmake-config.sh b/pkgs/development/libraries/qt-5/5.4/fix-qt-module-cmake-config.sh new file mode 100644 index 000000000000..7ca3e33b613c --- /dev/null +++ b/pkgs/development/libraries/qt-5/5.4/fix-qt-module-cmake-config.sh @@ -0,0 +1,5 @@ +fixQtModuleCMakeConfig() { + local module="$1" + sed -e "/set(imported_location/ s@\\\${_qt5${module}_install_prefix}@${!outputLib}@" \ + -i "${!outputDev}/lib/cmake/Qt5${module}/Qt5${module}Config.cmake" +} diff --git a/pkgs/development/libraries/qt-5/5.4/qtbase/default.nix b/pkgs/development/libraries/qt-5/5.4/qtbase/default.nix index 36bd3822bf73..0585601db765 100644 --- a/pkgs/development/libraries/qt-5/5.4/qtbase/default.nix +++ b/pkgs/development/libraries/qt-5/5.4/qtbase/default.nix @@ -1,4 +1,4 @@ -{ stdenv, lib, fetchurl, copyPathsToStore, makeWrapper +{ stdenv, lib, fetchurl, copyPathsToStore, fixQtModuleCMakeConfig , srcs , xlibs, libX11, libxcb, libXcursor, libXext, libXrender, libXi @@ -14,8 +14,7 @@ , mysql ? null, postgresql ? null # options -, mesaSupported, mesa, mesa_glu -, buildDocs ? false +, mesaSupported, mesa , buildExamples ? false , buildTests ? false , developerBuild ? false @@ -37,6 +36,8 @@ stdenv.mkDerivation { sourceRoot = "qt-everywhere-opensource-src-${version}"; + outputs = [ "dev" "out" ]; + postUnpack = '' mv qtbase-opensource-src-${version} ./qt-everywhere-opensource-src-${version}/qtbase ''; @@ -60,27 +61,27 @@ stdenv.mkDerivation { sed -i 's/PATHS.*NO_DEFAULT_PATH//' "qtbase/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in" substituteInPlace qtbase/src/network/kernel/qdnslookup_unix.cpp \ - --replace "@glibc@" "${stdenv.cc.libc}" + --replace "@glibc@" "${stdenv.cc.libc.out}" substituteInPlace qtbase/src/network/kernel/qhostinfo_unix.cpp \ - --replace "@glibc@" "${stdenv.cc.libc}" + --replace "@glibc@" "${stdenv.cc.libc.out}" substituteInPlace qtbase/src/plugins/platforms/xcb/qxcbcursor.cpp \ - --replace "@libXcursor@" "${libXcursor}" + --replace "@libXcursor@" "${libXcursor.out}" substituteInPlace qtbase/src/network/ssl/qsslsocket_openssl_symbols.cpp \ - --replace "@openssl@" "${openssl}" + --replace "@openssl@" "${openssl.out}" substituteInPlace qtbase/src/dbus/qdbus_symbols.cpp \ - --replace "@dbus_libs@" "${dbus}" + --replace "@dbus_libs@" "${dbus.lib}" substituteInPlace \ qtbase/src/plugins/platforminputcontexts/compose/generator/qtablegenerator.cpp \ - --replace "@libX11@" "${libX11}" + --replace "@libX11@" "${libX11.out}" '' + lib.optionalString gtkStyle '' - substituteInPlace qtbase/src/widgets/styles/qgtk2painter.cpp --replace "@gtk@" "${gtk}" + substituteInPlace qtbase/src/widgets/styles/qgtk2painter.cpp --replace "@gtk@" "${gtk.out}" substituteInPlace qtbase/src/widgets/styles/qgtkstyle_p.cpp \ - --replace "@gtk@" "${gtk}" \ + --replace "@gtk@" "${gtk.out}" \ --replace "@gnome_vfs@" "${gnome_vfs}" \ --replace "@libgnomeui@" "${libgnomeui}" \ --replace "@gconf@" "${GConf}" @@ -88,16 +89,40 @@ stdenv.mkDerivation { + lib.optionalString mesaSupported '' substituteInPlace \ qtbase/src/plugins/platforms/xcb/qglxintegration.cpp \ - --replace "@mesa@" "${mesa}" - substituteInPlace qtbase/mkspecs/common/linux.conf --replace "@mesa@" "${mesa}" + --replace "@mesa_lib@" "${mesa.out}" + substituteInPlace qtbase/mkspecs/common/linux.conf \ + --replace "@mesa_lib@" "${mesa.out}" \ + --replace "@mesa_inc@" "${mesa.dev}" ''; + setOutputFlags = false; preConfigure = '' export LD_LIBRARY_PATH="$PWD/qtbase/lib:$PWD/qtbase/plugins/platforms:$LD_LIBRARY_PATH" export MAKEFLAGS=-j$NIX_BUILD_CORES - export configureFlags+="-plugindir $out/lib/qt5/plugins -importdir $out/lib/qt5/imports -qmldir $out/lib/qt5/qml" - export configureFlags+=" -docdir $out/share/doc/qt5" + _multioutQtDevs() { + # We cannot simply set these paths in configureFlags because libQtCore retains + # references to the paths it was built with. + moveToOutput "bin" "$dev" + moveToOutput "include" "$dev" + moveToOutput "mkspecs" "$dev" + + # The destination directory must exist or moveToOutput will do nothing + mkdir -p "$dev/share" + moveToOutput "share/doc" "$dev" + + mkdir -p "$dev/lib" + lndir -silent "$out/lib" "$dev/lib" + if [[ -h "$dev/lib/cmake" ]]; then rm "$dev/lib/cmake"; fi + if [[ -h "$dev/lib/pkgconfig" ]]; then rm "$dev/lib/pkgconfig"; fi + } + preFixupHooks+=(_multioutQtDevs) + + configureFlags+="\ + -plugindir $out/lib/qt5/plugins \ + -importdir $out/lib/qt5/imports \ + -qmldir $out/lib/qt5/qml \ + -docdir $out/share/doc/qt5" ''; prefixKey = "-prefix "; @@ -172,40 +197,46 @@ stdenv.mkDerivation { # PostgreSQL autodetection fails sporadically because Qt omits the "-lpq" flag # if dependency paths contain the string "pq", which can occur in the hash. # To prevent these failures, we need to override PostgreSQL detection. - PSQL_LIBS = lib.optionalString (postgresql != null) "-L${postgresql}/lib -lpq"; + PSQL_LIBS = lib.optionalString (postgresql != null) "-L${postgresql.lib}/lib -lpq"; propagatedBuildInputs = [ xlibs.libXcomposite libX11 libxcb libXext libXrender libXi - fontconfig freetype openssl dbus.libs glib udev libxml2 libxslt pcre + fontconfig freetype openssl dbus glib udev libxml2 libxslt pcre zlib libjpeg libpng libtiff sqlite icu xcbutil xcbutilimage xcbutilkeysyms xcbutilwm libxkbcommon ] - # Qt doesn't directly need GLU (just GL), but many apps use, it's small and - # doesn't remain a runtime-dep if not used - ++ lib.optionals mesaSupported [ mesa mesa_glu ] - ++ lib.optional (cups != null) cups - ++ lib.optional (mysql != null) mysql.lib - ++ lib.optional (postgresql != null) postgresql - ++ lib.optionals gtkStyle [gnome_vfs libgnomeui gtk GConf]; + ++ lib.optional mesaSupported mesa; buildInputs = [ bison flex gperf ruby ] - ++ lib.optional developerBuild gdb; - - nativeBuildInputs = [ python perl pkgconfig ]; + ++ lib.optional developerBuild gdb + ++ lib.optional (cups != null) cups + ++ lib.optional (mysql != null) mysql.lib + ++ lib.optional (postgresql != null) postgresql + ++ lib.optionals gtkStyle [gnome_vfs libgnomeui gtk GConf]; - propagatedNativeBuildInputs = [ makeWrapper ]; + nativeBuildInputs = [ fixQtModuleCMakeConfig lndir python perl pkgconfig ]; # freetype-2.5.4 changed signedness of some struct fields NIX_CFLAGS_COMPILE = "-Wno-error=sign-compare"; - postInstall = + postFixup = '' # Don't retain build-time dependencies like gdb and ruby. - sed '/QMAKE_DEFAULT_.*DIRS/ d' -i $out/mkspecs/qconfig.pri - '' - + lib.optionalString buildDocs '' - make docs && make install_docs + sed '/QMAKE_DEFAULT_.*DIRS/ d' -i "$dev/mkspecs/qconfig.pri" + + fixQtModuleCMakeConfig "Concurrent" + fixQtModuleCMakeConfig "Core" + fixQtModuleCMakeConfig "DBus" + fixQtModuleCMakeConfig "Gui" + fixQtModuleCMakeConfig "Network" + fixQtModuleCMakeConfig "OpenGL" + fixQtModuleCMakeConfig "OpenGLExtensions" + fixQtModuleCMakeConfig "PrintSupport" + fixQtModuleCMakeConfig "Sql" + fixQtModuleCMakeConfig "Test" + fixQtModuleCMakeConfig "Widgets" + fixQtModuleCMakeConfig "Xml" ''; inherit lndir; @@ -214,9 +245,9 @@ stdenv.mkDerivation { enableParallelBuilding = true; meta = with lib; { - homepage = http://qt-project.org; + homepage = http://www.qt.io; description = "A cross-platform application framework for C++"; - license = "GPL/LGPL"; + license = with licenses; [ fdl13 gpl2 lgpl21 lgpl3 ]; maintainers = with maintainers; [ bbenoist qknight ttuegel ]; platforms = platforms.linux; }; diff --git a/pkgs/development/libraries/qt-5/5.4/qtbase/dlopen-gl.patch b/pkgs/development/libraries/qt-5/5.4/qtbase/dlopen-gl.patch index d6e08cd24106..d5c4c2b97cb6 100644 --- a/pkgs/development/libraries/qt-5/5.4/qtbase/dlopen-gl.patch +++ b/pkgs/development/libraries/qt-5/5.4/qtbase/dlopen-gl.patch @@ -10,7 +10,7 @@ Index: qt-everywhere-opensource-src-5.4.2/qtbase/src/plugins/platforms/xcb/qglxi QLibrary lib(QLatin1String("GL")); + if (!lib.load()) { + // Fallback to Mesa driver -+ lib.setFileName(QLatin1String("@mesa@/lib/libGL")); ++ lib.setFileName(QLatin1String("@mesa_lib@/lib/libGL")); + } glXGetProcAddressARB = (qt_glXGetProcAddressARB) lib.resolve("glXGetProcAddressARB"); } diff --git a/pkgs/development/libraries/qt-5/5.4/qtbase/mkspecs-libgl.patch b/pkgs/development/libraries/qt-5/5.4/qtbase/mkspecs-libgl.patch index 10115e8144ad..56ee0a411d4d 100644 --- a/pkgs/development/libraries/qt-5/5.4/qtbase/mkspecs-libgl.patch +++ b/pkgs/development/libraries/qt-5/5.4/qtbase/mkspecs-libgl.patch @@ -8,8 +8,8 @@ Index: qt-everywhere-opensource-src-5.5.1/qtbase/mkspecs/common/linux.conf QMAKE_LIBDIR_X11 = -QMAKE_INCDIR_OPENGL = -QMAKE_LIBDIR_OPENGL = -+QMAKE_INCDIR_OPENGL = @mesa@/include -+QMAKE_LIBDIR_OPENGL = @mesa@/lib ++QMAKE_INCDIR_OPENGL = @mesa_inc@/include ++QMAKE_LIBDIR_OPENGL = @mesa_lib@/lib QMAKE_INCDIR_OPENGL_ES2 = $$QMAKE_INCDIR_OPENGL QMAKE_LIBDIR_OPENGL_ES2 = $$QMAKE_LIBDIR_OPENGL QMAKE_INCDIR_EGL = diff --git a/pkgs/development/libraries/qt-5/5.4/qtbase/setup-hook.sh b/pkgs/development/libraries/qt-5/5.4/qtbase/setup-hook.sh index b86b6df28ac8..c44cd2234d76 100644 --- a/pkgs/development/libraries/qt-5/5.4/qtbase/setup-hook.sh +++ b/pkgs/development/libraries/qt-5/5.4/qtbase/setup-hook.sh @@ -1,45 +1,26 @@ if [[ -z "$QMAKE" ]]; then -linkDependencyDir() { +_qtLinkDependencyDir() { @lndir@/bin/lndir -silent "$1/$2" "$qtOut/$2" if [[ -n "$NIX_QT_SUBMODULE" ]]; then find "$1/$2" -printf "$2/%P\n" >> "$out/nix-support/qt-inputs" fi } -addQtModule() { - if [[ -d "$1/mkspecs" ]]; then +_qtLinkModule() { + if [ -d "$1/mkspecs" ]; then # $1 is a Qt module - linkDependencyDir "$1" mkspecs + _qtLinkDependencyDir "$1" mkspecs for dir in bin include lib share; do - if [[ -d "$1/$dir" ]]; then - linkDependencyDir "$1" "$dir" + if [ -d "$1/$dir" ]; then + _qtLinkDependencyDir "$1" "$dir" fi done fi } -propagateRuntimeDeps() { - local propagated - for dir in "etc/xdg" "lib/qt5/plugins" "lib/qt5/qml" "lib/qt5/imports" "share"; do - if [[ -d "$1/$dir" ]]; then - propagated= - for pkg in $propagatedBuildInputs; do - if [[ "z$pkg" == "z$1" ]]; then - propagated=1 - break - fi - done - if [[ -z $propagated ]]; then - propagatedBuildInputs="$propagatedBuildInputs $1" - fi - break - fi - done -} - -rmQtModules() { +_qtRmModules() { cat "$out/nix-support/qt-inputs" | while read file; do if [[ -h "$out/$file" ]]; then rm "$out/$file" @@ -55,14 +36,65 @@ rmQtModules() { rm "$out/nix-support/qt-inputs" } -rmQMake() { +addToSearchPathOnceWithCustomDelimiter() { + local delim="$1" + local search="$2" + local target="$3" + local dirs + local exported + IFS="$delim" read -a dirs <<< "${!search}" + for dir in ${dirs[@]}; do + if [ "z$dir" == "z$target" ]; then exported=1; fi + done + if [ -z $exported ]; then + eval "export ${search}=\"${!search}${!search:+$delim}$target\"" + fi +} + +addToSearchPathOnce() { + addToSearchPathOnceWithCustomDelimiter ':' "$@" +} + +propagateOnce() { + addToSearchPathOnceWithCustomDelimiter ' ' "$@" +} + +_qtPropagateRuntimeDependencies() { + for dir in "lib/qt5/plugins" "lib/qt5/qml" "lib/qt5/imports"; do + if [ -d "$1/$dir" ]; then + propagateOnce propagatedBuildInputs "$1" + break + fi + done + addToSearchPathOnce QT_PLUGIN_PATH "$1/lib/qt5/plugins" + addToSearchPathOnce QML_IMPORT_PATH "$1/lib/qt5/imports" + addToSearchPathOnce QML2_IMPORT_PATH "$1/lib/qt5/qml" +} + +_qtRmQmake() { rm "$qtOut/bin/qmake" "$qtOut/bin/qt.conf" } -setQMakePath() { +_qtSetQmakePath() { export PATH="$qtOut/bin${PATH:+:}$PATH" } +_qtMultioutModuleDevs() { + # We cannot simply set these paths in configureFlags because libQtCore retains + # references to the paths it was built with. + moveToOutput "bin" "${!outputDev}" + moveToOutput "include" "${!outputDev}" + + # The destination directory must exist or moveToOutput will do nothing + mkdir -p "${!outputDev}/share" + moveToOutput "share/doc" "${!outputDev}" +} + +_qtMultioutDevs() { + # This is necessary whether the package is a Qt module or not + moveToOutput "mkspecs" "${!outputDev}" +} + qtOut="" if [[ -z "$NIX_QT_SUBMODULE" ]]; then qtOut=`mktemp -d` @@ -72,7 +104,7 @@ fi mkdir -p "$qtOut/bin" "$qtOut/mkspecs" "$qtOut/include" "$qtOut/nix-support" "$qtOut/lib" "$qtOut/share" -cp "@out@/bin/qmake" "$qtOut/bin" +cp "@dev@/bin/qmake" "$qtOut/bin" cat >"$qtOut/bin/qt.conf" <<EOF [Paths] Prefix = $qtOut @@ -84,17 +116,20 @@ EOF export QMAKE="$qtOut/bin/qmake" -envHooks+=(addQtModule propagateRuntimeDeps) -preConfigurePhases+=(setQMakePath) +envHooks+=(_qtLinkModule _qtPropagateRuntimeDependencies) +# Set PATH to find qmake first in a preConfigure hook +# It must run after all the envHooks! +preConfigureHooks+=(_qtSetQmakePath) +preFixupHooks+=(_qtMultioutDevs) if [[ -n "$NIX_QT_SUBMODULE" ]]; then - preFixupPhases+=(rmQtModules) - postPhases+=(rmQMake) + postInstallHooks+=(_qtRmQmake _qtRmModules) + preFixupHooks+=(_qtMultioutModuleDevs) fi fi if [[ -z "$NIX_QT_PIC" ]]; then - export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -fPIC" + export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE${NIX_CFLAGS_COMPILE:+ }-fPIC" export NIX_QT_PIC=1 fi diff --git a/pkgs/development/libraries/qt-5/5.4/qtconnectivity.nix b/pkgs/development/libraries/qt-5/5.4/qtconnectivity.nix index 95cd6fea79b4..35538c7261f1 100644 --- a/pkgs/development/libraries/qt-5/5.4/qtconnectivity.nix +++ b/pkgs/development/libraries/qt-5/5.4/qtconnectivity.nix @@ -3,4 +3,8 @@ qtSubmodule { name = "qtconnectivity"; qtInputs = [ qtbase qtdeclarative ]; + postFixup = '' + fixQtModuleCMakeConfig "Bluetooth" + fixQtModuleCMakeConfig "Nfc" + ''; } diff --git a/pkgs/development/libraries/qt-5/5.4/qtdeclarative/default.nix b/pkgs/development/libraries/qt-5/5.4/qtdeclarative/default.nix index 9181c37b2258..e2219642a122 100644 --- a/pkgs/development/libraries/qt-5/5.4/qtdeclarative/default.nix +++ b/pkgs/development/libraries/qt-5/5.4/qtdeclarative/default.nix @@ -5,4 +5,10 @@ qtSubmodule { patches = [ ./0001-nix-profiles-import-paths.patch ]; qtInputs = [ qtbase qtsvg qtxmlpatterns ]; nativeBuildInputs = [ python ]; + postFixup = '' + fixQtModuleCMakeConfig "Qml" + fixQtModuleCMakeConfig "Quick" + fixQtModuleCMakeConfig "QuickTest" + fixQtModuleCMakeConfig "QuickWidgets" + ''; } diff --git a/pkgs/development/libraries/qt-5/5.4/qtenginio.nix b/pkgs/development/libraries/qt-5/5.4/qtenginio.nix index b860a73ef890..503a0f7ce4f5 100644 --- a/pkgs/development/libraries/qt-5/5.4/qtenginio.nix +++ b/pkgs/development/libraries/qt-5/5.4/qtenginio.nix @@ -3,4 +3,7 @@ qtSubmodule { name = "qtenginio"; qtInputs = [ qtdeclarative ]; + postFixup = '' + fixQtModuleCMakeConfig "Enginio" + ''; } diff --git a/pkgs/development/libraries/qt-5/5.4/qtlocation.nix b/pkgs/development/libraries/qt-5/5.4/qtlocation.nix index 1e134057c4b4..0e2ad8bafb30 100644 --- a/pkgs/development/libraries/qt-5/5.4/qtlocation.nix +++ b/pkgs/development/libraries/qt-5/5.4/qtlocation.nix @@ -3,4 +3,8 @@ qtSubmodule { name = "qtlocation"; qtInputs = [ qtbase qtmultimedia ]; + postFixup = '' + fixQtModuleCMakeConfig "Location" + fixQtModuleCMakeConfig "Positioning" + ''; } diff --git a/pkgs/development/libraries/qt-5/5.4/qtmultimedia.nix b/pkgs/development/libraries/qt-5/5.4/qtmultimedia.nix index b6b4d8ea0cf4..8db8fa5f4b96 100644 --- a/pkgs/development/libraries/qt-5/5.4/qtmultimedia.nix +++ b/pkgs/development/libraries/qt-5/5.4/qtmultimedia.nix @@ -9,4 +9,8 @@ qtSubmodule { pkgconfig alsaLib gstreamer gst-plugins-base libpulseaudio ]; configureFlags = "GST_VERSION=1.0"; + postFixup = '' + fixQtModuleCMakeConfig "Multimedia" + fixQtModuleCMakeConfig "MultimediaWidgets" + ''; } diff --git a/pkgs/development/libraries/qt-5/5.4/qtquick1/default.nix b/pkgs/development/libraries/qt-5/5.4/qtquick1/default.nix index d1c7bb389a49..d81abbcd6140 100644 --- a/pkgs/development/libraries/qt-5/5.4/qtquick1/default.nix +++ b/pkgs/development/libraries/qt-5/5.4/qtquick1/default.nix @@ -4,4 +4,7 @@ qtSubmodule { name = "qtquick1"; patches = [ ./0001-nix-profiles-import-paths.patch ]; qtInputs = [ qtscript qtsvg qtwebkit qtxmlpatterns ]; + postFixup = '' + fixQtModuleCMakeConfig "Declarative" + ''; } diff --git a/pkgs/development/libraries/qt-5/5.4/qtscript/default.nix b/pkgs/development/libraries/qt-5/5.4/qtscript/default.nix index 127766e2ebd6..b81a43aeadb0 100644 --- a/pkgs/development/libraries/qt-5/5.4/qtscript/default.nix +++ b/pkgs/development/libraries/qt-5/5.4/qtscript/default.nix @@ -4,4 +4,7 @@ qtSubmodule { name = "qtscript"; qtInputs = [ qtbase qttools ]; patches = [ ./0001-glib-2.32.patch ]; + postFixup = '' + fixQtModuleCMakeConfig "Script" + ''; } diff --git a/pkgs/development/libraries/qt-5/5.4/qtsensors.nix b/pkgs/development/libraries/qt-5/5.4/qtsensors.nix index 61e64dc47e4d..5776f45a7068 100644 --- a/pkgs/development/libraries/qt-5/5.4/qtsensors.nix +++ b/pkgs/development/libraries/qt-5/5.4/qtsensors.nix @@ -3,4 +3,7 @@ qtSubmodule { name = "qtsensors"; qtInputs = [ qtbase qtdeclarative ]; + postFixup = '' + fixQtModuleCMakeConfig "Sensors" + ''; } diff --git a/pkgs/development/libraries/qt-5/5.4/qtserialport/0001-dlopen-serialport-udev.patch b/pkgs/development/libraries/qt-5/5.4/qtserialport/0001-dlopen-serialport-udev.patch index 6636cc9265a8..3a813dc80074 100644 --- a/pkgs/development/libraries/qt-5/5.4/qtserialport/0001-dlopen-serialport-udev.patch +++ b/pkgs/development/libraries/qt-5/5.4/qtserialport/0001-dlopen-serialport-udev.patch @@ -16,10 +16,10 @@ index 6f2cabd..81b9849 100644 { if (!udevLibrary->isLoaded()) { - udevLibrary->setFileNameAndVersion(QStringLiteral("udev"), 1); -+ udevLibrary->setFileNameAndVersion(QStringLiteral("@udev@/lib/libudev"), 1); ++ udevLibrary->setFileNameAndVersion(QStringLiteral("@libudev@/lib/libudev"), 1); if (!udevLibrary->load()) { - udevLibrary->setFileNameAndVersion(QStringLiteral("udev"), 0); -+ udevLibrary->setFileNameAndVersion(QStringLiteral("@udev@/lib/libudev"), 0); ++ udevLibrary->setFileNameAndVersion(QStringLiteral("@libudev@/lib/libudev"), 0); if (!udevLibrary->load()) { qWarning("Failed to load the library: %s, supported version(s): %i and %i", qPrintable(udevLibrary->fileName()), 1, 0); return false; diff --git a/pkgs/development/libraries/qt-5/5.4/qtserialport/default.nix b/pkgs/development/libraries/qt-5/5.4/qtserialport/default.nix index fa7383fc1e76..2c9575f122e7 100644 --- a/pkgs/development/libraries/qt-5/5.4/qtserialport/default.nix +++ b/pkgs/development/libraries/qt-5/5.4/qtserialport/default.nix @@ -1,7 +1,16 @@ -{ qtSubmodule, qtbase }: +{ qtSubmodule, qtbase, substituteAll, libudev }: qtSubmodule { name = "qtserialport"; qtInputs = [ qtbase ]; - patches = [ ./0001-dlopen-serialport-udev.patch ]; + + patches = [ + (substituteAll { + src = ./0001-dlopen-serialport-udev.patch; + libudev = libudev.out; + }) + ]; + postFixup = '' + fixQtModuleCMakeConfig "SerialPort" + ''; } diff --git a/pkgs/development/libraries/qt-5/5.4/qtsvg.nix b/pkgs/development/libraries/qt-5/5.4/qtsvg.nix index b9ccac7cf933..a460d6da4c2a 100644 --- a/pkgs/development/libraries/qt-5/5.4/qtsvg.nix +++ b/pkgs/development/libraries/qt-5/5.4/qtsvg.nix @@ -3,4 +3,7 @@ qtSubmodule { name = "qtsvg"; qtInputs = [ qtbase ]; + postFixup = '' + fixQtModuleCMakeConfig "Svg" + ''; } diff --git a/pkgs/development/libraries/qt-5/5.4/qttools.nix b/pkgs/development/libraries/qt-5/5.4/qttools.nix index 65edc4508128..16887c4265a8 100644 --- a/pkgs/development/libraries/qt-5/5.4/qttools.nix +++ b/pkgs/development/libraries/qt-5/5.4/qttools.nix @@ -3,4 +3,13 @@ qtSubmodule { name = "qttools"; qtInputs = [ qtbase ]; + postFixup = '' + moveToOutput "bin/qdbus" "$out" + moveToOutput "bin/qtpaths" "$out" + + fixQtModuleCMakeConfig "Designer" + fixQtModuleCMakeConfig "Help" + fixQtModuleCMakeConfig "LinguistTools" + fixQtModuleCMakeConfig "UiTools" + ''; } diff --git a/pkgs/development/libraries/qt-5/5.4/qtwebkit/0003-dlopen-webkit-udev.patch b/pkgs/development/libraries/qt-5/5.4/qtwebkit/0003-dlopen-webkit-udev.patch index f3b9d407bd72..1c360cd81aa2 100644 --- a/pkgs/development/libraries/qt-5/5.4/qtwebkit/0003-dlopen-webkit-udev.patch +++ b/pkgs/development/libraries/qt-5/5.4/qtwebkit/0003-dlopen-webkit-udev.patch @@ -16,13 +16,13 @@ index 60ff317..da8ac69 100644 { m_libUdev.setLoadHints(QLibrary::ResolveAllSymbolsHint); - m_libUdev.setFileNameAndVersion(QStringLiteral("udev"), 1); -+ m_libUdev.setFileNameAndVersion(QStringLiteral("@udev@/lib/libudev"), 1); ++ m_libUdev.setFileNameAndVersion(QStringLiteral("@libudev@/lib/libudev"), 1); m_loaded = m_libUdev.load(); if (resolveMethods()) return true; - m_libUdev.setFileNameAndVersion(QStringLiteral("udev"), 0); -+ m_libUdev.setFileNameAndVersion(QStringLiteral("@udev@/lib/libudev"), 0); ++ m_libUdev.setFileNameAndVersion(QStringLiteral("@libudev@/lib/libudev"), 0); m_loaded = m_libUdev.load(); return resolveMethods(); } diff --git a/pkgs/development/libraries/qt-5/5.4/qtwebkit/default.nix b/pkgs/development/libraries/qt-5/5.4/qtwebkit/default.nix index 596c02d39afb..7ed3017b95a3 100644 --- a/pkgs/development/libraries/qt-5/5.4/qtwebkit/default.nix +++ b/pkgs/development/libraries/qt-5/5.4/qtwebkit/default.nix @@ -1,6 +1,6 @@ { qtSubmodule, stdenv, qtdeclarative, qtlocation, qtmultimedia, qtsensors , fontconfig, gdk_pixbuf, gtk, libwebp, libxml2, libxslt -, sqlite, udev +, sqlite, libudev , bison2, flex, gdb, gperf, perl, pkgconfig, python, ruby , substituteAll , flashplayerFix ? false @@ -18,16 +18,21 @@ qtSubmodule { patches = let dlopen-webkit-nsplugin = substituteAll { src = ./0001-dlopen-webkit-nsplugin.patch; - inherit gtk gdk_pixbuf; + gtk = gtk.out; + gdk_pixbuf = gdk_pixbuf.out; }; dlopen-webkit-gtk = substituteAll { src = ./0002-dlopen-webkit-gtk.patch; - inherit gtk; + gtk = gtk.out; }; dlopen-webkit-udev = substituteAll { src = ./0003-dlopen-webkit-udev.patch; - inherit udev; + udev = libudev.out; }; in optionals flashplayerFix [ dlopen-webkit-nsplugin dlopen-webkit-gtk ] ++ [ dlopen-webkit-udev ]; + postFixup = '' + fixQtModuleCMakeConfig "WebKit" + fixQtModuleCMakeConfig "WebKitWidgets" + ''; } diff --git a/pkgs/development/libraries/qt-5/5.4/qtwebsockets.nix b/pkgs/development/libraries/qt-5/5.4/qtwebsockets.nix index fbdfbbcf0dbe..c0d0f9e7d714 100644 --- a/pkgs/development/libraries/qt-5/5.4/qtwebsockets.nix +++ b/pkgs/development/libraries/qt-5/5.4/qtwebsockets.nix @@ -3,4 +3,7 @@ qtSubmodule { name = "qtwebsockets"; qtInputs = [ qtbase qtdeclarative ]; + postFixup = '' + fixQtModuleCMakeConfig "WebSockets" + ''; } diff --git a/pkgs/development/libraries/qt-5/5.4/qtx11extras.nix b/pkgs/development/libraries/qt-5/5.4/qtx11extras.nix index a765161e2d7e..db92f1353627 100644 --- a/pkgs/development/libraries/qt-5/5.4/qtx11extras.nix +++ b/pkgs/development/libraries/qt-5/5.4/qtx11extras.nix @@ -3,4 +3,7 @@ qtSubmodule { name = "qtx11extras"; qtInputs = [ qtbase ]; + postFixup = '' + fixQtModuleCMakeConfig "X11Extras" + ''; } diff --git a/pkgs/development/libraries/qt-5/5.4/qtxmlpatterns.nix b/pkgs/development/libraries/qt-5/5.4/qtxmlpatterns.nix index 9a8ddbba2bd2..3b22132e4c38 100644 --- a/pkgs/development/libraries/qt-5/5.4/qtxmlpatterns.nix +++ b/pkgs/development/libraries/qt-5/5.4/qtxmlpatterns.nix @@ -3,4 +3,7 @@ qtSubmodule { name = "qtxmlpatterns"; qtInputs = [ qtbase ]; + postFixup = '' + fixQtModuleCMakeConfig "XmlPatterns" + ''; } diff --git a/pkgs/development/libraries/qt-5/5.5/default.nix b/pkgs/development/libraries/qt-5/5.5/default.nix index 9b1324d11373..955d57350c29 100644 --- a/pkgs/development/libraries/qt-5/5.5/default.nix +++ b/pkgs/development/libraries/qt-5/5.5/default.nix @@ -1,15 +1,20 @@ -# Maintainer's Notes: -# -# Minor updates: -# 1. Edit ./fetchsrcs.sh to point to the updated URL. -# 2. Run ./fetchsrcs.sh. -# 3. Build and enjoy. -# -# Major updates: -# We prefer not to immediately overwrite older versions with major updates, so -# make a copy of this directory first. After copying, be sure to delete ./tmp -# if it exists. Then follow the minor update instructions. Be sure to check if -# any new components have been added and package them as necessary. +/* + +# Minor Updates + +1. Edit ./fetchsrcs.sh to point to the updated URL. +2. Run ./fetchsrcs.sh. +3. Build and enjoy. + +# Major Updates + +1. Make a copy of this directory. (We like to keep the old version around + for a short time after major updates.) +2. Delete the tmp/ subdirectory of the copy. +3. Follow the minor update instructions above. +4. Package any new Qt modules, if necessary. + +*/ { pkgs @@ -37,21 +42,19 @@ let inherit src; propagatedBuildInputs = args.qtInputs ++ (args.propagatedBuildInputs or []); + nativeBuildInputs = (args.nativeBuildInputs or []) ++ [ self.fixQtModuleCMakeConfig ]; NIX_QT_SUBMODULE = args.NIX_QT_SUBMODULE or true; dontAddPrefix = args.dontAddPrefix or true; dontFixLibtool = args.dontFixLibtool or true; configureScript = args.configureScript or "qmake"; + outputs = args.outputs or [ "dev" "out" ]; + setOutputFlags = args.setOutputFlags or false; + enableParallelBuilding = args.enableParallelBuilding or true; - meta = { - homepage = http://qt-project.org; - description = "A cross-platform application framework for C++"; - license = with licenses; [ fdl13 gpl2 lgpl21 lgpl3 ]; - maintainers = with maintainers; [ bbenoist qknight ttuegel ]; - platforms = platforms.linux; - } // (args.meta or {}); + meta = self.qtbase.meta // (args.meta or {}); }); addPackages = self: with self; @@ -61,6 +64,7 @@ let qtbase = callPackage ./qtbase { mesa = pkgs.mesa_noglu; + harfbuzz = pkgs.harfbuzz-icu; cups = if stdenv.isLinux then pkgs.cups else null; # GNOME dependencies are not used unless gtkStyle == true inherit (pkgs.gnome) libgnomeui GConf gnome_vfs; @@ -110,7 +114,10 @@ let ]; makeQtWrapper = makeSetupHook { deps = [ makeWrapper ]; } ./make-qt-wrapper.sh; + fixQtModuleCMakeConfig = makeSetupHook { } ./fix-qt-module-cmake-config.sh; }; -in makeScope pkgs.newScope addPackages + self = makeScope pkgs.newScope addPackages; + +in self diff --git a/pkgs/development/libraries/qt-5/5.5/fix-qt-module-cmake-config.sh b/pkgs/development/libraries/qt-5/5.5/fix-qt-module-cmake-config.sh new file mode 100644 index 000000000000..7ca3e33b613c --- /dev/null +++ b/pkgs/development/libraries/qt-5/5.5/fix-qt-module-cmake-config.sh @@ -0,0 +1,5 @@ +fixQtModuleCMakeConfig() { + local module="$1" + sed -e "/set(imported_location/ s@\\\${_qt5${module}_install_prefix}@${!outputLib}@" \ + -i "${!outputDev}/lib/cmake/Qt5${module}/Qt5${module}Config.cmake" +} diff --git a/pkgs/development/libraries/qt-5/5.5/make-qt-wrapper.sh b/pkgs/development/libraries/qt-5/5.5/make-qt-wrapper.sh index d61665455bf4..f29bbb73639b 100644 --- a/pkgs/development/libraries/qt-5/5.5/make-qt-wrapper.sh +++ b/pkgs/development/libraries/qt-5/5.5/make-qt-wrapper.sh @@ -1,11 +1,3 @@ -addQtDependency() { - addToSearchPath QT_PLUGIN_PATH "$1/lib/qt5/plugins" - addToSearchPath QML_IMPORT_PATH "$1/lib/qt5/imports" - addToSearchPath QML2_IMPORT_PATH "$1/lib/qt5/qml" - addToSearchPath XDG_CONFIG_DIRS "$1/etc/xdg" - addToSearchPath XDG_DATA_DIRS "$1/share" -} - wrapQtProgram() { local prog="$1" shift @@ -13,8 +5,8 @@ wrapQtProgram() { --prefix QT_PLUGIN_PATH : "$QT_PLUGIN_PATH" \ --prefix QML_IMPORT_PATH : "$QML_IMPORT_PATH" \ --prefix QML2_IMPORT_PATH : "$QML2_IMPORT_PATH" \ - --prefix XDG_CONFIG_DIRS : "$XDG_CONFIG_DIRS" \ - --prefix XDG_DATA_DIRS : "$XDG_DATA_DIRS" \ + --prefix XDG_CONFIG_DIRS : "$NIX_WRAP_XDG_CONFIG_DIRS" \ + --prefix XDG_DATA_DIRS : "$NIX_WRAP_XDG_DATA_DIRS" \ "$@" } @@ -27,16 +19,16 @@ makeQtWrapper() { --prefix QT_PLUGIN_PATH : "$QT_PLUGIN_PATH" \ --prefix QML_IMPORT_PATH : "$QML_IMPORT_PATH" \ --prefix QML2_IMPORT_PATH : "$QML2_IMPORT_PATH" \ - --prefix XDG_CONFIG_DIRS : "$XDG_CONFIG_DIRS" \ - --prefix XDG_DATA_DIRS : "$XDG_DATA_DIRS" \ + --prefix XDG_CONFIG_DIRS : "$NIX_WRAP_XDG_CONFIG_DIRS" \ + --prefix XDG_DATA_DIRS : "$NIX_WRAP_XDG_DATA_DIRS" \ "$@" } # cannot use addToSearchPath because these directories may not exist yet -export QT_PLUGIN_PATH="$QT_PLUGIN_PATH${QT_PLUGIN_PATH:+:}$out/lib/qt5/plugins" -export QML_IMPORT_PATH="$QML_IMPORT_PATH${QML_IMPORT_PATH:+:}$out/lib/qt5/imports" -export QML2_IMPORT_PATH="$QML2_IMPORT_PATH${QML2_IMPORT_PATH:+:}$out/lib/qt5/qml" -export XDG_CONFIG_DIRS="$XDG_CONFIG_DIRS${XDG_CONFIG_DIRS:+:}$out/etc/xdg" -export XDG_DATA_DIRS="$XDG_DATA_DIRS${XDG_DATA_DIRS:+:}$out/share" - -envHooks+=(addQtDependency) +export QT_PLUGIN_PATH="$QT_PLUGIN_PATH${QT_PLUGIN_PATH:+:}${!outputLib}/lib/qt5/plugins" +export QML_IMPORT_PATH="$QML_IMPORT_PATH${QML_IMPORT_PATH:+:}${!outputLib}/lib/qt5/imports" +export QML2_IMPORT_PATH="$QML2_IMPORT_PATH${QML2_IMPORT_PATH:+:}${!outputLib}/lib/qt5/qml" +export XDG_CONFIG_DIRS="$XDG_CONFIG_DIRS${XDG_CONFIG_DIRS:+:}${!outputLib}/etc/xdg" +export XDG_DATA_DIRS="$XDG_DATA_DIRS${XDG_DATA_DIRS:+:}${!outputLib}/share" +export NIX_WRAP_XDG_CONFIG_DIRS="$NIX_WRAP_XDG_CONFIG_DIRS${NIX_WRAP_XDG_CONFIG_DIRS:+:}${!outputLib}/etc/xdg" +export NIX_WRAP_XDG_DATA_DIRS="$NIX_WRAP_XDG_DATA_DIRS${NIX_WRAP_XDG_DATA_DIRS:+:}${!outputLib}/share" diff --git a/pkgs/development/libraries/qt-5/5.5/qtbase/default.nix b/pkgs/development/libraries/qt-5/5.5/qtbase/default.nix index ffa0a95be2c0..35410d55e66d 100644 --- a/pkgs/development/libraries/qt-5/5.5/qtbase/default.nix +++ b/pkgs/development/libraries/qt-5/5.5/qtbase/default.nix @@ -1,10 +1,11 @@ -{ stdenv, lib, fetchurl, copyPathsToStore, makeWrapper +{ stdenv, lib, fetchurl, copyPathsToStore, fixQtModuleCMakeConfig , srcs , xlibs, libX11, libxcb, libXcursor, libXext, libXrender, libXi , xcbutil, xcbutilimage, xcbutilkeysyms, xcbutilwm, libxkbcommon -, fontconfig, freetype, openssl, dbus, glib, udev, libxml2, libxslt, pcre16 -, zlib, libjpeg, libpng, libtiff, sqlite, icu, harfbuzz +, fontconfig, freetype, harfbuzz +, openssl, dbus, glib, udev, libxml2, libxslt, pcre16 +, zlib, libjpeg, libpng, libtiff, sqlite, icu , coreutils, bison, flex, gdb, gperf, lndir, ruby , python, perl, pkgconfig @@ -14,8 +15,7 @@ , mysql ? null, postgresql ? null # options -, mesaSupported, mesa, mesa_glu -, buildDocs ? false +, mesaSupported, mesa , buildExamples ? false , buildTests ? false , developerBuild ? false @@ -43,6 +43,8 @@ stdenv.mkDerivation { sourceRoot = "qt-everywhere-opensource-src-${version}"; + outputs = [ "dev" "out" ]; + postUnpack = '' mv qtbase-opensource-src-${version} ./qt-everywhere-opensource-src-${version}/qtbase ''; @@ -70,44 +72,68 @@ stdenv.mkDerivation { sed -i 's/PATHS.*NO_DEFAULT_PATH//' "qtbase/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in" substituteInPlace qtbase/src/network/kernel/qdnslookup_unix.cpp \ - --replace "@glibc@" "${stdenv.cc.libc}" + --replace "@glibc@" "${stdenv.cc.libc.out}" substituteInPlace qtbase/src/network/kernel/qhostinfo_unix.cpp \ - --replace "@glibc@" "${stdenv.cc.libc}" + --replace "@glibc@" "${stdenv.cc.libc.out}" substituteInPlace qtbase/src/plugins/platforms/xcb/qxcbcursor.cpp \ - --replace "@libXcursor@" "${libXcursor}" + --replace "@libXcursor@" "${libXcursor.out}" substituteInPlace qtbase/src/network/ssl/qsslsocket_openssl_symbols.cpp \ - --replace "@openssl@" "${openssl}" + --replace "@openssl@" "${openssl.out}" substituteInPlace qtbase/src/dbus/qdbus_symbols.cpp \ - --replace "@dbus_libs@" "${dbus}" + --replace "@dbus_libs@" "${dbus.lib}" substituteInPlace \ qtbase/src/plugins/platforminputcontexts/compose/generator/qtablegenerator.cpp \ - --replace "@libX11@" "${libX11}" + --replace "@libX11@" "${libX11.out}" '' + lib.optionalString gtkStyle '' - substituteInPlace qtbase/src/widgets/styles/qgtk2painter.cpp --replace "@gtk@" "${gtk}" + substituteInPlace qtbase/src/widgets/styles/qgtk2painter.cpp --replace "@gtk@" "${gtk.out}" substituteInPlace qtbase/src/widgets/styles/qgtkstyle_p.cpp \ - --replace "@gtk@" "${gtk}" \ - --replace "@gnome_vfs@" "${gnome_vfs}" \ - --replace "@libgnomeui@" "${libgnomeui}" \ - --replace "@gconf@" "${GConf}" + --replace "@gtk@" "${gtk.out}" \ + --replace "@gnome_vfs@" "${gnome_vfs.out}" \ + --replace "@libgnomeui@" "${libgnomeui.out}" \ + --replace "@gconf@" "${GConf.out}" '' + lib.optionalString mesaSupported '' substituteInPlace \ qtbase/src/plugins/platforms/xcb/gl_integrations/xcb_glx/qglxintegration.cpp \ - --replace "@mesa@" "${mesa}" - substituteInPlace qtbase/mkspecs/common/linux.conf --replace "@mesa@" "${mesa}" + --replace "@mesa_lib@" "${mesa.out}" + substituteInPlace qtbase/mkspecs/common/linux.conf \ + --replace "@mesa_lib@" "${mesa.out}" \ + --replace "@mesa_inc@" "${mesa.dev}" ''; + setOutputFlags = false; preConfigure = '' export LD_LIBRARY_PATH="$PWD/qtbase/lib:$PWD/qtbase/plugins/platforms:$LD_LIBRARY_PATH" export MAKEFLAGS=-j$NIX_BUILD_CORES - export configureFlags+="-plugindir $out/lib/qt5/plugins -importdir $out/lib/qt5/imports -qmldir $out/lib/qt5/qml" - export configureFlags+=" -docdir $out/share/doc/qt5" + _multioutQtDevs() { + # We cannot simply set these paths in configureFlags because libQtCore retains + # references to the paths it was built with. + moveToOutput "bin" "$dev" + moveToOutput "include" "$dev" + moveToOutput "mkspecs" "$dev" + + # The destination directory must exist or moveToOutput will do nothing + mkdir -p "$dev/share" + moveToOutput "share/doc" "$dev" + + mkdir -p "$dev/lib" + lndir -silent "$out/lib" "$dev/lib" + if [[ -h "$dev/lib/cmake" ]]; then rm "$dev/lib/cmake"; fi + if [[ -h "$dev/lib/pkgconfig" ]]; then rm "$dev/lib/pkgconfig"; fi + } + preFixupHooks+=(_multioutQtDevs) + + configureFlags+="\ + -plugindir $out/lib/qt5/plugins \ + -importdir $out/lib/qt5/imports \ + -qmldir $out/lib/qt5/qml \ + -docdir $out/share/doc/qt5" ''; prefixKey = "-prefix "; @@ -184,40 +210,53 @@ stdenv.mkDerivation { # PostgreSQL autodetection fails sporadically because Qt omits the "-lpq" flag # if dependency paths contain the string "pq", which can occur in the hash. # To prevent these failures, we need to override PostgreSQL detection. - PSQL_LIBS = lib.optionalString (postgresql != null) "-L${postgresql}/lib -lpq"; + PSQL_LIBS = lib.optionalString (postgresql != null) "-L${postgresql.lib}/lib -lpq"; propagatedBuildInputs = [ + dbus glib libxml2 libxslt openssl pcre16 sqlite udev zlib + + # Image formats + libjpeg libpng libtiff + + # Text rendering + fontconfig freetype harfbuzz icu + + # X11 libs xlibs.libXcomposite libX11 libxcb libXext libXrender libXi - fontconfig freetype openssl dbus.libs glib udev libxml2 libxslt pcre16 - zlib libjpeg libpng libtiff sqlite icu harfbuzz xcbutil xcbutilimage xcbutilkeysyms xcbutilwm libxkbcommon ] - # Qt doesn't directly need GLU (just GL), but many apps use, it's small and - # doesn't remain a runtime-dep if not used - ++ lib.optionals mesaSupported [ mesa mesa_glu ] - ++ lib.optional (cups != null) cups - ++ lib.optional (mysql != null) mysql.lib - ++ lib.optional (postgresql != null) postgresql - ++ lib.optionals gtkStyle [gnome_vfs libgnomeui gtk GConf]; + ++ lib.optional mesaSupported mesa; buildInputs = [ bison flex gperf ruby ] - ++ lib.optional developerBuild gdb; - - nativeBuildInputs = [ python perl pkgconfig ]; + ++ lib.optional developerBuild gdb + ++ lib.optional (cups != null) cups + ++ lib.optional (mysql != null) mysql.lib + ++ lib.optional (postgresql != null) postgresql + ++ lib.optionals gtkStyle [gnome_vfs.out libgnomeui.out gtk GConf]; - propagatedNativeBuildInputs = [ makeWrapper ]; + nativeBuildInputs = [ fixQtModuleCMakeConfig lndir python perl pkgconfig ]; # freetype-2.5.4 changed signedness of some struct fields NIX_CFLAGS_COMPILE = "-Wno-error=sign-compare"; - postInstall = + postFixup = '' # Don't retain build-time dependencies like gdb and ruby. - sed '/QMAKE_DEFAULT_.*DIRS/ d' -i $out/mkspecs/qconfig.pri - '' - + lib.optionalString buildDocs '' - make docs && make install_docs + sed '/QMAKE_DEFAULT_.*DIRS/ d' -i $dev/mkspecs/qconfig.pri + + fixQtModuleCMakeConfig "Concurrent" + fixQtModuleCMakeConfig "Core" + fixQtModuleCMakeConfig "DBus" + fixQtModuleCMakeConfig "Gui" + fixQtModuleCMakeConfig "Network" + fixQtModuleCMakeConfig "OpenGL" + fixQtModuleCMakeConfig "OpenGLExtensions" + fixQtModuleCMakeConfig "PrintSupport" + fixQtModuleCMakeConfig "Sql" + fixQtModuleCMakeConfig "Test" + fixQtModuleCMakeConfig "Widgets" + fixQtModuleCMakeConfig "Xml" ''; inherit lndir; @@ -226,9 +265,9 @@ stdenv.mkDerivation { enableParallelBuilding = true; meta = with lib; { - homepage = http://qt-project.org; + homepage = http://www.qt.io; description = "A cross-platform application framework for C++"; - license = "GPL/LGPL"; + license = with licenses; [ fdl13 gpl2 lgpl21 lgpl3 ]; maintainers = with maintainers; [ bbenoist qknight ttuegel ]; platforms = platforms.linux; }; diff --git a/pkgs/development/libraries/qt-5/5.5/qtbase/dlopen-gl.patch b/pkgs/development/libraries/qt-5/5.5/qtbase/dlopen-gl.patch index 14411a95f3ac..59f510ac54da 100644 --- a/pkgs/development/libraries/qt-5/5.5/qtbase/dlopen-gl.patch +++ b/pkgs/development/libraries/qt-5/5.5/qtbase/dlopen-gl.patch @@ -10,7 +10,7 @@ Index: qt-everywhere-opensource-src-5.5.1/qtbase/src/plugins/platforms/xcb/gl_in QLibrary lib(QLatin1String("GL")); + if (!lib.load()) { + // Fallback to Mesa driver -+ lib.setFileName(QLatin1String("@mesa@/lib/libGL")); ++ lib.setFileName(QLatin1String("@mesa_lib@/lib/libGL")); + } glXGetProcAddressARB = (qt_glXGetProcAddressARB) lib.resolve("glXGetProcAddressARB"); } diff --git a/pkgs/development/libraries/qt-5/5.5/qtbase/mkspecs-libgl.patch b/pkgs/development/libraries/qt-5/5.5/qtbase/mkspecs-libgl.patch index 10115e8144ad..56ee0a411d4d 100644 --- a/pkgs/development/libraries/qt-5/5.5/qtbase/mkspecs-libgl.patch +++ b/pkgs/development/libraries/qt-5/5.5/qtbase/mkspecs-libgl.patch @@ -8,8 +8,8 @@ Index: qt-everywhere-opensource-src-5.5.1/qtbase/mkspecs/common/linux.conf QMAKE_LIBDIR_X11 = -QMAKE_INCDIR_OPENGL = -QMAKE_LIBDIR_OPENGL = -+QMAKE_INCDIR_OPENGL = @mesa@/include -+QMAKE_LIBDIR_OPENGL = @mesa@/lib ++QMAKE_INCDIR_OPENGL = @mesa_inc@/include ++QMAKE_LIBDIR_OPENGL = @mesa_lib@/lib QMAKE_INCDIR_OPENGL_ES2 = $$QMAKE_INCDIR_OPENGL QMAKE_LIBDIR_OPENGL_ES2 = $$QMAKE_LIBDIR_OPENGL QMAKE_INCDIR_EGL = diff --git a/pkgs/development/libraries/qt-5/5.5/qtbase/setup-hook.sh b/pkgs/development/libraries/qt-5/5.5/qtbase/setup-hook.sh index b86b6df28ac8..9cf1ef9ccb61 100644 --- a/pkgs/development/libraries/qt-5/5.5/qtbase/setup-hook.sh +++ b/pkgs/development/libraries/qt-5/5.5/qtbase/setup-hook.sh @@ -1,45 +1,26 @@ if [[ -z "$QMAKE" ]]; then -linkDependencyDir() { +_qtLinkDependencyDir() { @lndir@/bin/lndir -silent "$1/$2" "$qtOut/$2" if [[ -n "$NIX_QT_SUBMODULE" ]]; then find "$1/$2" -printf "$2/%P\n" >> "$out/nix-support/qt-inputs" fi } -addQtModule() { - if [[ -d "$1/mkspecs" ]]; then +_qtLinkModule() { + if [ -d "$1/mkspecs" ]; then # $1 is a Qt module - linkDependencyDir "$1" mkspecs + _qtLinkDependencyDir "$1" mkspecs for dir in bin include lib share; do - if [[ -d "$1/$dir" ]]; then - linkDependencyDir "$1" "$dir" + if [ -d "$1/$dir" ]; then + _qtLinkDependencyDir "$1" "$dir" fi done fi } -propagateRuntimeDeps() { - local propagated - for dir in "etc/xdg" "lib/qt5/plugins" "lib/qt5/qml" "lib/qt5/imports" "share"; do - if [[ -d "$1/$dir" ]]; then - propagated= - for pkg in $propagatedBuildInputs; do - if [[ "z$pkg" == "z$1" ]]; then - propagated=1 - break - fi - done - if [[ -z $propagated ]]; then - propagatedBuildInputs="$propagatedBuildInputs $1" - fi - break - fi - done -} - -rmQtModules() { +_qtRmModules() { cat "$out/nix-support/qt-inputs" | while read file; do if [[ -h "$out/$file" ]]; then rm "$out/$file" @@ -55,14 +36,66 @@ rmQtModules() { rm "$out/nix-support/qt-inputs" } -rmQMake() { +addToSearchPathOnceWithCustomDelimiter() { + local delim="$1" + local search="$2" + local target="$3" + local dirs + local exported + IFS="$delim" read -a dirs <<< "${!search}" + for dir in ${dirs[@]}; do + if [ "z$dir" == "z$target" ]; then exported=1; fi + done + if [ -z $exported ]; then + eval "export ${search}=\"${!search}${!search:+$delim}$target\"" + fi +} + +addToSearchPathOnce() { + addToSearchPathOnceWithCustomDelimiter ':' "$@" +} + +propagateOnce() { + addToSearchPathOnceWithCustomDelimiter ' ' "$@" +} + +_qtPropagateRuntimeDependencies() { + for dir in "lib/qt5/plugins" "lib/qt5/qml" "lib/qt5/imports"; do + if [ -d "$1/$dir" ]; then + propagateOnce propagatedBuildInputs "$1" + propagateOnce propagatedUserEnvPkgs "$1" + break + fi + done + addToSearchPathOnce QT_PLUGIN_PATH "$1/lib/qt5/plugins" + addToSearchPathOnce QML_IMPORT_PATH "$1/lib/qt5/imports" + addToSearchPathOnce QML2_IMPORT_PATH "$1/lib/qt5/qml" +} + +_qtRmQmake() { rm "$qtOut/bin/qmake" "$qtOut/bin/qt.conf" } -setQMakePath() { +_qtSetQmakePath() { export PATH="$qtOut/bin${PATH:+:}$PATH" } +_qtMultioutModuleDevs() { + # We cannot simply set these paths in configureFlags because libQtCore retains + # references to the paths it was built with. + moveToOutput "bin" "${!outputDev}" + moveToOutput "include" "${!outputDev}" + + # The destination directory must exist or moveToOutput will do nothing + mkdir -p "${!outputDev}/share" + moveToOutput "share/doc" "${!outputDev}" +} + +_qtMultioutDevs() { + # This is necessary whether the package is a Qt module or not + moveToOutput "mkspecs" "${!outputDev}" +} + qtOut="" if [[ -z "$NIX_QT_SUBMODULE" ]]; then qtOut=`mktemp -d` @@ -72,7 +105,7 @@ fi mkdir -p "$qtOut/bin" "$qtOut/mkspecs" "$qtOut/include" "$qtOut/nix-support" "$qtOut/lib" "$qtOut/share" -cp "@out@/bin/qmake" "$qtOut/bin" +cp "@dev@/bin/qmake" "$qtOut/bin" cat >"$qtOut/bin/qt.conf" <<EOF [Paths] Prefix = $qtOut @@ -84,17 +117,20 @@ EOF export QMAKE="$qtOut/bin/qmake" -envHooks+=(addQtModule propagateRuntimeDeps) -preConfigurePhases+=(setQMakePath) +envHooks+=(_qtLinkModule _qtPropagateRuntimeDependencies) +# Set PATH to find qmake first in a preConfigure hook +# It must run after all the envHooks! +preConfigureHooks+=(_qtSetQmakePath) +preFixupHooks+=(_qtMultioutDevs) if [[ -n "$NIX_QT_SUBMODULE" ]]; then - preFixupPhases+=(rmQtModules) - postPhases+=(rmQMake) + postInstallHooks+=(_qtRmQmake _qtRmModules) + preFixupHooks+=(_qtMultioutModuleDevs) fi fi if [[ -z "$NIX_QT_PIC" ]]; then - export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -fPIC" + export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE${NIX_CFLAGS_COMPILE:+ }-fPIC" export NIX_QT_PIC=1 fi diff --git a/pkgs/development/libraries/qt-5/5.5/qtconnectivity.nix b/pkgs/development/libraries/qt-5/5.5/qtconnectivity.nix index 95cd6fea79b4..35538c7261f1 100644 --- a/pkgs/development/libraries/qt-5/5.5/qtconnectivity.nix +++ b/pkgs/development/libraries/qt-5/5.5/qtconnectivity.nix @@ -3,4 +3,8 @@ qtSubmodule { name = "qtconnectivity"; qtInputs = [ qtbase qtdeclarative ]; + postFixup = '' + fixQtModuleCMakeConfig "Bluetooth" + fixQtModuleCMakeConfig "Nfc" + ''; } diff --git a/pkgs/development/libraries/qt-5/5.5/qtdeclarative/default.nix b/pkgs/development/libraries/qt-5/5.5/qtdeclarative/default.nix index 328d8aee72bd..407513f78498 100644 --- a/pkgs/development/libraries/qt-5/5.5/qtdeclarative/default.nix +++ b/pkgs/development/libraries/qt-5/5.5/qtdeclarative/default.nix @@ -5,4 +5,10 @@ qtSubmodule { patches = copyPathsToStore (lib.readPathsFromFile ./. ./series); qtInputs = [ qtbase qtsvg qtxmlpatterns ]; nativeBuildInputs = [ python ]; + postFixup = '' + fixQtModuleCMakeConfig "Qml" + fixQtModuleCMakeConfig "Quick" + fixQtModuleCMakeConfig "QuickTest" + fixQtModuleCMakeConfig "QuickWidgets" + ''; } diff --git a/pkgs/development/libraries/qt-5/5.5/qtenginio.nix b/pkgs/development/libraries/qt-5/5.5/qtenginio.nix index b860a73ef890..503a0f7ce4f5 100644 --- a/pkgs/development/libraries/qt-5/5.5/qtenginio.nix +++ b/pkgs/development/libraries/qt-5/5.5/qtenginio.nix @@ -3,4 +3,7 @@ qtSubmodule { name = "qtenginio"; qtInputs = [ qtdeclarative ]; + postFixup = '' + fixQtModuleCMakeConfig "Enginio" + ''; } diff --git a/pkgs/development/libraries/qt-5/5.5/qtlocation.nix b/pkgs/development/libraries/qt-5/5.5/qtlocation.nix index 1e134057c4b4..0e2ad8bafb30 100644 --- a/pkgs/development/libraries/qt-5/5.5/qtlocation.nix +++ b/pkgs/development/libraries/qt-5/5.5/qtlocation.nix @@ -3,4 +3,8 @@ qtSubmodule { name = "qtlocation"; qtInputs = [ qtbase qtmultimedia ]; + postFixup = '' + fixQtModuleCMakeConfig "Location" + fixQtModuleCMakeConfig "Positioning" + ''; } diff --git a/pkgs/development/libraries/qt-5/5.5/qtmultimedia.nix b/pkgs/development/libraries/qt-5/5.5/qtmultimedia.nix index b6b4d8ea0cf4..8db8fa5f4b96 100644 --- a/pkgs/development/libraries/qt-5/5.5/qtmultimedia.nix +++ b/pkgs/development/libraries/qt-5/5.5/qtmultimedia.nix @@ -9,4 +9,8 @@ qtSubmodule { pkgconfig alsaLib gstreamer gst-plugins-base libpulseaudio ]; configureFlags = "GST_VERSION=1.0"; + postFixup = '' + fixQtModuleCMakeConfig "Multimedia" + fixQtModuleCMakeConfig "MultimediaWidgets" + ''; } diff --git a/pkgs/development/libraries/qt-5/5.5/qtquick1/default.nix b/pkgs/development/libraries/qt-5/5.5/qtquick1/default.nix index 64937b3dcd37..4bf92fa01473 100644 --- a/pkgs/development/libraries/qt-5/5.5/qtquick1/default.nix +++ b/pkgs/development/libraries/qt-5/5.5/qtquick1/default.nix @@ -4,4 +4,7 @@ qtSubmodule { name = "qtquick1"; patches = copyPathsToStore (lib.readPathsFromFile ./. ./series); qtInputs = [ qtscript qtsvg qtwebkit qtxmlpatterns ]; + postFixup = '' + fixQtModuleCMakeConfig "Declarative" + ''; } diff --git a/pkgs/development/libraries/qt-5/5.5/qtscript/default.nix b/pkgs/development/libraries/qt-5/5.5/qtscript/default.nix index 127766e2ebd6..b81a43aeadb0 100644 --- a/pkgs/development/libraries/qt-5/5.5/qtscript/default.nix +++ b/pkgs/development/libraries/qt-5/5.5/qtscript/default.nix @@ -4,4 +4,7 @@ qtSubmodule { name = "qtscript"; qtInputs = [ qtbase qttools ]; patches = [ ./0001-glib-2.32.patch ]; + postFixup = '' + fixQtModuleCMakeConfig "Script" + ''; } diff --git a/pkgs/development/libraries/qt-5/5.5/qtsensors.nix b/pkgs/development/libraries/qt-5/5.5/qtsensors.nix index 61e64dc47e4d..5776f45a7068 100644 --- a/pkgs/development/libraries/qt-5/5.5/qtsensors.nix +++ b/pkgs/development/libraries/qt-5/5.5/qtsensors.nix @@ -3,4 +3,7 @@ qtSubmodule { name = "qtsensors"; qtInputs = [ qtbase qtdeclarative ]; + postFixup = '' + fixQtModuleCMakeConfig "Sensors" + ''; } diff --git a/pkgs/development/libraries/qt-5/5.5/qtserialport/0001-dlopen-serialport-udev.patch b/pkgs/development/libraries/qt-5/5.5/qtserialport/0001-dlopen-serialport-udev.patch index 6636cc9265a8..3a813dc80074 100644 --- a/pkgs/development/libraries/qt-5/5.5/qtserialport/0001-dlopen-serialport-udev.patch +++ b/pkgs/development/libraries/qt-5/5.5/qtserialport/0001-dlopen-serialport-udev.patch @@ -16,10 +16,10 @@ index 6f2cabd..81b9849 100644 { if (!udevLibrary->isLoaded()) { - udevLibrary->setFileNameAndVersion(QStringLiteral("udev"), 1); -+ udevLibrary->setFileNameAndVersion(QStringLiteral("@udev@/lib/libudev"), 1); ++ udevLibrary->setFileNameAndVersion(QStringLiteral("@libudev@/lib/libudev"), 1); if (!udevLibrary->load()) { - udevLibrary->setFileNameAndVersion(QStringLiteral("udev"), 0); -+ udevLibrary->setFileNameAndVersion(QStringLiteral("@udev@/lib/libudev"), 0); ++ udevLibrary->setFileNameAndVersion(QStringLiteral("@libudev@/lib/libudev"), 0); if (!udevLibrary->load()) { qWarning("Failed to load the library: %s, supported version(s): %i and %i", qPrintable(udevLibrary->fileName()), 1, 0); return false; diff --git a/pkgs/development/libraries/qt-5/5.5/qtserialport/default.nix b/pkgs/development/libraries/qt-5/5.5/qtserialport/default.nix index fa7383fc1e76..3f409f9c0e08 100644 --- a/pkgs/development/libraries/qt-5/5.5/qtserialport/default.nix +++ b/pkgs/development/libraries/qt-5/5.5/qtserialport/default.nix @@ -1,7 +1,15 @@ -{ qtSubmodule, qtbase }: +{ qtSubmodule, qtbase, substituteAll, libudev }: qtSubmodule { name = "qtserialport"; qtInputs = [ qtbase ]; - patches = [ ./0001-dlopen-serialport-udev.patch ]; + patches = [ + (substituteAll { + src = ./0001-dlopen-serialport-udev.patch; + libudev = libudev.out; + }) + ]; + postFixup = '' + fixQtModuleCMakeConfig "SerialPort" + ''; } diff --git a/pkgs/development/libraries/qt-5/5.5/qtsvg.nix b/pkgs/development/libraries/qt-5/5.5/qtsvg.nix index b9ccac7cf933..a460d6da4c2a 100644 --- a/pkgs/development/libraries/qt-5/5.5/qtsvg.nix +++ b/pkgs/development/libraries/qt-5/5.5/qtsvg.nix @@ -3,4 +3,7 @@ qtSubmodule { name = "qtsvg"; qtInputs = [ qtbase ]; + postFixup = '' + fixQtModuleCMakeConfig "Svg" + ''; } diff --git a/pkgs/development/libraries/qt-5/5.5/qttools.nix b/pkgs/development/libraries/qt-5/5.5/qttools.nix index 65edc4508128..1472691c5254 100644 --- a/pkgs/development/libraries/qt-5/5.5/qttools.nix +++ b/pkgs/development/libraries/qt-5/5.5/qttools.nix @@ -3,4 +3,14 @@ qtSubmodule { name = "qttools"; qtInputs = [ qtbase ]; + postFixup = '' + moveToOutput "bin/qdbus" "$out" + moveToOutput "bin/qtpaths" "$out" + + fixQtModuleCMakeConfig "Designer" + fixQtModuleCMakeConfig "Help" + fixQtModuleCMakeConfig "LinguistTools" + fixQtModuleCMakeConfig "UiPlugin" + fixQtModuleCMakeConfig "UiTools" + ''; } diff --git a/pkgs/development/libraries/qt-5/5.5/qtwebkit/0003-dlopen-webkit-udev.patch b/pkgs/development/libraries/qt-5/5.5/qtwebkit/0003-dlopen-webkit-udev.patch index f3b9d407bd72..1c360cd81aa2 100644 --- a/pkgs/development/libraries/qt-5/5.5/qtwebkit/0003-dlopen-webkit-udev.patch +++ b/pkgs/development/libraries/qt-5/5.5/qtwebkit/0003-dlopen-webkit-udev.patch @@ -16,13 +16,13 @@ index 60ff317..da8ac69 100644 { m_libUdev.setLoadHints(QLibrary::ResolveAllSymbolsHint); - m_libUdev.setFileNameAndVersion(QStringLiteral("udev"), 1); -+ m_libUdev.setFileNameAndVersion(QStringLiteral("@udev@/lib/libudev"), 1); ++ m_libUdev.setFileNameAndVersion(QStringLiteral("@libudev@/lib/libudev"), 1); m_loaded = m_libUdev.load(); if (resolveMethods()) return true; - m_libUdev.setFileNameAndVersion(QStringLiteral("udev"), 0); -+ m_libUdev.setFileNameAndVersion(QStringLiteral("@udev@/lib/libudev"), 0); ++ m_libUdev.setFileNameAndVersion(QStringLiteral("@libudev@/lib/libudev"), 0); m_loaded = m_libUdev.load(); return resolveMethods(); } diff --git a/pkgs/development/libraries/qt-5/5.5/qtwebkit/default.nix b/pkgs/development/libraries/qt-5/5.5/qtwebkit/default.nix index 596c02d39afb..b441a2448d76 100644 --- a/pkgs/development/libraries/qt-5/5.5/qtwebkit/default.nix +++ b/pkgs/development/libraries/qt-5/5.5/qtwebkit/default.nix @@ -1,6 +1,6 @@ { qtSubmodule, stdenv, qtdeclarative, qtlocation, qtmultimedia, qtsensors , fontconfig, gdk_pixbuf, gtk, libwebp, libxml2, libxslt -, sqlite, udev +, sqlite, libudev , bison2, flex, gdb, gperf, perl, pkgconfig, python, ruby , substituteAll , flashplayerFix ? false @@ -18,16 +18,21 @@ qtSubmodule { patches = let dlopen-webkit-nsplugin = substituteAll { src = ./0001-dlopen-webkit-nsplugin.patch; - inherit gtk gdk_pixbuf; + gtk = gtk.out; + gdk_pixbuf = gdk_pixbuf.out; }; dlopen-webkit-gtk = substituteAll { src = ./0002-dlopen-webkit-gtk.patch; - inherit gtk; + gtk = gtk.out; }; dlopen-webkit-udev = substituteAll { src = ./0003-dlopen-webkit-udev.patch; - inherit udev; + libudev = libudev.out; }; in optionals flashplayerFix [ dlopen-webkit-nsplugin dlopen-webkit-gtk ] ++ [ dlopen-webkit-udev ]; + postFixup = '' + fixQtModuleCMakeConfig "WebKit" + fixQtModuleCMakeConfig "WebKitWidgets" + ''; } diff --git a/pkgs/development/libraries/qt-5/5.5/qtwebsockets.nix b/pkgs/development/libraries/qt-5/5.5/qtwebsockets.nix index fbdfbbcf0dbe..c0d0f9e7d714 100644 --- a/pkgs/development/libraries/qt-5/5.5/qtwebsockets.nix +++ b/pkgs/development/libraries/qt-5/5.5/qtwebsockets.nix @@ -3,4 +3,7 @@ qtSubmodule { name = "qtwebsockets"; qtInputs = [ qtbase qtdeclarative ]; + postFixup = '' + fixQtModuleCMakeConfig "WebSockets" + ''; } diff --git a/pkgs/development/libraries/qt-5/5.5/qtx11extras.nix b/pkgs/development/libraries/qt-5/5.5/qtx11extras.nix index a765161e2d7e..db92f1353627 100644 --- a/pkgs/development/libraries/qt-5/5.5/qtx11extras.nix +++ b/pkgs/development/libraries/qt-5/5.5/qtx11extras.nix @@ -3,4 +3,7 @@ qtSubmodule { name = "qtx11extras"; qtInputs = [ qtbase ]; + postFixup = '' + fixQtModuleCMakeConfig "X11Extras" + ''; } diff --git a/pkgs/development/libraries/qt-5/5.5/qtxmlpatterns.nix b/pkgs/development/libraries/qt-5/5.5/qtxmlpatterns.nix index 9a8ddbba2bd2..3b22132e4c38 100644 --- a/pkgs/development/libraries/qt-5/5.5/qtxmlpatterns.nix +++ b/pkgs/development/libraries/qt-5/5.5/qtxmlpatterns.nix @@ -3,4 +3,7 @@ qtSubmodule { name = "qtxmlpatterns"; qtInputs = [ qtbase ]; + postFixup = '' + fixQtModuleCMakeConfig "XmlPatterns" + ''; } diff --git a/pkgs/development/libraries/rdkafka/default.nix b/pkgs/development/libraries/rdkafka/default.nix index 947b06021cd2..32fff70ebfba 100644 --- a/pkgs/development/libraries/rdkafka/default.nix +++ b/pkgs/development/libraries/rdkafka/default.nix @@ -12,6 +12,8 @@ stdenv.mkDerivation rec { buildInputs = [ zlib perl ]; + NIX_CFLAGS_COMPILE = "-Wno-error=strict-overflow"; + postPatch = '' patchShebangs . ''; diff --git a/pkgs/development/libraries/readline/6.3.nix b/pkgs/development/libraries/readline/6.3.nix index f770fabb35d3..11d4271b168b 100644 --- a/pkgs/development/libraries/readline/6.3.nix +++ b/pkgs/development/libraries/readline/6.3.nix @@ -8,6 +8,8 @@ stdenv.mkDerivation rec { sha256 = "0hzxr9jxqqx5sxsv9vmlxdnvlr9vi4ih1avjb869hbs6p5qn1fjn"; }; + outputs = [ "dev" "out" "doc" ]; + propagatedBuildInputs = [ncurses]; patchFlags = "-p0"; diff --git a/pkgs/development/libraries/schroedinger/default.nix b/pkgs/development/libraries/schroedinger/default.nix index 33f5ba867d6a..2df7d0518942 100644 --- a/pkgs/development/libraries/schroedinger/default.nix +++ b/pkgs/development/libraries/schroedinger/default.nix @@ -1,4 +1,4 @@ -{stdenv, fetchurl, orc, pkgconfig}: +{ stdenv, fetchurl, orc, pkgconfig }: stdenv.mkDerivation { name = "schroedinger-1.0.11"; @@ -11,16 +11,12 @@ stdenv.mkDerivation { sha256 = "04prr667l4sn4zx256v1z36a0nnkxfdqyln48rbwlamr6l3jlmqy"; }; - buildInputs = [orc pkgconfig]; + outputs = [ "dev" "out" "docdev" ]; - # The test suite is known not to build against Orc >0.4.16 in Schroedinger 1.0.11. - # A fix is in upstream, so test when pulling 1.0.12 if this is still needed. See: - # http://www.mail-archive.com/schrodinger-devel@lists.sourceforge.net/msg00415.html - preBuild = '' - substituteInPlace Makefile \ - --replace "SUBDIRS = schroedinger doc tools testsuite" "SUBDIRS = schroedinger doc tools" \ - --replace "DIST_SUBDIRS = schroedinger doc tools testsuite" "DIST_SUBDIRS = schroedinger doc tools" - ''; + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ orc ]; + + doCheck = true; meta = with stdenv.lib; { homepage = "http://diracvideo.org/"; diff --git a/pkgs/development/libraries/science/robotics/ispike/default.nix b/pkgs/development/libraries/science/robotics/ispike/default.nix new file mode 100644 index 000000000000..5f2263d821d0 --- /dev/null +++ b/pkgs/development/libraries/science/robotics/ispike/default.nix @@ -0,0 +1,24 @@ +{ stdenv, fetchurl, cmake, boost +}: + +stdenv.mkDerivation rec { + name = "ispike-${version}"; + version = "2.1.1"; + + src = fetchurl { + url = "mirror://sourceforge/ispike/${name}.tar.gz"; + sha256 = "0khrxp43bi5kisr8j4lp9fl4r5marzf7b4inys62ac108sfb28lp"; + }; + + buildInputs = [ cmake boost ]; + + meta = { + description = "Spiking neural interface between iCub and a spiking neural simulator"; + homepage = https://sourceforge.net/projects/ispike/; + license = stdenv.lib.licenses.lgpl3; + platforms = stdenv.lib.platforms.linux; + maintainers = [ stdenv.lib.maintainers.nico202 ]; + }; + + +} diff --git a/pkgs/development/libraries/scmccid/default.nix b/pkgs/development/libraries/scmccid/default.nix index 7dcde2a09a8c..f88bd64f597b 100644 --- a/pkgs/development/libraries/scmccid/default.nix +++ b/pkgs/development/libraries/scmccid/default.nix @@ -18,7 +18,7 @@ stdenv.mkDerivation rec { buildInputs = [ patchelf ]; installPhase = '' - RPATH=${libusb}/lib:${stdenv.cc.libc}/lib + RPATH=${libusb.out}/lib:${stdenv.cc.libc.out}/lib for a in proprietary/*/Contents/Linux/*.so*; do if ! test -L $a; then diff --git a/pkgs/development/libraries/slang/default.nix b/pkgs/development/libraries/slang/default.nix index bf1f38fbb83d..e83718673aae 100644 --- a/pkgs/development/libraries/slang/default.nix +++ b/pkgs/development/libraries/slang/default.nix @@ -7,20 +7,29 @@ stdenv.mkDerivation rec { sha256 = "0aqd2cjabj6nhd4r3dc4vhqif2bf3dmqnrn2gj0xm4gqyfd177jy"; }; + outputs = [ "dev" "out" "doc" ]; + # Fix some wrong hardcoded paths preConfigure = '' - sed -i -e "s|/usr/lib/terminfo|${ncurses}/lib/terminfo|" configure - sed -i -e "s|/usr/lib/terminfo|${ncurses}/lib/terminfo|" src/sltermin.c + sed -i -e "s|/usr/lib/terminfo|${ncurses.out}/lib/terminfo|" configure + sed -i -e "s|/usr/lib/terminfo|${ncurses.out}/lib/terminfo|" src/sltermin.c sed -i -e "s|/bin/ln|ln|" src/Makefile.in + sed -i -e "s|-ltermcap|-lncurses|" ./configure ''; configureFlags = "--with-png=${libpng} --with-z=${zlib} --with-pcre=${pcre} --with-readline=${readline}"; - buildInputs = [ncurses pcre libpng zlib readline]; + buildInputs = [ pcre libpng zlib readline ]; + propagatedBuildInputs = [ ncurses ]; + + postInstall = '' + find "$out"/lib/ -name '*.so' -exec chmod +x "{}" \; + sed '/^Libs:/s/$/ -lncurses/' -i "$dev"/lib/pkgconfig/slang.pc + ''; - meta = { + meta = with stdenv.lib; { description = "A multi-platform programmer's library designed to allow a developer to create robust software"; homepage = http://www.jedsoft.org/slang/; - license = stdenv.lib.licenses.gpl2Plus; - platforms = stdenv.lib.platforms.unix; - maintainers = with stdenv.lib.maintainers; [ fuuzetsu ]; + license = licenses.gpl2Plus; + platforms = platforms.unix; + maintainers = [ maintainers.fuuzetsu ]; }; } diff --git a/pkgs/development/libraries/smpeg/default.nix b/pkgs/development/libraries/smpeg/default.nix index c2473ae2c5db..2f300abebbf1 100644 --- a/pkgs/development/libraries/smpeg/default.nix +++ b/pkgs/development/libraries/smpeg/default.nix @@ -31,7 +31,7 @@ stdenv.mkDerivation rec { wrapProgram $out/bin/smpeg-config \ --prefix PATH ":" "${pkgconfig}/bin" \ - --prefix PKG_CONFIG_PATH ":" "${SDL}/lib/pkgconfig" + --prefix PKG_CONFIG_PATH ":" "${SDL.dev}/lib/pkgconfig" ''; meta = { diff --git a/pkgs/development/libraries/socket_wrapper/default.nix b/pkgs/development/libraries/socket_wrapper/default.nix index 0c6f40c8b143..bff4f393d1db 100644 --- a/pkgs/development/libraries/socket_wrapper/default.nix +++ b/pkgs/development/libraries/socket_wrapper/default.nix @@ -9,6 +9,7 @@ stdenv.mkDerivation rec { }; nativeBuildInputs = [ cmake pkgconfig ]; + buildInputs = [ (stdenv.cc.libc.out or null) ]; meta = with stdenv.lib; { description = "a library passing all socket communications through unix sockets"; diff --git a/pkgs/development/libraries/speex/default.nix b/pkgs/development/libraries/speex/default.nix index 9a1c00e63b9d..8e3cf899e40b 100644 --- a/pkgs/development/libraries/speex/default.nix +++ b/pkgs/development/libraries/speex/default.nix @@ -2,7 +2,7 @@ stdenv.mkDerivation rec { name = "speex-1.2rc2"; - + src = fetchurl { url = "http://downloads.us.xiph.org/releases/speex/${name}.tar.gz"; sha256 = "14g8ph39inkrif749lzjm089g7kwk0hymq1a3i9ch5gz8xr7r8na"; @@ -11,7 +11,9 @@ stdenv.mkDerivation rec { postPatch = '' sed -i '/AC_CONFIG_MACRO_DIR/i PKG_PROG_PKG_CONFIG' configure.ac ''; - + + outputs = [ "dev" "out" "doc" ]; + nativeBuildInputs = [ autoreconfHook pkgconfig ]; buildInputs = [ fftw speexdsp ]; diff --git a/pkgs/development/libraries/speexdsp/default.nix b/pkgs/development/libraries/speexdsp/default.nix index 7112afbea8a2..56b1900837ac 100644 --- a/pkgs/development/libraries/speexdsp/default.nix +++ b/pkgs/development/libraries/speexdsp/default.nix @@ -11,6 +11,8 @@ stdenv.mkDerivation rec { patches = [ ./build-fix.patch ]; postPatch = "sed '3i#include <stdint.h>' -i ./include/speex/speexdsp_config_types.h.in"; + outputs = [ "dev" "out" "doc" ]; + nativeBuildInputs = [ autoreconfHook pkgconfig ]; buildInputs = [ fftw ]; diff --git a/pkgs/development/libraries/sqlite/default.nix b/pkgs/development/libraries/sqlite/default.nix index 24be2c2a9c85..feb5e5d30407 100644 --- a/pkgs/development/libraries/sqlite/default.nix +++ b/pkgs/development/libraries/sqlite/default.nix @@ -10,6 +10,8 @@ stdenv.mkDerivation { sha1 = "c4b4dcd735a4daf5a2e2bb90f374484c8d4dad29"; }; + outputs = [ "dev" "out" "bin" ]; + buildInputs = lib.optionals interactive [ readline ncurses ]; configureFlags = [ "--enable-threadsafe" ]; diff --git a/pkgs/development/libraries/tbb/default.nix b/pkgs/development/libraries/tbb/default.nix index 58e5d0864d3f..31fc5401e754 100644 --- a/pkgs/development/libraries/tbb/default.nix +++ b/pkgs/development/libraries/tbb/default.nix @@ -1,5 +1,8 @@ { stdenv, fetchurl }: +let + SHLIB_EXT = if stdenv.isDarwin then "dylib" else "so"; +in stdenv.mkDerivation { name = "tbb-4.4-u2"; @@ -13,7 +16,7 @@ stdenv.mkDerivation { installPhase = '' mkdir -p $out/{lib,share/doc} - cp "build/"*release*"/"*so* $out/lib/ + cp "build/"*release*"/"*${SHLIB_EXT}* $out/lib/ mv include $out/ rm $out/include/index.html mv doc/html $out/share/doc/tbb @@ -33,7 +36,7 @@ stdenv.mkDerivation { represents a higher-level, task-based parallelism that abstracts platform details and threading mechanisms for scalability and performance. ''; - platforms = stdenv.lib.platforms.linux; + platforms = with stdenv.lib.platforms; linux ++ darwin; maintainers = with stdenv.lib.maintainers; [ simons thoughtpolice ]; }; } diff --git a/pkgs/development/libraries/tokyo-cabinet/default.nix b/pkgs/development/libraries/tokyo-cabinet/default.nix index 0b210a589d41..b8969588b3c5 100644 --- a/pkgs/development/libraries/tokyo-cabinet/default.nix +++ b/pkgs/development/libraries/tokyo-cabinet/default.nix @@ -12,8 +12,8 @@ stdenv.mkDerivation rec { postInstall = '' sed -i "$out/lib/pkgconfig/tokyocabinet.pc" \ - -e 's|-lz|-L${zlib}/lib -lz|g; - s|-lbz2|-L${bzip2}/lib -lbz2|g' + -e 's|-lz|-L${zlib.out}/lib -lz|g; + s|-lbz2|-L${bzip2.out}/lib -lbz2|g' ''; meta = { diff --git a/pkgs/development/libraries/uid_wrapper/default.nix b/pkgs/development/libraries/uid_wrapper/default.nix index 35d7f53173fb..0675ec68b4e8 100644 --- a/pkgs/development/libraries/uid_wrapper/default.nix +++ b/pkgs/development/libraries/uid_wrapper/default.nix @@ -9,6 +9,7 @@ stdenv.mkDerivation rec { }; nativeBuildInputs = [ cmake pkgconfig ]; + buildInputs = [ (stdenv.cc.libc.out or null) ]; meta = with stdenv.lib; { description = "a wrapper for the user, group and hosts NSS API"; diff --git a/pkgs/development/libraries/vaapi-intel/default.nix b/pkgs/development/libraries/vaapi-intel/default.nix index 5084fc3c10b1..6942107d146b 100644 --- a/pkgs/development/libraries/vaapi-intel/default.nix +++ b/pkgs/development/libraries/vaapi-intel/default.nix @@ -3,11 +3,11 @@ }: stdenv.mkDerivation rec { - name = "libva-intel-driver-1.6.1"; + name = "libva-intel-driver-1.6.2"; src = fetchurl { url = "http://www.freedesktop.org/software/vaapi/releases/libva-intel-driver/${name}.tar.bz2"; - sha256 = "1nsnl7gix22jbxqm7d5i3fk9gafwayhnsc3qjhbzxs6bbsffjmin"; + sha256 = "1zl51mdxfmnn33r4b0y5qxwlkqfw919aqphsq60d50pwrvdmk1xz"; }; patchPhase = '' diff --git a/pkgs/development/libraries/webkitgtk/2.4.nix b/pkgs/development/libraries/webkitgtk/2.4.nix index e8f0a3d4da7e..cc7644f742d5 100644 --- a/pkgs/development/libraries/webkitgtk/2.4.nix +++ b/pkgs/development/libraries/webkitgtk/2.4.nix @@ -1,7 +1,7 @@ { stdenv, fetchurl, perl, python, ruby, bison, gperf, flex , pkgconfig, which, gettext, gobjectIntrospection , gtk2, gtk3, wayland, libwebp, enchant, sqlite -, libxml2, libsoup, libsecret, libxslt, harfbuzz +, libxml2, libsoup, libsecret, libxslt, harfbuzz, xorg , gst-plugins-base , withGtk2 ? false , enableIntrospection ? !stdenv.isDarwin @@ -71,7 +71,7 @@ stdenv.mkDerivation rec { buildInputs = [ gtk2 libwebp enchant libxml2 libxslt - gst-plugins-base sqlite + gst-plugins-base sqlite xorg.libXt ] ++ optionals enableCredentialStorage [ libsecret ] ++ (if stdenv.isDarwin then [ diff --git a/pkgs/development/libraries/webkitgtk/default.nix b/pkgs/development/libraries/webkitgtk/default.nix index 1abfcbb6c860..cf22eb3aadde 100644 --- a/pkgs/development/libraries/webkitgtk/default.nix +++ b/pkgs/development/libraries/webkitgtk/default.nix @@ -2,7 +2,7 @@ , pkgconfig, gettext, gobjectIntrospection, libnotify , gtk2, gtk3, wayland, libwebp, enchant , libxml2, libsoup, libsecret, libxslt, harfbuzz, libpthreadstubs -, enableGeoLocation ? false, geoclue2, sqlite +, enableGeoLocation ? false, geoclue2, sqlite, xorg , enableCredentialStorage ? !stdenv.isDarwin , gst-plugins-base, readline, libedit }: @@ -75,7 +75,7 @@ stdenv.mkDerivation rec { buildInputs = [ gtk2 libwebp enchant libnotify libxml2 libxslt harfbuzz libpthreadstubs - gst-plugins-base + gst-plugins-base xorg.libXt ] ++ optionals enableCredentialStorage [ libsecret ] ++ (if stdenv.isDarwin then [ diff --git a/pkgs/development/libraries/wildmidi/default.nix b/pkgs/development/libraries/wildmidi/default.nix index 8660d15e06a3..4dec0555ae9f 100644 --- a/pkgs/development/libraries/wildmidi/default.nix +++ b/pkgs/development/libraries/wildmidi/default.nix @@ -10,7 +10,7 @@ stdenv.mkDerivation rec { nativeBuildInputs = [ cmake ]; - buildInputs = [ alsaLib ]; + buildInputs = [ alsaLib stdenv.cc.libc/*couldn't find libm*/ ]; preConfigure = '' substituteInPlace CMakeLists.txt \ diff --git a/pkgs/development/libraries/wxGTK-2.8/default.nix b/pkgs/development/libraries/wxGTK-2.8/default.nix index 50220c227f7c..e023665f0701 100644 --- a/pkgs/development/libraries/wxGTK-2.8/default.nix +++ b/pkgs/development/libraries/wxGTK-2.8/default.nix @@ -33,10 +33,10 @@ stdenv.mkDerivation rec { # These variables are used by configure to find some dependencies. SEARCH_INCLUDE = - "${libXinerama}/include ${libSM}/include ${libXxf86vm}/include"; + "${libXinerama.dev}/include ${libSM.dev}/include ${libXxf86vm.dev}/include"; SEARCH_LIB = - "${libXinerama}/lib ${libSM}/lib ${libXxf86vm}/lib " - + optionalString withMesa "${mesa}/lib "; + "${libXinerama.out}/lib ${libSM.out}/lib ${libXxf86vm.out}/lib " + + optionalString withMesa "${mesa.out}/lib "; # Work around a bug in configure. NIX_CFLAGS_COMPILE = [ "-DHAVE_X11_XLIB_H=1" "-lX11" "-lcairo" ]; diff --git a/pkgs/development/libraries/x264/default.nix b/pkgs/development/libraries/x264/default.nix index 3c2423434939..754b76de0617 100644 --- a/pkgs/development/libraries/x264/default.nix +++ b/pkgs/development/libraries/x264/default.nix @@ -13,6 +13,8 @@ stdenv.mkDerivation rec { sed -i s,/bin/bash,${stdenv.shell}, configure version.sh ''; + outputs = [ "out" "lib" ]; # leaving 52 kB of headers + configureFlags = [ "--enable-shared" ] ++ stdenv.lib.optional (!stdenv.isi686) "--enable-pic" ++ stdenv.lib.optional (enable10bit) "--bit-depth=10"; diff --git a/pkgs/development/libraries/x265/default.nix b/pkgs/development/libraries/x265/default.nix index 736c350bc068..c41dc12bd2f1 100644 --- a/pkgs/development/libraries/x265/default.nix +++ b/pkgs/development/libraries/x265/default.nix @@ -49,6 +49,8 @@ stdenv.mkDerivation rec { nativeBuildInputs = [ cmake yasm ]; + NIX_LDFLAGS = "-L${stdenv.cc.libc.out}/lib"; #outputs TODO: this is strange + meta = with stdenv.lib; { description = "Library for encoding h.265/HEVC video streams"; homepage = http://x265.org; diff --git a/pkgs/development/libraries/xvidcore/default.nix b/pkgs/development/libraries/xvidcore/default.nix index 57c66f310fbe..057be97ce96b 100644 --- a/pkgs/development/libraries/xvidcore/default.nix +++ b/pkgs/development/libraries/xvidcore/default.nix @@ -3,11 +3,11 @@ with stdenv.lib; stdenv.mkDerivation rec { name = "xvidcore-${version}"; - version = "1.3.3"; + version = "1.3.4"; src = fetchurl { url = "http://downloads.xvid.org/downloads/${name}.tar.bz2"; - sha256 = "0m5g75qvapr7xpywg6a83v5x19kw1nm9l2q48lg7jvvpba0bmqdh"; + sha256 = "1xwbmp9wqshc0ckm970zdpi0yvgqxlqg0s8bkz98mnr8p2067bsz"; }; preConfigure = '' diff --git a/pkgs/development/libraries/zlib/default.nix b/pkgs/development/libraries/zlib/default.nix index 7a6f480215c7..59713bb8d205 100644 --- a/pkgs/development/libraries/zlib/default.nix +++ b/pkgs/development/libraries/zlib/default.nix @@ -2,7 +2,7 @@ let version = "1.2.8"; in -stdenv.mkDerivation (rec { +stdenv.mkDerivation rec { name = "zlib-${version}"; src = fetchurl { @@ -20,15 +20,31 @@ stdenv.mkDerivation (rec { --replace 'ARFLAGS="-o"' 'ARFLAGS="-r"' ''; - configureFlags = if static then "" else "--shared"; + outputs = [ "dev" "out" "static" ]; + setOutputFlags = false; + outputDoc = "dev"; # single tiny man3 page + preConfigure = '' if test -n "$crossConfig"; then export CC=$crossConfig-gcc - configureFlags=${if static then "" else "--shared"} fi ''; + configureFlags = stdenv.lib.optional (!static) "--shared"; + + postInstall = '' + moveToOutput lib/libz.a "$static" + '' + # jww (2015-01-06): Sometimes this library install as a .so, even on + # Darwin; others time it installs as a .dylib. I haven't yet figured out + # what causes this difference. + + stdenv.lib.optionalString stdenv.isDarwin '' + for file in $out/lib/*.so* $out/lib/*.dylib* ; do + install_name_tool -id "$file" $file + done + ''; + # As zlib takes part in the stdenv building, we don't want references # to the bootstrap-tools libgcc (as uses to happen on arm/mips) NIX_CFLAGS_COMPILE = stdenv.lib.optionalString (!stdenv.isDarwin) "-static-libgcc " @@ -58,13 +74,5 @@ stdenv.mkDerivation (rec { license = licenses.zlib; platforms = platforms.all; }; -} // (if stdenv.isDarwin then { - postInstall = '' - # jww (2015-01-06): Sometimes this library install as a .so, even on - # Darwin; others time it installs as a .dylib. I haven't yet figured out - # what causes this difference. - for file in $out/lib/*.so* $out/lib/*.dylib* ; do - install_name_tool -id "$file" $file - done - ''; -} else {})) +} + |