diff -Nru fdroidserver-1.0.2/buildserver/gradle fdroidserver-1.0.6/buildserver/gradle --- fdroidserver-1.0.2/buildserver/gradle 2018-02-22 12:03:03.000000000 +0000 +++ fdroidserver-1.0.6/buildserver/gradle 2018-04-25 14:35:22.000000000 +0000 @@ -22,11 +22,11 @@ # (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.html#updating-gradle -d_plugin_k=(3.0 2.3 2.2 2.1.3 2.1 2.0 1.5 1.3 1.2 1.1 1.0 0.14 0.13 0.12 0.11 0.10 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2) -d_plugin_v=(4.1 3.3 2.14.1 2.14.1 2.12 2.12 2.4 2.4 2.3 2.2.1 2.2.1 2.1 2.1 1.12 1.12 1.12 1.11 1.10 1.9 1.8 1.6 1.6 1.4 1.4) +d_plugin_k=(3.1 3.0 2.3 2.2 2.1.3 2.1 2.0 1.5 1.3 1.2 1.1 1.0 0.14 0.13 0.12 0.11 0.10 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2) +d_plugin_v=(4.4 4.1 3.3 2.14.1 2.14.1 2.12 2.12 2.4 2.4 2.3 2.2.1 2.2.1 2.1 2.1 1.12 1.12 1.12 1.11 1.10 1.9 1.8 1.6 1.6 1.4 1.4) # All gradle versions we know about -plugin_v=(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 1.12 1.11 1.10 1.9 1.8 1.7 1.6 1.4) +plugin_v=(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 1.12 1.11 1.10 1.9 1.8 1.7 1.6 1.4) v_all=${plugin_v[@]} echo "Available gradle versions: ${v_all[@]}" diff -Nru fdroidserver-1.0.2/completion/bash-completion fdroidserver-1.0.6/completion/bash-completion --- fdroidserver-1.0.2/completion/bash-completion 2018-02-22 12:03:03.000000000 +0000 +++ fdroidserver-1.0.6/completion/bash-completion 2018-03-05 20:49:09.000000000 +0000 @@ -174,7 +174,7 @@ __complete_checkupdates() { opts="-v -q" - lopts="--verbose --quiet --auto --autoonly --commit --gplay" + lopts="--verbose --quiet --auto --autoonly --commit --gplay --allow-dirty" case "${cur}" in -*) __complete_options diff -Nru fdroidserver-1.0.2/debian/changelog fdroidserver-1.0.6/debian/changelog --- fdroidserver-1.0.2/debian/changelog 2018-02-23 09:33:35.000000000 +0000 +++ fdroidserver-1.0.6/debian/changelog 2018-05-25 15:50:53.000000000 +0000 @@ -1,8 +1,50 @@ -fdroidserver (1.0.2-1~artful) artful; urgency=medium +fdroidserver (1.0.6-1~artful) artful; urgency=medium - * backport to artful + * Backport to artful - -- Hans-Christoph Steiner Fri, 23 Feb 2018 10:33:35 +0100 + -- Hans-Christoph Steiner Fri, 25 May 2018 17:50:53 +0200 + +fdroidserver (1.0.6-1) unstable; urgency=medium + + * New upstream release + + -- Hans-Christoph Steiner Fri, 25 May 2018 17:15:51 +0200 + +fdroidserver (1.0.4-3) unstable; urgency=medium + + * fix autopkgtest run: working dir, and UTF-8 environment + + -- Hans-Christoph Steiner Fri, 18 May 2018 10:54:26 +0200 + +fdroidserver (1.0.4-2) unstable; urgency=medium + + * run upstream testsuite using autopkgtest + + -- Hans-Christoph Steiner Thu, 17 May 2018 12:17:12 +0200 + +fdroidserver (1.0.4-1) unstable; urgency=medium + + * New upstream version 1.0.4 + * Standards-Version: 4.1.4 no changes + * support all the Java 10 and 11 packages + * works with only androguard, removed optional deps + * add debian/upstream/metadata file + * Depends: androguard only on arches where it works + + -- Hans-Christoph Steiner Tue, 15 May 2018 14:04:05 +0200 + +fdroidserver (1.0.3-2) unstable; urgency=medium + + * only depend on aapt/androguard/zipalign on arches where available + + -- Hans-Christoph Steiner Fri, 23 Mar 2018 13:01:27 +0100 + +fdroidserver (1.0.3-1) unstable; urgency=medium + + * New upstream version + * tighten up Depends to install fewer packages + + -- Hans-Christoph Steiner Thu, 22 Mar 2018 23:25:49 +0100 fdroidserver (1.0.2-1) unstable; urgency=medium diff -Nru fdroidserver-1.0.2/debian/control fdroidserver-1.0.6/debian/control --- fdroidserver-1.0.2/debian/control 2018-02-23 09:33:35.000000000 +0000 +++ fdroidserver-1.0.6/debian/control 2018-05-22 12:56:33.000000000 +0000 @@ -9,9 +9,7 @@ python3, python3-babel, python3-setuptools, -Standards-Version: 4.1.3 -X-Python3-Version: >= 3.4 -Testsuite: autopkgtest-pkg-python +Standards-Version: 4.1.4 Homepage: https://f-droid.org Vcs-Git: https://salsa.debian.org/debian/fdroidserver.git Vcs-Browser: https://salsa.debian.org/debian/fdroidserver @@ -19,21 +17,18 @@ Package: fdroidserver Architecture: all Depends: ${python3:Depends}, - aapt, androguard (>= 3.1.0~rc2), - android-platform-tools-base, - default-jdk-headless | default-jdk | openjdk-7-jdk | oracle-java7-jdk | oracle-java8-jdk | oracle-java9-jdk | oracle-java7-installer | oracle-java8-installer | oracle-java9-installer, - python3-git, + default-jdk-headless | default-jdk | openjdk-7-jdk | openjdk-8-jdk-headless | openjdk-9-jdk-headless | openjdk-10-jdk-headless | openjdk-11-jdk-headless | oracle-java7-jdk | oracle-java8-jdk | oracle-java9-jdk | oracle-java10-jdk | oracle-java11-jdk | oracle-java7-installer | oracle-java8-installer | oracle-java9-installer | oracle-java10-installer | oracle-java11-installer, python3-ruamel.yaml, - python3-vagrant, rsync, - zipalign, ${misc:Depends} -Recommends: git, +Recommends: android-sdk, + git, gnupg, opensc, openssh-client, s3cmd, + zipalign, Suggests: gradle, vagrant, vagrant-cachier, diff -Nru fdroidserver-1.0.2/debian/.gitlab-ci.yml fdroidserver-1.0.6/debian/.gitlab-ci.yml --- fdroidserver-1.0.2/debian/.gitlab-ci.yml 2018-02-23 09:32:09.000000000 +0000 +++ fdroidserver-1.0.6/debian/.gitlab-ci.yml 2018-05-23 17:53:15.000000000 +0000 @@ -1,16 +1,25 @@ image: registry.gitlab.com/eighthave/ci-image-git-buildpackage:latest +# these tests will fail with 1.0.4, since the source tarball is missing the "urzip-; *.apk" file + build: artifacts: paths: - "*.deb" expire_in: 1 day - variables: - ANDROID_HOME: /usr/lib/android-sdk script: - - /gitlab-ci-git-buildpackage - - dpkg -i ../*.deb || apt-get -y install --fix-broken - - for f in `apt-cache depends fdroidserver | grep "Recommends:" | cut -d ":" -f 2-222`; do - apt-get -qy install $f || true; done - - mv ../*.deb . - - ./tests/run-tests + # copy it into place to be saved as an "artifact" + - cp ../*.deb . + - sed -i 's,testing,sid,g' /etc/apt/sources.list + - apt-get -qy update + # test with only Depends: + - apt-get -qy install *.deb + - ls -lR /usr/share/doc/fdroidserver + - fdroid=/usr/bin/fdroid ./tests/run-tests + # test with minimal set of Recommends: + - apt-get -qy install git zipalign + - apt-get -qy install *.deb + - fdroid=/usr/bin/fdroid ./tests/run-tests + # test with autopkgtest + - apt-get -qy install autopkgtest + - autopkgtest ../*.changes -- null diff -Nru fdroidserver-1.0.2/debian/patches/debian-java-detection.patch fdroidserver-1.0.6/debian/patches/debian-java-detection.patch --- fdroidserver-1.0.2/debian/patches/debian-java-detection.patch 2018-01-09 08:16:30.000000000 +0000 +++ fdroidserver-1.0.6/debian/patches/debian-java-detection.patch 2018-05-17 09:27:00.000000000 +0000 @@ -9,11 +9,11 @@ --- a/fdroidserver/common.py +++ b/fdroidserver/common.py -@@ -205,15 +205,21 @@ - pathlist += glob.glob(os.path.join(os.getenv('PROGRAMFILES'), 'Java', 'jdk1.[6-9].*')) +@@ -220,15 +220,21 @@ + pathlist += glob.glob(os.path.join(os.getenv('PROGRAMFILES'), 'Java', 'jdk1.[16-9][0-9]?.*')) _add_java_paths_to_config(pathlist, thisconfig) -- for java_version in ('7', '8', '9'): +- for java_version in ('14', '13', '12', '11', '10', '9', '8', '7'): - if java_version not in thisconfig['java_paths']: - continue - java_home = thisconfig['java_paths'][java_version] @@ -21,14 +21,14 @@ - if os.path.exists(jarsigner): - thisconfig['jarsigner'] = jarsigner - thisconfig['keytool'] = os.path.join(java_home, 'bin', 'keytool') -- break # Java7 is preferred, so quit if found +- break + # for Debian/Ubuntu packaging, always prefer the built-in, unless it does not exist + default_java = '/usr/lib/jvm/default-java' + if os.path.exists(default_java): + thisconfig['jarsigner'] = os.path.join(default_java, 'bin', 'jarsigner') + thisconfig['keytool'] = os.path.join(default_java, 'bin', 'keytool') + else: -+ for java_version in ('7', '8', '9'): ++ for java_version in ('14', '13', '12', '11', '10', '9', '8', '7'): + if java_version not in thisconfig['java_paths']: + continue + java_home = thisconfig['java_paths'][java_version] @@ -36,7 +36,7 @@ + if os.path.exists(jarsigner): + thisconfig['jarsigner'] = jarsigner + thisconfig['keytool'] = os.path.join(java_home, 'bin', 'keytool') -+ break # Java7 is preferred, so quit if found ++ break for k in ['ndk_paths', 'java_paths']: d = thisconfig[k] diff -Nru fdroidserver-1.0.2/debian/tests/control fdroidserver-1.0.6/debian/tests/control --- fdroidserver-1.0.2/debian/tests/control 1970-01-01 00:00:00.000000000 +0000 +++ fdroidserver-1.0.6/debian/tests/control 2018-05-22 10:41:47.000000000 +0000 @@ -0,0 +1,2 @@ +Restrictions: isolation-container, needs-recommends, allow-stderr +Test-Command: export LANG=C.UTF-8; export ANDROID_HOME=/usr/lib/android-sdk; fdroid=/usr/bin/fdroid ./tests/run-tests diff -Nru fdroidserver-1.0.2/debian/upstream/metadata fdroidserver-1.0.6/debian/upstream/metadata --- fdroidserver-1.0.2/debian/upstream/metadata 1970-01-01 00:00:00.000000000 +0000 +++ fdroidserver-1.0.6/debian/upstream/metadata 2018-05-17 09:24:46.000000000 +0000 @@ -0,0 +1,43 @@ +Archive: pypi.python.org +Bug-Database: https://gitlab.com/fdroid/fdroidserver/issues +Bug-Submit: https://gitlab.com/fdroid/fdroidserver/issues/new +Cite-As: https://f-droid.org +Contact: https://forum.f-droid.org +Documentation: https://f-droid.org/docs +Donation: https://f-droid.org/about +Repository: https://gitlab.com/fdroid/fdroidserver +Repository-Browse: https://gitlab.com/fdroid/fdroidserver +Security-Contact: team@f-droid.org +Webservice: https://f-droid.org/packages +Screenshots: + - https://f-droid.org/repo/org.fdroid.fdroid/en-US/phoneScreenshots/screenshot-app-details.png + - https://f-droid.org/repo/org.fdroid.fdroid/en-US/phoneScreenshots/screenshot-dark-details.png + - https://f-droid.org/repo/org.fdroid.fdroid/en-US/phoneScreenshots/screenshot-dark-home.png + - https://f-droid.org/repo/org.fdroid.fdroid/en-US/phoneScreenshots/screenshot-dark-knownvuln.png + - https://f-droid.org/repo/org.fdroid.fdroid/en-US/phoneScreenshots/screenshot-knownvuln.png + - https://f-droid.org/repo/org.fdroid.fdroid/en-US/phoneScreenshots/screenshot-search.png + - https://f-droid.org/repo/org.fdroid.fdroid/en-US/phoneScreenshots/screenshot-updates.png + - https://f-droid.org/assets/fdroid-screenshot-af.png + - https://f-droid.org/assets/fdroid-screenshot-ar.png + - https://f-droid.org/assets/fdroid-screenshot-bo.png + - https://f-droid.org/assets/fdroid-screenshot-ca.png + - https://f-droid.org/assets/fdroid-screenshot-cs.png + - https://f-droid.org/assets/fdroid-screenshot-de.png + - https://f-droid.org/assets/fdroid-screenshot-el.png + - https://f-droid.org/assets/fdroid-screenshot-en.png + - https://f-droid.org/assets/fdroid-screenshot-es.png + - https://f-droid.org/assets/fdroid-screenshot-fa.png + - https://f-droid.org/assets/fdroid-screenshot-fr.png + - https://f-droid.org/assets/fdroid-screenshot-it.png + - https://f-droid.org/assets/fdroid-screenshot-ja.png + - https://f-droid.org/assets/fdroid-screenshot-nl.png + - https://f-droid.org/assets/fdroid-screenshot-pl.png + - https://f-droid.org/assets/fdroid-screenshot-pt-BR.png + - https://f-droid.org/assets/fdroid-screenshot-ro.png + - https://f-droid.org/assets/fdroid-screenshot-ru.png + - https://f-droid.org/assets/fdroid-screenshot-sv.png + - https://f-droid.org/assets/fdroid-screenshot-tr.png + - https://f-droid.org/assets/fdroid-screenshot-uk.png + - https://f-droid.org/assets/fdroid-screenshot-vi.png + - https://f-droid.org/assets/fdroid-screenshot-zh.png + - https://f-droid.org/assets/fdroid-screenshot-zh-TW.png diff -Nru fdroidserver-1.0.2/examples/config.py fdroidserver-1.0.6/examples/config.py --- fdroidserver-1.0.2/examples/config.py 2018-02-22 12:03:03.000000000 +0000 +++ fdroidserver-1.0.6/examples/config.py 2018-05-03 11:05:43.000000000 +0000 @@ -21,7 +21,7 @@ # } # java_paths = { -# '1.8': "/usr/lib/jvm/java-8-openjdk", +# '8': "/usr/lib/jvm/java-8-openjdk", # } # Build tools version to be used diff -Nru fdroidserver-1.0.2/fdroid fdroidserver-1.0.6/fdroid --- fdroidserver-1.0.2/fdroid 2018-02-22 12:03:03.000000000 +0000 +++ fdroidserver-1.0.6/fdroid 2018-05-25 10:31:29.000000000 +0000 @@ -126,7 +126,7 @@ # temporary workaround until server.py becomes deploy.py if command == 'deploy': command = 'server' - sys.argv.insert(1, 'update') + sys.argv.insert(2, 'update') # Trick optparse into displaying the right usage when --help is used. sys.argv[0] += ' ' + command @@ -156,7 +156,7 @@ # str(e) often doesn't contain a reason, so just show the backtrace except Exception as e: logging.critical(_("Unknown exception found!")) - raise + raise e sys.exit(0) diff -Nru fdroidserver-1.0.2/fdroidserver/build.py fdroidserver-1.0.6/fdroidserver/build.py --- fdroidserver-1.0.2/fdroidserver/build.py 2018-02-22 14:08:34.000000000 +0000 +++ fdroidserver-1.0.6/fdroidserver/build.py 2018-05-25 07:54:08.000000000 +0000 @@ -79,7 +79,7 @@ if not buildserverid: buildserverid = subprocess.check_output(['vagrant', 'ssh', '-c', 'cat /home/vagrant/buildserverid'], - cwd='builder').rstrip().decode() + cwd='builder').strip().decode() logging.debug(_('Fetched buildserverid from VM: {buildserverid}') .format(buildserverid=buildserverid)) @@ -828,28 +828,12 @@ if common.get_file_extension(src) == 'apk': vercode, version = get_metadata_from_apk(app, build, src) - if (version != build.versionName or vercode != build.versionCode): + if version != build.versionName or vercode != build.versionCode: raise BuildException(("Unexpected version/version code in output;" " APK: '%s' / '%s', " " Expected: '%s' / '%s'") % (version, str(vercode), build.versionName, str(build.versionCode))) - else: - vercode = build.versionCode - version = build.versionName - - # Add information for 'fdroid verify' to be able to reproduce the build - # environment. - if onserver: - metadir = os.path.join(tmp_dir, 'META-INF') - if not os.path.exists(metadir): - os.mkdir(metadir) - homedir = os.path.expanduser('~') - for fn in ['buildserverid', 'fdroidserverid']: - shutil.copyfile(os.path.join(homedir, fn), - os.path.join(metadir, fn)) - subprocess.call(['jar', 'uf', os.path.abspath(src), - 'META-INF/' + fn], cwd=tmp_dir) # Copy the unsigned apk to our destination directory for further # processing (by publish.py)... @@ -1233,6 +1217,7 @@ txt = "* build session started at " + common.get_wiki_timestamp(start_timestamp) + '\n' \ + "* this build started at " + build_starttime + '\n' \ + "* this build completed at " + common.get_wiki_timestamp() + '\n' \ + + common.get_git_describe_link() \ + '* fdroidserverid: [https://gitlab.com/fdroid/fdroidserver/commit/' \ + fdroidserverid + ' ' + fdroidserverid + ']\n\n' if buildserverid: diff -Nru fdroidserver-1.0.2/fdroidserver/checkupdates.py fdroidserver-1.0.6/fdroidserver/checkupdates.py --- fdroidserver-1.0.2/fdroidserver/checkupdates.py 2018-02-22 12:03:03.000000000 +0000 +++ fdroidserver-1.0.6/fdroidserver/checkupdates.py 2018-05-25 07:54:08.000000000 +0000 @@ -30,6 +30,7 @@ from distutils.version import LooseVersion import logging import copy +import urllib.parse from . import _ from . import common @@ -48,6 +49,13 @@ raise FDroidException('Missing Update Check Data') urlcode, codeex, urlver, verex = app.UpdateCheckData.split('|') + parsed = urllib.parse.urlparse(urlcode) + if not parsed.netloc or not parsed.scheme or parsed.scheme != 'https': + raise FDroidException(_('UpdateCheckData has invalid URL: {url}').format(url=urlcode)) + if urlver != '.': + parsed = urllib.parse.urlparse(urlver) + if not parsed.netloc or not parsed.scheme or parsed.scheme != 'https': + raise FDroidException(_('UpdateCheckData has invalid URL: {url}').format(url=urlcode)) vercode = "99999999" if len(urlcode) > 0: @@ -421,9 +429,12 @@ msg = 'Invalid update check method' if version and vercode and app.VercodeOperation: + if not common.VERCODE_OPERATION_RE.match(app.VercodeOperation): + raise MetaDataException(_('Invalid VercodeOperation: {field}') + .format(field=app.VercodeOperation)) oldvercode = str(int(vercode)) op = app.VercodeOperation.replace("%c", oldvercode) - vercode = str(eval(op)) + vercode = str(common.calculate_math_string(op)) logging.debug("Applied vercode operation: %s -> %s" % (oldvercode, vercode)) if version and any(version.startswith(s) for s in [ @@ -499,14 +510,13 @@ logging.warn('Invalid auto update mode "' + mode + '" on ' + app.id) if commitmsg: - metadatapath = os.path.join('metadata', app.id + '.txt') - metadata.write_metadata(metadatapath, app) + metadata.write_metadata(app.metadatapath, app) if options.commit: - logging.info("Commiting update for " + metadatapath) + logging.info("Commiting update for " + app.metadatapath) gitcmd = ["git", "commit", "-m", commitmsg] if 'auto_author' in config: gitcmd.extend(['--author', config['auto_author']]) - gitcmd.extend(["--", metadatapath]) + gitcmd.extend(["--", app.metadatapath]) if subprocess.call(gitcmd) != 0: raise FDroidException("Git commit failed") @@ -524,6 +534,7 @@ newpage = site.Pages[wiki_page_path] txt = '' txt += "* command line: " + ' '.join(sys.argv) + "\n" + txt += common.get_git_describe_link() txt += "* started at " + common.get_wiki_timestamp(start_timestamp) + '\n' txt += "* completed at " + common.get_wiki_timestamp() + '\n' txt += "\n\n" @@ -561,6 +572,8 @@ help=_("Only process apps with auto-updates")) parser.add_argument("--commit", action="store_true", default=False, help=_("Commit changes")) + parser.add_argument("--allow-dirty", action="store_true", default=False, + help=_("Run on git repo that has uncommitted changes")) parser.add_argument("--gplay", action="store_true", default=False, help=_("Only print differences with the Play Store")) metadata.add_metadata_arguments(parser) @@ -569,6 +582,12 @@ config = common.read_config(options) + if not options.allow_dirty: + status = subprocess.check_output(['git', 'status', '--porcelain']) + if status: + logging.error(_('Build metadata git repo has uncommited changes!')) + sys.exit(1) + # Get all apps... allapps = metadata.read_metadata() diff -Nru fdroidserver-1.0.2/fdroidserver/common.py fdroidserver-1.0.6/fdroidserver/common.py --- fdroidserver-1.0.2/fdroidserver/common.py 2018-02-22 20:01:27.000000000 +0000 +++ fdroidserver-1.0.6/fdroidserver/common.py 2018-05-25 09:48:01.000000000 +0000 @@ -24,6 +24,7 @@ import os import sys import re +import ast import shutil import glob import stat @@ -61,6 +62,8 @@ # has to be manually set in test_aapt_version() MINIMUM_AAPT_VERSION = '26.0.0' +VERCODE_OPERATION_RE = re.compile(r'^([ 0-9/*+-]|%c)+$') + # A signature block file with a .DSA, .RSA, or .EC extension CERT_PATH_REGEX = re.compile(r'^META-INF/.*\.(DSA|EC|RSA)$') APK_NAME_REGEX = re.compile(r'^([a-zA-Z][\w.]*)_(-?[0-9]+)_?([0-9a-f]{7})?\.apk') @@ -158,16 +161,18 @@ j = os.path.basename(d) # the last one found will be the canonical one, so order appropriately for regex in [ - r'^1\.([6-9])\.0\.jdk$', # OSX - r'^jdk1\.([6-9])\.0_[0-9]+.jdk$', # OSX and Oracle tarball - r'^jdk1\.([6-9])\.0_[0-9]+$', # Oracle Windows - r'^jdk([6-9])-openjdk$', # Arch - r'^java-([6-9])-openjdk$', # Arch - r'^java-([6-9])-jdk$', # Arch (oracle) - r'^java-1\.([6-9])\.0-.*$', # RedHat - r'^java-([6-9])-oracle$', # Debian WebUpd8 - r'^jdk-([6-9])-oracle-.*$', # Debian make-jpkg - r'^java-([6-9])-openjdk-[^c][^o][^m].*$', # Debian + r'^1\.([16-9][0-9]?)\.0\.jdk$', # OSX + r'^jdk1\.([16-9][0-9]?)\.0_[0-9]+.jdk$', # OSX and Oracle tarball + r'^jdk1\.([16-9][0-9]?)\.0_[0-9]+$', # Oracle Windows + r'^jdk([16-9][0-9]?)-openjdk$', # Arch + r'^java-([16-9][0-9]?)-openjdk$', # Arch + r'^java-([16-9][0-9]?)-jdk$', # Arch (oracle) + r'^java-1\.([16-9][0-9]?)\.0-.*$', # RedHat + r'^java-([16-9][0-9]?)-oracle$', # Debian WebUpd8 + r'^jdk-([16-9][0-9]?)-oracle-.*$', # Debian make-jpkg + r'^java-([16-9][0-9]?)-openjdk-[^c][^o][^m].*$', # Debian + r'^oracle-jdk-bin-1\.([17-9][0-9]?).*$', # Gentoo (oracle) + r'^icedtea-bin-([17-9][0-9]?).*$', # Gentoo (openjdk) ]: m = re.match(regex, j) if not m: @@ -204,17 +209,19 @@ if thisconfig['java_paths'] is None: thisconfig['java_paths'] = dict() pathlist = [] - pathlist += glob.glob('/usr/lib/jvm/j*[6-9]*') - pathlist += glob.glob('/usr/java/jdk1.[6-9]*') - pathlist += glob.glob('/System/Library/Java/JavaVirtualMachines/1.[6-9].0.jdk') - pathlist += glob.glob('/Library/Java/JavaVirtualMachines/*jdk*[6-9]*') + pathlist += glob.glob('/usr/lib/jvm/j*[16-9]*') + pathlist += glob.glob('/usr/java/jdk1.[16-9]*') + pathlist += glob.glob('/System/Library/Java/JavaVirtualMachines/1.[16-9][0-9]?.0.jdk') + pathlist += glob.glob('/Library/Java/JavaVirtualMachines/*jdk*[0-9]*') + pathlist += glob.glob('/opt/oracle-jdk-*1.[0-9]*') + pathlist += glob.glob('/opt/icedtea-*[0-9]*') if os.getenv('JAVA_HOME') is not None: pathlist.append(os.getenv('JAVA_HOME')) if os.getenv('PROGRAMFILES') is not None: - pathlist += glob.glob(os.path.join(os.getenv('PROGRAMFILES'), 'Java', 'jdk1.[6-9].*')) + pathlist += glob.glob(os.path.join(os.getenv('PROGRAMFILES'), 'Java', 'jdk1.[16-9][0-9]?.*')) _add_java_paths_to_config(pathlist, thisconfig) - for java_version in ('7', '8', '9'): + for java_version in ('14', '13', '12', '11', '10', '9', '8', '7'): if java_version not in thisconfig['java_paths']: continue java_home = thisconfig['java_paths'][java_version] @@ -222,7 +229,7 @@ if os.path.exists(jarsigner): thisconfig['jarsigner'] = jarsigner thisconfig['keytool'] = os.path.join(java_home, 'bin', 'keytool') - break # Java7 is preferred, so quit if found + break for k in ['ndk_paths', 'java_paths']: d = thisconfig[k] @@ -1011,6 +1018,10 @@ import requests r = requests.head(remote) r.raise_for_status() + location = r.headers.get('location') + if location and not location.startswith('https://'): + raise VCSException(_('Invalid redirect to non-HTTPS: {before} -> {after} ') + .format(before=remote, after=location)) gitsvn_args.extend(['--', remote, self.local]) p = self.git(gitsvn_args) @@ -1112,7 +1123,7 @@ def gotorevisionx(self, rev): if not os.path.exists(self.local): - p = FDroidPopen(['hg', 'clone', '--ssh', 'false', '--', self.remote, self.local], + p = FDroidPopen(['hg', 'clone', '--ssh', '/bin/false', '--', self.remote, self.local], output=False) if p.returncode != 0: self.clone_failed = True @@ -1126,7 +1137,7 @@ raise VCSException("Unexpected output from hg status -uS: " + line) FDroidPopen(['rm', '-rf', '--', line[2:]], cwd=self.local, output=False) if not self.refreshed: - p = FDroidPopen(['hg', 'pull', '--ssh', 'false'], cwd=self.local, output=False) + p = FDroidPopen(['hg', 'pull', '--ssh', '/bin/false'], cwd=self.local, output=False) if p.returncode != 0: raise VCSException("Hg pull failed", p.output) self.refreshed = True @@ -1322,7 +1333,9 @@ vcsearch_g = re.compile(r'''.*[Vv]ersionCode\s*=?\s*["']*([0-9]+)["']*''').search vnsearch_g = re.compile(r'''.*[Vv]ersionName\s*=?\s*(["'])((?:(?=(\\?))\3.)*?)\1.*''').search +vnssearch_g = re.compile(r'''.*[Vv]ersionNameSuffix\s*=?\s*(["'])((?:(?=(\\?))\3.)*?)\1.*''').search psearch_g = re.compile(r'''.*(packageName|applicationId)\s*=*\s*["']([^"']+)["'].*''').search +fsearch_g = re.compile(r'''.*(applicationIdSuffix)\s*=*\s*["']([^"']+)["'].*''').search def app_matches_packagename(app, package): @@ -1362,6 +1375,8 @@ package = None flavour = None + temp_app_id = None + temp_version_name = None if app.builds and 'gradle' in app.builds[-1] and app.builds[-1].gradle: flavour = app.builds[-1].gradle[-1] @@ -1373,6 +1388,16 @@ if gradle_comment.match(line): continue + if "applicationId" in line and not temp_app_id: + matches = psearch_g(line) + if matches: + temp_app_id = matches.group(2) + + if "versionName" in line and not temp_version_name: + matches = vnsearch_g(line) + if matches: + temp_version_name = matches.group(2) + if inside_flavour_group > 0: if inside_required_flavour > 0: matches = psearch_g(line) @@ -1380,10 +1405,24 @@ s = matches.group(2) if app_matches_packagename(app, s): package = s + else: + # If build.gradle contains applicationIdSuffix add it to the end of package name + matches = fsearch_g(line) + if matches and temp_app_id: + suffix = matches.group(2) + temp_app_id = temp_app_id + suffix + if app_matches_packagename(app, temp_app_id): + package = temp_app_id matches = vnsearch_g(line) if matches: version = matches.group(2) + else: + # If build.gradle contains applicationNameSuffix add it to the end of version name + matches = vnssearch_g(line) + if matches and temp_version_name: + name_suffix = matches.group(2) + version = temp_version_name + name_suffix matches = vcsearch_g(line) if matches: @@ -1945,6 +1984,36 @@ use_androguard.show_path = True +def _get_androguard_APK(apkfile): + try: + from androguard.core.bytecodes.apk import APK + except ImportError: + raise FDroidException("androguard library is not installed and aapt not present") + + return APK(apkfile) + + +def ensure_final_value(packageName, arsc, value): + """Ensure incoming value is always the value, not the resid + + androguard will sometimes return the Android "resId" aka + Resource ID instead of the actual value. This checks whether + the value is actually a resId, then performs the Android + Resource lookup as needed. + + """ + if value: + returnValue = value + if value[0] == '@': + try: # can be a literal value or a resId + res_id = int('0x' + value[1:], 16) + res_id = arsc.get_id(packageName, res_id)[1] + returnValue = arsc.get_string(packageName, res_id)[1] + except ValueError: + pass + return returnValue + + def is_apk_and_debuggable_aapt(apkfile): p = SdkToolsPopen(['aapt', 'dump', 'xmltree', apkfile, 'AndroidManifest.xml'], output=False) @@ -1957,12 +2026,7 @@ def is_apk_and_debuggable_androguard(apkfile): - try: - from androguard.core.bytecodes.apk import APK - except ImportError: - raise FDroidException("androguard library is not installed and aapt not present") - - apkobject = APK(apkfile) + apkobject = _get_androguard_APK(apkfile) if apkobject.is_valid_APK(): debuggable = apkobject.get_element("application", "debuggable") if debuggable is not None: @@ -1984,13 +2048,31 @@ return is_apk_and_debuggable_aapt(apkfile) -def get_apk_id_aapt(apkfile): - """Extrat identification information from APK using aapt. +def get_apk_id(apkfile): + """Extract identification information from APK using aapt. :param apkfile: path to an APK file. :returns: triplet (appid, version code, version name) """ - r = re.compile("^package: name='(?P.*)' versionCode='(?P.*)' versionName='(?P.*)'.*") + if use_androguard(): + return get_apk_id_androguard(apkfile) + else: + return get_apk_id_aapt(apkfile) + + +def get_apk_id_androguard(apkfile): + if not os.path.exists(apkfile): + raise FDroidException(_("Reading packageName/versionCode/versionName failed, APK invalid: '{apkfilename}'") + .format(apkfilename=apkfile)) + a = _get_androguard_APK(apkfile) + versionName = ensure_final_value(a.package, a.get_android_resources(), a.get_androidversion_name()) + if not versionName: + versionName = '' # versionName is expected to always be a str + return a.package, a.get_androidversion_code(), versionName + + +def get_apk_id_aapt(apkfile): + r = re.compile("^package: name='(?P.*)' versionCode='(?P.*)' versionName='(?P.*?)'(?: platformBuildVersionName='.*')?") p = SdkToolsPopen(['aapt', 'dump', 'badging', apkfile], output=False) for line in p.output.splitlines(): m = r.match(line) @@ -2278,7 +2360,7 @@ o.write('android.library.reference.%d=%s\n' % (number, relpath)) -apk_sigfile = re.compile(r'META-INF/[0-9A-Za-z]+\.(SF|RSA|DSA|EC)') +APK_SIGNATURE_FILES = re.compile(r'META-INF/[0-9A-Za-z_\-]+\.(SF|RSA|DSA|EC)') def signer_fingerprint_short(sig): @@ -2433,7 +2515,7 @@ with ZipFile(tmp_apk, 'r') as in_apk: with ZipFile(signed_apk, 'w') as out_apk: for info in in_apk.infolist(): - if not apk_sigfile.match(info.filename): + if not APK_SIGNATURE_FILES.match(info.filename): if strip_manifest: if info.filename != 'META-INF/MANIFEST.MF': buf = in_apk.read(info.filename) @@ -2464,7 +2546,7 @@ info.create_system = 0 # "Windows" aka "FAT", what Android SDK uses out_apk.writestr(info, buf) for info in in_apk.infolist(): - if not apk_sigfile.match(info.filename): + if not APK_SIGNATURE_FILES.match(info.filename): if info.filename != 'META-INF/MANIFEST.MF': buf = in_apk.read(info.filename) out_apk.writestr(info, buf) @@ -2483,7 +2565,7 @@ """ with ZipFile(apkpath, 'r') as in_apk: for f in in_apk.infolist(): - if apk_sigfile.match(f.filename) or \ + if APK_SIGNATURE_FILES.match(f.filename) or \ (manifest and f.filename == 'META-INF/MANIFEST.MF'): newpath = os.path.join(outdir, os.path.basename(f.filename)) with open(newpath, 'wb') as out_file: @@ -2533,13 +2615,6 @@ the unsigned one. If the APK given as unsigned actually does have a signature, it will be stripped out and ignored. - There are two SHA1 git commit IDs that fdroidserver includes in the builds - it makes: fdroidserverid and buildserverid. Originally, these were inserted - into AndroidManifest.xml, but that makes the build not reproducible. So - instead they are included as separate files in the APK's META-INF/ folder. - If those files exist in the signed APK, they will be part of the signature - and need to also be included in the unsigned APK for it to validate. - :param signed_apk: Path to a signed apk file :param unsigned_apk: Path to an unsigned apk file expected to match it :param tmp_dir: Path to directory for temporary files @@ -2556,8 +2631,7 @@ with ZipFile(signed_apk, 'r') as signed: meta_inf_files = ['META-INF/MANIFEST.MF'] for f in signed.namelist(): - if apk_sigfile.match(f) \ - or f in ['META-INF/fdroidserverid', 'META-INF/buildserverid']: + if APK_SIGNATURE_FILES.match(f): meta_inf_files.append(f) if len(meta_inf_files) < 3: return "Signature files missing from {0}".format(signed_apk) @@ -2570,8 +2644,7 @@ tmp.writestr(signed.getinfo(filename), signed.read(filename)) for info in unsigned.infolist(): if info.filename in meta_inf_files: - logging.warning('Ignoring %s from %s', - info.filename, unsigned_apk) + logging.warning('Ignoring %s from %s', info.filename, unsigned_apk) continue if info.filename in tmp.namelist(): return "duplicate filename found: " + info.filename @@ -2655,12 +2728,20 @@ jarsigner passes unsigned APKs as "verified"! So this has to turn on -strict then check for result 4. + Just to be safe, this never reuses the file, and locks down the + file permissions while in use. That should prevent a bad actor + from changing the settings during operation. + :returns: boolean whether the APK was verified + """ _java_security = os.path.join(os.getcwd(), '.java.security') + if os.path.exists(_java_security): + os.remove(_java_security) with open(_java_security, 'w') as fp: fp.write('jdk.jar.disabledAlgorithms=MD2, RSA keySize < 1024') + os.chmod(_java_security, 0o400) try: cmd = [ @@ -2675,6 +2756,10 @@ else: logging.debug(_('JAR signature verified: {path}').format(path=apk)) return True + finally: + if os.path.exists(_java_security): + os.chmod(_java_security, 0o600) + os.remove(_java_security) logging.error(_('Old APK signature failed to verify: {path}').format(path=apk) + '\n' + output.decode('utf-8')) @@ -2703,10 +2788,10 @@ htmlfile = logfilename + '.diffoscope.html' textfile = logfilename + '.diffoscope.txt' if subprocess.call([config['diffoscope'], - '--max-report-size', '12345678', '--max-diff-block-lines', '100', + '--max-report-size', '12345678', '--max-diff-block-lines', '128', '--html', htmlfile, '--text', textfile, absapk1, absapk2]) != 0: - return("Failed to unpack " + apk1) + return("Failed to run diffoscope " + apk1) apk1dir = os.path.join(tmp_dir, apk_badchars.sub('_', apk1[0:-4])) # trim .apk apk2dir = os.path.join(tmp_dir, apk_badchars.sub('_', apk2[0:-4])) # trim .apk @@ -2714,31 +2799,28 @@ if os.path.exists(d): shutil.rmtree(d) os.mkdir(d) - os.mkdir(os.path.join(d, 'jar-xf')) + os.mkdir(os.path.join(d, 'content')) - if subprocess.call(['jar', 'xf', - os.path.abspath(apk1)], - cwd=os.path.join(apk1dir, 'jar-xf')) != 0: - return("Failed to unpack " + apk1) - if subprocess.call(['jar', 'xf', - os.path.abspath(apk2)], - cwd=os.path.join(apk2dir, 'jar-xf')) != 0: - return("Failed to unpack " + apk2) + # extract APK contents for comparision + with ZipFile(absapk1, 'r') as f: + f.extractall(path=os.path.join(apk1dir, 'content')) + with ZipFile(absapk2, 'r') as f: + f.extractall(path=os.path.join(apk2dir, 'content')) if set_command_in_config('apktool'): - if subprocess.call([config['apktool'], 'd', os.path.abspath(apk1), '--output', 'apktool'], + if subprocess.call([config['apktool'], 'd', absapk1, '--output', 'apktool'], cwd=apk1dir) != 0: - return("Failed to unpack " + apk1) - if subprocess.call([config['apktool'], 'd', os.path.abspath(apk2), '--output', 'apktool'], + return("Failed to run apktool " + apk1) + if subprocess.call([config['apktool'], 'd', absapk2, '--output', 'apktool'], cwd=apk2dir) != 0: - return("Failed to unpack " + apk2) + return("Failed to run apktool " + apk2) p = FDroidPopen(['diff', '-r', apk1dir, apk2dir], output=False) lines = p.output.splitlines() if len(lines) != 1 or 'META-INF' not in lines[0]: if set_command_in_config('meld'): p = FDroidPopen([config['meld'], apk1dir, apk2dir], output=False) - return("Unexpected diff output - " + p.output) + return("Unexpected diff output:\n" + p.output) # since everything verifies, delete the comparison to keep cruft down shutil.rmtree(apk1dir) @@ -3094,3 +3176,46 @@ log += '* ' + name + ' (' + version + ')\n' return log + + +def get_git_describe_link(): + """Get a link to the current fdroiddata commit, to post to the wiki + + """ + try: + output = subprocess.check_output(['git', 'describe', '--always', '--dirty', '--abbrev=0'], + universal_newlines=True).strip() + except subprocess.CalledProcessError: + pass + if output: + commit = output.replace('-dirty', '') + return ('* fdroiddata: [https://gitlab.com/fdroid/fdroiddata/commit/{commit} {id}]\n' + .format(commit=commit, id=output)) + else: + logging.error(_("'{path}' failed to execute!").format(path='git describe')) + return '' + + +def calculate_math_string(expr): + ops = {ast.Add: operator.add, ast.Sub: operator.sub, + ast.Mult: operator.mul} + + def execute_ast(node): + if isinstance(node, ast.Num): # + return node.n + elif isinstance(node, ast.BinOp): # + return ops[type(node.op)](execute_ast(node.left), + execute_ast(node.right)) + elif isinstance(node, ast.UnaryOp): # e.g., -1 + return ops[type(node.op)](eval(node.operand)) + else: + raise SyntaxError(node) + + try: + if '#' in expr: + raise SyntaxError('no comments allowed') + return execute_ast(ast.parse(expr, mode='eval').body) + except SyntaxError: + raise SyntaxError("could not parse expression '{expr}', " + "only basic math operations are allowed (+, -, *)" + .format(expr=expr)) diff -Nru fdroidserver-1.0.2/fdroidserver/index.py fdroidserver-1.0.6/fdroidserver/index.py --- fdroidserver-1.0.2/fdroidserver/index.py 2018-02-22 12:03:03.000000000 +0000 +++ fdroidserver-1.0.6/fdroidserver/index.py 2018-05-14 13:25:33.000000000 +0000 @@ -32,7 +32,7 @@ import zipfile import calendar from binascii import hexlify, unhexlify -from datetime import datetime +from datetime import datetime, timezone from xml.dom.minidom import Document from . import _ @@ -67,7 +67,7 @@ common.assert_config_keystore(common.config) repodict = collections.OrderedDict() - repodict['timestamp'] = datetime.utcnow() + repodict['timestamp'] = datetime.utcnow().replace(tzinfo=timezone.utc) repodict['version'] = METADATA_VERSION if common.config['repo_maxage'] != 0: @@ -163,7 +163,7 @@ output['requests'] = requestsdict # establish sort order of the index - v1_sort_packages(packages, repodir, fdroid_signing_key_fingerprints) + v1_sort_packages(packages, fdroid_signing_key_fingerprints) appslist = [] output['apps'] = appslist @@ -213,6 +213,16 @@ if packageName not in apps: logging.info(_('Ignoring package without metadata: ') + package['apkName']) continue + if not package.get('versionName'): + app = apps[packageName] + versionCodeStr = str(package['versionCode']) # TODO build.versionCode should be int! + for build in app['builds']: + if build['versionCode'] == versionCodeStr: + versionName = build.get('versionName') + logging.info(_('Overriding blank versionName in {apkfilename} from metadata: {version}') + .format(apkfilename=package['apkName'], version=versionName)) + package['versionName'] = versionName + break if packageName in output_packages: packagelist = output_packages[packageName] else: @@ -242,7 +252,7 @@ signindex.sign_index_v1(repodir, json_name) -def v1_sort_packages(packages, repodir, fdroid_signing_key_fingerprints): +def v1_sort_packages(packages, fdroid_signing_key_fingerprints): """Sorts the supplied list to ensure a deterministic sort order for package entries in the index file. This sort-order also expresses installation preference to the clients. @@ -479,7 +489,17 @@ apkel = doc.createElement("package") apel.appendChild(apkel) - addElement('version', apk['versionName'], doc, apkel) + + versionName = apk.get('versionName') + if not versionName: + versionCodeStr = str(apk['versionCode']) # TODO build.versionCode should be int! + for build in app.builds: + if build['versionCode'] == versionCodeStr and 'versionName' in build: + versionName = build['versionName'] + break + if versionName: + addElement('version', versionName, doc, apkel) + addElement('versioncode', str(apk['versionCode']), doc, apkel) addElement('apkname', apk['apkName'], doc, apkel) addElementIfInApk('srcname', apk, 'srcname', doc, apkel) diff -Nru fdroidserver-1.0.2/fdroidserver/init.py fdroidserver-1.0.6/fdroidserver/init.py --- fdroidserver-1.0.2/fdroidserver/init.py 2018-02-22 12:38:02.000000000 +0000 +++ fdroidserver-1.0.6/fdroidserver/init.py 2018-05-04 13:11:25.000000000 +0000 @@ -75,6 +75,8 @@ # in ANDROID_HOME if that exists, otherwise None if options.android_home is not None: test_config['sdk_path'] = options.android_home + elif common.use_androguard(): + pass elif not common.test_sdk_exists(test_config): if os.path.isfile('/usr/bin/aapt'): # remove sdk_path and build_tools, they are not required @@ -110,7 +112,8 @@ test_config['sdk_path'] = s if common.test_sdk_exists(test_config): break - if not common.test_sdk_exists(test_config): + if (options.android_home is not None or not common.use_androguard()) \ + and not common.test_sdk_exists(test_config): raise FDroidException("Android SDK not found.") if not os.path.exists('config.py'): diff -Nru fdroidserver-1.0.2/fdroidserver/lint.py fdroidserver-1.0.6/fdroidserver/lint.py --- fdroidserver-1.0.2/fdroidserver/lint.py 2018-02-22 12:03:03.000000000 +0000 +++ fdroidserver-1.0.6/fdroidserver/lint.py 2018-05-17 11:39:34.000000000 +0000 @@ -21,6 +21,7 @@ import os import re import sys +import urllib.parse from . import _ from . import common @@ -32,7 +33,7 @@ def enforce_https(domain): - return (re.compile(r'.*[^sS]://[^/]*' + re.escape(domain) + r'(/.*)?'), + return (re.compile(r'^[^h][^t][^t][^p][^s]://[^/]*' + re.escape(domain) + r'(/.*)?', re.IGNORECASE), domain + " URLs should always use https://") @@ -51,6 +52,9 @@ enforce_https('savannah.gnu.org'), enforce_https('git.savannah.gnu.org'), enforce_https('download.savannah.gnu.org'), + enforce_https('github.io'), + enforce_https('gitlab.io'), + enforce_https('githubusercontent.com'), ] @@ -126,6 +130,7 @@ 'WebSite': http_checks, 'SourceCode': http_checks, 'Repo': https_enforcings, + 'UpdateCheckMode': https_enforcings, 'IssueTracker': http_checks + [ (re.compile(r'.*github\.com/[^/]+/[^/]+/*$'), _("/issues is missing")), @@ -164,7 +169,7 @@ _("Unnecessary leading space")), (re.compile(r'.*\s$'), _("Unnecessary trailing space")), - (re.compile(r'.*<(iframe|link|script).*'), + (re.compile(r'.*<(applet|base|body|button|embed|form|head|html|iframe|img|input|link|object|picture|script|source|style|svg|video).*', re.IGNORECASE), _("Forbidden HTML tags")), (re.compile(r'''.*\s+src=["']javascript:.*'''), _("Javascript in HTML src attributes")), @@ -203,6 +208,25 @@ return lastbuild +def check_update_check_data_url(app): + """UpdateCheckData must have a valid HTTPS URL to protect checkupdates runs + """ + if app.UpdateCheckData: + urlcode, codeex, urlver, verex = app.UpdateCheckData.split('|') + for url in (urlcode, urlver): + if url != '.': + parsed = urllib.parse.urlparse(url) + if not parsed.scheme or not parsed.netloc: + yield _('UpdateCheckData not a valid URL: {url}').format(url=url) + if parsed.scheme != 'https': + yield _('UpdateCheckData must use HTTPS URL: {url}').format(url=url) + + +def check_vercode_operation(app): + if app.VercodeOperation and not common.VERCODE_OPERATION_RE.match(app.VercodeOperation): + yield _('Invalid VercodeOperation: {field}').format(field=app.VercodeOperation) + + def check_ucm_tags(app): lastbuild = get_lastbuild(app.builds) if (lastbuild is not None @@ -509,6 +533,8 @@ app_check_funcs = [ check_regexes, + check_update_check_data_url, + check_vercode_operation, check_ucm_tags, check_char_limits, check_old_links, @@ -535,95 +561,77 @@ # A compiled, public domain list of official SPDX license tags from: -# https://github.com/sindresorhus/spdx-license-list/blob/v3.0.1/spdx-simple.json +# https://github.com/sindresorhus/spdx-license-list/blob/v4.0.0/spdx-simple.json # The deprecated license tags have been removed from the list, they are at the # bottom, starting after the last license tags that start with Z. # This is at the bottom, since its a long list of data SPDX = [ "PublicDomain", # an F-Droid addition, until we can enforce a better option - "Glide", + "0BSD", + "AAL", "Abstyles", + "Adobe-2006", + "Adobe-Glyph", + "ADSL", "AFL-1.1", "AFL-1.2", "AFL-2.0", "AFL-2.1", "AFL-3.0", - "AMPAS", - "APL-1.0", - "Adobe-Glyph", - "APAFML", - "Adobe-2006", - "AGPL-1.0", "Afmparse", + "AGPL-1.0", + "AGPL-3.0-only", + "AGPL-3.0-or-later", "Aladdin", - "ADSL", "AMDPLPA", + "AML", + "AMPAS", "ANTLR-PD", "Apache-1.0", "Apache-1.1", "Apache-2.0", - "AML", + "APAFML", + "APL-1.0", "APSL-1.0", "APSL-1.1", "APSL-1.2", "APSL-2.0", - "Artistic-1.0", - "Artistic-1.0-Perl", "Artistic-1.0-cl8", + "Artistic-1.0-Perl", + "Artistic-1.0", "Artistic-2.0", - "AAL", "Bahyph", "Barr", "Beerware", "BitTorrent-1.0", "BitTorrent-1.1", - "BSL-1.0", "Borceux", - "BSD-2-Clause", + "BSD-1-Clause", "BSD-2-Clause-FreeBSD", "BSD-2-Clause-NetBSD", - "BSD-3-Clause", + "BSD-2-Clause-Patent", + "BSD-2-Clause", + "BSD-3-Clause-Attribution", "BSD-3-Clause-Clear", - "BSD-3-Clause-No-Nuclear-License", + "BSD-3-Clause-LBNL", "BSD-3-Clause-No-Nuclear-License-2014", + "BSD-3-Clause-No-Nuclear-License", "BSD-3-Clause-No-Nuclear-Warranty", + "BSD-3-Clause", + "BSD-4-Clause-UC", "BSD-4-Clause", "BSD-Protection", "BSD-Source-Code", - "BSD-3-Clause-Attribution", - "0BSD", - "BSD-4-Clause-UC", + "BSL-1.0", "bzip2-1.0.5", "bzip2-1.0.6", "Caldera", - "CECILL-1.0", - "CECILL-1.1", - "CECILL-2.0", - "CECILL-2.1", - "CECILL-B", - "CECILL-C", - "ClArtistic", - "MIT-CMU", - "CNRI-Jython", - "CNRI-Python", - "CNRI-Python-GPL-Compatible", - "CPOL-1.02", - "CDDL-1.0", - "CDDL-1.1", - "CPAL-1.0", - "CPL-1.0", "CATOSL-1.1", - "Condor-1.1", "CC-BY-1.0", "CC-BY-2.0", "CC-BY-2.5", "CC-BY-3.0", "CC-BY-4.0", - "CC-BY-ND-1.0", - "CC-BY-ND-2.0", - "CC-BY-ND-2.5", - "CC-BY-ND-3.0", - "CC-BY-ND-4.0", "CC-BY-NC-1.0", "CC-BY-NC-2.0", "CC-BY-NC-2.5", @@ -639,12 +647,35 @@ "CC-BY-NC-SA-2.5", "CC-BY-NC-SA-3.0", "CC-BY-NC-SA-4.0", + "CC-BY-ND-1.0", + "CC-BY-ND-2.0", + "CC-BY-ND-2.5", + "CC-BY-ND-3.0", + "CC-BY-ND-4.0", "CC-BY-SA-1.0", "CC-BY-SA-2.0", "CC-BY-SA-2.5", "CC-BY-SA-3.0", "CC-BY-SA-4.0", "CC0-1.0", + "CDDL-1.0", + "CDDL-1.1", + "CDLA-Permissive-1.0", + "CDLA-Sharing-1.0", + "CECILL-1.0", + "CECILL-1.1", + "CECILL-2.0", + "CECILL-2.1", + "CECILL-B", + "CECILL-C", + "ClArtistic", + "CNRI-Jython", + "CNRI-Python-GPL-Compatible", + "CNRI-Python", + "Condor-1.1", + "CPAL-1.0", + "CPL-1.0", + "CPOL-1.02", "Crossword", "CrystalStacker", "CUA-OPL-1.0", @@ -652,131 +683,142 @@ "curl", "D-FSL-1.0", "diffmark", - "WTFPL", "DOC", "Dotseqn", "DSDP", "dvipdfm", - "EPL-1.0", "ECL-1.0", "ECL-2.0", - "eGenix", "EFL-1.0", "EFL-2.0", - "MIT-advertising", - "MIT-enna", + "eGenix", "Entessa", + "EPL-1.0", + "EPL-2.0", "ErlPL-1.1", "EUDatagrid", "EUPL-1.0", "EUPL-1.1", + "EUPL-1.2", "Eurosym", "Fair", - "MIT-feh", "Frameworx-1.0", "FreeImage", - "FTL", "FSFAP", "FSFUL", "FSFULLR", + "FTL", + "GFDL-1.1-only", + "GFDL-1.1-or-later", + "GFDL-1.2-only", + "GFDL-1.2-or-later", + "GFDL-1.3-only", + "GFDL-1.3-or-later", "Giftware", "GL2PS", + "Glide", "Glulxe", - "AGPL-3.0", - "GFDL-1.1", - "GFDL-1.2", - "GFDL-1.3", - "GPL-1.0", - "GPL-2.0", - "GPL-3.0", - "LGPL-2.1", - "LGPL-3.0", - "LGPL-2.0", "gnuplot", + "GPL-1.0-only", + "GPL-1.0-or-later", + "GPL-2.0-only", + "GPL-2.0-or-later", + "GPL-3.0-only", + "GPL-3.0-or-later", "gSOAP-1.3b", "HaskellReport", "HPND", "IBM-pibs", - "IPL-1.0", "ICU", + "IJG", "ImageMagick", "iMatix", "Imlib2", - "IJG", "Info-ZIP", "Intel-ACPI", "Intel", "Interbase-1.0", "IPA", + "IPL-1.0", "ISC", "JasPer-2.0", "JSON", - "LPPL-1.0", - "LPPL-1.1", - "LPPL-1.2", - "LPPL-1.3a", - "LPPL-1.3c", + "LAL-1.2", + "LAL-1.3", "Latex2e", - "BSD-3-Clause-LBNL", "Leptonica", + "LGPL-2.0-only", + "LGPL-2.0-or-later", + "LGPL-2.1-only", + "LGPL-2.1-or-later", + "LGPL-3.0-only", + "LGPL-3.0-or-later", "LGPLLR", "Libpng", "libtiff", - "LAL-1.2", - "LAL-1.3", "LiLiQ-P-1.1", - "LiLiQ-Rplus-1.1", "LiLiQ-R-1.1", - "LPL-1.02", + "LiLiQ-Rplus-1.1", "LPL-1.0", + "LPL-1.02", + "LPPL-1.0", + "LPPL-1.1", + "LPPL-1.2", + "LPPL-1.3a", + "LPPL-1.3c", "MakeIndex", - "MTLL", - "MS-PL", - "MS-RL", "MirOS", - "MITNFA", + "MIT-advertising", + "MIT-CMU", + "MIT-enna", + "MIT-feh", "MIT", + "MITNFA", "Motosoto", + "mpich2", "MPL-1.0", "MPL-1.1", - "MPL-2.0", "MPL-2.0-no-copyleft-exception", - "mpich2", + "MPL-2.0", + "MS-PL", + "MS-RL", + "MTLL", "Multics", "Mup", "NASA-1.3", "Naumen", "NBPL-1.0", + "NCSA", "Net-SNMP", "NetCDF", + "Newsletr", "NGPL", + "NLOD-1.0", + "NLPL", + "Nokia", "NOSL", + "Noweb", "NPL-1.0", "NPL-1.1", - "Newsletr", - "NLPL", - "Nokia", "NPOSL-3.0", - "NLOD-1.0", - "Noweb", "NRL", "NTP", - "Nunit", + "OCCT-PL", "OCLC-2.0", "ODbL-1.0", - "PDDL-1.0", - "OCCT-PL", + "OFL-1.0", + "OFL-1.1", "OGTSL", - "OLDAP-2.2.2", "OLDAP-1.1", "OLDAP-1.2", "OLDAP-1.3", "OLDAP-1.4", - "OLDAP-2.0", "OLDAP-2.0.1", + "OLDAP-2.0", "OLDAP-2.1", - "OLDAP-2.2", "OLDAP-2.2.1", + "OLDAP-2.2.2", + "OLDAP-2.2", "OLDAP-2.3", "OLDAP-2.4", "OLDAP-2.5", @@ -784,14 +826,15 @@ "OLDAP-2.7", "OLDAP-2.8", "OML", + "OpenSSL", "OPL-1.0", + "OSET-PL-2.1", "OSL-1.0", "OSL-1.1", "OSL-2.0", "OSL-2.1", "OSL-3.0", - "OpenSSL", - "OSET-PL-2.1", + "PDDL-1.0", "PHP-3.0", "PHP-3.01", "Plexus", @@ -799,62 +842,60 @@ "psfrag", "psutils", "Python-2.0", - "QPL-1.0", "Qhull", + "QPL-1.0", "Rdisc", - "RPSL-1.0", + "RHeCos-1.1", "RPL-1.1", "RPL-1.5", - "RHeCos-1.1", - "RSCPL", + "RPSL-1.0", "RSA-MD", + "RSCPL", "Ruby", "SAX-PD", "Saxpath", "SCEA", - "SWL", - "SMPPL", "Sendmail", "SGI-B-1.0", "SGI-B-1.1", "SGI-B-2.0", - "OFL-1.0", - "OFL-1.1", "SimPL-2.0", + "SISSL-1.2", + "SISSL", "Sleepycat", + "SMLNJ", + "SMPPL", "SNIA", "Spencer-86", "Spencer-94", "Spencer-99", - "SMLNJ", - "SugarCRM-1.1.3", - "SISSL", - "SISSL-1.2", "SPL-1.0", - "Watcom-1.0", + "SugarCRM-1.1.3", + "SWL", "TCL", "TCP-wrappers", - "Unlicense", "TMate", "TORQUE-1.1", "TOSL", "Unicode-DFS-2015", "Unicode-DFS-2016", "Unicode-TOU", + "Unlicense", "UPL-1.0", - "NCSA", "Vim", "VOSTROM", "VSL-1.0", - "W3C-20150513", "W3C-19980720", + "W3C-20150513", "W3C", + "Watcom-1.0", "Wsuipa", - "Xnet", + "WTFPL", "X11", "Xerox", "XFree86-1.1", "xinetd", + "Xnet", "xpp", "XSkat", "YPL-1.0", @@ -863,8 +904,8 @@ "Zend-2.0", "Zimbra-1.3", "Zimbra-1.4", - "Zlib", "zlib-acknowledgement", + "Zlib", "ZPL-1.1", "ZPL-2.0", "ZPL-2.1", diff -Nru fdroidserver-1.0.2/fdroidserver/publish.py fdroidserver-1.0.6/fdroidserver/publish.py --- fdroidserver-1.0.2/fdroidserver/publish.py 2018-02-22 12:03:03.000000000 +0000 +++ fdroidserver-1.0.6/fdroidserver/publish.py 2018-05-14 13:25:33.000000000 +0000 @@ -52,7 +52,7 @@ logging.debug('...no source tarball for %s', apkfilename) -def key_alias(appid, resolve=False): +def key_alias(appid): """Get the alias which F-Droid uses to indentify the singing key for this App in F-Droids keystore. """ diff -Nru fdroidserver-1.0.2/fdroidserver/rewritemeta.py fdroidserver-1.0.6/fdroidserver/rewritemeta.py --- fdroidserver-1.0.2/fdroidserver/rewritemeta.py 2018-02-22 12:03:03.000000000 +0000 +++ fdroidserver-1.0.6/fdroidserver/rewritemeta.py 2018-05-03 11:05:43.000000000 +0000 @@ -36,7 +36,11 @@ # read in metadata.py with open(app.metadatapath, 'r', encoding='utf8') as f: cur_content = f.read() - metadata.write_txt(s, app) + _ignored, extension = common.get_extension(app.metadatapath) + if extension == 'yml': + metadata.write_yaml(s, app) + elif extension == 'txt': + metadata.write_txt(s, app) content = s.getvalue() s.close() return content == cur_content diff -Nru fdroidserver-1.0.2/fdroidserver/scanner.py fdroidserver-1.0.6/fdroidserver/scanner.py --- fdroidserver-1.0.2/fdroidserver/scanner.py 2018-02-22 12:03:03.000000000 +0000 +++ fdroidserver-1.0.6/fdroidserver/scanner.py 2018-05-03 11:05:43.000000000 +0000 @@ -32,7 +32,20 @@ def get_gradle_compile_commands(build): - compileCommands = ['compile', 'releaseCompile'] + compileCommands = ['compile', + 'provided' + 'apk' + 'implementation' + 'api' + 'compileOnly' + 'runtimeOnly', + 'releaseCompile' + 'releaseProvided' + 'releaseApk' + 'releaseImplementation' + 'releaseApi' + 'releaseCompileOnly' + 'releaseRuntimeOnly'] if build.gradle and build.gradle != ['yes']: compileCommands += [flavor + 'Compile' for flavor in build.gradle] compileCommands += [flavor + 'ReleaseCompile' for flavor in build.gradle] diff -Nru fdroidserver-1.0.2/fdroidserver/signatures.py fdroidserver-1.0.6/fdroidserver/signatures.py --- fdroidserver-1.0.2/fdroidserver/signatures.py 2018-02-22 12:03:03.000000000 +0000 +++ fdroidserver-1.0.6/fdroidserver/signatures.py 2018-05-14 13:25:33.000000000 +0000 @@ -36,7 +36,7 @@ raise FDroidException("no valid signature in '{}'".format(apkpath)) logging.debug('signature okay: %s', apkpath) - appid, vercode, _ignored = common.get_apk_id_aapt(apkpath) + appid, vercode, _ignored = common.get_apk_id(apkpath) sigdir = common.metadata_get_sigdir(appid, vercode) if not os.path.exists(sigdir): os.makedirs(sigdir) @@ -45,7 +45,7 @@ return sigdir -def extract(config, options): +def extract(options): # Create tmp dir if missing… tmp_dir = 'tmp' diff -Nru fdroidserver-1.0.2/fdroidserver/update.py fdroidserver-1.0.6/fdroidserver/update.py --- fdroidserver-1.0.2/fdroidserver/update.py 2018-02-22 14:08:54.000000000 +0000 +++ fdroidserver-1.0.6/fdroidserver/update.py 2018-05-03 11:46:42.000000000 +0000 @@ -53,15 +53,14 @@ APK_NAME_PAT = re.compile(".*name='([a-zA-Z0-9._]*)'.*") APK_VERCODE_PAT = re.compile(".*versionCode='([0-9]*)'.*") APK_VERNAME_PAT = re.compile(".*versionName='([^']*)'.*") -APK_LABEL_PAT = re.compile(".*label='(.*?)'(\n| [a-z]*?=).*") -APK_ICON_PAT = re.compile(".*application-icon-([0-9]+):'([^']+?)'.*") -APK_ICON_PAT_NODPI = re.compile(".*icon='([^']+?)'.*") +APK_LABEL_ICON_PAT = re.compile(".*\s+label='(.*)'\s+icon='(.*?)'") APK_SDK_VERSION_PAT = re.compile(".*'([0-9]*)'.*") APK_PERMISSION_PAT = \ re.compile(".*(name='(?P.*?)')(.*maxSdkVersion='(?P.*?)')?.*") APK_FEATURE_PAT = re.compile(".*name='([^']*)'.*") screen_densities = ['65534', '640', '480', '320', '240', '160', '120'] +# resolutions must end with 'dpi' screen_resolutions = { "xxxhdpi": '640', "xxhdpi": '480', @@ -69,7 +68,8 @@ "hdpi": '240', "mdpi": '160', "ldpi": '120', - "undefined": '-1', + "tvdpi": '213', + "undefineddpi": '-1', "anydpi": '65534', "nodpi": '65535' } @@ -272,12 +272,9 @@ # Make a redirect from the name to the ID too, unless there's # already an existing page with the name and it isn't a redirect. noclobber = False - apppagename = app.Name.replace('_', ' ') - apppagename = apppagename.replace('{', '') - apppagename = apppagename.replace('}', ' ') - apppagename = apppagename.replace(':', ' ') - apppagename = apppagename.replace('[', ' ') - apppagename = apppagename.replace(']', ' ') + apppagename = app.Name + for ch in '_{}:[]|': + apppagename = apppagename.replace(ch, ' ') # Drop double spaces caused mostly by replacing ':' above apppagename = apppagename.replace(' ', ' ') for expagename in site.allpages(prefix=apppagename, @@ -302,7 +299,7 @@ for page in catpages: existingpages.append(page.name) if page.name in genp: - pagetxt = page.edit() + pagetxt = page.text() if pagetxt != genp[page.name]: logging.debug("Updating modified page " + page.name) page.save(genp[page.name], summary='Auto-updated') @@ -331,6 +328,7 @@ txt += "* command line: " + ' '.join(sys.argv) + "\n" txt += "* started at " + common.get_wiki_timestamp(start_timestamp) + '\n' txt += "* completed at " + common.get_wiki_timestamp() + '\n' + txt += common.get_git_describe_link() txt += "\n\n" txt += common.get_android_tools_version_log() newpage.save(txt, summary='Run log') @@ -995,7 +993,7 @@ repo_file['hash'] = shasum repo_file['hashType'] = 'sha256' repo_file['versionCode'] = 0 - repo_file['versionName'] = shasum + repo_file['versionName'] = shasum[0:7] # the static ID is the SHA256 unless it is set in the metadata repo_file['packageName'] = shasum @@ -1080,6 +1078,27 @@ return apk +def _get_apk_icons_src(apkfile, icon_name): + """Extract the paths to the app icon in all available densities + + """ + icons_src = dict() + density_re = re.compile('^res/(.*)/{}\.(png|xml)$'.format(icon_name)) + with zipfile.ZipFile(apkfile) as zf: + for filename in zf.namelist(): + m = density_re.match(filename) + if m: + folder = m.group(1).split('-') + if len(folder) > 1 and folder[1].endswith('dpi'): + density = screen_resolutions[folder[1]] + else: + density = '160' + icons_src[density] = m.group(0) + if icons_src.get('-1') is None and '160' in icons_src: + icons_src['-1'] = icons_src['160'] + return icons_src + + def scan_apk_aapt(apk, apkfile): p = SdkToolsPopen(['aapt', 'dump', 'badging', apkfile], output=False) if p.returncode != 0: @@ -1092,6 +1111,7 @@ else: logging.error(_("Failed to get apk information, skipping {path}").format(path=apkfile)) raise BuildException(_("Invalid APK")) + icon_name = None for line in p.output.splitlines(): if line.startswith("package:"): try: @@ -1101,25 +1121,13 @@ except Exception as e: raise FDroidException("Package matching failed: " + str(e) + "\nLine was: " + line) elif line.startswith("application:"): - apk['name'] = re.match(APK_LABEL_PAT, line).group(1) - # Keep path to non-dpi icon in case we need it - match = re.match(APK_ICON_PAT_NODPI, line) - if match: - apk['icons_src']['-1'] = match.group(1) - elif line.startswith("launchable-activity:"): + m = re.match(APK_LABEL_ICON_PAT, line) + if m: + apk['name'] = m.group(1) + icon_name = os.path.splitext(os.path.basename(m.group(2)))[0] + elif not apk.get('name') and line.startswith("launchable-activity:"): # Only use launchable-activity as fallback to application - if not apk['name']: - apk['name'] = re.match(APK_LABEL_PAT, line).group(1) - if '-1' not in apk['icons_src']: - match = re.match(APK_ICON_PAT_NODPI, line) - if match: - apk['icons_src']['-1'] = match.group(1) - elif line.startswith("application-icon-"): - match = re.match(APK_ICON_PAT, line) - if match: - density = match.group(1) - path = match.group(2) - apk['icons_src'][density] = path + apk['name'] = re.match(APK_LABEL_ICON_PAT, line).group(1) elif line.startswith("sdkVersion:"): m = re.match(APK_SDK_VERSION_PAT, line) if m is None: @@ -1170,6 +1178,26 @@ if feature.startswith("android.feature."): feature = feature[16:] apk['features'].add(feature) + apk['icons_src'] = _get_apk_icons_src(apkfile, icon_name) + + +def _sanitize_sdk_version(value): + """Sanitize the raw values from androguard to handle bad values + + minSdkVersion/targetSdkVersion/maxSdkVersion must be integers, + but that doesn't stop devs from doing strange things like + setting them using Android XML strings. + + https://gitlab.com/souch/SMSbypass/blob/v0.9/app/src/main/AndroidManifest.xml#L29 + https://gitlab.com/souch/SMSbypass/blob/v0.9/app/src/main/res/values/strings.xml#L27 + """ + try: + sdk_version = int(value) + if sdk_version > 0: + return str(sdk_version) # heinous, but this is still str in the codebase + except (TypeError, ValueError): + pass + return None def scan_apk_androguard(apk, apkfile): @@ -1199,38 +1227,32 @@ apk['packageName'] = apkobject.get_package() apk['versionCode'] = int(apkobject.get_androidversion_code()) - apk['versionName'] = apkobject.get_androidversion_name() - if apk['versionName'][0] == "@": - version_id = int(apk['versionName'].replace("@", "0x"), 16) - version_id = arsc.get_id(apk['packageName'], version_id)[1] - apk['versionName'] = arsc.get_string(apk['packageName'], version_id)[1] apk['name'] = apkobject.get_app_name() - if apkobject.get_max_sdk_version() is not None: - apk['maxSdkVersion'] = apkobject.get_max_sdk_version() - if apkobject.get_min_sdk_version() is not None: - apk['minSdkVersion'] = apkobject.get_min_sdk_version() - if apkobject.get_target_sdk_version() is not None: - apk['targetSdkVersion'] = apkobject.get_target_sdk_version() - - icon_id = int(apkobject.get_element("application", "icon").replace("@", "0x"), 16) - icon_name = arsc.get_id(apk['packageName'], icon_id)[1] - - density_re = re.compile("^res/(.*)/" + icon_name + ".*$") - - for file in apkobject.get_files(): - d_re = density_re.match(file) - if d_re: - folder = d_re.group(1).split('-') - if len(folder) > 1: - resolution = folder[1] - else: - resolution = 'mdpi' - density = screen_resolutions[resolution] - apk['icons_src'][density] = d_re.group(0) + apk['versionName'] = common.ensure_final_value(apk['packageName'], arsc, + apkobject.get_androidversion_name()) - if apk['icons_src'].get('-1') is None: - apk['icons_src']['-1'] = apk['icons_src']['160'] + minSdkVersion = _sanitize_sdk_version(apkobject.get_min_sdk_version()) + if minSdkVersion is not None: + apk['minSdkVersion'] = minSdkVersion + + targetSdkVersion = _sanitize_sdk_version(apkobject.get_target_sdk_version()) + if targetSdkVersion is not None: + apk['targetSdkVersion'] = targetSdkVersion + + maxSdkVersion = _sanitize_sdk_version(apkobject.get_max_sdk_version()) + if maxSdkVersion is not None: + apk['maxSdkVersion'] = maxSdkVersion + + icon_id_str = apkobject.get_element("application", "icon") + if icon_id_str: + icon_id = int(icon_id_str.replace("@", "0x"), 16) + resource_id = arsc.get_id(apk['packageName'], icon_id) + if resource_id: + icon_name = arsc.get_id(apk['packageName'], icon_id)[1] + else: + icon_name = os.path.splitext(os.path.basename(apkobject.get_app_icon()))[0] + apk['icons_src'] = _get_apk_icons_src(apkfile, icon_name) arch_re = re.compile("^lib/(.*)/.*$") arch = set([arch_re.match(file).group(1) for file in apkobject.get_files() if arch_re.match(file)]) @@ -1239,10 +1261,13 @@ apk['nativecode'].extend(sorted(list(arch))) xml = apkobject.get_android_manifest_xml() + xmlns = xml.nsmap.get('android') + if not xmlns: + xmlns = 'http://schemas.android.com/apk/res/android' for item in xml.findall('uses-permission'): - name = str(item.attrib['{' + xml.nsmap['android'] + '}name']) - maxSdkVersion = item.attrib.get('{' + xml.nsmap['android'] + '}maxSdkVersion') + name = str(item.attrib['{' + xmlns + '}name']) + maxSdkVersion = item.attrib.get('{' + xmlns + '}maxSdkVersion') maxSdkVersion = int(maxSdkVersion) if maxSdkVersion else None permission = UsesPermission( name, @@ -1257,8 +1282,8 @@ apk['uses-permission'].append(permission) for item in xml.findall('uses-permission-sdk-23'): - name = str(item.attrib['{' + xml.nsmap['android'] + '}name']) - maxSdkVersion = item.attrib.get('{' + xml.nsmap['android'] + '}maxSdkVersion') + name = str(item.attrib['{' + xmlns + '}name']) + maxSdkVersion = item.attrib.get('{' + xmlns + '}maxSdkVersion') maxSdkVersion = int(maxSdkVersion) if maxSdkVersion else None permission_sdk_23 = UsesPermissionSdk23( name, @@ -1267,12 +1292,15 @@ apk['uses-permission-sdk-23'].append(permission_sdk_23) for item in xml.findall('uses-feature'): - feature = str(item.attrib['{' + xml.nsmap['android'] + '}name']) + key = '{' + xmlns + '}name' + if key not in item.attrib: + continue + feature = str(item.attrib[key]) if feature != "android.hardware.screen.portrait" \ and feature != "android.hardware.screen.landscape": if feature.startswith("android.feature."): feature = feature[16:] - required = item.attrib.get('{' + xml.nsmap['android'] + '}required') + required = item.attrib.get('{' + xmlns + '}required') if required is None or required == 'true': apk['features'].append(feature) diff -Nru fdroidserver-1.0.2/fdroidserver/verify.py fdroidserver-1.0.6/fdroidserver/verify.py --- fdroidserver-1.0.2/fdroidserver/verify.py 2018-02-22 12:03:03.000000000 +0000 +++ fdroidserver-1.0.6/fdroidserver/verify.py 2018-05-25 10:30:26.000000000 +0000 @@ -40,6 +40,8 @@ parser = ArgumentParser(usage="%(prog)s [options] [APPID[:VERCODE] [APPID[:VERCODE] ...]]") common.setup_global_opts(parser) parser.add_argument("appid", nargs='*', help=_("applicationId with optional versionCode in the form APPID[:VERCODE]")) + parser.add_argument("--reuse-remote-apk", action="store_true", default=False, + help=_("Verify against locally cached copy rather than redownloading.")) options = parser.parse_args() config = common.read_config(options) @@ -74,18 +76,19 @@ logging.info("Processing {apkfilename}".format(apkfilename=apkfilename)) remoteapk = os.path.join(tmp_dir, apkfilename) - if os.path.exists(remoteapk): - os.remove(remoteapk) - url = 'https://f-droid.org/repo/' + apkfilename - logging.info("...retrieving " + url) - try: - net.download_file(url, dldir=tmp_dir) - except requests.exceptions.HTTPError as e: + if not options.reuse_remote_apk or not os.path.exists(remoteapk): + if os.path.exists(remoteapk): + os.remove(remoteapk) + url = 'https://f-droid.org/repo/' + apkfilename + logging.info("...retrieving " + url) try: - net.download_file(url.replace('/repo', '/archive'), dldir=tmp_dir) - except requests.exceptions.HTTPError as e: - raise FDroidException(_('Downloading {url} failed. {error}') - .format(url=url, error=e)) + net.download_file(url, dldir=tmp_dir) + except requests.exceptions.HTTPError: + try: + net.download_file(url.replace('/repo', '/archive'), dldir=tmp_dir) + except requests.exceptions.HTTPError as e: + raise FDroidException(_('Downloading {url} failed. {error}') + .format(url=url, error=e)) compare_result = common.verify_apks( remoteapk, @@ -101,9 +104,11 @@ logging.info("...NOT verified - {0}".format(e)) notverified += 1 - logging.info(_("Finished")) - logging.info("{0} successfully verified".format(verified)) - logging.info("{0} NOT verified".format(notverified)) + if verified > 0: + logging.info("{0} successfully verified".format(verified)) + if notverified > 0: + logging.info("{0} NOT verified".format(notverified)) + sys.exit(notverified) if __name__ == "__main__": diff -Nru fdroidserver-1.0.2/fdroidserver/vmtools.py fdroidserver-1.0.6/fdroidserver/vmtools.py --- fdroidserver-1.0.2/fdroidserver/vmtools.py 2018-02-22 12:03:03.000000000 +0000 +++ fdroidserver-1.0.6/fdroidserver/vmtools.py 2018-05-25 07:54:08.000000000 +0000 @@ -444,7 +444,7 @@ _check_call(['virsh', '-c', 'qemu:///system', 'vol-delete', '--pool', 'default', boximg]) logger.debug("removed old box image '%s' from libvirt storeage pool", boximg) except subprocess.CalledProcessError as e: - logger.debug("tired removing old box image '%s', file was not present in first place", boximg, exc_info=e) + logger.debug("tried removing old box image '%s', file was not present in first place", boximg, exc_info=e) super().box_add(boxname, boxfile, force) def box_remove(self, boxname): @@ -452,7 +452,7 @@ try: _check_call(['virsh', '-c', 'qemu:///system', 'vol-delete', '--pool', 'default', '%s_vagrant_box_image_0.img' % (boxname)]) except subprocess.CalledProcessError as e: - logger.debug("tired removing '%s', file was not present in first place", boxname, exc_info=e) + logger.debug("tried removing '%s', file was not present in first place", boxname, exc_info=e) def snapshot_create(self, snapshot_name): logger.info("creating snapshot '%s' for vm '%s'", snapshot_name, self.srvname) diff -Nru fdroidserver-1.0.2/fdroidserver.egg-info/PKG-INFO fdroidserver-1.0.6/fdroidserver.egg-info/PKG-INFO --- fdroidserver-1.0.2/fdroidserver.egg-info/PKG-INFO 2018-02-22 20:24:37.000000000 +0000 +++ fdroidserver-1.0.6/fdroidserver.egg-info/PKG-INFO 2018-05-25 15:43:23.000000000 +0000 @@ -1,147 +1,12 @@ Metadata-Version: 1.1 Name: fdroidserver -Version: 1.0.2 +Version: 1.0.6 Summary: F-Droid Server Tools Home-page: https://f-droid.org Author: The F-Droid Project Author-email: team@f-droid.org License: AGPL-3.0 -Description: +----------------------+-------------+------------+-----------------+----------------+ - | CI Builds | fdroidserve | buildserve | fdroid build | publishing | - | | r | r | --all | tools | - +======================+=============+============+=================+================+ - | Debian | |fdroidserv | |buildserv | |fdroid build | |fdroid test | - | | er | er | all status| | status| | - | | status on | status| | | | - | | Debian| | | | | - +----------------------+-------------+------------+-----------------+----------------+ - | macOS & Ubuntu/LTS | |fdroidserv | | | | - | | er | | | | - | | status on | | | | - | | macOS & | | | | - | | Ubuntu/LTS| | | | | - +----------------------+-------------+------------+-----------------+----------------+ - - F-Droid Server - ============== - - Server for `F-Droid `__, the Free Software - repository system for Android. - - The F-Droid server tools provide various scripts and tools that are used - to maintain the main `F-Droid application - repository `__. You can use these same - tools to create your own additional or alternative repository for - publishing, or to assist in creating, testing and submitting metadata to - the main repository. - - For documentation, please see https://f-droid.org/docs/, or you can find - the source for the documentation in - `fdroid/fdroid-website `__. - - What is F-Droid? - ~~~~~~~~~~~~~~~~ - - F-Droid is an installable catalogue of FOSS (Free and Open Source - Software) applications for the Android platform. The client makes it - easy to browse, install, and keep track of updates on your device. - - Installing - ~~~~~~~~~~ - - There are many was to install *fdroidserver*, they are documented on the - website: - https://f-droid.org/docs/Installing\_the\_Server\_and\_Repo\_Tools - - All sorts of other documentation lives there as well. - - Tests - ~~~~~ - - There are many components to all of the tests for the components in this - git repo. The most commonly used parts of well tested, while some parts - still lack tests. This test suite has built over time a bit haphazardly, - so it is not as clean, organized, or complete as it could be. We welcome - contributions. Before rearchitecting any parts of it, be sure to - `contact us `__ to discuss the changes - beforehand. - - ``fdroid`` commands - ^^^^^^^^^^^^^^^^^^^ - - The test suite for all of the ``fdroid`` commands is in the *tests/* - subdir. *.gitlab-ci.yml* and *.travis.yml* run this test suite on - various configurations. - - - *tests/complete-ci-tests* runs *pylint* and all tests on two - different pyvenvs - - *tests/run-tests* runs the whole test suite - - \_tests/\*.TestCase\_ are individual unit tests for all of the - ``fdroid`` commands, which can be run separately, e.g. - ``./update.TestCase``. - - Additional tests for different linux distributions - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - - These tests are also run on various distributions through GitLab CI. - This is only enabled for ``master@fdroid/fdroidserver`` because it'll - take longer to complete than the regular CI tests. Most of the time you - won't need to worry about them but sometimes it might make sense to also - run them for your merge request. In that case you need to remove `these - lines from - .gitlab-ci.yml `__ - and push this to a new branch of your fork. - - Alternatively `run them - locally `__ - like this: ``gitlab-runner exec docker ubuntu_lts`` - - buildserver - ^^^^^^^^^^^ - - The tests for the whole build server setup are entirely separate because - they require at least 200GB of disk space, and 8GB of RAM. These test - scripts are in the root of the project, all starting with *jenkins-* - since they are run on https://jenkins.debian.net. - - Drozer Scanner - ~~~~~~~~~~~~~~ - - There is a new feature under development that can scan any APK in a - repo, or any build, using Drozer. Drozer is a dynamic exploit scanner, - it runs an app in the emulator and runs known exploits on it. - - This setup requires specific versions of two Python modules: *docker-py* - 1.9.0 and *requests* older than 2.11. Other versions might cause the - docker-py connection to break with the containers. Newer versions of - docker-py might have this fixed already. - - For Debian based distributions: - - :: - - apt-get install libffi-dev libssl-dev python-docker - - Translation - ----------- - - Everything can be translated. See `Translation and - Localization `__ - for more info. |translation status| - - .. |fdroidserver status on Debian| image:: https://gitlab.com/fdroid/fdroidserver/badges/master/build.svg - :target: https://gitlab.com/fdroid/fdroidserver/builds - .. |buildserver status| image:: https://jenkins.debian.net/job/reproducible_setup_fdroid_build_environment/badge/icon - :target: https://jenkins.debian.net/job/reproducible_setup_fdroid_build_environment - .. |fdroid build all status| image:: https://jenkins.debian.net/job/reproducible_fdroid_build_apps/badge/icon - :target: https://jenkins.debian.net/job/reproducible_fdroid_build_apps/ - .. |fdroid test status| image:: https://jenkins.debian.net/job/reproducible_fdroid_test/badge/icon - :target: https://jenkins.debian.net/job/reproducible_fdroid_test/ - .. |fdroidserver status on macOS & Ubuntu/LTS| image:: https://travis-ci.org/f-droid/fdroidserver.svg?branch=master - :target: https://travis-ci.org/f-droid/fdroidserver - .. |translation status| image:: https://hosted.weblate.org/widgets/f-droid/-/fdroidserver/multi-auto.svg - :target: https://hosted.weblate.org/engage/f-droid/?utm_source=widget - +Description: README.md Platform: UNKNOWN Classifier: Development Status :: 4 - Beta Classifier: Intended Audience :: Developers diff -Nru fdroidserver-1.0.2/fdroidserver.egg-info/requires.txt fdroidserver-1.0.6/fdroidserver.egg-info/requires.txt --- fdroidserver-1.0.2/fdroidserver.egg-info/requires.txt 2018-02-22 20:24:37.000000000 +0000 +++ fdroidserver-1.0.6/fdroidserver.egg-info/requires.txt 2018-05-25 15:43:23.000000000 +0000 @@ -1,11 +1,12 @@ +androguard >= 3.1.0rc2 clint GitPython mwclient paramiko Pillow apache-libcloud >= 0.14.1 -pyasn1 -pyasn1-modules +pyasn1 <0.5.0, >=0.4.1 +pyasn1-modules == 0.2.1 python-vagrant PyYAML qrcode diff -Nru fdroidserver-1.0.2/fdroidserver.egg-info/SOURCES.txt fdroidserver-1.0.6/fdroidserver.egg-info/SOURCES.txt --- fdroidserver-1.0.2/fdroidserver.egg-info/SOURCES.txt 2018-02-22 20:24:39.000000000 +0000 +++ fdroidserver-1.0.6/fdroidserver.egg-info/SOURCES.txt 2018-05-25 15:43:24.000000000 +0000 @@ -5,7 +5,6 @@ LICENSE MANIFEST.in README.md -README.rst fdroid jenkins-build-all jenkins-setup-build-environment @@ -98,6 +97,7 @@ locale/pt_BR/LC_MESSAGES/fdroidserver.mo locale/pt_BR/LC_MESSAGES/fdroidserver.po locale/pt_PT/LC_MESSAGES/fdroidserver.po +locale/ru/LC_MESSAGES/fdroidserver.po locale/tr/LC_MESSAGES/fdroidserver.mo locale/tr/LC_MESSAGES/fdroidserver.po locale/uk/LC_MESSAGES/fdroidserver.mo @@ -107,6 +107,7 @@ locale/zh_Hant/LC_MESSAGES/fdroidserver.mo locale/zh_Hant/LC_MESSAGES/fdroidserver.po tests/IsMD5Disabled.java +tests/SpeedoMeterApp.main_1.apk tests/androguard_test.py tests/bad-unicode-πÇÇ现代通用字-български-عربي1.apk tests/build.TestCase @@ -167,6 +168,7 @@ tests/metadata/org.smssecure.smssecure.txt tests/metadata/org.videolan.vlc.yml tests/metadata/raw.template.txt +tests/metadata/souch.smsbypass.txt tests/metadata-rewrite-yml/app.with.special.build.params.yml tests/metadata-rewrite-yml/fake.ota.update.yml tests/metadata-rewrite-yml/org.fdroid.fdroid.yml @@ -215,6 +217,8 @@ tests/repo/obb.mainpatch.current_1619.apk tests/repo/obb.mainpatch.current_1619_another-release-key.apk tests/repo/patch.1619.obb.mainpatch.current.obb +tests/repo/souch.smsbypass_9.apk +tests/repo/urzip-; Рахма́, [rɐxˈmanʲɪnəf] سيرجي_رخمانينوف 谢·.apk tests/repo/obb.mainpatch.current/en-US/featureGraphic.png tests/repo/obb.mainpatch.current/en-US/icon.png tests/repo/obb.mainpatch.current/en-US/phoneScreenshots/screenshot-main.png @@ -250,6 +254,7 @@ tests/signindex/unsigned.jar tests/source-files/Zillode/syncthing-silk/build.gradle tests/source-files/at.bitfire.davdroid/build.gradle +tests/source-files/com.kunzisoft.testcase/build.gradle tests/source-files/com.nextcloud.client/build.gradle tests/source-files/com.nextcloud.client.dev/src/generic/fastlane/metadata/android/en-US/full_description.txt tests/source-files/com.nextcloud.client.dev/src/generic/fastlane/metadata/android/en-US/short_description.txt diff -Nru fdroidserver-1.0.2/.gitignore fdroidserver-1.0.6/.gitignore --- fdroidserver-1.0.2/.gitignore 2018-02-22 12:02:20.000000000 +0000 +++ fdroidserver-1.0.6/.gitignore 2018-04-26 10:32:30.000000000 +0000 @@ -36,9 +36,12 @@ /tests/archive/categories.txt /tests/archive/icons* /tests/archive/index.jar +/tests/archive/index_unsigned.jar /tests/archive/index.xml /tests/archive/index-v1.jar +/tests/archive/index-v1.json /tests/repo/index.jar +/tests/repo/index_unsigned.jar /tests/repo/index-v1.jar /tests/repo/info.guardianproject.urzip/ /tests/repo/info.guardianproject.checkey/en-US/phoneScreenshots/checkey-phone.png diff -Nru fdroidserver-1.0.2/.gitlab-ci.yml fdroidserver-1.0.6/.gitlab-ci.yml --- fdroidserver-1.0.2/.gitlab-ci.yml 2018-02-22 19:02:03.000000000 +0000 +++ fdroidserver-1.0.6/.gitlab-ci.yml 2018-05-25 10:33:22.000000000 +0000 @@ -16,7 +16,7 @@ metadata_v0: image: registry.gitlab.com/fdroid/ci-images-server:latest variables: - RELEASE_COMMIT_ID: 6d69dcddd95fe08ffe431e305932cfdeafd6fc9d # 1.0.0 + RELEASE_COMMIT_ID: 2f563f533b3571c80f7a09c6fbb453398658f723 # 1.0.2 script: - git fetch https://gitlab.com/fdroid/fdroidserver $RELEASE_COMMIT_ID - cd tests @@ -30,6 +30,7 @@ - git reset --hard - git checkout $GITCOMMIT - cd fdroiddata + - echo "accepted_formats = ('txt', 'yml')" >> config.py - ../tests/dump_internal_metadata_format.py - sed -i -e '/Translation:/d' @@ -57,29 +58,50 @@ - cd tests - ./run-tests +# test using LTS set up with the PPA, including Recommends ubuntu_lts: image: ubuntu:latest only: - master@fdroid/fdroidserver + variables: + DEBIAN_FRONTEND: noninteractive script: + - echo Etc/UTC > /etc/timezone + - apt-get -qy update + - apt-get -qy install gnupg - while ! apt-key adv --keyserver hkp://pool.sks-keyservers.net --recv-key 9AAC253193B65D4DF1D0A13EEC4632C79C5E0151; do sleep 15; done - export RELEASE=`sed -n 's,^deb [^ ][^ ]* \([a-z]*\).*,\1,p' /etc/apt/sources.list | head -1` - echo "deb http://ppa.launchpad.net/fdroid/fdroidserver/ubuntu $RELEASE main" >> /etc/apt/sources.list - apt-get -qy update - apt-get -qy dist-upgrade - - apt-get -qy install --no-install-recommends - aapt adb android-platform-tools-base android-sdk-common fdroidserver - git gnupg python3-setuptools unzip wget zipalign + - apt-get -qy install --install-recommends fdroidserver git python3-setuptools - export ANDROID_HOME=/usr/lib/android-sdk - # xenial's aapt is too old - - wget --no-verbose https://dl.google.com/android/repository/build-tools_r27.0.3-linux.zip - - unzip -q build-tools_r27.0.3-linux.zip - - rm build-tools_r27.0.3-linux.zip - - mv android-8.1.0 $ANDROID_HOME/build-tools/27.0.3 - export LANG=C.UTF-8 - cd tests - ./run-tests +# test using TrustyLTS with all depends from pypi +ubuntu_trusty_pip: + image: ubuntu:trusty + only: + - master@fdroid/fdroidserver + variables: + DEBIAN_FRONTEND: noninteractive + LANG: C.UTF-8 + script: + - echo Etc/UTC > /etc/timezone + - apt-get -qy update + - apt-get -qy dist-upgrade + - apt-get -qy install git default-jdk python3-pip python3.4-venv + - rm -rf env + - pyvenv-3.4 env + - . env/bin/activate + - echo sed -i "s/'requests.*',$/'requests',/" setup.py + - pip3 install --upgrade babel pip setuptools + - pip3 install -e . + - ./setup.py compile_catalog + - ./tests/run-tests + pip_install: image: archlinux/base only: @@ -99,6 +121,27 @@ - fdroid readmeta - fdroid update --help +lint_format_safety_checks: + image: alpine:3.7 + variables: + LANG: C.UTF-8 + script: + - apk add --no-cache bash dash ca-certificates python3 + - python3 -m ensurepip + - pip3 install pep8 pyflakes pylint safety + - export EXITVALUE=0 + - ./hooks/pre-commit || export EXITVALUE=1 + - safety check --full-report || export EXITVALUE=1 + - pylint --rcfile=.pylint-rcfile --output-format=colorized --reports=n + fdroid + makebuildserver + setup.py + fdroidserver/*.py + tests/*.py + tests/*.TestCase + || export EXITVALUE=1 + - exit $EXITVALUE + fedora_latest: image: fedora:latest only: diff -Nru fdroidserver-1.0.2/jenkins-setup-build-environment fdroidserver-1.0.6/jenkins-setup-build-environment --- fdroidserver-1.0.2/jenkins-setup-build-environment 2018-02-22 12:03:03.000000000 +0000 +++ fdroidserver-1.0.6/jenkins-setup-build-environment 2018-05-14 13:25:33.000000000 +0000 @@ -107,5 +107,3 @@ ../fdroid build --verbose --stop org.adaway:55 # building old versions should still work ../fdroid build --verbose --stop org.fdroid.fdroid:96150 -# test OTA update ZIP build and publish -../fdroid build --verbose --stop org.fdroid.fdroid.privileged.ota:2070 diff -Nru fdroidserver-1.0.2/jenkins-test fdroidserver-1.0.6/jenkins-test --- fdroidserver-1.0.2/jenkins-test 2018-02-22 12:03:03.000000000 +0000 +++ fdroidserver-1.0.6/jenkins-test 2018-04-09 08:24:16.000000000 +0000 @@ -25,9 +25,6 @@ rm -rf "$WORKSPACE/.testfiles" cd tests -echo "Debian's build-tools is too old, remove once the package has been updated" -sed -i '/android.permission.READ_EXTERNAL_STORAGE/d' repo/index.xml -sed -i '/^diff -uw .*index-v1.json$/d' run-tests ./run-tests $WORKSPACE/fdroiddata/repo # this is set up and managed by jenkins-build-all @@ -35,7 +32,6 @@ rm -f config.py keystore.jks ../fdroid init --verbose -../fdroid update export GNUPGHOME=$WORKSPACE/tests/gnupghome if [ ! -e $GNUPGHOME/private-keys-v1.d ]; then @@ -45,6 +41,7 @@ gpg --import $GNUPGHOME/secring.gpg echo "build_server_always = True" >> config.py +echo "make_current_version_link = False" >> config.py echo "gpghome = '$GNUPGHOME'" >> config.py echo "gpgkey = 'CE71F7FB'" >> config.py chmod 0600 config.py @@ -66,3 +63,7 @@ ../fdroid rewritemeta --quiet git --no-pager diff +git status +ls -lR cache || true + +../fdroid checkupdates --auto --autoonly --commit Binary files /tmp/tmpCoX7hp/hZW9rVCDMC/fdroidserver-1.0.2/locale/bo/LC_MESSAGES/fdroidserver.mo and /tmp/tmpCoX7hp/RzjpYOWXQL/fdroidserver-1.0.6/locale/bo/LC_MESSAGES/fdroidserver.mo differ diff -Nru fdroidserver-1.0.2/locale/bo/LC_MESSAGES/fdroidserver.po fdroidserver-1.0.6/locale/bo/LC_MESSAGES/fdroidserver.po --- fdroidserver-1.0.2/locale/bo/LC_MESSAGES/fdroidserver.po 2018-02-22 12:03:03.000000000 +0000 +++ fdroidserver-1.0.6/locale/bo/LC_MESSAGES/fdroidserver.po 2018-05-15 10:39:10.000000000 +0000 @@ -3,20 +3,37 @@ # FIRST AUTHOR , YEAR. # msgid "" -msgstr "Project-Id-Version: fdroidserver 0.9\nReport-Msgid-Bugs-To: team@f-droid.org\nPOT-Creation-Date: 2018-02-13 09:01+0100\nPO-Revision-Date: 2018-02-13 08:41+0000\nLast-Translator: Hans-Christoph Steiner \nLanguage-Team: Tibetan \nLanguage: bo\nMIME-Version: 1.0\nContent-Type: text/plain; charset=UTF-8\nContent-Transfer-Encoding: 8bit\nPlural-Forms: nplurals=1; plural=0;\nX-Generator: Weblate 2.19-dev\n" +msgstr "" +"Project-Id-Version: fdroidserver 0.9\n" +"Report-Msgid-Bugs-To: https://gitlab.com/fdroid/fdroidserver/issues\n" +"POT-Creation-Date: 2018-02-13 09:01+0100\n" +"PO-Revision-Date: 2018-02-13 08:41+0000\n" +"Last-Translator: Hans-Christoph Steiner \n" +"Language-Team: Tibetan \n" +"Language: bo\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: Weblate 2.19-dev\n" #: ../fdroidserver/nightly.py msgid "" "\n" "SSH Public Key to be used as Deploy Key:" -msgstr "\nSSHདམངས་ཀྱི་ལྡེ་མིག་དེ་ཕྱོགས་སྐྱོད་ལྡ་ེམིག་ལ་བེད་སྤྱོད་བྱེད།:" +msgstr "" +"\n" +"SSHདམངས་ཀྱི་ལྡེ་མིག་དེ་ཕྱོགས་སྐྱོད་ལྡ་ེམིག་ལ་བེད་སྤྱོད་བྱེད།:" #: ../fdroidserver/nightly.py #, python-brace-format msgid "" "\n" "{path} encoded for the DEBUG_KEYSTORE secret variable:" -msgstr "\n{path} DEBUG_KEYSTOREགསང་རྟགས་ཀྱི་ཆེད་དུ་ཨང་སྒྲིག:" +msgstr "" +"\n" +"{path} DEBUG_KEYSTOREགསང་རྟགས་ཀྱི་ཆེད་དུ་ཨང་སྒྲིག:" #: ../fdroidserver/lint.py #, python-format @@ -113,12 +130,16 @@ #: ../fdroidserver/common.py #, python-brace-format msgid "'{aapt}' is too old, fdroid requires build-tools-23.0.0 or newer!" -msgstr "'{aapt}1' འདི་ཧ་ཅང་གི་རྙིང་པ་རེད་འདུག, ཨེཕ་རོཌ་ལ་བཟོ་སྐྲུན་མ་ལག-23.0.0 དང་ཡང་ན་དེ་ལས་གསར་བ་དགོས།!" +msgstr "" +"'{aapt}1' འདི་ཧ་ཅང་གི་རྙིང་པ་རེད་འདུག, ཨེཕ་རོཌ་ལ་བཟོ་སྐྲུན་མ་ལག-23.0.0 དང་ཡང་ན་དེ་ལས་གསར་" +"བ་དགོས།!" #: ../fdroidserver/common.py #, fuzzy, python-brace-format msgid "'{aapt}' is too old, fdroid requires build-tools-{version} or newer!" -msgstr "'{aapt}1' འདི་ཧ་ཅང་གི་རྙིང་པ་རེད་འདུག, ཨེཕ་རོཌ་ལ་བཟོ་སྐྲུན་མ་ལག-23.0.0 དང་ཡང་ན་དེ་ལས་གསར་བ་དགོས།!" +msgstr "" +"'{aapt}1' འདི་ཧ་ཅང་གི་རྙིང་པ་རེད་འདུག, ཨེཕ་རོཌ་ལ་བཟོ་སྐྲུན་མ་ལག-23.0.0 དང་ཡང་ན་དེ་ལས་གསར་" +"བ་དགོས།!" #: ../fdroidserver/install.py #, python-brace-format @@ -127,8 +148,12 @@ #: ../fdroidserver/common.py #, python-brace-format -msgid "'{field}' will be in random order! Use () or [] brackets if order is important!" -msgstr "'{field}1' ནི་གོ་རིམ་ངེས་མེད།! བེད་སྤྱོད། () ཡང་ན། [] གོ་རིམ་གལ་ཆེན་པོའི་རིགས་ལ་གུག་རྟགས་ནང་བཅུག!" +msgid "" +"'{field}' will be in random order! Use () or [] brackets if order is " +"important!" +msgstr "" +"'{field}1' ནི་གོ་རིམ་ངེས་མེད།! བེད་སྤྱོད། () ཡང་ན། [] གོ་རིམ་གལ་ཆེན་པོའི་རིགས་ལ་གུག་རྟགས་ནང་" +"བཅུག!" #: ../fdroidserver/common.py #, python-brace-format @@ -138,7 +163,8 @@ #: ../fdroidserver/metadata.py #, python-brace-format msgid "'{value}' is not a valid {field} in {appid}. Regex pattern: {pattern}" -msgstr "'{value}' ཁུངས་ལྡན་རེད་མིན་འདུག{field} འདི་ནང་ {appid}. Regex འགྲོ་ལུགས་: {pattern}" +msgstr "" +"'{value}' ཁུངས་ལྡན་རེད་མིན་འདུག{field} འདི་ནང་ {appid}. Regex འགྲོ་ལུགས་: {pattern}" #: ../fdroidserver/checkupdates.py #, python-brace-format @@ -188,8 +214,12 @@ msgstr "ལྡེ་མིག་གསོག་ཉར་ཁང་ནང་རེ་པོ་མིང་རྟགས་ལྡེ་མིག་བཀོད་པའི་གསང་མིང་།" #: ../fdroidserver/import.py -msgid "Allows a different revision (or git branch) to be specified for the initial import" -msgstr "ཐོག་མའི་ནང་འདྲེན་བྱེད་པའི་སྐབས་གསལ་པོའི་ཐོག་ནས་སྐྱར་སྦྱོང་(ཡང་ན་གིཊ་ཡན་ལག་)མི་འདྲ་བ་རྣམས་ལ་ཆོག་མཆན་སྤྲོད།" +msgid "" +"Allows a different revision (or git branch) to be specified for the initial " +"import" +msgstr "" +"ཐོག་མའི་ནང་འདྲེན་བྱེད་པའི་སྐབས་གསལ་པོའི་ཐོག་ནས་སྐྱར་སྦྱོང་(ཡང་ན་གིཊ་ཡན་ལག་)མི་འདྲ་བ་རྣམས་ལ་ཆོག་" +"མཆན་སྤྲོད།" #: ../fdroidserver/mirror.py msgid "Also mirror the full archive section" @@ -245,7 +275,9 @@ msgstr "མཛོད་ཁང་{apkfilename} ལ་ཁུངས་ལྡན་མིན་པའི་མིང་རྟགས་!" #: ../fdroidserver/mirror.py -msgid "Base URL to mirror, can include the index signing key using the query string: ?fingerprint=" +msgid "" +"Base URL to mirror, can include the index signing key using the query " +"string: ?fingerprint=" msgstr "" #. Translators: https://developer.android.com/guide/topics/manifest/manifest-element.html#vname @@ -269,7 +301,9 @@ #: ../fdroidserver/lint.py msgid "Build generated by `fdroid import` - remove disable line once ready" -msgstr "བཟོ་སྐྲུན་འདི་ཐོན་སྐྱེད་བྱེད་མཁན་ 'ཨེཕ་རོཌ་ནང་འདྲེན།' -གལ་སྲིད་གྲ་སྒྲིག་ཟིན་ན་ནུས་མེད་ཀྱི་རིམ་པ་དེ་མེད་པ་བཟོས།" +msgstr "" +"བཟོ་སྐྲུན་འདི་ཐོན་སྐྱེད་བྱེད་མཁན་ 'ཨེཕ་རོཌ་ནང་འདྲེན།' -གལ་སྲིད་གྲ་སྒྲིག་ཟིན་ན་ནུས་མེད་ཀྱི་རིམ་པ་དེ་མེད་པ་" +"བཟོས།" #: ../fdroidserver/build.py msgid "Build only the latest version of each package" @@ -277,8 +311,12 @@ #: ../fdroidserver/metadata.py #, python-brace-format -msgid "Build should have comma-separated versionName and versionCode, not \"{value}\", in {linedesc}" -msgstr "བཟོ་སྐྲུན་ལ་ངེས་པར་དུ་བར་ཚེགས་ཀྱི་དབྱེ་མཚམས་ཡོད་པའི་ཐོན་རིམ་གྱི་མིང་དང་ཐོན་རྟགས་དགོས།\"{value}\"ནང་{linedesc}" +msgid "" +"Build should have comma-separated versionName and versionCode, not " +"\"{value}\", in {linedesc}" +msgstr "" +"བཟོ་སྐྲུན་ལ་ངེས་པར་དུ་བར་ཚེགས་ཀྱི་དབྱེ་མཚམས་ཡོད་པའི་ཐོན་རིམ་གྱི་མིང་དང་ཐོན་རྟགས་དགོས།" +"\"{value}\"ནང་{linedesc}" #: ../fdroidserver/init.py #, python-format @@ -334,8 +372,12 @@ #: ../fdroidserver/update.py #, python-brace-format -msgid "Checking archiving for {appid} - apks:{integer}, keepversions:{keep}, archapks:{arch}" -msgstr "མཛོད་ཁང་ཚོད་ལྟའི་ཆེད་དུ།{appid} - apks:{integer},ཐོན་རིམ་ཉར་ཚགས།:{keep},archapks:{arch}" +msgid "" +"Checking archiving for {appid} - apks:{integer}, keepversions:{keep}, " +"archapks:{arch}" +msgstr "" +"མཛོད་ཁང་ཚོད་ལྟའི་ཆེད་དུ།{appid} - apks:{integer},ཐོན་རིམ་ཉར་ཚགས།:{keep},archapks:" +"{arch}" #: ../fdroidserver/dscanner.py msgid "Clean after all scans have finished" @@ -467,7 +509,8 @@ #: ../fdroidserver/lint.py #, python-format msgid "Description has a list (%s) but it isn't bulleted (*) nor numbered (#)" -msgstr "འགྲེལ་བཤད་འདི་ལ་ཐོ་གཞུང་ཡོད། (%s 1) འོན་ཀྱང་འདི་ལ་ཚགས་རྒྱབ་མིན་འདུག(*)གྲངས་ཀྱང་མེད། (#)" +msgstr "" +"འགྲེལ་བཤད་འདི་ལ་ཐོ་གཞུང་ཡོད། (%s 1) འོན་ཀྱང་འདི་ལ་ཚགས་རྒྱབ་མིན་འདུག(*)གྲངས་ཀྱང་མེད། (#)" #: ../fdroidserver/lint.py #, python-brace-format @@ -492,7 +535,9 @@ msgstr "ཐོ་གཞུང་དང་འབྲེལ་བ་ཡོད་པའི་རིགས་ལ་གང་ཡང་མ་བྱེད།" #: ../fdroidserver/build.py -msgid "Don't refresh the repository, useful when testing a build with no internet connection" +msgid "" +"Don't refresh the repository, useful when testing a build with no internet " +"connection" msgstr "མཛོད་ཁང་སྐྱར་སོས་མ་བྱེད། དྲྭ་རྒྱ་མེད་པའི་སྐབས་ལ་ཐོན་སྐྱེད་ཚོད་ལྟ་བྱེད་པར་ཕན་ཐོགས་ཡོང་།" #: ../fdroidserver/server.py ../fdroidserver/nightly.py @@ -519,8 +564,11 @@ #: ../fdroidserver/metadata.py #, python-brace-format -msgid "Duplicate build recipe found for versionCode {versionCode} in {linedesc}" -msgstr "བཟོ་སྐྲུན་ངོ་བཤུས་རིམ་པ་དེ་བཞིན་ཐོན་རིམ་ཨང་རྟགས་ནང་རྙེད་སོན་བྱུང་འདུག{versionCode} ནང་ {linedesc}" +msgid "" +"Duplicate build recipe found for versionCode {versionCode} in {linedesc}" +msgstr "" +"བཟོ་སྐྲུན་ངོ་བཤུས་རིམ་པ་དེ་བཞིན་ཐོན་རིམ་ཨང་རྟགས་ནང་རྙེད་སོན་བྱུང་འདུག{versionCode} ནང་ " +"{linedesc}" #: ../fdroidserver/lint.py #, python-brace-format @@ -647,8 +695,12 @@ msgstr "" #: ../fdroidserver/build.py -msgid "Force build of disabled apps, and carries on regardless of scan problems. Only allowed in test mode." -msgstr "ནུས་མེད་མཉེན་ཆས་ལ་ཐོན་སྐྱེད་ཆེད་དུ་མངགས་ཏེ་བཟོས། འདི་འཚག་རྒྱབ་ཀྱི་དཀའ་ངལ་ཡོད་མིན་ལ་མ་ལྟོས་པར་མུ་མཐུད་དུ་འགྲོ་ཐུབ། འདི་ཚོད་ལྟའི་ཚུལ་ཁ་ོནར་ཆོག་མཆན་སྤྲད།." +msgid "" +"Force build of disabled apps, and carries on regardless of scan problems. " +"Only allowed in test mode." +msgstr "" +"ནུས་མེད་མཉེན་ཆས་ལ་ཐོན་སྐྱེད་ཆེད་དུ་མངགས་ཏེ་བཟོས། འདི་འཚག་རྒྱབ་ཀྱི་དཀའ་ངལ་ཡོད་མིན་ལ་མ་ལྟོས་པར་མུ་" +"མཐུད་དུ་འགྲོ་ཐུབ། འདི་ཚོད་ལྟའི་ཚུལ་ཁ་ོནར་ཆོག་མཆན་སྤྲད།." #: ../fdroidserver/build.py #, python-brace-format @@ -803,12 +855,17 @@ #: ../fdroidserver/lint.py #, python-format -msgid "Invalid license tag \"%s\"! Use only tags from https://spdx.org/license-list" -msgstr "ཁུངས་ལྡན་མིན་པའི་ཆོག་མཆན་ལག་ཁྱེར་སྦྱར་ \"%s 1\"! https://spdx.org/license-list ཁོ་ན་ནས་ཡིན་པ་སྦྱར་ཏེ་བེད་སྤྱོད་བྱེད་།" +msgid "" +"Invalid license tag \"%s\"! Use only tags from https://spdx.org/license-list" +msgstr "" +"ཁུངས་ལྡན་མིན་པའི་ཆོག་མཆན་ལག་ཁྱེར་སྦྱར་ \"%s 1\"! https://spdx.org/license-list ཁོ་ན་ནས་" +"ཡིན་པ་སྦྱར་ཏེ་བེད་སྤྱོད་བྱེད་།" #: ../fdroidserver/lint.py msgid "Invalid link - use [http://foo.bar Link title] or [http://foo.bar]" -msgstr "ཁུངས་ལྡན་མིན་པའི་སྦྲེལ་མཐུད། - [http://foo.bar Link title] or [http://foo.bar]བེད་སྤྱོད་བྱེད།" +msgstr "" +"ཁུངས་ལྡན་མིན་པའི་སྦྲེལ་མཐུད། - [http://foo.bar Link title] or [http://foo.bar]བེད་སྤྱོད་" +"བྱེད།" #: ../fdroidserver/metadata.py #, python-format @@ -850,8 +907,10 @@ msgstr "Java JDK རྙེད་མ་སོང་།! ཚད་ལྡན་གྱི་ས་གནས་ནང་སྒྲིག་བཅུག་བྱེད་པའམ་ཡང་ན་java_paths སྒྲིག!" #: ../fdroidserver/signindex.py -msgid "Java jarsigner not found! Install in standard location or set java_paths!" -msgstr "Java jarsigner རྙེད་མ་སོང་། !ཚད་ལྡན་གྱི་ས་གནས་ནང་སྒྲིག་བཅུག་བྱེད་པའམ་ཡང་ན་java_paths སྒྲིག!" +msgid "" +"Java jarsigner not found! Install in standard location or set java_paths!" +msgstr "" +"Java jarsigner རྙེད་མ་སོང་། !ཚད་ལྡན་གྱི་ས་གནས་ནང་སྒྲིག་བཅུག་བྱེད་པའམ་ཡང་ན་java_paths སྒྲིག!" #: ../fdroidserver/lint.py msgid "Javascript in HTML src attributes" @@ -863,8 +922,12 @@ #: ../fdroidserver/lint.py #, python-brace-format -msgid "Last used commit '{commit}' looks like a tag, but Update Check Mode is '{ucm}'" -msgstr "ཁས་ལེན་བྱས་པའི་བེད་སྤྱོད་ཐ་མ་ '{commit}' སྦྱར་བ་འདྲ་པོ་འདུག, འོན་ཀྱང་གསར་བསྒྱུར་ཡོད་མེད་འཚོལ་བྱེད་ནི།'{ucm}'" +msgid "" +"Last used commit '{commit}' looks like a tag, but Update Check Mode is " +"'{ucm}'" +msgstr "" +"ཁས་ལེན་བྱས་པའི་བེད་སྤྱོད་ཐ་མ་ '{commit}' སྦྱར་བ་འདྲ་པོ་འདུག, འོན་ཀྱང་གསར་བསྒྱུར་ཡོད་མེད་འཚོལ་བྱེད་" +"ནི།'{ucm}'" #: ../fdroidserver/lint.py #, fuzzy @@ -939,7 +1002,8 @@ #: ../fdroidserver/server.py msgid "No option set! Edit your config.py to set at least one of these:" -msgstr "གདམ་ཀ་མེད་པ་སྒྲིག།! ཁྱེད་རང་གི་config.py འདིའི་ནང་ནས་མ་མཐའ་ཡིན་ཡང་གང་རུང་ཞིག་རྩོམ་སྒྲིག་བྱེད་:" +msgstr "" +"གདམ་ཀ་མེད་པ་སྒྲིག།! ཁྱེད་རང་གི་config.py འདིའི་ནང་ནས་མ་མཐའ་ཡིན་ཡང་གང་རུང་ཞིག་རྩོམ་སྒྲིག་བྱེད་:" #: ../fdroidserver/common.py msgid "No packages specified" @@ -1043,10 +1107,12 @@ #: ../fdroidserver/import.py msgid "Path to main Android project subdirectory, if not in root." -msgstr "གལ་སྲིད་ཆོག་མཆན་ཨ་མའི་ནང་ལ་མེད་ན། ལམ་གྱི་གཙོ་བོ་འདི་ཨེན་ཀྲོཌ་ལས་འཆར་གྱི་ཕྱོགས་དེབ་ཡན་ལག་སྟོན་ཡོད།." +msgstr "" +"གལ་སྲིད་ཆོག་མཆན་ཨ་མའི་ནང་ལ་མེད་ན། ལམ་གྱི་གཙོ་བོ་འདི་ཨེན་ཀྲོཌ་ལས་འཆར་གྱི་ཕྱོགས་དེབ་ཡན་ལག་སྟོན་ཡོད།." msgid "Path to main android project subdirectory, if not in root." -msgstr "གལ་སྲིད་ཆོག་མཆན་ཨ་མའི་ནང་ལ་མེད་ན། ལམ་གྱི་གཙོ་བོ་འདི་ཨེན་ཀྲོཌ་ལས་འཆར་གྱི་ཕྱོགས་དེབ་ཡན་ལག་སྟོན་ཡོད།." +msgstr "" +"གལ་སྲིད་ཆོག་མཆན་ཨ་མའི་ནང་ལ་མེད་ན། ལམ་གྱི་གཙོ་བོ་འདི་ཨེན་ཀྲོཌ་ལས་འཆར་གྱི་ཕྱོགས་དེབ་ཡན་ལག་སྟོན་ཡོད།." #: ../fdroidserver/init.py msgid "Path to the Android SDK (sometimes set in ANDROID_HOME)" @@ -1141,14 +1207,20 @@ #: ../fdroidserver/common.py #, fuzzy, python-brace-format msgid "Reading minSdkVersion failed: \"{apkfilename}\"" -msgstr "ཐུམ་སྒྲིལ་གྱི་མིང་ཀློག་བཞིནཔ།/ཐོན་རིམ་ཨང་རྟགས་/ཐོན་རིམ་གྱི་མིང་བདེ་སྤྱོད་མེད། APK ཁུངས་ལྡན་མིན།: '{apkfilename}'" +msgstr "" +"ཐུམ་སྒྲིལ་གྱི་མིང་ཀློག་བཞིནཔ།/ཐོན་རིམ་ཨང་རྟགས་/ཐོན་རིམ་གྱི་མིང་བདེ་སྤྱོད་མེད། APK ཁུངས་ལྡན་མིན།: " +"'{apkfilename}'" #. Translators: https://developer.android.com/guide/topics/manifest/manifest-element.html#vcode #. https://developer.android.com/guide/topics/manifest/manifest-element.html#vname #: ../fdroidserver/common.py #, python-brace-format -msgid "Reading packageName/versionCode/versionName failed, APK invalid: '{apkfilename}'" -msgstr "ཐུམ་སྒྲིལ་གྱི་མིང་ཀློག་བཞིནཔ།/ཐོན་རིམ་ཨང་རྟགས་/ཐོན་རིམ་གྱི་མིང་བདེ་སྤྱོད་མེད། APK ཁུངས་ལྡན་མིན།: '{apkfilename}'" +msgid "" +"Reading packageName/versionCode/versionName failed, APK invalid: " +"'{apkfilename}'" +msgstr "" +"ཐུམ་སྒྲིལ་གྱི་མིང་ཀློག་བཞིནཔ།/ཐོན་རིམ་ཨང་རྟགས་/ཐོན་རིམ་གྱི་མིང་བདེ་སྤྱོད་མེད། APK ཁུངས་ལྡན་མིན།: " +"'{apkfilename}'" #: ../fdroidserver/update.py #, python-brace-format @@ -1156,7 +1228,9 @@ msgstr "སྦས་ཁུང་ནས་ {apkfilename}ཀློག་བཞིན་པ།" #: ../fdroidserver/stats.py -msgid "Recalculate aggregate stats - use when changes have been made that would invalidate old cached data." +msgid "" +"Recalculate aggregate stats - use when changes have been made that would " +"invalidate old cached data." msgstr "ཕྱོགས་བསྡོམས་བྱས་པའི་གྲངས་ཐོ་རྣམས་སྐྱར་རྩིས་བྱེད། -བསྒྱུར་བ་འགྲོ་བའི་སྐབས་ལ་བེད་སྤྱོད་བྱེད།." #: ../fdroidserver/common.py @@ -1172,8 +1246,12 @@ msgstr "ཐོན་སྐྱེད་ཡིག་ཚགས་གནས་བབས་སྒང་གི་སྙན་ཐོ།" #: ../fdroidserver/build.py -msgid "Reset and create a brand new build server, even if the existing one appears to be ok." -msgstr "ཡོད་བཞིན་པའི་ཞབས་ཞུ་འཕྲུལ་ཆས་འདི་ལ་སྐྱོན་མེད་པ་ཡིན་རུང་། ཐོན་སྐྱེད་ཞབས་ཞུ་འཕྲུལ་ཆས་གསར་པ་ཞིག་སྐྱར་སྒྲིག་དང་བཟོས།." +msgid "" +"Reset and create a brand new build server, even if the existing one appears " +"to be ok." +msgstr "" +"ཡོད་བཞིན་པའི་ཞབས་ཞུ་འཕྲུལ་ཆས་འདི་ལ་སྐྱོན་མེད་པ་ཡིན་རུང་། ཐོན་སྐྱེད་ཞབས་ཞུ་འཕྲུལ་ཆས་གསར་པ་ཞིག་སྐྱར་" +"སྒྲིག་དང་བཟོས།." #: ../fdroidserver/nightly.py #, fuzzy, python-brace-format @@ -1266,10 +1344,14 @@ #: ../fdroidserver/build.py msgid "Setup an emulator, install the APK on it and perform a Drozer scan" -msgstr "གློག་ཀླད་ལད་མོ་མཁན་ཞིག་སྒྲིག འདིའི་སྒང་ལ་ APK ནང་འགྲིག་བཅུག་བྱེད་དུ་བཅུག་ནས་ཌོ་ཛར་འཚག་རྒྱབ་འགོ་བཙུགས་བྱེད།" +msgstr "" +"གློག་ཀླད་ལད་མོ་མཁན་ཞིག་སྒྲིག འདིའི་སྒང་ལ་ APK ནང་འགྲིག་བཅུག་བྱེད་དུ་བཅུག་ནས་ཌོ་ཛར་འཚག་རྒྱབ་འགོ་" +"བཙུགས་བྱེད།" msgid "Setup an emulator, install the apk on it and perform a drozer scan" -msgstr "གློག་ཀླད་ལད་མོ་མཁན་ཞིག་སྒྲིག འདིའི་སྒང་ལ་apk ནང་འགྲིག་བཅུག་བྱེད་དུ་བཅུག་ནས་ཌོ་ཛར་འཚག་རྒྱབ་འགོ་བཙུགས་བྱེད།" +msgstr "" +"གློག་ཀླད་ལད་མོ་མཁན་ཞིག་སྒྲིག འདིའི་སྒང་ལ་apk ནང་འགྲིག་བཅུག་བྱེད་དུ་བཅུག་ནས་ཌོ་ཛར་འཚག་རྒྱབ་འགོ་བཙུགས་" +"བྱེད།" #: ../fdroid msgid "Sign and place packages in the repo" @@ -1362,8 +1444,12 @@ msgstr "" #: ../fdroidserver/build.py -msgid "Test mode - put output in the tmp directory only, and always build, even if the output already exists." -msgstr "ཚོད་ལྟའི་ཚུལ་-གལ་སྲིད་ཡིག་ཚགས་འདི་སྔོན་ཚོད་ནས་ཡོད་ནའང་། ཡིག་ཚགས་འདི་སྐབས་ཕྲལ་གྱི་ཕྱོགས་དེབ་ཁོ་ནའི་ནང་ལ་བླུགས་པ་དང་རྟག་ཏུ་ཐོན་སྐྱེད་བཟོས།." +msgid "" +"Test mode - put output in the tmp directory only, and always build, even if " +"the output already exists." +msgstr "" +"ཚོད་ལྟའི་ཚུལ་-གལ་སྲིད་ཡིག་ཚགས་འདི་སྔོན་ཚོད་ནས་ཡོད་ནའང་། ཡིག་ཚགས་འདི་སྐབས་ཕྲལ་གྱི་ཕྱོགས་དེབ་ཁོ་ནའི་" +"ནང་ལ་བླུགས་པ་དང་རྟག་ཏུ་ཐོན་སྐྱེད་བཟོས།." #. Translators: https://developer.android.com/guide/topics/manifest/manifest-element.html#vcode #: ../fdroidserver/update.py @@ -1410,8 +1496,12 @@ msgstr "རེ་པོ་འདི་ལ་སྔོན་ཚོད་ནས་ས་གནས་ཀྱི་རྒྱབ་ལྗོངས་ཡིག་ཆ་འདུག: %s 1" #: ../fdroidserver/server.py ../fdroidserver/upload.py -msgid "To use awsbucket, awssecretkey and awsaccesskeyid must also be set in config.py!" -msgstr "awsbucket, awssecretkey དང་། awsaccesskeyid བེད་སྤྱོད་བྱེད་པའི་ཆེད་དུ་ config.py ནང་དུ་ངེས་པར་དུ་སྒྲིག་དགོས།!" +msgid "" +"To use awsbucket, awssecretkey and awsaccesskeyid must also be set in config." +"py!" +msgstr "" +"awsbucket, awssecretkey དང་། awsaccesskeyid བེད་སྤྱོད་བྱེད་པའི་ཆེད་དུ་ config.py ནང་དུ་" +"ངེས་པར་དུ་སྒྲིག་དགོས།!" #: ../fdroidserver/lint.py msgid "UCM is set but it looks like checkupdates hasn't been run yet" @@ -1461,7 +1551,9 @@ #: ../fdroidserver/lint.py msgid "Unlinkified link - use [http://foo.bar Link title] or [http://foo.bar]" -msgstr "སྦྲེལ་མཐུད་བྱེད་མི་ཐུབ་པའི་སྦྲེལ་མཐུད། -བེད་སྤྱོད། [http://foo.bar Link title] or [http://foo.bar]" +msgstr "" +"སྦྲེལ་མཐུད་བྱེད་མི་ཐུབ་པའི་སྦྲེལ་མཐུད། -བེད་སྤྱོད། [http://foo.bar Link title] or [http://foo." +"bar]" #: ../fdroidserver/lint.py msgid "Unnecessary leading space" @@ -1566,10 +1658,12 @@ #: ../fdroidserver/update.py msgid "Use date from APK instead of current time for newly added APKs" -msgstr "APK རང་གི་ཚེས་གྲངས་དེ་བེད་སྤྱོད་བྱས་པ་ལས་ཁ་སྣོན་བྱས་པའི་ APKs གསར་པའི་དུས་ཚོས་བེད་སྤྱོད་མ་བྱེད།" +msgstr "" +"APK རང་གི་ཚེས་གྲངས་དེ་བེད་སྤྱོད་བྱས་པ་ལས་ཁ་སྣོན་བྱས་པའི་ APKs གསར་པའི་དུས་ཚོས་བེད་སྤྱོད་མ་བྱེད།" msgid "Use date from apk instead of current time for newly added apks" -msgstr "apk རང་གི་ཚེས་གྲངས་དེ་བེད་སྤྱོད་བྱས་པ་ལས་ཁ་སྣོན་བྱས་པའི་apk གསར་པའི་དུས་ཚོས་བེད་སྤྱོད་མ་བྱེད།" +msgstr "" +"apk རང་གི་ཚེས་གྲངས་དེ་བེད་སྤྱོད་བྱས་པ་ལས་ཁ་སྣོན་བྱས་པའི་apk གསར་པའི་དུས་ཚོས་བེད་སྤྱོད་མ་བྱེད།" #: ../fdroidserver/server.py ../fdroidserver/upload.py #, python-brace-format @@ -1577,7 +1671,8 @@ msgstr "" #: ../fdroidserver/common.py -msgid "Using Java's jarsigner, not recommended for verifying APKs! Use apksigner" +msgid "" +"Using Java's jarsigner, not recommended for verifying APKs! Use apksigner" msgstr "" #: ../fdroidserver/init.py @@ -1607,8 +1702,11 @@ msgstr "ཡིག་ཚགས་ཀྱི་རྒྱབ་ལྗོངས་ལོ་རྒྱུས་སྐྱོན་སྲིད་པ་རྣམས་པ་ཉེན་བརྡ་གཏོང་།" #: ../fdroidserver/update.py -msgid "When configured for signed indexes, create only unsigned indexes at this stage" -msgstr "བརྡ་སྟོན་པའི་མིང་རྟགས་དེ་སྒྲིག་བཀོད་བྱས་ཚར་ན། གནས་སྐབས་མིང་རྟགས་མ་བཀོད་པའི་བརྡ་སྟོན་རྣམས་བཟོས།" +msgid "" +"When configured for signed indexes, create only unsigned indexes at this " +"stage" +msgstr "" +"བརྡ་སྟོན་པའི་མིང་རྟགས་དེ་སྒྲིག་བཀོད་བྱས་ཚར་ན། གནས་སྐབས་མིང་རྟགས་མ་བཀོད་པའི་བརྡ་སྟོན་རྣམས་བཟོས།" msgid "X.509 'Distiguished Name' used when generating keys" msgstr "X.509 'ཁྱད་པར་ཅན་གྱི་མིང་' ལྡེ་མིག་བཟོས་པའི་སྐབས་ལ་བེད་སྤྱོད་བྱེད།" @@ -1797,12 +1895,17 @@ #: /usr/lib/python3.5/argparse.py /usr/lib/python3.6/argparse.py #, python-format -msgid "invalid option string %(option)r: must start with a character %(prefix_chars)r" -msgstr "ཁུངས་ལྡན་མིན་པའི་ཚིག་སྒྲུབ་གདམ་ཀ། %(option)r: ཁྱད་ཆོས་དང་མཉམ་དུ་འགོ་བཙུགས། %(prefix_chars)r" +msgid "" +"invalid option string %(option)r: must start with a character " +"%(prefix_chars)r" +msgstr "" +"ཁུངས་ལྡན་མིན་པའི་ཚིག་སྒྲུབ་གདམ་ཀ། %(option)r: ཁྱད་ཆོས་དང་མཉམ་དུ་འགོ་བཙུགས། " +"%(prefix_chars)r" #: ../fdroidserver/server.py #, python-brace-format -msgid "local_copy_dir does not end with \"fdroid\", perhaps you meant: \"{path}\"" +msgid "" +"local_copy_dir does not end with \"fdroid\", perhaps you meant: \"{path}\"" msgstr "local_copy_dir \"fdroid\"གིས་མཇུག་སྐྱོང་མིན་འདུག་ : \"{path}1\"" #: ../fdroidserver/server.py @@ -1857,7 +1960,9 @@ #: ../fdroidserver/install.py #, python-format msgid "option %s: If you really want to install all the signed apps, use --all" -msgstr "གདམ་ཀ %s 1: གལ་ཏེ་ཁྱེད་ཀྱིས་མིང་རྟགས་བཀོད་པའི་མཉེན་ཆས་རིགས་ཚང་མ་ངེས་པར་དུ་སྒྲིག་བཅུག་བྱེད་འདོད་ཡོད་། བེད་སྤྱོད་ --ཚང་མ།" +msgstr "" +"གདམ་ཀ %s 1: གལ་ཏེ་ཁྱེད་ཀྱིས་མིང་རྟགས་བཀོད་པའི་མཉེན་ཆས་རིགས་ཚང་མ་ངེས་པར་དུ་སྒྲིག་བཅུག་བྱེད་འདོད་" +"ཡོད་། བེད་སྤྱོད་ --ཚང་མ།" #: /usr/lib/python3.5/optparse.py /usr/lib/python3.6/optparse.py #, python-format @@ -1914,13 +2019,21 @@ #: ../fdroidserver/signatures.py #, python-brace-format -msgid "refuse downloading via insecure HTTP connection (use HTTPS or specify --no-https-check): {apkfilename}" -msgstr "བདེ་ཆགས་མེད་པའི་HTTPMམཐུད་ཀ་རྒྱུད་དེ་ཕབ་བཤུས་ངོས་ལེན་མེད། (HTTPS བེད་སྤྱོད་དང་ཡང་ན་དམིགས་སྟོན་། --no-https-check){apkfilename}" +msgid "" +"refuse downloading via insecure HTTP connection (use HTTPS or specify --no-" +"https-check): {apkfilename}" +msgstr "" +"བདེ་ཆགས་མེད་པའི་HTTPMམཐུད་ཀ་རྒྱུད་དེ་ཕབ་བཤུས་ངོས་ལེན་མེད། (HTTPS བེད་སྤྱོད་དང་ཡང་ན་དམིགས་སྟོན་། " +"--no-https-check){apkfilename}" #: ../fdroidserver/signatures.py #, python-brace-format -msgid "refuse downloading via insecure http connection (use https or specify --no-https-check): {apkfilename}" -msgstr "བེད་ཆགས་མེད་པའི་དྲྭ་རྒྱའི་ཁ་བྱང་http ནས་ཕབ་ལེན་བཀག། (use https or specify --no-https-check): {apkfilename}" +msgid "" +"refuse downloading via insecure http connection (use https or specify --no-" +"https-check): {apkfilename}" +msgstr "" +"བེད་ཆགས་མེད་པའི་དྲྭ་རྒྱའི་ཁ་བྱང་http ནས་ཕབ་ལེན་བཀག། (use https or specify --no-https-" +"check): {apkfilename}" #: ../fdroidserver/server.py ../fdroidserver/upload.py #, python-brace-format Binary files /tmp/tmpCoX7hp/hZW9rVCDMC/fdroidserver-1.0.2/locale/de/LC_MESSAGES/fdroidserver.mo and /tmp/tmpCoX7hp/RzjpYOWXQL/fdroidserver-1.0.6/locale/de/LC_MESSAGES/fdroidserver.mo differ diff -Nru fdroidserver-1.0.2/locale/de/LC_MESSAGES/fdroidserver.po fdroidserver-1.0.6/locale/de/LC_MESSAGES/fdroidserver.po --- fdroidserver-1.0.2/locale/de/LC_MESSAGES/fdroidserver.po 2018-02-22 14:40:02.000000000 +0000 +++ fdroidserver-1.0.6/locale/de/LC_MESSAGES/fdroidserver.po 2018-05-25 11:52:25.000000000 +0000 @@ -3,7 +3,20 @@ # FIRST AUTHOR , YEAR. # msgid "" -msgstr "Project-Id-Version: fdroidserver 0.9\nReport-Msgid-Bugs-To: team@f-droid.org\nPOT-Creation-Date: 2018-02-13 09:01+0100\nPO-Revision-Date: 2018-02-14 20:36+0000\nLast-Translator: Andreas Kleinert \nLanguage-Team: German \nLanguage: de\nMIME-Version: 1.0\nContent-Type: text/plain; charset=UTF-8\nContent-Transfer-Encoding: 8bit\nPlural-Forms: nplurals=2; plural=n != 1;\nX-Generator: Weblate 2.19-dev\n" +msgstr "" +"Project-Id-Version: fdroidserver 0.9\n" +"Report-Msgid-Bugs-To: https://gitlab.com/fdroid/fdroidserver/issues\n" +"POT-Creation-Date: 2018-02-13 09:01+0100\n" +"PO-Revision-Date: 2018-05-17 21:10+0000\n" +"Last-Translator: Ceeee \n" +"Language-Team: German \n" +"Language: de\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 3.0-dev\n" #: ../fdroidserver/nightly.py msgid "" @@ -11,14 +24,17 @@ "SSH Public Key to be used as Deploy Key:" msgstr "" "\n" -"Öffentlicher SSH-Schlüssel, der als Bereitstellungsschlüssel verwendet werden soll:" +"Öffentlicher SSH-Schlüssel, der als Bereitstellungsschlüssel verwendet " +"werden soll:" #: ../fdroidserver/nightly.py #, python-brace-format msgid "" "\n" "{path} encoded for the DEBUG_KEYSTORE secret variable:" -msgstr "\n{path} kodiert für die geheime Variable DEBUG_KEYSTORE:" +msgstr "" +"\n" +"{path} kodiert für die geheime Variable DEBUG_KEYSTORE:" #: ../fdroidserver/lint.py #, python-format @@ -121,7 +137,8 @@ #: ../fdroidserver/common.py #, python-brace-format msgid "'{aapt}' is too old, fdroid requires build-tools-{version} or newer!" -msgstr "„{aapt}” ist veraltet, fdroid benötigt build-tools-{version} oder neuer!" +msgstr "" +"„{aapt}” ist veraltet, fdroid benötigt build-tools-{version} oder neuer!" #: ../fdroidserver/install.py #, python-brace-format @@ -130,8 +147,12 @@ #: ../fdroidserver/common.py #, python-brace-format -msgid "'{field}' will be in random order! Use () or [] brackets if order is important!" -msgstr "Das Feld „{field}” wird in zufälliger Reihenfolge angezeigt! Verwenden Sie runde ( ) oder eckige [ ] Klammern, wenn die Reihenfolge wichtig ist!" +msgid "" +"'{field}' will be in random order! Use () or [] brackets if order is " +"important!" +msgstr "" +"Das Feld „{field}” wird in zufälliger Reihenfolge angezeigt! Verwenden Sie " +"runde ( ) oder eckige [ ] Klammern, wenn die Reihenfolge wichtig ist!" #: ../fdroidserver/common.py #, python-brace-format @@ -141,7 +162,8 @@ #: ../fdroidserver/metadata.py #, python-brace-format msgid "'{value}' is not a valid {field} in {appid}. Regex pattern: {pattern}" -msgstr "„{value}” ist kein gültiges {field} in {appid}. Regex-Muster: {pattern}" +msgstr "" +"„{value}” ist kein gültiges {field} in {appid}. Regex-Muster: {pattern}" #: ../fdroidserver/checkupdates.py #, python-brace-format @@ -154,7 +176,9 @@ #: ../fdroidserver/metadata.py msgid ".fdroid.txt is not supported! Convert to .fdroid.yml or .fdroid.json." -msgstr ".fdroid.txt wird nicht unterstützt! Konvertieren Sie in .fdroid.yml oder .fdroid.json." +msgstr "" +".fdroid.txt wird nicht unterstützt! Konvertieren Sie in .fdroid.yml oder ." +"fdroid.json." #: ../fdroidserver/lint.py msgid "/issues is missing" @@ -174,7 +198,8 @@ #: ../fdroidserver/update.py msgid "Add a repo signing key to an unsigned repo" -msgstr "Füge einen Repository-Signierschlüssel zu einem unsignierten Repository hinzu" +msgstr "" +"Füge einen Repository-Signierschlüssel zu einem unsignierten Repository hinzu" #: ../fdroidserver/update.py msgid "Add skeleton metadata files for APKs that are missing them" @@ -190,8 +215,12 @@ msgstr "Pseudonym des Repository-Signierchlüssels im Schlüsselspeicher" #: ../fdroidserver/import.py -msgid "Allows a different revision (or git branch) to be specified for the initial import" -msgstr "Ermöglicht die Bestimmung unterschiedlicher Überarbeitungen (oder Git-Zweige) für den Erstimport" +msgid "" +"Allows a different revision (or git branch) to be specified for the initial " +"import" +msgstr "" +"Ermöglicht die Bestimmung unterschiedlicher Überarbeitungen (oder Git-" +"Zweige) für den Erstimport" #: ../fdroidserver/mirror.py msgid "Also mirror the full archive section" @@ -247,14 +276,20 @@ msgstr "Archivierung von {apkfilename} mit ungültiger Signatur!" #: ../fdroidserver/mirror.py -msgid "Base URL to mirror, can include the index signing key using the query string: ?fingerprint=" -msgstr "Basis-URL zum Spiegeln, kann den Index-Signierungsschlüssel mit Hilfe des Abfrage-Strings enthalten: ?fingerprint=" +msgid "" +"Base URL to mirror, can include the index signing key using the query " +"string: ?fingerprint=" +msgstr "" +"Basis-URL zum Spiegeln, kann den Index-Signierungsschlüssel mit Hilfe des " +"Abfrage-Strings enthalten: ?fingerprint=" #. Translators: https://developer.android.com/guide/topics/manifest/manifest-element.html#vname #: ../fdroidserver/lint.py #, python-brace-format msgid "Branch '{branch}' used as commit in build '{versionName}'" -msgstr "Zweig „{branch}”, der als Bestätigung im Build verwendet wird „{versionName}”." +msgstr "" +"Zweig „{branch}”, der als Bestätigung im Build verwendet wird " +"„{versionName}”." #: ../fdroidserver/lint.py #, python-brace-format @@ -271,7 +306,9 @@ #: ../fdroidserver/lint.py msgid "Build generated by `fdroid import` - remove disable line once ready" -msgstr "Build durch „fdroid import” erstellt - Entfernen Sie die Zeile „Deaktiviert”, sobald sie fertig ist." +msgstr "" +"Build durch „fdroid import” erstellt - Entfernen Sie die Zeile " +"„Deaktiviert”, sobald sie fertig ist." #: ../fdroidserver/build.py msgid "Build only the latest version of each package" @@ -279,8 +316,12 @@ #: ../fdroidserver/metadata.py #, python-brace-format -msgid "Build should have comma-separated versionName and versionCode, not \"{value}\", in {linedesc}" -msgstr "Build sollte kommagetrennte versionName und versionCode enthalten, nicht „{value}”, in {linedesc}" +msgid "" +"Build should have comma-separated versionName and versionCode, not " +"\"{value}\", in {linedesc}" +msgstr "" +"Build sollte kommagetrennte versionName und versionCode enthalten, nicht " +"„{value}”, in {linedesc}" #: ../fdroidserver/init.py #, python-format @@ -290,8 +331,10 @@ #: ../fdroidserver/build.py msgid "Can't build due to {} error while scanning" 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." +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/metadata.py #, python-brace-format @@ -320,7 +363,9 @@ #: ../fdroidserver/metadata.py #, python-brace-format msgid "Cannot write \"{path}\", not an accepted format, use: {formats}" -msgstr "„{path}” konnte nicht geschrieben werden, kein akzeptiertes Format, verwenden Sie: {formats}" +msgstr "" +"„{path}” konnte nicht geschrieben werden, kein akzeptiertes Format, " +"verwenden Sie: {formats}" #: ../fdroidserver/lint.py msgid "Categories are not set" @@ -337,8 +382,12 @@ #: ../fdroidserver/update.py #, python-brace-format -msgid "Checking archiving for {appid} - apks:{integer}, keepversions:{keep}, archapks:{arch}" -msgstr "Archivierung auf {appid} überprüfen - apks:{integer}, keepversions:{keep}, archapks:{arch}" +msgid "" +"Checking archiving for {appid} - apks:{integer}, keepversions:{keep}, " +"archapks:{arch}" +msgstr "" +"Archivierung auf {appid} überprüfen - apks:{integer}, keepversions:{keep}, " +"archapks:{arch}" #: ../fdroidserver/dscanner.py msgid "Clean after all scans have finished" @@ -354,7 +403,9 @@ #: ../fdroidserver/update.py msgid "Clean update - don't uses caches, reprocess all APKs" -msgstr "Sauber aktualisieren - ohne Verwendung der Zwischenspeicher, alle APKs wiederaufbereiten" +msgstr "" +"Sauber aktualisieren - ohne Verwendung der Zwischenspeicher, alle APKs " +"wiederaufbereiten" #: ../fdroidserver/import.py msgid "Comma separated list of categories." @@ -399,7 +450,9 @@ #: ../fdroidserver/update.py msgid "Cowardily refusing to overwrite existing signing key setup!" -msgstr "Es ist ungehörig, bestehende Signaturschlüssel-Einstellungen zu überschreiben!" +msgstr "" +"Es ist ungehörig, bestehende Signaturschlüssel-Einstellungen zu " +"überschreiben!" #: ../fdroidserver/update.py msgid "Create a repo signing key in a keystore" @@ -470,7 +523,9 @@ #: ../fdroidserver/lint.py #, python-format msgid "Description has a list (%s) but it isn't bulleted (*) nor numbered (#)" -msgstr "Beschreibung enthält eine Liste (%s), ist aber weder aufgezählt (*) noch nummeriert (#)" +msgstr "" +"Beschreibung enthält eine Liste (%s), ist aber weder aufgezählt (*) noch " +"nummeriert (#)" #: ../fdroidserver/lint.py #, python-brace-format @@ -495,8 +550,12 @@ msgstr "Mache auf Logs bezogen nichts" #: ../fdroidserver/build.py -msgid "Don't refresh the repository, useful when testing a build with no internet connection" -msgstr "Keine Aktualisierung des Repositorys. Nützlich, wenn ein Build ohne Internetverbindung getestet wird" +msgid "" +"Don't refresh the repository, useful when testing a build with no internet " +"connection" +msgstr "" +"Keine Aktualisierung des Repositorys. Nützlich, wenn ein Build ohne " +"Internetverbindung getestet wird" #: ../fdroidserver/server.py ../fdroidserver/nightly.py #: ../fdroidserver/upload.py @@ -513,7 +572,9 @@ #: ../fdroidserver/common.py msgid "Downloading the repository already failed once, not trying again." -msgstr "Herunterladen des Repositories bereits einmal fehlgeschlagen, versuche es nicht nochmal." +msgstr "" +"Herunterladen des Repositories bereits einmal fehlgeschlagen, versuche es " +"nicht nochmal." #: ../fdroidserver/verify.py #, python-brace-format @@ -522,8 +583,10 @@ #: ../fdroidserver/metadata.py #, python-brace-format -msgid "Duplicate build recipe found for versionCode {versionCode} in {linedesc}" -msgstr "Doppelte Build-Rezeptur für versionCode {versionCode} in {linedesc} gefunden" +msgid "" +"Duplicate build recipe found for versionCode {versionCode} in {linedesc}" +msgstr "" +"Doppelte Build-Rezeptur für versionCode {versionCode} in {linedesc} gefunden" #: ../fdroidserver/lint.py #, python-brace-format @@ -538,7 +601,10 @@ msgid "" "ERROR: this command should never be used to mirror f-droid.org!\n" "A full mirror of f-droid.org requires more than 200GB." -msgstr "FEHLER: Dieser Befehl sollte niemals verwendet werden, um f-droid.org zu spiegeln!\nEin vollständiger Spiegel von f-droid.org erfordert mehr als 200 GB." +msgstr "" +"FEHLER: Dieser Befehl sollte niemals verwendet werden, um f-droid.org zu " +"spiegeln!\n" +"Ein vollständiger Spiegel von f-droid.org erfordert mehr als 200 GB." #: ../fdroidserver/nightly.py msgid "ERROR: unsupported CI type, patches welcome!" @@ -554,7 +620,9 @@ msgid "" "Enter the path to the Android SDK (%s) here:\n" "> " -msgstr "Geben Sie hier den Pfad zum Android-SDK (%s) ein:\n> " +msgstr "" +"Geben Sie hier den Pfad zum Android-SDK (%s) ein:\n" +"> " #: ../fdroidserver/server.py ../fdroidserver/checkupdates.py #: ../fdroidserver/upload.py @@ -629,7 +697,7 @@ #: ../fdroidserver/signatures.py #, python-brace-format msgid "Fetched signatures for '{apkfilename}' -> '{sigdir}'" -msgstr "" +msgstr "Signaturen für {apkfilename} -> {sigdir} abgerufen" #: ../fdroidserver/verify.py ../fdroidserver/stats.py ../fdroidserver/update.py #: ../fdroidserver/rewritemeta.py ../fdroidserver/build.py @@ -647,8 +715,12 @@ msgstr "Verbotene HTML-Befehle" #: ../fdroidserver/build.py -msgid "Force build of disabled apps, and carries on regardless of scan problems. Only allowed in test mode." -msgstr "Erstellung deaktivierter Apps erzwingen und ungeachtet von Scan-Problemen ausüben. Nur im Testmodus erlaubt." +msgid "" +"Force build of disabled apps, and carries on regardless of scan problems. " +"Only allowed in test mode." +msgstr "" +"Erstellung deaktivierter Apps erzwingen und ungeachtet von Scan-Problemen " +"ausüben. Nur im Testmodus erlaubt." #: ../fdroidserver/build.py #, python-brace-format @@ -658,16 +730,16 @@ #: ../fdroidserver/update.py #, python-brace-format msgid "Found \"{path}\" graphic without metadata for app \"{name}\"!" -msgstr "" +msgstr "Grafik \"{path}\" ohne Metadaten für App \"{name}\" gefunden!" #: ../fdroidserver/common.py msgid "Found invalid appids in arguments" -msgstr "" +msgstr "Ungültige Appids in Argumenten gefunden" #. Translators: https://developer.android.com/guide/topics/manifest/manifest-element.html#vcode #: ../fdroidserver/common.py msgid "Found invalid versionCodes for some apps" -msgstr "" +msgstr "Ungültige versionCodes für einige Apps gefunden" #: ../fdroidserver/metadata.py #, python-brace-format @@ -676,21 +748,21 @@ #: ../fdroidserver/index.py msgid "Found multiple signing certificates for repository." -msgstr "" +msgstr "Mehrere Signaturzertifikate für das Repository gefunden." #: ../fdroidserver/update.py #, python-brace-format msgid "Found multiple signing certificates in {path}" -msgstr "" +msgstr "Mehrere Signaturzertifikate in {path} gefunden" #: ../fdroidserver/index.py msgid "Found no signing certificates for repository." -msgstr "" +msgstr "Es wurden keine Signaturzertifikate für das Repository gefunden." #: ../fdroidserver/lint.py #, python-format msgid "Found non-file at %s" -msgstr "" +msgstr "Eine Nicht-Datei gefunden bei %s" #: ../fdroidserver/update.py #, python-brace-format @@ -700,57 +772,58 @@ #: ../fdroidserver/common.py #, python-format msgid "Git checkout of '%s' failed" -msgstr "" +msgstr "Git checkout von '%s' fehlgeschlagen" #: ../fdroidserver/common.py msgid "Git clean failed" -msgstr "" +msgstr "Git clean fehlgeschlagen" #: ../fdroidserver/common.py msgid "Git fetch failed" -msgstr "" +msgstr "Git fetch fehlgeschlagen" #: ../fdroidserver/common.py msgid "Git remote set-head failed" -msgstr "" +msgstr "Git remote set-head fehlgeschlagen" #: ../fdroidserver/common.py msgid "Git reset failed" -msgstr "" +msgstr "Git reset fehlgeschlagen" #: ../fdroidserver/common.py msgid "Git submodule sync failed" -msgstr "" +msgstr "Git submodule sync fehlgeschlagen" #: ../fdroidserver/common.py msgid "Git submodule update failed" -msgstr "" +msgstr "Git submodule update fehlgeschlagen" #: ../fdroidserver/common.py msgid "HTTPS must be used with Subversion URLs!" -msgstr "" +msgstr "HTTPS muss bei Subversion-URLs verwendet werden!" #: ../fdroidserver/index.py msgid "Ignoring package without metadata: " -msgstr "" +msgstr "Ignoriere Paket ohne Metadaten: " #: ../fdroidserver/update.py #, python-brace-format msgid "Ignoring stale cache data for {apkfilename}" -msgstr "" +msgstr "Ignoriere veraltete Cachedaten für {apkfilename}" #: ../fdroidserver/rewritemeta.py #, python-brace-format msgid "Ignoring {ext} file at '{path}'" -msgstr "" +msgstr "Ignoriere die Datei {ext} bei '{path}'" #: ../fdroidserver/update.py msgid "Include APKs that are signed with disabled algorithms like MD5" msgstr "" +"APKs einschliessen, die mit deaktivierten Algorithmen wie MD5 signiert sind" #: ../fdroidserver/common.py msgid "Initialising submodules" -msgstr "" +msgstr "Initialisiere Submodule" #: ../fdroidserver/install.py msgid "Install all signed applications available" @@ -768,7 +841,7 @@ #: ../fdroidserver/install.py #, python-brace-format msgid "Installing '{apkfilename}' on {dev}..." -msgstr "" +msgstr "Installiere '{apkfilename}' auf {dev}...." #: ../fdroid msgid "Interact with the repo HTTP server" @@ -785,77 +858,87 @@ #: ../fdroidserver/metadata.py #, python-format msgid "Invalid boolean '%s'" -msgstr "" +msgstr "Ungültiger boolescher Wert '%s'" #: ../fdroidserver/metadata.py #, python-brace-format msgid "Invalid build flag at {line} in {linedesc}" -msgstr "" +msgstr "Ungültiges Build-Flag bei {line} in {linedesc}" #: ../fdroidserver/metadata.py #, python-brace-format msgid "Invalid build format: {value} in {name}" -msgstr "" +msgstr "Ungültiges Buildformat: {value} in {name}" #: ../fdroidserver/lint.py msgid "Invalid bulleted list" -msgstr "" +msgstr "Ungültige Aufzählung" #: ../fdroidserver/lint.py #, python-format -msgid "Invalid license tag \"%s\"! Use only tags from https://spdx.org/license-list" +msgid "" +"Invalid license tag \"%s\"! Use only tags from https://spdx.org/license-list" msgstr "" +"Ungültiges Lizenz-Tag \"%s\"! Verwenden Sie nur Tags von https://spdx.org/" +"license-list" #: ../fdroidserver/lint.py msgid "Invalid link - use [http://foo.bar Link title] or [http://foo.bar]" msgstr "" +"Ungültiger Link - verwenden Sie [http://foo.bar Linktitel] oder [http://foo." +"bar]" #: ../fdroidserver/metadata.py #, python-format msgid "Invalid metadata in %s:%d" -msgstr "" +msgstr "Ungültige Metadaten in %s:%d" #: ../fdroidserver/metadata.py msgid "Invalid metadata in: " -msgstr "" +msgstr "Ungültige Metadaten in: " #: ../fdroidserver/common.py #, python-format msgid "Invalid name for published file: %s" -msgstr "" +msgstr "Ungültiger Name für die veröffentlichte Datei: %s" #: ../fdroidserver/common.py #, python-brace-format msgid "Invalid package name {0}" -msgstr "" +msgstr "Ungültiger Paketname {0}" #: ../fdroidserver/metadata.py #, python-brace-format msgid "Invalid versionCode: \"{versionCode}\" is not an integer!" -msgstr "" +msgstr "Ungültiger Versionscode: \"{versionCode}\" ist keine ganze Zahl!" #: ../fdroidserver/common.py #, python-brace-format msgid "JAR signature failed to verify: {path}" -msgstr "" +msgstr "JAR-Signatur konnte nicht überprüft werden: {path}" #: ../fdroidserver/common.py #, python-brace-format msgid "JAR signature verified: {path}" -msgstr "" +msgstr "JAR-Signatur verifiziert: {path}" #: ../fdroidserver/publish.py ../fdroidserver/update.py #: ../fdroidserver/mirror.py msgid "Java JDK not found! Install in standard location or set java_paths!" msgstr "" +"Java JDK nicht gefunden! Installieren Sie es in einem Standardordner oder " +"setzen Sie java_paths!" #: ../fdroidserver/signindex.py -msgid "Java jarsigner not found! Install in standard location or set java_paths!" +msgid "" +"Java jarsigner not found! Install in standard location or set java_paths!" msgstr "" +"Java jarsigner nicht gefunden! Installieren Sie es in einem Standardordner " +"oder setzen Sie java_paths!" #: ../fdroidserver/lint.py msgid "Javascript in HTML src attributes" -msgstr "" +msgstr "Javascript in HTML src-Attributen" #: ../fdroidserver/init.py msgid "Keystore for signing key:\t" @@ -863,12 +946,16 @@ #: ../fdroidserver/lint.py #, python-brace-format -msgid "Last used commit '{commit}' looks like a tag, but Update Check Mode is '{ucm}'" +msgid "" +"Last used commit '{commit}' looks like a tag, but Update Check Mode is " +"'{ucm}'" msgstr "" +"Der zuletzt verwendete Commit '{commit}' sieht aus wie ein Tag, aber der " +"Update Check Modus ist '{ucm}'" #: ../fdroidserver/lint.py msgid "Liberapay donation methods belong in the LiberapayID flag" -msgstr "" +msgstr "Liberapay-Spendenmethoden gehören in das LiberapayID-Flag" #: ../fdroidserver/rewritemeta.py msgid "List files that would be reformatted" @@ -880,24 +967,24 @@ #: ../fdroidserver/index.py msgid "Malformed repository mirrors." -msgstr "" +msgstr "Fehlerhafte Repository Mirrors." #: ../fdroidserver/server.py msgid "Malformed serverwebroot line:" -msgstr "" +msgstr "Fehlerhafte serverwebroot Zeile:" #: ../fdroidserver/gpgsign.py msgid "Missing output directory" -msgstr "" +msgstr "Fehlendes Ausgabeverzeichnis" #: ../fdroidserver/lint.py #, python-format msgid "Name '%s' is just the auto name - remove it" -msgstr "" +msgstr "Name '%s' ist nur der automatische Name - entfernen Sie ihn" #: ../fdroidserver/common.py msgid "No 'config.py' found, using defaults." -msgstr "" +msgstr "Keine 'config.py' gefunden, nutze Standardeinstellungen." #: ../fdroidserver/common.py msgid "No Android SDK found!" @@ -906,23 +993,24 @@ #: ../fdroidserver/import.py msgid "No android or kivy project could be found. Specify --subdir?" msgstr "" +"Es konnte kein Android- oder Kivy-Projekt gefunden werden. --subdir angeben?" #: ../fdroidserver/install.py msgid "No attached devices found" -msgstr "" +msgstr "Keine angeschlossenen Geräte gefunden" #: ../fdroidserver/metadata.py #, python-brace-format msgid "No commit specified for {versionName} in {linedesc}" -msgstr "" +msgstr "Kein Commit angegeben für {versionName} in {linedesc}" #: ../fdroidserver/index.py msgid "No fingerprint in URL." -msgstr "" +msgstr "Kein Fingerabdruck in der URL." #: ../fdroidserver/common.py msgid "No git submodules available" -msgstr "" +msgstr "Keine Git-Submodule verfügbar" #: ../fdroidserver/import.py msgid "No information found." @@ -930,57 +1018,59 @@ #: ../fdroidserver/lint.py msgid "No need to specify that the app is Free Software" -msgstr "" +msgstr "Sie müssen nicht angeben, dass die App freie Software ist" #: ../fdroidserver/lint.py msgid "No need to specify that the app is for Android" -msgstr "" +msgstr "Sie müssen nicht angeben, dass die App für Android ist" #: ../fdroidserver/server.py msgid "No option set! Edit your config.py to set at least one of these:" msgstr "" +"Keine Option gesetzt! Bearbeiten Sie Ihre config.py, um mindestens eine " +"davon zu setzen:" #: ../fdroidserver/common.py msgid "No packages specified" -msgstr "" +msgstr "Keine Pakete angegeben" #: ../fdroidserver/install.py #, python-format msgid "No signed apk available for %s" -msgstr "" +msgstr "Keine signierte Apk für %s verfügbar" #: ../fdroidserver/install.py msgid "No signed output directory - nothing to do" -msgstr "" +msgstr "Kein signiertes Ausgabeverzeichnis - nichts zu tun" #: ../fdroidserver/update.py #, python-brace-format msgid "No signing certificates found in {path}" -msgstr "" +msgstr "Keine Signaturzertifikate in {path} gefunden" #: ../fdroidserver/common.py #, python-format msgid "No such package: %s" -msgstr "" +msgstr "Kein solches Paket: %s" #. Translators: https://developer.android.com/guide/topics/manifest/manifest-element.html#vcode #: ../fdroidserver/common.py #, python-brace-format msgid "No such versionCode {versionCode} for app {appid}" -msgstr "" +msgstr "Kein Versionscode {versionCode} für App {appid}" #: ../fdroidserver/verify.py ../fdroidserver/publish.py msgid "No unsigned directory - nothing to do" -msgstr "" +msgstr "Kein unsigniertes Verzeichnis - nichts zu tun" #: ../fdroidserver/signindex.py msgid "Nothing to do" -msgstr "" +msgstr "Keine zu erledigenden Aufgaben" #: ../fdroidserver/checkupdates.py #, python-brace-format msgid "Nothing to do for {appid}." -msgstr "" +msgstr "Keine zu erledigenden Aufgaben für {appid}." #: ../fdroidserver/init.py msgid "Now set these in config.py:" @@ -990,25 +1080,26 @@ #: ../fdroidserver/update.py #, python-brace-format msgid "OBB file has newer versionCode({integer}) than any APK:" -msgstr "" +msgstr "Die OBB-Datei hat eine neuere VersionCode ({integer}) als jedes APK:" #: ../fdroidserver/update.py msgid "OBB filename must start with \"main.\" or \"patch.\":" -msgstr "" +msgstr "Der OBB Dateiname muss mit \"main.\" oder \"patch.\" beginnen:" #: ../fdroidserver/update.py msgid "OBB's packagename does not match a supported APK:" -msgstr "" +msgstr "Der OBB-Packetname stimmt mit keinem unterstützten APK überein:" #: ../fdroidserver/common.py #, python-brace-format msgid "Old APK signature failed to verify: {path}" -msgstr "" +msgstr "Alte APK-Signatur konnte nicht überprüft werden: {path}" #: ../fdroidserver/update.py #, python-brace-format msgid "Only PNG and JPEG are supported for graphics, found: {path}" msgstr "" +"Nur PNG und JPEG werden für Grafiken unterstützt, gefunden wurde: {path}" #: ../fdroidserver/checkupdates.py msgid "Only print differences with the Play Store" @@ -1033,7 +1124,7 @@ #: ../fdroidserver/common.py #, python-brace-format msgid "Parsing manifest at '{path}'" -msgstr "" +msgstr "Analysiere Manifest bei {path}" #: ../fdroidserver/common.py msgid "Password required with username" @@ -1041,14 +1132,20 @@ #: ../fdroidserver/import.py msgid "Path to main Android project subdirectory, if not in root." -msgstr "Pfad zum Unterverzeichnis des Android-Hauptprojekts, wenn es nicht im Stammverzeichnis ist." +msgstr "" +"Pfad zum Unterverzeichnis des Android-Hauptprojekts, wenn es nicht im " +"Stammverzeichnis ist." msgid "Path to main android project subdirectory, if not in root." -msgstr "Pfad zum zentralen Androidprojekt-Unterverzeichnis, wenn es nicht im Stammverzeichnis ist." +msgstr "" +"Pfad zum zentralen Androidprojekt-Unterverzeichnis, wenn es nicht im " +"Stammverzeichnis ist." #: ../fdroidserver/init.py msgid "Path to the Android SDK (sometimes set in ANDROID_HOME)" -msgstr "Pfad zum Android-SDK (Softwareentwicklungsbaukasten) (mitunter in ANDROID_HOME festgelegt)" +msgstr "" +"Pfad zum Android-SDK (Softwareentwicklungsbaukasten) (mitunter in " +"ANDROID_HOME festgelegt)" #: ../fdroidserver/btlog.py msgid "Path to the git repo to use as the log" @@ -1068,16 +1165,17 @@ #: ../fdroidserver/nightly.py msgid "Print the secret variable to the terminal for easy copy/paste" msgstr "" +"Drucken der geheimen Variable in das Terminal zum einfachen Kopieren/Einfügen" #: ../fdroidserver/metadata.py #, python-brace-format msgid "Problem with description of {appid}: {error}" -msgstr "" +msgstr "Problem mit der Beschreibung von {appid}: {error}" #: ../fdroidserver/common.py #, python-brace-format msgid "Problem with xml at '{path}'" -msgstr "" +msgstr "Problem mit xml bei {path}" #: ../fdroidserver/checkupdates.py msgid "Process auto-updates" @@ -1086,12 +1184,12 @@ #: ../fdroidserver/publish.py ../fdroidserver/update.py #, python-brace-format msgid "Processing {apkfilename}" -msgstr "" +msgstr "Verarbeite {apkfilename}" #: ../fdroidserver/checkupdates.py ../fdroidserver/scanner.py #, python-brace-format msgid "Processing {appid}" -msgstr "" +msgstr "Verarbeite {appid}" #: ../fdroidserver/update.py msgid "Produce human-readable XML/JSON for index files" @@ -1107,7 +1205,7 @@ #: ../fdroidserver/lint.py msgid "Punctuation should be avoided" -msgstr "" +msgstr "Interpunktion sollte vermieden werden" #: ../fdroidserver/btlog.py msgid "Push the log to this git remote repository" @@ -1121,7 +1219,7 @@ #: ../fdroidserver/server.py ../fdroidserver/upload.py #, python-brace-format msgid "Pushing to {url}" -msgstr "" +msgstr "Pushen auf {url}" #: ../fdroid msgid "Quickly start a new repository" @@ -1139,39 +1237,53 @@ #: ../fdroidserver/common.py #, python-brace-format msgid "Reading minSdkVersion failed: \"{apkfilename}\"" -msgstr "" +msgstr "Lesen von minSdkVersion fehlgeschlagen: \"{apkfilename}\"" #. Translators: https://developer.android.com/guide/topics/manifest/manifest-element.html#vcode #. https://developer.android.com/guide/topics/manifest/manifest-element.html#vname #: ../fdroidserver/common.py #, python-brace-format -msgid "Reading packageName/versionCode/versionName failed, APK invalid: '{apkfilename}'" +msgid "" +"Reading packageName/versionCode/versionName failed, APK invalid: " +"'{apkfilename}'" msgstr "" +"Lesen von packageName/versionCode/versionName fehlgeschlagen, APK ungültig: " +"'{apkfilename}'" #: ../fdroidserver/update.py #, python-brace-format msgid "Reading {apkfilename} from cache" -msgstr "" +msgstr "Lese {apkfilename} aus dem Cache" #: ../fdroidserver/stats.py -msgid "Recalculate aggregate stats - use when changes have been made that would invalidate old cached data." -msgstr "Sammelstatistik neu berechnen - nach Änderungen anwenden, die alte zwischengespeicherte Daten entwerten würden." +msgid "" +"Recalculate aggregate stats - use when changes have been made that would " +"invalidate old cached data." +msgstr "" +"Sammelstatistik neu berechnen - nach Änderungen anwenden, die alte " +"zwischengespeicherte Daten entwerten würden." #: ../fdroidserver/common.py msgid "Removing specified files" -msgstr "" +msgstr "Entferne angegebene Dateien" #: ../fdroidserver/update.py 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" +msgstr "" +"APK-Dateien umbenennen, die nicht dem Muster „package.name_123.apk“ " +"entsprechen" #: ../fdroidserver/update.py msgid "Report on build data status" msgstr "Bericht zum Build-Datenstatus" #: ../fdroidserver/build.py -msgid "Reset and create a brand new build server, even if the existing one appears to be ok." -msgstr "Zurücksetzen und ganz neuen Build-Server einrichten, auch wenn der bestehende in Ordnung zu sein scheint." +msgid "" +"Reset and create a brand new build server, even if the existing one appears " +"to be ok." +msgstr "" +"Zurücksetzen und ganz neuen Build-Server einrichten, auch wenn der " +"bestehende in Ordnung zu sein scheint." #: ../fdroidserver/nightly.py #, python-brace-format @@ -1180,7 +1292,9 @@ #: ../fdroidserver/update.py msgid "Resize all the icons exceeding the max pixel size and exit" -msgstr "Größe aller Symbole ändern, die die maximale Pixelgröße überschreiten, und beenden" +msgstr "" +"Größe aller Symbole ändern, die die maximale Pixelgröße überschreiten, und " +"beenden" #: ../fdroidserver/common.py msgid "Restrict output to warnings and errors" @@ -1197,12 +1311,12 @@ #: ../fdroidserver/rewritemeta.py #, python-brace-format msgid "Rewriting '{appid}'" -msgstr "" +msgstr "Schreibe '{appid}' neu" #: ../fdroidserver/rewritemeta.py #, python-brace-format msgid "Rewriting '{appid}' to '{path}'" -msgstr "" +msgstr "Schreibe '{appid}' auf '{path}' neu" #: ../fdroidserver/lint.py msgid "Run rewritemeta to fix formatting" @@ -1210,12 +1324,12 @@ #: ../fdroidserver/server.py ../fdroidserver/upload.py msgid "Running first pass with MD5 checking disabled" -msgstr "" +msgstr "Erster Durchlauf mit MD5-Prüfung abgeschaltet" #: ../fdroidserver/mirror.py #, python-brace-format msgid "Running wget in {path}" -msgstr "" +msgstr "Ausführen von wget in {path}" #: ../fdroidserver/dscanner.py msgid "Scan only the latest version of each package" @@ -1228,47 +1342,51 @@ #: ../fdroidserver/scanner.py #, python-brace-format msgid "Scanner found {count} problems in {appid}:" -msgstr "" +msgstr "Scanner fand {count} Probleme in {appid}:" #: ../fdroidserver/scanner.py #, python-brace-format msgid "Scanner found {count} problems in {appid}:{versionCode}:" -msgstr "" +msgstr "Scanner fand {count} Probleme in {appid}:{versionCode}:" #: ../fdroidserver/build.py msgid "Scanner found {} problem" msgid_plural "Scanner found {} problems" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Scanner fand {count} Problem" +msgstr[1] "Scanner fand {count} Probleme" #: ../fdroidserver/common.py msgid "Set clock to that time using:" -msgstr "" +msgstr "Einstellen der Uhr auf diese Zeit mit:" #: ../fdroidserver/build.py #, python-brace-format msgid "Set open file limit to {integer}" -msgstr "" +msgstr "Setzen des Limits für geöffnete Dateien auf {integer}" #: ../fdroid msgid "Set up an app build for a nightly build repo" -msgstr "" +msgstr "Ein App-Build für einen nightly Build-Repo einrichten" #: ../fdroidserver/build.py msgid "Setting open file limit failed: " -msgstr "" +msgstr "Das Setzen des Limits für geöffnete Dateien ist fehlgeschlagen: " #: ../fdroidserver/build.py #, python-brace-format msgid "Setting {0} sec timeout for this build" -msgstr "" +msgstr "Stelle einen {0} Sek timeout für diesen Build ein" #: ../fdroidserver/build.py msgid "Setup an emulator, install the APK on it and perform a Drozer scan" -msgstr "Einen Emulator einrichten, die APK installieren und mit ihm eine Sicherheitsprüfung (Drozer scan) durchführen" +msgstr "" +"Einen Emulator einrichten, die APK installieren und mit ihm eine " +"Sicherheitsprüfung (Drozer scan) durchführen" msgid "Setup an emulator, install the apk on it and perform a drozer scan" -msgstr "Einen Emulator einrichten, die APK installieren und mit ihm eine Sicherheitsprüfung (Drozer scan) durchführen" +msgstr "" +"Einen Emulator einrichten, die APK installieren und mit ihm eine " +"Sicherheitsprüfung (Drozer scan) durchführen" #: ../fdroid msgid "Sign and place packages in the repo" @@ -1280,53 +1398,63 @@ #: ../fdroidserver/build.py msgid "Skip scanning the source code for binaries and other problems" -msgstr "Durchsuchen des Quellcodes nach Binärdateien und anderen Problemen überspringen" +msgstr "" +"Durchsuchen des Quellcodes nach Binärdateien und anderen Problemen " +"überspringen" #: ../fdroidserver/update.py #, python-brace-format msgid "Skipping '{apkfilename}' with invalid signature!" -msgstr "" +msgstr "Überspringen von '{apkfilename}' mit ungültiger Signatur!" #: ../fdroidserver/update.py #, python-brace-format msgid "Skipping index generation for {appid}" -msgstr "" +msgstr "Überspringe Indexerzeugung für {appid}" #: ../fdroidserver/update.py #, python-brace-format msgid "Skipping {apkfilename} with invalid signature!" -msgstr "" +msgstr "Überspringe '{apkfilename}' mit ungültiger Signatur!" #: ../fdroidserver/scanner.py #, python-brace-format msgid "Skipping {appid}: disabled" -msgstr "" +msgstr "Überspringen von {appid}: deaktiviert" #: ../fdroidserver/scanner.py #, python-brace-format msgid "Skipping {appid}: no builds specified" -msgstr "" +msgstr "Überspringe {appid}: keine Builds angegeben" #: ../fdroidserver/server.py ../fdroidserver/upload.py msgid "Specify a local folder to sync the repo to" -msgstr "Einen lokalen Ordner bestimmen, in dem das Repository synchronisiert wird" +msgstr "" +"Einen lokalen Ordner bestimmen, in dem das Repository synchronisiert wird" #: ../fdroidserver/server.py ../fdroidserver/upload.py msgid "Specify an identity file to provide to SSH for rsyncing" -msgstr "Eine Identitätsdatei bestimmen, die bei Re-Synchronisation an SSH übergeben wird" +msgstr "" +"Eine Identitätsdatei bestimmen, die bei Re-Synchronisation an SSH übergeben " +"wird" #: ../fdroidserver/update.py msgid "Specify editor to use in interactive mode. Default " -msgstr "Editor festlegen, der im interaktiven Modus verwendet werden soll. Standard " +msgstr "" +"Editor festlegen, der im interaktiven Modus verwendet werden soll. Standard " #, c-format msgid "Specify editor to use in interactive mode. Default %s" -msgstr "Editor festlegen, der im interaktiven Modus verwendet werden soll. Standard %s" +msgstr "" +"Editor festlegen, der im interaktiven Modus verwendet werden soll. Standard " +"%s" #: ../fdroidserver/update.py #, python-brace-format msgid "Specify editor to use in interactive mode. Default is {path}" -msgstr "Editor festlegen, der im interaktiven Modus verwendet werden soll. Standard ist {path}" +msgstr "" +"Editor festlegen, der im interaktiven Modus verwendet werden soll. Standard " +"ist {path}" #: ../fdroidserver/build.py msgid "Specify that we're running on the build server" @@ -1334,7 +1462,7 @@ #: ../fdroidserver/nightly.py msgid "Specify which debug keystore file to use." -msgstr "" +msgstr "Geben Sie an, welche Debug Keystore-Datei verwendet werden soll." #: ../fdroidserver/common.py msgid "Spew out even more information than normal" @@ -1343,40 +1471,46 @@ #: ../fdroidserver/nightly.py #, python-brace-format msgid "Striping mystery signature from {apkfilename}" -msgstr "" +msgstr "Entferne mysteriöse Signatur aus {apkfilename}" #: ../fdroidserver/lint.py #, python-format msgid "Summary '%s' is just the app's name" -msgstr "" +msgstr "Zusammenfassung '%s' ist nur der Name der App" #: ../fdroidserver/lint.py #, python-brace-format msgid "Summary of length {length} is over the {limit} char limit" msgstr "" +"Zusammenfassung mit der Länge {length} liegt über der {limit} Zeichengrenze" #: ../fdroidserver/common.py #, python-brace-format msgid "System clock is older than date in {path}!" -msgstr "" +msgstr "Die System-Uhr ist älter als das Datum in {path}!" #: ../fdroidserver/build.py -msgid "Test mode - put output in the tmp directory only, and always build, even if the output already exists." -msgstr "Testmodus - Ausgabe nur ins tmp-Verzeichnis einfügen, immer erstellen, selbst wenn die Ausgabe bereits vorhanden ist." +msgid "" +"Test mode - put output in the tmp directory only, and always build, even if " +"the output already exists." +msgstr "" +"Testmodus - Ausgabe nur ins tmp-Verzeichnis einfügen, immer erstellen, " +"selbst wenn die Ausgabe bereits vorhanden ist." #. Translators: https://developer.android.com/guide/topics/manifest/manifest-element.html#vcode #: ../fdroidserver/update.py #, python-brace-format msgid "The OBB version code must come after \"{name}.\":" -msgstr "" +msgstr "Der OBB-Versionscode muss nach \"{name}.\" stehen:" #: ../fdroidserver/btlog.py msgid "The base URL for the repo to log (default: https://f-droid.org)" -msgstr "Basis-Adresse zur Anmeldung am Repository (Standard: https://f-droid.org)" +msgstr "" +"Basis-Adresse zur Anmeldung am Repository (Standard: https://f-droid.org)" #: ../fdroidserver/mirror.py msgid "The directory to write the mirror to" -msgstr "" +msgstr "Das Verzeichnis, in das der Mirror geschrieben werden soll" #: ../fdroidserver/server.py msgid "The only commands currently supported are 'init' and 'update'" @@ -1384,55 +1518,61 @@ #: ../fdroidserver/index.py msgid "The repository's fingerprint does not match." -msgstr "" +msgstr "Der Fingerabdruck des Repositories stimmt nicht." #: ../fdroidserver/common.py msgid "The repository's index could not be verified." -msgstr "" +msgstr "Der Index des Repositories konnte nicht verifiziert werden." #: ../fdroidserver/server.py #, python-brace-format msgid "The root dir for local_copy_dir \"{path}\" does not exist!" -msgstr "" +msgstr "Das Wurzelverzeichnis für local_copy_dir \"{path}\" existiert nicht!" #: ../fdroidserver/nightly.py msgid "The the file to be included in the repo (path or glob)" -msgstr "" +msgstr "Die in das Repo aufzunehmende Datei (Pfad oder Glob)" #: ../fdroidserver/publish.py msgid "There is a keyalias collision - publishing halted" -msgstr "" +msgstr "Es gibt eine Keyalias-Kollision - Veröffentlichung gestoppt" #: ../fdroidserver/import.py #, python-format msgid "This repo already has local metadata: %s" -msgstr "" +msgstr "Dieses Repo hat bereits lokale Metadaten: %s" #: ../fdroidserver/server.py ../fdroidserver/upload.py -msgid "To use awsbucket, awssecretkey and awsaccesskeyid must also be set in config.py!" +msgid "" +"To use awsbucket, awssecretkey and awsaccesskeyid must also be set in config." +"py!" msgstr "" +"Um awsbucket zu benutzen, müssen awssecretkey und awsaccesskeyid auch in der " +"config.py gesetzt sein!" #: ../fdroidserver/lint.py msgid "UCM is set but it looks like checkupdates hasn't been run yet" msgstr "" +"UCM ist gesetzt, aber es sieht so aus, als ob checkupdates noch nicht " +"ausgeführt wurde" #: ../fdroidserver/lint.py msgid "URL shorteners should not be used" -msgstr "" +msgstr "Kurz-URL-Dienste sollten nicht verwendet werden" #: ../fdroidserver/metadata.py msgid "URL title is just the URL, use brackets: [URL]" -msgstr "" +msgstr "URL-Titel ist nur die URL, verwenden Sie Klammern: [URL]" #: ../fdroidserver/lint.py #, python-brace-format msgid "URL {url} in Description: {error}" -msgstr "" +msgstr "URL {url} in der Beschreibung: {error}" #: ../fdroidserver/metadata.py #, python-brace-format msgid "Unexpected text on same line as {field} in {linedesc}" -msgstr "" +msgstr "Unerwarteter Text in der gleichen Zeile wie {field} in {linedesc}" #: ../fdroid msgid "Unknown exception found!" @@ -1442,12 +1582,12 @@ #: ../fdroidserver/lint.py #, python-brace-format msgid "Unknown file '{filename}' in build '{versionName}'" -msgstr "" +msgstr "Unbekannte Datei '{filename}' im Build '{versionName}''" #: ../fdroidserver/metadata.py #, python-format msgid "Unknown metadata format: %s" -msgstr "" +msgstr "Unbekanntes Metadatenformat: %s" #: ../fdroidserver/metadata.py #, python-brace-format @@ -1456,75 +1596,79 @@ #: ../fdroidserver/common.py msgid "Unknown version of aapt, might cause problems: " -msgstr "" +msgstr "Unbekannte Version von aapt, könnte Probleme verursachen: " #: ../fdroidserver/lint.py msgid "Unlinkified link - use [http://foo.bar Link title] or [http://foo.bar]" msgstr "" +"Nicht verlinkter Link - verwenden Sie [http://foo.bar Linktitel] oder " +"[http://foo.bar]" #: ../fdroidserver/lint.py msgid "Unnecessary leading space" -msgstr "" +msgstr "Unnötige führende Leerzeichen" #: ../fdroidserver/lint.py msgid "Unnecessary trailing space" -msgstr "" +msgstr "Unnötige Leerzeichen an Ende" #: ../fdroidserver/metadata.py msgid "Unrecognised app field: " -msgstr "" +msgstr "Nicht erkanntes App-Feld: " #: ../fdroidserver/metadata.py #, python-brace-format msgid "Unrecognised field '{field}' in {linedesc}" -msgstr "" +msgstr "Nicht erkanntes Feld '{field}' in {linedesc}" #: ../fdroidserver/update.py #, python-brace-format msgid "Unsupported file type \"{extension}\" for repo graphic" -msgstr "" +msgstr "Nicht unterstützter Dateityp \"{extension}\" für Repo-Grafik" #: ../fdroidserver/update.py #, python-brace-format msgid "Unsupported graphics file found: {path}" -msgstr "" +msgstr "Nicht unterstützte Grafikdatei gefunden: {path}" #: ../fdroidserver/rewritemeta.py #, python-brace-format msgid "Unsupported metadata format, use: --to [{supported}]" -msgstr "" +msgstr "Nicht-unterstütztes Metadatenformat, verwenden Sie --to [{supported}]" #: ../fdroidserver/metadata.py msgid "Unterminated ]" -msgstr "" +msgstr "Unbeendet ]" #: ../fdroidserver/metadata.py msgid "Unterminated ]]" -msgstr "" +msgstr "Unbeendet ]]" #: ../fdroidserver/metadata.py #, python-brace-format msgid "Unterminated build in {name}" -msgstr "" +msgstr "Unbeendeter Build in {name}" #: ../fdroidserver/metadata.py #, python-brace-format msgid "Unterminated continuation in {name}" -msgstr "" +msgstr "Unfertige Fortsetzung in {name}" #: ../fdroidserver/lint.py #, python-format msgid "Unused extlib at %s" -msgstr "" +msgstr "Nicht verwendete extlib bei %s" #: ../fdroidserver/lint.py #, python-format msgid "Unused file at %s" -msgstr "" +msgstr "Nicht verwendete Datei bei %s" #: ../fdroidserver/lint.py msgid "Update Check Name is set to the known app id - it can be removed" msgstr "" +"Update Check Name ist auf die bekannte App-ID gesetzt - sie kann entfernt " +"werden" #: ../fdroid msgid "Update repo information for new packages" @@ -1544,20 +1688,22 @@ #: /usr/lib/python3.5/optparse.py /usr/lib/python3.6/optparse.py msgid "Usage" -msgstr "Verwendung" +msgstr "Syntax" #: /usr/lib/python3.5/optparse.py /usr/lib/python3.6/optparse.py #, python-format msgid "Usage: %s\n" -msgstr "Verwendung: %s\n" +msgstr "Syntax: %s\n" #: ../fdroidserver/lint.py msgid "Use /HEAD instead of /master to point at a file in the default branch" msgstr "" +"Verwenden Sie /HEAD anstelle von /master, um auf eine Datei im Hauptzweig zu " +"verweisen" #: ../fdroidserver/update.py msgid "Use `fdroid update -c` to create it." -msgstr "" +msgstr "Verwenden Sie `fdroid update -c´ zum Erstellen." #: ../fdroidserver/build.py msgid "Use build server" @@ -1573,21 +1719,24 @@ #: ../fdroidserver/server.py ../fdroidserver/upload.py #, python-brace-format msgid "Using \"{path}\" for configuring s3cmd." -msgstr "" +msgstr "Verwende {path} zur Konfiguration von s3cmd." #: ../fdroidserver/common.py -msgid "Using Java's jarsigner, not recommended for verifying APKs! Use apksigner" +msgid "" +"Using Java's jarsigner, not recommended for verifying APKs! Use apksigner" msgstr "" +"Von Java jarsigner zur Verifikation von APKs wird abgeraten! Verwenden Sie " +"apksigner" #: ../fdroidserver/init.py #, python-brace-format msgid "Using existing keystore \"{path}\"" -msgstr "" +msgstr "Verwende vorhandenen Schlüsselspeicher \"{path}\"" #: ../fdroidserver/server.py ../fdroidserver/upload.py #, python-brace-format msgid "Using s3cmd to sync with: {url}" -msgstr "" +msgstr "Verwende s3cmd zum Synchronisieren mit: {url}" #: ../fdroid msgid "Valid commands are:" @@ -1599,15 +1748,19 @@ #: ../fdroidserver/index.py msgid "Verifying index signature:" -msgstr "" +msgstr "Überprüfe die Index-Signatur:" #: ../fdroid msgid "Warn about possible metadata errors" msgstr "Vor möglichen Metadaten-Fehlern warnen" #: ../fdroidserver/update.py -msgid "When configured for signed indexes, create only unsigned indexes at this stage" -msgstr "Bei einer Konfiguration mit signierten Indizes, in dieser Phase nur unsignierte Indizes erstellen" +msgid "" +"When configured for signed indexes, create only unsigned indexes at this " +"stage" +msgstr "" +"Bei einer Konfiguration mit signierten Indizes, in dieser Phase nur " +"unsignierte Indizes erstellen" msgid "X.509 'Distiguished Name' used when generating keys" msgstr "X.509 'Angesehener Name' wenn Schlüssel generiert werden" @@ -1619,16 +1772,17 @@ #: ../fdroidserver/common.py msgid "You can use ANDROID_HOME to set the path to your SDK, i.e.:" msgstr "" +"Sie können ANDROID_HOME verwenden, um den Pfad zu Ihrem SDK zu setzen, z.B.:" #: ../fdroidserver/nightly.py #, python-brace-format msgid "adding IdentityFile to {path}" -msgstr "" +msgstr "Füge IdentityFile zu {path} hinzu" #: ../fdroidserver/update.py #, python-brace-format msgid "adding to {name}: {path}" -msgstr "" +msgstr "Hinzufügen zu {name}: {path}" #: /usr/lib/python3.5/argparse.py /usr/lib/python3.6/argparse.py #, python-format @@ -1658,11 +1812,11 @@ #: /usr/lib/python3.5/argparse.py /usr/lib/python3.6/argparse.py #, python-format msgid "argument \"-\" with mode %r" -msgstr "" +msgstr "Argument \"-\" mit Modus %r" #: ../fdroidserver/nightly.py msgid "attempting bare ssh connection to test deploy key:" -msgstr "" +msgstr "Versuch einer reinen ssh-Verbindung, um den Deployment-Key zu testen:" #: /usr/lib/python3.5/argparse.py /usr/lib/python3.6/argparse.py #, python-format @@ -1671,21 +1825,22 @@ #: /usr/lib/python3.5/argparse.py /usr/lib/python3.6/argparse.py msgid "cannot have multiple subparser arguments" -msgstr "" +msgstr "Mehrere Subparser-Argumente sind unzulässig" #: /usr/lib/python3.5/argparse.py /usr/lib/python3.6/argparse.py #, python-format msgid "cannot merge actions - two groups are named %r" -msgstr "" +msgstr "kann keine Aktionen zusammenführen - zwei Gruppen heißen %r" #: ../fdroidserver/nightly.py msgid "cannot publish update, did you set the deploy key?" msgstr "" +"Kann das Update nicht veröffentlichen. Ist der Deploy-Schlüssel gesetzt?" #: ../fdroidserver/nightly.py #, python-brace-format msgid "cloning {url}" -msgstr "" +msgstr "Klone {url}" #: ../fdroidserver/server.py msgid "command to execute, either 'init' or 'update'" @@ -1693,14 +1848,14 @@ #: /usr/lib/python3.5/optparse.py /usr/lib/python3.6/optparse.py msgid "complex" -msgstr "" +msgstr "komplex" #: /usr/lib/python3.5/argparse.py /usr/lib/python3.6/argparse.py #, python-format msgid "conflicting option string: %s" msgid_plural "conflicting option strings: %s" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "widersprüchliche Optionsangabe: %s" +msgstr[1] "widersprüchliche Optionsangaben: %s" #: ../fdroidserver/nightly.py #, python-brace-format @@ -1710,17 +1865,17 @@ #: ../fdroidserver/nightly.py #, python-brace-format msgid "created {path}" -msgstr "" +msgstr "{path} erzeugt" #: ../fdroidserver/update.py #, python-brace-format msgid "deleting: repo/{apkfilename}" -msgstr "" +msgstr "Lösche: repo/{apkfilename}" #: /usr/lib/python3.5/argparse.py /usr/lib/python3.6/argparse.py #, python-format msgid "dest= is required for options like %r" -msgstr "" +msgstr "dest= wird benötigt für Optionen wie %r" #: /usr/lib/python3.5/argparse.py /usr/lib/python3.6/argparse.py #, python-format @@ -1735,11 +1890,11 @@ #: /usr/lib/python3.5/argparse.py /usr/lib/python3.6/argparse.py msgid "expected at most one argument" -msgstr "" +msgstr "höchstens ein Argument erwartet" #: /usr/lib/python3.5/argparse.py /usr/lib/python3.6/argparse.py msgid "expected one argument" -msgstr "" +msgstr "ein Argument erwartet" #: ../fdroid msgid "fdroid [-h|--help|--version] []" @@ -1751,7 +1906,7 @@ #: /usr/lib/python3.5/optparse.py /usr/lib/python3.6/optparse.py msgid "floating-point" -msgstr "" +msgstr "Gleitkomma" #: ../fdroidserver/metadata.py msgid "force errors to be warnings, or ignore" @@ -1759,75 +1914,86 @@ #: ../fdroidserver/metadata.py msgid "force metadata errors (default) to be warnings, or to be ignored." -msgstr "Erzwingen, dass Metadatenfehler (Standard) als Warnung ausgegeben oder ignoriert werden." +msgstr "" +"Erzwingen, dass Metadatenfehler (Standard) als Warnung ausgegeben oder " +"ignoriert werden." #: ../fdroidserver/common.py msgid "git svn clone failed" -msgstr "" +msgstr "git svn Klonen fehlgeschlagen" #: /usr/lib/python3.5/argparse.py /usr/lib/python3.6/argparse.py #, python-format msgid "ignored explicit argument %r" -msgstr "" +msgstr "Ausdrückliches Argument %r ignoriert" #: ../fdroidserver/index.py msgid "index-v1 must have a signature, use `fdroid signindex` to create it!" msgstr "" +"index-v1 muß eine Signatur haben, verwenden Sie `fdroid signindex` um sie zu " +"erzeugen!" #: /usr/lib/python3.5/optparse.py /usr/lib/python3.6/optparse.py msgid "integer" -msgstr "" +msgstr "Ganzzahl" #: /usr/lib/python3.5/argparse.py /usr/lib/python3.6/argparse.py #, python-format msgid "invalid %(type)s value: %(value)r" -msgstr "" +msgstr "Ungültige(r) %(type)s mit Wert: %(value)r" #: /usr/lib/python3.5/argparse.py /usr/lib/python3.6/argparse.py #, python-format msgid "invalid choice: %(value)r (choose from %(choices)s)" -msgstr "" +msgstr "Ungültige Auswahl: %(value)r (Wählen Sie aus %(choices)s)" #: /usr/lib/python3.5/argparse.py /usr/lib/python3.6/argparse.py #, python-format msgid "invalid conflict_resolution value: %r" -msgstr "" +msgstr "Ungültiger conflict_resolution-Wert: %r" #: /usr/lib/python3.5/argparse.py /usr/lib/python3.6/argparse.py #, python-format -msgid "invalid option string %(option)r: must start with a character %(prefix_chars)r" +msgid "" +"invalid option string %(option)r: must start with a character " +"%(prefix_chars)r" msgstr "" +"Ungültige Optionszeichenfolge %(option)r: muss mit einem Zeichen " +"%(prefix_chars)r beginnen" #: ../fdroidserver/server.py #, python-brace-format -msgid "local_copy_dir does not end with \"fdroid\", perhaps you meant: \"{path}\"" +msgid "" +"local_copy_dir does not end with \"fdroid\", perhaps you meant: \"{path}\"" msgstr "" +"local_copy_dir endet nicht auf \"fdroid\", meinten Sie stattdessen: " +"\"{path}\"" #: ../fdroidserver/server.py msgid "local_copy_dir must be an absolute path!" -msgstr "" +msgstr "local_copy_dir muß eine absolute Pfadangabe sein!" #: ../fdroidserver/server.py msgid "local_copy_dir must be directory, not a file!" -msgstr "" +msgstr "local_copy_dir muß ein Verzeichnis sein, keine Datei!" #: ../fdroidserver/index.py #, python-format msgid "mirror '%s' does not end with 'fdroid'!" -msgstr "" +msgstr "Mirror '%s' ended nicht auf 'fdroid'!" #: /usr/lib/python3.5/argparse.py /usr/lib/python3.6/argparse.py msgid "mutually exclusive arguments must be optional" -msgstr "" +msgstr "sich gegenseitig ausschließende Argumente müssen optional sein" #: ../fdroidserver/mirror.py #, python-brace-format msgid "no \"icon\" in {appid}" -msgstr "" +msgstr "kein \"icon\" in {appid}" #: ../fdroidserver/signatures.py msgid "no APK supplied" -msgstr "" +msgstr "Kein APK bereitgestellt" #: /usr/lib/python3.5/optparse.py /usr/lib/python3.6/optparse.py #, python-format @@ -1841,31 +2007,33 @@ #: /usr/lib/python3.5/argparse.py /usr/lib/python3.6/argparse.py #, python-format msgid "not allowed with argument %s" -msgstr "" +msgstr "unzulässig mit Argument %s" #: /usr/lib/python3.5/argparse.py /usr/lib/python3.6/argparse.py #, python-format msgid "one of the arguments %s is required" -msgstr "" +msgstr "eines der Argumente %s ist erforderlich" #: ../fdroidserver/index.py ../fdroidserver/common.py msgid "only accepts strings, lists, and tuples" -msgstr "" +msgstr "akzeptiert nur Zeichenketten, Listen und Tupel" #: ../fdroidserver/install.py #, python-format msgid "option %s: If you really want to install all the signed apps, use --all" msgstr "" +"Option %s: Wenn Sie wirklich alle signierten Apps installieren wollen, " +"verwenden Sie --all" #: /usr/lib/python3.5/optparse.py /usr/lib/python3.6/optparse.py #, python-format msgid "option %s: invalid %s value: %r" -msgstr "" +msgstr "Option %s: ungültiger %s Wert: %r" #: /usr/lib/python3.5/optparse.py /usr/lib/python3.6/optparse.py #, python-format msgid "option %s: invalid choice: %r (choose from %s)" -msgstr "" +msgstr "Option %s: ungültige Wahl: %r (wählen Sie aus %s)" #: /usr/lib/python3.5/getopt.py /usr/lib/python3.6/getopt.py #, python-format @@ -1904,7 +2072,7 @@ #: ../fdroidserver/nightly.py #, python-brace-format msgid "overwriting existing {path}" -msgstr "" +msgstr "überschreiben des vorhandenen {path}" #: /usr/lib/python3.5/argparse.py /usr/lib/python3.6/argparse.py msgid "positional arguments" @@ -1912,18 +2080,26 @@ #: ../fdroidserver/signatures.py #, python-brace-format -msgid "refuse downloading via insecure HTTP connection (use HTTPS or specify --no-https-check): {apkfilename}" +msgid "" +"refuse downloading via insecure HTTP connection (use HTTPS or specify --no-" +"https-check): {apkfilename}" msgstr "" +"Download über ungesicherte HTTP-Verbindung verweigert (verwenden Sie HTTPS " +"oder geben Sie --no-https-check an): {apkfilename}" #: ../fdroidserver/signatures.py #, python-brace-format -msgid "refuse downloading via insecure http connection (use https or specify --no-https-check): {apkfilename}" +msgid "" +"refuse downloading via insecure http connection (use https or specify --no-" +"https-check): {apkfilename}" msgstr "" +"Download über ungesicherte HTTP-Verbindung verweigert (verwenden Sie HTTPS " +"oder geben Sie --no-https-check an): {apkfilename}" #: ../fdroidserver/server.py ../fdroidserver/upload.py #, python-brace-format msgid "s3cmd sync indexes {path} to {url} and delete" -msgstr "" +msgstr "s3cmd-Sync {path} indizieren auf {url} und dann löschen" #: /usr/lib/python3.5/optparse.py /usr/lib/python3.6/optparse.py msgid "show program's version number and exit" @@ -1936,16 +2112,16 @@ #: ../fdroidserver/signatures.py msgid "signed APK, either a file-path or HTTPS URL." -msgstr "" +msgstr "signiertes APK, entweder ein Dateipfad oder eine HTTPS-URL." #: ../fdroidserver/update.py #, python-brace-format msgid "skipping source tarball: {path}" -msgstr "" +msgstr "Überspringe Quell-Tarball: {path}" #: ../fdroidserver/lint.py msgid "srclibs missing name and/or @" -msgstr "" +msgstr "Srclibs-Name fehlt und/oder @" #: /usr/lib/python3.5/argparse.py /usr/lib/python3.6/argparse.py #, python-format @@ -1960,7 +2136,7 @@ #: /usr/lib/python3.5/argparse.py /usr/lib/python3.6/argparse.py #, python-format msgid "unknown parser %(parser_name)r (choices: %(choices)s)" -msgstr "" +msgstr "Unbekannter Parser %(parser_name)r (Auswahl: %(choices)s)" #: /usr/lib/python3.5/argparse.py /usr/lib/python3.6/argparse.py #, python-format @@ -1974,89 +2150,94 @@ #: /usr/lib/python3.5/argparse.py /usr/lib/python3.6/argparse.py ../fdroid msgid "usage: " -msgstr "Verwendung: " +msgstr "Syntax: " #: ../fdroid msgid "usage: fdroid [-h|--help|--version] []" -msgstr "Sprachgebrauch: fdroid [-h|--help|--version] []" +msgstr "Syntax: fdroid [-h|--help|--version] []" #: ../fdroidserver/server.py ../fdroidserver/upload.py #, python-brace-format msgid "using Apache libcloud to sync with {url}" -msgstr "" +msgstr "Verwende Apache libcloud zur Synchronisation mit {url}" #: ../fdroidserver/publish.py #, python-brace-format msgid "{0} app, {1} key aliases" msgid_plural "{0} apps, {1} key aliases" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "{0} app, {1} Schlüsselaliase" +msgstr[1] "{0} apps, {1} Schlüsselaliase" #: ../fdroidserver/update.py #, python-brace-format msgid "{apkfilename} ({appid}) has no metadata!" -msgstr "" +msgstr "{apkfilename} ({appid}) besitzt keine Metadaten!" #: ../fdroidserver/update.py #, python-brace-format msgid "{apkfilename} has multiple {name} files, looks like Master Key exploit!" msgstr "" +"{apkfilename} hat mehrere {name} Dateien, sieht aus wie Master Key Exploit!" #: ../fdroidserver/update.py #, python-brace-format msgid "{apkfilename}'s AndroidManifest.xml has a bad date: " -msgstr "Die AndroidManifest.xml der App „{apkfilename}” hat ein ungültiges Datum: " +msgstr "" +"Die AndroidManifest.xml der App „{apkfilename}” hat ein ungültiges Datum: " #: ../fdroidserver/update.py #, python-brace-format msgid "{appid} does not have a name! Using package name instead." -msgstr "" +msgstr "{appid} besitzt keinen Namen! Verwende den Paketnamen stattdessen." #: ../fdroidserver/mirror.py #, python-brace-format msgid "{appid} is missing {name}" -msgstr "" +msgstr "{appid} fehlt {name}" #. Translators: https://developer.android.com/guide/topics/manifest/manifest-element.html#vname #: ../fdroidserver/lint.py #, python-brace-format msgid "{appid}: Unknown extlib {path} in build '{versionName}'" -msgstr "" +msgstr "{appid}: unbekannte Extlib {path} im Build '{versionName}'" #: ../fdroidserver/scanner.py #, python-brace-format msgid "{appid}: no builds specified, running on current source state" -msgstr "" +msgstr "{appid}: keine builds angegeben, läuft auf dem aktuellen source-Stand" #: ../fdroidserver/metadata.py #, python-brace-format msgid "{field} not terminated in {name}" -msgstr "" +msgstr "{field} nicht in {name} beendet" #: ../fdroidserver/update.py #, python-brace-format msgid "{name} \"{path}\" does not exist! Correct it in config.py." msgstr "" +"{name} \"{path}\" existiert nicht! Korrigieren Sie es in der config.py." #: ../fdroidserver/nightly.py #, python-brace-format msgid "{path} does not exist! Create it by running:" -msgstr "" +msgstr "{path} existiert nicht! Erstellen Sie es durch Ausführen von:" #: ../fdroidserver/update.py #, python-brace-format msgid "{path} has bad file signature \"{pattern}\", possible Janus exploit!" msgstr "" +"{path} hat die schlechte Dateisignatur \"{pattern}\", möglicher Janus-" +"Exploit!" #: ../fdroidserver/update.py #, python-brace-format msgid "{path} is zero size!" -msgstr "" +msgstr "{path} hat Dateigröße Null!" #: ../fdroidserver/mirror.py #, python-brace-format msgid "{url} does not end with \"fdroid\", check the URL path!" -msgstr "" +msgstr "{url} endet nicht mit \"fdroid\", überprüfen Sie den URL-Pfad!" #: ../fdroidserver/build.py msgid "{} build failed" @@ -2067,8 +2248,8 @@ #: ../fdroidserver/build.py msgid "{} build succeeded" msgid_plural "{} builds succeeded" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Buildvorgang erfolgreich" +msgstr[1] "Buildvorgänge erfolgreich" #, fuzzy #~ msgid "Add PGP signatures for packages in repo using GnuPG" @@ -2078,7 +2259,9 @@ #~ msgstr "GPG-Signaturen für Programmpakete in der Paketquelle hinzufügen" #~ msgid "Clean update - don't uses caches, reprocess all apks" -#~ msgstr "Sauber - ohne Verwendung der Zwischenspeicher - aktualisieren, alle APKs wiederaufbereiten" +#~ msgstr "" +#~ "Sauber - ohne Verwendung der Zwischenspeicher - aktualisieren, alle APKs " +#~ "wiederaufbereiten" #~ msgid "app-id in the form APPID" #~ msgstr "App-ID in der Form APPID" Binary files /tmp/tmpCoX7hp/hZW9rVCDMC/fdroidserver-1.0.2/locale/es/LC_MESSAGES/fdroidserver.mo and /tmp/tmpCoX7hp/RzjpYOWXQL/fdroidserver-1.0.6/locale/es/LC_MESSAGES/fdroidserver.mo differ diff -Nru fdroidserver-1.0.2/locale/es/LC_MESSAGES/fdroidserver.po fdroidserver-1.0.6/locale/es/LC_MESSAGES/fdroidserver.po --- fdroidserver-1.0.2/locale/es/LC_MESSAGES/fdroidserver.po 2018-02-22 12:03:03.000000000 +0000 +++ fdroidserver-1.0.6/locale/es/LC_MESSAGES/fdroidserver.po 2018-05-15 10:39:10.000000000 +0000 @@ -8,15 +8,16 @@ "Project-Id-Version: fdroidserver 0.9\n" "Report-Msgid-Bugs-To: https://gitlab.com/fdroid/fdroidserver/issues\n" "POT-Creation-Date: 2018-02-13 09:01+0100\n" -"PO-Revision-Date: 2017-12-11 19:50+0000\n" -"Last-Translator: Kevin Puertas \n" -"Language-Team: Spanish \n" +"PO-Revision-Date: 2018-04-16 09:37+0000\n" +"Last-Translator: Laura Arjona Reina \n" +"Language-Team: Spanish \n" "Language: es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 2.18-dev\n" +"X-Generator: Weblate 3.0-dev\n" #: ../fdroidserver/nightly.py msgid "" @@ -53,7 +54,7 @@ #: ../fdroidserver/server.py ../fdroidserver/upload.py #, python-brace-format msgid "\"{path}\" exists but s3cmd is not installed!" -msgstr "" +msgstr "\"{path}\" existe pero ¡s3cmd no está instalado!" #: ../fdroidserver/metadata.py #, python-brace-format @@ -68,12 +69,12 @@ msgstr[1] "la opción %(option)s requiere %(number)d argumentos" #: ../fdroidserver/mirror.py -#, fuzzy, python-format +#, python-format msgid "%(prog)s [options] url" -msgstr "%prog [opciones]" +msgstr "%(prog)s [opciones] url" #: /usr/lib/python3.5/argparse.py /usr/lib/python3.6/argparse.py -#, fuzzy, python-format +#, python-format msgid "%(prog)s: error: %(message)s\n" msgstr "%(prog)s: error: %(message)s\n" @@ -131,12 +132,16 @@ #: ../fdroidserver/common.py #, python-brace-format msgid "'{aapt}' is too old, fdroid requires build-tools-23.0.0 or newer!" -msgstr "¡'{aapt}' es demasiado antiguo, fdroid requiere build-tools-23.0.0 o posterior!" +msgstr "" +"¡'{aapt}' es demasiado antiguo, fdroid requiere build-tools-23.0.0 o " +"posterior!" #: ../fdroidserver/common.py -#, fuzzy, python-brace-format +#, python-brace-format msgid "'{aapt}' is too old, fdroid requires build-tools-{version} or newer!" -msgstr "¡'{aapt}' es demasiado antiguo, fdroid requiere build-tools-23.0.0 o posterior!" +msgstr "" +"¡'{aapt}' es demasiado antiguo, fdroid requiere build-tools-{version} o " +"posterior!" #: ../fdroidserver/install.py #, python-brace-format @@ -145,8 +150,12 @@ #: ../fdroidserver/common.py #, python-brace-format -msgid "'{field}' will be in random order! Use () or [] brackets if order is important!" -msgstr "¡'{field}' estará en un orden aleatorio! ¡Use paréntesis () o [] si el orden es importante!" +msgid "" +"'{field}' will be in random order! Use () or [] brackets if order is " +"important!" +msgstr "" +"¡'{field}' estará en un orden aleatorio! ¡Use paréntesis () o [] si el orden " +"es importante!" #: ../fdroidserver/common.py #, python-brace-format @@ -156,7 +165,9 @@ #: ../fdroidserver/metadata.py #, python-brace-format msgid "'{value}' is not a valid {field} in {appid}. Regex pattern: {pattern}" -msgstr "'{value}' no es un {field} válido en {appid}. Patrón de expresión regular: {pattern}" +msgstr "" +"'{value}' no es un {field} válido en {appid}. Patrón de expresión regular: " +"{pattern}" #: ../fdroidserver/checkupdates.py #, python-brace-format @@ -170,15 +181,15 @@ #: ../fdroidserver/metadata.py msgid ".fdroid.txt is not supported! Convert to .fdroid.yml or .fdroid.json." msgstr "" +"¡.fdroid.txt no está soportado! Conviértalo a .fdroid.yml o .fdroid.json." #: ../fdroidserver/lint.py msgid "/issues is missing" msgstr "no se encuentra /issues" #: ../fdroidserver/mirror.py -#, fuzzy msgid "A URL is required as an argument!" -msgstr "opción -%s requiere un argumento" +msgstr "¡Se requiere una URL como argumento!" #: ../fdroid msgid "Add PGP signatures using GnuPG for packages in repo" @@ -194,7 +205,9 @@ #: ../fdroidserver/update.py msgid "Add skeleton metadata files for APKs that are missing them" -msgstr "Agregar archivos con esqueleto de metadats para las aplicaciones que no los tienen" +msgstr "" +"Agregar archivos con esqueleto de metadats para las aplicaciones que no los " +"tienen" #: ../fdroidserver/update.py #, python-brace-format @@ -206,12 +219,16 @@ msgstr "Alias de la clave de firma de repositorio en el depósitio de claves" #: ../fdroidserver/import.py -msgid "Allows a different revision (or git branch) to be specified for the initial import" -msgstr "Permite especificar una revisión diferente (o git sector) para la importación inicial" +msgid "" +"Allows a different revision (or git branch) to be specified for the initial " +"import" +msgstr "" +"Permite especificar una revisión diferente (o git sector) para la " +"importación inicial" #: ../fdroidserver/mirror.py msgid "Also mirror the full archive section" -msgstr "" +msgstr "También replicar la sección completa del archivo" #: ../fdroidserver/lint.py msgid "Also warn about formatting issues, like rewritemeta -l" @@ -263,19 +280,23 @@ msgstr "¡Archivando {apkfilename} con una firma inválida!" #: ../fdroidserver/mirror.py -msgid "Base URL to mirror, can include the index signing key using the query string: ?fingerprint=" +msgid "" +"Base URL to mirror, can include the index signing key using the query " +"string: ?fingerprint=" msgstr "" +"URL base para replicar, puede incluir la clave de firma del índice usando la " +"cadena de consulta: ?fingerprint=" #. Translators: https://developer.android.com/guide/topics/manifest/manifest-element.html#vname #: ../fdroidserver/lint.py -#, fuzzy, python-brace-format +#, python-brace-format msgid "Branch '{branch}' used as commit in build '{versionName}'" msgstr "Rama '{branch}' usada como \"commit\" en el build '{versionName}'" #: ../fdroidserver/lint.py #, python-brace-format msgid "Branch '{branch}' used as commit in srclib '{srclib}'" -msgstr "" +msgstr "Rama '{branch}' usada como \"commit\" en srclib '{srclib}'" #: ../fdroid msgid "Build a package from source" @@ -286,9 +307,10 @@ msgstr "Compilar todas las aplicaciones disponibles" #: ../fdroidserver/lint.py -#, fuzzy msgid "Build generated by `fdroid import` - remove disable line once ready" -msgstr "Build generada por `fdroid import` - Elimina \"disable line\" cuando esté listo" +msgstr "" +"Build generada por `fdroid import` - Eliminar \"disable line\" cuando esté " +"lista" #: ../fdroidserver/build.py msgid "Build only the latest version of each package" @@ -296,57 +318,62 @@ #: ../fdroidserver/metadata.py #, python-brace-format -msgid "Build should have comma-separated versionName and versionCode, not \"{value}\", in {linedesc}" +msgid "" +"Build should have comma-separated versionName and versionCode, not " +"\"{value}\", in {linedesc}" msgstr "" #: ../fdroidserver/init.py -#, fuzzy, python-format +#, python-format msgid "Built repo based in \"%s\" with this config:" msgstr "Repositorio creado en \"%s\" con esta configuración:" #: ../fdroidserver/build.py msgid "Can't build due to {} error while scanning" msgid_plural "Can't build due to {} errors while scanning" -msgstr[0] "" +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/metadata.py #, python-brace-format msgid "Cannot find a packageName for {path}!" -msgstr "" +msgstr "¡No se puede encontrar un packageName para {path}!" #: ../fdroidserver/metadata.py #, python-brace-format msgid "Cannot find an appid for {path}!" -msgstr "" +msgstr "¡No se puede encontrar un appid para {path}!" #: ../fdroidserver/vmtools.py #, python-brace-format msgid "Cannot read \"{path}\"!" -msgstr "" +msgstr "¡No se puede leer \"{path}\"!" #: ../fdroidserver/metadata.py #, python-brace-format msgid "Cannot resolve app id {appid}" -msgstr "" +msgstr "No se puede resolver el identificador de aplicación {appid}" #: ../fdroidserver/rewritemeta.py msgid "Cannot use --list and --to at the same time" -msgstr "" +msgstr "No se puede usar --list y --to al mismo tiempo" #: ../fdroidserver/metadata.py #, python-brace-format msgid "Cannot write \"{path}\", not an accepted format, use: {formats}" msgstr "" +"No se puede escribir \"{path}\", no está en un formato aceptado, use: " +"{formats}" #: ../fdroidserver/lint.py msgid "Categories are not set" -msgstr "" +msgstr "No se han establecido categorías" #: ../fdroidserver/lint.py #, python-format msgid "Category '%s' is not valid" -msgstr "" +msgstr "La categoría '%s' no es válida" #: ../fdroid msgid "Check for updates to applications" @@ -354,8 +381,12 @@ #: ../fdroidserver/update.py #, python-brace-format -msgid "Checking archiving for {appid} - apks:{integer}, keepversions:{keep}, archapks:{arch}" +msgid "" +"Checking archiving for {appid} - apks:{integer}, keepversions:{keep}, " +"archapks:{arch}" msgstr "" +"Comprobando la operación de archivo para {appid} - apks:{integer}, " +"keepversions:{keep}, archapks:{arch}" #: ../fdroidserver/dscanner.py msgid "Clean after all scans have finished" @@ -389,34 +420,36 @@ #: ../fdroidserver/common.py #, python-brace-format msgid "Could not find '{command}' on your system" -msgstr "" +msgstr "No se pudo encontrar '{command}' en el sistema" #: ../fdroidserver/update.py #, python-brace-format msgid "Could not find {path} to remove it" -msgstr "" +msgstr "No se pudo encontrar {path} para eliminarlo" #: ../fdroidserver/update.py msgid "Could not open apk file for analysis" -msgstr "" +msgstr "No se ha podido abrir el archivo apk para analizarlo" #. Translators: https://developer.android.com/guide/topics/manifest/manifest-element.html#vcode #: ../fdroidserver/import.py msgid "Couldn't find latest version code" -msgstr "" +msgstr "No se ha podido encontrar el último código de versión" #. Translators: https://developer.android.com/guide/topics/manifest/manifest-element.html#vname #: ../fdroidserver/import.py msgid "Couldn't find latest version name" -msgstr "" +msgstr "No se ha podido encontrar el último nombre de versión" #: ../fdroidserver/import.py msgid "Couldn't find package ID" -msgstr "" +msgstr "No se ha podido encontrar el identificador de paquete" #: ../fdroidserver/update.py msgid "Cowardily refusing to overwrite existing signing key setup!" msgstr "" +"¡Se ha rechazado (cobardemente) sobrescribir la configuración existente de " +"clave de firma!" #: ../fdroidserver/update.py msgid "Create a repo signing key in a keystore" @@ -429,16 +462,16 @@ #: ../fdroidserver/server.py ../fdroidserver/upload.py #, python-brace-format msgid "Created new container \"{name}\"" -msgstr "" +msgstr "Se ha creado el contenedor nuevo \"{name}\"" #: ../fdroidserver/server.py ../fdroidserver/upload.py #, python-brace-format msgid "Creating \"{path}\" for configuring s3cmd." -msgstr "" +msgstr "Creando \"{path}\" para configurar s3cmd." #: ../fdroidserver/publish.py msgid "Creating log directory" -msgstr "" +msgstr "Creando el directorio de registro (\"log\")" #: ../fdroidserver/server.py ../fdroidserver/upload.py #, python-brace-format @@ -447,24 +480,24 @@ #: ../fdroidserver/publish.py msgid "Creating output directory" -msgstr "" +msgstr "Creando el directorio de salida" #: ../fdroidserver/index.py msgid "Creating signed index with this key (SHA256):" -msgstr "" +msgstr "Creando índice firmado con esta clave (SHA256):" #: ../fdroidserver/import.py ../fdroidserver/verify.py #: ../fdroidserver/publish.py msgid "Creating temporary directory" -msgstr "" +msgstr "Creando directorio temporal" #: ../fdroidserver/index.py msgid "Creating unsigned index in preparation for signing" -msgstr "" +msgstr "Creando índice no firmado, en preparación de la firma" #: ../fdroidserver/nightly.py msgid "DEBUG_KEYSTORE is not set or the value is incomplete" -msgstr "" +msgstr "DEBUG_KEYSTORE no está establecida o su valor es incompleto" #: ../fdroidserver/update.py msgid "Delete APKs and/or OBBs without metadata from the repo" @@ -473,31 +506,34 @@ #: ../fdroidserver/update.py #, python-brace-format msgid "Deleting unknown file: {path}" -msgstr "" +msgstr "Borrando fichero desconocido: {path}" #: ../fdroidserver/lint.py #, python-format msgid "Description '%s' is just the app's summary" -msgstr "" +msgstr "La descripción '%s' es simplemente el resumen de la aplicación" #: ../fdroidserver/lint.py msgid "Description has a duplicate line" -msgstr "" +msgstr "La descripción contiene una línea duplicada" #: ../fdroidserver/lint.py #, python-format msgid "Description has a list (%s) but it isn't bulleted (*) nor numbered (#)" msgstr "" +"La descripción tiene una lista (%s) pero no está estructurada (*) ni " +"numerada (#)" #: ../fdroidserver/lint.py #, python-brace-format msgid "Description of length {length} is over the {limit} char limit" msgstr "" +"La descripción de longitud {length} supera el límite de caracteres, {limit}" #: ../fdroidserver/mirror.py #, python-brace-format msgid "Do not include \"{path}\" in URL!" -msgstr "" +msgstr "¡No incluir \"{path}\" en la URL!" #: ../fdroidserver/init.py msgid "Do not prompt for Android SDK path, just fail" @@ -512,8 +548,12 @@ msgstr "No haga nada con registros relacionados" #: ../fdroidserver/build.py -msgid "Don't refresh the repository, useful when testing a build with no internet connection" -msgstr "No actualizar el repositorio, útil al probar una compilación sin conexión a Internet" +msgid "" +"Don't refresh the repository, useful when testing a build with no internet " +"connection" +msgstr "" +"No actualizar el repositorio, útil al probar una compilación sin conexión a " +"Internet" #: ../fdroidserver/server.py ../fdroidserver/nightly.py #: ../fdroidserver/upload.py @@ -522,7 +562,7 @@ #: ../fdroid msgid "Download complete mirrors of small repos" -msgstr "" +msgstr "Descargar réplicas completas de repositorios pequeños" #: ../fdroidserver/stats.py msgid "Download logs we don't have" @@ -531,15 +571,17 @@ #: ../fdroidserver/common.py msgid "Downloading the repository already failed once, not trying again." msgstr "" +"La descarga del repositorio ya falló una vez, no se intentará de nuevo." #: ../fdroidserver/verify.py #, python-brace-format msgid "Downloading {url} failed. {error}" -msgstr "" +msgstr "La descarga de {url} falló. {error}" #: ../fdroidserver/metadata.py #, python-brace-format -msgid "Duplicate build recipe found for versionCode {versionCode} in {linedesc}" +msgid "" +"Duplicate build recipe found for versionCode {versionCode} in {linedesc}" msgstr "" #: ../fdroidserver/lint.py @@ -549,7 +591,8 @@ #: ../fdroid msgid "Dynamically scan APKs post build" -msgstr "Ejecutar Fdroid dscanner de una aplicación APK, previamente construída," +msgstr "" +"Ejecutar Fdroid dscanner de una aplicación APK, previamente construída," #: ../fdroidserver/mirror.py msgid "" @@ -666,8 +709,12 @@ msgstr "" #: ../fdroidserver/build.py -msgid "Force build of disabled apps, and carries on regardless of scan problems. Only allowed in test mode." -msgstr "Forzar la creación de compilaciones deshabilitadas, independientemente de los problemas de escaneo. Sólo se permite en modo de prueba." +msgid "" +"Force build of disabled apps, and carries on regardless of scan problems. " +"Only allowed in test mode." +msgstr "" +"Forzar la creación de compilaciones deshabilitadas, independientemente de " +"los problemas de escaneo. Sólo se permite en modo de prueba." #: ../fdroidserver/build.py #, python-brace-format @@ -795,7 +842,8 @@ #: ../fdroidserver/update.py msgid "Interactively ask about things that need updating." -msgstr "Pregunte de forma interactiva sobre temas que necesitan una actualización." +msgstr "" +"Pregunte de forma interactiva sobre temas que necesitan una actualización." #: ../fdroidserver/update.py msgid "Invalid APK" @@ -822,7 +870,8 @@ #: ../fdroidserver/lint.py #, python-format -msgid "Invalid license tag \"%s\"! Use only tags from https://spdx.org/license-list" +msgid "" +"Invalid license tag \"%s\"! Use only tags from https://spdx.org/license-list" msgstr "" #: ../fdroidserver/lint.py @@ -869,7 +918,8 @@ msgstr "" #: ../fdroidserver/signindex.py -msgid "Java jarsigner not found! Install in standard location or set java_paths!" +msgid "" +"Java jarsigner not found! Install in standard location or set java_paths!" msgstr "" #: ../fdroidserver/lint.py @@ -883,7 +933,9 @@ #: ../fdroidserver/lint.py #, python-brace-format -msgid "Last used commit '{commit}' looks like a tag, but Update Check Mode is '{ucm}'" +msgid "" +"Last used commit '{commit}' looks like a tag, but Update Check Mode is " +"'{ucm}'" msgstr "" #: ../fdroidserver/lint.py @@ -1062,10 +1114,12 @@ #: ../fdroidserver/import.py msgid "Path to main Android project subdirectory, if not in root." -msgstr "Ruta al subdirectorio principal del proyecto Android, si no está en la raíz." +msgstr "" +"Ruta al subdirectorio principal del proyecto Android, si no está en la raíz." msgid "Path to main android project subdirectory, if not in root." -msgstr "Ruta al subdirectorio principal del proyecto Android, si no es en la raíz." +msgstr "" +"Ruta al subdirectorio principal del proyecto Android, si no es en la raíz." #: ../fdroidserver/init.py msgid "Path to the Android SDK (sometimes set in ANDROID_HOME)" @@ -1167,7 +1221,9 @@ #. https://developer.android.com/guide/topics/manifest/manifest-element.html#vname #: ../fdroidserver/common.py #, python-brace-format -msgid "Reading packageName/versionCode/versionName failed, APK invalid: '{apkfilename}'" +msgid "" +"Reading packageName/versionCode/versionName failed, APK invalid: " +"'{apkfilename}'" msgstr "" #: ../fdroidserver/update.py @@ -1177,7 +1233,9 @@ #: ../fdroidserver/stats.py #, fuzzy -msgid "Recalculate aggregate stats - use when changes have been made that would invalidate old cached data." +msgid "" +"Recalculate aggregate stats - use when changes have been made that would " +"invalidate old cached data." msgstr "Recalcular agregación de estados - usar cuando cambie " #: ../fdroidserver/common.py @@ -1186,15 +1244,21 @@ #: ../fdroidserver/update.py 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" +msgstr "" +"Cambiar el nombre de archivos APK que no coinciden con el formato package." +"name_123.apk" #: ../fdroidserver/update.py msgid "Report on build data status" msgstr "Informe sobre el estado de los datos de compilación" #: ../fdroidserver/build.py -msgid "Reset and create a brand new build server, even if the existing one appears to be ok." -msgstr "Restablecer y crear un nuevo servidor de compilación, incluso si el existente parece estar bien." +msgid "" +"Reset and create a brand new build server, even if the existing one appears " +"to be ok." +msgstr "" +"Restablecer y crear un nuevo servidor de compilación, incluso si el " +"existente parece estar bien." #: ../fdroidserver/nightly.py #, fuzzy, python-brace-format @@ -1203,7 +1267,9 @@ #: ../fdroidserver/update.py msgid "Resize all the icons exceeding the max pixel size and exit" -msgstr "Cambiar el tamaño de todos los iconos que exceden el tamaño máximo del pixeles y salir" +msgstr "" +"Cambiar el tamaño de todos los iconos que exceden el tamaño máximo del " +"pixeles y salir" #: ../fdroidserver/common.py msgid "Restrict output to warnings and errors" @@ -1290,10 +1356,14 @@ #: ../fdroidserver/build.py #, fuzzy msgid "Setup an emulator, install the APK on it and perform a Drozer scan" -msgstr "Configurar un emulador, instalar la APK en él y realizar un escaneo con \"Drozer\"" +msgstr "" +"Configurar un emulador, instalar la APK en él y realizar un escaneo con " +"\"Drozer\"" msgid "Setup an emulator, install the apk on it and perform a drozer scan" -msgstr "Configurar un emulador, instalar la aplicación APK en él y realizar una \"Drozer\" scan" +msgstr "" +"Configurar un emulador, instalar la aplicación APK en él y realizar una " +"\"Drozer\" scan" #: ../fdroid msgid "Sign and place packages in the repo" @@ -1305,7 +1375,8 @@ #: ../fdroidserver/build.py msgid "Skip scanning the source code for binaries and other problems" -msgstr "Omitir el escaneo del código fuente por problemas binarios u otros problemas" +msgstr "" +"Omitir el escaneo del código fuente por problemas binarios u otros problemas" #: ../fdroidserver/update.py #, python-brace-format @@ -1342,16 +1413,20 @@ #: ../fdroidserver/update.py msgid "Specify editor to use in interactive mode. Default " -msgstr "Especifique el editor para utilizar en modo interactivo. Predeterminado " +msgstr "" +"Especifique el editor para utilizar en modo interactivo. Predeterminado " #, c-format msgid "Specify editor to use in interactive mode. Default %s" -msgstr "Especifique el editor para utilizar en modo interactivo. Predeterminado %s" +msgstr "" +"Especifique el editor para utilizar en modo interactivo. Predeterminado %s" #: ../fdroidserver/update.py #, python-brace-format msgid "Specify editor to use in interactive mode. Default is {path}" -msgstr "Especifique el editor para utilizar en modo interactivo. Por defecto es {path}" +msgstr "" +"Especifique el editor para utilizar en modo interactivo. Por defecto es " +"{path}" #: ../fdroidserver/build.py msgid "Specify that we're running on the build server" @@ -1386,8 +1461,12 @@ msgstr "" #: ../fdroidserver/build.py -msgid "Test mode - put output in the tmp directory only, and always build, even if the output already exists." -msgstr "Modo de prueba: ponga la salida solo en el directorio tmp y siga desarrollando, incluso si la salida ya existe." +msgid "" +"Test mode - put output in the tmp directory only, and always build, even if " +"the output already exists." +msgstr "" +"Modo de prueba: ponga la salida solo en el directorio tmp y siga " +"desarrollando, incluso si la salida ya existe." #. Translators: https://developer.android.com/guide/topics/manifest/manifest-element.html#vcode #: ../fdroidserver/update.py @@ -1397,7 +1476,8 @@ #: ../fdroidserver/btlog.py msgid "The base URL for the repo to log (default: https://f-droid.org)" -msgstr "El URL base para el registro del repositorio (default: https://f-droid.org)" +msgstr "" +"El URL base para el registro del repositorio (default: https://f-droid.org)" #: ../fdroidserver/mirror.py msgid "The directory to write the mirror to" @@ -1434,7 +1514,9 @@ msgstr "" #: ../fdroidserver/server.py ../fdroidserver/upload.py -msgid "To use awsbucket, awssecretkey and awsaccesskeyid must also be set in config.py!" +msgid "" +"To use awsbucket, awssecretkey and awsaccesskeyid must also be set in config." +"py!" msgstr "" #: ../fdroidserver/lint.py @@ -1590,10 +1672,13 @@ #: ../fdroidserver/update.py msgid "Use date from APK instead of current time for newly added APKs" -msgstr "Use la fecha del APK en vez de la fecha actual para los nuevos APK añadidos" +msgstr "" +"Use la fecha del APK en vez de la fecha actual para los nuevos APK añadidos" msgid "Use date from apk instead of current time for newly added apks" -msgstr "Use la fecha del «apk» en vez de la fecha actual para los nuevos «apk» añadidos" +msgstr "" +"Use la fecha del «apk» en vez de la fecha actual para los nuevos «apk» " +"añadidos" #: ../fdroidserver/server.py ../fdroidserver/upload.py #, python-brace-format @@ -1601,7 +1686,8 @@ msgstr "" #: ../fdroidserver/common.py -msgid "Using Java's jarsigner, not recommended for verifying APKs! Use apksigner" +msgid "" +"Using Java's jarsigner, not recommended for verifying APKs! Use apksigner" msgstr "" #: ../fdroidserver/init.py @@ -1631,8 +1717,12 @@ msgstr "Alertar sobre posibles errores de metadatos" #: ../fdroidserver/update.py -msgid "When configured for signed indexes, create only unsigned indexes at this stage" -msgstr "Cuando está configurado para índices firmados, crear solo índices sin signo en esta etapa" +msgid "" +"When configured for signed indexes, create only unsigned indexes at this " +"stage" +msgstr "" +"Cuando está configurado para índices firmados, crear solo índices sin signo " +"en esta etapa" msgid "X.509 'Distiguished Name' used when generating keys" msgstr "X.509 'Nombre Distintivo' (DN) usado al generar claves" @@ -1825,12 +1915,15 @@ #: /usr/lib/python3.5/argparse.py /usr/lib/python3.6/argparse.py #, python-format -msgid "invalid option string %(option)r: must start with a character %(prefix_chars)r" +msgid "" +"invalid option string %(option)r: must start with a character " +"%(prefix_chars)r" msgstr "" #: ../fdroidserver/server.py #, python-brace-format -msgid "local_copy_dir does not end with \"fdroid\", perhaps you meant: \"{path}\"" +msgid "" +"local_copy_dir does not end with \"fdroid\", perhaps you meant: \"{path}\"" msgstr "" #: ../fdroidserver/server.py @@ -1943,12 +2036,16 @@ #: ../fdroidserver/signatures.py #, python-brace-format -msgid "refuse downloading via insecure HTTP connection (use HTTPS or specify --no-https-check): {apkfilename}" +msgid "" +"refuse downloading via insecure HTTP connection (use HTTPS or specify --no-" +"https-check): {apkfilename}" msgstr "" #: ../fdroidserver/signatures.py #, python-brace-format -msgid "refuse downloading via insecure http connection (use https or specify --no-https-check): {apkfilename}" +msgid "" +"refuse downloading via insecure http connection (use https or specify --no-" +"https-check): {apkfilename}" msgstr "" #: ../fdroidserver/server.py ../fdroidserver/upload.py @@ -2109,7 +2206,8 @@ #~ msgstr "Añadir las firmas gpg para los paquetes en el repositorio" #~ msgid "Clean update - don't uses caches, reprocess all apks" -#~ msgstr "Actualización limpia, no usa caché, reprocesa todas las aplicaciones APK" +#~ msgstr "" +#~ "Actualización limpia, no usa caché, reprocesa todas las aplicaciones APK" #~ msgid "app-id in the form APPID" #~ msgstr "APP-ID en el formato APPID" diff -Nru fdroidserver-1.0.2/locale/fa/LC_MESSAGES/fdroidserver.po fdroidserver-1.0.6/locale/fa/LC_MESSAGES/fdroidserver.po --- fdroidserver-1.0.2/locale/fa/LC_MESSAGES/fdroidserver.po 2018-02-22 14:40:02.000000000 +0000 +++ fdroidserver-1.0.6/locale/fa/LC_MESSAGES/fdroidserver.po 2018-05-15 10:39:10.000000000 +0000 @@ -4,7 +4,20 @@ # FIRST AUTHOR , YEAR. # msgid "" -msgstr "Project-Id-Version: fdroidserver 0.9\nReport-Msgid-Bugs-To: team@f-droid.org\nPOT-Creation-Date: 2018-02-13 09:01+0100\nPO-Revision-Date: 2018-02-14 15:41+0000\nLast-Translator: Danial Behzadi \nLanguage-Team: Persian \nLanguage: fa\nMIME-Version: 1.0\nContent-Type: text/plain; charset=UTF-8\nContent-Transfer-Encoding: 8bit\nPlural-Forms: nplurals=2; plural=n > 1;\nX-Generator: Weblate 2.19-dev\n" +msgstr "" +"Project-Id-Version: fdroidserver 0.9\n" +"Report-Msgid-Bugs-To: https://gitlab.com/fdroid/fdroidserver/issues\n" +"POT-Creation-Date: 2018-02-13 09:01+0100\n" +"PO-Revision-Date: 2018-02-14 15:41+0000\n" +"Last-Translator: Danial Behzadi \n" +"Language-Team: Persian \n" +"Language: fa\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n > 1;\n" +"X-Generator: Weblate 2.19-dev\n" #: ../fdroidserver/nightly.py msgid "" @@ -129,7 +142,9 @@ #: ../fdroidserver/common.py #, python-brace-format -msgid "'{field}' will be in random order! Use () or [] brackets if order is important!" +msgid "" +"'{field}' will be in random order! Use () or [] brackets if order is " +"important!" msgstr "" #: ../fdroidserver/common.py @@ -189,7 +204,9 @@ msgstr "" #: ../fdroidserver/import.py -msgid "Allows a different revision (or git branch) to be specified for the initial import" +msgid "" +"Allows a different revision (or git branch) to be specified for the initial " +"import" msgstr "" #: ../fdroidserver/mirror.py @@ -246,7 +263,9 @@ msgstr "" #: ../fdroidserver/mirror.py -msgid "Base URL to mirror, can include the index signing key using the query string: ?fingerprint=" +msgid "" +"Base URL to mirror, can include the index signing key using the query " +"string: ?fingerprint=" msgstr "" #. Translators: https://developer.android.com/guide/topics/manifest/manifest-element.html#vname @@ -278,7 +297,9 @@ #: ../fdroidserver/metadata.py #, python-brace-format -msgid "Build should have comma-separated versionName and versionCode, not \"{value}\", in {linedesc}" +msgid "" +"Build should have comma-separated versionName and versionCode, not " +"\"{value}\", in {linedesc}" msgstr "" #: ../fdroidserver/init.py @@ -336,7 +357,9 @@ #: ../fdroidserver/update.py #, python-brace-format -msgid "Checking archiving for {appid} - apks:{integer}, keepversions:{keep}, archapks:{arch}" +msgid "" +"Checking archiving for {appid} - apks:{integer}, keepversions:{keep}, " +"archapks:{arch}" msgstr "" #: ../fdroidserver/dscanner.py @@ -494,7 +517,9 @@ msgstr "" #: ../fdroidserver/build.py -msgid "Don't refresh the repository, useful when testing a build with no internet connection" +msgid "" +"Don't refresh the repository, useful when testing a build with no internet " +"connection" msgstr "" #: ../fdroidserver/server.py ../fdroidserver/nightly.py @@ -521,7 +546,8 @@ #: ../fdroidserver/metadata.py #, python-brace-format -msgid "Duplicate build recipe found for versionCode {versionCode} in {linedesc}" +msgid "" +"Duplicate build recipe found for versionCode {versionCode} in {linedesc}" msgstr "" #: ../fdroidserver/lint.py @@ -646,7 +672,9 @@ msgstr "" #: ../fdroidserver/build.py -msgid "Force build of disabled apps, and carries on regardless of scan problems. Only allowed in test mode." +msgid "" +"Force build of disabled apps, and carries on regardless of scan problems. " +"Only allowed in test mode." msgstr "" #: ../fdroidserver/build.py @@ -802,7 +830,8 @@ #: ../fdroidserver/lint.py #, python-format -msgid "Invalid license tag \"%s\"! Use only tags from https://spdx.org/license-list" +msgid "" +"Invalid license tag \"%s\"! Use only tags from https://spdx.org/license-list" msgstr "" #: ../fdroidserver/lint.py @@ -849,7 +878,8 @@ msgstr "" #: ../fdroidserver/signindex.py -msgid "Java jarsigner not found! Install in standard location or set java_paths!" +msgid "" +"Java jarsigner not found! Install in standard location or set java_paths!" msgstr "" #: ../fdroidserver/lint.py @@ -862,7 +892,9 @@ #: ../fdroidserver/lint.py #, python-brace-format -msgid "Last used commit '{commit}' looks like a tag, but Update Check Mode is '{ucm}'" +msgid "" +"Last used commit '{commit}' looks like a tag, but Update Check Mode is " +"'{ucm}'" msgstr "" #: ../fdroidserver/lint.py @@ -1144,7 +1176,9 @@ #. https://developer.android.com/guide/topics/manifest/manifest-element.html#vname #: ../fdroidserver/common.py #, python-brace-format -msgid "Reading packageName/versionCode/versionName failed, APK invalid: '{apkfilename}'" +msgid "" +"Reading packageName/versionCode/versionName failed, APK invalid: " +"'{apkfilename}'" msgstr "" #: ../fdroidserver/update.py @@ -1153,7 +1187,9 @@ msgstr "" #: ../fdroidserver/stats.py -msgid "Recalculate aggregate stats - use when changes have been made that would invalidate old cached data." +msgid "" +"Recalculate aggregate stats - use when changes have been made that would " +"invalidate old cached data." msgstr "" #: ../fdroidserver/common.py @@ -1169,7 +1205,9 @@ msgstr "" #: ../fdroidserver/build.py -msgid "Reset and create a brand new build server, even if the existing one appears to be ok." +msgid "" +"Reset and create a brand new build server, even if the existing one appears " +"to be ok." msgstr "" #: ../fdroidserver/nightly.py @@ -1360,7 +1398,9 @@ msgstr "" #: ../fdroidserver/build.py -msgid "Test mode - put output in the tmp directory only, and always build, even if the output already exists." +msgid "" +"Test mode - put output in the tmp directory only, and always build, even if " +"the output already exists." msgstr "" #. Translators: https://developer.android.com/guide/topics/manifest/manifest-element.html#vcode @@ -1408,7 +1448,9 @@ msgstr "" #: ../fdroidserver/server.py ../fdroidserver/upload.py -msgid "To use awsbucket, awssecretkey and awsaccesskeyid must also be set in config.py!" +msgid "" +"To use awsbucket, awssecretkey and awsaccesskeyid must also be set in config." +"py!" msgstr "" #: ../fdroidserver/lint.py @@ -1575,7 +1617,8 @@ msgstr "" #: ../fdroidserver/common.py -msgid "Using Java's jarsigner, not recommended for verifying APKs! Use apksigner" +msgid "" +"Using Java's jarsigner, not recommended for verifying APKs! Use apksigner" msgstr "" #: ../fdroidserver/init.py @@ -1605,7 +1648,9 @@ msgstr "" #: ../fdroidserver/update.py -msgid "When configured for signed indexes, create only unsigned indexes at this stage" +msgid "" +"When configured for signed indexes, create only unsigned indexes at this " +"stage" msgstr "" msgid "X.509 'Distiguished Name' used when generating keys" @@ -1794,12 +1839,15 @@ #: /usr/lib/python3.5/argparse.py /usr/lib/python3.6/argparse.py #, python-format -msgid "invalid option string %(option)r: must start with a character %(prefix_chars)r" +msgid "" +"invalid option string %(option)r: must start with a character " +"%(prefix_chars)r" msgstr "" #: ../fdroidserver/server.py #, python-brace-format -msgid "local_copy_dir does not end with \"fdroid\", perhaps you meant: \"{path}\"" +msgid "" +"local_copy_dir does not end with \"fdroid\", perhaps you meant: \"{path}\"" msgstr "" #: ../fdroidserver/server.py @@ -1911,12 +1959,16 @@ #: ../fdroidserver/signatures.py #, python-brace-format -msgid "refuse downloading via insecure HTTP connection (use HTTPS or specify --no-https-check): {apkfilename}" +msgid "" +"refuse downloading via insecure HTTP connection (use HTTPS or specify --no-" +"https-check): {apkfilename}" msgstr "" #: ../fdroidserver/signatures.py #, python-brace-format -msgid "refuse downloading via insecure http connection (use https or specify --no-https-check): {apkfilename}" +msgid "" +"refuse downloading via insecure http connection (use https or specify --no-" +"https-check): {apkfilename}" msgstr "" #: ../fdroidserver/server.py ../fdroidserver/upload.py Binary files /tmp/tmpCoX7hp/hZW9rVCDMC/fdroidserver-1.0.2/locale/fr/LC_MESSAGES/fdroidserver.mo and /tmp/tmpCoX7hp/RzjpYOWXQL/fdroidserver-1.0.6/locale/fr/LC_MESSAGES/fdroidserver.mo differ diff -Nru fdroidserver-1.0.2/locale/fr/LC_MESSAGES/fdroidserver.po fdroidserver-1.0.6/locale/fr/LC_MESSAGES/fdroidserver.po --- fdroidserver-1.0.2/locale/fr/LC_MESSAGES/fdroidserver.po 2018-02-22 19:00:56.000000000 +0000 +++ fdroidserver-1.0.6/locale/fr/LC_MESSAGES/fdroidserver.po 2018-05-25 11:52:25.000000000 +0000 @@ -3,14 +3,28 @@ # FIRST AUTHOR , YEAR. # msgid "" -msgstr "Project-Id-Version: fdroidserver 0.9\nReport-Msgid-Bugs-To: team@f-droid.org\nPOT-Creation-Date: 2018-02-13 09:01+0100\nPO-Revision-Date: 2018-02-20 15:34+0000\nLast-Translator: Anthony Chaput \nLanguage-Team: French \nLanguage: fr\nMIME-Version: 1.0\nContent-Type: text/plain; charset=UTF-8\nContent-Transfer-Encoding: 8bit\nPlural-Forms: nplurals=2; plural=n > 1;\nX-Generator: Weblate 2.19.1\n" +msgstr "" +"Project-Id-Version: fdroidserver 0.9\n" +"Report-Msgid-Bugs-To: https://gitlab.com/fdroid/fdroidserver/issues\n" +"POT-Creation-Date: 2018-02-13 09:01+0100\n" +"PO-Revision-Date: 2018-05-21 15:54+0000\n" +"Last-Translator: Ldm Public \n" +"Language-Team: French \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n > 1;\n" +"X-Generator: Weblate 3.0-dev\n" #: ../fdroidserver/nightly.py -#, fuzzy msgid "" "\n" "SSH Public Key to be used as Deploy Key:" -msgstr "\nClé Publique SSH à utiliser comme Clé de Déploiement :" +msgstr "" +"\n" +"Clé Publique SSH à utiliser comme Clé de Déploiement :" #: ../fdroidserver/nightly.py #, python-brace-format @@ -18,6 +32,8 @@ "\n" "{path} encoded for the DEBUG_KEYSTORE secret variable:" msgstr "" +"\n" +"{path} encodé pour la variable secrète DEBUG_KEYSTORE :" #: ../fdroidserver/lint.py #, python-format @@ -30,9 +46,9 @@ msgstr "\"{path}\" contient {name} obsolète ({version})" #: ../fdroidserver/update.py -#, fuzzy, python-brace-format +#, python-brace-format msgid "\"{path}\" contains recent {name} ({version})" -msgstr "\"{path}\" contient {name} récent ({version})" +msgstr "\"{path}\" contient le récent {name} ({version})" #: ../fdroidserver/server.py ../fdroidserver/upload.py #, python-brace-format @@ -40,7 +56,7 @@ msgstr "\"{path}\" existe mais s3cmd n'est pas installé !" #: ../fdroidserver/metadata.py -#, fuzzy, python-brace-format +#, python-brace-format msgid "\"{path}\" is not an accepted format, convert to: {formats}" msgstr "\"{path}\" n'est pas un format autorisé, convertir en : {formats}" @@ -71,14 +87,14 @@ msgstr "%prog [options]" #: /usr/lib/python3.5/argparse.py /usr/lib/python3.6/argparse.py -#, fuzzy, python-format +#, python-format msgid "%r is not callable" -msgstr "%r n'est pas appelable" +msgstr "%r n’est pas appelable" #: ../fdroidserver/lint.py #, python-format msgid "%s is not an accepted build field" -msgstr "" +msgstr "%s n'est pas un champ de construction acceptable" #: /usr/lib/python3.5/optparse.py /usr/lib/python3.6/optparse.py #, python-format @@ -103,7 +119,7 @@ #: /usr/lib/python3.5/argparse.py /usr/lib/python3.6/argparse.py msgid "'required' is an invalid argument for positionals" -msgstr "" +msgstr "'required' est invalide comme argument positionnel" #: ../fdroidserver/common.py msgid "'sdk_path' not set in 'config.py'!" @@ -113,9 +129,9 @@ #. Google, it is part of the Android SDK. So it probably shouldn't be #. translated or transliterated. #: ../fdroidserver/common.py -#, fuzzy, python-brace-format +#, python-brace-format msgid "'{aapt}' is too old, fdroid requires build-tools-23.0.0 or newer!" -msgstr "'{aapt}' est obsolète, fdroid requiert buid-tools-23.0.0 ou plus !" +msgstr "'{aapt}' est obsolète, fdroid requiert build-tools-23.0.0 ou plus !" #: ../fdroidserver/common.py #, python-brace-format @@ -129,8 +145,12 @@ #: ../fdroidserver/common.py #, python-brace-format -msgid "'{field}' will be in random order! Use () or [] brackets if order is important!" -msgstr "'{field}' sera ordonné aléatoirement ! Utilisez des parenthèses () ou des crochets [] si l'ordre est important !" +msgid "" +"'{field}' will be in random order! Use () or [] brackets if order is " +"important!" +msgstr "" +"'{field}' sera ordonné aléatoirement ! Utilisez des parenthèses () ou des " +"crochets [] si l'ordre est important !" #: ../fdroidserver/common.py #, python-brace-format @@ -141,11 +161,13 @@ #, python-brace-format msgid "'{value}' is not a valid {field} in {appid}. Regex pattern: {pattern}" msgstr "" +"'{value}' n'est pas un(e) {field} valide dans {appid}. Motif regex : " +"{pattern}" #: ../fdroidserver/checkupdates.py #, python-brace-format msgid "...checkupdate failed for {appid} : {error}" -msgstr "" +msgstr "...checkupdate a échoué pour {appid} : {error}" #: /usr/lib/python3.5/argparse.py /usr/lib/python3.6/argparse.py msgid ".__call__() not defined" @@ -154,20 +176,19 @@ #: ../fdroidserver/metadata.py msgid ".fdroid.txt is not supported! Convert to .fdroid.yml or .fdroid.json." msgstr "" +".fdroid.txt n'est pas supporté ! Convertissez en .fdroid.yml ou .fdroid.json." #: ../fdroidserver/lint.py msgid "/issues is missing" msgstr "/issues est manquant" #: ../fdroidserver/mirror.py -#, fuzzy msgid "A URL is required as an argument!" -msgstr "L'option -%s requiert un argument" +msgstr "Une URL est requise en argument !" #: ../fdroid -#, fuzzy msgid "Add PGP signatures using GnuPG for packages in repo" -msgstr "Ajouter des signatures GPG pour les paquets dans le dépôt" +msgstr "Ajouter des signatures PGP avec GnuPG pour les paquets dans le dépôt" #: ../fdroid msgid "Add a new application from its source code" @@ -175,38 +196,44 @@ #: ../fdroidserver/update.py msgid "Add a repo signing key to an unsigned repo" -msgstr "" +msgstr "Ajout d'une clé de signature de dépôt à un dépôt non signé" #: ../fdroidserver/update.py -#, fuzzy msgid "Add skeleton metadata files for APKs that are missing them" -msgstr "Créer les métadonnées de base manquantes" +msgstr "" +"Créer les métadonnées de base manquantes pour les APKs qui n'en sont pas " +"pourvus" #: ../fdroidserver/update.py #, python-brace-format msgid "Adding new repo for only {name}" -msgstr "" +msgstr "Ajout d'un nouveau dépôt pour seulement {name}" #: ../fdroidserver/init.py msgid "Alias of the repo signing key in the keystore" -msgstr "" +msgstr "Alias de la clé de signature du dépôt dans le trousseau" #: ../fdroidserver/import.py -msgid "Allows a different revision (or git branch) to be specified for the initial import" +msgid "" +"Allows a different revision (or git branch) to be specified for the initial " +"import" msgstr "" +"Autoriser une version différente (ou branche git) a être spécifiée pour " +"l'import initial" #: ../fdroidserver/mirror.py msgid "Also mirror the full archive section" -msgstr "" +msgstr "Faire aussi un miroir de la section d'archive complète" #: ../fdroidserver/lint.py msgid "Also warn about formatting issues, like rewritemeta -l" msgstr "" +"Alerter aussi à propos des problèmes de formatage, comme rewritemeta -l" #: ../fdroidserver/common.py #, python-brace-format msgid "Android SDK '{path}' does not have '{dirname}' installed!" -msgstr "" +msgstr "Le SDK Android '{path}' n'a pas '{dirname}' installé !" #: ../fdroidserver/common.py msgid "Android SDK not found!" @@ -215,12 +242,12 @@ #: ../fdroidserver/common.py #, python-brace-format msgid "Android SDK path '{path}' does not exist!" -msgstr "" +msgstr "Le SDK Android '{path}' n’existe pas !" #: ../fdroidserver/common.py #, python-brace-format msgid "Android SDK path '{path}' is not a directory!" -msgstr "" +msgstr "Le chemin du SDK Android '{path}' n'est pas un dossier !" #. Translators: "build-tools" is the file name of a package from #. Google, it is part of the Android SDK. So it probably shouldn't be @@ -228,16 +255,16 @@ #: ../fdroidserver/common.py #, python-brace-format msgid "Android build-tools path '{path}' does not exist!" -msgstr "" +msgstr "Le chemin d'Android build-tools '{path}' n'existe pas !" #: ../fdroidserver/update.py msgid "AndroidManifest.xml has no date" -msgstr "" +msgstr "AndroidManifest.xml n'a pas de date" #: ../fdroidserver/lint.py #, python-brace-format msgid "App is in '{repo}' but has a link to {url}" -msgstr "" +msgstr "L'application est dans '{repo}' mais a un lien vers {url}" #: ../fdroidserver/lint.py msgid "Appending .git is not necessary" @@ -246,10 +273,12 @@ #: ../fdroidserver/update.py #, python-brace-format msgid "Archiving {apkfilename} with invalid signature!" -msgstr "" +msgstr "Archivage de {apkfilename} avec une signature invalide !" #: ../fdroidserver/mirror.py -msgid "Base URL to mirror, can include the index signing key using the query string: ?fingerprint=" +msgid "" +"Base URL to mirror, can include the index signing key using the query " +"string: ?fingerprint=" msgstr "" #. Translators: https://developer.android.com/guide/topics/manifest/manifest-element.html#vname @@ -274,6 +303,8 @@ #: ../fdroidserver/lint.py msgid "Build generated by `fdroid import` - remove disable line once ready" msgstr "" +"Build généré par `fdroid import` - supprimer la ligne désactivée une fois " +"prêt" #: ../fdroidserver/build.py msgid "Build only the latest version of each package" @@ -281,43 +312,47 @@ #: ../fdroidserver/metadata.py #, python-brace-format -msgid "Build should have comma-separated versionName and versionCode, not \"{value}\", in {linedesc}" +msgid "" +"Build should have comma-separated versionName and versionCode, not " +"\"{value}\", in {linedesc}" msgstr "" +"Le build devrait avoir un versionName et un versionCode séparés par des " +"virgules, et non pas \"{value}\", dans {linedesc}" #: ../fdroidserver/init.py #, python-format msgid "Built repo based in \"%s\" with this config:" -msgstr "" +msgstr "Dépôt du build basé sur \"%s\" avec cette config :" #: ../fdroidserver/build.py msgid "Can't build due to {} error while scanning" msgid_plural "Can't build due to {} errors while scanning" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Build impossible à cause de l'erreur lors de l'analyse" +msgstr[1] "Build impossible à cause des {} erreurs lors de l'analyse" #: ../fdroidserver/metadata.py #, python-brace-format msgid "Cannot find a packageName for {path}!" -msgstr "" +msgstr "Impossible de trouver un packageName pour {path} !" #: ../fdroidserver/metadata.py #, python-brace-format msgid "Cannot find an appid for {path}!" -msgstr "" +msgstr "Impossible de trouver un appid pour {path} !" #: ../fdroidserver/vmtools.py #, python-brace-format msgid "Cannot read \"{path}\"!" -msgstr "" +msgstr "Impossible de lire \"{path}\" !" #: ../fdroidserver/metadata.py #, python-brace-format msgid "Cannot resolve app id {appid}" -msgstr "" +msgstr "Impossible de résoudre l'identifiant de l'application {appid}" #: ../fdroidserver/rewritemeta.py msgid "Cannot use --list and --to at the same time" -msgstr "" +msgstr "Impossible d'utiliser --list et --to en même temps" #: ../fdroidserver/metadata.py #, python-brace-format @@ -339,7 +374,9 @@ #: ../fdroidserver/update.py #, python-brace-format -msgid "Checking archiving for {appid} - apks:{integer}, keepversions:{keep}, archapks:{arch}" +msgid "" +"Checking archiving for {appid} - apks:{integer}, keepversions:{keep}, " +"archapks:{arch}" msgstr "" #: ../fdroidserver/dscanner.py @@ -352,16 +389,16 @@ #: ../fdroidserver/dscanner.py msgid "Clean up all containers and then exit" -msgstr "" +msgstr "Vider tous les conteneurs puis sortir" #: ../fdroidserver/update.py -#, fuzzy msgid "Clean update - don't uses caches, reprocess all APKs" -msgstr "Mise à jour propre - n'utilise pas les caches, ré-exécute tous les APKs" +msgstr "" +"Mise à jour propre - n'utilise pas les caches, traite à nouveau tous les APKs" #: ../fdroidserver/import.py msgid "Comma separated list of categories." -msgstr "" +msgstr "Liste de catégories séparées par des virgules." #: ../fdroid #, c-format, python-format @@ -384,7 +421,7 @@ #: ../fdroidserver/update.py msgid "Could not open apk file for analysis" -msgstr "" +msgstr "Impossible d'ouvrir le fichier apk pour analyse" #. Translators: https://developer.android.com/guide/topics/manifest/manifest-element.html#vcode #: ../fdroidserver/import.py @@ -398,7 +435,7 @@ #: ../fdroidserver/import.py msgid "Couldn't find package ID" -msgstr "" +msgstr "Impossible de trouver l'ID du paquet" #: ../fdroidserver/update.py msgid "Cowardily refusing to overwrite existing signing key setup!" @@ -433,7 +470,7 @@ #: ../fdroidserver/publish.py msgid "Creating output directory" -msgstr "" +msgstr "Création du répertoire de sortie" #: ../fdroidserver/index.py msgid "Creating signed index with this key (SHA256):" @@ -464,7 +501,7 @@ #: ../fdroidserver/lint.py #, python-format msgid "Description '%s' is just the app's summary" -msgstr "" +msgstr "Description de '%s' n'est qu'un résumé de l'application" #: ../fdroidserver/lint.py msgid "Description has a duplicate line" @@ -473,12 +510,16 @@ #: ../fdroidserver/lint.py #, python-format msgid "Description has a list (%s) but it isn't bulleted (*) nor numbered (#)" -msgstr "La description contient une liste (%s) mais ce n'est ni une liste à puces (*) ni une liste numérotée (#)" +msgstr "" +"La description contient une liste (%s) mais ce n'est ni une liste à puces " +"(*) ni une liste numérotée (#)" #: ../fdroidserver/lint.py #, python-brace-format msgid "Description of length {length} is over the {limit} char limit" -msgstr "La longueur de la description {length} dépasser la limite du nombre de caractères autorisés {limit}" +msgstr "" +"La longueur de la description {length} dépasser la limite du nombre de " +"caractères autorisés {limit}" #: ../fdroidserver/mirror.py #, python-brace-format @@ -498,13 +539,15 @@ msgstr "" #: ../fdroidserver/build.py -msgid "Don't refresh the repository, useful when testing a build with no internet connection" +msgid "" +"Don't refresh the repository, useful when testing a build with no internet " +"connection" msgstr "" #: ../fdroidserver/server.py ../fdroidserver/nightly.py #: ../fdroidserver/upload.py msgid "Don't use rsync checksums" -msgstr "" +msgstr "Ne pas utiliser les sommes de contrôle rsync" #: ../fdroid msgid "Download complete mirrors of small repos" @@ -512,11 +555,12 @@ #: ../fdroidserver/stats.py msgid "Download logs we don't have" -msgstr "" +msgstr "Télécharger les journaux que n'avons pas" #: ../fdroidserver/common.py msgid "Downloading the repository already failed once, not trying again." msgstr "" +"Le téléchargement du référentiel a déjà échoué une fois, ne pas réessayer." #: ../fdroidserver/verify.py #, python-brace-format @@ -525,7 +569,8 @@ #: ../fdroidserver/metadata.py #, python-brace-format -msgid "Duplicate build recipe found for versionCode {versionCode} in {linedesc}" +msgid "" +"Duplicate build recipe found for versionCode {versionCode} in {linedesc}" msgstr "" #: ../fdroidserver/lint.py @@ -589,9 +634,8 @@ msgstr "" #: ../fdroidserver/publish.py -#, fuzzy msgid "Failed to align application" -msgstr "Compiler toutes les applications disponibles" +msgstr "Impossible d'aligner les applications" #: ../fdroidserver/server.py ../fdroidserver/upload.py #, python-brace-format @@ -624,7 +668,7 @@ #: ../fdroidserver/common.py #, fuzzy msgid "Failed to zipalign application" -msgstr "Compiler toutes les applications disponibles" +msgstr "Impossible d'aligner et compresser cette application" #: ../fdroidserver/build.py #, python-brace-format @@ -652,7 +696,9 @@ msgstr "" #: ../fdroidserver/build.py -msgid "Force build of disabled apps, and carries on regardless of scan problems. Only allowed in test mode." +msgid "" +"Force build of disabled apps, and carries on regardless of scan problems. " +"Only allowed in test mode." msgstr "" #: ../fdroidserver/build.py @@ -675,13 +721,14 @@ msgstr "" #: ../fdroidserver/metadata.py -#, fuzzy, python-brace-format +#, python-brace-format msgid "Found multiple metadata files for {appid}" -msgstr "Créer les métadonnées de base manquantes" +msgstr "De multiples fichiers de métadonnées ont été trouvés pour {appid}" #: ../fdroidserver/index.py msgid "Found multiple signing certificates for repository." -msgstr "Plusieurs certificats de signature ont étés trouvés pour le référentiel." +msgstr "" +"Plusieurs certificats de signature ont étés trouvés pour le référentiel." #: ../fdroidserver/update.py #, python-brace-format @@ -698,9 +745,9 @@ msgstr "" #: ../fdroidserver/update.py -#, fuzzy, python-brace-format +#, python-brace-format msgid "Generated skeleton metadata for {appid}" -msgstr "Créer les métadonnées de base manquantes" +msgstr "Créer les métadonnées de base manquantes pour {appid}" #: ../fdroidserver/common.py #, python-format @@ -781,7 +828,8 @@ #: ../fdroidserver/update.py msgid "Interactively ask about things that need updating." -msgstr "Demander de manière interactive les choses nécessitant une mise à jour." +msgstr "" +"Demander de manière interactive les choses nécessitant une mise à jour." #: ../fdroidserver/update.py msgid "Invalid APK" @@ -808,7 +856,8 @@ #: ../fdroidserver/lint.py #, python-format -msgid "Invalid license tag \"%s\"! Use only tags from https://spdx.org/license-list" +msgid "" +"Invalid license tag \"%s\"! Use only tags from https://spdx.org/license-list" msgstr "" #: ../fdroidserver/lint.py @@ -855,7 +904,8 @@ msgstr "" #: ../fdroidserver/signindex.py -msgid "Java jarsigner not found! Install in standard location or set java_paths!" +msgid "" +"Java jarsigner not found! Install in standard location or set java_paths!" msgstr "" #: ../fdroidserver/lint.py @@ -868,7 +918,9 @@ #: ../fdroidserver/lint.py #, python-brace-format -msgid "Last used commit '{commit}' looks like a tag, but Update Check Mode is '{ucm}'" +msgid "" +"Last used commit '{commit}' looks like a tag, but Update Check Mode is " +"'{ucm}'" msgstr "" #: ../fdroidserver/lint.py @@ -1099,9 +1151,8 @@ msgstr "" #: ../fdroidserver/update.py -#, fuzzy msgid "Produce human-readable XML/JSON for index files" -msgstr "Produire un fichier index.xml lisible par un humain" +msgstr "Produire des fichiers d'index XML ou JSON lisibles par un humain" #: ../fdroidserver/update.py msgid "Produce human-readable index.xml" @@ -1151,7 +1202,9 @@ #. https://developer.android.com/guide/topics/manifest/manifest-element.html#vname #: ../fdroidserver/common.py #, python-brace-format -msgid "Reading packageName/versionCode/versionName failed, APK invalid: '{apkfilename}'" +msgid "" +"Reading packageName/versionCode/versionName failed, APK invalid: " +"'{apkfilename}'" msgstr "" #: ../fdroidserver/update.py @@ -1160,7 +1213,9 @@ msgstr "" #: ../fdroidserver/stats.py -msgid "Recalculate aggregate stats - use when changes have been made that would invalidate old cached data." +msgid "" +"Recalculate aggregate stats - use when changes have been made that would " +"invalidate old cached data." msgstr "" #: ../fdroidserver/common.py @@ -1169,14 +1224,17 @@ #: ../fdroidserver/update.py 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" +msgstr "" +"Renomme les fichiers APK dont le nom ne ressemble pas à nom.paquet_123.apk" #: ../fdroidserver/update.py msgid "Report on build data status" msgstr "" #: ../fdroidserver/build.py -msgid "Reset and create a brand new build server, even if the existing one appears to be ok." +msgid "" +"Reset and create a brand new build server, even if the existing one appears " +"to be ok." msgstr "" #: ../fdroidserver/nightly.py @@ -1186,7 +1244,9 @@ #: ../fdroidserver/update.py msgid "Resize all the icons exceeding the max pixel size and exit" -msgstr "Redimensionner toutes les icônes excédant la taille maximale en pixels et quitter" +msgstr "" +"Redimensionner toutes les icônes excédant la taille maximale en pixels et " +"quitter" #: ../fdroidserver/common.py msgid "Restrict output to warnings and errors" @@ -1330,9 +1390,11 @@ msgstr "Définir l'éditeur à utiliser en mode interactif. Par défaut %s" #: ../fdroidserver/update.py -#, fuzzy, python-brace-format +#, python-brace-format msgid "Specify editor to use in interactive mode. Default is {path}" -msgstr "Définir l'éditeur à utiliser en mode interactif. Par défaut %s" +msgstr "" +"Définir l'éditeur à utiliser en mode interactif. {path} est utilisé par " +"défaut" #: ../fdroidserver/build.py msgid "Specify that we're running on the build server" @@ -1367,7 +1429,9 @@ msgstr "" #: ../fdroidserver/build.py -msgid "Test mode - put output in the tmp directory only, and always build, even if the output already exists." +msgid "" +"Test mode - put output in the tmp directory only, and always build, even if " +"the output already exists." msgstr "" #. Translators: https://developer.android.com/guide/topics/manifest/manifest-element.html#vcode @@ -1377,9 +1441,8 @@ msgstr "" #: ../fdroidserver/btlog.py -#, fuzzy msgid "The base URL for the repo to log (default: https://f-droid.org)" -msgstr "URL de base pour le dépôt du journal (par défaut: https://f-droid.org)" +msgstr "URL de base du dépôt à journaliser (par défaut: https://f-droid.org)" #: ../fdroidserver/mirror.py msgid "The directory to write the mirror to" @@ -1416,7 +1479,9 @@ msgstr "" #: ../fdroidserver/server.py ../fdroidserver/upload.py -msgid "To use awsbucket, awssecretkey and awsaccesskeyid must also be set in config.py!" +msgid "" +"To use awsbucket, awssecretkey and awsaccesskeyid must also be set in config." +"py!" msgstr "" #: ../fdroidserver/lint.py @@ -1457,9 +1522,9 @@ msgstr "" #: ../fdroidserver/metadata.py -#, fuzzy, python-brace-format +#, python-brace-format msgid "Unknown metadata format: {path}" -msgstr "Créer les métadonnées de base manquantes" +msgstr "Format de métadonnée inconnu : {path}" #: ../fdroidserver/common.py msgid "Unknown version of aapt, might cause problems: " @@ -1540,6 +1605,7 @@ #: ../fdroid msgid "Update the binary transparency log for a URL" msgstr "" +"Mettre à jour le rapport de transparence des fichiers binaires pour une URL" #: ../fdroid msgid "Update the stats of the repo" @@ -1561,35 +1627,44 @@ #: ../fdroidserver/lint.py msgid "Use /HEAD instead of /master to point at a file in the default branch" msgstr "" +"Utiliser /HEAD plutôt que /master pour pointer un fichier dans la branche " +"par défaut" #: ../fdroidserver/update.py msgid "Use `fdroid update -c` to create it." -msgstr "" +msgstr "Utiliser 'fdroid update -c' pour le créer." #: ../fdroidserver/build.py msgid "Use build server" -msgstr "" +msgstr "Utiliser le serveur de build" #: ../fdroidserver/update.py msgid "Use date from APK instead of current time for newly added APKs" -msgstr "Utiliser la date de l'APK plutôt que la date courante pour les APKs nouvellement ajoutés" +msgstr "" +"Utiliser la date de l'APK plutôt que la date courante pour les APKs " +"nouvellement ajoutés" msgid "Use date from apk instead of current time for newly added apks" -msgstr "Utiliser la date de l'APK plutôt que la date courante pour les APKs nouvellement ajoutés" +msgstr "" +"Utiliser la date de l'APK plutôt que la date courante pour les APKs " +"nouvellement ajoutés" #: ../fdroidserver/server.py ../fdroidserver/upload.py #, python-brace-format msgid "Using \"{path}\" for configuring s3cmd." -msgstr "" +msgstr "Utiliser \"{path}\" pour configurer s3cmd." #: ../fdroidserver/common.py -msgid "Using Java's jarsigner, not recommended for verifying APKs! Use apksigner" +msgid "" +"Using Java's jarsigner, not recommended for verifying APKs! Use apksigner" msgstr "" +"L'utilisation de l'utilitaire jarsigner de Java n'est pas recommandé pour " +"vérifier les APKs ! Utiliser apksigner" #: ../fdroidserver/init.py #, python-brace-format msgid "Using existing keystore \"{path}\"" -msgstr "" +msgstr "Utilise le trousseau existant \"{path}\"" #: ../fdroidserver/server.py ../fdroidserver/upload.py #, python-brace-format @@ -1606,36 +1681,39 @@ #: ../fdroidserver/index.py msgid "Verifying index signature:" -msgstr "" +msgstr "Vérification de la signature d'index :" #: ../fdroid msgid "Warn about possible metadata errors" msgstr "Avertir de possibles erreurs dans les métadonnées" #: ../fdroidserver/update.py -msgid "When configured for signed indexes, create only unsigned indexes at this stage" +msgid "" +"When configured for signed indexes, create only unsigned indexes at this " +"stage" msgstr "" msgid "X.509 'Distiguished Name' used when generating keys" -msgstr "" +msgstr "X.509 'Nom distingué' utilisé lors de la génération des clés" #: ../fdroidserver/init.py msgid "X.509 'Distinguished Name' used when generating keys" -msgstr "" +msgstr "X.509 'Nom distingué' utilisé lors de la génération des clés" #: ../fdroidserver/common.py msgid "You can use ANDROID_HOME to set the path to your SDK, i.e.:" msgstr "" +"Vous pouvez utiliser ANDROID_HOME pour définir le chemin de votre SDK, ex. :" #: ../fdroidserver/nightly.py #, python-brace-format msgid "adding IdentityFile to {path}" -msgstr "" +msgstr "ajoute IdentityFile à {path}" #: ../fdroidserver/update.py #, python-brace-format msgid "adding to {name}: {path}" -msgstr "" +msgstr "ajoute à {name} : {path}" #: /usr/lib/python3.5/argparse.py /usr/lib/python3.6/argparse.py #, python-format @@ -1649,11 +1727,11 @@ #: ../fdroidserver/lint.py ../fdroidserver/rewritemeta.py msgid "applicationId in the form APPID" -msgstr "" +msgstr "applicationId sous la forme de APPID" #: ../fdroidserver/checkupdates.py msgid "applicationId to check for updates" -msgstr "" +msgstr "applicationId pour vérifier les mises à jour" #. Translators: https://developer.android.com/guide/topics/manifest/manifest-element.html#vcode #: ../fdroidserver/verify.py ../fdroidserver/publish.py @@ -1661,15 +1739,16 @@ #: ../fdroidserver/scanner.py ../fdroidserver/install.py msgid "applicationId with optional versionCode in the form APPID[:VERCODE]" msgstr "" +"applicationId avec le versionCode optionnel sous la forme APPID[:VERCODE]" #: /usr/lib/python3.5/argparse.py /usr/lib/python3.6/argparse.py #, python-format msgid "argument \"-\" with mode %r" -msgstr "" +msgstr "argument \"-\" avec le mode %r" #: ../fdroidserver/nightly.py msgid "attempting bare ssh connection to test deploy key:" -msgstr "" +msgstr "tentative de connexion ssh simple pour tester la clé de déploiement :" #: /usr/lib/python3.5/argparse.py /usr/lib/python3.6/argparse.py #, python-format @@ -1749,28 +1828,26 @@ msgstr "" #: ../fdroid -#, fuzzy msgid "fdroid [-h|--help|--version] []" -msgstr "utilisation : fdroid [-h|--help|--version] []" +msgstr "fdroid [-h|--help|--version] []" #: ../fdroid -#, fuzzy msgid "fdroid [] [-h|--help|--version|]" -msgstr "utilisation : fdroid [-h|--help|--version] []" +msgstr "fdroid [] [-h|--help|--version|]" #: /usr/lib/python3.5/optparse.py /usr/lib/python3.6/optparse.py msgid "floating-point" msgstr "" #: ../fdroidserver/metadata.py -#, fuzzy msgid "force errors to be warnings, or ignore" msgstr "forcer les erreurs en avertissement, ou les ignorer" #: ../fdroidserver/metadata.py -#, fuzzy msgid "force metadata errors (default) to be warnings, or to be ignored." -msgstr "forcer les erreurs en avertissement, ou les ignorer" +msgstr "" +"forcer les erreurs (par défaut) sur les métadonnées à être des " +"avertissements, ou les ignorer." #: ../fdroidserver/common.py msgid "git svn clone failed" @@ -1806,12 +1883,15 @@ #: /usr/lib/python3.5/argparse.py /usr/lib/python3.6/argparse.py #, python-format -msgid "invalid option string %(option)r: must start with a character %(prefix_chars)r" +msgid "" +"invalid option string %(option)r: must start with a character " +"%(prefix_chars)r" msgstr "" #: ../fdroidserver/server.py #, python-brace-format -msgid "local_copy_dir does not end with \"fdroid\", perhaps you meant: \"{path}\"" +msgid "" +"local_copy_dir does not end with \"fdroid\", perhaps you meant: \"{path}\"" msgstr "" #: ../fdroidserver/server.py @@ -1896,7 +1976,7 @@ #: /usr/lib/python3.5/getopt.py /usr/lib/python3.6/getopt.py #, python-format msgid "option --%s not a unique prefix" -msgstr "option --%s pas un unique préfixe " +msgstr "option --%s n'est pas un préfixe unique" #: /usr/lib/python3.5/getopt.py /usr/lib/python3.6/getopt.py #, python-format @@ -1923,12 +2003,16 @@ #: ../fdroidserver/signatures.py #, python-brace-format -msgid "refuse downloading via insecure HTTP connection (use HTTPS or specify --no-https-check): {apkfilename}" +msgid "" +"refuse downloading via insecure HTTP connection (use HTTPS or specify --no-" +"https-check): {apkfilename}" msgstr "" #: ../fdroidserver/signatures.py #, python-brace-format -msgid "refuse downloading via insecure http connection (use https or specify --no-https-check): {apkfilename}" +msgid "" +"refuse downloading via insecure http connection (use https or specify --no-" +"https-check): {apkfilename}" msgstr "" #: ../fdroidserver/server.py ../fdroidserver/upload.py @@ -2092,4 +2176,5 @@ #~ msgstr "Le chemin '{path}' pour Android Build Tools n'existe pas !" #~ msgid "Clean update - don't uses caches, reprocess all apks" -#~ msgstr "Mise à jour propre - n'utilise pas les caches, ré-exécute tous les APKs" +#~ msgstr "" +#~ "Mise à jour propre - n'utilise pas les caches, ré-exécute tous les APKs" diff -Nru fdroidserver-1.0.2/locale/it/LC_MESSAGES/fdroidserver.po fdroidserver-1.0.6/locale/it/LC_MESSAGES/fdroidserver.po --- fdroidserver-1.0.2/locale/it/LC_MESSAGES/fdroidserver.po 2018-02-22 12:03:03.000000000 +0000 +++ fdroidserver-1.0.6/locale/it/LC_MESSAGES/fdroidserver.po 2018-05-25 11:52:25.000000000 +0000 @@ -8,15 +8,16 @@ "Project-Id-Version: fdroidserver 0.9\n" "Report-Msgid-Bugs-To: https://gitlab.com/fdroid/fdroidserver/issues\n" "POT-Creation-Date: 2018-02-13 09:01+0100\n" -"PO-Revision-Date: 2018-01-30 18:37+0000\n" -"Last-Translator: Luca D'Amico \n" -"Language-Team: Italian \n" +"PO-Revision-Date: 2018-05-21 15:54+0000\n" +"Last-Translator: random r \n" +"Language-Team: Italian \n" "Language: it\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 2.19-dev\n" +"X-Generator: Weblate 3.0-dev\n" #: ../fdroidserver/nightly.py msgid "" @@ -53,7 +54,7 @@ #: ../fdroidserver/server.py ../fdroidserver/upload.py #, python-brace-format msgid "\"{path}\" exists but s3cmd is not installed!" -msgstr "" +msgstr "\"{path}\" esiste ma s3cmd non è installato!" #: ../fdroidserver/metadata.py #, python-brace-format @@ -68,9 +69,9 @@ msgstr[1] "l'opzione %(option)s richiede gli argomenti %(number)d" #: ../fdroidserver/mirror.py -#, fuzzy, python-format +#, python-format msgid "%(prog)s [options] url" -msgstr "%prog [opzioni]" +msgstr "%(prog)s [options] url" #: /usr/lib/python3.5/argparse.py /usr/lib/python3.6/argparse.py #, python-format @@ -131,12 +132,16 @@ #: ../fdroidserver/common.py #, python-brace-format msgid "'{aapt}' is too old, fdroid requires build-tools-23.0.0 or newer!" -msgstr "\"{aapt}\" è troppo vecchio, fdroid richiede build-tools-23.0.0 o più recente!" +msgstr "" +"\"{aapt}\" è troppo vecchio, fdroid richiede build-tools-23.0.0 o più " +"recente!" #: ../fdroidserver/common.py -#, fuzzy, python-brace-format +#, python-brace-format msgid "'{aapt}' is too old, fdroid requires build-tools-{version} or newer!" -msgstr "\"{aapt}\" è troppo vecchio, fdroid richiede build-tools-23.0.0 o più recente!" +msgstr "" +"'{aapt}' è troppo vecchio, fdroid richiede build-tools-{version} o più " +"recente!" #: ../fdroidserver/install.py #, python-brace-format @@ -145,8 +150,12 @@ #: ../fdroidserver/common.py #, python-brace-format -msgid "'{field}' will be in random order! Use () or [] brackets if order is important!" -msgstr "\"{field}\" sarà in ordine casuale! Usa le parentesi () o [] se l'ordine è importante!" +msgid "" +"'{field}' will be in random order! Use () or [] brackets if order is " +"important!" +msgstr "" +"\"{field}\" sarà in ordine casuale! Usa le parentesi () o [] se l'ordine è " +"importante!" #: ../fdroidserver/common.py #, python-brace-format @@ -156,7 +165,9 @@ #: ../fdroidserver/metadata.py #, python-brace-format msgid "'{value}' is not a valid {field} in {appid}. Regex pattern: {pattern}" -msgstr "\"{value}\" non è un {field} valido in {appid}. Espressione regolare: {pattern}" +msgstr "" +"\"{value}\" non è un {field} valido in {appid}. Espressione regolare: " +"{pattern}" #: ../fdroidserver/checkupdates.py #, python-brace-format @@ -169,16 +180,15 @@ #: ../fdroidserver/metadata.py msgid ".fdroid.txt is not supported! Convert to .fdroid.yml or .fdroid.json." -msgstr "" +msgstr ".fdroid.txt non è supportato! Converti in .fdroid.yml o .fdroid.json." #: ../fdroidserver/lint.py msgid "/issues is missing" msgstr "/issues è mancante" #: ../fdroidserver/mirror.py -#, fuzzy msgid "A URL is required as an argument!" -msgstr "l'opzione -%s richiede degli argomenti" +msgstr "È richiesto un URL come argomento!" #: ../fdroid msgid "Add PGP signatures using GnuPG for packages in repo" @@ -206,8 +216,12 @@ msgstr "Alias della chiave di firma del repository nel keystore" #: ../fdroidserver/import.py -msgid "Allows a different revision (or git branch) to be specified for the initial import" -msgstr "Permetti di specificare una revisione (o branch git) diversa per l'importazione iniziale" +msgid "" +"Allows a different revision (or git branch) to be specified for the initial " +"import" +msgstr "" +"Permetti di specificare una revisione (o branch git) diversa per " +"l'importazione iniziale" #: ../fdroidserver/mirror.py msgid "Also mirror the full archive section" @@ -263,7 +277,9 @@ msgstr "Archiviando {apkfilename} con una firma invalida!" #: ../fdroidserver/mirror.py -msgid "Base URL to mirror, can include the index signing key using the query string: ?fingerprint=" +msgid "" +"Base URL to mirror, can include the index signing key using the query " +"string: ?fingerprint=" msgstr "" #. Translators: https://developer.android.com/guide/topics/manifest/manifest-element.html#vname @@ -287,7 +303,8 @@ #: ../fdroidserver/lint.py msgid "Build generated by `fdroid import` - remove disable line once ready" -msgstr "Build generata da \"froid import\" - rimuovi disable line quando ha finito" +msgstr "" +"Build generata da \"froid import\" - rimuovi disable line quando ha finito" #: ../fdroidserver/build.py msgid "Build only the latest version of each package" @@ -295,8 +312,12 @@ #: ../fdroidserver/metadata.py #, python-brace-format -msgid "Build should have comma-separated versionName and versionCode, not \"{value}\", in {linedesc}" -msgstr "La build dovrebbe avere versionName e versionCode separati da una virgola in {linedesc}, non \"{value}\"" +msgid "" +"Build should have comma-separated versionName and versionCode, not " +"\"{value}\", in {linedesc}" +msgstr "" +"La build dovrebbe avere versionName e versionCode separati da una virgola in " +"{linedesc}, non \"{value}\"" #: ../fdroidserver/init.py #, python-format @@ -306,7 +327,8 @@ #: ../fdroidserver/build.py msgid "Can't build due to {} error while scanning" msgid_plural "Can't build due to {} errors while scanning" -msgstr[0] "Impossibile costruire a causa di un errore con {} durante la scansione" +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/metadata.py @@ -315,14 +337,14 @@ msgstr "Impossibile trovare un packageName per {path}!" #: ../fdroidserver/metadata.py -#, fuzzy, python-brace-format +#, python-brace-format msgid "Cannot find an appid for {path}!" -msgstr "Impossibile trovare un packageName per {path}!" +msgstr "Impossibile trovare un appid per {path}!" #: ../fdroidserver/vmtools.py -#, fuzzy, python-brace-format +#, python-brace-format msgid "Cannot read \"{path}\"!" -msgstr "Impossibile trovare l'app id {appid}" +msgstr "Impossibile leggere \"{path}\"!" #: ../fdroidserver/metadata.py #, python-brace-format @@ -336,7 +358,8 @@ #: ../fdroidserver/metadata.py #, python-brace-format msgid "Cannot write \"{path}\", not an accepted format, use: {formats}" -msgstr "Impossibile scrivere su \"{path}\", formato non accettato, usare: {formats}" +msgstr "" +"Impossibile scrivere su \"{path}\", formato non accettato, usare: {formats}" #: ../fdroidserver/lint.py msgid "Categories are not set" @@ -353,8 +376,12 @@ #: ../fdroidserver/update.py #, python-brace-format -msgid "Checking archiving for {appid} - apks:{integer}, keepversions:{keep}, archapks:{arch}" -msgstr "Controllando l'archiviazione per {appid} - apk:{integer}, keepversions:{keep}, archapks:{arch}" +msgid "" +"Checking archiving for {appid} - apks:{integer}, keepversions:{keep}, " +"archapks:{arch}" +msgstr "" +"Controllando l'archiviazione per {appid} - apk:{integer}, keepversions:" +"{keep}, archapks:{arch}" #: ../fdroidserver/dscanner.py msgid "Clean after all scans have finished" @@ -415,7 +442,8 @@ #: ../fdroidserver/update.py msgid "Cowardily refusing to overwrite existing signing key setup!" -msgstr "Mi rifiuto di sovrascrivere il setup della chiave di firma già esistente!" +msgstr "" +"Mi rifiuto di sovrascrivere il setup della chiave di firma già esistente!" #: ../fdroidserver/update.py msgid "Create a repo signing key in a keystore" @@ -491,12 +519,13 @@ #: ../fdroidserver/lint.py #, python-brace-format msgid "Description of length {length} is over the {limit} char limit" -msgstr "La descrizione di lunghezza {length} supera il limite di {limit} caratteri" +msgstr "" +"La descrizione di lunghezza {length} supera il limite di {limit} caratteri" #: ../fdroidserver/mirror.py #, python-brace-format msgid "Do not include \"{path}\" in URL!" -msgstr "" +msgstr "Non includere \"{path}\" nell'URL!" #: ../fdroidserver/init.py msgid "Do not prompt for Android SDK path, just fail" @@ -511,7 +540,9 @@ msgstr "Non fare niente sui log" #: ../fdroidserver/build.py -msgid "Don't refresh the repository, useful when testing a build with no internet connection" +msgid "" +"Don't refresh the repository, useful when testing a build with no internet " +"connection" msgstr "Non aggiornare il repository, utile per testare una build offline" #: ../fdroidserver/server.py ../fdroidserver/nightly.py @@ -529,7 +560,8 @@ #: ../fdroidserver/common.py msgid "Downloading the repository already failed once, not trying again." -msgstr "Lo scaricamento del repository è gia fallito una volta, non verrà riprovato." +msgstr "" +"Lo scaricamento del repository è gia fallito una volta, non verrà riprovato." #: ../fdroidserver/verify.py #, python-brace-format @@ -538,13 +570,16 @@ #: ../fdroidserver/metadata.py #, python-brace-format -msgid "Duplicate build recipe found for versionCode {versionCode} in {linedesc}" -msgstr "Trovata ricetta di costruzione duplicata per versionCode {versionCode} in {linedesc}" +msgid "" +"Duplicate build recipe found for versionCode {versionCode} in {linedesc}" +msgstr "" +"Trovata ricetta di costruzione duplicata per versionCode {versionCode} in " +"{linedesc}" #: ../fdroidserver/lint.py #, python-brace-format msgid "Duplicate link in '{field}': {url}" -msgstr "" +msgstr "Link duplicato in '{field}': {url}" #: ../fdroid msgid "Dynamically scan APKs post build" @@ -571,12 +606,14 @@ "Enter the path to the Android SDK (%s) here:\n" "> " msgstr "" +"Inserisci qui il percorso dell'Android SDK (%s):\n" +"> " #: ../fdroidserver/server.py ../fdroidserver/checkupdates.py #: ../fdroidserver/upload.py -#, fuzzy, python-format +#, python-format msgid "Error while attempting to publish log: %s" -msgstr "Errore nell'ottenere l'indirizzo del repo" +msgstr "Errore tentando di pubblicare il log: %s" #: ../fdroidserver/import.py msgid "Error while getting repo address" @@ -584,7 +621,7 @@ #: ../fdroid msgid "Extract signatures from APKs" -msgstr "" +msgstr "Estrai le firme dagli APK" #: ../fdroidserver/signatures.py #, python-brace-format @@ -663,7 +700,9 @@ msgstr "" #: ../fdroidserver/build.py -msgid "Force build of disabled apps, and carries on regardless of scan problems. Only allowed in test mode." +msgid "" +"Force build of disabled apps, and carries on regardless of scan problems. " +"Only allowed in test mode." msgstr "" #: ../fdroidserver/build.py @@ -796,7 +835,7 @@ #: ../fdroidserver/update.py msgid "Invalid APK" -msgstr "" +msgstr "APK non valido" #: ../fdroidserver/metadata.py #, python-format @@ -819,7 +858,8 @@ #: ../fdroidserver/lint.py #, python-format -msgid "Invalid license tag \"%s\"! Use only tags from https://spdx.org/license-list" +msgid "" +"Invalid license tag \"%s\"! Use only tags from https://spdx.org/license-list" msgstr "" #: ../fdroidserver/lint.py @@ -866,7 +906,8 @@ msgstr "" #: ../fdroidserver/signindex.py -msgid "Java jarsigner not found! Install in standard location or set java_paths!" +msgid "" +"Java jarsigner not found! Install in standard location or set java_paths!" msgstr "" #: ../fdroidserver/lint.py @@ -879,7 +920,9 @@ #: ../fdroidserver/lint.py #, python-brace-format -msgid "Last used commit '{commit}' looks like a tag, but Update Check Mode is '{ucm}'" +msgid "" +"Last used commit '{commit}' looks like a tag, but Update Check Mode is " +"'{ucm}'" msgstr "" #: ../fdroidserver/lint.py @@ -917,7 +960,7 @@ #: ../fdroidserver/common.py msgid "No Android SDK found!" -msgstr "" +msgstr "Android SDK non trovato!" #: ../fdroidserver/import.py msgid "No android or kivy project could be found. Specify --subdir?" @@ -925,7 +968,7 @@ #: ../fdroidserver/install.py msgid "No attached devices found" -msgstr "" +msgstr "Nessun dispositivo collegato trovato" #: ../fdroidserver/metadata.py #, python-brace-format @@ -942,7 +985,7 @@ #: ../fdroidserver/import.py msgid "No information found." -msgstr "" +msgstr "Nessun informazione trovata." #: ../fdroidserver/lint.py msgid "No need to specify that the app is Free Software" @@ -950,7 +993,7 @@ #: ../fdroidserver/lint.py msgid "No need to specify that the app is for Android" -msgstr "" +msgstr "Non c'è bisogno di specificare che l'applicazione è per Android" #: ../fdroidserver/server.py msgid "No option set! Edit your config.py to set at least one of these:" @@ -999,9 +1042,8 @@ msgstr "" #: ../fdroidserver/init.py -#, fuzzy msgid "Now set these in config.py:" -msgstr "\"sdk_path\" non impostato in \"config.py\"!" +msgstr "Ora imposta i seguenti campi in config.py:" #. Translators: https://developer.android.com/guide/topics/manifest/manifest-element.html#vcode #: ../fdroidserver/update.py @@ -1162,7 +1204,9 @@ #. https://developer.android.com/guide/topics/manifest/manifest-element.html#vname #: ../fdroidserver/common.py #, python-brace-format -msgid "Reading packageName/versionCode/versionName failed, APK invalid: '{apkfilename}'" +msgid "" +"Reading packageName/versionCode/versionName failed, APK invalid: " +"'{apkfilename}'" msgstr "" #: ../fdroidserver/update.py @@ -1171,7 +1215,9 @@ msgstr "" #: ../fdroidserver/stats.py -msgid "Recalculate aggregate stats - use when changes have been made that would invalidate old cached data." +msgid "" +"Recalculate aggregate stats - use when changes have been made that would " +"invalidate old cached data." msgstr "" #: ../fdroidserver/common.py @@ -1187,13 +1233,15 @@ msgstr "" #: ../fdroidserver/build.py -msgid "Reset and create a brand new build server, even if the existing one appears to be ok." +msgid "" +"Reset and create a brand new build server, even if the existing one appears " +"to be ok." msgstr "" #: ../fdroidserver/nightly.py #, fuzzy, python-brace-format msgid "Resigning {apkfilename} with provided debug.keystore" -msgstr "Archiviando {apkfilename} con una firma invalida!" +msgstr "Archiviando {apkfilename} con il debug.keystore fornito" #: ../fdroidserver/update.py msgid "Resize all the icons exceeding the max pixel size and exit" @@ -1378,7 +1426,9 @@ msgstr "" #: ../fdroidserver/build.py -msgid "Test mode - put output in the tmp directory only, and always build, even if the output already exists." +msgid "" +"Test mode - put output in the tmp directory only, and always build, even if " +"the output already exists." msgstr "" #. Translators: https://developer.android.com/guide/topics/manifest/manifest-element.html#vcode @@ -1426,7 +1476,9 @@ msgstr "" #: ../fdroidserver/server.py ../fdroidserver/upload.py -msgid "To use awsbucket, awssecretkey and awsaccesskeyid must also be set in config.py!" +msgid "" +"To use awsbucket, awssecretkey and awsaccesskeyid must also be set in config." +"py!" msgstr "" #: ../fdroidserver/lint.py @@ -1593,7 +1645,8 @@ msgstr "" #: ../fdroidserver/common.py -msgid "Using Java's jarsigner, not recommended for verifying APKs! Use apksigner" +msgid "" +"Using Java's jarsigner, not recommended for verifying APKs! Use apksigner" msgstr "" #: ../fdroidserver/init.py @@ -1623,7 +1676,9 @@ msgstr "Avvisa riguardo possibili errori metadata" #: ../fdroidserver/update.py -msgid "When configured for signed indexes, create only unsigned indexes at this stage" +msgid "" +"When configured for signed indexes, create only unsigned indexes at this " +"stage" msgstr "" msgid "X.509 'Distiguished Name' used when generating keys" @@ -1763,9 +1818,8 @@ msgstr "" #: ../fdroid -#, fuzzy msgid "fdroid [] [-h|--help|--version|]" -msgstr "utilizzo: fdroid [-h|--help|--version] []" +msgstr "fdroid [] [-h|--help|--version|]" #: /usr/lib/python3.5/optparse.py /usr/lib/python3.6/optparse.py msgid "floating-point" @@ -1776,9 +1830,8 @@ msgstr "forza gli errori ad essere avvisi, o ignora" #: ../fdroidserver/metadata.py -#, fuzzy msgid "force metadata errors (default) to be warnings, or to be ignored." -msgstr "forza gli errori ad essere avvisi, o ignora" +msgstr "forza gli errori di metadati (predefinito) come avvisi, o da ignorare." #: ../fdroidserver/common.py msgid "git svn clone failed" @@ -1814,12 +1867,15 @@ #: /usr/lib/python3.5/argparse.py /usr/lib/python3.6/argparse.py #, python-format -msgid "invalid option string %(option)r: must start with a character %(prefix_chars)r" +msgid "" +"invalid option string %(option)r: must start with a character " +"%(prefix_chars)r" msgstr "" #: ../fdroidserver/server.py #, python-brace-format -msgid "local_copy_dir does not end with \"fdroid\", perhaps you meant: \"{path}\"" +msgid "" +"local_copy_dir does not end with \"fdroid\", perhaps you meant: \"{path}\"" msgstr "" #: ../fdroidserver/server.py @@ -1828,7 +1884,7 @@ #: ../fdroidserver/server.py msgid "local_copy_dir must be directory, not a file!" -msgstr "" +msgstr "local_copy_dir deve essere una cartella, non un file!" #: ../fdroidserver/index.py #, python-format @@ -1854,9 +1910,8 @@ msgstr "opzione inesistente: %s" #: ../fdroid -#, fuzzy msgid "no version info found!" -msgstr "Eccezione sconosciuta trovata!" +msgstr "nessuna informazione sulla versione è stata trovata!" #: /usr/lib/python3.5/argparse.py /usr/lib/python3.6/argparse.py #, python-format @@ -1932,12 +1987,16 @@ #: ../fdroidserver/signatures.py #, python-brace-format -msgid "refuse downloading via insecure HTTP connection (use HTTPS or specify --no-https-check): {apkfilename}" +msgid "" +"refuse downloading via insecure HTTP connection (use HTTPS or specify --no-" +"https-check): {apkfilename}" msgstr "" #: ../fdroidserver/signatures.py #, python-brace-format -msgid "refuse downloading via insecure http connection (use https or specify --no-https-check): {apkfilename}" +msgid "" +"refuse downloading via insecure http connection (use https or specify --no-" +"https-check): {apkfilename}" msgstr "" #: ../fdroidserver/server.py ../fdroidserver/upload.py @@ -2023,9 +2082,9 @@ msgstr "" #: ../fdroidserver/update.py -#, fuzzy, python-brace-format +#, python-brace-format msgid "{apkfilename}'s AndroidManifest.xml has a bad date: " -msgstr "AndroidManifest.xml non ha una data" +msgstr "L'AndroidManifest.xml di {apkfilename} ha una data non corretta: " #: ../fdroidserver/update.py #, python-brace-format diff -Nru fdroidserver-1.0.2/locale/ko/LC_MESSAGES/fdroidserver.po fdroidserver-1.0.6/locale/ko/LC_MESSAGES/fdroidserver.po --- fdroidserver-1.0.2/locale/ko/LC_MESSAGES/fdroidserver.po 2018-02-22 12:03:03.000000000 +0000 +++ fdroidserver-1.0.6/locale/ko/LC_MESSAGES/fdroidserver.po 2018-05-15 10:39:10.000000000 +0000 @@ -7,15 +7,16 @@ "Project-Id-Version: fdroidserver 0.8-135-g16dd6d28\n" "Report-Msgid-Bugs-To: https://gitlab.com/fdroid/fdroidserver/issues\n" "POT-Creation-Date: 2018-02-13 09:01+0100\n" -"PO-Revision-Date: 2017-11-03 13:14+0000\n" +"PO-Revision-Date: 2018-04-17 13:03+0000\n" "Last-Translator: Myeongjin Lee \n" -"Language-Team: Korean \n" +"Language-Team: Korean \n" "Language: ko\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Weblate 2.18-dev\n" +"X-Generator: Weblate 3.0-dev\n" #: ../fdroidserver/nightly.py msgid "" @@ -62,9 +63,9 @@ msgstr[0] "" #: ../fdroidserver/mirror.py -#, fuzzy, python-format +#, python-format msgid "%(prog)s [options] url" -msgstr "%prog [옵션]" +msgstr "%(prog)s [옵션] url" #: /usr/lib/python3.5/argparse.py /usr/lib/python3.6/argparse.py #, python-format @@ -139,7 +140,9 @@ #: ../fdroidserver/common.py #, python-brace-format -msgid "'{field}' will be in random order! Use () or [] brackets if order is important!" +msgid "" +"'{field}' will be in random order! Use () or [] brackets if order is " +"important!" msgstr "" #: ../fdroidserver/common.py @@ -199,7 +202,9 @@ msgstr "" #: ../fdroidserver/import.py -msgid "Allows a different revision (or git branch) to be specified for the initial import" +msgid "" +"Allows a different revision (or git branch) to be specified for the initial " +"import" msgstr "" #: ../fdroidserver/mirror.py @@ -233,9 +238,9 @@ #. Google, it is part of the Android SDK. So it probably shouldn't be #. translated or transliterated. #: ../fdroidserver/common.py -#, fuzzy, python-brace-format +#, python-brace-format msgid "Android build-tools path '{path}' does not exist!" -msgstr "Android SDK 경로 '{path}' 존재하지 않습니다!" +msgstr "Android 빌드 도구 경로 '{path}' 존재하지 않습니다!" #: ../fdroidserver/update.py msgid "AndroidManifest.xml has no date" @@ -256,7 +261,9 @@ msgstr "" #: ../fdroidserver/mirror.py -msgid "Base URL to mirror, can include the index signing key using the query string: ?fingerprint=" +msgid "" +"Base URL to mirror, can include the index signing key using the query " +"string: ?fingerprint=" msgstr "" #. Translators: https://developer.android.com/guide/topics/manifest/manifest-element.html#vname @@ -288,7 +295,9 @@ #: ../fdroidserver/metadata.py #, python-brace-format -msgid "Build should have comma-separated versionName and versionCode, not \"{value}\", in {linedesc}" +msgid "" +"Build should have comma-separated versionName and versionCode, not " +"\"{value}\", in {linedesc}" msgstr "" #: ../fdroidserver/init.py @@ -345,7 +354,9 @@ #: ../fdroidserver/update.py #, python-brace-format -msgid "Checking archiving for {appid} - apks:{integer}, keepversions:{keep}, archapks:{arch}" +msgid "" +"Checking archiving for {appid} - apks:{integer}, keepversions:{keep}, " +"archapks:{arch}" msgstr "" #: ../fdroidserver/dscanner.py @@ -503,7 +514,9 @@ msgstr "" #: ../fdroidserver/build.py -msgid "Don't refresh the repository, useful when testing a build with no internet connection" +msgid "" +"Don't refresh the repository, useful when testing a build with no internet " +"connection" msgstr "" #: ../fdroidserver/server.py ../fdroidserver/nightly.py @@ -530,7 +543,8 @@ #: ../fdroidserver/metadata.py #, python-brace-format -msgid "Duplicate build recipe found for versionCode {versionCode} in {linedesc}" +msgid "" +"Duplicate build recipe found for versionCode {versionCode} in {linedesc}" msgstr "" #: ../fdroidserver/lint.py @@ -655,7 +669,9 @@ msgstr "" #: ../fdroidserver/build.py -msgid "Force build of disabled apps, and carries on regardless of scan problems. Only allowed in test mode." +msgid "" +"Force build of disabled apps, and carries on regardless of scan problems. " +"Only allowed in test mode." msgstr "" #: ../fdroidserver/build.py @@ -811,7 +827,8 @@ #: ../fdroidserver/lint.py #, python-format -msgid "Invalid license tag \"%s\"! Use only tags from https://spdx.org/license-list" +msgid "" +"Invalid license tag \"%s\"! Use only tags from https://spdx.org/license-list" msgstr "" #: ../fdroidserver/lint.py @@ -858,7 +875,8 @@ msgstr "" #: ../fdroidserver/signindex.py -msgid "Java jarsigner not found! Install in standard location or set java_paths!" +msgid "" +"Java jarsigner not found! Install in standard location or set java_paths!" msgstr "" #: ../fdroidserver/lint.py @@ -871,7 +889,9 @@ #: ../fdroidserver/lint.py #, python-brace-format -msgid "Last used commit '{commit}' looks like a tag, but Update Check Mode is '{ucm}'" +msgid "" +"Last used commit '{commit}' looks like a tag, but Update Check Mode is " +"'{ucm}'" msgstr "" #: ../fdroidserver/lint.py @@ -1102,9 +1122,8 @@ msgstr "" #: ../fdroidserver/update.py -#, fuzzy msgid "Produce human-readable XML/JSON for index files" -msgstr "사람이 읽을 수 있는 index.xml을 생산합니다" +msgstr "사람이 읽을 수 있는 색인 파일을 위한 XML/JSON을 생산합니다" #: ../fdroidserver/update.py msgid "Produce human-readable index.xml" @@ -1154,7 +1173,9 @@ #. https://developer.android.com/guide/topics/manifest/manifest-element.html#vname #: ../fdroidserver/common.py #, python-brace-format -msgid "Reading packageName/versionCode/versionName failed, APK invalid: '{apkfilename}'" +msgid "" +"Reading packageName/versionCode/versionName failed, APK invalid: " +"'{apkfilename}'" msgstr "" #: ../fdroidserver/update.py @@ -1163,7 +1184,9 @@ msgstr "" #: ../fdroidserver/stats.py -msgid "Recalculate aggregate stats - use when changes have been made that would invalidate old cached data." +msgid "" +"Recalculate aggregate stats - use when changes have been made that would " +"invalidate old cached data." msgstr "" #: ../fdroidserver/common.py @@ -1179,7 +1202,9 @@ msgstr "" #: ../fdroidserver/build.py -msgid "Reset and create a brand new build server, even if the existing one appears to be ok." +msgid "" +"Reset and create a brand new build server, even if the existing one appears " +"to be ok." msgstr "" #: ../fdroidserver/nightly.py @@ -1369,7 +1394,9 @@ msgstr "" #: ../fdroidserver/build.py -msgid "Test mode - put output in the tmp directory only, and always build, even if the output already exists." +msgid "" +"Test mode - put output in the tmp directory only, and always build, even if " +"the output already exists." msgstr "" #. Translators: https://developer.android.com/guide/topics/manifest/manifest-element.html#vcode @@ -1417,7 +1444,9 @@ msgstr "" #: ../fdroidserver/server.py ../fdroidserver/upload.py -msgid "To use awsbucket, awssecretkey and awsaccesskeyid must also be set in config.py!" +msgid "" +"To use awsbucket, awssecretkey and awsaccesskeyid must also be set in config." +"py!" msgstr "" #: ../fdroidserver/lint.py @@ -1584,7 +1613,8 @@ msgstr "" #: ../fdroidserver/common.py -msgid "Using Java's jarsigner, not recommended for verifying APKs! Use apksigner" +msgid "" +"Using Java's jarsigner, not recommended for verifying APKs! Use apksigner" msgstr "" #: ../fdroidserver/init.py @@ -1614,7 +1644,9 @@ msgstr "가능한 메타데이터 오류에 대해 경고합니다" #: ../fdroidserver/update.py -msgid "When configured for signed indexes, create only unsigned indexes at this stage" +msgid "" +"When configured for signed indexes, create only unsigned indexes at this " +"stage" msgstr "" msgid "X.509 'Distiguished Name' used when generating keys" @@ -1748,14 +1780,12 @@ msgstr "" #: ../fdroid -#, fuzzy msgid "fdroid [-h|--help|--version] []" -msgstr "사용법: fdroid [-h|--help|--version] <명령> [<인수>]" +msgstr "fdroid [-h|--help|--version] <명령> [<인수>]" #: ../fdroid -#, fuzzy msgid "fdroid [] [-h|--help|--version|]" -msgstr "사용법: fdroid [-h|--help|--version] <명령> [<인수>]" +msgstr "fdroid [<명령>] [-h|--help|--version|<인수>]" #: /usr/lib/python3.5/optparse.py /usr/lib/python3.6/optparse.py msgid "floating-point" @@ -1803,12 +1833,15 @@ #: /usr/lib/python3.5/argparse.py /usr/lib/python3.6/argparse.py #, python-format -msgid "invalid option string %(option)r: must start with a character %(prefix_chars)r" +msgid "" +"invalid option string %(option)r: must start with a character " +"%(prefix_chars)r" msgstr "" #: ../fdroidserver/server.py #, python-brace-format -msgid "local_copy_dir does not end with \"fdroid\", perhaps you meant: \"{path}\"" +msgid "" +"local_copy_dir does not end with \"fdroid\", perhaps you meant: \"{path}\"" msgstr "" #: ../fdroidserver/server.py @@ -1920,12 +1953,16 @@ #: ../fdroidserver/signatures.py #, python-brace-format -msgid "refuse downloading via insecure HTTP connection (use HTTPS or specify --no-https-check): {apkfilename}" +msgid "" +"refuse downloading via insecure HTTP connection (use HTTPS or specify --no-" +"https-check): {apkfilename}" msgstr "" #: ../fdroidserver/signatures.py #, python-brace-format -msgid "refuse downloading via insecure http connection (use https or specify --no-https-check): {apkfilename}" +msgid "" +"refuse downloading via insecure http connection (use https or specify --no-" +"https-check): {apkfilename}" msgstr "" #: ../fdroidserver/server.py ../fdroidserver/upload.py Binary files /tmp/tmpCoX7hp/hZW9rVCDMC/fdroidserver-1.0.2/locale/pt_BR/LC_MESSAGES/fdroidserver.mo and /tmp/tmpCoX7hp/RzjpYOWXQL/fdroidserver-1.0.6/locale/pt_BR/LC_MESSAGES/fdroidserver.mo differ diff -Nru fdroidserver-1.0.2/locale/pt_BR/LC_MESSAGES/fdroidserver.po fdroidserver-1.0.6/locale/pt_BR/LC_MESSAGES/fdroidserver.po --- fdroidserver-1.0.2/locale/pt_BR/LC_MESSAGES/fdroidserver.po 2018-02-22 12:03:03.000000000 +0000 +++ fdroidserver-1.0.6/locale/pt_BR/LC_MESSAGES/fdroidserver.po 2018-05-15 10:39:10.000000000 +0000 @@ -7,21 +7,24 @@ "Project-Id-Version: fdroidserver 0.9\n" "Report-Msgid-Bugs-To: https://gitlab.com/fdroid/fdroidserver/issues\n" "POT-Creation-Date: 2018-02-13 09:01+0100\n" -"PO-Revision-Date: 2017-11-27 12:41+0100\n" -"Last-Translator: Guilherme Peev dos Santos \n" -"Language-Team: Portuguese (Brazil) \n" +"PO-Revision-Date: 2018-03-19 21:47+0000\n" +"Last-Translator: Lucas Couri Trevizan \n" +"Language-Team: Portuguese (Brazil) \n" "Language: pt_BR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n > 1;\n" -"X-Generator: Weblate 2.18-dev\n" +"X-Generator: Weblate 2.20-dev\n" #: ../fdroidserver/nightly.py msgid "" "\n" "SSH Public Key to be used as Deploy Key:" msgstr "" +"\n" +"Chave pública SSH para ser usada como chave de implantar:" #: ../fdroidserver/nightly.py #, python-brace-format @@ -29,6 +32,8 @@ "\n" "{path} encoded for the DEBUG_KEYSTORE secret variable:" msgstr "" +"\n" +"{path} codificado para a variável secreta DEBUG_KEYSTORE:" #: ../fdroidserver/lint.py #, python-format @@ -38,22 +43,22 @@ #: ../fdroidserver/update.py #, python-brace-format msgid "\"{path}\" contains outdated {name} ({version})" -msgstr "" +msgstr "\"{path}\" contém {name} ({version}) desatualizado" #: ../fdroidserver/update.py #, python-brace-format msgid "\"{path}\" contains recent {name} ({version})" -msgstr "" +msgstr "\"{path}\" contém {name} ({version}) recente" #: ../fdroidserver/server.py ../fdroidserver/upload.py #, python-brace-format msgid "\"{path}\" exists but s3cmd is not installed!" -msgstr "" +msgstr "\"{path}\" existe, mas s3cmd não está instalado!" #: ../fdroidserver/metadata.py #, python-brace-format msgid "\"{path}\" is not an accepted format, convert to: {formats}" -msgstr "" +msgstr "\"{path}\" não é um formato aceito, converter para: {formats}" #: /usr/lib/python3.5/optparse.py /usr/lib/python3.6/optparse.py #, python-format @@ -63,9 +68,9 @@ msgstr[1] "opção %(option)s necessita %(number)d argumentos" #: ../fdroidserver/mirror.py -#, fuzzy, python-format +#, python-format msgid "%(prog)s [options] url" -msgstr "%prog [opções]" +msgstr "%(prog)s [opções] url" #: /usr/lib/python3.5/argparse.py /usr/lib/python3.6/argparse.py #, python-format @@ -98,7 +103,7 @@ #: ../fdroidserver/index.py ../fdroidserver/common.py msgid "'keypass' not found in config.py!" -msgstr "" +msgstr "'keypass' não foi encontrada em config.py!" #: ../fdroidserver/index.py ../fdroidserver/common.py msgid "'keystore' not found in config.py!" @@ -118,7 +123,7 @@ #: ../fdroidserver/common.py msgid "'sdk_path' not set in 'config.py'!" -msgstr "" +msgstr "'sdk_path' não definido em 'config.py'!" #. Translators: "build-tools" is the file name of a package from #. Google, it is part of the Android SDK. So it probably shouldn't be @@ -127,36 +132,41 @@ #, python-brace-format msgid "'{aapt}' is too old, fdroid requires build-tools-23.0.0 or newer!" msgstr "" +"'{aapt}' é muito antigo, fdroid requer build-tools-23.0.0 ou mais recente!" #: ../fdroidserver/common.py #, python-brace-format msgid "'{aapt}' is too old, fdroid requires build-tools-{version} or newer!" msgstr "" +"'{aapt}' é muito antigo, fdroid requer build-tools-{version} ou mais recente!" #: ../fdroidserver/install.py #, python-brace-format msgid "'{apkfilename}' is already installed on {dev}." -msgstr "" +msgstr "'{apkfilename}' já está instalado no {dev}." #: ../fdroidserver/common.py #, python-brace-format -msgid "'{field}' will be in random order! Use () or [] brackets if order is important!" +msgid "" +"'{field}' will be in random order! Use () or [] brackets if order is " +"important!" msgstr "" +"'{field}' será em ordem aleatória! Use () ou [] se a ordem for importante!" #: ../fdroidserver/common.py #, python-brace-format msgid "'{path}' failed to execute!" -msgstr "" +msgstr "'{path}' falhou ao executar!" #: ../fdroidserver/metadata.py #, python-brace-format msgid "'{value}' is not a valid {field} in {appid}. Regex pattern: {pattern}" -msgstr "" +msgstr "'{value}' não é um{field} válido em {appid}. Regex padrão: {pattern}" #: ../fdroidserver/checkupdates.py #, python-brace-format msgid "...checkupdate failed for {appid} : {error}" -msgstr "" +msgstr "...checkupdate falhou para {appid} : {error}" #: /usr/lib/python3.5/argparse.py /usr/lib/python3.6/argparse.py msgid ".__call__() not defined" @@ -165,51 +175,54 @@ #: ../fdroidserver/metadata.py msgid ".fdroid.txt is not supported! Convert to .fdroid.yml or .fdroid.json." msgstr "" +".fdroid.txt não é suportado! Converter para .fdroid.yml ou .fdroid.json." #: ../fdroidserver/lint.py msgid "/issues is missing" -msgstr "" +msgstr "está faltando o /issues" #: ../fdroidserver/mirror.py -#, fuzzy msgid "A URL is required as an argument!" -msgstr "Opção -%s necessita argumento" +msgstr "Uma URL é necessária como um argumento!" #: ../fdroid -#, fuzzy msgid "Add PGP signatures using GnuPG for packages in repo" -msgstr "Adicione assinaturas gpg para os pacotes no repositório" +msgstr "Adicione assinaturas PGP usando GnuPG para os pacotes no repositório" #: ../fdroid msgid "Add a new application from its source code" msgstr "Adicione um novo aplicativo a partir do seu código fonte" #: ../fdroidserver/update.py -#, fuzzy msgid "Add a repo signing key to an unsigned repo" -msgstr "Criar uma chave de assinatura do repositório em uma keystore" +msgstr "Adicionar uma chave de assinatura para um repositório não assinado" #: ../fdroidserver/update.py -#, fuzzy msgid "Add skeleton metadata files for APKs that are missing them" -msgstr "Criar as bases dos arquivos de metadados que estão faltando" +msgstr "" +"Adicionar arquivos de metadados de esqueleto para APKs que estão faltando-" +"lhes" #: ../fdroidserver/update.py #, python-brace-format msgid "Adding new repo for only {name}" -msgstr "" +msgstr "Adicionando novo repositório para apenas {name}" #: ../fdroidserver/init.py msgid "Alias of the repo signing key in the keystore" msgstr "Alias (apelido) da chave de assinatura do repositório na keystore" #: ../fdroidserver/import.py -msgid "Allows a different revision (or git branch) to be specified for the initial import" -msgstr "Permite que uma revisão diferente (ou árvore do git) seja especificada para a importação inicial" +msgid "" +"Allows a different revision (or git branch) to be specified for the initial " +"import" +msgstr "" +"Permite que uma revisão diferente (ou árvore do git) seja especificada para " +"a importação inicial" #: ../fdroidserver/mirror.py msgid "Also mirror the full archive section" -msgstr "" +msgstr "Também espelhar o arquivo completo da seção" #: ../fdroidserver/lint.py msgid "Also warn about formatting issues, like rewritemeta -l" @@ -218,21 +231,21 @@ #: ../fdroidserver/common.py #, python-brace-format msgid "Android SDK '{path}' does not have '{dirname}' installed!" -msgstr "" +msgstr "O SDK Android '{path}' não tem '{dirname}' instalado!" #: ../fdroidserver/common.py msgid "Android SDK not found!" -msgstr "" +msgstr "SDK do Android não foi encontrado!" #: ../fdroidserver/common.py #, python-brace-format msgid "Android SDK path '{path}' does not exist!" -msgstr "" +msgstr "O caminho do SDK Android '{path}' não existe!" #: ../fdroidserver/common.py #, python-brace-format msgid "Android SDK path '{path}' is not a directory!" -msgstr "" +msgstr "O caminho do SDK Android '{path}' não é um diretório!" #. Translators: "build-tools" is the file name of a package from #. Google, it is part of the Android SDK. So it probably shouldn't be @@ -240,28 +253,30 @@ #: ../fdroidserver/common.py #, python-brace-format msgid "Android build-tools path '{path}' does not exist!" -msgstr "" +msgstr "Caminho de build-tools do Android '{path}' não existe!" #: ../fdroidserver/update.py msgid "AndroidManifest.xml has no date" -msgstr "" +msgstr "AndroidManifest.xml não tem data" #: ../fdroidserver/lint.py #, python-brace-format msgid "App is in '{repo}' but has a link to {url}" -msgstr "" +msgstr "O App está em '{repo}' mas tem um link para {url}" #: ../fdroidserver/lint.py msgid "Appending .git is not necessary" -msgstr "" +msgstr "Acrescentar .git não é necessário" #: ../fdroidserver/update.py #, python-brace-format msgid "Archiving {apkfilename} with invalid signature!" -msgstr "" +msgstr "Arquivamento {apkfilename} com assinatura inválida!" #: ../fdroidserver/mirror.py -msgid "Base URL to mirror, can include the index signing key using the query string: ?fingerprint=" +msgid "" +"Base URL to mirror, can include the index signing key using the query " +"string: ?fingerprint=" msgstr "" #. Translators: https://developer.android.com/guide/topics/manifest/manifest-element.html#vname @@ -293,7 +308,9 @@ #: ../fdroidserver/metadata.py #, python-brace-format -msgid "Build should have comma-separated versionName and versionCode, not \"{value}\", in {linedesc}" +msgid "" +"Build should have comma-separated versionName and versionCode, not " +"\"{value}\", in {linedesc}" msgstr "" #: ../fdroidserver/init.py @@ -351,7 +368,9 @@ #: ../fdroidserver/update.py #, python-brace-format -msgid "Checking archiving for {appid} - apks:{integer}, keepversions:{keep}, archapks:{arch}" +msgid "" +"Checking archiving for {appid} - apks:{integer}, keepversions:{keep}, " +"archapks:{arch}" msgstr "" #: ../fdroidserver/dscanner.py @@ -367,7 +386,6 @@ msgstr "Limpar todos os containers e então sair" #: ../fdroidserver/update.py -#, fuzzy msgid "Clean update - don't uses caches, reprocess all APKs" msgstr "Atualização limpa - não usa cache, reprocessa todos os APKs" @@ -466,7 +484,7 @@ #: ../fdroidserver/update.py msgid "Delete APKs and/or OBBs without metadata from the repo" -msgstr "Apagar do repositório os APKs e/ou OBBs sem metadados" +msgstr "Apagar os APKs e/ou OBBs sem metadados do repositório" #: ../fdroidserver/update.py #, python-brace-format @@ -498,9 +516,8 @@ msgstr "" #: ../fdroidserver/init.py -#, fuzzy msgid "Do not prompt for Android SDK path, just fail" -msgstr "Não solicitar um caminho para o Android SDK, apenas emitir falha" +msgstr "Não solicitar o caminho do Android SDK, apenas falhe" #: ../fdroidserver/build.py msgid "Don't create a source tarball, useful when testing a build" @@ -511,8 +528,12 @@ msgstr "Não fazer nada relacionado a registros de alterações" #: ../fdroidserver/build.py -msgid "Don't refresh the repository, useful when testing a build with no internet connection" -msgstr "Não atualizar o repositório; útil quando testando uma compilação sem conexão com a internet" +msgid "" +"Don't refresh the repository, useful when testing a build with no internet " +"connection" +msgstr "" +"Não atualizar o repositório; útil quando testando uma compilação sem conexão " +"com a internet" #: ../fdroidserver/server.py ../fdroidserver/nightly.py #: ../fdroidserver/upload.py @@ -538,7 +559,8 @@ #: ../fdroidserver/metadata.py #, python-brace-format -msgid "Duplicate build recipe found for versionCode {versionCode} in {linedesc}" +msgid "" +"Duplicate build recipe found for versionCode {versionCode} in {linedesc}" msgstr "" #: ../fdroidserver/lint.py @@ -602,9 +624,8 @@ msgstr "" #: ../fdroidserver/publish.py -#, fuzzy msgid "Failed to align application" -msgstr "Compilar todos aplicativos disponíveis" +msgstr "Falha ao alinhar a aplicação" #: ../fdroidserver/server.py ../fdroidserver/upload.py #, python-brace-format @@ -635,9 +656,8 @@ msgstr "" #: ../fdroidserver/common.py -#, fuzzy msgid "Failed to zipalign application" -msgstr "Compilar todos aplicativos disponíveis" +msgstr "Falha no zipaligning do aplicativo" #: ../fdroidserver/build.py #, python-brace-format @@ -665,8 +685,12 @@ msgstr "" #: ../fdroidserver/build.py -msgid "Force build of disabled apps, and carries on regardless of scan problems. Only allowed in test mode." -msgstr "Forçar a compilação de aplicativos desativados e continuar independentemente de problemas de escaneamento. Apenas permitido no modo de teste." +msgid "" +"Force build of disabled apps, and carries on regardless of scan problems. " +"Only allowed in test mode." +msgstr "" +"Forçar a compilação de aplicativos desativados e continuar independentemente " +"de problemas de escaneamento. Apenas permitido no modo de teste." #: ../fdroidserver/build.py #, python-brace-format @@ -688,9 +712,9 @@ msgstr "" #: ../fdroidserver/metadata.py -#, fuzzy, python-brace-format +#, python-brace-format msgid "Found multiple metadata files for {appid}" -msgstr "Criar as bases dos arquivos de metadados que estão faltando" +msgstr "Encontrados vários ficheiros de metadados para {appid}" #: ../fdroidserver/index.py msgid "Found multiple signing certificates for repository." @@ -711,9 +735,9 @@ msgstr "" #: ../fdroidserver/update.py -#, fuzzy, python-brace-format +#, python-brace-format msgid "Generated skeleton metadata for {appid}" -msgstr "Criar as bases dos arquivos de metadados que estão faltando" +msgstr "Gerado esqueleto de metadados para {appid}" #: ../fdroidserver/common.py #, python-format @@ -821,7 +845,8 @@ #: ../fdroidserver/lint.py #, python-format -msgid "Invalid license tag \"%s\"! Use only tags from https://spdx.org/license-list" +msgid "" +"Invalid license tag \"%s\"! Use only tags from https://spdx.org/license-list" msgstr "" #: ../fdroidserver/lint.py @@ -868,7 +893,8 @@ msgstr "" #: ../fdroidserver/signindex.py -msgid "Java jarsigner not found! Install in standard location or set java_paths!" +msgid "" +"Java jarsigner not found! Install in standard location or set java_paths!" msgstr "" #: ../fdroidserver/lint.py @@ -876,13 +902,14 @@ msgstr "" #: ../fdroidserver/init.py -#, fuzzy msgid "Keystore for signing key:\t" -msgstr "Caminho até a keystore para a chave de assinatura do repositório" +msgstr "Armazenamento de chaves de assinatura:\t" #: ../fdroidserver/lint.py #, python-brace-format -msgid "Last used commit '{commit}' looks like a tag, but Update Check Mode is '{ucm}'" +msgid "" +"Last used commit '{commit}' looks like a tag, but Update Check Mode is " +"'{ucm}'" msgstr "" #: ../fdroidserver/lint.py @@ -1059,12 +1086,15 @@ msgstr "" #: ../fdroidserver/import.py -#, fuzzy msgid "Path to main Android project subdirectory, if not in root." -msgstr "Caminho para os principais subdiretórios do projeto android, se não estiver na raiz (root)." +msgstr "" +"Caminho para os principais subdiretórios do projeto android, se não estiver " +"na raiz (root)." msgid "Path to main android project subdirectory, if not in root." -msgstr "Caminho para os principais subdiretórios do projeto android, se não estiver na raiz (root)." +msgstr "" +"Caminho para os principais subdiretórios do projeto android, se não estiver " +"na raiz (root)." #: ../fdroidserver/init.py msgid "Path to the Android SDK (sometimes set in ANDROID_HOME)" @@ -1079,9 +1109,8 @@ msgstr "Caminho até a keystore para a chave de assinatura do repositório" #: ../fdroidserver/dscanner.py -#, fuzzy msgid "Prepare Drozer to run a scan" -msgstr "Preparar o Drozer para fazer um escaneamento" +msgstr "Preparar o Drozer para executar uma varredura" msgid "Prepare drozer to run a scan" msgstr "Preparar o Drozer para fazer um escaneamento" @@ -1115,9 +1144,8 @@ msgstr "" #: ../fdroidserver/update.py -#, fuzzy msgid "Produce human-readable XML/JSON for index files" -msgstr "Gerar um index.xml legível por humanos" +msgstr "Produzir XML/JSON legível por humanos para arquivos de índice" #: ../fdroidserver/update.py msgid "Produce human-readable index.xml" @@ -1136,9 +1164,9 @@ msgstr "Mandar o registro de mudanças para este repositório git remoto" #: ../fdroidserver/server.py ../fdroidserver/upload.py -#, fuzzy, python-brace-format +#, python-brace-format msgid "Pushing binary transparency log to {url}" -msgstr "Atualizar o log de transparência de um binário para um URL" +msgstr "Atualizar o log de transparência de um binário para {url}" #: ../fdroidserver/server.py ../fdroidserver/upload.py #, python-brace-format @@ -1167,7 +1195,9 @@ #. https://developer.android.com/guide/topics/manifest/manifest-element.html#vname #: ../fdroidserver/common.py #, python-brace-format -msgid "Reading packageName/versionCode/versionName failed, APK invalid: '{apkfilename}'" +msgid "" +"Reading packageName/versionCode/versionName failed, APK invalid: " +"'{apkfilename}'" msgstr "" #: ../fdroidserver/update.py @@ -1176,9 +1206,12 @@ msgstr "" #: ../fdroidserver/stats.py -#, fuzzy -msgid "Recalculate aggregate stats - use when changes have been made that would invalidate old cached data." -msgstr "Recalcular estatísticas agregadas - usar quando mudar " +msgid "" +"Recalculate aggregate stats - use when changes have been made that would " +"invalidate old cached data." +msgstr "" +"Recalcular estatísticas agregadas - use quando foram feitas alterações que " +"invalidariam os dados cache antigos." #: ../fdroidserver/common.py msgid "Removing specified files" @@ -1193,8 +1226,12 @@ msgstr "Relatório sobre o status dos dados de compilação" #: ../fdroidserver/build.py -msgid "Reset and create a brand new build server, even if the existing one appears to be ok." -msgstr "Redefinir e criar um novo servidor de compilação, mesmo que o existente parecer normal." +msgid "" +"Reset and create a brand new build server, even if the existing one appears " +"to be ok." +msgstr "" +"Redefinir e criar um novo servidor de compilação, mesmo que o existente " +"parecer normal." #: ../fdroidserver/nightly.py #, python-brace-format @@ -1203,7 +1240,8 @@ #: ../fdroidserver/update.py msgid "Resize all the icons exceeding the max pixel size and exit" -msgstr "Redimensionar todos os ícones que excedam o tamanho máximo de pixels e sair" +msgstr "" +"Redimensionar todos os ícones que excedam o tamanho máximo de pixels e sair" #: ../fdroidserver/common.py msgid "Restrict output to warnings and errors" @@ -1228,9 +1266,8 @@ msgstr "" #: ../fdroidserver/lint.py -#, fuzzy msgid "Run rewritemeta to fix formatting" -msgstr "Reescrever para um formato específico: " +msgstr "Executar rewritemeta para corrigir a formatação" #: ../fdroidserver/server.py ../fdroidserver/upload.py msgid "Running first pass with MD5 checking disabled" @@ -1288,9 +1325,8 @@ msgstr "" #: ../fdroidserver/build.py -#, fuzzy msgid "Setup an emulator, install the APK on it and perform a Drozer scan" -msgstr "Configurar um emulador, instalar o apk nele e escanear com o drozer" +msgstr "Configurar um emulador, instalar o apk nele e escanear com o Drozer" msgid "Setup an emulator, install the apk on it and perform a drozer scan" msgstr "Configurar um emulador, instalar o apk nele e escanear com o drozer" @@ -1305,7 +1341,8 @@ #: ../fdroidserver/build.py msgid "Skip scanning the source code for binaries and other problems" -msgstr "Pular o escaneamento do código fonte atrás de binários e outros problemas" +msgstr "" +"Pular o escaneamento do código fonte atrás de binários e outros problemas" #: ../fdroidserver/update.py #, python-brace-format @@ -1338,21 +1375,21 @@ #: ../fdroidserver/server.py ../fdroidserver/upload.py msgid "Specify an identity file to provide to SSH for rsyncing" -msgstr "Especifique um arquivo identidade para fornecer ao SSH para usar o rsync" +msgstr "" +"Especifique um arquivo identidade para fornecer ao SSH para usar o rsync" #: ../fdroidserver/update.py -#, fuzzy msgid "Specify editor to use in interactive mode. Default " -msgstr "Especificar o editor que será usado no modo interativo. O padrão é %s" +msgstr "Especifique o editor a ser usado no modo interativo. Padrão " #, c-format msgid "Specify editor to use in interactive mode. Default %s" msgstr "Especificar o editor que será usado no modo interativo. O padrão é %s" #: ../fdroidserver/update.py -#, fuzzy, python-brace-format +#, python-brace-format msgid "Specify editor to use in interactive mode. Default is {path}" -msgstr "Especificar o editor que será usado no modo interativo. O padrão é %s" +msgstr "Especifique o editor a ser usado no modo interativo. O padrão é {path}" #: ../fdroidserver/build.py msgid "Specify that we're running on the build server" @@ -1387,8 +1424,12 @@ msgstr "" #: ../fdroidserver/build.py -msgid "Test mode - put output in the tmp directory only, and always build, even if the output already exists." -msgstr "Modo de teste - coloque a saída apenas no diretório tmp e sempre compile, mesmo que a saída já exista." +msgid "" +"Test mode - put output in the tmp directory only, and always build, even if " +"the output already exists." +msgstr "" +"Modo de teste - coloque a saída apenas no diretório tmp e sempre compile, " +"mesmo que a saída já exista." #. Translators: https://developer.android.com/guide/topics/manifest/manifest-element.html#vcode #: ../fdroidserver/update.py @@ -1398,16 +1439,17 @@ #: ../fdroidserver/btlog.py msgid "The base URL for the repo to log (default: https://f-droid.org)" -msgstr "O URL base para o registro de mudanças do repositório (padrão: https://f-droid.org)" +msgstr "" +"O URL base para o registro de mudanças do repositório (padrão: https://f-" +"droid.org)" #: ../fdroidserver/mirror.py msgid "The directory to write the mirror to" msgstr "" #: ../fdroidserver/server.py -#, fuzzy msgid "The only commands currently supported are 'init' and 'update'" -msgstr "comando para executar, seja 'init' ou 'update'" +msgstr "Os únicos comandos suportados atualmente são 'init' e 'update'" #: ../fdroidserver/index.py msgid "The repository's fingerprint does not match." @@ -1436,7 +1478,9 @@ msgstr "" #: ../fdroidserver/server.py ../fdroidserver/upload.py -msgid "To use awsbucket, awssecretkey and awsaccesskeyid must also be set in config.py!" +msgid "" +"To use awsbucket, awssecretkey and awsaccesskeyid must also be set in config." +"py!" msgstr "" #: ../fdroidserver/lint.py @@ -1477,9 +1521,9 @@ msgstr "" #: ../fdroidserver/metadata.py -#, fuzzy, python-brace-format +#, python-brace-format msgid "Unknown metadata format: {path}" -msgstr "Criar as bases dos arquivos de metadados que estão faltando" +msgstr "Formato de metadados desconhecido: {path}" #: ../fdroidserver/common.py msgid "Unknown version of aapt, might cause problems: " @@ -1591,12 +1635,15 @@ msgstr "Usar servidor de compilação" #: ../fdroidserver/update.py -#, fuzzy msgid "Use date from APK instead of current time for newly added APKs" -msgstr "Usar a data do apk ao invés do horário atual para APKs recentemente adicionados" +msgstr "" +"Usar a data do apk ao invés do horário atual para APKs recentemente " +"adicionados" msgid "Use date from apk instead of current time for newly added apks" -msgstr "Usar a data do apk ao invés do horário atual para APKs recentemente adicionados" +msgstr "" +"Usar a data do apk ao invés do horário atual para APKs recentemente " +"adicionados" #: ../fdroidserver/server.py ../fdroidserver/upload.py #, python-brace-format @@ -1604,7 +1651,8 @@ msgstr "" #: ../fdroidserver/common.py -msgid "Using Java's jarsigner, not recommended for verifying APKs! Use apksigner" +msgid "" +"Using Java's jarsigner, not recommended for verifying APKs! Use apksigner" msgstr "" #: ../fdroidserver/init.py @@ -1634,16 +1682,19 @@ msgstr "Avisar sobre possíveis erros de metadados" #: ../fdroidserver/update.py -msgid "When configured for signed indexes, create only unsigned indexes at this stage" -msgstr "Quando configurado para índices assinados, crie apenas índices não assinados nesta etapa" +msgid "" +"When configured for signed indexes, create only unsigned indexes at this " +"stage" +msgstr "" +"Quando configurado para índices assinados, crie apenas índices não assinados " +"nesta etapa" msgid "X.509 'Distiguished Name' used when generating keys" msgstr "X.509 'Distiguished Name' usado ao gerar as chaves" #: ../fdroidserver/init.py -#, fuzzy msgid "X.509 'Distinguished Name' used when generating keys" -msgstr "X.509 'Distiguished Name' usado ao gerar as chaves" +msgstr "X.509 'Distiguished Name' usado na geração de chaves" #: ../fdroidserver/common.py msgid "You can use ANDROID_HOME to set the path to your SDK, i.e.:" @@ -1670,22 +1721,19 @@ msgstr "opção ambígua: %s (%s?)" #: ../fdroidserver/lint.py ../fdroidserver/rewritemeta.py -#, fuzzy msgid "applicationId in the form APPID" -msgstr "app-id na forma APPID" +msgstr "applicationId, na forma APPID" #: ../fdroidserver/checkupdates.py -#, fuzzy msgid "applicationId to check for updates" -msgstr "app-id para verificar por atualizações" +msgstr "applicationId para verificar se há atualizações" #. Translators: https://developer.android.com/guide/topics/manifest/manifest-element.html#vcode #: ../fdroidserver/verify.py ../fdroidserver/publish.py #: ../fdroidserver/dscanner.py ../fdroidserver/build.py #: ../fdroidserver/scanner.py ../fdroidserver/install.py -#, fuzzy msgid "applicationId with optional versionCode in the form APPID[:VERCODE]" -msgstr "app-id, com código de versão (versionCode) opcional, na forma APPID[:VERCODE]" +msgstr "applicationId com versionCode opcional na forma APPID[:VERCODE]" #: /usr/lib/python3.5/argparse.py /usr/lib/python3.6/argparse.py #, python-format @@ -1774,14 +1822,12 @@ msgstr "" #: ../fdroid -#, fuzzy msgid "fdroid [-h|--help|--version] []" -msgstr "uso: fdroid [-h|--help|--version] []" +msgstr "fdroid [-h|--help|--version] []" #: ../fdroid -#, fuzzy msgid "fdroid [] [-h|--help|--version|]" -msgstr "uso: fdroid [-h|--help|--version] []" +msgstr "fdroid [] [-h|--help|--version|]" #: /usr/lib/python3.5/optparse.py /usr/lib/python3.6/optparse.py msgid "floating-point" @@ -1792,9 +1838,10 @@ msgstr "forçar erros como avisos ou ignorá-los" #: ../fdroidserver/metadata.py -#, fuzzy msgid "force metadata errors (default) to be warnings, or to be ignored." -msgstr "forçar erros como avisos ou ignorá-los" +msgstr "" +"Forçar os erros de metadados (padrão) para serem avisos, ou para serem " +"ignorados." #: ../fdroidserver/common.py msgid "git svn clone failed" @@ -1830,12 +1877,15 @@ #: /usr/lib/python3.5/argparse.py /usr/lib/python3.6/argparse.py #, python-format -msgid "invalid option string %(option)r: must start with a character %(prefix_chars)r" +msgid "" +"invalid option string %(option)r: must start with a character " +"%(prefix_chars)r" msgstr "" #: ../fdroidserver/server.py #, python-brace-format -msgid "local_copy_dir does not end with \"fdroid\", perhaps you meant: \"{path}\"" +msgid "" +"local_copy_dir does not end with \"fdroid\", perhaps you meant: \"{path}\"" msgstr "" #: ../fdroidserver/server.py @@ -1870,9 +1920,8 @@ msgstr "não tem tal opção: %s" #: ../fdroid -#, fuzzy msgid "no version info found!" -msgstr "Uma exceção desconhecida foi encrontrada!" +msgstr "não há informações de versão encontrada!" #: /usr/lib/python3.5/argparse.py /usr/lib/python3.6/argparse.py #, python-format @@ -1904,9 +1953,9 @@ msgstr "" #: /usr/lib/python3.5/getopt.py /usr/lib/python3.6/getopt.py -#, fuzzy, python-format +#, python-format msgid "option -%s not recognized" -msgstr "Comando '%s' não é reconhecido\n" +msgstr "Comando '%s' não é reconhecido" #: /usr/lib/python3.5/getopt.py /usr/lib/python3.6/getopt.py #, python-format @@ -1924,9 +1973,9 @@ msgstr "opção --%s não é prefixo único" #: /usr/lib/python3.5/getopt.py /usr/lib/python3.6/getopt.py -#, fuzzy, python-format +#, python-format msgid "option --%s not recognized" -msgstr "Comando '%s' não é reconhecido\n" +msgstr "Comando --%s não é reconhecido" #: /usr/lib/python3.5/getopt.py /usr/lib/python3.6/getopt.py #, python-format @@ -1948,12 +1997,16 @@ #: ../fdroidserver/signatures.py #, python-brace-format -msgid "refuse downloading via insecure HTTP connection (use HTTPS or specify --no-https-check): {apkfilename}" +msgid "" +"refuse downloading via insecure HTTP connection (use HTTPS or specify --no-" +"https-check): {apkfilename}" msgstr "" #: ../fdroidserver/signatures.py #, python-brace-format -msgid "refuse downloading via insecure http connection (use https or specify --no-https-check): {apkfilename}" +msgid "" +"refuse downloading via insecure http connection (use https or specify --no-" +"https-check): {apkfilename}" msgstr "" #: ../fdroidserver/server.py ../fdroidserver/upload.py @@ -2123,7 +2176,11 @@ #~ msgstr "app-id para verificar por atualizações" #~ msgid "app-id with optional versionCode in the form APPID[:VERCODE]" -#~ msgstr "app-id, com código de versão (versionCode) opcional, na forma APPID[:VERCODE]" +#~ msgstr "" +#~ "app-id, com código de versão (versionCode) opcional, na forma APPID[:" +#~ "VERCODE]" #~ msgid "app-id with optional versioncode in the form APPID[:VERCODE]" -#~ msgstr "app-id, com código de versão (versioncode) opcional, na forma APPID[:VERCODE]" +#~ msgstr "" +#~ "app-id, com código de versão (versioncode) opcional, na forma APPID[:" +#~ "VERCODE]" diff -Nru fdroidserver-1.0.2/locale/ru/LC_MESSAGES/fdroidserver.po fdroidserver-1.0.6/locale/ru/LC_MESSAGES/fdroidserver.po --- fdroidserver-1.0.2/locale/ru/LC_MESSAGES/fdroidserver.po 1970-01-01 00:00:00.000000000 +0000 +++ fdroidserver-1.0.6/locale/ru/LC_MESSAGES/fdroidserver.po 2018-04-09 08:24:04.000000000 +0000 @@ -0,0 +1,2077 @@ +# SOME DESCRIPTIVE TITLE. +# This file is put in the public domain. +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "Project-Id-Version: fdroidserver 1.0.0-95-gd7af22b\nReport-Msgid-Bugs-To: https://gitlab.com/fdroid/fdroidserver/issues\nPOT-Creation-Date: 2018-02-13 09:01+0100\nPO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\nLast-Translator: Automatically generated\nLanguage-Team: none\nLanguage: ru\nMIME-Version: 1.0\nContent-Type: text/plain; charset=UTF-8\nContent-Transfer-Encoding: 8bit\nPlural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" + +#: ../fdroidserver/nightly.py +msgid "" +"\n" +"SSH Public Key to be used as Deploy Key:" +msgstr "" + +#: ../fdroidserver/nightly.py +#, python-brace-format +msgid "" +"\n" +"{path} encoded for the DEBUG_KEYSTORE secret variable:" +msgstr "" + +#: ../fdroidserver/lint.py +#, python-format +msgid "\"%s/\" has no matching metadata file!" +msgstr "" + +#: ../fdroidserver/update.py +#, python-brace-format +msgid "\"{path}\" contains outdated {name} ({version})" +msgstr "" + +#: ../fdroidserver/update.py +#, python-brace-format +msgid "\"{path}\" contains recent {name} ({version})" +msgstr "" + +#: ../fdroidserver/server.py ../fdroidserver/upload.py +#, python-brace-format +msgid "\"{path}\" exists but s3cmd is not installed!" +msgstr "" + +#: ../fdroidserver/metadata.py +#, python-brace-format +msgid "\"{path}\" is not an accepted format, convert to: {formats}" +msgstr "" + +#: /usr/lib/python3.5/optparse.py /usr/lib/python3.6/optparse.py +#, python-format +msgid "%(option)s option requires %(number)d argument" +msgid_plural "%(option)s option requires %(number)d arguments" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#: ../fdroidserver/mirror.py +#, python-format +msgid "%(prog)s [options] url" +msgstr "" + +#: /usr/lib/python3.5/argparse.py /usr/lib/python3.6/argparse.py +#, python-format +msgid "%(prog)s: error: %(message)s\n" +msgstr "" + +#: ../fdroidserver/scanner.py +#, python-format +msgid "%d problems found" +msgstr "" + +#: /usr/lib/python3.5/optparse.py /usr/lib/python3.6/optparse.py +msgid "%prog [options]" +msgstr "" + +#: /usr/lib/python3.5/argparse.py /usr/lib/python3.6/argparse.py +#, python-format +msgid "%r is not callable" +msgstr "" + +#: ../fdroidserver/lint.py +#, python-format +msgid "%s is not an accepted build field" +msgstr "" + +#: /usr/lib/python3.5/optparse.py /usr/lib/python3.6/optparse.py +#, python-format +msgid "%s option does not take a value" +msgstr "" + +#: ../fdroidserver/index.py ../fdroidserver/common.py +msgid "'keypass' not found in config.py!" +msgstr "" + +#: ../fdroidserver/index.py ../fdroidserver/common.py +msgid "'keystore' not found in config.py!" +msgstr "" + +#: ../fdroidserver/index.py ../fdroidserver/common.py +msgid "'keystorepass' not found in config.py!" +msgstr "" + +#: ../fdroidserver/index.py ../fdroidserver/common.py +msgid "'repo_keyalias' not found in config.py!" +msgstr "" + +#: /usr/lib/python3.5/argparse.py /usr/lib/python3.6/argparse.py +msgid "'required' is an invalid argument for positionals" +msgstr "" + +#: ../fdroidserver/common.py +msgid "'sdk_path' not set in 'config.py'!" +msgstr "" + +#. Translators: "build-tools" is the file name of a package from +#. Google, it is part of the Android SDK. So it probably shouldn't be +#. translated or transliterated. +#: ../fdroidserver/common.py +#, python-brace-format +msgid "'{aapt}' is too old, fdroid requires build-tools-23.0.0 or newer!" +msgstr "" + +#: ../fdroidserver/common.py +#, python-brace-format +msgid "'{aapt}' is too old, fdroid requires build-tools-{version} or newer!" +msgstr "" + +#: ../fdroidserver/install.py +#, python-brace-format +msgid "'{apkfilename}' is already installed on {dev}." +msgstr "" + +#: ../fdroidserver/common.py +#, python-brace-format +msgid "'{field}' will be in random order! Use () or [] brackets if order is important!" +msgstr "" + +#: ../fdroidserver/common.py +#, python-brace-format +msgid "'{path}' failed to execute!" +msgstr "" + +#: ../fdroidserver/metadata.py +#, python-brace-format +msgid "'{value}' is not a valid {field} in {appid}. Regex pattern: {pattern}" +msgstr "" + +#: ../fdroidserver/checkupdates.py +#, python-brace-format +msgid "...checkupdate failed for {appid} : {error}" +msgstr "" + +#: /usr/lib/python3.5/argparse.py /usr/lib/python3.6/argparse.py +msgid ".__call__() not defined" +msgstr "" + +#: ../fdroidserver/metadata.py +msgid ".fdroid.txt is not supported! Convert to .fdroid.yml or .fdroid.json." +msgstr "" + +#: ../fdroidserver/lint.py +msgid "/issues is missing" +msgstr "" + +#: ../fdroidserver/mirror.py +msgid "A URL is required as an argument!" +msgstr "" + +#: ../fdroid +msgid "Add PGP signatures using GnuPG for packages in repo" +msgstr "" + +#: ../fdroid +msgid "Add a new application from its source code" +msgstr "" + +#: ../fdroidserver/update.py +msgid "Add a repo signing key to an unsigned repo" +msgstr "" + +#: ../fdroidserver/update.py +msgid "Add skeleton metadata files for APKs that are missing them" +msgstr "" + +#: ../fdroidserver/update.py +#, python-brace-format +msgid "Adding new repo for only {name}" +msgstr "" + +#: ../fdroidserver/init.py +msgid "Alias of the repo signing key in the keystore" +msgstr "" + +#: ../fdroidserver/import.py +msgid "Allows a different revision (or git branch) to be specified for the initial import" +msgstr "" + +#: ../fdroidserver/mirror.py +msgid "Also mirror the full archive section" +msgstr "" + +#: ../fdroidserver/lint.py +msgid "Also warn about formatting issues, like rewritemeta -l" +msgstr "" + +#: ../fdroidserver/common.py +#, python-brace-format +msgid "Android SDK '{path}' does not have '{dirname}' installed!" +msgstr "" + +#: ../fdroidserver/common.py +msgid "Android SDK not found!" +msgstr "" + +#: ../fdroidserver/common.py +#, python-brace-format +msgid "Android SDK path '{path}' does not exist!" +msgstr "" + +#: ../fdroidserver/common.py +#, python-brace-format +msgid "Android SDK path '{path}' is not a directory!" +msgstr "" + +#. Translators: "build-tools" is the file name of a package from +#. Google, it is part of the Android SDK. So it probably shouldn't be +#. translated or transliterated. +#: ../fdroidserver/common.py +#, python-brace-format +msgid "Android build-tools path '{path}' does not exist!" +msgstr "" + +#: ../fdroidserver/update.py +msgid "AndroidManifest.xml has no date" +msgstr "" + +#: ../fdroidserver/lint.py +#, python-brace-format +msgid "App is in '{repo}' but has a link to {url}" +msgstr "" + +#: ../fdroidserver/lint.py +msgid "Appending .git is not necessary" +msgstr "" + +#: ../fdroidserver/update.py +#, python-brace-format +msgid "Archiving {apkfilename} with invalid signature!" +msgstr "" + +#: ../fdroidserver/mirror.py +msgid "Base URL to mirror, can include the index signing key using the query string: ?fingerprint=" +msgstr "" + +#. Translators: https://developer.android.com/guide/topics/manifest/manifest-element.html#vname +#: ../fdroidserver/lint.py +#, python-brace-format +msgid "Branch '{branch}' used as commit in build '{versionName}'" +msgstr "" + +#: ../fdroidserver/lint.py +#, python-brace-format +msgid "Branch '{branch}' used as commit in srclib '{srclib}'" +msgstr "" + +#: ../fdroid +msgid "Build a package from source" +msgstr "" + +#: ../fdroidserver/build.py +msgid "Build all applications available" +msgstr "" + +#: ../fdroidserver/lint.py +msgid "Build generated by `fdroid import` - remove disable line once ready" +msgstr "" + +#: ../fdroidserver/build.py +msgid "Build only the latest version of each package" +msgstr "" + +#: ../fdroidserver/metadata.py +#, python-brace-format +msgid "Build should have comma-separated versionName and versionCode, not \"{value}\", in {linedesc}" +msgstr "" + +#: ../fdroidserver/init.py +#, python-format +msgid "Built repo based in \"%s\" with this config:" +msgstr "" + +#: ../fdroidserver/build.py +msgid "Can't build due to {} error while scanning" +msgid_plural "Can't build due to {} errors while scanning" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#: ../fdroidserver/metadata.py +#, python-brace-format +msgid "Cannot find a packageName for {path}!" +msgstr "" + +#: ../fdroidserver/metadata.py +#, python-brace-format +msgid "Cannot find an appid for {path}!" +msgstr "" + +#: ../fdroidserver/vmtools.py +#, python-brace-format +msgid "Cannot read \"{path}\"!" +msgstr "" + +#: ../fdroidserver/metadata.py +#, python-brace-format +msgid "Cannot resolve app id {appid}" +msgstr "" + +#: ../fdroidserver/rewritemeta.py +msgid "Cannot use --list and --to at the same time" +msgstr "" + +#: ../fdroidserver/metadata.py +#, python-brace-format +msgid "Cannot write \"{path}\", not an accepted format, use: {formats}" +msgstr "" + +#: ../fdroidserver/lint.py +msgid "Categories are not set" +msgstr "" + +#: ../fdroidserver/lint.py +#, python-format +msgid "Category '%s' is not valid" +msgstr "" + +#: ../fdroid +msgid "Check for updates to applications" +msgstr "" + +#: ../fdroidserver/update.py +#, python-brace-format +msgid "Checking archiving for {appid} - apks:{integer}, keepversions:{keep}, archapks:{arch}" +msgstr "" + +#: ../fdroidserver/dscanner.py +msgid "Clean after all scans have finished" +msgstr "" + +#: ../fdroidserver/dscanner.py +msgid "Clean before the scans start and rebuild the container" +msgstr "" + +#: ../fdroidserver/dscanner.py +msgid "Clean up all containers and then exit" +msgstr "" + +#: ../fdroidserver/update.py +msgid "Clean update - don't uses caches, reprocess all APKs" +msgstr "" + +#: ../fdroidserver/import.py +msgid "Comma separated list of categories." +msgstr "" + +#: ../fdroid +#, c-format, python-format +msgid "Command '%s' not recognised.\n" +msgstr "" + +#: ../fdroidserver/checkupdates.py +msgid "Commit changes" +msgstr "" + +#: ../fdroidserver/common.py +#, python-brace-format +msgid "Could not find '{command}' on your system" +msgstr "" + +#: ../fdroidserver/update.py +#, python-brace-format +msgid "Could not find {path} to remove it" +msgstr "" + +#: ../fdroidserver/update.py +msgid "Could not open apk file for analysis" +msgstr "" + +#. Translators: https://developer.android.com/guide/topics/manifest/manifest-element.html#vcode +#: ../fdroidserver/import.py +msgid "Couldn't find latest version code" +msgstr "" + +#. Translators: https://developer.android.com/guide/topics/manifest/manifest-element.html#vname +#: ../fdroidserver/import.py +msgid "Couldn't find latest version name" +msgstr "" + +#: ../fdroidserver/import.py +msgid "Couldn't find package ID" +msgstr "" + +#: ../fdroidserver/update.py +msgid "Cowardily refusing to overwrite existing signing key setup!" +msgstr "" + +#: ../fdroidserver/update.py +msgid "Create a repo signing key in a keystore" +msgstr "" + +#: ../fdroidserver/update.py +msgid "Create skeleton metadata files that are missing" +msgstr "" + +#: ../fdroidserver/server.py ../fdroidserver/upload.py +#, python-brace-format +msgid "Created new container \"{name}\"" +msgstr "" + +#: ../fdroidserver/server.py ../fdroidserver/upload.py +#, python-brace-format +msgid "Creating \"{path}\" for configuring s3cmd." +msgstr "" + +#: ../fdroidserver/publish.py +msgid "Creating log directory" +msgstr "" + +#: ../fdroidserver/server.py ../fdroidserver/upload.py +#, python-brace-format +msgid "Creating new S3 bucket: {url}" +msgstr "" + +#: ../fdroidserver/publish.py +msgid "Creating output directory" +msgstr "" + +#: ../fdroidserver/index.py +msgid "Creating signed index with this key (SHA256):" +msgstr "" + +#: ../fdroidserver/import.py ../fdroidserver/verify.py +#: ../fdroidserver/publish.py +msgid "Creating temporary directory" +msgstr "" + +#: ../fdroidserver/index.py +msgid "Creating unsigned index in preparation for signing" +msgstr "" + +#: ../fdroidserver/nightly.py +msgid "DEBUG_KEYSTORE is not set or the value is incomplete" +msgstr "" + +#: ../fdroidserver/update.py +msgid "Delete APKs and/or OBBs without metadata from the repo" +msgstr "" + +#: ../fdroidserver/update.py +#, python-brace-format +msgid "Deleting unknown file: {path}" +msgstr "" + +#: ../fdroidserver/lint.py +#, python-format +msgid "Description '%s' is just the app's summary" +msgstr "" + +#: ../fdroidserver/lint.py +msgid "Description has a duplicate line" +msgstr "" + +#: ../fdroidserver/lint.py +#, python-format +msgid "Description has a list (%s) but it isn't bulleted (*) nor numbered (#)" +msgstr "" + +#: ../fdroidserver/lint.py +#, python-brace-format +msgid "Description of length {length} is over the {limit} char limit" +msgstr "" + +#: ../fdroidserver/mirror.py +#, python-brace-format +msgid "Do not include \"{path}\" in URL!" +msgstr "" + +#: ../fdroidserver/init.py +msgid "Do not prompt for Android SDK path, just fail" +msgstr "" + +#: ../fdroidserver/build.py +msgid "Don't create a source tarball, useful when testing a build" +msgstr "" + +#: ../fdroidserver/stats.py +msgid "Don't do anything logs-related" +msgstr "" + +#: ../fdroidserver/build.py +msgid "Don't refresh the repository, useful when testing a build with no internet connection" +msgstr "" + +#: ../fdroidserver/server.py ../fdroidserver/nightly.py +#: ../fdroidserver/upload.py +msgid "Don't use rsync checksums" +msgstr "" + +#: ../fdroid +msgid "Download complete mirrors of small repos" +msgstr "" + +#: ../fdroidserver/stats.py +msgid "Download logs we don't have" +msgstr "" + +#: ../fdroidserver/common.py +msgid "Downloading the repository already failed once, not trying again." +msgstr "" + +#: ../fdroidserver/verify.py +#, python-brace-format +msgid "Downloading {url} failed. {error}" +msgstr "" + +#: ../fdroidserver/metadata.py +#, python-brace-format +msgid "Duplicate build recipe found for versionCode {versionCode} in {linedesc}" +msgstr "" + +#: ../fdroidserver/lint.py +#, python-brace-format +msgid "Duplicate link in '{field}': {url}" +msgstr "" + +#: ../fdroid +msgid "Dynamically scan APKs post build" +msgstr "" + +#: ../fdroidserver/mirror.py +msgid "" +"ERROR: this command should never be used to mirror f-droid.org!\n" +"A full mirror of f-droid.org requires more than 200GB." +msgstr "" + +#: ../fdroidserver/nightly.py +msgid "ERROR: unsupported CI type, patches welcome!" +msgstr "" + +#: ../fdroidserver/metadata.py +#, python-brace-format +msgid "Empty build flag at {linedesc}" +msgstr "" + +#: ../fdroidserver/init.py +#, python-format +msgid "" +"Enter the path to the Android SDK (%s) here:\n" +"> " +msgstr "" + +#: ../fdroidserver/server.py ../fdroidserver/checkupdates.py +#: ../fdroidserver/upload.py +#, python-format +msgid "Error while attempting to publish log: %s" +msgstr "" + +#: ../fdroidserver/import.py +msgid "Error while getting repo address" +msgstr "" + +#: ../fdroid +msgid "Extract signatures from APKs" +msgstr "" + +#: ../fdroidserver/signatures.py +#, python-brace-format +msgid "Failed fetching signatures for '{apkfilename}': {error}" +msgstr "" + +#: ../fdroidserver/update.py +#, python-brace-format +msgid "Failed reading {path}: {error}" +msgstr "" + +#: ../fdroidserver/update.py +#, python-brace-format +msgid "Failed resizing {path}: {error}" +msgstr "" + +#: ../fdroidserver/publish.py +msgid "Failed to align application" +msgstr "" + +#: ../fdroidserver/server.py ../fdroidserver/upload.py +#, python-brace-format +msgid "Failed to create S3 bucket: {url}" +msgstr "" + +#: ../fdroidserver/common.py +msgid "Failed to get APK manifest information" +msgstr "" + +#: ../fdroidserver/update.py +#, python-brace-format +msgid "Failed to get apk information, deleting {path}" +msgstr "" + +#: ../fdroidserver/update.py +#, python-brace-format +msgid "Failed to get apk information, skipping {path}" +msgstr "" + +#: ../fdroidserver/install.py +#, python-brace-format +msgid "Failed to install '{apkfilename}' on {dev}: {error}" +msgstr "" + +#: ../fdroidserver/publish.py ../fdroidserver/common.py +msgid "Failed to sign application" +msgstr "" + +#: ../fdroidserver/common.py +msgid "Failed to zipalign application" +msgstr "" + +#: ../fdroidserver/build.py +#, python-brace-format +msgid "Fetched buildserverid from VM: {buildserverid}" +msgstr "" + +#: ../fdroidserver/signatures.py +#, python-brace-format +msgid "Fetched signatures for '{apkfilename}' -> '{sigdir}'" +msgstr "" + +#: ../fdroidserver/verify.py ../fdroidserver/stats.py ../fdroidserver/update.py +#: ../fdroidserver/rewritemeta.py ../fdroidserver/build.py +#: ../fdroidserver/checkupdates.py ../fdroidserver/scanner.py +#: ../fdroidserver/install.py +msgid "Finished" +msgstr "" + +#: ../fdroidserver/lint.py +msgid "Flattr donation methods belong in the FlattrID flag" +msgstr "" + +#: ../fdroidserver/lint.py +msgid "Forbidden HTML tags" +msgstr "" + +#: ../fdroidserver/build.py +msgid "Force build of disabled apps, and carries on regardless of scan problems. Only allowed in test mode." +msgstr "" + +#: ../fdroidserver/build.py +#, python-brace-format +msgid "Force halting build after {0} sec timeout!" +msgstr "" + +#: ../fdroidserver/update.py +#, python-brace-format +msgid "Found \"{path}\" graphic without metadata for app \"{name}\"!" +msgstr "" + +#: ../fdroidserver/common.py +msgid "Found invalid appids in arguments" +msgstr "" + +#. Translators: https://developer.android.com/guide/topics/manifest/manifest-element.html#vcode +#: ../fdroidserver/common.py +msgid "Found invalid versionCodes for some apps" +msgstr "" + +#: ../fdroidserver/metadata.py +#, python-brace-format +msgid "Found multiple metadata files for {appid}" +msgstr "" + +#: ../fdroidserver/index.py +msgid "Found multiple signing certificates for repository." +msgstr "" + +#: ../fdroidserver/update.py +#, python-brace-format +msgid "Found multiple signing certificates in {path}" +msgstr "" + +#: ../fdroidserver/index.py +msgid "Found no signing certificates for repository." +msgstr "" + +#: ../fdroidserver/lint.py +#, python-format +msgid "Found non-file at %s" +msgstr "" + +#: ../fdroidserver/update.py +#, python-brace-format +msgid "Generated skeleton metadata for {appid}" +msgstr "" + +#: ../fdroidserver/common.py +#, python-format +msgid "Git checkout of '%s' failed" +msgstr "" + +#: ../fdroidserver/common.py +msgid "Git clean failed" +msgstr "" + +#: ../fdroidserver/common.py +msgid "Git fetch failed" +msgstr "" + +#: ../fdroidserver/common.py +msgid "Git remote set-head failed" +msgstr "" + +#: ../fdroidserver/common.py +msgid "Git reset failed" +msgstr "" + +#: ../fdroidserver/common.py +msgid "Git submodule sync failed" +msgstr "" + +#: ../fdroidserver/common.py +msgid "Git submodule update failed" +msgstr "" + +#: ../fdroidserver/common.py +msgid "HTTPS must be used with Subversion URLs!" +msgstr "" + +#: ../fdroidserver/index.py +msgid "Ignoring package without metadata: " +msgstr "" + +#: ../fdroidserver/update.py +#, python-brace-format +msgid "Ignoring stale cache data for {apkfilename}" +msgstr "" + +#: ../fdroidserver/rewritemeta.py +#, python-brace-format +msgid "Ignoring {ext} file at '{path}'" +msgstr "" + +#: ../fdroidserver/update.py +msgid "Include APKs that are signed with disabled algorithms like MD5" +msgstr "" + +#: ../fdroidserver/common.py +msgid "Initialising submodules" +msgstr "" + +#: ../fdroidserver/install.py +msgid "Install all signed applications available" +msgstr "" + +#: ../fdroid +msgid "Install built packages on devices" +msgstr "" + +#: ../fdroidserver/install.py +#, python-format +msgid "Installing %s..." +msgstr "" + +#: ../fdroidserver/install.py +#, python-brace-format +msgid "Installing '{apkfilename}' on {dev}..." +msgstr "" + +#: ../fdroid +msgid "Interact with the repo HTTP server" +msgstr "" + +#: ../fdroidserver/update.py +msgid "Interactively ask about things that need updating." +msgstr "" + +#: ../fdroidserver/update.py +msgid "Invalid APK" +msgstr "" + +#: ../fdroidserver/metadata.py +#, python-format +msgid "Invalid boolean '%s'" +msgstr "" + +#: ../fdroidserver/metadata.py +#, python-brace-format +msgid "Invalid build flag at {line} in {linedesc}" +msgstr "" + +#: ../fdroidserver/metadata.py +#, python-brace-format +msgid "Invalid build format: {value} in {name}" +msgstr "" + +#: ../fdroidserver/lint.py +msgid "Invalid bulleted list" +msgstr "" + +#: ../fdroidserver/lint.py +#, python-format +msgid "Invalid license tag \"%s\"! Use only tags from https://spdx.org/license-list" +msgstr "" + +#: ../fdroidserver/lint.py +msgid "Invalid link - use [http://foo.bar Link title] or [http://foo.bar]" +msgstr "" + +#: ../fdroidserver/metadata.py +#, python-format +msgid "Invalid metadata in %s:%d" +msgstr "" + +#: ../fdroidserver/metadata.py +msgid "Invalid metadata in: " +msgstr "" + +#: ../fdroidserver/common.py +#, python-format +msgid "Invalid name for published file: %s" +msgstr "" + +#: ../fdroidserver/common.py +#, python-brace-format +msgid "Invalid package name {0}" +msgstr "" + +#: ../fdroidserver/metadata.py +#, python-brace-format +msgid "Invalid versionCode: \"{versionCode}\" is not an integer!" +msgstr "" + +#: ../fdroidserver/common.py +#, python-brace-format +msgid "JAR signature failed to verify: {path}" +msgstr "" + +#: ../fdroidserver/common.py +#, python-brace-format +msgid "JAR signature verified: {path}" +msgstr "" + +#: ../fdroidserver/publish.py ../fdroidserver/update.py +#: ../fdroidserver/mirror.py +msgid "Java JDK not found! Install in standard location or set java_paths!" +msgstr "" + +#: ../fdroidserver/signindex.py +msgid "Java jarsigner not found! Install in standard location or set java_paths!" +msgstr "" + +#: ../fdroidserver/lint.py +msgid "Javascript in HTML src attributes" +msgstr "" + +#: ../fdroidserver/init.py +msgid "Keystore for signing key:\t" +msgstr "" + +#: ../fdroidserver/lint.py +#, python-brace-format +msgid "Last used commit '{commit}' looks like a tag, but Update Check Mode is '{ucm}'" +msgstr "" + +#: ../fdroidserver/lint.py +msgid "Liberapay donation methods belong in the LiberapayID flag" +msgstr "" + +#: ../fdroidserver/rewritemeta.py +msgid "List files that would be reformatted" +msgstr "" + +#: ../fdroidserver/build.py +msgid "Make the build stop on exceptions" +msgstr "" + +#: ../fdroidserver/index.py +msgid "Malformed repository mirrors." +msgstr "" + +#: ../fdroidserver/server.py +msgid "Malformed serverwebroot line:" +msgstr "" + +#: ../fdroidserver/gpgsign.py +msgid "Missing output directory" +msgstr "" + +#: ../fdroidserver/lint.py +#, python-format +msgid "Name '%s' is just the auto name - remove it" +msgstr "" + +#: ../fdroidserver/common.py +msgid "No 'config.py' found, using defaults." +msgstr "" + +#: ../fdroidserver/common.py +msgid "No Android SDK found!" +msgstr "" + +#: ../fdroidserver/import.py +msgid "No android or kivy project could be found. Specify --subdir?" +msgstr "" + +#: ../fdroidserver/install.py +msgid "No attached devices found" +msgstr "" + +#: ../fdroidserver/metadata.py +#, python-brace-format +msgid "No commit specified for {versionName} in {linedesc}" +msgstr "" + +#: ../fdroidserver/index.py +msgid "No fingerprint in URL." +msgstr "" + +#: ../fdroidserver/common.py +msgid "No git submodules available" +msgstr "" + +#: ../fdroidserver/import.py +msgid "No information found." +msgstr "" + +#: ../fdroidserver/lint.py +msgid "No need to specify that the app is Free Software" +msgstr "" + +#: ../fdroidserver/lint.py +msgid "No need to specify that the app is for Android" +msgstr "" + +#: ../fdroidserver/server.py +msgid "No option set! Edit your config.py to set at least one of these:" +msgstr "" + +#: ../fdroidserver/common.py +msgid "No packages specified" +msgstr "" + +#: ../fdroidserver/install.py +#, python-format +msgid "No signed apk available for %s" +msgstr "" + +#: ../fdroidserver/install.py +msgid "No signed output directory - nothing to do" +msgstr "" + +#: ../fdroidserver/update.py +#, python-brace-format +msgid "No signing certificates found in {path}" +msgstr "" + +#: ../fdroidserver/common.py +#, python-format +msgid "No such package: %s" +msgstr "" + +#. Translators: https://developer.android.com/guide/topics/manifest/manifest-element.html#vcode +#: ../fdroidserver/common.py +#, python-brace-format +msgid "No such versionCode {versionCode} for app {appid}" +msgstr "" + +#: ../fdroidserver/verify.py ../fdroidserver/publish.py +msgid "No unsigned directory - nothing to do" +msgstr "" + +#: ../fdroidserver/signindex.py +msgid "Nothing to do" +msgstr "" + +#: ../fdroidserver/checkupdates.py +#, python-brace-format +msgid "Nothing to do for {appid}." +msgstr "" + +#: ../fdroidserver/init.py +msgid "Now set these in config.py:" +msgstr "" + +#. Translators: https://developer.android.com/guide/topics/manifest/manifest-element.html#vcode +#: ../fdroidserver/update.py +#, python-brace-format +msgid "OBB file has newer versionCode({integer}) than any APK:" +msgstr "" + +#: ../fdroidserver/update.py +msgid "OBB filename must start with \"main.\" or \"patch.\":" +msgstr "" + +#: ../fdroidserver/update.py +msgid "OBB's packagename does not match a supported APK:" +msgstr "" + +#: ../fdroidserver/common.py +#, python-brace-format +msgid "Old APK signature failed to verify: {path}" +msgstr "" + +#: ../fdroidserver/update.py +#, python-brace-format +msgid "Only PNG and JPEG are supported for graphics, found: {path}" +msgstr "" + +#: ../fdroidserver/checkupdates.py +msgid "Only print differences with the Play Store" +msgstr "" + +#: ../fdroidserver/checkupdates.py +msgid "Only process apps with auto-updates" +msgstr "" + +#: /usr/lib/python3.5/optparse.py /usr/lib/python3.6/optparse.py +msgid "Options" +msgstr "" + +#: ../fdroidserver/import.py +msgid "Overall license of the project." +msgstr "" + +#: ../fdroidserver/dscanner.py +msgid "Override path for repo APKs (default: ./repo)" +msgstr "" + +#: ../fdroidserver/common.py +#, python-brace-format +msgid "Parsing manifest at '{path}'" +msgstr "" + +#: ../fdroidserver/common.py +msgid "Password required with username" +msgstr "" + +#: ../fdroidserver/import.py +msgid "Path to main Android project subdirectory, if not in root." +msgstr "" + +msgid "Path to main android project subdirectory, if not in root." +msgstr "" + +#: ../fdroidserver/init.py +msgid "Path to the Android SDK (sometimes set in ANDROID_HOME)" +msgstr "" + +#: ../fdroidserver/btlog.py +msgid "Path to the git repo to use as the log" +msgstr "" + +#: ../fdroidserver/init.py +msgid "Path to the keystore for the repo signing key" +msgstr "" + +#: ../fdroidserver/dscanner.py +msgid "Prepare Drozer to run a scan" +msgstr "" + +msgid "Prepare drozer to run a scan" +msgstr "" + +#: ../fdroidserver/nightly.py +msgid "Print the secret variable to the terminal for easy copy/paste" +msgstr "" + +#: ../fdroidserver/metadata.py +#, python-brace-format +msgid "Problem with description of {appid}: {error}" +msgstr "" + +#: ../fdroidserver/common.py +#, python-brace-format +msgid "Problem with xml at '{path}'" +msgstr "" + +#: ../fdroidserver/checkupdates.py +msgid "Process auto-updates" +msgstr "" + +#: ../fdroidserver/publish.py ../fdroidserver/update.py +#, python-brace-format +msgid "Processing {apkfilename}" +msgstr "" + +#: ../fdroidserver/checkupdates.py ../fdroidserver/scanner.py +#, python-brace-format +msgid "Processing {appid}" +msgstr "" + +#: ../fdroidserver/update.py +msgid "Produce human-readable XML/JSON for index files" +msgstr "" + +#: ../fdroidserver/update.py +msgid "Produce human-readable index.xml" +msgstr "" + +#: ../fdroidserver/import.py +msgid "Project URL to import from." +msgstr "" + +#: ../fdroidserver/lint.py +msgid "Punctuation should be avoided" +msgstr "" + +#: ../fdroidserver/btlog.py +msgid "Push the log to this git remote repository" +msgstr "" + +#: ../fdroidserver/server.py ../fdroidserver/upload.py +#, python-brace-format +msgid "Pushing binary transparency log to {url}" +msgstr "" + +#: ../fdroidserver/server.py ../fdroidserver/upload.py +#, python-brace-format +msgid "Pushing to {url}" +msgstr "" + +#: ../fdroid +msgid "Quickly start a new repository" +msgstr "" + +#: ../fdroid +msgid "Read all the metadata files and exit" +msgstr "" + +#: ../fdroidserver/common.py +#, python-brace-format +msgid "Reading '{config_file}'" +msgstr "" + +#: ../fdroidserver/common.py +#, python-brace-format +msgid "Reading minSdkVersion failed: \"{apkfilename}\"" +msgstr "" + +#. Translators: https://developer.android.com/guide/topics/manifest/manifest-element.html#vcode +#. https://developer.android.com/guide/topics/manifest/manifest-element.html#vname +#: ../fdroidserver/common.py +#, python-brace-format +msgid "Reading packageName/versionCode/versionName failed, APK invalid: '{apkfilename}'" +msgstr "" + +#: ../fdroidserver/update.py +#, python-brace-format +msgid "Reading {apkfilename} from cache" +msgstr "" + +#: ../fdroidserver/stats.py +msgid "Recalculate aggregate stats - use when changes have been made that would invalidate old cached data." +msgstr "" + +#: ../fdroidserver/common.py +msgid "Removing specified files" +msgstr "" + +#: ../fdroidserver/update.py +msgid "Rename APK files that do not match package.name_123.apk" +msgstr "" + +#: ../fdroidserver/update.py +msgid "Report on build data status" +msgstr "" + +#: ../fdroidserver/build.py +msgid "Reset and create a brand new build server, even if the existing one appears to be ok." +msgstr "" + +#: ../fdroidserver/nightly.py +#, python-brace-format +msgid "Resigning {apkfilename} with provided debug.keystore" +msgstr "" + +#: ../fdroidserver/update.py +msgid "Resize all the icons exceeding the max pixel size and exit" +msgstr "" + +#: ../fdroidserver/common.py +msgid "Restrict output to warnings and errors" +msgstr "" + +#: ../fdroid +msgid "Rewrite all the metadata files" +msgstr "" + +#: ../fdroidserver/rewritemeta.py +msgid "Rewrite to a specific format: " +msgstr "" + +#: ../fdroidserver/rewritemeta.py +#, python-brace-format +msgid "Rewriting '{appid}'" +msgstr "" + +#: ../fdroidserver/rewritemeta.py +#, python-brace-format +msgid "Rewriting '{appid}' to '{path}'" +msgstr "" + +#: ../fdroidserver/lint.py +msgid "Run rewritemeta to fix formatting" +msgstr "" + +#: ../fdroidserver/server.py ../fdroidserver/upload.py +msgid "Running first pass with MD5 checking disabled" +msgstr "" + +#: ../fdroidserver/mirror.py +#, python-brace-format +msgid "Running wget in {path}" +msgstr "" + +#: ../fdroidserver/dscanner.py +msgid "Scan only the latest version of each package" +msgstr "" + +#: ../fdroid +msgid "Scan the source code of a package" +msgstr "" + +#: ../fdroidserver/scanner.py +#, python-brace-format +msgid "Scanner found {count} problems in {appid}:" +msgstr "" + +#: ../fdroidserver/scanner.py +#, python-brace-format +msgid "Scanner found {count} problems in {appid}:{versionCode}:" +msgstr "" + +#: ../fdroidserver/build.py +msgid "Scanner found {} problem" +msgid_plural "Scanner found {} problems" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#: ../fdroidserver/common.py +msgid "Set clock to that time using:" +msgstr "" + +#: ../fdroidserver/build.py +#, python-brace-format +msgid "Set open file limit to {integer}" +msgstr "" + +#: ../fdroid +msgid "Set up an app build for a nightly build repo" +msgstr "" + +#: ../fdroidserver/build.py +msgid "Setting open file limit failed: " +msgstr "" + +#: ../fdroidserver/build.py +#, python-brace-format +msgid "Setting {0} sec timeout for this build" +msgstr "" + +#: ../fdroidserver/build.py +msgid "Setup an emulator, install the APK on it and perform a Drozer scan" +msgstr "" + +msgid "Setup an emulator, install the apk on it and perform a drozer scan" +msgstr "" + +#: ../fdroid +msgid "Sign and place packages in the repo" +msgstr "" + +#: ../fdroid +msgid "Sign indexes created using update --nosign" +msgstr "" + +#: ../fdroidserver/build.py +msgid "Skip scanning the source code for binaries and other problems" +msgstr "" + +#: ../fdroidserver/update.py +#, python-brace-format +msgid "Skipping '{apkfilename}' with invalid signature!" +msgstr "" + +#: ../fdroidserver/update.py +#, python-brace-format +msgid "Skipping index generation for {appid}" +msgstr "" + +#: ../fdroidserver/update.py +#, python-brace-format +msgid "Skipping {apkfilename} with invalid signature!" +msgstr "" + +#: ../fdroidserver/scanner.py +#, python-brace-format +msgid "Skipping {appid}: disabled" +msgstr "" + +#: ../fdroidserver/scanner.py +#, python-brace-format +msgid "Skipping {appid}: no builds specified" +msgstr "" + +#: ../fdroidserver/server.py ../fdroidserver/upload.py +msgid "Specify a local folder to sync the repo to" +msgstr "" + +#: ../fdroidserver/server.py ../fdroidserver/upload.py +msgid "Specify an identity file to provide to SSH for rsyncing" +msgstr "" + +#: ../fdroidserver/update.py +msgid "Specify editor to use in interactive mode. Default " +msgstr "" + +#, c-format +msgid "Specify editor to use in interactive mode. Default %s" +msgstr "" + +#: ../fdroidserver/update.py +#, python-brace-format +msgid "Specify editor to use in interactive mode. Default is {path}" +msgstr "" + +#: ../fdroidserver/build.py +msgid "Specify that we're running on the build server" +msgstr "" + +#: ../fdroidserver/nightly.py +msgid "Specify which debug keystore file to use." +msgstr "" + +#: ../fdroidserver/common.py +msgid "Spew out even more information than normal" +msgstr "" + +#: ../fdroidserver/nightly.py +#, python-brace-format +msgid "Striping mystery signature from {apkfilename}" +msgstr "" + +#: ../fdroidserver/lint.py +#, python-format +msgid "Summary '%s' is just the app's name" +msgstr "" + +#: ../fdroidserver/lint.py +#, python-brace-format +msgid "Summary of length {length} is over the {limit} char limit" +msgstr "" + +#: ../fdroidserver/common.py +#, python-brace-format +msgid "System clock is older than date in {path}!" +msgstr "" + +#: ../fdroidserver/build.py +msgid "Test mode - put output in the tmp directory only, and always build, even if the output already exists." +msgstr "" + +#. Translators: https://developer.android.com/guide/topics/manifest/manifest-element.html#vcode +#: ../fdroidserver/update.py +#, python-brace-format +msgid "The OBB version code must come after \"{name}.\":" +msgstr "" + +#: ../fdroidserver/btlog.py +msgid "The base URL for the repo to log (default: https://f-droid.org)" +msgstr "" + +#: ../fdroidserver/mirror.py +msgid "The directory to write the mirror to" +msgstr "" + +#: ../fdroidserver/server.py +msgid "The only commands currently supported are 'init' and 'update'" +msgstr "" + +#: ../fdroidserver/index.py +msgid "The repository's fingerprint does not match." +msgstr "" + +#: ../fdroidserver/common.py +msgid "The repository's index could not be verified." +msgstr "" + +#: ../fdroidserver/server.py +#, python-brace-format +msgid "The root dir for local_copy_dir \"{path}\" does not exist!" +msgstr "" + +#: ../fdroidserver/nightly.py +msgid "The the file to be included in the repo (path or glob)" +msgstr "" + +#: ../fdroidserver/publish.py +msgid "There is a keyalias collision - publishing halted" +msgstr "" + +#: ../fdroidserver/import.py +#, python-format +msgid "This repo already has local metadata: %s" +msgstr "" + +#: ../fdroidserver/server.py ../fdroidserver/upload.py +msgid "To use awsbucket, awssecretkey and awsaccesskeyid must also be set in config.py!" +msgstr "" + +#: ../fdroidserver/lint.py +msgid "UCM is set but it looks like checkupdates hasn't been run yet" +msgstr "" + +#: ../fdroidserver/lint.py +msgid "URL shorteners should not be used" +msgstr "" + +#: ../fdroidserver/metadata.py +msgid "URL title is just the URL, use brackets: [URL]" +msgstr "" + +#: ../fdroidserver/lint.py +#, python-brace-format +msgid "URL {url} in Description: {error}" +msgstr "" + +#: ../fdroidserver/metadata.py +#, python-brace-format +msgid "Unexpected text on same line as {field} in {linedesc}" +msgstr "" + +#: ../fdroid +msgid "Unknown exception found!" +msgstr "" + +#. Translators: https://developer.android.com/guide/topics/manifest/manifest-element.html#vname +#: ../fdroidserver/lint.py +#, python-brace-format +msgid "Unknown file '{filename}' in build '{versionName}'" +msgstr "" + +#: ../fdroidserver/metadata.py +#, python-format +msgid "Unknown metadata format: %s" +msgstr "" + +#: ../fdroidserver/metadata.py +#, python-brace-format +msgid "Unknown metadata format: {path}" +msgstr "" + +#: ../fdroidserver/common.py +msgid "Unknown version of aapt, might cause problems: " +msgstr "" + +#: ../fdroidserver/lint.py +msgid "Unlinkified link - use [http://foo.bar Link title] or [http://foo.bar]" +msgstr "" + +#: ../fdroidserver/lint.py +msgid "Unnecessary leading space" +msgstr "" + +#: ../fdroidserver/lint.py +msgid "Unnecessary trailing space" +msgstr "" + +#: ../fdroidserver/metadata.py +msgid "Unrecognised app field: " +msgstr "" + +#: ../fdroidserver/metadata.py +#, python-brace-format +msgid "Unrecognised field '{field}' in {linedesc}" +msgstr "" + +#: ../fdroidserver/update.py +#, python-brace-format +msgid "Unsupported file type \"{extension}\" for repo graphic" +msgstr "" + +#: ../fdroidserver/update.py +#, python-brace-format +msgid "Unsupported graphics file found: {path}" +msgstr "" + +#: ../fdroidserver/rewritemeta.py +#, python-brace-format +msgid "Unsupported metadata format, use: --to [{supported}]" +msgstr "" + +#: ../fdroidserver/metadata.py +msgid "Unterminated ]" +msgstr "" + +#: ../fdroidserver/metadata.py +msgid "Unterminated ]]" +msgstr "" + +#: ../fdroidserver/metadata.py +#, python-brace-format +msgid "Unterminated build in {name}" +msgstr "" + +#: ../fdroidserver/metadata.py +#, python-brace-format +msgid "Unterminated continuation in {name}" +msgstr "" + +#: ../fdroidserver/lint.py +#, python-format +msgid "Unused extlib at %s" +msgstr "" + +#: ../fdroidserver/lint.py +#, python-format +msgid "Unused file at %s" +msgstr "" + +#: ../fdroidserver/lint.py +msgid "Update Check Name is set to the known app id - it can be removed" +msgstr "" + +#: ../fdroid +msgid "Update repo information for new packages" +msgstr "" + +#: ../fdroid +msgid "Update the binary transparency log for a URL" +msgstr "" + +#: ../fdroid +msgid "Update the stats of the repo" +msgstr "" + +#: ../fdroidserver/update.py ../fdroidserver/build.py +msgid "Update the wiki" +msgstr "" + +#: /usr/lib/python3.5/optparse.py /usr/lib/python3.6/optparse.py +msgid "Usage" +msgstr "" + +#: /usr/lib/python3.5/optparse.py /usr/lib/python3.6/optparse.py +#, python-format +msgid "Usage: %s\n" +msgstr "" + +#: ../fdroidserver/lint.py +msgid "Use /HEAD instead of /master to point at a file in the default branch" +msgstr "" + +#: ../fdroidserver/update.py +msgid "Use `fdroid update -c` to create it." +msgstr "" + +#: ../fdroidserver/build.py +msgid "Use build server" +msgstr "" + +#: ../fdroidserver/update.py +msgid "Use date from APK instead of current time for newly added APKs" +msgstr "" + +msgid "Use date from apk instead of current time for newly added apks" +msgstr "" + +#: ../fdroidserver/server.py ../fdroidserver/upload.py +#, python-brace-format +msgid "Using \"{path}\" for configuring s3cmd." +msgstr "" + +#: ../fdroidserver/common.py +msgid "Using Java's jarsigner, not recommended for verifying APKs! Use apksigner" +msgstr "" + +#: ../fdroidserver/init.py +#, python-brace-format +msgid "Using existing keystore \"{path}\"" +msgstr "" + +#: ../fdroidserver/server.py ../fdroidserver/upload.py +#, python-brace-format +msgid "Using s3cmd to sync with: {url}" +msgstr "" + +#: ../fdroid +msgid "Valid commands are:" +msgstr "" + +#: ../fdroid +msgid "Verify the integrity of downloaded packages" +msgstr "" + +#: ../fdroidserver/index.py +msgid "Verifying index signature:" +msgstr "" + +#: ../fdroid +msgid "Warn about possible metadata errors" +msgstr "" + +#: ../fdroidserver/update.py +msgid "When configured for signed indexes, create only unsigned indexes at this stage" +msgstr "" + +msgid "X.509 'Distiguished Name' used when generating keys" +msgstr "" + +#: ../fdroidserver/init.py +msgid "X.509 'Distinguished Name' used when generating keys" +msgstr "" + +#: ../fdroidserver/common.py +msgid "You can use ANDROID_HOME to set the path to your SDK, i.e.:" +msgstr "" + +#: ../fdroidserver/nightly.py +#, python-brace-format +msgid "adding IdentityFile to {path}" +msgstr "" + +#: ../fdroidserver/update.py +#, python-brace-format +msgid "adding to {name}: {path}" +msgstr "" + +#: /usr/lib/python3.5/argparse.py /usr/lib/python3.6/argparse.py +#, python-format +msgid "ambiguous option: %(option)s could match %(matches)s" +msgstr "" + +#: /usr/lib/python3.5/optparse.py /usr/lib/python3.6/optparse.py +#, python-format +msgid "ambiguous option: %s (%s?)" +msgstr "" + +#: ../fdroidserver/lint.py ../fdroidserver/rewritemeta.py +msgid "applicationId in the form APPID" +msgstr "" + +#: ../fdroidserver/checkupdates.py +msgid "applicationId to check for updates" +msgstr "" + +#. Translators: https://developer.android.com/guide/topics/manifest/manifest-element.html#vcode +#: ../fdroidserver/verify.py ../fdroidserver/publish.py +#: ../fdroidserver/dscanner.py ../fdroidserver/build.py +#: ../fdroidserver/scanner.py ../fdroidserver/install.py +msgid "applicationId with optional versionCode in the form APPID[:VERCODE]" +msgstr "" + +#: /usr/lib/python3.5/argparse.py /usr/lib/python3.6/argparse.py +#, python-format +msgid "argument \"-\" with mode %r" +msgstr "" + +#: ../fdroidserver/nightly.py +msgid "attempting bare ssh connection to test deploy key:" +msgstr "" + +#: /usr/lib/python3.5/argparse.py /usr/lib/python3.6/argparse.py +#, python-format +msgid "can't open '%s': %s" +msgstr "" + +#: /usr/lib/python3.5/argparse.py /usr/lib/python3.6/argparse.py +msgid "cannot have multiple subparser arguments" +msgstr "" + +#: /usr/lib/python3.5/argparse.py /usr/lib/python3.6/argparse.py +#, python-format +msgid "cannot merge actions - two groups are named %r" +msgstr "" + +#: ../fdroidserver/nightly.py +msgid "cannot publish update, did you set the deploy key?" +msgstr "" + +#: ../fdroidserver/nightly.py +#, python-brace-format +msgid "cloning {url}" +msgstr "" + +#: ../fdroidserver/server.py +msgid "command to execute, either 'init' or 'update'" +msgstr "" + +#: /usr/lib/python3.5/optparse.py /usr/lib/python3.6/optparse.py +msgid "complex" +msgstr "" + +#: /usr/lib/python3.5/argparse.py /usr/lib/python3.6/argparse.py +#, python-format +msgid "conflicting option string: %s" +msgid_plural "conflicting option strings: %s" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#: ../fdroidserver/nightly.py +#, python-brace-format +msgid "copying {apkfilename} into {path}" +msgstr "" + +#: ../fdroidserver/nightly.py +#, python-brace-format +msgid "created {path}" +msgstr "" + +#: ../fdroidserver/update.py +#, python-brace-format +msgid "deleting: repo/{apkfilename}" +msgstr "" + +#: /usr/lib/python3.5/argparse.py /usr/lib/python3.6/argparse.py +#, python-format +msgid "dest= is required for options like %r" +msgstr "" + +#: /usr/lib/python3.5/argparse.py /usr/lib/python3.6/argparse.py +#, python-format +msgid "expected %s argument" +msgid_plural "expected %s arguments" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#: /usr/lib/python3.5/argparse.py /usr/lib/python3.6/argparse.py +msgid "expected at least one argument" +msgstr "" + +#: /usr/lib/python3.5/argparse.py /usr/lib/python3.6/argparse.py +msgid "expected at most one argument" +msgstr "" + +#: /usr/lib/python3.5/argparse.py /usr/lib/python3.6/argparse.py +msgid "expected one argument" +msgstr "" + +#: ../fdroid +msgid "fdroid [-h|--help|--version] []" +msgstr "" + +#: ../fdroid +msgid "fdroid [] [-h|--help|--version|]" +msgstr "" + +#: /usr/lib/python3.5/optparse.py /usr/lib/python3.6/optparse.py +msgid "floating-point" +msgstr "" + +#: ../fdroidserver/metadata.py +msgid "force errors to be warnings, or ignore" +msgstr "" + +#: ../fdroidserver/metadata.py +msgid "force metadata errors (default) to be warnings, or to be ignored." +msgstr "" + +#: ../fdroidserver/common.py +msgid "git svn clone failed" +msgstr "" + +#: /usr/lib/python3.5/argparse.py /usr/lib/python3.6/argparse.py +#, python-format +msgid "ignored explicit argument %r" +msgstr "" + +#: ../fdroidserver/index.py +msgid "index-v1 must have a signature, use `fdroid signindex` to create it!" +msgstr "" + +#: /usr/lib/python3.5/optparse.py /usr/lib/python3.6/optparse.py +msgid "integer" +msgstr "" + +#: /usr/lib/python3.5/argparse.py /usr/lib/python3.6/argparse.py +#, python-format +msgid "invalid %(type)s value: %(value)r" +msgstr "" + +#: /usr/lib/python3.5/argparse.py /usr/lib/python3.6/argparse.py +#, python-format +msgid "invalid choice: %(value)r (choose from %(choices)s)" +msgstr "" + +#: /usr/lib/python3.5/argparse.py /usr/lib/python3.6/argparse.py +#, python-format +msgid "invalid conflict_resolution value: %r" +msgstr "" + +#: /usr/lib/python3.5/argparse.py /usr/lib/python3.6/argparse.py +#, python-format +msgid "invalid option string %(option)r: must start with a character %(prefix_chars)r" +msgstr "" + +#: ../fdroidserver/server.py +#, python-brace-format +msgid "local_copy_dir does not end with \"fdroid\", perhaps you meant: \"{path}\"" +msgstr "" + +#: ../fdroidserver/server.py +msgid "local_copy_dir must be an absolute path!" +msgstr "" + +#: ../fdroidserver/server.py +msgid "local_copy_dir must be directory, not a file!" +msgstr "" + +#: ../fdroidserver/index.py +#, python-format +msgid "mirror '%s' does not end with 'fdroid'!" +msgstr "" + +#: /usr/lib/python3.5/argparse.py /usr/lib/python3.6/argparse.py +msgid "mutually exclusive arguments must be optional" +msgstr "" + +#: ../fdroidserver/mirror.py +#, python-brace-format +msgid "no \"icon\" in {appid}" +msgstr "" + +#: ../fdroidserver/signatures.py +msgid "no APK supplied" +msgstr "" + +#: /usr/lib/python3.5/optparse.py /usr/lib/python3.6/optparse.py +#, python-format +msgid "no such option: %s" +msgstr "" + +#: ../fdroid +msgid "no version info found!" +msgstr "" + +#: /usr/lib/python3.5/argparse.py /usr/lib/python3.6/argparse.py +#, python-format +msgid "not allowed with argument %s" +msgstr "" + +#: /usr/lib/python3.5/argparse.py /usr/lib/python3.6/argparse.py +#, python-format +msgid "one of the arguments %s is required" +msgstr "" + +#: ../fdroidserver/index.py ../fdroidserver/common.py +msgid "only accepts strings, lists, and tuples" +msgstr "" + +#: ../fdroidserver/install.py +#, python-format +msgid "option %s: If you really want to install all the signed apps, use --all" +msgstr "" + +#: /usr/lib/python3.5/optparse.py /usr/lib/python3.6/optparse.py +#, python-format +msgid "option %s: invalid %s value: %r" +msgstr "" + +#: /usr/lib/python3.5/optparse.py /usr/lib/python3.6/optparse.py +#, python-format +msgid "option %s: invalid choice: %r (choose from %s)" +msgstr "" + +#: /usr/lib/python3.5/getopt.py /usr/lib/python3.6/getopt.py +#, python-format +msgid "option -%s not recognized" +msgstr "" + +#: /usr/lib/python3.5/getopt.py /usr/lib/python3.6/getopt.py +#, python-format +msgid "option -%s requires argument" +msgstr "" + +#: /usr/lib/python3.5/getopt.py /usr/lib/python3.6/getopt.py +#, python-format +msgid "option --%s must not have an argument" +msgstr "" + +#: /usr/lib/python3.5/getopt.py /usr/lib/python3.6/getopt.py +#, python-format +msgid "option --%s not a unique prefix" +msgstr "" + +#: /usr/lib/python3.5/getopt.py /usr/lib/python3.6/getopt.py +#, python-format +msgid "option --%s not recognized" +msgstr "" + +#: /usr/lib/python3.5/getopt.py /usr/lib/python3.6/getopt.py +#, python-format +msgid "option --%s requires argument" +msgstr "" + +#: /usr/lib/python3.5/argparse.py /usr/lib/python3.6/argparse.py +msgid "optional arguments" +msgstr "" + +#: ../fdroidserver/nightly.py +#, python-brace-format +msgid "overwriting existing {path}" +msgstr "" + +#: /usr/lib/python3.5/argparse.py /usr/lib/python3.6/argparse.py +msgid "positional arguments" +msgstr "" + +#: ../fdroidserver/signatures.py +#, python-brace-format +msgid "refuse downloading via insecure HTTP connection (use HTTPS or specify --no-https-check): {apkfilename}" +msgstr "" + +#: ../fdroidserver/signatures.py +#, python-brace-format +msgid "refuse downloading via insecure http connection (use https or specify --no-https-check): {apkfilename}" +msgstr "" + +#: ../fdroidserver/server.py ../fdroidserver/upload.py +#, python-brace-format +msgid "s3cmd sync indexes {path} to {url} and delete" +msgstr "" + +#: /usr/lib/python3.5/optparse.py /usr/lib/python3.6/optparse.py +msgid "show program's version number and exit" +msgstr "" + +#: /usr/lib/python3.5/argparse.py /usr/lib/python3.5/optparse.py +#: /usr/lib/python3.6/argparse.py /usr/lib/python3.6/optparse.py +msgid "show this help message and exit" +msgstr "" + +#: ../fdroidserver/signatures.py +msgid "signed APK, either a file-path or HTTPS URL." +msgstr "" + +#: ../fdroidserver/update.py +#, python-brace-format +msgid "skipping source tarball: {path}" +msgstr "" + +#: ../fdroidserver/lint.py +msgid "srclibs missing name and/or @" +msgstr "" + +#: /usr/lib/python3.5/argparse.py /usr/lib/python3.6/argparse.py +#, python-format +msgid "the following arguments are required: %s" +msgstr "" + +#: /usr/lib/python3.5/argparse.py /usr/lib/python3.6/argparse.py +#, python-format +msgid "unexpected option string: %s" +msgstr "" + +#: /usr/lib/python3.5/argparse.py /usr/lib/python3.6/argparse.py +#, python-format +msgid "unknown parser %(parser_name)r (choices: %(choices)s)" +msgstr "" + +#: /usr/lib/python3.5/argparse.py /usr/lib/python3.6/argparse.py +#, python-format +msgid "unrecognized arguments: %s" +msgstr "" + +#: ../fdroidserver/common.py +#, python-brace-format +msgid "unsafe permissions on '{config_file}' (should be 0600)!" +msgstr "" + +#: /usr/lib/python3.5/argparse.py /usr/lib/python3.6/argparse.py ../fdroid +msgid "usage: " +msgstr "" + +#: ../fdroid +msgid "usage: fdroid [-h|--help|--version] []" +msgstr "" + +#: ../fdroidserver/server.py ../fdroidserver/upload.py +#, python-brace-format +msgid "using Apache libcloud to sync with {url}" +msgstr "" + +#: ../fdroidserver/publish.py +#, python-brace-format +msgid "{0} app, {1} key aliases" +msgid_plural "{0} apps, {1} key aliases" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#: ../fdroidserver/update.py +#, python-brace-format +msgid "{apkfilename} ({appid}) has no metadata!" +msgstr "" + +#: ../fdroidserver/update.py +#, python-brace-format +msgid "{apkfilename} has multiple {name} files, looks like Master Key exploit!" +msgstr "" + +#: ../fdroidserver/update.py +#, python-brace-format +msgid "{apkfilename}'s AndroidManifest.xml has a bad date: " +msgstr "" + +#: ../fdroidserver/update.py +#, python-brace-format +msgid "{appid} does not have a name! Using package name instead." +msgstr "" + +#: ../fdroidserver/mirror.py +#, python-brace-format +msgid "{appid} is missing {name}" +msgstr "" + +#. Translators: https://developer.android.com/guide/topics/manifest/manifest-element.html#vname +#: ../fdroidserver/lint.py +#, python-brace-format +msgid "{appid}: Unknown extlib {path} in build '{versionName}'" +msgstr "" + +#: ../fdroidserver/scanner.py +#, python-brace-format +msgid "{appid}: no builds specified, running on current source state" +msgstr "" + +#: ../fdroidserver/metadata.py +#, python-brace-format +msgid "{field} not terminated in {name}" +msgstr "" + +#: ../fdroidserver/update.py +#, python-brace-format +msgid "{name} \"{path}\" does not exist! Correct it in config.py." +msgstr "" + +#: ../fdroidserver/nightly.py +#, python-brace-format +msgid "{path} does not exist! Create it by running:" +msgstr "" + +#: ../fdroidserver/update.py +#, python-brace-format +msgid "{path} has bad file signature \"{pattern}\", possible Janus exploit!" +msgstr "" + +#: ../fdroidserver/update.py +#, python-brace-format +msgid "{path} is zero size!" +msgstr "" + +#: ../fdroidserver/mirror.py +#, python-brace-format +msgid "{url} does not end with \"fdroid\", check the URL path!" +msgstr "" + +#: ../fdroidserver/build.py +msgid "{} build failed" +msgid_plural "{} builds failed" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#: ../fdroidserver/build.py +msgid "{} build succeeded" +msgid_plural "{} builds succeeded" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" Binary files /tmp/tmpCoX7hp/hZW9rVCDMC/fdroidserver-1.0.2/locale/tr/LC_MESSAGES/fdroidserver.mo and /tmp/tmpCoX7hp/RzjpYOWXQL/fdroidserver-1.0.6/locale/tr/LC_MESSAGES/fdroidserver.mo differ diff -Nru fdroidserver-1.0.2/locale/tr/LC_MESSAGES/fdroidserver.po fdroidserver-1.0.6/locale/tr/LC_MESSAGES/fdroidserver.po --- fdroidserver-1.0.2/locale/tr/LC_MESSAGES/fdroidserver.po 2018-02-22 14:40:02.000000000 +0000 +++ fdroidserver-1.0.6/locale/tr/LC_MESSAGES/fdroidserver.po 2018-05-25 11:52:25.000000000 +0000 @@ -3,20 +3,37 @@ # FIRST AUTHOR , YEAR. # msgid "" -msgstr "Project-Id-Version: fdroidserver 0.9\nReport-Msgid-Bugs-To: team@f-droid.org\nPOT-Creation-Date: 2018-02-13 09:01+0100\nPO-Revision-Date: 2018-02-14 15:44+0000\nLast-Translator: monolifed \nLanguage-Team: Turkish \nLanguage: tr\nMIME-Version: 1.0\nContent-Type: text/plain; charset=UTF-8\nContent-Transfer-Encoding: 8bit\nPlural-Forms: nplurals=2; plural=n != 1;\nX-Generator: Weblate 2.19-dev\n" +msgstr "" +"Project-Id-Version: fdroidserver 0.9\n" +"Report-Msgid-Bugs-To: https://gitlab.com/fdroid/fdroidserver/issues\n" +"POT-Creation-Date: 2018-02-13 09:01+0100\n" +"PO-Revision-Date: 2018-05-20 20:42+0000\n" +"Last-Translator: Ali Demirtas \n" +"Language-Team: Turkish \n" +"Language: tr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 3.0-dev\n" #: ../fdroidserver/nightly.py msgid "" "\n" "SSH Public Key to be used as Deploy Key:" -msgstr "\nDağıtım Anahtarı olarak kullanılacak SSH Açık Anahtar:" +msgstr "" +"\n" +"Dağıtım Anahtarı olarak kullanılacak SSH Açık Anahtar:" #: ../fdroidserver/nightly.py #, python-brace-format msgid "" "\n" "{path} encoded for the DEBUG_KEYSTORE secret variable:" -msgstr "\nDEBUG_KEYSTORE gizli değişkeni için kodlanmış {path}:" +msgstr "" +"\n" +"DEBUG_KEYSTORE gizli değişkeni için kodlanmış {path}:" #: ../fdroidserver/lint.py #, python-format @@ -114,12 +131,15 @@ #: ../fdroidserver/common.py #, python-brace-format msgid "'{aapt}' is too old, fdroid requires build-tools-23.0.0 or newer!" -msgstr "'{aapt}' çok eski, fdroid build-tools-23.0.0 veya daha yenisini gerektirir!" +msgstr "" +"'{aapt}' çok eski, fdroid build-tools-23.0.0 veya daha yenisini gerektirir!" #: ../fdroidserver/common.py #, python-brace-format msgid "'{aapt}' is too old, fdroid requires build-tools-{version} or newer!" -msgstr "'{aapt}' çok eski, fdroid build-tools-{version} veya daha yenisini gerektirir!" +msgstr "" +"'{aapt}' çok eski, fdroid build-tools-{version} veya daha yenisini " +"gerektirir!" #: ../fdroidserver/install.py #, python-brace-format @@ -128,8 +148,12 @@ #: ../fdroidserver/common.py #, python-brace-format -msgid "'{field}' will be in random order! Use () or [] brackets if order is important!" -msgstr "'{field}' rastgele sırada olacak! Sıra önemliyse () veya [] parantez kullanın!" +msgid "" +"'{field}' will be in random order! Use () or [] brackets if order is " +"important!" +msgstr "" +"'{field}' rastgele sırada olacak! Sıra önemliyse () veya [] parantez " +"kullanın!" #: ../fdroidserver/common.py #, python-brace-format @@ -139,7 +163,8 @@ #: ../fdroidserver/metadata.py #, python-brace-format msgid "'{value}' is not a valid {field} in {appid}. Regex pattern: {pattern}" -msgstr "'{value}' {appid} içinde geçerli {field} değil. Regex ifadesi: {pattern}" +msgstr "" +"'{value}' {appid} içinde geçerli {field} değil. Regex ifadesi: {pattern}" #: ../fdroidserver/checkupdates.py #, python-brace-format @@ -152,7 +177,7 @@ #: ../fdroidserver/metadata.py msgid ".fdroid.txt is not supported! Convert to .fdroid.yml or .fdroid.json." -msgstr "" +msgstr ".fdroid.txt desteklenmiyor! .fdroid.yml ya da .fdroid.json dönüştürün." #: ../fdroidserver/lint.py msgid "/issues is missing" @@ -172,7 +197,7 @@ #: ../fdroidserver/update.py msgid "Add a repo signing key to an unsigned repo" -msgstr "" +msgstr "İmzasız bir repo repo imzalama anahtarı ekleyin" #: ../fdroidserver/update.py msgid "Add skeleton metadata files for APKs that are missing them" @@ -181,19 +206,23 @@ #: ../fdroidserver/update.py #, python-brace-format msgid "Adding new repo for only {name}" -msgstr "" +msgstr "Sadece {name} için yeni repo ekleme" #: ../fdroidserver/init.py msgid "Alias of the repo signing key in the keystore" msgstr "Depo imzalama anahtarının anahtar deposundaki takma adı" #: ../fdroidserver/import.py -msgid "Allows a different revision (or git branch) to be specified for the initial import" -msgstr "İlk içe aktarım için farklı bir revizyonun (veya git dalının) belirtilmesine izin verir" +msgid "" +"Allows a different revision (or git branch) to be specified for the initial " +"import" +msgstr "" +"İlk içe aktarım için farklı bir revizyonun (veya git dalının) belirtilmesine " +"izin verir" #: ../fdroidserver/mirror.py msgid "Also mirror the full archive section" -msgstr "" +msgstr "Tam arşiv bölümünü de yansıt" #: ../fdroidserver/lint.py msgid "Also warn about formatting issues, like rewritemeta -l" @@ -216,7 +245,7 @@ #: ../fdroidserver/common.py #, python-brace-format msgid "Android SDK path '{path}' is not a directory!" -msgstr "" +msgstr "Android SDK yolu '{path}' bir dizin değil!" #. Translators: "build-tools" is the file name of a package from #. Google, it is part of the Android SDK. So it probably shouldn't be @@ -224,29 +253,33 @@ #: ../fdroidserver/common.py #, python-brace-format msgid "Android build-tools path '{path}' does not exist!" -msgstr "" +msgstr "Android oluşturma araçları yolu '{path}' mevcut değil!" #: ../fdroidserver/update.py msgid "AndroidManifest.xml has no date" -msgstr "" +msgstr "AndroidManifest.xml herhangi bir tarih yok" #: ../fdroidserver/lint.py #, python-brace-format msgid "App is in '{repo}' but has a link to {url}" -msgstr "" +msgstr "Uygulama '{repo}' içinde ancak {url} adresine bir bağlantısı var" #: ../fdroidserver/lint.py msgid "Appending .git is not necessary" -msgstr "" +msgstr "Ekleme .gıt gerekli değildir" #: ../fdroidserver/update.py #, python-brace-format msgid "Archiving {apkfilename} with invalid signature!" -msgstr "" +msgstr "Geçersiz imza ile {apkfilename} arşivleme!" #: ../fdroidserver/mirror.py -msgid "Base URL to mirror, can include the index signing key using the query string: ?fingerprint=" +msgid "" +"Base URL to mirror, can include the index signing key using the query " +"string: ?fingerprint=" msgstr "" +"Yansıtılacak temel URL, sorgu dizesini kullanarak dizin imzalama anahtarını " +"içerebilir: ?fingerprint=" #. Translators: https://developer.android.com/guide/topics/manifest/manifest-element.html#vname #: ../fdroidserver/lint.py @@ -270,6 +303,7 @@ #: ../fdroidserver/lint.py msgid "Build generated by `fdroid import` - remove disable line once ready" msgstr "" +"İnşa `fdroid import` ile üretildi - hazır olunca devre dışı satırını kaldırın" #: ../fdroidserver/build.py msgid "Build only the latest version of each package" @@ -277,7 +311,9 @@ #: ../fdroidserver/metadata.py #, python-brace-format -msgid "Build should have comma-separated versionName and versionCode, not \"{value}\", in {linedesc}" +msgid "" +"Build should have comma-separated versionName and versionCode, not " +"\"{value}\", in {linedesc}" msgstr "" #: ../fdroidserver/init.py @@ -335,7 +371,9 @@ #: ../fdroidserver/update.py #, python-brace-format -msgid "Checking archiving for {appid} - apks:{integer}, keepversions:{keep}, archapks:{arch}" +msgid "" +"Checking archiving for {appid} - apks:{integer}, keepversions:{keep}, " +"archapks:{arch}" msgstr "" #: ../fdroidserver/dscanner.py @@ -493,8 +531,11 @@ msgstr "Günlüklerle ilgili bir şey yapma" #: ../fdroidserver/build.py -msgid "Don't refresh the repository, useful when testing a build with no internet connection" -msgstr "Depoyu yenileme, bir inşa internet bağlantısı olmadan sınanırken yararlıdır" +msgid "" +"Don't refresh the repository, useful when testing a build with no internet " +"connection" +msgstr "" +"Depoyu yenileme, bir inşa internet bağlantısı olmadan sınanırken yararlıdır" #: ../fdroidserver/server.py ../fdroidserver/nightly.py #: ../fdroidserver/upload.py @@ -520,7 +561,8 @@ #: ../fdroidserver/metadata.py #, python-brace-format -msgid "Duplicate build recipe found for versionCode {versionCode} in {linedesc}" +msgid "" +"Duplicate build recipe found for versionCode {versionCode} in {linedesc}" msgstr "" #: ../fdroidserver/lint.py @@ -645,8 +687,12 @@ msgstr "" #: ../fdroidserver/build.py -msgid "Force build of disabled apps, and carries on regardless of scan problems. Only allowed in test mode." -msgstr "Devre dışı uygulamaların inşasını zorunlu kıl, ve tarama problemi olsa bile devam et. Sadece sınama kipinde izin verilir." +msgid "" +"Force build of disabled apps, and carries on regardless of scan problems. " +"Only allowed in test mode." +msgstr "" +"Devre dışı uygulamaların inşasını zorunlu kıl, ve tarama problemi olsa bile " +"devam et. Sadece sınama kipinde izin verilir." #: ../fdroidserver/build.py #, python-brace-format @@ -783,72 +829,79 @@ #: ../fdroidserver/metadata.py #, python-format msgid "Invalid boolean '%s'" -msgstr "" +msgstr "Geçersiz boole '%s'" #: ../fdroidserver/metadata.py #, python-brace-format msgid "Invalid build flag at {line} in {linedesc}" -msgstr "" +msgstr "{linedesc} içinde {line} üstünde geçersiz inşa bayrağı" #: ../fdroidserver/metadata.py #, python-brace-format msgid "Invalid build format: {value} in {name}" -msgstr "" +msgstr "Geçersiz inşa biçimi: {name} içinde {value}" #: ../fdroidserver/lint.py msgid "Invalid bulleted list" -msgstr "" +msgstr "Geçersiz madde imli liste" #: ../fdroidserver/lint.py #, python-format -msgid "Invalid license tag \"%s\"! Use only tags from https://spdx.org/license-list" +msgid "" +"Invalid license tag \"%s\"! Use only tags from https://spdx.org/license-list" msgstr "" +"Geçersiz lisans etiketi \"%s\"! Yalnızca https://spdx.org/license-list " +"adresindeki etiketleri kullanın" #: ../fdroidserver/lint.py msgid "Invalid link - use [http://foo.bar Link title] or [http://foo.bar]" msgstr "" +"Geçersiz bağlantı - [http://foo.bar Bağlantı başlığı] veya [http://foo.bar] " +"kullanın" #: ../fdroidserver/metadata.py #, python-format msgid "Invalid metadata in %s:%d" -msgstr "" +msgstr "%s:%d içinde geçersiz üst veri" #: ../fdroidserver/metadata.py msgid "Invalid metadata in: " -msgstr "" +msgstr "Geçersiz üst veri: " #: ../fdroidserver/common.py #, python-format msgid "Invalid name for published file: %s" -msgstr "" +msgstr "Yayımlanmış dosya için geçersiz ad: %s" #: ../fdroidserver/common.py #, python-brace-format msgid "Invalid package name {0}" -msgstr "" +msgstr "Geçersiz paket adı {0}" #: ../fdroidserver/metadata.py #, python-brace-format msgid "Invalid versionCode: \"{versionCode}\" is not an integer!" -msgstr "" +msgstr "Geçersiz versionCode: \"{versionCode}\" bir tamsayı değil!" #: ../fdroidserver/common.py #, python-brace-format msgid "JAR signature failed to verify: {path}" -msgstr "" +msgstr "JAR imzası doğrulanamadı: {path}" #: ../fdroidserver/common.py #, python-brace-format msgid "JAR signature verified: {path}" -msgstr "" +msgstr "JAR imzası doğrulandı: {path}" #: ../fdroidserver/publish.py ../fdroidserver/update.py #: ../fdroidserver/mirror.py msgid "Java JDK not found! Install in standard location or set java_paths!" msgstr "" +"Java JDK bulunmadı! Standart konumda kurun veya java_paths'i ayarlayın!" #: ../fdroidserver/signindex.py -msgid "Java jarsigner not found! Install in standard location or set java_paths!" +msgid "" +"Java jarsigner not found! Install in standard location or set java_paths!" msgstr "" #: ../fdroidserver/lint.py @@ -861,7 +914,9 @@ #: ../fdroidserver/lint.py #, python-brace-format -msgid "Last used commit '{commit}' looks like a tag, but Update Check Mode is '{ucm}'" +msgid "" +"Last used commit '{commit}' looks like a tag, but Update Check Mode is " +"'{ucm}'" msgstr "" #: ../fdroidserver/lint.py @@ -1143,7 +1198,9 @@ #. https://developer.android.com/guide/topics/manifest/manifest-element.html#vname #: ../fdroidserver/common.py #, python-brace-format -msgid "Reading packageName/versionCode/versionName failed, APK invalid: '{apkfilename}'" +msgid "" +"Reading packageName/versionCode/versionName failed, APK invalid: " +"'{apkfilename}'" msgstr "" #: ../fdroidserver/update.py @@ -1152,8 +1209,12 @@ msgstr "" #: ../fdroidserver/stats.py -msgid "Recalculate aggregate stats - use when changes have been made that would invalidate old cached data." -msgstr "Toplam istatistikleri yeniden hesapla - eski önbelleklenen veriyi geçersiz kılacak değişiklikler yapıldığında kullan." +msgid "" +"Recalculate aggregate stats - use when changes have been made that would " +"invalidate old cached data." +msgstr "" +"Toplam istatistikleri yeniden hesapla - eski önbelleklenen veriyi geçersiz " +"kılacak değişiklikler yapıldığında kullan." #: ../fdroidserver/common.py msgid "Removing specified files" @@ -1168,8 +1229,11 @@ msgstr "İnşa veri durumunu bildir" #: ../fdroidserver/build.py -msgid "Reset and create a brand new build server, even if the existing one appears to be ok." -msgstr "Sıfırla ve yeni bir inşa sunucusu yarat, var olan iyi görünüyor olsa bile." +msgid "" +"Reset and create a brand new build server, even if the existing one appears " +"to be ok." +msgstr "" +"Sıfırla ve yeni bir inşa sunucusu yarat, var olan iyi görünüyor olsa bile." #: ../fdroidserver/nightly.py #, python-brace-format @@ -1278,7 +1342,8 @@ #: ../fdroidserver/build.py msgid "Skip scanning the source code for binaries and other problems" -msgstr "Kaynak kodu, çalıştırılabilir dosyalar ve diğer sorunlar için taramayı atla" +msgstr "" +"Kaynak kodu, çalıştırılabilir dosyalar ve diğer sorunlar için taramayı atla" #: ../fdroidserver/update.py #, python-brace-format @@ -1324,7 +1389,8 @@ #: ../fdroidserver/update.py #, python-brace-format msgid "Specify editor to use in interactive mode. Default is {path}" -msgstr "Etkileşimli kipte kullanılacak düzenleyiciyi belirtin. Öntanımlı olan {path}" +msgstr "" +"Etkileşimli kipte kullanılacak düzenleyiciyi belirtin. Öntanımlı olan {path}" #: ../fdroidserver/build.py msgid "Specify that we're running on the build server" @@ -1359,8 +1425,12 @@ msgstr "" #: ../fdroidserver/build.py -msgid "Test mode - put output in the tmp directory only, and always build, even if the output already exists." -msgstr "Sınama kipi - çıkışı sadece tmp dizinine koy, ve her zaman inşa et, çıkış zaten var olsa bile." +msgid "" +"Test mode - put output in the tmp directory only, and always build, even if " +"the output already exists." +msgstr "" +"Sınama kipi - çıkışı sadece tmp dizinine koy, ve her zaman inşa et, çıkış " +"zaten var olsa bile." #. Translators: https://developer.android.com/guide/topics/manifest/manifest-element.html#vcode #: ../fdroidserver/update.py @@ -1407,7 +1477,9 @@ msgstr "" #: ../fdroidserver/server.py ../fdroidserver/upload.py -msgid "To use awsbucket, awssecretkey and awsaccesskeyid must also be set in config.py!" +msgid "" +"To use awsbucket, awssecretkey and awsaccesskeyid must also be set in config." +"py!" msgstr "" #: ../fdroidserver/lint.py @@ -1574,7 +1646,8 @@ msgstr "" #: ../fdroidserver/common.py -msgid "Using Java's jarsigner, not recommended for verifying APKs! Use apksigner" +msgid "" +"Using Java's jarsigner, not recommended for verifying APKs! Use apksigner" msgstr "" #: ../fdroidserver/init.py @@ -1585,7 +1658,7 @@ #: ../fdroidserver/server.py ../fdroidserver/upload.py #, python-brace-format msgid "Using s3cmd to sync with: {url}" -msgstr "" +msgstr "{url} ile eşitleme için s3cmd kullanılıyor" #: ../fdroid msgid "Valid commands are:" @@ -1604,8 +1677,12 @@ msgstr "Olası üst veri hataları hakkında uyar" #: ../fdroidserver/update.py -msgid "When configured for signed indexes, create only unsigned indexes at this stage" -msgstr "İmzalı indeksler için yapılandırıldığında, bu aşamada sadece imzasız indeksleri yarat" +msgid "" +"When configured for signed indexes, create only unsigned indexes at this " +"stage" +msgstr "" +"İmzalı indeksler için yapılandırıldığında, bu aşamada sadece imzasız " +"indeksleri yarat" msgid "X.509 'Distiguished Name' used when generating keys" msgstr "Anahtarlar üretilirken X.509 'Distinguished Name' kullanılır" @@ -1621,12 +1698,12 @@ #: ../fdroidserver/nightly.py #, python-brace-format msgid "adding IdentityFile to {path}" -msgstr "" +msgstr "IdentityFile {path} konumuna ekleniyor" #: ../fdroidserver/update.py #, python-brace-format msgid "adding to {name}: {path}" -msgstr "" +msgstr "{name} adına ekleniyor: {path}" #: /usr/lib/python3.5/argparse.py /usr/lib/python3.6/argparse.py #, python-format @@ -1656,11 +1733,11 @@ #: /usr/lib/python3.5/argparse.py /usr/lib/python3.6/argparse.py #, python-format msgid "argument \"-\" with mode %r" -msgstr "" +msgstr "%r kipiyle \"-\" argümanı" #: ../fdroidserver/nightly.py msgid "attempting bare ssh connection to test deploy key:" -msgstr "" +msgstr "Dağıtım anahtarını sınamak için çıplak ssh bağlantısı deneniyor:" #: /usr/lib/python3.5/argparse.py /usr/lib/python3.6/argparse.py #, python-format @@ -1669,21 +1746,21 @@ #: /usr/lib/python3.5/argparse.py /usr/lib/python3.6/argparse.py msgid "cannot have multiple subparser arguments" -msgstr "" +msgstr "çoklu alt işleyici argümanı verilemez" #: /usr/lib/python3.5/argparse.py /usr/lib/python3.6/argparse.py #, python-format msgid "cannot merge actions - two groups are named %r" -msgstr "" +msgstr "eylemler birleştirilemiyor - %r adlı iki grup" #: ../fdroidserver/nightly.py msgid "cannot publish update, did you set the deploy key?" -msgstr "" +msgstr "güncelleme yayımlanamıyor, dağıtım anahtarını ayarladınız mı?" #: ../fdroidserver/nightly.py #, python-brace-format msgid "cloning {url}" -msgstr "" +msgstr "{url} klonlanıyor" #: ../fdroidserver/server.py msgid "command to execute, either 'init' or 'update'" @@ -1691,53 +1768,53 @@ #: /usr/lib/python3.5/optparse.py /usr/lib/python3.6/optparse.py msgid "complex" -msgstr "" +msgstr "karmaşık" #: /usr/lib/python3.5/argparse.py /usr/lib/python3.6/argparse.py #, python-format msgid "conflicting option string: %s" msgid_plural "conflicting option strings: %s" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "çakışan seçenek satırı: %s" +msgstr[1] "çakışan seçenek satırları: %s" #: ../fdroidserver/nightly.py #, python-brace-format msgid "copying {apkfilename} into {path}" -msgstr "" +msgstr "{apkfilename} {path} içine kopyalanıyor" #: ../fdroidserver/nightly.py #, python-brace-format msgid "created {path}" -msgstr "" +msgstr "{path} oluşturuldu" #: ../fdroidserver/update.py #, python-brace-format msgid "deleting: repo/{apkfilename}" -msgstr "" +msgstr "siliniyor: repo/{apkfilename}" #: /usr/lib/python3.5/argparse.py /usr/lib/python3.6/argparse.py #, python-format msgid "dest= is required for options like %r" -msgstr "" +msgstr "dest= %r gibi seçenekler için gerekli" #: /usr/lib/python3.5/argparse.py /usr/lib/python3.6/argparse.py #, python-format msgid "expected %s argument" msgid_plural "expected %s arguments" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "beklenen %s argümandı" +msgstr[1] "beklenen %s argümandı" #: /usr/lib/python3.5/argparse.py /usr/lib/python3.6/argparse.py msgid "expected at least one argument" -msgstr "" +msgstr "beklenen en az bir argümandı" #: /usr/lib/python3.5/argparse.py /usr/lib/python3.6/argparse.py msgid "expected at most one argument" -msgstr "" +msgstr "beklenen en çok bir argümandı" #: /usr/lib/python3.5/argparse.py /usr/lib/python3.6/argparse.py msgid "expected one argument" -msgstr "" +msgstr "beklenen bir argümandı" #: ../fdroid msgid "fdroid [-h|--help|--version] []" @@ -1749,7 +1826,7 @@ #: /usr/lib/python3.5/optparse.py /usr/lib/python3.6/optparse.py msgid "floating-point" -msgstr "" +msgstr "kayan nokta" #: ../fdroidserver/metadata.py msgid "force errors to be warnings, or ignore" @@ -1757,34 +1834,38 @@ #: ../fdroidserver/metadata.py msgid "force metadata errors (default) to be warnings, or to be ignored." -msgstr "üst veri hatalarının (öntanımlı) uyarı olmasını veya yok sayılmasını zorunlu kıl." +msgstr "" +"üst veri hatalarının (öntanımlı) uyarı olmasını veya yok sayılmasını zorunlu " +"kıl." #: ../fdroidserver/common.py msgid "git svn clone failed" -msgstr "" +msgstr "git svn clone başarısız" #: /usr/lib/python3.5/argparse.py /usr/lib/python3.6/argparse.py #, python-format msgid "ignored explicit argument %r" -msgstr "" +msgstr "açık argüman %r yok sayıldı" #: ../fdroidserver/index.py msgid "index-v1 must have a signature, use `fdroid signindex` to create it!" msgstr "" +"index-v1 bir imzaya sahip olmalı, oluşturmak için `fdroid signindex` " +"kullanın!" #: /usr/lib/python3.5/optparse.py /usr/lib/python3.6/optparse.py msgid "integer" -msgstr "" +msgstr "tamsayı" #: /usr/lib/python3.5/argparse.py /usr/lib/python3.6/argparse.py #, python-format msgid "invalid %(type)s value: %(value)r" -msgstr "" +msgstr "geçersiz %(type)s değeri: %(value)r" #: /usr/lib/python3.5/argparse.py /usr/lib/python3.6/argparse.py #, python-format msgid "invalid choice: %(value)r (choose from %(choices)s)" -msgstr "" +msgstr "geçersiz seçim: %(value)r (%(choices)s içinden seçin)" #: /usr/lib/python3.5/argparse.py /usr/lib/python3.6/argparse.py #, python-format @@ -1793,21 +1874,26 @@ #: /usr/lib/python3.5/argparse.py /usr/lib/python3.6/argparse.py #, python-format -msgid "invalid option string %(option)r: must start with a character %(prefix_chars)r" +msgid "" +"invalid option string %(option)r: must start with a character " +"%(prefix_chars)r" msgstr "" #: ../fdroidserver/server.py #, python-brace-format -msgid "local_copy_dir does not end with \"fdroid\", perhaps you meant: \"{path}\"" +msgid "" +"local_copy_dir does not end with \"fdroid\", perhaps you meant: \"{path}\"" msgstr "" +"local_copy_dir \"fdroid\" ile sonlanmıyor, belki de \"{path}\" demek " +"istediniz" #: ../fdroidserver/server.py msgid "local_copy_dir must be an absolute path!" -msgstr "" +msgstr "local_copy_dir mutlak bir yol olmalı!" #: ../fdroidserver/server.py msgid "local_copy_dir must be directory, not a file!" -msgstr "" +msgstr "local_copy_dir bir dizin olmalı, dosya değil!" #: ../fdroidserver/index.py #, python-format @@ -1825,7 +1911,7 @@ #: ../fdroidserver/signatures.py msgid "no APK supplied" -msgstr "" +msgstr "APK sağlanmadı" #: /usr/lib/python3.5/optparse.py /usr/lib/python3.6/optparse.py #, python-format @@ -1839,31 +1925,33 @@ #: /usr/lib/python3.5/argparse.py /usr/lib/python3.6/argparse.py #, python-format msgid "not allowed with argument %s" -msgstr "" +msgstr "argüman %s ile izin verilmez" #: /usr/lib/python3.5/argparse.py /usr/lib/python3.6/argparse.py #, python-format msgid "one of the arguments %s is required" -msgstr "" +msgstr "%s argümanlarından biri gerekli" #: ../fdroidserver/index.py ../fdroidserver/common.py msgid "only accepts strings, lists, and tuples" -msgstr "" +msgstr "yalnızca satırları, listeleri ve dizileri kabul eder" #: ../fdroidserver/install.py #, python-format msgid "option %s: If you really want to install all the signed apps, use --all" msgstr "" +"seçenek %s: Tüm imzalı uygulamaları gerçekten kurmak istiyorsanız, --all " +"kullanın" #: /usr/lib/python3.5/optparse.py /usr/lib/python3.6/optparse.py #, python-format msgid "option %s: invalid %s value: %r" -msgstr "" +msgstr "seçenek %s: geçersiz %s değeri: %r" #: /usr/lib/python3.5/optparse.py /usr/lib/python3.6/optparse.py #, python-format msgid "option %s: invalid choice: %r (choose from %s)" -msgstr "" +msgstr "seçenek %s: geçersiz seçim: %r (%s içinden seçin)" #: /usr/lib/python3.5/getopt.py /usr/lib/python3.6/getopt.py #, python-format @@ -1902,7 +1990,7 @@ #: ../fdroidserver/nightly.py #, python-brace-format msgid "overwriting existing {path}" -msgstr "" +msgstr "var olan {path} üzerine yazılıyor" #: /usr/lib/python3.5/argparse.py /usr/lib/python3.6/argparse.py msgid "positional arguments" @@ -1910,13 +1998,21 @@ #: ../fdroidserver/signatures.py #, python-brace-format -msgid "refuse downloading via insecure HTTP connection (use HTTPS or specify --no-https-check): {apkfilename}" +msgid "" +"refuse downloading via insecure HTTP connection (use HTTPS or specify --no-" +"https-check): {apkfilename}" msgstr "" +"güvensiz HTTP bağlantısı ile indirmeyi reddet (HTTPS kullanın veya --no-" +"https-check belirtin): {apkfilename}" #: ../fdroidserver/signatures.py #, python-brace-format -msgid "refuse downloading via insecure http connection (use https or specify --no-https-check): {apkfilename}" +msgid "" +"refuse downloading via insecure http connection (use https or specify --no-" +"https-check): {apkfilename}" msgstr "" +"güvensiz http bağlantısı ile indirmeyi reddet (https kullanın veya --no-" +"https-check belirtin): {apkfilename}" #: ../fdroidserver/server.py ../fdroidserver/upload.py #, python-brace-format @@ -1981,7 +2077,7 @@ #: ../fdroidserver/server.py ../fdroidserver/upload.py #, python-brace-format msgid "using Apache libcloud to sync with {url}" -msgstr "" +msgstr "{url} ile eşitleme için Apache libcloud kullanılıyor" #: ../fdroidserver/publish.py #, python-brace-format @@ -2049,24 +2145,24 @@ #: ../fdroidserver/update.py #, python-brace-format msgid "{path} is zero size!" -msgstr "" +msgstr "{path} boyutu sıfır!" #: ../fdroidserver/mirror.py #, python-brace-format msgid "{url} does not end with \"fdroid\", check the URL path!" -msgstr "" +msgstr "{url} \"fdroid\" ile bitmiyor, URL konumunu doğrulayın!" #: ../fdroidserver/build.py msgid "{} build failed" msgid_plural "{} builds failed" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "{} inşa başarısız" +msgstr[1] "{} inşa başarısız" #: ../fdroidserver/build.py msgid "{} build succeeded" msgid_plural "{} builds succeeded" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "{} inşa başarılı" +msgstr[1] "{} inşa başarılı" #, fuzzy #~ msgid "Add PGP signatures for packages in repo using GnuPG" @@ -2079,7 +2175,8 @@ #~ msgstr "Android Build Tools konumu '{path}' yok!" #~ msgid "Clean update - don't uses caches, reprocess all apks" -#~ msgstr "Temiz güncelleme - önbellekleri kullanmaz, tüm APKları yeniden işler" +#~ msgstr "" +#~ "Temiz güncelleme - önbellekleri kullanmaz, tüm APKları yeniden işler" #~ msgid "app-id in the form APPID" #~ msgstr "APPID biçiminde app-id" Binary files /tmp/tmpCoX7hp/hZW9rVCDMC/fdroidserver-1.0.2/locale/uk/LC_MESSAGES/fdroidserver.mo and /tmp/tmpCoX7hp/RzjpYOWXQL/fdroidserver-1.0.6/locale/uk/LC_MESSAGES/fdroidserver.mo differ diff -Nru fdroidserver-1.0.2/locale/uk/LC_MESSAGES/fdroidserver.po fdroidserver-1.0.6/locale/uk/LC_MESSAGES/fdroidserver.po --- fdroidserver-1.0.2/locale/uk/LC_MESSAGES/fdroidserver.po 2018-02-22 12:03:03.000000000 +0000 +++ fdroidserver-1.0.6/locale/uk/LC_MESSAGES/fdroidserver.po 2018-05-15 10:39:10.000000000 +0000 @@ -7,15 +7,17 @@ "Project-Id-Version: fdroidserver 0.9\n" "Report-Msgid-Bugs-To: https://gitlab.com/fdroid/fdroidserver/issues\n" "POT-Creation-Date: 2018-02-13 09:01+0100\n" -"PO-Revision-Date: 2018-02-05 11:40+0000\n" -"Last-Translator: Марс Ямбар \n" -"Language-Team: Ukrainian \n" +"PO-Revision-Date: 2018-03-19 21:50+0000\n" +"Last-Translator: Максим Якимчук \n" +"Language-Team: Ukrainian \n" "Language: uk\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" -"X-Generator: Weblate 2.19-dev\n" +"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" +"X-Generator: Weblate 2.20-dev\n" #: ../fdroidserver/nightly.py msgid "" @@ -79,12 +81,11 @@ msgstr "%d знайдено проблем" #: /usr/lib/python3.5/optparse.py /usr/lib/python3.6/optparse.py -#, fuzzy msgid "%prog [options]" msgstr "%prog [параметри]" #: /usr/lib/python3.5/argparse.py /usr/lib/python3.6/argparse.py -#, fuzzy, python-format +#, python-format msgid "%r is not callable" msgstr "%r не можна викликати" @@ -128,12 +129,15 @@ #: ../fdroidserver/common.py #, python-brace-format msgid "'{aapt}' is too old, fdroid requires build-tools-23.0.0 or newer!" -msgstr "'{aapt}' занадто старий, fdroid вимагає інструментів-створення 23.0.0 або новіший!" +msgstr "" +"'{aapt}' занадто старий, fdroid вимагає інструментів-створення 23.0.0 або " +"новіший!" #: ../fdroidserver/common.py -#, fuzzy, python-brace-format +#, python-brace-format msgid "'{aapt}' is too old, fdroid requires build-tools-{version} or newer!" -msgstr "'{aapt}' занадто старий, fdroid вимагає інструментів-створення 23.0.0 або новіший!" +msgstr "" +"'{aapt}' занадто старий, fdroid вимагає build-tools-{version} або новіший!" #: ../fdroidserver/install.py #, python-brace-format @@ -142,8 +146,12 @@ #: ../fdroidserver/common.py #, fuzzy, python-brace-format -msgid "'{field}' will be in random order! Use () or [] brackets if order is important!" -msgstr "'{field}' буде в довільному порядку! Використовуйте () або [] дужки у разі важливості аргумента!" +msgid "" +"'{field}' will be in random order! Use () or [] brackets if order is " +"important!" +msgstr "" +"'{field}' буде в довільному порядку! Використовуйте () або [] дужки у разі " +"важливості аргумента!" #: ../fdroidserver/common.py #, python-brace-format @@ -167,6 +175,7 @@ #: ../fdroidserver/metadata.py msgid ".fdroid.txt is not supported! Convert to .fdroid.yml or .fdroid.json." msgstr "" +". fdroid.txt не підтримується! Конвертувати в. fdroid.yml або. fdroid.json." #: ../fdroidserver/lint.py msgid "/issues is missing" @@ -206,7 +215,9 @@ msgstr "Псевдонім підписного ключа репозиторія в сховищі ключів" #: ../fdroidserver/import.py -msgid "Allows a different revision (or git branch) to be specified for the initial import" +msgid "" +"Allows a different revision (or git branch) to be specified for the initial " +"import" msgstr "Дозволяє вказати іншу версію (або git гілку) для початкового імпорту" #: ../fdroidserver/mirror.py @@ -263,7 +274,9 @@ msgstr "" #: ../fdroidserver/mirror.py -msgid "Base URL to mirror, can include the index signing key using the query string: ?fingerprint=" +msgid "" +"Base URL to mirror, can include the index signing key using the query " +"string: ?fingerprint=" msgstr "" #. Translators: https://developer.android.com/guide/topics/manifest/manifest-element.html#vname @@ -295,7 +308,9 @@ #: ../fdroidserver/metadata.py #, python-brace-format -msgid "Build should have comma-separated versionName and versionCode, not \"{value}\", in {linedesc}" +msgid "" +"Build should have comma-separated versionName and versionCode, not " +"\"{value}\", in {linedesc}" msgstr "" #: ../fdroidserver/init.py @@ -354,7 +369,9 @@ #: ../fdroidserver/update.py #, python-brace-format -msgid "Checking archiving for {appid} - apks:{integer}, keepversions:{keep}, archapks:{arch}" +msgid "" +"Checking archiving for {appid} - apks:{integer}, keepversions:{keep}, " +"archapks:{arch}" msgstr "" #: ../fdroidserver/dscanner.py @@ -399,7 +416,7 @@ #: ../fdroidserver/update.py msgid "Could not open apk file for analysis" -msgstr "" +msgstr "Не вдалося відкрити файл apk для аналізу" #. Translators: https://developer.android.com/guide/topics/manifest/manifest-element.html#vcode #: ../fdroidserver/import.py @@ -488,7 +505,8 @@ #: ../fdroidserver/lint.py #, python-format msgid "Description has a list (%s) but it isn't bulleted (*) nor numbered (#)" -msgstr "Опис містить список (%s) але не маркірований (*) і не пронумерований (#)" +msgstr "" +"Опис містить список (%s) але не маркірований (*) і не пронумерований (#)" #: ../fdroidserver/lint.py #, python-brace-format @@ -513,8 +531,12 @@ msgstr "Не робіть нічого пов'язаного з журналами" #: ../fdroidserver/build.py -msgid "Don't refresh the repository, useful when testing a build with no internet connection" -msgstr "Не оновлюйте сховище, корисне під час тестування створення без підключення до Інтернету" +msgid "" +"Don't refresh the repository, useful when testing a build with no internet " +"connection" +msgstr "" +"Не оновлюйте сховище, корисне під час тестування створення без підключення " +"до Інтернету" #: ../fdroidserver/server.py ../fdroidserver/nightly.py #: ../fdroidserver/upload.py @@ -531,7 +553,8 @@ #: ../fdroidserver/common.py msgid "Downloading the repository already failed once, not trying again." -msgstr "Завантаження репозиторія вже не відбулося один раз, не намагайтеся знову." +msgstr "" +"Завантаження репозиторія вже не відбулося один раз, не намагайтеся знову." #: ../fdroidserver/verify.py #, python-brace-format @@ -540,7 +563,8 @@ #: ../fdroidserver/metadata.py #, python-brace-format -msgid "Duplicate build recipe found for versionCode {versionCode} in {linedesc}" +msgid "" +"Duplicate build recipe found for versionCode {versionCode} in {linedesc}" msgstr "" #: ../fdroidserver/lint.py @@ -670,8 +694,12 @@ msgstr "" #: ../fdroidserver/build.py -msgid "Force build of disabled apps, and carries on regardless of scan problems. Only allowed in test mode." -msgstr "Примусити створювати інвалідні додатки, і здійснювати розміщення незалежно від проблем сканування. Лише дозволено в тестовому режимі." +msgid "" +"Force build of disabled apps, and carries on regardless of scan problems. " +"Only allowed in test mode." +msgstr "" +"Примусити створювати інвалідні додатки, і здійснювати розміщення незалежно " +"від проблем сканування. Лише дозволено в тестовому режимі." #: ../fdroidserver/build.py #, python-brace-format @@ -828,7 +856,8 @@ #: ../fdroidserver/lint.py #, python-format -msgid "Invalid license tag \"%s\"! Use only tags from https://spdx.org/license-list" +msgid "" +"Invalid license tag \"%s\"! Use only tags from https://spdx.org/license-list" msgstr "" #: ../fdroidserver/lint.py @@ -875,7 +904,8 @@ msgstr "" #: ../fdroidserver/signindex.py -msgid "Java jarsigner not found! Install in standard location or set java_paths!" +msgid "" +"Java jarsigner not found! Install in standard location or set java_paths!" msgstr "" #: ../fdroidserver/lint.py @@ -889,7 +919,9 @@ #: ../fdroidserver/lint.py #, python-brace-format -msgid "Last used commit '{commit}' looks like a tag, but Update Check Mode is '{ucm}'" +msgid "" +"Last used commit '{commit}' looks like a tag, but Update Check Mode is " +"'{ucm}'" msgstr "" #: ../fdroidserver/lint.py @@ -1176,7 +1208,9 @@ #. https://developer.android.com/guide/topics/manifest/manifest-element.html#vname #: ../fdroidserver/common.py #, python-brace-format -msgid "Reading packageName/versionCode/versionName failed, APK invalid: '{apkfilename}'" +msgid "" +"Reading packageName/versionCode/versionName failed, APK invalid: " +"'{apkfilename}'" msgstr "" #: ../fdroidserver/update.py @@ -1185,8 +1219,12 @@ msgstr "" #: ../fdroidserver/stats.py -msgid "Recalculate aggregate stats - use when changes have been made that would invalidate old cached data." -msgstr "Перерахуйте сукупну статистику - використовуйте, коли були внесені зміни, які призведуть до втрати старих кешованих даних." +msgid "" +"Recalculate aggregate stats - use when changes have been made that would " +"invalidate old cached data." +msgstr "" +"Перерахуйте сукупну статистику - використовуйте, коли були внесені зміни, " +"які призведуть до втрати старих кешованих даних." #: ../fdroidserver/common.py msgid "Removing specified files" @@ -1201,8 +1239,11 @@ msgstr "Звіт про статус створення даних" #: ../fdroidserver/build.py -msgid "Reset and create a brand new build server, even if the existing one appears to be ok." -msgstr "Перезавантажте та створіть новий сервер створення, навіть якщо наявний існує." +msgid "" +"Reset and create a brand new build server, even if the existing one appears " +"to be ok." +msgstr "" +"Перезавантажте та створіть новий сервер створення, навіть якщо наявний існує." #: ../fdroidserver/nightly.py #, python-brace-format @@ -1211,7 +1252,9 @@ #: ../fdroidserver/update.py msgid "Resize all the icons exceeding the max pixel size and exit" -msgstr "Змінити розмір усіх значків, що перевищують максимальний розмір пікселя та вийти" +msgstr "" +"Змінити розмір усіх значків, що перевищують максимальний розмір пікселя та " +"вийти" #: ../fdroidserver/common.py msgid "Restrict output to warnings and errors" @@ -1299,10 +1342,12 @@ #: ../fdroidserver/build.py #, fuzzy msgid "Setup an emulator, install the APK on it and perform a Drozer scan" -msgstr "Налаштуйте емулятор, встановіть apk на нього та виконайте drozer сканування" +msgstr "" +"Налаштуйте емулятор, встановіть apk на нього та виконайте drozer сканування" msgid "Setup an emulator, install the apk on it and perform a drozer scan" -msgstr "Налаштуйте емулятор, встановіть apk на нього та виконайте drozer сканування" +msgstr "" +"Налаштуйте емулятор, встановіть apk на нього та виконайте drozer сканування" #: ../fdroid msgid "Sign and place packages in the repo" @@ -1314,7 +1359,8 @@ #: ../fdroidserver/build.py msgid "Skip scanning the source code for binaries and other problems" -msgstr "Пропустити сканування вихідного коду для двійкових файлів та інших проблем" +msgstr "" +"Пропустити сканування вихідного коду для двійкових файлів та інших проблем" #: ../fdroidserver/update.py #, python-brace-format @@ -1352,16 +1398,22 @@ #: ../fdroidserver/update.py #, fuzzy msgid "Specify editor to use in interactive mode. Default " -msgstr "Вкажіть редактор для використання в інтерактивному режимі. За замовчуванням %s" +msgstr "" +"Вкажіть редактор для використання в інтерактивному режимі. За замовчуванням " +"%s" #, c-format msgid "Specify editor to use in interactive mode. Default %s" -msgstr "Вкажіть редактор для використання в інтерактивному режимі. За замовчуванням %s" +msgstr "" +"Вкажіть редактор для використання в інтерактивному режимі. За замовчуванням " +"%s" #: ../fdroidserver/update.py #, fuzzy, python-brace-format msgid "Specify editor to use in interactive mode. Default is {path}" -msgstr "Вкажіть редактор для використання в інтерактивному режимі. За замовчуванням %s" +msgstr "" +"Вкажіть редактор для використання в інтерактивному режимі. За замовчуванням " +"%s" #: ../fdroidserver/build.py msgid "Specify that we're running on the build server" @@ -1396,8 +1448,12 @@ msgstr "" #: ../fdroidserver/build.py -msgid "Test mode - put output in the tmp directory only, and always build, even if the output already exists." -msgstr "Режим тесту - надсилайте випуск тільки в каталог tmp, і завжди створюйте, навіть якщо випуск вже існує." +msgid "" +"Test mode - put output in the tmp directory only, and always build, even if " +"the output already exists." +msgstr "" +"Режим тесту - надсилайте випуск тільки в каталог tmp, і завжди створюйте, " +"навіть якщо випуск вже існує." #. Translators: https://developer.android.com/guide/topics/manifest/manifest-element.html#vcode #: ../fdroidserver/update.py @@ -1407,7 +1463,9 @@ #: ../fdroidserver/btlog.py msgid "The base URL for the repo to log (default: https://f-droid.org)" -msgstr "Базова URL-адреса для входу в репозиторій (за замовчуванням: https://f-droid.org)" +msgstr "" +"Базова URL-адреса для входу в репозиторій (за замовчуванням: https://f-droid." +"org)" #: ../fdroidserver/mirror.py msgid "The directory to write the mirror to" @@ -1445,7 +1503,9 @@ msgstr "" #: ../fdroidserver/server.py ../fdroidserver/upload.py -msgid "To use awsbucket, awssecretkey and awsaccesskeyid must also be set in config.py!" +msgid "" +"To use awsbucket, awssecretkey and awsaccesskeyid must also be set in config." +"py!" msgstr "" #: ../fdroidserver/lint.py @@ -1602,10 +1662,12 @@ #: ../fdroidserver/update.py #, fuzzy msgid "Use date from APK instead of current time for newly added APKs" -msgstr "Використовуйте дату з apk, замість поточного часу для нових доданих apks" +msgstr "" +"Використовуйте дату з apk, замість поточного часу для нових доданих apks" msgid "Use date from apk instead of current time for newly added apks" -msgstr "Використовуйте дату з apk, замість поточного часу для нових доданих apks" +msgstr "" +"Використовуйте дату з apk, замість поточного часу для нових доданих apks" #: ../fdroidserver/server.py ../fdroidserver/upload.py #, python-brace-format @@ -1613,7 +1675,8 @@ msgstr "" #: ../fdroidserver/common.py -msgid "Using Java's jarsigner, not recommended for verifying APKs! Use apksigner" +msgid "" +"Using Java's jarsigner, not recommended for verifying APKs! Use apksigner" msgstr "" #: ../fdroidserver/init.py @@ -1643,8 +1706,12 @@ msgstr "Попереджати про можливі помилки метаданих" #: ../fdroidserver/update.py -msgid "When configured for signed indexes, create only unsigned indexes at this stage" -msgstr "Коли налаштовано для підписаних індексів, на цьому етапі створюйте лише непідписані індекси" +msgid "" +"When configured for signed indexes, create only unsigned indexes at this " +"stage" +msgstr "" +"Коли налаштовано для підписаних індексів, на цьому етапі створюйте лише " +"непідписані індекси" msgid "X.509 'Distiguished Name' used when generating keys" msgstr "X.509 'Distiguished Name' використовується при створенні ключів" @@ -1842,12 +1909,15 @@ #: /usr/lib/python3.5/argparse.py /usr/lib/python3.6/argparse.py #, python-format -msgid "invalid option string %(option)r: must start with a character %(prefix_chars)r" +msgid "" +"invalid option string %(option)r: must start with a character " +"%(prefix_chars)r" msgstr "" #: ../fdroidserver/server.py #, python-brace-format -msgid "local_copy_dir does not end with \"fdroid\", perhaps you meant: \"{path}\"" +msgid "" +"local_copy_dir does not end with \"fdroid\", perhaps you meant: \"{path}\"" msgstr "" #: ../fdroidserver/server.py @@ -1960,12 +2030,16 @@ #: ../fdroidserver/signatures.py #, python-brace-format -msgid "refuse downloading via insecure HTTP connection (use HTTPS or specify --no-https-check): {apkfilename}" +msgid "" +"refuse downloading via insecure HTTP connection (use HTTPS or specify --no-" +"https-check): {apkfilename}" msgstr "" #: ../fdroidserver/signatures.py #, python-brace-format -msgid "refuse downloading via insecure http connection (use https or specify --no-https-check): {apkfilename}" +msgid "" +"refuse downloading via insecure http connection (use https or specify --no-" +"https-check): {apkfilename}" msgstr "" #: ../fdroidserver/server.py ../fdroidserver/upload.py @@ -2132,7 +2206,8 @@ #~ msgstr "Шлях '{path}' до інструментів створення Android не існує!" #~ msgid "Clean update - don't uses caches, reprocess all apks" -#~ msgstr "Очистити оновлення - не використовує кеш, повторно обробляє всі apks" +#~ msgstr "" +#~ "Очистити оновлення - не використовує кеш, повторно обробляє всі apks" #~ msgid "app-id in the form APPID" #~ msgstr "app-id у формі APPID" Binary files /tmp/tmpCoX7hp/hZW9rVCDMC/fdroidserver-1.0.2/locale/zh_Hant/LC_MESSAGES/fdroidserver.mo and /tmp/tmpCoX7hp/RzjpYOWXQL/fdroidserver-1.0.6/locale/zh_Hant/LC_MESSAGES/fdroidserver.mo differ diff -Nru fdroidserver-1.0.2/locale/zh_Hant/LC_MESSAGES/fdroidserver.po fdroidserver-1.0.6/locale/zh_Hant/LC_MESSAGES/fdroidserver.po --- fdroidserver-1.0.2/locale/zh_Hant/LC_MESSAGES/fdroidserver.po 2018-02-22 19:00:53.000000000 +0000 +++ fdroidserver-1.0.6/locale/zh_Hant/LC_MESSAGES/fdroidserver.po 2018-05-15 10:39:10.000000000 +0000 @@ -3,7 +3,20 @@ # FIRST AUTHOR , YEAR. # msgid "" -msgstr "Project-Id-Version: fdroidserver 0.9\nReport-Msgid-Bugs-To: team@f-droid.org\nPOT-Creation-Date: 2018-02-13 09:01+0100\nPO-Revision-Date: 2018-02-19 16:58+0000\nLast-Translator: ezjerry liao \nLanguage-Team: Chinese (Traditional) \nLanguage: zh_Hant\nMIME-Version: 1.0\nContent-Type: text/plain; charset=UTF-8\nContent-Transfer-Encoding: 8bit\nPlural-Forms: nplurals=1; plural=0;\nX-Generator: Weblate 2.19\n" +msgstr "" +"Project-Id-Version: fdroidserver 0.9\n" +"Report-Msgid-Bugs-To: https://gitlab.com/fdroid/fdroidserver/issues\n" +"POT-Creation-Date: 2018-02-13 09:01+0100\n" +"PO-Revision-Date: 2018-03-04 00:22+0000\n" +"Last-Translator: Jeff Huang \n" +"Language-Team: Chinese (Traditional) \n" +"Language: zh_Hant\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: Weblate 2.20-dev\n" #: ../fdroidserver/nightly.py msgid "" @@ -131,7 +144,9 @@ #: ../fdroidserver/common.py #, python-brace-format -msgid "'{field}' will be in random order! Use () or [] brackets if order is important!" +msgid "" +"'{field}' will be in random order! Use () or [] brackets if order is " +"important!" msgstr "'{field}' 將會隨機排列!如果次序重很重要,請使用 () 或 []符號!" #: ../fdroidserver/common.py @@ -191,7 +206,9 @@ msgstr "在金鑰庫裡軟體庫簽署金鑰的別名" #: ../fdroidserver/import.py -msgid "Allows a different revision (or git branch) to be specified for the initial import" +msgid "" +"Allows a different revision (or git branch) to be specified for the initial " +"import" msgstr "允許為初始匯入指定不同的校訂(或 git 分支)" #: ../fdroidserver/mirror.py @@ -248,7 +265,9 @@ msgstr "以無效的簽名歸檔 {apkfilename}!" #: ../fdroidserver/mirror.py -msgid "Base URL to mirror, can include the index signing key using the query string: ?fingerprint=" +msgid "" +"Base URL to mirror, can include the index signing key using the query " +"string: ?fingerprint=" msgstr "基本的 URL 到鏡像,可以包含索引簽署金鑰使用查詢字串:?fingerprint=" #. Translators: https://developer.android.com/guide/topics/manifest/manifest-element.html#vname @@ -280,8 +299,11 @@ #: ../fdroidserver/metadata.py #, python-brace-format -msgid "Build should have comma-separated versionName and versionCode, not \"{value}\", in {linedesc}" -msgstr "在 {linedesc} 版本編譯的版本名稱和版本代號應以逗號分隔,而不是 \"{value}\"" +msgid "" +"Build should have comma-separated versionName and versionCode, not " +"\"{value}\", in {linedesc}" +msgstr "" +"在 {linedesc} 版本編譯的版本名稱和版本代號應以逗號分隔,而不是 \"{value}\"" #: ../fdroidserver/init.py #, python-format @@ -337,8 +359,11 @@ #: ../fdroidserver/update.py #, python-brace-format -msgid "Checking archiving for {appid} - apks:{integer}, keepversions:{keep}, archapks:{arch}" -msgstr "檢查 {appid} 的歸檔 - apks:{integer},keepversions:{keep},archapks:{arch}" +msgid "" +"Checking archiving for {appid} - apks:{integer}, keepversions:{keep}, " +"archapks:{arch}" +msgstr "" +"檢查 {appid} 的歸檔 - apks:{integer},keepversions:{keep},archapks:{arch}" #: ../fdroidserver/dscanner.py msgid "Clean after all scans have finished" @@ -495,7 +520,9 @@ msgstr "不要做任何與日誌有關的事情" #: ../fdroidserver/build.py -msgid "Don't refresh the repository, useful when testing a build with no internet connection" +msgid "" +"Don't refresh the repository, useful when testing a build with no internet " +"connection" msgstr "不要更新軟體庫,在沒有網路連線時測試構建很有用" #: ../fdroidserver/server.py ../fdroidserver/nightly.py @@ -522,7 +549,8 @@ #: ../fdroidserver/metadata.py #, python-brace-format -msgid "Duplicate build recipe found for versionCode {versionCode} in {linedesc}" +msgid "" +"Duplicate build recipe found for versionCode {versionCode} in {linedesc}" msgstr "在 {linedesc} 找到版本編號 {versionCode} 重複的編譯處方" #: ../fdroidserver/lint.py @@ -538,7 +566,9 @@ msgid "" "ERROR: this command should never be used to mirror f-droid.org!\n" "A full mirror of f-droid.org requires more than 200GB." -msgstr "錯誤:此命令絕不該用於鏡像 f-droid.org!\n完整的 f-droid.org 鏡像需要超過 200GB。" +msgstr "" +"錯誤:此命令絕不該用於鏡像 f-droid.org!\n" +"完整的 f-droid.org 鏡像需要超過 200GB。" #: ../fdroidserver/nightly.py msgid "ERROR: unsupported CI type, patches welcome!" @@ -649,7 +679,9 @@ msgstr "禁用 HTML 標籤" #: ../fdroidserver/build.py -msgid "Force build of disabled apps, and carries on regardless of scan problems. Only allowed in test mode." +msgid "" +"Force build of disabled apps, and carries on regardless of scan problems. " +"Only allowed in test mode." msgstr "強制停用應用程式的構建,並且忽視掃描問題而繼續。只允許在測試模式下。" #: ../fdroidserver/build.py @@ -805,7 +837,8 @@ #: ../fdroidserver/lint.py #, python-format -msgid "Invalid license tag \"%s\"! Use only tags from https://spdx.org/license-list" +msgid "" +"Invalid license tag \"%s\"! Use only tags from https://spdx.org/license-list" msgstr "無效的執照標籤 \"%s\"!請使用 https://spdx.org/license-list 標籤" #: ../fdroidserver/lint.py @@ -852,7 +885,8 @@ msgstr "找不到 Java JDK!請安裝在標準的位置或是設定 java_paths!" #: ../fdroidserver/signindex.py -msgid "Java jarsigner not found! Install in standard location or set java_paths!" +msgid "" +"Java jarsigner not found! Install in standard location or set java_paths!" msgstr "找不到 Java jarsigner!請安裝在標準的位置或是設定 java_paths!" #: ../fdroidserver/lint.py @@ -865,7 +899,9 @@ #: ../fdroidserver/lint.py #, python-brace-format -msgid "Last used commit '{commit}' looks like a tag, but Update Check Mode is '{ucm}'" +msgid "" +"Last used commit '{commit}' looks like a tag, but Update Check Mode is " +"'{ucm}'" msgstr "最近採用的提交 '{commit}' 似乎是一個標籤,但更新的檢查模式為 '{ucm}'" #: ../fdroidserver/lint.py @@ -1147,7 +1183,9 @@ #. https://developer.android.com/guide/topics/manifest/manifest-element.html#vname #: ../fdroidserver/common.py #, python-brace-format -msgid "Reading packageName/versionCode/versionName failed, APK invalid: '{apkfilename}'" +msgid "" +"Reading packageName/versionCode/versionName failed, APK invalid: " +"'{apkfilename}'" msgstr "讀取套件名稱/版本代碼/版本名稱 失敗,APK 無效:'{apkfilename}'" #: ../fdroidserver/update.py @@ -1156,7 +1194,9 @@ msgstr "從緩存讀取 {apkfilename}" #: ../fdroidserver/stats.py -msgid "Recalculate aggregate stats - use when changes have been made that would invalidate old cached data." +msgid "" +"Recalculate aggregate stats - use when changes have been made that would " +"invalidate old cached data." msgstr "重新計算集合統計 - 使用時進行更改,這會使得舊的快取資料無效。" #: ../fdroidserver/common.py @@ -1172,7 +1212,9 @@ msgstr "報告構建資料的狀態" #: ../fdroidserver/build.py -msgid "Reset and create a brand new build server, even if the existing one appears to be ok." +msgid "" +"Reset and create a brand new build server, even if the existing one appears " +"to be ok." msgstr "即使現有的伺服器明顯是好的,仍重置並建立一個新的構建伺服器。" #: ../fdroidserver/nightly.py @@ -1362,7 +1404,9 @@ msgstr "在 {path} 中的系統時鐘比日期早!" #: ../fdroidserver/build.py -msgid "Test mode - put output in the tmp directory only, and always build, even if the output already exists." +msgid "" +"Test mode - put output in the tmp directory only, and always build, even if " +"the output already exists." msgstr "測試模式 - 將輸出只放在 tmp 目錄中,即使輸出已經存在,仍然構建。" #. Translators: https://developer.android.com/guide/topics/manifest/manifest-element.html#vcode @@ -1377,7 +1421,7 @@ #: ../fdroidserver/mirror.py msgid "The directory to write the mirror to" -msgstr "" +msgstr "寫入目錄的鏡像到" #: ../fdroidserver/server.py msgid "The only commands currently supported are 'init' and 'update'" @@ -1410,8 +1454,11 @@ msgstr "這個軟體庫已有本地的中介資料:%s" #: ../fdroidserver/server.py ../fdroidserver/upload.py -msgid "To use awsbucket, awssecretkey and awsaccesskeyid must also be set in config.py!" -msgstr "要使用 awsbucket, awssecretkey 與 awsaccesskeyid 必須在 config.py 進行設定!" +msgid "" +"To use awsbucket, awssecretkey and awsaccesskeyid must also be set in config." +"py!" +msgstr "" +"要使用 awsbucket, awssecretkey 與 awsaccesskeyid 必須在 config.py 進行設定!" #: ../fdroidserver/lint.py msgid "UCM is set but it looks like checkupdates hasn't been run yet" @@ -1577,8 +1624,9 @@ msgstr "使用 \"{path}\" 對 s3cmd 組態。" #: ../fdroidserver/common.py -msgid "Using Java's jarsigner, not recommended for verifying APKs! Use apksigner" -msgstr "" +msgid "" +"Using Java's jarsigner, not recommended for verifying APKs! Use apksigner" +msgstr "使用 Java 的 jarsigner,這並不建議用於驗證 APK!使用 apksigner" #: ../fdroidserver/init.py #, python-brace-format @@ -1607,7 +1655,9 @@ msgstr "關於中介資料可能錯誤的警告" #: ../fdroidserver/update.py -msgid "When configured for signed indexes, create only unsigned indexes at this stage" +msgid "" +"When configured for signed indexes, create only unsigned indexes at this " +"stage" msgstr "當已組態為簽名的索引時,只能在此階段建立無簽名的索引" msgid "X.509 'Distiguished Name' used when generating keys" @@ -1794,12 +1844,15 @@ #: /usr/lib/python3.5/argparse.py /usr/lib/python3.6/argparse.py #, python-format -msgid "invalid option string %(option)r: must start with a character %(prefix_chars)r" +msgid "" +"invalid option string %(option)r: must start with a character " +"%(prefix_chars)r" msgstr "無效的選項字串 %(option)r:必須以字符 %(prefix_chars)r為起頭" #: ../fdroidserver/server.py #, python-brace-format -msgid "local_copy_dir does not end with \"fdroid\", perhaps you meant: \"{path}\"" +msgid "" +"local_copy_dir does not end with \"fdroid\", perhaps you meant: \"{path}\"" msgstr "local_copy_dir 未以 \"fdroid\"結尾,也許你指示的是: \"{path}\"" #: ../fdroidserver/server.py @@ -1911,13 +1964,21 @@ #: ../fdroidserver/signatures.py #, python-brace-format -msgid "refuse downloading via insecure HTTP connection (use HTTPS or specify --no-https-check): {apkfilename}" -msgstr "拒絕透過不安全的 HTTP 連線下載 (使用 HTTPS 或指明 --no-https-check): {apkfilename}" +msgid "" +"refuse downloading via insecure HTTP connection (use HTTPS or specify --no-" +"https-check): {apkfilename}" +msgstr "" +"拒絕透過不安全的 HTTP 連線下載 (使用 HTTPS 或指明 --no-https-check): " +"{apkfilename}" #: ../fdroidserver/signatures.py #, python-brace-format -msgid "refuse downloading via insecure http connection (use https or specify --no-https-check): {apkfilename}" -msgstr "拒絕透過不安全 http 連線下載 (使用 https 或指明 --no-https-check): {apkfilename}" +msgid "" +"refuse downloading via insecure http connection (use https or specify --no-" +"https-check): {apkfilename}" +msgstr "" +"拒絕透過不安全 http 連線下載 (使用 https 或指明 --no-https-check): " +"{apkfilename}" #: ../fdroidserver/server.py ../fdroidserver/upload.py #, python-brace-format @@ -1998,7 +2059,7 @@ #: ../fdroidserver/update.py #, python-brace-format msgid "{apkfilename} has multiple {name} files, looks like Master Key exploit!" -msgstr "" +msgstr "{apkfilename} 有多個 {name} 檔案,看起來可能是主金鑰洩漏了!" #: ../fdroidserver/update.py #, python-brace-format @@ -2024,7 +2085,7 @@ #: ../fdroidserver/scanner.py #, python-brace-format msgid "{appid}: no builds specified, running on current source state" -msgstr "" +msgstr "{appid}:沒有指定構建,在目前的原始碼狀態執行" #: ../fdroidserver/metadata.py #, python-brace-format @@ -2044,7 +2105,7 @@ #: ../fdroidserver/update.py #, python-brace-format msgid "{path} has bad file signature \"{pattern}\", possible Janus exploit!" -msgstr "" +msgstr "{path} 有不正確的檔案簽章「{pattern}」,可能是 Janus 漏洞!" #: ../fdroidserver/update.py #, python-brace-format diff -Nru fdroidserver-1.0.2/makebuildserver fdroidserver-1.0.6/makebuildserver --- fdroidserver-1.0.2/makebuildserver 2018-02-22 12:03:03.000000000 +0000 +++ fdroidserver-1.0.6/makebuildserver 2018-05-25 10:32:24.000000000 +0000 @@ -74,7 +74,7 @@ if os.path.isfile('/usr/bin/systemd-detect-virt'): try: virt = subprocess.check_output('/usr/bin/systemd-detect-virt').strip().decode('utf-8') - except subprocess.CalledProcessError as e: + except subprocess.CalledProcessError: virt = 'none' if virt == 'qemu' or virt == 'kvm' or virt == 'bochs': logger.info('Running in a VM guest, defaulting to QEMU/KVM via libvirt') @@ -183,6 +183,8 @@ # For reference the older one from Nov 8 has a sha256sum of cbba6f8fcf025e1b533326746763aa1d6e2cf4001b1b441602bb44d253bc49ac ('https://verification.f-droid.org/build-metadata/96ddff1a5034fcc4340f2d482635eeaccaa6707b6b0f82d26d1435476a2f52e5/platform-27_r01.zip', '96ddff1a5034fcc4340f2d482635eeaccaa6707b6b0f82d26d1435476a2f52e5'), + ('https://dl.google.com/android/repository/platform-27_r03.zip', + '020c4c090bc82ce87ebaae5d1a922e21b39a1d03c78ffa43f0c3e42fc7d28169'), ('https://dl.google.com/android/repository/build-tools_r17-linux.zip', '4c8444972343a19045236f6924bd7f12046287c70dace96ab88b2159c8ec0e74'), ('https://dl.google.com/android/repository/build-tools_r18.0.1-linux.zip', @@ -351,6 +353,10 @@ '03f2a43a314ff0fb843a85ef68078e06d181c4549c1e5fb983f289382b59b5e3'), ('https://downloads.gradle.org/distributions/gradle-4.5.1-bin.zip', '3e2ea0d8b96605b7c528768f646e0975bd9822f06df1f04a64fd279b1a17805e'), + ('https://downloads.gradle.org/distributions/gradle-4.6-bin.zip', + '98bd5fd2b30e070517e03c51cbb32beee3e2ee1a84003a5a5d748996d4b1b915'), + ('https://downloads.gradle.org/distributions/gradle-4.7-bin.zip', + 'fca5087dc8b50c64655c000989635664a73b11b9bd3703c7d6cabd31b7dcdb04'), ('https://dl.google.com/android/ndk/android-ndk-r10e-linux-x86_64.bin', '102d6723f67ff1384330d12c45854315d6452d6510286f4e5891e00a5a8f1d5a'), ('https://dl.google.com/android/repository/android-ndk-r11c-linux-x86_64.zip', @@ -365,6 +371,8 @@ 'f01788946733bf6294a36727b99366a18369904eb068a599dde8cca2c1d2ba3c'), ('https://dl.google.com/android/repository/android-ndk-r16b-linux-x86_64.zip', 'bcdea4f5353773b2ffa85b5a9a2ae35544ce88ec5b507301d8cf6a76b765d901'), + ('https://dl.google.com/android/repository/android-ndk-r17-linux-x86_64.zip', + 'ba3d813b47de75bc32a2f3de087f72599c6cb36fdc9686b96f517f5492ff43ca'), ] diff -Nru fdroidserver-1.0.2/MANIFEST.in fdroidserver-1.0.6/MANIFEST.in --- fdroidserver-1.0.2/MANIFEST.in 2018-02-22 12:03:03.000000000 +0000 +++ fdroidserver-1.0.6/MANIFEST.in 2018-05-25 15:26:27.000000000 +0000 @@ -149,7 +149,7 @@ include tests/repo/org.videolan.vlc/en-US/sevenInchScreenshots/screenshot6.png include tests/repo/org.videolan.vlc/en-US/sevenInchScreenshots/screenshot8.png include tests/repo/patch.1619.obb.mainpatch.current.obb -include tests/repo/urzip-Rakhmaninov*.apk +include tests/repo/urzip-*.apk include tests/run-tests include tests/signatures.TestCase include tests/signindex/guardianproject.jar diff -Nru fdroidserver-1.0.2/PKG-INFO fdroidserver-1.0.6/PKG-INFO --- fdroidserver-1.0.2/PKG-INFO 2018-02-22 20:24:43.000000000 +0000 +++ fdroidserver-1.0.6/PKG-INFO 2018-05-25 15:43:27.000000000 +0000 @@ -1,147 +1,12 @@ Metadata-Version: 1.1 Name: fdroidserver -Version: 1.0.2 +Version: 1.0.6 Summary: F-Droid Server Tools Home-page: https://f-droid.org Author: The F-Droid Project Author-email: team@f-droid.org License: AGPL-3.0 -Description: +----------------------+-------------+------------+-----------------+----------------+ - | CI Builds | fdroidserve | buildserve | fdroid build | publishing | - | | r | r | --all | tools | - +======================+=============+============+=================+================+ - | Debian | |fdroidserv | |buildserv | |fdroid build | |fdroid test | - | | er | er | all status| | status| | - | | status on | status| | | | - | | Debian| | | | | - +----------------------+-------------+------------+-----------------+----------------+ - | macOS & Ubuntu/LTS | |fdroidserv | | | | - | | er | | | | - | | status on | | | | - | | macOS & | | | | - | | Ubuntu/LTS| | | | | - +----------------------+-------------+------------+-----------------+----------------+ - - F-Droid Server - ============== - - Server for `F-Droid `__, the Free Software - repository system for Android. - - The F-Droid server tools provide various scripts and tools that are used - to maintain the main `F-Droid application - repository `__. You can use these same - tools to create your own additional or alternative repository for - publishing, or to assist in creating, testing and submitting metadata to - the main repository. - - For documentation, please see https://f-droid.org/docs/, or you can find - the source for the documentation in - `fdroid/fdroid-website `__. - - What is F-Droid? - ~~~~~~~~~~~~~~~~ - - F-Droid is an installable catalogue of FOSS (Free and Open Source - Software) applications for the Android platform. The client makes it - easy to browse, install, and keep track of updates on your device. - - Installing - ~~~~~~~~~~ - - There are many was to install *fdroidserver*, they are documented on the - website: - https://f-droid.org/docs/Installing\_the\_Server\_and\_Repo\_Tools - - All sorts of other documentation lives there as well. - - Tests - ~~~~~ - - There are many components to all of the tests for the components in this - git repo. The most commonly used parts of well tested, while some parts - still lack tests. This test suite has built over time a bit haphazardly, - so it is not as clean, organized, or complete as it could be. We welcome - contributions. Before rearchitecting any parts of it, be sure to - `contact us `__ to discuss the changes - beforehand. - - ``fdroid`` commands - ^^^^^^^^^^^^^^^^^^^ - - The test suite for all of the ``fdroid`` commands is in the *tests/* - subdir. *.gitlab-ci.yml* and *.travis.yml* run this test suite on - various configurations. - - - *tests/complete-ci-tests* runs *pylint* and all tests on two - different pyvenvs - - *tests/run-tests* runs the whole test suite - - \_tests/\*.TestCase\_ are individual unit tests for all of the - ``fdroid`` commands, which can be run separately, e.g. - ``./update.TestCase``. - - Additional tests for different linux distributions - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - - These tests are also run on various distributions through GitLab CI. - This is only enabled for ``master@fdroid/fdroidserver`` because it'll - take longer to complete than the regular CI tests. Most of the time you - won't need to worry about them but sometimes it might make sense to also - run them for your merge request. In that case you need to remove `these - lines from - .gitlab-ci.yml `__ - and push this to a new branch of your fork. - - Alternatively `run them - locally `__ - like this: ``gitlab-runner exec docker ubuntu_lts`` - - buildserver - ^^^^^^^^^^^ - - The tests for the whole build server setup are entirely separate because - they require at least 200GB of disk space, and 8GB of RAM. These test - scripts are in the root of the project, all starting with *jenkins-* - since they are run on https://jenkins.debian.net. - - Drozer Scanner - ~~~~~~~~~~~~~~ - - There is a new feature under development that can scan any APK in a - repo, or any build, using Drozer. Drozer is a dynamic exploit scanner, - it runs an app in the emulator and runs known exploits on it. - - This setup requires specific versions of two Python modules: *docker-py* - 1.9.0 and *requests* older than 2.11. Other versions might cause the - docker-py connection to break with the containers. Newer versions of - docker-py might have this fixed already. - - For Debian based distributions: - - :: - - apt-get install libffi-dev libssl-dev python-docker - - Translation - ----------- - - Everything can be translated. See `Translation and - Localization `__ - for more info. |translation status| - - .. |fdroidserver status on Debian| image:: https://gitlab.com/fdroid/fdroidserver/badges/master/build.svg - :target: https://gitlab.com/fdroid/fdroidserver/builds - .. |buildserver status| image:: https://jenkins.debian.net/job/reproducible_setup_fdroid_build_environment/badge/icon - :target: https://jenkins.debian.net/job/reproducible_setup_fdroid_build_environment - .. |fdroid build all status| image:: https://jenkins.debian.net/job/reproducible_fdroid_build_apps/badge/icon - :target: https://jenkins.debian.net/job/reproducible_fdroid_build_apps/ - .. |fdroid test status| image:: https://jenkins.debian.net/job/reproducible_fdroid_test/badge/icon - :target: https://jenkins.debian.net/job/reproducible_fdroid_test/ - .. |fdroidserver status on macOS & Ubuntu/LTS| image:: https://travis-ci.org/f-droid/fdroidserver.svg?branch=master - :target: https://travis-ci.org/f-droid/fdroidserver - .. |translation status| image:: https://hosted.weblate.org/widgets/f-droid/-/fdroidserver/multi-auto.svg - :target: https://hosted.weblate.org/engage/f-droid/?utm_source=widget - +Description: README.md Platform: UNKNOWN Classifier: Development Status :: 4 - Beta Classifier: Intended Audience :: Developers diff -Nru fdroidserver-1.0.2/README.md fdroidserver-1.0.6/README.md --- fdroidserver-1.0.2/README.md 2018-02-22 12:03:03.000000000 +0000 +++ fdroidserver-1.0.6/README.md 2018-04-09 08:24:04.000000000 +0000 @@ -1,4 +1,3 @@ - | CI Builds | fdroidserver | buildserver | fdroid build --all | publishing tools | @@ -33,7 +32,7 @@ ### Installing -There are many was to install _fdroidserver_, they are documented on +There are many ways to install _fdroidserver_, they are documented on the website: https://f-droid.org/docs/Installing_the_Server_and_Repo_Tools diff -Nru fdroidserver-1.0.2/README.rst fdroidserver-1.0.6/README.rst --- fdroidserver-1.0.2/README.rst 2018-02-22 20:24:37.000000000 +0000 +++ fdroidserver-1.0.6/README.rst 1970-01-01 00:00:00.000000000 +0000 @@ -1,135 +0,0 @@ -+----------------------+-------------+------------+-----------------+----------------+ -| CI Builds | fdroidserve | buildserve | fdroid build | publishing | -| | r | r | --all | tools | -+======================+=============+============+=================+================+ -| Debian | |fdroidserv | |buildserv | |fdroid build | |fdroid test | -| | er | er | all status| | status| | -| | status on | status| | | | -| | Debian| | | | | -+----------------------+-------------+------------+-----------------+----------------+ -| macOS & Ubuntu/LTS | |fdroidserv | | | | -| | er | | | | -| | status on | | | | -| | macOS & | | | | -| | Ubuntu/LTS| | | | | -+----------------------+-------------+------------+-----------------+----------------+ - -F-Droid Server -============== - -Server for `F-Droid `__, the Free Software -repository system for Android. - -The F-Droid server tools provide various scripts and tools that are used -to maintain the main `F-Droid application -repository `__. You can use these same -tools to create your own additional or alternative repository for -publishing, or to assist in creating, testing and submitting metadata to -the main repository. - -For documentation, please see https://f-droid.org/docs/, or you can find -the source for the documentation in -`fdroid/fdroid-website `__. - -What is F-Droid? -~~~~~~~~~~~~~~~~ - -F-Droid is an installable catalogue of FOSS (Free and Open Source -Software) applications for the Android platform. The client makes it -easy to browse, install, and keep track of updates on your device. - -Installing -~~~~~~~~~~ - -There are many was to install *fdroidserver*, they are documented on the -website: -https://f-droid.org/docs/Installing\_the\_Server\_and\_Repo\_Tools - -All sorts of other documentation lives there as well. - -Tests -~~~~~ - -There are many components to all of the tests for the components in this -git repo. The most commonly used parts of well tested, while some parts -still lack tests. This test suite has built over time a bit haphazardly, -so it is not as clean, organized, or complete as it could be. We welcome -contributions. Before rearchitecting any parts of it, be sure to -`contact us `__ to discuss the changes -beforehand. - -``fdroid`` commands -^^^^^^^^^^^^^^^^^^^ - -The test suite for all of the ``fdroid`` commands is in the *tests/* -subdir. *.gitlab-ci.yml* and *.travis.yml* run this test suite on -various configurations. - -- *tests/complete-ci-tests* runs *pylint* and all tests on two - different pyvenvs -- *tests/run-tests* runs the whole test suite -- \_tests/\*.TestCase\_ are individual unit tests for all of the - ``fdroid`` commands, which can be run separately, e.g. - ``./update.TestCase``. - -Additional tests for different linux distributions -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -These tests are also run on various distributions through GitLab CI. -This is only enabled for ``master@fdroid/fdroidserver`` because it'll -take longer to complete than the regular CI tests. Most of the time you -won't need to worry about them but sometimes it might make sense to also -run them for your merge request. In that case you need to remove `these -lines from -.gitlab-ci.yml `__ -and push this to a new branch of your fork. - -Alternatively `run them -locally `__ -like this: ``gitlab-runner exec docker ubuntu_lts`` - -buildserver -^^^^^^^^^^^ - -The tests for the whole build server setup are entirely separate because -they require at least 200GB of disk space, and 8GB of RAM. These test -scripts are in the root of the project, all starting with *jenkins-* -since they are run on https://jenkins.debian.net. - -Drozer Scanner -~~~~~~~~~~~~~~ - -There is a new feature under development that can scan any APK in a -repo, or any build, using Drozer. Drozer is a dynamic exploit scanner, -it runs an app in the emulator and runs known exploits on it. - -This setup requires specific versions of two Python modules: *docker-py* -1.9.0 and *requests* older than 2.11. Other versions might cause the -docker-py connection to break with the containers. Newer versions of -docker-py might have this fixed already. - -For Debian based distributions: - -:: - - apt-get install libffi-dev libssl-dev python-docker - -Translation ------------ - -Everything can be translated. See `Translation and -Localization `__ -for more info. |translation status| - -.. |fdroidserver status on Debian| image:: https://gitlab.com/fdroid/fdroidserver/badges/master/build.svg - :target: https://gitlab.com/fdroid/fdroidserver/builds -.. |buildserver status| image:: https://jenkins.debian.net/job/reproducible_setup_fdroid_build_environment/badge/icon - :target: https://jenkins.debian.net/job/reproducible_setup_fdroid_build_environment -.. |fdroid build all status| image:: https://jenkins.debian.net/job/reproducible_fdroid_build_apps/badge/icon - :target: https://jenkins.debian.net/job/reproducible_fdroid_build_apps/ -.. |fdroid test status| image:: https://jenkins.debian.net/job/reproducible_fdroid_test/badge/icon - :target: https://jenkins.debian.net/job/reproducible_fdroid_test/ -.. |fdroidserver status on macOS & Ubuntu/LTS| image:: https://travis-ci.org/f-droid/fdroidserver.svg?branch=master - :target: https://travis-ci.org/f-droid/fdroidserver -.. |translation status| image:: https://hosted.weblate.org/widgets/f-droid/-/fdroidserver/multi-auto.svg - :target: https://hosted.weblate.org/engage/f-droid/?utm_source=widget diff -Nru fdroidserver-1.0.2/setup.cfg fdroidserver-1.0.6/setup.cfg --- fdroidserver-1.0.2/setup.cfg 2018-02-22 20:24:43.000000000 +0000 +++ fdroidserver-1.0.6/setup.cfg 2018-05-25 15:43:27.000000000 +0000 @@ -23,7 +23,7 @@ directory = locale [egg_info] +tag_build = tag_svn_revision = 0 tag_date = 0 -tag_build = diff -Nru fdroidserver-1.0.2/setup.py fdroidserver-1.0.6/setup.py --- fdroidserver-1.0.2/setup.py 2018-02-22 20:21:54.000000000 +0000 +++ fdroidserver-1.0.6/setup.py 2018-05-25 15:28:36.000000000 +0000 @@ -4,7 +4,7 @@ from setuptools import setup import os import re -import shutil +import subprocess import sys @@ -49,26 +49,11 @@ return data_files -# PyPI accepts reST not Markdown -if os.path.exists('README.md'): - if shutil.which('pandoc'): - print('Using reST README') - import subprocess - subprocess.check_call(['pandoc', '--from=markdown', '--to=rst', 'README.md', - '--output=README.rst'], universal_newlines=True) - with open('README.rst') as fp: - readme = fp.read() - else: - print('Using Markdown README') - with open('README.md') as fp: - readme = fp.read() -else: - readme = '' - setup(name='fdroidserver', - version='1.0.2', + version='1.0.6', description='F-Droid Server Tools', - long_description=readme, + long_description='README.md', + long_description_content_type='text/markdown', author='The F-Droid Project', author_email='team@f-droid.org', url='https://f-droid.org', @@ -82,14 +67,15 @@ 'babel', ], install_requires=[ + 'androguard >= 3.1.0rc2', 'clint', 'GitPython', 'mwclient', 'paramiko', 'Pillow', 'apache-libcloud >= 0.14.1', - 'pyasn1', - 'pyasn1-modules', + 'pyasn1 <0.5.0, >=0.4.1', + 'pyasn1-modules == 0.2.1', 'python-vagrant', 'PyYAML', 'qrcode', diff -Nru fdroidserver-1.0.2/tests/common.TestCase fdroidserver-1.0.6/tests/common.TestCase --- fdroidserver-1.0.2/tests/common.TestCase 2018-02-22 14:08:55.000000000 +0000 +++ fdroidserver-1.0.6/tests/common.TestCase 2018-05-25 15:26:27.000000000 +0000 @@ -533,7 +533,7 @@ self.assertTrue(fdroidserver.common.verify_apk_signature(signed)) self.assertEqual(18, fdroidserver.common.get_minSdkVersion_aapt(signed)) - def test_get_api_id_aapt(self): + def test_get_api_id(self): config = dict() fdroidserver.common.fill_config_defaults(config) @@ -543,8 +543,6 @@ testcases = [ ('repo/obb.main.twoversions_1101613.apk', 'obb.main.twoversions', '1101613', '0.1'), - ('OBBMainPatchCurrent.apk', 'obb.mainpatch.current', '1619', '0.1'), - ('OBBMainTwoVersions.apk', 'obb.main.twoversions', '1101613', '0.1'), ('org.bitbucket.tickytacky.mirrormirror_1.apk', 'org.bitbucket.tickytacky.mirrormirror', '1', '1.0'), ('org.bitbucket.tickytacky.mirrormirror_2.apk', 'org.bitbucket.tickytacky.mirrormirror', '2', '1.0.1'), ('org.bitbucket.tickytacky.mirrormirror_3.apk', 'org.bitbucket.tickytacky.mirrormirror', '3', '1.0.2'), @@ -555,12 +553,11 @@ ('urzip-badsig.apk', 'info.guardianproject.urzip', '100', '0.1'), ('urzip-release.apk', 'info.guardianproject.urzip', '100', '0.1'), ('urzip-release-unsigned.apk', 'info.guardianproject.urzip', '100', '0.1'), - ('urzip-πÇÇπÇÇ现代汉语通用字-български-عربي1234.apk', 'info.guardianproject.urzip', '100', '0.1'), ('repo/com.politedroid_3.apk', 'com.politedroid', '3', '1.2'), ('repo/com.politedroid_4.apk', 'com.politedroid', '4', '1.3'), ('repo/com.politedroid_5.apk', 'com.politedroid', '5', '1.4'), ('repo/com.politedroid_6.apk', 'com.politedroid', '6', '1.5'), - ('repo/duplicate.permisssions_9999999.apk', 'duplicate.permisssions', '9999999', '0.3-7-gb817ac8'), + ('repo/duplicate.permisssions_9999999.apk', 'duplicate.permisssions', '9999999', ''), ('repo/info.zwanenburg.caffeinetile_4.apk', 'info.zwanenburg.caffeinetile', '4', '1.3'), ('repo/obb.main.oldversion_1444412523.apk', 'obb.main.oldversion', '1444412523', '0.1'), ('repo/obb.mainpatch.current_1619_another-release-key.apk', 'obb.mainpatch.current', '1619', '0.1'), @@ -568,16 +565,23 @@ ('repo/obb.main.twoversions_1101613.apk', 'obb.main.twoversions', '1101613', '0.1'), ('repo/obb.main.twoversions_1101615.apk', 'obb.main.twoversions', '1101615', '0.1'), ('repo/obb.main.twoversions_1101617.apk', 'obb.main.twoversions', '1101617', '0.1'), - ('repo/urzip-; Рахма́нинов, [rɐxˈmanʲɪnəf] سيرجي_رخمانينوف 谢尔盖·.apk', 'info.guardianproject.urzip', '100', '0.1'), + ('repo/urzip-; Рахма́, [rɐxˈmanʲɪnəf] سيرجي_رخمانينوف 谢·.apk', 'info.guardianproject.urzip', '100', '0.1'), ] for apkfilename, appid, versionCode, versionName in testcases: - a, vc, vn = fdroidserver.common.get_apk_id_aapt(apkfilename) - self.assertEqual(appid, a) - self.assertEqual(versionCode, vc) - self.assertEqual(versionName, vn) + print('\n\nAPKFILENAME\n', apkfilename) + if 'aapt' in config: + a, vc, vn = fdroidserver.common.get_apk_id_aapt(apkfilename) + self.assertEqual(appid, a) + self.assertEqual(versionCode, vc) + self.assertEqual(versionName, vn) + if fdroidserver.common.use_androguard(): + a, vc, vn = fdroidserver.common.get_apk_id_androguard(apkfilename) + self.assertEqual(appid, a) + self.assertEqual(versionCode, vc) + self.assertEqual(versionName, vn) with self.assertRaises(FDroidException): - fdroidserver.common.get_apk_id_aapt('nope') + fdroidserver.common.get_apk_id('nope') def test_get_minSdkVersion_aapt(self): @@ -629,7 +633,7 @@ self.assertEqual(4, minSdkVersion) minSdkVersion = fdroidserver.common.get_minSdkVersion_aapt('repo/obb.main.twoversions_1101617.apk') self.assertEqual(4, minSdkVersion) - minSdkVersion = fdroidserver.common.get_minSdkVersion_aapt('repo/urzip-; Рахма́нинов, [rɐxˈmanʲɪnəf] سيرجي_رخمانينوف 谢尔盖·.apk') + minSdkVersion = fdroidserver.common.get_minSdkVersion_aapt('repo/urzip-; Рахма́, [rɐxˈmanʲɪnəf] سيرجي_رخمانينوف 谢·.apk') with self.assertRaises(FDroidException): fdroidserver.common.get_minSdkVersion_aapt('nope') @@ -736,6 +740,58 @@ self.assertEqual(('1.9.8.1-ose', '197', 'at.bitfire.davdroid'), fdroidserver.common.parse_androidmanifests(paths, app)) + app = fdroidserver.metadata.App() + build = fdroidserver.metadata.Build() + build.gradle = ['libre'] + app.builds = [build] + app.id = 'com.kunzisoft.fdroidtest.applicationidsuffix.libre' + paths = [ + os.path.join(source_files_dir, 'com.kunzisoft.testcase', 'build.gradle'), + ] + for path in paths: + self.assertTrue(os.path.isfile(path)) + self.assertEqual(('1.0-libre', '1', 'com.kunzisoft.fdroidtest.applicationidsuffix.libre'), + fdroidserver.common.parse_androidmanifests(paths, app)) + + app = fdroidserver.metadata.App() + build = fdroidserver.metadata.Build() + build.gradle = ['pro'] + app.builds = [build] + app.id = 'com.kunzisoft.fdroidtest.applicationidsuffix.pro' + paths = [ + os.path.join(source_files_dir, 'com.kunzisoft.testcase', 'build.gradle'), + ] + for path in paths: + self.assertTrue(os.path.isfile(path)) + self.assertEqual(('20180430-pro', '20180430', 'com.kunzisoft.fdroidtest.applicationidsuffix.pro'), + fdroidserver.common.parse_androidmanifests(paths, app)) + + app = fdroidserver.metadata.App() + build = fdroidserver.metadata.Build() + build.gradle = ['free'] + app.builds = [build] + app.id = 'com.kunzisoft.fdroidtest.applicationidsuffix' + paths = [ + os.path.join(source_files_dir, 'com.kunzisoft.testcase', 'build.gradle'), + ] + for path in paths: + self.assertTrue(os.path.isfile(path)) + self.assertEqual(('1.0-free', '1', 'com.kunzisoft.fdroidtest.applicationidsuffix'), + fdroidserver.common.parse_androidmanifests(paths, app)) + + def test_calculate_math_string(self): + self.assertEqual(1234, fdroidserver.common.calculate_math_string('1234')) + self.assertEqual(4, fdroidserver.common.calculate_math_string('(1+1)*2')) + self.assertEqual(2, fdroidserver.common.calculate_math_string('(1-1)*2+3*1-1')) + with self.assertRaises(SyntaxError): + fdroidserver.common.calculate_math_string('__import__("urllib")') + with self.assertRaises(SyntaxError): + fdroidserver.common.calculate_math_string('self') + with self.assertRaises(SyntaxError): + fdroidserver.common.calculate_math_string('1+1; print(1)') + with self.assertRaises(SyntaxError): + fdroidserver.common.calculate_math_string('1-1 # no comment') + if __name__ == "__main__": parser = optparse.OptionParser() diff -Nru fdroidserver-1.0.2/tests/complete-ci-tests fdroidserver-1.0.6/tests/complete-ci-tests --- fdroidserver-1.0.2/tests/complete-ci-tests 2018-02-22 12:03:03.000000000 +0000 +++ fdroidserver-1.0.6/tests/complete-ci-tests 2018-05-14 13:25:33.000000000 +0000 @@ -27,6 +27,11 @@ fi fi +if ! which pyvenv; then + echo "pyvenv required to run this test suite!" + exit 1 +fi + apksource=$1 #------------------------------------------------------------------------------# @@ -35,31 +40,12 @@ export PIP_DOWNLOAD_CACHE=$HOME/.pip_download_cache fi - -#------------------------------------------------------------------------------# -# required Java 7 or later keytool/jarsigner for :file support - -export PATH=/usr/lib/jvm/java-8-openjdk-amd64/bin:$PATH - - #------------------------------------------------------------------------------# # run local tests, don't scan fdroidserver/ project for APKs cd $WORKSPACE/tests ./run-tests $apksource -#------------------------------------------------------------------------------# -# find pyvenv, to support Ubuntu/trusty's python3.4-venv - -if which pyvenv; then - pyvenv=pyvenv -elif which pyvenv-3.4; then - pyvenv=pyvenv-3.4 -else - echo "pyvenv required to run this test suite!" - exit 1 -fi - #------------------------------------------------------------------------------# # make sure that translations do not cause stacktraces @@ -78,10 +64,8 @@ # test install using install direct from git repo cd $WORKSPACE rm -rf $WORKSPACE/env -$pyvenv $WORKSPACE/env +pyvenv $WORKSPACE/env . $WORKSPACE/env/bin/activate -# workaround https://github.com/pypa/setuptools/issues/937 -pip3 install --quiet setuptools==33.1.1 Babel pip3 install --quiet -e $WORKSPACE python3 setup.py compile_catalog install @@ -90,19 +74,3 @@ # run tests in new pip+pyvenv install fdroid=$WORKSPACE/env/bin/fdroid $WORKSPACE/tests/run-tests $apksource - - -#------------------------------------------------------------------------------# -# run pylint - -# only run it where it will work, for example, the pyvenvs above don't have pylint -if which pylint3 && python3 -c "import pylint" 2> /dev/null; then - cd $WORKSPACE - pylint3 --rcfile=.pylint-rcfile --output-format=colorized --reports=n \ - fdroid \ - makebuildserver \ - setup.py \ - fdroidserver/*.py \ - tests/*.py \ - tests/*.TestCase -fi diff -Nru fdroidserver-1.0.2/tests/index.TestCase fdroidserver-1.0.6/tests/index.TestCase --- fdroidserver-1.0.2/tests/index.TestCase 2018-02-22 12:03:03.000000000 +0000 +++ fdroidserver-1.0.6/tests/index.TestCase 2018-05-25 15:26:27.000000000 +0000 @@ -211,7 +211,7 @@ pass fdroidserver.index.v1_sort_packages( - i, 'repo', fdroidserver.common.load_stats_fdroid_signing_key_fingerprints()) + i, fdroidserver.common.load_stats_fdroid_signing_key_fingerprints()) self.maxDiff = None self.assertEqual(json.dumps(i, indent=2), json.dumps(o, indent=2)) diff -Nru fdroidserver-1.0.2/tests/lint.TestCase fdroidserver-1.0.6/tests/lint.TestCase --- fdroidserver-1.0.2/tests/lint.TestCase 2018-02-22 12:03:03.000000000 +0000 +++ fdroidserver-1.0.6/tests/lint.TestCase 2018-05-25 15:26:27.000000000 +0000 @@ -3,6 +3,7 @@ # http://www.drdobbs.com/testing/unit-testing-with-python/240165163 import inspect +import logging import optparse import os import shutil @@ -18,11 +19,20 @@ import fdroidserver.common import fdroidserver.lint +import fdroidserver.metadata class LintTest(unittest.TestCase): '''fdroidserver/lint.py''' + def setUp(self): + logging.basicConfig(level=logging.INFO) + self.basedir = os.path.join(localmodule, 'tests') + self.tmpdir = os.path.abspath(os.path.join(self.basedir, '..', '.testfiles')) + if not os.path.exists(self.tmpdir): + os.makedirs(self.tmpdir) + os.chdir(self.basedir) + def test_check_for_unsupported_metadata_files(self): config = dict() fdroidserver.common.fill_config_defaults(config) @@ -31,8 +41,8 @@ fdroidserver.lint.config = config self.assertTrue(fdroidserver.lint.check_for_unsupported_metadata_files()) - tmpdir = os.path.join(localmodule, '.testfiles') - tmptestsdir = tempfile.mkdtemp(prefix=inspect.currentframe().f_code.co_name, dir=tmpdir) + tmptestsdir = tempfile.mkdtemp(prefix=inspect.currentframe().f_code.co_name, + dir=self.tmpdir) self.assertFalse(fdroidserver.lint.check_for_unsupported_metadata_files(tmptestsdir + '/')) shutil.copytree(os.path.join(localmodule, 'tests', 'metadata'), os.path.join(tmptestsdir, 'metadata'), @@ -42,6 +52,70 @@ os.path.join(tmptestsdir, 'metadata')) self.assertTrue(fdroidserver.lint.check_for_unsupported_metadata_files(tmptestsdir + '/')) + def test_forbidden_html_tags(self): + config = dict() + fdroidserver.common.fill_config_defaults(config) + fdroidserver.common.config = config + fdroidserver.lint.config = config + + app = { + 'Name': 'Bad App', + 'Summary': 'We pwn you', + 'Description': 'This way: ', + } + + anywarns = False + for warn in fdroidserver.lint.check_regexes(app): + anywarns = True + logging.debug(warn) + self.assertTrue(anywarns) + + def test_check_vercode_operation(self): + config = dict() + fdroidserver.common.fill_config_defaults(config) + fdroidserver.common.config = config + fdroidserver.lint.config = config + + app = fdroidserver.metadata.App() + app.Name = 'Bad App' + app.Summary = 'We pwn you' + app.Description = 'These are some back' + + good_fields = [ + '6%c', + '%c - 1', + '%c + 10', + '%c*10', + '%c*10 + 3', + '%c*10 + 8', + '%c + 2 ', + '%c + 3', + '%c + 7', + ] + bad_fields = [ + 'open("/etc/passwd")', + '%C + 1', + '%%c * 123', + '123 + %%', + '%c % 7', + ] + + anywarns = False + for good in good_fields: + app.VercodeOperation = good + for warn in fdroidserver.lint.check_vercode_operation(app): + anywarns = True + logging.debug(warn) + self.assertFalse(anywarns) + + for bad in bad_fields: + anywarns = False + app.VercodeOperation = bad + for warn in fdroidserver.lint.check_vercode_operation(app): + anywarns = True + logging.debug(warn) + self.assertTrue(anywarns) + if __name__ == "__main__": parser = optparse.OptionParser() diff -Nru fdroidserver-1.0.2/tests/metadata/app.with.special.build.params.txt fdroidserver-1.0.6/tests/metadata/app.with.special.build.params.txt --- fdroidserver-1.0.2/tests/metadata/app.with.special.build.params.txt 2018-02-22 12:03:03.000000000 +0000 +++ fdroidserver-1.0.6/tests/metadata/app.with.special.build.params.txt 2018-05-25 15:23:55.000000000 +0000 @@ -1,6 +1,6 @@ AntiFeatures:UpstreamNonFree Categories:System -License:GPL-3.0 +License:GPL-3.0-only Web Site: Source Code:https://github.com/loadrunner/Facebook-Contact-Sync Issue Tracker:https://github.com/loadrunner/Facebook-Contact-Sync/issues diff -Nru fdroidserver-1.0.2/tests/metadata/com.politedroid.txt fdroidserver-1.0.6/tests/metadata/com.politedroid.txt --- fdroidserver-1.0.2/tests/metadata/com.politedroid.txt 2018-02-22 12:03:03.000000000 +0000 +++ fdroidserver-1.0.6/tests/metadata/com.politedroid.txt 2018-05-25 15:23:55.000000000 +0000 @@ -1,5 +1,5 @@ Categories:Time -License:GPL-3.0 +License:GPL-3.0-only Web Site: Source Code:https://github.com/miguelvps/PoliteDroid Issue Tracker:https://github.com/miguelvps/PoliteDroid/issues diff -Nru fdroidserver-1.0.2/tests/metadata/dump/com.politedroid.yaml fdroidserver-1.0.6/tests/metadata/dump/com.politedroid.yaml --- fdroidserver-1.0.2/tests/metadata/dump/com.politedroid.yaml 2018-02-22 12:03:03.000000000 +0000 +++ fdroidserver-1.0.6/tests/metadata/dump/com.politedroid.yaml 2018-05-17 11:39:34.000000000 +0000 @@ -18,7 +18,7 @@ FlattrID: null IssueTracker: https://github.com/miguelvps/PoliteDroid/issues LiberapayID: null -License: GPL-3.0 +License: GPL-3.0-only Litecoin: null MaintainerNotes: '' Name: null diff -Nru fdroidserver-1.0.2/tests/metadata/dump/org.adaway.yaml fdroidserver-1.0.6/tests/metadata/dump/org.adaway.yaml --- fdroidserver-1.0.2/tests/metadata/dump/org.adaway.yaml 2018-02-22 12:03:03.000000000 +0000 +++ fdroidserver-1.0.6/tests/metadata/dump/org.adaway.yaml 2018-05-17 11:39:34.000000000 +0000 @@ -41,7 +41,7 @@ FlattrID: '369138' IssueTracker: https://github.com/dschuermann/ad-away/issues LiberapayID: null -License: GPL-3.0 +License: GPL-3.0-only Litecoin: null MaintainerNotes: '' Name: null diff -Nru fdroidserver-1.0.2/tests/metadata/dump/org.smssecure.smssecure.yaml fdroidserver-1.0.6/tests/metadata/dump/org.smssecure.smssecure.yaml --- fdroidserver-1.0.2/tests/metadata/dump/org.smssecure.smssecure.yaml 2018-02-22 12:03:03.000000000 +0000 +++ fdroidserver-1.0.6/tests/metadata/dump/org.smssecure.smssecure.yaml 2018-05-17 11:39:34.000000000 +0000 @@ -38,7 +38,7 @@ FlattrID: null IssueTracker: https://github.com/SMSSecure/SMSSecure/issues LiberapayID: null -License: GPL-3.0 +License: GPL-3.0-only Litecoin: null MaintainerNotes: '' Name: null diff -Nru fdroidserver-1.0.2/tests/metadata/dump/org.videolan.vlc.yaml fdroidserver-1.0.6/tests/metadata/dump/org.videolan.vlc.yaml --- fdroidserver-1.0.2/tests/metadata/dump/org.videolan.vlc.yaml 2018-02-22 12:03:03.000000000 +0000 +++ fdroidserver-1.0.6/tests/metadata/dump/org.videolan.vlc.yaml 2018-05-17 11:39:34.000000000 +0000 @@ -25,7 +25,7 @@ FlattrID: null IssueTracker: http://www.videolan.org/support/index.html#bugs LiberapayID: null -License: GPL-3.0 +License: GPL-3.0-only Litecoin: null MaintainerNotes: 'Instructions and dependencies here: http://wiki.videolan.org/AndroidCompile diff -Nru fdroidserver-1.0.2/tests/metadata/info.guardianproject.checkey.txt fdroidserver-1.0.6/tests/metadata/info.guardianproject.checkey.txt --- fdroidserver-1.0.2/tests/metadata/info.guardianproject.checkey.txt 2018-02-22 12:03:03.000000000 +0000 +++ fdroidserver-1.0.6/tests/metadata/info.guardianproject.checkey.txt 2018-05-17 11:39:34.000000000 +0000 @@ -1,5 +1,5 @@ Categories:Development,GuardianProject -License:GPL-3.0 +License:GPL-3.0-only Web Site:https://dev.guardianproject.info/projects/checkey Source Code:https://github.com/guardianproject/checkey Issue Tracker:https://dev.guardianproject.info/projects/checkey/issues diff -Nru fdroidserver-1.0.2/tests/metadata/info.guardianproject.urzip.yml fdroidserver-1.0.6/tests/metadata/info.guardianproject.urzip.yml --- fdroidserver-1.0.2/tests/metadata/info.guardianproject.urzip.yml 2018-02-22 12:03:03.000000000 +0000 +++ fdroidserver-1.0.6/tests/metadata/info.guardianproject.urzip.yml 2018-05-17 11:39:34.000000000 +0000 @@ -18,7 +18,7 @@ ★ 致用户:我们还缺少你喜欢的功能?发现了一个 bug?请告诉我们!我们乐于听取您的意见。请发送电子邮件至: support@guardianproject.info 或者加入我们的聊天室 https://guardianproject.info/contact IssueTracker: https://dev.guardianproject.info/projects/urzip/issues -License: GPL-3.0 +License: GPL-3.0-only Repo: https://github.com/guardianproject/urzip.git RepoType: git SourceCode: https://github.com/guardianproject/urzip diff -Nru fdroidserver-1.0.2/tests/metadata/obb.main.oldversion.txt fdroidserver-1.0.6/tests/metadata/obb.main.oldversion.txt --- fdroidserver-1.0.2/tests/metadata/obb.main.oldversion.txt 2018-02-22 12:03:03.000000000 +0000 +++ fdroidserver-1.0.6/tests/metadata/obb.main.oldversion.txt 2018-05-17 11:39:34.000000000 +0000 @@ -1,5 +1,5 @@ Categories:Development -License:GPL-3.0 +License:GPL-3.0-only Source Code:https://github.com/eighthave/urzip Bitcoin:1Fi5xUHiAPRKxHvyUGVFGt9extBe8Srdbk diff -Nru fdroidserver-1.0.2/tests/metadata/obb.mainpatch.current.txt fdroidserver-1.0.6/tests/metadata/obb.mainpatch.current.txt --- fdroidserver-1.0.2/tests/metadata/obb.mainpatch.current.txt 2018-02-22 12:03:03.000000000 +0000 +++ fdroidserver-1.0.6/tests/metadata/obb.mainpatch.current.txt 2018-05-17 11:39:34.000000000 +0000 @@ -1,5 +1,5 @@ Categories:Development -License:GPL-3.0 +License:GPL-3.0-only Source Code:https://github.com/eighthave/urzip Bitcoin:1Fi5xUHiAPRKxHvyUGVFGt9extBe8Srdbk diff -Nru fdroidserver-1.0.2/tests/metadata/obb.main.twoversions.txt fdroidserver-1.0.6/tests/metadata/obb.main.twoversions.txt --- fdroidserver-1.0.2/tests/metadata/obb.main.twoversions.txt 2018-02-22 12:03:03.000000000 +0000 +++ fdroidserver-1.0.6/tests/metadata/obb.main.twoversions.txt 2018-05-17 11:39:34.000000000 +0000 @@ -1,5 +1,5 @@ Categories:Development -License:GPL-3.0 +License:GPL-3.0-only Source Code:https://github.com/eighthave/urzip Bitcoin:1Fi5xUHiAPRKxHvyUGVFGt9extBe8Srdbk diff -Nru fdroidserver-1.0.2/tests/metadata/org.adaway.json fdroidserver-1.0.6/tests/metadata/org.adaway.json --- fdroidserver-1.0.2/tests/metadata/org.adaway.json 2018-02-22 12:03:03.000000000 +0000 +++ fdroidserver-1.0.6/tests/metadata/org.adaway.json 2018-05-17 11:39:34.000000000 +0000 @@ -22,7 +22,7 @@ "Donate": "http://sufficientlysecure.org/index.php/adaway", "FlattrID": "369138", "IssueTracker": "https://github.com/dschuermann/ad-away/issues", - "License": "GPL-3.0", + "License": "GPL-3.0-only", "Provides": "org.sufficientlysecure.adaway", "Repo": "https://github.com/dschuermann/ad-away.git", "RepoType": "git", diff -Nru fdroidserver-1.0.2/tests/metadata/org.fdroid.fdroid.txt fdroidserver-1.0.6/tests/metadata/org.fdroid.fdroid.txt --- fdroidserver-1.0.2/tests/metadata/org.fdroid.fdroid.txt 2018-02-22 12:03:03.000000000 +0000 +++ fdroidserver-1.0.6/tests/metadata/org.fdroid.fdroid.txt 2018-05-17 11:39:34.000000000 +0000 @@ -1,5 +1,5 @@ Categories:System -License:GPL-3.0+ +License:GPL-3.0-or-later Web Site:https://f-droid.org Source Code:https://gitlab.com/fdroid/fdroidclient Issue Tracker:https://gitlab.com/fdroid/fdroidclient/issues diff -Nru fdroidserver-1.0.2/tests/metadata/org.smssecure.smssecure.txt fdroidserver-1.0.6/tests/metadata/org.smssecure.smssecure.txt --- fdroidserver-1.0.2/tests/metadata/org.smssecure.smssecure.txt 2018-02-22 12:03:03.000000000 +0000 +++ fdroidserver-1.0.6/tests/metadata/org.smssecure.smssecure.txt 2018-05-17 11:39:34.000000000 +0000 @@ -1,5 +1,5 @@ Categories:Phone & SMS -License:GPL-3.0 +License:GPL-3.0-only Web Site:http://www.smssecure.org Source Code:https://github.com/SMSSecure/SMSSecure Issue Tracker:https://github.com/SMSSecure/SMSSecure/issues diff -Nru fdroidserver-1.0.2/tests/metadata/org.videolan.vlc.yml fdroidserver-1.0.6/tests/metadata/org.videolan.vlc.yml --- fdroidserver-1.0.2/tests/metadata/org.videolan.vlc.yml 2018-02-22 12:03:03.000000000 +0000 +++ fdroidserver-1.0.6/tests/metadata/org.videolan.vlc.yml 2018-05-17 11:39:34.000000000 +0000 @@ -1,6 +1,6 @@ Categories: - Multimedia -License: GPL-3.0 +License: GPL-3.0-only WebSite: http://www.videolan.org/vlc/download-android.html SourceCode: http://git.videolan.org/?p=vlc-ports/android.git;a=summary IssueTracker: "http://www.videolan.org/support/index.html#bugs" diff -Nru fdroidserver-1.0.2/tests/metadata/souch.smsbypass.txt fdroidserver-1.0.6/tests/metadata/souch.smsbypass.txt --- fdroidserver-1.0.2/tests/metadata/souch.smsbypass.txt 1970-01-01 00:00:00.000000000 +0000 +++ fdroidserver-1.0.6/tests/metadata/souch.smsbypass.txt 2018-05-17 11:39:34.000000000 +0000 @@ -0,0 +1,52 @@ +Categories:Phone & SMS +License:GPL-3.0-only +Web Site:https://gitlab.com/souch/SMSbypass +Source Code:https://gitlab.com/souch/SMSbypass/tree/HEAD +Issue Tracker:https://gitlab.com/souch/SMSbypass/issues +Donate:http://rodolphe.souchaud.free.fr/donate +FlattrID:cad90e036b975ed129a3ce80a0750466 + +Auto Name:Battery level +Summary:Filter SMS and show them in a fake app +Description: +In order to keep away curious eyes, SMS-bypass filters incoming SMS messages +before they reach your inbox. Based on bughunter2.smsfilter. + +Features: + +* Discrete fake app "Battery level": Long tap on Battery percentage will show SMS. +* Filter incoming SMS specified address: redirect the SMS to SMS-bypass messages list; remove SMS arrival sound or vibration; show a discreet notification icon (battery level); vibrate if checked in settings +* Add contact from contact list +* Export messages to a text file +. + +Repo Type:git +Repo:https://gitlab.com/souch/SMSbypass.git + +Build:0.8,5 + commit=v0.8 + subdir=app + gradle=yes + prebuild=sed -i -e '/minSdkVersion/amaxSdkVersion 19\n' build.gradle + +Build:0.8b,6 + disable=don't build, just use as template for AUM, correct VC is 8 + commit=2bd6164ff6391906af2af2b484de69a4ff926a01 + subdir=app + gradle=yes + +Build:0.8.1,8 + disable=mistagged + commit=v0.8.1 + subdir=app + gradle=yes + +Build:0.9,9 + commit=v0.9 + subdir=app + gradle=yes + +Auto Update Mode:Version v%v +Update Check Mode:Tags +Current Version:0.9 +Current Version Code:9 diff -Nru fdroidserver-1.0.2/tests/metadata-rewrite-yml/app.with.special.build.params.yml fdroidserver-1.0.6/tests/metadata-rewrite-yml/app.with.special.build.params.yml --- fdroidserver-1.0.2/tests/metadata-rewrite-yml/app.with.special.build.params.yml 2018-02-22 12:03:03.000000000 +0000 +++ fdroidserver-1.0.6/tests/metadata-rewrite-yml/app.with.special.build.params.yml 2018-05-17 11:39:34.000000000 +0000 @@ -2,7 +2,7 @@ - UpstreamNonFree Categories: - System -License: GPL-3.0 +License: GPL-3.0-only SourceCode: https://github.com/loadrunner/Facebook-Contact-Sync IssueTracker: https://github.com/loadrunner/Facebook-Contact-Sync/issues diff -Nru fdroidserver-1.0.2/tests/metadata-rewrite-yml/org.fdroid.fdroid.yml fdroidserver-1.0.6/tests/metadata-rewrite-yml/org.fdroid.fdroid.yml --- fdroidserver-1.0.2/tests/metadata-rewrite-yml/org.fdroid.fdroid.yml 2018-02-22 12:03:03.000000000 +0000 +++ fdroidserver-1.0.6/tests/metadata-rewrite-yml/org.fdroid.fdroid.yml 2018-05-17 11:39:34.000000000 +0000 @@ -1,6 +1,6 @@ Categories: - System -License: GPL-3.0+ +License: GPL-3.0-or-later WebSite: https://f-droid.org SourceCode: https://gitlab.com/fdroid/fdroidclient IssueTracker: https://gitlab.com/fdroid/fdroidclient/issues Binary files /tmp/tmpCoX7hp/hZW9rVCDMC/fdroidserver-1.0.2/tests/repo/duplicate.permisssions_9999999.apk and /tmp/tmpCoX7hp/RzjpYOWXQL/fdroidserver-1.0.6/tests/repo/duplicate.permisssions_9999999.apk differ diff -Nru fdroidserver-1.0.2/tests/repo/index-v1.json fdroidserver-1.0.6/tests/repo/index-v1.json --- fdroidserver-1.0.2/tests/repo/index-v1.json 2018-02-22 12:03:03.000000000 +0000 +++ fdroidserver-1.0.6/tests/repo/index-v1.json 2018-05-25 15:26:27.000000000 +0000 @@ -23,6 +23,26 @@ "apps": [ { "categories": [ + "Phone & SMS" + ], + "suggestedVersionName": "0.9", + "suggestedVersionCode": "9", + "description": "

In order to keep away curious eyes, SMS-bypass filters incoming SMS messages before they reach your inbox. Based on bughunter2.smsfilter.

Features:

  • Discrete fake app \"Battery level\": Long tap on Battery percentage will show SMS.
  • Filter incoming SMS specified address: redirect the SMS to SMS-bypass messages list; remove SMS arrival sound or vibration; show a discreet notification icon (battery level); vibrate if checked in settings
  • Add contact from contact list
  • Export messages to a text file
", + "donate": "http://rodolphe.souchaud.free.fr/donate", + "flattrID": "cad90e036b975ed129a3ce80a0750466", + "issueTracker": "https://gitlab.com/souch/SMSbypass/issues", + "license": "GPL-3.0-only", + "name": "Battery level", + "sourceCode": "https://gitlab.com/souch/SMSbypass/tree/HEAD", + "summary": "Filter SMS and show them in a fake app", + "webSite": "https://gitlab.com/souch/SMSbypass", + "added": 1524700800000, + "icon": "souch.smsbypass.9.png", + "packageName": "souch.smsbypass", + "lastUpdated": 1524700800000 + }, + { + "categories": [ "tests" ], "suggestedVersionCode": "9999999", @@ -58,7 +78,7 @@ "Development" ], "suggestedVersionCode": "99999999", - "license": "GPL-3.0", + "license": "GPL-3.0-only", "name": "OBB Main Old Version", "sourceCode": "https://github.com/eighthave/urzip", "added": 1388448000000, @@ -72,7 +92,7 @@ "Development" ], "suggestedVersionCode": "99999999", - "license": "GPL-3.0", + "license": "GPL-3.0-only", "name": "OBB Main Two Versions", "sourceCode": "https://github.com/eighthave/urzip", "added": 1444608000000, @@ -86,7 +106,7 @@ "Development" ], "suggestedVersionCode": "99999999", - "license": "GPL-3.0", + "license": "GPL-3.0-only", "name": "OBB Main/Patch Current", "sourceCode": "https://github.com/eighthave/urzip", "added": 1461369600000, @@ -114,7 +134,7 @@ "suggestedVersionCode": "6", "description": "

Activates silent mode during calendar events.

", "issueTracker": "https://github.com/miguelvps/PoliteDroid/issues", - "license": "GPL-3.0", + "license": "GPL-3.0-only", "name": "Polite Droid", "sourceCode": "https://github.com/miguelvps/PoliteDroid", "summary": "Calendar tool", @@ -135,7 +155,7 @@ "suggestedVersionCode": "2147483647", "description": "

It\u2019s Urzip \u662f\u4e00\u4e2a\u83b7\u5f97\u5df2\u5b89\u88c5 APK \u76f8\u5173\u4fe1\u606f\u7684\u5b9e\u7528\u5de5\u5177\u3002\u5b83\u4ece\u60a8\u7684\u8bbe\u5907\u4e0a\u5df2\u5b89\u88c5\u7684\u6240\u6709\u5e94\u7528\u5f00\u59cb\uff0c\u4e00\u952e\u89e6\u6478\u5373\u53ef\u663e\u793a APK \u7684\u6307\u7eb9\uff0c\u5e76\u4e14\u63d0\u4f9b\u5230\u8fbe virustotal.com \u548c androidobservatory.org \u7684\u5feb\u6377\u94fe\u63a5\uff0c\u8ba9\u60a8\u65b9\u4fbf\u5730\u4e86\u89e3\u7279\u5b9a APK \u7684\u6863\u6848\u3002\u5b83\u8fd8\u53ef\u4ee5\u8ba9\u60a8\u5bfc\u51fa\u7b7e\u540d\u8bc1\u4e66\u548c\u751f\u6210 ApkSignaturePin Pin \u6587\u4ef6\u4f9b TrustedIntents \u5e93\u4f7f\u7528\u3002

\u2605 Urzip \u652f\u6301\u4e0b\u5217\u8bed\u8a00\uff1a Deutsch, English, espa\u00f1ol, suomi, \u65e5\u672c\u8a9e, \ud55c\uad6d\uc5b4, Norsk, portugu\u00eas (Portugal), \u0420\u0443\u0441\u0441\u043a\u0438\u0439, Sloven\u0161\u010dina, T\u00fcrk\u00e7e \u6ca1\u770b\u5230\u60a8\u7684\u8bed\u8a00\uff1f\u5e2e\u5fd9\u7ffb\u8bd1\u672c\u5e94\u7528\u5427\uff1a https://www.transifex.com/projects/p/urzip

\u2605 \u81f4\u7528\u6237\uff1a\u6211\u4eec\u8fd8\u7f3a\u5c11\u4f60\u559c\u6b22\u7684\u529f\u80fd\uff1f\u53d1\u73b0\u4e86\u4e00\u4e2a bug\uff1f\u8bf7\u544a\u8bc9\u6211\u4eec\uff01\u6211\u4eec\u4e50\u4e8e\u542c\u53d6\u60a8\u7684\u610f\u89c1\u3002\u8bf7\u53d1\u9001\u7535\u5b50\u90ae\u4ef6\u81f3: support@guardianproject.info \u6216\u8005\u52a0\u5165\u6211\u4eec\u7684\u804a\u5929\u5ba4 https://guardianproject.info/contact

", "issueTracker": "https://dev.guardianproject.info/projects/urzip/issues", - "license": "GPL-3.0", + "license": "GPL-3.0-only", "name": "urzip-\u03c0\u00c7\u00c7\u03c0\u00c7\u00c7\u73b0\u4ee3\u6c49\u8bed\u901a\u7528\u5b57-\u0431\u044a\u043b\u0433\u0430\u0440\u0441\u043a\u0438-\u0639\u0631\u0628\u064a1234", "sourceCode": "https://github.com/guardianproject/urzip", "summary": "\u4e00\u4e2a\u5b9e\u7528\u5de5\u5177\uff0c\u83b7\u53d6\u5df2\u5b89\u88c5\u5728\u60a8\u7684\u8bbe\u5907\u4e0a\u7684\u5e94\u7528\u7684\u6709\u5173\u4fe1\u606f", @@ -288,13 +308,13 @@ { "added": 1513900800000, "apkName": "duplicate.permisssions_9999999.apk", - "hash": "9ffc7e9b2740ce664059194805b2fbfc08b7970c8448a22b8bd828dfd6ad161c", + "hash": "8367857fe75f85321ce2c344b34804d0bc193707f6ba03710d025d9030803434", "hashType": "sha256", "minSdkVersion": "18", "packageName": "duplicate.permisssions", - "sig": "2d337e40aef77564bf62781ac424595c", - "signer": "f49af3f11efddf20dffd70f5e3117b9976674167adca280e6b1932a0601b26f6", - "size": 11988, + "sig": "056c9f1554c40ba59a2103009c82b420", + "signer": "659e1fd284549f70d13fb02c620100e27eeea3420558cce62b0f5d4cf2b77d84", + "size": 27446, "targetSdkVersion": "27", "uses-permission": [ [ @@ -336,8 +356,7 @@ null ] ], - "versionCode": 9999999, - "versionName": "0.3-7-gb817ac8" + "versionCode": 9999999 } ], "fake.ota.update": [ @@ -349,7 +368,7 @@ "packageName": "fake.ota.update", "size": 233, "versionCode": 1234, - "versionName": "897a92a4ccff4f415f6ba275b2af16d4ecaee60a983b215bddcb9f8964e7a24c" + "versionName": "897a92a" } ], "info.guardianproject.urzip": [ @@ -526,6 +545,48 @@ "versionCode": 1619, "versionName": "0.1" } + ], + "souch.smsbypass": [ + { + "added": 1524700800000, + "apkName": "souch.smsbypass_9.apk", + "hash": "80b0ae68a1189baa3ee6717092e3dbf1a4210165f7f7e5f2f9616bd63a2ec01d", + "hashType": "sha256", + "minSdkVersion": "8", + "packageName": "souch.smsbypass", + "sig": "e50c99753cd45e2736d52cb49be07581", + "signer": "d3aec784b1fd71549fc22c999789122e3639895db6bd585da5835fbe3db6985c", + "size": 81295, + "targetSdkVersion": "18", + "uses-permission": [ + [ + "android.permission.RECEIVE_SMS", + null + ], + [ + "android.permission.SEND_SMS", + null + ], + [ + "android.permission.READ_CONTACTS", + null + ], + [ + "android.permission.WRITE_EXTERNAL_STORAGE", + null + ], + [ + "android.permission.VIBRATE", + null + ], + [ + "android.permission.READ_EXTERNAL_STORAGE", + null + ] + ], + "versionCode": 9, + "versionName": "0.9" + } ] } -} +} \ No newline at end of file diff -Nru fdroidserver-1.0.2/tests/repo/index.xml fdroidserver-1.0.6/tests/repo/index.xml --- fdroidserver-1.0.2/tests/repo/index.xml 2018-02-22 12:03:03.000000000 +0000 +++ fdroidserver-1.0.6/tests/repo/index.xml 2018-05-25 15:26:27.000000000 +0000 @@ -8,6 +8,37 @@ + + souch.smsbypass + 2018-04-26 + 2018-04-26 + Battery level + Filter SMS and show them in a fake app + souch.smsbypass.9.png + <p>In order to keep away curious eyes, SMS-bypass filters incoming SMS messages before they reach your inbox. Based on bughunter2.smsfilter.</p><p>Features:</p><ul><li> Discrete fake app "Battery level": Long tap on Battery percentage will show SMS.</li><li> Filter incoming SMS specified address: redirect the SMS to SMS-bypass messages list; remove SMS arrival sound or vibration; show a discreet notification icon (battery level); vibrate if checked in settings</li><li> Add contact from contact list</li><li> Export messages to a text file</li></ul> + GPL-3.0-only + Phone & SMS + Phone & SMS + https://gitlab.com/souch/SMSbypass + https://gitlab.com/souch/SMSbypass/tree/HEAD + https://gitlab.com/souch/SMSbypass/issues + http://rodolphe.souchaud.free.fr/donate + cad90e036b975ed129a3ce80a0750466 + 0.9 + 9 + + 0.9 + 9 + souch.smsbypass_9.apk + 80b0ae68a1189baa3ee6717092e3dbf1a4210165f7f7e5f2f9616bd63a2ec01d + 81295 + 8 + 18 + 2018-04-26 + e50c99753cd45e2736d52cb49be07581 + READ_CONTACTS,READ_EXTERNAL_STORAGE,RECEIVE_SMS,SEND_SMS,VIBRATE,WRITE_EXTERNAL_STORAGE + + duplicate.permisssions 2017-12-22 @@ -25,15 +56,14 @@ 9999999 - 0.3-7-gb817ac8 9999999 duplicate.permisssions_9999999.apk - 9ffc7e9b2740ce664059194805b2fbfc08b7970c8448a22b8bd828dfd6ad161c - 11988 + 8367857fe75f85321ce2c344b34804d0bc193707f6ba03710d025d9030803434 + 27446 18 27 2017-12-22 - 2d337e40aef77564bf62781ac424595c + 056c9f1554c40ba59a2103009c82b420 ACCESS_NETWORK_STATE,ACCESS_WIFI_STATE,CHANGE_WIFI_MULTICAST_STATE,INTERNET,READ_EXTERNAL_STORAGE,WRITE_EXTERNAL_STORAGE @@ -57,7 +87,7 @@ 0.2.1 2000 - 897a92a4ccff4f415f6ba275b2af16d4ecaee60a983b215bddcb9f8964e7a24c + 897a92a 1234 fake.ota.update_1234.zip 897a92a4ccff4f415f6ba275b2af16d4ecaee60a983b215bddcb9f8964e7a24c @@ -73,7 +103,7 @@ obb.main.oldversion.1444412523.png <p>No description available</p> - GPL-3.0 + GPL-3.0-only Development Development @@ -108,7 +138,7 @@ obb.main.twoversions.1101617.png <p>No description available</p> - GPL-3.0 + GPL-3.0-only Development Development @@ -166,7 +196,7 @@ obb.mainpatch.current.1619.png <p>No description available</p> - GPL-3.0 + GPL-3.0-only Development Development @@ -199,7 +229,7 @@ Calendar tool com.politedroid.6.png <p>Activates silent mode during calendar events.</p> - GPL-3.0 + GPL-3.0-only Time Time @@ -264,7 +294,7 @@ 一个实用工具,获取已安装在您的设备上的应用的有关信息 info.guardianproject.urzip.100.png <p>It’s Urzip 是一个获得已安装 APK 相关信息的实用工具。它从您的设备上已安装的所有应用开始,一键触摸即可显示 APK 的指纹,并且提供到达 virustotal.com 和 androidobservatory.org 的快捷链接,让您方便地了解特定 APK 的档案。它还可以让您导出签名证书和生成 ApkSignaturePin Pin 文件供 TrustedIntents 库使用。</p><p>★ Urzip 支持下列语言: Deutsch, English, español, suomi, 日本語, 한국어, Norsk, português (Portugal), Русский, Slovenščina, Türkçe 没看到您的语言?帮忙翻译本应用吧: https://www.transifex.com/projects/p/urzip</p><p>★ 致用户:我们还缺少你喜欢的功能?发现了一个 bug?请告诉我们!我们乐于听取您的意见。请发送电子邮件至: support@guardianproject.info 或者加入我们的聊天室 https://guardianproject.info/contact</p> - GPL-3.0 + GPL-3.0-only Development,GuardianProject,1,2.0 Development https://dev.guardianproject.info/projects/urzip @@ -276,7 +306,7 @@ 0.1 100 - urzip-; Рахма́нинов, [rɐxˈmanʲɪnəf] سيرجي_رخمانينوف 谢尔盖·.apk + urzip-; Рахма́, [rɐxˈmanʲɪnəf] سيرجي_رخمانينوف 谢·.apk 15c0ec72c74a3791f42cdb43c57df0fb11a4dbb656851bbb8cf05b26a8372789 11471 4 Binary files /tmp/tmpCoX7hp/hZW9rVCDMC/fdroidserver-1.0.2/tests/repo/souch.smsbypass_9.apk and /tmp/tmpCoX7hp/RzjpYOWXQL/fdroidserver-1.0.6/tests/repo/souch.smsbypass_9.apk differ Binary files /tmp/tmpCoX7hp/hZW9rVCDMC/fdroidserver-1.0.2/tests/repo/urzip-; Рахма́, [rɐxˈmanʲɪnəf] سيرجي_رخمانينوف 谢·.apk and /tmp/tmpCoX7hp/RzjpYOWXQL/fdroidserver-1.0.6/tests/repo/urzip-; Рахма́, [rɐxˈmanʲɪnəf] سيرجي_رخمانينوف 谢·.apk differ diff -Nru fdroidserver-1.0.2/tests/run-tests fdroidserver-1.0.6/tests/run-tests --- fdroidserver-1.0.2/tests/run-tests 2018-02-22 14:08:54.000000000 +0000 +++ fdroidserver-1.0.6/tests/run-tests 2018-05-25 09:48:01.000000000 +0000 @@ -6,11 +6,19 @@ { echo -e "==============================================================================\n$1"; } 2>/dev/null } +get_fdroid_apk_filename() { + if [ -z $aapt ]; then + python3 -c "from androguard.core.bytecodes.apk import APK; a=APK('$1'); print(a.package+'_'+a.get_androidversion_code()+'.apk')" + else + $aapt dump badging "$1" | sed -n "s,^package: name='\(.*\)' versionCode='\([0-9][0-9]*\)' .*,\1_\2.apk,p" + fi +} + copy_apks_into_repo() { set +x find $APKDIR -type f -name '*.apk' -print0 | while IFS= read -r -d '' f; do echo $f | grep -F -v -e unaligned -e unsigned -e badsig -e badcert -e bad-unicode -e janus.apk || continue - apk=`$aapt dump badging "$f" | sed -n "s,^package: name='\(.*\)' versionCode='\([0-9][0-9]*\)' .*,\1_\2.apk,p"` + apk=`get_fdroid_apk_filename "$f"` test "$f" -nt repo/$apk && rm -f repo/$apk # delete existing if $f is newer if [ ! -e repo/$apk ] && [ ! -e archive/$apk ]; then echo "$f --> repo/$apk" @@ -72,9 +80,14 @@ fi if [ -z "$ANDROID_HOME" ]; then - echo "ANDROID_HOME must be set with the path to the Android SDK, i.e.: " - echo " export ANDROID_HOME=/opt/android-sdk" - exit 1 + if python3 -c "import androguard"; then + echo "ANDROID_HOME is not set, using androguard" + else + echo "ERROR: ANDROID_HOME is not set, androguard is not available!" + exit 1 + fi +else + echo "Using ANDROID_HOME=$ANDROID_HOME" fi if [ -d tests ]; then @@ -99,7 +112,7 @@ # allow the location of aapt to be overridden if [ -z $aapt ]; then - aapt=`ls -1 $ANDROID_HOME/build-tools/*/aapt | sort | tail -1` + aapt=`ls -1 $ANDROID_HOME/build-tools/*/aapt 2> /dev/null | sort | tail -1` fi # try to use GNU sed on OSX/BSD cuz BSD sed sucks @@ -143,31 +156,32 @@ #------------------------------------------------------------------------------# echo_header 'run process when building and signing are on separate machines' -REPOROOT=`create_test_dir` -cd $REPOROOT -cp $WORKSPACE/tests/keystore.jks $REPOROOT/ -$fdroid init --keystore keystore.jks --repo-keyalias=sova -echo 'keystorepass = "r9aquRHYoI8+dYz6jKrLntQ5/NJNASFBacJh7Jv2BlI="' >> config.py -echo 'keypass = "r9aquRHYoI8+dYz6jKrLntQ5/NJNASFBacJh7Jv2BlI="' >> config.py -echo "accepted_formats = ['txt', 'yml']" >> config.py -echo 'keydname = "CN=Birdman, OU=Cell, O=Alcatraz, L=Alcatraz, S=California, C=US"' >> config.py -test -d archive || mkdir archive -test -d metadata || mkdir metadata -cp $WORKSPACE/tests/metadata/info.guardianproject.urzip.yml metadata/ -test -d repo || mkdir repo -test -d unsigned || mkdir unsigned -cp $WORKSPACE/tests/urzip-release-unsigned.apk unsigned/info.guardianproject.urzip_100.apk -$fdroid publish --verbose -$fdroid update --verbose --nosign -$fdroid signindex --verbose -test -e repo/index.xml -test -e repo/index.jar -test -e repo/index-v1.jar -test -e tmp/apkcache -! test -z tmp/apkcache -test -L urzip.apk -grep -F '> config.py + echo 'keypass = "r9aquRHYoI8+dYz6jKrLntQ5/NJNASFBacJh7Jv2BlI="' >> config.py + echo "accepted_formats = ['txt', 'yml']" >> config.py + echo 'keydname = "CN=Birdman, OU=Cell, O=Alcatraz, L=Alcatraz, S=California, C=US"' >> config.py + test -d archive || mkdir archive + test -d metadata || mkdir metadata + cp $WORKSPACE/tests/metadata/info.guardianproject.urzip.yml metadata/ + test -d repo || mkdir repo + test -d unsigned || mkdir unsigned + cp $WORKSPACE/tests/urzip-release-unsigned.apk unsigned/info.guardianproject.urzip_100.apk + $fdroid publish --verbose + $fdroid update --verbose --nosign + $fdroid signindex --verbose + test -e repo/index.xml + test -e repo/index.jar + test -e repo/index-v1.jar + test -e tmp/apkcache + ! test -z tmp/apkcache + test -L urzip.apk + grep -F '> metadata/fake.txt +echo "License:GPL-2.0-only" >> metadata/fake.txt echo "Summary:Yup still fake" >> metadata/fake.txt echo "Categories:Internet" >> metadata/fake.txt echo "Description:" >> metadata/fake.txt @@ -587,11 +620,12 @@ mkdir -p $LOCAL_COPY_DIR/repo echo "local_copy_dir = '$LOCAL_COPY_DIR'" >> config.py -$fdroid checkupdates +$fdroid checkupdates --allow-dirty $fdroid gpgsign $fdroid lint $fdroid readmeta $fdroid rewritemeta fake +$fdroid deploy $fdroid server update $fdroid scanner @@ -625,6 +659,7 @@ $fdroid update --create-metadata --verbose $fdroid readmeta $fdroid server update --local-copy-dir=/tmp/fdroid +$fdroid deploy --local-copy-dir=/tmp/fdroid --verbose # now test the errors work set +e @@ -711,8 +746,8 @@ #------------------------------------------------------------------------------# echo_header "check that 'fdroid init' fails when build-tools cannot be found" -if [ -e /usr/bin/aapt ]; then - echo "/usr/bin/aapt exists, not running test" +if [ -e /usr/bin/aapt ] || python3 -c 'import androguard'; then + echo "/usr/bin/aapt or androguard installed, not running test" else REPOROOT=`create_test_dir` FAKE_ANDROID_HOME=`create_test_dir` @@ -751,29 +786,32 @@ # by --android-home over the one in ANDROID_HOME, therefore if it uses the one # in ANDROID_HOME, it won't work because it is a fake one. Only # --android-home provides a working one. -echo_header "setup a new repo from scratch with keystore and android-home set on cmd line" - -REPOROOT=`create_test_dir` -KEYSTORE=$REPOROOT/keystore.jks -FAKE_ANDROID_HOME=`create_test_dir` -create_fake_android_home $FAKE_ANDROID_HOME -STORED_ANDROID_HOME=$ANDROID_HOME -unset ANDROID_HOME -echo "ANDROID_HOME: $ANDROID_HOME" -cd $REPOROOT -$fdroid init --keystore $KEYSTORE --android-home $STORED_ANDROID_HOME --no-prompt -test -e $KEYSTORE -copy_apks_into_repo $REPOROOT -$fdroid update --create-metadata --verbose -$fdroid readmeta -grep -F '> config.py -echo "servergitmirrors = '$SERVER_GIT_MIRROR'" >> config.py -echo "local_copy_dir = '$LOCAL_COPY_DIR'" >> config.py -echo "accepted_formats = ['json', 'txt', 'yml']" >> config.py -$fdroid update --pretty -grep -F '' repo/index.xml -grep -F '/fdroid/archive' archive/index.xml -test `grep '' repo/index.xml | wc -l` -eq 2 -test `grep '' archive/index.xml | wc -l` -eq 2 -cd binary_transparency -[ `git rev-list --count HEAD` == "1" ] -cd .. -$fdroid server update --verbose -grep -F '> config.py -echo "sync_from_local_copy_dir = True" >> config.py -echo "serverwebroots = '$SERVERWEBROOT'" >> config.py -echo "servergitmirrors = '$SERVER_GIT_MIRROR'" >> config.py -echo "local_copy_dir = '$LOCAL_COPY_DIR'" >> config.py -echo "binary_transparency_remote = '$BINARY_TRANSPARENCY_REMOTE'" >> config.py -$fdroid server update --verbose -cd $BINARY_TRANSPARENCY_REMOTE -[ `git rev-list --count HEAD` == "1" ] -cd $SERVER_GIT_MIRROR -[ `git rev-list --count HEAD` == "1" ] + # fake git remote server for repo mirror + SERVER_GIT_MIRROR=`create_test_dir` + cd $SERVER_GIT_MIRROR + git init + git config receive.denyCurrentBranch updateInstead + + cd $OFFLINE_ROOT + fdroid_init_with_prebuilt_keystore + cp -a $WORKSPACE/tests/metadata $WORKSPACE/tests/repo $WORKSPACE/tests/stats $OFFLINE_ROOT/ + + echo "mirrors = ['http://foo.bar/fdroid', 'http://asdflkdsfjafdsdfhkjh.onion/fdroid']" >> config.py + echo "servergitmirrors = '$SERVER_GIT_MIRROR'" >> config.py + echo "local_copy_dir = '$LOCAL_COPY_DIR'" >> config.py + echo "accepted_formats = ['json', 'txt', 'yml']" >> config.py + $fdroid update --pretty + grep -F '' repo/index.xml + grep -F '/fdroid/archive' archive/index.xml + test `grep '' repo/index.xml | wc -l` -eq 2 + test `grep '' archive/index.xml | wc -l` -eq 2 + cd binary_transparency + [ `git rev-list --count HEAD` == "1" ] + cd .. + $fdroid server update --verbose + grep -F '> config.py + echo "sync_from_local_copy_dir = True" >> config.py + echo "serverwebroots = '$SERVERWEBROOT'" >> config.py + echo "servergitmirrors = '$SERVER_GIT_MIRROR'" >> config.py + echo "local_copy_dir = '$LOCAL_COPY_DIR'" >> config.py + echo "binary_transparency_remote = '$BINARY_TRANSPARENCY_REMOTE'" >> config.py + $fdroid server update --verbose + cd $BINARY_TRANSPARENCY_REMOTE + [ `git rev-list --count HEAD` == "1" ] + cd $SERVER_GIT_MIRROR + [ `git rev-list --count HEAD` == "1" ] +fi #------------------------------------------------------------------------------# diff -Nru fdroidserver-1.0.2/tests/signatures.TestCase fdroidserver-1.0.6/tests/signatures.TestCase --- fdroidserver-1.0.2/tests/signatures.TestCase 2018-02-22 12:03:03.000000000 +0000 +++ fdroidserver-1.0.6/tests/signatures.TestCase 2018-05-25 15:26:27.000000000 +0000 @@ -36,7 +36,7 @@ APK = [os.path.abspath(os.path.join('repo', 'com.politedroid_3.apk'))] with TemporaryDirectory() as tmpdir, TmpCwd(tmpdir): - signatures.extract(common.config, OptionsFixture()) + signatures.extract(OptionsFixture()) # check if extracted signatures are where they are supposed to be # also verify weather if extracted file contian what they should diff -Nru fdroidserver-1.0.2/tests/source-files/com.kunzisoft.testcase/build.gradle fdroidserver-1.0.6/tests/source-files/com.kunzisoft.testcase/build.gradle --- fdroidserver-1.0.2/tests/source-files/com.kunzisoft.testcase/build.gradle 1970-01-01 00:00:00.000000000 +0000 +++ fdroidserver-1.0.6/tests/source-files/com.kunzisoft.testcase/build.gradle 2018-05-04 13:11:25.000000000 +0000 @@ -0,0 +1,62 @@ +apply plugin: 'com.android.application' + +android { + compileSdkVersion 27 + defaultConfig { + applicationId "com.kunzisoft.fdroidtest.applicationidsuffix" + minSdkVersion 14 + targetSdkVersion 27 + versionCode 1 + versionName "1.0" + testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" + } + buildTypes { + release { + minifyEnabled = false + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' + } + } + + dexOptions { + } + + flavorDimensions "tier" + productFlavors { + libre { + applicationIdSuffix = ".libre" + versionNameSuffix "-libre" + buildConfigField "boolean", "FULL_VERSION", "true" + buildConfigField "boolean", "CLOSED_STORE", "false" + // ApplicationId : com.kunzisoft.fdroidtest.applicationidsuffix.libre + // Version code : 1 + // Version name : 1.0-libre + } + pro { + applicationIdSuffix = ".pro" + versionCode 20180430 + versionName "20180430-pro" + buildConfigField "boolean", "FULL_VERSION", "true" + buildConfigField "boolean", "CLOSED_STORE", "true" + // ApplicationId : com.kunzisoft.fdroidtest.applicationidsuffix.pro + // Version code : 20180430 + // Version name : 20180430-pro + } + free { + versionNameSuffix "-free" + buildConfigField "boolean", "FULL_VERSION", "false" + buildConfigField "boolean", "CLOSED_STORE", "true" + // ApplicationId : com.kunzisoft.fdroidtest.applicationidsuffix + // Version code : 1 + // Version name : 1.0-free + } + } +} + +dependencies { + implementation fileTree(dir: 'libs', include: ['*.jar']) + implementation 'com.android.support:appcompat-v7:27.1.1' + implementation 'com.android.support.constraint:constraint-layout:1.1.0' + testImplementation 'junit:junit:4.12' + androidTestImplementation 'com.android.support.test:runner:1.0.2' + androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2' +} Binary files /tmp/tmpCoX7hp/hZW9rVCDMC/fdroidserver-1.0.2/tests/SpeedoMeterApp.main_1.apk and /tmp/tmpCoX7hp/RzjpYOWXQL/fdroidserver-1.0.6/tests/SpeedoMeterApp.main_1.apk differ diff -Nru fdroidserver-1.0.2/tests/stats/known_apks.txt fdroidserver-1.0.6/tests/stats/known_apks.txt --- fdroidserver-1.0.2/tests/stats/known_apks.txt 2018-02-22 12:03:03.000000000 +0000 +++ fdroidserver-1.0.6/tests/stats/known_apks.txt 2018-05-25 15:26:27.000000000 +0000 @@ -10,4 +10,5 @@ obb.main.twoversions_1101617.apk obb.main.twoversions 2016-06-20 obb.mainpatch.current_1619.apk obb.mainpatch.current 2016-04-23 obb.mainpatch.current_1619_another-release-key.apk obb.mainpatch.current 2017-06-01 -urzip-; Рахма́нинов, [rɐxˈmanʲɪnəf] سيرجي_رخمانينوف 谢尔盖·.apk info.guardianproject.urzip 2016-06-23 +souch.smsbypass_9.apk souch.smsbypass 2018-04-26 +urzip-; Рахма́, [rɐxˈmanʲɪnəf] سيرجي_رخمانينوف 谢·.apk info.guardianproject.urzip 2016-06-23 diff -Nru fdroidserver-1.0.2/tests/update.TestCase fdroidserver-1.0.6/tests/update.TestCase --- fdroidserver-1.0.2/tests/update.TestCase 2018-02-22 12:03:03.000000000 +0000 +++ fdroidserver-1.0.6/tests/update.TestCase 2018-05-25 15:26:27.000000000 +0000 @@ -253,7 +253,7 @@ apps = fdroidserver.metadata.read_metadata(xref=True) knownapks = fdroidserver.common.KnownApks() apks, cachechanged = fdroidserver.update.process_apks({}, 'repo', knownapks, False) - self.assertEqual(len(apks), 13) + self.assertEqual(len(apks), 14) apk = apks[0] self.assertEqual(apk['packageName'], 'com.politedroid') self.assertEqual(apk['versionCode'], 3) @@ -292,11 +292,21 @@ def test_scan_apk(self): config = dict() fdroidserver.common.fill_config_defaults(config) + fdroidserver.common.config = config fdroidserver.update.config = config os.chdir(os.path.join(localmodule, 'tests')) if os.path.basename(os.getcwd()) != 'tests': raise Exception('This test must be run in the "tests/" subdir') + apk_info = fdroidserver.update.scan_apk('repo/souch.smsbypass_9.apk') + self.assertIsNone(apk_info.get('maxSdkVersion')) + self.assertEqual(apk_info.get('versionName'), '0.9') + + apk_info = fdroidserver.update.scan_apk('repo/duplicate.permisssions_9999999.apk') + self.assertIsNone(apk_info.get('versionName')) + self.assertEqual(apk_info['icons_src'], {'160': 'res/drawable/ic_launcher.png', + '-1': 'res/drawable/ic_launcher.png'}) + apk_info = fdroidserver.update.scan_apk('org.dyndns.fules.ck_20.apk') self.assertEqual(apk_info['icons_src'], {'240': 'res/drawable-hdpi-v4/icon_launcher.png', '120': 'res/drawable-ldpi-v4/icon_launcher.png', @@ -319,20 +329,27 @@ self.assertEqual(apk_info['targetSdkVersion'], '8') apk_info = fdroidserver.update.scan_apk('org.bitbucket.tickytacky.mirrormirror_4.apk') + self.assertEqual(apk_info.get('versionName'), '1.0.3') self.assertEqual(apk_info['icons_src'], {'160': 'res/drawable-mdpi/mirror.png', '-1': 'res/drawable-mdpi/mirror.png'}) apk_info = fdroidserver.update.scan_apk('repo/info.zwanenburg.caffeinetile_4.apk') + self.assertEqual(apk_info.get('versionName'), '1.3') self.assertEqual(apk_info['icons_src'], {'160': 'res/drawable/ic_coffee_on.xml', '-1': 'res/drawable/ic_coffee_on.xml'}) apk_info = fdroidserver.update.scan_apk('repo/com.politedroid_6.apk') + self.assertEqual(apk_info.get('versionName'), '1.5') self.assertEqual(apk_info['icons_src'], {'120': 'res/drawable-ldpi-v4/icon.png', '160': 'res/drawable-mdpi-v4/icon.png', '240': 'res/drawable-hdpi-v4/icon.png', '320': 'res/drawable-xhdpi-v4/icon.png', '-1': 'res/drawable-mdpi-v4/icon.png'}) + apk_info = fdroidserver.update.scan_apk('SpeedoMeterApp.main_1.apk') + self.assertEqual(apk_info.get('versionName'), '1.0') + self.assertEqual(apk_info['icons_src'], {}) + def test_scan_apk_no_sig(self): config = dict() fdroidserver.common.fill_config_defaults(config) @@ -541,7 +558,7 @@ knownapks = fdroidserver.common.KnownApks() apks, cachechanged = fdroidserver.update.process_apks({}, 'repo', knownapks, False) fdroidserver.update.translate_per_build_anti_features(apps, apks) - self.assertEqual(len(apks), 13) + self.assertEqual(len(apks), 14) foundtest = False for apk in apks: if apk['packageName'] == 'com.politedroid' and apk['versionCode'] == 3: @@ -637,13 +654,23 @@ 'repo/obb.main.twoversions_1101613.apk', 'repo/obb.main.twoversions_1101615.apk', 'repo/obb.main.twoversions_1101617.apk', - 'repo/urzip-; Рахма́нинов, [rɐxˈmanʲɪnəf] سيرجي_رخمانينوف 谢尔盖·.apk', + 'repo/urzip-; Рахма́, [rɐxˈmanʲɪnəf] سيرجي_رخمانينوف 谢·.apk', ] for f in good: self.assertFalse(fdroidserver.update.has_known_vulnerability(f)) with self.assertRaises(fdroidserver.exception.FDroidException): fdroidserver.update.has_known_vulnerability('janus.apk') + def test_get_apk_icon_when_src_is_none(self): + config = dict() + fdroidserver.common.fill_config_defaults(config) + fdroidserver.common.config = config + fdroidserver.update.config = config + + # pylint: disable=protected-access + icons_src = fdroidserver.update._get_apk_icons_src('urzip-release.apk', None) + assert icons_src == {} + if __name__ == "__main__": parser = optparse.OptionParser() diff -Nru fdroidserver-1.0.2/.travis.yml fdroidserver-1.0.6/.travis.yml --- fdroidserver-1.0.2/.travis.yml 2018-02-22 12:02:20.000000000 +0000 +++ fdroidserver-1.0.6/.travis.yml 2018-05-14 09:36:05.000000000 +0000 @@ -7,15 +7,15 @@ - os: linux language: android - os: osx - osx_image: xcode9.1 + osx_image: xcode9.3 env: ANDROID_SDK_ROOT=/usr/local/share/android-sdk env: ANDROID_HOME=/usr/local/share/android-sdk - os: osx - osx_image: xcode7.3 + osx_image: xcode9.2 env: ANDROID_SDK_ROOT=/usr/local/share/android-sdk env: ANDROID_HOME=/usr/local/share/android-sdk - os: osx - osx_image: xcode6.4 + osx_image: xcode8.3 env: ANDROID_SDK_ROOT=/usr/local/share/android-sdk env: ANDROID_HOME=/usr/local/share/android-sdk @@ -24,27 +24,18 @@ # is used on Windows Subsystem for Linux. addons: apt: + update: true sources: - sourceline: 'ppa:fdroid/fdroidserver' packages: - - bash - - dash - - pylint - - pep8 - - python3-babel - - python3-dev - - python3-pip - - python3-ruamel.yaml - - python3-setuptools - - python3.4-venv - - libjpeg-dev - - zlib1g-dev - - fdroidserver + - python3-babel + - python3-setuptools + - fdroidserver android: components: - android-23 # required for `fdroid build` test - - build-tools-25.0.3 # required for `fdroid build` test + - build-tools-27.0.3 # required for `fdroid build` test licenses: - 'android-sdk-preview-.+' - 'android-sdk-license-.+' @@ -57,7 +48,12 @@ - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then set -x; brew update > /dev/null; - brew install dash bash python3 gradle jenv; + if [ "`sw_vers -productVersion | sed 's,10\.\([0-9]*\).*,\1,'`" -gt 10 ]; then + brew upgrade python; + else + brew install python3; + fi; + brew install dash bash gradle jenv; brew install gnu-sed --with-default-names; if ! ruby -e 'v = `javac -version 2>&1`.split()[1].gsub("_", "."); exit Gem::Dependency.new("", "~> 1.8.0.131").match?("", v)'; then brew cask uninstall java --force; @@ -96,15 +92,12 @@ fi # The OSX tests seem to run slower, they often timeout. So only run -# the test suite with the installed version of fdroid, instead of the -# three rounds that ./complete-ci-tests does. +# the test suite with the installed version of fdroid. +# +# Supporting pip on Ubuntu/trusty was too painful here, since it seems +# that pip installs conflict with the Ubuntu packages. script: - - cd tests - - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then - ./run-tests; - else - ./complete-ci-tests; - fi + - ./tests/run-tests after_failure: - cd $TRAVIS_BUILD_DIR