From 08baef7cd32ad1fbb82e8fd3c64bcc3fa85d4d57 Mon Sep 17 00:00:00 2001
From: graysky <graysky@archlinux.us>
Date: Sat, 13 Mar 2021 14:26:51 -0500
Subject: [PATCH] alarm/kodi-rpi-git: sync package with other kodi packages

---
 alarm/kodi-rpi-git/99-kodi.rules |  5 -----
 alarm/kodi-rpi-git/PKGBUILD      | 32 +++++++++++---------------------
 alarm/kodi-rpi-git/kodi.install  |  5 +++++
 alarm/kodi-rpi-git/kodi.service  | 20 --------------------
 alarm/kodi-rpi-git/polkit.rules  | 15 ---------------
 alarm/kodi-rpi-git/sysusers.conf | 16 ----------------
 alarm/kodi-rpi-git/tmpfiles.conf |  3 ---
 7 files changed, 16 insertions(+), 80 deletions(-)
 delete mode 100644 alarm/kodi-rpi-git/99-kodi.rules
 delete mode 100644 alarm/kodi-rpi-git/kodi.service
 delete mode 100644 alarm/kodi-rpi-git/polkit.rules
 delete mode 100644 alarm/kodi-rpi-git/sysusers.conf
 delete mode 100644 alarm/kodi-rpi-git/tmpfiles.conf

diff --git a/alarm/kodi-rpi-git/99-kodi.rules b/alarm/kodi-rpi-git/99-kodi.rules
deleted file mode 100644
index 0e54967ef..000000000
--- a/alarm/kodi-rpi-git/99-kodi.rules
+++ /dev/null
@@ -1,5 +0,0 @@
-SUBSYSTEM=="vc-sm",GROUP="video",MODE="0660"
-SUBSYSTEM=="vchiq",GROUP="video",MODE="0660"
-SUBSYSTEM=="tty", KERNEL=="tty[0-9]*", GROUP="tty", MODE="0660"
-SUBSYSTEM=="dma_heap", KERNEL=="linux*", GROUP="video", MODE="0660"
-SUBSYSTEM=="dma_heap", KERNEL=="system", GROUP="video", MODE="0660"
diff --git a/alarm/kodi-rpi-git/PKGBUILD b/alarm/kodi-rpi-git/PKGBUILD
index 372729096..b2213a29d 100644
--- a/alarm/kodi-rpi-git/PKGBUILD
+++ b/alarm/kodi-rpi-git/PKGBUILD
@@ -35,17 +35,7 @@ makedepends=(
   'libinput' 'libxkbcommon' 'linux-raspberrypi4-headers'
 )
 _codename=Matrix
-# Found on their respective github release pages. One can check them against
-# what is pulled down when not specifying them in the cmake step.
-# $CHROOT/build/kodi-git/src/kodi-build/build/download
-#
-# https://github.com/xbmc/FFmpeg/tags
-# https://github.com/xbmc/libdvdcss/tags
-# https://github.com/xbmc/libdvdnav/tags
-# https://github.com/xbmc/libdvdread/tags
-#
-# fmt and crossguid can be found http://mirrors.kodi.tv/build-deps/sources/
-#
+_init_version=1.126
 _libdvdcss_version="1.4.2-Leia-Beta-5"
 _libdvdnav_version="6.0.0-Leia-Alpha-3"
 _libdvdread_version="6.0.0-Leia-Alpha-3"
@@ -69,12 +59,8 @@ source=(
   "http://mirrors.kodi.tv/build-deps/sources/flatbuffers-$_flatbuffers_version.tar.gz"
   "http://mirrors.kodi.tv/build-deps/sources/spdlog-$_spdlog_version.tar.gz"
   "http://mirrors.kodi.tv/build-deps/sources/libudfread-$_libudfread_version.tar.gz"
-  kodi.service
-  99-kodi.rules
-  polkit.rules
+  "ArchARM-kodi-init-v$_init_version.tar.gz::https://github.com/graysky2/kodi-standalone-service/archive/v$_init_version.tar.gz"
   kodi.config.txt
-  sysusers.conf
-  tmpfiles.conf
   use-mcpu-avoiding-march-and-mtune.patch
   0001-mcpu-cortex-application-to-ffmpeg.patch
 )
@@ -102,12 +88,8 @@ sha256sums=('1df796866093cc8cb69ebc0d14190e5e74686fa6cb0b3a841d2410f3aadc7d4c'
             '1789b97e790da8f2cb5ff827d15580878c8629fd889f5f038d7524dca43eacc9'
             'b38e0bbef7faac2b82fed550a0c19b0d4e7f6737d5321d4fd8f216b80f8aee8a'
             '5ad9f95c53e8f29853c1fefa0a20a301be4045e2c7ae49d1164bc74d94155627'
-            'bb8f0c0fd03ff7c13c0503f2c96f86772d8bbd05adbc97d5b383f603a98456c0'
-            '61a0648d4a5086f560ceb4e020f82472d00b99398f2cacba94fad3e96c4c362a'
-            '5d38a895ee7b93689fab79124a3aad23a5e3e643abd08878d778d04066c8d26f'
+            '7bc26a77a06c45b740e840f14414c5d4588b323280a8a238c6a6d7a5498adb05'
             'ca91d35bf6d87ed6e43f366a87babf26eed9f186ca362edb59ae242fc62b3692'
-            'f521b98232e5035b7cada46cf03975b8d753e93d0802bf22913fceed769f9d96'
-            '9c5e79ed8719cd032a3b17dac585aeff28a198e37af1da9af68ef1b86bab4d18'
             '16d6c79ff3a3d3653f21d77a36326a0335c8cec49a9c06dbc2de0ed143e50a9f'
             '76eafede11af936bb554932b2be71ce91d4bf1c07107d847500ebbf3ff7d7245')
 
@@ -225,6 +207,14 @@ package_kodi-rpi-git() {
      -P cmake_install.cmake
   done
 
+  # setup video drivers for kodi-gbm
+  install -Dm0644 "$srcdir/kodi.config.txt" "$pkgdir/boot/kodi.config.txt"
+  
+  # rpi4 wants 512 MB of memory
+  sed -i 's/@@@/512/' "$pkgdir/boot/kodi.config.txt"
+
+  _initshit="$srcdir/kodi-standalone-service-$_init_version/arm"
+
   # fix permissions necessary for accelerated video playback
   install -Dm0644 "$srcdir/99-kodi.rules" "$pkgdir/usr/lib/udev/rules.d/99-kodi.rules"
 
diff --git a/alarm/kodi-rpi-git/kodi.install b/alarm/kodi-rpi-git/kodi.install
index 79497926b..72ec20fc0 100644
--- a/alarm/kodi-rpi-git/kodi.install
+++ b/alarm/kodi-rpi-git/kodi.install
@@ -17,6 +17,11 @@ post_install() {
 
 post_upgrade() {
   post_install
+  # version 19.0-7 moves kodi.service to user.slice so warn users about data loss
+  if (($(vercmp 19.0-7 $2) > 0)); then
+    echo "-> kodi.service now runs in systemd's user.slice, see man kodi.service for"
+    echo "-> important info on how to reboot or shutdown the system to avoid data loss!"
+  fi
 }
 
 post_remove() {
diff --git a/alarm/kodi-rpi-git/kodi.service b/alarm/kodi-rpi-git/kodi.service
deleted file mode 100644
index fb0623530..000000000
--- a/alarm/kodi-rpi-git/kodi.service
+++ /dev/null
@@ -1,20 +0,0 @@
-[Unit]
-Description=Kodi standalone (GBM)
-After=remote-fs.target network-online.target nss-lookup.target sound.target bluetooth.target polkit.service upower.service mysqld.service
-Wants=network-online.target polkit.service upower.service
-Conflicts=getty@tty1.service
-
-[Service]
-User=kodi
-Group=kodi
-EnvironmentFile=-/etc/conf.d/kodi-standalone
-TTYPath=/dev/tty1
-Environment=WINDOWING=gbm
-ExecStart=/usr/bin/kodi-standalone
-ExecStop=/usr/bin/killall --user kodi --exact --wait kodi-gbm
-Restart=on-abort
-StandardInput=tty
-StandardOutput=journal
-
-[Install]
-Alias=display-manager.service
diff --git a/alarm/kodi-rpi-git/polkit.rules b/alarm/kodi-rpi-git/polkit.rules
deleted file mode 100644
index bcf7abf2a..000000000
--- a/alarm/kodi-rpi-git/polkit.rules
+++ /dev/null
@@ -1,15 +0,0 @@
-polkit.addRule(function(action, subject) {
-    if (subject.user == "kodi") {
-        polkit.log("action=" + action);
-        polkit.log("subject=" + subject);
-        if (action.id.indexOf("org.freedesktop.login1.") == 0) {
-            return polkit.Result.YES;
-        }
-        if (action.id.indexOf("org.freedesktop.udisks.") == 0) {
-            return polkit.Result.YES;
-        }
-        if (action.id.indexOf("org.freedesktop.udisks2.") == 0) {
-            return polkit.Result.YES;
-        }
-    }
-});
diff --git a/alarm/kodi-rpi-git/sysusers.conf b/alarm/kodi-rpi-git/sysusers.conf
deleted file mode 100644
index c3777ea48..000000000
--- a/alarm/kodi-rpi-git/sysusers.conf
+++ /dev/null
@@ -1,16 +0,0 @@
-# override these settings by copying this to /etc/sysusers.d/ and modifying it therein
-
-#Type Name ID GECOS Home directory Shell
-g kodi - -
-u kodi - "Kodi User" /var/lib/kodi
-
-# supplemental groups
-m kodi audio
-m kodi disk
-m kodi input
-m kodi network
-m kodi optical
-m kodi power
-m kodi storage
-m kodi tty
-m kodi video
diff --git a/alarm/kodi-rpi-git/tmpfiles.conf b/alarm/kodi-rpi-git/tmpfiles.conf
deleted file mode 100644
index 615f016c1..000000000
--- a/alarm/kodi-rpi-git/tmpfiles.conf
+++ /dev/null
@@ -1,3 +0,0 @@
-#Type Path Mode User Group Age Argument
-d /var/lib/kodi 0750 kodi kodi - -
-Z /var/lib/kodi - kodi kodi - -