From f0eedc3adebac6fb17ffe771abaa67bd5df7ee92 Mon Sep 17 00:00:00 2001 From: Hans-Christoph Steiner Date: Fri, 14 Feb 2025 13:03:21 +0100 Subject: [PATCH] move 'nativecode' field into internal index-v2 format --- fdroidserver/index.py | 9 +++++--- fdroidserver/update.py | 4 ++-- tests/metadata/apk/org.dyndns.fules.ck.yaml | 16 +++++++------- tests/test_update.py | 24 +++++++++++---------- 4 files changed, 29 insertions(+), 24 deletions(-) diff --git a/fdroidserver/index.py b/fdroidserver/index.py index d1f345b0..63d41962 100644 --- a/fdroidserver/index.py +++ b/fdroidserver/index.py @@ -634,7 +634,6 @@ def convert_version(version, app, repodir): manifest = version.get("manifest", dict()) for element in ( - "nativecode", "versionName", "maxSdkVersion", ): @@ -1412,8 +1411,12 @@ def make_v0(apps, apks, repodir, repodict, requestsdict, signer_fingerprints): permel.setAttribute('maxSdkVersion', str(p23['maxSdkVersion'])) apkel.appendChild(permel) permel.setAttribute('name', p23['name']) - if 'nativecode' in apk: - addElement('nativecode', ','.join(sorted(apk['nativecode'])), doc, apkel) # fmt: skip + addElementNonEmpty( + 'nativecode', + ','.join(sorted(manifest.get('nativecode', list()))), + doc, + apkel, + ) addElementNonEmpty('features', ','.join(sorted(apk['features'])), doc, apkel) # fmt: skip if ( diff --git a/fdroidserver/update.py b/fdroidserver/update.py index a9886a77..fadd953e 100644 --- a/fdroidserver/update.py +++ b/fdroidserver/update.py @@ -1936,8 +1936,8 @@ def scan_apk_androguard(apk, apkfile): arch_re = re.compile("^lib/(.*)/.*$") arch = set([arch_re.match(file).group(1) for file in apkobject.get_files() if arch_re.match(file)]) if len(arch) >= 1: - apk['nativecode'] = [] - apk['nativecode'].extend(sorted(list(arch))) + manifest['nativecode'] = [] + manifest['nativecode'].extend(sorted(list(arch))) for item in xml.findall('uses-permission'): name = item.attrib.get(xmlns + 'name') diff --git a/tests/metadata/apk/org.dyndns.fules.ck.yaml b/tests/metadata/apk/org.dyndns.fules.ck.yaml index bd457c11..897204a5 100644 --- a/tests/metadata/apk/org.dyndns.fules.ck.yaml +++ b/tests/metadata/apk/org.dyndns.fules.ck.yaml @@ -15,20 +15,20 @@ icons_src: '240': res/drawable-hdpi-v4/icon_launcher.png ipfsCIDv1: bafybeifijmr5ygvfvig4vzbmdc3ysj6m46ddohaol4vgp4qoyooqpc27zu manifest: + nativecode: + - arm64-v8a + - armeabi + - armeabi-v7a + - mips + - mips64 + - x86 + - x86_64 usesPermission: - name: android.permission.BIND_INPUT_METHOD - name: android.permission.READ_EXTERNAL_STORAGE - name: android.permission.VIBRATE minSdkVersion: 7 name: Compass Keyboard -nativecode: -- arm64-v8a -- armeabi -- armeabi-v7a -- mips -- mips64 -- x86 -- x86_64 packageName: org.dyndns.fules.ck sig: 9bf7a6a67f95688daec75eab4b1436ac signer: 9326a2cc1a2f148202bc7837a0af3b81200bd37fd359c9e13a2296a71d342056 diff --git a/tests/test_update.py b/tests/test_update.py index 90a9e1d4..6fc5d8ce 100755 --- a/tests/test_update.py +++ b/tests/test_update.py @@ -923,8 +923,10 @@ class UpdateTest(unittest.TestCase): self.assertEqual(apk_info['packageName'], 'org.dyndns.fules.ck') self.assertEqual(apk_info['versionCode'], 20) self.assertEqual(apk_info['size'], 132453) - self.assertEqual(apk_info['nativecode'], - ['arm64-v8a', 'armeabi', 'armeabi-v7a', 'mips', 'mips64', 'x86', 'x86_64']) + self.assertEqual( + apk_info['manifest']['nativecode'], + ['arm64-v8a', 'armeabi', 'armeabi-v7a', 'mips', 'mips64', 'x86', 'x86_64'], + ) self.assertEqual(apk_info['minSdkVersion'], 7) self.assertEqual(apk_info['sig'], '9bf7a6a67f95688daec75eab4b1436ac') self.assertEqual(apk_info['hashType'], 'sha256') @@ -1907,6 +1909,15 @@ class UpdateTest(unittest.TestCase): '-1': 'res/drawable-mdpi-v4/icon_launcher.png', }, 'manifest': { + 'nativecode': [ + 'arm64-v8a', + 'armeabi', + 'armeabi-v7a', + 'mips', + 'mips64', + 'x86', + 'x86_64', + ], 'usesPermission': [ {'name': 'android.permission.BIND_INPUT_METHOD'}, {'name': 'android.permission.READ_EXTERNAL_STORAGE'}, @@ -1919,15 +1930,6 @@ class UpdateTest(unittest.TestCase): 'minSdkVersion': 7, 'name': 'Compass Keyboard', 'targetSdkVersion': 8, - 'nativecode': [ - 'arm64-v8a', - 'armeabi', - 'armeabi-v7a', - 'mips', - 'mips64', - 'x86', - 'x86_64', - ], }, ) ]