From a921167e37c19082f7cee1d20bd258fb7bc9d97e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20=C4=8Cun=C3=A1t?= Date: Tue, 22 Sep 2015 18:44:16 +0200 Subject: [PATCH 01/85] pixman: bugfix update 0.32.6 -> 0.32.8, refactor It's claimed to be important on i686. http://cgit.freedesktop.org/pixman/commit/?id=8b49d4b6b460d0c92 --- pkgs/development/libraries/pixman/default.nix | 28 ++++++++++--------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/pkgs/development/libraries/pixman/default.nix b/pkgs/development/libraries/pixman/default.nix index ce027a0a269..30cceb59c00 100644 --- a/pkgs/development/libraries/pixman/default.nix +++ b/pkgs/development/libraries/pixman/default.nix @@ -1,26 +1,28 @@ -{ fetchurl, stdenv, pkgconfig, perl, libpng, glib /*just passthru*/ }: +{ fetchurl, stdenv, pkgconfig, libpng, glib /*just passthru*/ }: stdenv.mkDerivation rec { - name = "pixman-0.32.6"; + name = "pixman-0.32.8"; src = fetchurl { - url = "http://cairographics.org/releases/${name}.tar.gz"; - sha256 = "0129g4zdrw5hif5783li7rzcr4vpbc2cfia91azxmsk0h0xx3zix"; + url = "mirror://xorg/individual/lib/${name}.tar.bz2"; + sha1 = "5c57045622265b877c9bf02d531973eadf942140"; }; - nativeBuildInputs = [ pkgconfig perl ]; - - buildInputs = [ libpng ]; # NOT in closure anyway - - postInstall = glib.flattenInclude; - patches = stdenv.lib.optional stdenv.isDarwin ./fix-clang36.patch; - configureFlags = if stdenv.isArm then ["--disable-arm-iwmmxt"] else null; + nativeBuildInputs = [ pkgconfig ]; + buildInputs = stdenv.lib.optional doCheck libpng; - meta = { + configureFlags = stdenv.lib.optional stdenv.isArm "--disable-arm-iwmmxt"; + + doCheck = true; + + postInstall = glib.flattenInclude; + + meta = with stdenv.lib; { homepage = http://pixman.org; description = "A low-level library for pixel manipulation"; - license = stdenv.lib.licenses.mit; + license = licenses.mit; + platforms = platforms.all; }; } From 283dd9fe49e754dd3c1562e3e1233d3616710bac Mon Sep 17 00:00:00 2001 From: "William A. Kennington III" Date: Tue, 22 Sep 2015 14:29:36 -0700 Subject: [PATCH 02/85] wayland: 1.8.1 -> 1.9.0 --- pkgs/development/libraries/wayland/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/libraries/wayland/default.nix b/pkgs/development/libraries/wayland/default.nix index 9736d651404..0510fde811c 100644 --- a/pkgs/development/libraries/wayland/default.nix +++ b/pkgs/development/libraries/wayland/default.nix @@ -8,11 +8,11 @@ assert expat != null; stdenv.mkDerivation rec { name = "wayland-${version}"; - version = "1.8.1"; + version = "1.9.0"; src = fetchurl { url = "http://wayland.freedesktop.org/releases/${name}.tar.xz"; - sha256 = "1j3gfzn8i0xhk3j34mwb2srrscjxfyi279jhyq80mz943j6r6z7i"; + sha256 = "1yhy62vkbq8j8c9zaa6yzvn75cd99kfa8n2zfdwl80x019r711ww"; }; configureFlags = "--with-scanner --disable-documentation"; From bd0120202ec76fecc193cfeb4e5432725d1d16c2 Mon Sep 17 00:00:00 2001 From: "William A. Kennington III" Date: Tue, 22 Sep 2015 14:29:47 -0700 Subject: [PATCH 03/85] file: 5.24 -> 5.25 --- pkgs/tools/misc/file/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/tools/misc/file/default.nix b/pkgs/tools/misc/file/default.nix index 7d991a41556..749bf59fde9 100644 --- a/pkgs/tools/misc/file/default.nix +++ b/pkgs/tools/misc/file/default.nix @@ -1,7 +1,7 @@ { stdenv, fetchurl, zlib }: stdenv.mkDerivation rec { - name = "file-5.24"; + name = "file-5.25"; buildInputs = [ zlib ]; @@ -10,7 +10,7 @@ stdenv.mkDerivation rec { "ftp://ftp.astron.com/pub/file/${name}.tar.gz" "http://distfiles.macports.org/file/${name}.tar.gz" ]; - sha256 = "1kjhqwmi1sjw8jcf6li725c59wm00zajrdfwgkwqxs295vgb6b40"; + sha256 = "1jhfi5mivdnqvry5la5q919l503ahwdwbf3hjhiv97znccakhd9p"; }; meta = { From fdf2c3d1306deddcdf44516ffad52366f22e28f3 Mon Sep 17 00:00:00 2001 From: "William A. Kennington III" Date: Tue, 22 Sep 2015 14:30:05 -0700 Subject: [PATCH 04/85] weston: 1.8.0 -> 1.9.0 --- pkgs/applications/window-managers/weston/default.nix | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/pkgs/applications/window-managers/weston/default.nix b/pkgs/applications/window-managers/weston/default.nix index d270d3a2b1d..114b665225f 100644 --- a/pkgs/applications/window-managers/weston/default.nix +++ b/pkgs/applications/window-managers/weston/default.nix @@ -7,17 +7,17 @@ stdenv.mkDerivation rec { name = "weston-${version}"; - version = "1.8.0"; + version = "1.9.0"; src = fetchurl { url = "http://wayland.freedesktop.org/releases/${name}.tar.xz"; - sha256 = "04nkbbdglh0pqznxkdqvak3pc53jmz24d0658bn5r0cf6agycqw9"; + sha256 = "1ks8mja6glzy2dkayi535hd6w5c5h021bqk7vzgv182g33rh66ww"; }; + nativeBuildInputs = [ pkgconfig ]; buildInputs = [ - pkgconfig wayland mesa libxkbcommon cairo libxcb libXcursor x11 udev libdrm - mtdev libjpeg pam dbus.libs libinput pango libunwind freerdp vaapi libva - libwebp + wayland mesa libxkbcommon cairo libxcb libXcursor x11 udev libdrm mtdev + libjpeg pam dbus.libs libinput pango libunwind freerdp vaapi libva libwebp ]; configureFlags = [ From 724e243159e4e0059699eb21f6761a760b9a2f49 Mon Sep 17 00:00:00 2001 From: Jude Taylor Date: Mon, 21 Sep 2015 15:48:22 -0700 Subject: [PATCH 05/85] pop --- .../development/haskell-modules/configuration-common.nix | 9 +++++++++ pkgs/stdenv/default.nix | 2 +- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/pkgs/development/haskell-modules/configuration-common.nix b/pkgs/development/haskell-modules/configuration-common.nix index 9f7a18fa2da..1324b8b979b 100644 --- a/pkgs/development/haskell-modules/configuration-common.nix +++ b/pkgs/development/haskell-modules/configuration-common.nix @@ -57,6 +57,15 @@ self: super: { # Link the proper version. zeromq4-haskell = super.zeromq4-haskell.override { zeromq = pkgs.zeromq4; }; + WordNet = pkgs.stdenv.lib.overrideDerivation super.WordNet (drv: { + src = ~/.dev/Haskell/WordNet-1.1.0; + postPatch = (drv.postPatch or "") + '' + substituteInPlace NLP/WordNet/Consts.hs \ + --replace /usr/local/WordNet-2.0 ${pkgs.wordnet} \ + --replace 'defined (MAC)' 0 + ''; + }); + # This package needs a little help compiling properly on Darwin. Furthermore, # Stackage compiles git-annex without the Assistant, supposedly because not # all required dependencies are part of Stackage. To comply with Stackage, we diff --git a/pkgs/stdenv/default.nix b/pkgs/stdenv/default.nix index 71bdc3e8f82..da93229ce94 100644 --- a/pkgs/stdenv/default.nix +++ b/pkgs/stdenv/default.nix @@ -54,7 +54,7 @@ rec { if system == "armv7l-linux" then stdenvLinux else if system == "mips64el-linux" then stdenvLinux else if system == "powerpc-linux" then /* stdenvLinux */ stdenvNative else - if system == "x86_64-darwin" then stdenvDarwin else + if system == "x86_64-darwin" then stdenvDarwinPure else if system == "x86_64-solaris" then stdenvNix else if system == "i686-cygwin" then stdenvNative else if system == "x86_64-cygwin" then stdenvNative else From 76a65398292d925e64a784ff1ebc441804dea9a8 Mon Sep 17 00:00:00 2001 From: Jude Taylor Date: Tue, 22 Sep 2015 16:26:48 -0700 Subject: [PATCH 06/85] work on making xquartz buildable in a pure environment --- pkgs/servers/x11/quartz-wm/default.nix | 8 +++++++- pkgs/servers/x11/xorg/overrides.nix | 6 +++++- pkgs/servers/x11/xquartz/default.nix | 3 +-- pkgs/top-level/all-packages.nix | 9 +++++++-- 4 files changed, 20 insertions(+), 6 deletions(-) diff --git a/pkgs/servers/x11/quartz-wm/default.nix b/pkgs/servers/x11/quartz-wm/default.nix index 8f5885a4856..ff125067305 100644 --- a/pkgs/servers/x11/quartz-wm/default.nix +++ b/pkgs/servers/x11/quartz-wm/default.nix @@ -1,4 +1,4 @@ -{ stdenv, lib, fetchurl, xorg, pixman, pkgconfig }: +{ stdenv, lib, fetchurl, xorg, pixman, pkgconfig, Foundation, libobjc, Xplugin, CF }: let version = "1.3.1"; in stdenv.mkDerivation { @@ -19,7 +19,13 @@ in stdenv.mkDerivation { xorg.libXext pixman pkgconfig + CF + Foundation + libobjc + Xplugin ]; + NIX_LDFLAGS = stdenv.lib.optional stdenv.isDarwin + "/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation"; meta = with lib; { license = licenses.apsl20; platforms = platforms.darwin; diff --git a/pkgs/servers/x11/xorg/overrides.nix b/pkgs/servers/x11/xorg/overrides.nix index a7e5b43689a..f5d5bf679ec 100644 --- a/pkgs/servers/x11/xorg/overrides.nix +++ b/pkgs/servers/x11/xorg/overrides.nix @@ -324,7 +324,11 @@ in ''; passthru.version = version; # needed by virtualbox guest additions } else { - buildInputs = commonBuildInputs ++ [ args.bootstrap_cmds args.automake args.autoconf ]; + buildInputs = commonBuildInputs ++ [ + args.bootstrap_cmds args.automake args.autoconf + args.CF args.apple_sdk.libs.Xplugin args.apple_sdk.frameworks.Foundation + args.libobjc args.apple_sdk.frameworks.Cocoa + ]; propagatedBuildInputs = commonPropagatedBuildInputs ++ [ libAppleWM applewmproto ]; diff --git a/pkgs/servers/x11/xquartz/default.nix b/pkgs/servers/x11/xquartz/default.nix index 3e9e7cb779e..8b5b3155a17 100644 --- a/pkgs/servers/x11/xquartz/default.nix +++ b/pkgs/servers/x11/xquartz/default.nix @@ -109,8 +109,7 @@ in stdenv.mkDerivation { cp ${installer} $out/bin/xquartz-install - rm -r $out/LaunchAgents - rm -r $out/LaunchDaemons + rm -rf $out/LaunchAgents $out/LaunchDaemons fontsConfPath=$out/etc/X11/fonts.conf cp ${fontsConf} $fontsConfPath diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 8f683d48b3e..3099a146a80 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -9246,14 +9246,19 @@ let zookeeper_mt = callPackage ../development/libraries/zookeeper_mt { }; xquartz = callPackage ../servers/x11/xquartz { }; - quartz-wm = callPackage ../servers/x11/quartz-wm { stdenv = clangStdenv; }; + quartz-wm = callPackage ../servers/x11/quartz-wm { + stdenv = clangStdenv; + inherit (darwin.apple_sdk.frameworks) Foundation; + inherit (darwin.apple_sdk.libs) Xplugin; + inherit (darwin) libobjc CF; + }; xorg = recurseIntoAttrs (lib.callPackagesWith pkgs ../servers/x11/xorg/default.nix { inherit clangStdenv fetchurl fetchgit fetchpatch stdenv pkgconfig intltool freetype fontconfig libxslt expat libpng zlib perl mesa_drivers spice_protocol dbus libuuid openssl gperf m4 libevdev tradcpp libinput mcpp makeWrapper autoreconfHook autoconf automake libtool xmlto asciidoc flex bison python mtdev pixman; - inherit (darwin) apple_sdk; + inherit (darwin) apple_sdk libobjc CF; bootstrap_cmds = if stdenv.isDarwin then darwin.bootstrap_cmds else null; mesa = mesa_noglu; udev = if stdenv.isLinux then udev else null; From 6af1afa8e395188dd7130db3db18889ceb69f4f5 Mon Sep 17 00:00:00 2001 From: Jude Taylor Date: Tue, 22 Sep 2015 16:27:11 -0700 Subject: [PATCH 07/85] provide realLibtool to some packages needing it --- pkgs/top-level/all-packages.nix | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 3099a146a80..417011e156f 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -4853,7 +4853,9 @@ let guile_1_8 = callPackage ../development/interpreters/guile/1.8.nix { }; - guile_2_0 = callPackage ../development/interpreters/guile { }; + guile_2_0 = callPackage ../development/interpreters/guile { + libtool = realLibtool; + }; guile = guile_2_0; @@ -6051,7 +6053,9 @@ let db6 = db60; db60 = callPackage ../development/libraries/db/db-6.0.nix { }; - dbus = callPackage ../development/libraries/dbus { }; + dbus = callPackage ../development/libraries/dbus { + libtool = realLibtool; + }; dbus_cplusplus = callPackage ../development/libraries/dbus-cplusplus { }; dbus_glib = callPackage ../development/libraries/dbus-glib { }; dbus_java = callPackage ../development/libraries/java/dbus-java { }; From f1eef5c69be0bf105d5da72b6f6830de037773dd Mon Sep 17 00:00:00 2001 From: Jude Taylor Date: Tue, 22 Sep 2015 16:27:44 -0700 Subject: [PATCH 08/85] add missing closing tags in rl-unstable.xml --- .../doc/manual/release-notes/rl-unstable.xml | 25 ++++++++++--------- 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/nixos/doc/manual/release-notes/rl-unstable.xml b/nixos/doc/manual/release-notes/rl-unstable.xml index 6d9f9412b62..c5e341d2e3f 100644 --- a/nixos/doc/manual/release-notes/rl-unstable.xml +++ b/nixos/doc/manual/release-notes/rl-unstable.xml @@ -22,18 +22,19 @@ the developers upstream. Use wimenu from the wmii-hg package. - - Gitit! Is no longer automatically added to the module list in - NixOS and as such there will not be any manual entries for it. You will need to - add an import statement to your nixos configuration in order to use it. As - an example adding: - ]; - } - ]]> - - Will include the gitit service configuration options. + Gitit! Is no longer automatically added to the module list in + NixOS and as such there will not be any manual entries for it. You will need to + add an import statement to your nixos configuration in order to use it. As + an example adding: + ]; + } + ]]> + + Will include the gitit service configuration options. + + From 23f75e9bb05454d0af44fc823a19c57eafd967e3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20=C4=8Cun=C3=A1t?= Date: Wed, 23 Sep 2015 12:15:05 +0200 Subject: [PATCH 09/85] gdk-pixbuf: maintenance update 2.31.7 -> 2.32.0 --- pkgs/development/libraries/gdk-pixbuf/default.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/development/libraries/gdk-pixbuf/default.nix b/pkgs/development/libraries/gdk-pixbuf/default.nix index 754fddd101a..0971df78e66 100644 --- a/pkgs/development/libraries/gdk-pixbuf/default.nix +++ b/pkgs/development/libraries/gdk-pixbuf/default.nix @@ -2,15 +2,15 @@ , jasper, libintlOrEmpty, gobjectIntrospection, doCheck ? false }: let - ver_maj = "2.31"; - ver_min = "7"; + ver_maj = "2.32"; + ver_min = "0"; in stdenv.mkDerivation rec { name = "gdk-pixbuf-${ver_maj}.${ver_min}"; src = fetchurl { url = "mirror://gnome/sources/gdk-pixbuf/${ver_maj}/${name}.tar.xz"; - sha256 = "046n9wz16kh3rpzxaiiwphf5bihxgj4g14cjn65wwmw82q4y0dj7"; + sha256 = "0rqvj5gcs2zfyyg9llm289b0xkj4mrhzxfjpjja0wx1m6vn5axjk"; }; setupHook = ./setup-hook.sh; From 9de8f95d4bb8f0fb2bed0461a77d414857e610b3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20=C4=8Cun=C3=A1t?= Date: Wed, 23 Sep 2015 12:20:33 +0200 Subject: [PATCH 10/85] libjpeg(-turbo): maintenance update 1.4.1 -> 1.4.2 --- pkgs/development/libraries/libjpeg-turbo/default.nix | 4 ++-- pkgs/top-level/all-packages.nix | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/development/libraries/libjpeg-turbo/default.nix b/pkgs/development/libraries/libjpeg-turbo/default.nix index 158b8825db4..3660a652e79 100644 --- a/pkgs/development/libraries/libjpeg-turbo/default.nix +++ b/pkgs/development/libraries/libjpeg-turbo/default.nix @@ -1,11 +1,11 @@ { stdenv, fetchurl, nasm }: stdenv.mkDerivation rec { - name = "libjpeg-turbo-1.4.1"; + name = "libjpeg-turbo-1.4.2"; src = fetchurl { url = "mirror://sourceforge/libjpeg-turbo/${name}.tar.gz"; - sha256 = "027vz97064bjmwj7gdw2p47y1437w08j54frpgzmnql5rvabmxab"; + sha256 = "0gi349hp1x7mb98s4mf66sb2xay2kjjxj9ihrriw0yiy0k9va6sj"; }; buildInputs = [ nasm ]; diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 417011e156f..72e95ee9d97 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -7081,7 +7081,7 @@ let libjpeg_original = callPackage ../development/libraries/libjpeg { }; libjpeg_turbo = callPackage ../development/libraries/libjpeg-turbo { }; - libjpeg = if (stdenv.isLinux) then libjpeg_turbo else libjpeg_original; # some problems, both on FreeBSD and Darwin + libjpeg = if stdenv.isLinux then libjpeg_turbo else libjpeg_original; # some problems, both on FreeBSD and Darwin libjpeg62 = callPackage ../development/libraries/libjpeg/62.nix { libtool = libtool_1_5; From cd7c494bb29d171b4d05d81484ca6d63375bfd4d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20=C4=8Cun=C3=A1t?= Date: Wed, 23 Sep 2015 12:23:45 +0200 Subject: [PATCH 11/85] pango: feature update 1.36.8 -> 1.38.0 Tested rebuilding the most important pango users, without any problems. --- pkgs/development/libraries/pango/default.nix | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/pkgs/development/libraries/pango/default.nix b/pkgs/development/libraries/pango/default.nix index 87187667a92..6944b55a721 100644 --- a/pkgs/development/libraries/pango/default.nix +++ b/pkgs/development/libraries/pango/default.nix @@ -3,26 +3,26 @@ }: let - ver_maj = "1.36"; - ver_min = "8"; + ver_maj = "1.38"; + ver_min = "0"; in stdenv.mkDerivation rec { name = "pango-${ver_maj}.${ver_min}"; src = fetchurl { url = "mirror://gnome/sources/pango/${ver_maj}/${name}.tar.xz"; - sha256 = "01rdzjh68w8l5zn0648yibyarj8p6g7yfn59nw5awaz1i8dvbnqq"; + sha256 = "0v12gi7f01iq3z852pclpnmkbcksbvpcmiazmklkx1dd9fbpakhx"; }; buildInputs = with stdenv.lib; [ gobjectIntrospection ] - ++ optionals stdenv.isDarwin [ fontconfig ]; + ++ optional stdenv.isDarwin fontconfig; nativeBuildInputs = [ pkgconfig ]; propagatedBuildInputs = [ x11 glib cairo libpng fontconfig freetype harfbuzz ] ++ libintlOrEmpty; enableParallelBuilding = true; - doCheck = false; # test-layout fails on 1.36.8 + doCheck = false; # test-layout fails on 1.38.0 # jww (2014-05-05): The tests currently fail on Darwin: # # ERROR:testiter.c:139:iter_char_test: assertion failed: (extents.width == x1 - x0) @@ -31,7 +31,7 @@ stdenv.mkDerivation rec { postInstall = "rm -rf $out/share/gtk-doc"; - meta = { + meta = with stdenv.lib; { description = "A library for laying out and rendering of text, with an emphasis on internationalization"; longDescription = '' @@ -43,9 +43,9 @@ stdenv.mkDerivation rec { ''; homepage = http://www.pango.org/; - license = stdenv.lib.licenses.lgpl2Plus; + license = licenses.lgpl2Plus; - maintainers = with stdenv.lib.maintainers; [ raskin urkud ]; - hydraPlatforms = stdenv.lib.platforms.linux ++ stdenv.lib.platforms.darwin; + maintainers = with maintainers; [ raskin urkud ]; + platforms = with platforms; linux ++ darwin; }; } From ff9a70266b7f778eba504ae68928e7fd92bd0705 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20=C4=8Cun=C3=A1t?= Date: Wed, 23 Sep 2015 12:33:46 +0200 Subject: [PATCH 12/85] at-spi2-*: small updates 2.16.0 -> 2.18.0 --- pkgs/development/libraries/at-spi2-atk/default.nix | 4 ++-- pkgs/development/libraries/at-spi2-core/default.nix | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/pkgs/development/libraries/at-spi2-atk/default.nix b/pkgs/development/libraries/at-spi2-atk/default.nix index 940fc2bb6cc..84c0b5f56aa 100644 --- a/pkgs/development/libraries/at-spi2-atk/default.nix +++ b/pkgs/development/libraries/at-spi2-atk/default.nix @@ -2,14 +2,14 @@ , intltool, dbus_glib, at_spi2_core, libSM }: stdenv.mkDerivation rec { - versionMajor = "2.16"; + versionMajor = "2.18"; versionMinor = "0"; moduleName = "at-spi2-atk"; name = "${moduleName}-${versionMajor}.${versionMinor}"; src = fetchurl { url = "mirror://gnome/sources/${moduleName}/${versionMajor}/${name}.tar.xz"; - sha256 = "1y9gfz1iz3wpja7s000f0bmyyvc6im5fcdl6bxwbz0v3qdgc9vvq"; + sha256 = "0xgkrnx04vaklbkzc7bzym9s0qhj8aiz4knqlxgx3vxnacsb6vaa"; }; buildInputs = [ python pkgconfig popt atk libX11 libICE xlibs.libXtst libXi diff --git a/pkgs/development/libraries/at-spi2-core/default.nix b/pkgs/development/libraries/at-spi2-core/default.nix index 0fc28185501..b49d1ddb804 100644 --- a/pkgs/development/libraries/at-spi2-core/default.nix +++ b/pkgs/development/libraries/at-spi2-core/default.nix @@ -2,14 +2,14 @@ , libX11, xextproto, libSM, libICE, libXtst, libXi, gobjectIntrospection }: stdenv.mkDerivation rec { - versionMajor = "2.16"; + versionMajor = "2.18"; versionMinor = "0"; moduleName = "at-spi2-core"; name = "${moduleName}-${versionMajor}.${versionMinor}"; src = fetchurl { url = "mirror://gnome/sources/${moduleName}/${versionMajor}/${name}.tar.xz"; - sha256 = "1l3l39mw23zyjlcqidvkyqlr4gwbhplzw2hcv3qvn6p8ikxpf2qw"; + sha256 = "0xna0gnlqvzy6209klirywcm7ianazshg6pkk828g07bnrywgvhs"; }; outputs = [ "out" "doc" ]; From 3c8b92f4b35618e7c1db33e6878eb9526127406d Mon Sep 17 00:00:00 2001 From: Drew Hess Date: Fri, 11 Sep 2015 19:23:52 -0700 Subject: [PATCH 13/85] Workaround for getcwd configure test on 10.11. See https://openradar.appspot.com/22671534 for a description of the problem. --- pkgs/stdenv/darwin/default.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pkgs/stdenv/darwin/default.nix b/pkgs/stdenv/darwin/default.nix index 9ad2c8504d1..c5634984532 100644 --- a/pkgs/stdenv/darwin/default.nix +++ b/pkgs/stdenv/darwin/default.nix @@ -58,6 +58,8 @@ rec { export NIX_CFLAGS_COMPILE+=" --sysroot=/var/empty -idirafter $SDKROOT/usr/include -F$SDKROOT/System/Library/Frameworks -Wno-multichar -Wno-deprecated-declarations" export NIX_LDFLAGS_AFTER+=" -L$SDKROOT/usr/lib" export CMAKE_OSX_ARCHITECTURES=x86_64 + # Workaround for https://openradar.appspot.com/22671534 on 10.11. + export gl_cv_func_getcwd_abort_bug=no ''; # A stdenv that wraps the Apple command-line tools and our other trivial symlinked bootstrap tools From cdf13a0a0608a13fb9e1df41d7e3ee372e8533b8 Mon Sep 17 00:00:00 2001 From: Andy Georges Date: Tue, 15 Sep 2015 01:52:44 +0200 Subject: [PATCH 14/85] elasticsearch: 1.5.2 -> 1.7.2 --- pkgs/servers/search/elasticsearch/default.nix | 4 ++-- pkgs/servers/search/elasticsearch/es-home.patch | 13 +++++++------ 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/pkgs/servers/search/elasticsearch/default.nix b/pkgs/servers/search/elasticsearch/default.nix index 859f1501bb3..16f01030290 100644 --- a/pkgs/servers/search/elasticsearch/default.nix +++ b/pkgs/servers/search/elasticsearch/default.nix @@ -3,11 +3,11 @@ with stdenv.lib; stdenv.mkDerivation rec { - name = "elasticsearch-1.5.2"; + name = "elasticsearch-1.7.2"; src = fetchurl { url = "https://download.elastic.co/elasticsearch/elasticsearch/${name}.tar.gz"; - sha256 = "054s0k0y0g1x6wzbd6gmvrp5n89fqwqssbyhay0gmhvs6sbpibpg"; + sha256 = "1lix4asvx1lbc227gzsrws3xqbcbqaal7v10w60kch0c4xg970bg"; }; patches = [ ./es-home.patch ]; diff --git a/pkgs/servers/search/elasticsearch/es-home.patch b/pkgs/servers/search/elasticsearch/es-home.patch index 2f7a7fe7919..2f2018fd69f 100644 --- a/pkgs/servers/search/elasticsearch/es-home.patch +++ b/pkgs/servers/search/elasticsearch/es-home.patch @@ -28,9 +28,10 @@ diff -rupN a/bin/plugin b/bin/plugin # make ELASTICSEARCH_HOME absolute ES_HOME=`cd "$ES_HOME"; pwd` -@@ -45,4 +48,4 @@ while [ $# -gt 0 ]; do - shift - done - --exec "$JAVA" $JAVA_OPTS $ES_JAVA_OPTS -Xmx64m -Xms16m -Delasticsearch -Des.path.home="$ES_HOME" $properties -cp "$ES_HOME/lib/*" org.elasticsearch.plugins.PluginManager $args -+exec "$JAVA" $JAVA_OPTS $ES_JAVA_OPTS -Xmx64m -Xms16m -Delasticsearch -Des.path.home="$ES_HOME" $properties -cp "$ES_CLASSPATH/lib/*" org.elasticsearch.plugins.PluginManager $args +@@ -105,4 +105,4 @@ + + export HOSTNAME=`hostname -s` + +-eval "$JAVA" $JAVA_OPTS $ES_JAVA_OPTS -Xmx64m -Xms16m -Delasticsearch -Des.path.home=\""$ES_HOME"\" $properties -cp \""$ES_HOME/lib/*"\" org.elasticsearch.plugins.PluginManager $args +\ No newline at end of file ++eval "$JAVA" $JAVA_OPTS $ES_JAVA_OPTS -Xmx64m -Xms16m -Delasticsearch -Des.path.home="$ES_HOME" $properties -cp "$ES_CLASSPATH/lib/*" org.elasticsearch.plugins.PluginManager $args From e7605dd08b460bc824b1f568c62b20a50d3fa18b Mon Sep 17 00:00:00 2001 From: Jude Taylor Date: Wed, 23 Sep 2015 16:13:29 -0700 Subject: [PATCH 15/85] add nodejs-4.1.0 --- pkgs/development/libraries/libuv/default.nix | 1 + .../web/nodejs/no-xcode-4.1.0.patch | 95 +++++++++++++++++++ pkgs/development/web/nodejs/v4_1_0.nix | 53 +++++++++++ pkgs/top-level/all-packages.nix | 7 +- 4 files changed, 155 insertions(+), 1 deletion(-) create mode 100644 pkgs/development/web/nodejs/no-xcode-4.1.0.patch create mode 100644 pkgs/development/web/nodejs/v4_1_0.nix diff --git a/pkgs/development/libraries/libuv/default.nix b/pkgs/development/libraries/libuv/default.nix index 8052f0bc731..2a35264799b 100644 --- a/pkgs/development/libraries/libuv/default.nix +++ b/pkgs/development/libraries/libuv/default.nix @@ -109,4 +109,5 @@ in mapAttrs (v: h: mkWithAutotools stable (toVersion v) h) { v1_2_0 = "1nbp8qpgw64gl9nrjzxw0ndv1m64cfms0cy5a2883vw6877kizmx"; v1_6_1 = "10w9pjbmqcv03v04rnjd8mdh886j7v4y0svdsdklz69zskgdvvqg"; + v1_7_5 = "18x6cy2xn31am97vn6jli7kmb2fbp4c8kmv7jm97vggh0x55flsc"; } diff --git a/pkgs/development/web/nodejs/no-xcode-4.1.0.patch b/pkgs/development/web/nodejs/no-xcode-4.1.0.patch new file mode 100644 index 00000000000..137158b01b7 --- /dev/null +++ b/pkgs/development/web/nodejs/no-xcode-4.1.0.patch @@ -0,0 +1,95 @@ +diff --git a/configure b/configure +index d199975..66d903b 100755 +--- a/configure ++++ b/configure +@@ -734,7 +734,7 @@ def configure_library(lib, output): + # libpath needs to be provided ahead libraries + if pkg_libpath: + output['libraries'] += ( +- filter(None, map(str.strip, pkg_cflags.split('-L')))) ++ pkg_libpath.split()) + + default_libs = getattr(options, shared_lib + '_libname') + default_libs = map('-l{0}'.format, default_libs.split(',')) +diff --git a/tools/gyp/pylib/gyp/xcode_emulation.py b/tools/gyp/pylib/gyp/xcode_emulation.py +index c002b11..fefb765 100644 +--- a/tools/gyp/pylib/gyp/xcode_emulation.py ++++ b/tools/gyp/pylib/gyp/xcode_emulation.py +@@ -446,10 +446,17 @@ class XcodeSettings(object): + + def _XcodeSdkPath(self, sdk_root): + if sdk_root not in XcodeSettings._sdk_path_cache: +- sdk_path = self._GetSdkVersionInfoItem(sdk_root, 'Path') +- XcodeSettings._sdk_path_cache[sdk_root] = sdk_path +- if sdk_root: +- XcodeSettings._sdk_root_cache[sdk_path] = sdk_root ++ try: ++ sdk_path = self._GetSdkVersionInfoItem(sdk_root, 'Path') ++ XcodeSettings._sdk_path_cache[sdk_root] = sdk_path ++ if sdk_root: ++ XcodeSettings._sdk_root_cache[sdk_path] = sdk_root ++ except: ++ # if this fails it's because xcodebuild failed, which means ++ # the user is probably on a CLT-only system, where there ++ # is no valid SDK root ++ XcodeSettings._sdk_path_cache[sdk_root] = None ++ + return XcodeSettings._sdk_path_cache[sdk_root] + + def _AppendPlatformVersionMinFlags(self, lst): +@@ -572,10 +579,12 @@ class XcodeSettings(object): + framework_root = sdk_root + else: + framework_root = '' +- config = self.spec['configurations'][self.configname] +- framework_dirs = config.get('mac_framework_dirs', []) +- for directory in framework_dirs: +- cflags.append('-F' + directory.replace('$(SDKROOT)', framework_root)) ++ ++ if 'SDKROOT' in self._Settings(): ++ config = self.spec['configurations'][self.configname] ++ framework_dirs = config.get('mac_framework_dirs', []) ++ for directory in framework_dirs: ++ cflags.append('-F' + directory.replace('$(SDKROOT)', framework_root)) + + self.configname = None + return cflags +@@ -826,10 +835,12 @@ class XcodeSettings(object): + sdk_root = self._SdkPath() + if not sdk_root: + sdk_root = '' +- config = self.spec['configurations'][self.configname] +- framework_dirs = config.get('mac_framework_dirs', []) +- for directory in framework_dirs: +- ldflags.append('-F' + directory.replace('$(SDKROOT)', sdk_root)) ++ ++ if 'SDKROOT' in self._Settings(): ++ config = self.spec['configurations'][self.configname] ++ framework_dirs = config.get('mac_framework_dirs', []) ++ for directory in framework_dirs: ++ ldflags.append('-F' + directory.replace('$(SDKROOT)', sdk_root)) + + is_extension = self._IsIosAppExtension() or self._IsIosWatchKitExtension() + if sdk_root and is_extension: +@@ -1032,7 +1043,11 @@ class XcodeSettings(object): + sdk_root = self._SdkPath(config_name) + if not sdk_root: + sdk_root = '' +- return l.replace('$(SDKROOT)', sdk_root) ++ ++ if self._SdkPath(): ++ return l.replace('$(SDKROOT)', sdk_root) ++ else: ++ return l + + def AdjustLibraries(self, libraries, config_name=None): + """Transforms entries like 'Cocoa.framework' in libraries into entries like +@@ -1248,7 +1263,7 @@ def XcodeVersion(): + if version: + version = re.match(r'(\d\.\d\.?\d*)', version).groups()[0] + else: +- raise GypError("No Xcode or CLT version detected!") ++ version = "7.0.0" + # The CLT has no build information, so we return an empty string. + version_list = [version, ''] + version = version_list[0] diff --git a/pkgs/development/web/nodejs/v4_1_0.nix b/pkgs/development/web/nodejs/v4_1_0.nix new file mode 100644 index 00000000000..de8fa5f6bd3 --- /dev/null +++ b/pkgs/development/web/nodejs/v4_1_0.nix @@ -0,0 +1,53 @@ +{ stdenv, fetchurl, openssl, python, zlib, libuv, v8, utillinux, http-parser +, pkgconfig, runCommand, which, libtool +}: + +let + version = "4.1.0"; + + deps = { + inherit openssl zlib libuv; + + # disabled system v8 because v8 3.14 no longer receives security fixes + # we fall back to nodejs' internal v8 copy which receives backports for now + # inherit v8 + } // (stdenv.lib.optionalAttrs (!stdenv.isDarwin) { + inherit http-parser; + }); + + inherit (stdenv.lib) concatMap optional optionals maintainers licenses platforms; +in stdenv.mkDerivation { + name = "nodejs-${version}"; + + src = fetchurl { + url = "http://nodejs.org/dist/v${version}/node-v${version}.tar.gz"; + sha256 = "025lqmhvl7xpx1ip97jwkz21a97sw9zb4zi3y7fgfag59vv0ac25"; + }; + + configureFlags = map (name: "--shared-${name}") (builtins.attrNames deps) ++ [ "--without-dtrace" ]; + + dontDisableStatic = true; + + prePatch = '' + patchShebangs . + ''; + + patches = stdenv.lib.optional stdenv.isDarwin ./no-xcode-4.1.0.patch; + + buildInputs = [ python which ] ++ (builtins.attrValues deps) + ++ optional stdenv.isLinux utillinux + ++ optionals stdenv.isDarwin [ openssl libtool ]; + setupHook = ./setup-hook.sh; + + enableParallelBuilding = true; + + passthru.interpreterName = "nodejs"; + + meta = { + description = "Event-driven I/O framework for the V8 JavaScript engine"; + homepage = http://nodejs.org; + license = licenses.mit; + maintainers = [ maintainers.goibhniu maintainers.havvy ]; + platforms = platforms.linux ++ platforms.darwin; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index a5f1f09c355..bccccc12bae 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -2006,6 +2006,11 @@ let ninka = callPackage ../development/tools/misc/ninka { }; + nodejs-4_1 = callPackage ../development/web/nodejs/v4_1_0.nix { + libuv = libuvVersions.v1_7_5; + openssl = openssl_1_0_2; + }; + nodejs-0_12 = callPackage ../development/web/nodejs { libuv = libuvVersions.v1_6_1; }; @@ -2019,8 +2024,8 @@ let else nodejs-0_12; + nodePackages_4_1 = recurseIntoAttrs (callPackage ./node-packages.nix { self = nodePackages_4_1; nodejs = nodejs-4_1; }); nodePackages_0_12 = callPackage ./node-packages.nix { self = nodePackages_0_12; nodejs = nodejs-0_12; }; - nodePackages_0_10 = callPackage ./node-packages.nix { self = nodePackages_0_10; nodejs = nodejs-0_10; }; nodePackages = if stdenv.system == "armv5tel-linux" then From 09d336ea5ec198663011eac93b30649fcc5f294c Mon Sep 17 00:00:00 2001 From: "William A. Kennington III" Date: Wed, 23 Sep 2015 20:49:03 -0700 Subject: [PATCH 16/85] libarchive: Support lzo --- pkgs/development/libraries/libarchive/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/libraries/libarchive/default.nix b/pkgs/development/libraries/libarchive/default.nix index 1ec253dccd6..837db32ea4b 100644 --- a/pkgs/development/libraries/libarchive/default.nix +++ b/pkgs/development/libraries/libarchive/default.nix @@ -1,4 +1,4 @@ -{ fetchurl, stdenv, acl, openssl, libxml2, attr, zlib, bzip2, e2fsprogs, xz +{ fetchurl, stdenv, acl, openssl, libxml2, attr, zlib, bzip2, e2fsprogs, xz, lzo , sharutils }: stdenv.mkDerivation rec { @@ -18,7 +18,7 @@ stdenv.mkDerivation rec { # ^ it's CVE-2015-2304 specific to libarchive ]; - buildInputs = [ sharutils libxml2 zlib bzip2 openssl xz ] ++ + buildInputs = [ sharutils libxml2 zlib bzip2 openssl xz lzo ] ++ stdenv.lib.optionals stdenv.isLinux [ e2fsprogs attr acl ]; preBuild = if stdenv.isCygwin then '' From 2dc9cb1120cc172055601182e76ee4759cd22fe9 Mon Sep 17 00:00:00 2001 From: "William A. Kennington III" Date: Wed, 23 Sep 2015 20:49:17 -0700 Subject: [PATCH 17/85] libcap-ng: 0.7.3 -> 0.7.7 Also support swig + python bindings --- pkgs/os-specific/linux/libcap-ng/default.nix | 34 +++++++++++++++----- pkgs/top-level/all-packages.nix | 6 +++- 2 files changed, 31 insertions(+), 9 deletions(-) diff --git a/pkgs/os-specific/linux/libcap-ng/default.nix b/pkgs/os-specific/linux/libcap-ng/default.nix index 3670f06e543..ea54f1a39fd 100644 --- a/pkgs/os-specific/linux/libcap-ng/default.nix +++ b/pkgs/os-specific/linux/libcap-ng/default.nix @@ -1,22 +1,40 @@ -{ stdenv, fetchurl, python }: +{ stdenv, fetchurl, swig ? null, python2 ? null, python3 ? null }: -assert stdenv.isLinux; +assert python2 != null || python3 != null -> swig != null; stdenv.mkDerivation rec { name = "libcap-ng-${version}"; - version = "0.7.3"; + # When updating make sure to test that the version with + # all of the python bindings still works + version = "0.7.7"; src = fetchurl { url = "${meta.homepage}/${name}.tar.gz"; - sha256 = "1cavlcrpqi4imkmagjhw65br8rv2fsbhf68mm3lczr51sg44392w"; + sha256 = "0syhyrixk7fqvwis3k7iddn75g0qxysc1q5fifvzccxk7774jmb1"; }; - buildInputs = [ python ]; # ToDo? optional swig for python bindings + nativeBuildInputs = [ swig ]; + buildInputs = [ python2 python3 ]; - meta = { + postPatch = '' + function get_header() { + echo -e "#include <$1>" | gcc -M -xc - | tr ' ' '\n' | grep "$1" | head -n 1 + } + + # Fix some hardcoding of header paths + sed -i "s,/usr/include/linux/capability.h,$(get_header linux/capability.h),g" bindings/python{,3}/Makefile.in + ''; + + configureFlags = [ + (if python2 != null then "--with-python" else "--without-python") + (if python3 != null then "--with-python3" else "--without-python3") + ]; + + meta = let inherit (stdenv.lib) platforms licenses maintainers; in { description = "Library for working with POSIX capabilities"; homepage = http://people.redhat.com/sgrubb/libcap-ng/; - platforms = stdenv.lib.platforms.linux; - license = stdenv.lib.licenses.lgpl21; + platforms = platforms.linux; + license = licenses.lgpl21; + maintainers = with maintainers; [ wkennington ]; }; } diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index bccccc12bae..bb9392f9053 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -9921,7 +9921,11 @@ let libcap_manpages = callPackage ../os-specific/linux/libcap/man.nix { }; - libcap_ng = callPackage ../os-specific/linux/libcap-ng { }; + libcap_ng = callPackage ../os-specific/linux/libcap-ng { + swig = null; # Currently not using the python2/3 bindings + python2 = null; # Currently not using the python2 bindings + python3 = null; # Currently not using the python3 bindings + }; libnscd = callPackage ../os-specific/linux/libnscd { }; From 9e15068099a5b522660cbee3944a4022a436364a Mon Sep 17 00:00:00 2001 From: Robbin C Date: Mon, 21 Sep 2015 11:56:10 +0800 Subject: [PATCH 18/85] ctpp2: init at 2.8.3. This adds ctpp2, a high performance templating engine. --- pkgs/development/libraries/ctpp2/default.nix | 24 ++++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 ++ 2 files changed, 26 insertions(+) create mode 100644 pkgs/development/libraries/ctpp2/default.nix diff --git a/pkgs/development/libraries/ctpp2/default.nix b/pkgs/development/libraries/ctpp2/default.nix new file mode 100644 index 00000000000..ab5cd2beff3 --- /dev/null +++ b/pkgs/development/libraries/ctpp2/default.nix @@ -0,0 +1,24 @@ +{ stdenv, fetchurl, cmake, gcc48 }: + +stdenv.mkDerivation rec { + name = "ctpp2"; + version = "2.8.3"; + + src = fetchurl { + url = "http://ctpp.havoc.ru/download/ctpp2-${version}.tar.gz"; + sha256 = "1z22zfw9lb86z4hcan9hlvji49c9b7vznh7gjm95gnvsh43zsgx8"; + }; + + buildInputs = [ cmake gcc48 ]; + + patchPhase = '' + # include to fix undefined getcwd + sed -ie 's//\n#include /' src/CTPP2FileSourceLoader.cpp + ''; + + meta = { + description = "A high performance templating engine"; + homepage = http://ctpp.havoc.ru; + maintiainers = with stdenv.lib.maintainers; [ robbinch ]; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 8041eaf758f..6ca93f2c4f9 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -6030,6 +6030,8 @@ let ctl = callPackage ../development/libraries/ctl { }; + ctpp2 = callPackage ../development/libraries/ctpp2 { }; + cpp-netlib = callPackage ../development/libraries/cpp-netlib { }; cppunit = callPackage ../development/libraries/cppunit { }; From be5d0141c535074d08474527e57c2c702d155514 Mon Sep 17 00:00:00 2001 From: Brian McKenna Date: Sun, 20 Sep 2015 23:07:46 +1000 Subject: [PATCH 19/85] google-musicmanager: beta_1.0.182.3607-r0 -> beta_1.0.221.5230-r0 The previous version was 404 Also fixes i686 typo --- pkgs/applications/audio/google-musicmanager/default.nix | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pkgs/applications/audio/google-musicmanager/default.nix b/pkgs/applications/audio/google-musicmanager/default.nix index 2edc1c00ce6..7c69a25eb04 100644 --- a/pkgs/applications/audio/google-musicmanager/default.nix +++ b/pkgs/applications/audio/google-musicmanager/default.nix @@ -1,12 +1,12 @@ { stdenv, fetchurl, readline, patchelf, ncurses, qt48, libidn, expat, flac , libvorbis }: -assert stdenv.system == "x86_64-linux" || stdenv.system == "1686-linux"; +assert stdenv.system == "x86_64-linux" || stdenv.system == "i686-linux"; let archUrl = name: arch: "http://dl.google.com/linux/musicmanager/deb/pool/main/g/google-musicmanager-beta/${name}_${arch}.deb"; in stdenv.mkDerivation rec { - version = "beta_1.0.182.3607-r0"; # friendly to nix-env version sorting algo + version = "beta_1.0.221.5230-r0"; # friendly to nix-env version sorting algo product = "google-musicmanager"; name = "${product}-${version}"; @@ -18,11 +18,11 @@ stdenv.mkDerivation rec { src = if stdenv.system == "x86_64-linux" then fetchurl { url = archUrl name "amd64"; - sha256 = "141x986haxg3r72ggh8prz0qg298jkad1ys8sdvsac92p4adcqx4"; + sha256 = "1h0ssbz6y9xi2szalgb5wcxi8m1ylg4qf2za6zgvi908hpan7q37"; } else fetchurl { url = archUrl name "i386"; - sha256 = "076iaa7pxhj8b1hlg5ah9jfm4qgzgjc9ivvg2l18wp045gnycv1l"; + sha256 = "0q8cnzx7s25bpqlbp40d43mwd6m8kvhvdifkqlgc9phpydnqpd1i"; }; unpackPhase = '' From d06a172c1c3f820929344ff37cd37ac4c5eab737 Mon Sep 17 00:00:00 2001 From: Gabriel Ebner Date: Mon, 21 Sep 2015 09:38:38 +0200 Subject: [PATCH 20/85] metis-prover: init at 2.3 --- .../science/logic/metis-prover/default.nix | 29 +++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 ++ 2 files changed, 31 insertions(+) create mode 100644 pkgs/applications/science/logic/metis-prover/default.nix diff --git a/pkgs/applications/science/logic/metis-prover/default.nix b/pkgs/applications/science/logic/metis-prover/default.nix new file mode 100644 index 00000000000..0aa3d6e51c3 --- /dev/null +++ b/pkgs/applications/science/logic/metis-prover/default.nix @@ -0,0 +1,29 @@ +{ stdenv, fetchurl, perl, mlton }: + +stdenv.mkDerivation rec { + name = "metis-prover-${version}"; + version = "2.3"; + + src = fetchurl { + url = "http://www.gilith.com/software/metis/metis.tar.gz"; + sha256 = "07wqhic66i5ip2j194x6pswwrxyxrimpc4vg0haa5aqv9pfpmxad"; + }; + + nativeBuildInputs = [ perl ]; + buildInputs = [ mlton ]; + + patchPhase = "patchShebangs scripts/mlpp"; + + buildPhase = "make mlton"; + + installPhase = '' + install -Dm0755 bin/mlton/metis $out/bin/metis + ''; + + meta = with stdenv.lib; { + description = "Automatic theorem prover for first-order logic with equality"; + homepage = http://www.gilith.com/research/metis/; + license = licenses.mit; + maintainers = with maintainers; [ gebner ]; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 6ca93f2c4f9..4891ec8d4ba 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -14349,6 +14349,8 @@ let ocaml_mysql ocamlnet ulex08 camlzip ocaml_pcre; }); + metis-prover = callPackage ../applications/science/logic/metis-prover { }; + minisat = callPackage ../applications/science/logic/minisat {}; opensmt = callPackage ../applications/science/logic/opensmt { }; From 697d61ceabc9813d2ae5ac553dcb4aabf12903d9 Mon Sep 17 00:00:00 2001 From: Luca Bruno Date: Wed, 23 Sep 2015 11:46:02 +0200 Subject: [PATCH 21/85] maint script gnome.sh: update all packages --- maintainers/scripts/gnome.sh | 236 ++++++++++++++++++++++------------- 1 file changed, 146 insertions(+), 90 deletions(-) diff --git a/maintainers/scripts/gnome.sh b/maintainers/scripts/gnome.sh index cd2c5777403..9398331d0d6 100755 --- a/maintainers/scripts/gnome.sh +++ b/maintainers/scripts/gnome.sh @@ -4,28 +4,24 @@ set -o pipefail GNOME_FTP="ftp.gnome.org/pub/GNOME/sources" +# projects that don't follow the GNOME major versioning, or that we don't want to +# programmatically update +NO_GNOME_MAJOR="gtkhtml gdm" + usage() { - echo "Usage: $0 show|update project [major.minor]" >&2 + echo "Usage: $0 gnome_dir || [major.minor]" >&2 + echo "gnome_dir is for example pkgs/desktops/gnome-3/3.18" >&2 exit 0 } -if [ "$#" -lt 1 ]; then +if [ "$#" -lt 2 ]; then usage fi +GNOME_TOP="$1" +shift + action="$1" -project="$2" -majorVersion="$3" - -if [ "$action" != "show" ] && [ "$action" != "update" ]; then - echo "Unknown action $action" >&2 - usage -fi - -if [ -z "$project" ]; then - echo "No project specified, exiting" - exit 1 -fi # curl -l ftp://... doesn't work from my office in HSE, and I don't want to have # any conversations with sysadmin. Somehow lftp works. @@ -39,79 +35,93 @@ else } fi -if [ -z "$majorVersion" ]; then - echo "Looking for available versions..." >&2 - available_baseversions=( `ls_ftp ftp://${GNOME_FTP}/${project} | grep '[0-9]\.[0-9]' | sort -t. -k1,1n -k 2,2n` ) - if [ "$?" -ne "0" ]; then - echo "Project $project not found" >&2 - exit 1 +find_project() { + exec find "$GNOME_TOP" -mindepth 2 -maxdepth 2 -type d $@ +} + +show_project() { + local project="$1" + local majorVersion="$2" + local version="" + + if [ -z "$majorVersion" ]; then + echo "Looking for available versions..." >&2 + local available_baseversions=( `ls_ftp ftp://${GNOME_FTP}/${project} | grep '[0-9]\.[0-9]' | sort -t. -k1,1n -k 2,2n` ) + if [ "$?" -ne "0" ]; then + echo "Project $project not found" >&2 + return 1 + fi + + echo -e "The following versions are available:\n ${available_baseversions[@]}" >&2 + echo -en "Choose one of them: " >&2 + read majorVersion fi - echo -e "The following versions are available:\n ${available_baseversions[@]}" >&2 - echo -en "Choose one of them: " >&2 - read majorVersion -fi - -if echo "$majorVersion" | grep -q "[0-9]\+\.[0-9]\+\.[0-9]\+"; then - # not a major version - version="$majorVersion" - majorVersion=$(echo "$majorVersion" | cut -d '.' -f 1,2) -fi - -FTPDIR="${GNOME_FTP}/${project}/${majorVersion}" - -#version=`curl -l ${FTPDIR}/ 2>/dev/null | grep LATEST-IS | sed -e s/LATEST-IS-//` -# gnome's LATEST-IS is broken. Do not trust it. - -if [ -z "$version" ]; then - files=$(ls_ftp "${FTPDIR}") - declare -A versions - - for f in $files; do - case $f in - (LATEST-IS-*|*.news|*.changes|*.sha256sum|*.diff*): - ;; - ($project-*.*.9*.tar.*): - tmp=${f#$project-} - tmp=${tmp%.tar*} - echo "Ignored unstable version ${tmp}" >&2 - ;; - ($project-*.tar.*): - tmp=${f#$project-} - tmp=${tmp%.tar*} - versions[${tmp}]=1 - ;; - (*): - echo "UNKNOWN FILE $f" - ;; - esac - done - echo "Found versions ${!versions[@]}" >&2 - version=`echo ${!versions[@]} | sed -e 's/ /\n/g' | sort -t. -k1,1n -k 2,2n -k 3,3n | tail -n1` - echo "Latest version is: ${version}" >&2 -fi - -name=${project}-${version} -echo "Fetching .sha256 file" >&2 -sha256out=$(curl -s -f http://${FTPDIR}/${name}.sha256sum) - -if [ "$?" -ne "0" ]; then - echo "Version not found" >&2 - exit 1 -fi - -extensions=( "xz" "bz2" "gz" ) -echo "Choosing archive extension (known are ${extensions[@]})..." >&2 -for ext in ${extensions[@]}; do - if echo -e "$sha256out" | grep -q "\\.tar\\.${ext}$"; then - ext_pref=$ext - sha256=$(echo -e "$sha256out" | grep "\\.tar\\.${ext}$" | cut -f1 -d\ ) - break + if echo "$majorVersion" | grep -q "[0-9]\+\.[0-9]\+\.[0-9]\+"; then + # not a major version + version="$majorVersion" + majorVersion=$(echo "$majorVersion" | cut -d '.' -f 1,2) fi -done -echo "Chosen ${ext_pref}, hash is ${sha256}" >&2 + + local FTPDIR="${GNOME_FTP}/${project}/${majorVersion}" + + #version=`curl -l ${FTPDIR}/ 2>/dev/null | grep LATEST-IS | sed -e s/LATEST-IS-//` + # gnome's LATEST-IS is broken. Do not trust it. + + if [ -z "$version" ]; then + local files=$(ls_ftp "${FTPDIR}") + declare -A versions + + for f in $files; do + case $f in + (LATEST-IS-*|*.news|*.changes|*.sha256sum|*.diff*): + ;; + ($project-*.*.9*.tar.*): + tmp=${f#$project-} + tmp=${tmp%.tar*} + echo "Ignored unstable version ${tmp}" >&2 + ;; + ($project-*.tar.*): + tmp=${f#$project-} + tmp=${tmp%.tar*} + versions[${tmp}]=1 + ;; + (*): + echo "UNKNOWN FILE $f" >&2 + ;; + esac + done + echo "Found versions ${!versions[@]}" >&2 + version=`echo ${!versions[@]} | sed -e 's/ /\n/g' | sort -t. -k1,1n -k 2,2n -k 3,3n | tail -n1` + if [ -z "$version" ]; then + echo "No version available for major $majorVersion" >&2 + return 1 + fi -src="# Autogenerated by maintainers/scripts/gnome.sh update + echo "Latest version is: ${version}" >&2 + fi + + local name=${project}-${version} + echo "Fetching .sha256 file" >&2 + local sha256out=$(curl -s -f http://${FTPDIR}/${name}.sha256sum) + + if [ "$?" -ne "0" ]; then + echo "Version not found" >&2 + return 1 + fi + + extensions=( "xz" "bz2" "gz" ) + echo "Choosing archive extension (known are ${extensions[@]})..." >&2 + for ext in ${extensions[@]}; do + if echo -e "$sha256out" | grep -q "\\.tar\\.${ext}$"; then + ext_pref=$ext + sha256=$(echo -e "$sha256out" | grep "\\.tar\\.${ext}$" | cut -f1 -d\ ) + break + fi + done + echo "Chosen ${ext_pref}, hash is ${sha256}" >&2 + + echo "# Autogenerated by maintainers/scripts/gnome.sh update fetchurl: { name = \"${project}-${version}\"; @@ -122,17 +132,63 @@ fetchurl: { }; }" -if [ "$action" == "update" ]; then + return 0 +} + +update_project() { + local project="$1" + local majorVersion="$2" + # find project in nixpkgs tree - GNOME_TOP=$(readlink -e $(dirname "${BASH_SOURCE[0]}")"/../../pkgs/desktops/gnome-3/") - projectPath=$(find "$GNOME_TOP" -name "$project" -print) + projectPath=$(find_project -name "$project" -print) if [ -z "$projectPath" ]; then echo "Project $project not found under $GNOME_TOP" exit 1 fi - echo "Updating $projectPath/src.nix" - echo -e "$src" > "$projectPath/src.nix" + src=$(show_project "$project" "$majorVersion") + + if [ "$?" -eq "0" ]; then + echo "Updating $projectPath/src.nix" >&2 + echo -e "$src" > "$projectPath/src.nix" + fi + + return 0 +} + +if [ "$action" == "update-all" ]; then + majorVersion="$2" + if [ -z "$majorVersion" ]; then + echo "No major version specified" >&2 + usage + fi + + # find projects + projects=$(find_project -exec basename '{}' \;) + for project in $projects; do + if echo "$NO_GNOME_MAJOR"|grep -q $project; then + echo "Skipping $project" + else + echo "= Updating $project to $majorVersion" >&2 + update_project $project $majorVersion + echo >&2 + fi + done else - echo -e "\n$src" -fi \ No newline at end of file + project="$2" + majorVersion="$3" + + if [ -z "$project" ]; then + echo "No project specified, exiting" >&2 + usage + fi + + if [ "$action" == "show" ]; then + show_project $project $majorVersion + elif [ "$action" == "update" ]; then + update_project $project $majorVersion + else + echo "Unknown action $action" >&2 + usage + fi +fi From b1f4a7ef3212919466dd97b087f6351c677a53ae Mon Sep 17 00:00:00 2001 From: Luca Bruno Date: Fri, 25 Sep 2015 10:28:51 +0200 Subject: [PATCH 22/85] webkitgtk: 2.8.5 -> 2.10.0 --- pkgs/development/libraries/webkitgtk/default.nix | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/pkgs/development/libraries/webkitgtk/default.nix b/pkgs/development/libraries/webkitgtk/default.nix index 0e67f5d3d1a..d60fbca6141 100644 --- a/pkgs/development/libraries/webkitgtk/default.nix +++ b/pkgs/development/libraries/webkitgtk/default.nix @@ -1,5 +1,5 @@ { stdenv, fetchurl, perl, python, ruby, bison, gperf, cmake -, pkgconfig, gettext, gobjectIntrospection +, pkgconfig, gettext, gobjectIntrospection, libnotify , gtk2, gtk3, wayland, libwebp, enchant , libxml2, libsoup, libsecret, libxslt, harfbuzz, libpthreadstubs , enableGeoLocation ? true, geoclue2, sqlite @@ -11,7 +11,7 @@ assert enableGeoLocation -> geoclue2 != null; with stdenv.lib; stdenv.mkDerivation rec { name = "webkitgtk-${version}"; - version = "2.8.5"; + version = "2.10.0"; meta = { description = "Web content rendering engine, GTK+ port"; @@ -25,12 +25,12 @@ stdenv.mkDerivation rec { src = fetchurl { url = "http://webkitgtk.org/releases/${name}.tar.xz"; - sha256 = "082dw0d8jxvsapx30ypmy5h2srzfzi42c3zr9pbkzx1m959hq7rx"; + sha256 = "0vb8ca6dd9hxb5ycp54bdyykp10blbq5b6qkbak4yf9mxwi5ccj2"; }; patches = [ ./finding-harfbuzz-icu.patch ]; - cmakeFlags = [ "-DPORT=GTK" ]; + cmakeFlags = [ "-DPORT=GTK" "-DUSE_LIBHYPHEN=0" ]; # XXX: WebKit2 missing include path for gst-plugins-base. # Filled: https://bugs.webkit.org/show_bug.cgi?id=148894 @@ -42,7 +42,7 @@ stdenv.mkDerivation rec { ]; buildInputs = [ - gtk2 wayland libwebp enchant + gtk2 wayland libwebp enchant libnotify libxml2 libsecret libxslt harfbuzz libpthreadstubs gst-plugins-base ] ++ optional enableGeoLocation geoclue2; @@ -51,5 +51,5 @@ stdenv.mkDerivation rec { libsoup gtk3 ]; - enableParallelBuilding = true; # build problems on Hydra + enableParallelBuilding = true; } From 6bb4df642ec3e4f59124a49636d457dab7c33490 Mon Sep 17 00:00:00 2001 From: Luca Bruno Date: Fri, 25 Sep 2015 10:29:21 +0200 Subject: [PATCH 23/85] glib: 2.44.1 -> 2.46.0 --- pkgs/development/libraries/glib/default.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/development/libraries/glib/default.nix b/pkgs/development/libraries/glib/default.nix index fb9c361c530..137fe943637 100644 --- a/pkgs/development/libraries/glib/default.nix +++ b/pkgs/development/libraries/glib/default.nix @@ -39,8 +39,8 @@ let ln -sr -t "$out/include/" "$out"/lib/*/include/* 2>/dev/null || true ''; - ver_maj = "2.44"; - ver_min = "1"; + ver_maj = "2.46"; + ver_min = "0"; in stdenv.mkDerivation rec { @@ -48,7 +48,7 @@ stdenv.mkDerivation rec { src = fetchurl { url = "mirror://gnome/sources/glib/${ver_maj}/${name}.tar.xz"; - sha256 = "01yabrfp64i11mrks3p1gcks99lw0zm7f5vhkc53sl4amyndw4c8"; + sha256 = "b1cee83469ae7d80f17c267c37f090414e93960bd62d2b254a5a96fbc5baacb4"; }; patches = optional stdenv.isDarwin ./darwin-compilation.patch ++ optional doCheck ./skip-timer-test.patch; From 63ccbf55b2de793246e19502166f24c407e90ddc Mon Sep 17 00:00:00 2001 From: Luca Bruno Date: Fri, 25 Sep 2015 10:30:14 +0200 Subject: [PATCH 24/85] atk: 2.16.0 -> 2.18.0 --- pkgs/development/libraries/atk/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/libraries/atk/default.nix b/pkgs/development/libraries/atk/default.nix index d5e442c738c..dcb90aa16cd 100644 --- a/pkgs/development/libraries/atk/default.nix +++ b/pkgs/development/libraries/atk/default.nix @@ -1,7 +1,7 @@ { stdenv, fetchurl, pkgconfig, perl, glib, libintlOrEmpty, gobjectIntrospection }: let - ver_maj = "2.16"; + ver_maj = "2.18"; ver_min = "0"; in stdenv.mkDerivation rec { @@ -9,7 +9,7 @@ stdenv.mkDerivation rec { src = fetchurl { url = "mirror://gnome/sources/atk/${ver_maj}/${name}.tar.xz"; - sha256 = "0qp5i91kfk6rhrlam3s8ha0cz88lkyp89vsyn4pb5856c1h9hpq9"; + sha256 = "ce6c48d77bf951083029d5a396dd552d836fff3c1715d3a7022e917e46d0c92b"; }; buildInputs = libintlOrEmpty; From 6858ca17db98846f1e541ac28ee9d5ec98d8c789 Mon Sep 17 00:00:00 2001 From: Luca Bruno Date: Fri, 25 Sep 2015 10:31:16 +0200 Subject: [PATCH 25/85] gobject-introspection: 1.44.0 -> 1.46.0 --- .../libraries/gobject-introspection/default.nix | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/pkgs/development/libraries/gobject-introspection/default.nix b/pkgs/development/libraries/gobject-introspection/default.nix index 50fddd9da9f..f429e1dc6c3 100644 --- a/pkgs/development/libraries/gobject-introspection/default.nix +++ b/pkgs/development/libraries/gobject-introspection/default.nix @@ -5,7 +5,7 @@ # In that case its about 6MB which could be separated let - ver_maj = "1.44"; + ver_maj = "1.46"; ver_min = "0"; in stdenv.mkDerivation rec { @@ -13,7 +13,7 @@ stdenv.mkDerivation rec { src = fetchurl { url = "mirror://gnome/sources/gobject-introspection/${ver_maj}/${name}.tar.xz"; - sha256 = "1b972qg2yb51sdavfvb6kc19akwc15c1bwnbg81vadxamql2q33g"; + sha256 = "6658bd3c2b8813eb3e2511ee153238d09ace9d309e4574af27443d87423e4233"; }; buildInputs = [ flex bison pkgconfig python ] @@ -25,6 +25,10 @@ stdenv.mkDerivation rec { # other dependencies). configureFlags = [ "--disable-tests" ]; + preConfigure = '' + sed 's|/usr/bin/env ||' -i tools/g-ir-tool-template.in + ''; + postInstall = "rm -rf $out/share/gtk-doc"; setupHook = ./setup-hook.sh; From 8b3e6b5f62f0a6419e782187943d11fdc417409b Mon Sep 17 00:00:00 2001 From: Luca Bruno Date: Fri, 25 Sep 2015 10:31:59 +0200 Subject: [PATCH 26/85] at-spi2-core: 2.16.0 -> 2.18.0 --- pkgs/development/libraries/at-spi2-core/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/libraries/at-spi2-core/default.nix b/pkgs/development/libraries/at-spi2-core/default.nix index 0fc28185501..7cf29aaca86 100644 --- a/pkgs/development/libraries/at-spi2-core/default.nix +++ b/pkgs/development/libraries/at-spi2-core/default.nix @@ -2,14 +2,14 @@ , libX11, xextproto, libSM, libICE, libXtst, libXi, gobjectIntrospection }: stdenv.mkDerivation rec { - versionMajor = "2.16"; + versionMajor = "2.18"; versionMinor = "0"; moduleName = "at-spi2-core"; name = "${moduleName}-${versionMajor}.${versionMinor}"; src = fetchurl { url = "mirror://gnome/sources/${moduleName}/${versionMajor}/${name}.tar.xz"; - sha256 = "1l3l39mw23zyjlcqidvkyqlr4gwbhplzw2hcv3qvn6p8ikxpf2qw"; + sha256 = "1aeec77db6eb8087049af39a07f55756c55319f739d2998030fe6f4ced03ca76"; }; outputs = [ "out" "doc" ]; From 0688a56a49a548960e948a1ce54b80a7ea9c6fef Mon Sep 17 00:00:00 2001 From: Luca Bruno Date: Fri, 25 Sep 2015 10:32:15 +0200 Subject: [PATCH 27/85] at-spi2-atk: 2.16.0 -> 2.18.0 --- pkgs/development/libraries/at-spi2-atk/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/libraries/at-spi2-atk/default.nix b/pkgs/development/libraries/at-spi2-atk/default.nix index 940fc2bb6cc..4a018f0b405 100644 --- a/pkgs/development/libraries/at-spi2-atk/default.nix +++ b/pkgs/development/libraries/at-spi2-atk/default.nix @@ -2,14 +2,14 @@ , intltool, dbus_glib, at_spi2_core, libSM }: stdenv.mkDerivation rec { - versionMajor = "2.16"; + versionMajor = "2.18"; versionMinor = "0"; moduleName = "at-spi2-atk"; name = "${moduleName}-${versionMajor}.${versionMinor}"; src = fetchurl { url = "mirror://gnome/sources/${moduleName}/${versionMajor}/${name}.tar.xz"; - sha256 = "1y9gfz1iz3wpja7s000f0bmyyvc6im5fcdl6bxwbz0v3qdgc9vvq"; + sha256 = "4a6db33453b6efd15fa7d84ef2a3421262a053f57f1df6e7a2536d02bacdf375"; }; buildInputs = [ python pkgconfig popt atk libX11 libICE xlibs.libXtst libXi From 4c9b91b2a27964ce34c466ead0bad5d4b7b91ed9 Mon Sep 17 00:00:00 2001 From: Luca Bruno Date: Fri, 25 Sep 2015 10:32:37 +0200 Subject: [PATCH 28/85] gdk-pixbuf: 2.31.6 -> 2.32.0 --- pkgs/development/libraries/gdk-pixbuf/default.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/development/libraries/gdk-pixbuf/default.nix b/pkgs/development/libraries/gdk-pixbuf/default.nix index 5f5a0496954..82fe45d25e4 100644 --- a/pkgs/development/libraries/gdk-pixbuf/default.nix +++ b/pkgs/development/libraries/gdk-pixbuf/default.nix @@ -2,15 +2,15 @@ , jasper, libintlOrEmpty, gobjectIntrospection }: let - ver_maj = "2.31"; - ver_min = "6"; + ver_maj = "2.32"; + ver_min = "0"; in stdenv.mkDerivation rec { name = "gdk-pixbuf-${ver_maj}.${ver_min}"; src = fetchurl { url = "mirror://gnome/sources/gdk-pixbuf/${ver_maj}/${name}.tar.xz"; - sha256 = "062x2gqd7p6yxhxlib1ha4l3gk9ihcj080hrwwv9vmlmybb064hi"; + sha256 = "537655ec3635740e949457bafe61ae44ce0e5642a2529a9ef7ee0bcd5e911b67"; }; setupHook = ./setup-hook.sh; From 0a40884e3c589dfdeb42521076892b0d2f6180eb Mon Sep 17 00:00:00 2001 From: Luca Bruno Date: Fri, 25 Sep 2015 10:32:50 +0200 Subject: [PATCH 29/85] pango: 1.36.8 -> 1.38.0 --- pkgs/development/libraries/pango/default.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/development/libraries/pango/default.nix b/pkgs/development/libraries/pango/default.nix index 87187667a92..12b38fd6db7 100644 --- a/pkgs/development/libraries/pango/default.nix +++ b/pkgs/development/libraries/pango/default.nix @@ -3,15 +3,15 @@ }: let - ver_maj = "1.36"; - ver_min = "8"; + ver_maj = "1.38"; + ver_min = "0"; in stdenv.mkDerivation rec { name = "pango-${ver_maj}.${ver_min}"; src = fetchurl { url = "mirror://gnome/sources/pango/${ver_maj}/${name}.tar.xz"; - sha256 = "01rdzjh68w8l5zn0648yibyarj8p6g7yfn59nw5awaz1i8dvbnqq"; + sha256 = "1d4e75974bad853ee9ac5fc5caee5e7ab235abbd945d51d01f3806e04e7c226c"; }; buildInputs = with stdenv.lib; [ gobjectIntrospection ] From 48ac26f51250c97fda720520d96505afa9dc53c8 Mon Sep 17 00:00:00 2001 From: Luca Bruno Date: Fri, 25 Sep 2015 10:33:07 +0200 Subject: [PATCH 30/85] gtk+: 3.16.6 -> 3.18.0 --- pkgs/development/libraries/gtk+/3.x.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/development/libraries/gtk+/3.x.nix b/pkgs/development/libraries/gtk+/3.x.nix index 5fb70ac05ea..9bf95d015dd 100644 --- a/pkgs/development/libraries/gtk+/3.x.nix +++ b/pkgs/development/libraries/gtk+/3.x.nix @@ -9,8 +9,8 @@ assert xineramaSupport -> xlibs.libXinerama != null; assert cupsSupport -> cups != null; let - ver_maj = "3.16"; - ver_min = "6"; + ver_maj = "3.18"; + ver_min = "0"; version = "${ver_maj}.${ver_min}"; in stdenv.mkDerivation rec { @@ -18,7 +18,7 @@ stdenv.mkDerivation rec { src = fetchurl { url = "mirror://gnome/sources/gtk+/${ver_maj}/gtk+-${version}.tar.xz"; - sha256 = "1gpzlnfrifc17yfk0zki6b2vmsfpf5cmrbh232s6iaan11np44jd"; + sha256 = "7fb8ae257403317d3852bad28d064d35f67e978b1fed8b71d5997e87204271b9"; }; nativeBuildInputs = [ pkgconfig gettext gobjectIntrospection perl ]; From bb16eb8f9da042abd773a3696a05ad1981b12d62 Mon Sep 17 00:00:00 2001 From: Luca Bruno Date: Fri, 25 Sep 2015 10:34:03 +0200 Subject: [PATCH 31/85] cogl: init 1.22.0 --- pkgs/development/libraries/cogl/1.22.nix | 56 ++++++++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 + 2 files changed, 58 insertions(+) create mode 100644 pkgs/development/libraries/cogl/1.22.nix diff --git a/pkgs/development/libraries/cogl/1.22.nix b/pkgs/development/libraries/cogl/1.22.nix new file mode 100644 index 00000000000..ce4fda5bd46 --- /dev/null +++ b/pkgs/development/libraries/cogl/1.22.nix @@ -0,0 +1,56 @@ +{ stdenv, fetchurl, pkgconfig, mesa_noglu, glib, gdk_pixbuf, xorg, libintlOrEmpty +, pangoSupport ? true, pango, cairo, gobjectIntrospection +, gstreamerSupport ? true, gst_all_1 }: + +let + ver_maj = "1.22"; + ver_min = "0"; +in +stdenv.mkDerivation rec { + name = "cogl-${ver_maj}.${ver_min}"; + + src = fetchurl { + url = "mirror://gnome/sources/cogl/${ver_maj}/${name}.tar.xz"; + sha256 = "689dfb5d14fc1106e9d2ded0f7930dcf7265d0bc84fa846b4f03941633eeaa91"; + }; + + nativeBuildInputs = [ pkgconfig ]; + + configureFlags = [ + "--enable-introspection" + "--enable-kms-egl-platform" + ] ++ stdenv.lib.optional gstreamerSupport "--enable-cogl-gst" + ++ stdenv.lib.optionals (!stdenv.isDarwin) [ "--enable-gles1" "--enable-gles2" ]; + + propagatedBuildInputs = with xorg; [ + glib gdk_pixbuf gobjectIntrospection + mesa_noglu libXrandr libXfixes libXcomposite libXdamage + ] + ++ libintlOrEmpty + ++ stdenv.lib.optionals gstreamerSupport [ gst_all_1.gstreamer + gst_all_1.gst-plugins-base ]; + + buildInputs = stdenv.lib.optionals pangoSupport [ pango cairo ]; + + COGL_PANGO_DEP_CFLAGS + = stdenv.lib.optionalString (stdenv.isDarwin && pangoSupport) + "-I${pango}/include/pango-1.0 -I${cairo}/include/cairo"; + + NIX_LDFLAGS = stdenv.lib.optionalString stdenv.isDarwin "-lintl"; + + #doCheck = true; # all tests fail (no idea why) + + meta = with stdenv.lib; { + description = "A small open source library for using 3D graphics hardware for rendering"; + maintainers = with maintainers; [ lovek323 ]; + + longDescription = '' + Cogl is a small open source library for using 3D graphics hardware for + rendering. The API departs from the flat state machine style of OpenGL + and is designed to make it easy to write orthogonal components that can + render without stepping on each other's toes. + ''; + + platforms = stdenv.lib.platforms.mesaPlatforms; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 4891ec8d4ba..1eb556515b7 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -6018,6 +6018,8 @@ let cogl_1_20 = callPackage ../development/libraries/cogl/1.20.nix { }; + cogl_1_22 = callPackage ../development/libraries/cogl/1.22.nix { }; + coin3d = callPackage ../development/libraries/coin3d { }; CoinMP = callPackage ../development/libraries/CoinMP { }; From 41fc49ed7e94d9a0aef044a6ea34c142e376d3f7 Mon Sep 17 00:00:00 2001 From: Luca Bruno Date: Fri, 25 Sep 2015 10:34:25 +0200 Subject: [PATCH 32/85] clutter: init 1.24.0 --- pkgs/development/libraries/clutter/1.24.nix | 52 +++++++++++++++++++++ pkgs/top-level/all-packages.nix | 4 ++ 2 files changed, 56 insertions(+) create mode 100644 pkgs/development/libraries/clutter/1.24.nix diff --git a/pkgs/development/libraries/clutter/1.24.nix b/pkgs/development/libraries/clutter/1.24.nix new file mode 100644 index 00000000000..b9d45b6c62b --- /dev/null +++ b/pkgs/development/libraries/clutter/1.24.nix @@ -0,0 +1,52 @@ +{ stdenv, fetchurl, glib, pkgconfig, mesa, libX11, libXext, libXfixes +, libXdamage, libXcomposite, libXi, cogl, pango, atk, json_glib, +gobjectIntrospection +}: + +let + ver_maj = "1.24"; + ver_min = "0"; +in +stdenv.mkDerivation rec { + name = "clutter-${ver_maj}.${ver_min}"; + + src = fetchurl { + url = "mirror://gnome/sources/clutter/${ver_maj}/${name}.tar.xz"; + sha256 = "85c87d5745b97af7633776419a47421aae7cea66c1b870f88cc5e06a4c5626e6"; + }; + + nativeBuildInputs = [ pkgconfig ]; + propagatedBuildInputs = + [ libX11 mesa libXext libXfixes libXdamage libXcomposite libXi cogl pango + atk json_glib gobjectIntrospection + ]; + + configureFlags = [ "--enable-introspection" ]; # needed by muffin AFAIK + + #doCheck = true; # no tests possible without a display + + meta = { + description = "Clutter, a library for creating fast, dynamic graphical user interfaces"; + + longDescription = + '' Clutter is free software library for creating fast, compelling, + portable, and dynamic graphical user interfaces. It is a core part + of MeeGo, and is supported by the open source community. Its + development is sponsored by Intel. + + Clutter uses OpenGL for rendering (and optionally OpenGL|ES for use + on mobile and embedded platforms), but wraps an easy to use, + efficient, flexible API around GL's complexity. + + Clutter enforces no particular user interface style, but provides a + rich, generic foundation for higher-level toolkits tailored to + specific needs. + ''; + + license = stdenv.lib.licenses.lgpl2Plus; + homepage = http://www.clutter-project.org/; + + maintainers = with stdenv.lib.maintainers; [ urkud lethalman ]; + platforms = stdenv.lib.platforms.mesaPlatforms; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 1eb556515b7..56fadb5ce10 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -6000,6 +6000,10 @@ let cogl = cogl_1_20; }; + clutter_1_24 = callPackage ../development/libraries/clutter/1.24.nix { + cogl = cogl_1_22; + }; + clutter-gst = callPackage ../development/libraries/clutter-gst { }; clutter-gst_3_0 = callPackage ../development/libraries/clutter-gst/3.0.nix { From 26aea8b1aa798fa4cae5cf45953f8e3f3b7dbea9 Mon Sep 17 00:00:00 2001 From: Luca Bruno Date: Fri, 25 Sep 2015 10:36:01 +0200 Subject: [PATCH 33/85] gnome3: init 3.18 --- nixos/tests/gnome3_18.nix | 36 ++ .../gnome-3/3.18/apps/accerciser/default.nix | 28 ++ .../gnome-3/3.18/apps/bijiben/default.nix | 36 ++ .../gnome-3/3.18/apps/bijiben/src.nix | 10 + .../gnome-3/3.18/apps/cheese/default.nix | 25 ++ .../desktops/gnome-3/3.18/apps/cheese/src.nix | 10 + .../gnome-3/3.18/apps/evolution/default.nix | 49 +++ .../gnome-3/3.18/apps/evolution/src.nix | 10 + .../gnome-3/3.18/apps/file-roller/default.nix | 25 ++ .../gnome-3/3.18/apps/file-roller/src.nix | 10 + .../gnome-3/3.18/apps/gedit/default.nix | 33 ++ pkgs/desktops/gnome-3/3.18/apps/gedit/src.nix | 10 + .../gnome-3/3.18/apps/glade/default.nix | 30 ++ pkgs/desktops/gnome-3/3.18/apps/glade/src.nix | 10 + .../gnome-3/3.18/apps/gnome-boxes/default.nix | 42 ++ .../gnome-3/3.18/apps/gnome-boxes/src.nix | 10 + .../3.18/apps/gnome-calendar/default.nix | 22 + .../gnome-3/3.18/apps/gnome-calendar/src.nix | 10 + .../3.18/apps/gnome-characters/default.nix | 19 + .../3.18/apps/gnome-characters/src.nix | 10 + .../3.18/apps/gnome-clocks/default.nix | 27 ++ .../gnome-3/3.18/apps/gnome-clocks/src.nix | 10 + .../3.18/apps/gnome-documents/default.nix | 39 ++ .../gnome-3/3.18/apps/gnome-documents/src.nix | 10 + .../gnome-getting-started-docs/default.nix | 15 + .../apps/gnome-getting-started-docs/src.nix | 10 + .../gnome-3/3.18/apps/gnome-logs/default.nix | 21 + .../gnome-3/3.18/apps/gnome-logs/src.nix | 10 + .../gnome-3/3.18/apps/gnome-maps/default.nix | 25 ++ .../gnome-3/3.18/apps/gnome-maps/soup.patch | 10 + .../gnome-3/3.18/apps/gnome-maps/src.nix | 10 + .../gnome-3/3.18/apps/gnome-music/default.nix | 30 ++ .../gnome-3/3.18/apps/gnome-music/src.nix | 10 + .../3.18/apps/gnome-nettool/default.nix | 26 ++ .../3.18/apps/gnome-photos/default.nix | 31 ++ .../gnome-3/3.18/apps/gnome-photos/src.nix | 10 + .../3.18/apps/gnome-weather/default.nix | 19 + .../gnome-3/3.18/apps/gnome-weather/src.nix | 10 + .../3.18/apps/nautilus-sendto/default.nix | 22 + .../gnome-3/3.18/apps/polari/default.nix | 22 + .../desktops/gnome-3/3.18/apps/polari/src.nix | 10 + .../gnome-3/3.18/apps/seahorse/default.nix | 35 ++ .../gnome-3/3.18/apps/seahorse/src.nix | 10 + .../gnome-3/3.18/apps/vinagre/default.nix | 21 + .../gnome-3/3.18/apps/vinagre/src.nix | 10 + .../3.18/core/adwaita-icon-theme/default.nix | 21 + .../3.18/core/adwaita-icon-theme/src.nix | 10 + .../gnome-3/3.18/core/baobab/default.nix | 32 ++ .../desktops/gnome-3/3.18/core/baobab/src.nix | 10 + .../gnome-3/3.18/core/caribou/default.nix | 31 ++ .../3.18/core/dconf-editor/default.nix | 19 + .../gnome-3/3.18/core/dconf-editor/src.nix | 10 + .../gnome-3/3.18/core/dconf/default.nix | 23 + .../gnome-3/3.18/core/empathy/default.nix | 57 +++ .../gnome-3/3.18/core/eog/default.nix | 25 ++ pkgs/desktops/gnome-3/3.18/core/eog/src.nix | 10 + .../gnome-3/3.18/core/epiphany/default.nix | 42 ++ .../3.18/core/epiphany/libxml_depend.patch | 10 + .../gnome-3/3.18/core/epiphany/src.nix | 10 + .../gnome-3/3.18/core/evince/default.nix | 64 +++ .../desktops/gnome-3/3.18/core/evince/src.nix | 10 + .../core/evolution-data-server/default.nix | 30 ++ .../3.18/core/evolution-data-server/src.nix | 10 + .../gnome-3/3.18/core/folks/default.nix | 43 ++ .../gnome-3/3.18/core/gconf/default.nix | 32 ++ .../gnome-3/3.18/core/gcr/default.nix | 28 ++ pkgs/desktops/gnome-3/3.18/core/gcr/src.nix | 10 + .../3.18/core/gdm/3.16-wip/default.nix | 41 ++ .../3.16-wip/disable_x_access_control.patch | 15 + .../3.18/core/gdm/3.16-wip/sessions_dir.patch | 17 + .../3.18/core/gdm/3.16-wip/xserver_path.patch | 83 ++++ .../gnome-3/3.18/core/gdm/default.nix | 41 ++ .../core/gdm/disable_x_access_control.patch | 13 + .../3.18/core/gdm/no-dbus-launch.patch | 20 + .../gnome-3/3.18/core/gdm/sessions_dir.patch | 17 + pkgs/desktops/gnome-3/3.18/core/gdm/src.nix | 10 + .../gnome-3/3.18/core/gdm/xserver_path.patch | 15 + .../3.18/core/geocode-glib/default.nix | 14 + .../gnome-3/3.18/core/geocode-glib/src.nix | 10 + .../gnome-3/3.18/core/gjs/default.nix | 28 ++ .../3.18/core/gnome-backgrounds/default.nix | 12 + .../3.18/core/gnome-backgrounds/src.nix | 10 + .../3.18/core/gnome-bluetooth/default.nix | 23 + .../gnome-3/3.18/core/gnome-bluetooth/src.nix | 10 + .../3.18/core/gnome-calculator/default.nix | 30 ++ .../3.18/core/gnome-calculator/src.nix | 10 + .../3.18/core/gnome-common/default.nix | 17 + .../gnome-3/3.18/core/gnome-common/src.nix | 10 + .../3.18/core/gnome-contacts/default.nix | 47 +++ .../3.18/core/gnome-contacts/gio_unix.patch | 10 + .../gnome-3/3.18/core/gnome-contacts/src.nix | 10 + .../core/gnome-control-center/default.nix | 59 +++ .../3.18/core/gnome-control-center/src.nix | 10 + .../vpn_plugins_path.patch | 19 + .../3.18/core/gnome-desktop/default.nix | 24 ++ .../gnome-3/3.18/core/gnome-desktop/src.nix | 10 + .../3.18/core/gnome-dictionary/default.nix | 32 ++ .../3.18/core/gnome-dictionary/src.nix | 10 + .../3.18/core/gnome-disk-utility/default.nix | 35 ++ .../3.18/core/gnome-disk-utility/src.nix | 10 + .../3.18/core/gnome-font-viewer/default.nix | 31 ++ .../3.18/core/gnome-font-viewer/src.nix | 10 + .../3.18/core/gnome-keyring/default.nix | 34 ++ .../gnome-3/3.18/core/gnome-keyring/src.nix | 10 + .../gnome-3/3.18/core/gnome-menus/default.nix | 22 + .../core/gnome-online-accounts/default.nix | 33 ++ .../3.18/core/gnome-online-accounts/src.nix | 10 + .../3.18/core/gnome-online-miners/default.nix | 37 ++ .../3.18/core/gnome-screenshot/default.nix | 31 ++ .../3.18/core/gnome-screenshot/src.nix | 10 + .../3.18/core/gnome-session/default.nix | 25 ++ .../gnome-3/3.18/core/gnome-session/src.nix | 10 + .../core/gnome-settings-daemon/default.nix | 31 ++ .../3.18/core/gnome-settings-daemon/src.nix | 10 + .../core/gnome-shell-extensions/default.nix | 19 + .../3.18/core/gnome-shell-extensions/src.nix | 10 + .../gnome-3/3.18/core/gnome-shell/default.nix | 57 +++ .../gnome-3/3.18/core/gnome-shell/src.nix | 10 + .../3.18/core/gnome-system-log/default.nix | 36 ++ .../core/gnome-system-monitor/default.nix | 32 ++ .../3.18/core/gnome-system-monitor/src.nix | 10 + .../3.18/core/gnome-terminal/default.nix | 28 ++ .../gnome-3/3.18/core/gnome-terminal/src.nix | 10 + .../core/gnome-themes-standard/default.nix | 14 + .../3.18/core/gnome-themes-standard/src.nix | 10 + .../3.18/core/gnome-user-docs/default.nix | 15 + .../gnome-3/3.18/core/gnome-user-docs/src.nix | 10 + .../3.18/core/gnome-user-share/default.nix | 45 ++ .../3.18/core/gnome-user-share/src.nix | 10 + .../3.18/core/grilo-plugins/default.nix | 27 ++ .../gnome-3/3.18/core/grilo/default.nix | 33 ++ .../gnome-3/3.18/core/grilo/setup-hook.sh | 7 + .../gsettings-desktop-schemas/default.nix | 22 + .../core/gsettings-desktop-schemas/src.nix | 10 + .../gnome-3/3.18/core/gsound/default.nix | 22 + .../3.18/core/gtksourceview/default.nix | 22 + .../core/gtksourceview/nix_share_path.patch | 11 + .../gnome-3/3.18/core/gtksourceview/src.nix | 10 + .../gnome-3/3.18/core/gucharmap/default.nix | 33 ++ .../gnome-3/3.18/core/gucharmap/src.nix | 10 + .../gnome-3/3.18/core/libcroco/default.nix | 20 + .../gnome-3/3.18/core/libgdata/default.nix | 33 ++ .../gnome-3/3.18/core/libgee/default.nix | 26 ++ .../core/libgee/fix_introspection_paths.patch | 13 + .../3.18/core/libgnome-keyring/default.nix | 26 ++ .../gnome-3/3.18/core/libgnomekbd/default.nix | 24 ++ .../gnome-3/3.18/core/libgweather/default.nix | 17 + .../gnome-3/3.18/core/libgweather/src.nix | 10 + .../gnome-3/3.18/core/libgxps/default.nix | 20 + .../gnome-3/3.18/core/libpeas/default.nix | 20 + .../gnome-3/3.18/core/libpeas/src.nix | 10 + .../gnome-3/3.18/core/libzapojit/default.nix | 16 + .../gnome-3/3.18/core/mutter/default.nix | 31 ++ .../gnome-3/3.18/core/mutter/math.patch | 10 + .../desktops/gnome-3/3.18/core/mutter/src.nix | 10 + .../gnome-3/3.18/core/mutter/x86.patch | 20 + .../gnome-3/3.18/core/nautilus/default.nix | 25 ++ .../3.18/core/nautilus/extension_dir.patch | 24 ++ .../gnome-3/3.18/core/nautilus/src.nix | 10 + .../gnome-3/3.18/core/rest/default.nix | 19 + .../gnome-3/3.18/core/sushi/default.nix | 33 ++ pkgs/desktops/gnome-3/3.18/core/sushi/src.nix | 10 + .../3.18/core/totem-pl-parser/default.nix | 20 + .../gnome-3/3.18/core/totem/default.nix | 42 ++ pkgs/desktops/gnome-3/3.18/core/totem/src.nix | 10 + .../gnome-3/3.18/core/tracker/default.nix | 55 +++ .../gnome-3/3.18/core/vino/default.nix | 25 ++ pkgs/desktops/gnome-3/3.18/core/vino/src.nix | 10 + pkgs/desktops/gnome-3/3.18/core/vte/2.90.nix | 40 ++ .../gnome-3/3.18/core/vte/default.nix | 39 ++ .../core/vte/expose_select_text.0.40.0.patch | 226 ++++++++++ pkgs/desktops/gnome-3/3.18/core/vte/src.nix | 10 + .../gnome-3/3.18/core/yelp-tools/default.nix | 17 + .../gnome-3/3.18/core/yelp-tools/src.nix | 10 + .../gnome-3/3.18/core/yelp-xsl/default.nix | 18 + .../gnome-3/3.18/core/yelp-xsl/src.nix | 10 + .../gnome-3/3.18/core/yelp/default.nix | 26 ++ pkgs/desktops/gnome-3/3.18/core/yelp/src.nix | 10 + .../gnome-3/3.18/core/zenity/default.nix | 19 + .../desktops/gnome-3/3.18/core/zenity/src.nix | 10 + pkgs/desktops/gnome-3/3.18/default.nix | 394 ++++++++++++++++++ .../gnome-3/3.18/desktop/rarian/default.nix | 16 + .../gnome-3/3.18/devtools/anjuta/default.nix | 24 ++ .../gnome-3/3.18/devtools/anjuta/src.nix | 10 + .../gnome-3/3.18/devtools/devhelp/default.nix | 18 + .../gnome-3/3.18/devtools/devhelp/src.nix | 10 + .../gnome-3/3.18/devtools/gdl/default.nix | 15 + .../gnome-3/3.18/devtools/gdl/src.nix | 10 + .../devtools/gnome-devel-docs/default.nix | 15 + .../3.18/devtools/gnome-devel-docs/src.nix | 10 + .../gnome-3/3.18/games/aisleriot/default.nix | 20 + .../gnome-3/3.18/games/aisleriot/src.nix | 10 + .../3.18/games/five-or-more/default.nix | 19 + .../gnome-3/3.18/games/five-or-more/src.nix | 10 + .../3.18/games/four-in-a-row/default.nix | 19 + .../gnome-3/3.18/games/four-in-a-row/src.nix | 10 + .../3.18/games/gnome-chess/default.nix | 19 + .../gnome-3/3.18/games/gnome-chess/src.nix | 10 + .../3.18/games/gnome-klotski/default.nix | 19 + .../gnome-3/3.18/games/gnome-klotski/src.nix | 10 + .../3.18/games/gnome-mahjongg/default.nix | 19 + .../gnome-3/3.18/games/gnome-mahjongg/src.nix | 10 + .../3.18/games/gnome-mines/default.nix | 19 + .../gnome-3/3.18/games/gnome-mines/src.nix | 10 + .../3.18/games/gnome-nibbles/default.nix | 20 + .../gnome-3/3.18/games/gnome-nibbles/src.nix | 10 + .../3.18/games/gnome-robots/default.nix | 19 + .../gnome-3/3.18/games/gnome-robots/src.nix | 10 + .../3.18/games/gnome-sudoku/default.nix | 17 + .../gnome-3/3.18/games/gnome-sudoku/src.nix | 10 + .../3.18/games/gnome-taquin/default.nix | 19 + .../gnome-3/3.18/games/gnome-taquin/src.nix | 10 + .../3.18/games/gnome-tetravex/default.nix | 18 + .../gnome-3/3.18/games/gnome-tetravex/src.nix | 10 + .../gnome-3/3.18/games/hitori/default.nix | 24 ++ .../gnome-3/3.18/games/iagno/default.nix | 19 + .../desktops/gnome-3/3.18/games/iagno/src.nix | 10 + .../gnome-3/3.18/games/lightsoff/default.nix | 19 + .../gnome-3/3.18/games/lightsoff/src.nix | 10 + .../3.18/games/quadrapassel/default.nix | 21 + .../gnome-3/3.18/games/quadrapassel/src.nix | 10 + .../gnome-3/3.18/games/swell-foop/default.nix | 19 + .../gnome-3/3.18/games/swell-foop/src.nix | 10 + .../gnome-3/3.18/games/tali/default.nix | 19 + pkgs/desktops/gnome-3/3.18/games/tali/src.nix | 10 + ...d-with-evolution-data-server-3.13.90.patch | 39 ++ .../gnome-3/3.18/misc/california/default.nix | 39 ++ .../gnome-3/3.18/misc/geary/default.nix | 52 +++ .../3.18/misc/geary/disable_valadoc.patch | 24 ++ .../gnome-3/3.18/misc/gexiv2/default.nix | 28 ++ .../gnome-3/3.18/misc/gfbgraph/default.nix | 23 + .../gnome-3/3.18/misc/gitg/default.nix | 39 ++ pkgs/desktops/gnome-3/3.18/misc/gitg/src.nix | 10 + ...themes-and-icons-in-system-data-dirs.patch | 123 ++++++ ...-multiple-entries-for-a-single-theme.patch | 103 +++++ ...reate-config-dir-if-it-doesn-t-exist.patch | 29 ++ .../3.18/misc/gnome-tweak-tool/default.nix | 44 ++ .../gnome-tweak-tool/find_gsettings.patch | 22 + .../3.18/misc/gnome-tweak-tool/src.nix | 10 + .../3.18/misc/gnome-video-effects/default.nix | 20 + .../gnome-3/3.18/misc/gpaste/default.nix | 44 ++ .../gnome-3/3.18/misc/gtkhtml/default.nix | 16 + .../gnome-3/3.18/misc/gtkhtml/src.nix | 10 + .../gnome-3/3.18/misc/libgda/default.nix | 30 ++ .../3.18/misc/libgit2-glib/default.nix | 21 + .../gnome-3/3.18/misc/libmediaart/default.nix | 22 + .../gnome-3/3.18/misc/pomodoro/default.nix | 50 +++ pkgs/top-level/all-packages.nix | 2 + 248 files changed, 5838 insertions(+) create mode 100644 nixos/tests/gnome3_18.nix create mode 100644 pkgs/desktops/gnome-3/3.18/apps/accerciser/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/apps/bijiben/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/apps/bijiben/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/apps/cheese/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/apps/cheese/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/apps/evolution/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/apps/evolution/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/apps/file-roller/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/apps/file-roller/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/apps/gedit/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/apps/gedit/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/apps/glade/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/apps/glade/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/apps/gnome-boxes/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/apps/gnome-boxes/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/apps/gnome-calendar/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/apps/gnome-calendar/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/apps/gnome-characters/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/apps/gnome-characters/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/apps/gnome-clocks/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/apps/gnome-clocks/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/apps/gnome-documents/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/apps/gnome-documents/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/apps/gnome-getting-started-docs/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/apps/gnome-getting-started-docs/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/apps/gnome-logs/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/apps/gnome-logs/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/apps/gnome-maps/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/apps/gnome-maps/soup.patch create mode 100644 pkgs/desktops/gnome-3/3.18/apps/gnome-maps/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/apps/gnome-music/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/apps/gnome-music/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/apps/gnome-nettool/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/apps/gnome-photos/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/apps/gnome-photos/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/apps/gnome-weather/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/apps/gnome-weather/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/apps/nautilus-sendto/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/apps/polari/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/apps/polari/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/apps/seahorse/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/apps/seahorse/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/apps/vinagre/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/apps/vinagre/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/adwaita-icon-theme/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/adwaita-icon-theme/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/baobab/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/baobab/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/caribou/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/dconf-editor/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/dconf-editor/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/dconf/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/empathy/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/eog/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/eog/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/epiphany/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/epiphany/libxml_depend.patch create mode 100644 pkgs/desktops/gnome-3/3.18/core/epiphany/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/evince/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/evince/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/evolution-data-server/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/evolution-data-server/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/folks/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/gconf/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/gcr/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/gcr/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/gdm/3.16-wip/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/gdm/3.16-wip/disable_x_access_control.patch create mode 100644 pkgs/desktops/gnome-3/3.18/core/gdm/3.16-wip/sessions_dir.patch create mode 100644 pkgs/desktops/gnome-3/3.18/core/gdm/3.16-wip/xserver_path.patch create mode 100644 pkgs/desktops/gnome-3/3.18/core/gdm/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/gdm/disable_x_access_control.patch create mode 100644 pkgs/desktops/gnome-3/3.18/core/gdm/no-dbus-launch.patch create mode 100644 pkgs/desktops/gnome-3/3.18/core/gdm/sessions_dir.patch create mode 100644 pkgs/desktops/gnome-3/3.18/core/gdm/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/gdm/xserver_path.patch create mode 100644 pkgs/desktops/gnome-3/3.18/core/geocode-glib/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/geocode-glib/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/gjs/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/gnome-backgrounds/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/gnome-backgrounds/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/gnome-bluetooth/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/gnome-bluetooth/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/gnome-calculator/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/gnome-calculator/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/gnome-common/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/gnome-common/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/gnome-contacts/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/gnome-contacts/gio_unix.patch create mode 100644 pkgs/desktops/gnome-3/3.18/core/gnome-contacts/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/gnome-control-center/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/gnome-control-center/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/gnome-control-center/vpn_plugins_path.patch create mode 100644 pkgs/desktops/gnome-3/3.18/core/gnome-desktop/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/gnome-desktop/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/gnome-dictionary/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/gnome-dictionary/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/gnome-disk-utility/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/gnome-disk-utility/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/gnome-font-viewer/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/gnome-font-viewer/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/gnome-keyring/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/gnome-keyring/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/gnome-menus/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/gnome-online-accounts/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/gnome-online-accounts/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/gnome-online-miners/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/gnome-screenshot/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/gnome-screenshot/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/gnome-session/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/gnome-session/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/gnome-settings-daemon/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/gnome-settings-daemon/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/gnome-shell-extensions/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/gnome-shell-extensions/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/gnome-shell/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/gnome-shell/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/gnome-system-log/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/gnome-system-monitor/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/gnome-system-monitor/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/gnome-terminal/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/gnome-terminal/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/gnome-themes-standard/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/gnome-themes-standard/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/gnome-user-docs/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/gnome-user-docs/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/gnome-user-share/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/gnome-user-share/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/grilo-plugins/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/grilo/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/grilo/setup-hook.sh create mode 100644 pkgs/desktops/gnome-3/3.18/core/gsettings-desktop-schemas/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/gsettings-desktop-schemas/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/gsound/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/gtksourceview/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/gtksourceview/nix_share_path.patch create mode 100644 pkgs/desktops/gnome-3/3.18/core/gtksourceview/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/gucharmap/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/gucharmap/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/libcroco/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/libgdata/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/libgee/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/libgee/fix_introspection_paths.patch create mode 100644 pkgs/desktops/gnome-3/3.18/core/libgnome-keyring/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/libgnomekbd/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/libgweather/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/libgweather/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/libgxps/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/libpeas/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/libpeas/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/libzapojit/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/mutter/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/mutter/math.patch create mode 100644 pkgs/desktops/gnome-3/3.18/core/mutter/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/mutter/x86.patch create mode 100644 pkgs/desktops/gnome-3/3.18/core/nautilus/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/nautilus/extension_dir.patch create mode 100644 pkgs/desktops/gnome-3/3.18/core/nautilus/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/rest/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/sushi/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/sushi/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/totem-pl-parser/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/totem/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/totem/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/tracker/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/vino/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/vino/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/vte/2.90.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/vte/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/vte/expose_select_text.0.40.0.patch create mode 100644 pkgs/desktops/gnome-3/3.18/core/vte/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/yelp-tools/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/yelp-tools/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/yelp-xsl/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/yelp-xsl/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/yelp/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/yelp/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/zenity/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/zenity/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/desktop/rarian/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/devtools/anjuta/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/devtools/anjuta/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/devtools/devhelp/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/devtools/devhelp/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/devtools/gdl/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/devtools/gdl/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/devtools/gnome-devel-docs/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/devtools/gnome-devel-docs/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/games/aisleriot/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/games/aisleriot/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/games/five-or-more/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/games/five-or-more/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/games/four-in-a-row/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/games/four-in-a-row/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/games/gnome-chess/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/games/gnome-chess/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/games/gnome-klotski/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/games/gnome-klotski/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/games/gnome-mahjongg/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/games/gnome-mahjongg/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/games/gnome-mines/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/games/gnome-mines/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/games/gnome-nibbles/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/games/gnome-nibbles/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/games/gnome-robots/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/games/gnome-robots/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/games/gnome-sudoku/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/games/gnome-sudoku/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/games/gnome-taquin/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/games/gnome-taquin/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/games/gnome-tetravex/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/games/gnome-tetravex/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/games/hitori/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/games/iagno/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/games/iagno/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/games/lightsoff/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/games/lightsoff/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/games/quadrapassel/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/games/quadrapassel/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/games/swell-foop/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/games/swell-foop/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/games/tali/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/games/tali/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/misc/california/0002-Build-with-evolution-data-server-3.13.90.patch create mode 100644 pkgs/desktops/gnome-3/3.18/misc/california/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/misc/geary/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/misc/geary/disable_valadoc.patch create mode 100644 pkgs/desktops/gnome-3/3.18/misc/gexiv2/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/misc/gfbgraph/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/misc/gitg/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/misc/gitg/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/misc/gnome-tweak-tool/0001-Search-for-themes-and-icons-in-system-data-dirs.patch create mode 100644 pkgs/desktops/gnome-3/3.18/misc/gnome-tweak-tool/0002-Don-t-show-multiple-entries-for-a-single-theme.patch create mode 100644 pkgs/desktops/gnome-3/3.18/misc/gnome-tweak-tool/0003-Create-config-dir-if-it-doesn-t-exist.patch create mode 100644 pkgs/desktops/gnome-3/3.18/misc/gnome-tweak-tool/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/misc/gnome-tweak-tool/find_gsettings.patch create mode 100644 pkgs/desktops/gnome-3/3.18/misc/gnome-tweak-tool/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/misc/gnome-video-effects/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/misc/gpaste/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/misc/gtkhtml/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/misc/gtkhtml/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/misc/libgda/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/misc/libgit2-glib/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/misc/libmediaart/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/misc/pomodoro/default.nix diff --git a/nixos/tests/gnome3_18.nix b/nixos/tests/gnome3_18.nix new file mode 100644 index 00000000000..971fd48b186 --- /dev/null +++ b/nixos/tests/gnome3_18.nix @@ -0,0 +1,36 @@ +import ./make-test.nix ({ pkgs, ...} : { + name = "gnome3"; + meta = with pkgs.stdenv.lib.maintainers; { + maintainers = [ iElectric eelco chaoflow lethalman ]; + }; + + machine = + { config, pkgs, ... }: + + { imports = [ ./common/user-account.nix ]; + + services.xserver.enable = true; + + services.xserver.displayManager.auto.enable = true; + services.xserver.displayManager.auto.user = "alice"; + services.xserver.desktopManager.gnome3.enable = true; + + environment.gnome3.packageSet = pkgs.gnome3_18; + + virtualisation.memorySize = 512; + }; + + testScript = + '' + $machine->waitForX; + $machine->sleep(15); + + # Check that logging in has given the user ownership of devices. + $machine->succeed("getfacl /dev/snd/timer | grep -q alice"); + + $machine->succeed("su - alice -c 'DISPLAY=:0.0 gnome-terminal &'"); + $machine->waitForWindow(qr/Terminal/); + $machine->sleep(20); + $machine->screenshot("screen"); + ''; +}) diff --git a/pkgs/desktops/gnome-3/3.18/apps/accerciser/default.nix b/pkgs/desktops/gnome-3/3.18/apps/accerciser/default.nix new file mode 100644 index 00000000000..a2813e0581b --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/apps/accerciser/default.nix @@ -0,0 +1,28 @@ +{ stdenv, fetchurl, pkgconfig, gnome3, gtk3, wrapGAppsHook +, itstool, libxml2, python3, python3Packages, pyatspi, at_spi2_core +, dbus, intltool, libwnck3 }: + +stdenv.mkDerivation rec { + name = "accerciser-3.14.0"; + + src = fetchurl { + url = "mirror://gnome/sources/accerciser/3.14/${name}.tar.xz"; + sha256 = "0x05gpajpcs01g7m34g6fxz8122cf9kx3k0lchwl34jy8xfr39gm"; + }; + + buildInputs = [ + pkgconfig gtk3 wrapGAppsHook itstool libxml2 python3 pyatspi + python3Packages.pygobject3 python3Packages.ipython + at_spi2_core dbus intltool libwnck3 gnome3.defaultIconTheme + ]; + + wrapPrefixVariables = [ "PYTHONPATH" ]; + + meta = with stdenv.lib; { + homepage = https://wiki.gnome.org/Apps/Accerciser; + description = "Interactive Python accessibility explorer"; + maintainers = gnome3.maintainers; + license = licenses.bsd3; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/apps/bijiben/default.nix b/pkgs/desktops/gnome-3/3.18/apps/bijiben/default.nix new file mode 100644 index 00000000000..00895f9a2bb --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/apps/bijiben/default.nix @@ -0,0 +1,36 @@ +{ stdenv, intltool, fetchurl, pkgconfig, glib +, evolution_data_server, evolution, sqlite +, makeWrapper, itstool, desktop_file_utils +, clutter_gtk, libuuid, webkitgtk, zeitgeist +, gnome3, librsvg, gdk_pixbuf, libxml2 }: + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + doCheck = true; + + propagatedUserEnvPkgs = [ gnome3.gnome_themes_standard ]; + + buildInputs = [ pkgconfig glib intltool itstool libxml2 + clutter_gtk libuuid webkitgtk gnome3.tracker + gnome3.gnome_online_accounts zeitgeist desktop_file_utils + gnome3.gsettings_desktop_schemas makeWrapper + gdk_pixbuf gnome3.defaultIconTheme librsvg + evolution_data_server evolution sqlite ]; + + enableParallelBuilding = true; + + preFixup = '' + wrapProgram "$out/bin/bijiben" \ + --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \ + --prefix XDG_DATA_DIRS : "${gnome3.gnome_themes_standard}/share:$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH" + ''; + + meta = with stdenv.lib; { + homepage = https://wiki.gnome.org/Apps/Bijiben; + description = "Note editor designed to remain simple to use"; + maintainers = gnome3.maintainers; + license = licenses.gpl3; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/apps/bijiben/src.nix b/pkgs/desktops/gnome-3/3.18/apps/bijiben/src.nix new file mode 100644 index 00000000000..9eb11c0e379 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/apps/bijiben/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "bijiben-3.18.0"; + + src = fetchurl { + url = mirror://gnome/sources/bijiben/3.18/bijiben-3.18.0.tar.xz; + sha256 = "3e933eae3776ae50a639f0866b5c11279961b5ebdaa83a621509dfe31c218fea"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/apps/cheese/default.nix b/pkgs/desktops/gnome-3/3.18/apps/cheese/default.nix new file mode 100644 index 00000000000..ed5bbf6ca22 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/apps/cheese/default.nix @@ -0,0 +1,25 @@ +{ stdenv, intltool, fetchurl, wrapGAppsHook, gnome-video-effects, libcanberra_gtk3 +, pkgconfig, gtk3, glib, clutter_gtk, clutter-gst_2, udev, gst_all_1, itstool +, adwaita-icon-theme, librsvg, gdk_pixbuf, gnome3, gnome_desktop, libxml2 }: + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + buildInputs = [ pkgconfig gtk3 glib intltool wrapGAppsHook gnome-video-effects itstool + gdk_pixbuf adwaita-icon-theme librsvg udev gst_all_1.gstreamer libxml2 + gst_all_1.gst-plugins-base gst_all_1.gst-plugins-good gnome_desktop + gst_all_1.gst-plugins-bad clutter_gtk clutter-gst_2 + libcanberra_gtk3 ]; + + enableParallelBuilding = true; + + NIX_CFLAGS_COMPILE = "-I${glib}/include/gio-unix-2.0"; + + meta = with stdenv.lib; { + homepage = https://wiki.gnome.org/Apps/Cheese; + description = "Take photos and videos with your webcam, with fun graphical effects"; + maintainers = gnome3.maintainers; + license = licenses.gpl3; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/apps/cheese/src.nix b/pkgs/desktops/gnome-3/3.18/apps/cheese/src.nix new file mode 100644 index 00000000000..7e47c2c4950 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/apps/cheese/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "cheese-3.18.0"; + + src = fetchurl { + url = mirror://gnome/sources/cheese/3.18/cheese-3.18.0.tar.xz; + sha256 = "65ba4a60be51b9fc5537e5c1cdb6605b3098145982fae75a08ace94b965aeb0b"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/apps/evolution/default.nix b/pkgs/desktops/gnome-3/3.18/apps/evolution/default.nix new file mode 100644 index 00000000000..a9bb87d4ddd --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/apps/evolution/default.nix @@ -0,0 +1,49 @@ +{ stdenv, intltool, fetchurl, libxml2, webkitgtk, highlight +, pkgconfig, gtk3, glib, libnotify, gtkspell3 +, makeWrapper, itstool, shared_mime_info, libical, db, gcr, sqlite +, gnome3, librsvg, gdk_pixbuf, libsecret, nss, nspr, icu, libtool +, libcanberra_gtk3, bogofilter, gst_all_1, procps, p11_kit }: + +let + majVer = gnome3.version; +in stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + doCheck = true; + + propagatedUserEnvPkgs = [ gnome3.gnome_themes_standard ]; + + propagatedBuildInputs = [ gnome3.gtkhtml ]; + + buildInputs = [ pkgconfig gtk3 glib intltool itstool libxml2 libtool + gdk_pixbuf gnome3.defaultIconTheme librsvg db icu + gnome3.evolution_data_server libsecret libical gcr + webkitgtk shared_mime_info gnome3.gnome_desktop gtkspell3 + libcanberra_gtk3 bogofilter gnome3.libgdata sqlite + gst_all_1.gstreamer gst_all_1.gst-plugins-base p11_kit + nss nspr libnotify procps highlight gnome3.libgweather + gnome3.gsettings_desktop_schemas makeWrapper ]; + + configureFlags = [ "--disable-spamassassin" "--disable-pst-import" "--disable-autoar" + "--disable-libcryptui" ]; + + NIX_CFLAGS_COMPILE = "-I${nspr}/include/nspr -I${nss}/include/nss -I${glib}/include/gio-unix-2.0"; + + enableParallelBuilding = true; + + preFixup = '' + for f in $out/bin/* $out/libexec/*; do + wrapProgram "$f" \ + --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \ + --prefix XDG_DATA_DIRS : "${gnome3.gnome_themes_standard}/share:$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH" + done + ''; + + meta = with stdenv.lib; { + homepage = https://wiki.gnome.org/Apps/Evolution; + description = "Personal information management application that provides integrated mail, calendaring and address book functionality"; + maintainers = gnome3.maintainers; + license = licenses.lgpl2Plus; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/apps/evolution/src.nix b/pkgs/desktops/gnome-3/3.18/apps/evolution/src.nix new file mode 100644 index 00000000000..46af1c8b8bb --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/apps/evolution/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "evolution-3.18.0"; + + src = fetchurl { + url = mirror://gnome/sources/evolution/3.18/evolution-3.18.0.tar.xz; + sha256 = "a3efe42a861200c0463476e0a02e566fde74a0d4a699d8cc6514c031d5cad410"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/apps/file-roller/default.nix b/pkgs/desktops/gnome-3/3.18/apps/file-roller/default.nix new file mode 100644 index 00000000000..4e35676f3cb --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/apps/file-roller/default.nix @@ -0,0 +1,25 @@ +{ stdenv, fetchurl, glib, pkgconfig, gnome3, intltool, itstool, libxml2, libarchive +, attr, bzip2, acl, makeWrapper, librsvg, gdk_pixbuf }: + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + # TODO: support nautilus + # it tries to create {nautilus}/lib/nautilus/extensions-3.0/libnautilus-fileroller.so + + buildInputs = [ glib pkgconfig gnome3.gtk intltool itstool libxml2 libarchive + gnome3.defaultIconTheme attr bzip2 acl gdk_pixbuf librsvg + makeWrapper ]; + + preFixup = '' + wrapProgram "$out/bin/file-roller" \ + --prefix XDG_DATA_DIRS : "$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH:$out/share" + ''; + + meta = with stdenv.lib; { + homepage = https://wiki.gnome.org/Apps/FileRoller; + description = "Archive manager for the GNOME desktop environment"; + platforms = platforms.linux; + maintainers = gnome3.maintainers; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/apps/file-roller/src.nix b/pkgs/desktops/gnome-3/3.18/apps/file-roller/src.nix new file mode 100644 index 00000000000..3e166f996e9 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/apps/file-roller/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "file-roller-3.16.4"; + + src = fetchurl { + url = mirror://gnome/sources/file-roller/3.16/file-roller-3.16.4.tar.xz; + sha256 = "5455980b2c9c7eb063d2d65560ae7ab2e7f01b208ea3947e151680231c7a4185"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/apps/gedit/default.nix b/pkgs/desktops/gnome-3/3.18/apps/gedit/default.nix new file mode 100644 index 00000000000..6cff4bdee48 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/apps/gedit/default.nix @@ -0,0 +1,33 @@ +{ stdenv, intltool, fetchurl, enchant, isocodes +, pkgconfig, gtk3, glib +, bash, makeWrapper, itstool, libsoup, libxml2 +, gnome3, librsvg, gdk_pixbuf, file }: + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + propagatedUserEnvPkgs = [ gnome3.gnome_themes_standard ]; + + buildInputs = [ pkgconfig gtk3 glib intltool itstool enchant isocodes + gdk_pixbuf gnome3.defaultIconTheme librsvg libsoup + gnome3.libpeas gnome3.gtksourceview libxml2 + gnome3.gsettings_desktop_schemas makeWrapper file ]; + + enableParallelBuilding = true; + + preFixup = '' + wrapProgram "$out/bin/gedit" \ + --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \ + --prefix GI_TYPELIB_PATH : "$GI_TYPELIB_PATH" \ + --prefix LD_LIBRARY_PATH : "${gnome3.libpeas}/lib:${gnome3.gtksourceview}/lib" \ + --prefix XDG_DATA_DIRS : "${gnome3.gnome_themes_standard}/share:$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH" + ''; + + meta = with stdenv.lib; { + homepage = https://wiki.gnome.org/Apps/Gedit; + description = "Official text editor of the GNOME desktop environment"; + maintainers = gnome3.maintainers; + license = licenses.gpl2; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/apps/gedit/src.nix b/pkgs/desktops/gnome-3/3.18/apps/gedit/src.nix new file mode 100644 index 00000000000..ff427fdfb90 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/apps/gedit/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "gedit-3.18.0"; + + src = fetchurl { + url = mirror://gnome/sources/gedit/3.18/gedit-3.18.0.tar.xz; + sha256 = "9abd4f1478385f8b6c983298206f4ab1a25c682b9c87fb00d759b7db5b949533"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/apps/glade/default.nix b/pkgs/desktops/gnome-3/3.18/apps/glade/default.nix new file mode 100644 index 00000000000..a0f8d966955 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/apps/glade/default.nix @@ -0,0 +1,30 @@ +{ stdenv, intltool, fetchurl, python +, pkgconfig, gtk3, glib +, makeWrapper, itstool, libxml2, docbook_xsl +, gnome3, librsvg, gdk_pixbuf, libxslt }: + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + propagatedUserEnvPkgs = [ gnome3.gnome_themes_standard ]; + + buildInputs = [ pkgconfig gtk3 glib intltool itstool libxml2 python + gnome3.gsettings_desktop_schemas makeWrapper docbook_xsl + gdk_pixbuf gnome3.defaultIconTheme librsvg libxslt ]; + + enableParallelBuilding = true; + + preFixup = '' + wrapProgram "$out/bin/glade" \ + --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \ + --prefix XDG_DATA_DIRS : "${gnome3.gnome_themes_standard}/share:$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH" + ''; + + meta = with stdenv.lib; { + homepage = https://wiki.gnome.org/Apps/Glade; + description = "User interface designer for GTK+ applications"; + maintainers = gnome3.maintainers; + license = licenses.lgpl2; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/apps/glade/src.nix b/pkgs/desktops/gnome-3/3.18/apps/glade/src.nix new file mode 100644 index 00000000000..aaa913babea --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/apps/glade/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "glade-3.18.3"; + + src = fetchurl { + url = mirror://gnome/sources/glade/3.18/glade-3.18.3.tar.xz; + sha256 = "ecdbce46e7fbfecd463be840b94fbf54d83723b3ebe075414cfd225ddab66452"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/apps/gnome-boxes/default.nix b/pkgs/desktops/gnome-3/3.18/apps/gnome-boxes/default.nix new file mode 100644 index 00000000000..90955bd3ccf --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/apps/gnome-boxes/default.nix @@ -0,0 +1,42 @@ +{ stdenv, fetchurl, makeWrapper, pkgconfig, intltool, itstool, libvirt-glib +, glib, gobjectIntrospection, libxml2, gtk3, gtkvnc, libvirt, spice_gtk +, spice_protocol, libuuid, libsoup, libosinfo, systemd, tracker, vala +, libcap_ng, libcap, yajl, gmp, gdbm, cyrus_sasl, gnome3, librsvg +, desktop_file_utils, mtools, cdrkit, libcdio +, libusb, libarchive, acl +}: + +# TODO: ovirt (optional) + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + enableParallelBuilding = true; + + doCheck = true; + + buildInputs = [ + makeWrapper pkgconfig intltool itstool libvirt-glib glib + gobjectIntrospection libxml2 gtk3 gtkvnc libvirt spice_gtk spice_protocol + libuuid libsoup libosinfo systemd tracker vala libcap_ng libcap yajl gmp + gdbm cyrus_sasl gnome3.defaultIconTheme libusb libarchive + librsvg desktop_file_utils acl + ]; + + preFixup = '' + for prog in "$out/bin/"*; do + wrapProgram "$prog" \ + --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \ + --prefix XDG_DATA_DIRS : "${gnome3.gnome_themes_standard}/share:$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH" \ + --prefix PATH : "${mtools}/bin:${cdrkit}/bin:${libcdio}/bin" + done + ''; + + meta = with stdenv.lib; { + description = "Simple GNOME 3 application to access remote or virtual systems"; + homepage = https://wiki.gnome.org/action/show/Apps/Boxes; + license = licenses.gpl3; + platforms = platforms.linux; + maintainers = with maintainers; [ bjornfor ]; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/apps/gnome-boxes/src.nix b/pkgs/desktops/gnome-3/3.18/apps/gnome-boxes/src.nix new file mode 100644 index 00000000000..06543540e76 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/apps/gnome-boxes/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "gnome-boxes-3.18.0"; + + src = fetchurl { + url = mirror://gnome/sources/gnome-boxes/3.18/gnome-boxes-3.18.0.tar.xz; + sha256 = "ed2b442fc676bdfa47d6b6326836238c2c98af9725a91eb023784a3e692ae749"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/apps/gnome-calendar/default.nix b/pkgs/desktops/gnome-3/3.18/apps/gnome-calendar/default.nix new file mode 100644 index 00000000000..cbd5a84bdb5 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/apps/gnome-calendar/default.nix @@ -0,0 +1,22 @@ +{ stdenv, fetchurl, pkgconfig, gnome3, gtk3, wrapGAppsHook +, intltool, evolution_data_server, sqlite, libxml2, libsoup +, glib, gnome_online_accounts }: + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + NIX_CFLAGS_COMPILE = "-I${gnome3.glib}/include/gio-unix-2.0"; + + buildInputs = [ + pkgconfig gtk3 wrapGAppsHook intltool evolution_data_server + sqlite libxml2 libsoup glib gnome3.defaultIconTheme gnome_online_accounts + ]; + + meta = with stdenv.lib; { + homepage = https://wiki.gnome.org/Apps/Calendar; + description = "Simple and beautiful calendar application for GNOME"; + maintainers = gnome3.maintainers; + license = licenses.gpl3; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/apps/gnome-calendar/src.nix b/pkgs/desktops/gnome-3/3.18/apps/gnome-calendar/src.nix new file mode 100644 index 00000000000..6b941b592e5 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/apps/gnome-calendar/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "gnome-calendar-3.18.0"; + + src = fetchurl { + url = mirror://gnome/sources/gnome-calendar/3.18/gnome-calendar-3.18.0.tar.xz; + sha256 = "f7d50fe8d5d3dcc574f0034dba6a64cbb9b3f842faab5978c9d02b38548f355b"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/apps/gnome-characters/default.nix b/pkgs/desktops/gnome-3/3.18/apps/gnome-characters/default.nix new file mode 100644 index 00000000000..4571a5d50e8 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/apps/gnome-characters/default.nix @@ -0,0 +1,19 @@ +{ stdenv, fetchurl, pkgconfig, gnome3, gtk3, wrapGAppsHook +, intltool, gjs, gdk_pixbuf, librsvg }: + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + buildInputs = [ + pkgconfig gtk3 wrapGAppsHook intltool gjs gdk_pixbuf + librsvg gnome3.defaultIconTheme + ]; + + meta = with stdenv.lib; { + homepage = https://wiki.gnome.org/Design/Apps/CharacterMap; + description = "Simple utility application to find and insert unusual characters"; + maintainers = gnome3.maintainers; + license = licenses.gpl2; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/apps/gnome-characters/src.nix b/pkgs/desktops/gnome-3/3.18/apps/gnome-characters/src.nix new file mode 100644 index 00000000000..a957aa91d75 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/apps/gnome-characters/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "gnome-characters-3.18.0"; + + src = fetchurl { + url = mirror://gnome/sources/gnome-characters/3.18/gnome-characters-3.18.0.tar.xz; + sha256 = "e068b2275a08639565a88b096d378a4ac2abf90301ff43056bb5157dff54ce08"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/apps/gnome-clocks/default.nix b/pkgs/desktops/gnome-3/3.18/apps/gnome-clocks/default.nix new file mode 100644 index 00000000000..e39614e765d --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/apps/gnome-clocks/default.nix @@ -0,0 +1,27 @@ +{ stdenv, intltool, fetchurl, libgweather, libnotify +, pkgconfig, gtk3, glib, gsound +, makeWrapper, itstool, libcanberra_gtk3, libtool +, gnome3, librsvg, gdk_pixbuf, geoclue2, wrapGAppsHook }: + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + doCheck = true; + + buildInputs = [ pkgconfig gtk3 glib intltool itstool libcanberra_gtk3 + gnome3.gsettings_desktop_schemas makeWrapper + gdk_pixbuf gnome3.defaultIconTheme librsvg + gnome3.gnome_desktop gnome3.geocode_glib geoclue2 + libgweather libnotify libtool gsound + wrapGAppsHook ]; + + enableParallelBuilding = true; + + meta = with stdenv.lib; { + homepage = https://wiki.gnome.org/Apps/Clocks; + description = "Clock application designed for GNOME 3"; + maintainers = gnome3.maintainers; + license = licenses.gpl2; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/apps/gnome-clocks/src.nix b/pkgs/desktops/gnome-3/3.18/apps/gnome-clocks/src.nix new file mode 100644 index 00000000000..9f0be0ede98 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/apps/gnome-clocks/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "gnome-clocks-3.18.0"; + + src = fetchurl { + url = mirror://gnome/sources/gnome-clocks/3.18/gnome-clocks-3.18.0.tar.xz; + sha256 = "ca0818ec89e3539201da6b5388365e3d66df815198beccc90e2be44c7822baa0"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/apps/gnome-documents/default.nix b/pkgs/desktops/gnome-3/3.18/apps/gnome-documents/default.nix new file mode 100644 index 00000000000..7f1f70114b7 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/apps/gnome-documents/default.nix @@ -0,0 +1,39 @@ +{ stdenv, intltool, fetchurl, evince, gjs +, pkgconfig, gtk3, glib +, makeWrapper, itstool, libxslt, webkitgtk +, gnome3, librsvg, gdk_pixbuf, libsoup, docbook_xsl +, gobjectIntrospection, json_glib, inkscape, poppler_utils +, gmp, desktop_file_utils, wrapGAppsHook }: + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + doCheck = true; + + configureFlags = [ "--enable-getting-started" ]; + + buildInputs = [ pkgconfig gtk3 glib intltool itstool libxslt + docbook_xsl desktop_file_utils inkscape poppler_utils + gnome3.gsettings_desktop_schemas makeWrapper gmp + gdk_pixbuf gnome3.defaultIconTheme librsvg evince + libsoup webkitgtk gjs gobjectIntrospection gnome3.rest + gnome3.tracker gnome3.libgdata gnome3.gnome_online_accounts + gnome3.gnome_desktop gnome3.libzapojit json_glib + wrapGAppsHook ]; + + enableParallelBuilding = true; + + preFixup = '' + substituteInPlace $out/bin/gnome-documents --replace gapplication "${glib}/bin/gapplication" + + gappsWrapperArgs+=(--run 'if [ -z "$XDG_CACHE_DIR" ]; then XDG_CACHE_DIR=$HOME/.cache; fi; if [ -w "$XDG_CACHE_DIR/.." ]; then mkdir -p "$XDG_CACHE_DIR/gnome-documents"; fi') + ''; + + meta = with stdenv.lib; { + homepage = https://wiki.gnome.org/Apps/Documents; + description = "Document manager application designed to work with GNOME 3"; + maintainers = gnome3.maintainers; + license = licenses.gpl2; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/apps/gnome-documents/src.nix b/pkgs/desktops/gnome-3/3.18/apps/gnome-documents/src.nix new file mode 100644 index 00000000000..5906bade1ef --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/apps/gnome-documents/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "gnome-documents-3.18.0.1"; + + src = fetchurl { + url = mirror://gnome/sources/gnome-documents/3.18/gnome-documents-3.18.0.1.tar.xz; + sha256 = "0b19593e949276de71cb7292bb77520eb3cd915ac8c71d27a8d05f79b9e86816"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/apps/gnome-getting-started-docs/default.nix b/pkgs/desktops/gnome-3/3.18/apps/gnome-getting-started-docs/default.nix new file mode 100644 index 00000000000..0c75ebd7c78 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/apps/gnome-getting-started-docs/default.nix @@ -0,0 +1,15 @@ +{ stdenv, fetchurl, gnome3, intltool, itstool, libxml2 }: + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + buildInputs = [ intltool itstool libxml2 ]; + + meta = with stdenv.lib; { + homepage = https://live.gnome.org/DocumentationProject; + description = "Help a new user get started in GNOME"; + maintainers = gnome3.maintainers; + license = licenses.cc-by-sa-30; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/apps/gnome-getting-started-docs/src.nix b/pkgs/desktops/gnome-3/3.18/apps/gnome-getting-started-docs/src.nix new file mode 100644 index 00000000000..a4ed1d6b909 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/apps/gnome-getting-started-docs/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "gnome-getting-started-docs-3.18.0"; + + src = fetchurl { + url = mirror://gnome/sources/gnome-getting-started-docs/3.18/gnome-getting-started-docs-3.18.0.tar.xz; + sha256 = "5ef0373c5a864fefdecb17bffdfc2cca00fb2abf93756b1df9062e12208925d6"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/apps/gnome-logs/default.nix b/pkgs/desktops/gnome-3/3.18/apps/gnome-logs/default.nix new file mode 100644 index 00000000000..d4135fdb1ba --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/apps/gnome-logs/default.nix @@ -0,0 +1,21 @@ +{ stdenv, fetchurl, pkgconfig, gnome3, gtk3, wrapGAppsHook +, intltool, itstool, libxml2, systemd }: + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + configureFlags = [ "--disable-tests" ]; + + buildInputs = [ + pkgconfig gtk3 wrapGAppsHook intltool itstool libxml2 + systemd gnome3.defaultIconTheme + ]; + + meta = with stdenv.lib; { + homepage = https://wiki.gnome.org/Apps/Logs; + description = "A log viewer for the systemd journal"; + maintainers = gnome3.maintainers; + license = licenses.gpl3; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/apps/gnome-logs/src.nix b/pkgs/desktops/gnome-3/3.18/apps/gnome-logs/src.nix new file mode 100644 index 00000000000..b077f8cee4d --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/apps/gnome-logs/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "gnome-logs-3.18.0"; + + src = fetchurl { + url = mirror://gnome/sources/gnome-logs/3.18/gnome-logs-3.18.0.tar.xz; + sha256 = "7602b55d47b5d889be7547869a0a48f03f6b22a1c872b86ed70049695d06d699"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/apps/gnome-maps/default.nix b/pkgs/desktops/gnome-3/3.18/apps/gnome-maps/default.nix new file mode 100644 index 00000000000..b9aac0539ae --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/apps/gnome-maps/default.nix @@ -0,0 +1,25 @@ +{ stdenv, fetchurl, intltool, pkgconfig, gnome3, gtk3 +, gobjectIntrospection, gdk_pixbuf, librsvg, autoreconfHook +, geoclue2, wrapGAppsHook, folks, libchamplain, gfbgraph, file, libsoup }: + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + doCheck = true; + + buildInputs = [ pkgconfig intltool gobjectIntrospection wrapGAppsHook + gtk3 geoclue2 gnome3.gjs gnome3.libgee folks gfbgraph + gnome3.geocode_glib libchamplain file libsoup + gdk_pixbuf librsvg autoreconfHook + gnome3.gnome_online_accounts gnome3.defaultIconTheme ]; + + patches = [ ./soup.patch ]; + + meta = with stdenv.lib; { + homepage = https://wiki.gnome.org/Apps/Maps; + description = "A map application for GNOME 3"; + maintainers = gnome3.maintainers; + license = licenses.gpl2; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/apps/gnome-maps/soup.patch b/pkgs/desktops/gnome-3/3.18/apps/gnome-maps/soup.patch new file mode 100644 index 00000000000..e7e86ba76c7 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/apps/gnome-maps/soup.patch @@ -0,0 +1,10 @@ +--- gnome-maps-3.18.0/configure.ac.orig 2015-09-24 18:38:31.912498368 +0200 ++++ gnome-maps-3.18.0/configure.ac 2015-09-24 18:38:40.783320413 +0200 +@@ -50,6 +50,7 @@ + folks >= $FOLKS_MIN_VERSION + geocode-glib-1.0 >= $GEOCODE_MIN_VERSION + champlain-0.12 >= $CHAMPLAIN_MIN_VERSION ++ libsoup-2.4 + ]) + AC_SUBST(GNOME_MAPS_LIB_CFLAGS) + AC_SUBST(GNOME_MAPS_LIB_LIBS) diff --git a/pkgs/desktops/gnome-3/3.18/apps/gnome-maps/src.nix b/pkgs/desktops/gnome-3/3.18/apps/gnome-maps/src.nix new file mode 100644 index 00000000000..9d33216480d --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/apps/gnome-maps/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "gnome-maps-3.18.0"; + + src = fetchurl { + url = mirror://gnome/sources/gnome-maps/3.18/gnome-maps-3.18.0.tar.xz; + sha256 = "242f70346a1527ba0d9a664bd863b02e2227f9f0f0f577b9b0c00dc3075eb85e"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/apps/gnome-music/default.nix b/pkgs/desktops/gnome-3/3.18/apps/gnome-music/default.nix new file mode 100644 index 00000000000..bb89ef84202 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/apps/gnome-music/default.nix @@ -0,0 +1,30 @@ +{ stdenv, intltool, fetchurl, gdk_pixbuf, tracker +, python3, libxml2, python3Packages, libnotify, wrapGAppsHook +, pkgconfig, gtk3, glib, cairo +, makeWrapper, itstool, gnome3, librsvg, gst_all_1 }: + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + propagatedUserEnvPkgs = [ gnome3.gnome_themes_standard ]; + + buildInputs = [ pkgconfig gtk3 glib intltool itstool gnome3.libmediaart + gdk_pixbuf gnome3.defaultIconTheme librsvg python3 + gnome3.grilo gnome3.grilo-plugins libxml2 python3Packages.pygobject3 libnotify + python3Packages.pycairo python3Packages.dbus gnome3.totem-pl-parser + gst_all_1.gstreamer gst_all_1.gst-plugins-base wrapGAppsHook + gst_all_1.gst-plugins-good gst_all_1.gst-plugins-bad + gnome3.gsettings_desktop_schemas makeWrapper tracker ]; + + wrapPrefixVariables = [ "PYTHONPATH" ]; + + enableParallelBuilding = true; + + meta = with stdenv.lib; { + homepage = https://wiki.gnome.org/Apps/Music; + description = "Music player and management application for the GNOME desktop environment"; + maintainers = gnome3.maintainers; + license = licenses.gpl2; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/apps/gnome-music/src.nix b/pkgs/desktops/gnome-3/3.18/apps/gnome-music/src.nix new file mode 100644 index 00000000000..de2cf605486 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/apps/gnome-music/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "gnome-music-3.18.0"; + + src = fetchurl { + url = mirror://gnome/sources/gnome-music/3.18/gnome-music-3.18.0.tar.xz; + sha256 = "e2e4b99a57c7b5c83ce3deccd38880cbafb875b423ab276204af523bc648d69c"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/apps/gnome-nettool/default.nix b/pkgs/desktops/gnome-3/3.18/apps/gnome-nettool/default.nix new file mode 100644 index 00000000000..4c152777f2c --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/apps/gnome-nettool/default.nix @@ -0,0 +1,26 @@ +{ stdenv, fetchurl, pkgconfig, gnome3, gtk3, wrapGAppsHook +, libgtop, intltool, itstool, libxml2, nmap, inetutils }: + +stdenv.mkDerivation rec { + name = "gnome-nettool-3.8.1"; + + src = fetchurl { + url = "mirror://gnome/sources/gnome-nettool/3.8/${name}.tar.xz"; + sha256 = "1c9cvzvyqgfwa5zzyvp7118pkclji62fkbb33g4y9sp5kw6m397h"; + }; + + buildInputs = [ + pkgconfig gtk3 wrapGAppsHook libgtop intltool itstool libxml2 + gnome3.defaultIconTheme + ]; + + propagatedUserEnvPkgs = [ nmap inetutils ]; + + meta = with stdenv.lib; { + homepage = http://projects.gnome.org/gnome-network; + description = "A collection of networking tools"; + maintainers = gnome3.maintainers; + license = licenses.gpl2; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/apps/gnome-photos/default.nix b/pkgs/desktops/gnome-3/3.18/apps/gnome-photos/default.nix new file mode 100644 index 00000000000..eaace044af0 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/apps/gnome-photos/default.nix @@ -0,0 +1,31 @@ +{ stdenv, intltool, fetchurl, exempi, libxml2 +, pkgconfig, gtk3, glib +, makeWrapper, itstool, gegl, babl, lcms2 +, desktop_file_utils, gmp, libmediaart, wrapGAppsHook +, gnome3, librsvg, gdk_pixbuf, libexif }: + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + # doCheck = true; + + NIX_CFLAGS_COMPILE = "-I${gnome3.glib}/include/gio-unix-2.0"; + + buildInputs = [ pkgconfig gtk3 glib intltool itstool gegl babl gnome3.libgdata + gnome3.gsettings_desktop_schemas makeWrapper gmp libmediaart + gdk_pixbuf gnome3.defaultIconTheme librsvg exempi + gnome3.gfbgraph gnome3.grilo-plugins gnome3.grilo + gnome3.gnome_online_accounts gnome3.gnome_desktop + lcms2 libexif gnome3.tracker libxml2 desktop_file_utils + wrapGAppsHook ]; + + enableParallelBuilding = true; + + meta = with stdenv.lib; { + homepage = https://wiki.gnome.org/Apps/Photos; + description = "Photos is an application to access, organize and share your photos with GNOME 3"; + maintainers = gnome3.maintainers; + license = licenses.gpl2; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/apps/gnome-photos/src.nix b/pkgs/desktops/gnome-3/3.18/apps/gnome-photos/src.nix new file mode 100644 index 00000000000..1af6b71cdb9 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/apps/gnome-photos/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "gnome-photos-3.18.0"; + + src = fetchurl { + url = mirror://gnome/sources/gnome-photos/3.18/gnome-photos-3.18.0.tar.xz; + sha256 = "5ca74b33de33da125059918e2d7c665ff78ac1adfbc04c98b3378e705cc73a54"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/apps/gnome-weather/default.nix b/pkgs/desktops/gnome-3/3.18/apps/gnome-weather/default.nix new file mode 100644 index 00000000000..f4d2c8ad0c1 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/apps/gnome-weather/default.nix @@ -0,0 +1,19 @@ +{ stdenv, fetchurl, pkgconfig, gnome3, gtk3, wrapGAppsHook, gjs +, libgweather, intltool, itstool }: + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + buildInputs = [ + pkgconfig gtk3 wrapGAppsHook gjs intltool itstool + libgweather gnome3.defaultIconTheme + ]; + + meta = with stdenv.lib; { + homepage = https://wiki.gnome.org/Apps/Weather; + description = "Access current weather conditions and forecasts"; + maintainers = gnome3.maintainers; + license = licenses.gpl2; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/apps/gnome-weather/src.nix b/pkgs/desktops/gnome-3/3.18/apps/gnome-weather/src.nix new file mode 100644 index 00000000000..b1dc538815d --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/apps/gnome-weather/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "gnome-weather-3.18.0"; + + src = fetchurl { + url = mirror://gnome/sources/gnome-weather/3.18/gnome-weather-3.18.0.tar.xz; + sha256 = "fa0c098bef351af7457abf0ef6bd0afb62d727f041a15107e02693c9c7bd48aa"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/apps/nautilus-sendto/default.nix b/pkgs/desktops/gnome-3/3.18/apps/nautilus-sendto/default.nix new file mode 100644 index 00000000000..093900dcb7a --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/apps/nautilus-sendto/default.nix @@ -0,0 +1,22 @@ +{ stdenv, fetchurl, glib, pkgconfig, gnome3, intltool +, gobjectIntrospection, makeWrapper }: + +stdenv.mkDerivation rec { + name = "nautilus-sendto-${version}"; + + version = "3.8.1"; + + src = fetchurl { + url = "mirror://gnome/sources/nautilus-sendto/3.8/${name}.tar.xz"; + sha256 = "03fa46bff271acdbdedab6243b2a84e5ed3daa19c81b69d087b3e852c8fe5dab"; + }; + + buildInputs = [ glib pkgconfig gobjectIntrospection intltool makeWrapper ]; + + meta = with stdenv.lib; { + description = "Integrates Evolution and Pidgin into the Nautilus file manager"; + maintainers = gnome3.maintainers; + license = licenses.gpl2; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/apps/polari/default.nix b/pkgs/desktops/gnome-3/3.18/apps/polari/default.nix new file mode 100644 index 00000000000..8efaa4e4aac --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/apps/polari/default.nix @@ -0,0 +1,22 @@ +{ stdenv, intltool, fetchurl, gdk_pixbuf, adwaita-icon-theme +, telepathy_glib, gjs, itstool, telepathy_idle +, pkgconfig, gtk3, glib, librsvg, gnome3, wrapGAppsHook }: + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + propagatedUserEnvPkgs = [ telepathy_idle ]; + + buildInputs = [ pkgconfig gtk3 glib intltool itstool adwaita-icon-theme wrapGAppsHook + telepathy_glib gjs gdk_pixbuf librsvg ]; + + enableParallelBuilding = true; + + meta = with stdenv.lib; { + homepage = https://wiki.gnome.org/Apps/Polari; + description = "IRC chat client designed to integrate with the GNOME desktop"; + maintainers = gnome3.maintainers; + license = licenses.gpl2; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/apps/polari/src.nix b/pkgs/desktops/gnome-3/3.18/apps/polari/src.nix new file mode 100644 index 00000000000..9d7497b61c7 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/apps/polari/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "polari-3.18.0"; + + src = fetchurl { + url = mirror://gnome/sources/polari/3.18/polari-3.18.0.tar.xz; + sha256 = "7b98c820a1e9a25a0f3a927e8d4ba8400296041f783301a764e37840c7ef6018"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/apps/seahorse/default.nix b/pkgs/desktops/gnome-3/3.18/apps/seahorse/default.nix new file mode 100644 index 00000000000..3b78babadd9 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/apps/seahorse/default.nix @@ -0,0 +1,35 @@ +{ stdenv, intltool, fetchurl, vala +, pkgconfig, gtk3, glib +, makeWrapper, itstool, gnupg, libsoup +, gnome3, librsvg, gdk_pixbuf, gpgme +, libsecret, avahi, p11_kit, openssh }: + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + doCheck = true; + + propagatedUserEnvPkgs = [ gnome3.gnome_themes_standard ]; + + NIX_CFLAGS_COMPILE = "-I${gnome3.glib}/include/gio-unix-2.0"; + + buildInputs = [ pkgconfig gtk3 glib intltool itstool gnome3.gcr + gnome3.gsettings_desktop_schemas makeWrapper gnupg + gdk_pixbuf gnome3.defaultIconTheme librsvg gpgme + libsecret avahi libsoup p11_kit vala gnome3.gcr + openssh ]; + + preFixup = '' + wrapProgram "$out/bin/seahorse" \ + --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \ + --prefix XDG_DATA_DIRS : "${gnome3.gnome_themes_standard}/share:$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH" + ''; + + meta = with stdenv.lib; { + homepage = https://wiki.gnome.org/Apps/Seahorse; + description = "Application for managing encryption keys and passwords in the GnomeKeyring"; + maintainers = gnome3.maintainers; + license = licenses.gpl2; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/apps/seahorse/src.nix b/pkgs/desktops/gnome-3/3.18/apps/seahorse/src.nix new file mode 100644 index 00000000000..1d790c81e4f --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/apps/seahorse/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "seahorse-3.16.0"; + + src = fetchurl { + url = mirror://gnome/sources/seahorse/3.16/seahorse-3.16.0.tar.xz; + sha256 = "770a5f03b8745054ef04cef9923dd713b1fbf309169150bc8dd32d7e5f7ee131"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/apps/vinagre/default.nix b/pkgs/desktops/gnome-3/3.18/apps/vinagre/default.nix new file mode 100644 index 00000000000..8b8b6248642 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/apps/vinagre/default.nix @@ -0,0 +1,21 @@ +{ stdenv, fetchurl, pkgconfig, gtk3, gnome3, vte, libxml2, gtkvnc, intltool +, libsecret, itstool, makeWrapper, librsvg }: + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + buildInputs = [ pkgconfig gtk3 vte libxml2 gtkvnc intltool libsecret + itstool makeWrapper gnome3.defaultIconTheme librsvg ]; + + preFixup = '' + wrapProgram "$out/bin/vinagre" \ + --prefix XDG_DATA_DIRS : "$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH:$out/share" + ''; + + meta = with stdenv.lib; { + homepage = https://wiki.gnome.org/Apps/Vinagre; + description = "Remote desktop viewer for GNOME"; + platforms = platforms.linux; + maintainers = gnome3.maintainers; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/apps/vinagre/src.nix b/pkgs/desktops/gnome-3/3.18/apps/vinagre/src.nix new file mode 100644 index 00000000000..94b6d8a83e1 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/apps/vinagre/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "vinagre-3.18.0"; + + src = fetchurl { + url = mirror://gnome/sources/vinagre/3.18/vinagre-3.18.0.tar.xz; + sha256 = "77214384c03df985551a5094ea16fd3f42b74c708123128b29baff6458b2fef9"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/adwaita-icon-theme/default.nix b/pkgs/desktops/gnome-3/3.18/core/adwaita-icon-theme/default.nix new file mode 100644 index 00000000000..3c3a05dc3af --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/adwaita-icon-theme/default.nix @@ -0,0 +1,21 @@ +{ stdenv, fetchurl, pkgconfig, intltool, gnome3 +, iconnamingutils, gtk, gdk_pixbuf, librsvg, hicolor_icon_theme }: + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + # For convenience, we can specify adwaita-icon-theme only in packages + propagatedBuildInputs = [ hicolor_icon_theme ]; + + buildInputs = [ gdk_pixbuf librsvg ]; + + nativeBuildInputs = [ pkgconfig intltool iconnamingutils gtk ]; + + # remove a tree of dirs with no files within + postInstall = '' rm -rf "$out/locale" ''; + + meta = with stdenv.lib; { + platforms = platforms.linux; + maintainers = gnome3.maintainers; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/adwaita-icon-theme/src.nix b/pkgs/desktops/gnome-3/3.18/core/adwaita-icon-theme/src.nix new file mode 100644 index 00000000000..59fc291eb4e --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/adwaita-icon-theme/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "adwaita-icon-theme-3.18.0"; + + src = fetchurl { + url = mirror://gnome/sources/adwaita-icon-theme/3.18/adwaita-icon-theme-3.18.0.tar.xz; + sha256 = "5e9ce726001fdd8ee93c394fdc3cdb9e1603bbed5b7c62df453ccf521ec50e58"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/baobab/default.nix b/pkgs/desktops/gnome-3/3.18/core/baobab/default.nix new file mode 100644 index 00000000000..2ff85662bbb --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/baobab/default.nix @@ -0,0 +1,32 @@ +{ stdenv, intltool, fetchurl, vala, libgtop +, pkgconfig, gtk3, glib +, bash, makeWrapper, itstool, libxml2 +, gnome3, librsvg, gdk_pixbuf, file }: + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + doCheck = true; + + NIX_CFLAGS_COMPILE = "-I${gnome3.glib}/include/gio-unix-2.0"; + + propagatedUserEnvPkgs = [ gnome3.gnome_themes_standard ]; + + buildInputs = [ vala pkgconfig gtk3 glib libgtop intltool itstool libxml2 + gnome3.gsettings_desktop_schemas makeWrapper file + gdk_pixbuf gnome3.defaultIconTheme librsvg ]; + + preFixup = '' + wrapProgram "$out/bin/baobab" \ + --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \ + --prefix XDG_DATA_DIRS : "${gnome3.gnome_themes_standard}/share:$out/share:$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH" + ''; + + meta = with stdenv.lib; { + homepage = https://wiki.gnome.org/Apps/Baobab; + description = "Graphical application to analyse disk usage in any Gnome environment"; + maintainers = gnome3.maintainers; + license = licenses.gpl2; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/baobab/src.nix b/pkgs/desktops/gnome-3/3.18/core/baobab/src.nix new file mode 100644 index 00000000000..5032262f278 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/baobab/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "baobab-3.18.0"; + + src = fetchurl { + url = mirror://gnome/sources/baobab/3.18/baobab-3.18.0.tar.xz; + sha256 = "75924c53dd0e94d97c2f0ec30270fa3ffc59adfab7e21aac3ed9c6c088760b5a"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/caribou/default.nix b/pkgs/desktops/gnome-3/3.18/core/caribou/default.nix new file mode 100644 index 00000000000..c2cb6a661ab --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/caribou/default.nix @@ -0,0 +1,31 @@ +{ fetchurl, stdenv, pkgconfig, gnome3, clutter, dbus, pythonPackages, libxml2, autoconf +, libxklavier, libXtst, gtk2, intltool, libxslt, at_spi2_core, automake114x }: + +let + majorVersion = "0.4"; +in +stdenv.mkDerivation rec { + name = "caribou-${majorVersion}.18.1"; + + src = fetchurl { + url = "mirror://gnome/sources/caribou/${majorVersion}/${name}.tar.xz"; + sha256 = "0l1ikx56ddgayvny3s2xv8hs3p23xsclw4zljs3cczv4b89dzymf"; + }; + + buildInputs = with gnome3; + [ glib pkgconfig gtk clutter at_spi2_core dbus pythonPackages.python automake114x + pythonPackages.pygobject3 libxml2 libXtst gtk2 intltool libxslt autoconf ]; + + propagatedBuildInputs = [ gnome3.libgee libxklavier ]; + + preBuild = '' + patchShebangs . + substituteInPlace libcaribou/Makefile.am --replace "--shared-library=libcaribou.so.0" "--shared-library=$out/lib/libcaribou.so.0" + ''; + + meta = with stdenv.lib; { + platforms = platforms.linux; + maintainers = gnome3.maintainers; + }; + +} diff --git a/pkgs/desktops/gnome-3/3.18/core/dconf-editor/default.nix b/pkgs/desktops/gnome-3/3.18/core/dconf-editor/default.nix new file mode 100644 index 00000000000..5b2b055fe66 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/dconf-editor/default.nix @@ -0,0 +1,19 @@ +{ stdenv, fetchurl, vala, libxslt, pkgconfig, glib, dbus_glib, gnome3 +, libxml2, intltool, docbook_xsl_ns, docbook_xsl, makeWrapper }: + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + buildInputs = [ vala libxslt pkgconfig glib dbus_glib gnome3.gtk libxml2 gnome3.defaultIconTheme + intltool docbook_xsl docbook_xsl_ns makeWrapper gnome3.dconf ]; + + preFixup = '' + wrapProgram "$out/bin/dconf-editor" \ + --prefix XDG_DATA_DIRS : "$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH" + ''; + + meta = with stdenv.lib; { + platforms = platforms.linux; + maintainers = gnome3.maintainers; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/dconf-editor/src.nix b/pkgs/desktops/gnome-3/3.18/core/dconf-editor/src.nix new file mode 100644 index 00000000000..eb15838bb48 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/dconf-editor/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "dconf-editor-3.18.0"; + + src = fetchurl { + url = mirror://gnome/sources/dconf-editor/3.18/dconf-editor-3.18.0.tar.xz; + sha256 = "6579b8b216b068acae7d8301b5e2d57054c85a3f147c92355ffa46a62c052534"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/dconf/default.nix b/pkgs/desktops/gnome-3/3.18/core/dconf/default.nix new file mode 100644 index 00000000000..990e2007a23 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/dconf/default.nix @@ -0,0 +1,23 @@ +{ stdenv, fetchurl, vala, libxslt, pkgconfig, glib, dbus_glib, gnome3 +, libxml2, intltool, docbook_xsl_ns, docbook_xsl, makeWrapper }: + +let + majorVersion = "0.24"; +in +stdenv.mkDerivation rec { + name = "dconf-${version}"; + version = "${majorVersion}.0"; + + src = fetchurl { + url = "mirror://gnome/sources/dconf/${majorVersion}/${name}.tar.xz"; + sha256 = "4373e0ced1f4d7d68d518038796c073696280e22957babb29feb0267c630fec2"; + }; + + buildInputs = [ vala libxslt pkgconfig glib dbus_glib gnome3.gtk libxml2 + intltool docbook_xsl docbook_xsl_ns makeWrapper ]; + + meta = with stdenv.lib; { + platforms = platforms.linux; + maintainers = gnome3.maintainers; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/empathy/default.nix b/pkgs/desktops/gnome-3/3.18/core/empathy/default.nix new file mode 100644 index 00000000000..4c42c6c026d --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/empathy/default.nix @@ -0,0 +1,57 @@ +{ stdenv, intltool, fetchurl, webkitgtk, pkgconfig, gtk3, glib +, file, librsvg, gnome3, gdk_pixbuf +, dbus_glib, dbus_libs, telepathy_glib, telepathy_farstream +, clutter_gtk, clutter-gst, gst_all_1, cogl, gnome_online_accounts +, gcr, libsecret, folks, libpulseaudio, telepathy_mission_control +, telepathy_logger, libnotify, clutter, libsoup, gnutls +, evolution_data_server +, libcanberra_gtk3, p11_kit, farstream, libtool, shared_mime_info +, bash, makeWrapper, itstool, libxml2, libxslt, icu, libgee }: + +# TODO: enable more features + +let + majorVersion = "3.12"; +in +stdenv.mkDerivation rec { + name = "empathy-${majorVersion}.8"; + + src = fetchurl { + url = "mirror://gnome/sources/empathy/${majorVersion}/${name}.tar.xz"; + sha256 = "10z6ksia6yx7vg0wsdbk4w6vjgfg3cg3n04jf9bj2vr7kr5zvs7w"; + }; + + propagatedUserEnvPkgs = [ gnome3.gnome_themes_standard + gnome_online_accounts shared_mime_info ]; + propagatedBuildInputs = [ folks telepathy_logger evolution_data_server + telepathy_mission_control ]; + buildInputs = [ pkgconfig gtk3 glib webkitgtk intltool itstool + libxml2 libxslt icu file makeWrapper + telepathy_glib clutter_gtk clutter-gst cogl + gst_all_1.gstreamer gst_all_1.gst-plugins-base + gcr libsecret libpulseaudio gnome3.yelp_xsl gdk_pixbuf + libnotify clutter libsoup gnutls libgee p11_kit + libcanberra_gtk3 telepathy_farstream farstream + gnome3.defaultIconTheme gnome3.gsettings_desktop_schemas + file libtool librsvg ]; + + NIX_CFLAGS_COMPILE = [ "-I${dbus_glib}/include/dbus-1.0" + "-I${dbus_libs}/include/dbus-1.0" + "-I${dbus_libs}/lib/dbus-1.0/include" ]; + + preFixup = '' + for f in $out/bin/* $out/libexec/*; do + wrapProgram $f \ + --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \ + --prefix XDG_DATA_DIRS : "$XDG_ICON_DIRS:${gnome3.gnome_themes_standard}/share:$out/share:$GSETTINGS_SCHEMAS_PATH" + done + ''; + + meta = with stdenv.lib; { + homepage = https://wiki.gnome.org/Apps/Empathy; + description = "Messaging program which supports text, voice, video chat, and file transfers over many different protocols"; + maintainers = gnome3.maintainers; + # TODO: license = [ licenses.gpl2 licenses.lgpl2 ]; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/eog/default.nix b/pkgs/desktops/gnome-3/3.18/core/eog/default.nix new file mode 100644 index 00000000000..fff901142dc --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/eog/default.nix @@ -0,0 +1,25 @@ +{ fetchurl, stdenv, intltool, pkgconfig, itstool, libxml2, libjpeg, gnome3 +, shared_mime_info, makeWrapper, librsvg, libexif }: + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + buildInputs = with gnome3; + [ intltool pkgconfig itstool libxml2 libjpeg gtk glib libpeas makeWrapper librsvg + gsettings_desktop_schemas shared_mime_info adwaita-icon-theme gnome_desktop libexif ]; + + preFixup = '' + wrapProgram "$out/bin/eog" \ + --prefix GI_TYPELIB_PATH : "$GI_TYPELIB_PATH" \ + --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \ + --prefix XDG_DATA_DIRS : "$XDG_ICON_DIRS:${shared_mime_info}/share:${gnome3.adwaita-icon-theme}/share:${gnome3.gtk}/share:$out/share:$GSETTINGS_SCHEMAS_PATH" + + ''; + + meta = with stdenv.lib; { + homepage = https://wiki.gnome.org/Apps/EyeOfGnome; + platforms = platforms.linux; + description = "GNOME image viewer"; + maintainers = gnome3.maintainers; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/eog/src.nix b/pkgs/desktops/gnome-3/3.18/core/eog/src.nix new file mode 100644 index 00000000000..154a02d7b43 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/eog/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "eog-3.16.3"; + + src = fetchurl { + url = mirror://gnome/sources/eog/3.16/eog-3.16.3.tar.xz; + sha256 = "ee6d101f8e73aacc8d48256f06a780c6d0d5f3975990f375f58cd0e70816b766"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/epiphany/default.nix b/pkgs/desktops/gnome-3/3.18/core/epiphany/default.nix new file mode 100644 index 00000000000..5a98770b663 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/epiphany/default.nix @@ -0,0 +1,42 @@ +{ stdenv, intltool, fetchurl, pkgconfig, gtk3, glib, nspr, icu +, bash, makeWrapper, gnome3, libwnck3, libxml2, libxslt, libtool +, webkitgtk, libsoup, libsecret, gnome_desktop, libnotify, p11_kit +, sqlite, gcr, avahi, nss, isocodes, itstool, file, which +, gdk_pixbuf, librsvg, gnome_common }: + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + # Tests need an X display + configureFlags = [ "--disable-static --disable-tests" ]; + + propagatedUserEnvPkgs = [ gnome3.gnome_themes_standard ]; + + nativeBuildInputs = [ pkgconfig file ]; + + buildInputs = [ gtk3 glib intltool libwnck3 libxml2 libxslt pkgconfig file + webkitgtk libsoup libsecret gnome_desktop libnotify libtool + sqlite isocodes nss itstool p11_kit nspr icu gnome3.yelp_tools + gdk_pixbuf gnome3.defaultIconTheme librsvg which gnome_common + gcr avahi gnome3.gsettings_desktop_schemas makeWrapper ]; + + NIX_CFLAGS_COMPILE = "-I${nspr}/include/nspr -I${nss}/include/nss -I${glib}/include/gio-unix-2.0"; + + enableParallelBuilding = true; + + preFixup = '' + for f in $out/bin/* $out/libexec/*; do + wrapProgram "$f" \ + --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \ + --prefix XDG_DATA_DIRS : "${gnome3.gnome_themes_standard}/share:$out/share:$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH" + done + ''; + + meta = with stdenv.lib; { + homepage = https://wiki.gnome.org/Apps/Epiphany; + description = "WebKit based web browser for GNOME"; + maintainers = gnome3.maintainers; + license = licenses.gpl2; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/epiphany/libxml_depend.patch b/pkgs/desktops/gnome-3/3.18/core/epiphany/libxml_depend.patch new file mode 100644 index 00000000000..89e3694a02d --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/epiphany/libxml_depend.patch @@ -0,0 +1,10 @@ +--- configure.ac.orig 2015-04-08 18:53:52.284580835 +0200 ++++ configure.ac 2015-04-08 18:55:55.697225280 +0200 +@@ -113,6 +113,7 @@ + PKG_CHECK_MODULES(WEB_EXTENSION, [ + webkit2gtk-web-extension-4.0 >= $WEBKIT_GTK_REQUIRED + libsecret-1 >= $LIBSECRET_REQUIRED ++ libxml-2.0 >= $LIBXML_REQUIRED + ]) + AC_SUBST(WEB_EXTENSION_CFLAGS) + AC_SUBST(WEB_EXTENSION_LIBS) diff --git a/pkgs/desktops/gnome-3/3.18/core/epiphany/src.nix b/pkgs/desktops/gnome-3/3.18/core/epiphany/src.nix new file mode 100644 index 00000000000..2ecf2c98d19 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/epiphany/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "epiphany-3.18.0"; + + src = fetchurl { + url = mirror://gnome/sources/epiphany/3.18/epiphany-3.18.0.tar.xz; + sha256 = "d5ba67a8cd85c80b81e076862bcab3fc376ba51b0a1536ca7430608d1f50491d"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/evince/default.nix b/pkgs/desktops/gnome-3/3.18/core/evince/default.nix new file mode 100644 index 00000000000..154182eef88 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/evince/default.nix @@ -0,0 +1,64 @@ +{ fetchurl, stdenv, pkgconfig, intltool, perl, perlXMLParser, libxml2 +, glib, gtk3, pango, atk, gdk_pixbuf, shared_mime_info, itstool, gnome3 +, poppler, ghostscriptX, djvulibre, libspectre, libsecret , makeWrapper +, librsvg, recentListSize ? null # 5 is not enough, allow passing a different number +, gobjectIntrospection +}: + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + buildInputs = [ + pkgconfig intltool perl perlXMLParser libxml2 + glib gtk3 pango atk gdk_pixbuf gobjectIntrospection + itstool gnome3.adwaita-icon-theme + gnome3.libgnome_keyring gnome3.gsettings_desktop_schemas + poppler ghostscriptX djvulibre libspectre + makeWrapper libsecret librsvg gnome3.adwaita-icon-theme + ]; + + configureFlags = [ + "--disable-nautilus" # Do not use nautilus + "--enable-introspection" + ]; + + NIX_CFLAGS_COMPILE = "-I${gnome3.glib}/include/gio-unix-2.0"; + + preConfigure = with stdenv.lib; + optionalString doCheck '' + for file in test/*.py; do + echo "patching $file" + sed '1s,/usr,${python},' -i "$file" + done + '' + optionalString (recentListSize != null) '' + sed -i 's/\(gtk_recent_chooser_set_limit .*\)5)/\1${builtins.toString recentListSize})/' shell/ev-open-recent-action.c + sed -i 's/\(if (++n_items == \)5\(.*\)/\1${builtins.toString recentListSize}\2/' shell/ev-window.c + ''; + + preFixup = '' + # Tell Glib/GIO about the MIME info directory, which is used + # by `g_file_info_get_content_type ()'. + wrapProgram "$out/bin/evince" \ + --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \ + --prefix XDG_DATA_DIRS : "$XDG_ICON_DIRS:${gtk3}/share:${shared_mime_info}/share:$out/share:$GSETTINGS_SCHEMAS_PATH" + + ''; + + doCheck = false; # would need pythonPackages.dogTail, which is missing + + meta = with stdenv.lib; { + homepage = http://www.gnome.org/projects/evince/; + description = "GNOME's document viewer"; + + longDescription = '' + Evince is a document viewer for multiple document formats. It + currently supports PDF, PostScript, DjVu, TIFF and DVI. The goal + of Evince is to replace the multiple document viewers that exist + on the GNOME Desktop with a single simple application. + ''; + + license = stdenv.lib.licenses.gpl2Plus; + platforms = platforms.linux; + maintainers = [ maintainers.vcunat ]; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/evince/src.nix b/pkgs/desktops/gnome-3/3.18/core/evince/src.nix new file mode 100644 index 00000000000..392aeefb4e9 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/evince/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "evince-3.18.0"; + + src = fetchurl { + url = mirror://gnome/sources/evince/3.18/evince-3.18.0.tar.xz; + sha256 = "96e8351f6a6fc5823bb8f51178cde1182bd66481af6fb09bf58a18b673cafa70"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/evolution-data-server/default.nix b/pkgs/desktops/gnome-3/3.18/core/evolution-data-server/default.nix new file mode 100644 index 00000000000..fb3c8bdceab --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/evolution-data-server/default.nix @@ -0,0 +1,30 @@ +{ fetchurl, stdenv, pkgconfig, gnome3, python +, intltool, libsoup, libxml2, libsecret, icu, sqlite +, p11_kit, db, nspr, nss, libical, gperf, makeWrapper, valaSupport ? true, vala }: + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + buildInputs = with gnome3; + [ pkgconfig glib python intltool libsoup libxml2 gtk gnome_online_accounts + gcr p11_kit libgweather libgdata gperf makeWrapper icu sqlite gsettings_desktop_schemas ] + ++ stdenv.lib.optional valaSupport vala; + + propagatedBuildInputs = [ libsecret nss nspr libical db ]; + + # uoa irrelevant for now + configureFlags = [ "--disable-uoa" ] + ++ stdenv.lib.optional valaSupport "--enable-vala-bindings"; + + preFixup = '' + for f in "$out/libexec/"*; do + wrapProgram "$f" --prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH" + done + ''; + + meta = with stdenv.lib; { + platforms = platforms.linux; + maintainers = gnome3.maintainers; + }; + +} diff --git a/pkgs/desktops/gnome-3/3.18/core/evolution-data-server/src.nix b/pkgs/desktops/gnome-3/3.18/core/evolution-data-server/src.nix new file mode 100644 index 00000000000..876b2236ef5 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/evolution-data-server/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "evolution-data-server-3.18.0"; + + src = fetchurl { + url = mirror://gnome/sources/evolution-data-server/3.18/evolution-data-server-3.18.0.tar.xz; + sha256 = "ca4273b888912cadc474c1c2aebd2f02639381a9ddfa516a46cf9abd3dbc11f7"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/folks/default.nix b/pkgs/desktops/gnome-3/3.18/core/folks/default.nix new file mode 100644 index 00000000000..6e200bdb318 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/folks/default.nix @@ -0,0 +1,43 @@ +{ fetchurl, stdenv, pkgconfig, glib, gnome3, nspr, intltool +, vala, sqlite, libxml2, dbus_glib, libsoup, nss, dbus_libs +, telepathy_glib, evolution_data_server, libsecret, db }: + +# TODO: enable more folks backends + +let + majorVersion = "0.11"; +in +stdenv.mkDerivation rec { + name = "folks-${majorVersion}.0"; + + src = fetchurl { + url = "mirror://gnome/sources/folks/${majorVersion}/${name}.tar.xz"; + sha256 = "0q9hny6a38zn0gamv0ji0pn3jw6bpn2i0fr6vbzkhm9h9ws0cqvz"; + }; + + propagatedBuildInputs = [ glib gnome3.libgee sqlite ]; + # dbus_daemon needed for tests + buildInputs = [ dbus_glib telepathy_glib evolution_data_server dbus_libs + vala libsecret libxml2 libsoup nspr nss intltool db ]; + nativeBuildInputs = [ pkgconfig ]; + + configureFlags = "--disable-fatal-warnings"; + + NIX_CFLAGS_COMPILE = ["-I${nspr}/include/nspr" "-I${nss}/include/nss" + "-I${dbus_glib}/include/dbus-1.0" "-I${dbus_libs}/include/dbus-1.0"]; + + enableParallelBuilding = true; + + postBuild = "rm -rf $out/share/gtk-doc"; + + meta = { + description = "Folks"; + + homepage = https://wiki.gnome.org/Projects/Folks; + + license = stdenv.lib.licenses.lgpl2Plus; + + maintainers = gnome3.maintainers; + platforms = stdenv.lib.platforms.gnu; # arbitrary choice + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/gconf/default.nix b/pkgs/desktops/gnome-3/3.18/core/gconf/default.nix new file mode 100644 index 00000000000..a4cb3e8c146 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/gconf/default.nix @@ -0,0 +1,32 @@ +{ stdenv, fetchurl, pkgconfig, dbus_glib, gnome3 ? null, glib, libxml2 +, intltool, polkit, orbit, withGtk ? false }: + +assert withGtk -> (gnome3 != null); + +stdenv.mkDerivation rec { + + versionMajor = "3.2"; + versionMinor = "6"; + moduleName = "GConf"; + + origName = "${moduleName}-${versionMajor}.${versionMinor}"; + + name = "gconf-${versionMajor}.${versionMinor}"; + + src = fetchurl { + url = "mirror://gnome/sources/${moduleName}/${versionMajor}/${origName}.tar.xz"; + sha256 = "0k3q9nh53yhc9qxf1zaicz4sk8p3kzq4ndjdsgpaa2db0ccbj4hr"; + }; + + buildInputs = [ libxml2 polkit orbit ] ++ stdenv.lib.optional withGtk gnome3.gtk; + propagatedBuildInputs = [ glib dbus_glib ]; + nativeBuildInputs = [ pkgconfig intltool ]; + + # ToDo: ldap reported as not found but afterwards reported as supported + + meta = with stdenv.lib; { + homepage = http://projects.gnome.org/gconf/; + description = "A system for storing application preferences"; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/gcr/default.nix b/pkgs/desktops/gnome-3/3.18/core/gcr/default.nix new file mode 100644 index 00000000000..e0e8d1e7338 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/gcr/default.nix @@ -0,0 +1,28 @@ +{ stdenv, fetchurl, pkgconfig, intltool, gnupg, p11_kit, glib +, libgcrypt, libtasn1, dbus_glib, gtk, pango, gdk_pixbuf, atk +, gobjectIntrospection, makeWrapper, libxslt, vala, gnome3 }: + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + buildInputs = [ + pkgconfig intltool gnupg glib gobjectIntrospection libxslt + libgcrypt libtasn1 dbus_glib gtk pango gdk_pixbuf atk makeWrapper vala + ]; + + propagatedBuildInputs = [ p11_kit ]; + + #doCheck = true; + + #enableParallelBuilding = true; issues on hydra + + preFixup = '' + wrapProgram "$out/bin/gcr-viewer" \ + --prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH" + ''; + + meta = with stdenv.lib; { + platforms = platforms.linux; + maintainers = gnome3.maintainers; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/gcr/src.nix b/pkgs/desktops/gnome-3/3.18/core/gcr/src.nix new file mode 100644 index 00000000000..e2b4ad195ff --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/gcr/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "gcr-3.16.0"; + + src = fetchurl { + url = mirror://gnome/sources/gcr/3.16/gcr-3.16.0.tar.xz; + sha256 = "ecfe8df41cc88158364bb15addc670b11e539fe844742983629ba2323888d075"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/gdm/3.16-wip/default.nix b/pkgs/desktops/gnome-3/3.18/core/gdm/3.16-wip/default.nix new file mode 100644 index 00000000000..51b67afb01f --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/gdm/3.16-wip/default.nix @@ -0,0 +1,41 @@ +{ stdenv, fetchurl, pkgconfig, glib, itstool, libxml2, xorg, dbus +, intltool, accountsservice, libX11, gnome3, systemd, gnome_session +, gtk, libcanberra_gtk3, pam, libtool, gobjectIntrospection }: + +stdenv.mkDerivation rec { + name = "gdm-${gnome3.version}.2"; + + src = fetchurl { + url = "mirror://gnome/sources/gdm/${gnome3.version}/${name}.tar.xz"; + sha256 = "0mhv3q8z208qvhz00zrxlqn7w9gi5vy6w8dpjh5s2ka28l3yhbn3"; + }; + + preConfigure = '' + substituteInPlace ./configure --replace "/usr/bin/X" "${xorg.xorgserver}/bin/X" + substituteInPlace daemon/gdm-simple-slave.c --replace 'BINDIR "/gnome-session' '"${gnome_session}/bin/gnome-session' + substituteInPlace daemon/gdm-launch-environment.c --replace 'BINDIR "/dbus-launch' '"${dbus.tools}/bin/dbus-launch' + substituteInPlace data/gdm.conf-custom.in --replace '#WaylandEnable=false' 'WaylandEnable=false' + sed 's/#Enable=true/Enable=true/' -i data/gdm.conf-custom.in + ''; + + configureFlags = [ "--localstatedir=/var" "--with-systemd=yes" "--without-plymouth" + "--with-systemdsystemunitdir=$(out)/etc/systemd/system" + "--with-initial-vt=10" ]; + + buildInputs = [ pkgconfig glib itstool libxml2 intltool + accountsservice gnome3.dconf systemd + gobjectIntrospection libX11 gtk + libcanberra_gtk3 pam libtool ]; + + #enableParallelBuilding = true; # problems compiling + + # Disable Access Control because our X does not support FamilyServerInterpreted yet + patches = [ ./xserver_path.patch ./sessions_dir.patch ./disable_x_access_control.patch ]; + + meta = with stdenv.lib; { + homepage = https://wiki.gnome.org/Projects/GDM; + description = "A program that manages graphical display servers and handles graphical user logins"; + platforms = platforms.linux; + maintainers = gnome3.maintainers; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/gdm/3.16-wip/disable_x_access_control.patch b/pkgs/desktops/gnome-3/3.18/core/gdm/3.16-wip/disable_x_access_control.patch new file mode 100644 index 00000000000..7691a9e86f0 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/gdm/3.16-wip/disable_x_access_control.patch @@ -0,0 +1,15 @@ +--- gdm-3.16.0/daemon/gdm-display.c.orig 2015-04-08 13:53:14.370274369 +0200 ++++ gdm-3.16.0/daemon/gdm-display.c 2015-04-08 13:53:36.287520435 +0200 +@@ -1706,9 +1706,10 @@ + + gdm_error_trap_push (); + +- for (i = 0; i < G_N_ELEMENTS (host_entries); i++) { ++ /*for (i = 0; i < G_N_ELEMENTS (host_entries); i++) { + XAddHost (self->priv->x11_display, &host_entries[i]); +- } ++ }*/ ++ XDisableAccessControl(self->priv->x11_display); + + XSync (self->priv->x11_display, False); + if (gdm_error_trap_pop ()) { diff --git a/pkgs/desktops/gnome-3/3.18/core/gdm/3.16-wip/sessions_dir.patch b/pkgs/desktops/gnome-3/3.18/core/gdm/3.16-wip/sessions_dir.patch new file mode 100644 index 00000000000..b8fbad4d731 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/gdm/3.16-wip/sessions_dir.patch @@ -0,0 +1,17 @@ +diff --git a/daemon/gdm-session.c b/daemon/gdm-session.c +index f759d2d..d154716 100644 +--- a/daemon/gdm-session.c ++++ b/daemon/gdm-session.c +@@ -373,9 +373,12 @@ get_system_session_dirs (void) + #ifdef ENABLE_WAYLAND_SUPPORT + DATADIR "/wayland-sessions/", + #endif ++ NULL, + NULL + }; + ++ search_dirs[4] = getenv("GDM_SESSIONS_DIR") != NULL ? getenv("GDM_SESSIONS_DIR") : NULL; ++ + return search_dirs; + } + diff --git a/pkgs/desktops/gnome-3/3.18/core/gdm/3.16-wip/xserver_path.patch b/pkgs/desktops/gnome-3/3.18/core/gdm/3.16-wip/xserver_path.patch new file mode 100644 index 00000000000..b451d129391 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/gdm/3.16-wip/xserver_path.patch @@ -0,0 +1,83 @@ +--- a/daemon/gdm-server.c 2014-07-30 23:00:17.786841724 +0200 ++++ b/daemon/gdm-server.c 2014-07-30 23:02:10.491239180 +0200 +@@ -322,7 +322,11 @@ + fallback: + #endif + +- server->priv->command = g_strdup_printf (X_SERVER X_SERVER_ARG_FORMAT, verbosity, debug_options); ++ if (g_getenv("GDM_X_SERVER") != NULL) { ++ server->priv->command = g_strdup (g_getenv("GDM_X_SERVER")); ++ } else { ++ server->priv->command = g_strdup_printf (X_SERVER X_SERVER_ARG_FORMAT, verbosity, debug_options); ++ } + } + + static gboolean +--- gdm-3.16.0/daemon/gdm-x-session.c.orig 2015-04-15 18:44:16.875743928 +0200 ++++ gdm-3.16.0/daemon/gdm-x-session.c 2015-04-16 13:34:02.335708638 +0200 +@@ -207,6 +207,8 @@ + char *display_fd_string = NULL; + char *vt_string = NULL; + char *display_number; ++ int nixos_argc = 0; ++ char **nixos_argv = NULL; + gsize display_number_size; + + auth_file = prepare_auth_file (); +@@ -236,7 +238,15 @@ + + display_fd_string = g_strdup_printf ("%d", DISPLAY_FILENO); + +- g_ptr_array_add (arguments, X_SERVER); ++ if (g_getenv("GDM_X_SERVER") != NULL) { ++ int i = 0; ++ g_shell_parse_argv(g_getenv("GDM_X_SERVER"), &nixos_argc, &nixos_argv, NULL); ++ for (i = 0; i < nixos_argc; i++) { ++ g_ptr_array_add (arguments, nixos_argv[i]); ++ } ++ } else { ++ g_ptr_array_add (arguments, X_SERVER); ++ } + + if (vt_string != NULL) { + g_ptr_array_add (arguments, vt_string); +@@ -259,12 +269,12 @@ + g_ptr_array_add (arguments, "-noreset"); + g_ptr_array_add (arguments, "-keeptty"); + +- g_ptr_array_add (arguments, "-verbose"); ++ /*g_ptr_array_add (arguments, "-verbose"); + if (state->debug_enabled) { + g_ptr_array_add (arguments, "7"); + } else { + g_ptr_array_add (arguments, "3"); +- } ++ }*/ + + if (state->debug_enabled) { + g_ptr_array_add (arguments, "-core"); +@@ -275,6 +285,9 @@ + (const char * const *) arguments->pdata, + &error); + g_free (display_fd_string); ++ if (nixos_argv) { ++ g_strfreev (nixos_argv); ++ } + g_clear_object (&launcher); + g_ptr_array_free (arguments, TRUE); + +--- gdm-3.16.0/daemon/gdm-session.c.orig 2015-04-16 14:19:01.392802683 +0200 ++++ gdm-3.16.0/daemon/gdm-session.c 2015-04-16 14:20:36.012296764 +0200 +@@ -2359,6 +2359,12 @@ + gchar *desktop_names; + const char *locale; + ++ if (g_getenv ("GDM_X_SERVER") != NULL) { ++ gdm_session_set_environment_variable (self, ++ "GDM_X_SERVER", ++ g_getenv ("GDM_X_SERVER")); ++ } ++ + gdm_session_set_environment_variable (self, + "GDMSESSION", + get_session_name (self)); diff --git a/pkgs/desktops/gnome-3/3.18/core/gdm/default.nix b/pkgs/desktops/gnome-3/3.18/core/gdm/default.nix new file mode 100644 index 00000000000..1db96965131 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/gdm/default.nix @@ -0,0 +1,41 @@ +{ stdenv, fetchurl, pkgconfig, glib, itstool, libxml2, xorg, dbus +, intltool, accountsservice, libX11, gnome3, systemd, gnome_session +, gtk, libcanberra_gtk3, pam, libtool, gobjectIntrospection }: + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + # Only needed to make it build + preConfigure = '' + substituteInPlace ./configure --replace "/usr/bin/X" "${xorg.xorgserver}/bin/X" + ''; + + configureFlags = [ "--sysconfdir=/etc" + "--localstatedir=/var" + "--with-systemd=yes" + "--with-systemdsystemunitdir=$(out)/etc/systemd/system" ]; + + buildInputs = [ pkgconfig glib itstool libxml2 intltool + accountsservice gnome3.dconf systemd + gobjectIntrospection libX11 gtk + libcanberra_gtk3 pam libtool ]; + + #enableParallelBuilding = true; # problems compiling + + preBuild = '' + substituteInPlace daemon/gdm-simple-slave.c --replace 'BINDIR "/gnome-session' '"${gnome_session}/bin/gnome-session' + ''; + + # Disable Access Control because our X does not support FamilyServerInterpreted yet + patches = [ ./xserver_path.patch ./sessions_dir.patch + ./disable_x_access_control.patch ./no-dbus-launch.patch ]; + + installFlags = [ "sysconfdir=$(out)/etc" "dbusconfdir=$(out)/etc/dbus-1/system.d" ]; + + meta = with stdenv.lib; { + homepage = https://wiki.gnome.org/Projects/GDM; + description = "A program that manages graphical display servers and handles graphical user logins"; + platforms = platforms.linux; + maintainers = gnome3.maintainers; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/gdm/disable_x_access_control.patch b/pkgs/desktops/gnome-3/3.18/core/gdm/disable_x_access_control.patch new file mode 100644 index 00000000000..e100e013b78 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/gdm/disable_x_access_control.patch @@ -0,0 +1,13 @@ +--- gdm-3.14.2/daemon/gdm-slave.c.orig 2015-04-16 15:05:27.844353079 +0200 ++++ gdm-3.14.2/daemon/gdm-slave.c 2015-04-16 15:05:40.240417915 +0200 +@@ -369,8 +369,9 @@ + gdm_error_trap_push (); + + for (i = 0; i < G_N_ELEMENTS (host_entries); i++) { +- XAddHost (slave->priv->server_display, &host_entries[i]); ++ //XAddHost (slave->priv->server_display, &host_entries[i]); + } ++ XDisableAccessControl(slave->priv->server_display); + + XSync (slave->priv->server_display, False); + if (gdm_error_trap_pop ()) { diff --git a/pkgs/desktops/gnome-3/3.18/core/gdm/no-dbus-launch.patch b/pkgs/desktops/gnome-3/3.18/core/gdm/no-dbus-launch.patch new file mode 100644 index 00000000000..c87554078c7 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/gdm/no-dbus-launch.patch @@ -0,0 +1,20 @@ +--- a/daemon/gdm-launch-environment.c 2015-06-22 15:11:07.277474398 +0000 ++++ b/daemon/gdm-launch-environment.c 2015-06-22 15:12:31.301157665 +0000 +@@ -48,8 +48,6 @@ + #include "gdm-session-enum-types.h" + #include "gdm-launch-environment.h" + +-#define DBUS_LAUNCH_COMMAND BINDIR "/dbus-launch --exit-with-session" +- + extern char **environ; + + #define GDM_LAUNCH_ENVIRONMENT_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GDM_TYPE_LAUNCH_ENVIRONMENT, GdmLaunchEnvironmentPrivate)) +@@ -512,7 +510,7 @@ + gdm_session_select_program (launch_environment->priv->session, launch_environment->priv->command); + } else { + /* wrap it in dbus-launch */ +- char *command = g_strdup_printf ("%s %s", DBUS_LAUNCH_COMMAND, launch_environment->priv->command); ++ char *command = g_strdup (launch_environment->priv->command); + + gdm_session_select_program (launch_environment->priv->session, command); + g_free (command); diff --git a/pkgs/desktops/gnome-3/3.18/core/gdm/sessions_dir.patch b/pkgs/desktops/gnome-3/3.18/core/gdm/sessions_dir.patch new file mode 100644 index 00000000000..b8fbad4d731 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/gdm/sessions_dir.patch @@ -0,0 +1,17 @@ +diff --git a/daemon/gdm-session.c b/daemon/gdm-session.c +index f759d2d..d154716 100644 +--- a/daemon/gdm-session.c ++++ b/daemon/gdm-session.c +@@ -373,9 +373,12 @@ get_system_session_dirs (void) + #ifdef ENABLE_WAYLAND_SUPPORT + DATADIR "/wayland-sessions/", + #endif ++ NULL, + NULL + }; + ++ search_dirs[4] = getenv("GDM_SESSIONS_DIR") != NULL ? getenv("GDM_SESSIONS_DIR") : NULL; ++ + return search_dirs; + } + diff --git a/pkgs/desktops/gnome-3/3.18/core/gdm/src.nix b/pkgs/desktops/gnome-3/3.18/core/gdm/src.nix new file mode 100644 index 00000000000..acd46534e14 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/gdm/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "gdm-3.14.2"; + + src = fetchurl { + url = mirror://gnome/sources/gdm/3.14/gdm-3.14.2.tar.xz; + sha256 = "e20eb61496161ad95b1058dbf8aea9b7b004df4d0ea6b0fab4401397d9db5930"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/gdm/xserver_path.patch b/pkgs/desktops/gnome-3/3.18/core/gdm/xserver_path.patch new file mode 100644 index 00000000000..412daee9f27 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/gdm/xserver_path.patch @@ -0,0 +1,15 @@ +--- a/daemon/gdm-server.c 2014-07-30 23:00:17.786841724 +0200 ++++ b/daemon/gdm-server.c 2014-07-30 23:02:10.491239180 +0200 +@@ -322,7 +322,11 @@ + fallback: + #endif + +- server->priv->command = g_strdup_printf (X_SERVER X_SERVER_ARG_FORMAT, verbosity, debug_options); ++ if (g_getenv("GDM_X_SERVER") != NULL) { ++ server->priv->command = g_strdup (g_getenv("GDM_X_SERVER")); ++ } else { ++ server->priv->command = g_strdup_printf (X_SERVER X_SERVER_ARG_FORMAT, verbosity, debug_options); ++ } + } + + static gboolean diff --git a/pkgs/desktops/gnome-3/3.18/core/geocode-glib/default.nix b/pkgs/desktops/gnome-3/3.18/core/geocode-glib/default.nix new file mode 100644 index 00000000000..4d75bdc4996 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/geocode-glib/default.nix @@ -0,0 +1,14 @@ +{ fetchurl, stdenv, pkgconfig, gnome3, intltool, libsoup, json_glib }: + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + buildInputs = with gnome3; + [ intltool pkgconfig glib libsoup json_glib ]; + + meta = with stdenv.lib; { + platforms = platforms.linux; + maintainers = gnome3.maintainers; + }; + +} diff --git a/pkgs/desktops/gnome-3/3.18/core/geocode-glib/src.nix b/pkgs/desktops/gnome-3/3.18/core/geocode-glib/src.nix new file mode 100644 index 00000000000..faaadf5bb91 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/geocode-glib/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "geocode-glib-3.18.0"; + + src = fetchurl { + url = mirror://gnome/sources/geocode-glib/3.18/geocode-glib-3.18.0.tar.xz; + sha256 = "8fb7f0d569e3e6696aaa1fdf275cb3094527ec5e9fa36fd88dd633dfec63495d"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/gjs/default.nix b/pkgs/desktops/gnome-3/3.18/core/gjs/default.nix new file mode 100644 index 00000000000..792e34c7b14 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/gjs/default.nix @@ -0,0 +1,28 @@ +{ fetchurl, stdenv, pkgconfig, gnome3, gtk3, gobjectIntrospection +, spidermonkey_24, pango, readline, glib, libxml2 }: + +let + majorVersion = "1.43"; +in +stdenv.mkDerivation rec { + name = "gjs-${majorVersion}.3"; + + src = fetchurl { + url = "mirror://gnome/sources/gjs/${majorVersion}/${name}.tar.xz"; + sha256 = "0khwm8l6m6x71rwf3q92d6scbhmrpiw7kqmj34nn588fb7a4vdc2"; + }; + + buildInputs = [ libxml2 gobjectIntrospection pkgconfig gtk3 glib pango readline ]; + + propagatedBuildInputs = [ spidermonkey_24 ]; + + postInstall = '' + sed 's|-lreadline|-L${readline}/lib -lreadline|g' -i $out/lib/libgjs.la + ''; + + meta = with stdenv.lib; { + maintainers = gnome3.maintainers; + platforms = platforms.linux; + }; + +} diff --git a/pkgs/desktops/gnome-3/3.18/core/gnome-backgrounds/default.nix b/pkgs/desktops/gnome-3/3.18/core/gnome-backgrounds/default.nix new file mode 100644 index 00000000000..32d6d6e7535 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/gnome-backgrounds/default.nix @@ -0,0 +1,12 @@ +{ stdenv, fetchurl, pkgconfig, gnome3, intltool }: + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + nativeBuildInputs = [ pkgconfig intltool ]; + + meta = with stdenv.lib; { + platforms = platforms.linux; + maintainers = gnome3.maintainers; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/gnome-backgrounds/src.nix b/pkgs/desktops/gnome-3/3.18/core/gnome-backgrounds/src.nix new file mode 100644 index 00000000000..b191826a2d0 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/gnome-backgrounds/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "gnome-backgrounds-3.18.0"; + + src = fetchurl { + url = mirror://gnome/sources/gnome-backgrounds/3.18/gnome-backgrounds-3.18.0.tar.xz; + sha256 = "aa560f0e5f12a308dd36aaac2fff32916abd61d42f47b4bc42c8c7011bf2a7b9"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/gnome-bluetooth/default.nix b/pkgs/desktops/gnome-3/3.18/core/gnome-bluetooth/default.nix new file mode 100644 index 00000000000..7fae0b5c67f --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/gnome-bluetooth/default.nix @@ -0,0 +1,23 @@ +{ stdenv, fetchurl, gnome3, pkgconfig, gtk3, intltool, glib +, udev, itstool, libxml2, makeWrapper, libnotify, libcanberra_gtk3 }: + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + buildInputs = [ pkgconfig intltool glib gtk3 udev libxml2 gnome3.defaultIconTheme + makeWrapper gnome3.gsettings_desktop_schemas itstool + libnotify libcanberra_gtk3 ]; + + preFixup = '' + wrapProgram "$out/bin/bluetooth-sendto" \ + --prefix XDG_DATA_DIRS : "$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH" + ''; + + meta = with stdenv.lib; { + homepage = https://help.gnome.org/users/gnome-bluetooth/stable/index.html.en; + description = "Application that let you manage Bluetooth in the GNOME destkop"; + maintainers = gnome3.maintainers; + license = licenses.gpl2; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/gnome-bluetooth/src.nix b/pkgs/desktops/gnome-3/3.18/core/gnome-bluetooth/src.nix new file mode 100644 index 00000000000..eb5f6149976 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/gnome-bluetooth/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "gnome-bluetooth-3.18.0"; + + src = fetchurl { + url = mirror://gnome/sources/gnome-bluetooth/3.18/gnome-bluetooth-3.18.0.tar.xz; + sha256 = "f5c0d43226c4ec6a545dddb86181adadbc2b5cf720b640026003b9660fba0b8f"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/gnome-calculator/default.nix b/pkgs/desktops/gnome-3/3.18/core/gnome-calculator/default.nix new file mode 100644 index 00000000000..7ca66863d86 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/gnome-calculator/default.nix @@ -0,0 +1,30 @@ +{ stdenv, intltool, fetchurl, pkgconfig, libxml2 +, bash, gtk3, glib, makeWrapper +, itstool, gnome3, librsvg, gdk_pixbuf, mpfr, gmp }: + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + NIX_CFLAGS_COMPILE = "-I${gnome3.glib}/include/gio-unix-2.0"; + + propagatedUserEnvPkgs = [ gnome3.gnome_themes_standard ]; + + buildInputs = [ bash pkgconfig gtk3 glib intltool itstool + libxml2 gnome3.gtksourceview mpfr gmp + gdk_pixbuf gnome3.defaultIconTheme librsvg + gnome3.gsettings_desktop_schemas makeWrapper ]; + + preFixup = '' + wrapProgram "$out/bin/gnome-calculator" \ + --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \ + --prefix XDG_DATA_DIRS : "${gnome3.gnome_themes_standard}/share:$out/share:$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH" + ''; + + meta = with stdenv.lib; { + homepage = https://wiki.gnome.org/action/show/Apps/Calculator; + description = "Application that solves mathematical equations and is suitable as a default application in a Desktop environment"; + maintainers = gnome3.maintainers; + license = licenses.gpl2; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/gnome-calculator/src.nix b/pkgs/desktops/gnome-3/3.18/core/gnome-calculator/src.nix new file mode 100644 index 00000000000..42fc4667087 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/gnome-calculator/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "gnome-calculator-3.18.0"; + + src = fetchurl { + url = mirror://gnome/sources/gnome-calculator/3.18/gnome-calculator-3.18.0.tar.xz; + sha256 = "54dc40de68b118c06b443f9d8a56397425434a45dddbb2daba7b720b77b35672"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/gnome-common/default.nix b/pkgs/desktops/gnome-3/3.18/core/gnome-common/default.nix new file mode 100644 index 00000000000..f9261e183ef --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/gnome-common/default.nix @@ -0,0 +1,17 @@ +{ stdenv, fetchurl, which, gnome3, autoconf, automake }: + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + patches = [(fetchurl { + name = "gnome-common-patch"; + url = "https://bug697543.bugzilla-attachments.gnome.org/attachment.cgi?id=240935"; + sha256 = "17abp7czfzirjm7qsn2czd03hdv9kbyhk3lkjxg2xsf5fky7z7jl"; + })]; + + propagatedBuildInputs = [ which autoconf automake ]; # autogen.sh which is using gnome_common tends to require which + + meta = with stdenv.lib; { + maintainers = gnome3.maintainers; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/gnome-common/src.nix b/pkgs/desktops/gnome-3/3.18/core/gnome-common/src.nix new file mode 100644 index 00000000000..8ffe7e20e1a --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/gnome-common/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "gnome-common-3.18.0"; + + src = fetchurl { + url = mirror://gnome/sources/gnome-common/3.18/gnome-common-3.18.0.tar.xz; + sha256 = "22569e370ae755e04527b76328befc4c73b62bfd4a572499fde116b8318af8cf"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/gnome-contacts/default.nix b/pkgs/desktops/gnome-3/3.18/core/gnome-contacts/default.nix new file mode 100644 index 00000000000..6ec3c7871bb --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/gnome-contacts/default.nix @@ -0,0 +1,47 @@ +{ stdenv, intltool, fetchurl, evolution_data_server, db +, pkgconfig, gtk3, glib, libsecret +, libchamplain, clutter_gtk, geocode_glib +, bash, makeWrapper, itstool, folks, libnotify, libxml2 +, gnome3, librsvg, gdk_pixbuf, file, telepathy_glib, nspr, nss +, libsoup, vala, dbus_glib, automake115x, autoconf }: + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + doCheck = true; + + propagatedUserEnvPkgs = [ gnome3.gnome_themes_standard evolution_data_server ]; + + # force build from vala + preBuild = '' + touch src/*.vala + ''; + + buildInputs = [ pkgconfig gtk3 glib intltool itstool evolution_data_server + gnome3.gsettings_desktop_schemas makeWrapper file libnotify + folks gnome3.gnome_desktop telepathy_glib libsecret dbus_glib + libxml2 libsoup gnome3.gnome_online_accounts nspr nss + gdk_pixbuf gnome3.defaultIconTheme librsvg + libchamplain clutter_gtk geocode_glib + vala automake115x autoconf db ]; + + preFixup = '' + for f in "$out/bin/gnome-contacts" "$out/libexec/gnome-contacts-search-provider"; do + wrapProgram $f \ + --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \ + --prefix XDG_DATA_DIRS : "${gnome3.gnome_themes_standard}/share:$out/share:$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH" + done + ''; + + patches = [ ./gio_unix.patch ]; + + patchFlags = "-p0"; + + meta = with stdenv.lib; { + homepage = https://wiki.gnome.org/Apps/Contacts; + description = "Contacts is GNOME's integrated address book"; + maintainers = gnome3.maintainers; + license = licenses.gpl2; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/gnome-contacts/gio_unix.patch b/pkgs/desktops/gnome-3/3.18/core/gnome-contacts/gio_unix.patch new file mode 100644 index 00000000000..f1b3d3c94ac --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/gnome-contacts/gio_unix.patch @@ -0,0 +1,10 @@ +--- configure.ac.orig 2015-04-09 18:45:50.581232289 +0200 ++++ configure.ac 2015-04-09 18:45:59.744280137 +0200 +@@ -54,6 +54,7 @@ + champlain-0.12 + clutter-gtk-1.0 + geocode-glib-1.0 >= 3.15.3 ++ gio-unix-2.0 + " + PKG_CHECK_MODULES(CONTACTS, [$pkg_modules]) + diff --git a/pkgs/desktops/gnome-3/3.18/core/gnome-contacts/src.nix b/pkgs/desktops/gnome-3/3.18/core/gnome-contacts/src.nix new file mode 100644 index 00000000000..94fcfb85fdf --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/gnome-contacts/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "gnome-contacts-3.18.0"; + + src = fetchurl { + url = mirror://gnome/sources/gnome-contacts/3.18/gnome-contacts-3.18.0.tar.xz; + sha256 = "c81ad739a1f554e4c89979564565e32ceaf1d2cc6c93a6a75d929d7d1fe8e287"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/gnome-control-center/default.nix b/pkgs/desktops/gnome-3/3.18/core/gnome-control-center/default.nix new file mode 100644 index 00000000000..e7ed0c6bade --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/gnome-control-center/default.nix @@ -0,0 +1,59 @@ +{ fetchurl, stdenv, pkgconfig, gnome3, ibus, intltool, upower, makeWrapper +, libcanberra, libcanberra_gtk3, accountsservice, libpwquality, libpulseaudio +, gdk_pixbuf, librsvg, libxkbfile, libnotify +, libxml2, polkit, libxslt, libgtop, libsoup, colord, colord-gtk +, cracklib, python, libkrb5, networkmanagerapplet, networkmanager +, libwacom, samba, shared_mime_info, tzdata, icu, libtool, udev +, docbook_xsl, docbook_xsl_ns, modemmanager, clutter, clutter_gtk +, fontconfig, sound-theme-freedesktop }: + +# http://ftp.gnome.org/pub/GNOME/teams/releng/3.10.2/gnome-suites-core-3.10.2.modules +# TODO: bluetooth, wacom, printers + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + propagatedUserEnvPkgs = + [ gnome3.gnome_themes_standard gnome3.libgnomekbd ]; + + # https://bugzilla.gnome.org/show_bug.cgi?id=752596 + enableParallelBuilding = false; + + buildInputs = with gnome3; + [ pkgconfig intltool ibus gtk glib upower libcanberra gsettings_desktop_schemas + libxml2 gnome_desktop gnome_settings_daemon polkit libxslt libgtop gnome-menus + gnome_online_accounts libsoup colord libpulseaudio fontconfig colord-gtk libpwquality + accountsservice libkrb5 networkmanagerapplet libwacom samba libnotify libxkbfile + shared_mime_info icu libtool docbook_xsl docbook_xsl_ns gnome3.grilo + gdk_pixbuf gnome3.defaultIconTheme librsvg clutter clutter_gtk + gnome3.vino udev libcanberra_gtk3 + networkmanager modemmanager makeWrapper gnome3.gnome-bluetooth ]; + + preBuild = '' + substituteInPlace tz.h --replace "/usr/share/zoneinfo/zone.tab" "${tzdata}/share/zoneinfo/zone.tab" + substituteInPlace panels/datetime/tz.h --replace "/usr/share/zoneinfo/zone.tab" "${tzdata}/share/zoneinfo/zone.tab" + + # hack to make test-endianess happy + mkdir -p $out/share/locale + substituteInPlace panels/datetime/test-endianess.c --replace "/usr/share/locale/" "$out/share/locale/" + ''; + + patches = [ ./vpn_plugins_path.patch ]; + + preFixup = with gnome3; '' + wrapProgram $out/bin/gnome-control-center \ + --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \ + --prefix XDG_DATA_DIRS : "${gnome3.gnome_themes_standard}/share:${sound-theme-freedesktop}/share:$out/share:$out/share/gnome-control-center:$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH" + for i in $out/share/applications/*; do + substituteInPlace $i --replace "gnome-control-center" "$out/bin/gnome-control-center" + done + ''; + + meta = with stdenv.lib; { + description = "Utilities to configure the GNOME desktop"; + license = licenses.gpl2Plus; + maintainers = gnome3.maintainers; + platforms = platforms.linux; + }; + +} diff --git a/pkgs/desktops/gnome-3/3.18/core/gnome-control-center/src.nix b/pkgs/desktops/gnome-3/3.18/core/gnome-control-center/src.nix new file mode 100644 index 00000000000..f87859fe51f --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/gnome-control-center/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "gnome-control-center-3.18.0"; + + src = fetchurl { + url = mirror://gnome/sources/gnome-control-center/3.18/gnome-control-center-3.18.0.tar.xz; + sha256 = "42648eda11fc1df0f717d7d3b385cb7c519fdd084ed4e3fad2e55fd11712fb52"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/gnome-control-center/vpn_plugins_path.patch b/pkgs/desktops/gnome-3/3.18/core/gnome-control-center/vpn_plugins_path.patch new file mode 100644 index 00000000000..e25105a303f --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/gnome-control-center/vpn_plugins_path.patch @@ -0,0 +1,19 @@ +diff --git a/panels/network/connection-editor/vpn-helpers.c b/panels/network/connection-editor/vpn-helpers.c +index 7dc23c2..fcb1384 100644 +--- a/panels/network/connection-editor/vpn-helpers.c ++++ b/panels/network/connection-editor/vpn-helpers.c +@@ -95,14 +95,6 @@ vpn_get_plugins (GError **error) + if (!so_path) + goto next; + +- /* Remove any path and extension components, then reconstruct path +- * to the SO in LIBDIR +- */ +- so_name = g_path_get_basename (so_path); +- g_free (so_path); +- so_path = g_build_filename (NM_VPN_MODULE_DIR, so_name, NULL); +- g_free (so_name); +- + module = g_module_open (so_path, G_MODULE_BIND_LAZY | G_MODULE_BIND_LOCAL); + if (!module) { + g_set_error (error, G_IO_ERROR, G_IO_ERROR_FAILED, "Cannot load the VPN plugin which provides the " diff --git a/pkgs/desktops/gnome-3/3.18/core/gnome-desktop/default.nix b/pkgs/desktops/gnome-3/3.18/core/gnome-desktop/default.nix new file mode 100644 index 00000000000..bf0ccd0224e --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/gnome-desktop/default.nix @@ -0,0 +1,24 @@ +{ stdenv, fetchurl, pkgconfig, python, libxml2Python, libxslt, which, libX11, gnome3, gtk3, glib +, intltool, gnome_doc_utils, libxkbfile, xkeyboard_config, isocodes, itstool, wayland +, gobjectIntrospection }: + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + # this should probably be setuphook for glib + NIX_CFLAGS_COMPILE = "-I${glib}/include/gio-unix-2.0"; + + enableParallelBuilding = true; + + buildInputs = [ pkgconfig python libxml2Python libxslt which libX11 + xkeyboard_config isocodes itstool wayland + gtk3 glib intltool gnome_doc_utils libxkbfile + gobjectIntrospection ]; + + propagatedBuildInputs = [ gnome3.gsettings_desktop_schemas ]; + + meta = with stdenv.lib; { + platforms = platforms.linux; + maintainers = gnome3.maintainers; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/gnome-desktop/src.nix b/pkgs/desktops/gnome-3/3.18/core/gnome-desktop/src.nix new file mode 100644 index 00000000000..84fbb8ebdff --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/gnome-desktop/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "gnome-desktop-3.18.0"; + + src = fetchurl { + url = mirror://gnome/sources/gnome-desktop/3.18/gnome-desktop-3.18.0.tar.xz; + sha256 = "44c806b16ea7d38bdc0e6343f2cb6be97afd7f64490f30c0cb5c3373e89a9d44"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/gnome-dictionary/default.nix b/pkgs/desktops/gnome-3/3.18/core/gnome-dictionary/default.nix new file mode 100644 index 00000000000..1d1f9d18c56 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/gnome-dictionary/default.nix @@ -0,0 +1,32 @@ +{ stdenv, intltool, fetchurl +, pkgconfig, gtk3, glib +, bash, makeWrapper, itstool, libxml2 +, gnome3, librsvg, gdk_pixbuf, file }: + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + doCheck = true; + + NIX_CFLAGS_COMPILE = "-I${gnome3.glib}/include/gio-unix-2.0"; + + propagatedUserEnvPkgs = [ gnome3.gnome_themes_standard ]; + propagatedBuildInputs = [ gdk_pixbuf gnome3.defaultIconTheme librsvg ]; + + buildInputs = [ pkgconfig gtk3 glib intltool itstool libxml2 file + gnome3.gsettings_desktop_schemas makeWrapper ]; + + preFixup = '' + wrapProgram "$out/bin/gnome-dictionary" \ + --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \ + --prefix XDG_DATA_DIRS : "${gtk3}/share:${gnome3.gnome_themes_standard}/share:$out/share:$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH" + ''; + + meta = with stdenv.lib; { + homepage = https://wiki.gnome.org/Apps/Dictionary; + description = "Dictionary is the GNOME application to look up definitions"; + maintainers = gnome3.maintainers; + license = licenses.gpl2; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/gnome-dictionary/src.nix b/pkgs/desktops/gnome-3/3.18/core/gnome-dictionary/src.nix new file mode 100644 index 00000000000..9e3660f207b --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/gnome-dictionary/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "gnome-dictionary-3.18.0"; + + src = fetchurl { + url = mirror://gnome/sources/gnome-dictionary/3.18/gnome-dictionary-3.18.0.tar.xz; + sha256 = "5338962124f6d784920ed4968d98734a7589513b36e4f4a6ff00d1ed5afb4ead"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/gnome-disk-utility/default.nix b/pkgs/desktops/gnome-3/3.18/core/gnome-disk-utility/default.nix new file mode 100644 index 00000000000..3f9f653bdba --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/gnome-disk-utility/default.nix @@ -0,0 +1,35 @@ +{ stdenv, intltool, fetchurl, pkgconfig, udisks2, libsecret, libdvdread +, bash, gtk3, glib, makeWrapper, cracklib, libnotify +, itstool, gnome3, librsvg, gdk_pixbuf, libxml2, python +, libcanberra_gtk3, libxslt, libtool, docbook_xsl, libpwquality }: + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + doCheck = true; + + NIX_CFLAGS_COMPILE = "-I${gnome3.glib}/include/gio-unix-2.0"; + + propagatedUserEnvPkgs = [ gnome3.gnome_themes_standard ]; + + buildInputs = [ bash pkgconfig gtk3 glib intltool itstool + libxslt libtool libsecret libpwquality cracklib + libnotify libdvdread libcanberra_gtk3 docbook_xsl + gdk_pixbuf gnome3.defaultIconTheme + librsvg udisks2 gnome3.gnome_settings_daemon + gnome3.gsettings_desktop_schemas makeWrapper libxml2 ]; + + preFixup = '' + wrapProgram "$out/bin/gnome-disks" \ + --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \ + --prefix XDG_DATA_DIRS : "${gnome3.gnome_themes_standard}/share:$out/share:$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH" + ''; + + meta = with stdenv.lib; { + homepage = http://en.wikipedia.org/wiki/GNOME_Disks; + description = "A udisks graphical front-end"; + maintainers = gnome3.maintainers; + license = licenses.gpl2; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/gnome-disk-utility/src.nix b/pkgs/desktops/gnome-3/3.18/core/gnome-disk-utility/src.nix new file mode 100644 index 00000000000..29589586625 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/gnome-disk-utility/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "gnome-disk-utility-3.18.0"; + + src = fetchurl { + url = mirror://gnome/sources/gnome-disk-utility/3.18/gnome-disk-utility-3.18.0.tar.xz; + sha256 = "e7363107e40fb1e7fb9f65e37194c0e8da3928f9ec35a4b27a5c439c64e51686"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/gnome-font-viewer/default.nix b/pkgs/desktops/gnome-3/3.18/core/gnome-font-viewer/default.nix new file mode 100644 index 00000000000..54767dbc4c5 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/gnome-font-viewer/default.nix @@ -0,0 +1,31 @@ +{ stdenv, intltool, fetchurl +, pkgconfig, gtk3, glib +, bash, makeWrapper, itstool +, gnome3, librsvg, gdk_pixbuf }: + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + doCheck = true; + + NIX_CFLAGS_COMPILE = "-I${gnome3.glib}/include/gio-unix-2.0"; + + propagatedUserEnvPkgs = [ gnome3.gnome_themes_standard ]; + + buildInputs = [ pkgconfig gtk3 glib intltool itstool gnome3.gnome_desktop + gdk_pixbuf gnome3.defaultIconTheme librsvg + gnome3.gsettings_desktop_schemas makeWrapper ]; + + preFixup = '' + wrapProgram "$out/bin/gnome-font-viewer" \ + --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \ + --prefix XDG_DATA_DIRS : "${gnome3.gnome_themes_standard}/share:$out/share:$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH" + ''; + + meta = with stdenv.lib; { + description = "Program that can preview fonts and create thumbnails for fonts"; + maintainers = gnome3.maintainers; + license = licenses.gpl2; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/gnome-font-viewer/src.nix b/pkgs/desktops/gnome-3/3.18/core/gnome-font-viewer/src.nix new file mode 100644 index 00000000000..256890e8079 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/gnome-font-viewer/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "gnome-font-viewer-3.16.2"; + + src = fetchurl { + url = mirror://gnome/sources/gnome-font-viewer/3.16/gnome-font-viewer-3.16.2.tar.xz; + sha256 = "f5367417d926d1dbe175aceb8eb4d2733d723a237428f130edd4b4023c0dc1cf"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/gnome-keyring/default.nix b/pkgs/desktops/gnome-3/3.18/core/gnome-keyring/default.nix new file mode 100644 index 00000000000..8e755383dd6 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/gnome-keyring/default.nix @@ -0,0 +1,34 @@ +{ stdenv, fetchurl, pkgconfig, dbus, libgcrypt, libtasn1, pam, python, glib, libxslt +, intltool, pango, gcr, gdk_pixbuf, atk, p11_kit, makeWrapper +, docbook_xsl_ns, docbook_xsl, gnome3 }: + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + buildInputs = with gnome3; [ + dbus libgcrypt pam python gtk3 gconf libgnome_keyring + pango gcr gdk_pixbuf atk p11_kit makeWrapper + ]; + + propagatedBuildInputs = [ glib libtasn1 libxslt ]; + + nativeBuildInputs = [ pkgconfig intltool docbook_xsl_ns docbook_xsl ]; + + configureFlags = [ + "--with-ca-certificates=/etc/ssl/certs/ca-certificates.crt" # NixOS hardcoded path + "--with-pkcs11-config=$$out/etc/pkcs11/" # installation directories + "--with-pkcs11-modules=$$out/lib/pkcs11/" + ]; + + preFixup = '' + wrapProgram "$out/bin/gnome-keyring" \ + --prefix XDG_DATA_DIRS : "${glib}/share:$out/share:$GSETTINGS_SCHEMAS_PATH" + wrapProgram "$out/bin/gnome-keyring-daemon" \ + --prefix XDG_DATA_DIRS : "${glib}/share:$out/share:$GSETTINGS_SCHEMAS_PATH" + ''; + + meta = with stdenv.lib; { + platforms = platforms.linux; + maintainers = gnome3.maintainers; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/gnome-keyring/src.nix b/pkgs/desktops/gnome-3/3.18/core/gnome-keyring/src.nix new file mode 100644 index 00000000000..ccd1488fd30 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/gnome-keyring/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "gnome-keyring-3.16.0"; + + src = fetchurl { + url = mirror://gnome/sources/gnome-keyring/3.16/gnome-keyring-3.16.0.tar.xz; + sha256 = "15a3bb8c53855a4ff0dbbdfbe4ec3df206c32048f50bdc76a51f8e3e14ece1f5"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/gnome-menus/default.nix b/pkgs/desktops/gnome-3/3.18/core/gnome-menus/default.nix new file mode 100644 index 00000000000..90209634fbf --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/gnome-menus/default.nix @@ -0,0 +1,22 @@ +{ stdenv, fetchurl, intltool, pkgconfig, glib, gobjectIntrospection }: + +stdenv.mkDerivation rec { + name = "gnome-menus-${version}"; + version = "3.10.1"; + + src = fetchurl { + url = "mirror://gnome/sources/gnome-menus/3.10/${name}.tar.xz"; + sha256 = "0wcacs1vk3pld8wvrwq7fdrm11i56nrajkrp6j1da6jc4yx0m5a6"; + }; + + makeFlags = "INTROSPECTION_GIRDIR=$(out)/share/gir-1.0/ INTROSPECTION_TYPELIBDIR=$(out)/lib/girepository-1.0"; + + buildInputs = [ intltool pkgconfig glib gobjectIntrospection ]; + + meta = { + homepage = "http://www.gnome.org"; + description = "Gnome menu specification"; + + platforms = stdenv.lib.platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/gnome-online-accounts/default.nix b/pkgs/desktops/gnome-3/3.18/core/gnome-online-accounts/default.nix new file mode 100644 index 00000000000..d810fbb862b --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/gnome-online-accounts/default.nix @@ -0,0 +1,33 @@ +{ stdenv, fetchurl, pkgconfig, glib, libxslt, gtk, makeWrapper +, webkitgtk, json_glib, rest, libsecret, dbus_glib, gnome_common +, telepathy_glib, intltool, dbus_libs, icu, autoreconfHook +, libsoup, docbook_xsl_ns, docbook_xsl, gnome3 +}: + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + NIX_CFLAGS_COMPILE = "-I${dbus_glib}/include/dbus-1.0 -I${dbus_libs}/include/dbus-1.0"; + + enableParallelBuilding = true; + + preAutoreconf = '' + sed '/disable-settings/d' -i configure.ac + sed "/if HAVE_INTROSPECTION/a INTROSPECTION_COMPILER_ARGS = --shared-library=$out/lib/libgoa-1.0.so" -i src/goa/Makefile.am + ''; + + buildInputs = [ pkgconfig glib libxslt gtk webkitgtk json_glib rest gnome_common makeWrapper + libsecret dbus_glib telepathy_glib intltool icu libsoup autoreconfHook + docbook_xsl_ns docbook_xsl gnome3.defaultIconTheme ]; + + preFixup = '' + for f in "$out/libexec/"*; do + wrapProgram "$f" --prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH" + done + ''; + + meta = with stdenv.lib; { + platforms = platforms.linux; + maintainers = gnome3.maintainers; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/gnome-online-accounts/src.nix b/pkgs/desktops/gnome-3/3.18/core/gnome-online-accounts/src.nix new file mode 100644 index 00000000000..3038209042e --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/gnome-online-accounts/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "gnome-online-accounts-3.18.0"; + + src = fetchurl { + url = mirror://gnome/sources/gnome-online-accounts/3.18/gnome-online-accounts-3.18.0.tar.xz; + sha256 = "fc2dac96551746576759bd14f9b322bae1dd0aeedc0e755065ddf5eaaefacd34"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/gnome-online-miners/default.nix b/pkgs/desktops/gnome-3/3.18/core/gnome-online-miners/default.nix new file mode 100644 index 00000000000..4c879b75098 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/gnome-online-miners/default.nix @@ -0,0 +1,37 @@ +{ stdenv, fetchurl, pkgconfig, glib, gnome3, libxml2 +, libsoup, json_glib, gmp, openssl, makeWrapper }: + +let + majVer = "3.14"; +in stdenv.mkDerivation rec { + name = "gnome-online-miners-${majVer}.2"; + + src = fetchurl { + url = "mirror://gnome/sources/gnome-online-miners/${majVer}/${name}.tar.xz"; + sha256 = "0bbak8srcrvnw18s4ls5mqaamx9nqdi93lij6yjs0a3q320k22xl"; + }; + + doCheck = true; + + buildInputs = [ pkgconfig glib gnome3.libgdata libxml2 libsoup gmp openssl + gnome3.grilo gnome3.libzapojit gnome3.grilo-plugins + gnome3.gnome_online_accounts makeWrapper gnome3.libmediaart + gnome3.tracker gnome3.gfbgraph json_glib gnome3.rest ]; + + enableParallelBuilding = true; + + preFixup = '' + for f in $out/libexec/*; do + wrapProgram "$f" \ + --prefix GRL_PLUGIN_PATH : "${gnome3.grilo-plugins}/lib/grilo-0.2" + done + ''; + + meta = with stdenv.lib; { + homepage = https://wiki.gnome.org/Projects/GnomeOnlineMiners; + description = "A set of crawlers that go through your online content and index them locally in Tracker"; + maintainers = gnome3.maintainers; + license = licenses.gpl2; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/gnome-screenshot/default.nix b/pkgs/desktops/gnome-3/3.18/core/gnome-screenshot/default.nix new file mode 100644 index 00000000000..763fc990bda --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/gnome-screenshot/default.nix @@ -0,0 +1,31 @@ +{ stdenv, intltool, fetchurl, pkgconfig, libcanberra_gtk3 +, bash, gtk3, glib, makeWrapper +, itstool, gnome3, librsvg, gdk_pixbuf }: + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + doCheck = true; + + NIX_CFLAGS_COMPILE = "-I${gnome3.glib}/include/gio-unix-2.0"; + + propagatedUserEnvPkgs = [ gnome3.gnome_themes_standard ]; + propagatedBuildInputs = [ gdk_pixbuf gnome3.defaultIconTheme librsvg ]; + + buildInputs = [ bash pkgconfig gtk3 glib intltool itstool libcanberra_gtk3 + gnome3.gsettings_desktop_schemas makeWrapper ]; + + preFixup = '' + wrapProgram "$out/bin/gnome-screenshot" \ + --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \ + --prefix XDG_DATA_DIRS : "${gtk3}/share:${gnome3.gnome_themes_standard}/share:$out/share:$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH" + ''; + + meta = with stdenv.lib; { + homepage = http://en.wikipedia.org/wiki/GNOME_Screenshot; + description = "Utility used in the GNOME desktop environment for taking screenshots"; + maintainers = gnome3.maintainers; + license = licenses.gpl2; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/gnome-screenshot/src.nix b/pkgs/desktops/gnome-3/3.18/core/gnome-screenshot/src.nix new file mode 100644 index 00000000000..af6007fa233 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/gnome-screenshot/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "gnome-screenshot-3.18.0"; + + src = fetchurl { + url = mirror://gnome/sources/gnome-screenshot/3.18/gnome-screenshot-3.18.0.tar.xz; + sha256 = "eba64dbf4acf0ab8222fec549d0a4f2dd7dbd51c255e7978dedf1f5c06a98841"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/gnome-session/default.nix b/pkgs/desktops/gnome-3/3.18/core/gnome-session/default.nix new file mode 100644 index 00000000000..dedad0729d1 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/gnome-session/default.nix @@ -0,0 +1,25 @@ +{ fetchurl, stdenv, pkgconfig, gnome3, glib, dbus_glib, json_glib, upower +, libxslt, intltool, makeWrapper, systemd, xorg }: + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + configureFlags = "--enable-systemd"; + + buildInputs = with gnome3; + [ pkgconfig glib gnome_desktop gtk dbus_glib json_glib libxslt + gnome3.gnome_settings_daemon xorg.xtrans gnome3.defaultIconTheme + gsettings_desktop_schemas upower intltool gconf makeWrapper systemd ]; + + preFixup = '' + wrapProgram "$out/bin/gnome-session" \ + --prefix GI_TYPELIB_PATH : "$GI_TYPELIB_PATH" \ + --suffix XDG_DATA_DIRS : "$out/share:$GSETTINGS_SCHEMAS_PATH" + ''; + + meta = with stdenv.lib; { + platforms = platforms.linux; + maintainers = gnome3.maintainers; + }; + +} diff --git a/pkgs/desktops/gnome-3/3.18/core/gnome-session/src.nix b/pkgs/desktops/gnome-3/3.18/core/gnome-session/src.nix new file mode 100644 index 00000000000..211cc140a88 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/gnome-session/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "gnome-session-3.18.0"; + + src = fetchurl { + url = mirror://gnome/sources/gnome-session/3.18/gnome-session-3.18.0.tar.xz; + sha256 = "ba23d0e41e90f238103835603eded0f30a7cc56506b68168899377785aec706f"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/gnome-settings-daemon/default.nix b/pkgs/desktops/gnome-3/3.18/core/gnome-settings-daemon/default.nix new file mode 100644 index 00000000000..18a6bdf43bf --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/gnome-settings-daemon/default.nix @@ -0,0 +1,31 @@ +{ fetchurl, stdenv, pkgconfig, gnome3, intltool, glib, libnotify, lcms2, libXtst +, libxkbfile, libpulseaudio, libcanberra_gtk3, upower, colord, libgweather, polkit +, geoclue2, librsvg, xf86_input_wacom, udev, libwacom, libxslt, libtool, networkmanager +, docbook_xsl, docbook_xsl_ns, makeWrapper, ibus, xkeyboard_config }: + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + # fatal error: gio/gunixfdlist.h: No such file or directory + NIX_CFLAGS_COMPILE = "-I${glib}/include/gio-unix-2.0"; + + buildInputs = with gnome3; + [ intltool pkgconfig ibus gtk glib gsettings_desktop_schemas networkmanager + libnotify gnome_desktop lcms2 libXtst libxkbfile libpulseaudio + libcanberra_gtk3 upower colord libgweather xkeyboard_config + polkit geocode_glib geoclue2 librsvg xf86_input_wacom udev libwacom libxslt + libtool docbook_xsl docbook_xsl_ns makeWrapper gnome_themes_standard ]; + + preFixup = '' + wrapProgram "$out/libexec/gnome-settings-daemon-localeexec" \ + --prefix GI_TYPELIB_PATH : "$GI_TYPELIB_PATH" \ + --prefix PATH : "${glib}/bin" \ + --prefix XDG_DATA_DIRS : "$out/share:$GSETTINGS_SCHEMAS_PATH" + ''; + + meta = with stdenv.lib; { + platforms = platforms.linux; + maintainers = gnome3.maintainers; + }; + +} diff --git a/pkgs/desktops/gnome-3/3.18/core/gnome-settings-daemon/src.nix b/pkgs/desktops/gnome-3/3.18/core/gnome-settings-daemon/src.nix new file mode 100644 index 00000000000..d7b459ae0ea --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/gnome-settings-daemon/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "gnome-settings-daemon-3.18.0"; + + src = fetchurl { + url = mirror://gnome/sources/gnome-settings-daemon/3.18/gnome-settings-daemon-3.18.0.tar.xz; + sha256 = "8d3ef9c18538831ed89122fee0bdaca68b0e482a18b3c4388c4e672aba1b3cd5"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/gnome-shell-extensions/default.nix b/pkgs/desktops/gnome-3/3.18/core/gnome-shell-extensions/default.nix new file mode 100644 index 00000000000..e9eae87f14e --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/gnome-shell-extensions/default.nix @@ -0,0 +1,19 @@ +{ stdenv, intltool, fetchurl, libgtop, pkgconfig, gtk3, glib +, bash, makeWrapper, itstool, gnome3, file }: + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + doCheck = true; + + buildInputs = [ pkgconfig gtk3 glib libgtop intltool itstool + makeWrapper file ]; + + meta = with stdenv.lib; { + homepage = https://wiki.gnome.org/Projects/GnomeShell/Extensions; + description = "Modify and extend GNOME Shell functionality and behavior"; + maintainers = gnome3.maintainers; + license = licenses.gpl2; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/gnome-shell-extensions/src.nix b/pkgs/desktops/gnome-3/3.18/core/gnome-shell-extensions/src.nix new file mode 100644 index 00000000000..ed51bc4b200 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/gnome-shell-extensions/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "gnome-shell-extensions-3.18.0"; + + src = fetchurl { + url = mirror://gnome/sources/gnome-shell-extensions/3.18/gnome-shell-extensions-3.18.0.tar.xz; + sha256 = "a5fb88004b021e4a16f4fa5eb3d7d6f0903db1288023c18c0f9825152fa0f5f7"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/gnome-shell/default.nix b/pkgs/desktops/gnome-3/3.18/core/gnome-shell/default.nix new file mode 100644 index 00000000000..899efc5443b --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/gnome-shell/default.nix @@ -0,0 +1,57 @@ +{ fetchurl, stdenv, pkgconfig, gnome3, json_glib, libcroco, intltool, libsecret +, python3, libsoup, polkit, clutter, networkmanager, docbook_xsl, docbook_xsl_ns, at_spi2_core +, libstartup_notification, telepathy_glib, telepathy_logger, libXtst, p11_kit, unzip +, sqlite, libgweather, libcanberra_gtk3 +, libpulseaudio, libical, libtool, nss, gobjectIntrospection, gstreamer, makeWrapper +, accountsservice, gdk_pixbuf, gdm, upower, ibus, networkmanagerapplet, librsvg }: + +# http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/gnome-base/gnome-shell/gnome-shell-3.10.2.1.ebuild?revision=1.3&view=markup + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + # Needed to find /etc/NetworkManager/VPN + configureFlags = [ "--sysconfdir=/etc" ]; + + buildInputs = with gnome3; + [ gsettings_desktop_schemas gnome_keyring gnome-menus glib gcr json_glib accountsservice + libcroco intltool libsecret pkgconfig python3 libsoup polkit libcanberra gdk_pixbuf librsvg + clutter networkmanager libstartup_notification telepathy_glib docbook_xsl docbook_xsl_ns + libXtst p11_kit networkmanagerapplet gjs mutter libpulseaudio caribou evolution_data_server + libical libtool nss gobjectIntrospection gtk gstreamer makeWrapper gdm + libcanberra_gtk3 gnome_control_center + defaultIconTheme sqlite gnome3.gnome-bluetooth + libgweather # not declared at build time, but typelib is needed at runtime + gnome3.gnome-clocks # schemas needed + at_spi2_core upower ibus gnome_session gnome_desktop telepathy_logger gnome3.gnome_settings_daemon ]; + + installFlags = [ "keysdir=$(out)/share/gnome-control-center/keybindings" ]; + + preBuild = '' + patchShebangs src/data-to-c.pl + substituteInPlace data/Makefile --replace " install-keysDATA" "" + ''; + + preFixup = with gnome3; '' + wrapProgram "$out/bin/gnome-shell" \ + --prefix PATH : "${unzip}/bin" \ + --prefix GI_TYPELIB_PATH : "$GI_TYPELIB_PATH" \ + --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \ + --suffix XDG_DATA_DIRS : "${gnome_themes_standard}/share:$out/share:$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH" + + wrapProgram "$out/libexec/gnome-shell-calendar-server" \ + --prefix XDG_DATA_DIRS : "${evolution_data_server}/share:$out/share:$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH" + + echo "${unzip}/bin" > $out/${passthru.mozillaPlugin}/extra-bin-path + ''; + + passthru = { + mozillaPlugin = "/lib/mozilla/plugins"; + }; + + meta = with stdenv.lib; { + platforms = platforms.linux; + maintainers = gnome3.maintainers; + }; + +} diff --git a/pkgs/desktops/gnome-3/3.18/core/gnome-shell/src.nix b/pkgs/desktops/gnome-3/3.18/core/gnome-shell/src.nix new file mode 100644 index 00000000000..340a2e67252 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/gnome-shell/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "gnome-shell-3.18.0"; + + src = fetchurl { + url = mirror://gnome/sources/gnome-shell/3.18/gnome-shell-3.18.0.tar.xz; + sha256 = "1f0f276c45c0979c72700121cb0f711aea343c4393eb3d5ddd6b311d8dc83c99"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/gnome-system-log/default.nix b/pkgs/desktops/gnome-3/3.18/core/gnome-system-log/default.nix new file mode 100644 index 00000000000..716f92a072d --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/gnome-system-log/default.nix @@ -0,0 +1,36 @@ +{ stdenv, intltool, fetchurl, pkgconfig +, bash, gtk3, glib, makeWrapper +, itstool, gnome3, librsvg, gdk_pixbuf, libxml2 }: + +stdenv.mkDerivation rec { + name = "gnome-system-log-3.9.90"; + + src = fetchurl { + url = "mirror://gnome/sources/gnome-system-log/3.9/${name}.tar.xz"; + sha256 = "9eeb51982d347aa7b33703031e2c1d8084201374665425cd62199649b29a5411"; + }; + + doCheck = true; + + NIX_CFLAGS_COMPILE = "-I${gnome3.glib}/include/gio-unix-2.0"; + + propagatedUserEnvPkgs = [ gnome3.gnome_themes_standard ]; + propagatedBuildInputs = [ gdk_pixbuf gnome3.defaultIconTheme librsvg ]; + + buildInputs = [ bash pkgconfig gtk3 glib intltool itstool + gnome3.gsettings_desktop_schemas makeWrapper libxml2 ]; + + preFixup = '' + wrapProgram "$out/bin/gnome-system-log" \ + --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \ + --prefix XDG_DATA_DIRS : "${gtk3}/share:${gnome3.gnome_themes_standard}/share:$out/share:$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH" + ''; + + meta = with stdenv.lib; { + homepage = https://help.gnome.org/users/gnome-system-log/3.9/; + description = "Graphical, menu-driven viewer that you can use to view and monitor your system logs"; + maintainers = gnome3.maintainers; + license = licenses.gpl2; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/gnome-system-monitor/default.nix b/pkgs/desktops/gnome-3/3.18/core/gnome-system-monitor/default.nix new file mode 100644 index 00000000000..bdbdefecf22 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/gnome-system-monitor/default.nix @@ -0,0 +1,32 @@ +{ stdenv, intltool, fetchurl, pkgconfig, gtkmm3, libxml2 +, bash, gtk3, glib, makeWrapper +, itstool, gnome3, librsvg, gdk_pixbuf, libgtop }: + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + doCheck = true; + + propagatedUserEnvPkgs = [ gnome3.gnome_themes_standard ]; + + buildInputs = [ bash pkgconfig gtk3 glib intltool itstool libxml2 + gtkmm3 libgtop makeWrapper + gdk_pixbuf gnome3.defaultIconTheme librsvg + gnome3.gsettings_desktop_schemas ]; + + preFixup = '' + wrapProgram "$out/bin/gnome-system-monitor" \ + --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \ + --prefix XDG_DATA_DIRS : "${gnome3.gnome_themes_standard}/share:$out/share:$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH" + ''; + + enableParallelBuilding = true; + + meta = with stdenv.lib; { + homepage = https://help.gnome.org/users/gnome-system-monitor/3.12/; + description = "System Monitor shows you what programs are running and how much processor time, memory, and disk space are being used"; + maintainers = gnome3.maintainers; + license = licenses.gpl2; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/gnome-system-monitor/src.nix b/pkgs/desktops/gnome-3/3.18/core/gnome-system-monitor/src.nix new file mode 100644 index 00000000000..a4c87752e78 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/gnome-system-monitor/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "gnome-system-monitor-3.18.0.1"; + + src = fetchurl { + url = mirror://gnome/sources/gnome-system-monitor/3.18/gnome-system-monitor-3.18.0.1.tar.xz; + sha256 = "71ff8db2fa3eb53d8f54ffd612c6679b231a9d69c13adb91cf63421425953b10"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/gnome-terminal/default.nix b/pkgs/desktops/gnome-3/3.18/core/gnome-terminal/default.nix new file mode 100644 index 00000000000..3bbb25ca5c1 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/gnome-terminal/default.nix @@ -0,0 +1,28 @@ +{ stdenv, fetchurl, pkgconfig, cairo, libxml2, gnome3, pango +, gnome_doc_utils, intltool, libX11, which, libuuid, vala +, desktop_file_utils, itstool, makeWrapper, appdata-tools }: + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + buildInputs = [ gnome3.gtk gnome3.gsettings_desktop_schemas gnome3.vte appdata-tools + gnome3.dconf itstool makeWrapper gnome3.nautilus vala ]; + + nativeBuildInputs = [ pkgconfig intltool gnome_doc_utils which libuuid libxml2 desktop_file_utils ]; + + # FIXME: enable for gnome3 + configureFlags = [ "--disable-search-provider" "--disable-migration" ]; + + preFixup = '' + for f in "$out/libexec/gnome-terminal-server"; do + wrapProgram "$f" \ + --prefix XDG_DATA_DIRS : "$out/share:$GSETTINGS_SCHEMAS_PATH" \ + --prefix GIO_EXTRA_MODULES : "${gnome3.dconf}/lib/gio/modules" + done + ''; + + meta = with stdenv.lib; { + platforms = platforms.linux; + maintainers = gnome3.maintainers; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/gnome-terminal/src.nix b/pkgs/desktops/gnome-3/3.18/core/gnome-terminal/src.nix new file mode 100644 index 00000000000..dff213cc389 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/gnome-terminal/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "gnome-terminal-3.18.0"; + + src = fetchurl { + url = mirror://gnome/sources/gnome-terminal/3.18/gnome-terminal-3.18.0.tar.xz; + sha256 = "776642502b57b7a6b5f099291b660c0b4a4ff2b3024d15a2f5b33c4286c9dce6"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/gnome-themes-standard/default.nix b/pkgs/desktops/gnome-3/3.18/core/gnome-themes-standard/default.nix new file mode 100644 index 00000000000..a33252a934c --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/gnome-themes-standard/default.nix @@ -0,0 +1,14 @@ +{ stdenv, fetchurl, intltool, gtk3, gnome3, librsvg, pkgconfig, pango, atk, gtk2 +, gdk_pixbuf }: + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + buildInputs = [ intltool gtk3 librsvg pkgconfig pango atk gtk2 gdk_pixbuf + gnome3.defaultIconTheme ]; + + meta = with stdenv.lib; { + platforms = platforms.linux; + maintainers = gnome3.maintainers; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/gnome-themes-standard/src.nix b/pkgs/desktops/gnome-3/3.18/core/gnome-themes-standard/src.nix new file mode 100644 index 00000000000..c352242537a --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/gnome-themes-standard/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "gnome-themes-standard-3.18.0"; + + src = fetchurl { + url = mirror://gnome/sources/gnome-themes-standard/3.18/gnome-themes-standard-3.18.0.tar.xz; + sha256 = "e646eb04c225282b7df7fff65741adaad4cf9ed2c12616b7310e7edd27d2bacb"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/gnome-user-docs/default.nix b/pkgs/desktops/gnome-3/3.18/core/gnome-user-docs/default.nix new file mode 100644 index 00000000000..4f02673e036 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/gnome-user-docs/default.nix @@ -0,0 +1,15 @@ +{ stdenv, fetchurl, pkgconfig, file, gnome3, itstool, libxml2, intltool }: + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + buildInputs = [ pkgconfig gnome3.yelp itstool libxml2 intltool ]; + + meta = with stdenv.lib; { + homepage = "https://help.gnome.org/users/gnome-help/${gnome3.version}"; + description = "User and system administration help for the GNOME desktop"; + maintainers = gnome3.maintainers; + license = licenses.cc-by-30; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/gnome-user-docs/src.nix b/pkgs/desktops/gnome-3/3.18/core/gnome-user-docs/src.nix new file mode 100644 index 00000000000..0187516061b --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/gnome-user-docs/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "gnome-user-docs-3.18.0"; + + src = fetchurl { + url = mirror://gnome/sources/gnome-user-docs/3.18/gnome-user-docs-3.18.0.tar.xz; + sha256 = "c515d2c8b051ffb05ec497e4231d1ceecec824dc4fca45425d21295bb592e952"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/gnome-user-share/default.nix b/pkgs/desktops/gnome-3/3.18/core/gnome-user-share/default.nix new file mode 100644 index 00000000000..49ad40912c6 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/gnome-user-share/default.nix @@ -0,0 +1,45 @@ +{ stdenv, intltool, fetchurl, apacheHttpd_2_2, nautilus +, pkgconfig, gtk3, glib, libxml2, gnused +, bash, makeWrapper, itstool, libnotify, libtool, mod_dnssd +, gnome3, librsvg, gdk_pixbuf, file, libcanberra_gtk3 }: + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + doCheck = true; + + NIX_CFLAGS_COMPILE = "-I${gnome3.glib}/include/gio-unix-2.0"; + + preConfigure = '' + sed -e 's,^LoadModule dnssd_module.\+,LoadModule dnssd_module ${mod_dnssd}/modules/mod_dnssd.so,' -i data/dav_user_2.2.conf + ''; + + configureFlags = [ "--with-httpd=${apacheHttpd_2_2}/bin/httpd" + "--with-modules-path=${apacheHttpd_2_2}/modules" + "--disable-bluetooth" + "--with-nautilusdir=$(out)/lib/nautilus/extensions-3.0" ]; + + buildInputs = [ pkgconfig gtk3 glib intltool itstool libxml2 libtool + makeWrapper file gdk_pixbuf gnome3.defaultIconTheme librsvg + nautilus libnotify libcanberra_gtk3 ]; + + postInstall = '' + mkdir -p $out/share/gsettings-schemas/$name + mv $out/share/glib-2.0 $out/share/gsettings-schemas/$name + ${glib}/bin/glib-compile-schemas $out/share/gsettings-schemas/$name/glib-2.0/schemas + ''; + + preFixup = '' + wrapProgram "$out/libexec/gnome-user-share-webdav" \ + --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \ + --prefix XDG_DATA_DIRS : "$out/share:$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH" + ''; + + meta = with stdenv.lib; { + homepage = https://help.gnome.org/users/gnome-user-share/3.8; + description = "Service that exports the contents of the Public folder in your home directory on the local network"; + maintainers = gnome3.maintainers; + license = licenses.gpl2; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/gnome-user-share/src.nix b/pkgs/desktops/gnome-3/3.18/core/gnome-user-share/src.nix new file mode 100644 index 00000000000..e0a283d896d --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/gnome-user-share/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "gnome-user-share-3.18.0"; + + src = fetchurl { + url = mirror://gnome/sources/gnome-user-share/3.18/gnome-user-share-3.18.0.tar.xz; + sha256 = "feb3bed59193eafea31f563ed7eab5f066aa5f86d4a89f067b162653d168d3fc"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/grilo-plugins/default.nix b/pkgs/desktops/gnome-3/3.18/core/grilo-plugins/default.nix new file mode 100644 index 00000000000..a236238c257 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/grilo-plugins/default.nix @@ -0,0 +1,27 @@ +{ stdenv, fetchurl, pkgconfig, file, intltool, glib, sqlite +, gnome3, libxml2, gupnp, gssdp, lua5, liboauth, gupnp_av +, gmime, json_glib, avahi, tracker, itstool }: + +stdenv.mkDerivation rec { + name = "grilo-plugins-0.2.13"; + + src = fetchurl { + url = "mirror://gnome/sources/grilo-plugins/0.2/${name}.tar.xz"; + sha256 = "008jwm5ydl0k25p3d2fkcail40fj9y3qknihxb5fg941p8qlhm55"; + }; + + installFlags = [ "GRL_PLUGINS_DIR=$(out)/lib/grilo-0.2" ]; + + buildInputs = [ pkgconfig gnome3.grilo libxml2 gupnp gssdp gnome3.libgdata + lua5 liboauth gupnp_av sqlite gnome3.gnome_online_accounts + gnome3.totem-pl-parser gnome3.rest gmime json_glib + avahi gnome3.libmediaart tracker intltool itstool ]; + + meta = with stdenv.lib; { + homepage = https://wiki.gnome.org/action/show/Projects/Grilo; + description = "A collection of plugins for the Grilo framework"; + maintainers = gnome3.maintainers; + license = licenses.lgpl2; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/grilo/default.nix b/pkgs/desktops/gnome-3/3.18/core/grilo/default.nix new file mode 100644 index 00000000000..16dfb638a24 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/grilo/default.nix @@ -0,0 +1,33 @@ +{ stdenv, fetchurl, pkgconfig, file, intltool, glib +, libxml2, gnome3, gobjectIntrospection, libsoup }: + +stdenv.mkDerivation rec { + name = "grilo-0.2.12"; + + src = fetchurl { + url = "mirror://gnome/sources/grilo/0.2/${name}.tar.xz"; + sha256 = "11bvc7rsrjjwz8hp67p3fn8zmywrpawrcbi3vgw8b0dwa0sndd2m"; + }; + + setupHook = ./setup-hook.sh; + + configureFlags = [ "--enable-grl-pls" "--enable-grl-net" ]; + + preConfigure = '' + for f in src/Makefile.in libs/pls/Makefile.in libs/net/Makefile.in; do + substituteInPlace $f --replace @INTROSPECTION_GIRDIR@ "$out/share/gir-1.0/" + substituteInPlace $f --replace @INTROSPECTION_TYPELIBDIR@ "$out/lib/girepository-1.0" + done + ''; + + buildInputs = [ pkgconfig file intltool glib libxml2 libsoup + gnome3.totem-pl-parser gobjectIntrospection ]; + + meta = with stdenv.lib; { + homepage = https://wiki.gnome.org/action/show/Projects/Grilo; + description = "Framework that provides access to various sources of multimedia content, using a pluggable system"; + maintainers = gnome3.maintainers; + license = licenses.lgpl2; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/grilo/setup-hook.sh b/pkgs/desktops/gnome-3/3.18/core/grilo/setup-hook.sh new file mode 100644 index 00000000000..bc93dddec38 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/grilo/setup-hook.sh @@ -0,0 +1,7 @@ +make_grilo_find_plugins() { + if [ -d "$1"/lib/grilo-0.2 ]; then + addToSearchPath GRL_PLUGIN_PATH "$1/lib/grilo-0.2" + fi +} + +envHooks+=(make_grilo_find_plugins) diff --git a/pkgs/desktops/gnome-3/3.18/core/gsettings-desktop-schemas/default.nix b/pkgs/desktops/gnome-3/3.18/core/gsettings-desktop-schemas/default.nix new file mode 100644 index 00000000000..5123cadbdaf --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/gsettings-desktop-schemas/default.nix @@ -0,0 +1,22 @@ +{ stdenv, fetchurl, pkgconfig, intltool, glib, gobjectIntrospection + # just for passthru +, gnome3, gtk3, gsettings_desktop_schemas }: + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + postPatch = '' + for file in "background" "screensaver"; do + substituteInPlace "schemas/org.gnome.desktop.$file.gschema.xml.in" \ + --replace "@datadir@" "${gnome3.gnome-backgrounds}/share/" + done + ''; + + buildInputs = [ glib gobjectIntrospection ]; + + nativeBuildInputs = [ pkgconfig intltool ]; + + meta = with stdenv.lib; { + maintainers = gnome3.maintainers; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/gsettings-desktop-schemas/src.nix b/pkgs/desktops/gnome-3/3.18/core/gsettings-desktop-schemas/src.nix new file mode 100644 index 00000000000..047f014d2af --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/gsettings-desktop-schemas/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "gsettings-desktop-schemas-3.18.0"; + + src = fetchurl { + url = mirror://gnome/sources/gsettings-desktop-schemas/3.18/gsettings-desktop-schemas-3.18.0.tar.xz; + sha256 = "ba27337226a96d83f385c0ad192fdfe561c7e7882c61bb326c571be24e41eceb"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/gsound/default.nix b/pkgs/desktops/gnome-3/3.18/core/gsound/default.nix new file mode 100644 index 00000000000..5f255743313 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/gsound/default.nix @@ -0,0 +1,22 @@ +{ stdenv, fetchurl, pkgconfig, glib, libcanberra, gobjectIntrospection, libtool, gnome3 }: + +let + majVer = "1.0"; +in stdenv.mkDerivation rec { + name = "gsound-${majVer}.1"; + + src = fetchurl { + url = "mirror://gnome/sources/gsound/${majVer}/${name}.tar.xz"; + sha256 = "ea0dd94429c0645f2f98824274ef04543fe459dd83a5449a68910acc3ba67f29"; + }; + + buildInputs = [ pkgconfig glib libcanberra gobjectIntrospection libtool ]; + + meta = with stdenv.lib; { + homepage = https://wiki.gnome.org/Projects/GSound; + description = "Small library for playing system sounds"; + maintainers = gnome3.maintainers; + license = licenses.gpl2; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/gtksourceview/default.nix b/pkgs/desktops/gnome-3/3.18/core/gtksourceview/default.nix new file mode 100644 index 00000000000..ea95e39e5b2 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/gtksourceview/default.nix @@ -0,0 +1,22 @@ +{ stdenv, fetchurl, pkgconfig, atk, cairo, glib, gtk3, pango +, libxml2Python, perl, intltool, gettext, gnome3 }: + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + propagatedBuildInputs = [ gtk3 ]; + + buildInputs = [ pkgconfig atk cairo glib pango + libxml2Python perl intltool gettext ]; + + preBuild = '' + substituteInPlace gtksourceview/gtksourceview-utils.c --replace "@NIX_SHARE_PATH@" "$out/share" + ''; + + patches = [ ./nix_share_path.patch ]; + + meta = with stdenv.lib; { + platforms = platforms.linux; + maintainers = gnome3.maintainers; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/gtksourceview/nix_share_path.patch b/pkgs/desktops/gnome-3/3.18/core/gtksourceview/nix_share_path.patch new file mode 100644 index 00000000000..c87350167c2 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/gtksourceview/nix_share_path.patch @@ -0,0 +1,11 @@ +--- a/gtksourceview/gtksourceview-utils.c 2014-07-13 16:13:57.418687726 +0200 ++++ b/gtksourceview/gtksourceview-utils.c 2014-07-13 16:14:20.550847767 +0200 +@@ -68,6 +68,8 @@ + basename, + NULL)); + ++ g_ptr_array_add (dirs, g_build_filename ("@NIX_SHARE_PATH@", SOURCEVIEW_DIR, basename, NULL)); ++ + g_ptr_array_add (dirs, NULL); + + return (gchar**) g_ptr_array_free (dirs, FALSE); diff --git a/pkgs/desktops/gnome-3/3.18/core/gtksourceview/src.nix b/pkgs/desktops/gnome-3/3.18/core/gtksourceview/src.nix new file mode 100644 index 00000000000..5bbd2c42474 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/gtksourceview/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "gtksourceview-3.18.0"; + + src = fetchurl { + url = mirror://gnome/sources/gtksourceview/3.18/gtksourceview-3.18.0.tar.xz; + sha256 = "54b111264e6985e26a878dec88ff94fd0a9ae0dc4cfcdf08f4a6b5f655d4b693"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/gucharmap/default.nix b/pkgs/desktops/gnome-3/3.18/core/gucharmap/default.nix new file mode 100644 index 00000000000..a43d3c570ce --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/gucharmap/default.nix @@ -0,0 +1,33 @@ +{ stdenv, intltool, fetchurl, pkgconfig, gtk3 +, glib, desktop_file_utils, bash, appdata-tools +, makeWrapper, gnome3, file, itstool, libxml2 }: + +# TODO: icons and theme still does not work +# use packaged gnome3.adwaita-icon-theme + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + doCheck = true; + + propagatedUserEnvPkgs = [ gnome3.gnome_themes_standard ]; + + preConfigure = "substituteInPlace ./configure --replace /usr/bin/file ${file}/bin/file"; + + buildInputs = [ pkgconfig gtk3 intltool itstool glib appdata-tools + gnome3.yelp_tools libxml2 file desktop_file_utils + gnome3.gsettings_desktop_schemas makeWrapper ]; + + preFixup = '' + wrapProgram "$out/bin/gucharmap" \ + --prefix XDG_DATA_DIRS : "${gnome3.gnome_themes_standard}/share:$out/share:$GSETTINGS_SCHEMAS_PATH" + ''; + + meta = with stdenv.lib; { + homepage = https://wiki.gnome.org/Apps/Gucharmap; + description = "GNOME Character Map, based on the Unicode Character Database"; + maintainers = gnome3.maintainers; + license = licenses.gpl3; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/gucharmap/src.nix b/pkgs/desktops/gnome-3/3.18/core/gucharmap/src.nix new file mode 100644 index 00000000000..01eca1e367b --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/gucharmap/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "gucharmap-3.18.0"; + + src = fetchurl { + url = mirror://gnome/sources/gucharmap/3.18/gucharmap-3.18.0.tar.xz; + sha256 = "121d2652f59a26c9426c96e7c6ca73295c45b675dd4ef0ccdb1b50bc0b4f3830"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/libcroco/default.nix b/pkgs/desktops/gnome-3/3.18/core/libcroco/default.nix new file mode 100644 index 00000000000..e8ddf7096e6 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/libcroco/default.nix @@ -0,0 +1,20 @@ +{ stdenv, fetchurl, pkgconfig, libxml2, glib }: + +stdenv.mkDerivation rec { + name = "libcroco-0.6.8"; + + src = fetchurl { + url = "mirror://gnome/sources/libcroco/0.6/${name}.tar.xz"; + sha256 = "0w453f3nnkbkrly7spx5lx5pf6mwynzmd5qhszprq8amij2invpa"; + }; + + outputs = [ "out" "doc" ]; + + configureFlags = stdenv.lib.optional stdenv.isDarwin "--disable-Bsymbolic"; + + buildInputs = [ pkgconfig libxml2 glib ]; + + meta = with stdenv.lib; { + platforms = platforms.unix; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/libgdata/default.nix b/pkgs/desktops/gnome-3/3.18/core/libgdata/default.nix new file mode 100644 index 00000000000..bedbbee2dfe --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/libgdata/default.nix @@ -0,0 +1,33 @@ +{ stdenv, fetchurl, pkgconfig, intltool, libxml2, glib, json_glib +, gobjectIntrospection, liboauth, gnome3, p11_kit, openssl }: + +let + majorVersion = "0.16"; +in +stdenv.mkDerivation rec { + name = "libgdata-${majorVersion}.1"; + + src = fetchurl { + url = "mirror://gnome/sources/libgdata/${majorVersion}/${name}.tar.xz"; + sha256 = "8740e071ecb2ae0d2a4b9f180d2ae5fdf9dc4c41e7ff9dc7e057f62442800827"; + }; + + # TODO: need libuhttpmock + configureFlags = "--disable-tests"; + + NIX_CFLAGS_COMPILE = "-I${gnome3.libsoup}/include/libsoup-gnome-2.4/ -I${gnome3.gcr}/include/gcr-3 -I${gnome3.gcr}/include/gck-1"; + + buildInputs = with gnome3; + [ pkgconfig libsoup intltool libxml2 glib gobjectIntrospection + liboauth gcr gnome_online_accounts p11_kit openssl ]; + + propagatedBuildInputs = [ json_glib ]; + + meta = with stdenv.lib; { + description = "GData API library"; + maintainers = with maintainers; [ raskin lethalman ]; + platforms = platforms.linux; + license = licenses.lgpl21Plus; + }; + +} diff --git a/pkgs/desktops/gnome-3/3.18/core/libgee/default.nix b/pkgs/desktops/gnome-3/3.18/core/libgee/default.nix new file mode 100644 index 00000000000..4ff13295031 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/libgee/default.nix @@ -0,0 +1,26 @@ +{ stdenv, fetchurl, autoconf, vala, pkgconfig, glib, gobjectIntrospection, gnome3 }: +let + ver_maj = "0.16"; + ver_min = "1"; +in +stdenv.mkDerivation rec { + name = "libgee-${ver_maj}.${ver_min}"; + + src = fetchurl { + url = "mirror://gnome/sources/libgee/${ver_maj}/${name}.tar.xz"; + sha256 = "d95f8ea8e78f843c71b1958fa2fb445e4a325e4821ec23d0d5108d8170e564a5"; + }; + + doCheck = true; + + patches = [ ./fix_introspection_paths.patch ]; + + buildInputs = [ autoconf vala pkgconfig glib gobjectIntrospection ]; + + meta = with stdenv.lib; { + description = "Utility library providing GObject-based interfaces and classes for commonly used data structures"; + license = licenses.lgpl21Plus; + platforms = platforms.linux; + maintainers = gnome3.maintainers; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/libgee/fix_introspection_paths.patch b/pkgs/desktops/gnome-3/3.18/core/libgee/fix_introspection_paths.patch new file mode 100644 index 00000000000..67003f45164 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/libgee/fix_introspection_paths.patch @@ -0,0 +1,13 @@ +--- fix_introspection_paths.patch/configure 2014-01-07 17:43:53.521339338 +0000 ++++ fix_introspection_paths.patch/configure-fix 2014-01-07 17:45:11.068635069 +0000 +@@ -12085,8 +12085,8 @@ + INTROSPECTION_SCANNER=`$PKG_CONFIG --variable=g_ir_scanner gobject-introspection-1.0` + INTROSPECTION_COMPILER=`$PKG_CONFIG --variable=g_ir_compiler gobject-introspection-1.0` + INTROSPECTION_GENERATE=`$PKG_CONFIG --variable=g_ir_generate gobject-introspection-1.0` +- INTROSPECTION_GIRDIR=`$PKG_CONFIG --variable=girdir gobject-introspection-1.0` +- INTROSPECTION_TYPELIBDIR="$($PKG_CONFIG --variable=typelibdir gobject-introspection-1.0)" ++ INTROSPECTION_GIRDIR="${datadir}/gir-1.0" ++ INTROSPECTION_TYPELIBDIR="${libdir}/girepository-1.0" + INTROSPECTION_CFLAGS=`$PKG_CONFIG --cflags gobject-introspection-1.0` + INTROSPECTION_LIBS=`$PKG_CONFIG --libs gobject-introspection-1.0` + INTROSPECTION_MAKEFILE=`$PKG_CONFIG --variable=datadir gobject-introspection-1.0`/gobject-introspection-1.0/Makefile.introspection diff --git a/pkgs/desktops/gnome-3/3.18/core/libgnome-keyring/default.nix b/pkgs/desktops/gnome-3/3.18/core/libgnome-keyring/default.nix new file mode 100644 index 00000000000..c6c9323c010 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/libgnome-keyring/default.nix @@ -0,0 +1,26 @@ +{ stdenv, fetchurl, glib, dbus_libs, libgcrypt, pkgconfig, intltool, gobjectIntrospection }: + +stdenv.mkDerivation rec { + name = "libgnome-keyring-3.12.0"; + + src = fetchurl { + url = "mirror://gnome/sources/libgnome-keyring/3.12/${name}.tar.xz"; + sha256 = "c4c178fbb05f72acc484d22ddb0568f7532c409b0a13e06513ff54b91e947783"; + }; + + propagatedBuildInputs = [ glib gobjectIntrospection dbus_libs libgcrypt ]; + nativeBuildInputs = [ pkgconfig intltool ]; + + meta = { + description = "Framework for managing passwords and other secrets"; + homepage = http://live.gnome.org/GnomeKeyring; + license = with stdenv.lib.licenses; [ gpl2Plus lgpl2Plus ]; + inherit (glib.meta) platforms maintainers; + + longDescription = '' + gnome-keyring is a program that keeps password and other secrets for + users. The library libgnome-keyring is used by applications to integrate + with the gnome-keyring system. + ''; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/libgnomekbd/default.nix b/pkgs/desktops/gnome-3/3.18/core/libgnomekbd/default.nix new file mode 100644 index 00000000000..4939a4ff728 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/libgnomekbd/default.nix @@ -0,0 +1,24 @@ +{ stdenv, fetchurl, pkgconfig, file, intltool, glib, gtk3, libxklavier, makeWrapper, gnome3 }: + +stdenv.mkDerivation rec { + name = "libgnomekbd-3.6.0"; + + src = fetchurl { + url = "mirror://gnome/sources/libgnomekbd/3.6/${name}.tar.xz"; + sha256 = "c41ea5b0f64da470925ba09f9f1b46b26b82d4e433e594b2c71eab3da8856a09"; + }; + + buildInputs = [ pkgconfig file intltool glib gtk3 libxklavier makeWrapper ]; + + preFixup = '' + wrapProgram $out/bin/gkbd-keyboard-display \ + --prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH" + ''; + + meta = with stdenv.lib; { + description = "Keyboard management library"; + maintainers = gnome3.maintainers; + license = licenses.gpl2; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/libgweather/default.nix b/pkgs/desktops/gnome-3/3.18/core/libgweather/default.nix new file mode 100644 index 00000000000..79ede15df8f --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/libgweather/default.nix @@ -0,0 +1,17 @@ +{ stdenv, fetchurl, pkgconfig, libxml2, gtk, intltool, libsoup, gconf +, pango, gdk_pixbuf, atk, tzdata, gnome3 }: + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + makeFlags = "INTROSPECTION_GIRDIR=$(out)/share/gir-1.0/ INTROSPECTION_TYPELIBDIR=$(out)/lib/girepository-1.0"; + + configureFlags = [ "--with-zoneinfo-dir=${tzdata}/share/zoneinfo" ]; + propagatedBuildInputs = [ libxml2 gtk libsoup gconf pango gdk_pixbuf atk gnome3.geocode_glib ]; + nativeBuildInputs = [ pkgconfig intltool ]; + + meta = with stdenv.lib; { + platforms = platforms.linux; + maintainers = gnome3.maintainers; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/libgweather/src.nix b/pkgs/desktops/gnome-3/3.18/core/libgweather/src.nix new file mode 100644 index 00000000000..da56dc3361a --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/libgweather/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "libgweather-3.18.0"; + + src = fetchurl { + url = mirror://gnome/sources/libgweather/3.18/libgweather-3.18.0.tar.xz; + sha256 = "8f4fda67f48c776f2bf955d384de4cc842aacb8d9b2ad87b42d83d0dc5a1cb1f"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/libgxps/default.nix b/pkgs/desktops/gnome-3/3.18/core/libgxps/default.nix new file mode 100644 index 00000000000..72d307f4f1a --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/libgxps/default.nix @@ -0,0 +1,20 @@ +{ stdenv, fetchurl, pkgconfig, glib, cairo, libarchive, freetype, libjpeg, libtiff +, openssl, bzip2, acl, attr +}: + +stdenv.mkDerivation rec { + name = "libgxps-0.2.2"; + + src = fetchurl { + url = "http://ftp.acc.umu.se/pub/GNOME/core/3.10/3.10.2/sources/${name}.tar.xz"; + sha256 = "1gi0b0x0354jyqc48vspk2hg2q1403cf2p9ibj847nzhkdrh9l9r"; + }; + + buildInputs = [ pkgconfig glib cairo libarchive freetype libjpeg libtiff acl openssl bzip2 attr]; + + configureFlags = "--without-liblcms2"; + + meta = with stdenv.lib; { + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/libpeas/default.nix b/pkgs/desktops/gnome-3/3.18/core/libpeas/default.nix new file mode 100644 index 00000000000..8d40d977a80 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/libpeas/default.nix @@ -0,0 +1,20 @@ +{ stdenv, fetchurl, pkgconfig, intltool, gnome3 +, glib, gtk3, gobjectIntrospection, python, pygobject3 +}: + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + buildInputs = [ + intltool pkgconfig glib gtk3 gobjectIntrospection python pygobject3 + gnome3.defaultIconTheme + ]; + + meta = with stdenv.lib; { + description = "A GObject-based plugins engine"; + homepage = "http://ftp.acc.umu.se/pub/GNOME/sources/libpeas/"; + license = licenses.gpl2Plus; + platforms = platforms.linux; + maintainers = gnome3.maintainers; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/libpeas/src.nix b/pkgs/desktops/gnome-3/3.18/core/libpeas/src.nix new file mode 100644 index 00000000000..8a24097bbd6 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/libpeas/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "libpeas-1.16.0"; + + src = fetchurl { + url = mirror://gnome/sources/libpeas/1.16/libpeas-1.16.0.tar.xz; + sha256 = "b093008ecd65f7d55c80517589509698ff15ad41f664b11a3eb88ff461b1454e"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/libzapojit/default.nix b/pkgs/desktops/gnome-3/3.18/core/libzapojit/default.nix new file mode 100644 index 00000000000..5a8117528b6 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/libzapojit/default.nix @@ -0,0 +1,16 @@ +{ stdenv, fetchurl, pkgconfig, glib, intltool, json_glib, rest, libsoup, gtk, gnome_online_accounts }: + +stdenv.mkDerivation rec { + name = "libzapojit-0.0.3"; + + src = fetchurl { + url = "mirror://gnome/sources/libzapojit/0.0/${name}.tar.xz"; + sha256 = "0zn3s7ryjc3k1abj4k55dr2na844l451nrg9s6cvnnhh569zj99x"; + }; + + buildInputs = [ pkgconfig glib intltool json_glib rest libsoup gtk gnome_online_accounts ]; + + meta = with stdenv.lib; { + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/mutter/default.nix b/pkgs/desktops/gnome-3/3.18/core/mutter/default.nix new file mode 100644 index 00000000000..dd08a96cc23 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/mutter/default.nix @@ -0,0 +1,31 @@ +{ fetchurl, stdenv, pkgconfig, gnome3, intltool, gobjectIntrospection, upower, cairo +, pango, cogl, clutter, libstartup_notification, libcanberra, zenity, libcanberra_gtk3 +, libtool, makeWrapper, xkeyboard_config, libxkbfile, libxkbcommon }: + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + # fatal error: gio/gunixfdlist.h: No such file or directory + NIX_CFLAGS_COMPILE = "-I${gnome3.glib}/include/gio-unix-2.0"; + + configureFlags = "--with-x --disable-static --enable-shape --enable-sm --enable-startup-notification --enable-xsync --enable-verbose-mode --with-libcanberra"; + + buildInputs = with gnome3; + [ pkgconfig intltool glib gobjectIntrospection gtk gsettings_desktop_schemas upower + gnome_desktop cairo pango cogl clutter zenity libstartup_notification libcanberra + gnome3.geocode_glib + libcanberra_gtk3 zenity libtool makeWrapper xkeyboard_config libxkbfile libxkbcommon ]; + + preFixup = '' + wrapProgram "$out/bin/mutter" \ + --prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH" + ''; + + patches = [ ./x86.patch ./math.patch ]; + + meta = with stdenv.lib; { + platforms = platforms.linux; + maintainers = gnome3.maintainers; + }; + +} diff --git a/pkgs/desktops/gnome-3/3.18/core/mutter/math.patch b/pkgs/desktops/gnome-3/3.18/core/mutter/math.patch new file mode 100644 index 00000000000..dbdfd93f5e1 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/mutter/math.patch @@ -0,0 +1,10 @@ +--- mutter-3.18.0/src/backends/meta-cursor-renderer.c.orig 2015-09-23 13:54:31.297523343 +0200 ++++ mutter-3.18.0/src/backends/meta-cursor-renderer.c 2015-09-23 13:54:43.728271766 +0200 +@@ -31,6 +31,7 @@ + + #include + #include ++#include + + #include "meta-stage.h" + diff --git a/pkgs/desktops/gnome-3/3.18/core/mutter/src.nix b/pkgs/desktops/gnome-3/3.18/core/mutter/src.nix new file mode 100644 index 00000000000..2f183d1a919 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/mutter/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "mutter-3.18.0"; + + src = fetchurl { + url = mirror://gnome/sources/mutter/3.18/mutter-3.18.0.tar.xz; + sha256 = "9fb287976b9c65f0a2aca09d0e2c4c2748d3d2cfa5f38921dbeafe4cd1d541b1"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/mutter/x86.patch b/pkgs/desktops/gnome-3/3.18/core/mutter/x86.patch new file mode 100644 index 00000000000..bc8829de42f --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/mutter/x86.patch @@ -0,0 +1,20 @@ +--- mutter-3.16.2/src/core/window.c.orig 2015-05-26 10:52:41.382834963 +0200 ++++ mutter-3.16.2/src/core/window.c 2015-05-26 10:53:03.039948034 +0200 +@@ -3499,7 +3499,7 @@ + + static MetaMonitorInfo * + find_monitor_by_winsys_id (MetaWindow *window, +- guint winsys_id) ++ gint winsys_id) + { + int i; + +@@ -3618,7 +3618,7 @@ + */ + + gboolean did_placement; +- guint old_output_winsys_id; ++ gint old_output_winsys_id; + MetaRectangle unconstrained_rect; + MetaRectangle constrained_rect; + MetaMoveResizeResultFlags result = 0; diff --git a/pkgs/desktops/gnome-3/3.18/core/nautilus/default.nix b/pkgs/desktops/gnome-3/3.18/core/nautilus/default.nix new file mode 100644 index 00000000000..f28e86d7bad --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/nautilus/default.nix @@ -0,0 +1,25 @@ +{ stdenv, fetchurl, pkgconfig, libxml2, dbus_glib, shared_mime_info, libexif +, gtk, gnome3, libunique, intltool, gobjectIntrospection +, libnotify, makeWrapper, exempi, librsvg, tracker }: + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + buildInputs = [ pkgconfig libxml2 dbus_glib shared_mime_info libexif gtk libunique intltool exempi librsvg + gnome3.gnome_desktop gnome3.adwaita-icon-theme + gnome3.gsettings_desktop_schemas libnotify makeWrapper tracker ]; + + preFixup = '' + wrapProgram "$out/bin/nautilus" \ + --prefix GI_TYPELIB_PATH : "$GI_TYPELIB_PATH" \ + --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \ + --prefix XDG_DATA_DIRS : "$XDG_ICON_DIRS:$out/share:$GSETTINGS_SCHEMAS_PATH" + ''; + + patches = [ ./extension_dir.patch ]; + + meta = with stdenv.lib; { + platforms = platforms.linux; + maintainers = gnome3.maintainers; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/nautilus/extension_dir.patch b/pkgs/desktops/gnome-3/3.18/core/nautilus/extension_dir.patch new file mode 100644 index 00000000000..317b8257992 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/nautilus/extension_dir.patch @@ -0,0 +1,24 @@ +diff --git a/libnautilus-private/nautilus-module.c b/libnautilus-private/nautilus-module.c +index 6273a76..4adcc8a 100644 +--- a/libnautilus-private/nautilus-module.c ++++ b/libnautilus-private/nautilus-module.c +@@ -242,11 +242,17 @@ void + nautilus_module_setup (void) + { + static gboolean initialized = FALSE; ++ const gchar* extensiondir = NULL; + + if (!initialized) { + initialized = TRUE; +- +- load_module_dir (NAUTILUS_EXTENSIONDIR); ++ ++ extensiondir = g_getenv ("NAUTILUS_EXTENSION_DIR"); ++ if (extensiondir == NULL) { ++ extensiondir = NAUTILUS_EXTENSIONDIR; ++ } ++ ++ load_module_dir (extensiondir); + + eel_debug_call_at_shutdown (free_module_objects); + } diff --git a/pkgs/desktops/gnome-3/3.18/core/nautilus/src.nix b/pkgs/desktops/gnome-3/3.18/core/nautilus/src.nix new file mode 100644 index 00000000000..4e8c692bce4 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/nautilus/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "nautilus-3.18.0"; + + src = fetchurl { + url = mirror://gnome/sources/nautilus/3.18/nautilus-3.18.0.tar.xz; + sha256 = "6914e5698c5ce865870086e4db9395d56a78eddf8002020458ce05db16a95a33"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/rest/default.nix b/pkgs/desktops/gnome-3/3.18/core/rest/default.nix new file mode 100644 index 00000000000..eada9ab1993 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/rest/default.nix @@ -0,0 +1,19 @@ +{ stdenv, fetchurl, pkgconfig, glib, libsoup, gobjectIntrospection, gnome3 }: + +stdenv.mkDerivation rec { + name = "rest-0.7.92"; + + src = fetchurl { + url = "mirror://gnome/sources/rest/0.7/${name}.tar.xz"; + sha256 = "07548c8785a3e743daf54a82b952ff5f32af94fee68997df4c83b00d52f9c0ec"; + }; + + buildInputs = [ pkgconfig glib libsoup gobjectIntrospection]; + + configureFlags = "--with-ca-certificates=/etc/ssl/certs/ca-certificates.crt"; + + meta = with stdenv.lib; { + platforms = platforms.linux; + maintainers = gnome3.maintainers; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/sushi/default.nix b/pkgs/desktops/gnome-3/3.18/core/sushi/default.nix new file mode 100644 index 00000000000..17c37e89dec --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/sushi/default.nix @@ -0,0 +1,33 @@ +{ stdenv, fetchurl, pkgconfig, file, intltool, gobjectIntrospection, glib +, clutter_gtk, clutter-gst, gnome3, gtksourceview, libmusicbrainz +, webkitgtk, libmusicbrainz5, icu, makeWrapper, gst_all_1 +, gdk_pixbuf, librsvg, gtk3 }: + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + propagatedUserEnvPkgs = [ gst_all_1.gstreamer gst_all_1.gst-plugins-base gst_all_1.gst-plugins-good ]; + + buildInputs = [ pkgconfig file intltool gobjectIntrospection glib gtk3 + clutter_gtk clutter-gst gnome3.gjs gtksourceview gdk_pixbuf + librsvg gnome3.defaultIconTheme libmusicbrainz5 webkitgtk + gnome3.evince icu makeWrapper ]; + + enableParallelBuilding = true; + + preFixup = '' + wrapProgram $out/libexec/sushi-start \ + --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \ + --prefix GI_TYPELIB_PATH : "$GI_TYPELIB_PATH" \ + --prefix GST_PLUGIN_SYSTEM_PATH_1_0 : "$GST_PLUGIN_SYSTEM_PATH_1_0" \ + --prefix XDG_DATA_DIRS : "$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH" + ''; + + meta = with stdenv.lib; { + homepage = "http://en.wikipedia.org/wiki/Sushi_(software)"; + description = "A quick previewer for Nautilus"; + maintainers = gnome3.maintainers; + license = licenses.gpl2Plus; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/sushi/src.nix b/pkgs/desktops/gnome-3/3.18/core/sushi/src.nix new file mode 100644 index 00000000000..5c852a0dc47 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/sushi/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "sushi-3.18.0"; + + src = fetchurl { + url = mirror://gnome/sources/sushi/3.18/sushi-3.18.0.tar.xz; + sha256 = "7f4df92be950bf23aff28da49ce108766dd21a88efc14a9d0807e10225608e9c"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/totem-pl-parser/default.nix b/pkgs/desktops/gnome-3/3.18/core/totem-pl-parser/default.nix new file mode 100644 index 00000000000..63f36004bcd --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/totem-pl-parser/default.nix @@ -0,0 +1,20 @@ +{ stdenv, fetchurl, pkgconfig, file, intltool, gmime, libxml2, libsoup, gnome3 }: + +stdenv.mkDerivation rec { + name = "totem-pl-parser-3.10.2"; + + src = fetchurl { + url = "mirror://gnome/sources/totem-pl-parser/3.10/${name}.tar.xz"; + sha256 = "38be09bddc46ddecd2b5ed7c82144ef52aafe879a5ec3d8b192b4b64ba995469"; + }; + + buildInputs = [ pkgconfig file intltool gmime libxml2 libsoup ]; + + meta = with stdenv.lib; { + homepage = https://wiki.gnome.org/Apps/Videos; + description = "Simple GObject-based library to parse and save a host of playlist formats"; + maintainers = gnome3.maintainers; + license = licenses.lgpl2; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/totem/default.nix b/pkgs/desktops/gnome-3/3.18/core/totem/default.nix new file mode 100644 index 00000000000..13665c72274 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/totem/default.nix @@ -0,0 +1,42 @@ +{ stdenv, intltool, fetchurl, gst_all_1 +, clutter_gtk, clutter-gst, pygobject3, shared_mime_info +, pkgconfig, gtk3, glib +, bash, makeWrapper, itstool, libxml2, dbus_glib +, gnome3, librsvg, gdk_pixbuf, file }: + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + doCheck = true; + + enableParallelBuilding = true; + + NIX_CFLAGS_COMPILE = "-I${gnome3.glib}/include/gio-unix-2.0"; + + propagatedUserEnvPkgs = [ gnome3.gnome_themes_standard ]; + + buildInputs = [ pkgconfig gtk3 glib intltool itstool libxml2 gnome3.grilo + clutter_gtk clutter-gst gnome3.totem-pl-parser gnome3.grilo-plugins + gst_all_1.gstreamer gst_all_1.gst-plugins-base + gst_all_1.gst-plugins-good gst_all_1.gst-plugins-bad + gnome3.libpeas pygobject3 shared_mime_info dbus_glib + gdk_pixbuf gnome3.defaultIconTheme librsvg gnome3.gnome_desktop + gnome3.gsettings_desktop_schemas makeWrapper file ]; + + preFixup = '' + wrapProgram "$out/bin/totem" \ + --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \ + --prefix GST_PLUGIN_SYSTEM_PATH_1_0 : "$GST_PLUGIN_SYSTEM_PATH_1_0" \ + --prefix GRL_PLUGIN_PATH : "${gnome3.grilo-plugins}/lib/grilo-0.2" \ + --prefix XDG_DATA_DIRS : "${gnome3.gnome_themes_standard}/share:$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH" + + ''; + + meta = with stdenv.lib; { + homepage = https://wiki.gnome.org/Apps/Videos; + description = "Movie player for the GNOME desktop based on GStreamer"; + maintainers = gnome3.maintainers; + license = licenses.gpl2; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/totem/src.nix b/pkgs/desktops/gnome-3/3.18/core/totem/src.nix new file mode 100644 index 00000000000..92bf2c1f8a6 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/totem/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "totem-3.18.0"; + + src = fetchurl { + url = mirror://gnome/sources/totem/3.18/totem-3.18.0.tar.xz; + sha256 = "1b6a7e66414df4b2e2427a9c5f1fee5a5f286beb098fdbe0902e37e3663e3e89"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/tracker/default.nix b/pkgs/desktops/gnome-3/3.18/core/tracker/default.nix new file mode 100644 index 00000000000..88e6da2ad2d --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/tracker/default.nix @@ -0,0 +1,55 @@ +{ stdenv, intltool, fetchurl, libxml2, upower +, pkgconfig, gtk3, glib +, bash, makeWrapper, itstool, vala, sqlite, libxslt +, gnome3, librsvg, gdk_pixbuf, file, libnotify +, evolution_data_server, gst_all_1, poppler +, icu, taglib, libjpeg, libtiff, giflib, libcue +, libvorbis, flac, exempi, networkmanager +, libpng, libexif, libgsf, libuuid, bzip2 }: + +let + majorVersion = "1.4"; +in +stdenv.mkDerivation rec { + name = "tracker-${majorVersion}.0"; + + src = fetchurl { + url = "mirror://gnome/sources/tracker/${majorVersion}/${name}.tar.xz"; + sha256 = "1ssisbix7ib3d6bgx9s675gx6ayy68jq2srhpzv038mkbaskaz68"; + }; + + propagatedUserEnvPkgs = [ gnome3.gnome_themes_standard ]; + + NIX_CFLAGS_COMPILE = "-I${gnome3.glib}/include/gio-unix-2.0 -I${poppler}/include/poppler"; + + enableParallelBuilding = true; + + buildInputs = [ vala pkgconfig gtk3 glib intltool itstool libxml2 + bzip2 gnome3.totem-pl-parser libxslt + gnome3.gsettings_desktop_schemas makeWrapper file + gdk_pixbuf gnome3.defaultIconTheme librsvg sqlite + upower libnotify evolution_data_server gnome3.libgee + gst_all_1.gstreamer gst_all_1.gst-plugins-base flac + poppler icu taglib libjpeg libtiff giflib libvorbis + exempi networkmanager libpng libexif libgsf libuuid ]; + + preConfigure = '' + substituteInPlace src/libtracker-sparql/Makefile.in --replace "--shared-library=libtracker-sparql" "--shared-library=$out/lib/libtracker-sparql" + ''; + + preFixup = '' + for f in $out/bin/* $out/libexec/*; do + wrapProgram $f \ + --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \ + --prefix XDG_DATA_DIRS : "${gnome3.gnome_themes_standard}/share:$out/share:$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH" + done + ''; + + meta = with stdenv.lib; { + homepage = https://wiki.gnome.org/Projects/Tracker; + description = "Desktop-neutral user information store, search tool and indexer"; + maintainers = gnome3.maintainers; + license = licenses.gpl2; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/vino/default.nix b/pkgs/desktops/gnome-3/3.18/core/vino/default.nix new file mode 100644 index 00000000000..7a015b4a010 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/vino/default.nix @@ -0,0 +1,25 @@ +{ stdenv, intltool, fetchurl, gtk3, glib, libsoup, pkgconfig, makeWrapper +, gnome3, libnotify, file, telepathy_glib, dbus_glib }: + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + doCheck = true; + + buildInputs = [ gtk3 intltool glib libsoup pkgconfig libnotify + gnome3.defaultIconTheme dbus_glib telepathy_glib file + makeWrapper ]; + + preFixup = '' + wrapProgram "$out/libexec/vino-server" \ + --prefix XDG_DATA_DIRS : "$out/share:$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH" + ''; + + meta = with stdenv.lib; { + homepage = https://wiki.gnome.org/action/show/Projects/Vino; + description = "GNOME desktop sharing server"; + maintainers = with maintainers; [ lethalman iElectric ]; + license = licenses.gpl2; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/vino/src.nix b/pkgs/desktops/gnome-3/3.18/core/vino/src.nix new file mode 100644 index 00000000000..b2202c48733 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/vino/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "vino-3.18.0"; + + src = fetchurl { + url = mirror://gnome/sources/vino/3.18/vino-3.18.0.tar.xz; + sha256 = "52be0b036389713eab224abf27f2ca2a067ba5bd1f6b526592703576005e0919"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/vte/2.90.nix b/pkgs/desktops/gnome-3/3.18/core/vte/2.90.nix new file mode 100644 index 00000000000..5ccca36bcaa --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/vte/2.90.nix @@ -0,0 +1,40 @@ +{ stdenv, fetchurl, intltool, pkgconfig, gnome3, ncurses, gobjectIntrospection }: + +stdenv.mkDerivation rec { + versionMajor = "0.36"; + versionMinor = "3"; + moduleName = "vte"; + + name = "${moduleName}-${versionMajor}.${versionMinor}"; + + src = fetchurl { + url = "mirror://gnome/sources/${moduleName}/${versionMajor}/${name}.tar.xz"; + sha256 = "54e5b07be3c0f7b158302f54ee79d4de1cb002f4259b6642b79b1e0e314a959c"; + }; + + buildInputs = [ gobjectIntrospection intltool pkgconfig gnome3.glib gnome3.gtk3 ncurses ]; + + configureFlags = [ "--enable-introspection" ]; + + enableParallelBuilding = true; + + postInstall = '' + substituteInPlace $out/lib/libvte2_90.la --replace "-lncurses" "-L${ncurses}/lib -lncurses" + ''; + + meta = with stdenv.lib; { + homepage = http://www.gnome.org/; + description = "A library implementing a terminal emulator widget for GTK+"; + longDescription = '' + VTE is a library (libvte) implementing a terminal emulator widget for + GTK+, and a minimal sample application (vte) using that. Vte is + mainly used in gnome-terminal, but can also be used to embed a + console/terminal in games, editors, IDEs, etc. VTE supports Unicode and + character set conversion, as well as emulating any terminal known to + the system's terminfo database. + ''; + license = licenses.lgpl2; + maintainers = with maintainers; [ astsmtl antono lethalman ]; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/vte/default.nix b/pkgs/desktops/gnome-3/3.18/core/vte/default.nix new file mode 100644 index 00000000000..b47381cf61b --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/vte/default.nix @@ -0,0 +1,39 @@ +{ stdenv, fetchurl, intltool, pkgconfig, gnome3, ncurses, gobjectIntrospection, vala, libxml2 +, gnutls, selectTextPatch ? false }: + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + patches = with stdenv.lib; optional selectTextPatch ./expose_select_text.0.40.0.patch; + + buildInputs = [ gobjectIntrospection intltool pkgconfig gnome3.glib + gnome3.gtk3 ncurses vala libxml2 ]; + + propagatedBuildInputs = [ gnutls ]; + + preConfigure = "patchShebangs ."; + + configureFlags = [ "--enable-introspection" ]; + + enableParallelBuilding = true; + + postInstall = '' + substituteInPlace $out/lib/libvte2_90.la --replace "-lncurses" "-L${ncurses}/lib -lncurses" + ''; + + meta = with stdenv.lib; { + homepage = http://www.gnome.org/; + description = "A library implementing a terminal emulator widget for GTK+"; + longDescription = '' + VTE is a library (libvte) implementing a terminal emulator widget for + GTK+, and a minimal sample application (vte) using that. Vte is + mainly used in gnome-terminal, but can also be used to embed a + console/terminal in games, editors, IDEs, etc. VTE supports Unicode and + character set conversion, as well as emulating any terminal known to + the system's terminfo database. + ''; + license = licenses.lgpl2; + maintainers = with maintainers; [ astsmtl antono lethalman ]; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/vte/expose_select_text.0.40.0.patch b/pkgs/desktops/gnome-3/3.18/core/vte/expose_select_text.0.40.0.patch new file mode 100644 index 00000000000..c18f1b76b41 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/vte/expose_select_text.0.40.0.patch @@ -0,0 +1,226 @@ +Only in vte-0.40.0.new: .git +diff --unified -aur vte-0.40.0/src/vteaccess.c vte-0.40.0.new/src/vteaccess.c +--- vte-0.40.0/src/vteaccess.c 2015-03-16 06:34:37.000000000 -0400 ++++ vte-0.40.0.new/src/vteaccess.c 2015-04-10 00:08:53.146853382 -0400 +@@ -1444,7 +1444,7 @@ + *start_offset = offset_from_xy (priv, start_x, start_y); + _vte_terminal_get_end_selection (terminal, &end_x, &end_y); + *end_offset = offset_from_xy (priv, end_x, end_y); +- return _vte_terminal_get_selection (terminal); ++ return vte_terminal_get_selection (terminal); + } + + static gboolean +diff --unified -aur vte-0.40.0/src/vte.c vte-0.40.0.new/src/vte.c +--- vte-0.40.0/src/vte.c 2015-03-18 12:38:09.000000000 -0400 ++++ vte-0.40.0.new/src/vte.c 2015-04-10 00:08:53.150186722 -0400 +@@ -123,7 +123,6 @@ + gpointer data, + GArray *attributes, + gboolean include_trailing_spaces); +-static void _vte_terminal_disconnect_pty_read(VteTerminal *terminal); + static void _vte_terminal_disconnect_pty_write(VteTerminal *terminal); + static void vte_terminal_stop_processing (VteTerminal *terminal); + +@@ -3344,9 +3343,10 @@ + _vte_debug_print (VTE_DEBUG_IO, "removed poll of vte_terminal_io_read\n"); + terminal->pvt->pty_input_source = 0; + } +-static void +-_vte_terminal_connect_pty_read(VteTerminal *terminal) ++void ++vte_terminal_connect_pty_read(VteTerminal *terminal) + { ++ g_return_if_fail(VTE_IS_TERMINAL(terminal)); + if (terminal->pvt->pty_channel == NULL) { + return; + } +@@ -3398,9 +3398,10 @@ + } + } + +-static void +-_vte_terminal_disconnect_pty_read(VteTerminal *terminal) ++void ++vte_terminal_disconnect_pty_read(VteTerminal *terminal) + { ++ g_return_if_fail(VTE_IS_TERMINAL(terminal)); + if (terminal->pvt->pty_input_source != 0) { + _vte_debug_print (VTE_DEBUG_IO, "disconnecting poll of vte_terminal_io_read\n"); + g_source_remove(terminal->pvt->pty_input_source); +@@ -6302,6 +6303,28 @@ + } + } + ++/** ++ * vte_terminal_set_cursor_position: ++ * @terminal: a #VteTerminal ++ * @column: the new cursor column ++ * @row: the new cursor row ++ * ++ * Set the location of the cursor. ++ */ ++void ++vte_terminal_set_cursor_position(VteTerminal *terminal, ++ long column, long row) ++{ ++ g_return_if_fail(VTE_IS_TERMINAL(terminal)); ++ ++ _vte_invalidate_cursor_once(terminal, FALSE); ++ terminal->pvt->cursor.col = column; ++ terminal->pvt->cursor.row = row; ++ _vte_invalidate_cursor_once(terminal, FALSE); ++ _vte_check_cursor_blink(terminal); ++ vte_terminal_queue_cursor_moved(terminal); ++} ++ + static GtkClipboard * + vte_terminal_clipboard_get(VteTerminal *terminal, GdkAtom board) + { +@@ -6465,7 +6488,7 @@ + vte_terminal_extend_selection(terminal, x, y, FALSE, TRUE); + + /* Temporarily stop caring about input from the child. */ +- _vte_terminal_disconnect_pty_read(terminal); ++ vte_terminal_disconnect_pty_read(terminal); + } + + static gboolean +@@ -6482,7 +6505,7 @@ + terminal->pvt->selecting = FALSE; + + /* Reconnect to input from the child if we paused it. */ +- _vte_terminal_connect_pty_read(terminal); ++ vte_terminal_connect_pty_read(terminal); + + return TRUE; + } +@@ -6982,6 +7005,50 @@ + vte_terminal_deselect_all (terminal); + } + ++/** ++ * vte_terminal_get_selection_block_mode: ++ * @terminal: a #VteTerminal ++ * ++ * Checks whether or not block selection is enabled. ++ * ++ * Returns: %TRUE if block selection is enabled, %FALSE if not ++ */ ++gboolean ++vte_terminal_get_selection_block_mode(VteTerminal *terminal) { ++ g_return_val_if_fail(VTE_IS_TERMINAL(terminal), FALSE); ++ return terminal->pvt->selection_block_mode; ++} ++ ++/** ++ * vte_terminal_set_selection_block_mode: ++ * @terminal: a #VteTerminal ++ * @block_mode: whether block selection is enabled ++ * ++ * Sets whether or not block selection is enabled. ++ */ ++void ++vte_terminal_set_selection_block_mode(VteTerminal *terminal, gboolean block_mode) { ++ g_return_if_fail(VTE_IS_TERMINAL(terminal)); ++ terminal->pvt->selection_block_mode = block_mode; ++} ++ ++/** ++ * vte_terminal_select_text: ++ * @terminal: a #VteTerminal ++ * @start_col: the starting column for the selection ++ * @start_row: the starting row for the selection ++ * @end_col: the end column for the selection ++ * @end_row: the end row for the selection ++ * ++ * Sets the current selection region. ++ */ ++void ++vte_terminal_select_text(VteTerminal *terminal, ++ long start_col, long start_row, ++ long end_col, long end_row) { ++ _vte_terminal_select_text(terminal, start_col, start_row, end_col, end_row, 0, 0); ++} ++ + /* Autoscroll a bit. */ + static gboolean + vte_terminal_autoscroll(VteTerminal *terminal) +@@ -8631,7 +8698,7 @@ + #endif + kill(terminal->pvt->pty_pid, SIGHUP); + } +- _vte_terminal_disconnect_pty_read(terminal); ++ vte_terminal_disconnect_pty_read(terminal); + _vte_terminal_disconnect_pty_write(terminal); + if (terminal->pvt->pty_channel != NULL) { + g_io_channel_unref (terminal->pvt->pty_channel); +@@ -12188,7 +12255,7 @@ + g_object_freeze_notify(object); + + if (pvt->pty != NULL) { +- _vte_terminal_disconnect_pty_read(terminal); ++ vte_terminal_disconnect_pty_read(terminal); + _vte_terminal_disconnect_pty_write(terminal); + + if (terminal->pvt->pty_channel != NULL) { +@@ -12243,7 +12310,7 @@ + _vte_terminal_setup_utf8 (terminal); + + /* Open channels to listen for input on. */ +- _vte_terminal_connect_pty_read (terminal); ++ vte_terminal_connect_pty_read (terminal); + + g_object_notify(object, "pty"); + +@@ -12276,7 +12343,7 @@ + } + + char * +-_vte_terminal_get_selection(VteTerminal *terminal) ++vte_terminal_get_selection(VteTerminal *terminal) + { + g_return_val_if_fail(VTE_IS_TERMINAL(terminal), NULL); + +diff --unified -aur vte-0.40.0/src/vteint.h vte-0.40.0.new/src/vteint.h +--- vte-0.40.0/src/vteint.h 2014-05-28 08:22:48.000000000 -0400 ++++ vte-0.40.0.new/src/vteint.h 2015-04-10 00:08:53.153520062 -0400 +@@ -25,7 +25,6 @@ + G_BEGIN_DECLS + + void _vte_terminal_accessible_ref(VteTerminal *terminal); +-char* _vte_terminal_get_selection(VteTerminal *terminal); + void _vte_terminal_get_start_selection(VteTerminal *terminal, long *x, long *y); + void _vte_terminal_get_end_selection(VteTerminal *terminal, long *x, long *y); + void _vte_terminal_select_text(VteTerminal *terminal, long start_x, long start_y, long end_x, long end_y, int start_offset, int end_offset); +diff --unified -aur vte-0.40.0/src/vteterminal.h vte-0.40.0.new/src/vteterminal.h +--- vte-0.40.0/src/vteterminal.h 2015-03-18 12:38:09.000000000 -0400 ++++ vte-0.40.0.new/src/vteterminal.h 2015-04-10 00:08:53.150186722 -0400 +@@ -169,6 +169,18 @@ + + void vte_terminal_select_all(VteTerminal *terminal) _VTE_GNUC_NONNULL(1); + void vte_terminal_unselect_all(VteTerminal *terminal) _VTE_GNUC_NONNULL(1); ++gboolean vte_terminal_get_selection_block_mode(VteTerminal *terminal) _VTE_GNUC_NONNULL(1); ++void vte_terminal_set_selection_block_mode(VteTerminal *terminal, ++ gboolean block_mode) _VTE_GNUC_NONNULL(1); ++void vte_terminal_select_text(VteTerminal *terminal, ++ long start_col, long start_row, ++ long end_col, long end_row) _VTE_GNUC_NONNULL(1); ++char * ++vte_terminal_get_selection(VteTerminal *terminal) _VTE_GNUC_NONNULL(1); ++ ++/* pause and unpause output */ ++void vte_terminal_disconnect_pty_read(VteTerminal *vte); ++void vte_terminal_connect_pty_read(VteTerminal *vte); + + /* By-word selection */ + void vte_terminal_set_word_char_exceptions(VteTerminal *terminal, +@@ -280,6 +292,8 @@ + void vte_terminal_get_cursor_position(VteTerminal *terminal, + glong *column, + glong *row) _VTE_GNUC_NONNULL(1); ++void vte_terminal_set_cursor_position(VteTerminal *terminal, ++ long column, long row) _VTE_GNUC_NONNULL(1); + + /* Add a matching expression, returning the tag the widget assigns to that + * expression. */ diff --git a/pkgs/desktops/gnome-3/3.18/core/vte/src.nix b/pkgs/desktops/gnome-3/3.18/core/vte/src.nix new file mode 100644 index 00000000000..ea6e39182fc --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/vte/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "vte-0.42.0"; + + src = fetchurl { + url = mirror://gnome/sources/vte/0.42/vte-0.42.0.tar.xz; + sha256 = "2168f79d2043cbbe6d4375d01e54cebda71bb6f5d9dc8ad658b9a1dc1052de04"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/yelp-tools/default.nix b/pkgs/desktops/gnome-3/3.18/core/yelp-tools/default.nix new file mode 100644 index 00000000000..de708d48c5e --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/yelp-tools/default.nix @@ -0,0 +1,17 @@ +{ stdenv, fetchurl, libxml2, libxslt, itstool, gnome3, pkgconfig }: + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + buildInputs = [ libxml2 libxslt itstool gnome3.yelp_xsl pkgconfig ]; + + doCheck = true; + + meta = with stdenv.lib; { + homepage = https://wiki.gnome.org/Apps/Yelp/Tools; + description = "Small programs that help you create, edit, manage, and publish your Mallard or DocBook documentation"; + maintainers = with maintainers; [ iElectric ]; + license = licenses.gpl2; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/yelp-tools/src.nix b/pkgs/desktops/gnome-3/3.18/core/yelp-tools/src.nix new file mode 100644 index 00000000000..f03c6d1bc31 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/yelp-tools/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "yelp-tools-3.18.0"; + + src = fetchurl { + url = mirror://gnome/sources/yelp-tools/3.18/yelp-tools-3.18.0.tar.xz; + sha256 = "c6c1d65f802397267cdc47aafd5398c4b60766e0a7ad2190426af6c0d0716932"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/yelp-xsl/default.nix b/pkgs/desktops/gnome-3/3.18/core/yelp-xsl/default.nix new file mode 100644 index 00000000000..0a3976f35a1 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/yelp-xsl/default.nix @@ -0,0 +1,18 @@ +{ stdenv, intltool, fetchurl, pkgconfig, bash +, itstool, libxml2, libxslt, gnome3 }: + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + doCheck = true; + + buildInputs = [ pkgconfig intltool itstool libxml2 libxslt ]; + + meta = with stdenv.lib; { + homepage = https://wiki.gnome.org/Apps/Yelp; + description = "Yelp's universal stylesheets for Mallard and DocBook"; + maintainers = gnome3.maintainers; + license = [licenses.gpl2 licenses.lgpl2]; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/yelp-xsl/src.nix b/pkgs/desktops/gnome-3/3.18/core/yelp-xsl/src.nix new file mode 100644 index 00000000000..a3343d2dfd1 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/yelp-xsl/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "yelp-xsl-3.18.0"; + + src = fetchurl { + url = mirror://gnome/sources/yelp-xsl/3.18/yelp-xsl-3.18.0.tar.xz; + sha256 = "893620857b72b3b43ee3b462281240b7ca4d80292f469552827f0597bf60d2b2"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/yelp/default.nix b/pkgs/desktops/gnome-3/3.18/core/yelp/default.nix new file mode 100644 index 00000000000..13464137bd8 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/yelp/default.nix @@ -0,0 +1,26 @@ +{ stdenv, intltool, fetchurl, webkitgtk, pkgconfig, gtk3, glib +, file, librsvg, gnome3, gdk_pixbuf, sqlite +, bash, makeWrapper, itstool, libxml2, libxslt, icu, gst_all_1 +, wrapGAppsHook }: + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + propagatedUserEnvPkgs = [ gnome3.gnome_themes_standard ]; + + preConfigure = "substituteInPlace ./configure --replace /usr/bin/file ${file}/bin/file"; + + buildInputs = [ pkgconfig gtk3 glib webkitgtk intltool itstool sqlite + libxml2 libxslt icu file makeWrapper gnome3.yelp_xsl + librsvg gdk_pixbuf gnome3.defaultIconTheme + gnome3.gsettings_desktop_schemas wrapGAppsHook + gst_all_1.gst-plugins-base gst_all_1.gst-plugins-good ]; + + meta = with stdenv.lib; { + homepage = https://wiki.gnome.org/Apps/Yelp; + description = "The help viewer in Gnome"; + maintainers = gnome3.maintainers; + license = licenses.gpl2; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/yelp/src.nix b/pkgs/desktops/gnome-3/3.18/core/yelp/src.nix new file mode 100644 index 00000000000..cb25d3d30c6 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/yelp/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "yelp-3.18.0"; + + src = fetchurl { + url = mirror://gnome/sources/yelp/3.18/yelp-3.18.0.tar.xz; + sha256 = "a8c201e520c87832d017439492e4343e957a90da5c6d85060e8dd3b28ffee72e"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/zenity/default.nix b/pkgs/desktops/gnome-3/3.18/core/zenity/default.nix new file mode 100644 index 00000000000..8f525945a6a --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/zenity/default.nix @@ -0,0 +1,19 @@ +{ stdenv, fetchurl, pkgconfig, cairo, libxml2, libxslt, gnome3, pango +, gnome_doc_utils, intltool, libX11, which, itstool }: + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + preBuild = '' + mkdir -p $out/include + ''; + + buildInputs = [ gnome3.gtk libxml2 libxslt libX11 itstool ]; + + nativeBuildInputs = [ pkgconfig intltool gnome_doc_utils which ]; + + meta = with stdenv.lib; { + platforms = platforms.linux; + maintainers = gnome3.maintainers; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/zenity/src.nix b/pkgs/desktops/gnome-3/3.18/core/zenity/src.nix new file mode 100644 index 00000000000..87f16156515 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/zenity/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "zenity-3.18.0"; + + src = fetchurl { + url = mirror://gnome/sources/zenity/3.18/zenity-3.18.0.tar.xz; + sha256 = "0efafea95a830f3bf6eca805ff4a8008df760a6ad3e81181b9473dcf721c3a69"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/default.nix b/pkgs/desktops/gnome-3/3.18/default.nix new file mode 100644 index 00000000000..a3ae8933e64 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/default.nix @@ -0,0 +1,394 @@ +{ pkgs }: + +let + + pkgsFun = overrides: + let + self = self_ // overrides; + self_ = with self; { + + overridePackages = f: + let newself = pkgsFun (f newself self); + in newself; + + callPackage = pkgs.newScope self; + + version = "3.18"; + maintainers = with pkgs.lib.maintainers; [ lethalman jgeerds ]; + + corePackages = with gnome3; [ + pkgs.desktop_file_utils pkgs.ibus + pkgs.shared_mime_info # for update-mime-database + glib # for gsettings + gtk3 # for gtk-update-icon-cache + glib_networking gvfs dconf gnome-backgrounds gnome_control_center + gnome-menus gnome_settings_daemon gnome_shell + gnome_themes_standard defaultIconTheme gnome-shell-extensions + pkgs.hicolor_icon_theme + ]; + + optionalPackages = with gnome3; [ baobab empathy eog epiphany evince + gucharmap nautilus totem vino yelp gnome-bluetooth + gnome-calculator gnome-contacts gnome-font-viewer gnome-screenshot + gnome-system-log gnome-system-monitor + gnome_terminal gnome-user-docs bijiben evolution file-roller gedit + gnome-clocks gnome-music gnome-tweak-tool gnome-photos + nautilus-sendto dconf-editor vinagre gnome-weather gnome-logs + gnome-maps gnome-characters gnome-calendar accerciser gnome-nettool + gnome-getting-started-docs + ]; + + gamesPackages = with gnome3; [ swell-foop lightsoff iagno + tali quadrapassel gnome-sudoku aisleriot five-or-more + four-in-a-row gnome-chess gnome-klotski gnome-mahjongg + gnome-mines gnome-nibbles gnome-robots gnome-tetravex + hitori gnome-taquin + ]; + + inherit (pkgs) glib gtk2 webkitgtk24x gtk3 gtkmm3 libcanberra; + inherit (pkgs.gnome2) ORBit2; + libsoup = pkgs.libsoup.override { gnomeSupport = true; }; + libchamplain = pkgs.libchamplain.override { libsoup = libsoup; }; + orbit = ORBit2; + gnome3 = self // { recurseForDerivations = false; }; + clutter = pkgs.clutter_1_24; + clutter_gtk = pkgs.clutter_gtk_1_6.override { inherit clutter gtk3; }; + clutter-gst_2 = pkgs.clutter-gst; + clutter-gst = pkgs.clutter-gst_3_0.override { inherit clutter cogl; }; + cogl = pkgs.cogl_1_22; + gtk = gtk3; + gtkmm = gtkmm3; + gtkvnc = pkgs.gtkvnc.override { enableGTK3 = true; }; + vala = pkgs.vala_0_26; + gegl_0_3 = pkgs.gegl_0_3.override { inherit gtk; }; + +# Simplify the nixos module and gnome packages + defaultIconTheme = adwaita-icon-theme; + +#### Core (http://ftp.acc.umu.se/pub/GNOME/core/) + + adwaita-icon-theme = callPackage ./core/adwaita-icon-theme { }; + + baobab = callPackage ./core/baobab { }; + + caribou = callPackage ./core/caribou { }; + + dconf = callPackage ./core/dconf { }; + dconf-editor = callPackage ./core/dconf-editor { }; + + empathy = callPackage ./core/empathy { + webkitgtk = webkitgtk24x; + clutter-gst = pkgs.clutter-gst; + }; + + epiphany = callPackage ./core/epiphany { }; + + evince = callPackage ./core/evince { }; # ToDo: dbus would prevent compilation, enable tests + + evolution_data_server = callPackage ./core/evolution-data-server { }; + + gconf = callPackage ./core/gconf { }; + + geocode_glib = callPackage ./core/geocode-glib { }; + + gcr = callPackage ./core/gcr { }; # ToDo: tests fail + + gdm = callPackage ./core/gdm { }; + + gjs = callPackage ./core/gjs { }; + + glib_networking = pkgs.glib_networking.override { + inherit gsettings_desktop_schemas; + }; + + gnome-backgrounds = callPackage ./core/gnome-backgrounds { }; + + gnome-bluetooth = callPackage ./core/gnome-bluetooth { }; + + gnome-contacts = callPackage ./core/gnome-contacts { }; + + gnome_control_center = callPackage ./core/gnome-control-center { }; + + gnome-calculator = callPackage ./core/gnome-calculator { }; + + gnome_common = callPackage ./core/gnome-common { }; + + gnome_desktop = callPackage ./core/gnome-desktop { }; + + gnome-dictionary = callPackage ./core/gnome-dictionary { }; + + gnome-disk-utility = callPackage ./core/gnome-disk-utility { }; + + gnome-font-viewer = callPackage ./core/gnome-font-viewer { }; + + gnome-menus = callPackage ./core/gnome-menus { }; + + gnome_keyring = callPackage ./core/gnome-keyring { }; + + libgnome_keyring = callPackage ./core/libgnome-keyring { }; + + libgnomekbd = callPackage ./core/libgnomekbd { }; + + folks = callPackage ./core/folks { }; + + gnome_online_accounts = callPackage ./core/gnome-online-accounts { }; + + gnome-online-miners = callPackage ./core/gnome-online-miners { }; + + gnome_session = callPackage ./core/gnome-session { }; + + gnome_shell = callPackage ./core/gnome-shell { }; + + gnome-shell-extensions = callPackage ./core/gnome-shell-extensions { }; + + gnome-screenshot = callPackage ./core/gnome-screenshot { }; + + gnome_settings_daemon = callPackage ./core/gnome-settings-daemon { }; + + gnome-system-log = callPackage ./core/gnome-system-log { }; + + gnome-system-monitor = callPackage ./core/gnome-system-monitor { }; + + gnome_terminal = callPackage ./core/gnome-terminal { }; + + gnome_themes_standard = callPackage ./core/gnome-themes-standard { }; + + gnome-user-docs = callPackage ./core/gnome-user-docs { }; + + gnome-user-share = callPackage ./core/gnome-user-share { }; + + grilo = callPackage ./core/grilo { }; + + grilo-plugins = callPackage ./core/grilo-plugins { }; + + gsettings_desktop_schemas = callPackage ./core/gsettings-desktop-schemas { }; + + gsound = callPackage ./core/gsound { }; + + gtksourceview = callPackage ./core/gtksourceview { }; + + gucharmap = callPackage ./core/gucharmap { }; + + gvfs = pkgs.gvfs.override { gnome = gnome3; gnomeSupport = true; }; + + eog = callPackage ./core/eog { }; + + libcroco = callPackage ./core/libcroco {}; + + libgee = callPackage ./core/libgee { }; + + libgdata = callPackage ./core/libgdata { }; + + libgxps = callPackage ./core/libgxps { }; + + libpeas = callPackage ./core/libpeas {}; + + libgweather = callPackage ./core/libgweather { }; + + libzapojit = callPackage ./core/libzapojit { }; + + mutter = callPackage ./core/mutter { }; + + nautilus = callPackage ./core/nautilus { }; + + networkmanager_openvpn = pkgs.networkmanager_openvpn.override { + inherit gnome3; + }; + + networkmanager_pptp = pkgs.networkmanager_pptp.override { + inherit gnome3; + }; + + networkmanager_vpnc = pkgs.networkmanager_vpnc.override { + inherit gnome3; + }; + + networkmanager_openconnect = pkgs.networkmanager_openconnect.override { + inherit gnome3; + }; + + networkmanager_l2tp = pkgs.networkmanager_l2tp.override { + inherit gnome3; + }; + + networkmanagerapplet = pkgs.networkmanagerapplet.override { + inherit gnome3 gsettings_desktop_schemas glib_networking; + }; + + rest = callPackage ./core/rest { }; + + sushi = callPackage ./core/sushi { + clutter-gst = pkgs.clutter-gst; + }; + + totem = callPackage ./core/totem { }; + + totem-pl-parser = callPackage ./core/totem-pl-parser { }; + + tracker = callPackage ./core/tracker { giflib = pkgs.giflib_5_0; }; + + vte = callPackage ./core/vte { }; + + vte_290 = callPackage ./core/vte/2.90.nix { }; + + vte-select-text = vte.override { selectTextPatch = true; }; + + vino = callPackage ./core/vino { }; + + yelp = callPackage ./core/yelp { }; + + yelp_xsl = callPackage ./core/yelp-xsl { }; + + yelp_tools = callPackage ./core/yelp-tools { }; + + zenity = callPackage ./core/zenity { }; + + +#### Apps (http://ftp.acc.umu.se/pub/GNOME/apps/) + + accerciser = callPackage ./apps/accerciser { }; + + bijiben = callPackage ./apps/bijiben { + webkitgtk = webkitgtk24x; + }; + + cheese = callPackage ./apps/cheese { }; + + evolution = callPackage ./apps/evolution { + webkitgtk = webkitgtk24x; + }; + + file-roller = callPackage ./apps/file-roller { }; + + gedit = callPackage ./apps/gedit { }; + + glade = callPackage ./apps/glade { }; + + gnome-boxes = callPackage ./apps/gnome-boxes { + gtkvnc = pkgs.gtkvnc.override { enableGTK3 = true; }; + spice_gtk = pkgs.spice_gtk.override { enableGTK3 = true; }; + }; + + gnome-calendar = callPackage ./apps/gnome-calendar { }; + + gnome-characters = callPackage ./apps/gnome-characters { }; + + gnome-clocks = callPackage ./apps/gnome-clocks { }; + + gnome-documents = callPackage ./apps/gnome-documents { }; + + gnome-getting-started-docs = callPackage ./apps/gnome-getting-started-docs { }; + + gnome-logs = callPackage ./apps/gnome-logs { }; + + gnome-maps = callPackage ./apps/gnome-maps { }; + + gnome-music = callPackage ./apps/gnome-music { }; + + gnome-nettool = callPackage ./apps/gnome-nettool { }; + + gnome-photos = callPackage ./apps/gnome-photos { + gegl = gegl_0_3; + }; + + gnome-weather = callPackage ./apps/gnome-weather { }; + + nautilus-sendto = callPackage ./apps/nautilus-sendto { }; + + polari = callPackage ./apps/polari { }; + + # scrollkeeper replacement + rarian = callPackage ./desktop/rarian { }; + + seahorse = callPackage ./apps/seahorse { }; + + vinagre = callPackage ./apps/vinagre { }; + +#### Dev http://ftp.gnome.org/pub/GNOME/devtools/ + + anjuta = callPackage ./devtools/anjuta { }; + + devhelp = callPackage ./devtools/devhelp { + webkitgtk = webkitgtk24x; + }; + + gdl = callPackage ./devtools/gdl { }; + + gnome-devel-docs = callPackage ./devtools/gnome-devel-docs { }; + +#### Games + + aisleriot = callPackage ./games/aisleriot { }; + + five-or-more = callPackage ./games/five-or-more { }; + + four-in-a-row = callPackage ./games/four-in-a-row { }; + + gnome-chess = callPackage ./games/gnome-chess { }; + + gnome-klotski = callPackage ./games/gnome-klotski { }; + + gnome-mahjongg = callPackage ./games/gnome-mahjongg { }; + + gnome-mines = callPackage ./games/gnome-mines { }; + + gnome-nibbles = callPackage ./games/gnome-nibbles { }; + + gnome-robots = callPackage ./games/gnome-robots { }; + + gnome-sudoku = callPackage ./games/gnome-sudoku { }; + + gnome-taquin = callPackage ./games/gnome-taquin { }; + + gnome-tetravex = callPackage ./games/gnome-tetravex { }; + + hitori = callPackage ./games/hitori { }; + + iagno = callPackage ./games/iagno { }; + + lightsoff = callPackage ./games/lightsoff { }; + + swell-foop = callPackage ./games/swell-foop { }; + + tali = callPackage ./games/tali { }; + + quadrapassel = callPackage ./games/quadrapassel { }; + +#### Misc -- other packages on http://ftp.gnome.org/pub/GNOME/sources/ + + california = callPackage ./misc/california { }; + + geary = callPackage ./misc/geary { + webkitgtk = webkitgtk24x; + }; + + gfbgraph = callPackage ./misc/gfbgraph { }; + + gitg = callPackage ./misc/gitg { + webkitgtk = webkitgtk24x; + }; + + libgda = callPackage ./misc/libgda { }; + + libgit2-glib = callPackage ./misc/libgit2-glib { + libgit2 = pkgs.libgit2.override { libssh2 = null; }; + }; + + libmediaart = callPackage ./misc/libmediaart { }; + + gexiv2 = callPackage ./misc/gexiv2 { }; + + gnome-tweak-tool = callPackage ./misc/gnome-tweak-tool { }; + + gpaste = callPackage ./misc/gpaste { }; + + gtkhtml = callPackage ./misc/gtkhtml { }; + + pomodoro = callPackage ./misc/pomodoro { }; + + gnome-video-effects = callPackage ./misc/gnome-video-effects { }; + + }; + in self; # pkgsFun + +in pkgsFun {} diff --git a/pkgs/desktops/gnome-3/3.18/desktop/rarian/default.nix b/pkgs/desktops/gnome-3/3.18/desktop/rarian/default.nix new file mode 100644 index 00000000000..a1b38b21869 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/desktop/rarian/default.nix @@ -0,0 +1,16 @@ +{stdenv, fetchurl, pkgconfig, perl, perlXMLParser, libxml2, libxslt, docbook_xml_dtd_42}: + +stdenv.mkDerivation rec { + name = "rarian-0.8.1"; + src = fetchurl { + url = "mirror://gnome/sources/rarian/0.8/${name}.tar.bz2"; + sha256 = "aafe886d46e467eb3414e91fa9e42955bd4b618c3e19c42c773026b205a84577"; + }; + + buildInputs = [pkgconfig perl perlXMLParser libxml2 libxslt]; + configureFlags = "--with-xml-catalog=${docbook_xml_dtd_42}/xml/dtd/docbook/docbook.cat"; + + meta = with stdenv.lib; { + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/devtools/anjuta/default.nix b/pkgs/desktops/gnome-3/3.18/devtools/anjuta/default.nix new file mode 100644 index 00000000000..ef350e08684 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/devtools/anjuta/default.nix @@ -0,0 +1,24 @@ +{ stdenv, fetchurl, pkgconfig, gnome3, gtk3, flex, bison, libxml2, intltool, + itstool, python, makeWrapper }: + +in stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + enableParallelBuilding = true; + + buildInputs = [ pkgconfig flex bison gtk3 libxml2 gnome3.gjs gnome3.gdl + gnome3.libgda gnome3.gtksourceview intltool itstool python makeWrapper ]; + + preFixup = '' + wrapProgram $out/bin/anjuta \ + --prefix XDG_DATA_DIRS : \ + "$GSETTINGS_SCHEMAS_PATH" + ''; + + meta = with stdenv.lib; { + description = "Software development studio"; + homepage = http://anjuta.org/; + license = licenses.gpl2; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/devtools/anjuta/src.nix b/pkgs/desktops/gnome-3/3.18/devtools/anjuta/src.nix new file mode 100644 index 00000000000..835024c3447 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/devtools/anjuta/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "anjuta-3.18.0"; + + src = fetchurl { + url = mirror://gnome/sources/anjuta/3.18/anjuta-3.18.0.tar.xz; + sha256 = "6a3fec0963f04bc62a9dfb951e577a3276d39c3414083ef73163c3fea8e741ba"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/devtools/devhelp/default.nix b/pkgs/desktops/gnome-3/3.18/devtools/devhelp/default.nix new file mode 100644 index 00000000000..1cfae754cfe --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/devtools/devhelp/default.nix @@ -0,0 +1,18 @@ +{ stdenv, fetchurl, pkgconfig, gnome3, gtk3, wrapGAppsHook +, webkitgtk, intltool }: + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + buildInputs = [ + pkgconfig gtk3 wrapGAppsHook webkitgtk intltool gnome3.defaultIconTheme + ]; + + meta = with stdenv.lib; { + homepage = https://live.gnome.org/devhelp; + description = "API documentation browser for GNOME"; + maintainers = gnome3.maintainers; + license = licenses.gpl2; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/devtools/devhelp/src.nix b/pkgs/desktops/gnome-3/3.18/devtools/devhelp/src.nix new file mode 100644 index 00000000000..8da63dc2685 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/devtools/devhelp/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "devhelp-3.18.0"; + + src = fetchurl { + url = mirror://gnome/sources/devhelp/3.18/devhelp-3.18.0.tar.xz; + sha256 = "2494af16fedc311d7bb50bc47c32a69035f7b95fd7995d9db4fe497926087fb5"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/devtools/gdl/default.nix b/pkgs/desktops/gnome-3/3.18/devtools/gdl/default.nix new file mode 100644 index 00000000000..156d91b3eae --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/devtools/gdl/default.nix @@ -0,0 +1,15 @@ +{ stdenv, fetchurl, pkgconfig, libxml2, gtk3, gnome3, intltool }: + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + buildInputs = [ pkgconfig libxml2 gtk3 intltool ]; + + meta = with stdenv.lib; { + description = "Gnome docking library"; + homepage = https://developer.gnome.org/gdl/; + maintainers = gnome3.maintainers; + license = licenses.gpl2; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/devtools/gdl/src.nix b/pkgs/desktops/gnome-3/3.18/devtools/gdl/src.nix new file mode 100644 index 00000000000..3fd39139799 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/devtools/gdl/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "gdl-3.18.0"; + + src = fetchurl { + url = mirror://gnome/sources/gdl/3.18/gdl-3.18.0.tar.xz; + sha256 = "1499884e4fce375a963cf2b98b90e6724144f9b1f1ac8b84d765f4c85a2140b2"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/devtools/gnome-devel-docs/default.nix b/pkgs/desktops/gnome-3/3.18/devtools/gnome-devel-docs/default.nix new file mode 100644 index 00000000000..50960f41a31 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/devtools/gnome-devel-docs/default.nix @@ -0,0 +1,15 @@ +{ stdenv, fetchurl, gnome3, intltool, itstool, libxml2 }: + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + buildInputs = [ intltool itstool libxml2 ]; + + meta = with stdenv.lib; { + homepage = https://github.com/GNOME/gnome-devel-docs; + description = "Developer documentation for GNOME"; + maintainers = gnome3.maintainers; + license = licenses.fdl12; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/devtools/gnome-devel-docs/src.nix b/pkgs/desktops/gnome-3/3.18/devtools/gnome-devel-docs/src.nix new file mode 100644 index 00000000000..50a575945d7 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/devtools/gnome-devel-docs/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "gnome-devel-docs-3.18.0"; + + src = fetchurl { + url = mirror://gnome/sources/gnome-devel-docs/3.18/gnome-devel-docs-3.18.0.tar.xz; + sha256 = "f237fb8593ada0346ccc932ae17647a883cc9f7026f4cad16f084bb7420e0925"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/games/aisleriot/default.nix b/pkgs/desktops/gnome-3/3.18/games/aisleriot/default.nix new file mode 100644 index 00000000000..e149a0b3126 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/games/aisleriot/default.nix @@ -0,0 +1,20 @@ +{ stdenv, fetchurl, pkgconfig, gnome3, intltool, itstool, gtk3 +, wrapGAppsHook, gconf, librsvg, libxml2, desktop_file_utils +, guile, libcanberra_gtk3 }: + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + configureFlags = [ "--with-card-theme-formats=svg" ]; + + buildInputs = [ pkgconfig intltool itstool gtk3 wrapGAppsHook gconf + librsvg libxml2 desktop_file_utils guile libcanberra_gtk3 ]; + + meta = with stdenv.lib; { + homepage = https://wiki.gnome.org/Apps/Aisleriot; + description = "A collection of patience games written in guile scheme"; + maintainers = gnome3.maintainers; + license = licenses.gpl3Plus; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/games/aisleriot/src.nix b/pkgs/desktops/gnome-3/3.18/games/aisleriot/src.nix new file mode 100644 index 00000000000..465fccd15b4 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/games/aisleriot/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "aisleriot-3.18.0"; + + src = fetchurl { + url = mirror://gnome/sources/aisleriot/3.18/aisleriot-3.18.0.tar.xz; + sha256 = "3421f7dabe482ddae2fd2a053a13a2a9549fe960fec5838ab4fe6d89cff054dd"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/games/five-or-more/default.nix b/pkgs/desktops/gnome-3/3.18/games/five-or-more/default.nix new file mode 100644 index 00000000000..50a7d2906a7 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/games/five-or-more/default.nix @@ -0,0 +1,19 @@ +{ stdenv, fetchurl, pkgconfig, gnome3, gtk3, wrapGAppsHook +, librsvg, intltool, itstool, libxml2 }: + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + buildInputs = [ + pkgconfig gtk3 wrapGAppsHook librsvg intltool itstool libxml2 + gnome3.defaultIconTheme + ]; + + meta = with stdenv.lib; { + homepage = https://wiki.gnome.org/Apps/Five_or_more; + description = "Remove colored balls from the board by forming lines"; + maintainers = gnome3.maintainers; + license = licenses.gpl2; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/games/five-or-more/src.nix b/pkgs/desktops/gnome-3/3.18/games/five-or-more/src.nix new file mode 100644 index 00000000000..37d9794dc1b --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/games/five-or-more/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "five-or-more-3.18.0"; + + src = fetchurl { + url = mirror://gnome/sources/five-or-more/3.18/five-or-more-3.18.0.tar.xz; + sha256 = "e1e7cc81b1281382da9a6ab466d97f09561dbaf39031a9b93f0a45221234fe62"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/games/four-in-a-row/default.nix b/pkgs/desktops/gnome-3/3.18/games/four-in-a-row/default.nix new file mode 100644 index 00000000000..68228750cd8 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/games/four-in-a-row/default.nix @@ -0,0 +1,19 @@ +{ stdenv, fetchurl, pkgconfig, gnome3, gtk3, wrapGAppsHook +, intltool, itstool, libcanberra_gtk3, librsvg, libxml2 }: + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + buildInputs = [ + pkgconfig gtk3 wrapGAppsHook intltool itstool libcanberra_gtk3 librsvg + libxml2 gnome3.defaultIconTheme + ]; + + meta = with stdenv.lib; { + homepage = https://wiki.gnome.org/Apps/Four-in-a-row; + description = "Make lines of the same color to win"; + maintainers = gnome3.maintainers; + license = licenses.gpl2; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/games/four-in-a-row/src.nix b/pkgs/desktops/gnome-3/3.18/games/four-in-a-row/src.nix new file mode 100644 index 00000000000..dc24a4366e3 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/games/four-in-a-row/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "four-in-a-row-3.18.0"; + + src = fetchurl { + url = mirror://gnome/sources/four-in-a-row/3.18/four-in-a-row-3.18.0.tar.xz; + sha256 = "a65fece60b66122fbf5fddf646ac2acffc58a802cf3e87e5985d5b962d53df48"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/games/gnome-chess/default.nix b/pkgs/desktops/gnome-3/3.18/games/gnome-chess/default.nix new file mode 100644 index 00000000000..a96dae3c12c --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/games/gnome-chess/default.nix @@ -0,0 +1,19 @@ +{ stdenv, fetchurl, pkgconfig, gnome3, gtk3, wrapGAppsHook +, intltool, itstool, librsvg, libxml2 }: + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + buildInputs = [ + pkgconfig gtk3 wrapGAppsHook intltool itstool librsvg libxml2 + gnome3.defaultIconTheme + ]; + + meta = with stdenv.lib; { + homepage = https://wiki.gnome.org/Apps/Chess; + description = "Play the classic two-player boardgame of chess"; + maintainers = gnome3.maintainers; + license = licenses.gpl2; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/games/gnome-chess/src.nix b/pkgs/desktops/gnome-3/3.18/games/gnome-chess/src.nix new file mode 100644 index 00000000000..5cbbb6c9025 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/games/gnome-chess/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "gnome-chess-3.18.0"; + + src = fetchurl { + url = mirror://gnome/sources/gnome-chess/3.18/gnome-chess-3.18.0.tar.xz; + sha256 = "c841198935d807618c3cecbf10ed24643390d504e17961717bac455f4e1b37ad"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/games/gnome-klotski/default.nix b/pkgs/desktops/gnome-3/3.18/games/gnome-klotski/default.nix new file mode 100644 index 00000000000..b13bf8afbfa --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/games/gnome-klotski/default.nix @@ -0,0 +1,19 @@ +{ stdenv, fetchurl, pkgconfig, gnome3, gtk3, wrapGAppsHook +, librsvg, libxml2, intltool, itstool }: + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + buildInputs = [ + pkgconfig gtk3 wrapGAppsHook intltool itstool librsvg libxml2 + gnome3.defaultIconTheme + ]; + + meta = with stdenv.lib; { + homepage = https://wiki.gnome.org/Apps/Klotski; + description = "Slide blocks to solve the puzzle"; + maintainers = gnome3.maintainers; + license = licenses.gpl2; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/games/gnome-klotski/src.nix b/pkgs/desktops/gnome-3/3.18/games/gnome-klotski/src.nix new file mode 100644 index 00000000000..c772988198c --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/games/gnome-klotski/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "gnome-klotski-3.18.0"; + + src = fetchurl { + url = mirror://gnome/sources/gnome-klotski/3.18/gnome-klotski-3.18.0.tar.xz; + sha256 = "75ef9f7b3b09edf660165f62f8797f3850a49d6be4de0c258ee7d828e67820f2"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/games/gnome-mahjongg/default.nix b/pkgs/desktops/gnome-3/3.18/games/gnome-mahjongg/default.nix new file mode 100644 index 00000000000..43db32e8857 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/games/gnome-mahjongg/default.nix @@ -0,0 +1,19 @@ +{ stdenv, fetchurl, pkgconfig, gnome3, gtk3, wrapGAppsHook +, librsvg, intltool, itstool, libxml2 }: + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + buildInputs = [ + pkgconfig gtk3 wrapGAppsHook librsvg intltool itstool libxml2 + gnome3.defaultIconTheme + ]; + + meta = with stdenv.lib; { + homepage = https://wiki.gnome.org/Apps/Mahjongg; + description = "Disassemble a pile of tiles by removing matching pairs"; + maintainers = gnome3.maintainers; + license = licenses.gpl2; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/games/gnome-mahjongg/src.nix b/pkgs/desktops/gnome-3/3.18/games/gnome-mahjongg/src.nix new file mode 100644 index 00000000000..214c4a7d6e0 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/games/gnome-mahjongg/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "gnome-mahjongg-3.18.0"; + + src = fetchurl { + url = mirror://gnome/sources/gnome-mahjongg/3.18/gnome-mahjongg-3.18.0.tar.xz; + sha256 = "7034428f5ac04bfd90689ee66894a6948a2ff1bfa2d2548f7559d2134b967405"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/games/gnome-mines/default.nix b/pkgs/desktops/gnome-3/3.18/games/gnome-mines/default.nix new file mode 100644 index 00000000000..4d703bb37a7 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/games/gnome-mines/default.nix @@ -0,0 +1,19 @@ +{ stdenv, fetchurl, pkgconfig, gnome3, gtk3, wrapGAppsHook +, librsvg, intltool, itstool, libxml2 }: + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + buildInputs = [ + pkgconfig gtk3 wrapGAppsHook librsvg intltool itstool libxml2 + gnome3.defaultIconTheme + ]; + + meta = with stdenv.lib; { + homepage = https://wiki.gnome.org/Apps/Mines; + description = "Clear hidden mines from a minefield"; + maintainers = gnome3.maintainers; + license = licenses.gpl2; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/games/gnome-mines/src.nix b/pkgs/desktops/gnome-3/3.18/games/gnome-mines/src.nix new file mode 100644 index 00000000000..e5099ac9575 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/games/gnome-mines/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "gnome-mines-3.18.0"; + + src = fetchurl { + url = mirror://gnome/sources/gnome-mines/3.18/gnome-mines-3.18.0.tar.xz; + sha256 = "8b4c05ef0ab43031661e3cdb1b17ba551efe4e4488fe4462fee9557cd10a64f9"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/games/gnome-nibbles/default.nix b/pkgs/desktops/gnome-3/3.18/games/gnome-nibbles/default.nix new file mode 100644 index 00000000000..85ffeb3c50f --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/games/gnome-nibbles/default.nix @@ -0,0 +1,20 @@ +{ stdenv, fetchurl, pkgconfig, gnome3, gtk3, wrapGAppsHook +, librsvg, libcanberra_gtk3, clutter_gtk, intltool, itstool +, libxml2 }: + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + buildInputs = [ + pkgconfig gtk3 wrapGAppsHook intltool itstool libxml2 + librsvg libcanberra_gtk3 clutter_gtk gnome3.defaultIconTheme + ]; + + meta = with stdenv.lib; { + homepage = https://wiki.gnome.org/Apps/Nibbles; + description = "Guide a worm around a maze"; + maintainers = gnome3.maintainers; + license = licenses.gpl2; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/games/gnome-nibbles/src.nix b/pkgs/desktops/gnome-3/3.18/games/gnome-nibbles/src.nix new file mode 100644 index 00000000000..d82422619f8 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/games/gnome-nibbles/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "gnome-nibbles-3.18.0"; + + src = fetchurl { + url = mirror://gnome/sources/gnome-nibbles/3.18/gnome-nibbles-3.18.0.tar.xz; + sha256 = "9ffc549d574774905c79b391d3e59f8045f47504d96279d9b26cc602f59ad545"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/games/gnome-robots/default.nix b/pkgs/desktops/gnome-3/3.18/games/gnome-robots/default.nix new file mode 100644 index 00000000000..3c318fa847c --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/games/gnome-robots/default.nix @@ -0,0 +1,19 @@ +{ stdenv, fetchurl, pkgconfig, gnome3, gtk3, wrapGAppsHook +, librsvg, libcanberra_gtk3, intltool, itstool, libxml2 }: + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + buildInputs = [ + pkgconfig gtk3 wrapGAppsHook intltool itstool librsvg libcanberra_gtk3 + libxml2 gnome3.defaultIconTheme + ]; + + meta = with stdenv.lib; { + homepage = https://wiki.gnome.org/Apps/Robots; + description = "Avoid the robots and make them crash into each other"; + maintainers = gnome3.maintainers; + license = licenses.gpl2; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/games/gnome-robots/src.nix b/pkgs/desktops/gnome-3/3.18/games/gnome-robots/src.nix new file mode 100644 index 00000000000..228e2ca81b1 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/games/gnome-robots/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "gnome-robots-3.18.0"; + + src = fetchurl { + url = mirror://gnome/sources/gnome-robots/3.18/gnome-robots-3.18.0.tar.xz; + sha256 = "34311cb9de6a970f00fa9743dced2925e98f40f77b4a406e17b589412cb902fc"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/games/gnome-sudoku/default.nix b/pkgs/desktops/gnome-3/3.18/games/gnome-sudoku/default.nix new file mode 100644 index 00000000000..c8ba82c7246 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/games/gnome-sudoku/default.nix @@ -0,0 +1,17 @@ +{ stdenv, fetchurl, pkgconfig, intltool, gtk3, gnome3, wrapGAppsHook +, json_glib, qqwing, itstool, libxml2 }: + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + buildInputs = [ pkgconfig intltool wrapGAppsHook gtk3 gnome3.libgee + json_glib qqwing itstool libxml2 ]; + + meta = with stdenv.lib; { + homepage = https://wiki.gnome.org/Apps/Sudoku; + description = "Test your logic skills in this number grid puzzle"; + maintainers = gnome3.maintainers; + license = licenses.gpl2; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/games/gnome-sudoku/src.nix b/pkgs/desktops/gnome-3/3.18/games/gnome-sudoku/src.nix new file mode 100644 index 00000000000..f7dd422bec5 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/games/gnome-sudoku/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "gnome-sudoku-3.18.0"; + + src = fetchurl { + url = mirror://gnome/sources/gnome-sudoku/3.18/gnome-sudoku-3.18.0.tar.xz; + sha256 = "e6180b14f7ccb9ec43e187cf358eceaf707edb4d9defff3386ae4ef8e53cce5b"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/games/gnome-taquin/default.nix b/pkgs/desktops/gnome-3/3.18/games/gnome-taquin/default.nix new file mode 100644 index 00000000000..78eaa23e63b --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/games/gnome-taquin/default.nix @@ -0,0 +1,19 @@ +{ stdenv, fetchurl, pkgconfig, gnome3, gtk3, wrapGAppsHook +, librsvg, libcanberra_gtk3, intltool, itstool, libxml2 }: + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + buildInputs = [ + pkgconfig gtk3 wrapGAppsHook librsvg libcanberra_gtk3 + intltool itstool libxml2 gnome3.defaultIconTheme + ]; + + meta = with stdenv.lib; { + homepage = https://wiki.gnome.org/Apps/Taquin; + description = "Move tiles so that they reach their places"; + maintainers = gnome3.maintainers; + license = licenses.gpl3; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/games/gnome-taquin/src.nix b/pkgs/desktops/gnome-3/3.18/games/gnome-taquin/src.nix new file mode 100644 index 00000000000..41cb361edb3 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/games/gnome-taquin/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "gnome-taquin-3.18.0"; + + src = fetchurl { + url = mirror://gnome/sources/gnome-taquin/3.18/gnome-taquin-3.18.0.tar.xz; + sha256 = "3cee6a52003ccec3147020d24c079a0cd01b6855fcd486ef20a60e0f862e8760"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/games/gnome-tetravex/default.nix b/pkgs/desktops/gnome-3/3.18/games/gnome-tetravex/default.nix new file mode 100644 index 00000000000..d6feab93dba --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/games/gnome-tetravex/default.nix @@ -0,0 +1,18 @@ +{ stdenv, fetchurl, pkgconfig, gnome3, gtk3, wrapGAppsHook +, libxml2, intltool, itstool }: + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + buildInputs = [ + pkgconfig gtk3 wrapGAppsHook intltool itstool libxml2 gnome3.defaultIconTheme + ]; + + meta = with stdenv.lib; { + homepage = https://wiki.gnome.org/Apps/Tetravex; + description = "Complete the puzzle by matching numbered tiles"; + maintainers = gnome3.maintainers; + license = licenses.gpl2; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/games/gnome-tetravex/src.nix b/pkgs/desktops/gnome-3/3.18/games/gnome-tetravex/src.nix new file mode 100644 index 00000000000..d73562835e4 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/games/gnome-tetravex/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "gnome-tetravex-3.18.0"; + + src = fetchurl { + url = mirror://gnome/sources/gnome-tetravex/3.18/gnome-tetravex-3.18.0.tar.xz; + sha256 = "ea00ff5ea9a3b583c4d755cefa2725dd7b3b0781972af1c56377c7eda48cb579"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/games/hitori/default.nix b/pkgs/desktops/gnome-3/3.18/games/hitori/default.nix new file mode 100644 index 00000000000..bd6be7d43c5 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/games/hitori/default.nix @@ -0,0 +1,24 @@ +{ stdenv, fetchurl, pkgconfig, gnome3, gtk3, wrapGAppsHook +, libxml2, intltool, itstool }: + +stdenv.mkDerivation rec { + name = "hitori-${gnome3.version}.1"; + + src = fetchurl { + url = "mirror://gnome/sources/hitori/${gnome3.version}/${name}.tar.xz"; + sha256 = "07pm3xl05jgb8x151k1j2ap57dmfvk2nkz9dmqnn5iywfigsysd1"; + }; + + buildInputs = [ + pkgconfig gtk3 wrapGAppsHook intltool itstool libxml2 + gnome3.defaultIconTheme + ]; + + meta = with stdenv.lib; { + homepage = https://wiki.gnome.org/Apps/Hitori; + description = "GTK+ application to generate and let you play games of Hitori"; + maintainers = gnome3.maintainers; + license = licenses.gpl2; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/games/iagno/default.nix b/pkgs/desktops/gnome-3/3.18/games/iagno/default.nix new file mode 100644 index 00000000000..1b6f08d1fd6 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/games/iagno/default.nix @@ -0,0 +1,19 @@ +{ stdenv, fetchurl, pkgconfig, gtk3, gnome3, gdk_pixbuf, librsvg, wrapGAppsHook +, intltool, itstool, libcanberra_gtk3, libxml2, dconf }: + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + buildInputs = [ pkgconfig gtk3 gnome3.defaultIconTheme gdk_pixbuf librsvg + dconf libxml2 libcanberra_gtk3 wrapGAppsHook itstool intltool ]; + + enableParallelBuilding = true; + + meta = with stdenv.lib; { + homepage = https://wiki.gnome.org/Apps/Iagno; + description = "Computer version of the game Reversi, more popularly called Othello"; + maintainers = gnome3.maintainers; + license = licenses.gpl2; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/games/iagno/src.nix b/pkgs/desktops/gnome-3/3.18/games/iagno/src.nix new file mode 100644 index 00000000000..09b30cf066b --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/games/iagno/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "iagno-3.18.0"; + + src = fetchurl { + url = mirror://gnome/sources/iagno/3.18/iagno-3.18.0.tar.xz; + sha256 = "4a03b474f9b0f0812c8b22b4991aa6dd894dedc05959001fd9e3e09d0d323c56"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/games/lightsoff/default.nix b/pkgs/desktops/gnome-3/3.18/games/lightsoff/default.nix new file mode 100644 index 00000000000..8ec54b48972 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/games/lightsoff/default.nix @@ -0,0 +1,19 @@ +{ stdenv, fetchurl, pkgconfig, gtk3, gnome3, gdk_pixbuf, librsvg, wrapGAppsHook +, intltool, itstool, clutter, clutter_gtk, libxml2, dconf }: + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + buildInputs = [ pkgconfig gtk3 gnome3.defaultIconTheme gdk_pixbuf librsvg dconf + libxml2 clutter clutter_gtk wrapGAppsHook itstool intltool ]; + + enableParallelBuilding = true; + + meta = with stdenv.lib; { + homepage = https://wiki.gnome.org/Apps/Lightsoff; + description = "Puzzle game, where the objective is to turn off all of the tiles on the board"; + maintainers = gnome3.maintainers; + license = licenses.gpl2; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/games/lightsoff/src.nix b/pkgs/desktops/gnome-3/3.18/games/lightsoff/src.nix new file mode 100644 index 00000000000..6645182b3a4 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/games/lightsoff/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "lightsoff-3.18.0"; + + src = fetchurl { + url = mirror://gnome/sources/lightsoff/3.18/lightsoff-3.18.0.tar.xz; + sha256 = "cd5126dae4506363d9196ce8ba083a769d9f8c287fb0008db53cecf6cdc55d61"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/games/quadrapassel/default.nix b/pkgs/desktops/gnome-3/3.18/games/quadrapassel/default.nix new file mode 100644 index 00000000000..f319608764d --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/games/quadrapassel/default.nix @@ -0,0 +1,21 @@ +{ stdenv, fetchurl, pkgconfig, gtk3, gnome3, gdk_pixbuf +, librsvg, libcanberra_gtk3 +, intltool, itstool, libxml2, clutter, clutter_gtk, wrapGAppsHook }: + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + buildInputs = [ pkgconfig gtk3 gnome3.defaultIconTheme gdk_pixbuf librsvg + libcanberra_gtk3 itstool intltool clutter + libxml2 clutter_gtk wrapGAppsHook ]; + + enableParallelBuilding = true; + + meta = with stdenv.lib; { + homepage = https://wiki.gnome.org/Apps/Quadrapassel; + description = "Classic falling-block game, Tetris"; + maintainers = gnome3.maintainers; + license = licenses.gpl2; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/games/quadrapassel/src.nix b/pkgs/desktops/gnome-3/3.18/games/quadrapassel/src.nix new file mode 100644 index 00000000000..55b70b7ec58 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/games/quadrapassel/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "quadrapassel-3.18.0"; + + src = fetchurl { + url = mirror://gnome/sources/quadrapassel/3.18/quadrapassel-3.18.0.tar.xz; + sha256 = "2cd1d5328ab9e2c7041936e8e7e01157f292aa4428da81175fb1aa15d40ef8e1"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/games/swell-foop/default.nix b/pkgs/desktops/gnome-3/3.18/games/swell-foop/default.nix new file mode 100644 index 00000000000..3d3e424d0da --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/games/swell-foop/default.nix @@ -0,0 +1,19 @@ +{ stdenv, fetchurl, pkgconfig, gtk3, gnome3, gdk_pixbuf, librsvg, dconf +, clutter, clutter_gtk, intltool, itstool, libxml2, wrapGAppsHook }: + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + buildInputs = [ pkgconfig gtk3 gnome3.defaultIconTheme gdk_pixbuf librsvg + dconf wrapGAppsHook itstool intltool clutter clutter_gtk libxml2 ]; + + enableParallelBuilding = true; + + meta = with stdenv.lib; { + homepage = "https://wiki.gnome.org/Apps/Swell%20Foop"; + description = "Puzzle game, previously known as Same GNOME"; + maintainers = gnome3.maintainers; + license = licenses.gpl2; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/games/swell-foop/src.nix b/pkgs/desktops/gnome-3/3.18/games/swell-foop/src.nix new file mode 100644 index 00000000000..ea127d8c8dc --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/games/swell-foop/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "swell-foop-3.18.0"; + + src = fetchurl { + url = mirror://gnome/sources/swell-foop/3.18/swell-foop-3.18.0.tar.xz; + sha256 = "b105a36e04dc33e2fe1c3200ed62efea0a68e2411453cb41269508aa739d2936"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/games/tali/default.nix b/pkgs/desktops/gnome-3/3.18/games/tali/default.nix new file mode 100644 index 00000000000..c2b1f585712 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/games/tali/default.nix @@ -0,0 +1,19 @@ +{ stdenv, fetchurl, pkgconfig, gtk3, gnome3, gdk_pixbuf +, librsvg, intltool, itstool, libxml2, wrapGAppsHook }: + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + buildInputs = [ pkgconfig gtk3 gnome3.defaultIconTheme gdk_pixbuf librsvg + libxml2 itstool intltool wrapGAppsHook ]; + + enableParallelBuilding = true; + + meta = with stdenv.lib; { + homepage = https://wiki.gnome.org/Apps/Tali; + description = "Sort of poker with dice and less money"; + maintainers = gnome3.maintainers; + license = licenses.gpl2; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/games/tali/src.nix b/pkgs/desktops/gnome-3/3.18/games/tali/src.nix new file mode 100644 index 00000000000..12c8aefcd71 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/games/tali/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "tali-3.18.0"; + + src = fetchurl { + url = mirror://gnome/sources/tali/3.18/tali-3.18.0.tar.xz; + sha256 = "fe785ed2c3eeca8706834a967c0011cfee016008b4e55c1f5e0529b348bc9864"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/misc/california/0002-Build-with-evolution-data-server-3.13.90.patch b/pkgs/desktops/gnome-3/3.18/misc/california/0002-Build-with-evolution-data-server-3.13.90.patch new file mode 100644 index 00000000000..c229cc96094 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/misc/california/0002-Build-with-evolution-data-server-3.13.90.patch @@ -0,0 +1,39 @@ +diff --git a/configure.ac b/configure.ac +index 8a94642..1ca6426 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -27,7 +27,7 @@ AC_SUBST(LDFLAGS) + GLIB_REQUIRED=2.38.0 + GTK_REQUIRED=3.12.2 + GEE_REQUIRED=0.10.5 +-ECAL_REQUIRED=3.8.5 ++ECAL_REQUIRED=3.13.90 + LIBSOUP_REQUIRED=2.44 + GDATA_REQUIRED=0.14.0 + GOA_REQUIRED=3.8.3 +diff --git a/src/backing/eds/backing-eds-calendar-source.vala b/src/backing/eds/backing-eds-calendar-source.vala +index ee6a572..5009b5d 100644 +--- a/src/backing/eds/backing-eds-calendar-source.vala ++++ b/src/backing/eds/backing-eds-calendar-source.vala +@@ -256,7 +256,7 @@ internal class EdsCalendarSource : CalendarSource { + + // Invoked by EdsStore prior to making it available outside of unit + internal async void open_async(Cancellable? cancellable) throws Error { +- client = (E.CalClient) yield E.CalClient.connect(eds_source, E.CalClientSourceType.EVENTS, ++ client = (E.CalClient) yield E.CalClient.connect(eds_source, E.CalClientSourceType.EVENTS, 1, + cancellable); + + client.bind_property("readonly", this, PROP_READONLY, BindingFlags.SYNC_CREATE); +diff --git a/vapi/libecal-1.2.vapi b/vapi/libecal-1.2.vapi +index 6ead3ec..46fd711 100644 +--- a/vapi/libecal-1.2.vapi ++++ b/vapi/libecal-1.2.vapi +@@ -23,7 +23,7 @@ namespace E { + public bool check_save_schedules (); + public static bool check_timezones (iCal.icalcomponent comp, GLib.List comps, GLib.Callback tzlookup, void* ecalclient, GLib.Cancellable cancellable) throws GLib.Error; + [CCode (finish_name = "e_cal_client_connect_finish")] +- public static async unowned E.Client connect (E.Source source, E.CalClientSourceType source_type, GLib.Cancellable cancellable) throws GLib.Error; ++ public static async unowned E.Client connect (E.Source source, E.CalClientSourceType source_type, uint32 wait_for_connected_seconds, GLib.Cancellable cancellable) throws GLib.Error; + public static unowned E.Client connect_sync (E.Source source, E.CalClientSourceType source_type, GLib.Cancellable cancellable) throws GLib.Error; + [CCode (finish_name = "e_cal_client_create_object_finish")] + public async void create_object (iCal.icalcomponent icalcomp, GLib.Cancellable? cancellable, out string out_uid) throws GLib.Error; diff --git a/pkgs/desktops/gnome-3/3.18/misc/california/default.nix b/pkgs/desktops/gnome-3/3.18/misc/california/default.nix new file mode 100644 index 00000000000..4bdeeb23a91 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/misc/california/default.nix @@ -0,0 +1,39 @@ +{ stdenv, fetchurl, intltool, pkgconfig, gtk3, vala, makeWrapper +, gnome3, glib, libsoup, libgdata, sqlite, itstool, xdg_utils }: + +let + majorVersion = "0.4"; +in +stdenv.mkDerivation rec { + name = "california-${majorVersion}.0"; + + src = fetchurl { + url = "mirror://gnome/sources/california/${majorVersion}/${name}.tar.xz"; + sha256 = "1dky2kllv469k8966ilnf4xrr7z35pq8mdvs7kwziy59cdikapxj"; + }; + + propagatedUserEnvPkgs = [ gnome3.gnome_themes_standard ]; + + buildInputs = [ makeWrapper intltool pkgconfig vala glib gtk3 gnome3.libgee + libsoup libgdata gnome3.gnome_online_accounts gnome3.evolution_data_server + sqlite itstool xdg_utils gnome3.gsettings_desktop_schemas ]; + + preFixup = '' + wrapProgram "$out/bin/california" \ + --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \ + --prefix XDG_DATA_DIRS : "$XDG_ICON_DIRS:${gnome3.defaultIconTheme}/share:${gnome3.gnome_themes_standard}/share:$out/share:$GSETTINGS_SCHEMAS_PATH:${gnome3.gsettings_desktop_schemas}/share" + ''; + + enableParallelBuilding = true; + + # Apply fedoras patch to build with evolution-data-server >3.13 + patches = [ ./0002-Build-with-evolution-data-server-3.13.90.patch ]; + + meta = with stdenv.lib; { + homepage = https://wiki.gnome.org/Apps/California; + description = "Calendar application for GNOME 3"; + maintainers = with maintainers; [ pSub ]; + license = licenses.lgpl21; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/misc/geary/default.nix b/pkgs/desktops/gnome-3/3.18/misc/geary/default.nix new file mode 100644 index 00000000000..11655edded0 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/misc/geary/default.nix @@ -0,0 +1,52 @@ +{ stdenv, fetchurl, intltool, pkgconfig, gtk3, vala +, makeWrapper, gdk_pixbuf, cmake, desktop_file_utils +, libnotify, libcanberra, libsecret, gmime +, libpthreadstubs, sqlite +, gnome3, librsvg, gnome_doc_utils, webkitgtk }: + +let + majorVersion = "0.8"; +in +stdenv.mkDerivation rec { + name = "geary-${majorVersion}.2"; + + src = fetchurl { + url = "mirror://gnome/sources/geary/${majorVersion}/${name}.tar.xz"; + sha256 = "3cfa626168935acf49c9415fad54c7849f17fd833026cfd3c224ba0fb892d641"; + }; + + propagatedUserEnvPkgs = [ gnome3.gnome_themes_standard ]; + + buildInputs = [ intltool pkgconfig gtk3 makeWrapper cmake desktop_file_utils gnome_doc_utils + vala webkitgtk libnotify libcanberra gnome3.libgee libsecret gmime sqlite + libpthreadstubs gnome3.gsettings_desktop_schemas gnome3.gcr + gdk_pixbuf librsvg gnome3.defaultIconTheme ]; + + preConfigure = '' + substituteInPlace src/CMakeLists.txt --replace '`pkg-config --variable=girdir gobject-introspection-1.0`' '${webkitgtk}/share/gir-1.0' + ''; + + postInstall = '' + mkdir -p $out/share/gsettings-schemas/${name}/ + mv $out/share/glib-2.0 $out/share/gsettings-schemas/${name} + ''; + + preFixup = '' + wrapProgram "$out/bin/geary" \ + --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \ + --prefix XDG_DATA_DIRS : "$XDG_ICON_DIRS:${gnome3.gnome_themes_standard}/share:$out/share:$GSETTINGS_SCHEMAS_PATH" + ''; + + enableParallelBuilding = true; + + patches = [ ./disable_valadoc.patch ]; + patchFlags = "-p0"; + + meta = with stdenv.lib; { + homepage = https://wiki.gnome.org/Apps/Geary; + description = "Mail client for GNOME 3"; + maintainers = gnome3.maintainers; + license = licenses.lgpl2; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/misc/geary/disable_valadoc.patch b/pkgs/desktops/gnome-3/3.18/misc/geary/disable_valadoc.patch new file mode 100644 index 00000000000..e65c0dea747 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/misc/geary/disable_valadoc.patch @@ -0,0 +1,24 @@ +--- src/CMakeLists.txt.orig 2014-05-23 14:41:20.809160364 +0200 ++++ src/CMakeLists.txt 2014-05-23 14:41:29.240261581 +0200 +@@ -696,21 +696,6 @@ + ${CMAKE_COMMAND} -E copy geary-mailer ${CMAKE_BINARY_DIR}/ + ) + +-# Valadoc +-################################################# +-foreach(pkg ${ENGINE_PACKAGES}) +- list(APPEND valadoc_pkg_opts "--pkg=${pkg}") +-endforeach(pkg ${ENGINE_PACKAGES}) +- +-include(FindValadoc) +-add_custom_target( +- valadoc +- WORKING_DIRECTORY +- ${CMAKE_SOURCE_DIR}/src +- COMMAND +- ${VALADOC_EXECUTABLE} --force --no-protected -b ${CMAKE_CURRENT_SOURCE_DIR} -o ${CMAKE_SOURCE_DIR}/valadoc --package-name=geary --package-version=${VERSION} ${ENGINE_SRC} ${valadoc_pkg_opts} --vapidir=${CMAKE_SOURCE_DIR}/bindings/vapi +-) +- + ## Make clean: remove copied files + ################################################## + set_property( diff --git a/pkgs/desktops/gnome-3/3.18/misc/gexiv2/default.nix b/pkgs/desktops/gnome-3/3.18/misc/gexiv2/default.nix new file mode 100644 index 00000000000..7cea9cd8d15 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/misc/gexiv2/default.nix @@ -0,0 +1,28 @@ +{ stdenv, fetchurl, pkgconfig, exiv2, glib, libtool, m4, gnome3 }: + +let + majorVersion = "0.10"; +in +stdenv.mkDerivation rec { + name = "gexiv2-${version}"; + version = "${majorVersion}.3"; + + src = fetchurl { + url = "mirror://gnome/sources/gexiv2/${majorVersion}/${name}.tar.xz"; + sha256 = "390cfb966197fa9f3f32200bc578d7c7f3560358c235e6419657206a362d3988"; + }; + + preConfigure = '' + patchShebangs . + ''; + + buildInputs = [ pkgconfig glib libtool m4 ]; + propagatedBuildInputs = [ exiv2 ]; + + meta = with stdenv.lib; { + homepage = https://wiki.gnome.org/Projects/gexiv2; + description = "GObject wrapper around the Exiv2 photo metadata library"; + platforms = platforms.linux; + maintainers = gnome3.maintainers; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/misc/gfbgraph/default.nix b/pkgs/desktops/gnome-3/3.18/misc/gfbgraph/default.nix new file mode 100644 index 00000000000..e85b087fa41 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/misc/gfbgraph/default.nix @@ -0,0 +1,23 @@ +{ stdenv, intltool, fetchurl, pkgconfig, glib +, gnome3, libsoup, json_glib }: + +stdenv.mkDerivation rec { + name = "gfbgraph-0.2.2"; + + src = fetchurl { + url = "mirror://gnome/sources/gfbgraph/0.2/${name}.tar.xz"; + sha256 = "66c7b1c951863565c179d0b4b5207f27b3b36f80afed9f6a9acfc5fc3ae775d4"; + }; + + buildInputs = [ pkgconfig glib gnome3.gnome_online_accounts ]; + propagatedBuildInputs = [ libsoup json_glib gnome3.rest ]; + + enableParallelBuilding = true; + + meta = with stdenv.lib; { + description = "GLib/GObject wrapper for the Facebook Graph API"; + maintainers = gnome3.maintainers; + license = licenses.lgpl2; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/misc/gitg/default.nix b/pkgs/desktops/gnome-3/3.18/misc/gitg/default.nix new file mode 100644 index 00000000000..c517fca57bf --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/misc/gitg/default.nix @@ -0,0 +1,39 @@ +{ stdenv, fetchurl, fetchgit, vala, intltool, libgit2, pkgconfig, gtk3, glib +, json_glib, webkitgtk, makeWrapper, libpeas, bash, gobjectIntrospection +, gnome3, gtkspell3, shared_mime_info, libgee, libgit2-glib, librsvg }: + +# TODO: icons and theme still does not work +# use packaged gnome3.adwaita-icon-theme + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + preCheck = '' + substituteInPlace tests/libgitg/test-commit.c --replace "/bin/bash" "${bash}/bin/bash" + ''; + doCheck = true; + + makeFlags = "INTROSPECTION_GIRDIR=$(out)/share/gir-1.0/ INTROSPECTION_TYPELIBDIR=$(out)/lib/girepository-1.0"; + + propagatedUserEnvPkgs = [ shared_mime_info + gnome3.gnome_themes_standard ]; + + buildInputs = [ vala intltool libgit2 pkgconfig gtk3 glib json_glib webkitgtk libgee libpeas + libgit2-glib gtkspell3 gnome3.gsettings_desktop_schemas gnome3.gtksourceview librsvg + gobjectIntrospection makeWrapper gnome3.adwaita-icon-theme ]; + + preFixup = '' + wrapProgram "$out/bin/gitg" \ + --prefix GI_TYPELIB_PATH : "$GI_TYPELIB_PATH" \ + --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \ + --prefix XDG_DATA_DIRS : "$XDG_ICON_DIRS:${gtk3}/share:${gnome3.gnome_themes_standard}/share:$out/share:$GSETTINGS_SCHEMAS_PATH" + ''; + + meta = with stdenv.lib; { + homepage = https://wiki.gnome.org/action/show/Apps/Gitg; + description = "GNOME GUI client to view git repositories"; + maintainers = with maintainers; [ iElectric ]; + license = licenses.gpl2; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/misc/gitg/src.nix b/pkgs/desktops/gnome-3/3.18/misc/gitg/src.nix new file mode 100644 index 00000000000..ac95070b5f5 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/misc/gitg/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "gitg-3.18.0"; + + src = fetchurl { + url = mirror://gnome/sources/gitg/3.18/gitg-3.18.0.tar.xz; + sha256 = "fa4b7b9c492f13f5f1d864af1281ea377ac8c7619c856e05f533b18989edf421"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/misc/gnome-tweak-tool/0001-Search-for-themes-and-icons-in-system-data-dirs.patch b/pkgs/desktops/gnome-3/3.18/misc/gnome-tweak-tool/0001-Search-for-themes-and-icons-in-system-data-dirs.patch new file mode 100644 index 00000000000..d5a6f90e33d --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/misc/gnome-tweak-tool/0001-Search-for-themes-and-icons-in-system-data-dirs.patch @@ -0,0 +1,123 @@ +From 175218579aa2b4f4974ff1cf4fd1ac93082a4714 Mon Sep 17 00:00:00 2001 +From: Jascha Geerds +Date: Sat, 1 Aug 2015 21:01:11 +0200 +Subject: [PATCH 1/1] Search for themes and icons in system data dirs + +--- + gtweak/tweaks/tweak_group_interface.py | 17 ++++------------- + gtweak/tweaks/tweak_group_keymouse.py | 7 ++----- + gtweak/utils.py | 17 +++++++++++++++++ + 3 files changed, 23 insertions(+), 18 deletions(-) + +diff --git a/gtweak/tweaks/tweak_group_interface.py b/gtweak/tweaks/tweak_group_interface.py +index ed2ad5f..a319907 100644 +--- a/gtweak/tweaks/tweak_group_interface.py ++++ b/gtweak/tweaks/tweak_group_interface.py +@@ -26,7 +26,7 @@ from gi.repository import Gtk + from gi.repository import GLib + + import gtweak +-from gtweak.utils import walk_directories, make_combo_list_with_default, extract_zip_file ++from gtweak.utils import walk_directories, make_combo_list_with_default, extract_zip_file, get_resource_dirs + from gtweak.tweakmodel import Tweak, TWEAK_GROUP_APPEARANCE + from gtweak.gshellwrapper import GnomeShellFactory + from gtweak.gsettings import GSettingsSetting +@@ -46,10 +46,7 @@ class GtkThemeSwitcher(GSettingsComboTweak): + + def _get_valid_themes(self): + """ Only shows themes that have variations for gtk+-3 and gtk+-2 """ +- dirs = ( os.path.join(gtweak.DATA_DIR, "themes"), +- os.path.join(GLib.get_user_data_dir(), "themes"), +- os.path.join(os.path.expanduser("~"), ".themes")) +- valid = walk_directories(dirs, lambda d: ++ valid = walk_directories(get_resource_dirs('themes'), lambda d: + os.path.exists(os.path.join(d, "gtk-2.0")) and \ + os.path.exists(os.path.join(d, "gtk-3.0"))) + return valid +@@ -64,10 +61,7 @@ class IconThemeSwitcher(GSettingsComboTweak): + **options) + + def _get_valid_icon_themes(self): +- dirs = ( os.path.join(gtweak.DATA_DIR, "icons"), +- os.path.join(GLib.get_user_data_dir(), "icons"), +- os.path.join(os.path.expanduser("~"), ".icons")) +- valid = walk_directories(dirs, lambda d: ++ valid = walk_directories(get_resource_dirs("icons"), lambda d: + os.path.isdir(d) and \ + os.path.exists(os.path.join(d, "index.theme"))) + return valid +@@ -82,10 +76,7 @@ class CursorThemeSwitcher(GSettingsComboTweak): + **options) + + def _get_valid_cursor_themes(self): +- dirs = ( os.path.join(gtweak.DATA_DIR, "icons"), +- os.path.join(GLib.get_user_data_dir(), "icons"), +- os.path.join(os.path.expanduser("~"), ".icons")) +- valid = walk_directories(dirs, lambda d: ++ valid = walk_directories(get_resource_dirs("icons"), lambda d: + os.path.isdir(d) and \ + os.path.exists(os.path.join(d, "cursors"))) + return valid +diff --git a/gtweak/tweaks/tweak_group_keymouse.py b/gtweak/tweaks/tweak_group_keymouse.py +index b56a4f4..3486098 100644 +--- a/gtweak/tweaks/tweak_group_keymouse.py ++++ b/gtweak/tweaks/tweak_group_keymouse.py +@@ -20,7 +20,7 @@ import os.path + from gi.repository import GLib + + import gtweak +-from gtweak.utils import XSettingsOverrides, walk_directories, make_combo_list_with_default ++from gtweak.utils import XSettingsOverrides, walk_directories, make_combo_list_with_default, get_resource_dirs + from gtweak.widgets import ListBoxTweakGroup, GSettingsComboTweak, GSettingsSwitchTweak, GetterSetterSwitchTweak, Title + + class PrimaryPasteTweak(GetterSetterSwitchTweak): +@@ -47,10 +47,7 @@ class KeyThemeSwitcher(GSettingsComboTweak): + **options) + + def _get_valid_key_themes(self): +- dirs = ( os.path.join(gtweak.DATA_DIR, "themes"), +- os.path.join(GLib.get_user_data_dir(), "themes"), +- os.path.join(os.path.expanduser("~"), ".themes")) +- valid = walk_directories(dirs, lambda d: ++ valid = walk_directories(get_resource_dirs("themes"), lambda d: + os.path.isfile(os.path.join(d, "gtk-3.0", "gtk-keys.css")) and \ + os.path.isfile(os.path.join(d, "gtk-2.0-key", "gtkrc"))) + return valid +diff --git a/gtweak/utils.py b/gtweak/utils.py +index 3d20425..0fcb51d 100644 +--- a/gtweak/utils.py ++++ b/gtweak/utils.py +@@ -21,6 +21,7 @@ import tempfile + import shutil + import subprocess + import glob ++import itertools + + import gtweak + from gtweak.gsettings import GSettingsSetting +@@ -114,6 +115,22 @@ def execute_subprocess(cmd_then_args, block=True): + stdout, stderr = p.communicate() + return stdout, stderr, p.returncode + ++def get_resource_dirs(resource): ++ """Returns a list of all known resource dirs for a given resource. ++ ++ :param str resource: ++ Name of the resource (e.g. "themes") ++ :return: ++ A list of resource dirs ++ """ ++ dirs = [os.path.join(dir, resource) ++ for dir in itertools.chain(GLib.get_system_data_dirs(), ++ (gtweak.DATA_DIR, ++ GLib.get_user_data_dir()))] ++ dirs += [os.path.join(os.path.expanduser("~"), ".{}".format(resource))] ++ ++ return [dir for dir in dirs if os.path.isdir(dir)] ++ + @singleton + class AutostartManager: + +-- +2.4.5 + diff --git a/pkgs/desktops/gnome-3/3.18/misc/gnome-tweak-tool/0002-Don-t-show-multiple-entries-for-a-single-theme.patch b/pkgs/desktops/gnome-3/3.18/misc/gnome-tweak-tool/0002-Don-t-show-multiple-entries-for-a-single-theme.patch new file mode 100644 index 00000000000..61ae2734979 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/misc/gnome-tweak-tool/0002-Don-t-show-multiple-entries-for-a-single-theme.patch @@ -0,0 +1,103 @@ +From edd3203c7b7d5ba596df9f148c443cdfc8a58d88 Mon Sep 17 00:00:00 2001 +From: Jascha Geerds +Date: Sat, 1 Aug 2015 21:26:57 +0200 +Subject: [PATCH 1/1] Don't show multiple entries for a single theme + +--- + gtweak/tweaks/tweak_group_interface.py | 8 ++++---- + gtweak/tweaks/tweak_group_keymouse.py | 4 ++-- + gtweak/utils.py | 16 ++++++++++++++++ + 3 files changed, 22 insertions(+), 6 deletions(-) + +diff --git a/gtweak/tweaks/tweak_group_interface.py b/gtweak/tweaks/tweak_group_interface.py +index a319907..82c0286 100644 +--- a/gtweak/tweaks/tweak_group_interface.py ++++ b/gtweak/tweaks/tweak_group_interface.py +@@ -26,7 +26,7 @@ from gi.repository import Gtk + from gi.repository import GLib + + import gtweak +-from gtweak.utils import walk_directories, make_combo_list_with_default, extract_zip_file, get_resource_dirs ++from gtweak.utils import walk_directories, make_combo_list_with_default, extract_zip_file, get_resource_dirs, get_unique_resources + from gtweak.tweakmodel import Tweak, TWEAK_GROUP_APPEARANCE + from gtweak.gshellwrapper import GnomeShellFactory + from gtweak.gsettings import GSettingsSetting +@@ -49,7 +49,7 @@ class GtkThemeSwitcher(GSettingsComboTweak): + valid = walk_directories(get_resource_dirs('themes'), lambda d: + os.path.exists(os.path.join(d, "gtk-2.0")) and \ + os.path.exists(os.path.join(d, "gtk-3.0"))) +- return valid ++ return get_unique_resources(valid) + + class IconThemeSwitcher(GSettingsComboTweak): + def __init__(self, **options): +@@ -64,7 +64,7 @@ class IconThemeSwitcher(GSettingsComboTweak): + valid = walk_directories(get_resource_dirs("icons"), lambda d: + os.path.isdir(d) and \ + os.path.exists(os.path.join(d, "index.theme"))) +- return valid ++ return get_unique_resources(valid) + + class CursorThemeSwitcher(GSettingsComboTweak): + def __init__(self, **options): +@@ -79,7 +79,7 @@ class CursorThemeSwitcher(GSettingsComboTweak): + valid = walk_directories(get_resource_dirs("icons"), lambda d: + os.path.isdir(d) and \ + os.path.exists(os.path.join(d, "cursors"))) +- return valid ++ return get_unique_resources(valid) + + class ShellThemeTweak(Gtk.Box, Tweak): + +diff --git a/gtweak/tweaks/tweak_group_keymouse.py b/gtweak/tweaks/tweak_group_keymouse.py +index 3486098..9f53425 100644 +--- a/gtweak/tweaks/tweak_group_keymouse.py ++++ b/gtweak/tweaks/tweak_group_keymouse.py +@@ -20,7 +20,7 @@ import os.path + from gi.repository import GLib + + import gtweak +-from gtweak.utils import XSettingsOverrides, walk_directories, make_combo_list_with_default, get_resource_dirs ++from gtweak.utils import XSettingsOverrides, walk_directories, make_combo_list_with_default, get_resource_dirs, get_unique_resources + from gtweak.widgets import ListBoxTweakGroup, GSettingsComboTweak, GSettingsSwitchTweak, GetterSetterSwitchTweak, Title + + class PrimaryPasteTweak(GetterSetterSwitchTweak): +@@ -50,7 +50,7 @@ class KeyThemeSwitcher(GSettingsComboTweak): + valid = walk_directories(get_resource_dirs("themes"), lambda d: + os.path.isfile(os.path.join(d, "gtk-3.0", "gtk-keys.css")) and \ + os.path.isfile(os.path.join(d, "gtk-2.0-key", "gtkrc"))) +- return valid ++ return get_unique_resources(valid) + + TWEAK_GROUPS = [ + ListBoxTweakGroup(_("Keyboard and Mouse"), +diff --git a/gtweak/utils.py b/gtweak/utils.py +index 0fcb51d..ce8e12e 100644 +--- a/gtweak/utils.py ++++ b/gtweak/utils.py +@@ -131,6 +131,22 @@ def get_resource_dirs(resource): + + return [dir for dir in dirs if os.path.isdir(dir)] + ++def get_unique_resources(dirs): ++ """Filter out duplicated resources. ++ ++ :param list dirs: ++ List of resource dirs (e.g. /usr/share/themes/Adwaita) ++ :return: ++ List of dirs without duplicated resources ++ """ ++ unique_dirs = {} ++ for dir in dirs: ++ basename = os.path.basename(dir) ++ if basename not in unique_dirs: ++ unique_dirs[basename] = dir ++ ++ return unique_dirs ++ + @singleton + class AutostartManager: + +-- +2.4.5 + diff --git a/pkgs/desktops/gnome-3/3.18/misc/gnome-tweak-tool/0003-Create-config-dir-if-it-doesn-t-exist.patch b/pkgs/desktops/gnome-3/3.18/misc/gnome-tweak-tool/0003-Create-config-dir-if-it-doesn-t-exist.patch new file mode 100644 index 00000000000..840ebb82ec7 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/misc/gnome-tweak-tool/0003-Create-config-dir-if-it-doesn-t-exist.patch @@ -0,0 +1,29 @@ +From dea8fc3c37c43f4fbbcc658ee995a95b93452b3c Mon Sep 17 00:00:00 2001 +From: Jascha Geerds +Date: Sun, 2 Aug 2015 12:01:20 +0200 +Subject: [PATCH 1/1] Create config dir if it doesn't exist + +Otherwise gnome-tweak-tool can't enable the dark theme and fails +without a clear error message. +--- + gtweak/gtksettings.py | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/gtweak/gtksettings.py b/gtweak/gtksettings.py +index bcec9f1..f39991b 100644 +--- a/gtweak/gtksettings.py ++++ b/gtweak/gtksettings.py +@@ -35,6 +35,10 @@ class GtkSettingsManager: + def _get_keyfile(self): + keyfile = None + try: ++ config_dir = os.path.dirname(self._path) ++ if not os.path.isdir(config_dir): ++ os.makedirs(config_dir) ++ + keyfile = GLib.KeyFile() + keyfile.load_from_file(self._path, 0) + except MemoryError: +-- +2.4.5 + diff --git a/pkgs/desktops/gnome-3/3.18/misc/gnome-tweak-tool/default.nix b/pkgs/desktops/gnome-3/3.18/misc/gnome-tweak-tool/default.nix new file mode 100644 index 00000000000..986d4058af9 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/misc/gnome-tweak-tool/default.nix @@ -0,0 +1,44 @@ +{ stdenv, intltool, fetchurl, python, pygobject3, atk +, pkgconfig, gtk3, glib, libsoup +, bash, makeWrapper, itstool, libxml2, python3Packages +, gnome3, librsvg, gdk_pixbuf, file, libnotify }: + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + doCheck = true; + + propagatedUserEnvPkgs = [ gnome3.gnome_themes_standard ]; + + makeFlags = [ "DESTDIR=/" ]; + + buildInputs = [ pkgconfig gtk3 glib intltool itstool libxml2 + gnome3.gsettings_desktop_schemas makeWrapper file + gdk_pixbuf gnome3.defaultIconTheme librsvg + python pygobject3 libnotify gnome3.gnome_shell + libsoup gnome3.gnome_settings_daemon gnome3.nautilus + gnome3.gnome_desktop ]; + + preFixup = '' + wrapProgram "$out/bin/gnome-tweak-tool" \ + --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \ + --suffix XDG_DATA_DIRS : "${gtk3}/share:${gnome3.gnome_themes_standard}/share:$out/share:$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH" \ + --prefix GI_TYPELIB_PATH : "$GI_TYPELIB_PATH" \ + --prefix PYTHONPATH : "$PYTHONPATH:$(toPythonPath $out)" + ''; + + patches = [ + ./find_gsettings.patch + ./0001-Search-for-themes-and-icons-in-system-data-dirs.patch + ./0002-Don-t-show-multiple-entries-for-a-single-theme.patch + ./0003-Create-config-dir-if-it-doesn-t-exist.patch + ]; + + meta = with stdenv.lib; { + homepage = https://wiki.gnome.org/action/show/Apps/GnomeTweakTool; + description = "A tool to customize advanced GNOME 3 options"; + maintainers = gnome3.maintainers; + license = licenses.gpl3; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/misc/gnome-tweak-tool/find_gsettings.patch b/pkgs/desktops/gnome-3/3.18/misc/gnome-tweak-tool/find_gsettings.patch new file mode 100644 index 00000000000..3e68c04cb3a --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/misc/gnome-tweak-tool/find_gsettings.patch @@ -0,0 +1,22 @@ +diff --git a/gtweak/gsettings.py b/gtweak/gsettings.py +index a00fe19..dce74b2 100644 +--- a/gtweak/gsettings.py ++++ b/gtweak/gsettings.py +@@ -33,10 +33,15 @@ class GSettingsMissingError(Exception): + + class _GSettingsSchema: + def __init__(self, schema_name, schema_dir=None, schema_filename=None, **options): +- if not schema_dir: +- schema_dir = gtweak.GSETTINGS_SCHEMA_DIR + if not schema_filename: + schema_filename = schema_name + ".gschema.xml" ++ if not schema_dir: ++ schema_dir = gtweak.GSETTINGS_SCHEMA_DIR ++ for xdg_dir in GLib.get_system_data_dirs(): ++ dir = os.path.join(xdg_dir, "glib-2.0", "schemas") ++ if os.path.exists(os.path.join(dir, schema_filename)): ++ schema_dir = dir ++ break + + schema_path = os.path.join(schema_dir, schema_filename) + if not os.path.exists(schema_path): diff --git a/pkgs/desktops/gnome-3/3.18/misc/gnome-tweak-tool/src.nix b/pkgs/desktops/gnome-3/3.18/misc/gnome-tweak-tool/src.nix new file mode 100644 index 00000000000..abb957394e7 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/misc/gnome-tweak-tool/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "gnome-tweak-tool-3.16.2"; + + src = fetchurl { + url = mirror://gnome/sources/gnome-tweak-tool/3.16/gnome-tweak-tool-3.16.2.tar.xz; + sha256 = "b1e403725c3489be07e1d754f044d1128eddb38204a344bbe0baa523d531bd64"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/misc/gnome-video-effects/default.nix b/pkgs/desktops/gnome-3/3.18/misc/gnome-video-effects/default.nix new file mode 100644 index 00000000000..c0bd2fed3f2 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/misc/gnome-video-effects/default.nix @@ -0,0 +1,20 @@ +{ stdenv, fetchurl, pkgconfig, intltool, gnome3 }: + +stdenv.mkDerivation rec { + name = "gnome-video-effects-${version}"; + version = "0.4.1"; + + src = fetchurl { + url = "mirror://gnome/sources/gnome-video-effects/0.4/${name}.tar.xz"; + sha256 = "0jl4iny2dqpcgi3sgxzpgnbw0752i8ay3rscp2cgdjlp79ql5gil"; + }; + + buildInputs = [ pkgconfig intltool ]; + + meta = with stdenv.lib; { + homepage = https://wiki.gnome.org/Projects/GnomeVideoEffects; + platforms = platforms.linux; + maintainers = gnome3.maintainers; + license = licenses.gpl2; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/misc/gpaste/default.nix b/pkgs/desktops/gnome-3/3.18/misc/gpaste/default.nix new file mode 100644 index 00000000000..dee9caf444c --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/misc/gpaste/default.nix @@ -0,0 +1,44 @@ +{ stdenv, fetchurl, intltool, autoreconfHook, pkgconfig, vala, glib +, pango, gtk3, gnome3, dbus, clutter, appstream-glib, makeWrapper }: + +stdenv.mkDerivation rec { + version = "${gnome3.version}.3"; + name = "gpaste-${version}"; + + src = fetchurl { + url = "https://github.com/Keruspe/GPaste/archive/v${version}.tar.gz"; + sha256 = "1czc707y2ksb8lgq1la0qkj3wpi202hjfiyshsndhw0pqn3qjj4a"; + }; + + buildInputs = [ intltool autoreconfHook pkgconfig vala glib + gtk3 gnome3.gnome_control_center dbus.libs + clutter pango appstream-glib makeWrapper ]; + + preConfigure = "intltoolize -f"; + + configureFlags = [ "--with-controlcenterdir=$(out)/gnome-control-center/keybindings" + "--with-dbusservicesdir=$(out)/share/dbus-1/services" ]; + + enableParallelBuilding = true; + + preFixup = + let + libPath = stdenv.lib.makeLibraryPath + [ glib gtk3 clutter pango ]; + in + '' + for i in $out/libexec/gpaste/*; do + wrapProgram $i \ + --prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH" \ + --prefix GI_TYPELIB_PATH : "$GI_TYPELIB_PATH" + done + ''; + + meta = with stdenv.lib; { + homepage = https://github.com/Keruspe/GPaste; + description = "Clipboard management system with GNOME3 integration"; + license = licenses.gpl3; + platforms = platforms.linux; + maintainers = gnome3.maintainers; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/misc/gtkhtml/default.nix b/pkgs/desktops/gnome-3/3.18/misc/gtkhtml/default.nix new file mode 100644 index 00000000000..89703b61932 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/misc/gtkhtml/default.nix @@ -0,0 +1,16 @@ +{ stdenv, fetchurl, pkgconfig, gtk3, intltool +, gnome3, enchant, isocodes }: + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + buildInputs = [ pkgconfig gtk3 intltool gnome3.adwaita-icon-theme + gnome3.gsettings_desktop_schemas ]; + + propagatedBuildInputs = [ enchant isocodes ]; + + meta = with stdenv.lib; { + platforms = platforms.linux; + maintainers = gnome3.maintainers; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/misc/gtkhtml/src.nix b/pkgs/desktops/gnome-3/3.18/misc/gtkhtml/src.nix new file mode 100644 index 00000000000..21876ec9c39 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/misc/gtkhtml/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "gtkhtml-4.10.0"; + + src = fetchurl { + url = mirror://gnome/sources/gtkhtml/4.10/gtkhtml-4.10.0.tar.xz; + sha256 = "ca3b6424fb2c7ac5d9cb8fdafb69318fa2e825c9cf6ed17d1e38d9b29e5606c3"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/misc/libgda/default.nix b/pkgs/desktops/gnome-3/3.18/misc/libgda/default.nix new file mode 100644 index 00000000000..1fcb411d120 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/misc/libgda/default.nix @@ -0,0 +1,30 @@ +{ stdenv, fetchurl, pkgconfig, intltool, itstool, libxml2, gtk3, openssl }: + +let + major = "5.2"; + minor = "2"; + +in stdenv.mkDerivation rec { + version = "${major}.${minor}"; + name = "libgda-${version}"; + + src = fetchurl { + url = "mirror://gnome/sources/libgda/${major}/${name}.tar.xz"; + sha256 = "c9b8b1c32f1011e47b73c5dcf36649aaef2f1edaa5f5d75be20d9caadc2bc3e4"; + }; + + configureFlags = [ + "--enable-gi-system-install=no" + ]; + + enableParallelBuilding = true; + + buildInputs = [ pkgconfig intltool itstool libxml2 gtk3 openssl ]; + + meta = with stdenv.lib; { + description = "Database access library"; + homepage = http://www.gnome-db.org/; + license = [ licenses.lgpl2 licenses.gpl2 ]; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/misc/libgit2-glib/default.nix b/pkgs/desktops/gnome-3/3.18/misc/libgit2-glib/default.nix new file mode 100644 index 00000000000..dbdd2cc7fd1 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/misc/libgit2-glib/default.nix @@ -0,0 +1,21 @@ +{ stdenv, fetchurl, gnome3, libtool, pkgconfig, vala +, gtk_doc, gobjectIntrospection, libgit2, glib }: + +let + majorVersion = "0.0"; +in +stdenv.mkDerivation rec { + name = "libgit2-glib-${majorVersion}.24"; + + src = fetchurl { + url = "mirror://gnome/sources/libgit2-glib/0.0/${name}.tar.xz"; + sha256 = "8a0a6f65d86f2c8cb9bcb20c5e0ea6fd02271399292a71fc7e6852f13adbbdb8"; + }; + + buildInputs = [ gnome3.gnome_common libtool pkgconfig vala + gtk_doc gobjectIntrospection libgit2 glib ]; + + meta = with stdenv.lib; { + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/misc/libmediaart/default.nix b/pkgs/desktops/gnome-3/3.18/misc/libmediaart/default.nix new file mode 100644 index 00000000000..b8648012573 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/misc/libmediaart/default.nix @@ -0,0 +1,22 @@ +{ stdenv, fetchurl, pkgconfig, glib, gdk_pixbuf, gobjectIntrospection, gnome3 }: + +let + majorVersion = "1.9"; +in +stdenv.mkDerivation rec { + name = "libmediaart-${majorVersion}.0"; + + src = fetchurl { + url = "mirror://gnome/sources/libmediaart/${majorVersion}/${name}.tar.xz"; + sha256 = "0vshvm3sfwqs365glamvkmgnzjnmxd15j47xn0ak3p6l57dqlrll"; + }; + + buildInputs = [ pkgconfig glib gdk_pixbuf gobjectIntrospection ]; + + meta = with stdenv.lib; { + description = "Library tasked with managing, extracting and handling media art caches"; + maintainers = gnome3.maintainers; + license = licenses.gpl2; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/misc/pomodoro/default.nix b/pkgs/desktops/gnome-3/3.18/misc/pomodoro/default.nix new file mode 100644 index 00000000000..0440af440fe --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/misc/pomodoro/default.nix @@ -0,0 +1,50 @@ +{ stdenv, fetchFromGitHub, which, automake113x, intltool, pkgconfig, libtool, makeWrapper, + dbus_glib, libcanberra, gst_all_1, vala, gnome3, gtk3, gst_plugins_base, + glib, gobjectIntrospection, telepathy_glib +}: + +stdenv.mkDerivation rec { + rev = "624945d"; + name = "gnome-shell-pomodoro-${gnome3.version}-${rev}"; + + src = fetchFromGitHub { + owner = "codito"; + repo = "gnome-pomodoro"; + rev = "${rev}"; + sha256 = "0vjy95zvd309n8g13fa80qhqlv7k6wswhrjw7gddxrnmr662xdqq"; + }; + + configureScript = ''./autogen.sh''; + + buildInputs = [ + which automake113x intltool glib gobjectIntrospection pkgconfig libtool + makeWrapper dbus_glib libcanberra vala gst_all_1.gstreamer + gst_all_1.gst-plugins-base gst_all_1.gst-plugins-good + gnome3.gsettings_desktop_schemas gnome3.gnome_desktop + gnome3.gnome_common gnome3.gnome_shell gtk3 telepathy_glib + gnome3.defaultIconTheme + ]; + + preBuild = '' + sed -i 's|\$(INTROSPECTION_GIRDIR)|${gnome3.gnome_desktop}/share/gir-1.0|' \ + vapi/Makefile + ''; + + preFixup = '' + wrapProgram $out/bin/gnome-pomodoro \ + --prefix XDG_DATA_DIRS : \ + "$out/share:$GSETTINGS_SCHEMAS_PATH:$XDG_DATA_DIRS" + ''; + + meta = with stdenv.lib; { + homepage = https://github.com/codito/gnome-shell-pomodoro; + description = "A time management utility for GNOME based on the pomodoro technique"; + longDescription = '' + This GNOME utility helps to manage time according to Pomodoro Technique. + It intends to improve productivity and focus by taking short breaks. + ''; + maintainers = with maintainers; [ DamienCassou jgeerds ]; + license = licenses.gpl3; + platforms = platforms.linux; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 56fadb5ce10..e276c326859 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -13855,6 +13855,8 @@ let gnome3_16 = recurseIntoAttrs (callPackage ../desktops/gnome-3/3.16 { }); + gnome3_18 = recurseIntoAttrs (callPackage ../desktops/gnome-3/3.18 { }); + gnome3 = gnome3_16; gnome = recurseIntoAttrs gnome2; From e43d3b711400c43b6366e896a5186bc90287f256 Mon Sep 17 00:00:00 2001 From: Jude Taylor Date: Fri, 25 Sep 2015 02:33:21 -0700 Subject: [PATCH 34/85] fix faulty include in libpsl --- pkgs/development/libraries/libpsl/default.nix | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/pkgs/development/libraries/libpsl/default.nix b/pkgs/development/libraries/libpsl/default.nix index 58de331c0c5..7d4d4503c54 100644 --- a/pkgs/development/libraries/libpsl/default.nix +++ b/pkgs/development/libraries/libpsl/default.nix @@ -28,6 +28,10 @@ in stdenv.mkDerivation { buildInputs = [ icu libxslt ]; nativeBuildInputs = [ autoreconfHook docbook_xsl gtk_doc pkgconfig ]; + postPatch = '' + substituteInPlace src/psl.c --replace bits/stat.h sys/stat.h + ''; + preAutoreconf = '' mkdir m4 gtkdocize From 72aa4582851271e027453d5caf932b6acebc4414 Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Fri, 25 Sep 2015 11:38:26 +0200 Subject: [PATCH 35/85] Revert "pcre: Fix patch method" This reverts commit fb30776a77122b687fd5f758672311dbcbd81cc2. --- pkgs/development/libraries/pcre/default.nix | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/pkgs/development/libraries/pcre/default.nix b/pkgs/development/libraries/pcre/default.nix index f32af2a0e1e..5a55db53348 100644 --- a/pkgs/development/libraries/pcre/default.nix +++ b/pkgs/development/libraries/pcre/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, autoreconfHook, unicodeSupport ? true, cplusplusSupport ? true +{ stdenv, fetchurl, unicodeSupport ? true, cplusplusSupport ? true , windows ? null }: @@ -12,12 +12,8 @@ stdenv.mkDerivation rec { sha256 = "17bqykp604p7376wj3q2nmjdhrb6v1ny8q08zdwi7qvc02l9wrsi"; }; - nativeBuildInputs = [ autoreconfHook ]; - # A bundle of fixes which should be removed for 8.38 - patchPhase = '' - patch -p0 -i ${./fixes.patch} - ''; + patches = [ ./fixes.patch ]; outputs = [ "out" "doc" "man" ]; From 298ec05e74f1e375e3929a1442e3473b384ad77b Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Fri, 25 Sep 2015 11:38:34 +0200 Subject: [PATCH 36/85] Revert "pcre: Updates to fix a number of vulnerabilities" This reverts commit 453b986d2f1061dd04f7a2f198c4e5276ddc8d8f. Such large patches should not be included in the repo. --- pkgs/development/libraries/pcre/default.nix | 3 - pkgs/development/libraries/pcre/fixes.patch | 3538 ------------------- 2 files changed, 3541 deletions(-) delete mode 100644 pkgs/development/libraries/pcre/fixes.patch diff --git a/pkgs/development/libraries/pcre/default.nix b/pkgs/development/libraries/pcre/default.nix index 5a55db53348..a34f3e5e132 100644 --- a/pkgs/development/libraries/pcre/default.nix +++ b/pkgs/development/libraries/pcre/default.nix @@ -12,9 +12,6 @@ stdenv.mkDerivation rec { sha256 = "17bqykp604p7376wj3q2nmjdhrb6v1ny8q08zdwi7qvc02l9wrsi"; }; - # A bundle of fixes which should be removed for 8.38 - patches = [ ./fixes.patch ]; - outputs = [ "out" "doc" "man" ]; configureFlags = '' diff --git a/pkgs/development/libraries/pcre/fixes.patch b/pkgs/development/libraries/pcre/fixes.patch deleted file mode 100644 index 3b39128d7e4..00000000000 --- a/pkgs/development/libraries/pcre/fixes.patch +++ /dev/null @@ -1,3538 +0,0 @@ -Index: pcre_jit_compile.c -=================================================================== ---- pcre_jit_compile.c (revision 1554) -+++ pcre_jit_compile.c (working copy) -@@ -1064,6 +1064,7 @@ - pcre_uchar *end = NULL; - int private_data_ptr = *private_data_start; - int space, size, bracketlen; -+BOOL repeat_check = TRUE; - - while (cc < ccend) - { -@@ -1071,9 +1072,10 @@ - size = 0; - bracketlen = 0; - if (private_data_ptr > SLJIT_MAX_LOCAL_SIZE) -- return; -+ break; - -- if (*cc == OP_ONCE || *cc == OP_ONCE_NC || *cc == OP_BRA || *cc == OP_CBRA || *cc == OP_COND) -+ if (repeat_check && (*cc == OP_ONCE || *cc == OP_ONCE_NC || *cc == OP_BRA || *cc == OP_CBRA || *cc == OP_COND)) -+ { - if (detect_repeat(common, cc)) - { - /* These brackets are converted to repeats, so no global -@@ -1081,6 +1083,8 @@ - if (cc >= end) - end = bracketend(cc); - } -+ } -+ repeat_check = TRUE; - - switch(*cc) - { -@@ -1136,6 +1140,13 @@ - bracketlen = 1 + LINK_SIZE + IMM2_SIZE; - break; - -+ case OP_BRAZERO: -+ case OP_BRAMINZERO: -+ case OP_BRAPOSZERO: -+ repeat_check = FALSE; -+ size = 1; -+ break; -+ - CASE_ITERATOR_PRIVATE_DATA_1 - space = 1; - size = -2; -@@ -1162,12 +1173,17 @@ - size = 1; - break; - -- CASE_ITERATOR_TYPE_PRIVATE_DATA_2B -+ case OP_TYPEUPTO: - if (cc[1 + IMM2_SIZE] != OP_ANYNL && cc[1 + IMM2_SIZE] != OP_EXTUNI) - space = 2; - size = 1 + IMM2_SIZE; - break; - -+ case OP_TYPEMINUPTO: -+ space = 2; -+ size = 1 + IMM2_SIZE; -+ break; -+ - case OP_CLASS: - case OP_NCLASS: - size += 1 + 32 / sizeof(pcre_uchar); -@@ -1316,6 +1332,13 @@ - cc += 1 + LINK_SIZE + IMM2_SIZE; - break; - -+ case OP_THEN: -+ stack_restore = TRUE; -+ if (common->control_head_ptr != 0) -+ *needs_control_head = TRUE; -+ cc ++; -+ break; -+ - default: - stack_restore = TRUE; - /* Fall through. */ -@@ -2220,6 +2243,7 @@ - SLJIT_ASSERT_STOP(); - break; - } -+ SLJIT_ASSERT(current > (sljit_sw*)current[-1]); - current = (sljit_sw*)current[-1]; - } - return -1; -@@ -3209,7 +3233,7 @@ - bytes[0] = len; - } - --static int scan_prefix(compiler_common *common, pcre_uchar *cc, pcre_uint32 *chars, pcre_uint8 *bytes, int max_chars) -+static int scan_prefix(compiler_common *common, pcre_uchar *cc, pcre_uint32 *chars, pcre_uint8 *bytes, int max_chars, pcre_uint32 *rec_count) - { - /* Recursive function, which scans prefix literals. */ - BOOL last, any, caseless; -@@ -3227,9 +3251,14 @@ - repeat = 1; - while (TRUE) - { -+ if (*rec_count == 0) -+ return 0; -+ (*rec_count)--; -+ - last = TRUE; - any = FALSE; - caseless = FALSE; -+ - switch (*cc) - { - case OP_CHARI: -@@ -3291,7 +3320,7 @@ - #ifdef SUPPORT_UTF - if (common->utf && HAS_EXTRALEN(*cc)) len += GET_EXTRALEN(*cc); - #endif -- max_chars = scan_prefix(common, cc + len, chars, bytes, max_chars); -+ max_chars = scan_prefix(common, cc + len, chars, bytes, max_chars, rec_count); - if (max_chars == 0) - return consumed; - last = FALSE; -@@ -3314,7 +3343,7 @@ - alternative = cc + GET(cc, 1); - while (*alternative == OP_ALT) - { -- max_chars = scan_prefix(common, alternative + 1 + LINK_SIZE, chars, bytes, max_chars); -+ max_chars = scan_prefix(common, alternative + 1 + LINK_SIZE, chars, bytes, max_chars, rec_count); - if (max_chars == 0) - return consumed; - alternative += GET(alternative, 1); -@@ -3556,6 +3585,7 @@ - int range_right = -1, range_len = 3 - 1; - sljit_ub *update_table = NULL; - BOOL in_range; -+pcre_uint32 rec_count; - - for (i = 0; i < MAX_N_CHARS; i++) - { -@@ -3564,7 +3594,8 @@ - bytes[i * MAX_N_BYTES] = 0; - } - --max = scan_prefix(common, common->start, chars, bytes, MAX_N_CHARS); -+rec_count = 10000; -+max = scan_prefix(common, common->start, chars, bytes, MAX_N_CHARS, &rec_count); - - if (max <= 1) - return FALSE; -@@ -4311,8 +4342,10 @@ - case 4: - if ((ranges[1] - ranges[0]) == (ranges[3] - ranges[2]) - && (ranges[0] | (ranges[2] - ranges[0])) == ranges[2] -+ && (ranges[1] & (ranges[2] - ranges[0])) == 0 - && is_powerof2(ranges[2] - ranges[0])) - { -+ SLJIT_ASSERT((ranges[0] & (ranges[2] - ranges[0])) == 0 && (ranges[2] & ranges[3] & (ranges[2] - ranges[0])) != 0); - OP2(SLJIT_OR, TMP1, 0, TMP1, 0, SLJIT_IMM, ranges[2] - ranges[0]); - if (ranges[2] + 1 != ranges[3]) - { -@@ -4900,9 +4933,10 @@ - if (!check_class_ranges(common, (const pcre_uint8 *)cc, FALSE, TRUE, list)) - { - #ifdef COMPILE_PCRE8 -- SLJIT_ASSERT(common->utf); -+ jump = NULL; -+ if (common->utf) - #endif -- jump = CMP(SLJIT_GREATER, TMP1, 0, SLJIT_IMM, 255); -+ jump = CMP(SLJIT_GREATER, TMP1, 0, SLJIT_IMM, 255); - - OP2(SLJIT_AND, TMP2, 0, TMP1, 0, SLJIT_IMM, 0x7); - OP2(SLJIT_LSHR, TMP1, 0, TMP1, 0, SLJIT_IMM, 3); -@@ -4911,7 +4945,10 @@ - OP2(SLJIT_AND | SLJIT_SET_E, SLJIT_UNUSED, 0, TMP1, 0, TMP2, 0); - add_jump(compiler, list, JUMP(SLJIT_NOT_ZERO)); - -- JUMPHERE(jump); -+#ifdef COMPILE_PCRE8 -+ if (common->utf) -+#endif -+ JUMPHERE(jump); - } - - OP1(SLJIT_MOV, TMP1, 0, TMP3, 0); -@@ -7665,6 +7702,10 @@ - OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), STACK(0), STR_PTR, 0); - } - -+ /* Even if the match is empty, we need to reset the control head. */ -+ if (needs_control_head) -+ OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), common->control_head_ptr, SLJIT_MEM1(STACK_TOP), STACK(stack)); -+ - if (opcode == OP_SBRAPOS || opcode == OP_SCBRAPOS) - add_jump(compiler, &emptymatch, CMP(SLJIT_EQUAL, TMP1, 0, STR_PTR, 0)); - -@@ -7692,6 +7733,10 @@ - OP1(SLJIT_MOV, SLJIT_MEM1(TMP2), (framesize + 1) * sizeof(sljit_sw), STR_PTR, 0); - } - -+ /* Even if the match is empty, we need to reset the control head. */ -+ if (needs_control_head) -+ OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), common->control_head_ptr, SLJIT_MEM1(STACK_TOP), STACK(stack)); -+ - if (opcode == OP_SBRAPOS || opcode == OP_SCBRAPOS) - add_jump(compiler, &emptymatch, CMP(SLJIT_EQUAL, TMP1, 0, STR_PTR, 0)); - -@@ -7704,9 +7749,6 @@ - } - } - -- if (needs_control_head) -- OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), common->control_head_ptr, SLJIT_MEM1(STACK_TOP), STACK(stack)); -- - JUMPTO(SLJIT_JUMP, loop); - flush_stubs(common); - -@@ -8441,8 +8483,7 @@ - OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), STACK(1), STR_PTR, 0); - } - BACKTRACK_AS(braminzero_backtrack)->matchingpath = LABEL(); -- if (cc[1] > OP_ASSERTBACK_NOT) -- count_match(common); -+ count_match(common); - break; - - case OP_ONCE: -@@ -9624,7 +9665,7 @@ - DEFINE_COMPILER; - pcre_uchar *cc = common->start + common->currententry->start; - pcre_uchar *ccbegin = cc + 1 + LINK_SIZE + (*cc == OP_BRA ? 0 : IMM2_SIZE); --pcre_uchar *ccend = bracketend(cc); -+pcre_uchar *ccend = bracketend(cc) - (1 + LINK_SIZE); - BOOL needs_control_head; - int framesize = get_framesize(common, cc, NULL, TRUE, &needs_control_head); - int private_data_size = get_private_data_copy_length(common, ccbegin, ccend, needs_control_head); -@@ -9648,6 +9689,7 @@ - - sljit_emit_fast_enter(compiler, TMP2, 0); - allocate_stack(common, private_data_size + framesize + alternativesize); -+count_match(common); - OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), STACK(private_data_size + framesize + alternativesize - 1), TMP2, 0); - copy_private_data(common, ccbegin, ccend, TRUE, private_data_size + framesize + alternativesize, framesize + alternativesize, needs_control_head); - if (needs_control_head) -@@ -9992,6 +10034,7 @@ - OP1(SLJIT_MOV_UI, TMP1, 0, SLJIT_MEM1(TMP1), SLJIT_OFFSETOF(jit_arguments, limit_match)); - OP1(SLJIT_MOV, STACK_TOP, 0, SLJIT_MEM1(TMP2), SLJIT_OFFSETOF(struct sljit_stack, base)); - OP1(SLJIT_MOV, STACK_LIMIT, 0, SLJIT_MEM1(TMP2), SLJIT_OFFSETOF(struct sljit_stack, limit)); -+OP2(SLJIT_ADD, TMP1, 0, TMP1, 0, SLJIT_IMM, 1); - OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), LIMIT_MATCH, TMP1, 0); - - if (mode == JIT_PARTIAL_SOFT_COMPILE) -Index: RunGrepTest -=================================================================== ---- RunGrepTest (revision 1554) -+++ RunGrepTest (working copy) -@@ -512,6 +512,14 @@ - (cd $srcdir; $valgrind $pcregrep --line-offsets '(?<=\Ka)' $builddir/testtemp1grep) >>testtrygrep 2>&1 - echo "RC=$?" >>testtrygrep - -+echo "---------------------------- Test 108 ------------------------------" >>testtrygrep -+(cd $srcdir; $valgrind $pcregrep -lq PATTERN ./testdata/grepinput ./testdata/grepinputx) >>testtrygrep -+echo "RC=$?" >>testtrygrep -+ -+echo "---------------------------- Test 109 -----------------------------" >>testtrygrep -+(cd $srcdir; $valgrind $pcregrep -cq lazy ./testdata/grepinput*) >>testtrygrep -+echo "RC=$?" >>testtrygrep -+ - # Now compare the results. - - $cf $srcdir/testdata/grepoutput testtrygrep -Index: pcre_compile.c -=================================================================== ---- pcre_compile.c (revision 1554) -+++ pcre_compile.c (working copy) -@@ -174,7 +174,7 @@ - -ESC_Z, CHAR_LEFT_SQUARE_BRACKET, - CHAR_BACKSLASH, CHAR_RIGHT_SQUARE_BRACKET, - CHAR_CIRCUMFLEX_ACCENT, CHAR_UNDERSCORE, -- CHAR_GRAVE_ACCENT, 7, -+ CHAR_GRAVE_ACCENT, ESC_a, - -ESC_b, 0, - -ESC_d, ESC_e, - ESC_f, 0, -@@ -202,9 +202,9 @@ - /* 68 */ 0, 0, '|', ',', '%', '_', '>', '?', - /* 70 */ 0, 0, 0, 0, 0, 0, 0, 0, - /* 78 */ 0, '`', ':', '#', '@', '\'', '=', '"', --/* 80 */ 0, 7, -ESC_b, 0, -ESC_d, ESC_e, ESC_f, 0, -+/* 80 */ 0, ESC_a, -ESC_b, 0, -ESC_d, ESC_e, ESC_f, 0, - /* 88 */-ESC_h, 0, 0, '{', 0, 0, 0, 0, --/* 90 */ 0, 0, -ESC_k, 'l', 0, ESC_n, 0, -ESC_p, -+/* 90 */ 0, 0, -ESC_k, 0, 0, ESC_n, 0, -ESC_p, - /* 98 */ 0, ESC_r, 0, '}', 0, 0, 0, 0, - /* A0 */ 0, '~', -ESC_s, ESC_tee, 0,-ESC_v, -ESC_w, 0, - /* A8 */ 0,-ESC_z, 0, 0, 0, '[', 0, 0, -@@ -219,6 +219,12 @@ - /* F0 */ 0, 0, 0, 0, 0, 0, 0, 0, - /* F8 */ 0, 0, 0, 0, 0, 0, 0, 0 - }; -+ -+/* We also need a table of characters that may follow \c in an EBCDIC -+environment for characters 0-31. */ -+ -+static unsigned char ebcdic_escape_c[] = "@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_"; -+ - #endif - - -@@ -458,7 +464,7 @@ - "range out of order in character class\0" - "nothing to repeat\0" - /* 10 */ -- "operand of unlimited repeat could match the empty string\0" /** DEAD **/ -+ "internal error: invalid forward reference offset\0" - "internal error: unexpected repeat\0" - "unrecognized character after (? or (?-\0" - "POSIX named classes are supported only within a class\0" -@@ -527,7 +533,11 @@ - "different names for subpatterns of the same number are not allowed\0" - "(*MARK) must have an argument\0" - "this version of PCRE is not compiled with Unicode property support\0" -+#ifndef EBCDIC - "\\c must be followed by an ASCII character\0" -+#else -+ "\\c must be followed by a letter or one of [\\]^_?\0" -+#endif - "\\k is not followed by a braced, angle-bracketed, or quoted name\0" - /* 70 */ - "internal error: unknown opcode in find_fixedlength()\0" -@@ -1425,7 +1435,16 @@ - c ^= 0x40; - #else /* EBCDIC coding */ - if (c >= CHAR_a && c <= CHAR_z) c += 64; -- c ^= 0xC0; -+ if (c == CHAR_QUESTION_MARK) -+ c = ('\\' == 188 && '`' == 74)? 0x5f : 0xff; -+ else -+ { -+ for (i = 0; i < 32; i++) -+ { -+ if (c == ebcdic_escape_c[i]) break; -+ } -+ if (i < 32) c = i; else *errorcodeptr = ERR68; -+ } - #endif - break; - -@@ -1799,7 +1818,7 @@ - case OP_ASSERTBACK: - case OP_ASSERTBACK_NOT: - do cc += GET(cc, 1); while (*cc == OP_ALT); -- cc += PRIV(OP_lengths)[*cc]; -+ cc += 1 + LINK_SIZE; - break; - - /* Skip over things that don't match chars */ -@@ -2487,7 +2506,7 @@ - if (c == OP_BRA || c == OP_BRAPOS || - c == OP_CBRA || c == OP_CBRAPOS || - c == OP_ONCE || c == OP_ONCE_NC || -- c == OP_COND) -+ c == OP_COND || c == OP_SCOND) - { - BOOL empty_branch; - if (GET(code, 1) == 0) return TRUE; /* Hit unclosed bracket */ -@@ -3886,11 +3905,11 @@ - The problem in trying to be exactly like Perl is in the handling of escapes. We - have to be sure that [abc[:x\]pqr] is *not* treated as containing a POSIX - class, but [abc[:x\]pqr:]] is (so that an error can be generated). The code --below handles the special case of \], but does not try to do any other escape --processing. This makes it different from Perl for cases such as [:l\ower:] --where Perl recognizes it as the POSIX class "lower" but PCRE does not recognize --"l\ower". This is a lesser evil than not diagnosing bad classes when Perl does, --I think. -+below handles the special cases \\ and \], but does not try to do any other -+escape processing. This makes it different from Perl for cases such as -+[:l\ower:] where Perl recognizes it as the POSIX class "lower" but PCRE does -+not recognize "l\ower". This is a lesser evil than not diagnosing bad classes -+when Perl does, I think. - - A user pointed out that PCRE was rejecting [:a[:digit:]] whereas Perl was not. - It seems that the appearance of a nested POSIX class supersedes an apparent -@@ -3917,21 +3936,16 @@ - terminator = *(++ptr); /* compiler warns about "non-constant" initializer. */ - for (++ptr; *ptr != CHAR_NULL; ptr++) - { -- if (*ptr == CHAR_BACKSLASH && ptr[1] == CHAR_RIGHT_SQUARE_BRACKET) -+ if (*ptr == CHAR_BACKSLASH && -+ (ptr[1] == CHAR_RIGHT_SQUARE_BRACKET || -+ ptr[1] == CHAR_BACKSLASH)) - ptr++; -- else if (*ptr == CHAR_RIGHT_SQUARE_BRACKET) return FALSE; -- else -+ else if ((*ptr == CHAR_LEFT_SQUARE_BRACKET && ptr[1] == terminator) || -+ *ptr == CHAR_RIGHT_SQUARE_BRACKET) return FALSE; -+ else if (*ptr == terminator && ptr[1] == CHAR_RIGHT_SQUARE_BRACKET) - { -- if (*ptr == terminator && ptr[1] == CHAR_RIGHT_SQUARE_BRACKET) -- { -- *endptr = ptr; -- return TRUE; -- } -- if (*ptr == CHAR_LEFT_SQUARE_BRACKET && -- (ptr[1] == CHAR_COLON || ptr[1] == CHAR_DOT || -- ptr[1] == CHAR_EQUALS_SIGN) && -- check_posix_syntax(ptr, endptr)) -- return FALSE; -+ *endptr = ptr; -+ return TRUE; - } - } - return FALSE; -@@ -3985,11 +3999,12 @@ - is called, the partially compiled regex must be temporarily terminated with - OP_END. - --This function has been extended with the possibility of forward references for --recursions and subroutine calls. It must also check the list of such references --for the group we are dealing with. If it finds that one of the recursions in --the current group is on this list, it adjusts the offset in the list, not the --value in the reference (which is a group number). -+This function has been extended to cope with forward references for recursions -+and subroutine calls. It must check the list of such references for the -+group we are dealing with. If it finds that one of the recursions in the -+current group is on this list, it does not adjust the value in the reference -+(which is a group number). After the group has been scanned, all the offsets in -+the forward reference list for the group are adjusted. - - Arguments: - group points to the start of the group -@@ -4005,29 +4020,21 @@ - adjust_recurse(pcre_uchar *group, int adjust, BOOL utf, compile_data *cd, - size_t save_hwm_offset) - { -+int offset; -+pcre_uchar *hc; - pcre_uchar *ptr = group; - - while ((ptr = (pcre_uchar *)find_recurse(ptr, utf)) != NULL) - { -- int offset; -- pcre_uchar *hc; -- -- /* See if this recursion is on the forward reference list. If so, adjust the -- reference. */ -- - for (hc = (pcre_uchar *)cd->start_workspace + save_hwm_offset; hc < cd->hwm; - hc += LINK_SIZE) - { - offset = (int)GET(hc, 0); -- if (cd->start_code + offset == ptr + 1) -- { -- PUT(hc, 0, offset + adjust); -- break; -- } -+ if (cd->start_code + offset == ptr + 1) break; - } - -- /* Otherwise, adjust the recursion offset if it's after the start of this -- group. */ -+ /* If we have not found this recursion on the forward reference list, adjust -+ the recursion's offset if it's after the start of this group. */ - - if (hc >= cd->hwm) - { -@@ -4037,6 +4044,15 @@ - - ptr += 1 + LINK_SIZE; - } -+ -+/* Now adjust all forward reference offsets for the group. */ -+ -+for (hc = (pcre_uchar *)cd->start_workspace + save_hwm_offset; hc < cd->hwm; -+ hc += LINK_SIZE) -+ { -+ offset = (int)GET(hc, 0); -+ PUT(hc, 0, offset + adjust); -+ } - } - - -@@ -4465,7 +4481,7 @@ - const pcre_uchar *nestptr = NULL; - pcre_uchar *previous = NULL; - pcre_uchar *previous_callout = NULL; --size_t save_hwm_offset = 0; -+size_t item_hwm_offset = 0; - pcre_uint8 classbits[32]; - - /* We can fish out the UTF-8 setting once and for all into a BOOL, but we -@@ -4623,8 +4639,7 @@ - /* In the real compile phase, just check the workspace used by the forward - reference list. */ - -- else if (cd->hwm > cd->start_workspace + cd->workspace_size - -- WORK_SIZE_SAFETY_MARGIN) -+ else if (cd->hwm > cd->start_workspace + cd->workspace_size) - { - *errorcodeptr = ERR52; - goto FAILED; -@@ -4767,6 +4782,7 @@ - zeroreqchar = reqchar; - zeroreqcharflags = reqcharflags; - previous = code; -+ item_hwm_offset = cd->hwm - cd->start_workspace; - *code++ = ((options & PCRE_DOTALL) != 0)? OP_ALLANY: OP_ANY; - break; - -@@ -4818,6 +4834,7 @@ - /* Handle a real character class. */ - - previous = code; -+ item_hwm_offset = cd->hwm - cd->start_workspace; - - /* PCRE supports POSIX class stuff inside a class. Perl gives an error if - they are encountered at the top level, so we'll do that too. */ -@@ -5195,9 +5212,9 @@ - cd, PRIV(vspace_list)); - continue; - --#ifdef SUPPORT_UCP - case ESC_p: - case ESC_P: -+#ifdef SUPPORT_UCP - { - BOOL negated; - unsigned int ptype = 0, pdata = 0; -@@ -5211,6 +5228,9 @@ - class_has_8bitchar--; /* Undo! */ - continue; - } -+#else -+ *errorcodeptr = ERR45; -+ goto FAILED; - #endif - /* Unrecognized escapes are faulted if PCRE is running in its - strict mode. By default, for compatibility with Perl, they are -@@ -5930,7 +5950,7 @@ - { - register int i; - int len = (int)(code - previous); -- size_t base_hwm_offset = save_hwm_offset; -+ size_t base_hwm_offset = item_hwm_offset; - pcre_uchar *bralink = NULL; - pcre_uchar *brazeroptr = NULL; - -@@ -5985,7 +6005,7 @@ - if (repeat_max <= 1) /* Covers 0, 1, and unlimited */ - { - *code = OP_END; -- adjust_recurse(previous, 1, utf, cd, save_hwm_offset); -+ adjust_recurse(previous, 1, utf, cd, item_hwm_offset); - memmove(previous + 1, previous, IN_UCHARS(len)); - code++; - if (repeat_max == 0) -@@ -6009,7 +6029,7 @@ - { - int offset; - *code = OP_END; -- adjust_recurse(previous, 2 + LINK_SIZE, utf, cd, save_hwm_offset); -+ adjust_recurse(previous, 2 + LINK_SIZE, utf, cd, item_hwm_offset); - memmove(previous + 2 + LINK_SIZE, previous, IN_UCHARS(len)); - code += 2 + LINK_SIZE; - *previous++ = OP_BRAZERO + repeat_type; -@@ -6254,6 +6274,12 @@ - while (*scode == OP_ALT); - } - -+ /* A conditional group with only one branch has an implicit empty -+ alternative branch. */ -+ -+ if (*bracode == OP_COND && bracode[GET(bracode,1)] != OP_ALT) -+ *bracode = OP_SCOND; -+ - /* Handle possessive quantifiers. */ - - if (possessive_quantifier) -@@ -6267,11 +6293,11 @@ - { - int nlen = (int)(code - bracode); - *code = OP_END; -- adjust_recurse(bracode, 1 + LINK_SIZE, utf, cd, save_hwm_offset); -+ adjust_recurse(bracode, 1 + LINK_SIZE, utf, cd, item_hwm_offset); - memmove(bracode + 1 + LINK_SIZE, bracode, IN_UCHARS(nlen)); - code += 1 + LINK_SIZE; - nlen += 1 + LINK_SIZE; -- *bracode = OP_BRAPOS; -+ *bracode = (*bracode == OP_COND)? OP_BRAPOS : OP_SBRAPOS; - *code++ = OP_KETRPOS; - PUTINC(code, 0, nlen); - PUT(bracode, 1, nlen); -@@ -6401,7 +6427,7 @@ - else - { - *code = OP_END; -- adjust_recurse(tempcode, 1 + LINK_SIZE, utf, cd, save_hwm_offset); -+ adjust_recurse(tempcode, 1 + LINK_SIZE, utf, cd, item_hwm_offset); - memmove(tempcode + 1 + LINK_SIZE, tempcode, IN_UCHARS(len)); - code += 1 + LINK_SIZE; - len += 1 + LINK_SIZE; -@@ -6450,7 +6476,7 @@ - - default: - *code = OP_END; -- adjust_recurse(tempcode, 1 + LINK_SIZE, utf, cd, save_hwm_offset); -+ adjust_recurse(tempcode, 1 + LINK_SIZE, utf, cd, item_hwm_offset); - memmove(tempcode + 1 + LINK_SIZE, tempcode, IN_UCHARS(len)); - code += 1 + LINK_SIZE; - len += 1 + LINK_SIZE; -@@ -6623,7 +6649,7 @@ - newoptions = options; - skipbytes = 0; - bravalue = OP_CBRA; -- save_hwm_offset = cd->hwm - cd->start_workspace; -+ item_hwm_offset = cd->hwm - cd->start_workspace; - reset_bracount = FALSE; - - /* Deal with the extended parentheses; all are introduced by '?', and the -@@ -6641,6 +6667,7 @@ - /* ------------------------------------------------------------ */ - case CHAR_VERTICAL_LINE: /* Reset capture count for each branch */ - reset_bracount = TRUE; -+ cd->dupgroups = TRUE; /* Record (?| encountered */ - /* Fall through */ - - /* ------------------------------------------------------------ */ -@@ -6741,6 +6768,12 @@ - { - while (IS_DIGIT(*ptr)) - { -+ if (recno > INT_MAX / 10 - 1) /* Integer overflow */ -+ { -+ while (IS_DIGIT(*ptr)) ptr++; -+ *errorcodeptr = ERR61; -+ goto FAILED; -+ } - recno = recno * 10 + (int)(*ptr - CHAR_0); - ptr++; - } -@@ -6769,7 +6802,7 @@ - ptr++; - } - namelen = (int)(ptr - name); -- if (lengthptr != NULL) *lengthptr += IMM2_SIZE; -+ if (lengthptr != NULL) skipbytes += IMM2_SIZE; - } - - /* Check the terminator */ -@@ -6875,6 +6908,11 @@ - *errorcodeptr = ERR15; - goto FAILED; - } -+ if (recno > INT_MAX / 10 - 1) /* Integer overflow */ -+ { -+ *errorcodeptr = ERR61; -+ goto FAILED; -+ } - recno = recno * 10 + name[i] - CHAR_0; - } - if (recno == 0) recno = RREF_ANY; -@@ -7151,7 +7189,8 @@ - if (lengthptr != NULL) - { - named_group *ng; -- -+ recno = 0; -+ - if (namelen == 0) - { - *errorcodeptr = ERR62; -@@ -7168,20 +7207,6 @@ - goto FAILED; - } - -- /* The name table does not exist in the first pass; instead we must -- scan the list of names encountered so far in order to get the -- number. If the name is not found, set the value to 0 for a forward -- reference. */ -- -- ng = cd->named_groups; -- for (i = 0; i < cd->names_found; i++, ng++) -- { -- if (namelen == ng->length && -- STRNCMP_UC_UC(name, ng->name, namelen) == 0) -- break; -- } -- recno = (i < cd->names_found)? ng->number : 0; -- - /* Count named back references. */ - - if (!is_recurse) cd->namedrefcount++; -@@ -7191,6 +7216,56 @@ - 16-bit data item. */ - - *lengthptr += IMM2_SIZE; -+ -+ /* If this is a forward reference and we are within a (?|...) group, -+ the reference may end up as the number of a group which we are -+ currently inside, that is, it could be a recursive reference. In the -+ real compile this will be picked up and the reference wrapped with -+ OP_ONCE to make it atomic, so we must space in case this occurs. */ -+ -+ /* In fact, this can happen for a non-forward reference because -+ another group with the same number might be created later. This -+ issue is fixed "properly" in PCRE2. As PCRE1 is now in maintenance -+ only mode, we finesse the bug by allowing more memory always. */ -+ -+ *lengthptr += 2 + 2*LINK_SIZE; -+ -+ /* It is even worse than that. The current reference may be to an -+ existing named group with a different number (so apparently not -+ recursive) but which later on is also attached to a group with the -+ current number. This can only happen if $(| has been previous -+ encountered. In that case, we allow yet more memory, just in case. -+ (Again, this is fixed "properly" in PCRE2. */ -+ -+ if (cd->dupgroups) *lengthptr += 4 + 4*LINK_SIZE; -+ -+ /* Otherwise, check for recursion here. The name table does not exist -+ in the first pass; instead we must scan the list of names encountered -+ 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 -+ { -+ ng = cd->named_groups; -+ for (i = 0; i < cd->names_found; i++, ng++) -+ { -+ if (namelen == ng->length && -+ STRNCMP_UC_UC(name, ng->name, namelen) == 0) -+ { -+ open_capitem *oc; -+ recno = ng->number; -+ if (is_recurse) break; -+ for (oc = cd->open_caps; oc != NULL; oc = oc->next) -+ { -+ if (oc->number == recno) -+ { -+ oc->flag = TRUE; -+ break; -+ } -+ } -+ } -+ } -+ } - } - - /* In the real compile, search the name table. We check the name -@@ -7237,8 +7312,6 @@ - for (i++; i < cd->names_found; i++) - { - if (STRCMP_UC_UC(slot + IMM2_SIZE, cslot + IMM2_SIZE) != 0) break; -- -- - count++; - cslot += cd->name_entry_size; - } -@@ -7247,6 +7320,7 @@ - { - if (firstcharflags == REQ_UNSET) firstcharflags = REQ_NONE; - previous = code; -+ item_hwm_offset = cd->hwm - cd->start_workspace; - *code++ = ((options & PCRE_CASELESS) != 0)? OP_DNREFI : OP_DNREF; - PUT2INC(code, 0, index); - PUT2INC(code, 0, count); -@@ -7284,9 +7358,14 @@ - - - /* ------------------------------------------------------------ */ -- case CHAR_R: /* Recursion */ -- ptr++; /* Same as (?0) */ -- /* Fall through */ -+ case CHAR_R: /* Recursion, same as (?0) */ -+ recno = 0; -+ if (*(++ptr) != CHAR_RIGHT_PARENTHESIS) -+ { -+ *errorcodeptr = ERR29; -+ goto FAILED; -+ } -+ goto HANDLE_RECURSION; - - - /* ------------------------------------------------------------ */ -@@ -7323,7 +7402,15 @@ - - recno = 0; - while(IS_DIGIT(*ptr)) -+ { -+ if (recno > INT_MAX / 10 - 1) /* Integer overflow */ -+ { -+ while (IS_DIGIT(*ptr)) ptr++; -+ *errorcodeptr = ERR61; -+ goto FAILED; -+ } - recno = recno * 10 + *ptr++ - CHAR_0; -+ } - - if (*ptr != (pcre_uchar)terminator) - { -@@ -7360,6 +7447,7 @@ - HANDLE_RECURSION: - - previous = code; -+ item_hwm_offset = cd->hwm - cd->start_workspace; - called = cd->start_code; - - /* When we are actually compiling, find the bracket that is being -@@ -7561,7 +7649,11 @@ - previous = NULL; - cd->iscondassert = FALSE; - } -- else previous = code; -+ else -+ { -+ previous = code; -+ item_hwm_offset = cd->hwm - cd->start_workspace; -+ } - - *code = bravalue; - tempcode = code; -@@ -7809,7 +7901,7 @@ - const pcre_uchar *p; - pcre_uint32 cf; - -- save_hwm_offset = cd->hwm - cd->start_workspace; /* Normally this is set when '(' is read */ -+ item_hwm_offset = cd->hwm - cd->start_workspace; /* Normally this is set when '(' is read */ - terminator = (*(++ptr) == CHAR_LESS_THAN_SIGN)? - CHAR_GREATER_THAN_SIGN : CHAR_APOSTROPHE; - -@@ -7838,7 +7930,7 @@ - if (*p != (pcre_uchar)terminator) - { - *errorcodeptr = ERR57; -- break; -+ goto FAILED; - } - ptr++; - goto HANDLE_NUMERICAL_RECURSION; -@@ -7853,7 +7945,7 @@ - ptr[1] != CHAR_APOSTROPHE && ptr[1] != CHAR_LEFT_CURLY_BRACKET)) - { - *errorcodeptr = ERR69; -- break; -+ goto FAILED; - } - is_recurse = FALSE; - terminator = (*(++ptr) == CHAR_LESS_THAN_SIGN)? -@@ -7877,6 +7969,7 @@ - HANDLE_REFERENCE: - if (firstcharflags == REQ_UNSET) firstcharflags = REQ_NONE; - previous = code; -+ item_hwm_offset = cd->hwm - cd->start_workspace; - *code++ = ((options & PCRE_CASELESS) != 0)? OP_REFI : OP_REF; - PUT2INC(code, 0, recno); - cd->backref_map |= (recno < 32)? (1 << recno) : 1; -@@ -7906,6 +7999,7 @@ - if (!get_ucp(&ptr, &negated, &ptype, &pdata, errorcodeptr)) - goto FAILED; - previous = code; -+ item_hwm_offset = cd->hwm - cd->start_workspace; - *code++ = ((escape == ESC_p) != negated)? OP_PROP : OP_NOTPROP; - *code++ = ptype; - *code++ = pdata; -@@ -7946,6 +8040,7 @@ - - { - previous = (escape > ESC_b && escape < ESC_Z)? code : NULL; -+ item_hwm_offset = cd->hwm - cd->start_workspace; - *code++ = (!utf && escape == ESC_C)? OP_ALLANY : escape; - } - } -@@ -7989,6 +8084,7 @@ - - ONE_CHAR: - previous = code; -+ item_hwm_offset = cd->hwm - cd->start_workspace; - - /* For caseless UTF-8 mode when UCP support is available, check whether - this character has more than one other case. If so, generate a special -@@ -9164,6 +9260,7 @@ - cd->name_entry_size = 0; - cd->name_table = NULL; - cd->dupnames = FALSE; -+cd->dupgroups = FALSE; - cd->namedrefcount = 0; - cd->start_code = cworkspace; - cd->hwm = cworkspace; -@@ -9198,7 +9295,7 @@ - - DPRINTF(("end pre-compile: length=%d workspace=%d\n", length, - (int)(cd->hwm - cworkspace))); -- -+ - if (length > MAX_PATTERN_SIZE) - { - errorcode = ERR20; -@@ -9336,6 +9433,16 @@ - int offset, recno; - cd->hwm -= LINK_SIZE; - offset = GET(cd->hwm, 0); -+ -+ /* Check that the hwm handling hasn't gone wrong. This whole area is -+ rewritten in PCRE2 because there are some obscure cases. */ -+ -+ if (offset == 0 || codestart[offset-1] != OP_RECURSE) -+ { -+ errorcode = ERR10; -+ break; -+ } -+ - recno = GET(codestart, offset); - if (recno != prev_recno) - { -@@ -9366,7 +9473,7 @@ - "const" attribute if the cast (pcre_uchar *)codestart is used directly in the - function call. */ - --if ((options & PCRE_NO_AUTO_POSSESS) == 0) -+if (errorcode == 0 && (options & PCRE_NO_AUTO_POSSESS) == 0) - { - pcre_uchar *temp = (pcre_uchar *)codestart; - auto_possessify(temp, utf, cd); -@@ -9380,7 +9487,7 @@ - exceptional ones forgo this. We scan the pattern to check that they are fixed - length, and set their lengths. */ - --if (cd->check_lookbehind) -+if (errorcode == 0 && cd->check_lookbehind) - { - pcre_uchar *cc = (pcre_uchar *)codestart; - -@@ -9593,4 +9700,3 @@ - } - - /* End of pcre_compile.c */ -- -Index: ChangeLog -=================================================================== ---- ChangeLog (revision 1554) -+++ ChangeLog (working copy) -@@ -1,6 +1,162 @@ - ChangeLog for PCRE - ------------------ - -+Note that the PCRE 8.xx series (PCRE1) is now in a bugfix-only state. All -+development is happening in the PCRE2 10.xx series. -+ -+Version 8.38 xx-xxx-xxxx -+------------------------ -+ -+1. If a group that contained a recursive back reference also contained a -+ forward reference subroutine call followed by a non-forward-reference -+ subroutine call, for example /.((?2)(?R)\1)()/, pcre2_compile() failed to -+ compile correct code, leading to undefined behaviour or an internally -+ detected error. This bug was discovered by the LLVM fuzzer. -+ -+2. Quantification of certain items (e.g. atomic back references) could cause -+ incorrect code to be compiled when recursive forward references were -+ involved. For example, in this pattern: /(?1)()((((((\1++))\x85)+)|))/. -+ This bug was discovered by the LLVM fuzzer. -+ -+3. A repeated conditional group whose condition was a reference by name caused -+ a buffer overflow if there was more than one group with the given name. -+ This bug was discovered by the LLVM fuzzer. -+ -+4. A recursive back reference by name within a group that had the same name as -+ another group caused a buffer overflow. For example: -+ /(?J)(?'d'(?'d'\g{d}))/. This bug was discovered by the LLVM fuzzer. -+ -+5. A forward reference by name to a group whose number is the same as the -+ current group, for example in this pattern: /(?|(\k'Pm')|(?'Pm'))/, caused -+ a buffer overflow at compile time. This bug was discovered by the LLVM -+ fuzzer. -+ -+6. A lookbehind assertion within a set of mutually recursive subpatterns could -+ provoke a buffer overflow. This bug was discovered by the LLVM fuzzer. -+ -+7. Another buffer overflow bug involved duplicate named groups with a -+ reference between their definition, with a group that reset capture -+ numbers, for example: /(?J:(?|(?'R')(\k'R')|((?'R'))))/. This has been -+ fixed by always allowing for more memory, even if not needed. (A proper fix -+ is implemented in PCRE2, but it involves more refactoring.) -+ -+8. There was no check for integer overflow in subroutine calls such as (?123). -+ -+9. The table entry for \l in EBCDIC environments was incorrect, leading to its -+ being treated as a literal 'l' instead of causing an error. -+ -+10. There was a buffer overflow if pcre_exec() was called with an ovector of -+ size 1. This bug was found by american fuzzy lop. -+ -+11. If a non-capturing group containing a conditional group that could match -+ an empty string was repeated, it was not identified as matching an empty -+ string itself. For example: /^(?:(?(1)x|)+)+$()/. -+ -+12. In an EBCDIC environment, pcretest was mishandling the escape sequences -+ \a and \e in test subject lines. -+ -+13. In an EBCDIC environment, \a in a pattern was converted to the ASCII -+ instead of the EBCDIC value. -+ -+14. The handling of \c in an EBCDIC environment has been revised so that it is -+ now compatible with the specification in Perl's perlebcdic page. -+ -+15. The EBCDIC character 0x41 is a non-breaking space, equivalent to 0xa0 in -+ ASCII/Unicode. This has now been added to the list of characters that are -+ recognized as white space in EBCDIC. -+ -+16. When PCRE was compiled without UCP support, the use of \p and \P gave an -+ error (correctly) when used outside a class, but did not give an error -+ within a class. -+ -+17. \h within a class was incorrectly compiled in EBCDIC environments. -+ -+18. A pattern with an unmatched closing parenthesis that contained a backward -+ assertion which itself contained a forward reference caused buffer -+ overflow. And example pattern is: /(?=di(?<=(?1))|(?=(.))))/. -+ -+19. JIT should return with error when the compiled pattern requires more stack -+ space than the maximum. -+ -+20. A possessively repeated conditional group that could match an empty string, -+ for example, /(?(R))*+/, was incorrectly compiled. -+ -+21. Fix infinite recursion in the JIT compiler when certain patterns such as -+ /(?:|a|){100}x/ are analysed. -+ -+22. Some patterns with character classes involving [: and \\ were incorrectly -+ compiled and could cause reading from uninitialized memory or an incorrect -+ error diagnosis. -+ -+23. Pathological patterns containing many nested occurrences of [: caused -+ pcre_compile() to run for a very long time. -+ -+24. A conditional group with only one branch has an implicit empty alternative -+ branch and must therefore be treated as potentially matching an empty -+ string. -+ -+25. If (?R was followed by - or + incorrect behaviour happened instead of a -+ diagnostic. -+ -+26. Arrange to give up on finding the minimum matching length for overly -+ complex patterns. -+ -+27. Similar to (4) above: in a pattern with duplicated named groups and an -+ occurrence of (?| it is possible for an apparently non-recursive back -+ reference to become recursive if a later named group with the relevant -+ number is encountered. This could lead to a buffer overflow. Wen Guanxing -+ from Venustech ADLAB discovered this bug. -+ -+28. If pcregrep was given the -q option with -c or -l, or when handling a -+ binary file, it incorrectly wrote output to stdout. -+ -+29. The JIT compiler did not restore the control verb head in case of *THEN -+ control verbs. This issue was found by Karl Skomski with a custom LLVM -+ fuzzer. -+ -+30. Error messages for syntax errors following \g and \k were giving inaccurate -+ offsets in the pattern. -+ -+31. Added a check for integer overflow in conditions (?() and -+ (?(R). This omission was discovered by Karl Skomski with the LLVM -+ fuzzer. -+ -+32. Handling recursive references such as (?2) when the reference is to a group -+ later in the pattern uses code that is very hacked about and error-prone. -+ It has been re-written for PCRE2. Here in PCRE1, a check has been added to -+ give an internal error if it is obvious that compiling has gone wrong. -+ -+33. The JIT compiler should not check repeats after a {0,1} repeat byte code. -+ This issue was found by Karl Skomski with a custom LLVM fuzzer. -+ -+34. The JIT compiler should restore the control chain for empty possessive -+ repeats. This issue was found by Karl Skomski with a custom LLVM fuzzer. -+ -+35. Match limit check added to JIT recursion. This issue was found by Karl -+ Skomski with a custom LLVM fuzzer. -+ -+36. Yet another case similar to 27 above has been circumvented by an -+ unconditional allocation of extra memory. This issue is fixed "properly" in -+ PCRE2 by refactoring the way references are handled. Wen Guanxing -+ from Venustech ADLAB discovered this bug. -+ -+37. Fix two assertion fails in JIT. These issues were found by Karl Skomski -+ with a custom LLVM fuzzer. -+ -+38. Fixed a corner case of range optimization in JIT. -+ -+39. An incorrect error "overran compiling workspace" was given if there were -+ exactly enough group forward references such that the last one extended -+ into the workspace safety margin. The next one would have expanded the -+ workspace. The test for overflow was not including the safety margin. -+ -+40. A match limit issue is fixed in JIT which was found by Karl Skomski -+ with a custom LLVM fuzzer. -+ -+41. Remove the use of /dev/null in testdata/testinput2, because it doesn't -+ work under Windows. (Why has it taken so long for anyone to notice?) -+ -+ - Version 8.37 28-April-2015 - -------------------------- - -Index: pcretest.c -=================================================================== ---- pcretest.c (revision 1554) -+++ pcretest.c (working copy) -@@ -4621,9 +4621,9 @@ - - else switch ((c = *p++)) - { -- case 'a': c = 7; break; -+ case 'a': c = CHAR_BEL; break; - case 'b': c = '\b'; break; -- case 'e': c = 27; break; -+ case 'e': c = CHAR_ESC; break; - case 'f': c = '\f'; break; - case 'n': c = '\n'; break; - case 'r': c = '\r'; break; -Index: sljit/sljitLir.c -=================================================================== ---- sljit/sljitLir.c (revision 1554) -+++ sljit/sljitLir.c (working copy) -@@ -845,8 +845,8 @@ - } - - static SLJIT_CONST char* op0_names[] = { -- (char*)"breakpoint", (char*)"nop", -- (char*)"lumul", (char*)"lsmul", (char*)"ludiv", (char*)"lsdiv", -+ (char*)"breakpoint", (char*)"nop", (char*)"lumul", (char*)"lsmul", -+ (char*)"udivmod", (char*)"sdivmod", (char*)"udivi", (char*)"sdivi" - }; - - static SLJIT_CONST char* op1_names[] = { -@@ -1036,7 +1036,7 @@ - { - #if (defined SLJIT_ARGUMENT_CHECKS && SLJIT_ARGUMENT_CHECKS) - CHECK_ARGUMENT((op >= SLJIT_BREAKPOINT && op <= SLJIT_LSMUL) -- || ((op & ~SLJIT_INT_OP) >= SLJIT_LUDIV && (op & ~SLJIT_INT_OP) <= SLJIT_LSDIV)); -+ || ((op & ~SLJIT_INT_OP) >= SLJIT_UDIVMOD && (op & ~SLJIT_INT_OP) <= SLJIT_SDIVI)); - CHECK_ARGUMENT(op < SLJIT_LUMUL || compiler->scratches >= 2); - #endif - #if (defined SLJIT_VERBOSE && SLJIT_VERBOSE) -@@ -1447,6 +1447,8 @@ - - static SLJIT_INLINE CHECK_RETURN_TYPE check_sljit_get_local_base(struct sljit_compiler *compiler, sljit_si dst, sljit_sw dstw, sljit_sw offset) - { -+ SLJIT_UNUSED_ARG(offset); -+ - #if (defined SLJIT_ARGUMENT_CHECKS && SLJIT_ARGUMENT_CHECKS) - FUNCTION_CHECK_DST(dst, dstw); - #endif -@@ -1462,6 +1464,8 @@ - - static SLJIT_INLINE CHECK_RETURN_TYPE check_sljit_emit_const(struct sljit_compiler *compiler, sljit_si dst, sljit_sw dstw, sljit_sw init_value) - { -+ SLJIT_UNUSED_ARG(init_value); -+ - #if (defined SLJIT_ARGUMENT_CHECKS && SLJIT_ARGUMENT_CHECKS) - FUNCTION_CHECK_DST(dst, dstw); - #endif -Index: sljit/sljitNativeSPARC_common.c -=================================================================== ---- sljit/sljitNativeSPARC_common.c (revision 1554) -+++ sljit/sljitNativeSPARC_common.c (working copy) -@@ -777,20 +777,25 @@ - #else - #error "Implementation required" - #endif -- case SLJIT_LUDIV: -- case SLJIT_LSDIV: -+ case SLJIT_UDIVMOD: -+ case SLJIT_SDIVMOD: -+ case SLJIT_UDIVI: -+ case SLJIT_SDIVI: -+ SLJIT_COMPILE_ASSERT((SLJIT_UDIVMOD & 0x2) == 0 && SLJIT_UDIVI - 0x2 == SLJIT_UDIVMOD, bad_div_opcode_assignments); - #if (defined SLJIT_CONFIG_SPARC_32 && SLJIT_CONFIG_SPARC_32) -- if (op == SLJIT_LUDIV) -+ if ((op | 0x2) == SLJIT_UDIVI) - FAIL_IF(push_inst(compiler, WRY | S1(0), MOVABLE_INS)); - else { - FAIL_IF(push_inst(compiler, SRA | D(TMP_REG1) | S1(SLJIT_R0) | IMM(31), DR(TMP_REG1))); - FAIL_IF(push_inst(compiler, WRY | S1(TMP_REG1), MOVABLE_INS)); - } -- FAIL_IF(push_inst(compiler, OR | D(TMP_REG2) | S1(0) | S2(SLJIT_R0), DR(TMP_REG2))); -- FAIL_IF(push_inst(compiler, (op == SLJIT_LUDIV ? UDIV : SDIV) | D(SLJIT_R0) | S1(SLJIT_R0) | S2(SLJIT_R1), DR(SLJIT_R0))); -+ if (op <= SLJIT_SDIVMOD) -+ FAIL_IF(push_inst(compiler, OR | D(TMP_REG2) | S1(0) | S2(SLJIT_R0), DR(TMP_REG2))); -+ FAIL_IF(push_inst(compiler, ((op | 0x2) == SLJIT_UDIVI ? UDIV : SDIV) | D(SLJIT_R0) | S1(SLJIT_R0) | S2(SLJIT_R1), DR(SLJIT_R0))); -+ if (op >= SLJIT_UDIVI) -+ return SLJIT_SUCCESS; - FAIL_IF(push_inst(compiler, SMUL | D(SLJIT_R1) | S1(SLJIT_R0) | S2(SLJIT_R1), DR(SLJIT_R1))); -- FAIL_IF(push_inst(compiler, SUB | D(SLJIT_R1) | S1(TMP_REG2) | S2(SLJIT_R1), DR(SLJIT_R1))); -- return SLJIT_SUCCESS; -+ return push_inst(compiler, SUB | D(SLJIT_R1) | S1(TMP_REG2) | S2(SLJIT_R1), DR(SLJIT_R1)); - #else - #error "Implementation required" - #endif -Index: sljit/sljitNativeMIPS_common.c -=================================================================== ---- sljit/sljitNativeMIPS_common.c (revision 1554) -+++ sljit/sljitNativeMIPS_common.c (working copy) -@@ -1053,8 +1053,11 @@ - #endif - FAIL_IF(push_inst(compiler, MFLO | D(SLJIT_R0), DR(SLJIT_R0))); - return push_inst(compiler, MFHI | D(SLJIT_R1), DR(SLJIT_R1)); -- case SLJIT_LUDIV: -- case SLJIT_LSDIV: -+ case SLJIT_UDIVMOD: -+ case SLJIT_SDIVMOD: -+ case SLJIT_UDIVI: -+ case SLJIT_SDIVI: -+ SLJIT_COMPILE_ASSERT((SLJIT_UDIVMOD & 0x2) == 0 && SLJIT_UDIVI - 0x2 == SLJIT_UDIVMOD, bad_div_opcode_assignments); - #if !(defined SLJIT_MIPS_R1 && SLJIT_MIPS_R1) - FAIL_IF(push_inst(compiler, NOP, UNMOVABLE_INS)); - FAIL_IF(push_inst(compiler, NOP, UNMOVABLE_INS)); -@@ -1062,15 +1065,15 @@ - - #if (defined SLJIT_CONFIG_MIPS_64 && SLJIT_CONFIG_MIPS_64) - if (int_op) -- FAIL_IF(push_inst(compiler, (op == SLJIT_LUDIV ? DIVU : DIV) | S(SLJIT_R0) | T(SLJIT_R1), MOVABLE_INS)); -+ FAIL_IF(push_inst(compiler, ((op | 0x2) == SLJIT_UDIVI ? DIVU : DIV) | S(SLJIT_R0) | T(SLJIT_R1), MOVABLE_INS)); - else -- FAIL_IF(push_inst(compiler, (op == SLJIT_LUDIV ? DDIVU : DDIV) | S(SLJIT_R0) | T(SLJIT_R1), MOVABLE_INS)); -+ FAIL_IF(push_inst(compiler, ((op | 0x2) == SLJIT_UDIVI ? DDIVU : DDIV) | S(SLJIT_R0) | T(SLJIT_R1), MOVABLE_INS)); - #else -- FAIL_IF(push_inst(compiler, (op == SLJIT_LUDIV ? DIVU : DIV) | S(SLJIT_R0) | T(SLJIT_R1), MOVABLE_INS)); -+ FAIL_IF(push_inst(compiler, ((op | 0x2) == SLJIT_UDIVI ? DIVU : DIV) | S(SLJIT_R0) | T(SLJIT_R1), MOVABLE_INS)); - #endif - - FAIL_IF(push_inst(compiler, MFLO | D(SLJIT_R0), DR(SLJIT_R0))); -- return push_inst(compiler, MFHI | D(SLJIT_R1), DR(SLJIT_R1)); -+ return (op >= SLJIT_UDIVI) ? SLJIT_SUCCESS : push_inst(compiler, MFHI | D(SLJIT_R1), DR(SLJIT_R1)); - } - - return SLJIT_SUCCESS; -Index: sljit/sljitNativeARM_32.c -=================================================================== ---- sljit/sljitNativeARM_32.c (revision 1554) -+++ sljit/sljitNativeARM_32.c (working copy) -@@ -1833,18 +1833,33 @@ - | (reg_map[SLJIT_R0] << 8) - | reg_map[TMP_REG1]); - #endif -- case SLJIT_LUDIV: -- case SLJIT_LSDIV: -- if (compiler->scratches >= 3) -+ case SLJIT_UDIVMOD: -+ case SLJIT_SDIVMOD: -+ case SLJIT_UDIVI: -+ case SLJIT_SDIVI: -+ SLJIT_COMPILE_ASSERT((SLJIT_UDIVMOD & 0x2) == 0 && SLJIT_UDIVI - 0x2 == SLJIT_UDIVMOD, bad_div_opcode_assignments); -+ SLJIT_COMPILE_ASSERT(reg_map[2] == 1 && reg_map[3] == 2, bad_register_mapping); -+ -+ if ((op >= SLJIT_UDIVI) && (compiler->scratches >= 3)) { - FAIL_IF(push_inst(compiler, 0xe52d2008 /* str r2, [sp, #-8]! */)); -+ FAIL_IF(push_inst(compiler, 0xe58d1004 /* str r1, [sp, #4] */)); -+ } -+ else if ((op >= SLJIT_UDIVI) || (compiler->scratches >= 3)) -+ FAIL_IF(push_inst(compiler, 0xe52d0008 | (op >= SLJIT_UDIVI ? 0x1000 : 0x2000) /* str r1/r2, [sp, #-8]! */)); -+ - #if defined(__GNUC__) - FAIL_IF(sljit_emit_ijump(compiler, SLJIT_FAST_CALL, SLJIT_IMM, -- (op == SLJIT_LUDIV ? SLJIT_FUNC_OFFSET(__aeabi_uidivmod) : SLJIT_FUNC_OFFSET(__aeabi_idivmod)))); -+ ((op | 0x2) == SLJIT_UDIVI ? SLJIT_FUNC_OFFSET(__aeabi_uidivmod) : SLJIT_FUNC_OFFSET(__aeabi_idivmod)))); - #else - #error "Software divmod functions are needed" - #endif -- if (compiler->scratches >= 3) -- return push_inst(compiler, 0xe49d2008 /* ldr r2, [sp], #8 */); -+ -+ if ((op >= SLJIT_UDIVI) && (compiler->scratches >= 3)) { -+ FAIL_IF(push_inst(compiler, 0xe59d1004 /* ldr r1, [sp, #4] */)); -+ FAIL_IF(push_inst(compiler, 0xe49d2008 /* ldr r2, [sp], #8 */)); -+ } -+ else if ((op >= SLJIT_UDIVI) || (compiler->scratches >= 3)) -+ return push_inst(compiler, 0xe49d0008 | (op >= SLJIT_UDIVI ? 0x1000 : 0x2000) /* ldr r1/r2, [sp], #8 */); - return SLJIT_SUCCESS; - } - -Index: sljit/sljitLir.h -=================================================================== ---- sljit/sljitLir.h (revision 1554) -+++ sljit/sljitLir.h (working copy) -@@ -687,7 +687,7 @@ - #define SLJIT_OP0_BASE 0 - - /* Flags: - (never set any flags) -- Note: breakpoint instruction is not supported by all architectures (namely ppc) -+ Note: breakpoint instruction is not supported by all architectures (e.g. ppc) - It falls back to SLJIT_NOP in those cases. */ - #define SLJIT_BREAKPOINT (SLJIT_OP0_BASE + 0) - /* Flags: - (never set any flags) -@@ -696,24 +696,42 @@ - #define SLJIT_NOP (SLJIT_OP0_BASE + 1) - /* Flags: - (may destroy flags) - Unsigned multiplication of SLJIT_R0 and SLJIT_R1. -- Result goes to SLJIT_R1:SLJIT_R0 (high:low) word */ -+ Result is placed into SLJIT_R1:SLJIT_R0 (high:low) word */ - #define SLJIT_LUMUL (SLJIT_OP0_BASE + 2) - /* Flags: - (may destroy flags) - Signed multiplication of SLJIT_R0 and SLJIT_R1. -- Result goes to SLJIT_R1:SLJIT_R0 (high:low) word */ -+ Result is placed into SLJIT_R1:SLJIT_R0 (high:low) word */ - #define SLJIT_LSMUL (SLJIT_OP0_BASE + 3) - /* Flags: I - (may destroy flags) - Unsigned divide of the value in SLJIT_R0 by the value in SLJIT_R1. -- The result is placed in SLJIT_R0 and the remainder goes to SLJIT_R1. -- Note: if SLJIT_R1 contains 0, the behaviour is undefined. */ --#define SLJIT_LUDIV (SLJIT_OP0_BASE + 4) --#define SLJIT_ILUDIV (SLJIT_LUDIV | SLJIT_INT_OP) -+ The result is placed into SLJIT_R0 and the remainder into SLJIT_R1. -+ Note: if SLJIT_R1 is 0, the behaviour is undefined. */ -+#define SLJIT_UDIVMOD (SLJIT_OP0_BASE + 4) -+#define SLJIT_IUDIVMOD (SLJIT_UDIVMOD | SLJIT_INT_OP) - /* Flags: I - (may destroy flags) - Signed divide of the value in SLJIT_R0 by the value in SLJIT_R1. -- The result is placed in SLJIT_R0 and the remainder goes to SLJIT_R1. -- Note: if SLJIT_R1 contains 0, the behaviour is undefined. */ --#define SLJIT_LSDIV (SLJIT_OP0_BASE + 5) --#define SLJIT_ILSDIV (SLJIT_LSDIV | SLJIT_INT_OP) -+ The result is placed into SLJIT_R0 and the remainder into SLJIT_R1. -+ Note: if SLJIT_R1 is 0, the behaviour is undefined. -+ Note: if SLJIT_R1 is -1 and SLJIT_R0 is integer min (0x800..00), -+ the behaviour is undefined. */ -+#define SLJIT_SDIVMOD (SLJIT_OP0_BASE + 5) -+#define SLJIT_ISDIVMOD (SLJIT_SDIVMOD | SLJIT_INT_OP) -+/* Flags: I - (may destroy flags) -+ Unsigned divide of the value in SLJIT_R0 by the value in SLJIT_R1. -+ The result is placed into SLJIT_R0. SLJIT_R1 preserves its value. -+ Note: if SLJIT_R1 is 0, the behaviour is undefined. -+ Note: SLJIT_SDIV is single precision divide. */ -+#define SLJIT_UDIVI (SLJIT_OP0_BASE + 6) -+#define SLJIT_IUDIVI (SLJIT_UDIVI | SLJIT_INT_OP) -+/* Flags: I - (may destroy flags) -+ Signed divide of the value in SLJIT_R0 by the value in SLJIT_R1. -+ The result is placed into SLJIT_R0. SLJIT_R1 preserves its value. -+ Note: if SLJIT_R1 is 0, the behaviour is undefined. -+ Note: if SLJIT_R1 is -1 and SLJIT_R0 is integer min (0x800..00), -+ the behaviour is undefined. -+ Note: SLJIT_SDIV is single precision divide. */ -+#define SLJIT_SDIVI (SLJIT_OP0_BASE + 7) -+#define SLJIT_ISDIVI (SLJIT_SDIVI | SLJIT_INT_OP) - - SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_op0(struct sljit_compiler *compiler, sljit_si op); - -@@ -851,34 +869,6 @@ - sljit_si src1, sljit_sw src1w, - sljit_si src2, sljit_sw src2w); - --/* The following function is a helper function for sljit_emit_op_custom. -- It returns with the real machine register index ( >=0 ) of any SLJIT_R, -- SLJIT_S and SLJIT_SP registers. -- -- Note: it returns with -1 for virtual registers (only on x86-32). */ -- --SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_get_register_index(sljit_si reg); -- --/* The following function is a helper function for sljit_emit_op_custom. -- It returns with the real machine register index of any SLJIT_FLOAT register. -- -- Note: the index is always an even number on ARM (except ARM-64), MIPS, and SPARC. */ -- --SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_get_float_register_index(sljit_si reg); -- --/* Any instruction can be inserted into the instruction stream by -- sljit_emit_op_custom. It has a similar purpose as inline assembly. -- The size parameter must match to the instruction size of the target -- architecture: -- -- x86: 0 < size <= 15. The instruction argument can be byte aligned. -- Thumb2: if size == 2, the instruction argument must be 2 byte aligned. -- if size == 4, the instruction argument must be 4 byte aligned. -- Otherwise: size must be 4 and instruction argument must be 4 byte aligned. */ -- --SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_op_custom(struct sljit_compiler *compiler, -- void *instruction, sljit_si size); -- - /* Returns with non-zero if fpu is available. */ - - SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_is_fpu_available(void); -@@ -1196,4 +1186,64 @@ - - #endif /* !(defined SLJIT_INDIRECT_CALL && SLJIT_INDIRECT_CALL) */ - -+/* --------------------------------------------------------------------- */ -+/* CPU specific functions */ -+/* --------------------------------------------------------------------- */ -+ -+/* The following function is a helper function for sljit_emit_op_custom. -+ It returns with the real machine register index ( >=0 ) of any SLJIT_R, -+ SLJIT_S and SLJIT_SP registers. -+ -+ Note: it returns with -1 for virtual registers (only on x86-32). */ -+ -+SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_get_register_index(sljit_si reg); -+ -+/* The following function is a helper function for sljit_emit_op_custom. -+ It returns with the real machine register index of any SLJIT_FLOAT register. -+ -+ Note: the index is always an even number on ARM (except ARM-64), MIPS, and SPARC. */ -+ -+SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_get_float_register_index(sljit_si reg); -+ -+/* Any instruction can be inserted into the instruction stream by -+ sljit_emit_op_custom. It has a similar purpose as inline assembly. -+ The size parameter must match to the instruction size of the target -+ architecture: -+ -+ x86: 0 < size <= 15. The instruction argument can be byte aligned. -+ Thumb2: if size == 2, the instruction argument must be 2 byte aligned. -+ if size == 4, the instruction argument must be 4 byte aligned. -+ Otherwise: size must be 4 and instruction argument must be 4 byte aligned. */ -+ -+SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_op_custom(struct sljit_compiler *compiler, -+ void *instruction, sljit_si size); -+ -+#if (defined SLJIT_CONFIG_X86 && SLJIT_CONFIG_X86) -+ -+/* Returns with non-zero if sse2 is available. */ -+ -+SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_x86_is_sse2_available(void); -+ -+/* Returns with non-zero if cmov instruction is available. */ -+ -+SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_x86_is_cmov_available(void); -+ -+/* Emit a conditional mov instruction on x86 CPUs. This instruction -+ moves src to destination, if the condition is satisfied. Unlike -+ other arithmetic instructions, destination must be a register. -+ Before such instructions are emitted, cmov support should be -+ checked by sljit_x86_is_cmov_available function. -+ type must be between SLJIT_EQUAL and SLJIT_S_ORDERED -+ dst_reg must be a valid register and it can be combined -+ with SLJIT_INT_OP to perform 32 bit arithmetic -+ Flags: I - (never set any flags) -+ */ -+ -+SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_x86_emit_cmov(struct sljit_compiler *compiler, -+ sljit_si type, -+ sljit_si dst_reg, -+ sljit_si src, sljit_sw srcw); -+ -+#endif -+ - #endif /* _SLJIT_LIR_H_ */ -Index: sljit/sljitNativeARM_64.c -=================================================================== ---- sljit/sljitNativeARM_64.c (revision 1554) -+++ sljit/sljitNativeARM_64.c (working copy) -@@ -1087,7 +1087,8 @@ - saved_regs_size += sizeof(sljit_sw); - } - local_size -= saved_regs_size + SLJIT_LOCALS_OFFSET; -- FAIL_IF(push_inst(compiler, SUBI | RD(TMP_SP) | RN(TMP_SP) | (saved_regs_size << 10))); -+ if (saved_regs_size > 0) -+ FAIL_IF(push_inst(compiler, SUBI | RD(TMP_SP) | RN(TMP_SP) | (saved_regs_size << 10))); - } - - tmp = saveds < SLJIT_NUMBER_OF_SAVED_REGISTERS ? (SLJIT_S0 + 1 - saveds) : SLJIT_FIRST_SAVED_REG; -@@ -1094,7 +1095,12 @@ - prev = -1; - for (i = SLJIT_S0; i >= tmp; i--) { - if (prev == -1) { -- prev = i; -+ if (!(offs & (1 << 15))) { -+ prev = i; -+ continue; -+ } -+ FAIL_IF(push_inst(compiler, STRI | RT(i) | RN(TMP_SP) | (offs >> 5))); -+ offs += 1 << 15; - continue; - } - FAIL_IF(push_inst(compiler, STP | RT(prev) | RT2(i) | RN(TMP_SP) | offs)); -@@ -1104,7 +1110,12 @@ - - for (i = scratches; i >= SLJIT_FIRST_SAVED_REG; i--) { - if (prev == -1) { -- prev = i; -+ if (!(offs & (1 << 15))) { -+ prev = i; -+ continue; -+ } -+ FAIL_IF(push_inst(compiler, STRI | RT(i) | RN(TMP_SP) | (offs >> 5))); -+ offs += 1 << 15; - continue; - } - FAIL_IF(push_inst(compiler, STP | RT(prev) | RT2(i) | RN(TMP_SP) | offs)); -@@ -1112,8 +1123,7 @@ - prev = -1; - } - -- if (prev != -1) -- FAIL_IF(push_inst(compiler, STRI | RT(prev) | RN(TMP_SP) | (offs >> 5))); -+ SLJIT_ASSERT(prev == -1); - - if (compiler->local_size > (63 * sizeof(sljit_sw))) { - /* The local_size is already adjusted by the saved registers. */ -@@ -1188,7 +1198,12 @@ - prev = -1; - for (i = SLJIT_S0; i >= tmp; i--) { - if (prev == -1) { -- prev = i; -+ if (!(offs & (1 << 15))) { -+ prev = i; -+ continue; -+ } -+ FAIL_IF(push_inst(compiler, LDRI | RT(i) | RN(TMP_SP) | (offs >> 5))); -+ offs += 1 << 15; - continue; - } - FAIL_IF(push_inst(compiler, LDP | RT(prev) | RT2(i) | RN(TMP_SP) | offs)); -@@ -1198,7 +1213,12 @@ - - for (i = compiler->scratches; i >= SLJIT_FIRST_SAVED_REG; i--) { - if (prev == -1) { -- prev = i; -+ if (!(offs & (1 << 15))) { -+ prev = i; -+ continue; -+ } -+ FAIL_IF(push_inst(compiler, LDRI | RT(i) | RN(TMP_SP) | (offs >> 5))); -+ offs += 1 << 15; - continue; - } - FAIL_IF(push_inst(compiler, LDP | RT(prev) | RT2(i) | RN(TMP_SP) | offs)); -@@ -1206,13 +1226,12 @@ - prev = -1; - } - -- if (prev != -1) -- FAIL_IF(push_inst(compiler, LDRI | RT(prev) | RN(TMP_SP) | (offs >> 5))); -+ SLJIT_ASSERT(prev == -1); - - if (compiler->local_size <= (63 * sizeof(sljit_sw))) { - FAIL_IF(push_inst(compiler, LDP_PST | 29 | RT2(TMP_LR) - | RN(TMP_SP) | (((local_size >> 3) & 0x7f) << 15))); -- } else { -+ } else if (saved_regs_size > 0) { - FAIL_IF(push_inst(compiler, ADDI | RD(TMP_SP) | RN(TMP_SP) | (saved_regs_size << 10))); - } - -@@ -1242,12 +1261,15 @@ - FAIL_IF(push_inst(compiler, ORR | RD(TMP_REG1) | RN(TMP_ZERO) | RM(SLJIT_R0))); - FAIL_IF(push_inst(compiler, MADD | RD(SLJIT_R0) | RN(SLJIT_R0) | RM(SLJIT_R1) | RT2(TMP_ZERO))); - return push_inst(compiler, (op == SLJIT_LUMUL ? UMULH : SMULH) | RD(SLJIT_R1) | RN(TMP_REG1) | RM(SLJIT_R1)); -- case SLJIT_LUDIV: -- case SLJIT_LSDIV: -+ case SLJIT_UDIVMOD: -+ case SLJIT_SDIVMOD: - FAIL_IF(push_inst(compiler, (ORR ^ inv_bits) | RD(TMP_REG1) | RN(TMP_ZERO) | RM(SLJIT_R0))); -- FAIL_IF(push_inst(compiler, ((op == SLJIT_LUDIV ? UDIV : SDIV) ^ inv_bits) | RD(SLJIT_R0) | RN(SLJIT_R0) | RM(SLJIT_R1))); -+ FAIL_IF(push_inst(compiler, ((op == SLJIT_UDIVMOD ? UDIV : SDIV) ^ inv_bits) | RD(SLJIT_R0) | RN(SLJIT_R0) | RM(SLJIT_R1))); - FAIL_IF(push_inst(compiler, (MADD ^ inv_bits) | RD(SLJIT_R1) | RN(SLJIT_R0) | RM(SLJIT_R1) | RT2(TMP_ZERO))); - return push_inst(compiler, (SUB ^ inv_bits) | RD(SLJIT_R1) | RN(TMP_REG1) | RM(SLJIT_R1)); -+ case SLJIT_UDIVI: -+ case SLJIT_SDIVI: -+ return push_inst(compiler, ((op == SLJIT_UDIVI ? UDIV : SDIV) ^ inv_bits) | RD(SLJIT_R0) | RN(SLJIT_R0) | RM(SLJIT_R1)); - } - - return SLJIT_SUCCESS; -Index: sljit/sljitNativeARM_T2_32.c -=================================================================== ---- sljit/sljitNativeARM_T2_32.c (revision 1554) -+++ sljit/sljitNativeARM_T2_32.c (working copy) -@@ -1239,6 +1239,9 @@ - - SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_op0(struct sljit_compiler *compiler, sljit_si op) - { -+ sljit_sw saved_reg_list[3]; -+ sljit_sw saved_reg_count; -+ - CHECK_ERROR(); - CHECK(check_sljit_emit_op0(compiler, op)); - -@@ -1255,24 +1258,53 @@ - | (reg_map[SLJIT_R0] << 12) - | (reg_map[SLJIT_R0] << 16) - | reg_map[SLJIT_R1]); -- case SLJIT_LUDIV: -- case SLJIT_LSDIV: -- if (compiler->scratches >= 4) { -- FAIL_IF(push_inst32(compiler, 0xf84d2d04 /* str r2, [sp, #-4]! */)); -- FAIL_IF(push_inst32(compiler, 0xf84dcd04 /* str ip, [sp, #-4]! */)); -- } else if (compiler->scratches >= 3) -- FAIL_IF(push_inst32(compiler, 0xf84d2d08 /* str r2, [sp, #-8]! */)); -+ case SLJIT_UDIVMOD: -+ case SLJIT_SDIVMOD: -+ case SLJIT_UDIVI: -+ case SLJIT_SDIVI: -+ SLJIT_COMPILE_ASSERT((SLJIT_UDIVMOD & 0x2) == 0 && SLJIT_UDIVI - 0x2 == SLJIT_UDIVMOD, bad_div_opcode_assignments); -+ SLJIT_COMPILE_ASSERT(reg_map[2] == 1 && reg_map[3] == 2 && reg_map[4] == 12, bad_register_mapping); -+ -+ saved_reg_count = 0; -+ if (compiler->scratches >= 4) -+ saved_reg_list[saved_reg_count++] = 12; -+ if (compiler->scratches >= 3) -+ saved_reg_list[saved_reg_count++] = 2; -+ if (op >= SLJIT_UDIVI) -+ saved_reg_list[saved_reg_count++] = 1; -+ -+ if (saved_reg_count > 0) { -+ FAIL_IF(push_inst32(compiler, 0xf84d0d00 | (saved_reg_count >= 3 ? 16 : 8) -+ | (saved_reg_list[0] << 12) /* str rX, [sp, #-8/-16]! */)); -+ if (saved_reg_count >= 2) { -+ SLJIT_ASSERT(saved_reg_list[1] < 8); -+ FAIL_IF(push_inst16(compiler, 0x9001 | (saved_reg_list[1] << 8) /* str rX, [sp, #4] */)); -+ } -+ if (saved_reg_count >= 3) { -+ SLJIT_ASSERT(saved_reg_list[2] < 8); -+ FAIL_IF(push_inst16(compiler, 0x9002 | (saved_reg_list[2] << 8) /* str rX, [sp, #8] */)); -+ } -+ } -+ - #if defined(__GNUC__) - FAIL_IF(sljit_emit_ijump(compiler, SLJIT_FAST_CALL, SLJIT_IMM, -- (op == SLJIT_LUDIV ? SLJIT_FUNC_OFFSET(__aeabi_uidivmod) : SLJIT_FUNC_OFFSET(__aeabi_idivmod)))); -+ ((op | 0x2) == SLJIT_UDIVI ? SLJIT_FUNC_OFFSET(__aeabi_uidivmod) : SLJIT_FUNC_OFFSET(__aeabi_idivmod)))); - #else - #error "Software divmod functions are needed" - #endif -- if (compiler->scratches >= 4) { -- FAIL_IF(push_inst32(compiler, 0xf85dcb04 /* ldr ip, [sp], #4 */)); -- return push_inst32(compiler, 0xf85d2b04 /* ldr r2, [sp], #4 */); -- } else if (compiler->scratches >= 3) -- return push_inst32(compiler, 0xf85d2b08 /* ldr r2, [sp], #8 */); -+ -+ if (saved_reg_count > 0) { -+ if (saved_reg_count >= 3) { -+ SLJIT_ASSERT(saved_reg_list[2] < 8); -+ FAIL_IF(push_inst16(compiler, 0x9802 | (saved_reg_list[2] << 8) /* ldr rX, [sp, #8] */)); -+ } -+ if (saved_reg_count >= 2) { -+ SLJIT_ASSERT(saved_reg_list[1] < 8); -+ FAIL_IF(push_inst16(compiler, 0x9801 | (saved_reg_list[1] << 8) /* ldr rX, [sp, #4] */)); -+ } -+ return push_inst32(compiler, 0xf85d0b00 | (saved_reg_count >= 3 ? 16 : 8) -+ | (saved_reg_list[0] << 12) /* ldr rX, [sp], #8/16 */); -+ } - return SLJIT_SUCCESS; - } - -Index: sljit/sljitNativePPC_common.c -=================================================================== ---- sljit/sljitNativePPC_common.c (revision 1554) -+++ sljit/sljitNativePPC_common.c (working copy) -@@ -1267,22 +1267,23 @@ - FAIL_IF(push_inst(compiler, MULLW | D(SLJIT_R0) | A(TMP_REG1) | B(SLJIT_R1))); - return push_inst(compiler, (op == SLJIT_LUMUL ? MULHWU : MULHW) | D(SLJIT_R1) | A(TMP_REG1) | B(SLJIT_R1)); - #endif -- case SLJIT_LUDIV: -- case SLJIT_LSDIV: -+ case SLJIT_UDIVMOD: -+ case SLJIT_SDIVMOD: - FAIL_IF(push_inst(compiler, OR | S(SLJIT_R0) | A(TMP_REG1) | B(SLJIT_R0))); - #if (defined SLJIT_CONFIG_PPC_64 && SLJIT_CONFIG_PPC_64) -- if (int_op) { -- FAIL_IF(push_inst(compiler, (op == SLJIT_LUDIV ? DIVWU : DIVW) | D(SLJIT_R0) | A(TMP_REG1) | B(SLJIT_R1))); -- FAIL_IF(push_inst(compiler, MULLW | D(SLJIT_R1) | A(SLJIT_R0) | B(SLJIT_R1))); -- } else { -- FAIL_IF(push_inst(compiler, (op == SLJIT_LUDIV ? DIVDU : DIVD) | D(SLJIT_R0) | A(TMP_REG1) | B(SLJIT_R1))); -- FAIL_IF(push_inst(compiler, MULLD | D(SLJIT_R1) | A(SLJIT_R0) | B(SLJIT_R1))); -- } -- return push_inst(compiler, SUBF | D(SLJIT_R1) | A(SLJIT_R1) | B(TMP_REG1)); -+ FAIL_IF(push_inst(compiler, (int_op ? (op == SLJIT_UDIVMOD ? DIVWU : DIVW) : (op == SLJIT_UDIVMOD ? DIVDU : DIVD)) | D(SLJIT_R0) | A(SLJIT_R0) | B(SLJIT_R1))); -+ FAIL_IF(push_inst(compiler, (int_op ? MULLW : MULLD) | D(SLJIT_R1) | A(SLJIT_R0) | B(SLJIT_R1))); - #else -- FAIL_IF(push_inst(compiler, (op == SLJIT_LUDIV ? DIVWU : DIVW) | D(SLJIT_R0) | A(TMP_REG1) | B(SLJIT_R1))); -+ FAIL_IF(push_inst(compiler, (op == SLJIT_UDIVMOD ? DIVWU : DIVW) | D(SLJIT_R0) | A(SLJIT_R0) | B(SLJIT_R1))); - FAIL_IF(push_inst(compiler, MULLW | D(SLJIT_R1) | A(SLJIT_R0) | B(SLJIT_R1))); -+#endif - return push_inst(compiler, SUBF | D(SLJIT_R1) | A(SLJIT_R1) | B(TMP_REG1)); -+ case SLJIT_UDIVI: -+ case SLJIT_SDIVI: -+#if (defined SLJIT_CONFIG_PPC_64 && SLJIT_CONFIG_PPC_64) -+ return push_inst(compiler, (int_op ? (op == SLJIT_UDIVI ? DIVWU : DIVW) : (op == SLJIT_UDIVI ? DIVDU : DIVD)) | D(SLJIT_R0) | A(SLJIT_R0) | B(SLJIT_R1)); -+#else -+ return push_inst(compiler, (op == SLJIT_UDIVI ? DIVWU : DIVW) | D(SLJIT_R0) | A(SLJIT_R0) | B(SLJIT_R1)); - #endif - } - -Index: sljit/sljitNativeX86_common.c -=================================================================== ---- sljit/sljitNativeX86_common.c (revision 1554) -+++ sljit/sljitNativeX86_common.c (working copy) -@@ -273,7 +273,9 @@ - #endif - static sljit_si cpu_has_cmov = -1; - --#if defined(_MSC_VER) && _MSC_VER >= 1400 -+#ifdef _WIN32_WCE -+#include -+#elif defined(_MSC_VER) && _MSC_VER >= 1400 - #include - #endif - -@@ -742,8 +744,10 @@ - break; - case SLJIT_LUMUL: - case SLJIT_LSMUL: -- case SLJIT_LUDIV: -- case SLJIT_LSDIV: -+ case SLJIT_UDIVMOD: -+ case SLJIT_SDIVMOD: -+ case SLJIT_UDIVI: -+ case SLJIT_SDIVI: - compiler->flags_saved = 0; - #if (defined SLJIT_CONFIG_X86_64 && SLJIT_CONFIG_X86_64) - #ifdef _WIN64 -@@ -761,9 +765,10 @@ - #endif - compiler->mode32 = op & SLJIT_INT_OP; - #endif -+ SLJIT_COMPILE_ASSERT((SLJIT_UDIVMOD & 0x2) == 0 && SLJIT_UDIVI - 0x2 == SLJIT_UDIVMOD, bad_div_opcode_assignments); - - op = GET_OPCODE(op); -- if (op == SLJIT_LUDIV) { -+ if ((op | 0x2) == SLJIT_UDIVI) { - #if (defined SLJIT_CONFIG_X86_32 && SLJIT_CONFIG_X86_32) || defined(_WIN64) - EMIT_MOV(compiler, TMP_REG1, 0, SLJIT_R1, 0); - inst = emit_x86_instruction(compiler, 1, SLJIT_R1, 0, SLJIT_R1, 0); -@@ -774,7 +779,7 @@ - *inst = XOR_r_rm; - } - -- if (op == SLJIT_LSDIV) { -+ if ((op | 0x2) == SLJIT_SDIVI) { - #if (defined SLJIT_CONFIG_X86_32 && SLJIT_CONFIG_X86_32) || defined(_WIN64) - EMIT_MOV(compiler, TMP_REG1, 0, SLJIT_R1, 0); - #endif -@@ -805,10 +810,10 @@ - FAIL_IF(!inst); - INC_SIZE(2); - *inst++ = GROUP_F7; -- *inst = MOD_REG | ((op >= SLJIT_LUDIV) ? reg_map[TMP_REG1] : reg_map[SLJIT_R1]); -+ *inst = MOD_REG | ((op >= SLJIT_UDIVMOD) ? reg_map[TMP_REG1] : reg_map[SLJIT_R1]); - #else - #ifdef _WIN64 -- size = (!compiler->mode32 || op >= SLJIT_LUDIV) ? 3 : 2; -+ size = (!compiler->mode32 || op >= SLJIT_UDIVMOD) ? 3 : 2; - #else - size = (!compiler->mode32) ? 3 : 2; - #endif -@@ -817,11 +822,11 @@ - INC_SIZE(size); - #ifdef _WIN64 - if (!compiler->mode32) -- *inst++ = REX_W | ((op >= SLJIT_LUDIV) ? REX_B : 0); -- else if (op >= SLJIT_LUDIV) -+ *inst++ = REX_W | ((op >= SLJIT_UDIVMOD) ? REX_B : 0); -+ else if (op >= SLJIT_UDIVMOD) - *inst++ = REX_B; - *inst++ = GROUP_F7; -- *inst = MOD_REG | ((op >= SLJIT_LUDIV) ? reg_lmap[TMP_REG1] : reg_lmap[SLJIT_R1]); -+ *inst = MOD_REG | ((op >= SLJIT_UDIVMOD) ? reg_lmap[TMP_REG1] : reg_lmap[SLJIT_R1]); - #else - if (!compiler->mode32) - *inst++ = REX_W; -@@ -836,15 +841,21 @@ - case SLJIT_LSMUL: - *inst |= IMUL; - break; -- case SLJIT_LUDIV: -+ case SLJIT_UDIVMOD: -+ case SLJIT_UDIVI: - *inst |= DIV; - break; -- case SLJIT_LSDIV: -+ case SLJIT_SDIVMOD: -+ case SLJIT_SDIVI: - *inst |= IDIV; - break; - } - #if (defined SLJIT_CONFIG_X86_64 && SLJIT_CONFIG_X86_64) && !defined(_WIN64) -- EMIT_MOV(compiler, SLJIT_R1, 0, TMP_REG1, 0); -+ if (op <= SLJIT_SDIVMOD) -+ EMIT_MOV(compiler, SLJIT_R1, 0, TMP_REG1, 0); -+#else -+ if (op >= SLJIT_UDIVI) -+ EMIT_MOV(compiler, SLJIT_R1, 0, TMP_REG1, 0); - #endif - break; - } -@@ -1905,60 +1916,62 @@ - return SLJIT_SUCCESS; - } - -- if (FAST_IS_REG(src1)) { -+ if (!(src1 & SLJIT_IMM)) { - if (src2 & SLJIT_IMM) { - #if (defined SLJIT_CONFIG_X86_64 && SLJIT_CONFIG_X86_64) - if (IS_HALFWORD(src2w) || compiler->mode32) { -- inst = emit_x86_instruction(compiler, 1, SLJIT_IMM, src2w, src1, 0); -+ inst = emit_x86_instruction(compiler, 1, SLJIT_IMM, src2w, src1, src1w); - FAIL_IF(!inst); - *inst = GROUP_F7; - } - else { - FAIL_IF(emit_load_imm64(compiler, TMP_REG2, src2w)); -- inst = emit_x86_instruction(compiler, 1, TMP_REG2, 0, src1, 0); -+ inst = emit_x86_instruction(compiler, 1, TMP_REG2, 0, src1, src1w); - FAIL_IF(!inst); - *inst = TEST_rm_r; - } - #else -- inst = emit_x86_instruction(compiler, 1, SLJIT_IMM, src2w, src1, 0); -+ inst = emit_x86_instruction(compiler, 1, SLJIT_IMM, src2w, src1, src1w); - FAIL_IF(!inst); - *inst = GROUP_F7; - #endif -+ return SLJIT_SUCCESS; - } -- else { -+ else if (FAST_IS_REG(src1)) { - inst = emit_x86_instruction(compiler, 1, src1, 0, src2, src2w); - FAIL_IF(!inst); - *inst = TEST_rm_r; -+ return SLJIT_SUCCESS; - } -- return SLJIT_SUCCESS; - } - -- if (FAST_IS_REG(src2)) { -+ if (!(src2 & SLJIT_IMM)) { - if (src1 & SLJIT_IMM) { - #if (defined SLJIT_CONFIG_X86_64 && SLJIT_CONFIG_X86_64) - if (IS_HALFWORD(src1w) || compiler->mode32) { -- inst = emit_x86_instruction(compiler, 1, SLJIT_IMM, src1w, src2, 0); -+ inst = emit_x86_instruction(compiler, 1, SLJIT_IMM, src1w, src2, src2w); - FAIL_IF(!inst); - *inst = GROUP_F7; - } - else { - FAIL_IF(emit_load_imm64(compiler, TMP_REG2, src1w)); -- inst = emit_x86_instruction(compiler, 1, TMP_REG2, 0, src2, 0); -+ inst = emit_x86_instruction(compiler, 1, TMP_REG2, 0, src2, src2w); - FAIL_IF(!inst); - *inst = TEST_rm_r; - } - #else -- inst = emit_x86_instruction(compiler, 1, src1, src1w, src2, 0); -+ inst = emit_x86_instruction(compiler, 1, src1, src1w, src2, src2w); - FAIL_IF(!inst); - *inst = GROUP_F7; - #endif -+ return SLJIT_SUCCESS; - } -- else { -+ else if (FAST_IS_REG(src2)) { - inst = emit_x86_instruction(compiler, 1, src2, 0, src1, src1w); - FAIL_IF(!inst); - *inst = TEST_rm_r; -+ return SLJIT_SUCCESS; - } -- return SLJIT_SUCCESS; - } - - EMIT_MOV(compiler, TMP_REG1, 0, src1, src1w); -@@ -2923,3 +2936,69 @@ - { - *(sljit_sw*)addr = new_constant; - } -+ -+SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_x86_is_sse2_available(void) -+{ -+#if (defined SLJIT_DETECT_SSE2 && SLJIT_DETECT_SSE2) -+ if (cpu_has_sse2 == -1) -+ get_cpu_features(); -+ return cpu_has_sse2; -+#else -+ return 1; -+#endif -+} -+ -+SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_x86_is_cmov_available(void) -+{ -+ if (cpu_has_cmov == -1) -+ get_cpu_features(); -+ return cpu_has_cmov; -+} -+ -+SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_x86_emit_cmov(struct sljit_compiler *compiler, -+ sljit_si type, -+ sljit_si dst_reg, -+ sljit_si src, sljit_sw srcw) -+{ -+ sljit_ub* inst; -+ -+ CHECK_ERROR(); -+#if (defined SLJIT_ARGUMENT_CHECKS && SLJIT_ARGUMENT_CHECKS) -+ CHECK_ARGUMENT(sljit_x86_is_cmov_available()); -+ CHECK_ARGUMENT(!(type & ~(0xff | SLJIT_INT_OP))); -+ CHECK_ARGUMENT((type & 0xff) >= SLJIT_EQUAL && (type & 0xff) <= SLJIT_D_ORDERED); -+ CHECK_ARGUMENT(FUNCTION_CHECK_IS_REG(dst_reg & ~SLJIT_INT_OP)); -+ FUNCTION_CHECK_SRC(src, srcw); -+#endif -+#if (defined SLJIT_VERBOSE && SLJIT_VERBOSE) -+ if (SLJIT_UNLIKELY(!!compiler->verbose)) { -+ fprintf(compiler->verbose, " x86_cmov%s %s%s, ", -+ !(dst_reg & SLJIT_INT_OP) ? "" : ".i", -+ JUMP_PREFIX(type), jump_names[type & 0xff]); -+ sljit_verbose_reg(compiler, dst_reg & ~SLJIT_INT_OP); -+ fprintf(compiler->verbose, ", "); -+ sljit_verbose_param(compiler, src, srcw); -+ fprintf(compiler->verbose, "\n"); -+ } -+#endif -+ -+ ADJUST_LOCAL_OFFSET(src, srcw); -+ CHECK_EXTRA_REGS(src, srcw, (void)0); -+ -+#if (defined SLJIT_CONFIG_X86_64 && SLJIT_CONFIG_X86_64) -+ compiler->mode32 = dst_reg & SLJIT_INT_OP; -+#endif -+ dst_reg &= ~SLJIT_INT_OP; -+ -+ if (SLJIT_UNLIKELY(src & SLJIT_IMM)) { -+ EMIT_MOV(compiler, TMP_REG1, 0, SLJIT_IMM, srcw); -+ src = TMP_REG1; -+ srcw = 0; -+ } -+ -+ inst = emit_x86_instruction(compiler, 2, dst_reg, 0, src, srcw); -+ FAIL_IF(!inst); -+ *inst++ = GROUP_0F; -+ *inst = get_jump_code(type & 0xff) - 0x40; -+ return SLJIT_SUCCESS; -+} -Index: sljit/sljitConfigInternal.h -=================================================================== ---- sljit/sljitConfigInternal.h (revision 1554) -+++ sljit/sljitConfigInternal.h (working copy) -@@ -468,8 +468,13 @@ - - #ifndef SLJIT_CALL - --#if (defined SLJIT_CONFIG_X86_32 && SLJIT_CONFIG_X86_32) -+#if (defined SLJIT_USE_CDECL_CALLING_CONVENTION && SLJIT_USE_CDECL_CALLING_CONVENTION) - -+/* Force cdecl. */ -+#define SLJIT_CALL -+ -+#elif (defined SLJIT_CONFIG_X86_32 && SLJIT_CONFIG_X86_32) -+ - #if defined(__GNUC__) && !defined(__APPLE__) - - #define SLJIT_CALL __attribute__ ((fastcall)) -@@ -608,6 +613,12 @@ - #define SLJIT_LOCALS_OFFSET_BASE ((23 + 1) * sizeof(sljit_sw)) - #endif - -+#elif (defined SLJIT_CONFIG_TILEGX && SLJIT_CONFIG_TILEGX) -+ -+#define SLJIT_NUMBER_OF_REGISTERS 10 -+#define SLJIT_NUMBER_OF_SAVED_REGISTERS 5 -+#define SLJIT_LOCALS_OFFSET_BASE 0 -+ - #elif (defined SLJIT_CONFIG_UNSUPPORTED && SLJIT_CONFIG_UNSUPPORTED) - - #define SLJIT_NUMBER_OF_REGISTERS 0 -Index: sljit/sljitConfig.h -=================================================================== ---- sljit/sljitConfig.h (revision 1554) -+++ sljit/sljitConfig.h (working copy) -@@ -96,6 +96,15 @@ - #define SLJIT_EXECUTABLE_ALLOCATOR 1 - #endif - -+/* Force cdecl calling convention even if a better calling -+ convention (e.g. fastcall) is supported by the C compiler. -+ If this option is enabled, C functions without -+ SLJIT_CALL can also be called from JIT code. */ -+#ifndef SLJIT_USE_CDECL_CALLING_CONVENTION -+/* Disabled by default */ -+#define SLJIT_USE_CDECL_CALLING_CONVENTION 0 -+#endif -+ - /* Return with error when an invalid argument is passed. */ - #ifndef SLJIT_ARGUMENT_CHECKS - /* Disabled by default */ -Index: sljit/sljitNativeTILEGX_64.c -=================================================================== ---- sljit/sljitNativeTILEGX_64.c (revision 1554) -+++ sljit/sljitNativeTILEGX_64.c (working copy) -@@ -35,21 +35,21 @@ - #define SIMM_16BIT_MIN (-0x8000) - #define SIMM_17BIT_MAX (0xffff) - #define SIMM_17BIT_MIN (-0x10000) --#define SIMM_32BIT_MIN (-0x80000000) - #define SIMM_32BIT_MAX (0x7fffffff) --#define SIMM_48BIT_MIN (0x800000000000L) -+#define SIMM_32BIT_MIN (-0x7fffffff - 1) - #define SIMM_48BIT_MAX (0x7fffffff0000L) -+#define SIMM_48BIT_MIN (-0x800000000000L) - #define IMM16(imm) ((imm) & 0xffff) - - #define UIMM_16BIT_MAX (0xffff) - --#define TMP_REG1 (SLJIT_NO_REGISTERS + 1) --#define TMP_REG2 (SLJIT_NO_REGISTERS + 2) --#define TMP_REG3 (SLJIT_NO_REGISTERS + 3) --#define ADDR_TMP (SLJIT_NO_REGISTERS + 4) -+#define TMP_REG1 (SLJIT_NUMBER_OF_REGISTERS + 2) -+#define TMP_REG2 (SLJIT_NUMBER_OF_REGISTERS + 3) -+#define TMP_REG3 (SLJIT_NUMBER_OF_REGISTERS + 4) -+#define ADDR_TMP (SLJIT_NUMBER_OF_REGISTERS + 5) - #define PIC_ADDR_REG TMP_REG2 - --static SLJIT_CONST sljit_ub reg_map[SLJIT_NO_REGISTERS + 5] = { -+static SLJIT_CONST sljit_ub reg_map[SLJIT_NUMBER_OF_REGISTERS + 6] = { - 63, 0, 1, 2, 3, 4, 30, 31, 32, 33, 34, 54, 5, 16, 6, 7 - }; - -@@ -58,11 +58,6 @@ - #define TMP_REG2_mapped 16 - #define TMP_REG3_mapped 6 - #define ADDR_TMP_mapped 7 --#define SLJIT_SAVED_REG1_mapped 30 --#define SLJIT_SAVED_REG2_mapped 31 --#define SLJIT_SAVED_REG3_mapped 32 --#define SLJIT_SAVED_EREG1_mapped 33 --#define SLJIT_SAVED_EREG2_mapped 34 - - /* Flags are keept in volatile registers. */ - #define EQUAL_FLAG 8 -@@ -399,6 +394,9 @@ - #define SUB(dst, srca, srcb) \ - push_3_buffer(compiler, TILEGX_OPC_SUB, dst, srca, srcb, __LINE__) - -+#define MUL(dst, srca, srcb) \ -+ push_3_buffer(compiler, TILEGX_OPC_MULX, dst, srca, srcb, __LINE__) -+ - #define NOR(dst, srca, srcb) \ - push_3_buffer(compiler, TILEGX_OPC_NOR, dst, srca, srcb, __LINE__) - -@@ -547,8 +545,8 @@ - - const struct Format* match = NULL; - const struct Format *b = NULL; -- unsigned int i = 0; -- for (i; i < sizeof formats / sizeof formats[0]; i++) { -+ unsigned int i; -+ for (i = 0; i < sizeof formats / sizeof formats[0]; i++) { - b = &formats[i]; - if ((b->pipe_mask & compatible_pipes) == b->pipe_mask) { - match = b; -@@ -625,7 +623,6 @@ - - static sljit_si update_buffer(struct sljit_compiler *compiler) - { -- int count; - int i; - int orig_index = inst_buf_index; - struct jit_instr inst0 = inst_buf[0]; -@@ -738,8 +735,10 @@ - - static sljit_si flush_buffer(struct sljit_compiler *compiler) - { -- while (inst_buf_index != 0) -- update_buffer(compiler); -+ while (inst_buf_index != 0) { -+ FAIL_IF(update_buffer(compiler)); -+ } -+ return SLJIT_SUCCESS; - } - - static sljit_si push_4_buffer(struct sljit_compiler *compiler, tilegx_mnemonic opc, int op0, int op1, int op2, int op3, int line) -@@ -787,6 +786,7 @@ - case TILEGX_OPC_ADD: - case TILEGX_OPC_AND: - case TILEGX_OPC_SUB: -+ case TILEGX_OPC_MULX: - case TILEGX_OPC_OR: - case TILEGX_OPC_XOR: - case TILEGX_OPC_NOR: -@@ -905,7 +905,6 @@ - sljit_sw diff; - sljit_uw target_addr; - sljit_ins *inst; -- sljit_ins saved_inst; - - if (jump->flags & SLJIT_REWRITABLE_JUMP) - return code_ptr; -@@ -1009,7 +1008,7 @@ - struct sljit_const *const_; - - CHECK_ERROR_PTR(); -- check_sljit_generate_code(compiler); -+ CHECK_PTR(check_sljit_generate_code(compiler)); - reverse_buf(compiler); - - code = (sljit_ins *)SLJIT_MALLOC_EXEC(compiler->size * sizeof(sljit_ins)); -@@ -1178,13 +1177,13 @@ - sljit_si fscratches, sljit_si fsaveds, sljit_si local_size) - { - sljit_ins base; -- sljit_ins bundle = 0; -- -+ sljit_si i, tmp; -+ - CHECK_ERROR(); -- check_sljit_emit_enter(compiler, options, args, scratches, saveds, fscratches, fsaveds, local_size); -+ CHECK(check_sljit_emit_enter(compiler, options, args, scratches, saveds, fscratches, fsaveds, local_size)); - set_emit_enter(compiler, options, args, scratches, saveds, fscratches, fsaveds, local_size); - -- local_size += (saveds + 1) * sizeof(sljit_sw); -+ local_size += GET_SAVED_REGISTERS_SIZE(scratches, saveds, 1); - local_size = (local_size + 7) & ~7; - compiler->local_size = local_size; - -@@ -1200,46 +1199,41 @@ - local_size = 0; - } - -+ /* Save the return address. */ - FAIL_IF(ADDLI(ADDR_TMP_mapped, base, local_size - 8)); - FAIL_IF(ST_ADD(ADDR_TMP_mapped, RA, -8)); - -- if (saveds >= 1) -- FAIL_IF(ST_ADD(ADDR_TMP_mapped, SLJIT_SAVED_REG1_mapped, -8)); -+ /* Save the S registers. */ -+ tmp = saveds < SLJIT_NUMBER_OF_SAVED_REGISTERS ? (SLJIT_S0 + 1 - saveds) : SLJIT_FIRST_SAVED_REG; -+ for (i = SLJIT_S0; i >= tmp; i--) { -+ FAIL_IF(ST_ADD(ADDR_TMP_mapped, reg_map[i], -8)); -+ } - -- if (saveds >= 2) -- FAIL_IF(ST_ADD(ADDR_TMP_mapped, SLJIT_SAVED_REG2_mapped, -8)); -+ /* Save the R registers that need to be reserved. */ -+ for (i = scratches; i >= SLJIT_FIRST_SAVED_REG; i--) { -+ FAIL_IF(ST_ADD(ADDR_TMP_mapped, reg_map[i], -8)); -+ } - -- if (saveds >= 3) -- FAIL_IF(ST_ADD(ADDR_TMP_mapped, SLJIT_SAVED_REG3_mapped, -8)); -+ /* Move the arguments to S registers. */ -+ for (i = 0; i < args; i++) { -+ FAIL_IF(ADD(reg_map[SLJIT_S0 - i], i, ZERO)); -+ } - -- if (saveds >= 4) -- FAIL_IF(ST_ADD(ADDR_TMP_mapped, SLJIT_SAVED_EREG1_mapped, -8)); -- -- if (saveds >= 5) -- FAIL_IF(ST_ADD(ADDR_TMP_mapped, SLJIT_SAVED_EREG2_mapped, -8)); -- -- if (args >= 1) -- FAIL_IF(ADD(SLJIT_SAVED_REG1_mapped, 0, ZERO)); -- -- if (args >= 2) -- FAIL_IF(ADD(SLJIT_SAVED_REG2_mapped, 1, ZERO)); -- -- if (args >= 3) -- FAIL_IF(ADD(SLJIT_SAVED_REG3_mapped, 2, ZERO)); -- - return SLJIT_SUCCESS; - } - --SLJIT_API_FUNC_ATTRIBUTE void sljit_set_context(struct sljit_compiler *compiler, -+SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_set_context(struct sljit_compiler *compiler, - sljit_si options, sljit_si args, sljit_si scratches, sljit_si saveds, - sljit_si fscratches, sljit_si fsaveds, sljit_si local_size) - { -- CHECK_ERROR_VOID(); -- check_sljit_set_context(compiler, options, args, scratches, saveds, fscratches, fsaveds, local_size); -+ CHECK_ERROR(); -+ CHECK(check_sljit_set_context(compiler, options, args, scratches, saveds, fscratches, fsaveds, local_size)); - set_set_context(compiler, options, args, scratches, saveds, fscratches, fsaveds, local_size); - -- local_size += (saveds + 1) * sizeof(sljit_sw); -+ local_size += GET_SAVED_REGISTERS_SIZE(scratches, saveds, 1); - compiler->local_size = (local_size + 7) & ~7; -+ -+ return SLJIT_SUCCESS; - } - - SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_return(struct sljit_compiler *compiler, sljit_si op, sljit_si src, sljit_sw srcw) -@@ -1246,10 +1240,11 @@ - { - sljit_si local_size; - sljit_ins base; -- int addr_initialized = 0; -+ sljit_si i, tmp; -+ sljit_si saveds; - - CHECK_ERROR(); -- check_sljit_emit_return(compiler, op, src, srcw); -+ CHECK(check_sljit_emit_return(compiler, op, src, srcw)); - - FAIL_IF(emit_mov_before_return(compiler, op, src, srcw)); - -@@ -1263,52 +1258,22 @@ - local_size = 0; - } - -+ /* Restore the return address. */ - FAIL_IF(ADDLI(ADDR_TMP_mapped, base, local_size - 8)); -- FAIL_IF(LD(RA, ADDR_TMP_mapped)); -+ FAIL_IF(LD_ADD(RA, ADDR_TMP_mapped, -8)); - -- if (compiler->saveds >= 5) { -- FAIL_IF(ADDLI(ADDR_TMP_mapped, base, local_size - 48)); -- addr_initialized = 1; -- -- FAIL_IF(LD_ADD(SLJIT_SAVED_EREG2_mapped, ADDR_TMP_mapped, 8)); -+ /* Restore the S registers. */ -+ saveds = compiler->saveds; -+ tmp = saveds < SLJIT_NUMBER_OF_SAVED_REGISTERS ? (SLJIT_S0 + 1 - saveds) : SLJIT_FIRST_SAVED_REG; -+ for (i = SLJIT_S0; i >= tmp; i--) { -+ FAIL_IF(LD_ADD(reg_map[i], ADDR_TMP_mapped, -8)); - } - -- if (compiler->saveds >= 4) { -- if (addr_initialized == 0) { -- FAIL_IF(ADDLI(ADDR_TMP_mapped, base, local_size - 40)); -- addr_initialized = 1; -- } -- -- FAIL_IF(LD_ADD(SLJIT_SAVED_EREG1_mapped, ADDR_TMP_mapped, 8)); -+ /* Restore the R registers that need to be reserved. */ -+ for (i = compiler->scratches; i >= SLJIT_FIRST_SAVED_REG; i--) { -+ FAIL_IF(LD_ADD(reg_map[i], ADDR_TMP_mapped, -8)); - } - -- if (compiler->saveds >= 3) { -- if (addr_initialized == 0) { -- FAIL_IF(ADDLI(ADDR_TMP_mapped, base, local_size - 32)); -- addr_initialized = 1; -- } -- -- FAIL_IF(LD_ADD(SLJIT_SAVED_REG3_mapped, ADDR_TMP_mapped, 8)); -- } -- -- if (compiler->saveds >= 2) { -- if (addr_initialized == 0) { -- FAIL_IF(ADDLI(ADDR_TMP_mapped, base, local_size - 24)); -- addr_initialized = 1; -- } -- -- FAIL_IF(LD_ADD(SLJIT_SAVED_REG2_mapped, ADDR_TMP_mapped, 8)); -- } -- -- if (compiler->saveds >= 1) { -- if (addr_initialized == 0) { -- FAIL_IF(ADDLI(ADDR_TMP_mapped, base, local_size - 16)); -- /* addr_initialized = 1; no need to initialize as it's the last one. */ -- } -- -- FAIL_IF(LD_ADD(SLJIT_SAVED_REG1_mapped, ADDR_TMP_mapped, 8)); -- } -- - if (compiler->local_size <= SIMM_16BIT_MAX) - FAIL_IF(ADDLI(SLJIT_LOCALS_REG_mapped, SLJIT_LOCALS_REG_mapped, compiler->local_size)); - else -@@ -1585,7 +1550,7 @@ - SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_fast_enter(struct sljit_compiler *compiler, sljit_si dst, sljit_sw dstw) - { - CHECK_ERROR(); -- check_sljit_emit_fast_enter(compiler, dst, dstw); -+ CHECK(check_sljit_emit_fast_enter(compiler, dst, dstw)); - ADJUST_LOCAL_OFFSET(dst, dstw); - - /* For UNUSED dst. Uncommon, but possible. */ -@@ -1602,7 +1567,7 @@ - SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_fast_return(struct sljit_compiler *compiler, sljit_si src, sljit_sw srcw) - { - CHECK_ERROR(); -- check_sljit_emit_fast_return(compiler, src, srcw); -+ CHECK(check_sljit_emit_fast_return(compiler, src, srcw)); - ADJUST_LOCAL_OFFSET(src, srcw); - - if (FAST_IS_REG(src)) -@@ -1636,9 +1601,11 @@ - if (op == SLJIT_MOV_SI) - return BFEXTS(reg_map[dst], reg_map[src2], 0, 31); - -- return BFEXTU(reg_map[dst], reg_map[src2], 0, 31); -- } else if (dst != src2) -- SLJIT_ASSERT_STOP(); -+ return BFEXTU(reg_map[dst], reg_map[src2], 0, 31); -+ } else if (dst != src2) { -+ SLJIT_ASSERT(src2 == 0); -+ return ADD(reg_map[dst], reg_map[src2], ZERO); -+ } - - return SLJIT_SUCCESS; - -@@ -1650,8 +1617,10 @@ - return BFEXTS(reg_map[dst], reg_map[src2], 0, 7); - - return BFEXTU(reg_map[dst], reg_map[src2], 0, 7); -- } else if (dst != src2) -- SLJIT_ASSERT_STOP(); -+ } else if (dst != src2) { -+ SLJIT_ASSERT(src2 == 0); -+ return ADD(reg_map[dst], reg_map[src2], ZERO); -+ } - - return SLJIT_SUCCESS; - -@@ -1663,8 +1632,10 @@ - return BFEXTS(reg_map[dst], reg_map[src2], 0, 15); - - return BFEXTU(reg_map[dst], reg_map[src2], 0, 15); -- } else if (dst != src2) -- SLJIT_ASSERT_STOP(); -+ } else if (dst != src2) { -+ SLJIT_ASSERT(src2 == 0); -+ return ADD(reg_map[dst], reg_map[src2], ZERO); -+ } - - return SLJIT_SUCCESS; - -@@ -1811,7 +1782,6 @@ - else { - /* Rare ocasion. */ - FAIL_IF(ADD(TMP_EREG2, reg_map[src1], ZERO)); -- - overflow_ra = TMP_EREG2; - } - } -@@ -1903,6 +1873,17 @@ - - return SLJIT_SUCCESS; - -+ case SLJIT_MUL: -+ if (flags & SRC2_IMM) { -+ FAIL_IF(load_immediate(compiler, TMP_REG2_mapped, src2)); -+ src2 = TMP_REG2; -+ flags &= ~SRC2_IMM; -+ } -+ -+ FAIL_IF(MUL(reg_map[dst], reg_map[src1], reg_map[src2])); -+ -+ return SLJIT_SUCCESS; -+ - #define EMIT_LOGICAL(op_imm, op_norm) \ - if (flags & SRC2_IMM) { \ - FAIL_IF(load_immediate(compiler, ADDR_TMP_mapped, src2)); \ -@@ -1950,8 +1931,8 @@ - } else { \ - if (op & SLJIT_SET_E) \ - FAIL_IF(push_3_buffer( \ -- compiler, op_imm, reg_map[dst], reg_map[src1], \ -- src2 & 0x3F, __LINE__)); \ -+ compiler, op_norm, EQUAL_FLAG, reg_map[src1], \ -+ reg_map[src2], __LINE__)); \ - if (CHECK_FLAGS(SLJIT_SET_E)) \ - FAIL_IF(push_3_buffer( \ - compiler, op_norm, reg_map[dst], reg_map[src1], \ -@@ -2105,9 +2086,10 @@ - { - sljit_si sugg_dst_ar, dst_ar; - sljit_si flags = GET_ALL_FLAGS(op); -+ sljit_si mem_type = (op & SLJIT_INT_OP) ? (INT_DATA | SIGNED_DATA) : WORD_DATA; - - CHECK_ERROR(); -- check_sljit_emit_op_flags(compiler, op, dst, dstw, src, srcw, type); -+ CHECK(check_sljit_emit_op_flags(compiler, op, dst, dstw, src, srcw, type)); - ADJUST_LOCAL_OFFSET(dst, dstw); - - if (dst == SLJIT_UNUSED) -@@ -2114,6 +2096,8 @@ - return SLJIT_SUCCESS; - - op = GET_OPCODE(op); -+ if (op == SLJIT_MOV_SI || op == SLJIT_MOV_UI) -+ mem_type = INT_DATA | SIGNED_DATA; - sugg_dst_ar = reg_map[(op < SLJIT_ADD && FAST_IS_REG(dst)) ? dst : TMP_REG2]; - - compiler->cache_arg = 0; -@@ -2120,51 +2104,43 @@ - compiler->cache_argw = 0; - if (op >= SLJIT_ADD && (src & SLJIT_MEM)) { - ADJUST_LOCAL_OFFSET(src, srcw); -- FAIL_IF(emit_op_mem2(compiler, WORD_DATA | LOAD_DATA, TMP_REG1_mapped, src, srcw, dst, dstw)); -+ FAIL_IF(emit_op_mem2(compiler, mem_type | LOAD_DATA, TMP_REG1_mapped, src, srcw, dst, dstw)); - src = TMP_REG1; - srcw = 0; - } - -- switch (type) { -- case SLJIT_C_EQUAL: -- case SLJIT_C_NOT_EQUAL: -+ switch (type & 0xff) { -+ case SLJIT_EQUAL: -+ case SLJIT_NOT_EQUAL: - FAIL_IF(CMPLTUI(sugg_dst_ar, EQUAL_FLAG, 1)); - dst_ar = sugg_dst_ar; - break; -- case SLJIT_C_LESS: -- case SLJIT_C_GREATER_EQUAL: -- case SLJIT_C_FLOAT_LESS: -- case SLJIT_C_FLOAT_GREATER_EQUAL: -+ case SLJIT_LESS: -+ case SLJIT_GREATER_EQUAL: - dst_ar = ULESS_FLAG; - break; -- case SLJIT_C_GREATER: -- case SLJIT_C_LESS_EQUAL: -- case SLJIT_C_FLOAT_GREATER: -- case SLJIT_C_FLOAT_LESS_EQUAL: -+ case SLJIT_GREATER: -+ case SLJIT_LESS_EQUAL: - dst_ar = UGREATER_FLAG; - break; -- case SLJIT_C_SIG_LESS: -- case SLJIT_C_SIG_GREATER_EQUAL: -+ case SLJIT_SIG_LESS: -+ case SLJIT_SIG_GREATER_EQUAL: - dst_ar = LESS_FLAG; - break; -- case SLJIT_C_SIG_GREATER: -- case SLJIT_C_SIG_LESS_EQUAL: -+ case SLJIT_SIG_GREATER: -+ case SLJIT_SIG_LESS_EQUAL: - dst_ar = GREATER_FLAG; - break; -- case SLJIT_C_OVERFLOW: -- case SLJIT_C_NOT_OVERFLOW: -+ case SLJIT_OVERFLOW: -+ case SLJIT_NOT_OVERFLOW: - dst_ar = OVERFLOW_FLAG; - break; -- case SLJIT_C_MUL_OVERFLOW: -- case SLJIT_C_MUL_NOT_OVERFLOW: -+ case SLJIT_MUL_OVERFLOW: -+ case SLJIT_MUL_NOT_OVERFLOW: - FAIL_IF(CMPLTUI(sugg_dst_ar, OVERFLOW_FLAG, 1)); - dst_ar = sugg_dst_ar; - type ^= 0x1; /* Flip type bit for the XORI below. */ - break; -- case SLJIT_C_FLOAT_EQUAL: -- case SLJIT_C_FLOAT_NOT_EQUAL: -- dst_ar = EQUAL_FLAG; -- break; - - default: - SLJIT_ASSERT_STOP(); -@@ -2180,11 +2156,11 @@ - if (op >= SLJIT_ADD) { - if (TMP_REG2_mapped != dst_ar) - FAIL_IF(ADD(TMP_REG2_mapped, dst_ar, ZERO)); -- return emit_op(compiler, op | flags, CUMULATIVE_OP | LOGICAL_OP | IMM_OP | ALT_KEEP_CACHE, dst, dstw, src, srcw, TMP_REG2, 0); -+ return emit_op(compiler, op | flags, mem_type | CUMULATIVE_OP | LOGICAL_OP | IMM_OP | ALT_KEEP_CACHE, dst, dstw, src, srcw, TMP_REG2, 0); - } - - if (dst & SLJIT_MEM) -- return emit_op_mem(compiler, WORD_DATA, dst_ar, dst, dstw); -+ return emit_op_mem(compiler, mem_type, dst_ar, dst, dstw); - - if (sugg_dst_ar != dst_ar) - return ADD(sugg_dst_ar, dst_ar, ZERO); -@@ -2194,7 +2170,7 @@ - - SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_op0(struct sljit_compiler *compiler, sljit_si op) { - CHECK_ERROR(); -- check_sljit_emit_op0(compiler, op); -+ CHECK(check_sljit_emit_op0(compiler, op)); - - op = GET_OPCODE(op); - switch (op) { -@@ -2204,10 +2180,10 @@ - case SLJIT_BREAKPOINT: - return PI(BPT); - -- case SLJIT_UMUL: -- case SLJIT_SMUL: -- case SLJIT_UDIV: -- case SLJIT_SDIV: -+ case SLJIT_LUMUL: -+ case SLJIT_LSMUL: -+ case SLJIT_UDIVI: -+ case SLJIT_SDIVI: - SLJIT_ASSERT_STOP(); - } - -@@ -2217,7 +2193,7 @@ - SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_op1(struct sljit_compiler *compiler, sljit_si op, sljit_si dst, sljit_sw dstw, sljit_si src, sljit_sw srcw) - { - CHECK_ERROR(); -- check_sljit_emit_op1(compiler, op, dst, dstw, src, srcw); -+ CHECK(check_sljit_emit_op1(compiler, op, dst, dstw, src, srcw)); - ADJUST_LOCAL_OFFSET(dst, dstw); - ADJUST_LOCAL_OFFSET(src, srcw); - -@@ -2273,7 +2249,7 @@ - return emit_op(compiler, SLJIT_SUB | GET_ALL_FLAGS(op), IMM_OP, dst, dstw, SLJIT_IMM, 0, src, srcw); - - case SLJIT_CLZ: -- return emit_op(compiler, op, 0, dst, dstw, TMP_REG1, 0, src, srcw); -+ return emit_op(compiler, op, (op & SLJIT_INT_OP) ? INT_DATA : WORD_DATA, dst, dstw, TMP_REG1, 0, src, srcw); - } - - return SLJIT_SUCCESS; -@@ -2282,7 +2258,7 @@ - SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_op2(struct sljit_compiler *compiler, sljit_si op, sljit_si dst, sljit_sw dstw, sljit_si src1, sljit_sw src1w, sljit_si src2, sljit_sw src2w) - { - CHECK_ERROR(); -- check_sljit_emit_op2(compiler, op, dst, dstw, src1, src1w, src2, src2w); -+ CHECK(check_sljit_emit_op2(compiler, op, dst, dstw, src1, src1w, src2, src2w)); - ADJUST_LOCAL_OFFSET(dst, dstw); - ADJUST_LOCAL_OFFSET(src1, src1w); - ADJUST_LOCAL_OFFSET(src2, src2w); -@@ -2325,7 +2301,7 @@ - flush_buffer(compiler); - - CHECK_ERROR_PTR(); -- check_sljit_emit_label(compiler); -+ CHECK_PTR(check_sljit_emit_label(compiler)); - - if (compiler->last_label && compiler->last_label->size == compiler->size) - return compiler->last_label; -@@ -2344,7 +2320,7 @@ - flush_buffer(compiler); - - CHECK_ERROR(); -- check_sljit_emit_ijump(compiler, type, src, srcw); -+ CHECK(check_sljit_emit_ijump(compiler, type, src, srcw)); - ADJUST_LOCAL_OFFSET(src, srcw); - - if (FAST_IS_REG(src)) { -@@ -2404,8 +2380,10 @@ - - return SLJIT_SUCCESS; - -- } else if (src & SLJIT_MEM) -+ } else if (src & SLJIT_MEM) { - FAIL_IF(emit_op(compiler, SLJIT_MOV, WORD_DATA, TMP_REG2, 0, TMP_REG1, 0, src, srcw)); -+ flush_buffer(compiler); -+ } - - FAIL_IF(JR_SOLO(reg_map[src_r])); - -@@ -2432,7 +2410,7 @@ - flush_buffer(compiler); - - CHECK_ERROR_PTR(); -- check_sljit_emit_jump(compiler, type); -+ CHECK_PTR(check_sljit_emit_jump(compiler, type)); - - jump = (struct sljit_jump *)ensure_abuf(compiler, sizeof(struct sljit_jump)); - PTR_FAIL_IF(!jump); -@@ -2440,48 +2418,42 @@ - type &= 0xff; - - switch (type) { -- case SLJIT_C_EQUAL: -- case SLJIT_C_FLOAT_NOT_EQUAL: -+ case SLJIT_EQUAL: - BR_NZ(EQUAL_FLAG); - break; -- case SLJIT_C_NOT_EQUAL: -- case SLJIT_C_FLOAT_EQUAL: -+ case SLJIT_NOT_EQUAL: - BR_Z(EQUAL_FLAG); - break; -- case SLJIT_C_LESS: -- case SLJIT_C_FLOAT_LESS: -+ case SLJIT_LESS: - BR_Z(ULESS_FLAG); - break; -- case SLJIT_C_GREATER_EQUAL: -- case SLJIT_C_FLOAT_GREATER_EQUAL: -+ case SLJIT_GREATER_EQUAL: - BR_NZ(ULESS_FLAG); - break; -- case SLJIT_C_GREATER: -- case SLJIT_C_FLOAT_GREATER: -+ case SLJIT_GREATER: - BR_Z(UGREATER_FLAG); - break; -- case SLJIT_C_LESS_EQUAL: -- case SLJIT_C_FLOAT_LESS_EQUAL: -+ case SLJIT_LESS_EQUAL: - BR_NZ(UGREATER_FLAG); - break; -- case SLJIT_C_SIG_LESS: -+ case SLJIT_SIG_LESS: - BR_Z(LESS_FLAG); - break; -- case SLJIT_C_SIG_GREATER_EQUAL: -+ case SLJIT_SIG_GREATER_EQUAL: - BR_NZ(LESS_FLAG); - break; -- case SLJIT_C_SIG_GREATER: -+ case SLJIT_SIG_GREATER: - BR_Z(GREATER_FLAG); - break; -- case SLJIT_C_SIG_LESS_EQUAL: -+ case SLJIT_SIG_LESS_EQUAL: - BR_NZ(GREATER_FLAG); - break; -- case SLJIT_C_OVERFLOW: -- case SLJIT_C_MUL_OVERFLOW: -+ case SLJIT_OVERFLOW: -+ case SLJIT_MUL_OVERFLOW: - BR_Z(OVERFLOW_FLAG); - break; -- case SLJIT_C_NOT_OVERFLOW: -- case SLJIT_C_MUL_NOT_OVERFLOW: -+ case SLJIT_NOT_OVERFLOW: -+ case SLJIT_MUL_NOT_OVERFLOW: - BR_NZ(OVERFLOW_FLAG); - break; - default: -@@ -2536,7 +2508,7 @@ - flush_buffer(compiler); - - CHECK_ERROR_PTR(); -- check_sljit_emit_const(compiler, dst, dstw, init_value); -+ CHECK_PTR(check_sljit_emit_const(compiler, dst, dstw, init_value)); - ADJUST_LOCAL_OFFSET(dst, dstw); - - const_ = (struct sljit_const *)ensure_abuf(compiler, sizeof(struct sljit_const)); -@@ -2572,3 +2544,18 @@ - inst[3] = (inst[3] & ~(0xFFFFL << 43)) | ((new_constant & 0xFFFFL) << 43); - SLJIT_CACHE_FLUSH(inst, inst + 4); - } -+ -+SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_get_register_index(sljit_si reg) -+{ -+ CHECK_REG_INDEX(check_sljit_get_register_index(reg)); -+ return reg_map[reg]; -+} -+ -+SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_op_custom(struct sljit_compiler *compiler, -+ void *instruction, sljit_si size) -+{ -+ CHECK_ERROR(); -+ CHECK(check_sljit_emit_op_custom(compiler, instruction, size)); -+ return SLJIT_ERR_UNSUPPORTED; -+} -+ -Index: pcregrep.c -=================================================================== ---- pcregrep.c (revision 1554) -+++ pcregrep.c (working copy) -@@ -1692,9 +1692,13 @@ - - if (filenames == FN_NOMATCH_ONLY) return 1; - -+ /* If all we want is a yes/no answer, stop now. */ -+ -+ if (quiet) return 0; -+ - /* Just count if just counting is wanted. */ - -- if (count_only) count++; -+ else if (count_only) count++; - - /* When handling a binary file and binary-files==binary, the "binary" - variable will be set true (it's false in all other cases). In this -@@ -1715,10 +1719,6 @@ - return 0; - } - -- /* Likewise, if all we want is a yes/no answer. */ -- -- else if (quiet) return 0; -- - /* The --only-matching option prints just the substring that matched, - and/or one or more captured portions of it, as long as these strings are - not empty. The --file-offsets and --line-offsets options output offsets for -@@ -2089,7 +2089,7 @@ - - /* Print the match count if wanted */ - --if (count_only) -+if (count_only && !quiet) - { - if (count > 0 || !omit_zero_count) - { -Index: pcre_study.c -=================================================================== ---- pcre_study.c (revision 1554) -+++ pcre_study.c (working copy) -@@ -71,6 +71,7 @@ - startcode pointer to start of the whole pattern's code - options the compiling options - recurses chain of recurse_check to catch mutual recursion -+ countptr pointer to call count (to catch over complexity) - - Returns: the minimum length - -1 if \C in UTF-8 mode or (*ACCEPT) was encountered -@@ -80,7 +81,8 @@ - - static int - find_minlength(const REAL_PCRE *re, const pcre_uchar *code, -- const pcre_uchar *startcode, int options, recurse_check *recurses) -+ const pcre_uchar *startcode, int options, recurse_check *recurses, -+ int *countptr) - { - int length = -1; - /* PCRE_UTF16 has the same value as PCRE_UTF8. */ -@@ -90,6 +92,8 @@ - register int branchlength = 0; - register pcre_uchar *cc = (pcre_uchar *)code + 1 + LINK_SIZE; - -+if ((*countptr)++ > 1000) return -1; /* too complex */ -+ - if (*code == OP_CBRA || *code == OP_SCBRA || - *code == OP_CBRAPOS || *code == OP_SCBRAPOS) cc += IMM2_SIZE; - -@@ -131,7 +135,7 @@ - case OP_SBRAPOS: - case OP_ONCE: - case OP_ONCE_NC: -- d = find_minlength(re, cc, startcode, options, recurses); -+ d = find_minlength(re, cc, startcode, options, recurses, countptr); - if (d < 0) return d; - branchlength += d; - do cc += GET(cc, 1); while (*cc == OP_ALT); -@@ -415,7 +419,8 @@ - int dd; - this_recurse.prev = recurses; - this_recurse.group = cs; -- dd = find_minlength(re, cs, startcode, options, &this_recurse); -+ dd = find_minlength(re, cs, startcode, options, &this_recurse, -+ countptr); - if (dd < d) d = dd; - } - } -@@ -451,7 +456,8 @@ - { - this_recurse.prev = recurses; - this_recurse.group = cs; -- d = find_minlength(re, cs, startcode, options, &this_recurse); -+ d = find_minlength(re, cs, startcode, options, &this_recurse, -+ countptr); - } - } - } -@@ -514,7 +520,7 @@ - this_recurse.prev = recurses; - this_recurse.group = cs; - branchlength += find_minlength(re, cs, startcode, options, -- &this_recurse); -+ &this_recurse, countptr); - } - } - cc += 1 + LINK_SIZE; -@@ -1453,6 +1459,7 @@ - #endif - { - int min; -+int count = 0; - BOOL bits_set = FALSE; - pcre_uint8 start_bits[32]; - PUBL(extra) *extra = NULL; -@@ -1539,7 +1546,7 @@ - - /* Find the minimum length of subject string. */ - --switch(min = find_minlength(re, code, code, re->options, NULL)) -+switch(min = find_minlength(re, code, code, re->options, NULL, &count)) - { - case -2: *errorptr = "internal error: missing capturing bracket"; return NULL; - case -3: *errorptr = "internal error: opcode not recognized"; return NULL; -Index: pcre_internal.h -=================================================================== ---- pcre_internal.h (revision 1554) -+++ pcre_internal.h (working copy) -@@ -984,7 +984,7 @@ - #ifndef EBCDIC - - #define HSPACE_LIST \ -- CHAR_HT, CHAR_SPACE, 0xa0, \ -+ CHAR_HT, CHAR_SPACE, CHAR_NBSP, \ - 0x1680, 0x180e, 0x2000, 0x2001, 0x2002, 0x2003, 0x2004, 0x2005, \ - 0x2006, 0x2007, 0x2008, 0x2009, 0x200A, 0x202f, 0x205f, 0x3000, \ - NOTACHAR -@@ -1010,7 +1010,7 @@ - #define HSPACE_BYTE_CASES \ - case CHAR_HT: \ - case CHAR_SPACE: \ -- case 0xa0 /* NBSP */ -+ case CHAR_NBSP - - #define HSPACE_CASES \ - HSPACE_BYTE_CASES: \ -@@ -1037,11 +1037,12 @@ - /* ------ EBCDIC environments ------ */ - - #else --#define HSPACE_LIST CHAR_HT, CHAR_SPACE -+#define HSPACE_LIST CHAR_HT, CHAR_SPACE, CHAR_NBSP, NOTACHAR - - #define HSPACE_BYTE_CASES \ - case CHAR_HT: \ -- case CHAR_SPACE -+ case CHAR_SPACE: \ -+ case CHAR_NBSP - - #define HSPACE_CASES HSPACE_BYTE_CASES - -@@ -1215,6 +1216,7 @@ - - #define CHAR_ESC '\047' - #define CHAR_DEL '\007' -+#define CHAR_NBSP '\x41' - #define STR_ESC "\047" - #define STR_DEL "\007" - -@@ -1229,6 +1231,7 @@ - #define CHAR_NEL ((unsigned char)'\x85') - #define CHAR_ESC '\033' - #define CHAR_DEL '\177' -+#define CHAR_NBSP ((unsigned char)'\xa0') - - #define STR_LF "\n" - #define STR_NL STR_LF -@@ -1606,6 +1609,7 @@ - #define CHAR_VERTICAL_LINE '\174' - #define CHAR_RIGHT_CURLY_BRACKET '\175' - #define CHAR_TILDE '\176' -+#define CHAR_NBSP ((unsigned char)'\xa0') - - #define STR_HT "\011" - #define STR_VT "\013" -@@ -1762,6 +1766,10 @@ - - /* Escape items that are just an encoding of a particular data value. */ - -+#ifndef ESC_a -+#define ESC_a CHAR_BEL -+#endif -+ - #ifndef ESC_e - #define ESC_e CHAR_ESC - #endif -@@ -2446,6 +2454,7 @@ - BOOL had_pruneorskip; /* (*PRUNE) or (*SKIP) encountered */ - BOOL check_lookbehind; /* Lookbehinds need later checking */ - BOOL dupnames; /* Duplicate names exist */ -+ BOOL dupgroups; /* Duplicate groups exist: (?| found */ - BOOL iscondassert; /* Next assert is a condition */ - int nltype; /* Newline type */ - int nllen; /* Newline string length */ -Index: pcre_exec.c -=================================================================== ---- pcre_exec.c (revision 1554) -+++ pcre_exec.c (working copy) -@@ -6685,7 +6685,8 @@ - register int *iend = iptr - re->top_bracket; - if (iend < md->offset_vector + 2) iend = md->offset_vector + 2; - while (--iptr >= iend) *iptr = -1; -- md->offset_vector[0] = md->offset_vector[1] = -1; -+ if (offsetcount > 0) md->offset_vector[0] = -1; -+ if (offsetcount > 1) md->offset_vector[1] = -1; - } - - /* Set up the first character to match, if available. The first_char value is -Index: pcre_jit_test.c -=================================================================== ---- pcre_jit_test.c (revision 1554) -+++ pcre_jit_test.c (working copy) -@@ -182,6 +182,7 @@ - { CMUAP, 0, "\xf0\x90\x90\x80{2}", "\xf0\x90\x90\x80#\xf0\x90\x90\xa8\xf0\x90\x90\x80" }, - { CMUAP, 0, "\xf0\x90\x90\xa8{2}", "\xf0\x90\x90\x80#\xf0\x90\x90\xa8\xf0\x90\x90\x80" }, - { CMUAP, 0, "\xe1\xbd\xb8\xe1\xbf\xb8", "\xe1\xbf\xb8\xe1\xbd\xb8" }, -+ { MA, 0, "[3-57-9]", "5" }, - - /* Assertions. */ - { MUA, 0, "\\b[^A]", "A_B#" }, -Index: configure.ac -=================================================================== ---- configure.ac (revision 1554) -+++ configure.ac (working copy) -@@ -9,9 +9,9 @@ - dnl be defined as -RC2, for example. For real releases, it should be empty. - - m4_define(pcre_major, [8]) --m4_define(pcre_minor, [37]) --m4_define(pcre_prerelease, []) --m4_define(pcre_date, [2015-04-28]) -+m4_define(pcre_minor, [38]) -+m4_define(pcre_prerelease, [-RC1]) -+m4_define(pcre_date, [2015-05-03]) - - # NOTE: The CMakeLists.txt file searches for the above variables in the first - # 50 lines of this file. Please update that if the variables above are moved. -Index: doc/pcrepattern.3 -=================================================================== ---- doc/pcrepattern.3 (revision 1554) -+++ doc/pcrepattern.3 (working copy) -@@ -1,4 +1,4 @@ --.TH PCREPATTERN 3 "08 January 2014" "PCRE 8.35" -+.TH PCREPATTERN 3 "14 June 2015" "PCRE 8.38" - .SH NAME - PCRE - Perl-compatible regular expressions - .SH "PCRE REGULAR EXPRESSION DETAILS" -@@ -308,7 +308,8 @@ - in patterns in a visible manner. There is no restriction on the appearance of - non-printing characters, apart from the binary zero that terminates a pattern, - but when a pattern is being prepared by text editing, it is often easier to use --one of the following escape sequences than the binary character it represents: -+one of the following escape sequences than the binary character it represents. -+In an ASCII or Unicode environment, these escapes are as follows: - .sp - \ea alarm, that is, the BEL character (hex 07) - \ecx "control-x", where x is any ASCII character -@@ -330,19 +331,31 @@ - but \ec{ becomes hex 3B ({ is 7B), and \ec; becomes hex 7B (; is 3B). If the - data item (byte or 16-bit value) following \ec has a value greater than 127, a - compile-time error occurs. This locks out non-ASCII characters in all modes. -+.P -+When PCRE is compiled in EBCDIC mode, \ea, \ee, \ef, \en, \er, and \et -+generate the appropriate EBCDIC code values. The \ec escape is processed -+as specified for Perl in the \fBperlebcdic\fP document. The only characters -+that are allowed after \ec are A-Z, a-z, or one of @, [, \e, ], ^, _, or ?. Any -+other character provokes a compile-time error. The sequence \e@ encodes -+character code 0; the letters (in either case) encode characters 1-26 (hex 01 -+to hex 1A); [, \e, ], ^, and _ encode characters 27-31 (hex 1B to hex 1F), and -+\e? becomes either 255 (hex FF) or 95 (hex 5F). - .P --The \ec facility was designed for use with ASCII characters, but with the --extension to Unicode it is even less useful than it once was. It is, however, --recognized when PCRE is compiled in EBCDIC mode, where data items are always --bytes. In this mode, all values are valid after \ec. If the next character is a --lower case letter, it is converted to upper case. Then the 0xc0 bits of the --byte are inverted. Thus \ecA becomes hex 01, as in ASCII (A is C1), but because --the EBCDIC letters are disjoint, \ecZ becomes hex 29 (Z is E9), and other --characters also generate different values. -+Thus, apart from \e?, these escapes generate the same character code values as -+they do in an ASCII environment, though the meanings of the values mostly -+differ. For example, \eG always generates code value 7, which is BEL in ASCII -+but DEL in EBCDIC. - .P -+The sequence \e? generates DEL (127, hex 7F) in an ASCII environment, but -+because 127 is not a control character in EBCDIC, Perl makes it generate the -+APC character. Unfortunately, there are several variants of EBCDIC. In most of -+them the APC character has the value 255 (hex FF), but in the one Perl calls -+POSIX-BC its value is 95 (hex 5F). If certain other characters have POSIX-BC -+values, PCRE makes \e? generate 95; otherwise it generates 255. -+.P - After \e0 up to two further octal digits are read. If there are fewer than two --digits, just those that are present are used. Thus the sequence \e0\ex\e07 --specifies two binary zeros followed by a BEL character (code value 7). Make -+digits, just those that are present are used. Thus the sequence \e0\ex\e015 -+specifies two binary zeros followed by a CR character (code value 13). Make - sure you supply two digits after the initial zero if the pattern character that - follows is itself an octal digit. - .P -@@ -3283,6 +3296,6 @@ - .rs - .sp - .nf --Last updated: 08 January 2014 --Copyright (c) 1997-2014 University of Cambridge. -+Last updated: 14 June 2015 -+Copyright (c) 1997-2015 University of Cambridge. - .fi -Index: testdata/testoutput11-32 -=================================================================== ---- testdata/testoutput11-32 (revision 1554) -+++ testdata/testoutput11-32 (working copy) -@@ -231,7 +231,7 @@ - ------------------------------------------------------------------ - - /(?Pa)...(?P=a)bbb(?P>a)d/BM --Memory allocation (code space): 125 -+Memory allocation (code space): 157 - ------------------------------------------------------------------ - 0 24 Bra - 2 5 CBra 1 -@@ -748,4 +748,21 @@ - 22 End - ------------------------------------------------------------------ - -+/.((?2)(?R)\1)()/B -+------------------------------------------------------------------ -+ 0 23 Bra -+ 2 Any -+ 3 13 Once -+ 5 9 CBra 1 -+ 8 18 Recurse -+ 10 0 Recurse -+ 12 \1 -+ 14 9 Ket -+ 16 13 Ket -+ 18 3 CBra 2 -+ 21 3 Ket -+ 23 23 Ket -+ 25 End -+------------------------------------------------------------------ -+ - /-- End of testinput11 --/ -Index: testdata/testinputEBC -=================================================================== ---- testdata/testinputEBC (revision 1554) -+++ testdata/testinputEBC (working copy) -@@ -29,13 +29,16 @@ - - /^A\ˆ/ - A B -+ A\x41B - - /-- Test \H --/ - - /^A\È/ - AB -+ A\x42B - ** Fail - A B -+ A\x41B - - /-- Test \R --/ - -Index: testdata/testoutput1 -=================================================================== ---- testdata/testoutput1 (revision 1554) -+++ testdata/testoutput1 (working copy) -@@ -9429,4 +9429,9 @@ - 0: aaaaaaaaa - 1: a - -+"(?|(\k'Pm')|(?'Pm'))" -+ abcd -+ 0: -+ 1: -+ - /-- End of testinput1 --/ -Index: testdata/testoutput2 -=================================================================== ---- testdata/testoutput2 (revision 1554) -+++ testdata/testoutput2 (working copy) -@@ -5614,9 +5614,9 @@ - 123456\P - No match - --//KF>/dev/null --Compiled pattern written to /dev/null --Study data written to /dev/null -+//KF>testsavedregex -+Compiled pattern written to testsavedregex -+Study data written to testsavedregex - - /abc/IS>testsavedregex - Capturing subpattern count = 0 -@@ -9135,10 +9135,10 @@ - Failed: subpattern name expected at offset 3 - - /\k/ --Failed: \k is not followed by a braced, angle-bracketed, or quoted name at offset 2 -+Failed: \k is not followed by a braced, angle-bracketed, or quoted name at offset 1 - - /\kabc/ --Failed: \k is not followed by a braced, angle-bracketed, or quoted name at offset 5 -+Failed: \k is not followed by a braced, angle-bracketed, or quoted name at offset 1 - - /(?P=)/ - Failed: subpattern name expected at offset 4 -@@ -9186,7 +9186,7 @@ - Failed: unknown POSIX class name at offset 3 - - /(^(a|b\g<-1'c))/ --Failed: \g is not followed by a braced, angle-bracketed, or quoted name/number or by a plain number at offset 15 -+Failed: \g is not followed by a braced, angle-bracketed, or quoted name/number or by a plain number at offset 8 - - /^(?+1)(?x|y){0}z/ - xzxx -@@ -14098,10 +14098,10 @@ - Failed: group name must start with a non-digit at offset 4 - - /\g'3gh'/ --Failed: \g is not followed by a braced, angle-bracketed, or quoted name/number or by a plain number at offset 7 -+Failed: \g is not followed by a braced, angle-bracketed, or quoted name/number or by a plain number at offset 2 - - /\g<5fg>/ --Failed: \g is not followed by a braced, angle-bracketed, or quoted name/number or by a plain number at offset 7 -+Failed: \g is not followed by a braced, angle-bracketed, or quoted name/number or by a plain number at offset 2 - - /(?(<4gh>)abc)/ - Failed: group name must start with a non-digit at offset 4 -@@ -14423,4 +14423,146 @@ - - /((?2){73}(?2))((?1))/ - -+/.((?2)(?R)\1)()/BZ -+------------------------------------------------------------------ -+ Bra -+ Any -+ Once -+ CBra 1 -+ Recurse -+ Recurse -+ \1 -+ Ket -+ Ket -+ CBra 2 -+ Ket -+ Ket -+ End -+------------------------------------------------------------------ -+ -+/(?1)()((((((\1++))\x85)+)|))/ -+ -+/(\9*+(?2);\3++()2|)++{/ -+Failed: reference to non-existent subpattern at offset 22 -+ -+/\V\x85\9*+((?2)\3++()2)*:2/ -+Failed: reference to non-existent subpattern at offset 26 -+ -+/(((?(R)){0,2}) (?''((?'R')((?'R')))))/J -+ -+/(((?(X)){0,2}) (?''((?'X')((?'X')))))/J -+ -+/(((?(R)){0,2}) (?''((?'X')((?'R')))))/ -+ -+"(?J)(?'d'(?'d'\g{d}))" -+ -+".*?\h.+.\.+\R*?\xd(?i)(?=!(?=b`b`b`\`b\xa9b!)`\a`bbbbbbbbbbbbb`bbbbbbbbbbbb*R\x85bbbbbbb\C?{((?2)(?))(( -+\H){8(?<=(?1){29}\xa8bbbb\x16\xd\xc6^($(?1)/ -+ - /-- End of testinput2 --/ -Index: testdata/testoutput11-16 -=================================================================== ---- testdata/testoutput11-16 (revision 1554) -+++ testdata/testoutput11-16 (working copy) -@@ -231,7 +231,7 @@ - ------------------------------------------------------------------ - - /(?Pa)...(?P=a)bbb(?P>a)d/BM --Memory allocation (code space): 61 -+Memory allocation (code space): 77 - ------------------------------------------------------------------ - 0 24 Bra - 2 5 CBra 1 -@@ -748,4 +748,21 @@ - 22 End - ------------------------------------------------------------------ - -+/.((?2)(?R)\1)()/B -+------------------------------------------------------------------ -+ 0 23 Bra -+ 2 Any -+ 3 13 Once -+ 5 9 CBra 1 -+ 8 18 Recurse -+ 10 0 Recurse -+ 12 \1 -+ 14 9 Ket -+ 16 13 Ket -+ 18 3 CBra 2 -+ 21 3 Ket -+ 23 23 Ket -+ 25 End -+------------------------------------------------------------------ -+ - /-- End of testinput11 --/ -Index: testdata/testoutput6 -=================================================================== ---- testdata/testoutput6 (revision 1554) -+++ testdata/testoutput6 (working copy) -@@ -2469,4 +2469,8 @@ - Ó…\x0aT - No match - -+/[\pS#moq]/ -+ = -+ 0: = -+ - /-- End of testinput6 --/ -Index: testdata/testinput11 -=================================================================== ---- testdata/testinput11 (revision 1554) -+++ testdata/testinput11 (working copy) -@@ -136,4 +136,6 @@ - - /((?+1)(\1))/B - -+/.((?2)(?R)\1)()/B -+ - /-- End of testinput11 --/ -Index: testdata/testinput12 -=================================================================== ---- testdata/testinput12 (revision 1554) -+++ testdata/testinput12 (working copy) -@@ -8,6 +8,8 @@ - - /(?(?C1)(?=a)a)/S!+I - -+/b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*/S+I -+ - /abc/S+I>testsavedregex - - testsavedregex - Capturing subpattern count = 0 - No options -@@ -184,4 +193,12 @@ - - /(a(?:a|b|c|d|e)b){8,16}/S++ - -+/(?:|a|){100}x/S++ -+ -+/(x(?1)){4}/S++ -+ -+/(.|.)*?bx/ -+ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabax -+Error -8 (match limit exceeded) -+ - /-- End of testinput12 --/ -Index: testdata/testoutput11-8 -=================================================================== ---- testdata/testoutput11-8 (revision 1554) -+++ testdata/testoutput11-8 (working copy) -@@ -231,7 +231,7 @@ - ------------------------------------------------------------------ - - /(?Pa)...(?P=a)bbb(?P>a)d/BM --Memory allocation (code space): 38 -+Memory allocation (code space): 50 - ------------------------------------------------------------------ - 0 30 Bra - 3 7 CBra 1 -@@ -748,4 +748,21 @@ - 34 End - ------------------------------------------------------------------ - -+/.((?2)(?R)\1)()/B -+------------------------------------------------------------------ -+ 0 35 Bra -+ 3 Any -+ 4 20 Once -+ 7 14 CBra 1 -+ 12 27 Recurse -+ 15 0 Recurse -+ 18 \1 -+ 21 14 Ket -+ 24 20 Ket -+ 27 5 CBra 2 -+ 32 5 Ket -+ 35 35 Ket -+ 38 End -+------------------------------------------------------------------ -+ - /-- End of testinput11 --/ -Index: testdata/testoutputEBC -=================================================================== ---- testdata/testoutputEBC (revision 1554) -+++ testdata/testoutputEBC (working copy) -@@ -41,6 +41,8 @@ - /^A\ˆ/ - A B - 0: A\x20 -+ A\x41B -+ 0: AA - - /-- Test \H --/ - -@@ -47,10 +49,14 @@ - /^A\È/ - AB - 0: AB -+ A\x42B -+ 0: AB - ** Fail - No match - A B - No match -+ A\x41B -+No match - - /-- Test \R --/ - -Index: testdata/grepoutput -=================================================================== ---- testdata/grepoutput (revision 1554) -+++ testdata/grepoutput (working copy) -@@ -751,3 +751,7 @@ - 2:3,1 - 2:4,1 - RC=0 -+---------------------------- Test 108 ------------------------------ -+RC=0 -+---------------------------- Test 109 ----------------------------- -+RC=0 -Index: testdata/testinput1 -=================================================================== ---- testdata/testinput1 (revision 1554) -+++ testdata/testinput1 (working copy) -@@ -5730,4 +5730,7 @@ - "(?1)(?#?'){8}(a)" - baaaaaaaaac - -+"(?|(\k'Pm')|(?'Pm'))" -+ abcd -+ - /-- End of testinput1 --/ -Index: testdata/testinput2 -=================================================================== ---- testdata/testinput2 (revision 1554) -+++ testdata/testinput2 (working copy) -@@ -1380,7 +1380,7 @@ - 1X - 123456\P - --//KF>/dev/null -+//KF>testsavedregex - - /abc/IS>testsavedregex - 1)/ -+ - /-- End of testinput2 --/ -Index: testdata/testinput6 -=================================================================== ---- testdata/testinput6 (revision 1554) -+++ testdata/testinput6 (working copy) -@@ -1502,4 +1502,7 @@ - /\C\X*QT/8 - Ó…\x0aT - -+/[\pS#moq]/ -+ = -+ - /-- End of testinput6 --/ -Index: NON-AUTOTOOLS-BUILD -=================================================================== ---- NON-AUTOTOOLS-BUILD (revision 1554) -+++ NON-AUTOTOOLS-BUILD (working copy) -@@ -764,9 +764,9 @@ - - http://www.zaconsultants.net - --There is also a mirror here: -+You may download PCRE from WWW.CBTTAPE.ORG, file 882.  Everything, source and -+executable, is in EBCDIC and native z/OS file formats and this is the -+recommended download site. - -- http://www.vsoft-software.com/downloads.html -- - ========================== --Last Updated: 10 February 2015 -+Last Updated: 25 June 2015 From 2896861c7e55da24b8f15c42af0f2b5fc3b0bdb0 Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Fri, 25 Sep 2015 11:53:19 +0200 Subject: [PATCH 37/85] pcre: Smaller patch for CVE-2015-3210, CVE-2015-5073 --- .../libraries/pcre/cve-2015-3210.patch | 87 +++++++++++++++++++ .../libraries/pcre/cve-2015-5073.patch | 68 +++++++++++++++ pkgs/development/libraries/pcre/default.nix | 5 ++ 3 files changed, 160 insertions(+) create mode 100644 pkgs/development/libraries/pcre/cve-2015-3210.patch create mode 100644 pkgs/development/libraries/pcre/cve-2015-5073.patch diff --git a/pkgs/development/libraries/pcre/cve-2015-3210.patch b/pkgs/development/libraries/pcre/cve-2015-3210.patch new file mode 100644 index 00000000000..c97849fb70c --- /dev/null +++ b/pkgs/development/libraries/pcre/cve-2015-3210.patch @@ -0,0 +1,87 @@ +From 68ff1beb43bb3d4d8838f3285c97023d1e50513a Mon Sep 17 00:00:00 2001 +From: ph10 +Date: Fri, 15 May 2015 17:17:03 +0000 +Subject: [PATCH] Fix buffer overflow for named recursive back reference when + the name is duplicated. +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Upstream commit ported to pcre-8.37: + +commit 4b79af6b4cbeb5326ae5e4d83f3e935e00286c19 +Author: ph10 +Date: Fri May 15 17:17:03 2015 +0000 + + Fix buffer overflow for named recursive back reference when the name is + duplicated. + + git-svn-id: svn://vcs.exim.org/pcre/code/trunk@1558 2f5784b3-3f2a-0410-8824-cb99058d5e15 + +This fixes CVE-2015-3210. + +Signed-off-by: Petr PísaÅ™ +--- + pcre_compile.c | 16 ++++++++++++++-- + testdata/testinput2 | 2 ++ + testdata/testoutput2 | 2 ++ + 3 files changed, 18 insertions(+), 2 deletions(-) + +diff --git a/pcre_compile.c b/pcre_compile.c +index 0efad26..6f06912 100644 +--- a/pcre_compile.c ++++ b/pcre_compile.c +@@ -7173,14 +7173,26 @@ for (;; ptr++) + number. If the name is not found, set the value to 0 for a forward + reference. */ + ++ recno = 0; + ng = cd->named_groups; + for (i = 0; i < cd->names_found; i++, ng++) + { + if (namelen == ng->length && + STRNCMP_UC_UC(name, ng->name, namelen) == 0) +- break; ++ { ++ open_capitem *oc; ++ recno = ng->number; ++ if (is_recurse) break; ++ for (oc = cd->open_caps; oc != NULL; oc = oc->next) ++ { ++ if (oc->number == recno) ++ { ++ oc->flag = TRUE; ++ break; ++ } ++ } ++ } + } +- recno = (i < cd->names_found)? ng->number : 0; + + /* Count named back references. */ + +diff --git a/testdata/testinput2 b/testdata/testinput2 +index 58fe53b..83bb471 100644 +--- a/testdata/testinput2 ++++ b/testdata/testinput2 +@@ -4152,4 +4152,6 @@ backtracking verbs. --/ + + /((?2){73}(?2))((?1))/ + ++"(?J)(?'d'(?'d'\g{d}))" ++ + /-- End of testinput2 --/ +diff --git a/testdata/testoutput2 b/testdata/testoutput2 +index b718df0..7dff52a 100644 +--- a/testdata/testoutput2 ++++ b/testdata/testoutput2 +@@ -14423,4 +14423,6 @@ Failed: lookbehind assertion is not fixed length at offset 17 + + /((?2){73}(?2))((?1))/ + ++"(?J)(?'d'(?'d'\g{d}))" ++ + /-- End of testinput2 --/ +-- +2.4.3 + diff --git a/pkgs/development/libraries/pcre/cve-2015-5073.patch b/pkgs/development/libraries/pcre/cve-2015-5073.patch new file mode 100644 index 00000000000..16fd45c87b1 --- /dev/null +++ b/pkgs/development/libraries/pcre/cve-2015-5073.patch @@ -0,0 +1,68 @@ +From 354e1f8e921dcb9cf2f3a5eac93cd826d01a7d8a Mon Sep 17 00:00:00 2001 +From: ph10 +Date: Tue, 23 Jun 2015 16:34:53 +0000 +Subject: [PATCH] Fix buffer overflow for forward reference within backward + assertion with excess closing parenthesis. Bugzilla 1651. +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +This is upstream commit ported to 8.37: + +commit 764692f9aea9eab50fdba6cb537441d8b34c6c37 +Author: ph10 +Date: Tue Jun 23 16:34:53 2015 +0000 + + Fix buffer overflow for forward reference within backward assertion with excess + closing parenthesis. Bugzilla 1651. + + git-svn-id: svn://vcs.exim.org/pcre/code/trunk@1571 2f5784b3-3f2a-0410-8824-cb99058d5e15 + +It fixes CVE-2015-5073. + +Signed-off-by: Petr PísaÅ™ +--- + pcre_compile.c | 2 +- + testdata/testinput2 | 2 ++ + testdata/testoutput2 | 3 +++ + 3 files changed, 6 insertions(+), 1 deletion(-) + +diff --git a/pcre_compile.c b/pcre_compile.c +index 6f06912..b66b1f6 100644 +--- a/pcre_compile.c ++++ b/pcre_compile.c +@@ -9392,7 +9392,7 @@ OP_RECURSE that are not fixed length get a diagnosic with a useful offset. The + exceptional ones forgo this. We scan the pattern to check that they are fixed + length, and set their lengths. */ + +-if (cd->check_lookbehind) ++if (errorcode == 0 && cd->check_lookbehind) + { + pcre_uchar *cc = (pcre_uchar *)codestart; + +diff --git a/testdata/testinput2 b/testdata/testinput2 +index 83bb471..5cc9ce6 100644 +--- a/testdata/testinput2 ++++ b/testdata/testinput2 +@@ -4154,4 +4154,6 @@ backtracking verbs. --/ + + "(?J)(?'d'(?'d'\g{d}))" + ++/(?=di(?<=(?1))|(?=(.))))/ ++ + /-- End of testinput2 --/ +diff --git a/testdata/testoutput2 b/testdata/testoutput2 +index 7dff52a..4decb8d 100644 +--- a/testdata/testoutput2 ++++ b/testdata/testoutput2 +@@ -14425,4 +14425,7 @@ Failed: lookbehind assertion is not fixed length at offset 17 + + "(?J)(?'d'(?'d'\g{d}))" + ++/(?=di(?<=(?1))|(?=(.))))/ ++Failed: unmatched parentheses at offset 23 ++ + /-- End of testinput2 --/ +-- +2.4.3 + diff --git a/pkgs/development/libraries/pcre/default.nix b/pkgs/development/libraries/pcre/default.nix index a34f3e5e132..3370e910565 100644 --- a/pkgs/development/libraries/pcre/default.nix +++ b/pkgs/development/libraries/pcre/default.nix @@ -12,6 +12,11 @@ stdenv.mkDerivation rec { sha256 = "17bqykp604p7376wj3q2nmjdhrb6v1ny8q08zdwi7qvc02l9wrsi"; }; + patches = + [ ./cve-2015-3210.patch + ./cve-2015-5073.patch + ]; + outputs = [ "out" "doc" "man" ]; configureFlags = '' From 702fde3a91f450d4963189250bf2df113b42efa7 Mon Sep 17 00:00:00 2001 From: Luca Bruno Date: Fri, 25 Sep 2015 14:06:23 +0200 Subject: [PATCH 38/85] libarchive: fix .la file for lzo2 --- pkgs/development/libraries/libarchive/default.nix | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/pkgs/development/libraries/libarchive/default.nix b/pkgs/development/libraries/libarchive/default.nix index 837db32ea4b..ff33043dbae 100644 --- a/pkgs/development/libraries/libarchive/default.nix +++ b/pkgs/development/libraries/libarchive/default.nix @@ -26,7 +26,9 @@ stdenv.mkDerivation rec { '' else null; preFixup = '' - sed 's|-lcrypto|-L${openssl}/lib -lcrypto|' -i $out/lib/libarchive.la + sed -i $out/lib/libarchive.la \ + -e 's|-lcrypto|-L${openssl}/lib -lcrypto|' \ + -e 's|-llzo2|-L${lzo}/lib -llzo2|' ''; meta = { From 7d1cb980bfdb88f889ac59bb9080389052d12558 Mon Sep 17 00:00:00 2001 From: Luca Bruno Date: Fri, 25 Sep 2015 14:06:23 +0200 Subject: [PATCH 39/85] libarchive: fix .la file for lzo2 --- pkgs/development/libraries/libarchive/default.nix | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/pkgs/development/libraries/libarchive/default.nix b/pkgs/development/libraries/libarchive/default.nix index 837db32ea4b..ff33043dbae 100644 --- a/pkgs/development/libraries/libarchive/default.nix +++ b/pkgs/development/libraries/libarchive/default.nix @@ -26,7 +26,9 @@ stdenv.mkDerivation rec { '' else null; preFixup = '' - sed 's|-lcrypto|-L${openssl}/lib -lcrypto|' -i $out/lib/libarchive.la + sed -i $out/lib/libarchive.la \ + -e 's|-lcrypto|-L${openssl}/lib -lcrypto|' \ + -e 's|-llzo2|-L${lzo}/lib -llzo2|' ''; meta = { From dcf933e258dc5d27d4fa9002ebc1bb054009a1a2 Mon Sep 17 00:00:00 2001 From: Jude Taylor Date: Fri, 11 Sep 2015 23:46:45 -0700 Subject: [PATCH 40/85] move rubies into a single file --- .../development/interpreters/ruby/default.nix | 239 ++++++++++++++++++ .../interpreters/ruby/patchsets.nix | 126 +++++++++ .../interpreters/ruby/ruby-1.8.7.nix | 104 -------- .../interpreters/ruby/ruby-1.9.3.nix | 124 --------- .../interpreters/ruby/ruby-2.0.0.nix | 103 -------- .../interpreters/ruby/ruby-2.1.0.nix | 120 --------- .../interpreters/ruby/ruby-2.1.1.nix | 118 --------- .../interpreters/ruby/ruby-2.1.2.nix | 117 --------- .../interpreters/ruby/ruby-2.1.3.nix | 121 --------- .../interpreters/ruby/ruby-2.1.6.nix | 124 --------- .../interpreters/ruby/ruby-2.2.0.nix | 113 --------- .../interpreters/ruby/ruby-2.2.2.nix | 112 -------- pkgs/top-level/all-packages.nix | 25 +- 13 files changed, 372 insertions(+), 1174 deletions(-) create mode 100644 pkgs/development/interpreters/ruby/default.nix create mode 100644 pkgs/development/interpreters/ruby/patchsets.nix delete mode 100644 pkgs/development/interpreters/ruby/ruby-1.8.7.nix delete mode 100644 pkgs/development/interpreters/ruby/ruby-1.9.3.nix delete mode 100644 pkgs/development/interpreters/ruby/ruby-2.0.0.nix delete mode 100644 pkgs/development/interpreters/ruby/ruby-2.1.0.nix delete mode 100644 pkgs/development/interpreters/ruby/ruby-2.1.1.nix delete mode 100644 pkgs/development/interpreters/ruby/ruby-2.1.2.nix delete mode 100644 pkgs/development/interpreters/ruby/ruby-2.1.3.nix delete mode 100644 pkgs/development/interpreters/ruby/ruby-2.1.6.nix delete mode 100644 pkgs/development/interpreters/ruby/ruby-2.2.0.nix delete mode 100644 pkgs/development/interpreters/ruby/ruby-2.2.2.nix diff --git a/pkgs/development/interpreters/ruby/default.nix b/pkgs/development/interpreters/ruby/default.nix new file mode 100644 index 00000000000..d69a1394a60 --- /dev/null +++ b/pkgs/development/interpreters/ruby/default.nix @@ -0,0 +1,239 @@ +{ stdenv, lib, fetchurl, fetchFromSavannah, fetchFromGitHub +, zlib, zlibSupport ? true +, openssl, opensslSupport ? true +, gdbm, gdbmSupport ? true +, ncurses, readline, cursesSupport ? true +, groff, docSupport ? false +, libyaml, yamlSupport ? true +, libffi, fiddleSupport ? true +, autoreconfHook, bison +, darwin ? null +}: + +let + op = stdenv.lib.optional; + ops = stdenv.lib.optionals; + opString = stdenv.lib.optionalString; + patchSet = import ./rvm-patchsets.nix { inherit fetchFromGitHub; }; + config = import ./config.nix { inherit fetchFromSavannah; }; + generic = { majorVersion, minorVersion, teenyVersion, patchLevel, sha256 } @ args: + let + versionNoPatch = "${majorVersion}.${minorVersion}.${teenyVersion}"; + isRuby21 = majorVersion == "2" && minorVersion == "1"; + baseruby = self false; + self = useRailsExpress: stdenv.mkDerivation rec { + version = "${versionNoPatch}-p${patchLevel}"; + + name = "ruby-${version}"; + + src = let + versionName = if patchLevel != "0" && stdenv.lib.versionOlder versionNoPatch "2.1" + then version + else versionNoPatch; + tag = "v" + stdenv.lib.replaceChars ["." "p" "-"] ["_" "_" ""] versionName; + in if useRailsExpress then fetchFromGitHub { + owner = "ruby"; + repo = "ruby"; + rev = tag; + sha256 = args.sha256.git; + } else fetchurl { + url = "http://cache.ruby-lang.org/pub/ruby/${majorVersion}.${minorVersion}/ruby-${versionName}.tar.gz"; + sha256 = args.sha256.src; + }; + + # Have `configure' avoid `/usr/bin/nroff' in non-chroot builds. + NROFF = "${groff}/bin/nroff"; + + buildInputs = ops useRailsExpress [ autoreconfHook bison ] + ++ (op fiddleSupport libffi) + ++ (ops cursesSupport [ ncurses readline ]) + ++ (op docSupport groff) + ++ (op zlibSupport zlib) + ++ (op opensslSupport openssl) + ++ (op gdbmSupport gdbm) + ++ (op yamlSupport libyaml) + # Looks like ruby fails to build on darwin without readline even if curses + # support is not enabled, so add readline to the build inputs if curses + # support is disabled (if it's enabled, we already have it) and we're + # running on darwin + ++ (op (!cursesSupport && stdenv.isDarwin) readline) + ++ (ops stdenv.isDarwin (with darwin; [ libiconv libobjc libunwind ])); + + enableParallelBuilding = true; + + patches = let patchsets = import ./patchsets.nix { + inherit patchSet useRailsExpress ops patchLevel; + }; in patchsets."${versionNoPatch}"; + + postUnpack = opString isRuby21 '' + rm "$sourceRoot/enc/unicode/name2ctype.h" + ''; + + postPatch = if isRuby21 then '' + rm tool/config_files.rb + cp ${config}/config.guess tool/ + cp ${config}/config.sub tool/ + '' else opString useRailsExpress '' + sed -i configure.in -e '/config.guess/d' + cp ${config}/config.guess tool/ + cp ${config}/config.sub tool/ + ''; + + configureFlags = ["--enable-shared"] + ++ op useRailsExpress "--with-baseruby=${baseruby}/bin/ruby" + ++ ops stdenv.isDarwin [ + # on darwin, we have /usr/include/tk.h -- so the configure script detects + # that tk is installed + "--with-out-ext=tk" + # on yosemite, "generating encdb.h" will hang for a very long time without this flag + "--with-setjmp-type=setjmp" + ]; + + installFlags = stdenv.lib.optionalString docSupport "install-doc"; + # Bundler tries to create this directory + postInstall = '' + # Bundler tries to create this directory + mkdir -pv $out/${passthru.gemPath} + mkdir -p $out/nix-support + cat > $out/nix-support/setup-hook < $out/nix-support/setup-hook < $out/nix-support/setup-hook < $out/nix-support/setup-hook <= 2.1.0 tries to download config.{guess,sub} - postPatch = '' - rm tool/config_files.rb - cp ${config}/config.guess tool/ - cp ${config}/config.sub tool/ - ''; - - configureFlags = ["--enable-shared" ] - ++ op useRailsExpress "--with-baseruby=${baseruby}/bin/ruby" - # on darwin, we have /usr/include/tk.h -- so the configure script detects - # that tk is installed - ++ ( if stdenv.isDarwin then [ "--with-out-ext=tk " ] else [ ]); - - installFlags = stdenv.lib.optionalString docSupport "install-doc"; - # Bundler tries to create this directory - postInstall = '' - # Bundler tries to create this directory - mkdir -pv $out/${passthru.gemPath} - mkdir -p $out/nix-support - cat > $out/nix-support/setup-hook <= 2.1.0 tries to download config.{guess,sub} - postPatch = '' - rm tool/config_files.rb - cp ${config}/config.guess tool/ - cp ${config}/config.sub tool/ - ''; - - configureFlags = ["--enable-shared" ] - ++ op useRailsExpress "--with-baseruby=${baseruby}/bin/ruby" - # on darwin, we have /usr/include/tk.h -- so the configure script detects - # that tk is installed - ++ ( if stdenv.isDarwin then [ "--with-out-ext=tk " ] else [ ]); - - installFlags = stdenv.lib.optionalString docSupport "install-doc"; - # Bundler tries to create this directory - postInstall = '' - # Bundler tries to create this directory - mkdir -pv $out/${passthru.gemPath} - mkdir -p $out/nix-support - cat > $out/nix-support/setup-hook <= 2.1.0 tries to download config.{guess,sub} - postPatch = '' - rm tool/config_files.rb - cp ${config}/config.guess tool/ - cp ${config}/config.sub tool/ - ''; - - configureFlags = ["--enable-shared" ] - ++ op useRailsExpress "--with-baseruby=${baseruby}/bin/ruby" - # on darwin, we have /usr/include/tk.h -- so the configure script detects - # that tk is installed - ++ ( if stdenv.isDarwin then [ "--with-out-ext=tk " ] else [ ]); - - installFlags = stdenv.lib.optionalString docSupport "install-doc"; - # Bundler tries to create this directory - postInstall = '' - # Bundler tries to create this directory - mkdir -pv $out/${passthru.gemPath} - mkdir -p $out/nix-support - cat > $out/nix-support/setup-hook <= 2.1.0 tries to download config.{guess,sub} - postPatch = '' - rm tool/config_files.rb - cp ${config}/config.guess tool/ - cp ${config}/config.sub tool/ - ''; - - configureFlags = ["--enable-shared" ] - ++ op useRailsExpress "--with-baseruby=${baseruby}/bin/ruby" - # on darwin, we have /usr/include/tk.h -- so the configure script detects - # that tk is installed - ++ ( if stdenv.isDarwin then [ "--with-out-ext=tk " ] else [ ]); - - installFlags = stdenv.lib.optionalString docSupport "install-doc"; - # Bundler tries to create this directory - postInstall = '' - # Bundler tries to create this directory - mkdir -pv $out/${passthru.gemPath} - mkdir -p $out/nix-support - cat > $out/nix-support/setup-hook <= 2.1.0 tries to download config.{guess,sub} - postPatch = '' - rm tool/config_files.rb - cp ${config}/config.guess tool/ - cp ${config}/config.sub tool/ - ''; - - configureFlags = ["--enable-shared" ] - ++ op useRailsExpress "--with-baseruby=${baseruby}/bin/ruby" - # on darwin, we have /usr/include/tk.h -- so the configure script detects - # that tk is installed - ++ ( if stdenv.isDarwin then [ "--with-out-ext=tk " ] else [ ]); - - installFlags = stdenv.lib.optionalString docSupport "install-doc"; - # Bundler tries to create this directory - postInstall = '' - # Bundler tries to create this directory - mkdir -pv $out/${passthru.gemPath} - mkdir -p $out/nix-support - cat > $out/nix-support/setup-hook < $out/nix-support/setup-hook < $out/nix-support/setup-hook < Date: Sat, 12 Sep 2015 11:58:02 -0700 Subject: [PATCH 41/85] put all rubies in scope --- .../development/interpreters/ruby/default.nix | 16 +-- .../interpreters/ruby/ruby-1.8.7.nix | 104 ++++++++++++++++++ pkgs/top-level/all-packages.nix | 15 +-- 3 files changed, 121 insertions(+), 14 deletions(-) create mode 100644 pkgs/development/interpreters/ruby/ruby-1.8.7.nix diff --git a/pkgs/development/interpreters/ruby/default.nix b/pkgs/development/interpreters/ruby/default.nix index d69a1394a60..fa16352162c 100644 --- a/pkgs/development/interpreters/ruby/default.nix +++ b/pkgs/development/interpreters/ruby/default.nix @@ -6,7 +6,7 @@ , groff, docSupport ? false , libyaml, yamlSupport ? true , libffi, fiddleSupport ? true -, autoreconfHook, bison +, autoreconfHook, bison, autoconf , darwin ? null }: @@ -20,6 +20,7 @@ let let versionNoPatch = "${majorVersion}.${minorVersion}.${teenyVersion}"; isRuby21 = majorVersion == "2" && minorVersion == "1"; + isRuby18 = majorVersion == "1" && minorVersion == "8"; baseruby = self false; self = useRailsExpress: stdenv.mkDerivation rec { version = "${versionNoPatch}-p${patchLevel}"; @@ -57,19 +58,20 @@ let # support is disabled (if it's enabled, we already have it) and we're # running on darwin ++ (op (!cursesSupport && stdenv.isDarwin) readline) - ++ (ops stdenv.isDarwin (with darwin; [ libiconv libobjc libunwind ])); + ++ (ops stdenv.isDarwin (with darwin; [ libiconv libobjc libunwind ])) + ++ op isRuby18 autoconf; enableParallelBuilding = true; - patches = let patchsets = import ./patchsets.nix { + patches = (import ./patchsets.nix { inherit patchSet useRailsExpress ops patchLevel; - }; in patchsets."${versionNoPatch}"; + })."${versionNoPatch}"; postUnpack = opString isRuby21 '' rm "$sourceRoot/enc/unicode/name2ctype.h" ''; - postPatch = if isRuby21 then '' + postPatch = opString (!isRuby18) (if isRuby21 then '' rm tool/config_files.rb cp ${config}/config.guess tool/ cp ${config}/config.sub tool/ @@ -77,9 +79,9 @@ let sed -i configure.in -e '/config.guess/d' cp ${config}/config.guess tool/ cp ${config}/config.sub tool/ - ''; + ''); - configureFlags = ["--enable-shared"] + configureFlags = ["--enable-shared" "--enable-pthread"] ++ op useRailsExpress "--with-baseruby=${baseruby}/bin/ruby" ++ ops stdenv.isDarwin [ # on darwin, we have /usr/include/tk.h -- so the configure script detects diff --git a/pkgs/development/interpreters/ruby/ruby-1.8.7.nix b/pkgs/development/interpreters/ruby/ruby-1.8.7.nix new file mode 100644 index 00000000000..0ae1d1261ee --- /dev/null +++ b/pkgs/development/interpreters/ruby/ruby-1.8.7.nix @@ -0,0 +1,104 @@ +{ stdenv, lib, fetchurl, fetchFromGitHub +, zlib, zlibSupport ? true +, openssl, opensslSupport ? true +, gdbm, gdbmSupport ? true +, ncurses, readline, cursesSupport ? true +, groff, docSupport ? false +, ruby_1_8_7, autoreconfHook, bison, useRailsExpress ? true +}: + +let + op = stdenv.lib.optional; + ops = stdenv.lib.optionals; + patchSet = import ./rvm-patchsets.nix { inherit fetchFromGitHub; }; + baseruby = ruby_1_8_7.override { useRailsExpress = false; }; +in + +stdenv.mkDerivation rec { + version = with passthru; "${majorVersion}.${minorVersion}.${teenyVersion}-p${patchLevel}"; + + name = "ruby-${version}"; + + src = if useRailsExpress then fetchFromGitHub { + owner = "ruby"; + repo = "ruby"; + rev = "v1_8_7_${passthru.patchLevel}"; + sha256 = "1xddhxr0j26hpxfixvhqdscwk2ri846w2129fcfwfjzvy19igswx"; + } else fetchurl { + url = "http://cache.ruby-lang.org/pub/ruby/1.8/${name}.tar.bz2"; + sha256 = "1qq7khilwkayrhwmzlxk83scrmiqfi7lgsn4c63znyvz2c1lgqxl"; + }; + + # Have `configure' avoid `/usr/bin/nroff' in non-chroot builds. + NROFF = "${groff}/bin/nroff"; + + buildInputs = ops useRailsExpress [ autoreconfHook bison ] + ++ (ops cursesSupport [ ncurses readline ] ) + ++ (op docSupport groff ) + ++ (op zlibSupport zlib) + ++ (op opensslSupport openssl) + ++ (op gdbmSupport gdbm); + + patches = ops useRailsExpress [ + "${patchSet}/patches/ruby/1.8.7/p374/railsexpress/01-ignore-generated-files.patch" + "${patchSet}/patches/ruby/1.8.7/p374/railsexpress/02-fix-tests-for-osx.patch" + "${patchSet}/patches/ruby/1.8.7/p374/railsexpress/03-sigvtalrm-fix.patch" + "${patchSet}/patches/ruby/1.8.7/p374/railsexpress/04-railsbench-gc-patch.patch" + "${patchSet}/patches/ruby/1.8.7/p374/railsexpress/05-display-full-stack-trace.patch" + "${patchSet}/patches/ruby/1.8.7/p374/railsexpress/06-better-source-file-tracing.patch" + "${patchSet}/patches/ruby/1.8.7/p374/railsexpress/07-heap-dump-support.patch" + "${patchSet}/patches/ruby/1.8.7/p374/railsexpress/08-fork-support-for-gc-logging.patch" + "${patchSet}/patches/ruby/1.8.7/p374/railsexpress/09-track-malloc-size.patch" + "${patchSet}/patches/ruby/1.8.7/p374/railsexpress/10-track-object-allocation.patch" + "${patchSet}/patches/ruby/1.8.7/p374/railsexpress/11-expose-heap-slots.patch" + "${patchSet}/patches/ruby/1.8.7/p374/railsexpress/12-fix-heap-size-growth-logic.patch" + "${patchSet}/patches/ruby/1.8.7/p374/railsexpress/13-heap-slot-size.patch" + "${patchSet}/patches/ruby/1.8.7/p374/railsexpress/14-add-trace-stats-enabled-methods.patch" + "${patchSet}/patches/ruby/1.8.7/p374/railsexpress/15-track-live-dataset-size.patch" + "${patchSet}/patches/ruby/1.8.7/p374/railsexpress/16-add-object-size-information-to-heap-dump.patch" + "${patchSet}/patches/ruby/1.8.7/p374/railsexpress/17-caller-for-all-threads.patch" + ]; + + configureFlags = [ "--enable-shared" "--enable-pthread" ] + # Without this fails due to not finding X11/Xlib.h + # Not sure why this isn't required on Linux + ++ ops stdenv.isDarwin [ "--without-tcl" "--without-tk" ] + ++ op useRailsExpress "--with-baseruby=${baseruby}/bin/ruby"; + + installFlags = stdenv.lib.optionalString docSupport "install-doc"; + + postInstall = '' + # Bundler tries to create this directory + mkdir -pv $out/${passthru.gemPath} + mkdir -p $out/nix-support + cat > $out/nix-support/setup-hook < Date: Sat, 12 Sep 2015 22:29:26 -0700 Subject: [PATCH 42/85] re-indent; make rubies overridable --- .../development/interpreters/ruby/default.nix | 65 ++++++++++--------- 1 file changed, 36 insertions(+), 29 deletions(-) diff --git a/pkgs/development/interpreters/ruby/default.nix b/pkgs/development/interpreters/ruby/default.nix index fa16352162c..e4065a2bfe0 100644 --- a/pkgs/development/interpreters/ruby/default.nix +++ b/pkgs/development/interpreters/ruby/default.nix @@ -1,14 +1,7 @@ { stdenv, lib, fetchurl, fetchFromSavannah, fetchFromGitHub -, zlib, zlibSupport ? true -, openssl, opensslSupport ? true -, gdbm, gdbmSupport ? true -, ncurses, readline, cursesSupport ? true -, groff, docSupport ? false -, libyaml, yamlSupport ? true -, libffi, fiddleSupport ? true -, autoreconfHook, bison, autoconf -, darwin ? null -}: +, zlib, openssl, gdbm, ncurses, readline, groff, libyaml, libffi, autoreconfHook, bison +, autoconf, darwin ? null +} @ args: let op = stdenv.lib.optional; @@ -16,30 +9,43 @@ let opString = stdenv.lib.optionalString; patchSet = import ./rvm-patchsets.nix { inherit fetchFromGitHub; }; config = import ./config.nix { inherit fetchFromSavannah; }; - generic = { majorVersion, minorVersion, teenyVersion, patchLevel, sha256 } @ args: - let - versionNoPatch = "${majorVersion}.${minorVersion}.${teenyVersion}"; - isRuby21 = majorVersion == "2" && minorVersion == "1"; - isRuby18 = majorVersion == "1" && minorVersion == "8"; - baseruby = self false; - self = useRailsExpress: stdenv.mkDerivation rec { - version = "${versionNoPatch}-p${patchLevel}"; + +generic = { majorVersion, minorVersion, teenyVersion, patchLevel, sha256 }: let + versionNoPatch = "${majorVersion}.${minorVersion}.${teenyVersion}"; + version = "${versionNoPatch}-p${patchLevel}"; + fullVersionName = if patchLevel != "0" && stdenv.lib.versionOlder versionNoPatch "2.1" + then version + else versionNoPatch; + tag = "v" + stdenv.lib.replaceChars ["." "p" "-"] ["_" "_" ""] fullVersionName; + isRuby21 = majorVersion == "2" && minorVersion == "1"; + isRuby18 = majorVersion == "1" && minorVersion == "8"; + baseruby = self.override { useRailsExpress = false; }; + self = lib.makeOverridable ( + { stdenv, lib, fetchurl, fetchFromSavannah, fetchFromGitHub + , useRailsExpress ? true + , zlib, zlibSupport ? true + , openssl, opensslSupport ? true + , gdbm, gdbmSupport ? true + , ncurses, readline, cursesSupport ? true + , groff, docSupport ? false + , libyaml, yamlSupport ? true + , libffi, fiddleSupport ? true + , autoreconfHook, bison, autoconf + , darwin ? null + }: + stdenv.mkDerivation rec { + inherit version; name = "ruby-${version}"; - src = let - versionName = if patchLevel != "0" && stdenv.lib.versionOlder versionNoPatch "2.1" - then version - else versionNoPatch; - tag = "v" + stdenv.lib.replaceChars ["." "p" "-"] ["_" "_" ""] versionName; - in if useRailsExpress then fetchFromGitHub { + src = if useRailsExpress then fetchFromGitHub { owner = "ruby"; repo = "ruby"; rev = tag; - sha256 = args.sha256.git; + sha256 = sha256.git; } else fetchurl { - url = "http://cache.ruby-lang.org/pub/ruby/${majorVersion}.${minorVersion}/ruby-${versionName}.tar.gz"; - sha256 = args.sha256.src; + url = "http://cache.ruby-lang.org/pub/ruby/${majorVersion}.${minorVersion}/ruby-${fullVersionName}.tar.gz"; + sha256 = sha256.src; }; # Have `configure' avoid `/usr/bin/nroff' in non-chroot builds. @@ -104,7 +110,7 @@ let envHooks+=(addGemPath) EOF - '' + lib.optionalString useRailsExpress '' + '' + opString useRailsExpress '' rbConfig=$(find $out/lib/ruby -name rbconfig.rb) # Prevent the baseruby from being included in the closure. @@ -126,7 +132,8 @@ let libPath = "lib/${versionNoPatch}"; gemPath = "lib/${rubyEngine}/gems/${versionNoPatch}"; }; - }; in self true; + } + ) args; in self; in { ruby_1_8_7 = generic { From 68e802c46b0af8e648ffbcda853a8134ce765e23 Mon Sep 17 00:00:00 2001 From: Jude Taylor Date: Sat, 26 Sep 2015 06:23:25 -0700 Subject: [PATCH 43/85] PR comments --- .../development/interpreters/ruby/default.nix | 218 +++++++++--------- pkgs/top-level/all-packages.nix | 2 +- 2 files changed, 110 insertions(+), 110 deletions(-) diff --git a/pkgs/development/interpreters/ruby/default.nix b/pkgs/development/interpreters/ruby/default.nix index e4065a2bfe0..89e0016f98d 100644 --- a/pkgs/development/interpreters/ruby/default.nix +++ b/pkgs/development/interpreters/ruby/default.nix @@ -10,130 +10,130 @@ let patchSet = import ./rvm-patchsets.nix { inherit fetchFromGitHub; }; config = import ./config.nix { inherit fetchFromSavannah; }; -generic = { majorVersion, minorVersion, teenyVersion, patchLevel, sha256 }: let - versionNoPatch = "${majorVersion}.${minorVersion}.${teenyVersion}"; - version = "${versionNoPatch}-p${patchLevel}"; - fullVersionName = if patchLevel != "0" && stdenv.lib.versionOlder versionNoPatch "2.1" - then version - else versionNoPatch; - tag = "v" + stdenv.lib.replaceChars ["." "p" "-"] ["_" "_" ""] fullVersionName; - isRuby21 = majorVersion == "2" && minorVersion == "1"; - isRuby18 = majorVersion == "1" && minorVersion == "8"; - baseruby = self.override { useRailsExpress = false; }; - self = lib.makeOverridable ( - { stdenv, lib, fetchurl, fetchFromSavannah, fetchFromGitHub - , useRailsExpress ? true - , zlib, zlibSupport ? true - , openssl, opensslSupport ? true - , gdbm, gdbmSupport ? true - , ncurses, readline, cursesSupport ? true - , groff, docSupport ? false - , libyaml, yamlSupport ? true - , libffi, fiddleSupport ? true - , autoreconfHook, bison, autoconf - , darwin ? null - }: - stdenv.mkDerivation rec { - inherit version; + generic = { majorVersion, minorVersion, teenyVersion, patchLevel, sha256 }: let + versionNoPatch = "${majorVersion}.${minorVersion}.${teenyVersion}"; + version = "${versionNoPatch}-p${patchLevel}"; + fullVersionName = if patchLevel != "0" && stdenv.lib.versionOlder versionNoPatch "2.1" + then version + else versionNoPatch; + tag = "v" + stdenv.lib.replaceChars ["." "p" "-"] ["_" "_" ""] fullVersionName; + isRuby21 = majorVersion == "2" && minorVersion == "1"; + isRuby18 = majorVersion == "1" && minorVersion == "8"; + baseruby = self.override { useRailsExpress = false; }; + self = lib.makeOverridable ( + { stdenv, lib, fetchurl, fetchFromSavannah, fetchFromGitHub + , useRailsExpress ? true + , zlib, zlibSupport ? true + , openssl, opensslSupport ? true + , gdbm, gdbmSupport ? true + , ncurses, readline, cursesSupport ? true + , groff, docSupport ? false + , libyaml, yamlSupport ? true + , libffi, fiddleSupport ? true + , autoreconfHook, bison, autoconf + , darwin ? null + }: + stdenv.mkDerivation rec { + inherit version; - name = "ruby-${version}"; + name = "ruby-${version}"; - src = if useRailsExpress then fetchFromGitHub { - owner = "ruby"; - repo = "ruby"; - rev = tag; - sha256 = sha256.git; - } else fetchurl { - url = "http://cache.ruby-lang.org/pub/ruby/${majorVersion}.${minorVersion}/ruby-${fullVersionName}.tar.gz"; - sha256 = sha256.src; - }; + src = if useRailsExpress then fetchFromGitHub { + owner = "ruby"; + repo = "ruby"; + rev = tag; + sha256 = sha256.git; + } else fetchurl { + url = "http://cache.ruby-lang.org/pub/ruby/${majorVersion}.${minorVersion}/ruby-${fullVersionName}.tar.gz"; + sha256 = sha256.src; + }; - # Have `configure' avoid `/usr/bin/nroff' in non-chroot builds. - NROFF = "${groff}/bin/nroff"; + # Have `configure' avoid `/usr/bin/nroff' in non-chroot builds. + NROFF = "${groff}/bin/nroff"; - buildInputs = ops useRailsExpress [ autoreconfHook bison ] - ++ (op fiddleSupport libffi) - ++ (ops cursesSupport [ ncurses readline ]) - ++ (op docSupport groff) - ++ (op zlibSupport zlib) - ++ (op opensslSupport openssl) - ++ (op gdbmSupport gdbm) - ++ (op yamlSupport libyaml) - # Looks like ruby fails to build on darwin without readline even if curses - # support is not enabled, so add readline to the build inputs if curses - # support is disabled (if it's enabled, we already have it) and we're - # running on darwin - ++ (op (!cursesSupport && stdenv.isDarwin) readline) - ++ (ops stdenv.isDarwin (with darwin; [ libiconv libobjc libunwind ])) - ++ op isRuby18 autoconf; + buildInputs = ops useRailsExpress [ autoreconfHook bison ] + ++ (op fiddleSupport libffi) + ++ (ops cursesSupport [ ncurses readline ]) + ++ (op docSupport groff) + ++ (op zlibSupport zlib) + ++ (op opensslSupport openssl) + ++ (op gdbmSupport gdbm) + ++ (op yamlSupport libyaml) + # Looks like ruby fails to build on darwin without readline even if curses + # support is not enabled, so add readline to the build inputs if curses + # support is disabled (if it's enabled, we already have it) and we're + # running on darwin + ++ (op (!cursesSupport && stdenv.isDarwin) readline) + ++ (ops stdenv.isDarwin (with darwin; [ libiconv libobjc libunwind ])) + ++ op isRuby18 autoconf; - enableParallelBuilding = true; + enableParallelBuilding = true; - patches = (import ./patchsets.nix { - inherit patchSet useRailsExpress ops patchLevel; - })."${versionNoPatch}"; + patches = (import ./patchsets.nix { + inherit patchSet useRailsExpress ops patchLevel; + })."${versionNoPatch}"; - postUnpack = opString isRuby21 '' - rm "$sourceRoot/enc/unicode/name2ctype.h" - ''; + postUnpack = opString isRuby21 '' + rm "$sourceRoot/enc/unicode/name2ctype.h" + ''; - postPatch = opString (!isRuby18) (if isRuby21 then '' - rm tool/config_files.rb - cp ${config}/config.guess tool/ - cp ${config}/config.sub tool/ - '' else opString useRailsExpress '' - sed -i configure.in -e '/config.guess/d' - cp ${config}/config.guess tool/ - cp ${config}/config.sub tool/ - ''); + postPatch = opString (!isRuby18) (if isRuby21 then '' + rm tool/config_files.rb + cp ${config}/config.guess tool/ + cp ${config}/config.sub tool/ + '' else opString useRailsExpress '' + sed -i configure.in -e '/config.guess/d' + cp ${config}/config.guess tool/ + cp ${config}/config.sub tool/ + ''); - configureFlags = ["--enable-shared" "--enable-pthread"] - ++ op useRailsExpress "--with-baseruby=${baseruby}/bin/ruby" - ++ ops stdenv.isDarwin [ - # on darwin, we have /usr/include/tk.h -- so the configure script detects - # that tk is installed - "--with-out-ext=tk" - # on yosemite, "generating encdb.h" will hang for a very long time without this flag - "--with-setjmp-type=setjmp" - ]; + configureFlags = ["--enable-shared" "--enable-pthread"] + ++ op useRailsExpress "--with-baseruby=${baseruby}/bin/ruby" + ++ ops stdenv.isDarwin [ + # on darwin, we have /usr/include/tk.h -- so the configure script detects + # that tk is installed + "--with-out-ext=tk" + # on yosemite, "generating encdb.h" will hang for a very long time without this flag + "--with-setjmp-type=setjmp" + ]; - installFlags = stdenv.lib.optionalString docSupport "install-doc"; - # Bundler tries to create this directory - postInstall = '' + installFlags = stdenv.lib.optionalString docSupport "install-doc"; # Bundler tries to create this directory - mkdir -pv $out/${passthru.gemPath} - mkdir -p $out/nix-support - cat > $out/nix-support/setup-hook < $out/nix-support/setup-hook < Date: Sat, 26 Sep 2015 06:27:25 -0700 Subject: [PATCH 44/85] revert rubies callPackages change --- pkgs/top-level/all-packages.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 3b781fc768a..58185dee3cf 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -5088,7 +5088,7 @@ let bundlerEnv = callPackage ../development/interpreters/ruby/bundler-env { }; ruby_1_8_7 = callPackage ../development/interpreters/ruby/ruby-1.8.7.nix { }; - inherit (callPackages ../development/interpreters/ruby {}) + inherit (callPackage ../development/interpreters/ruby {}) # TODO: uncomment when ruby_1_8_7 doesn't need autoconf # ruby_1_8_7 ruby_1_9_3 From 01f130e577a1eaf6528b42f131c9dfb550548708 Mon Sep 17 00:00:00 2001 From: Jude Taylor Date: Sat, 26 Sep 2015 23:12:59 -0700 Subject: [PATCH 45/85] update bundler-head SHA256 --- pkgs/development/interpreters/ruby/bundler-head.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/development/interpreters/ruby/bundler-head.nix b/pkgs/development/interpreters/ruby/bundler-head.nix index a81f2f771bc..e31f63dccf0 100644 --- a/pkgs/development/interpreters/ruby/bundler-head.nix +++ b/pkgs/development/interpreters/ruby/bundler-head.nix @@ -5,7 +5,7 @@ buildRubyGem { src = fetchgit { url = "https://github.com/bundler/bundler.git"; rev = "a2343c9eabf5403d8ffcbca4dea33d18a60fc157"; - sha256 = "1p7kzhmicfljy9n7nq3qh6lvrsckiq76ddypf6s55gfh1l98z4k9"; + sha256 = "06qsai4ac3i2xlr7nbc4anh4cy6jd9jjf3rpj254g9gwshqv0qgr"; leaveDotGit = true; }; dontPatchShebangs = true; From 406c366432c12e48596726340ce7494f62fade1e Mon Sep 17 00:00:00 2001 From: Jude Taylor Date: Mon, 28 Sep 2015 09:16:05 -0700 Subject: [PATCH 46/85] revert realLibtool --- pkgs/development/libraries/libuv/default.nix | 4 ++-- pkgs/top-level/all-packages.nix | 16 +++++----------- 2 files changed, 7 insertions(+), 13 deletions(-) diff --git a/pkgs/development/libraries/libuv/default.nix b/pkgs/development/libraries/libuv/default.nix index 2a35264799b..248553dc5eb 100644 --- a/pkgs/development/libraries/libuv/default.nix +++ b/pkgs/development/libraries/libuv/default.nix @@ -1,4 +1,4 @@ -{ stdenv, lib, fetchFromGitHub, autoconf, automake, realLibtool, pkgconfig +{ stdenv, lib, fetchFromGitHub, autoconf, automake, libtool, pkgconfig , ApplicationServices, CoreServices }: @@ -61,7 +61,7 @@ let mkWithAutotools = stability: version: sha256: stdenv.mkDerivation { name = mkName stability version; src = mkSrc version sha256; - buildInputs = [ automake autoconf realLibtool pkgconfig ] + buildInputs = [ automake autoconf libtool pkgconfig ] ++ stdenv.lib.optionals stdenv.isDarwin [ ApplicationServices CoreServices ]; preConfigure = '' LIBTOOLIZE=libtoolize ./autogen.sh diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 58185dee3cf..adebc405f76 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -258,7 +258,7 @@ let autonix = import ../build-support/autonix { inherit pkgs; }; autoreconfHook = makeSetupHook - { substitutions = { inherit autoconf automake gettext; libtool = realLibtool; }; } + { substitutions = { inherit autoconf automake gettext libtool; }; } ../build-support/setup-hooks/autoreconf.sh; buildEnv = callPackage ../build-support/buildenv {}; @@ -4857,9 +4857,7 @@ let guile_1_8 = callPackage ../development/interpreters/guile/1.8.nix { }; - guile_2_0 = callPackage ../development/interpreters/guile { - libtool = realLibtool; - }; + guile_2_0 = callPackage ../development/interpreters/guile { }; guile = guile_2_0; @@ -5572,11 +5570,8 @@ let lemon = callPackage ../development/tools/parsing/lemon { }; - libtool = if stdenv.isDarwin - then darwin.cctools - else realLibtool; - realLibtool = libtool_2; + libtool = libtool_2; libtool_1_5 = callPackage ../development/tools/misc/libtool { }; @@ -6057,9 +6052,7 @@ let db6 = db60; db60 = callPackage ../development/libraries/db/db-6.0.nix { }; - dbus = callPackage ../development/libraries/dbus { - libtool = realLibtool; - }; + dbus = callPackage ../development/libraries/dbus { }; dbus_cplusplus = callPackage ../development/libraries/dbus-cplusplus { }; dbus_glib = callPackage ../development/libraries/dbus-glib { }; dbus_java = callPackage ../development/libraries/java/dbus-java { }; @@ -11044,6 +11037,7 @@ let }); emacs24Macport_24_5 = lowPrio (callPackage ../applications/editors/emacs-24/macport-24.5.nix { stdenv = pkgs.clangStdenv; + inherit (darwin.apple_sdk.frameworks) Carbon; }); emacs24Macport = self.emacs24Macport_24_5; From 638f24cc93e8bb1f088d27ab02fdbcf1593ffa6c Mon Sep 17 00:00:00 2001 From: Jude Taylor Date: Mon, 28 Sep 2015 09:36:15 -0700 Subject: [PATCH 47/85] excise accidental change included with 14bd5c0 --- pkgs/top-level/all-packages.nix | 1 - 1 file changed, 1 deletion(-) diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index adebc405f76..7f296d756aa 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -11037,7 +11037,6 @@ let }); emacs24Macport_24_5 = lowPrio (callPackage ../applications/editors/emacs-24/macport-24.5.nix { stdenv = pkgs.clangStdenv; - inherit (darwin.apple_sdk.frameworks) Carbon; }); emacs24Macport = self.emacs24Macport_24_5; From 6367e48225302ef5932011ec6831f08fa9d67afa Mon Sep 17 00:00:00 2001 From: Jude Taylor Date: Mon, 28 Sep 2015 09:41:02 -0700 Subject: [PATCH 48/85] Revert "pop" This reverts commit 724e243159e4e0059699eb21f6761a760b9a2f49. This (clearly) should never have been committed, and is probably due to a failed stash pop on my part. --- .../development/haskell-modules/configuration-common.nix | 9 --------- pkgs/stdenv/default.nix | 2 +- 2 files changed, 1 insertion(+), 10 deletions(-) diff --git a/pkgs/development/haskell-modules/configuration-common.nix b/pkgs/development/haskell-modules/configuration-common.nix index 1324b8b979b..9f7a18fa2da 100644 --- a/pkgs/development/haskell-modules/configuration-common.nix +++ b/pkgs/development/haskell-modules/configuration-common.nix @@ -57,15 +57,6 @@ self: super: { # Link the proper version. zeromq4-haskell = super.zeromq4-haskell.override { zeromq = pkgs.zeromq4; }; - WordNet = pkgs.stdenv.lib.overrideDerivation super.WordNet (drv: { - src = ~/.dev/Haskell/WordNet-1.1.0; - postPatch = (drv.postPatch or "") + '' - substituteInPlace NLP/WordNet/Consts.hs \ - --replace /usr/local/WordNet-2.0 ${pkgs.wordnet} \ - --replace 'defined (MAC)' 0 - ''; - }); - # This package needs a little help compiling properly on Darwin. Furthermore, # Stackage compiles git-annex without the Assistant, supposedly because not # all required dependencies are part of Stackage. To comply with Stackage, we diff --git a/pkgs/stdenv/default.nix b/pkgs/stdenv/default.nix index da93229ce94..71bdc3e8f82 100644 --- a/pkgs/stdenv/default.nix +++ b/pkgs/stdenv/default.nix @@ -54,7 +54,7 @@ rec { if system == "armv7l-linux" then stdenvLinux else if system == "mips64el-linux" then stdenvLinux else if system == "powerpc-linux" then /* stdenvLinux */ stdenvNative else - if system == "x86_64-darwin" then stdenvDarwinPure else + if system == "x86_64-darwin" then stdenvDarwin else if system == "x86_64-solaris" then stdenvNix else if system == "i686-cygwin" then stdenvNative else if system == "x86_64-cygwin" then stdenvNative else From 41ef382b9bd0ffcc2685d019151ed9f466f5c999 Mon Sep 17 00:00:00 2001 From: Jude Taylor Date: Mon, 28 Sep 2015 10:47:34 -0700 Subject: [PATCH 49/85] bring darwin libtool back into scope for node --- pkgs/top-level/all-packages.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 7f296d756aa..818dfee3392 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -2012,10 +2012,12 @@ let }; nodejs-0_12 = callPackage ../development/web/nodejs { + libtool = darwin.cctools; libuv = libuvVersions.v1_6_1; }; nodejs-0_10 = callPackage ../development/web/nodejs/v0_10.nix { + libtool = darwin.cctools; inherit (darwin.apple_sdk.frameworks) CoreServices ApplicationServices Carbon Foundation; }; From 4f9ef9bbfb90a4a510a5fdcb4425004a137379e3 Mon Sep 17 00:00:00 2001 From: Jude Taylor Date: Mon, 28 Sep 2015 14:45:45 -0700 Subject: [PATCH 50/85] give xquartz impure deps to make it build --- pkgs/servers/x11/quartz-wm/default.nix | 7 ++----- pkgs/servers/x11/xorg/overrides.nix | 5 +++-- pkgs/servers/x11/xquartz/default.nix | 7 ------- pkgs/top-level/all-packages.nix | 3 --- 4 files changed, 5 insertions(+), 17 deletions(-) diff --git a/pkgs/servers/x11/quartz-wm/default.nix b/pkgs/servers/x11/quartz-wm/default.nix index ff125067305..de30fc2a584 100644 --- a/pkgs/servers/x11/quartz-wm/default.nix +++ b/pkgs/servers/x11/quartz-wm/default.nix @@ -1,4 +1,4 @@ -{ stdenv, lib, fetchurl, xorg, pixman, pkgconfig, Foundation, libobjc, Xplugin, CF }: +{ stdenv, lib, fetchurl, xorg, pixman, pkgconfig }: let version = "1.3.1"; in stdenv.mkDerivation { @@ -19,11 +19,8 @@ in stdenv.mkDerivation { xorg.libXext pixman pkgconfig - CF - Foundation - libobjc - Xplugin ]; + NIX_CFLAGS_COMPILE = "-F/System/Library/Frameworks -I/usr/include"; NIX_LDFLAGS = stdenv.lib.optional stdenv.isDarwin "/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation"; meta = with lib; { diff --git a/pkgs/servers/x11/xorg/overrides.nix b/pkgs/servers/x11/xorg/overrides.nix index f5d5bf679ec..a3b786c014e 100644 --- a/pkgs/servers/x11/xorg/overrides.nix +++ b/pkgs/servers/x11/xorg/overrides.nix @@ -326,8 +326,6 @@ in } else { buildInputs = commonBuildInputs ++ [ args.bootstrap_cmds args.automake args.autoconf - args.CF args.apple_sdk.libs.Xplugin args.apple_sdk.frameworks.Foundation - args.libobjc args.apple_sdk.frameworks.Cocoa ]; propagatedBuildInputs = commonPropagatedBuildInputs ++ [ libAppleWM applewmproto @@ -355,6 +353,9 @@ in "--with-bundle-id-prefix=org.nixos.xquartz" "--with-sha1=CommonCrypto" ]; + __impureHostDeps = ["/System/Library" "/usr"]; + NIX_CFLAGS_COMPILE = "-F/System/Library/Frameworks -I/usr/include"; + NIX_CFLAGS_LINK = "-L/usr/lib"; preConfigure = '' ensureDir $out/Applications export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -Wno-error" diff --git a/pkgs/servers/x11/xquartz/default.nix b/pkgs/servers/x11/xquartz/default.nix index 8b5b3155a17..178e7a59d83 100644 --- a/pkgs/servers/x11/xquartz/default.nix +++ b/pkgs/servers/x11/xquartz/default.nix @@ -146,13 +146,6 @@ in stdenv.mkDerivation { --replace "@STARTX@" "$defaultStartX" \ --replace "@FONTCONFIG_FILE@" "$fontsConfPath" - rm $out/lib/X11/xinit/privileged_startx.d/* - cp ${./privileged} $out/lib/X11/xinit/privileged_startx.d/privileged - substituteInPlace $out/lib/X11/xinit/privileged_startx.d/privileged \ - --replace "@PATH@" "$out/bin:${env}" \ - --replace "@FONTCONFIG_FILE@" "$fontsConfPath" \ - --replace "@FONT_CACHE@" "$out/bin/font_cache" - cp ${./font_cache} $out/bin/font_cache substituteInPlace $out/bin/font_cache \ --replace "@PATH@" "$out/bin:${env}" \ diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 818dfee3392..cb84a14d26e 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -9252,9 +9252,6 @@ let xquartz = callPackage ../servers/x11/xquartz { }; quartz-wm = callPackage ../servers/x11/quartz-wm { stdenv = clangStdenv; - inherit (darwin.apple_sdk.frameworks) Foundation; - inherit (darwin.apple_sdk.libs) Xplugin; - inherit (darwin) libobjc CF; }; xorg = recurseIntoAttrs (lib.callPackagesWith pkgs ../servers/x11/xorg/default.nix { From e6f51faa1273f6585903fa422718a686d40a60fd Mon Sep 17 00:00:00 2001 From: Matthew Maurer Date: Mon, 28 Sep 2015 18:33:48 -0400 Subject: [PATCH 51/85] capnproto: 0.5.1.2 -> 0.5.3 --- pkgs/development/libraries/capnproto/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/libraries/capnproto/default.nix b/pkgs/development/libraries/capnproto/default.nix index 8a67206d5b4..839d48e488f 100644 --- a/pkgs/development/libraries/capnproto/default.nix +++ b/pkgs/development/libraries/capnproto/default.nix @@ -2,11 +2,11 @@ stdenv.mkDerivation rec { name = "capnproto-${version}"; - version = "0.5.1.2"; + version = "0.5.3"; src = fetchurl { url = "https://capnproto.org/capnproto-c++-${version}.tar.gz"; - sha256 = "0a89v6sigsyj9vii0d5kqs2fdv73r71f8czzhdvqdvk3p0mlcgx2"; + sha256 = "1yvaadhgakskqq5wpv53hd6fc3pp17mrdldw4i5cvgck4iwprcfd"; }; meta = with stdenv.lib; { From 06eab94f1603620944dfcc6c64b5af8c194db75f Mon Sep 17 00:00:00 2001 From: Jude Taylor Date: Mon, 28 Sep 2015 17:09:50 -0700 Subject: [PATCH 52/85] patch sbcl-bootstrap for purity --- pkgs/development/compilers/sbcl/bootstrap.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/pkgs/development/compilers/sbcl/bootstrap.nix b/pkgs/development/compilers/sbcl/bootstrap.nix index 015d7dd95da..40c98072e6e 100644 --- a/pkgs/development/compilers/sbcl/bootstrap.nix +++ b/pkgs/development/compilers/sbcl/bootstrap.nix @@ -17,6 +17,7 @@ stdenv.mkDerivation rec { installPhase = '' mkdir -p $out/bin cp -p src/runtime/sbcl $out/bin + install_name_tool -change /usr/lib/libgcc_s.1.dylib ${stdenv.libc}/lib/libgcc_s.10.5.dylib $out/bin/sbcl mkdir -p $out/share/sbcl cp -p output/sbcl.core $out/share/sbcl ''; From f4a7173e83999700d0e714a397464fa20648ee3c Mon Sep 17 00:00:00 2001 From: Jude Taylor Date: Mon, 28 Sep 2015 17:23:25 -0700 Subject: [PATCH 53/85] add darwin libtool to nodejs 4.1.0 --- pkgs/development/web/nodejs/v0_10.nix | 2 ++ pkgs/top-level/all-packages.nix | 1 + 2 files changed, 3 insertions(+) diff --git a/pkgs/development/web/nodejs/v0_10.nix b/pkgs/development/web/nodejs/v0_10.nix index eaa3c6386cb..bf19ba646fd 100644 --- a/pkgs/development/web/nodejs/v0_10.nix +++ b/pkgs/development/web/nodejs/v0_10.nix @@ -54,6 +54,8 @@ in stdenv.mkDerivation { propagatedBuildInputs = optionals stdenv.isDarwin [ Carbon ]; setupHook = ./setup-hook.sh; + enableParallelBuilding = true; + passthru.interpreterName = "nodejs-0.10"; meta = { diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index cb84a14d26e..6eaf8fdf589 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -2007,6 +2007,7 @@ let ninka = callPackage ../development/tools/misc/ninka { }; nodejs-4_1 = callPackage ../development/web/nodejs/v4_1_0.nix { + libtool = darwin.cctools; libuv = libuvVersions.v1_7_5; openssl = openssl_1_0_2; }; From 0b1fd74a8d2211ca8227a4b1a45c6855901f4801 Mon Sep 17 00:00:00 2001 From: Jude Taylor Date: Mon, 28 Sep 2015 17:33:33 -0700 Subject: [PATCH 54/85] fix syntax error --- pkgs/desktops/gnome-3/3.18/devtools/anjuta/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/desktops/gnome-3/3.18/devtools/anjuta/default.nix b/pkgs/desktops/gnome-3/3.18/devtools/anjuta/default.nix index ef350e08684..af74df4ad13 100644 --- a/pkgs/desktops/gnome-3/3.18/devtools/anjuta/default.nix +++ b/pkgs/desktops/gnome-3/3.18/devtools/anjuta/default.nix @@ -1,7 +1,7 @@ { stdenv, fetchurl, pkgconfig, gnome3, gtk3, flex, bison, libxml2, intltool, itstool, python, makeWrapper }: -in stdenv.mkDerivation rec { +stdenv.mkDerivation rec { inherit (import ./src.nix fetchurl) name src; enableParallelBuilding = true; From 48a791d27062c71ced0921920d95fdd991b35107 Mon Sep 17 00:00:00 2001 From: Jude Taylor Date: Mon, 28 Sep 2015 18:32:41 -0700 Subject: [PATCH 55/85] darwin purity: doxygen --- pkgs/development/tools/documentation/doxygen/default.nix | 9 +++++++-- pkgs/top-level/all-packages.nix | 1 + 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/pkgs/development/tools/documentation/doxygen/default.nix b/pkgs/development/tools/documentation/doxygen/default.nix index 50f2037b271..78669dfdce7 100644 --- a/pkgs/development/tools/documentation/doxygen/default.nix +++ b/pkgs/development/tools/documentation/doxygen/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, perl, python, flex, bison, qt4 }: +{ stdenv, fetchurl, perl, python, flex, bison, qt4, CoreServices, libiconv }: let name = "doxygen-1.8.6"; @@ -11,11 +11,16 @@ stdenv.mkDerivation { sha256 = "0pskjlkbj76m9ka7zi66yj8ffjcv821izv3qxqyyphf0y0jqcwba"; }; + prePatch = '' + substituteInPlace configure --replace /usr/bin/install $(type -P install) + ''; + patches = [ ./tmake.patch ]; buildInputs = [ perl python flex bison ] - ++ stdenv.lib.optional (qt4 != null) qt4; + ++ stdenv.lib.optional (qt4 != null) qt4 + ++ stdenv.lib.optionals stdenv.isDarwin [ CoreServices libiconv ]; prefixKey = "--prefix "; diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 6eaf8fdf589..a98ef4a4d5d 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -5457,6 +5457,7 @@ let doxygen = callPackage ../development/tools/documentation/doxygen { qt4 = null; + inherit (darwin.apple_sdk.frameworks) CoreServices; }; doxygen_gui = lowPrio (doxygen.override { inherit qt4; }); From 5c7ba8c971605423d46045c364b42864a04909e2 Mon Sep 17 00:00:00 2001 From: "William A. Kennington III" Date: Tue, 29 Sep 2015 16:12:06 -0700 Subject: [PATCH 56/85] pkgconfig: 0.28 -> 0.29 --- pkgs/development/tools/misc/pkgconfig/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/tools/misc/pkgconfig/default.nix b/pkgs/development/tools/misc/pkgconfig/default.nix index f1471d51e1f..6eea0a6d5d6 100644 --- a/pkgs/development/tools/misc/pkgconfig/default.nix +++ b/pkgs/development/tools/misc/pkgconfig/default.nix @@ -1,13 +1,13 @@ {stdenv, fetchurl, automake, libiconv, vanilla ? false}: stdenv.mkDerivation (rec { - name = "pkg-config-0.28"; + name = "pkg-config-0.29"; setupHook = ./setup-hook.sh; src = fetchurl { url = "http://pkgconfig.freedesktop.org/releases/${name}.tar.gz"; - sha256 = "0igqq5m204w71m11y0nipbdf5apx87hwfll6axs12hn4dqfb6vkb"; + sha256 = "0sq09a39wj4cxf8l2jvkq067g08ywfma4v6nhprnf351s82pfl68"; }; buildInputs = stdenv.lib.optional (stdenv.isCygwin || stdenv.isDarwin) libiconv; From de05a7b2ef1bb634d5e4e11c31ee9adc9a38197b Mon Sep 17 00:00:00 2001 From: Jude Taylor Date: Tue, 29 Sep 2015 17:56:32 -0700 Subject: [PATCH 57/85] add mpw --- pkgs/tools/security/mpw/default.nix | 42 +++++++++++++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 ++ 2 files changed, 44 insertions(+) create mode 100644 pkgs/tools/security/mpw/default.nix diff --git a/pkgs/tools/security/mpw/default.nix b/pkgs/tools/security/mpw/default.nix new file mode 100644 index 00000000000..15937a6792e --- /dev/null +++ b/pkgs/tools/security/mpw/default.nix @@ -0,0 +1,42 @@ +{ stdenv, fetchurl, autoconf, automake, openssl, libxml2 }: + +let + scrypt_src = fetchurl { + url = "http://masterpasswordapp.com/libscrypt-b12b554.tar.gz"; + sha256 = "02vz4i66v1acd15xjgki4ilmmp28m6a5603gi4hf8id3d3ndl9n7"; + }; + +in stdenv.mkDerivation { + name = "mpw-2.1-cli4"; + + srcs = [ + (fetchurl { + url = "https://ssl.masterpasswordapp.com/mpw-2.1-cli4-0-gf6b2287.tar.gz"; + sha256 = "141bzb3nj18rbnbpdvsri8cdwwwxz4d6akyhfa834542xf96b9vf"; + }) + scrypt_src + ]; + + sourceRoot = "."; + + postUnpack = '' + cp -R libscrypt-b12b554/* lib/scrypt + ''; + + prePatch = '' + patchShebangs . + ''; + + NIX_CFLAGS_COMPILE = "-I${libxml2}/include/libxml2"; + + buildInputs = [ autoconf automake openssl libxml2 ]; + + buildPhase = '' + targets="mpw mpw-tests" ./build + ''; + + installPhase = '' + mkdir -p $out/bin + mv mpw $out/bin/mpw + ''; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index d5ea85d635d..243c36a563c 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -2247,6 +2247,8 @@ let mpage = callPackage ../tools/text/mpage { }; + mpw = callPackage ../tools/security/mpw { }; + mr = callPackage ../applications/version-management/mr { }; mrtg = callPackage ../tools/misc/mrtg { }; From a424afdedd3bf0c769a56a49a92b366bf461a75a Mon Sep 17 00:00:00 2001 From: Jude Taylor Date: Wed, 30 Sep 2015 00:33:46 -0700 Subject: [PATCH 58/85] darwin purity: polyml --- pkgs/development/compilers/polyml/default.nix | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/pkgs/development/compilers/polyml/default.nix b/pkgs/development/compilers/polyml/default.nix index 76bb811dd66..276065ad350 100644 --- a/pkgs/development/compilers/polyml/default.nix +++ b/pkgs/development/compilers/polyml/default.nix @@ -1,4 +1,4 @@ -{stdenv, fetchurl}: +{stdenv, fetchurl, autoreconfHook}: let version = "5.5.2"; @@ -7,6 +7,12 @@ in stdenv.mkDerivation { name = "polyml-${version}"; + prePatch = stdenv.lib.optionalString stdenv.isDarwin '' + substituteInPlace configure.ac --replace stdc++ c++ + ''; + + buildInputs = stdenv.lib.optional stdenv.isDarwin autoreconfHook; + src = fetchurl { url = "mirror://sourceforge/polyml/polyml.${version}.tar.gz"; sha256 = "10m680qdad6bd50bav9xjsgmsxw8yxg55vr7grbg0gvykzl2pzbk"; From 12d49bbe66667b6bc711ae89a14b9d232557ea28 Mon Sep 17 00:00:00 2001 From: Jude Taylor Date: Wed, 30 Sep 2015 00:33:54 -0700 Subject: [PATCH 59/85] darwin purity: httrack --- pkgs/tools/backup/httrack/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/tools/backup/httrack/default.nix b/pkgs/tools/backup/httrack/default.nix index 573c4b58d60..8860fbc5dbc 100644 --- a/pkgs/tools/backup/httrack/default.nix +++ b/pkgs/tools/backup/httrack/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, zlib, openssl }: +{ stdenv, fetchurl, zlib, openssl, libiconv }: stdenv.mkDerivation rec { version = "3.48.21"; @@ -9,7 +9,7 @@ stdenv.mkDerivation rec { sha256 = "10p4gf8y9h7mxkqlbs3hqgvmvbgvcbax8jp1whbw4yidwahn06w7"; }; - buildInputs = [ zlib openssl ]; + buildInputs = [ zlib openssl ] ++ stdenv.lib.optional stdenv.isDarwin libiconv; meta = { homepage = "http://www.httrack.com"; From 333ed12c70ecee0baabc6b5636b86b0035e6e999 Mon Sep 17 00:00:00 2001 From: Jude Taylor Date: Wed, 30 Sep 2015 00:34:02 -0700 Subject: [PATCH 60/85] darwin purity: aria2 --- pkgs/tools/networking/aria2/default.nix | 4 +++- pkgs/top-level/all-packages.nix | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/pkgs/tools/networking/aria2/default.nix b/pkgs/tools/networking/aria2/default.nix index 69b9dc40638..07671ffe81f 100644 --- a/pkgs/tools/networking/aria2/default.nix +++ b/pkgs/tools/networking/aria2/default.nix @@ -1,5 +1,6 @@ { stdenv, fetchurl, pkgconfig, autoreconfHook , openssl, c-ares, libxml2, sqlite, zlib, libssh2 +, Security }: stdenv.mkDerivation rec { @@ -12,7 +13,8 @@ stdenv.mkDerivation rec { }; nativeBuildInputs = [ pkgconfig ]; - buildInputs = [ openssl c-ares libxml2 sqlite zlib libssh2 ]; + buildInputs = [ openssl c-ares libxml2 sqlite zlib libssh2 ] ++ + stdenv.lib.optional stdenv.isDarwin Security; configureFlags = [ "--with-ca-bundle=/etc/ssl/certs/ca-certificates.crt" ]; diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 243c36a563c..2c292a5b8c8 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -628,7 +628,9 @@ let inherit (androidenv) androidsdk_4_4 androidndk; - aria2 = callPackage ../tools/networking/aria2 { }; + aria2 = callPackage ../tools/networking/aria2 { + inherit (darwin.apple_sdk.frameworks) Security; + }; aria = aria2; at = callPackage ../tools/system/at { }; From d14bb302a7de75ec91e48e1efb4ed5c123c96e3b Mon Sep 17 00:00:00 2001 From: Jude Taylor Date: Wed, 30 Sep 2015 10:23:44 -0700 Subject: [PATCH 61/85] syntax error --- pkgs/top-level/all-packages.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 2c292a5b8c8..0a64892f5df 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -2036,7 +2036,7 @@ let nodePackages_4_1 = recurseIntoAttrs (callPackage ./node-packages.nix { self = nodePackages_4_1; nodejs = nodejs-4_1; }); - nodePackages_0_10 = recurcallPackage ./node-packages.nix { self = nodePackages_0_10; nodejs = nodejs-0_10; }; + nodePackages_0_10 = callPackage ./node-packages.nix { self = nodePackages_0_10; nodejs = nodejs-0_10; }; nodePackages = if stdenv.system == "armv5tel-linux" then nodePackages_0_10 From 25938294863a91a8b2120213a123c8fd8f111f1d Mon Sep 17 00:00:00 2001 From: "Antoine R. Dumont" Date: Sat, 26 Sep 2015 01:34:18 +0200 Subject: [PATCH 62/85] python-packages: importmagic init at 0.1.3 --- pkgs/top-level/python-packages.nix | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index f472aec99c0..7929877f777 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -18470,4 +18470,24 @@ let }; }; + importmagic = buildPythonPackage rec { + simpleName = "importmagic"; + name = "${simpleName}-${version}"; + version = "0.1.3"; + doCheck = false; # missing json file from tarball + + src = pkgs.fetchurl { + url = "https://pypi.python.org/packages/source/i/${simpleName}/${name}.tar.gz"; + sha256 = "194bl8l8sc2ibwi6g5kz6xydkbngdqpaj6r2gcsaw1fc73iswwrj"; + }; + + propagatedBuildInputs = with self; [ six ]; + + meta = { + description = "Python Import Magic - automagically add, remove and manage imports"; + homepage = http://github.com/alecthomas/importmagic; + license = "bsd"; + }; + }; + }; in pythonPackages From 7fa6cc75298986af984945ff77dfb36e773f03b5 Mon Sep 17 00:00:00 2001 From: "Antoine R. Dumont" Date: Sun, 27 Sep 2015 18:20:31 +0200 Subject: [PATCH 63/85] python-packages: elpy 1.0.1 -> 1.9.0 --- pkgs/top-level/python-packages.nix | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 7929877f777..596683a2e16 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -5820,10 +5820,11 @@ let elpy = buildPythonPackage rec { - name = "elpy-1.0.1"; + name = "elpy-${version}"; + version = "1.9.0"; src = pkgs.fetchurl { - url = "http://pypi.python.org/packages/source/e/elpy/elpy-1.0.1.tar.gz"; - md5 = "5453f085f7871ed8fc11d51f0b68c785"; + url = "https://pypi.python.org/packages/source/e/elpy/${name}.tar.gz"; + md5 = "651f6f46767b7132e5c0f83d5ac3b1f7"; }; propagatedBuildInputs = with self; [ flake8 ]; From 364667c390da7836ed5d4edcd56bc81eed8b2f6e Mon Sep 17 00:00:00 2001 From: "Antoine R. Dumont (@ardumont)" Date: Thu, 1 Oct 2015 12:23:39 +0200 Subject: [PATCH 64/85] python-packages: elpy add runtime dependencies --- pkgs/top-level/python-packages.nix | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 596683a2e16..85f52b4ba8e 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -5826,7 +5826,8 @@ let url = "https://pypi.python.org/packages/source/e/elpy/${name}.tar.gz"; md5 = "651f6f46767b7132e5c0f83d5ac3b1f7"; }; - propagatedBuildInputs = with self; [ flake8 ]; + python2Deps = if isPy3k then [ ] else [ self.rope ]; + propagatedBuildInputs = with self; [ flake8 autopep8 jedi importmagic ] ++ python2Deps; doCheck = false; # there are no tests From 8755a79cb8c379a91147c0145dac9f8b16531507 Mon Sep 17 00:00:00 2001 From: "Antoine R. Dumont" Date: Fri, 25 Sep 2015 15:05:41 +0200 Subject: [PATCH 65/85] emacs-packages: yasnippet init at 0.8.1 --- pkgs/top-level/emacs-packages.nix | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/pkgs/top-level/emacs-packages.nix b/pkgs/top-level/emacs-packages.nix index 2600fe1b82a..9a1ba1a52d7 100644 --- a/pkgs/top-level/emacs-packages.nix +++ b/pkgs/top-level/emacs-packages.nix @@ -1506,6 +1506,29 @@ let self = _self // overrides; meta = { license = gpl3Plus; }; }; + yasnippet = melpaBuild rec { + pname = "yasnippet"; + version = "0.8.1"; + src = fetchFromGitHub { + owner = "capitaomorte"; + repo = pname; + rev = "01139a2deb9eda272b9b771fbbe15d096061efa4"; + sha256 = "1b0bxzkmw7yd1yf6326zf52aq63n283vy57pysj8cc34d9bk6nnk"; + }; + meta = { + description = "A template system for Emacs"; + longDescription = '' + YASnippet is a template system for Emacs. + It allows you to type an abbreviation and automatically expand it into + function templates. Bundled language templates include: C, C++, C#, + Perl, Python, Ruby, SQL, LaTeX, HTML, CSS and more. + The snippet syntax is inspired from TextMate's syntax, you can even import + most TextMate templates to YASnippet. + ''; + license = gpl2Plus; + }; + }; + zenburn-theme = melpaBuild rec { pname = "zenburn-theme"; version = "2.2"; From c62397209195bce9eec9811b4a21fa8a6f4ea364 Mon Sep 17 00:00:00 2001 From: "Antoine R. Dumont" Date: Fri, 25 Sep 2015 15:06:07 +0200 Subject: [PATCH 66/85] emacs-packages: find-file-in-project init at 3.5 --- pkgs/top-level/emacs-packages.nix | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/pkgs/top-level/emacs-packages.nix b/pkgs/top-level/emacs-packages.nix index 9a1ba1a52d7..eee886be318 100644 --- a/pkgs/top-level/emacs-packages.nix +++ b/pkgs/top-level/emacs-packages.nix @@ -571,6 +571,26 @@ let self = _self // overrides; }; }; + find-file-in-project = melpaBuild rec { + pname = "find-file-in-project"; + version = "3.5"; + src = fetchFromGitHub { + owner = "technomancy"; + repo = pname; + rev = "53a8d8174f915d9dcf5ac6954b1c0cae61266177"; + sha256 = "0wky8vqg08iw34prbz04bqmhfhj82y93swb8zkz6la2vf9da0gmd"; + }; + meta = { + description = "Quick access to project files in Emacs"; + longDescription = '' + Find files in a project quickly. + This program provides a couple methods for quickly finding any file in a + given project. It depends on GNU find. + ''; + license = gpl3Plus; + }; + }; + flim = melpaBuild rec { pname = "flim"; version = "1.14.9"; # 20141216 From b429a536de0749fefc914cc0c1bb1e003b62bb2b Mon Sep 17 00:00:00 2001 From: "Antoine R. Dumont" Date: Fri, 25 Sep 2015 15:06:25 +0200 Subject: [PATCH 67/85] emacs-packages: highlight-indentation init at 0.7.0 --- pkgs/top-level/emacs-packages.nix | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/pkgs/top-level/emacs-packages.nix b/pkgs/top-level/emacs-packages.nix index eee886be318..e16cafade0e 100644 --- a/pkgs/top-level/emacs-packages.nix +++ b/pkgs/top-level/emacs-packages.nix @@ -852,6 +852,30 @@ let self = _self // overrides; meta = { license = gpl3Plus; }; }; + highlight-indentation = melpaBuild rec { + pname = "highlight-indentation"; + version = "0.7.0"; + src = fetchFromGitHub { + owner = "antonj"; + repo = "Highlight-Indentation-for-Emacs"; + rev = "v${version}"; + sha256 = "00l54k75qk24a0znzl4ij3s3nrnr2wy9ha3za8apphzlm98m907k"; + }; + meta = { + description = "Minor modes to highlight indentation guides in emacs"; + longDescription = '' + Provides two minor modes highlight-indentation-mode and + highlight-indentation-current-column-mode + + - highlight-indentation-mode displays guidelines indentation + (space indentation only). + - highlight-indentation-current-column-mode displays guidelines for the + current-point indentation (space indentation only). + ''; + license = gpl2Plus; + }; + }; + ibuffer-vc = melpaBuild rec { pname = "ibuffer-vc"; version = "0.10"; From d69c493eed8013446fcc3b1d3f8f959a83372969 Mon Sep 17 00:00:00 2001 From: "Antoine R. Dumont" Date: Fri, 25 Sep 2015 15:06:45 +0200 Subject: [PATCH 68/85] emacs-packages: pyvenv init at 1.7 --- pkgs/top-level/emacs-packages.nix | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/pkgs/top-level/emacs-packages.nix b/pkgs/top-level/emacs-packages.nix index e16cafade0e..393ce343644 100644 --- a/pkgs/top-level/emacs-packages.nix +++ b/pkgs/top-level/emacs-packages.nix @@ -1233,6 +1233,25 @@ let self = _self // overrides; meta = { license = gpl3Plus; }; }; + pyvenv = melpaBuild rec { + pname = "pyvenv"; + version = "1.7"; + src = fetchFromGitHub { + owner = "jorgenschaefer"; + repo = pname; + rev = "e4f2fa7a32cf480f34d628d8eb5b9b60374d0e8e"; + sha256 = "1669id1p69kpq8zzldxj1p6iyz68701snn462g22k2acfzc2bfha"; + }; + meta = { + description = "Python virtual environment interface for Emacs"; + longDescription = '' + This is a simple global minor mode which will replicate the changes done + by virtualenv activation inside Emacs. + ''; + license = gpl2Plus; + }; + }; + rainbow-delimiters = melpaBuild rec { pname = "rainbow-delimiters"; version = "2.1.1"; From 3e917394378969edc0c2d4e45f1f04761d8dce6e Mon Sep 17 00:00:00 2001 From: "Antoine R. Dumont" Date: Fri, 25 Sep 2015 15:06:58 +0200 Subject: [PATCH 69/85] emacs-packages: elpy init at 1.9.0 --- pkgs/top-level/emacs-packages.nix | 36 +++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/pkgs/top-level/emacs-packages.nix b/pkgs/top-level/emacs-packages.nix index 393ce343644..360096aa1ff 100644 --- a/pkgs/top-level/emacs-packages.nix +++ b/pkgs/top-level/emacs-packages.nix @@ -440,6 +440,42 @@ let self = _self // overrides; }; }; + elpy = melpaBuild rec { + pname = "elpy"; + version = "1.9.0"; + src = fetchFromGitHub { + owner = "jorgenschaefer"; + repo = pname; + rev = "39ea47c73f040ce8dcc1c2d2639ebc0eb57ab8c8"; + sha256 = "0q3av1qv4m6aj4bil608f688hjpr5px8zqnnrdqx784nz98rpjrs"; + }; + + patchPhase = '' + for file in elpy.el elpy-pkg.el; do + substituteInPlace $file \ + --replace "company \"0.8.2\"" "company \"${company.version}\"" \ + --replace "find-file-in-project \"3.3\"" "find-file-in-project \"${find-file-in-project.version}\"" \ + --replace "highlight-indentation \"0.5.0\"" "highlight-indentation \"${highlight-indentation.version}\"" \ + --replace "pyvenv \"1.3\"" "pyvenv \"${pyvenv.version}\"" \ + --replace "yasnippet \"0.8.0\"" "yasnippet \"${yasnippet.version}\"" + done + ''; + + packageRequires = [ + company find-file-in-project highlight-indentation pyvenv yasnippet + ]; + + meta = { + description = "Emacs Python Development Environment"; + longDescription = '' + Elpy is an Emacs package to bring powerful Python editing to Emacs. + It combines a number of other packages, both written in Emacs Lisp as + well as Python. + ''; + license = gpl3Plus; + }; + }; + engine-mode = melpaBuild rec { pname = "engine-mode"; version = "1.0.0"; From 2f5cbb1b625a286cb7dc5bd2f9093dda828b3d01 Mon Sep 17 00:00:00 2001 From: "Antoine R. Dumont (@ardumont)" Date: Thu, 1 Oct 2015 12:31:11 +0200 Subject: [PATCH 70/85] emacs-packages: elpy add runtime dependencies on pythonpackages.elpy --- pkgs/top-level/all-packages.nix | 1 + pkgs/top-level/emacs-packages.nix | 4 +++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 5bb5c818378..5d5b7771d42 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -11287,6 +11287,7 @@ let external = { inherit (haskellPackages) ghc-mod structured-haskell-mode Agda; + inherit (pythonPackages) elpy; }; }; diff --git a/pkgs/top-level/emacs-packages.nix b/pkgs/top-level/emacs-packages.nix index 360096aa1ff..d331850b504 100644 --- a/pkgs/top-level/emacs-packages.nix +++ b/pkgs/top-level/emacs-packages.nix @@ -442,7 +442,7 @@ let self = _self // overrides; elpy = melpaBuild rec { pname = "elpy"; - version = "1.9.0"; + version = external.elpy.version; src = fetchFromGitHub { owner = "jorgenschaefer"; repo = pname; @@ -465,6 +465,8 @@ let self = _self // overrides; company find-file-in-project highlight-indentation pyvenv yasnippet ]; + propagatedUserEnvPkgs = [ external.elpy ] ++ packageRequires; + meta = { description = "Emacs Python Development Environment"; longDescription = '' From e0d5b14ce412f6ff629d4fb5104d34a0b00804b7 Mon Sep 17 00:00:00 2001 From: Thomas Strobel Date: Thu, 1 Oct 2015 14:23:22 +0200 Subject: [PATCH 71/85] neard: enable support for Secure Elements --- pkgs/servers/neard/default.nix | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pkgs/servers/neard/default.nix b/pkgs/servers/neard/default.nix index a76f10a262d..995ffc41c60 100644 --- a/pkgs/servers/neard/default.nix +++ b/pkgs/servers/neard/default.nix @@ -11,7 +11,7 @@ stdenv.mkDerivation rec { buildInputs = [ autoreconfHook pkgconfig systemd glib dbus libnl pythonPackages.python pythonPackages.wrapPython ]; pythonPath = [ pythonPackages.pygobject pythonPackages.dbus pythonPackages.pygtk ]; - configureFlags = [ "--disable-debug" "--enable-tools" "--with-systemdsystemunitdir=$out/lib/systemd/system" ]; + configureFlags = [ "--disable-debug" "--enable-tools" "--enable-ese" "--with-systemdsystemunitdir=$out/lib/systemd/system" ]; postInstall = '' install -m 0755 tools/snep-send $out/bin/ @@ -19,6 +19,7 @@ stdenv.mkDerivation rec { install -D -m644 src/neard.service $out/lib/systemd/system/neard.service install -D -m644 src/main.conf $out/etc/neard/main.conf + # INFO: the config option "--enable-test" would copy the apps to $out/lib/neard/test/ instead install -d $out/lib/neard install -m 0755 test/* $out/lib/neard/ wrapPythonProgramsIn $out/lib/neard "$out $pythonPath" From c0248c0c1f46f42ed736386e0d0ee67da5b329a6 Mon Sep 17 00:00:00 2001 From: Thomas Strobel Date: Mon, 28 Sep 2015 18:43:40 +0200 Subject: [PATCH 72/85] networking module: init 'wlanInterfaces' option Configuration option for setting up virtual WLAN interfaces. If the hardware NIC supports it, then multiple virtual WLAN interfaces can be configured through the options of the new 'networking.wlanInterfaces' module. For example, the following configuration transforms the device with the persistent udev name 'wlp6s0' into a managed and a ad hoc device with the device names 'wlan-managed0' and 'wlan-adhoc0', respectively: networking.wlanInterfaces = { "wlan-managed0" = { type = "managed"; device = "wlp6s0"; }; "wlan-adhoc0" = { type = "ibss"; device = "wlp6s0"; }; }; Internally, a udev rule is created that matches wlp6s0 and runs a script which adds the missing virtual interfaces and re-configures the wlp6s0 interface accordingly. Once the new interfaces are created by the Linux kernel, the configuration of the interfaces is managed by udev and systemd in the usual way. --- nixos/modules/tasks/network-interfaces.nix | 168 +++++++++++++++++++++ 1 file changed, 168 insertions(+) diff --git a/nixos/modules/tasks/network-interfaces.nix b/nixos/modules/tasks/network-interfaces.nix index 7af3160e2d4..f9410d75922 100644 --- a/nixos/modules/tasks/network-interfaces.nix +++ b/nixos/modules/tasks/network-interfaces.nix @@ -46,6 +46,51 @@ let ''; }); + # Collect all interfaces that are defined for a device + # as device:interface key:value pairs. + wlanDeviceInterfaces = + let + allDevices = unique (mapAttrsToList (_: v: v.device) cfg.wlanInterfaces); + interfacesOfDevice = d: filterAttrs (_: v: v.device == d) cfg.wlanInterfaces; + in + genAttrs allDevices (d: interfacesOfDevice d); + + # Convert device:interface key:value pairs into a list, and if it exists, + # place the interface which is named after the device at the beginning. + wlanListDeviceFirst = device: interfaces: + if hasAttr device interfaces + then [{"${device}"=interfaces.device; _iName=device;}] ++ mapAttrsToList (n: v: v//{_iName=n;}) (filterAttrs (n: _: n!=device) interfaces) + else mapAttrsToList (n: v: v // {_iName = n;}) interfaces; + + # udev script that configures a physical wlan device and adds virtual interfaces + wlanDeviceUdevScript = device: interfaceList: pkgs.writeScript "wlan-${device}-udev-script" '' + #!${pkgs.stdenv.shell} + + # Change the wireless phy device to a predictable name. + if [ -e "/sys/class/net/${device}/phy80211/name" ]; then + ${pkgs.iw}/bin/iw phy `${pkgs.coreutils}/bin/cat /sys/class/net/${device}/phy80211/name` set name ${device} || true + fi + + # Crate new, virtual interfaces and configure them at the same time + ${flip concatMapStrings (drop 1 interfaceList) (i: '' + ${pkgs.iw}/bin/iw dev ${device} interface add ${i._iName} type ${i.type} \ + ${optionalString (i.type == "mesh" && i.meshID != null) "mesh_id ${i.meshID}"} \ + ${optionalString (i.type == "monitor" && i.flags != null) "flags ${i.flags}"} \ + ${optionalString (i.type == "managed" && i.fourAddr != null) "4addr ${if i.fourAddr then "on" else "off"}"} \ + ${optionalString (i.mac != null) "addr ${i.mac}"} + '')} + + # Reconfigure and rename the default interface that already exists + ${flip concatMapStrings (take 1 interfaceList) (i: '' + ${pkgs.iw}/bin/iw dev ${device} set type ${i.type} + ${optionalString (i.type == "mesh" && i.meshID != null) "${pkgs.iw}/bin/iw dev ${device} set meshid ${i.meshID}"} + ${optionalString (i.type == "monitor" && i.flags != null) "${pkgs.iw}/bin/iw dev ${device} set monitor ${i.flags}"} + ${optionalString (i.type == "managed" && i.fourAddr != null) "${pkgs.iw}/bin/iw dev ${device} set 4addr ${if i.fourAddr then "on" else "off"}"} + ${optionalString (i.mac != null) "${pkgs.iproute}/bin/ip link set dev ${device} address ${i.mac}"} + ${optionalString (device != i._iName) "${pkgs.iproute}/bin/ip link set dev ${device} name ${i._iName}"} + '')} + ''; + # We must escape interfaces due to the systemd interpretation subsystemDevice = interface: "sys-subsystem-net-devices-${escapeSystemdPath interface}.device"; @@ -688,6 +733,110 @@ in }; }; + networking.wlanInterfaces = mkOption { + default = { }; + example = { + "wlan-station0" = { + device = "wlp6s0"; + }; + "wlan-adhoc0" = { + type = "ibss"; + device = "wlp6s0"; + mac = "02:00:00:00:00:01"; + }; + "wlan-p2p0" = { + device = "wlp6s0"; + mac = "02:00:00:00:00:02"; + }; + "wlan-ap0" = { + device = "wlp6s0"; + mac = "02:00:00:00:00:03"; + }; + }; + description = + '' + Creating multiple WLAN interfaces on top of one physical WLAN device (NIC). + + The name of the WLAN interface corresponds to the name of the attribute. + A NIC is referenced by the persistent device name of the WLAN interface that + udev assigns to a NIC by default. + If a NIC supports multiple WLAN interfaces, then the one NIC can be used as + device for multiple WLAN interfaces. + If a NIC is used for creating WLAN interfaces, then the default WLAN interface + with a persistent device name form udev is not created. + A WLAN interface with the persistent name assigned from udev + would have to be created explicitly. + ''; + + type = types.attrsOf types.optionSet; + + options = { + + device = mkOption { + type = types.string; + example = "wlp6s0"; + description = "The name of the underlying hardware WLAN device as assigned by udev."; + }; + + type = mkOption { + type = types.string; + default = "managed"; + example = "ibss"; + description = '' + The type of the WLAN interface. The type has to be either managed, + ibss, monitor, mesh or wds. + Also, the type has to be supported by the underlying hardware of the device. + ''; + }; + + meshID = mkOption { + type = types.nullOr types.string; + default = null; + description = "MeshID of interface with type mesh."; + }; + + flags = mkOption { + type = types.nullOr types.string; + default = null; + example = "control"; + description = '' + Flags for interface of type monitor. The valid flags are: + none: no special flags + fcsfail: show frames with FCS errors + control: show control frames + otherbss: show frames from other BSSes + cook: use cooked mode + active: use active mode (ACK incoming unicast packets) + ''; + }; + + fourAddr = mkOption { + type = types.nullOr types.bool; + default = null; + description = "Whether to enable 4-address mode with type managed."; + }; + + mac = mkOption { + type = types.nullOr types.str; + default = null; + example = "02:00:00:00:00:01"; + description = '' + MAC address to use for the device. If null, then the MAC of the + underlying hardware WLAN device is used. + + INFO: Locally administered MAC addresses are of the form: + + x2:xx:xx:xx:xx:xx + x6:xx:xx:xx:xx:xx + xA:xx:xx:xx:xx:xx + xE:xx:xx:xx:xx:xx + + ''; + }; + + }; + }; + networking.useDHCP = mkOption { type = types.bool; default = true; @@ -844,6 +993,25 @@ in virtualisation.vswitch = mkIf (cfg.vswitches != { }) { enable = true; }; + services.udev.packages = mkIf (cfg.wlanInterfaces != {}) [ + (pkgs.writeTextFile { + name = "99-zzz-wlanInterfaces-last.rules"; + destination = "/etc/udev/rules.d/99-zzz-wlanInterfaces-last.rules"; + text = '' + # If persistent udev device name is not used for an interface, then do not + # call systemd for that udev device name and only execute the script that + # modifies or prepares the WLAN interfaces. All other commands that would + # otherwise be executed when the udev device is added, like, e.g., the calling + # of systemd-sysctl or the activation of wpa_supplicant is disabled when the + # persistend udev device name is not usef for an interface. + ${flip (concatMapStringsSep "\n") (attrNames wlanDeviceInterfaces) (device: + let script = wlanDeviceUdevScript device (wlanListDeviceFirst device wlanDeviceInterfaces."${device}"); in + if hasAttr device cfg.wlanInterfaces + then ''ACTION=="add", SUBSYSTEM=="net", NAME=="${device}", ENV{DEVTYPE}=="wlan", RUN+="${script}"'' + else ''ACTION=="add", SUBSYSTEM=="net", NAME=="${device}", ENV{DEVTYPE}=="wlan", NAME="", TAG-="systemd", RUN:="${script}"'')} + ''; + }) ]; + }; } From 6dfb16730bb8348c9466260983fb313477611dec Mon Sep 17 00:00:00 2001 From: Thomas Strobel Date: Thu, 1 Oct 2015 17:48:34 +0200 Subject: [PATCH 73/85] networking module: fix DocBook tags --- nixos/modules/tasks/network-interfaces.nix | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/nixos/modules/tasks/network-interfaces.nix b/nixos/modules/tasks/network-interfaces.nix index f9410d75922..9ffede48bf5 100644 --- a/nixos/modules/tasks/network-interfaces.nix +++ b/nixos/modules/tasks/network-interfaces.nix @@ -826,10 +826,10 @@ in INFO: Locally administered MAC addresses are of the form: - x2:xx:xx:xx:xx:xx - x6:xx:xx:xx:xx:xx - xA:xx:xx:xx:xx:xx - xE:xx:xx:xx:xx:xx + x2:xx:xx:xx:xx:xx + x6:xx:xx:xx:xx:xx + xA:xx:xx:xx:xx:xx + xE:xx:xx:xx:xx:xx ''; }; From c720f06f7c84bed458eecb78c37eaf993b6f1404 Mon Sep 17 00:00:00 2001 From: Thomas Strobel Date: Thu, 1 Oct 2015 17:52:04 +0200 Subject: [PATCH 74/85] linux kernel common config: re-enable NFC support As test, Linux kernels were build successfully with NFC support for 3.18.x and for 4.1.x. --- pkgs/os-specific/linux/kernel/common-config.nix | 2 -- 1 file changed, 2 deletions(-) diff --git a/pkgs/os-specific/linux/kernel/common-config.nix b/pkgs/os-specific/linux/kernel/common-config.nix index ef35757fdb2..218532a695e 100644 --- a/pkgs/os-specific/linux/kernel/common-config.nix +++ b/pkgs/os-specific/linux/kernel/common-config.nix @@ -478,8 +478,6 @@ with stdenv.lib; ''} ZRAM m - ${optionalString (versionAtLeast version "3.17") "NFC? n"} - # Enable firmware loading via udev (legacy). ${optionalString (versionAtLeast version "3.17") '' FW_LOADER_USER_HELPER_FALLBACK y From 5379504451c67b9773191d4cc56638072d3239d3 Mon Sep 17 00:00:00 2001 From: Jude Taylor Date: Sat, 26 Sep 2015 06:25:01 -0700 Subject: [PATCH 75/85] Merge pull request #9834 from NixOS/rubies Merge Ruby versions into one file --- .../development/interpreters/ruby/default.nix | 248 ++++++++++++++++++ .../interpreters/ruby/patchsets.nix | 126 +++++++++ .../interpreters/ruby/ruby-1.9.3.nix | 124 --------- .../interpreters/ruby/ruby-2.0.0.nix | 103 -------- .../interpreters/ruby/ruby-2.1.0.nix | 120 --------- .../interpreters/ruby/ruby-2.1.1.nix | 118 --------- .../interpreters/ruby/ruby-2.1.2.nix | 117 --------- .../interpreters/ruby/ruby-2.1.3.nix | 121 --------- .../interpreters/ruby/ruby-2.1.6.nix | 124 --------- .../interpreters/ruby/ruby-2.2.0.nix | 113 -------- .../interpreters/ruby/ruby-2.2.2.nix | 112 -------- pkgs/top-level/all-packages.nix | 24 +- 12 files changed, 381 insertions(+), 1069 deletions(-) create mode 100644 pkgs/development/interpreters/ruby/default.nix create mode 100644 pkgs/development/interpreters/ruby/patchsets.nix delete mode 100644 pkgs/development/interpreters/ruby/ruby-1.9.3.nix delete mode 100644 pkgs/development/interpreters/ruby/ruby-2.0.0.nix delete mode 100644 pkgs/development/interpreters/ruby/ruby-2.1.0.nix delete mode 100644 pkgs/development/interpreters/ruby/ruby-2.1.1.nix delete mode 100644 pkgs/development/interpreters/ruby/ruby-2.1.2.nix delete mode 100644 pkgs/development/interpreters/ruby/ruby-2.1.3.nix delete mode 100644 pkgs/development/interpreters/ruby/ruby-2.1.6.nix delete mode 100644 pkgs/development/interpreters/ruby/ruby-2.2.0.nix delete mode 100644 pkgs/development/interpreters/ruby/ruby-2.2.2.nix diff --git a/pkgs/development/interpreters/ruby/default.nix b/pkgs/development/interpreters/ruby/default.nix new file mode 100644 index 00000000000..89e0016f98d --- /dev/null +++ b/pkgs/development/interpreters/ruby/default.nix @@ -0,0 +1,248 @@ +{ stdenv, lib, fetchurl, fetchFromSavannah, fetchFromGitHub +, zlib, openssl, gdbm, ncurses, readline, groff, libyaml, libffi, autoreconfHook, bison +, autoconf, darwin ? null +} @ args: + +let + op = stdenv.lib.optional; + ops = stdenv.lib.optionals; + opString = stdenv.lib.optionalString; + patchSet = import ./rvm-patchsets.nix { inherit fetchFromGitHub; }; + config = import ./config.nix { inherit fetchFromSavannah; }; + + generic = { majorVersion, minorVersion, teenyVersion, patchLevel, sha256 }: let + versionNoPatch = "${majorVersion}.${minorVersion}.${teenyVersion}"; + version = "${versionNoPatch}-p${patchLevel}"; + fullVersionName = if patchLevel != "0" && stdenv.lib.versionOlder versionNoPatch "2.1" + then version + else versionNoPatch; + tag = "v" + stdenv.lib.replaceChars ["." "p" "-"] ["_" "_" ""] fullVersionName; + isRuby21 = majorVersion == "2" && minorVersion == "1"; + isRuby18 = majorVersion == "1" && minorVersion == "8"; + baseruby = self.override { useRailsExpress = false; }; + self = lib.makeOverridable ( + { stdenv, lib, fetchurl, fetchFromSavannah, fetchFromGitHub + , useRailsExpress ? true + , zlib, zlibSupport ? true + , openssl, opensslSupport ? true + , gdbm, gdbmSupport ? true + , ncurses, readline, cursesSupport ? true + , groff, docSupport ? false + , libyaml, yamlSupport ? true + , libffi, fiddleSupport ? true + , autoreconfHook, bison, autoconf + , darwin ? null + }: + stdenv.mkDerivation rec { + inherit version; + + name = "ruby-${version}"; + + src = if useRailsExpress then fetchFromGitHub { + owner = "ruby"; + repo = "ruby"; + rev = tag; + sha256 = sha256.git; + } else fetchurl { + url = "http://cache.ruby-lang.org/pub/ruby/${majorVersion}.${minorVersion}/ruby-${fullVersionName}.tar.gz"; + sha256 = sha256.src; + }; + + # Have `configure' avoid `/usr/bin/nroff' in non-chroot builds. + NROFF = "${groff}/bin/nroff"; + + buildInputs = ops useRailsExpress [ autoreconfHook bison ] + ++ (op fiddleSupport libffi) + ++ (ops cursesSupport [ ncurses readline ]) + ++ (op docSupport groff) + ++ (op zlibSupport zlib) + ++ (op opensslSupport openssl) + ++ (op gdbmSupport gdbm) + ++ (op yamlSupport libyaml) + # Looks like ruby fails to build on darwin without readline even if curses + # support is not enabled, so add readline to the build inputs if curses + # support is disabled (if it's enabled, we already have it) and we're + # running on darwin + ++ (op (!cursesSupport && stdenv.isDarwin) readline) + ++ (ops stdenv.isDarwin (with darwin; [ libiconv libobjc libunwind ])) + ++ op isRuby18 autoconf; + + enableParallelBuilding = true; + + patches = (import ./patchsets.nix { + inherit patchSet useRailsExpress ops patchLevel; + })."${versionNoPatch}"; + + postUnpack = opString isRuby21 '' + rm "$sourceRoot/enc/unicode/name2ctype.h" + ''; + + postPatch = opString (!isRuby18) (if isRuby21 then '' + rm tool/config_files.rb + cp ${config}/config.guess tool/ + cp ${config}/config.sub tool/ + '' else opString useRailsExpress '' + sed -i configure.in -e '/config.guess/d' + cp ${config}/config.guess tool/ + cp ${config}/config.sub tool/ + ''); + + configureFlags = ["--enable-shared" "--enable-pthread"] + ++ op useRailsExpress "--with-baseruby=${baseruby}/bin/ruby" + ++ ops stdenv.isDarwin [ + # on darwin, we have /usr/include/tk.h -- so the configure script detects + # that tk is installed + "--with-out-ext=tk" + # on yosemite, "generating encdb.h" will hang for a very long time without this flag + "--with-setjmp-type=setjmp" + ]; + + installFlags = stdenv.lib.optionalString docSupport "install-doc"; + # Bundler tries to create this directory + postInstall = '' + # Bundler tries to create this directory + mkdir -pv $out/${passthru.gemPath} + mkdir -p $out/nix-support + cat > $out/nix-support/setup-hook < $out/nix-support/setup-hook < $out/nix-support/setup-hook <= 2.1.0 tries to download config.{guess,sub} - postPatch = '' - rm tool/config_files.rb - cp ${config}/config.guess tool/ - cp ${config}/config.sub tool/ - ''; - - configureFlags = ["--enable-shared" ] - ++ op useRailsExpress "--with-baseruby=${baseruby}/bin/ruby" - # on darwin, we have /usr/include/tk.h -- so the configure script detects - # that tk is installed - ++ ( if stdenv.isDarwin then [ "--with-out-ext=tk " ] else [ ]); - - installFlags = stdenv.lib.optionalString docSupport "install-doc"; - # Bundler tries to create this directory - postInstall = '' - # Bundler tries to create this directory - mkdir -pv $out/${passthru.gemPath} - mkdir -p $out/nix-support - cat > $out/nix-support/setup-hook <= 2.1.0 tries to download config.{guess,sub} - postPatch = '' - rm tool/config_files.rb - cp ${config}/config.guess tool/ - cp ${config}/config.sub tool/ - ''; - - configureFlags = ["--enable-shared" ] - ++ op useRailsExpress "--with-baseruby=${baseruby}/bin/ruby" - # on darwin, we have /usr/include/tk.h -- so the configure script detects - # that tk is installed - ++ ( if stdenv.isDarwin then [ "--with-out-ext=tk " ] else [ ]); - - installFlags = stdenv.lib.optionalString docSupport "install-doc"; - # Bundler tries to create this directory - postInstall = '' - # Bundler tries to create this directory - mkdir -pv $out/${passthru.gemPath} - mkdir -p $out/nix-support - cat > $out/nix-support/setup-hook <= 2.1.0 tries to download config.{guess,sub} - postPatch = '' - rm tool/config_files.rb - cp ${config}/config.guess tool/ - cp ${config}/config.sub tool/ - ''; - - configureFlags = ["--enable-shared" ] - ++ op useRailsExpress "--with-baseruby=${baseruby}/bin/ruby" - # on darwin, we have /usr/include/tk.h -- so the configure script detects - # that tk is installed - ++ ( if stdenv.isDarwin then [ "--with-out-ext=tk " ] else [ ]); - - installFlags = stdenv.lib.optionalString docSupport "install-doc"; - # Bundler tries to create this directory - postInstall = '' - # Bundler tries to create this directory - mkdir -pv $out/${passthru.gemPath} - mkdir -p $out/nix-support - cat > $out/nix-support/setup-hook <= 2.1.0 tries to download config.{guess,sub} - postPatch = '' - rm tool/config_files.rb - cp ${config}/config.guess tool/ - cp ${config}/config.sub tool/ - ''; - - configureFlags = ["--enable-shared" ] - ++ op useRailsExpress "--with-baseruby=${baseruby}/bin/ruby" - # on darwin, we have /usr/include/tk.h -- so the configure script detects - # that tk is installed - ++ ( if stdenv.isDarwin then [ "--with-out-ext=tk " ] else [ ]); - - installFlags = stdenv.lib.optionalString docSupport "install-doc"; - # Bundler tries to create this directory - postInstall = '' - # Bundler tries to create this directory - mkdir -pv $out/${passthru.gemPath} - mkdir -p $out/nix-support - cat > $out/nix-support/setup-hook <= 2.1.0 tries to download config.{guess,sub} - postPatch = '' - rm tool/config_files.rb - cp ${config}/config.guess tool/ - cp ${config}/config.sub tool/ - ''; - - configureFlags = ["--enable-shared" ] - ++ op useRailsExpress "--with-baseruby=${baseruby}/bin/ruby" - # on darwin, we have /usr/include/tk.h -- so the configure script detects - # that tk is installed - ++ ( if stdenv.isDarwin then [ "--with-out-ext=tk " ] else [ ]); - - installFlags = stdenv.lib.optionalString docSupport "install-doc"; - # Bundler tries to create this directory - postInstall = '' - # Bundler tries to create this directory - mkdir -pv $out/${passthru.gemPath} - mkdir -p $out/nix-support - cat > $out/nix-support/setup-hook < $out/nix-support/setup-hook < $out/nix-support/setup-hook < Date: Sat, 26 Sep 2015 23:12:59 -0700 Subject: [PATCH 76/85] update bundler-head SHA256 --- pkgs/development/interpreters/ruby/bundler-head.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/development/interpreters/ruby/bundler-head.nix b/pkgs/development/interpreters/ruby/bundler-head.nix index a81f2f771bc..e31f63dccf0 100644 --- a/pkgs/development/interpreters/ruby/bundler-head.nix +++ b/pkgs/development/interpreters/ruby/bundler-head.nix @@ -5,7 +5,7 @@ buildRubyGem { src = fetchgit { url = "https://github.com/bundler/bundler.git"; rev = "a2343c9eabf5403d8ffcbca4dea33d18a60fc157"; - sha256 = "1p7kzhmicfljy9n7nq3qh6lvrsckiq76ddypf6s55gfh1l98z4k9"; + sha256 = "06qsai4ac3i2xlr7nbc4anh4cy6jd9jjf3rpj254g9gwshqv0qgr"; leaveDotGit = true; }; dontPatchShebangs = true; From 2b1d851e3eacd4b0f418abd37f2c144064179098 Mon Sep 17 00:00:00 2001 From: Jude Taylor Date: Tue, 29 Sep 2015 17:56:32 -0700 Subject: [PATCH 77/85] add mpw --- pkgs/tools/security/mpw/default.nix | 42 +++++++++++++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 ++ 2 files changed, 44 insertions(+) create mode 100644 pkgs/tools/security/mpw/default.nix diff --git a/pkgs/tools/security/mpw/default.nix b/pkgs/tools/security/mpw/default.nix new file mode 100644 index 00000000000..15937a6792e --- /dev/null +++ b/pkgs/tools/security/mpw/default.nix @@ -0,0 +1,42 @@ +{ stdenv, fetchurl, autoconf, automake, openssl, libxml2 }: + +let + scrypt_src = fetchurl { + url = "http://masterpasswordapp.com/libscrypt-b12b554.tar.gz"; + sha256 = "02vz4i66v1acd15xjgki4ilmmp28m6a5603gi4hf8id3d3ndl9n7"; + }; + +in stdenv.mkDerivation { + name = "mpw-2.1-cli4"; + + srcs = [ + (fetchurl { + url = "https://ssl.masterpasswordapp.com/mpw-2.1-cli4-0-gf6b2287.tar.gz"; + sha256 = "141bzb3nj18rbnbpdvsri8cdwwwxz4d6akyhfa834542xf96b9vf"; + }) + scrypt_src + ]; + + sourceRoot = "."; + + postUnpack = '' + cp -R libscrypt-b12b554/* lib/scrypt + ''; + + prePatch = '' + patchShebangs . + ''; + + NIX_CFLAGS_COMPILE = "-I${libxml2}/include/libxml2"; + + buildInputs = [ autoconf automake openssl libxml2 ]; + + buildPhase = '' + targets="mpw mpw-tests" ./build + ''; + + installPhase = '' + mkdir -p $out/bin + mv mpw $out/bin/mpw + ''; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 24a183f43eb..533e024784e 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -2244,6 +2244,8 @@ let mpage = callPackage ../tools/text/mpage { }; + mpw = callPackage ../tools/security/mpw { }; + mr = callPackage ../applications/version-management/mr { }; mrtg = callPackage ../tools/misc/mrtg { }; From 64eed4b98afdd55c5a827fb67cf53557ffec2db4 Mon Sep 17 00:00:00 2001 From: Thomas Strobel Date: Thu, 1 Oct 2015 18:14:03 +0200 Subject: [PATCH 78/85] deskcon: init at 0.3 --- pkgs/top-level/python-packages.nix | 34 ++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 85f52b4ba8e..41f5d592589 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -3015,6 +3015,40 @@ let }; }; + deskcon = self.buildPythonPackage rec { + name = "deskcon-0.3"; + disabled = !isPy27; + + src = pkgs.fetchFromGitHub { + owner= "screenfreeze"; + repo = "deskcon-desktop"; + rev = "267804122188fa79c37f2b21f54fe05c898610e6"; + sha256 ="0i1dd85ls6n14m9q7lkympms1w3x0pqyaxvalq82s4xnjdv585j3"; + }; + + phases = [ "unpackPhase" "installPhase" ]; + + pythonPath = [ self.pyopenssl pkgs.gtk3 ]; + + installPhase = '' + substituteInPlace server/deskcon-server --replace "python2" "python" + + mkdir -p $out/bin + mkdir -p $out/lib/${python.libPrefix}/site-packages + cp -r server/* $out/lib/${python.libPrefix}/site-packages + mv $out/lib/${python.libPrefix}/site-packages/deskcon-server $out/bin/deskcon-server + + wrapPythonProgramsIn $out/bin "$out $pythonPath" + ''; + + meta = { + description = "integrates an Android device into a desktop"; + homepage = https://github.com/screenfreeze/deskcon-desktop; + license = licenses.gpl3; + }; + }; + + dill = buildPythonPackage rec { name = "dill-${version}"; version = "0.2.4"; From 4833a37791e7d5cc8892dff5752eb1bf0eecbb8f Mon Sep 17 00:00:00 2001 From: Jude Taylor Date: Mon, 28 Sep 2015 10:47:34 -0700 Subject: [PATCH 79/85] bring darwin libtool back into scope for node --- pkgs/top-level/all-packages.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 533e024784e..0eeca122a89 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -2021,6 +2021,7 @@ let }; nodejs-0_10 = callPackage ../development/web/nodejs/v0_10.nix { + libtool = darwin.cctools; inherit (darwin.apple_sdk.frameworks) CoreServices ApplicationServices Carbon Foundation; }; From 4520a191514cd95163f89f040fb477f19ad77d95 Mon Sep 17 00:00:00 2001 From: Jude Taylor Date: Mon, 28 Sep 2015 17:23:25 -0700 Subject: [PATCH 80/85] add darwin libtool to nodejs 4.1.0 --- pkgs/development/web/nodejs/v0_10.nix | 2 ++ pkgs/top-level/all-packages.nix | 1 + 2 files changed, 3 insertions(+) diff --git a/pkgs/development/web/nodejs/v0_10.nix b/pkgs/development/web/nodejs/v0_10.nix index eaa3c6386cb..bf19ba646fd 100644 --- a/pkgs/development/web/nodejs/v0_10.nix +++ b/pkgs/development/web/nodejs/v0_10.nix @@ -54,6 +54,8 @@ in stdenv.mkDerivation { propagatedBuildInputs = optionals stdenv.isDarwin [ Carbon ]; setupHook = ./setup-hook.sh; + enableParallelBuilding = true; + passthru.interpreterName = "nodejs-0.10"; meta = { diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 0eeca122a89..56a6855e5a8 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -2017,6 +2017,7 @@ let ninka = callPackage ../development/tools/misc/ninka { }; nodejs-4_1 = callPackage ../development/web/nodejs { + libtool = darwin.cctools; openssl = openssl_1_0_2; }; From ccf48cea4d13c771e337911723b99ff831e9799e Mon Sep 17 00:00:00 2001 From: Jude Taylor Date: Sat, 26 Sep 2015 06:27:25 -0700 Subject: [PATCH 81/85] revert rubies callPackages change --- pkgs/top-level/all-packages.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 56a6855e5a8..dd865a4a25f 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -5095,7 +5095,7 @@ let bundlerEnv = callPackage ../development/interpreters/ruby/bundler-env { }; ruby_1_8_7 = callPackage ../development/interpreters/ruby/ruby-1.8.7.nix { }; - inherit (callPackages ../development/interpreters/ruby {}) + inherit (callPackage ../development/interpreters/ruby {}) # TODO: uncomment when ruby_1_8_7 doesn't need autoconf # ruby_1_8_7 ruby_1_9_3 From 14961c87810330d22fc1ee11e11a17e32805ff8b Mon Sep 17 00:00:00 2001 From: "William A. Kennington III" Date: Thu, 1 Oct 2015 10:40:41 -0700 Subject: [PATCH 82/85] v8: Fix compilation issue with gcc4.9+ --- pkgs/development/libraries/v8/3.16.14.nix | 4 ++++ pkgs/top-level/all-packages.nix | 1 - 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/pkgs/development/libraries/v8/3.16.14.nix b/pkgs/development/libraries/v8/3.16.14.nix index ba3aae5cf70..c79357cd907 100644 --- a/pkgs/development/libraries/v8/3.16.14.nix +++ b/pkgs/development/libraries/v8/3.16.14.nix @@ -16,6 +16,10 @@ stdenv.mkDerivation rec { sha256 = "1gpf2xvhxfs5ll3m2jlslsx9jfjbmrbz55iq362plflrvf8mbxhj"; }; + postPatch = '' + sed -i 's/-Werror//' build/standalone.gypi build/common.gypi + ''; + configurePhase = stdenv.lib.optionalString stdenv.isDarwin '' ln -s /usr/bin/xcodebuild $TMPDIR export PATH=$TMPDIR:$PATH diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index dd865a4a25f..79862d8613a 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -8340,7 +8340,6 @@ let v8_3_16_14 = callPackage ../development/libraries/v8/3.16.14.nix { inherit (pythonPackages) gyp; - stdenv = overrideCC stdenv gcc48; }; v8_3_24_10 = callPackage ../development/libraries/v8/3.24.10.nix { From 4d3198ca3102eafe7fc5c4ef0354e602a0dc9a77 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20=C4=8Cun=C3=A1t?= Date: Thu, 1 Oct 2015 21:37:19 +0200 Subject: [PATCH 83/85] libaccounts-glib: fixup build after glib update --- pkgs/development/libraries/libaccounts-glib/default.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pkgs/development/libraries/libaccounts-glib/default.nix b/pkgs/development/libraries/libaccounts-glib/default.nix index aa029ede953..2e2bdb11d50 100644 --- a/pkgs/development/libraries/libaccounts-glib/default.nix +++ b/pkgs/development/libraries/libaccounts-glib/default.nix @@ -22,4 +22,6 @@ stdenv.mkDerivation rec { configurePhase = '' HAVE_GCOV_FALSE="#" ./configure $configureFlags --prefix=$out ''; + + NIX_CFLAGS_COMPILE = "-Wno-error=deprecated-declarations"; # since glib-2.46 } From 18b3295970cc5f80ece61d8e0da3b690613c3c8a Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Thu, 1 Oct 2015 18:58:32 +0200 Subject: [PATCH 84/85] tzdata: 2015f -> 2015g --- pkgs/data/misc/tzdata/default.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/data/misc/tzdata/default.nix b/pkgs/data/misc/tzdata/default.nix index 8789316ccdc..045a9eef00a 100644 --- a/pkgs/data/misc/tzdata/default.nix +++ b/pkgs/data/misc/tzdata/default.nix @@ -1,6 +1,6 @@ { stdenv, fetchurl }: -let version = "2015f"; in +let version = "2015g"; in stdenv.mkDerivation rec { name = "tzdata-${version}"; @@ -8,11 +8,11 @@ stdenv.mkDerivation rec { srcs = [ (fetchurl { url = "http://www.iana.org/time-zones/repository/releases/tzdata${version}.tar.gz"; - sha256 = "07ak8ai5skgjpj6lg74pawxg0bz998k7s2ah7jqyqhp086sq37wm"; + sha256 = "0qb1awqrn3215zd2jikpqnmkzrxwfjf0d3dw2xmnk4c40yzws8xr"; }) (fetchurl { url = "http://www.iana.org/time-zones/repository/releases/tzcode${version}.tar.gz"; - sha256 = "1bl4vqw6yp9199clm9aai566bmslp42g5xglj3vl24dn5fjf158c"; + sha256 = "1i3y1kzjiz2j62c7vd4wf85983sqk9x9lg3473njvbdz4kph5r0q"; }) ]; From d1047f7c12bb8097007fc644ea4bebcecbb1b934 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Thu, 1 Oct 2015 19:55:28 +0200 Subject: [PATCH 85/85] shared-mime-info: 1.3 -> 1.5 --- pkgs/data/misc/shared-mime-info/default.nix | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/pkgs/data/misc/shared-mime-info/default.nix b/pkgs/data/misc/shared-mime-info/default.nix index 57f5b24a6f8..46be9a6060b 100644 --- a/pkgs/data/misc/shared-mime-info/default.nix +++ b/pkgs/data/misc/shared-mime-info/default.nix @@ -1,20 +1,23 @@ {stdenv, fetchurl, pkgconfig, gettext, perl, perlXMLParser, intltool , libxml2, glib}: +let version = "1.5"; in stdenv.mkDerivation rec { - name = "shared-mime-info-1.3"; + name = "shared-mime-info-${version}"; src = fetchurl { url = "http://freedesktop.org/~hadess/${name}.tar.xz"; - sha256 = "0fijrc8j2kw6bvdx7fmlfafbcwxvinhr8l44b46b3v59gj69rm2g"; + sha256 = "1021x95xbkfc5ipx3gi2rdc0y6x2pv36yyzxc5pg6nr6xd02hhfn"; }; - buildInputs = [ + nativeBuildInputs = [ pkgconfig gettext intltool perl perlXMLParser libxml2 glib ]; meta = { + inherit version; description = "A database of common MIME types"; homepage = http://freedesktop.org/wiki/Software/shared-mime-info; + license = stdenv.lib.licenses.gpl2Plus; }; }