mirror of
https://github.com/tuxbox-neutrino/neutrino.git
synced 2025-09-01 09:51:22 +02:00
- add --enable-pkg-management configure switch; default=no
Conflicts: src/gui/Makefile.am src/gui/update_settings.cpp src/neutrino.cpp Signed-off-by: Thilo Graf <dbt@novatux.de> Added vanhofens flash update check. Reason: build was broken and makes maintenance easier.
This commit is contained in:
@@ -251,6 +251,11 @@ AC_ARG_ENABLE(extupdate,
|
||||
AC_DEFINE(ENABLE_EXTUPDATE, 1, [enable extended update routine]))
|
||||
AM_CONDITIONAL(ENABLE_EXTUPDATE, test "$enable_extupdate" = "yes")
|
||||
|
||||
AC_ARG_ENABLE(pkg-management,
|
||||
AS_HELP_STRING([--enable-pkg-management], [enable package management @<:@default=no@:>@]),
|
||||
AC_DEFINE(ENABLE_PKG_MANAGEMENT, 1, [enable package management]))
|
||||
AM_CONDITIONAL(ENABLE_PKG_MANAGEMENT, test "$enable_pkg_management" = "yes")
|
||||
|
||||
AC_ARG_ENABLE(lua,
|
||||
AS_HELP_STRING([--enable-lua], [enable Lua support @<:@default=yes@:>@]),
|
||||
[enable_lua="$enableval"],
|
||||
|
@@ -74,7 +74,6 @@ libneutrino_gui_a_SOURCES = \
|
||||
network_service.cpp \
|
||||
network_setup.cpp \
|
||||
nfs.cpp \
|
||||
opkg_manager.cpp \
|
||||
osd_helpers.cpp \
|
||||
osd_progressbar_setup.cpp \
|
||||
osd_setup.cpp \
|
||||
@@ -102,7 +101,7 @@ libneutrino_gui_a_SOURCES = \
|
||||
themes.cpp \
|
||||
timeosd.cpp \
|
||||
update.cpp \
|
||||
update_check_packages.cpp \
|
||||
update_check.cpp \
|
||||
update_menue.cpp \
|
||||
update_settings.cpp \
|
||||
user_menue.cpp \
|
||||
@@ -115,6 +114,12 @@ libneutrino_gui_a_SOURCES = \
|
||||
xmltv_setup.cpp \
|
||||
zapit_setup.cpp
|
||||
|
||||
if ENABLE_PKG_MANAGEMENT
|
||||
libneutrino_gui_a_SOURCES += \
|
||||
opkg_manager.cpp \
|
||||
update_check_packages.cpp
|
||||
endif
|
||||
|
||||
if ENABLE_LCD4LINUX
|
||||
libneutrino_gui_a_SOURCES += \
|
||||
lcd4l_setup.cpp
|
||||
|
@@ -48,7 +48,9 @@
|
||||
#include "scan_setup.h"
|
||||
#include "settings_manager.h"
|
||||
#include "videosettings.h"
|
||||
#if ENABLE_PKG_MANAGEMENT
|
||||
#include "opkg_manager.h"
|
||||
#endif
|
||||
#include <zapit/zapit.h>
|
||||
#include <system/helpers.h>
|
||||
|
||||
@@ -135,6 +137,7 @@ int CStartUpWizard::exec(CMenuTarget* parent, const string & /*actionKey*/)
|
||||
CNetworkSetup::getInstance()->setWizardMode(SNeutrinoSettings::WIZARD_OFF);
|
||||
}
|
||||
|
||||
#if ENABLE_PKG_MANAGEMENT
|
||||
//package update check
|
||||
if(advanced && res != menu_return::RETURN_EXIT_ALL)
|
||||
{
|
||||
@@ -149,6 +152,7 @@ int CStartUpWizard::exec(CMenuTarget* parent, const string & /*actionKey*/)
|
||||
g_settings.softupdate_autocheck_packages = true;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
bool init_settings = false;
|
||||
if (CFEManager::getInstance()->haveSat())
|
||||
|
@@ -49,7 +49,9 @@
|
||||
|
||||
#include <gui/color.h>
|
||||
#include <gui/filebrowser.h>
|
||||
#if ENABLE_PKG_MANAGEMENT
|
||||
#include <gui/opkg_manager.h>
|
||||
#endif
|
||||
#include <gui/widget/msgbox.h>
|
||||
#include <gui/widget/hintbox.h>
|
||||
|
||||
@@ -495,6 +497,7 @@ bool CFlashUpdate::checkVersion4Update()
|
||||
}
|
||||
hide();
|
||||
|
||||
#if ENABLE_PKG_MANAGEMENT
|
||||
//package install:
|
||||
if (file_selected->getType() == CFile::FILE_PKG_PACKAGE){
|
||||
COPKGManager opkg;
|
||||
@@ -510,6 +513,7 @@ bool CFlashUpdate::checkVersion4Update()
|
||||
//!always leave here!
|
||||
return false;
|
||||
}
|
||||
#endif
|
||||
|
||||
//set internal filetype
|
||||
char const * ptr = rindex(filename.c_str(), '.');
|
||||
|
115
src/gui/update_check.cpp
Normal file
115
src/gui/update_check.cpp
Normal file
@@ -0,0 +1,115 @@
|
||||
/*
|
||||
update-check
|
||||
|
||||
Copyright (C) 2017 'vanhofen'
|
||||
Homepage: http://www.neutrino-images.de/
|
||||
|
||||
License: GPL
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
*/
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include <config.h>
|
||||
#endif
|
||||
|
||||
#include <pthread.h>
|
||||
#include <unistd.h>
|
||||
|
||||
#include <global.h>
|
||||
#include <neutrino.h>
|
||||
|
||||
#include <system/set_threadname.h>
|
||||
#include <gui/update.h>
|
||||
|
||||
#include "update_check.h"
|
||||
|
||||
#define C4U_SLEEP (6 * 60 * 60) // 6 hours
|
||||
#define C4U_FLAGFILE FLAGDIR "/.update"
|
||||
|
||||
/* ----------------------------------------------------------------- */
|
||||
|
||||
CFlashUpdateCheck::CFlashUpdateCheck()
|
||||
{
|
||||
c4u_thread = 0;
|
||||
}
|
||||
|
||||
CFlashUpdateCheck::~CFlashUpdateCheck()
|
||||
{
|
||||
stopThread();
|
||||
}
|
||||
|
||||
CFlashUpdateCheck* CFlashUpdateCheck::getInstance()
|
||||
{
|
||||
static CFlashUpdateCheck * c4u = NULL;
|
||||
if (!c4u)
|
||||
c4u = new CFlashUpdateCheck();
|
||||
|
||||
return c4u;
|
||||
}
|
||||
|
||||
void CFlashUpdateCheck::startThread()
|
||||
{
|
||||
if (!c4u_thread)
|
||||
{
|
||||
printf("[CFlashUpdateCheck]: starting thread\n");
|
||||
pthread_create(&c4u_thread, NULL, c4u_proc, (void*) NULL);
|
||||
pthread_detach(c4u_thread);
|
||||
}
|
||||
}
|
||||
|
||||
void CFlashUpdateCheck::stopThread()
|
||||
{
|
||||
if (c4u_thread)
|
||||
{
|
||||
printf("[CFlashUpdateCheck]: stopping thread\n");
|
||||
pthread_cancel(c4u_thread);
|
||||
}
|
||||
c4u_thread = 0;
|
||||
|
||||
if (access(C4U_FLAGFILE, F_OK) == 0)
|
||||
unlink(C4U_FLAGFILE);
|
||||
}
|
||||
|
||||
void* CFlashUpdateCheck::c4u_proc(void*)
|
||||
{
|
||||
set_threadname("n:flashupdatecheck");
|
||||
|
||||
pthread_setcancelstate(PTHREAD_CANCEL_ENABLE, 0);
|
||||
pthread_setcanceltype(PTHREAD_CANCEL_ASYNCHRONOUS, 0);
|
||||
|
||||
CFlashUpdate flashupdate;
|
||||
|
||||
//printf("[CFlashUpdateCheck] %s: starting loop\n", __FUNCTION__);
|
||||
while(1)
|
||||
{
|
||||
//printf("[CFlashUpdateCheck]: check for updates\n");
|
||||
if (flashupdate.checkOnlineVersion())
|
||||
{
|
||||
//printf("[CFlashUpdateCheck]: update available\n");
|
||||
if (FILE *f = fopen(C4U_FLAGFILE, "w"))
|
||||
fclose(f);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (access(C4U_FLAGFILE, F_OK) == 0)
|
||||
unlink(C4U_FLAGFILE);
|
||||
}
|
||||
|
||||
sleep(C4U_SLEEP);
|
||||
}
|
||||
return 0;
|
||||
}
|
44
src/gui/update_check.h
Normal file
44
src/gui/update_check.h
Normal file
@@ -0,0 +1,44 @@
|
||||
/*
|
||||
update-check
|
||||
|
||||
Copyright (C) 2017 'vanhofen'
|
||||
Homepage: http://www.neutrino-images.de/
|
||||
|
||||
License: GPL
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
*/
|
||||
|
||||
#ifndef __update_check__
|
||||
#define __update_check__
|
||||
|
||||
class CFlashUpdateCheck
|
||||
{
|
||||
public:
|
||||
CFlashUpdateCheck();
|
||||
~CFlashUpdateCheck();
|
||||
static CFlashUpdateCheck* getInstance();
|
||||
|
||||
void startThread();
|
||||
void stopThread();
|
||||
|
||||
private:
|
||||
|
||||
pthread_t c4u_thread;
|
||||
static void* c4u_proc(void *arg);
|
||||
};
|
||||
|
||||
#endif // __update_check__
|
@@ -41,7 +41,9 @@
|
||||
|
||||
#include "update_menue.h"
|
||||
#include "update_settings.h"
|
||||
#if ENABLE_PKG_MANAGEMENT
|
||||
#include "gui/opkg_manager.h"
|
||||
#endif
|
||||
#include <gui/widget/icons.h>
|
||||
#include <driver/screen_max.h>
|
||||
#include <system/debug.h>
|
||||
@@ -80,6 +82,7 @@ int CSoftwareUpdate::showSoftwareUpdate()
|
||||
softUpdate.addIntroItems(LOCALE_SERVICEMENU_UPDATE);
|
||||
|
||||
unsigned int inetkey = CRCInput::RC_red;
|
||||
#if ENABLE_PKG_MANAGEMENT
|
||||
if (COPKGManager::hasOpkgSupport()) {
|
||||
//firmware update via opkg
|
||||
mf = new CMenuDForwarder(LOCALE_OPKG_TITLE, true, NULL, new COPKGManager(), NULL, CRCInput::RC_red);
|
||||
@@ -87,6 +90,7 @@ int CSoftwareUpdate::showSoftwareUpdate()
|
||||
softUpdate.addItem(mf);
|
||||
inetkey = CRCInput::convertDigitToKey(1);
|
||||
}
|
||||
#endif
|
||||
|
||||
bool allow_update = true;//!CRecordManager::getInstance()->RecordingStatus() || CRecordManager::getInstance()->TimeshiftOnly();
|
||||
|
||||
|
@@ -38,8 +38,11 @@
|
||||
#include <mymenu.h>
|
||||
#include <neutrino_menue.h>
|
||||
#include <gui/filebrowser.h>
|
||||
#include <gui/update_check.h>
|
||||
#if ENABLE_PKG_MANAGEMENT
|
||||
#include <gui/opkg_manager.h>
|
||||
#include <gui/update_check_packages.h>
|
||||
#endif
|
||||
#include <gui/update_ext.h>
|
||||
#include <gui/update_settings.h>
|
||||
#include <gui/widget/icons.h>
|
||||
@@ -160,19 +163,17 @@ int CUpdateSettings::initMenu()
|
||||
#endif
|
||||
|
||||
CMenuOptionChooser *autocheck = NULL;
|
||||
#if 0
|
||||
autocheck = new CMenuOptionChooser(LOCALE_FLASHUPDATE_AUTOCHECK, &g_settings.softupdate_autocheck, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true, this);
|
||||
autocheck->setHint("", LOCALE_MENU_HINT_AUTO_UPDATE_CHECK);
|
||||
#endif
|
||||
|
||||
#if ENABLE_PKG_MANAGEMENT
|
||||
CMenuOptionChooser *package_autocheck = NULL;
|
||||
if (COPKGManager::hasOpkgSupport()){
|
||||
package_autocheck = new CMenuOptionChooser(LOCALE_FLASHUPDATE_AUTOCHECK_PACKAGES, &g_settings.softupdate_autocheck_packages, AUTOUPDATE_CHECK_OPTIONS, auto_update_options_count, true, this);
|
||||
package_autocheck->setHint("", LOCALE_MENU_HINT_AUTO_UPDATE_CHECK);
|
||||
}
|
||||
|
||||
#endif
|
||||
w_upsettings.addItem(fw_update_dir);
|
||||
if (fw_url)
|
||||
w_upsettings.addItem(fw_url);
|
||||
#if ENABLE_EXTUPDATE
|
||||
w_upsettings.addItem(name_backup);
|
||||
@@ -184,8 +185,10 @@ int CUpdateSettings::initMenu()
|
||||
#endif
|
||||
if (autocheck)
|
||||
w_upsettings.addItem(autocheck);
|
||||
#if ENABLE_PKG_MANAGEMENT
|
||||
if (package_autocheck)
|
||||
w_upsettings.addItem(package_autocheck);
|
||||
#endif
|
||||
#if 0
|
||||
w_upsettings.addItem(apply_kernel);
|
||||
#endif
|
||||
@@ -200,14 +203,14 @@ bool CUpdateSettings::changeNotify(const neutrino_locale_t OptionName, void * /*
|
||||
{
|
||||
if (ARE_LOCALES_EQUAL(OptionName, LOCALE_FLASHUPDATE_AUTOCHECK) || ARE_LOCALES_EQUAL(OptionName, LOCALE_FLASHUPDATE_AUTOCHECK_PACKAGES))
|
||||
{
|
||||
#if 0
|
||||
CUpdateCheck::getInstance()->stopTimer();
|
||||
CFlashUpdateCheck::getInstance()->stopThread();
|
||||
if (g_settings.softupdate_autocheck)
|
||||
CUpdateCheck::getInstance()->startThread();
|
||||
#endif
|
||||
CUpdateCheckPackages::getInstance()->stopTimer();
|
||||
CFlashUpdateCheck::getInstance()->startThread();
|
||||
#if ENABLE_PKG_MANAGEMENT
|
||||
CUpdateCheckPackages::getInstance()->stopThread();
|
||||
if (g_settings.softupdate_autocheck_packages)
|
||||
CUpdateCheckPackages::getInstance()->startThread();
|
||||
#endif
|
||||
}
|
||||
|
||||
return false;
|
||||
|
@@ -97,8 +97,10 @@
|
||||
#include "gui/start_wizard.h"
|
||||
#include "gui/update_ext.h"
|
||||
#include "gui/update.h"
|
||||
//#include "gui/update_check.h"
|
||||
#include "gui/update_check.h"
|
||||
#if ENABLE_PKG_MANAGEMENT
|
||||
#include "gui/update_check_packages.h"
|
||||
#endif
|
||||
#include "gui/videosettings.h"
|
||||
#include "gui/audio_select.h"
|
||||
#include "gui/weather.h"
|
||||
@@ -398,7 +400,9 @@ int CNeutrinoApp::loadSetup(const char * fname)
|
||||
|
||||
|
||||
g_settings.softupdate_autocheck = configfile.getBool("softupdate_autocheck" , false);
|
||||
#if ENABLE_PKG_MANAGEMENT
|
||||
g_settings.softupdate_autocheck_packages = configfile.getInt32("softupdate_autocheck_packages" , false);
|
||||
#endif
|
||||
|
||||
// video
|
||||
int vid_Mode_default = VIDEO_STD_720P50;
|
||||
@@ -1879,7 +1883,9 @@ void CNeutrinoApp::saveSetup(const char * fname)
|
||||
configfile.setInt32 ("softupdate_name_mode_apply", g_settings.softupdate_name_mode_apply);
|
||||
configfile.setInt32 ("softupdate_name_mode_backup", g_settings.softupdate_name_mode_backup);
|
||||
configfile.setBool("softupdate_autocheck", g_settings.softupdate_autocheck);
|
||||
#if ENABLE_PKG_MANAGEMENT
|
||||
configfile.setInt32("softupdate_autocheck_packages", g_settings.softupdate_autocheck_packages);
|
||||
#endif
|
||||
|
||||
configfile.setInt32("flashupdate_createimage_add_var", g_settings.flashupdate_createimage_add_var);
|
||||
configfile.setInt32("flashupdate_createimage_add_root1", g_settings.flashupdate_createimage_add_root1);
|
||||
@@ -3062,9 +3068,8 @@ TIMER_START();
|
||||
#endif
|
||||
|
||||
TIMER_STOP("################################## after all ##################################");
|
||||
#if 0
|
||||
if (g_settings.softupdate_autocheck) {
|
||||
|
||||
#if 0
|
||||
hintBox = new CHintBox(LOCALE_MESSAGEBOX_INFO, g_Locale->getText(LOCALE_FLASHUPDATE_CHECKUPDATE_INTERNET));
|
||||
hintBox->paint();
|
||||
CFlashUpdate flash;
|
||||
@@ -3075,12 +3080,13 @@ TIMER_STOP("################################## after all #######################
|
||||
}
|
||||
hintBox->hide();
|
||||
delete hintBox;
|
||||
|
||||
CUpdateCheck::getInstance()->startThread();
|
||||
}
|
||||
#endif
|
||||
CFlashUpdateCheck::getInstance()->startThread();
|
||||
}
|
||||
#if ENABLE_PKG_MANAGEMENT
|
||||
if (g_settings.softupdate_autocheck_packages)
|
||||
CUpdateCheckPackages::getInstance()->startThread();
|
||||
#endif
|
||||
|
||||
for (std::list<std::string>::iterator it = g_settings.xmltv_xml.begin(); it != g_settings.xmltv_xml.end(); it++)
|
||||
g_Sectionsd->readSIfromXMLTV((*it).c_str());
|
||||
|
@@ -829,7 +829,9 @@ struct SNeutrinoSettings
|
||||
std::string softupdate_proxyusername;
|
||||
std::string softupdate_proxypassword;
|
||||
int softupdate_autocheck;
|
||||
#if ENABLE_PKG_MANAGEMENT
|
||||
int softupdate_autocheck_packages;
|
||||
#endif
|
||||
int softupdate_name_mode_apply;
|
||||
int softupdate_name_mode_backup;
|
||||
int apply_settings;
|
||||
|
Reference in New Issue
Block a user