8984 Commits

Author SHA1 Message Date
dependabot[bot]
02d5166a3b
[upd] pypi: Bump the minor group with 6 updates (#5293)
Bumps the minor group with 6 updates:

| Package | From | To |
| --- | --- | --- |
| [granian](https://github.com/emmett-framework/granian) | `2.5.4` | `2.5.5` |
| [certifi](https://github.com/certifi/python-certifi) | `2025.8.3` | `2025.10.5` |
| [tomli](https://github.com/hukkin/tomli) | `2.2.1` | `2.3.0` |
| [pylint](https://github.com/pylint-dev/pylint) | `3.3.8` | `3.3.9` |
| [wlc](https://github.com/WeblateOrg/wlc) | `1.15` | `1.16.1` |
| [granian[reload]](https://github.com/emmett-framework/granian) | `2.5.4` | `2.5.5` |


Updates `granian` from 2.5.4 to 2.5.5
- [Release notes](https://github.com/emmett-framework/granian/releases)
- [Commits](https://github.com/emmett-framework/granian/compare/v2.5.4...v2.5.5)

Updates `certifi` from 2025.8.3 to 2025.10.5
- [Commits](https://github.com/certifi/python-certifi/compare/2025.08.03...2025.10.05)

Updates `tomli` from 2.2.1 to 2.3.0
- [Changelog](https://github.com/hukkin/tomli/blob/master/CHANGELOG.md)
- [Commits](https://github.com/hukkin/tomli/compare/2.2.1...2.3.0)

Updates `pylint` from 3.3.8 to 3.3.9
- [Release notes](https://github.com/pylint-dev/pylint/releases)
- [Commits](https://github.com/pylint-dev/pylint/compare/v3.3.8...v3.3.9)

Updates `wlc` from 1.15 to 1.16.1
- [Release notes](https://github.com/WeblateOrg/wlc/releases)
- [Changelog](https://github.com/WeblateOrg/wlc/blob/main/CHANGES.rst)
- [Commits](https://github.com/WeblateOrg/wlc/compare/1.15...1.16.1)

Updates `granian[reload]` from 2.5.4 to 2.5.5
- [Release notes](https://github.com/emmett-framework/granian/releases)
- [Commits](https://github.com/emmett-framework/granian/compare/v2.5.4...v2.5.5)

---
updated-dependencies:
- dependency-name: granian
  dependency-version: 2.5.5
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: minor
- dependency-name: certifi
  dependency-version: 2025.10.5
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: minor
- dependency-name: tomli
  dependency-version: 2.3.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: minor
- dependency-name: pylint
  dependency-version: 3.3.9
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: minor
- dependency-name: wlc
  dependency-version: 1.16.1
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: minor
- dependency-name: granian[reload]
  dependency-version: 2.5.5
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: minor
2025-10-10 09:09:57 +02:00
Markus Heiser
954f0f62b4
[fix] startpage engine - SafeSearch works in reverse (#5290)
The Name of the option is *disable_family_filter* ->  we have to reverse the
meaning of the ascending safe-search filter level.

Closes: https://github.com/searxng/searxng/issues/5287

Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2025-10-09 16:06:46 +02:00
Markus Heiser
898fbe7bc2 [mod] ci: add cp3.14 (part 2)
Use stable version (remove `-dev` suffix).
Stop CI on error [1] / Don't ignore when 3.14 ends with ERROR.

[1] https://github.com/searxng/searxng/pull/5217

Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2025-10-08 13:47:22 +02:00
Markus Heiser
d16283d93a [fix:py3.14] using a non-empty mutable collection as default is unsafe
Starting with Python 3.14 msgspec reports::

    File "/share/searxng/searx/weather.py", line 261, in <module>
        class Temperature(msgspec.Struct, kw_only=True):
        ...<60 lines>...
                return template.format(value=val_str, unit=unit)
    TypeError: Using a non-empty mutable collection (['°C', '°F', 'K']) \
               as a default value is unsafe.\
               Instead configure a `default_factory` for this field.

The problem is solved by the fact that there are now global constants for the
units (BTW singular/plural names of the type definitions are fixed):

- TEMPERATURE_UNITS
- PRESSURE_UNITS
- WIND_SPEED_UNITS
- RELATIVE_HUMIDITY_UNITS
- COMPASS_POINTS
- COMPASS_UNITS

Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2025-10-08 13:47:22 +02:00
Markus Heiser
8fdc59a760 [fix:py3.14] Struct fields aren't discovered in Python 3.14
This is a temporary workaround for #5284 [1].  However, the problem must be
solved at a different level, in msgspec [2].

[1] https://github.com/searxng/searxng/issues/5284
[2] https://github.com/jcrist/msgspec/issues/847

Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2025-10-08 13:47:22 +02:00
Markus Heiser
d8d5de4d47
[fix] google scholar - detect CAPTCHA (HTTP redirects) (#5268)
In the case of .. response, for example, an HTTP 302 is returned by Google
Scholar::

    Our systems have detected unusual traffic from your computer
    network. Please try again later.

Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2025-10-06 10:12:38 +02:00
Markus Heiser
34eb32f418
[fix] ModuleNotFoundError: No module named 'lxml' (#5254)
When installing SearXNG (e.g.):

    pip install --use-pep517 --no-build-isolation -e .

An import exception is raised:

    ModuleNotFoundError: No module named 'lxml'

The ``setup.py`` file imports ``searx``, which in turn triggers various other
imports.  However, the name XPath is only needed for type checking.

Closes: https://github.com/searxng/searxng/issues/5177

Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2025-10-05 11:44:13 +02:00
dependabot[bot]
7bf65d68c2
[upd] pypi: Bump the minor group with 2 updates (#5274)
Bumps the minor group with 2 updates: [selenium](https://github.com/SeleniumHQ/Selenium) and [basedpyright](https://github.com/detachhead/basedpyright).


Updates `selenium` from 4.35.0 to 4.36.0
- [Release notes](https://github.com/SeleniumHQ/Selenium/releases)
- [Commits](https://github.com/SeleniumHQ/Selenium/compare/selenium-4.35.0...selenium-4.36.0)

Updates `basedpyright` from 1.31.5 to 1.31.6
- [Release notes](https://github.com/detachhead/basedpyright/releases)
- [Commits](https://github.com/detachhead/basedpyright/compare/v1.31.5...v1.31.6)

---
updated-dependencies:
- dependency-name: selenium
  dependency-version: 4.36.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: minor
- dependency-name: basedpyright
  dependency-version: 1.31.6
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: minor
2025-10-04 18:07:44 +02:00
dependabot[bot]
e0b680853d
[upd] web-client (simple): Bump the minor group (#5277)
Bumps the minor group in /client/simple with 5 updates:

| Package | From | To |
| --- | --- | --- |
| [@biomejs/biome](https://github.com/biomejs/biome/tree/HEAD/packages/@biomejs/biome) | `2.2.4` | `2.2.5` |
| [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) | `24.5.2` | `24.6.2` |
| [browserslist](https://github.com/browserslist/browserslist) | `4.26.2` | `4.26.3` |
| [lightningcss](https://github.com/parcel-bundler/lightningcss) | `1.30.1` | `1.30.2` |
| [typescript](https://github.com/microsoft/TypeScript) | `5.9.2` | `5.9.3` |

Updates `@biomejs/biome` from 2.2.4 to 2.2.5
- [Release notes](https://github.com/biomejs/biome/releases)
- [Changelog](https://github.com/biomejs/biome/blob/main/packages/@biomejs/biome/CHANGELOG.md)
- [Commits](https://github.com/biomejs/biome/commits/@biomejs/biome@2.2.5/packages/@biomejs/biome)

Updates `@types/node` from 24.5.2 to 24.6.2
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

Updates `browserslist` from 4.26.2 to 4.26.3
- [Release notes](https://github.com/browserslist/browserslist/releases)
- [Changelog](https://github.com/browserslist/browserslist/blob/main/CHANGELOG.md)
- [Commits](https://github.com/browserslist/browserslist/compare/4.26.2...4.26.3)

Updates `lightningcss` from 1.30.1 to 1.30.2
- [Release notes](https://github.com/parcel-bundler/lightningcss/releases)
- [Commits](https://github.com/parcel-bundler/lightningcss/compare/v1.30.1...v1.30.2)

Updates `typescript` from 5.9.2 to 5.9.3
- [Release notes](https://github.com/microsoft/TypeScript/releases)
- [Changelog](https://github.com/microsoft/TypeScript/blob/main/azure-pipelines.release-publish.yml)
- [Commits](https://github.com/microsoft/TypeScript/compare/v5.9.2...v5.9.3)

---
updated-dependencies:
- dependency-name: "@biomejs/biome"
  dependency-version: 2.2.5
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: minor
- dependency-name: "@types/node"
  dependency-version: 24.6.2
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: minor
- dependency-name: browserslist
  dependency-version: 4.26.3
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: minor
- dependency-name: lightningcss
  dependency-version: 1.30.2
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: minor
- dependency-name: typescript
  dependency-version: 5.9.3
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-04 14:22:51 +02:00
github-actions[bot]
cdf5f4343a
[l10n] update translations from Weblate (#5278)
9e090cc25 - 2025-10-01 - Ricky-Tigg <ricky-tigg@noreply.codeberg.org>

Co-authored-by: searxng-bot <searxng-bot@users.noreply.github.com>
2025-10-03 10:14:21 +02:00
dependabot[bot]
3c63d346d9
[upd] github-actions: Bump github/codeql-action from 3.30.4 to 3.30.6 (#5276)
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.30.4 to 3.30.6.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](303c0aef88...64d10c1313)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-version: 3.30.6
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-03 09:46:04 +02:00
dependabot[bot]
43a5129a1c
[upd] github-actions: Bump docker/login-action from 3.5.0 to 3.6.0 (#5275)
Bumps [docker/login-action](https://github.com/docker/login-action) from 3.5.0 to 3.6.0.
- [Release notes](https://github.com/docker/login-action/releases)
- [Commits](184bdaa072...5e57cd1181)

---
updated-dependencies:
- dependency-name: docker/login-action
  dependency-version: 3.6.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-03 09:45:15 +02:00
Markus Heiser
c6f1ea12b1
[fix] engine - cppreference has no longer a search function (#5273)
cppreference has replaced its search (``mwiki/index.php?title=``) with a DDG
search.

The engine was first introduced in SearXNG with PR-3274 [1], and even back then
the mediawiki proved to be incompatible, which is why the API could not be used
at the time. Now there isn't even a dedicated search function anymore.. I think
the cppreference project suffers from a lack of maintenance.

[1] https://github.com/searxng/searxng/pull/3247

Closes: https://github.com/searxng/searxng/issues/5271

Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2025-10-03 08:40:24 +02:00
Markus Heiser
06e4f4f758
[mod] drop searxng_extra/standalone_searx.py (#5256)
This is an old and grumpy hack / SearXNG is a Flask application with
client/server structure, which can't be turned into a command line tool the way
it was done here.

Maintaining this hack is becoming increasingly complex the more we try to
remodel the core code, which is why we should now remove the hack from SearXNG.

Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2025-10-01 07:34:53 +02:00
Markus Heiser
748b521ac6 [fix] searx/results.py - TypeError: object of type 'NoneType' has no len()
In some engines, under certain circumstances, the content field can also have
the value ``None``; in these cases, a length check results in an exception::

    File "/usr/local/searxng/searx/results.py", line 360, in merge_two_main_results
        if len(other.content) > len(origin.content):
           ^^^^^^^^^^^^^^^^^^
    TypeError: object of type 'NoneType' has no len()

[1] https://github.com/searxng/searxng/issues/5250#issuecomment-3352863488

Reported-by: @scross01 [1]
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2025-10-01 07:13:10 +02:00
Markus Heiser
e16b6cb148 [fix] JSON format: serialization of the result-types
The ``JSONEncoder`` (``format="json"``) must perform a conversion to the
built-in types for the ``msgspec.Struct``::

    if isinstance(o, msgspec.Struct):
        return msgspec.to_builtins(o)

The result types are already of type ``msgspec.Struct``, so they can be
converted into built-in types.

The field types (in the result type) that were not yet of type ``msgspec.Struct``
have been converted to::

    searx.weather.GeoLocation@dataclass -> msgspec.Struct
    searx.weather.DateTime              -> msgspec.Struct
    searx.weather.Temperature           -> msgspec.Struct
    searx.weather.PressureUnits         -> msgspec.Struct
    searx.weather.WindSpeed             -> msgspec.Struct
    searx.weather.RelativeHumidity      -> msgspec.Struct
    searx.weather.Compass               -> msgspec.Struct

BTW: Wherever it seemed sensible, the typing was also modernized in the modified
files.

Closes: https://github.com/searxng/searxng/issues/5250
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2025-10-01 07:13:10 +02:00
Ivan Gabaldon
41e0f2abf0
[doc] dev - cleanup asdf remnants and add a note about mise-en-place (#5264)
Notes on the developer environment with MISE have been added to the Quickstart
Guide.  We migrated `.tool-versions` to replace it with `mise` [1], so we can
now remove `asdf` related documentation.

[1] https://github.com/searxng/searxng/pull/5253

Co-authored-by: Markus Heiser <markus.heiser@darmarit.de>
2025-10-01 06:29:07 +02:00
searxng-bot
0f3ef5da59 [data] update searx.data - update_engine_traits.py 2025-09-30 16:48:59 +02:00
Markus Heiser
defd4d87c4 [fix] fetch traits, even for inactive instances
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2025-09-30 16:48:59 +02:00
Ivan Gabaldon
ebc61debf9
[fix] ci: missing container (#5263)
This workflow is no longer needed.
2025-09-29 15:15:54 +02:00
github-actions[bot]
77fd3ee534
[data] update searx.data - update_currencies.py (#5261)
Co-authored-by: searxng-bot <searxng-bot@users.noreply.github.com>
2025-09-29 07:37:30 +02:00
github-actions[bot]
b8e60542d9
[data] update searx.data - update_engine_descriptions.py (#5262)
Co-authored-by: searxng-bot <searxng-bot@users.noreply.github.com>
2025-09-29 07:36:51 +02:00
github-actions[bot]
5513549adc
[data] update searx.data - update_wikidata_units.py (#5259)
Co-authored-by: searxng-bot <searxng-bot@users.noreply.github.com>
2025-09-29 07:35:10 +02:00
github-actions[bot]
cd2ea7c5f5
[data] update searx.data - update_ahmia_blacklist.py (#5257)
Co-authored-by: searxng-bot <searxng-bot@users.noreply.github.com>
2025-09-29 07:34:38 +02:00
searxng-bot
38b80133f7 [data] update searx.data - update_firefox_version.py 2025-09-29 07:33:19 +02:00
Markus Heiser
2f0d96b8bc [fix] sqlitedb: DB connector -- unset isolation_level
A Connection object can be used as a context manager that automatically commits
or rolls back open transactions when leaving the body of the context manager.

If the connection attribute ``isolation_level`` is **not** ``None``, new
transactions are implicitly opened before ``execute()`` and ``executemany()``
executes SQL- INSERT, UPDATE, DELETE, or REPLACE statements [1].

The old implementation set ``isolation_level`` to ``None`` and thereby prevented
the context manager from opening and closing the transaction scopes.

[1] https://docs.python.org/3/library/sqlite3.html#sqlite3-transaction-control-isolation-level
[2] https://github.com/searxng/searxng/pull/5239#discussion_r2381416731

Reported-by: Ivan G <igabaldon@inetol.net> [2]
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2025-09-28 07:32:41 +02:00
Markus Heiser
18a58943cc [mod] ExpireCacheSQLite - implement .setmany() for bulk loading
[1] https://github.com/searxng/searxng/issues/5223#issuecomment-3328597147

Suggested-by: Ivan G <igabaldon@inetol.net> [1]
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2025-09-28 07:32:41 +02:00
Markus Heiser
4f4de3fc87 [fix] openstreetmap: fix CURRENCIES.iso4217_to_name
This patch is a leftover from PR-5204 [1].

[1] https://github.com/searxng/searxng/pull/5204

Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2025-09-28 07:32:41 +02:00
Markus Heiser
4445f26f5a [mod] run bootload of the CURRENCIES cache on demand
In [1] it can be seen that the bootload of the CURRENCIES cache takes about 2/3
of the time required to initialize SearXNG.  Whatever the absolute durations may
be, an explicit bootload during the SearXNG initialization is not required, as
the bootload is already ensured by the API of the CACHE.

- ``CurrenciesDB.name_to_iso4217``
- ``CurrenciesDB.iso4217_to_name``

The fact that the bootload now occurs on-demand should improve the
initialization time of SearXNG.

[1] https://github.com/searxng/searxng/issues/5223#issuecomment-3323083411

Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2025-09-28 07:32:41 +02:00
Markus Heiser
62b0b3f697 [mod] debug-log the bootload of the CURRENCIES caches (CurrenciesDB)
The time for the bootload is measured and recorded.  To have an eye on the
bootload time is motivated by: In [1] it can be seen that the bootload of the
CURRENCIES cache takes about 2/3 of the time required to initialize SearXNG::

    6.068 <module>  searx/webapp.py:1
    └─ 6.068 wrapper  pyinstrument/context_manager.py:52
       ├─ 5.538 init  searx/webapp.py:1373
       │  ├─ 4.822 initialize  searx/search/__init__.py:34
       │  │  ├─ 4.631 ProcessorMap.init  searx/search/processors/__init__.py:47
       │  │  │  ├─ 4.607 OnlineCurrencyProcessor.initialize  searx/search/processors/online_currency.py:55
       │  │  │  │  └─ 4.607 CurrenciesDB.init  searx/data/currencies.py:25
       │  │  │  │     ├─ 4.601 CurrenciesDB.load  searx/data/currencies.py:34
       │  │  │  │     │  ├─ 4.572 ExpireCacheSQLite.set  searx/cache.py:334

In the example, the CurrenciesDB.init call takes 4.6 seconds... on my laptop,
CurrenciesDB.init takes only 0.7 seconds.  The absolute numerical values depend
on external conditions, where I already find 4-5 seconds very long. Test::

    $ rm /tmp/sxng_cache_*.db*
    $ make run 2>&1 | grep "searx.data.CURRENCIES"
    DEBUG   searx.data : init searx.data.CURRENCIES
    DEBUG   searx.data : init searx.data.CURRENCIES added 9089 items in 0.7623255252838135 sec.

[1] https://github.com/searxng/searxng/issues/5223#issuecomment-3323083411

Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2025-09-28 07:32:41 +02:00
Markus Heiser
87bc97776a
[mod] pin external developer tools (mise en place) (#5253)
Mise en place config [1] does no longer support ``.tool-versions``
compatibility syntax, migrate to TOML ``mise.toml``.

In ``utils/lib_sxng_node.sh`` the node version was not updated, update to
24.3.0 (compare ``mise.toml``).

[1] https://mise.jdx.dev/configuration.html

Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2025-09-27 07:18:50 +02:00
Markus Heiser
77068ce20b
[upd] pypi: Bump sphinx from 7.4.7 to 8.2.3 (#5252)
- supersede: https://github.com/searxng/searxng/pull/4377

Sphinx 8.2 dropped Python 3.10 support, last versions supporting Python 3.10:

- Sphinx==8.1.3
- sphinx-autobuild==2024.10.3

Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2025-09-26 16:57:01 +02:00
Markus Heiser
81cbe0befe
[upd] pypi: Bump black from 24.3.0 to 25.9.0 (#5251)
In 25.1.0 [2] an old bug has been fixed: "Docstring formatting does not apply to
module docstrings" [3].

[1] https://github.com/psf/black/blob/main/CHANGES.md#2590
[2] https://github.com/psf/black/blob/main/CHANGES.md#2510
[3] https://github.com/psf/black/issues/4094

Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2025-09-26 12:35:57 +02:00
dependabot[bot]
1091643f32
[upd] github-actions: Bump actions/cache from 4.2.4 to 4.3.0 (#5249)
Bumps [actions/cache](https://github.com/actions/cache) from 4.2.4 to 4.3.0.
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](0400d5f644...0057852bfa)

---
updated-dependencies:
- dependency-name: actions/cache
  dependency-version: 4.3.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-26 10:46:19 +02:00
dependabot[bot]
899ae9a6e4
[upd] pypi: Bump myst-parser from 3.0.1 to 4.0.0 (#3719)
Bumps [myst-parser](https://github.com/executablebooks/MyST-Parser) from 3.0.1 to 4.0.0.
- [Release notes](https://github.com/executablebooks/MyST-Parser/releases)
- [Changelog](https://github.com/executablebooks/MyST-Parser/blob/master/CHANGELOG.md)
- [Commits](https://github.com/executablebooks/MyST-Parser/compare/v3.0.1...v4.0.0)

---
updated-dependencies:
- dependency-name: myst-parser
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-26 10:32:01 +02:00
dependabot[bot]
454f95a661
[upd] github-actions: Bump snok/container-retention-policy (#5248)
Bumps [snok/container-retention-policy](https://github.com/snok/container-retention-policy) from 3.0.0 to 3.0.1.
- [Release notes](https://github.com/snok/container-retention-policy/releases)
- [Commits](4f22ef8090...3b0972b227)

---
updated-dependencies:
- dependency-name: snok/container-retention-policy
  dependency-version: 3.0.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-26 10:03:19 +02:00
dependabot[bot]
a9ae0163ad
[upd] github-actions: Bump github/codeql-action from 3.30.3 to 3.30.4 (#5247)
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.30.3 to 3.30.4.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](192325c861...303c0aef88)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-version: 3.30.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-26 10:01:01 +02:00
dependabot[bot]
2a759f18da
[upd] pypi: Bump the minor group with 4 updates (#5246)
Bumps the minor group with 4 updates: [lxml](https://github.com/lxml/lxml), [pyyaml](https://github.com/yaml/pyyaml), [typer-slim](https://github.com/fastapi/typer) and [basedpyright](https://github.com/detachhead/basedpyright).


Updates `lxml` from 6.0.1 to 6.0.2
- [Release notes](https://github.com/lxml/lxml/releases)
- [Changelog](https://github.com/lxml/lxml/blob/master/CHANGES.txt)
- [Commits](https://github.com/lxml/lxml/compare/lxml-6.0.1...lxml-6.0.2)

Updates `pyyaml` from 6.0.2 to 6.0.3
- [Release notes](https://github.com/yaml/pyyaml/releases)
- [Changelog](https://github.com/yaml/pyyaml/blob/6.0.3/CHANGES)
- [Commits](https://github.com/yaml/pyyaml/compare/6.0.2...6.0.3)

Updates `typer-slim` from 0.17.4 to 0.19.2
- [Release notes](https://github.com/fastapi/typer/releases)
- [Changelog](https://github.com/fastapi/typer/blob/master/docs/release-notes.md)
- [Commits](https://github.com/fastapi/typer/compare/0.17.4...0.19.2)

Updates `basedpyright` from 1.31.4 to 1.31.5
- [Release notes](https://github.com/detachhead/basedpyright/releases)
- [Commits](https://github.com/detachhead/basedpyright/compare/v1.31.4...v1.31.5)
2025-09-26 09:56:32 +02:00
Markus Heiser
7322b07df6
[fix] ProcessorMap: fix error log, not enough arguments for format string (#5241)
Issue was introduced by PR-5204 [1]

reported issue::

    logger.error("init method of engine %s failed (%s).", eng_proc.engine.name)
    TypeError: not enough arguments for format string

[1] https://github.com/searxng/searxng/pull/5204

Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2025-09-25 08:24:02 +02:00
Markus Heiser
4f4587650c [build] /static 2025-09-25 06:34:19 +02:00
Markus Heiser
8f854540a9 [fix] simple client: move code.less to result_types/code.less
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2025-09-25 06:34:19 +02:00
Ivan Gabaldon
3bf702447b
[enh] container: custom certificates (#5238)
Let container instance administrators to add custom certificates:

  https://docs.searxng.org/admin/installation-docker.html#custom-certificates

Closes https://github.com/searxng/searxng/issues/5206
2025-09-23 21:57:29 +02:00
Ivan Gabaldon
d2e2802514
[fix] utils: variable expansion (#5237)
Docker buildx outputs the following error:

  variable expansion is not supported for --from, define a new stage with FROM
  using ARG from global scope as a workaround.

Also force BuildKit extension to be installed, legacy build is no longer
supported.

Closes https://github.com/searxng/searxng/issues/5219
2025-09-23 20:34:28 +02:00
Ivan Gabaldon
a57b29b009
[enh] container: compact venv (#5225)
We can leverage the immutable nature of containers to add additional
optimizations.

No debugging or tinkering inside containers, so stripping all unused symbols
inside `venv` should be fine. We are also going to compile the bytecode
ourselves to modify some parameters related to reproducibility.

With these small changes, we have reduced the `venv` layer size by 10MB~
2025-09-23 09:50:42 +02:00
Ivan Gabaldon
b7ecc1c240
[enh] container: reproducible layers (#5222)
* [enh] container: reproducible layers

We are not aiming for reproducibility compliance, but we look to make most
builder layers reproducible without caching at least for a short period of time
(until the builder's base image changes or the child dependencies of a
requirements.txt package are updated).

This feature is only available on Podman.

This targets https://github.com/searxng/searxng/pull/5086 main goal.

* [fix] misc: apply suggestions

Suggested: https://github.com/searxng/searxng/pull/5222#discussion_r2364630496
Suggested: https://github.com/searxng/searxng/pull/5222#discussion_r2364630511

* [enh] container: prevent useless layer
2025-09-20 11:33:23 +02:00
Ivan Gabaldon
164167dea0
[mod] py: remove uvloop (#5220)
We get some good stuff without uvloop, 13MB~ less of dependencies, 3
minutes of build time for armv7 saved, and we are one step closer to NT
compatibility. Although it's true that theoretically the raw performance
have worsened on network side (we only used uvloop for that), the latest
cpython versions have been improving on asyncio performance.
2025-09-20 11:12:34 +02:00
github-actions[bot]
b3eb7657b9
[l10n] update translations from Weblate (#5216)
a0783e1a1 - 2025-09-16 - recreationalprogamer <recreationalprogamer@noreply.codeberg.org>
130f66498 - 2025-09-13 - artnay <artnay@noreply.codeberg.org>

Co-authored-by: searxng-bot <searxng-bot@users.noreply.github.com>
2025-09-20 10:57:35 +02:00
Markus Heiser
d2b4bff856 [mod] demo engines: smaller improvement
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2025-09-20 10:56:46 +02:00
Markus Heiser
1520a8d545 [mod] ADS engine: revision of the engine (Paper result)
Revision of the Astrophysics Data System (ADS) engine / use of the result type
Paper as well as other typifications.

Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2025-09-20 10:56:46 +02:00
Markus Heiser
f8f7adce6b [mod] Z-Library engine: revision of the engine (Paper result)
Revision of the engine / use of the result type Paper as well as other
typifications.

The engine has been placed on inactive because no service is currently
available, or at least not known in the SearXNG community [1]

[1] https://github.com/searxng/searxng/issues/3610

Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2025-09-20 10:56:46 +02:00