diff --git a/doc/languages-frameworks/python.section.md b/doc/languages-frameworks/python.section.md
index 199e678bc29..bbcf82f7ed6 100644
--- a/doc/languages-frameworks/python.section.md
+++ b/doc/languages-frameworks/python.section.md
@@ -833,6 +833,7 @@ used in `buildPythonPackage`.
- `pythonRemoveBinBytecode` to remove bytecode from the `/bin` folder.
- `setuptoolsBuildHook` to build a wheel using `setuptools`.
- `setuptoolsCheckHook` to run tests with `python setup.py test`.
+- `venvShellHook` to source a Python 3 `venv` at the `venvDir` location. A `venv` is created if it does not yet exist.
- `wheelUnpackHook` to move a wheel to the correct folder so it can be installed with the `pipInstallHook`.
### Development mode
diff --git a/doc/overrides.css b/doc/overrides.css
index 4c7d4a31be2..73901a3f543 100644
--- a/doc/overrides.css
+++ b/doc/overrides.css
@@ -1,9 +1,22 @@
.docbook .xref img[src^=images\/callouts\/],
.screen img,
-.programlisting img {
+.programlisting img,
+.literallayout img,
+.synopsis img {
width: 1em;
}
.calloutlist img {
width: 1.5em;
}
+
+.prompt,
+.screen img,
+.programlisting img,
+.literallayout img,
+.synopsis img {
+ -moz-user-select: none;
+ -webkit-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+}
diff --git a/lib/cli.nix b/lib/cli.nix
new file mode 100644
index 00000000000..f47625d2f53
--- /dev/null
+++ b/lib/cli.nix
@@ -0,0 +1,56 @@
+{ lib }:
+
+rec {
+ /* Automatically convert an attribute set to command-line options.
+
+ This helps protect against malformed command lines and also to reduce
+ boilerplate related to command-line construction for simple use cases.
+
+ Example:
+ encodeGNUCommandLine
+ { }
+ { data = builtins.toJSON { id = 0; };
+
+ X = "PUT";
+
+ retry = 3;
+
+ retry-delay = null;
+
+ url = [ "https://example.com/foo" "https://example.com/bar" ];
+
+ silent = false;
+
+ verbose = true;
+ };
+ => "'-X' 'PUT' '--data' '{\"id\":0}' '--retry' '3' '--url' 'https://example.com/foo' '--url' 'https://example.com/bar' '--verbose'"
+ */
+ encodeGNUCommandLine =
+ options: attrs: lib.escapeShellArgs (toGNUCommandLine options attrs);
+
+ toGNUCommandLine =
+ { renderKey ?
+ key: if builtins.stringLength key == 1 then "-${key}" else "--${key}"
+
+ , renderOption ?
+ key: value:
+ if value == null
+ then []
+ else [ (renderKey key) (builtins.toString value) ]
+
+ , renderBool ? key: value: lib.optional value (renderKey key)
+
+ , renderList ? key: value: lib.concatMap (renderOption key) value
+ }:
+ options:
+ let
+ render = key: value:
+ if builtins.isBool value
+ then renderBool key value
+ else if builtins.isList value
+ then renderList key value
+ else renderOption key value;
+
+ in
+ builtins.concatLists (lib.mapAttrsToList render options);
+}
diff --git a/lib/default.nix b/lib/default.nix
index 77dda17f3b4..5abafe1b2ac 100644
--- a/lib/default.nix
+++ b/lib/default.nix
@@ -39,6 +39,7 @@ let
# misc
asserts = callLibs ./asserts.nix;
+ cli = callLibs ./cli.nix;
debug = callLibs ./debug.nix;
generators = callLibs ./generators.nix;
misc = callLibs ./deprecated.nix;
@@ -120,6 +121,7 @@ let
isOptionType mkOptionType;
inherit (asserts)
assertMsg assertOneOf;
+ inherit (cli) encodeGNUCommandLine toGNUCommandLine;
inherit (debug) addErrorContextToAttrs traceIf traceVal traceValFn
traceXMLVal traceXMLValMarked traceSeq traceSeqN traceValSeq
traceValSeqFn traceValSeqN traceValSeqNFn traceShowVal
diff --git a/lib/tests/misc.nix b/lib/tests/misc.nix
index b064faa1e1b..e47b48b5017 100644
--- a/lib/tests/misc.nix
+++ b/lib/tests/misc.nix
@@ -441,4 +441,25 @@ runTests {
expected = "«foo»";
};
+ testRenderOptions = {
+ expr =
+ encodeGNUCommandLine
+ { }
+ { data = builtins.toJSON { id = 0; };
+
+ X = "PUT";
+
+ retry = 3;
+
+ retry-delay = null;
+
+ url = [ "https://example.com/foo" "https://example.com/bar" ];
+
+ silent = false;
+
+ verbose = true;
+ };
+
+ expected = "'-X' 'PUT' '--data' '{\"id\":0}' '--retry' '3' '--url' 'https://example.com/foo' '--url' 'https://example.com/bar' '--verbose'";
+ };
}
diff --git a/lib/types.nix b/lib/types.nix
index 57ddb45a237..d8a5db0c89f 100644
--- a/lib/types.nix
+++ b/lib/types.nix
@@ -590,7 +590,7 @@ rec {
tail' = tail ts;
in foldl' either head' tail';
- # Either value of type `finalType` or `coercedType`, the latter is
+ # Either value of type `coercedType` or `finalType`, the former is
# converted to `finalType` using `coerceFunc`.
coercedTo = coercedType: coerceFunc: finalType:
assert lib.assertMsg (coercedType.getSubModules == null)
@@ -599,12 +599,12 @@ rec {
mkOptionType rec {
name = "coercedTo";
description = "${finalType.description} or ${coercedType.description} convertible to it";
- check = x: finalType.check x || (coercedType.check x && finalType.check (coerceFunc x));
+ check = x: (coercedType.check x && finalType.check (coerceFunc x)) || finalType.check x;
merge = loc: defs:
let
coerceVal = val:
- if finalType.check val then val
- else coerceFunc val;
+ if coercedType.check val then coerceFunc val
+ else val;
in finalType.merge loc (map (def: def // { value = coerceVal def.value; }) defs);
emptyValue = finalType.emptyValue;
getSubOptions = finalType.getSubOptions;
diff --git a/nixos/doc/manual/man-pages.xml b/nixos/doc/manual/man-pages.xml
index f5a1dd2d69f..49acfe7330b 100644
--- a/nixos/doc/manual/man-pages.xml
+++ b/nixos/doc/manual/man-pages.xml
@@ -6,7 +6,7 @@
EelcoDolstra
Author
- 2007-2019Eelco Dolstra
+ 2007-2020Eelco Dolstra
diff --git a/nixos/lib/test-driver/test-driver.py b/nixos/lib/test-driver/test-driver.py
index 7e575189209..c2cbedc5e3e 100644
--- a/nixos/lib/test-driver/test-driver.py
+++ b/nixos/lib/test-driver/test-driver.py
@@ -704,7 +704,8 @@ class Machine:
def process_serial_output() -> None:
for _line in self.process.stdout:
- line = _line.decode("unicode_escape").replace("\r", "").rstrip()
+ # Ignore undecodable bytes that may occur in boot menus
+ line = _line.decode(errors="ignore").replace("\r", "").rstrip()
eprint("{} # {}".format(self.name, line))
self.logger.enqueue({"msg": line, "machine": self.name})
diff --git a/nixos/lib/testing-python.nix b/nixos/lib/testing-python.nix
index 3d09be3b6cd..a7f6d792651 100644
--- a/nixos/lib/testing-python.nix
+++ b/nixos/lib/testing-python.nix
@@ -155,7 +155,7 @@ in rec {
--add-flags "''${vms[*]}" \
${lib.optionalString enableOCR
"--prefix PATH : '${ocrProg}/bin:${imagemagick_tiff}/bin'"} \
- --run "export testScript=\"\$(cat $out/test-script)\"" \
+ --run "export testScript=\"\$(${coreutils}/bin/cat $out/test-script)\"" \
--set VLANS '${toString vlans}'
ln -s ${testDriver}/bin/nixos-test-driver $out/bin/nixos-run-vms
wrapProgram $out/bin/nixos-run-vms \
diff --git a/nixos/modules/services/torrent/transmission.nix b/nixos/modules/services/torrent/transmission.nix
index aa1acdf7d20..5ba72e8d773 100644
--- a/nixos/modules/services/torrent/transmission.nix
+++ b/nixos/modules/services/torrent/transmission.nix
@@ -129,19 +129,23 @@ in
# It's useful to have transmission in path, e.g. for remote control
environment.systemPackages = [ pkgs.transmission ];
- users.users = optionalAttrs (cfg.user == "transmission") (singleton
- { name = "transmission";
+ users.users = optionalAttrs (cfg.user == "transmission") ({
+ transmission = {
+ name = "transmission";
group = cfg.group;
uid = config.ids.uids.transmission;
description = "Transmission BitTorrent user";
home = homeDir;
createHome = true;
- });
+ };
+ });
- users.groups = optionalAttrs (cfg.group == "transmission") (singleton
- { name = "transmission";
+ users.groups = optionalAttrs (cfg.group == "transmission") ({
+ transmission = {
+ name = "transmission";
gid = config.ids.gids.transmission;
- });
+ };
+ });
# AppArmor profile
security.apparmor.profiles = mkIf apparmor [
diff --git a/nixos/tests/bittorrent.nix b/nixos/tests/bittorrent.nix
index e5be652c711..0a97d5556a2 100644
--- a/nixos/tests/bittorrent.nix
+++ b/nixos/tests/bittorrent.nix
@@ -18,6 +18,17 @@ let
externalRouterAddress = "80.100.100.1";
externalClient2Address = "80.100.100.2";
externalTrackerAddress = "80.100.100.3";
+
+ transmissionConfig = { ... }: {
+ environment.systemPackages = [ pkgs.transmission ];
+ services.transmission = {
+ enable = true;
+ settings = {
+ dht-enabled = false;
+ message-level = 3;
+ };
+ };
+ };
in
{
@@ -26,88 +37,79 @@ in
maintainers = [ domenkozar eelco rob bobvanderlinden ];
};
- nodes =
- { tracker =
- { pkgs, ... }:
- { environment.systemPackages = [ pkgs.transmission ];
+ nodes = {
+ tracker = { pkgs, ... }: {
+ imports = [ transmissionConfig ];
- virtualisation.vlans = [ 1 ];
- networking.interfaces.eth1.ipv4.addresses = [
- { address = externalTrackerAddress; prefixLength = 24; }
- ];
+ virtualisation.vlans = [ 1 ];
+ networking.firewall.enable = false;
+ networking.interfaces.eth1.ipv4.addresses = [
+ { address = externalTrackerAddress; prefixLength = 24; }
+ ];
- # We need Apache on the tracker to serve the torrents.
- services.httpd.enable = true;
- services.httpd.adminAddr = "foo@example.org";
- services.httpd.documentRoot = "/tmp";
-
- networking.firewall.enable = false;
-
- services.opentracker.enable = true;
-
- services.transmission.enable = true;
- services.transmission.settings.dht-enabled = false;
- services.transmission.settings.port-forwaring-enabled = false;
- };
-
- router =
- { pkgs, nodes, ... }:
- { virtualisation.vlans = [ 1 2 ];
- networking.nat.enable = true;
- networking.nat.internalInterfaces = [ "eth2" ];
- networking.nat.externalInterface = "eth1";
- networking.firewall.enable = true;
- networking.firewall.trustedInterfaces = [ "eth2" ];
- networking.interfaces.eth0.ipv4.addresses = [];
- networking.interfaces.eth1.ipv4.addresses = [
- { address = externalRouterAddress; prefixLength = 24; }
- ];
- networking.interfaces.eth2.ipv4.addresses = [
- { address = internalRouterAddress; prefixLength = 24; }
- ];
- services.miniupnpd = {
- enable = true;
- externalInterface = "eth1";
- internalIPs = [ "eth2" ];
- appendConfig = ''
- ext_ip=${externalRouterAddress}
- '';
+ # We need Apache on the tracker to serve the torrents.
+ services.httpd = {
+ enable = true;
+ virtualHosts = {
+ "torrentserver.org" = {
+ adminAddr = "foo@example.org";
+ documentRoot = "/tmp";
};
};
-
- client1 =
- { pkgs, nodes, ... }:
- { environment.systemPackages = [ pkgs.transmission pkgs.miniupnpc ];
- virtualisation.vlans = [ 2 ];
- networking.interfaces.eth0.ipv4.addresses = [];
- networking.interfaces.eth1.ipv4.addresses = [
- { address = internalClient1Address; prefixLength = 24; }
- ];
- networking.defaultGateway = internalRouterAddress;
- networking.firewall.enable = false;
- services.transmission.enable = true;
- services.transmission.settings.dht-enabled = false;
- services.transmission.settings.message-level = 3;
- };
-
- client2 =
- { pkgs, ... }:
- { environment.systemPackages = [ pkgs.transmission ];
- virtualisation.vlans = [ 1 ];
- networking.interfaces.eth0.ipv4.addresses = [];
- networking.interfaces.eth1.ipv4.addresses = [
- { address = externalClient2Address; prefixLength = 24; }
- ];
- networking.firewall.enable = false;
- services.transmission.enable = true;
- services.transmission.settings.dht-enabled = false;
- services.transmission.settings.port-forwaring-enabled = false;
- };
+ };
+ services.opentracker.enable = true;
};
- testScript =
- { nodes, ... }:
- ''
+ router = { pkgs, nodes, ... }: {
+ virtualisation.vlans = [ 1 2 ];
+ networking.nat.enable = true;
+ networking.nat.internalInterfaces = [ "eth2" ];
+ networking.nat.externalInterface = "eth1";
+ networking.firewall.enable = true;
+ networking.firewall.trustedInterfaces = [ "eth2" ];
+ networking.interfaces.eth0.ipv4.addresses = [];
+ networking.interfaces.eth1.ipv4.addresses = [
+ { address = externalRouterAddress; prefixLength = 24; }
+ ];
+ networking.interfaces.eth2.ipv4.addresses = [
+ { address = internalRouterAddress; prefixLength = 24; }
+ ];
+ services.miniupnpd = {
+ enable = true;
+ externalInterface = "eth1";
+ internalIPs = [ "eth2" ];
+ appendConfig = ''
+ ext_ip=${externalRouterAddress}
+ '';
+ };
+ };
+
+ client1 = { pkgs, nodes, ... }: {
+ imports = [ transmissionConfig ];
+ environment.systemPackages = [ pkgs.miniupnpc ];
+
+ virtualisation.vlans = [ 2 ];
+ networking.interfaces.eth0.ipv4.addresses = [];
+ networking.interfaces.eth1.ipv4.addresses = [
+ { address = internalClient1Address; prefixLength = 24; }
+ ];
+ networking.defaultGateway = internalRouterAddress;
+ networking.firewall.enable = false;
+ };
+
+ client2 = { pkgs, ... }: {
+ imports = [ transmissionConfig ];
+
+ virtualisation.vlans = [ 1 ];
+ networking.interfaces.eth0.ipv4.addresses = [];
+ networking.interfaces.eth1.ipv4.addresses = [
+ { address = externalClient2Address; prefixLength = 24; }
+ ];
+ networking.firewall.enable = false;
+ };
+ };
+
+ testScript = { nodes, ... }: ''
start_all()
# Wait for network and miniupnpd.
@@ -159,5 +161,4 @@ in
"cmp /tmp/test.tar.bz2 ${file}"
)
'';
-
})
diff --git a/pkgs/applications/graphics/openimageio/default.nix b/pkgs/applications/graphics/openimageio/default.nix
index c743f8bd653..23cad7e859d 100644
--- a/pkgs/applications/graphics/openimageio/default.nix
+++ b/pkgs/applications/graphics/openimageio/default.nix
@@ -39,6 +39,5 @@ stdenv.mkDerivation rec {
license = licenses.bsd3;
maintainers = [ maintainers.goibhniu ];
platforms = platforms.unix;
- badPlatforms = [ "x86_64-darwin" ];
};
}
diff --git a/pkgs/applications/misc/blender/darwin.patch b/pkgs/applications/misc/blender/darwin.patch
new file mode 100644
index 00000000000..43b96466df2
--- /dev/null
+++ b/pkgs/applications/misc/blender/darwin.patch
@@ -0,0 +1,105 @@
+diff a/build_files/cmake/platform/platform_apple.cmake b/build_files/cmake/platform/platform_apple.cmake
+--- a/build_files/cmake/platform/platform_apple.cmake
++++ b/build_files/cmake/platform/platform_apple.cmake
+@@ -35,7 +35,6 @@ else()
+ message(STATUS "Using pre-compiled LIBDIR: ${LIBDIR}")
+ endif()
+ if(NOT EXISTS "${LIBDIR}/")
+- message(FATAL_ERROR "Mac OSX requires pre-compiled libs at: '${LIBDIR}'")
+ endif()
+
+ if(WITH_OPENAL)
+@@ -79,7 +78,7 @@ endif()
+ if(WITH_CODEC_SNDFILE)
+ set(LIBSNDFILE ${LIBDIR}/sndfile)
+ set(LIBSNDFILE_INCLUDE_DIRS ${LIBSNDFILE}/include)
+- set(LIBSNDFILE_LIBRARIES sndfile FLAC ogg vorbis vorbisenc)
++ set(LIBSNDFILE_LIBRARIES sndfile)
+ set(LIBSNDFILE_LIBPATH ${LIBSNDFILE}/lib ${LIBDIR}/ffmpeg/lib) # TODO, deprecate
+ endif()
+
+@@ -90,7 +89,7 @@ if(WITH_PYTHON)
+ # normally cached but not since we include them with blender
+ set(PYTHON_INCLUDE_DIR "${LIBDIR}/python/include/python${PYTHON_VERSION}m")
+ set(PYTHON_EXECUTABLE "${LIBDIR}/python/bin/python${PYTHON_VERSION}m")
+- set(PYTHON_LIBRARY ${LIBDIR}/python/lib/libpython${PYTHON_VERSION}m.a)
++ set(PYTHON_LIBRARY "${LIBDIR}/python/lib/libpython${PYTHON_VERSION}m.dylib")
+ set(PYTHON_LIBPATH "${LIBDIR}/python/lib/python${PYTHON_VERSION}")
+ # set(PYTHON_LINKFLAGS "-u _PyMac_Error") # won't build with this enabled
+ else()
+@@ -155,10 +154,7 @@ if(WITH_CODEC_FFMPEG)
+ set(FFMPEG_INCLUDE_DIRS ${FFMPEG}/include)
+ set(FFMPEG_LIBRARIES
+ avcodec avdevice avformat avutil
+- mp3lame swscale x264 xvidcore
+- theora theoradec theoraenc
+- vorbis vorbisenc vorbisfile ogg opus
+- vpx swresample)
++ swscale swresample)
+ set(FFMPEG_LIBPATH ${FFMPEG}/lib)
+ endif()
+
+@@ -199,14 +195,14 @@ if(WITH_OPENCOLLADA)
+ set(OPENCOLLADA ${LIBDIR}/opencollada)
+
+ set(OPENCOLLADA_INCLUDE_DIRS
+- ${LIBDIR}/opencollada/include/COLLADAStreamWriter
+- ${LIBDIR}/opencollada/include/COLLADABaseUtils
+- ${LIBDIR}/opencollada/include/COLLADAFramework
+- ${LIBDIR}/opencollada/include/COLLADASaxFrameworkLoader
+- ${LIBDIR}/opencollada/include/GeneratedSaxParser
++ ${LIBDIR}/opencollada/include/opencollada/COLLADAStreamWriter
++ ${LIBDIR}/opencollada/include/opencollada/COLLADABaseUtils
++ ${LIBDIR}/opencollada/include/opencollada/COLLADAFramework
++ ${LIBDIR}/opencollada/include/opencollada/COLLADASaxFrameworkLoader
++ ${LIBDIR}/opencollada/include/opencollada/GeneratedSaxParser
+ )
+
+- set(OPENCOLLADA_LIBPATH ${OPENCOLLADA}/lib)
++ set(OPENCOLLADA_LIBPATH ${OPENCOLLADA}/lib/opencollada)
+ set(OPENCOLLADA_LIBRARIES
+ OpenCOLLADASaxFrameworkLoader
+ -lOpenCOLLADAFramework
+@@ -215,7 +211,7 @@ if(WITH_OPENCOLLADA)
+ -lMathMLSolver
+ -lGeneratedSaxParser
+ -lbuffer -lftoa -lUTF
+- ${OPENCOLLADA_LIBPATH}/libxml2.a
++ xml2
+ )
+ # PCRE is bundled with openCollada
+ # set(PCRE ${LIBDIR}/pcre)
+@@ -276,14 +272,13 @@ if(WITH_BOOST)
+ endif()
+
+ if(WITH_INTERNATIONAL OR WITH_CODEC_FFMPEG)
+- set(PLATFORM_LINKFLAGS "${PLATFORM_LINKFLAGS} -liconv") # boost_locale and ffmpeg needs it !
+ endif()
+
+ if(WITH_OPENIMAGEIO)
+ set(OPENIMAGEIO ${LIBDIR}/openimageio)
+ set(OPENIMAGEIO_INCLUDE_DIRS ${OPENIMAGEIO}/include)
+ set(OPENIMAGEIO_LIBRARIES
+- ${OPENIMAGEIO}/lib/libOpenImageIO.a
++ ${OPENIMAGEIO}/lib/libOpenImageIO.dylib
+ ${PNG_LIBRARIES}
+ ${JPEG_LIBRARIES}
+ ${TIFF_LIBRARY}
+@@ -306,7 +301,7 @@ endif()
+ if(WITH_OPENCOLORIO)
+ set(OPENCOLORIO ${LIBDIR}/opencolorio)
+ set(OPENCOLORIO_INCLUDE_DIRS ${OPENCOLORIO}/include)
+- set(OPENCOLORIO_LIBRARIES OpenColorIO tinyxml yaml-cpp)
++ set(OPENCOLORIO_LIBRARIES OpenColorIO)
+ set(OPENCOLORIO_LIBPATH ${OPENCOLORIO}/lib)
+ endif()
+
+@@ -443,7 +438,7 @@ else()
+ set(CMAKE_CXX_FLAGS_RELEASE "-mdynamic-no-pic -fno-strict-aliasing")
+ endif()
+
+-if(${XCODE_VERSION} VERSION_EQUAL 5 OR ${XCODE_VERSION} VERSION_GREATER 5)
++if(FALSE)
+ # Xcode 5 is always using CLANG, which has too low template depth of 128 for libmv
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -ftemplate-depth=1024")
+ endif()
diff --git a/pkgs/applications/misc/blender/default.nix b/pkgs/applications/misc/blender/default.nix
index 0af78852204..83f2bf63642 100644
--- a/pkgs/applications/misc/blender/default.nix
+++ b/pkgs/applications/misc/blender/default.nix
@@ -1,13 +1,14 @@
{ config, stdenv, lib, fetchurl, boost, cmake, ffmpeg, gettext, glew
, ilmbase, libXi, libX11, libXext, libXrender
, libjpeg, libpng, libsamplerate, libsndfile
-, libtiff, libGLU, libGL, openal, opencolorio, openexr, openimageio, openjpeg_1, python3Packages
+, libtiff, libGLU, libGL, openal, opencolorio, openexr, openimageio2, openjpeg, python3Packages
, openvdb, libXxf86vm, tbb
, zlib, fftw, opensubdiv, freetype, jemalloc, ocl-icd, addOpenGLRunpath
, jackaudioSupport ? false, libjack2
, cudaSupport ? config.cudaSupport or false, cudatoolkit
, colladaSupport ? true, opencollada
, enableNumpy ? false, makeWrapper
+, pugixml, SDL, Cocoa, CoreGraphics, ForceFeedback, OpenAL, OpenGL
}:
with lib;
@@ -23,22 +24,53 @@ stdenv.mkDerivation rec {
sha256 = "1zl0ar95qkxsrbqw9miz2hrjijlqjl06vg3clfk9rm7krr2l3b2j";
};
+ patches = lib.optional stdenv.isDarwin ./darwin.patch;
+
nativeBuildInputs = [ cmake ] ++ optional cudaSupport addOpenGLRunpath;
buildInputs =
[ boost ffmpeg gettext glew ilmbase
- libXi libX11 libXext libXrender
- freetype libjpeg libpng libsamplerate libsndfile libtiff libGLU libGL openal
- opencolorio openexr openimageio openjpeg_1 python zlib fftw jemalloc
+ freetype libjpeg libpng libsamplerate libsndfile libtiff
+ opencolorio openexr openimageio2 openjpeg python zlib fftw jemalloc
(opensubdiv.override { inherit cudaSupport; })
- openvdb libXxf86vm tbb
+ tbb
makeWrapper
]
+ ++ (if (!stdenv.isDarwin) then [
+ libXi libX11 libXext libXrender
+ libGLU libGL openal
+ libXxf86vm
+ # OpenVDB currently doesn't build on darwin
+ openvdb
+ ]
+ else [
+ pugixml SDL Cocoa CoreGraphics ForceFeedback OpenAL OpenGL
+ ])
++ optional jackaudioSupport libjack2
++ optional cudaSupport cudatoolkit
++ optional colladaSupport opencollada;
postPatch =
- ''
+ if stdenv.isDarwin then ''
+ : > build_files/cmake/platform/platform_apple_xcode.cmake
+ substituteInPlace source/creator/CMakeLists.txt \
+ --replace '${"$"}{LIBDIR}/python' \
+ '${python}'
+ substituteInPlace build_files/cmake/platform/platform_apple.cmake \
+ --replace '${"$"}{LIBDIR}/python' \
+ '${python}' \
+ --replace '${"$"}{LIBDIR}/opencollada' \
+ '${opencollada}' \
+ --replace '${"$"}{PYTHON_LIBPATH}/site-packages/numpy' \
+ '${python3Packages.numpy}/${python.sitePackages}/numpy' \
+ --replace 'set(OPENJPEG_INCLUDE_DIRS ' \
+ 'set(OPENJPEG_INCLUDE_DIRS "'$(echo ${openjpeg.dev}/include/openjpeg-*)'") #' \
+ --replace 'set(OPENJPEG_LIBRARIES ' \
+ 'set(OPENJPEG_LIBRARIES "${openjpeg}/lib/libopenjp2.dylib") #' \
+ --replace 'set(OPENIMAGEIO ' \
+ 'set(OPENIMAGEIO "${openimageio2.out}") #' \
+ --replace 'set(OPENEXR_INCLUDE_DIRS ' \
+ 'set(OPENEXR_INCLUDE_DIRS "${openexr.dev}/include/OpenEXR") #'
+ '' else ''
substituteInPlace extern/clew/src/clew.c --replace '"libOpenCL.so"' '"${ocl-icd}/lib/libOpenCL.so"'
'';
@@ -48,7 +80,7 @@ stdenv.mkDerivation rec {
"-DWITH_CODEC_SNDFILE=ON"
"-DWITH_INSTALL_PORTABLE=OFF"
"-DWITH_FFTW3=ON"
- #"-DWITH_SDL=ON"
+ "-DWITH_SDL=OFF"
"-DWITH_OPENCOLORIO=ON"
"-DWITH_OPENSUBDIV=ON"
"-DPYTHON_LIBRARY=${python.libPrefix}m"
@@ -61,10 +93,18 @@ stdenv.mkDerivation rec {
"-DWITH_OPENVDB=ON"
"-DWITH_TBB=ON"
"-DWITH_IMAGE_OPENJPEG=ON"
+ "-DWITH_OPENCOLLADA=${if colladaSupport then "ON" else "OFF"}"
]
+ ++ optionals stdenv.isDarwin [
+ "-DWITH_CYCLES_OSL=OFF" # requires LLVM
+ "-DWITH_OPENVDB=OFF" # OpenVDB currently doesn't build on darwin
+
+ "-DLIBDIR=/does-not-exist"
+ ]
+ # Clang doesn't support "-export-dynamic"
+ ++ optional stdenv.cc.isClang "-DPYTHON_LINKFLAGS="
++ optional jackaudioSupport "-DWITH_JACK=ON"
- ++ optional cudaSupport "-DWITH_CYCLES_CUDA_BINARIES=ON"
- ++ optional colladaSupport "-DWITH_OPENCOLLADA=ON";
+ ++ optional cudaSupport "-DWITH_CYCLES_CUDA_BINARIES=ON";
NIX_CFLAGS_COMPILE = "-I${ilmbase.dev}/include/OpenEXR -I${python}/include/${python.libPrefix}";
@@ -95,7 +135,7 @@ stdenv.mkDerivation rec {
# They comment two licenses: GPLv2 and Blender License, but they
# say: "We've decided to cancel the BL offering for an indefinite period."
license = licenses.gpl2Plus;
- platforms = [ "x86_64-linux" ];
+ platforms = [ "x86_64-linux" "x86_64-darwin" ];
maintainers = [ maintainers.goibhniu ];
};
}
diff --git a/pkgs/applications/misc/osmctools/default.nix b/pkgs/applications/misc/osmctools/default.nix
index 2dfbb7a2370..c03e57920da 100644
--- a/pkgs/applications/misc/osmctools/default.nix
+++ b/pkgs/applications/misc/osmctools/default.nix
@@ -1,46 +1,27 @@
-{ stdenv, fetchurl, zlib } :
+{ stdenv, fetchFromGitLab, autoreconfHook, zlib }:
-let
-
- convert_src = fetchurl {
- url = http://m.m.i24.cc/osmconvert.c;
- sha256 = "1mvmb171c1jqxrm80jc7qicwk4kgg7yq694n7ci65g6i284r984x";
- # version = 0.8.5
- };
-
- filter_src = fetchurl {
- url = http://m.m.i24.cc/osmfilter.c;
- sha256 = "0vm3bls9jb2cb5b11dn82sxnc22qzkf4ghmnkivycigrwa74i6xl";
- # version = 1.4.0
- };
-
-in
-
-stdenv.mkDerivation {
+stdenv.mkDerivation rec {
pname = "osmctools";
- version = "0.8.5plus1.4.0";
+ version = "0.9";
+ src = fetchFromGitLab {
+ owner = "osm-c-tools";
+ repo = pname;
+ rev = version;
+ sha256 = "1m8d3r1q1v05pkr8k9czrmb4xjszw6hvgsf3kn9pf0v14gpn4r8f";
+ };
+
+ nativeBuildInputs = [ autoreconfHook ];
buildInputs = [ zlib ];
- phases = [ "buildPhase" "installPhase" ];
-
- buildPhase = ''
- cc ${convert_src} -lz -O3 -o osmconvert
- cc ${filter_src} -O3 -o osmfilter
- '';
-
- installPhase = ''
- mkdir -p $out/bin
- mv osmconvert $out/bin
- mv osmfilter $out/bin
- '';
-
meta = with stdenv.lib; {
description = "Command line tools for transforming Open Street Map files";
homepage = [
- https://wiki.openstreetmap.org/wiki/Osmconvert
- https://wiki.openstreetmap.org/wiki/Osmfilter
+ https://wiki.openstreetmap.org/wiki/osmconvert
+ https://wiki.openstreetmap.org/wiki/osmfilter
+ https://wiki.openstreetmap.org/wiki/osmupdate
];
+ maintainers = with maintainers; [ sikmir ];
platforms = platforms.unix;
license = licenses.agpl3;
};
diff --git a/pkgs/applications/networking/Sylk/default.nix b/pkgs/applications/networking/Sylk/default.nix
index 36f6279c209..d99a87954de 100644
--- a/pkgs/applications/networking/Sylk/default.nix
+++ b/pkgs/applications/networking/Sylk/default.nix
@@ -2,7 +2,7 @@
let
pname = "Sylk";
- version = "2.1.0";
+ version = "2.5.0";
in
appimageTools.wrapType2 rec {
@@ -10,7 +10,7 @@ appimageTools.wrapType2 rec {
src = fetchurl {
url = "http://download.ag-projects.com/Sylk/Sylk-${version}-x86_64.AppImage";
- sha256 = "1ifi8qr6f84dcssxhv5ar1s48nsqxiv2j1blc82248hmq5is24mf";
+ sha256 = "1jhs25zzdac3r2wz886vlpb0bz77p52mdlrbsbv28h6is79pbd69";
};
profile = ''
diff --git a/pkgs/applications/networking/browsers/chromium/plugins.nix b/pkgs/applications/networking/browsers/chromium/plugins.nix
index ef0b5ac0eb6..c4a09c8063d 100644
--- a/pkgs/applications/networking/browsers/chromium/plugins.nix
+++ b/pkgs/applications/networking/browsers/chromium/plugins.nix
@@ -45,11 +45,11 @@ let
flash = stdenv.mkDerivation rec {
pname = "flashplayer-ppapi";
- version = "32.0.0.303";
+ version = "32.0.0.314";
src = fetchzip {
url = "https://fpdownload.adobe.com/pub/flashplayer/pdc/${version}/flash_player_ppapi_linux.x86_64.tar.gz";
- sha256 = "0b2cw8y9rif2p0lyy2ir1v5lchxlsh543b9c743a2p85c9p7q62b";
+ sha256 = "05xcscpzglpfpiiqc3ngs5snxli99irjk18g5vdhw91jk9808gnl";
stripRoot = false;
};
diff --git a/pkgs/applications/networking/browsers/mozilla-plugins/flashplayer/default.nix b/pkgs/applications/networking/browsers/mozilla-plugins/flashplayer/default.nix
index 7e3705a3b0b..5ecb6bfb076 100644
--- a/pkgs/applications/networking/browsers/mozilla-plugins/flashplayer/default.nix
+++ b/pkgs/applications/networking/browsers/mozilla-plugins/flashplayer/default.nix
@@ -74,7 +74,7 @@ let
in
stdenv.mkDerivation rec {
pname = "flashplayer";
- version = "32.0.0.303";
+ version = "32.0.0.314";
src = fetchurl {
url =
@@ -85,14 +85,14 @@ stdenv.mkDerivation rec {
sha256 =
if debug then
if arch == "x86_64" then
- "05hfc5ywmcvp6zf8aqmzjp3qy3byp0zdl0ssrv9gvzcskdqkhsj2"
+ "076l93wjcy15sic88cyq6msp87gdhcvbk4ym2vbvvjz2bav2z456"
else
- "12hl8lvxz648ha70gi3v85mwf0nnayjiaslr669vjan3ww94jymv"
+ "0kxr8d6fh00akqgk3lwv0z6rk7xswislicsbh9b9p33f19mj7c8a"
else
if arch == "x86_64" then
- "0x0mabgswly2v8z13832pkbjsv404aq61pback6sgmp2lyycdg6w"
+ "0a3hvp0qmqlann8k875ajf0i70cv0an1a3mr8kbgji46dxqvwjxz"
else
- "16kbpf1i3aqlrfbfh5ncg1n46ncl9hp6qdp36s5j3ivbc68pj81z";
+ "0jyywas2z7ssgzng82qgnp01gy6nccqavkbx9529m07xrclvqbxn";
};
nativeBuildInputs = [ unzip ];
diff --git a/pkgs/applications/networking/browsers/mozilla-plugins/flashplayer/standalone.nix b/pkgs/applications/networking/browsers/mozilla-plugins/flashplayer/standalone.nix
index 28b4c8a36c9..353aff7e707 100644
--- a/pkgs/applications/networking/browsers/mozilla-plugins/flashplayer/standalone.nix
+++ b/pkgs/applications/networking/browsers/mozilla-plugins/flashplayer/standalone.nix
@@ -50,7 +50,7 @@
stdenv.mkDerivation {
pname = "flashplayer-standalone";
- version = "32.0.0.303";
+ version = "32.0.0.314";
src = fetchurl {
url =
@@ -60,9 +60,9 @@ stdenv.mkDerivation {
"https://fpdownload.macromedia.com/pub/flashplayer/updaters/32/flash_player_sa_linux.x86_64.tar.gz";
sha256 =
if debug then
- "0xkzlv90lpyy54j6pllknrp1l9vjyh6dsl63l4c8cgh4i830gi14"
+ "0zlin94rip13rn58m7v5l6m20ylnw59l77rbg5j5qyxkr53zawdz"
else
- "0mi3ggv6zhzmdd1h68cgl87n6izhp0pbkhnidd2gl2cp95f23c2d";
+ "0pfrm02iwa01pqx3adqj0sw27p1ddlz9knjky6x248ak8zywsqr2";
};
nativeBuildInputs = [ unzip ];
diff --git a/pkgs/applications/networking/cluster/docker-machine/xhyve-deps.nix b/pkgs/applications/networking/cluster/docker-machine/xhyve-deps.nix
deleted file mode 100644
index 99cb7b98f5c..00000000000
--- a/pkgs/applications/networking/cluster/docker-machine/xhyve-deps.nix
+++ /dev/null
@@ -1,21 +0,0 @@
-# This file was generated by https://github.com/kamilchm/go2nix v1.2.1
-[
- {
- goPackagePath = "github.com/docker/machine";
- fetch = {
- type = "git";
- url = "https://github.com/docker/machine";
- rev = "5b274558ea6ca822c06dd407a4e774a0105c3f60";
- sha256 = "1wdq9h4bx7awgclh969gvmcnl9jvgv7ldfklnclh5iv47mi7q22d";
- };
- }
- {
- goPackagePath = "github.com/zchee/libhyperkit";
- fetch = {
- type = "git";
- url = "https://github.com/zchee/libhyperkit";
- rev = "1a19a7693fac32b46ec6cdd22da6fbec974447fc";
- sha256 = "119f5gcl24znwnmi837jk667asd3lirx32jldpd4mbyb3sm9nz24";
- };
- }
-]
diff --git a/pkgs/applications/networking/cluster/docker-machine/xhyve.nix b/pkgs/applications/networking/cluster/docker-machine/xhyve.nix
index 1c2caff50d5..1f1e59a56a4 100644
--- a/pkgs/applications/networking/cluster/docker-machine/xhyve.nix
+++ b/pkgs/applications/networking/cluster/docker-machine/xhyve.nix
@@ -1,24 +1,36 @@
-{ stdenv, buildGoPackage, fetchFromGitHub, pkgconfig, Hypervisor, vmnet }:
+{ stdenv, buildGoPackage, fetchFromGitHub, fetchpatch, pkgconfig, cctools, Hypervisor, vmnet }:
buildGoPackage rec {
pname = "docker-machine-xhyve";
- version = "0.3.3";
+ version = "0.4.0";
goPackagePath = "github.com/zchee/docker-machine-driver-xhyve";
- goDeps = ./xhyve-deps.nix;
+
+ # https://github.com/machine-drivers/docker-machine-driver-xhyve/pull/225
+ patches = fetchpatch {
+ url = "https://github.com/machine-drivers/docker-machine-driver-xhyve/commit/546256494bf2ccc33e4125bf45f504b0e3027d5a.patch";
+ sha256 = "1i8wxqccqkxvqrbsyd0g9s0kdskd8xi2jv0c1bji9aj4rq0a8cgz";
+ };
+
+ preBuild = ''
+ make -C go/src/${goPackagePath} CC=${stdenv.cc}/bin/cc LIBTOOL=${cctools}/bin/libtool GIT_CMD=: lib9p
+ export CGO_CFLAGS=-I$(pwd)/go/src/${goPackagePath}/vendor/github.com/jceel/lib9p
+ export CGO_LDFLAGS=$(pwd)/go/src/${goPackagePath}/vendor/build/lib9p/lib9p.a
+ '';
+ buildFlags = "--tags lib9p";
src = fetchFromGitHub {
rev = "v${version}";
- owner = "zchee";
+ owner = "machine-drivers";
repo = "docker-machine-driver-xhyve";
- sha256 = "0rj6pyqp4yv4j28bglqjs95rip5i77vv8mrkmqv1rxrsl3i8aqqy";
+ sha256 = "0000v97fr8xc5b39v44hsa87wrbk4bcwyaaivxv4hxlf4vlgg863";
};
nativeBuildInputs = [ pkgconfig ];
buildInputs = [ Hypervisor vmnet ];
meta = with stdenv.lib; {
- homepage = https://github.com/zchee/docker-machine-driver-xhyve;
+ homepage = https://github.com/machine-drivers/docker-machine-driver-xhyve;
description = "Xhyve driver for docker-machine.";
license = licenses.bsd3;
maintainers = with maintainers; [ periklis ];
diff --git a/pkgs/applications/radio/soapysdr/default.nix b/pkgs/applications/radio/soapysdr/default.nix
index c4879f01e60..e072ec97b97 100644
--- a/pkgs/applications/radio/soapysdr/default.nix
+++ b/pkgs/applications/radio/soapysdr/default.nix
@@ -8,7 +8,7 @@
let
- version = "0.7.1";
+ version = "0.7.2";
modulesVersion = with lib; versions.major version + "." + versions.minor version;
modulesPath = "lib/SoapySDR/modules" + modulesVersion;
extraPackagesSearchPath = lib.makeSearchPath modulesPath extraPackages;
@@ -21,7 +21,7 @@ in stdenv.mkDerivation {
owner = "pothosware";
repo = "SoapySDR";
rev = "soapy-sdr-${version}";
- sha256 = "1rbnd3w12kzsh94fiywyn4vch7h0kf75m88fi6nq992b3vnmiwvl";
+ sha256 = "102wnpjxrwba20pzdh1vvx0yg1h8vqd8z914idxflg9p14r6v5am";
};
nativeBuildInputs = [ cmake makeWrapper pkgconfig ];
diff --git a/pkgs/applications/science/math/nota/default.nix b/pkgs/applications/science/math/nota/default.nix
new file mode 100644
index 00000000000..897785ef6e8
--- /dev/null
+++ b/pkgs/applications/science/math/nota/default.nix
@@ -0,0 +1,40 @@
+{ mkDerivation, haskellPackages, fetchurl, lib }:
+
+mkDerivation rec {
+ pname = "nota";
+ version = "1.0";
+
+ # Can't use fetchFromGitLab since codes.kary.us doesn't support https
+ src = fetchurl {
+ url = "http://codes.kary.us/nota/nota/-/archive/V${version}/nota-V${version}.tar.bz2";
+ sha256 = "0bbs6bm9p852hvqadmqs428ir7m65h2prwyma238iirv42pk04v8";
+ };
+
+ postUnpack = ''
+ export sourceRoot=$sourceRoot/source
+ '';
+
+ isLibrary = false;
+ isExecutable = true;
+
+ libraryHaskellDepends = with haskellPackages; [
+ base
+ bytestring
+ array
+ split
+ scientific
+ parsec
+ ansi-terminal
+ regex-compat
+ containers
+ terminal-size
+ numbers
+ text
+ time
+ ];
+
+ description = "The most beautiful command line calculator";
+ homepage = "https://kary.us/nota";
+ license = lib.licenses.mpl20;
+ maintainers = with lib.maintainers; [ dtzWill ];
+}
diff --git a/pkgs/applications/version-management/gitlab/data.json b/pkgs/applications/version-management/gitlab/data.json
index be7f0afdc77..3f1aef360ba 100644
--- a/pkgs/applications/version-management/gitlab/data.json
+++ b/pkgs/applications/version-management/gitlab/data.json
@@ -1,11 +1,11 @@
{
- "version": "12.6.2",
- "repo_hash": "0bchamvr3f0ph49f7xa76gsp2mjj1ajy4q0wy1hjvr9bayxx94av",
+ "version": "12.6.4",
+ "repo_hash": "0jsww785bxvjdrp1wsz6zkvx9zr69j24bway6nfyjkz8a7vbl9ls",
"owner": "gitlab-org",
"repo": "gitlab",
- "rev": "v12.6.2-ee",
+ "rev": "v12.6.4-ee",
"passthru": {
- "GITALY_SERVER_VERSION": "a4b6c71d4b7c1588587345e2dfe0c6bd7cc63a83",
+ "GITALY_SERVER_VERSION": "1.77.1",
"GITLAB_PAGES_VERSION": "1.12.0",
"GITLAB_SHELL_VERSION": "10.3.0",
"GITLAB_WORKHORSE_VERSION": "8.18.0"
diff --git a/pkgs/applications/version-management/gitlab/gitaly/default.nix b/pkgs/applications/version-management/gitlab/gitaly/default.nix
index 97d7404de8b..a4b4540e87a 100644
--- a/pkgs/applications/version-management/gitlab/gitaly/default.nix
+++ b/pkgs/applications/version-management/gitlab/gitaly/default.nix
@@ -17,14 +17,14 @@ let
};
};
in buildGoPackage rec {
- version = "a4b6c71d4b7c1588587345e2dfe0c6bd7cc63a83";
+ version = "1.77.1";
pname = "gitaly";
src = fetchFromGitLab {
owner = "gitlab-org";
repo = "gitaly";
- rev = version;
- sha256 = "1pxmhq1nrc8q2kk83bz5afx14hshqgzqm6j4vgmyjvbmdvgl80wv";
+ rev = "v${version}";
+ sha256 = "08xc9lxlvga36yq1wdvb1h4zk70c36qspyd7azhkw84kzwfrif1c";
};
# Fix a check which assumes that hook files are writeable by their
diff --git a/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile b/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile
index b6f57297c07..2c4a5f2e816 100644
--- a/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile
+++ b/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile
@@ -327,7 +327,7 @@ group :metrics do
gem 'influxdb', '~> 0.2', require: false
# Prometheus
- gem 'prometheus-client-mmap', '~> 0.9.10'
+ gem 'prometheus-client-mmap', '~> 0.10.0'
gem 'raindrops', '~> 0.18'
end
diff --git a/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile.lock b/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile.lock
index 0e322705862..57e428ca955 100644
--- a/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile.lock
+++ b/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile.lock
@@ -531,8 +531,8 @@ GEM
regexp_parser (~> 1.1)
regexp_property_values (~> 0.3)
json (1.8.6)
- json-jwt (1.9.4)
- activesupport
+ json-jwt (1.11.0)
+ activesupport (>= 4.2)
aes_key_wrap
bindata
json-schema (2.8.0)
@@ -746,7 +746,7 @@ GEM
parser
unparser
procto (0.0.3)
- prometheus-client-mmap (0.9.10)
+ prometheus-client-mmap (0.10.0)
pry (0.11.3)
coderay (~> 1.1.0)
method_source (~> 0.9.0)
@@ -1283,7 +1283,7 @@ DEPENDENCIES
peek (~> 1.1)
pg (~> 1.1)
premailer-rails (~> 1.10.3)
- prometheus-client-mmap (~> 0.9.10)
+ prometheus-client-mmap (~> 0.10.0)
pry-byebug (~> 3.5.1)
pry-rails (~> 0.3.4)
rack (~> 2.0.7)
diff --git a/pkgs/applications/version-management/gitlab/rubyEnv/gemset.nix b/pkgs/applications/version-management/gitlab/rubyEnv/gemset.nix
index 55cdfaa16b9..854178ffbe3 100644
--- a/pkgs/applications/version-management/gitlab/rubyEnv/gemset.nix
+++ b/pkgs/applications/version-management/gitlab/rubyEnv/gemset.nix
@@ -2326,10 +2326,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "065k7vffdki73f4nz89lxi6wxmcw5dlf593831pgvlbralll6x3r";
+ sha256 = "18rf9v20i0dk5dblr7m22di959xpch2h7gsx0cl585cryr7apwp3";
type = "gem";
};
- version = "1.9.4";
+ version = "1.11.0";
};
json-schema = {
dependencies = ["addressable"];
@@ -3365,10 +3365,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "0immyg4as0isyj2dcjf44n0avg1jv5kx1qk0asrgb5ayzwmjqg1k";
+ sha256 = "00d2c79xhz5k3fcclarjr1ffxbrvc6236f4rrvriad9kwqr7c1mp";
type = "gem";
};
- version = "0.9.10";
+ version = "0.10.0";
};
pry = {
dependencies = ["coderay" "method_source"];
diff --git a/pkgs/development/compilers/bs-platform/bs-platform-62.nix b/pkgs/development/compilers/bs-platform/build-bs-platform.nix
similarity index 54%
rename from pkgs/development/compilers/bs-platform/bs-platform-62.nix
rename to pkgs/development/compilers/bs-platform/build-bs-platform.nix
index d2913caaee6..03e01a7a0da 100644
--- a/pkgs/development/compilers/bs-platform/bs-platform-62.nix
+++ b/pkgs/development/compilers/bs-platform/build-bs-platform.nix
@@ -1,35 +1,33 @@
-{ stdenv, fetchFromGitHub, ninja, nodejs, python3 }:
-let
- version = "6.2.1";
- ocaml-version = "4.06.1";
- src = fetchFromGitHub {
- owner = "BuckleScript";
- repo = "bucklescript";
- rev = "${version}";
- sha256 = "0zx9nq7cik0c60n3rndqfqy3vdbj5lcrx6zcqcz2d60jjxi1z32y";
- fetchSubmodules = true;
- };
- ocaml = import ./ocaml.nix {
- bs-version = version;
+# This file is based on https://github.com/turboMaCk/bs-platform.nix/blob/master/build-bs-platform.nix
+# to make potential future updates simpler
+
+{ stdenv, fetchFromGitHub, ninja, runCommand, nodejs, python3,
+ ocaml-version, version, src,
+ ocaml ? (import ./ocaml.nix {
version = ocaml-version;
inherit stdenv;
src = "${src}/ocaml";
- };
-in
+ }),
+ custom-ninja ? (ninja.overrideAttrs (attrs: {
+ src = runCommand "ninja-patched-source" {} ''
+ mkdir -p $out
+ tar zxvf ${src}/vendor/ninja.tar.gz -C $out
+ '';
+ patches = [];
+ }))
+}:
stdenv.mkDerivation {
inherit src version;
pname = "bs-platform";
BS_RELEASE_BUILD = "true";
- buildInputs = [ nodejs python3 ];
+ buildInputs = [ nodejs python3 custom-ninja ];
patchPhase = ''
sed -i 's:./configure.py --bootstrap:python3 ./configure.py --bootstrap:' ./scripts/install.js
-
mkdir -p ./native/${ocaml-version}/bin
- ln -sf ${ocaml}/bin/* ./native/${ocaml-version}/bin
-
+ ln -sf ${ocaml}/bin/* ./native/${ocaml-version}/bin
rm -f vendor/ninja/snapshot/ninja.linux
- cp ${ninja}/bin/ninja vendor/ninja/snapshot/ninja.linux
+ cp ${custom-ninja}/bin/ninja vendor/ninja/snapshot/ninja.linux
'';
configurePhase = ''
@@ -42,12 +40,9 @@ stdenv.mkDerivation {
installPhase = ''
node scripts/install.js
-
mkdir -p $out/bin
-
cp -rf jscomp lib vendor odoc_gen native $out
cp bsconfig.json package.json $out
-
ln -s $out/lib/bsb $out/bin/bsb
ln -s $out/lib/bsc $out/bin/bsc
ln -s $out/lib/bsrefmt $out/bin/bsrefmt
diff --git a/pkgs/development/compilers/bs-platform/default.nix b/pkgs/development/compilers/bs-platform/default.nix
index 59a47bdab70..7abf7b306a5 100644
--- a/pkgs/development/compilers/bs-platform/default.nix
+++ b/pkgs/development/compilers/bs-platform/default.nix
@@ -1,15 +1,28 @@
-{ stdenv, fetchFromGitHub, ninja, nodejs, python3, ... }:
+{ stdenv, runCommand, fetchFromGitHub, ninja, nodejs, python3, ... }:
let
+ build-bs-platform = import ./build-bs-platform.nix;
+in
+(build-bs-platform {
+ inherit stdenv runCommand fetchFromGitHub ninja nodejs python3;
+ version = "7.0.1";
+ ocaml-version = "4.06.1";
+
+ src = fetchFromGitHub {
+ owner = "BuckleScript";
+ repo = "bucklescript";
+ rev = "52770839e293ade2bcf187f2639000ca0a9a1d46";
+ sha256 = "0s7g2zfhshsilv9zyp0246bypg34d294z27alpwz03ws9608yr7k";
+ fetchSubmodules = true;
+ };
+}).overrideAttrs (attrs: {
meta = with stdenv.lib; {
description = "A JavaScript backend for OCaml focused on smooth integration and clean generated code.";
homepage = https://bucklescript.github.io;
license = licenses.lgpl3;
maintainers = with maintainers; [ turbomack gamb anmonteiro ];
platforms = platforms.all;
+ # Currently there is an issue with aarch build in hydra
+ # https://github.com/BuckleScript/bucklescript/issues/4091
+ badPlatforms = platforms.aarch64;
};
-in
-{
- bs-platform-621 = import ./bs-platform-62.nix {
- inherit stdenv fetchFromGitHub ninja nodejs python3;
- } // { inherit meta; };
-}
+})
diff --git a/pkgs/development/compilers/bs-platform/ocaml.nix b/pkgs/development/compilers/bs-platform/ocaml.nix
index 1f2fdd571f3..9aa34d02b36 100644
--- a/pkgs/development/compilers/bs-platform/ocaml.nix
+++ b/pkgs/development/compilers/bs-platform/ocaml.nix
@@ -1,7 +1,7 @@
-{ stdenv, src, version, bs-version }:
+{ stdenv, src, version }:
stdenv.mkDerivation rec {
inherit src version;
- name = "ocaml-${version}+bs-${bs-version}";
+ name = "ocaml-${version}+bs";
configurePhase = ''
./configure -prefix $out
'';
diff --git a/pkgs/development/interpreters/python/hooks/default.nix b/pkgs/development/interpreters/python/hooks/default.nix
index f05b3b1eec6..159637ae9d5 100644
--- a/pkgs/development/interpreters/python/hooks/default.nix
+++ b/pkgs/development/interpreters/python/hooks/default.nix
@@ -2,6 +2,9 @@
{ python
, callPackage
, makeSetupHook
+, disabledIf
+, isPy3k
+, ensureNewerSourcesForZipFilesHook
}:
let
@@ -109,6 +112,15 @@ in rec {
};
} ./setuptools-check-hook.sh) {};
+ venvShellHook = disabledIf (!isPy3k) (callPackage ({ }:
+ makeSetupHook {
+ name = "venv-shell-hook";
+ deps = [ ensureNewerSourcesForZipFilesHook ];
+ substitutions = {
+ inherit pythonInterpreter;
+ };
+ } ./venv-shell-hook.sh) {});
+
wheelUnpackHook = callPackage ({ wheel }:
makeSetupHook {
name = "wheel-unpack-hook.sh";
diff --git a/pkgs/development/interpreters/python/hooks/venv-shell-hook.sh b/pkgs/development/interpreters/python/hooks/venv-shell-hook.sh
new file mode 100644
index 00000000000..3185b1f9fae
--- /dev/null
+++ b/pkgs/development/interpreters/python/hooks/venv-shell-hook.sh
@@ -0,0 +1,26 @@
+venvShellHook() {
+ echo "Executing venvHook"
+ runHook preShellHook
+
+ if [ -d "${venvDir}" ]; then
+ echo "Skipping venv creation, '${venvDir}' already exists"
+ else
+ echo "Creating new venv environment in path: '${venvDir}'"
+ @pythonInterpreter@ -m venv "${venvDir}"
+ fi
+
+ source "${venvDir}/bin/activate"
+
+ runHook postShellHook
+ echo "Finished executing venvShellHook"
+}
+
+if [ -z "${dontUseVenvShellHook:-}" ] && [ -z "${shellHook-}" ]; then
+ echo "Using venvShellHook"
+ if [ -z "${venvDir-}" ]; then
+ echo "Error: \`venvDir\` should be set when using \`venvShellHook\`."
+ exit 1
+ else
+ shellHook=venvShellHook
+ fi
+fi
diff --git a/pkgs/development/libraries/glog/default.nix b/pkgs/development/libraries/glog/default.nix
index 891aa2965ae..aa846e41d55 100644
--- a/pkgs/development/libraries/glog/default.nix
+++ b/pkgs/development/libraries/glog/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, fetchFromGitHub, fetchpatch, cmake, gflags, perl, static ? false }:
+{ stdenv, lib, fetchFromGitHub, fetchpatch, cmake, gflags, perl }:
stdenv.mkDerivation rec {
pname = "glog";
@@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
propagatedBuildInputs = [ gflags ];
- cmakeFlags = [ "-DBUILD_SHARED_LIBS=${if static then "OFF" else "ON"}" ];
+ cmakeFlags = [ "-DBUILD_SHARED_LIBS=ON" ];
checkInputs = [ perl ];
doCheck = false; # fails with "Mangled symbols (28 out of 380) found in demangle.dm"
diff --git a/pkgs/development/libraries/libvterm-neovim/default.nix b/pkgs/development/libraries/libvterm-neovim/default.nix
index 50ee7e4d387..0cd1b64c1b9 100644
--- a/pkgs/development/libraries/libvterm-neovim/default.nix
+++ b/pkgs/development/libraries/libvterm-neovim/default.nix
@@ -6,13 +6,14 @@
stdenv.mkDerivation {
pname = "libvterm-neovim";
- version = "2019-10-08";
+ # Releases are not tagged, look at commit history to find latest release
+ version = "0.1.3";
src = fetchFromGitHub {
owner = "neovim";
repo = "libvterm";
- rev = "7c72294d84ce20da4c27362dbd7fa4b08cfc91da";
- sha256 = "111qyxq33x74dwdnqcnzlv9j0n8hxyribd6ppwcsxmyrniyw9qrk";
+ rev = "65dbda3ed214f036ee799d18b2e693a833a0e591";
+ sha256 = "0r6yimzbkgrsi9aaxwvxahai2lzgjd1ysblr6m6by5w459853q3n";
};
buildInputs = [ perl ];
diff --git a/pkgs/development/libraries/onnxruntime/default.nix b/pkgs/development/libraries/onnxruntime/default.nix
index 33bc4c6e82c..90da6c19212 100644
--- a/pkgs/development/libraries/onnxruntime/default.nix
+++ b/pkgs/development/libraries/onnxruntime/default.nix
@@ -1,16 +1,16 @@
{ stdenv, fetchFromGitHub, glibcLocales
-, cmake, python3
+, cmake, python3, libpng, zlib
}:
stdenv.mkDerivation rec {
pname = "onnxruntime";
- version = "1.0.0";
+ version = "1.1.0";
src = fetchFromGitHub {
owner = "microsoft";
repo = "onnxruntime";
rev = "v${version}";
- sha256 = "1d28lzrjnq69yl8j9ncxlsxl0bniacn3hnsr9van10zgp527436v";
+ sha256 = "1ryf5v2h07c7b42q2p9id88i270ajyz5rlsradp00dy8in6dn2yr";
# TODO: use nix-versions of grpc, onnx, eigen, googletest, etc.
# submodules increase src size and compile times significantly
# not currently feasible due to how integrated cmake build is with git
@@ -25,12 +25,19 @@ stdenv.mkDerivation rec {
python3 # for shared-lib or server
];
+ buildInputs = [
+ # technically optional, but highly recommended
+ libpng
+ zlib
+ ];
+
cmakeDir = "../cmake";
cmakeFlags = [
"-Donnxruntime_USE_OPENMP=ON"
"-Donnxruntime_BUILD_SHARED_LIB=ON"
- "-Donnxruntime_ENABLE_LTO=ON"
+ # flip back to ON next release
+ "-Donnxruntime_ENABLE_LTO=OFF" # https://github.com/microsoft/onnxruntime/issues/2828
];
# ContribOpTest.StringNormalizerTest sets locale to en_US.UTF-8"
diff --git a/pkgs/development/libraries/openssl/default.nix b/pkgs/development/libraries/openssl/default.nix
index 118aa984c17..3016f025e9d 100644
--- a/pkgs/development/libraries/openssl/default.nix
+++ b/pkgs/development/libraries/openssl/default.nix
@@ -36,7 +36,7 @@ let
outputs = [ "bin" "dev" "out" "man" ] ++ optional withDocs "doc";
setOutputFlags = false;
- separateDebugInfo = stdenv.hostPlatform.isLinux;
+ separateDebugInfo = stdenv.cc.isGNU;
nativeBuildInputs = [ perl ];
buildInputs = stdenv.lib.optional withCryptodev cryptodev;
diff --git a/pkgs/development/python-modules/pylint-celery/default.nix b/pkgs/development/python-modules/pylint-celery/default.nix
new file mode 100644
index 00000000000..6bc7a93049e
--- /dev/null
+++ b/pkgs/development/python-modules/pylint-celery/default.nix
@@ -0,0 +1,37 @@
+{ buildPythonPackage
+, fetchFromGitHub
+, isPy3k
+, lib
+
+# pythonPackages
+, pylint-plugin-utils
+}:
+
+buildPythonPackage rec {
+ pname = "pylint-celery";
+ version = "0.3";
+ disabled = !isPy3k;
+
+ src = fetchFromGitHub {
+ owner = "PyCQA";
+ repo = pname;
+ rev = version;
+ sha256 = "05fhwraq12c2724pn4py1bjzy5rmsrb1x68zck73nlp5icba6yap";
+ };
+
+ propagatedBuildInputs = [
+ pylint-plugin-utils
+ ];
+
+ # Testing requires a very old version of pylint, incompatible with other dependencies
+ doCheck = false;
+
+ meta = with lib; {
+ description = "A Pylint plugin to analyze Celery applications";
+ homepage = "https://github.com/PyCQA/pylint-celery";
+ license = licenses.gpl2;
+ maintainers = with maintainers; [
+ kamadorueda
+ ];
+ };
+}
diff --git a/pkgs/development/python-modules/pylint-django/default.nix b/pkgs/development/python-modules/pylint-django/default.nix
new file mode 100644
index 00000000000..04010098807
--- /dev/null
+++ b/pkgs/development/python-modules/pylint-django/default.nix
@@ -0,0 +1,39 @@
+{ buildPythonPackage
+, fetchFromGitHub
+, isPy3k
+, lib
+
+# pythonPackages
+, django
+, pylint-plugin-utils
+}:
+
+buildPythonPackage rec {
+ pname = "pylint-django";
+ version = "2.0.12";
+ disabled = !isPy3k;
+
+ src = fetchFromGitHub {
+ owner = "PyCQA";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "0ha06wpqqn5fp5dapgjhsdx3ahh3y62l7k2f3czlrdjmmivgdp9y";
+ };
+
+ propagatedBuildInputs = [
+ django
+ pylint-plugin-utils
+ ];
+
+ # Testing requires checkout from other repositories
+ doCheck = false;
+
+ meta = with lib; {
+ description = "A Pylint plugin to analyze Django applications";
+ homepage = "https://github.com/PyCQA/pylint-django";
+ license = licenses.gpl2;
+ maintainers = with maintainers; [
+ kamadorueda
+ ];
+ };
+}
diff --git a/pkgs/development/python-modules/pylint-flask/default.nix b/pkgs/development/python-modules/pylint-flask/default.nix
new file mode 100644
index 00000000000..5077d07a936
--- /dev/null
+++ b/pkgs/development/python-modules/pylint-flask/default.nix
@@ -0,0 +1,36 @@
+{ buildPythonPackage
+, fetchPypi
+, isPy3k
+, lib
+
+# pythonPackages
+, pylint-plugin-utils
+}:
+
+buildPythonPackage rec {
+ pname = "pylint-flask";
+ version = "0.6";
+ disabled = !isPy3k;
+
+ src = fetchPypi {
+ inherit pname version;
+ sha256 = "05qmwgkpvaa5k05abqjxfbrfk3wpdqb8ph690z7bzxvb47i7vngl";
+ };
+
+ propagatedBuildInputs = [
+ pylint-plugin-utils
+ ];
+
+ # Tests require a very old version of pylint
+ # also tests are only available at GitHub, with an old release tag
+ doCheck = false;
+
+ meta = with lib; {
+ description = "A Pylint plugin to analyze Flask applications";
+ homepage = "https://github.com/jschaf/pylint-flask";
+ license = licenses.gpl2;
+ maintainers = with maintainers; [
+ kamadorueda
+ ];
+ };
+}
diff --git a/pkgs/development/python-modules/pynrrd/default.nix b/pkgs/development/python-modules/pynrrd/default.nix
new file mode 100644
index 00000000000..02361fe84de
--- /dev/null
+++ b/pkgs/development/python-modules/pynrrd/default.nix
@@ -0,0 +1,27 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, numpy
+, pytest
+}:
+
+buildPythonPackage rec {
+ pname = "pynrrd";
+ version = "0.4.2";
+
+ src = fetchFromGitHub {
+ owner = "mhe";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "1wn3ara3i19fi1y9a5j4imyczpa6dkkzd5djggxg4kkl1ff9awrj";
+ };
+
+ propagatedBuildInputs = [ numpy ];
+
+ meta = with lib; {
+ homepage = https://github.com/mhe/pynrrd;
+ description = "Simple pure-Python reader for NRRD files";
+ license = licenses.mit;
+ maintainers = with maintainers; [ bcdarwin ];
+ };
+}
diff --git a/pkgs/development/python-modules/requirements-detector/default.nix b/pkgs/development/python-modules/requirements-detector/default.nix
index a0f312389f1..0d91cbc7509 100644
--- a/pkgs/development/python-modules/requirements-detector/default.nix
+++ b/pkgs/development/python-modules/requirements-detector/default.nix
@@ -4,6 +4,7 @@
, lib
# pythonPackages
+, astroid
, pytest
}:
@@ -13,12 +14,16 @@ buildPythonPackage rec {
disabled = isPy27;
src = fetchFromGitHub {
- owner = "yuvadm";
+ owner = "landscapeio";
repo = pname;
rev = version;
- sha256 = "15s0n1lhkz0zwi33waqkkjipal3f7s45rxsj1bw89xpr4dj87qx5";
+ sha256 = "1sfmm7daz0kpdx6pynsvi6qlfhrzxx783l1wb69c8dfzya4xssym";
};
+ propagatedBuildInputs = [
+ astroid
+ ];
+
checkInputs = [
pytest
];
diff --git a/pkgs/development/python-modules/sentry-sdk/default.nix b/pkgs/development/python-modules/sentry-sdk/default.nix
index 67584789995..d556dcb74cf 100644
--- a/pkgs/development/python-modules/sentry-sdk/default.nix
+++ b/pkgs/development/python-modules/sentry-sdk/default.nix
@@ -13,6 +13,7 @@
, pyramid
, rq
, sanic
+, sqlalchemy
, stdenv
, tornado
, urllib3
@@ -27,7 +28,7 @@ buildPythonPackage rec {
sha256 = "c6b919623e488134a728f16326c6f0bcdab7e3f59e7f4c472a90eea4d6d8fe82";
};
- checkInputs = [ django flask tornado bottle rq falcon ]
+ checkInputs = [ django flask tornado bottle rq falcon sqlalchemy ]
++ stdenv.lib.optionals isPy3k [ celery pyramid sanic aiohttp ];
propagatedBuildInputs = [ urllib3 certifi ];
diff --git a/pkgs/development/r-modules/default.nix b/pkgs/development/r-modules/default.nix
index 2019ee45f3c..5fa0cd15962 100644
--- a/pkgs/development/r-modules/default.nix
+++ b/pkgs/development/r-modules/default.nix
@@ -311,7 +311,6 @@ let
rgdal = [ pkgs.proj.dev pkgs.gdal ];
rgeos = [ pkgs.geos ];
rggobi = [ pkgs.ggobi pkgs.gtk2.dev pkgs.libxml2.dev ];
- rgl = [ pkgs.libGLU pkgs.libGL pkgs.xlibsWrapper ];
Rglpk = [ pkgs.glpk ];
RGtk2 = [ pkgs.gtk2.dev ];
rhdf5 = [ pkgs.zlib ];
@@ -404,6 +403,7 @@ let
RCurl = [ pkgs.curl.dev ];
R2SWF = [ pkgs.pkgconfig ];
rggobi = [ pkgs.pkgconfig ];
+ rgl = [ pkgs.libGLU pkgs.libGLU.dev pkgs.libGL pkgs.xlibsWrapper ];
RGtk2 = [ pkgs.pkgconfig ];
RProtoBuf = [ pkgs.pkgconfig ];
Rpoppler = [ pkgs.pkgconfig ];
diff --git a/pkgs/development/tools/prospector/default.nix b/pkgs/development/tools/prospector/default.nix
new file mode 100644
index 00000000000..38472ce86f0
--- /dev/null
+++ b/pkgs/development/tools/prospector/default.nix
@@ -0,0 +1,74 @@
+{ lib
+, pkgs
+, python
+}:
+
+let
+ py = python.override {
+ packageOverrides = self: super: {
+ pep8-naming = super.pep8-naming.overridePythonAttrs(oldAttrs: rec {
+ version = "0.4.1";
+ src = oldAttrs.src.override {
+ inherit version;
+ sha256 = "0nhf8p37y008shd4f21bkj5pizv8q0l8cpagyyb8gr059d6gvvaf";
+ };
+ });
+ };
+ };
+ setoptconf = py.pkgs.callPackage ./setoptconf.nix { };
+in
+
+with py.pkgs;
+
+buildPythonApplication rec {
+ pname = "prospector";
+ version = "1.2.0";
+ disabled = isPy27;
+
+ src = pkgs.fetchFromGitHub {
+ owner = "PyCQA";
+ repo = pname;
+ rev = version;
+ sha256 = "07kb37zrrsriqzcmli0ghx7qb1iwkzh83qsiikl9jy50faby2sjg";
+ };
+
+ checkInputs = [
+ pytest
+ ];
+
+ checkPhase = ''
+ pytest
+ '';
+
+ patchPhase = ''
+ substituteInPlace setup.py \
+ --replace 'pycodestyle<=2.4.0' 'pycodestyle<=2.5.0'
+ '';
+
+ propagatedBuildInputs = [
+ astroid
+ django
+ dodgy
+ mccabe
+ pep8-naming
+ pycodestyle
+ pydocstyle
+ pyflakes
+ pylint
+ pylint-celery
+ pylint-django
+ pylint-flask
+ pyyaml
+ requirements-detector
+ setoptconf
+ ];
+
+ meta = with lib; {
+ description = "Tool to analyse Python code and output information about errors, potential problems, convention violations and complexity";
+ homepage = "https://github.com/PyCQA/prospector";
+ license = licenses.gpl2;
+ maintainers = with maintainers; [
+ kamadorueda
+ ];
+ };
+}
diff --git a/pkgs/development/tools/prospector/setoptconf.nix b/pkgs/development/tools/prospector/setoptconf.nix
new file mode 100644
index 00000000000..62b4e95357d
--- /dev/null
+++ b/pkgs/development/tools/prospector/setoptconf.nix
@@ -0,0 +1,26 @@
+{ buildPythonPackage
+, fetchPypi
+, lib
+}:
+
+buildPythonPackage rec {
+ pname = "setoptconf";
+ version = "0.2.0";
+
+ src = fetchPypi {
+ inherit pname version;
+ sha256 = "177l7j68j751i781bgk6pfhxjj7hwqxzdm2ja5fkywbp0275s2sv";
+ };
+
+ # Base tests provided via PyPi are broken
+ doCheck = false;
+
+ meta = with lib; {
+ homepage = "https://pypi.org/project/setoptconf";
+ description = "A module for retrieving program settings from various sources in a consistant method";
+ license = licenses.mit;
+ maintainers = with maintainers; [
+ kamadorueda
+ ];
+ };
+}
diff --git a/pkgs/development/tools/vagrant/default.nix b/pkgs/development/tools/vagrant/default.nix
index 4ef723c9a1f..ea3382f3e70 100644
--- a/pkgs/development/tools/vagrant/default.nix
+++ b/pkgs/development/tools/vagrant/default.nix
@@ -33,6 +33,8 @@ let
for gem in "$out"/lib/ruby/gems/*/gems/*; do
cp -a "$gem/" "$gem.new"
rm "$gem"
+ # needed on macOS, otherwise the mv yields permission denied
+ chmod +w "$gem.new"
mv "$gem.new" "$gem"
done
'';
diff --git a/pkgs/servers/ftp/bftpd/default.nix b/pkgs/servers/ftp/bftpd/default.nix
index e7c22904cea..34757462a17 100644
--- a/pkgs/servers/ftp/bftpd/default.nix
+++ b/pkgs/servers/ftp/bftpd/default.nix
@@ -5,11 +5,11 @@ let
in stdenv.mkDerivation rec {
name = "${pname}-${version}";
- version = "5.2";
+ version = "5.4";
src = fetchurl {
url = "mirror://sourceforge/project/${pname}/${pname}/${name}/${name}.tar.gz";
- sha256 = "0kmavljj3zwpgdib9nb14fnriiv0l9zm3hglimcyz26sxbw5jqky";
+ sha256 = "19fd9r233wkjk8gdxn6qsjgfijiw67a48xhgbm2kq46bx80yf3pg";
};
preConfigure = ''
diff --git a/pkgs/servers/mail/public-inbox/0002-msgtime-drop-Date-Parse-for-RFC2822.patch b/pkgs/servers/mail/public-inbox/0002-msgtime-drop-Date-Parse-for-RFC2822.patch
new file mode 100644
index 00000000000..ebc9a6f2237
--- /dev/null
+++ b/pkgs/servers/mail/public-inbox/0002-msgtime-drop-Date-Parse-for-RFC2822.patch
@@ -0,0 +1,172 @@
+From c9b5164c954cd0de80d971f1c4ced16bf41ea81b Mon Sep 17 00:00:00 2001
+From: Eric Wong
+Date: Fri, 29 Nov 2019 12:25:07 +0000
+Subject: [PATCH 2/2] msgtime: drop Date::Parse for RFC2822
+
+Date::Parse is not optimized for RFC2822 dates and isn't
+packaged on OpenBSD. It's still useful for historical
+email when email clients were less conformant, but is
+less relevant for new emails.
+---
+ lib/PublicInbox/MsgTime.pm | 115 ++++++++++++++++++++++++++++++++-----
+ t/msgtime.t | 6 ++
+ 2 files changed, 107 insertions(+), 14 deletions(-)
+
+diff --git a/lib/PublicInbox/MsgTime.pm b/lib/PublicInbox/MsgTime.pm
+index 58e11d72..e9b27a49 100644
+--- a/lib/PublicInbox/MsgTime.pm
++++ b/lib/PublicInbox/MsgTime.pm
+@@ -7,24 +7,114 @@ use strict;
+ use warnings;
+ use base qw(Exporter);
+ our @EXPORT_OK = qw(msg_timestamp msg_datestamp);
+-use Date::Parse qw(str2time strptime);
++use Time::Local qw(timegm);
++my @MoY = qw(january february march april may june
++ july august september october november december);
++my %MoY;
++@MoY{@MoY} = (0..11);
++@MoY{map { substr($_, 0, 3) } @MoY} = (0..11);
++
++my %OBSOLETE_TZ = ( # RFC2822 4.3 (Obsolete Date and Time)
++ EST => '-0500', EDT => '-0400',
++ CST => '-0600', CDT => '-0500',
++ MST => '-0700', MDT => '-0600',
++ PST => '-0800', PDT => '-0700',
++ UT => '+0000', GMT => '+0000', Z => '+0000',
++
++ # RFC2822 states:
++ # The 1 character military time zones were defined in a non-standard
++ # way in [RFC822] and are therefore unpredictable in their meaning.
++);
++my $OBSOLETE_TZ = join('|', keys %OBSOLETE_TZ);
+
+ sub str2date_zone ($) {
+ my ($date) = @_;
++ my ($ts, $zone);
++
++ # RFC822 is most likely for email, but we can tolerate an extra comma
++ # or punctuation as long as all the data is there.
++ # We'll use '\s' since Unicode spaces won't affect our parsing.
++ # SpamAssassin ignores commas and redundant spaces, too.
++ if ($date =~ /(?:[A-Za-z]+,?\s+)? # day-of-week
++ ([0-9]+),?\s+ # dd
++ ([A-Za-z]+)\s+ # mon
++ ([0-9]{2,})\s+ # YYYY or YY (or YYY :P)
++ ([0-9]+)[:\.] # HH:
++ ((?:[0-9]{2})|(?:\s?[0-9])) # MM
++ (?:[:\.]((?:[0-9]{2})|(?:\s?[0-9])))? # :SS
++ \s+ # a TZ offset is required:
++ ([\+\-])? # TZ sign
++ [\+\-]* # I've seen extra "-" e.g. "--500"
++ ([0-9]+|$OBSOLETE_TZ)(?:\s|$) # TZ offset
++ /xo) {
++ my ($dd, $m, $yyyy, $hh, $mm, $ss, $sign, $tz) =
++ ($1, $2, $3, $4, $5, $6, $7, $8);
++ # don't accept non-English months
++ defined(my $mon = $MoY{lc($m)}) or return;
++
++ if (defined(my $off = $OBSOLETE_TZ{$tz})) {
++ $sign = substr($off, 0, 1);
++ $tz = substr($off, 1);
++ }
++
++ # Y2K problems: 3-digit years, follow RFC2822
++ if (length($yyyy) <= 3) {
++ $yyyy += 1900;
++
++ # and 2-digit years from '09 (2009) (0..49)
++ $yyyy += 100 if $yyyy < 1950;
++ }
++
++ $ts = timegm($ss // 0, $mm, $hh, $dd, $mon, $yyyy);
+
+- my $ts = str2time($date);
+- return undef unless(defined $ts);
++ # Compute the time offset from [+-]HHMM
++ $tz //= 0;
++ my ($tz_hh, $tz_mm);
++ if (length($tz) == 1) {
++ $tz_hh = $tz;
++ $tz_mm = 0;
++ } elsif (length($tz) == 2) {
++ $tz_hh = 0;
++ $tz_mm = $tz;
++ } else {
++ $tz_hh = $tz;
++ $tz_hh =~ s/([0-9]{2})\z//;
++ $tz_mm = $1;
++ }
++ while ($tz_mm >= 60) {
++ $tz_mm -= 60;
++ $tz_hh += 1;
++ }
++ $sign //= '+';
++ my $off = $sign . ($tz_mm * 60 + ($tz_hh * 60 * 60));
++ $ts -= $off;
++ $sign = '+' if $off == 0;
++ $zone = sprintf('%s%02d%02d', $sign, $tz_hh, $tz_mm);
+
+- # off is the time zone offset in seconds from GMT
+- my ($ss,$mm,$hh,$day,$month,$year,$off) = strptime($date);
+- return undef unless(defined $off);
++ # Time::Zone and Date::Parse are part of the same distibution,
++ # and we need Time::Zone to deal with tz names like "EDT"
++ } elsif (eval { require Date::Parse }) {
++ $ts = Date::Parse::str2time($date);
++ return undef unless(defined $ts);
+
+- # Compute the time zone from offset
+- my $sign = ($off < 0) ? '-' : '+';
+- my $hour = abs(int($off / 3600));
+- my $min = ($off / 60) % 60;
+- my $zone = sprintf('%s%02d%02d', $sign, $hour, $min);
++ # off is the time zone offset in seconds from GMT
++ my ($ss,$mm,$hh,$day,$month,$year,$off) =
++ Date::Parse::strptime($date);
++ return undef unless(defined $off);
++
++ # Compute the time zone from offset
++ my $sign = ($off < 0) ? '-' : '+';
++ my $hour = abs(int($off / 3600));
++ my $min = ($off / 60) % 60;
++
++ $zone = sprintf('%s%02d%02d', $sign, $hour, $min);
++ } else {
++ warn "Date::Parse missing for non-RFC822 date: $date\n";
++ return undef;
++ }
+
++ # Note: we've already applied the offset to $ts at this point,
++ # but we want to keep "git fsck" happy.
+ # "-1200" is the furthest westermost zone offset,
+ # but git fast-import is liberal so we use "-1400"
+ if ($zone >= 1400 || $zone <= -1400) {
+@@ -59,9 +149,6 @@ sub msg_date_only ($) {
+ my @date = $hdr->header_raw('Date');
+ my ($ts);
+ foreach my $d (@date) {
+- # Y2K problems: 3-digit years
+- $d =~ s!([A-Za-z]{3}) ([0-9]{3}) ([0-9]{2}:[0-9]{2}:[0-9]{2})!
+- my $yyyy = $2 + 1900; "$1 $yyyy $3"!e;
+ $ts = eval { str2date_zone($d) } and return $ts;
+ if ($@) {
+ my $mid = $hdr->header_raw('Message-ID');
+diff --git a/t/msgtime.t b/t/msgtime.t
+index 6b396602..d9643b65 100644
+--- a/t/msgtime.t
++++ b/t/msgtime.t
+@@ -84,4 +84,10 @@ is_deeply(datestamp('Fri, 28 Jun 2002 12:54:40 -700'), [1025294080, '-0700']);
+ is_deeply(datestamp('Sat, 12 Jan 2002 12:52:57 -200'), [1010847177, '-0200']);
+ is_deeply(datestamp('Mon, 05 Nov 2001 10:36:16 -800'), [1004985376, '-0800']);
+
++# obsolete formats described in RFC2822
++for (qw(UT GMT Z)) {
++ is_deeply(datestamp('Fri, 02 Oct 1993 00:00:00 '.$_), [ 749520000, '+0000']);
++}
++is_deeply(datestamp('Fri, 02 Oct 1993 00:00:00 EDT'), [ 749534400, '-0400']);
++
+ done_testing();
+--
+2.24.1
+
diff --git a/pkgs/servers/mail/public-inbox/default.nix b/pkgs/servers/mail/public-inbox/default.nix
index b4749558500..affcb0e8b23 100644
--- a/pkgs/servers/mail/public-inbox/default.nix
+++ b/pkgs/servers/mail/public-inbox/default.nix
@@ -1,4 +1,4 @@
-{ buildPerlPackage, lib, fetchurl, makeWrapper
+{ buildPerlPackage, lib, fetchurl, fetchpatch, makeWrapper
, DBDSQLite, EmailMIME, IOSocketSSL, IPCRun, Plack, PlackMiddlewareReverseProxy
, SearchXapian, TimeDate, URI
, git, highlight, openssl, xapian
@@ -29,6 +29,14 @@ buildPerlPackage rec {
sha256 = "0sa2m4f2x7kfg3mi4im7maxqmqvawafma8f7g92nyfgybid77g6s";
};
+ patches = [
+ (fetchpatch {
+ url = "https://public-inbox.org/meta/20200101032822.GA13063@dcvr/raw";
+ sha256 = "0ncxqqkvi5lwi8zaa7lk7l8mf8h278raxsvbvllh3z7jhfb48r3l";
+ })
+ ./0002-msgtime-drop-Date-Parse-for-RFC2822.patch
+ ];
+
outputs = [ "out" "devdoc" "sa_config" ];
postConfigure = ''
diff --git a/pkgs/tools/admin/azure-cli/default.nix b/pkgs/tools/admin/azure-cli/default.nix
index 1a492c41aee..cc793f8300d 100644
--- a/pkgs/tools/admin/azure-cli/default.nix
+++ b/pkgs/tools/admin/azure-cli/default.nix
@@ -1,12 +1,12 @@
{ stdenv, lib, python, fetchFromGitHub, installShellFiles }:
let
- version = "2.0.79";
+ version = "2.0.80";
src = fetchFromGitHub {
owner = "Azure";
repo = "azure-cli";
rev = "azure-cli-${version}";
- sha256 = "0fzpq5fnqxkjghsjk4hi3jng5lgywpvj3fzb5sb7nb7ymvkvhad2";
+ sha256 = "05j74cfxjpi3w79w0i5av3h2m81bavbsc581vvh773ixivndds1k";
};
# put packages that needs to be overriden in the py package scope
diff --git a/pkgs/tools/admin/azure-cli/python-packages.nix b/pkgs/tools/admin/azure-cli/python-packages.nix
index ac0e633cb96..290800e4226 100644
--- a/pkgs/tools/admin/azure-cli/python-packages.nix
+++ b/pkgs/tools/admin/azure-cli/python-packages.nix
@@ -207,8 +207,8 @@ let
azure-mgmt-authorization = overrideAzureMgmtPackage super.azure-mgmt-authorization "0.52.0" "zip"
"0357laxgldb7lvvws81r8xb6mrq9dwwnr1bnwdnyj4bw6p21i9hn";
- azure-mgmt-storage = overrideAzureMgmtPackage super.azure-mgmt-storage "7.0.0" "zip"
- "01f17fb1myskj72zarc67i1sxfvk66lid9zn12gwjrz2vqc6npkz";
+ azure-mgmt-storage = overrideAzureMgmtPackage super.azure-mgmt-storage "7.1.0" "zip"
+ "03yjvw1dwkwsadsv60i625mr9zpdryy7ywvh7p8fg60djszh1p5l";
azure-mgmt-servicefabric = overrideAzureMgmtPackage super.azure-mgmt-servicefabric "0.2.0" "zip"
"1bcq6fcgrsvmk6q7v8mxzn1180jm2qijdqkqbv1m117zp1wj5gxj";
diff --git a/pkgs/tools/admin/eksctl/default.nix b/pkgs/tools/admin/eksctl/default.nix
index e5fcf3933eb..3cadafc633e 100644
--- a/pkgs/tools/admin/eksctl/default.nix
+++ b/pkgs/tools/admin/eksctl/default.nix
@@ -2,16 +2,16 @@
buildGoModule rec {
pname = "eksctl";
- version = "0.11.1";
+ version = "0.12.0";
src = fetchFromGitHub {
owner = "weaveworks";
repo = pname;
rev = version;
- sha256 = "197lf6cb1maam1yxy29wgp4dkakaavmwqvq2d9i4qxhscalrdra5";
+ sha256 = "1m4hcj2bi9v3ngjj2x1fifcnb450jrij06vbi3j28slsdwn1bcc8";
};
- modSha256 = "04ba3dyfwlf0m6kn7yp7qyp3h2qdwp17y1f9pa79y3c6sd2nadk2";
+ modSha256 = "1c8qyxzfazgw77rlv3yw2x39ymaq66jjd51im0jl4131a6hzj6fd";
subPackages = [ "cmd/eksctl" ];
diff --git a/pkgs/tools/misc/diffoscope/default.nix b/pkgs/tools/misc/diffoscope/default.nix
index b64c527a6b9..c9f61ee3459 100644
--- a/pkgs/tools/misc/diffoscope/default.nix
+++ b/pkgs/tools/misc/diffoscope/default.nix
@@ -35,11 +35,14 @@ python3Packages.buildPythonApplication rec {
#
# Still missing these tools: abootimg docx2txt dumpxsb enjarify js-beautify lipo oggDump otool procyon-decompiler Rscript wasm2wat zipnode
# Also these libraries: python3-guestfs
- pythonPath = with python3Packages; [ debian libarchive-c python_magic tlsh rpm pyxattr ] ++ [
- acl binutils-unwrapped bzip2 cdrkit colordiff coreutils cpio db diffutils
+ pythonPath = [
+ binutils-unwrapped bzip2 colordiff coreutils cpio db diffutils
dtc e2fsprogs file findutils fontforge-fonttools gettext gnutar gzip
- libarchive libcaca lz4 pgpdump progressbar33 sng sqlite squashfsTools unzip xxd xz
- ] ++ lib.optionals enableBloat [
+ libarchive libcaca lz4 pgpdump sng sqlite squashfsTools unzip xxd xz
+ ]
+ ++ (with python3Packages; [ debian libarchive-c python_magic tlsh rpm progressbar33 ])
+ ++ lib.optionals stdenv.isLinux [ python3Packages.pyxattr acl cdrkit ]
+ ++ lib.optionals enableBloat [
apktool cbfstool colord fpc ghc ghostscriptX giflib gnupg gnumeric imagemagick
llvm jdk mono openssh pdftk poppler_utils tcpdump unoconv
python3Packages.guestfs
@@ -69,6 +72,6 @@ python3Packages.buildPythonApplication rec {
homepage = https://wiki.debian.org/ReproducibleBuilds;
license = licenses.gpl3Plus;
maintainers = with maintainers; [ dezgeg ];
- platforms = platforms.linux;
+ platforms = platforms.unix;
};
}
diff --git a/pkgs/tools/misc/snapper/default.nix b/pkgs/tools/misc/snapper/default.nix
index 466a5f3faf1..283503f2878 100644
--- a/pkgs/tools/misc/snapper/default.nix
+++ b/pkgs/tools/misc/snapper/default.nix
@@ -5,13 +5,13 @@
stdenv.mkDerivation rec {
pname = "snapper";
- version = "0.8.7";
+ version = "0.8.8";
src = fetchFromGitHub {
owner = "openSUSE";
repo = "snapper";
rev = "v${version}";
- sha256 = "0605j4f3plb6q8lwf82y2jhply6dwj49jgxk8j16wsbf5k7lqzfq";
+ sha256 = "0wpf82xf61r9r20whhb83wk3408wac1if8awqm3bb36b9j7ni5jr";
};
nativeBuildInputs = [
diff --git a/pkgs/tools/networking/bandwhich/default.nix b/pkgs/tools/networking/bandwhich/default.nix
index cfccefab351..ae45e0c1fc1 100644
--- a/pkgs/tools/networking/bandwhich/default.nix
+++ b/pkgs/tools/networking/bandwhich/default.nix
@@ -2,16 +2,16 @@
rustPlatform.buildRustPackage rec {
pname = "bandwhich";
- version = "0.8.0";
+ version = "0.9.0";
src = fetchFromGitHub {
owner = "imsnif";
repo = pname;
rev = version;
- sha256 = "1pd0hy17knalq4m5517ymbg95fa141843ir9283djlh3iqfgkm37";
+ sha256 = "0gjk84a4ks5107vrchwwnslpbcrprmznjy3sqn2mrwfvw5biycb3";
};
- cargoSha256 = "14mb6rbjxv3r8awvy0rjc23lyhg92q1q1dik6q1za1aq9w8yipwf";
+ cargoSha256 = "1sa81570cvvpqgdcpnb08b0q4c6ap8a2wxfp2z336jzbv0zgv8a6";
buildInputs = stdenv.lib.optional stdenv.isDarwin Security;
diff --git a/pkgs/tools/security/pass/default.nix b/pkgs/tools/security/pass/default.nix
index 5d0e94bc803..54a8f4de7d7 100644
--- a/pkgs/tools/security/pass/default.nix
+++ b/pkgs/tools/security/pass/default.nix
@@ -111,6 +111,12 @@ let
'' + stdenv.lib.optionalString stdenv.isDarwin ''
# 'pass edit' uses hdid, which is not available from the sandbox.
rm -f tests/t0200-edit-tests.sh
+ rm -f tests/t0010-generate-tests.sh
+ rm -f tests/t0020-show-tests.sh
+ rm -f tests/t0050-mv-tests.sh
+ rm -f tests/t0100-insert-tests.sh
+ rm -f tests/t0300-reencryption.sh
+ rm -f tests/t0400-grep.sh
'';
doCheck = false;
diff --git a/pkgs/tools/text/mdcat/default.nix b/pkgs/tools/text/mdcat/default.nix
index 626963bc601..6b19251acf8 100644
--- a/pkgs/tools/text/mdcat/default.nix
+++ b/pkgs/tools/text/mdcat/default.nix
@@ -2,26 +2,28 @@
rustPlatform.buildRustPackage rec {
pname = "mdcat";
- version = "0.14.0";
+ version = "0.15.0";
src = fetchFromGitHub {
owner = "lunaryorn";
repo = pname;
rev = "mdcat-${version}";
- sha256 = "1q8h6pc1i89j1zl4s234inl9v95vsdrry1fzlis89sl2mnbv8ywy";
+ sha256 = "1x9c3cj3y8wvwr74kbz6nrdh61rinr98gcp3hnjpi6c3vg3xx4wh";
};
nativeBuildInputs = [ pkgconfig ];
buildInputs = [ openssl ] ++ stdenv.lib.optional stdenv.isDarwin Security;
- cargoSha256 = "1hxsfls6fpllc9yg5ib3qz6pa62j1y1va8a6356j6812csk4ifnn";
+ cargoSha256 = "1kc434pa72n9xll2r4ddmd9xdwv3ls36cwsmdry392j41zmics51";
checkInputs = [ ansi2html ];
checkPhase = ''
# Skip tests that use the network and that include files.
- cargo test -- --skip terminal::iterm2 --skip terminal::resources::tests::remote \
+ cargo test -- --skip terminal::iterm2 \
--skip magic::tests::detect_mimetype_of_svg_image \
- --skip magic::tests::detect_mimetype_of_png_image
+ --skip magic::tests::detect_mimetype_of_png_image \
+ --skip resources::tests::read_url_with_http_url_fails_when_status_404 \
+ --skip resources::tests::read_url_with_http_url_returns_content_when_status_200
'';
meta = with stdenv.lib; {
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index d84f18969f0..245abf731dd 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -1298,7 +1298,7 @@ in
burpsuite = callPackage ../tools/networking/burpsuite {};
- bs-platform = (callPackage ../development/compilers/bs-platform {}).bs-platform-621;
+ bs-platform = callPackage ../development/compilers/bs-platform {};
c3d = callPackage ../applications/graphics/c3d {
inherit (darwin.apple_sdk.frameworks) Cocoa;
@@ -13653,6 +13653,10 @@ in
buildPythonApplication click future six;
};
+ prospector = callPackage ../development/tools/prospector {
+ python = python37;
+ };
+
protobuf = protobuf3_7;
protobuf3_11 = callPackage ../development/libraries/protobuf/3.11.nix { };
@@ -18211,7 +18215,9 @@ in
bleachbit = callPackage ../applications/misc/bleachbit { };
- blender = callPackage ../applications/misc/blender { };
+ blender = callPackage ../applications/misc/blender {
+ inherit (darwin.apple_sdk.frameworks) Cocoa CoreGraphics ForceFeedback OpenAL OpenGL;
+ };
bluefish = callPackage ../applications/editors/bluefish {
gtk = gtk3;
@@ -18553,6 +18559,7 @@ in
docker-machine-kvm2 = callPackage ../applications/networking/cluster/docker-machine/kvm2.nix { };
docker-machine-xhyve = callPackage ../applications/networking/cluster/docker-machine/xhyve.nix {
inherit (darwin.apple_sdk.frameworks) Hypervisor vmnet;
+ inherit (darwin) cctools;
};
docker-distribution = callPackage ../applications/virtualization/docker/distribution.nix { };
@@ -23915,6 +23922,8 @@ in
nasc = callPackage ../applications/science/math/nasc { };
+ nota = haskellPackages.callPackage ../applications/science/math/nota { };
+
openblas = callPackage ../development/libraries/science/math/openblas { };
# A version of OpenBLAS using 32-bit integers on all platforms for compatibility with
@@ -25799,5 +25808,4 @@ in
sentencepiece = callPackage ../development/libraries/sentencepiece {};
kcli = callPackage ../development/tools/kcli {};
-
}
diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index f9c458aa79e..e8e15384c83 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -108,7 +108,7 @@ in {
inherit buildSetupcfg;
inherit (callPackage ../development/interpreters/python/hooks { })
- eggUnpackHook eggBuildHook eggInstallHook flitBuildHook pipBuildHook pipInstallHook pytestCheckHook pythonCatchConflictsHook pythonImportsCheckHook pythonRemoveBinBytecodeHook setuptoolsBuildHook setuptoolsCheckHook wheelUnpackHook;
+ eggUnpackHook eggBuildHook eggInstallHook flitBuildHook pipBuildHook pipInstallHook pytestCheckHook pythonCatchConflictsHook pythonImportsCheckHook pythonRemoveBinBytecodeHook setuptoolsBuildHook setuptoolsCheckHook venvShellHook wheelUnpackHook;
# helpers
@@ -4831,6 +4831,12 @@ in {
pylint = if isPy3k then callPackage ../development/python-modules/pylint { }
else callPackage ../development/python-modules/pylint/1.9.nix { };
+ pylint-celery = callPackage ../development/python-modules/pylint-celery { };
+
+ pylint-django = callPackage ../development/python-modules/pylint-django { };
+
+ pylint-flask = callPackage ../development/python-modules/pylint-flask { };
+
pylint-plugin-utils = callPackage ../development/python-modules/pylint-plugin-utils { };
pyomo = callPackage ../development/python-modules/pyomo { };
@@ -4941,6 +4947,8 @@ in {
pynmea2 = callPackage ../development/python-modules/pynmea2 {};
+ pynrrd = callPackage ../development/python-modules/pynrrd { };
+
pynzb = callPackage ../development/python-modules/pynzb { };
process-tests = callPackage ../development/python-modules/process-tests { };