lol

Merge staging-next into staging

authored by

github-actions[bot] and committed by
GitHub
76501a1b 7ea47b7b

+183 -136
+13
maintainers/scripts/README.md
··· 56 56 see [`maintainer-list.nix`] for the fields' definition. 57 57 58 58 [`maintainer-list.nix`]: ../maintainer-list.nix 59 + 60 + 61 + ## Conventions 62 + 63 + ### `sha-to-sri.py` 64 + 65 + `sha-to-sri.py path ...` (atomically) rewrites hash attributes (named `hash` or `sha(1|256|512)`) 66 + into the SRI format: `hash = "{hash name}-{base64 encoded value}"`. 67 + 68 + `path` must point to either a nix file, or a directory which will be automatically traversed. 69 + 70 + `sha-to-sri.py` automatically skips files whose first non-empty line contains `generated by` or `do not edit`. 71 + Moreover, when walking a directory tree, the script will skip files whose name is `yarn.nix` or contains `generated`.
+67 -49
maintainers/scripts/sha-to-sri.py
··· 1 1 #!/usr/bin/env nix-shell 2 2 #! nix-shell -i "python3 -I" -p "python3.withPackages(p: with p; [ rich structlog ])" 3 3 4 - from abc import ABC, abstractclassmethod, abstractmethod 4 + from abc import ABC, abstractmethod 5 5 from contextlib import contextmanager 6 6 from pathlib import Path 7 7 from structlog.contextvars import bound_contextvars as log_context 8 8 from typing import ClassVar, List, Tuple 9 9 10 - import hashlib, re, structlog 10 + import hashlib, logging, re, structlog 11 11 12 12 13 13 logger = structlog.getLogger("sha-to-SRI") ··· 26 26 assert len(digest) == self.n 27 27 28 28 from base64 import b64encode 29 + 29 30 return f"{self.hashName}-{b64encode(digest).decode()}" 30 31 31 32 @classmethod 32 - def all(cls, h) -> 'List[Encoding]': 33 - return [ c(h) for c in cls.__subclasses__() ] 33 + def all(cls, h) -> "List[Encoding]": 34 + return [c(h) for c in cls.__subclasses__()] 34 35 35 36 def __init__(self, h): 36 37 self.n = h.digest_size ··· 38 39 39 40 @property 40 41 @abstractmethod 41 - def length(self) -> int: 42 - ... 42 + def length(self) -> int: ... 43 43 44 44 @property 45 45 def regex(self) -> str: 46 46 return f"[{self.alphabet}]{{{self.length}}}" 47 47 48 48 @abstractmethod 49 - def decode(self, s: str) -> bytes: 50 - ... 49 + def decode(self, s: str) -> bytes: ... 51 50 52 51 53 52 class Nix32(Encoding): 54 53 alphabet = "0123456789abcdfghijklmnpqrsvwxyz" 55 - inverted = { c: i for i, c in enumerate(alphabet) } 54 + inverted = {c: i for i, c in enumerate(alphabet)} 56 55 57 56 @property 58 57 def length(self): 59 58 return 1 + (8 * self.n) // 5 59 + 60 60 def decode(self, s: str): 61 61 assert len(s) == self.length 62 - out = [ 0 for _ in range(self.n) ] 63 - # TODO: Do better than a list of byte-sized ints 62 + out = bytearray(self.n) 64 63 65 64 for n, c in enumerate(reversed(s)): 66 65 digit = self.inverted[c] 67 66 i, j = divmod(5 * n, 8) 68 - out[i] = out[i] | (digit << j) & 0xff 67 + out[i] = out[i] | (digit << j) & 0xFF 69 68 rem = digit >> (8 - j) 70 69 if rem == 0: 71 70 continue 72 71 elif i < self.n: 73 - out[i+1] = rem 72 + out[i + 1] = rem 74 73 else: 75 74 raise ValueError(f"Invalid nix32 hash: '{s}'") 76 75 77 76 return bytes(out) 77 + 78 78 79 79 class Hex(Encoding): 80 80 alphabet = "0-9A-Fa-f" ··· 82 82 @property 83 83 def length(self): 84 84 return 2 * self.n 85 + 85 86 def decode(self, s: str): 86 87 from binascii import unhexlify 88 + 87 89 return unhexlify(s) 90 + 88 91 89 92 class Base64(Encoding): 90 93 alphabet = "A-Za-z0-9+/" ··· 94 97 """Number of characters in data and padding.""" 95 98 i, k = divmod(self.n, 3) 96 99 return 4 * i + (0 if k == 0 else k + 1), (3 - k) % 3 100 + 97 101 @property 98 102 def length(self): 99 103 return sum(self.format) 104 + 100 105 @property 101 106 def regex(self): 102 107 data, padding = self.format 103 108 return f"[{self.alphabet}]{{{data}}}={{{padding}}}" 109 + 104 110 def decode(self, s): 105 111 from base64 import b64decode 112 + 106 113 return b64decode(s, validate = True) 107 114 108 115 109 - _HASHES = (hashlib.new(n) for n in ('SHA-256', 'SHA-512')) 110 - ENCODINGS = { 111 - h.name: Encoding.all(h) 112 - for h in _HASHES 113 - } 116 + _HASHES = (hashlib.new(n) for n in ("SHA-256", "SHA-512")) 117 + ENCODINGS = {h.name: Encoding.all(h) for h in _HASHES} 114 118 115 119 RE = { 116 120 h: "|".join( 117 - (f"({h}-)?" if e.name == 'base64' else '') + 118 - f"(?P<{h}_{e.name}>{e.regex})" 121 + (f"({h}-)?" if e.name == "base64" else "") + f"(?P<{h}_{e.name}>{e.regex})" 119 122 for e in encodings 120 - ) for h, encodings in ENCODINGS.items() 123 + ) 124 + for h, encodings in ENCODINGS.items() 121 125 } 122 126 123 - _DEF_RE = re.compile("|".join( 124 - f"(?P<{h}>{h} = (?P<{h}_quote>['\"])({re})(?P={h}_quote);)" 125 - for h, re in RE.items() 126 - )) 127 + _DEF_RE = re.compile( 128 + "|".join( 129 + f"(?P<{h}>{h} = (?P<{h}_quote>['\"])({re})(?P={h}_quote);)" 130 + for h, re in RE.items() 131 + ) 132 + ) 127 133 128 134 129 135 def defToSRI(s: str) -> str: ··· 153 159 154 160 @contextmanager 155 161 def atomicFileUpdate(target: Path): 156 - '''Atomically replace the contents of a file. 162 + """Atomically replace the contents of a file. 157 163 158 164 Guarantees that no temporary files are left behind, and `target` is either 159 165 left untouched, or overwritten with new content if no exception was raised. ··· 164 170 165 171 Upon exiting the context, the files are closed; if no exception was 166 172 raised, `new` (atomically) replaces the `target`, otherwise it is deleted. 167 - ''' 173 + """ 168 174 # That's mostly copied from noto-emoji.py, should DRY it out 169 - from tempfile import mkstemp 170 - fd, _p = mkstemp( 171 - dir = target.parent, 172 - prefix = target.name, 173 - ) 174 - tmpPath = Path(_p) 175 + from tempfile import NamedTemporaryFile 175 176 176 177 try: 177 178 with target.open() as original: 178 - with tmpPath.open('w') as new: 179 + with NamedTemporaryFile( 180 + dir = target.parent, 181 + prefix = target.stem, 182 + suffix = target.suffix, 183 + delete = False, 184 + mode="w", # otherwise the file would be opened in binary mode by default 185 + ) as new: 186 + tmpPath = Path(new.name) 179 187 yield (original, new) 180 188 181 189 tmpPath.replace(target) ··· 188 196 def fileToSRI(p: Path): 189 197 with atomicFileUpdate(p) as (og, new): 190 198 for i, line in enumerate(og): 191 - with log_context(line=i): 199 + with log_context(line = i): 192 200 new.write(defToSRI(line)) 193 201 194 202 195 - _SKIP_RE = re.compile( 196 - "(generated by)|(do not edit)", 197 - re.IGNORECASE 198 - ) 203 + _SKIP_RE = re.compile("(generated by)|(do not edit)", re.IGNORECASE) 199 204 200 205 if __name__ == "__main__": 201 - from sys import argv, stderr 206 + from sys import argv 207 + 202 208 logger.info("Starting!") 203 209 204 - for arg in argv[1:]: 205 - p = Path(arg) 206 - with log_context(path=str(p)): 210 + def handleFile(p: Path, skipLevel = logging.INFO): 211 + with log_context(file = str(p)): 207 212 try: 208 - if p.name == "yarn.nix" or p.name.find("generated") != -1: 209 - logger.warning("File looks autogenerated, skipping!") 210 - continue 211 - 212 213 with p.open() as f: 213 214 for line in f: 214 215 if line.strip(): 215 216 break 216 217 217 218 if _SKIP_RE.search(line): 218 - logger.warning("File looks autogenerated, skipping!") 219 - continue 219 + logger.log(skipLevel, "File looks autogenerated, skipping!") 220 + return 220 221 221 222 fileToSRI(p) 223 + 222 224 except Exception as exn: 223 225 logger.error( 224 226 "Unhandled exception, skipping file!", ··· 226 228 ) 227 229 else: 228 230 logger.info("Finished processing file") 231 + 232 + for arg in argv[1:]: 233 + p = Path(arg) 234 + with log_context(arg = arg): 235 + if p.is_file(): 236 + handleFile(p, skipLevel = logging.WARNING) 237 + 238 + elif p.is_dir(): 239 + logger.info("Recursing into directory") 240 + for q in p.glob("**/*.nix"): 241 + if q.is_file(): 242 + if q.name == "yarn.nix" or q.name.find("generated") != -1: 243 + logger.info("File looks autogenerated, skipping!") 244 + continue 245 + 246 + handleFile(q)
+1
nixos/modules/services/system/nix-daemon.nix
··· 198 198 IOSchedulingClass = cfg.daemonIOSchedClass; 199 199 IOSchedulingPriority = cfg.daemonIOSchedPriority; 200 200 LimitNOFILE = 1048576; 201 + Delegate = "yes"; 201 202 }; 202 203 203 204 restartTriggers = [ config.environment.etc."nix/nix.conf".source ];
+5 -1
nixos/tests/gitdaemon.nix
··· 20 20 21 21 systemd.tmpfiles.rules = [ 22 22 # type path mode user group age arg 23 - " d /git 0755 root root - -" 23 + " d /git 0755 git git - -" 24 24 ]; 25 25 26 26 services.gitDaemon = { ··· 55 55 "git -C /project push", 56 56 "rm -r /project", 57 57 ) 58 + 59 + # Change user/group to default daemon user/group from module 60 + # to avoid "fatal: detected dubious ownership in repository at '/git/project.git'" 61 + server.succeed("chown git:git -R /git/project.git") 58 62 59 63 with subtest("git daemon starts"): 60 64 server.wait_for_unit("git-daemon.service")
+8 -15
pkgs/applications/misc/etesync-dav/default.nix
··· 1 1 { lib 2 2 , stdenv 3 - , fetchpatch 4 3 , nixosTests 5 4 , python3 6 - , fetchPypi 5 + , fetchFromGitHub 7 6 , radicale3 8 7 }: 9 8 10 - python3.pkgs.buildPythonApplication rec { 9 + python3.pkgs.buildPythonApplication { 11 10 pname = "etesync-dav"; 12 - version = "0.32.1"; 11 + version = "0.32.1-unstable-2024-09-02"; 13 12 14 - src = fetchPypi { 15 - inherit pname version; 16 - hash = "sha256-pOLug5MnVdKaw5wedABewomID9LU0hZPCf4kZKKU1yA="; 13 + src = fetchFromGitHub { 14 + owner = "etesync"; 15 + repo = "etesync-dav"; 16 + rev = "b9b23bf6fba60d42012008ba06023bccd9109c08"; 17 + hash = "sha256-wWhwnOlwE1rFgROTSj90hlSw4k48fIEdk5CJOXoecuQ="; 17 18 }; 18 - 19 - patches = [ 20 - (fetchpatch { 21 - name = "add-missing-comma-in-setup.py.patch"; 22 - url = "https://github.com/etesync/etesync-dav/commit/040cb7b57205e70515019fb356e508a6414da11e.patch"; 23 - hash = "sha256-87IpIQ87rgpinvbRwUlWd0xeegn0zfVSiDFYNUqPerg="; 24 - }) 25 - ]; 26 19 27 20 propagatedBuildInputs = with python3.pkgs; [ 28 21 appdirs
+1 -1
pkgs/applications/science/logic/nusmv/default.nix
··· 29 29 30 30 meta = with lib; { 31 31 description = "New symbolic model checker for the analysis of synchronous finite-state and infinite-state systems"; 32 - homepage = "https://nuxmv.fbk.eu/pmwiki.php"; 32 + homepage = "https://nusmv.fbk.eu/"; 33 33 maintainers = with maintainers; [ mgttlinger ]; 34 34 sourceProvenance = with sourceTypes; [ binaryNativeCode ]; 35 35 platforms = platforms.linux;
pkgs/build-support/flutter/default.nix pkgs/development/compilers/flutter/build-support/build-flutter-application.nix
+1 -1
pkgs/by-name/fa/fastfetch/package.nix
··· 167 167 }; 168 168 169 169 meta = { 170 - description = "Like neofetch, but much faster because written in C"; 170 + description = "An actively maintained, feature-rich and performance oriented, neofetch like system information tool"; 171 171 homepage = "https://github.com/fastfetch-cli/fastfetch"; 172 172 changelog = "https://github.com/fastfetch-cli/fastfetch/releases/tag/${finalAttrs.version}"; 173 173 license = lib.licenses.mit;
+3 -3
pkgs/by-name/gl/glance/package.nix
··· 8 8 9 9 buildGoModule rec { 10 10 pname = "glance"; 11 - version = "0.5.1"; 11 + version = "0.6.0"; 12 12 13 13 src = fetchFromGitHub { 14 14 owner = "glanceapp"; 15 15 repo = "glance"; 16 16 rev = "v${version}"; 17 - hash = "sha256-ebHSnzTRmWw2YBnVIR4h2zdZvbUHbKVzmQYPHDTvZDQ="; 17 + hash = "sha256-0P1f7IDEPSlVHtrygIsD502lIHqLISsSAi9pqB/gFdA="; 18 18 }; 19 19 20 - vendorHash = "sha256-Okme73vLc3Pe9+rNlmG8Bj1msKaVb5PaIBsAAeTer6s="; 20 + vendorHash = "sha256-BLWaYiWcLX+/DW7Zzp6/Mtw5uVxIVtfubB895hrZ+08="; 21 21 22 22 excludedPackages = [ "scripts/build-and-ship" ]; 23 23
+2 -2
pkgs/by-name/ma/marwaita-teal/package.nix
··· 10 10 11 11 stdenv.mkDerivation rec { 12 12 pname = "marwaita-teal"; 13 - version = "20.3.1"; 13 + version = "21"; 14 14 15 15 src = fetchFromGitHub { 16 16 owner = "darkomarko42"; 17 17 repo = pname; 18 18 rev = version; 19 - hash = "sha256-0OKG7JOpPiYbofiHWtLfkqHsZZIeGJPhl/tW1CIO3co="; 19 + hash = "sha256-9WH/mbnLLLAf8B5Fwd7PMRAX2psWVJn7gGO4C5KkLjM="; 20 20 }; 21 21 22 22 buildInputs = [
+1 -1
pkgs/development/compilers/flutter/default.nix
··· 56 56 (mkCustomFlutter args).overrideAttrs (prev: next: { 57 57 passthru = next.passthru // rec { 58 58 inherit wrapFlutter mkCustomFlutter mkFlutter; 59 - buildFlutterApplication = callPackage ../../../build-support/flutter { flutter = wrapFlutter (mkCustomFlutter args); }; 59 + buildFlutterApplication = callPackage ./build-support/build-flutter-application.nix { flutter = wrapFlutter (mkCustomFlutter args); }; 60 60 }; 61 61 }); 62 62
+5 -3
pkgs/development/libraries/openmpi/default.nix
··· 175 175 // lib.optionalAttrs fortranSupport { 176 176 "fort" = [ 177 177 "gfortran" 178 - "${targetPackages.gfortran}/bin/${targetPackages.gfortran.targetPrefix}gfortran" 178 + "${targetPackages.gfortran or gfortran}/bin/${ 179 + targetPackages.gfortran.targetPrefix or gfortran.targetPrefix 180 + }gfortran" 179 181 ]; 180 182 }; 181 183 # The -wrapper-data.txt files that are not symlinks, need to be iterated as ··· 238 240 239 241 postFixup = 240 242 lib.optionalString (lib.elem "man" finalAttrs.outputs) '' 241 - remove-references-to -t "''${!outputMan}" $(readlink -f $out/lib/libopen-pal${stdenv.hostPlatform.extensions.sharedLibrary}) 243 + remove-references-to -t "''${!outputMan}" $(readlink -f $out/lib/libopen-pal${stdenv.hostPlatform.extensions.library}) 242 244 '' 243 245 + lib.optionalString (lib.elem "dev" finalAttrs.outputs) '' 244 246 remove-references-to -t "''${!outputDev}" $out/bin/mpirun 245 - remove-references-to -t "''${!outputDev}" $(readlink -f $out/lib/libopen-pal${stdenv.hostPlatform.extensions.sharedLibrary}) 247 + remove-references-to -t "''${!outputDev}" $(readlink -f $out/lib/libopen-pal${stdenv.hostPlatform.extensions.library}) 246 248 247 249 # The path to the wrapper is hard coded in libopen-pal.so, which we just cleared. 248 250 wrapProgram "''${!outputDev}/bin/opal_wrapper" \
+29 -21
pkgs/development/mobile/xcodeenv/compose-xcodewrapper.nix
··· 1 - { stdenv, lib }: 2 - { version ? "11.1" 3 - , allowHigher ? false 4 - , xcodeBaseDir ? "/Applications/Xcode.app" }: 1 + { lib, 2 + stdenv, 3 + writeShellScriptBin }: 4 + { versions ? [ ] , xcodeBaseDir ? "/Applications/Xcode.app" }: 5 5 6 6 assert stdenv.isDarwin; 7 + let 8 + xcodebuildPath = "${xcodeBaseDir}/Contents/Developer/usr/bin/xcodebuild"; 7 9 10 + xcodebuildWrapper = writeShellScriptBin "xcodebuild" '' 11 + currentVer="$(${xcodebuildPath} -version | awk 'NR==1{print $2}')" 12 + wrapperVers=(${lib.concatStringsSep " " versions}) 13 + 14 + for ver in "''${wrapperVers[@]}"; do 15 + if [[ "$currentVer" == "$ver" ]]; then 16 + # here exec replaces the shell without creating a new process 17 + # https://www.gnu.org/software/bash/manual/bash.html#index-exec 18 + exec "${xcodebuildPath}" "$@" 19 + fi 20 + done 21 + 22 + echo "The installed Xcode version ($currentVer) does not match any of the allowed versions: ${lib.concatStringsSep ", " versions}" 23 + echo "Please update your local Xcode installation to match one of the allowed versions" 24 + exit 1 25 + ''; 26 + in 8 27 stdenv.mkDerivation { 9 - pname = "xcode-wrapper${lib.optionalString allowHigher "-plus"}"; 10 - inherit version; 28 + name = "xcode-wrapper-impure"; 11 29 # Fails in sandbox. Use `--option sandbox relaxed` or `--option sandbox false`. 12 30 __noChroot = true; 13 31 buildCommand = '' 14 32 mkdir -p $out/bin 15 33 cd $out/bin 16 - ln -s /usr/bin/xcode-select 34 + ${if versions == [ ] then '' 35 + ln -s "${xcodebuildPath}" 36 + '' else '' 37 + ln -s "${xcodebuildWrapper}/bin/xcode-select" 38 + ''} 17 39 ln -s /usr/bin/security 18 40 ln -s /usr/bin/codesign 19 41 ln -s /usr/bin/xcrun ··· 22 44 ln -s /usr/bin/lipo 23 45 ln -s /usr/bin/file 24 46 ln -s /usr/bin/rev 25 - ln -s "${xcodeBaseDir}/Contents/Developer/usr/bin/xcodebuild" 26 47 ln -s "${xcodeBaseDir}/Contents/Developer/Applications/Simulator.app/Contents/MacOS/Simulator" 27 48 28 49 cd .. 29 50 ln -s "${xcodeBaseDir}/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs" 30 - 31 - # Check if we have the xcodebuild version that we want 32 - currVer=$($out/bin/xcodebuild -version | head -n1) 33 - ${if allowHigher then '' 34 - if [ -z "$(printf '%s\n' "${version}" "$currVer" | sort -V | head -n1)""" != "${version}" ] 35 - '' else '' 36 - if [ -z "$(echo $currVer | grep -x 'Xcode ${version}')" ] 37 - ''} 38 - then 39 - echo "We require xcodebuild version${if allowHigher then " or higher" else ""}: ${version}" 40 - echo "Instead what was found: $currVer" 41 - exit 1 42 - fi 43 51 ''; 44 52 }
+2 -2
pkgs/development/ocaml-modules/eliom/default.nix
··· 17 17 18 18 buildDunePackage rec { 19 19 pname = "eliom"; 20 - version = "10.4.1"; 20 + version = "11.0.0"; 21 21 22 22 src = fetchFromGitHub { 23 23 owner = "ocsigen"; 24 24 repo = "eliom"; 25 25 rev = version; 26 - hash = "sha256-j4t6GEd8hYyM87b9XvgcnaV9XMkouz6+v0SYW22/bqg="; 26 + hash = "sha256-RgIK3xkKdX+zOurhML4370rsO4blJrWoEla09Nfe9Mw="; 27 27 }; 28 28 29 29 nativeBuildInputs = [
+4 -4
pkgs/development/ocaml-modules/ocsigen-server/default.nix
··· 1 1 { lib, buildDunePackage, fetchFromGitHub, which, ocaml, lwt_react, ssl, lwt_ssl, findlib 2 2 , bigstringaf, lwt, cstruct, mirage-crypto, zarith, mirage-crypto-ec, ptime, mirage-crypto-rng, mtime, ca-certs 3 - , cohttp, cohttp-lwt-unix, hmap 3 + , cohttp, cohttp-lwt-unix 4 4 , lwt_log, re, cryptokit, xml-light, ipaddr 5 5 , camlzip 6 6 , makeWrapper ··· 17 17 ; in 18 18 19 19 buildDunePackage rec { 20 - version = "5.1.2"; 20 + version = "6.0.0"; 21 21 pname = "ocsigenserver"; 22 22 23 23 minimalOCamlVersion = "4.08"; ··· 26 26 owner = "ocsigen"; 27 27 repo = "ocsigenserver"; 28 28 rev = "refs/tags/${version}"; 29 - hash = "sha256-piWHA4RMO370TETC9FtISyBvS1Uhk5CAGAtZleJTpjU="; 29 + hash = "sha256-T3bgPZpDO6plgebLJDBtBuR2eR/bN3o24UAUv1VwgtI="; 30 30 }; 31 31 32 32 nativeBuildInputs = [ makeWrapper which ]; 33 33 buildInputs = [ lwt_react camlzip findlib ]; 34 34 35 - propagatedBuildInputs = [ cohttp cohttp-lwt-unix cryptokit hmap ipaddr lwt_log lwt_ssl 35 + propagatedBuildInputs = [ cohttp cohttp-lwt-unix cryptokit ipaddr lwt_log lwt_ssl 36 36 re xml-light 37 37 ]; 38 38
+12 -8
pkgs/development/python-modules/pynetbox/default.nix
··· 2 2 lib, 3 3 buildPythonPackage, 4 4 fetchFromGitHub, 5 + setuptools, 5 6 setuptools-scm, 6 7 packaging, 7 8 requests, 8 - six, 9 9 pytestCheckHook, 10 10 pyyaml, 11 11 }: 12 12 13 13 buildPythonPackage rec { 14 14 pname = "pynetbox"; 15 - version = "7.3.4"; 16 - format = "setuptools"; 15 + version = "7.4.0"; 16 + pyproject = true; 17 17 18 18 src = fetchFromGitHub { 19 19 owner = "netbox-community"; 20 - repo = pname; 20 + repo = "pynetbox"; 21 21 rev = "refs/tags/v${version}"; 22 - hash = "sha256-Ie309I19BhzASrmc3Ws1zV/BySc49AhFPNrNKQhTD0U="; 22 + hash = "sha256-JOUgQvOtvXRDM79Sp472OHPh1YEoA82T3R9aZFes8SI="; 23 23 }; 24 24 25 - nativeBuildInputs = [ setuptools-scm ]; 25 + build-system = [ 26 + setuptools 27 + setuptools-scm 28 + ]; 26 29 27 - propagatedBuildInputs = [ 30 + dependencies = [ 28 31 packaging 29 32 requests 30 - six 31 33 ]; 34 + 35 + pythonImportsCheck = [ "pynetbox" ]; 32 36 33 37 nativeCheckInputs = [ 34 38 pytestCheckHook
+9 -5
pkgs/development/python-modules/pyreadstat/default.nix
··· 9 9 python, 10 10 pythonOlder, 11 11 readstat, 12 + setuptools, 12 13 zlib, 13 14 }: 14 15 15 16 buildPythonPackage rec { 16 17 pname = "pyreadstat"; 17 - version = "1.2.6"; 18 - format = "setuptools"; 18 + version = "1.2.7"; 19 + pyproject = true; 19 20 20 21 disabled = pythonOlder "3.7"; 21 22 ··· 23 24 owner = "Roche"; 24 25 repo = "pyreadstat"; 25 26 rev = "refs/tags/v${version}"; 26 - hash = "sha256-VcPpGRrE/5udNijodO88Lw69JPOm6ZN7BZb4xD34srQ="; 27 + hash = "sha256-XuLFLpZbaCj/MHq0+l6GoNqR5nAldAlEJhoO5ioWYTA="; 27 28 }; 28 29 29 - nativeBuildInputs = [ cython ]; 30 + build-system = [ 31 + cython 32 + setuptools 33 + ]; 30 34 31 35 buildInputs = [ zlib ] ++ lib.optionals stdenv.isDarwin [ libiconv ]; 32 36 33 - propagatedBuildInputs = [ 37 + dependencies = [ 34 38 readstat 35 39 pandas 36 40 ];
+5 -5
pkgs/development/web/bun/default.nix
··· 12 12 }: 13 13 14 14 stdenvNoCC.mkDerivation rec { 15 - version = "1.1.20"; 15 + version = "1.1.27"; 16 16 pname = "bun"; 17 17 18 18 src = passthru.sources.${stdenvNoCC.hostPlatform.system} or (throw "Unsupported system: ${stdenvNoCC.hostPlatform.system}"); ··· 51 51 sources = { 52 52 "aarch64-darwin" = fetchurl { 53 53 url = "https://github.com/oven-sh/bun/releases/download/bun-v${version}/bun-darwin-aarch64.zip"; 54 - hash = "sha256-ErutjiXBjC9GDvb0F39AgbbsSo6zhRzpDEvDor/xRbI="; 54 + hash = "sha256-I/axYOXXLU5V+82jfNwsmhjwGOMkK+e5Sx7pKqQlvBE="; 55 55 }; 56 56 "aarch64-linux" = fetchurl { 57 57 url = "https://github.com/oven-sh/bun/releases/download/bun-v${version}/bun-linux-aarch64.zip"; 58 - hash = "sha256-vqL/H5t0elgT9fSk0Op7Td69eP9WPY2XVo1a8sraTwM="; 58 + hash = "sha256-LvIjCWx7fd0EOLEY9qy26SS5/5ztAvEPKdv8mUG+TCA="; 59 59 }; 60 60 "x86_64-darwin" = fetchurl { 61 61 url = "https://github.com/oven-sh/bun/releases/download/bun-v${version}/bun-darwin-x64-baseline.zip"; 62 - hash = "sha256-5PLk8q3di5TW8HUfo7P3xrPWLhleAiSv9jp2XeL47Kk="; 62 + hash = "sha256-/YgDnB8m0ZhkKpqPvFL8Hd6IBitySD+jMOJCn/7xxG8="; 63 63 }; 64 64 "x86_64-linux" = fetchurl { 65 65 url = "https://github.com/oven-sh/bun/releases/download/bun-v${version}/bun-linux-x64.zip"; 66 - hash = "sha256-bLcK0DSaLOzJSrIRPNHQeld5qud8ccqxzyDIgawMB3U="; 66 + hash = "sha256-Ir0EQH+bnHPwOTakrO/ZQ6pyeOWvhu5bK5j+YLN8Myc="; 67 67 }; 68 68 }; 69 69 updateScript = writeShellScript "update-bun" ''
+5 -5
pkgs/servers/monitoring/telegraf/default.nix pkgs/by-name/te/telegraf/package.nix
··· 1 1 { lib 2 - , buildGoModule 2 + , buildGo123Module 3 3 , fetchFromGitHub 4 4 , nixosTests 5 5 , stdenv ··· 7 7 , telegraf 8 8 }: 9 9 10 - buildGoModule rec { 10 + buildGo123Module rec { 11 11 pname = "telegraf"; 12 - version = "1.31.3"; 12 + version = "1.32.0"; 13 13 14 14 subPackages = [ "cmd/telegraf" ]; 15 15 ··· 17 17 owner = "influxdata"; 18 18 repo = "telegraf"; 19 19 rev = "v${version}"; 20 - hash = "sha256-J5jIyrxG2cLEu909/fcPQCo+xUlW6VAoge5atCrW4HY="; 20 + hash = "sha256-ITTlHsoWPXHbGtmNOE0x1sCbeADWi4liOEqXXKQUeGU="; 21 21 }; 22 22 23 - vendorHash = "sha256-lxLFUKOFg7HAjgZIVACW6VlWLgCeZX38SNRsjxc9D7g="; 23 + vendorHash = "sha256-wKl6Rutt2QrF4nLxB5Ic6QlekrPUfHwdFZyTTdbK0HU="; 24 24 proxyVendor = true; 25 25 26 26 ldflags = [
+10 -4
pkgs/tools/text/zoekt/default.nix pkgs/by-name/zo/zoekt/package.nix
··· 2 2 , buildGoModule 3 3 , fetchFromGitHub 4 4 , git 5 + , nix-update-script 5 6 }: 7 + 6 8 buildGoModule { 7 9 pname = "zoekt"; 8 - version = "unstable-2022-11-09"; 10 + version = "0-unstable-2024-09-05"; 9 11 10 12 src = fetchFromGitHub { 11 13 owner = "sourcegraph"; 12 14 repo = "zoekt"; 13 - rev = "c4b18d3b44da94b3e7c9c94467d68c029666bb86"; 14 - hash = "sha256-QtwOiBxBeFkhRfH3R2fP72b05Hc4+zt9njqCNVcprZ4="; 15 + rev = "35dda3e212b7d7fb0df43dcbd88eb7a7b49ad9d8"; 16 + hash = "sha256-YdInCAq7h7iC1sfMekLgxqu3plUHr5Ku6FxyPKluQzw="; 15 17 }; 16 18 17 - vendorHash = "sha256-DiAqFJ8E5V0/eHztm92WVrf1XGPXmmOaVXaWHfQMn2k="; 19 + vendorHash = "sha256-GPeMRL5zWVjJVYpFPnB211Gfm/IaqisP1s6RNaLvN6M="; 18 20 19 21 nativeCheckInputs = [ 20 22 git ··· 24 26 export HOME=`mktemp -d` 25 27 git config --global --replace-all protocol.file.allow always 26 28 ''; 29 + 30 + passthru.updateScript = nix-update-script { 31 + extraArgs = [ "--version" "branch" ]; 32 + }; 27 33 28 34 meta = { 29 35 description = "Fast trigram based code search";
-6
pkgs/top-level/all-packages.nix
··· 7436 7436 7437 7437 zeekscript = callPackage ../tools/security/zeekscript { }; 7438 7438 7439 - zoekt = callPackage ../tools/text/zoekt { 7440 - buildGoModule = buildGo121Module; 7441 - }; 7442 - 7443 7439 zonemaster-cli = perlPackages.ZonemasterCLI; 7444 7440 7445 7441 zotero-translation-server = callPackage ../tools/misc/zotero-translation-server { }; ··· 13028 13024 teehee = callPackage ../applications/editors/teehee { }; 13029 13025 13030 13026 teip = callPackage ../tools/text/teip { }; 13031 - 13032 - telegraf = callPackage ../servers/monitoring/telegraf { }; 13033 13027 13034 13028 inherit (callPackages ../servers/teleport { 13035 13029 inherit (darwin.apple_sdk.frameworks) CoreFoundation Security AppKit;