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; availableComponents = cfg.package.availableComponents;
# Given component "parentConfig.platform", returns whether config.parentConfig usedPlatforms = config:
# is a list containing a set with set.platform == "platform". 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 = [ { # config.sensor = [ {
# platform = "luftdaten"; # platform = "mqtt";
# ... # ...
# } ]; # } ];
# useComponentPlatform = component: elem component (usedPlatforms cfg.config);
# 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');
# Returns whether component is used in config # Returns whether component is used in config
useComponent = component: useComponent = component:

View File

@ -11,8 +11,8 @@ let
sha256 = "0n75jq3xgq46hfmjkaaxz3gic77shs4fzajq40c8gk043i84xbdh"; sha256 = "0n75jq3xgq46hfmjkaaxz3gic77shs4fzajq40c8gk043i84xbdh";
}; };
"2" = { "2" = {
fluidsynthVersion = "2.0.4"; fluidsynthVersion = "2.0.5";
sha256 = "1v2vji02fbrjgypwb4fw2r90hnfwfbfh3d24j8vjwlbqxhxp16s0"; sha256 = "0rv0apxbj0cgm8f8sqf5xr6kdi4q58ph92ip6cg716ha0ca5lr8y";
}; };
}; };
in 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 rec {
pname = "pidgin-sipe";
stdenv.mkDerivation { version = "1.24.0";
name = "pidgin-sipe-${version}";
src = fetchurl { src = fetchurl {
url = "mirror://sourceforge/sipe/pidgin-sipe-${version}.tar.gz"; url = "mirror://sourceforge/sipe/${pname}-${version}.tar.gz";
sha256 = "0aaiblnagncb0lhdwb8qbps6hxxmyfjg7sdi15lrkl98i3fahg4n"; sha256 = "04cxprz6dbcsc4n2jg72mr1r9630nhrywn0zim9kwvbgps3wdd9c";
}; };
meta = with stdenv.lib; { nativeBuildInputs = [ intltool ];
description = "SIPE plugin for Pidgin IM"; buildInputs = [ pidgin gmime libxml2 nss ];
homepage = http://sipe.sourceforge.net/; enableParallelBuilding = true;
license = licenses.gpl2;
platforms = platforms.linux;
};
postInstall = "find $out -ls; ln -s \$out/lib/purple-2 \$out/share/pidgin-sipe"; 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]; char buf[PATH_MAX];
return execv_real(rewrite(path, buf), argv); 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 }: { stdenv, fetchzip }:
let let
version = "20181219"; version = "20190504";
in fetchzip { in fetchzip {
name = "iana-etc-${version}"; name = "iana-etc-${version}";
url = "https://github.com/Mic92/iana-etc/releases/download/${version}/iana-etc-${version}.tar.gz"; url = "https://github.com/Mic92/iana-etc/releases/download/${version}/iana-etc-${version}.tar.gz";
sha256 = "0i3f7shvf1g6dp984w8xfix6id3q5c10b292wz2qw3v5n7h6wkm3"; sha256 = "1h61qnb3ybyfivyq8qjnisj4arbnhn8hcwad1bp4iqidjk6rjfv3";
postFetch = '' postFetch = ''
tar -xzvf $downloadedFile --strip-components=1 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,66 +1,77 @@
{ lib, stdenv, fetchurl, fetchpatch, findXMLCatalogs, writeScriptBin, ruby, bash }: { lib, stdenv, substituteAll, fetchurl, fetchpatch, findXMLCatalogs, writeScriptBin, ruby, bash }:
let let
common = { pname, sha256, patches ? [] }: let self = stdenv.mkDerivation rec { common = { pname, sha256, suffix ? "" }: let
name = "${pname}-1.79.1"; legacySuffix = if suffix == "-nons" then "" else "-ns";
self = stdenv.mkDerivation rec {
inherit pname;
version = "1.79.2";
src = fetchurl { 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 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";
})
propagatedBuildInputs = [ findXMLCatalogs ]; # Add legacy sourceforge.net URIs to the catalog
(substituteAll {
src = ./catalog-legacy-uris.patch;
inherit legacySuffix suffix version;
})
];
dontBuild = true; propagatedBuildInputs = [ findXMLCatalogs ];
installPhase = '' dontBuild = true;
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
mv * $dst/
# Backwards compatibility. Will remove eventually. installPhase = ''
mkdir -p $out/xml/xsl dst=$out/share/xml/${pname}
ln -s $dst $out/xml/xsl/docbook mkdir -p $dst
''; rm -rf RELEASE* README* INSTALL TODO NEWS* BUGS install.sh tools Makefile tests extensions webhelp
mv * $dst/
passthru.dbtoepub = writeScriptBin "dbtoepub" # Backwards compatibility. Will remove eventually.
'' mkdir -p $out/xml/xsl
#!${bash}/bin/bash ln -s $dst $out/xml/xsl/docbook
exec -a dbtoepub ${ruby}/bin/ruby ${self}/share/xml/${pname}/epub/bin/dbtoepub "$@"
# More backwards compatibility
ln -s $dst $out/share/xml/docbook-xsl${legacySuffix}
''; '';
meta = { passthru.dbtoepub = writeScriptBin "dbtoepub"
homepage = http://wiki.docbook.org/topic/DocBookXslStylesheets; ''
description = "XSL stylesheets for transforming DocBook documents into HTML and various other formats"; #!${bash}/bin/bash
maintainers = [ lib.maintainers.eelco ]; exec -a dbtoepub ${ruby}/bin/ruby ${self}/share/xml/${pname}/epub/bin/dbtoepub "$@"
platforms = lib.platforms.all; '';
meta = {
homepage = http://wiki.docbook.org/topic/DocBookXslStylesheets;
description = "XSL stylesheets for transforming DocBook documents into HTML and various other formats";
maintainers = [ lib.maintainers.eelco ];
platforms = lib.platforms.all;
};
}; };
}; in self; in self;
in { in {
docbook_xsl = common { docbook-xsl-nons = common {
pname = "docbook-xsl"; pname = "docbook-xsl-nons";
sha256 = "0s59lihif2fr7rznckxr2kfyrvkirv76r1zvidp9b5mj28p4apvj"; suffix = "-nons";
sha256 = "00i1hdyxim8jymv2dz68ix3wbs5w6isxm8ijb03qk3vs1g59x2zf";
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_ns = common { docbook-xsl-ns = common {
pname = "docbook-xsl-ns"; pname = "docbook-xsl-ns";
sha256 = "170ggf5dgjar65kkn5n33kvjr3pdinpj66nnxfx8b2avw0k91jin"; sha256 = "0wd33z41kdsybyx3ay21w6bdlmgpd9kyn3mr5y520lsf8km28r9i";
patches = [ ./docbook-xsl-ns-infinite.patch ];
}; };
} }

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 let
generic = lib.makeOverridable ({ generic = lib.makeOverridable ({
major, minor, sha256, version, sha256,
extraNativeBuildInputs ? [], extraNativeBuildInputs ? [],
extraBuildInputs ? [], extraBuildInputs ? [],
withGraphviz ? false withGraphviz ? false
}: }:
let let
atLeast = lib.versionAtLeast "${major}.${minor}";
# Patches from the openembedded-core project to build vala without graphviz # Patches from the openembedded-core project to build vala without graphviz
# support. We need to apply an additional patch to allow building when the # 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) # 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 # We've reverted the addition of the "--disable-valadoc" option
# and then applied the following patch. # 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.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 { in stdenv.mkDerivation rec {
name = "vala-${version}"; pname = "vala";
version = "${major}.${minor}"; inherit version;
setupHook = substituteAll { setupHook = substituteAll {
src = ./setup-hook.sh; src = ./setup-hook.sh;
apiVersion = major; apiVersion = lib.versions.majorMinor version;
}; };
src = fetchurl { 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; inherit sha256;
}; };
@ -78,19 +76,27 @@ let
nativeBuildInputs = [ nativeBuildInputs = [
pkgconfig flex bison libxslt 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 ++ lib.optional disableGraphviz autoreconfHook # if we changed our ./configure script, need to reconfigure
++ extraNativeBuildInputs; ++ extraNativeBuildInputs;
buildInputs = [ buildInputs = [
glib libiconv libintl glib libiconv libintl
] ++ lib.optional (atLeast "0.38" && withGraphviz) graphviz ] ++ lib.optional (lib.versionAtLeast version "0.38" && withGraphviz) graphviz
++ extraBuildInputs; ++ extraBuildInputs;
enableParallelBuilding = true; enableParallelBuilding = true;
doCheck = false; # fails, requires dbus daemon 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; { meta = with stdenv.lib; {
description = "Compiler for GObject type system"; description = "Compiler for GObject type system";
homepage = https://wiki.gnome.org/Projects/Vala; homepage = https://wiki.gnome.org/Projects/Vala;
@ -102,34 +108,29 @@ let
in rec { in rec {
vala_0_36 = generic { vala_0_36 = generic {
major = "0.36"; version = "0.36.19";
minor = "18"; sha256 = "05si2f4zjvq0q3wqfh1wxdq20jy1xqxq2skqh8vfh2jyp355lwar";
sha256 = "0csb9skgy663y05kl813dsarzjbfcdsmx5fvz13p8gas3hycciq9";
}; };
vala_0_38 = generic { vala_0_38 = generic {
major = "0.38"; version = "0.38.10";
minor = "10";
sha256 = "1rdwwqs973qv225v8b5izcgwvqn56jxgr4pa3wxxbliar3aww5sw"; sha256 = "1rdwwqs973qv225v8b5izcgwvqn56jxgr4pa3wxxbliar3aww5sw";
extraNativeBuildInputs = [ autoconf ] ++ lib.optional stdenv.isDarwin libtool; extraNativeBuildInputs = [ autoconf ] ++ lib.optional stdenv.isDarwin libtool;
}; };
vala_0_40 = generic { vala_0_40 = generic {
major = "0.40"; version = "0.40.15";
minor = "14"; sha256 = "0mfayli159yyw6abjf6sgq41j54mr3nspg25b1kxhypcz0scjm19";
sha256 = "0llid9b9cgjcrcclc0pw2skkssb7br7b2clq9cql3p14dl94gki0";
}; };
vala_0_42 = generic { vala_0_42 = generic {
major = "0.42"; version = "0.42.7";
minor = "6"; sha256 = "029ksbsdpl581wzy570kj4kkw8b4bizgh494c051zsvkwck55p83";
sha256 = "14024gvs23q323fmd62hqd8jiypaxbjjvamyd782ixbhxmpz8x1p";
}; };
vala_0_44 = generic { vala_0_44 = generic {
major = "0.44"; version = "0.44.3";
minor = "1"; sha256 = "1sgas7z6y9r2mf4pxry3fx2awdnzn3vlg2sxd3hqpy2a90ib8lw5";
sha256 = "1qiglkgymws6a3m8xz1v8b3na165ywx2dbipp3bdg134bi0w3a4n";
}; };
vala = vala_0_44; vala = vala_0_44;

View File

@ -19,17 +19,17 @@ index f70234759..b3d6c3833 100644
- --enable-valadoc \ - --enable-valadoc \
- --enable-unversioned \ - --enable-unversioned \
- $(NULL) - $(NULL)
if ENABLE_UNVERSIONED if ENABLE_UNVERSIONED
aclocaldir = $(datadir)/aclocal aclocaldir = $(datadir)/aclocal
diff --git a/configure.ac b/configure.ac diff --git a/configure.ac b/configure.ac
index 16ebd1f81..cf23db4b8 100644 index 504db13aa..622397747 100644
--- a/configure.ac --- a/configure.ac
+++ b/configure.ac +++ b/configure.ac
@@ -156,10 +156,11 @@ PKG_CHECK_MODULES(GMODULE, gmodule-2.0 >= $GLIB_REQUIRED) @@ -157,10 +157,11 @@ AC_SUBST(GMODULE_CFLAGS)
AC_SUBST(GMODULE_CFLAGS)
AC_SUBST(GMODULE_LIBS) 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) -AC_ARG_ENABLE(valadoc, AS_HELP_STRING([--disable-valadoc], [Disable valadoc]), enable_valadoc=$enableval, enable_valadoc=yes)
-if test x$enable_valadoc = xyes; then -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) +AC_ARG_ENABLE(graphviz, AS_HELP_STRING([--disable-graphviz], [Disable graphviz usage for valadoc]), enable_graphviz=$enableval, enable_graphviz=yes)
@ -40,14 +40,14 @@ index 16ebd1f81..cf23db4b8 100644
cgraph_tmp_LIBADD="$LIBADD" cgraph_tmp_LIBADD="$LIBADD"
cgraph_tmp_CFLAGS="$CFLAGS" cgraph_tmp_CFLAGS="$CFLAGS"
LIBADD="$LIBADD $LIBGVC_LIBS" 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" LIBADD="$cgraph_tmp_LIBADD"
CFLAGS="$cgraph_tmp_CFLAGS" CFLAGS="$cgraph_tmp_CFLAGS"
fi fi
+AM_CONDITIONAL(ENABLE_GRAPHVIZ, test x$enable_graphviz = xyes) +AM_CONDITIONAL(ENABLE_GRAPHVIZ, test x$enable_graphviz = xyes)
AM_CONDITIONAL(HAVE_CGRAPH, test "$have_cgraph" = "yes") AM_CONDITIONAL(HAVE_CGRAPH, test "$have_cgraph" = "yes")
-AM_CONDITIONAL(ENABLE_VALADOC, test x$enable_valadoc = xyes) -AM_CONDITIONAL(ENABLE_VALADOC, test x$enable_valadoc = xyes)
AC_PATH_PROG([XSLTPROC], [xsltproc], :) AC_PATH_PROG([XSLTPROC], [xsltproc], :)
AM_CONDITIONAL(HAVE_XSLTPROC, test "$XSLTPROC" != :) AM_CONDITIONAL(HAVE_XSLTPROC, test "$XSLTPROC" != :)
diff --git a/doc/Makefile.am b/doc/Makefile.am diff --git a/doc/Makefile.am b/doc/Makefile.am
@ -55,14 +55,14 @@ index d2684a0e0..b343c7c10 100644
--- a/doc/Makefile.am --- a/doc/Makefile.am
+++ b/doc/Makefile.am +++ b/doc/Makefile.am
@@ -6,16 +6,11 @@ SUBDIRS = \ @@ -6,16 +6,11 @@ SUBDIRS = \
dist_man_MANS = \ dist_man_MANS = \
valac.1 \ valac.1 \
+ valadoc.1 \ + valadoc.1 \
vala-gen-introspect.1 \ vala-gen-introspect.1 \
vapigen.1 \ vapigen.1 \
$(NULL) $(NULL)
-if ENABLE_VALADOC -if ENABLE_VALADOC
-dist_man_MANS += \ -dist_man_MANS += \
- valadoc.1 \ - valadoc.1 \
@ -74,7 +74,7 @@ index d2684a0e0..b343c7c10 100644
valadoc.h2m \ valadoc.h2m \
@@ -24,11 +19,7 @@ EXTRA_DIST = \ @@ -24,11 +19,7 @@ EXTRA_DIST = \
$(NULL) $(NULL)
if HAVE_HELP2MAN if HAVE_HELP2MAN
-if ENABLE_VALADOC -if ENABLE_VALADOC
manpages: valac.1 valadoc.1 vala-gen-introspect.1 vapigen.1 manpages: valac.1 valadoc.1 vala-gen-introspect.1 vapigen.1
@ -83,7 +83,7 @@ index d2684a0e0..b343c7c10 100644
-endif -endif
@rm $^ @rm $^
$(MAKE) $(AM_MAKEFLAGS) $^ $(MAKE) $(AM_MAKEFLAGS) $^
@@ -37,13 +28,11 @@ valac.1: @@ -37,13 +28,11 @@ valac.1:
--include $(srcdir)/valac.h2m \ --include $(srcdir)/valac.h2m \
--libtool --no-info \ --libtool --no-info \
@ -108,18 +108,18 @@ index d2684a0e0..b343c7c10 100644
cd $(DESTDIR)$(man1dir) && $(LN_S) -f vala-gen-introspect@PACKAGE_SUFFIX@.1 vala-gen-introspect.1 cd $(DESTDIR)$(man1dir) && $(LN_S) -f vala-gen-introspect@PACKAGE_SUFFIX@.1 vala-gen-introspect.1
cd $(DESTDIR)$(man1dir) && $(LN_S) -f vapigen@PACKAGE_SUFFIX@.1 vapigen.1 cd $(DESTDIR)$(man1dir) && $(LN_S) -f vapigen@PACKAGE_SUFFIX@.1 vapigen.1
endif endif
-if ENABLE_VALADOC -if ENABLE_VALADOC
COMMON_VALADOCFLAGS = \ COMMON_VALADOCFLAGS = \
--force \ --force \
--verbose \ --verbose \
@@ -150,7 +136,6 @@ internal-apis/valadoc: $(valadoc_VALASOURCES) internal-apis/codegen @@ -150,7 +136,6 @@ internal-apis/valadoc: $(valadoc_VALASOURCES) internal-apis/codegen
@touch $@ @touch $@
internal-api-docs: internal-apis/gee internal-apis/vala internal-apis/ccode internal-apis/codegen internal-apis/valadoc internal-api-docs: internal-apis/gee internal-apis/vala internal-apis/ccode internal-apis/codegen internal-apis/valadoc
-endif -endif
clean-local: clean-local:
rm -rf $(builddir)/internal-apis rm -rf $(builddir)/internal-apis
diff --git a/libvaladoc/Makefile.am b/libvaladoc/Makefile.am diff --git a/libvaladoc/Makefile.am b/libvaladoc/Makefile.am
@ -147,7 +147,7 @@ index 7456fb836..107338e91 100644
html/htmlmarkupwriter.vala \ html/htmlmarkupwriter.vala \
html/htmlrenderer.vala \ html/htmlrenderer.vala \
$(NULL) $(NULL)
+if ENABLE_GRAPHVIZ +if ENABLE_GRAPHVIZ
+libvaladoc_la_VALASOURCES += \ +libvaladoc_la_VALASOURCES += \
+ charts/chart.vala \ + charts/chart.vala \
@ -177,23 +177,23 @@ index 7456fb836..107338e91 100644
$(filter %.vala %.c,$^) $(filter %.vala %.c,$^)
touch $@ touch $@
@@ -207,6 +214,9 @@ nodist_pkgconfig_DATA = valadoc@PACKAGE_SUFFIX@.pc @@ -207,6 +214,9 @@ nodist_pkgconfig_DATA = valadoc@PACKAGE_SUFFIX@.pc
valadoc@PACKAGE_SUFFIX@.pc: valadoc.pc valadoc@PACKAGE_SUFFIX@.pc: valadoc.pc
cp $< $@ cp $< $@
+if !ENABLE_GRAPHVIZ +if !ENABLE_GRAPHVIZ
+ sed -i "s/libgvc //g" $@ + sed -i "s/libgvc //g" $@
+endif +endif
vapidir = $(datadir)/vala/vapi vapidir = $(datadir)/vala/vapi
dist_vapi_DATA = valadoc@PACKAGE_SUFFIX@.vapi dist_vapi_DATA = valadoc@PACKAGE_SUFFIX@.vapi
@@ -214,6 +224,9 @@ nodist_vapi_DATA = valadoc@PACKAGE_SUFFIX@.deps @@ -214,6 +224,9 @@ nodist_vapi_DATA = valadoc@PACKAGE_SUFFIX@.deps
valadoc@PACKAGE_SUFFIX@.deps: valadoc.deps valadoc@PACKAGE_SUFFIX@.deps: valadoc.deps
cp $< $@ cp $< $@
+if !ENABLE_GRAPHVIZ +if !ENABLE_GRAPHVIZ
+ sed -i "s/libgvc//g" $@ + sed -i "s/libgvc//g" $@
+endif +endif
EXTRA_DIST = \ EXTRA_DIST = \
$(libvaladoc_la_VALASOURCES) \ $(libvaladoc_la_VALASOURCES) \
diff --git a/libvaladoc/html/basicdoclet.vala b/libvaladoc/html/basicdoclet.vala diff --git a/libvaladoc/html/basicdoclet.vala b/libvaladoc/html/basicdoclet.vala
@ -211,20 +211,20 @@ index 46578c28f..f6ce7097c 100644
+#endif +#endif
protected ErrorReporter reporter; protected ErrorReporter reporter;
protected string package_list_link = "../index.html"; protected string package_list_link = "../index.html";
@@ -120,7 +124,9 @@ public abstract class Valadoc.Html.BasicDoclet : Api.Visitor, Doclet { @@ -120,7 +124,9 @@ public abstract class Valadoc.Html.BasicDoclet : Api.Visitor, Doclet {
this.linker = new LinkHelper (); this.linker = new LinkHelper ();
_renderer = new HtmlRenderer (settings, this.linker, this.cssresolver); _renderer = new HtmlRenderer (settings, this.linker, this.cssresolver);
+#if HAVE_GRAPHVIZ +#if HAVE_GRAPHVIZ
this.image_factory = new SimpleChartFactory (settings, linker); this.image_factory = new SimpleChartFactory (settings, linker);
+#endif +#endif
} }
@@ -1025,6 +1031,7 @@ public abstract class Valadoc.Html.BasicDoclet : Api.Visitor, Doclet { @@ -1025,6 +1031,7 @@ public abstract class Valadoc.Html.BasicDoclet : Api.Visitor, Doclet {
} }
protected void write_image_block (Api.Node element) { protected void write_image_block (Api.Node element) {
+#if HAVE_GRAPHVIZ +#if HAVE_GRAPHVIZ
if (element is Class || element is Interface || element is Struct) { if (element is Class || element is Interface || element is Struct) {
@ -236,7 +236,7 @@ index 46578c28f..f6ce7097c 100644
} }
+#endif +#endif
} }
public void write_namespace_content (Namespace node, Api.Node? parent) { public void write_namespace_content (Namespace node, Api.Node? parent) {
diff --git a/libvaladoc/html/htmlmarkupwriter.vala b/libvaladoc/html/htmlmarkupwriter.vala diff --git a/libvaladoc/html/htmlmarkupwriter.vala b/libvaladoc/html/htmlmarkupwriter.vala
index 5aa4afdea..e79b0b8f5 100644 index 5aa4afdea..e79b0b8f5 100644
@ -245,7 +245,7 @@ index 5aa4afdea..e79b0b8f5 100644
@@ -51,12 +51,16 @@ public class Valadoc.Html.MarkupWriter : Valadoc.MarkupWriter { @@ -51,12 +51,16 @@ public class Valadoc.Html.MarkupWriter : Valadoc.MarkupWriter {
} }
} }
+#if HAVE_GRAPHVIZ +#if HAVE_GRAPHVIZ
public unowned MarkupWriter add_usemap (Charts.Chart chart) { public unowned MarkupWriter add_usemap (Charts.Chart chart) {
string? buf = (string?) chart.write_buffer ("cmapx"); string? buf = (string?) chart.write_buffer ("cmapx");
@ -256,6 +256,6 @@ index 5aa4afdea..e79b0b8f5 100644
+#else +#else
+ public unowned MarkupWriter add_usemap (void* chart) { + public unowned MarkupWriter add_usemap (void* chart) {
+#endif +#endif
return this; return this;
} }

View File

@ -11,14 +11,7 @@ let
opString = lib.optionalString; opString = lib.optionalString;
patchSet = import ./rvm-patchsets.nix { inherit fetchFromGitHub; }; patchSet = import ./rvm-patchsets.nix { inherit fetchFromGitHub; };
config = import ./config.nix { inherit fetchFromSavannah; }; config = import ./config.nix { inherit fetchFromSavannah; };
rubygemsSrc = import ./rubygems-src.nix { inherit fetchurl; }; rubygems = import ./rubygems { inherit stdenv lib fetchurl fetchpatch; };
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);
# Contains the ruby version heuristics # Contains the ruby version heuristics
rubyVersion = import ./ruby-version.nix { inherit lib; }; rubyVersion = import ./ruby-version.nix { inherit lib; };
@ -49,8 +42,10 @@ let
, buildEnv, bundler, bundix , buildEnv, bundler, bundix
, libiconv, libobjc, libunwind, Foundation , libiconv, libobjc, libunwind, Foundation
}: }:
let rubySrc = stdenv.mkDerivation rec {
if useRailsExpress then fetchFromGitHub { name = "ruby-${version}";
src = if useRailsExpress then fetchFromGitHub {
owner = "ruby"; owner = "ruby";
repo = "ruby"; repo = "ruby";
rev = tag; rev = tag;
@ -59,16 +54,6 @@ let
url = "https://cache.ruby-lang.org/pub/ruby/${ver.majMin}/ruby-${ver}.tar.gz"; url = "https://cache.ruby-lang.org/pub/ruby/${ver.majMin}/ruby-${ver}.tar.gz";
sha256 = sha256.src; 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. # Have `configure' avoid `/usr/bin/nroff' in non-chroot builds.
NROFF = if docSupport then "${groff}/bin/nroff" else null; NROFF = if docSupport then "${groff}/bin/nroff" else null;
@ -100,10 +85,7 @@ let
})."${ver.majMinTiny}"; })."${ver.majMinTiny}";
postUnpack = '' postUnpack = ''
cp -r ${unpackdir rubygemsSrc} ${sourceRoot}/rubygems cp -r ${rubygems} $sourceRoot/rubygems
pushd ${sourceRoot}/rubygems
patch -p1 < ${rubygemsPatch}
popd
''; '';
postPatch = if atLeast25 then '' postPatch = if atLeast25 then ''
@ -146,6 +128,7 @@ let
postInstall = '' postInstall = ''
# Update rubygems # Update rubygems
pushd rubygems pushd rubygems
chmod +w bundler/bundler.gemspec
${buildRuby} setup.rb --destdir $GEM_HOME ${buildRuby} setup.rb --destdir $GEM_HOME
popd 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 { stdenv.mkDerivation rec {
name = "${pname}-${version}"; name = "${pname}-${version}";
pname = "at-spi2-core"; pname = "at-spi2-core";
version = "2.32.0"; version = "2.32.1";
src = fetchurl { src = fetchurl {
url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz"; url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
sha256 = "083j1v7kdjrpjsv1b9dl3d8xqj39jyp4cfn8i9gbbm7q2g93b923"; sha256 = "0lqd7gsl471v6538iighkvb21gjglcb9pklvas32rjpsxcvsjaiw";
}; };
outputs = [ "out" "dev" ]; outputs = [ "out" "dev" ];

View File

@ -2,13 +2,13 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "c-blosc-${version}"; name = "c-blosc-${version}";
version = "1.16.2"; version = "1.16.3";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "Blosc"; owner = "Blosc";
repo = "c-blosc"; repo = "c-blosc";
rev = "v${version}"; rev = "v${version}";
sha256 = "19wb699rb5bn6h9qhw1m18m2w77lws7r50vxpgrvggnl27mvm3xc"; sha256 = "1c58wkf34rp5wh9qp09zdk7zcfn037sk56p4xq1g0vapbnglv603";
}; };
buildInputs = [ cmake ]; 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 { config, lib, stdenv, fetchurl, zlib, lzo, libtasn1, nettle, pkgconfig, lzip
, perl, gmp, autogen, libidn, p11-kit, libiconv , perl, gmp, autoconf, autogen, automake, libidn, p11-kit, libiconv
, unbound, dns-root-data, gettext
, guileBindings ? config.gnutls.guile or false, guile , guileBindings ? config.gnutls.guile or false, guile
, tpmSupport ? false, trousers, which, nettools, libunistring , tpmSupport ? false, trousers, which, nettools, libunistring
, unbound, dns-root-data, gettext , withSecurity ? false, Security # darwin Security.framework
}:
# Version dependent args
, version, src, patches ? [], postPatch ? "", nativeBuildInputs ? []
, buildInputs ? []
, ...}:
assert guileBindings -> guile != null; assert guileBindings -> guile != null;
let let
version = "3.6.7";
# XXX: Gnulib's `test-select' fails on FreeBSD: # XXX: Gnulib's `test-select' fails on FreeBSD:
# http://hydra.nixos.org/build/2962084/nixlog/1/raw . # http://hydra.nixos.org/build/2962084/nixlog/1/raw .
doCheck = !stdenv.isFreeBSD && !stdenv.isDarwin && lib.versionAtLeast version "3.4" doCheck = !stdenv.isFreeBSD && !stdenv.isDarwin && lib.versionAtLeast version "3.4"
&& stdenv.buildPlatform == stdenv.hostPlatform; && stdenv.buildPlatform == stdenv.hostPlatform;
inherit (stdenv.hostPlatform) isDarwin;
in in
stdenv.mkDerivation { stdenv.mkDerivation {
name = "gnutls-${version}"; 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" ]; outputs = [ "bin" "dev" "out" "man" "devdoc" ];
outputInfo = "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") '' postPatch = lib.optionalString (lib.versionAtLeast version "3.4") ''
sed '2iecho "name constraints tests skipped due to datefudge problems"\nexit 0' \ sed '2iecho "name constraints tests skipped due to datefudge problems"\nexit 0' -i tests/cert-tests/name-constraints
-i tests/cert-tests/name-constraints '' + lib.optionalString (lib.versionAtLeast version "3.6") ''
'' + 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
'';
preConfigure = "patchShebangs ."; preConfigure = "patchShebangs .";
configureFlags = configureFlags =
@ -42,11 +61,12 @@ stdenv.mkDerivation {
enableParallelBuilding = true; enableParallelBuilding = true;
buildInputs = [ lzo lzip libtasn1 libidn p11-kit zlib gmp autogen libunistring unbound gettext libiconv ] 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 (tpmSupport && stdenv.isLinux) trousers
++ lib.optional guileBindings guile ++ lib.optional guileBindings guile;
++ buildInputs;
nativeBuildInputs = [ perl pkgconfig ] ++ nativeBuildInputs nativeBuildInputs = [ perl pkgconfig ]
++ lib.optionals (isDarwin && !withSecurity) [ autoconf automake ]
++ lib.optionals doCheck [ which nettools ]; ++ lib.optionals doCheck [ which nettools ];
propagatedBuildInputs = [ nettle ]; propagatedBuildInputs = [ nettle ];
@ -54,7 +74,7 @@ stdenv.mkDerivation {
inherit doCheck; inherit doCheck;
# Fixup broken libtool and pkgconfig files # 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,'"} \ sed ${lib.optionalString tpmSupport "-e 's,-ltspi,-L${trousers}/lib -ltspi,'"} \
-e 's,-lz,-L${zlib.out}/lib -lz,' \ -e 's,-lz,-L${zlib.out}/lib -lz,' \
-e 's,-L${gmp.dev}/lib,-L${gmp.out}/lib,' \ -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, fetchurl, libcddb, pkgconfig, ncurses, help2man, libiconv, Carbon, IOKit }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "libcdio-2.0.0"; name = "libcdio-2.1.0";
src = fetchurl { src = fetchurl {
url = "mirror://gnu/libcdio/${name}.tar.bz2"; url = "mirror://gnu/libcdio/${name}.tar.bz2";
sha256 = "0jr8ppdm80c533nzmrpz3iffnpc6nhvsria1di9f4jg1l19a03fd"; sha256 = "0avi6apv5ydjy6b9c3z9a46rvp5i57qyr09vr7x4nndxkmcfjl45";
}; };
postPatch = '' postPatch = ''

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -17,6 +17,8 @@ stdenv.mkDerivation rec {
"spawn_setuid_fails" "spawn_setgid_fails" "fs_chown" # user namespaces "spawn_setuid_fails" "spawn_setgid_fails" "fs_chown" # user namespaces
"getaddrinfo_fail" "getaddrinfo_fail_sync" "getaddrinfo_fail" "getaddrinfo_fail_sync"
"threadpool_multiple_event_loops" # times out on slow machines "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 [ ] ++ stdenv.lib.optionals stdenv.isDarwin [
# Sometimes: timeout (no output), failed uv_listen. Someone # Sometimes: timeout (no output), failed uv_listen. Someone
# should report these failures to libuv team. There tests should # should report these failures to libuv team. There tests should

View File

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

View File

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

View File

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

View File

@ -1,17 +1,19 @@
{ stdenv, fetchPypi, buildPythonPackage, unidecode, regex, isPy3k }: { stdenv, fetchPypi, buildPythonPackage, python, text-unidecode }:
buildPythonPackage rec { buildPythonPackage rec {
pname = "python-slugify"; pname = "python-slugify";
version = "2.0.1"; version = "3.0.2";
src = fetchPypi { src = fetchPypi {
inherit pname version; 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; { meta = with stdenv.lib; {
homepage = https://github.com/un33k/python-slugify; homepage = https://github.com/un33k/python-slugify;

View File

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

View File

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

View File

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

View File

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

View File

@ -184,6 +184,7 @@ let
VGA_SWITCHEROO = yes; # Hybrid graphics support VGA_SWITCHEROO = yes; # Hybrid graphics support
DRM_GMA600 = yes; DRM_GMA600 = yes;
DRM_GMA3600 = yes; DRM_GMA3600 = yes;
DRM_VMWGFX_FBCON = yes;
# necessary for amdgpu polaris support # necessary for amdgpu polaris support
DRM_AMD_POWERPLAY = whenBetween "4.5" "4.9" yes; DRM_AMD_POWERPLAY = whenBetween "4.5" "4.9" yes;
# (experimental) amdgpu support for verde and newer chipsets # (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 cp $buildRoot/{.config,Module.symvers} $dev/lib/modules/${modDirVersion}/build
make modules_prepare $makeFlags "''${makeFlagsArray[@]}" O=$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) # Keep some extra files on some arches (powerpc, aarch64)
for f in arch/powerpc/lib/crtsavres.o arch/arm64/kernel/ftrace-mod.o; do for f in arch/powerpc/lib/crtsavres.o arch/arm64/kernel/ftrace-mod.o; do
if [ -f "$buildRoot/$f" ]; then if [ -f "$buildRoot/$f" ]; then

View File

@ -1,5 +1,5 @@
{ stdenv, fetchpatch, fetchFromGitHub, autoreconfHook, libxslt, libxml2 { 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 , pam ? null, glibcCross ? null
}: }:
@ -30,12 +30,21 @@ stdenv.mkDerivation rec {
buildInputs = stdenv.lib.optional (pam != null && stdenv.isLinux) pam; buildInputs = stdenv.lib.optional (pam != null && stdenv.isLinux) pam;
nativeBuildInputs = [autoreconfHook libxslt libxml2 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 = patches =
[ ./keep-path.patch [ ./keep-path.patch
# Obtain XML resources from XML catalog (patch adapted from gtk-doc)
./respect-xml-catalog-files-var.patch
dots_in_usernames 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. # The nix daemon often forbids even creating set[ug]id files.
@ -52,11 +61,6 @@ stdenv.mkDerivation rec {
preConfigure = '' preConfigure = ''
export ac_cv_func_setpgrp_void=yes export ac_cv_func_setpgrp_void=yes
export shadow_cv_logdir=/var/log 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 = [ 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 ] version = lib.concatStringsSep "." ([ majorVersion ]
++ lib.optional (patchVersion != "") patchVersion); ++ lib.optional (patchVersion != "") patchVersion);
majorVersion = "2.33"; majorVersion = "2.33";
patchVersion = "1"; patchVersion = "2";
in stdenv.mkDerivation rec { in stdenv.mkDerivation rec {
name = "util-linux-${version}"; name = "util-linux-${version}";
src = fetchurl { src = fetchurl {
url = "mirror://kernel/linux/utils/util-linux/v${majorVersion}/${name}.tar.xz"; url = "mirror://kernel/linux/utils/util-linux/v${majorVersion}/${name}.tar.xz";
sha256 = "08ggvgrb59m5jbq29950xxirsgv4xj3nwsc7vf82nyg1nvrxjjy1"; sha256 = "15yf2dh4jd1kg6066hydlgdhhs2j3na13qld8yx30qngqvmfh6v3";
}; };
patches = [ patches = [
@ -41,15 +41,19 @@ in stdenv.mkDerivation rec {
"--disable-use-tty-group" "--disable-use-tty-group"
"--enable-fs-paths-default=/run/wrappers/bin:/run/current-system/sw/bin:/sbin" "--enable-fs-paths-default=/run/wrappers/bin:/run/current-system/sw/bin:/sbin"
"--disable-makeinstall-setuid" "--disable-makeinstall-chown" "--disable-makeinstall-setuid" "--disable-makeinstall-chown"
"--disable-su" # provided by shadow
(lib.withFeature (ncurses != null) "ncursesw") (lib.withFeature (ncurses != null) "ncursesw")
(lib.withFeature (systemd != null) "systemd") (lib.withFeature (systemd != null) "systemd")
(lib.withFeatureAs (systemd != null) (lib.withFeatureAs (systemd != null)
"systemdsystemunitdir" "$(bin)/lib/systemd/system/") "systemdsystemunitdir" "${placeholder "bin"}/lib/systemd/system/")
] ++ lib.optional (stdenv.hostPlatform != stdenv.buildPlatform) ] ++ lib.optional (stdenv.hostPlatform != stdenv.buildPlatform)
"scanf_cv_type_modifier=ms" "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 ]; nativeBuildInputs = [ pkgconfig ];
buildInputs = buildInputs =
@ -58,9 +62,7 @@ in stdenv.mkDerivation rec {
doCheck = false; # "For development purpose only. Don't execute on production system!" doCheck = false; # "For development purpose only. Don't execute on production system!"
postInstall = '' postInstall = lib.optionalString minimal ''
rm "$bin/bin/su" # su should be supplied by the su package (shadow)
'' + lib.optionalString minimal ''
rm -rf $out/share/{locale,doc,bash-completion} rm -rf $out/share/{locale,doc,bash-completion}
''; '';

View File

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

File diff suppressed because it is too large Load Diff

View File

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

View File

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

View File

@ -1,28 +1,30 @@
#! /usr/bin/env nix-shell #! /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. # This script downloads Home Assistant's source tarball.
# Inside the homeassistant/components directory, each component has an associated .py file, # Inside the homeassistant/components directory, each integration has an associated manifest.json,
# specifying required packages and other components it depends on: # 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, # For all of these requirements and the dependencies' requirements,
# Nixpkgs' python3Packages are searched for appropriate names. # nixpkgs' python3Packages are searched for appropriate names.
# Then, a Nix attribute set mapping component name to dependencies is created. # Then, a Nix attribute set mapping integration name to dependencies is created.
from urllib.request import urlopen
import tempfile
from io import BytesIO from io import BytesIO
import tarfile
import importlib
import subprocess
import os
import sys
import json import json
import pathlib
import os
import re import re
import subprocess
import sys
import tempfile
import tarfile
from urllib.request import urlopen
COMPONENT_PREFIX = 'homeassistant.components' COMPONENT_PREFIX = 'homeassistant.components'
PKG_SET = 'python3Packages' PKG_SET = 'python3Packages'
@ -43,22 +45,17 @@ def get_version():
def parse_components(version='master'): def parse_components(version='master'):
components = {} components = {}
with tempfile.TemporaryDirectory() as tmp: 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) tarfile.open(fileobj=BytesIO(response.read())).extractall(tmp)
# Use part of a script from the Home Assistant codebase # Use part of a script from the Home Assistant codebase
sys.path.append(tmp + '/home-assistant-{}'.format(version)) sys.path.append(os.path.join(tmp, f'home-assistant-{version}'))
from script.gen_requirements_all import explore_module from script.hassfest.model import Integration
for package in explore_module(COMPONENT_PREFIX, True): integrations = Integration.load_dir(pathlib.Path(
# Remove 'homeassistant.components.' prefix os.path.join(tmp, f'home-assistant-{version}', 'homeassistant/components')
component = package[len(COMPONENT_PREFIX + '.'):] ))
try: for domain in sorted(integrations):
module = importlib.import_module(package) integration = integrations[domain]
components[component] = {} components[domain] = integration.manifest
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
return components return components
# Recursively get the requirements of a component and its dependencies # 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 , enableStatic ? false, enableShared ? true
}: }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "lz4-${version}"; pname = "lz4";
version = "1.9.1"; version = "1.9.1";
src = fetchFromGitHub { src = fetchFromGitHub {
sha256 = "1l1caxrik1hqs40vj3bpv1pikw6b74cfazv5c0v6g48zpcbmshl0"; sha256 = "1l1caxrik1hqs40vj3bpv1pikw6b74cfazv5c0v6g48zpcbmshl0";
rev = "v${version}"; rev = "v${version}";
repo = "lz4"; repo = pname;
owner = "lz4"; owner = pname;
}; };
patches = [
# Fix detection of Darwin
(fetchpatch {
url = "https://github.com/lz4/lz4/commit/024216ef7394b6411eeaa5b52d0cec9953a44249.patch";
sha256 = "0j0j2pr6pkplxf083hlwl5q4cfp86q3wd8mc64bcfcr7ysc5pzl3";
})
];
outputs = [ "out" "dev" ]; outputs = [ "out" "dev" ];
buildInputs = stdenv.lib.optional doCheck valgrind; 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, fetchurl}:
stdenv.mkDerivation { stdenv.mkDerivation rec {
name = "getopt-1.1.4"; pname = "getopt";
builder = ./builder.sh; version = "1.1.6";
src = fetchurl { src = fetchurl {
url = http://tarballs.nixos.org/getopt-1.1.4.tar.gz; url = "http://frodo.looijaard.name/system/files/software/${pname}/${pname}-${version}.tar.gz";
sha256 = "1arvjfzw6p310zbgv629w5hkyslrj44imf3r3s2r4ry2jfcks221"; sha256 = "1zn5kp8ar853rin0ay2j3p17blxy16agpp8wi8wfg4x98b31vgyh";
}; };
preBuild = ''
export buildFlags=CC="$CC" # for darwin makeFlags = [
''; "WITHOUT_GETTEXT=1"
"LIBCGETOPT=0"
"prefix=${placeholder "out"}"
"CC:=$(CC)"
];
meta = { meta = {
platforms = stdenv.lib.platforms.unix; 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 # Meson does not support using different directories during build and
# for installation like Autotools did with flags passed to make install. # for installation like Autotools did with flags passed to make install.
./fix-install-paths.patch ./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 = [ buildInputs = [
@ -91,10 +84,15 @@ in stdenv.mkDerivation rec {
postPatch = '' postPatch = ''
patchShebangs ./tools patchShebangs ./tools
patchShebangs libnm/generate-setting-docs.py patchShebangs libnm/generate-setting-docs.py
'';
substituteInPlace libnm/meson.build \ preBuild = ''
--subst-var-by DOCS_LD_PRELOAD "${libredirect}/lib/libredirect.so" \ # Our gobject-introspection patches make the shared library paths absolute
--subst-var-by DOCS_NIX_REDIRECTS "${placeholder "out"}/lib/libnm.so.0=$PWD/build/libnm/libnm.so.0" # 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 = '' 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 = '' prePatch = ''
substituteInPlace requirements.txt --replace "urllib3<1.24" "urllib3<2.0" \ substituteInPlace requirements.txt --replace "urllib3<1.24" "urllib3<2.0" \
--replace "six==1.11.0" "six<2.0.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 # Requires external resources

View File

@ -10621,13 +10621,9 @@ in
then callPackage ../development/libraries/gnu-efi { } then callPackage ../development/libraries/gnu-efi { }
else null; else null;
gnutls = callPackage gnutls = callPackage ../development/libraries/gnutls/default.nix {
(if stdenv.isDarwin inherit (darwin.apple_sdk.frameworks) Security;
# 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-kdh = callPackage ../development/libraries/gnutls-kdh/3.5.nix { gnutls-kdh = callPackage ../development/libraries/gnutls-kdh/3.5.nix {
gperf = gperf_3_0; gperf = gperf_3_0;
@ -16094,8 +16090,12 @@ in
docbook_xml_ebnf_dtd = callPackage ../data/sgml+xml/schemas/xml-dtd/docbook-ebnf { }; docbook_xml_ebnf_dtd = callPackage ../data/sgml+xml/schemas/xml-dtd/docbook-ebnf { };
inherit (callPackages ../data/sgml+xml/stylesheets/xslt/docbook-xsl { }) inherit (callPackages ../data/sgml+xml/stylesheets/xslt/docbook-xsl { })
docbook_xsl docbook-xsl-nons
docbook_xsl_ns; 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 { }; documentation-highlighter = callPackage ../misc/documentation-highlighter { };