librewolf launcher skips gvfs (GIO_USE_VFS=local); bump stale meta pins
Some checks are pending
dependency freshness / dependencies on newest stable (push) Waiting to run
md-naming / markdown naming convention (push) Waiting to run
Pre-commit checks / pre-commit (${{ matrix.group }}) (mypy, mypy) (push) Waiting to run
Pre-commit checks / pre-commit (${{ matrix.group }}) (pylint, pylint) (push) Waiting to run
Pre-commit checks / pre-commit (${{ matrix.group }}) (rest, ) (push) Waiting to run
Pre-commit checks / pre-commit (${{ matrix.group }}) (shellcheck, shellcheck) (push) Waiting to run
Python tests / test (push) Waiting to run
repo-contract / repo contract (push) Waiting to run
Shell tests / shell-tests (push) Waiting to run
Shell tests / lib-tests (push) Waiting to run
Shell tests / arch-tests (push) Waiting to run

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
Krzysztof Rudnicki 2026-11-01 18:02:06 +01:00
parent b6406b9353
commit cbafd63277
4 changed files with 59 additions and 18 deletions

View File

@ -0,0 +1,32 @@
{
"intent": "LibreWolf opens in seconds instead of ~4 min after login: it no longer waits on gvfs D-Bus calls that hit the 25 s timeout.",
"scope": [
"linux_configuration/scripts/librewolf-local-gio.sh (symlinked as ~/.local/bin/librewolf)",
"meta/requirements.txt, meta/requirements-test.txt: stale pins that kept the Pre-commit CI baseline red",
"Non-goal: the .desktop entry (calls /usr/lib/librewolf/librewolf directly); launcher is PATH-based"
],
"changes": [
"PATH wrapper exec's /usr/bin/librewolf with GIO_USE_VFS=local, same pattern as krita-scaled.sh",
"anthropic 2.1.0->2.3.0 (CI finding) plus 17 other patch/minor pins bumped to newest stable"
],
"verification": [
{
"command": "check_librewolf_gio.sh (Xvfb, throwaway profile, reads /proc/<pid>/environ)",
"result": "pass",
"evidence": "wrapper on PATH: PASS; /usr/bin/librewolf only: FAIL: GIO_USE_VFS not set; user confirmed real launch is fast"
},
{
"command": "scripts/check_dependency_freshness.sh meta/requirements.txt meta/requirements-test.txt && uv pip compile -p 3.14 both",
"result": "pass",
"evidence": "exit=0, no findings; RESOLVES"
}
],
"risks": [
"GTK dialogs inside LibreWolf lose gvfs URIs (smb://, sftp://)",
"Minor bumps (flake8 7.5, pyflakes 4.1, prospector 1.20, python-kasa 0.12) may surface new lint findings"
],
"rollback": [
"rm ~/.local/bin/librewolf restores /usr/bin/librewolf; git revert for the pins",
"After rollback: `command -v librewolf` prints /usr/bin/librewolf"
]
}

View File

@ -0,0 +1,9 @@
#!/usr/bin/env bash
#
# LibreWolf launcher (shadows /usr/bin/librewolf on PATH).
# GIO_USE_VFS=local -> GIO skips gvfs entirely. Right after login gvfs's
# D-Bus calls can hang for the 25 s D-Bus timeout each; LibreWolf made ~9 of
# them serially and took ~4 min to open (2026-11-01). Cost: GTK dialogs lose
# gvfs URIs (smb://, sftp://), which LibreWolf never needed.
#
exec env GIO_USE_VFS=local /usr/bin/librewolf "$@"

View File

@ -21,7 +21,7 @@
# suite itself fails loudly here on a missing import. # suite itself fails loudly here on a missing import.
# ============================================================================== # ==============================================================================
anthropic==2.1.0 anthropic==2.3.0
beautifulsoup4==4.15.0 beautifulsoup4==4.15.0
coverage==7.17.0 coverage==7.17.0
defusedxml==0.7.1 defusedxml==0.7.1
@ -29,7 +29,7 @@ genanki==0.13.1
markdownify==1.2.3 markdownify==1.2.3
numpy==2.5.4 numpy==2.5.4
pillow==13.0.0 pillow==13.0.0
pytest==9.1.1 pytest==9.2.0
pytest-cov==7.1.0 pytest-cov==7.1.0
pytest-randomly==5.0.0 pytest-randomly==5.0.0
pytest-sugar==1.1.1 pytest-sugar==1.1.1

View File

@ -22,10 +22,10 @@ dead==2.1.0
defusedxml==0.7.1 defusedxml==0.7.1
docformatter==1.7.8 docformatter==1.7.8
fixit==2.2.1 fixit==2.2.1
flake8==7.4.1 flake8==7.5.0
flake8-annotations==3.3.0 flake8-annotations==3.3.1
flake8-bandit==4.1.1 flake8-bandit==4.1.1
flake8-bugbear==26.9.30 flake8-bugbear==26.10.27
flake8-comprehensions==3.17.0 flake8-comprehensions==3.17.0
flake8-docstrings==1.7.0 flake8-docstrings==1.7.0
flake8-eradicate==1.5.0 flake8-eradicate==1.5.0
@ -39,7 +39,7 @@ gatelock @ git+https://github.com/kuhyx/utils@gatelock-v0.11.0#subdirectory=gate
genanki==0.13.1 genanki==0.13.1
geopandas==1.2.0 geopandas==1.2.0
howlongtobeatpy==1.0.24 howlongtobeatpy==1.0.24
hypothesis==6.170.9 hypothesis==6.170.14
importlib-metadata==10.1.0 importlib-metadata==10.1.0
interrogate==1.7.0 interrogate==1.7.0
# isort is deliberately not pinned: nothing here imports it (ruff's isort # isort is deliberately not pinned: nothing here imports it (ruff's isort
@ -50,43 +50,43 @@ lxml==6.1.3
markdownify==1.2.3 markdownify==1.2.3
matplotlib==3.11.2 matplotlib==3.11.2
mccabe==0.7.0 mccabe==0.7.0
mypy==2.4.0 mypy==2.4.1
numpy==2.5.4 numpy==2.5.4
opencv-python==5.0.0.93 opencv-python==5.0.0.93
pillow==13.0.0 pillow==13.0.0
pip-audit==2.10.1 pip-audit==2.10.1
pipdeptree==4.2.9 pipdeptree==4.2.13
pre-commit==4.7.0 pre-commit==4.7.0
prospector==1.19.1 prospector==1.20.0
pycodestyle==2.15.0 pycodestyle==2.15.0
pydocstyle==6.3.0 pydocstyle==6.3.0
pyflakes==4.0.3 pyflakes==4.1.0
pygame==2.6.1 pygame==2.6.1
pylint==4.1.3 pylint==4.1.3
pyright==1.1.414 pyright==1.1.414
pytest==9.1.1 pytest==9.2.0
pytest-cov==7.1.0 pytest-cov==7.1.0
pytest-randomly==5.0.0 pytest-randomly==5.0.0
pytest-sugar==1.1.1 pytest-sugar==1.1.1
pytest-timeout==2.4.0 pytest-timeout==2.4.0
pytest-xdist==3.8.0 pytest-xdist==3.8.0
python-chess==1.999 python-chess==1.999
python-kasa==0.11.0.1 python-kasa==0.12.0
pyupgrade==3.22.0 pyupgrade==3.22.0
radon==6.0.1 radon==6.0.1
reorder-python-imports==3.19.0 reorder-python-imports==3.19.0
requests==2.34.2 requests==2.34.2
rich==15.0.0 rich==15.0.0
ruff==0.17.2 ruff==0.17.3
# safety is deliberately not pinned: its only reference in this repo is a # safety is deliberately not pinned: its only reference in this repo is a
# commented-out pre-commit hook, and safety 3.8.1 declares `typer<0.26`, # commented-out pre-commit hook, and safety 3.8.1 declares `typer<0.26`,
# which would hold the typer this repo actually imports below latest. # which would hold the typer this repo actually imports below latest.
secretstorage==3.5.0 secretstorage==3.5.0
selenium==4.51.0 selenium==4.52.0
typer==0.27.3 typer==0.27.3
types-python-dateutil==2.9.0.20261021 types-python-dateutil==2.9.0.20261029
types-PyYAML==6.0.12.20260906 types-PyYAML==6.0.12.20261030
types-requests==2.33.0.20261006 types-requests==2.33.0.20261030
types-setuptools==84.0.0.20261006 types-setuptools==84.0.0.20261006
typing_extensions==4.16.0 # Self annotation on py310 target (session_autopsy store lock) typing_extensions==4.16.0 # Self annotation on py310 target (session_autopsy store lock)
websockets==17.3 websockets==17.4