diff --git a/.editorconfig b/.editorconfig index 43970edebe5..f3489267888 100644 --- a/.editorconfig +++ b/.editorconfig @@ -105,6 +105,9 @@ insert_final_newline = unset indent_size = unset trim_trailing_whitespace = unset +[pkgs/tools/misc/timidity/timidity.cfg] +trim_trailing_whitespace = unset + [pkgs/top-level/emscripten-packages.nix] trim_trailing_whitespace = unset diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index cb0264b0167..fd2a6073df6 100644 --- a/.github/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -55,7 +55,7 @@ Follow these steps to backport a change into a release branch in compliance with 1. Take note of the commits in which the change was introduced into `master` branch. 2. Check out the target _release branch_, e.g. `release-20.03`. Do not use a _channel branch_ like `nixos-20.03` or `nixpkgs-20.03`. 3. Create a branch for your change, e.g. `git checkout -b backport`. -4. When the reason to backport is not obvious from the original commit message, use `git cherry-pick -xe ` and add a reason. Otherwise use `git cherry-pick -x `. That's fine for minor version updates that only include security and bug fixes, commits that fixes an otherwise broken package or similar. +4. When the reason to backport is not obvious from the original commit message, use `git cherry-pick -xe ` and add a reason. Otherwise use `git cherry-pick -x `. That's fine for minor version updates that only include security and bug fixes, commits that fixes an otherwise broken package or similar. Please also ensure the commits exists on the master branch; in the case of squashed or rebased merges, the commit hash will change and the new commits can be found in the merge message at the bottom of the master pull request. 5. Push to GitHub and open a backport pull request. Make sure to select the release branch (e.g. `release-20.03`) as the target branch of the pull request, and link to the pull request in which the original change was comitted to `master`. The pull request title should be the commit title with the release version as prefix, e.g. `[20.03]`. ## Reviewing contributions diff --git a/flake.nix b/flake.nix index e7c04417ac8..8440c460b16 100644 --- a/flake.nix +++ b/flake.nix @@ -5,7 +5,6 @@ outputs = { self }: let - jobs = import ./pkgs/top-level/release.nix { nixpkgs = self; }; @@ -28,10 +27,31 @@ lib = lib.extend (final: prev: { nixosSystem = { modules, ... } @ args: import ./nixos/lib/eval-config.nix (args // { - modules = modules ++ - [ { system.nixos.versionSuffix = + modules = + let + vmConfig = (import ./nixos/lib/eval-config.nix + (args // { + modules = modules ++ [ ./nixos/modules/virtualisation/qemu-vm.nix ]; + })).config; + + vmWithBootLoaderConfig = (import ./nixos/lib/eval-config.nix + (args // { + modules = modules ++ [ + ./nixos/modules/virtualisation/qemu-vm.nix + { virtualisation.useBootLoader = true; } + ]; + })).config; + in + modules ++ [ + { + system.nixos.versionSuffix = ".${final.substring 0 8 (self.lastModifiedDate or self.lastModified)}.${self.shortRev or "dirty"}"; system.nixos.revision = final.mkIf (self ? rev) self.rev; + + system.build = { + vm = vmConfig.system.build.vm; + vmWithBootLoader = vmWithBootLoaderConfig.system.build.vm; + }; } ]; }); diff --git a/nixos/modules/installer/tools/nixos-rebuild.sh b/nixos/modules/installer/tools/nixos-rebuild.sh index ad40fd2811d..909e8b229c8 100644 --- a/nixos/modules/installer/tools/nixos-rebuild.sh +++ b/nixos/modules/installer/tools/nixos-rebuild.sh @@ -438,15 +438,17 @@ if [ -z "$rollback" ]; then if [[ -z $flake ]]; then pathToConfig="$(nixBuild '' -A vm -k "${extraBuildFlags[@]}")" else - echo "$0: 'build-vm' is not supported with '--flake'" >&2 - exit 1 + nix "${flakeFlags[@]}" build "$flake#$flakeAttr.config.system.build.vm" \ + "${extraBuildFlags[@]}" "${lockFlags[@]}" + pathToConfig="$(readlink -f ./result)" fi elif [ "$action" = build-vm-with-bootloader ]; then if [[ -z $flake ]]; then pathToConfig="$(nixBuild '' -A vmWithBootLoader -k "${extraBuildFlags[@]}")" else - echo "$0: 'build-vm-with-bootloader' is not supported with '--flake'" >&2 - exit 1 + nix "${flakeFlags[@]}" build "$flake#$flakeAttr.config.system.build.vmWithBootLoader" \ + "${extraBuildFlags[@]}" "${lockFlags[@]}" + pathToConfig="$(readlink -f ./result)" fi else showSyntax diff --git a/pkgs/applications/audio/sunvox/default.nix b/pkgs/applications/audio/sunvox/default.nix index 48ad9bc971c..2cd48806f7d 100644 --- a/pkgs/applications/audio/sunvox/default.nix +++ b/pkgs/applications/audio/sunvox/default.nix @@ -17,7 +17,7 @@ stdenv.mkDerivation rec { src = fetchurl { url = "http://www.warmplace.ru/soft/sunvox/sunvox-${version}.zip"; - sha256 = "15pyc3dk4dqlivgzki8sv7xpwg3bbn5xv9338g16a0dbn7s3kich"; + sha256 = "04f7psm0lvc09nw7d2wp0sncf37bym2v7hhxp4v8c8gdgayj7k8m"; }; buildInputs = [ unzip ]; diff --git a/pkgs/applications/editors/emacs-modes/melpa-packages.nix b/pkgs/applications/editors/emacs-modes/melpa-packages.nix index c48e342977e..03e9923f737 100644 --- a/pkgs/applications/editors/emacs-modes/melpa-packages.nix +++ b/pkgs/applications/editors/emacs-modes/melpa-packages.nix @@ -196,6 +196,26 @@ let ivy-rtags = fix-rtags super.ivy-rtags; + libgit = super.libgit.overrideAttrs(attrs: { + nativeBuildInputs = (attrs.nativeBuildInputs or []) ++ [ pkgs.cmake ]; + buildInputs = attrs.buildInputs ++ [ pkgs.libgit2 ]; + dontUseCmakeBuildDir = true; + postPatch = '' + sed -i s/'add_subdirectory(libgit2)'// CMakeLists.txt + ''; + postBuild = '' + pushd working/libgit + make + popd + ''; + postInstall = '' + outd=$(echo $out/share/emacs/site-lisp/elpa/libgit-**) + mkdir $outd/build + install -m444 -t $outd/build ./source/src/libegit2.so + rm -r $outd/src $outd/Makefile $outd/CMakeLists.txt + ''; + }); + magit = super.magit.overrideAttrs (attrs: { # searches for Git at build time nativeBuildInputs = diff --git a/pkgs/applications/misc/qcad/default.nix b/pkgs/applications/misc/qcad/default.nix index ad3c884f25e..a0d370c00ac 100644 --- a/pkgs/applications/misc/qcad/default.nix +++ b/pkgs/applications/misc/qcad/default.nix @@ -1,12 +1,16 @@ { boost , fetchFromGitHub +, libGLU , mkDerivationWith , muparser , pkgconfig +, qtbase , qmake -, qt5 +, qtscript +, qtsvg +, qtxmlpatterns +, qttools , stdenv -, libGLU }: mkDerivationWith stdenv.mkDerivation rec { @@ -25,11 +29,11 @@ mkDerivationWith stdenv.mkDerivation rec { ]; postPatch = '' - if ! [ -d src/3rdparty/qt-labs-qtscriptgenerator-${qt5.qtbase.version} ]; then - mkdir src/3rdparty/qt-labs-qtscriptgenerator-${qt5.qtbase.version} + if ! [ -d src/3rdparty/qt-labs-qtscriptgenerator-${qtbase.version} ]; then + mkdir src/3rdparty/qt-labs-qtscriptgenerator-${qtbase.version} cp \ src/3rdparty/qt-labs-qtscriptgenerator-5.14.0/qt-labs-qtscriptgenerator-5.14.0.pro \ - src/3rdparty/qt-labs-qtscriptgenerator-${qt5.qtbase.version}/qt-labs-qtscriptgenerator-${qt5.qtbase.version}.pro + src/3rdparty/qt-labs-qtscriptgenerator-${qtbase.version}/qt-labs-qtscriptgenerator-${qtbase.version}.pro fi ''; @@ -63,7 +67,7 @@ mkDerivationWith stdenv.mkDerivation rec { # workaround to fix the library browser: rm -r $out/lib/plugins/sqldrivers - ln -s -t $out/lib/plugins ${qt5.qtbase}/${qt5.qtbase.qtPluginPrefix}/sqldrivers + ln -s -t $out/lib/plugins ${qtbase}/${qtbase.qtPluginPrefix}/sqldrivers install -Dm644 scripts/qcad_icon.svg $out/share/icons/hicolor/scalable/apps/qcad.svg @@ -74,16 +78,16 @@ mkDerivationWith stdenv.mkDerivation rec { boost muparser libGLU - qt5.qtbase - qt5.qtscript - qt5.qtsvg - qt5.qtxmlpatterns + qtbase + qtscript + qtsvg + qtxmlpatterns ]; nativeBuildInputs = [ pkgconfig - qt5.qmake - qt5.qttools + qmake + qttools ]; enableParallelBuilding = true; @@ -93,6 +97,6 @@ mkDerivationWith stdenv.mkDerivation rec { homepage = "https://qcad.org"; license = licenses.gpl3; maintainers = with maintainers; [ yvesf ]; - platforms = qt5.qtbase.meta.platforms; + platforms = qtbase.meta.platforms; }; } diff --git a/pkgs/applications/version-management/git-and-tools/git-machete/default.nix b/pkgs/applications/version-management/git-and-tools/git-machete/default.nix index 2e1c790348e..cbb69403531 100644 --- a/pkgs/applications/version-management/git-and-tools/git-machete/default.nix +++ b/pkgs/applications/version-management/git-and-tools/git-machete/default.nix @@ -4,11 +4,11 @@ buildPythonApplication rec { pname = "git-machete"; - version = "2.15.5"; + version = "2.15.6"; src = fetchPypi { inherit pname version; - sha256 = "11an0hwva1jlf9y7vd9mscs4g6lzja1rwizsani6411xs6m121a3"; + sha256 = "0ajb3m3i3pfc5v3gshglk7qphk1rpniwx8q8isgx1a6cyarzr9bd"; }; nativeBuildInputs = [ installShellFiles pbr ]; diff --git a/pkgs/build-support/dotnetenv/build-solution.nix b/pkgs/build-support/dotnetenv/build-solution.nix index 62370d361cd..57af1fe9bd4 100644 --- a/pkgs/build-support/dotnetenv/build-solution.nix +++ b/pkgs/build-support/dotnetenv/build-solution.nix @@ -16,20 +16,20 @@ assert modifyPublicMain -> mainClassFile != null; stdenv.mkDerivation { inherit name src; - - buildInputs = [ dotnetfx ]; + + buildInputs = [ dotnetfx ]; preConfigure = '' cd ${baseDir} ''; - + preBuild = '' ${stdenv.lib.optionalString modifyPublicMain '' sed -i -e "s|static void Main|public static void Main|" ${mainClassFile} ''} ${preBuild} ''; - + installPhase = '' addDeps() { @@ -39,44 +39,44 @@ stdenv.mkDerivation { do windowsPath=$(cygpath --windows $i) assemblySearchPaths="$assemblySearchPaths;$windowsPath" - + addDeps $i done fi } - + for i in ${toString assemblyInputs} do - windowsPath=$(cygpath --windows $i) + windowsPath=$(cygpath --windows $i) echo "Using assembly path: $windowsPath" - + if [ "$assemblySearchPaths" = "" ] then assemblySearchPaths="$windowsPath" else assemblySearchPaths="$assemblySearchPaths;$windowsPath" fi - + addDeps $i done - + echo "Assembly search paths are: $assemblySearchPaths" - + if [ "$assemblySearchPaths" != "" ] then echo "Using assembly search paths args: $assemblySearchPathsArg" export AssemblySearchPaths=$assemblySearchPaths fi - + mkdir -p $out MSBuild.exe ${toString slnFile} /nologo /t:${targets} /p:IntermediateOutputPath=$(cygpath --windows $out)\\ /p:OutputPath=$(cygpath --windows $out)\\ /verbosity:${verbosity} ${options} - + # Because .NET assemblies store strings as UTF-16 internally, we cannot detect # hashes. Therefore a text files containing the proper paths is created # We can also use this file the propagate transitive dependencies. - + mkdir -p $out/nix-support - + for i in ${toString assemblyInputs} do echo $i >> $out/nix-support/dotnet-assemblies diff --git a/pkgs/build-support/dotnetenv/default.nix b/pkgs/build-support/dotnetenv/default.nix index 781a5ba8c0e..c7145504eb7 100644 --- a/pkgs/build-support/dotnetenv/default.nix +++ b/pkgs/build-support/dotnetenv/default.nix @@ -10,7 +10,7 @@ let dotnetenv = buildWrapper = import ./wrapper.nix { inherit dotnetenv; }; - + inherit (dotnetfx) assembly20Path wcfPath referenceAssembly30Path referenceAssembly35Path; }; in diff --git a/pkgs/build-support/dotnetenv/wrapper.nix b/pkgs/build-support/dotnetenv/wrapper.nix index 4b07fc27dcb..423303c3084 100644 --- a/pkgs/build-support/dotnetenv/wrapper.nix +++ b/pkgs/build-support/dotnetenv/wrapper.nix @@ -36,25 +36,25 @@ dotnetenv.buildSolution { do windowsPath=$(cygpath --windows $i | sed 's|\\|\\\\|g') assemblySearchArray="$assemblySearchArray @\"$windowsPath\"" - + addRuntimeDeps $i done fi } - + export exePath=$(cygpath --windows $(find ${application} -name \*.exe) | sed 's|\\|\\\\|g') - + # Generate assemblySearchPaths string array contents for path in ${toString assemblyInputs} do assemblySearchArray="$assemblySearchArray @\"$(cygpath --windows $path | sed 's|\\|\\\\|g')\", " addRuntimeDeps $path done - + sed -e "s|@ROOTNAMESPACE@|${namespace}Wrapper|" \ -e "s|@ASSEMBLYNAME@|${namespace}|" \ Wrapper/Wrapper.csproj.in > Wrapper/Wrapper.csproj - + sed -e "s|@NAMESPACE@|${namespace}|g" \ -e "s|@MAINCLASSNAME@|${mainClassName}|g" \ -e "s|@EXEPATH@|$exePath|g" \ diff --git a/pkgs/development/libraries/vmmlib/default.nix b/pkgs/development/libraries/vmmlib/default.nix index 21c186a6732..f191a976437 100644 --- a/pkgs/development/libraries/vmmlib/default.nix +++ b/pkgs/development/libraries/vmmlib/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchFromGitHub, cmake, pkgconfig, boost, blas +{ stdenv, fetchFromGitHub, cmake, pkgconfig, boost, lapack , Accelerate, CoreGraphics, CoreVideo }: @@ -18,7 +18,7 @@ stdenv.mkDerivation rec { ]; nativeBuildInputs = [ pkgconfig cmake ]; - buildInputs = [ boost blas ] + buildInputs = [ boost lapack ] ++ stdenv.lib.optionals stdenv.isDarwin [ Accelerate CoreGraphics CoreVideo ]; enableParallelBuilding = true; @@ -30,11 +30,11 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "A vector and matrix math library implemented using C++ templates"; - longDescription = ''vmmlib is a vector and matrix math library implemented - using C++ templates. Its basic functionality includes a vector - and a matrix class, with additional functionality for the + longDescription = ''vmmlib is a vector and matrix math library implemented + using C++ templates. Its basic functionality includes a vector + and a matrix class, with additional functionality for the often-used 3d and 4d vectors and 3x3 and 4x4 matrices. - More advanced functionality include solvers, frustum + More advanced functionality include solvers, frustum computations and frustum culling classes, and spatial data structures''; license = licenses.bsd2; @@ -43,4 +43,3 @@ stdenv.mkDerivation rec { platforms = platforms.all; }; } - diff --git a/pkgs/development/python-modules/cfn-lint/default.nix b/pkgs/development/python-modules/cfn-lint/default.nix index f18e307c61c..b79bf761317 100644 --- a/pkgs/development/python-modules/cfn-lint/default.nix +++ b/pkgs/development/python-modules/cfn-lint/default.nix @@ -1,28 +1,34 @@ { lib , buildPythonPackage -, fetchPypi +, fetchFromGitHub , pythonOlder -, pyyaml -, six -, requests , aws-sam-translator , importlib-metadata , importlib-resources , jsonpatch , jsonschema -, pathlib2 -, setuptools , junit-xml , networkx +, pathlib2 +, pyyaml +, requests +, setuptools +, six +# Test inputs +, pytestCheckHook +, mock +, pydot }: buildPythonPackage rec { pname = "cfn-lint"; - version = "0.35.0"; + version = "0.35.1"; - src = fetchPypi { - inherit pname version; - sha256 = "42023d89520e3a29891ec2eb4c326eef9d1f7516fe9abee8b6c97ce064187b45"; + src = fetchFromGitHub { + owner = "aws-cloudformation"; + repo = "cfn-python-lint"; + rev = "v${version}"; + sha256 = "1ajb0412hw9fg9m4b3xbpfbp8cixmnpjxrkaks6k749xinzsv7qk"; }; postPatch = '' @@ -30,20 +36,18 @@ buildPythonPackage rec { ''; propagatedBuildInputs = [ - pyyaml - six - requests aws-sam-translator jsonpatch jsonschema - pathlib2 - setuptools junit-xml networkx + pathlib2 + pyyaml + requests + setuptools + six ] ++ lib.optionals (pythonOlder "3.8") [ importlib-metadata importlib-resources ]; - # No tests included in archive - doCheck = false; pythonImportsCheck = [ "cfnlint" "cfnlint.conditions" @@ -60,9 +64,13 @@ buildPythonPackage rec { "cfnlint.transform" ]; + checkInputs = [ pytestCheckHook mock pydot ]; + preCheck = "export PATH=$out/bin:$PATH"; + meta = with lib; { description = "Checks cloudformation for practices and behaviour that could potentially be improved"; homepage = "https://github.com/aws-cloudformation/cfn-python-lint"; + changelog = "https://github.com/aws-cloudformation/cfn-python-lint/blob/master/CHANGELOG.md"; license = licenses.mit; }; } diff --git a/pkgs/development/python-modules/netaddr/default.nix b/pkgs/development/python-modules/netaddr/default.nix index 200392c85f8..95f567a6c0c 100644 --- a/pkgs/development/python-modules/netaddr/default.nix +++ b/pkgs/development/python-modules/netaddr/default.nix @@ -1,41 +1,32 @@ { stdenv , buildPythonPackage , fetchPypi -, pytest -, fetchpatch +, pythonOlder , glibcLocales +, importlib-resources +, pytestCheckHook }: buildPythonPackage rec { pname = "netaddr"; - version = "0.7.19"; + version = "0.8.0"; src = fetchPypi { inherit pname version; - sha256 = "38aeec7cdd035081d3a4c306394b19d677623bf76fa0913f6695127c7753aefd"; + sha256 = "0hx2npi0wnhwlcybilgwlddw6qffx1mb7a3sj4p9s7bvl33mgk6n"; }; LC_ALL = "en_US.UTF-8"; - checkInputs = [ glibcLocales pytest ]; - checkPhase = '' - # fails on python3.7: https://github.com/drkjam/netaddr/issues/182 - py.test \ - -k 'not test_ip_splitter_remove_prefix_larger_than_input_range' \ - netaddr/tests - ''; + propagatedBuildInputs = stdenv.lib.optionals (pythonOlder "3.7") [ importlib-resources ]; - patches = [ - (fetchpatch { - url = "https://github.com/drkjam/netaddr/commit/2ab73f10be7069c9412e853d2d0caf29bd624012.patch"; - sha256 = "0s1cdn9v5alpviabhcjmzc0m2pnpq9dh2fnnk2x96dnry1pshg39"; - }) - ]; + checkInputs = [ glibcLocales pytestCheckHook ]; meta = with stdenv.lib; { - homepage = "https://github.com/drkjam/netaddr/"; + homepage = "https://netaddr.readthedocs.io/en/latest/"; + downloadPage = "https://github.com/netaddr/netaddr/releases"; + changelog = "https://netaddr.readthedocs.io/en/latest/changes.html"; description = "A network address manipulation library for Python"; license = licenses.mit; }; - } diff --git a/pkgs/development/python-modules/pyspice/default.nix b/pkgs/development/python-modules/pyspice/default.nix new file mode 100644 index 00000000000..f2cce09c8b3 --- /dev/null +++ b/pkgs/development/python-modules/pyspice/default.nix @@ -0,0 +1,51 @@ +{ stdenv +, buildPythonPackage +, fetchPypi +, libngspice +, numpy +, ply +, scipy +, pyyaml +, cffi +, requests +, matplotlib +, setuptools +}: + +buildPythonPackage rec { + pname = "PySpice"; + version = "1.4.3"; + + src = fetchPypi { + inherit pname version; + sha256 = "0mnyy8nr06d1al99kniyqcm0p9a8dvkg719s42sajl8yf51sayc9"; + }; + + propagatedBuildInputs = [ + setuptools + requests + pyyaml + cffi + matplotlib + numpy + ply + scipy + libngspice + ]; + + doCheck = false; + pythonImportsCheck = [ "PySpice" ]; + + postPatch = '' + substituteInPlace PySpice/Spice/NgSpice/Shared.py --replace \ + "ffi.dlopen(self.library_path)" \ + "ffi.dlopen('${libngspice}/lib/libngspice${stdenv.hostPlatform.extensions.sharedLibrary}')" + ''; + + meta = with stdenv.lib; { + description = "Simulate electronic circuit using Python and the Ngspice / Xyce simulators"; + homepage = "https://github.com/FabriceSalvaire/PySpice"; + license = licenses.gpl3Only; + maintainers = with maintainers; [ matthuszagh ]; + }; +} diff --git a/pkgs/development/python-modules/scikit-optimize/default.nix b/pkgs/development/python-modules/scikit-optimize/default.nix index f8e30397189..0a5171f22fb 100644 --- a/pkgs/development/python-modules/scikit-optimize/default.nix +++ b/pkgs/development/python-modules/scikit-optimize/default.nix @@ -1,25 +1,29 @@ { lib +, isPy27 , buildPythonPackage , fetchFromGitHub +, matplotlib , numpy , scipy , scikitlearn , pyaml -, pytest +, pytestCheckHook }: buildPythonPackage rec { pname = "scikit-optimize"; - version = "0.6"; + version = "0.8.1"; + disabled = isPy27; src = fetchFromGitHub { owner = "scikit-optimize"; repo = "scikit-optimize"; rev = "v${version}"; - sha256 = "1srbb20k8ddhpcfxwdflapfh6xfyrd3dnclcg3bsfq1byrcmv0d4"; + sha256 = "1bz8gxccx8n99abw49j8h5zf3i568g5hcf8nz1yinma8jqhxjkjh"; }; propagatedBuildInputs = [ + matplotlib numpy scipy scikitlearn @@ -27,14 +31,9 @@ buildPythonPackage rec { ]; checkInputs = [ - pytest + pytestCheckHook ]; - # remove --ignore at next release > 0.6 - checkPhase = '' - pytest skopt --ignore skopt/tests/test_searchcv.py - ''; - meta = with lib; { description = "Sequential model-based optimization toolbox"; homepage = "https://scikit-optimize.github.io/"; diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index c2c471d9772..03b751ae288 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -5383,6 +5383,8 @@ in { pyspf = callPackage ../development/python-modules/pyspf { }; + pyspice = callPackage ../development/python-modules/pyspice { }; + pyspinel = callPackage ../development/python-modules/pyspinel { }; pyspotify = callPackage ../development/python-modules/pyspotify { };