diff --git a/nixos/modules/tasks/filesystems/zfs.nix b/nixos/modules/tasks/filesystems/zfs.nix index 3bc0dedec00..fbfc61177d3 100644 --- a/nixos/modules/tasks/filesystems/zfs.nix +++ b/nixos/modules/tasks/filesystems/zfs.nix @@ -642,41 +642,14 @@ in }; scriptArgs = "%i"; - path = [ pkgs.gawk cfgZfs.package ]; + path = [ cfgZfs.package ]; - # ZFS has no way of enumerating just devices in a pool in a way - # that 'zpool online -e' supports. Thus, we've implemented a - # bit of a strange approach of highlighting just devices. - # See: https://github.com/openzfs/zfs/issues/12505 - script = let - # This UUID has been chosen at random and is to provide a - # collision-proof, predictable token to search for - magicIdentifier = "NIXOS-ZFS-ZPOOL-DEVICE-IDENTIFIER-37108bec-aff6-4b58-9e5e-53c7c9766f05"; - zpoolScripts = pkgs.writeShellScriptBin "device-highlighter" '' - echo "${magicIdentifier}" - ''; - in '' + script = '' pool=$1 echo "Expanding all devices for $pool." - # Put our device-highlighter script it to the PATH - export ZPOOL_SCRIPTS_PATH=${zpoolScripts}/bin - - # Enable running our precisely specified zpool script as root - export ZPOOL_SCRIPTS_AS_ROOT=1 - - devices() ( - zpool status -c device-highlighter "$pool" \ - | awk '($2 == "ONLINE" && $6 == "${magicIdentifier}") { print $1; }' - ) - - for device in $(devices); do - echo "Attempting to expand $device of $pool..." - if ! zpool online -e "$pool" "$device"; then - echo "Failed to expand '$device' of '$pool'." - fi - done + ${pkgs.zpool-auto-expand-partitions}/bin/zpool_part_disks --automatically-grow "$pool" ''; }; @@ -701,8 +674,6 @@ in RemainAfterExit = true; }; - path = [ pkgs.gawk cfgZfs.package ]; - script = '' for pool in ${poolListProvider}; do systemctl start --no-block "zpool-expand@$pool" diff --git a/nixos/tests/zfs.nix b/nixos/tests/zfs.nix index bf0165b8816..0b44961a3de 100644 --- a/nixos/tests/zfs.nix +++ b/nixos/tests/zfs.nix @@ -127,4 +127,54 @@ in { }; installer = (import ./installer.nix { }).zfsroot; + + expand-partitions = makeTest { + name = "multi-disk-zfs"; + nodes = { + machine = { pkgs, ... }: { + environment.systemPackages = [ pkgs.parted ]; + boot.supportedFilesystems = [ "zfs" ]; + networking.hostId = "00000000"; + + virtualisation = { + emptyDiskImages = [ 20480 20480 20480 20480 20480 20480 ]; + }; + + specialisation.resize.configuration = { + services.zfs.expandOnBoot = [ "tank" ]; + }; + }; + }; + + testScript = { nodes, ... }: + '' + start_all() + machine.wait_for_unit("default.target") + print(machine.succeed('mount')) + + print(machine.succeed('parted --script /dev/vdb -- mklabel gpt')) + print(machine.succeed('parted --script /dev/vdb -- mkpart primary 1M 70M')) + + print(machine.succeed('parted --script /dev/vdc -- mklabel gpt')) + print(machine.succeed('parted --script /dev/vdc -- mkpart primary 1M 70M')) + + print(machine.succeed('zpool create tank mirror /dev/vdb1 /dev/vdc1 mirror /dev/vdd /dev/vde mirror /dev/vdf /dev/vdg')) + print(machine.succeed('zpool list -v')) + print(machine.succeed('mount')) + start_size = int(machine.succeed('df -k --output=size /tank | tail -n1').strip()) + + print(machine.succeed("/run/current-system/specialisation/resize/bin/switch-to-configuration test >&2")) + machine.wait_for_unit("zpool-expand-pools.service") + machine.wait_for_unit("zpool-expand@tank.service") + + print(machine.succeed('zpool list -v')) + new_size = int(machine.succeed('df -k --output=size /tank | tail -n1').strip()) + + if (new_size - start_size) > 20000000: + print("Disk grew appropriately.") + else: + print(f"Disk went from {start_size} to {new_size}, which doesn't seem right.") + exit(1) + ''; + }; } diff --git a/pkgs/applications/editors/cudatext/default.nix b/pkgs/applications/editors/cudatext/default.nix index d142551a114..c94ee471c28 100644 --- a/pkgs/applications/editors/cudatext/default.nix +++ b/pkgs/applications/editors/cudatext/default.nix @@ -38,13 +38,13 @@ let in stdenv.mkDerivation rec { pname = "cudatext"; - version = "1.159.2"; + version = "1.160.0"; src = fetchFromGitHub { owner = "Alexey-T"; repo = "CudaText"; rev = version; - sha256 = "sha256-dSZd+Dsln7xUfN/cqTZSdnpnINHsDCBrbNGcDLwqzzU="; + sha256 = "sha256-42V6RFa+mAXyaUuKeDQa9Voi1MjnzcVl+cOA65VabxM="; }; postPatch = '' diff --git a/pkgs/applications/editors/cudatext/deps.json b/pkgs/applications/editors/cudatext/deps.json index 430061e0eb7..efb179333bf 100644 --- a/pkgs/applications/editors/cudatext/deps.json +++ b/pkgs/applications/editors/cudatext/deps.json @@ -16,8 +16,8 @@ }, "ATSynEdit": { "owner": "Alexey-T", - "rev": "2022.03.23", - "sha256": "sha256-D/pQ4TSWUaL97Nau3bGi7rc8MxnvuoDcD7HDNEDwmsk=" + "rev": "2022.04.06", + "sha256": "sha256-EnPOAl1qsdcYzmUgT5rSYqY/xOLSfDcMNCXIG8LC4H0=" }, "ATSynEdit_Cmp": { "owner": "Alexey-T", diff --git a/pkgs/applications/emulators/tinyemu/default.nix b/pkgs/applications/emulators/tinyemu/default.nix index c32fd24fe47..ca3f8acd88c 100644 --- a/pkgs/applications/emulators/tinyemu/default.nix +++ b/pkgs/applications/emulators/tinyemu/default.nix @@ -21,7 +21,12 @@ stdenv.mkDerivation rec { openssl ]; - makeFlags = [ "DESTDIR=$(out)" "bindir=/bin" ]; + makeFlags = [ + "CC:=$(CC)" + "STRIP:=$(STRIP)" + "DESTDIR=$(out)" + "bindir=/bin" + ]; preInstall = '' mkdir -p "$out/bin" diff --git a/pkgs/applications/misc/bikeshed/default.nix b/pkgs/applications/misc/bikeshed/default.nix new file mode 100644 index 00000000000..330235b80d7 --- /dev/null +++ b/pkgs/applications/misc/bikeshed/default.nix @@ -0,0 +1,77 @@ +{ lib +, buildPythonApplication +, fetchPypi +# build inputs +, aiofiles +, aiohttp +, attrs +, certifi +, cssselect +, html5lib +, isodate +, json-home-client +, lxml +, pillow +, pygments +, requests +, result +, setuptools +, tenacity +, widlparser +}: + +buildPythonApplication rec { + pname = "bikeshed"; + version = "3.4.3"; + + src = fetchPypi { + inherit pname version; + sha256 = "sha256-vJW4yNbKCZraJ5vx8FheNsBl+zObGoLFgAVqoU0p9QQ="; + }; + + # Relax requirements from "==" to ">=" + # https://github.com/tabatkins/bikeshed/issues/2178 + postPatch = '' + substituteInPlace requirements.txt \ + --replace "==" ">=" + ''; + + propagatedBuildInputs = [ + aiofiles + aiohttp + attrs + certifi + cssselect + html5lib + isodate + json-home-client + lxml + pillow + pygments + requests + result + setuptools + tenacity + widlparser + ]; + + checkPhase = '' + $out/bin/bikeshed test + ''; + + pythonImportsCheck = [ "bikeshed" ]; + + meta = with lib; { + description = "Preprocessor for anyone writing specifications that converts source files into actual specs"; + longDescription = '' + Bikeshed is a pre-processor for spec documents, turning a source document + (containing only the actual spec content, plus several shorthands for linking + to terms and other things) into a final spec document, with appropriate boilerplate, + bibliography, indexes, etc all filled in. It's used on specs for CSS + and many other W3C working groups, WHATWG, the C++ standards committee, and elsewhere! + ''; + homepage = "https://tabatkins.github.io/bikeshed/"; + license = licenses.cc0; + maintainers = [ maintainers.kvark ]; + }; +} diff --git a/pkgs/applications/misc/gpsprune/default.nix b/pkgs/applications/misc/gpsprune/default.nix index 1c898fa343c..48708bc057c 100644 --- a/pkgs/applications/misc/gpsprune/default.nix +++ b/pkgs/applications/misc/gpsprune/default.nix @@ -2,11 +2,11 @@ stdenv.mkDerivation rec { pname = "gpsprune"; - version = "21.1"; + version = "21.2"; src = fetchurl { url = "https://activityworkshop.net/software/gpsprune/gpsprune_${version}.jar"; - sha256 = "sha256-WyI9IKzUmKGiqiYs6SSuGhVUdO2UCsPSSL/IjPLykiM="; + sha256 = "sha256-QgbLbpqlC2sITbPK4ZcaovmycwhWtnu06x8F0grpECc="; }; dontUnpack = true; diff --git a/pkgs/applications/networking/browsers/lagrange/default.nix b/pkgs/applications/networking/browsers/lagrange/default.nix index 53d5733bb58..e744f2a31c6 100644 --- a/pkgs/applications/networking/browsers/lagrange/default.nix +++ b/pkgs/applications/networking/browsers/lagrange/default.nix @@ -19,13 +19,13 @@ stdenv.mkDerivation rec { pname = "lagrange"; - version = "1.12.0"; + version = "1.12.1"; src = fetchFromGitHub { owner = "skyjake"; repo = "lagrange"; rev = "v${version}"; - sha256 = "sha256-1eWd4En14p8E04kLWbsbJSEdjManQ87N/P3klFbUQx4="; + sha256 = "sha256-CpvoovTn++RTQjyeOlHTG+cjn32F+9qP32+YHpoLB8M="; fetchSubmodules = true; }; diff --git a/pkgs/applications/networking/cluster/terraform/default.nix b/pkgs/applications/networking/cluster/terraform/default.nix index 897acd76237..e6fa464df6b 100644 --- a/pkgs/applications/networking/cluster/terraform/default.nix +++ b/pkgs/applications/networking/cluster/terraform/default.nix @@ -66,6 +66,7 @@ let timstott zimbatm zowoq + techknowlogick ]; }; } // attrs'); @@ -191,9 +192,9 @@ rec { }; terraform_1 = mkTerraform { - version = "1.1.7"; - sha256 = "sha256-E8qY17MSdA7fQW4wGSDiPzbndBP5SZwelAJAWzka/io="; - vendorSha256 = "sha256-lyy/hcr00ix6qZoxzSfCbXvDC8dRB2ZjrONywpqbVZ8="; + version = "1.1.8"; + sha256 = "sha256-U3RuLnDQD1EbPZG/wPuVMbSKmR3EqspkoK0Ky8aZb7k="; + vendorSha256 = "sha256-Jy9o0O80OjagrHG25CSPblI49zKx0N8pwvEotk9qm3s="; patches = [ ./provider-path-0_15.patch ]; passthru = { inherit plugins; }; }; diff --git a/pkgs/applications/networking/shellhub-agent/default.nix b/pkgs/applications/networking/shellhub-agent/default.nix index d698601cb19..7384f7c350a 100644 --- a/pkgs/applications/networking/shellhub-agent/default.nix +++ b/pkgs/applications/networking/shellhub-agent/default.nix @@ -8,18 +8,18 @@ buildGoModule rec { pname = "shellhub-agent"; - version = "0.9.0"; + version = "0.9.1"; src = fetchFromGitHub { owner = "shellhub-io"; repo = "shellhub"; rev = "v${version}"; - sha256 = "A1634b3uxlILMpx/9jpCIApqAqofvD4ZPasVKL29Gtc="; + sha256 = "E1TX3GBVKn0tXloNhyiXOtDwSlO7mwXJ6zaOSHKZEFc="; }; modRoot = "./agent"; - vendorSha256 = "sha256-LxJtLQr8djoRGznT5hL2agTgtZY6pFS8Zo0BwHDmugc="; + vendorSha256 = "sha256-sPb49tRUHhwow7+IKiN33sgWYAa3lTpOD1vh8e5Wy68="; ldflags = [ "-s" "-w" "-X main.AgentVersion=v${version}" ]; diff --git a/pkgs/applications/science/math/sage/sage-env.nix b/pkgs/applications/science/math/sage/sage-env.nix index e680c0c3b22..cdff1e8477a 100644 --- a/pkgs/applications/science/math/sage/sage-env.nix +++ b/pkgs/applications/science/math/sage/sage-env.nix @@ -151,6 +151,7 @@ writeTextFile rec { # needed for cython export CC='${stdenv.cc}/bin/${stdenv.cc.targetPrefix}cc' + export CXX='${stdenv.cc}/bin/${stdenv.cc.targetPrefix}c++' # cython needs to find these libraries, otherwise will fail with `ld: cannot find -lflint` or similar export LDFLAGS='${ lib.concatStringsSep " " (map (pkg: "-L${pkg}/lib") [ @@ -178,6 +179,7 @@ writeTextFile rec { mpfr.dev ]) }' + export CXXFLAGS=$CFLAGS export SAGE_LIB='${sagelib}/${python3.sitePackages}' diff --git a/pkgs/applications/science/math/sage/sage-src.nix b/pkgs/applications/science/math/sage/sage-src.nix index 22e3a288b7d..04c2355d26a 100644 --- a/pkgs/applications/science/math/sage/sage-src.nix +++ b/pkgs/applications/science/math/sage/sage-src.nix @@ -121,10 +121,10 @@ stdenv.mkDerivation rec { # https://trac.sagemath.org/ticket/33170 (fetchSageDiff { - base = "9.5.rc1"; - name = "ipython-8-update.patch"; - rev = "a90a314616d86d6be9c0d5233f0d36c4bfe06231"; - sha256 = "sha256-pXdtokTo84xNCnV+HyAKEzG562z8FjzJ7hczOja0dRw="; + base = "9.6.beta5"; + name = "ipython-8.1-update.patch"; + rev = "4d2b53f1541375861310af3a7f7109c1c2ed475d"; + sha256 = "sha256-ELda/VBzsQH7NdFas69fQ35QPUoJCeLx/gxT1j7qGR8="; }) # https://trac.sagemath.org/ticket/32968 @@ -156,6 +156,22 @@ stdenv.mkDerivation rec { # adapted from https://trac.sagemath.org/ticket/23712#comment:22 ./patches/tachyon-renamed-focallength.patch + + # https://trac.sagemath.org/ticket/33336 + (fetchSageDiff { + base = "9.6.beta2"; + name = "scipy-1.8-update.patch"; + rev = "9c8235e44ffb509efa8a3ca6cdb55154e2b5066d"; + sha256 = "sha256-bfc4ljNOxVnhlmxIuNbjbKl4vJXYq2tlF3Z8bbC8PWw="; + }) + + # https://trac.sagemath.org/ticket/33495 + (fetchSageDiff { + base = "9.6.beta5"; + name = "networkx-2.7-update.patch"; + rev = "8452003846a7303100847d8d0ed642fc642c11d6"; + sha256 = "sha256-A/XMouPlc2sjFp30L+56fBGJXydS2EtzfPOV98FCDqI="; + }) ]; patches = nixPatches ++ bugfixPatches ++ packageUpgradePatches; diff --git a/pkgs/applications/science/math/sage/sagelib.nix b/pkgs/applications/science/math/sage/sagelib.nix index 8d685c8da60..92eae35688f 100644 --- a/pkgs/applications/science/math/sage/sagelib.nix +++ b/pkgs/applications/science/math/sage/sagelib.nix @@ -181,11 +181,16 @@ buildPythonPackage rec { # some files, like Pipfile, pyproject.toml, requirements.txt and setup.cfg # are generated by the bootstrap script using m4. these can fetch data from # build/pkgs, either directly or via sage-get-system-packages. - sed -i 's/==2.1.0rc1/>=2.1.1/' ../gmpy2/install-requires.txt - sed -i 's/, <3.4//' ../rpy2/install-requires.txt - sed -i 's/, <4.3//' ../sphinx/install-requires.txt sed -i '/sage_conf/d' src/setup.cfg.m4 sed -i '/sage_conf/d' src/requirements.txt.m4 + + # version lower bounds are useful, but upper bounds are a hassle because + # Sage tests already catch any relevant API breakage. + # according to the discussion at https://trac.sagemath.org/ticket/33520, + # upper bounds will be less noisy starting from Sage 9.6. + sed -i 's/==2.1.0rc1/>=2.1.1/' ../gmpy2/install-requires.txt + sed -i 's/, <[^, ]*//' ../*/install-requires.txt + for infile in src/*.m4; do if [ -f "$infile" ]; then outfile="src/$(basename $infile .m4)" diff --git a/pkgs/applications/virtualization/docker/buildx.nix b/pkgs/applications/virtualization/docker/buildx.nix index 9b440963f4a..e98eb404b9c 100644 --- a/pkgs/applications/virtualization/docker/buildx.nix +++ b/pkgs/applications/virtualization/docker/buildx.nix @@ -2,13 +2,13 @@ buildGoModule rec { pname = "docker-buildx"; - version = "0.8.1"; + version = "0.8.2"; src = fetchFromGitHub { owner = "docker"; repo = "buildx"; rev = "v${version}"; - sha256 = "sha256-NJNFjzbiBcmXcBF1k0qybv5LnkaQ+1ehSfF18CC85JY="; + sha256 = "sha256-AGRdmYKd76k5tmBTTqsSHj3yOU8QSd11G5ito0O/dWY="; }; vendorSha256 = null; diff --git a/pkgs/development/libraries/civetweb/default.nix b/pkgs/development/libraries/civetweb/default.nix index bf737972612..3222702f5a1 100644 --- a/pkgs/development/libraries/civetweb/default.nix +++ b/pkgs/development/libraries/civetweb/default.nix @@ -30,8 +30,9 @@ stdenv.mkDerivation rec { ''; cmakeFlags = [ - "-DCIVETWEB_ENABLE_CXX=ON" "-DBUILD_SHARED_LIBS=ON" + "-DCIVETWEB_ENABLE_CXX=ON" + "-DCIVETWEB_ENABLE_IPV6=ON" # The civetweb unit tests rely on downloading their fork of libcheck. "-DCIVETWEB_BUILD_TESTING=OFF" diff --git a/pkgs/development/ocaml-modules/cmdliner/default.nix b/pkgs/development/ocaml-modules/cmdliner/default.nix index 9536cc25290..77970556100 100644 --- a/pkgs/development/ocaml-modules/cmdliner/default.nix +++ b/pkgs/development/ocaml-modules/cmdliner/default.nix @@ -1,35 +1,27 @@ { lib, stdenv, fetchurl, ocaml, findlib, ocamlbuild, topkg, result }: -let - pname = "cmdliner"; -in - -assert lib.versionAtLeast ocaml.version "4.01.0"; - -let param = - if lib.versionAtLeast ocaml.version "4.03" then { - version = "1.0.4"; - sha256 = "1h04q0zkasd0mw64ggh4y58lgzkhg6yhzy60lab8k8zq9ba96ajw"; - } else { - version = "1.0.2"; - sha256 = "18jqphjiifljlh9jg8zpl6310p3iwyaqphdkmf89acyaix0s4kj1"; - } -; in +assert (lib.versionAtLeast ocaml.version "4.03"); stdenv.mkDerivation rec { - name = "ocaml${ocaml.version}-${pname}-${version}"; - inherit (param) version; + pname = "cmdliner"; + version = "1.0.4"; src = fetchurl { url = "https://erratique.ch/software/${pname}/releases/${pname}-${version}.tbz"; - inherit (param) sha256; + sha256 = "1h04q0zkasd0mw64ggh4y58lgzkhg6yhzy60lab8k8zq9ba96ajw"; }; - nativeBuildInputs = [ ocaml ocamlbuild findlib topkg ]; - buildInputs = [ topkg ]; - propagatedBuildInputs = [ result ]; + nativeBuildInputs = [ ocaml ]; - inherit (topkg) buildPhase installPhase; + makeFlags = [ "PREFIX=$(out)" ]; + installTargets = "install install-doc"; + installFlags = [ + "LIBDIR=$(out)/lib/ocaml/${ocaml.version}/site-lib/${pname}" + "DOCDIR=$(out)/share/doc/${pname}" + ]; + postInstall = '' + mv $out/lib/ocaml/${ocaml.version}/site-lib/${pname}/{opam,${pname}.opam} + ''; meta = with lib; { homepage = "https://erratique.ch/software/cmdliner"; diff --git a/pkgs/development/python-modules/json-home-client/default.nix b/pkgs/development/python-modules/json-home-client/default.nix new file mode 100644 index 00000000000..be3d99904dc --- /dev/null +++ b/pkgs/development/python-modules/json-home-client/default.nix @@ -0,0 +1,40 @@ +{ lib +, buildPythonPackage +, fetchFromGitHub +, pythonOlder +# build inputs +, typing-extensions +, uri-template +}: + +buildPythonPackage rec { + pname = "json-home-client"; + version = "1.1.1"; + + disabled = pythonOlder "3.6"; + + src = fetchFromGitHub { + owner = "plinss"; + repo = "json_home_client"; + rev = "v${version}"; + sha256 = "sha256-DhnvvY1nMe1sdRE+OgjBt4TsLmiqnD8If4rl700zW9E="; + }; + + postPatch = '' + sed -i -e 's/0.0.0/${version}/' setup.py + ''; + + propagatedBuildInputs = [ + typing-extensions + uri-template + ]; + + pythonImportsCheck = [ "json_home_client" ]; + + meta = with lib; { + description = "Client class for calling http+json APIs in Python"; + homepage = "https://github.com/plinss/json_home_client"; + license = licenses.mit; + maintainers = [ maintainers.kvark ]; + }; +} diff --git a/pkgs/development/python-modules/pre-commit-hooks/default.nix b/pkgs/development/python-modules/pre-commit-hooks/default.nix index eae35b5bac6..db598b368c5 100644 --- a/pkgs/development/python-modules/pre-commit-hooks/default.nix +++ b/pkgs/development/python-modules/pre-commit-hooks/default.nix @@ -11,7 +11,7 @@ buildPythonPackage rec { pname = "pre-commit-hooks"; - version = "4.1.0"; + version = "4.2.0"; format = "setuptools"; disabled = pythonOlder "3.6"; @@ -19,8 +19,8 @@ buildPythonPackage rec { src = fetchFromGitHub { owner = "pre-commit"; repo = pname; - rev = "v${version}"; - sha256 = "sha256-nxJp7LkCUkJj77RCeWedBusue3x0lZYatSidbueZqfo="; + rev = "refs/tags/v${version}"; + sha256 = "sha256-jSu4LutEgpeAbCgSHgk6VXQKLZo00T3TrQVZxsNU1co="; }; propagatedBuildInputs = [ diff --git a/pkgs/development/python-modules/result/default.nix b/pkgs/development/python-modules/result/default.nix new file mode 100644 index 00000000000..95fcc8295b2 --- /dev/null +++ b/pkgs/development/python-modules/result/default.nix @@ -0,0 +1,45 @@ +{ lib +, buildPythonPackage +, fetchFromGitHub +, pytestCheckHook +}: + +buildPythonPackage rec { + pname = "result"; + version = "0.7.0"; + + src = fetchFromGitHub { + owner = "rustedpy"; + repo = "result"; + rev = "v${version}"; + sha256 = "sha256-bEf3OJg6ksDvzZE7ezA58Q2FObb5V7BG8vkKtX284Jg="; + }; + + postPatch = '' + substituteInPlace pyproject.toml \ + --replace '"--flake8",' "" \ + --replace '"--tb=short",' "" \ + --replace '"--cov=result",' "" \ + --replace '"--cov=tests",' "" \ + --replace '"--cov-report=term",' "" \ + --replace '"--cov-report=xml",' "" + ''; + + checkInputs = [ + pytestCheckHook + ]; + + disabledTestPaths = [ + #TODO: figure out the failure "match o:" Invalid Syntax + "tests/test_pattern_matching.py" + ]; + + pythonImportsCheck = [ "result" ]; + + meta = with lib; { + description = "A simple Result type for Python 3 inspired by Rust, fully type annotated"; + homepage = "https://github.com/rustedpy/result"; + license = licenses.mit; + maintainers = [ maintainers.kvark ]; + }; +} diff --git a/pkgs/development/python-modules/uri-template/default.nix b/pkgs/development/python-modules/uri-template/default.nix new file mode 100644 index 00000000000..19f61989e5c --- /dev/null +++ b/pkgs/development/python-modules/uri-template/default.nix @@ -0,0 +1,30 @@ +{ lib, buildPythonPackage, fetchFromGitHub, python }: + +buildPythonPackage rec { + pname = "uri-template"; + version = "1.2.0"; + + src = fetchFromGitHub { + owner = "plinss"; + repo = "uri_template"; + rev = "v${version}"; + sha256 = "sha256-IAq6GpEwimq45FU0QugLZLSOhwAmC1KbpZKD0zyxsUs="; + }; + + postPatch = '' + sed -i -e 's/0.0.0/${version}/' setup.py + ''; + + checkPhase = '' + ${python.interpreter} test.py + ''; + + pythonImportsCheck = [ "uri_template" ]; + + meta = with lib; { + description = "An implementation of RFC 6570 URI Templates"; + homepage = "https://github.com/plinss/uri_template/"; + license = licenses.mit; + maintainers = [ maintainers.kvark ]; + }; +} diff --git a/pkgs/development/python-modules/widlparser/default.nix b/pkgs/development/python-modules/widlparser/default.nix new file mode 100644 index 00000000000..d11fa492ca5 --- /dev/null +++ b/pkgs/development/python-modules/widlparser/default.nix @@ -0,0 +1,38 @@ +{ lib +, buildPythonPackage +, fetchFromGitHub +, pythonOlder +# build inputs +, typing-extensions +}: + +buildPythonPackage rec { + pname = "widlparser"; + version = "1.0.12"; + + disabled = pythonOlder "3.7"; + + src = fetchFromGitHub { + owner = "plinss"; + repo = pname; + rev = "v${version}"; + sha256 = "sha256-T17fDWYd1naza/ao7kXWGcRIl2fzL1/Z9SaJiutZzqk="; + }; + + postPatch = '' + sed -i -e 's/0.0.0/${version}/' setup.py + ''; + + propagatedBuildInputs = [ + typing-extensions + ]; + + pythonImportsCheck = [ "widlparser" ]; + + meta = with lib; { + description = "Stand-alone WebIDL Parser in Python"; + homepage = "https://github.com/plinss/widlparser"; + license = licenses.mit; + maintainers = [ maintainers.kvark ]; + }; +} diff --git a/pkgs/servers/nitter/default.nix b/pkgs/servers/nitter/default.nix index 32c7ac21dae..a0115440b6e 100644 --- a/pkgs/servers/nitter/default.nix +++ b/pkgs/servers/nitter/default.nix @@ -2,14 +2,14 @@ nimPackages.buildNimPackage rec { pname = "nitter"; - version = "unstable-2022-02-11"; + version = "unstable-2022-03-21"; nimBinOnly = true; src = fetchFromGitHub { owner = "zedeus"; repo = "nitter"; - rev = "6695784050605c77a301c0a66764fa9a9580a2f5"; - sha256 = "1lddzf6m74bw5kkv465cp211xxqbwnfacav7ia3y9i38rrnqwk6m"; + rev = "6884f05041a9b8619ec709afacdfdd6482a120a0"; + sha256 = "1mnc6jqljpqp9lgcrxxvf3aiswssr34v139cxfbwlmj45swmsazh"; }; buildInputs = with nimPackages; [ diff --git a/pkgs/servers/nitter/update.sh b/pkgs/servers/nitter/update.sh new file mode 100755 index 00000000000..e756eff5fb9 --- /dev/null +++ b/pkgs/servers/nitter/update.sh @@ -0,0 +1,40 @@ +#!/usr/bin/env nix-shell +#!nix-shell -i bash -p common-updater-scripts curl jq nix nix-prefetch-git patchutils +set -euo pipefail + +info() { + if [ -t 2 ]; then + set -- '\033[32m%s\033[39m\n' "$@" + else + set -- '%s\n' "$@" + fi + printf "$@" >&2 +} + +nitter_old_version=$(nix-instantiate --eval --strict --json -A nitter.version . | jq -r .) +nitter_old_rev=$(nix-instantiate --eval --strict --json -A nitter.src.rev . | jq -r .) +today=$(LANG=C date -u +'%Y-%m-%d') + +# use latest commit before today, we should not call the version *today* +# because there might still be commits coming +# use the day of the latest commit we picked as version +commit=$(curl -Sfs "https://api.github.com/repos/zedeus/nitter/compare/$nitter_old_rev~1...master" \ + | jq '.commits | map(select(.commit.committer.date < $today) | {sha, date: .commit.committer.date}) | .[-1]' --arg today "$today") +nitter_new_rev=$(jq -r '.sha' <<< "$commit") +nitter_new_version="unstable-$(jq -r '.date[0:10]' <<< "$commit")" +info "latest commit before $today: $nitter_new_rev ($(jq -r '.date' <<< "$commit"))" + +if [ "$nitter_new_rev" = "$nitter_old_rev" ]; then + info "nitter is up-to-date." + exit +fi + +if curl -Sfs "https://github.com/zedeus/nitter/compare/$nitter_old_rev...$nitter_new_rev.patch" \ +| lsdiff | grep -Fxe 'a/nitter.nimble' -e 'b/nitter.nimble' > /dev/null; then + info "nitter.nimble changed, some dependencies probably need updating." +fi + +nitter_new_sha256=$(nix-prefetch-git --rev "$nitter_new_rev" "https://github.com/zedeus/nitter.git" | jq -r .sha256) +update-source-version nitter "$nitter_new_version" "$nitter_new_sha256" --rev="$nitter_new_rev" +git commit --all --verbose --message "nitter: $nitter_old_version -> $nitter_new_version" +info "Updated nitter to $nitter_new_version." diff --git a/pkgs/tools/filesystems/zpool-auto-expand-partitions/default.nix b/pkgs/tools/filesystems/zpool-auto-expand-partitions/default.nix new file mode 100644 index 00000000000..afafbca58ba --- /dev/null +++ b/pkgs/tools/filesystems/zpool-auto-expand-partitions/default.nix @@ -0,0 +1,46 @@ +{ rustPlatform +, cloud-utils +, fetchFromGitHub +, lib +, llvmPackages +, pkg-config +, util-linux +, zfs +}: +rustPlatform.buildRustPackage rec { + pname = "zpool-auto-expand-partitions"; + version = "0.1.0"; + + src = fetchFromGitHub { + owner = "DeterminateSystems"; + repo = "zpool-auto-expand-partitions"; + rev = "v${version}"; + hash = "sha256-LA6YO6vv7VCXwFfayQVxVR80niSCo89sG0hqh0wDEh8="; + }; + + cargoHash = "sha256-5v0fqp8aro+QD/f5VudMREc8RvKQapNAoArcCKMN1Sw="; + + preBuild = '' + substituteInPlace src/grow.rs \ + --replace '"growpart"' '"${cloud-utils}/bin/growpart"' + substituteInPlace src/lsblk.rs \ + --replace '"lsblk"' '"${util-linux}/bin/lsblk"' + ''; + + nativeBuildInputs = [ + pkg-config + rustPlatform.bindgenHook + ]; + + buildInputs = [ + util-linux + zfs + ]; + + meta = with lib; { + description = "A tool that aims to expand all partitions in a specified zpool to fill the available space"; + homepage = "https://github.com/DeterminateSystems/zpool-auto-expand-partitions"; + license = licenses.asl20; + maintainers = teams.determinatesystems.members; + }; +} diff --git a/pkgs/tools/networking/findomain/default.nix b/pkgs/tools/networking/findomain/default.nix index 158129c2c1f..6295c4562b0 100644 --- a/pkgs/tools/networking/findomain/default.nix +++ b/pkgs/tools/networking/findomain/default.nix @@ -10,16 +10,16 @@ rustPlatform.buildRustPackage rec { pname = "findomain"; - version = "7.2.0"; + version = "8.0.0"; src = fetchFromGitHub { owner = "Edu4rdSHL"; repo = pname; rev = version; - sha256 = "sha256-NhsEXYEYoRZ/HlMS+MP/N+ZxB13DDZr5B8MY5dbONP0="; + sha256 = "sha256-Bk3p8+FkjrF/nLsPRx8daqieV8iewAbcoO2DglFSERg="; }; - cargoSha256 = "sha256-Y/DgAMWhTgHuhdbYxpsg7UxLF7hXNQEY1aoaUbKdDEM="; + cargoSha256 = "sha256-chHr/3yN2PLUQLYqkln12q3+n7tX2IclVGpXBCkPxCQ="; nativeBuildInputs = [ installShellFiles perl ]; buildInputs = lib.optionals stdenv.isDarwin [ libiconv Security ]; diff --git a/pkgs/tools/package-management/nfpm/default.nix b/pkgs/tools/package-management/nfpm/default.nix index b180de2bed4..1a9013b456d 100644 --- a/pkgs/tools/package-management/nfpm/default.nix +++ b/pkgs/tools/package-management/nfpm/default.nix @@ -13,8 +13,6 @@ buildGoModule rec { vendorSha256 = "sha256-guJgLjmB29sOLIzs2+gKNp0WTWC3zS9Sb5DD5IistKY="; - doCheck = false; - ldflags = [ "-s" "-w" "-X main.version=${version}" ]; meta = with lib; { diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 26906536131..803ed2e5bd0 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -1074,6 +1074,8 @@ with pkgs; cf-vault = callPackage ../tools/admin/cf-vault { }; + bikeshed = python3Packages.callPackage ../applications/misc/bikeshed { }; + cope = callPackage ../tools/misc/cope { }; ejson2env = callPackage ../tools/admin/ejson2env { }; @@ -11623,6 +11625,8 @@ with pkgs; zfsnap = callPackage ../tools/backup/zfsnap { }; + zpool-auto-expand-partitions = callPackage ../tools/filesystems/zpool-auto-expand-partitions { }; + zile = callPackage ../applications/editors/zile { }; zinnia = callPackage ../tools/inputmethods/zinnia { }; diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index de24751acd5..0aba94d3c15 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -4334,6 +4334,8 @@ in { jsonmerge = callPackage ../development/python-modules/jsonmerge { }; + json-home-client = callPackage ../development/python-modules/json-home-client { }; + json-merge-patch = callPackage ../development/python-modules/json-merge-patch { }; json-schema-for-humans = callPackage ../development/python-modules/json-schema-for-humans { }; @@ -8820,6 +8822,8 @@ in { restview = callPackage ../development/python-modules/restview { }; + result = callPackage ../development/python-modules/result { }; + rethinkdb = callPackage ../development/python-modules/rethinkdb { }; retry = callPackage ../development/python-modules/retry { }; @@ -10458,6 +10462,8 @@ in { uritemplate = callPackage ../development/python-modules/uritemplate { }; + uri-template = callPackage ../development/python-modules/uri-template { }; + uritools = callPackage ../development/python-modules/uritools { }; url-normalize = callPackage ../development/python-modules/url-normalize { }; @@ -10748,6 +10754,8 @@ in { widgetsnbextension = callPackage ../development/python-modules/widgetsnbextension { }; + widlparser = callPackage ../development/python-modules/widlparser { }; + wiffi = callPackage ../development/python-modules/wiffi { }; willow = callPackage ../development/python-modules/willow { };