diff --git a/metadata/org.xbmc.kodi.yml b/metadata/org.xbmc.kodi.yml
index 1fa7ca21ed..fbecf68f46 100644
--- a/metadata/org.xbmc.kodi.yml
+++ b/metadata/org.xbmc.kodi.yml
@@ -278,12 +278,50 @@ Builds:
- make -C build apk-unsigned
ndk: r20b
+ - versionName: '19.3'
+ versionCode: 1903000
+ commit: 19.3-Matrix
+ timeout: 7200
+ sudo:
+ - apt-get update || apt-get update
+ - apt-get install -y build-essential default-jdk gawk lib32stdc++6 lib32z1 lib32z1-dev
+ libcurl4-openssl-dev zlib1g-dev groovy libcommons-lang-java python-dev
+ patch:
+ - 19.3-groovy.patch
+ output: build/tools/android/packaging/xbmc/build/outputs/apk/releaseUnsigned/xbmc-releaseUnsigned-unsigned.apk
+ rm:
+ - tools/codegenerator/groovy/
+ prebuild:
+ - sed -i -e '/gradlew/d' -e '/gradle-wrapper.jar/d' cmake/scripts/android/Install.cmake
+ - sed -i -e 's#./gradlew#gradle#' tools/android/packaging/Makefile.in
+ scanignore:
+ - addons/webinterface.default/lib/soundmanager/swf/soundmanager2_flash_xdomain.zip
+ scandelete:
+ - lib/
+ - project/
+ - tools/
+ - xbmc/filesystem/test
+ build:
+ - pushd tools/depends/
+ - ./bootstrap
+ - ./configure --host=arm-linux-androideabi --with-sdk-path=$$SDK$$ --with-ndk-path=$$NDK$$
+ --prefix=$PWD/output --disable-debug
+ - make -j`nproc`
+ - popd
+ - make -C tools/depends/target/binary-addons -j`nproc`
+ - make -C tools/depends/target/cmakebuildsys
+ - make -C build -j`nproc`
+ - make -C build apk-unsigned
+ ndk: r20b
+
MaintainerNotes: |-
18.0-groovy.patch was provided by upstream; it makes the build use the Debian groovy package instead of a prebuilt JAR.
Build instructions are available here.
+ checkupdates will fail for this app, so that's why UpdateCheckMode is None. Please keep up-to-date manually.
+
AutoUpdateMode: None
UpdateCheckMode: None
-CurrentVersion: '19.1'
-CurrentVersionCode: 1901000
+CurrentVersion: '19.3'
+CurrentVersionCode: 1903000
diff --git a/metadata/org.xbmc.kodi/19.3-groovy.patch b/metadata/org.xbmc.kodi/19.3-groovy.patch
new file mode 100644
index 0000000000..5f129b21c6
--- /dev/null
+++ b/metadata/org.xbmc.kodi/19.3-groovy.patch
@@ -0,0 +1,23 @@
+diff --git a/xbmc/interfaces/swig/CMakeLists.txt b/xbmc/interfaces/swig/CMakeLists.txt
+index 1884b2a85b..d56a2ff698 100644
+--- a/xbmc/interfaces/swig/CMakeLists.txt
++++ b/xbmc/interfaces/swig/CMakeLists.txt
+@@ -1,6 +1,5 @@
+ function(generate_file file)
+- set(classpath ${GROOVY_DIR}/groovy-all-${GROOVY_VER}.jar
+- ${GROOVY_DIR}/commons-lang-${COMMONS_VER}.jar
++ set(classpath /usr/share/java/commons-lang.jar
+ ${CMAKE_SOURCE_DIR}/tools/codegenerator
+ ${CMAKE_CURRENT_SOURCE_DIR}/../python)
+ if(NOT CORE_SYSTEM_NAME STREQUAL windows AND NOT CORE_SYSTEM_NAME STREQUAL windowsstore)
+@@ -22,8 +21,8 @@ function(generate_file file)
+ add_custom_command(OUTPUT ${CPP_FILE}
+ COMMAND ${SWIG_EXECUTABLE}
+ ARGS -w401 -c++ -o ${file}.xml -xml -I${CMAKE_SOURCE_DIR}/xbmc -xmllang python ${CMAKE_CURRENT_SOURCE_DIR}/../swig/${file}
+- COMMAND ${Java_JAVA_EXECUTABLE}
+- ARGS ${JAVA_OPEN_OPTS} -cp "${classpath}" groovy.ui.GroovyMain ${CMAKE_SOURCE_DIR}/tools/codegenerator/Generator.groovy ${file}.xml ${CMAKE_CURRENT_SOURCE_DIR}/../python/PythonSwig.cpp.template ${file}.cpp > ${devnull}
++ COMMAND groovy
++ ARGS -cp "${classpath}" ${CMAKE_SOURCE_DIR}/tools/codegenerator/Generator.groovy ${file}.xml ${CMAKE_CURRENT_SOURCE_DIR}/../python/PythonSwig.cpp.template ${file}.cpp > ${devnull}
+ ${CLANG_FORMAT_COMMAND}
+ DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/../swig/${file} ${CMAKE_CURRENT_SOURCE_DIR}/../python/PythonSwig.cpp.template)
+ set(SOURCES ${SOURCES} "${CPP_FILE}" PARENT_SCOPE)