Merge updates from master

This commit is contained in:
Repository mirror & CI
2026-04-07 21:02:43 +00:00
12 changed files with 297 additions and 5 deletions

View File

@@ -0,0 +1,143 @@
diff --git a/tests/conftest.py b/tests/conftest.py
index a2dd94355..4dfabc726 100644
--- a/tests/conftest.py
+++ b/tests/conftest.py
@@ -17,7 +17,7 @@ import pytest
from pytest_lazy_fixtures import lf
from redis.asyncio import Redis as AsyncRedis
from redis.client import Redis
-from time_machine import Coordinates, travel
+from time_machine import Traveller, travel
from litestar.logging import LoggingConfig
from litestar.middleware.session import SessionMiddleware
@@ -36,7 +36,7 @@ if TYPE_CHECKING:
from types import ModuleType
from pytest import FixtureRequest, MonkeyPatch
- from time_machine import Coordinates
+ from time_machine import Traveller
from litestar import Litestar
from litestar.types import (
@@ -266,7 +266,7 @@ def create_module(tmp_path: Path, monkeypatch: MonkeyPatch) -> Callable[[str], M
@pytest.fixture()
-def frozen_datetime() -> Generator[Coordinates, None, None]:
+def frozen_datetime() -> Generator[Traveller, None, None]:
with travel(datetime.utcnow, tick=False) as frozen:
yield frozen
diff --git a/tests/e2e/test_response_caching.py b/tests/e2e/test_response_caching.py
index 462302843..943162f16 100644
--- a/tests/e2e/test_response_caching.py
+++ b/tests/e2e/test_response_caching.py
@@ -21,7 +21,7 @@ from litestar.testing import TestClient, create_test_client
from litestar.types import HTTPScope
if TYPE_CHECKING:
- from time_machine import Coordinates
+ from time_machine import Traveller
T = TypeVar("T")
@@ -60,7 +60,7 @@ def test_default_cache_response(sync_to_thread: bool, mock: MagicMock) -> None:
assert mock.call_count == 1
-def test_handler_expiration(mock: MagicMock, frozen_datetime: "Coordinates") -> None:
+def test_handler_expiration(mock: MagicMock, frozen_datetime: "Traveller") -> None:
@get("/cached-local", cache=10)
async def handler() -> str:
return mock() # type: ignore[no-any-return]
@@ -78,7 +78,7 @@ def test_handler_expiration(mock: MagicMock, frozen_datetime: "Coordinates") ->
assert mock.call_count == 2
-def test_default_expiration(mock: MagicMock, frozen_datetime: "Coordinates") -> None:
+def test_default_expiration(mock: MagicMock, frozen_datetime: "Traveller") -> None:
@get("/cached-default", cache=True)
async def handler() -> str:
return mock() # type: ignore[no-any-return]
diff --git a/tests/unit/test_middleware/test_session/test_server_side_backend.py b/tests/unit/test_middleware/test_session/test_server_side_backend.py
index d9905ff45..cb291a588 100644
--- a/tests/unit/test_middleware/test_session/test_server_side_backend.py
+++ b/tests/unit/test_middleware/test_session/test_server_side_backend.py
@@ -11,7 +11,7 @@ from litestar.stores.memory import MemoryStore
from litestar.testing import TestClient
if TYPE_CHECKING:
- from time_machine import Coordinates
+ from time_machine import Traveller
from litestar.middleware.session.server_side import ServerSideSessionBackend
@@ -70,7 +70,7 @@ async def test_get_renew_on_access(
server_side_session_backend: "ServerSideSessionBackend",
session_data: bytes,
memory_store: MemoryStore,
- frozen_datetime: "Coordinates",
+ frozen_datetime: "Traveller",
) -> None:
server_side_session_backend.config.max_age = 1
server_side_session_backend.config.renew_on_access = True
@@ -121,7 +121,7 @@ async def test_max_age_expires(
server_side_session_backend: "ServerSideSessionBackend",
session_data: bytes,
memory_store: MemoryStore,
- frozen_datetime: "Coordinates",
+ frozen_datetime: "Traveller",
) -> None:
server_side_session_backend.config.max_age = 1
await server_side_session_backend.set("foo", session_data, memory_store)
diff --git a/tests/unit/test_stores.py b/tests/unit/test_stores.py
index 471ae754b..97c8f2db9 100644
--- a/tests/unit/test_stores.py
+++ b/tests/unit/test_stores.py
@@ -12,7 +12,7 @@ from unittest.mock import MagicMock, Mock, patch
import pytest
from _pytest.fixtures import FixtureRequest
from pytest_mock import MockerFixture
-from time_machine import Coordinates
+from time_machine import Traveller
from litestar.exceptions import ImproperlyConfiguredException
from litestar.stores.file import FileStore
@@ -69,7 +69,7 @@ async def test_set_special_chars_key(store: Store, key: str) -> None:
assert await store.get(key) == value
-async def test_expires(store: Store, frozen_datetime: Coordinates) -> None:
+async def test_expires(store: Store, frozen_datetime: Traveller) -> None:
await store.set("foo", b"bar", expires_in=1)
frozen_datetime.shift(2)
@@ -87,7 +87,7 @@ async def test_expires(store: Store, frozen_datetime: Coordinates) -> None:
@pytest.mark.flaky(reruns=5)
@pytest.mark.parametrize("renew_for", [10, timedelta(seconds=10)])
-async def test_get_and_renew(store: Store, renew_for: int | timedelta, frozen_datetime: Coordinates) -> None:
+async def test_get_and_renew(store: Store, renew_for: int | timedelta, frozen_datetime: Traveller) -> None:
if isinstance(store, (RedisStore, ValkeyStore)):
pytest.skip()
@@ -176,7 +176,7 @@ async def test_delete_all(store: Store) -> None:
assert await store.get(key) is None
-async def test_expires_in(store: Store, frozen_datetime: Coordinates) -> None:
+async def test_expires_in(store: Store, frozen_datetime: Traveller) -> None:
if not isinstance(store, (RedisStore, ValkeyStore)):
pytest.xfail("bug in FileStore and MemoryStore")
@@ -460,7 +460,7 @@ async def test_namespaced_store_delete_all_propagates_down(namespaced_store: Nam
@pytest.mark.parametrize("store_fixture", ["memory_store", "file_store"])
-async def test_memory_delete_expired(store_fixture: str, request: FixtureRequest, frozen_datetime: Coordinates) -> None:
+async def test_memory_delete_expired(store_fixture: str, request: FixtureRequest, frozen_datetime: Traveller) -> None:
store = request.getfixturevalue(store_fixture)
expect_expired: list[str] = []

View File

@@ -55,9 +55,10 @@ BDEPEND="
dev-python/psycopg:0[${PYTHON_USEDEP}]
dev-python/pydantic-extra-types[${PYTHON_USEDEP}]
dev-python/redis[${PYTHON_USEDEP}]
dev-python/sqlalchemy[${PYTHON_USEDEP}]
dev-python/starlette[${PYTHON_USEDEP}]
dev-python/structlog[${PYTHON_USEDEP}]
<dev-python/time-machine-3[${PYTHON_USEDEP}]
>=dev-python/time-machine-3[${PYTHON_USEDEP}]
dev-python/trio[${PYTHON_USEDEP}]
dev-python/uvicorn[${PYTHON_USEDEP}]
)
@@ -104,6 +105,10 @@ EPYTEST_IGNORE=(
# Avoid the dependency
"tests/unit/test_contrib/test_opentelemetry.py"
"tests/unit/test_plugins/test_prometheus.py"
# appears to require installing litestar properly prior
"tests/e2e/test_routing/test_path_mounting.py"
"tests/e2e/test_routing/test_path_resolution.py"
)
EPYTEST_DESELECT=(
# Requires docker
@@ -144,6 +149,8 @@ distutils_enable_tests pytest
PATCHES=(
# valkey not packaged
"${FILESDIR}"/litestar-2.19.0-no-valkey.patch
"${FILESDIR}"/litestar-2.21-timemachine-3.patch
)
python_test() {

View File

@@ -1,2 +1,4 @@
DIST minify-2.24.11-deps.tar.xz 686588 BLAKE2B d8e8a5f9b9f818eec983e449f4ea2822f7111a599dac92111d01d7ac8d14ff86ba7c73b95949754a7ff66ed23c2fe1f3e91cb7e69c9381c240a12a319e3a15eb SHA512 0a92817442011f0e53f589bb20c683d7577c131434e21f0837424677cc26fa3380f5eb6a08e30d547a23db4489c0260a86d083109212ff23e518d4f339f70999
DIST minify-2.24.11.tar.gz 7769853 BLAKE2B f2dcefc2d804f806c69d619f1ce5775235503317199396f14bf4346dd53a0048eef3e42c0cb6754e7c40dbe56adbee9a3a2259eb679bb6fe3954b6f58d4179f4 SHA512 9fc5bf7daf9f5ccd88c01af0312bf366a2dbd21136b43592a5cf32d0d91ff63a4a8a4152dd5ae3589183ac5091aea5db893806f8c00bdd6a19e6820b49979544
DIST minify-2.24.12-deps.tar.xz 3343168 BLAKE2B c9d3195437824133f91ea71f59618b3c57a074e53ea61a0f59691daa6c98fbadc5209f2816b86a04497bf54de56cedbb4d5538326a21ff91b92a5df6ce7e1656 SHA512 03b2f6db9f6e1c88483f3073fd385e9808d436bcdab6f7054b7efa87e318db8aaaca8342bca6382976edbb0837b225ee6a789326fbb3c735d24a176ec26b53c9
DIST minify-2.24.12.tar.gz 7769257 BLAKE2B edc90f7b93dc1156acc528695a7a0de55687f1737ada10054befa0179ab7fc208924d71f2d9dc8bb08d9ee6a44e2ceeef87bd3287ea4c77956c7ff91c62df486 SHA512 360c6125160a1b6f3b9a9f5a36300fef364e64008e663723470a7849e2c35ea8e067ddb1a4f3f6a3ae685e230fad9779cabd62057e4d0431b6b76a96e84bf7e6

View File

@@ -0,0 +1,48 @@
# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit bash-completion-r1 go-module
DESCRIPTION="Go minifier for web formats"
HOMEPAGE="https://go.tacodewolff.nl/minify"
if [[ ${PV} == 9999 ]]; then
inherit git-r3
EGIT_REPO_URI="https://github.com/tdewolff/minify.git"
else
SRC_URI="
https://github.com/tdewolff/minify/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz
https://github.com/tdewolff/minify/releases/download/v${PV}/${PN}-deps.tar.xz -> ${P}-deps.tar.xz
"
KEYWORDS="~amd64"
RESTRICT="mirror"
fi
LICENSE="MIT"
SLOT="0"
src_unpack() {
if [[ "${PV}" == 9999 ]] ; then
git-r3_src_unpack
go-module_live_vendor
else
default
fi
}
src_compile() {
ego build -trimpath -buildmode=pie -mod=readonly -modcacherw -ldflags \
"-s -w -linkmode external -extldflags \"${LDFLAGS}\" -X 'main.Version=${PV}'" \
-o _minify ./cmd/minify
}
src_test() {
ego test ./...
}
src_install() {
newbin _minify minify
newbashcomp cmd/minify/bash_completion minify
}

View File

@@ -0,0 +1,48 @@
# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit bash-completion-r1 go-module
DESCRIPTION="Go minifier for web formats"
HOMEPAGE="https://go.tacodewolff.nl/minify"
if [[ ${PV} == 9999 ]]; then
inherit git-r3
EGIT_REPO_URI="https://github.com/tdewolff/minify.git"
else
SRC_URI="
https://github.com/tdewolff/minify/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz
https://github.com/tdewolff/minify/releases/download/v${PV}/${PN}-deps.tar.xz -> ${P}-deps.tar.xz
"
KEYWORDS="~amd64"
RESTRICT="mirror"
fi
LICENSE="MIT"
SLOT="0"
src_unpack() {
if [[ "${PV}" == 9999 ]] ; then
git-r3_src_unpack
go-module_live_vendor
else
default
fi
}
src_compile() {
ego build -trimpath -buildmode=pie -mod=readonly -modcacherw -ldflags \
"-s -w -linkmode external -extldflags \"${LDFLAGS}\" -X 'main.Version=${PV}'" \
-o _minify ./cmd/minify
}
src_test() {
ego test ./...
}
src_install() {
newbin _minify minify
newbashcomp cmd/minify/bash_completion minify
}

View File

@@ -10,6 +10,7 @@
<flag name="rocm">Build a HIP (ROCm) backend</flag>
<flag name="wmma">Use rocWMMA to enhance flash attention performance</flag>
<flag name="openblas">Build an OpenBLAS backend</flag>
<flag name="webm">Support the webm audiovisual media file format</flag>
</use>
<maintainer type="person">
<email>candrews@gentoo.org</email>

View File

@@ -24,7 +24,7 @@ LICENSE="MIT"
SLOT="0"
CPU_FLAGS_X86=( avx avx2 f16c )
IUSE="openblas blis rocm cuda opencl vulkan flexiblas webp wmma"
IUSE="openblas blis rocm cuda opencl vulkan flexiblas webm webp wmma"
REQUIRED_USE="
?? (
@@ -90,6 +90,8 @@ src_configure() {
-DSD_OPENCL=$(usex opencl)
-DSD_WEBP=$(usex webp)
-DSD_USE_SYSTEM_WEBP=$(usex webp)
-DSD_WEBM=$(usex webm)
-DSD_VULKAN=$(usex vulkan)
# avoid clashing with whisper.cpp

View File

@@ -0,0 +1 @@
DIST openpgp-keys-mullvad-browser-bin-2024.asc 6693 BLAKE2B 24e0ee6a4e22bfee7d5eda700f24834e6eaebc6abf8e8aa889349438ddb0f30b4293887e00e7a72aa6bbcd035f68d493c2ae7cac0efb809122c3c57e1d2e699d SHA512 18344b8eb3b61eb7fa44979f294f3e6c54a4afd2dfe40178c347c509560891953c51b74a795f6e5458518e70327d6334173d8c793e50ed7c768ace4c08a47554

View File

@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="person">
<email>strategictraveler@proton.me</email>
<name>strategictraveler</name>
</maintainer>
</pkgmetadata>

View File

@@ -0,0 +1,21 @@
# Copyright 2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
MY_PN="${PN#openpgp-keys-}"
DESCRIPTION="OpenPGP keys used to sign Mullvad Browser releases"
HOMEPAGE="https://github.com/mullvad/mullvad-browser/ https://mullvad.net/"
SRC_URI="https://openpgpkey.torproject.org/.well-known/openpgpkey/torproject.org/hu/kounek7zrdx745qydx6p59t9mqjpuhdf -> ${P}.asc"
S="${WORKDIR}"
LICENSE="public-domain"
SLOT="0"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
src_install() {
local files=( ${A} )
insinto /usr/share/openpgp-keys
newins - ${MY_PN}.asc < <(cat "${files[@]/#/${DISTDIR}/}" || die)
}

View File

@@ -1 +1,2 @@
DIST mullvad-browser-bin-15.0.8.tar.xz 116966912 BLAKE2B 06501805b2759b06a7804d9d9997c0463194dc3821b1ee60177e5e03582a69e0c8d9efd4fda238ec4e0d3d69987a0754e77fe55324f18cb30a5ac8c27c173785 SHA512 ea4e29fe1d6b13cb9892a4ff1154673419edf36bf515d7ce356249e20a91e2b15136fe9c01344f15d5f7ffe424e41dec563516a1724e18c96d9dc7bb1786f6ef
DIST mullvad-browser-bin-15.0.9.tar.xz 116863208 BLAKE2B 7ca85a69797b6573438ff8c5c85c3e6d32676da64cb26639b90504a0675fd335a983b93dd10e3d1802bf53d67f918316c573665ca5b217fc539cf59dafab005c SHA512 5080e45a43ee56f36db4c114760c5b81464e3250254413c3d3e07fd8d50d6b567c2281e26dd60ecf960f52b95b8365ec67698c5088b49d6a980b12b0832b44a8
DIST mullvad-browser-bin-15.0.9.tar.xz.asc 833 BLAKE2B a7ae131a4ab66ddb1d92c1b5093f7b0db7489184e39e7c05934fa2faf8076ba5ca7e482224959ddc383ec4c31af9f3577c6e433cbbc25f07533f3349391bd6e8 SHA512 cf2cee150c89b96024ddb49ee4637f595065e3ec10d082ac165d7135d2f4e87f93aabfd15b76fa1304fc0f397e97077a26d08136190470876cebeb97e6005d8e

View File

@@ -3,11 +3,15 @@
EAPI=8
inherit desktop optfeature xdg
inherit desktop optfeature xdg verify-sig
DESCRIPTION="The Mullvad Browser is developed to minimize tracking and fingerprinting."
HOMEPAGE="https://github.com/mullvad/mullvad-browser/ https://mullvad.net/"
SRC_URI="https://github.com/mullvad/mullvad-browser/releases/download/${PV}/mullvad-browser-linux-x86_64-${PV}.tar.xz -> ${P}.tar.xz"
SRC_NAME="https://github.com/mullvad/mullvad-browser/releases/download/${PV}/mullvad-browser-linux-x86_64-${PV}.tar.xz"
SRC_URI="
${SRC_NAME} -> ${P}.tar.xz
verify-sig? ( ${SRC_NAME}.asc -> ${P}.tar.xz.asc )
"
S="${WORKDIR}"
LICENSE="MPL-2.0"
@@ -44,6 +48,11 @@ RDEPEND="
x11-libs/libXt
x11-libs/libXtst
"
BDEPEND="
verify-sig? ( sec-keys/openpgp-keys-mullvad-browser-bin )
"
VERIFY_SIG_OPENPGP_KEY_PATH=${BROOT}/usr/share/openpgp-keys/mullvad-browser-bin.asc
QA_PREBUILT="*"