diff --git a/MANIFEST.in b/MANIFEST.in index 0d72d061..40e28d21 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -551,6 +551,13 @@ include tests/dump_internal_metadata_format.py include tests/exception.TestCase include tests/extra/manual-vmtools-test.py include tests/funding-usernames.yaml +include tests/get_android_tools_versions/android-ndk/android-ndk-r21d/source.properties +include tests/get_android_tools_versions/android-ndk/r11c/source.properties +include tests/get_android_tools_versions/android-ndk/r17c/source.properties +include tests/get_android_tools_versions/android-sdk/patcher/v4/source.properties +include tests/get_android_tools_versions/android-sdk/platforms/android-30/source.properties +include tests/get_android_tools_versions/android-sdk/skiaparser/1/source.properties +include tests/get_android_tools_versions/android-sdk/tools/source.properties include tests/getsig/getsig.java include tests/getsig/make.sh include tests/getsig/run.sh diff --git a/fdroidserver/common.py b/fdroidserver/common.py index 84451d70..7917a05d 100644 --- a/fdroidserver/common.py +++ b/fdroidserver/common.py @@ -3821,7 +3821,7 @@ def get_android_tools_versions(ndk_path=None): with open(ndk_release_txt, 'r') as fp: components.append((os.path.basename(ndk_path), fp.read()[:-1])) - pattern = re.compile('^Pkg.Revision=(.+)', re.MULTILINE) + pattern = re.compile(r'^Pkg.Revision *= *(.+)', re.MULTILINE) for root, dirs, files in os.walk(sdk_path): if 'source.properties' in files: source_properties = os.path.join(root, 'source.properties') diff --git a/tests/common.TestCase b/tests/common.TestCase index 2f226dee..b4ac2541 100755 --- a/tests/common.TestCase +++ b/tests/common.TestCase @@ -1627,6 +1627,21 @@ class CommonTest(unittest.TestCase): {'AutoName': testvalue, 'id': 'nope'}]: self.assertEqual(testvalue, fdroidserver.common.get_app_display_name(app)) + def test_get_android_tools_versions(self): + sdk_path = os.path.join(self.basedir, 'get_android_tools_versions') + fdroidserver.common.config = {'sdk_path': sdk_path} + components = fdroidserver.common.get_android_tools_versions() + expected = ( + ('android-ndk/android-ndk-r21d', '21.3.6528147'), + ('android-ndk/r11c', '11.2.2725575'), + ('android-ndk/r17c', '17.2.4988734'), + ('android-sdk/patcher/v4', '1'), + ('android-sdk/platforms/android-30', '3'), + ('android-sdk/skiaparser/1', '6'), + ('android-sdk/tools', '26.1.1'), + ) + self.assertSequenceEqual(expected, sorted(components)) + if __name__ == "__main__": os.chdir(os.path.dirname(__file__)) diff --git a/tests/get_android_tools_versions/android-ndk/android-ndk-r21d/source.properties b/tests/get_android_tools_versions/android-ndk/android-ndk-r21d/source.properties new file mode 100644 index 00000000..4f32bc9b --- /dev/null +++ b/tests/get_android_tools_versions/android-ndk/android-ndk-r21d/source.properties @@ -0,0 +1,2 @@ +Pkg.Desc = Android NDK +Pkg.Revision = 21.3.6528147 diff --git a/tests/get_android_tools_versions/android-ndk/r11c/source.properties b/tests/get_android_tools_versions/android-ndk/r11c/source.properties new file mode 100644 index 00000000..f3b7ffa1 --- /dev/null +++ b/tests/get_android_tools_versions/android-ndk/r11c/source.properties @@ -0,0 +1,2 @@ +Pkg.Desc = Android NDK +Pkg.Revision = 11.2.2725575 diff --git a/tests/get_android_tools_versions/android-ndk/r17c/source.properties b/tests/get_android_tools_versions/android-ndk/r17c/source.properties new file mode 100644 index 00000000..8e1573f9 --- /dev/null +++ b/tests/get_android_tools_versions/android-ndk/r17c/source.properties @@ -0,0 +1,2 @@ +Pkg.Desc = Android NDK +Pkg.Revision = 17.2.4988734 diff --git a/tests/get_android_tools_versions/android-sdk/patcher/v4/source.properties b/tests/get_android_tools_versions/android-sdk/patcher/v4/source.properties new file mode 100644 index 00000000..66cd669b --- /dev/null +++ b/tests/get_android_tools_versions/android-sdk/patcher/v4/source.properties @@ -0,0 +1,18 @@ +# +# Copyright (C) 2016 The Android Open Source Project +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +Pkg.Revision=1 +Pkg.Path=patcher;v4 +Pkg.Desc=SDK Patch Applier v4 \ No newline at end of file diff --git a/tests/get_android_tools_versions/android-sdk/platforms/android-30/source.properties b/tests/get_android_tools_versions/android-sdk/platforms/android-30/source.properties new file mode 100644 index 00000000..239cbb3d --- /dev/null +++ b/tests/get_android_tools_versions/android-sdk/platforms/android-30/source.properties @@ -0,0 +1,9 @@ +Pkg.Desc=Android SDK Platform 11 +Pkg.UserSrc=false +Platform.Version=11 +Platform.CodeName= +Pkg.Revision=3 +AndroidVersion.ApiLevel=30 +Layoutlib.Api=15 +Layoutlib.Revision=1 +Platform.MinToolsRev=22 diff --git a/tests/get_android_tools_versions/android-sdk/skiaparser/1/source.properties b/tests/get_android_tools_versions/android-sdk/skiaparser/1/source.properties new file mode 100755 index 00000000..a70c3bae --- /dev/null +++ b/tests/get_android_tools_versions/android-sdk/skiaparser/1/source.properties @@ -0,0 +1,3 @@ +Pkg.Revision=6 +Pkg.Path=skiaparser;1 +Pkg.Desc=Layout Inspector image server for API 29-30 diff --git a/tests/get_android_tools_versions/android-sdk/tools/source.properties b/tests/get_android_tools_versions/android-sdk/tools/source.properties new file mode 100644 index 00000000..2c1388f1 --- /dev/null +++ b/tests/get_android_tools_versions/android-sdk/tools/source.properties @@ -0,0 +1,6 @@ +Pkg.UserSrc=false +Pkg.Revision=26.1.1 +Platform.MinPlatformToolsRev=20 +Pkg.Dependencies=emulator +Pkg.Path=tools +Pkg.Desc=Android SDK Tools