Compare commits

..

No commits in common. "master" and "2.4.2" have entirely different histories.

142 changed files with 994 additions and 4077 deletions

View file

@ -98,14 +98,6 @@ 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
@ -220,6 +212,21 @@ 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
@ -279,9 +286,11 @@ 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
@ -290,6 +299,10 @@ 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
@ -430,7 +443,7 @@ macOS:
- brew install --cask android-commandlinetools temurin # temurin is a JDK
# test suite dependencies
- brew install bash coreutils gnu-sed
- brew install dash 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"
@ -447,26 +460,42 @@ macOS:
- echo "macOS sticks with bash 3.x because of licenses, so avoid new bash syntax"
- /bin/bash --version
- /bin/bash -n tests/run-tests
- /bin/bash -n gradlew-fdroid 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:trixie-slim
<<: *apt-template
image: debian:bookworm-slim
rules:
- changes:
- .gitlab-ci.yml
- makebuildserver
- if: "$PERSONAL_ACCESS_TOKEN"
<<: *apt-template
variables:
GIT_DEPTH: 1000
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
@ -521,8 +550,6 @@ 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/
@ -707,9 +734,7 @@ pages:
artifacts:
paths:
- public
needs:
- job: "Build documentation"
optional: true
needs: ["Build documentation"]
rules:
- if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH' # only publish pages on default (master) branch
@ -753,12 +778,12 @@ docker:
# PUBLISH is the signing server. It has a very minimal manual setup.
PUBLISH:
image: debian:bookworm-backports
image: debian:bullseye-backports
<<: *python-rules-changes
script:
- apt-get update
- apt-get -qy upgrade
- apt-get -qy install --no-install-recommends -t bookworm-backports
- apt-get -qy install --no-install-recommends -t bullseye-backports
androguard
apksigner
curl

View file

@ -20,7 +20,6 @@ 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,22 +37,11 @@ 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 \
&& rm /etc/apt/apt.conf.d/99nocacertificates \
&& sed -i 's,http:,https:,' /etc/apt/sources.list.d/debian.sources \
&& apt-get upgrade \
&& apt-get dist-upgrade \
&& apt-get install openssh-client iproute2 python3 openssh-server sudo \

View file

@ -25,12 +25,7 @@ fi
chmod -R a+rX /opt/gradle
test -e /opt/gradle/bin || mkdir -p /opt/gradle/bin
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/
ln -fs /home/vagrant/fdroidserver/gradlew-fdroid /opt/gradle/bin/gradle
chown -h vagrant:vagrant /opt/gradle/bin/gradle
chown vagrant:vagrant /opt/gradle/versions
chmod 0755 /opt/gradle/versions

View file

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

View file

@ -6,6 +6,7 @@ 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,7 +4,6 @@
import os
from argparse import ArgumentParser
from fdroidserver import common
from fdroidserver.common import FDroidPopen
from fdroidserver.exception import BuildException

View file

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

View file

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

View file

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

View file

@ -1,7 +1,6 @@
#!/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,6 +3,7 @@ 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__), '..')),
@ -14,10 +15,7 @@ rootpaths = [
localedir = None
for rootpath in rootpaths:
found_mo = glob.glob(
os.path.join(rootpath, 'locale', '*', 'LC_MESSAGES', 'fdroidserver.mo')
)
if len(found_mo) > 0:
if len(glob.glob(os.path.join(rootpath, 'locale', '*', 'LC_MESSAGES', 'fdroidserver.mo'))) > 0:
localedir = os.path.join(rootpath, 'locale')
break
@ -26,52 +24,39 @@ 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 genkeystore as generate_keystore # NOQA: E402
from fdroidserver.common import verify_apk_signature
from fdroidserver.common import (verify_apk_signature,
genkeystore as generate_keystore) # NOQA: E402
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,
)
from fdroidserver.index import 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,
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_serverwebroot, # NOQA: E402
update_serverwebroots,
)
from fdroidserver.deploy import (update_awsbucket,
update_servergitmirrors,
update_serverwebroots,
update_serverwebroot) # NOQA: E402
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 importlib.metadata
import logging
import os
import pkgutil
import re
import sys
from argparse import ArgumentError
from collections import OrderedDict
import os
import pkgutil
import logging
import importlib.metadata
import git
import fdroidserver.common
import fdroidserver.metadata
from fdroidserver import _
from argparse import ArgumentError
from collections import OrderedDict
COMMANDS = OrderedDict([
("build", _("Build a package from source")),

View file

@ -68,18 +68,9 @@ 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,21 +28,22 @@
# the F-Droid client.
import collections
import defusedxml.minidom
import git
import glob
import os
import json
import logging
import os
import requests
import shutil
import tempfile
import zipfile
from argparse import ArgumentParser
from typing import Optional
import defusedxml.minidom
import git
import requests
from . import _, common, deploy
from . import _
from . import common
from . import deploy
from .exception import FDroidException

View file

@ -18,27 +18,31 @@
# 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 argparse
import glob
import logging
import os
import shutil
import glob
import subprocess
import posixpath
import re
import shutil
import subprocess
import tarfile
import tempfile
import threading
import time
import traceback
import time
import requests
import tempfile
import argparse
import logging
from gettext import ngettext
from pathlib import Path
import requests
from . import _, common, metadata, net, scanner, vmtools
from . import _
from . import common
from . import net
from . import metadata
from . import scanner
from . import vmtools
from .common import FDroidPopen
from .exception import BuildException, FDroidException, VCSException
from .exception import FDroidException, BuildException, VCSException
try:
import paramiko
@ -151,7 +155,9 @@ 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,30 +19,28 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
import configparser
import copy
import logging
import git
import os
import re
import urllib.request
import urllib.error
import time
import subprocess
import sys
import time
import traceback
import urllib.error
import urllib.parse
import urllib.request
from argparse import ArgumentParser
import traceback
import logging
import copy
import urllib.parse
from pathlib import Path
from typing import Optional
import git
from . import _
from . import common
from . import metadata
from . import net
from .exception import VCSException, NoSubmodulesException, FDroidException, MetaDataException
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,59 +52,54 @@ environment variable to include.
"""
import ast
import base64
import copy
import difflib
import filecmp
from typing import List
import git
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 sys
import tempfile
import time
import operator
import logging
import hashlib
import socket
import base64
import zipfile
import tempfile
import json
from pathlib import Path
import defusedxml.ElementTree as XMLElementTree
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 config_dump, yaml
from fdroidserver.exception import (
BuildException,
FDroidException,
MetaDataException,
NoSubmodulesException,
VCSException,
VerificationException,
)
from . import apksigcopier, common
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 . import apksigcopier, common
# The path to this fdroidserver distribution
FDROID_PATH = os.path.realpath(os.path.join(os.path.dirname(__file__), '..'))
@ -188,7 +183,7 @@ default_config = {
'scan_binary': False,
'ant': "ant",
'mvn3': "mvn",
'gradle': shutil.which('gradlew-fdroid'),
'gradle': os.path.join(FDROID_PATH, 'gradlew-fdroid'),
'sync_from_local_copy_dir': False,
'allow_disabled_algorithms': False,
'keep_when_not_allowed': False,
@ -817,10 +812,7 @@ 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)
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)
shutil.copy(os.path.join("config", value), icons_dir)
ret[afname][key][locale] = file_entry(
os.path.join(icons_dir, value)
)
@ -2737,17 +2729,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:
@ -2908,9 +2900,9 @@ def is_debuggable_or_testOnly(apkfile):
return False
try:
# these were moved in androguard 4.0
from androguard.core.axml import START_TAG, AXMLParser, format_value
from androguard.core.axml import AXMLParser, format_value, START_TAG
except ImportError:
from androguard.core.bytecodes.axml import START_TAG, AXMLParser, format_value
from androguard.core.bytecodes.axml import AXMLParser, format_value, START_TAG
_androguard_logging_level()
with ZipFile(apkfile) as apk:
@ -2982,23 +2974,9 @@ def get_apk_id_androguard(apkfile):
try:
# these were moved in androguard 4.0
from androguard.core.axml import (
END_DOCUMENT,
END_TAG,
START_TAG,
TEXT,
AXMLParser,
format_value,
)
from androguard.core.axml import AXMLParser, format_value, START_TAG, END_TAG, TEXT, END_DOCUMENT
except ImportError:
from androguard.core.bytecodes.axml import (
END_DOCUMENT,
END_TAG,
START_TAG,
TEXT,
AXMLParser,
format_value,
)
from androguard.core.bytecodes.axml import AXMLParser, format_value, START_TAG, END_TAG, TEXT, END_DOCUMENT
_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 argparse import ArgumentParser
from typing import Dict, List
import git
import yaml
from git import Repo
import yaml
from argparse import ArgumentParser
import logging
import pathlib
import shutil
import git
import fdroidserver.github
from . import _, common, index
from . import _
from . import common
from . import 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,8 @@ 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 lxml.html import fromstring
from . import net
from lxml.html import fromstring
apkfilename = os.path.basename(path)
r = requests.post(

View file

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

View file

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

View file

@ -16,13 +16,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/>.
import glob
import logging
import os
import time
import glob
from argparse import ArgumentParser
import logging
import time
from . import _, common
from . import _
from . import common
from .common import FDroidPopen
from .exception import FDroidException

View file

@ -30,7 +30,6 @@ these installed on the signing server.
"""
import calendar
import collections
import hashlib
import json
@ -42,27 +41,20 @@ 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.
@ -595,10 +587,7 @@ 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"]),
version["srcnameSha256"],
)
ver["src"] = common.file_entry(os.path.join(repodir, version["srcname"]))
if "obbMainFile" in version:
ver["obbMainFile"] = common.file_entry(
@ -967,7 +956,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', 'srcnameSha256'):
if k in ('icon', 'icons', 'icons_src', 'ipfsCIDv1', 'name'):
continue
if k == 'antiFeatures':
d[k] = sorted(v.keys())

View file

@ -19,15 +19,16 @@
# 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 _, common
from . import _
from . import common
from .exception import FDroidException
config = {}

View file

@ -17,22 +17,25 @@
# 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
import defusedxml.ElementTree as XMLElementTree
from . import _, common, github, index, net
from . import _
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,8 @@ import urllib.parse
from argparse import ArgumentParser
from pathlib import Path
from fdroidserver._yaml import yaml
from . import _, common, metadata, rewritemeta
from fdroidserver._yaml import yaml
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/>.
import logging
import math
import os
import platform
import re
from collections import OrderedDict
from pathlib import Path
import math
import platform
import os
import re
import logging
import ruamel.yaml
from collections import OrderedDict
from . import _, common
from ._yaml import yaml
from . import common
from . import _
from .exception import MetaDataException
from ._yaml import yaml
srclibs = None
warnings_action = None

View file

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

View file

@ -21,11 +21,10 @@ 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
import git
import paramiko
import yaml
from . import _, common
from . import _
from . import common
from .exception import VCSException
# hard coded defaults for Android ~/.android/debug.keystore files

View file

@ -28,21 +28,23 @@ mostly reports success by moving an APK from unsigned/ to repo/
"""
import glob
import hashlib
import json
import logging
import sys
import os
import re
import shutil
import sys
import time
import zipfile
import glob
import hashlib
from argparse import ArgumentParser
from collections import OrderedDict
import logging
from gettext import ngettext
import json
import time
import zipfile
from . import _, common, metadata
from . import _
from . import common
from . import 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, metadata
from . import common
from . import metadata
def main():

View file

@ -17,14 +17,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/>.
import io
import logging
import shutil
import tempfile
from argparse import ArgumentParser
import logging
import io
import tempfile
import shutil
from pathlib import Path
from . import _, common, metadata
from . import _
from . import common
from . import metadata
config = None

View file

@ -729,7 +729,6 @@ 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',
@ -751,12 +750,8 @@ def scan_source(build_dir, build=metadata.Build(), json_per_build=None):
]
]
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 = common.getpaths_map(build_dir, build.scanignore)
scandelete = common.getpaths_map(build_dir, build.scandelete)
scanignore_worked = set()
scandelete_worked = set()
@ -1114,19 +1109,11 @@ 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,13 +15,15 @@
# 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
from . import _, common
import re
import os
import sys
import logging
from . import _
from . import common
from .exception import FDroidException

View file

@ -17,13 +17,15 @@
# 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 _, common, metadata
from . import _
from . import common
from . import metadata
from .exception import FDroidException
config = None

View file

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

View file

@ -20,27 +20,25 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
import argparse
import copy
import filecmp
import glob
import hashlib
import json
import logging
import os
import re
import shutil
import socket
import sys
import time
import os
import shutil
import glob
import logging
import re
import socket
import warnings
import zipfile
from argparse import ArgumentParser
from datetime import datetime, timezone
from pathlib import Path
import hashlib
import json
import time
import yaml
import copy
import asn1crypto.cms
import defusedxml.ElementTree as ElementTree
import yaml
from datetime import datetime, timezone
from argparse import ArgumentParser
from pathlib import Path
try:
from yaml import CSafeLoader as SafeLoader
@ -50,13 +48,14 @@ except ImportError:
import collections
from binascii import hexlify
from PIL import Image, PngImagePlugin
from . import _
from . import common
from . import metadata
from .common import DEFAULT_LOCALE
from .exception import BuildException, FDroidException, VerificationException
import fdroidserver.index
from . import _, common, metadata
from .common import DEFAULT_LOCALE
from .exception import BuildException, FDroidException, NoVersionCodeException, VerificationException
from PIL import Image, PngImagePlugin
if hasattr(Image, 'DecompressionBombWarning'):
warnings.simplefilter('error', Image.DecompressionBombWarning)
@ -370,12 +369,6 @@ 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
@ -1154,7 +1147,6 @@ 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.
@ -1174,7 +1166,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]*'), recursive=True)
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]*', 'metadata', '[a-z][a-z]*'))
sourcedirs += glob.glob(os.path.join('metadata', '[A-Za-z]*', '[a-z][a-z]*'))
@ -1190,40 +1182,20 @@ 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 builds and 'gradle' in builds[-1] and builds[-1]['gradle'] != ['yes']:
build_flavors = common.calculate_gradle_flavor_combination(
builds[-1]['gradle']
)
found_in_flavor = (
len(segments) > 7
and segments[2] == 'src'
and segments[4] == "fastlane"
and segments[3] in build_flavors
)
if (
not found_in_subdir
and not found_in_flavor
and segments[0] == 'build'
and segments[2] not in ('metadata', 'fastlane')
apps[packageName]
and len(apps[packageName].get('Builds', [])) > 0
and 'gradle' in apps[packageName]['Builds'][-1]
and apps[packageName]['Builds'][-1]['gradle'] != ['yes']
):
logging.debug(
'Not scanning "{dir}" with unknown subdir or gradle flavor "{value}"'.format(
dir=os.path.relpath(root), value=segments[3]
)
build_flavors = common.calculate_gradle_flavor_combination(
apps[packageName]['Builds'][-1]['gradle']
)
if len(segments) >= 5 and segments[4] == "fastlane" and segments[3] not in build_flavors:
logging.debug("ignoring due to wrong flavor")
continue
for f in files:
@ -1261,7 +1233,9 @@ def insert_localized_app_metadata(apps):
try:
versionCode = int(base)
locale = segments[-2]
if versionCode in [b["versionCode"] for b in builds]:
if versionCode in [
a["versionCode"] for a in apps[packageName]["Builds"]
]:
_set_localized_text_entry(
apps[packageName],
locale,
@ -1486,18 +1460,19 @@ 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_src = _get_ipa_icon(Path('build') / package_name)
icon_path = _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': os.path.getsize(icon_src),
'size': icon_stat.st_size,
}
}
if not icon_dest.exists() or not filecmp.cmp(icon_src, icon_dest):
if not icon_dest.exists():
icon_dest.parent.mkdir(parents=True, exist_ok=True)
shutil.copy2(icon_src, icon_dest)
shutil.copy(icon_path, icon_dest)
def scan_repo_files(apkcache, repodir, knownapks, use_date_from_file=False):
@ -1576,10 +1551,8 @@ 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'
srcpath = os.path.join(repodir, srcfilename)
if os.path.exists(srcpath):
if os.path.exists(os.path.join(repodir, srcfilename)):
repo_file['srcname'] = srcfilename.decode()
repo_file['srcnameSha256'] = common.sha256sum(srcpath.decode())
repo_file['size'] = stat.st_size
apkcache[name_utf8] = repo_file
@ -1801,7 +1774,6 @@ 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
@ -1811,12 +1783,8 @@ def scan_apk_androguard(apk, apkfile):
xmlns = '{}'
vcstr = androidmanifest_xml.get(xmlns + 'versionCode')
logging.debug("Version Code: %r (%s)" % (vcstr, apkfile))
if not vcstr:
raise NoVersionCodeException(_("APK file {path} does not have a version code "
"in its manifest").format(path=apkfile))
elif vcstr.startswith('0x'):
if vcstr.startswith('0x'):
apk['versionCode'] = int(vcstr, 16)
else:
apk['versionCode'] = int(vcstr)
@ -1964,10 +1932,6 @@ 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:
@ -2006,10 +1970,8 @@ def process_apk(apkcache, apkfilename, repodir, knownapks, use_date_from_apk=Fal
apk['apkName'] = apkfilename
srcfilename = apkfilename[:-4] + "_src.tar.gz"
srcpath = os.path.join(repodir, srcfilename)
if os.path.exists(srcpath):
if os.path.exists(os.path.join(repodir, srcfilename)):
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,17 +16,18 @@
# 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 os
import sys
import requests
from argparse import ArgumentParser
from collections import OrderedDict
import requests
from . import _, common, net
from . import _
from . import common
from . import net
from .exception import FDroidException
config = None
@ -57,8 +58,8 @@ def _add_diffoscope_info(d):
]
d['diffoscope']['External-Tools-Required'] = external_tools
from diffoscope.external_tools import EXTERNAL_TOOLS
from diffoscope.tools import OS_NAMES, get_current_os
from diffoscope.external_tools import EXTERNAL_TOOLS
current_os = get_current_os()
os_list = [current_os] if (current_os in OS_NAMES) else iter(OS_NAMES)

View file

@ -16,17 +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 json
import logging
from os.path import isdir, isfile, basename, abspath, expanduser
import os
import json
import shutil
import subprocess
import textwrap
import threading
from os.path import abspath, basename, expanduser, isdir, isfile
import logging
from .common import FDroidException
import threading
lock = threading.Lock()

312
gradlew-fdroid Executable file
View file

@ -0,0 +1,312 @@
#!/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="jenkins-build-all jenkins-setup-build-environment jenkins-test completion/bash-completion buildserver/provision-*"
BASH_FILES="gradlew-fdroid 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-06-25 09:52+0200\n"
"POT-Creation-Date: 2025-03-25 11:36+0100\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,11 +353,6 @@ 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,11 +1478,6 @@ 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"
@ -2001,10 +1991,6 @@ 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-06-25 09:52+0200\n"
"POT-Creation-Date: 2025-03-25 11:36+0100\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,11 +358,6 @@ 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}\""
@ -1488,11 +1483,6 @@ 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"
@ -2006,10 +1996,6 @@ 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-06-25 09:52+0200\n"
"POT-Creation-Date: 2025-03-25 11:36+0100\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,11 +354,6 @@ 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}\""
@ -1484,11 +1479,6 @@ 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"
@ -2002,10 +1992,6 @@ 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-06-25 09:52+0200\n"
"POT-Creation-Date: 2025-03-25 11:36+0100\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,11 +353,6 @@ 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,11 +1478,6 @@ 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"
@ -2001,10 +1991,6 @@ 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-06-25 09:52+0200\n"
"POT-Creation-Date: 2025-03-25 11:36+0100\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,11 +358,6 @@ 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}\""
@ -1504,11 +1499,6 @@ 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"
@ -2025,10 +2015,6 @@ 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-06-25 09:52+0200\n"
"POT-Creation-Date: 2025-03-25 11:36+0100\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,11 +363,6 @@ 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}\""
@ -1495,11 +1490,6 @@ 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"
@ -2020,10 +2010,6 @@ 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-06-25 09:52+0200\n"
"POT-Creation-Date: 2025-03-25 11:36+0100\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,11 +366,6 @@ 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}\""
@ -1498,11 +1493,6 @@ 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"
@ -2024,10 +2014,6 @@ 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-06-25 09:52+0200\n"
"POT-Creation-Date: 2025-03-25 11:36+0100\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,11 +357,6 @@ 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}\""
@ -1487,11 +1482,6 @@ 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"
@ -2016,10 +2006,6 @@ 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-06-25 09:52+0200\n"
"POT-Creation-Date: 2025-03-25 11:36+0100\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,11 +378,6 @@ 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}\""
@ -1510,11 +1505,6 @@ 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"
@ -2035,10 +2025,6 @@ 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-06-25 09:52+0200\n"
"POT-Creation-Date: 2025-03-25 11:36+0100\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,11 +360,6 @@ 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}\""
@ -1490,11 +1485,6 @@ 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"
@ -2008,10 +1998,6 @@ 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-06-25 09:52+0200\n"
"POT-Creation-Date: 2025-03-25 11:36+0100\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,11 +371,6 @@ 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}\""
@ -1503,11 +1498,6 @@ 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"
@ -2028,10 +2018,6 @@ 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-06-25 09:52+0200\n"
"POT-Creation-Date: 2025-03-25 11:36+0100\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,11 +361,6 @@ 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}\""
@ -1500,11 +1495,6 @@ 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"
@ -2018,10 +2008,6 @@ 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-06-25 09:52+0200\n"
"POT-Creation-Date: 2025-03-25 11:36+0100\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,11 +354,6 @@ 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}\""
@ -1488,11 +1483,6 @@ 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"
@ -2006,10 +1996,6 @@ 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-06-25 09:52+0200\n"
"POT-Creation-Date: 2025-03-25 11:36+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
@ -352,11 +352,6 @@ 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,11 +1477,6 @@ 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"
@ -2000,10 +1990,6 @@ 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-06-25 09:52+0200\n"
"POT-Creation-Date: 2025-03-25 11:36+0100\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,11 +356,6 @@ 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}\""
@ -1486,11 +1481,6 @@ 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"
@ -2004,10 +1994,6 @@ 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.2-3-gdcb804f7\n"
"Project-Id-Version: fdroidserver 2.4.0\n"
"Report-Msgid-Bugs-To: https://gitlab.com/fdroid/fdroidserver/issues\n"
"POT-Creation-Date: 2025-06-25 09:52+0200\n"
"POT-Creation-Date: 2025-03-25 11:36+0100\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,11 +354,6 @@ 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}\""
@ -1484,11 +1479,6 @@ 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"
@ -2002,10 +1992,6 @@ 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-06-25 09:52+0200\n"
"POT-Creation-Date: 2025-03-25 11:36+0100\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,11 +355,6 @@ 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,11 +1480,6 @@ 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"
@ -2003,10 +1993,6 @@ 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-06-25 09:52+0200\n"
"POT-Creation-Date: 2025-03-25 11:36+0100\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,11 +399,6 @@ 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}\""
@ -1531,11 +1526,6 @@ 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"
@ -2058,10 +2048,6 @@ 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-06-25 09:52+0200\n"
"POT-Creation-Date: 2025-03-25 11:36+0100\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,11 +353,6 @@ 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,11 +1478,6 @@ 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"
@ -2001,10 +1991,6 @@ 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-06-25 09:52+0200\n"
"POT-Creation-Date: 2025-03-25 11:36+0100\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,11 +360,6 @@ 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}\""
@ -1492,11 +1487,6 @@ 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"
@ -2020,10 +2010,6 @@ 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-06-25 09:52+0200\n"
"POT-Creation-Date: 2025-03-25 11:36+0100\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,11 +354,6 @@ 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}\""
@ -1484,11 +1479,6 @@ 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"
@ -2002,10 +1992,6 @@ 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-06-25 09:52+0200\n"
"POT-Creation-Date: 2025-03-25 11:36+0100\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,11 +359,6 @@ 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}\""
@ -1499,11 +1494,6 @@ 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"
@ -2021,10 +2011,6 @@ 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-06-25 09:52+0200\n"
"POT-Creation-Date: 2025-03-25 11:36+0100\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,11 +375,6 @@ 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}\""
@ -1509,11 +1504,6 @@ 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"
@ -2038,10 +2028,6 @@ 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-06-25 09:52+0200\n"
"POT-Creation-Date: 2025-03-25 11:36+0100\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,11 +359,6 @@ 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}\""
@ -1491,11 +1486,6 @@ 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"
@ -2015,10 +2005,6 @@ 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-06-25 09:52+0200\n"
"POT-Creation-Date: 2025-03-25 11:36+0100\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,11 +355,6 @@ 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}\""
@ -1487,11 +1482,6 @@ 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"
@ -2005,10 +1995,6 @@ 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-06-25 09:52+0200\n"
"POT-Creation-Date: 2025-03-25 11:36+0100\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,11 +358,6 @@ 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}\""
@ -1490,11 +1485,6 @@ 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"
@ -2007,10 +1997,6 @@ 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-06-25 09:52+0200\n"
"POT-Creation-Date: 2025-03-25 11:36+0100\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,11 +358,6 @@ 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}\""
@ -1488,11 +1483,6 @@ 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"
@ -2009,10 +1999,6 @@ 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-06-25 09:52+0200\n"
"POT-Creation-Date: 2025-03-25 11:36+0100\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,11 +366,6 @@ 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}\""
@ -1542,11 +1537,6 @@ 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"
@ -2080,10 +2070,6 @@ 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-06-25 09:52+0200\n"
"POT-Creation-Date: 2025-03-25 11:36+0100\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,11 +361,6 @@ 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}\""
@ -1491,11 +1486,6 @@ 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"
@ -2009,10 +1999,6 @@ 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-06-25 09:52+0200\n"
"POT-Creation-Date: 2025-03-25 11:36+0100\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,11 +353,6 @@ 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,11 +1478,6 @@ 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"
@ -2001,10 +1991,6 @@ 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-06-25 09:52+0200\n"
"POT-Creation-Date: 2025-03-25 11:36+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
@ -352,11 +352,6 @@ 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,11 +1477,6 @@ 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"
@ -2000,10 +1990,6 @@ 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-06-25 09:52+0200\n"
"POT-Creation-Date: 2025-03-25 11:36+0100\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,11 +363,6 @@ 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}\""
@ -1495,11 +1490,6 @@ 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"
@ -2021,10 +2011,6 @@ 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-06-25 09:52+0200\n"
"POT-Creation-Date: 2025-03-25 11:36+0100\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,11 +361,6 @@ 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}\""
@ -1493,11 +1488,6 @@ 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"
@ -2018,10 +2008,6 @@ 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-06-25 09:52+0200\n"
"POT-Creation-Date: 2025-03-25 11:36+0100\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,11 +371,6 @@ 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}\""
@ -1503,11 +1498,6 @@ 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"
@ -2028,10 +2018,6 @@ 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-06-25 09:52+0200\n"
"POT-Creation-Date: 2025-03-25 11:36+0100\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,11 +363,6 @@ 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}\""
@ -1495,11 +1490,6 @@ 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"
@ -2020,10 +2010,6 @@ 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-06-25 09:52+0200\n"
"POT-Creation-Date: 2025-03-25 11:36+0100\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,11 +362,6 @@ 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}\""
@ -1494,11 +1489,6 @@ 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"
@ -2021,10 +2011,6 @@ 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-06-25 09:52+0200\n"
"POT-Creation-Date: 2025-03-25 11:36+0100\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,11 +374,6 @@ 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}\""
@ -1506,11 +1501,6 @@ 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"
@ -2032,10 +2022,6 @@ 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-06-25 09:52+0200\n"
"POT-Creation-Date: 2025-03-25 11:36+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
@ -353,11 +353,6 @@ 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}\""
@ -1483,11 +1478,6 @@ 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"
@ -2002,10 +1992,6 @@ 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-06-25 09:52+0200\n"
"POT-Creation-Date: 2025-03-25 11:36+0100\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,11 +358,6 @@ 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}\""
@ -1490,11 +1485,6 @@ 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"
@ -2016,10 +2006,6 @@ 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-06-25 09:52+0200\n"
"POT-Creation-Date: 2025-03-25 11:36+0100\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,11 +361,6 @@ 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}\""
@ -1493,11 +1488,6 @@ 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"
@ -2019,10 +2009,6 @@ 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-06-25 09:52+0200\n"
"POT-Creation-Date: 2025-03-25 11:36+0100\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,11 +362,6 @@ 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}\""
@ -1492,11 +1487,6 @@ 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"
@ -2010,10 +2000,6 @@ 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-06-25 09:52+0200\n"
"POT-Creation-Date: 2025-03-25 11:36+0100\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,11 +359,6 @@ 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}\""
@ -1491,11 +1486,6 @@ 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"
@ -2017,10 +2007,6 @@ 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-06-25 09:52+0200\n"
"POT-Creation-Date: 2025-03-25 11:36+0100\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,11 +360,6 @@ 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}\""
@ -1492,11 +1487,6 @@ 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"
@ -2017,10 +2007,6 @@ 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-06-25 09:52+0200\n"
"POT-Creation-Date: 2025-03-25 11:36+0100\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,11 +363,6 @@ 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}\""
@ -1495,11 +1490,6 @@ 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"
@ -2020,10 +2010,6 @@ 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-06-25 09:52+0200\n"
"POT-Creation-Date: 2025-03-25 11:36+0100\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,11 +353,6 @@ 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,11 +1478,6 @@ 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"
@ -2001,10 +1991,6 @@ 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-06-25 09:52+0200\n"
"POT-Creation-Date: 2025-03-25 11:36+0100\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,11 +354,6 @@ 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,11 +1480,6 @@ 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"
@ -2003,10 +1993,6 @@ 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-06-25 09:52+0200\n"
"POT-Creation-Date: 2025-03-25 11:36+0100\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,11 +370,6 @@ 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}\""
@ -1502,11 +1497,6 @@ 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"
@ -2028,10 +2018,6 @@ 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-06-25 09:52+0200\n"
"POT-Creation-Date: 2025-03-25 11:36+0100\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,11 +390,6 @@ 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}\""
@ -1522,11 +1517,6 @@ 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"
@ -2046,10 +2036,6 @@ 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-06-25 09:52+0200\n"
"POT-Creation-Date: 2025-03-25 11:36+0100\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,11 +362,6 @@ 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}\""
@ -1514,11 +1509,6 @@ 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"
@ -2055,10 +2045,6 @@ 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,6 +30,7 @@ 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,3 +39,7 @@ 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,3 +38,7 @@ 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,3 +37,7 @@ Tracking:
description: این کاره، فعّالیتتان را ردیابی و گزارش می‌کند
icon: ic_antifeature_tracking.xml
name: ردیابی
UpstreamNonFree:
description: کد مبدأ بالادستی کاملاً آزاد نیست
icon: ic_antifeature_upstreamnonfree.xml
name: بالادست ناآزاد

View file

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

View file

@ -25,6 +25,7 @@ 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