Merge pull request #45941 from NixOS/staging-next

Staging next
This commit is contained in:
Frederik Rietdijk 2018-09-23 09:31:28 +02:00 committed by GitHub
commit 56853dc6d8
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
65 changed files with 17573 additions and 8641 deletions

View file

@ -91,7 +91,7 @@ $ nix-instantiate -E '(import <nixpkgsunstable> {}).gitFull'
<para> <para>
When enabled the <literal>iproute2</literal> will copy the files expected When enabled the <literal>iproute2</literal> will copy the files expected
by ip route (e.g., <filename>rt_tables</filename>) in by ip route (e.g., <filename>rt_tables</filename>) in
<filename>/run/iproute2</filename>. This allows to write aliases for <filename>/etc/iproute2</filename>. This allows to write aliases for
routing tables for instance. routing tables for instance.
</para> </para>
</listitem> </listitem>

View file

@ -4,20 +4,29 @@ with lib;
let let
cfg = config.networking.iproute2; cfg = config.networking.iproute2;
confDir = "/run/iproute2";
in in
{ {
options.networking.iproute2.enable = mkEnableOption "copy IP route configuration files"; options.networking.iproute2 = {
enable = mkEnableOption "copy IP route configuration files";
config = mkMerge [ rttablesExtraConfig = mkOption {
({ nixpkgs.config.iproute2.confDir = confDir; }) type = types.lines;
default = "";
(mkIf cfg.enable { description = ''
system.activationScripts.iproute2 = '' Verbatim lines to add to /etc/iproute2/rt_tables
cp -R ${pkgs.iproute}/etc/iproute2 ${confDir}
chmod -R 664 ${confDir}
chmod +x ${confDir}
''; '';
}) };
]; };
config = mkIf cfg.enable {
environment.etc."iproute2/bpf_pinning" = { mode = "0644"; text = fileContents "${pkgs.iproute}/etc/iproute2/bpf_pinning"; };
environment.etc."iproute2/ematch_map" = { mode = "0644"; text = fileContents "${pkgs.iproute}/etc/iproute2/ematch_map"; };
environment.etc."iproute2/group" = { mode = "0644"; text = fileContents "${pkgs.iproute}/etc/iproute2/group"; };
environment.etc."iproute2/nl_protos" = { mode = "0644"; text = fileContents "${pkgs.iproute}/etc/iproute2/nl_protos"; };
environment.etc."iproute2/rt_dsfield" = { mode = "0644"; text = fileContents "${pkgs.iproute}/etc/iproute2/rt_dsfield"; };
environment.etc."iproute2/rt_protos" = { mode = "0644"; text = fileContents "${pkgs.iproute}/etc/iproute2/rt_protos"; };
environment.etc."iproute2/rt_realms" = { mode = "0644"; text = fileContents "${pkgs.iproute}/etc/iproute2/rt_realms"; };
environment.etc."iproute2/rt_scopes" = { mode = "0644"; text = fileContents "${pkgs.iproute}/etc/iproute2/rt_scopes"; };
environment.etc."iproute2/rt_tables" = { mode = "0644"; text = (fileContents "${pkgs.iproute}/etc/iproute2/rt_tables")
+ (optionalString (cfg.rttablesExtraConfig != "") "\n\n${cfg.rttablesExtraConfig}"); };
};
} }

View file

@ -13,7 +13,7 @@ let
pkgs.attr pkgs.attr
pkgs.bashInteractive # bash with ncurses support pkgs.bashInteractive # bash with ncurses support
pkgs.bzip2 pkgs.bzip2
pkgs.coreutils pkgs.coreutils-full
pkgs.cpio pkgs.cpio
pkgs.curl pkgs.curl
pkgs.diffutils pkgs.diffutils

View file

@ -205,7 +205,7 @@ in {
}) })
]; ];
services.udev.packages = [ pkgs.libinput ]; services.udev.packages = [ pkgs.libinput.out ];
services.xserver.config = services.xserver.config =
'' ''

View file

@ -56,7 +56,7 @@ in stdenv.mkDerivation rec {
enableParallelBuilding = true; enableParallelBuilding = true;
postInstall = '' postInstall = ''
${glib.dev}/bin/glib-compile-schemas $out/share/glib-2.0/schemas glib-compile-schemas "$out"/share/glib-2.0/schemas
''; '';
patches = [ ./0001-Remove-post-install-script-that-hardcodes-paths.patch ]; patches = [ ./0001-Remove-post-install-script-that-hardcodes-paths.patch ];

View file

@ -1,4 +1,4 @@
{ stdenv, fetchurl, gdal, cmake, qt4, flex, bison, proj, geos, xlibsWrapper, sqlite, gsl { stdenv, fetchurl, fetchpatch, gdal, cmake, qt4, flex, bison, proj, geos, xlibsWrapper, sqlite, gsl
, qwt, fcgi, python2Packages, libspatialindex, libspatialite, qscintilla, postgresql, makeWrapper , qwt, fcgi, python2Packages, libspatialindex, libspatialite, qscintilla, postgresql, makeWrapper
, qjson, qca2, txt2tags, openssl, darwin, pkgconfig , qjson, qca2, txt2tags, openssl, darwin, pkgconfig
, withGrass ? true, grass, IOKit, ApplicationServices , withGrass ? true, grass, IOKit, ApplicationServices
@ -37,6 +37,14 @@ stdenv.mkDerivation rec {
sha256 = "00b3a2hfn3i7bdx7x96vz2nj0976vpkhid4ss7n8c33fdvw3k82a"; sha256 = "00b3a2hfn3i7bdx7x96vz2nj0976vpkhid4ss7n8c33fdvw3k82a";
}; };
patches = [
# https://github.com/qgis/QGIS/pull/7765
(fetchpatch {
url = "https://github.com/qgis/QGIS/commit/6b61ef361a77f057dc29eb07463007bd9012b253.patch";
sha256 = "1xibcahm18n7nxff1xvwwzjf505hvhiw5dk12is7aclv49h0rdf7";
})
];
# CMAKE_FIND_FRAMEWORK=never stops the installer choosing system # CMAKE_FIND_FRAMEWORK=never stops the installer choosing system
# installed frameworks # installed frameworks
# QGIS_MACAPP_BUNDLE=0 stops the installer copying the Qt binaries into the # QGIS_MACAPP_BUNDLE=0 stops the installer copying the Qt binaries into the

View file

@ -2,17 +2,22 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
version = "2017-01-12"; version = "2018-08-15";
name = "pbrt-v3-${version}"; name = "pbrt-v3-${version}";
src = fetchFromGitHub { src = fetchFromGitHub {
rev = "35b6da3429526f2026fe5e5ebaf36d593e113028"; rev = "86b5821308088deea70b207bc8c22219d0103d65";
owner = "mmp"; owner = "mmp";
repo = "pbrt-v3"; repo = "pbrt-v3";
sha256 = "10lvbph13p6ilzqb8sgrvn9gg1zmi8wpy3hhjbqp8dnsa4x0mhj7"; sha256 = "0f7ivsczba6zfk5f0bba1js6dcwf6w6jrkiby147qp1sx5k35cv8";
fetchSubmodules = true; fetchSubmodules = true;
}; };
patches = [
# https://github.com/mmp/pbrt-v3/issues/196
./openexr-cmake-3.12.patch
];
buildInputs = [ git flex bison cmake zlib ]; buildInputs = [ git flex bison cmake zlib ];
meta = with stdenv.lib; { meta = with stdenv.lib; {

View file

@ -0,0 +1,26 @@
diff -ur a/src/ext/openexr/CMakeLists.txt b/src/ext/openexr/CMakeLists.txt
--- a/src/ext/openexr/CMakeLists.txt 1970-01-01 09:00:01.000000000 +0900
+++ b/src/ext/openexr/CMakeLists.txt 2018-08-31 21:44:56.490714484 +0900
@@ -26,22 +26,4 @@
${CMAKE_CURRENT_BINARY_DIR}/IlmBase/config
)
-add_custom_target(CopyIlmBaseLibs
- COMMAND ${CMAKE_COMMAND} -E copy_directory
- ${CMAKE_CURRENT_BINARY_DIR}/IlmBase/Half/$<CONFIGURATION>
- ${CMAKE_CURRENT_BINARY_DIR}/OpenEXR/IlmImf/$<CONFIGURATION>
- COMMAND ${CMAKE_COMMAND} -E copy_directory
- ${CMAKE_CURRENT_BINARY_DIR}/IlmBase/IlmThread/$<CONFIGURATION>
- ${CMAKE_CURRENT_BINARY_DIR}/OpenEXR/IlmImf/$<CONFIGURATION>
- COMMAND ${CMAKE_COMMAND} -E copy_directory
- ${CMAKE_CURRENT_BINARY_DIR}/IlmBase/Iex/$<CONFIGURATION>
- ${CMAKE_CURRENT_BINARY_DIR}/OpenEXR/IlmImf/$<CONFIGURATION>
- COMMAND ${CMAKE_COMMAND} -E copy_directory
- ${CMAKE_CURRENT_BINARY_DIR}/IlmBase/Imath/$<CONFIGURATION>
- ${CMAKE_CURRENT_BINARY_DIR}/OpenEXR/IlmImf/$<CONFIGURATION>
-)
-add_dependencies(CopyIlmBaseLibs Iex Imath IlmThread Half)
-
add_subdirectory(OpenEXR OpenEXR)
-add_dependencies(b44ExpLogTable CopyIlmBaseLibs)
-add_dependencies(dwaLookups CopyIlmBaseLibs)

View file

@ -1,4 +1,4 @@
{ stdenv, fetchFromGitHub, cmake, libarcus, stb }: { stdenv, fetchFromGitHub, fetchpatch, cmake, libarcus, stb }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "curaengine-${version}"; name = "curaengine-${version}";
@ -11,6 +11,14 @@ stdenv.mkDerivation rec {
sha256 = "083jmhzmb60rmqw0fhbnlxyblzkmpn3k6zc75xq90x5g3h60wib4"; sha256 = "083jmhzmb60rmqw0fhbnlxyblzkmpn3k6zc75xq90x5g3h60wib4";
}; };
patches = [
# Fixed upstream, but not yet released
(fetchpatch {
url = "https://github.com/Ultimaker/CuraEngine/commit/5aad55bf67e52ce5bdb27a3925af8a4cab441b38.patch";
sha256 = "1hxbslzhkvdg8p33mvlbrpw62gwfqpsdbfca6yhdng9hifl86j3f";
})
];
nativeBuildInputs = [ cmake ]; nativeBuildInputs = [ cmake ];
buildInputs = [ libarcus stb ]; buildInputs = [ libarcus stb ];

View file

@ -36,8 +36,7 @@ stdenv.mkDerivation rec {
++ optional (ngspiceSupport) "-DKICAD_SPICE=ON"; ++ optional (ngspiceSupport) "-DKICAD_SPICE=ON";
nativeBuildInputs = [ nativeBuildInputs = [
# https://www.mail-archive.com/kicad-developers@lists.launchpad.net/msg29840.html cmake
(cmake.override {majorVersion = "3.10";})
doxygen doxygen
pkgconfig pkgconfig
wrapGAppsHook wrapGAppsHook

View file

@ -38,8 +38,7 @@ stdenv.mkDerivation rec {
"-DCMAKE_CXX_FLAGS=-I${wxPython}/include/wx-3.0" "-DCMAKE_CXX_FLAGS=-I${wxPython}/include/wx-3.0"
]; ];
# https://www.mail-archive.com/kicad-developers@lists.launchpad.net/msg29840.html nativeBuildInputs = [ cmake doxygen pkgconfig ];
nativeBuildInputs = [ (cmake.override {majorVersion = "3.10";}) doxygen pkgconfig ];
buildInputs = [ buildInputs = [
libGLU_combined zlib libX11 wxGTK pcre libXdmcp gettext glew glm libpthreadstubs libGLU_combined zlib libX11 wxGTK pcre libXdmcp gettext glew glm libpthreadstubs
cairo curl openssl boost cairo curl openssl boost

View file

@ -44,7 +44,7 @@ in stdenv.mkDerivation {
--run "set -x; cd $out/toolbox" \ --run "set -x; cd $out/toolbox" \
--add-flags "-data ~/.tla-toolbox" \ --add-flags "-data ~/.tla-toolbox" \
--prefix PATH : "${jre}/bin" \ --prefix PATH : "${jre}/bin" \
--prefix LD_LIBRARY_PATH : "${swt}/lib:${gtk}/lib:${libXtst}/lib:${glib}/lib" --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ swt gtk libXtst glib ]}"
echo -e "\nCreating TLA Toolbox icons..." echo -e "\nCreating TLA Toolbox icons..."
pushd "$src" pushd "$src"

View file

@ -37,7 +37,7 @@ stdenv.mkDerivation rec {
''; '';
preFixup = '' preFixup = ''
substituteInPlace $out/bin/gnome-documents --replace gapplication "${glib.dev}/bin/gapplication" substituteInPlace $out/bin/gnome-documents --replace gapplication "${glib.bin}/bin/gapplication"
''; '';
passthru = { passthru = {

View file

@ -39,7 +39,7 @@ stdenv.mkDerivation rec {
postInstall = '' postInstall = ''
mkdir -p $out/share/gsettings-schemas/$name mkdir -p $out/share/gsettings-schemas/$name
mv $out/share/glib-2.0 $out/share/gsettings-schemas/$name mv $out/share/glib-2.0 $out/share/gsettings-schemas/$name
${glib.dev}/bin/glib-compile-schemas $out/share/gsettings-schemas/$name/glib-2.0/schemas glib-compile-schemas "$out/share/gsettings-schemas/$name/glib-2.0/schemas"
''; '';
meta = with stdenv.lib; { meta = with stdenv.lib; {

View file

@ -85,7 +85,7 @@ in stdenv.mkDerivation rec {
''; '';
postInstall = '' postInstall = ''
${glib.dev}/bin/glib-compile-schemas $out/share/glib-2.0/schemas glib-compile-schemas "$out/share/glib-2.0/schemas"
''; '';
passthru = { passthru = {

View file

@ -40,7 +40,7 @@ in stdenv.mkDerivation rec {
''; '';
postInstall = '' postInstall = ''
${glib.dev}/bin/glib-compile-schemas $out/share/glib-2.0/schemas glib-compile-schemas "$out/share/glib-2.0/schemas"
''; '';
passthru = { passthru = {

View file

@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
buildPhase = '' buildPhase = ''
${bash}/bin/bash ./update-locale.sh ${bash}/bin/bash ./update-locale.sh
${glib.dev}/bin/glib-compile-schemas --strict --targetdir=caffeine@patapon.info/schemas/ caffeine@patapon.info/schemas glib-compile-schemas --strict --targetdir=caffeine@patapon.info/schemas/ caffeine@patapon.info/schemas
''; '';
installPhase = '' installPhase = ''

View file

@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
]; ];
buildPhase = '' buildPhase = ''
${glib.dev}/bin/glib-compile-schemas --targetdir=${uuid}/schemas ${uuid}/schemas glib-compile-schemas --targetdir=${uuid}/schemas ${uuid}/schemas
''; '';
installPhase = '' installPhase = ''

View file

@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
]; ];
buildPhase = '' buildPhase = ''
${glib.dev}/bin/glib-compile-schemas --targetdir=${uuid}/schemas ${uuid}/schemas glib-compile-schemas --targetdir=${uuid}/schemas ${uuid}/schemas
''; '';
installPhase = '' installPhase = ''

View file

@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
schemas_dir="$share_dir/gsettings-schemas/${name}/glib-2.0/schemas" schemas_dir="$share_dir/gsettings-schemas/${name}/glib-2.0/schemas"
mkdir -p "$schemas_dir" mkdir -p "$schemas_dir"
mv schemas/* "$schemas_dir" # fix Emacs syntax highlighting: */ mv schemas/* "$schemas_dir" # fix Emacs syntax highlighting: */
${glib.dev}/bin/glib-compile-schemas "$schemas_dir" glib-compile-schemas "$schemas_dir"
locale_dir="$share_dir/locale" locale_dir="$share_dir/locale"
mkdir -p "$locale_dir" mkdir -p "$locale_dir"

View file

@ -74,6 +74,7 @@ let
] ++ optional (link != "static") "runtime-link=${runtime-link}" ] ++ optional (link != "static") "runtime-link=${runtime-link}"
++ optional (variant == "release") "debug-symbols=off" ++ optional (variant == "release") "debug-symbols=off"
++ optional (toolset != null) "toolset=${toolset}" ++ optional (toolset != null) "toolset=${toolset}"
++ optional (!enablePython) "--without-python"
++ optional (mpi != null || stdenv.hostPlatform != stdenv.buildPlatform) "--user-config=user-config.jam" ++ optional (mpi != null || stdenv.hostPlatform != stdenv.buildPlatform) "--user-config=user-config.jam"
++ optionals (stdenv.hostPlatform.libc == "msvcrt") [ ++ optionals (stdenv.hostPlatform.libc == "msvcrt") [
"threadapi=win32" "threadapi=win32"

View file

@ -61,7 +61,7 @@ stdenv.mkDerivation rec {
./gobject_init_on_demand.patch ./gobject_init_on_demand.patch
] ++ [ ./schema-override-variable.patch ]; ] ++ [ ./schema-override-variable.patch ];
outputs = [ "out" "dev" "devdoc" ]; outputs = [ "bin" "out" "dev" "devdoc" ];
outputBin = "dev"; outputBin = "dev";
setupHook = ./setup-hook.sh; setupHook = ./setup-hook.sh;
@ -104,12 +104,16 @@ stdenv.mkDerivation rec {
DETERMINISTIC_BUILD = 1; DETERMINISTIC_BUILD = 1;
postInstall = '' postInstall = ''
mkdir -p $bin/bin
for app in gapplication gdbus gio gsettings; do
mv "$dev/bin/$app" "$bin/bin"
done
moveToOutput "share/glib-2.0" "$dev" moveToOutput "share/glib-2.0" "$dev"
substituteInPlace "$dev/bin/gdbus-codegen" --replace "$out" "$dev" substituteInPlace "$dev/bin/gdbus-codegen" --replace "$out" "$dev"
sed -i "$dev/bin/glib-gettextize" -e "s|^gettext_dir=.*|gettext_dir=$dev/share/glib-2.0/gettext|" sed -i "$dev/bin/glib-gettextize" -e "s|^gettext_dir=.*|gettext_dir=$dev/share/glib-2.0/gettext|"
''
# This file is *included* in gtk3 and would introduce runtime reference via __FILE__. # This file is *included* in gtk3 and would introduce runtime reference via __FILE__.
+ ''
sed '1i#line 1 "${name}/include/glib-2.0/gobject/gobjectnotifyqueue.c"' \ sed '1i#line 1 "${name}/include/glib-2.0/gobject/gobjectnotifyqueue.c"' \
-i "$dev"/include/glib-2.0/gobject/gobjectnotifyqueue.c -i "$dev"/include/glib-2.0/gobject/gobjectnotifyqueue.c
''; '';

View file

@ -17,7 +17,8 @@ let
inherit (stdenv.lib) optional; inherit (stdenv.lib) optional;
in in
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "gst-plugins-bad-1.14.0"; name = "gst-plugins-bad-${version}";
version = "1.14.2";
meta = with stdenv.lib; { meta = with stdenv.lib; {
description = "Gstreamer Bad Plugins"; description = "Gstreamer Bad Plugins";
@ -53,7 +54,7 @@ stdenv.mkDerivation rec {
src = fetchurl { src = fetchurl {
url = "${meta.homepage}/src/gst-plugins-bad/${name}.tar.xz"; url = "${meta.homepage}/src/gst-plugins-bad/${name}.tar.xz";
sha256 = "17sgzgx1c54k5rzz7ljyz3is0n7yj56k74vv05h8z1gjnsnjnppd"; sha256 = "1bqy3dn7q4kdkd4lqznyly8fv854d0hhncv88jk6ai4rf3dbgyil";
}; };
outputs = [ "out" "dev" ]; outputs = [ "out" "dev" ];

View file

@ -9,7 +9,8 @@
, enableCdparanoia ? (!stdenv.isDarwin), cdparanoia }: , enableCdparanoia ? (!stdenv.isDarwin), cdparanoia }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "gst-plugins-base-1.14.0"; name = "gst-plugins-base-${version}";
version = "1.14.2";
meta = with lib; { meta = with lib; {
description = "Base plugins and helper libraries"; description = "Base plugins and helper libraries";
@ -21,7 +22,7 @@ stdenv.mkDerivation rec {
src = fetchurl { src = fetchurl {
url = "${meta.homepage}/src/gst-plugins-base/${name}.tar.xz"; url = "${meta.homepage}/src/gst-plugins-base/${name}.tar.xz";
sha256 = "0h39bcp7fcd9kgb189lxr8l0hm0almvzpzgpdh1jpq2nzxh4d43y"; sha256 = "0z0wy0p0nxxqhsis3n517d6ykldm02g7rca9fhq9kxb9m05yidx4";
}; };
outputs = [ "out" "dev" ]; outputs = [ "out" "dev" ];

View file

@ -6,7 +6,8 @@
}: }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "gstreamer-1.14.0"; name = "gstreamer-${version}";
version = "1.14.2";
meta = with lib ;{ meta = with lib ;{
description = "Open source multimedia framework"; description = "Open source multimedia framework";
@ -18,7 +19,7 @@ stdenv.mkDerivation rec {
src = fetchurl { src = fetchurl {
url = "${meta.homepage}/src/gstreamer/${name}.tar.xz"; url = "${meta.homepage}/src/gstreamer/${name}.tar.xz";
sha256 = "0vj6k01lp2yva6rfd95fkyng9jdr62gkz0x8d2l81dyly1ki6dpw"; sha256 = "029fi3v0vrravysgfwhfkrb3ndg64sjmigbb0iwr7wpkk5r15mjb";
}; };
patches = [ patches = [

View file

@ -4,7 +4,8 @@
}: }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "gstreamer-editing-services-1.14.0"; name = "gstreamer-editing-services-${version}";
version = "1.14.2";
meta = with stdenv.lib; { meta = with stdenv.lib; {
description = "Library for creation of audio/video non-linear editors"; description = "Library for creation of audio/video non-linear editors";
@ -15,7 +16,7 @@ stdenv.mkDerivation rec {
src = fetchurl { src = fetchurl {
url = "${meta.homepage}/src/gstreamer-editing-services/${name}.tar.xz"; url = "${meta.homepage}/src/gstreamer-editing-services/${name}.tar.xz";
sha256 = "14cdd6y9p4k603hsnyhdjw2igg855gwpx0362jmg8k1gagmr0pwd"; sha256 = "0d0zqvgxp51mmffz5vvscsdzqqw9mjsv6bnk6ivg2dxnkv8q1ch5";
}; };
outputs = [ "out" "dev" ]; outputs = [ "out" "dev" ];

View file

@ -15,7 +15,8 @@ let
inherit (stdenv.lib) optional optionals; inherit (stdenv.lib) optional optionals;
in in
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "gst-plugins-good-1.14.0"; name = "gst-plugins-good-${version}";
version = "1.14.2";
meta = with stdenv.lib; { meta = with stdenv.lib; {
description = "Gstreamer Good Plugins"; description = "Gstreamer Good Plugins";
@ -32,7 +33,7 @@ stdenv.mkDerivation rec {
src = fetchurl { src = fetchurl {
url = "${meta.homepage}/src/gst-plugins-good/${name}.tar.xz"; url = "${meta.homepage}/src/gst-plugins-good/${name}.tar.xz";
sha256 = "1226s30cf7pqg3fj8shd20l7sp93yw9sqplgxns3m3ajgms3byka"; sha256 = "1bfa4n6xhr4v4wga8pv1y00rm1aka498snw6kgszy2w624l5wmy0";
}; };
outputs = [ "out" "dev" ]; outputs = [ "out" "dev" ];

View file

@ -9,7 +9,8 @@
assert withSystemLibav -> libav != null; assert withSystemLibav -> libav != null;
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "gst-libav-1.14.0"; name = "gst-libav-${version}";
version = "1.14.2";
meta = { meta = {
homepage = https://gstreamer.freedesktop.org; homepage = https://gstreamer.freedesktop.org;
@ -19,7 +20,7 @@ stdenv.mkDerivation rec {
src = fetchurl { src = fetchurl {
url = "${meta.homepage}/src/gst-libav/${name}.tar.xz"; url = "${meta.homepage}/src/gst-libav/${name}.tar.xz";
sha256 = "12gglx6rarnxbaj0h1wivlgkv467n1bz2bwjigplciq57r6ln4zv"; sha256 = "1pknqpjxq1l3vlprdsmxxwk0lwqa555fqd543k9vphngqlwiqdca";
}; };
outputs = [ "out" "dev" ]; outputs = [ "out" "dev" ];

View file

@ -3,7 +3,8 @@
}: }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "gst-rtsp-server-1.14.0"; name = "gst-rtsp-server-${version}";
version = "1.14.2";
meta = with stdenv.lib; { meta = with stdenv.lib; {
description = "Gstreamer RTSP server"; description = "Gstreamer RTSP server";
@ -18,7 +19,7 @@ stdenv.mkDerivation rec {
src = fetchurl { src = fetchurl {
url = "${meta.homepage}/src/gst-rtsp-server/${name}.tar.xz"; url = "${meta.homepage}/src/gst-rtsp-server/${name}.tar.xz";
sha256 = "0mlp9ms5hfbyzyvmc9xgi7934g4zrh1sbgky2p9zc5fqprvs0rbb"; sha256 = "161c49hg21xpkdw5ppc7ljbg6kyslxd1y3v1shsg7ibarxapff7p";
}; };
outputs = [ "out" "dev" ]; outputs = [ "out" "dev" ];

View file

@ -6,7 +6,8 @@
}: }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "gst-plugins-ugly-1.14.0"; name = "gst-plugins-ugly-${version}";
version = "1.14.2";
meta = with lib; { meta = with lib; {
description = "Gstreamer Ugly Plugins"; description = "Gstreamer Ugly Plugins";
@ -24,7 +25,7 @@ stdenv.mkDerivation rec {
src = fetchurl { src = fetchurl {
url = "${meta.homepage}/src/gst-plugins-ugly/${name}.tar.xz"; url = "${meta.homepage}/src/gst-plugins-ugly/${name}.tar.xz";
sha256 = "1la2nny9hfw3rf3wvqggkg8ivn52qrqqs4n4mqz4ppm2r1gymf9z"; sha256 = "0s9xrz8knfv06fj1nbv3iq4xj7dj4cnzj3xvgb7zs89rv7crgq2m";
}; };
outputs = [ "out" "dev" ]; outputs = [ "out" "dev" ];

View file

@ -5,11 +5,11 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "gst-vaapi-${version}"; name = "gst-vaapi-${version}";
version = "1.14.0"; version = "1.14.2";
src = fetchurl { src = fetchurl {
url = "${meta.homepage}/src/gstreamer-vaapi/gstreamer-vaapi-${version}.tar.xz"; url = "${meta.homepage}/src/gstreamer-vaapi/gstreamer-vaapi-${version}.tar.xz";
sha256 = "1whxk428badv8ibji00sn6hj17cp8l9n93rr948bz2gjbq41zqz4"; sha256 = "12hdyfma2lnfj38dj6y891vsxnxrlbqjbd36xx13mgasgzi6843z";
}; };
outputs = [ "out" "dev" ]; outputs = [ "out" "dev" ];

View file

@ -3,7 +3,8 @@
}: }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "gst-validate-1.14.0"; name = "gst-validate-${version}";
version = "1.14.2";
meta = { meta = {
description = "Integration testing infrastructure for the GStreamer framework"; description = "Integration testing infrastructure for the GStreamer framework";
@ -14,7 +15,7 @@ stdenv.mkDerivation rec {
src = fetchurl { src = fetchurl {
url = "${meta.homepage}/src/gst-validate/${name}.tar.xz"; url = "${meta.homepage}/src/gst-validate/${name}.tar.xz";
sha256 = "1pzzxqkv1spjrzpzpazdm2h4s2wk7gg5gag8nxj5v2gjfyzhiprk"; sha256 = "17zilvmwv13l6rbj0a7dnbg4kz5bwwa1gshaibpqbvvhahz457pa";
}; };
outputs = [ "out" "dev" ]; outputs = [ "out" "dev" ];

View file

@ -37,8 +37,8 @@ stdenv.mkDerivation rec {
--replace libpango-1.0.0.dylib ${pango.out}/lib/libpango-1.0.0.dylib \ --replace libpango-1.0.0.dylib ${pango.out}/lib/libpango-1.0.0.dylib \
--replace libpangocairo-1.0.0.dylib ${pango.out}/lib/libpangocairo-1.0.0.dylib --replace libpangocairo-1.0.0.dylib ${pango.out}/lib/libpangocairo-1.0.0.dylib
substituteInPlace generated/gtkd/gobject/c/functions.d \ substituteInPlace generated/gtkd/gobject/c/functions.d \
--replace libgobject-2.0.so.0 ${glib}/lib/libgobject-2.0.so.0 \ --replace libgobject-2.0.so.0 ${glib.out}/lib/libgobject-2.0.so.0 \
--replace libgobject-2.0.0.dylib ${glib}/lib/libgobject-2.0.0.dylib --replace libgobject-2.0.0.dylib ${glib.out}/lib/libgobject-2.0.0.dylib
substituteInPlace generated/gtkd/rsvg/c/functions.d \ substituteInPlace generated/gtkd/rsvg/c/functions.d \
--replace librsvg-2.so.2 ${librsvg}/lib/librsvg-2.so.2 \ --replace librsvg-2.so.2 ${librsvg}/lib/librsvg-2.so.2 \
--replace librsvg-2.2.dylib ${librsvg}/lib/librsvg-2.2.dylib --replace librsvg-2.2.dylib ${librsvg}/lib/librsvg-2.2.dylib
@ -63,15 +63,15 @@ stdenv.mkDerivation rec {
--replace libgtksourceview-3.0.so.1 ${gtksourceview}/lib/libgtksourceview-3.0.so.1 \ --replace libgtksourceview-3.0.so.1 ${gtksourceview}/lib/libgtksourceview-3.0.so.1 \
--replace libgtksourceview-3.0.1.dylib ${gtksourceview}/lib/libgtksourceview-3.0.1.dylib --replace libgtksourceview-3.0.1.dylib ${gtksourceview}/lib/libgtksourceview-3.0.1.dylib
substituteInPlace generated/gtkd/glib/c/functions.d \ substituteInPlace generated/gtkd/glib/c/functions.d \
--replace libglib-2.0.so.0 ${glib}/lib/libglib-2.0.so.0 \ --replace libglib-2.0.so.0 ${glib.out}/lib/libglib-2.0.so.0 \
--replace libgmodule-2.0.so.0 ${glib}/lib/libgmodule-2.0.so.0 \ --replace libgmodule-2.0.so.0 ${glib.out}/lib/libgmodule-2.0.so.0 \
--replace libgobject-2.0.so.0 ${glib}/lib/libgobject-2.0.so.0 \ --replace libgobject-2.0.so.0 ${glib.out}/lib/libgobject-2.0.so.0 \
--replace libglib-2.0.0.dylib ${glib}/lib/libglib-2.0.0.dylib \ --replace libglib-2.0.0.dylib ${glib.out}/lib/libglib-2.0.0.dylib \
--replace libgmodule-2.0.0.dylib ${glib}/lib/libgmodule-2.0.0.dylib \ --replace libgmodule-2.0.0.dylib ${glib.out}/lib/libgmodule-2.0.0.dylib \
--replace libgobject-2.0.0.dylib ${glib}/lib/libgobject-2.0.0.dylib --replace libgobject-2.0.0.dylib ${glib.out}/lib/libgobject-2.0.0.dylib
substituteInPlace generated/gtkd/gio/c/functions.d \ substituteInPlace generated/gtkd/gio/c/functions.d \
--replace libgio-2.0.so.0 ${glib}/lib/libgio-2.0.so.0 \ --replace libgio-2.0.so.0 ${glib.out}/lib/libgio-2.0.so.0 \
--replace libgio-2.0.0.dylib ${glib}/lib/libgio-2.0.0.dylib --replace libgio-2.0.0.dylib ${glib.out}/lib/libgio-2.0.0.dylib
substituteInPlace generated/gstreamer/gstreamer/c/functions.d \ substituteInPlace generated/gstreamer/gstreamer/c/functions.d \
--replace libgstreamer-1.0.so.0 ${gstreamer}/lib/libgstreamer-1.0.so.0 \ --replace libgstreamer-1.0.so.0 ${gstreamer}/lib/libgstreamer-1.0.so.0 \
--replace libgstreamer-1.0.0.dylib ${gstreamer}/lib/libgstreamer-1.0.0.dylib --replace libgstreamer-1.0.0.dylib ${gstreamer}/lib/libgstreamer-1.0.0.dylib

View file

@ -17,21 +17,13 @@
}; };
in stdenv.mkDerivation (rec { in stdenv.mkDerivation (rec {
name = "libgpg-error-${version}"; name = "libgpg-error-${version}";
version = "1.28"; version = "1.32";
src = fetchurl { src = fetchurl {
url = "mirror://gnupg/libgpg-error/${name}.tar.bz2"; url = "mirror://gnupg/libgpg-error/${name}.tar.bz2";
sha256 = "0jfsfnh9bxlxiwxws60yah4ybjw2hshmvqp31pri4m4h8ivrbnry"; sha256 = "1jj08ns4sh1hmafqp1giskvdicdz18la516va26jycy27kkwaif3";
}; };
patches = [
# Fix builds on ARM, AArch64
(fetchpatch {
url = "https://github.com/gpg/libgpg-error/commit/791177de023574223eddf7288eb7c5a0721ac623.patch";
sha256 = "0vqfw0ak1j37wf6sk9y9vmdyk3kxdxkldhs0bv2waa76s11cmdx0";
})
];
postPatch = '' postPatch = ''
sed '/BUILD_TIMESTAMP=/s/=.*/=1970-01-01T00:01+0000/' -i ./configure sed '/BUILD_TIMESTAMP=/s/=.*/=1970-01-01T00:01+0000/' -i ./configure
'' + lib.optionalString (stdenv.hostPlatform.isAarch32 && stdenv.buildPlatform != stdenv.hostPlatform) '' '' + lib.optionalString (stdenv.hostPlatform.isAarch32 && stdenv.buildPlatform != stdenv.hostPlatform) ''

View file

@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
sha256 = "01nb1shnl871d939wgfd7nc9svclcnfjfhlq64b4yns2dvcr24gk"; sha256 = "01nb1shnl871d939wgfd7nc9svclcnfjfhlq64b4yns2dvcr24gk";
}; };
outputs = [ "out" "dev" ]; outputs = [ "bin" "out" "dev" ];
mesonFlags = [ mesonFlags = [
(mkFlag documentationSupport "documentation") (mkFlag documentationSupport "documentation")
@ -31,6 +31,10 @@ stdenv.mkDerivation rec {
(mkFlag testsSupport "tests") (mkFlag testsSupport "tests")
]; ];
preConfigure = ''
mesonFlags="$mesonFlags --libexecdir=$bin/libexec"
'';
nativeBuildInputs = [ pkgconfig meson ninja ] nativeBuildInputs = [ pkgconfig meson ninja ]
++ optionals documentationSupport [ doxygen graphviz ] ++ optionals documentationSupport [ doxygen graphviz ]
++ optionals testsSupport [ check valgrind python3Packages.pyparsing ]; ++ optionals testsSupport [ check valgrind python3Packages.pyparsing ];

View file

@ -1,14 +1,14 @@
{ stdenv, lib, fetchpatch, fetchFromGitHub, autoconf, automake, libtool, pkgconfig }: { stdenv, lib, fetchpatch, fetchFromGitHub, autoconf, automake, libtool, pkgconfig }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
version = "1.21.0"; version = "1.23.0";
name = "libuv-${version}"; name = "libuv-${version}";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "libuv"; owner = "libuv";
repo = "libuv"; repo = "libuv";
rev = "v${version}"; rev = "v${version}";
sha256 = "1jjg34ppnlrnb634q9mla7whl7rm9xmjgnzckrznqcycwzir074b"; sha256 = "1yfx99f7qnq3qvcgbnih27dgwfg6c51xw6n6n2c3c1wb3mh95im0";
}; };
patches = [ patches = [

View file

@ -1,37 +1,45 @@
{ stdenv, fetchurl, pkgconfig, libXft, cairo, harfbuzz { stdenv, fetchurl, pkgconfig, libXft, cairo, harfbuzz
, libintl, gobjectIntrospection, darwin, fribidi , libintl, gobjectIntrospection, darwin, fribidi, gnome3
, gtk-doc, docbook_xsl, docbook_xml_dtd_43, makeFontsConf, freefont_ttf
}: }:
with stdenv.lib; with stdenv.lib;
let let
ver_maj = "1.42"; pname = "pango";
ver_min = "1"; version = "1.42.4";
in in stdenv.mkDerivation rec {
stdenv.mkDerivation rec { name = "${pname}-${version}";
name = "pango-${ver_maj}.${ver_min}";
src = fetchurl { src = fetchurl {
url = "mirror://gnome/sources/pango/${ver_maj}/${name}.tar.xz"; url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
sha256 = "0cnfgcya3wbs9m8g44cl5ww6wbp6qbw96qvsgkr8ymwqn9b6fnli"; sha256 = "17bwb7dgbncrfsmchlib03k9n3xaalirb39g3yb43gg8cg6p8aqx";
}; };
outputs = [ "bin" "dev" "out" "devdoc" ]; outputs = [ "bin" "dev" "out" "devdoc" ];
buildInputs = [ gobjectIntrospection ]; nativeBuildInputs = [ pkgconfig gobjectIntrospection gtk-doc docbook_xsl docbook_xml_dtd_43 ];
nativeBuildInputs = [ pkgconfig ] buildInputs = optionals stdenv.isDarwin (with darwin.apple_sdk.frameworks; [
++ optionals stdenv.isDarwin (with darwin.apple_sdk.frameworks; [ Carbon
Carbon CoreGraphics
CoreGraphics CoreText
CoreText ]);
]);
propagatedBuildInputs = [ cairo harfbuzz libXft libintl fribidi ]; propagatedBuildInputs = [ cairo harfbuzz libXft libintl fribidi ];
enableParallelBuilding = true; enableParallelBuilding = true;
configureFlags = optional stdenv.isDarwin "--without-x"; # Fontconfig error: Cannot load default config file
FONTCONFIG_FILE = makeFontsConf {
fontDirectories = [ freefont_ttf ];
};
doCheck = false; # fails 1 out of 12 tests with "Fontconfig error: Cannot load default config file" doCheck = false; # /layout/valid-1.markup: FAIL
passthru = {
updateScript = gnome3.updateScript {
packageName = pname;
};
};
meta = with stdenv.lib; { meta = with stdenv.lib; {
description = "A library for laying out and rendering of text, with an emphasis on internationalization"; description = "A library for laying out and rendering of text, with an emphasis on internationalization";

View file

@ -1,5 +1,5 @@
{ stdenv, fetchurl, cmake, zlib, freetype, libjpeg, libtiff, fontconfig { stdenv, fetchurl, cmake, zlib, freetype, libjpeg, libtiff, fontconfig
, openssl, libpng, lua5, pkgconfig, libidn, expat , openssl, libpng, lua5, pkgconfig, libidn, expat, fetchpatch
, gcc5 # TODO(@Dridus) remove this at next hash break , gcc5 # TODO(@Dridus) remove this at next hash break
}: }:
@ -13,6 +13,15 @@ stdenv.mkDerivation rec {
propagatedBuildInputs = [ zlib freetype libjpeg libtiff fontconfig openssl libpng libidn expat ]; propagatedBuildInputs = [ zlib freetype libjpeg libtiff fontconfig openssl libpng libidn expat ];
patches = [
# https://sourceforge.net/p/podofo/tickets/24/
(fetchpatch {
url = "https://sourceforge.net/p/podofo/tickets/24/attachment/podofo-cmake-3.12.patch";
extraPrefix = "";
sha256 = "087h51x60zrakzx09baan77hwz99cwb5l1j802r5g4wj7pbjz0mb";
})
];
# TODO(@Dridus) remove the ++ ghc5 at next hash break # TODO(@Dridus) remove the ++ ghc5 at next hash break
nativeBuildInputs = [ cmake pkgconfig ] ++ stdenv.lib.optional stdenv.isLinux gcc5; nativeBuildInputs = [ cmake pkgconfig ] ++ stdenv.lib.optional stdenv.isLinux gcc5;

View file

@ -1,5 +1,5 @@
{ stdenv, lib, fetchurl, cmake, ninja, pkgconfig, libiconv, libintl { stdenv, lib, fetchurl, cmake, ninja, pkgconfig, libiconv, libintl
, zlib, curl, cairo, freetype, fontconfig, lcms, libjpeg, openjpeg , zlib, curl, cairo, freetype, fontconfig, lcms, libjpeg, openjpeg, fetchpatch
, withData ? true, poppler_data , withData ? true, poppler_data
, qt5Support ? false, qtbase ? null , qt5Support ? false, qtbase ? null
, introspectionSupport ? false, gobjectIntrospection ? null , introspectionSupport ? false, gobjectIntrospection ? null
@ -21,6 +21,14 @@ stdenv.mkDerivation rec {
outputs = [ "out" "dev" ]; outputs = [ "out" "dev" ];
patches = [
(fetchpatch {
name = "CVE-2018-13988";
url = "https://cgit.freedesktop.org/poppler/poppler/patch/?id=004e3c10df0abda214f0c293f9e269fdd979c5ee";
sha256 = "1l8713s57xc6g81bldw934rsfm140fqc7ggd50ha5mxdl1b3app2";
})
];
buildInputs = [ libiconv libintl ] ++ lib.optional withData poppler_data; buildInputs = [ libiconv libintl ] ++ lib.optional withData poppler_data;
# TODO: reduce propagation to necessary libs # TODO: reduce propagation to necessary libs

View file

@ -8,11 +8,11 @@ assert expat != null;
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "wayland-${version}"; name = "wayland-${version}";
version = "1.15.0"; version = "1.16.0";
src = fetchurl { src = fetchurl {
url = "https://wayland.freedesktop.org/releases/${name}.tar.xz"; url = "https://wayland.freedesktop.org/releases/${name}.tar.xz";
sha256 = "1c5fnys8hi71cnzjv5k7j0r8gx80p0yyqlrpmn06mmarhnxvwgzb"; sha256 = "1xajhxad43izq9f7sbww1hlg42nayijy8xnp21kgpk09c6sw4wjf";
}; };
configureFlags = [ "--with-scanner" "--disable-documentation" ]; configureFlags = [ "--with-scanner" "--disable-documentation" ];

View file

@ -4,7 +4,7 @@
let let
pname = "gst-python"; pname = "gst-python";
version = "1.14.0"; version = "1.14.2";
name = "${pname}-${version}"; name = "${pname}-${version}";
in buildPythonPackage rec { in buildPythonPackage rec {
inherit pname version; inherit pname version;
@ -15,7 +15,7 @@ in buildPythonPackage rec {
"${meta.homepage}/src/gst-python/${name}.tar.xz" "${meta.homepage}/src/gst-python/${name}.tar.xz"
"mirror://gentoo/distfiles/${name}.tar.xz" "mirror://gentoo/distfiles/${name}.tar.xz"
]; ];
sha256 = "1rlr6gl4lg97ng4jxh3gb2ldmywm15vwsa72nvggr8qa2l8q3fg0"; sha256 = "08nb011acyvlz48fqh8c084k0dlssz9b7wha7zzk797inidbwh6w";
}; };
outputs = [ "out" "dev" ]; outputs = [ "out" "dev" ];

View file

@ -33,7 +33,7 @@ stdenv.mkDerivation rec {
sha256 = "136z63ff83hnwd247cq4m8m8164pklzyl5i2csf5h6wd8p01pdkj"; sha256 = "136z63ff83hnwd247cq4m8m8164pklzyl5i2csf5h6wd8p01pdkj";
})] ++ })] ++
# Don't search in non-Nix locations such as /usr, but do search in our libc. # Don't search in non-Nix locations such as /usr, but do search in our libc.
[ ./search-path.patch ] ++ [ ./search-path-2.8.patch ] ++
optional (stdenv.hostPlatform != stdenv.buildPlatform) (fetchurl { optional (stdenv.hostPlatform != stdenv.buildPlatform) (fetchurl {
name = "fix-darwin-cross-compile.patch"; name = "fix-darwin-cross-compile.patch";
url = "https://public.kitware.com/Bug/file_download.php?" url = "https://public.kitware.com/Bug/file_download.php?"

View file

@ -1,16 +1,15 @@
diff --git a/Source/cmGlobalXCodeGenerator.cxx b/Source/cmGlobalXCodeGenerator.cxx diff -ur cmake-3.12.1/Source/cmGlobalXCodeGenerator.cxx cmake-3.12.1-patched/Source/cmGlobalXCodeGenerator.cxx
index 2008a0b..5a3e8ee 100644 --- cmake-3.12.1/Source/cmGlobalXCodeGenerator.cxx 2018-08-09 21:14:08.000000000 +0900
--- a/Source/cmGlobalXCodeGenerator.cxx +++ cmake-3.12.1-patched/Source/cmGlobalXCodeGenerator.cxx 2018-08-12 02:47:28.719691934 +0900
+++ b/Source/cmGlobalXCodeGenerator.cxx
@@ -35,11 +35,6 @@ @@ -35,11 +35,6 @@
struct cmLinkImplementation; struct cmLinkImplementation;
-#if defined(CMAKE_BUILD_WITH_CMAKE) && defined(__APPLE__) -#if defined(CMAKE_BUILD_WITH_CMAKE) && defined(__APPLE__)
-#define HAVE_APPLICATION_SERVICES -# define HAVE_APPLICATION_SERVICES
-#include <ApplicationServices/ApplicationServices.h> -# include <ApplicationServices/ApplicationServices.h>
-#endif -#endif
- -
#if defined(CMAKE_BUILD_WITH_CMAKE) #if defined(CMAKE_BUILD_WITH_CMAKE)
#include "cmXMLParser.h" # include "cmXMLParser.h"

View file

@ -1,6 +1,5 @@
{ stdenv, fetchurl, fetchpatch, pkgconfig { stdenv, fetchurl, fetchpatch, pkgconfig
, bzip2, curl, expat, libarchive, xz, zlib, libuv, rhash , bzip2, curl, expat, libarchive, xz, zlib, libuv, rhash
, majorVersion ? "3.11"
# darwin attributes # darwin attributes
, ps , ps
, isBootstrap ? false , isBootstrap ? false
@ -15,27 +14,12 @@ assert useQt4 -> withQt5 == false;
with stdenv.lib; with stdenv.lib;
with (
{
"3.11" = {
minorVersion = "2";
sha256 = "0j2jpx94lnqx5w59i9xihl56hf6ghk04438rqhh7lk1bryxj5g2y";
};
"3.10" = {
minorVersion = "2";
sha256 = "80d0faad4ab56de07aa21a7fc692c88c4ce6156d42b0579c6962004a70a3218b";
};
"3.9" = {
minorVersion = "6";
sha256 = "7410851a783a41b521214ad987bb534a7e4a65e059651a2514e6ebfc8f46b218";
};
}.${majorVersion}
or (abort ''Unsupported configuration for cmake: majorVersion = "${majorVersion}";'')
);
let let
os = stdenv.lib.optionalString; os = stdenv.lib.optionalString;
majorVersion = "3.12";
minorVersion = "1";
# from https://cmake.org/files/v3.12/cmake-3.12.1-SHA-256.txt
sha256 = "1ckswlaid3p2is1a80fmr4hgwpfsiif66giyx1z9ayhxx0n5qgf5";
version = "${majorVersion}.${minorVersion}"; version = "${majorVersion}.${minorVersion}";
in in
@ -46,7 +30,6 @@ stdenv.mkDerivation rec {
src = fetchurl { src = fetchurl {
url = "${meta.homepage}files/v${majorVersion}/cmake-${version}.tar.gz"; url = "${meta.homepage}files/v${majorVersion}/cmake-${version}.tar.gz";
# from https://cmake.org/files/v3.10/cmake-3.10.2-SHA-256.txt
inherit sha256; inherit sha256;
}; };
@ -55,16 +38,16 @@ stdenv.mkDerivation rec {
--replace '"-framework CoreServices"' '""' --replace '"-framework CoreServices"' '""'
''; '';
# Don't search in non-Nix locations such as /usr, but do search in our libc. patches = [
patches = [ ./search-path-3.9.patch ] # Don't search in non-Nix locations such as /usr, but do search in our libc.
++ optional (versionOlder version "3.12") (fetchpatch { ./search-path.patch
name = "cmake-3.11-libuv-1.21.patch";
url = https://gitlab.kitware.com/cmake/cmake/commit/889033b5c6847cf1f7bd789384405d59dc333bf6.patch;
sha256 = "0683zbyb3bicaxqzrj4wgdan6x08k30m20kkmpjvw30nr6a8r6xq";
})
# Don't depend on frameworks. # Don't depend on frameworks.
++ optional (useSharedLibraries && majorVersion == "3.11") ./application-services.patch # TODO: remove conditional ./application-services.patch
++ optional stdenv.isCygwin ./3.2.2-cygwin.patch;
# Derived from https://github.com/libuv/libuv/commit/1a5d4f08238dd532c3718e210078de1186a5920d
./libuv-application-services.patch
] ++ optional stdenv.isCygwin ./3.2.2-cygwin.patch;
outputs = [ "out" ]; outputs = [ "out" ];
setOutputFlags = false; setOutputFlags = false;

View file

@ -0,0 +1,83 @@
diff -ur cmake-3.12.1/Utilities/cmlibuv/CMakeLists.txt cmake-3.12.1-patched/Utilities/cmlibuv/CMakeLists.txt
--- cmake-3.12.1/Utilities/cmlibuv/CMakeLists.txt 2018-08-09 21:14:08.000000000 +0900
+++ cmake-3.12.1-patched/Utilities/cmlibuv/CMakeLists.txt 2018-08-13 10:14:53.000000000 +0900
@@ -173,6 +173,22 @@
src/unix/kqueue.c
src/unix/proctitle.c
)
+
+ include(CheckIncludeFile)
+
+ check_include_file("ApplicationServices/ApplicationServices.h" HAVE_ApplicationServices)
+ if (HAVE_ApplicationServices)
+ list(APPEND uv_defines
+ HAVE_APPLICATIONSERVICES_APPLICATIONSERVICES_H=1
+ )
+ endif()
+
+ check_include_file("CoreServices/CoreServices.h" HAVE_CoreServices)
+ if (HAVE_CoreServices)
+ list(APPEND uv_defines
+ HAVE_CORESERVICES_CORESERVICES_H=1
+ )
+ endif()
endif()
if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
diff -ur cmake-3.12.1/Utilities/cmlibuv/src/unix/darwin-proctitle.c cmake-3.12.1-patched/Utilities/cmlibuv/src/unix/darwin-proctitle.c
--- cmake-3.12.1/Utilities/cmlibuv/src/unix/darwin-proctitle.c 2018-08-09 21:14:08.000000000 +0900
+++ cmake-3.12.1-patched/Utilities/cmlibuv/src/unix/darwin-proctitle.c 2018-08-13 10:01:29.000000000 +0900
@@ -26,9 +26,7 @@
#include <stdlib.h>
#include <string.h>
-#include <TargetConditionals.h>
-
-#if !TARGET_OS_IPHONE
+#if HAVE_APPLICATIONSERVICES_APPLICATIONSERVICES_H
# include <CoreFoundation/CoreFoundation.h>
# include <ApplicationServices/ApplicationServices.h>
#endif
@@ -58,7 +56,7 @@
int uv__set_process_title(const char* title) {
-#if TARGET_OS_IPHONE
+#if !HAVE_APPLICATIONSERVICES_APPLICATIONSERVICES_H
return uv__pthread_setname_np(title);
#else
CFStringRef (*pCFStringCreateWithCString)(CFAllocatorRef,
@@ -205,5 +203,5 @@
dlclose(application_services_handle);
return err;
-#endif /* !TARGET_OS_IPHONE */
+#endif /* HAVE_APPLICATIONSERVICES_APPLICATIONSERVICES_H */
}
diff -ur cmake-3.12.1/Utilities/cmlibuv/src/unix/fsevents.c cmake-3.12.1-patched/Utilities/cmlibuv/src/unix/fsevents.c
--- cmake-3.12.1/Utilities/cmlibuv/src/unix/fsevents.c 2018-08-09 21:14:08.000000000 +0900
+++ cmake-3.12.1-patched/Utilities/cmlibuv/src/unix/fsevents.c 2018-08-13 10:01:29.000000000 +0900
@@ -21,7 +21,7 @@
#include "uv.h"
#include "internal.h"
-#if TARGET_OS_IPHONE
+#if !HAVE_CORESERVICES_CORESERVICES_H
/* iOS (currently) doesn't provide the FSEvents-API (nor CoreServices) */
@@ -38,7 +38,7 @@
void uv__fsevents_loop_delete(uv_loop_t* loop) {
}
-#else /* TARGET_OS_IPHONE */
+#else /* !HAVE_CORESERVICES_CORESERVICES_H */
#include <dlfcn.h>
#include <assert.h>
@@ -916,4 +916,4 @@
return 0;
}
-#endif /* TARGET_OS_IPHONE */
+#endif /* !HAVE_CORESERVICES_CORESERVICES_H */

View file

@ -0,0 +1,92 @@
diff -ru3 cmake-2.8.12.2/Modules/Platform/Linux.cmake cmake-2.8.12.2-new/Modules/Platform/Linux.cmake
--- cmake-2.8.12.2/Modules/Platform/Linux.cmake 2014-01-16 21:15:08.000000000 +0400
+++ cmake-2.8.12.2-new/Modules/Platform/Linux.cmake 2016-04-13 22:00:32.928575740 +0300
@@ -36,22 +36,11 @@
# checking the platform every time. This option is advanced enough
# that only package maintainers should need to adjust it. They are
# capable of providing a setting on the command line.
- if(EXISTS "/etc/debian_version")
- set(CMAKE_INSTALL_SO_NO_EXE 1 CACHE INTERNAL
- "Install .so files without execute permission.")
- else()
- set(CMAKE_INSTALL_SO_NO_EXE 0 CACHE INTERNAL
- "Install .so files without execute permission.")
- endif()
+ set(CMAKE_INSTALL_SO_NO_EXE 0 CACHE INTERNAL
+ "Install .so files without execute permission.")
endif()
# Match multiarch library directory names.
set(CMAKE_LIBRARY_ARCHITECTURE_REGEX "[a-z0-9_]+(-[a-z0-9_]+)?-linux-gnu[a-z0-9_]*")
include(Platform/UnixPaths)
-
-# Debian has lib64 paths only for compatibility so they should not be
-# searched.
-if(EXISTS "/etc/debian_version")
- set_property(GLOBAL PROPERTY FIND_LIBRARY_USE_LIB64_PATHS FALSE)
-endif()
diff -ru3 cmake-2.8.12.2/Modules/Platform/UnixPaths.cmake cmake-2.8.12.2-new/Modules/Platform/UnixPaths.cmake
--- cmake-2.8.12.2/Modules/Platform/UnixPaths.cmake 2014-01-16 21:15:08.000000000 +0400
+++ cmake-2.8.12.2-new/Modules/Platform/UnixPaths.cmake 2016-04-14 00:09:10.106362636 +0300
@@ -32,9 +32,6 @@
# List common installation prefixes. These will be used for all
# search types.
list(APPEND CMAKE_SYSTEM_PREFIX_PATH
- # Standard
- /usr/local /usr /
-
# CMake install location
"${_CMAKE_INSTALL_DIR}"
@@ -44,44 +41,26 @@
# List common include file locations not under the common prefixes.
list(APPEND CMAKE_SYSTEM_INCLUDE_PATH
- # Windows API on Cygwin
- /usr/include/w32api
-
- # X11
- /usr/X11R6/include /usr/include/X11
-
- # Other
- /usr/pkg/include
- /opt/csw/include /opt/include
- /usr/openwin/include
+ @libc_dev@/include
)
list(APPEND CMAKE_SYSTEM_LIBRARY_PATH
- # Windows API on Cygwin
- /usr/lib/w32api
-
- # X11
- /usr/X11R6/lib /usr/lib/X11
-
- # Other
- /usr/pkg/lib
- /opt/csw/lib /opt/lib
- /usr/openwin/lib
+ @libc_lib@/lib
)
list(APPEND CMAKE_SYSTEM_PROGRAM_PATH
- /usr/pkg/bin
+ @libc_bin@/bin
)
list(APPEND CMAKE_PLATFORM_IMPLICIT_LINK_DIRECTORIES
- /lib /usr/lib /usr/lib32 /usr/lib64
+ @libc_lib@/lib
)
list(APPEND CMAKE_C_IMPLICIT_INCLUDE_DIRECTORIES
- /usr/include
+ @libc_dev@/include
)
list(APPEND CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES
- /usr/include
+ @libc_dev@/include
)
# Enable use of lib64 search path variants by default.

View file

@ -1,62 +0,0 @@
diff -ur cmake-3.9.1/Modules/Platform/UnixPaths.cmake cmake-3.9.1-mod/Modules/Platform/UnixPaths.cmake
--- cmake-3.9.1/Modules/Platform/UnixPaths.cmake 2017-08-10 13:36:32.000000000 +0000
+++ cmake-3.9.1-mod/Modules/Platform/UnixPaths.cmake 2017-09-03 01:24:31.901473539 +0000
@@ -22,9 +22,6 @@
# List common installation prefixes. These will be used for all
# search types.
list(APPEND CMAKE_SYSTEM_PREFIX_PATH
- # Standard
- /usr/local /usr /
-
# CMake install location
"${_CMAKE_INSTALL_DIR}"
)
@@ -43,31 +40,26 @@
# Non "standard" but common install prefixes
list(APPEND CMAKE_SYSTEM_PREFIX_PATH
- /usr/X11R6
- /usr/pkg
- /opt
)
# List common include file locations not under the common prefixes.
list(APPEND CMAKE_SYSTEM_INCLUDE_PATH
- # X11
- /usr/include/X11
+ @libc_dev@/include
)
list(APPEND CMAKE_SYSTEM_LIBRARY_PATH
- # X11
- /usr/lib/X11
+ @libc_lib@/lib
)
list(APPEND CMAKE_PLATFORM_IMPLICIT_LINK_DIRECTORIES
- /lib /lib32 /lib64 /usr/lib /usr/lib32 /usr/lib64
+ @libc_lib@/lib
)
list(APPEND CMAKE_C_IMPLICIT_INCLUDE_DIRECTORIES
- /usr/include
+ @libc_dev@/include
)
list(APPEND CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES
- /usr/include
+ @libc_dev@/include
)
# Enable use of lib32 and lib64 search path variants by default.
diff -ur cmake-3.9.1/Modules/Platform/WindowsPaths.cmake cmake-3.9.1-mod/Modules/Platform/WindowsPaths.cmake
--- cmake-3.9.1/Modules/Platform/WindowsPaths.cmake 2017-08-10 13:36:32.000000000 +0000
+++ cmake-3.9.1-mod/Modules/Platform/WindowsPaths.cmake 2017-09-03 01:19:32.808355986 +0000
@@ -66,7 +66,7 @@
if(CMAKE_CROSSCOMPILING AND NOT CMAKE_HOST_SYSTEM_NAME MATCHES "Windows")
# MinGW (useful when cross compiling from linux with CMAKE_FIND_ROOT_PATH set)
- list(APPEND CMAKE_SYSTEM_PREFIX_PATH /)
+ # list(APPEND CMAKE_SYSTEM_PREFIX_PATH /)
endif()
list(APPEND CMAKE_SYSTEM_INCLUDE_PATH

View file

@ -1,35 +1,7 @@
diff -ru3 cmake-2.8.12.2/Modules/Platform/Linux.cmake cmake-2.8.12.2-new/Modules/Platform/Linux.cmake diff -ur cmake-3.9.1/Modules/Platform/UnixPaths.cmake cmake-3.9.1-mod/Modules/Platform/UnixPaths.cmake
--- cmake-2.8.12.2/Modules/Platform/Linux.cmake 2014-01-16 21:15:08.000000000 +0400 --- cmake-3.9.1/Modules/Platform/UnixPaths.cmake 2017-08-10 13:36:32.000000000 +0000
+++ cmake-2.8.12.2-new/Modules/Platform/Linux.cmake 2016-04-13 22:00:32.928575740 +0300 +++ cmake-3.9.1-mod/Modules/Platform/UnixPaths.cmake 2017-09-03 01:24:31.901473539 +0000
@@ -36,22 +36,11 @@ @@ -22,9 +22,6 @@
# checking the platform every time. This option is advanced enough
# that only package maintainers should need to adjust it. They are
# capable of providing a setting on the command line.
- if(EXISTS "/etc/debian_version")
- set(CMAKE_INSTALL_SO_NO_EXE 1 CACHE INTERNAL
- "Install .so files without execute permission.")
- else()
- set(CMAKE_INSTALL_SO_NO_EXE 0 CACHE INTERNAL
- "Install .so files without execute permission.")
- endif()
+ set(CMAKE_INSTALL_SO_NO_EXE 0 CACHE INTERNAL
+ "Install .so files without execute permission.")
endif()
# Match multiarch library directory names.
set(CMAKE_LIBRARY_ARCHITECTURE_REGEX "[a-z0-9_]+(-[a-z0-9_]+)?-linux-gnu[a-z0-9_]*")
include(Platform/UnixPaths)
-
-# Debian has lib64 paths only for compatibility so they should not be
-# searched.
-if(EXISTS "/etc/debian_version")
- set_property(GLOBAL PROPERTY FIND_LIBRARY_USE_LIB64_PATHS FALSE)
-endif()
diff -ru3 cmake-2.8.12.2/Modules/Platform/UnixPaths.cmake cmake-2.8.12.2-new/Modules/Platform/UnixPaths.cmake
--- cmake-2.8.12.2/Modules/Platform/UnixPaths.cmake 2014-01-16 21:15:08.000000000 +0400
+++ cmake-2.8.12.2-new/Modules/Platform/UnixPaths.cmake 2016-04-14 00:09:10.106362636 +0300
@@ -32,9 +32,6 @@
# List common installation prefixes. These will be used for all # List common installation prefixes. These will be used for all
# search types. # search types.
list(APPEND CMAKE_SYSTEM_PREFIX_PATH list(APPEND CMAKE_SYSTEM_PREFIX_PATH
@ -38,45 +10,31 @@ diff -ru3 cmake-2.8.12.2/Modules/Platform/UnixPaths.cmake cmake-2.8.12.2-new/Mod
- -
# CMake install location # CMake install location
"${_CMAKE_INSTALL_DIR}" "${_CMAKE_INSTALL_DIR}"
)
@@ -43,31 +40,26 @@
@@ -44,44 +41,26 @@ # Non "standard" but common install prefixes
list(APPEND CMAKE_SYSTEM_PREFIX_PATH
- /usr/X11R6
- /usr/pkg
- /opt
)
# List common include file locations not under the common prefixes. # List common include file locations not under the common prefixes.
list(APPEND CMAKE_SYSTEM_INCLUDE_PATH list(APPEND CMAKE_SYSTEM_INCLUDE_PATH
- # Windows API on Cygwin
- /usr/include/w32api
-
- # X11 - # X11
- /usr/X11R6/include /usr/include/X11 - /usr/include/X11
-
- # Other
- /usr/pkg/include
- /opt/csw/include /opt/include
- /usr/openwin/include
+ @libc_dev@/include + @libc_dev@/include
) )
list(APPEND CMAKE_SYSTEM_LIBRARY_PATH list(APPEND CMAKE_SYSTEM_LIBRARY_PATH
- # Windows API on Cygwin
- /usr/lib/w32api
-
- # X11 - # X11
- /usr/X11R6/lib /usr/lib/X11 - /usr/lib/X11
-
- # Other
- /usr/pkg/lib
- /opt/csw/lib /opt/lib
- /usr/openwin/lib
+ @libc_lib@/lib + @libc_lib@/lib
) )
list(APPEND CMAKE_SYSTEM_PROGRAM_PATH
- /usr/pkg/bin
+ @libc_bin@/bin
)
list(APPEND CMAKE_PLATFORM_IMPLICIT_LINK_DIRECTORIES list(APPEND CMAKE_PLATFORM_IMPLICIT_LINK_DIRECTORIES
- /lib /usr/lib /usr/lib32 /usr/lib64 - /lib /lib32 /lib64 /usr/lib /usr/lib32 /usr/lib64
+ @libc_lib@/lib + @libc_lib@/lib
) )
@ -89,4 +47,16 @@ diff -ru3 cmake-2.8.12.2/Modules/Platform/UnixPaths.cmake cmake-2.8.12.2-new/Mod
+ @libc_dev@/include + @libc_dev@/include
) )
# Enable use of lib64 search path variants by default. # Enable use of lib32 and lib64 search path variants by default.
diff -ur cmake-3.9.1/Modules/Platform/WindowsPaths.cmake cmake-3.9.1-mod/Modules/Platform/WindowsPaths.cmake
--- cmake-3.9.1/Modules/Platform/WindowsPaths.cmake 2017-08-10 13:36:32.000000000 +0000
+++ cmake-3.9.1-mod/Modules/Platform/WindowsPaths.cmake 2017-09-03 01:19:32.808355986 +0000
@@ -66,7 +66,7 @@
if(CMAKE_CROSSCOMPILING AND NOT CMAKE_HOST_SYSTEM_NAME MATCHES "Windows")
# MinGW (useful when cross compiling from linux with CMAKE_FIND_ROOT_PATH set)
- list(APPEND CMAKE_SYSTEM_PREFIX_PATH /)
+ # list(APPEND CMAKE_SYSTEM_PREFIX_PATH /)
endif()
list(APPEND CMAKE_SYSTEM_INCLUDE_PATH

View file

@ -1,6 +1,4 @@
{ fetchurl, stdenv, config, flex, bash, bison, db, iptables, pkgconfig { fetchurl, stdenv, flex, bash, bison, db, iptables, pkgconfig, libelf }:
, libelf
}:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "iproute2-${version}"; name = "iproute2-${version}";
@ -28,9 +26,8 @@ stdenv.mkDerivation rec {
"HDRDIR=$(TMPDIR)/include/iproute2" # Don't install headers "HDRDIR=$(TMPDIR)/include/iproute2" # Don't install headers
]; ];
# enable iproute2 module if you want this folder to be created
buildFlags = [ buildFlags = [
"CONFDIR=${config.iproute2.confDir or "/run/iproute2"}" "CONFDIR=/etc/iproute2"
]; ];
installFlags = [ installFlags = [

View file

@ -1,10 +1,16 @@
{ lib, stdenv, fetchurl, ncurses, pkgconfig { lib, stdenv, fetchurl, ncurses, pkgconfig
# `ps` with systemd support is able to properly report different
# attributes like unit name, so we want to have it on linux.
, withSystemd ? stdenv.isLinux
, systemd ? null
# procps is mostly Linux-only. Most commands require a running Linux # procps is mostly Linux-only. Most commands require a running Linux
# system (or very similar like that found in Cygwin). The one # system (or very similar like that found in Cygwin). The one
# exception is watch which is portable enough to run on pretty much # exception is watch which is portable enough to run on pretty much
# any UNIX-compatible system. # any UNIX-compatible system.
, watchOnly ? !(stdenv.isLinux || stdenv.isCygwin) }: , watchOnly ? !(stdenv.isLinux || stdenv.isCygwin)
}:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "procps-${version}"; name = "procps-${version}";
@ -16,7 +22,8 @@ stdenv.mkDerivation rec {
sha256 = "0r84kwa5fl0sjdashcn4vh7hgfm7ahdcysig3mcjvpmkzi7p9g8h"; sha256 = "0r84kwa5fl0sjdashcn4vh7hgfm7ahdcysig3mcjvpmkzi7p9g8h";
}; };
buildInputs = [ ncurses ]; buildInputs = [ ncurses ]
++ lib.optional withSystemd systemd;
nativeBuildInputs = [ pkgconfig ]; nativeBuildInputs = [ pkgconfig ];
makeFlags = [ "usrbin_execdir=$(out)/bin" ] makeFlags = [ "usrbin_execdir=$(out)/bin" ]
@ -26,6 +33,7 @@ stdenv.mkDerivation rec {
# Too red # Too red
configureFlags = [ "--disable-modern-top" ] configureFlags = [ "--disable-modern-top" ]
++ lib.optional withSystemd "--with-systemd"
++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform)
[ "ac_cv_func_malloc_0_nonnull=yes" [ "ac_cv_func_malloc_0_nonnull=yes"
"ac_cv_func_realloc_0_nonnull=yes" ]; "ac_cv_func_realloc_0_nonnull=yes" ];

View file

@ -26,8 +26,8 @@ in stdenv.mkDerivation rec {
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "NixOS"; owner = "NixOS";
repo = "systemd"; repo = "systemd";
rev = "67c553805a9ebee2dce7c3a350b4abd4d7a489c2"; rev = "21efe60844fda21039c052442076dabcf8643a90";
sha256 = "114vq71gcddi4qm2hyrj5jsas9599s0h5mg65jfpvxhfyaw54cpv"; sha256 = "0aqifjsb0kaxnqy5nlmzvyzgfd99lm60k1494lbnnk8ahdh8ab07";
}; };
outputs = [ "out" "lib" "man" "dev" ]; outputs = [ "out" "lib" "man" "dev" ];

View file

@ -190,7 +190,6 @@ in rec {
stage1 = prevStage: let stage1 = prevStage: let
persistent = self: super: with prevStage; { persistent = self: super: with prevStage; {
cmake = super.cmake.override { cmake = super.cmake.override {
majorVersion = "3.9"; # FIXME: update ApplicationServices patch
isBootstrap = true; isBootstrap = true;
useSharedLibraries = false; useSharedLibraries = false;
}; };

View file

@ -14,6 +14,10 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ pkgconfig texinfo ]; nativeBuildInputs = [ pkgconfig texinfo ];
buildInputs = [ libuuid gettext ]; buildInputs = [ libuuid gettext ];
# Only use glibc's __GNUC_PREREQ(X,Y) (checks if compiler is gcc version >= X.Y) when using glibc
NIX_CFLAGS_COMPILE = stdenv.lib.optional (stdenv.hostPlatform.libc != "glibc")
"-D__GNUC_PREREQ(maj,min)=0";
configureFlags = configureFlags =
if stdenv.isLinux then [ if stdenv.isLinux then [
"--enable-elf-shlibs" "--enable-symlink-install" "--enable-relative-symlinks" "--enable-elf-shlibs" "--enable-symlink-install" "--enable-relative-symlinks"

View file

@ -1,8 +1,11 @@
{ stdenv, lib, buildPackages { stdenv, lib, buildPackages
, autoreconfHook, texinfo, fetchurl, perl, xz, libiconv, gmp ? null , autoreconfHook, texinfo, fetchurl, perl, xz, libiconv, gmp ? null
, aclSupport ? false, acl ? null , aclSupport ? stdenv.isLinux, acl ? null
, attrSupport ? false, attr ? null , attrSupport ? stdenv.isLinux, attr ? null
, selinuxSupport? false, libselinux ? null, libsepol ? null , selinuxSupport? false, libselinux ? null, libsepol ? null
# No openssl in default version, so openssl-induced rebuilds aren't too big.
# It makes *sum functions significantly faster.
, minimal ? true, withOpenssl ? !minimal, openssl ? null
, withPrefix ? false , withPrefix ? false
, singleBinary ? "symlinks" # you can also pass "shebangs" or false , singleBinary ? "symlinks" # you can also pass "shebangs" or false
}: }:
@ -36,9 +39,10 @@ stdenv.mkDerivation rec {
outputs = [ "out" "info" ]; outputs = [ "out" "info" ];
nativeBuildInputs = [ perl xz.bin ]; nativeBuildInputs = [ perl xz.bin ];
configureFlags = configureFlags = [ "--with-packager=https://NixOS.org" ]
optional (singleBinary != false) ++ optional (singleBinary != false)
("--enable-single-binary" + optionalString (isString singleBinary) "=${singleBinary}") ("--enable-single-binary" + optionalString (isString singleBinary) "=${singleBinary}")
++ optional withOpenssl "--with-openssl"
++ optional stdenv.hostPlatform.isSunOS "ac_cv_func_inotify_init=no" ++ optional stdenv.hostPlatform.isSunOS "ac_cv_func_inotify_init=no"
++ optional withPrefix "--program-prefix=g" ++ optional withPrefix "--program-prefix=g"
++ optionals (stdenv.hostPlatform != stdenv.buildPlatform && stdenv.hostPlatform.libc == "glibc") [ ++ optionals (stdenv.hostPlatform != stdenv.buildPlatform && stdenv.hostPlatform.libc == "glibc") [
@ -51,6 +55,7 @@ stdenv.mkDerivation rec {
buildInputs = [ gmp ] buildInputs = [ gmp ]
++ optional aclSupport acl ++ optional aclSupport acl
++ optional attrSupport attr ++ optional attrSupport attr
++ optional withOpenssl openssl
++ optionals stdenv.hostPlatform.isCygwin [ autoreconfHook texinfo ] # due to patch ++ optionals stdenv.hostPlatform.isCygwin [ autoreconfHook texinfo ] # due to patch
++ optionals selinuxSupport [ libselinux libsepol ] ++ optionals selinuxSupport [ libselinux libsepol ]
# TODO(@Ericson2314): Investigate whether Darwin could benefit too # TODO(@Ericson2314): Investigate whether Darwin could benefit too
@ -81,9 +86,13 @@ stdenv.mkDerivation rec {
sed -i Makefile -e 's|^INSTALL =.*|INSTALL = ${buildPackages.coreutils}/bin/install -c|' sed -i Makefile -e 's|^INSTALL =.*|INSTALL = ${buildPackages.coreutils}/bin/install -c|'
''; '';
postInstall = optionalString (stdenv.hostPlatform != stdenv.buildPlatform) '' postInstall = optionalString (stdenv.hostPlatform != stdenv.buildPlatform && !minimal) ''
rm $out/share/man/man1/* rm $out/share/man/man1/*
cp ${buildPackages.coreutils}/share/man/man1/* $out/share/man/man1 cp ${buildPackages.coreutils}/share/man/man1/* $out/share/man/man1
''
# du: 8.7 M locale + 0.4 M man pages
+ optionalString minimal ''
rm -r "$out/share"
''; '';
meta = { meta = {

View file

@ -2,11 +2,11 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "ethtool-${version}"; name = "ethtool-${version}";
version = "4.17"; version = "4.18";
src = fetchurl { src = fetchurl {
url = "mirror://kernel/software/network/ethtool/${name}.tar.xz"; url = "mirror://kernel/software/network/ethtool/${name}.tar.xz";
sha256 = "11f5503mgcwjn1q4dvhjiqwnw3zmp2gbhirjvgfr71y72ys1wsy4"; sha256 = "0461nwqp1z9a89nmxf7kq0r4jfl9c7fg55c71lfmc5y0siaqb54h";
}; };
meta = with stdenv.lib; { meta = with stdenv.lib; {

View file

@ -15,11 +15,11 @@ assert guiSupport -> pinentry != null;
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "gnupg-${version}"; name = "gnupg-${version}";
version = "2.2.9"; version = "2.2.10";
src = fetchurl { src = fetchurl {
url = "mirror://gnupg/gnupg/${name}.tar.bz2"; url = "mirror://gnupg/gnupg/${name}.tar.bz2";
sha256 = "0r11mx8nkh7ysrnshs560amha5csx8zcaggb5kxcksx1zymyly32"; sha256 = "05f9804g72pffdxgvxjmjzkfcpjg1x221g9rwcr8fi51hrxd77br";
}; };
nativeBuildInputs = [ pkgconfig ]; nativeBuildInputs = [ pkgconfig ];

View file

@ -5,13 +5,13 @@
perlPackages.buildPerlModule rec { perlPackages.buildPerlModule rec {
name = "biber-${version}"; name = "biber-${version}";
version = "2.10"; version = "2.11";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "plk"; owner = "plk";
repo = "biber"; repo = "biber";
rev = "v${version}"; rev = "v${version}";
sha256 = "0f6bb1iprl92iamxqlr8fc99mxr9n3722frd1ak9pbzh3m6c2ny6"; sha256 = "0qgkc1k9n36yfmndwz879pak6mjphld0p85lzn9g2ng0vhxsifzz";
}; };
buildInputs = with perlPackages; [ buildInputs = with perlPackages; [

View file

@ -0,0 +1,68 @@
# Notes on maintaining/upgrading
## Upgrading texlive.bin
texlive contains a few binaries, defined in bin.nix and released once a year.
In order to reduce closure size for users who just need a few of them, we split it into
packages such as core, core-big, xvdi, etc. This requires making assumptions
about dependencies between the projects that may change between releases; if
you upgrade you may have to do some work here.
## Updating the package set
texlive contains several thousand packages from CTAN, defined in pkgs.nix.
The CTAN mirrors are not version-controlled and continuously moving,
with more than 100 updates per month.
To create a consistent and reproducible package set in nixpkgs, we snapshot CTAN
and generate nix expressions for all packages in texlive at that point.
We mirror CTAN sources of this snapshot on community-operated servers and on IPFS.
To upgrade the package snapshot, follow this process:
### Snapshot sources and texlive package database
Mirror the current CTAN archive to our mirror(s) and IPFS (URLs in `default.nix`).
See <https://tug.org/texlive/acquire-mirror.html> for instructions.
### Upgrade package information from texlive package database
```
$ curl http://mirror.ctan.org/tex-archive/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz \
| xzcat | uniq -u | sed -rn -f ./tl2nix.sed > ./pkgs.nix
```
This will download a current snapshot of the CTAN package database `texlive.tlpdb.xz`
and regenerate all of the sha512 hashes for the current upstream distribution in `pkgs.nix`.
### Build packages locally and generate fix hashes
To save disk space and prevent unnecessary rebuilds, texlive packages are built
as fixed-output derivations whose hashes are contained in `fixedHashes.nix`.
Updating the list of fixed hashes requires a local build of *all* packages,
which is a resource-intensive process:
```
# move fixedHashes away, otherwise build will fail on updated packages
$ mv fixedHashes.nix fixedHashes-old.nix
# start with empty fixedHashes
$ echo '{}' > fixedHashes.nix
$ nix-build ../../../../.. -Q --no-out-link -A texlive.scheme-full.pkgs | ./fixHashes.sh > ./fixedHashes-new.nix
# The script wrongly includes the nix store path to `biber`, which is a separate nixpkgs package
$ grep -v -F '/nix/store/' fixedHashes-new.nix > fixedHashes.nix
```
### Commit changes
Commit the updated `pkgs.nix` and `fixedHashes.nix` to the repository.

View file

@ -14,25 +14,23 @@
let let
withSystemLibs = map (libname: "--with-system-${libname}"); withSystemLibs = map (libname: "--with-system-${libname}");
year = "2017"; year = "2018";
version = year; # keep names simple for now version = year; # keep names simple for now
common = rec { common = rec {
src = fetchurl { src = fetchurl {
url = # "ftp://tug.org/historic/systems/texlive/${year}/" urls = [
#"http://lipa.ms.mff.cuni.cz/~cunav5am/nix/texlive-2016" "http://ftp.math.utah.edu/pub/tex/historic/systems/texlive/${year}/texlive-${year}0414-source.tar.xz"
# FIXME: a proper mirror, though tarballs.nixos.org saves this case ATM "ftp://tug.ctan.org/pub/tex/historic/systems/texlive/${year}/texlive-${year}0414-source.tar.xz"
# http://146.185.144.154/texlive-2016 ];
# + "/texlive-${year}0523b-source.tar.xz"; sha256 = "0khyi6h015r2zfqgg0a44a2j7vmr1cy42knw7jbss237yvakc07y";
"http://ftp.math.utah.edu/pub/tex/historic/systems/texlive/${year}/texlive-${year}0524-source.tar.xz";
sha256 = "1amjrxyasplv4alfwcxwnw4nrx7dz2ydmddkq16k6hg90i9njq81";
}; };
patches = [ patches = [
(fetchurl { (fetchurl {
name = "texlive-poppler-0.59.patch"; name = "texlive-poppler-0.64.patch";
url = https://git.archlinux.org/svntogit/packages.git/plain/trunk/texlive-poppler-0.59.patch?h=packages/texlive-bin&id=6308ec39bce2a4d735f6ff8a4e94473748d7b450; url = https://git.archlinux.org/svntogit/packages.git/plain/trunk/texlive-poppler-0.64.patch?h=packages/texlive-bin;
sha256 = "1c4ikq4kxw48bi3i33bzpabrjvbk01fwjr2lz20gkc9kv8l0bg3n"; sha256 = "0443d074zl3c5raba8jyhavish706arjcd80ibb84zwnwck4ai0w";
}) })
]; ];
@ -83,6 +81,8 @@ core = stdenv.mkDerivation rec {
for i in texk/kpathsea/mktex*; do for i in texk/kpathsea/mktex*; do
sed -i '/^mydir=/d' "$i" sed -i '/^mydir=/d' "$i"
done done
cp -pv texk/web2c/pdftexdir/pdftoepdf{-newpoppler.cc,.cc}
cp -pv texk/web2c/pdftexdir/pdftosrc{-newpoppler.cc,.cc}
''; '';
preConfigure = '' preConfigure = ''
@ -165,7 +165,7 @@ inherit (core-big) metafont metapost luatex xetex;
core-big = stdenv.mkDerivation { #TODO: upmendex core-big = stdenv.mkDerivation { #TODO: upmendex
name = "texlive-core-big.bin-${version}"; name = "texlive-core-big.bin-${version}";
inherit (common) src; inherit (common) src patches;
hardeningDisable = [ "format" ]; hardeningDisable = [ "format" ];
@ -176,20 +176,23 @@ core-big = stdenv.mkDerivation { #TODO: upmendex
++ withSystemLibs [ "kpathsea" "ptexenc" "cairo" "harfbuzz" "icu" "graphite2" ] ++ withSystemLibs [ "kpathsea" "ptexenc" "cairo" "harfbuzz" "icu" "graphite2" ]
++ map (prog: "--disable-${prog}") # don't build things we already have ++ map (prog: "--disable-${prog}") # don't build things we already have
[ "tex" "ptex" "eptex" "uptex" "euptex" "aleph" "pdftex" [ "tex" "ptex" "eptex" "uptex" "euptex" "aleph" "pdftex"
"web-progs" "synctex" "luajittex" "mfluajit" # luajittex is mostly not needed, see: "web-progs" "synctex"
# build fails on Darwin with luatex53
"luatex53" # TODO probably can be removed when TexLive 2019 is out
# luajittex is mostly not needed, see:
# http://tex.stackexchange.com/questions/97999/when-to-use-luajittex-in-favour-of-luatex # http://tex.stackexchange.com/questions/97999/when-to-use-luajittex-in-favour-of-luatex
"luajittex" "mfluajit"
]; ];
patches = common.patches ++ [ ./luatex-gcc7.patch ];
configureScript = ":"; configureScript = ":";
# we use static libtexlua, because it's only used by a single binary # we use static libtexlua, because it's only used by a single binary
postConfigure = '' postConfigure = ''
mkdir ./WorkDir && cd ./WorkDir mkdir ./WorkDir && cd ./WorkDir
# TODO add lua53 here when luatex53 is enabled again
for path in libs/{teckit,lua52} texk/web2c; do for path in libs/{teckit,lua52} texk/web2c; do
( (
if [[ "$path" == "libs/lua52" ]]; then if [[ "$path" =~ "libs/lua5" ]]; then
extraConfig="--enable-static --disable-shared" extraConfig="--enable-static --disable-shared"
else else
extraConfig="" extraConfig=""
@ -202,7 +205,6 @@ core-big = stdenv.mkDerivation { #TODO: upmendex
''; '';
preBuild = "cd texk/web2c"; preBuild = "cd texk/web2c";
CXXFLAGS = "-std=c++11 -Wno-reserved-user-defined-literal"; # TODO: remove once texlive 2018 is out?
enableParallelBuilding = true; enableParallelBuilding = true;
doCheck = false; # fails doCheck = false; # fails

View file

@ -1,34 +1,11 @@
/* TeX Live user docs /* TeX Live user docs
- source: ../../../../../doc/languages-frameworks/texlive.xml - source: ../../../../../doc/languages-frameworks/texlive.xml
- current html: http://nixos.org/nixpkgs/manual/#sec-language-texlive - current html: http://nixos.org/nixpkgs/manual/#sec-language-texlive
Note on upgrading: The texlive package contains a few binaries, defined in
bin.nix and released once a year, and several thousand packages from CTAN,
defined in pkgs.nix.
The CTAN mirrors are continuously moving, with more than 100 updates per
month. Due to the size of the distribution, we snapshot it and generate nix
expressions for all packages in texlive at that point.
To upgrade this snapshot, run the following:
$ curl http://mirror.ctan.org/tex-archive/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz \
| xzcat | uniq -u | sed -rn -f ./tl2nix.sed > ./pkgs.nix
This will regenerate all of the sha512 hashes for the current upstream
distribution. You may want to find a more stable mirror, put the distribution
on IPFS, or contact a maintainer to get the tarballs from that point in time
into a more stable location, so that nix users who are building from source
can reproduce your work.
Upgrading the bin: texlive itself is a large collection of binaries. In order
to reduce closure size for users who just need a few of them, we split it into
packages such as core, core-big, xvdi, etc. This requires making assumptions
about dependencies between the projects that may change between releases; if
you upgrade you may have to do some work here.
*/ */
{ stdenv, lib, fetchurl, runCommand, writeText, buildEnv { stdenv, lib, fetchurl, runCommand, writeText, buildEnv
, callPackage, ghostscriptX, harfbuzz, poppler_min , callPackage, ghostscriptX, harfbuzz, poppler_min
, makeWrapper, python, ruby, perl , makeWrapper, python, ruby, perl
, useFixedHashes ? true
, recurseIntoAttrs , recurseIntoAttrs
}: }:
let let
@ -41,6 +18,10 @@ let
}; };
}; };
# map: name -> fixed-output hash
# sha1 in base32 was chosen as a compromise between security and length
fixedHashes = lib.optionalAttrs useFixedHashes (import ./fixedHashes.nix);
# function for creating a working environment from a set of TL packages # function for creating a working environment from a set of TL packages
combine = import ./combine.nix { combine = import ./combine.nix {
inherit bin combinePkgs buildEnv fastUnique lib makeWrapper writeText inherit bin combinePkgs buildEnv fastUnique lib makeWrapper writeText
@ -116,23 +97,34 @@ let
# the basename used by upstream (without ".tar.xz" suffix) # the basename used by upstream (without ".tar.xz" suffix)
urlName = pname + lib.optionalString (tlType != "run") ".${tlType}"; urlName = pname + lib.optionalString (tlType != "run") ".${tlType}";
tlName = urlName + "-${version}"; tlName = urlName + "-${version}";
fixedHash = fixedHashes.${tlName} or null; # be graceful about missing hashes
urls = args.urls or (if args ? url then [ args.url ] else urls = args.urls or (if args ? url then [ args.url ] else
map (up: "${up}/${urlName}.tar.xz") urlPrefixes map (up: "${up}/${urlName}.tar.xz") urlPrefixes
); );
# Upstream refuses to distribute stable tarballs, so we host snapshots on IPFS. # Upstream refuses to distribute stable tarballs,
# so we host snapshots on IPFS or on our own servers.
# Common packages should get served from the binary cache anyway. # Common packages should get served from the binary cache anyway.
# See discussions, e.g. https://github.com/NixOS/nixpkgs/issues/24683 # See discussions, e.g. https://github.com/NixOS/nixpkgs/issues/24683
urlPrefixes = args.urlPrefixes or [ urlPrefixes = args.urlPrefixes or [
# Should be stable for historic, archived releases # A snapshot temporarily hosted by @xeji.
http://ftp.math.utah.edu/pub/tex/historic/systems/texlive/2017/tlnet-final/archive # TODO: remove when there is a reliable long-term solution
https://cat3.de/texlive-2018/tlnet/archive
# TODO: Add IPFS and see if @veprbl is willing to add a texlive-2017-final mirror, # TODO: Add second, faster and more reliable snapshot mirror,
# or if we should just dump it and go to 2018. # maybe on one of our project's servers
# IPFS seeded by the mirror above - this may be quite slow
https://ipfs.io/ipfs/QmT4Z67wXin1Z9DhvqwSSkSZSuu8hT6LgDyMu6CBm9Tb7t/tlnet/archive
# The canonical source moves quickly and will be broken almost immediately # The canonical source moves quickly and will be broken almost immediately
# http://mirror.ctan.org/tex-archive/systems/texlive/tlnet/archive http://mirror.ctan.org/tex-archive/systems/texlive/tlnet/archive
# Should be stable for historic, archived releases
# http://ftp.math.utah.edu/pub/tex/historic/systems/texlive/2018/tlnet-final/archive
# TODO: use this later when 2018 is archived
]; ];
src = fetchurl { inherit urls sha512; }; src = fetchurl { inherit urls sha512; };
@ -146,11 +138,30 @@ let
-C "$out" --anchored --exclude=tlpkg --keep-old-files -C "$out" --anchored --exclude=tlpkg --keep-old-files
'' + postUnpack; '' + postUnpack;
in runCommand "texlive-${tlName}" { in if sha512 == "" then
# lots of derivations, not meant to be cached # hash stripped from pkgs.nix to save space -> fetch&unpack in a single step
preferLocalBuild = true; allowSubstitutes = false; fetchurl {
inherit passthru; inherit urls;
} sha1 = if fixedHash == null then throw "TeX Live package ${tlName} is missing hash!"
else fixedHash;
name = tlName;
recursiveHash = true;
downloadToTemp = true;
postFetch = ''mkdir "$out";'' + unpackCmd "$downloadedFile";
# TODO: perhaps override preferHashedMirrors and allowSubstitutes
}
// passthru
else runCommand "texlive-${tlName}"
( { # lots of derivations, not meant to be cached
preferLocalBuild = true; allowSubstitutes = false;
inherit passthru;
} // lib.optionalAttrs (fixedHash != null) {
outputHash = fixedHash;
outputHashAlgo = "sha1";
outputHashMode = "recursive";
}
)
( '' ( ''
mkdir "$out" mkdir "$out"
'' + unpackCmd "'${src}'" '' + unpackCmd "'${src}'"

View file

@ -0,0 +1,10 @@
#!/bin/sh
echo "{"
grep -v -F '.bin-' | while read path; do
hash=`nix-hash --type sha1 --base32 "$path"`
echo -n "$path" | sed -E 's/[^-]*-texlive-(.*)/"\1"/'
echo "=\"$hash\";"
done
echo "}"

File diff suppressed because it is too large Load diff

View file

@ -1,30 +0,0 @@
https://www.tug.org/pipermail/tex-live/2017-June/040192.html
---
texk/web2c/luatexdir/luaffi/ctype.c | 4 ++++
texk/web2c/luatexdir/luaffi/ffi.h | 2 +-
2 files changed, 5 insertions(+), 1 deletion(-)
--- a/texk/web2c/luatexdir/luaffi/ctype.c
+++ b/texk/web2c/luatexdir/luaffi/ctype.c 2017-05-31 13:08:25.421741873 +0000
@@ -245,6 +245,10 @@ void* to_cdata(lua_State* L, int idx, st
lua_pop(L, 1); /* mt */
cd = (struct cdata*) lua_touserdata(L, idx);
+ if (!cd) {
+ lua_pushnil(L);
+ return NULL;
+ }
*ct = cd->type;
lua_getuservalue(L, idx);
--- a/texk/web2c/luatexdir/luaffi/ffi.h
+++ b/texk/web2c/luatexdir/luaffi/ffi.h 2017-06-01 09:12:45.128442092 +0000
@@ -370,7 +370,7 @@ __declspec(align(16))
#endif
struct cdata {
const struct ctype type
-#ifdef __GNUC__
+#if 0 /* def __GNUC__ */
__attribute__ ((aligned(16)))
#endif
;

File diff suppressed because it is too large Load diff

View file

@ -1980,11 +1980,8 @@ with pkgs;
cool-retro-term = libsForQt5.callPackage ../applications/misc/cool-retro-term { }; cool-retro-term = libsForQt5.callPackage ../applications/misc/cool-retro-term { };
coreutils = callPackage ../tools/misc/coreutils { coreutils = callPackage ../tools/misc/coreutils { };
aclSupport = stdenv.isLinux; coreutils-full = coreutils.override { minimal = false; };
attrSupport = stdenv.isLinux;
};
coreutils-prefixed = coreutils.override { withPrefix = true; singleBinary = false; }; coreutils-prefixed = coreutils.override { withPrefix = true; singleBinary = false; };
corkscrew = callPackage ../tools/networking/corkscrew { }; corkscrew = callPackage ../tools/networking/corkscrew { };
@ -11595,10 +11592,8 @@ with pkgs;
introspectionSupport = true; introspectionSupport = true;
}); });
poppler_min = poppler_0_61.override { # TODO: maybe reduce even more poppler_min = poppler.override { # TODO: maybe reduce even more
# this is currently only used by texlive.bin. # this is currently only used by texlive.bin.
# pinned to 0.61 because texlive 2017 doesn't build w/poppler 0.64
# TODO: review poppler version for texlive 2018
minimal = true; minimal = true;
suffix = "min"; suffix = "min";
}; };