Compare commits

...

44 commits

Author SHA1 Message Date
Hans-Christoph Steiner
57244dec63 Merge branch 'noversioncode' into 'master'
update: Handle APKs without a version code in their manifest

Closes #1240

See merge request fdroid/fdroidserver!1695
2025-08-26 10:10:51 +00:00
Tobias Mueller
2eb3986ecf update: Handle APKs without a version code in their manifest 2025-08-26 10:10:51 +00:00
Hans-Christoph Steiner
d4ad523dd2 Merge branch '__init__.py-black-format' into 'master'
convert fdroidserver/__init__.py to black format

See merge request fdroid/fdroidserver!1690
2025-08-18 15:48:23 +00:00
Hans-Christoph Steiner
6fff73b678 convert fdroidserver/__init__.py to black format 2025-08-18 15:38:08 +00:00
linsui
fbf8fc54db Merge branch 'patch-1' into 'master'
Sonatype is now Maven Central

See merge request fdroid/fdroidserver!1693
2025-08-18 13:32:29 +00:00
Licaon_Kter
f5f79ac1ea Sonatype is now Maven Central 2025-08-18 13:32:29 +00:00
Michael Pöhn
97e9784d5d Merge branch 'fix-srcname-cache-crash' into 'master'
update: don't crash if src tarball is not present

See merge request fdroid/fdroidserver!1691
2025-07-31 15:31:38 +00:00
Hans-Christoph Steiner
d20a6a5dcf update: don't crash if src tarball is not present 2025-07-29 17:20:11 +02:00
Michael Pöhn
058f0b7f6a Merge branch 'cache-srcname-sha256' into 'master'
update: cache the SHA-256 of the src tarball

Closes #1290

See merge request fdroid/fdroidserver!1686
2025-07-28 21:10:40 +00:00
Hans-Christoph Steiner
e07cdf5f0c update: cache the SHA-256 of the src tarball
closes #1290
2025-07-28 14:11:07 +00:00
Hans-Christoph Steiner
f9d111c8c1 Merge branch 'removeunf' into 'master'
Remove UpstreamNonFree

Closes fdroiddata#2481

See merge request fdroid/fdroidserver!1680
2025-07-28 14:10:18 +00:00
Licaon_Kter
8b54e2b4cf Remove UpstreamNonFree 2025-07-28 15:59:35 +02:00
Hans-Christoph Steiner
d594a683ab Merge branch 'isort' into 'master'
Sort import

See merge request fdroid/fdroidserver!1689
2025-07-26 15:47:48 +00:00
linsui
7a98650ed3 Sort import
ruff check --fix --select I
2025-07-26 15:35:19 +00:00
linsui
b19b8050db Merge branch 'fix-schildichat-fastlane' into 'master'
update: more accurate fastlane subdir/flavor matching

See merge request fdroid/fdroidserver!1687
2025-07-26 12:52:31 +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
546821fc3d Merge branch 'scanpath' into 'master'
scanner: report all errors

See merge request fdroid/fdroidserver!1688
2025-07-26 10:44:26 +00:00
linsui
120a1655b4 scanner: report all errors 2025-07-26 18:33:57 +08:00
linsui
19d709edcd Merge branch 'standalone-gradlew-fdroid' into 'master'
make gradlew-fdroid a standalone project

See merge request fdroid/fdroidserver!1684
2025-07-25 17:46:59 +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
e4b54c9768 Merge branch 'docker-buildserver-always-apt-https' into 'master'
buildserver: always use HTTPS for apt connections in Docker image

See merge request fdroid/fdroidserver!1603
2025-07-23 16:24:56 +00:00
Hans-Christoph Steiner
7988c54d00 buildserver: always use HTTPS for apt connections in Docker image
This configuration has been in use in .gitlab-ci.yml scripts for a while
now and has proven reliable.  This is a "low hanging fruit" improvement.
It provides an extra layer of protection for when their are apt vulns.  And
it makes it much harder to profile what a server/laptop is doing based on
the internet traffic.  The network observer will no longer be able to see
which packages are being downloaded since apt uses HTTP pipelining so size
attacks are not really possible. And HTTPS hides the URLs, filenames,
download contents, etc.
2025-07-23 16:09:20 +00:00
Hans-Christoph Steiner
05c4bf2483 Merge branch 'ci-PUBLISH-to-bookworm' into 'master'
gitlab-ci: update PUBLISH to bookworm since prod has already

See merge request fdroid/fdroidserver!1685
2025-07-23 16:08:48 +00:00
Hans-Christoph Steiner
7e219561b7 gitlab-ci: update PUBLISH to bookworm since prod has already 2025-07-22 21:52:28 +02:00
Hans-Christoph Steiner
6ad3c74bb4 Merge branch 'subdir-fastlane-support' into 'master'
update: support fastlane/ dir in subdir:

See merge request fdroid/fdroidserver!1679
2025-07-17 08:46:27 +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
ba5c78d45f update: fetch Builds one time and reuse 2025-07-16 16:35:58 +02:00
linsui
8f1411607a Merge branch 'update-gradle-job' into 'master'
gitlab-ci: update "gradle" job to only check files when changed

See merge request fdroid/fdroidserver!1682
2025-07-16 12:23:02 +00: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
c6c4764b33 Merge branch 'gradle-release-checksums.py' into 'master'
bot: update to gradle v7.6.6

See merge request fdroid/fdroidserver!1681
2025-07-16 12:06:44 +00:00
fdroid-bot
7946acd52a gradle v8.14.3 2025-07-16 11:52:37 +00:00
linsui
0a91b98aee Merge branch 'gradle' into 'master'
AGP 8.11 requires Gradle 8.13

See merge request fdroid/fdroidserver!1678
2025-07-06 07:30:11 +00:00
linsui
09a51a429b AGP 8.11 requires Gradle 8.13 2025-07-06 07:29:46 +00:00
linsui
47b5ecdc8c Merge branch 'gradle' into 'master'
gradle 8.14.3

See merge request fdroid/fdroidserver!1677
2025-07-05 07:15:55 +00:00
linsui
909864a8c7 gradle 8.14.3 2025-07-05 15:03:27 +08:00
Hans-Christoph Steiner
47b9b24aef Merge branch 'gitlab-ci-pages-needs' into 'master'
gitlab-ci: 'pages' needs 'Build documentation' but it has `changes:`

See merge request fdroid/fdroidserver!1670
2025-06-26 06:55:43 +00:00
Hans-Christoph Steiner
f4f1c003a6 gitlab-ci: 'pages' needs 'Build documentation' but it has changes:
Fixes this error:

> Unable to create pipeline
>
> 'pages' job needs 'Build documentation' job, but 'Build documentation'
> does not exist in the pipeline. This might be because of the only,
> except, or rules keywords. To need a job that sometimes does not exist
> in the pipeline, use needs:optional.
2025-06-26 06:44:56 +00:00
Michael Pöhn
51b55963a5 Merge branch 'only-copy-icons-if-they-changed' into 'master'
only copy icons into repo/ if they changed

See merge request fdroid/fdroidserver!1664
2025-06-25 10:32:06 +00: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
8a36e264b4 Merge branch 'merge_weblate' into 'master'
weblate

See merge request fdroid/fdroidserver!1676
2025-06-25 08:05:47 +00:00
Hans-Christoph Steiner
d5d65cfabd
make -C locale update 2025-06-25 09:54:03 +02:00
Hans-Christoph Steiner
dcb804f70d enable Bashkir (ba) as supported locale, its at 100% 2025-06-25 09:50:54 +02:00
Zulfar
a0cae97155 Translated using Weblate: Bashkir (ba) by Zulfar <mzulfar20@gmail.com>
Currently translated at 100.0% (579 of 579 strings)

Added translation using Weblate: Bashkir (ba) by Zulfar <mzulfar20@gmail.com>

Co-authored-by: Zulfar <mzulfar20@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/f-droid/fdroidserver/ba/
Translation: F-Droid/F-Droid Server
2025-06-25 09:49:50 +02:00
Hans-Christoph Steiner
956cb11f91
gitlab-ci: rm dash from macOS tests, it reliably segfaults
dash rarely changes and is reliably run on Debian in the hooks/pre-commit
job.  So remove it from the macOS job, where it is flaky and hard to
troubleshoot (who has macOS? ;-)

https://gitlab.com/fdroid/fdroidserver/-/jobs/10454622138

```
==============================================================================
run commit hooks
+ echo_header 'run commit hooks'
+ test -x ./hooks/pre-commit
+ ./hooks/pre-commit
WARNING: pydocstyle is not installed, using dummy placeholder!
WARNING: pyflakes is not installed, using dummy placeholder!
WARNING: pycodestyle is not installed, using dummy placeholder!
./hooks/pre-commit: line 111: 20320 Segmentation fault: 11  $DASH -n $f
ERROR: dash tests failed!
```
2025-06-25 09:42:46 +02:00
142 changed files with 4080 additions and 997 deletions

View file

@ -98,6 +98,14 @@ metadata_v0:
# Ubuntu and other distros often lack https:// support
- grep Debian /etc/issue.net
&& { find /etc/apt/sources.list* -type f | xargs sed -i s,http:,https:, ; }
# The official Debian docker images ship without ca-certificates,
# TLS certificates cannot be verified until that is installed. The
# following code turns off TLS verification, and enables HTTPS, so
# at least unverified TLS is used for apt-get instead of plain
# HTTP. Once ca-certificates is installed, the CA verification is
# enabled by removing this config. This set up makes the initial
# `apt-get update` and `apt-get install` look the same as verified
# TLS to the network observer and hides the metadata.
- echo 'Acquire::https::Verify-Peer "false";' > /etc/apt/apt.conf.d/99nocacertificates
- apt-get update
- apt-get install ca-certificates
@ -212,21 +220,6 @@ ubuntu_jammy_pip:
- LANGUAGE='de' fdroid --help | grep 'Gültige Befehle sind'
# The gradlew-fdroid tests are isolated from the rest of the test
# suite, so they run as their own job.
gradlew-fdroid:
image: debian:bookworm-slim
<<: *apt-template
rules:
- changes:
- .gitlab-ci.yml
- gradlew-fdroid
- tests/test_gradlew-fdroid
script:
- apt-get install ca-certificates curl default-jdk-headless unzip
- ./tests/test_gradlew-fdroid
# Run all the various linters and static analysis tools.
hooks/pre-commit:
stage: lint
@ -286,11 +279,9 @@ shellcheck:
rules:
- changes:
- .gitlab-ci.yml
- gradlew-fdroid
- hooks/install-hooks.sh
- hooks/pre-commit
- tests/run-tests
- tests/test_gradlew-fdroid
<<: *apt-template
script:
- apt-get install shellcheck
@ -299,10 +290,6 @@ shellcheck:
hooks/install-hooks.sh
hooks/pre-commit
tests/run-tests
# TODO make the gradlew things pass the standard above
- shellcheck --severity=error --color
gradlew-fdroid
tests/test_gradlew-fdroid
# Check all the dependencies in Debian to mirror production. CVEs are
# generally fixed in the latest versions in pip/pypi.org, so it isn't
@ -443,7 +430,7 @@ macOS:
- brew install --cask android-commandlinetools temurin # temurin is a JDK
# test suite dependencies
- brew install dash bash coreutils gnu-sed
- brew install bash coreutils gnu-sed
# TODO port tests/run-tests to POSIX and gsed, it has a couple GNU-isms like du --bytes
- export PATH="$(brew --prefix fdroidserver)/libexec/bin:$(brew --prefix coreutils)/libexec/gnubin:$PATH"
@ -460,42 +447,26 @@ macOS:
- echo "macOS sticks with bash 3.x because of licenses, so avoid new bash syntax"
- /bin/bash --version
- /bin/bash -n gradlew-fdroid tests/run-tests
- /bin/bash -n tests/run-tests
# test fdroidserver from git with current package's dependencies
- fdroid="$(brew --prefix fdroidserver)/libexec/bin/python3 $PWD/fdroid" ./tests/run-tests
gradle:
image: debian:bookworm-slim
rules:
- if: "$PERSONAL_ACCESS_TOKEN"
image: debian:trixie-slim
<<: *apt-template
variables:
GIT_DEPTH: 1000
rules:
- changes:
- .gitlab-ci.yml
- makebuildserver
script:
- apt-get install
ca-certificates
git
openssh-client
python3-bs4
python3-colorama
python3-git
python3-gitlab
python3-packaging
python3-requests
# if this is a merge request fork, then only check if relevant files changed
- if [ "$CI_PROJECT_NAMESPACE" != "fdroid" ]; then
set -x;
git fetch https://gitlab.com/fdroid/fdroidserver.git;
for f in `git diff --name-only --diff-filter=d FETCH_HEAD...HEAD`; do
test "$f" == "makebuildserver" && export CHANGED="$f $CHANGED";
test "$f" == "gradlew-fdroid" && export CHANGED="$f $CHANGED";
done;
test -z "$CHANGED" && exit;
echo $CHANGED;
set +x;
fi
- ./tests/gradle-release-checksums.py
@ -550,6 +521,8 @@ fdroid build:
env HOME=$home_vagrant
fdroid"
- git -C $home_vagrant/gradlew-fdroid pull
- chown -R vagrant $home_vagrant
- chown -R vagrant $fdroidserver/.git
- chown vagrant $fdroidserver/
@ -734,7 +707,9 @@ pages:
artifacts:
paths:
- public
needs: ["Build documentation"]
needs:
- job: "Build documentation"
optional: true
rules:
- if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH' # only publish pages on default (master) branch
@ -778,12 +753,12 @@ docker:
# PUBLISH is the signing server. It has a very minimal manual setup.
PUBLISH:
image: debian:bullseye-backports
image: debian:bookworm-backports
<<: *python-rules-changes
script:
- apt-get update
- apt-get -qy upgrade
- apt-get -qy install --no-install-recommends -t bullseye-backports
- apt-get -qy install --no-install-recommends -t bookworm-backports
androguard
apksigner
curl

View file

@ -20,6 +20,7 @@ include examples/template.yml
include examples/Vagrantfile.yaml
include gradlew-fdroid
include LICENSE
include locale/ba/LC_MESSAGES/fdroidserver.po
include locale/bo/LC_MESSAGES/fdroidserver.po
include locale/ca/LC_MESSAGES/fdroidserver.po
include locale/cs/LC_MESSAGES/fdroidserver.po

View file

@ -37,11 +37,22 @@ RUN useradd --create-home -s /bin/bash vagrant && echo -n 'vagrant:vagrant' | ch
#
# Ensure fdroidserver's dependencies are marked manual before purging
# unneeded packages, otherwise, all its dependencies get purged.
#
# The official Debian docker images ship without ca-certificates, so
# TLS certificates cannot be verified until that is installed. The
# following code temporarily turns off TLS verification, and enables
# HTTPS, so at least unverified TLS is used for apt-get instead of
# plain HTTP. Once ca-certificates is installed, the CA verification
# is enabled by removing the newly created config file. This set up
# makes the initial `apt-get update` and `apt-get install` look the
# same as verified TLS to the network observer and hides the metadata.
RUN printf "path-exclude=/usr/share/locale/*\npath-exclude=/usr/share/man/*\npath-exclude=/usr/share/doc/*\npath-include=/usr/share/doc/*/copyright\n" >/etc/dpkg/dpkg.cfg.d/01_nodoc \
&& mkdir -p /usr/share/man/man1 \
&& echo 'Acquire::https::Verify-Peer "false";' > /etc/apt/apt.conf.d/99nocacertificates \
&& find /etc/apt/sources.list* -type f -exec sed -i s,http:,https:, {} \; \
&& apt-get update \
&& apt-get install ca-certificates \
&& sed -i 's,http:,https:,' /etc/apt/sources.list.d/debian.sources \
&& rm /etc/apt/apt.conf.d/99nocacertificates \
&& apt-get upgrade \
&& apt-get dist-upgrade \
&& apt-get install openssh-client iproute2 python3 openssh-server sudo \

View file

@ -25,7 +25,12 @@ fi
chmod -R a+rX /opt/gradle
test -e /opt/gradle/bin || mkdir -p /opt/gradle/bin
ln -fs /home/vagrant/fdroidserver/gradlew-fdroid /opt/gradle/bin/gradle
git clone --depth 1 https://gitlab.com/fdroid/gradlew-fdroid.git /home/vagrant/gradlew-fdroid/
chmod 0755 /home/vagrant/gradlew-fdroid/gradlew-fdroid
chmod -R u+rwX,a+rX,go-w /home/vagrant/gradlew-fdroid/
ln -fs /home/vagrant/gradlew-fdroid/gradlew-fdroid /opt/gradle/bin/gradle
ln -fs /home/vagrant/gradlew-fdroid/gradlew-fdroid /usr/local/bin/
chown -h vagrant:vagrant /opt/gradle/bin/gradle
chown vagrant:vagrant /opt/gradle/versions
chmod 0755 /opt/gradle/versions

View file

@ -12,6 +12,7 @@
#
import os
import sys
sys.path.insert(0, os.path.abspath('../../fdroidserver'))
# -- Project information -----------------------------------------------------

View file

@ -6,7 +6,6 @@ import argparse
import logging
from fdroidserver import _, common, metadata
from fdroidserver.exception import VCSException
fdroid_summary = 'reset app VCSs to the latest version'

View file

@ -4,6 +4,7 @@
import os
from argparse import ArgumentParser
from fdroidserver import common
from fdroidserver.common import FDroidPopen
from fdroidserver.exception import BuildException

View file

@ -4,6 +4,7 @@
import os
from argparse import ArgumentParser
from fdroidserver import common
from fdroidserver.common import FDroidPopen
from fdroidserver.exception import BuildException

View file

@ -4,6 +4,7 @@
#
from argparse import ArgumentParser
from fdroidserver import common, index
fdroid_summary = 'export the keystore in standard PEM format'

View file

@ -8,6 +8,7 @@
import argparse
import os
import pprint
from fdroidserver import _, common, metadata
fdroid_summary = 'prepare the srclibs for `fdroid build --on-server`'

View file

@ -1,6 +1,7 @@
#!/usr/bin/env python3
from argparse import ArgumentParser
from fdroidserver import common
from fdroidserver.common import FDroidPopen
from fdroidserver.exception import BuildException

View file

@ -3,7 +3,6 @@ import glob
import os
import sys
# support running straight from git and standard installs
rootpaths = [
os.path.realpath(os.path.join(os.path.dirname(__file__), '..')),
@ -15,7 +14,10 @@ rootpaths = [
localedir = None
for rootpath in rootpaths:
if len(glob.glob(os.path.join(rootpath, 'locale', '*', 'LC_MESSAGES', 'fdroidserver.mo'))) > 0:
found_mo = glob.glob(
os.path.join(rootpath, 'locale', '*', 'LC_MESSAGES', 'fdroidserver.mo')
)
if len(found_mo) > 0:
localedir = os.path.join(rootpath, 'locale')
break
@ -24,39 +26,52 @@ gettext.textdomain('fdroidserver')
_ = gettext.gettext
from fdroidserver.exception import (FDroidException,
MetaDataException,
VerificationException) # NOQA: E402
from fdroidserver.exception import (
FDroidException,
MetaDataException,
VerificationException, # NOQA: E402
)
FDroidException # NOQA: B101
MetaDataException # NOQA: B101
VerificationException # NOQA: B101
from fdroidserver.common import (verify_apk_signature,
genkeystore as generate_keystore) # NOQA: E402
from fdroidserver.common import genkeystore as generate_keystore # NOQA: E402
from fdroidserver.common import verify_apk_signature
verify_apk_signature # NOQA: B101
generate_keystore # NOQA: B101
from fdroidserver.index import (download_repo_index,
download_repo_index_v1,
download_repo_index_v2,
get_mirror_service_urls,
make as make_index) # NOQA: E402
from fdroidserver.index import (
download_repo_index,
download_repo_index_v1,
download_repo_index_v2,
get_mirror_service_urls,
)
from fdroidserver.index import make as make_index # NOQA: E402
download_repo_index # NOQA: B101
download_repo_index_v1 # NOQA: B101
download_repo_index_v2 # NOQA: B101
get_mirror_service_urls # NOQA: B101
make_index # NOQA: B101
from fdroidserver.update import (process_apk,
process_apks,
scan_apk,
scan_repo_files) # NOQA: E402
from fdroidserver.update import (
process_apk,
process_apks,
scan_apk,
scan_repo_files, # NOQA: E402
)
process_apk # NOQA: B101
process_apks # NOQA: B101
scan_apk # NOQA: B101
scan_repo_files # NOQA: B101
from fdroidserver.deploy import (update_awsbucket,
update_servergitmirrors,
update_serverwebroots,
update_serverwebroot) # NOQA: E402
from fdroidserver.deploy import (
update_awsbucket,
update_servergitmirrors,
update_serverwebroot, # NOQA: E402
update_serverwebroots,
)
update_awsbucket # NOQA: B101
update_servergitmirrors # NOQA: B101
update_serverwebroots # NOQA: B101

View file

@ -18,20 +18,20 @@
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
import re
import sys
import importlib.metadata
import logging
import os
import pkgutil
import logging
import importlib.metadata
import git
import fdroidserver.common
import fdroidserver.metadata
from fdroidserver import _
import re
import sys
from argparse import ArgumentError
from collections import OrderedDict
import git
import fdroidserver.common
import fdroidserver.metadata
from fdroidserver import _
COMMANDS = OrderedDict([
("build", _("Build a package from source")),

View file

@ -68,9 +68,18 @@ import struct
import sys
import zipfile
import zlib
from collections import namedtuple
from typing import Any, BinaryIO, Callable, Dict, Iterable, Iterator, Optional, Tuple, Union
from typing import (
Any,
BinaryIO,
Callable,
Dict,
Iterable,
Iterator,
Optional,
Tuple,
Union,
)
__version__ = "1.1.1"
NAME = "apksigcopier"

View file

@ -28,22 +28,21 @@
# the F-Droid client.
import collections
import defusedxml.minidom
import git
import glob
import os
import json
import logging
import requests
import os
import shutil
import tempfile
import zipfile
from argparse import ArgumentParser
from typing import Optional
from . import _
from . import common
from . import deploy
import defusedxml.minidom
import git
import requests
from . import _, common, deploy
from .exception import FDroidException

View file

@ -18,31 +18,27 @@
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
import os
import shutil
import argparse
import glob
import subprocess
import logging
import os
import posixpath
import re
import shutil
import subprocess
import tarfile
import threading
import traceback
import time
import requests
import tempfile
import argparse
import logging
import threading
import time
import traceback
from gettext import ngettext
from pathlib import Path
from . import _
from . import common
from . import net
from . import metadata
from . import scanner
from . import vmtools
import requests
from . import _, common, metadata, net, scanner, vmtools
from .common import FDroidPopen
from .exception import FDroidException, BuildException, VCSException
from .exception import BuildException, FDroidException, VCSException
try:
import paramiko
@ -155,9 +151,7 @@ def build_server(app, build, vcs, build_dir, output_dir, log_dir, force):
ftp.mkdir('fdroidserver')
ftp.chdir('fdroidserver')
ftp.put(os.path.join(serverpath, '..', 'fdroid'), 'fdroid')
ftp.put(os.path.join(serverpath, '..', 'gradlew-fdroid'), 'gradlew-fdroid')
ftp.chmod('fdroid', 0o755) # nosec B103 permissions are appropriate
ftp.chmod('gradlew-fdroid', 0o755) # nosec B103 permissions are appropriate
send_dir(os.path.join(serverpath))
ftp.chdir(homedir)

View file

@ -19,28 +19,30 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
import configparser
import git
import copy
import logging
import os
import re
import urllib.request
import urllib.error
import time
import subprocess
import sys
from argparse import ArgumentParser
import time
import traceback
import logging
import copy
import urllib.error
import urllib.parse
import urllib.request
from argparse import ArgumentParser
from pathlib import Path
from typing import Optional
from . import _
from . import common
from . import metadata
from . import net
from .exception import VCSException, NoSubmodulesException, FDroidException, MetaDataException
import git
from . import _, common, metadata, net
from .exception import (
FDroidException,
MetaDataException,
NoSubmodulesException,
VCSException,
)
# https://gitlab.com/fdroid/checkupdates-runner/-/blob/1861899262a62a4ed08fa24e5449c0368dfb7617/.gitlab-ci.yml#L36
BOT_EMAIL = 'fdroidci@bubu1.eu'

View file

@ -52,53 +52,58 @@ environment variable to include.
"""
import ast
import base64
import copy
import difflib
from typing import List
import git
import filecmp
import glob
import gzip
import hashlib
import io
import itertools
import json
import logging
import operator
import os
import sys
import re
import ast
import gzip
import shutil
import socket
import stat
import subprocess
import time
import operator
import logging
import hashlib
import socket
import base64
import zipfile
import sys
import tempfile
import json
from pathlib import Path
import defusedxml.ElementTree as XMLElementTree
import time
import zipfile
from argparse import BooleanOptionalAction
from asn1crypto import cms
from base64 import urlsafe_b64encode
from binascii import hexlify
from datetime import datetime, timedelta, timezone
from pathlib import Path
from queue import Queue
from typing import List
from urllib.parse import urlparse, urlsplit, urlunparse
from zipfile import ZipFile
import defusedxml.ElementTree as XMLElementTree
import git
from asn1crypto import cms
import fdroidserver.metadata
from fdroidserver import _
from fdroidserver._yaml import yaml, config_dump
from fdroidserver.exception import FDroidException, VCSException, NoSubmodulesException, \
BuildException, VerificationException, MetaDataException
from .asynchronousfilereader import AsynchronousFileReader
from .looseversion import LooseVersion
from fdroidserver._yaml import config_dump, yaml
from fdroidserver.exception import (
BuildException,
FDroidException,
MetaDataException,
NoSubmodulesException,
VCSException,
VerificationException,
)
from . import apksigcopier, common
from .asynchronousfilereader import AsynchronousFileReader
from .looseversion import LooseVersion
# The path to this fdroidserver distribution
FDROID_PATH = os.path.realpath(os.path.join(os.path.dirname(__file__), '..'))
@ -183,7 +188,7 @@ default_config = {
'scan_binary': False,
'ant': "ant",
'mvn3': "mvn",
'gradle': os.path.join(FDROID_PATH, 'gradlew-fdroid'),
'gradle': shutil.which('gradlew-fdroid'),
'sync_from_local_copy_dir': False,
'allow_disabled_algorithms': False,
'keep_when_not_allowed': False,
@ -812,7 +817,10 @@ def load_localized_config(name, repodir):
icons_dir = os.path.join(repodir, 'icons')
if not os.path.exists(icons_dir):
os.makedirs(icons_dir, exist_ok=True)
shutil.copy(os.path.join("config", value), icons_dir)
src = os.path.join("config", value)
dest = os.path.join(icons_dir, os.path.basename(src))
if not os.path.exists(dest) or not filecmp.cmp(src, dest):
shutil.copy2(src, dest)
ret[afname][key][locale] = file_entry(
os.path.join(icons_dir, value)
)
@ -2729,17 +2737,17 @@ def getpaths_map(build_dir, globpaths):
paths[p] = [r[len(str(build_dir)) + 1:] for r in glob.glob(full_path)]
if not paths[p]:
not_found_paths.append(p)
return paths, not_found_paths
def getpaths(build_dir, globpaths):
"""Extend via globbing the paths from a field and return them as a set."""
paths_map, not_found_paths = getpaths_map(build_dir, globpaths)
if not_found_paths:
raise FDroidException(
"Some glob paths did not match any files/dirs:\n"
+ "\n".join(not_found_paths)
)
return paths
def getpaths(build_dir, globpaths):
"""Extend via globbing the paths from a field and return them as a set."""
paths_map = getpaths_map(build_dir, globpaths)
paths = set()
for k, v in paths_map.items():
for p in v:
@ -2900,9 +2908,9 @@ def is_debuggable_or_testOnly(apkfile):
return False
try:
# these were moved in androguard 4.0
from androguard.core.axml import AXMLParser, format_value, START_TAG
from androguard.core.axml import START_TAG, AXMLParser, format_value
except ImportError:
from androguard.core.bytecodes.axml import AXMLParser, format_value, START_TAG
from androguard.core.bytecodes.axml import START_TAG, AXMLParser, format_value
_androguard_logging_level()
with ZipFile(apkfile) as apk:
@ -2974,9 +2982,23 @@ def get_apk_id_androguard(apkfile):
try:
# these were moved in androguard 4.0
from androguard.core.axml import AXMLParser, format_value, START_TAG, END_TAG, TEXT, END_DOCUMENT
from androguard.core.axml import (
END_DOCUMENT,
END_TAG,
START_TAG,
TEXT,
AXMLParser,
format_value,
)
except ImportError:
from androguard.core.bytecodes.axml import AXMLParser, format_value, START_TAG, END_TAG, TEXT, END_DOCUMENT
from androguard.core.bytecodes.axml import (
END_DOCUMENT,
END_TAG,
START_TAG,
TEXT,
AXMLParser,
format_value,
)
_androguard_logging_level()
appid = None

View file

@ -16,28 +16,28 @@
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
import sys
import glob
import hashlib
import json
import logging
import os
import pathlib
import re
import shutil
import subprocess
import sys
import time
import urllib
from typing import Dict, List
from git import Repo
import yaml
from argparse import ArgumentParser
import logging
import pathlib
import shutil
from typing import Dict, List
import git
import yaml
from git import Repo
import fdroidserver.github
from . import _
from . import common
from . import index
from . import _, common, index
from .exception import FDroidException
config = None
@ -349,8 +349,8 @@ def update_awsbucket_libcloud(repo_section, is_index_only=False):
import libcloud.security
libcloud.security.VERIFY_SSL_CERT = True
from libcloud.storage.types import Provider, ContainerDoesNotExistError
from libcloud.storage.providers import get_driver
from libcloud.storage.types import ContainerDoesNotExistError, Provider
if not config.get('awsaccesskeyid') or not config.get('awssecretkey'):
raise FDroidException(
@ -854,9 +854,10 @@ def upload_to_android_observatory(repo_section):
def upload_apk_to_android_observatory(path):
# depend on requests and lxml only if users enable AO
import requests
from . import net
from lxml.html import fromstring
from . import net
apkfilename = os.path.basename(path)
r = requests.post(
'https://androidobservatory.org/',

View file

@ -35,6 +35,10 @@ class VCSException(FDroidException):
pass
class NoVersionCodeException(FDroidException):
pass
class NoSubmodulesException(VCSException):
pass

View file

@ -18,8 +18,8 @@
import json
import pathlib
import urllib.request
import urllib.parse
import urllib.request
class GithubApi:

View file

@ -16,14 +16,13 @@
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
import os
import glob
from argparse import ArgumentParser
import logging
import os
import time
from argparse import ArgumentParser
from . import _
from . import common
from . import _, common
from .common import FDroidPopen
from .exception import FDroidException

View file

@ -30,6 +30,7 @@ these installed on the signing server.
"""
import calendar
import collections
import hashlib
import json
@ -41,20 +42,27 @@ import sys
import tempfile
import urllib.parse
import zipfile
import calendar
from binascii import hexlify, unhexlify
from datetime import datetime, timezone
from pathlib import Path
from xml.dom.minidom import Document
from . import _
from . import common
from . import metadata
from . import signindex
from fdroidserver.common import ANTIFEATURES_CONFIG_NAME, CATEGORIES_CONFIG_NAME, CONFIG_CONFIG_NAME, MIRRORS_CONFIG_NAME, RELEASECHANNELS_CONFIG_NAME, DEFAULT_LOCALE, FDroidPopen, FDroidPopenBytes, load_publish_signer_fingerprints
from fdroidserver._yaml import yaml
from fdroidserver.common import (
ANTIFEATURES_CONFIG_NAME,
CATEGORIES_CONFIG_NAME,
CONFIG_CONFIG_NAME,
DEFAULT_LOCALE,
MIRRORS_CONFIG_NAME,
RELEASECHANNELS_CONFIG_NAME,
FDroidPopen,
FDroidPopenBytes,
load_publish_signer_fingerprints,
)
from fdroidserver.exception import FDroidException, VerificationException
from . import _, common, metadata, signindex
def make(apps, apks, repodir, archive):
"""Generate the repo index files.
@ -587,7 +595,10 @@ def convert_version(version, app, repodir):
ver["file"]["ipfsCIDv1"] = ipfsCIDv1
if "srcname" in version:
ver["src"] = common.file_entry(os.path.join(repodir, version["srcname"]))
ver["src"] = common.file_entry(
os.path.join(repodir, version["srcname"]),
version["srcnameSha256"],
)
if "obbMainFile" in version:
ver["obbMainFile"] = common.file_entry(
@ -956,7 +967,7 @@ def make_v1(apps, packages, repodir, repodict, requestsdict, signer_fingerprints
for k, v in sorted(package.items()):
if not v:
continue
if k in ('icon', 'icons', 'icons_src', 'ipfsCIDv1', 'name'):
if k in ('icon', 'icons', 'icons_src', 'ipfsCIDv1', 'name', 'srcnameSha256'):
continue
if k == 'antiFeatures':
d[k] = sorted(v.keys())

View file

@ -19,16 +19,15 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
import glob
import logging
import os
import re
import shutil
import socket
import sys
from argparse import ArgumentParser
import logging
from . import _
from . import common
from . import _, common
from .exception import FDroidException
config = {}

View file

@ -17,24 +17,21 @@
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
import sys
import os
import glob
import locale
import logging
import os
import sys
import termios
import tty
import defusedxml.ElementTree as XMLElementTree
from argparse import ArgumentParser, BooleanOptionalAction
from pathlib import Path
from urllib.parse import urlencode, urlparse, urlunparse
from . import _
from . import common, github, index, net
from .exception import FDroidException
import defusedxml.ElementTree as XMLElementTree
from . import _, common, github, index, net
from .exception import FDroidException
DEFAULT_IPFS_GATEWAYS = ("https://gateway.ipfs.io/ipfs/",)
MAVEN_CENTRAL_MIRRORS = [

View file

@ -24,9 +24,10 @@ import urllib.parse
from argparse import ArgumentParser
from pathlib import Path
from . import _, common, metadata, rewritemeta
from fdroidserver._yaml import yaml
from . import _, common, metadata, rewritemeta
config = None

View file

@ -18,19 +18,19 @@
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
from pathlib import Path
import math
import platform
import os
import re
import logging
import ruamel.yaml
import math
import os
import platform
import re
from collections import OrderedDict
from pathlib import Path
from . import common
from . import _
from .exception import MetaDataException
import ruamel.yaml
from . import _, common
from ._yaml import yaml
from .exception import MetaDataException
srclibs = None
warnings_action = None

View file

@ -7,13 +7,10 @@ import posixpath
import socket
import subprocess
import sys
from argparse import ArgumentParser
import urllib.parse
from argparse import ArgumentParser
from . import _
from . import common
from . import index
from . import update
from . import _, common, index, update
def _run_wget(path, urls, verbose=False):
@ -133,6 +130,7 @@ def main():
import io
import json
import zipfile
from . import net
url = _append_to_url_path(section, 'index-v1.jar')

View file

@ -21,10 +21,11 @@ import copy
import logging
import os
import random
import requests
import tempfile
import time
import urllib
import requests
import urllib3
from requests.adapters import HTTPAdapter, Retry

View file

@ -19,25 +19,25 @@
import base64
import datetime
import git
import hashlib
import inspect
import logging
import os
import paramiko
import platform
import shutil
import ssl
import subprocess
import sys
import tempfile
import yaml
from urllib.parse import urlparse
from argparse import ArgumentParser
from typing import Optional
from urllib.parse import urlparse
from . import _
from . import common
import git
import paramiko
import yaml
from . import _, common
from .exception import VCSException
# hard coded defaults for Android ~/.android/debug.keystore files

View file

@ -28,23 +28,21 @@ mostly reports success by moving an APK from unsigned/ to repo/
"""
import sys
import glob
import hashlib
import json
import logging
import os
import re
import shutil
import glob
import hashlib
from argparse import ArgumentParser
from collections import OrderedDict
import logging
from gettext import ngettext
import json
import sys
import time
import zipfile
from argparse import ArgumentParser
from collections import OrderedDict
from gettext import ngettext
from . import _
from . import common
from . import metadata
from . import _, common, metadata
from .common import FDroidPopen
from .exception import BuildException, FDroidException

View file

@ -17,8 +17,8 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
from argparse import ArgumentParser
from . import common
from . import metadata
from . import common, metadata
def main():

View file

@ -17,16 +17,14 @@
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
from argparse import ArgumentParser
import logging
import io
import tempfile
import logging
import shutil
import tempfile
from argparse import ArgumentParser
from pathlib import Path
from . import _
from . import common
from . import metadata
from . import _, common, metadata
config = None

View file

@ -729,6 +729,7 @@ def scan_source(build_dir, build=metadata.Build(), json_per_build=None):
'www.jitpack.io',
'repo.maven.apache.org/maven2',
'oss.jfrog.org/artifactory/oss-snapshot-local',
'central.sonatype.com/repository/maven-snapshots/',
'oss.sonatype.org/content/repositories/snapshots',
'oss.sonatype.org/content/repositories/releases',
'oss.sonatype.org/content/groups/public',
@ -750,8 +751,12 @@ def scan_source(build_dir, build=metadata.Build(), json_per_build=None):
]
]
scanignore = common.getpaths_map(build_dir, build.scanignore)
scandelete = common.getpaths_map(build_dir, build.scandelete)
scanignore, scanignore_not_found_paths = common.getpaths_map(
build_dir, build.scanignore
)
scandelete, scandelete_not_found_paths = common.getpaths_map(
build_dir, build.scandelete
)
scanignore_worked = set()
scandelete_worked = set()
@ -1109,11 +1114,19 @@ def scan_source(build_dir, build=metadata.Build(), json_per_build=None):
json_per_build,
)
for p in scanignore_not_found_paths:
logging.error(_("Non-exist scanignore path: %s") % p)
count += 1
for p in scanignore:
if p not in scanignore_worked:
logging.error(_('Unused scanignore path: %s') % p)
count += 1
for p in scandelete_not_found_paths:
logging.error(_("Non-exist scandelete path: %s") % p)
count += 1
for p in scandelete:
if p not in scandelete_worked:
logging.error(_('Unused scandelete path: %s') % p)

View file

@ -15,15 +15,13 @@
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <https://www.gnu.org/licenses/>.
import logging
import os
import re
import sys
from argparse import ArgumentParser
import re
import os
import sys
import logging
from . import _
from . import common
from . import _, common
from .exception import FDroidException

View file

@ -17,15 +17,13 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
import json
import logging
import os
import time
import zipfile
from argparse import ArgumentParser
import logging
from . import _
from . import common
from . import metadata
from . import _, common, metadata
from .exception import FDroidException
config = None

View file

@ -28,8 +28,8 @@ Example
import os
import sys
import time
import threading
import time
class Tail(object):

View file

@ -20,25 +20,27 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
import argparse
import sys
import os
import shutil
import copy
import filecmp
import glob
import logging
import re
import socket
import warnings
import zipfile
import hashlib
import json
import logging
import os
import re
import shutil
import socket
import sys
import time
import yaml
import copy
import warnings
import zipfile
from argparse import ArgumentParser
from datetime import datetime, timezone
from pathlib import Path
import asn1crypto.cms
import defusedxml.ElementTree as ElementTree
from datetime import datetime, timezone
from argparse import ArgumentParser
from pathlib import Path
import yaml
try:
from yaml import CSafeLoader as SafeLoader
@ -48,14 +50,13 @@ except ImportError:
import collections
from binascii import hexlify
from . import _
from . import common
from . import metadata
from .common import DEFAULT_LOCALE
from .exception import BuildException, FDroidException, VerificationException
from PIL import Image, PngImagePlugin
import fdroidserver.index
from PIL import Image, PngImagePlugin
from . import _, common, metadata
from .common import DEFAULT_LOCALE
from .exception import BuildException, FDroidException, NoVersionCodeException, VerificationException
if hasattr(Image, 'DecompressionBombWarning'):
warnings.simplefilter('error', Image.DecompressionBombWarning)
@ -369,6 +370,12 @@ def get_cache():
v['antiFeatures'] = {k: {} for k in sorted(v['antiFeatures'])}
if 'added' in v:
v['added'] = datetime.fromtimestamp(v['added'], tz=timezone.utc)
if v.get('srcname') and not v.get('srcnameSha256'):
f = f'archive/{v["srcname"]}'
if not os.path.exists(f):
f = f'repo/{v["srcname"]}'
if os.path.exists(f):
v['srcnameSha256'] = common.sha256sum(f)
return apkcache
@ -1147,6 +1154,7 @@ def insert_localized_app_metadata(apps):
metadata/<locale>/
fastlane/metadata/android/<locale>/
<subdir>/fastlane/metadata/android/<locale>/
src/<buildFlavor>/fastlane/metadata/android/<locale>/
...as well as the /metadata/<packageName>/<locale> directory.
@ -1166,7 +1174,7 @@ def insert_localized_app_metadata(apps):
https://f-droid.org/en/docs/All_About_Descriptions_Graphics_and_Screenshots/#in-the-apps-build-metadata-in-an-fdroiddata-collection
"""
sourcedirs = glob.glob(os.path.join('build', '[A-Za-z]*', 'src', '[A-Za-z]*', 'fastlane', 'metadata', 'android', '[a-z][a-z]*'))
sourcedirs += glob.glob(os.path.join('build', '[A-Za-z]*', 'fastlane', 'metadata', 'android', '[a-z][a-z]*'))
sourcedirs += glob.glob(os.path.join('build', '[A-Za-z]*', '**', 'fastlane', 'metadata', 'android', '[a-z][a-z]*'), recursive=True)
sourcedirs += glob.glob(os.path.join('build', '[A-Za-z]*', 'metadata', '[a-z][a-z]*'))
sourcedirs += glob.glob(os.path.join('metadata', '[A-Za-z]*', '[a-z][a-z]*'))
@ -1182,20 +1190,40 @@ def insert_localized_app_metadata(apps):
locale = segments[-1]
destdir = os.path.join('repo', packageName, locale)
builds = apps.get(packageName, {}).get('Builds', [])
found_in_subdir = (
builds
and len(segments) > 6
and segments[-4] == "fastlane"
and segments[-3] == "metadata"
and segments[-2] == "android"
and '/'.join(segments[2:-4]) == builds[-1].get('subdir')
)
# flavors specified in build receipt
build_flavors = []
if (
apps[packageName]
and len(apps[packageName].get('Builds', [])) > 0
and 'gradle' in apps[packageName]['Builds'][-1]
and apps[packageName]['Builds'][-1]['gradle'] != ['yes']
):
if builds and 'gradle' in builds[-1] and builds[-1]['gradle'] != ['yes']:
build_flavors = common.calculate_gradle_flavor_combination(
apps[packageName]['Builds'][-1]['gradle']
builds[-1]['gradle']
)
found_in_flavor = (
len(segments) > 7
and segments[2] == 'src'
and segments[4] == "fastlane"
and segments[3] in build_flavors
)
if len(segments) >= 5 and segments[4] == "fastlane" and segments[3] not in build_flavors:
logging.debug("ignoring due to wrong flavor")
if (
not found_in_subdir
and not found_in_flavor
and segments[0] == 'build'
and segments[2] not in ('metadata', 'fastlane')
):
logging.debug(
'Not scanning "{dir}" with unknown subdir or gradle flavor "{value}"'.format(
dir=os.path.relpath(root), value=segments[3]
)
)
continue
for f in files:
@ -1233,9 +1261,7 @@ def insert_localized_app_metadata(apps):
try:
versionCode = int(base)
locale = segments[-2]
if versionCode in [
a["versionCode"] for a in apps[packageName]["Builds"]
]:
if versionCode in [b["versionCode"] for b in builds]:
_set_localized_text_entry(
apps[packageName],
locale,
@ -1460,19 +1486,18 @@ def insert_localized_ios_app_metadata(apps_with_packages):
fdroidserver.update.copy_ios_screenshots_to_repo(screenshots, package_name)
# lookup icons, copy them and put them into app
icon_path = _get_ipa_icon(Path('build') / package_name)
icon_src = _get_ipa_icon(Path('build') / package_name)
icon_dest = Path('repo') / package_name / 'icon.png' # for now just assume png
icon_stat = os.stat(icon_path)
app['iconv2'] = {
DEFAULT_LOCALE: {
'name': str(icon_dest).lstrip('repo'),
'sha256': common.sha256sum(icon_dest),
'size': icon_stat.st_size,
'size': os.path.getsize(icon_src),
}
}
if not icon_dest.exists():
if not icon_dest.exists() or not filecmp.cmp(icon_src, icon_dest):
icon_dest.parent.mkdir(parents=True, exist_ok=True)
shutil.copy(icon_path, icon_dest)
shutil.copy2(icon_src, icon_dest)
def scan_repo_files(apkcache, repodir, knownapks, use_date_from_file=False):
@ -1551,8 +1576,10 @@ def scan_repo_files(apkcache, repodir, knownapks, use_date_from_file=False):
repo_file['packageName'] = m.group(1)
repo_file['versionCode'] = int(m.group(2))
srcfilename = name + b'_src.tar.gz'
if os.path.exists(os.path.join(repodir, srcfilename)):
srcpath = os.path.join(repodir, srcfilename)
if os.path.exists(srcpath):
repo_file['srcname'] = srcfilename.decode()
repo_file['srcnameSha256'] = common.sha256sum(srcpath.decode())
repo_file['size'] = stat.st_size
apkcache[name_utf8] = repo_file
@ -1774,6 +1801,7 @@ def scan_apk_androguard(apk, apkfile):
xml = apkobject.get_android_manifest_xml()
androidmanifest_xml = apkobject.xml['AndroidManifest.xml']
if len(xml.nsmap) > 0:
# one of them surely will be the Android one, or its corrupt
xmlns = common.XMLNS_ANDROID
@ -1783,8 +1811,12 @@ def scan_apk_androguard(apk, apkfile):
xmlns = '{}'
vcstr = androidmanifest_xml.get(xmlns + 'versionCode')
logging.debug("Version Code: %r (%s)" % (vcstr, apkfile))
if vcstr.startswith('0x'):
if not vcstr:
raise NoVersionCodeException(_("APK file {path} does not have a version code "
"in its manifest").format(path=apkfile))
elif vcstr.startswith('0x'):
apk['versionCode'] = int(vcstr, 16)
else:
apk['versionCode'] = int(vcstr)
@ -1932,6 +1964,10 @@ def process_apk(apkcache, apkfilename, repodir, knownapks, use_date_from_apk=Fal
logging.warning(_("Skipping '{apkfilename}' with invalid signature!")
.format(apkfilename=apkfilename))
return True, None, False
except NoVersionCodeException:
logging.warning(_("Skipping '{apkfilename}' without versionCode!")
.format(apkfilename=apkfilename))
return True, None, False
if apps:
if apk['packageName'] in apps:
@ -1970,8 +2006,10 @@ def process_apk(apkcache, apkfilename, repodir, knownapks, use_date_from_apk=Fal
apk['apkName'] = apkfilename
srcfilename = apkfilename[:-4] + "_src.tar.gz"
if os.path.exists(os.path.join(repodir, srcfilename)):
srcpath = os.path.join(repodir, srcfilename)
if os.path.exists(srcpath):
apk['srcname'] = srcfilename
apk['srcnameSha256'] = common.sha256sum(srcpath)
# verify the jar signature is correct, allow deprecated
# algorithms only if the APK is in the archive.

View file

@ -16,18 +16,17 @@
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
import sys
import os
import glob
import json
import logging
import requests
import os
import sys
from argparse import ArgumentParser
from collections import OrderedDict
from . import _
from . import common
from . import net
import requests
from . import _, common, net
from .exception import FDroidException
config = None
@ -58,8 +57,8 @@ def _add_diffoscope_info(d):
]
d['diffoscope']['External-Tools-Required'] = external_tools
from diffoscope.tools import OS_NAMES, get_current_os
from diffoscope.external_tools import EXTERNAL_TOOLS
from diffoscope.tools import OS_NAMES, get_current_os
current_os = get_current_os()
os_list = [current_os] if (current_os in OS_NAMES) else iter(OS_NAMES)

View file

@ -16,16 +16,16 @@
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
from os.path import isdir, isfile, basename, abspath, expanduser
import os
import json
import logging
import os
import shutil
import subprocess
import textwrap
import logging
from .common import FDroidException
import threading
from os.path import abspath, basename, expanduser, isdir, isfile
from .common import FDroidException
lock = threading.Lock()

View file

@ -1,312 +0,0 @@
#!/bin/bash
bindir="$(dirname $0)"
basedir="$(dirname $bindir)"
# Check if GRADLE_VERSION_DIR/CACHEDIR is set from environment
if [ -z "$GRADLE_VERSION_DIR" ]; then
gradle_version_dir="${basedir}/versions"
else
gradle_version_dir="$GRADLE_VERSION_DIR"
fi
BUILDSERVER_CACHEDIR=/vagrant/cache
if [ -n "$CACHEDIR" ]; then
cachedir="$CACHEDIR"
elif [ -d $BUILDSERVER_CACHEDIR ]; then
cachedir=$BUILDSERVER_CACHEDIR
fi
args=("$@")
run_gradle() {
if [ ! -d "${gradle_version_dir}/${v_found}" ]; then
download_gradle ${v_found}
fi
# shellcheck disable=SC2145
echo "Running ${gradle_version_dir}/${v_found}/bin/gradle ${args[@]}"
"${gradle_version_dir}/${v_found}/bin/gradle" "${args[@]}"
exit $?
}
download_gradle() {
URL="https://downloads.gradle.org/distributions/gradle-${1}-bin.zip"
shasum=$(get_sha $1)
if [ $? != 0 ]; then
echo "No hash for gradle version $1! Exiting..."
exit 1
fi
if [ -n "${cachedir}" ] && [ -e "${cachedir}/gradle-$1-bin.zip" ]; then
echo "Using cached ${cachedir}/gradle-$1-bin.zip ..."
gradle_zip="${cachedir}/gradle-$1-bin.zip"
else
echo "Downloading missing gradle version $1"
echo cachedir $cachedir
if [[ -n "${cachedir}" && ! -d "${cachedir}" ]]; then
mkdir -p "${cachedir}"
fi
if [[ -n "${cachedir}" && -d "${cachedir}" && -w "${cachedir}" ]]; then
tmpdir="${cachedir}"
else
tmpdir=$(mktemp -d)
fi
curl -o "${tmpdir}/gradle-$1-bin.zip" --silent --fail --show-error --location --retry 3 --retry-all-errors "${URL}"
gradle_zip="${tmpdir}/gradle-$1-bin.zip"
fi
echo "${shasum} ${gradle_zip}" | sha256sum -c -
if [ $? != 0 ]; then
echo "gradle download checksum mismatch! Exiting..."
exit 1
fi
mkdir -p "${gradle_version_dir}/"
unzip -q -d "${gradle_version_dir}" "${gradle_zip}"
mv "${gradle_version_dir}/gradle-$1" "${gradle_version_dir}/${v_found}"
}
get_sha() {
case $1 in
'0.7') echo '4e354fcb0d5c0b0e7789cd6ee900456edaf993f6dd890c4a1c217d90d2a6a6ad' ;;
'0.8') echo '940e623ea98e40ea9ad398770a6ebb91a61c0869d394dda81aa86b0f4f0025e7' ;;
'0.9') echo '994e46d4b467254a0f25ce92b602618331b9b3ac8b32a094fd84ff0e0ceec135' ;;
'0.9.1') echo '5d48cba95db031ec109ae9ab60561e960b6507046036e8191aa78572ec27e2a5' ;;
'0.9.2') echo 'f94d7642348c558fc05ab5fd6fb947fb1ed8fed5931ddb73dd04fb0de22d669b' ;;
'1.0') echo '894bca0360a7e2040815096788f118a2dd106ff6694221b274efb9c32bce0384' ;;
'1.1') echo '552c1fc9f3a1b9668b79cc447370f0263e664ffb6d5c6e1c21e77ce0c8a20d4c' ;;
'1.2') echo 'eb53da3704d24cabb7565f34a3bf16bcd863c4b0c139917606fb15d4f27c7bdf' ;;
'1.3') echo 'ada68561efbb9f1cae0f9063974cbde15c180351a2f92bc2f1106e39ddcae5ba' ;;
'1.4') echo 'cd99e85fbcd0ae8b99e81c9992a2f10cceb7b5f009c3720ef3a0078f4f92e94e' ;;
'1.5') echo 'a5511a0659caa47d9d74fd2844c9da43157d2f78e63a0223c6289d88f5aaecbe' ;;
'1.6') echo 'de3e89d2113923dcc2e0def62d69be0947ceac910abd38b75ec333230183fac4' ;;
'1.7') echo '360c97d51621b5a1ecf66748c718594e5f790ae4fbc1499543e0c006033c9d30' ;;
'1.8') echo 'a342bbfa15fd18e2482287da4959588f45a41b60910970a16e6d97959aea5703' ;;
'1.9') echo '097ddc2bcbc9da2bb08cbf6bf8079585e35ad088bafd42e8716bc96405db98e9' ;;
'1.10') echo '6e6db4fc595f27ceda059d23693b6f6848583950606112b37dfd0e97a0a0a4fe' ;;
'1.11') echo '07e235df824964f0e19e73ea2327ce345c44bcd06d44a0123d29ab287fc34091' ;;
'1.12') echo '8734b13a401f4311ee418173ed6ca8662d2b0a535be8ff2a43ecb1c13cd406ea' ;;
'2.0') echo 'a1eb880c8755333c4d33c4351b269bebe517002532d3142c0b6164c9e8c081c3' ;;
'2.1') echo '3eee4f9ea2ab0221b89f8e4747a96d4554d00ae46d8d633f11cfda60988bf878' ;;
'2.2') echo '91e5655fe11ef414449f218c4fa2985b3a49b7903c57556da109c84fa26e1dfb' ;;
'2.2.1') echo '420aa50738299327b611c10b8304b749e8d3a579407ee9e755b15921d95ff418' ;;
'2.3') echo '010dd9f31849abc3d5644e282943b1c1c355f8e2635c5789833979ce590a3774' ;;
'2.4') echo 'c4eaecc621a81f567ded1aede4a5ddb281cc02a03a6a87c4f5502add8fc2f16f' ;;
'2.5') echo '3f953e0cb14bb3f9ebbe11946e84071547bf5dfd575d90cfe9cc4e788da38555' ;;
'2.6') echo '18a98c560af231dfa0d3f8e0802c20103ae986f12428bb0a6f5396e8f14e9c83' ;;
'2.7') echo 'cde43b90945b5304c43ee36e58aab4cc6fb3a3d5f9bd9449bb1709a68371cb06' ;;
'2.8') echo 'a88db9c2f104defdaa8011c58cf6cda6c114298ae3695ecfb8beb30da3a903cb' ;;
'2.9') echo 'c9159ec4362284c0a38d73237e224deae6139cbde0db4f0f44e1c7691dd3de2f' ;;
'2.10') echo '66406247f745fc6f05ab382d3f8d3e120c339f34ef54b86f6dc5f6efc18fbb13' ;;
'2.11') echo '8d7437082356c9fd6309a4479c8db307673965546daea445c6c72759cd6b1ed6' ;;
'2.12') echo 'e77064981906cd0476ff1e0de3e6fef747bd18e140960f1915cca8ff6c33ab5c' ;;
'2.13') echo '0f665ec6a5a67865faf7ba0d825afb19c26705ea0597cec80dd191b0f2cbb664' ;;
'2.14') echo '993b4f33b652c689e9721917d8e021cab6bbd3eae81b39ab2fd46fdb19a928d5' ;;
'2.14.1') echo 'cfc61eda71f2d12a572822644ce13d2919407595c2aec3e3566d2aab6f97ef39' ;;
'3.0') echo '39c906941a474444afbddc38144ed44166825acb0a57b0551dddb04bbf157f80' ;;
'3.1') echo 'c7de3442432253525902f7e8d7eac8b5fd6ce1623f96d76916af6d0e383010fc' ;;
'3.2') echo '5321b36837226dc0377047a328f12010f42c7bf88ee4a3b1cee0c11040082935' ;;
'3.2.1') echo '9843a3654d3e57dce54db06d05f18b664b95c22bf90c6becccb61fc63ce60689' ;;
'3.3') echo 'c58650c278d8cf0696cab65108ae3c8d95eea9c1938e0eb8b997095d5ca9a292' ;;
'3.4') echo '72d0cd4dcdd5e3be165eb7cd7bbd25cf8968baf400323d9ab1bba622c3f72205' ;;
'3.4.1') echo 'db1db193d479cc1202be843f17e4526660cfb0b21b57d62f3a87f88c878af9b2' ;;
'3.5') echo '0b7450798c190ff76b9f9a3d02e18b33d94553f708ebc08ebe09bdf99111d110' ;;
'3.5.1') echo '8dce35f52d4c7b4a4946df73aa2830e76ba7148850753d8b5e94c5dc325ceef8' ;;
'4.0') echo '56bd2dde29ba2a93903c557da1745cafd72cdd8b6b0b83c05a40ed7896b79dfe' ;;
'4.0.1') echo 'd717e46200d1359893f891dab047fdab98784143ac76861b53c50dbd03b44fd4' ;;
'4.0.2') echo '79ac421342bd11f6a4f404e0988baa9c1f5fabf07e3c6fa65b0c15c1c31dda22' ;;
'4.1') echo 'd55dfa9cfb5a3da86a1c9e75bb0b9507f9a8c8c100793ccec7beb6e259f9ed43' ;;
'4.2') echo '515dd63d32e55a9c05667809c5e40a947529de3054444ad274b3b75af5582eae' ;;
'4.2.1') echo 'b551cc04f2ca51c78dd14edb060621f0e5439bdfafa6fd167032a09ac708fbc0' ;;
'4.3') echo '8dcbf44eef92575b475dcb1ce12b5f19d38dc79e84c662670248dc8b8247654c' ;;
'4.3.1') echo '15ebe098ce0392a2d06d252bff24143cc88c4e963346582c8d88814758d93ac7' ;;
'4.4') echo 'fa4873ae2c7f5e8c02ec6948ba95848cedced6134772a0169718eadcb39e0a2f' ;;
'4.4.1') echo 'e7cf7d1853dfc30c1c44f571d3919eeeedef002823b66b6a988d27e919686389' ;;
'4.5') echo '03f2a43a314ff0fb843a85ef68078e06d181c4549c1e5fb983f289382b59b5e3' ;;
'4.5.1') echo '3e2ea0d8b96605b7c528768f646e0975bd9822f06df1f04a64fd279b1a17805e' ;;
'4.6') echo '98bd5fd2b30e070517e03c51cbb32beee3e2ee1a84003a5a5d748996d4b1b915' ;;
'4.7') echo 'fca5087dc8b50c64655c000989635664a73b11b9bd3703c7d6cabd31b7dcdb04' ;;
'4.8') echo 'f3e29692a8faa94eb0b02ebf36fa263a642b3ae8694ef806c45c345b8683f1ba' ;;
'4.8.1') echo 'af334d994b5e69e439ab55b5d2b7d086da5ea6763d78054f49f147b06370ed71' ;;
'4.9') echo 'e66e69dce8173dd2004b39ba93586a184628bc6c28461bc771d6835f7f9b0d28' ;;
'4.10') echo '248cfd92104ce12c5431ddb8309cf713fe58de8e330c63176543320022f59f18' ;;
'4.10.1') echo 'e53ce3a01cf016b5d294eef20977ad4e3c13e761ac1e475f1ffad4c6141a92bd' ;;
'4.10.2') echo 'b49c6da1b2cb67a0caf6c7480630b51c70a11ca2016ff2f555eaeda863143a29' ;;
'4.10.3') echo '8626cbf206b4e201ade7b87779090690447054bc93f052954c78480fa6ed186e' ;;
'5.0') echo '6157ac9f3410bc63644625b3b3e9e96c963afd7910ae0697792db57813ee79a6' ;;
'5.1') echo '7506638a380092a0406364c79d6c87d03d23017fc25a5770379d1ce23c3fcd4d' ;;
'5.1.1') echo '4953323605c5d7b89e97d0dc7779e275bccedefcdac090aec123375eae0cc798' ;;
'5.2') echo 'ff322863250159595e93b5a4d17a6f0d21c59a1a0497c1e1cf1d53826485503f' ;;
'5.2.1') echo '748c33ff8d216736723be4037085b8dc342c6a0f309081acf682c9803e407357' ;;
'5.3') echo 'bed2bdd3955be5a09ca7e0201e9d131f194f7f6c466e1795a733733ccfb09f25' ;;
'5.3.1') echo '1c59a17a054e9c82f0dd881871c9646e943ec4c71dd52ebc6137d17f82337436' ;;
'5.4') echo 'c8c17574245ecee9ed7fe4f6b593b696d1692d1adbfef425bef9b333e3a0e8de' ;;
'5.4.1') echo '7bdbad1e4f54f13c8a78abc00c26d44dd8709d4aedb704d913fb1bb78ac025dc' ;;
'5.5') echo '8d78b2ed63e7f07ad169c1186d119761c4773e681f332cfe1901045b1b0141bc' ;;
'5.5.1') echo '222a03fcf2fcaf3691767ce9549f78ebd4a77e73f9e23a396899fb70b420cd00' ;;
'5.6') echo '15c02ef5dd3631ec02ac52e8725703e0285d9a7eecbf4e5939aa9e924604d01d' ;;
'5.6.1') echo '0986244820e4a35d32d91df2ec4b768b5ba5d6c8246753794f85159f9963ec12' ;;
'5.6.2') echo '32fce6628848f799b0ad3205ae8db67d0d828c10ffe62b748a7c0d9f4a5d9ee0' ;;
'5.6.3') echo '60a6d8f687e3e7a4bc901cc6bc3db190efae0f02f0cc697e323e0f9336f224a3' ;;
'5.6.4') echo '1f3067073041bc44554d0efe5d402a33bc3d3c93cc39ab684f308586d732a80d' ;;
'6.0') echo '5a3578b9f0bb162f5e08cf119f447dfb8fa950cedebb4d2a977e912a11a74b91' ;;
'6.0.1') echo 'd364b7098b9f2e58579a3603dc0a12a1991353ac58ed339316e6762b21efba44' ;;
'6.1') echo 'd0c43d14e1c70a48b82442f435d06186351a2d290d72afd5b8866f15e6d7038a' ;;
'6.1.1') echo '9d94e6e4a28ad328072ef6e56bce79a810494ae756751fdcedffdeaf27c093b1' ;;
'6.2') echo 'b93a5f30d01195ec201e240f029c8b42d59c24086b8d1864112c83558e23cf8a' ;;
'6.2.1') echo 'a68ca7ba57f3404c3f6fc1f70a02d3a7d78652e6b46bbfaff83fc9a17168c279' ;;
'6.2.2') echo '0f6ba231b986276d8221d7a870b4d98e0df76e6daf1f42e7c0baec5032fb7d17' ;;
'6.3') echo '038794feef1f4745c6347107b6726279d1c824f3fc634b60f86ace1e9fbd1768' ;;
'6.4') echo 'b888659f637887e759749f6226ddfcb1cb04f828c58c41279de73c463fdbacc9' ;;
'6.4.1') echo 'e58cdff0cee6d9b422dcd08ebeb3177bc44eaa09bd9a2e838ff74c408fe1cbcd' ;;
'6.5') echo '23e7d37e9bb4f8dabb8a3ea7fdee9dd0428b9b1a71d298aefd65b11dccea220f' ;;
'6.5.1') echo '50a7d30529fa939721fe9268a0205142f3f2302bcac5fb45b27a3902e58db54a' ;;
'6.6') echo 'e6f83508f0970452f56197f610d13c5f593baaf43c0e3c6a571e5967be754025' ;;
'6.6.1') echo '7873ed5287f47ca03549ab8dcb6dc877ac7f0e3d7b1eb12685161d10080910ac' ;;
'6.7') echo '8ad57759019a9233dc7dc4d1a530cefe109dc122000d57f7e623f8cf4ba9dfc4' ;;
'6.7.1') echo '3239b5ed86c3838a37d983ac100573f64c1f3fd8e1eb6c89fa5f9529b5ec091d' ;;
'6.8') echo 'e2774e6fb77c43657decde25542dea710aafd78c4022d19b196e7e78d79d8c6c' ;;
'6.8.1') echo 'fd591a34af7385730970399f473afabdb8b28d57fd97d6625c388d090039d6fd' ;;
'6.8.2') echo '8de6efc274ab52332a9c820366dd5cf5fc9d35ec7078fd70c8ec6913431ee610' ;;
'6.8.3') echo '7faa7198769f872826c8ef4f1450f839ec27f0b4d5d1e51bade63667cbccd205' ;;
'6.9') echo '765442b8069c6bee2ea70713861c027587591c6b1df2c857a23361512560894e' ;;
'6.9.1') echo '8c12154228a502b784f451179846e518733cf856efc7d45b2e6691012977b2fe' ;;
'6.9.2') echo '8b356fd8702d5ffa2e066ed0be45a023a779bba4dd1a68fd11bc2a6bdc981e8f' ;;
'6.9.3') echo 'dcf350b8ae1aa192fc299aed6efc77b43825d4fedb224c94118ae7faf5fb035d' ;;
'6.9.4') echo '3e240228538de9f18772a574e99a0ba959e83d6ef351014381acd9631781389a' ;;
'7.0') echo 'eb8b89184261025b0430f5b2233701ff1377f96da1ef5e278af6ae8bac5cc305' ;;
'7.0.1') echo 'dccda8aa069563c8ba2f6cdfd0777df0e34a5b4d15138ca8b9757e94f4e8a8cb' ;;
'7.0.2') echo '0e46229820205440b48a5501122002842b82886e76af35f0f3a069243dca4b3c' ;;
'7.1') echo '2debee19271e1b82c6e41137d78e44e6e841035230a1a169ca47fd3fb09ed87b' ;;
'7.1.1') echo 'bf8b869948901d422e9bb7d1fa61da6a6e19411baa7ad6ee929073df85d6365d' ;;
'7.2') echo 'f581709a9c35e9cb92e16f585d2c4bc99b2b1a5f85d2badbd3dc6bff59e1e6dd' ;;
'7.3') echo 'de8f52ad49bdc759164f72439a3bf56ddb1589c4cde802d3cec7d6ad0e0ee410' ;;
'7.3.1') echo '9afb3ca688fc12c761a0e9e4321e4d24e977a4a8916c8a768b1fe05ddb4d6b66' ;;
'7.3.2') echo '23b89f8eac363f5f4b8336e0530c7295c55b728a9caa5268fdd4a532610d5392' ;;
'7.3.3') echo 'b586e04868a22fd817c8971330fec37e298f3242eb85c374181b12d637f80302' ;;
'7.4') echo '8cc27038d5dbd815759851ba53e70cf62e481b87494cc97cfd97982ada5ba634' ;;
'7.4.1') echo 'e5444a57cda4a95f90b0c9446a9e1b47d3d7f69057765bfb54bd4f482542d548' ;;
'7.4.2') echo '29e49b10984e585d8118b7d0bc452f944e386458df27371b49b4ac1dec4b7fda' ;;
'7.5') echo 'cb87f222c5585bd46838ad4db78463a5c5f3d336e5e2b98dc7c0c586527351c2' ;;
'7.5.1') echo 'f6b8596b10cce501591e92f229816aa4046424f3b24d771751b06779d58c8ec4' ;;
'7.6') echo '7ba68c54029790ab444b39d7e293d3236b2632631fb5f2e012bb28b4ff669e4b' ;;
'7.6.1') echo '6147605a23b4eff6c334927a86ff3508cb5d6722cd624c97ded4c2e8640f1f87' ;;
'7.6.2') echo 'a01b6587e15fe7ed120a0ee299c25982a1eee045abd6a9dd5e216b2f628ef9ac' ;;
'7.6.3') echo '740c2e472ee4326c33bf75a5c9f5cd1e69ecf3f9b580f6e236c86d1f3d98cfac' ;;
'7.6.4') echo 'bed1da33cca0f557ab13691c77f38bb67388119e4794d113e051039b80af9bb1' ;;
'7.6.5') echo 'b812fec0edb7d27e0ae35955887bb2954536fa3e44edaf481150da058e154d9a' ;;
'8.0') echo '4159b938ec734a8388ce03f52aa8f3c7ed0d31f5438622545de4f83a89b79788' ;;
'8.0.1') echo '1b6b558be93f29438d3df94b7dfee02e794b94d9aca4611a92cdb79b6b88e909' ;;
'8.0.2') echo 'ff7bf6a86f09b9b2c40bb8f48b25fc19cf2b2664fd1d220cd7ab833ec758d0d7' ;;
'8.1') echo 'a62c5f99585dd9e1f95dab7b9415a0e698fa9dd1e6c38537faa81ac078f4d23e' ;;
'8.1.1') echo 'e111cb9948407e26351227dabce49822fb88c37ee72f1d1582a69c68af2e702f' ;;
'8.2') echo '38f66cd6eef217b4c35855bb11ea4e9fbc53594ccccb5fb82dfd317ef8c2c5a3' ;;
'8.2.1') echo '03ec176d388f2aa99defcadc3ac6adf8dd2bce5145a129659537c0874dea5ad1' ;;
'8.3') echo '591855b517fc635b9e04de1d05d5e76ada3f89f5fc76f87978d1b245b4f69225' ;;
'8.4') echo '3e1af3ae886920c3ac87f7a91f816c0c7c436f276a6eefdb3da152100fef72ae' ;;
'8.5') echo '9d926787066a081739e8200858338b4a69e837c3a821a33aca9db09dd4a41026' ;;
'8.6') echo '9631d53cf3e74bfa726893aee1f8994fee4e060c401335946dba2156f440f24c' ;;
'8.7') echo '544c35d6bd849ae8a5ed0bcea39ba677dc40f49df7d1835561582da2009b961d' ;;
'8.8') echo 'a4b4158601f8636cdeeab09bd76afb640030bb5b144aafe261a5e8af027dc612' ;;
'8.9') echo 'd725d707bfabd4dfdc958c624003b3c80accc03f7037b5122c4b1d0ef15cecab' ;;
'8.10') echo '5b9c5eb3f9fc2c94abaea57d90bd78747ca117ddbbf96c859d3741181a12bf2a' ;;
'8.10.1') echo '1541fa36599e12857140465f3c91a97409b4512501c26f9631fb113e392c5bd1' ;;
'8.10.2') echo '31c55713e40233a8303827ceb42ca48a47267a0ad4bab9177123121e71524c26' ;;
'8.11') echo '57dafb5c2622c6cc08b993c85b7c06956a2f53536432a30ead46166dbca0f1e9' ;;
'8.11.1') echo 'f397b287023acdba1e9f6fc5ea72d22dd63669d59ed4a289a29b1a76eee151c6' ;;
'8.12') echo '7a00d51fb93147819aab76024feece20b6b84e420694101f276be952e08bef03' ;;
'8.12.1') echo '8d97a97984f6cbd2b85fe4c60a743440a347544bf18818048e611f5288d46c94' ;;
'8.13') echo '20f1b1176237254a6fc204d8434196fa11a4cfb387567519c61556e8710aed78' ;;
'8.14') echo '61ad310d3c7d3e5da131b76bbf22b5a4c0786e9d892dae8c1658d4b484de3caa' ;;
'8.14.1') echo '845952a9d6afa783db70bb3b0effaae45ae5542ca2bb7929619e8af49cb634cf' ;;
'8.14.2') echo '7197a12f450794931532469d4ff21a59ea2c1cd59a3ec3f89c035c3c420a6999' ;;
*) exit 1
esac
}
contains() {
local e
for e in $2; do
[[ $e == $1 ]] && return 0;
done
return 1
}
# key-value pairs of what gradle version (value) each gradle plugin version
# (key) should accept. plugin versions are actually prefixes and catch sub-
# versions as well. Pairs are taken from:
# https://developer.android.com/studio/releases/gradle-plugin#updating-gradle
d_gradle_plugin_ver_k=(8.9 8.8 8.7 8.6 8.5 8.4 8.3 8.2 8.1 8.0 7.4 7.3 7.2 7.1 7.0 4.2 4.1 4.0 3.6 3.5 3.4 3.3 3.2 3.1 3.0 2.3 2.2 2.1.3 2.1 2.0)
d_plugin_min_gradle_v=(8.11.1 8.10.2 8.9 8.7 8.7 8.6 8.4 8.2 8.0 8.0 7.5 7.4 7.3.3 7.2 7.0.2 6.7.1 6.5 6.1.1 5.6.4 5.4.1 5.1.1 4.10.1 4.6 4.4 4.1 3.3 2.14.1 2.14.1 2.12 2.12)
# All gradle versions we know about
plugin_v=(8.14.2 8.14.1 8.14 8.13 8.12.1 8.12 8.11.1 8.11 8.10.2 8.10.1 8.10 8.9 8.8 8.7 8.6 8.5 8.4 8.3 8.2.1 8.2 8.1.1 8.1 8.0.2 8.0.1 8.0 7.6.5 7.6.4 7.6.3 7.6.2 7.6.1 7.6 7.5.1 7.5 7.4.2 7.4.1 7.4 7.3.3 7.3.2 7.3.1 7.3 7.2 7.1.1 7.1 7.0.2 7.0.1 7.0 6.9.4 6.9.3 6.9.2 6.9.1 6.9 6.8.3 6.8.2 6.8.1 6.8 6.7.1 6.7 6.6.1 6.6 6.5.1 6.5 6.4.1 6.4 6.3 6.2.2 6.2.1 6.2 6.1.1 6.1 6.0.1 6.0 5.6.4 5.6.3 5.6.2 5.6.1 5.6 5.5.1 5.5 5.4.1 5.4 5.3.1 5.3 5.2.1 5.2 5.1.1 5.1 5.0 4.10.3 4.10.2 4.10.1 4.10 4.9 4.8.1 4.8 4.7 4.6 4.5.1 4.5 4.4.1 4.4 4.3.1 4.3 4.2.1 4.2 4.1 4.0.2 4.0.1 4.0 3.5.1 3.5 3.4.1 3.4 3.3 3.2.1 3.2 3.1 3.0 2.14.1 2.14 2.13 2.12 2.11 2.10 2.9 2.8 2.7 2.6 2.5 2.4 2.3 2.2.1 2.2 2.1 2.0 1.12 1.11 1.10 1.9 1.8 1.7 1.6 1.5 1.4 1.3 1.2 1.1 1.0 0.9.2 0.9.1 0.9 0.8 0.7)
v_all=${plugin_v[@]}
# Earliest file takes priority
# Last key takes priority if there are duplicates (matching java.util.Properties)
for f in {.,..,../..}/gradle/wrapper/gradle-wrapper.properties; do
[[ -f $f ]] || continue
while IFS='' read -r line || [ -n "$line" ]; do
line=$(printf "$line" | tr -d '\r') # strip Windows linefeeds
if [[ $line == 'distributionUrl='* ]]; then
wrapper_ver=${line#*/gradle-}
wrapper_ver=${wrapper_ver%-*.zip}
fi
done < $f
[[ -n $wrapper_ver ]] && break
done
if [[ -n $wrapper_ver ]]; then
v_found=$wrapper_ver
echo "Found $v_found via distributionUrl"
run_gradle
fi
# Earliest takes priority
for f in {.,..}/build.gradle{,.kts}; do
[[ -f $f ]] || continue
while IFS='' read -r line || [ -n "$line" ]; do
line=$(printf "$line" | tr -d '\r') # strip Windows linefeeds
if [[ -z "$plugin_pver" && $line == *'com.android.tools.build:gradle:'* ]]; then
plugin_pver=${line#*[\'\"]com.android.tools.build:gradle:}
plugin_pver=${plugin_pver%[\'\"]*}
elif [[ -z "$wrapper_ver" && $line == *'gradleVersion = '* ]]; then
wrapper_ver=${line#*gradleVersion*=*[\'\"]}
wrapper_ver=${wrapper_ver%[\'\"]*}
fi
done < $f
done
if [[ -n $wrapper_ver ]]; then
v_found=$wrapper_ver
echo "Found $v_found via gradleVersion"
run_gradle
fi
if [[ -n $plugin_pver ]]; then
i=0
match=false
for k in "${d_gradle_plugin_ver_k[@]}"; do
if [[ $plugin_pver == ${k}* ]]; then
plugin_ver=${d_plugin_min_gradle_v[$i]}
match=true
break
fi
let i++
done
if $match; then
v_found=$plugin_ver
echo "Found $v_found via gradle plugin version $k"
fi
fi
# Find the highest version available
for v in ${plugin_v[*]}; do
if contains $v "${v_all[*]}"; then
v_def=$v
break
fi
done
if [[ -z $v_found ]]; then
echo "No suitable gradle version found - defaulting to $v_def"
v_found=$v_def
fi
run_gradle

View file

@ -11,7 +11,7 @@ if [ -z "$files" ]; then
PY_FILES="fdroid makebuildserver setup.py fdroidserver/*.py examples/*.py tests/*-release-checksums.py"
PY_TEST_FILES="tests/test_*.py"
SH_FILES="hooks/pre-commit"
BASH_FILES="gradlew-fdroid jenkins-build-all jenkins-setup-build-environment jenkins-test completion/bash-completion buildserver/provision-*"
BASH_FILES="jenkins-build-all jenkins-setup-build-environment jenkins-test completion/bash-completion buildserver/provision-*"
RB_FILES="buildserver/Vagrantfile"
YML_FILES=".*.yml .yamllint */*.yml */*.yaml"
else

View file

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: fdroidserver 2.2.1-143-g1a5ee449\n"
"Report-Msgid-Bugs-To: https://gitlab.com/fdroid/fdroidserver/issues\n"
"POT-Creation-Date: 2025-03-25 11:36+0100\n"
"POT-Creation-Date: 2025-06-25 09:52+0200\n"
"PO-Revision-Date: 2023-05-26 19:39+0000\n"
"Last-Translator: Mehrab Poladov <thepoladov@protonmail.com>\n"
"Language-Team: Azerbaijani <https://hosted.weblate.org/projects/f-droid/fdroidserver/az/>\n"
@ -353,6 +353,11 @@ msgid_plural "Can't build due to {} errors while scanning"
msgstr[0] ""
msgstr[1] ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "Cannot read {path}: {error}"
msgstr ""
#: ../fdroidserver/rewritemeta.py
#, python-brace-format
msgid "Cannot rewrite \"{path}\""
@ -1478,6 +1483,11 @@ msgstr ""
msgid "Rename APK files that do not match package.name_123.apk"
msgstr ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "RepoType {type} is deprecated, please switch to git."
msgstr ""
#: ../fdroidserver/nightly.py
#, python-brace-format
msgid "Resigning {apkfilename} with provided debug.keystore"
@ -1991,6 +2001,10 @@ msgstr ""
msgid "VirusTotal API key cannot upload files larger than 32MB, use {url} to upload {path}."
msgstr ""
#: ../fdroidserver/nightly.py
msgid "WARNING: only public git repos are supported!"
msgstr ""
#: ../fdroidserver/__main__.py
msgid "Warn about possible metadata errors"
msgstr ""

File diff suppressed because it is too large Load diff

View file

@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: fdroidserver 2.2.1-143-g1a5ee449\n"
"Report-Msgid-Bugs-To: https://gitlab.com/fdroid/fdroidserver/issues\n"
"POT-Creation-Date: 2025-03-25 11:36+0100\n"
"POT-Creation-Date: 2025-06-25 09:52+0200\n"
"PO-Revision-Date: 2024-01-21 00:08+0000\n"
"Last-Translator: flac <flac_twin@keemail.me>\n"
"Language-Team: Belarusian <https://hosted.weblate.org/projects/f-droid/fdroidserver/be/>\n"
@ -358,6 +358,11 @@ msgid_plural "Can't build due to {} errors while scanning"
msgstr[0] ""
msgstr[1] ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "Cannot read {path}: {error}"
msgstr ""
#: ../fdroidserver/rewritemeta.py
#, python-brace-format
msgid "Cannot rewrite \"{path}\""
@ -1483,6 +1488,11 @@ msgstr ""
msgid "Rename APK files that do not match package.name_123.apk"
msgstr "Перайменуйце файлы APK, якія не адпавядаюць package.name_123.apk"
#: ../fdroidserver/common.py
#, python-brace-format
msgid "RepoType {type} is deprecated, please switch to git."
msgstr ""
#: ../fdroidserver/nightly.py
#, python-brace-format
msgid "Resigning {apkfilename} with provided debug.keystore"
@ -1996,6 +2006,10 @@ msgstr ""
msgid "VirusTotal API key cannot upload files larger than 32MB, use {url} to upload {path}."
msgstr ""
#: ../fdroidserver/nightly.py
msgid "WARNING: only public git repos are supported!"
msgstr ""
#: ../fdroidserver/__main__.py
msgid "Warn about possible metadata errors"
msgstr "Папярэджваць аб магчымых памылках метададзеных"

View file

@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: fdroidserver 2.1b0\n"
"Report-Msgid-Bugs-To: https://gitlab.com/fdroid/fdroidserver/issues\n"
"POT-Creation-Date: 2025-03-25 11:36+0100\n"
"POT-Creation-Date: 2025-06-25 09:52+0200\n"
"PO-Revision-Date: 2024-07-19 10:21+0000\n"
"Last-Translator: 109247019824 <stoyan@gmx.com>\n"
"Language-Team: Bulgarian <https://hosted.weblate.org/projects/f-droid/fdroidserver/bg/>\n"
@ -354,6 +354,11 @@ msgid_plural "Can't build due to {} errors while scanning"
msgstr[0] ""
msgstr[1] ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "Cannot read {path}: {error}"
msgstr ""
#: ../fdroidserver/rewritemeta.py
#, python-brace-format
msgid "Cannot rewrite \"{path}\""
@ -1479,6 +1484,11 @@ msgstr ""
msgid "Rename APK files that do not match package.name_123.apk"
msgstr ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "RepoType {type} is deprecated, please switch to git."
msgstr ""
#: ../fdroidserver/nightly.py
#, python-brace-format
msgid "Resigning {apkfilename} with provided debug.keystore"
@ -1992,6 +2002,10 @@ msgstr ""
msgid "VirusTotal API key cannot upload files larger than 32MB, use {url} to upload {path}."
msgstr ""
#: ../fdroidserver/nightly.py
msgid "WARNING: only public git repos are supported!"
msgstr ""
#: ../fdroidserver/__main__.py
msgid "Warn about possible metadata errors"
msgstr ""

View file

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: fdroidserver 1.0.6-70-g54bc858\n"
"Report-Msgid-Bugs-To: https://gitlab.com/fdroid/fdroidserver/issues\n"
"POT-Creation-Date: 2025-03-25 11:36+0100\n"
"POT-Creation-Date: 2025-06-25 09:52+0200\n"
"PO-Revision-Date: 2021-02-12 09:48+0000\n"
"Last-Translator: Oymate <dhruboadittya96@gmail.com>\n"
"Language-Team: Bengali <https://hosted.weblate.org/projects/f-droid/fdroidserver/bn/>\n"
@ -353,6 +353,11 @@ msgid_plural "Can't build due to {} errors while scanning"
msgstr[0] ""
msgstr[1] ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "Cannot read {path}: {error}"
msgstr ""
#: ../fdroidserver/rewritemeta.py
#, python-brace-format
msgid "Cannot rewrite \"{path}\""
@ -1478,6 +1483,11 @@ msgstr ""
msgid "Rename APK files that do not match package.name_123.apk"
msgstr ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "RepoType {type} is deprecated, please switch to git."
msgstr ""
#: ../fdroidserver/nightly.py
#, python-brace-format
msgid "Resigning {apkfilename} with provided debug.keystore"
@ -1991,6 +2001,10 @@ msgstr ""
msgid "VirusTotal API key cannot upload files larger than 32MB, use {url} to upload {path}."
msgstr ""
#: ../fdroidserver/nightly.py
msgid "WARNING: only public git repos are supported!"
msgstr ""
#: ../fdroidserver/__main__.py
msgid "Warn about possible metadata errors"
msgstr ""

View file

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: fdroidserver 0.9\n"
"Report-Msgid-Bugs-To: https://gitlab.com/fdroid/fdroidserver/issues\n"
"POT-Creation-Date: 2025-03-25 11:36+0100\n"
"POT-Creation-Date: 2025-06-25 09:52+0200\n"
"PO-Revision-Date: 2024-04-10 13:33+0000\n"
"Last-Translator: Hans-Christoph Steiner <hans@guardianproject.info>\n"
"Language-Team: Tibetan <https://hosted.weblate.org/projects/f-droid/fdroidserver/bo/>\n"
@ -358,6 +358,11 @@ msgid "Can't build due to {} error while scanning"
msgid_plural "Can't build due to {} errors while scanning"
msgstr[0] "ཚགས་རྒྱབ་པའི་སྐབས་སུ་ནོར་སྐྱོན་ {} ཤོར་བས་བཟོ་སྐྲུན་བྱེད་ཐུབ་མེད།"
#: ../fdroidserver/common.py
#, fuzzy, python-brace-format
msgid "Cannot read {path}: {error}"
msgstr "ཀློག་མི་ཐུབ།{path}: {error}"
#: ../fdroidserver/rewritemeta.py
#, python-brace-format
msgid "Cannot rewrite \"{path}\""
@ -1499,6 +1504,11 @@ msgstr ""
msgid "Rename APK files that do not match package.name_123.apk"
msgstr "package.name_123.apk དང་མི་འདྲ་བའི་APK ཡིག་ཆ་དེ་ཚོར་མིང་སྐྱར་ཏུ་བཏགས།"
#: ../fdroidserver/common.py
#, python-brace-format
msgid "RepoType {type} is deprecated, please switch to git."
msgstr ""
#: ../fdroidserver/nightly.py
#, fuzzy, python-brace-format
msgid "Resigning {apkfilename} with provided debug.keystore"
@ -2015,6 +2025,10 @@ msgstr ""
msgid "VirusTotal API key cannot upload files larger than 32MB, use {url} to upload {path}."
msgstr ""
#: ../fdroidserver/nightly.py
msgid "WARNING: only public git repos are supported!"
msgstr ""
#: ../fdroidserver/__main__.py
msgid "Warn about possible metadata errors"
msgstr "ཡིག་ཚགས་ཀྱི་རྒྱབ་ལྗོངས་ལོ་རྒྱུས་སྐྱོན་སྲིད་པ་རྣམས་པ་ཉེན་བརྡ་གཏོང་།"

View file

@ -11,7 +11,7 @@ msgid ""
msgstr ""
"Project-Id-Version: fdroidserver 2.1-273-g54e84d87\n"
"Report-Msgid-Bugs-To: https://gitlab.com/fdroid/fdroidserver/issues\n"
"POT-Creation-Date: 2025-03-25 11:36+0100\n"
"POT-Creation-Date: 2025-06-25 09:52+0200\n"
"PO-Revision-Date: 2025-05-16 16:36+0000\n"
"Last-Translator: Ecron <ecron_89@hotmail.com>\n"
"Language-Team: Catalan <https://hosted.weblate.org/projects/f-droid/fdroidserver/ca/>\n"
@ -363,6 +363,11 @@ msgid_plural "Can't build due to {} errors while scanning"
msgstr[0] "No es pot construir a causa d'un error {} en escanejar"
msgstr[1] "No es pot construir a causa d'errors {} en escanejar"
#: ../fdroidserver/common.py
#, fuzzy, python-brace-format
msgid "Cannot read {path}: {error}"
msgstr "No s'ha pogut llegir {path}: {error}"
#: ../fdroidserver/rewritemeta.py
#, python-brace-format
msgid "Cannot rewrite \"{path}\""
@ -1490,6 +1495,11 @@ msgstr "S'està suprimint {path}\""
msgid "Rename APK files that do not match package.name_123.apk"
msgstr "Canvia el nom dels fitxers APK que no coincideixin amb package.name_123.apk"
#: ../fdroidserver/common.py
#, python-brace-format
msgid "RepoType {type} is deprecated, please switch to git."
msgstr ""
#: ../fdroidserver/nightly.py
#, python-brace-format
msgid "Resigning {apkfilename} with provided debug.keystore"
@ -2010,6 +2020,10 @@ msgstr "S'està verificant el paquet {path} l'apksigner."
msgid "VirusTotal API key cannot upload files larger than 32MB, use {url} to upload {path}."
msgstr "La clau de l'API VirusTotal no pot pujar fitxers més grans de 32 MB, utilitzeu {url} per pujar {path}."
#: ../fdroidserver/nightly.py
msgid "WARNING: only public git repos are supported!"
msgstr ""
#: ../fdroidserver/__main__.py
msgid "Warn about possible metadata errors"
msgstr "Avisa de possibles errors a les metadades"

View file

@ -13,7 +13,7 @@ msgid ""
msgstr ""
"Project-Id-Version: fdroidserver 1.0.0-95-gd7af22b\n"
"Report-Msgid-Bugs-To: https://gitlab.com/fdroid/fdroidserver/issues\n"
"POT-Creation-Date: 2025-03-25 11:36+0100\n"
"POT-Creation-Date: 2025-06-25 09:52+0200\n"
"PO-Revision-Date: 2025-03-26 10:00+0000\n"
"Last-Translator: Fjuro <fjuro@users.noreply.hosted.weblate.org>\n"
"Language-Team: Czech <https://hosted.weblate.org/projects/f-droid/fdroidserver/cs/>\n"
@ -366,6 +366,11 @@ msgstr[0] "Nelze sestavit kvůli {} chybě při skenování"
msgstr[1] "Nelze sestavit kvůli {} chybám při skenování"
msgstr[2] "Nelze sestavit kvůli {} chybám při skenování"
#: ../fdroidserver/common.py
#, fuzzy, python-brace-format
msgid "Cannot read {path}: {error}"
msgstr "Chyba při čtení {path}: {error}"
#: ../fdroidserver/rewritemeta.py
#, python-brace-format
msgid "Cannot rewrite \"{path}\""
@ -1493,6 +1498,11 @@ msgstr "Odebírání {path}\""
msgid "Rename APK files that do not match package.name_123.apk"
msgstr "Přejmenovat soubory APK, které se neshodují s package.name_123.apk"
#: ../fdroidserver/common.py
#, python-brace-format
msgid "RepoType {type} is deprecated, please switch to git."
msgstr ""
#: ../fdroidserver/nightly.py
#, python-brace-format
msgid "Resigning {apkfilename} with provided debug.keystore"
@ -2014,6 +2024,10 @@ msgstr "Ověřování balíčku {path} pomocí apksigner."
msgid "VirusTotal API key cannot upload files larger than 32MB, use {url} to upload {path}."
msgstr "Klíč API VirusTotal neumožňuje nahrávání souborů větších než 32 MB, k nahrání {path} použijte {url}."
#: ../fdroidserver/nightly.py
msgid "WARNING: only public git repos are supported!"
msgstr ""
#: ../fdroidserver/__main__.py
msgid "Warn about possible metadata errors"
msgstr "Varovat ohledně možných chyb metadat"

View file

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: fdroidserver 2.0a5-27-gf24eae0f\n"
"Report-Msgid-Bugs-To: https://gitlab.com/fdroid/fdroidserver/issues\n"
"POT-Creation-Date: 2025-03-25 11:36+0100\n"
"POT-Creation-Date: 2025-06-25 09:52+0200\n"
"PO-Revision-Date: 2021-01-16 21:23+0000\n"
"Last-Translator: Aled Powell <aled@aledpowell.cymru>\n"
"Language-Team: Welsh <https://hosted.weblate.org/projects/f-droid/fdroidserver/cy/>\n"
@ -357,6 +357,11 @@ msgstr[3] ""
msgstr[4] ""
msgstr[5] ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "Cannot read {path}: {error}"
msgstr ""
#: ../fdroidserver/rewritemeta.py
#, python-brace-format
msgid "Cannot rewrite \"{path}\""
@ -1482,6 +1487,11 @@ msgstr ""
msgid "Rename APK files that do not match package.name_123.apk"
msgstr "Ailenwi ffeiliau APK na sy'n dilyn y ffurf package.name_123.apk"
#: ../fdroidserver/common.py
#, python-brace-format
msgid "RepoType {type} is deprecated, please switch to git."
msgstr ""
#: ../fdroidserver/nightly.py
#, python-brace-format
msgid "Resigning {apkfilename} with provided debug.keystore"
@ -2006,6 +2016,10 @@ msgstr ""
msgid "VirusTotal API key cannot upload files larger than 32MB, use {url} to upload {path}."
msgstr ""
#: ../fdroidserver/nightly.py
msgid "WARNING: only public git repos are supported!"
msgstr ""
#: ../fdroidserver/__main__.py
msgid "Warn about possible metadata errors"
msgstr "Rhybuddio am wallau metaddata posib"

View file

@ -26,7 +26,7 @@ msgid ""
msgstr ""
"Project-Id-Version: fdroidserver 0.9\n"
"Report-Msgid-Bugs-To: https://gitlab.com/fdroid/fdroidserver/issues\n"
"POT-Creation-Date: 2025-03-25 11:36+0100\n"
"POT-Creation-Date: 2025-06-25 09:52+0200\n"
"PO-Revision-Date: 2025-04-29 10:16+0000\n"
"Last-Translator: VfBFan <drop0815@posteo.de>\n"
"Language-Team: German <https://hosted.weblate.org/projects/f-droid/fdroidserver/de/>\n"
@ -378,6 +378,11 @@ msgid_plural "Can't build due to {} errors while scanning"
msgstr[0] "Kann nicht erstellt werden, da {} Fehler beim Prüfen aufgetreten ist"
msgstr[1] "Kann nicht erstellt werden, da {} Fehler beim Prüfen aufgetreten sind"
#: ../fdroidserver/common.py
#, fuzzy, python-brace-format
msgid "Cannot read {path}: {error}"
msgstr "Lesen von {path} fehlgeschlagen: {error}"
#: ../fdroidserver/rewritemeta.py
#, python-brace-format
msgid "Cannot rewrite \"{path}\""
@ -1505,6 +1510,11 @@ msgstr "Entferne {path}\""
msgid "Rename APK files that do not match package.name_123.apk"
msgstr "APK-Dateien umbenennen, die nicht dem Muster „package.name_123.apk“ entsprechen"
#: ../fdroidserver/common.py
#, python-brace-format
msgid "RepoType {type} is deprecated, please switch to git."
msgstr ""
#: ../fdroidserver/nightly.py
#, python-brace-format
msgid "Resigning {apkfilename} with provided debug.keystore"
@ -2025,6 +2035,10 @@ msgstr "Überprüfen des Pakets {path} mit apksigner."
msgid "VirusTotal API key cannot upload files larger than 32MB, use {url} to upload {path}."
msgstr "VirusTotal-API-Schlüssel kann nicht Dateien größer 32MB hochladen, verwende {url} um {path} hochzuladen."
#: ../fdroidserver/nightly.py
msgid "WARNING: only public git repos are supported!"
msgstr ""
#: ../fdroidserver/__main__.py
msgid "Warn about possible metadata errors"
msgstr "Vor möglichen Metadaten-Fehlern warnen"

View file

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: fdroidserver 2.0a0-62-gc63c4b3d\n"
"Report-Msgid-Bugs-To: https://gitlab.com/fdroid/fdroidserver/issues\n"
"POT-Creation-Date: 2025-03-25 11:36+0100\n"
"POT-Creation-Date: 2025-06-25 09:52+0200\n"
"PO-Revision-Date: 2024-05-10 13:24+0000\n"
"Last-Translator: ΣΤΑΥΡΟΣ ΔΑΛΙΑΚΟΠΟΥΛΟΣ <stavros.daliakopoulos@gmail.com>\n"
"Language-Team: Greek <https://hosted.weblate.org/projects/f-droid/fdroidserver/el/>\n"
@ -360,6 +360,11 @@ msgid_plural "Can't build due to {} errors while scanning"
msgstr[0] ""
msgstr[1] ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "Cannot read {path}: {error}"
msgstr ""
#: ../fdroidserver/rewritemeta.py
#, python-brace-format
msgid "Cannot rewrite \"{path}\""
@ -1485,6 +1490,11 @@ msgstr ""
msgid "Rename APK files that do not match package.name_123.apk"
msgstr "Μετονομασία αρχείων APK που δεν αντιστοιχούν με «όνομα.πακέτου_123.apk»"
#: ../fdroidserver/common.py
#, python-brace-format
msgid "RepoType {type} is deprecated, please switch to git."
msgstr ""
#: ../fdroidserver/nightly.py
#, python-brace-format
msgid "Resigning {apkfilename} with provided debug.keystore"
@ -1998,6 +2008,10 @@ msgstr ""
msgid "VirusTotal API key cannot upload files larger than 32MB, use {url} to upload {path}."
msgstr ""
#: ../fdroidserver/nightly.py
msgid "WARNING: only public git repos are supported!"
msgstr ""
#: ../fdroidserver/__main__.py
msgid "Warn about possible metadata errors"
msgstr "Προειδοποίηση για πιθανά σφάλματα μετα-δεδομένων"

View file

@ -19,7 +19,7 @@ msgid ""
msgstr ""
"Project-Id-Version: fdroidserver 0.9\n"
"Report-Msgid-Bugs-To: https://gitlab.com/fdroid/fdroidserver/issues\n"
"POT-Creation-Date: 2025-03-25 11:36+0100\n"
"POT-Creation-Date: 2025-06-25 09:52+0200\n"
"PO-Revision-Date: 2025-06-24 11:02+0000\n"
"Last-Translator: Swyter <swyterzone@gmail.com>\n"
"Language-Team: Spanish <https://hosted.weblate.org/projects/f-droid/fdroidserver/es/>\n"
@ -371,6 +371,11 @@ msgid_plural "Can't build due to {} errors while scanning"
msgstr[0] "No se puede construir debido al error {} mientras se comprobaba"
msgstr[1] "No se puede construir debido a los errores {} mientras se comprobaba"
#: ../fdroidserver/common.py
#, fuzzy, python-brace-format
msgid "Cannot read {path}: {error}"
msgstr "Fallo al leer {path}: {error}"
#: ../fdroidserver/rewritemeta.py
#, python-brace-format
msgid "Cannot rewrite \"{path}\""
@ -1498,6 +1503,11 @@ msgstr "Eliminando {path}\""
msgid "Rename APK files that do not match package.name_123.apk"
msgstr "Cambiar el nombre de archivos APK que no coinciden con el formato package.name_123.apk"
#: ../fdroidserver/common.py
#, python-brace-format
msgid "RepoType {type} is deprecated, please switch to git."
msgstr ""
#: ../fdroidserver/nightly.py
#, python-brace-format
msgid "Resigning {apkfilename} with provided debug.keystore"
@ -2018,6 +2028,10 @@ msgstr "Verificando el paquete {path} con apksigner."
msgid "VirusTotal API key cannot upload files larger than 32MB, use {url} to upload {path}."
msgstr "La clave de API de VirusTotal no puede subir archivos mayores de 32MB. Use {url} para subir {path}."
#: ../fdroidserver/nightly.py
msgid "WARNING: only public git repos are supported!"
msgstr ""
#: ../fdroidserver/__main__.py
msgid "Warn about possible metadata errors"
msgstr "Alertar sobre posibles errores de metadatos"

View file

@ -10,7 +10,7 @@ msgid ""
msgstr ""
"Project-Id-Version: fdroidserver 0.9\n"
"Report-Msgid-Bugs-To: https://gitlab.com/fdroid/fdroidserver/issues\n"
"POT-Creation-Date: 2025-03-25 11:36+0100\n"
"POT-Creation-Date: 2025-06-25 09:52+0200\n"
"PO-Revision-Date: 2021-04-10 21:26+0000\n"
"Last-Translator: Germe the fur star <FOSSgerme.deb@tuta.io>\n"
"Language-Team: Spanish (Argentina) <https://hosted.weblate.org/projects/f-droid/fdroidserver/es_AR/>\n"
@ -361,6 +361,11 @@ msgid_plural "Can't build due to {} errors while scanning"
msgstr[0] "No se pudo empaquetar debido al {} error mientras se escaneaba"
msgstr[1] "No se pudo empaquetar debido a los {} errores mientras se escaneaba"
#: ../fdroidserver/common.py
#, fuzzy, python-brace-format
msgid "Cannot read {path}: {error}"
msgstr "No se puede reescribir \"{path}\""
#: ../fdroidserver/rewritemeta.py
#, python-brace-format
msgid "Cannot rewrite \"{path}\""
@ -1495,6 +1500,11 @@ msgstr ""
msgid "Rename APK files that do not match package.name_123.apk"
msgstr "Renombrar archivos APK que no corresponden a package.name_123.apk"
#: ../fdroidserver/common.py
#, python-brace-format
msgid "RepoType {type} is deprecated, please switch to git."
msgstr ""
#: ../fdroidserver/nightly.py
#, python-brace-format
msgid "Resigning {apkfilename} with provided debug.keystore"
@ -2008,6 +2018,10 @@ msgstr ""
msgid "VirusTotal API key cannot upload files larger than 32MB, use {url} to upload {path}."
msgstr ""
#: ../fdroidserver/nightly.py
msgid "WARNING: only public git repos are supported!"
msgstr ""
#: ../fdroidserver/__main__.py
msgid "Warn about possible metadata errors"
msgstr "Advertir sobre posibles errores en los metadatos"

View file

@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: fdroidserver 1.0.6-349-g907c04ea\n"
"Report-Msgid-Bugs-To: https://gitlab.com/fdroid/fdroidserver/issues\n"
"POT-Creation-Date: 2025-03-25 11:36+0100\n"
"POT-Creation-Date: 2025-06-25 09:52+0200\n"
"PO-Revision-Date: 2020-04-29 12:49+0000\n"
"Last-Translator: Hans-Christoph Steiner <hans@guardianproject.info>\n"
"Language-Team: Spanish (Mexico) <https://hosted.weblate.org/projects/f-droid/fdroidserver/es_MX/>\n"
@ -354,6 +354,11 @@ msgid_plural "Can't build due to {} errors while scanning"
msgstr[0] ""
msgstr[1] ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "Cannot read {path}: {error}"
msgstr ""
#: ../fdroidserver/rewritemeta.py
#, python-brace-format
msgid "Cannot rewrite \"{path}\""
@ -1483,6 +1488,11 @@ msgstr ""
msgid "Rename APK files that do not match package.name_123.apk"
msgstr ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "RepoType {type} is deprecated, please switch to git."
msgstr ""
#: ../fdroidserver/nightly.py
#, python-brace-format
msgid "Resigning {apkfilename} with provided debug.keystore"
@ -1996,6 +2006,10 @@ msgstr ""
msgid "VirusTotal API key cannot upload files larger than 32MB, use {url} to upload {path}."
msgstr ""
#: ../fdroidserver/nightly.py
msgid "WARNING: only public git repos are supported!"
msgstr ""
#: ../fdroidserver/__main__.py
msgid "Warn about possible metadata errors"
msgstr ""

View file

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: fdroidserver 2.0a0-62-gc63c4b3d\n"
"Report-Msgid-Bugs-To: https://gitlab.com/fdroid/fdroidserver/issues\n"
"POT-Creation-Date: 2025-03-25 11:36+0100\n"
"POT-Creation-Date: 2025-06-25 09:52+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
@ -352,6 +352,11 @@ msgid_plural "Can't build due to {} errors while scanning"
msgstr[0] ""
msgstr[1] ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "Cannot read {path}: {error}"
msgstr ""
#: ../fdroidserver/rewritemeta.py
#, python-brace-format
msgid "Cannot rewrite \"{path}\""
@ -1477,6 +1482,11 @@ msgstr ""
msgid "Rename APK files that do not match package.name_123.apk"
msgstr ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "RepoType {type} is deprecated, please switch to git."
msgstr ""
#: ../fdroidserver/nightly.py
#, python-brace-format
msgid "Resigning {apkfilename} with provided debug.keystore"
@ -1990,6 +2000,10 @@ msgstr ""
msgid "VirusTotal API key cannot upload files larger than 32MB, use {url} to upload {path}."
msgstr ""
#: ../fdroidserver/nightly.py
msgid "WARNING: only public git repos are supported!"
msgstr ""
#: ../fdroidserver/__main__.py
msgid "Warn about possible metadata errors"
msgstr ""

View file

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: fdroidserver 0.9\n"
"Report-Msgid-Bugs-To: https://gitlab.com/fdroid/fdroidserver/issues\n"
"POT-Creation-Date: 2025-03-25 11:36+0100\n"
"POT-Creation-Date: 2025-06-25 09:52+0200\n"
"PO-Revision-Date: 2024-11-26 15:16+0000\n"
"Last-Translator: Danial Behzadi <dani.behzi@ubuntu.com>\n"
"Language-Team: Persian <https://hosted.weblate.org/projects/f-droid/fdroidserver/fa/>\n"
@ -356,6 +356,11 @@ msgid_plural "Can't build due to {} errors while scanning"
msgstr[0] ""
msgstr[1] ""
#: ../fdroidserver/common.py
#, fuzzy, python-brace-format
msgid "Cannot read {path}: {error}"
msgstr "{path}: {error}"
#: ../fdroidserver/rewritemeta.py
#, python-brace-format
msgid "Cannot rewrite \"{path}\""
@ -1481,6 +1486,11 @@ msgstr "برداشتن {path}"
msgid "Rename APK files that do not match package.name_123.apk"
msgstr ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "RepoType {type} is deprecated, please switch to git."
msgstr ""
#: ../fdroidserver/nightly.py
#, python-brace-format
msgid "Resigning {apkfilename} with provided debug.keystore"
@ -1994,6 +2004,10 @@ msgstr ""
msgid "VirusTotal API key cannot upload files larger than 32MB, use {url} to upload {path}."
msgstr ""
#: ../fdroidserver/nightly.py
msgid "WARNING: only public git repos are supported!"
msgstr ""
#: ../fdroidserver/__main__.py
msgid "Warn about possible metadata errors"
msgstr ""

View file

@ -5,9 +5,9 @@
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: fdroidserver 2.4.0\n"
"Project-Id-Version: fdroidserver 2.4.2-3-gdcb804f7\n"
"Report-Msgid-Bugs-To: https://gitlab.com/fdroid/fdroidserver/issues\n"
"POT-Creation-Date: 2025-03-25 11:36+0100\n"
"POT-Creation-Date: 2025-06-25 09:52+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -354,6 +354,11 @@ msgid_plural "Can't build due to {} errors while scanning"
msgstr[0] ""
msgstr[1] ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "Cannot read {path}: {error}"
msgstr ""
#: ../fdroidserver/rewritemeta.py
#, python-brace-format
msgid "Cannot rewrite \"{path}\""
@ -1479,6 +1484,11 @@ msgstr ""
msgid "Rename APK files that do not match package.name_123.apk"
msgstr ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "RepoType {type} is deprecated, please switch to git."
msgstr ""
#: ../fdroidserver/nightly.py
#, python-brace-format
msgid "Resigning {apkfilename} with provided debug.keystore"
@ -1992,6 +2002,10 @@ msgstr ""
msgid "VirusTotal API key cannot upload files larger than 32MB, use {url} to upload {path}."
msgstr ""
#: ../fdroidserver/nightly.py
msgid "WARNING: only public git repos are supported!"
msgstr ""
#: ../fdroidserver/__main__.py
msgid "Warn about possible metadata errors"
msgstr ""

View file

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: fdroidserver 2.0a0-62-gc63c4b3d\n"
"Report-Msgid-Bugs-To: https://gitlab.com/fdroid/fdroidserver/issues\n"
"POT-Creation-Date: 2025-03-25 11:36+0100\n"
"POT-Creation-Date: 2025-06-25 09:52+0200\n"
"PO-Revision-Date: 2025-01-31 14:19+0000\n"
"Last-Translator: Ricky Tigg <ricky.tigg@gmail.com>\n"
"Language-Team: Finnish <https://hosted.weblate.org/projects/f-droid/fdroidserver/fi/>\n"
@ -355,6 +355,11 @@ msgid_plural "Can't build due to {} errors while scanning"
msgstr[0] ""
msgstr[1] ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "Cannot read {path}: {error}"
msgstr ""
#: ../fdroidserver/rewritemeta.py
#, python-brace-format
msgid "Cannot rewrite \"{path}\""
@ -1480,6 +1485,11 @@ msgstr ""
msgid "Rename APK files that do not match package.name_123.apk"
msgstr ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "RepoType {type} is deprecated, please switch to git."
msgstr ""
#: ../fdroidserver/nightly.py
#, python-brace-format
msgid "Resigning {apkfilename} with provided debug.keystore"
@ -1993,6 +2003,10 @@ msgstr ""
msgid "VirusTotal API key cannot upload files larger than 32MB, use {url} to upload {path}."
msgstr ""
#: ../fdroidserver/nightly.py
msgid "WARNING: only public git repos are supported!"
msgstr ""
#: ../fdroidserver/__main__.py
msgid "Warn about possible metadata errors"
msgstr ""

View file

@ -47,7 +47,7 @@ msgid ""
msgstr ""
"Project-Id-Version: fdroidserver 0.9\n"
"Report-Msgid-Bugs-To: https://gitlab.com/fdroid/fdroidserver/issues\n"
"POT-Creation-Date: 2025-03-25 11:36+0100\n"
"POT-Creation-Date: 2025-06-25 09:52+0200\n"
"PO-Revision-Date: 2025-04-11 17:20+0000\n"
"Last-Translator: Laurent FAVOLE <laurentfavole03@gmail.com>\n"
"Language-Team: French <https://hosted.weblate.org/projects/f-droid/fdroidserver/fr/>\n"
@ -399,6 +399,11 @@ msgid_plural "Can't build due to {} errors while scanning"
msgstr[0] "Build impossible à cause de l'erreur lors de l'analyse"
msgstr[1] "Build impossible à cause des {} erreurs lors de l'analyse"
#: ../fdroidserver/common.py
#, fuzzy, python-brace-format
msgid "Cannot read {path}: {error}"
msgstr "Erreur de lecture {path} : {error}"
#: ../fdroidserver/rewritemeta.py
#, python-brace-format
msgid "Cannot rewrite \"{path}\""
@ -1526,6 +1531,11 @@ msgstr "Suppression de {path}\""
msgid "Rename APK files that do not match package.name_123.apk"
msgstr "Renomme les fichiers APK dont le nom ne ressemble pas à nom.paquet_123.apk"
#: ../fdroidserver/common.py
#, python-brace-format
msgid "RepoType {type} is deprecated, please switch to git."
msgstr ""
#: ../fdroidserver/nightly.py
#, python-brace-format
msgid "Resigning {apkfilename} with provided debug.keystore"
@ -2048,6 +2058,10 @@ msgstr "Vérification du paquet {path} avec apksigner."
msgid "VirusTotal API key cannot upload files larger than 32MB, use {url} to upload {path}."
msgstr "LAPI de VirusTotal ne permet pas denvoyer des fichiers plus grands que 32Mo, utilisez {url} pour envoyer {path}."
#: ../fdroidserver/nightly.py
msgid "WARNING: only public git repos are supported!"
msgstr ""
#: ../fdroidserver/__main__.py
msgid "Warn about possible metadata errors"
msgstr "Avertir de possibles erreurs dans les métadonnées"

View file

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: fdroidserver 2.0\n"
"Report-Msgid-Bugs-To: https://gitlab.com/fdroid/fdroidserver/issues\n"
"POT-Creation-Date: 2025-03-25 11:36+0100\n"
"POT-Creation-Date: 2025-06-25 09:52+0200\n"
"PO-Revision-Date: 2021-07-01 15:29+0000\n"
"Last-Translator: Vancha March <tjipkevdh@gmail.com>\n"
"Language-Team: Frisian <https://hosted.weblate.org/projects/f-droid/fdroidserver/fy/>\n"
@ -353,6 +353,11 @@ msgid_plural "Can't build due to {} errors while scanning"
msgstr[0] ""
msgstr[1] ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "Cannot read {path}: {error}"
msgstr ""
#: ../fdroidserver/rewritemeta.py
#, python-brace-format
msgid "Cannot rewrite \"{path}\""
@ -1478,6 +1483,11 @@ msgstr ""
msgid "Rename APK files that do not match package.name_123.apk"
msgstr ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "RepoType {type} is deprecated, please switch to git."
msgstr ""
#: ../fdroidserver/nightly.py
#, python-brace-format
msgid "Resigning {apkfilename} with provided debug.keystore"
@ -1991,6 +2001,10 @@ msgstr ""
msgid "VirusTotal API key cannot upload files larger than 32MB, use {url} to upload {path}."
msgstr ""
#: ../fdroidserver/nightly.py
msgid "WARNING: only public git repos are supported!"
msgstr ""
#: ../fdroidserver/__main__.py
msgid "Warn about possible metadata errors"
msgstr ""

View file

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: fdroidserver 2.3a1-162-gfbb3cc59\n"
"Report-Msgid-Bugs-To: https://gitlab.com/fdroid/fdroidserver/issues\n"
"POT-Creation-Date: 2025-03-25 11:36+0100\n"
"POT-Creation-Date: 2025-06-25 09:52+0200\n"
"PO-Revision-Date: 2025-03-27 19:35+0000\n"
"Last-Translator: Aindriú Mac Giolla Eoin <aindriu80@gmail.com>\n"
"Language-Team: Irish <https://hosted.weblate.org/projects/f-droid/fdroidserver/ga/>\n"
@ -360,6 +360,11 @@ msgstr[2] "Ní féidir tógáil de bharr {} earráidí agus an scanadh"
msgstr[3] "Ní féidir tógáil de bharr {} earráidí agus an scanadh"
msgstr[4] "Ní féidir tógáil de bharr {} earráidí agus an scanadh"
#: ../fdroidserver/common.py
#, fuzzy, python-brace-format
msgid "Cannot read {path}: {error}"
msgstr "Theip ar léamh {path}: {error}"
#: ../fdroidserver/rewritemeta.py
#, python-brace-format
msgid "Cannot rewrite \"{path}\""
@ -1487,6 +1492,11 @@ msgstr "Ag baint {path}\""
msgid "Rename APK files that do not match package.name_123.apk"
msgstr "Athainmnigh comhaid APK nach bhfuil comhoiriúnach package.name_123.apk"
#: ../fdroidserver/common.py
#, python-brace-format
msgid "RepoType {type} is deprecated, please switch to git."
msgstr ""
#: ../fdroidserver/nightly.py
#, python-brace-format
msgid "Resigning {apkfilename} with provided debug.keystore"
@ -2010,6 +2020,10 @@ msgstr "Pacáiste {path} á fhíorú le apksigner."
msgid "VirusTotal API key cannot upload files larger than 32MB, use {url} to upload {path}."
msgstr "Ní féidir le heochair API VirusTotal comhaid níos mó ná 32MB a uaslódáil, úsáid {url} chun {path} a uaslódáil."
#: ../fdroidserver/nightly.py
msgid "WARNING: only public git repos are supported!"
msgstr ""
#: ../fdroidserver/__main__.py
msgid "Warn about possible metadata errors"
msgstr "Tabhair rabhadh faoi earráidí meiteashonraí a d'fhéadfadh a bheith ann"

View file

@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: fdroidserver 2.0a5-27-gf24eae0f\n"
"Report-Msgid-Bugs-To: https://gitlab.com/fdroid/fdroidserver/issues\n"
"POT-Creation-Date: 2025-03-25 11:36+0100\n"
"POT-Creation-Date: 2025-06-25 09:52+0200\n"
"PO-Revision-Date: 2023-02-22 11:24+0000\n"
"Last-Translator: Saurmandal <saurmandal@protonmail.com>\n"
"Language-Team: Hindi <https://hosted.weblate.org/projects/f-droid/fdroidserver/hi/>\n"
@ -354,6 +354,11 @@ msgid_plural "Can't build due to {} errors while scanning"
msgstr[0] ""
msgstr[1] ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "Cannot read {path}: {error}"
msgstr ""
#: ../fdroidserver/rewritemeta.py
#, python-brace-format
msgid "Cannot rewrite \"{path}\""
@ -1479,6 +1484,11 @@ msgstr ""
msgid "Rename APK files that do not match package.name_123.apk"
msgstr ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "RepoType {type} is deprecated, please switch to git."
msgstr ""
#: ../fdroidserver/nightly.py
#, python-brace-format
msgid "Resigning {apkfilename} with provided debug.keystore"
@ -1992,6 +2002,10 @@ msgstr ""
msgid "VirusTotal API key cannot upload files larger than 32MB, use {url} to upload {path}."
msgstr ""
#: ../fdroidserver/nightly.py
msgid "WARNING: only public git repos are supported!"
msgstr ""
#: ../fdroidserver/__main__.py
msgid "Warn about possible metadata errors"
msgstr ""

View file

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: fdroidserver 1.0.6-70-g54bc858\n"
"Report-Msgid-Bugs-To: https://gitlab.com/fdroid/fdroidserver/issues\n"
"POT-Creation-Date: 2025-03-25 11:36+0100\n"
"POT-Creation-Date: 2025-06-25 09:52+0200\n"
"PO-Revision-Date: 2024-04-10 13:33+0000\n"
"Last-Translator: Hans-Christoph Steiner <hans@guardianproject.info>\n"
"Language-Team: Hungarian <https://hosted.weblate.org/projects/f-droid/fdroidserver/hu/>\n"
@ -359,6 +359,11 @@ msgid_plural "Can't build due to {} errors while scanning"
msgstr[0] "Nem lehet összeállítani, mert {} hiba történt az átvizsgáláskor"
msgstr[1] "Nem lehet összeállítani, mert {} hiba történt az átvizsgáláskor"
#: ../fdroidserver/common.py
#, fuzzy, python-brace-format
msgid "Cannot read {path}: {error}"
msgstr "A(z) {path} olvasása sikertelen: {error}"
#: ../fdroidserver/rewritemeta.py
#, python-brace-format
msgid "Cannot rewrite \"{path}\""
@ -1494,6 +1499,11 @@ msgstr ""
msgid "Rename APK files that do not match package.name_123.apk"
msgstr "Azon APK fájlok átnevezése, melyek nem illeszkednek a csomag.név_123.apk mintára"
#: ../fdroidserver/common.py
#, python-brace-format
msgid "RepoType {type} is deprecated, please switch to git."
msgstr ""
#: ../fdroidserver/nightly.py
#, python-brace-format
msgid "Resigning {apkfilename} with provided debug.keystore"
@ -2011,6 +2021,10 @@ msgstr ""
msgid "VirusTotal API key cannot upload files larger than 32MB, use {url} to upload {path}."
msgstr ""
#: ../fdroidserver/nightly.py
msgid "WARNING: only public git repos are supported!"
msgstr ""
#: ../fdroidserver/__main__.py
msgid "Warn about possible metadata errors"
msgstr "Figyelmeztetés a lehetséges metaadat-hibákról"

View file

@ -22,7 +22,7 @@ msgid ""
msgstr ""
"Project-Id-Version: fdroidserver 0.9\n"
"Report-Msgid-Bugs-To: https://gitlab.com/fdroid/fdroidserver/issues\n"
"POT-Creation-Date: 2025-03-25 11:36+0100\n"
"POT-Creation-Date: 2025-06-25 09:52+0200\n"
"PO-Revision-Date: 2025-03-20 16:21+0000\n"
"Last-Translator: Champ0999 <champ0999@users.noreply.hosted.weblate.org>\n"
"Language-Team: Italian <https://hosted.weblate.org/projects/f-droid/fdroidserver/it/>\n"
@ -375,6 +375,11 @@ msgid_plural "Can't build due to {} errors while scanning"
msgstr[0] "Impossibile costruire a causa di un errore con {} durante la scansione"
msgstr[1] "Impossibile costruire a causa di errori con {} durante la scansione"
#: ../fdroidserver/common.py
#, fuzzy, python-brace-format
msgid "Cannot read {path}: {error}"
msgstr "Impossibile leggere {path}: {error}"
#: ../fdroidserver/rewritemeta.py
#, python-brace-format
msgid "Cannot rewrite \"{path}\""
@ -1504,6 +1509,11 @@ msgstr "Rimozione di {path}\""
msgid "Rename APK files that do not match package.name_123.apk"
msgstr "Rinomina i file APK che non corrispondono a package.name_123.apk"
#: ../fdroidserver/common.py
#, python-brace-format
msgid "RepoType {type} is deprecated, please switch to git."
msgstr ""
#: ../fdroidserver/nightly.py
#, python-brace-format
msgid "Resigning {apkfilename} with provided debug.keystore"
@ -2028,6 +2038,10 @@ msgstr ""
msgid "VirusTotal API key cannot upload files larger than 32MB, use {url} to upload {path}."
msgstr "La chiave API di VirusTotal non può caricare file più grandi di 32MB, usa {url} per caricare {path}."
#: ../fdroidserver/nightly.py
msgid "WARNING: only public git repos are supported!"
msgstr ""
#: ../fdroidserver/__main__.py
msgid "Warn about possible metadata errors"
msgstr "Avvisa riguardo possibili errori nei metadati"

View file

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: fdroidserver 0.8-224-g4b0ade7\n"
"Report-Msgid-Bugs-To: https://gitlab.com/fdroid/fdroidserver/issues\n"
"POT-Creation-Date: 2025-03-25 11:36+0100\n"
"POT-Creation-Date: 2025-06-25 09:52+0200\n"
"PO-Revision-Date: 2025-04-30 04:07+0000\n"
"Last-Translator: Liner Seven <linour7gmekiblo@gmail.com>\n"
"Language-Team: Japanese <https://hosted.weblate.org/projects/f-droid/fdroidserver/ja/>\n"
@ -359,6 +359,11 @@ msgid "Can't build due to {} error while scanning"
msgid_plural "Can't build due to {} errors while scanning"
msgstr[0] "スキャン時に{}個のエラーが発生したためビルドできません"
#: ../fdroidserver/common.py
#, fuzzy, python-brace-format
msgid "Cannot read {path}: {error}"
msgstr "{path}を読み込めませんでした:{error}"
#: ../fdroidserver/rewritemeta.py
#, python-brace-format
msgid "Cannot rewrite \"{path}\""
@ -1486,6 +1491,11 @@ msgstr "{path} を削除"
msgid "Rename APK files that do not match package.name_123.apk"
msgstr "package.name_123.apkに合致しないAPKファイルの名前を変更"
#: ../fdroidserver/common.py
#, python-brace-format
msgid "RepoType {type} is deprecated, please switch to git."
msgstr ""
#: ../fdroidserver/nightly.py
#, python-brace-format
msgid "Resigning {apkfilename} with provided debug.keystore"
@ -2005,6 +2015,10 @@ msgstr "apksignerを使用してパッケージ{path}を検証しています。
msgid "VirusTotal API key cannot upload files larger than 32MB, use {url} to upload {path}."
msgstr "VirusTotalのAPI鍵は32メガバイトより大きいファイルをアップロードできません。{url}から{path}をアップロードしてください。"
#: ../fdroidserver/nightly.py
msgid "WARNING: only public git repos are supported!"
msgstr ""
#: ../fdroidserver/__main__.py
msgid "Warn about possible metadata errors"
msgstr "潜在的なメタデータのエラーに関して警告"

View file

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: fdroidserver 0.9\n"
"Report-Msgid-Bugs-To: https://gitlab.com/fdroid/fdroidserver/issues\n"
"POT-Creation-Date: 2025-03-25 11:36+0100\n"
"POT-Creation-Date: 2025-06-25 09:52+0200\n"
"PO-Revision-Date: 2021-01-15 13:25+0000\n"
"Last-Translator: R_SACI <rgebbid@gmail.com>\n"
"Language-Team: Kabyle <https://hosted.weblate.org/projects/f-droid/fdroidserver/kab/>\n"
@ -355,6 +355,11 @@ msgid_plural "Can't build due to {} errors while scanning"
msgstr[0] ""
msgstr[1] ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "Cannot read {path}: {error}"
msgstr ""
#: ../fdroidserver/rewritemeta.py
#, python-brace-format
msgid "Cannot rewrite \"{path}\""
@ -1482,6 +1487,11 @@ msgstr ""
msgid "Rename APK files that do not match package.name_123.apk"
msgstr ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "RepoType {type} is deprecated, please switch to git."
msgstr ""
#: ../fdroidserver/nightly.py
#, python-brace-format
msgid "Resigning {apkfilename} with provided debug.keystore"
@ -1995,6 +2005,10 @@ msgstr ""
msgid "VirusTotal API key cannot upload files larger than 32MB, use {url} to upload {path}."
msgstr ""
#: ../fdroidserver/nightly.py
msgid "WARNING: only public git repos are supported!"
msgstr ""
#: ../fdroidserver/__main__.py
msgid "Warn about possible metadata errors"
msgstr ""

View file

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: fdroidserver 0.8-135-g16dd6d28\n"
"Report-Msgid-Bugs-To: https://gitlab.com/fdroid/fdroidserver/issues\n"
"POT-Creation-Date: 2025-03-25 11:36+0100\n"
"POT-Creation-Date: 2025-06-25 09:52+0200\n"
"PO-Revision-Date: 2024-09-06 14:57+0000\n"
"Last-Translator: Cxnfl1ct <wind0wso2o2@naver.com>\n"
"Language-Team: Korean <https://hosted.weblate.org/projects/f-droid/fdroidserver/ko/>\n"
@ -358,6 +358,11 @@ msgid "Can't build due to {} error while scanning"
msgid_plural "Can't build due to {} errors while scanning"
msgstr[0] ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "Cannot read {path}: {error}"
msgstr ""
#: ../fdroidserver/rewritemeta.py
#, python-brace-format
msgid "Cannot rewrite \"{path}\""
@ -1485,6 +1490,11 @@ msgstr ""
msgid "Rename APK files that do not match package.name_123.apk"
msgstr "package.name_123.apk와 일치하지 않는 APK 파일의 이름을 바꿉니다"
#: ../fdroidserver/common.py
#, python-brace-format
msgid "RepoType {type} is deprecated, please switch to git."
msgstr ""
#: ../fdroidserver/nightly.py
#, python-brace-format
msgid "Resigning {apkfilename} with provided debug.keystore"
@ -1997,6 +2007,10 @@ msgstr ""
msgid "VirusTotal API key cannot upload files larger than 32MB, use {url} to upload {path}."
msgstr ""
#: ../fdroidserver/nightly.py
msgid "WARNING: only public git repos are supported!"
msgstr ""
#: ../fdroidserver/__main__.py
msgid "Warn about possible metadata errors"
msgstr "가능한 메타데이터 오류에 대해 경고합니다"

View file

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: fdroidserver 1.0.6-70-g54bc858\n"
"Report-Msgid-Bugs-To: https://gitlab.com/fdroid/fdroidserver/issues\n"
"POT-Creation-Date: 2025-03-25 11:36+0100\n"
"POT-Creation-Date: 2025-06-25 09:52+0200\n"
"PO-Revision-Date: 2023-06-23 14:52+0000\n"
"Last-Translator: abe1242 <abmdn1242@gmail.com>\n"
"Language-Team: Malayalam <https://hosted.weblate.org/projects/f-droid/fdroidserver/ml/>\n"
@ -358,6 +358,11 @@ msgid_plural "Can't build due to {} errors while scanning"
msgstr[0] ""
msgstr[1] ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "Cannot read {path}: {error}"
msgstr ""
#: ../fdroidserver/rewritemeta.py
#, python-brace-format
msgid "Cannot rewrite \"{path}\""
@ -1483,6 +1488,11 @@ msgstr ""
msgid "Rename APK files that do not match package.name_123.apk"
msgstr ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "RepoType {type} is deprecated, please switch to git."
msgstr ""
#: ../fdroidserver/nightly.py
#, python-brace-format
msgid "Resigning {apkfilename} with provided debug.keystore"
@ -1999,6 +2009,10 @@ msgstr ""
msgid "VirusTotal API key cannot upload files larger than 32MB, use {url} to upload {path}."
msgstr ""
#: ../fdroidserver/nightly.py
msgid "WARNING: only public git repos are supported!"
msgstr ""
#: ../fdroidserver/__main__.py
msgid "Warn about possible metadata errors"
msgstr ""

View file

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: fdroidserver 0.8-74-ga380b9f\n"
"Report-Msgid-Bugs-To: https://gitlab.com/fdroid/fdroidserver/issues\n"
"POT-Creation-Date: 2025-03-25 11:36+0100\n"
"POT-Creation-Date: 2025-06-25 09:52+0200\n"
"PO-Revision-Date: 2022-09-06 14:30+0000\n"
"Last-Translator: Hans-Christoph Steiner <hans@guardianproject.info>\n"
"Language-Team: Norwegian Bokmål <https://hosted.weblate.org/projects/f-droid/fdroidserver/nb_NO/>\n"
@ -366,6 +366,11 @@ msgid_plural "Can't build due to {} errors while scanning"
msgstr[0] "Kan ikke bygge som følge av {} feil under skanning"
msgstr[1] "Kan ikke bygge som følge av {} feiler under skanning"
#: ../fdroidserver/common.py
#, fuzzy, python-brace-format
msgid "Cannot read {path}: {error}"
msgstr "Klarte ikke å lese {path}: {error}"
#: ../fdroidserver/rewritemeta.py
#, fuzzy, python-brace-format
msgid "Cannot rewrite \"{path}\""
@ -1537,6 +1542,11 @@ msgstr "Fjerner {path}\""
msgid "Rename APK files that do not match package.name_123.apk"
msgstr "Gi nytt navn til APK-filer som ikke samsvarer med package.name_123.apk"
#: ../fdroidserver/common.py
#, python-brace-format
msgid "RepoType {type} is deprecated, please switch to git."
msgstr ""
#: ../fdroidserver/nightly.py
#, python-brace-format
msgid "Resigning {apkfilename} with provided debug.keystore"
@ -2070,6 +2080,10 @@ msgstr ""
msgid "VirusTotal API key cannot upload files larger than 32MB, use {url} to upload {path}."
msgstr "VirusTotal API-nøkkel kan ikke laste opp filer større enn 32 MB, bruk {url} for å laste opp {path}."
#: ../fdroidserver/nightly.py
msgid "WARNING: only public git repos are supported!"
msgstr ""
#: ../fdroidserver/__main__.py
msgid "Warn about possible metadata errors"
msgstr "Advar om mulige metadata-feil"

View file

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: fdroidserver 1.1-680-ge1d3de71\n"
"Report-Msgid-Bugs-To: https://gitlab.com/fdroid/fdroidserver/issues\n"
"POT-Creation-Date: 2025-03-25 11:36+0100\n"
"POT-Creation-Date: 2025-06-25 09:52+0200\n"
"PO-Revision-Date: 2024-01-03 09:07+0000\n"
"Last-Translator: Issa1553 <fairfull.playing@gmail.com>\n"
"Language-Team: Dutch <https://hosted.weblate.org/projects/f-droid/fdroidserver/nl/>\n"
@ -361,6 +361,11 @@ msgid_plural "Can't build due to {} errors while scanning"
msgstr[0] ""
msgstr[1] ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "Cannot read {path}: {error}"
msgstr ""
#: ../fdroidserver/rewritemeta.py
#, python-brace-format
msgid "Cannot rewrite \"{path}\""
@ -1486,6 +1491,11 @@ msgstr ""
msgid "Rename APK files that do not match package.name_123.apk"
msgstr "Hernoem APK-bestanden die niet overeenkomen met pakket.naam_123.apk"
#: ../fdroidserver/common.py
#, python-brace-format
msgid "RepoType {type} is deprecated, please switch to git."
msgstr ""
#: ../fdroidserver/nightly.py
#, python-brace-format
msgid "Resigning {apkfilename} with provided debug.keystore"
@ -1999,6 +2009,10 @@ msgstr ""
msgid "VirusTotal API key cannot upload files larger than 32MB, use {url} to upload {path}."
msgstr ""
#: ../fdroidserver/nightly.py
msgid "WARNING: only public git repos are supported!"
msgstr ""
#: ../fdroidserver/__main__.py
msgid "Warn about possible metadata errors"
msgstr "Waarschuwen voor mogelijke metadata fouten"

View file

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: fdroidserver 2.3.0-3-g4ba7b5c9\n"
"Report-Msgid-Bugs-To: https://gitlab.com/fdroid/fdroidserver/issues\n"
"POT-Creation-Date: 2025-03-25 11:36+0100\n"
"POT-Creation-Date: 2025-06-25 09:52+0200\n"
"PO-Revision-Date: 2024-11-26 10:54+0000\n"
"Last-Translator: Bård Sigurd Møller <git@bsmoller.no>\n"
"Language-Team: Norwegian Nynorsk <https://hosted.weblate.org/projects/f-droid/fdroidserver/nn/>\n"
@ -353,6 +353,11 @@ msgid_plural "Can't build due to {} errors while scanning"
msgstr[0] ""
msgstr[1] ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "Cannot read {path}: {error}"
msgstr ""
#: ../fdroidserver/rewritemeta.py
#, python-brace-format
msgid "Cannot rewrite \"{path}\""
@ -1478,6 +1483,11 @@ msgstr ""
msgid "Rename APK files that do not match package.name_123.apk"
msgstr ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "RepoType {type} is deprecated, please switch to git."
msgstr ""
#: ../fdroidserver/nightly.py
#, python-brace-format
msgid "Resigning {apkfilename} with provided debug.keystore"
@ -1991,6 +2001,10 @@ msgstr ""
msgid "VirusTotal API key cannot upload files larger than 32MB, use {url} to upload {path}."
msgstr ""
#: ../fdroidserver/nightly.py
msgid "WARNING: only public git repos are supported!"
msgstr ""
#: ../fdroidserver/__main__.py
msgid "Warn about possible metadata errors"
msgstr ""

View file

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: fdroidserver 2.3.3\n"
"Report-Msgid-Bugs-To: https://gitlab.com/fdroid/fdroidserver/issues\n"
"POT-Creation-Date: 2025-03-25 11:36+0100\n"
"POT-Creation-Date: 2025-06-25 09:52+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
@ -352,6 +352,11 @@ msgid_plural "Can't build due to {} errors while scanning"
msgstr[0] ""
msgstr[1] ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "Cannot read {path}: {error}"
msgstr ""
#: ../fdroidserver/rewritemeta.py
#, python-brace-format
msgid "Cannot rewrite \"{path}\""
@ -1477,6 +1482,11 @@ msgstr ""
msgid "Rename APK files that do not match package.name_123.apk"
msgstr ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "RepoType {type} is deprecated, please switch to git."
msgstr ""
#: ../fdroidserver/nightly.py
#, python-brace-format
msgid "Resigning {apkfilename} with provided debug.keystore"
@ -1990,6 +2000,10 @@ msgstr ""
msgid "VirusTotal API key cannot upload files larger than 32MB, use {url} to upload {path}."
msgstr ""
#: ../fdroidserver/nightly.py
msgid "WARNING: only public git repos are supported!"
msgstr ""
#: ../fdroidserver/__main__.py
msgid "Warn about possible metadata errors"
msgstr ""

View file

@ -2,13 +2,13 @@
#
# add completed translations from weblate to MANIFEST.in
import git
import json
import os
import re
import requests
import subprocess
import git
import requests
projectbasedir = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
localedir = os.path.join(projectbasedir, 'locale')

View file

@ -10,7 +10,7 @@ msgid ""
msgstr ""
"Project-Id-Version: fdroidserver 1.0.0-95-gd7af22b\n"
"Report-Msgid-Bugs-To: https://gitlab.com/fdroid/fdroidserver/issues\n"
"POT-Creation-Date: 2025-03-25 11:36+0100\n"
"POT-Creation-Date: 2025-06-25 09:52+0200\n"
"PO-Revision-Date: 2025-06-24 12:05+0000\n"
"Last-Translator: WaldiS <sto@tutanota.de>\n"
"Language-Team: Polish <https://hosted.weblate.org/projects/f-droid/fdroidserver/pl/>\n"
@ -363,6 +363,11 @@ msgstr[0] "Nie można zbudować z powodu błędu {} podczas skanowania"
msgstr[1] "Nie można zbudować z powodu błędów {} podczas skanowania"
msgstr[2] "Nie można zbudować z powodu błędów {} podczas skanowania"
#: ../fdroidserver/common.py
#, fuzzy, python-brace-format
msgid "Cannot read {path}: {error}"
msgstr "Błąd odczytu {path}: {error}"
#: ../fdroidserver/rewritemeta.py
#, python-brace-format
msgid "Cannot rewrite \"{path}\""
@ -1490,6 +1495,11 @@ msgstr "Usuwanie „{path}”"
msgid "Rename APK files that do not match package.name_123.apk"
msgstr "Zmień nazwy plików APK, które nie pasują do pliku package.name_123.apk"
#: ../fdroidserver/common.py
#, python-brace-format
msgid "RepoType {type} is deprecated, please switch to git."
msgstr ""
#: ../fdroidserver/nightly.py
#, python-brace-format
msgid "Resigning {apkfilename} with provided debug.keystore"
@ -2011,6 +2021,10 @@ msgstr "Weryfikacja pakietu {path} za pomocą apksigner."
msgid "VirusTotal API key cannot upload files larger than 32MB, use {url} to upload {path}."
msgstr "Klucz VirusTotal API nie może przesyłać plików większych niż 32 MB, użyj {url}, aby przesłać {path}."
#: ../fdroidserver/nightly.py
msgid "WARNING: only public git repos are supported!"
msgstr ""
#: ../fdroidserver/__main__.py
msgid "Warn about possible metadata errors"
msgstr "Ostrzegaj o możliwych błędach metadanych"

View file

@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: fdroidserver 1.1-680-ge1d3de71\n"
"Report-Msgid-Bugs-To: https://gitlab.com/fdroid/fdroidserver/issues\n"
"POT-Creation-Date: 2025-03-25 11:36+0100\n"
"POT-Creation-Date: 2025-06-25 09:52+0200\n"
"PO-Revision-Date: 2025-04-06 16:45+0000\n"
"Last-Translator: ssantos <ssantos@web.de>\n"
"Language-Team: Portuguese <https://hosted.weblate.org/projects/f-droid/fdroidserver/pt/>\n"
@ -361,6 +361,11 @@ msgid_plural "Can't build due to {} errors while scanning"
msgstr[0] "Não é possível construir devido a erro {} durante a digitalização"
msgstr[1] "Não é possível construir devido a erros {} durante a digitalização"
#: ../fdroidserver/common.py
#, fuzzy, python-brace-format
msgid "Cannot read {path}: {error}"
msgstr "Falha de leitura {path}: {error}"
#: ../fdroidserver/rewritemeta.py
#, python-brace-format
msgid "Cannot rewrite \"{path}\""
@ -1488,6 +1493,11 @@ msgstr "A remover {path}\""
msgid "Rename APK files that do not match package.name_123.apk"
msgstr "Renomear todos os ficheiros APKs que não correspondem com package.name_123.apk"
#: ../fdroidserver/common.py
#, python-brace-format
msgid "RepoType {type} is deprecated, please switch to git."
msgstr ""
#: ../fdroidserver/nightly.py
#, python-brace-format
msgid "Resigning {apkfilename} with provided debug.keystore"
@ -2008,6 +2018,10 @@ msgstr "A verificar o pacote {path} com apksigner."
msgid "VirusTotal API key cannot upload files larger than 32MB, use {url} to upload {path}."
msgstr "A chave VirusTotal API não pode enviar ficheiros maiores que 32MB, use {url} para enviar {path}."
#: ../fdroidserver/nightly.py
msgid "WARNING: only public git repos are supported!"
msgstr ""
#: ../fdroidserver/__main__.py
msgid "Warn about possible metadata errors"
msgstr "Avisar sobre possíveis erros de metadados"

View file

@ -19,7 +19,7 @@ msgid ""
msgstr ""
"Project-Id-Version: fdroidserver 0.9\n"
"Report-Msgid-Bugs-To: https://gitlab.com/fdroid/fdroidserver/issues\n"
"POT-Creation-Date: 2025-03-25 11:36+0100\n"
"POT-Creation-Date: 2025-06-25 09:52+0200\n"
"PO-Revision-Date: 2025-03-26 10:00+0000\n"
"Last-Translator: Igor Rückert <igorruckert@yahoo.com.br>\n"
"Language-Team: Portuguese (Brazil) <https://hosted.weblate.org/projects/f-droid/fdroidserver/pt_BR/>\n"
@ -371,6 +371,11 @@ msgid_plural "Can't build due to {} errors while scanning"
msgstr[0] "Não é possível criar devido a {} erro durante a digitalização"
msgstr[1] "Não é possível criar devido a {} erros durante a digitalização"
#: ../fdroidserver/common.py
#, fuzzy, python-brace-format
msgid "Cannot read {path}: {error}"
msgstr "Falha ao ler {path}: {error}"
#: ../fdroidserver/rewritemeta.py
#, python-brace-format
msgid "Cannot rewrite \"{path}\""
@ -1498,6 +1503,11 @@ msgstr "Removendo {path}\""
msgid "Rename APK files that do not match package.name_123.apk"
msgstr "Renomeia arquivos APK que não correspondem a pacote.nome_123.apk"
#: ../fdroidserver/common.py
#, python-brace-format
msgid "RepoType {type} is deprecated, please switch to git."
msgstr ""
#: ../fdroidserver/nightly.py
#, python-brace-format
msgid "Resigning {apkfilename} with provided debug.keystore"
@ -2018,6 +2028,10 @@ msgstr "Verificando o pacote {path} com apksigner."
msgid "VirusTotal API key cannot upload files larger than 32MB, use {url} to upload {path}."
msgstr "A chave API do VirusTotal não pode carregar arquivos maiores que 32MB, utilize {url} para enviar para {path}."
#: ../fdroidserver/nightly.py
msgid "WARNING: only public git repos are supported!"
msgstr ""
#: ../fdroidserver/__main__.py
msgid "Warn about possible metadata errors"
msgstr "Avisa sobre possíveis erros de metadados"

View file

@ -11,7 +11,7 @@ msgid ""
msgstr ""
"Project-Id-Version: fdroidserver 0.9\n"
"Report-Msgid-Bugs-To: https://gitlab.com/fdroid/fdroidserver/issues\n"
"POT-Creation-Date: 2025-03-25 11:36+0100\n"
"POT-Creation-Date: 2025-06-25 09:52+0200\n"
"PO-Revision-Date: 2025-05-30 07:19+0000\n"
"Last-Translator: ssantos <ssantos@web.de>\n"
"Language-Team: Portuguese (Portugal) <https://hosted.weblate.org/projects/f-droid/fdroidserver/pt_PT/>\n"
@ -363,6 +363,11 @@ msgid_plural "Can't build due to {} errors while scanning"
msgstr[0] "Não é possível construir devido a erro {} durante a digitalização"
msgstr[1] "Não é possível construir devido a erros {} durante a digitalização"
#: ../fdroidserver/common.py
#, fuzzy, python-brace-format
msgid "Cannot read {path}: {error}"
msgstr "Falha de leitura {path}: {error}"
#: ../fdroidserver/rewritemeta.py
#, python-brace-format
msgid "Cannot rewrite \"{path}\""
@ -1490,6 +1495,11 @@ msgstr "A remover {path}\""
msgid "Rename APK files that do not match package.name_123.apk"
msgstr "Renomear todos os ficheiros APKs que não correspondem com package.name_123.apk"
#: ../fdroidserver/common.py
#, python-brace-format
msgid "RepoType {type} is deprecated, please switch to git."
msgstr ""
#: ../fdroidserver/nightly.py
#, python-brace-format
msgid "Resigning {apkfilename} with provided debug.keystore"
@ -2010,6 +2020,10 @@ msgstr "A verificar o pacote {path} com apksigner."
msgid "VirusTotal API key cannot upload files larger than 32MB, use {url} to upload {path}."
msgstr "A chave VirusTotal API não pode enviar ficheiros maiores que 32MB, use {url} para enviar {path}."
#: ../fdroidserver/nightly.py
msgid "WARNING: only public git repos are supported!"
msgstr ""
#: ../fdroidserver/__main__.py
msgid "Warn about possible metadata errors"
msgstr "Avisar sobre possíveis erros de metadados"

View file

@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: fdroidserver 2.0a5-27-gf24eae0f\n"
"Report-Msgid-Bugs-To: https://gitlab.com/fdroid/fdroidserver/issues\n"
"POT-Creation-Date: 2025-03-25 11:36+0100\n"
"POT-Creation-Date: 2025-06-25 09:52+0200\n"
"PO-Revision-Date: 2024-12-02 17:00+0000\n"
"Last-Translator: Licaon Kter <licaon.kter@protonmail.com>\n"
"Language-Team: Romanian <https://hosted.weblate.org/projects/f-droid/fdroidserver/ro/>\n"
@ -362,6 +362,11 @@ msgstr[0] "Nu se poate construi din cauza unei erori {} în timpul scanării"
msgstr[1] "Nu se poate construi din cauza erorilor {} în timpul scanării"
msgstr[2] "Nu se poate construi din cauza erorilor {} în timpul scanării"
#: ../fdroidserver/common.py
#, fuzzy, python-brace-format
msgid "Cannot read {path}: {error}"
msgstr "A eșuat citirea {path}: {error}"
#: ../fdroidserver/rewritemeta.py
#, python-brace-format
msgid "Cannot rewrite \"{path}\""
@ -1489,6 +1494,11 @@ msgstr "Eliminarea lui {path}\""
msgid "Rename APK files that do not match package.name_123.apk"
msgstr "Redenumiți fișierele APK care nu se potrivesc cu package.name_123.apk"
#: ../fdroidserver/common.py
#, python-brace-format
msgid "RepoType {type} is deprecated, please switch to git."
msgstr ""
#: ../fdroidserver/nightly.py
#, python-brace-format
msgid "Resigning {apkfilename} with provided debug.keystore"
@ -2011,6 +2021,10 @@ msgstr ""
msgid "VirusTotal API key cannot upload files larger than 32MB, use {url} to upload {path}."
msgstr "VirusTotal API key nu poate încărca fișiere mai mari de 32MB, utilizați {url} pentru a încărca {path}."
#: ../fdroidserver/nightly.py
msgid "WARNING: only public git repos are supported!"
msgstr ""
#: ../fdroidserver/__main__.py
msgid "Warn about possible metadata errors"
msgstr "Avertizează cu privire la posibile erori de metadate"

View file

@ -21,7 +21,7 @@ msgid ""
msgstr ""
"Project-Id-Version: fdroidserver 1.0.0-95-gd7af22b\n"
"Report-Msgid-Bugs-To: https://gitlab.com/fdroid/fdroidserver/issues\n"
"POT-Creation-Date: 2025-03-25 11:36+0100\n"
"POT-Creation-Date: 2025-06-25 09:52+0200\n"
"PO-Revision-Date: 2025-06-24 10:15+0000\n"
"Last-Translator: Artyom Rybakov <rib.artem@gmail.com>\n"
"Language-Team: Russian <https://hosted.weblate.org/projects/f-droid/fdroidserver/ru/>\n"
@ -374,6 +374,11 @@ msgstr[0] "Запустить сборку невозможно из-за {} о
msgstr[1] "Запустить сборку невозможно из-за {} ошибок во время сканирования данных"
msgstr[2] "Запустить сборку невозможно из-за {} ошибок во время сканирования данных"
#: ../fdroidserver/common.py
#, fuzzy, python-brace-format
msgid "Cannot read {path}: {error}"
msgstr "Не удалось распознать {path}: {error}"
#: ../fdroidserver/rewritemeta.py
#, python-brace-format
msgid "Cannot rewrite \"{path}\""
@ -1501,6 +1506,11 @@ msgstr "Удаление {path}\""
msgid "Rename APK files that do not match package.name_123.apk"
msgstr "Переименовать все APK файлы, не соответствующие шаблону \"название.пакета_123.apk\""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "RepoType {type} is deprecated, please switch to git."
msgstr ""
#: ../fdroidserver/nightly.py
#, python-brace-format
msgid "Resigning {apkfilename} with provided debug.keystore"
@ -2022,6 +2032,10 @@ msgstr "Проверка пакета {path} с помощью apksigner."
msgid "VirusTotal API key cannot upload files larger than 32MB, use {url} to upload {path}."
msgstr "Через API VirusTotal нельзя загрузить файлы больше 32MB, загрузите {path} на {url} самостоятельно."
#: ../fdroidserver/nightly.py
msgid "WARNING: only public git repos are supported!"
msgstr ""
#: ../fdroidserver/__main__.py
msgid "Warn about possible metadata errors"
msgstr "Предупреждать о возможных ошибках в метаданных"

View file

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: fdroidserver 1.0.6-349-g907c04ea\n"
"Report-Msgid-Bugs-To: https://gitlab.com/fdroid/fdroidserver/issues\n"
"POT-Creation-Date: 2025-03-25 11:36+0100\n"
"POT-Creation-Date: 2025-06-25 09:52+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
@ -353,6 +353,11 @@ msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "Cannot read {path}: {error}"
msgstr ""
#: ../fdroidserver/rewritemeta.py
#, python-brace-format
msgid "Cannot rewrite \"{path}\""
@ -1478,6 +1483,11 @@ msgstr ""
msgid "Rename APK files that do not match package.name_123.apk"
msgstr ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "RepoType {type} is deprecated, please switch to git."
msgstr ""
#: ../fdroidserver/nightly.py
#, python-brace-format
msgid "Resigning {apkfilename} with provided debug.keystore"
@ -1992,6 +2002,10 @@ msgstr ""
msgid "VirusTotal API key cannot upload files larger than 32MB, use {url} to upload {path}."
msgstr ""
#: ../fdroidserver/nightly.py
msgid "WARNING: only public git repos are supported!"
msgstr ""
#: ../fdroidserver/__main__.py
msgid "Warn about possible metadata errors"
msgstr ""

View file

@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: fdroidserver 1.0.6-349-g907c04ea\n"
"Report-Msgid-Bugs-To: https://gitlab.com/fdroid/fdroidserver/issues\n"
"POT-Creation-Date: 2025-03-25 11:36+0100\n"
"POT-Creation-Date: 2025-06-25 09:52+0200\n"
"PO-Revision-Date: 2025-03-26 21:33+0000\n"
"Last-Translator: Besnik Bleta <besnik@programeshqip.org>\n"
"Language-Team: Albanian <https://hosted.weblate.org/projects/f-droid/fdroidserver/sq/>\n"
@ -358,6 +358,11 @@ msgid_plural "Can't build due to {} errors while scanning"
msgstr[0] "Smontohet dot, për shkak të {} gabimi teksa skanohej"
msgstr[1] "Smontohet dot, për shkak të {} gabimeve teksa skanohej"
#: ../fdroidserver/common.py
#, fuzzy, python-brace-format
msgid "Cannot read {path}: {error}"
msgstr "Su arrit të lexohej {path}: {error}"
#: ../fdroidserver/rewritemeta.py
#, python-brace-format
msgid "Cannot rewrite \"{path}\""
@ -1485,6 +1490,11 @@ msgstr "Po hiqet {path}\""
msgid "Rename APK files that do not match package.name_123.apk"
msgstr "Riemërtoni kartelat APK që nuk përputhen me package.name_123.apk"
#: ../fdroidserver/common.py
#, python-brace-format
msgid "RepoType {type} is deprecated, please switch to git."
msgstr ""
#: ../fdroidserver/nightly.py
#, python-brace-format
msgid "Resigning {apkfilename} with provided debug.keystore"
@ -2006,6 +2016,10 @@ msgstr "Po verifikohet paketë {path} me apksigner."
msgid "VirusTotal API key cannot upload files larger than 32MB, use {url} to upload {path}."
msgstr "Kyçi API VirusTotal smund të ngarkojë kartela më të mëdha se 2MB, përdorni {url} që të ngarkoni {path}."
#: ../fdroidserver/nightly.py
msgid "WARNING: only public git repos are supported!"
msgstr ""
#: ../fdroidserver/__main__.py
msgid "Warn about possible metadata errors"
msgstr "Sinjalizo rreth gabimesh të mundshëm tejtëdhënash"

View file

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: fdroidserver 2.1b0\n"
"Report-Msgid-Bugs-To: https://gitlab.com/fdroid/fdroidserver/issues\n"
"POT-Creation-Date: 2025-03-25 11:36+0100\n"
"POT-Creation-Date: 2025-06-25 09:52+0200\n"
"PO-Revision-Date: 2024-12-30 22:00+0000\n"
"Last-Translator: Reno Tx <renotx@users.noreply.hosted.weblate.org>\n"
"Language-Team: Serbian <https://hosted.weblate.org/projects/f-droid/fdroidserver/sr/>\n"
@ -361,6 +361,11 @@ msgstr[0] "Не може се изградити због {} грешке при
msgstr[1] "Не може се изградити због {} грешке приликом скенирања"
msgstr[2] "Не може се изградити због {} грешака приликом скенирања"
#: ../fdroidserver/common.py
#, fuzzy, python-brace-format
msgid "Cannot read {path}: {error}"
msgstr "Није успело читање {path}: {error}"
#: ../fdroidserver/rewritemeta.py
#, python-brace-format
msgid "Cannot rewrite \"{path}\""
@ -1488,6 +1493,11 @@ msgstr "Уклањање {path}"
msgid "Rename APK files that do not match package.name_123.apk"
msgstr "Преименујте APK фајлове који не одговарају package.name_123.apk"
#: ../fdroidserver/common.py
#, python-brace-format
msgid "RepoType {type} is deprecated, please switch to git."
msgstr ""
#: ../fdroidserver/nightly.py
#, python-brace-format
msgid "Resigning {apkfilename} with provided debug.keystore"
@ -2009,6 +2019,10 @@ msgstr "Провера пакета {path} са apksigner."
msgid "VirusTotal API key cannot upload files larger than 32MB, use {url} to upload {path}."
msgstr "VirusTotal API кључ не може отпремити датотеке веће од 32MB, користи {url} за отпремање {path}."
#: ../fdroidserver/nightly.py
msgid "WARNING: only public git repos are supported!"
msgstr ""
#: ../fdroidserver/__main__.py
msgid "Warn about possible metadata errors"
msgstr "Упозорење о могућим грешкама у метаподацима"

View file

@ -10,7 +10,7 @@ msgid ""
msgstr ""
"Project-Id-Version: fdroidserver 1.0.0-95-gd7af22b\n"
"Report-Msgid-Bugs-To: https://gitlab.com/fdroid/fdroidserver/issues\n"
"POT-Creation-Date: 2025-03-25 11:36+0100\n"
"POT-Creation-Date: 2025-06-25 09:52+0200\n"
"PO-Revision-Date: 2025-03-17 21:44+0000\n"
"Last-Translator: Kristoffer Grundström <swedishsailfishosuser@tutanota.com>\n"
"Language-Team: Swedish <https://hosted.weblate.org/projects/f-droid/fdroidserver/sv/>\n"
@ -362,6 +362,11 @@ msgid_plural "Can't build due to {} errors while scanning"
msgstr[0] ""
msgstr[1] ""
#: ../fdroidserver/common.py
#, fuzzy, python-brace-format
msgid "Cannot read {path}: {error}"
msgstr "{path}: {error}"
#: ../fdroidserver/rewritemeta.py
#, python-brace-format
msgid "Cannot rewrite \"{path}\""
@ -1487,6 +1492,11 @@ msgstr "Tar bort {path}''"
msgid "Rename APK files that do not match package.name_123.apk"
msgstr "Byt namn på APK-filer som inte matchar paket.namn_123.apk"
#: ../fdroidserver/common.py
#, python-brace-format
msgid "RepoType {type} is deprecated, please switch to git."
msgstr ""
#: ../fdroidserver/nightly.py
#, python-brace-format
msgid "Resigning {apkfilename} with provided debug.keystore"
@ -2000,6 +2010,10 @@ msgstr ""
msgid "VirusTotal API key cannot upload files larger than 32MB, use {url} to upload {path}."
msgstr ""
#: ../fdroidserver/nightly.py
msgid "WARNING: only public git repos are supported!"
msgstr ""
#: ../fdroidserver/__main__.py
msgid "Warn about possible metadata errors"
msgstr "Visa varningar vid möjliga metadatafel"

View file

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: fdroidserver 2.3a1\n"
"Report-Msgid-Bugs-To: https://gitlab.com/fdroid/fdroidserver/issues\n"
"POT-Creation-Date: 2025-03-25 11:36+0100\n"
"POT-Creation-Date: 2025-06-25 09:52+0200\n"
"PO-Revision-Date: 2024-09-08 11:09+0000\n"
"Last-Translator: abelbiwott-dev <abelbiwott@outlook.com>\n"
"Language-Team: Swahili <https://hosted.weblate.org/projects/f-droid/fdroidserver/sw/>\n"
@ -359,6 +359,11 @@ msgid_plural "Can't build due to {} errors while scanning"
msgstr[0] "Haiwezi kujenga kutokana na kosa la {} wakati wa uchanganuzi"
msgstr[1] "Haiwezi kujenga kutokana na makosa ya {} wakati wa uchanganuzi"
#: ../fdroidserver/common.py
#, fuzzy, python-brace-format
msgid "Cannot read {path}: {error}"
msgstr "Imeshindwa kusoma {path}: {error}"
#: ../fdroidserver/rewritemeta.py
#, python-brace-format
msgid "Cannot rewrite \"{path}\""
@ -1486,6 +1491,11 @@ msgstr "Kuondoa {path}\""
msgid "Rename APK files that do not match package.name_123.apk"
msgstr "Badilisha jina la faili za APK ambazo hazilingani na package.name_123.apk"
#: ../fdroidserver/common.py
#, python-brace-format
msgid "RepoType {type} is deprecated, please switch to git."
msgstr ""
#: ../fdroidserver/nightly.py
#, python-brace-format
msgid "Resigning {apkfilename} with provided debug.keystore"
@ -2007,6 +2017,10 @@ msgstr ""
msgid "VirusTotal API key cannot upload files larger than 32MB, use {url} to upload {path}."
msgstr "Ufunguo wa API ya VirusTotal haiwezi kupakia faili zaidi ya 32MB, tumia {url} kupakia {path}."
#: ../fdroidserver/nightly.py
msgid "WARNING: only public git repos are supported!"
msgstr ""
#: ../fdroidserver/__main__.py
msgid "Warn about possible metadata errors"
msgstr "Onya kuhusu hitilafu ya metadata yanayoweza kutokea"

View file

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: fdroidserver 2.1-273-g54e84d87\n"
"Report-Msgid-Bugs-To: https://gitlab.com/fdroid/fdroidserver/issues\n"
"POT-Creation-Date: 2025-03-25 11:36+0100\n"
"POT-Creation-Date: 2025-06-25 09:52+0200\n"
"PO-Revision-Date: 2025-01-20 14:04+0000\n"
"Last-Translator: Hans-Christoph Steiner <hans@guardianproject.info>\n"
"Language-Team: Tamil <https://hosted.weblate.org/projects/f-droid/fdroidserver/ta/>\n"
@ -360,6 +360,11 @@ msgid_plural "Can't build due to {} errors while scanning"
msgstr[0] "ச்கேன் செய்யும் போது {} பிழை காரணமாக உருவாக்க முடியாது"
msgstr[1] "ச்கேன் செய்யும் போது {} பிழைகள் காரணமாக உருவாக்க முடியாது"
#: ../fdroidserver/common.py
#, fuzzy, python-brace-format
msgid "Cannot read {path}: {error}"
msgstr "தோல்வியுற்ற வாசிப்பு {path}: {error}"
#: ../fdroidserver/rewritemeta.py
#, python-brace-format
msgid "Cannot rewrite \"{path}\""
@ -1487,6 +1492,11 @@ msgstr "{path} \"ஐ நீக்குதல்"
msgid "Rename APK files that do not match package.name_123.apk"
msgstr "தொகுப்புடன் பொருந்தாத APK கோப்புகளை மறுபெயரிடுங்கள். NAME_123.APK"
#: ../fdroidserver/common.py
#, python-brace-format
msgid "RepoType {type} is deprecated, please switch to git."
msgstr ""
#: ../fdroidserver/nightly.py
#, python-brace-format
msgid "Resigning {apkfilename} with provided debug.keystore"
@ -2007,6 +2017,10 @@ msgstr "Apksigner உடன் தொகுப்பு {path} ஐ சரிப
msgid "VirusTotal API key cannot upload files larger than 32MB, use {url} to upload {path}."
msgstr "வைரச்டோட்டல் பநிஇ விசையை 32MB ஐ விட பெரிய கோப்புகளை பதிவேற்ற முடியாது, {path} பதிவேற்ற {url} ஐப் பயன்படுத்தவும்."
#: ../fdroidserver/nightly.py
msgid "WARNING: only public git repos are supported!"
msgstr ""
#: ../fdroidserver/__main__.py
msgid "Warn about possible metadata errors"
msgstr "சாத்தியமான மேனிலை தரவு பிழைகள் குறித்து எச்சரிக்கவும்"

View file

@ -11,7 +11,7 @@ msgid ""
msgstr ""
"Project-Id-Version: fdroidserver 0.9\n"
"Report-Msgid-Bugs-To: https://gitlab.com/fdroid/fdroidserver/issues\n"
"POT-Creation-Date: 2025-03-25 11:36+0100\n"
"POT-Creation-Date: 2025-06-25 09:52+0200\n"
"PO-Revision-Date: 2025-05-26 22:01+0000\n"
"Last-Translator: Bora Atıcı <boratici.acc@gmail.com>\n"
"Language-Team: Turkish <https://hosted.weblate.org/projects/f-droid/fdroidserver/tr/>\n"
@ -363,6 +363,11 @@ msgid_plural "Can't build due to {} errors while scanning"
msgstr[0] "Tarama sırasında {} hata nedeniyle inşa edilemiyor"
msgstr[1] "Tarama sırasında {} hata nedeniyle inşa edilemiyor"
#: ../fdroidserver/common.py
#, fuzzy, python-brace-format
msgid "Cannot read {path}: {error}"
msgstr "{path} okunamadı: {error}"
#: ../fdroidserver/rewritemeta.py
#, python-brace-format
msgid "Cannot rewrite \"{path}\""
@ -1490,6 +1495,11 @@ msgstr "\"{path}\" kaldırılıyor"
msgid "Rename APK files that do not match package.name_123.apk"
msgstr "paket.adı_123.apk örüntüsüyle eşleşmeyen tüm APK dosyalarını yeniden adlandır"
#: ../fdroidserver/common.py
#, python-brace-format
msgid "RepoType {type} is deprecated, please switch to git."
msgstr ""
#: ../fdroidserver/nightly.py
#, python-brace-format
msgid "Resigning {apkfilename} with provided debug.keystore"
@ -2010,6 +2020,10 @@ msgstr "{path} paketi apksigner ile doğrulanıyor."
msgid "VirusTotal API key cannot upload files larger than 32MB, use {url} to upload {path}."
msgstr "VirusTotal API anahtarı 32MB'den büyük dosyaları yükleyemiyor, {path} yüklemek için {url} kullanın."
#: ../fdroidserver/nightly.py
msgid "WARNING: only public git repos are supported!"
msgstr ""
#: ../fdroidserver/__main__.py
msgid "Warn about possible metadata errors"
msgstr "Olası üst veri hataları hakkında uyar"

View file

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: fdroidserver 1.1-681-gc19e8952\n"
"Report-Msgid-Bugs-To: https://gitlab.com/fdroid/fdroidserver/issues\n"
"POT-Creation-Date: 2025-03-25 11:36+0100\n"
"POT-Creation-Date: 2025-06-25 09:52+0200\n"
"PO-Revision-Date: 2020-10-29 08:32+0000\n"
"Last-Translator: Hakim Oubouali <hakim.oubouali.skr@gmail.com>\n"
"Language-Team: Central Atlas Tamazight <https://hosted.weblate.org/projects/f-droid/fdroidserver/tzm/>\n"
@ -353,6 +353,11 @@ msgid_plural "Can't build due to {} errors while scanning"
msgstr[0] ""
msgstr[1] ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "Cannot read {path}: {error}"
msgstr ""
#: ../fdroidserver/rewritemeta.py
#, python-brace-format
msgid "Cannot rewrite \"{path}\""
@ -1478,6 +1483,11 @@ msgstr ""
msgid "Rename APK files that do not match package.name_123.apk"
msgstr ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "RepoType {type} is deprecated, please switch to git."
msgstr ""
#: ../fdroidserver/nightly.py
#, python-brace-format
msgid "Resigning {apkfilename} with provided debug.keystore"
@ -1991,6 +2001,10 @@ msgstr ""
msgid "VirusTotal API key cannot upload files larger than 32MB, use {url} to upload {path}."
msgstr ""
#: ../fdroidserver/nightly.py
msgid "WARNING: only public git repos are supported!"
msgstr ""
#: ../fdroidserver/__main__.py
msgid "Warn about possible metadata errors"
msgstr ""

View file

@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: fdroidserver 1.0.0-95-gd7af22b\n"
"Report-Msgid-Bugs-To: https://gitlab.com/fdroid/fdroidserver/issues\n"
"POT-Creation-Date: 2025-03-25 11:36+0100\n"
"POT-Creation-Date: 2025-06-25 09:52+0200\n"
"PO-Revision-Date: 2018-06-08 03:44+0000\n"
"Last-Translator: ۋولقان <nureliosman@gmail.com>\n"
"Language-Team: Uyghur <https://hosted.weblate.org/projects/f-droid/fdroidserver/ug/>\n"
@ -354,6 +354,11 @@ msgid_plural "Can't build due to {} errors while scanning"
msgstr[0] ""
msgstr[1] ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "Cannot read {path}: {error}"
msgstr ""
#: ../fdroidserver/rewritemeta.py
#, python-brace-format
msgid "Cannot rewrite \"{path}\""
@ -1480,6 +1485,11 @@ msgstr ""
msgid "Rename APK files that do not match package.name_123.apk"
msgstr ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "RepoType {type} is deprecated, please switch to git."
msgstr ""
#: ../fdroidserver/nightly.py
#, python-brace-format
msgid "Resigning {apkfilename} with provided debug.keystore"
@ -1993,6 +2003,10 @@ msgstr ""
msgid "VirusTotal API key cannot upload files larger than 32MB, use {url} to upload {path}."
msgstr ""
#: ../fdroidserver/nightly.py
msgid "WARNING: only public git repos are supported!"
msgstr ""
#: ../fdroidserver/__main__.py
msgid "Warn about possible metadata errors"
msgstr ""

View file

@ -17,7 +17,7 @@ msgid ""
msgstr ""
"Project-Id-Version: fdroidserver 0.9\n"
"Report-Msgid-Bugs-To: https://gitlab.com/fdroid/fdroidserver/issues\n"
"POT-Creation-Date: 2025-03-25 11:36+0100\n"
"POT-Creation-Date: 2025-06-25 09:52+0200\n"
"PO-Revision-Date: 2025-03-27 19:35+0000\n"
"Last-Translator: Ihor Hordiichuk <igor_ck@outlook.com>\n"
"Language-Team: Ukrainian <https://hosted.weblate.org/projects/f-droid/fdroidserver/uk/>\n"
@ -370,6 +370,11 @@ msgstr[0] "Неможливо створити через {} помилку пі
msgstr[1] "Неможливо створити через {} помилки під час сканування"
msgstr[2] "Неможливо створити через {} помилок під час сканування"
#: ../fdroidserver/common.py
#, fuzzy, python-brace-format
msgid "Cannot read {path}: {error}"
msgstr "Не вдалося розпізнати {path}: {error}"
#: ../fdroidserver/rewritemeta.py
#, python-brace-format
msgid "Cannot rewrite \"{path}\""
@ -1497,6 +1502,11 @@ msgstr "Вилучення {path}\""
msgid "Rename APK files that do not match package.name_123.apk"
msgstr "Перейменування файлів APK, які не відповідають package.name_123.apk"
#: ../fdroidserver/common.py
#, python-brace-format
msgid "RepoType {type} is deprecated, please switch to git."
msgstr ""
#: ../fdroidserver/nightly.py
#, python-brace-format
msgid "Resigning {apkfilename} with provided debug.keystore"
@ -2018,6 +2028,10 @@ msgstr "Перевірка пакета {path} за допомогою apksigner
msgid "VirusTotal API key cannot upload files larger than 32MB, use {url} to upload {path}."
msgstr "Ключ API VirusTotal не може завантажити файли, розмір яких понад 32 МБ, використовуйте {url} для завантаження {path}."
#: ../fdroidserver/nightly.py
msgid "WARNING: only public git repos are supported!"
msgstr ""
#: ../fdroidserver/__main__.py
msgid "Warn about possible metadata errors"
msgstr "Попереджати про можливі помилки метаданих"

View file

@ -39,7 +39,7 @@ msgid ""
msgstr ""
"Project-Id-Version: fdroidserver 0.9\n"
"Report-Msgid-Bugs-To: https://gitlab.com/fdroid/fdroidserver/issues\n"
"POT-Creation-Date: 2025-03-25 11:36+0100\n"
"POT-Creation-Date: 2025-06-25 09:52+0200\n"
"PO-Revision-Date: 2025-03-26 10:00+0000\n"
"Last-Translator: 大王叫我来巡山 <hamburger2048@users.noreply.hosted.weblate.org>\n"
"Language-Team: Chinese (Simplified Han script) <https://hosted.weblate.org/projects/f-droid/fdroidserver/zh_Hans/>\n"
@ -390,6 +390,11 @@ msgid "Can't build due to {} error while scanning"
msgid_plural "Can't build due to {} errors while scanning"
msgstr[0] "因扫描时的{}错误而无法构建"
#: ../fdroidserver/common.py
#, fuzzy, python-brace-format
msgid "Cannot read {path}: {error}"
msgstr "读取 {path} 失败:{error}"
#: ../fdroidserver/rewritemeta.py
#, python-brace-format
msgid "Cannot rewrite \"{path}\""
@ -1517,6 +1522,11 @@ msgstr "删除 {path}\""
msgid "Rename APK files that do not match package.name_123.apk"
msgstr "重命名文件名不符合 package.name_123.apk 的 APK 文件"
#: ../fdroidserver/common.py
#, python-brace-format
msgid "RepoType {type} is deprecated, please switch to git."
msgstr ""
#: ../fdroidserver/nightly.py
#, python-brace-format
msgid "Resigning {apkfilename} with provided debug.keystore"
@ -2036,6 +2046,10 @@ msgstr "使用 apksigner 验证包 {path}。"
msgid "VirusTotal API key cannot upload files larger than 32MB, use {url} to upload {path}."
msgstr "VirusTotal 的 API 密钥无法用于上传大于 32MB 的文件,请使用 {url} 上传 {path}。"
#: ../fdroidserver/nightly.py
msgid "WARNING: only public git repos are supported!"
msgstr ""
#: ../fdroidserver/__main__.py
msgid "Warn about possible metadata errors"
msgstr "警告元数据中可能存在的错误"

View file

@ -11,7 +11,7 @@ msgid ""
msgstr ""
"Project-Id-Version: fdroidserver 0.9\n"
"Report-Msgid-Bugs-To: https://gitlab.com/fdroid/fdroidserver/issues\n"
"POT-Creation-Date: 2025-03-25 11:36+0100\n"
"POT-Creation-Date: 2025-06-25 09:52+0200\n"
"PO-Revision-Date: 2024-11-26 15:16+0000\n"
"Last-Translator: Peter Dave Hello <hsu@peterdavehello.org>\n"
"Language-Team: Chinese (Traditional Han script) <https://hosted.weblate.org/projects/f-droid/fdroidserver/zh_Hant/>\n"
@ -362,6 +362,11 @@ msgid "Can't build due to {} error while scanning"
msgid_plural "Can't build due to {} errors while scanning"
msgstr[0] "掃描時由於 {} 出錯,無法進行編譯"
#: ../fdroidserver/common.py
#, fuzzy, python-brace-format
msgid "Cannot read {path}: {error}"
msgstr "讀取 {path} 失敗:錯誤訊息{error}"
#: ../fdroidserver/rewritemeta.py
#, python-brace-format
msgid "Cannot rewrite \"{path}\""
@ -1509,6 +1514,11 @@ msgstr "正在移除 {path}\""
msgid "Rename APK files that do not match package.name_123.apk"
msgstr "為不符合 package.name_123.apk 格式的 APK 檔案更名"
#: ../fdroidserver/common.py
#, python-brace-format
msgid "RepoType {type} is deprecated, please switch to git."
msgstr ""
#: ../fdroidserver/nightly.py
#, python-brace-format
msgid "Resigning {apkfilename} with provided debug.keystore"
@ -2045,6 +2055,10 @@ msgstr "正在使用 apksigner 驗證套件 {path}。"
msgid "VirusTotal API key cannot upload files larger than 32MB, use {url} to upload {path}."
msgstr "VirusTotal API key 無法上傳大於 32MB 的檔案, 選擇使用 {url} 來上傳檔案 {path} 。"
#: ../fdroidserver/nightly.py
msgid "WARNING: only public git repos are supported!"
msgstr ""
#: ../fdroidserver/__main__.py
msgid "Warn about possible metadata errors"
msgstr "關於中介資料可能錯誤的警告"

View file

@ -30,7 +30,6 @@ force-exclude = '''(
| examples/fdroid_exportkeystore\.py
| examples/fdroid_fetchsrclibs\.py
| examples/fdroid_nitrokeyimport\.py
| fdroidserver/__init__\.py
| fdroidserver/__main__\.py
| fdroidserver/apksigcopier\.py
| fdroidserver/looseversion\.py

View file

@ -39,7 +39,3 @@ Tracking:
description: This app tracks and reports your activity
icon: ic_antifeature_tracking.xml
name: Tracking
UpstreamNonFree:
description: The upstream source code is not entirely Free
icon: ic_antifeature_upstreamnonfree.xml
name: Upstream Non-Free

View file

@ -38,7 +38,3 @@ Tracking:
description: Diese App verfolgt und versendet Ihre Aktivitäten
icon: ic_antifeature_tracking.xml
name: Tracking
UpstreamNonFree:
description: Der Originalcode ist nicht völlig quelloffen
icon: ic_antifeature_upstreamnonfree.xml
name: Originalcode nicht-quelloffen

View file

@ -37,7 +37,3 @@ Tracking:
description: این کاره، فعّالیتتان را ردیابی و گزارش می‌کند
icon: ic_antifeature_tracking.xml
name: ردیابی
UpstreamNonFree:
description: کد مبدأ بالادستی کاملاً آزاد نیست
icon: ic_antifeature_upstreamnonfree.xml
name: بالادست ناآزاد

View file

@ -38,7 +38,3 @@ Tracking:
description: Aplicația îți înregistrează și raportează activitatea undeva
icon: ic_antifeature_tracking.xml
name: Urmărire
UpstreamNonFree:
description: Codul sursa originar nu este în totalitatea lui software liber
icon: ic_antifeature_upstreamnonfree.xml
name: Surse ne-libere

View file

@ -37,7 +37,3 @@ Tracking:
description: 此应用会记录并报告你的活动
icon: ic_antifeature_tracking.xml
name: 跟踪用户
UpstreamNonFree:
description: 上游源代码不是完全自由的
icon: ic_antifeature_upstreamnonfree.xml
name: 上游代码非自由

View file

@ -25,7 +25,6 @@ import sys
from argparse import ArgumentParser
import git
import yaml
localmodule = os.path.realpath(

Some files were not shown because too many files have changed in this diff Show more