Merge branch 'staging-next' into staging

This commit is contained in:
Vladimír Čunát 2025-06-08 22:01:33 +02:00
commit 01269b4503
No known key found for this signature in database
GPG key ID: E747DF1F9575A3AA
11 changed files with 76 additions and 185 deletions

View file

@ -294,17 +294,7 @@ stdenv.mkDerivation (
++ ++
lib.optional (lib.versionAtLeast release_version "15") lib.optional (lib.versionAtLeast release_version "15")
# Just like the `llvm-lit-cfg` patch, but for `polly`. # Just like the `llvm-lit-cfg` patch, but for `polly`.
(getVersionFile "llvm/polly-lit-cfg-add-libs-to-dylib-path.patch") (getVersionFile "llvm/polly-lit-cfg-add-libs-to-dylib-path.patch");
++
lib.optional (lib.versions.major release_version == "20")
# https://github.com/llvm/llvm-project/pull/139822 adds a commit which didn't get backported but is necessary for tests.
(
fetchpatch {
url = "https://github.com/llvm/llvm-project/commit/ff2e8f93f6090965e82d799af43f6dfef52baa66.patch";
stripLen = 1;
hash = "sha256-CZBTZKzi4cYkZhgTB5oXIo1UdEAArg9I4vR/m0upSRk=";
}
);
nativeBuildInputs = nativeBuildInputs =
[ [

View file

@ -31,7 +31,7 @@ let
"17.0.6".officialRelease.sha256 = "sha256-8MEDLLhocshmxoEBRSKlJ/GzJ8nfuzQ8qn0X/vLA+ag="; "17.0.6".officialRelease.sha256 = "sha256-8MEDLLhocshmxoEBRSKlJ/GzJ8nfuzQ8qn0X/vLA+ag=";
"18.1.8".officialRelease.sha256 = "sha256-iiZKMRo/WxJaBXct9GdAcAT3cz9d9pnAcO1mmR6oPNE="; "18.1.8".officialRelease.sha256 = "sha256-iiZKMRo/WxJaBXct9GdAcAT3cz9d9pnAcO1mmR6oPNE=";
"19.1.7".officialRelease.sha256 = "sha256-cZAB5vZjeTsXt9QHbP5xluWNQnAHByHtHnAhVDV0E6I="; "19.1.7".officialRelease.sha256 = "sha256-cZAB5vZjeTsXt9QHbP5xluWNQnAHByHtHnAhVDV0E6I=";
"20.1.5".officialRelease.sha256 = "sha256-WKfY+VvAsZEEc0xYgF6+MsXDXZz7haMU6bxqmUpaHuQ="; "20.1.6".officialRelease.sha256 = "sha256-PfCzECiCM+k0hHqEUSr1TSpnII5nqIxg+Z8ICjmMj0Y=";
"21.0.0-git".gitRelease = { "21.0.0-git".gitRelease = {
rev = "9e2684e4cfb0a7e30d5e49f812127d07cdda600d"; rev = "9e2684e4cfb0a7e30d5e49f812127d07cdda600d";
rev-version = "21.0.0-unstable-2025-06-06"; rev-version = "21.0.0-unstable-2025-06-06";

View file

@ -1,16 +0,0 @@
diff --git a/sqlite3.c b/sqlite3.c
index 80433f6..7c234f6 100644
--- a/sqlite3.c
+++ b/sqlite3.c
@@ -231721,6 +231721,11 @@ static int sessionChangesetApply(
}
}
+ {
+ int rc2 = sqlite3_exec(db, "PRAGMA defer_foreign_keys = 0", 0, 0, 0);
+ if( rc==SQLITE_OK ) rc = rc2;
+ }
+
if( (flags & SQLITE_CHANGESETAPPLY_NOSAVEPOINT)==0 ){
if( rc==SQLITE_OK ){
rc = sqlite3_exec(db, "RELEASE changeset_apply", 0, 0, 0);

View file

@ -1,11 +0,0 @@
diff --git a/sqlite3.pc.in b/sqlite3.pc.in
index a9f941b..3799671 100644
--- a/sqlite3.pc.in
+++ b/sqlite3.pc.in
@@ -9,5 +9,5 @@ Name: SQLite
Description: SQL database engine
Version: @PACKAGE_VERSION@
Libs: -L${libdir} -lsqlite3
-Libs.private: @LDFLAGS_MATH@ @LDFLAGS_ZLIB@ @LDFLAGS_ICU@
+Libs.private: @LIBS@
Cflags: -I${includedir}

View file

@ -6,7 +6,6 @@
zlib, zlib,
readline, readline,
ncurses, ncurses,
updateAutotoolsGnuConfigScriptsHook,
# for tests # for tests
python3Packages, python3Packages,
@ -19,6 +18,7 @@
interactive ? false, interactive ? false,
gitUpdater, gitUpdater,
buildPackages,
}: }:
let let
@ -27,31 +27,19 @@ in
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "sqlite${lib.optionalString interactive "-interactive"}"; pname = "sqlite${lib.optionalString interactive "-interactive"}";
version = "3.48.0"; version = "3.50.1";
# nixpkgs-update: no auto update # nixpkgs-update: no auto update
# NB! Make sure to update ./tools.nix src (in the same directory). # NB! Make sure to update ./tools.nix src (in the same directory).
src = fetchurl { src = fetchurl {
url = "https://sqlite.org/2025/sqlite-autoconf-${archiveVersion version}.tar.gz"; url = "https://sqlite.org/2025/sqlite-autoconf-${archiveVersion version}.tar.gz";
hash = "sha256-rJkvf8o5id5+0f6ZwWNj+Eh5TIwyoVja/U65J6LgL9U="; hash = "sha256-AKZRFNaXz6qP4GMCgddv0bd6/Nlc1eQOxqAsu62/6nE=";
}; };
docsrc = fetchurl { docsrc = fetchurl {
url = "https://sqlite.org/2025/sqlite-doc-${archiveVersion version}.zip"; url = "https://sqlite.org/2025/sqlite-doc-${archiveVersion version}.zip";
hash = "sha256-PcE3/NfGrLMmr2CmG5hE3RXTdzywXnqc4nbEH3E9dlo="; hash = "sha256-ZiIF9jOC5X0Qceqr08eQjdchFKggqOvPGg1xqdazgrQ=";
}; };
patches = [
# https://sqlite.org/forum/forumpost/3380558ea82c8a3e
# Can be removed with the next release.
# Test: pkgsStatic.gnupg
./Libs.private.patch
# https://sqlite.org/forum/forumpost/00f3aab3d3be9690
# https://sqlite.org/src/info/d7c07581
# TODO: Remove in 3.49.0
./3.48.0-fk-conflict-handling.patch
];
outputs = [ outputs = [
"bin" "bin"
"dev" "dev"
@ -61,8 +49,11 @@ stdenv.mkDerivation rec {
]; ];
separateDebugInfo = stdenv.hostPlatform.isLinux; separateDebugInfo = stdenv.hostPlatform.isLinux;
depsBuildBuild = [
buildPackages.stdenv.cc
];
nativeBuildInputs = [ nativeBuildInputs = [
updateAutotoolsGnuConfigScriptsHook
unzip unzip
]; ];
buildInputs = buildInputs =
@ -77,9 +68,21 @@ stdenv.mkDerivation rec {
patchShebangs configure patchShebangs configure
''; '';
configureFlags = [ "--enable-threadsafe" ] ++ lib.optional interactive "--enable-readline"; # sqlite relies on autosetup now; so many of the
# previously-understood flags are gone. They should instead be set
# on a per-output basis.
setOutputFlags = false;
env.NIX_CFLAGS_COMPILE = toString ([ configureFlags =
[
"--bindir=${placeholder "bin"}/bin"
"--includedir=${placeholder "dev"}/include"
"--libdir=${placeholder "out"}/lib"
]
++ lib.optional (!interactive) "--disable-readline"
++ lib.optional (stdenv.hostPlatform.isStatic) "--disable-shared";
env.NIX_CFLAGS_COMPILE = toString [
"-DSQLITE_ENABLE_COLUMN_METADATA" "-DSQLITE_ENABLE_COLUMN_METADATA"
"-DSQLITE_ENABLE_DBSTAT_VTAB" "-DSQLITE_ENABLE_DBSTAT_VTAB"
"-DSQLITE_ENABLE_JSON1" "-DSQLITE_ENABLE_JSON1"
@ -100,7 +103,7 @@ stdenv.mkDerivation rec {
"-DSQLITE_SECURE_DELETE" "-DSQLITE_SECURE_DELETE"
"-DSQLITE_MAX_VARIABLE_NUMBER=250000" "-DSQLITE_MAX_VARIABLE_NUMBER=250000"
"-DSQLITE_MAX_EXPR_DEPTH=10000" "-DSQLITE_MAX_EXPR_DEPTH=10000"
]); ];
# Test for features which may not be available at compile time # Test for features which may not be available at compile time
preBuild = '' preBuild = ''
@ -145,7 +148,7 @@ stdenv.mkDerivation rec {
}; };
updateScript = gitUpdater { updateScript = gitUpdater {
# No nicer place to look for patest version. # No nicer place to look for latest version.
url = "https://github.com/sqlite/sqlite.git"; url = "https://github.com/sqlite/sqlite.git";
# Expect tags like "version-3.43.0". # Expect tags like "version-3.43.0".
rev-prefix = "version-"; rev-prefix = "version-";

View file

@ -19,14 +19,14 @@ let
}: }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
inherit pname; inherit pname;
version = "3.48.0"; version = "3.50.1";
# nixpkgs-update: no auto update # nixpkgs-update: no auto update
src = src =
assert version == sqlite.version; assert version == sqlite.version;
fetchurl { fetchurl {
url = "https://sqlite.org/2025/sqlite-src-${archiveVersion version}.zip"; url = "https://sqlite.org/2025/sqlite-src-${archiveVersion version}.zip";
hash = "sha256-LXsDK2/f6MRCqoCfhQaHqB0GOB3uzXvjMSYB0oYS5kA="; hash = "sha256-kJBZd3PGCknK67PBrFfbYm+sTZfLUYkIFai1KaTZw9w=";
}; };
nativeBuildInputs = [ unzip ]; nativeBuildInputs = [ unzip ];

View file

@ -11,14 +11,14 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "aiohttp-fast-zlib"; pname = "aiohttp-fast-zlib";
version = "0.2.3"; version = "0.3.0";
pyproject = true; pyproject = true;
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "bdraco"; owner = "bdraco";
repo = "aiohttp-fast-zlib"; repo = "aiohttp-fast-zlib";
tag = "v${version}"; tag = "v${version}";
hash = "sha256-PQ44XFdaolxGQTwzssv1inOUAGAyYghS3SVLq4w5SoA="; hash = "sha256-N38eMxxovpBM3n0cb7glKyBQ9GD79uyFxq5L4pKv248=";
}; };
postPatch = '' postPatch = ''

View file

@ -8,7 +8,8 @@
isPyPy, isPyPy,
# build-system # build-system
cython, cython_3_1,
pkgconfig,
setuptools, setuptools,
# native dependencies # native dependencies
@ -30,8 +31,10 @@
brotlicffi, brotlicffi,
# tests # tests
blockbuster,
freezegun, freezegun,
gunicorn, gunicorn,
isal,
proxy-py, proxy-py,
pytest-codspeed, pytest-codspeed,
pytest-cov-stub, pytest-cov-stub,
@ -41,35 +44,34 @@
python-on-whales, python-on-whales,
re-assert, re-assert,
trustme, trustme,
zlib-ng,
}: }:
buildPythonPackage rec { buildPythonPackage rec {
pname = "aiohttp"; pname = "aiohttp";
version = "3.11.18"; version = "3.12.10";
pyproject = true; pyproject = true;
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "aio-libs"; owner = "aio-libs";
repo = "aiohttp"; repo = "aiohttp";
tag = "v${version}"; tag = "v${version}";
hash = "sha256-+vnrYdUz1Stti9XE99InAouKN5kfTSaOuEG9Anxb3gs="; hash = "sha256-ciZGOOfVXYoLzYNIkota3MXMRMxlztf+mFFo0y9r+Lk=";
}; };
patches = [
(replaceVars ./unvendor-llhttp.patch {
llhttpDev = lib.getDev llhttp;
llhttpLib = lib.getLib llhttp;
})
];
postPatch = '' postPatch = ''
rm -r vendor rm -r vendor
patchShebangs tools patchShebangs tools
touch .git # tools/gen.py uses .git to find the project root touch .git # tools/gen.py uses .git to find the project root
# don't install Cython using pip
substituteInPlace Makefile \
--replace-fail "cythonize: .install-cython" "cythonize:"
''; '';
build-system = [ build-system = [
cython cython_3_1
pkgconfig
setuptools setuptools
]; ];
@ -77,6 +79,12 @@ buildPythonPackage rec {
make cythonize make cythonize
''; '';
buildInputs = [
llhttp
];
env.AIOHTTP_USE_SYSTEM_DEPS = true;
dependencies = [ dependencies = [
aiohappyeyeballs aiohappyeyeballs
aiosignal aiosignal
@ -94,8 +102,10 @@ buildPythonPackage rec {
]; ];
nativeCheckInputs = [ nativeCheckInputs = [
blockbuster
freezegun freezegun
gunicorn gunicorn
isal
proxy-py proxy-py
pytest-codspeed pytest-codspeed
pytest-cov-stub pytest-cov-stub
@ -105,6 +115,7 @@ buildPythonPackage rec {
python-on-whales python-on-whales
re-assert re-assert
trustme trustme
zlib-ng
]; ];
disabledTests = disabledTests =
@ -117,6 +128,8 @@ buildPythonPackage rec {
"test_import_time" "test_import_time"
# racy # racy
"test_uvloop_secure_https_proxy" "test_uvloop_secure_https_proxy"
# Cannot connect to host example.com:443 ssl:default [Could not contact DNS servers]
"test_tcp_connector_ssl_shutdown_timeout_passed_to_create_connection"
] ]
# these tests fail with python310 but succeeds with 11+ # these tests fail with python310 but succeeds with 11+
++ lib.optionals isPy310 [ ++ lib.optionals isPy310 [
@ -145,7 +158,7 @@ buildPythonPackage rec {
''; '';
meta = with lib; { meta = with lib; {
changelog = "https://github.com/aio-libs/aiohttp/blob/v${version}/CHANGES.rst"; changelog = "https://docs.aiohttp.org/en/${src.tag}/changes.html";
description = "Asynchronous HTTP Client/Server for Python and asyncio"; description = "Asynchronous HTTP Client/Server for Python and asyncio";
license = licenses.asl20; license = licenses.asl20;
homepage = "https://github.com/aio-libs/aiohttp"; homepage = "https://github.com/aio-libs/aiohttp";

View file

@ -1,60 +0,0 @@
diff --git a/Makefile b/Makefile
index b0a3ef32..f36132c6 100644
--- a/Makefile
+++ b/Makefile
@@ -79,7 +79,7 @@ vendor/llhttp/node_modules: vendor/llhttp/package.json
generate-llhttp: .llhttp-gen
.PHONY: cythonize
-cythonize: .install-cython $(PYXS:.pyx=.c) aiohttp/_websocket/reader_c.c
+cythonize: $(PYXS:.pyx=.c) aiohttp/_websocket/reader_c.c
.install-deps: .install-cython $(PYXS:.pyx=.c) aiohttp/_websocket/reader_c.c $(call to-hash,$(CYS) $(REQS))
@python -m pip install -r requirements/dev.in -c requirements/dev.txt
diff --git a/aiohttp/_cparser.pxd b/aiohttp/_cparser.pxd
index c2cd5a92..9184ac60 100644
--- a/aiohttp/_cparser.pxd
+++ b/aiohttp/_cparser.pxd
@@ -1,7 +1,7 @@
from libc.stdint cimport int32_t, uint8_t, uint16_t, uint64_t
-cdef extern from "../vendor/llhttp/build/llhttp.h":
+cdef extern from "@llhttpDev@/include/llhttp.h":
struct llhttp__internal_s:
int32_t _index
diff --git a/setup.py b/setup.py
index 2f024e87..feebc638 100644
--- a/setup.py
+++ b/setup.py
@@ -17,13 +17,6 @@ if sys.implementation.name != "cpython":
NO_EXTENSIONS = True
-if IS_GIT_REPO and not (HERE / "vendor/llhttp/README.md").exists():
- print("Install submodules when building from git clone", file=sys.stderr)
- print("Hint:", file=sys.stderr)
- print(" git submodule update --init", file=sys.stderr)
- sys.exit(2)
-
-
# NOTE: makefile cythonizes all Cython modules
extensions = [
@@ -33,12 +26,11 @@ extensions = [
[
"aiohttp/_http_parser.c",
"aiohttp/_find_header.c",
- "vendor/llhttp/build/c/llhttp.c",
- "vendor/llhttp/src/native/api.c",
- "vendor/llhttp/src/native/http.c",
],
define_macros=[("LLHTTP_STRICT_MODE", 0)],
- include_dirs=["vendor/llhttp/build"],
+ include_dirs=["@llhttpDev@/include"],
+ library_dirs=["@llhttpLib@/lib"],
+ libraries=["llhttp"],
),
Extension("aiohttp._http_writer", ["aiohttp/_http_writer.c"]),
Extension("aiohttp._websocket.reader_c", ["aiohttp/_websocket/reader_c.c"]),

View file

@ -1,8 +1,8 @@
{ {
lib, lib,
stdenv,
buildPythonPackage, buildPythonPackage,
fetchPypi, fetchPypi,
fetchpatch,
pythonOlder, pythonOlder,
# build-system, dependencies # build-system, dependencies
@ -13,6 +13,7 @@
# tests # tests
cython, cython,
git,
pytestCheckHook, pytestCheckHook,
pytest-mock, pytest-mock,
}: }:
@ -28,6 +29,14 @@ buildPythonPackage rec {
hash = "sha256-xWqZ7J32aaQGYv5GlgMhr25LFBBsFNsihwnBYo4jhI0="; hash = "sha256-xWqZ7J32aaQGYv5GlgMhr25LFBBsFNsihwnBYo4jhI0=";
}; };
patches = [
(fetchpatch {
# TODO: Remove in 0.19.0
url = "https://github.com/mesonbuild/meson-python/commit/1e69e7a23f2b24d688dc4220e93de6f0e2bcf9d2.patch";
hash = "sha256-FC2ll/OrLV1R0CDB6UkrknVASJQ7rSU+sApdAk75x44=";
})
];
build-system = [ build-system = [
meson meson
ninja ninja
@ -42,58 +51,11 @@ buildPythonPackage rec {
nativeCheckInputs = [ nativeCheckInputs = [
cython cython
git
pytestCheckHook pytestCheckHook
pytest-mock pytest-mock
]; ];
disabledTests = [
# Tests require a Git checkout
"test_configure_data"
"test_contents"
"test_contents"
"test_contents_license_file"
"test_contents_subdirs"
"test_contents_unstaged"
"test_detect_wheel_tag_module"
"test_detect_wheel_tag_script"
"test_dynamic_version"
"test_editable_install"
"test_editable_verbose"
"test_editble_reentrant"
"test_entrypoints"
"test_executable_bit"
"test_executable_bit"
"test_generated_files"
"test_install_subdir"
"test_license_pep639"
"test_limited_api"
"test_link_library_in_subproject"
"test_local_lib"
"test_long_path"
"test_meson_build_metadata"
"test_pep621_metadata"
"test_pure"
"test_purelib_and_platlib"
"test_reproducible"
"test_rpath"
"test_scipy_like"
"test_sharedlib_in_package"
"test_symlinks"
"test_uneeded_rpath"
"test_user_args"
"test_vendored_meson"
];
# meson-python respectes MACOSX_DEPLOYMENT_TARGET, but compares it with the
# actual platform version during tests, which mismatches.
# https://github.com/mesonbuild/meson-python/issues/760
preCheck =
if stdenv.hostPlatform.isDarwin then
''
unset MACOSX_DEPLOYMENT_TARGET
''
else
null;
setupHooks = [ ./add-build-flags.sh ]; setupHooks = [ ./add-build-flags.sh ];
meta = { meta = {

View file

@ -3156,6 +3156,16 @@ self: super: with self; {
cython_0 = callPackage ../development/python-modules/cython/0.nix { }; cython_0 = callPackage ../development/python-modules/cython/0.nix { };
cython_3_1 = cython.overridePythonAttrs rec {
version = "3.1.1";
src = pkgs.fetchFromGitHub {
owner = "cython";
repo = "cython";
tag = version;
hash = "sha256-KdRYPH3Do3KntgqLGIUSeD6DjmXNdFjI2ZSszzMjF6k=";
};
};
cytoolz = callPackage ../development/python-modules/cytoolz { }; cytoolz = callPackage ../development/python-modules/cytoolz { };
dacite = callPackage ../development/python-modules/dacite { }; dacite = callPackage ../development/python-modules/dacite { };