From 6e59abff3e2c3e8379d92e4fc95e0cf418b482b2 Mon Sep 17 00:00:00 2001 From: vanhofen Date: Mon, 23 Jan 2023 23:50:18 +0100 Subject: [PATCH] introduce TARGET_ROOT define to fix paths in native mode Origin commit data ------------------ Branch: ni/coolstream Commit: https://github.com/neutrino-images/ni-neutrino/commit/98aa770f926e31120ef442912217e1b0be8fb026 Author: vanhofen Date: 2023-01-23 (Mon, 23 Jan 2023) Origin message was: ------------------ - introduce TARGET_ROOT define to fix paths in native mode ------------------ No further description and justification available within origin commit message! ------------------ This commit was generated by Migit --- acinclude.m4 | 74 ++++++++++++++++++++++++++++--------------- src/global.h | 6 +--- src/gui/imageinfo.cpp | 4 +-- src/neutrino.cpp | 24 +++++++------- 4 files changed, 64 insertions(+), 44 deletions(-) diff --git a/acinclude.m4 b/acinclude.m4 index 8ddbab68b..3df70c318 100644 --- a/acinclude.m4 +++ b/acinclude.m4 @@ -9,10 +9,15 @@ AC_ARG_WITH(target, [TARGET="$withval"], [TARGET="native"]) +AC_ARG_WITH(targetroot, + AS_HELP_STRING([--with-targetroot=PATH], [the target root (only applicable in native mode)]), + [TARGET_ROOT="$withval"], + [TARGET_ROOT="NONE"]) + AC_ARG_WITH(targetprefix, - AS_HELP_STRING([--with-targetprefix=PATH], [prefix relative to target root (only applicable in cdk mode)]), + AS_HELP_STRING([--with-targetprefix=PATH], [prefix relative to target root, e.g. /usr (only applicable in cdk mode)]), [TARGET_PREFIX="$withval"], - [TARGET_PREFIX=""]) + [TARGET_PREFIX="NONE"]) AC_ARG_WITH(debug, AS_HELP_STRING([--without-debug], [disable debugging code @<:@default=no@:>@]), @@ -142,40 +147,48 @@ AC_MSG_CHECKING(target) if test "$TARGET" = "native"; then AC_MSG_RESULT(native) + if test "$prefix" = "NONE"; then + prefix=/usr/local + fi + + if test "$TARGET_ROOT" = "NONE"; then + AC_MSG_ERROR([invalid targetroot, you need to specify one in native mode]) + TARGET_ROOT="" + fi + TARGET_PREFIX=$prefix + if test "$CFLAGS" = "" -a "$CXXFLAGS" = ""; then CFLAGS="-Wall -O2 -pipe $DEBUG_CFLAGS" CXXFLAGS="-Wall -O2 -pipe $DEBUG_CFLAGS" fi - if test "$prefix" = "NONE"; then - prefix=/usr/local - fi - targetprefix=$prefix - TARGET_PREFIX=$prefix - AC_DEFINE_UNQUOTED(TARGET_PREFIX, "$TARGET_PREFIX", [The targets prefix]) elif test "$TARGET" = "cdk"; then AC_MSG_RESULT(cdk) - if test "$CC" = "" -a "$CXX" = ""; then - AC_MSG_ERROR([you need to specify variables CC or CXX in cdk]) - fi - if test "$CFLAGS" = "" -o "$CXXFLAGS" = ""; then - AC_MSG_ERROR([you need to specify variables CFLAGS and CXXFLAGS in cdk]) - fi if test "$prefix" = "NONE"; then AC_MSG_ERROR([invalid prefix, you need to specify one in cdk mode]) fi - if test "$TARGET_PREFIX" != "NONE"; then - AC_DEFINE_UNQUOTED(TARGET_PREFIX, "$TARGET_PREFIX", [The targets prefix]) - fi + + TARGET_ROOT="" if test "$TARGET_PREFIX" = "NONE"; then AC_MSG_ERROR([invalid targetprefix, you need to specify one in cdk mode]) TARGET_PREFIX="" fi + + if test "$CC" = "" -a "$CXX" = ""; then + AC_MSG_ERROR([you need to specify variables CC or CXX in cdk mode]) + fi + if test "$CFLAGS" = "" -o "$CXXFLAGS" = ""; then + AC_MSG_ERROR([you need to specify variables CFLAGS and CXXFLAGS in cdk mode]) + fi else AC_MSG_RESULT(none) - AC_MSG_ERROR([invalid target $TARGET, choose on from native,cdk]); + AC_MSG_ERROR([invalid target "$TARGET", choose "native" or "cdk"]); fi +AC_DEFINE_UNQUOTED([TARGET], ["$TARGET"], [target for compilation]) +AC_DEFINE_UNQUOTED([TARGET_ROOT], ["$TARGET_ROOT"], [native: the target root; cdk: empty]) +AC_DEFINE_UNQUOTED([TARGET_PREFIX], ["$TARGET_PREFIX"], [native: auto-assigned path; cdk: path relative to target root]) + if test "$exec_prefix" = "NONE"; then exec_prefix=$prefix fi @@ -228,19 +241,30 @@ AC_SUBST(TARGET_$2) AC_DEFUN([TUXBOX_APPS_DIRECTORY], [ AC_REQUIRE([TUXBOX_APPS]) +# +# FIXME: +# This breaks --sysconfdir= etc. switches in cdk mode. +# Is --with-targetprefix= and the resulting ${TARGET_PREFIX} really needed? +# if test "$TARGET" = "cdk"; then datadir="\${prefix}/share" - sysconfdir="/etc" - localstatedir="/var" - libdir="\${prefix}/lib" - mntdir="/mnt" targetdatadir="\${TARGET_PREFIX}/share" - targetsysconfdir="/etc" - targetlocalstatedir="/var" + + libdir="\${prefix}/lib" targetlibdir="\${TARGET_PREFIX}/lib" + + sysconfdir="/etc" + targetsysconfdir="/etc" + + localstatedir="/var" + targetlocalstatedir="/var" + + mntdir="/mnt" targetmntdir="/mnt" + MNTDIR=$targetmntdir else - mntdir="/mnt" # hack + mntdir="/mnt" + MNTDIR=$mntdir fi TUXBOX_APPS_DIRECTORY_ONE(configdir, CONFIGDIR, localstatedir, /var, /tuxbox/config, diff --git a/src/global.h b/src/global.h index 81639e29f..41f919efa 100644 --- a/src/global.h +++ b/src/global.h @@ -29,7 +29,7 @@ #define NEUTRINO_CPP extern #endif -#define IMAGE_VERSION_FILE "/.version" +#define IMAGE_VERSION_FILE TARGET_ROOT "/.version" #define NEUTRINO_SETTINGS_FILE CONFIGDIR "/neutrino.conf" #define NEUTRINO_SCAN_SETTINGS_FILE CONFIGDIR "/scan.conf" @@ -108,8 +108,4 @@ NEUTRINO_CPP CRadioTextGUI *g_RadiotextWin; #define ENABLE_GUI_MOUNT #endif -#ifndef TARGET_PREFIX -#define TARGET_PREFIX "" -#endif - #endif /* __neutrino_global_h__ */ diff --git a/src/gui/imageinfo.cpp b/src/gui/imageinfo.cpp index 36c9c9fcf..913f6e8cb 100644 --- a/src/gui/imageinfo.cpp +++ b/src/gui/imageinfo.cpp @@ -54,8 +54,8 @@ #include #include -#define OS_RELEASE_FILE "/usr/lib/os-release" -#define OE_IMAGE_VERSION_FILE "/etc/image-version" +#define OS_RELEASE_FILE TARGET_ROOT "/usr/lib/os-release" +#define OE_IMAGE_VERSION_FILE TARGET_ROOT "/etc/image-version" using namespace std; diff --git a/src/neutrino.cpp b/src/neutrino.cpp index e3480650d..ccd46b5bf 100644 --- a/src/neutrino.cpp +++ b/src/neutrino.cpp @@ -387,7 +387,7 @@ int CNeutrinoApp::loadSetup(const char *fname) CGLCDThemes::getInstance()->getTheme(configfile); g_settings.glcd_enable = configfile.getInt32("glcd_enable", strcmp(g_info.hw_caps->boxvendor, "VU+") == 0 || strcmp(g_info.hw_caps->boxvendor, "AXAS") == 0 || strcmp(g_info.hw_caps->boxvendor, "Protek") == 0); - g_settings.glcd_logodir = configfile.getString("glcd_logodir", "/media/sda1/logos"); + g_settings.glcd_logodir = configfile.getString("glcd_logodir", TARGET_ROOT "/media/sda1/logos"); g_settings.glcd_brightness = configfile.getInt32("glcd_brightness", GLCD_DEFAULT_BRIGHTNESS); g_settings.glcd_brightness_dim = configfile.getInt32("glcd_brightness_dim", GLCD_DEFAULT_BRIGHTNESS_DIM); @@ -407,7 +407,7 @@ int CNeutrinoApp::loadSetup(const char *fname) #ifdef ENABLE_LCD4LINUX g_settings.lcd4l_support = configfile.getInt32("lcd4l_support", 0); - g_settings.lcd4l_logodir = configfile.getString("lcd4l_logodir", "/media/sda1/logos"); + g_settings.lcd4l_logodir = configfile.getString("lcd4l_logodir", TARGET_ROOT "/media/sda1/logos"); g_settings.lcd4l_display_type = configfile.getInt32("lcd4l_display_type", CLCD4l::DPF320x240); g_settings.lcd4l_skin = configfile.getInt32("lcd4l_skin", 0); g_settings.lcd4l_skin_radio = configfile.getInt32("lcd4l_skin_radio", 0); @@ -740,7 +740,7 @@ int CNeutrinoApp::loadSetup(const char *fname) g_settings.timezone = configfile.getString("timezone", "(GMT+01:00) Amsterdam, Berlin, Bern, Rome, Vienna"); // epg - g_settings.epg_dir = configfile.getString("epg_dir", "/media/sda1/epg"); + g_settings.epg_dir = configfile.getString("epg_dir", TARGET_ROOT "/media/sda1/epg"); g_settings.epg_cache = configfile.getInt32("epg_cache_time", 7); g_settings.epg_extendedcache = configfile.getInt32("epg_extendedcache_time", 168); g_settings.epg_max_events = configfile.getInt32("epg_max_events", 30000); @@ -795,14 +795,14 @@ int CNeutrinoApp::loadSetup(const char *fname) g_settings.network_nfs[i].password = configfile.getString("network_nfs_password_" + i_str, ""); } - g_settings.network_nfs_audioplayerdir = configfile.getString("network_nfs_audioplayerdir", "/media/sda1/music"); - g_settings.network_nfs_moviedir = configfile.getString("network_nfs_moviedir", "/media/sda1/movies"); - g_settings.network_nfs_picturedir = configfile.getString("network_nfs_picturedir", "/media/sda1/pictures"); - g_settings.network_nfs_recordingdir = configfile.getString("network_nfs_recordingdir", "/media/sda1/movies"); - g_settings.network_nfs_streamripperdir = configfile.getString("network_nfs_streamripperdir", "/media/sda1/music/streamripper"); + g_settings.network_nfs_audioplayerdir = configfile.getString("network_nfs_audioplayerdir", TARGET_ROOT "/media/sda1/music"); + g_settings.network_nfs_moviedir = configfile.getString("network_nfs_moviedir", TARGET_ROOT "/media/sda1/movies"); + g_settings.network_nfs_picturedir = configfile.getString("network_nfs_picturedir", TARGET_ROOT "/media/sda1/pictures"); + g_settings.network_nfs_recordingdir = configfile.getString("network_nfs_recordingdir", TARGET_ROOT "/media/sda1/movies"); + g_settings.network_nfs_streamripperdir = configfile.getString("network_nfs_streamripperdir", TARGET_ROOT "/media/sda1/music/streamripper"); g_settings.downloadcache_dir = configfile.getString("downloadcache_dir", g_settings.network_nfs_recordingdir.c_str()); - g_settings.logo_hdd_dir = configfile.getString("logo_hdd_dir", "/media/sda1/logos"); + g_settings.logo_hdd_dir = configfile.getString("logo_hdd_dir", TARGET_ROOT "/media/sda1/logos"); // recording g_settings.record_hours = configfile.getInt32("record_hours", 4); @@ -981,7 +981,7 @@ int CNeutrinoApp::loadSetup(const char *fname) g_settings.livestreamScriptPath = configfile.getString("livestreamScriptPath", WEBTVDIR); // plugins - g_settings.plugin_hdd_dir = configfile.getString("plugin_hdd_dir", "/media/sda1/plugins"); + g_settings.plugin_hdd_dir = configfile.getString("plugin_hdd_dir", TARGET_ROOT "/media/sda1/plugins"); g_settings.plugins_disabled = configfile.getString("plugins_disabled", ""); g_settings.plugins_game = configfile.getString("plugins_game", ""); g_settings.plugins_lua = configfile.getString("plugins_lua", ""); @@ -992,7 +992,7 @@ int CNeutrinoApp::loadSetup(const char *fname) g_settings.movieplayer_plugin = configfile.getString("movieplayer_plugin", "---"); // screenshot - g_settings.screenshot_dir = configfile.getString("screenshot_dir", "/media/sda1/movies"); + g_settings.screenshot_dir = configfile.getString("screenshot_dir", TARGET_ROOT "/media/sda1/movies"); g_settings.screenshot_count = configfile.getInt32("screenshot_count", 1); g_settings.screenshot_cover = configfile.getInt32("screenshot_cover", 0); g_settings.screenshot_format = configfile.getInt32("screenshot_format", 1); @@ -1078,7 +1078,7 @@ int CNeutrinoApp::loadSetup(const char *fname) g_settings.flashupdate_createimage_add_uldr = configfile.getInt32("flashupdate_createimage_add_uldr", 1); g_settings.flashupdate_createimage_add_var = configfile.getInt32("flashupdate_createimage_add_var", 1); - g_settings.backup_dir = configfile.getString("backup_dir", "/media"); + g_settings.backup_dir = configfile.getString("backup_dir", TARGET_ROOT "/media"); g_settings.update_dir = configfile.getString("update_dir", "/tmp"); g_settings.update_dir_opkg = configfile.getString("update_dir_opkg", g_settings.update_dir);