chiark / gitweb /
Merge branch 'permission-parsing' into 'master'
authorHans-Christoph Steiner <hans@guardianproject.info>
Tue, 9 Aug 2016 15:33:19 +0000 (15:33 +0000)
committerHans-Christoph Steiner <hans@guardianproject.info>
Tue, 9 Aug 2016 15:33:19 +0000 (15:33 +0000)
Parse maxSdkVersion and -23 permission tags

Parse maxSdkVersion and uses-permission-sdk-23 tags and insert them into the index.

AndroidManifest:
```xml
    <uses-permission android:name="android.permission.READ_CALENDAR" />

    <uses-permission
        android:name="android.permission.WRITE_EXTERNAL_STORAGE"
        android:maxSdkVersion="18" />

    <uses-permission-sdk-23 android:name="android.permission.ACCESS_FINE_LOCATION" />
```

new index format:
```xml
<package>
            <version>1.0</version>
            <versioncode>1</versioncode>
            <apkname>maxmin.apk</apkname>
            <hash type="sha256">526eb6d643050c3fae42fb6c001c704006046db52e98998b21f7646ecae3dae5
            </hash>
            <sig>893fc1f22301c902d05c938b29d21648</sig>
            <size>8681</size>
            <sdkver>14</sdkver>
            <targetSdkVersion>24</targetSdkVersion>
            <added>2016-08-01</added>
            <permissions>READ_EXTERNAL_STORAGE,READ_CALENDAR,WRITE_EXTERNAL_STORAGE</permissions>
                <uses-permission name="android.permission.WRITE_EXTERNAL_STORAGE"
                    maxSdkVersion="18" />
                <uses-permission name="android.permission.READ_CALENDAR" />
                <uses-permission name="android.permission.READ_EXTERNAL_STORAGE" />
                <uses-permission-sdk-23 name="android.permission.ACCESS_FINE_LOCATION" />
</package>
```

old format:
```xml
<permissions>READ_CALENDAR,ACCESS_FINE_LOCATION,WRITE_EXTERNAL_STORAGE</permissions>
```

This generates both formats for backward compatibility with old clients.

Also increase version of index format.

This is a proposal for the issues discussed in https://gitlab.com/fdroid/fdroidclient/issues/704

@eighthave @mvdan

See merge request !150

.gitlab-ci.yml
.travis.yml
buildserver/provision-android-ndk
buildserver/provision-android-sdk
buildserver/provision-apt-get-install
examples/config.py
fdroidserver/common.py
fdroidserver/update.py

index d0125d240a1cc94c50a7ad69923db297dac5de00..6c2df7623969b9983e315bb73688a666b1df055f 100644 (file)
@@ -1,4 +1,4 @@
-image: mvdan/fdroid-ci:server-20160621
+image: mvdan/fdroid-ci:server-20160731
 
 test:
   script:
index e7b004c0a4945c2cd51f9eae58be69afaf0a795f..45a8049931b5280c9075dcf8f6e2b4ddfa01fae0 100644 (file)
@@ -28,7 +28,7 @@ install:
       sudo pip3 install pep8 pyflakes pylint;
       sudo pip3 install -e  .;
       sudo rm -rf fdroidserver.egg-info;
-      echo y | android --verbose update sdk --no-ui --all --filter platform-tools,build-tools-24.0.0;
+      echo y | android --verbose update sdk --no-ui --all --filter platform-tools,build-tools-24.0.1;
       elif [[ "$TRAVIS_OS_NAME" == "linux" ]]; then
       sudo add-apt-repository ppa:guardianproject/fdroidserver -y;
       sudo apt-get -q update -y;
index 4c4f0d54b4817432cb9a2d01ec231bfc709f7d91..ce1a8683bc8f46039cc34f5007e822639d12c6ee 100644 (file)
@@ -21,7 +21,7 @@ if [ ! -e $NDK_BASE/r10e ]; then
 fi
 
 if [ ! -e $NDK_BASE/r12b ]; then
-    7zr x /vagrant/cache/android-ndk-r12b-linux-x86_64.bin > /dev/null
+    unzip /vagrant/cache/android-ndk-r12b-linux-x86_64.zip > /dev/null
     mv android-ndk-r12b r12b
 fi
 
index 31bb95b2f873c5c798386a803876476de6bacee3..57eacdc46ca4f73c2bace349691450eb3ebc6539 100644 (file)
@@ -41,6 +41,10 @@ done
 # install all cached build-tools
 for f in `ls -1 build-tools*.zip`; do
     ver=`unzip -c $f "*/source.properties" | sed -n 's,^Pkg.Revision=,,p'`
+    if [[ $ver == 24.0.0 ]] && [[ $f =~ .*r24\.0\.1.* ]]; then
+        # 24.0.1 has the wrong revision in the zip
+        ver=24.0.1
+    fi
     cached=,build-tools-${ver}${cached}
 done
 
index 1085c0a12031ac75adda76fc43e0a1b460d9963e..0aa47dd7255301897e0463e46d02b37f2bd6451e 100644 (file)
@@ -19,6 +19,7 @@ apt-get -y upgrade
 
 packages="
  ant
+ asn1c
  ant-contrib
  autoconf
  autoconf2.13
@@ -73,6 +74,7 @@ packages="
  quilt
  realpath
  scons
+ sqlite3
  subversion
  swig
  texinfo
index 255b9c0cb02459ce5d72b6991ed1569d28dd05e0..464528db682ed42a3c2c68cc6ea89c3687897b83 100644 (file)
@@ -21,7 +21,7 @@
 # }
 
 # Build tools version to be used
-# build_tools = "24.0.0"
+# build_tools = "24.0.1"
 
 # Force all build to use the above version of build -tools, good for testing
 # builds without having all of the possible build-tools installed.
index b0a27ac4634b8e1d824fe03f3e1b0e9743eb58a6..bbee6c305807de63e47011fbcdf7aed3b0e1b34e 100644 (file)
@@ -59,7 +59,7 @@ default_config = {
         'r10e': None,
         'r12b': "$ANDROID_NDK",
     },
-    'build_tools': "24.0.0",
+    'build_tools': "24.0.1",
     'force_build_tools': False,
     'java_paths': None,
     'ant': "ant",
index f8646e2a258932cd4ce17d7cdd724afd27aa54e1..07c8db3024422f34522f108ae971a96fe16da715 100644 (file)
@@ -243,6 +243,8 @@ def update_wiki(apps, sortedids, apks):
         apppagename = apppagename.replace('{', '')
         apppagename = apppagename.replace('}', ' ')
         apppagename = apppagename.replace(':', ' ')
+        apppagename = apppagename.replace('[', ' ')
+        apppagename = apppagename.replace(']', ' ')
         # Drop double spaces caused mostly by replacing ':' above
         apppagename = apppagename.replace('  ', ' ')
         for expagename in site.allpages(prefix=apppagename,