Hans-Christoph Steiner
b6e73345e2
deploy: convert to common.get_config()
...
717df09be0
2025-09-29 13:25:13 +02:00
Hans-Christoph Steiner
0a5f15dad7
nightly: GitLab URLs end in '.git' to avoid warning and redirects
...
warning: redirecting to https://gitlab.com/fdroid/fdroidclient-nightly.git/
2025-09-29 13:25:13 +02:00
Hans-Christoph Steiner
4cf3727db7
use example.com as default repo domain name, closes admin#300
2025-09-29 11:21:00 +00:00
paul mayero
ffc0a6cec0
Fix tests for replacing s3cmd and libcloud
2025-09-25 14:21:02 +00:00
linsui
5ded08048b
scanner: remove asLibraryDependency from catalog accessor
2025-09-18 11:19:32 +00:00
linsui
5f6e59c76d
scanner: fix catalog match
2025-09-18 11:19:32 +00:00
Hans-Christoph Steiner
1f9fb16844
deploy: find rclone.conf in the root of the repo
...
This enables the same way of managing the config as existed with s3cmd's
s3cfg file.
2025-09-18 11:05:18 +02:00
paul mayero
dbd769db9f
Remove libcloud and s3cmd from fdroidserver
2025-09-17 11:36:12 +00:00
Licaon_Kter
8b54e2b4cf
Remove UpstreamNonFree
2025-07-28 15:59:35 +02:00
linsui
7a98650ed3
Sort import
...
ruff check --fix --select I
2025-07-26 15:35:19 +00:00
Hans-Christoph Steiner
6a3758d3c4
update: more accurate fastlane subdir/flavor matching
...
This should fix Schildichat showing Element X's metadata.
2025-07-26 12:36:32 +00:00
Hans-Christoph Steiner
5049645003
make gradlew-fdroid a standalone project
...
https://gitlab.com/fdroid/gradlew-fdroid
2025-07-25 17:46:31 +00:00
Hans-Christoph Steiner
96c0d928da
update: support fastlane/ dir in subdir:
...
GNU Taler apps use this.
* https://git.taler.net/taler-android.git/tree/merchant-terminal/fastlane/metadata/android/en-US?h=pos-1.0.2
2025-07-16 17:32:49 +02:00
Hans-Christoph Steiner
97b0b0eaf8
gitlab-ci: update gradle: job to only check files in
...
While we are at it, also upgrade to Debian/trixie and rules:
this now handles making the merge requests:
https://gitlab.com/fdroid/gradle-transparency-log/-/merge_requests/2
2025-07-16 14:08:54 +02:00
Hans-Christoph Steiner
52c1bcca70
only copy icons into repo/ if they changed
...
This should make things more efficient and reduce the size of the diffs in
the transparency log. Using shutil.copy2() preserves metadata.
2025-06-25 09:46:20 +00:00
Hans-Christoph Steiner
dcd5336138
scanner: fix tests after !1526
2025-06-23 23:10:15 +02:00
Hans-Christoph Steiner
63298ad2ad
update: change assert to fix flaky tests
...
This was happening often:
```
======================================================================
FAIL: test_strip_and_copy_image_in_file_ctime_changed (tests.test_update.UpdateTest.test_strip_and_copy_image_in_file_ctime_changed)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/builds/fdroid/fdroidserver/tests/test_update.py", line 1409, in test_strip_and_copy_image_in_file_ctime_changed
self.assertNotAlmostEqual(
AssertionError: 1750683024.4857466 == 1750683024.4957466 within 0.01 delta (0.009999990463256836 difference)
```
2025-06-23 15:16:21 +02:00
Hans-Christoph Steiner
ce018158ee
nightly: set up test for git clone function
2025-06-18 18:03:59 +02:00
Hans-Christoph Steiner
494d811846
update: If cateogories.yml only has icon:, then add name:
...
E.g. if _categories.yml_ is like:
```yaml
Time:
icon: time.png
```
2025-06-16 17:13:48 +00:00
Hans-Christoph Steiner
59102fb07f
update: use ctime/mtime to control _strip_and_copy_image runs
...
Oftentimes, the file that is copied is stripped, in which case, the file
size is different. Using a file size check here means it will rerun the
strip and copy every time `fdroid update` is run for any image that needs
to be stripped. If the source's ctime is newer than the destination, then
the process should run since it is a newly created file. Even more so with
mtime, since the destination's mtime is reset based on the source's.
2025-06-11 17:33:34 +02:00
linsui
cd1630d2f5
Lazyload environment variables in config.yml
2025-06-11 13:02:09 +00:00
linsui
a5d966bf0f
calculate all combinations of gradle flavors
2025-05-22 12:24:33 +02:00
linsui
e957583337
common: add calculate_gradle_flavor_combination
2025-05-22 12:24:32 +02:00
Hans-Christoph Steiner
8c9b0b3a2a
add test case
2025-05-22 12:12:24 +02:00
Leo Heitmann Ruiz
5f534ea2cb
Add test case for Triple-T 1.0.0 graphics
2025-05-22 11:57:57 +02:00
Hans-Christoph Steiner
20b36f1970
SOURCE_DATE_EPOCH from app's git otherwise fdroiddata metadata file
...
https://reproducible-builds.org/docs/source-date-epoch
2025-05-19 16:31:40 +02:00
Hans-Christoph Steiner
4e7bda736c
update: never execute VCS e.g. git
...
Package repos come from untrusted sources, in terms of the buildserver. They
should be handled in VMs and containers as much as possible to avoid
vulnerabilities. As far as I could tell, `fdroid update` only has a single
place where it executes any VCS system: if there is .fdroid.yml present in
a package repo, then it will fetch the commit ID using git.
For better security properties, this implements a simple function to just
read the files to get that commit ID. The function that executes git to do
the same thing is relabeled "unsafe". That is used for status JSON
everywhere, but that runs on fdroiddata.git and fdroidserver.git, which are
trusted repos.
The unsafe version is also used in places where git.Repo() is needed for
other things.
2025-05-12 18:30:03 +02:00
Hans-Christoph Steiner
2a33857fd0
update: include stages timing info in update.json
...
!1627 missed this, so stages only get included in running.json. That means
the stages info is only visible while update is running, making it hard to
use.
2025-04-23 19:26:50 +02:00
Hans-Christoph Steiner
17e5a59704
verify: generate <appid>.json files that list all reports
2025-04-10 15:41:46 +00:00
Hans-Christoph Steiner
9a8d80ee6b
purge dead code: apk_signer_fingerprint_short
2025-03-31 11:09:07 +02:00
Hans-Christoph Steiner
59474437b3
delete cruft test script
2025-03-25 10:23:00 +00:00
Hans-Christoph Steiner
40be283c4a
APK for testing maxSdkVersion handling
...
APK is org.bitbucket.tickytacky.mirrormirror_4.apk disassembled with
`apktool decode`, maxSdkVersion added, then reassembled with `apktool build`
2025-03-25 10:23:00 +00:00
Hans-Christoph Steiner
eef3188600
test_signatures: remove unneeded config from tests
2025-03-25 10:23:00 +00:00
Hans-Christoph Steiner
d024c8964f
convert test_signatures.py to black code format
2025-03-25 10:23:00 +00:00
Hans-Christoph Steiner
8f351d8406
publish: convert to black code format
2025-03-25 10:23:00 +00:00
Hans-Christoph Steiner
58609aa9f0
fix _dexdump_found() in test_scanner.py !1621
...
find_sdk_tools_cmd() will throw an exception if it can't find the tool, not
return None.
2025-03-24 08:24:01 +00:00
Hans-Christoph Steiner
78efc16fc2
scanner: suppress verbose/confusing log output on success
...
This additionally asserts that the right log output happened.
2025-03-21 08:45:23 +00:00
Hans-Christoph Steiner
4b9100ae80
publish: remove last use of stats/ dir
...
This file can be treated like the other index files in repo/. This also has
the advantage that it will automatically get synced by @CiaranG's existing
sync scripts.
2025-03-20 15:08:32 +01:00
Hans-Christoph Steiner
38378ddfb7
rename v1_sort_packages to sort_package_versions
2025-03-20 15:08:32 +01:00
Hans-Christoph Steiner
8565a97465
rename functions and variables to reflect stats/ going away
2025-03-20 15:08:32 +01:00
Hans-Christoph Steiner
ec2b847e03
handle arches that are missing dexdump in tests
...
dexdump is only available for certain CPU architectures. Google binaries
are for amd64 and arm64. Debian binaries are for amd64, arm64, armhf,
i386, and riscv64. That leaves out armel, ppc64el, s390x, loong64, etc.
where pure Python code runs perfectly fine.
2025-03-20 12:42:59 +00:00
Hans-Christoph Steiner
20569217d9
index: fail if user sets mirrors:isPrimary wrong
...
Really, this is not meant to be set by the user in the config. But if they
add something harmless that'll be ignored anyway, it seems that throwing an
error is too much. So only throw the error if it is set wrongly.
2025-03-20 11:13:09 +00:00
Hans-Christoph Steiner
0b3fe26524
skip tests that won't run on a given CPU architecture
2025-03-19 15:47:06 +01:00
Hans-Christoph Steiner
025828932d
purge test exceptions for Python < 3.9, that's the min version
2025-03-19 11:11:36 +01:00
Hans-Christoph Steiner
c5f442616e
gitlab-ci: "PUBLISH" job to test in the signing server's setup
2025-03-12 17:27:26 +01:00
Hans-Christoph Steiner
9d147c6b6b
test_common: remove self.tmpdir and use standard self.testdir pat
2025-03-12 13:37:17 +01:00
Hans-Christoph Steiner
858068c64b
only show "unsafe perms on config.yml" when secrets are present
...
This should make for fewer false positives.
2025-03-12 13:37:17 +01:00
Hans-Christoph Steiner
36007d50e5
AbstractBaseTest class for sharing setUp and tearDown in tests
2025-03-12 13:37:17 +01:00
Hans-Christoph Steiner
f269232b96
hide error messages in tests that are meant to fail
2025-03-12 13:37:17 +01:00
Hans-Christoph Steiner
8cf1297e2c
clarify config data types and structures
2025-03-12 13:37:17 +01:00