1
0
Fork 1
mirror of https://github.com/NixOS/nixpkgs.git synced 2024-11-25 07:00:43 +00:00

Merge branch 'staging-next'

A few thousand Darwin jobs are still pending, but there we're depending
on this merge to fix the channel-blocking lz4 failure.
https://hydra.nixos.org/eval/1519778?compare=1519770
This commit is contained in:
Vladimír Čunát 2019-05-17 09:43:32 +02:00
commit fc67de1802
No known key found for this signature in database
GPG key ID: E747DF1F9575A3AA
55 changed files with 770 additions and 1857 deletions

View file

@ -21,32 +21,23 @@ let
availableComponents = cfg.package.availableComponents;
# Given component "parentConfig.platform", returns whether config.parentConfig
# is a list containing a set with set.platform == "platform".
usedPlatforms = config:
if isAttrs config then
optional (config ? platform) config.platform
++ concatMap usedPlatforms (attrValues config)
else if isList config then
concatMap usedPlatforms config
else [ ];
# Given a component "platform", looks up whether it is used in the config
# as `platform = "platform";`.
#
# For example, the component sensor.luftdaten is used as follows:
# For example, the component mqtt.sensor is used as follows:
# config.sensor = [ {
# platform = "luftdaten";
# platform = "mqtt";
# ...
# } ];
#
# Beginning with 0.87 Home Assistant is migrating their components to the
# scheme "platform.subComponent", e.g. "hue.light" instead of "light.hue".
# See https://developers.home-assistant.io/blog/2019/02/19/the-great-migration.html.
# Hence, we also check whether we find an entry in the config when interpreting
# the first part of the path as the component.
useComponentPlatform = component:
let
path = splitString "." component;
# old: platform is the last part of path
parentConfig = attrByPath (init path) null cfg.config;
platform = last path;
# new: platform is the first part of the path
parentConfig' = attrByPath (tail path) null cfg.config;
platform' = head path;
in
(isList parentConfig && any (item: item.platform or null == platform) parentConfig)
|| (isList parentConfig' && any (item: item.platform or null == platform') parentConfig');
useComponentPlatform = component: elem component (usedPlatforms cfg.config);
# Returns whether component is used in config
useComponent = component:

View file

@ -11,8 +11,8 @@ let
sha256 = "0n75jq3xgq46hfmjkaaxz3gic77shs4fzajq40c8gk043i84xbdh";
};
"2" = {
fluidsynthVersion = "2.0.4";
sha256 = "1v2vji02fbrjgypwb4fw2r90hnfwfbfh3d24j8vjwlbqxhxp16s0";
fluidsynthVersion = "2.0.5";
sha256 = "0rv0apxbj0cgm8f8sqf5xr6kdi4q58ph92ip6cg716ha0ca5lr8y";
};
};
in

View file

@ -1,24 +1,24 @@
{ stdenv, fetchurl, pidgin, intltool, libxml2, nss, nspr }:
{ stdenv, fetchurl, pidgin, intltool, libxml2, gmime, nss }:
let version = "1.23.3"; in
stdenv.mkDerivation {
name = "pidgin-sipe-${version}";
stdenv.mkDerivation rec {
pname = "pidgin-sipe";
version = "1.24.0";
src = fetchurl {
url = "mirror://sourceforge/sipe/pidgin-sipe-${version}.tar.gz";
sha256 = "0aaiblnagncb0lhdwb8qbps6hxxmyfjg7sdi15lrkl98i3fahg4n";
url = "mirror://sourceforge/sipe/${pname}-${version}.tar.gz";
sha256 = "04cxprz6dbcsc4n2jg72mr1r9630nhrywn0zim9kwvbgps3wdd9c";
};
meta = with stdenv.lib; {
description = "SIPE plugin for Pidgin IM";
homepage = http://sipe.sourceforge.net/;
license = licenses.gpl2;
platforms = platforms.linux;
};
nativeBuildInputs = [ intltool ];
buildInputs = [ pidgin gmime libxml2 nss ];
enableParallelBuilding = true;
postInstall = "find $out -ls; ln -s \$out/lib/purple-2 \$out/share/pidgin-sipe";
buildInputs = [ pidgin intltool libxml2 nss nspr ];
meta = with stdenv.lib; {
description = "SIPE plugin for Pidgin IM";
homepage = "http://sipe.sourceforge.net/";
license = licenses.gpl2;
platforms = platforms.linux;
};
}

View file

@ -166,10 +166,3 @@ int execv(const char *path, char *const argv[])
char buf[PATH_MAX];
return execv_real(rewrite(path, buf), argv);
}
void *dlopen(const char *filename, int flag)
{
void * (*__dlopen_real) (const char *, int) = dlsym(RTLD_NEXT, "dlopen");
char buf[PATH_MAX];
return __dlopen_real(rewrite(filename, buf), flag);
}

View file

@ -1,11 +1,11 @@
{ stdenv, fetchzip }:
let
version = "20181219";
version = "20190504";
in fetchzip {
name = "iana-etc-${version}";
url = "https://github.com/Mic92/iana-etc/releases/download/${version}/iana-etc-${version}.tar.gz";
sha256 = "0i3f7shvf1g6dp984w8xfix6id3q5c10b292wz2qw3v5n7h6wkm3";
sha256 = "1h61qnb3ybyfivyq8qjnisj4arbnhn8hcwad1bp4iqidjk6rjfv3";
postFetch = ''
tar -xzvf $downloadedFile --strip-components=1

View file

@ -0,0 +1,10 @@
--- a/catalog.xml
+++ b/catalog.xml
@@ -5,4 +5,7 @@
<rewriteSystem systemIdStartString="http://cdn.docbook.org/release/xsl@suffix@/current/" rewritePrefix="./"/>
<rewriteURI uriStartString="http://cdn.docbook.org/release/xsl@suffix@/@version@/" rewritePrefix="./"/>
<rewriteSystem systemIdStartString="http://cdn.docbook.org/release/xsl@suffix@/@version@/" rewritePrefix="./"/>
+ <!-- legacy URIs -->
+ <rewriteURI uriStartString="http://docbook.sourceforge.net/release/xsl@legacySuffix@/current/" rewritePrefix="./"/>
+ <rewriteSystem systemIdStartString="http://docbook.sourceforge.net/release/xsl@legacySuffix@/current/" rewritePrefix="./"/>
</catalog>

View file

@ -1,16 +1,33 @@
{ lib, stdenv, fetchurl, fetchpatch, findXMLCatalogs, writeScriptBin, ruby, bash }:
{ lib, stdenv, substituteAll, fetchurl, fetchpatch, findXMLCatalogs, writeScriptBin, ruby, bash }:
let
common = { pname, sha256, patches ? [] }: let self = stdenv.mkDerivation rec {
name = "${pname}-1.79.1";
common = { pname, sha256, suffix ? "" }: let
legacySuffix = if suffix == "-nons" then "" else "-ns";
self = stdenv.mkDerivation rec {
inherit pname;
version = "1.79.2";
src = fetchurl {
url = "mirror://sourceforge/docbook/${name}.tar.bz2";
url = "https://github.com/docbook/xslt10-stylesheets/releases/download/release%2F${version}/docbook-xsl${suffix}-${version}.tar.bz2";
inherit sha256;
};
inherit patches;
patches = [
# Prevent a potential stack overflow
# https://github.com/docbook/xslt10-stylesheets/pull/37
(fetchpatch {
url = https://src.fedoraproject.org/rpms/docbook-style-xsl/raw/e3ae7a97ed1d185594dd35954e1a02196afb205a/f/docbook-style-xsl-non-recursive-string-subst.patch;
sha256 = "0lrjjg5kpwwmbhkxzz6i5zmimb6lsvrrdhzc2qgjmb3r6jnsmii3";
stripLen = "1";
})
# Add legacy sourceforge.net URIs to the catalog
(substituteAll {
src = ./catalog-legacy-uris.patch;
inherit legacySuffix suffix version;
})
];
propagatedBuildInputs = [ findXMLCatalogs ];
@ -19,12 +36,15 @@ let
installPhase = ''
dst=$out/share/xml/${pname}
mkdir -p $dst
rm -rf RELEASE* README* INSTALL TODO NEWS* BUGS install.sh svn* tools log Makefile tests extensions webhelp
rm -rf RELEASE* README* INSTALL TODO NEWS* BUGS install.sh tools Makefile tests extensions webhelp
mv * $dst/
# Backwards compatibility. Will remove eventually.
mkdir -p $out/xml/xsl
ln -s $dst $out/xml/xsl/docbook
# More backwards compatibility
ln -s $dst $out/share/xml/docbook-xsl${legacySuffix}
'';
passthru.dbtoepub = writeScriptBin "dbtoepub"
@ -39,28 +59,19 @@ let
maintainers = [ lib.maintainers.eelco ];
platforms = lib.platforms.all;
};
}; in self;
};
in self;
in {
docbook_xsl = common {
pname = "docbook-xsl";
sha256 = "0s59lihif2fr7rznckxr2kfyrvkirv76r1zvidp9b5mj28p4apvj";
patches = [(fetchpatch {
name = "potential-infinite-template-recursion.patch";
url = "https://src.fedoraproject.org/cgit/rpms/docbook-style-xsl.git/"
+ "plain/docbook-style-xsl-non-recursive-string-subst.patch?id=bf9e5d16fd";
sha256 = "1pfb468bsj3j879ip0950waih0r1s6rzfbm2p70glbz0g3903p7h";
stripLen = "1";
})];
docbook-xsl-nons = common {
pname = "docbook-xsl-nons";
suffix = "-nons";
sha256 = "00i1hdyxim8jymv2dz68ix3wbs5w6isxm8ijb03qk3vs1g59x2zf";
};
docbook_xsl_ns = common {
docbook-xsl-ns = common {
pname = "docbook-xsl-ns";
sha256 = "170ggf5dgjar65kkn5n33kvjr3pdinpj66nnxfx8b2avw0k91jin";
patches = [ ./docbook-xsl-ns-infinite.patch ];
sha256 = "0wd33z41kdsybyx3ay21w6bdlmgpd9kyn3mr5y520lsf8km28r9i";
};
}

View file

@ -1,30 +0,0 @@
Description: Remove infinite recursion
Attribute: docbook5_xsl
Version: 1.79.1
URL: https://github.com/NixOS/nixpkgs/issues/39090
diff -ru a/lib/lib.xsl b/lib/lib.xsl
--- a/lib/lib.xsl 2015-12-26 15:15:37.000000000 -0800
+++ b/lib/lib.xsl 2018-03-22 11:52:45.311949264 -0700
@@ -11,8 +11,10 @@
******************************************************************** -->
<xsl:stylesheet exclude-result-prefixes="d"
- xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:d="http://docbook.org/ns/docbook"
-version="1.0">
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:d="http://docbook.org/ns/docbook"
+ xmlns:str="http://exslt.org/strings"
+ version="1.0">
<xsl:template name="dot.count">
<!-- Returns the number of "." characters in a string -->
@@ -58,6 +61,9 @@
<xsl:param name="replacement"/>
<xsl:choose>
+ <xsl:when test="function-available('str:replace')">
+ <xsl:value-of select="str:replace($string, string($target), string($replacement))"/>
+ </xsl:when>
<xsl:when test="contains($string, $target)">
<xsl:variable name="rest">
<xsl:call-template name="string.subst">

View file

@ -4,14 +4,12 @@
let
generic = lib.makeOverridable ({
major, minor, sha256,
version, sha256,
extraNativeBuildInputs ? [],
extraBuildInputs ? [],
withGraphviz ? false
}:
let
atLeast = lib.versionAtLeast "${major}.${minor}";
# Patches from the openembedded-core project to build vala without graphviz
# support. We need to apply an additional patch to allow building when the
# header file isn't available at all, but that patch (./gvc-compat.patch)
@ -43,23 +41,23 @@ let
# We've reverted the addition of the "--disable-valadoc" option
# and then applied the following patch.
# 0.42.4: https://github.com/openembedded/openembedded-core/raw/f2b4f9ec6f44dced7f88df849cca68961419eeb8/meta/recipes-devtools/vala/vala/disable-graphviz.patch
"0.44" = ./disable-graphviz-0.44.1.patch;
"0.44" = ./disable-graphviz-0.44.3.patch;
}.${major} or (throw "no graphviz patch for this version of vala");
}.${lib.versions.majorMinor version} or (throw "no graphviz patch for this version of vala");
disableGraphviz = atLeast "0.38" && !withGraphviz;
disableGraphviz = lib.versionAtLeast version "0.38" && !withGraphviz;
in stdenv.mkDerivation rec {
name = "vala-${version}";
version = "${major}.${minor}";
pname = "vala";
inherit version;
setupHook = substituteAll {
src = ./setup-hook.sh;
apiVersion = major;
apiVersion = lib.versions.majorMinor version;
};
src = fetchurl {
url = "mirror://gnome/sources/vala/${major}/${name}.tar.xz";
url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
inherit sha256;
};
@ -78,19 +76,27 @@ let
nativeBuildInputs = [
pkgconfig flex bison libxslt
] ++ lib.optional (stdenv.isDarwin && (atLeast "0.38")) expat
] ++ lib.optional (stdenv.isDarwin && (lib.versionAtLeast version "0.38")) expat
++ lib.optional disableGraphviz autoreconfHook # if we changed our ./configure script, need to reconfigure
++ extraNativeBuildInputs;
buildInputs = [
glib libiconv libintl
] ++ lib.optional (atLeast "0.38" && withGraphviz) graphviz
] ++ lib.optional (lib.versionAtLeast version "0.38" && withGraphviz) graphviz
++ extraBuildInputs;
enableParallelBuilding = true;
doCheck = false; # fails, requires dbus daemon
# Wait for PR #59372
#passthru = {
# updateScript = gnome3.updateScript {
# attrPath = "${pname}_${lib.versions.major version}_${lib.versions.minor version}";
# packageName = pname;
# };
#};
meta = with stdenv.lib; {
description = "Compiler for GObject type system";
homepage = https://wiki.gnome.org/Projects/Vala;
@ -102,34 +108,29 @@ let
in rec {
vala_0_36 = generic {
major = "0.36";
minor = "18";
sha256 = "0csb9skgy663y05kl813dsarzjbfcdsmx5fvz13p8gas3hycciq9";
version = "0.36.19";
sha256 = "05si2f4zjvq0q3wqfh1wxdq20jy1xqxq2skqh8vfh2jyp355lwar";
};
vala_0_38 = generic {
major = "0.38";
minor = "10";
version = "0.38.10";
sha256 = "1rdwwqs973qv225v8b5izcgwvqn56jxgr4pa3wxxbliar3aww5sw";
extraNativeBuildInputs = [ autoconf ] ++ lib.optional stdenv.isDarwin libtool;
};
vala_0_40 = generic {
major = "0.40";
minor = "14";
sha256 = "0llid9b9cgjcrcclc0pw2skkssb7br7b2clq9cql3p14dl94gki0";
version = "0.40.15";
sha256 = "0mfayli159yyw6abjf6sgq41j54mr3nspg25b1kxhypcz0scjm19";
};
vala_0_42 = generic {
major = "0.42";
minor = "6";
sha256 = "14024gvs23q323fmd62hqd8jiypaxbjjvamyd782ixbhxmpz8x1p";
version = "0.42.7";
sha256 = "029ksbsdpl581wzy570kj4kkw8b4bizgh494c051zsvkwck55p83";
};
vala_0_44 = generic {
major = "0.44";
minor = "1";
sha256 = "1qiglkgymws6a3m8xz1v8b3na165ywx2dbipp3bdg134bi0w3a4n";
version = "0.44.3";
sha256 = "1sgas7z6y9r2mf4pxry3fx2awdnzn3vlg2sxd3hqpy2a90ib8lw5";
};
vala = vala_0_44;

View file

@ -23,13 +23,13 @@ index f70234759..b3d6c3833 100644
if ENABLE_UNVERSIONED
aclocaldir = $(datadir)/aclocal
diff --git a/configure.ac b/configure.ac
index 16ebd1f81..cf23db4b8 100644
index 504db13aa..622397747 100644
--- a/configure.ac
+++ b/configure.ac
@@ -156,10 +156,11 @@ PKG_CHECK_MODULES(GMODULE, gmodule-2.0 >= $GLIB_REQUIRED)
AC_SUBST(GMODULE_CFLAGS)
@@ -157,10 +157,11 @@ AC_SUBST(GMODULE_CFLAGS)
AC_SUBST(GMODULE_LIBS)
AC_ARG_WITH(cgraph, AS_HELP_STRING([--with-cgraph], [Required flag for cross-compilation to define capability of graphviz]), [], with_cgraph=check)
-AC_ARG_ENABLE(valadoc, AS_HELP_STRING([--disable-valadoc], [Disable valadoc]), enable_valadoc=$enableval, enable_valadoc=yes)
-if test x$enable_valadoc = xyes; then
+AC_ARG_ENABLE(graphviz, AS_HELP_STRING([--disable-graphviz], [Disable graphviz usage for valadoc]), enable_graphviz=$enableval, enable_graphviz=yes)
@ -40,7 +40,7 @@ index 16ebd1f81..cf23db4b8 100644
cgraph_tmp_LIBADD="$LIBADD"
cgraph_tmp_CFLAGS="$CFLAGS"
LIBADD="$LIBADD $LIBGVC_LIBS"
@@ -186,8 +187,8 @@ if test x$enable_valadoc = xyes; then
@@ -198,8 +199,8 @@ if test x$enable_valadoc = xyes; then
LIBADD="$cgraph_tmp_LIBADD"
CFLAGS="$cgraph_tmp_CFLAGS"
fi

View file

@ -11,14 +11,7 @@ let
opString = lib.optionalString;
patchSet = import ./rvm-patchsets.nix { inherit fetchFromGitHub; };
config = import ./config.nix { inherit fetchFromSavannah; };
rubygemsSrc = import ./rubygems-src.nix { inherit fetchurl; };
rubygemsPatch = fetchpatch {
url = "https://github.com/zimbatm/rubygems/compare/v2.6.6...v2.6.6-nix.patch";
sha256 = "0297rdb1m6v75q8665ry9id1s74p9305dv32l95ssf198liaihhd";
};
unpackdir = obj:
lib.removeSuffix ".tgz"
(lib.removeSuffix ".tar.gz" obj.name);
rubygems = import ./rubygems { inherit stdenv lib fetchurl fetchpatch; };
# Contains the ruby version heuristics
rubyVersion = import ./ruby-version.nix { inherit lib; };
@ -49,8 +42,10 @@ let
, buildEnv, bundler, bundix
, libiconv, libobjc, libunwind, Foundation
}:
let rubySrc =
if useRailsExpress then fetchFromGitHub {
stdenv.mkDerivation rec {
name = "ruby-${version}";
src = if useRailsExpress then fetchFromGitHub {
owner = "ruby";
repo = "ruby";
rev = tag;
@ -59,16 +54,6 @@ let
url = "https://cache.ruby-lang.org/pub/ruby/${ver.majMin}/ruby-${ver}.tar.gz";
sha256 = sha256.src;
};
in
stdenv.mkDerivation rec {
name = "ruby-${version}";
srcs = [ rubySrc rubygemsSrc ];
sourceRoot =
if useRailsExpress then
rubySrc.name
else
unpackdir rubySrc;
# Have `configure' avoid `/usr/bin/nroff' in non-chroot builds.
NROFF = if docSupport then "${groff}/bin/nroff" else null;
@ -100,10 +85,7 @@ let
})."${ver.majMinTiny}";
postUnpack = ''
cp -r ${unpackdir rubygemsSrc} ${sourceRoot}/rubygems
pushd ${sourceRoot}/rubygems
patch -p1 < ${rubygemsPatch}
popd
cp -r ${rubygems} $sourceRoot/rubygems
'';
postPatch = if atLeast25 then ''
@ -146,6 +128,7 @@ let
postInstall = ''
# Update rubygems
pushd rubygems
chmod +w bundler/bundler.gemspec
${buildRuby} setup.rb --destdir $GEM_HOME
popd

View file

@ -1,8 +0,0 @@
{ fetchurl
, version ? "2.7.7"
, sha256 ? "1jsmmd31j8j066b83lin4bbqz19jhrirarzb41f3sjhfdjiwkcjc"
}:
fetchurl {
url = "https://rubygems.org/rubygems/rubygems-${version}.tgz";
sha256 = sha256;
}

View file

@ -0,0 +1,34 @@
From a6485cfcdf51ff8be452980f93cebfea97f34dec Mon Sep 17 00:00:00 2001
From: zimbatm <zimbatm@zimbatm.com>
Date: Wed, 21 Sep 2016 09:32:34 +0100
Subject: [PATCH 1/3] add post-extract hook
Allows nix to execute scripts just after the gem extraction
---
lib/rubygems/installer.rb | 10 +++++++++-
1 file changed, 9 insertions(+), 1 deletion(-)
diff --git a/lib/rubygems/installer.rb b/lib/rubygems/installer.rb
index d26b1e88..bf18fb7f 100644
--- a/lib/rubygems/installer.rb
+++ b/lib/rubygems/installer.rb
@@ -848,7 +848,15 @@ TEXT
# Ensures that files can't be installed outside the gem directory.
def extract_files
- @package.extract_files gem_dir
+ ret = @package.extract_files gem_dir
+ if ENV['NIX_POST_EXTRACT_FILES_HOOK']
+ puts
+ puts "running NIX_POST_EXTRACT_FILES_HOOK #{ENV['NIX_POST_EXTRACT_FILES_HOOK']} #{gem_dir}"
+ system(ENV['NIX_POST_EXTRACT_FILES_HOOK'], gem_dir.to_s)
+ puts "running NIX_POST_EXTRACT_FILES_HOOK done"
+ puts
+ end
+ ret
end
##
--
2.21.0

View file

@ -0,0 +1,28 @@
From 2e1328bcdddd35e557eabdff83ac07f3591dc693 Mon Sep 17 00:00:00 2001
From: zimbatm <zimbatm@zimbatm.com>
Date: Wed, 21 Sep 2016 19:37:05 +0100
Subject: [PATCH 2/3] binaries with env shebang
By default, don't point to the absolute ruby derivation path. As a user
installing a gem in the home, it would freeze the selected ruby version
to the currently-installed ruby derivation.
---
lib/rubygems/dependency_installer.rb | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lib/rubygems/dependency_installer.rb b/lib/rubygems/dependency_installer.rb
index 34620860..00ab31d9 100644
--- a/lib/rubygems/dependency_installer.rb
+++ b/lib/rubygems/dependency_installer.rb
@@ -18,7 +18,7 @@ class Gem::DependencyInstaller
extend Gem::Deprecate
DEFAULT_OPTIONS = { # :nodoc:
- :env_shebang => false,
+ :env_shebang => true,
:document => %w[ri],
:domain => :both, # HACK dup
:force => false,
--
2.21.0

View file

@ -0,0 +1,26 @@
From d69249d0ff210316121b44d971ddd2439b1bc393 Mon Sep 17 00:00:00 2001
From: zimbatm <zimbatm@zimbatm.com>
Date: Wed, 21 Sep 2016 09:40:39 +0100
Subject: [PATCH 3/3] gem install default to user
Default to not installing gems to the read-only system derivation.
---
lib/rubygems/path_support.rb | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lib/rubygems/path_support.rb b/lib/rubygems/path_support.rb
index ed680d65..749b9ea6 100644
--- a/lib/rubygems/path_support.rb
+++ b/lib/rubygems/path_support.rb
@@ -23,7 +23,7 @@ class Gem::PathSupport
# hashtable, or defaults to ENV, the system environment.
#
def initialize(env)
- @home = env["GEM_HOME"] || Gem.default_dir
+ @home = env["GEM_HOME"] || Gem.user_dir
if File::ALT_SEPARATOR
@home = @home.gsub(File::ALT_SEPARATOR, File::SEPARATOR)
--
2.21.0

View file

@ -0,0 +1,30 @@
{ stdenv, lib, fetchurl, fetchpatch }:
stdenv.mkDerivation rec {
name = "rubygems";
version = "3.0.3";
src = fetchurl {
url = "https://rubygems.org/rubygems/rubygems-${version}.tgz";
sha256 = "0b6b9ads8522804xv8b8498gqwsv4qawv13f81kyc7g966y7lfmy";
};
patches = [
./0001-add-post-extract-hook.patch
./0002-binaries-with-env-shebang.patch
./0003-gem-install-default-to-user.patch
];
installPhase = ''
runHook preInstall
cp -r . $out
runHook postInstall
'';
meta = with lib; {
description = "Package management framework for Ruby";
homepage = https://rubygems.org/;
license = with licenses; [ mit /* or */ ruby ];
maintainers = with maintainers; [ qyliss zimbatm ];
};
}

View file

@ -19,11 +19,11 @@
stdenv.mkDerivation rec {
name = "${pname}-${version}";
pname = "at-spi2-core";
version = "2.32.0";
version = "2.32.1";
src = fetchurl {
url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
sha256 = "083j1v7kdjrpjsv1b9dl3d8xqj39jyp4cfn8i9gbbm7q2g93b923";
sha256 = "0lqd7gsl471v6538iighkvb21gjglcb9pklvas32rjpsxcvsjaiw";
};
outputs = [ "out" "dev" ];

View file

@ -2,13 +2,13 @@
stdenv.mkDerivation rec {
name = "c-blosc-${version}";
version = "1.16.2";
version = "1.16.3";
src = fetchFromGitHub {
owner = "Blosc";
repo = "c-blosc";
rev = "v${version}";
sha256 = "19wb699rb5bn6h9qhw1m18m2w77lws7r50vxpgrvggnl27mvm3xc";
sha256 = "1c58wkf34rp5wh9qp09zdk7zcfn037sk56p4xq1g0vapbnglv603";
};
buildInputs = [ cmake ];

View file

@ -1,10 +0,0 @@
{ callPackage, fetchurl, libunistring, ... } @ args:
callPackage ./generic.nix (args // rec {
version = "3.5.10";
src = fetchurl {
url = "mirror://gnupg/gnutls/v3.5/gnutls-${version}.tar.xz";
sha256 = "17apwvdkkazh5w8z8mbanpj2yj8s2002qwy46wz4v3akpa33wi5g";
};
})

View file

@ -1,22 +0,0 @@
{ callPackage, fetchurl, ... } @ args:
callPackage ./generic.nix (args // rec {
version = "3.6.7";
src = fetchurl {
url = "mirror://gnupg/gnutls/v3.6/gnutls-${version}.tar.xz";
sha256 = "1ql8l6l5bxks2pgpwb1602zc0j6ivhpy27hdfc49h8xgbanhjd2v";
};
# Skip some tests:
# - pkgconfig: building against the result won't work before installing (3.5.11)
# - fastopen: no idea; it broke between 3.6.2 and 3.6.3 (3437fdde6 in particular)
# - trust-store: default trust store path (/etc/ssl/...) is missing in sandbox (3.5.11)
# - psk-file: no idea; it broke between 3.6.3 and 3.6.4
# Change p11-kit test to use pkg-config to find p11-kit
postPatch = ''
sed '2iexit 77' -i tests/{pkgconfig,fastopen}.sh
sed '/^void doit(void)/,/^{/ s/{/{ exit(77);/' -i tests/{trust-store,psk-file}.c
sed 's:/usr/lib64/pkcs11/ /usr/lib/pkcs11/ /usr/lib/x86_64-linux-gnu/pkcs11/:`pkg-config --variable=p11_module_path p11-kit-1`:' -i tests/p11-kit-trust.sh
'';
})

View file

@ -1,33 +1,52 @@
{ config, lib, stdenv, zlib, lzo, libtasn1, nettle, pkgconfig, lzip
, perl, gmp, autogen, libidn, p11-kit, libiconv
{ config, lib, stdenv, fetchurl, zlib, lzo, libtasn1, nettle, pkgconfig, lzip
, perl, gmp, autoconf, autogen, automake, libidn, p11-kit, libiconv
, unbound, dns-root-data, gettext
, guileBindings ? config.gnutls.guile or false, guile
, tpmSupport ? false, trousers, which, nettools, libunistring
, unbound, dns-root-data, gettext
# Version dependent args
, version, src, patches ? [], postPatch ? "", nativeBuildInputs ? []
, buildInputs ? []
, ...}:
, withSecurity ? false, Security # darwin Security.framework
}:
assert guileBindings -> guile != null;
let
version = "3.6.7";
# XXX: Gnulib's `test-select' fails on FreeBSD:
# http://hydra.nixos.org/build/2962084/nixlog/1/raw .
doCheck = !stdenv.isFreeBSD && !stdenv.isDarwin && lib.versionAtLeast version "3.4"
&& stdenv.buildPlatform == stdenv.hostPlatform;
inherit (stdenv.hostPlatform) isDarwin;
in
stdenv.mkDerivation {
name = "gnutls-${version}";
inherit version;
inherit src patches;
src = fetchurl {
url = "mirror://gnupg/gnutls/v3.6/gnutls-${version}.tar.xz";
sha256 = "1ql8l6l5bxks2pgpwb1602zc0j6ivhpy27hdfc49h8xgbanhjd2v";
};
outputs = [ "bin" "dev" "out" "man" "devdoc" ];
outputInfo = "devdoc";
patches = [ ./nix-ssl-cert-file.patch ]
# Disable native add_system_trust.
++ lib.optional (isDarwin && !withSecurity) ./no-security-framework.patch;
# Skip some tests:
# - pkgconfig: building against the result won't work before installing (3.5.11)
# - fastopen: no idea; it broke between 3.6.2 and 3.6.3 (3437fdde6 in particular)
# - trust-store: default trust store path (/etc/ssl/...) is missing in sandbox (3.5.11)
# - psk-file: no idea; it broke between 3.6.3 and 3.6.4
# Change p11-kit test to use pkg-config to find p11-kit
postPatch = lib.optionalString (lib.versionAtLeast version "3.4") ''
sed '2iecho "name constraints tests skipped due to datefudge problems"\nexit 0' \
-i tests/cert-tests/name-constraints
'' + postPatch;
sed '2iecho "name constraints tests skipped due to datefudge problems"\nexit 0' -i tests/cert-tests/name-constraints
'' + lib.optionalString (lib.versionAtLeast version "3.6") ''
sed '2iexit 77' -i tests/{pkgconfig,fastopen}.sh
sed '/^void doit(void)/,/^{/ s/{/{ exit(77);/' -i tests/{trust-store,psk-file}.c
sed 's:/usr/lib64/pkcs11/ /usr/lib/pkcs11/ /usr/lib/x86_64-linux-gnu/pkcs11/:`pkg-config --variable=p11_module_path p11-kit-1`:' -i tests/p11-kit-trust.sh
'';
preConfigure = "patchShebangs .";
configureFlags =
@ -42,11 +61,12 @@ stdenv.mkDerivation {
enableParallelBuilding = true;
buildInputs = [ lzo lzip libtasn1 libidn p11-kit zlib gmp autogen libunistring unbound gettext libiconv ]
++ lib.optional (isDarwin && withSecurity) Security
++ lib.optional (tpmSupport && stdenv.isLinux) trousers
++ lib.optional guileBindings guile
++ buildInputs;
++ lib.optional guileBindings guile;
nativeBuildInputs = [ perl pkgconfig ] ++ nativeBuildInputs
nativeBuildInputs = [ perl pkgconfig ]
++ lib.optionals (isDarwin && !withSecurity) [ autoconf automake ]
++ lib.optionals doCheck [ which nettools ];
propagatedBuildInputs = [ nettle ];
@ -54,7 +74,7 @@ stdenv.mkDerivation {
inherit doCheck;
# Fixup broken libtool and pkgconfig files
preFixup = lib.optionalString (!stdenv.isDarwin) ''
preFixup = lib.optionalString (!isDarwin) ''
sed ${lib.optionalString tpmSupport "-e 's,-ltspi,-L${trousers}/lib -ltspi,'"} \
-e 's,-lz,-L${zlib.out}/lib -lz,' \
-e 's,-L${gmp.dev}/lib,-L${gmp.out}/lib,' \

View file

@ -0,0 +1,19 @@
allow overriding system trust store location via $NIX_SSL_CERT_FILE
diff --git a/lib/system/certs.c b/lib/system/certs.c
index 611c645..6ef6edb 100644
--- a/lib/system/certs.c
+++ b/lib/system/certs.c
@@ -369,6 +369,11 @@ gnutls_x509_trust_list_add_system_trust(gnutls_x509_trust_list_t list,
unsigned int tl_flags,
unsigned int tl_vflags)
{
- return add_system_trust(list, tl_flags|GNUTLS_TL_NO_DUPLICATES, tl_vflags);
+ tl_flags = tl_flags|GNUTLS_TL_NO_DUPLICATES;
+ const char *file = secure_getenv("NIX_SSL_CERT_FILE");
+ return file
+ ? gnutls_x509_trust_list_add_trust_file(
+ list, file, NULL/*CRL*/, GNUTLS_X509_FMT_PEM, tl_flags, tl_vflags)
+ : add_system_trust(list, tl_flags, tl_vflags);
}

View file

@ -0,0 +1,126 @@
commit 9bcdde1ab9cdff6a4471f9a926dd488ab70c7247
Author: Daiderd Jordan <daiderd@gmail.com>
Date: Mon Apr 22 16:38:27 2019 +0200
Revert "gnutls_x509_trust_list_add_system_trust: Add macOS keychain support"
This reverts commit c0eb46d3463cd21b3f822ac377ff37f067f66b8d.
diff --git a/configure.ac b/configure.ac
index 8ad597bfd..8d14f26cd 100644
--- a/configure.ac
+++ b/configure.ac
@@ -781,7 +781,7 @@ dnl auto detect https://lists.gnu.org/archive/html/help-gnutls/2012-05/msg00004.
AC_ARG_WITH([default-trust-store-file],
[AS_HELP_STRING([--with-default-trust-store-file=FILE],
[use the given file default trust store])], with_default_trust_store_file="$withval",
- [if test "$build" = "$host" && test x$with_default_trust_store_pkcs11 = x && test x$with_default_trust_store_dir = x && test x$have_macosx = x;then
+ [if test "$build" = "$host" && test x$with_default_trust_store_pkcs11 = x && test x$with_default_trust_store_dir = x;then
for i in \
/etc/ssl/ca-bundle.pem \
/etc/ssl/certs/ca-certificates.crt \
diff --git a/lib/Makefile.am b/lib/Makefile.am
index fe9cf63a2..745695f7e 100644
--- a/lib/Makefile.am
+++ b/lib/Makefile.am
@@ -203,10 +203,6 @@ if WINDOWS
thirdparty_libadd += -lcrypt32
endif
-if MACOSX
-libgnutls_la_LDFLAGS += -framework Security -framework CoreFoundation
-endif
-
libgnutls_la_LIBADD += $(thirdparty_libadd)
# C++ library
diff --git a/lib/system/certs.c b/lib/system/certs.c
index 611c645e0..912b0aa5e 100644
--- a/lib/system/certs.c
+++ b/lib/system/certs.c
@@ -44,12 +44,6 @@
# endif
#endif
-#ifdef __APPLE__
-# include <CoreFoundation/CoreFoundation.h>
-# include <Security/Security.h>
-# include <Availability.h>
-#endif
-
/* System specific function wrappers for certificate stores.
*/
@@ -276,72 +270,6 @@ int add_system_trust(gnutls_x509_trust_list_t list, unsigned int tl_flags,
return r;
}
-#elif defined(__APPLE__) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 1070
-static
-int osstatus_error(status)
-{
- CFStringRef err_str = SecCopyErrorMessageString(status, NULL);
- _gnutls_debug_log("Error loading system root certificates: %s\n",
- CFStringGetCStringPtr(err_str, kCFStringEncodingUTF8));
- CFRelease(err_str);
- return GNUTLS_E_FILE_ERROR;
-}
-
-static
-int add_system_trust(gnutls_x509_trust_list_t list, unsigned int tl_flags,
- unsigned int tl_vflags)
-{
- int r=0;
-
- SecTrustSettingsDomain domain[] = { kSecTrustSettingsDomainUser,
- kSecTrustSettingsDomainAdmin,
- kSecTrustSettingsDomainSystem };
- for (size_t d=0; d<sizeof(domain)/sizeof(*domain); d++) {
- CFArrayRef certs = NULL;
- OSStatus status = SecTrustSettingsCopyCertificates(domain[d],
- &certs);
- if (status == errSecNoTrustSettings)
- continue;
- if (status != errSecSuccess)
- return osstatus_error(status);
-
- int cert_count = CFArrayGetCount(certs);
- for (int i=0; i<cert_count; i++) {
- SecCertificateRef cert =
- (void*)CFArrayGetValueAtIndex(certs, i);
- CFDataRef der;
- status = SecItemExport(cert, kSecFormatX509Cert, 0,
- NULL, &der);
- if (status != errSecSuccess) {
- CFRelease(der);
- CFRelease(certs);
- return osstatus_error(status);
- }
-
- if (gnutls_x509_trust_list_add_trust_mem(list,
- &(gnutls_datum_t) {
- .data = (void*)CFDataGetBytePtr(der),
- .size = CFDataGetLength(der),
- },
- NULL,
- GNUTLS_X509_FMT_DER,
- tl_flags,
- tl_vflags) > 0)
- r++;
- CFRelease(der);
- }
- CFRelease(certs);
- }
-
-#ifdef DEFAULT_BLACKLIST_FILE
- ret = gnutls_x509_trust_list_remove_trust_file(list, DEFAULT_BLACKLIST_FILE, GNUTLS_X509_FMT_PEM);
- if (ret < 0) {
- _gnutls_debug_log("Could not load blacklist file '%s'\n", DEFAULT_BLACKLIST_FILE);
- }
-#endif
-
- return r;
-}
#else
#define add_system_trust(x,y,z) GNUTLS_E_UNIMPLEMENTED_FEATURE

View file

@ -1,11 +1,11 @@
{ stdenv, fetchurl, libcddb, pkgconfig, ncurses, help2man, libiconv, Carbon, IOKit }:
stdenv.mkDerivation rec {
name = "libcdio-2.0.0";
name = "libcdio-2.1.0";
src = fetchurl {
url = "mirror://gnu/libcdio/${name}.tar.bz2";
sha256 = "0jr8ppdm80c533nzmrpz3iffnpc6nhvsria1di9f4jg1l19a03fd";
sha256 = "0avi6apv5ydjy6b9c3z9a46rvp5i57qyr09vr7x4nndxkmcfjl45";
};
postPatch = ''

View file

@ -1,11 +1,11 @@
{ stdenv, fetchurl, pkgconfig, libpthreadstubs, libpciaccess, valgrind-light }:
stdenv.mkDerivation rec {
name = "libdrm-2.4.97";
name = "libdrm-2.4.98";
src = fetchurl {
url = "https://dri.freedesktop.org/libdrm/${name}.tar.bz2";
sha256 = "08yimlp6jir1rs5ajgdx74xa5qdzcqahpdzdk0rmkmhh7vdcrl3p";
sha256 = "150qdzsm2nx6dfacc75rx53anzsc6m31nhxidf5xxax3mk6fvq4b";
};
outputs = [ "out" "dev" "bin" ];

View file

@ -2,11 +2,11 @@
stdenv.mkDerivation rec {
name = "libdvdread-${version}";
version = "6.0.0";
version = "6.0.1";
src = fetchurl {
url = "http://get.videolan.org/libdvdread/${version}/${name}.tar.bz2";
sha256 = "0dgr23fzcjhb7ck54xkr9zmf4jcq3ph0dz3fbyvla1c6ni9ijfxk";
sha256 = "1gfmh8ii3s2fw1c8vn57piwxc0smd3va4h7xgp9s8g48cc04zki8";
};
buildInputs = [libdvdcss];

View file

@ -2,11 +2,11 @@
stdenv.mkDerivation rec {
pname = "libmbim";
version = "1.18.0";
version = "1.18.2";
src = fetchurl {
url = "https://www.freedesktop.org/software/libmbim/${pname}-${version}.tar.xz";
sha256 = "10mjjy860aakfd3h1yaj9l1jw816amrpwmyqlx37j21xv0l03x3c";
sha256 = "0s4jsfsydp2vykv7lnimalp9i680aas1qcx7zdpjiic64b5g48vp";
};
outputs = [ "out" "dev" "man" ];

View file

@ -2,11 +2,11 @@
stdenv.mkDerivation rec {
pname = "libqmi";
version = "1.22.2";
version = "1.22.4";
src = fetchurl {
url = "https://www.freedesktop.org/software/libqmi/${pname}-${version}.tar.xz";
sha256 = "09w20dsgr16bgbqw5ds7r6j2s6ihwyalh9zpbjhcn7cvm0afbwgi";
sha256 = "1wgrrb9vb3myl8xgck8ik86876ycbg8crylybs3ssi21vrxqwnsc";
};
outputs = [ "out" "dev" "devdoc" ];

View file

@ -4,11 +4,11 @@
# need pkgconfig so that libshout installs ${out}/lib/pkgconfig/shout.pc
stdenv.mkDerivation rec {
name = "libshout-2.4.1";
name = "libshout-2.4.2";
src = fetchurl {
url = "http://downloads.xiph.org/releases/libshout/${name}.tar.gz";
sha256 = "0kgjpf8jkgyclw11nilxi8vyjk4s8878x23qyxnvybbgqbgbib7k";
sha256 = "0qgwarqp2p6jy3zadds6dzj8z1jfb2mbwc3lsdlidf527h0a86ym";
};
outputs = [ "out" "dev" "doc" ];

View file

@ -17,6 +17,8 @@ stdenv.mkDerivation rec {
"spawn_setuid_fails" "spawn_setgid_fails" "fs_chown" # user namespaces
"getaddrinfo_fail" "getaddrinfo_fail_sync"
"threadpool_multiple_event_loops" # times out on slow machines
"get_passwd" # passed on NixOS but failed on other Linuxes
"tcp_writealot" # times out sometimes
] ++ stdenv.lib.optionals stdenv.isDarwin [
# Sometimes: timeout (no output), failed uv_listen. Someone
# should report these failures to libuv team. There tests should

View file

@ -2,10 +2,10 @@
stdenv.mkDerivation rec {
name = "pcre2-${version}";
version = "10.32";
version = "10.33";
src = fetchurl {
url = "https://ftp.pcre.org/pub/pcre/${name}.tar.bz2";
sha256 = "0bkwp2czcckvvbdls7b331cad11rxsm020aqhrbz84z8bp68k7pj";
sha256 = "1anqi7vpbfzag7imccrc6di1zl5rl63ab7rfpmajpw6d1kzlsl9m";
};
configureFlags = [

View file

@ -2,11 +2,11 @@
stdenv.mkDerivation rec {
name = "pixman-${version}";
version = "0.38.0";
version = "0.38.4";
src = fetchurl {
url = "mirror://xorg/individual/lib/${name}.tar.bz2";
sha256 = "1a1nnkjv0rqdj26847r0saly0kzckjfp4y3ly30bvpjxi7vy6s5p";
sha256 = "0l0m48lnmdlmnaxn2021qi5cj366d9fzfjxkqgcj9bs14pxbgaw4";
};
nativeBuildInputs = [ pkgconfig ];

View file

@ -2,11 +2,11 @@
buildPythonPackage rec {
pname = "PyChromecast";
version = "3.2.0";
version = "3.2.1";
src = fetchPypi {
inherit pname version;
sha256 = "0jksh7rb4880kni8iw3hb5q9dm5gi40zmx4r2fwydnpfhadhq5af";
sha256 = "e1e71e30581e1021b6bdd50a80cfcdcfa86d9082171fdd719c5ca6a77b8a9699";
};
disabled = !isPy3k;

View file

@ -1,17 +1,19 @@
{ stdenv, fetchPypi, buildPythonPackage, unidecode, regex, isPy3k }:
{ stdenv, fetchPypi, buildPythonPackage, python, text-unidecode }:
buildPythonPackage rec {
pname = "python-slugify";
version = "2.0.1";
version = "3.0.2";
src = fetchPypi {
inherit pname version;
sha256 = "d3e034397236020498e677a35e5c05dcc6ba1624b608b9ef7e5fe3090ccbd5a8";
sha256 = "57163ffb345c7e26063435a27add1feae67fa821f1ef4b2f292c25847575d758";
};
doCheck = !isPy3k;
# (only) on python3 unittest loader (loadTestsFromModule) fails
propagatedBuildInputs = [ unidecode regex ];
propagatedBuildInputs = [ text-unidecode ];
checkPhase = ''
${python.interpreter} test.py
'';
meta = with stdenv.lib; {
homepage = https://github.com/un33k/python-slugify;

View file

@ -2,11 +2,11 @@
buildPythonPackage rec {
pname = "pytz";
version = "2018.9";
version = "2019.1";
src = fetchPypi {
inherit pname version;
sha256 = "d5f05e487007e29e03409f9398d074e158d920d36eb82eaf66fb1136b0c5374c";
sha256 = "d747dd3d23d77ef44c6a3526e274af6efeb0a6f1afd5a69ba4d5be4098c8e141";
};
checkPhase = ''

View file

@ -2,11 +2,11 @@
buildPythonPackage rec {
pname = "pytzdata";
version = "2018.9";
version = "2019.1";
src = fetchPypi {
inherit pname version;
sha256 = "dddaaf4f1717820a6fdcac94057e03c1a15b3829a44d9eaf19988917977db408";
sha256 = "f0469062f799c66480fcc7eae69a8270dc83f0e6522c0e70db882d6bd708d378";
};
# No tests

View file

@ -1,5 +1,5 @@
{ stdenv, lib, buildPackages
, fetchurl, zlib, autoreconfHook
, fetchurl, zlib, autoreconfHook, gettext
# Enabling all targets increases output size to a multiple.
, withAllTargets ? false, libbfd, libopcodes
, enableShared ? true
@ -73,7 +73,7 @@ stdenv.mkDerivation rec {
] ++ lib.optionals stdenv.targetPlatform.isiOS [
autoreconfHook
];
buildInputs = [ zlib ];
buildInputs = [ zlib gettext ];
inherit noSysDirs;

View file

@ -1,11 +1,11 @@
{ stdenv, fetchurl, perlPackages, gettext }:
stdenv.mkDerivation rec {
name = "help2man-1.47.9";
name = "help2man-1.47.10";
src = fetchurl {
url = "mirror://gnu/help2man/${name}.tar.xz";
sha256 = "1li3b6vifhysc2ckx0d7krwrqb8bk0kzn3k18ff1963hjc1qp7nz";
sha256 = "1yywli520246aba12vpgj7bhr1r13swad3xm49a0cygqcgywnwgk";
};
nativeBuildInputs = [ gettext perlPackages.LocaleGettext ];

View file

@ -184,6 +184,7 @@ let
VGA_SWITCHEROO = yes; # Hybrid graphics support
DRM_GMA600 = yes;
DRM_GMA3600 = yes;
DRM_VMWGFX_FBCON = yes;
# necessary for amdgpu polaris support
DRM_AMD_POWERPLAY = whenBetween "4.5" "4.9" yes;
# (experimental) amdgpu support for verde and newer chipsets

View file

@ -198,6 +198,10 @@ let
cp $buildRoot/{.config,Module.symvers} $dev/lib/modules/${modDirVersion}/build
make modules_prepare $makeFlags "''${makeFlagsArray[@]}" O=$dev/lib/modules/${modDirVersion}/build
# For reproducibility, removes accidental leftovers from a `cc1` call
# from a `try-run` call from the Makefile
rm -f $dev/lib/modules/${modDirVersion}/build/.[0-9]*.d
# Keep some extra files on some arches (powerpc, aarch64)
for f in arch/powerpc/lib/crtsavres.o arch/arm64/kernel/ftrace-mod.o; do
if [ -f "$buildRoot/$f" ]; then

View file

@ -1,5 +1,5 @@
{ stdenv, fetchpatch, fetchFromGitHub, autoreconfHook, libxslt, libxml2
, docbook_xml_dtd_412, docbook_xsl, gnome-doc-utils, flex, bison
, docbook_xml_dtd_45, docbook_xsl, gnome-doc-utils, flex, bison
, pam ? null, glibcCross ? null
}:
@ -30,12 +30,21 @@ stdenv.mkDerivation rec {
buildInputs = stdenv.lib.optional (pam != null && stdenv.isLinux) pam;
nativeBuildInputs = [autoreconfHook libxslt libxml2
docbook_xml_dtd_412 docbook_xsl gnome-doc-utils flex bison
docbook_xml_dtd_45 docbook_xsl gnome-doc-utils flex bison
];
patches =
[ ./keep-path.patch
# Obtain XML resources from XML catalog (patch adapted from gtk-doc)
./respect-xml-catalog-files-var.patch
dots_in_usernames
# Check for correct DocBook version during configure
# https://github.com/shadow-maint/shadow/pull/162
(fetchpatch {
url = "https://github.com/shadow-maint/shadow/commit/47797ca6654f79e3de854a6c69db2bdb0516db08.patch";
sha256 = "1zn8f6fd26gj5sh60099xqc7mjwgbbkkic5xfigvxa4b90vm8fd7";
})
];
# The nix daemon often forbids even creating set[ug]id files.
@ -52,11 +61,6 @@ stdenv.mkDerivation rec {
preConfigure = ''
export ac_cv_func_setpgrp_void=yes
export shadow_cv_logdir=/var/log
(
head -n -1 "${docbook_xml_dtd_412}/xml/dtd/docbook/catalog.xml"
tail -n +3 "${docbook_xsl}/share/xml/docbook-xsl/catalog.xml"
) > xmlcatalog
configureFlags="$configureFlags --with-xml-catalog=$PWD/xmlcatalog ";
'';
configureFlags = [

View file

@ -0,0 +1,30 @@
diff --git a/acinclude.m4 b/acinclude.m4
index dd01f165..e23160ee 100644
--- a/acinclude.m4
+++ b/acinclude.m4
@@ -46,9 +46,21 @@ AC_DEFUN([JH_CHECK_XML_CATALOG],
ifelse([$3],,,[$3
])dnl
else
- AC_MSG_RESULT([not found])
- ifelse([$4],,
- [AC_MSG_ERROR([could not find ifelse([$2],,[$1],[$2]) in XML catalog])],
- [$4])
+ jh_check_xml_catalog_saved_ifs="$IFS"
+ IFS=' '
+ for f in $XML_CATALOG_FILES; do
+ if [[ -f "$f" ]] && \
+ AC_RUN_LOG([$XMLCATALOG --noout "$f" "$1" >&2]); then
+ jh_found_xmlcatalog=true
+ AC_MSG_RESULT([found])
+ ifelse([$3],,,[$3])
+ break
+ fi
+ done
+ IFS="$jh_check_xml_catalog_saved_ifs"
+ if ! $jh_found_xmlcatalog; then
+ AC_MSG_RESULT([not found])
+ ifelse([$4],,[AC_MSG_ERROR([could not find ifelse([$2],,[$1],[$2]) in XML catalog])],[$4])
+ fi
fi
])

View file

@ -5,14 +5,14 @@ let
version = lib.concatStringsSep "." ([ majorVersion ]
++ lib.optional (patchVersion != "") patchVersion);
majorVersion = "2.33";
patchVersion = "1";
patchVersion = "2";
in stdenv.mkDerivation rec {
name = "util-linux-${version}";
src = fetchurl {
url = "mirror://kernel/linux/utils/util-linux/v${majorVersion}/${name}.tar.xz";
sha256 = "08ggvgrb59m5jbq29950xxirsgv4xj3nwsc7vf82nyg1nvrxjjy1";
sha256 = "15yf2dh4jd1kg6066hydlgdhhs2j3na13qld8yx30qngqvmfh6v3";
};
patches = [
@ -41,15 +41,19 @@ in stdenv.mkDerivation rec {
"--disable-use-tty-group"
"--enable-fs-paths-default=/run/wrappers/bin:/run/current-system/sw/bin:/sbin"
"--disable-makeinstall-setuid" "--disable-makeinstall-chown"
"--disable-su" # provided by shadow
(lib.withFeature (ncurses != null) "ncursesw")
(lib.withFeature (systemd != null) "systemd")
(lib.withFeatureAs (systemd != null)
"systemdsystemunitdir" "$(bin)/lib/systemd/system/")
"systemdsystemunitdir" "${placeholder "bin"}/lib/systemd/system/")
] ++ lib.optional (stdenv.hostPlatform != stdenv.buildPlatform)
"scanf_cv_type_modifier=ms"
;
makeFlags = "usrbin_execdir=$(bin)/bin usrsbin_execdir=$(bin)/sbin";
makeFlags = [
"usrbin_execdir=${placeholder "bin"}/bin"
"usrsbin_execdir=${placeholder "bin"}/sbin"
];
nativeBuildInputs = [ pkgconfig ];
buildInputs =
@ -58,9 +62,7 @@ in stdenv.mkDerivation rec {
doCheck = false; # "For development purpose only. Don't execute on production system!"
postInstall = ''
rm "$bin/bin/su" # su should be supplied by the su package (shadow)
'' + lib.optionalString minimal ''
postInstall = lib.optionalString minimal ''
rm -rf $out/share/{locale,doc,bash-completion}
'';

View file

@ -24,10 +24,10 @@ let
});
jinja2 = super.jinja2.overridePythonAttrs (oldAttrs: rec {
version = "2.10";
version = "2.10.1";
src = oldAttrs.src.override {
inherit version;
sha256 = "f84be1bb0040caca4cea721fcbbbbd61f9be9464ca236387158b0feea01914a4";
sha256 = "065c4f02ebe7f7cf559e49ee5a95fb800a9e4528727aec6f24402a5374c65013";
};
});
@ -52,11 +52,11 @@ let
in python.pkgs.buildPythonApplication rec {
pname = "appdaemon";
version = "3.0.4";
version = "3.0.5";
src = python.pkgs.fetchPypi {
inherit pname version;
sha256 = "e2393b5e0bb34e94e61f5debc95ad74c1c6929635b74bf8ba15c22b40cbdec69";
sha256 = "623897ce08dc2efe24d04380df36e4b7fb35c0e4007e882857d4047f0b60349d";
};
propagatedBuildInputs = with python.pkgs; [

File diff suppressed because it is too large Load diff

View file

@ -28,28 +28,20 @@ let
"10cbf6e27dbce8c30807caf056c8eb50917e0eaafe86347671b57254006c3e69")
(mkOverride "bcrypt" "3.1.6"
"44636759d222baa62806bbceb20e96f75a015a6381690d1bc2eda91c01ec02ea")
(self: super: {
pyjwt = super.pyjwt.overridePythonAttrs (oldAttrs: rec {
version = "1.6.4";
src = oldAttrs.src.override {
inherit version;
sha256 = "4ee413b357d53fd3fb44704577afac88e72e878716116270d722723d65b42176";
};
doCheck = false; # https://github.com/jpadilla/pyjwt/issues/382
});
})
(mkOverride "cryptography" "2.5"
"00c4d7gvsymlaw0r13zrm32dcnarmpayjyrh65yymlmr6mrbcij9")
(mkOverride "cryptography_vectors" "2.5" # required by cryptography==2.5
"15qfl3pnw2f11r0z0zhwl56f6pb60ysav8fxmpnz5p80cfwljdik")
(mkOverride "python-slugify" "1.2.6"
"7723daf30996db26573176bddcdf5fcb98f66dc70df05c9cb29f2c79b8193245")
(mkOverride "pyjwt" "1.7.1"
"8d59a976fb773f3e6a39c85636357c4f0e242707394cadadd9814f5cbaa20e96")
(mkOverride "cryptography" "2.6.1"
"26c821cbeb683facb966045e2064303029d572a87ee69ca5a1bf54bf55f93ca6")
(mkOverride "cryptography_vectors" "2.6.1" # required by cryptography==2.6.1
"03f38115dccb266dd96538f94067442a877932c2322661bdc5bf2502c76658af")
(mkOverride "python-slugify" "3.0.2"
"57163ffb345c7e26063435a27add1feae67fa821f1ef4b2f292c25847575d758")
(mkOverride "pyyaml" "3.13"
"3ef3092145e9b70e3ddd2c7ad59bdd0252a94dfe3949721633e41344de00a6bf")
(mkOverride "requests" "2.21.0"
"502a824f31acdacb3a35b6690b5fbf0bc41d63a24a45c4004352b0242707598e")
(mkOverride "ruamel_yaml" "0.15.89"
"86d034aa9e2ab3eacc5f75f5cd6a469a2af533b6d9e60ea92edbba540d21b9b7")
(mkOverride "ruamel_yaml" "0.15.91"
"692f03ed24c8c1d9fa9fd4c045f7ba1c26f1e96edb8bfb4d54854ba26bc02319")
(mkOverride "voluptuous" "0.11.5"
"567a56286ef82a9d7ae0628c5842f65f516abcb496e74f3f59f1d7b28df314ef")
(mkOverride "voluptuous-serialize" "2.1.0"
@ -67,14 +59,13 @@ let
# required by home-assistant-frontend
(self: super: {
user-agents = super.user-agents.overridePythonAttrs (oldAttrs: rec {
version = "1.1.0";
version = "2.0.0";
src = fetchFromGitHub {
owner = "selwin";
repo = "python-user-agents";
rev = "v${version}";
sha256 = "14kxd780zhp8718xr1z63xffaj3bvxgr4pldh9sv943m4hvi0gw5";
sha256 = "0ix2yajqdnfj433j50dls90mkmqz8m4fiywxg097zwkkc95wm8s4";
};
doCheck = false; # can be dropped for 2.0
});
})
@ -118,7 +109,7 @@ let
extraBuildInputs = extraPackages py.pkgs;
# Don't forget to run parse-requirements.py after updating
hassVersion = "0.91.4";
hassVersion = "0.92.2";
in with py.pkgs; buildPythonApplication rec {
pname = "homeassistant";
@ -133,7 +124,7 @@ in with py.pkgs; buildPythonApplication rec {
owner = "home-assistant";
repo = "home-assistant";
rev = version;
sha256 = "195pif8lz0qxjsannpi39gxphfb6dkj9lkpah0vjw0pgx753sflv";
sha256 = "10kqfj7gi8w0d9jalb4i2w4ifla8jkllymjav74abc4b30y08vmw";
};
propagatedBuildInputs = [
@ -145,16 +136,17 @@ in with py.pkgs; buildPythonApplication rec {
] ++ componentBuildInputs ++ extraBuildInputs;
checkInputs = [
asynctest pytest pytest-aiohttp requests-mock pydispatcher
asynctest pytest pytest-aiohttp requests-mock pydispatcher aiohue
];
checkPhase = ''
# The components' dependencies are not included, so they cannot be tested
py.test --ignore tests/components
# test_webhook_create_cloudhook imports hass_nabucasa and is thus excluded
py.test --ignore tests/components -k "not test_webhook_create_cloudhook"
# Some basic components should be tested however
py.test \
tests/components/{api,config,configurator,demo,discovery,frontend,group,history,history_graph} \
tests/components/{homeassistant,http,introduction,logger,script,shell_command,system_log,websocket_api}
tests/components/{homeassistant,http,logger,script,shell_command,system_log,websocket_api}
'';
makeWrapperArgs = lib.optional skipPip "--add-flags --skip-pip";

View file

@ -2,11 +2,11 @@
buildPythonPackage rec {
pname = "home-assistant-frontend";
version = "20190331.0";
version = "20190427.0";
src = fetchPypi {
inherit pname version;
sha256 = "2d266a4d3d31af9a50debb99b0e9e9650044698f9157753bec785785057264cf";
sha256 = "eb14e7be0ad591ad4623c67db752bc4eb4f4e43ce60bb0f6d1909e9ad9399d91";
};
propagatedBuildInputs = [ user-agents ];

View file

@ -1,28 +1,30 @@
#! /usr/bin/env nix-shell
#! nix-shell -i python3 -p "python3.withPackages (ps: with ps; [ aiohttp astral async-timeout attrs certifi jinja2 pyjwt cryptography pip pytz pyyaml requests ruamel_yaml voluptuous python-slugify ])"
#! nix-shell -i python3 -p "python3.withPackages (ps: with ps; [ attrs ])
#
# This script downloads Home Assistant's source tarball.
# Inside the homeassistant/components directory, each component has an associated .py file,
# specifying required packages and other components it depends on:
# Inside the homeassistant/components directory, each integration has an associated manifest.json,
# specifying required packages and other integrations it depends on:
#
# REQUIREMENTS = [ 'package==1.2.3' ]
# DEPENDENCIES = [ 'component' ]
# {
# "requirements": [ "package==1.2.3" ],
# "dependencies": [ "component" ]
# }
#
# By parsing the files, a dictionary mapping component to requirements and dependencies is created.
# By parsing the files, a dictionary mapping integrations to requirements and dependencies is created.
# For all of these requirements and the dependencies' requirements,
# Nixpkgs' python3Packages are searched for appropriate names.
# Then, a Nix attribute set mapping component name to dependencies is created.
# nixpkgs' python3Packages are searched for appropriate names.
# Then, a Nix attribute set mapping integration name to dependencies is created.
from urllib.request import urlopen
import tempfile
from io import BytesIO
import tarfile
import importlib
import subprocess
import os
import sys
import json
import pathlib
import os
import re
import subprocess
import sys
import tempfile
import tarfile
from urllib.request import urlopen
COMPONENT_PREFIX = 'homeassistant.components'
PKG_SET = 'python3Packages'
@ -43,22 +45,17 @@ def get_version():
def parse_components(version='master'):
components = {}
with tempfile.TemporaryDirectory() as tmp:
with urlopen('https://github.com/home-assistant/home-assistant/archive/{}.tar.gz'.format(version)) as response:
with urlopen(f'https://github.com/home-assistant/home-assistant/archive/{version}.tar.gz') as response:
tarfile.open(fileobj=BytesIO(response.read())).extractall(tmp)
# Use part of a script from the Home Assistant codebase
sys.path.append(tmp + '/home-assistant-{}'.format(version))
from script.gen_requirements_all import explore_module
for package in explore_module(COMPONENT_PREFIX, True):
# Remove 'homeassistant.components.' prefix
component = package[len(COMPONENT_PREFIX + '.'):]
try:
module = importlib.import_module(package)
components[component] = {}
components[component]['requirements'] = getattr(module, 'REQUIREMENTS', [])
components[component]['dependencies'] = getattr(module, 'DEPENDENCIES', [])
# If there is an ImportError, the imported file is not the main file of the component
except ImportError:
continue
sys.path.append(os.path.join(tmp, f'home-assistant-{version}'))
from script.hassfest.model import Integration
integrations = Integration.load_dir(pathlib.Path(
os.path.join(tmp, f'home-assistant-{version}', 'homeassistant/components')
))
for domain in sorted(integrations):
integration = integrations[domain]
components[domain] = integration.manifest
return components
# Recursively get the requirements of a component and its dependencies

View file

@ -1,18 +1,26 @@
{ stdenv, fetchFromGitHub, valgrind
{ stdenv, fetchFromGitHub, valgrind, fetchpatch
, enableStatic ? false, enableShared ? true
}:
stdenv.mkDerivation rec {
name = "lz4-${version}";
pname = "lz4";
version = "1.9.1";
src = fetchFromGitHub {
sha256 = "1l1caxrik1hqs40vj3bpv1pikw6b74cfazv5c0v6g48zpcbmshl0";
rev = "v${version}";
repo = "lz4";
owner = "lz4";
repo = pname;
owner = pname;
};
patches = [
# Fix detection of Darwin
(fetchpatch {
url = "https://github.com/lz4/lz4/commit/024216ef7394b6411eeaa5b52d0cec9953a44249.patch";
sha256 = "0j0j2pr6pkplxf083hlwl5q4cfp86q3wd8mc64bcfcr7ysc5pzl3";
})
];
outputs = [ "out" "dev" ];
buildInputs = stdenv.lib.optional doCheck valgrind;

View file

@ -1,4 +0,0 @@
source $stdenv/setup
installFlags="prefix=$out"
makeFlags="CFLAGS=-DWITHOUT_GETTEXT LIBCGETOPT=0"
genericBuild

View file

@ -1,15 +1,19 @@
{stdenv, fetchurl}:
stdenv.mkDerivation {
name = "getopt-1.1.4";
builder = ./builder.sh;
stdenv.mkDerivation rec {
pname = "getopt";
version = "1.1.6";
src = fetchurl {
url = http://tarballs.nixos.org/getopt-1.1.4.tar.gz;
sha256 = "1arvjfzw6p310zbgv629w5hkyslrj44imf3r3s2r4ry2jfcks221";
url = "http://frodo.looijaard.name/system/files/software/${pname}/${pname}-${version}.tar.gz";
sha256 = "1zn5kp8ar853rin0ay2j3p17blxy16agpp8wi8wfg4x98b31vgyh";
};
preBuild = ''
export buildFlags=CC="$CC" # for darwin
'';
makeFlags = [
"WITHOUT_GETTEXT=1"
"LIBCGETOPT=0"
"prefix=${placeholder "out"}"
"CC:=$(CC)"
];
meta = {
platforms = stdenv.lib.platforms.unix;

View file

@ -61,13 +61,6 @@ in stdenv.mkDerivation rec {
# Meson does not support using different directories during build and
# for installation like Autotools did with flags passed to make install.
./fix-install-paths.patch
# Our gobject-introspection patches make the shared library paths absolute
# in the GIR files. When building docs, the library is not yet installed,
# though, so we need to replace the absolute path with a local one during build.
# We are replacing the variables in postPatch since substituteAll does not support
# placeholders.
./fix-docs-build.patch
];
buildInputs = [
@ -91,10 +84,15 @@ in stdenv.mkDerivation rec {
postPatch = ''
patchShebangs ./tools
patchShebangs libnm/generate-setting-docs.py
'';
substituteInPlace libnm/meson.build \
--subst-var-by DOCS_LD_PRELOAD "${libredirect}/lib/libredirect.so" \
--subst-var-by DOCS_NIX_REDIRECTS "${placeholder "out"}/lib/libnm.so.0=$PWD/build/libnm/libnm.so.0"
preBuild = ''
# Our gobject-introspection patches make the shared library paths absolute
# in the GIR files. When building docs, the library is not yet installed,
# though, so we need to replace the absolute path with a local one during build.
# We are using a symlink that will be overridden during installation.
mkdir -p ${placeholder "out"}/lib
ln -s $PWD/libnm/libnm.so.0 ${placeholder "out"}/lib/libnm.so.0
'';
postInstall = ''

View file

@ -1,11 +0,0 @@
--- a/libnm/meson.build
+++ b/libnm/meson.build
@@ -262,6 +262,8 @@
'env', '-i',
'GI_TYPELIB_PATH=' + gi_typelib_path,
'LD_LIBRARY_PATH=' + ld_library_path,
+ 'LD_PRELOAD=' + '@DOCS_LD_PRELOAD@',
+ 'NIX_REDIRECTS=' + '@DOCS_NIX_REDIRECTS@',
]
name = 'nm-property-docs.xml'

View file

@ -17,7 +17,7 @@ buildPythonApplication rec {
prePatch = ''
substituteInPlace requirements.txt --replace "urllib3<1.24" "urllib3<2.0" \
--replace "six==1.11.0" "six<2.0.0" \
--replace "python-slugify==1.2.6" "python-slugify<3.0.0"
--replace "python-slugify==1.2.6" "python-slugify<4.0.0"
'';
# Requires external resources

View file

@ -10621,13 +10621,9 @@ in
then callPackage ../development/libraries/gnu-efi { }
else null;
gnutls = callPackage
(if stdenv.isDarwin
# Avoid > 3.5.10 due to frameworks for now; see discussion on:
# https://github.com/NixOS/nixpkgs/commit/d6454e6a1
then ../development/libraries/gnutls/3.5.10.nix
else ../development/libraries/gnutls/3.6.nix)
{ };
gnutls = callPackage ../development/libraries/gnutls/default.nix {
inherit (darwin.apple_sdk.frameworks) Security;
};
gnutls-kdh = callPackage ../development/libraries/gnutls-kdh/3.5.nix {
gperf = gperf_3_0;
@ -16094,8 +16090,12 @@ in
docbook_xml_ebnf_dtd = callPackage ../data/sgml+xml/schemas/xml-dtd/docbook-ebnf { };
inherit (callPackages ../data/sgml+xml/stylesheets/xslt/docbook-xsl { })
docbook_xsl
docbook_xsl_ns;
docbook-xsl-nons
docbook-xsl-ns;
# TODO: move this to aliases
docbook_xsl = docbook-xsl-nons;
docbook_xsl_ns = docbook-xsl-ns;
documentation-highlighter = callPackage ../misc/documentation-highlighter { };