diff --git a/lib/default.nix b/lib/default.nix index ccfee2ebe303..8e29ef5c4201 100644 --- a/lib/default.nix +++ b/lib/default.nix @@ -116,7 +116,7 @@ let pushDownProperties dischargeProperties filterOverrides sortProperties fixupOptionType mkIf mkAssert mkMerge mkOverride mkOptionDefault mkDefault mkForce mkVMOverride - mkOrder mkBefore mkAfter mkAliasDefinitions + mkFixStrictness mkOrder mkBefore mkAfter mkAliasDefinitions mkAliasAndWrapDefinitions fixMergeModules mkRemovedOptionModule mkRenamedOptionModule mkMergedOptionModule mkChangedOptionModule mkAliasOptionModule doRename; diff --git a/lib/modules.nix b/lib/modules.nix index 58c6cda58e49..ab2bc4f7f8e2 100644 --- a/lib/modules.nix +++ b/lib/modules.nix @@ -713,6 +713,8 @@ rec { mkForce = mkOverride 50; mkVMOverride = mkOverride 10; # used by ‘nixos-rebuild build-vm’ + mkFixStrictness = lib.warn "lib.mkFixStrictness has no effect and will be removed. It returns its argument unmodified, so you can just remove any calls." id; + mkOrder = priority: content: { _type = "order"; inherit priority content; diff --git a/pkgs/applications/graphics/darktable/default.nix b/pkgs/applications/graphics/darktable/default.nix index cc15b96b4b6e..540a74e6524f 100644 --- a/pkgs/applications/graphics/darktable/default.nix +++ b/pkgs/applications/graphics/darktable/default.nix @@ -3,7 +3,7 @@ , ilmbase, gtk3, intltool, lcms2, lensfun, libX11, libexif, libgphoto2, libjpeg , libpng, librsvg, libtiff, openexr, osm-gps-map, pkg-config, sqlite, libxslt , openjpeg, lua, pugixml, colord, colord-gtk, libwebp, libsecret, gnome -, ocl-icd, pcre, gtk-mac-integration, isocodes, llvmPackages +, ocl-icd, pcre, gtk-mac-integration, isocodes, llvmPackages, gmic, libavif, icu }: stdenv.mkDerivation rec { @@ -21,7 +21,7 @@ stdenv.mkDerivation rec { cairo curl exiv2 glib gtk3 ilmbase lcms2 lensfun libexif libgphoto2 libjpeg libpng librsvg libtiff openexr sqlite libxslt libsoup graphicsmagick json-glib openjpeg lua pugixml - libwebp libsecret gnome.adwaita-icon-theme osm-gps-map pcre isocodes + libwebp libsecret gnome.adwaita-icon-theme osm-gps-map pcre isocodes gmic libavif icu ] ++ lib.optionals stdenv.isLinux [ colord colord-gtk libX11 ocl-icd ] ++ lib.optional stdenv.isDarwin gtk-mac-integration diff --git a/pkgs/applications/misc/mako/default.nix b/pkgs/applications/misc/mako/default.nix index f28292cb2f16..8f984db7df52 100644 --- a/pkgs/applications/misc/mako/default.nix +++ b/pkgs/applications/misc/mako/default.nix @@ -5,13 +5,13 @@ stdenv.mkDerivation rec { pname = "mako"; - version = "1.5"; + version = "1.6"; src = fetchFromGitHub { owner = "emersion"; repo = pname; rev = "v${version}"; - sha256 = "0f92krcgybl4113g2gawf7lcbh1fss7bq4cx81h1zyn7yvxlwx2b"; + sha256 = "sha256-RcPwZ5NeO9vxwPWfgj5x3wVdCYGKumnYT3ngHEAWfW0="; }; nativeBuildInputs = [ meson ninja pkg-config scdoc wayland-protocols wrapGAppsHook ]; diff --git a/pkgs/applications/science/math/getdp/default.nix b/pkgs/applications/science/math/getdp/default.nix index 39d9c866caef..5ea3550d08a4 100644 --- a/pkgs/applications/science/math/getdp/default.nix +++ b/pkgs/applications/science/math/getdp/default.nix @@ -1,15 +1,19 @@ { lib, stdenv, fetchurl, cmake, gfortran, blas, lapack, mpi, petsc, python3 }: stdenv.mkDerivation rec { - name = "getdp-${version}"; + pname = "getdp"; version = "3.3.0"; src = fetchurl { url = "http://getdp.info/src/getdp-${version}-source.tgz"; sha256 = "1pfviy2bw8z5y6c15czvlvyjjg9pvpgrj9fr54xfi2gmvs7zkgpf"; }; - nativeBuildInputs = [ cmake gfortran ]; - buildInputs = [ blas lapack mpi petsc python3 ]; + inherit (petsc) mpiSupport; + nativeBuildInputs = [ cmake python3 ]; + buildInputs = [ gfortran blas lapack petsc ] + ++ lib.optional mpiSupport mpi + ; + cmakeFlags = lib.optional mpiSupport "-DENABLE_MPI=1"; meta = with lib; { description = "A General Environment for the Treatment of Discrete Problems"; diff --git a/pkgs/development/compilers/gcc-arm-embedded/10/default.nix b/pkgs/development/compilers/gcc-arm-embedded/10/default.nix index 943ddd100a21..88dd4d37f7b9 100644 --- a/pkgs/development/compilers/gcc-arm-embedded/10/default.nix +++ b/pkgs/development/compilers/gcc-arm-embedded/10/default.nix @@ -7,6 +7,7 @@ stdenv.mkDerivation rec { pname = "gcc-arm-embedded"; version = "10-2020-q4-major"; + numVersion = "10.2.1"; subdir = "10-2020q4"; suffix = { diff --git a/pkgs/development/compilers/gcc-arm-embedded/6/default.nix b/pkgs/development/compilers/gcc-arm-embedded/6/default.nix index 266863d95b2e..6dd6ab027f1a 100644 --- a/pkgs/development/compilers/gcc-arm-embedded/6/default.nix +++ b/pkgs/development/compilers/gcc-arm-embedded/6/default.nix @@ -7,6 +7,7 @@ stdenv.mkDerivation rec { pname = "gcc-arm-embedded"; version = "6-2017-q2-update"; + numVersion = "6.3.1"; subdir = "6-2017q2"; suffix = { diff --git a/pkgs/development/compilers/gcc-arm-embedded/7/default.nix b/pkgs/development/compilers/gcc-arm-embedded/7/default.nix index 4f2135446f61..d2ff1c875508 100644 --- a/pkgs/development/compilers/gcc-arm-embedded/7/default.nix +++ b/pkgs/development/compilers/gcc-arm-embedded/7/default.nix @@ -7,6 +7,7 @@ stdenv.mkDerivation rec { pname = "gcc-arm-embedded"; version = "7-2018-q2-update"; + numVersion = "7.3.1"; subdir = "7-2018q2"; suffix = { diff --git a/pkgs/development/compilers/gcc-arm-embedded/8/default.nix b/pkgs/development/compilers/gcc-arm-embedded/8/default.nix index 2d85113527c0..4fbc58f15a8d 100644 --- a/pkgs/development/compilers/gcc-arm-embedded/8/default.nix +++ b/pkgs/development/compilers/gcc-arm-embedded/8/default.nix @@ -7,6 +7,7 @@ stdenv.mkDerivation rec { pname = "gcc-arm-embedded"; version = "8-2019-q3-update"; + numVersion = "8.3.1"; subdir = "8-2019q3/RC1.1"; suffix = { diff --git a/pkgs/development/compilers/gcc-arm-embedded/9/default.nix b/pkgs/development/compilers/gcc-arm-embedded/9/default.nix index 944d7c7b1593..073dc10dd44c 100644 --- a/pkgs/development/compilers/gcc-arm-embedded/9/default.nix +++ b/pkgs/development/compilers/gcc-arm-embedded/9/default.nix @@ -7,6 +7,7 @@ stdenv.mkDerivation rec { pname = "gcc-arm-embedded"; version = "9-2020-q2-update"; + numVersion = "9.3.1"; subdir = "9-2020q2"; suffix = { diff --git a/pkgs/development/libraries/science/math/petsc/default.nix b/pkgs/development/libraries/science/math/petsc/default.nix index f06a028fe64f..ee495deedc1e 100644 --- a/pkgs/development/libraries/science/math/petsc/default.nix +++ b/pkgs/development/libraries/science/math/petsc/default.nix @@ -1,4 +1,20 @@ -{ lib, stdenv , darwin , fetchurl , blas , gfortran , lapack , python }: +{ lib +, stdenv +, fetchurl +, darwin +, gfortran +, python3 +, blas +, lapack +, mpi # generic mpi dependency +, openssh # required for openmpi tests +, petsc-withp4est ? true +, p4est +, zlib # propagated by p4est but required by petsc +}: + +# This version of PETSc does not support a non-MPI p4est build +assert petsc-withp4est -> p4est.mpiSupport; stdenv.mkDerivation rec { pname = "petsc"; @@ -9,44 +25,53 @@ stdenv.mkDerivation rec { sha256 = "04vy3qyakikslc58qyv8c9qrwlivix3w6znc993i37cvfg99dch9"; }; - nativeBuildInputs = [ blas gfortran gfortran.cc.lib lapack python ]; + mpiSupport = !withp4est || p4est.mpiSupport; + withp4est = petsc-withp4est; - # Upstream does some hot she-py-bang stuff, this change streamlines that - # process. The original script in upstream is both a shell script and a - # python script, where the shellscript just finds a suitable python - # interpreter to execute the python script. See - # https://github.com/NixOS/nixpkgs/pull/89299#discussion_r450203444 - # for more details. - prePatch = '' - substituteInPlace configure \ - --replace /bin/sh /usr/bin/python - '' + lib.optionalString stdenv.isDarwin '' + nativeBuildInputs = [ python3 gfortran ]; + buildInputs = [ blas lapack ] + ++ lib.optional mpiSupport mpi + ++ lib.optional (mpiSupport && mpi.pname == "openmpi") openssh + ++ lib.optional withp4est p4est + ; + + prePatch = lib.optionalString stdenv.isDarwin '' substituteInPlace config/install.py \ --replace /usr/bin/install_name_tool ${darwin.cctools}/bin/install_name_tool ''; preConfigure = '' export FC="${gfortran}/bin/gfortran" F77="${gfortran}/bin/gfortran" - patchShebangs . + patchShebangs ./lib/petsc/bin configureFlagsArray=( $configureFlagsArray - "--CC=$CC" - "--with-cxx=$CXX" - "--with-fc=$FC" - "--with-mpi=0" - "--with-blas-lib=[${blas}/lib/libblas.so,${gfortran.cc.lib}/lib/libgfortran.a]" - "--with-lapack-lib=[${lapack}/lib/liblapack.so,${gfortran.cc.lib}/lib/libgfortran.a]" + ${if !mpiSupport then '' + "--with-mpi=0" + '' else '' + "--CC=mpicc" + "--with-cxx=mpicxx" + "--with-fc=mpif90" + "--with-mpi=1" + ''} + ${if withp4est then '' + "--with-p4est=1" + "--with-zlib-include=${zlib.dev}/include" + "--with-zlib-lib=-L${zlib}/lib -lz" + '' else ""} + "--with-blas=1" + "--with-lapack=1" ) ''; + configureScript = "python ./configure"; + + enableParallelBuilding = true; + doCheck = stdenv.hostPlatform == stdenv.buildPlatform; + meta = with lib; { - description = '' - Library of linear algebra algorithms for solving partial differential - equations - ''; + description = "Portable Extensible Toolkit for Scientific computation"; homepage = "https://www.mcs.anl.gov/petsc/index.html"; license = licenses.bsd2; - maintainers = with maintainers; [ wucke13 ]; - platforms = platforms.all; + maintainers = with maintainers; [ wucke13 cburstedde ]; }; } diff --git a/pkgs/development/ocaml-modules/data-encoding/default.nix b/pkgs/development/ocaml-modules/data-encoding/default.nix new file mode 100644 index 000000000000..2e4e0518a522 --- /dev/null +++ b/pkgs/development/ocaml-modules/data-encoding/default.nix @@ -0,0 +1,46 @@ +{ lib +, fetchFromGitLab +, buildDunePackage +, ezjsonm +, zarith +, hex +, json-data-encoding +, json-data-encoding-bson +, alcotest +, crowbar +}: + +buildDunePackage { + pname = "data-encoding"; + version = "0.2.0"; + + src = fetchFromGitLab { + owner = "nomadic-labs"; + repo = "data-encoding"; + rev = "0.2"; + sha256 = "0d9c2ix2imqk4r0jfhnwak9laarlbsq9kmswvbnjzdm2g0hwin1d"; + }; + useDune2 = true; + + propagatedBuildInputs = [ + ezjsonm + zarith + hex + json-data-encoding + json-data-encoding-bson + ]; + + checkInputs = [ + alcotest + crowbar + ]; + + doCheck = true; + + meta = { + homepage = "https://gitlab.com/nomadic-labs/data-encoding"; + description = "Library of JSON and binary encoding combinators"; + license = lib.licenses.mit; + maintainers = [ lib.maintainers.ulrikstrid ]; + }; +} diff --git a/pkgs/development/ocaml-modules/json-data-encoding/bson.nix b/pkgs/development/ocaml-modules/json-data-encoding/bson.nix new file mode 100644 index 000000000000..5048a8fd06a7 --- /dev/null +++ b/pkgs/development/ocaml-modules/json-data-encoding/bson.nix @@ -0,0 +1,20 @@ +{ lib, buildDunePackage, json-data-encoding, ocplib-endian, crowbar }: + +buildDunePackage { + pname = "json-data-encoding-bson"; + + inherit (json-data-encoding) version src useDune2 doCheck; + + propagatedBuildInputs = [ + json-data-encoding + ocplib-endian + ]; + + checkInputs = [ + crowbar + ]; + + meta = json-data-encoding.meta // { + description = "Type-safe encoding to and decoding from JSON (bson support)"; + }; +} diff --git a/pkgs/development/ocaml-modules/json-data-encoding/default.nix b/pkgs/development/ocaml-modules/json-data-encoding/default.nix new file mode 100644 index 000000000000..6dfea612b10a --- /dev/null +++ b/pkgs/development/ocaml-modules/json-data-encoding/default.nix @@ -0,0 +1,31 @@ +{ lib, fetchFromGitLab, buildDunePackage, uri, crowbar }: + +buildDunePackage rec { + pname = "json-data-encoding"; + version = "0.8"; + + src = fetchFromGitLab { + owner = "nomadic-labs"; + repo = "json-data-encoding"; + rev = "v${version}"; + sha256 = "1c6m2qvi9bm6qjxc38p6cia1f66r0rb9xf6b8svlj3jjymvqw889"; + }; + useDune2 = true; + + propagatedBuildInputs = [ + uri + ]; + + checkInputs = [ + crowbar + ]; + + doCheck = true; + + meta = { + homepage = "https://gitlab.com/nomadic-labs/json-data-encoding"; + description = "Type-safe encoding to and decoding from JSON"; + license = lib.licenses.lgpl3; + maintainers = [ lib.maintainers.ulrikstrid ]; + }; +} diff --git a/pkgs/development/python-modules/pre-commit-hooks/default.nix b/pkgs/development/python-modules/pre-commit-hooks/default.nix index f664d9c6d25e..212fdf6a721a 100644 --- a/pkgs/development/python-modules/pre-commit-hooks/default.nix +++ b/pkgs/development/python-modules/pre-commit-hooks/default.nix @@ -1,9 +1,8 @@ -{ buildPythonPackage +{ lib +, buildPythonPackage , fetchFromGitHub -, fetchPypi , git -, isPy27 -, lib +, pythonOlder , pytestCheckHook , ruamel_yaml , toml @@ -11,19 +10,25 @@ buildPythonPackage rec { pname = "pre-commit-hooks"; - version = "3.4.0"; - disabled = isPy27; + version = "4.0.1"; + disabled = pythonOlder "3.6"; - # fetchPypi does not provide tests src = fetchFromGitHub { owner = "pre-commit"; repo = pname; rev = "v${version}"; - sha256 = "1aqkmprdc2lhds9c59pkkf2js65j63197flanaggk7cm8k0kz7zs"; + sha256 = "sha256-Rg2I79r0Pp3AUgT6mD+kEdm+5CEGgdmFn6G3xcU6fnk="; }; - propagatedBuildInputs = [ toml ruamel_yaml ]; - checkInputs = [ git pytestCheckHook ]; + propagatedBuildInputs = [ + ruamel_yaml + toml + ]; + + checkInputs = [ + git + pytestCheckHook + ]; # the tests require a functional git installation which requires a valid HOME # directory. @@ -34,6 +39,8 @@ buildPythonPackage rec { git config --global user.email "nix-builder@nixos.org" ''; + pythonImportsCheck = [ "pre_commit_hooks" ]; + meta = with lib; { description = "Some out-of-the-box hooks for pre-commit"; homepage = "https://github.com/pre-commit/pre-commit-hooks"; diff --git a/pkgs/top-level/ocaml-packages.nix b/pkgs/top-level/ocaml-packages.nix index 977d70e7ef15..31ef92e42048 100644 --- a/pkgs/top-level/ocaml-packages.nix +++ b/pkgs/top-level/ocaml-packages.nix @@ -242,6 +242,8 @@ let dap = callPackage ../development/ocaml-modules/dap { }; + data-encoding = callPackage ../development/ocaml-modules/data-encoding { }; + decompress = callPackage ../development/ocaml-modules/decompress { }; diet = callPackage ../development/ocaml-modules/diet { }; @@ -548,6 +550,10 @@ let jsonm = callPackage ../development/ocaml-modules/jsonm { }; + json-data-encoding = callPackage ../development/ocaml-modules/json-data-encoding { }; + + json-data-encoding-bson = callPackage ../development/ocaml-modules/json-data-encoding/bson.nix { }; + junit = callPackage ../development/ocaml-modules/junit { }; junit_ounit = callPackage ../development/ocaml-modules/junit/ounit.nix { }; junit_alcotest = callPackage ../development/ocaml-modules/junit/alcotest.nix { };