Commit Graph

1128 Commits

Author SHA1 Message Date
Hans-Christoph Steiner
67831d6608 add tests 2026-03-11 11:54:47 +01:00
Hans-Christoph Steiner
e5630f0717 test YAML 1.2 for config
This disables pycodestyle's "W291 trailing whitespace" because these tests
need a trailing whitespace in the YAML string to represent null.  Black
handles this fine.
2026-03-09 08:54:24 +00:00
Hans-Christoph Steiner
b6ad69080b reset apkcache to move data to new internal format 2026-03-09 08:54:24 +00:00
Hans-Christoph Steiner
c8d04e38f0 move 'signer' into internal index-v2 format 2026-03-09 08:54:24 +00:00
Hans-Christoph Steiner
f5e0599571 move repo["timestamp"] to internal index-v2 format 2026-03-09 08:54:24 +00:00
Hans-Christoph Steiner
97ecf27eee move PackageAddedCache to update.py, it is only used there 2026-03-09 08:54:24 +00:00
Hans-Christoph Steiner
a1ea7cf325 move 'added' to internal index-v2 format
This ended up being a refactoring of the whole KnownApks setup.
2026-03-09 08:54:24 +00:00
Hans-Christoph Steiner
78aec37622 port 'added' integration test to JSON for clarity of purpose 2026-03-09 08:54:24 +00:00
Hans-Christoph Steiner
69995e5b33 move 'apkName' field into internal index-v2 format 2026-03-09 08:54:24 +00:00
Hans-Christoph Steiner
bea377f183 move 'versionName' field to internal index-v2 format 2026-03-09 08:54:24 +00:00
Hans-Christoph Steiner
cd9c6a9231 minSdkVersion/targetSdkVersion/maxSdkVersion into internal index-v2 format 2026-03-09 08:54:24 +00:00
Hans-Christoph Steiner
6b16cd1024 init 'features' only when it is needed 2026-03-09 08:54:24 +00:00
Hans-Christoph Steiner
f0eedc3ade move 'nativecode' field into internal index-v2 format 2026-03-09 08:54:24 +00:00
Hans-Christoph Steiner
bf81f9f149 test_update: simplify scan_apk() tests 2026-03-09 08:54:24 +00:00
Hans-Christoph Steiner
5f180465de 'manifest' in internal struct; remove single use of namedtuple
Everywhere else, just plain data structures are used, like dict, list, etc.
Plus even the code that accesses these namedtuples is not using the features
of the namedtuple.

These are steps towards refactoring the code so that index-v2 is the
internal data structure of fdroid update.  Then ultimately, we'll be
able to remove the whole convert_version() function and streamline
other parts of the code.  Then the data structure conversions will
only need to happen in the code that generates the old index files.
2026-03-09 08:54:24 +00:00
Hans-Christoph Steiner
e12103528a update test APK to include one required <uses-feature>
cd tests/repo
    apktool d duplicate.permisssions_9999999.apk
    # edit duplicate.permisssions_9999999/AndroidManifest.xml
    export PATH="/opt/android-sdk/build-tools/35.0.0:$PATH"
    apktool build duplicate.permisssions_9999999.apk
    unzip duplicate.permisssions_9999999/dist/duplicate.permisssions_9999999.apk AndroidManifest.xml
    zip duplicate.permisssions_9999999.apk AndroidManifest.xml
    mv duplicate.permisssions_9999999.apk ../unsigned/
    cd ..
    ../fdroid publish duplicate.permisssions
2026-03-09 08:54:24 +00:00
Hans-Christoph Steiner
c04ea16882 actually implement VCSException when git-svn includes username
Back in 2015, 49549f4ca attempted to throw an error if a username was added
to a git-svn `Repo:` URL.  But it tested the function self.repotype itself
rather than executing it.  This fixes that and adds a test.
2026-03-05 18:52:13 +00:00
Hans-Christoph Steiner
b628d53a02 purge support for deprecated RepoType: bzr svn
* bzr is no longer developed
* svn was long ago replaced by git-svn

!1662
2026-03-05 18:52:13 +00:00
Hans-Christoph Steiner
1aab64e090 better test for gpg-agent to restrict test case
This test case needs both gpg and gpg-agent, but gpg can be installed
without gpg-agent.  The CI for some of the Ansible stuff needs gpg without
gpg-agent, so switch this test to gpg-agent.

https://gitlab.com/fdroid/ansible-role-install-fdroidserver-dependencies/-/merge_requests/13
2026-02-09 15:45:23 +01:00
Hans-Christoph Steiner
333bd43fe7 ignore locale tests on macOS, localization is not yet used there 2026-01-22 22:15:03 +01:00
linsui
14573e7ccb fix B105 hardcoded_password_string 2026-01-19 21:53:43 +08:00
Hans-Christoph Steiner
1de072b194 update: use translations when adding DisabledAlgorithm/KnownVuln
The translations were filled in using the included script
2026-01-13 20:20:01 +01:00
linsui
36f00f03e5 rewritemeta: fix for metadata from stdin 2026-01-13 16:25:46 +00:00
linsui
674e7f8b7b scanner: match command with quote marks 2025-12-23 20:28:49 +08:00
linsui
208d956b05 Revert "scanner: fix gradle command match"
This reverts commit a43efb1469
2025-12-23 07:23:57 +00:00
linsui
a43efb1469 scanner: fix gradle command match
When there is other flavors inserted before the command it should also
match. Before this change only other flavors appended after the command
is matched
2025-12-23 01:58:01 +08:00
linsui
1884d85e7e Fix wrong type: build.versionCode is int 2025-12-23 01:57:39 +08:00
Hans-Christoph Steiner
f33a3004c6 error if repo_icon is a path not just a filename
https://gitlab.com/fdroid/fdroidserver/-/merge_requests/1425#note_1730855272
2025-12-16 09:41:21 +01:00
Angel
27b537dd0c fix: fix existing icon detection for repo and archive 2025-12-15 23:07:00 +01:00
Hans-Christoph Steiner
34447616b6 add tests for common.replace_build_vars() 2025-12-11 15:37:48 +01:00
linsui
4b969184be black: bump target version to py39 2025-12-11 19:54:54 +08:00
Hans-Christoph Steiner
fe762978f1 gitlab-ci: upgrade "black" job to Trixie for improved fmt: skip 2025-12-11 10:45:06 +00:00
Hans-Christoph Steiner
1db259284c update.get_old_icon_filename() to document old naming scheme 2025-12-11 10:45:06 +00:00
Hans-Christoph Steiner
81cff5eaa3 skip rewritemeta tests if ruamel.yaml > 0.17.21 #1138 2025-12-03 19:07:25 +01:00
Hans-Christoph Steiner
8c7f5abf92 checkupdates: only run tests on GNU/Linux
checkupdates is only ever run in production on Debian and it often fails
elsewhere.

https://gitlab.com/fdroid/fdroidserver/-/jobs/12307572200
2025-12-03 19:07:25 +01:00
Hans-Christoph Steiner
6c46c363a1 calculate_math_string: isolate tests, they need no setUp 2025-12-03 19:07:25 +01:00
Hans-Christoph Steiner
0a252a0bdd net.download_file() only uses https:// by default
This strictly enforces things like this only use https://:

* `Binaries:` / `binary:` URLs
* `fdroid signatures` fetching APKs
* `fdroid install` fetching from GitHub
2025-12-03 17:13:19 +01:00
linsui
cd33d91e2b scanner: remove file without read permission 2025-12-03 16:43:23 +01:00
Hans-Christoph Steiner
f64f9c82ca scanner: check binaries for debuggable/testOnly
This used to be enforced by !1734, but that bitrotted away and no longer
works.  This is a better place to enforce this, since it is easier to
reliably find it in the APK rather than the source code.
2025-12-02 18:11:24 +01:00
Hans-Christoph Steiner
5712438809 lint: update list of URL shorteners 2025-12-01 18:39:44 +01:00
Hans-Christoph Steiner
13874b9f4f lint: use PEP8 upper case names for global vars 2025-12-01 16:24:58 +01:00
Hans-Christoph Steiner
34a6e2cfee lint: require https:// and no shorteners in Donate: links 2025-12-01 16:11:17 +01:00
Hans-Christoph Steiner
40a5d8ecf8 lint: require Binaries:/binary: use https:// and no URL shorteners 2025-12-01 16:11:17 +01:00
Hans-Christoph Steiner
7a9bb1d0d8 lint: fix false positives on URL shorteners 2025-12-01 16:11:15 +01:00
Michael Pöhn
6f1c253b09 🧹 cleanup get_virt_container_type() fail with exception instead exiting 2025-11-26 12:57:35 +00:00
Hans-Christoph Steiner
40d1113898 purge remove_debuggable_flags(), upstreams should handle this
Also, there might be valid use cases for using fdroidserver to build APKs
that are debuggable.  There are other checks to ensure that debuggable APKs
are not published, e.g. in `fdroid update`.

48df58854c/fdroidserver/update.py (L1978)
2025-11-26 12:35:01 +00:00
linsui
146f2b93fe rewritemeta: support read from stdin 2025-11-26 12:22:39 +00:00
Hans-Christoph Steiner
2112858185 schedule_verify: do not schedule if no Repo: is provided 2025-11-26 11:55:11 +00:00
Hans-Christoph Steiner
171cf77cc3 rm config.buildserver.yml, ANDROID_HOME set in /etc/profile.d/bsenv.sh
`fdroid build_local_run` has been running without this for a long time.
2025-11-26 11:50:58 +00:00
Hans-Christoph Steiner
be27b58114 checkupdates: standardize on "from fdroidserver import X"
This is the code style used in most of the rest of the submodules.
2025-11-26 11:49:49 +00:00