Browse Source

fix startup issues with kodi

Waldemar Brodkorb 9 years ago
parent
commit
5c105209db

+ 11 - 9
package/kodi/Makefile

@@ -174,23 +174,25 @@ CONFIGURE_ARGS+=	--disable-x11 \
 endif
 
 pre-configure:
-	(cd $(WRKBUILD)/lib/cpluff && env PATH=$(AUTOTOOL_PATH) ./autogen.sh)
+	(cd $(WRKBUILD)/lib/cpluff && env PATH='$(AUTOTOOL_PATH)' ./autogen.sh)
 
 pre-build:
-	PATH=$(HOST_PATH) \
+	PATH='$(HOST_PATH)' \
 	make CXX="${HOST_CXX}" CC="${HOST_CC}" CFLAGS="${HOST_CFLAGS}" \
 		CXXFLAGS="${HOST_CXXFLAGS}" LDFLAGS="${HOST_LDFLAGS}" \
 		 -C $(WRKBUILD)/tools/depends/native/JsonSchemaBuilder
 
 kodi-install:
-	$(INSTALL_DIR) $(IDIR_KODI)/usr/lib/xbmc/addons
-	$(CP) $(WRKINST)/usr/lib/xbmc/* \
-		$(IDIR_KODI)/usr/lib/xbmc
-	$(INSTALL_DIR) $(IDIR_KODI)/usr/share/xbmc
-	$(CP) $(WRKINST)/usr/share/xbmc/* \
-		$(IDIR_KODI)/usr/share/xbmc
+	$(INSTALL_DIR) $(IDIR_KODI)/usr/lib/kodi/addons
+	$(CP) $(WRKINST)/usr/lib/kodi/* \
+		$(IDIR_KODI)/usr/lib/kodi
+	$(INSTALL_DIR) $(IDIR_KODI)/usr/share/kodi
+	$(CP) $(WRKINST)/usr/share/kodi/* \
+		$(IDIR_KODI)/usr/share/kodi
 	$(INSTALL_DIR) $(IDIR_KODI)/usr/bin
-	$(INSTALL_BIN) $(WRKINST)/usr/bin/xbmc \
+	$(INSTALL_BIN) $(WRKINST)/usr/bin/kodi-standalone \
+		$(IDIR_KODI)/usr/bin
+	$(INSTALL_BIN) $(WRKINST)/usr/bin/kodi \
 		$(IDIR_KODI)/usr/bin
 
 include ${ADK_TOPDIR}/mk/pkg-bottom.mk

+ 7 - 2
package/kodi/files/kodi.init

@@ -13,10 +13,15 @@ autostart)
 	;;
 start)
 	export LD_LIBRARY_PATH=/opt/vc/lib
-	xbmc &
+	mkdir -p /data/kodi/temp
+	if [ $? -ne 0 ]; then
+		echo "/data not writable"
+		exit 1
+	fi
+	kodi &
 	;;
 stop)
-	kill $(pgrep -f /usr/lib/xbmc/xbmc.bin)
+	kill $(pgrep -f /usr/lib/kodi/kodi.bin)
 	;;
 restart)
 	sh $0 stop

+ 3 - 3
package/kodi/patches/patch-configure_in

@@ -1,6 +1,6 @@
---- kodi-14.0alpha4.orig/configure.in	2014-10-06 11:34:24.000000000 -0500
-+++ kodi-14.0alpha4/configure.in	2014-10-08 01:40:53.444436000 -0500
-@@ -1011,7 +1011,7 @@ if test "$use_gles" = "yes"; then
+--- kodi-14.0rc2.orig/configure.in	2014-12-05 19:38:42.000000000 -0600
++++ kodi-14.0rc2/configure.in	2014-12-07 03:43:25.212418001 -0600
+@@ -1008,7 +1008,7 @@ if test "$use_gles" = "yes"; then
        AC_DEFINE([HAVE_LIBEGL],[1],["Define to 1 if you have the `EGL' library (-lEGL)."])
        AC_DEFINE([HAVE_LIBGLESV2],[1],["Define to 1 if you have the `GLESv2' library (-lGLESv2)."])
        AC_MSG_RESULT(== WARNING: OpenGLES support is assumed.)

+ 39 - 0
package/kodi/patches/patch-tools_Linux_kodi_sh_in

@@ -0,0 +1,39 @@
+--- kodi-14.0rc2.orig/tools/Linux/kodi.sh.in	2014-12-05 19:38:43.000000000 -0600
++++ kodi-14.0rc2/tools/Linux/kodi.sh.in	2014-12-07 08:33:01.128418001 -0600
+@@ -86,15 +86,7 @@ print_crash_report()
+   echo -n " Kernel: " >> $FILE
+   uname -rvs >> $FILE
+   echo -n " Release: " >> $FILE
+-  if [ -f /etc/os-release ]; then
+-	  . /etc/os-release
+-	  echo $NAME $VERSION >> $FILE
+-  elif command_exists lsb_release; then
+-    echo >> $FILE
+-    lsb_release -a 2> /dev/null | sed -e 's/^/    /' >> $FILE
+-  else
+-    echo "lsb_release not available" >> $FILE
+-  fi
++  echo OpenADK >> $FILE
+   echo "############## END SYSTEM INFO ##############" >> $FILE
+   echo >> $FILE
+   echo "############### STACK TRACE #################" >> $FILE
+@@ -138,19 +130,6 @@ print_crash_report()
+ }
+ 
+ migrate_home
+-python @datadir@/${bin_name}/FEH.py $SAVED_ARGS
+-RET=$?
+-if [ $RET -ne 0 ]; then
+-  exit $RET
+-fi
+-
+-if command_exists gdb; then
+-  # Output warning in case ulimit is unsupported by shell
+-  eval ulimit -c unlimited
+-  if [ ! $? = "0" ]; then
+-    echo "${bin_name}: ulimit is unsupported by this shell" 1>&2
+-  fi
+-fi
+ 
+ LOOP=1
+ while [ $(( $LOOP )) = "1" ]

+ 14 - 0
package/kodi/patches/patch-xbmc_Application_cpp

@@ -0,0 +1,14 @@
+--- kodi-14.0rc2.orig/xbmc/Application.cpp	2014-12-05 19:38:44.000000000 -0600
++++ kodi-14.0rc2/xbmc/Application.cpp	2014-12-07 10:16:27.900418001 -0600
+@@ -1076,10 +1076,7 @@ bool CApplication::InitDirectoriesLinux(
+     userName = "root";
+ 
+   std::string userHome;
+-  if (getenv("HOME"))
+-    userHome = getenv("HOME");
+-  else
+-    userHome = "/root";
++  userHome = "/data/kodi";
+ 
+   std::string appBinPath, appPath;
+   std::string appName = CCompileInfo::GetAppName();

+ 4 - 4
package/kodi/patches/patch-xbmc_cores_dvdplayer_DVDDemuxers_DVDDemuxFFmpeg_cpp

@@ -1,6 +1,6 @@
---- kodi-14.0alpha4.orig/xbmc/cores/dvdplayer/DVDDemuxers/DVDDemuxFFmpeg.cpp	2014-09-05 14:09:59.000000000 +0200
-+++ kodi-14.0alpha4/xbmc/cores/dvdplayer/DVDDemuxers/DVDDemuxFFmpeg.cpp	2014-09-05 15:53:47.432904545 +0200
-@@ -490,8 +490,8 @@ void CDVDDemuxFFmpeg::Reset()
+--- kodi-14.0rc2.orig/xbmc/cores/dvdplayer/DVDDemuxers/DVDDemuxFFmpeg.cpp	2014-12-05 19:38:44.000000000 -0600
++++ kodi-14.0rc2/xbmc/cores/dvdplayer/DVDDemuxers/DVDDemuxFFmpeg.cpp	2014-12-07 03:43:25.308418001 -0600
+@@ -520,8 +520,8 @@ void CDVDDemuxFFmpeg::Reset()
  void CDVDDemuxFFmpeg::Flush()
  {
    // naughty usage of an internal ffmpeg function
@@ -9,5 +9,5 @@
 +  //if (m_pFormatContext)
 +   // av_read_frame_flush(m_pFormatContext);
  
-   m_iCurrentPts = DVD_NOPTS_VALUE;
+   m_currentPts = DVD_NOPTS_VALUE;
  

+ 47 - 6
package/kodi/patches/patch-xbmc_utils_SystemInfo_cpp

@@ -1,11 +1,52 @@
---- kodi-14.0alpha4.orig/xbmc/utils/SystemInfo.cpp	2014-10-10 15:03:29.000000000 -0500
-+++ kodi-14.0alpha4/xbmc/utils/SystemInfo.cpp	2014-10-29 20:29:31.614352000 -0500
-@@ -618,7 +618,7 @@ std::string CSysInfo::GetOsName(bool emp
- #elif defined (TARGET_ANDROID)
+--- kodi-14.0rc2.orig/xbmc/utils/SystemInfo.cpp	2014-12-05 19:38:44.000000000 -0600
++++ kodi-14.0rc2/xbmc/utils/SystemInfo.cpp	2014-12-07 23:48:19.332418001 -0600
+@@ -615,16 +615,11 @@ std::string CSysInfo::GetOsName(bool emp
+     osName = "iOS";
+ #elif defined(TARGET_DARWIN_OSX)
+     osName = "OS X";
+-#elif defined (TARGET_ANDROID)
++#elif defined(TARGET_ANDROID)
      osName = "Android";
  #elif defined(TARGET_LINUX)
 -    osName = getValueFromOs_release("NAME");
+-    if (osName.empty())
+-      osName = getValueFromLsb_release(lsb_rel_distributor);
+-    if (osName.empty())
+-      osName = getValueFromOs_release("ID");
+-#endif // defined(TARGET_LINUX)
+-
 +    osName = "OpenADK";
++#endif
      if (osName.empty())
-       osName = getValueFromLsb_release(lsb_rel_distributor);
-     if (osName.empty())
+       osName = "Unknown OS";
+   }
+@@ -665,7 +660,7 @@ std::string CSysInfo::GetOsVersion(void)
+ #elif defined(TARGET_LINUX)
+   osVersion = getValueFromOs_release("VERSION_ID");
+   if (osVersion.empty())
+-    osVersion = getValueFromLsb_release(lsb_rel_release);
++    osVersion = "1.0";
+ #endif // defined(TARGET_LINUX)
+ 
+   if (osVersion.empty())
+@@ -737,19 +732,7 @@ std::string CSysInfo::GetOsPrettyNameWit
+ #elif defined(TARGET_ANDROID)
+   osNameVer = GetOsName() + " " + GetOsVersion() + " API level " +   StringUtils::Format("%d", CJNIBuild::SDK_INT);
+ #elif defined(TARGET_LINUX)
+-  osNameVer = getValueFromOs_release("PRETTY_NAME");
+-  if (osNameVer.empty())
+-  {
+-    osNameVer = getValueFromLsb_release(lsb_rel_description);
+-    std::string osName(GetOsName(true));
+-    if (!osName.empty() && osNameVer.find(osName) == std::string::npos)
+-      osNameVer = osName + osNameVer;
+-    if (osNameVer.empty())
+-      osNameVer = "Unknown Linux Distribution";
+-  }
+-
+-  if (osNameVer.find(GetOsVersion()) == std::string::npos)
+-    osNameVer += " " + GetOsVersion();
++  osNameVer = GetOsName() + " " + GetOsVersion();
+ #endif // defined(TARGET_LINUX)
+ 
+   if (osNameVer.empty())

+ 1 - 1
scripts/install.sh

@@ -518,7 +518,7 @@ if (( datafssz )); then
 	((keep)) || create_fs "$datapart" ADKDATA ext4
 	((keep)) || tune_fs "$datapart"
 	mount_fs "$datapart" "$D" ext4
-	mkdir -m0755 "$D/mpd" "$D/xbmc" 2>/dev/null
+	mkdir -m0755 "$D/mpd" "$D/kodi" 2>/dev/null
 	umount_fs "$D"
 	case $target {
 	(raspberry-pi)