diff --git a/ci/github-script/bot.js b/ci/github-script/bot.js index 8e0043d5505c..684e3e33179a 100644 --- a/ci/github-script/bot.js +++ b/ci/github-script/bot.js @@ -395,6 +395,13 @@ module.exports = async ({ github, context, core, dry }) => { pull_number, per_page: 100, }) + + // label llm-assisted PRs accordingly + const assistedByPattern = /Assisted-by: (?!nix-init)/i + evalLabels['llm-assisted'] = prCommits.some((c) => + assistedByPattern.test(c.commit.message), + ) + const commitSubjects = prCommits.map( (c) => c.commit.message.split('\n')[0], ) diff --git a/doc/release-notes/rl-2611.section.md b/doc/release-notes/rl-2611.section.md index 481987f089a1..d1631b54d011 100644 --- a/doc/release-notes/rl-2611.section.md +++ b/doc/release-notes/rl-2611.section.md @@ -149,8 +149,7 @@ ### Breaking changes {#sec-nixpkgs-release-26.11-lib-breaking} -- Create the first release note entry in this section! - +- `fittrackee` 1.0.0 now requires postgres with postgis. The [upgrade guide](https://docs.fittrackee.org/en/upgrading-to-1.0.0.html) has steps to prepare for this upgrade. ### Deprecations {#sec-nixpkgs-release-26.11-lib-deprecations} diff --git a/nixos/modules/services/web-apps/homer.nix b/nixos/modules/services/web-apps/homer.nix index e34e43435d12..a89f51dd832d 100644 --- a/nixos/modules/services/web-apps/homer.nix +++ b/nixos/modules/services/web-apps/homer.nix @@ -169,11 +169,25 @@ in enable = true; virtualHosts."${cfg.virtualHost.domain}".extraConfig = '' root * ${cfg.package} - file_server + encode zstd gzip + + @immutable path /resources/* + header @immutable Cache-Control "public, max-age=31536000, immutable" + + @html not path /resources/* + header @html Cache-Control "no-store" + + header { + -ETag + -Last-Modified + } + handle_path /assets/config.yml { root * ${configFile} file_server } + + file_server ''; }; }; diff --git a/pkgs/applications/editors/android-studio/default.nix b/pkgs/applications/editors/android-studio/default.nix index 530acb7debf5..6623930e8771 100644 --- a/pkgs/applications/editors/android-studio/default.nix +++ b/pkgs/applications/editors/android-studio/default.nix @@ -26,9 +26,9 @@ let url = "https://edgedl.me.gvt1.com/android/studio/ide-zips/2026.1.2.9/android-studio-quail2-rc2-linux.tar.gz"; }; latestVersion = { - version = "2026.1.3.3"; # "Android Studio Quail 3 | 2026.1.3 Canary 3" - sha256Hash = "sha256-C8rbR+0iGNzsr7HtiNiFw++ZG9/t00/c1Ozr9ngssPs="; - url = "https://edgedl.me.gvt1.com/android/studio/ide-zips/2026.1.3.3/android-studio-quail3-canary3-linux.tar.gz"; + version = "2026.1.4.1"; # "Android Studio Quail 4 | 2026.1.4 Canary 1" + sha256Hash = "sha256-ynHUoMDsTNgKKRAU948k37ktAIlIm9A+md8KyVBTjl4="; + url = "https://edgedl.me.gvt1.com/android/studio/ide-zips/2026.1.4.1/android-studio-quail4-canary1-linux.tar.gz"; }; in { diff --git a/pkgs/applications/editors/vscode/extensions/saoudrizwan.claude-dev/default.nix b/pkgs/applications/editors/vscode/extensions/saoudrizwan.claude-dev/default.nix index c4b9eee45455..2baf64ec3aa9 100644 --- a/pkgs/applications/editors/vscode/extensions/saoudrizwan.claude-dev/default.nix +++ b/pkgs/applications/editors/vscode/extensions/saoudrizwan.claude-dev/default.nix @@ -7,8 +7,8 @@ vscode-utils.buildVscodeMarketplaceExtension { mktplcRef = { name = "claude-dev"; publisher = "saoudrizwan"; - version = "3.89.2"; - hash = "sha256-lDt/xn1PFs0UDg0rOOun8Bl/FTXSjvQ//ETkoHFypAM="; + version = "4.0.8"; + hash = "sha256-qSlz2wXQwpO1Wi9P40hVm+ACZ+VfCiV9LF3lnOkMoXA="; }; meta = { diff --git a/pkgs/applications/networking/cluster/terraform-providers/providers.json b/pkgs/applications/networking/cluster/terraform-providers/providers.json index 28c6a1fa04f1..0c2d87864f76 100644 --- a/pkgs/applications/networking/cluster/terraform-providers/providers.json +++ b/pkgs/applications/networking/cluster/terraform-providers/providers.json @@ -155,13 +155,13 @@ "vendorHash": "sha256-SO3CX7pZ+q7ytz/55cxTPlW7ByY1zKhxkQxMiqAvm8o=" }, "checkly_checkly": { - "hash": "sha256-9kcZXbrfl8ovrg1w3bWdta/ABnLtVIfseRptZn5NrgI=", + "hash": "sha256-or9qjJdA8sDmPnETyedWtsAWEsF9hJdDmPpX+qncN7E=", "homepage": "https://registry.terraform.io/providers/checkly/checkly", "owner": "checkly", "repo": "terraform-provider-checkly", - "rev": "v1.25.0", + "rev": "v1.26.0", "spdx": null, - "vendorHash": "sha256-7XgTkzYBfkpF8Dd4YsgpB+YIfkANsg/60b3AyO8Y8FA=" + "vendorHash": "sha256-nB77EpptqXhF+7/85h37CRQUk/iyq1ffSc2v2kQwFAQ=" }, "ciscodevnet_aci": { "hash": "sha256-8QnmISiZGRbW60mN9I6UYWDo6f2HUIFersVs/pDUD3o=", @@ -851,13 +851,13 @@ "vendorHash": "sha256-OgKOjLwDQxJiv+VWdOzjMcUDPu9LOuhyTRyLyM39vLM=" }, "linode_linode": { - "hash": "sha256-aOLto01ntce/l+1ZcQf5Rsdu6ptgpYWpf5JpJ0zRUNs=", + "hash": "sha256-N/SVZ1ajNRT53zxdYBT6Hd/wwAuKhEre0QSZUYbkwGA=", "homepage": "https://registry.terraform.io/providers/linode/linode", "owner": "linode", "repo": "terraform-provider-linode", - "rev": "v3.14.1", + "rev": "v4.1.0", "spdx": "MPL-2.0", - "vendorHash": "sha256-dnvv6sSzEUZ4Hbrq/pAgi/O1RyxCx89omCVzvCe70S0=" + "vendorHash": "sha256-r5T8kmvCb2iBUJqw5m7hrr+ET7U9kIBUbsvEVqZlgrE=" }, "loafoe_htpasswd": { "hash": "sha256-1HCvAGWsYlcYCA8iOmBb/AawxHPLuoxxQWLzNy0x79M=", @@ -1184,13 +1184,13 @@ "vendorHash": "sha256-uCw5Xdqp3VjLj6IytoVfO0atxkT69FNqJmAlA6eCmfs=" }, "scaleway_scaleway": { - "hash": "sha256-rO5xmAJB2ndhVh7Lkun1Gxi04+I2lGVtkbbCbmngp3E=", + "hash": "sha256-NXW3b4E92uqZbzIpRTFKVKbPRghwfRK4akn4KY7C9p0=", "homepage": "https://registry.terraform.io/providers/scaleway/scaleway", "owner": "scaleway", "repo": "terraform-provider-scaleway", - "rev": "v2.78.0", + "rev": "v2.79.0", "spdx": "MPL-2.0", - "vendorHash": "sha256-x2cppxUU58nN7eu+wMxIoS16HezxzkHWI50ck2r34ls=" + "vendorHash": "sha256-MKYAdMLETD12850TIBqBfHLRNLy15B6ycDUckIapwt8=" }, "scottwinkler_shell": { "hash": "sha256-LTWEdXxi13sC09jh+EFZ6pOi1mzuvgBz5vceIkNE/JY=", diff --git a/pkgs/by-name/an/antigravity-cli/package.nix b/pkgs/by-name/an/antigravity-cli/package.nix index 455485d6a4bb..790ea78b87b7 100644 --- a/pkgs/by-name/an/antigravity-cli/package.nix +++ b/pkgs/by-name/an/antigravity-cli/package.nix @@ -6,8 +6,8 @@ versionCheckHook, }: let - version = "1.0.12"; - buildId = "6156052174077952"; + version = "1.1.4"; + buildId = "5165726265376768"; wholeVersion = "${version}-${buildId}"; throwSystem = throw "Unsupported system: ${stdenvNoCC.hostPlatform.system}"; @@ -15,15 +15,15 @@ let sourceData = { x86_64-linux = fetchurl { url = "https://storage.googleapis.com/antigravity-public/antigravity-cli/${wholeVersion}/linux-x64/cli_linux_x64.tar.gz"; - hash = "sha256-fjB132jrrViqHPQiMenYuDvyiVtbBYqxc2sLY4PHUAg="; + hash = "sha256-qHY/CIE65zGFDg2CfMbm06f4xn3mvLIUUhCj7Bh37tE="; }; aarch64-linux = fetchurl { url = "https://storage.googleapis.com/antigravity-public/antigravity-cli/${wholeVersion}/linux-arm/cli_linux_arm64.tar.gz"; - hash = "sha256-oDZ+WHWsG4imwLFjyG69XRPJvvkH9EaaZRb/aQIb8tQ="; + hash = "sha256-9dlI6XbTTLuhRdo+32gE39DWGcMIhikd45kkAj3oGO8="; }; aarch64-darwin = fetchurl { url = "https://storage.googleapis.com/antigravity-public/antigravity-cli/${wholeVersion}/darwin-arm/cli_mac_arm64.tar.gz"; - hash = "sha256-U/cwihF/cP5+7KSmkAToI5yOoYydguR5ZrKQMytpuCk="; + hash = "sha256-qhfFyMNvppzI01rjcpq/xUUTYiTsP38Y5ZpqkZMCSJs="; }; }; in diff --git a/pkgs/by-name/ce/cel-go/package.nix b/pkgs/by-name/ce/cel-go/package.nix index 5d944d2d3b64..6ce048623ee6 100644 --- a/pkgs/by-name/ce/cel-go/package.nix +++ b/pkgs/by-name/ce/cel-go/package.nix @@ -26,18 +26,18 @@ let in buildGoModule (finalAttrs: { pname = "cel-go"; - version = "0.28.1"; + version = "0.29.2"; src = fetchFromGitHub { owner = "cel-expr"; repo = "cel-go"; tag = "v${finalAttrs.version}"; - hash = "sha256-fiFkoYVKdSdYkSMQxmC1SvEEGsalBasCl9tzsGSYwmw="; + hash = "sha256-IubOpjSE91Y2kmWrXw/jFA2QqB3Mx0d/DcJgDVI6+dc="; }; modRoot = "repl"; - vendorHash = "sha256-tMaDwKoE5tzbQD5b7EnpKqiT/CT9WDCKgoxQeyhIlXE="; + vendorHash = "sha256-xbg13CPZEK2uXa6U7T5I/6l1OFcgFOaThcKCfQkgJXI="; subPackages = [ "main" diff --git a/pkgs/by-name/ce/censor/package.nix b/pkgs/by-name/ce/censor/package.nix index f75d73689274..d922d13afe51 100644 --- a/pkgs/by-name/ce/censor/package.nix +++ b/pkgs/by-name/ce/censor/package.nix @@ -13,14 +13,14 @@ python3Packages.buildPythonApplication (finalAttrs: { pname = "censor"; - version = "0.7.2"; + version = "0.8.0"; pyproject = false; src = fetchFromCodeberg { owner = "censor"; repo = "Censor"; tag = "v${finalAttrs.version}"; - hash = "sha256-444EGJCNnRRkuTzm4HdapUvwphx9EavxeyAI0Sxh8G8="; + hash = "sha256-WxD2tK6vTYpvy/0BDzwAymdl4uCJNkgw7HBUrMrDlXQ="; }; nativeBuildInputs = [ diff --git a/pkgs/by-name/ci/cinny/package.nix b/pkgs/by-name/ci/cinny/package.nix index df494780e81d..02bfc4fca9cf 100644 --- a/pkgs/by-name/ci/cinny/package.nix +++ b/pkgs/by-name/ci/cinny/package.nix @@ -4,15 +4,16 @@ stdenvNoCC, writeText, conf ? { }, + pname ? "cinny", }: let - configOverrides = writeText "cinny-config-overrides.json" (builtins.toJSON conf); + configOverrides = writeText "${pname}-config-overrides.json" (builtins.toJSON conf); in if (conf == { }) then cinny-unwrapped else stdenvNoCC.mkDerivation { - pname = "cinny"; + inherit pname; inherit (cinny-unwrapped) version meta; dontUnpack = true; diff --git a/pkgs/by-name/ci/citrix-workspace/package.nix b/pkgs/by-name/ci/citrix-workspace/package.nix index 21f67549a1d9..f3f0c2498c67 100644 --- a/pkgs/by-name/ci/citrix-workspace/package.nix +++ b/pkgs/by-name/ci/citrix-workspace/package.nix @@ -109,12 +109,12 @@ let in -stdenv.mkDerivation rec { +stdenv.mkDerivation (finalAttrs: { pname = "citrix-workspace"; version = "26.04.0.105"; src = requireFile rec { - name = "linuxx64-${version}.tar.gz"; + name = "linuxx64-${finalAttrs.version}.tar.gz"; sha256 = "1kl6b1ldjd9gb6cmvhxf6ggvc3amq1kz0qwjlb1fp6dxx0pivwm8"; message = '' @@ -123,7 +123,7 @@ stdenv.mkDerivation rec { https://www.citrix.com/downloads/workspace-app/betas-and-tech-previews/workspace-app-tp-gcc11-for-linux.html - (if you do not find version ${version} there, try at + (if you do not find version ${finalAttrs.version} there, try at https://www.citrix.com/downloads/workspace-app/) Once you have downloaded the file, please use the following command and re-run the @@ -139,7 +139,7 @@ stdenv.mkDerivation rec { __structuredAttrs = true; sourceRoot = "."; preferLocalBuild = true; - passthru.icaroot = "${placeholder "out"}/opt/citrix-icaclient"; + passthru.icaroot = "${finalAttrs.finalPackage}/opt/citrix-icaclient"; nativeBuildInputs = [ autoPatchelfHook @@ -435,4 +435,4 @@ stdenv.mkDerivation rec { ]; homepage = "https://www.citrix.com/downloads/workspace-app/betas-and-tech-previews/workspace-app-tp-gcc11-for-linux.html"; }; -} +}) diff --git a/pkgs/by-name/em/emmylua-ls/package.nix b/pkgs/by-name/em/emmylua-ls/package.nix index 3f3def1bca0a..a50b5b411ad0 100644 --- a/pkgs/by-name/em/emmylua-ls/package.nix +++ b/pkgs/by-name/em/emmylua-ls/package.nix @@ -9,13 +9,13 @@ }: rustPlatform.buildRustPackage (finalAttrs: { pname = "emmylua_ls"; - version = "0.23.2"; + version = "0.24.0"; src = fetchFromGitHub { owner = "EmmyLuaLs"; repo = "emmylua-analyzer-rust"; tag = finalAttrs.version; - hash = "sha256-xjKTYzkfFWKyQzg6I2aafKBGn7XjkE8CCQ9AP8ebu/I="; + hash = "sha256-oijk0SFTjpIak9AetBfctMXJ/72bRGjuaib9adx1yac="; }; __structuredAttrs = true; @@ -34,7 +34,7 @@ rustPlatform.buildRustPackage (finalAttrs: { buildAndTestSubdir = "crates/emmylua_ls"; - cargoHash = "sha256-tVmATUh35h19AsmMCrijJ0rdBHYU6uMj2PE1iiiuDCE="; + cargoHash = "sha256-8uzkj7uCV3XzdagsrePwt2DE4MV12xlbwsaBONUymFQ="; nativeInstallCheckInputs = [ versionCheckHook diff --git a/pkgs/by-name/ev/evcc/package.nix b/pkgs/by-name/ev/evcc/package.nix index 89a475328079..3b14b2c3110f 100644 --- a/pkgs/by-name/ev/evcc/package.nix +++ b/pkgs/by-name/ev/evcc/package.nix @@ -17,16 +17,16 @@ }: let - version = "0.311.1"; + version = "0.312.0"; src = fetchFromGitHub { owner = "evcc-io"; repo = "evcc"; tag = version; - hash = "sha256-dxP28NPW+V30XIzh2w++Glrb2xfZ0tpp4H+qOM13yt8="; + hash = "sha256-GUHKrjCGm9LRQX5INdzSMPBV19FtaV8DTN3HIEUrxR4="; }; - vendorHash = "sha256-Eh07T9FAoeoUfhJsK6DPmwE2rJX55Ijzp4ydxJc8/bQ="; + vendorHash = "sha256-x4iwvzf7iv6TyLEkTnqztDQrBD+3lT1yycB7yTD4xO4="; commonMeta = { license = lib.licenses.mit; diff --git a/pkgs/by-name/fi/fittrackee/package.nix b/pkgs/by-name/fi/fittrackee/package.nix index f261ac07eae6..ed8611772707 100644 --- a/pkgs/by-name/fi/fittrackee/package.nix +++ b/pkgs/by-name/fi/fittrackee/package.nix @@ -1,49 +1,51 @@ { - fetchFromGitHub, + fetchFromCodeberg, + fetchNpmDeps, lib, stdenv, + nodejs_24, + npmHooks, postgresql, postgresqlTestHook, python3Packages, }: python3Packages.buildPythonApplication (finalAttrs: { pname = "fittrackee"; - version = "0.11.2"; + version = "1.3.3"; pyproject = true; - src = fetchFromGitHub { - owner = "SamR1"; + src = fetchFromCodeberg { + owner = "FitTrackee"; repo = "FitTrackee"; tag = "v${finalAttrs.version}"; - hash = "sha256-A9gebHxNCpYUUIm7IjyySojIIyuTxfYCUeUufpUM1iA="; + hash = "sha256-XWR9gg52pfg0lHoFikQ2wVhvkPCTjTTndBYqBzYPB8s="; }; + makeCacheWritable = true; + npmRoot = "fittrackee_client"; + + npmDeps = fetchNpmDeps { + inherit (finalAttrs) pname version src; + hash = "sha256-HEgof2ln+mBxM63Dv8Lc/bfx3ozoJCRYYyJOz6jh+Vs="; + sourceRoot = "${finalAttrs.src.name}/fittrackee_client"; + }; + + nativeBuildInputs = [ + nodejs_24 + npmHooks.npmConfigHook + ]; + + preBuild = '' + pushd fittrackee_client + npm run build-only + popd + ''; + build-system = [ python3Packages.poetry-core ]; - # The upstream project changed the behavior of the CLI when --set-admin and --set-role are used together. - # Previously, it would raise an error, but now it issues a deprecation warning. - # This patch updates the test assertion to expect the new deprecation warning message. - # See upstream commit 6eda1b6119b3e41bdf8896e74b4a07d3c9e97609. - postPatch = '' - substituteInPlace fittrackee/tests/users/test_users_commands.py \ - --replace '"--set-admin and --set-role can not be used together."' '"WARNING: --set-admin is deprecated. Please use --set-role option instead."' - ''; - - pythonRelaxDeps = [ - "authlib" - "fitdecode" - "flask" - "flask-limiter" - "flask-migrate" - "nh3" - "lxml" - "pyopenssl" - "pytz" - "sqlalchemy" - "xmltodict" - ]; + pythonRelaxDeps = true; dependencies = with python3Packages; @@ -53,21 +55,31 @@ python3Packages.buildPythonApplication (finalAttrs: { click dramatiq dramatiq-abort + feedgenerator fitdecode flask + flask-babel flask-bcrypt flask-dramatiq flask-limiter flask-migrate flask-sqlalchemy + geoalchemy2 + geopandas gpxpy gunicorn humanize jsonschema + lxml + mistune nh3 + numpy + pandas psycopg2-binary pyjwt pyopenssl + pyproj + python-magic pytz shortuuid sqlalchemy @@ -76,7 +88,9 @@ python3Packages.buildPythonApplication (finalAttrs: { xmltodict ] ++ dramatiq.optional-dependencies.redis - ++ flask-limiter.optional-dependencies.redis; + ++ flask-limiter.optional-dependencies.redis + ++ geoalchemy2.optional-dependencies.shapely + ++ staticmap3.optional-dependencies.filecache; pythonImportsCheck = [ "fittrackee" ]; @@ -84,7 +98,7 @@ python3Packages.buildPythonApplication (finalAttrs: { pytestCheckHook freezegun postgresqlTestHook - postgresql + (postgresql.withPackages (ps: with ps; [ postgis ])) time-machine ]; @@ -93,6 +107,7 @@ python3Packages.buildPythonApplication (finalAttrs: { ]; postgresqlTestSetupPost = '' + echo "CREATE EXTENSION postgis; CREATE EXTENSION postgis_topology;" | PGUSER=postgres psql test_db export DATABASE_TEST_URL=postgresql://$PGUSER/$PGDATABASE?host=$PGHOST ''; @@ -105,8 +120,8 @@ python3Packages.buildPythonApplication (finalAttrs: { meta = { description = "Self-hosted outdoor activity tracker"; - homepage = "https://github.com/SamR1/FitTrackee"; - changelog = "https://github.com/SamR1/FitTrackee/blob/${finalAttrs.src.tag}/CHANGELOG.md"; + homepage = "https://docs.fittrackee.org/"; + changelog = "https://codeberg.org/FitTrackee/FitTrackee/src/tag/${finalAttrs.src.tag}/CHANGELOG.md"; license = lib.licenses.agpl3Only; maintainers = with lib.maintainers; [ tebriel diff --git a/pkgs/by-name/fo/forgejo/generic.nix b/pkgs/by-name/fo/forgejo/generic.nix index 413b070c3143..e1b7277aba7f 100644 --- a/pkgs/by-name/fo/forgejo/generic.nix +++ b/pkgs/by-name/fo/forgejo/generic.nix @@ -12,7 +12,7 @@ bash, brotli, buildGoModule, - fetchpatch, + coreutils, forgejo, git, gzip, @@ -116,6 +116,23 @@ buildGoModule rec { # TestRunHookPrePostReceive (cmd/hook_test.go) needs .git to pass git init + '' + # Unlike NixOS, the Nix build sandbox has no /usr/bin/env and we + # can't just create it, so Forgejo trying to execute git hooks + # that have #!/usr/bin/env as shebang fails with: + # + # To /build/repos44353414/user2/repo1.wiki.git + # ! [remote rejected] fda09356fb8b1da00546f764933f9dacda1b44ea -> master (pre-receive hook declined) + # error: failed to push some refs to '/build/repos44353414/user2/repo1.wiki.git' + # - remote: fatal: cannot exec '/build/appdata2719412950/home/hooks/pre-receive': No such file or directory + # + # We also can't just call patchShebangs because the hooks are + # created just in time by the test suite. Patching the source of + # the hooks after go build but before go test is oddly enough + # the least invasive hack to have those tests pass. + + lib.optionalString (lib.versionAtLeast version "16") '' + substituteInPlace modules/git/hook_generate.go \ + --replace-fail "#!/usr/bin/env" "#!${lib.getExe' coreutils "env"}" ''; checkFlags = @@ -124,6 +141,11 @@ buildGoModule rec { "TestPassword" # requires network: api.pwnedpasswords.com "TestCaptcha" # requires network: hcaptcha.com "TestDNSUpdate" # requires network: release.forgejo.org + ] + ++ lib.optionals (lib.versionAtLeast version "16") [ + "TestMigrateRepository" # requires network: codeberg.org + ] + ++ [ "TestMigrateWhiteBlocklist" # requires network: gitlab.com (DNS) "TestURLAllowedSSH/Pushmirror_URL" # requires network git.gay (DNS) "TestBleveDeleteIssue" # Known Flake-y https://github.com/NixOS/nixpkgs/issues/509878 diff --git a/pkgs/by-name/fo/forgejo/lts.nix b/pkgs/by-name/fo/forgejo/lts.nix deleted file mode 120000 index 8d225ed3269a..000000000000 --- a/pkgs/by-name/fo/forgejo/lts.nix +++ /dev/null @@ -1 +0,0 @@ -package.nix \ No newline at end of file diff --git a/pkgs/by-name/fo/forgejo/lts.nix b/pkgs/by-name/fo/forgejo/lts.nix new file mode 100644 index 000000000000..6c4609ae7b43 --- /dev/null +++ b/pkgs/by-name/fo/forgejo/lts.nix @@ -0,0 +1,11 @@ +import ./generic.nix { + version = "15.0.5"; + hash = "sha256-S+x/YEfQrYIzHLnZ7LDLnkMYVN3TajwS7SHydM8uMPQ="; + npmDepsHash = "sha256-BZSYjEsjUqMYWu3EUP+K35hqSOniv8Y6ek5bEC2vTPg="; + vendorHash = "sha256-00QiJ8W76FdG96fmsIRLkaYlMQTZoIRmRd/qYGyPuig="; + lts = true; + nixUpdateExtraArgs = [ + "--override-filename" + "pkgs/by-name/fo/forgejo/lts.nix" + ]; +} diff --git a/pkgs/by-name/fo/forgejo/package.nix b/pkgs/by-name/fo/forgejo/package.nix index 474e72baff85..a192df6c43b6 100644 --- a/pkgs/by-name/fo/forgejo/package.nix +++ b/pkgs/by-name/fo/forgejo/package.nix @@ -1,9 +1,9 @@ import ./generic.nix { - version = "15.0.5"; - hash = "sha256-S+x/YEfQrYIzHLnZ7LDLnkMYVN3TajwS7SHydM8uMPQ="; - npmDepsHash = "sha256-BZSYjEsjUqMYWu3EUP+K35hqSOniv8Y6ek5bEC2vTPg="; - vendorHash = "sha256-00QiJ8W76FdG96fmsIRLkaYlMQTZoIRmRd/qYGyPuig="; - lts = true; + version = "16.0.0"; + hash = "sha256-BZawFbrtcxftX4/Yk32aoVRQ6Kg+k1FhN9IoH6dxvVY="; + npmDepsHash = "sha256-UhivpUqNJvc3zHxdRVAWT9x68jG1KnQa8yS4KkL2W5g="; + vendorHash = "sha256-cb6f7ZX3pG95EEZotGXn6+YUJN59SFNVHFTejFJ6y28="; + lts = false; nixUpdateExtraArgs = [ "--override-filename" "pkgs/by-name/fo/forgejo/package.nix" diff --git a/pkgs/by-name/gr/gram/package.nix b/pkgs/by-name/gr/gram/package.nix index 894b90cddfc5..2f860f540a62 100644 --- a/pkgs/by-name/gr/gram/package.nix +++ b/pkgs/by-name/gr/gram/package.nix @@ -80,6 +80,9 @@ rustPlatform.buildRustPackage (finalAttrs: { fontconfig libxcb libxkbcommon + ] + ++ lib.optionals stdenv.hostPlatform.isDarwin [ + git ]; cargoBuildFlags = [ diff --git a/pkgs/by-name/hy/hydralauncher/package.nix b/pkgs/by-name/hy/hydralauncher/package.nix index 4a851918421a..6a4348de37f5 100644 --- a/pkgs/by-name/hy/hydralauncher/package.nix +++ b/pkgs/by-name/hy/hydralauncher/package.nix @@ -6,10 +6,10 @@ }: let pname = "hydralauncher"; - version = "4.0.4"; + version = "4.0.5"; src = fetchurl { url = "https://github.com/hydralauncher/hydra/releases/download/v${version}/hydralauncher-${version}.AppImage"; - hash = "sha256-0ORi6JAhws3HgApmwv7sgC9gJE/KcKtKxgz3CKD6BSw="; + hash = "sha256-9TAsBiSJ9ZjGoKuHDbPibu/ZDBM9kdk9BlY5zKysVQ4="; }; appimageContents = appimageTools.extractType2 { inherit pname src version; }; diff --git a/pkgs/by-name/js/jsonschema-cli/package.nix b/pkgs/by-name/js/jsonschema-cli/package.nix index 2c8a4cbe45a8..00151b83fb15 100644 --- a/pkgs/by-name/js/jsonschema-cli/package.nix +++ b/pkgs/by-name/js/jsonschema-cli/package.nix @@ -9,15 +9,15 @@ rustPlatform.buildRustPackage (finalAttrs: { pname = "jsonschema-cli"; - version = "0.47.0"; + version = "0.48.0"; src = fetchCrate { pname = "jsonschema-cli"; inherit (finalAttrs) version; - hash = "sha256-0U9NBfkpqCZnNQIxQhNjErX/LehI3xOcUvHiYRKwrXo="; + hash = "sha256-nQblUoTzrheAQA6wlT/p/x72eATD3gUUjgBneMu6L2E="; }; - cargoHash = "sha256-q/3Nvl+hND94im0mzHqZRepE8GcB5Fec/0HurPgqOmY="; + cargoHash = "sha256-rm5v5S11mJRoyhUnSFXLKu/znKClnI6hOQY7qDpyb/U="; preCheck = '' export SSL_CERT_FILE=${cacert}/etc/ssl/certs/ca-bundle.crt diff --git a/pkgs/by-name/ki/kiro-cli/package.nix b/pkgs/by-name/ki/kiro-cli/package.nix index 295cfe09be35..3e41ce545e9c 100644 --- a/pkgs/by-name/ki/kiro-cli/package.nix +++ b/pkgs/by-name/ki/kiro-cli/package.nix @@ -14,21 +14,21 @@ let in stdenv.mkDerivation (finalAttrs: { pname = "kiro-cli"; - version = "2.10.0"; + version = "2.13.0"; src = { x86_64-linux = fetchurl { url = "https://desktop-release.q.us-east-1.amazonaws.com/${finalAttrs.version}/kirocli-x86_64-linux.tar.gz"; - hash = "sha256-cJl6CyYCzbLpB6m+W9Tx7enaPzijgjOBjdmG6CPMM8k="; + hash = "sha256-8qEnlNv8lQK3SCjYJ/AdfWB/RELpjLI0VQ7n4vKA7DI="; }; aarch64-linux = fetchurl { url = "https://desktop-release.q.us-east-1.amazonaws.com/${finalAttrs.version}/kirocli-aarch64-linux.tar.gz"; - hash = "sha256-39hKSRi1l5ruSqObViksJkufiCOvLTaIkQzT3sNQFQQ="; + hash = "sha256-uKR5ZxuijDgfIJ4DmDVhN5XGHDyOyiRkLcTie2iuzZU="; }; aarch64-darwin = fetchurl { url = "https://desktop-release.q.us-east-1.amazonaws.com/${finalAttrs.version}/Kiro%20CLI.dmg"; - hash = "sha256-NDeyXQO9NBsK3xqAEcO1gGn9ta+ZVQ1GNwZ4hbGUe3Q="; + hash = "sha256-GAK8+adzrEc1kXtHVCNC1aU09C86D9mroSQv7dXvbfo="; }; } .${system} or (throw "Unsupported system: ${system}"); diff --git a/pkgs/by-name/mc/mcp-server-git/package.nix b/pkgs/by-name/mc/mcp-server-git/package.nix index c4e17c4d543b..98140ce96260 100644 --- a/pkgs/by-name/mc/mcp-server-git/package.nix +++ b/pkgs/by-name/mc/mcp-server-git/package.nix @@ -6,14 +6,14 @@ python3Packages.buildPythonApplication (finalAttrs: { pname = "mcp-server-git"; - version = "2026.7.4"; + version = "2026.7.10"; pyproject = true; src = fetchFromGitHub { owner = "modelcontextprotocol"; repo = "servers"; tag = finalAttrs.version; - hash = "sha256-rBdJoTC1wOEMbAAeSccFqaHL7lacf2SFfxZ/pp2Lx90="; + hash = "sha256-ORihWA8Xx7WAPo2+vRPpYNF9CGfc1sjmW+NfUKBGzxs="; }; sourceRoot = "${finalAttrs.src.name}/src/git/"; diff --git a/pkgs/by-name/mc/mcp-server-time/package.nix b/pkgs/by-name/mc/mcp-server-time/package.nix index 3b2b41b224a4..33e53dc6bac0 100644 --- a/pkgs/by-name/mc/mcp-server-time/package.nix +++ b/pkgs/by-name/mc/mcp-server-time/package.nix @@ -6,14 +6,14 @@ python3Packages.buildPythonApplication (finalAttrs: { pname = "mcp-server-time"; - version = "2026.7.4"; + version = "2026.7.10"; pyproject = true; src = fetchFromGitHub { owner = "modelcontextprotocol"; repo = "servers"; tag = finalAttrs.version; - hash = "sha256-rBdJoTC1wOEMbAAeSccFqaHL7lacf2SFfxZ/pp2Lx90="; + hash = "sha256-ORihWA8Xx7WAPo2+vRPpYNF9CGfc1sjmW+NfUKBGzxs="; }; sourceRoot = "${finalAttrs.src.name}/src/time/"; diff --git a/pkgs/by-name/mo/modrinth-app-unwrapped/package.nix b/pkgs/by-name/mo/modrinth-app-unwrapped/package.nix index 5d75e4a1c064..8b6a52acdebf 100644 --- a/pkgs/by-name/mo/modrinth-app-unwrapped/package.nix +++ b/pkgs/by-name/mo/modrinth-app-unwrapped/package.nix @@ -31,13 +31,13 @@ in rustPlatform.buildRustPackage (finalAttrs: { pname = "modrinth-app-unwrapped"; - version = "0.15.7"; + version = "0.15.11"; src = fetchFromGitHub { owner = "modrinth"; repo = "code"; tag = "v${finalAttrs.version}"; - hash = "sha256-QBWRvctC9gPHLU8tX/GWJocx7hcNOfnTYeVY3Qbx2jo="; + hash = "sha256-F5jMmc0Rqnabxe7ayKbRjA0OZ+WRINILnB3bsyXJP5M="; }; patches = [ @@ -67,7 +67,7 @@ rustPlatform.buildRustPackage (finalAttrs: { --replace-fail '1.0.0-local' '${finalAttrs.version}' ''; - cargoHash = "sha256-HeEdvmf7ZR5/suanmJMYN3F/O/Xrk9Qza4l4kGahpf0="; + cargoHash = "sha256-UO8X/MvY5p1zkv53Xqig2itvP4x5XSXBzp1FDa+4YF0="; mitmCache = gradle.fetchDeps { inherit (finalAttrs) pname; @@ -78,7 +78,7 @@ rustPlatform.buildRustPackage (finalAttrs: { inherit (finalAttrs) pname version src; pnpm = pnpm_10; fetcherVersion = 3; - hash = "sha256-pbEKD8xkO7+//m0PBcAL62q0LC5YEKR+wOPGnzXIRJk="; + hash = "sha256-T5Qa47iXM+nic/nnRqGE6bGlDPpV1SEMT5KpX5TMaAQ="; }; nativeBuildInputs = [ diff --git a/pkgs/applications/audio/mpg123/default.nix b/pkgs/by-name/mp/mpg123/package.nix similarity index 98% rename from pkgs/applications/audio/mpg123/default.nix rename to pkgs/by-name/mp/mpg123/package.nix index fbfe744152e4..ba833af09dc8 100644 --- a/pkgs/applications/audio/mpg123/default.nix +++ b/pkgs/by-name/mp/mpg123/package.nix @@ -11,7 +11,7 @@ libpulseaudio, withCoreAudio ? stdenv.hostPlatform.isDarwin, withJack ? stdenv.hostPlatform.isUnix, - jack, + libjack2, withConplay ? !stdenv.hostPlatform.isWindows, perl, writeScript, @@ -45,7 +45,7 @@ stdenv.mkDerivation (finalAttrs: { ++ lib.optionals withPulse [ libpulseaudio ] ++ lib.optionals withCoreAudio [ ] - ++ lib.optionals withJack [ jack ] + ++ lib.optionals withJack [ libjack2 ] ); configureFlags = diff --git a/pkgs/by-name/mu/music-assistant-desktop/package.nix b/pkgs/by-name/mu/music-assistant-desktop/package.nix index 725fd160b963..765490cdff45 100644 --- a/pkgs/by-name/mu/music-assistant-desktop/package.nix +++ b/pkgs/by-name/mu/music-assistant-desktop/package.nix @@ -32,13 +32,13 @@ rustPlatform.buildRustPackage (finalAttrs: { pname = "music-assistant-desktop"; - version = "0.5.7"; + version = "0.5.9"; src = fetchFromGitHub { owner = "music-assistant"; repo = "desktop-app"; tag = finalAttrs.version; - hash = "sha256-KKyIYSSIC134t46H7YOFNCdj4M/VoBrX9jN5aX/kSlc="; + hash = "sha256-hkG0e/WlnEQXdaYlE9tebzzE63l4RuwCVjHQVTcTo6Y="; }; patches = [ diff --git a/pkgs/by-name/os/osmo-hlr/package.nix b/pkgs/by-name/os/osmo-hlr/package.nix index ccde871dae95..27e8fe9cceb6 100644 --- a/pkgs/by-name/os/osmo-hlr/package.nix +++ b/pkgs/by-name/os/osmo-hlr/package.nix @@ -11,13 +11,13 @@ stdenv.mkDerivation (finalAttrs: { pname = "osmo-hlr"; - version = "1.9.2"; + version = "1.9.3"; src = fetchFromGitHub { owner = "osmocom"; repo = "osmo-hlr"; rev = finalAttrs.version; - hash = "sha256-SYyL7evxxmXGwv2TLr8ZuIrbu+GliAyuz/sKTIveQvc="; + hash = "sha256-+wAwMP3zoFFOlZa4LhCr2hxP97mEZPViniwoOxpINyk="; }; postPatch = '' diff --git a/pkgs/by-name/py/pyfa/package.nix b/pkgs/by-name/py/pyfa/package.nix index 034254572c8a..3a75269e3d9d 100644 --- a/pkgs/by-name/py/pyfa/package.nix +++ b/pkgs/by-name/py/pyfa/package.nix @@ -11,7 +11,7 @@ copyDesktopItems, }: let - version = "2.67.0"; + version = "2.68.0"; in python3Packages.buildPythonApplication rec { inherit version; @@ -22,7 +22,7 @@ python3Packages.buildPythonApplication rec { owner = "pyfa-org"; repo = "Pyfa"; tag = "v${version}"; - hash = "sha256-LS8KW6dZe/CYdA1LvZlq1vL8YllnDZkD9WEEDOToY1M="; + hash = "sha256-obx4YG75XxpdlaFlmFmkXdkazHERhm5boOzSx7zDRQs="; }; desktopItems = [ diff --git a/pkgs/by-name/ru/rustical/package.nix b/pkgs/by-name/ru/rustical/package.nix index 8e58c6e13df2..fa9b1c5e931e 100644 --- a/pkgs/by-name/ru/rustical/package.nix +++ b/pkgs/by-name/ru/rustical/package.nix @@ -10,16 +10,17 @@ rustPlatform.buildRustPackage (finalAttrs: { pname = "rustical"; - version = "0.13.1"; + version = "0.14.0"; + __darwinAllowLocalNetworking = true; src = fetchFromGitHub { owner = "lennart-k"; repo = "rustical"; tag = "v${finalAttrs.version}"; - hash = "sha256-DNwxQq2QKPQ6gzIxBJUhdMNbmHNYnt+MSFJ28PLzunQ="; + hash = "sha256-V0gd4qFs3mRhajhBbtVO835HLAwLKswFQDaURENNTOM="; }; - cargoHash = "sha256-bIbDohCkSlV7uBi+lyylLE/gSqjzlp+xwxQRS9zBiio="; + cargoHash = "sha256-HJeN9xv1U6l1ailE+8L+wlZSCKiCZyhfsh7uT+zebE0="; nativeBuildInputs = [ pkg-config ]; diff --git a/pkgs/by-name/sa/sable-unwrapped/package.nix b/pkgs/by-name/sa/sable-unwrapped/package.nix new file mode 100644 index 000000000000..7a604c0ae930 --- /dev/null +++ b/pkgs/by-name/sa/sable-unwrapped/package.nix @@ -0,0 +1,80 @@ +{ + lib, + stdenvNoCC, + fetchFromGitHub, + fetchPnpmDeps, + pnpmConfigHook, + pnpm_10, + nodejs-slim_24, + nix-update-script, +}: + +let + nodejs-slim = nodejs-slim_24; + pnpm = pnpm_10.override { inherit nodejs-slim; }; +in + +stdenvNoCC.mkDerivation (finalAttrs: { + __darwinAllowLocalNetworking = true; + __structuredAttrs = true; + strictDeps = true; + + pname = "sable-unwrapped"; + version = "1.20.0"; + + src = fetchFromGitHub { + owner = "SableClient"; + repo = "Sable"; + tag = "v${finalAttrs.version}"; + hash = "sha256-ams6Uwblo5mUzah9hlCPCUMXtrLtiUtRWwwKH4uabmk="; + }; + + pnpmDeps = fetchPnpmDeps { + inherit (finalAttrs) pname version src; + inherit pnpm; + fetcherVersion = 3; + hash = "sha256-iBvtMeYUHWhsz1DnKjTzydAt3cGPaisUhaagoaZRg1M="; + }; + + nativeBuildInputs = [ + nodejs-slim + pnpmConfigHook + pnpm + ]; + + # Controls how the application displays its version, e.g. "v1.14.0 (nix)". + # Also prevents some attempts to execute git during build. + env = { + VITE_IS_RELEASE_TAG = "true"; + VITE_BUILD_HASH = "nix"; + }; + + buildPhase = '' + runHook preBuild + + pnpm build + + runHook postBuild + ''; + + installPhase = '' + runHook preInstall + + cp -r dist $out + + runHook postInstall + ''; + + passthru.updateScript = nix-update-script { }; + + meta = { + description = "An almost stable Matrix client"; + homepage = "https://github.com/SableClient/Sable"; + changelog = "https://github.com/SableClient/Sable/releases/tag/v${finalAttrs.version}"; + license = lib.licenses.agpl3Only; + platforms = lib.platforms.all; + maintainers = with lib.maintainers; [ + fugi + ]; + }; +}) diff --git a/pkgs/by-name/sp/spice/package.nix b/pkgs/by-name/sp/spice/package.nix index 73e906604be8..da68b72128ec 100644 --- a/pkgs/by-name/sp/spice/package.nix +++ b/pkgs/by-name/sp/spice/package.nix @@ -2,6 +2,7 @@ lib, stdenv, fetchurl, + fetchpatch, meson, ninja, pkg-config, @@ -38,6 +39,22 @@ stdenv.mkDerivation (finalAttrs: { patches = [ ./remove-rt-on-darwin.patch + + # C++ does not allow designated initializers to refer to members of + # anonymous unions. This fails with GCC 16, and was fixed upstream across + # two merge requests but not yet released. + # https://gitlab.freedesktop.org/spice/spice/-/merge_requests/246 + (fetchpatch { + name = "spice-test-display-base-initializer-anonymous-union.patch"; + url = "https://gitlab.freedesktop.org/spice/spice/-/commit/59bc22a40611121b2ea7888bf3c1a501c4fc0b91.patch"; + hash = "sha256-VQ+DrzmIws3EyZU5c0OqMZwMltUvCW34h5oXuHB8YWs="; + }) + # https://gitlab.freedesktop.org/spice/spice/-/merge_requests/244 + (fetchpatch { + name = "spice-test-gst-initializer-anonymous-union.patch"; + url = "https://gitlab.freedesktop.org/spice/spice/-/commit/a904cd86430aa555a50730e9389e210637a546c1.patch"; + hash = "sha256-6GGqi+Y4I/oftE8zXuRnX021+r7SrQPUdAdBsCv9MIw="; + }) ]; nativeBuildInputs = [ diff --git a/pkgs/by-name/td/tdlib/package.nix b/pkgs/by-name/td/tdlib/package.nix index 9fb8828d6d60..a65f7254d08d 100644 --- a/pkgs/by-name/td/tdlib/package.nix +++ b/pkgs/by-name/td/tdlib/package.nix @@ -38,7 +38,7 @@ in stdenv.mkDerivation { pname = if tde2eOnly then "tde2e" else "tdlib"; - version = "1.8.65"; + version = "1.8.66"; src = fetchFromGitHub { owner = "tdlib"; @@ -47,8 +47,8 @@ stdenv.mkDerivation { # The tdlib authors do not set tags for minor versions, but # external programs depending on tdlib constrain the minor # version, hence we set a specific commit with a known version. - rev = "a8f21f5230172634becc1739050ef23ecd6ea291"; - hash = "sha256-cCNXRyeu6ZMf/0oxipPPUyniGuLzvWFLWCvklPIYvzk="; + rev = "a9966eb3704a3351568c28013fed67d797c17828"; + hash = "sha256-lCfQIehcH5jNQ7rOR6U4Ht+LCcmQRqkRtl0TFuYVdJg="; }; buildInputs = [ diff --git a/pkgs/by-name/to/torrserver/package.nix b/pkgs/by-name/to/torrserver/package.nix index 8c949fbe425b..c763d55d531e 100644 --- a/pkgs/by-name/to/torrserver/package.nix +++ b/pkgs/by-name/to/torrserver/package.nix @@ -7,15 +7,15 @@ }: buildGo126Module rec { pname = "torrserver"; - version = "142"; + version = "142.1"; src = fetchFromGitHub { owner = "YouROK"; repo = "TorrServer"; tag = "MatriX.${version}"; - sha256 = "sha256-bAnnDbrKYfU3WdjwIW4GGDST4S13KIhGNoQQtI27UaQ="; + sha256 = "sha256-/CNY1wQxEs3rzHx04s1LWVNnN10JmiLjh48WBo2nid8="; }; - vendorHash = "sha256-B5BAmdFuLWDkbp/lehFziyHXcMPIAgNySgTPv9Nv680="; + vendorHash = "sha256-M9rI/AU5ZWJre8B92OoGZZBd1C3bc4R8+r0SYAgY/C4="; modRoot = "server"; subPackages = [ "cmd" ]; diff --git a/pkgs/by-name/us/userborn/package.nix b/pkgs/by-name/us/userborn/package.nix index 0ef3a4a3cfd9..98310531867d 100644 --- a/pkgs/by-name/us/userborn/package.nix +++ b/pkgs/by-name/us/userborn/package.nix @@ -9,18 +9,18 @@ rustPlatform.buildRustPackage (finalAttrs: { pname = "userborn"; - version = "0.5.0"; + version = "1.0.0"; src = fetchFromGitHub { owner = "nikstur"; repo = "userborn"; - rev = finalAttrs.version; - hash = "sha256-mXXakR75Iz6AFf/TYgIHE8SxOri2HyReYUYTT3lCEPA="; + tag = finalAttrs.version; + hash = "sha256-ZVO1Q6iumGVKA/35RYUBV79i9ECqNmjeHXAyjxikUfE="; }; sourceRoot = "${finalAttrs.src.name}/rust/userborn"; - cargoHash = "sha256-uAid5GsM9lasVQAYfeo9jwp4xg1MrXdJqtD0l6ME6OQ="; + cargoHash = "sha256-UNd4RMM8VbmRbEAr8ZDSbNwG07058jasMP0IqcIk7/E="; nativeBuildInputs = [ rustPlatform.bindgenHook ]; diff --git a/pkgs/by-name/wa/walker/package.nix b/pkgs/by-name/wa/walker/package.nix index f3e31c5ea85e..1387775fd3f3 100644 --- a/pkgs/by-name/wa/walker/package.nix +++ b/pkgs/by-name/wa/walker/package.nix @@ -20,16 +20,16 @@ rustPlatform.buildRustPackage (finalAttrs: { pname = "walker"; - version = "2.16.2"; + version = "2.17.0"; src = fetchFromGitHub { owner = "abenz1267"; repo = "walker"; rev = "v${finalAttrs.version}"; - hash = "sha256-fX3ErzTmHRO9z1SzHC2VZUgKOgRfO13X/joC5a3QN7Q="; + hash = "sha256-gxHJsrJZo2qbKK47Kf/9ho3i/HhRwkL8XvPnczGPd9E="; }; - cargoHash = "sha256-gm7xQ7qHui8F+uJBWKh7Fen0Zfi/YqpbdgNSoqar0wA="; + cargoHash = "sha256-TkBdBgUa0fMN/Eddi0qycNjNgYaVECRFbrXixOEpQnc="; nativeBuildInputs = [ gobject-introspection diff --git a/pkgs/development/compilers/rust/binary.nix b/pkgs/development/compilers/rust/binary.nix index 5e0e8a633ba2..f540e775dfd9 100644 --- a/pkgs/development/compilers/rust/binary.nix +++ b/pkgs/development/compilers/rust/binary.nix @@ -118,6 +118,7 @@ rec { "armv6l-netbsd" "mipsel-netbsd" "riscv64-netbsd" + "riscv32-none" "x86_64-redox" "wasm32-wasi" ]; diff --git a/pkgs/development/python-modules/aioslimproto/default.nix b/pkgs/development/python-modules/aioslimproto/default.nix index a76649e8bd5a..c54008a0c7ba 100644 --- a/pkgs/development/python-modules/aioslimproto/default.nix +++ b/pkgs/development/python-modules/aioslimproto/default.nix @@ -10,14 +10,14 @@ buildPythonPackage (finalAttrs: { pname = "aioslimproto"; - version = "3.1.8"; + version = "3.1.9"; pyproject = true; src = fetchFromGitHub { owner = "home-assistant-libs"; repo = "aioslimproto"; tag = finalAttrs.version; - hash = "sha256-xHdwikriA6mcb7tmElqa6suINYxeyyGZQ5iO+P7dRCo="; + hash = "sha256-IyDgnBQC8EbDzwRFWgmVOf4lVNsmdiTaMfpWXHUa4oM="; }; postPatch = '' diff --git a/pkgs/development/python-modules/cynthion/build_gateware.py b/pkgs/development/python-modules/cynthion/build_gateware.py new file mode 100644 index 000000000000..d5c9b11ff534 --- /dev/null +++ b/pkgs/development/python-modules/cynthion/build_gateware.py @@ -0,0 +1,112 @@ +#!/usr/bin/env python3 + +# Builds the FPGA bitstreams `cynthion flash` needs, one set per revision, into +# assets//{analyzer,facedancer,selftest}.bit + +import asyncio +import inspect +import logging +import os +import sys +from pathlib import Path + +import cynthion.gateware.platform + +logging.basicConfig(level=logging.INFO, format="%(asctime)s:%(name)32s:%(message)s") + +logger = logging.getLogger("build-gateware") + +BITSTREAMS = ["analyzer", "facedancer", "selftest"] + +# Pin the nextpnr placer seed so place-and-route is deterministic. Some +# bitstreams (e.g. CynthionPlatformRev1D3/analyzer) are marginal on timing, and +# without a fixed seed a build can non-deterministically miss the constraint. +NEXTPNR_SEED = 0 + + +async def build_bitstream( + semaphore: asyncio.Semaphore, assets_dir: Path, platform: str, bitstream: str +) -> None: + async with semaphore: + log = logging.getLogger(f"build-gateware.{platform}.{bitstream}") + log.info("build started") + + env = os.environ.copy() + env["LUNA_PLATFORM"] = f"cynthion.gateware.platform:{platform}" + env["AMARANTH_nextpnr_opts"] = f"--seed {NEXTPNR_SEED}" + + out_dir = assets_dir / platform + out_dir.mkdir(parents=True, exist_ok=True) + out_path = out_dir / f"{bitstream}.bit" + + process = await asyncio.create_subprocess_exec( + sys.executable, + "-m", + f"cynthion.gateware.{bitstream}.top", + "--output", + str(out_path), + env=env, + stdout=asyncio.subprocess.PIPE, + stderr=asyncio.subprocess.STDOUT, + ) + + stdout, _ = await process.communicate() + log.info("\n%s", stdout.decode("utf-8", errors="replace")) + + if process.returncode != 0: + raise RuntimeError( + f"{platform}/{bitstream} failed with exit code {process.returncode}" + ) + log.info("build complete") + + +def collect_platforms() -> set[str]: + platforms = { + name + for name, obj in inspect.getmembers(cynthion.gateware.platform) + if inspect.isclass(obj) and name.startswith("CynthionPlatform") + } + + # Allow restricting the set of platforms during development/CI, e.g. + # BUILD_GATEWARE_PLATFORMS="CynthionPlatformRev1D4" + only = os.getenv("BUILD_GATEWARE_PLATFORMS") + if only: + requested = set(only.split()) + unknown = requested - platforms + if unknown: + raise ValueError(f"unknown platform(s): {', '.join(sorted(unknown))}") + platforms = requested + + return platforms + + +async def main() -> int: + assets_dir = Path(sys.argv[1]) + max_workers = int(os.getenv("BUILD_GATEWARE_MAX_WORKERS") or 1) + + platforms = collect_platforms() + logger.info( + "Building %d bitstream(s) for platforms: %s", + len(platforms) * len(BITSTREAMS), + ", ".join(sorted(platforms)), + ) + + semaphore = asyncio.Semaphore(max_workers) + logger.info("Building gateware with %d workers", max_workers) + + results = await asyncio.gather( + *( + build_bitstream(semaphore, assets_dir, platform, bitstream) + for platform in sorted(platforms) + for bitstream in BITSTREAMS + ), + return_exceptions=True, + ) + + failures = [r for r in results if isinstance(r, BaseException)] + for failure in failures: + logger.error(failure) + return 1 if failures else 0 + + +sys.exit(asyncio.run(main())) diff --git a/pkgs/development/python-modules/cynthion/default.nix b/pkgs/development/python-modules/cynthion/default.nix index b61edaeda1db..ab508ccc66d6 100644 --- a/pkgs/development/python-modules/cynthion/default.nix +++ b/pkgs/development/python-modules/cynthion/default.nix @@ -2,6 +2,14 @@ lib, fetchFromGitHub, buildPythonPackage, + callPackage, + python, + + # gateware (FPGA toolchain) + nextpnr, + trellis, + which, + yosys, # build-system setuptools, @@ -25,10 +33,8 @@ pytestCheckHook, udevCheckHook, }: -buildPythonPackage rec { - pname = "cynthion"; +let version = "0.2.5"; - pyproject = true; src = fetchFromGitHub { owner = "greatscottgadgets"; @@ -37,6 +43,14 @@ buildPythonPackage rec { hash = "sha256-Ju01eqBVZ7CD0pw4nIFML4LcCPXzC78dLpQru3a+5bU="; }; + # Moondancer SoC firmware, required for `cynthion flash facedancer`. + moondancer = callPackage ./moondancer.nix { inherit src version; }; +in +buildPythonPackage { + pname = "cynthion"; + inherit version src; + pyproject = true; + sourceRoot = "${src.name}/cynthion/python"; postPatch = '' @@ -45,14 +59,19 @@ buildPythonPackage rec { --replace-fail 'dynamic = ["version"]' 'version = "${version}"' ''; - nativeBuildInputs = [ udevCheckHook ]; + nativeBuildInputs = [ + udevCheckHook - build-system = [ - setuptools + # Used by the gateware build in postInstall. + nextpnr + trellis + which + yosys ]; - pythonRelaxDeps = [ "pygreat" ]; + build-system = [ setuptools ]; + pythonRelaxDeps = [ "pygreat" ]; pythonRemoveDeps = [ "future" ]; dependencies = [ @@ -71,18 +90,34 @@ buildPythonPackage rec { tqdm ]; - nativeCheckInputs = [ - pytestCheckHook - ]; + nativeCheckInputs = [ pytestCheckHook ]; + + # Build the per-revision FPGA bitstreams in parallel (see build_gateware.py). + enableParallelBuilding = true; pythonImportsCheck = [ "cynthion" ]; - # Make udev rules available for NixOS option services.udev.packages - postInstall = '' - install -Dm444 \ - -t $out/lib/udev/rules.d \ - build/lib/cynthion/assets/54-cynthion.rules - ''; + postInstall = + let + assets = "$out/${python.sitePackages}/cynthion/assets"; + in + '' + # Build a bitstream set per hardware revision into assets/, where + # `cynthion flash` looks for them. + export BUILD_GATEWARE_MAX_WORKERS="''${NIX_BUILD_CORES:-1}" + PYTHONPATH="$out/${python.sitePackages}''${PYTHONPATH:+:$PYTHONPATH}" \ + python ${./build_gateware.py} "${assets}" + + # Install the moondancer SoC firmware for `cynthion flash facedancer`. + install -Dm444 ${moondancer}/bin/moondancer.bin "${assets}/moondancer.bin" + + # Make udev rules available for NixOS option services.udev.packages + install -Dm444 \ + -t $out/lib/udev/rules.d \ + build/lib/cynthion/assets/54-cynthion.rules + ''; + + passthru = { inherit moondancer; }; meta = { description = "Python package and utilities for the Great Scott Gadgets Cynthion USB Test Instrument"; diff --git a/pkgs/development/python-modules/cynthion/moondancer.nix b/pkgs/development/python-modules/cynthion/moondancer.nix new file mode 100644 index 000000000000..e71d828dda1f --- /dev/null +++ b/pkgs/development/python-modules/cynthion/moondancer.nix @@ -0,0 +1,54 @@ +{ + lib, + src, + version, + stdenv, + llvmPackages, +}: +let + # Moondancer SoC firmware, cross-compiled for the bare-metal riscv32imac + # VexRiscv softcore inside the facedancer gateware. + cross = import ../../../.. { + localSystem = stdenv.hostPlatform.system; + crossSystem = lib.systems.examples.riscv32-embedded // { + rust.rustcTarget = "riscv32imac-unknown-none-elf"; + }; + }; + + inherit (cross) rustPlatform; +in +rustPlatform.buildRustPackage { + pname = "moondancer"; + + inherit version src; + + sourceRoot = "${src.name}/firmware"; + + cargoHash = "sha256-G/9evh3G1xNRaaEh6lgDp3hnVlB3MaCwXuhGnGJCd0Q="; + + # fails to build otherwise + auditable = false; + + nativeBuildInputs = [ + llvmPackages.bintools + ]; + + # lld strips live code without link-dead-code; memory.x (workspace root) and + # link.x (from riscv-rt) are the linker scripts. + RUSTFLAGS = "-C linker=lld -C link-arg=-Tmemory.x -C link-arg=-Tlink.x -C link-dead-code"; + + # cynthion flash needs a raw image, not an ELF (as upstream's + # `cargo objcopy -Obinary`). + postInstall = '' + llvm-objcopy -O binary \ + $out/bin/moondancer \ + $out/bin/moondancer.bin + ''; + + meta = { + description = "Moondancer SoC firmware for the Great Scott Gadgets Cynthion"; + homepage = "https://github.com/greatscottgadgets/cynthion"; + license = lib.licenses.bsd3; + platforms = [ "riscv32-none" ]; + }; +} diff --git a/pkgs/development/python-modules/flask-dramatiq/default.nix b/pkgs/development/python-modules/flask-dramatiq/default.nix index 3dece04ef7a3..86514a6bad44 100644 --- a/pkgs/development/python-modules/flask-dramatiq/default.nix +++ b/pkgs/development/python-modules/flask-dramatiq/default.nix @@ -2,11 +2,13 @@ lib, buildPythonPackage, dramatiq, - fetchFromGitLab, + fetchFromGitHub, flask-migrate, + flask-sqlalchemy, flask, + httpx, periodiq, - poetry-core, + hatchling, postgresql, postgresqlTestHook, psycopg2, @@ -16,35 +18,33 @@ requests, }: -buildPythonPackage { +buildPythonPackage (finalAttrs: { pname = "flask-dramatiq"; - version = "0.6.0"; + version = "0.8.0"; pyproject = true; - src = fetchFromGitLab { - owner = "bersace"; + src = fetchFromGitHub { + owner = "pallets-eco"; repo = "flask-dramatiq"; - rev = "840209e9bf582b4dda468e8bba515f248f3f8534"; - hash = "sha256-qjV1zyVzHPXMt+oUeGBdP9XVlbcSz2MF9Zygj543T4w="; + tag = "v${finalAttrs.version}"; + hash = "sha256-Gt9yynbmFWMISP1U0jRjU6oY3ImrLxYa2D0xf0llCEg="; }; postPatch = '' - substituteInPlace pyproject.toml \ - --replace 'poetry>=0.12' 'poetry-core' \ - --replace 'poetry.masonry.api' 'poetry.core.masonry.api' - patchShebangs --build ./example.py ''; - build-system = [ poetry-core ]; + build-system = [ hatchling ]; pythonRelaxDeps = [ "dramatiq" ]; dependencies = [ dramatiq ]; nativeCheckInputs = [ + flask-sqlalchemy flask flask-migrate + httpx periodiq postgresql postgresqlTestHook @@ -54,7 +54,8 @@ buildPythonPackage { pytestCheckHook requests ] - ++ dramatiq.optional-dependencies.rabbitmq; + ++ dramatiq.optional-dependencies.rabbitmq + ++ dramatiq.optional-dependencies.watch; postgresqlTestSetupPost = '' substituteInPlace config.py \ @@ -72,8 +73,8 @@ buildPythonPackage { meta = { description = "Adds Dramatiq support to your Flask application"; - homepage = "https://gitlab.com/bersace/flask-dramatiq"; + homepage = "https://github.com/pallets-eco/flask-dramatiq"; license = lib.licenses.bsd3; maintainers = with lib.maintainers; [ traxys ]; }; -} +}) diff --git a/pkgs/development/python-modules/llm-tools-sqlite/default.nix b/pkgs/development/python-modules/llm-tools-sqlite/default.nix index 494c4c5994e5..11ae7b29cb1f 100644 --- a/pkgs/development/python-modules/llm-tools-sqlite/default.nix +++ b/pkgs/development/python-modules/llm-tools-sqlite/default.nix @@ -10,18 +10,23 @@ writableTmpDirAsHomeHook, }: -buildPythonPackage rec { +buildPythonPackage (finalAttrs: { pname = "llm-tools-sqlite"; version = "0.1"; pyproject = true; + __structuredAttrs = true; src = fetchFromGitHub { owner = "simonw"; repo = "llm-tools-sqlite"; - tag = version; + tag = finalAttrs.version; hash = "sha256-VAmK4cXzZWTWCU92TwMdhNJPvYPZ88t5BZe8vo60SZY="; }; + patches = [ + ./fix-test.patch + ]; + build-system = [ setuptools ]; dependencies = [ llm ]; @@ -39,8 +44,8 @@ buildPythonPackage rec { meta = { description = "LLM tools for running queries against SQLite"; homepage = "https://github.com/simonw/llm-tools-sqlite"; - changelog = "https://github.com/simonw/llm-tools-sqlite/releases/tag/${version}/CHANGELOG.md"; + changelog = "https://github.com/simonw/llm-tools-sqlite/releases/tag/${finalAttrs.version}/CHANGELOG.md"; license = lib.licenses.asl20; maintainers = with lib.maintainers; [ philiptaron ]; }; -} +}) diff --git a/pkgs/development/python-modules/llm-tools-sqlite/fix-test.patch b/pkgs/development/python-modules/llm-tools-sqlite/fix-test.patch new file mode 100644 index 000000000000..802b73d8583e --- /dev/null +++ b/pkgs/development/python-modules/llm-tools-sqlite/fix-test.patch @@ -0,0 +1,13 @@ +diff --git a/tests/test_llm_tools_sqlite.py b/tests/test_llm_tools_sqlite.py +index a676007..4d653b6 100644 +--- a/tests/test_llm_tools_sqlite.py ++++ b/tests/test_llm_tools_sqlite.py +@@ -47,7 +47,7 @@ def test_tool(monkeypatch, tmpdir): + {"name": "SQLite_query", "output": '[{"n": 3}]', "tool_call_id": None}, + { + "name": "SQLite_schema", +- "output": "CREATE TABLE [pelicans] (\n [name] TEXT\n);", ++ "output": "CREATE TABLE \"pelicans\" (\n \"name\" TEXT\n);", + "tool_call_id": None, + }, + { diff --git a/pkgs/development/python-modules/llm/default.nix b/pkgs/development/python-modules/llm/default.nix index 17794a696d85..eeb9194dbafb 100644 --- a/pkgs/development/python-modules/llm/default.nix +++ b/pkgs/development/python-modules/llm/default.nix @@ -4,7 +4,7 @@ callPackage, buildPythonPackage, fetchFromGitHub, - fetchpatch, + fetchpatch2, pytestCheckHook, replaceVars, setuptools, @@ -164,30 +164,28 @@ let '') withPluginsArgNames ) ); - - llm = buildPythonPackage rec { + llm = buildPythonPackage (finalAttrs: { pname = "llm"; - version = "0.30"; + version = "0.31.1"; pyproject = true; + __structuredAttrs = true; build-system = [ setuptools ]; src = fetchFromGitHub { owner = "simonw"; repo = "llm"; - tag = version; - hash = "sha256-+8fwx7sS1vFSTqb+p2uDLqWW/UIx8WoW3kYJihznRRg="; + tag = finalAttrs.version; + hash = "sha256-XxQ6IQyuO1rxQtiyb4VGrM7uGoffuNN5BhyI4YDxnZg="; }; patches = [ ./001-disable-install-uninstall-commands.patch - ] - # See https://github.com/NixOS/nixpkgs/issues/476258 and https://github.com/simonw/llm/pull/1334 - # TODO: Remove when sqlite 3.52.x is released. - ++ lib.optionals (sqlite.version == "3.51.1") [ - (fetchpatch { - url = "https://github.com/simonw/llm/commit/6e24b883c3e3c4ddd2ec9006714d0a9ec17b59da.patch"; - hash = "sha256-4AKQdZCr6qxuWnjWoSW6I44hPL5e7tnvREx2Ns0WwNc="; + # Remove when https://github.com/simonw/llm/pull/1525 gets merged. + ./do-not-commit-inside-content_hash-embeddings.patch + (fetchpatch2 { + url = "https://github.com/simonw/llm/commit/67adad2c10be5c1898e3e1a664adb573f5d032cf.patch"; + hash = "sha256-7+sBQvef94ZTUrqNKVzHzjFADNj1KNzA2tbGs5btwNA="; }) ]; @@ -265,7 +263,7 @@ let meta = { homepage = "https://github.com/simonw/llm"; description = "Access large language models from the command-line"; - changelog = "https://github.com/simonw/llm/releases/tag/${src.tag}"; + changelog = "https://github.com/simonw/llm/releases/tag/${finalAttrs.src.tag}"; license = lib.licenses.asl20; mainProgram = "llm"; maintainers = with lib.maintainers; [ @@ -274,6 +272,6 @@ let philiptaron ]; }; - }; + }); in llm diff --git a/pkgs/development/python-modules/llm/do-not-commit-inside-content_hash-embeddings.patch b/pkgs/development/python-modules/llm/do-not-commit-inside-content_hash-embeddings.patch new file mode 100644 index 000000000000..003786de207a --- /dev/null +++ b/pkgs/development/python-modules/llm/do-not-commit-inside-content_hash-embeddings.patch @@ -0,0 +1,66 @@ +From db03b44068e71f5266b720eb68ecae50e3e14303 Mon Sep 17 00:00:00 2001 +From: Ewerton Silva +Date: Sat, 11 Jul 2026 23:50:58 -0300 +Subject: [PATCH] fix: do not commit inside the content_hash embeddings + migration + +--- + llm/embeddings_migrations.py | 21 ++++++++++----------- + tests/test_migrate.py | 12 ++++++++++++ + 2 files changed, 22 insertions(+), 11 deletions(-) + +diff --git a/llm/embeddings_migrations.py b/llm/embeddings_migrations.py +index 96444bd65..595a692d9 100644 +--- a/llm/embeddings_migrations.py ++++ b/llm/embeddings_migrations.py +@@ -62,17 +62,16 @@ def random_md5(): + db.conn.create_function("temp_md5", 1, md5) + db.conn.create_function("temp_random_md5", 0, random_md5) + +- with db.conn: +- db.execute(""" +- update embeddings +- set content_hash = temp_md5(content) +- where content is not null +- """) +- db.execute(""" +- update embeddings +- set content_hash = temp_random_md5() +- where content is null +- """) ++ db.execute(""" ++ update embeddings ++ set content_hash = temp_md5(content) ++ where content is not null ++ """) ++ db.execute(""" ++ update embeddings ++ set content_hash = temp_random_md5() ++ where content is null ++ """) + + db["embeddings"].create_index(["content_hash"]) + +diff --git a/tests/test_migrate.py b/tests/test_migrate.py +index 705021100..e74b1554b 100644 +--- a/tests/test_migrate.py ++++ b/tests/test_migrate.py +@@ -117,6 +117,18 @@ def test_migrations_for_embeddings(): + assert db["embeddings"].foreign_keys[0].other_table == "collections" + + ++@pytest.mark.skipif( ++ not hasattr(sqlite_utils.Database, "atomic"), ++ reason="sqlite-utils 4 and higher run each migration inside a transaction", ++) ++def test_embeddings_migrations_do_not_commit(): ++ # https://github.com/simonw/llm/issues/1523 ++ db = sqlite_utils.Database(memory=True) ++ for migration in embeddings_migrations.pending(db): ++ with db.atomic(): ++ migration.fn(db) ++ ++ + def test_backfill_content_hash(): + db = sqlite_utils.Database(memory=True) + # Run migrations up to but not including m004_store_content_hash diff --git a/pkgs/development/python-modules/luna-soc/default.nix b/pkgs/development/python-modules/luna-soc/default.nix index 6501a47440c0..9c702bf0f72d 100644 --- a/pkgs/development/python-modules/luna-soc/default.nix +++ b/pkgs/development/python-modules/luna-soc/default.nix @@ -26,6 +26,14 @@ buildPythonPackage rec { substituteInPlace pyproject.toml \ --replace-fail '"setuptools-git-versioning<2"' "" \ --replace-fail 'dynamic = ["version"]' 'version = "${version}"' + + # Read CSR field annotations from the class, not the instance, so amaranth-soc + # works on Python 3.14 (PEP 649). https://github.com/greatscottgadgets/luna-soc/issues/48 + substituteInPlace luna_soc/gateware/vendor/amaranth_soc/csr/reg.py \ + --replace-fail 'if hasattr(self, "__annotations__"):' \ + 'if getattr(type(self), "__annotations__", None):' \ + --replace-fail 'filter_fields(self.__annotations__)' \ + 'filter_fields(type(self).__annotations__)' ''; build-system = [ diff --git a/pkgs/development/python-modules/nvchecker/default.nix b/pkgs/development/python-modules/nvchecker/default.nix index 77f0fbf89911..1317b88aa8c0 100644 --- a/pkgs/development/python-modules/nvchecker/default.nix +++ b/pkgs/development/python-modules/nvchecker/default.nix @@ -2,7 +2,9 @@ lib, awesomeversion, buildPythonPackage, + cacert, docutils, + dulwich, fetchFromGitHub, flaky, installShellFiles, @@ -12,6 +14,7 @@ packaging, platformdirs, pycurl, + pygit2, pytest-asyncio, pytestCheckHook, pytest-httpbin, @@ -22,16 +25,16 @@ zstandard, }: -buildPythonPackage rec { +buildPythonPackage (finalAttrs: { pname = "nvchecker"; - version = "2.20"; + version = "2.21"; pyproject = true; src = fetchFromGitHub { owner = "lilydjwg"; repo = "nvchecker"; - tag = "v${version}"; - hash = "sha256-udwflm3C7C6Q7rSA0x0+8uf1F5quy2okf2IyZqKtA3E="; + tag = "v${finalAttrs.version}"; + hash = "sha256-XQrroiuDM9ISmfQLUbYIAzBOSYtO6q1MXqMfC3X8BUI="; }; __darwinAllowLocalNetworking = true; @@ -57,6 +60,12 @@ buildPythonPackage rec { htmlparser = [ lxml ]; rpmrepo = [ lxml ] ++ lib.optionals (pythonOlder "3.14") [ zstandard ]; jq = [ jq ]; + git_pygit2 = [ pygit2 ]; + git_dulwich = [ dulwich ]; + }; + + env = lib.optionalAttrs finalAttrs.doInstallCheck { + SSL_CERT_FILE = "${cacert}/etc/ssl/certs/ca-bundle.crt"; }; nativeCheckInputs = [ @@ -64,7 +73,8 @@ buildPythonPackage rec { pytest-asyncio pytest-httpbin pytestCheckHook - ]; + ] + ++ builtins.concatLists (builtins.attrValues finalAttrs.passthru.optional-dependencies); postBuild = '' patchShebangs docs/myrst2man.py @@ -84,8 +94,8 @@ buildPythonPackage rec { meta = { description = "New version checker for software"; homepage = "https://github.com/lilydjwg/nvchecker"; - changelog = "https://github.com/lilydjwg/nvchecker/releases/tag/${src.tag}"; + changelog = "https://github.com/lilydjwg/nvchecker/releases/tag/${finalAttrs.src.tag}"; license = lib.licenses.mit; maintainers = with lib.maintainers; [ mdaniels5757 ]; }; -} +}) diff --git a/pkgs/development/python-modules/sqlite-migrate/default.nix b/pkgs/development/python-modules/sqlite-migrate/default.nix index 7aea7adb1bbf..bf6f670e1d75 100644 --- a/pkgs/development/python-modules/sqlite-migrate/default.nix +++ b/pkgs/development/python-modules/sqlite-migrate/default.nix @@ -1,23 +1,30 @@ { lib, buildPythonPackage, - fetchPypi, + fetchFromGitHub, pytestCheckHook, setuptools, + uv-build, sqlite-utils, }: -buildPythonPackage rec { +buildPythonPackage (finalAttrs: { pname = "sqlite-migrate"; - version = "0.1b0"; + version = "0.2"; pyproject = true; + __structuredAttrs = true; - src = fetchPypi { - inherit pname version; - hash = "sha256-jVArPKS5xF5WASvTXAPSMjXwgjyXbUzpQMu0DjMIfe0="; + src = fetchFromGitHub { + owner = "simonw"; + repo = "sqlite-migrate"; + tag = finalAttrs.version; + hash = "sha256-0fU3yOujqc4mZS4XcsM9xH2iK9fFX5MUsmuc/o+I+nY="; }; - nativeBuildInputs = [ setuptools ]; + build-system = [ + setuptools + uv-build + ]; propagatedBuildInputs = [ sqlite-utils ]; @@ -28,8 +35,8 @@ buildPythonPackage rec { meta = { description = "Simple database migration system for SQLite, based on sqlite-utils"; homepage = "https://github.com/simonw/sqlite-migrate"; - changelog = "https://github.com/simonw/sqlite-migrate/releases/tag/${version}"; + changelog = "https://github.com/simonw/sqlite-migrate/releases/tag/${finalAttrs.version}"; license = lib.licenses.asl20; maintainers = with lib.maintainers; [ aldoborrero ]; }; -} +}) diff --git a/pkgs/development/python-modules/sqlite-utils/default.nix b/pkgs/development/python-modules/sqlite-utils/default.nix index acc78be8aea7..b60e68605e07 100644 --- a/pkgs/development/python-modules/sqlite-utils/default.nix +++ b/pkgs/development/python-modules/sqlite-utils/default.nix @@ -1,7 +1,7 @@ { lib, buildPythonPackage, - fetchPypi, + fetchFromGitHub, click, click-default-group, python-dateutil, @@ -15,17 +15,19 @@ sqlite-utils, setuptools, }: -buildPythonPackage rec { +buildPythonPackage (finalAttrs: { pname = "sqlite-utils"; - version = "3.39"; + version = "4.1.1"; pyproject = true; + __structuredAttrs = true; build-system = [ setuptools ]; - src = fetchPypi { - inherit version; - pname = "sqlite_utils"; - hash = "sha256-v6Lqwps+PrXJZHKDeXUn/rz079Spu7Mdl5oUoR75280="; + src = fetchFromGitHub { + owner = "simonw"; + repo = "sqlite-utils"; + tag = finalAttrs.version; + hash = "sha256-igf4d+5iyC+gYb9TL2JCNzTmTrCgRdR9gscTcfslDng="; }; dependencies = [ @@ -51,11 +53,11 @@ buildPythonPackage rec { description = "Python CLI utility and library for manipulating SQLite databases"; mainProgram = "sqlite-utils"; homepage = "https://github.com/simonw/sqlite-utils"; - changelog = "https://github.com/simonw/sqlite-utils/releases/tag/${version}"; + changelog = "https://github.com/simonw/sqlite-utils/releases/tag/${finalAttrs.version}"; license = lib.licenses.asl20; maintainers = with lib.maintainers; [ meatcar techknowlogick ]; }; -} +}) diff --git a/pkgs/development/python-modules/textacy/default.nix b/pkgs/development/python-modules/textacy/default.nix index 4fbaf9486083..651bee904baa 100644 --- a/pkgs/development/python-modules/textacy/default.nix +++ b/pkgs/development/python-modules/textacy/default.nix @@ -1,6 +1,8 @@ { lib, buildPythonPackage, + fetchFromGitHub, + setuptools, cachetools, cytoolz, fetchPypi, @@ -10,7 +12,6 @@ matplotlib, networkx, numpy, - pyemd, pyphen, pytestCheckHook, requests, @@ -20,26 +21,29 @@ tqdm, }: -buildPythonPackage rec { +buildPythonPackage (finalAttrs: { pname = "textacy"; version = "0.13.0"; pyproject = true; + __structuredAttrs = true; - src = fetchPypi { - inherit pname version; - hash = "sha256-a+AkSMCPx9fE7fhSiQBuOaSlPvdHIB/yS2dcZS9AxoY="; + src = fetchFromGitHub { + owner = "chartbeat-labs"; + repo = "textacy"; + tag = finalAttrs.version; + hash = "sha256-QVxC9oV1X5ifQ9VVYissppni1A8LACz/FVgaoG5/GFU="; }; - propagatedBuildInputs = [ + build-system = [ setuptools ]; + + dependencies = [ cachetools cytoolz floret jellyfish joblib - matplotlib networkx numpy - pyemd pyphen requests scikit-learn @@ -48,6 +52,10 @@ buildPythonPackage rec { tqdm ]; + optional-dependencies = { + vis = [ matplotlib ]; + }; + nativeCheckInputs = [ pytestCheckHook ]; enabledTestPaths = [ @@ -64,6 +72,8 @@ buildPythonPackage rec { meta = { description = "Higher-level text processing, built on spaCy"; homepage = "https://textacy.readthedocs.io/"; + changelog = "https://github.com/chartbeat-labs/textacy/releases/tag/${finalAttrs.src.tag}"; license = lib.licenses.asl20; + maintainers = [ ]; }; -} +}) diff --git a/pkgs/development/python-modules/uuid-utils/default.nix b/pkgs/development/python-modules/uuid-utils/default.nix index 0e76ff406aa3..e2e0b87c5573 100644 --- a/pkgs/development/python-modules/uuid-utils/default.nix +++ b/pkgs/development/python-modules/uuid-utils/default.nix @@ -7,21 +7,22 @@ rustPlatform, }: -buildPythonPackage rec { +buildPythonPackage (finalAttrs: { pname = "uuid-utils"; - version = "0.16.1"; + version = "0.17.0"; pyproject = true; + __structuredAttrs = true; src = fetchFromGitHub { owner = "aminalaee"; repo = "uuid-utils"; - tag = version; - hash = "sha256-5pGBc1+2Vx0nIwhLFBy/Mx5GLLzA7Oj4eWPPCfBV1v4="; + tag = finalAttrs.version; + hash = "sha256-AshQOXB6o1CMByRn9um8E2Y4sexyRu4W8H3NelFe1HM="; }; cargoDeps = rustPlatform.fetchCargoVendor { - inherit pname src version; - hash = "sha256-o9fmecoYGu+UR0/Km6sGq5buVo8qHKnBSuvvfogmkx0="; + inherit (finalAttrs) pname src version; + hash = "sha256-vf6w+oYH3tdxvV5TLSgZOAXlFypCe2swjkw25VWCqB8="; }; nativeBuildInputs = with rustPlatform; [ @@ -50,8 +51,8 @@ buildPythonPackage rec { meta = { description = "Python bindings to Rust UUID"; homepage = "https://github.com/aminalaee/uuid-utils"; - changelog = "https://github.com/aminalaee/uuid-utils/releases/tag/${src.tag}"; + changelog = "https://github.com/aminalaee/uuid-utils/releases/tag/${finalAttrs.src.tag}"; license = lib.licenses.bsd3; maintainers = with lib.maintainers; [ sarahec ]; }; -} +}) diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index ad1b970a11d6..6a7fff6ff86a 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -9077,10 +9077,6 @@ with pkgs; mopidy-ytmusic ; - mpg123 = callPackage ../applications/audio/mpg123 { - jack = libjack2; - }; - libmpg123 = mpg123.override { libOnly = true; withConplay = false; @@ -9336,6 +9332,11 @@ with pkgs; rusty-psn-gui = rusty-psn.override { withGui = true; }; + sable = callPackage ../by-name/ci/cinny/package.nix { + pname = "sable"; + cinny-unwrapped = sable-unwrapped; + }; + sweethome3d = recurseIntoAttrs ( (callPackage ../applications/misc/sweethome3d { }) // (callPackage ../applications/misc/sweethome3d/editors.nix {