mirror of
				https://github.com/f-droid/fdroidserver.git
				synced 2025-11-04 06:30:27 +03:00 
			
		
		
		
	Sort import
ruff check --fix --select I
This commit is contained in:
		
							parent
							
								
									b19b8050db
								
							
						
					
					
						commit
						7a98650ed3
					
				
					 68 changed files with 342 additions and 291 deletions
				
			
		| 
						 | 
				
			
			@ -12,6 +12,7 @@
 | 
			
		|||
#
 | 
			
		||||
import os
 | 
			
		||||
import sys
 | 
			
		||||
 | 
			
		||||
sys.path.insert(0, os.path.abspath('../../fdroidserver'))
 | 
			
		||||
 | 
			
		||||
# -- Project information -----------------------------------------------------
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -6,7 +6,6 @@ import argparse
 | 
			
		|||
import logging
 | 
			
		||||
 | 
			
		||||
from fdroidserver import _, common, metadata
 | 
			
		||||
 | 
			
		||||
from fdroidserver.exception import VCSException
 | 
			
		||||
 | 
			
		||||
fdroid_summary = 'reset app VCSs to the latest version'
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -4,6 +4,7 @@
 | 
			
		|||
 | 
			
		||||
import os
 | 
			
		||||
from argparse import ArgumentParser
 | 
			
		||||
 | 
			
		||||
from fdroidserver import common
 | 
			
		||||
from fdroidserver.common import FDroidPopen
 | 
			
		||||
from fdroidserver.exception import BuildException
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -4,6 +4,7 @@
 | 
			
		|||
 | 
			
		||||
import os
 | 
			
		||||
from argparse import ArgumentParser
 | 
			
		||||
 | 
			
		||||
from fdroidserver import common
 | 
			
		||||
from fdroidserver.common import FDroidPopen
 | 
			
		||||
from fdroidserver.exception import BuildException
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -4,6 +4,7 @@
 | 
			
		|||
#
 | 
			
		||||
 | 
			
		||||
from argparse import ArgumentParser
 | 
			
		||||
 | 
			
		||||
from fdroidserver import common, index
 | 
			
		||||
 | 
			
		||||
fdroid_summary = 'export the keystore in standard PEM format'
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -8,6 +8,7 @@
 | 
			
		|||
import argparse
 | 
			
		||||
import os
 | 
			
		||||
import pprint
 | 
			
		||||
 | 
			
		||||
from fdroidserver import _, common, metadata
 | 
			
		||||
 | 
			
		||||
fdroid_summary = 'prepare the srclibs for `fdroid build --on-server`'
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,6 +1,7 @@
 | 
			
		|||
#!/usr/bin/env python3
 | 
			
		||||
 | 
			
		||||
from argparse import ArgumentParser
 | 
			
		||||
 | 
			
		||||
from fdroidserver import common
 | 
			
		||||
from fdroidserver.common import FDroidPopen
 | 
			
		||||
from fdroidserver.exception import BuildException
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -3,7 +3,6 @@ import glob
 | 
			
		|||
import os
 | 
			
		||||
import sys
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# support running straight from git and standard installs
 | 
			
		||||
rootpaths = [
 | 
			
		||||
    os.path.realpath(os.path.join(os.path.dirname(__file__), '..')),
 | 
			
		||||
| 
						 | 
				
			
			@ -24,39 +23,52 @@ gettext.textdomain('fdroidserver')
 | 
			
		|||
_ = gettext.gettext
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
from fdroidserver.exception import (FDroidException,
 | 
			
		||||
                                    MetaDataException,
 | 
			
		||||
                                    VerificationException)  # NOQA: E402
 | 
			
		||||
from fdroidserver.exception import (
 | 
			
		||||
    FDroidException,
 | 
			
		||||
    MetaDataException,
 | 
			
		||||
    VerificationException,  # NOQA: E402
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
FDroidException  # NOQA: B101
 | 
			
		||||
MetaDataException  # NOQA: B101
 | 
			
		||||
VerificationException  # NOQA: B101
 | 
			
		||||
 | 
			
		||||
from fdroidserver.common import (verify_apk_signature,
 | 
			
		||||
                                 genkeystore as generate_keystore)  # NOQA: E402
 | 
			
		||||
from fdroidserver.common import genkeystore as generate_keystore  # NOQA: E402
 | 
			
		||||
from fdroidserver.common import verify_apk_signature
 | 
			
		||||
 | 
			
		||||
verify_apk_signature  # NOQA: B101
 | 
			
		||||
generate_keystore  # NOQA: B101
 | 
			
		||||
from fdroidserver.index import (download_repo_index,
 | 
			
		||||
                                download_repo_index_v1,
 | 
			
		||||
                                download_repo_index_v2,
 | 
			
		||||
                                get_mirror_service_urls,
 | 
			
		||||
                                make as make_index)  # NOQA: E402
 | 
			
		||||
from fdroidserver.index import (
 | 
			
		||||
    download_repo_index,
 | 
			
		||||
    download_repo_index_v1,
 | 
			
		||||
    download_repo_index_v2,
 | 
			
		||||
    get_mirror_service_urls,
 | 
			
		||||
)
 | 
			
		||||
from fdroidserver.index import make as make_index  # NOQA: E402
 | 
			
		||||
 | 
			
		||||
download_repo_index  # NOQA: B101
 | 
			
		||||
download_repo_index_v1  # NOQA: B101
 | 
			
		||||
download_repo_index_v2  # NOQA: B101
 | 
			
		||||
get_mirror_service_urls  # NOQA: B101
 | 
			
		||||
make_index  # NOQA: B101
 | 
			
		||||
from fdroidserver.update import (process_apk,
 | 
			
		||||
                                 process_apks,
 | 
			
		||||
                                 scan_apk,
 | 
			
		||||
                                 scan_repo_files)  # NOQA: E402
 | 
			
		||||
from fdroidserver.update import (
 | 
			
		||||
    process_apk,
 | 
			
		||||
    process_apks,
 | 
			
		||||
    scan_apk,
 | 
			
		||||
    scan_repo_files,  # NOQA: E402
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
process_apk  # NOQA: B101
 | 
			
		||||
process_apks  # NOQA: B101
 | 
			
		||||
scan_apk  # NOQA: B101
 | 
			
		||||
scan_repo_files  # NOQA: B101
 | 
			
		||||
from fdroidserver.deploy import (update_awsbucket,
 | 
			
		||||
                                 update_servergitmirrors,
 | 
			
		||||
                                 update_serverwebroots,
 | 
			
		||||
                                 update_serverwebroot)  # NOQA: E402
 | 
			
		||||
from fdroidserver.deploy import (
 | 
			
		||||
    update_awsbucket,
 | 
			
		||||
    update_servergitmirrors,
 | 
			
		||||
    update_serverwebroot,  # NOQA: E402
 | 
			
		||||
    update_serverwebroots,
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
update_awsbucket  # NOQA: B101
 | 
			
		||||
update_servergitmirrors  # NOQA: B101
 | 
			
		||||
update_serverwebroots  # NOQA: B101
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -18,20 +18,20 @@
 | 
			
		|||
# You should have received a copy of the GNU Affero General Public License
 | 
			
		||||
# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
			
		||||
 | 
			
		||||
import re
 | 
			
		||||
import sys
 | 
			
		||||
import importlib.metadata
 | 
			
		||||
import logging
 | 
			
		||||
import os
 | 
			
		||||
import pkgutil
 | 
			
		||||
import logging
 | 
			
		||||
import importlib.metadata
 | 
			
		||||
 | 
			
		||||
import git
 | 
			
		||||
import fdroidserver.common
 | 
			
		||||
import fdroidserver.metadata
 | 
			
		||||
from fdroidserver import _
 | 
			
		||||
import re
 | 
			
		||||
import sys
 | 
			
		||||
from argparse import ArgumentError
 | 
			
		||||
from collections import OrderedDict
 | 
			
		||||
 | 
			
		||||
import git
 | 
			
		||||
 | 
			
		||||
import fdroidserver.common
 | 
			
		||||
import fdroidserver.metadata
 | 
			
		||||
from fdroidserver import _
 | 
			
		||||
 | 
			
		||||
COMMANDS = OrderedDict([
 | 
			
		||||
    ("build", _("Build a package from source")),
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -68,9 +68,18 @@ import struct
 | 
			
		|||
import sys
 | 
			
		||||
import zipfile
 | 
			
		||||
import zlib
 | 
			
		||||
 | 
			
		||||
from collections import namedtuple
 | 
			
		||||
from typing import Any, BinaryIO, Callable, Dict, Iterable, Iterator, Optional, Tuple, Union
 | 
			
		||||
from typing import (
 | 
			
		||||
    Any,
 | 
			
		||||
    BinaryIO,
 | 
			
		||||
    Callable,
 | 
			
		||||
    Dict,
 | 
			
		||||
    Iterable,
 | 
			
		||||
    Iterator,
 | 
			
		||||
    Optional,
 | 
			
		||||
    Tuple,
 | 
			
		||||
    Union,
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
__version__ = "1.1.1"
 | 
			
		||||
NAME = "apksigcopier"
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -28,22 +28,21 @@
 | 
			
		|||
# the F-Droid client.
 | 
			
		||||
 | 
			
		||||
import collections
 | 
			
		||||
import defusedxml.minidom
 | 
			
		||||
import git
 | 
			
		||||
import glob
 | 
			
		||||
import os
 | 
			
		||||
import json
 | 
			
		||||
import logging
 | 
			
		||||
import requests
 | 
			
		||||
import os
 | 
			
		||||
import shutil
 | 
			
		||||
import tempfile
 | 
			
		||||
import zipfile
 | 
			
		||||
from argparse import ArgumentParser
 | 
			
		||||
from typing import Optional
 | 
			
		||||
 | 
			
		||||
from . import _
 | 
			
		||||
from . import common
 | 
			
		||||
from . import deploy
 | 
			
		||||
import defusedxml.minidom
 | 
			
		||||
import git
 | 
			
		||||
import requests
 | 
			
		||||
 | 
			
		||||
from . import _, common, deploy
 | 
			
		||||
from .exception import FDroidException
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -18,31 +18,27 @@
 | 
			
		|||
# You should have received a copy of the GNU Affero General Public License
 | 
			
		||||
# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
			
		||||
 | 
			
		||||
import os
 | 
			
		||||
import shutil
 | 
			
		||||
import argparse
 | 
			
		||||
import glob
 | 
			
		||||
import subprocess
 | 
			
		||||
import logging
 | 
			
		||||
import os
 | 
			
		||||
import posixpath
 | 
			
		||||
import re
 | 
			
		||||
import shutil
 | 
			
		||||
import subprocess
 | 
			
		||||
import tarfile
 | 
			
		||||
import threading
 | 
			
		||||
import traceback
 | 
			
		||||
import time
 | 
			
		||||
import requests
 | 
			
		||||
import tempfile
 | 
			
		||||
import argparse
 | 
			
		||||
import logging
 | 
			
		||||
import threading
 | 
			
		||||
import time
 | 
			
		||||
import traceback
 | 
			
		||||
from gettext import ngettext
 | 
			
		||||
from pathlib import Path
 | 
			
		||||
 | 
			
		||||
from . import _
 | 
			
		||||
from . import common
 | 
			
		||||
from . import net
 | 
			
		||||
from . import metadata
 | 
			
		||||
from . import scanner
 | 
			
		||||
from . import vmtools
 | 
			
		||||
import requests
 | 
			
		||||
 | 
			
		||||
from . import _, common, metadata, net, scanner, vmtools
 | 
			
		||||
from .common import FDroidPopen
 | 
			
		||||
from .exception import FDroidException, BuildException, VCSException
 | 
			
		||||
from .exception import BuildException, FDroidException, VCSException
 | 
			
		||||
 | 
			
		||||
try:
 | 
			
		||||
    import paramiko
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -19,28 +19,30 @@
 | 
			
		|||
# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
			
		||||
 | 
			
		||||
import configparser
 | 
			
		||||
import git
 | 
			
		||||
import copy
 | 
			
		||||
import logging
 | 
			
		||||
import os
 | 
			
		||||
import re
 | 
			
		||||
import urllib.request
 | 
			
		||||
import urllib.error
 | 
			
		||||
import time
 | 
			
		||||
import subprocess
 | 
			
		||||
import sys
 | 
			
		||||
from argparse import ArgumentParser
 | 
			
		||||
import time
 | 
			
		||||
import traceback
 | 
			
		||||
import logging
 | 
			
		||||
import copy
 | 
			
		||||
import urllib.error
 | 
			
		||||
import urllib.parse
 | 
			
		||||
import urllib.request
 | 
			
		||||
from argparse import ArgumentParser
 | 
			
		||||
from pathlib import Path
 | 
			
		||||
from typing import Optional
 | 
			
		||||
 | 
			
		||||
from . import _
 | 
			
		||||
from . import common
 | 
			
		||||
from . import metadata
 | 
			
		||||
from . import net
 | 
			
		||||
from .exception import VCSException, NoSubmodulesException, FDroidException, MetaDataException
 | 
			
		||||
import git
 | 
			
		||||
 | 
			
		||||
from . import _, common, metadata, net
 | 
			
		||||
from .exception import (
 | 
			
		||||
    FDroidException,
 | 
			
		||||
    MetaDataException,
 | 
			
		||||
    NoSubmodulesException,
 | 
			
		||||
    VCSException,
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
# https://gitlab.com/fdroid/checkupdates-runner/-/blob/1861899262a62a4ed08fa24e5449c0368dfb7617/.gitlab-ci.yml#L36
 | 
			
		||||
BOT_EMAIL = 'fdroidci@bubu1.eu'
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -52,54 +52,58 @@ environment variable to include.
 | 
			
		|||
 | 
			
		||||
"""
 | 
			
		||||
 | 
			
		||||
import ast
 | 
			
		||||
import base64
 | 
			
		||||
import copy
 | 
			
		||||
import difflib
 | 
			
		||||
from typing import List
 | 
			
		||||
import filecmp
 | 
			
		||||
import git
 | 
			
		||||
import glob
 | 
			
		||||
import gzip
 | 
			
		||||
import hashlib
 | 
			
		||||
import io
 | 
			
		||||
import itertools
 | 
			
		||||
import json
 | 
			
		||||
import logging
 | 
			
		||||
import operator
 | 
			
		||||
import os
 | 
			
		||||
import sys
 | 
			
		||||
import re
 | 
			
		||||
import ast
 | 
			
		||||
import gzip
 | 
			
		||||
import shutil
 | 
			
		||||
import socket
 | 
			
		||||
import stat
 | 
			
		||||
import subprocess
 | 
			
		||||
import time
 | 
			
		||||
import operator
 | 
			
		||||
import logging
 | 
			
		||||
import hashlib
 | 
			
		||||
import socket
 | 
			
		||||
import base64
 | 
			
		||||
import zipfile
 | 
			
		||||
import sys
 | 
			
		||||
import tempfile
 | 
			
		||||
import json
 | 
			
		||||
from pathlib import Path
 | 
			
		||||
 | 
			
		||||
import defusedxml.ElementTree as XMLElementTree
 | 
			
		||||
 | 
			
		||||
import time
 | 
			
		||||
import zipfile
 | 
			
		||||
from argparse import BooleanOptionalAction
 | 
			
		||||
from asn1crypto import cms
 | 
			
		||||
from base64 import urlsafe_b64encode
 | 
			
		||||
from binascii import hexlify
 | 
			
		||||
from datetime import datetime, timedelta, timezone
 | 
			
		||||
from pathlib import Path
 | 
			
		||||
from queue import Queue
 | 
			
		||||
from typing import List
 | 
			
		||||
from urllib.parse import urlparse, urlsplit, urlunparse
 | 
			
		||||
from zipfile import ZipFile
 | 
			
		||||
 | 
			
		||||
import defusedxml.ElementTree as XMLElementTree
 | 
			
		||||
import git
 | 
			
		||||
from asn1crypto import cms
 | 
			
		||||
 | 
			
		||||
import fdroidserver.metadata
 | 
			
		||||
from fdroidserver import _
 | 
			
		||||
from fdroidserver._yaml import yaml, config_dump
 | 
			
		||||
from fdroidserver.exception import FDroidException, VCSException, NoSubmodulesException, \
 | 
			
		||||
    BuildException, VerificationException, MetaDataException
 | 
			
		||||
from .asynchronousfilereader import AsynchronousFileReader
 | 
			
		||||
from .looseversion import LooseVersion
 | 
			
		||||
from fdroidserver._yaml import config_dump, yaml
 | 
			
		||||
from fdroidserver.exception import (
 | 
			
		||||
    BuildException,
 | 
			
		||||
    FDroidException,
 | 
			
		||||
    MetaDataException,
 | 
			
		||||
    NoSubmodulesException,
 | 
			
		||||
    VCSException,
 | 
			
		||||
    VerificationException,
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
from . import apksigcopier, common
 | 
			
		||||
 | 
			
		||||
from .asynchronousfilereader import AsynchronousFileReader
 | 
			
		||||
from .looseversion import LooseVersion
 | 
			
		||||
 | 
			
		||||
# The path to this fdroidserver distribution
 | 
			
		||||
FDROID_PATH = os.path.realpath(os.path.join(os.path.dirname(__file__), '..'))
 | 
			
		||||
| 
						 | 
				
			
			@ -2904,9 +2908,9 @@ def is_debuggable_or_testOnly(apkfile):
 | 
			
		|||
        return False
 | 
			
		||||
    try:
 | 
			
		||||
        # these were moved in androguard 4.0
 | 
			
		||||
        from androguard.core.axml import AXMLParser, format_value, START_TAG
 | 
			
		||||
        from androguard.core.axml import START_TAG, AXMLParser, format_value
 | 
			
		||||
    except ImportError:
 | 
			
		||||
        from androguard.core.bytecodes.axml import AXMLParser, format_value, START_TAG
 | 
			
		||||
        from androguard.core.bytecodes.axml import START_TAG, AXMLParser, format_value
 | 
			
		||||
    _androguard_logging_level()
 | 
			
		||||
 | 
			
		||||
    with ZipFile(apkfile) as apk:
 | 
			
		||||
| 
						 | 
				
			
			@ -2978,9 +2982,23 @@ def get_apk_id_androguard(apkfile):
 | 
			
		|||
 | 
			
		||||
    try:
 | 
			
		||||
        # these were moved in androguard 4.0
 | 
			
		||||
        from androguard.core.axml import AXMLParser, format_value, START_TAG, END_TAG, TEXT, END_DOCUMENT
 | 
			
		||||
        from androguard.core.axml import (
 | 
			
		||||
            END_DOCUMENT,
 | 
			
		||||
            END_TAG,
 | 
			
		||||
            START_TAG,
 | 
			
		||||
            TEXT,
 | 
			
		||||
            AXMLParser,
 | 
			
		||||
            format_value,
 | 
			
		||||
        )
 | 
			
		||||
    except ImportError:
 | 
			
		||||
        from androguard.core.bytecodes.axml import AXMLParser, format_value, START_TAG, END_TAG, TEXT, END_DOCUMENT
 | 
			
		||||
        from androguard.core.bytecodes.axml import (
 | 
			
		||||
            END_DOCUMENT,
 | 
			
		||||
            END_TAG,
 | 
			
		||||
            START_TAG,
 | 
			
		||||
            TEXT,
 | 
			
		||||
            AXMLParser,
 | 
			
		||||
            format_value,
 | 
			
		||||
        )
 | 
			
		||||
    _androguard_logging_level()
 | 
			
		||||
 | 
			
		||||
    appid = None
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -16,28 +16,28 @@
 | 
			
		|||
# You should have received a copy of the GNU Affero General Public License
 | 
			
		||||
# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
			
		||||
 | 
			
		||||
import sys
 | 
			
		||||
import glob
 | 
			
		||||
import hashlib
 | 
			
		||||
import json
 | 
			
		||||
import logging
 | 
			
		||||
import os
 | 
			
		||||
import pathlib
 | 
			
		||||
import re
 | 
			
		||||
import shutil
 | 
			
		||||
import subprocess
 | 
			
		||||
import sys
 | 
			
		||||
import time
 | 
			
		||||
import urllib
 | 
			
		||||
from typing import Dict, List
 | 
			
		||||
from git import Repo
 | 
			
		||||
import yaml
 | 
			
		||||
from argparse import ArgumentParser
 | 
			
		||||
import logging
 | 
			
		||||
import pathlib
 | 
			
		||||
import shutil
 | 
			
		||||
from typing import Dict, List
 | 
			
		||||
 | 
			
		||||
import git
 | 
			
		||||
import yaml
 | 
			
		||||
from git import Repo
 | 
			
		||||
 | 
			
		||||
import fdroidserver.github
 | 
			
		||||
 | 
			
		||||
from . import _
 | 
			
		||||
from . import common
 | 
			
		||||
from . import index
 | 
			
		||||
from . import _, common, index
 | 
			
		||||
from .exception import FDroidException
 | 
			
		||||
 | 
			
		||||
config = None
 | 
			
		||||
| 
						 | 
				
			
			@ -349,8 +349,8 @@ def update_awsbucket_libcloud(repo_section, is_index_only=False):
 | 
			
		|||
    import libcloud.security
 | 
			
		||||
 | 
			
		||||
    libcloud.security.VERIFY_SSL_CERT = True
 | 
			
		||||
    from libcloud.storage.types import Provider, ContainerDoesNotExistError
 | 
			
		||||
    from libcloud.storage.providers import get_driver
 | 
			
		||||
    from libcloud.storage.types import ContainerDoesNotExistError, Provider
 | 
			
		||||
 | 
			
		||||
    if not config.get('awsaccesskeyid') or not config.get('awssecretkey'):
 | 
			
		||||
        raise FDroidException(
 | 
			
		||||
| 
						 | 
				
			
			@ -854,9 +854,10 @@ def upload_to_android_observatory(repo_section):
 | 
			
		|||
def upload_apk_to_android_observatory(path):
 | 
			
		||||
    # depend on requests and lxml only if users enable AO
 | 
			
		||||
    import requests
 | 
			
		||||
    from . import net
 | 
			
		||||
    from lxml.html import fromstring
 | 
			
		||||
 | 
			
		||||
    from . import net
 | 
			
		||||
 | 
			
		||||
    apkfilename = os.path.basename(path)
 | 
			
		||||
    r = requests.post(
 | 
			
		||||
        'https://androidobservatory.org/',
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -18,8 +18,8 @@
 | 
			
		|||
 | 
			
		||||
import json
 | 
			
		||||
import pathlib
 | 
			
		||||
import urllib.request
 | 
			
		||||
import urllib.parse
 | 
			
		||||
import urllib.request
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class GithubApi:
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -16,14 +16,13 @@
 | 
			
		|||
# You should have received a copy of the GNU Affero General Public License
 | 
			
		||||
# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
			
		||||
 | 
			
		||||
import os
 | 
			
		||||
import glob
 | 
			
		||||
from argparse import ArgumentParser
 | 
			
		||||
import logging
 | 
			
		||||
import os
 | 
			
		||||
import time
 | 
			
		||||
from argparse import ArgumentParser
 | 
			
		||||
 | 
			
		||||
from . import _
 | 
			
		||||
from . import common
 | 
			
		||||
from . import _, common
 | 
			
		||||
from .common import FDroidPopen
 | 
			
		||||
from .exception import FDroidException
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -30,6 +30,7 @@ these installed on the signing server.
 | 
			
		|||
 | 
			
		||||
"""
 | 
			
		||||
 | 
			
		||||
import calendar
 | 
			
		||||
import collections
 | 
			
		||||
import hashlib
 | 
			
		||||
import json
 | 
			
		||||
| 
						 | 
				
			
			@ -41,20 +42,27 @@ import sys
 | 
			
		|||
import tempfile
 | 
			
		||||
import urllib.parse
 | 
			
		||||
import zipfile
 | 
			
		||||
import calendar
 | 
			
		||||
from binascii import hexlify, unhexlify
 | 
			
		||||
from datetime import datetime, timezone
 | 
			
		||||
from pathlib import Path
 | 
			
		||||
from xml.dom.minidom import Document
 | 
			
		||||
 | 
			
		||||
from . import _
 | 
			
		||||
from . import common
 | 
			
		||||
from . import metadata
 | 
			
		||||
from . import signindex
 | 
			
		||||
from fdroidserver.common import ANTIFEATURES_CONFIG_NAME, CATEGORIES_CONFIG_NAME, CONFIG_CONFIG_NAME, MIRRORS_CONFIG_NAME, RELEASECHANNELS_CONFIG_NAME, DEFAULT_LOCALE, FDroidPopen, FDroidPopenBytes, load_publish_signer_fingerprints
 | 
			
		||||
from fdroidserver._yaml import yaml
 | 
			
		||||
from fdroidserver.common import (
 | 
			
		||||
    ANTIFEATURES_CONFIG_NAME,
 | 
			
		||||
    CATEGORIES_CONFIG_NAME,
 | 
			
		||||
    CONFIG_CONFIG_NAME,
 | 
			
		||||
    DEFAULT_LOCALE,
 | 
			
		||||
    MIRRORS_CONFIG_NAME,
 | 
			
		||||
    RELEASECHANNELS_CONFIG_NAME,
 | 
			
		||||
    FDroidPopen,
 | 
			
		||||
    FDroidPopenBytes,
 | 
			
		||||
    load_publish_signer_fingerprints,
 | 
			
		||||
)
 | 
			
		||||
from fdroidserver.exception import FDroidException, VerificationException
 | 
			
		||||
 | 
			
		||||
from . import _, common, metadata, signindex
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def make(apps, apks, repodir, archive):
 | 
			
		||||
    """Generate the repo index files.
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -19,16 +19,15 @@
 | 
			
		|||
# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
			
		||||
 | 
			
		||||
import glob
 | 
			
		||||
import logging
 | 
			
		||||
import os
 | 
			
		||||
import re
 | 
			
		||||
import shutil
 | 
			
		||||
import socket
 | 
			
		||||
import sys
 | 
			
		||||
from argparse import ArgumentParser
 | 
			
		||||
import logging
 | 
			
		||||
 | 
			
		||||
from . import _
 | 
			
		||||
from . import common
 | 
			
		||||
from . import _, common
 | 
			
		||||
from .exception import FDroidException
 | 
			
		||||
 | 
			
		||||
config = {}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -17,24 +17,21 @@
 | 
			
		|||
# You should have received a copy of the GNU Affero General Public License
 | 
			
		||||
# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
			
		||||
 | 
			
		||||
import sys
 | 
			
		||||
import os
 | 
			
		||||
import glob
 | 
			
		||||
import locale
 | 
			
		||||
import logging
 | 
			
		||||
import os
 | 
			
		||||
import sys
 | 
			
		||||
import termios
 | 
			
		||||
import tty
 | 
			
		||||
 | 
			
		||||
import defusedxml.ElementTree as XMLElementTree
 | 
			
		||||
 | 
			
		||||
from argparse import ArgumentParser, BooleanOptionalAction
 | 
			
		||||
from pathlib import Path
 | 
			
		||||
from urllib.parse import urlencode, urlparse, urlunparse
 | 
			
		||||
 | 
			
		||||
from . import _
 | 
			
		||||
from . import common, github, index, net
 | 
			
		||||
from .exception import FDroidException
 | 
			
		||||
import defusedxml.ElementTree as XMLElementTree
 | 
			
		||||
 | 
			
		||||
from . import _, common, github, index, net
 | 
			
		||||
from .exception import FDroidException
 | 
			
		||||
 | 
			
		||||
DEFAULT_IPFS_GATEWAYS = ("https://gateway.ipfs.io/ipfs/",)
 | 
			
		||||
MAVEN_CENTRAL_MIRRORS = [
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -24,9 +24,10 @@ import urllib.parse
 | 
			
		|||
from argparse import ArgumentParser
 | 
			
		||||
from pathlib import Path
 | 
			
		||||
 | 
			
		||||
from . import _, common, metadata, rewritemeta
 | 
			
		||||
from fdroidserver._yaml import yaml
 | 
			
		||||
 | 
			
		||||
from . import _, common, metadata, rewritemeta
 | 
			
		||||
 | 
			
		||||
config = None
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -18,19 +18,19 @@
 | 
			
		|||
# You should have received a copy of the GNU Affero General Public License
 | 
			
		||||
# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
			
		||||
 | 
			
		||||
from pathlib import Path
 | 
			
		||||
import math
 | 
			
		||||
import platform
 | 
			
		||||
import os
 | 
			
		||||
import re
 | 
			
		||||
import logging
 | 
			
		||||
import ruamel.yaml
 | 
			
		||||
import math
 | 
			
		||||
import os
 | 
			
		||||
import platform
 | 
			
		||||
import re
 | 
			
		||||
from collections import OrderedDict
 | 
			
		||||
from pathlib import Path
 | 
			
		||||
 | 
			
		||||
from . import common
 | 
			
		||||
from . import _
 | 
			
		||||
from .exception import MetaDataException
 | 
			
		||||
import ruamel.yaml
 | 
			
		||||
 | 
			
		||||
from . import _, common
 | 
			
		||||
from ._yaml import yaml
 | 
			
		||||
from .exception import MetaDataException
 | 
			
		||||
 | 
			
		||||
srclibs = None
 | 
			
		||||
warnings_action = None
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -7,13 +7,10 @@ import posixpath
 | 
			
		|||
import socket
 | 
			
		||||
import subprocess
 | 
			
		||||
import sys
 | 
			
		||||
from argparse import ArgumentParser
 | 
			
		||||
import urllib.parse
 | 
			
		||||
from argparse import ArgumentParser
 | 
			
		||||
 | 
			
		||||
from . import _
 | 
			
		||||
from . import common
 | 
			
		||||
from . import index
 | 
			
		||||
from . import update
 | 
			
		||||
from . import _, common, index, update
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def _run_wget(path, urls, verbose=False):
 | 
			
		||||
| 
						 | 
				
			
			@ -133,6 +130,7 @@ def main():
 | 
			
		|||
            import io
 | 
			
		||||
            import json
 | 
			
		||||
            import zipfile
 | 
			
		||||
 | 
			
		||||
            from . import net
 | 
			
		||||
 | 
			
		||||
            url = _append_to_url_path(section, 'index-v1.jar')
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -21,10 +21,11 @@ import copy
 | 
			
		|||
import logging
 | 
			
		||||
import os
 | 
			
		||||
import random
 | 
			
		||||
import requests
 | 
			
		||||
import tempfile
 | 
			
		||||
import time
 | 
			
		||||
import urllib
 | 
			
		||||
 | 
			
		||||
import requests
 | 
			
		||||
import urllib3
 | 
			
		||||
from requests.adapters import HTTPAdapter, Retry
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -19,25 +19,25 @@
 | 
			
		|||
 | 
			
		||||
import base64
 | 
			
		||||
import datetime
 | 
			
		||||
import git
 | 
			
		||||
import hashlib
 | 
			
		||||
import inspect
 | 
			
		||||
import logging
 | 
			
		||||
import os
 | 
			
		||||
import paramiko
 | 
			
		||||
import platform
 | 
			
		||||
import shutil
 | 
			
		||||
import ssl
 | 
			
		||||
import subprocess
 | 
			
		||||
import sys
 | 
			
		||||
import tempfile
 | 
			
		||||
import yaml
 | 
			
		||||
from urllib.parse import urlparse
 | 
			
		||||
from argparse import ArgumentParser
 | 
			
		||||
from typing import Optional
 | 
			
		||||
from urllib.parse import urlparse
 | 
			
		||||
 | 
			
		||||
from . import _
 | 
			
		||||
from . import common
 | 
			
		||||
import git
 | 
			
		||||
import paramiko
 | 
			
		||||
import yaml
 | 
			
		||||
 | 
			
		||||
from . import _, common
 | 
			
		||||
from .exception import VCSException
 | 
			
		||||
 | 
			
		||||
# hard coded defaults for Android ~/.android/debug.keystore files
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -28,23 +28,21 @@ mostly reports success by moving an APK from unsigned/ to repo/
 | 
			
		|||
 | 
			
		||||
"""
 | 
			
		||||
 | 
			
		||||
import sys
 | 
			
		||||
import glob
 | 
			
		||||
import hashlib
 | 
			
		||||
import json
 | 
			
		||||
import logging
 | 
			
		||||
import os
 | 
			
		||||
import re
 | 
			
		||||
import shutil
 | 
			
		||||
import glob
 | 
			
		||||
import hashlib
 | 
			
		||||
from argparse import ArgumentParser
 | 
			
		||||
from collections import OrderedDict
 | 
			
		||||
import logging
 | 
			
		||||
from gettext import ngettext
 | 
			
		||||
import json
 | 
			
		||||
import sys
 | 
			
		||||
import time
 | 
			
		||||
import zipfile
 | 
			
		||||
from argparse import ArgumentParser
 | 
			
		||||
from collections import OrderedDict
 | 
			
		||||
from gettext import ngettext
 | 
			
		||||
 | 
			
		||||
from . import _
 | 
			
		||||
from . import common
 | 
			
		||||
from . import metadata
 | 
			
		||||
from . import _, common, metadata
 | 
			
		||||
from .common import FDroidPopen
 | 
			
		||||
from .exception import BuildException, FDroidException
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -17,8 +17,8 @@
 | 
			
		|||
# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
			
		||||
 | 
			
		||||
from argparse import ArgumentParser
 | 
			
		||||
from . import common
 | 
			
		||||
from . import metadata
 | 
			
		||||
 | 
			
		||||
from . import common, metadata
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def main():
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -17,16 +17,14 @@
 | 
			
		|||
# You should have received a copy of the GNU Affero General Public License
 | 
			
		||||
# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
			
		||||
 | 
			
		||||
from argparse import ArgumentParser
 | 
			
		||||
import logging
 | 
			
		||||
import io
 | 
			
		||||
import tempfile
 | 
			
		||||
import logging
 | 
			
		||||
import shutil
 | 
			
		||||
import tempfile
 | 
			
		||||
from argparse import ArgumentParser
 | 
			
		||||
from pathlib import Path
 | 
			
		||||
 | 
			
		||||
from . import _
 | 
			
		||||
from . import common
 | 
			
		||||
from . import metadata
 | 
			
		||||
from . import _, common, metadata
 | 
			
		||||
 | 
			
		||||
config = None
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -15,15 +15,13 @@
 | 
			
		|||
# You should have received a copy of the GNU Affero General Public License
 | 
			
		||||
# along with this program.  If not, see <https://www.gnu.org/licenses/>.
 | 
			
		||||
 | 
			
		||||
import logging
 | 
			
		||||
import os
 | 
			
		||||
import re
 | 
			
		||||
import sys
 | 
			
		||||
from argparse import ArgumentParser
 | 
			
		||||
 | 
			
		||||
import re
 | 
			
		||||
import os
 | 
			
		||||
import sys
 | 
			
		||||
import logging
 | 
			
		||||
 | 
			
		||||
from . import _
 | 
			
		||||
from . import common
 | 
			
		||||
from . import _, common
 | 
			
		||||
from .exception import FDroidException
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -17,15 +17,13 @@
 | 
			
		|||
# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
			
		||||
 | 
			
		||||
import json
 | 
			
		||||
import logging
 | 
			
		||||
import os
 | 
			
		||||
import time
 | 
			
		||||
import zipfile
 | 
			
		||||
from argparse import ArgumentParser
 | 
			
		||||
import logging
 | 
			
		||||
 | 
			
		||||
from . import _
 | 
			
		||||
from . import common
 | 
			
		||||
from . import metadata
 | 
			
		||||
from . import _, common, metadata
 | 
			
		||||
from .exception import FDroidException
 | 
			
		||||
 | 
			
		||||
config = None
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -28,8 +28,8 @@ Example
 | 
			
		|||
 | 
			
		||||
import os
 | 
			
		||||
import sys
 | 
			
		||||
import time
 | 
			
		||||
import threading
 | 
			
		||||
import time
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class Tail(object):
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -20,26 +20,27 @@
 | 
			
		|||
# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
			
		||||
 | 
			
		||||
import argparse
 | 
			
		||||
import copy
 | 
			
		||||
import filecmp
 | 
			
		||||
import sys
 | 
			
		||||
import os
 | 
			
		||||
import shutil
 | 
			
		||||
import glob
 | 
			
		||||
import logging
 | 
			
		||||
import re
 | 
			
		||||
import socket
 | 
			
		||||
import warnings
 | 
			
		||||
import zipfile
 | 
			
		||||
import hashlib
 | 
			
		||||
import json
 | 
			
		||||
import logging
 | 
			
		||||
import os
 | 
			
		||||
import re
 | 
			
		||||
import shutil
 | 
			
		||||
import socket
 | 
			
		||||
import sys
 | 
			
		||||
import time
 | 
			
		||||
import yaml
 | 
			
		||||
import copy
 | 
			
		||||
import warnings
 | 
			
		||||
import zipfile
 | 
			
		||||
from argparse import ArgumentParser
 | 
			
		||||
from datetime import datetime, timezone
 | 
			
		||||
from pathlib import Path
 | 
			
		||||
 | 
			
		||||
import asn1crypto.cms
 | 
			
		||||
import defusedxml.ElementTree as ElementTree
 | 
			
		||||
from datetime import datetime, timezone
 | 
			
		||||
from argparse import ArgumentParser
 | 
			
		||||
from pathlib import Path
 | 
			
		||||
import yaml
 | 
			
		||||
 | 
			
		||||
try:
 | 
			
		||||
    from yaml import CSafeLoader as SafeLoader
 | 
			
		||||
| 
						 | 
				
			
			@ -49,14 +50,13 @@ except ImportError:
 | 
			
		|||
import collections
 | 
			
		||||
from binascii import hexlify
 | 
			
		||||
 | 
			
		||||
from . import _
 | 
			
		||||
from . import common
 | 
			
		||||
from . import metadata
 | 
			
		||||
from .common import DEFAULT_LOCALE
 | 
			
		||||
from .exception import BuildException, FDroidException, VerificationException
 | 
			
		||||
from PIL import Image, PngImagePlugin
 | 
			
		||||
 | 
			
		||||
import fdroidserver.index
 | 
			
		||||
 | 
			
		||||
from PIL import Image, PngImagePlugin
 | 
			
		||||
from . import _, common, metadata
 | 
			
		||||
from .common import DEFAULT_LOCALE
 | 
			
		||||
from .exception import BuildException, FDroidException, VerificationException
 | 
			
		||||
 | 
			
		||||
if hasattr(Image, 'DecompressionBombWarning'):
 | 
			
		||||
    warnings.simplefilter('error', Image.DecompressionBombWarning)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -16,18 +16,17 @@
 | 
			
		|||
# You should have received a copy of the GNU Affero General Public License
 | 
			
		||||
# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
			
		||||
 | 
			
		||||
import sys
 | 
			
		||||
import os
 | 
			
		||||
import glob
 | 
			
		||||
import json
 | 
			
		||||
import logging
 | 
			
		||||
import requests
 | 
			
		||||
import os
 | 
			
		||||
import sys
 | 
			
		||||
from argparse import ArgumentParser
 | 
			
		||||
from collections import OrderedDict
 | 
			
		||||
 | 
			
		||||
from . import _
 | 
			
		||||
from . import common
 | 
			
		||||
from . import net
 | 
			
		||||
import requests
 | 
			
		||||
 | 
			
		||||
from . import _, common, net
 | 
			
		||||
from .exception import FDroidException
 | 
			
		||||
 | 
			
		||||
config = None
 | 
			
		||||
| 
						 | 
				
			
			@ -58,8 +57,8 @@ def _add_diffoscope_info(d):
 | 
			
		|||
        ]
 | 
			
		||||
        d['diffoscope']['External-Tools-Required'] = external_tools
 | 
			
		||||
 | 
			
		||||
        from diffoscope.tools import OS_NAMES, get_current_os
 | 
			
		||||
        from diffoscope.external_tools import EXTERNAL_TOOLS
 | 
			
		||||
        from diffoscope.tools import OS_NAMES, get_current_os
 | 
			
		||||
 | 
			
		||||
        current_os = get_current_os()
 | 
			
		||||
        os_list = [current_os] if (current_os in OS_NAMES) else iter(OS_NAMES)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -16,16 +16,16 @@
 | 
			
		|||
# You should have received a copy of the GNU Affero General Public License
 | 
			
		||||
# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
			
		||||
 | 
			
		||||
from os.path import isdir, isfile, basename, abspath, expanduser
 | 
			
		||||
import os
 | 
			
		||||
import json
 | 
			
		||||
import logging
 | 
			
		||||
import os
 | 
			
		||||
import shutil
 | 
			
		||||
import subprocess
 | 
			
		||||
import textwrap
 | 
			
		||||
import logging
 | 
			
		||||
from .common import FDroidException
 | 
			
		||||
 | 
			
		||||
import threading
 | 
			
		||||
from os.path import abspath, basename, expanduser, isdir, isfile
 | 
			
		||||
 | 
			
		||||
from .common import FDroidException
 | 
			
		||||
 | 
			
		||||
lock = threading.Lock()
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -2,13 +2,13 @@
 | 
			
		|||
#
 | 
			
		||||
# add completed translations from weblate to MANIFEST.in
 | 
			
		||||
 | 
			
		||||
import git
 | 
			
		||||
import json
 | 
			
		||||
import os
 | 
			
		||||
import re
 | 
			
		||||
import requests
 | 
			
		||||
import subprocess
 | 
			
		||||
 | 
			
		||||
import git
 | 
			
		||||
import requests
 | 
			
		||||
 | 
			
		||||
projectbasedir = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
 | 
			
		||||
localedir = os.path.join(projectbasedir, 'locale')
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -25,7 +25,6 @@ import sys
 | 
			
		|||
from argparse import ArgumentParser
 | 
			
		||||
 | 
			
		||||
import git
 | 
			
		||||
 | 
			
		||||
import yaml
 | 
			
		||||
 | 
			
		||||
localmodule = os.path.realpath(
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -4,12 +4,12 @@
 | 
			
		|||
# that run in the buildserver setup.  It is not really maintained, but
 | 
			
		||||
# is still here as a kind of reference.
 | 
			
		||||
 | 
			
		||||
import inspect
 | 
			
		||||
import logging
 | 
			
		||||
import os
 | 
			
		||||
import sys
 | 
			
		||||
import logging
 | 
			
		||||
import textwrap
 | 
			
		||||
import tempfile
 | 
			
		||||
import inspect
 | 
			
		||||
import textwrap
 | 
			
		||||
from argparse import ArgumentParser
 | 
			
		||||
 | 
			
		||||
localmodule = os.path.realpath(
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -5,11 +5,12 @@
 | 
			
		|||
import collections
 | 
			
		||||
import os
 | 
			
		||||
import re
 | 
			
		||||
import requests
 | 
			
		||||
import requests_cache
 | 
			
		||||
import sys
 | 
			
		||||
import tempfile
 | 
			
		||||
 | 
			
		||||
import requests
 | 
			
		||||
import requests_cache
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def main():
 | 
			
		||||
    # we want all the data
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -2,13 +2,13 @@
 | 
			
		|||
 | 
			
		||||
import os
 | 
			
		||||
import re
 | 
			
		||||
import requests
 | 
			
		||||
import subprocess
 | 
			
		||||
import sys
 | 
			
		||||
 | 
			
		||||
import requests
 | 
			
		||||
from colorama import Fore, Style
 | 
			
		||||
from packaging.version import Version
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
checksums = None
 | 
			
		||||
versions = dict()
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,9 +1,10 @@
 | 
			
		|||
#!/usr/bin/env python3
 | 
			
		||||
 | 
			
		||||
import os
 | 
			
		||||
import fdroidserver
 | 
			
		||||
import shutil
 | 
			
		||||
import sys
 | 
			
		||||
 | 
			
		||||
import fdroidserver
 | 
			
		||||
from fdroidserver import common, nightly
 | 
			
		||||
 | 
			
		||||
if os.getenv('CI') is None:
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -6,6 +6,7 @@
 | 
			
		|||
# This is used in update.has_known_vulnerability()
 | 
			
		||||
 | 
			
		||||
import re
 | 
			
		||||
 | 
			
		||||
import requests
 | 
			
		||||
 | 
			
		||||
# this list was generated using:
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -20,10 +20,8 @@ import sys
 | 
			
		|||
import tempfile
 | 
			
		||||
import unittest
 | 
			
		||||
import unittest.mock
 | 
			
		||||
 | 
			
		||||
from pathlib import Path
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
GP_FINGERPRINT = 'B7C2EEFD8DAC7806AF67DFCD92EB18126BC08312A7F2D6F3862E46013C7A6135'
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -8,8 +8,8 @@ from unittest import mock
 | 
			
		|||
 | 
			
		||||
import fdroidserver
 | 
			
		||||
from fdroidserver import common, signindex
 | 
			
		||||
from .shared_test_code import GP_FINGERPRINT, mkdtemp
 | 
			
		||||
 | 
			
		||||
from .shared_test_code import GP_FINGERPRINT, mkdtemp
 | 
			
		||||
 | 
			
		||||
basedir = Path(__file__).parent
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -6,15 +6,16 @@ import sys
 | 
			
		|||
import tempfile
 | 
			
		||||
import textwrap
 | 
			
		||||
import unittest
 | 
			
		||||
import yaml
 | 
			
		||||
from pathlib import Path
 | 
			
		||||
from unittest import mock
 | 
			
		||||
 | 
			
		||||
from .shared_test_code import TmpCwd, mkdtemp
 | 
			
		||||
import yaml
 | 
			
		||||
 | 
			
		||||
import fdroidserver.build
 | 
			
		||||
import fdroidserver.common
 | 
			
		||||
 | 
			
		||||
from .shared_test_code import TmpCwd, mkdtemp
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class FakeProcess:
 | 
			
		||||
    output = 'fake output'
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,19 +1,19 @@
 | 
			
		|||
#!/usr/bin/env python3
 | 
			
		||||
 | 
			
		||||
import git
 | 
			
		||||
import os
 | 
			
		||||
import platform
 | 
			
		||||
import shutil
 | 
			
		||||
import tempfile
 | 
			
		||||
import time
 | 
			
		||||
import unittest
 | 
			
		||||
from unittest import mock
 | 
			
		||||
from pathlib import Path
 | 
			
		||||
from unittest import mock
 | 
			
		||||
 | 
			
		||||
import git
 | 
			
		||||
 | 
			
		||||
import fdroidserver
 | 
			
		||||
import fdroidserver.checkupdates
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
basedir = Path(__file__).parent
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,40 +1,44 @@
 | 
			
		|||
#!/usr/bin/env python3
 | 
			
		||||
 | 
			
		||||
import difflib
 | 
			
		||||
import git
 | 
			
		||||
import glob
 | 
			
		||||
import gzip
 | 
			
		||||
import importlib
 | 
			
		||||
import json
 | 
			
		||||
import logging
 | 
			
		||||
import os
 | 
			
		||||
import re
 | 
			
		||||
import ruamel.yaml
 | 
			
		||||
import shutil
 | 
			
		||||
import subprocess
 | 
			
		||||
import sys
 | 
			
		||||
import tempfile
 | 
			
		||||
import textwrap
 | 
			
		||||
import time
 | 
			
		||||
import unittest
 | 
			
		||||
import textwrap
 | 
			
		||||
import gzip
 | 
			
		||||
from argparse import ArgumentParser
 | 
			
		||||
from datetime import datetime, timezone
 | 
			
		||||
from zipfile import BadZipFile, ZipFile
 | 
			
		||||
from unittest import mock
 | 
			
		||||
from pathlib import Path
 | 
			
		||||
from unittest import mock
 | 
			
		||||
from zipfile import BadZipFile, ZipFile
 | 
			
		||||
 | 
			
		||||
import git
 | 
			
		||||
import ruamel.yaml
 | 
			
		||||
 | 
			
		||||
import fdroidserver
 | 
			
		||||
import fdroidserver.signindex
 | 
			
		||||
import fdroidserver.common
 | 
			
		||||
import fdroidserver.metadata
 | 
			
		||||
from .shared_test_code import TmpCwd, mkdtemp, mkdir_testfiles
 | 
			
		||||
import fdroidserver.signindex
 | 
			
		||||
from fdroidserver._yaml import config_dump, yaml, yaml_dumper
 | 
			
		||||
from fdroidserver.common import ANTIFEATURES_CONFIG_NAME, CATEGORIES_CONFIG_NAME
 | 
			
		||||
from fdroidserver._yaml import yaml, yaml_dumper, config_dump
 | 
			
		||||
from fdroidserver.exception import FDroidException, VCSException,\
 | 
			
		||||
    MetaDataException, VerificationException
 | 
			
		||||
from fdroidserver.exception import (
 | 
			
		||||
    FDroidException,
 | 
			
		||||
    MetaDataException,
 | 
			
		||||
    VCSException,
 | 
			
		||||
    VerificationException,
 | 
			
		||||
)
 | 
			
		||||
from fdroidserver.looseversion import LooseVersion
 | 
			
		||||
 | 
			
		||||
from .shared_test_code import TmpCwd, mkdir_testfiles, mkdtemp
 | 
			
		||||
 | 
			
		||||
basedir = Path(__file__).parent
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -2415,9 +2419,10 @@ class CommonTest(SetUpTearDownMixin, unittest.TestCase):
 | 
			
		|||
    @mock.patch('sdkmanager._generate_package_xml', lambda a, b, c: None)
 | 
			
		||||
    def test_auto_install_ndk_mock_dl(self):
 | 
			
		||||
        """Test NDK installs by actually calling sdkmanager"""
 | 
			
		||||
        import sdkmanager
 | 
			
		||||
        import importlib.metadata
 | 
			
		||||
 | 
			
		||||
        import sdkmanager
 | 
			
		||||
 | 
			
		||||
        sdkmanager_version = LooseVersion(importlib.metadata.version('sdkmanager'))
 | 
			
		||||
        if sdkmanager_version < LooseVersion('0.6.4'):
 | 
			
		||||
            raise unittest.SkipTest('needs fdroid sdkmanager >= 0.6.4')
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -11,7 +11,8 @@ from unittest import mock
 | 
			
		|||
import git
 | 
			
		||||
 | 
			
		||||
import fdroidserver
 | 
			
		||||
from .shared_test_code import TmpCwd, mkdtemp, VerboseFalseOptions
 | 
			
		||||
 | 
			
		||||
from .shared_test_code import TmpCwd, VerboseFalseOptions, mkdtemp
 | 
			
		||||
 | 
			
		||||
basedir = Path(__file__).parent
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,6 +1,7 @@
 | 
			
		|||
#!/usr/bin/env python3
 | 
			
		||||
 | 
			
		||||
import unittest
 | 
			
		||||
 | 
			
		||||
import fdroidserver
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -3,9 +3,10 @@
 | 
			
		|||
import unittest
 | 
			
		||||
import unittest.mock
 | 
			
		||||
 | 
			
		||||
from .shared_test_code import mock_urlopen
 | 
			
		||||
import fdroidserver
 | 
			
		||||
 | 
			
		||||
from .shared_test_code import mock_urlopen
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class GithubApiTest(unittest.TestCase):
 | 
			
		||||
    def test__init(self):
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -5,11 +5,11 @@ import os
 | 
			
		|||
import shutil
 | 
			
		||||
import tempfile
 | 
			
		||||
import unittest
 | 
			
		||||
 | 
			
		||||
from fdroidserver import common, gpgsign
 | 
			
		||||
from pathlib import Path
 | 
			
		||||
from unittest.mock import MagicMock, patch
 | 
			
		||||
 | 
			
		||||
from fdroidserver import common, gpgsign
 | 
			
		||||
 | 
			
		||||
basedir = Path(__file__).parent
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -13,11 +13,11 @@ import git
 | 
			
		|||
import requests
 | 
			
		||||
import yaml
 | 
			
		||||
 | 
			
		||||
from .shared_test_code import TmpCwd, mkdtemp, VerboseFalseOptions
 | 
			
		||||
 | 
			
		||||
import fdroidserver
 | 
			
		||||
import fdroidserver.import_subcommand
 | 
			
		||||
 | 
			
		||||
from .shared_test_code import TmpCwd, VerboseFalseOptions, mkdtemp
 | 
			
		||||
 | 
			
		||||
basedir = Path(__file__).parent
 | 
			
		||||
logging.basicConfig(level=logging.DEBUG)
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -3,21 +3,22 @@
 | 
			
		|||
import copy
 | 
			
		||||
import datetime
 | 
			
		||||
import glob
 | 
			
		||||
import os
 | 
			
		||||
import unittest
 | 
			
		||||
from pathlib import Path
 | 
			
		||||
import yaml
 | 
			
		||||
import zipfile
 | 
			
		||||
from unittest.mock import patch
 | 
			
		||||
import requests
 | 
			
		||||
import tempfile
 | 
			
		||||
import json
 | 
			
		||||
import os
 | 
			
		||||
import shutil
 | 
			
		||||
import tempfile
 | 
			
		||||
import unittest
 | 
			
		||||
import zipfile
 | 
			
		||||
from pathlib import Path
 | 
			
		||||
from unittest.mock import patch
 | 
			
		||||
 | 
			
		||||
import requests
 | 
			
		||||
import yaml
 | 
			
		||||
 | 
			
		||||
import fdroidserver
 | 
			
		||||
from fdroidserver import common, index, publish, signindex, update
 | 
			
		||||
from .shared_test_code import GP_FINGERPRINT, TmpCwd, mkdtemp
 | 
			
		||||
 | 
			
		||||
from .shared_test_code import GP_FINGERPRINT, TmpCwd, mkdtemp
 | 
			
		||||
 | 
			
		||||
basedir = Path(__file__).parent
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -8,6 +8,7 @@ import unittest
 | 
			
		|||
 | 
			
		||||
import fdroidserver.common
 | 
			
		||||
import fdroidserver.init
 | 
			
		||||
 | 
			
		||||
from .shared_test_code import mkdtemp
 | 
			
		||||
 | 
			
		||||
basedir = pathlib.Path(__file__).parent
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -3,7 +3,6 @@
 | 
			
		|||
import os
 | 
			
		||||
import textwrap
 | 
			
		||||
import unittest
 | 
			
		||||
 | 
			
		||||
from pathlib import Path
 | 
			
		||||
from unittest.mock import Mock, patch
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -18,6 +18,7 @@ except ModuleNotFoundError:
 | 
			
		|||
    from androguard.core.apk import get_apkid
 | 
			
		||||
 | 
			
		||||
from fdroidserver._yaml import yaml, yaml_dumper
 | 
			
		||||
 | 
			
		||||
from .shared_test_code import mkdir_testfiles
 | 
			
		||||
 | 
			
		||||
# TODO: port generic tests that use index.xml to index-v2 (test that
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -9,13 +9,13 @@ import unittest
 | 
			
		|||
from pathlib import Path
 | 
			
		||||
from unittest import mock
 | 
			
		||||
 | 
			
		||||
from .shared_test_code import mkdtemp
 | 
			
		||||
 | 
			
		||||
import fdroidserver.common
 | 
			
		||||
import fdroidserver.lint
 | 
			
		||||
import fdroidserver.metadata
 | 
			
		||||
from fdroidserver._yaml import config_dump
 | 
			
		||||
 | 
			
		||||
from .shared_test_code import mkdtemp
 | 
			
		||||
 | 
			
		||||
basedir = Path(__file__).parent
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -2,12 +2,13 @@
 | 
			
		|||
 | 
			
		||||
import os
 | 
			
		||||
import pkgutil
 | 
			
		||||
import tempfile
 | 
			
		||||
import textwrap
 | 
			
		||||
import unittest
 | 
			
		||||
import tempfile
 | 
			
		||||
from unittest import mock
 | 
			
		||||
 | 
			
		||||
import fdroidserver.__main__
 | 
			
		||||
 | 
			
		||||
from .shared_test_code import TmpCwd, TmpPyPath
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -4,22 +4,23 @@ import copy
 | 
			
		|||
import io
 | 
			
		||||
import os
 | 
			
		||||
import random
 | 
			
		||||
import ruamel.yaml
 | 
			
		||||
import shutil
 | 
			
		||||
import unittest
 | 
			
		||||
import tempfile
 | 
			
		||||
import textwrap
 | 
			
		||||
import unittest
 | 
			
		||||
from collections import OrderedDict
 | 
			
		||||
from pathlib import Path
 | 
			
		||||
from unittest import mock
 | 
			
		||||
 | 
			
		||||
import ruamel.yaml
 | 
			
		||||
 | 
			
		||||
import fdroidserver
 | 
			
		||||
from fdroidserver import metadata
 | 
			
		||||
from fdroidserver.exception import MetaDataException
 | 
			
		||||
from fdroidserver.common import DEFAULT_LOCALE
 | 
			
		||||
from fdroidserver._yaml import yaml
 | 
			
		||||
from .shared_test_code import TmpCwd, mkdtemp
 | 
			
		||||
from fdroidserver.common import DEFAULT_LOCALE
 | 
			
		||||
from fdroidserver.exception import MetaDataException
 | 
			
		||||
 | 
			
		||||
from .shared_test_code import TmpCwd, mkdtemp
 | 
			
		||||
 | 
			
		||||
basedir = Path(__file__).parent
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -2,16 +2,17 @@
 | 
			
		|||
 | 
			
		||||
import os
 | 
			
		||||
import random
 | 
			
		||||
import requests
 | 
			
		||||
import socket
 | 
			
		||||
import tempfile
 | 
			
		||||
import threading
 | 
			
		||||
import time
 | 
			
		||||
import unittest
 | 
			
		||||
from pathlib import Path
 | 
			
		||||
from unittest.mock import MagicMock, patch
 | 
			
		||||
 | 
			
		||||
import requests
 | 
			
		||||
 | 
			
		||||
from fdroidserver import net
 | 
			
		||||
from pathlib import Path
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class RetryServer:
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -2,19 +2,18 @@
 | 
			
		|||
 | 
			
		||||
import os
 | 
			
		||||
import platform
 | 
			
		||||
import requests
 | 
			
		||||
import shutil
 | 
			
		||||
import subprocess
 | 
			
		||||
import tempfile
 | 
			
		||||
import time
 | 
			
		||||
import unittest
 | 
			
		||||
import yaml
 | 
			
		||||
 | 
			
		||||
from pathlib import Path
 | 
			
		||||
from unittest.mock import patch
 | 
			
		||||
 | 
			
		||||
from fdroidserver import common, exception, index, nightly
 | 
			
		||||
import requests
 | 
			
		||||
import yaml
 | 
			
		||||
 | 
			
		||||
from fdroidserver import common, exception, index, nightly
 | 
			
		||||
 | 
			
		||||
DEBUG_KEYSTORE = '/u3+7QAAAAIAAAABAAAAAQAPYW5kcm9pZGRlYnVna2V5AAABNYhAuskAAAK8MIICuDAOBgorBgEEASoCEQEBBQAEggKkqRnFlhidQmVff83bsAeewXPIsF0jiymzJnvrnUAQtCK0MV9uZonu37Mrj/qKLn56mf6QcvEoKvpCstZxzftgYYpAHWMVLM+hy2Z707QZEHlY7Ukppt8DItj+dXkeqGt7f8KzOb2AQwDbt9lm1fJb+MefLowTaubtvrLMcKIne43CbCu2D8HyN7RPWpEkVetA2Qgr5W4sa3tIUT80afqo9jzwJjKCspuxY9A1M8EIM3/kvyLo2B9r0cuWwRjYZXJ6gmTYI2ARNz0KQnCZUok14NDg+mZTb1B7AzRfb0lfjbA6grbzuAL+WaEpO8/LgGfuOh7QBZBT498TElOaFfQ9toQWA79wAmrQCm4OoFukpPIy2m/l6VjJSmlK5Q+CMOl/Au7OG1sUUCTvPaIr0XKnsiwDJ7a71n9garnPWHkvuWapSRCzCNgaUoGQjB+fTMJFFrwT8P1aLfM6onc3KNrDStoQZuYe5ngCLlNS56bENkVGvJBfdkboxtHZjqDXXON9jWGSOI527J3o2D5sjSVyx3T9XPrsL4TA/nBtdU+c/+M6aoASZR2VymzAKdMrGfj9kE5GXp8vv2vkJj9+OJ4Jm5yeczocc/Idtojjb1yg+sq1yY8kAQxgezpY1rpgi2jF3tSN01c23DNvAaSJLJX2ZuH8sD40ACc80Y1Qp1nUTdpwBZUeaeNruBwx4PHU8GnC71FwtiUpwNs0OoSl0pgDUJ3ODC5bs8B5QmW1wu1eg7I4mMSmCsNGW6VN3sFcu+WEqnmTxPoZombdFZKxsr2oq359Nn4bJ6Uc9PBz/sXsns7Zx1vND/oK/Jv5Y269UVAMeKX/eGpfnxzagW3tqGbOu12C2p9Azo5VxiU2fG/tmk2PjaG5hV/ywReco7I6C1p8OWM2fwAAAAEABVguNTA5AAAB6TCCAeUwggFOoAMCAQICBE89gTUwDQYJKoZIhvcNAQEFBQAwNzELMAkGA1UEBhMCVVMxEDAOBgNVBAoTB0FuZHJvaWQxFjAUBgNVBAMTDUFuZHJvaWQgRGVidWcwHhcNMTIwMjE2MjIyMDM3WhcNNDIwMjA4MjIyMDM3WjA3MQswCQYDVQQGEwJVUzEQMA4GA1UEChMHQW5kcm9pZDEWMBQGA1UEAxMNQW5kcm9pZCBEZWJ1ZzCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA3AKU7S7JXhUjEwxWP1/LPHXieh61SaA/+xbpqsPA+yjGz1sAcGAyuG6bjNAVm56pq7nkjJzicX7Wi83nUBo58DEC/quxOLdy0C4PEOSAeTnTT1RJIwMDvOgiL1GFCErvQ7gCH6zuAID/JRFbN6nIkhDjs2DYnSBl7aJJf8wCLc0CAwEAATANBgkqhkiG9w0BAQUFAAOBgQAoq/TJffA0l+ZGf89xndmHdxrO6qi+TzSlByvLZ4eFfCovTh1iO+Edrd5V1yXGLxyyvdsadMAFZT8SaxMrP5xxhJ0nra0APWYLpA96M//auMhQBWPgqPntwgvEZuEH7f0kdItjBJ39yijbG8xfgwid6XqNUo0TDDkp/wNWKpJ9tJe+2PrGw1NAvrgSydoH2j8DI1Eq'
 | 
			
		||||
DEBUG_KEYSTORE_KEY_FILE_NAME = (
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -15,17 +15,15 @@ import os
 | 
			
		|||
import pathlib
 | 
			
		||||
import shutil
 | 
			
		||||
import sys
 | 
			
		||||
import unittest
 | 
			
		||||
import tempfile
 | 
			
		||||
import unittest
 | 
			
		||||
from unittest import mock
 | 
			
		||||
 | 
			
		||||
from fdroidserver import publish
 | 
			
		||||
from fdroidserver import common
 | 
			
		||||
from fdroidserver import metadata
 | 
			
		||||
from fdroidserver import signatures
 | 
			
		||||
from fdroidserver import common, metadata, publish, signatures
 | 
			
		||||
from fdroidserver._yaml import yaml
 | 
			
		||||
from fdroidserver.exception import FDroidException
 | 
			
		||||
from .shared_test_code import mkdtemp, VerboseFalseOptions
 | 
			
		||||
 | 
			
		||||
from .shared_test_code import VerboseFalseOptions, mkdtemp
 | 
			
		||||
 | 
			
		||||
basedir = pathlib.Path(__file__).parent
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,13 +1,14 @@
 | 
			
		|||
#!/usr/bin/env python3
 | 
			
		||||
 | 
			
		||||
import os
 | 
			
		||||
import unittest
 | 
			
		||||
import tempfile
 | 
			
		||||
import textwrap
 | 
			
		||||
import unittest
 | 
			
		||||
from pathlib import Path
 | 
			
		||||
from unittest import mock
 | 
			
		||||
 | 
			
		||||
from fdroidserver import metadata, rewritemeta
 | 
			
		||||
 | 
			
		||||
from .shared_test_code import TmpCwd, mkdtemp
 | 
			
		||||
 | 
			
		||||
basedir = Path(__file__).parent
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -26,6 +26,7 @@ import fdroidserver.common
 | 
			
		|||
import fdroidserver.exception
 | 
			
		||||
import fdroidserver.metadata
 | 
			
		||||
import fdroidserver.scanner
 | 
			
		||||
 | 
			
		||||
from .shared_test_code import TmpCwd, mkdtemp, mock_open_to_str
 | 
			
		||||
 | 
			
		||||
basedir = pathlib.Path(__file__).parent
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -6,9 +6,10 @@ import sys
 | 
			
		|||
import unittest
 | 
			
		||||
from tempfile import TemporaryDirectory
 | 
			
		||||
 | 
			
		||||
from .shared_test_code import TmpCwd
 | 
			
		||||
from fdroidserver import common, signatures
 | 
			
		||||
 | 
			
		||||
from .shared_test_code import TmpCwd
 | 
			
		||||
 | 
			
		||||
basedir = os.path.dirname(__file__)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -6,11 +6,11 @@ import shutil
 | 
			
		|||
import subprocess
 | 
			
		||||
import tempfile
 | 
			
		||||
import unittest
 | 
			
		||||
 | 
			
		||||
from fdroidserver import apksigcopier, common, exception, signindex, update
 | 
			
		||||
from pathlib import Path
 | 
			
		||||
from unittest.mock import patch
 | 
			
		||||
 | 
			
		||||
from fdroidserver import apksigcopier, common, exception, signindex, update
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class Options:
 | 
			
		||||
    allow_disabled_algorithms = False
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,7 +1,6 @@
 | 
			
		|||
#!/usr/bin/env python3
 | 
			
		||||
 | 
			
		||||
import copy
 | 
			
		||||
import git
 | 
			
		||||
import glob
 | 
			
		||||
import hashlib
 | 
			
		||||
import json
 | 
			
		||||
| 
						 | 
				
			
			@ -12,16 +11,18 @@ import shutil
 | 
			
		|||
import string
 | 
			
		||||
import subprocess
 | 
			
		||||
import sys
 | 
			
		||||
import textwrap
 | 
			
		||||
import time
 | 
			
		||||
import unittest
 | 
			
		||||
import yaml
 | 
			
		||||
import zipfile
 | 
			
		||||
import textwrap
 | 
			
		||||
from binascii import hexlify
 | 
			
		||||
from datetime import datetime
 | 
			
		||||
from pathlib import Path
 | 
			
		||||
from unittest import mock
 | 
			
		||||
 | 
			
		||||
import git
 | 
			
		||||
import yaml
 | 
			
		||||
 | 
			
		||||
try:
 | 
			
		||||
    # these were moved in androguard 4.0
 | 
			
		||||
    from androguard.core.apk import APK
 | 
			
		||||
| 
						 | 
				
			
			@ -44,15 +45,16 @@ except ImportError:
 | 
			
		|||
    except ImportError:
 | 
			
		||||
        from yaml import Loader as FullLoader
 | 
			
		||||
 | 
			
		||||
from PIL import PngImagePlugin
 | 
			
		||||
 | 
			
		||||
import fdroidserver.common
 | 
			
		||||
import fdroidserver.exception
 | 
			
		||||
import fdroidserver.metadata
 | 
			
		||||
import fdroidserver.update
 | 
			
		||||
from fdroidserver.common import CATEGORIES_CONFIG_NAME
 | 
			
		||||
from fdroidserver.looseversion import LooseVersion
 | 
			
		||||
from .shared_test_code import TmpCwd, mkdtemp
 | 
			
		||||
from PIL import PngImagePlugin
 | 
			
		||||
 | 
			
		||||
from .shared_test_code import TmpCwd, mkdtemp
 | 
			
		||||
 | 
			
		||||
DONATION_FIELDS = ('Donate', 'Liberapay', 'OpenCollective')
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -7,7 +7,8 @@ from git import Repo
 | 
			
		|||
 | 
			
		||||
import fdroidserver.common
 | 
			
		||||
import fdroidserver.metadata
 | 
			
		||||
from .shared_test_code import mkdtemp, VerboseFalseOptions
 | 
			
		||||
 | 
			
		||||
from .shared_test_code import VerboseFalseOptions, mkdtemp
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class VCSTest(unittest.TestCase):
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -6,13 +6,11 @@ import shutil
 | 
			
		|||
import sys
 | 
			
		||||
import tempfile
 | 
			
		||||
import unittest
 | 
			
		||||
 | 
			
		||||
from pathlib import Path
 | 
			
		||||
from unittest.mock import patch
 | 
			
		||||
 | 
			
		||||
from fdroidserver import verify
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
TEST_APP_ENTRY = {
 | 
			
		||||
    "1539780240.3885746": {
 | 
			
		||||
        "local": {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue