mirror of
https://github.com/NixOS/nixpkgs.git
synced 2026-07-18 14:41:18 +00:00
Merge branch 'staging-next' into staging
This commit is contained in:
@@ -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],
|
||||
)
|
||||
|
||||
@@ -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}
|
||||
|
||||
|
||||
@@ -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
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
@@ -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
|
||||
{
|
||||
|
||||
@@ -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 = {
|
||||
|
||||
@@ -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=",
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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 = [
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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";
|
||||
};
|
||||
}
|
||||
})
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
package.nix
|
||||
11
pkgs/by-name/fo/forgejo/lts.nix
Normal file
11
pkgs/by-name/fo/forgejo/lts.nix
Normal file
@@ -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"
|
||||
];
|
||||
}
|
||||
@@ -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"
|
||||
|
||||
@@ -80,6 +80,9 @@ rustPlatform.buildRustPackage (finalAttrs: {
|
||||
fontconfig
|
||||
libxcb
|
||||
libxkbcommon
|
||||
]
|
||||
++ lib.optionals stdenv.hostPlatform.isDarwin [
|
||||
git
|
||||
];
|
||||
|
||||
cargoBuildFlags = [
|
||||
|
||||
@@ -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; };
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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}");
|
||||
|
||||
@@ -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/";
|
||||
|
||||
@@ -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/";
|
||||
|
||||
@@ -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 = [
|
||||
|
||||
@@ -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 =
|
||||
@@ -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 = [
|
||||
|
||||
@@ -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 = ''
|
||||
|
||||
@@ -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 = [
|
||||
|
||||
@@ -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 ];
|
||||
|
||||
|
||||
80
pkgs/by-name/sa/sable-unwrapped/package.nix
Normal file
80
pkgs/by-name/sa/sable-unwrapped/package.nix
Normal file
@@ -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
|
||||
];
|
||||
};
|
||||
})
|
||||
@@ -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 = [
|
||||
|
||||
@@ -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 = [
|
||||
|
||||
@@ -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" ];
|
||||
|
||||
@@ -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 ];
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -118,6 +118,7 @@ rec {
|
||||
"armv6l-netbsd"
|
||||
"mipsel-netbsd"
|
||||
"riscv64-netbsd"
|
||||
"riscv32-none"
|
||||
"x86_64-redox"
|
||||
"wasm32-wasi"
|
||||
];
|
||||
|
||||
@@ -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 = ''
|
||||
|
||||
112
pkgs/development/python-modules/cynthion/build_gateware.py
Normal file
112
pkgs/development/python-modules/cynthion/build_gateware.py
Normal file
@@ -0,0 +1,112 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
# Builds the FPGA bitstreams `cynthion flash` needs, one set per revision, into
|
||||
# assets/<CynthionPlatformRevXDY>/{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()))
|
||||
@@ -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";
|
||||
|
||||
54
pkgs/development/python-modules/cynthion/moondancer.nix
Normal file
54
pkgs/development/python-modules/cynthion/moondancer.nix
Normal file
@@ -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" ];
|
||||
};
|
||||
}
|
||||
@@ -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 ];
|
||||
};
|
||||
}
|
||||
})
|
||||
|
||||
@@ -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 ];
|
||||
};
|
||||
}
|
||||
})
|
||||
|
||||
@@ -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,
|
||||
},
|
||||
{
|
||||
@@ -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
|
||||
|
||||
@@ -0,0 +1,66 @@
|
||||
From db03b44068e71f5266b720eb68ecae50e3e14303 Mon Sep 17 00:00:00 2001
|
||||
From: Ewerton Silva <ewertoncom297@gmail.com>
|
||||
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
|
||||
@@ -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 = [
|
||||
|
||||
@@ -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 ];
|
||||
};
|
||||
}
|
||||
})
|
||||
|
||||
@@ -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 ];
|
||||
};
|
||||
}
|
||||
})
|
||||
|
||||
@@ -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
|
||||
];
|
||||
};
|
||||
}
|
||||
})
|
||||
|
||||
@@ -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 = [ ];
|
||||
};
|
||||
}
|
||||
})
|
||||
|
||||
@@ -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 ];
|
||||
};
|
||||
}
|
||||
})
|
||||
|
||||
@@ -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 {
|
||||
|
||||
Reference in New Issue
Block a user