diff options
author | github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> | 2021-08-19 00:02:01 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-08-19 00:02:01 +0000 |
commit | 599a736772d17e629618332d2ab70f97ac286096 (patch) | |
tree | 1d909c09f662455dc053731b061d5ff611913d3c | |
parent | d3795a31f1dc4cad945431bc15ada36a48a915ba (diff) | |
parent | 1edd5e2f251e089e84ed7d5cb15cb21f25b3a28c (diff) | |
download | nixpkgs-599a736772d17e629618332d2ab70f97ac286096.tar nixpkgs-599a736772d17e629618332d2ab70f97ac286096.tar.gz nixpkgs-599a736772d17e629618332d2ab70f97ac286096.tar.bz2 nixpkgs-599a736772d17e629618332d2ab70f97ac286096.tar.lz nixpkgs-599a736772d17e629618332d2ab70f97ac286096.tar.xz nixpkgs-599a736772d17e629618332d2ab70f97ac286096.tar.zst nixpkgs-599a736772d17e629618332d2ab70f97ac286096.zip |
Merge staging-next into staging
66 files changed, 914 insertions, 698 deletions
diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index 9bf862302d6..aa26bd0dc97 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -12316,4 +12316,10 @@ github = "zupo"; githubId = 311580; }; + rski = { + name = "rski"; + email = "rom.skiad+nix@gmail.com"; + github = "rski"; + githubId = 2960312; + }; } diff --git a/nixos/modules/services/web-apps/moodle.nix b/nixos/modules/services/web-apps/moodle.nix index ad1e55d62d1..c854e084e14 100644 --- a/nixos/modules/services/web-apps/moodle.nix +++ b/nixos/modules/services/web-apps/moodle.nix @@ -56,7 +56,7 @@ let mysqlLocal = cfg.database.createLocally && cfg.database.type == "mysql"; pgsqlLocal = cfg.database.createLocally && cfg.database.type == "pgsql"; - phpExt = pkgs.php.withExtensions + phpExt = pkgs.php74.withExtensions ({ enabled, all }: with all; [ iconv mbstring curl openssl tokenizer xmlrpc soap ctype zip gd simplexml dom intl json sqlite3 pgsql pdo_sqlite pdo_pgsql pdo_odbc pdo_mysql pdo mysqli session zlib xmlreader fileinfo filter ]); in { diff --git a/pkgs/applications/audio/mopidy/spotify.nix b/pkgs/applications/audio/mopidy/spotify.nix index 93f62e23f3a..ed68769f665 100644 --- a/pkgs/applications/audio/mopidy/spotify.nix +++ b/pkgs/applications/audio/mopidy/spotify.nix @@ -1,12 +1,14 @@ -{ lib, fetchurl, pythonPackages, mopidy }: +{ lib, fetchFromGitHub, pythonPackages, mopidy }: pythonPackages.buildPythonApplication rec { pname = "mopidy-spotify"; version = "4.1.1"; - src = fetchurl { - url = "https://github.com/mopidy/mopidy-spotify/archive/v${version}.tar.gz"; - sha256 = "0054gqvnx3brpfxr06dcby0z0dirwv9ydi6gj5iz0cxn0fbi6gv2"; + src = fetchFromGitHub { + owner = "mopidy"; + repo = "mopidy-spotify"; + rev = "v${version}"; + sha256 = "1qsac2yy26cdlsmxd523v8ayacs0s6jj9x79sngwap781i63zqrm"; }; propagatedBuildInputs = [ mopidy pythonPackages.pyspotify ]; @@ -17,7 +19,7 @@ pythonPackages.buildPythonApplication rec { homepage = "https://www.mopidy.com/"; description = "Mopidy extension for playing music from Spotify"; license = licenses.asl20; - maintainers = []; - hydraPlatforms = []; + maintainers = with maintainers; [ rski ]; + hydraPlatforms = [ ]; }; } diff --git a/pkgs/applications/audio/spotify-qt/default.nix b/pkgs/applications/audio/spotify-qt/default.nix index 629cc4bd116..70acbd4c31a 100644 --- a/pkgs/applications/audio/spotify-qt/default.nix +++ b/pkgs/applications/audio/spotify-qt/default.nix @@ -9,13 +9,13 @@ mkDerivation rec { pname = "spotify-qt"; - version = "3.6"; + version = "3.7"; src = fetchFromGitHub { owner = "kraxarn"; repo = pname; rev = "v${version}"; - sha256 = "mKHyE6ZffMYYRLMpzMX53chyJyWxhTAaGvtBI3l6wkI="; + sha256 = "sha256-oRrgZtSDebbUVPc+hxE9GJ2n1AmGvZt/2aWrBMmRtNA="; }; buildInputs = [ libxcb qtbase qtsvg ]; diff --git a/pkgs/applications/audio/tagutil/default.nix b/pkgs/applications/audio/tagutil/default.nix new file mode 100644 index 00000000000..802cd00087a --- /dev/null +++ b/pkgs/applications/audio/tagutil/default.nix @@ -0,0 +1,40 @@ +{ stdenv, lib, fetchFromGitHub +, pkg-config, cmake, libyaml +, jansson, libvorbis, taglib +, zlib +}: + +stdenv.mkDerivation rec { + pname = "tagutil"; + version = "3.1"; + + src = fetchFromGitHub { + owner = "kaworu"; + repo = pname; + rev = "v${version}"; + sha256 = "sha256-oY1aGl5CKVtpOfh8Wskio/huWYMiPuxWPqxlooTutcw="; + }; + + sourceRoot = "source/src"; + + nativeBuildInputs = [ + cmake + pkg-config + ]; + + buildInputs = [ + libvorbis + libyaml + jansson + taglib + zlib + ]; + + meta = with lib; { + description = "Scriptable music files tags tool and editor"; + homepage = "https://github.com/kaworu/tagutil"; + license = licenses.bsd2; + maintainers = with maintainers; [ dan4ik605743 ]; + platforms = platforms.linux; + }; +} diff --git a/pkgs/applications/editors/android-studio/common.nix b/pkgs/applications/editors/android-studio/common.nix index cc3f898a29b..8062d26b284 100644 --- a/pkgs/applications/editors/android-studio/common.nix +++ b/pkgs/applications/editors/android-studio/common.nix @@ -1,4 +1,4 @@ -{ channel, pname, version, build ? null, sha256Hash }: +{ channel, pname, version, sha256Hash }: { alsa-lib , bash @@ -55,7 +55,7 @@ let drvName = "android-studio-${channel}-${version}"; - filename = "android-studio-" + (if (build != null) then "ide-${build}" else version) + "-linux.tar.gz"; + filename = "android-studio-${version}-linux.tar.gz"; androidStudio = stdenv.mkDerivation { name = "${drvName}-unwrapped"; diff --git a/pkgs/applications/editors/android-studio/default.nix b/pkgs/applications/editors/android-studio/default.nix index 356eb4923b7..84e1c77603e 100644 --- a/pkgs/applications/editors/android-studio/default.nix +++ b/pkgs/applications/editors/android-studio/default.nix @@ -9,17 +9,16 @@ let inherit buildFHSUserEnv; }; stableVersion = { - version = "4.2.2.0"; # "Android Studio 4.2.2" - build = "202.7486908"; - sha256Hash = "18zc9xr2xmphj6m6a1ilwripmvqzplp2583afq1pzzz3cv5h8fvk"; + version = "2020.3.1.22"; # "Android Studio Arctic Fox (2020.3.1)" + sha256Hash = "0xkjnhq1vvrglcbab90mx5xw1q82lkkvyp6y2ap5jypdfsc7pnsa"; }; betaVersion = { version = "2020.3.1.21"; # "Android Studio Arctic Fox (2020.3.1) RC 1" sha256Hash = "04k7c328bl8ixi8bvp2mm33q2hmv40yc9p5dff5cghyycarwpd3f"; }; latestVersion = { # canary & dev - version = "2021.1.1.4"; # "Android Studio Bumblebee (2021.1.1) Canary 4" - sha256Hash = "0s2py7xikzryqrfd9v3in9ia9qv71dd9aad1nzbda6ff61inzizb"; + version = "2021.1.1.5"; # "Android Studio Bumblebee (2021.1.1) Canary 5" + sha256Hash = "0fx6nnazg4548rhb11wzaccm5c2si57mj8qwyl5j17x4k5r3m7nh"; }; in { # Attributes are named by their corresponding release channels diff --git a/pkgs/applications/misc/anytype/default.nix b/pkgs/applications/misc/anytype/default.nix new file mode 100644 index 00000000000..5574caad902 --- /dev/null +++ b/pkgs/applications/misc/anytype/default.nix @@ -0,0 +1,38 @@ +{ lib, fetchurl, appimageTools }: + +let + pname = "anytype"; + version = "0.18.59"; + name = "Anytype-${version}"; + nameExecutable = pname; + src = fetchurl { + url = "https://at9412003.fra1.digitaloceanspaces.com/Anytype-${version}.AppImage"; + name = "Anytype-${version}.AppImage"; + sha256 = "sha256-HDhDd23kXhIFXg+QKPNpR2R6QC4oJCnut+gD//qMK1Y="; + }; + appimageContents = appimageTools.extractType2 { inherit name src; }; +in +appimageTools.wrapType2 { + inherit name src; + + extraPkgs = { pkgs, ... }@args: [ + pkgs.gnome3.libsecret + ] ++ appimageTools.defaultFhsEnvArgs.multiPkgs args; + + extraInstallCommands = '' + mv $out/bin/${name} $out/bin/${pname} + install -m 444 -D ${appimageContents}/anytype2.desktop -t $out/share/applications + substituteInPlace $out/share/applications/anytype2.desktop \ + --replace 'Exec=AppRun' 'Exec=${pname}' + install -m 444 -D ${appimageContents}/usr/share/icons/hicolor/0x0/apps/anytype2.png \ + $out/share/icons/hicolor/512x512/apps/anytype2.png + ''; + + meta = with lib; { + description = "P2P note-taking tool"; + homepage = "https://anytype.io/"; + license = licenses.unfree; + maintainers = with maintainers; [ bbigras ]; + platforms = [ "x86_64-linux" ]; + }; +} diff --git a/pkgs/applications/misc/zathura/pdf-mupdf/default.nix b/pkgs/applications/misc/zathura/pdf-mupdf/default.nix index 05f6c2b6a65..0da75d323f2 100644 --- a/pkgs/applications/misc/zathura/pdf-mupdf/default.nix +++ b/pkgs/applications/misc/zathura/pdf-mupdf/default.nix @@ -12,12 +12,12 @@ }: stdenv.mkDerivation rec { - version = "0.3.6"; + version = "0.3.7"; pname = "zathura-pdf-mupdf"; src = fetchurl { url = "https://pwmt.org/projects/${pname}/download/${pname}-${version}.tar.xz"; - sha256 = "1r3v37k9fl2rxipvacgxr36llywvy7n20a25h3ajlyk70697sa66"; + sha256 = "07d2ds9yqfrl20z3yfgc55vwg10mwmcg2yvpr4j66jjd5mlal01g"; }; nativeBuildInputs = [ meson ninja pkg-config ]; diff --git a/pkgs/applications/networking/cluster/helm/wrapper.nix b/pkgs/applications/networking/cluster/helm/wrapper.nix index b912e9abe5b..b9322290920 100644 --- a/pkgs/applications/networking/cluster/helm/wrapper.nix +++ b/pkgs/applications/networking/cluster/helm/wrapper.nix @@ -23,8 +23,7 @@ in # Remove the symlinks created by symlinkJoin which we need to perform # extra actions upon postBuild = '' - rm $out/bin/helm - makeWrapper "${helm}/bin/helm" "$out/bin/helm" "--argv0" "$0" \ + wrapProgram "$out/bin/helm" \ "--set" "HELM_PLUGINS" "${pluginsDir}" ${extraMakeWrapperArgs} ''; paths = [ helm pluginsDir ]; diff --git a/pkgs/applications/networking/cluster/terraform/default.nix b/pkgs/applications/networking/cluster/terraform/default.nix index 9bc10753a85..e230313f050 100644 --- a/pkgs/applications/networking/cluster/terraform/default.nix +++ b/pkgs/applications/networking/cluster/terraform/default.nix @@ -195,9 +195,9 @@ rec { }; terraform_1_0 = mkTerraform { - version = "1.0.4"; - sha256 = "09g0ln247scv8mj40gxhkij0li62v0rjm2bsgmvl953aj7g3dlh1"; - vendorSha256 = "07pzqvf9lwgc1fadmyam5hn7arlvzrjsplls445738jpn61854gg"; + version = "1.0.5"; + sha256 = "0nhxrlnwg76iiqs9hj6ls54176df78ys3356nxmd9ip8jx9ix47v"; + vendorSha256 = "08fvp6w8xsv42jjgpr73kyah20g3979rf84ysrq5whvfmrbpzm2f"; patches = [ ./provider-path-0_15.patch ]; passthru = { inherit plugins; }; }; diff --git a/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix b/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix index 9b58931eed2..3f4ba56f5de 100644 --- a/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix +++ b/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix @@ -25,7 +25,7 @@ let else ""); in stdenv.mkDerivation rec { pname = "signal-desktop"; - version = "5.13.1"; # Please backport all updates to the stable channel. + version = "5.14.0"; # Please backport all updates to the stable channel. # All releases have a limited lifetime and "expire" 90 days after the release. # When releases "expire" the application becomes unusable until an update is # applied. The expiration date for the current release can be extracted with: @@ -35,7 +35,7 @@ in stdenv.mkDerivation rec { src = fetchurl { url = "https://updates.signal.org/desktop/apt/pool/main/s/signal-desktop/signal-desktop_${version}_amd64.deb"; - sha256 = "0k3gbs6y19vri5n087wc6fdhydkis3h6rhxd3w1j9rhrb5fxjv3q"; + sha256 = "0rb7ixha07v0l3bm9jbgnlf78l9hhjc9acyd1aji9l4fpq3azbq1"; }; nativeBuildInputs = [ diff --git a/pkgs/applications/video/mpv/scripts/mpv-playlistmanager.nix b/pkgs/applications/video/mpv/scripts/mpv-playlistmanager.nix index b7e95324f58..0b750332ea7 100644 --- a/pkgs/applications/video/mpv/scripts/mpv-playlistmanager.nix +++ b/pkgs/applications/video/mpv/scripts/mpv-playlistmanager.nix @@ -2,13 +2,13 @@ stdenvNoCC.mkDerivation rec { pname = "mpv-playlistmanager"; - version = "unstable-2021-03-09"; + version = "unstable-2021-08-17"; src = fetchFromGitHub { owner = "jonniek"; repo = "mpv-playlistmanager"; - rev = "c15a0334cf6d4581882fa31ddb1e6e7f2d937a3e"; - sha256 = "uxcvgcSGS61UU8MmuD6qMRqpIa53iasH/vkg1xY7MVc="; + rev = "44d6911856a39e9a4057d19b70f21a9bc18bd6a9"; + sha256 = "IwH6XngfrZlKGDab/ut43hzHeino8DmWzWRX8Av21Sk="; }; postPatch = '' diff --git a/pkgs/build-support/skaware/build-skaware-package.nix b/pkgs/build-support/skaware/build-skaware-package.nix index b27b65f48a5..d6f26fe908a 100644 --- a/pkgs/build-support/skaware/build-skaware-package.nix +++ b/pkgs/build-support/skaware/build-skaware-package.nix @@ -15,6 +15,8 @@ # TODO(Profpatsch): automatically infer most of these # : list string , configureFlags + # : string +, postConfigure ? null # mostly for moving and deleting files from the build directory # : lines , postInstall @@ -79,6 +81,8 @@ in stdenv.mkDerivation { ++ (lib.optional stdenv.isDarwin "--build=${stdenv.hostPlatform.system}"); + inherit postConfigure; + # TODO(Profpatsch): ensure that there is always a $doc output! postInstall = '' echo "Cleaning & moving common files" diff --git a/pkgs/development/libraries/aws-c-common/default.nix b/pkgs/development/libraries/aws-c-common/default.nix index 062a05e64a6..ae47959dd3a 100644 --- a/pkgs/development/libraries/aws-c-common/default.nix +++ b/pkgs/development/libraries/aws-c-common/default.nix @@ -2,6 +2,7 @@ , stdenv , fetchFromGitHub , cmake +, coreutils }: stdenv.mkDerivation rec { @@ -22,6 +23,13 @@ stdenv.mkDerivation rec { "-DCMAKE_SKIP_BUILD_RPATH=OFF" # for tests ]; + # Prevent the execution of tests known to be flaky. + preCheck = '' + cat <<EOW >CTestCustom.cmake + SET(CTEST_CUSTOM_TESTS_IGNORE promise_test_multiple_waiters) + EOW + ''; + doCheck = true; meta = with lib; { diff --git a/pkgs/development/libraries/itk/default.nix b/pkgs/development/libraries/itk/default.nix index d84b9f1df62..967910e2a11 100644 --- a/pkgs/development/libraries/itk/default.nix +++ b/pkgs/development/libraries/itk/default.nix @@ -3,13 +3,13 @@ stdenv.mkDerivation rec { pname = "itk"; - version = "5.2.0"; + version = "5.2.1"; src = fetchFromGitHub { owner = "InsightSoftwareConsortium"; repo = "ITK"; rev = "v${version}"; - sha256 = "19f65fc9spwvmywg43lkw9p2inrrzr1qrfzcbing3cjk0x2yrsnl"; + sha256 = "sha256-KaVe9FMGm4ZVMpwAT12fA67T0qZS3ZueiI8z85+xSwE="; }; postPatch = '' diff --git a/pkgs/development/python-modules/ailment/default.nix b/pkgs/development/python-modules/ailment/default.nix index a9ff8c6d181..6cf817f813f 100644 --- a/pkgs/development/python-modules/ailment/default.nix +++ b/pkgs/development/python-modules/ailment/default.nix @@ -7,14 +7,14 @@ buildPythonPackage rec { pname = "ailment"; - version = "9.0.9438"; + version = "9.0.9506"; disabled = pythonOlder "3.6"; src = fetchFromGitHub { owner = "angr"; repo = pname; rev = "v${version}"; - sha256 = "sha256-V/0plNgApk8S/xdd0I8zeE7dqb0xBhqCVSDW7jGHpzo="; + sha256 = "sha256-ikIO6AhoBkmz4+8BLOC55Yh6HbzHJOjlktSDMiC0I38="; }; propagatedBuildInputs = [ pyvex ]; diff --git a/pkgs/development/python-modules/angr/default.nix b/pkgs/development/python-modules/angr/default.nix index d0805d06246..db2ee2c13d1 100644 --- a/pkgs/development/python-modules/angr/default.nix +++ b/pkgs/development/python-modules/angr/default.nix @@ -43,14 +43,14 @@ in buildPythonPackage rec { pname = "angr"; - version = "9.0.9438"; + version = "9.0.9506"; disabled = pythonOlder "3.6"; src = fetchFromGitHub { owner = pname; repo = pname; rev = "v${version}"; - sha256 = "sha256-wbyuphcRw9FtVcwwQq8w0vaYZqWQ0nIyJPaZh+r8ROU="; + sha256 = "sha256-2bKsLmZeFs7N4YUYxIktDoOn/H8waaOaOJOzyVumuf8="; }; propagatedBuildInputs = [ diff --git a/pkgs/development/python-modules/angrop/default.nix b/pkgs/development/python-modules/angrop/default.nix index 2ee8671c0ea..5af743b93fb 100644 --- a/pkgs/development/python-modules/angrop/default.nix +++ b/pkgs/development/python-modules/angrop/default.nix @@ -9,14 +9,14 @@ buildPythonPackage rec { pname = "angrop"; - version = "9.0.9438"; + version = "9.0.9506"; disabled = pythonOlder "3.6"; src = fetchFromGitHub { owner = "angr"; repo = pname; rev = "v${version}"; - sha256 = "sha256-+6fWdl5IcQTygFQbqPSfWvpqdooFN5yeBgPIblOyZEU="; + sha256 = "sha256-dTaTtiMzIm9PfVkjAED9x9zae+vdRcl1kDMtqUWvpkA="; }; propagatedBuildInputs = [ diff --git a/pkgs/development/python-modules/archinfo/default.nix b/pkgs/development/python-modules/archinfo/default.nix index 571e4e291ce..46938694850 100644 --- a/pkgs/development/python-modules/archinfo/default.nix +++ b/pkgs/development/python-modules/archinfo/default.nix @@ -7,13 +7,13 @@ buildPythonPackage rec { pname = "archinfo"; - version = "9.0.9438"; + version = "9.0.9506"; src = fetchFromGitHub { owner = "angr"; repo = pname; rev = "v${version}"; - sha256 = "sha256-C3ZBqCNzXcpeLmAPpXci2AA4D5A3cQC6rHPuf/BmT38="; + sha256 = "sha256-jGXJpwiP2/O2aJhAP15VGqrekiiB0eiIFCjkzNMbqxw="; }; checkInputs = [ diff --git a/pkgs/development/python-modules/bimmer-connected/default.nix b/pkgs/development/python-modules/bimmer-connected/default.nix index 3f69907feb6..932c90cb7aa 100644 --- a/pkgs/development/python-modules/bimmer-connected/default.nix +++ b/pkgs/development/python-modules/bimmer-connected/default.nix @@ -9,7 +9,7 @@ buildPythonPackage rec { pname = "bimmer-connected"; - version = "0.7.18"; + version = "0.7.19"; disabled = pythonOlder "3.5"; @@ -17,7 +17,7 @@ buildPythonPackage rec { owner = "bimmerconnected"; repo = "bimmer_connected"; rev = version; - sha256 = "sha256-90Rli0tiZIO2gtx3EfPXg8U6CSKEmHUiRePjITvov/E="; + sha256 = "sha256-r5x+9W1XadtXb1ClC/0HnjrR+UmrytzUTCpi9IyBbwU="; }; nativeBuildInputs = [ diff --git a/pkgs/development/python-modules/claripy/default.nix b/pkgs/development/python-modules/claripy/default.nix index 155b46d2c07..f85a9919a3f 100644 --- a/pkgs/development/python-modules/claripy/default.nix +++ b/pkgs/development/python-modules/claripy/default.nix @@ -13,14 +13,14 @@ buildPythonPackage rec { pname = "claripy"; - version = "9.0.9438"; + version = "9.0.9506"; disabled = pythonOlder "3.6"; src = fetchFromGitHub { owner = "angr"; repo = pname; rev = "v${version}"; - sha256 = "sha256-QgBdR2Xs3OscJ1PQ3fSwe0vqsKVSl2E7xf7JZ6B2FYA="; + sha256 = "sha256-wczwKTtOJ4VC3UZvd1KT6GfGUk5AS90ggLi2lFjhD+Q="; }; # Use upstream z3 implementation diff --git a/pkgs/development/python-modules/cle/default.nix b/pkgs/development/python-modules/cle/default.nix index b29be9078d6..37a2294934f 100644 --- a/pkgs/development/python-modules/cle/default.nix +++ b/pkgs/development/python-modules/cle/default.nix @@ -15,7 +15,7 @@ let # The binaries are following the argr projects release cycle - version = "9.0.9438"; + version = "9.0.9506"; # Binary files from https://github.com/angr/binaries (only used for testing and only here) binaries = fetchFromGitHub { @@ -35,7 +35,7 @@ buildPythonPackage rec { owner = "angr"; repo = pname; rev = "v${version}"; - sha256 = "sha256-BDhrKVnT1+zeEsQBM3qMDwcPJcePMPlAj/iL7M4GWtM="; + sha256 = "sha256-jTVccnCRqsp3EBl/RSKWVekAOsGhRvdIJxRyYV2gI4Q="; }; propagatedBuildInputs = [ diff --git a/pkgs/development/python-modules/gcsfs/default.nix b/pkgs/development/python-modules/gcsfs/default.nix index 201813b2ec7..db063747e8b 100644 --- a/pkgs/development/python-modules/gcsfs/default.nix +++ b/pkgs/development/python-modules/gcsfs/default.nix @@ -17,14 +17,14 @@ buildPythonPackage rec { pname = "gcsfs"; - version = "2021.06.0"; + version = "2021.07.0"; disabled = pythonOlder "3.6"; src = fetchFromGitHub { owner = "dask"; repo = pname; rev = version; - sha256 = "sha256-tJeCSGK24WC8E7NKupg6/Tv861idWg6WYir+ZXeU+e0="; + sha256 = "sha256-nC/uyhKKam3W+cOOTBULPeG6Hy2bExWYNOfDs1cPt1Y="; }; propagatedBuildInputs = [ diff --git a/pkgs/development/python-modules/google-cloud-asset/default.nix b/pkgs/development/python-modules/google-cloud-asset/default.nix index 437417323fc..4e1dbf8c465 100644 --- a/pkgs/development/python-modules/google-cloud-asset/default.nix +++ b/pkgs/development/python-modules/google-cloud-asset/default.nix @@ -17,11 +17,11 @@ buildPythonPackage rec { pname = "google-cloud-asset"; - version = "3.3.0"; + version = "3.4.0"; src = fetchPypi { inherit pname version; - sha256 = "sha256-/iTpO1Y+v//ZzaXUpOfBOXDRfftpmUV4hxsFmMj3tM0="; + sha256 = "bd1fe84efd2e45042d95c7e5713e0a0365ec8138df062c07fab761233202ab6f"; }; postPatch = '' diff --git a/pkgs/development/python-modules/gym/default.nix b/pkgs/development/python-modules/gym/default.nix index 1bda1d8ac2d..5bcfb64a184 100644 --- a/pkgs/development/python-modules/gym/default.nix +++ b/pkgs/development/python-modules/gym/default.nix @@ -2,38 +2,25 @@ , buildPythonPackage , fetchFromGitHub , numpy -, requests -, pyglet -, scipy -, pillow , cloudpickle }: buildPythonPackage rec { pname = "gym"; - version = "0.18.3"; + version = "0.19.0"; src = fetchFromGitHub { owner = "openai"; repo = pname; rev = version; - sha256 = "sha256-10KHUG6WacYzqna97vEhSQWDmJDvDmD5QxLhPW5NQSs="; + sha256 = "sha256-0O/s9OVNGQmeX9j8B1x63RxdI6dhqfTEJcgDH2jtCv4="; }; propagatedBuildInputs = [ cloudpickle numpy - pillow - pyglet - requests - scipy ]; - postPatch = '' - substituteInPlace setup.py \ - --replace "Pillow<=8.2.0" "Pillow" - ''; - # The test needs MuJoCo that is not free library. doCheck = false; diff --git a/pkgs/development/python-modules/itemadapter/default.nix b/pkgs/development/python-modules/itemadapter/default.nix index e1efb9aa673..d50ad3a78a4 100644 --- a/pkgs/development/python-modules/itemadapter/default.nix +++ b/pkgs/development/python-modules/itemadapter/default.nix @@ -2,13 +2,13 @@ buildPythonPackage rec { pname = "itemadapter"; - version = "0.2.0"; + version = "0.3.0"; disabled = isPy27; src = fetchPypi { inherit pname version; - sha256 = "cb7aaa577fefe2aa6f229ccf4d058e05f44e0178a98c8fb70ee4d95acfabb423"; + sha256 = "ab2651ba20f5f6d0e15f041deba4c13ffc59270def2bd01518d13e94c4cd27d1"; }; doCheck = false; # infinite recursion with Scrapy @@ -18,6 +18,7 @@ buildPythonPackage rec { meta = with lib; { description = "Common interface for data container classes"; homepage = "https://github.com/scrapy/itemadapter"; + changelog = "https://github.com/scrapy/itemadapter/raw/v${version}/Changelog.md"; license = licenses.bsd3; maintainers = [ maintainers.marsam ]; }; diff --git a/pkgs/development/python-modules/jellyfish/default.nix b/pkgs/development/python-modules/jellyfish/default.nix index 9f4b57ba897..436aad07bf8 100644 --- a/pkgs/development/python-modules/jellyfish/default.nix +++ b/pkgs/development/python-modules/jellyfish/default.nix @@ -8,13 +8,13 @@ buildPythonPackage rec { pname = "jellyfish"; - version = "0.8.2"; + version = "0.8.8"; disabled = !isPy3k; src = fetchPypi { inherit pname version; - sha256 = "02q3d9b933hf8lyvg7w7lgmhij8bjs748vjmsfxhabai04a796d4"; + sha256 = "0506089cacf9b5897442134417b04b3c6610c19f280ae535eace390dc6325a5c"; }; checkInputs = [ pytest unicodecsv ]; diff --git a/pkgs/development/python-modules/micawber/default.nix b/pkgs/development/python-modules/micawber/default.nix index 97681291a63..a7956241adf 100644 --- a/pkgs/development/python-modules/micawber/default.nix +++ b/pkgs/development/python-modules/micawber/default.nix @@ -2,11 +2,11 @@ buildPythonPackage rec { pname = "micawber"; - version = "0.5.3"; + version = "0.5.4"; src = fetchPypi { inherit pname version; - sha256 = "05ef4c89e307e3031dd1d85a3a557cd7f9f900f7dbbbcb33dde454940ca38460"; + sha256 = "003c5345aafe84f6b60fd289c003e8b1fef04c14e015c2d52d792a6b88135c89"; }; propagatedBuildInputs = [ beautifulsoup4 ]; diff --git a/pkgs/development/python-modules/nplusone/default.nix b/pkgs/development/python-modules/nplusone/default.nix index 7d29428d93e..d9a340d8249 100644 --- a/pkgs/development/python-modules/nplusone/default.nix +++ b/pkgs/development/python-modules/nplusone/default.nix @@ -1,6 +1,19 @@ -{ blinker, buildPythonPackage, fetchFromGitHub, lib, isPy27, six, mock, pytest -, webtest, pytest-cov, pytest-django, pytest-pythonpath, flake8, sqlalchemy -, flask_sqlalchemy, peewee }: +{ lib +, blinker +, buildPythonPackage +, fetchFromGitHub +, flake8 +, flask_sqlalchemy +, isPy27 +, mock +, peewee +, pytest-django +, pytest-pythonpath +, pytestCheckHook +, six +, sqlalchemy +, webtest +}: buildPythonPackage rec { pname = "nplusone"; @@ -14,6 +27,23 @@ buildPythonPackage rec { sha256 = "0qdwpvvg7dzmksz3vqkvb27n52lq5sa8i06m7idnj5xk2dgjkdxg"; }; + propagatedBuildInputs = [ + blinker + six + ]; + + checkInputs = [ + flake8 + flask_sqlalchemy + mock + peewee + pytest-django + pytest-pythonpath + pytestCheckHook + sqlalchemy + webtest + ]; + # The tests assume the source code is in an nplusone/ directory. When using # the Nix sandbox, it will be in a source/ directory instead, making the # tests fail. @@ -22,24 +52,29 @@ buildPythonPackage rec { --replace nplusone/tests/conftest source/tests/conftest ''; - checkPhase = '' - pytest tests/ + postPatch = '' + substituteInPlace pytest.ini \ + --replace "--cov nplusone --cov-report term-missing" "" ''; - propagatedBuildInputs = [ six blinker ]; - checkInputs = [ - mock - pytest - webtest - pytest-cov - pytest-django - pytest-pythonpath - flake8 - sqlalchemy - flask_sqlalchemy - peewee + disabledTests = [ + # Tests are out-dated + "test_many_to_one" + "test_many_to_many" + "test_eager_join" + "test_eager_subquery" + "test_eager_subquery_unused" + "test_many_to_many_raise" + "test_many_to_many_whitelist_decoy" + "test_many_to_one_subquery" + "test_many_to_one_reverse_subquery" + "test_many_to_many_subquery" + "test_many_to_many_reverse_subquery" + "test_profile" ]; + pythonImportsCheck = [ "nplusone" ]; + meta = with lib; { description = "Detecting the n+1 queries problem in Python"; homepage = "https://github.com/jmcarp/nplusone"; diff --git a/pkgs/development/python-modules/openapi-core/default.nix b/pkgs/development/python-modules/openapi-core/default.nix index e41f7fd5809..8e39c899684 100644 --- a/pkgs/development/python-modules/openapi-core/default.nix +++ b/pkgs/development/python-modules/openapi-core/default.nix @@ -17,6 +17,7 @@ , django , djangorestframework , responses +, mock }: buildPythonPackage rec { @@ -54,6 +55,7 @@ buildPythonPackage rec { django djangorestframework responses + mock ]; disabledTestPaths = [ diff --git a/pkgs/development/python-modules/pycm/default.nix b/pkgs/development/python-modules/pycm/default.nix index 614393cf2d5..7c69bd048ce 100644 --- a/pkgs/development/python-modules/pycm/default.nix +++ b/pkgs/development/python-modules/pycm/default.nix @@ -2,7 +2,7 @@ buildPythonPackage rec { pname = "pycm"; - version = "3.1"; + version = "3.2"; disabled = !isPy3k; @@ -10,7 +10,7 @@ buildPythonPackage rec { owner = "sepandhaghighi"; repo = pname; rev = "v${version}"; - sha256 = "1aspd3vkjasb4wxs9czwjw42fmd4027wsmm4vlj09yp7sl57gary"; + sha256 = "1p2scgb4aghjlxak4zvm3s9ydkpg42mdxy6vjxlnqw0wpnsskfni"; }; # remove a trivial dependency on the author's `art` Python ASCII art library diff --git a/pkgs/development/python-modules/pygit2/default.nix b/pkgs/development/python-modules/pygit2/default.nix index 4d9538dbc34..1ec0c6a97b3 100644 --- a/pkgs/development/python-modules/pygit2/default.nix +++ b/pkgs/development/python-modules/pygit2/default.nix @@ -2,11 +2,11 @@ buildPythonPackage rec { pname = "pygit2"; - version = "1.6.0"; + version = "1.6.1"; src = fetchPypi { inherit pname version; - sha256 = "7aacea4e57011777f4774421228e5d0ddb9a6ddb87ac4b542346d17ab12a4d62"; + sha256 = "c3303776f774d3e0115c1c4f6e1fc35470d15f113a7ae9401a0b90acfa1661ac"; }; preConfigure = lib.optionalString stdenv.isDarwin '' diff --git a/pkgs/development/python-modules/pyro-ppl/default.nix b/pkgs/development/python-modules/pyro-ppl/default.nix index 96f0ba057f6..c8a9775dd24 100644 --- a/pkgs/development/python-modules/pyro-ppl/default.nix +++ b/pkgs/development/python-modules/pyro-ppl/default.nix @@ -2,12 +2,12 @@ , graphviz, networkx, six, opt-einsum, tqdm, pyro-api }: buildPythonPackage rec { - version = "1.6.0"; + version = "1.7.0"; pname = "pyro-ppl"; src = fetchPypi { inherit version pname; - sha256 = "ee181852713058f59d600dfa2e05bbc6f7f9b88fcdb4d2f1ccf61b0bf4794088"; + sha256 = "a8ec6968fdfa34f140584b266099238f1ffeacbbaab3775de5c94c0e685d018a"; }; propagatedBuildInputs = [ diff --git a/pkgs/development/python-modules/pyscreenshot/default.nix b/pkgs/development/python-modules/pyscreenshot/default.nix index 3ca096332ae..8fbd0801dd6 100644 --- a/pkgs/development/python-modules/pyscreenshot/default.nix +++ b/pkgs/development/python-modules/pyscreenshot/default.nix @@ -11,11 +11,11 @@ buildPythonPackage rec { pname = "pyscreenshot"; - version = "2.3"; + version = "3.0"; src = fetchPypi { inherit pname version; - sha256 = "bfdc311bd6ec1ee9e3c25ece75b24a749673ad5d5f89ee02950080023054ffd5"; + sha256 = "dd4fdfaeb617483913a6b16845b9f428de5db28758979f4b6cf8f236d292b908"; }; propagatedBuildInputs = [ diff --git a/pkgs/development/python-modules/python-gammu/default.nix b/pkgs/development/python-modules/python-gammu/default.nix index f3a3672e653..d61512bd6b1 100644 --- a/pkgs/development/python-modules/python-gammu/default.nix +++ b/pkgs/development/python-modules/python-gammu/default.nix @@ -9,14 +9,14 @@ buildPythonPackage rec { pname = "python-gammu"; - version = "3.2.2"; + version = "3.2.3"; disabled = pythonOlder "3.5"; src = fetchFromGitHub { owner = "gammu"; repo = pname; rev = version; - sha256 = "sha256-HFI4LBrVf+kBoZfdZrZL1ty9N5DxZ2SOvhiIAFVxqaI="; + sha256 = "sha256-MtFxKRE6CB/LZq9McMyYhjwfs/Rdke9gsNUqbOQdWYQ="; }; nativeBuildInputs = [ pkg-config ]; diff --git a/pkgs/development/python-modules/pyvex/default.nix b/pkgs/development/python-modules/pyvex/default.nix index 716afd52ca3..fee0653d5ec 100644 --- a/pkgs/development/python-modules/pyvex/default.nix +++ b/pkgs/development/python-modules/pyvex/default.nix @@ -11,11 +11,11 @@ buildPythonPackage rec { pname = "pyvex"; - version = "9.0.9438"; + version = "9.0.9506"; src = fetchPypi { inherit pname version; - sha256 = "sha256-L7Y80qWecmAP9aBuUh1YMBNhvLGPJUfj80mdEbhzC9Y="; + sha256 = "sha256-DseMX41dXmmt44SPVHSIFRIJL1u9yZ3kq8pv8TzC/OQ="; }; postPatch = lib.optionalString stdenv.isDarwin '' diff --git a/pkgs/development/python-modules/pyvicare/default.nix b/pkgs/development/python-modules/pyvicare/default.nix index ed7a83bdae8..6da6b780382 100644 --- a/pkgs/development/python-modules/pyvicare/default.nix +++ b/pkgs/development/python-modules/pyvicare/default.nix @@ -10,14 +10,14 @@ buildPythonPackage rec { pname = "pyvicare"; - version = "2.7"; + version = "2.7.1"; disabled = pythonOlder "3.7"; src = fetchFromGitHub { owner = "somm15"; repo = "PyViCare"; rev = version; - sha256 = "0hsmn3irixrgmd04pm0f89gn44fdn2nkcp92x7gc2kncwkval6hc"; + sha256 = "sha256-YczzB95RyOdRGEye1pUqCZxegtp6kjCtUUHYyHD0WP0="; }; SETUPTOOLS_SCM_PRETEND_VERSION = version; diff --git a/pkgs/development/python-modules/slack-sdk/default.nix b/pkgs/development/python-modules/slack-sdk/default.nix index fcf0cdd06d8..f121ac9aeb7 100644 --- a/pkgs/development/python-modules/slack-sdk/default.nix +++ b/pkgs/development/python-modules/slack-sdk/default.nix @@ -20,14 +20,14 @@ buildPythonPackage rec { pname = "slack-sdk"; - version = "3.9.0"; + version = "3.9.1"; disabled = pythonOlder "3.6"; src = fetchFromGitHub { owner = "slackapi"; repo = "python-slack-sdk"; rev = "v${version}"; - sha256 = "sha256-9iV/l2eX4WB8PkTz+bMJIshdD/Q3K0ig8hIK9R8S/oM="; + sha256 = "sha256-IskBFccMDG03BFkERRfL7TH1Ppq8Xr9qTxCEoUEqxtk="; }; propagatedBuildInputs = [ diff --git a/pkgs/development/python-modules/softlayer/default.nix b/pkgs/development/python-modules/softlayer/default.nix index f0ec10fafb9..ef0bb8a0717 100644 --- a/pkgs/development/python-modules/softlayer/default.nix +++ b/pkgs/development/python-modules/softlayer/default.nix @@ -1,43 +1,55 @@ { lib , buildPythonPackage -, fetchFromGitHub -, isPy27 -, ptable , click -, requests +, fetchFromGitHub +, mock , prompt-toolkit +, ptable , pygments -, urllib3 -, pytest -, pytest-cov -, mock +, pytestCheckHook +, pythonOlder +, requests , sphinx , testtools +, tkinter +, urllib3 }: buildPythonPackage rec { - pname = "softlayer-python"; - version = "5.8.4"; - disabled = isPy27; - - propagatedBuildInputs = [ ptable click requests prompt-toolkit pygments urllib3 ]; - - checkInputs = [ pytest pytest-cov mock sphinx testtools ]; - - checkPhase = '' - pytest - ''; + pname = "softlayer"; + version = "5.9.7"; + disabled = pythonOlder "3.5"; src = fetchFromGitHub { - owner = "softlayer"; - repo = pname; + owner = pname; + repo = "softlayer-python"; rev = "v${version}"; - sha256 = "10kzi7kvvifr21a46q2xqsibs0bx5ys22nfym0bg605ka37vcz88"; + sha256 = "0zwhykrpckx3ln4w6vlgp0nrkkr8343ni1w43hxznm55qmrllrpg"; }; + propagatedBuildInputs = [ + click + prompt-toolkit + ptable + pygments + requests + urllib3 + ]; + + checkInputs = [ + mock + pytestCheckHook + sphinx + testtools + tkinter + ]; + + pythonImportsCheck = [ "SoftLayer" ]; + meta = with lib; { - description = "A set of Python libraries that assist in calling the SoftLayer API."; + description = "Python libraries that assist in calling the SoftLayer API"; homepage = "https://github.com/softlayer/softlayer-python"; license = licenses.mit; + maintainers = with maintainers; [ ]; }; } diff --git a/pkgs/development/python-modules/ujson/default.nix b/pkgs/development/python-modules/ujson/default.nix index ab1f3e2b7ca..7b0a1f37dea 100644 --- a/pkgs/development/python-modules/ujson/default.nix +++ b/pkgs/development/python-modules/ujson/default.nix @@ -1,27 +1,36 @@ { lib , buildPythonPackage , fetchPypi -, isPy3k , isPyPy +, pytestCheckHook +, pythonOlder , setuptools-scm }: buildPythonPackage rec { pname = "ujson"; - version = "4.0.2"; - disabled = isPyPy || (!isPy3k); + version = "4.1.0"; + disabled = isPyPy || pythonOlder "3.5"; src = fetchPypi { inherit pname version; - sha256 = "c615a9e9e378a7383b756b7e7a73c38b22aeb8967a8bfbffd4741f7ffd043c4d"; + sha256 = "sha256-IrY+xECfDS8sTJ1aozGZfgJHC3oVoyM/PMMvL5uS1Yw="; }; - nativeBuildInputs = [ setuptools-scm ]; + nativeBuildInputs = [ + setuptools-scm + ]; + + checkInputs = [ + pytestCheckHook + ]; + + pythonImportsCheck = [ "ujson" ]; meta = with lib; { - homepage = "https://pypi.python.org/pypi/ujson"; description = "Ultra fast JSON encoder and decoder for Python"; + homepage = "https://pypi.python.org/pypi/ujson"; license = licenses.bsd3; + maintainers = with maintainers; [ ]; }; - } diff --git a/pkgs/development/python-modules/versioneer/default.nix b/pkgs/development/python-modules/versioneer/default.nix index 3685e78d4b4..5336420c79a 100644 --- a/pkgs/development/python-modules/versioneer/default.nix +++ b/pkgs/development/python-modules/versioneer/default.nix @@ -1,25 +1,29 @@ -{ lib, buildPythonPackage, fetchPypi, isPy27 }: - +{ lib +, buildPythonPackage +, fetchPypi +, pythonOlder +}: buildPythonPackage rec { pname = "versioneer"; - version = "0.19"; - disabled = isPy27; + version = "0.20"; + disabled = pythonOlder "3.6"; src = fetchPypi { inherit pname version; - sha256 = "a4fed39bbebcbd2d07f8a86084773f303cb442709491955a0e6754858e47afae"; + sha256 = "sha256-Ljk2AOwnF7efWcmE942TX3bkbEyu+HWoe4tO1gLy/2U="; }; # Couldn't get tests to work because, for instance, they used virtualenv and # pip. doCheck = false; + pythonImportsCheck = [ "versioneer" ]; + meta = with lib; { description = "Version-string management for VCS-controlled trees"; homepage = "https://github.com/warner/python-versioneer"; license = licenses.publicDomain; maintainers = with maintainers; [ jluttine ]; }; - } diff --git a/pkgs/development/python-modules/webdavclient3/default.nix b/pkgs/development/python-modules/webdavclient3/default.nix index fc63c1913d0..4d2c37f6b0e 100644 --- a/pkgs/development/python-modules/webdavclient3/default.nix +++ b/pkgs/development/python-modules/webdavclient3/default.nix @@ -3,13 +3,13 @@ buildPythonPackage rec { pname = "webdavclient3"; - version = "3.14.5"; + version = "3.14.6"; disabled = isPy27; src = fetchPypi { inherit pname version; - sha256 = "0yw3n5m70ysjn1ch48znpn4zr4a1bd0lsm7q2grqz7q5hfjzjwk0"; + sha256 = "bcd22586bb0d58abc26ca56054fd04228e704bd36073c3080f4597c1556c880d"; }; propagatedBuildInputs = [ python-dateutil lxml requests ]; diff --git a/pkgs/development/python-modules/webtest/default.nix b/pkgs/development/python-modules/webtest/default.nix index d56e5415b91..e5dd4758df7 100644 --- a/pkgs/development/python-modules/webtest/default.nix +++ b/pkgs/development/python-modules/webtest/default.nix @@ -14,31 +14,44 @@ }: buildPythonPackage rec { - version = "2.0.32"; + version = "2.0.35"; pname = "webtest"; disabled = isPy27; # paste.deploy is not longer a valid import src = fetchPypi { pname = "WebTest"; inherit version; - sha256 = "4221020d502ff414c5fba83c1213985b83219cb1cc611fe58aa4feaf96b5e062"; + sha256 = "sha256-qsFotbK08gCvTjWGfPMWcSIQ49XbgcHL3/OHImR7sIc="; }; preConfigure = '' substituteInPlace setup.py --replace "nose<1.3.0" "nose" ''; - propagatedBuildInputs = [ webob six beautifulsoup4 waitress ]; - - checkInputs = [ nose mock PasteDeploy wsgiproxy2 pyquery ]; + propagatedBuildInputs = [ + webob + six + beautifulsoup4 + waitress + ]; + + checkInputs = [ + nose + mock + PasteDeploy + wsgiproxy2 + pyquery + ]; # Some of the tests use localhost networking. __darwinAllowLocalNetworking = true; + pythonImportsCheck = [ "webtest" ]; + meta = with lib; { description = "Helper to test WSGI applications"; homepage = "https://webtest.readthedocs.org/en/latest/"; license = licenses.mit; + maintainers = with maintainers; [ ]; }; - } diff --git a/pkgs/development/tools/luaformatter/default.nix b/pkgs/development/tools/luaformatter/default.nix index 064ef8453d2..5fb82b0fb4c 100644 --- a/pkgs/development/tools/luaformatter/default.nix +++ b/pkgs/development/tools/luaformatter/default.nix @@ -1,30 +1,33 @@ -{ cmake, fetchFromGitHub, lib, stdenv }: +{ lib, stdenv, fetchFromGitHub, substituteAll, antlr4, libargs, catch2, cmake, libyamlcpp }: stdenv.mkDerivation rec { pname = "luaformatter"; version = "1.3.6"; src = fetchFromGitHub { - owner = "koihik"; - repo = "luaformatter"; + owner = "Koihik"; + repo = "LuaFormatter"; rev = version; - sha256 = "0440kdab5i0vhlk71sbprdrhg362al8jqpy7w2vdhcz1fpi5cm0b"; - fetchSubmodules = true; + sha256 = "14l1f9hrp6m7z3cm5yl0njba6gfixzdirxjl8nihp9val0685vm0"; }; + patches = [ + (substituteAll { + src = ./fix-lib-paths.patch; + antlr4RuntimeCpp = antlr4.runtime.cpp.dev; + inherit libargs catch2 libyamlcpp; + }) + ]; + nativeBuildInputs = [ cmake ]; - installPhase = '' - runHook preInstall - mkdir -p $out/bin - cp lua-format $out/bin - runHook postInstall - ''; + buildInputs = [ antlr4.runtime.cpp libyamlcpp ]; meta = with lib; { - description = "Code formatter for lua"; - homepage = "https://github.com/koihik/luaformatter"; + description = "Code formatter for Lua"; + homepage = "https://github.com/Koihik/LuaFormatter"; license = licenses.asl20; - maintainers = with maintainers; [ figsoda ]; + maintainers = with maintainers; [ figsoda SuperSandro2000 ]; + mainProgram = "lua-format"; }; } diff --git a/pkgs/tools/misc/lua-format/fix-lib-paths.patch b/pkgs/development/tools/luaformatter/fix-lib-paths.patch index fce2347d8e0..fce2347d8e0 100644 --- a/pkgs/tools/misc/lua-format/fix-lib-paths.patch +++ b/pkgs/development/tools/luaformatter/fix-lib-paths.patch diff --git a/pkgs/development/tools/so/default.nix b/pkgs/development/tools/so/default.nix index e7324ff7c5b..a23fa445c2f 100644 --- a/pkgs/development/tools/so/default.nix +++ b/pkgs/development/tools/so/default.nix @@ -2,16 +2,16 @@ rustPlatform.buildRustPackage rec { pname = "so"; - version = "0.4.3"; + version = "0.4.5"; src = fetchFromGitHub { owner = "samtay"; repo = pname; rev = "v${version}"; - sha256 = "sha256-WAUPB4hhvroE1/8nQcgLVWgGyXcFh7qxdFg6UtQzM9A="; + sha256 = "sha256-KiIffq8olpNpynmV4lwdY0yu2ch4MAwp5VspfLZtkf4="; }; - cargoSha256 = "sha256-aaIzGvf+PvH8nz2BSJapi1P5gSVfXT92X62FqJ1Z2L0="; + cargoSha256 = "sha256-VBuWKit50cSHYg7WzUP5ein3MEoZN/KFfm+YEEu544Q="; nativeBuildInputs = [ pkg-config ]; buildInputs = [ openssl ] ++ lib.optionals stdenv.isDarwin [ diff --git a/pkgs/development/tools/taplo-cli/default.nix b/pkgs/development/tools/taplo-cli/default.nix index 3145131005d..4ad539e709a 100644 --- a/pkgs/development/tools/taplo-cli/default.nix +++ b/pkgs/development/tools/taplo-cli/default.nix @@ -21,5 +21,6 @@ rustPlatform.buildRustPackage rec { homepage = "https://taplo.tamasfe.dev"; license = licenses.mit; maintainers = with maintainers; [ figsoda ]; + mainProgram = "taplo"; }; } diff --git a/pkgs/development/web/cypress/default.nix b/pkgs/development/web/cypress/default.nix index e58a7d9295a..a82542760c2 100644 --- a/pkgs/development/web/cypress/default.nix +++ b/pkgs/development/web/cypress/default.nix @@ -17,11 +17,11 @@ stdenv.mkDerivation rec { pname = "cypress"; - version = "8.2.0"; + version = "8.3.0"; src = fetchzip { url = "https://cdn.cypress.io/desktop/${version}/linux-x64/cypress.zip"; - sha256 = "0j5acj7ghqf2pywpf4vzzvmcn4ypc4gv0pjyjd8hgzrrl3kff4dm"; + sha256 = "sha256-MmdAi/AZ4CI/dPWbJxAXYTg/h0Dr/eEVYcZLMHaDQQ0="; }; # don't remove runtime deps diff --git a/pkgs/development/web/postman/default.nix b/pkgs/development/web/postman/default.nix index 6eb7eb1b58c..abcf6bfc16e 100644 --- a/pkgs/development/web/postman/default.nix +++ b/pkgs/development/web/postman/default.nix @@ -2,16 +2,16 @@ , atk, at-spi2-atk, at-spi2-core, alsa-lib, cairo, cups, dbus, expat, gdk-pixbuf, glib, gtk3 , freetype, fontconfig, nss, nspr, pango, udev, libuuid, libX11, libxcb, libXi , libXcursor, libXdamage, libXrandr, libXcomposite, libXext, libXfixes -, libXrender, libXtst, libXScrnSaver, libdrm, mesa +, libXrender, libXtst, libXScrnSaver, libxkbcommon, libdrm, mesa }: stdenv.mkDerivation rec { pname = "postman"; - version = "8.4.0"; + version = "8.10.0"; src = fetchurl { url = "https://dl.pstmn.io/download/version/${version}/linux64"; - sha256 = "040l0g6m8lmjrm0wvq8z13xyddasz7v95v54d658w14gv0n713vw"; + sha256 = "05f3eaa229483a7e1f698e6e2ea2031d37687de540d4fad05ce677ac216db24d"; name = "${pname}.tar.gz"; }; @@ -62,6 +62,7 @@ stdenv.mkDerivation rec { libXrender libXtst libXScrnSaver + libxkbcommon ]; nativeBuildInputs = [ wrapGAppsHook ]; diff --git a/pkgs/os-specific/linux/kernel/linux-xanmod.nix b/pkgs/os-specific/linux/kernel/linux-xanmod.nix index 61b17260f71..ef406ab90c2 100644 --- a/pkgs/os-specific/linux/kernel/linux-xanmod.nix +++ b/pkgs/os-specific/linux/kernel/linux-xanmod.nix @@ -1,7 +1,7 @@ { lib, stdenv, buildLinux, fetchFromGitHub, ... } @ args: let - version = "5.13.11"; + version = "5.13.12"; release = "1"; suffix = "xanmod${release}-cacule"; in @@ -13,7 +13,7 @@ buildLinux (args // rec { owner = "xanmod"; repo = "linux"; rev = modDirVersion; - sha256 = "sha256-55BRj0JNQKwmSvlquNHr6ZaI7x/sBYzfZPHIblxK4lY="; + sha256 = "sha256-cuZ8o0Ogi2dg4kVoFv4aqThRPDVI271i+DVw5Z4R7Kg="; }; structuredExtraConfig = with lib.kernel; { diff --git a/pkgs/os-specific/linux/musl/default.nix b/pkgs/os-specific/linux/musl/default.nix index ae175a36324..f19c7ea7a44 100644 --- a/pkgs/os-specific/linux/musl/default.nix +++ b/pkgs/os-specific/linux/musl/default.nix @@ -82,6 +82,7 @@ stdenv.mkDerivation rec { outputs = [ "out" "dev" ]; dontDisableStatic = true; + dontAddStaticConfigureFlags = true; separateDebugInfo = true; NIX_DONT_SET_RPATH = true; diff --git a/pkgs/servers/traefik/default.nix b/pkgs/servers/traefik/default.nix index c3f9aa13cc6..800f26d47b7 100644 --- a/pkgs/servers/traefik/default.nix +++ b/pkgs/servers/traefik/default.nix @@ -2,15 +2,15 @@ buildGoModule rec { pname = "traefik"; - version = "2.4.13"; + version = "2.5.0"; src = fetchzip { url = "https://github.com/traefik/traefik/releases/download/v${version}/traefik-v${version}.src.tar.gz"; - sha256 = "sha256-kGCzw8B7fCh6oh0ziB1eBedWEeGOBJVBvUf++TK/Lo0="; + sha256 = "sha256-8UqnMORAPENkVcWVbNHRje+rjIAlE8CMwBTLYrihBDw="; stripRoot = false; }; - vendorSha256 = "sha256-jn4Ud+MrX7no+s69LAAbDOoFg1yIQ2lmoy8r37JIVz8="; + vendorSha256 = "sha256-tBUW6iBZZYc2OgSzFcDZ1C8YnyrXnuy3SdQiy8FPksM="; doCheck = false; diff --git a/pkgs/servers/web-apps/moodle/default.nix b/pkgs/servers/web-apps/moodle/default.nix index bd90e908f1c..d6fcedf8dc6 100644 --- a/pkgs/servers/web-apps/moodle/default.nix +++ b/pkgs/servers/web-apps/moodle/default.nix @@ -1,7 +1,7 @@ { lib, stdenv, fetchurl, writeText, plugins ? [ ] }: let - version = "3.11"; + version = "3.11.2"; stableVersion = lib.concatStrings (lib.take 2 (lib.splitVersion version)); in stdenv.mkDerivation rec { @@ -11,7 +11,7 @@ in stdenv.mkDerivation rec { src = fetchurl { url = "https://download.moodle.org/stable${stableVersion}/${pname}-${version}.tgz"; - sha256 = "sha256-rZKY26ZPvubSr6nZ+Kguj1uKoEJbF3pEIKjjh6weyYo"; + sha256 = "sha256-owe/8CVz7+uBrHJQDN4csWVcdk49AvT1ip88lAe/tKg="; }; phpConfig = writeText "config.php" '' diff --git a/pkgs/shells/powershell/default.nix b/pkgs/shells/powershell/default.nix index 135cfb40ff0..5c082641e9f 100644 --- a/pkgs/shells/powershell/default.nix +++ b/pkgs/shells/powershell/default.nix @@ -8,7 +8,7 @@ let archString = if stdenv.isAarch64 then "arm64" else if stdenv.isLinux then "linux" else throw "unsupported platform"; platformSha = if stdenv.isDarwin then "0w44ws8b6zfixf7xz93hmplqsx18279n9x8j77y4rbzs13fldvsn" - else if (stdenv.isLinux && stdenv.isx86_64) then "0xm7l49zhkz2fly3d751kjd5cy3ws9zji9i0061lkd06dvkch7jy" + else if (stdenv.isLinux && stdenv.isx86_64) then "sha256-SOZn7CGLu9x+xhQwjgm0SL7sKDODLwHRpzi7tMdRBAM=" else if (stdenv.isLinux && stdenv.isAarch64) then "1axbi4kmb1ydys7c45jhp729w1srid3c8jgivb4bdmdp56rf6h32" else throw "unsupported platform"; platformLdLibraryPath = if stdenv.isDarwin then "DYLD_FALLBACK_LIBRARY_PATH" @@ -19,7 +19,7 @@ let archString = if stdenv.isAarch64 then "arm64" in stdenv.mkDerivation rec { pname = "powershell"; - version = "7.1.3"; + version = "7.1.4"; src = fetchzip { url = "https://github.com/PowerShell/PowerShell/releases/download/v${version}/powershell-${version}-${platformString}-${archString}.tar.gz"; @@ -42,7 +42,7 @@ stdenv.mkDerivation rec { rm -f $pslibs/libcrypto${ext}.1.0.0 rm -f $pslibs/libssl${ext}.1.0.0 - # At least the 7.1.3-osx package does not have the executable bit set. + # At least the 7.1.4-osx package does not have the executable bit set. chmod a+x $pslibs/pwsh ls $pslibs diff --git a/pkgs/stdenv/adapters.nix b/pkgs/stdenv/adapters.nix index a8e984d6174..719f6799826 100644 --- a/pkgs/stdenv/adapters.nix +++ b/pkgs/stdenv/adapters.nix @@ -2,7 +2,31 @@ a new stdenv with different behaviour, e.g. using a different C compiler. */ -pkgs: +{ lib, pkgs, config }: + +let + # N.B. Keep in sync with default arg for stdenv/generic. + defaultMkDerivationFromStdenv = import ./generic/make-derivation.nix { inherit lib config; }; + + # Low level function to help with overriding `mkDerivationFromStdenv`. One + # gives it the old stdenv arguments and a "continuation" function, and + # underneath the final stdenv argument it yields to the continuation to do + # whatever it wants with old `mkDerivation` (old `mkDerivationFromStdenv` + # applied to the *new, final* stdenv) provided for convenience. + withOldMkDerivation = stdenvSuperArgs: k: stdenvSelf: let + mkDerivationFromStdenv-super = stdenvSuperArgs.mkDerivationFromStdenv or defaultMkDerivationFromStdenv; + mkDerivationSuper = mkDerivationFromStdenv-super stdenvSelf; + in + k stdenvSelf mkDerivationSuper; + + # Wrap the original `mkDerivation` providing extra args to it. + extendMkDerivationArgs = old: f: withOldMkDerivation old (_: mkDerivationSuper: args: + mkDerivationSuper (args // f args)); + + # Wrap the original `mkDerivation` transforming the result. + overrideMkDerivationResult = old: f: withOldMkDerivation old (_: mkDerivationSuper: args: + f (mkDerivationSuper args)); +in rec { @@ -31,33 +55,32 @@ rec { # Return a modified stdenv that tries to build statically linked # binaries. - makeStaticBinaries = stdenv: - let stdenv' = if stdenv.hostPlatform.libc != "glibc" then stdenv else - stdenv.override (prev: { - extraBuildInputs = (prev.extraBuildInputs or []) ++ [ - stdenv.glibc.static - ]; - }); - in stdenv' // - { mkDerivation = args: - if stdenv'.hostPlatform.isDarwin + makeStaticBinaries = stdenv0: + stdenv0.override (old: { + mkDerivationFromStdenv = withOldMkDerivation old (stdenv: mkDerivationSuper: args: + if stdenv.hostPlatform.isDarwin then throw "Cannot build fully static binaries on Darwin/macOS" - else stdenv'.mkDerivation (args // { + else mkDerivationSuper (args // { NIX_CFLAGS_LINK = toString (args.NIX_CFLAGS_LINK or "") + " -static"; - } // pkgs.lib.optionalAttrs (!(args.dontAddStaticConfigureFlags or false)) { + } // lib.optionalAttrs (!(args.dontAddStaticConfigureFlags or false)) { configureFlags = (args.configureFlags or []) ++ [ "--disable-shared" # brrr... ]; - }); - }; + })); + } // lib.optionalAttrs (stdenv0.hostPlatform.libc == "libc") { + extraBuildInputs = (old.extraBuildInputs or []) ++ [ + stdenv0.glibc.static + ]; + }); # Return a modified stdenv that builds static libraries instead of # shared libraries. - makeStaticLibraries = stdenv: stdenv // - { mkDerivation = args: stdenv.mkDerivation (args // { + makeStaticLibraries = stdenv: + stdenv.override (old: { + mkDerivationFromStdenv = extendMkDerivationArgs old (args: { dontDisableStatic = true; - } // pkgs.lib.optionalAttrs (!(args.dontAddStaticConfigureFlags or false)) { + } // lib.optionalAttrs (!(args.dontAddStaticConfigureFlags or false)) { configureFlags = (args.configureFlags or []) ++ [ "--enable-static" "--disable-shared" @@ -65,18 +88,19 @@ rec { cmakeFlags = (args.cmakeFlags or []) ++ [ "-DBUILD_SHARED_LIBS:BOOL=OFF" ]; mesonFlags = (args.mesonFlags or []) ++ [ "-Ddefault_library=static" ]; }); - }; + }); /* Modify a stdenv so that all buildInputs are implicitly propagated to consuming derivations */ - propagateBuildInputs = stdenv: stdenv // - { mkDerivation = args: stdenv.mkDerivation (args // { + propagateBuildInputs = stdenv: + stdenv.override (old: { + mkDerivationFromStdenv = extendMkDerivationArgs old (args: { propagatedBuildInputs = (args.propagatedBuildInputs or []) ++ (args.buildInputs or []); buildInputs = []; }); - }; + }); /* Modify a stdenv so that the specified attributes are added to @@ -88,8 +112,9 @@ rec { { NIX_CFLAGS_COMPILE = "-O0"; } stdenv; */ - addAttrsToDerivation = extraAttrs: stdenv: stdenv // - { mkDerivation = args: stdenv.mkDerivation (args // extraAttrs); }; + addAttrsToDerivation = extraAttrs: stdenv: stdenv.override (old: { + mkDerivationFromStdenv = extendMkDerivationArgs old (_: extraAttrs); + }); /* Return a modified stdenv that builds packages with GCC's coverage @@ -110,21 +135,20 @@ rec { # remove all maintainers. defaultStdenv = replaceMaintainersField allStdenvs.stdenv pkgs []; */ - replaceMaintainersField = stdenv: pkgs: maintainers: stdenv // - { mkDerivation = args: - pkgs.lib.recursiveUpdate - (stdenv.mkDerivation args) - { meta.maintainers = maintainers; }; - }; + replaceMaintainersField = stdenv: pkgs: maintainers: + stdenv.override (old: { + mkDerivationFromStdenv = overrideMkDerivationResult (pkg: + lib.recursiveUpdate pkg { meta.maintainers = maintainers; }); + }); /* Use the trace output to report all processed derivations with their license name. */ - traceDrvLicenses = stdenv: stdenv // - { mkDerivation = args: + traceDrvLicenses = stdenv: + stdenv.override (old: { + mkDerivationFromStdenv = overrideMkDerivationResult (pkg: let - pkg = stdenv.mkDerivation args; printDrvPath = val: let drvPath = builtins.unsafeDiscardStringContext pkg.drvPath; license = pkg.meta.license or null; @@ -133,8 +157,8 @@ rec { in pkg // { outPath = printDrvPath pkg.outPath; drvPath = printDrvPath pkg.drvPath; - }; - }; + }); + }); /* Abort if the license predicate is not verified for a derivation @@ -152,10 +176,10 @@ rec { use it by patching the all-packages.nix file or by using the override feature of ~/.config/nixpkgs/config.nix . */ - validateLicenses = licensePred: stdenv: stdenv // - { mkDerivation = args: + validateLicenses = licensePred: stdenv: + stdenv.override (old: { + mkDerivationFromStdenv = overrideMkDerivationResult (pkg: let - pkg = stdenv.mkDerivation args; drv = builtins.unsafeDiscardStringContext pkg.drvPath; license = pkg.meta.license or @@ -175,40 +199,43 @@ rec { in pkg // { outPath = validate pkg.outPath; drvPath = validate pkg.drvPath; - }; - }; + }); + }); /* Modify a stdenv so that it produces debug builds; that is, binaries have debug info, and compiler optimisations are disabled. */ - keepDebugInfo = stdenv: stdenv // - { mkDerivation = args: stdenv.mkDerivation (args // { + keepDebugInfo = stdenv: + stdenv.override (old: { + mkDerivationFromStdenv = extendMkDerivationArgs old (args: { dontStrip = true; NIX_CFLAGS_COMPILE = toString (args.NIX_CFLAGS_COMPILE or "") + " -ggdb -Og"; }); - }; + }); /* Modify a stdenv so that it uses the Gold linker. */ - useGoldLinker = stdenv: stdenv // - { mkDerivation = args: stdenv.mkDerivation (args // { + useGoldLinker = stdenv: + stdenv.override (old: { + mkDerivationFromStdenv = extendMkDerivationArgs old (args: { NIX_CFLAGS_LINK = toString (args.NIX_CFLAGS_LINK or "") + " -fuse-ld=gold"; }); - }; + }); /* Modify a stdenv so that it builds binaries optimized specifically for the machine they are built on. WARNING: this breaks purity! */ - impureUseNativeOptimizations = stdenv: stdenv // - { mkDerivation = args: stdenv.mkDerivation (args // { + impureUseNativeOptimizations = stdenv: + stdenv.override (old: { + mkDerivationFromStdenv = extendMkDerivationArgs old (args: { NIX_CFLAGS_COMPILE = toString (args.NIX_CFLAGS_COMPILE or "") + " -march=native"; NIX_ENFORCE_NO_NATIVE = false; preferLocalBuild = true; allowSubstitutes = false; }); - }; + }); } diff --git a/pkgs/stdenv/generic/default.nix b/pkgs/stdenv/generic/default.nix index 88ca1b2c790..d7fb1b0ba06 100644 --- a/pkgs/stdenv/generic/default.nix +++ b/pkgs/stdenv/generic/default.nix @@ -48,6 +48,10 @@ let lib = import ../../../lib; in lib.makeOverridable ( , # The platform which build tools (especially compilers) build for in this stage, targetPlatform + +, # The implementation of `mkDerivation`, parameterized with the final stdenv so we can tie the knot. + # This is convient to have as a parameter so the stdenv "adapters" work better + mkDerivationFromStdenv ? import ./make-derivation.nix { inherit lib config; } }: let @@ -155,9 +159,7 @@ let # to correct type of machine. inherit (hostPlatform) system; - inherit (import ./make-derivation.nix { - inherit lib config stdenv; - }) mkDerivation; + mkDerivation = mkDerivationFromStdenv stdenv; inherit fetchurlBoot; diff --git a/pkgs/stdenv/generic/make-derivation.nix b/pkgs/stdenv/generic/make-derivation.nix index d6704d59111..56cfa0c503f 100644 --- a/pkgs/stdenv/generic/make-derivation.nix +++ b/pkgs/stdenv/generic/make-derivation.nix @@ -1,4 +1,6 @@ -{ lib, config, stdenv }: +{ lib, config }: + +stdenv: let checkMeta = import ./check-meta.nix { @@ -7,405 +9,403 @@ let # to build it. This is a bit confusing for cross compilation. inherit (stdenv) hostPlatform; }; -in rec { - # `mkDerivation` wraps the builtin `derivation` function to - # produce derivations that use this stdenv and its shell. - # - # See also: - # - # * https://nixos.org/nixpkgs/manual/#sec-using-stdenv - # Details on how to use this mkDerivation function +in + +# `mkDerivation` wraps the builtin `derivation` function to +# produce derivations that use this stdenv and its shell. +# +# See also: +# +# * https://nixos.org/nixpkgs/manual/#sec-using-stdenv +# Details on how to use this mkDerivation function +# +# * https://nixos.org/nix/manual/#ssec-derivation +# Explanation about derivations in general +{ + +# These types of dependencies are all exhaustively documented in +# the "Specifying Dependencies" section of the "Standard +# Environment" chapter of the Nixpkgs manual. + +# TODO(@Ericson2314): Stop using legacy dep attribute names + +# host offset -> target offset + depsBuildBuild ? [] # -1 -> -1 +, depsBuildBuildPropagated ? [] # -1 -> -1 +, nativeBuildInputs ? [] # -1 -> 0 N.B. Legacy name +, propagatedNativeBuildInputs ? [] # -1 -> 0 N.B. Legacy name +, depsBuildTarget ? [] # -1 -> 1 +, depsBuildTargetPropagated ? [] # -1 -> 1 + +, depsHostHost ? [] # 0 -> 0 +, depsHostHostPropagated ? [] # 0 -> 0 +, buildInputs ? [] # 0 -> 1 N.B. Legacy name +, propagatedBuildInputs ? [] # 0 -> 1 N.B. Legacy name + +, depsTargetTarget ? [] # 1 -> 1 +, depsTargetTargetPropagated ? [] # 1 -> 1 + +, checkInputs ? [] +, installCheckInputs ? [] + +# Configure Phase +, configureFlags ? [] +, cmakeFlags ? [] +, mesonFlags ? [] +, # Target is not included by default because most programs don't care. + # Including it then would cause needless mass rebuilds. # - # * https://nixos.org/nix/manual/#ssec-derivation - # Explanation about derivations in general - mkDerivation = - { - - # These types of dependencies are all exhaustively documented in - # the "Specifying Dependencies" section of the "Standard - # Environment" chapter of the Nixpkgs manual. - - # TODO(@Ericson2314): Stop using legacy dep attribute names - - # host offset -> target offset - depsBuildBuild ? [] # -1 -> -1 - , depsBuildBuildPropagated ? [] # -1 -> -1 - , nativeBuildInputs ? [] # -1 -> 0 N.B. Legacy name - , propagatedNativeBuildInputs ? [] # -1 -> 0 N.B. Legacy name - , depsBuildTarget ? [] # -1 -> 1 - , depsBuildTargetPropagated ? [] # -1 -> 1 - - , depsHostHost ? [] # 0 -> 0 - , depsHostHostPropagated ? [] # 0 -> 0 - , buildInputs ? [] # 0 -> 1 N.B. Legacy name - , propagatedBuildInputs ? [] # 0 -> 1 N.B. Legacy name - - , depsTargetTarget ? [] # 1 -> 1 - , depsTargetTargetPropagated ? [] # 1 -> 1 - - , checkInputs ? [] - , installCheckInputs ? [] - - # Configure Phase - , configureFlags ? [] - , cmakeFlags ? [] - , mesonFlags ? [] - , # Target is not included by default because most programs don't care. - # Including it then would cause needless mass rebuilds. - # - # TODO(@Ericson2314): Make [ "build" "host" ] always the default. - configurePlatforms ? lib.optionals - (stdenv.hostPlatform != stdenv.buildPlatform) - [ "build" "host" ] - - # TODO(@Ericson2314): Make unconditional / resolve #33599 - # Check phase - , doCheck ? config.doCheckByDefault or false - - # TODO(@Ericson2314): Make unconditional / resolve #33599 - # InstallCheck phase - , doInstallCheck ? config.doCheckByDefault or false - - , # TODO(@Ericson2314): Make always true and remove - strictDeps ? stdenv.hostPlatform != stdenv.buildPlatform - , meta ? {} - , passthru ? {} - , pos ? # position used in error messages and for meta.position - (if attrs.meta.description or null != null - then builtins.unsafeGetAttrPos "description" attrs.meta - else if attrs.version or null != null - then builtins.unsafeGetAttrPos "version" attrs - else builtins.unsafeGetAttrPos "name" attrs) - , separateDebugInfo ? false - , outputs ? [ "out" ] - , __darwinAllowLocalNetworking ? false - , __impureHostDeps ? [] - , __propagatedImpureHostDeps ? [] - , sandboxProfile ? "" - , propagatedSandboxProfile ? "" - - , hardeningEnable ? [] - , hardeningDisable ? [] - - , patches ? [] - - , __contentAddressed ? - (! attrs ? outputHash) # Fixed-output drvs can't be content addressed too - && (config.contentAddressedByDefault or false) - - , ... } @ attrs: - - let - # TODO(@oxij, @Ericson2314): This is here to keep the old semantics, remove when - # no package has `doCheck = true`. - doCheck' = doCheck && stdenv.hostPlatform == stdenv.buildPlatform; - doInstallCheck' = doInstallCheck && stdenv.hostPlatform == stdenv.buildPlatform; - - separateDebugInfo' = separateDebugInfo && stdenv.hostPlatform.isLinux && !(stdenv.hostPlatform.useLLVM or false); - outputs' = outputs ++ lib.optional separateDebugInfo' "debug"; - - noNonNativeDeps = builtins.length (depsBuildTarget ++ depsBuildTargetPropagated - ++ depsHostHost ++ depsHostHostPropagated - ++ buildInputs ++ propagatedBuildInputs - ++ depsTargetTarget ++ depsTargetTargetPropagated) == 0; - dontAddHostSuffix = attrs ? outputHash && !noNonNativeDeps || !stdenv.hasCC; - supportedHardeningFlags = [ "fortify" "stackprotector" "pie" "pic" "strictoverflow" "format" "relro" "bindnow" ]; - # Musl-based platforms will keep "pie", other platforms will not. - # If you change this, make sure to update section `{#sec-hardening-in-nixpkgs}` - # in the nixpkgs manual to inform users about the defaults. - defaultHardeningFlags = if stdenv.hostPlatform.isMusl && - # Except when: - # - static aarch64, where compilation works, but produces segfaulting dynamically linked binaries. - # - static armv7l, where compilation fails. - !((stdenv.hostPlatform.isAarch64 || stdenv.hostPlatform.isAarch32) && stdenv.hostPlatform.isStatic) - then supportedHardeningFlags - else lib.remove "pie" supportedHardeningFlags; - enabledHardeningOptions = - if builtins.elem "all" hardeningDisable - then [] - else lib.subtractLists hardeningDisable (defaultHardeningFlags ++ hardeningEnable); - # hardeningDisable additionally supports "all". - erroneousHardeningFlags = lib.subtractLists supportedHardeningFlags (hardeningEnable ++ lib.remove "all" hardeningDisable); - in if builtins.length erroneousHardeningFlags != 0 - then abort ("mkDerivation was called with unsupported hardening flags: " + lib.generators.toPretty {} { - inherit erroneousHardeningFlags hardeningDisable hardeningEnable supportedHardeningFlags; - }) - else let - doCheck = doCheck'; - doInstallCheck = doInstallCheck'; - - outputs = outputs'; - - references = nativeBuildInputs ++ buildInputs - ++ propagatedNativeBuildInputs ++ propagatedBuildInputs; - - dependencies = map (map lib.chooseDevOutputs) [ - [ - (map (drv: drv.__spliced.buildBuild or drv) depsBuildBuild) - (map (drv: drv.nativeDrv or drv) nativeBuildInputs - ++ lib.optional separateDebugInfo' ../../build-support/setup-hooks/separate-debug-info.sh - ++ lib.optional stdenv.hostPlatform.isWindows ../../build-support/setup-hooks/win-dll-link.sh - ++ lib.optionals doCheck checkInputs - ++ lib.optionals doInstallCheck' installCheckInputs) - (map (drv: drv.__spliced.buildTarget or drv) depsBuildTarget) - ] - [ - (map (drv: drv.__spliced.hostHost or drv) depsHostHost) - (map (drv: drv.crossDrv or drv) buildInputs) - ] - [ - (map (drv: drv.__spliced.targetTarget or drv) depsTargetTarget) - ] - ]; - propagatedDependencies = map (map lib.chooseDevOutputs) [ - [ - (map (drv: drv.__spliced.buildBuild or drv) depsBuildBuildPropagated) - (map (drv: drv.nativeDrv or drv) propagatedNativeBuildInputs) - (map (drv: drv.__spliced.buildTarget or drv) depsBuildTargetPropagated) - ] - [ - (map (drv: drv.__spliced.hostHost or drv) depsHostHostPropagated) - (map (drv: drv.crossDrv or drv) propagatedBuildInputs) - ] - [ - (map (drv: drv.__spliced.targetTarget or drv) depsTargetTargetPropagated) - ] - ]; + # TODO(@Ericson2314): Make [ "build" "host" ] always the default. + configurePlatforms ? lib.optionals + (stdenv.hostPlatform != stdenv.buildPlatform) + [ "build" "host" ] + +# TODO(@Ericson2314): Make unconditional / resolve #33599 +# Check phase +, doCheck ? config.doCheckByDefault or false + +# TODO(@Ericson2314): Make unconditional / resolve #33599 +# InstallCheck phase +, doInstallCheck ? config.doCheckByDefault or false + +, # TODO(@Ericson2314): Make always true and remove + strictDeps ? stdenv.hostPlatform != stdenv.buildPlatform +, meta ? {} +, passthru ? {} +, pos ? # position used in error messages and for meta.position + (if attrs.meta.description or null != null + then builtins.unsafeGetAttrPos "description" attrs.meta + else if attrs.version or null != null + then builtins.unsafeGetAttrPos "version" attrs + else builtins.unsafeGetAttrPos "name" attrs) +, separateDebugInfo ? false +, outputs ? [ "out" ] +, __darwinAllowLocalNetworking ? false +, __impureHostDeps ? [] +, __propagatedImpureHostDeps ? [] +, sandboxProfile ? "" +, propagatedSandboxProfile ? "" + +, hardeningEnable ? [] +, hardeningDisable ? [] + +, patches ? [] + +, __contentAddressed ? + (! attrs ? outputHash) # Fixed-output drvs can't be content addressed too + && (config.contentAddressedByDefault or false) + +, ... } @ attrs: - computedSandboxProfile = - lib.concatMap (input: input.__propagatedSandboxProfile or []) - (stdenv.extraNativeBuildInputs - ++ stdenv.extraBuildInputs - ++ lib.concatLists dependencies); - - computedPropagatedSandboxProfile = - lib.concatMap (input: input.__propagatedSandboxProfile or []) - (lib.concatLists propagatedDependencies); - - computedImpureHostDeps = - lib.unique (lib.concatMap (input: input.__propagatedImpureHostDeps or []) - (stdenv.extraNativeBuildInputs - ++ stdenv.extraBuildInputs - ++ lib.concatLists dependencies)); - - computedPropagatedImpureHostDeps = - lib.unique (lib.concatMap (input: input.__propagatedImpureHostDeps or []) - (lib.concatLists propagatedDependencies)); - - derivationArg = - (removeAttrs attrs - ["meta" "passthru" "pos" - "checkInputs" "installCheckInputs" - "__darwinAllowLocalNetworking" - "__impureHostDeps" "__propagatedImpureHostDeps" - "sandboxProfile" "propagatedSandboxProfile"]) - // (lib.optionalAttrs (attrs ? name || (attrs ? pname && attrs ? version)) { - name = - let - # Indicate the host platform of the derivation if cross compiling. - # Fixed-output derivations like source tarballs shouldn't get a host - # suffix. But we have some weird ones with run-time deps that are - # just used for their side-affects. Those might as well since the - # hash can't be the same. See #32986. - hostSuffix = lib.optionalString - (stdenv.hostPlatform != stdenv.buildPlatform && !dontAddHostSuffix) - "-${stdenv.hostPlatform.config}"; - # Disambiguate statically built packages. This was originally - # introduce as a means to prevent nix-env to get confused between - # nix and nixStatic. This should be also achieved by moving the - # hostSuffix before the version, so we could contemplate removing - # it again. - staticMarker = lib.optionalString stdenv.hostPlatform.isStatic "-static"; - in - if attrs ? name - then attrs.name + hostSuffix - else "${attrs.pname}${staticMarker}${hostSuffix}-${attrs.version}"; - }) // { - builder = attrs.realBuilder or stdenv.shell; - args = attrs.args or ["-e" (attrs.builder or ./default-builder.sh)]; - inherit stdenv; - - # The `system` attribute of a derivation has special meaning to Nix. - # Derivations set it to choose what sort of machine could be used to - # execute the build, The build platform entirely determines this, - # indeed more finely than Nix knows or cares about. The `system` - # attribute of `buildPlatfom` matches Nix's degree of specificity. - # exactly. - inherit (stdenv.buildPlatform) system; - - userHook = config.stdenv.userHook or null; - __ignoreNulls = true; - - inherit strictDeps; - - depsBuildBuild = lib.elemAt (lib.elemAt dependencies 0) 0; - nativeBuildInputs = lib.elemAt (lib.elemAt dependencies 0) 1; - depsBuildTarget = lib.elemAt (lib.elemAt dependencies 0) 2; - depsHostHost = lib.elemAt (lib.elemAt dependencies 1) 0; - buildInputs = lib.elemAt (lib.elemAt dependencies 1) 1; - depsTargetTarget = lib.elemAt (lib.elemAt dependencies 2) 0; - - depsBuildBuildPropagated = lib.elemAt (lib.elemAt propagatedDependencies 0) 0; - propagatedNativeBuildInputs = lib.elemAt (lib.elemAt propagatedDependencies 0) 1; - depsBuildTargetPropagated = lib.elemAt (lib.elemAt propagatedDependencies 0) 2; - depsHostHostPropagated = lib.elemAt (lib.elemAt propagatedDependencies 1) 0; - propagatedBuildInputs = lib.elemAt (lib.elemAt propagatedDependencies 1) 1; - depsTargetTargetPropagated = lib.elemAt (lib.elemAt propagatedDependencies 2) 0; - - # This parameter is sometimes a string, sometimes null, and sometimes a list, yuck - configureFlags = let inherit (lib) optional elem; in - (/**/ if lib.isString configureFlags then [configureFlags] - else if configureFlags == null then [] - else configureFlags) - ++ optional (elem "build" configurePlatforms) "--build=${stdenv.buildPlatform.config}" - ++ optional (elem "host" configurePlatforms) "--host=${stdenv.hostPlatform.config}" - ++ optional (elem "target" configurePlatforms) "--target=${stdenv.targetPlatform.config}"; - - inherit patches; - - inherit doCheck doInstallCheck; - - inherit outputs; - } // lib.optionalAttrs (__contentAddressed) { - inherit __contentAddressed; - # Provide default values for outputHashMode and outputHashAlgo because - # most people won't care about these anyways - outputHashAlgo = attrs.outputHashAlgo or "sha256"; - outputHashMode = attrs.outputHashMode or "recursive"; - } // lib.optionalAttrs (stdenv.hostPlatform != stdenv.buildPlatform) { - cmakeFlags = - (/**/ if lib.isString cmakeFlags then [cmakeFlags] - else if cmakeFlags == null then [] - else cmakeFlags) - ++ [ "-DCMAKE_SYSTEM_NAME=${lib.findFirst lib.isString "Generic" ( - lib.optional (!stdenv.hostPlatform.isRedox) stdenv.hostPlatform.uname.system)}"] - ++ lib.optional (stdenv.hostPlatform.uname.processor != null) "-DCMAKE_SYSTEM_PROCESSOR=${stdenv.hostPlatform.uname.processor}" - ++ lib.optional (stdenv.hostPlatform.uname.release != null) "-DCMAKE_SYSTEM_VERSION=${stdenv.hostPlatform.release}" - ++ lib.optional (stdenv.hostPlatform.isDarwin) "-DCMAKE_OSX_ARCHITECTURES=${stdenv.hostPlatform.darwinArch}" - ++ lib.optional (stdenv.buildPlatform.uname.system != null) "-DCMAKE_HOST_SYSTEM_NAME=${stdenv.buildPlatform.uname.system}" - ++ lib.optional (stdenv.buildPlatform.uname.processor != null) "-DCMAKE_HOST_SYSTEM_PROCESSOR=${stdenv.buildPlatform.uname.processor}" - ++ lib.optional (stdenv.buildPlatform.uname.release != null) "-DCMAKE_HOST_SYSTEM_VERSION=${stdenv.buildPlatform.uname.release}"; - - mesonFlags = if mesonFlags == null then null else let - # See https://mesonbuild.com/Reference-tables.html#cpu-families - cpuFamily = platform: with platform; - /**/ if isAarch32 then "arm" - else if isAarch64 then "aarch64" - else if isx86_32 then "x86" - else if isx86_64 then "x86_64" - else platform.parsed.cpu.family + builtins.toString platform.parsed.cpu.bits; - crossFile = builtins.toFile "cross-file.conf" '' - [properties] - needs_exe_wrapper = true - - [host_machine] - system = '${stdenv.targetPlatform.parsed.kernel.name}' - cpu_family = '${cpuFamily stdenv.targetPlatform}' - cpu = '${stdenv.targetPlatform.parsed.cpu.name}' - endian = ${if stdenv.targetPlatform.isLittleEndian then "'little'" else "'big'"} - ''; - in [ "--cross-file=${crossFile}" ] ++ mesonFlags; - } // lib.optionalAttrs (attrs.enableParallelBuilding or false) { - enableParallelChecking = attrs.enableParallelChecking or true; - } // lib.optionalAttrs (hardeningDisable != [] || hardeningEnable != [] || stdenv.hostPlatform.isMusl) { - NIX_HARDENING_ENABLE = enabledHardeningOptions; - } // lib.optionalAttrs (stdenv.hostPlatform.isx86_64 && stdenv.hostPlatform ? gcc.arch) { - requiredSystemFeatures = attrs.requiredSystemFeatures or [] ++ [ "gccarch-${stdenv.hostPlatform.gcc.arch}" ]; - } // lib.optionalAttrs (stdenv.buildPlatform.isDarwin) { - inherit __darwinAllowLocalNetworking; - # TODO: remove lib.unique once nix has a list canonicalization primitive - __sandboxProfile = - let profiles = [ stdenv.extraSandboxProfile ] ++ computedSandboxProfile ++ computedPropagatedSandboxProfile ++ [ propagatedSandboxProfile sandboxProfile ]; - final = lib.concatStringsSep "\n" (lib.filter (x: x != "") (lib.unique profiles)); - in final; - __propagatedSandboxProfile = lib.unique (computedPropagatedSandboxProfile ++ [ propagatedSandboxProfile ]); - __impureHostDeps = computedImpureHostDeps ++ computedPropagatedImpureHostDeps ++ __propagatedImpureHostDeps ++ __impureHostDeps ++ stdenv.__extraImpureHostDeps ++ [ - "/dev/zero" - "/dev/random" - "/dev/urandom" - "/bin/sh" - ]; - __propagatedImpureHostDeps = computedPropagatedImpureHostDeps ++ __propagatedImpureHostDeps; - }; - - validity = checkMeta { inherit meta attrs; }; - - # The meta attribute is passed in the resulting attribute set, - # but it's not part of the actual derivation, i.e., it's not - # passed to the builder and is not a dependency. But since we - # include it in the result, it *is* available to nix-env for queries. - meta = { - # `name` above includes cross-compilation cruft (and is under assert), - # lets have a clean always accessible version here. - name = attrs.name or "${attrs.pname}-${attrs.version}"; - - # If the packager hasn't specified `outputsToInstall`, choose a default, - # which is the name of `p.bin or p.out or p` along with `p.man` when - # present. - # - # If the packager has specified it, it will be overridden below in - # `// meta`. - # - # Note: This default probably shouldn't be globally configurable. - # Services and users should specify outputs explicitly, - # unless they are comfortable with this default. - outputsToInstall = - let - hasOutput = out: builtins.elem out outputs; - in [( lib.findFirst hasOutput null (["bin" "out"] ++ outputs) )] - ++ lib.optional (hasOutput "man") "man"; - } - // attrs.meta or {} - # Fill `meta.position` to identify the source location of the package. - // lib.optionalAttrs (pos != null) { - position = pos.file + ":" + toString pos.line; - } // { - # Expose the result of the checks for everyone to see. - inherit (validity) unfree broken unsupported insecure; - available = validity.valid - && (if config.checkMetaRecursively or false - then lib.all (d: d.meta.available or true) references - else true); - }; - - in - - lib.extendDerivation - validity.handled - ({ - overrideAttrs = f: mkDerivation (attrs // (f attrs)); - - # A derivation that always builds successfully and whose runtime - # dependencies are the original derivations build time dependencies - # This allows easy building and distributing of all derivations - # needed to enter a nix-shell with - # nix-build shell.nix -A inputDerivation - inputDerivation = derivation (derivationArg // { - # Add a name in case the original drv didn't have one - name = derivationArg.name or "inputDerivation"; - # This always only has one output - outputs = [ "out" ]; - - # Propagate the original builder and arguments, since we override - # them and they might contain references to build inputs - _derivation_original_builder = derivationArg.builder; - _derivation_original_args = derivationArg.args; - - builder = stdenv.shell; - # The bash builtin `export` dumps all current environment variables, - # which is where all build input references end up (e.g. $PATH for - # binaries). By writing this to $out, Nix can find and register - # them as runtime dependencies (since Nix greps for store paths - # through $out to find them) - args = [ "-c" "export > $out" ]; - }); - - inherit meta passthru; - } // - # Pass through extra attributes that are not inputs, but - # should be made available to Nix expressions using the - # derivation (e.g., in assertions). - passthru) - (derivation derivationArg); - -} +let + # TODO(@oxij, @Ericson2314): This is here to keep the old semantics, remove when + # no package has `doCheck = true`. + doCheck' = doCheck && stdenv.hostPlatform == stdenv.buildPlatform; + doInstallCheck' = doInstallCheck && stdenv.hostPlatform == stdenv.buildPlatform; + + separateDebugInfo' = separateDebugInfo && stdenv.hostPlatform.isLinux && !(stdenv.hostPlatform.useLLVM or false); + outputs' = outputs ++ lib.optional separateDebugInfo' "debug"; + + noNonNativeDeps = builtins.length (depsBuildTarget ++ depsBuildTargetPropagated + ++ depsHostHost ++ depsHostHostPropagated + ++ buildInputs ++ propagatedBuildInputs + ++ depsTargetTarget ++ depsTargetTargetPropagated) == 0; + dontAddHostSuffix = attrs ? outputHash && !noNonNativeDeps || !stdenv.hasCC; + supportedHardeningFlags = [ "fortify" "stackprotector" "pie" "pic" "strictoverflow" "format" "relro" "bindnow" ]; + # Musl-based platforms will keep "pie", other platforms will not. + # If you change this, make sure to update section `{#sec-hardening-in-nixpkgs}` + # in the nixpkgs manual to inform users about the defaults. + defaultHardeningFlags = if stdenv.hostPlatform.isMusl && + # Except when: + # - static aarch64, where compilation works, but produces segfaulting dynamically linked binaries. + # - static armv7l, where compilation fails. + !((stdenv.hostPlatform.isAarch64 || stdenv.hostPlatform.isAarch32) && stdenv.hostPlatform.isStatic) + then supportedHardeningFlags + else lib.remove "pie" supportedHardeningFlags; + enabledHardeningOptions = + if builtins.elem "all" hardeningDisable + then [] + else lib.subtractLists hardeningDisable (defaultHardeningFlags ++ hardeningEnable); + # hardeningDisable additionally supports "all". + erroneousHardeningFlags = lib.subtractLists supportedHardeningFlags (hardeningEnable ++ lib.remove "all" hardeningDisable); +in if builtins.length erroneousHardeningFlags != 0 +then abort ("mkDerivation was called with unsupported hardening flags: " + lib.generators.toPretty {} { + inherit erroneousHardeningFlags hardeningDisable hardeningEnable supportedHardeningFlags; +}) +else let + doCheck = doCheck'; + doInstallCheck = doInstallCheck'; + + outputs = outputs'; + + references = nativeBuildInputs ++ buildInputs + ++ propagatedNativeBuildInputs ++ propagatedBuildInputs; + + dependencies = map (map lib.chooseDevOutputs) [ + [ + (map (drv: drv.__spliced.buildBuild or drv) depsBuildBuild) + (map (drv: drv.nativeDrv or drv) nativeBuildInputs + ++ lib.optional separateDebugInfo' ../../build-support/setup-hooks/separate-debug-info.sh + ++ lib.optional stdenv.hostPlatform.isWindows ../../build-support/setup-hooks/win-dll-link.sh + ++ lib.optionals doCheck checkInputs + ++ lib.optionals doInstallCheck' installCheckInputs) + (map (drv: drv.__spliced.buildTarget or drv) depsBuildTarget) + ] + [ + (map (drv: drv.__spliced.hostHost or drv) depsHostHost) + (map (drv: drv.crossDrv or drv) buildInputs) + ] + [ + (map (drv: drv.__spliced.targetTarget or drv) depsTargetTarget) + ] + ]; + propagatedDependencies = map (map lib.chooseDevOutputs) [ + [ + (map (drv: drv.__spliced.buildBuild or drv) depsBuildBuildPropagated) + (map (drv: drv.nativeDrv or drv) propagatedNativeBuildInputs) + (map (drv: drv.__spliced.buildTarget or drv) depsBuildTargetPropagated) + ] + [ + (map (drv: drv.__spliced.hostHost or drv) depsHostHostPropagated) + (map (drv: drv.crossDrv or drv) propagatedBuildInputs) + ] + [ + (map (drv: drv.__spliced.targetTarget or drv) depsTargetTargetPropagated) + ] + ]; + + computedSandboxProfile = + lib.concatMap (input: input.__propagatedSandboxProfile or []) + (stdenv.extraNativeBuildInputs + ++ stdenv.extraBuildInputs + ++ lib.concatLists dependencies); + + computedPropagatedSandboxProfile = + lib.concatMap (input: input.__propagatedSandboxProfile or []) + (lib.concatLists propagatedDependencies); + + computedImpureHostDeps = + lib.unique (lib.concatMap (input: input.__propagatedImpureHostDeps or []) + (stdenv.extraNativeBuildInputs + ++ stdenv.extraBuildInputs + ++ lib.concatLists dependencies)); + + computedPropagatedImpureHostDeps = + lib.unique (lib.concatMap (input: input.__propagatedImpureHostDeps or []) + (lib.concatLists propagatedDependencies)); + + derivationArg = + (removeAttrs attrs + ["meta" "passthru" "pos" + "checkInputs" "installCheckInputs" + "__darwinAllowLocalNetworking" + "__impureHostDeps" "__propagatedImpureHostDeps" + "sandboxProfile" "propagatedSandboxProfile"]) + // (lib.optionalAttrs (attrs ? name || (attrs ? pname && attrs ? version)) { + name = + let + # Indicate the host platform of the derivation if cross compiling. + # Fixed-output derivations like source tarballs shouldn't get a host + # suffix. But we have some weird ones with run-time deps that are + # just used for their side-affects. Those might as well since the + # hash can't be the same. See #32986. + hostSuffix = lib.optionalString + (stdenv.hostPlatform != stdenv.buildPlatform && !dontAddHostSuffix) + "-${stdenv.hostPlatform.config}"; + # Disambiguate statically built packages. This was originally + # introduce as a means to prevent nix-env to get confused between + # nix and nixStatic. This should be also achieved by moving the + # hostSuffix before the version, so we could contemplate removing + # it again. + staticMarker = lib.optionalString stdenv.hostPlatform.isStatic "-static"; + in + if attrs ? name + then attrs.name + hostSuffix + else "${attrs.pname}${staticMarker}${hostSuffix}-${attrs.version}"; + }) // { + builder = attrs.realBuilder or stdenv.shell; + args = attrs.args or ["-e" (attrs.builder or ./default-builder.sh)]; + inherit stdenv; + + # The `system` attribute of a derivation has special meaning to Nix. + # Derivations set it to choose what sort of machine could be used to + # execute the build, The build platform entirely determines this, + # indeed more finely than Nix knows or cares about. The `system` + # attribute of `buildPlatfom` matches Nix's degree of specificity. + # exactly. + inherit (stdenv.buildPlatform) system; + + userHook = config.stdenv.userHook or null; + __ignoreNulls = true; + + inherit strictDeps; + + depsBuildBuild = lib.elemAt (lib.elemAt dependencies 0) 0; + nativeBuildInputs = lib.elemAt (lib.elemAt dependencies 0) 1; + depsBuildTarget = lib.elemAt (lib.elemAt dependencies 0) 2; + depsHostHost = lib.elemAt (lib.elemAt dependencies 1) 0; + buildInputs = lib.elemAt (lib.elemAt dependencies 1) 1; + depsTargetTarget = lib.elemAt (lib.elemAt dependencies 2) 0; + + depsBuildBuildPropagated = lib.elemAt (lib.elemAt propagatedDependencies 0) 0; + propagatedNativeBuildInputs = lib.elemAt (lib.elemAt propagatedDependencies 0) 1; + depsBuildTargetPropagated = lib.elemAt (lib.elemAt propagatedDependencies 0) 2; + depsHostHostPropagated = lib.elemAt (lib.elemAt propagatedDependencies 1) 0; + propagatedBuildInputs = lib.elemAt (lib.elemAt propagatedDependencies 1) 1; + depsTargetTargetPropagated = lib.elemAt (lib.elemAt propagatedDependencies 2) 0; + + # This parameter is sometimes a string, sometimes null, and sometimes a list, yuck + configureFlags = let inherit (lib) optional elem; in + (/**/ if lib.isString configureFlags then [configureFlags] + else if configureFlags == null then [] + else configureFlags) + ++ optional (elem "build" configurePlatforms) "--build=${stdenv.buildPlatform.config}" + ++ optional (elem "host" configurePlatforms) "--host=${stdenv.hostPlatform.config}" + ++ optional (elem "target" configurePlatforms) "--target=${stdenv.targetPlatform.config}"; + + inherit patches; + + inherit doCheck doInstallCheck; + + inherit outputs; + } // lib.optionalAttrs (__contentAddressed) { + inherit __contentAddressed; + # Provide default values for outputHashMode and outputHashAlgo because + # most people won't care about these anyways + outputHashAlgo = attrs.outputHashAlgo or "sha256"; + outputHashMode = attrs.outputHashMode or "recursive"; + } // lib.optionalAttrs (stdenv.hostPlatform != stdenv.buildPlatform) { + cmakeFlags = + (/**/ if lib.isString cmakeFlags then [cmakeFlags] + else if cmakeFlags == null then [] + else cmakeFlags) + ++ [ "-DCMAKE_SYSTEM_NAME=${lib.findFirst lib.isString "Generic" ( + lib.optional (!stdenv.hostPlatform.isRedox) stdenv.hostPlatform.uname.system)}"] + ++ lib.optional (stdenv.hostPlatform.uname.processor != null) "-DCMAKE_SYSTEM_PROCESSOR=${stdenv.hostPlatform.uname.processor}" + ++ lib.optional (stdenv.hostPlatform.uname.release != null) "-DCMAKE_SYSTEM_VERSION=${stdenv.hostPlatform.release}" + ++ lib.optional (stdenv.hostPlatform.isDarwin) "-DCMAKE_OSX_ARCHITECTURES=${stdenv.hostPlatform.darwinArch}" + ++ lib.optional (stdenv.buildPlatform.uname.system != null) "-DCMAKE_HOST_SYSTEM_NAME=${stdenv.buildPlatform.uname.system}" + ++ lib.optional (stdenv.buildPlatform.uname.processor != null) "-DCMAKE_HOST_SYSTEM_PROCESSOR=${stdenv.buildPlatform.uname.processor}" + ++ lib.optional (stdenv.buildPlatform.uname.release != null) "-DCMAKE_HOST_SYSTEM_VERSION=${stdenv.buildPlatform.uname.release}"; + + mesonFlags = if mesonFlags == null then null else let + # See https://mesonbuild.com/Reference-tables.html#cpu-families + cpuFamily = platform: with platform; + /**/ if isAarch32 then "arm" + else if isAarch64 then "aarch64" + else if isx86_32 then "x86" + else if isx86_64 then "x86_64" + else platform.parsed.cpu.family + builtins.toString platform.parsed.cpu.bits; + crossFile = builtins.toFile "cross-file.conf" '' + [properties] + needs_exe_wrapper = true + + [host_machine] + system = '${stdenv.targetPlatform.parsed.kernel.name}' + cpu_family = '${cpuFamily stdenv.targetPlatform}' + cpu = '${stdenv.targetPlatform.parsed.cpu.name}' + endian = ${if stdenv.targetPlatform.isLittleEndian then "'little'" else "'big'"} + ''; + in [ "--cross-file=${crossFile}" ] ++ mesonFlags; + } // lib.optionalAttrs (attrs.enableParallelBuilding or false) { + enableParallelChecking = attrs.enableParallelChecking or true; + } // lib.optionalAttrs (hardeningDisable != [] || hardeningEnable != [] || stdenv.hostPlatform.isMusl) { + NIX_HARDENING_ENABLE = enabledHardeningOptions; + } // lib.optionalAttrs (stdenv.hostPlatform.isx86_64 && stdenv.hostPlatform ? gcc.arch) { + requiredSystemFeatures = attrs.requiredSystemFeatures or [] ++ [ "gccarch-${stdenv.hostPlatform.gcc.arch}" ]; + } // lib.optionalAttrs (stdenv.buildPlatform.isDarwin) { + inherit __darwinAllowLocalNetworking; + # TODO: remove lib.unique once nix has a list canonicalization primitive + __sandboxProfile = + let profiles = [ stdenv.extraSandboxProfile ] ++ computedSandboxProfile ++ computedPropagatedSandboxProfile ++ [ propagatedSandboxProfile sandboxProfile ]; + final = lib.concatStringsSep "\n" (lib.filter (x: x != "") (lib.unique profiles)); + in final; + __propagatedSandboxProfile = lib.unique (computedPropagatedSandboxProfile ++ [ propagatedSandboxProfile ]); + __impureHostDeps = computedImpureHostDeps ++ computedPropagatedImpureHostDeps ++ __propagatedImpureHostDeps ++ __impureHostDeps ++ stdenv.__extraImpureHostDeps ++ [ + "/dev/zero" + "/dev/random" + "/dev/urandom" + "/bin/sh" + ]; + __propagatedImpureHostDeps = computedPropagatedImpureHostDeps ++ __propagatedImpureHostDeps; + }; + + validity = checkMeta { inherit meta attrs; }; + + # The meta attribute is passed in the resulting attribute set, + # but it's not part of the actual derivation, i.e., it's not + # passed to the builder and is not a dependency. But since we + # include it in the result, it *is* available to nix-env for queries. + meta = { + # `name` above includes cross-compilation cruft (and is under assert), + # lets have a clean always accessible version here. + name = attrs.name or "${attrs.pname}-${attrs.version}"; + + # If the packager hasn't specified `outputsToInstall`, choose a default, + # which is the name of `p.bin or p.out or p` along with `p.man` when + # present. + # + # If the packager has specified it, it will be overridden below in + # `// meta`. + # + # Note: This default probably shouldn't be globally configurable. + # Services and users should specify outputs explicitly, + # unless they are comfortable with this default. + outputsToInstall = + let + hasOutput = out: builtins.elem out outputs; + in [( lib.findFirst hasOutput null (["bin" "out"] ++ outputs) )] + ++ lib.optional (hasOutput "man") "man"; + } + // attrs.meta or {} + # Fill `meta.position` to identify the source location of the package. + // lib.optionalAttrs (pos != null) { + position = pos.file + ":" + toString pos.line; + } // { + # Expose the result of the checks for everyone to see. + inherit (validity) unfree broken unsupported insecure; + available = validity.valid + && (if config.checkMetaRecursively or false + then lib.all (d: d.meta.available or true) references + else true); + }; + +in + +lib.extendDerivation + validity.handled + ({ + overrideAttrs = f: stdenv.mkDerivation (attrs // (f attrs)); + + # A derivation that always builds successfully and whose runtime + # dependencies are the original derivations build time dependencies + # This allows easy building and distributing of all derivations + # needed to enter a nix-shell with + # nix-build shell.nix -A inputDerivation + inputDerivation = derivation (derivationArg // { + # Add a name in case the original drv didn't have one + name = derivationArg.name or "inputDerivation"; + # This always only has one output + outputs = [ "out" ]; + + # Propagate the original builder and arguments, since we override + # them and they might contain references to build inputs + _derivation_original_builder = derivationArg.builder; + _derivation_original_args = derivationArg.args; + + builder = stdenv.shell; + # The bash builtin `export` dumps all current environment variables, + # which is where all build input references end up (e.g. $PATH for + # binaries). By writing this to $out, Nix can find and register + # them as runtime dependencies (since Nix greps for store paths + # through $out to find them) + args = [ "-c" "export > $out" ]; + }); + + inherit meta passthru; + } // + # Pass through extra attributes that are not inputs, but + # should be made available to Nix expressions using the + # derivation (e.g., in assertions). + passthru) + (derivation derivationArg) diff --git a/pkgs/tools/admin/sec/default.nix b/pkgs/tools/admin/sec/default.nix index 0afac976d09..11a18dc199d 100644 --- a/pkgs/tools/admin/sec/default.nix +++ b/pkgs/tools/admin/sec/default.nix @@ -2,13 +2,13 @@ stdenv.mkDerivation rec { pname = "sec"; - version = "2.8.3"; + version = "2.9.0"; src = fetchFromGitHub { owner = "simple-evcorr"; repo = "sec"; rev = version; - sha256 = "0ryic5ilj1i5l41440i0ss6j3yv796fz3gr0qij5pqyd1z21md83"; + sha256 = "sha256-WYSlIRhDBIDaza92VqCQcdMNicuRUX2IKY5CJyhswdI="; }; buildInputs = [ perl ]; diff --git a/pkgs/tools/misc/lua-format/default.nix b/pkgs/tools/misc/lua-format/default.nix deleted file mode 100644 index 9aad25ce729..00000000000 --- a/pkgs/tools/misc/lua-format/default.nix +++ /dev/null @@ -1,32 +0,0 @@ -{ lib, stdenv, fetchFromGitHub, substituteAll, antlr4, libargs, catch2, cmake, libyamlcpp }: - -stdenv.mkDerivation rec { - pname = "lua-format"; - version = "1.3.6"; - - src = fetchFromGitHub { - owner = "Koihik"; - repo = "LuaFormatter"; - rev = version; - sha256 = "14l1f9hrp6m7z3cm5yl0njba6gfixzdirxjl8nihp9val0685vm0"; - }; - - patches = [ - (substituteAll { - src = ./fix-lib-paths.patch; - antlr4RuntimeCpp = antlr4.runtime.cpp.dev; - inherit libargs catch2 libyamlcpp; - }) - ]; - - nativeBuildInputs = [ cmake ]; - - buildInputs = [ antlr4.runtime.cpp libyamlcpp ]; - - meta = with lib; { - description = "Code formatter for Lua"; - homepage = "https://github.com/Koihik/LuaFormatter"; - license = licenses.asl20; - maintainers = with maintainers; [ SuperSandro2000 ]; - }; -} diff --git a/pkgs/tools/security/otpauth/default.nix b/pkgs/tools/security/otpauth/default.nix new file mode 100644 index 00000000000..66e6dab5681 --- /dev/null +++ b/pkgs/tools/security/otpauth/default.nix @@ -0,0 +1,27 @@ +{ lib +, fetchFromGitHub +, buildGoModule +}: + +buildGoModule rec { + pname = "otpauth"; + version = "0.3.4"; + + src = fetchFromGitHub { + owner = "dim13"; + repo = "otpauth"; + rev = "v${version}"; + sha256 = "199kh544kx4cbsczc9anmciczi738gdc5g518ybb05h49vlb51dp"; + }; + + runVend = true; + vendorSha256 = "1762cchqydgsf94y05dwxcrajvjr64ayi5xk1svn1xissyc7vgpv"; + doCheck = true; + + meta = with lib; { + description = "Google Authenticator migration decoder"; + homepage = "https://github.com/dim13/otpauth"; + license = licenses.isc; + maintainers = with maintainers; [ ereslibre ]; + }; +} diff --git a/pkgs/tools/system/htop/default.nix b/pkgs/tools/system/htop/default.nix index 25a397bc987..9c254ab33d8 100644 --- a/pkgs/tools/system/htop/default.nix +++ b/pkgs/tools/system/htop/default.nix @@ -1,7 +1,14 @@ { lib, fetchFromGitHub, stdenv, autoreconfHook -, ncurses, IOKit +, ncurses +, IOKit +, sensorsSupport ? stdenv.isLinux, lm_sensors +, systemdSupport ? stdenv.isLinux, systemd }: +with lib; + +assert systemdSupport -> stdenv.isLinux; + stdenv.mkDerivation rec { pname = "htop"; version = "3.0.5"; @@ -15,10 +22,26 @@ stdenv.mkDerivation rec { nativeBuildInputs = [ autoreconfHook ]; - buildInputs = [ ncurses - ] ++ lib.optionals stdenv.isDarwin [ IOKit ]; + buildInputs = [ ncurses ] + ++ optional stdenv.isDarwin IOKit + ++ optional sensorsSupport lm_sensors + ++ optional systemdSupport systemd + ; + + configureFlags = [ "--enable-unicode" ] + ++ optional sensorsSupport "--with-sensors" + ; + + postFixup = + let + optionalPatch = pred: so: optionalString pred "patchelf --add-needed ${so} $out/bin/htop"; + in + '' + ${optionalPatch sensorsSupport "${lm_sensors}/lib/libsensors.so"} + ${optionalPatch systemdSupport "${systemd}/lib/libsystemd.so"} + ''; - meta = with lib; { + meta = { description = "An interactive process viewer for Linux"; homepage = "https://htop.dev"; license = licenses.gpl2Only; diff --git a/pkgs/tools/system/s6-rc/default.nix b/pkgs/tools/system/s6-rc/default.nix index 532575d16c8..31b9c14257a 100644 --- a/pkgs/tools/system/s6-rc/default.nix +++ b/pkgs/tools/system/s6-rc/default.nix @@ -1,4 +1,4 @@ -{ lib, skawarePackages }: +{ lib, stdenv, skawarePackages, targetPackages }: with skawarePackages; @@ -8,7 +8,7 @@ buildPackage { sha256 = "12bzc483jpd16xmhfsfrib84daj1k3kwy5s5nc18ap60apa1r39a"; description = "A service manager for s6-based systems"; - platforms = lib.platforms.linux; + platforms = lib.platforms.unix; outputs = [ "bin" "lib" "dev" "doc" "out" ]; @@ -30,6 +30,25 @@ buildPackage { "--with-dynlib=${s6.out}/lib" ]; + # s6-rc-compile generates built-in service definitions containing + # absolute paths to execline, s6, and s6-rc programs. If we're + # running s6-rc-compile as part of a Nix derivation, and we want to + # cross-compile that derivation, those paths will be wrong -- + # they'll be for execline, s6, and s6-rc on the platform we're + # running s6-rc-compile on, not the platform we're targeting. + # + # We can detect this special case of s6-rc being used at build time + # in a derivation that's being cross-compiled, because that's the + # only time hostPlatform != targetPlatform. When that happens we + # modify s6-rc-compile to use the configuration headers for the + # system we're cross-compiling for. + postConfigure = lib.optionalString (stdenv.hostPlatform != stdenv.targetPlatform) '' + substituteInPlace src/s6-rc/s6-rc-compile.c \ + --replace '<execline/config.h>' '"${targetPackages.execline.dev}/include/execline/config.h"' \ + --replace '<s6/config.h>' '"${targetPackages.s6.dev}/include/s6/config.h"' \ + --replace '<s6-rc/config.h>' '"${targetPackages.s6-rc.dev}/include/s6-rc/config.h"' + ''; + postInstall = '' # remove all s6 executables from build directory rm $(find -name "s6-rc-*" -type f -mindepth 1 -maxdepth 1 -executable) diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index bbfdf562d1d..44287d8688b 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -971,8 +971,6 @@ with pkgs; logseq = callPackage ../applications/misc/logseq { }; - lua-format = callPackage ../tools/misc/lua-format { }; - lxterminal = callPackage ../applications/terminal-emulators/lxterminal { }; microcom = callPackage ../applications/terminal-emulators/microcom { }; @@ -7974,6 +7972,8 @@ with pkgs; inherit (darwin.apple_sdk.frameworks) IOKit; }; + otpauth = callPackage ../tools/security/otpauth { }; + pcsclite = callPackage ../tools/security/pcsclite { inherit (darwin.apple_sdk.frameworks) IOKit; }; @@ -9324,6 +9324,8 @@ with pkgs; tboot = callPackage ../tools/security/tboot { }; + tagutil = callPackage ../applications/audio/tagutil { }; + tcpdump = callPackage ../tools/networking/tcpdump { }; tcpflow = callPackage ../tools/networking/tcpflow { }; @@ -22854,6 +22856,8 @@ with pkgs; anup = callPackage ../applications/misc/anup {}; + anytype = callPackage ../applications/misc/anytype { }; + ao = libfive; apache-directory-studio = callPackage ../applications/networking/apache-directory-studio {}; diff --git a/pkgs/top-level/stage.nix b/pkgs/top-level/stage.nix index dc43bbec9d3..b01ef584d20 100644 --- a/pkgs/top-level/stage.nix +++ b/pkgs/top-level/stage.nix @@ -65,7 +65,12 @@ let stdenvAdapters = self: super: - let res = import ../stdenv/adapters.nix self; in res // { + let + res = import ../stdenv/adapters.nix { + inherit lib config; + pkgs = self; + }; + in res // { stdenvAdapters = res; }; diff --git a/pkgs/top-level/static.nix b/pkgs/top-level/static.nix index 55bba46c762..73fe6dbc836 100644 --- a/pkgs/top-level/static.nix +++ b/pkgs/top-level/static.nix @@ -35,9 +35,6 @@ self: super: let }; staticAdapters = - # makeStaticDarwin must go first so that the extraBuildInputs - # override does not recreate mkDerivation, removing subsequent - # adapters. optional super.stdenv.hostPlatform.isDarwin makeStaticDarwin ++ [ makeStaticLibraries propagateBuildInputs ] @@ -80,30 +77,9 @@ self: super: let }); }; - llvmStaticAdapter = llvmPackages: - llvmPackages // { - stdenv = foldl (flip id) llvmPackages.stdenv staticAdapters; - libcxxStdenv = foldl (flip id) llvmPackages.libcxxStdenv staticAdapters; - }; - in { stdenv = foldl (flip id) super.stdenv staticAdapters; - gcc49Stdenv = foldl (flip id) super.gcc49Stdenv staticAdapters; - gcc6Stdenv = foldl (flip id) super.gcc6Stdenv staticAdapters; - gcc7Stdenv = foldl (flip id) super.gcc7Stdenv staticAdapters; - gcc8Stdenv = foldl (flip id) super.gcc8Stdenv staticAdapters; - gcc9Stdenv = foldl (flip id) super.gcc9Stdenv staticAdapters; - - llvmPackages_5 = llvmStaticAdapter super.llvmPackages_5; - llvmPackages_6 = llvmStaticAdapter super.llvmPackages_6; - llvmPackages_7 = llvmStaticAdapter super.llvmPackages_7; - llvmPackages_8 = llvmStaticAdapter super.llvmPackages_8; - llvmPackages_9 = llvmStaticAdapter super.llvmPackages_9; - llvmPackages_10 = llvmStaticAdapter super.llvmPackages_10; - llvmPackages_11 = llvmStaticAdapter super.llvmPackages_11; - llvmPackages_12 = llvmStaticAdapter super.llvmPackages_12; - boost = super.boost.override { # Don’t use new stdenv for boost because it doesn’t like the # --disable-shared flag |