1
0
mirror of https://gitlab.com/fdroid/fdroidserver.git synced 2024-07-04 16:30:12 +02:00

Merge branch 'finalize-2.0b-release' into 'master'

Finalize 2.0b release

See merge request fdroid/fdroidserver!850
This commit is contained in:
Hans-Christoph Steiner 2021-01-15 14:53:13 +00:00
commit 776ff8c596
14 changed files with 355 additions and 159 deletions

View File

@ -5,19 +5,51 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
## [Unreleased]
For a more complete overview, see the [2.0
milestone](https://gitlab.com/fdroid/fdroidserver/-/milestones/10)
### Added
* makebuildserver: added ndk r20
* `fdroid update` inserts donation links based on upstream's _FUNDING.yml_
([!754](https://gitlab.com/fdroid/fdroidserver/merge_requests/754))
* Stable, public API for most useful functions
([!798](https://gitlab.com/fdroid/fdroidserver/merge_requests/798))
* Load with any YAML lib and use with the API, no more custom parser needed
([!826](https://gitlab.com/fdroid/fdroidserver/merge_requests/826))
([!838](https://gitlab.com/fdroid/fdroidserver/merge_requests/838))
* _config.yml_ for a safe, easy, standard configuration format
([!663](https://gitlab.com/fdroid/fdroidserver/merge_requests/663))
* added support for gradle 5.5.1
([!656](https://gitlab.com/fdroid/fdroidserver/merge_requests/656))
* add SHA256 to filename of repo graphics
* Config options can be set from environment variables using this syntax:
`keystorepass: {env: keystorepass}`
([!669](https://gitlab.com/fdroid/fdroidserver/merge_requests/669))
* support for srclibs metadata in YAML format
* Add SHA256 to filename of repo graphics
([!669](https://gitlab.com/fdroid/fdroidserver/merge_requests/669))
* Support for srclibs metadata in YAML format
([!700](https://gitlab.com/fdroid/fdroidserver/merge_requests/700))
* check srclibs and app-metadata files with yamllint
* Check srclibs and app-metadata files with yamllint
([!721](https://gitlab.com/fdroid/fdroidserver/merge_requests/721))
* Added plugin system for adding subcommands to `fdroid`
([!709](https://gitlab.com/fdroid/fdroidserver/merge_requests/709))
* `fdroid update`, `fdroid publish`, and `fdroid signindex` now work
with SmartCard HSMs, specifically the NitroKey HSM
([!779](https://gitlab.com/fdroid/fdroidserver/merge_requests/779))
([!782](https://gitlab.com/fdroid/fdroidserver/merge_requests/782))
* `fdroid update` support for Triple-T Gradle Play Publisher v2.x
([!683](https://gitlab.com/fdroid/fdroidserver/merge_requests/683))
### Fixed
* Smoother process for signing APKs with `apksigner`
([!736](https://gitlab.com/fdroid/fdroidserver/merge_requests/736))
([!821](https://gitlab.com/fdroid/fdroidserver/merge_requests/821))
* All parts except _build_ and _publish_ work without the Android SDK
([!821](https://gitlab.com/fdroid/fdroidserver/merge_requests/821))
* Description: is now passed to clients unchanged, no HTML conversion
([!828](https://gitlab.com/fdroid/fdroidserver/merge_requests/828))
* Lots of improvements for scanning for proprietary code and trackers
([!748](https://gitlab.com/fdroid/fdroidserver/merge_requests/748))
([!REPLACE](https://gitlab.com/fdroid/fdroidserver/merge_requests/REPLACE))
([!844](https://gitlab.com/fdroid/fdroidserver/merge_requests/844))
* `fdroid mirror` now generates complete, working local mirror repos
* fix build-logs dissapearing when deploying
([!685](https://gitlab.com/fdroid/fdroidserver/merge_requests/685))
* do not crash when system encoding can not be retrieved
@ -33,11 +65,30 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
([!651](https://gitlab.com/fdroid/fdroidserver/merge_requests/651))
* `fdroid init` generates PKCS12 keystores, drop Java < 8 support
([!801](https://gitlab.com/fdroid/fdroidserver/-/merge_requests/801))
* Parse Version Codes specified in hex
([!692](https://gitlab.com/fdroid/fdroidserver/-/merge_requests/692))
* Major refactoring on core parts of code to be more Pythonic
([!756](https://gitlab.com/fdroid/fdroidserver/-/merge_requests/756))
### Removed
* removed support for txt and json metadata
* Removed all support for _.txt_ and _.json_ metadata
([!772](https://gitlab.com/fdroid/fdroidserver/-/merge_requests/772))
* dropped support for Debian 8 _jessie_ and 9 _stretch_
* dropped support for Ubuntu releases older than bionic 18.04
* dropped `fdroid server update` and `fdroid server init`,
use `fdroid deploy`
* `fdroid dscanner` was removed.
([!711](https://gitlab.com/fdroid/fdroidserver/-/merge_requests/711))
* `make_current_version_link` is now off by default
* Dropped `force_build_tools` config option
([!797](https://gitlab.com/fdroid/fdroidserver/-/merge_requests/797))
* Dropped `accepted_formats` config option, there is only _.yml_ now
([!818](https://gitlab.com/fdroid/fdroidserver/-/merge_requests/818))
* `Provides:` was removed as a metadata field
([!654](https://gitlab.com/fdroid/fdroidserver/-/merge_requests/654))
* Remove unused `latestapps.dat`
([!794](https://gitlab.com/fdroid/fdroidserver/-/merge_requests/794))
## [1.1.4] - 2019-08-15
### Fixed

View File

@ -9,7 +9,12 @@ include buildserver/Vagrantfile
include CHANGELOG.md
include completion/bash-completion
include examples/config.yml
include examples/fdroid_exportkeystore.py
include examples/fdroid_export_keystore_to_nitrokey.py
include examples/fdroid_extract_repo_pubkey.py
include examples/fdroid_fetchsrclibs.py
include examples/fdroid-icon.png
include examples/fdroid_nitrokeyimport.py
include examples/makebuildserver.config.py
include examples/opensc-fdroid.cfg
include examples/public-read-only-s3-bucket-policy.json

View File

@ -0,0 +1,61 @@
#!/usr/bin/env python3
#
# an fdroid plugin for exporting a repo's keystore in standard PEM format
import os
from argparse import ArgumentParser
from fdroidserver import common
from fdroidserver.common import FDroidPopen
from fdroidserver.exception import BuildException
fdroid_summary = "export the repo's keystore file to a NitroKey HSM"
def run(cmd, error):
envs = {'LC_ALL': 'C.UTF-8',
'PIN': config['smartcard_pin'],
'FDROID_KEY_STORE_PASS': config['keystorepass'],
'FDROID_KEY_PASS': config['keypass']}
p = FDroidPopen(cmd, envs=envs)
if p.returncode != 0:
raise BuildException(error, p.output)
def main():
global config
parser = ArgumentParser()
common.setup_global_opts(parser)
options = parser.parse_args()
config = common.read_config(options)
destkeystore = config['keystore'].replace('.jks', '.p12').replace('/', '_')
exportkeystore = config['keystore'].replace('.jks', '.pem').replace('/', '_')
if os.path.exists(destkeystore) or os.path.exists(exportkeystore):
raise BuildException('%s exists!' % exportkeystore)
run([config['keytool'], '-importkeystore',
'-srckeystore', config['keystore'],
'-srcalias', config['repo_keyalias'],
'-srcstorepass:env', 'FDROID_KEY_STORE_PASS',
'-srckeypass:env', 'FDROID_KEY_PASS',
'-destkeystore', destkeystore,
'-deststorepass:env', 'FDROID_KEY_STORE_PASS',
'-deststoretype', 'PKCS12'],
'Failed to convert to PKCS12!')
# run(['openssl', 'pkcs12', '-in', destkeystore,
# '-passin', 'env:FDROID_KEY_STORE_PASS', '-nokeys',
# '-out', exportkeystore,
# '-passout', 'env:FDROID_KEY_STORE_PASS'],
# 'Failed to convert to PEM!')
run(['pkcs15-init', '--delete-objects', 'privkey,pubkey',
'--id', '3', '--store-private-key', destkeystore,
'--format', 'pkcs12', '--auth-id', '3',
'--verify-pin', '--pin', 'env:PIN'],
'')
run(['pkcs15-init', '--delete-objects', 'privkey,pubkey',
'--id', '2', '--store-private-key', destkeystore,
'--format', 'pkcs12', '--auth-id', '3',
'--verify-pin', '--pin', 'env:PIN'],
'')
if __name__ == "__main__":
main()

View File

@ -0,0 +1,48 @@
#!/usr/bin/env python3
#
# an fdroid plugin for exporting a repo's keystore in standard PEM format
import os
from argparse import ArgumentParser
from fdroidserver import common
from fdroidserver.common import FDroidPopen
from fdroidserver.exception import BuildException
fdroid_summary = 'export the keystore in standard PEM format'
def main():
parser = ArgumentParser()
common.setup_global_opts(parser)
options = parser.parse_args()
config = common.read_config(options)
env_vars = {'LC_ALL': 'C.UTF-8',
'FDROID_KEY_STORE_PASS': config['keystorepass'],
'FDROID_KEY_PASS': config['keypass']}
destkeystore = config['keystore'].replace('.jks', '.p12').replace('/', '_')
exportkeystore = config['keystore'].replace('.jks', '.pem').replace('/', '_')
if os.path.exists(destkeystore) or os.path.exists(exportkeystore):
raise BuildException('%s exists!' % exportkeystore)
p = FDroidPopen([config['keytool'], '-importkeystore',
'-srckeystore', config['keystore'],
'-srcalias', config['repo_keyalias'],
'-srcstorepass:env', 'FDROID_KEY_STORE_PASS',
'-srckeypass:env', 'FDROID_KEY_PASS',
'-destkeystore', destkeystore,
'-deststoretype', 'PKCS12',
'-deststorepass:env', 'FDROID_KEY_STORE_PASS',
'-destkeypass:env', 'FDROID_KEY_PASS'],
envs=env_vars)
if p.returncode != 0:
raise BuildException("Failed to convert to PKCS12!", p.output)
p = FDroidPopen(['openssl', 'pkcs12', '-in', destkeystore,
'-passin', 'env:FDROID_KEY_STORE_PASS', '-nokeys',
'-out', exportkeystore,
'-passout', 'env:FDROID_KEY_STORE_PASS'],
envs=env_vars)
if p.returncode != 0:
raise BuildException("Failed to convert to PEM!", p.output)
if __name__ == "__main__":
main()

View File

@ -0,0 +1,22 @@
#!/usr/bin/env python3
#
# an fdroid plugin print the repo_pubkey from a repo's keystore
#
from argparse import ArgumentParser
from fdroidserver import common, index
fdroid_summary = 'export the keystore in standard PEM format'
def main():
parser = ArgumentParser()
common.setup_global_opts(parser)
options = parser.parse_args()
common.config = common.read_config(options)
pubkey, repo_pubkey_fingerprint = index.extract_pubkey()
print('repo_pubkey = "%s"' % pubkey.decode())
if __name__ == "__main__":
main()

View File

@ -0,0 +1,41 @@
#!/usr/bin/env python3
from argparse import ArgumentParser
from fdroidserver import common
from fdroidserver.common import FDroidPopen
from fdroidserver.exception import BuildException
fdroid_summary = 'import the local keystore into a SmartCard HSM'
def main():
parser = ArgumentParser()
common.setup_global_opts(parser)
options = parser.parse_args()
config = common.read_config(options)
env_vars = {
'LC_ALL': 'C.UTF-8',
'FDROID_KEY_STORE_PASS': config['keystorepass'],
'FDROID_KEY_PASS': config['keypass'],
'SMARTCARD_PIN': str(config['smartcard_pin']),
}
p = FDroidPopen([config['keytool'], '-importkeystore',
'-srcalias', config['repo_keyalias'],
'-srckeystore', config['keystore'],
'-srcstorepass:env', 'FDROID_KEY_STORE_PASS',
'-srckeypass:env', 'FDROID_KEY_PASS',
'-destalias', config['repo_keyalias'],
'-destkeystore', 'NONE',
'-deststoretype', 'PKCS11',
'-providerName', 'SunPKCS11-OpenSC',
'-providerClass', 'sun.security.pkcs11.SunPKCS11',
'-providerArg', 'opensc-fdroid.cfg',
'-deststorepass:env', 'SMARTCARD_PIN',
'-J-Djava.security.debug=sunpkcs11'],
envs=env_vars)
if p.returncode != 0:
raise BuildException("Failed to import into HSM!", p.output)
if __name__ == "__main__":
main()

View File

@ -56,7 +56,7 @@ if hasattr(Image, 'DecompressionBombWarning'):
warnings.simplefilter('error', Image.DecompressionBombWarning)
Image.MAX_IMAGE_PIXELS = 0xffffff # 4096x4096
METADATA_VERSION = 21
METADATA_VERSION = 20000
# less than the valid range of versionCode, i.e. Java's Integer.MIN_VALUE
UNSET_VERSION_CODE = -0x100000000

View File

@ -3,7 +3,7 @@
# Wellington Terumi Uemura <wellingtonuemura@gmail.com>, 2020.
# André Marcelo Alvarenga <andrealvarenga@gmx.net>, 2020.
# Hans-Christoph Steiner <hans@guardianproject.info>, 2020.
# Rafael Fontenelle <rafaelff@gnome.org>, 2020.
# Rafael Fontenelle <rafaelff@gnome.org>, 2020, 2021.
# ssantos <ssantos@web.de>, 2020.
# The Cats <philosoph@snopyta.org>, 2020.
msgid ""
@ -11,15 +11,15 @@ msgstr ""
"Project-Id-Version: fdroidserver 0.9\n"
"Report-Msgid-Bugs-To: https://gitlab.com/fdroid/fdroidserver/issues\n"
"POT-Creation-Date: 2021-01-14 14:55+0100\n"
"PO-Revision-Date: 2020-11-09 19:08+0000\n"
"Last-Translator: The Cats <philosoph@snopyta.org>\n"
"PO-Revision-Date: 2021-01-14 21:33+0000\n"
"Last-Translator: Rafael Fontenelle <rafaelff@gnome.org>\n"
"Language-Team: Portuguese (Brazil) <https://hosted.weblate.org/projects/f-droid/fdroidserver/pt_BR/>\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 4.3.2\n"
"X-Generator: Weblate 4.5-dev\n"
#: ../fdroidserver/common.py
msgid ""
@ -154,9 +154,8 @@ msgid "'keypass' not found in config.py!"
msgstr "'keypass' não foi encontrada em config.py!"
#: ../fdroidserver/common.py
#, fuzzy
msgid "'keypass' not found in config.yml!"
msgstr "'keypass' não foi encontrada em config.py!"
msgstr "\"keypass\" não encontrada em config.yml!"
#: ../fdroidserver/common.py
msgid "'keystore' is NONE and 'smartcardoptions' is blank!"
@ -167,27 +166,24 @@ msgid "'keystore' not found in config.py!"
msgstr "'keystore' não encontrada em config.py!"
#: ../fdroidserver/common.py
#, fuzzy
msgid "'keystore' not found in config.yml!"
msgstr "'keystore' não encontrada em config.py!"
msgstr "\"keystore\" não encontrada em config.yml!"
#: ../fdroidserver/index.py ../fdroidserver/common.py
msgid "'keystorepass' not found in config.py!"
msgstr "'keystorepass' não encontrada em config.py!"
#: ../fdroidserver/common.py
#, fuzzy
msgid "'keystorepass' not found in config.yml!"
msgstr "'keystorepass' não encontrada em config.py!"
msgstr "\"keystorepass\" não encontrada em config.yml!"
#: ../fdroidserver/index.py ../fdroidserver/common.py
msgid "'repo_keyalias' not found in config.py!"
msgstr "'repo_keyalias' não encontrada em config.py!"
#: ../fdroidserver/common.py
#, fuzzy
msgid "'repo_keyalias' not found in config.yml!"
msgstr "'repo_keyalias' não encontrada em config.py!"
msgstr "\"repo_keyalias\" não encontrada em config.yml!"
#: /usr/lib/python3.5/argparse.py /usr/lib/python3.6/argparse.py
#: /usr/lib/python3.7/argparse.py
@ -199,9 +195,8 @@ msgid "'sdk_path' not set in 'config.py'!"
msgstr "'sdk_path' não definido em 'config.py'!"
#: ../fdroidserver/common.py
#, fuzzy
msgid "'sdk_path' not set in config.yml!"
msgstr "'sdk_path' não definido em 'config.py'!"
msgstr "\"sdk_path\" não definido em config.yml!"
#. 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
@ -249,7 +244,7 @@ msgstr "...checkupdate falhou para {appid} : {error}"
#: /usr/lib/python3.5/argparse.py /usr/lib/python3.6/argparse.py
#: /usr/lib/python3.7/argparse.py
msgid ".__call__() not defined"
msgstr ".__ligação__() não definida"
msgstr ".__call__() não definida"
#: ../fdroidserver/metadata.py
msgid ".fdroid.txt is not supported! Convert to .fdroid.yml or .fdroid.json."
@ -269,7 +264,7 @@ msgstr "Adicione assinaturas PGP usando GnuPG para os pacotes no repositório"
#: ../fdroid ../fdroidserver/__main__.py
msgid "Add a new application from its source code"
msgstr "Adicione um novo aplicativo a partir do seu código fonte"
msgstr "Adiciona um novo aplicativo a partir do seu código-fonte"
#: ../fdroidserver/update.py
msgid "Add a repo signing key to an unsigned repo"
@ -318,9 +313,9 @@ msgid "Android SDK '{path}' does not have '{dirname}' installed!"
msgstr "O SDK Android '{path}' não tem '{dirname}' instalado!"
#: ../fdroidserver/init.py
#, fuzzy, python-brace-format
#, python-brace-format
msgid "Android SDK not found at {path}!"
msgstr "SDK do Android não foi encontrado!"
msgstr "Android SDK não encontrado em {path}!"
#: ../fdroidserver/common.py
msgid "Android SDK not found!"
@ -337,9 +332,9 @@ msgid "Android SDK path '{path}' is not a directory!"
msgstr "O caminho do SDK Android '{path}' não é um diretório!"
#: ../fdroidserver/common.py
#, fuzzy, python-brace-format
#, python-brace-format
msgid "Android SDK tool {cmd} found!"
msgstr "SDK do Android não foi encontrado!"
msgstr "Ferramenta {cmd} do Android SDK encontrada!"
#. 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
@ -389,7 +384,7 @@ msgstr "Link simbólico quebrado: {path}"
#: ../fdroid ../fdroidserver/__main__.py
msgid "Build a package from source"
msgstr "Compilar um pacote a partir do código fonte"
msgstr "Compila um pacote a partir do código-fonte"
#: ../fdroidserver/build.py
msgid "Build all applications available"
@ -459,7 +454,7 @@ msgstr "As categorias não estão definidas"
#: ../fdroid ../fdroidserver/__main__.py
msgid "Check for updates to applications"
msgstr "Verifique se existem atualizações para os aplicativos"
msgstr "Verifica se existem atualizações para os aplicativos"
#: ../fdroidserver/update.py
#, python-brace-format
@ -489,7 +484,7 @@ msgstr "Lista de categorias separadas por vírgula."
#: ../fdroid ../fdroidserver/__main__.py
#, c-format, python-format
msgid "Command '%s' not recognised.\n"
msgstr "Comando '%s' não é reconhecido\n"
msgstr "Comando \"%s\" não reconhecido.\n"
#: ../fdroidserver/checkupdates.py
msgid "Commit changes"
@ -502,7 +497,7 @@ msgstr "Argumentos conflitantes: \"--verbose\" e \"--quiet\" não podem ser espe
#: ../fdroidserver/common.py
#, python-brace-format
msgid "Conflicting config files! Using {newfile}, ignoring {oldfile}!"
msgstr ""
msgstr "Arquivos de configuração conflitantes! Usando {newfile}, ignorando {oldfile}!"
#: ../fdroidserver/common.py
#, python-brace-format
@ -523,9 +518,9 @@ msgid "Could not find {path} to remove it"
msgstr "Impossível encontrar {path} para removê-lo"
#: ../fdroidserver/update.py
#, fuzzy, python-brace-format
#, python-brace-format
msgid "Could not open APK {path} for analysis: "
msgstr "Impossível abrir o arquivo de APK para analisá-lo"
msgstr "Impossível abrir o APK {path} para análise: "
#: ../fdroidserver/update.py
msgid "Could not open apk file for analysis"
@ -565,7 +560,7 @@ msgstr "Criar uma chave de assinatura do repositório em uma keystore"
#: ../fdroidserver/update.py
msgid "Create skeleton metadata files that are missing"
msgstr "Criar as bases dos arquivos de metadados que estão faltando"
msgstr "Cria as bases dos arquivos de metadados que estão faltando"
#: ../fdroidserver/deploy.py ../fdroidserver/upload.py
#, python-brace-format
@ -614,7 +609,7 @@ msgstr "DEBUG_KEYSTORE não está definido ou o valor está incompleto"
#: ../fdroidserver/update.py
msgid "Delete APKs and/or OBBs without metadata from the repo"
msgstr "Apagar os APKs e/ou OBBs sem metadados do repositório"
msgstr "Apaga os APKs e/ou OBBs sem metadados do repositório"
#: ../fdroidserver/deploy.py
#, python-brace-format
@ -717,7 +712,7 @@ msgstr "Link duplicado em '{field}': {url}"
#: ../fdroid
msgid "Dynamically scan APKs post build"
msgstr "Escanear dinamicamente os APKs após a compilação"
msgstr "Percorre dinamicamente os APKs após a compilação"
#: ../fdroidserver/__main__.py
msgid "ERROR: The \"server\" subcommand has been removed, use \"deploy\"!"
@ -757,7 +752,7 @@ msgstr ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "Environment variable {var} from {configname} is not set!"
msgstr ""
msgstr "A variável de ambiente {var} de {configname} não está definida!"
#: ../fdroidserver/deploy.py ../fdroidserver/checkupdates.py
#: ../fdroidserver/upload.py
@ -1030,7 +1025,7 @@ msgstr "Instalar todos os aplicativos assinados disponíveis"
#: ../fdroid ../fdroidserver/__main__.py
msgid "Install built packages on devices"
msgstr "Instalar pacotes prontos nos dispositivos"
msgstr "Instala pacotes compilados nos dispositivos"
#: ../fdroidserver/install.py
#, python-format
@ -1054,7 +1049,7 @@ msgstr "Instalando '{apkfilename}' em {dev} …"
#: ../fdroid ../fdroidserver/__main__.py
msgid "Interact with the repo HTTP server"
msgstr "Interagir com o servidor HTTP do repositório"
msgstr "Interage com o servidor HTTP do repositório"
#: ../fdroidserver/update.py
msgid "Invalid APK"
@ -1245,9 +1240,8 @@ msgid "No commit specified for {versionName} in {linedesc}"
msgstr "Nenhum commit especificado para {versionName} em {linedesc}"
#: ../fdroidserver/common.py
#, fuzzy
msgid "No config.yml found, using defaults."
msgstr "Nenhum 'config.py' encontrado, usando padrões."
msgstr "Nenhum config.yml encontrado, usando padrões."
#: ../fdroidserver/index.py
msgid "No fingerprint in URL."
@ -1328,9 +1322,8 @@ msgid "Now set these in config.py:"
msgstr "Agora defina estes em config.py:"
#: ../fdroidserver/init.py
#, fuzzy
msgid "Now set these in config.yml:"
msgstr "Agora defina estes em config.py:"
msgstr "Agora, defina estes em config.yml:"
#. Translators: https://developer.android.com/guide/topics/manifest/manifest-element.html#vcode
#: ../fdroidserver/update.py
@ -1482,7 +1475,7 @@ msgstr "Produzir XML/JSON legível por humanos para arquivos de índice"
#: ../fdroidserver/update.py
msgid "Produce human-readable index.xml"
msgstr "Gerar um index.xml legível por humanos"
msgstr "Produz um index.xml legível por humanos"
#: ../fdroidserver/import.py
msgid "Project URL to import from."
@ -1508,11 +1501,11 @@ msgstr "Empurrando para {url}"
#: ../fdroid ../fdroidserver/__main__.py
msgid "Quickly start a new repository"
msgstr "Rapidamente comece um novo repositório"
msgstr "Cria rapidamente um novo repositório"
#: ../fdroid ../fdroidserver/__main__.py
msgid "Read all the metadata files and exit"
msgstr "Ler todos os arquivos de metadados e sair"
msgstr "Lê todos os arquivos de metadados e sai"
#: ../fdroidserver/common.py
#, python-brace-format
@ -1546,7 +1539,7 @@ msgstr "Removendo arquivos especificados"
#: ../fdroidserver/update.py
msgid "Rename APK files that do not match package.name_123.apk"
msgstr "Renomear arquivos APK que não são do tipo pacote.nome_123.apk"
msgstr "Renomeia arquivos APK que não correspondem a pacote.nome_123.apk"
#: ../fdroidserver/update.py
msgid "Report on build data status"
@ -1571,7 +1564,7 @@ msgstr "Restringir a saída a erros e avisos"
#: ../fdroid ../fdroidserver/__main__.py
msgid "Rewrite all the metadata files"
msgstr "Reescrever todos os arquivos de metadados"
msgstr "Reescreve todos os arquivos de metadados"
#: ../fdroidserver/rewritemeta.py
msgid "Rewrite to a specific format: "
@ -1614,7 +1607,7 @@ msgstr "Verifique os APKs resultantes na busca das classes não gratuitas já co
#: ../fdroid ../fdroidserver/__main__.py
msgid "Scan the source code of a package"
msgstr "Escanear o código fonte de um pacote"
msgstr "Percorre o código-fonte de um pacote"
#: ../fdroidserver/scanner.py
#, python-brace-format
@ -1667,11 +1660,11 @@ msgstr "Configurar um emulador, instalar o apk nele e escanear com o drozer"
#: ../fdroid ../fdroidserver/__main__.py
msgid "Sign and place packages in the repo"
msgstr "Assine e coloque pacotes no repositório"
msgstr "Assina e coloca pacotes no repositório"
#: ../fdroid ../fdroidserver/__main__.py
msgid "Sign indexes created using update --nosign"
msgstr "Assinar os índices criados usando update --nosign"
msgstr "Assina os índices criados usando update --nosign"
#: ../fdroidserver/build.py
msgid "Skip scanning the source code for binaries and other problems"
@ -1804,9 +1797,8 @@ msgid "To use awsbucket, awssecretkey and awsaccesskeyid must also be set in con
msgstr "Para usar awsbucket, os awssecretkey e awsaccesskeyid também devem ser definidos no config.py!"
#: ../fdroidserver/deploy.py
#, fuzzy
msgid "To use awsbucket, awssecretkey and awsaccesskeyid must also be set in config.yml!"
msgstr "Para usar awsbucket, os awssecretkey e awsaccesskeyid também devem ser definidos no config.py!"
msgstr "Para usar awsbucket, awssecretkey and awsaccesskeyid também devem ser definidos em config.yml!"
#: ../fdroidserver/lint.py
msgid "URL must start with https:// or http://"
@ -1841,7 +1833,7 @@ msgstr "Texto inesperado na mesma linha como {field} em {linedesc}"
#: ../fdroidserver/common.py
#, python-brace-format
msgid "Unknown entry {key} in {configname}"
msgstr ""
msgstr "Entrada desconhecida {key} em {configname}"
#: ../fdroid ../fdroidserver/__main__.py
msgid "Unknown exception found!"
@ -1958,15 +1950,15 @@ msgstr "Caminho scanignore não usado: %s"
#: ../fdroid ../fdroidserver/__main__.py
msgid "Update repo information for new packages"
msgstr "Atualize as informações do repositório para novos pacotes"
msgstr "Atualiza as informações do repositório para novos pacotes"
#: ../fdroid ../fdroidserver/__main__.py
msgid "Update the binary transparency log for a URL"
msgstr "Atualizar o log de transparência de um binário para um URL"
msgstr "Atualiza o log de transparência de um binário para um URL"
#: ../fdroid ../fdroidserver/__main__.py
msgid "Update the stats of the repo"
msgstr "Atualizar as estatísticas do repositório"
msgstr "Atualiza as estatísticas do repositório"
#: ../fdroidserver/update.py ../fdroidserver/build.py
msgid "Update the wiki"
@ -2082,7 +2074,7 @@ msgstr "Verifique a cópia em cache local em vez de redescarregando."
#: ../fdroid ../fdroidserver/__main__.py
msgid "Verify the integrity of downloaded packages"
msgstr "Verifique a integridade dos pacotes baixados"
msgstr "Verifica a integridade dos pacotes baixados"
#: ../fdroidserver/index.py
msgid "Verifying index signature:"
@ -2095,7 +2087,7 @@ msgstr "A chave API do VirusTotal não pode carregar arquivos maiores que 32MB,
#: ../fdroid ../fdroidserver/__main__.py
msgid "Warn about possible metadata errors"
msgstr "Avisar sobre possíveis erros de metadados"
msgstr "Avisa sobre possíveis erros de metadados"
#: ../fdroidserver/update.py
msgid "When configured for signed indexes, create only unsigned indexes at this stage"
@ -2134,7 +2126,7 @@ msgstr "adicionando a {name}: {path}"
#: /usr/lib/python3.7/argparse.py
#, python-format
msgid "ambiguous option: %(option)s could match %(matches)s"
msgstr "opção ambígua: %(option)s poderia corresponder %(matches)s"
msgstr "opção ambígua: %(option)s pode corresponder a %(matches)s"
#: /usr/lib/python3.5/optparse.py /usr/lib/python3.6/optparse.py
#: /usr/lib/python3.7/optparse.py
@ -2194,7 +2186,7 @@ msgstr "não é possível analisar a especificação scrlib (não uma string): '
#: /usr/lib/python3.7/argparse.py
#, python-format
msgid "can't open '%s': %s"
msgstr "não dá pra abrir '%s': %s"
msgstr "não foi possível abrir \"%s\": %s"
#: ../fdroidserver/build.py
#, python-brace-format
@ -2465,13 +2457,13 @@ msgstr "opção %s: escolha inválida: %r (escolha entre %s)"
#: /usr/lib/python3.7/getopt.py
#, python-format
msgid "option -%s not recognized"
msgstr "Comando '%s' não é reconhecido"
msgstr "opção -%s não reconhecida"
#: /usr/lib/python3.5/getopt.py /usr/lib/python3.6/getopt.py
#: /usr/lib/python3.7/getopt.py
#, python-format
msgid "option -%s requires argument"
msgstr "Opção -%s necessita argumento"
msgstr "a opção -%s necessita de argumento"
#: /usr/lib/python3.5/getopt.py /usr/lib/python3.6/getopt.py
#: /usr/lib/python3.7/getopt.py
@ -2489,7 +2481,7 @@ msgstr "opção --%s não é prefixo único"
#: /usr/lib/python3.7/getopt.py
#, python-format
msgid "option --%s not recognized"
msgstr "Comando --%s não é reconhecido"
msgstr "opção --%s não reconhecida"
#: /usr/lib/python3.5/getopt.py /usr/lib/python3.6/getopt.py
#: /usr/lib/python3.7/getopt.py
@ -2548,13 +2540,13 @@ msgstr "biblioteca compartilhada"
#: /usr/lib/python3.5/optparse.py /usr/lib/python3.6/optparse.py
#: /usr/lib/python3.7/optparse.py
msgid "show program's version number and exit"
msgstr "mostrar versão do programa e sair"
msgstr "mostra o número da versão do programa e sai"
#: /usr/lib/python3.5/argparse.py /usr/lib/python3.5/optparse.py
#: /usr/lib/python3.6/argparse.py /usr/lib/python3.6/optparse.py
#: /usr/lib/python3.7/argparse.py /usr/lib/python3.7/optparse.py
msgid "show this help message and exit"
msgstr "mostrar esta mensagem de ajuda e sair"
msgstr "mostra esta mensagem de ajuda e sai"
#: ../fdroidserver/signatures.py
msgid "signed APK, either a file-path or HTTPS URL."
@ -2733,7 +2725,7 @@ msgstr "{name} \"{path}\" não existe! Corrija-o no config.py."
#: ../fdroidserver/common.py
#, python-brace-format
msgid "{oldfile} is deprecated, use {newfile}"
msgstr ""
msgstr "{oldfile} foi descontinuado, use {newfile}"
#: ../fdroidserver/import.py
#, python-brace-format

View File

@ -1,6 +1,6 @@
# SOME DESCRIPTIVE TITLE.
# This file is put in the public domain.
# Golubev Alexander <fatzer2@gmail.com>, 2020.
# Golubev Alexander <fatzer2@gmail.com>, 2020, 2021.
# Mingun <Alexander_Sergey@mail.ru>, 2020.
# anonymous <noreply@weblate.org>, 2020.
# Andrey <andrey@mailbox.org>, 2020.
@ -13,7 +13,7 @@ msgstr ""
"Project-Id-Version: fdroidserver 1.0.0-95-gd7af22b\n"
"Report-Msgid-Bugs-To: https://gitlab.com/fdroid/fdroidserver/issues\n"
"POT-Creation-Date: 2021-01-14 14:55+0100\n"
"PO-Revision-Date: 2020-12-23 21:25+0000\n"
"PO-Revision-Date: 2021-01-14 21:33+0000\n"
"Last-Translator: Golubev Alexander <fatzer2@gmail.com>\n"
"Language-Team: Russian <https://hosted.weblate.org/projects/f-droid/fdroidserver/ru/>\n"
"Language: ru\n"
@ -21,7 +21,7 @@ msgstr ""
"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 4.4.1-dev\n"
"X-Generator: Weblate 4.5-dev\n"
#: ../fdroidserver/common.py
msgid ""
@ -157,9 +157,8 @@ msgid "'keypass' not found in config.py!"
msgstr "В config.py нет переменной 'keypass'!"
#: ../fdroidserver/common.py
#, fuzzy
msgid "'keypass' not found in config.yml!"
msgstr "В config.py нет переменной 'keypass'!"
msgstr "'keypass' не найден в config.yml!"
#: ../fdroidserver/common.py
msgid "'keystore' is NONE and 'smartcardoptions' is blank!"
@ -170,27 +169,24 @@ msgid "'keystore' not found in config.py!"
msgstr "В config.py нет переменной 'keystore'!"
#: ../fdroidserver/common.py
#, fuzzy
msgid "'keystore' not found in config.yml!"
msgstr "В config.py нет переменной 'keystore'!"
msgstr "'keystore' не найден в config.yml!"
#: ../fdroidserver/index.py ../fdroidserver/common.py
msgid "'keystorepass' not found in config.py!"
msgstr "В config.py нет переменной 'keystorepass'!"
#: ../fdroidserver/common.py
#, fuzzy
msgid "'keystorepass' not found in config.yml!"
msgstr "В config.py нет переменной 'keystorepass'!"
msgstr "'keystorepass' не найден в config.yml!"
#: ../fdroidserver/index.py ../fdroidserver/common.py
msgid "'repo_keyalias' not found in config.py!"
msgstr "В config.py нет переменной 'repo_ keyalias'!"
#: ../fdroidserver/common.py
#, fuzzy
msgid "'repo_keyalias' not found in config.yml!"
msgstr "В config.py нет переменной 'repo_ keyalias'!"
msgstr "'repo_keyalias' не найден в config.yml!"
#: /usr/lib/python3.5/argparse.py /usr/lib/python3.6/argparse.py
#: /usr/lib/python3.7/argparse.py
@ -202,9 +198,8 @@ msgid "'sdk_path' not set in 'config.py'!"
msgstr "В config.py не определен 'sdk_path'!"
#: ../fdroidserver/common.py
#, fuzzy
msgid "'sdk_path' not set in config.yml!"
msgstr "В config.py не определен 'sdk_path'!"
msgstr "'sdk_path' не найден в config.yml!"
#. 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
@ -321,9 +316,9 @@ msgid "Android SDK '{path}' does not have '{dirname}' installed!"
msgstr "В установленной Android SDK '{path}' нет '{dirname}'!"
#: ../fdroidserver/init.py
#, fuzzy, python-brace-format
#, python-brace-format
msgid "Android SDK not found at {path}!"
msgstr "Android SDK не обнаружен!"
msgstr "Android SDK не обнаружен в {path}!"
#: ../fdroidserver/common.py
msgid "Android SDK not found!"
@ -340,9 +335,9 @@ msgid "Android SDK path '{path}' is not a directory!"
msgstr "Путь Android SDK '{path}' указывает не на директорию!"
#: ../fdroidserver/common.py
#, fuzzy, python-brace-format
#, python-brace-format
msgid "Android SDK tool {cmd} found!"
msgstr "Android SDK не обнаружен!"
msgstr "Утилита {cmd} из Android SDK не найдена!"
#. 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
@ -506,7 +501,7 @@ msgstr "Несовместимые аргументы: '--verbose' и '--quiet'
#: ../fdroidserver/common.py
#, python-brace-format
msgid "Conflicting config files! Using {newfile}, ignoring {oldfile}!"
msgstr ""
msgstr "Конфликтуюущие файлы настроек! {newfile} — используется; {oldfile} — игнорируется!"
#: ../fdroidserver/common.py
#, python-brace-format
@ -527,9 +522,9 @@ msgid "Could not find {path} to remove it"
msgstr "Указанный для удаления {path} не найден"
#: ../fdroidserver/update.py
#, fuzzy, python-brace-format
#, python-brace-format
msgid "Could not open APK {path} for analysis: "
msgstr "Не удалось открыть и проанализировать файл APK"
msgstr "Не удалось открыть и проанализировать файл APK {path}: "
#: ../fdroidserver/update.py
msgid "Could not open apk file for analysis"
@ -761,7 +756,7 @@ msgstr ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "Environment variable {var} from {configname} is not set!"
msgstr ""
msgstr "Переменная среды {var} из {configname} не установлена!"
#: ../fdroidserver/deploy.py ../fdroidserver/checkupdates.py
#: ../fdroidserver/upload.py
@ -1249,9 +1244,8 @@ msgid "No commit specified for {versionName} in {linedesc}"
msgstr "Не выбраны коммиты для {versionName} в {linedesc}"
#: ../fdroidserver/common.py
#, fuzzy
msgid "No config.yml found, using defaults."
msgstr "Файл 'config.py' не обнаружен. Используется конфигурация по умолчанию."
msgstr "Файл 'config.yml' не обнаружен. Используется конфигурация по умолчанию."
#: ../fdroidserver/index.py
msgid "No fingerprint in URL."
@ -1332,9 +1326,8 @@ msgid "Now set these in config.py:"
msgstr "Определите эти переменные в config.py:"
#: ../fdroidserver/init.py
#, fuzzy
msgid "Now set these in config.yml:"
msgstr "Определите эти переменные в config.py:"
msgstr "Определите эти переменные в config.yml:"
#. Translators: https://developer.android.com/guide/topics/manifest/manifest-element.html#vcode
#: ../fdroidserver/update.py
@ -1809,9 +1802,8 @@ msgid "To use awsbucket, awssecretkey and awsaccesskeyid must also be set in con
msgstr "Необходимо определить переменные awsbucket, awssecretkey и awsaccesskeyid в config.py!"
#: ../fdroidserver/deploy.py
#, fuzzy
msgid "To use awsbucket, awssecretkey and awsaccesskeyid must also be set in config.yml!"
msgstr "Необходимо определить переменные awsbucket, awssecretkey и awsaccesskeyid в config.py!"
msgstr "Чтобы использовать awsbucket необходимо определить awssecretkey и awsaccesskeyid в config.yml!"
#: ../fdroidserver/lint.py
msgid "URL must start with https:// or http://"
@ -1846,7 +1838,7 @@ msgstr "Лишний текст в той же строчке, что и {field}
#: ../fdroidserver/common.py
#, python-brace-format
msgid "Unknown entry {key} in {configname}"
msgstr ""
msgstr "Неизвестная запись {key} в {configname}"
#: ../fdroid ../fdroidserver/__main__.py
msgid "Unknown exception found!"
@ -2741,7 +2733,7 @@ msgstr "{name}: неверный путь \"{path}\"! Поправьте его
#: ../fdroidserver/common.py
#, python-brace-format
msgid "{oldfile} is deprecated, use {newfile}"
msgstr ""
msgstr "{oldfile} признан устаревшим; используйте {newfile}"
#: ../fdroidserver/import.py
#, python-brace-format

View File

@ -1,12 +1,12 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR Free Software Foundation, Inc.
# Oğuz Ersen <oguzersen@protonmail.com>, 2020.
# Oğuz Ersen <oguzersen@protonmail.com>, 2020, 2021.
msgid ""
msgstr ""
"Project-Id-Version: fdroidserver 0.9\n"
"Report-Msgid-Bugs-To: https://gitlab.com/fdroid/fdroidserver/issues\n"
"POT-Creation-Date: 2021-01-14 14:55+0100\n"
"PO-Revision-Date: 2020-10-22 17:26+0000\n"
"PO-Revision-Date: 2021-01-14 21:33+0000\n"
"Last-Translator: Oğuz Ersen <oguzersen@protonmail.com>\n"
"Language-Team: Turkish <https://hosted.weblate.org/projects/f-droid/fdroidserver/tr/>\n"
"Language: tr\n"
@ -14,7 +14,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 4.3.1\n"
"X-Generator: Weblate 4.5-dev\n"
#: ../fdroidserver/common.py
msgid ""
@ -148,9 +148,8 @@ msgid "'keypass' not found in config.py!"
msgstr "'keypass' config.py içinde bulunamadı!"
#: ../fdroidserver/common.py
#, fuzzy
msgid "'keypass' not found in config.yml!"
msgstr "'keypass' config.py içinde bulunamadı!"
msgstr "'keypass' config.yml içinde bulunamadı!"
#: ../fdroidserver/common.py
msgid "'keystore' is NONE and 'smartcardoptions' is blank!"
@ -161,27 +160,24 @@ msgid "'keystore' not found in config.py!"
msgstr "'keystore' config.py içinde bulunamadı!"
#: ../fdroidserver/common.py
#, fuzzy
msgid "'keystore' not found in config.yml!"
msgstr "'keystore' config.py içinde bulunamadı!"
msgstr "'keystore' config.yml içinde bulunamadı!"
#: ../fdroidserver/index.py ../fdroidserver/common.py
msgid "'keystorepass' not found in config.py!"
msgstr "'keystorepass' config.py içinde bulunamadı!"
#: ../fdroidserver/common.py
#, fuzzy
msgid "'keystorepass' not found in config.yml!"
msgstr "'keystorepass' config.py içinde bulunamadı!"
msgstr "'keystorepass' config.yml içinde bulunamadı!"
#: ../fdroidserver/index.py ../fdroidserver/common.py
msgid "'repo_keyalias' not found in config.py!"
msgstr "'repo_keyalias' config.py içinde bulunamadı!"
#: ../fdroidserver/common.py
#, fuzzy
msgid "'repo_keyalias' not found in config.yml!"
msgstr "'repo_keyalias' config.py içinde bulunamadı!"
msgstr "'repo_keyalias' config.yml içinde bulunamadı!"
#: /usr/lib/python3.5/argparse.py /usr/lib/python3.6/argparse.py
#: /usr/lib/python3.7/argparse.py
@ -193,9 +189,8 @@ msgid "'sdk_path' not set in 'config.py'!"
msgstr "'sdk_path' 'config.py' içinde ayarlı değil!"
#: ../fdroidserver/common.py
#, fuzzy
msgid "'sdk_path' not set in config.yml!"
msgstr "'sdk_path' 'config.py' içinde ayarlı değil!"
msgstr "'sdk_path' config.yml içinde ayarlı 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
@ -312,9 +307,9 @@ msgid "Android SDK '{path}' does not have '{dirname}' installed!"
msgstr "Android SDK '{path}' içinde '{dirname}' kurulu değil!"
#: ../fdroidserver/init.py
#, fuzzy, python-brace-format
#, python-brace-format
msgid "Android SDK not found at {path}!"
msgstr "Android SDK bulunamadı!"
msgstr "Android SDK {path} konumunda bulunamadı!"
#: ../fdroidserver/common.py
msgid "Android SDK not found!"
@ -331,9 +326,9 @@ msgid "Android SDK path '{path}' is not a directory!"
msgstr "Android SDK yolu '{path}' bir dizin değil!"
#: ../fdroidserver/common.py
#, fuzzy, python-brace-format
#, python-brace-format
msgid "Android SDK tool {cmd} found!"
msgstr "Android SDK bulunamadı!"
msgstr "Android SDK aracı {cmd} bulundu!"
#. 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
@ -496,7 +491,7 @@ msgstr "Çakışan argümanlar: '--verbose' ve '--quiet' aynı anda belirtilemez
#: ../fdroidserver/common.py
#, python-brace-format
msgid "Conflicting config files! Using {newfile}, ignoring {oldfile}!"
msgstr ""
msgstr "Çakışan yapılandırma dosyaları! {newfile} kullanılıyor, {oldfile} yok sayılıyor!"
#: ../fdroidserver/common.py
#, python-brace-format
@ -517,9 +512,9 @@ msgid "Could not find {path} to remove it"
msgstr "Kaldırmak için {path} bulunamadı"
#: ../fdroidserver/update.py
#, fuzzy, python-brace-format
#, python-brace-format
msgid "Could not open APK {path} for analysis: "
msgstr "İnceleme için apk dosyasıılamadı"
msgstr "İnceleme için APK {path} açılamadı: "
#: ../fdroidserver/update.py
msgid "Could not open apk file for analysis"
@ -751,7 +746,7 @@ msgstr ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "Environment variable {var} from {configname} is not set!"
msgstr ""
msgstr "{configname} içinden {var} ortam değişkeni ayarlı değil!"
#: ../fdroidserver/deploy.py ../fdroidserver/checkupdates.py
#: ../fdroidserver/upload.py
@ -1219,7 +1214,7 @@ msgstr "Ad '%s' yalnızca kendiliğinden bir ad - kaldırın"
#: ../fdroidserver/common.py
msgid "No 'config.py' found, using defaults."
msgstr "'config.py' bulunamadı, öntanımlılar kullanılıyor."
msgstr "'config.py' bulunamadı, öntanımlı değerler kullanılıyor."
#: ../fdroidserver/common.py
msgid "No Android SDK found!"
@ -1239,9 +1234,8 @@ msgid "No commit specified for {versionName} in {linedesc}"
msgstr "{linedesc} içindeki {versionName} için belirtilen işleme yok"
#: ../fdroidserver/common.py
#, fuzzy
msgid "No config.yml found, using defaults."
msgstr "'config.py' bulunamadı, öntanımlılar kullanılıyor."
msgstr "config.yml bulunamadı, öntanımlı değerler kullanılıyor."
#: ../fdroidserver/index.py
msgid "No fingerprint in URL."
@ -1322,9 +1316,8 @@ msgid "Now set these in config.py:"
msgstr "Şimdi bunları config.py içinde ayarlayın:"
#: ../fdroidserver/init.py
#, fuzzy
msgid "Now set these in config.yml:"
msgstr "Şimdi bunları config.py içinde ayarlayın:"
msgstr "Şimdi bunları config.yml içinde ayarlayın:"
#. Translators: https://developer.android.com/guide/topics/manifest/manifest-element.html#vcode
#: ../fdroidserver/update.py
@ -1798,9 +1791,8 @@ msgid "To use awsbucket, awssecretkey and awsaccesskeyid must also be set in con
msgstr "Awsbucket kullanmak için, awssecretkey ve awsaccesskeyid de config.py içinde ayarlanmalı!"
#: ../fdroidserver/deploy.py
#, fuzzy
msgid "To use awsbucket, awssecretkey and awsaccesskeyid must also be set in config.yml!"
msgstr "Awsbucket kullanmak için, awssecretkey ve awsaccesskeyid de config.py içinde ayarlanmalı!"
msgstr "Awsbucket kullanmak için, awssecretkey ve awsaccesskeyid de config.yml içinde ayarlanmalı!"
#: ../fdroidserver/lint.py
msgid "URL must start with https:// or http://"
@ -1835,7 +1827,7 @@ msgstr "{linedesc} içinde {field} ile aynı satırda beklenmeyen metin"
#: ../fdroidserver/common.py
#, python-brace-format
msgid "Unknown entry {key} in {configname}"
msgstr ""
msgstr "{configname} içinde bilinmeyen girdi {key}"
#: ../fdroid ../fdroidserver/__main__.py
msgid "Unknown exception found!"
@ -2727,7 +2719,7 @@ msgstr "{name} \"{path}\" yok! config.py içinde düzeltin."
#: ../fdroidserver/common.py
#, python-brace-format
msgid "{oldfile} is deprecated, use {newfile}"
msgstr ""
msgstr "{oldfile} kullanımdan kaldırıldı, {newfile} kullanın"
#: ../fdroidserver/import.py
#, python-brace-format

View File

@ -2,13 +2,13 @@
# Copyright (C) YEAR Free Software Foundation, Inc.
# Hans-Christoph Steiner <hans@guardianproject.info>, 2020.
# ihor_ck <igor_ck@outlook.com>, 2020.
# Ihor Hordiichuk <igor_ck@outlook.com>, 2020.
# Ihor Hordiichuk <igor_ck@outlook.com>, 2020, 2021.
msgid ""
msgstr ""
"Project-Id-Version: fdroidserver 0.9\n"
"Report-Msgid-Bugs-To: https://gitlab.com/fdroid/fdroidserver/issues\n"
"POT-Creation-Date: 2021-01-14 14:55+0100\n"
"PO-Revision-Date: 2020-12-08 12:29+0000\n"
"PO-Revision-Date: 2021-01-14 21:33+0000\n"
"Last-Translator: Ihor Hordiichuk <igor_ck@outlook.com>\n"
"Language-Team: Ukrainian <https://hosted.weblate.org/projects/f-droid/fdroidserver/uk/>\n"
"Language: uk\n"
@ -16,7 +16,7 @@ msgstr ""
"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 4.4-dev\n"
"X-Generator: Weblate 4.5-dev\n"
#: ../fdroidserver/common.py
msgid ""
@ -151,9 +151,8 @@ msgid "'keypass' not found in config.py!"
msgstr "'keypass' не знайдено в config.py!"
#: ../fdroidserver/common.py
#, fuzzy
msgid "'keypass' not found in config.yml!"
msgstr "'keypass' не знайдено в config.py!"
msgstr "'keypass' не знайдено в config.yml!"
#: ../fdroidserver/common.py
msgid "'keystore' is NONE and 'smartcardoptions' is blank!"
@ -164,27 +163,24 @@ msgid "'keystore' not found in config.py!"
msgstr "'keystore' не знайдено в config.py!"
#: ../fdroidserver/common.py
#, fuzzy
msgid "'keystore' not found in config.yml!"
msgstr "'keystore' не знайдено в config.py!"
msgstr "'keystore' не знайдено в config.yml!"
#: ../fdroidserver/index.py ../fdroidserver/common.py
msgid "'keystorepass' not found in config.py!"
msgstr "'keystorepass' не знайдено в config.py!"
#: ../fdroidserver/common.py
#, fuzzy
msgid "'keystorepass' not found in config.yml!"
msgstr "'keystorepass' не знайдено в config.py!"
msgstr "'keystorepass' не знайдено в config.yml!"
#: ../fdroidserver/index.py ../fdroidserver/common.py
msgid "'repo_keyalias' not found in config.py!"
msgstr "'repo_keyalias' не знайдено в config.py!"
#: ../fdroidserver/common.py
#, fuzzy
msgid "'repo_keyalias' not found in config.yml!"
msgstr "'repo_keyalias' не знайдено в config.py!"
msgstr "'repo_keyalias' не знайдено в config.yml!"
#: /usr/lib/python3.5/argparse.py /usr/lib/python3.6/argparse.py
#: /usr/lib/python3.7/argparse.py
@ -196,9 +192,8 @@ msgid "'sdk_path' not set in 'config.py'!"
msgstr "'sdk_path' не встановлено в 'config.py'!"
#: ../fdroidserver/common.py
#, fuzzy
msgid "'sdk_path' not set in config.yml!"
msgstr "'sdk_path' не встановлено в 'config.py'!"
msgstr "'sdk_path' не встановлено в config.yml!"
#. 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
@ -315,9 +310,9 @@ msgid "Android SDK '{path}' does not have '{dirname}' installed!"
msgstr "Android SDK '{path}' '{dirname}' не встановлено!"
#: ../fdroidserver/init.py
#, fuzzy, python-brace-format
#, python-brace-format
msgid "Android SDK not found at {path}!"
msgstr "Android SDK не знайдено!"
msgstr "Android SDK не знайдено в {path}!"
#: ../fdroidserver/common.py
msgid "Android SDK not found!"
@ -334,9 +329,9 @@ msgid "Android SDK path '{path}' is not a directory!"
msgstr "Android SDK шлях '{path}' це не каталог!"
#: ../fdroidserver/common.py
#, fuzzy, python-brace-format
#, python-brace-format
msgid "Android SDK tool {cmd} found!"
msgstr "Android SDK не знайдено!"
msgstr "{cmd} засіб Android SDK знайдено!"
#. 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
@ -500,7 +495,7 @@ msgstr "Конфліктні аргументи: \"---verbose\" і \"--quiet\"
#: ../fdroidserver/common.py
#, python-brace-format
msgid "Conflicting config files! Using {newfile}, ignoring {oldfile}!"
msgstr ""
msgstr "Суперечливі файли налаштувань! Використання {newfile}, ігнорування {oldfile}!"
#: ../fdroidserver/common.py
#, python-brace-format
@ -521,9 +516,9 @@ msgid "Could not find {path} to remove it"
msgstr "Не вдалося знайти шлях {path}, щоб вилучити його"
#: ../fdroidserver/update.py
#, fuzzy, python-brace-format
#, python-brace-format
msgid "Could not open APK {path} for analysis: "
msgstr "Не вдалося відкрити файл apk для аналізу"
msgstr "Не вдалося відкрити файл APK {path} для аналізу: "
#: ../fdroidserver/update.py
msgid "Could not open apk file for analysis"
@ -755,7 +750,7 @@ msgstr ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "Environment variable {var} from {configname} is not set!"
msgstr ""
msgstr "Змінну середовища {var} від {configname} не налаштованоно!"
#: ../fdroidserver/deploy.py ../fdroidserver/checkupdates.py
#: ../fdroidserver/upload.py
@ -1243,9 +1238,8 @@ msgid "No commit specified for {versionName} in {linedesc}"
msgstr "У версії {linedesc} не вказано поданнь для {versionName}"
#: ../fdroidserver/common.py
#, fuzzy
msgid "No config.yml found, using defaults."
msgstr "Не знайдено 'config.py', використовуючи типові налаштування."
msgstr "config.yml не знайдено, використання типових налаштувань."
#: ../fdroidserver/index.py
msgid "No fingerprint in URL."
@ -1326,9 +1320,8 @@ msgid "Now set these in config.py:"
msgstr "Тепер встановіть їх у config.py:"
#: ../fdroidserver/init.py
#, fuzzy
msgid "Now set these in config.yml:"
msgstr "Тепер встановіть їх у config.py:"
msgstr "Тепер встановіть їх у config.yml:"
#. Translators: https://developer.android.com/guide/topics/manifest/manifest-element.html#vcode
#: ../fdroidserver/update.py
@ -1803,9 +1796,8 @@ msgid "To use awsbucket, awssecretkey and awsaccesskeyid must also be set in con
msgstr "Для використання awsbucket, awssecretkey та awsaccesskeyid також слід налаштувати config.py!"
#: ../fdroidserver/deploy.py
#, fuzzy
msgid "To use awsbucket, awssecretkey and awsaccesskeyid must also be set in config.yml!"
msgstr "Для використання awsbucket, awssecretkey та awsaccesskeyid також слід налаштувати config.py!"
msgstr "Для користування awsbucket, awssecretkey та awsaccesskeyid також слід налаштувати їх у config.yml!"
#: ../fdroidserver/lint.py
msgid "URL must start with https:// or http://"
@ -1840,7 +1832,7 @@ msgstr "Несподіваний текст у тому ж рядку, що і {
#: ../fdroidserver/common.py
#, python-brace-format
msgid "Unknown entry {key} in {configname}"
msgstr ""
msgstr "Невідомий запис {key} у {configname}"
#: ../fdroid ../fdroidserver/__main__.py
msgid "Unknown exception found!"
@ -2735,7 +2727,7 @@ msgstr "{name} \"{path}\" не існує! Виправте його в config.p
#: ../fdroidserver/common.py
#, python-brace-format
msgid "{oldfile} is deprecated, use {newfile}"
msgstr ""
msgstr "{oldfile} вилучено, використовується {newfile}"
#: ../fdroidserver/import.py
#, python-brace-format

View File

@ -53,7 +53,7 @@ with open("README.md", "r") as fh:
long_description = fh.read()
setup(name='fdroidserver',
version='2.0a5',
version='2.0b',
description='F-Droid Server Tools',
long_description=long_description,
long_description_content_type='text/markdown',

View File

@ -1,7 +1,7 @@
{
"repo": {
"timestamp": 1502845383782,
"version": 21,
"version": 20000,
"name": "My First F-Droid Repo Demo",
"icon": "fdroid-icon.png",
"address": "https://MyFirstFDroidRepo.org/fdroid/repo",

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<fdroid>
<repo icon="fdroid-icon.png" name="My First F-Droid Repo Demo" pubkey="308204e1308202c9a003020102020434597643300d06092a864886f70d01010b050030213110300e060355040b1307462d44726f6964310d300b06035504031304736f7661301e170d3136303931333230313930395a170d3434303133303230313930395a30213110300e060355040b1307462d44726f6964310d300b06035504031304736f766130820222300d06092a864886f70d01010105000382020f003082020a028202010086ef94b5aacf2ba4f38c875f4194b44f5644392e3715575d7c92828577e692c352b567172823851c8c72347fbc9d99684cd7ca3e1db3e4cca126382c53f2a5869fb4c19bdec989b2930501af3e758ff40588915fe96b10076ce3346a193a0277d79e83e30fd8657c20e35260dd085aa32eac7c4b85786ffefbf1555cafe2bc928443430cdbba48cfbe701e12ae86e676477932730d4fc7c00af820aef85038a5b4df084cf6470d110dc4c49ea1b749b80b34709d199b3db516b223625c5de4501e861f7d261b3838f8f616aa78831d618d41d25872dc810c9b2087b5a9e146ca95be740316dcdbcb77314e23ab87d4487913b800b1113c0603ea2294188b71d3e49875df097b56f9151211fc6832f9790c5c83d17481f14ad37915fd164f4fd713f6732a15f4245714b84cd665bdbd085660ea33ad7d7095dcc414f09e3903604a40facc2314a115c0045bb50e9df38efb57e1b8e7cc105f340a26eeb46aba0fa6672953eee7f1f92dcb408e561909bbd4bdf4a4948c4d57c467d21aa238c34ba43be050398be963191fa2b49828bc1e4eeed224b40dbe9dc3e570890a71a974a2f4527edb1b07105071755105edcb2af2f269facfb89180903a572a99b46456e80d4a01685a80b233278805f2c876678e731f4ec4f52075aeef6b2b023efbb8a3637ef507c4c37c27e428152ec1817fcba640ad601cb09f72f0fbe2d274a2410203010001a321301f301d0603551d0e04160414c28bf33dd5a9a17338e5b1d1a6edd8c7d141ed0b300d06092a864886f70d01010b0500038202010084e20458b2aafd7fc27146b0986f9324f4260f244920417a77c9bf15e2e2d22d2725bdd8093ec261c3779c3ca03312516506f9410075b90595b41345956d8eb2786fb5994f195611382c2b99dba13381b0100a30bc9e6e47248bf4325e2f6eec9d789216dc7536e753bf1f4be603d9fa2e6f5e192b4eb988b8cdb0bb1e8668a9225426f7d4636479f73ed24ad1d2657c31e63c93d9679b9080171b3bd1bf10a3b92b80bd790fbf62d3644900cd08eae8b9bf9c2567be98dc8cdd2ae19a8d57a3e3e2de899f81f1279f578989e6af906f80c8c2b67651730ee7e568c1af5bcb845b6d685dc55332a9984aeceaea3b7e883447edf1c76b155d95253e39b9710eaa22efa6c81468829702b5dce7126538f3ca70c2f0ad9a5795435fdb1f715f20d60359ef9a9926c7050116e802df651727447848827815f70bd82af3cedd08783156102d2d8ce995c4c43b8e47e91a3e6927f3505a5d395e6bebb84542c570903eeab4382a1c2151f1471c7a06a34dc4d268d8fa72e93bdcd2dccc4302ecac47b9e7e3d8bc9b46d21cd097874a24d529548018dc190ff568c6aa428f0a5eedff1a347730931c74f19277538e49647a4ad7254f4c1ec7d4da12cce9e1fad9607534e66ab40a56b473d9d7e3d563fd03cad2052bad365c5a29f8ae54f09b60dbca3ea768d7767cbe1c133ca08ce725c1c1370f4aab8e5b6e286f52dc0be8d0982b5a" timestamp="1480431575" url="https://MyFirstFDroidRepo.org/fdroid/repo" version="21">
<repo icon="fdroid-icon.png" name="My First F-Droid Repo Demo" pubkey="308204e1308202c9a003020102020434597643300d06092a864886f70d01010b050030213110300e060355040b1307462d44726f6964310d300b06035504031304736f7661301e170d3136303931333230313930395a170d3434303133303230313930395a30213110300e060355040b1307462d44726f6964310d300b06035504031304736f766130820222300d06092a864886f70d01010105000382020f003082020a028202010086ef94b5aacf2ba4f38c875f4194b44f5644392e3715575d7c92828577e692c352b567172823851c8c72347fbc9d99684cd7ca3e1db3e4cca126382c53f2a5869fb4c19bdec989b2930501af3e758ff40588915fe96b10076ce3346a193a0277d79e83e30fd8657c20e35260dd085aa32eac7c4b85786ffefbf1555cafe2bc928443430cdbba48cfbe701e12ae86e676477932730d4fc7c00af820aef85038a5b4df084cf6470d110dc4c49ea1b749b80b34709d199b3db516b223625c5de4501e861f7d261b3838f8f616aa78831d618d41d25872dc810c9b2087b5a9e146ca95be740316dcdbcb77314e23ab87d4487913b800b1113c0603ea2294188b71d3e49875df097b56f9151211fc6832f9790c5c83d17481f14ad37915fd164f4fd713f6732a15f4245714b84cd665bdbd085660ea33ad7d7095dcc414f09e3903604a40facc2314a115c0045bb50e9df38efb57e1b8e7cc105f340a26eeb46aba0fa6672953eee7f1f92dcb408e561909bbd4bdf4a4948c4d57c467d21aa238c34ba43be050398be963191fa2b49828bc1e4eeed224b40dbe9dc3e570890a71a974a2f4527edb1b07105071755105edcb2af2f269facfb89180903a572a99b46456e80d4a01685a80b233278805f2c876678e731f4ec4f52075aeef6b2b023efbb8a3637ef507c4c37c27e428152ec1817fcba640ad601cb09f72f0fbe2d274a2410203010001a321301f301d0603551d0e04160414c28bf33dd5a9a17338e5b1d1a6edd8c7d141ed0b300d06092a864886f70d01010b0500038202010084e20458b2aafd7fc27146b0986f9324f4260f244920417a77c9bf15e2e2d22d2725bdd8093ec261c3779c3ca03312516506f9410075b90595b41345956d8eb2786fb5994f195611382c2b99dba13381b0100a30bc9e6e47248bf4325e2f6eec9d789216dc7536e753bf1f4be603d9fa2e6f5e192b4eb988b8cdb0bb1e8668a9225426f7d4636479f73ed24ad1d2657c31e63c93d9679b9080171b3bd1bf10a3b92b80bd790fbf62d3644900cd08eae8b9bf9c2567be98dc8cdd2ae19a8d57a3e3e2de899f81f1279f578989e6af906f80c8c2b67651730ee7e568c1af5bcb845b6d685dc55332a9984aeceaea3b7e883447edf1c76b155d95253e39b9710eaa22efa6c81468829702b5dce7126538f3ca70c2f0ad9a5795435fdb1f715f20d60359ef9a9926c7050116e802df651727447848827815f70bd82af3cedd08783156102d2d8ce995c4c43b8e47e91a3e6927f3505a5d395e6bebb84542c570903eeab4382a1c2151f1471c7a06a34dc4d268d8fa72e93bdcd2dccc4302ecac47b9e7e3d8bc9b46d21cd097874a24d529548018dc190ff568c6aa428f0a5eedff1a347730931c74f19277538e49647a4ad7254f4c1ec7d4da12cce9e1fad9607534e66ab40a56b473d9d7e3d563fd03cad2052bad365c5a29f8ae54f09b60dbca3ea768d7767cbe1c133ca08ce725c1c1370f4aab8e5b6e286f52dc0be8d0982b5a" timestamp="1480431575" url="https://MyFirstFDroidRepo.org/fdroid/repo" version="20000">
<description>This is a repository of apps to be used with F-Droid. Applications in this repository are either official binaries built by the original application developers, or are binaries built from source by the admin of f-droid.org using the tools on https://gitlab.com/u/fdroid.</description>
<mirror>http://foobarfoobarfoobar.onion/fdroid/repo</mirror>
<mirror>https://foo.bar/fdroid/repo</mirror>