diff --git a/fdroidserver/index.py b/fdroidserver/index.py index 1421acb8..c284ce50 100644 --- a/fdroidserver/index.py +++ b/fdroidserver/index.py @@ -139,7 +139,7 @@ def make(apps, sortedids, apks, repodir, archive): appsWithPackages[packageName] = newapp break - requestsdict = dict() + requestsdict = collections.OrderedDict() for command in ('install', 'uninstall'): packageNames = [] key = command + '_list' @@ -199,7 +199,7 @@ def make_v1(apps, packages, repodir, repodict, requestsdict): k = k[:1].lower() + k[1:] d[k] = v - output_packages = dict() + output_packages = collections.OrderedDict() output['packages'] = output_packages for package in packages: packageName = package['packageName'] @@ -414,7 +414,7 @@ def make_v0(apps, apks, repodir, repodict, requestsdict): if perm_name.startswith("android.permission."): perm_name = perm_name[19:] old_permissions.add(perm_name) - addElementNonEmpty('permissions', ','.join(old_permissions), doc, apkel) + addElementNonEmpty('permissions', ','.join(sorted(old_permissions)), doc, apkel) for permission in sorted_permissions: permel = doc.createElement('uses-permission') diff --git a/fdroidserver/update.py b/fdroidserver/update.py index 9f5c280c..f8bf731f 100644 --- a/fdroidserver/update.py +++ b/fdroidserver/update.py @@ -690,7 +690,7 @@ def scan_repo_files(apkcache, repodir, knownapks, use_date_from_file=False): if not usecache: logging.debug("Processing " + name) - repo_file = {} + repo_file = collections.OrderedDict() # TODO rename apkname globally to something more generic repo_file['name'] = name repo_file['apkName'] = name @@ -775,9 +775,9 @@ def scan_apk(apkcache, apkfilename, repodir, knownapks, use_date_from_apk): if os.path.exists(os.path.join(repodir, srcfilename)): apk['srcname'] = srcfilename apk['size'] = os.path.getsize(apkfile) - apk['uses-permission'] = set() - apk['uses-permission-sdk-23'] = set() - apk['features'] = set() + apk['uses-permission'] = [] + apk['uses-permission-sdk-23'] = [] + apk['features'] = [] apk['icons_src'] = {} apk['icons'] = {} apk['antiFeatures'] = set() @@ -1065,7 +1065,7 @@ def scan_apks(apkcache, repodir, knownapks, use_date_from_apk=False): os.makedirs(icon_dir) apks = [] - for apkfile in glob.glob(os.path.join(repodir, '*.apk')): + for apkfile in sorted(glob.glob(os.path.join(repodir, '*.apk'))): apkfilename = apkfile[len(repodir) + 1:] (skip, apk, cachechanged) = scan_apk(apkcache, apkfilename, repodir, knownapks, use_date_from_apk) if skip: