lol

Merge master into staging-next

authored by

nixpkgs-ci[bot] and committed by
GitHub
028544cc 230edab0

+404 -208
+3 -2
nixos/modules/programs/clash-verge.nix
··· 68 68 ProtectControlGroups = true; 69 69 LockPersonality = true; 70 70 RestrictRealtime = true; 71 + RuntimeDirectory = "clash-verge-rev"; 71 72 ProtectClock = true; 72 73 MemoryDenyWriteExecute = true; 73 74 RestrictSUIDSGID = true; 74 - RestrictNamespaces = [ "~user cgroup ipc mnt uts" ]; 75 + RestrictNamespaces = [ "~user cgroup mnt uts" ]; 75 76 RestrictAddressFamilies = [ 76 - "AF_INET AF_INET6 AF_NETLINK AF_PACKET AF_RAW" 77 + "AF_INET AF_INET6 AF_NETLINK AF_PACKET AF_UNIX" 77 78 ]; 78 79 CapabilityBoundingSet = [ 79 80 "CAP_NET_ADMIN CAP_NET_RAW CAP_SYS_ADMIN CAP_DAC_OVERRIDE CAP_SETUID CAP_SETGID CAP_CHOWN CAP_MKNOD"
+4 -1
pkgs/build-support/rust/build-rust-crate/configure-crate.nix
··· 246 246 IFS="$_OLDIFS" 247 247 248 248 CRATENAME=$(echo ${crateName} | sed -e "s/\(.*\)-sys$/\U\1/" -e "s/-/_/g") 249 - CRATEVERSION=$(echo ${crateVersion} | sed -e "s/[\.\+]/_/g") 249 + # SemVer allows version numbers to contain alphanumeric characters and `.+-` 250 + # which aren't legal bash identifiers. 251 + # https://semver.org/#backusnaur-form-grammar-for-valid-semver-versions 252 + CRATEVERSION=$(echo ${crateVersion} | sed -e "s/[\.\+-]/_/g") 250 253 grep -P "^cargo:(?!:?(rustc-|warning=|rerun-if-changed=|rerun-if-env-changed))" target/build/${crateName}.opt \ 251 254 | awk -F= "/^cargo::metadata=/ { gsub(/-/, \"_\", \$2); print \"export \" toupper(\"DEP_$(echo $CRATENAME)_\" \$2) \"=\" \"\\\"\"\$3\"\\\"\"; next } 252 255 /^cargo:/ { sub(/^cargo::?/, \"\", \$1); gsub(/-/, \"_\", \$1); print \"export \" toupper(\"DEP_$(echo $CRATENAME)_\" \$1) \"=\" \"\\\"\"\$2\"\\\"\"; print \"export \" toupper(\"DEP_$(echo $CRATENAME)_$(echo $CRATEVERSION)_\" \$1) \"=\" \"\\\"\"\$2\"\\\"\"; next }" > target/env
+32
pkgs/by-name/cl/clash-verge-rev/0003-IPC-move-path-to-run-clash-verge-rev-service.sock.patch
··· 1 + From 75296a3059419b91f638ee45215e56781bfda256 Mon Sep 17 00:00:00 2001 2 + From: wxt <3264117476@qq.com> 3 + Date: Sat, 28 Jun 2025 14:30:23 +0800 4 + Subject: [PATCH] IPC: move path to /run/clash-verge-rev/service.sock 5 + 6 + --- 7 + src/service/ipc.rs | 4 ++-- 8 + 1 file changed, 2 insertions(+), 2 deletions(-) 9 + 10 + diff --git a/src/service/ipc.rs b/src/service/ipc.rs 11 + index df39787..f441cd2 100644 12 + --- a/src/service/ipc.rs 13 + +++ b/src/service/ipc.rs 14 + @@ -20,7 +20,7 @@ use std::ffi::OsStr; 15 + const IPC_SOCKET_NAME: &str = if cfg!(windows) { 16 + r"\\.\pipe\clash-verge-service" 17 + } else { 18 + - "/tmp/clash-verge-service.sock" 19 + + "/run/clash-verge-rev/service.sock" 20 + }; 21 + 22 + /// 消息时间有效期(秒) 23 + @@ -660,4 +660,4 @@ fn handle_unix_connection_sync(mut stream: std::os::unix::net::UnixStream) -> Re 24 + .context("写入响应内容失败")?; 25 + 26 + Ok(()) 27 + -} 28 + \ No newline at end of file 29 + +} 30 + -- 31 + 2.49.0 32 +
+5 -2
pkgs/by-name/cl/clash-verge-rev/service.nix
··· 16 16 sourceRoot = "${src-service.name}"; 17 17 18 18 patches = [ 19 - # FIXME: remove until upstream fix these 20 - # https://github.com/clash-verge-rev/clash-verge-rev/issues/3428 19 + # I want to keep these patches because it's not harmful. 21 20 22 21 # Patch: Restrict bin_path in spawn_process to be under the clash-verge-service directory. 23 22 # This prevents arbitrary code execution by ensuring only trusted binaries from the Nix store are allowed to run. ··· 26 25 # Patch: Add validation to prevent overwriting existing files. 27 26 # This mitigates arbitrary file overwrite risks by ensuring a file does not already exist before writing. 28 27 ./0002-core-prevent-overwriting-existing-file-by-validating.patch 28 + 29 + # Patch: move IPC directory from /tmp to /run/clash-verge-rev/service.lock 30 + # This allows we enable ProtectSystem="strict" and PrivateTmp 31 + ./0003-IPC-move-path-to-run-clash-verge-rev-service.sock.patch 29 32 ]; 30 33 31 34 nativeBuildInputs = [
+4
pkgs/by-name/cl/clash-verge-rev/unwrapped.nix
··· 49 49 # If you need a newer version, you can override the mihomo input of the wrapped package 50 50 sed -i -e '/Mihomo Alpha/d' ./src/components/setting/mods/clash-core-viewer.tsx 51 51 52 + # See service.nix for reasons 53 + substituteInPlace src-tauri/src/core/service_ipc.rs \ 54 + --replace-fail "/tmp/clash-verge-service.sock" "/run/clash-verge-rev/service.sock" 55 + 52 56 substituteInPlace $cargoDepsCopy/libappindicator-sys-*/src/lib.rs \ 53 57 --replace-fail "libayatana-appindicator3.so.1" "${libayatana-appindicator}/lib/libayatana-appindicator3.so.1" 54 58
+2 -2
pkgs/by-name/co/copilot-language-server/package.nix
··· 45 45 in 46 46 stdenvNoCC.mkDerivation (finalAttrs: { 47 47 pname = "copilot-language-server"; 48 - version = "1.337.0"; 48 + version = "1.339.0"; 49 49 50 50 src = fetchzip { 51 51 url = "https://github.com/github/copilot-language-server-release/releases/download/${finalAttrs.version}/copilot-language-server-native-${finalAttrs.version}.zip"; 52 - hash = "sha256-F8D45LrL4vzmAH6J4hVWvEIkwzSRaCeMluPFimJPiXk="; 52 + hash = "sha256-UgBe78MZla2FLfP10VfM4meMaiZWAyj2PUBiZ7M+OXU="; 53 53 stripRoot = false; 54 54 }; 55 55
+68
pkgs/by-name/gi/git-statuses/package.nix
··· 1 + { 2 + lib, 3 + fetchFromGitHub, 4 + fetchpatch, 5 + rustPlatform, 6 + pkg-config, 7 + openssl, 8 + versionCheckHook, 9 + nix-update-script, 10 + }: 11 + 12 + rustPlatform.buildRustPackage (finalAttrs: { 13 + pname = "git-statuses"; 14 + version = "0.3.1"; 15 + 16 + src = fetchFromGitHub { 17 + owner = "bircni"; 18 + repo = "git-statuses"; 19 + tag = finalAttrs.version; 20 + hash = "sha256-pnqg32FH26NTtt7N5db/JGjjR3MbPOFPtMA2iZNFiSI="; 21 + }; 22 + 23 + patches = [ 24 + # This commit requires Rust 1.88, which is not yet in Nixpkgs. 25 + (fetchpatch { 26 + url = "https://github.com/bircni/git-statuses/commit/8bc32d1bd47d2a9e48f1408a9137213bae925912.patch"; 27 + hash = "sha256-JNWsv0DjwrSbMu/j2+XMoZKgvB1OgUA3b2BNuZTM/cA="; 28 + revert = true; 29 + }) 30 + ]; 31 + 32 + # fix tests, ref. https://github.com/bircni/git-statuses/pull/8 33 + postPatch = '' 34 + substituteInPlace src/tests/gitinfo_test.rs --replace-fail \ 35 + 'let repo = git2::Repository::init(tmp_dir.path()).unwrap();' \ 36 + 'let repo = git2::Repository::init(tmp_dir.path()).unwrap(); 37 + let mut config = repo.config().unwrap(); 38 + config.set_str("user.name", "Test User").unwrap(); 39 + config.set_str("user.email", "test@example.com").unwrap();' 40 + ''; 41 + 42 + cargoHash = "sha256-thLyIxuAACtexqCddKWuUE8Vl0CeUEBP7XxDPYT23lg="; 43 + 44 + # Needed to get openssl-sys to use pkg-config. 45 + env.OPENSSL_NO_VENDOR = 1; 46 + 47 + nativeBuildInputs = [ 48 + pkg-config 49 + ]; 50 + buildInputs = [ 51 + openssl 52 + ]; 53 + nativeInstallCheckInputs = [ 54 + versionCheckHook 55 + ]; 56 + doInstallCheck = true; 57 + 58 + passthru.updateScript = nix-update-script { }; 59 + 60 + meta = { 61 + description = "Command-line tool to display the status of multiple Git repositories in a clear, tabular format"; 62 + homepage = "https://github.com/bircni/git-statuses"; 63 + changelog = "https://github.com/bircni/git-statuses/blob/${finalAttrs.src.tag}/CHANGELOG.md"; 64 + license = lib.licenses.mit; 65 + maintainers = with lib.maintainers; [ nim65s ]; 66 + mainProgram = "git-statuses"; 67 + }; 68 + })
+2 -2
pkgs/by-name/go/go-ethereum/package.nix
··· 15 15 in 16 16 buildGoModule rec { 17 17 pname = "go-ethereum"; 18 - version = "1.16.0"; 18 + version = "1.16.1"; 19 19 20 20 src = fetchFromGitHub { 21 21 owner = "ethereum"; 22 22 repo = "go-ethereum"; 23 23 rev = "v${version}"; 24 - hash = "sha256-eu6VeG/vMdCOk15HWnKbtKRZbbYhH3y6SJrwEGxJs8w="; 24 + hash = "sha256-lsjs/bZhCwfp8OfTES1GDXayjDcg0R8+L0Z3pZ9/Mvs="; 25 25 }; 26 26 27 27 proxyVendor = true;
+2 -2
pkgs/by-name/ic/icloudpd/package.nix
··· 9 9 10 10 python3Packages.buildPythonApplication rec { 11 11 pname = "icloudpd"; 12 - version = "1.28.1"; 12 + version = "1.28.2"; 13 13 pyproject = true; 14 14 15 15 src = fetchFromGitHub { 16 16 owner = "icloud-photos-downloader"; 17 17 repo = "icloud_photos_downloader"; 18 18 tag = "v${version}"; 19 - hash = "sha256-e3bv5IVVXKiAnxZAbx8JniGJaPJuT+FYAH1PwhU8q60="; 19 + hash = "sha256-5zuV32AOorkRqt3wiUt2ndo+4j1FQ9JBSc8wY+v01OA="; 20 20 }; 21 21 22 22 pythonRelaxDeps = true;
+1
pkgs/by-name/ja/jaq/package.nix
··· 33 33 homepage = "https://github.com/01mf02/jaq"; 34 34 changelog = "https://github.com/01mf02/jaq/releases/tag/v${finalAttrs.version}"; 35 35 license = lib.licenses.mit; 36 + teams = [ lib.teams.ngi ]; 36 37 maintainers = with lib.maintainers; [ 37 38 figsoda 38 39 siraben
+5 -5
pkgs/by-name/lu/lux-cli/package.nix
··· 14 14 rustPlatform, 15 15 versionCheckHook, 16 16 }: 17 - rustPlatform.buildRustPackage rec { 17 + rustPlatform.buildRustPackage (finalAttrs: { 18 18 pname = "lux-cli"; 19 19 20 20 version = "0.7.4"; ··· 22 22 src = fetchFromGitHub { 23 23 owner = "nvim-neorocks"; 24 24 repo = "lux"; 25 - tag = "v0.7.4"; 25 + tag = "v${finalAttrs.version}"; 26 26 hash = "sha256-m8GSs2gBw+WzDOBciOQHi7n4923XCd7z1TbfTnfJzUA="; 27 27 }; 28 28 ··· 33 33 nativeInstallCheckInputs = [ 34 34 versionCheckHook 35 35 ]; 36 - versionCheckProgram = "${placeholder "out"}/bin/${meta.mainProgram}"; 36 + versionCheckProgram = "${placeholder "out"}/bin/${finalAttrs.meta.mainProgram}"; 37 37 versionCheckProgramArg = "--version"; 38 38 doInstallCheck = true; 39 39 ··· 78 78 with first-class support for Nix and Neovim. 79 79 ''; 80 80 homepage = "https://nvim-neorocks.github.io/"; 81 - changelog = "https://github.com/nvim-neorocks/lux/blob/${src.tag}/CHANGELOG.md"; 81 + changelog = "https://github.com/nvim-neorocks/lux/blob/${finalAttrs.src.tag}/CHANGELOG.md"; 82 82 license = lib.licenses.lgpl3Plus; 83 83 maintainers = with lib.maintainers; [ 84 84 mrcjkb ··· 86 86 platforms = lib.platforms.all; 87 87 mainProgram = "lx"; 88 88 }; 89 - } 89 + })
+6 -57
pkgs/by-name/ni/nixos-rebuild-ng/src/nixos_rebuild/models.py
··· 61 61 return cls(Path(file or "default.nix"), attr) 62 62 63 63 64 - def discover_git(location: Path) -> Path | None: 65 - """ 66 - Discover the current git repository in the given location. 67 - """ 68 - current = location.resolve() 69 - previous = None 70 - 71 - while current.is_dir() and current != previous: 72 - dotgit = current / ".git" 73 - if dotgit.is_dir(): 74 - return current 75 - elif dotgit.is_file(): # this is a worktree 76 - with dotgit.open() as f: 77 - dotgit_content = f.read().strip() 78 - if dotgit_content.startswith("gitdir: "): 79 - return Path(dotgit_content.split("gitdir: ")[1]) 80 - previous = current 81 - current = current.parent 82 - 83 - return None 84 - 85 - 86 - def discover_closest_flake(location: Path) -> Path | None: 87 - """ 88 - Discover the closest flake.nix file starting from the given location upwards. 89 - """ 90 - current = location.resolve() 91 - previous = None 92 - 93 - while current.is_dir() and current != previous: 94 - flake_file = current / "flake.nix" 95 - if flake_file.is_file(): 96 - return current 97 - previous = current 98 - current = current.parent 99 - 100 - return None 101 - 102 - 103 - def get_hostname(target_host: Remote | None) -> str | None: 64 + def _get_hostname(target_host: Remote | None) -> str | None: 104 65 if target_host: 105 66 try: 106 67 return run_wrapper( ··· 133 94 assert m is not None, f"got no matches for {flake_str}" 134 95 attr = m.group("attr") 135 96 nixos_attr = ( 136 - f'nixosConfigurations."{attr or get_hostname(target_host) or "default"}"' 97 + f'nixosConfigurations."{attr or _get_hostname(target_host) or "default"}"' 137 98 ) 138 - path_str = m.group("path") 139 - if ":" in path_str: 140 - return cls(path_str, nixos_attr) 141 - else: 142 - path = Path(path_str) 143 - git_repo = discover_git(path) 144 - if git_repo is not None: 145 - url = f"git+file://{git_repo}" 146 - flake_path = discover_closest_flake(path) 147 - if ( 148 - flake_path is not None 149 - and flake_path != git_repo 150 - and flake_path.is_relative_to(git_repo) 151 - ): 152 - url += f"?dir={flake_path.relative_to(git_repo)}" 153 - return cls(url, nixos_attr) 99 + path = m.group("path") 100 + if ":" in path: 154 101 return cls(path, nixos_attr) 102 + else: 103 + return cls(Path(path), nixos_attr) 155 104 156 105 @classmethod 157 106 def from_arg(cls, flake_arg: Any, target_host: Remote | None) -> Self | None: # noqa: ANN401
+9 -36
pkgs/by-name/ni/nixos-rebuild-ng/src/tests/test_models.py
··· 30 30 ) 31 31 32 32 33 - @patch("platform.node", autospec=True, return_value="hostname") 33 + @patch("platform.node", autospec=True, return_value=None) 34 34 def test_flake_parse(mock_node: Mock, tmpdir: Path, monkeypatch: MonkeyPatch) -> None: 35 35 assert m.Flake.parse("/path/to/flake#attr") == m.Flake( 36 36 Path("/path/to/flake"), 'nixosConfigurations."attr"' 37 37 ) 38 38 assert m.Flake.parse("/path/ to /flake") == m.Flake( 39 - Path("/path/ to /flake"), 'nixosConfigurations."hostname"' 39 + Path("/path/ to /flake"), 'nixosConfigurations."default"' 40 40 ) 41 41 with patch( 42 42 get_qualified_name(m.run_wrapper, m), ··· 47 47 assert m.Flake.parse("/path/to/flake", target_host) == m.Flake( 48 48 Path("/path/to/flake"), 'nixosConfigurations."remote"' 49 49 ) 50 - # change directory to tmpdir 51 - with monkeypatch.context() as patch_context: 52 - patch_context.chdir(tmpdir) 53 - assert m.Flake.parse(".#attr") == m.Flake( 54 - Path("."), 'nixosConfigurations."attr"' 55 - ) 56 - assert m.Flake.parse("#attr") == m.Flake( 57 - Path("."), 'nixosConfigurations."attr"' 58 - ) 59 - assert m.Flake.parse(".") == m.Flake( 60 - Path("."), 'nixosConfigurations."hostname"' 61 - ) 50 + assert m.Flake.parse(".#attr") == m.Flake(Path("."), 'nixosConfigurations."attr"') 51 + assert m.Flake.parse("#attr") == m.Flake(Path("."), 'nixosConfigurations."attr"') 52 + assert m.Flake.parse(".") == m.Flake(Path("."), 'nixosConfigurations."default"') 62 53 assert m.Flake.parse("path:/to/flake#attr") == m.Flake( 63 54 "path:/to/flake", 'nixosConfigurations."attr"' 64 55 ) 65 56 66 - # from here on we should return "default" 67 - mock_node.return_value = None 57 + # from here on we should return "hostname" 58 + mock_node.return_value = "hostname" 68 59 69 60 assert m.Flake.parse("github:user/repo/branch") == m.Flake( 70 - "github:user/repo/branch", 'nixosConfigurations."default"' 71 - ) 72 - git_root = tmpdir / "git_root" 73 - git_root.mkdir() 74 - (git_root / ".git").mkdir() 75 - assert m.Flake.parse(str(git_root)) == m.Flake( 76 - f"git+file://{git_root}", 'nixosConfigurations."default"' 77 - ) 78 - 79 - work_tree = tmpdir / "work_tree" 80 - work_tree.mkdir() 81 - (work_tree / ".git").write_text("gitdir: /path/to/git", "utf-8") 82 - assert m.Flake.parse(str(work_tree)) == m.Flake( 83 - "git+file:///path/to/git", 'nixosConfigurations."default"' 61 + "github:user/repo/branch", 'nixosConfigurations."hostname"' 84 62 ) 85 63 86 64 ··· 134 112 autospec=True, 135 113 return_value=False, 136 114 ), 137 - patch( 138 - get_qualified_name(m.discover_git), 139 - autospec=True, 140 - return_value="/etc/nixos", 141 - ), 142 115 ): 143 116 assert m.Flake.from_arg(None, None) == m.Flake( 144 - "git+file:///etc/nixos", 'nixosConfigurations."hostname"' 117 + Path("/etc/nixos"), 'nixosConfigurations."hostname"' 145 118 ) 146 119 147 120 with (
+3 -3
pkgs/by-name/ni/nixos-rebuild-ng/src/tests/test_nix.py
··· 307 307 308 308 309 309 @patch(get_qualified_name(n.run_wrapper, n), autospec=True) 310 - def test_editd_flake(mock_run: Mock, monkeypatch: MonkeyPatch, tmpdir: Path) -> None: 311 - flake = m.Flake.parse(f"{tmpdir}#attr") 310 + def test_edit_flake(mock_run: Mock) -> None: 311 + flake = m.Flake.parse(".#attr") 312 312 n.edit_flake(flake, {"commit_lock_file": True}) 313 313 mock_run.assert_called_with( 314 314 [ ··· 318 318 "edit", 319 319 "--commit-lock-file", 320 320 "--", 321 - f'{tmpdir}#nixosConfigurations."attr"', 321 + '.#nixosConfigurations."attr"', 322 322 ], 323 323 check=False, 324 324 )
+3 -3
pkgs/by-name/oc/oci2git/package.nix
··· 10 10 11 11 rustPlatform.buildRustPackage (finalAttrs: { 12 12 pname = "oci2git"; 13 - version = "0.1.5"; 13 + version = "0.2.0"; 14 14 15 15 src = fetchFromGitHub { 16 16 owner = "Virviil"; 17 17 repo = "oci2git"; 18 18 tag = "v${finalAttrs.version}"; 19 - hash = "sha256-axUNZWV9hKdnHfPqgIx1O2onHvBb4n5Wdv2laNV83Ik="; 19 + hash = "sha256-+y2sWYoEuGGOYBk3E1b+2G9eF0mGSABHi92cCm+v590="; 20 20 }; 21 21 22 - cargoHash = "sha256-1U/kvuXAPYFU1YekY6xKeEsTJ03ol1uN2DDp7j/Sync="; 22 + cargoHash = "sha256-khl56908go19CV2XlwzH5xE4BNzQW8U7D6ce9OZgovA="; 23 23 24 24 nativeBuildInputs = [ 25 25 pkg-config
+25 -36
pkgs/by-name/ss/ssh-mitm/package.nix
··· 6 6 python3, 7 7 }: 8 8 9 - let 10 - py = python3.override { 11 - self = py; 12 - packageOverrides = self: super: { 13 - paramiko = super.paramiko.overridePythonAttrs (oldAttrs: rec { 14 - version = "3.4.1"; 15 - src = oldAttrs.src.override { 16 - inherit version; 17 - hash = "sha256-ixUwKHCvf2ZS8uA4l1wdKXPwYEbLXX1lNVZos+y+zgw="; 18 - }; 19 - dependencies = oldAttrs.dependencies ++ [ python3.pkgs.icecream ]; 20 - }); 21 - }; 22 - }; 23 - in 24 - with py.pkgs; 25 - 26 - buildPythonApplication rec { 9 + python3.pkgs.buildPythonApplication rec { 27 10 pname = "ssh-mitm"; 28 11 version = "5.0.1"; 29 12 pyproject = true; ··· 35 18 hash = "sha256-FmxVhYkPRZwS+zFwuId9nRGN832LRkgCNgDYb8Pg01U="; 36 19 }; 37 20 38 - build-system = [ 21 + pythonRelaxDeps = [ "paramiko" ]; 22 + 23 + build-system = with python3.pkgs; [ 39 24 hatchling 40 25 hatch-requirements-txt 41 26 ]; 42 27 43 - dependencies = [ 44 - appimage 45 - argcomplete 46 - colored 47 - packaging 48 - paramiko 49 - pytz 50 - pyyaml 51 - python-json-logger 52 - rich 53 - tkinter 54 - setuptools 55 - sshpubkeys 56 - wrapt 57 - ] ++ lib.optionals stdenv.hostPlatform.isDarwin [ setuptools ]; 28 + nativeBuildInputs = [ installShellFiles ]; 29 + 30 + dependencies = 31 + with python3.pkgs; 32 + [ 33 + appimage 34 + argcomplete 35 + colored 36 + packaging 37 + paramiko 38 + pytz 39 + pyyaml 40 + python-json-logger 41 + rich 42 + tkinter 43 + setuptools 44 + sshpubkeys 45 + wrapt 46 + ] 47 + ++ lib.optionals stdenv.hostPlatform.isDarwin [ setuptools ]; 58 48 # fix for darwin users 59 49 60 - nativeBuildInputs = [ installShellFiles ]; 61 - 62 50 # Module has no tests 63 51 doCheck = false; 52 + 64 53 # Install man page 65 54 postInstall = '' 66 55 installManPage man1/*
+3 -3
pkgs/by-name/sw/sway-overfocus/package.nix
··· 7 7 8 8 rustPlatform.buildRustPackage rec { 9 9 pname = "sway-overfocus"; 10 - version = "0.2.4"; 10 + version = "0.2.5"; 11 11 12 12 src = fetchFromGitHub { 13 13 owner = "korreman"; 14 14 repo = "sway-overfocus"; 15 15 rev = "v${version}"; 16 - hash = "sha256-trpjKA0TV8InSfViIXKnMDeZeFXZfavpiU7/R3JDQkQ="; 16 + hash = "sha256-Ik1YkEtmnMdm5bQb5PtqzZZdJxCnGu4Bzt000iV7tc4="; 17 17 }; 18 18 19 19 useFetchCargoVendor = true; 20 - cargoHash = "sha256-RtiXcUvId+bf8t74Ld2JXQGx+o094Qo3O5kt+ldm1Ag="; 20 + cargoHash = "sha256-sMciCYeuvgY6K7u9HHxIL9EaCUAWGqtbcSjhfcbjdXI="; 21 21 22 22 # Crate without tests. 23 23 doCheck = false;
+2 -2
pkgs/by-name/te/teleport/package.nix
··· 21 21 22 22 withRdpClient ? true, 23 23 24 - version ? "17.5.3", 25 - hash ? "sha256-VyuzSk388Dumm65+Gadu/SddVN7uUS3du5RGPm4xI6g=", 24 + version ? "17.5.4", 25 + hash ? "sha256-ojRIyPTrSG3/xuqdaUNrN4s5HP3E8pvzjG8h+qFEYrc=", 26 26 vendorHash ? "sha256-IHXwCp1MdcEKJhIs9DNf77Vd93Ai2as7ROlh6AJT9+Q=", 27 27 extPatches ? [ ], 28 28 cargoHash ? "sha256-qz8gkooQTuBlPWC4lHtvBQpKkd+nEZ0Hl7AVg9JkPqs=",
+4 -4
pkgs/by-name/te/teleport_16/package.nix
··· 2 2 teleport, 3 3 }: 4 4 teleport.override { 5 - version = "16.5.11"; 6 - hash = "sha256-uLis1oRTr5J2bKaJtnVAIQ0ixYT8BYLo4jQPcdFp82s="; 7 - vendorHash = "sha256-OcVHckqxpTVz6Gaemt3+9WxBQc5D5QBxb3IMGOMq4LI="; 8 - pnpmHash = "sha256-JQca2eFxcKJDHIaheJBg93ivZU95UWMRgbcK7QE4R10="; 5 + version = "16.5.13"; 6 + hash = "sha256-X9Ujgvp+2dFCoku0tjGW4W05X8QrnExFE+H1kMhf91A="; 7 + vendorHash = "sha256-0+7xbIONnZs7dPpfpHPmep+k4XxQE8TS/eKz4F5a3V0="; 8 + pnpmHash = "sha256-waBzmNs20wbuoBDObVFnJjEYs3NJ/bzQksVz7ltMD7M="; 9 9 cargoHash = "sha256-04zykCcVTptEPGy35MIWG+tROKFzEepLBmn04mSbt7I="; 10 10 }
+3 -3
pkgs/by-name/um/umu-launcher-unwrapped/package.nix
··· 13 13 }: 14 14 python3Packages.buildPythonPackage rec { 15 15 pname = "umu-launcher-unwrapped"; 16 - version = "1.2.6"; 16 + version = "1.2.7"; 17 17 18 18 src = fetchFromGitHub { 19 19 owner = "Open-Wine-Components"; 20 20 repo = "umu-launcher"; 21 21 tag = version; 22 - hash = "sha256-DkfB78XhK9CXgN/OpJZTjwHB7IcLC4h2HM/1JW42ZO0="; 22 + hash = "sha256-G8UZvQ/pidh93FSsYq1dY0FTESWbksKAd9OU5Sxvv4I="; 23 23 }; 24 24 25 25 cargoDeps = rustPlatform.fetchCargoVendor { 26 26 inherit src; 27 - hash = "sha256-JhNErFDJsM20BhgIgJSUBeNzAst8f+s1NzpLfl2m2es="; 27 + hash = "sha256-qGkEc4VPShMMNgSB4JmSf7Mq4jEOxEK+BqlR680ZO9k="; 28 28 }; 29 29 30 30 nativeCheckInputs = [
+48
pkgs/development/ocaml-modules/bytesrw/default.nix
··· 1 + { 2 + lib, 3 + fetchzip, 4 + libblake3, 5 + libmd, 6 + xxHash, 7 + zlib, 8 + zstd, 9 + buildTopkgPackage, 10 + }: 11 + 12 + buildTopkgPackage rec { 13 + pname = "bytesrw"; 14 + version = "0.1.0"; 15 + 16 + minimalOCamlVersion = "4.14.0"; 17 + 18 + src = fetchzip { 19 + url = "https://erratique.ch/software/bytesrw/releases/bytesrw-${version}.tbz"; 20 + hash = "sha256-leH3uo5Q8ba22A/Mbl9pio0tW/IxCTGp77Cra7l4D80="; 21 + }; 22 + 23 + # docs say these are optional, but buildTopkgPackage doesn’t handle missing 24 + # dependencies 25 + 26 + buildInputs = [ 27 + libblake3 28 + libmd 29 + xxHash 30 + zlib 31 + zstd 32 + ]; 33 + 34 + meta = { 35 + description = "composable, memory efficient, byte stream readers and writers compatible with effect-based concurrency"; 36 + longDescription = '' 37 + Bytesrw extends the OCaml Bytes module with composable, memory efficient, 38 + byte stream readers and writers compatible with effect-based concurrency. 39 + 40 + Except for byte slice life-times, these abstractions intentionnaly 41 + separate away ressource management and the specifics of reading and 42 + writing bytes. 43 + ''; 44 + homepage = "https://erratique.ch/software/bytesrw"; 45 + license = lib.licenses.isc; 46 + maintainers = with lib.maintainers; [ toastal ]; 47 + }; 48 + }
+54
pkgs/development/ocaml-modules/jsont/default.nix
··· 1 + { 2 + lib, 3 + fetchzip, 4 + buildTopkgPackage, 5 + brr, 6 + bytesrw, 7 + cmdliner, 8 + }: 9 + 10 + buildTopkgPackage rec { 11 + pname = "jsont"; 12 + version = "0.1.1"; 13 + 14 + minimalOCamlVersion = "4.14.0"; 15 + 16 + src = fetchzip { 17 + url = "https://erratique.ch/software/jsont/releases/jsont-${version}.tbz"; 18 + hash = "sha256-bLbTfRVz/Jzuy2LnQeTEHQGojfA34M+Xj7LODpBAVK4="; 19 + }; 20 + 21 + # docs say these dependendencies are optional, but buildTopkgPackage doesn’t 22 + # handle missing dependencies 23 + 24 + buildInputs = [ 25 + cmdliner 26 + ]; 27 + 28 + propagatedBuildInputs = [ 29 + brr 30 + bytesrw 31 + ]; 32 + 33 + meta = { 34 + description = "declarative JSON data manipulation"; 35 + longDescription = '' 36 + Jsont is an OCaml library for declarative JSON data manipulation. it 37 + provides: 38 + 39 + • Combinators for describing JSON data using the OCaml values of your 40 + choice. The descriptions can be used by generic functions to decode, 41 + encode, query and update JSON data without having to construct a 42 + generic JSON representation 43 + • A JSON codec with optional text location tracking and best-effort 44 + layout preservation. The codec is compatible with effect-based 45 + concurrency. 46 + 47 + The descriptions are independent from the codec and can be used by 48 + third-party processors or codecs. 49 + ''; 50 + homepage = "https://erratique.ch/software/jsont"; 51 + license = lib.licenses.isc; 52 + maintainers = with lib.maintainers; [ toastal ]; 53 + }; 54 + }
+5
pkgs/development/python-modules/mmengine/default.nix
··· 67 67 + '' 68 68 substituteInPlace tests/test_config/test_lazy.py \ 69 69 --replace-fail "import numpy.compat" "" 70 + 71 + substituteInPlace mmengine/utils/dl_utils/collect_env.py \ 72 + --replace-fail \ 73 + "from distutils" \ 74 + "from setuptools._distutils" 70 75 ''; 71 76 72 77 build-system = [ setuptools ];
+20 -26
pkgs/development/python-modules/nicegui/default.nix
··· 1 1 { 2 2 lib, 3 - buildPythonPackage, 4 - fetchFromGitHub, 5 - 6 - # build-system 7 - poetry-core, 8 - setuptools, 9 - 10 - # dependencies 11 3 aiofiles, 12 4 aiohttp, 5 + buildPythonPackage, 13 6 certifi, 14 7 docutils, 15 8 fastapi, 9 + fetchFromGitHub, 16 10 httpx, 17 11 ifaddr, 18 12 itsdangerous, 19 13 jinja2, 14 + libsass, 20 15 markdown2, 16 + matplotlib, 21 17 orjson, 18 + pandas, 19 + pkgs, 20 + plotly, 21 + poetry-core, 22 + polars, 23 + pyecharts, 22 24 pygments, 25 + pytest-asyncio, 26 + pytest-selenium, 27 + pytestCheckHook, 23 28 python-multipart, 24 29 python-socketio, 30 + pywebview, 31 + redis, 25 32 requests, 33 + setuptools, 26 34 typing-extensions, 27 35 urllib3, 28 36 uvicorn, 29 37 vbuild, 30 38 watchfiles, 31 - 32 - # optional-dependencies 33 - matplotlib, 34 - pywebview, 35 - plotly, 36 - libsass, 37 - redis, 38 - 39 - # tests 40 - pandas, 41 - pkgs, 42 - polars, 43 - pyecharts, 44 - pytest-asyncio, 45 - pytest-selenium, 46 - pytestCheckHook, 47 39 webdriver-manager, 48 40 writableTmpDirAsHomeHook, 49 41 }: 50 42 51 43 buildPythonPackage rec { 52 44 pname = "nicegui"; 53 - version = "2.15.0"; 45 + version = "2.20.0"; 54 46 pyproject = true; 55 47 56 48 src = fetchFromGitHub { 57 49 owner = "zauberzeug"; 58 50 repo = "nicegui"; 59 51 tag = "v${version}"; 60 - hash = "sha256-pwR+9QBCIMZXFK9n8GRESl9UFsh7zcgOxTngdgdyMuc="; 52 + hash = "sha256-XCOFRfG+EkgSKz5Z7Ds9F2Vwl1+7GH7ojxuE6ruvO3Y="; 61 53 }; 54 + 55 + pythonRelaxDeps = [ "requests" ]; 62 56 63 57 build-system = [ 64 58 poetry-core
+78
pkgs/development/python-modules/optuna-dashboard/default.nix
··· 1 + { 2 + lib, 3 + buildPythonPackage, 4 + fetchFromGitHub, 5 + alembic, 6 + boto3, 7 + botorch, 8 + bottle, 9 + cmaes, 10 + colorlog, 11 + moto, 12 + numpy, 13 + optuna, 14 + packaging, 15 + plotly, 16 + pytestCheckHook, 17 + setuptools, 18 + scikit-learn, 19 + scipy, 20 + streamlit, 21 + tqdm, 22 + }: 23 + 24 + buildPythonPackage rec { 25 + pname = "optuna-dashboard"; 26 + version = "0.18.0"; 27 + pyproject = true; 28 + 29 + src = fetchFromGitHub { 30 + owner = "optuna"; 31 + repo = "optuna-dashboard"; 32 + tag = "v${version}"; 33 + hash = "sha256-0L1QTw9srZsHWDVP4J0WMIvndn5pn51Hs/Xz/tusv0I="; 34 + }; 35 + 36 + dependencies = [ 37 + alembic 38 + bottle 39 + cmaes 40 + colorlog 41 + numpy 42 + optuna 43 + packaging 44 + scikit-learn 45 + scipy 46 + tqdm 47 + ]; 48 + 49 + build-system = [ setuptools ]; 50 + 51 + nativeCheckInputs = [ 52 + pytestCheckHook 53 + boto3 54 + botorch 55 + moto 56 + plotly 57 + streamlit 58 + ]; 59 + 60 + # Disable tests that use playwright (needs network) 61 + disabledTestPaths = [ 62 + "e2e_tests/test_dashboard/test_usecases/test_preferential_optimization.py" 63 + "e2e_tests/test_dashboard/test_usecases/test_study_history.py" 64 + "e2e_tests/test_dashboard/visual_regression_test.py" 65 + "e2e_tests/test_standalone/test_study_list.py" 66 + ]; 67 + 68 + pythonImportsCheck = [ "optuna_dashboard" ]; 69 + 70 + meta = { 71 + description = "Real-time Web Dashboard for Optuna"; 72 + homepage = "https://github.com/optuna/optuna-dashboard"; 73 + changelog = "https://github.com/optuna/optuna-dashboard/releases/tag/v${version}"; 74 + license = lib.licenses.mit; 75 + maintainers = with lib.maintainers; [ jherland ]; 76 + mainProgram = "optuna-dashboard"; 77 + }; 78 + }
+5 -8
pkgs/development/python-modules/tweepy/default.nix
··· 4 4 async-lru, 5 5 buildPythonPackage, 6 6 fetchFromGitHub, 7 + flit-core, 7 8 oauthlib, 8 9 pytestCheckHook, 9 - pythonOlder, 10 - requests, 11 10 requests-oauthlib, 12 - setuptools, 11 + requests, 13 12 vcrpy, 14 13 }: 15 14 16 15 buildPythonPackage rec { 17 16 pname = "tweepy"; 18 - version = "4.15.0"; 17 + version = "4.16.0"; 19 18 pyproject = true; 20 19 21 - disabled = pythonOlder "3.9"; 22 - 23 20 src = fetchFromGitHub { 24 21 owner = "tweepy"; 25 22 repo = "tweepy"; 26 23 tag = "v${version}"; 27 - hash = "sha256-vbiMwaJh4cN7OY7eYu2s8azs3A0KXvW/kRPVCx50ZVA="; 24 + hash = "sha256-9rJrZb9X3twVtfnQTFjWLH/TttfUNm4KA3/6AIHDKc0="; 28 25 }; 29 26 30 - build-system = [ setuptools ]; 27 + build-system = [ flit-core ]; 31 28 32 29 dependencies = [ 33 30 oauthlib
+2 -11
pkgs/tools/networking/mtr/default.nix
··· 2 2 stdenv, 3 3 lib, 4 4 fetchFromGitHub, 5 - fetchpatch, 6 5 autoreconfHook, 7 6 pkg-config, 8 7 libcap, ··· 14 13 15 14 stdenv.mkDerivation rec { 16 15 pname = "mtr${lib.optionalString withGtk "-gui"}"; 17 - version = "0.95"; 16 + version = "0.96"; 18 17 19 18 src = fetchFromGitHub { 20 19 owner = "traviscross"; 21 20 repo = "mtr"; 22 21 rev = "v${version}"; 23 - sha256 = "sha256-f5bL3IdXibIc1xXCuZHwcEV5vhypRE2mLsS3A8HW2QM="; 22 + sha256 = "sha256-Oit0jEm1g+jYCIoTak/mcdlF14GDkDOAWKmX2mYw30M="; 24 23 }; 25 - 26 - patches = [ 27 - (fetchpatch { 28 - # https://github.com/traviscross/mtr/pull/468 29 - url = "https://github.com/traviscross/mtr/commit/5908af4c19188cb17b62f23368b6ef462831a0cb.patch"; 30 - hash = "sha256-rTydtU8+Wc4nGEKh1GOkhcpgME4hwsACy82gKPaIe64="; 31 - }) 32 - ]; 33 24 34 25 # we need this before autoreconfHook does its thing 35 26 postPatch = ''
+4
pkgs/top-level/ocaml-packages.nix
··· 141 141 142 142 bwd = callPackage ../development/ocaml-modules/bwd { }; 143 143 144 + bytesrw = callPackage ../development/ocaml-modules/bytesrw { }; 145 + 144 146 bytestring = callPackage ../development/ocaml-modules/bytestring { }; 145 147 146 148 bz2 = callPackage ../development/ocaml-modules/bz2 { }; ··· 949 951 json-data-encoding-bson = callPackage ../development/ocaml-modules/json-data-encoding/bson.nix { }; 950 952 951 953 jsonm = callPackage ../development/ocaml-modules/jsonm { }; 954 + 955 + jsont = callPackage ../development/ocaml-modules/jsont { }; 952 956 953 957 jsonrpc = callPackage ../development/ocaml-modules/ocaml-lsp/jsonrpc.nix { }; 954 958
+2
pkgs/top-level/python-packages.nix
··· 10886 10886 10887 10887 optuna = callPackage ../development/python-modules/optuna { }; 10888 10888 10889 + optuna-dashboard = callPackage ../development/python-modules/optuna-dashboard { }; 10890 + 10889 10891 optype = callPackage ../development/python-modules/optype { }; 10890 10892 10891 10893 opuslib = callPackage ../development/python-modules/opuslib { };