From 18180858af59960354968918cef5091cf11daa8b Mon Sep 17 00:00:00 2001 From: Alexander Foremny Date: Sat, 26 Jan 2013 13:17:31 +0100 Subject: [PATCH 01/89] Enable mcrypt, intl and exif support in PHP --- pkgs/development/interpreters/php/5.3.nix | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/pkgs/development/interpreters/php/5.3.nix b/pkgs/development/interpreters/php/5.3.nix index 014ce9d3b97..56265fda55d 100644 --- a/pkgs/development/interpreters/php/5.3.nix +++ b/pkgs/development/interpreters/php/5.3.nix @@ -1,6 +1,7 @@ { stdenv, fetchurl, composableDerivation, autoconf, automake, flex, bison , apacheHttpd, mysql, libxml2, readline, zlib, curl, gd, postgresql, gettext -, openssl, pkgconfig, sqlite, config, libiconv, libjpeg, libpng, freetype }: +, openssl, pkgconfig, sqlite, config, libiconv, libjpeg, libpng, freetype +, libmcrypt, icu }: composableDerivation.composableDerivation {} ( fixed : let inherit (fixed.fixed) version; in { @@ -110,6 +111,20 @@ composableDerivation.composableDerivation {} ( fixed : let inherit (fixed.fixed) buildInputs = [gettext]; }; + mcrypt = { + configureFlags = ["--with-mcrypt=${libmcrypt}"]; + buildInputs = [libmcrypt]; + }; + + intl = { + configureFlags = ["--enable-intl"]; + buildInputs = [icu]; + }; + + exif = { + configureFlags = ["--enable-exif"]; + }; + /* php is build within this derivation in order to add the xdebug lines to the php.ini. So both Apache and command line php both use xdebug without having to configure anything. @@ -141,12 +156,15 @@ composableDerivation.composableDerivation {} ( fixed : let inherit (fixed.fixed) opensslSupport = config.php.openssl or true; mbstringSupport = config.php.mbstring or true; gdSupport = config.php.gd or true; + mcryptSupport = config.php.mcrypt or true; + intlSupport = config.php.intl or true; + exifSupport = config.php.exif or true; }; configurePhase = '' iniFile=$out/etc/php-recommended.ini [[ -z "$libxml2" ]] || export PATH=$PATH:$libxml2/bin - ./configure --with-config-file-scan-dir=/etc --with-config-file-path=$out/etc --prefix=$out $configureFlags + ./configure --with-config-file-scan-dir=/etc --with-config-file-path=$out/etc --prefix=$out $configureFlags echo configurePhase end ''; From b42ba898e13ba3f4650f8225785169294b11fe9a Mon Sep 17 00:00:00 2001 From: Baptist BENOIST Date: Sun, 10 Feb 2013 18:29:08 +0100 Subject: [PATCH 02/89] php: Add xsl optional support Use an override with xsl = true to enable xsl support in php. --- pkgs/development/interpreters/php/5.3.nix | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/pkgs/development/interpreters/php/5.3.nix b/pkgs/development/interpreters/php/5.3.nix index 014ce9d3b97..ff136329d60 100644 --- a/pkgs/development/interpreters/php/5.3.nix +++ b/pkgs/development/interpreters/php/5.3.nix @@ -1,6 +1,7 @@ { stdenv, fetchurl, composableDerivation, autoconf, automake, flex, bison , apacheHttpd, mysql, libxml2, readline, zlib, curl, gd, postgresql, gettext -, openssl, pkgconfig, sqlite, config, libiconv, libjpeg, libpng, freetype }: +, openssl, pkgconfig, sqlite, config, libiconv, libjpeg, libpng, freetype +, libxslt }: composableDerivation.composableDerivation {} ( fixed : let inherit (fixed.fixed) version; in { @@ -110,6 +111,11 @@ composableDerivation.composableDerivation {} ( fixed : let inherit (fixed.fixed) buildInputs = [gettext]; }; + xsl = { + configureFlags = ["--with-xsl=${libxslt}"]; + buildInputs = [libxslt]; + }; + /* php is build within this derivation in order to add the xdebug lines to the php.ini. So both Apache and command line php both use xdebug without having to configure anything. @@ -141,6 +147,7 @@ composableDerivation.composableDerivation {} ( fixed : let inherit (fixed.fixed) opensslSupport = config.php.openssl or true; mbstringSupport = config.php.mbstring or true; gdSupport = config.php.gd or true; + xslSupport = config.php.xsl or false; }; configurePhase = '' From 8fd5fcbda5dd87966265813c08ab19d28bb9723a Mon Sep 17 00:00:00 2001 From: bbenoist Date: Tue, 12 Feb 2013 19:33:39 +0100 Subject: [PATCH 03/89] php: Add mcrypt optional support Use an override with mcrypt = true to enable libmcrypt support in php. The --disable-posix-threadsds mcrypt build option was required by php. --- pkgs/development/interpreters/php/5.3.nix | 12 +++++++++++- pkgs/development/libraries/libmcrypt/default.nix | 9 ++++++++- 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/pkgs/development/interpreters/php/5.3.nix b/pkgs/development/interpreters/php/5.3.nix index ff136329d60..7d51a74020f 100644 --- a/pkgs/development/interpreters/php/5.3.nix +++ b/pkgs/development/interpreters/php/5.3.nix @@ -1,7 +1,11 @@ { stdenv, fetchurl, composableDerivation, autoconf, automake, flex, bison , apacheHttpd, mysql, libxml2, readline, zlib, curl, gd, postgresql, gettext , openssl, pkgconfig, sqlite, config, libiconv, libjpeg, libpng, freetype -, libxslt }: +, libxslt, libmcrypt }: + +let + libmcryptOverride = libmcrypt.override { disablePosixThreads = true; }; +in composableDerivation.composableDerivation {} ( fixed : let inherit (fixed.fixed) version; in { @@ -116,6 +120,11 @@ composableDerivation.composableDerivation {} ( fixed : let inherit (fixed.fixed) buildInputs = [libxslt]; }; + mcrypt = { + configureFlags = ["--with-mcrypt=${libmcrypt}"]; + buildInputs = [libmcryptOverride]; + }; + /* php is build within this derivation in order to add the xdebug lines to the php.ini. So both Apache and command line php both use xdebug without having to configure anything. @@ -148,6 +157,7 @@ composableDerivation.composableDerivation {} ( fixed : let inherit (fixed.fixed) mbstringSupport = config.php.mbstring or true; gdSupport = config.php.gd or true; xslSupport = config.php.xsl or false; + mcryptSupport = config.php.mcrypt or false; }; configurePhase = '' diff --git a/pkgs/development/libraries/libmcrypt/default.nix b/pkgs/development/libraries/libmcrypt/default.nix index eac577869e2..79019cbc489 100644 --- a/pkgs/development/libraries/libmcrypt/default.nix +++ b/pkgs/development/libraries/libmcrypt/default.nix @@ -1,4 +1,6 @@ -{ stdenv, fetchurl }: +{ stdenv, fetchurl, disablePosixThreads ? false }: + +with stdenv.lib; stdenv.mkDerivation rec { name = "libmcrypt-2.5.8"; @@ -10,7 +12,12 @@ stdenv.mkDerivation rec { buildInputs = []; + configureFlags = optional disablePosixThreads + [ "--disable-posix-threads" ]; + meta = { + description = "MCrypt is a replacement for the old crypt() package and crypt(1) command, with extensions."; homepage = http://mcrypt.sourceforge.net; + license = "GPL"; }; } From 99934eb36378d22d793cc86103544278a25922f6 Mon Sep 17 00:00:00 2001 From: bbenoist Date: Tue, 12 Feb 2013 21:23:24 +0100 Subject: [PATCH 04/89] php: Add zip and optional bz2 support Use the overload bz2 = true to enable bz2 support for php. zip support is enabled by default as it doesn't require any library. --- pkgs/development/interpreters/php/5.3.nix | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/pkgs/development/interpreters/php/5.3.nix b/pkgs/development/interpreters/php/5.3.nix index 7d51a74020f..7a243e88971 100644 --- a/pkgs/development/interpreters/php/5.3.nix +++ b/pkgs/development/interpreters/php/5.3.nix @@ -1,7 +1,7 @@ { stdenv, fetchurl, composableDerivation, autoconf, automake, flex, bison , apacheHttpd, mysql, libxml2, readline, zlib, curl, gd, postgresql, gettext , openssl, pkgconfig, sqlite, config, libiconv, libjpeg, libpng, freetype -, libxslt, libmcrypt }: +, libxslt, libmcrypt, bzip2 }: let libmcryptOverride = libmcrypt.override { disablePosixThreads = true; }; @@ -125,6 +125,15 @@ composableDerivation.composableDerivation {} ( fixed : let inherit (fixed.fixed) buildInputs = [libmcryptOverride]; }; + bz2 = { + configureFlags = ["--with-bz2=${bzip2}"]; + buildInputs = [bzip2]; + }; + + zip = { + configureFlags = ["--enable-zip"]; + }; + /* php is build within this derivation in order to add the xdebug lines to the php.ini. So both Apache and command line php both use xdebug without having to configure anything. @@ -158,6 +167,8 @@ composableDerivation.composableDerivation {} ( fixed : let inherit (fixed.fixed) gdSupport = config.php.gd or true; xslSupport = config.php.xsl or false; mcryptSupport = config.php.mcrypt or false; + bz2Support = config.php.bz2 or false; + zipSupport = config.php.zip or true; }; configurePhase = '' From fec1d4b2f7070d92d4c28732b43d0d4d0a1ff5aa Mon Sep 17 00:00:00 2001 From: Alexander Foremny Date: Fri, 22 Feb 2013 09:24:48 +0100 Subject: [PATCH 05/89] Remove misconfigured mcrypt support --- pkgs/development/interpreters/php/5.3.nix | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/pkgs/development/interpreters/php/5.3.nix b/pkgs/development/interpreters/php/5.3.nix index 56265fda55d..a262ad75b8b 100644 --- a/pkgs/development/interpreters/php/5.3.nix +++ b/pkgs/development/interpreters/php/5.3.nix @@ -1,7 +1,7 @@ { stdenv, fetchurl, composableDerivation, autoconf, automake, flex, bison , apacheHttpd, mysql, libxml2, readline, zlib, curl, gd, postgresql, gettext , openssl, pkgconfig, sqlite, config, libiconv, libjpeg, libpng, freetype -, libmcrypt, icu }: +, icu }: composableDerivation.composableDerivation {} ( fixed : let inherit (fixed.fixed) version; in { @@ -111,11 +111,6 @@ composableDerivation.composableDerivation {} ( fixed : let inherit (fixed.fixed) buildInputs = [gettext]; }; - mcrypt = { - configureFlags = ["--with-mcrypt=${libmcrypt}"]; - buildInputs = [libmcrypt]; - }; - intl = { configureFlags = ["--enable-intl"]; buildInputs = [icu]; @@ -156,7 +151,6 @@ composableDerivation.composableDerivation {} ( fixed : let inherit (fixed.fixed) opensslSupport = config.php.openssl or true; mbstringSupport = config.php.mbstring or true; gdSupport = config.php.gd or true; - mcryptSupport = config.php.mcrypt or true; intlSupport = config.php.intl or true; exifSupport = config.php.exif or true; }; From 8f1756e2d417bce5b5b457af2e37f44321483e79 Mon Sep 17 00:00:00 2001 From: Peter Simons Date: Mon, 25 Feb 2013 02:12:42 +0100 Subject: [PATCH 06/89] git: update to version 1.8.1.3 --- .../version-management/git-and-tools/git/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/version-management/git-and-tools/git/default.nix b/pkgs/applications/version-management/git-and-tools/git/default.nix index 87fa119252c..2f293c317d3 100644 --- a/pkgs/applications/version-management/git-and-tools/git/default.nix +++ b/pkgs/applications/version-management/git-and-tools/git/default.nix @@ -10,7 +10,7 @@ let - version = "1.8.1"; + version = "1.8.1.3"; svn = subversionClient.override { perlBindings = true; }; @@ -21,7 +21,7 @@ stdenv.mkDerivation { src = fetchurl { url = "http://git-core.googlecode.com/files/git-${version}.tar.gz"; - sha1 = "wfj2pbqf9l56014dm330wb13qgcwx3dc"; + sha256 = "1waz35cwgcwhgmgzmc4s00yd2vivhy77p49crgqsl0nqpxyj8lrp"; }; patches = [ ./docbook2texi.patch ]; From 7783c274fd207a5910c17aafdb8c8227e05bb63d Mon Sep 17 00:00:00 2001 From: Shea Levy Date: Sun, 24 Feb 2013 20:26:28 -0500 Subject: [PATCH 07/89] Add smartdc nodePackage (and its many dependencies) --- pkgs/top-level/node-packages.nix | 199 ++++++++++++++++++++++++++++++- 1 file changed, 196 insertions(+), 3 deletions(-) diff --git a/pkgs/top-level/node-packages.nix b/pkgs/top-level/node-packages.nix index 083fb573087..07d27bb44bc 100644 --- a/pkgs/top-level/node-packages.nix +++ b/pkgs/top-level/node-packages.nix @@ -17,10 +17,10 @@ let self = { "abbrev" = self."abbrev-1"; "abbrev-1" = self.buildNodePackage rec { - name = "abbrev-1.0.3"; + name = "abbrev-1.0.4"; src = fetchurl { url = "http://registry.npmjs.org/abbrev/-/${name}.tgz"; - sha256 = "d444c07f411418828a5e81ac85569afe638e6441a562086faa0209ec7bdf55f2"; + sha256 = "8dc0f480571a4a19e74f1abd4f31f6a70f94953d1ccafa16ed1a544a19a6f3a8"; }; deps = [ @@ -53,6 +53,19 @@ let self = { ]; }; + "asn1" = self."asn1-0.1.11"; + + "asn1-0.1.11" = self.buildNodePackage rec { + name = "asn1-0.1.11"; + src = fetchurl { + url = "http://registry.npmjs.org/asn1/-/${name}.tgz"; + sha256 = "7206eadc8a9344e484bcce979e22a12c9fa64c1395aa0544b8b767808b268f43"; + }; + deps = [ + + ]; + }; + "async" = self."async-0.1.22"; "async-0.1.22" = self.buildNodePackage rec { @@ -148,6 +161,32 @@ let self = { ]; }; + "bunyan" = self."bunyan-0.8.0"; + + "bunyan-0.8.0" = self.buildNodePackage rec { + name = "bunyan-0.8.0"; + src = fetchurl { + url = "http://registry.npmjs.org/bunyan/-/${name}.tgz"; + sha256 = "059b8948dd34d371d39aa87227d26d62180c365afeb6625c07187c8f0ad29f27"; + }; + deps = [ + + ]; + }; + + "byline" = self."byline-2.0.2"; + + "byline-2.0.2" = self.buildNodePackage rec { + name = "byline-2.0.2"; + src = fetchurl { + url = "http://registry.npmjs.org/byline/-/${name}.tgz"; + sha256 = "a916ffde5ee385f7d682c13028907a96fe33cdeed6d72cea903d09fb154dae50"; + }; + deps = [ + + ]; + }; + "bytes" = self."bytes-0.1.0"; "bytes-0.1.0" = self.buildNodePackage rec { @@ -299,6 +338,30 @@ let self = { ]; }; + "ctype" = self."ctype->=0.0.2"; + + "ctype->=0.0.2" = self.buildNodePackage rec { + name = "ctype-0.5.2"; + src = fetchurl { + url = "http://registry.npmjs.org/ctype/-/${name}.tgz"; + sha256 = "4a7224a74f19dc6a1206fa1c04ae1a4ab795cd4ba842466e2f511fa714f82c60"; + }; + deps = [ + + ]; + }; + + "ctype-0.5.0" = self.buildNodePackage rec { + name = "ctype-0.5.0"; + src = fetchurl { + url = "http://registry.npmjs.org/ctype/-/${name}.tgz"; + sha256 = "50157e6c5e44d1c833bfc239a7a337ee08fd6f3c5a15f7ef5cee5571a86b0378"; + }; + deps = [ + + ]; + }; + "datetime" = self."datetime-0.0.3"; "datetime-0.0.3" = self.buildNodePackage rec { @@ -338,6 +401,19 @@ let self = { ]; }; + "dtrace-provider" = self."dtrace-provider-0.0.6"; + + "dtrace-provider-0.0.6" = self.buildNodePackage rec { + name = "dtrace-provider-0.0.6"; + src = fetchurl { + url = "http://registry.npmjs.org/dtrace-provider/-/${name}.tgz"; + sha256 = "ce48363aefa9e8afb3c8e8e5ce8d321a5d5a7eecbb28eaa997c48c5e9d502508"; + }; + deps = [ + + ]; + }; + "escape-html" = self."escape-html-0.0.1"; "escape-html-0.0.1" = self.buildNodePackage rec { @@ -478,6 +554,20 @@ let self = { ]; }; + "http-signature" = self."http-signature-0.9.9"; + + "http-signature-0.9.9" = self.buildNodePackage rec { + name = "http-signature-0.9.9"; + src = fetchurl { + url = "http://registry.npmjs.org/http-signature/-/${name}.tgz"; + sha256 = "c1e193f1195028f2cc8a8f402c7755fc215552a81f6bebbdf6f21de9390a438e"; + }; + deps = [ + self."asn1-0.1.11" + self."ctype-0.5.0" + ]; + }; + "inherits" = self."inherits-1.0.0"; "inherits-1" = self."inherits-1.0.0"; "inherits-1.x" = self."inherits-1.0.0"; @@ -535,6 +625,17 @@ let self = { "lru-cache" = self."lru-cache-~2.0.0"; + "lru-cache-1.1.0" = self.buildNodePackage rec { + name = "lru-cache-1.1.0"; + src = fetchurl { + url = "http://registry.npmjs.org/lru-cache/-/${name}.tgz"; + sha256 = "735898f87ba800d6f2f3517ab92b631f03976c9d3fbaedb6ce357cfe3813ee8b"; + }; + deps = [ + + ]; + }; + "lru-cache-~2.0.0" = self.buildNodePackage rec { name = "lru-cache-2.0.1"; src = fetchurl { @@ -550,6 +651,17 @@ let self = { "mime->= 0.0.1" = self."mime-*"; + "mime-1.2.5" = self.buildNodePackage rec { + name = "mime-1.2.5"; + src = fetchurl { + url = "http://registry.npmjs.org/mime/-/${name}.tgz"; + sha256 = "ccf05a6c47146e8acb9d0671eee09d2eb077cf9ddd1f7e8eccf49dbf969d6c72"; + }; + deps = [ + + ]; + }; + "mime-1.2.6" = self.buildNodePackage rec { name = "mime-1.2.6"; src = fetchurl { @@ -678,6 +790,17 @@ let self = { "nopt" = self."nopt-2"; + "nopt-1.0.10" = self.buildNodePackage rec { + name = "nopt-1.0.10"; + src = fetchurl { + url = "http://registry.npmjs.org/nopt/-/${name}.tgz"; + sha256 = "426562943bfbbfc059eac83575ade5b78c6c01e5c1000a90a7defecfe2334927"; + }; + deps = [ + self."abbrev-1" + ]; + }; + "nopt-2" = self.buildNodePackage rec { name = "nopt-2.0.0"; src = fetchurl { @@ -911,6 +1034,43 @@ let self = { ]; }; + "restify" = self."restify-1.4.3"; + + "restify-1.4.3" = self.buildNodePackage rec { + name = "restify-1.4.3"; + src = fetchurl { + url = "http://registry.npmjs.org/restify/-/${name}.tgz"; + sha256 = "7c95b1e58d6effab3b947409892a20260b6d1142aefec9c3eb1e46165363d64e"; + }; + deps = [ + self."async-0.1.22" + self."bunyan-0.8.0" + self."byline-2.0.2" + self."formidable-1.0.11" + self."dtrace-provider-0.0.6" + self."http-signature-0.9.9" + self."lru-cache-1.1.0" + self."mime-1.2.5" + self."node-uuid-1.3.3" + self."qs-0.5.0" + self."retry-0.6.0" + self."semver-1.0.14" + ]; + }; + + "retry" = self."retry-0.6.0"; + + "retry-0.6.0" = self.buildNodePackage rec { + name = "retry-0.6.0"; + src = fetchurl { + url = "http://registry.npmjs.org/retry/-/${name}.tgz"; + sha256 = "983e676af24ff4dcbac396420fca3c195ce3b1de5f731f697888b4fe6b7bbd2a"; + }; + deps = [ + + ]; + }; + "rimraf" = self."rimraf-2"; "rimraf-2" = self.buildNodePackage rec { @@ -926,7 +1086,9 @@ let self = { "semver" = self."semver-1"; - "semver-1" = self.buildNodePackage rec { + "semver-1" = self."semver-1.0.14"; + + "semver-1.0.14" = self.buildNodePackage rec { name = "semver-1.0.14"; src = fetchurl { url = "http://registry.npmjs.org/semver/-/${name}.tgz"; @@ -966,6 +1128,37 @@ let self = { ]; }; + "smartdc" = self."smartdc-*"; + + "smartdc-*" = self.buildNodePackage rec { + name = "smartdc-6.5.6"; + src = fetchurl { + url = "http://registry.npmjs.org/smartdc/-/${name}.tgz"; + sha256 = "a5d7ba965a863a411b52f0321a9fa1be350cb6af807175beb16529e4282dff4d"; + }; + deps = [ + self."http-signature-0.9.9" + self."lru-cache-1.1.0" + self."nopt-1.0.10" + self."restify-1.4.3" + self."bunyan-0.8.0" + self."ssh-agent-0.1.0" + ]; + }; + + "ssh-agent" = self."ssh-agent-0.1.0"; + + "ssh-agent-0.1.0" = self.buildNodePackage rec { + name = "ssh-agent-0.1.0"; + src = fetchurl { + url = "http://registry.npmjs.org/ssh-agent/-/${name}.tgz"; + sha256 = "62860d09a84d0bf1250d8c90aae3d0a922a7812591a9f4243330178774eb87b5"; + }; + deps = [ + self."ctype->=0.0.2" + ]; + }; + "socket.io" = self."socket.io-0.9.6"; "socket.io-0.9.6" = self.buildNodePackage rec { From 167a1c597b680f8f3f3edc2088a915cc83a057b6 Mon Sep 17 00:00:00 2001 From: Rickard Nilsson Date: Mon, 25 Feb 2013 11:39:19 +0100 Subject: [PATCH 08/89] Add apache-activemq 5.8.0, a Java message broker. --- .../libraries/apache-activemq/default.nix | 33 +++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 ++ 2 files changed, 35 insertions(+) create mode 100644 pkgs/development/libraries/apache-activemq/default.nix diff --git a/pkgs/development/libraries/apache-activemq/default.nix b/pkgs/development/libraries/apache-activemq/default.nix new file mode 100644 index 00000000000..f32d8ea9c74 --- /dev/null +++ b/pkgs/development/libraries/apache-activemq/default.nix @@ -0,0 +1,33 @@ +{ stdenv, fetchurl }: + +stdenv.mkDerivation rec { + name = "apache-activemq-${version}"; + version = "5.8.0"; + + src = fetchurl { + url = "mirror://apache/activemq/apache-activemq/${version}/${name}-bin.tar.gz"; + sha256 = "12a1lmmqapviqdgw307jm07vw1z5q53r56pkbp85w9wnqwspjrbk"; + }; + + phases = [ "unpackPhase" "installPhase" ]; + + installPhase = '' + ensureDir $out + mv LICENSE lib $out/ + for j in `find $out/lib -name "*.jar"`; do + cp="''${cp:+"$cp:"}$j"; + done + echo "CLASSPATH=$cp" > $out/lib/classpath.env + ''; + + meta = { + homepage = http://activemq.apache.org/; + description = '' + Messaging and Integration Patterns server written in Java. + This nixpkg supplies the jar-files packaged in activemq's + binary distribution. + ''; + license = stdenv.lib.licenses.asl20; + }; + +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 308d5cdca9b..e721388ecde 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -3395,6 +3395,8 @@ let acl = callPackage ../development/libraries/acl { }; + activemq = callPackage ../development/libraries/apache-activemq { }; + adns = callPackage ../development/libraries/adns { }; afflib = callPackage ../development/libraries/afflib {}; From d380c264c373edcf7c6d5ac2eb5eac4271e8ffda Mon Sep 17 00:00:00 2001 From: Shea Levy Date: Mon, 25 Feb 2013 06:16:32 -0500 Subject: [PATCH 09/89] Add ruby-2.0.0-p0 --- .../interpreters/ruby/ruby-2.0.nix | 57 +++++++++++++++++++ pkgs/top-level/all-packages.nix | 1 + 2 files changed, 58 insertions(+) create mode 100644 pkgs/development/interpreters/ruby/ruby-2.0.nix diff --git a/pkgs/development/interpreters/ruby/ruby-2.0.nix b/pkgs/development/interpreters/ruby/ruby-2.0.nix new file mode 100644 index 00000000000..7c47bac0bbb --- /dev/null +++ b/pkgs/development/interpreters/ruby/ruby-2.0.nix @@ -0,0 +1,57 @@ +{ stdenv, fetchurl +, zlib, zlibSupport ? true +, openssl, opensslSupport ? true +, gdbm, gdbmSupport ? true +, ncurses, readline, cursesSupport ? false +, groff, docSupport ? false +, libyaml, yamlSupport ? true +}: + +let + op = stdenv.lib.optional; + ops = stdenv.lib.optionals; +in + +stdenv.mkDerivation rec { + version = with passthru; "${majorVersion}.${minorVersion}-p${patchLevel}"; + + name = "ruby-${version}"; + + src = fetchurl { + url = "ftp://ftp.ruby-lang.org/pub/ruby/2.0/${name}.tar.bz2"; + sha256 = "0pr9jf01cfap93xcngyd5zpns67ffjsgaxkm0qr1r464rj9d7066"; + }; + + # Have `configure' avoid `/usr/bin/nroff' in non-chroot builds. + NROFF = "${groff}/bin/nroff"; + + buildInputs = (ops cursesSupport [ ncurses readline ] ) + ++ (op docSupport groff ) + ++ (op zlibSupport zlib) + ++ (op opensslSupport openssl) + ++ (op gdbmSupport gdbm) + ++ (op yamlSupport libyaml); + + enableParallelBuilding = true; + + configureFlags = ["--enable-shared" ]; + + installFlags = stdenv.lib.optionalString docSupport "install-doc"; + # Bundler tries to create this directory + postInstall = "mkdir -pv $out/${passthru.gemPath}"; + + meta = { + license = "Ruby"; + homepage = "http://www.ruby-lang.org/en/"; + description = "The Ruby language"; + platforms = stdenv.lib.platforms.all; + }; + + passthru = rec { + majorVersion = "2.0"; + minorVersion = "0"; + patchLevel = "0"; + libPath = "lib/ruby/${majorVersion}"; + gemPath = "lib/ruby/gems/${majorVersion}"; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index e721388ecde..4d2ff8589f4 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -2905,6 +2905,7 @@ let ruby18 = callPackage ../development/interpreters/ruby/ruby-18.nix { }; ruby19 = callPackage ../development/interpreters/ruby/ruby-19.nix { }; + ruby2 = lowPrio (callPackage ../development/interpreters/ruby/ruby-2.0.nix { }); ruby = ruby19; From 879c87d7fe23c2c869e02f476d4a905859d4edb1 Mon Sep 17 00:00:00 2001 From: Shea Levy Date: Mon, 25 Feb 2013 06:31:19 -0500 Subject: [PATCH 10/89] Fix hiPrio. Did this ever work? --- pkgs/lib/meta.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/lib/meta.nix b/pkgs/lib/meta.nix index 0c5841dd717..a5afce9e0cb 100644 --- a/pkgs/lib/meta.nix +++ b/pkgs/lib/meta.nix @@ -43,6 +43,6 @@ rec { /* Increase the nix-env priority of the package, i.e., this version/variant of the package will be preferred. */ - hiPrio = drv: addMetaAttrs { priority = "110"; } drv; + hiPrio = drv: addMetaAttrs { priority = "-10"; } drv; } From 5d1525562211d2d9e784ef2f766d5807ae5469b2 Mon Sep 17 00:00:00 2001 From: Peter Simons Date: Mon, 25 Feb 2013 15:25:24 +0100 Subject: [PATCH 11/89] haskell-github: add version 0.5.0 --- .../libraries/haskell/github/default.nix | 20 +++++++++++++++++++ pkgs/top-level/haskell-packages.nix | 2 ++ 2 files changed, 22 insertions(+) create mode 100644 pkgs/development/libraries/haskell/github/default.nix diff --git a/pkgs/development/libraries/haskell/github/default.nix b/pkgs/development/libraries/haskell/github/default.nix new file mode 100644 index 00000000000..461780c1853 --- /dev/null +++ b/pkgs/development/libraries/haskell/github/default.nix @@ -0,0 +1,20 @@ +{ cabal, aeson, attoparsec, caseInsensitive, conduit, dataDefault +, failure, HTTP, httpConduit, httpTypes, network, text, time +, unorderedContainers, vector +}: + +cabal.mkDerivation (self: { + pname = "github"; + version = "0.5.0"; + sha256 = "1zq9cwvpd6s8xd1ki2ifsj79vd4rm8vab9731f2p8zdm8g7mh5gd"; + buildDepends = [ + aeson attoparsec caseInsensitive conduit dataDefault failure HTTP + httpConduit httpTypes network text time unorderedContainers vector + ]; + meta = { + homepage = "https://github.com/mike-burns/github"; + description = "Access to the Github API, v3"; + license = self.stdenv.lib.licenses.bsd3; + platforms = self.ghc.meta.platforms; + }; +}) diff --git a/pkgs/top-level/haskell-packages.nix b/pkgs/top-level/haskell-packages.nix index 273cd940316..7501042d247 100644 --- a/pkgs/top-level/haskell-packages.nix +++ b/pkgs/top-level/haskell-packages.nix @@ -871,6 +871,8 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y); gio = callPackage ../development/libraries/haskell/gio {}; + github = callPackage ../development/libraries/haskell/github {}; + gitit = callPackage ../development/libraries/haskell/gitit {}; glade = callPackage ../development/libraries/haskell/glade { From 8f1c029e33557af24056fdf47c5afb5d6035dcfa Mon Sep 17 00:00:00 2001 From: Peter Simons Date: Mon, 25 Feb 2013 15:25:43 +0100 Subject: [PATCH 12/89] haskell-github-backup: add version 1.20120627 --- .../git-and-tools/github-backup/default.nix | 22 +++++++++++++++++++ pkgs/top-level/haskell-packages.nix | 2 ++ 2 files changed, 24 insertions(+) create mode 100644 pkgs/applications/version-management/git-and-tools/github-backup/default.nix diff --git a/pkgs/applications/version-management/git-and-tools/github-backup/default.nix b/pkgs/applications/version-management/git-and-tools/github-backup/default.nix new file mode 100644 index 00000000000..27aa09dc397 --- /dev/null +++ b/pkgs/applications/version-management/git-and-tools/github-backup/default.nix @@ -0,0 +1,22 @@ +{ cabal, extensibleExceptions, filepath, github, hslogger, IfElse +, MissingH, mtl, network, prettyShow +}: + +cabal.mkDerivation (self: { + pname = "github-backup"; + version = "1.20120627"; + sha256 = "1nq5zj821idvcqybyxkpkma544ci30k2sr8jhp7f2bpa97yidn3k"; + isLibrary = false; + isExecutable = true; + buildDepends = [ + extensibleExceptions filepath github hslogger IfElse MissingH mtl + network prettyShow + ]; + meta = { + homepage = "https://github.com/joeyh/github-backup"; + description = "backs up everything github knows about a repository, to the repository"; + license = "GPL"; + platforms = self.ghc.meta.platforms; + maintainers = [ self.stdenv.lib.maintainers.simons ]; + }; +}) diff --git a/pkgs/top-level/haskell-packages.nix b/pkgs/top-level/haskell-packages.nix index 7501042d247..a65993c297a 100644 --- a/pkgs/top-level/haskell-packages.nix +++ b/pkgs/top-level/haskell-packages.nix @@ -2079,6 +2079,8 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y); cabalInstall_1_16_0_2 = callPackage ../tools/package-management/cabal-install/1.16.0.2.nix {}; cabalInstall = self.cabalInstall_1_16_0_2; + githubBackup = callPackage ../applications/version-management/git-and-tools/github-backup {}; + jailbreakCabal = callPackage ../development/tools/haskell/jailbreak-cabal {}; lhs2tex = callPackage ../tools/typesetting/lhs2tex {}; From d1e614ad73ac0a1fe2b3b2183bbb3bfcc938ad11 Mon Sep 17 00:00:00 2001 From: Rickard Nilsson Date: Mon, 25 Feb 2013 16:47:19 +0100 Subject: [PATCH 13/89] activemq: Copy everything from the dist to the store --- pkgs/development/libraries/apache-activemq/default.nix | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/pkgs/development/libraries/apache-activemq/default.nix b/pkgs/development/libraries/apache-activemq/default.nix index f32d8ea9c74..90d0dafdd95 100644 --- a/pkgs/development/libraries/apache-activemq/default.nix +++ b/pkgs/development/libraries/apache-activemq/default.nix @@ -13,7 +13,7 @@ stdenv.mkDerivation rec { installPhase = '' ensureDir $out - mv LICENSE lib $out/ + mv * $out/ for j in `find $out/lib -name "*.jar"`; do cp="''${cp:+"$cp:"}$j"; done @@ -24,8 +24,6 @@ stdenv.mkDerivation rec { homepage = http://activemq.apache.org/; description = '' Messaging and Integration Patterns server written in Java. - This nixpkg supplies the jar-files packaged in activemq's - binary distribution. ''; license = stdenv.lib.licenses.asl20; }; From f6460facd682a5aee2973981aa8af7abfb27d2f2 Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Mon, 25 Feb 2013 18:12:00 +0100 Subject: [PATCH 14/89] Catalyst::Plugin::Static::Simple: Add ETag support This should keep browsers from caching Hydra's static files for too long. --- .../catalyst-plugin-static-simple-etag.patch | 29 +++++++++++++++++++ pkgs/top-level/perl-packages.nix | 1 + 2 files changed, 30 insertions(+) create mode 100644 pkgs/development/perl-modules/catalyst-plugin-static-simple-etag.patch diff --git a/pkgs/development/perl-modules/catalyst-plugin-static-simple-etag.patch b/pkgs/development/perl-modules/catalyst-plugin-static-simple-etag.patch new file mode 100644 index 00000000000..6433cf29663 --- /dev/null +++ b/pkgs/development/perl-modules/catalyst-plugin-static-simple-etag.patch @@ -0,0 +1,29 @@ +Send an ETag header, and honour the If-None-Match request header + +diff -ru -x '*~' Catalyst-Plugin-Static-Simple-0.30-orig/lib/Catalyst/Plugin/Static/Simple.pm Catalyst-Plugin-Static-Simple-0.30/lib/Catalyst/Plugin/Static/Simple.pm +--- Catalyst-Plugin-Static-Simple-0.30-orig/lib/Catalyst/Plugin/Static/Simple.pm 2012-05-04 18:49:30.000000000 +0200 ++++ Catalyst-Plugin-Static-Simple-0.30/lib/Catalyst/Plugin/Static/Simple.pm 2013-02-25 18:05:08.466813337 +0100 +@@ -187,11 +187,21 @@ + my $type = $c->_ext_to_type( $full_path ); + my $stat = stat $full_path; + ++ # Tell Firefox & friends its OK to cache, even over SSL: ++ #$c->res->headers->header('Cache-control' => 'public'); ++ ++ if ($config->{send_etag}) { ++ my $etag = '"' . $stat->mtime . '-' . $stat->ino . '-'. $stat->size . '"'; ++ $c->res->headers->header('ETag' => $etag); ++ if (($c->req->header('If-None-Match') // "") eq $etag) { ++ $c->res->status(304); ++ return 1; ++ } ++ } ++ + $c->res->headers->content_type( $type ); + $c->res->headers->content_length( $stat->size ); + $c->res->headers->last_modified( $stat->mtime ); +- # Tell Firefox & friends its OK to cache, even over SSL: +- $c->res->headers->header('Cache-control' => 'public'); + # Optionally, set a fixed expiry time: + if ($config->{expires}) { + $c->res->headers->expires(time() + $config->{expires}); diff --git a/pkgs/top-level/perl-packages.nix b/pkgs/top-level/perl-packages.nix index a51abf44ff2..0c2bfa1ec0b 100644 --- a/pkgs/top-level/perl-packages.nix +++ b/pkgs/top-level/perl-packages.nix @@ -590,6 +590,7 @@ rec { url = mirror://cpan/authors/id/A/AB/ABRAXXA/Catalyst-Plugin-Static-Simple-0.30.tar.gz; sha256 = "18zar1n4imgnv7b4dr5sxyikry4668ngqgc6f0dr210bqafvwv7w"; }; + patches = [ ../development/perl-modules/catalyst-plugin-static-simple-etag.patch ]; propagatedBuildInputs = [ CatalystRuntime MIMETypes Moose MooseXTypes namespaceautoclean ]; meta = { description = "Make serving static pages painless"; From f5c334e1ab5ab210d18442df0dae8e621a22d400 Mon Sep 17 00:00:00 2001 From: Shea Levy Date: Mon, 25 Feb 2013 12:49:06 -0500 Subject: [PATCH 15/89] Update rubygems --- .../interpreters/ruby/generated.nix | 70 +++++++++++-------- 1 file changed, 41 insertions(+), 29 deletions(-) diff --git a/pkgs/development/interpreters/ruby/generated.nix b/pkgs/development/interpreters/ruby/generated.nix index 68c83a8e78c..186362bf12b 100644 --- a/pkgs/development/interpreters/ruby/generated.nix +++ b/pkgs/development/interpreters/ruby/generated.nix @@ -13,13 +13,14 @@ g: # Get dependencies from patched gems arel = g.arel_3_0_2; atoulme_Antwrap = g.atoulme_Antwrap_0_7_4; autotest_rails = g.autotest_rails_4_1_2; - aws_sdk = g.aws_sdk_1_8_3; - builder = g.builder_3_1_4; + aws_sdk = g.aws_sdk_1_8_3_1; + builder = g.builder_3_2_0; buildr = g.buildr_1_4_10; - bundler = g.bundler_1_2_4; + bundler = g.bundler_1_3_0; childprocess = g.childprocess_0_3_8; daemons = g.daemons_1_1_9; diff_lcs = g.diff_lcs_1_1_3; + dimensions = g.dimensions_1_2_0; erubis = g.erubis_2_7_0; eventmachine = g.eventmachine_1_0_0; fakes3 = g.fakes3_0_1_5; @@ -31,7 +32,7 @@ g: # Get dependencies from patched gems i18n = g.i18n_0_6_1; journey = g.journey_1_0_4; jruby_pageant = g.jruby_pageant_1_1_1; - jsduck = g.jsduck_4_6_1; + jsduck = g.jsduck_4_6_2; json = g.json_1_7_7; json_pure = g.json_pure_1_7_7; libv8 = g.libv8_3_3_10_4_x86_64_linux; @@ -56,7 +57,7 @@ g: # Get dependencies from patched gems rake = g.rake_10_0_3; rb_fsevent = g.rb_fsevent_0_9_3; rdiscount = g.rdiscount_2_0_7; - rdoc = g.rdoc_3_12_1; + rdoc = g.rdoc_3_12_2; rjb = g.rjb_1_4_6; rspec = g.rspec_2_11_0; rspec_core = g.rspec_core_2_11_1; @@ -64,7 +65,7 @@ g: # Get dependencies from patched gems rspec_mocks = g.rspec_mocks_2_11_3; rubyforge = g.rubyforge_2_0_4; rubyzip = g.rubyzip_0_9_9; - sass = g.sass_3_2_5; + sass = g.sass_3_2_6; selenium_webdriver = g.selenium_webdriver_2_30_0; sinatra = g.sinatra_1_3_2; sprockets = g.sprockets_2_2_2; @@ -231,16 +232,16 @@ rails support and extra plugins for migrations and fixtures.''; requiredGems = [ g.ZenTest_4_9_0 ]; sha256 = ''1wkb5jayb39yx0i8ly7sibygf9f9c3w24jg2z1qgm135zlb070v4''; }; - aws_sdk_1_8_3 = { + aws_sdk_1_8_3_1 = { basename = ''aws_sdk''; meta = { description = ''AWS SDK for Ruby''; homepage = ''http://aws.amazon.com/sdkforruby''; longDescription = ''AWS SDK for Ruby''; }; - name = ''aws-sdk-1.8.3''; + name = ''aws-sdk-1.8.3.1''; requiredGems = [ g.uuidtools_2_1_3 g.nokogiri_1_5_6 g.json_1_7_7 ]; - sha256 = ''0ggvwiya4swyjyswfgwhzw09hap2slz7djp0svq22y7j0xci1axy''; + sha256 = ''1yiv2skrrwqw8ihznnqqznh4yax75hbv497xqllp7b5qqmnrpvy4''; }; builder_3_0_4 = { basename = ''builder''; @@ -274,7 +275,7 @@ simple to do. Currently the following builder objects are supported: requiredGems = [ ]; sha256 = ''0w6xsq9vyvzdy0xb52sajgipr9ml2bbpivk6dxm69c6987dk7him''; }; - builder_3_1_4 = { + builder_3_2_0 = { basename = ''builder''; meta = { description = ''Builders for MarkUp.''; @@ -286,9 +287,9 @@ simple to do. Currently the following builder objects are supported: * XML Events ''; }; - name = ''builder-3.1.4''; + name = ''builder-3.2.0''; requiredGems = [ ]; - sha256 = ''1p0bjy1vb0zbswd6bsh5qda0f0br53p8vak8cm7hls62094r405p''; + sha256 = ''0f2cpfx6lpazb1wrz3lf06qp6f0qf0gdq5z8xnhkplc3fz3kslb0''; }; buildr_1_4_10 = { basename = ''buildr''; @@ -303,19 +304,19 @@ for those one-off tasks, with a language that's a joy to use. ''; }; name = ''buildr-1.4.10''; - requiredGems = [ g.rake_0_9_2_2 g.builder_3_1_3 g.net_ssh_2_6_0 g.net_sftp_2_0_5 g.rubyzip_0_9_9 g.highline_1_6_2 g.json_pure_1_7_5 g.rubyforge_2_0_4 g.hoe_3_1_0 g.rjb_1_4_2 g.atoulme_Antwrap_0_7_4 g.diff_lcs_1_1_3 g.rspec_expectations_2_11_3 g.rspec_mocks_2_11_3 g.rspec_core_2_11_1 g.rspec_2_11_0 g.xml_simple_1_1_1 g.minitar_0_5_3 g.bundler_1_2_4 ]; + requiredGems = [ g.rake_0_9_2_2 g.builder_3_1_3 g.net_ssh_2_6_0 g.net_sftp_2_0_5 g.rubyzip_0_9_9 g.highline_1_6_2 g.json_pure_1_7_5 g.rubyforge_2_0_4 g.hoe_3_1_0 g.rjb_1_4_2 g.atoulme_Antwrap_0_7_4 g.diff_lcs_1_1_3 g.rspec_expectations_2_11_3 g.rspec_mocks_2_11_3 g.rspec_core_2_11_1 g.rspec_2_11_0 g.xml_simple_1_1_1 g.minitar_0_5_3 g.bundler_1_3_0 ]; sha256 = ''1x192r8ab5zr9rlp1i9b3pi3y74f9pj2w491wkgshgwj22akh6vn''; }; - bundler_1_2_4 = { + bundler_1_3_0 = { basename = ''bundler''; meta = { description = ''The best way to manage your application's dependencies''; homepage = ''http://gembundler.com''; longDescription = ''Bundler manages an application's dependencies through its entire life, across many machines, systematically and repeatably''; }; - name = ''bundler-1.2.4''; + name = ''bundler-1.3.0''; requiredGems = [ ]; - sha256 = ''0p90abn29wvg6ic1230f4dj7zs55r9r772b0xq02fwqd0ry3pdgl''; + sha256 = ''16ss4fh97wbg5n5l00wkinxdsj7bjgqzv9h6yhygv45wi8rbf8zp''; }; childprocess_0_3_8 = { basename = ''childprocess''; @@ -364,6 +365,17 @@ is the MIT license.''; requiredGems = [ ]; sha256 = ''15wqs3md9slif6ag43vp6gw63r3a2zdqiyfapnnzkb7amgg930pv''; }; + dimensions_1_2_0 = { + basename = ''dimensions''; + meta = { + description = ''Pure Ruby dimension measurement for GIF, PNG, JPEG and TIFF images''; + homepage = ''https://github.com/sstephenson/dimensions''; + longDescription = ''A pure Ruby library for measuring the dimensions and rotation angles of GIF, PNG, JPEG and TIFF images.''; + }; + name = ''dimensions-1.2.0''; + requiredGems = [ ]; + sha256 = ''1pqb7yzjcpbgbyi196ifqbd1wy570cn12bkzcvpcha4xilhajja0''; + }; erubis_2_7_0 = { basename = ''erubis''; meta = { @@ -414,7 +426,7 @@ using TCP/IP, especially if custom protocols are required.''; longDescription = ''Use FakeS3 to test basic S3 functionality without actually connecting to S3''; }; name = ''fakes3-0.1.5''; - requiredGems = [ g.thor_0_17_0 g.builder_3_1_4 ]; + requiredGems = [ g.thor_0_17_0 g.builder_3_2_0 ]; sha256 = ''1na5wrbarla6s414svqmr5spbpv6vmcgpswal444x4clcpmadhib''; }; ffi_1_4_0 = { @@ -518,16 +530,16 @@ For extra goodness, see: http://seattlerb.rubyforge.org/hoe/Hoe.pdf''; requiredGems = [ ]; sha256 = ''1kgqsn0bagr41gf5kbqaxbs38a7s5bm85m0pdx4qz7d70v9nc9cl''; }; - jsduck_4_6_1 = { + jsduck_4_6_2 = { basename = ''jsduck''; meta = { description = ''Simple JavaScript Duckumentation generator''; homepage = ''https://github.com/senchalabs/jsduck''; longDescription = ''Documentation generator for Sencha JS frameworks''; }; - name = ''jsduck-4.6.1''; - requiredGems = [ g.rdiscount_2_0_7 g.json_1_7_7 g.parallel_0_6_2 g.therubyracer_0_10_2 ]; - sha256 = ''01bws3jfsym531znwsd6qjaymf1mrsss1bj8csvj3vhnv728qbyh''; + name = ''jsduck-4.6.2''; + requiredGems = [ g.rdiscount_2_0_7 g.json_1_7_7 g.parallel_0_6_2 g.therubyracer_0_10_2 g.dimensions_1_2_0 ]; + sha256 = ''035w4igfa6yy6234ff4zbiqfjn0bhwqs6k8kji52l7gzgskwmzln''; }; json_1_7_7 = { basename = ''json''; @@ -824,7 +836,7 @@ request helpers feature.''; longDescription = ''Ruby on Rails is a full-stack web framework optimized for programmer happiness and sustainable productivity. It encourages beautiful code by favoring convention over configuration.''; }; name = ''rails-3.2.12''; - requiredGems = [ g.activesupport_3_2_12 g.actionpack_3_2_12 g.activerecord_3_2_12 g.activeresource_3_2_12 g.actionmailer_3_2_12 g.railties_3_2_12 g.bundler_1_2_4 ]; + requiredGems = [ g.activesupport_3_2_12 g.actionpack_3_2_12 g.activerecord_3_2_12 g.activeresource_3_2_12 g.actionmailer_3_2_12 g.railties_3_2_12 g.bundler_1_3_0 ]; sha256 = ''1jjnm74nzl5v3461c0mrbpa471yd6s8hnkmnxb64c2rm95c61wxz''; }; railties_3_2_12 = { @@ -835,7 +847,7 @@ request helpers feature.''; longDescription = ''Rails internals: application bootup, plugins, generators, and rake tasks.''; }; name = ''railties-3.2.12''; - requiredGems = [ g.rake_10_0_3 g.rack_ssl_1_3_3 g.thor_0_17_0 g.rdoc_3_12_1 g.activesupport_3_2_12 g.actionpack_3_2_12 ]; + requiredGems = [ g.rake_10_0_3 g.rack_ssl_1_3_3 g.thor_0_17_0 g.rdoc_3_12_2 g.activesupport_3_2_12 g.actionpack_3_2_12 ]; sha256 = ''0d8wy1n591x12bigj3jh8c9djzi8k68vh14342mc22raxwp5rwdw''; }; rake_0_9_2_2 = { @@ -892,7 +904,7 @@ request helpers feature.''; requiredGems = [ ]; sha256 = ''1cj9dn59xqjaglvzvd1ninid62xmih74az0glqqb90n2p42s2zs1''; }; - rdoc_3_12_1 = { + rdoc_3_12_2 = { basename = ''rdoc''; meta = { description = ''RDoc produces HTML and command-line documentation for Ruby projects''; @@ -903,9 +915,9 @@ documentation. See RDoc for a description of RDoc's markup and basic use.''; }; - name = ''rdoc-3.12.1''; + name = ''rdoc-3.12.2''; requiredGems = [ g.json_1_7_7 ]; - sha256 = ''1hflgw2v0lyx38kdwj71jyibc14j6ghb6zmp2l3g47v7d2m47z4g''; + sha256 = ''1v9k4sp5yzj2bshngckdvivj6bszciskk1nd2r3wri2ygs7vgqm8''; }; rjb_1_4_2 = { basename = ''rjb''; @@ -1003,7 +1015,7 @@ See RDoc for a description of RDoc's markup and basic use.''; requiredGems = [ ]; sha256 = ''1khf6d903agnwd8965f5f8b353rzmfvygxp53z1199rqzw8h46q2''; }; - sass_3_2_5 = { + sass_3_2_6 = { basename = ''sass''; meta = { description = ''A powerful but elegant CSS compiler that makes CSS fun again.''; @@ -1014,9 +1026,9 @@ See RDoc for a description of RDoc's markup and basic use.''; command line tool or a web-framework plugin. ''; }; - name = ''sass-3.2.5''; + name = ''sass-3.2.6''; requiredGems = [ ]; - sha256 = ''1ys7pfadw61dm09yyk28zrssi8zsyj99fyq6bdf2xmi8yp1avs6k''; + sha256 = ''10xy6k663399r881cj30fapbdsrq8jwzvnp97y8n3mhxmrvzpq28''; }; selenium_webdriver_2_30_0 = { basename = ''selenium_webdriver''; From 6fe8fc00cff169dff3f0a25ce7a5f5f1b6236d6f Mon Sep 17 00:00:00 2001 From: Shea Levy Date: Mon, 25 Feb 2013 12:49:37 -0500 Subject: [PATCH 16/89] Add bitbucket-backup rubygem --- .../interpreters/ruby/generated.nix | 31 +++++++++++++++++-- 1 file changed, 29 insertions(+), 2 deletions(-) diff --git a/pkgs/development/interpreters/ruby/generated.nix b/pkgs/development/interpreters/ruby/generated.nix index 186362bf12b..5e3b37490f0 100644 --- a/pkgs/development/interpreters/ruby/generated.nix +++ b/pkgs/development/interpreters/ruby/generated.nix @@ -14,6 +14,7 @@ g: # Get dependencies from patched gems atoulme_Antwrap = g.atoulme_Antwrap_0_7_4; autotest_rails = g.autotest_rails_4_1_2; aws_sdk = g.aws_sdk_1_8_3_1; + bitbucket_backup = g.bitbucket_backup_0_2_2; builder = g.builder_3_2_0; buildr = g.buildr_1_4_10; bundler = g.bundler_1_3_0; @@ -26,7 +27,7 @@ g: # Get dependencies from patched gems fakes3 = g.fakes3_0_1_5; ffi = g.ffi_1_4_0; foreman = g.foreman_0_61_0; - highline = g.highline_1_6_2; + highline = g.highline_1_6_15; hike = g.hike_1_2_1; hoe = g.hoe_3_1_0; i18n = g.i18n_0_6_1; @@ -81,7 +82,7 @@ g: # Get dependencies from patched gems websocket = g.websocket_1_0_7; xml_simple = g.xml_simple_1_1_1; }; - gem_nix_args = [ ''autotest-rails'' ''aws-sdk'' ''buildr'' ''fakes3'' ''foreman'' ''jsduck'' ''nix'' ''rails'' ''rake'' ''rb-fsevent'' ''sass'' ''selenium-webdriver'' ''sinatra-1.3.2'' ''thin'' ''uuid'' ]; + gem_nix_args = [ ''autotest-rails'' ''aws-sdk'' ''bitbucket-backup'' ''buildr'' ''fakes3'' ''foreman'' ''jsduck'' ''nix'' ''rails'' ''rake'' ''rb-fsevent'' ''sass'' ''selenium-webdriver'' ''sinatra-1.3.2'' ''thin'' ''uuid'' ]; gems = { ZenTest_4_9_0 = { basename = ''ZenTest''; @@ -243,6 +244,17 @@ rails support and extra plugins for migrations and fixtures.''; requiredGems = [ g.uuidtools_2_1_3 g.nokogiri_1_5_6 g.json_1_7_7 ]; sha256 = ''1yiv2skrrwqw8ihznnqqznh4yax75hbv497xqllp7b5qqmnrpvy4''; }; + bitbucket_backup_0_2_2 = { + basename = ''bitbucket_backup''; + meta = { + description = ''A tool to backup Bitbucket repos.''; + homepage = ''https://bitbucket.org/seth/bitbucket-backup''; + longDescription = ''A tool to backup Bitbucket repos.''; + }; + name = ''bitbucket-backup-0.2.2''; + requiredGems = [ g.highline_1_6_15 g.json_1_7_7 ]; + sha256 = ''1kzg6pkzw04n96i6mhb74gpg4c899wly5fc2m1y6m2xvn71qksys''; + }; builder_3_0_4 = { basename = ''builder''; meta = { @@ -451,6 +463,21 @@ using TCP/IP, especially if custom protocols are required.''; requiredGems = [ g.thor_0_17_0 ]; sha256 = ''1h9dmzq1cwz87qyzx2ibpjghsxjnnqbh485l3sdxyfh5k3v79k7z''; }; + highline_1_6_15 = { + basename = ''highline''; + meta = { + description = ''HighLine is a high-level command-line IO library.''; + homepage = ''http://highline.rubyforge.org''; + longDescription = ''A high-level IO library that provides validation, type conversion, and more for +command-line interfaces. HighLine also includes a complete menu system that can +crank out anything from simple list selection to complete shells with just +minutes of work. +''; + }; + name = ''highline-1.6.15''; + requiredGems = [ ]; + sha256 = ''1ilwlgylv92md9dnw6hqhrw8hiwk3f4k8qz6airqjp1rq9r594m1''; + }; highline_1_6_2 = { basename = ''highline''; meta = { From e431ec94ad2e4281d7ae516367ef4c9bb6bde69f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Llu=C3=ADs=20Batlle=20i=20Rossell?= Date: Mon, 25 Feb 2013 20:56:11 +0100 Subject: [PATCH 17/89] Making vimprobable2 use the default nixos ca bundle by default --- .../networking/browsers/vimprobable2/default.nix | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/pkgs/applications/networking/browsers/vimprobable2/default.nix b/pkgs/applications/networking/browsers/vimprobable2/default.nix index 46081cac3a7..7fd352ff6f7 100644 --- a/pkgs/applications/networking/browsers/vimprobable2/default.nix +++ b/pkgs/applications/networking/browsers/vimprobable2/default.nix @@ -7,7 +7,14 @@ stdenv.mkDerivation { url = "mirror://sourceforge/vimprobable/vimprobable2_1.2.0.tar.bz2"; sha256 = "0fjakrmz1syjwgx01j2icpdv69jgvfl2nlxbj8zxfr8mw0h2wg1f"; }; + + # Nixos default ca bundle + patchPhase = '' + sed -i s,/etc/ssl/certs/ca-certificates.crt,/etc/ca-bundle.crt, config.h + ''; + buildInputs = [ makeWrapper gtk libsoup libX11 perl pkgconfig webkit ]; + installPhase = '' make PREFIX=/ DESTDIR=$out install wrapProgram "$out/bin/vimprobable2" --prefix GIO_EXTRA_MODULES : \ From a5192222e99232e1f6cf71f1d3e5559220b96fc9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Llu=C3=ADs=20Batlle=20i=20Rossell?= Date: Mon, 25 Feb 2013 21:07:44 +0100 Subject: [PATCH 18/89] surf: updating to 0.6 it didn't work since the libsoup update, and now it doesn't work either. Let's see after fixing libsoup. --- pkgs/applications/misc/surf/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/misc/surf/default.nix b/pkgs/applications/misc/surf/default.nix index 61d2e6a65bd..808a77ef0a0 100644 --- a/pkgs/applications/misc/surf/default.nix +++ b/pkgs/applications/misc/surf/default.nix @@ -2,11 +2,11 @@ stdenv.mkDerivation rec { name = "surf-${version}"; - version="0.5"; + version="0.6"; src = fetchurl { url = "http://dl.suckless.org/surf/surf-${version}.tar.gz"; - sha256 = "19qfkwdk6p5hcwnnplscp1kmypz74mga7x6iqy6w3g18s221f2mx"; + sha256 = "01b8hq8z2wd7ssym5bypx2b15mrs1lhgkrcgxf700kswxvxcrhgx"; }; buildInputs = [ gtk webkit pkgconfig glib libsoup ]; From 7b94139e4fdb0eba413e187df718d1ad616ec0da Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Mon, 25 Feb 2013 22:53:42 +0100 Subject: [PATCH 19/89] Test::WWW::Mechanize::Catalyst: Update to 0.58 --- pkgs/top-level/perl-packages.nix | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/pkgs/top-level/perl-packages.nix b/pkgs/top-level/perl-packages.nix index 0c2bfa1ec0b..b9ae875fc7d 100644 --- a/pkgs/top-level/perl-packages.nix +++ b/pkgs/top-level/perl-packages.nix @@ -656,6 +656,7 @@ rec { meta = { description = "Replace the development server with Starman"; license = "perl"; + platforms = stdenv.lib.platforms.linux; }; }; @@ -4813,18 +4814,18 @@ rec { }; }; - TestWWWMechanizeCatalyst = buildPerlPackage rec { - name = "Test-WWW-Mechanize-Catalyst-0.55"; + TestWWWMechanizeCatalyst = buildPerlPackage { + name = "Test-WWW-Mechanize-Catalyst-0.58"; src = fetchurl { - url = "mirror://cpan/modules/by-module/Test/${name}.tar.gz"; - sha256 = "0zdg4sxx231dj3qgbr58i63927gl4qzh0krignqxp8q6ck3hr63f"; + url = mirror://cpan/authors/id/B/BO/BOBTFISH/Test-WWW-Mechanize-Catalyst-0.58.tar.gz; + sha256 = "1pa2m064skxfwsm93hffxcyky4kcn2q418vnw2fn79ich6wrcijd"; }; - propagatedBuildInputs = - [ CatalystRuntime TestWWWMechanize WWWMechanize - CatalystPluginSessionStateCookie HTMLForm - ]; - buildInputs = [ TestPod ]; doCheck = false; # listens on an external port + propagatedBuildInputs = [ CatalystRuntime LWP Moose namespaceclean TestWWWMechanize WWWMechanize ]; + meta = { + description = "Test::WWW::Mechanize for Catalyst"; + license = "perl"; + }; }; TestWWWMechanizePSGI = buildPerlPackage { From ad1e7be58a2a22747f40d94e2e2dc6b86e429005 Mon Sep 17 00:00:00 2001 From: Rickard Nilsson Date: Mon, 25 Feb 2013 23:35:26 +0100 Subject: [PATCH 20/89] Revert "libsoup: Update to 2.40.3" For some reason, the update to 2.40.3 seems to cause troubles for surf and vimprobable2. This reverts commit 9642adef3222a2cf9f883b97b7c5de6e172ca50b. --- pkgs/development/libraries/libsoup/default.nix | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) diff --git a/pkgs/development/libraries/libsoup/default.nix b/pkgs/development/libraries/libsoup/default.nix index e0c00d07044..87aaafabcc4 100644 --- a/pkgs/development/libraries/libsoup/default.nix +++ b/pkgs/development/libraries/libsoup/default.nix @@ -1,29 +1,23 @@ -{ stdenv, fetchurl, glib, libxml2, pkgconfig, intltool, python +{ stdenv, fetchurl, glib, libxml2, pkgconfig , gnomeSupport ? true, libgnome_keyring, sqlite, glib_networking }: stdenv.mkDerivation { - name = "libsoup-2.40.3"; + name = "libsoup-2.38.1"; src = fetchurl { - url = mirror://gnome/sources/libsoup/2.40/libsoup-2.40.3.tar.xz; - sha256 = "82c92f1f6f4cbfd501df783ed87e7de9410b4a12a3bb0b19c64722e185d2bbc9"; + url = mirror://gnome/sources/libsoup/2.38/libsoup-2.38.1.tar.xz; + sha256 = "16iza4y8pmc4sn90iid88fgminvgcqypy3s2qnmzkzm5qwzr5f3i"; }; - buildNativeInputs = [ pkgconfig intltool python ]; + buildNativeInputs = [ pkgconfig ]; propagatedBuildInputs = [ glib libxml2 ] ++ stdenv.lib.optionals gnomeSupport [ libgnome_keyring sqlite ]; - passthru.propagatedUserEnvPackages = [ glib_networking ]; # glib_networking is a runtime dependency, not a compile-time dependency configureFlags = "--disable-tls-check"; - preConfigure = '' - substituteInPlace libsoup/tld-parser.py \ - --replace "/usr/bin/env python" ${python}/bin/python - ''; - meta = { inherit (glib.meta) maintainers platforms; }; From d2b6645e82be74f22c2333915d262bd0719ceede Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cillian=20de=20R=C3=B3iste?= Date: Tue, 26 Feb 2013 00:40:29 +0100 Subject: [PATCH 21/89] Add chromedriver: a server for running Selenium tests in Chrome --- .../tools/selenium/chromedriver/default.nix | 37 +++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 + 2 files changed, 39 insertions(+) create mode 100644 pkgs/development/tools/selenium/chromedriver/default.nix diff --git a/pkgs/development/tools/selenium/chromedriver/default.nix b/pkgs/development/tools/selenium/chromedriver/default.nix new file mode 100644 index 00000000000..063af69a7f3 --- /dev/null +++ b/pkgs/development/tools/selenium/chromedriver/default.nix @@ -0,0 +1,37 @@ +{ stdenv, fetchurl, cairo, fontconfig, freetype, gdk_pixbuf, glib +, glibc, gtk, libX11, makeWrapper, nspr, nss, pango, unzip +}: + +# note: there is a i686 version available as well +assert stdenv.system == "x86_64-linux"; + +stdenv.mkDerivation rec { + name = "chromedriver_linux64_26.0.1383.0"; + + src = fetchurl { + url = "http://chromedriver.googlecode.com/files/${name}.zip"; + sha256 = "0fh4r2rcpjc3nfrdyj256kjlyc0b6mhxqwxcah73q4vm1kjax8rs"; + }; + + buildInputs = [ + cairo fontconfig freetype gdk_pixbuf glib gtk libX11 makeWrapper + nspr nss pango unzip + ]; + + unpackPhase = "unzip $src"; + + installPhase = '' + mkdir -p $out/bin + mv chromedriver $out/bin + patchelf --set-interpreter ${glibc}/lib/ld-linux-x86-64.so.2 $out/bin/chromedriver + wrapProgram "$out/bin/chromedriver" \ + --prefix LD_LIBRARY_PATH : "$(cat ${stdenv.gcc}/nix-support/orig-gcc)/lib64:${cairo}/lib:${fontconfig}/lib:${freetype}/lib:${gdk_pixbuf}/lib:${glib}/lib:${gtk}/lib:${libX11}/lib:${nspr}/lib:${nss}/lib:${pango}/lib:\$LD_LIBRARY_PATH" + ''; + + meta = with stdenv.lib; { + homepage = http://code.google.com/p/chromedriver/; + description = "A WebDriver server for running Selenium tests on Chrome"; + license = licenses.bsd3; + maintainers = [ maintainers.goibhniu ]; + }; +} \ No newline at end of file diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 4d2ff8589f4..9c85aa47abb 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -3090,6 +3090,8 @@ let cgdb = callPackage ../development/tools/misc/cgdb { }; + chromedriver = callPackage ../development/tools/selenium/chromedriver { }; + complexity = callPackage ../development/tools/misc/complexity { }; ctags = callPackage ../development/tools/misc/ctags { }; From f7e619617e548554d3a853f7a2550617bc218852 Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Tue, 26 Feb 2013 01:24:32 +0100 Subject: [PATCH 22/89] Catalyst::Plugin::Static::Simple: Always send the Expires header Otherwise Firefox will get confused. --- .../catalyst-plugin-static-simple-etag.patch | 30 ++++++++++++------- 1 file changed, 19 insertions(+), 11 deletions(-) diff --git a/pkgs/development/perl-modules/catalyst-plugin-static-simple-etag.patch b/pkgs/development/perl-modules/catalyst-plugin-static-simple-etag.patch index 6433cf29663..06207a8b733 100644 --- a/pkgs/development/perl-modules/catalyst-plugin-static-simple-etag.patch +++ b/pkgs/development/perl-modules/catalyst-plugin-static-simple-etag.patch @@ -2,14 +2,24 @@ Send an ETag header, and honour the If-None-Match request header diff -ru -x '*~' Catalyst-Plugin-Static-Simple-0.30-orig/lib/Catalyst/Plugin/Static/Simple.pm Catalyst-Plugin-Static-Simple-0.30/lib/Catalyst/Plugin/Static/Simple.pm --- Catalyst-Plugin-Static-Simple-0.30-orig/lib/Catalyst/Plugin/Static/Simple.pm 2012-05-04 18:49:30.000000000 +0200 -+++ Catalyst-Plugin-Static-Simple-0.30/lib/Catalyst/Plugin/Static/Simple.pm 2013-02-25 18:05:08.466813337 +0100 -@@ -187,11 +187,21 @@ ++++ Catalyst-Plugin-Static-Simple-0.30/lib/Catalyst/Plugin/Static/Simple.pm 2013-02-25 22:57:18.667150181 +0100 +@@ -187,16 +187,27 @@ my $type = $c->_ext_to_type( $full_path ); my $stat = stat $full_path; -+ # Tell Firefox & friends its OK to cache, even over SSL: +- $c->res->headers->content_type( $type ); +- $c->res->headers->content_length( $stat->size ); +- $c->res->headers->last_modified( $stat->mtime ); + # Tell Firefox & friends its OK to cache, even over SSL: +- $c->res->headers->header('Cache-control' => 'public'); + #$c->res->headers->header('Cache-control' => 'public'); + ++ $c->res->headers->last_modified( $stat->mtime ); + # Optionally, set a fixed expiry time: + if ($config->{expires}) { + $c->res->headers->expires(time() + $config->{expires}); + } + + if ($config->{send_etag}) { + my $etag = '"' . $stat->mtime . '-' . $stat->ino . '-'. $stat->size . '"'; + $c->res->headers->header('ETag' => $etag); @@ -19,11 +29,9 @@ diff -ru -x '*~' Catalyst-Plugin-Static-Simple-0.30-orig/lib/Catalyst/Plugin/Sta + } + } + - $c->res->headers->content_type( $type ); - $c->res->headers->content_length( $stat->size ); - $c->res->headers->last_modified( $stat->mtime ); -- # Tell Firefox & friends its OK to cache, even over SSL: -- $c->res->headers->header('Cache-control' => 'public'); - # Optionally, set a fixed expiry time: - if ($config->{expires}) { - $c->res->headers->expires(time() + $config->{expires}); ++ $c->res->headers->content_type( $type ); ++ $c->res->headers->content_length( $stat->size ); ++ + my $fh = IO::File->new( $full_path, 'r' ); + if ( defined $fh ) { + binmode $fh; From 2fca1deeb2a5b619c925dc19e1770dc1370c5f8f Mon Sep 17 00:00:00 2001 From: Sander van der Burg Date: Tue, 26 Feb 2013 11:07:16 +0100 Subject: [PATCH 23/89] nijs: Added nodejs package --- pkgs/top-level/node-packages.nix | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/pkgs/top-level/node-packages.nix b/pkgs/top-level/node-packages.nix index 07d27bb44bc..88fc642064e 100644 --- a/pkgs/top-level/node-packages.nix +++ b/pkgs/top-level/node-packages.nix @@ -736,6 +736,19 @@ let self = { ]; }; + "nijs" = self."nijs-0.0.3"; + + "nijs-0.0.3" = self.buildNodePackage rec { + name = "nijs-0.0.3"; + src = fetchurl { + url = "http://registry.npmjs.org/nijs/-/${name}.tgz"; + sha256 = "0rcqycb4nigfasxfjw1ngh556r5ik1qr58938nx6qbxzkrm0k1ip"; + }; + deps = [ + self."optparse" + ]; + }; + "node-expat" = self."node-expat-*"; "node-expat-*" = self.buildNodePackage rec { From 58428ff4ffbfd849adbee0de44d6b25407392c0a Mon Sep 17 00:00:00 2001 From: Peter Simons Date: Tue, 26 Feb 2013 11:38:29 +0100 Subject: [PATCH 24/89] Add wl-pprint-1.1, wl-pprint-extras-3.3, and wl-pprint-terminfo-3.4. --- .../haskell/wl-pprint-extras/default.nix | 14 ++++++++++++++ .../haskell/wl-pprint-terminfo/default.nix | 17 +++++++++++++++++ .../libraries/haskell/wl-pprint/default.nix | 12 ++++++++++++ pkgs/top-level/haskell-packages.nix | 6 ++++++ 4 files changed, 49 insertions(+) create mode 100644 pkgs/development/libraries/haskell/wl-pprint-extras/default.nix create mode 100644 pkgs/development/libraries/haskell/wl-pprint-terminfo/default.nix create mode 100644 pkgs/development/libraries/haskell/wl-pprint/default.nix diff --git a/pkgs/development/libraries/haskell/wl-pprint-extras/default.nix b/pkgs/development/libraries/haskell/wl-pprint-extras/default.nix new file mode 100644 index 00000000000..18adfb1cd60 --- /dev/null +++ b/pkgs/development/libraries/haskell/wl-pprint-extras/default.nix @@ -0,0 +1,14 @@ +{ cabal, nats, semigroupoids, semigroups, utf8String }: + +cabal.mkDerivation (self: { + pname = "wl-pprint-extras"; + version = "3.3"; + sha256 = "1q3wiw62k53yl9ny9l54b281zprrnshw94pd52rlcxbw9cgj8xzx"; + buildDepends = [ nats semigroupoids semigroups utf8String ]; + meta = { + homepage = "http://github.com/ekmett/wl-pprint-extras/"; + description = "A free monad based on the Wadler/Leijen pretty printer"; + license = self.stdenv.lib.licenses.bsd3; + platforms = self.ghc.meta.platforms; + }; +}) diff --git a/pkgs/development/libraries/haskell/wl-pprint-terminfo/default.nix b/pkgs/development/libraries/haskell/wl-pprint-terminfo/default.nix new file mode 100644 index 00000000000..0cb626016d4 --- /dev/null +++ b/pkgs/development/libraries/haskell/wl-pprint-terminfo/default.nix @@ -0,0 +1,17 @@ +{ cabal, nats, semigroups, terminfo, transformers, wlPprintExtras +}: + +cabal.mkDerivation (self: { + pname = "wl-pprint-terminfo"; + version = "3.4"; + sha256 = "1wnlm74fwcn171a533bv15bvlhabrzh192wabala0wyvwgl8hwzk"; + buildDepends = [ + nats semigroups terminfo transformers wlPprintExtras + ]; + meta = { + homepage = "http://github.com/ekmett/wl-pprint-terminfo/"; + description = "A color pretty printer with terminfo support"; + license = self.stdenv.lib.licenses.bsd3; + platforms = self.ghc.meta.platforms; + }; +}) diff --git a/pkgs/development/libraries/haskell/wl-pprint/default.nix b/pkgs/development/libraries/haskell/wl-pprint/default.nix new file mode 100644 index 00000000000..9849d4fab0e --- /dev/null +++ b/pkgs/development/libraries/haskell/wl-pprint/default.nix @@ -0,0 +1,12 @@ +{ cabal }: + +cabal.mkDerivation (self: { + pname = "wl-pprint"; + version = "1.1"; + sha256 = "16kp3fkh0x9kgzk6fdqrm8m0v7b5cgbv0m3x63ybbp5vxbhand06"; + meta = { + description = "The Wadler/Leijen Pretty Printer"; + license = self.stdenv.lib.licenses.bsd3; + platforms = self.ghc.meta.platforms; + }; +}) diff --git a/pkgs/top-level/haskell-packages.nix b/pkgs/top-level/haskell-packages.nix index a65993c297a..b4f5f66b8f2 100644 --- a/pkgs/top-level/haskell-packages.nix +++ b/pkgs/top-level/haskell-packages.nix @@ -1865,6 +1865,12 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y); CouchDB = callPackage ../development/libraries/haskell/CouchDB {}; + wlPprint = callPackage ../development/libraries/haskell/wl-pprint {}; + + wlPprintExtras = callPackage ../development/libraries/haskell/wl-pprint-extras {}; + + wlPprintTerminfo = callPackage ../development/libraries/haskell/wl-pprint-terminfo {}; + wlPprintText = callPackage ../development/libraries/haskell/wl-pprint-text {}; word8 = callPackage ../development/libraries/haskell/word8 {}; From 5847037d849c63f27e6765a98598875ca757dfbe Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Tue, 26 Feb 2013 14:40:39 +0100 Subject: [PATCH 25/89] nix: Update to 1.4 --- pkgs/tools/package-management/nix/default.nix | 4 ++-- pkgs/top-level/all-packages.nix | 4 ++++ 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/pkgs/tools/package-management/nix/default.nix b/pkgs/tools/package-management/nix/default.nix index 5448c9f5ba3..c31062989e1 100644 --- a/pkgs/tools/package-management/nix/default.nix +++ b/pkgs/tools/package-management/nix/default.nix @@ -5,11 +5,11 @@ }: stdenv.mkDerivation rec { - name = "nix-1.3"; + name = "nix-1.4"; src = fetchurl { url = "http://nixos.org/releases/nix/${name}/${name}.tar.xz"; - sha256 = "32cba96df0e02d6627f5625a441fdd4ea0db718dd5bfd50044cdfd3c606d4852"; + sha256 = "f400c7e9c935271b833055e4d6888ec15eb90ef92ee6521dc55f1501036dc9b2"; }; buildNativeInputs = [ perl pkgconfig ]; diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 9c85aa47abb..d16d12367ca 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -8946,10 +8946,14 @@ let stateDir = config.nix.stateDir or "/nix/var"; }; + nixUnstable = nixStable; + + /* nixUnstable = callPackage ../tools/package-management/nix/unstable.nix { storeDir = config.nix.storeDir or "/nix/store"; stateDir = config.nix.stateDir or "/nix/var"; }; + */ nut = callPackage ../applications/misc/nut { }; From 4105b593a5f5df699121a1fff45cee008b0aebe1 Mon Sep 17 00:00:00 2001 From: Patrick Lee Date: Mon, 25 Feb 2013 22:40:15 -0500 Subject: [PATCH 26/89] upgrading uglify to 2.2.5, optimist to 0.3.5, upgrading source-map to 0.1.7, and adding amdefine Fixes #337 --- pkgs/top-level/node-packages.nix | 53 +++++++++++++++++++++++++++++--- 1 file changed, 48 insertions(+), 5 deletions(-) diff --git a/pkgs/top-level/node-packages.nix b/pkgs/top-level/node-packages.nix index 88fc642064e..19ad2164851 100644 --- a/pkgs/top-level/node-packages.nix +++ b/pkgs/top-level/node-packages.nix @@ -40,6 +40,21 @@ let self = { ]; }; + amdefine = "amdefine-0.0.4"; + + "amdefine->=0.0.4" = self."amdefine-0.0.4"; + + "amdefine-0.0.4" = self.buildNodePackage rec { + name = "amdefine-0.0.4"; + src = fetchurl { + url = "http://registry.npmjs.org/amdefine/-/${name}.tgz"; + sha256 = "10sdb85mb6fvkglqwg7icdh58sng9pm8655npmsbv18gsbcnmbg4"; + }; + deps = [ + + ]; + }; + "ansi" = self."ansi-~0.1.2"; "ansi-~0.1.2" = self.buildNodePackage rec { @@ -854,11 +869,14 @@ let self = { "optimist" = self."optimist-*"; - "optimist-*" = self.buildNodePackage rec { - name = "optimist-0.3.4"; + "optimist-*" = self."optimist-0.3.5"; + "optimist-~0.3.5" = self."optimist-0.3.5"; + + "optimist-0.3.5" = self.buildNodePackage rec { + name = "optimist-0.3.5"; src = fetchurl { url = "http://registry.npmjs.org/optimist/-/${name}.tgz"; - sha256 = "add88b473a660ad8a9ff88a3eec49a74d9c64f592acbcd219ff4c0d7249f4d60"; + sha256 = "17d06n3y9difknq9j340qksj2zllal6sg0pj4clj9ja5jxf721x4"; }; deps = [ self."wordwrap-~0.0.2" @@ -1218,7 +1236,20 @@ let self = { ]; }; - "source-map" = self."source-map-0.1.2"; + "source-map" = self."source-map-0.1.7"; + + "source-map-~0.1.7" = self."source-map-0.1.7"; + + "source-map-0.1.7" = self.buildNodePackage rec { + name = "source-map-0.1.7"; + src = fetchurl { + url = "http://registry.npmjs.org/source-map/-/${name}.tgz"; + sha256 = "041skhq60kwpx319iy0m33zcgc7q2ddlfl3vvmwl5ssl9p46g8x2"; + }; + deps = [ + self."amdefine->=0.0.4" + ]; + }; "source-map-0.1.2" = self.buildNodePackage rec { name = "source-map-0.1.2"; @@ -1298,7 +1329,19 @@ let self = { ]; }; - "uglify-js" = self."uglify-js-1.2.6"; + "uglify-js" = self."uglify-js-2.2.5"; + + "uglify-js-2.2.5" = self.buildNodePackage rec { + name = "uglify-js-2.2.5"; + src = fetchurl { + url = "http://registry.npmjs.org/uglify-js/-/${name}.tgz"; + sha256 = "18ic581gjyvfl4gvlcdmzw4vrcbvn698i2rznnba70f8lk6ndlgr"; + }; + deps = [ + self."source-map-~0.1.7" + self."optimist-~0.3.5" + ]; + }; "uglify-js-1.2.5" = self.buildNodePackage rec { name = "uglify-js-1.2.5"; From c308b10ec027c98d9df9e43f50d79203491fa85e Mon Sep 17 00:00:00 2001 From: Shea Levy Date: Tue, 26 Feb 2013 11:18:16 -0500 Subject: [PATCH 27/89] Scala should work on all supported platforms --- pkgs/development/compilers/scala/default.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/pkgs/development/compilers/scala/default.nix b/pkgs/development/compilers/scala/default.nix index a78ee06f652..e7c2c80ac55 100644 --- a/pkgs/development/compilers/scala/default.nix +++ b/pkgs/development/compilers/scala/default.nix @@ -28,5 +28,6 @@ stdenv.mkDerivation rec { ''; homepage = http://www.scala-lang.org/; license = "BSD"; + platforms = stdenv.lib.platforms.all; }; } From 566d5d3fb5497b1bd466bcb8c2bc24678240be87 Mon Sep 17 00:00:00 2001 From: Rickard Nilsson Date: Tue, 26 Feb 2013 19:42:04 +0100 Subject: [PATCH 28/89] Add mopidy, a music server supporting spotify and the mpd protocol --- pkgs/applications/audio/mopidy/default.nix | 44 ++++++++++++++++++ pkgs/applications/audio/mopidy/git.nix | 44 ++++++++++++++++++ pkgs/top-level/all-packages.nix | 3 ++ pkgs/top-level/python-packages.nix | 54 ++++++++++++++++++++++ 4 files changed, 145 insertions(+) create mode 100644 pkgs/applications/audio/mopidy/default.nix create mode 100644 pkgs/applications/audio/mopidy/git.nix diff --git a/pkgs/applications/audio/mopidy/default.nix b/pkgs/applications/audio/mopidy/default.nix new file mode 100644 index 00000000000..934669f225c --- /dev/null +++ b/pkgs/applications/audio/mopidy/default.nix @@ -0,0 +1,44 @@ +{ stdenv, fetchgit, pythonPackages, pygobject, gst_python +, gst_plugins_good, gst_plugins_base +}: + +pythonPackages.buildPythonPackage rec { + name = "mopidy-${version}"; + + version = "0.11.1"; + + src = fetchgit { + url = "https://github.com/mopidy/mopidy.git"; + rev = "refs/tags/v${version}"; + sha256 = "123p9hsnlgwvrw4vzlxjf5f43rqzqa3ynbqha8pyi6r0q3ln7qjn"; + }; + + propagatedBuildInputs = with pythonPackages; [ + gst_python pygobject pykka pyspotify pylast + ]; + + # python zip complains about old timestamps + preConfigure = '' + find -print0 | xargs -0 touch + ''; + + # There are no tests + doCheck = false; + + postInstall = '' + for p in $out/bin/mopidy $out/bin/mopidy-scan; do + wrapProgram $p \ + --prefix GST_PLUGIN_PATH : ${gst_plugins_good}/lib/gstreamer-0.10 \ + --prefix GST_PLUGIN_PATH : ${gst_plugins_base}/lib/gstreamer-0.10 + done + ''; + + meta = { + homepage = http://www.mopidy.com/; + description = '' + A music server which can play music from Spotify and from your + local hard drive. + ''; + maintainers = [ stdenv.lib.maintainers.rickynils ]; + }; +} diff --git a/pkgs/applications/audio/mopidy/git.nix b/pkgs/applications/audio/mopidy/git.nix new file mode 100644 index 00000000000..81728e646c3 --- /dev/null +++ b/pkgs/applications/audio/mopidy/git.nix @@ -0,0 +1,44 @@ +{ stdenv, fetchgit, pythonPackages, pygobject, gst_python +, gst_plugins_good, gst_plugins_base +}: + +pythonPackages.buildPythonPackage rec { + name = "mopidy-${version}"; + + version = "git-20130226"; + + src = fetchgit { + url = "https://github.com/mopidy/mopidy.git"; + rev = "86a7c2d7519680c6b9130795d35c4654958f4c04"; + sha256 = "00fxcfkpl19nslv4f4bspzw0kvjjp6hhcwag7rknmb8scfinqfac"; + }; + + propagatedBuildInputs = with pythonPackages; [ + gst_python pygobject pykka pyspotify pylast + ]; + + # python zip complains about old timestamps + preConfigure = '' + find -print0 | xargs -0 touch + ''; + + # There are no tests + doCheck = false; + + postInstall = '' + for p in $out/bin/mopidy $out/bin/mopidy-scan; do + wrapProgram $p \ + --prefix GST_PLUGIN_PATH : ${gst_plugins_good}/lib/gstreamer-0.10 \ + --prefix GST_PLUGIN_PATH : ${gst_plugins_base}/lib/gstreamer-0.10 + done + ''; + + meta = { + homepage = http://www.mopidy.com/; + description = '' + A music server which can play music from Spotify and from your + local hard drive. + ''; + maintainers = [ stdenv.lib.maintainers.rickynils ]; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index d16d12367ca..60c2e02d5f4 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -7522,6 +7522,9 @@ let inherit (gnome) libgnomecanvas; }; + mopidy = callPackage ../applications/audio/mopidy { }; + mopidy_git = callPackage ../applications/audio/mopidy/git.nix { }; + mozilla = callPackage ../applications/networking/browsers/mozilla { inherit (gnome) libIDL; }; diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 43c2aa4dba5..f98a3f08320 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -4664,4 +4664,58 @@ pythonPackages = python.modules // rec { }; }; + pyspotify = buildPythonPackage rec { + name = "pyspotify-${version}"; + + version = "1.10"; + + src = fetchgit { + url = "https://github.com/mopidy/pyspotify.git"; + rev = "refs/tags/v${version}"; + sha256 = "1rvgrviwn6f037m8vq395chz6a1119dbsdhfwdbv5ambi0bak6ll"; + }; + + buildInputs = [ pkgs.libspotify ]; + + # python zip complains about old timestamps + preConfigure = '' + find -print0 | xargs -0 touch + ''; + + # There are no tests + doCheck = false; + + meta = { + homepage = http://pyspotify.mopidy.com; + description = "A Python interface to Spotify’s online music streaming service"; + maintainers = [ stdenv.lib.maintainers.rickynils ]; + }; + }; + + pykka = buildPythonPackage rec { + name = "pykka-${version}"; + + version = "1.1.0"; + + src = fetchgit { + url = "https://github.com/jodal/pykka.git"; + rev = "refs/tags/v${version}"; + sha256 = "0w6bcaqkzwmd9habszlgjkp3kkhkna08s9aivnmna5hddsghfqmz"; + }; + + # python zip complains about old timestamps + preConfigure = '' + find -print0 | xargs -0 touch + ''; + + # There are no tests + doCheck = false; + + meta = { + homepage = http://www.pykka.org; + description = "A Python implementation of the actor model"; + maintainers = [ stdenv.lib.maintainers.rickynils ]; + }; + }; + }; in pythonPackages From d5ec021cdb4989209c7250a8973a8a24bac4e35c Mon Sep 17 00:00:00 2001 From: Patrick John Wheeler Date: Wed, 27 Feb 2013 06:44:41 +0100 Subject: [PATCH 29/89] Making xlibs.xf86videovmware build --- pkgs/servers/x11/xorg/default.nix | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/pkgs/servers/x11/xorg/default.nix b/pkgs/servers/x11/xorg/default.nix index 23600b0e014..f26ba257c02 100644 --- a/pkgs/servers/x11/xorg/default.nix +++ b/pkgs/servers/x11/xorg/default.nix @@ -1724,8 +1724,9 @@ let url = mirror://xorg/X11R7.7/src/everything/xf86-video-vmware-12.0.2.tar.bz2; sha256 = "0isiwx516gww8hfk3vy7js83yziyjym9mq2zjadyq1a8v5gqf9y8"; }; - buildInputs = [pkgconfig fontsproto libdrm libpciaccess randrproto renderproto videoproto libX11 libXext xextproto xineramaproto xorgserver xproto ]; - })) // {inherit fontsproto libdrm libpciaccess randrproto renderproto videoproto libX11 libXext xextproto xineramaproto xorgserver xproto ;}; + CFLAGS = "-I${pixman}/include/pixman-1"; + buildInputs = [pkgconfig fontsproto libdrm libpciaccess randrproto renderproto videoproto libX11 libXext xextproto xineramaproto xorgserver xproto pixman ]; + })) // {inherit fontsproto libdrm libpciaccess randrproto renderproto videoproto libX11 libXext xextproto xineramaproto xorgserver xproto pixman ;}; xf86videovoodoo = (stdenv.mkDerivation ((if overrides ? xf86videovoodoo then overrides.xf86videovoodoo else x: x) { name = "xf86-video-voodoo-1.2.4"; From 55b67195d4313cd21d7c96fb0af378c4e6589fb7 Mon Sep 17 00:00:00 2001 From: Peter Simons Date: Wed, 27 Feb 2013 12:00:37 +0100 Subject: [PATCH 30/89] haskell-packunused: add version 0.1.0.0 --- .../tools/haskell/packunused/default.nix | 16 ++++++++++++++++ pkgs/top-level/haskell-packages.nix | 2 ++ 2 files changed, 18 insertions(+) create mode 100644 pkgs/development/tools/haskell/packunused/default.nix diff --git a/pkgs/development/tools/haskell/packunused/default.nix b/pkgs/development/tools/haskell/packunused/default.nix new file mode 100644 index 00000000000..814c2774cb2 --- /dev/null +++ b/pkgs/development/tools/haskell/packunused/default.nix @@ -0,0 +1,16 @@ +{ cabal, Cabal, cmdargs, filepath, haskellSrcExts }: + +cabal.mkDerivation (self: { + pname = "packunused"; + version = "0.1.0.0"; + sha256 = "131x99id3jcxglj24p5sjb6mnhphj925pp4jdjy09y6ai7wss3rs"; + isLibrary = false; + isExecutable = true; + buildDepends = [ Cabal cmdargs filepath haskellSrcExts ]; + meta = { + homepage = "https://github.com/hvr/packunused"; + description = "Tool for detecting redundant Cabal package dependencies"; + license = self.stdenv.lib.licenses.bsd3; + platforms = self.ghc.meta.platforms; + }; +}) diff --git a/pkgs/top-level/haskell-packages.nix b/pkgs/top-level/haskell-packages.nix index b4f5f66b8f2..39d6a58aeab 100644 --- a/pkgs/top-level/haskell-packages.nix +++ b/pkgs/top-level/haskell-packages.nix @@ -2093,6 +2093,8 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y); myhasktags = callPackage ../tools/misc/myhasktags {}; + packunused = callPackage ../development/tools/haskell/packunused {}; + splot = callPackage ../development/tools/haskell/splot {}; timeplot = callPackage ../development/tools/haskell/timeplot {}; From 80dc8df25d21168aa09298d8d8032e26e1f4bc6b Mon Sep 17 00:00:00 2001 From: Peter Simons Date: Wed, 27 Feb 2013 12:00:40 +0100 Subject: [PATCH 31/89] haskell-github-backup: update to version 1.20120314 --- .../git-and-tools/github-backup/default.nix | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/pkgs/applications/version-management/git-and-tools/github-backup/default.nix b/pkgs/applications/version-management/git-and-tools/github-backup/default.nix index 27aa09dc397..a2489dbc628 100644 --- a/pkgs/applications/version-management/git-and-tools/github-backup/default.nix +++ b/pkgs/applications/version-management/git-and-tools/github-backup/default.nix @@ -4,8 +4,8 @@ cabal.mkDerivation (self: { pname = "github-backup"; - version = "1.20120627"; - sha256 = "1nq5zj821idvcqybyxkpkma544ci30k2sr8jhp7f2bpa97yidn3k"; + version = "1.20120314"; + sha256 = "07ilb6cg1kbz4id53l4m46wjxzs7yxcmpz6280ym6k885dras5v2"; isLibrary = false; isExecutable = true; buildDepends = [ @@ -17,6 +17,5 @@ cabal.mkDerivation (self: { description = "backs up everything github knows about a repository, to the repository"; license = "GPL"; platforms = self.ghc.meta.platforms; - maintainers = [ self.stdenv.lib.maintainers.simons ]; }; }) From ad76386ff7d4664155ba2f72c57395060f6c0e7c Mon Sep 17 00:00:00 2001 From: Rickard Nilsson Date: Wed, 27 Feb 2013 12:14:09 +0100 Subject: [PATCH 32/89] Add mkpasswd, an overfeatured front end to crypt --- pkgs/tools/security/mkpasswd/default.nix | 28 ++++++++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 ++ 2 files changed, 30 insertions(+) create mode 100644 pkgs/tools/security/mkpasswd/default.nix diff --git a/pkgs/tools/security/mkpasswd/default.nix b/pkgs/tools/security/mkpasswd/default.nix new file mode 100644 index 00000000000..a1982cc4e66 --- /dev/null +++ b/pkgs/tools/security/mkpasswd/default.nix @@ -0,0 +1,28 @@ +{ stdenv, fetchurl +}: + +stdenv.mkDerivation rec { + name = "mkpasswd-${version}"; + + version = "5.0.20"; + + src = fetchurl { + url = "http://ftp.debian.org/debian/pool/main/w/whois/whois_${version}.tar.xz"; + sha256 = "1kwf5pwc7w8dw40nrd4m4637mz7pbhc4c1v78j56nqj38sak50w1"; + }; + + preConfigure = '' + substituteInPlace Makefile --replace "prefix = /usr" "prefix = $out" + ''; + + buildPhase = "make mkpasswd"; + + installPhase = "make install-mkpasswd"; + + meta = { + homepage = http://ftp.debian.org/debian/pool/main/w/whois/; + description = '' + Overfeatured front end to crypt, from the Debian whois package. + ''; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 60c2e02d5f4..566a21a6052 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -1122,6 +1122,8 @@ let mkcue = callPackage ../tools/cd-dvd/mkcue { }; + mkpasswd = callPackage ../tools/security/mkpasswd { }; + mktemp = callPackage ../tools/security/mktemp { }; modemmanager = callPackage ../tools/networking/modemmanager {}; From d336909d9fdeef3fa3226bed5746561643d58478 Mon Sep 17 00:00:00 2001 From: Peter Simons Date: Wed, 27 Feb 2013 14:25:20 +0100 Subject: [PATCH 33/89] qemu-kvm: enable documentation build ... and rename the 'postPatch' hook to 'patchPhase'. --- pkgs/os-specific/linux/qemu-kvm/default.nix | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/pkgs/os-specific/linux/qemu-kvm/default.nix b/pkgs/os-specific/linux/qemu-kvm/default.nix index 9223b7af917..876f53b40b1 100644 --- a/pkgs/os-specific/linux/qemu-kvm/default.nix +++ b/pkgs/os-specific/linux/qemu-kvm/default.nix @@ -1,5 +1,5 @@ { stdenv, fetchurl, attr, zlib, SDL, alsaLib, pkgconfig, pciutils, libuuid, vde2 -, libjpeg, libpng, ncurses, python, glib, libaio, mesa +, libjpeg, libpng, ncurses, python, glib, libaio, mesa, perl, texinfo , spice, spice_protocol, spiceSupport ? false }: assert stdenv.isLinux; @@ -14,7 +14,12 @@ stdenv.mkDerivation rec { sha256 = "018vb5nmk2fsm143bs2bl2wirhasd4b10d7jchl32zik4inbk2p9"; }; - postPatch = + buildInputs = + [ attr zlib SDL alsaLib pkgconfig pciutils libuuid vde2 libjpeg libpng + ncurses python glib libaio mesa texinfo perl + ] ++ stdenv.lib.optionals spiceSupport [ spice_protocol spice ]; + + patchPhase = '' for i in $(find . -type f) do sed -i "$i" \ @@ -32,15 +37,9 @@ stdenv.mkDerivation rec { configureFlags = [ "--audio-drv-list=alsa" "--smbd=smbd" # use `smbd' from $PATH + "--enable-docs" ] ++ stdenv.lib.optional spiceSupport "--enable-spice"; - enableParallelBuilding = true; - - buildInputs = - [ attr zlib SDL alsaLib pkgconfig pciutils libuuid vde2 libjpeg libpng - ncurses python glib libaio mesa - ] ++ stdenv.lib.optionals spiceSupport [ spice_protocol spice ]; - postInstall = '' # Libvirt expects us to be called `qemu-kvm'. Otherwise it will @@ -49,6 +48,8 @@ stdenv.mkDerivation rec { ln -sv $(cd $out/bin && echo qemu-system-*) $out/bin/qemu-kvm ''; + enableParallelBuilding = true; + meta = { homepage = http://www.linux-kvm.org/; description = "A full virtualization solution for Linux on x86 hardware containing virtualization extensions"; From 97a2eb24d4112e6be8f4f1260146424644fc6ec4 Mon Sep 17 00:00:00 2001 From: Peter Simons Date: Wed, 27 Feb 2013 14:34:13 +0100 Subject: [PATCH 34/89] qemu-kvm: re-use 'patchShebangs' function to fix script paths --- pkgs/os-specific/linux/qemu-kvm/default.nix | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) diff --git a/pkgs/os-specific/linux/qemu-kvm/default.nix b/pkgs/os-specific/linux/qemu-kvm/default.nix index 876f53b40b1..5aef46444bd 100644 --- a/pkgs/os-specific/linux/qemu-kvm/default.nix +++ b/pkgs/os-specific/linux/qemu-kvm/default.nix @@ -19,17 +19,8 @@ stdenv.mkDerivation rec { ncurses python glib libaio mesa texinfo perl ] ++ stdenv.lib.optionals spiceSupport [ spice_protocol spice ]; - patchPhase = - '' for i in $(find . -type f) - do - sed -i "$i" \ - -e 's|/bin/bash|/bin/sh|g ; - s|/usr/bin/python|${python}/bin/python|g ; - s|/bin/rm|rm|g' - done - '' + stdenv.lib.optionalString spiceSupport '' - for i in configure spice-qemu-char.c ui/spice-input.c ui/spice-core.c ui/qemu-spice.h - do + patchPhase = "patchShebangs ." + stdenv.lib.optionalString spiceSupport '' + for i in configure spice-qemu-char.c ui/spice-input.c ui/spice-core.c ui/qemu-spice.h; do substituteInPlace $i --replace '#include ' '#include ' done ''; From 2d375c3f5f6f189057b4d72e7ee893297f5c0cda Mon Sep 17 00:00:00 2001 From: Peter Simons Date: Wed, 27 Feb 2013 14:34:32 +0100 Subject: [PATCH 35/89] qemu-kvm: provide a proper path to the python interpreter --- pkgs/os-specific/linux/qemu-kvm/default.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/pkgs/os-specific/linux/qemu-kvm/default.nix b/pkgs/os-specific/linux/qemu-kvm/default.nix index 5aef46444bd..94f3c6bcacb 100644 --- a/pkgs/os-specific/linux/qemu-kvm/default.nix +++ b/pkgs/os-specific/linux/qemu-kvm/default.nix @@ -29,6 +29,7 @@ stdenv.mkDerivation rec { [ "--audio-drv-list=alsa" "--smbd=smbd" # use `smbd' from $PATH "--enable-docs" + "--python=${python}/bin/python" ] ++ stdenv.lib.optional spiceSupport "--enable-spice"; postInstall = From b6d0d176f28a16d90de07c09f451cd9fc490e3b0 Mon Sep 17 00:00:00 2001 From: Peter Simons Date: Wed, 27 Feb 2013 14:34:42 +0100 Subject: [PATCH 36/89] qemu-kvm: enable regression test suite --- pkgs/os-specific/linux/qemu-kvm/default.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pkgs/os-specific/linux/qemu-kvm/default.nix b/pkgs/os-specific/linux/qemu-kvm/default.nix index 94f3c6bcacb..3b37273bdcb 100644 --- a/pkgs/os-specific/linux/qemu-kvm/default.nix +++ b/pkgs/os-specific/linux/qemu-kvm/default.nix @@ -40,6 +40,8 @@ stdenv.mkDerivation rec { ln -sv $(cd $out/bin && echo qemu-system-*) $out/bin/qemu-kvm ''; + doCheck = true; + enableParallelBuilding = true; meta = { From c3b759d3d36fe918170e75c6c28f9e5a0821a5b5 Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Wed, 27 Feb 2013 14:35:56 +0100 Subject: [PATCH 37/89] Catalyst::Plugin::Captcha: Add --- pkgs/top-level/perl-packages.nix | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/pkgs/top-level/perl-packages.nix b/pkgs/top-level/perl-packages.nix index b9ae875fc7d..03d074d094d 100644 --- a/pkgs/top-level/perl-packages.nix +++ b/pkgs/top-level/perl-packages.nix @@ -510,6 +510,18 @@ rec { }; }; + CatalystPluginCaptcha = buildPerlPackage { + name = "Catalyst-Plugin-Captcha-0.04"; + src = fetchurl { + url = mirror://cpan/authors/id/D/DI/DIEGOK/Catalyst-Plugin-Captcha-0.04.tar.gz; + sha256 = "0llyj3v5nx9cx46jdbbvxf1lc9s9cxq5ml22xmx3wkb201r5qgaa"; + }; + propagatedBuildInputs = [ CatalystRuntime CatalystPluginSession GDSecurityImage HTTPDate ]; + meta = { + description = "Create and validate Captcha for Catalyst"; + }; + }; + CatalystPluginConfigLoader = buildPerlPackage rec { name = "Catalyst-Plugin-ConfigLoader-0.30"; src = fetchurl { @@ -2013,6 +2025,19 @@ rec { makeMakerFlags = "--lib_png_path=${pkgs.libpng} --lib_jpeg_path=${pkgs.libjpeg} --lib_zlib_path=${pkgs.zlib} --lib_ft_path=${pkgs.freetype} --lib_fontconfig_path=${pkgs.fontconfig} --lib_xpm_path=${pkgs.xlibs.libXpm}"; }; + GDSecurityImage = buildPerlPackage { + name = "GD-SecurityImage-1.72"; + src = fetchurl { + url = mirror://cpan/authors/id/B/BU/BURAK/GD-SecurityImage-1.72.tar.gz; + sha256 = "07a025krdaml5ls7gyssfdcsif6cnsnksrxkqk48n9dmv7rz7q1r"; + }; + propagatedBuildInputs = [ GD ]; + meta = { + description = "Security image (captcha) generator"; + license = "perl5"; + }; + }; + GeoIP = buildPerlPackage rec { name = "Geo-IP-1.39"; src = fetchurl { From f2f860bd29e377f7a0be11319c7cc472bc70865c Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Wed, 27 Feb 2013 14:43:00 +0100 Subject: [PATCH 38/89] httpd: Update to 2.4.4 CVE-2012-3499, CVE-2012-4558 --- pkgs/servers/http/apache-httpd/2.4.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/servers/http/apache-httpd/2.4.nix b/pkgs/servers/http/apache-httpd/2.4.nix index 507ced85998..da353212657 100644 --- a/pkgs/servers/http/apache-httpd/2.4.nix +++ b/pkgs/servers/http/apache-httpd/2.4.nix @@ -14,12 +14,12 @@ assert sslSupport -> aprutil.sslSupport && openssl != null; assert ldapSupport -> aprutil.ldapSupport && openldap != null; stdenv.mkDerivation rec { - version = "2.4.3"; + version = "2.4.4"; name = "apache-httpd-${version}"; src = fetchurl { url = "mirror://apache/httpd/httpd-${version}.tar.bz2"; - sha256 = "17i4zdcjfvxks0p1fbqvab37kr8d6zscqaqan8pqkw8iq6wh48fq"; + sha256 = "0p35jy6mkb1q48bia719qxs5bwxv0wadyhxi61rsr93nrbgbvalj"; }; buildInputs = [perl] ++ From bf8f39ff9b6a023548063df1b3078ec673737528 Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Wed, 27 Feb 2013 14:47:40 +0100 Subject: [PATCH 39/89] linux: Update to 3.2.39 CVE-2013-0228 --- pkgs/os-specific/linux/kernel/linux-3.2.nix | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/pkgs/os-specific/linux/kernel/linux-3.2.nix b/pkgs/os-specific/linux/kernel/linux-3.2.nix index afa62fe7798..f567fe084ef 100644 --- a/pkgs/os-specific/linux/kernel/linux-3.2.nix +++ b/pkgs/os-specific/linux/kernel/linux-3.2.nix @@ -239,8 +239,7 @@ in import ./generic.nix ( rec { - version = "3.2.38"; - testing = false; + version = "3.2.39"; modDirVersion = version; @@ -249,8 +248,8 @@ import ./generic.nix ( ''; src = fetchurl { - url = "mirror://kernel/linux/kernel/v3.0/${if testing then "testing/" else ""}linux-${version}.tar.xz"; - sha256 = "10hm4cy56xjl5ckv3jj3grw31qfhwrgia0wq71c34dw0mv3bix8w"; + url = "mirror://kernel/linux/kernel/v3.0/linux-${version}.tar.xz"; + sha256 = "066vgyz37jxxwmdskwzazg7xa09mirk4krlyxpvsx68ai5rjf826"; }; config = configWithPlatform stdenv.platform; From 5509f3beec75054dc1d0dcdbfdc6c4c417eb2e37 Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Wed, 27 Feb 2013 15:07:28 +0100 Subject: [PATCH 40/89] wireshark: Update to 1.8.5 CVE-2013-1582, CVE-2013-1586, CVE-2013-1588, CVE-2013-1590 --- .../networking/sniffers/wireshark/default.nix | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/pkgs/applications/networking/sniffers/wireshark/default.nix b/pkgs/applications/networking/sniffers/wireshark/default.nix index a5f0ddea28f..173453f7b5e 100644 --- a/pkgs/applications/networking/sniffers/wireshark/default.nix +++ b/pkgs/applications/networking/sniffers/wireshark/default.nix @@ -3,20 +3,20 @@ , heimdal, python, lynx, lua5 }: -let - version = "1.8.3"; -in +let version = "1.8.5"; in + stdenv.mkDerivation { name = "wireshark-${version}"; src = fetchurl { url = "mirror://sourceforge/wireshark/wireshark-${version}.tar.bz2"; - sha256 = "1crg59kkxb7lw1wpfg52hd4l00hq56pyg7f40c7sgqmm0vsmza43"; + sha256 = "0wp33qa5yvi60b08iiz55wflhr1vwd7680sbwx2kqjlp2s17kr6l"; }; - buildInputs = [perl pkgconfig gtk libpcap flex bison gnutls libgcrypt - glib zlib libxml2 libxslt adns geoip heimdal python lynx lua5 - ]; + buildInputs = + [ perl pkgconfig gtk libpcap flex bison gnutls libgcrypt + glib zlib libxml2 libxslt adns geoip heimdal python lynx lua5 + ]; configureFlags = "--disable-usr-local --with-ssl --enable-threads --enable-packet-editor"; From 0a43ce41de63113259566fc5ad5f592b45f937b3 Mon Sep 17 00:00:00 2001 From: aszlig Date: Wed, 27 Feb 2013 03:54:54 +0100 Subject: [PATCH 41/89] chromium: Update dev and beta channels. So, chromium 25 is now stable, so we really need to get the build fixed on Hydra as soon as possible. And let's hope without nasty workarounds. This commits updates dev and beta channels to version 26.0.1410.12, because version 27.0.1423.0 seems to be unavailable right now. Build is running successfully on my machine, and the browser works as well on the sites I usually visit. Signed-off-by: aszlig --- .../networking/browsers/chromium/sources.nix | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/pkgs/applications/networking/browsers/chromium/sources.nix b/pkgs/applications/networking/browsers/chromium/sources.nix index da3de4c968d..5c61422bea7 100644 --- a/pkgs/applications/networking/browsers/chromium/sources.nix +++ b/pkgs/applications/networking/browsers/chromium/sources.nix @@ -1,14 +1,14 @@ # This file is autogenerated from update.sh in the same directory. { dev = { - version = "26.0.1410.10"; - url = "http://commondatastorage.googleapis.com/chromium-browser-official/chromium-26.0.1410.10.tar.xz"; - sha256 = "1s5c69j0g2nanapvq3fmkc5iv7s53x2q5d8fxgdzd7c5c8pzlbby"; + version = "26.0.1410.12"; + url = "http://commondatastorage.googleapis.com/chromium-browser-official/chromium-26.0.1410.12.tar.xz"; + sha256 = "1cfzvlldzgm53jwys5zbrd4rszkinsr4n5ky5rcg6p6nw73b4hmj"; }; beta = { - version = "25.0.1364.84"; - url = "http://commondatastorage.googleapis.com/chromium-browser-official/chromium-25.0.1364.84.tar.bz2"; - sha256 = "1p5k7vpk4v2m5yhhdkplq4iq4mm1vv297m9sp7max1sjbngwq6m5"; + version = "26.0.1410.12"; + url = "http://commondatastorage.googleapis.com/chromium-browser-official/chromium-26.0.1410.12.tar.xz"; + sha256 = "1cfzvlldzgm53jwys5zbrd4rszkinsr4n5ky5rcg6p6nw73b4hmj"; }; stable = { version = "24.0.1312.70"; From 28eff7146514f1026601f1b5b17925b2a3598b08 Mon Sep 17 00:00:00 2001 From: aszlig Date: Wed, 27 Feb 2013 06:00:56 +0100 Subject: [PATCH 42/89] Revert "chromium: Force -fno-stack-protector..." This reverts commit b7cbb4da11fb409d597df473d480c51fa0d11536. The main reason behind this - apart from looking ugly - is that it didn't really solve anything, see: http://hydra.nixos.org/build/4198299 So, we need a different and less hacky approach... Signed-off-by: aszlig --- pkgs/applications/networking/browsers/chromium/default.nix | 2 -- 1 file changed, 2 deletions(-) diff --git a/pkgs/applications/networking/browsers/chromium/default.nix b/pkgs/applications/networking/browsers/chromium/default.nix index 8578514f968..c7414eec671 100644 --- a/pkgs/applications/networking/browsers/chromium/default.nix +++ b/pkgs/applications/networking/browsers/chromium/default.nix @@ -223,6 +223,4 @@ in stdenv.mkDerivation rec { license = licenses.bsd3; platforms = platforms.linux; }; -} // optionalAttrs only25 { - NIX_CFLAGS_COMPILE = "-fno-stack-protector"; } From 80af8871deb38949e274284a368e7f8e381f721a Mon Sep 17 00:00:00 2001 From: aszlig Date: Wed, 27 Feb 2013 10:32:50 +0100 Subject: [PATCH 43/89] flashplayer-11: Update to version 11.2.202.273. This version contains another set of security fixes, details are described here: http://www.adobe.com/support/security/bulletins/apsb13-08.html Signed-off-by: aszlig --- .../browsers/mozilla-plugins/flashplayer-11/default.nix | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pkgs/applications/networking/browsers/mozilla-plugins/flashplayer-11/default.nix b/pkgs/applications/networking/browsers/mozilla-plugins/flashplayer-11/default.nix index 202dfe2b02e..7f9fef224a5 100644 --- a/pkgs/applications/networking/browsers/mozilla-plugins/flashplayer-11/default.nix +++ b/pkgs/applications/networking/browsers/mozilla-plugins/flashplayer-11/default.nix @@ -43,9 +43,9 @@ let throw "no x86_64 debugging version available" else rec { # -> http://labs.adobe.com/downloads/flashplayer10.html - version = "11.2.202.262"; + version = "11.2.202.273"; url = "http://fpdownload.macromedia.com/get/flashplayer/pdc/${version}/install_flash_player_11_linux.x86_64.tar.gz"; - sha256 = "1bfr7ajpqkah4kshhqkmi2c15mm962absrq9ks7gfsfaircp387j"; + sha256 = "0c15nszgg7zsv00n2qxha5zf8hmyf8i6byvhalnh5x46mr0rkbv9"; } else if stdenv.system == "i686-linux" then if debug then { @@ -54,9 +54,9 @@ let url = http://fpdownload.macromedia.com/pub/flashplayer/updaters/11/flashplayer_11_plugin_debug.i386.tar.gz; sha256 = "1z3649lv9sh7jnwl8d90a293nkaswagj2ynhsr4xmwiy7c0jz2lk"; } else rec { - version = "11.2.202.262"; + version = "11.2.202.273"; url = "http://fpdownload.macromedia.com/get/flashplayer/pdc/${version}/install_flash_player_11_linux.i386.tar.gz"; - sha256 = "0fhslr46apa6qfzdhagmjb8vbl741ryh6j14qy2271nl2q687jsx"; + sha256 = "1gb14xv7gbq57qg1hxmrnryaw6xgmkg54ql5hr7q6szplj65wvmd"; } else throw "Flash Player is not supported on this platform"; From d5f85c20f24089772c5c905efa56f9a984a71ad8 Mon Sep 17 00:00:00 2001 From: aszlig Date: Wed, 27 Feb 2013 12:57:40 +0100 Subject: [PATCH 44/89] xf86-input-wacom: Update to new version 0.19.0. Signed-off-by: aszlig --- pkgs/os-specific/linux/xf86-input-wacom/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/os-specific/linux/xf86-input-wacom/default.nix b/pkgs/os-specific/linux/xf86-input-wacom/default.nix index e043b12e820..63e4fb1ca73 100644 --- a/pkgs/os-specific/linux/xf86-input-wacom/default.nix +++ b/pkgs/os-specific/linux/xf86-input-wacom/default.nix @@ -3,11 +3,11 @@ , ncurses, pkgconfig, randrproto, xorgserver, xproto, udev, libXinerama, pixman }: stdenv.mkDerivation rec { - name = "xf86-input-wacom-0.16.0"; + name = "xf86-input-wacom-0.19.0"; src = fetchurl { url = "mirror://sourceforge/linuxwacom/${name}.tar.bz2"; - sha256 = "0sc0hmbs3l3ad68iwglbwjv9lg1vd333n1lv72j4nqmk7g57yrii"; + sha256 = "1lkvhirjysx0d2154jrwqc2i8jrqdjrlzjv7grbnm2cg5vpg7n53"; }; buildInputs = [ inputproto libX11 libXext libXi libXrandr libXrender From 3254c0ac29840798a96e3b6c964214ab97b57802 Mon Sep 17 00:00:00 2001 From: aszlig Date: Wed, 27 Feb 2013 21:10:26 +0100 Subject: [PATCH 45/89] chromium: Add /dev/null to patches list. This is needed in order to ensure that the postPatch hook is executed, which is not when the patches list is empty. It is fixed by 82f94df719fe9fe5a861eafb575ccb1f8b5b5efb in stdenv-updates. So as soon as the branch gets merged, we can get rid of this hack as well. Signed-off-by: aszlig --- pkgs/applications/networking/browsers/chromium/default.nix | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/pkgs/applications/networking/browsers/chromium/default.nix b/pkgs/applications/networking/browsers/chromium/default.nix index c7414eec671..2b20e26b3f9 100644 --- a/pkgs/applications/networking/browsers/chromium/default.nix +++ b/pkgs/applications/networking/browsers/chromium/default.nix @@ -135,7 +135,9 @@ in stdenv.mkDerivation rec { patches = optional cupsSupport ./cups_allow_deprecated.patch ++ optional pulseSupport ./pulseaudio_array_bounds.patch ++ maybeFixPulseAudioBuild - ++ optional post25 ./clone_detached.patch; + ++ optional post25 ./clone_detached.patch + # XXX: Remove after stdenv-updates merge! + ++ singleton "/dev/null"; postPatch = optionalString useOpenSSL '' cat $opensslPatches | patch -p1 -d third_party/openssl/openssl From b3c3579172a406a76ed8b490fe86f72259e70326 Mon Sep 17 00:00:00 2001 From: aszlig Date: Wed, 27 Feb 2013 21:15:28 +0100 Subject: [PATCH 46/89] chromium: Update stable channel to v25.0.1364.97. So, after searching for days in the wrong spot, eventually discovering that postPatch isn't run on Hydra, we're now set to move forward to version 25, YAY! Build has been tested locally (not that this would mean anything for Hydra, as we've seen) and the output has been actively used for browsing by me :-) Signed-off-by: aszlig --- pkgs/applications/networking/browsers/chromium/sources.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/applications/networking/browsers/chromium/sources.nix b/pkgs/applications/networking/browsers/chromium/sources.nix index 5c61422bea7..9c483aa1702 100644 --- a/pkgs/applications/networking/browsers/chromium/sources.nix +++ b/pkgs/applications/networking/browsers/chromium/sources.nix @@ -11,8 +11,8 @@ sha256 = "1cfzvlldzgm53jwys5zbrd4rszkinsr4n5ky5rcg6p6nw73b4hmj"; }; stable = { - version = "24.0.1312.70"; - url = "http://commondatastorage.googleapis.com/chromium-browser-official/chromium-24.0.1312.70.tar.bz2"; - sha256 = "01z2xdfrlw2iynh9ink3d7hddldh2krgx3w9qnq9nq9z54vwwzfq"; + version = "25.0.1364.97"; + url = "http://commondatastorage.googleapis.com/chromium-browser-official/chromium-25.0.1364.97.tar.bz2"; + sha256 = "1r8khcic82m6g5i7669q8fxsfhjrlvp99iggqc5qpihljsz33ghm"; }; } From 3423ea9e7beabd2c00b4266cef2e0d187e00642c Mon Sep 17 00:00:00 2001 From: aszlig Date: Wed, 27 Feb 2013 21:36:00 +0100 Subject: [PATCH 47/89] chromium: Remove version 24 specific stuff. This gets rid of the patch for newer pulseaudio library versions. In addition, we now have protobuf and pciutils in default dependencies, as those are required (or better: optional, but recommended and thus activated by the default gyp options) by versions >= 25. Also, we now no longer depend on libpng, but I'm not dropping this, as we want to get back to libpng from nixpkgs again 'real soon'. The stack-protector flag is now disabled by default accross all versions, and probably didn't hurt back in version 24, but at least we're now no longer add it dependant on a particular version. And those pesky post/onlyXX version booleans are now pre/postXX, to ensure better clarity. Signed-off-by: aszlig --- .../networking/browsers/chromium/default.nix | 33 +++++++------------ .../browsers/chromium/pulse_audio_fix.patch | 11 ------- 2 files changed, 12 insertions(+), 32 deletions(-) delete mode 100644 pkgs/applications/networking/browsers/chromium/pulse_audio_fix.patch diff --git a/pkgs/applications/networking/browsers/chromium/default.nix b/pkgs/applications/networking/browsers/chromium/default.nix index 2b20e26b3f9..5d191b2550d 100644 --- a/pkgs/applications/networking/browsers/chromium/default.nix +++ b/pkgs/applications/networking/browsers/chromium/default.nix @@ -13,13 +13,11 @@ , gcc, bison, gperf , glib, gtk, dbus_glib , libXScrnSaver, libXcursor, mesa - -# dependencies for v25 -, libvpx - -# dependencies for >= v25 , protobuf +# dependencies for v25 only +, libvpx + # dependencies for >= v26 , speechd, libXdamage @@ -59,7 +57,7 @@ let use_system_libexpat = true; use_system_libexif = true; use_system_libjpeg = true; - use_system_libpng = !post24; + use_system_libpng = false; # PNG dlopen() version conflict use_system_libusb = true; use_system_libxml = true; use_system_speex = true; @@ -76,7 +74,7 @@ let use_system_skia = false; use_system_sqlite = false; # http://crbug.com/22208 use_system_v8 = false; - } // optionalAttrs (post24 && !post25) { + } // optionalAttrs pre26 { use_system_libvpx = true; use_system_protobuf = true; }; @@ -89,14 +87,8 @@ let libusb1 libexif ]; - post23 = !versionOlder sourceInfo.version "24.0.0.0"; - post24 = !versionOlder sourceInfo.version "25.0.0.0"; - post25 = !versionOlder sourceInfo.version "26.0.0.0"; - only24 = post23 && !post24; - only25 = post24 && !post25; - - maybeFixPulseAudioBuild = optional (only24 && pulseSupport) - ./pulse_audio_fix.patch; + pre26 = versionOlder sourceInfo.version "26.0.0.0"; + post25 = !pre26; in stdenv.mkDerivation rec { name = "${packageName}-${version}"; @@ -119,13 +111,13 @@ in stdenv.mkDerivation rec { krb5 glib gtk dbus_glib libXScrnSaver libXcursor mesa + pciutils protobuf ] ++ optional gnomeKeyringSupport libgnome_keyring ++ optionals gnomeSupport [ gconf libgcrypt ] ++ optional enableSELinux libselinux ++ optional cupsSupport libgcrypt ++ optional pulseSupport pulseaudio - ++ optionals post24 [ pciutils protobuf ] - ++ optional only25 libvpx + ++ optional pre26 libvpx ++ optionals post25 [ speechd libXdamage ]; opensslPatches = optional useOpenSSL openssl.patches; @@ -134,15 +126,14 @@ in stdenv.mkDerivation rec { patches = optional cupsSupport ./cups_allow_deprecated.patch ++ optional pulseSupport ./pulseaudio_array_bounds.patch - ++ maybeFixPulseAudioBuild ++ optional post25 ./clone_detached.patch # XXX: Remove after stdenv-updates merge! ++ singleton "/dev/null"; - postPatch = optionalString useOpenSSL '' + postPatch = '' + sed -i -r -e 's/-f(stack-protector)(-all)?/-fno-\1/' build/common.gypi + '' + optionalString useOpenSSL '' cat $opensslPatches | patch -p1 -d third_party/openssl/openssl - '' + optionalString post24 '' - sed -i -r -e "s/-f(stack-protector)(-all)?/-fno-\1/" build/common.gypi '' + optionalString post25 '' sed -i -e 's|/usr/bin/gcc|gcc|' \ third_party/WebKit/Source/WebCore/WebCore.gyp/WebCore.gyp diff --git a/pkgs/applications/networking/browsers/chromium/pulse_audio_fix.patch b/pkgs/applications/networking/browsers/chromium/pulse_audio_fix.patch deleted file mode 100644 index 01ff89a9a63..00000000000 --- a/pkgs/applications/networking/browsers/chromium/pulse_audio_fix.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- chromium-build/media/audio/pulse/pulse_output.cc.orig 2012-10-26 09:44:38.509209905 -0700 -+++ chromium-build/media/audio/pulse/pulse_output.cc 2012-10-26 09:45:32.178819603 -0700 -@@ -86,7 +86,7 @@ - - // All channel maps have the same size array of channel positions. - for (unsigned int channel = 0; channel != CHANNELS_MAX; ++channel) { -- int channel_position = kChannelOrderings[channel_layout][channel]; -+ int channel_position = ChannelOrder(channel_layout, static_cast(channel)); - if (channel_position > -1) { - channel_map.map[channel_position] = ChromiumToPAChannelPosition( - static_cast(channel)); From adef38370c21957072ca5d006635a62eb050d8a0 Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Thu, 28 Feb 2013 01:16:51 +0100 Subject: [PATCH 48/89] nix: Update to 1.5 --- pkgs/tools/package-management/nix/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/tools/package-management/nix/default.nix b/pkgs/tools/package-management/nix/default.nix index c31062989e1..579805a2653 100644 --- a/pkgs/tools/package-management/nix/default.nix +++ b/pkgs/tools/package-management/nix/default.nix @@ -5,11 +5,11 @@ }: stdenv.mkDerivation rec { - name = "nix-1.4"; + name = "nix-1.5"; src = fetchurl { url = "http://nixos.org/releases/nix/${name}/${name}.tar.xz"; - sha256 = "f400c7e9c935271b833055e4d6888ec15eb90ef92ee6521dc55f1501036dc9b2"; + sha256 = "ff63673afbcfd916acef881717dd9843d143efa70529ea89dd6b92995d54c076"; }; buildNativeInputs = [ perl pkgconfig ]; From 4f4dc400994cd8c4e7de28fe57b4b30b0e8fc70b Mon Sep 17 00:00:00 2001 From: aszlig Date: Thu, 28 Feb 2013 01:22:00 +0100 Subject: [PATCH 49/89] flashplayer-11: Add missing rpath to libnss. This was missing in the previous update as well, and no one seemed to notice it, including myself? Anyway, it's now fixed. Signed-off-by: aszlig --- .../browsers/mozilla-plugins/flashplayer-11/default.nix | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pkgs/applications/networking/browsers/mozilla-plugins/flashplayer-11/default.nix b/pkgs/applications/networking/browsers/mozilla-plugins/flashplayer-11/default.nix index 7f9fef224a5..10faa983cc1 100644 --- a/pkgs/applications/networking/browsers/mozilla-plugins/flashplayer-11/default.nix +++ b/pkgs/applications/networking/browsers/mozilla-plugins/flashplayer-11/default.nix @@ -19,6 +19,7 @@ , cairo , atk , gdk_pixbuf +, nss , debug ? false /* you have to add ~/mm.cfg : @@ -78,7 +79,7 @@ stdenv.mkDerivation { rpath = stdenv.lib.makeLibraryPath [ zlib alsaLib curl nspr fontconfig freetype expat libX11 libXext libXrender libXcursor libXt gtk glib pango atk cairo gdk_pixbuf - libvdpau + libvdpau nss ]; buildPhase = ":"; From 513a3fb558a04c89091605874e14a1efaac5c507 Mon Sep 17 00:00:00 2001 From: Peter Simons Date: Thu, 28 Feb 2013 10:40:18 +0100 Subject: [PATCH 50/89] haskell-iproute: patch library to depend on 'safe' instead of the obsolete 'Safe' package --- pkgs/development/libraries/haskell/iproute/default.nix | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/pkgs/development/libraries/haskell/iproute/default.nix b/pkgs/development/libraries/haskell/iproute/default.nix index 1ec2b659f0c..4a496a981c6 100644 --- a/pkgs/development/libraries/haskell/iproute/default.nix +++ b/pkgs/development/libraries/haskell/iproute/default.nix @@ -1,5 +1,5 @@ { cabal, appar, byteorder, doctest, hspec, network, QuickCheck -, Safe +, safe }: cabal.mkDerivation (self: { @@ -8,8 +8,11 @@ cabal.mkDerivation (self: { sha256 = "1ni91llvq1mfdsjmw1laqhk964y4vlpyk5s25j8klsfn27mq6c68"; buildDepends = [ appar byteorder network ]; testDepends = [ - appar byteorder doctest hspec network QuickCheck Safe + appar byteorder doctest hspec network QuickCheck safe ]; + patchPhase = '' + sed -i -e 's|Safe|safe|' iproute.cabal + ''; meta = { homepage = "http://www.mew.org/~kazu/proj/iproute/"; description = "IP Routing Table"; From 5207a4e01fecd4c837135ba83908c4f85ddfaa5d Mon Sep 17 00:00:00 2001 From: Peter Simons Date: Thu, 28 Feb 2013 10:40:40 +0100 Subject: [PATCH 51/89] haskell-Safe: drop obsolete library, use haskell-safe instead --- pkgs/development/libraries/haskell/Safe/default.nix | 13 ------------- pkgs/top-level/haskell-packages.nix | 2 -- 2 files changed, 15 deletions(-) delete mode 100644 pkgs/development/libraries/haskell/Safe/default.nix diff --git a/pkgs/development/libraries/haskell/Safe/default.nix b/pkgs/development/libraries/haskell/Safe/default.nix deleted file mode 100644 index f35877cd656..00000000000 --- a/pkgs/development/libraries/haskell/Safe/default.nix +++ /dev/null @@ -1,13 +0,0 @@ -{ cabal }: - -cabal.mkDerivation (self: { - pname = "Safe"; - version = "0.1"; - sha256 = "0ybi5r4635yjx41ig54bm426fbdzrivc5kn8fwqxmzm62ai0v623"; - meta = { - homepage = "http://www-users.cs.york.ac.uk/~ndm/projects/libraries.php"; - description = "Library for safe (pattern match free) functions"; - license = self.stdenv.lib.licenses.bsd3; - platforms = self.ghc.meta.platforms; - }; -}) diff --git a/pkgs/top-level/haskell-packages.nix b/pkgs/top-level/haskell-packages.nix index 39d6a58aeab..b3c07255a32 100644 --- a/pkgs/top-level/haskell-packages.nix +++ b/pkgs/top-level/haskell-packages.nix @@ -1552,8 +1552,6 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y); safe = callPackage ../development/libraries/haskell/safe {}; - Safe = callPackage ../development/libraries/haskell/Safe {}; - SafeSemaphore = callPackage ../development/libraries/haskell/SafeSemaphore {}; sendfile = callPackage ../development/libraries/haskell/sendfile {}; From e23be1b2efa618f20c0006ecda1196d70e918663 Mon Sep 17 00:00:00 2001 From: Peter Simons Date: Thu, 28 Feb 2013 11:31:44 +0100 Subject: [PATCH 52/89] git-annex: update to version 4.20130227 --- .../version-management/git-and-tools/git-annex/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/version-management/git-and-tools/git-annex/default.nix b/pkgs/applications/version-management/git-and-tools/git-annex/default.nix index 3d11b484173..e1d2397c375 100644 --- a/pkgs/applications/version-management/git-and-tools/git-annex/default.nix +++ b/pkgs/applications/version-management/git-and-tools/git-annex/default.nix @@ -12,14 +12,14 @@ }: let - version = "3.20130216"; + version = "4.20130227"; in stdenv.mkDerivation { name = "git-annex-${version}"; src = fetchurl { url = "http://git.kitenet.net/?p=git-annex.git;a=snapshot;sf=tgz;h=${version}"; - sha256 = "1zbxkv9kkfyr8haml0wih1fi2xi6qazwzcxjyv8q65fa80ksskbr"; + sha256 = "1zw5kzb08zz43ahbhrazjpq9zn73l3kwnqilp464frf7fg7rwan6"; name = "git-annex-${version}.tar.gz"; }; From 93876deae2101ac0887b090ae7137703b125cf7f Mon Sep 17 00:00:00 2001 From: Peter Simons Date: Thu, 28 Feb 2013 11:31:48 +0100 Subject: [PATCH 53/89] haskell-DAV: update to version 0.3.1 --- pkgs/development/libraries/haskell/DAV/default.nix | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/pkgs/development/libraries/haskell/DAV/default.nix b/pkgs/development/libraries/haskell/DAV/default.nix index b1932966675..e3c6b11e55b 100644 --- a/pkgs/development/libraries/haskell/DAV/default.nix +++ b/pkgs/development/libraries/haskell/DAV/default.nix @@ -5,15 +5,14 @@ cabal.mkDerivation (self: { pname = "DAV"; - version = "0.3"; - sha256 = "16qbq59g79a0a1n6vblndj1fknj9fvd0anhrsz9czwl3k3lk5cx8"; + version = "0.3.1"; + sha256 = "0ql6sf61gq55iyn189papnid91n4ab5s2i24zvkqrgixjz7998rd"; isLibrary = true; isExecutable = true; buildDepends = [ caseInsensitive cmdargs httpConduit httpTypes lens liftedBase mtl network resourcet transformers xmlConduit xmlHamlet ]; - jailbreak = true; meta = { homepage = "http://floss.scru.org/hDAV"; description = "RFC 4918 WebDAV support"; From 19eb332f1a037beb3269345c066a31c5f24ebb01 Mon Sep 17 00:00:00 2001 From: Peter Simons Date: Thu, 28 Feb 2013 11:31:48 +0100 Subject: [PATCH 54/89] haskell-basic-prelude: update to version 0.3.3.0 --- pkgs/development/libraries/haskell/basic-prelude/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/libraries/haskell/basic-prelude/default.nix b/pkgs/development/libraries/haskell/basic-prelude/default.nix index df00aff549f..77f37cfe5af 100644 --- a/pkgs/development/libraries/haskell/basic-prelude/default.nix +++ b/pkgs/development/libraries/haskell/basic-prelude/default.nix @@ -4,8 +4,8 @@ cabal.mkDerivation (self: { pname = "basic-prelude"; - version = "0.3.2.0"; - sha256 = "1sdwkh9xrsx8v96d06jll7cqc0p6ykv2y9gnjzpbfx0k3ns69kcj"; + version = "0.3.3.0"; + sha256 = "1b3fydswi7sj2j5d3jfynd9r5qg8pzlv1qdb9xp56ig01ig18cyv"; buildDepends = [ hashable liftedBase ReadArgs systemFilepath text transformers unorderedContainers vector From 007ca863dc8ee8701a4511f7b71a8f62da3f06b3 Mon Sep 17 00:00:00 2001 From: Peter Simons Date: Thu, 28 Feb 2013 11:31:49 +0100 Subject: [PATCH 55/89] haskell-classy-prelude-conduit: update to version 0.5.2 --- .../libraries/haskell/classy-prelude-conduit/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/libraries/haskell/classy-prelude-conduit/default.nix b/pkgs/development/libraries/haskell/classy-prelude-conduit/default.nix index 6af68223834..44e27aa1bc3 100644 --- a/pkgs/development/libraries/haskell/classy-prelude-conduit/default.nix +++ b/pkgs/development/libraries/haskell/classy-prelude-conduit/default.nix @@ -4,8 +4,8 @@ cabal.mkDerivation (self: { pname = "classy-prelude-conduit"; - version = "0.5.1"; - sha256 = "1vwcxwrbnczchq2b773kjjr3ysc47widak8qj0kwi26nf3jics4k"; + version = "0.5.2"; + sha256 = "11krzhy78z0srjy5g6h8ssv5n3ml8ryx92x0zdjigqxw4zq9ic72"; buildDepends = [ classyPrelude conduit monadControl resourcet transformers void xmlConduit From 0e0f3c921bba2069320fa068a2e9f2adbe80a052 Mon Sep 17 00:00:00 2001 From: Peter Simons Date: Thu, 28 Feb 2013 11:31:49 +0100 Subject: [PATCH 56/89] haskell-classy-prelude: update to version 0.5.2 --- pkgs/development/libraries/haskell/classy-prelude/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/libraries/haskell/classy-prelude/default.nix b/pkgs/development/libraries/haskell/classy-prelude/default.nix index 4c2f076039e..48b6bc58369 100644 --- a/pkgs/development/libraries/haskell/classy-prelude/default.nix +++ b/pkgs/development/libraries/haskell/classy-prelude/default.nix @@ -4,8 +4,8 @@ cabal.mkDerivation (self: { pname = "classy-prelude"; - version = "0.5.1"; - sha256 = "0kgnffqvh13adadp85iw4ybbs5jpa5hwrr2dsi2aj9p8lvzac1jy"; + version = "0.5.2"; + sha256 = "1nmhx6fs783v67b5ygdlmpxbsj41brj32i1sx9gyjyhfvr40wiw5"; buildDepends = [ basicPrelude hashable liftedBase systemFilepath text transformers unorderedContainers vector From f0af955d7d4bef0e10606b10766e25e1d1aab44b Mon Sep 17 00:00:00 2001 From: Peter Simons Date: Thu, 28 Feb 2013 11:31:49 +0100 Subject: [PATCH 57/89] haskell-conduit: update to version 1.0.0.2 --- pkgs/development/libraries/haskell/conduit/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/libraries/haskell/conduit/default.nix b/pkgs/development/libraries/haskell/conduit/default.nix index 4dada245791..c452815db25 100644 --- a/pkgs/development/libraries/haskell/conduit/default.nix +++ b/pkgs/development/libraries/haskell/conduit/default.nix @@ -4,8 +4,8 @@ cabal.mkDerivation (self: { pname = "conduit"; - version = "1.0.0"; - sha256 = "1sx7s3awzb7y51prmmvrx9gxhd5068rbzwl719lfx3r50k94r00d"; + version = "1.0.0.2"; + sha256 = "0dl73wjdbprrv6ll94x4ck0b561n43y3a7764s065zbsm8mn8h3z"; buildDepends = [ liftedBase monadControl resourcet text transformers transformersBase void From d16458a486f0bd92337c808331c382b1ed3ca8f5 Mon Sep 17 00:00:00 2001 From: Peter Simons Date: Thu, 28 Feb 2013 11:31:49 +0100 Subject: [PATCH 58/89] haskell-digestive-functors-heist: update to version 0.6.1.0 --- .../haskell/digestive-functors-heist/default.nix | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/pkgs/development/libraries/haskell/digestive-functors-heist/default.nix b/pkgs/development/libraries/haskell/digestive-functors-heist/default.nix index 0b7eb1e88de..48853c13655 100644 --- a/pkgs/development/libraries/haskell/digestive-functors-heist/default.nix +++ b/pkgs/development/libraries/haskell/digestive-functors-heist/default.nix @@ -1,11 +1,13 @@ -{ cabal, digestiveFunctors, heist, mtl, text, xmlhtml }: +{ cabal, blazeBuilder, digestiveFunctors, heist, mtl, text, xmlhtml +}: cabal.mkDerivation (self: { pname = "digestive-functors-heist"; - version = "0.6.0.0"; - sha256 = "17qndqsk09fvnvyhhw3xbbjjhfyyp4sivc898vqllyyky0wqmrdk"; - buildDepends = [ digestiveFunctors heist mtl text xmlhtml ]; - jailbreak = true; + version = "0.6.1.0"; + sha256 = "08h883731cb5kqsv33f6dpf2lgh1r6qn9maqjkn5766vqf7m28nx"; + buildDepends = [ + blazeBuilder digestiveFunctors heist mtl text xmlhtml + ]; meta = { homepage = "http://github.com/jaspervdj/digestive-functors"; description = "Heist frontend for the digestive-functors library"; From 41675d6dc3cfe0945aab882cccba5671e88fb4e8 Mon Sep 17 00:00:00 2001 From: Peter Simons Date: Thu, 28 Feb 2013 11:31:49 +0100 Subject: [PATCH 59/89] haskell-heist: update to version 0.11.1 --- pkgs/development/libraries/haskell/heist/default.nix | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/pkgs/development/libraries/haskell/heist/default.nix b/pkgs/development/libraries/haskell/heist/default.nix index 526a9b6ed87..45ff3fea7f0 100644 --- a/pkgs/development/libraries/haskell/heist/default.nix +++ b/pkgs/development/libraries/haskell/heist/default.nix @@ -5,14 +5,13 @@ cabal.mkDerivation (self: { pname = "heist"; - version = "0.11.0.1"; - sha256 = "0d5nn0kfs7hbgs4b77i8c8pq2q5hldqk08dacva7xlxvjrlxsyn6"; + version = "0.11.1"; + sha256 = "17d6jycgxx5fz8sd3wnln53im29vz8l9847qsqbpyx8adrcg7rjh"; buildDepends = [ aeson attoparsec blazeBuilder blazeHtml directoryTree dlist errors filepath hashable MonadCatchIOTransformers mtl random text time unorderedContainers vector xmlhtml ]; - jailbreak = true; meta = { homepage = "http://snapframework.com/"; description = "An Haskell template system supporting both HTML5 and XML"; From 9ba66ec28ebea4e822f8f58aa01285723b7997dd Mon Sep 17 00:00:00 2001 From: Peter Simons Date: Thu, 28 Feb 2013 11:31:49 +0100 Subject: [PATCH 60/89] haskell-http-conduit: update to version 1.9.0 --- .../haskell/http-conduit/default.nix | 34 +++++++++---------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/pkgs/development/libraries/haskell/http-conduit/default.nix b/pkgs/development/libraries/haskell/http-conduit/default.nix index 5ff4b4cd95e..dc5e248f445 100644 --- a/pkgs/development/libraries/haskell/http-conduit/default.nix +++ b/pkgs/development/libraries/haskell/http-conduit/default.nix @@ -1,29 +1,29 @@ -{ cabal, asn1Data, attoparsec, attoparsecConduit, base64Bytestring -, blazeBuilder, blazeBuilderConduit, caseInsensitive, certificate -, conduit, cookie, cprngAes, dataDefault, deepseq, failure -, filepath, hspec, httpTypes, HUnit, liftedBase, mimeTypes -, monadControl, mtl, network, networkConduit, random, regexCompat +{ cabal, asn1Data, base64Bytestring, blazeBuilder +, blazeBuilderConduit, caseInsensitive, certificate, conduit +, cookie, cprngAes, dataDefault, deepseq, failure, filepath, hspec +, httpTypes, HUnit, liftedBase, mimeTypes, monadControl, mtl +, network, networkConduit, publicsuffixlist, random, regexCompat , resourcet, socks, text, time, tls, tlsExtra, transformers , transformersBase, utf8String, void, wai, warp, zlibConduit }: cabal.mkDerivation (self: { pname = "http-conduit"; - version = "1.8.9"; - sha256 = "0v99nc29h4qm1dbs7bwk4nwhxwk22vzl4ghrq9r3vishi6gwr7hb"; + version = "1.9.0"; + sha256 = "1b6f2sg96fddk5ywbfvbvj9z81695d35qymf31idpkyshcp9argk"; buildDepends = [ - asn1Data attoparsec attoparsecConduit base64Bytestring blazeBuilder - blazeBuilderConduit caseInsensitive certificate conduit cookie - cprngAes dataDefault deepseq failure filepath httpTypes liftedBase - mimeTypes monadControl mtl network random regexCompat resourcet - socks text time tls tlsExtra transformers transformersBase - utf8String void zlibConduit + asn1Data base64Bytestring blazeBuilder blazeBuilderConduit + caseInsensitive certificate conduit cookie cprngAes dataDefault + deepseq failure filepath httpTypes liftedBase mimeTypes + monadControl mtl network publicsuffixlist random regexCompat + resourcet socks text time tls tlsExtra transformers + transformersBase utf8String void zlibConduit ]; testDepends = [ - asn1Data attoparsec attoparsecConduit base64Bytestring blazeBuilder - blazeBuilderConduit caseInsensitive certificate conduit cookie - cprngAes dataDefault deepseq failure filepath hspec httpTypes HUnit - liftedBase mimeTypes monadControl mtl network networkConduit random + asn1Data base64Bytestring blazeBuilder blazeBuilderConduit + caseInsensitive certificate conduit cookie cprngAes dataDefault + deepseq failure filepath hspec httpTypes HUnit liftedBase mimeTypes + monadControl mtl network networkConduit publicsuffixlist random regexCompat resourcet socks text time tls tlsExtra transformers transformersBase utf8String void wai warp zlibConduit ]; From b34be14255f3b41b69aaf00130d91f8205870fec Mon Sep 17 00:00:00 2001 From: Peter Simons Date: Thu, 28 Feb 2013 11:31:49 +0100 Subject: [PATCH 61/89] haskell-persistent-sqlite: update to version 1.1.4.1 --- .../libraries/haskell/persistent-sqlite/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/libraries/haskell/persistent-sqlite/default.nix b/pkgs/development/libraries/haskell/persistent-sqlite/default.nix index 418c8c4ca74..066d1dd2ebe 100644 --- a/pkgs/development/libraries/haskell/persistent-sqlite/default.nix +++ b/pkgs/development/libraries/haskell/persistent-sqlite/default.nix @@ -4,8 +4,8 @@ cabal.mkDerivation (self: { pname = "persistent-sqlite"; - version = "1.1.4"; - sha256 = "1xllj5bq7rw9v32ddm515705nviarw0hp4yxj0z8jf5q5jdz2vz0"; + version = "1.1.4.1"; + sha256 = "0rhvbbzlzgzx4na7ffa2jx2zinzbb6b1jxf8964hcxx7iyzcycjj"; buildDepends = [ aeson conduit monadControl monadLogger persistent text transformers ]; From 50001e9403c846ace255bada3f26b66bc3c1d5bd Mon Sep 17 00:00:00 2001 From: Peter Simons Date: Thu, 28 Feb 2013 11:31:49 +0100 Subject: [PATCH 62/89] haskell-testpack: update to version 2.1.2.1 --- pkgs/development/libraries/haskell/testpack/default.nix | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/pkgs/development/libraries/haskell/testpack/default.nix b/pkgs/development/libraries/haskell/testpack/default.nix index 53aa0ee8613..9dc14f2f5ac 100644 --- a/pkgs/development/libraries/haskell/testpack/default.nix +++ b/pkgs/development/libraries/haskell/testpack/default.nix @@ -2,10 +2,11 @@ cabal.mkDerivation (self: { pname = "testpack"; - version = "2.1.2"; - sha256 = "12dhl8svy0wmdwlvkp0p0j6wr6vgv4hrjcpdv48kc5rcwjvh8xif"; + version = "2.1.2.1"; + sha256 = "1fm4dy9vs2whc48cr00ncqqzz6r5yp7bvgil86idbbgi8igld5j0"; buildDepends = [ HUnit mtl QuickCheck random ]; patches = [ ./support-recent-quickcheck.patch ]; + jailbreak = true; meta = { homepage = "http://hackage.haskell.org/cgi-bin/hackage-scripts/package/testpack"; description = "Test Utililty Pack for HUnit and QuickCheck"; From acdb8c9e676728c9c4d9f20bb0b0f0351d621f3f Mon Sep 17 00:00:00 2001 From: Peter Simons Date: Thu, 28 Feb 2013 11:31:49 +0100 Subject: [PATCH 63/89] haskell-yesod-test: update to version 0.3.4 --- pkgs/development/libraries/haskell/yesod-test/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/libraries/haskell/yesod-test/default.nix b/pkgs/development/libraries/haskell/yesod-test/default.nix index 3753067d958..a47d109ace5 100644 --- a/pkgs/development/libraries/haskell/yesod-test/default.nix +++ b/pkgs/development/libraries/haskell/yesod-test/default.nix @@ -6,8 +6,8 @@ cabal.mkDerivation (self: { pname = "yesod-test"; - version = "0.3.3.2"; - sha256 = "0skr710fqqnna17gywaj30kpj352px2d17fwwqb832j7mj92bmv5"; + version = "0.3.4"; + sha256 = "18sz1blnrgijcq6psqk2b5zxbizpgam1cy1vcxc4nrfryfscr42b"; buildDepends = [ attoparsec blazeBuilder blazeHtml blazeMarkup caseInsensitive cookie hspec htmlConduit httpTypes HUnit monadControl network From 82b23515d0b4ed35a4b2051793140403bad23be0 Mon Sep 17 00:00:00 2001 From: Peter Simons Date: Thu, 28 Feb 2013 11:31:49 +0100 Subject: [PATCH 64/89] haskell-yesod: update to version 1.1.9.1 --- pkgs/development/libraries/haskell/yesod/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/libraries/haskell/yesod/default.nix b/pkgs/development/libraries/haskell/yesod/default.nix index ebb46f68bc8..e51ca16aa4f 100644 --- a/pkgs/development/libraries/haskell/yesod/default.nix +++ b/pkgs/development/libraries/haskell/yesod/default.nix @@ -12,8 +12,8 @@ cabal.mkDerivation (self: { pname = "yesod"; - version = "1.1.9"; - sha256 = "0fcvf0bg7dsrka639q20dncinqq0fdv21zyvwpx63qfcmilhmjlm"; + version = "1.1.9.1"; + sha256 = "0kysj3akf2pvhsiy6f8yfs41mrya86b8ddskqzzibjmdyipiqksj"; isLibrary = true; isExecutable = true; buildDepends = [ From 97c3f61e08e3e3492e4f699d5169d6b40d2093d8 Mon Sep 17 00:00:00 2001 From: Peter Simons Date: Thu, 28 Feb 2013 11:31:50 +0100 Subject: [PATCH 65/89] haskell-jailbreak-cabal: update to version 1.1 --- pkgs/development/tools/haskell/jailbreak-cabal/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/tools/haskell/jailbreak-cabal/default.nix b/pkgs/development/tools/haskell/jailbreak-cabal/default.nix index 303e7ceb2c3..29c78329f95 100644 --- a/pkgs/development/tools/haskell/jailbreak-cabal/default.nix +++ b/pkgs/development/tools/haskell/jailbreak-cabal/default.nix @@ -2,8 +2,8 @@ cabal.mkDerivation (self: { pname = "jailbreak-cabal"; - version = "1.0"; - sha256 = "10vq592fx1i3fdqiij7daf3dmqq5c8c29ihr2y1rn2pjhkyiy4kk"; + version = "1.1"; + sha256 = "0x0dkzfjsgqpjmldgami46ki9k7pgy7ll4slms0kdc89qryzp7dg"; isLibrary = false; isExecutable = true; buildDepends = [ Cabal ]; From 329b33c59c807c7136a39523ed01e23b0bb370e6 Mon Sep 17 00:00:00 2001 From: Peter Simons Date: Thu, 28 Feb 2013 13:04:15 +0100 Subject: [PATCH 66/89] git-annex: clean up build expression --- .../git-and-tools/default.nix | 17 +++--- .../git-and-tools/git-annex/default.nix | 57 ++++++++++--------- 2 files changed, 39 insertions(+), 35 deletions(-) diff --git a/pkgs/applications/version-management/git-and-tools/default.nix b/pkgs/applications/version-management/git-and-tools/default.nix index b7bf00f07dd..066da4bff4a 100644 --- a/pkgs/applications/version-management/git-and-tools/default.nix +++ b/pkgs/applications/version-management/git-and-tools/default.nix @@ -43,13 +43,16 @@ rec { }); gitAnnex = lib.makeOverridable (import ./git-annex) { - inherit stdenv fetchurl perl coreutils git libuuid rsync findutils curl ikiwiki which openssh; - inherit (haskellPackages) ghc bloomfilter dataenc editDistance hinotify hS3 hslogger HTTP - blazeBuilder blazeHtml caseInsensitive IfElse json liftedBase MissingH monadControl mtl - network pcreLight SHA stm utf8String networkInfo dbus clientsession cryptoApi dataDefault - extensibleExceptions filepath hamlet httpTypes networkMulticast text time transformers - transformersBase wai waiLogger warp yesod yesodDefault yesodStatic testpack QuickCheck - SafeSemaphore networkProtocolXmpp async dns DAV uuid Glob; + inherit stdenv fetchurl perl which ikiwiki curl bup git gnupg1 lsof openssh rsync; + inherit (haskellPackages) ghc aeson async blazeBuilder bloomfilter + caseInsensitive clientsession cryptoApi dataDefault dataenc DAV dbus dns + editDistance extensibleExceptions filepath gnutls hamlet hinotify hS3 + hslogger httpConduit httpTypes HUnit IfElse json liftedBase MissingH + monadControl mtl network networkInfo networkMulticast networkProtocolXmpp + QuickCheck random regexCompat SafeSemaphore SHA stm text time + transformers transformersBase utf8String uuid wai waiLogger warp + xmlConduit xmlTypes yesod yesodDefault yesodForm yesodStatic testpack + cabalInstall; }; qgit = import ./qgit { diff --git a/pkgs/applications/version-management/git-and-tools/git-annex/default.nix b/pkgs/applications/version-management/git-and-tools/git-annex/default.nix index e1d2397c375..4ea0a5df8c1 100644 --- a/pkgs/applications/version-management/git-and-tools/git-annex/default.nix +++ b/pkgs/applications/version-management/git-and-tools/git-annex/default.nix @@ -1,14 +1,13 @@ -{ stdenv, ghc, fetchurl, perl, coreutils, git, libuuid, rsync -, findutils, curl, ikiwiki, which, openssh -, blazeBuilder, blazeHtml, bloomfilter, caseInsensitive -, clientsession, cryptoApi, dataDefault, dataenc, dbus -, editDistance, extensibleExceptions, filepath, hamlet, hinotify -, hS3, hslogger, HTTP, httpTypes, IfElse, json, liftedBase -, MissingH, monadControl, mtl, network, networkInfo -, networkMulticast, pcreLight, QuickCheck, SHA, stm, text, time -, transformers, transformersBase, utf8String, wai, waiLogger, warp -, yesod, yesodDefault, yesodStatic, testpack, SafeSemaphore -, networkProtocolXmpp, async, dns, DAV, uuid, Glob +{ stdenv, fetchurl, perl, which, ikiwiki, ghc, aeson, async, blazeBuilder +, bloomfilter, bup, caseInsensitive, clientsession, cryptoApi, curl, dataDefault +, dataenc, DAV, dbus, dns, editDistance, extensibleExceptions, filepath, git +, gnupg1, gnutls, hamlet, hinotify, hS3, hslogger, httpConduit, httpTypes, HUnit +, IfElse, json, liftedBase, lsof, MissingH, monadControl, mtl, network +, networkInfo, networkMulticast, networkProtocolXmpp, openssh, QuickCheck +, random, regexCompat, rsync, SafeSemaphore, SHA, stm, text, time, transformers +, transformersBase, utf8String, uuid, wai, waiLogger, warp, xmlConduit, xmlTypes +, yesod, yesodDefault, yesodForm, yesodStatic, testpack +, cabalInstall # TODO: remove this build input at the next update }: let @@ -23,27 +22,29 @@ stdenv.mkDerivation { name = "git-annex-${version}.tar.gz"; }; - buildInputs = [ ghc git libuuid rsync findutils curl ikiwiki which - openssh blazeBuilder blazeHtml bloomfilter caseInsensitive - clientsession cryptoApi dataDefault dataenc dbus editDistance - extensibleExceptions filepath hamlet hinotify hS3 hslogger HTTP - httpTypes IfElse json liftedBase MissingH monadControl mtl network - networkInfo networkMulticast pcreLight QuickCheck SHA stm text time - transformers transformersBase utf8String wai waiLogger warp yesod - yesodDefault yesodStatic testpack SafeSemaphore networkProtocolXmpp - async dns DAV uuid Glob ]; + buildInputs = [ ghc aeson async blazeBuilder bloomfilter bup ikiwiki + caseInsensitive clientsession cryptoApi curl dataDefault dataenc DAV dbus + dns editDistance extensibleExceptions filepath git gnupg1 gnutls hamlet + hinotify hS3 hslogger httpConduit httpTypes HUnit IfElse json liftedBase + lsof MissingH monadControl mtl network networkInfo networkMulticast + networkProtocolXmpp openssh QuickCheck random regexCompat rsync + SafeSemaphore SHA stm text time transformers transformersBase utf8String + uuid wai waiLogger warp xmlConduit xmlTypes yesod yesodDefault yesodForm + yesodStatic which perl testpack cabalInstall ]; - checkTarget = "test"; - doCheck = true; - - preConfigure = '' + configurePhase = '' makeFlagsArray=( PREFIX=$out ) - sed -i -e 's|#!/usr/bin/perl|#!${perl}/bin/perl|' Build/mdwn2man - sed -i -e 's|"cp |"${coreutils}/bin/cp |' -e 's|"rm -f |"${coreutils}/bin/rm -f |' test.hs - # Remove this patch after the next update! - sed -i -e '9i #define WITH_OLD_URI' Utility/Url.hs + patchShebangs . + + # cabal-install wants to store stuff in $HOME + mkdir ../tmp + export HOME=$PWD/../tmp + + cabal configure -f-fast -ftestsuite -f-android -fproduction -fdns -fxmpp -fpairing -fwebapp -fassistant -fdbus -finotify -fwebdav -fs3 ''; + checkPhase = "./git-annex test"; + meta = { homepage = "http://git-annex.branchable.com/"; description = "Manage files with git without checking them into git"; From 94fe64b3eb067c0f8533bbb582b98cd4c7e79f0a Mon Sep 17 00:00:00 2001 From: aszlig Date: Thu, 28 Feb 2013 18:44:05 +0100 Subject: [PATCH 67/89] manual-kernel: Add bc to buildNativeInputs. As timeconst.pl was replaced by a bc script in the merge window for kernel 3.9, we also need bc during build time, for more information about the reasons, please have a look at the following commit: torvalds/linux@70730bca1331fc50c3caacaea00439de1325bd6e Signed-off-by: aszlig --- pkgs/os-specific/linux/kernel/manual-config.nix | 4 ++-- pkgs/top-level/all-packages.nix | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/os-specific/linux/kernel/manual-config.nix b/pkgs/os-specific/linux/kernel/manual-config.nix index 44c31d824ae..05132b8365b 100644 --- a/pkgs/os-specific/linux/kernel/manual-config.nix +++ b/pkgs/os-specific/linux/kernel/manual-config.nix @@ -1,4 +1,4 @@ -{ stdenv, runCommand, nettools, perl, kmod, writeTextFile }: +{ stdenv, runCommand, nettools, bc, perl, kmod, writeTextFile }: with stdenv.lib; @@ -122,7 +122,7 @@ stdenv.mkDerivation { runHook postConfigure ''; - buildNativeInputs = [ perl nettools ]; + buildNativeInputs = [ perl bc nettools ]; makeFlags = commonMakeFlags ++ [ "INSTALLKERNEL=${installkernel stdenv.platform.kernelTarget}" diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 566a21a6052..7eea6c3aba6 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -6125,7 +6125,7 @@ let # A function to build a manually-configured kernel linuxManualConfig = import ../os-specific/linux/kernel/manual-config.nix { - inherit (pkgs) stdenv runCommand nettools perl kmod writeTextFile; + inherit (pkgs) stdenv runCommand nettools bc perl kmod writeTextFile; }; keyutils = callPackage ../os-specific/linux/keyutils { }; From bb5f60fec1193a527e0f3e32b485c380fd197bff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cillian=20de=20R=C3=B3iste?= Date: Fri, 1 Mar 2013 01:33:08 +0100 Subject: [PATCH 68/89] Add Jalv: an LV2 host for Jack This allows LV2 audio plugins to be connected to Jack applications --- pkgs/applications/audio/jalv/default.nix | 29 ++++++++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 ++ 2 files changed, 31 insertions(+) create mode 100644 pkgs/applications/audio/jalv/default.nix diff --git a/pkgs/applications/audio/jalv/default.nix b/pkgs/applications/audio/jalv/default.nix new file mode 100644 index 00000000000..5655c7d832b --- /dev/null +++ b/pkgs/applications/audio/jalv/default.nix @@ -0,0 +1,29 @@ +{ stdenv, fetchurl, gtk, jackaudio, lilv, lv2, pkgconfig, python +, serd, sord , sratom, suil }: + +stdenv.mkDerivation rec { + name = "jalv-${version}"; + version = "1.4.0"; + + src = fetchurl { + url = "http://download.drobilla.net/${name}.tar.bz2"; + sha256 = "1hq968fhiz86428krqhjl3vlw71bigc9bsfcv97zgvsjh0fh6qa0"; + }; + + buildInputs = [ + gtk jackaudio lilv lv2 pkgconfig python serd sord sratom suil + ]; + + configurePhase = "python waf configure --prefix=$out"; + + buildPhase = "python waf"; + + installPhase = "python waf install"; + + meta = with stdenv.lib; { + description = "A simple but fully featured LV2 host for Jack"; + homepage = http://drobilla.net/software/jalv; + license = licenses.isc; + maintainers = [ maintainers.goibhniu ]; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 7eea6c3aba6..93918671fb6 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -7360,6 +7360,8 @@ let jackmeter = callPackage ../applications/audio/jackmeter { }; + jalv = callPackage ../applications/audio/jalv { }; + jedit = callPackage ../applications/editors/jedit { }; jigdo = callPackage ../applications/misc/jigdo { }; From 1166b82fca2f89fa3db46b31313ced09a0a668f2 Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Fri, 1 Mar 2013 02:02:54 +0100 Subject: [PATCH 69/89] nix: Update to 1.5.1 --- pkgs/tools/package-management/nix/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/tools/package-management/nix/default.nix b/pkgs/tools/package-management/nix/default.nix index 579805a2653..b4af004e2b0 100644 --- a/pkgs/tools/package-management/nix/default.nix +++ b/pkgs/tools/package-management/nix/default.nix @@ -5,11 +5,11 @@ }: stdenv.mkDerivation rec { - name = "nix-1.5"; + name = "nix-1.5.1"; src = fetchurl { url = "http://nixos.org/releases/nix/${name}/${name}.tar.xz"; - sha256 = "ff63673afbcfd916acef881717dd9843d143efa70529ea89dd6b92995d54c076"; + sha256 = "c53ec8a5518445bea658e1edb4e3be8c315b583aefc55d6969f2bf6f6c805239"; }; buildNativeInputs = [ perl pkgconfig ]; From f5bd4f720afdd22c13feb77d392136838b05c35e Mon Sep 17 00:00:00 2001 From: Song Wenwu Date: Fri, 1 Mar 2013 13:48:33 +0800 Subject: [PATCH 70/89] add fvwm-2.6.5 --- .../window-managers/fvwm/default.nix | 26 +++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 ++ 2 files changed, 28 insertions(+) create mode 100644 pkgs/applications/window-managers/fvwm/default.nix diff --git a/pkgs/applications/window-managers/fvwm/default.nix b/pkgs/applications/window-managers/fvwm/default.nix new file mode 100644 index 00000000000..dd9e11328ef --- /dev/null +++ b/pkgs/applications/window-managers/fvwm/default.nix @@ -0,0 +1,26 @@ +{ stdenv, fetchurl, pkgconfig +, cairo, fontconfig, freetype, libXft, libXcursor, libXinerama +, libXpm, librsvg, libpng, fribidi, perl +}: + +stdenv.mkDerivation rec { + name = "fvwm-2.6.5"; + + src = fetchurl { + url = "ftp://ftp.fvwm.org/pub/fvwm/version-2/${name}.tar.bz2"; + sha256 = "1ks8igvmzm0m0sra05k8xzc8vkqy3gv1qskl6davw1irqnarjm11"; + }; + + buildInputs = [ + pkgconfig cairo fontconfig freetype + libXft libXcursor libXinerama libXpm + librsvg libpng fribidi perl + ]; + + meta = { + homepage = "http://fvwm.org"; + description = "A multiple large virtual desktop window manager"; + license = "GPLv2"; + }; +} + diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 93918671fb6..a86bd6bbef2 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -7032,6 +7032,8 @@ let fossil = callPackage ../applications/version-management/fossil { }; + fvwm = callPackage ../applications/window-managers/fvwm { }; + geany = callPackage ../applications/editors/geany { }; goldendict = callPackage ../applications/misc/goldendict { }; From f26b5fb73096300eead230d393c3fc206482ea2a Mon Sep 17 00:00:00 2001 From: aszlig Date: Fri, 1 Mar 2013 05:24:49 +0100 Subject: [PATCH 71/89] virtualbox+guest: Update to version 4.2.8. The tarball for this version is missing the file VRDEVideoIn.h, which is added through the missing_files_4.2.8.patch and extracted from Subversion, revision 44528. Upstream changelog(s) can be found at the usual place: https://www.virtualbox.org/wiki/Changelog Signed-off-by: aszlig --- .../virtualization/virtualbox/default.nix | 10 +- .../virtualbox/guest-additions/default.nix | 4 +- .../virtualbox/missing_files_4.2.8.patch | 993 ++++++++++++++++++ 3 files changed, 1001 insertions(+), 6 deletions(-) create mode 100644 pkgs/applications/virtualization/virtualbox/missing_files_4.2.8.patch diff --git a/pkgs/applications/virtualization/virtualbox/default.nix b/pkgs/applications/virtualization/virtualbox/default.nix index ea98d1ce7a9..d95d97688c3 100644 --- a/pkgs/applications/virtualization/virtualbox/default.nix +++ b/pkgs/applications/virtualization/virtualbox/default.nix @@ -11,8 +11,8 @@ with stdenv.lib; let - version = "4.2.6"; - extpackRevision = "82870"; + version = "4.2.8"; + extpackRevision = "83876"; forEachModule = action: '' for mod in \ @@ -35,7 +35,7 @@ let name = "Oracle_VM_VirtualBox_Extension_Pack-${version}-${extpackRevision}" + ".vbox-extpack"; # Has to be base16 because it's used as an input to VBoxExtPackHelperApp! - sha256 = "f0113688a76efa0426c27c5541c78506b18637025c35aa682ecc6eeed5d56582"; + sha256 = "fa579416f382b58c4e93d3740d076ceba728e28d987e51aced5865a46cb9111c"; url = "https://www.virtualbox.org/wiki/Downloads"; }; @@ -44,7 +44,7 @@ in stdenv.mkDerivation { src = fetchurl { url = "http://download.virtualbox.org/virtualbox/${version}/VirtualBox-${version}.tar.bz2"; - sha256 = "54526091bc2aa66b88ca878dd9ecc4466f96d607db2f6678a9d673ecf6646ae3"; + sha256 = "bc9185e0c300d61e2a6c8ac48b4bea6a0a456c9ba11d1fbadf2d1e6ca063f2b4"; }; buildInputs = @@ -54,6 +54,8 @@ in stdenv.mkDerivation { ++ optional javaBindings jdk ++ optional pythonBindings python; + patches = singleton ./missing_files_4.2.8.patch; + prePatch = '' set -x MODULES_BUILD_DIR=`echo ${kernel}/lib/modules/*/build` diff --git a/pkgs/applications/virtualization/virtualbox/guest-additions/default.nix b/pkgs/applications/virtualization/virtualbox/guest-additions/default.nix index 7a79a73c6b9..f648cb3c737 100644 --- a/pkgs/applications/virtualization/virtualbox/guest-additions/default.nix +++ b/pkgs/applications/virtualization/virtualbox/guest-additions/default.nix @@ -2,14 +2,14 @@ , libX11, libXt, libXext, libXmu, libXcomposite, libXfixes, libXrandr, libXcursor , dbus }: -let version = "4.2.6"; in +let version = "4.2.8"; in stdenv.mkDerivation { name = "VirtualBox-GuestAdditions-${version}-${kernel.version}"; src = fetchurl { url = "http://download.virtualbox.org/virtualbox/${version}/VBoxGuestAdditions_${version}.iso"; - sha256 = "1lry4hjjk8p69km1bi3mpmyarlnxz9izs2c0s8pq5rjzv1bd7bxr"; + sha256 = "04a5402d8dcdefc83ffb2785351ddc57758781a3759137974469189392ae4ad5"; }; KERN_DIR = "${kernel}/lib/modules/*/build"; diff --git a/pkgs/applications/virtualization/virtualbox/missing_files_4.2.8.patch b/pkgs/applications/virtualization/virtualbox/missing_files_4.2.8.patch new file mode 100644 index 00000000000..6cb1560dd69 --- /dev/null +++ b/pkgs/applications/virtualization/virtualbox/missing_files_4.2.8.patch @@ -0,0 +1,993 @@ +Index: VRDEVideoIn.h +=================================================================== +diff --git a/include/VBox/RemoteDesktop/VRDEVideoIn.h b/include/VBox/RemoteDesktop/VRDEVideoIn.h +new file mode 10644 +--- /dev/null (revision 0) ++++ b/include/VBox/RemoteDesktop/VRDEVideoIn.h (revision 44528) +@@ -0,0 +1,986 @@ ++/** @file ++ * VBox Remote Desktop Extension (VRDE) - Video Input interface. ++ */ ++ ++/* ++ * Copyright (C) 2012-2013 Oracle Corporation ++ * ++ * This file is part of VirtualBox Open Source Edition (OSE), as ++ * available from http://www.virtualbox.org. This file is free software; ++ * you can redistribute it and/or modify it under the terms of the GNU ++ * General Public License (GPL) as published by the Free Software ++ * Foundation, in version 2 as it comes in the "COPYING" file of the ++ * VirtualBox OSE distribution. VirtualBox OSE is distributed in the ++ * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. ++ * ++ * The contents of this file may alternatively be used under the terms ++ * of the Common Development and Distribution License Version 1.0 ++ * (CDDL) only, as it comes in the "COPYING.CDDL" file of the ++ * VirtualBox OSE distribution, in which case the provisions of the ++ * CDDL are applicable instead of those of the GPL. ++ * ++ * You may elect to license modified versions of this file under the ++ * terms and conditions of either the GPL or the CDDL or both. ++ */ ++ ++#ifndef ___VBox_RemoteDesktop_VRDEVideoIn_h ++#define ___VBox_RemoteDesktop_VRDEVideoIn_h ++ ++ ++/* Define VRDE_VIDEOIN_WITH_VRDEINTERFACE to include the server VRDE interface parts. */ ++ ++#ifdef VRDE_VIDEOIN_WITH_VRDEINTERFACE ++#include ++#endif /* VRDE_VIDEOIN_WITH_VRDEINTERFACE */ ++ ++#ifdef AssertCompileSize ++#define ASSERTSIZE(type, size) AssertCompileSize(type, size); ++#else ++#define ASSERTSIZE(type, size) ++#endif /* AssertCompileSize */ ++ ++ ++/* ++ * Interface for accessing a video camera device on the client. ++ * ++ * Async callbacks are used for providing feedback, reporting errors, etc. ++ * ++ * Initial version supports: Camera + Processing Unit + Streaming Control. ++ * ++ * There are 2 modes: ++ * 1) The virtual WebCam is already attached to the guest. ++ * 2) The virtual WebCam will be attached when the client has it. ++ * ++ * Initially the mode 1 is supported. ++ * ++ * Mode 1 details: ++ * The WebCam has some fixed functionality, according to the descriptors, ++ * which has been already read by the guest. So some of functions will ++ * not work if the client does not support them. ++ * ++ * Mode 2 details: ++ * Virtual WebCam descriptors are built from the client capabilities. ++ * ++ * Similarly to the smartcard, the server will inform the ConsoleVRDE that there is a WebCam. ++ * ConsoleVRDE creates a VRDEVIDEOIN handle and forwards virtual WebCam requests to it. ++ * ++ * Interface with VBox. ++ * ++ * Virtual WebCam ConsoleVRDE VRDE ++ * ++ * Negotiate <-> ++ * <- VideoInDeviceNotify(Attached, DeviceId) ++ * -> GetDeviceDesc ++ * <- DeviceDesc ++ * 2 <- CreateCamera ++ * 2 CameraCreated -> ++ * ++ * CameraRequest -> Request -> ++ * Response <- <- Response <- Response ++ * Frame <- <- Frame <- Frame ++ * <- VideoInDeviceNotify(Detached, DeviceId) ++ * ++ * Unsupported requests fail. ++ * The Device Description received from the client may be used to validate WebCam requests ++ * in the ConsoleVRDE code, for example filter out unsupported requests. ++ * ++ */ ++ ++/* All structures in this file are packed. ++ * Everything is little-endian. ++ */ ++#pragma pack(1) ++ ++/* ++ * The interface supports generic video input descriptors, capabilities and controls: ++ * * Descriptors ++ * + Interface ++ * - Input, Camera Terminal ++ * - Processing Unit ++ * + Video Streaming ++ * - Input Header ++ * - Payload Format ++ * - Video Frame ++ * - Still Image Frame ++ * * Video Control requests ++ * + Interface ++ * - Power Mode ++ * + Unit and Terminal ++ * camera ++ * - Scanning Mode (interlaced, progressive) ++ * - Auto-Exposure Mode ++ * - Auto-Exposure Priority ++ * - Exposure Time Absolute, Relative ++ * - Focus Absolute, Relative, Auto ++ * - Iris Absolute, Relative ++ * - Zoom Absolute, Relative ++ * - PanTilt Absolute, Relative ++ * - Roll Absolute, Relative ++ * - Privacy ++ * processing ++ * - Backlight Compensation ++ * - Brightness ++ * - Contrast ++ * - Gain ++ * - Power Line Frequency ++ * - Hue Manual, Auto ++ * - Saturation ++ * - Sharpness ++ * - Gamma ++ * - White Balance Temperature Manual, Auto ++ * - White Balance Component Manual, Auto ++ * - Digital Multiplier ++ * - Digital Multiplier Limit ++ * * Video Streaming requests ++ * + Interface ++ * - Synch Delay ++ * - Still Image Trigger ++ * - Generate Key Frame ++ * - Update Frame Segment ++ * - Stream Error Code ++ * ++ * ++ * Notes: ++ * * still capture uses a method similar to method 2, because the still frame will ++ * be send instead of video over the channel. ++ * Also the method 2 can be in principle emulated by both 1 and 3 on the client. ++ * However the client can initiate a still frame transfer, similar to hardware button trigger. ++ * * all control changes are async. ++ * * probe/commit are not used. The server can select a supported format/frame from the list. ++ * * no color matching. sRGB is the default. ++ * * most of constants are the same as in USB Video Class spec, but they are not the same and ++ * should be always converted. ++ */ ++ ++/* ++ * The DEVICEDEC describes the device and provides a list of supported formats: ++ * VRDEVIDEOINDEVICEDESC ++ * VRDEVIDEOINFORMATDESC[0]; ++ * VRDEVIDEOINFRAMEDESC[0..N-1] ++ * VRDEVIDEOINFORMATDESC[1]; ++ * VRDEVIDEOINFRAMEDESC[0..M-1] ++ * ... ++ */ ++ ++typedef struct VRDEVIDEOINDEVICEDESC ++{ ++ uint16_t u16ObjectiveFocalLengthMin; ++ uint16_t u16ObjectiveFocalLengthMax; ++ uint16_t u16OcularFocalLength; ++ uint16_t u16MaxMultiplier; ++ uint32_t fu32CameraControls; /* VRDE_VIDEOIN_F_CT_CTRL_* */ ++ uint32_t fu32ProcessingControls; /* VRDE_VIDEOIN_F_PU_CTRL_* */ ++ uint8_t fu8DeviceCaps; /* VRDE_VIDEOIN_F_DEV_CAP_* */ ++ uint8_t u8NumFormats; /* Number of following VRDEVIDEOINFORMATDESC structures. */ ++ uint16_t cbExt; /* Size of the optional extended description. */ ++ /* An extended description may follow. */ ++ /* An array of VRDEVIDEOINFORMATDESC follows. */ ++} VRDEVIDEOINDEVICEDESC; ++ ++/* VRDEVIDEOINDEVICEDESC::fu32CameraControls */ ++#define VRDE_VIDEOIN_F_CT_CTRL_SCANNING_MODE 0x00000001 /* D0: Scanning Mode */ ++#define VRDE_VIDEOIN_F_CT_CTRL_AE_MODE 0x00000002 /* D1: Auto-Exposure Mode */ ++#define VRDE_VIDEOIN_F_CT_CTRL_AE_PRIORITY 0x00000004 /* D2: Auto-Exposure Priority */ ++#define VRDE_VIDEOIN_F_CT_CTRL_EXPOSURE_TIME_ABSOLUTE 0x00000008 /* D3: Exposure Time (Absolute) */ ++#define VRDE_VIDEOIN_F_CT_CTRL_EXPOSURE_TIME_RELATIVE 0x00000010 /* D4: Exposure Time (Relative) */ ++#define VRDE_VIDEOIN_F_CT_CTRL_FOCUS_ABSOLUTE 0x00000020 /* D5: Focus (Absolute) */ ++#define VRDE_VIDEOIN_F_CT_CTRL_FOCUS_RELATIVE 0x00000040 /* D6: Focus (Relative) */ ++#define VRDE_VIDEOIN_F_CT_CTRL_IRIS_ABSOLUTE 0x00000080 /* D7: Iris (Absolute) */ ++#define VRDE_VIDEOIN_F_CT_CTRL_IRIS_RELATIVE 0x00000100 /* D8: Iris (Relative) */ ++#define VRDE_VIDEOIN_F_CT_CTRL_ZOOM_ABSOLUTE 0x00000200 /* D9: Zoom (Absolute) */ ++#define VRDE_VIDEOIN_F_CT_CTRL_ZOOM_RELATIVE 0x00000400 /* D10: Zoom (Relative) */ ++#define VRDE_VIDEOIN_F_CT_CTRL_PANTILT_ABSOLUTE 0x00000800 /* D11: PanTilt (Absolute) */ ++#define VRDE_VIDEOIN_F_CT_CTRL_PANTILT_RELATIVE 0x00001000 /* D12: PanTilt (Relative) */ ++#define VRDE_VIDEOIN_F_CT_CTRL_ROLL_ABSOLUTE 0x00002000 /* D13: Roll (Absolute) */ ++#define VRDE_VIDEOIN_F_CT_CTRL_ROLL_RELATIVE 0x00004000 /* D14: Roll (Relative) */ ++#define VRDE_VIDEOIN_F_CT_CTRL_RESERVED1 0x00008000 /* D15: Reserved */ ++#define VRDE_VIDEOIN_F_CT_CTRL_RESERVED2 0x00010000 /* D16: Reserved */ ++#define VRDE_VIDEOIN_F_CT_CTRL_FOCUS_AUTO 0x00020000 /* D17: Focus, Auto */ ++#define VRDE_VIDEOIN_F_CT_CTRL_PRIVACY 0x00040000 /* D18: Privacy */ ++ ++/* VRDEVIDEOINDEVICEDESC::fu32ProcessingControls */ ++#define VRDE_VIDEOIN_F_PU_CTRL_BRIGHTNESS 0x00000001 /* D0: Brightness */ ++#define VRDE_VIDEOIN_F_PU_CTRL_CONTRAST 0x00000002 /* D1: Contrast */ ++#define VRDE_VIDEOIN_F_PU_CTRL_HUE 0x00000004 /* D2: Hue */ ++#define VRDE_VIDEOIN_F_PU_CTRL_SATURATION 0x00000008 /* D3: Saturation */ ++#define VRDE_VIDEOIN_F_PU_CTRL_SHARPNESS 0x00000010 /* D4: Sharpness */ ++#define VRDE_VIDEOIN_F_PU_CTRL_GAMMA 0x00000020 /* D5: Gamma */ ++#define VRDE_VIDEOIN_F_PU_CTRL_WHITE_BALANCE_TEMPERATURE 0x00000040 /* D6: White Balance Temperature */ ++#define VRDE_VIDEOIN_F_PU_CTRL_WHITE_BALANCE_COMPONENT 0x00000080 /* D7: White Balance Component */ ++#define VRDE_VIDEOIN_F_PU_CTRL_BACKLIGHT_COMPENSATION 0x00000100 /* D8: Backlight Compensation */ ++#define VRDE_VIDEOIN_F_PU_CTRL_GAIN 0x00000200 /* D9: Gain */ ++#define VRDE_VIDEOIN_F_PU_CTRL_POWER_LINE_FREQUENCY 0x00000400 /* D10: Power Line Frequency */ ++#define VRDE_VIDEOIN_F_PU_CTRL_HUE_AUTO 0x00000800 /* D11: Hue, Auto */ ++#define VRDE_VIDEOIN_F_PU_CTRL_WHITE_BALANCE_TEMPERATURE_AUTO 0x00001000 /* D12: White Balance Temperature, Auto */ ++#define VRDE_VIDEOIN_F_PU_CTRL_WHITE_BALANCE_COMPONENT_AUTO 0x00002000 /* D13: White Balance Component, Auto */ ++#define VRDE_VIDEOIN_F_PU_CTRL_DIGITAL_MULTIPLIER 0x00004000 /* D14: Digital Multiplier */ ++#define VRDE_VIDEOIN_F_PU_CTRL_DIGITAL_MULTIPLIER_LIMIT 0x00008000 /* D15: Digital Multiplier Limit */ ++ ++/* VRDEVIDEOINDEVICEDESC::fu8DeviceCaps */ ++#define VRDE_VIDEOIN_F_DEV_CAP_DYNAMICCHANGE 0x01 /* Whether dynamic format change is supported. */ ++#define VRDE_VIDEOIN_F_DEV_CAP_TRIGGER 0x02 /* Whether hardware triggering is supported. */ ++#define VRDE_VIDEOIN_F_DEV_CAP_TRIGGER_USAGE 0x04 /* 0 - still image, 1 - generic button event.*/ ++ ++/* The video format descriptor. */ ++typedef struct VRDEVIDEOINFORMATDESC ++{ ++ uint16_t cbFormat; /* Size of the structure including cbFormat and format specific data. */ ++ uint8_t u8FormatId; /* The unique identifier of the format on the client. */ ++ uint8_t u8FormatType; /* MJPEG etc. VRDE_VIDEOIN_FORMAT_* */ ++ uint8_t u8FormatFlags; /* VRDE_VIDEOIN_F_FMT_* */ ++ uint8_t u8NumFrames; /* Number of following VRDEVIDEOINFRAMEDESC structures. */ ++ uint16_t u16Reserved; /* Must be set to 0. */ ++ /* Other format specific data may follow. */ ++ /* An array of VRDEVIDEOINFRAMEDESC follows. */ ++} VRDEVIDEOINFORMATDESC; ++ ++/* VRDEVIDEOINFORMATDESC::u8FormatType */ ++#define VRDE_VIDEOIN_FORMAT_UNCOMPRESSED 0x04 ++#define VRDE_VIDEOIN_FORMAT_MJPEG 0x06 ++#define VRDE_VIDEOIN_FORMAT_MPEG2TS 0x0A ++#define VRDE_VIDEOIN_FORMAT_DV 0x0C ++#define VRDE_VIDEOIN_FORMAT_FRAME_BASED 0x10 ++#define VRDE_VIDEOIN_FORMAT_STREAM_BASED 0x12 ++ ++/* VRDEVIDEOINFORMATDESC::u8FormatFlags. */ ++#define VRDE_VIDEOIN_F_FMT_GENERATEKEYFRAME 0x01 /* Supports Generate Key Frame */ ++#define VRDE_VIDEOIN_F_FMT_UPDATEFRAMESEGMENT 0x02 /* Supports Update Frame Segment */ ++#define VRDE_VIDEOIN_F_FMT_COPYPROTECT 0x04 /* If duplication should be restricted. */ ++#define VRDE_VIDEOIN_F_FMT_COMPQUALITY 0x08 /* If the format supports an adjustable compression quality. */ ++ ++typedef struct VRDEVIDEOINFRAMEDESC ++{ ++ uint16_t cbFrame; /* Size of the structure including cbFrame and frame specific data. */ ++ uint8_t u8FrameId; /* The unique identifier of the frame for the corresponding format on the client. */ ++ uint8_t u8FrameFlags; ++ uint16_t u16Width; ++ uint16_t u16Height; ++ uint32_t u32NumFrameIntervals; /* The number of supported frame intervals. */ ++ uint32_t u32MinFrameInterval; /* Shortest frame interval supported (at highest frame rate), in 100ns units. */ ++ uint32_t u32MaxFrameInterval; /* Longest frame interval supported (at lowest frame rate), in 100ns units. */ ++ /* Supported frame intervals (in 100ns units) follow if VRDE_VIDEOIN_F_FRM_DISCRETE_INTERVALS is set. ++ * uint32_t au32FrameIntervals[u32NumFrameIntervals]; ++ */ ++ /* Other frame specific data may follow. */ ++} VRDEVIDEOINFRAMEDESC; ++ ++/* VRDEVIDEOINFRAMEDESC::u8FrameFlags. */ ++#define VRDE_VIDEOIN_F_FRM_STILL 0x01 /* If still images are supported for this frame. */ ++#define VRDE_VIDEOIN_F_FRM_DISCRETE_INTERVALS 0x02 /* If the discrete intervals list is included. */ ++ ++/* ++ * Controls. ++ * ++ * The same structures are used for both SET and GET requests. ++ * Requests are async. A callback is invoked, when the client returns a reply. ++ * A control change notification also uses these structures. ++ * ++ * If a control request can not be fulfilled, then VRDE_VIDEOIN_CTRLHDR_F_FAIL ++ * will be set and u8Status contains the error code. This replaces the VC_REQUEST_ERROR_CODE_CONTROL. ++ */ ++ ++typedef struct VRDEVIDEOINCTRLHDR ++{ ++ uint16_t u16ControlSelector; /* VRDE_VIDEOIN_CTRLSEL_* */ ++ uint16_t u16RequestType; /* VRDE_VIDEOIN_CTRLREQ_* */ ++ uint16_t u16ParmSize; /* The size of the control specific parameters. */ ++ uint8_t u8Flags; /* VRDE_VIDEOIN_CTRLHDR_F_* */ ++ uint8_t u8Status; /* VRDE_VIDEOIN_CTRLHDR_STATUS_* */ ++ /* Control specific data follows. */ ++} VRDEVIDEOINCTRLHDR; ++ ++/* Control request types: VRDEVIDEOINCTRLHDR::u16RequestType. */ ++#define VRDE_VIDEOIN_CTRLREQ_UNDEFINED 0x00 ++#define VRDE_VIDEOIN_CTRLREQ_SET_CUR 0x01 ++#define VRDE_VIDEOIN_CTRLREQ_GET_CUR 0x81 ++#define VRDE_VIDEOIN_CTRLREQ_GET_MIN 0x82 ++#define VRDE_VIDEOIN_CTRLREQ_GET_MAX 0x83 ++#define VRDE_VIDEOIN_CTRLREQ_GET_RES 0x84 ++#define VRDE_VIDEOIN_CTRLREQ_GET_LEN 0x85 ++#define VRDE_VIDEOIN_CTRLREQ_GET_INFO 0x86 ++#define VRDE_VIDEOIN_CTRLREQ_GET_DEF 0x87 ++ ++/* VRDEVIDEOINCTRLHDR::u8Flags */ ++#define VRDE_VIDEOIN_CTRLHDR_F_NOTIFY 0x01 /* Control change notification, the attribute is derived from u16RequestType and F_FAIL. */ ++#define VRDE_VIDEOIN_CTRLHDR_F_FAIL 0x02 /* The operation failed. Error code is in u8Status. */ ++ ++/* VRDEVIDEOINCTRLHDR::u8Status if the VRDE_VIDEOIN_CTRLHDR_F_FAIL is set. */ ++#define VRDE_VIDEOIN_CTRLHDR_STATUS_SUCCESS 0x00 /**/ ++#define VRDE_VIDEOIN_CTRLHDR_STATUS_NOTREADY 0x01 /* Not ready */ ++#define VRDE_VIDEOIN_CTRLHDR_STATUS_WRONGSTATE 0x02 /* Wrong state */ ++#define VRDE_VIDEOIN_CTRLHDR_STATUS_POWER 0x03 /* Power */ ++#define VRDE_VIDEOIN_CTRLHDR_STATUS_OUTOFRANGE 0x04 /* Out of range */ ++#define VRDE_VIDEOIN_CTRLHDR_STATUS_INVALIDUNIT 0x05 /* Invalid unit */ ++#define VRDE_VIDEOIN_CTRLHDR_STATUS_INVALIDCONTROL 0x06 /* Invalid control */ ++#define VRDE_VIDEOIN_CTRLHDR_STATUS_INVALIDREQUEST 0x07 /* Invalid Request */ ++#define VRDE_VIDEOIN_CTRLHDR_STATUS_UNKNOWN 0xFF /* Unknown */ ++ ++/* Control selectors. 16 bit. High byte is the category. Low byte is the identifier.*/ ++#ifdef RT_MAKE_U16 ++#define VRDE_VIDEOIN_CTRLSEL_MAKE(Lo, Hi) RT_MAKE_U16(Lo, Hi) ++#else ++#define VRDE_VIDEOIN_CTRLSEL_MAKE(Lo, Hi) ((uint16_t)( (uint16_t)((uint8_t)(Hi)) << 8 | (uint8_t)(Lo) )) ++#endif ++ ++#define VRDE_VIDEOIN_CTRLSEL_VC(a) VRDE_VIDEOIN_CTRLSEL_MAKE(a, 0x01) ++#define VRDE_VIDEOIN_CTRLSEL_CT(a) VRDE_VIDEOIN_CTRLSEL_MAKE(a, 0x02) ++#define VRDE_VIDEOIN_CTRLSEL_PU(a) VRDE_VIDEOIN_CTRLSEL_MAKE(a, 0x03) ++#define VRDE_VIDEOIN_CTRLSEL_VS(a) VRDE_VIDEOIN_CTRLSEL_MAKE(a, 0x04) ++#define VRDE_VIDEOIN_CTRLSEL_HW(a) VRDE_VIDEOIN_CTRLSEL_MAKE(a, 0x05) ++ ++#define VRDE_VIDEOIN_CTRLSEL_VC_VIDEO_POWER_MODE_CONTROL VRDE_VIDEOIN_CTRLSEL_VC(0x01) ++ ++#define VRDE_VIDEOIN_CTRLSEL_CT_UNDEFINED VRDE_VIDEOIN_CTRLSEL_CT(0x00) ++#define VRDE_VIDEOIN_CTRLSEL_CT_SCANNING_MODE VRDE_VIDEOIN_CTRLSEL_CT(0x01) ++#define VRDE_VIDEOIN_CTRLSEL_CT_AE_MODE VRDE_VIDEOIN_CTRLSEL_CT(0x02) ++#define VRDE_VIDEOIN_CTRLSEL_CT_AE_PRIORITY VRDE_VIDEOIN_CTRLSEL_CT(0x03) ++#define VRDE_VIDEOIN_CTRLSEL_CT_EXPOSURE_TIME_ABSOLUTE VRDE_VIDEOIN_CTRLSEL_CT(0x04) ++#define VRDE_VIDEOIN_CTRLSEL_CT_EXPOSURE_TIME_RELATIVE VRDE_VIDEOIN_CTRLSEL_CT(0x05) ++#define VRDE_VIDEOIN_CTRLSEL_CT_FOCUS_ABSOLUTE VRDE_VIDEOIN_CTRLSEL_CT(0x06) ++#define VRDE_VIDEOIN_CTRLSEL_CT_FOCUS_RELATIVE VRDE_VIDEOIN_CTRLSEL_CT(0x07) ++#define VRDE_VIDEOIN_CTRLSEL_CT_FOCUS_AUTO VRDE_VIDEOIN_CTRLSEL_CT(0x08) ++#define VRDE_VIDEOIN_CTRLSEL_CT_IRIS_ABSOLUTE VRDE_VIDEOIN_CTRLSEL_CT(0x09) ++#define VRDE_VIDEOIN_CTRLSEL_CT_IRIS_RELATIVE VRDE_VIDEOIN_CTRLSEL_CT(0x0A) ++#define VRDE_VIDEOIN_CTRLSEL_CT_ZOOM_ABSOLUTE VRDE_VIDEOIN_CTRLSEL_CT(0x0B) ++#define VRDE_VIDEOIN_CTRLSEL_CT_ZOOM_RELATIVE VRDE_VIDEOIN_CTRLSEL_CT(0x0C) ++#define VRDE_VIDEOIN_CTRLSEL_CT_PANTILT_ABSOLUTE VRDE_VIDEOIN_CTRLSEL_CT(0x0D) ++#define VRDE_VIDEOIN_CTRLSEL_CT_PANTILT_RELATIVE VRDE_VIDEOIN_CTRLSEL_CT(0x0E) ++#define VRDE_VIDEOIN_CTRLSEL_CT_ROLL_ABSOLUTE VRDE_VIDEOIN_CTRLSEL_CT(0x0F) ++#define VRDE_VIDEOIN_CTRLSEL_CT_ROLL_RELATIVE VRDE_VIDEOIN_CTRLSEL_CT(0x10) ++#define VRDE_VIDEOIN_CTRLSEL_CT_PRIVACY VRDE_VIDEOIN_CTRLSEL_CT(0x11) ++ ++#define VRDE_VIDEOIN_CTRLSEL_PU_UNDEFINED VRDE_VIDEOIN_CTRLSEL_PU(0x00) ++#define VRDE_VIDEOIN_CTRLSEL_PU_BACKLIGHT_COMPENSATION VRDE_VIDEOIN_CTRLSEL_PU(0x01) ++#define VRDE_VIDEOIN_CTRLSEL_PU_BRIGHTNESS VRDE_VIDEOIN_CTRLSEL_PU(0x02) ++#define VRDE_VIDEOIN_CTRLSEL_PU_CONTRAST VRDE_VIDEOIN_CTRLSEL_PU(0x03) ++#define VRDE_VIDEOIN_CTRLSEL_PU_GAIN VRDE_VIDEOIN_CTRLSEL_PU(0x04) ++#define VRDE_VIDEOIN_CTRLSEL_PU_POWER_LINE_FREQUENCY VRDE_VIDEOIN_CTRLSEL_PU(0x05) ++#define VRDE_VIDEOIN_CTRLSEL_PU_HUE VRDE_VIDEOIN_CTRLSEL_PU(0x06) ++#define VRDE_VIDEOIN_CTRLSEL_PU_SATURATION VRDE_VIDEOIN_CTRLSEL_PU(0x07) ++#define VRDE_VIDEOIN_CTRLSEL_PU_SHARPNESS VRDE_VIDEOIN_CTRLSEL_PU(0x08) ++#define VRDE_VIDEOIN_CTRLSEL_PU_GAMMA VRDE_VIDEOIN_CTRLSEL_PU(0x09) ++#define VRDE_VIDEOIN_CTRLSEL_PU_WHITE_BALANCE_TEMPERATURE VRDE_VIDEOIN_CTRLSEL_PU(0x0A) ++#define VRDE_VIDEOIN_CTRLSEL_PU_WHITE_BALANCE_TEMPERATURE_AUTO VRDE_VIDEOIN_CTRLSEL_PU(0x0B) ++#define VRDE_VIDEOIN_CTRLSEL_PU_WHITE_BALANCE_COMPONENT VRDE_VIDEOIN_CTRLSEL_PU(0x0C) ++#define VRDE_VIDEOIN_CTRLSEL_PU_WHITE_BALANCE_COMPONENT_AUTO VRDE_VIDEOIN_CTRLSEL_PU(0x0D) ++#define VRDE_VIDEOIN_CTRLSEL_PU_DIGITAL_MULTIPLIER VRDE_VIDEOIN_CTRLSEL_PU(0x0E) ++#define VRDE_VIDEOIN_CTRLSEL_PU_DIGITAL_MULTIPLIER_LIMIT VRDE_VIDEOIN_CTRLSEL_PU(0x0F) ++#define VRDE_VIDEOIN_CTRLSEL_PU_HUE_AUTO VRDE_VIDEOIN_CTRLSEL_PU(0x10) ++#define VRDE_VIDEOIN_CTRLSEL_PU_ANALOG_VIDEO_STANDARD VRDE_VIDEOIN_CTRLSEL_PU(0x11) ++#define VRDE_VIDEOIN_CTRLSEL_PU_ANALOG_LOCK_STATUS VRDE_VIDEOIN_CTRLSEL_PU(0x12) ++ ++#define VRDE_VIDEOIN_CTRLSEL_VS_UNDEFINED VRDE_VIDEOIN_CTRLSEL_VS(0x00) ++#define VRDE_VIDEOIN_CTRLSEL_VS_START VRDE_VIDEOIN_CTRLSEL_VS(0x01) ++#define VRDE_VIDEOIN_CTRLSEL_VS_STOP VRDE_VIDEOIN_CTRLSEL_VS(0x02) ++#define VRDE_VIDEOIN_CTRLSEL_VS_STILL_IMAGE_TRIGGER VRDE_VIDEOIN_CTRLSEL_VS(0x05) ++#define VRDE_VIDEOIN_CTRLSEL_VS_STREAM_ERROR_CODE VRDE_VIDEOIN_CTRLSEL_VS(0x06) ++#define VRDE_VIDEOIN_CTRLSEL_VS_GENERATE_KEY_FRAME VRDE_VIDEOIN_CTRLSEL_VS(0x07) ++#define VRDE_VIDEOIN_CTRLSEL_VS_UPDATE_FRAME_SEGMENT VRDE_VIDEOIN_CTRLSEL_VS(0x08) ++#define VRDE_VIDEOIN_CTRLSEL_VS_SYNCH_DELAY VRDE_VIDEOIN_CTRLSEL_VS(0x09) ++ ++#define VRDE_VIDEOIN_CTRLSEL_HW_BUTTON VRDE_VIDEOIN_CTRLSEL_HW(0x01) ++ ++typedef struct VRDEVIDEOINCTRL_VIDEO_POWER_MODE ++{ ++ VRDEVIDEOINCTRLHDR hdr; ++ uint8_t u8DevicePowerMode; ++} VRDEVIDEOINCTRL_VIDEO_POWER_MODE; ++ ++typedef struct VRDEVIDEOINCTRL_CT_SCANNING_MODE ++{ ++ VRDEVIDEOINCTRLHDR hdr; ++ uint8_t u8ScanningMode; ++} VRDEVIDEOINCTRL_CT_SCANNING_MODE; ++ ++typedef struct VRDEVIDEOINCTRL_CT_AE_MODE ++{ ++ VRDEVIDEOINCTRLHDR hdr; ++ uint8_t u8AutoExposureMode; ++} VRDEVIDEOINCTRL_CT_AE_MODE; ++ ++typedef struct VRDEVIDEOINCTRL_CT_AE_PRIORITY ++{ ++ VRDEVIDEOINCTRLHDR hdr; ++ uint8_t u8AutoExposurePriority; ++} VRDEVIDEOINCTRL_CT_AE_PRIORITY; ++ ++typedef struct VRDEVIDEOINCTRL_CT_EXPOSURE_TIME_ABSOLUTE ++{ ++ VRDEVIDEOINCTRLHDR hdr; ++ uint32_t u32ExposureTimeAbsolute; ++} VRDEVIDEOINCTRL_CT_EXPOSURE_TIME_ABSOLUTE; ++ ++typedef struct VRDEVIDEOINCTRL_CT_EXPOSURE_TIME_RELATIVE ++{ ++ VRDEVIDEOINCTRLHDR hdr; ++ uint8_t u8ExposureTimeRelative; ++} VRDEVIDEOINCTRL_CT_EXPOSURE_TIME_RELATIVE; ++ ++typedef struct VRDEVIDEOINCTRL_CT_FOCUS_ABSOLUTE ++{ ++ VRDEVIDEOINCTRLHDR hdr; ++ uint16_t u16FocusAbsolute; ++} VRDEVIDEOINCTRL_CT_FOCUS_ABSOLUTE; ++ ++typedef struct VRDEVIDEOINCTRL_CT_FOCUS_RELATIVE ++{ ++ VRDEVIDEOINCTRLHDR hdr; ++ uint8_t u8FocusRelative; ++ uint8_t u8Speed; ++} VRDEVIDEOINCTRL_CT_FOCUS_RELATIVE; ++ ++typedef struct VRDEVIDEOINCTRL_CT_FOCUS_AUTO ++{ ++ VRDEVIDEOINCTRLHDR hdr; ++ uint8_t u8FocusAuto; ++} VRDEVIDEOINCTRL_CT_FOCUS_AUTO; ++ ++typedef struct VRDEVIDEOINCTRL_CT_IRIS_ABSOLUTE ++{ ++ VRDEVIDEOINCTRLHDR hdr; ++ uint16_t u16IrisAbsolute; ++} VRDEVIDEOINCTRL_CT_IRIS_ABSOLUTE; ++ ++typedef struct VRDEVIDEOINCTRL_CT_IRIS_RELATIVE ++{ ++ VRDEVIDEOINCTRLHDR hdr; ++ uint8_t u8IrisRelative; ++} VRDEVIDEOINCTRL_CT_IRIS_RELATIVE; ++ ++typedef struct VRDEVIDEOINCTRL_CT_ZOOM_ABSOLUTE ++{ ++ VRDEVIDEOINCTRLHDR hdr; ++ uint16_t u16ZoomAbsolute; ++} VRDEVIDEOINCTRL_CT_ZOOM_ABSOLUTE; ++ ++typedef struct VRDEVIDEOINCTRL_CT_ZOOM_RELATIVE ++{ ++ VRDEVIDEOINCTRLHDR hdr; ++ uint8_t u8Zoom; ++ uint8_t u8DigitalZoom; ++ uint8_t u8Speed; ++} VRDEVIDEOINCTRL_CT_ZOOM_RELATIVE; ++ ++typedef struct VRDEVIDEOINCTRL_CT_PANTILT_ABSOLUTE ++{ ++ VRDEVIDEOINCTRLHDR hdr; ++ uint32_t u32PanAbsolute; ++ uint32_t u32TiltAbsolute; ++} VRDEVIDEOINCTRL_CT_PANTILT_ABSOLUTE; ++ ++typedef struct VRDEVIDEOINCTRL_CT_PANTILT_RELATIVE ++{ ++ VRDEVIDEOINCTRLHDR hdr; ++ uint8_t u8PanRelative; ++ uint8_t u8PanSpeed; ++ uint8_t u8TiltRelative; ++ uint8_t u8TiltSpeed; ++} VRDEVIDEOINCTRL_CT_PANTILT_RELATIVE; ++ ++typedef struct VRDEVIDEOINCTRL_CT_ROLL_ABSOLUTE ++{ ++ VRDEVIDEOINCTRLHDR hdr; ++ uint16_t u16RollAbsolute; ++} VRDEVIDEOINCTRL_CT_ROLL_ABSOLUTE; ++ ++typedef struct VRDEVIDEOINCTRL_CT_ROLL_RELATIVE ++{ ++ VRDEVIDEOINCTRLHDR hdr; ++ uint8_t u8RollRelative; ++ uint8_t u8Speed; ++} VRDEVIDEOINCTRL_CT_ROLL_RELATIVE; ++ ++typedef struct VRDEVIDEOINCTRL_CT_PRIVACY_MODE ++{ ++ VRDEVIDEOINCTRLHDR hdr; ++ uint8_t u8Privacy; ++} VRDEVIDEOINCTRL_CT_PRIVACY_MODE; ++ ++typedef struct VRDEVIDEOINCTRL_PU_BACKLIGHT_COMPENSATION ++{ ++ VRDEVIDEOINCTRLHDR hdr; ++ uint16_t u16BacklightCompensation; ++} VRDEVIDEOINCTRL_PU_BACKLIGHT_COMPENSATION; ++ ++typedef struct VRDEVIDEOINCTRL_PU_BRIGHTNESS ++{ ++ VRDEVIDEOINCTRLHDR hdr; ++ uint16_t u16Brightness; ++} VRDEVIDEOINCTRL_PU_BRIGHTNESS; ++ ++typedef struct VRDEVIDEOINCTRL_PU_CONTRAST ++{ ++ VRDEVIDEOINCTRLHDR hdr; ++ uint16_t u16Contrast; ++} VRDEVIDEOINCTRL_PU_CONTRAST; ++ ++typedef struct VRDEVIDEOINCTRL_PU_GAIN ++{ ++ VRDEVIDEOINCTRLHDR hdr; ++ uint16_t u16Gain; ++} VRDEVIDEOINCTRL_PU_GAIN; ++ ++typedef struct VRDEVIDEOINCTRL_PU_POWER_LINE_FREQUENCY ++{ ++ VRDEVIDEOINCTRLHDR hdr; ++ uint16_t u16PowerLineFrequency; ++} VRDEVIDEOINCTRL_PU_POWER_LINE_FREQUENCY; ++ ++typedef struct VRDEVIDEOINCTRL_PU_HUE ++{ ++ VRDEVIDEOINCTRLHDR hdr; ++ uint16_t u16Hue; ++} VRDEVIDEOINCTRL_PU_HUE; ++ ++typedef struct VRDEVIDEOINCTRL_PU_HUE_AUTO ++{ ++ VRDEVIDEOINCTRLHDR hdr; ++ uint8_t u8HueAuto; ++} VRDEVIDEOINCTRL_PU_HUE_AUTO; ++ ++typedef struct VRDEVIDEOINCTRL_PU_SATURATION ++{ ++ VRDEVIDEOINCTRLHDR hdr; ++ uint16_t u16Saturation; ++} VRDEVIDEOINCTRL_PU_SATURATION; ++ ++typedef struct VRDEVIDEOINCTRL_PU_SHARPNESS ++{ ++ VRDEVIDEOINCTRLHDR hdr; ++ uint16_t u16Sharpness; ++} VRDEVIDEOINCTRL_PU_SHARPNESS; ++ ++typedef struct VRDEVIDEOINCTRL_PU_GAMMA ++{ ++ VRDEVIDEOINCTRLHDR hdr; ++ uint16_t u16Gamma; ++} VRDEVIDEOINCTRL_PU_GAMMA; ++ ++typedef struct VRDEVIDEOINCTRL_PU_WHITE_BALANCE_TEMPERATURE ++{ ++ VRDEVIDEOINCTRLHDR hdr; ++ uint16_t u16WhiteBalanceTemperature; ++} VRDEVIDEOINCTRL_PU_WHITE_BALANCE_TEMPERATURE; ++ ++typedef struct VRDEVIDEOINCTRL_PU_WHITE_BALANCE_TEMPERATURE_AUTO ++{ ++ VRDEVIDEOINCTRLHDR hdr; ++ uint8_t u8WhiteBalanceTemperatureAuto; ++} VRDEVIDEOINCTRL_PU_WHITE_BALANCE_TEMPERATURE_AUTO; ++ ++typedef struct VRDEVIDEOINCTRL_PU_WHITE_BALANCE_COMPONENT ++{ ++ VRDEVIDEOINCTRLHDR hdr; ++ uint16_t u16WhiteBalanceBlue; ++ uint16_t u16WhiteBalanceRed; ++} VRDEVIDEOINCTRL_PU_WHITE_BALANCE_COMPONENT; ++ ++typedef struct VRDEVIDEOINCTRL_PU_WHITE_BALANCE_COMPONENT_AUTO ++{ ++ VRDEVIDEOINCTRLHDR hdr; ++ uint8_t u8WhiteBalanceComponentAuto; ++} VRDEVIDEOINCTRL_PU_WHITE_BALANCE_COMPONENT_AUTO; ++ ++typedef struct VRDEVIDEOINCTRL_PU_DIGITAL_MULTIPLIER ++{ ++ VRDEVIDEOINCTRLHDR hdr; ++ uint16_t u16MultiplierStep; ++} VRDEVIDEOINCTRL_PU_DIGITAL_MULTIPLIER; ++ ++typedef struct VRDEVIDEOINCTRL_PU_DIGITAL_MULTIPLIER_LIMIT ++{ ++ VRDEVIDEOINCTRLHDR hdr; ++ uint16_t u16MultiplierLimit; ++} VRDEVIDEOINCTRL_PU_DIGITAL_MULTIPLIER_LIMIT; ++ ++typedef struct VRDEVIDEOINCTRL_PU_ANALOG_VIDEO_STANDARD ++{ ++ VRDEVIDEOINCTRLHDR hdr; ++ uint8_t u8VideoStandard; ++} VRDEVIDEOINCTRL_PU_ANALOG_VIDEO_STANDARD; ++ ++typedef struct VRDEVIDEOINCTRL_PU_ANALOG_LOCK_STATUS ++{ ++ VRDEVIDEOINCTRLHDR hdr; ++ uint8_t u8Status; ++} VRDEVIDEOINCTRL_PU_ANALOG_LOCK_STATUS; ++ ++/* Start sending video frames with this format. */ ++#define VRDEVIDEOINCTRL_F_VS_START_FID 0x01 ++#define VRDEVIDEOINCTRL_F_VS_START_EOF 0x02 ++ ++typedef struct VRDEVIDEOINCTRL_VS_START ++{ ++ VRDEVIDEOINCTRLHDR hdr; ++ uint8_t u8FormatId; /* The format id on the client: VRDEVIDEOINFORMATDESC::u8FormatId. */ ++ uint8_t u8FramingInfo; /* VRDEVIDEOINCTRL_F_VS_START_*. Set by the client. */ ++ uint16_t u16Width; ++ uint16_t u16Height; ++ uint32_t u32FrameInterval; /* Frame interval in 100 ns units, 0 means a still image capture. ++ * The client may choose a different interval if this value is ++ * not supported. ++ */ ++ uint16_t u16CompQuality; /* 0 .. 10000 = 0 .. 100%. ++ * Applicable if the format has VRDE_VIDEOIN_F_FMT_COMPQUALITY, ++ * otherwise this field is ignored. ++ */ ++ uint16_t u16Delay; /* Latency in ms from video data capture to presentation on the channel. ++ * Set by the client, read by the server. ++ */ ++ uint32_t u32ClockFrequency; /* @todo just all clocks in 100ns units? */ ++} VRDEVIDEOINCTRL_VS_START; ++ ++/* Stop sending video frames. */ ++typedef struct VRDEVIDEOINCTRL_VS_STOP ++{ ++ VRDEVIDEOINCTRLHDR hdr; ++} VRDEVIDEOINCTRL_VS_STOP; ++ ++typedef struct VRDEVIDEOINCTRL_VS_SYNCH_DELAY ++{ ++ VRDEVIDEOINCTRLHDR hdr; ++ uint16_t u16Delay; ++} VRDEVIDEOINCTRL_VS_SYNCH_DELAY; ++ ++typedef struct VRDEVIDEOINCTRL_VS_STILL_IMAGE_TRIGGER ++{ ++ VRDEVIDEOINCTRLHDR hdr; ++ uint8_t u8Trigger; ++} VRDEVIDEOINCTRL_VS_STILL_IMAGE_TRIGGER; ++ ++typedef struct VRDEVIDEOINCTRL_VS_GENERATE_KEY_FRAME ++{ ++ VRDEVIDEOINCTRLHDR hdr; ++ uint8_t u8GenerateKeyFrame; ++} VRDEVIDEOINCTRL_VS_GENERATE_KEY_FRAME; ++ ++typedef struct VRDEVIDEOINCTRL_VS_UPDATE_FRAME_SEGMENT ++{ ++ VRDEVIDEOINCTRLHDR hdr; ++ uint8_t u8StartFrameSegment; ++ uint8_t u8EndFrameSegment; ++} VRDEVIDEOINCTRL_VS_UPDATE_FRAME_SEGMENT; ++ ++typedef struct VRDEVIDEOINCTRL_VS_STREAM_ERROR_CODE ++{ ++ VRDEVIDEOINCTRLHDR hdr; ++ uint8_t u8StreamErrorCode; ++} VRDEVIDEOINCTRL_VS_STREAM_ERROR_CODE; ++ ++/* A hardware button was pressed/released on the device. */ ++typedef struct VRDEVIDEOINCTRL_HW_BUTTON ++{ ++ VRDEVIDEOINCTRLHDR hdr; ++ uint8_t u8Pressed; ++} VRDEVIDEOINCTRL_CT_HW_BUTTON; ++ ++/* ++ * Payload transfers. How frames are sent to the server: ++ * the client send a PAYLOAD packet, which has the already set format. ++ * The server enables the transfers by sending VRDEVIDEOINCTRL_VS_START. ++ */ ++ ++/* Payload header */ ++typedef struct VRDEVIDEOINPAYLOADHDR ++{ ++ uint8_t u8HeaderLength; /* Entire header. */ ++ uint8_t u8HeaderInfo; /* VRDE_VIDEOIN_PAYLOAD_F_* */ ++ uint32_t u32PresentationTime; /* @todo define this */ ++ uint32_t u32SourceTimeClock; /* @todo At the moment when the frame was sent to the channel. ++ * Allows the server to measure clock drift. ++ */ ++ uint16_t u16Reserved; /* @todo */ ++} VRDEVIDEOINPAYLOADHDR; ++ ++/* VRDEVIDEOINPAYLOADHDR::u8HeaderInfo */ ++#define VRDE_VIDEOIN_PAYLOAD_F_FID 0x01 /* Frame ID */ ++#define VRDE_VIDEOIN_PAYLOAD_F_EOF 0x02 /* End of Frame */ ++#define VRDE_VIDEOIN_PAYLOAD_F_PTS 0x04 /* Presentation Time */ ++#define VRDE_VIDEOIN_PAYLOAD_F_SCR 0x08 /* Source Clock Reference */ ++#define VRDE_VIDEOIN_PAYLOAD_F_RES 0x10 /* Reserved */ ++#define VRDE_VIDEOIN_PAYLOAD_F_STI 0x20 /* Still Image */ ++#define VRDE_VIDEOIN_PAYLOAD_F_ERR 0x40 /* Error */ ++#define VRDE_VIDEOIN_PAYLOAD_F_EOH 0x80 /* End of header */ ++ ++ ++/* ++ * The network channel specification. ++ */ ++ ++/* ++ * The protocol uses a dynamic RDP channel. ++ * Everything is little-endian. ++ */ ++ ++#define VRDE_VIDEOIN_CHANNEL "RVIDEOIN" ++ ++/* Major functions. */ ++#define VRDE_VIDEOIN_FN_NEGOTIATE 0x0000 /* Version and capabilities check. */ ++#define VRDE_VIDEOIN_FN_NOTIFY 0x0001 /* Device attach/detach from the client. */ ++#define VRDE_VIDEOIN_FN_DEVICEDESC 0x0002 /* Query device description. */ ++#define VRDE_VIDEOIN_FN_CONTROL 0x0003 /* Control the device and start/stop video input. */ ++#define VRDE_VIDEOIN_FN_CONTROL_NOTIFY 0x0004 /* The client reports a control change, etc. */ ++#define VRDE_VIDEOIN_FN_FRAME 0x0005 /* Frame from the client. */ ++ ++/* Status codes. */ ++#define VRDE_VIDEOIN_STATUS_SUCCESS 0 /* Function completed successfully. */ ++#define VRDE_VIDEOIN_STATUS_FAILED 1 /* Failed for some reason. */ ++ ++typedef struct VRDEVIDEOINMSGHDR ++{ ++ uint32_t u32Length; /* The length of the message in bytes, including the header. */ ++ uint32_t u32DeviceId; /* The client's device id. */ ++ uint32_t u32MessageId; /* Unique id assigned by the server. The client must send a reply with the same id. ++ * If the client initiates a request, then this must be set to 0, because there is ++ * currently no client requests, which would require a response from the server. ++ */ ++ uint16_t u16FunctionId; /* VRDE_VIDEOIN_FN_* */ ++ uint16_t u16Status; /* The result of a request. VRDE_VIDEOIN_STATUS_*. */ ++} VRDEVIDEOINMSGHDR; ++ASSERTSIZE(VRDEVIDEOINMSGHDR, 16) ++ ++/* ++ * VRDE_VIDEOIN_FN_NEGOTIATE ++ * ++ * Sent by the server when the channel is established and the client replies with its capabilities. ++ */ ++#define VRDE_VIDEOIN_NEGOTIATE_VERSION 1 ++ ++#define VRDE_VIDEOIN_NEGOTIATE_CAP_VOID 0 ++ ++typedef struct VRDEVIDEOINMSG_NEGOTIATE ++{ ++ VRDEVIDEOINMSGHDR hdr; ++ uint32_t u32Version; /* VRDE_VIDEOIN_NEGOTIATE_VERSION */ ++ uint32_t fu32Capabilities; /* VRDE_VIDEOIN_NEGOTIATE_CAP_* */ ++} VRDEVIDEOINMSG_NEGOTIATE; ++ ++/* ++ * VRDE_VIDEOIN_FN_NOTIFY ++ * ++ * Sent by the client when a webcam is attached or detached. ++ * The client must send the ATTACH notification for each webcam, which is ++ * already connected to the client when the VIDEOIN channel is established. ++ */ ++#define VRDE_VIDEOIN_NOTIFY_ATTACH 0 ++#define VRDE_VIDEOIN_NOTIFY_DETACH 1 ++ ++typedef struct VRDEVIDEOINMSG_NOTIFY ++{ ++ VRDEVIDEOINMSGHDR hdr; ++ uint32_t u32NotifyEvent; /* VRDE_VIDEOIN_NOTIFY_* */ ++ /* Event specific data may follow. The underlying protocol provides the length of the message. */ ++} VRDEVIDEOINMSG_NOTIFY; ++ ++/* ++ * VRDE_VIDEOIN_FN_DEVICEDESC ++ * ++ * The server queries the description of a device. ++ */ ++typedef struct VRDEVIDEOINMSG_DEVICEDESC_REQ ++{ ++ VRDEVIDEOINMSGHDR hdr; ++} VRDEVIDEOINMSG_DEVICEDESC_REQ; ++ ++typedef struct VRDEVIDEOINMSG_DEVICEDESC_RSP ++{ ++ VRDEVIDEOINMSGHDR hdr; ++ VRDEVIDEOINDEVICEDESC Device; ++ /* ++ * VRDEVIDEOINFORMATDESC[0] ++ * VRDEVIDEOINFRAMEDESC[0] ++ * ... ++ * VRDEVIDEOINFRAMEDESC[n] ++ * VRDEVIDEOINFORMATDESC[1] ++ * VRDEVIDEOINFRAMEDESC[0] ++ * ... ++ * VRDEVIDEOINFRAMEDESC[m] ++ * ... ++ */ ++} VRDEVIDEOINMSG_DEVICEDESC_RSP; ++ ++/* ++ * VRDE_VIDEOIN_FN_CONTROL ++ * VRDE_VIDEOIN_FN_CONTROL_NOTIFY ++ * ++ * Either sent by the server or by the client as a notification/response. ++ * If sent by the client as a notification, then hdr.u32MessageId must be 0. ++ */ ++typedef struct VRDEVIDEOINMSG_CONTROL ++{ ++ VRDEVIDEOINMSGHDR hdr; ++ VRDEVIDEOINCTRLHDR Control; ++ /* Control specific data may follow. */ ++} VRDEVIDEOINMSG_CONTROL; ++ ++/* ++ * VRDE_VIDEOIN_FN_FRAME ++ * ++ * The client sends a video/still frame in the already specified format. ++ * hdr.u32MessageId must be 0. ++ */ ++typedef struct VRDEVIDEOINMSG_FRAME ++{ ++ VRDEVIDEOINMSGHDR hdr; ++ VRDEVIDEOINPAYLOADHDR Payload; ++ /* The frame data follow. */ ++} VRDEVIDEOINMSG_FRAME; ++ ++ ++#ifdef VRDE_VIDEOIN_WITH_VRDEINTERFACE ++/* ++ * The application interface between VirtualBox and the VRDE server. ++ */ ++ ++#define VRDE_VIDEOIN_INTERFACE_NAME "VIDEOIN" ++ ++typedef struct VRDEVIDEOINDEVICEHANDLE ++{ ++ uint32_t u32ClientId; ++ uint32_t u32DeviceId; ++} VRDEVIDEOINDEVICEHANDLE; ++ ++/* The VRDE server video input interface entry points. Interface version 1. */ ++typedef struct VRDEVIDEOININTERFACE ++{ ++ /* The header. */ ++ VRDEINTERFACEHDR header; ++ ++ /* Tell the server that this device will be used and associate a context with the device. ++ * ++ * @param hServer The VRDE server instance. ++ * @param pDeviceHandle The device reported by ATTACH notification. ++ * @param pvDeviceCtx The caller context associated with the pDeviceHandle. ++ * ++ * @return IPRT status code. ++ */ ++ DECLR3CALLBACKMEMBER(int, VRDEVideoInDeviceAttach, (HVRDESERVER hServer, ++ const VRDEVIDEOINDEVICEHANDLE *pDeviceHandle, ++ void *pvDeviceCtx)); ++ ++ /* This device will be not be used anymore. The device context must not be used by the server too. ++ * ++ * @param hServer The VRDE server instance. ++ * @param pDeviceHandle The device reported by ATTACH notification. ++ * ++ * @return IPRT status code. ++ */ ++ DECLR3CALLBACKMEMBER(int, VRDEVideoInDeviceDetach, (HVRDESERVER hServer, ++ const VRDEVIDEOINDEVICEHANDLE *pDeviceHandle)); ++ ++ /* Get a device description. ++ * ++ * @param hServer The VRDE server instance. ++ * @param pvUser The callers context of this request. ++ * @param pDeviceHandle The device reported by ATTACH notification. ++ * ++ * @return IPRT status code. ++ */ ++ DECLR3CALLBACKMEMBER(int, VRDEVideoInGetDeviceDesc, (HVRDESERVER hServer, ++ void *pvUser, ++ const VRDEVIDEOINDEVICEHANDLE *pDeviceHandle)); ++ ++ /* Submit a set/get control request. ++ * ++ * @param hServer The VRDE server instance. ++ * @param pvUser The callers context of this request. ++ * @param pDeviceHandle The device reported by ATTACH notification. ++ * @param pReq The request. ++ * @param cbReq Size of the request. ++ * ++ * @return IPRT status code. ++ */ ++ DECLR3CALLBACKMEMBER(int, VRDEVideoInControl, (HVRDESERVER hServer, ++ void *pvUser, ++ const VRDEVIDEOINDEVICEHANDLE *pDeviceHandle, ++ const VRDEVIDEOINCTRLHDR *pReq, ++ uint32_t cbReq)); ++ ++} VRDEVIDEOININTERFACE; ++ ++ ++/* ++ * Notifications. ++ * Data structures: pvData of VRDEVIDEOINCALLBACKS::VRDECallbackVideoInNotify. ++ */ ++typedef struct VRDEVIDEOINNOTIFYATTACH ++{ ++ VRDEVIDEOINDEVICEHANDLE deviceHandle; ++} VRDEVIDEOINNOTIFYATTACH; ++ ++typedef struct VRDEVIDEOINNOTIFYDETACH ++{ ++ VRDEVIDEOINDEVICEHANDLE deviceHandle; ++} VRDEVIDEOINNOTIFYDETACH; ++ ++ ++/* Video input interface callbacks. */ ++typedef struct VRDEVIDEOINCALLBACKS ++{ ++ /** The header. */ ++ VRDEINTERFACEHDR header; ++ ++ /* Notifications. ++ * ++ * @param pvCallback The callbacks context specified in VRDEGetInterface. ++ * @param u32EventId The notification identifier: VRDE_VIDEOIN_NOTIFY_*. ++ * @param pvData The notification specific data. ++ * @param cbData The size of buffer pointed by pvData. ++ */ ++ DECLR3CALLBACKMEMBER(void, VRDECallbackVideoInNotify,(void *pvCallback, ++ uint32_t u32Id, ++ const void *pvData, ++ uint32_t cbData)); ++ ++ /* Device description received from the client. ++ * ++ * @param pvCallback The callbacks context specified in VRDEGetInterface. ++ * @param rcRequest The result code of the request. ++ * @param pDeviceCtx The device context associated with the device in VRDEVideoInGetDeviceDesc. ++ * @param pvUser The pvUser parameter of VRDEVideoInGetDeviceDesc. ++ * @param pDeviceDesc The device description. ++ * @param cbDeviceDesc The size of buffer pointed by pDevice. ++ */ ++ DECLR3CALLBACKMEMBER(void, VRDECallbackVideoInDeviceDesc,(void *pvCallback, ++ int rcRequest, ++ void *pDeviceCtx, ++ void *pvUser, ++ const VRDEVIDEOINDEVICEDESC *pDeviceDesc, ++ uint32_t cbDeviceDesc)); ++ ++ /* Control response or notification. ++ * ++ * @param pvCallback The callbacks context specified in VRDEGetInterface. ++ * @param rcRequest The result code of the request. ++ * @param pDeviceCtx The device context associated with the device in VRDEVideoInGetDeviceDesc. ++ * @param pvUser The pvUser parameter of VRDEVideoInControl. NULL if this is a notification. ++ * @param pControl The control information. ++ * @param cbControl The size of buffer pointed by pControl. ++ */ ++ DECLR3CALLBACKMEMBER(void, VRDECallbackVideoInControl,(void *pvCallback, ++ int rcRequest, ++ void *pDeviceCtx, ++ void *pvUser, ++ const VRDEVIDEOINCTRLHDR *pControl, ++ uint32_t cbControl)); ++ ++ /* Frame which was received from the client. ++ * ++ * @param pvCallback The callbacks context specified in VRDEGetInterface. ++ * @param rcRequest The result code of the request. ++ * @param pDeviceCtx The device context associated with the device in VRDEVideoInGetDeviceDesc. ++ * @param pFrame The frame data. ++ * @param cbFrame The size of buffer pointed by pFrame. ++ */ ++ DECLR3CALLBACKMEMBER(void, VRDECallbackVideoInFrame,(void *pvCallback, ++ int rcRequest, ++ void *pDeviceCtx, ++ const VRDEVIDEOINPAYLOADHDR *pFrame, ++ uint32_t cbFrame)); ++ ++} VRDEVIDEOINCALLBACKS; ++#endif /* VRDE_VIDEOIN_WITH_VRDEINTERFACE */ ++ ++#pragma pack() ++ ++#endif From 1029ca5767e3d27fbfbeb19a845ffee3485c028f Mon Sep 17 00:00:00 2001 From: aszlig Date: Fri, 1 Mar 2013 05:29:19 +0100 Subject: [PATCH 72/89] virtualbox: Support UIDGID_STRICT_TYPE_CHECKS. This adds a patch to support CONFIG_UIDGID_STRICT_TYPE_CHECKS being activated in the kernel config (selected by CONFIG_USER_NS for example). When this kernel option is enabled, current->cred->uid is a structure rather than a simple integer type (uid_t and gid_t), so we need to check for that and also pass the current user namespace where needed. Signed-off-by: aszlig --- .../virtualization/virtualbox/default.nix | 5 +- .../virtualbox/strict_types.patch | 68 +++++++++++++++++++ 2 files changed, 72 insertions(+), 1 deletion(-) create mode 100644 pkgs/applications/virtualization/virtualbox/strict_types.patch diff --git a/pkgs/applications/virtualization/virtualbox/default.nix b/pkgs/applications/virtualization/virtualbox/default.nix index d95d97688c3..05a9dd7e7d8 100644 --- a/pkgs/applications/virtualization/virtualbox/default.nix +++ b/pkgs/applications/virtualization/virtualbox/default.nix @@ -54,7 +54,10 @@ in stdenv.mkDerivation { ++ optional javaBindings jdk ++ optional pythonBindings python; - patches = singleton ./missing_files_4.2.8.patch; + patches = [ + ./missing_files_4.2.8.patch + ./strict_types.patch + ]; prePatch = '' set -x diff --git a/pkgs/applications/virtualization/virtualbox/strict_types.patch b/pkgs/applications/virtualization/virtualbox/strict_types.patch new file mode 100644 index 00000000000..18ccc77f9b1 --- /dev/null +++ b/pkgs/applications/virtualization/virtualbox/strict_types.patch @@ -0,0 +1,68 @@ +diff --git a/src/VBox/HostDrivers/Support/linux/SUPDrv-linux.c b/src/VBox/HostDrivers/Support/linux/SUPDrv-linux.c +index 9cc124c..d86da0c 100644 +--- a/src/VBox/HostDrivers/Support/linux/SUPDrv-linux.c ++++ b/src/VBox/HostDrivers/Support/linux/SUPDrv-linux.c +@@ -253,7 +253,11 @@ static struct platform_device gPlatformDevice = + DECLINLINE(RTUID) vboxdrvLinuxUid(void) + { + #if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 29) ++# ifdef CONFIG_UIDGID_STRICT_TYPE_CHECKS ++ return from_kuid(current_user_ns(), current_uid()); ++# else + return current->cred->uid; ++# endif + #else + return current->uid; + #endif +@@ -262,7 +266,11 @@ DECLINLINE(RTUID) vboxdrvLinuxUid(void) + DECLINLINE(RTGID) vboxdrvLinuxGid(void) + { + #if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 29) ++# ifdef CONFIG_UIDGID_STRICT_TYPE_CHECKS ++ return from_kgid(current_user_ns(), current_gid()); ++# else + return current->cred->gid; ++# endif + #else + return current->gid; + #endif +@@ -271,7 +279,11 @@ DECLINLINE(RTGID) vboxdrvLinuxGid(void) + DECLINLINE(RTUID) vboxdrvLinuxEuid(void) + { + #if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 29) ++# ifdef CONFIG_UIDGID_STRICT_TYPE_CHECKS ++ return from_kuid(current_user_ns(), current_euid()); ++# else + return current->cred->euid; ++# endif + #else + return current->euid; + #endif +diff --git a/src/VBox/HostDrivers/VBoxPci/linux/VBoxPci-linux.c b/src/VBox/HostDrivers/VBoxPci/linux/VBoxPci-linux.c +index 575f739..8909e79 100644 +--- a/src/VBox/HostDrivers/VBoxPci/linux/VBoxPci-linux.c ++++ b/src/VBox/HostDrivers/VBoxPci/linux/VBoxPci-linux.c +@@ -429,7 +429,11 @@ int vboxPciOsDevDetachHostDriver(PVBOXRAWPCIINS pIns) + if (!pNewCreds) + goto done; + ++# ifdef CONFIG_UIDGID_STRICT_TYPE_CHECKS ++ pNewCreds->fsuid = GLOBAL_ROOT_UID;; ++# else + pNewCreds->fsuid = 0; ++# endif + pOldCreds = override_creds(pNewCreds); + #endif + +@@ -539,7 +543,11 @@ int vboxPciOsDevReattachHostDriver(PVBOXRAWPCIINS pIns) + if (!pNewCreds) + goto done; + ++# ifdef CONFIG_UIDGID_STRICT_TYPE_CHECKS ++ pNewCreds->fsuid = GLOBAL_ROOT_UID;; ++# else + pNewCreds->fsuid = 0; ++# endif + pOldCreds = override_creds(pNewCreds); + #endif + RTStrPrintf(szFileBuf, cMaxBuf, From fc088ae732f566d46248269dd7c9c69e31ec4cdf Mon Sep 17 00:00:00 2001 From: aszlig Date: Fri, 1 Mar 2013 05:38:25 +0100 Subject: [PATCH 73/89] virtualbox: Fix build with kernel 3.9.0. This patch is cherry-picked from VirtualBox Subversion, revision 44867. It's rather small and only is in effect if kernel version is >= 3.9.0, so it won't break existing kernels, so I'm adding it here despite we usually only care about the latest stable upstream (kernel) versions. Signed-off-by: aszlig --- .../virtualbox/build_fix_3.9.0.patch | 22 +++++++++++++++++++ .../virtualization/virtualbox/default.nix | 1 + 2 files changed, 23 insertions(+) create mode 100644 pkgs/applications/virtualization/virtualbox/build_fix_3.9.0.patch diff --git a/pkgs/applications/virtualization/virtualbox/build_fix_3.9.0.patch b/pkgs/applications/virtualization/virtualbox/build_fix_3.9.0.patch new file mode 100644 index 00000000000..2c3cdebacde --- /dev/null +++ b/pkgs/applications/virtualization/virtualbox/build_fix_3.9.0.patch @@ -0,0 +1,22 @@ +commit d725168153e3dc5a383b12e0bf9af9b6244ad3eb +Author: vboxsync +Date: Thu Feb 28 13:46:12 2013 +0000 + + Linux 3.9.0 rc0 compile fix + + git-svn-id: http://www.virtualbox.org/svn/vbox/trunk@44867 cfe28804-0f27-0410-a406-dd0f0b0b656f + +diff --git a/src/VBox/Runtime/r0drv/linux/the-linux-kernel.h b/src/VBox/Runtime/r0drv/linux/the-linux-kernel.h +index ec9b502..7a208d1 100644 +--- a/src/VBox/Runtime/r0drv/linux/the-linux-kernel.h ++++ b/src/VBox/Runtime/r0drv/linux/the-linux-kernel.h +@@ -90,6 +90,9 @@ + #include + #include + #include ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 9, 0) ++# include ++#endif + #if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 7) + # include + #endif diff --git a/pkgs/applications/virtualization/virtualbox/default.nix b/pkgs/applications/virtualization/virtualbox/default.nix index 05a9dd7e7d8..62a4b16070d 100644 --- a/pkgs/applications/virtualization/virtualbox/default.nix +++ b/pkgs/applications/virtualization/virtualbox/default.nix @@ -57,6 +57,7 @@ in stdenv.mkDerivation { patches = [ ./missing_files_4.2.8.patch ./strict_types.patch + ./build_fix_3.9.0.patch ]; prePatch = '' From 964621438abceebab952f57abf1234ceb1a5e7c8 Mon Sep 17 00:00:00 2001 From: aszlig Date: Fri, 1 Mar 2013 09:18:14 +0100 Subject: [PATCH 74/89] nss: Update to version 3.14.3. This update involves a bunch of fixes on our side: Update the Gentoo patch to 3.14.1 from http://bit.ly/ZG8OK5 and drop the older one from http://bit.ly/15mN0X1 (for 3.12.5). While checking the old patch from Gentoo, I discovered, that the patch added in revision 06c543b11dfeb708963c6a63bf7f1ed79c5367b2 wasn't the original one in the Gentoo repository. Instead of doing the same again, we now patch up our specific modifications using sed within the postPatch hook. In addition to that, we now have another patch from RedHat/Fedora which syncs the NSS PEM support repository with the latest upstream changes. Patch is coming from the SRPM at http://koji.fedoraproject.org/koji/rpminfo?rpmID=3772072 and I just stripped the "0001-" prefix from the filename. Signed-off-by: aszlig --- pkgs/development/libraries/nss/default.nix | 24 +- ...diff => nss-3.14.1-gentoo-fixups-r1.patch} | 62 ++- ...ync-up-with-upstream-softokn-changes.patch | 406 ++++++++++++++++++ 3 files changed, 454 insertions(+), 38 deletions(-) rename pkgs/development/libraries/nss/{nss-3.12.5-gentoo-fixups.diff => nss-3.14.1-gentoo-fixups-r1.patch} (70%) create mode 100644 pkgs/development/libraries/nss/sync-up-with-upstream-softokn-changes.patch diff --git a/pkgs/development/libraries/nss/default.nix b/pkgs/development/libraries/nss/default.nix index 8e4edcad885..d38fc19f40e 100644 --- a/pkgs/development/libraries/nss/default.nix +++ b/pkgs/development/libraries/nss/default.nix @@ -22,11 +22,11 @@ let in stdenv.mkDerivation rec { name = "nss-${version}"; - version = "3.14"; + version = "3.14.3"; src = fetchurl { - url = "http://ftp.mozilla.org/pub/mozilla.org/security/nss/releases/NSS_3_14_RTM/src/${name}.tar.gz"; - sha1 = "ace3642fb2ca67854ea7075d053ca01a6d81e616"; + url = "http://ftp.mozilla.org/pub/mozilla.org/security/nss/releases/NSS_3_14_3_RTM/src/${name}.tar.gz"; + sha1 = "94d8781d1fa29cfbd37453dda3e9488709b82c4c"; }; buildInputs = [ nspr perl zlib sqlite ]; @@ -38,14 +38,28 @@ in stdenv.mkDerivation rec { ''; patches = [ - ./nss-3.12.5-gentoo-fixups.diff + ./nss-3.14.1-gentoo-fixups-r1.patch secLoadPatch ./nix_secload_fixup.patch + ./sync-up-with-upstream-softokn-changes.patch ]; postPatch = '' sed -i -e 's/^DIRS.*$/& pem/' mozilla/security/nss/lib/ckfw/manifest.mn - sed -i -e "/^PREFIX =/s:= /usr:= $out:" mozilla/security/nss/config/Makefile + + # Fix up the patch from Gentoo + sed -i \ + -e "/^PREFIX =/s|= /usr|= $out|" \ + -e '/@libdir@/s|gentoo/nss|lib|' \ + -e '/ln -sf/d' \ + mozilla/security/nss/config/Makefile + + # Note for spacing/tab nazis: The TAB characters are intentional! + cat >> mozilla/security/nss/config/Makefile < nss.pc + chmod 0644 nss.pc ++ ln -sf ../../../../../security/nss/config/nss.pc $(DIST)/lib/pkgconfig + + # Create the nss-config script + mkdir -p $(DIST)/bin @@ -34,19 +36,15 @@ diff -urN nss-3.12.5-orig/mozilla/security/nss/config/Makefile nss-3.12.5/mozill + -e "s,@NSS_PATCH_VERSION@,$(NSS_PATCH_VERSION)," \ + nss-config.in > nss-config + chmod 0755 nss-config -+ # ln -sf ../../../../security/nss/config/nss-config $(DIST)/bin ++ ln -sf ../../../../security/nss/config/nss-config $(DIST)/bin + +libs: + +dummy: all export libs + -+install: -+ mkdir -p $(DIST)/lib/pkgconfig -+ cp nss.pc $(DIST)/lib/pkgconfig -+ -diff -urN nss-3.12.5-orig/mozilla/security/nss/config/nss-config.in nss-3.12.5/mozilla/security/nss/config/nss-config.in ---- nss-3.12.5-orig/mozilla/security/nss/config/nss-config.in 1969-12-31 18:00:00.000000000 -0600 -+++ nss-3.12.5/mozilla/security/nss/config/nss-config.in 2009-09-14 21:47:45.190638078 -0500 +diff -urN a/mozilla/security/nss/config/nss-config.in b/mozilla/security/nss/config/nss-config.in +--- a/mozilla/security/nss/config/nss-config.in 1969-12-31 18:00:00.000000000 -0600 ++++ b/mozilla/security/nss/config/nss-config.in 2012-12-15 07:27:20.651148959 -0600 @@ -0,0 +1,145 @@ +#!/bin/sh + @@ -177,7 +175,7 @@ diff -urN nss-3.12.5-orig/mozilla/security/nss/config/nss-config.in nss-3.12.5/m +fi + +if test "$echo_libs" = "yes"; then -+ libdirs="-Wl,-R$libdir -L$libdir" ++ libdirs="" + if test -n "$lib_ssl"; then + libdirs="$libdirs -lssl${major_version}" + fi @@ -193,9 +191,9 @@ diff -urN nss-3.12.5-orig/mozilla/security/nss/config/nss-config.in nss-3.12.5/m + echo $libdirs +fi + -diff -urN nss-3.12.5-orig/mozilla/security/nss/config/nss.pc.in nss-3.12.5/mozilla/security/nss/config/nss.pc.in ---- nss-3.12.5-orig/mozilla/security/nss/config/nss.pc.in 1969-12-31 18:00:00.000000000 -0600 -+++ nss-3.12.5/mozilla/security/nss/config/nss.pc.in 2009-09-14 21:45:45.653637310 -0500 +diff -urN a/mozilla/security/nss/config/nss.pc.in b/mozilla/security/nss/config/nss.pc.in +--- a/mozilla/security/nss/config/nss.pc.in 1969-12-31 18:00:00.000000000 -0600 ++++ b/mozilla/security/nss/config/nss.pc.in 2012-12-15 07:27:20.651148959 -0600 @@ -0,0 +1,12 @@ +prefix=@prefix@ +exec_prefix=@exec_prefix@ @@ -206,13 +204,13 @@ diff -urN nss-3.12.5-orig/mozilla/security/nss/config/nss.pc.in nss-3.12.5/mozil +Description: Network Security Services +Version: @NSS_MAJOR_VERSION@.@NSS_MINOR_VERSION@.@NSS_PATCH_VERSION@ +Requires: nspr >= 4.8 -+Libs: -L${libdir} -lssl3 -lsmime3 -lnssutil3 -lnss3 -Wl,-R${libdir} ++Libs: -lssl3 -lsmime3 -lnss3 -lnssutil3 +Cflags: -I${includedir} + -diff -urN nss-3.12.5-orig/mozilla/security/nss/Makefile nss-3.12.5/mozilla/security/nss/Makefile ---- nss-3.12.5-orig/mozilla/security/nss/Makefile 2008-12-02 17:24:39.000000000 -0600 -+++ nss-3.12.5/mozilla/security/nss/Makefile 2009-09-14 21:45:45.678657145 -0500 -@@ -78,7 +78,7 @@ +diff -urN a/mozilla/security/nss/Makefile b/mozilla/security/nss/Makefile +--- a/mozilla/security/nss/Makefile 2012-11-13 19:14:07.000000000 -0600 ++++ b/mozilla/security/nss/Makefile 2012-12-15 07:27:57.235162137 -0600 +@@ -44,7 +44,7 @@ # (7) Execute "local" rules. (OPTIONAL). # ####################################################################### @@ -221,27 +219,25 @@ diff -urN nss-3.12.5-orig/mozilla/security/nss/Makefile nss-3.12.5/mozilla/secur nss_clean_all: clobber_coreconf clobber_nspr clobber_dbm clobber -@@ -140,12 +140,6 @@ +@@ -106,12 +106,6 @@ --with-dist-prefix='$(NSPR_PREFIX)' \ --with-dist-includedir='$(NSPR_PREFIX)/include' -build_nspr: $(NSPR_CONFIG_STATUS) -- cd $(CORE_DEPTH)/../nsprpub/$(OBJDIR_NAME) ; $(MAKE) +- $(MAKE) -C $(CORE_DEPTH)/../nsprpub/$(OBJDIR_NAME) - -clobber_nspr: $(NSPR_CONFIG_STATUS) -- cd $(CORE_DEPTH)/../nsprpub/$(OBJDIR_NAME) ; $(MAKE) clobber +- $(MAKE) -C $(CORE_DEPTH)/../nsprpub/$(OBJDIR_NAME) clobber - build_dbm: - ifndef NSS_DISABLE_DBM - cd $(CORE_DEPTH)/dbm ; $(MAKE) export libs -diff -urN nss-3.12.5-orig/mozilla/security/nss/manifest.mn nss-3.12.5/mozilla/security/nss/manifest.mn ---- nss-3.12.5-orig/mozilla/security/nss/manifest.mn 2008-04-04 15:36:59.000000000 -0500 -+++ nss-3.12.5/mozilla/security/nss/manifest.mn 2009-09-14 21:45:45.703656167 -0500 -@@ -42,6 +42,6 @@ + ifdef NSS_DISABLE_DBM + @echo "skipping the build of DBM" +diff -urN a/mozilla/security/nss/manifest.mn b/mozilla/security/nss/manifest.mn +--- a/mozilla/security/nss/manifest.mn 2012-03-20 09:46:49.000000000 -0500 ++++ b/mozilla/security/nss/manifest.mn 2012-12-15 07:27:20.652148933 -0600 +@@ -10,6 +10,6 @@ RELEASE = nss -DIRS = lib cmd +DIRS = lib cmd config - - diff --git a/pkgs/development/libraries/nss/sync-up-with-upstream-softokn-changes.patch b/pkgs/development/libraries/nss/sync-up-with-upstream-softokn-changes.patch new file mode 100644 index 00000000000..4942debcd30 --- /dev/null +++ b/pkgs/development/libraries/nss/sync-up-with-upstream-softokn-changes.patch @@ -0,0 +1,406 @@ +From d6dbecfea317a468be12423595e584f43d84d8ec Mon Sep 17 00:00:00 2001 +From: Elio Maldonado +Date: Sat, 9 Feb 2013 17:11:00 -0500 +Subject: [PATCH] Sync up with upstream softokn changes + +- Disable RSA OEP case in FormatBlock, RSA_OAEP support is experimental and in a state of flux +- Numerous change upstream due to the work for TLS/DTLS 'Lucky 13' vulnerability CVE-2013-0169 +- It now compiles with the NSS_3_14_3_BETA1 source +--- + mozilla/security/nss/lib/ckfw/pem/rsawrapr.c | 338 +++++++------------------- + 1 files changed, 82 insertions(+), 256 deletions(-) + +diff --git a/mozilla/security/nss/lib/ckfw/pem/rsawrapr.c b/mozilla/security/nss/lib/ckfw/pem/rsawrapr.c +index 5ac4f39..3780d30 100644 +--- a/mozilla/security/nss/lib/ckfw/pem/rsawrapr.c ++++ b/mozilla/security/nss/lib/ckfw/pem/rsawrapr.c +@@ -46,6 +46,7 @@ + #include "sechash.h" + #include "base.h" + ++#include "lowkeyi.h" + #include "secerr.h" + + #define RSA_BLOCK_MIN_PAD_LEN 8 +@@ -54,9 +55,8 @@ + #define RSA_BLOCK_PRIVATE_PAD_OCTET 0xff + #define RSA_BLOCK_AFTER_PAD_OCTET 0x00 + +-#define OAEP_SALT_LEN 8 +-#define OAEP_PAD_LEN 8 +-#define OAEP_PAD_OCTET 0x00 ++/* Needed for RSA-PSS functions */ ++static const unsigned char eightZeros[] = { 0, 0, 0, 0, 0, 0, 0, 0 }; + + #define FLAT_BUFSIZE 512 /* bytes to hold flattened SHA1Context. */ + +@@ -78,127 +78,39 @@ pem_PublicModulusLen(NSSLOWKEYPublicKey *pubk) + return 0; + } + +-static SHA1Context *SHA1_CloneContext(SHA1Context * original) +-{ +- SHA1Context *clone = NULL; +- unsigned char *pBuf; +- int sha1ContextSize = SHA1_FlattenSize(original); +- SECStatus frv; +- unsigned char buf[FLAT_BUFSIZE]; +- +- PORT_Assert(sizeof buf >= sha1ContextSize); +- if (sizeof buf >= sha1ContextSize) { +- pBuf = buf; +- } else { +- pBuf = nss_ZAlloc(NULL, sha1ContextSize); +- if (!pBuf) +- goto done; +- } +- +- frv = SHA1_Flatten(original, pBuf); +- if (frv == SECSuccess) { +- clone = SHA1_Resurrect(pBuf, NULL); +- memset(pBuf, 0, sha1ContextSize); +- } +- done: +- if (pBuf != buf) +- nss_ZFreeIf(pBuf); +- return clone; ++/* Constant time comparison of a single byte. ++ * Returns 1 iff a == b, otherwise returns 0. ++ * Note: For ranges of bytes, use constantTimeCompare. ++ */ ++static unsigned char constantTimeEQ8(unsigned char a, unsigned char b) { ++ unsigned char c = ~(a - b | b - a); ++ c >>= 7; ++ return c; + } + +-/* +- * Modify data by XORing it with a special hash of salt. ++/* Constant time comparison of a range of bytes. ++ * Returns 1 iff len bytes of a are identical to len bytes of b, otherwise ++ * returns 0. + */ +-static SECStatus +-oaep_xor_with_h1(unsigned char *data, unsigned int datalen, +- unsigned char *salt, unsigned int saltlen) +-{ +- SHA1Context *sha1cx; +- unsigned char *dp, *dataend; +- unsigned char end_octet; +- +- sha1cx = SHA1_NewContext(); +- if (sha1cx == NULL) { +- return SECFailure; +- } +- +- /* +- * Get a hash of salt started; we will use it several times, +- * adding in a different end octet (x00, x01, x02, ...). +- */ +- SHA1_Begin(sha1cx); +- SHA1_Update(sha1cx, salt, saltlen); +- end_octet = 0; +- +- dp = data; +- dataend = data + datalen; +- +- while (dp < dataend) { +- SHA1Context *sha1cx_h1; +- unsigned int sha1len, sha1off; +- unsigned char sha1[SHA1_LENGTH]; +- +- /* +- * Create hash of (salt || end_octet) +- */ +- sha1cx_h1 = SHA1_CloneContext(sha1cx); +- SHA1_Update(sha1cx_h1, &end_octet, 1); +- SHA1_End(sha1cx_h1, sha1, &sha1len, sizeof(sha1)); +- SHA1_DestroyContext(sha1cx_h1, PR_TRUE); +- PORT_Assert(sha1len == SHA1_LENGTH); +- +- /* +- * XOR that hash with the data. +- * When we have fewer than SHA1_LENGTH octets of data +- * left to xor, use just the low-order ones of the hash. +- */ +- sha1off = 0; +- if ((dataend - dp) < SHA1_LENGTH) +- sha1off = SHA1_LENGTH - (dataend - dp); +- while (sha1off < SHA1_LENGTH) +- *dp++ ^= sha1[sha1off++]; +- +- /* +- * Bump for next hash chunk. +- */ +- end_octet++; +- } +- +- SHA1_DestroyContext(sha1cx, PR_TRUE); +- return SECSuccess; ++static unsigned char constantTimeCompare(const unsigned char *a, ++ const unsigned char *b, ++ unsigned int len) { ++ unsigned char tmp = 0; ++ unsigned int i; ++ for (i = 0; i < len; ++i, ++a, ++b) ++ tmp |= *a ^ *b; ++ return constantTimeEQ8(0x00, tmp); + } + +-/* +- * Modify salt by XORing it with a special hash of data. ++/* Constant time conditional. ++ * Returns a if c is 1, or b if c is 0. The result is undefined if c is ++ * not 0 or 1. + */ +-static SECStatus +-oaep_xor_with_h2(unsigned char *salt, unsigned int saltlen, +- unsigned char *data, unsigned int datalen) ++static unsigned int constantTimeCondition(unsigned int c, ++ unsigned int a, ++ unsigned int b) + { +- unsigned char sha1[SHA1_LENGTH]; +- unsigned char *psalt, *psha1, *saltend; +- SECStatus rv; +- +- /* +- * Create a hash of data. +- */ +- rv = SHA1_HashBuf(sha1, data, datalen); +- if (rv != SECSuccess) { +- return rv; +- } +- +- /* +- * XOR the low-order octets of that hash with salt. +- */ +- PORT_Assert(saltlen <= SHA1_LENGTH); +- saltend = salt + saltlen; +- psalt = salt; +- psha1 = sha1 + SHA1_LENGTH - saltlen; +- while (psalt < saltend) { +- *psalt++ ^= *psha1++; +- } +- +- return SECSuccess; ++ return (~(c - 1) & a) | ((c - 1) & b); + } + + /* +@@ -212,7 +124,7 @@ static unsigned char *rsa_FormatOneBlock(unsigned modulusLen, + unsigned char *block; + unsigned char *bp; + int padLen; +- int i; ++ int i, j; + SECStatus rv; + + block = (unsigned char *) nss_ZAlloc(NULL, modulusLen); +@@ -260,124 +172,58 @@ static unsigned char *rsa_FormatOneBlock(unsigned modulusLen, + */ + case RSA_BlockPublic: + +- /* +- * 0x00 || BT || Pad || 0x00 || ActualData +- * 1 1 padLen 1 data->len +- * Pad is all non-zero random bytes. +- */ +- padLen = modulusLen - data->len - 3; +- PORT_Assert(padLen >= RSA_BLOCK_MIN_PAD_LEN); +- if (padLen < RSA_BLOCK_MIN_PAD_LEN) { +- nss_ZFreeIf(block); +- return NULL; +- } +- for (i = 0; i < padLen; i++) { +- /* Pad with non-zero random data. */ +- do { +- rv = RNG_GenerateGlobalRandomBytes(bp + i, 1); +- } while (rv == SECSuccess +- && bp[i] == RSA_BLOCK_AFTER_PAD_OCTET); +- if (rv != SECSuccess) { +- nss_ZFreeIf(block); +- return NULL; +- } +- } +- bp += padLen; +- *bp++ = RSA_BLOCK_AFTER_PAD_OCTET; +- nsslibc_memcpy(bp, data->data, data->len); +- +- break; +- +- /* +- * Blocks intended for public-key operation, using +- * Optimal Asymmetric Encryption Padding (OAEP). +- */ +- case RSA_BlockOAEP: +- /* +- * 0x00 || BT || Modified2(Salt) || Modified1(PaddedData) +- * 1 1 OAEP_SALT_LEN OAEP_PAD_LEN + data->len [+ N] +- * +- * where: +- * PaddedData is "Pad1 || ActualData [|| Pad2]" +- * Salt is random data. +- * Pad1 is all zeros. +- * Pad2, if present, is random data. +- * (The "modified" fields are all the same length as the original +- * unmodified values; they are just xor'd with other values.) +- * +- * Modified1 is an XOR of PaddedData with a special octet +- * string constructed of iterated hashing of Salt (see below). +- * Modified2 is an XOR of Salt with the low-order octets of +- * the hash of Modified1 (see farther below ;-). +- * +- * Whew! +- */ +- +- +- /* +- * Salt +- */ +- rv = RNG_GenerateGlobalRandomBytes(bp, OAEP_SALT_LEN); +- if (rv != SECSuccess) { +- nss_ZFreeIf(block); +- return NULL; +- } +- bp += OAEP_SALT_LEN; +- +- /* +- * Pad1 +- */ +- nsslibc_memset(bp, OAEP_PAD_OCTET, OAEP_PAD_LEN); +- bp += OAEP_PAD_LEN; +- +- /* +- * Data +- */ +- nsslibc_memcpy(bp, data->data, data->len); +- bp += data->len; +- +- /* +- * Pad2 +- */ +- if (bp < (block + modulusLen)) { +- rv = RNG_GenerateGlobalRandomBytes(bp, +- block - bp + modulusLen); +- if (rv != SECSuccess) { +- nss_ZFreeIf(block); +- return NULL; +- } +- } +- +- /* +- * Now we have the following: +- * 0x00 || BT || Salt || PaddedData +- * (From this point on, "Pad1 || Data [|| Pad2]" is treated +- * as the one entity PaddedData.) +- * +- * We need to turn PaddedData into Modified1. +- */ +- if (oaep_xor_with_h1(block + 2 + OAEP_SALT_LEN, +- modulusLen - 2 - OAEP_SALT_LEN, +- block + 2, OAEP_SALT_LEN) != SECSuccess) { +- nss_ZFreeIf(block); +- return NULL; +- } +- +- /* +- * Now we have: +- * 0x00 || BT || Salt || Modified1(PaddedData) +- * +- * The remaining task is to turn Salt into Modified2. +- */ +- if (oaep_xor_with_h2(block + 2, OAEP_SALT_LEN, +- block + 2 + OAEP_SALT_LEN, +- modulusLen - 2 - OAEP_SALT_LEN) != +- SECSuccess) { +- nss_ZFreeIf(block); +- return NULL; +- } +- +- break; ++ /* ++ * 0x00 || BT || Pad || 0x00 || ActualData ++ * 1 1 padLen 1 data->len ++ * Pad is all non-zero random bytes. ++ * ++ * Build the block left to right. ++ * Fill the entire block from Pad to the end with random bytes. ++ * Use the bytes after Pad as a supply of extra random bytes from ++ * which to find replacements for the zero bytes in Pad. ++ * If we need more than that, refill the bytes after Pad with ++ * new random bytes as necessary. ++ */ ++ padLen = modulusLen - (data->len + 3); ++ PORT_Assert (padLen >= RSA_BLOCK_MIN_PAD_LEN); ++ if (padLen < RSA_BLOCK_MIN_PAD_LEN) { ++ nss_ZFreeIf (block); ++ return NULL; ++ } ++ j = modulusLen - 2; ++ rv = RNG_GenerateGlobalRandomBytes(bp, j); ++ if (rv == SECSuccess) { ++ for (i = 0; i < padLen; ) { ++ unsigned char repl; ++ /* Pad with non-zero random data. */ ++ if (bp[i] != RSA_BLOCK_AFTER_PAD_OCTET) { ++ ++i; ++ continue; ++ } ++ if (j <= padLen) { ++ rv = RNG_GenerateGlobalRandomBytes(bp + padLen, ++ modulusLen - (2 + padLen)); ++ if (rv != SECSuccess) ++ break; ++ j = modulusLen - 2; ++ } ++ do { ++ repl = bp[--j]; ++ } while (repl == RSA_BLOCK_AFTER_PAD_OCTET && j > padLen); ++ if (repl != RSA_BLOCK_AFTER_PAD_OCTET) { ++ bp[i++] = repl; ++ } ++ } ++ } ++ if (rv != SECSuccess) { ++ /*sftk_fatalError = PR_TRUE;*/ ++ nss_ZFreeIf (block); ++ return NULL; ++ } ++ bp += padLen; ++ *bp++ = RSA_BLOCK_AFTER_PAD_OCTET; ++ nsslibc_memcpy(bp, data->data, data->len); ++ break; + + default: + PORT_Assert(0); +@@ -427,26 +273,6 @@ rsa_FormatBlock(SECItem * result, unsigned modulusLen, + + break; + +- case RSA_BlockOAEP: +- /* +- * 0x00 || BT || M1(Salt) || M2(Pad1||ActualData[||Pad2]) +- * +- * The "2" below is the first octet + the second octet. +- * (The other fields do not contain the clear values, but are +- * the same length as the clear values.) +- */ +- PORT_Assert(data->len <= (modulusLen - (2 + OAEP_SALT_LEN +- + OAEP_PAD_LEN))); +- +- result->data = rsa_FormatOneBlock(modulusLen, blockType, data); +- if (result->data == NULL) { +- result->len = 0; +- return SECFailure; +- } +- result->len = modulusLen; +- +- break; +- + case RSA_BlockRaw: + /* + * Pad || ActualData +-- +1.7.1 + From 113b15f3a8ebe9dd7bf613812ab0065df4ae22a8 Mon Sep 17 00:00:00 2001 From: aszlig Date: Fri, 1 Mar 2013 10:03:34 +0100 Subject: [PATCH 75/89] virtualbox: Update tarball sha256sum of v4.2.8. Outrageous! They fixed the tarball by including the missing file. Well, at least we now don't have that much cruft laying around and can remove that rather long patch. Signed-off-by: aszlig --- .../virtualization/virtualbox/default.nix | 3 +- .../virtualbox/missing_files_4.2.8.patch | 993 ------------------ 2 files changed, 1 insertion(+), 995 deletions(-) delete mode 100644 pkgs/applications/virtualization/virtualbox/missing_files_4.2.8.patch diff --git a/pkgs/applications/virtualization/virtualbox/default.nix b/pkgs/applications/virtualization/virtualbox/default.nix index 62a4b16070d..bf19ecd99ca 100644 --- a/pkgs/applications/virtualization/virtualbox/default.nix +++ b/pkgs/applications/virtualization/virtualbox/default.nix @@ -44,7 +44,7 @@ in stdenv.mkDerivation { src = fetchurl { url = "http://download.virtualbox.org/virtualbox/${version}/VirtualBox-${version}.tar.bz2"; - sha256 = "bc9185e0c300d61e2a6c8ac48b4bea6a0a456c9ba11d1fbadf2d1e6ca063f2b4"; + sha256 = "f336af12244db74e6564dc22e438bbcba70f994aaf0d117fdf70caca9fab1b78"; }; buildInputs = @@ -55,7 +55,6 @@ in stdenv.mkDerivation { ++ optional pythonBindings python; patches = [ - ./missing_files_4.2.8.patch ./strict_types.patch ./build_fix_3.9.0.patch ]; diff --git a/pkgs/applications/virtualization/virtualbox/missing_files_4.2.8.patch b/pkgs/applications/virtualization/virtualbox/missing_files_4.2.8.patch deleted file mode 100644 index 6cb1560dd69..00000000000 --- a/pkgs/applications/virtualization/virtualbox/missing_files_4.2.8.patch +++ /dev/null @@ -1,993 +0,0 @@ -Index: VRDEVideoIn.h -=================================================================== -diff --git a/include/VBox/RemoteDesktop/VRDEVideoIn.h b/include/VBox/RemoteDesktop/VRDEVideoIn.h -new file mode 10644 ---- /dev/null (revision 0) -+++ b/include/VBox/RemoteDesktop/VRDEVideoIn.h (revision 44528) -@@ -0,0 +1,986 @@ -+/** @file -+ * VBox Remote Desktop Extension (VRDE) - Video Input interface. -+ */ -+ -+/* -+ * Copyright (C) 2012-2013 Oracle Corporation -+ * -+ * This file is part of VirtualBox Open Source Edition (OSE), as -+ * available from http://www.virtualbox.org. This file is free software; -+ * you can redistribute it and/or modify it under the terms of the GNU -+ * General Public License (GPL) as published by the Free Software -+ * Foundation, in version 2 as it comes in the "COPYING" file of the -+ * VirtualBox OSE distribution. VirtualBox OSE is distributed in the -+ * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. -+ * -+ * The contents of this file may alternatively be used under the terms -+ * of the Common Development and Distribution License Version 1.0 -+ * (CDDL) only, as it comes in the "COPYING.CDDL" file of the -+ * VirtualBox OSE distribution, in which case the provisions of the -+ * CDDL are applicable instead of those of the GPL. -+ * -+ * You may elect to license modified versions of this file under the -+ * terms and conditions of either the GPL or the CDDL or both. -+ */ -+ -+#ifndef ___VBox_RemoteDesktop_VRDEVideoIn_h -+#define ___VBox_RemoteDesktop_VRDEVideoIn_h -+ -+ -+/* Define VRDE_VIDEOIN_WITH_VRDEINTERFACE to include the server VRDE interface parts. */ -+ -+#ifdef VRDE_VIDEOIN_WITH_VRDEINTERFACE -+#include -+#endif /* VRDE_VIDEOIN_WITH_VRDEINTERFACE */ -+ -+#ifdef AssertCompileSize -+#define ASSERTSIZE(type, size) AssertCompileSize(type, size); -+#else -+#define ASSERTSIZE(type, size) -+#endif /* AssertCompileSize */ -+ -+ -+/* -+ * Interface for accessing a video camera device on the client. -+ * -+ * Async callbacks are used for providing feedback, reporting errors, etc. -+ * -+ * Initial version supports: Camera + Processing Unit + Streaming Control. -+ * -+ * There are 2 modes: -+ * 1) The virtual WebCam is already attached to the guest. -+ * 2) The virtual WebCam will be attached when the client has it. -+ * -+ * Initially the mode 1 is supported. -+ * -+ * Mode 1 details: -+ * The WebCam has some fixed functionality, according to the descriptors, -+ * which has been already read by the guest. So some of functions will -+ * not work if the client does not support them. -+ * -+ * Mode 2 details: -+ * Virtual WebCam descriptors are built from the client capabilities. -+ * -+ * Similarly to the smartcard, the server will inform the ConsoleVRDE that there is a WebCam. -+ * ConsoleVRDE creates a VRDEVIDEOIN handle and forwards virtual WebCam requests to it. -+ * -+ * Interface with VBox. -+ * -+ * Virtual WebCam ConsoleVRDE VRDE -+ * -+ * Negotiate <-> -+ * <- VideoInDeviceNotify(Attached, DeviceId) -+ * -> GetDeviceDesc -+ * <- DeviceDesc -+ * 2 <- CreateCamera -+ * 2 CameraCreated -> -+ * -+ * CameraRequest -> Request -> -+ * Response <- <- Response <- Response -+ * Frame <- <- Frame <- Frame -+ * <- VideoInDeviceNotify(Detached, DeviceId) -+ * -+ * Unsupported requests fail. -+ * The Device Description received from the client may be used to validate WebCam requests -+ * in the ConsoleVRDE code, for example filter out unsupported requests. -+ * -+ */ -+ -+/* All structures in this file are packed. -+ * Everything is little-endian. -+ */ -+#pragma pack(1) -+ -+/* -+ * The interface supports generic video input descriptors, capabilities and controls: -+ * * Descriptors -+ * + Interface -+ * - Input, Camera Terminal -+ * - Processing Unit -+ * + Video Streaming -+ * - Input Header -+ * - Payload Format -+ * - Video Frame -+ * - Still Image Frame -+ * * Video Control requests -+ * + Interface -+ * - Power Mode -+ * + Unit and Terminal -+ * camera -+ * - Scanning Mode (interlaced, progressive) -+ * - Auto-Exposure Mode -+ * - Auto-Exposure Priority -+ * - Exposure Time Absolute, Relative -+ * - Focus Absolute, Relative, Auto -+ * - Iris Absolute, Relative -+ * - Zoom Absolute, Relative -+ * - PanTilt Absolute, Relative -+ * - Roll Absolute, Relative -+ * - Privacy -+ * processing -+ * - Backlight Compensation -+ * - Brightness -+ * - Contrast -+ * - Gain -+ * - Power Line Frequency -+ * - Hue Manual, Auto -+ * - Saturation -+ * - Sharpness -+ * - Gamma -+ * - White Balance Temperature Manual, Auto -+ * - White Balance Component Manual, Auto -+ * - Digital Multiplier -+ * - Digital Multiplier Limit -+ * * Video Streaming requests -+ * + Interface -+ * - Synch Delay -+ * - Still Image Trigger -+ * - Generate Key Frame -+ * - Update Frame Segment -+ * - Stream Error Code -+ * -+ * -+ * Notes: -+ * * still capture uses a method similar to method 2, because the still frame will -+ * be send instead of video over the channel. -+ * Also the method 2 can be in principle emulated by both 1 and 3 on the client. -+ * However the client can initiate a still frame transfer, similar to hardware button trigger. -+ * * all control changes are async. -+ * * probe/commit are not used. The server can select a supported format/frame from the list. -+ * * no color matching. sRGB is the default. -+ * * most of constants are the same as in USB Video Class spec, but they are not the same and -+ * should be always converted. -+ */ -+ -+/* -+ * The DEVICEDEC describes the device and provides a list of supported formats: -+ * VRDEVIDEOINDEVICEDESC -+ * VRDEVIDEOINFORMATDESC[0]; -+ * VRDEVIDEOINFRAMEDESC[0..N-1] -+ * VRDEVIDEOINFORMATDESC[1]; -+ * VRDEVIDEOINFRAMEDESC[0..M-1] -+ * ... -+ */ -+ -+typedef struct VRDEVIDEOINDEVICEDESC -+{ -+ uint16_t u16ObjectiveFocalLengthMin; -+ uint16_t u16ObjectiveFocalLengthMax; -+ uint16_t u16OcularFocalLength; -+ uint16_t u16MaxMultiplier; -+ uint32_t fu32CameraControls; /* VRDE_VIDEOIN_F_CT_CTRL_* */ -+ uint32_t fu32ProcessingControls; /* VRDE_VIDEOIN_F_PU_CTRL_* */ -+ uint8_t fu8DeviceCaps; /* VRDE_VIDEOIN_F_DEV_CAP_* */ -+ uint8_t u8NumFormats; /* Number of following VRDEVIDEOINFORMATDESC structures. */ -+ uint16_t cbExt; /* Size of the optional extended description. */ -+ /* An extended description may follow. */ -+ /* An array of VRDEVIDEOINFORMATDESC follows. */ -+} VRDEVIDEOINDEVICEDESC; -+ -+/* VRDEVIDEOINDEVICEDESC::fu32CameraControls */ -+#define VRDE_VIDEOIN_F_CT_CTRL_SCANNING_MODE 0x00000001 /* D0: Scanning Mode */ -+#define VRDE_VIDEOIN_F_CT_CTRL_AE_MODE 0x00000002 /* D1: Auto-Exposure Mode */ -+#define VRDE_VIDEOIN_F_CT_CTRL_AE_PRIORITY 0x00000004 /* D2: Auto-Exposure Priority */ -+#define VRDE_VIDEOIN_F_CT_CTRL_EXPOSURE_TIME_ABSOLUTE 0x00000008 /* D3: Exposure Time (Absolute) */ -+#define VRDE_VIDEOIN_F_CT_CTRL_EXPOSURE_TIME_RELATIVE 0x00000010 /* D4: Exposure Time (Relative) */ -+#define VRDE_VIDEOIN_F_CT_CTRL_FOCUS_ABSOLUTE 0x00000020 /* D5: Focus (Absolute) */ -+#define VRDE_VIDEOIN_F_CT_CTRL_FOCUS_RELATIVE 0x00000040 /* D6: Focus (Relative) */ -+#define VRDE_VIDEOIN_F_CT_CTRL_IRIS_ABSOLUTE 0x00000080 /* D7: Iris (Absolute) */ -+#define VRDE_VIDEOIN_F_CT_CTRL_IRIS_RELATIVE 0x00000100 /* D8: Iris (Relative) */ -+#define VRDE_VIDEOIN_F_CT_CTRL_ZOOM_ABSOLUTE 0x00000200 /* D9: Zoom (Absolute) */ -+#define VRDE_VIDEOIN_F_CT_CTRL_ZOOM_RELATIVE 0x00000400 /* D10: Zoom (Relative) */ -+#define VRDE_VIDEOIN_F_CT_CTRL_PANTILT_ABSOLUTE 0x00000800 /* D11: PanTilt (Absolute) */ -+#define VRDE_VIDEOIN_F_CT_CTRL_PANTILT_RELATIVE 0x00001000 /* D12: PanTilt (Relative) */ -+#define VRDE_VIDEOIN_F_CT_CTRL_ROLL_ABSOLUTE 0x00002000 /* D13: Roll (Absolute) */ -+#define VRDE_VIDEOIN_F_CT_CTRL_ROLL_RELATIVE 0x00004000 /* D14: Roll (Relative) */ -+#define VRDE_VIDEOIN_F_CT_CTRL_RESERVED1 0x00008000 /* D15: Reserved */ -+#define VRDE_VIDEOIN_F_CT_CTRL_RESERVED2 0x00010000 /* D16: Reserved */ -+#define VRDE_VIDEOIN_F_CT_CTRL_FOCUS_AUTO 0x00020000 /* D17: Focus, Auto */ -+#define VRDE_VIDEOIN_F_CT_CTRL_PRIVACY 0x00040000 /* D18: Privacy */ -+ -+/* VRDEVIDEOINDEVICEDESC::fu32ProcessingControls */ -+#define VRDE_VIDEOIN_F_PU_CTRL_BRIGHTNESS 0x00000001 /* D0: Brightness */ -+#define VRDE_VIDEOIN_F_PU_CTRL_CONTRAST 0x00000002 /* D1: Contrast */ -+#define VRDE_VIDEOIN_F_PU_CTRL_HUE 0x00000004 /* D2: Hue */ -+#define VRDE_VIDEOIN_F_PU_CTRL_SATURATION 0x00000008 /* D3: Saturation */ -+#define VRDE_VIDEOIN_F_PU_CTRL_SHARPNESS 0x00000010 /* D4: Sharpness */ -+#define VRDE_VIDEOIN_F_PU_CTRL_GAMMA 0x00000020 /* D5: Gamma */ -+#define VRDE_VIDEOIN_F_PU_CTRL_WHITE_BALANCE_TEMPERATURE 0x00000040 /* D6: White Balance Temperature */ -+#define VRDE_VIDEOIN_F_PU_CTRL_WHITE_BALANCE_COMPONENT 0x00000080 /* D7: White Balance Component */ -+#define VRDE_VIDEOIN_F_PU_CTRL_BACKLIGHT_COMPENSATION 0x00000100 /* D8: Backlight Compensation */ -+#define VRDE_VIDEOIN_F_PU_CTRL_GAIN 0x00000200 /* D9: Gain */ -+#define VRDE_VIDEOIN_F_PU_CTRL_POWER_LINE_FREQUENCY 0x00000400 /* D10: Power Line Frequency */ -+#define VRDE_VIDEOIN_F_PU_CTRL_HUE_AUTO 0x00000800 /* D11: Hue, Auto */ -+#define VRDE_VIDEOIN_F_PU_CTRL_WHITE_BALANCE_TEMPERATURE_AUTO 0x00001000 /* D12: White Balance Temperature, Auto */ -+#define VRDE_VIDEOIN_F_PU_CTRL_WHITE_BALANCE_COMPONENT_AUTO 0x00002000 /* D13: White Balance Component, Auto */ -+#define VRDE_VIDEOIN_F_PU_CTRL_DIGITAL_MULTIPLIER 0x00004000 /* D14: Digital Multiplier */ -+#define VRDE_VIDEOIN_F_PU_CTRL_DIGITAL_MULTIPLIER_LIMIT 0x00008000 /* D15: Digital Multiplier Limit */ -+ -+/* VRDEVIDEOINDEVICEDESC::fu8DeviceCaps */ -+#define VRDE_VIDEOIN_F_DEV_CAP_DYNAMICCHANGE 0x01 /* Whether dynamic format change is supported. */ -+#define VRDE_VIDEOIN_F_DEV_CAP_TRIGGER 0x02 /* Whether hardware triggering is supported. */ -+#define VRDE_VIDEOIN_F_DEV_CAP_TRIGGER_USAGE 0x04 /* 0 - still image, 1 - generic button event.*/ -+ -+/* The video format descriptor. */ -+typedef struct VRDEVIDEOINFORMATDESC -+{ -+ uint16_t cbFormat; /* Size of the structure including cbFormat and format specific data. */ -+ uint8_t u8FormatId; /* The unique identifier of the format on the client. */ -+ uint8_t u8FormatType; /* MJPEG etc. VRDE_VIDEOIN_FORMAT_* */ -+ uint8_t u8FormatFlags; /* VRDE_VIDEOIN_F_FMT_* */ -+ uint8_t u8NumFrames; /* Number of following VRDEVIDEOINFRAMEDESC structures. */ -+ uint16_t u16Reserved; /* Must be set to 0. */ -+ /* Other format specific data may follow. */ -+ /* An array of VRDEVIDEOINFRAMEDESC follows. */ -+} VRDEVIDEOINFORMATDESC; -+ -+/* VRDEVIDEOINFORMATDESC::u8FormatType */ -+#define VRDE_VIDEOIN_FORMAT_UNCOMPRESSED 0x04 -+#define VRDE_VIDEOIN_FORMAT_MJPEG 0x06 -+#define VRDE_VIDEOIN_FORMAT_MPEG2TS 0x0A -+#define VRDE_VIDEOIN_FORMAT_DV 0x0C -+#define VRDE_VIDEOIN_FORMAT_FRAME_BASED 0x10 -+#define VRDE_VIDEOIN_FORMAT_STREAM_BASED 0x12 -+ -+/* VRDEVIDEOINFORMATDESC::u8FormatFlags. */ -+#define VRDE_VIDEOIN_F_FMT_GENERATEKEYFRAME 0x01 /* Supports Generate Key Frame */ -+#define VRDE_VIDEOIN_F_FMT_UPDATEFRAMESEGMENT 0x02 /* Supports Update Frame Segment */ -+#define VRDE_VIDEOIN_F_FMT_COPYPROTECT 0x04 /* If duplication should be restricted. */ -+#define VRDE_VIDEOIN_F_FMT_COMPQUALITY 0x08 /* If the format supports an adjustable compression quality. */ -+ -+typedef struct VRDEVIDEOINFRAMEDESC -+{ -+ uint16_t cbFrame; /* Size of the structure including cbFrame and frame specific data. */ -+ uint8_t u8FrameId; /* The unique identifier of the frame for the corresponding format on the client. */ -+ uint8_t u8FrameFlags; -+ uint16_t u16Width; -+ uint16_t u16Height; -+ uint32_t u32NumFrameIntervals; /* The number of supported frame intervals. */ -+ uint32_t u32MinFrameInterval; /* Shortest frame interval supported (at highest frame rate), in 100ns units. */ -+ uint32_t u32MaxFrameInterval; /* Longest frame interval supported (at lowest frame rate), in 100ns units. */ -+ /* Supported frame intervals (in 100ns units) follow if VRDE_VIDEOIN_F_FRM_DISCRETE_INTERVALS is set. -+ * uint32_t au32FrameIntervals[u32NumFrameIntervals]; -+ */ -+ /* Other frame specific data may follow. */ -+} VRDEVIDEOINFRAMEDESC; -+ -+/* VRDEVIDEOINFRAMEDESC::u8FrameFlags. */ -+#define VRDE_VIDEOIN_F_FRM_STILL 0x01 /* If still images are supported for this frame. */ -+#define VRDE_VIDEOIN_F_FRM_DISCRETE_INTERVALS 0x02 /* If the discrete intervals list is included. */ -+ -+/* -+ * Controls. -+ * -+ * The same structures are used for both SET and GET requests. -+ * Requests are async. A callback is invoked, when the client returns a reply. -+ * A control change notification also uses these structures. -+ * -+ * If a control request can not be fulfilled, then VRDE_VIDEOIN_CTRLHDR_F_FAIL -+ * will be set and u8Status contains the error code. This replaces the VC_REQUEST_ERROR_CODE_CONTROL. -+ */ -+ -+typedef struct VRDEVIDEOINCTRLHDR -+{ -+ uint16_t u16ControlSelector; /* VRDE_VIDEOIN_CTRLSEL_* */ -+ uint16_t u16RequestType; /* VRDE_VIDEOIN_CTRLREQ_* */ -+ uint16_t u16ParmSize; /* The size of the control specific parameters. */ -+ uint8_t u8Flags; /* VRDE_VIDEOIN_CTRLHDR_F_* */ -+ uint8_t u8Status; /* VRDE_VIDEOIN_CTRLHDR_STATUS_* */ -+ /* Control specific data follows. */ -+} VRDEVIDEOINCTRLHDR; -+ -+/* Control request types: VRDEVIDEOINCTRLHDR::u16RequestType. */ -+#define VRDE_VIDEOIN_CTRLREQ_UNDEFINED 0x00 -+#define VRDE_VIDEOIN_CTRLREQ_SET_CUR 0x01 -+#define VRDE_VIDEOIN_CTRLREQ_GET_CUR 0x81 -+#define VRDE_VIDEOIN_CTRLREQ_GET_MIN 0x82 -+#define VRDE_VIDEOIN_CTRLREQ_GET_MAX 0x83 -+#define VRDE_VIDEOIN_CTRLREQ_GET_RES 0x84 -+#define VRDE_VIDEOIN_CTRLREQ_GET_LEN 0x85 -+#define VRDE_VIDEOIN_CTRLREQ_GET_INFO 0x86 -+#define VRDE_VIDEOIN_CTRLREQ_GET_DEF 0x87 -+ -+/* VRDEVIDEOINCTRLHDR::u8Flags */ -+#define VRDE_VIDEOIN_CTRLHDR_F_NOTIFY 0x01 /* Control change notification, the attribute is derived from u16RequestType and F_FAIL. */ -+#define VRDE_VIDEOIN_CTRLHDR_F_FAIL 0x02 /* The operation failed. Error code is in u8Status. */ -+ -+/* VRDEVIDEOINCTRLHDR::u8Status if the VRDE_VIDEOIN_CTRLHDR_F_FAIL is set. */ -+#define VRDE_VIDEOIN_CTRLHDR_STATUS_SUCCESS 0x00 /**/ -+#define VRDE_VIDEOIN_CTRLHDR_STATUS_NOTREADY 0x01 /* Not ready */ -+#define VRDE_VIDEOIN_CTRLHDR_STATUS_WRONGSTATE 0x02 /* Wrong state */ -+#define VRDE_VIDEOIN_CTRLHDR_STATUS_POWER 0x03 /* Power */ -+#define VRDE_VIDEOIN_CTRLHDR_STATUS_OUTOFRANGE 0x04 /* Out of range */ -+#define VRDE_VIDEOIN_CTRLHDR_STATUS_INVALIDUNIT 0x05 /* Invalid unit */ -+#define VRDE_VIDEOIN_CTRLHDR_STATUS_INVALIDCONTROL 0x06 /* Invalid control */ -+#define VRDE_VIDEOIN_CTRLHDR_STATUS_INVALIDREQUEST 0x07 /* Invalid Request */ -+#define VRDE_VIDEOIN_CTRLHDR_STATUS_UNKNOWN 0xFF /* Unknown */ -+ -+/* Control selectors. 16 bit. High byte is the category. Low byte is the identifier.*/ -+#ifdef RT_MAKE_U16 -+#define VRDE_VIDEOIN_CTRLSEL_MAKE(Lo, Hi) RT_MAKE_U16(Lo, Hi) -+#else -+#define VRDE_VIDEOIN_CTRLSEL_MAKE(Lo, Hi) ((uint16_t)( (uint16_t)((uint8_t)(Hi)) << 8 | (uint8_t)(Lo) )) -+#endif -+ -+#define VRDE_VIDEOIN_CTRLSEL_VC(a) VRDE_VIDEOIN_CTRLSEL_MAKE(a, 0x01) -+#define VRDE_VIDEOIN_CTRLSEL_CT(a) VRDE_VIDEOIN_CTRLSEL_MAKE(a, 0x02) -+#define VRDE_VIDEOIN_CTRLSEL_PU(a) VRDE_VIDEOIN_CTRLSEL_MAKE(a, 0x03) -+#define VRDE_VIDEOIN_CTRLSEL_VS(a) VRDE_VIDEOIN_CTRLSEL_MAKE(a, 0x04) -+#define VRDE_VIDEOIN_CTRLSEL_HW(a) VRDE_VIDEOIN_CTRLSEL_MAKE(a, 0x05) -+ -+#define VRDE_VIDEOIN_CTRLSEL_VC_VIDEO_POWER_MODE_CONTROL VRDE_VIDEOIN_CTRLSEL_VC(0x01) -+ -+#define VRDE_VIDEOIN_CTRLSEL_CT_UNDEFINED VRDE_VIDEOIN_CTRLSEL_CT(0x00) -+#define VRDE_VIDEOIN_CTRLSEL_CT_SCANNING_MODE VRDE_VIDEOIN_CTRLSEL_CT(0x01) -+#define VRDE_VIDEOIN_CTRLSEL_CT_AE_MODE VRDE_VIDEOIN_CTRLSEL_CT(0x02) -+#define VRDE_VIDEOIN_CTRLSEL_CT_AE_PRIORITY VRDE_VIDEOIN_CTRLSEL_CT(0x03) -+#define VRDE_VIDEOIN_CTRLSEL_CT_EXPOSURE_TIME_ABSOLUTE VRDE_VIDEOIN_CTRLSEL_CT(0x04) -+#define VRDE_VIDEOIN_CTRLSEL_CT_EXPOSURE_TIME_RELATIVE VRDE_VIDEOIN_CTRLSEL_CT(0x05) -+#define VRDE_VIDEOIN_CTRLSEL_CT_FOCUS_ABSOLUTE VRDE_VIDEOIN_CTRLSEL_CT(0x06) -+#define VRDE_VIDEOIN_CTRLSEL_CT_FOCUS_RELATIVE VRDE_VIDEOIN_CTRLSEL_CT(0x07) -+#define VRDE_VIDEOIN_CTRLSEL_CT_FOCUS_AUTO VRDE_VIDEOIN_CTRLSEL_CT(0x08) -+#define VRDE_VIDEOIN_CTRLSEL_CT_IRIS_ABSOLUTE VRDE_VIDEOIN_CTRLSEL_CT(0x09) -+#define VRDE_VIDEOIN_CTRLSEL_CT_IRIS_RELATIVE VRDE_VIDEOIN_CTRLSEL_CT(0x0A) -+#define VRDE_VIDEOIN_CTRLSEL_CT_ZOOM_ABSOLUTE VRDE_VIDEOIN_CTRLSEL_CT(0x0B) -+#define VRDE_VIDEOIN_CTRLSEL_CT_ZOOM_RELATIVE VRDE_VIDEOIN_CTRLSEL_CT(0x0C) -+#define VRDE_VIDEOIN_CTRLSEL_CT_PANTILT_ABSOLUTE VRDE_VIDEOIN_CTRLSEL_CT(0x0D) -+#define VRDE_VIDEOIN_CTRLSEL_CT_PANTILT_RELATIVE VRDE_VIDEOIN_CTRLSEL_CT(0x0E) -+#define VRDE_VIDEOIN_CTRLSEL_CT_ROLL_ABSOLUTE VRDE_VIDEOIN_CTRLSEL_CT(0x0F) -+#define VRDE_VIDEOIN_CTRLSEL_CT_ROLL_RELATIVE VRDE_VIDEOIN_CTRLSEL_CT(0x10) -+#define VRDE_VIDEOIN_CTRLSEL_CT_PRIVACY VRDE_VIDEOIN_CTRLSEL_CT(0x11) -+ -+#define VRDE_VIDEOIN_CTRLSEL_PU_UNDEFINED VRDE_VIDEOIN_CTRLSEL_PU(0x00) -+#define VRDE_VIDEOIN_CTRLSEL_PU_BACKLIGHT_COMPENSATION VRDE_VIDEOIN_CTRLSEL_PU(0x01) -+#define VRDE_VIDEOIN_CTRLSEL_PU_BRIGHTNESS VRDE_VIDEOIN_CTRLSEL_PU(0x02) -+#define VRDE_VIDEOIN_CTRLSEL_PU_CONTRAST VRDE_VIDEOIN_CTRLSEL_PU(0x03) -+#define VRDE_VIDEOIN_CTRLSEL_PU_GAIN VRDE_VIDEOIN_CTRLSEL_PU(0x04) -+#define VRDE_VIDEOIN_CTRLSEL_PU_POWER_LINE_FREQUENCY VRDE_VIDEOIN_CTRLSEL_PU(0x05) -+#define VRDE_VIDEOIN_CTRLSEL_PU_HUE VRDE_VIDEOIN_CTRLSEL_PU(0x06) -+#define VRDE_VIDEOIN_CTRLSEL_PU_SATURATION VRDE_VIDEOIN_CTRLSEL_PU(0x07) -+#define VRDE_VIDEOIN_CTRLSEL_PU_SHARPNESS VRDE_VIDEOIN_CTRLSEL_PU(0x08) -+#define VRDE_VIDEOIN_CTRLSEL_PU_GAMMA VRDE_VIDEOIN_CTRLSEL_PU(0x09) -+#define VRDE_VIDEOIN_CTRLSEL_PU_WHITE_BALANCE_TEMPERATURE VRDE_VIDEOIN_CTRLSEL_PU(0x0A) -+#define VRDE_VIDEOIN_CTRLSEL_PU_WHITE_BALANCE_TEMPERATURE_AUTO VRDE_VIDEOIN_CTRLSEL_PU(0x0B) -+#define VRDE_VIDEOIN_CTRLSEL_PU_WHITE_BALANCE_COMPONENT VRDE_VIDEOIN_CTRLSEL_PU(0x0C) -+#define VRDE_VIDEOIN_CTRLSEL_PU_WHITE_BALANCE_COMPONENT_AUTO VRDE_VIDEOIN_CTRLSEL_PU(0x0D) -+#define VRDE_VIDEOIN_CTRLSEL_PU_DIGITAL_MULTIPLIER VRDE_VIDEOIN_CTRLSEL_PU(0x0E) -+#define VRDE_VIDEOIN_CTRLSEL_PU_DIGITAL_MULTIPLIER_LIMIT VRDE_VIDEOIN_CTRLSEL_PU(0x0F) -+#define VRDE_VIDEOIN_CTRLSEL_PU_HUE_AUTO VRDE_VIDEOIN_CTRLSEL_PU(0x10) -+#define VRDE_VIDEOIN_CTRLSEL_PU_ANALOG_VIDEO_STANDARD VRDE_VIDEOIN_CTRLSEL_PU(0x11) -+#define VRDE_VIDEOIN_CTRLSEL_PU_ANALOG_LOCK_STATUS VRDE_VIDEOIN_CTRLSEL_PU(0x12) -+ -+#define VRDE_VIDEOIN_CTRLSEL_VS_UNDEFINED VRDE_VIDEOIN_CTRLSEL_VS(0x00) -+#define VRDE_VIDEOIN_CTRLSEL_VS_START VRDE_VIDEOIN_CTRLSEL_VS(0x01) -+#define VRDE_VIDEOIN_CTRLSEL_VS_STOP VRDE_VIDEOIN_CTRLSEL_VS(0x02) -+#define VRDE_VIDEOIN_CTRLSEL_VS_STILL_IMAGE_TRIGGER VRDE_VIDEOIN_CTRLSEL_VS(0x05) -+#define VRDE_VIDEOIN_CTRLSEL_VS_STREAM_ERROR_CODE VRDE_VIDEOIN_CTRLSEL_VS(0x06) -+#define VRDE_VIDEOIN_CTRLSEL_VS_GENERATE_KEY_FRAME VRDE_VIDEOIN_CTRLSEL_VS(0x07) -+#define VRDE_VIDEOIN_CTRLSEL_VS_UPDATE_FRAME_SEGMENT VRDE_VIDEOIN_CTRLSEL_VS(0x08) -+#define VRDE_VIDEOIN_CTRLSEL_VS_SYNCH_DELAY VRDE_VIDEOIN_CTRLSEL_VS(0x09) -+ -+#define VRDE_VIDEOIN_CTRLSEL_HW_BUTTON VRDE_VIDEOIN_CTRLSEL_HW(0x01) -+ -+typedef struct VRDEVIDEOINCTRL_VIDEO_POWER_MODE -+{ -+ VRDEVIDEOINCTRLHDR hdr; -+ uint8_t u8DevicePowerMode; -+} VRDEVIDEOINCTRL_VIDEO_POWER_MODE; -+ -+typedef struct VRDEVIDEOINCTRL_CT_SCANNING_MODE -+{ -+ VRDEVIDEOINCTRLHDR hdr; -+ uint8_t u8ScanningMode; -+} VRDEVIDEOINCTRL_CT_SCANNING_MODE; -+ -+typedef struct VRDEVIDEOINCTRL_CT_AE_MODE -+{ -+ VRDEVIDEOINCTRLHDR hdr; -+ uint8_t u8AutoExposureMode; -+} VRDEVIDEOINCTRL_CT_AE_MODE; -+ -+typedef struct VRDEVIDEOINCTRL_CT_AE_PRIORITY -+{ -+ VRDEVIDEOINCTRLHDR hdr; -+ uint8_t u8AutoExposurePriority; -+} VRDEVIDEOINCTRL_CT_AE_PRIORITY; -+ -+typedef struct VRDEVIDEOINCTRL_CT_EXPOSURE_TIME_ABSOLUTE -+{ -+ VRDEVIDEOINCTRLHDR hdr; -+ uint32_t u32ExposureTimeAbsolute; -+} VRDEVIDEOINCTRL_CT_EXPOSURE_TIME_ABSOLUTE; -+ -+typedef struct VRDEVIDEOINCTRL_CT_EXPOSURE_TIME_RELATIVE -+{ -+ VRDEVIDEOINCTRLHDR hdr; -+ uint8_t u8ExposureTimeRelative; -+} VRDEVIDEOINCTRL_CT_EXPOSURE_TIME_RELATIVE; -+ -+typedef struct VRDEVIDEOINCTRL_CT_FOCUS_ABSOLUTE -+{ -+ VRDEVIDEOINCTRLHDR hdr; -+ uint16_t u16FocusAbsolute; -+} VRDEVIDEOINCTRL_CT_FOCUS_ABSOLUTE; -+ -+typedef struct VRDEVIDEOINCTRL_CT_FOCUS_RELATIVE -+{ -+ VRDEVIDEOINCTRLHDR hdr; -+ uint8_t u8FocusRelative; -+ uint8_t u8Speed; -+} VRDEVIDEOINCTRL_CT_FOCUS_RELATIVE; -+ -+typedef struct VRDEVIDEOINCTRL_CT_FOCUS_AUTO -+{ -+ VRDEVIDEOINCTRLHDR hdr; -+ uint8_t u8FocusAuto; -+} VRDEVIDEOINCTRL_CT_FOCUS_AUTO; -+ -+typedef struct VRDEVIDEOINCTRL_CT_IRIS_ABSOLUTE -+{ -+ VRDEVIDEOINCTRLHDR hdr; -+ uint16_t u16IrisAbsolute; -+} VRDEVIDEOINCTRL_CT_IRIS_ABSOLUTE; -+ -+typedef struct VRDEVIDEOINCTRL_CT_IRIS_RELATIVE -+{ -+ VRDEVIDEOINCTRLHDR hdr; -+ uint8_t u8IrisRelative; -+} VRDEVIDEOINCTRL_CT_IRIS_RELATIVE; -+ -+typedef struct VRDEVIDEOINCTRL_CT_ZOOM_ABSOLUTE -+{ -+ VRDEVIDEOINCTRLHDR hdr; -+ uint16_t u16ZoomAbsolute; -+} VRDEVIDEOINCTRL_CT_ZOOM_ABSOLUTE; -+ -+typedef struct VRDEVIDEOINCTRL_CT_ZOOM_RELATIVE -+{ -+ VRDEVIDEOINCTRLHDR hdr; -+ uint8_t u8Zoom; -+ uint8_t u8DigitalZoom; -+ uint8_t u8Speed; -+} VRDEVIDEOINCTRL_CT_ZOOM_RELATIVE; -+ -+typedef struct VRDEVIDEOINCTRL_CT_PANTILT_ABSOLUTE -+{ -+ VRDEVIDEOINCTRLHDR hdr; -+ uint32_t u32PanAbsolute; -+ uint32_t u32TiltAbsolute; -+} VRDEVIDEOINCTRL_CT_PANTILT_ABSOLUTE; -+ -+typedef struct VRDEVIDEOINCTRL_CT_PANTILT_RELATIVE -+{ -+ VRDEVIDEOINCTRLHDR hdr; -+ uint8_t u8PanRelative; -+ uint8_t u8PanSpeed; -+ uint8_t u8TiltRelative; -+ uint8_t u8TiltSpeed; -+} VRDEVIDEOINCTRL_CT_PANTILT_RELATIVE; -+ -+typedef struct VRDEVIDEOINCTRL_CT_ROLL_ABSOLUTE -+{ -+ VRDEVIDEOINCTRLHDR hdr; -+ uint16_t u16RollAbsolute; -+} VRDEVIDEOINCTRL_CT_ROLL_ABSOLUTE; -+ -+typedef struct VRDEVIDEOINCTRL_CT_ROLL_RELATIVE -+{ -+ VRDEVIDEOINCTRLHDR hdr; -+ uint8_t u8RollRelative; -+ uint8_t u8Speed; -+} VRDEVIDEOINCTRL_CT_ROLL_RELATIVE; -+ -+typedef struct VRDEVIDEOINCTRL_CT_PRIVACY_MODE -+{ -+ VRDEVIDEOINCTRLHDR hdr; -+ uint8_t u8Privacy; -+} VRDEVIDEOINCTRL_CT_PRIVACY_MODE; -+ -+typedef struct VRDEVIDEOINCTRL_PU_BACKLIGHT_COMPENSATION -+{ -+ VRDEVIDEOINCTRLHDR hdr; -+ uint16_t u16BacklightCompensation; -+} VRDEVIDEOINCTRL_PU_BACKLIGHT_COMPENSATION; -+ -+typedef struct VRDEVIDEOINCTRL_PU_BRIGHTNESS -+{ -+ VRDEVIDEOINCTRLHDR hdr; -+ uint16_t u16Brightness; -+} VRDEVIDEOINCTRL_PU_BRIGHTNESS; -+ -+typedef struct VRDEVIDEOINCTRL_PU_CONTRAST -+{ -+ VRDEVIDEOINCTRLHDR hdr; -+ uint16_t u16Contrast; -+} VRDEVIDEOINCTRL_PU_CONTRAST; -+ -+typedef struct VRDEVIDEOINCTRL_PU_GAIN -+{ -+ VRDEVIDEOINCTRLHDR hdr; -+ uint16_t u16Gain; -+} VRDEVIDEOINCTRL_PU_GAIN; -+ -+typedef struct VRDEVIDEOINCTRL_PU_POWER_LINE_FREQUENCY -+{ -+ VRDEVIDEOINCTRLHDR hdr; -+ uint16_t u16PowerLineFrequency; -+} VRDEVIDEOINCTRL_PU_POWER_LINE_FREQUENCY; -+ -+typedef struct VRDEVIDEOINCTRL_PU_HUE -+{ -+ VRDEVIDEOINCTRLHDR hdr; -+ uint16_t u16Hue; -+} VRDEVIDEOINCTRL_PU_HUE; -+ -+typedef struct VRDEVIDEOINCTRL_PU_HUE_AUTO -+{ -+ VRDEVIDEOINCTRLHDR hdr; -+ uint8_t u8HueAuto; -+} VRDEVIDEOINCTRL_PU_HUE_AUTO; -+ -+typedef struct VRDEVIDEOINCTRL_PU_SATURATION -+{ -+ VRDEVIDEOINCTRLHDR hdr; -+ uint16_t u16Saturation; -+} VRDEVIDEOINCTRL_PU_SATURATION; -+ -+typedef struct VRDEVIDEOINCTRL_PU_SHARPNESS -+{ -+ VRDEVIDEOINCTRLHDR hdr; -+ uint16_t u16Sharpness; -+} VRDEVIDEOINCTRL_PU_SHARPNESS; -+ -+typedef struct VRDEVIDEOINCTRL_PU_GAMMA -+{ -+ VRDEVIDEOINCTRLHDR hdr; -+ uint16_t u16Gamma; -+} VRDEVIDEOINCTRL_PU_GAMMA; -+ -+typedef struct VRDEVIDEOINCTRL_PU_WHITE_BALANCE_TEMPERATURE -+{ -+ VRDEVIDEOINCTRLHDR hdr; -+ uint16_t u16WhiteBalanceTemperature; -+} VRDEVIDEOINCTRL_PU_WHITE_BALANCE_TEMPERATURE; -+ -+typedef struct VRDEVIDEOINCTRL_PU_WHITE_BALANCE_TEMPERATURE_AUTO -+{ -+ VRDEVIDEOINCTRLHDR hdr; -+ uint8_t u8WhiteBalanceTemperatureAuto; -+} VRDEVIDEOINCTRL_PU_WHITE_BALANCE_TEMPERATURE_AUTO; -+ -+typedef struct VRDEVIDEOINCTRL_PU_WHITE_BALANCE_COMPONENT -+{ -+ VRDEVIDEOINCTRLHDR hdr; -+ uint16_t u16WhiteBalanceBlue; -+ uint16_t u16WhiteBalanceRed; -+} VRDEVIDEOINCTRL_PU_WHITE_BALANCE_COMPONENT; -+ -+typedef struct VRDEVIDEOINCTRL_PU_WHITE_BALANCE_COMPONENT_AUTO -+{ -+ VRDEVIDEOINCTRLHDR hdr; -+ uint8_t u8WhiteBalanceComponentAuto; -+} VRDEVIDEOINCTRL_PU_WHITE_BALANCE_COMPONENT_AUTO; -+ -+typedef struct VRDEVIDEOINCTRL_PU_DIGITAL_MULTIPLIER -+{ -+ VRDEVIDEOINCTRLHDR hdr; -+ uint16_t u16MultiplierStep; -+} VRDEVIDEOINCTRL_PU_DIGITAL_MULTIPLIER; -+ -+typedef struct VRDEVIDEOINCTRL_PU_DIGITAL_MULTIPLIER_LIMIT -+{ -+ VRDEVIDEOINCTRLHDR hdr; -+ uint16_t u16MultiplierLimit; -+} VRDEVIDEOINCTRL_PU_DIGITAL_MULTIPLIER_LIMIT; -+ -+typedef struct VRDEVIDEOINCTRL_PU_ANALOG_VIDEO_STANDARD -+{ -+ VRDEVIDEOINCTRLHDR hdr; -+ uint8_t u8VideoStandard; -+} VRDEVIDEOINCTRL_PU_ANALOG_VIDEO_STANDARD; -+ -+typedef struct VRDEVIDEOINCTRL_PU_ANALOG_LOCK_STATUS -+{ -+ VRDEVIDEOINCTRLHDR hdr; -+ uint8_t u8Status; -+} VRDEVIDEOINCTRL_PU_ANALOG_LOCK_STATUS; -+ -+/* Start sending video frames with this format. */ -+#define VRDEVIDEOINCTRL_F_VS_START_FID 0x01 -+#define VRDEVIDEOINCTRL_F_VS_START_EOF 0x02 -+ -+typedef struct VRDEVIDEOINCTRL_VS_START -+{ -+ VRDEVIDEOINCTRLHDR hdr; -+ uint8_t u8FormatId; /* The format id on the client: VRDEVIDEOINFORMATDESC::u8FormatId. */ -+ uint8_t u8FramingInfo; /* VRDEVIDEOINCTRL_F_VS_START_*. Set by the client. */ -+ uint16_t u16Width; -+ uint16_t u16Height; -+ uint32_t u32FrameInterval; /* Frame interval in 100 ns units, 0 means a still image capture. -+ * The client may choose a different interval if this value is -+ * not supported. -+ */ -+ uint16_t u16CompQuality; /* 0 .. 10000 = 0 .. 100%. -+ * Applicable if the format has VRDE_VIDEOIN_F_FMT_COMPQUALITY, -+ * otherwise this field is ignored. -+ */ -+ uint16_t u16Delay; /* Latency in ms from video data capture to presentation on the channel. -+ * Set by the client, read by the server. -+ */ -+ uint32_t u32ClockFrequency; /* @todo just all clocks in 100ns units? */ -+} VRDEVIDEOINCTRL_VS_START; -+ -+/* Stop sending video frames. */ -+typedef struct VRDEVIDEOINCTRL_VS_STOP -+{ -+ VRDEVIDEOINCTRLHDR hdr; -+} VRDEVIDEOINCTRL_VS_STOP; -+ -+typedef struct VRDEVIDEOINCTRL_VS_SYNCH_DELAY -+{ -+ VRDEVIDEOINCTRLHDR hdr; -+ uint16_t u16Delay; -+} VRDEVIDEOINCTRL_VS_SYNCH_DELAY; -+ -+typedef struct VRDEVIDEOINCTRL_VS_STILL_IMAGE_TRIGGER -+{ -+ VRDEVIDEOINCTRLHDR hdr; -+ uint8_t u8Trigger; -+} VRDEVIDEOINCTRL_VS_STILL_IMAGE_TRIGGER; -+ -+typedef struct VRDEVIDEOINCTRL_VS_GENERATE_KEY_FRAME -+{ -+ VRDEVIDEOINCTRLHDR hdr; -+ uint8_t u8GenerateKeyFrame; -+} VRDEVIDEOINCTRL_VS_GENERATE_KEY_FRAME; -+ -+typedef struct VRDEVIDEOINCTRL_VS_UPDATE_FRAME_SEGMENT -+{ -+ VRDEVIDEOINCTRLHDR hdr; -+ uint8_t u8StartFrameSegment; -+ uint8_t u8EndFrameSegment; -+} VRDEVIDEOINCTRL_VS_UPDATE_FRAME_SEGMENT; -+ -+typedef struct VRDEVIDEOINCTRL_VS_STREAM_ERROR_CODE -+{ -+ VRDEVIDEOINCTRLHDR hdr; -+ uint8_t u8StreamErrorCode; -+} VRDEVIDEOINCTRL_VS_STREAM_ERROR_CODE; -+ -+/* A hardware button was pressed/released on the device. */ -+typedef struct VRDEVIDEOINCTRL_HW_BUTTON -+{ -+ VRDEVIDEOINCTRLHDR hdr; -+ uint8_t u8Pressed; -+} VRDEVIDEOINCTRL_CT_HW_BUTTON; -+ -+/* -+ * Payload transfers. How frames are sent to the server: -+ * the client send a PAYLOAD packet, which has the already set format. -+ * The server enables the transfers by sending VRDEVIDEOINCTRL_VS_START. -+ */ -+ -+/* Payload header */ -+typedef struct VRDEVIDEOINPAYLOADHDR -+{ -+ uint8_t u8HeaderLength; /* Entire header. */ -+ uint8_t u8HeaderInfo; /* VRDE_VIDEOIN_PAYLOAD_F_* */ -+ uint32_t u32PresentationTime; /* @todo define this */ -+ uint32_t u32SourceTimeClock; /* @todo At the moment when the frame was sent to the channel. -+ * Allows the server to measure clock drift. -+ */ -+ uint16_t u16Reserved; /* @todo */ -+} VRDEVIDEOINPAYLOADHDR; -+ -+/* VRDEVIDEOINPAYLOADHDR::u8HeaderInfo */ -+#define VRDE_VIDEOIN_PAYLOAD_F_FID 0x01 /* Frame ID */ -+#define VRDE_VIDEOIN_PAYLOAD_F_EOF 0x02 /* End of Frame */ -+#define VRDE_VIDEOIN_PAYLOAD_F_PTS 0x04 /* Presentation Time */ -+#define VRDE_VIDEOIN_PAYLOAD_F_SCR 0x08 /* Source Clock Reference */ -+#define VRDE_VIDEOIN_PAYLOAD_F_RES 0x10 /* Reserved */ -+#define VRDE_VIDEOIN_PAYLOAD_F_STI 0x20 /* Still Image */ -+#define VRDE_VIDEOIN_PAYLOAD_F_ERR 0x40 /* Error */ -+#define VRDE_VIDEOIN_PAYLOAD_F_EOH 0x80 /* End of header */ -+ -+ -+/* -+ * The network channel specification. -+ */ -+ -+/* -+ * The protocol uses a dynamic RDP channel. -+ * Everything is little-endian. -+ */ -+ -+#define VRDE_VIDEOIN_CHANNEL "RVIDEOIN" -+ -+/* Major functions. */ -+#define VRDE_VIDEOIN_FN_NEGOTIATE 0x0000 /* Version and capabilities check. */ -+#define VRDE_VIDEOIN_FN_NOTIFY 0x0001 /* Device attach/detach from the client. */ -+#define VRDE_VIDEOIN_FN_DEVICEDESC 0x0002 /* Query device description. */ -+#define VRDE_VIDEOIN_FN_CONTROL 0x0003 /* Control the device and start/stop video input. */ -+#define VRDE_VIDEOIN_FN_CONTROL_NOTIFY 0x0004 /* The client reports a control change, etc. */ -+#define VRDE_VIDEOIN_FN_FRAME 0x0005 /* Frame from the client. */ -+ -+/* Status codes. */ -+#define VRDE_VIDEOIN_STATUS_SUCCESS 0 /* Function completed successfully. */ -+#define VRDE_VIDEOIN_STATUS_FAILED 1 /* Failed for some reason. */ -+ -+typedef struct VRDEVIDEOINMSGHDR -+{ -+ uint32_t u32Length; /* The length of the message in bytes, including the header. */ -+ uint32_t u32DeviceId; /* The client's device id. */ -+ uint32_t u32MessageId; /* Unique id assigned by the server. The client must send a reply with the same id. -+ * If the client initiates a request, then this must be set to 0, because there is -+ * currently no client requests, which would require a response from the server. -+ */ -+ uint16_t u16FunctionId; /* VRDE_VIDEOIN_FN_* */ -+ uint16_t u16Status; /* The result of a request. VRDE_VIDEOIN_STATUS_*. */ -+} VRDEVIDEOINMSGHDR; -+ASSERTSIZE(VRDEVIDEOINMSGHDR, 16) -+ -+/* -+ * VRDE_VIDEOIN_FN_NEGOTIATE -+ * -+ * Sent by the server when the channel is established and the client replies with its capabilities. -+ */ -+#define VRDE_VIDEOIN_NEGOTIATE_VERSION 1 -+ -+#define VRDE_VIDEOIN_NEGOTIATE_CAP_VOID 0 -+ -+typedef struct VRDEVIDEOINMSG_NEGOTIATE -+{ -+ VRDEVIDEOINMSGHDR hdr; -+ uint32_t u32Version; /* VRDE_VIDEOIN_NEGOTIATE_VERSION */ -+ uint32_t fu32Capabilities; /* VRDE_VIDEOIN_NEGOTIATE_CAP_* */ -+} VRDEVIDEOINMSG_NEGOTIATE; -+ -+/* -+ * VRDE_VIDEOIN_FN_NOTIFY -+ * -+ * Sent by the client when a webcam is attached or detached. -+ * The client must send the ATTACH notification for each webcam, which is -+ * already connected to the client when the VIDEOIN channel is established. -+ */ -+#define VRDE_VIDEOIN_NOTIFY_ATTACH 0 -+#define VRDE_VIDEOIN_NOTIFY_DETACH 1 -+ -+typedef struct VRDEVIDEOINMSG_NOTIFY -+{ -+ VRDEVIDEOINMSGHDR hdr; -+ uint32_t u32NotifyEvent; /* VRDE_VIDEOIN_NOTIFY_* */ -+ /* Event specific data may follow. The underlying protocol provides the length of the message. */ -+} VRDEVIDEOINMSG_NOTIFY; -+ -+/* -+ * VRDE_VIDEOIN_FN_DEVICEDESC -+ * -+ * The server queries the description of a device. -+ */ -+typedef struct VRDEVIDEOINMSG_DEVICEDESC_REQ -+{ -+ VRDEVIDEOINMSGHDR hdr; -+} VRDEVIDEOINMSG_DEVICEDESC_REQ; -+ -+typedef struct VRDEVIDEOINMSG_DEVICEDESC_RSP -+{ -+ VRDEVIDEOINMSGHDR hdr; -+ VRDEVIDEOINDEVICEDESC Device; -+ /* -+ * VRDEVIDEOINFORMATDESC[0] -+ * VRDEVIDEOINFRAMEDESC[0] -+ * ... -+ * VRDEVIDEOINFRAMEDESC[n] -+ * VRDEVIDEOINFORMATDESC[1] -+ * VRDEVIDEOINFRAMEDESC[0] -+ * ... -+ * VRDEVIDEOINFRAMEDESC[m] -+ * ... -+ */ -+} VRDEVIDEOINMSG_DEVICEDESC_RSP; -+ -+/* -+ * VRDE_VIDEOIN_FN_CONTROL -+ * VRDE_VIDEOIN_FN_CONTROL_NOTIFY -+ * -+ * Either sent by the server or by the client as a notification/response. -+ * If sent by the client as a notification, then hdr.u32MessageId must be 0. -+ */ -+typedef struct VRDEVIDEOINMSG_CONTROL -+{ -+ VRDEVIDEOINMSGHDR hdr; -+ VRDEVIDEOINCTRLHDR Control; -+ /* Control specific data may follow. */ -+} VRDEVIDEOINMSG_CONTROL; -+ -+/* -+ * VRDE_VIDEOIN_FN_FRAME -+ * -+ * The client sends a video/still frame in the already specified format. -+ * hdr.u32MessageId must be 0. -+ */ -+typedef struct VRDEVIDEOINMSG_FRAME -+{ -+ VRDEVIDEOINMSGHDR hdr; -+ VRDEVIDEOINPAYLOADHDR Payload; -+ /* The frame data follow. */ -+} VRDEVIDEOINMSG_FRAME; -+ -+ -+#ifdef VRDE_VIDEOIN_WITH_VRDEINTERFACE -+/* -+ * The application interface between VirtualBox and the VRDE server. -+ */ -+ -+#define VRDE_VIDEOIN_INTERFACE_NAME "VIDEOIN" -+ -+typedef struct VRDEVIDEOINDEVICEHANDLE -+{ -+ uint32_t u32ClientId; -+ uint32_t u32DeviceId; -+} VRDEVIDEOINDEVICEHANDLE; -+ -+/* The VRDE server video input interface entry points. Interface version 1. */ -+typedef struct VRDEVIDEOININTERFACE -+{ -+ /* The header. */ -+ VRDEINTERFACEHDR header; -+ -+ /* Tell the server that this device will be used and associate a context with the device. -+ * -+ * @param hServer The VRDE server instance. -+ * @param pDeviceHandle The device reported by ATTACH notification. -+ * @param pvDeviceCtx The caller context associated with the pDeviceHandle. -+ * -+ * @return IPRT status code. -+ */ -+ DECLR3CALLBACKMEMBER(int, VRDEVideoInDeviceAttach, (HVRDESERVER hServer, -+ const VRDEVIDEOINDEVICEHANDLE *pDeviceHandle, -+ void *pvDeviceCtx)); -+ -+ /* This device will be not be used anymore. The device context must not be used by the server too. -+ * -+ * @param hServer The VRDE server instance. -+ * @param pDeviceHandle The device reported by ATTACH notification. -+ * -+ * @return IPRT status code. -+ */ -+ DECLR3CALLBACKMEMBER(int, VRDEVideoInDeviceDetach, (HVRDESERVER hServer, -+ const VRDEVIDEOINDEVICEHANDLE *pDeviceHandle)); -+ -+ /* Get a device description. -+ * -+ * @param hServer The VRDE server instance. -+ * @param pvUser The callers context of this request. -+ * @param pDeviceHandle The device reported by ATTACH notification. -+ * -+ * @return IPRT status code. -+ */ -+ DECLR3CALLBACKMEMBER(int, VRDEVideoInGetDeviceDesc, (HVRDESERVER hServer, -+ void *pvUser, -+ const VRDEVIDEOINDEVICEHANDLE *pDeviceHandle)); -+ -+ /* Submit a set/get control request. -+ * -+ * @param hServer The VRDE server instance. -+ * @param pvUser The callers context of this request. -+ * @param pDeviceHandle The device reported by ATTACH notification. -+ * @param pReq The request. -+ * @param cbReq Size of the request. -+ * -+ * @return IPRT status code. -+ */ -+ DECLR3CALLBACKMEMBER(int, VRDEVideoInControl, (HVRDESERVER hServer, -+ void *pvUser, -+ const VRDEVIDEOINDEVICEHANDLE *pDeviceHandle, -+ const VRDEVIDEOINCTRLHDR *pReq, -+ uint32_t cbReq)); -+ -+} VRDEVIDEOININTERFACE; -+ -+ -+/* -+ * Notifications. -+ * Data structures: pvData of VRDEVIDEOINCALLBACKS::VRDECallbackVideoInNotify. -+ */ -+typedef struct VRDEVIDEOINNOTIFYATTACH -+{ -+ VRDEVIDEOINDEVICEHANDLE deviceHandle; -+} VRDEVIDEOINNOTIFYATTACH; -+ -+typedef struct VRDEVIDEOINNOTIFYDETACH -+{ -+ VRDEVIDEOINDEVICEHANDLE deviceHandle; -+} VRDEVIDEOINNOTIFYDETACH; -+ -+ -+/* Video input interface callbacks. */ -+typedef struct VRDEVIDEOINCALLBACKS -+{ -+ /** The header. */ -+ VRDEINTERFACEHDR header; -+ -+ /* Notifications. -+ * -+ * @param pvCallback The callbacks context specified in VRDEGetInterface. -+ * @param u32EventId The notification identifier: VRDE_VIDEOIN_NOTIFY_*. -+ * @param pvData The notification specific data. -+ * @param cbData The size of buffer pointed by pvData. -+ */ -+ DECLR3CALLBACKMEMBER(void, VRDECallbackVideoInNotify,(void *pvCallback, -+ uint32_t u32Id, -+ const void *pvData, -+ uint32_t cbData)); -+ -+ /* Device description received from the client. -+ * -+ * @param pvCallback The callbacks context specified in VRDEGetInterface. -+ * @param rcRequest The result code of the request. -+ * @param pDeviceCtx The device context associated with the device in VRDEVideoInGetDeviceDesc. -+ * @param pvUser The pvUser parameter of VRDEVideoInGetDeviceDesc. -+ * @param pDeviceDesc The device description. -+ * @param cbDeviceDesc The size of buffer pointed by pDevice. -+ */ -+ DECLR3CALLBACKMEMBER(void, VRDECallbackVideoInDeviceDesc,(void *pvCallback, -+ int rcRequest, -+ void *pDeviceCtx, -+ void *pvUser, -+ const VRDEVIDEOINDEVICEDESC *pDeviceDesc, -+ uint32_t cbDeviceDesc)); -+ -+ /* Control response or notification. -+ * -+ * @param pvCallback The callbacks context specified in VRDEGetInterface. -+ * @param rcRequest The result code of the request. -+ * @param pDeviceCtx The device context associated with the device in VRDEVideoInGetDeviceDesc. -+ * @param pvUser The pvUser parameter of VRDEVideoInControl. NULL if this is a notification. -+ * @param pControl The control information. -+ * @param cbControl The size of buffer pointed by pControl. -+ */ -+ DECLR3CALLBACKMEMBER(void, VRDECallbackVideoInControl,(void *pvCallback, -+ int rcRequest, -+ void *pDeviceCtx, -+ void *pvUser, -+ const VRDEVIDEOINCTRLHDR *pControl, -+ uint32_t cbControl)); -+ -+ /* Frame which was received from the client. -+ * -+ * @param pvCallback The callbacks context specified in VRDEGetInterface. -+ * @param rcRequest The result code of the request. -+ * @param pDeviceCtx The device context associated with the device in VRDEVideoInGetDeviceDesc. -+ * @param pFrame The frame data. -+ * @param cbFrame The size of buffer pointed by pFrame. -+ */ -+ DECLR3CALLBACKMEMBER(void, VRDECallbackVideoInFrame,(void *pvCallback, -+ int rcRequest, -+ void *pDeviceCtx, -+ const VRDEVIDEOINPAYLOADHDR *pFrame, -+ uint32_t cbFrame)); -+ -+} VRDEVIDEOINCALLBACKS; -+#endif /* VRDE_VIDEOIN_WITH_VRDEINTERFACE */ -+ -+#pragma pack() -+ -+#endif From 097705cd86ade9077673b8d9358f85cab7867137 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Llu=C3=ADs=20Batlle=20i=20Rossell?= Date: Fri, 1 Mar 2013 10:17:29 +0100 Subject: [PATCH 76/89] virtualgl: fixing and updating to 2.3.2 --- pkgs/tools/X11/virtualgl/default.nix | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/pkgs/tools/X11/virtualgl/default.nix b/pkgs/tools/X11/virtualgl/default.nix index 57df08c1e2b..3ae0920b9a7 100644 --- a/pkgs/tools/X11/virtualgl/default.nix +++ b/pkgs/tools/X11/virtualgl/default.nix @@ -2,19 +2,19 @@ , libjpeg_turbo, cmake }: let - libDir = if stdenv.is64bit then "lib64" else "lib"; + version = "2.3.2"; in stdenv.mkDerivation { - name = "virtualgl-2.1.4"; + name = "virtualgl-${version}"; src = fetchurl { - url = mirror://sourceforge/virtualgl/VirtualGL-2.3.tar.gz; - sha256 = "2f00c4eb20b0ae88e957a23fb66882e4ade2faa208abd30aa8c4f61570ecd4b9"; + url = "mirror://sourceforge/virtualgl/VirtualGL-${version}.tar.gz"; + sha256 = "062lrhd8yr13ch4wpgzxdabqs92j4q7fcl3a0c3sdlav4arspqmy"; }; patches = [ ./xshm.patch ./fixturbopath.patch ]; prePatch = '' - sed -i s,LD_PRELOAD=lib,LD_PRELOAD=$out/${libDir}/lib, rr/vglrun + sed -i s,LD_PRELOAD=lib,LD_PRELOAD=$out/lib/lib, server/vglrun ''; cmakeFlags = [ "-DTJPEG_LIBRARY=${libjpeg_turbo}/lib/libturbojpeg.so" ]; From 8f83550939f511bbc618f40ee7cdb3049727adbf Mon Sep 17 00:00:00 2001 From: Peter Simons Date: Fri, 1 Mar 2013 10:13:03 +0100 Subject: [PATCH 77/89] haskell-zlib: add version 0.5.4.1 --- .../development/libraries/haskell/zlib/0.5.4.1.nix | 14 ++++++++++++++ pkgs/top-level/haskell-packages.nix | 7 +++++-- 2 files changed, 19 insertions(+), 2 deletions(-) create mode 100644 pkgs/development/libraries/haskell/zlib/0.5.4.1.nix diff --git a/pkgs/development/libraries/haskell/zlib/0.5.4.1.nix b/pkgs/development/libraries/haskell/zlib/0.5.4.1.nix new file mode 100644 index 00000000000..c1fa7d78d0a --- /dev/null +++ b/pkgs/development/libraries/haskell/zlib/0.5.4.1.nix @@ -0,0 +1,14 @@ +{ cabal, zlib }: + +cabal.mkDerivation (self: { + pname = "zlib"; + version = "0.5.4.1"; + sha256 = "0l550l2qw4gx530h1yjjpdh6rkm59l9l6jbmlm0vx41cqpj6b8yc"; + extraLibraries = [ zlib ]; + meta = { + description = "Compression and decompression in the gzip and zlib formats"; + license = self.stdenv.lib.licenses.bsd3; + platforms = self.ghc.meta.platforms; + maintainers = [ self.stdenv.lib.maintainers.andres ]; + }; +}) diff --git a/pkgs/top-level/haskell-packages.nix b/pkgs/top-level/haskell-packages.nix index b3c07255a32..c360214e2c6 100644 --- a/pkgs/top-level/haskell-packages.nix +++ b/pkgs/top-level/haskell-packages.nix @@ -145,7 +145,7 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y); transformers = self.transformers_0_3_0_0; # 7.6 ok vector = self.vector_0_10_0_1; # 7.6 ok xhtml = self.xhtml_3000_2_1; # 7.6 ok - zlib = self.zlib_0_5_4_0; # 7.6 ok + zlib = self.zlib_0_5_4_1; # 7.6 ok cabalInstall = self.cabalInstall_1_16_0_2; # 7.6 ok alex = self.alex_3_0_4; # 7.6 ok haddock = self.haddock_2_13_1; # 7.6 ok @@ -1962,7 +1962,10 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y); zlib_0_5_4_0 = callPackage ../development/libraries/haskell/zlib/0.5.4.0.nix { inherit (pkgs) zlib; }; - zlib = self.zlib_0_5_4_0; + zlib_0_5_4_1 = callPackage ../development/libraries/haskell/zlib/0.5.4.1.nix { + inherit (pkgs) zlib; + }; + zlib = self.zlib_0_5_4_1; zlibBindings = callPackage ../development/libraries/haskell/zlib-bindings {}; From cb72a728d049583f37f7ee45fa3eddb4fec1c367 Mon Sep 17 00:00:00 2001 From: Peter Simons Date: Fri, 1 Mar 2013 10:41:32 +0100 Subject: [PATCH 78/89] haskell-cmdargs: update to version 0.10.2 --- pkgs/development/libraries/haskell/cmdargs/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/libraries/haskell/cmdargs/default.nix b/pkgs/development/libraries/haskell/cmdargs/default.nix index e6b208b0297..6780d02e674 100644 --- a/pkgs/development/libraries/haskell/cmdargs/default.nix +++ b/pkgs/development/libraries/haskell/cmdargs/default.nix @@ -2,8 +2,8 @@ cabal.mkDerivation (self: { pname = "cmdargs"; - version = "0.10.1"; - sha256 = "0p7fzh65asn1bpzp137vfww97in2mkqfwwsk8hxzsdx32zi1nfz8"; + version = "0.10.2"; + sha256 = "0vn7c569akyabij2bh9myyvnx08w67dwdvx5g5q36b3ixzp0lrg4"; isLibrary = true; isExecutable = true; buildDepends = [ filepath transformers ]; From 7048f8fd3bae410e5567ac104ab3798ff091c9f7 Mon Sep 17 00:00:00 2001 From: Peter Simons Date: Fri, 1 Mar 2013 10:41:32 +0100 Subject: [PATCH 79/89] haskell-conduit: update to version 1.0.1 --- pkgs/development/libraries/haskell/conduit/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/libraries/haskell/conduit/default.nix b/pkgs/development/libraries/haskell/conduit/default.nix index c452815db25..75260bcb1b3 100644 --- a/pkgs/development/libraries/haskell/conduit/default.nix +++ b/pkgs/development/libraries/haskell/conduit/default.nix @@ -4,8 +4,8 @@ cabal.mkDerivation (self: { pname = "conduit"; - version = "1.0.0.2"; - sha256 = "0dl73wjdbprrv6ll94x4ck0b561n43y3a7764s065zbsm8mn8h3z"; + version = "1.0.1"; + sha256 = "1r3d30cap4f7qxi9v2ab5w31w9ay19z848d4l8klf1np9xs27hki"; buildDepends = [ liftedBase monadControl resourcet text transformers transformersBase void From a87e40737e60bd3a526fd8106e8f21a5466578c4 Mon Sep 17 00:00:00 2001 From: Peter Simons Date: Fri, 1 Mar 2013 10:41:32 +0100 Subject: [PATCH 80/89] haskell-ghc-mod: update to version 1.11.5 --- pkgs/development/libraries/haskell/ghc-mod/default.nix | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/pkgs/development/libraries/haskell/ghc-mod/default.nix b/pkgs/development/libraries/haskell/ghc-mod/default.nix index f85b7f8e208..3481d37356d 100644 --- a/pkgs/development/libraries/haskell/ghc-mod/default.nix +++ b/pkgs/development/libraries/haskell/ghc-mod/default.nix @@ -1,17 +1,21 @@ { cabal, Cabal, convertible, emacs, filepath, ghcPaths, ghcSybUtils -, hlint, ioChoice, regexPosix, syb, time, transformers +, hlint, hspec, ioChoice, regexPosix, syb, time, transformers }: cabal.mkDerivation (self: { pname = "ghc-mod"; - version = "1.11.4"; - sha256 = "1bxmpvad415ayzwyijjm0zsck0z8aa1nfjixwb6l80i6lbxi4rfg"; + version = "1.11.5"; + sha256 = "0lcq4ffmv017pdy58p91qn5d4hmcxcqzk8dvnmh7m4m7saslqivp"; isLibrary = false; isExecutable = true; buildDepends = [ Cabal convertible filepath ghcPaths ghcSybUtils hlint ioChoice regexPosix syb time transformers ]; + testDepends = [ + Cabal convertible filepath ghcPaths ghcSybUtils hlint hspec + ioChoice regexPosix syb time transformers + ]; buildTools = [ emacs ]; postInstall = '' cd $out/share/$pname-$version From ec514cf429706b869975f0cee90fe9658fef09fc Mon Sep 17 00:00:00 2001 From: Peter Simons Date: Fri, 1 Mar 2013 10:41:32 +0100 Subject: [PATCH 81/89] haskell-iproute: update to version 1.2.11 --- pkgs/development/libraries/haskell/iproute/default.nix | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/pkgs/development/libraries/haskell/iproute/default.nix b/pkgs/development/libraries/haskell/iproute/default.nix index 4a496a981c6..045bb64035c 100644 --- a/pkgs/development/libraries/haskell/iproute/default.nix +++ b/pkgs/development/libraries/haskell/iproute/default.nix @@ -4,15 +4,12 @@ cabal.mkDerivation (self: { pname = "iproute"; - version = "1.2.10"; - sha256 = "1ni91llvq1mfdsjmw1laqhk964y4vlpyk5s25j8klsfn27mq6c68"; + version = "1.2.11"; + sha256 = "14f96sb41f5m14186900rz84vwv7idjiylp8m5nsm6gganvh4sh4"; buildDepends = [ appar byteorder network ]; testDepends = [ appar byteorder doctest hspec network QuickCheck safe ]; - patchPhase = '' - sed -i -e 's|Safe|safe|' iproute.cabal - ''; meta = { homepage = "http://www.mew.org/~kazu/proj/iproute/"; description = "IP Routing Table"; From 7af6f82d2fd73a568f8b3136ec0adc614cc0a161 Mon Sep 17 00:00:00 2001 From: Peter Simons Date: Fri, 1 Mar 2013 10:41:32 +0100 Subject: [PATCH 82/89] haskell-time-compat: update to version 0.1.0.3 --- pkgs/development/libraries/haskell/time-compat/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/libraries/haskell/time-compat/default.nix b/pkgs/development/libraries/haskell/time-compat/default.nix index e42224ace0d..fa7c3ff4185 100644 --- a/pkgs/development/libraries/haskell/time-compat/default.nix +++ b/pkgs/development/libraries/haskell/time-compat/default.nix @@ -2,8 +2,8 @@ cabal.mkDerivation (self: { pname = "time-compat"; - version = "0.1.0.2"; - sha256 = "0687bxkvqs22p7skqb8n289k9nv7cafg8jyx32sswn2h11m7dihb"; + version = "0.1.0.3"; + sha256 = "0zqgzr8yjn36rn6gflwh5s0c92vl44xzxiw0jz8d5h0h8lhi21sr"; buildDepends = [ time ]; meta = { homepage = "http://hub.darcs.net/dag/time-compat"; From a1c5d6642b978063d991646f6f7fc6b6dd530386 Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Fri, 1 Mar 2013 12:50:29 +0100 Subject: [PATCH 83/89] build-support/release: Simplify meta.description Phrases like "Build of a ..." are redundant because everything is a build. --- pkgs/build-support/release/debian-build.nix | 2 +- pkgs/build-support/release/nix-build.nix | 2 +- pkgs/build-support/release/rpm-build.nix | 6 +++--- pkgs/build-support/release/source-tarball.nix | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/pkgs/build-support/release/debian-build.nix b/pkgs/build-support/release/debian-build.nix index feb15267f59..ba7be86a6c1 100644 --- a/pkgs/build-support/release/debian-build.nix +++ b/pkgs/build-support/release/debian-build.nix @@ -83,7 +83,7 @@ vmTools.runInLinuxImage (stdenv.mkDerivation ( ''; # */ meta = (if args ? meta then args.meta else {}) // { - description = "Build of a Deb package on ${diskImage.fullName} (${diskImage.name})"; + description = "Deb package for ${diskImage.fullName}"; }; } diff --git a/pkgs/build-support/release/nix-build.nix b/pkgs/build-support/release/nix-build.nix index 84dd2986750..5e4f5dd9ee8 100644 --- a/pkgs/build-support/release/nix-build.nix +++ b/pkgs/build-support/release/nix-build.nix @@ -111,7 +111,7 @@ stdenv.mkDerivation ( (stdenv.lib.optional doCoverageAnalysis "coverageReportPhase") ++ ["finalPhase"]; meta = (if args ? meta then args.meta else {}) // { - description = if doCoverageAnalysis then "Coverage analysis" else "Native Nix build on ${stdenv.system}"; + description = if doCoverageAnalysis then "Coverage analysis" else "Nix package for ${stdenv.system}"; }; } diff --git a/pkgs/build-support/release/rpm-build.nix b/pkgs/build-support/release/rpm-build.nix index 708b62302d5..9a1c7eeee62 100644 --- a/pkgs/build-support/release/rpm-build.nix +++ b/pkgs/build-support/release/rpm-build.nix @@ -33,21 +33,21 @@ vmTools.buildRPM ( rpm -Up ''${rpms[*]} --excludepath /nix/store eval "$postRPMInstall" - + echo "uninstalling ''${rpmNames[*]}..." rpm -e ''${rpmNames[*]} --nodeps for i in $out/rpms/*/*.src.rpm; do echo "file srpm $i" >> $out/nix-support/hydra-build-products done - + for rpmdir in $extraRPMs ; do echo "file rpm-extra $(ls $rpmdir/rpms/*/*.rpm | grep -v 'src\.rpm' | sort | head -1)" >> $out/nix-support/hydra-build-products done ''; # */ meta = (if args ? meta then args.meta else {}) // { - description = "Build of an RPM package on ${diskImage.fullName} (${diskImage.name})"; + description = "RPM package for ${diskImage.fullName}"; }; } diff --git a/pkgs/build-support/release/source-tarball.nix b/pkgs/build-support/release/source-tarball.nix index 887bfb3125c..5ba1356a17f 100644 --- a/pkgs/build-support/release/source-tarball.nix +++ b/pkgs/build-support/release/source-tarball.nix @@ -126,7 +126,7 @@ stdenv.mkDerivation ( }; meta = (if args ? meta then args.meta else {}) // { - description = "Build of a source distribution from a checkout"; + description = "Source distribution"; # Tarball builds are generally important, so give them a high # default priority. From 56d197ab0b81019950489bf20f518c2baf387328 Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Fri, 1 Mar 2013 13:52:10 +0100 Subject: [PATCH 84/89] firefox: Update to 19.0.1 And use --with-system-nss again. --- .../networking/browsers/firefox/19.0.nix | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/pkgs/applications/networking/browsers/firefox/19.0.nix b/pkgs/applications/networking/browsers/firefox/19.0.nix index a46143066c1..1881c7d7af6 100644 --- a/pkgs/applications/networking/browsers/firefox/19.0.nix +++ b/pkgs/applications/networking/browsers/firefox/19.0.nix @@ -1,6 +1,6 @@ { stdenv, fetchurl, pkgconfig, gtk, pango, perl, python, zip, libIDL , libjpeg, libpng, zlib, cairo, dbus, dbus_glib, bzip2, xlibs -, freetype, fontconfig, file, alsaLib, nspr, libnotify +, freetype, fontconfig, file, alsaLib, nspr, nss, libnotify , yasm, mesa, sqlite, unzip, makeWrapper, pysqlite , # If you want the resulting program to call itself "Firefox" instead @@ -15,9 +15,9 @@ assert stdenv.gcc ? libc && stdenv.gcc.libc != null; rec { - firefoxVersion = "19.0"; + firefoxVersion = "19.0.1"; - xulVersion = "19.0"; # this attribute is used by other packages + xulVersion = "19.0.1"; # this attribute is used by other packages src = fetchurl { @@ -27,7 +27,7 @@ rec { # Fall back to this url for versions not available at releases.mozilla.org. "ftp://ftp.mozilla.org/pub/mozilla.org/firefox/releases/${firefoxVersion}/source/firefox-${firefoxVersion}.source.tar.bz2" ]; - sha1 = "816d64e8c9432349cd208fd181d210c54f985351"; + sha1 = "6a3a965c165ceda8c5ba038e9fe0136fbd1690ff"; }; commonConfigureFlags = @@ -39,9 +39,9 @@ rec { "--with-system-zlib" "--with-system-bz2" "--with-system-nspr" - # "--with-system-nss" # Too old in nixpkgs + "--with-system-nss" # "--with-system-png" # <-- "--with-system-png won't work because the system's libpng doesn't have APNG support" - # "--enable-system-cairo" # disabled for the moment because our Cairo is too old + # "--enable-system-cairo" # <-- doesn't build "--enable-system-sqlite" "--disable-crashreporter" "--disable-tests" @@ -60,7 +60,7 @@ rec { [ pkgconfig gtk perl zip libIDL libjpeg libpng zlib cairo bzip2 python dbus dbus_glib pango freetype fontconfig xlibs.libXi xlibs.libX11 xlibs.libXrender xlibs.libXft xlibs.libXt file - alsaLib nspr libnotify xlibs.pixman yasm mesa + alsaLib nspr nss libnotify xlibs.pixman yasm mesa xlibs.libXScrnSaver xlibs.scrnsaverproto pysqlite xlibs.libXext xlibs.xextproto sqlite unzip makeWrapper ]; @@ -125,7 +125,7 @@ rec { buildInputs = [ pkgconfig gtk perl zip libIDL libjpeg zlib cairo bzip2 python - dbus dbus_glib pango freetype fontconfig alsaLib nspr libnotify + dbus dbus_glib pango freetype fontconfig alsaLib nspr nss libnotify xlibs.pixman yasm mesa sqlite file unzip pysqlite ]; From 0d6f6e6d37365187b2ad94f3233b9aa656f573b0 Mon Sep 17 00:00:00 2001 From: Jordi Date: Fri, 1 Mar 2013 19:31:00 +0100 Subject: [PATCH 85/89] Wraper with glib_network --- pkgs/applications/misc/surf/default.nix | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/pkgs/applications/misc/surf/default.nix b/pkgs/applications/misc/surf/default.nix index 808a77ef0a0..b03135ea1f4 100644 --- a/pkgs/applications/misc/surf/default.nix +++ b/pkgs/applications/misc/surf/default.nix @@ -1,4 +1,4 @@ -{stdenv, fetchurl, gtk, webkit, pkgconfig, glib, libsoup, patches ? null}: +{stdenv, fetchurl, makeWrapper, gtk, webkit, pkgconfig, glib, glib_networking, libsoup, patches ? null}: stdenv.mkDerivation rec { name = "surf-${version}"; @@ -6,10 +6,10 @@ stdenv.mkDerivation rec { src = fetchurl { url = "http://dl.suckless.org/surf/surf-${version}.tar.gz"; - sha256 = "01b8hq8z2wd7ssym5bypx2b15mrs1lhgkrcgxf700kswxvxcrhgx"; + sha256 = "fdc1ccfaee5c4f008eeb8fe5f9200d3ad71296e8d7af52bdd6a771f111866805"; }; - buildInputs = [ gtk webkit pkgconfig glib libsoup ]; + buildInputs = [ gtk makeWrapper webkit pkgconfig glib libsoup glib_networking ]; # Allow users set their own list of patches inherit patches; @@ -19,6 +19,11 @@ stdenv.mkDerivation rec { # `-lX11' to make sure libX11's store path is in the RPATH NIX_LDFLAGS = "-lX11"; preConfigure = [ ''sed -i "s@PREFIX = /usr/local@PREFIX = $out@g" config.mk'' ]; + installPhase = '' + make PREFIX=/ DESTDIR=$out install + wrapProgram "$out/bin/surf" --prefix GIO_EXTRA_MODULES : \ + ${glib_networking}/lib/gio/modules + ''; meta = { description = "surf is a simple web browser based on WebKit/GTK+. It is able to display websites and follow links. It supports the XEmbed protocol which makes it possible to embed it in another application. Furthermore, one can point surf to another URI by setting its XProperties."; From cf8d64b4587756173fbb5b7da6986d49da7dd83a Mon Sep 17 00:00:00 2001 From: Jordi Date: Fri, 1 Mar 2013 19:53:42 +0100 Subject: [PATCH 86/89] New wraper for surf --- pkgs/applications/misc/surf/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/misc/surf/default.nix b/pkgs/applications/misc/surf/default.nix index b03135ea1f4..94133e633dd 100644 --- a/pkgs/applications/misc/surf/default.nix +++ b/pkgs/applications/misc/surf/default.nix @@ -6,10 +6,10 @@ stdenv.mkDerivation rec { src = fetchurl { url = "http://dl.suckless.org/surf/surf-${version}.tar.gz"; - sha256 = "fdc1ccfaee5c4f008eeb8fe5f9200d3ad71296e8d7af52bdd6a771f111866805"; + sha256 = "01b8hq8z2wd7ssym5bypx2b15mrs1lhgkrcgxf700kswxvxcrhgx"; }; - buildInputs = [ gtk makeWrapper webkit pkgconfig glib libsoup glib_networking ]; + buildInputs = [ gtk makeWrapper webkit pkgconfig glib libsoup ]; # Allow users set their own list of patches inherit patches; From 089fd0a76912b554fa83710442645060706417c9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Llu=C3=ADs=20Batlle=20i=20Rossell?= Date: Fri, 1 Mar 2013 20:38:23 +0100 Subject: [PATCH 87/89] fvwm: updating license to gplv2+ I looked at some src, and it mentions "or later". --- pkgs/applications/window-managers/fvwm/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/applications/window-managers/fvwm/default.nix b/pkgs/applications/window-managers/fvwm/default.nix index dd9e11328ef..33acd000270 100644 --- a/pkgs/applications/window-managers/fvwm/default.nix +++ b/pkgs/applications/window-managers/fvwm/default.nix @@ -20,7 +20,7 @@ stdenv.mkDerivation rec { meta = { homepage = "http://fvwm.org"; description = "A multiple large virtual desktop window manager"; - license = "GPLv2"; + license = "GPLv2+"; }; } From 0314b8b00fe1c8c1b09f9494effe6e6f6b739620 Mon Sep 17 00:00:00 2001 From: Florian Friesdorf Date: Sat, 2 Mar 2013 05:40:20 +0100 Subject: [PATCH 88/89] add python docs --- .../interpreters/python/docs/2.6-html.nix | 15 ++++ .../interpreters/python/docs/2.6-pdf-a4.nix | 15 ++++ .../python/docs/2.6-pdf-letter.nix | 15 ++++ .../interpreters/python/docs/2.6-text.nix | 15 ++++ .../interpreters/python/docs/2.7-html.nix | 15 ++++ .../interpreters/python/docs/2.7-pdf-a4.nix | 15 ++++ .../python/docs/2.7-pdf-letter.nix | 15 ++++ .../interpreters/python/docs/2.7-text.nix | 15 ++++ .../interpreters/python/docs/3.0-html.nix | 15 ++++ .../interpreters/python/docs/3.0-pdf-a4.nix | 15 ++++ .../python/docs/3.0-pdf-letter.nix | 15 ++++ .../interpreters/python/docs/3.0-text.nix | 15 ++++ .../interpreters/python/docs/3.1-html.nix | 15 ++++ .../interpreters/python/docs/3.1-pdf-a4.nix | 15 ++++ .../python/docs/3.1-pdf-letter.nix | 15 ++++ .../interpreters/python/docs/3.1-text.nix | 15 ++++ .../interpreters/python/docs/3.2-html.nix | 15 ++++ .../interpreters/python/docs/3.2-pdf-a4.nix | 15 ++++ .../python/docs/3.2-pdf-letter.nix | 15 ++++ .../interpreters/python/docs/3.2-text.nix | 15 ++++ .../interpreters/python/docs/3.3-html.nix | 15 ++++ .../interpreters/python/docs/3.3-pdf-a4.nix | 15 ++++ .../python/docs/3.3-pdf-letter.nix | 15 ++++ .../interpreters/python/docs/3.3-text.nix | 15 ++++ .../interpreters/python/docs/default.nix | 77 +++++++++++++++++++ .../interpreters/python/docs/generate.sh | 53 +++++++++++++ .../interpreters/python/docs/template.nix | 15 ++++ pkgs/top-level/all-packages.nix | 4 + 28 files changed, 509 insertions(+) create mode 100644 pkgs/development/interpreters/python/docs/2.6-html.nix create mode 100644 pkgs/development/interpreters/python/docs/2.6-pdf-a4.nix create mode 100644 pkgs/development/interpreters/python/docs/2.6-pdf-letter.nix create mode 100644 pkgs/development/interpreters/python/docs/2.6-text.nix create mode 100644 pkgs/development/interpreters/python/docs/2.7-html.nix create mode 100644 pkgs/development/interpreters/python/docs/2.7-pdf-a4.nix create mode 100644 pkgs/development/interpreters/python/docs/2.7-pdf-letter.nix create mode 100644 pkgs/development/interpreters/python/docs/2.7-text.nix create mode 100644 pkgs/development/interpreters/python/docs/3.0-html.nix create mode 100644 pkgs/development/interpreters/python/docs/3.0-pdf-a4.nix create mode 100644 pkgs/development/interpreters/python/docs/3.0-pdf-letter.nix create mode 100644 pkgs/development/interpreters/python/docs/3.0-text.nix create mode 100644 pkgs/development/interpreters/python/docs/3.1-html.nix create mode 100644 pkgs/development/interpreters/python/docs/3.1-pdf-a4.nix create mode 100644 pkgs/development/interpreters/python/docs/3.1-pdf-letter.nix create mode 100644 pkgs/development/interpreters/python/docs/3.1-text.nix create mode 100644 pkgs/development/interpreters/python/docs/3.2-html.nix create mode 100644 pkgs/development/interpreters/python/docs/3.2-pdf-a4.nix create mode 100644 pkgs/development/interpreters/python/docs/3.2-pdf-letter.nix create mode 100644 pkgs/development/interpreters/python/docs/3.2-text.nix create mode 100644 pkgs/development/interpreters/python/docs/3.3-html.nix create mode 100644 pkgs/development/interpreters/python/docs/3.3-pdf-a4.nix create mode 100644 pkgs/development/interpreters/python/docs/3.3-pdf-letter.nix create mode 100644 pkgs/development/interpreters/python/docs/3.3-text.nix create mode 100644 pkgs/development/interpreters/python/docs/default.nix create mode 100755 pkgs/development/interpreters/python/docs/generate.sh create mode 100644 pkgs/development/interpreters/python/docs/template.nix diff --git a/pkgs/development/interpreters/python/docs/2.6-html.nix b/pkgs/development/interpreters/python/docs/2.6-html.nix new file mode 100644 index 00000000000..481998ae591 --- /dev/null +++ b/pkgs/development/interpreters/python/docs/2.6-html.nix @@ -0,0 +1,15 @@ +# This file was generated and will be overwritten by ./generate.sh + +{ stdenv, fetchurl }: + +stdenv.mkDerivation { + name = "python26-docs-html-2.6.8"; + src = fetchurl { + url = http://docs.python.org/ftp/python/doc/2.6.8/python-2.6.8-docs-html.tar.bz2; + sha256 = "09kznik9ahmnrqw9gkr7mjv3b3zr258f2fm27n12hrrwwsaszkni"; + }; + installPhase = '' + mkdir -p $out/share/docs + cp -R ./ $out/share/docs/ + ''; +} diff --git a/pkgs/development/interpreters/python/docs/2.6-pdf-a4.nix b/pkgs/development/interpreters/python/docs/2.6-pdf-a4.nix new file mode 100644 index 00000000000..1a718819ac0 --- /dev/null +++ b/pkgs/development/interpreters/python/docs/2.6-pdf-a4.nix @@ -0,0 +1,15 @@ +# This file was generated and will be overwritten by ./generate.sh + +{ stdenv, fetchurl }: + +stdenv.mkDerivation { + name = "python26-docs-pdf-a4-2.6.8"; + src = fetchurl { + url = http://docs.python.org/ftp/python/doc/2.6.8/python-2.6.8-docs-pdf-a4.tar.bz2; + sha256 = "07k8n9zhd59s1yn8ahsizkaqnv969p0f2c2acxgxrxhhyy842pp8"; + }; + installPhase = '' + mkdir -p $out/share/docs + cp -R ./ $out/share/docs/ + ''; +} diff --git a/pkgs/development/interpreters/python/docs/2.6-pdf-letter.nix b/pkgs/development/interpreters/python/docs/2.6-pdf-letter.nix new file mode 100644 index 00000000000..305c456efc4 --- /dev/null +++ b/pkgs/development/interpreters/python/docs/2.6-pdf-letter.nix @@ -0,0 +1,15 @@ +# This file was generated and will be overwritten by ./generate.sh + +{ stdenv, fetchurl }: + +stdenv.mkDerivation { + name = "python26-docs-pdf-letter-2.6.8"; + src = fetchurl { + url = http://docs.python.org/ftp/python/doc/2.6.8/python-2.6.8-docs-pdf-letter.tar.bz2; + sha256 = "01r87m8hb7f9ql4j9zcjcrr9150nsk23sj8cy02vygr83sc1ldmq"; + }; + installPhase = '' + mkdir -p $out/share/docs + cp -R ./ $out/share/docs/ + ''; +} diff --git a/pkgs/development/interpreters/python/docs/2.6-text.nix b/pkgs/development/interpreters/python/docs/2.6-text.nix new file mode 100644 index 00000000000..6ced3597eeb --- /dev/null +++ b/pkgs/development/interpreters/python/docs/2.6-text.nix @@ -0,0 +1,15 @@ +# This file was generated and will be overwritten by ./generate.sh + +{ stdenv, fetchurl }: + +stdenv.mkDerivation { + name = "python26-docs-text-2.6.8"; + src = fetchurl { + url = http://docs.python.org/ftp/python/doc/2.6.8/python-2.6.8-docs-text.tar.bz2; + sha256 = "05wsdh6ilgkclgak09fq7fsx5kflkmqq8dyxi2rpydx289cw3a8c"; + }; + installPhase = '' + mkdir -p $out/share/docs + cp -R ./ $out/share/docs/ + ''; +} diff --git a/pkgs/development/interpreters/python/docs/2.7-html.nix b/pkgs/development/interpreters/python/docs/2.7-html.nix new file mode 100644 index 00000000000..1c8ef0bc460 --- /dev/null +++ b/pkgs/development/interpreters/python/docs/2.7-html.nix @@ -0,0 +1,15 @@ +# This file was generated and will be overwritten by ./generate.sh + +{ stdenv, fetchurl }: + +stdenv.mkDerivation { + name = "python27-docs-html-2.7.3"; + src = fetchurl { + url = http://docs.python.org/ftp/python/doc/2.7.3/python-2.7.3-docs-html.tar.bz2; + sha256 = "1hg92n0mzl9w6j33b2h0bf2vy6fsxnpxfdc3qw760vcm0y00155j"; + }; + installPhase = '' + mkdir -p $out/share/docs + cp -R ./ $out/share/docs/ + ''; +} diff --git a/pkgs/development/interpreters/python/docs/2.7-pdf-a4.nix b/pkgs/development/interpreters/python/docs/2.7-pdf-a4.nix new file mode 100644 index 00000000000..d2d9f3616ce --- /dev/null +++ b/pkgs/development/interpreters/python/docs/2.7-pdf-a4.nix @@ -0,0 +1,15 @@ +# This file was generated and will be overwritten by ./generate.sh + +{ stdenv, fetchurl }: + +stdenv.mkDerivation { + name = "python27-docs-pdf-a4-2.7.3"; + src = fetchurl { + url = http://docs.python.org/ftp/python/doc/2.7.3/python-2.7.3-docs-pdf-a4.tar.bz2; + sha256 = "13da88panq5b6qfhf8k4dgqgxkg4ydcac5cx69a3f35s1w90xdjr"; + }; + installPhase = '' + mkdir -p $out/share/docs + cp -R ./ $out/share/docs/ + ''; +} diff --git a/pkgs/development/interpreters/python/docs/2.7-pdf-letter.nix b/pkgs/development/interpreters/python/docs/2.7-pdf-letter.nix new file mode 100644 index 00000000000..0361d3a2027 --- /dev/null +++ b/pkgs/development/interpreters/python/docs/2.7-pdf-letter.nix @@ -0,0 +1,15 @@ +# This file was generated and will be overwritten by ./generate.sh + +{ stdenv, fetchurl }: + +stdenv.mkDerivation { + name = "python27-docs-pdf-letter-2.7.3"; + src = fetchurl { + url = http://docs.python.org/ftp/python/doc/2.7.3/python-2.7.3-docs-pdf-letter.tar.bz2; + sha256 = "0x41phsdrpivhzkchswsliyx3a10n7gzc9irkrw6rz22j81bfydg"; + }; + installPhase = '' + mkdir -p $out/share/docs + cp -R ./ $out/share/docs/ + ''; +} diff --git a/pkgs/development/interpreters/python/docs/2.7-text.nix b/pkgs/development/interpreters/python/docs/2.7-text.nix new file mode 100644 index 00000000000..4422822cced --- /dev/null +++ b/pkgs/development/interpreters/python/docs/2.7-text.nix @@ -0,0 +1,15 @@ +# This file was generated and will be overwritten by ./generate.sh + +{ stdenv, fetchurl }: + +stdenv.mkDerivation { + name = "python27-docs-text-2.7.3"; + src = fetchurl { + url = http://docs.python.org/ftp/python/doc/2.7.3/python-2.7.3-docs-text.tar.bz2; + sha256 = "1rxlb3jhh3892y65i45nk1y2lx981fr22a5hmfkp9gvjvdykjnzp"; + }; + installPhase = '' + mkdir -p $out/share/docs + cp -R ./ $out/share/docs/ + ''; +} diff --git a/pkgs/development/interpreters/python/docs/3.0-html.nix b/pkgs/development/interpreters/python/docs/3.0-html.nix new file mode 100644 index 00000000000..6abc92b1853 --- /dev/null +++ b/pkgs/development/interpreters/python/docs/3.0-html.nix @@ -0,0 +1,15 @@ +# This file was generated and will be overwritten by ./generate.sh + +{ stdenv, fetchurl }: + +stdenv.mkDerivation { + name = "python30-docs-html-3.0.1"; + src = fetchurl { + url = http://docs.python.org/ftp/python/doc/3.0.1/python-3.0.1-docs-html.tar.bz2; + sha256 = "0ybjnhg8qfr9kc4axm5xlghkz9dmsg6b1caj6m4gz28q89vggv3c"; + }; + installPhase = '' + mkdir -p $out/share/docs + cp -R ./ $out/share/docs/ + ''; +} diff --git a/pkgs/development/interpreters/python/docs/3.0-pdf-a4.nix b/pkgs/development/interpreters/python/docs/3.0-pdf-a4.nix new file mode 100644 index 00000000000..658cfd27ee7 --- /dev/null +++ b/pkgs/development/interpreters/python/docs/3.0-pdf-a4.nix @@ -0,0 +1,15 @@ +# This file was generated and will be overwritten by ./generate.sh + +{ stdenv, fetchurl }: + +stdenv.mkDerivation { + name = "python30-docs-pdf-a4-3.0.1"; + src = fetchurl { + url = http://docs.python.org/ftp/python/doc/3.0.1/python-3.0.1-docs-pdf-a4.tar.bz2; + sha256 = "1qgcydqxxhy317lkzzs2v5as4hcwcblir8y3mdr173qsg51iggra"; + }; + installPhase = '' + mkdir -p $out/share/docs + cp -R ./ $out/share/docs/ + ''; +} diff --git a/pkgs/development/interpreters/python/docs/3.0-pdf-letter.nix b/pkgs/development/interpreters/python/docs/3.0-pdf-letter.nix new file mode 100644 index 00000000000..5a86ea0a701 --- /dev/null +++ b/pkgs/development/interpreters/python/docs/3.0-pdf-letter.nix @@ -0,0 +1,15 @@ +# This file was generated and will be overwritten by ./generate.sh + +{ stdenv, fetchurl }: + +stdenv.mkDerivation { + name = "python30-docs-pdf-letter-3.0.1"; + src = fetchurl { + url = http://docs.python.org/ftp/python/doc/3.0.1/python-3.0.1-docs-pdf-letter.tar.bz2; + sha256 = "1x59q0k6fv55vvpsgr5xcq66k5zsd0f142cp6aa4rb6c81i31yml"; + }; + installPhase = '' + mkdir -p $out/share/docs + cp -R ./ $out/share/docs/ + ''; +} diff --git a/pkgs/development/interpreters/python/docs/3.0-text.nix b/pkgs/development/interpreters/python/docs/3.0-text.nix new file mode 100644 index 00000000000..4031594e768 --- /dev/null +++ b/pkgs/development/interpreters/python/docs/3.0-text.nix @@ -0,0 +1,15 @@ +# This file was generated and will be overwritten by ./generate.sh + +{ stdenv, fetchurl }: + +stdenv.mkDerivation { + name = "python30-docs-text-3.0.1"; + src = fetchurl { + url = http://docs.python.org/ftp/python/doc/3.0.1/python-3.0.1-docs-text.tar.bz2; + sha256 = "12qlh9ywbnw50wk5siq7lmhr935dd16q3vjbii6gfv0g80b1byzx"; + }; + installPhase = '' + mkdir -p $out/share/docs + cp -R ./ $out/share/docs/ + ''; +} diff --git a/pkgs/development/interpreters/python/docs/3.1-html.nix b/pkgs/development/interpreters/python/docs/3.1-html.nix new file mode 100644 index 00000000000..7226cbde3bd --- /dev/null +++ b/pkgs/development/interpreters/python/docs/3.1-html.nix @@ -0,0 +1,15 @@ +# This file was generated and will be overwritten by ./generate.sh + +{ stdenv, fetchurl }: + +stdenv.mkDerivation { + name = "python31-docs-html-3.1.5"; + src = fetchurl { + url = http://docs.python.org/ftp/python/doc/3.1.5/python-3.1.5-docs-html.tar.bz2; + sha256 = "187shb92218k0i07hj9ak1kqbqjcxkivmwxlzj18v791l7x7qcpz"; + }; + installPhase = '' + mkdir -p $out/share/docs + cp -R ./ $out/share/docs/ + ''; +} diff --git a/pkgs/development/interpreters/python/docs/3.1-pdf-a4.nix b/pkgs/development/interpreters/python/docs/3.1-pdf-a4.nix new file mode 100644 index 00000000000..ddde9ccfe2e --- /dev/null +++ b/pkgs/development/interpreters/python/docs/3.1-pdf-a4.nix @@ -0,0 +1,15 @@ +# This file was generated and will be overwritten by ./generate.sh + +{ stdenv, fetchurl }: + +stdenv.mkDerivation { + name = "python31-docs-pdf-a4-3.1.5"; + src = fetchurl { + url = http://docs.python.org/ftp/python/doc/3.1.5/python-3.1.5-docs-pdf-a4.tar.bz2; + sha256 = "0kbj6b43gnwlb1czkzmirasmc31j10plq0rlb9s9rh8phqnbmhx1"; + }; + installPhase = '' + mkdir -p $out/share/docs + cp -R ./ $out/share/docs/ + ''; +} diff --git a/pkgs/development/interpreters/python/docs/3.1-pdf-letter.nix b/pkgs/development/interpreters/python/docs/3.1-pdf-letter.nix new file mode 100644 index 00000000000..929ecbdb92c --- /dev/null +++ b/pkgs/development/interpreters/python/docs/3.1-pdf-letter.nix @@ -0,0 +1,15 @@ +# This file was generated and will be overwritten by ./generate.sh + +{ stdenv, fetchurl }: + +stdenv.mkDerivation { + name = "python31-docs-pdf-letter-3.1.5"; + src = fetchurl { + url = http://docs.python.org/ftp/python/doc/3.1.5/python-3.1.5-docs-pdf-letter.tar.bz2; + sha256 = "0s202vrjfa8dnp3vpfjb21bmqym9wyj8jn2glgwjzk63z6fwb60i"; + }; + installPhase = '' + mkdir -p $out/share/docs + cp -R ./ $out/share/docs/ + ''; +} diff --git a/pkgs/development/interpreters/python/docs/3.1-text.nix b/pkgs/development/interpreters/python/docs/3.1-text.nix new file mode 100644 index 00000000000..76caa5e5232 --- /dev/null +++ b/pkgs/development/interpreters/python/docs/3.1-text.nix @@ -0,0 +1,15 @@ +# This file was generated and will be overwritten by ./generate.sh + +{ stdenv, fetchurl }: + +stdenv.mkDerivation { + name = "python31-docs-text-3.1.5"; + src = fetchurl { + url = http://docs.python.org/ftp/python/doc/3.1.5/python-3.1.5-docs-text.tar.bz2; + sha256 = "1jsfgfgdi1i2l3lhdk7ss5gwrcg3qhhh8syfrwz8xrv2klmmmn9b"; + }; + installPhase = '' + mkdir -p $out/share/docs + cp -R ./ $out/share/docs/ + ''; +} diff --git a/pkgs/development/interpreters/python/docs/3.2-html.nix b/pkgs/development/interpreters/python/docs/3.2-html.nix new file mode 100644 index 00000000000..3df6e1da0f9 --- /dev/null +++ b/pkgs/development/interpreters/python/docs/3.2-html.nix @@ -0,0 +1,15 @@ +# This file was generated and will be overwritten by ./generate.sh + +{ stdenv, fetchurl }: + +stdenv.mkDerivation { + name = "python32-docs-html-3.2.3"; + src = fetchurl { + url = http://docs.python.org/ftp/python/doc/3.2.3/python-3.2.3-docs-html.tar.bz2; + sha256 = "058pryg0gn0rlpswkj1z0xvpr39s3ymx3dwqfhhf83w0mlysdm0x"; + }; + installPhase = '' + mkdir -p $out/share/docs + cp -R ./ $out/share/docs/ + ''; +} diff --git a/pkgs/development/interpreters/python/docs/3.2-pdf-a4.nix b/pkgs/development/interpreters/python/docs/3.2-pdf-a4.nix new file mode 100644 index 00000000000..6d37cc86d95 --- /dev/null +++ b/pkgs/development/interpreters/python/docs/3.2-pdf-a4.nix @@ -0,0 +1,15 @@ +# This file was generated and will be overwritten by ./generate.sh + +{ stdenv, fetchurl }: + +stdenv.mkDerivation { + name = "python32-docs-pdf-a4-3.2.3"; + src = fetchurl { + url = http://docs.python.org/ftp/python/doc/3.2.3/python-3.2.3-docs-pdf-a4.tar.bz2; + sha256 = "1lw1sbk3nx70k2zxgjc36ryvyzlxndzsvhrxyzdy9sjfhasyd807"; + }; + installPhase = '' + mkdir -p $out/share/docs + cp -R ./ $out/share/docs/ + ''; +} diff --git a/pkgs/development/interpreters/python/docs/3.2-pdf-letter.nix b/pkgs/development/interpreters/python/docs/3.2-pdf-letter.nix new file mode 100644 index 00000000000..578e6969748 --- /dev/null +++ b/pkgs/development/interpreters/python/docs/3.2-pdf-letter.nix @@ -0,0 +1,15 @@ +# This file was generated and will be overwritten by ./generate.sh + +{ stdenv, fetchurl }: + +stdenv.mkDerivation { + name = "python32-docs-pdf-letter-3.2.3"; + src = fetchurl { + url = http://docs.python.org/ftp/python/doc/3.2.3/python-3.2.3-docs-pdf-letter.tar.bz2; + sha256 = "199ibzslw3zrwjd49582vc5q6ghp5ig8zalvslawz0xkz1226wg2"; + }; + installPhase = '' + mkdir -p $out/share/docs + cp -R ./ $out/share/docs/ + ''; +} diff --git a/pkgs/development/interpreters/python/docs/3.2-text.nix b/pkgs/development/interpreters/python/docs/3.2-text.nix new file mode 100644 index 00000000000..062732e9cea --- /dev/null +++ b/pkgs/development/interpreters/python/docs/3.2-text.nix @@ -0,0 +1,15 @@ +# This file was generated and will be overwritten by ./generate.sh + +{ stdenv, fetchurl }: + +stdenv.mkDerivation { + name = "python32-docs-text-3.2.3"; + src = fetchurl { + url = http://docs.python.org/ftp/python/doc/3.2.3/python-3.2.3-docs-text.tar.bz2; + sha256 = "1jdc9rj2b4vsbvg5mq6vcdfa2b72avhhvjw7rn7k3kl521cvxs09"; + }; + installPhase = '' + mkdir -p $out/share/docs + cp -R ./ $out/share/docs/ + ''; +} diff --git a/pkgs/development/interpreters/python/docs/3.3-html.nix b/pkgs/development/interpreters/python/docs/3.3-html.nix new file mode 100644 index 00000000000..6530153c51b --- /dev/null +++ b/pkgs/development/interpreters/python/docs/3.3-html.nix @@ -0,0 +1,15 @@ +# This file was generated and will be overwritten by ./generate.sh + +{ stdenv, fetchurl }: + +stdenv.mkDerivation { + name = "python33-docs-html-3.3.0"; + src = fetchurl { + url = http://docs.python.org/ftp/python/doc/3.3.0/python-3.3.0-docs-html.tar.bz2; + sha256 = "0vv24b9qi7gznv687ik0pa2w1rq9grqivy44znvj2ysjfg7mc2c1"; + }; + installPhase = '' + mkdir -p $out/share/docs + cp -R ./ $out/share/docs/ + ''; +} diff --git a/pkgs/development/interpreters/python/docs/3.3-pdf-a4.nix b/pkgs/development/interpreters/python/docs/3.3-pdf-a4.nix new file mode 100644 index 00000000000..037e53e63d6 --- /dev/null +++ b/pkgs/development/interpreters/python/docs/3.3-pdf-a4.nix @@ -0,0 +1,15 @@ +# This file was generated and will be overwritten by ./generate.sh + +{ stdenv, fetchurl }: + +stdenv.mkDerivation { + name = "python33-docs-pdf-a4-3.3.0"; + src = fetchurl { + url = http://docs.python.org/ftp/python/doc/3.3.0/python-3.3.0-docs-pdf-a4.tar.bz2; + sha256 = "1y6n13bxlw8a11khy3ynfbz8z0kpf2lvh32dvy8scyw3hrk6wdxp"; + }; + installPhase = '' + mkdir -p $out/share/docs + cp -R ./ $out/share/docs/ + ''; +} diff --git a/pkgs/development/interpreters/python/docs/3.3-pdf-letter.nix b/pkgs/development/interpreters/python/docs/3.3-pdf-letter.nix new file mode 100644 index 00000000000..e4dd3dc7ebc --- /dev/null +++ b/pkgs/development/interpreters/python/docs/3.3-pdf-letter.nix @@ -0,0 +1,15 @@ +# This file was generated and will be overwritten by ./generate.sh + +{ stdenv, fetchurl }: + +stdenv.mkDerivation { + name = "python33-docs-pdf-letter-3.3.0"; + src = fetchurl { + url = http://docs.python.org/ftp/python/doc/3.3.0/python-3.3.0-docs-pdf-letter.tar.bz2; + sha256 = "0mcj1i47nx81fc9zk1cic4c4p139qjcqlzf4hnnkzvb3jcgy5z6k"; + }; + installPhase = '' + mkdir -p $out/share/docs + cp -R ./ $out/share/docs/ + ''; +} diff --git a/pkgs/development/interpreters/python/docs/3.3-text.nix b/pkgs/development/interpreters/python/docs/3.3-text.nix new file mode 100644 index 00000000000..f3a0c049dd1 --- /dev/null +++ b/pkgs/development/interpreters/python/docs/3.3-text.nix @@ -0,0 +1,15 @@ +# This file was generated and will be overwritten by ./generate.sh + +{ stdenv, fetchurl }: + +stdenv.mkDerivation { + name = "python33-docs-text-3.3.0"; + src = fetchurl { + url = http://docs.python.org/ftp/python/doc/3.3.0/python-3.3.0-docs-text.tar.bz2; + sha256 = "10vk2fixg1aglqmsf89kn98rlirrbhnrk1285vzfbynf2iavxw0n"; + }; + installPhase = '' + mkdir -p $out/share/docs + cp -R ./ $out/share/docs/ + ''; +} diff --git a/pkgs/development/interpreters/python/docs/default.nix b/pkgs/development/interpreters/python/docs/default.nix new file mode 100644 index 00000000000..165e89c4b80 --- /dev/null +++ b/pkgs/development/interpreters/python/docs/default.nix @@ -0,0 +1,77 @@ +{ stdenv, fetchurl }: + +let +pythonDocs = { + python33_html = import ./3.3-html.nix { + inherit stdenv fetchurl; + }; + python33_pdf_a4 = import ./3.3-pdf-a4.nix { + inherit stdenv fetchurl; + }; + python33_pdf_letter = import ./3.3-pdf-letter.nix { + inherit stdenv fetchurl; + }; + python33_text = import ./3.3-text.nix { + inherit stdenv fetchurl; + }; + python32_html = import ./3.2-html.nix { + inherit stdenv fetchurl; + }; + python32_pdf_a4 = import ./3.2-pdf-a4.nix { + inherit stdenv fetchurl; + }; + python32_pdf_letter = import ./3.2-pdf-letter.nix { + inherit stdenv fetchurl; + }; + python32_text = import ./3.2-text.nix { + inherit stdenv fetchurl; + }; + python31_html = import ./3.1-html.nix { + inherit stdenv fetchurl; + }; + python31_pdf_a4 = import ./3.1-pdf-a4.nix { + inherit stdenv fetchurl; + }; + python31_pdf_letter = import ./3.1-pdf-letter.nix { + inherit stdenv fetchurl; + }; + python31_text = import ./3.1-text.nix { + inherit stdenv fetchurl; + }; + python30_html = import ./3.0-html.nix { + inherit stdenv fetchurl; + }; + python30_pdf_a4 = import ./3.0-pdf-a4.nix { + inherit stdenv fetchurl; + }; + python30_pdf_letter = import ./3.0-pdf-letter.nix { + inherit stdenv fetchurl; + }; + python30_text = import ./3.0-text.nix { + inherit stdenv fetchurl; + }; + python27_html = import ./2.7-html.nix { + inherit stdenv fetchurl; + }; + python27_pdf_a4 = import ./2.7-pdf-a4.nix { + inherit stdenv fetchurl; + }; + python27_pdf_letter = import ./2.7-pdf-letter.nix { + inherit stdenv fetchurl; + }; + python27_text = import ./2.7-text.nix { + inherit stdenv fetchurl; + }; + python26_html = import ./2.6-html.nix { + inherit stdenv fetchurl; + }; + python26_pdf_a4 = import ./2.6-pdf-a4.nix { + inherit stdenv fetchurl; + }; + python26_pdf_letter = import ./2.6-pdf-letter.nix { + inherit stdenv fetchurl; + }; + python26_text = import ./2.6-text.nix { + inherit stdenv fetchurl; + }; +}; in pythonDocs diff --git a/pkgs/development/interpreters/python/docs/generate.sh b/pkgs/development/interpreters/python/docs/generate.sh new file mode 100755 index 00000000000..c5e990c3a99 --- /dev/null +++ b/pkgs/development/interpreters/python/docs/generate.sh @@ -0,0 +1,53 @@ +#!/usr/bin/env bash + +TYPES="html pdf-a4 pdf-letter text" +URL=http://docs.python.org/ftp/python/doc/VERSION/python-VERSION-docs-TYPE.tar.bz2 +VERSIONS=$(curl http://www.python.org/download/releases/ 2>/dev/null | grep "releases/[123456789]"| cut -d/ -f4 |grep -v "^[12].[012345]" |grep -v "^1.6.1") +echo "Generating expressions for: +${VERSIONS} +" + + +cat >default.nix < ${outfile} + + attrname=python${major}${minor}_$(echo -n ${type} |sed -e "s,-,_,g") + cat >>default.nix <> default.nix diff --git a/pkgs/development/interpreters/python/docs/template.nix b/pkgs/development/interpreters/python/docs/template.nix new file mode 100644 index 00000000000..621bf9e7cd9 --- /dev/null +++ b/pkgs/development/interpreters/python/docs/template.nix @@ -0,0 +1,15 @@ +# This file was generated and will be overwritten by ./generate.sh + +{ stdenv, fetchurl }: + +stdenv.mkDerivation { + name = "pythonMAJORMINOR-docs-TYPE-VERSION"; + src = fetchurl { + url = URL; + sha256 = "SHA"; + }; + installPhase = '' + mkdir -p $out/share/docs + cp -R ./ $out/share/docs/ + ''; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index a86bd6bbef2..4329203a6ce 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -2891,6 +2891,10 @@ let inherit (python27Packages) recursivePthLoader; }; + pythonDocs = recurseIntoAttrs (import ../development/interpreters/python/docs { + inherit stdenv fetchurl; + }); + pythonLinkmeWrapper = callPackage ../development/interpreters/python/python-linkme-wrapper.nix { }; pyrex = pyrex095; From a920c50cfbe849c9062de81bde050b5672e4e42c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20=C4=8Cun=C3=A1t?= Date: Sat, 2 Mar 2013 10:01:44 +0100 Subject: [PATCH 89/89] linux_2_6_32: disable patch which no longer appies --- 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 4329203a6ce..6bcbf0f7fb6 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -5913,7 +5913,7 @@ let kernelPatches.sec_perm_2_6_24 # kernelPatches.aufs2_2_6_32 kernelPatches.cifs_timeout_2_6_29 - kernelPatches.no_xsave + # kernelPatches.no_xsave # doesn't apply anymore kernelPatches.dell_rfkill ]; };