diff options
author | James Meyer <james.meyer@operamail.com> | 2008-11-23 03:47:32 (GMT) |
---|---|---|
committer | James Meyer <james.meyer@operamail.com> | 2008-11-23 03:47:32 (GMT) |
commit | a73aa26202d19da424722bcf1285b566dbfd9d8d (patch) | |
tree | cc24843c13127ef3b5d8207aa7c82be0b1f00d37 | |
parent | a1219610c24fc89e2e4c1b81194fe25e40933cf5 (diff) | |
download | linhes_pkgbuild-a73aa26202d19da424722bcf1285b566dbfd9d8d.zip linhes_pkgbuild-a73aa26202d19da424722bcf1285b566dbfd9d8d.tar.gz linhes_pkgbuild-a73aa26202d19da424722bcf1285b566dbfd9d8d.tar.bz2 |
add mythvantage specific packages.
150 files changed, 6536 insertions, 0 deletions
diff --git a/abs/mv-core/myth/release-fixes/Midnight-blue/PKGBUILD b/abs/mv-core/myth/release-fixes/Midnight-blue/PKGBUILD new file mode 100755 index 0000000..eb0eed1 --- /dev/null +++ b/abs/mv-core/myth/release-fixes/Midnight-blue/PKGBUILD @@ -0,0 +1,21 @@ +pkgname=Midnight-blue +pkgver=1 +pkgrel=22 +pkgdesc="" +url="" +license="" +depends=() +makedepends=() +conflicts=() +replaces=() +backup=() +source=(http://www.mythvantage.com/src/Midnight-blue.tgz) +arch=i686 +md5sums=() + +build() { + cd $startdir/src + mkdir -p $startdir/pkg/usr/local/share/mythtv/themes + cp -rp $pkgname $startdir/pkg/usr/local/share/mythtv/themes/ + +} diff --git a/abs/mv-core/myth/release-fixes/Midnight-wide/PKGBUILD b/abs/mv-core/myth/release-fixes/Midnight-wide/PKGBUILD new file mode 100755 index 0000000..9ddc525 --- /dev/null +++ b/abs/mv-core/myth/release-fixes/Midnight-wide/PKGBUILD @@ -0,0 +1,21 @@ +pkgname=Midnight-wide +pkgver=1 +pkgrel=22 +pkgdesc="" +url="" +license="" +depends=() +makedepends=() +conflicts=() +replaces=() +backup=() +source=(http://www.mythvantage.com/src/Midnight-wide.tgz) +arch=i686 +md5sums=() + +build() { + cd $startdir/src + mkdir -p $startdir/pkg/usr/local/share/mythtv/themes + cp -rp $pkgname $startdir/pkg/usr/local/share/mythtv/themes/ + +} diff --git a/abs/mv-core/myth/release-fixes/MythVanage-mythmenu/MythVantage-menu/HOST_SETTINGS.xml b/abs/mv-core/myth/release-fixes/MythVanage-mythmenu/MythVantage-menu/HOST_SETTINGS.xml new file mode 100755 index 0000000..c9b7e20 --- /dev/null +++ b/abs/mv-core/myth/release-fixes/MythVanage-mythmenu/MythVantage-menu/HOST_SETTINGS.xml @@ -0,0 +1,71 @@ +<mythmenu name="HOST_SETTINGS"> + + <button> + <type>MV_NETWORK_SETUP_MENU</type> + <text>Network Settings</text> + <action>EXEC mythinstall -s network </action> + </button> + + <button> + <type>MV_SYSTEM_SETUP_MENU</type> + <text>System type</text> + <action>EXEC mythinstall -s hostype </action> + </button> + + <button> + <type>MV_MISC_SETUP_MENU</type> + <text>Misc Settings</text> + <action>EXEC mythinstall -s misc </action> + </button> + + <button> + <type>MV_SOFTWARE_MENU</type> + <text>Software</text> + <action>EXEC mythinstall -s plugins </action> + </button> + + <button> + <type>MV_SHUTDOWN_SETUP_MENU</type> + <text>Shutdown settings</text> + <action>EXEC mythinstall -s sleep </action> + </button> + + +<button> + <type>MV_ADVANCED_X_SETUP_MENU</type> + <text>Display</text> + <action>EXEC mythinstall -s advancedX</action> +</button> + +<button> + <type>MV_ADVANCED_SETUP_MENU</type> + <text>Advanced settings</text> + <action>EXEC mythinstall -s advanced</action> +</button> + + +<button> + <type>MV_AUDIO_SETUP_MENU</type> + <text>Audio settings</text> + <action>EXEC mythinstall -s sound </action> +</button> + + +<button> + <type>MV_ACCESS_SETUP_MENU</type> + <text>Access</text> + <action>EXEC mythinstall -s accesscontrol </action> +</button> + <!-- + <button> + <type>SETUP_MENU</type> + <text>Settings profile manager</text> + <action>EXEC mythinstall -t </action> + + </button> + --> + + + + +</mythmenu> diff --git a/abs/mv-core/myth/release-fixes/MythVanage-mythmenu/MythVantage-menu/util_menu.xml b/abs/mv-core/myth/release-fixes/MythVanage-mythmenu/MythVantage-menu/util_menu.xml new file mode 100644 index 0000000..aeecbbb --- /dev/null +++ b/abs/mv-core/myth/release-fixes/MythVanage-mythmenu/MythVantage-menu/util_menu.xml @@ -0,0 +1,121 @@ +<mythmenu name="UTIL"> + + <button> + <type>MUSIC_PLAYLIST</type> + <text>Music Tools</text> + <text lang="IT">Opzioni Musica</text> + <text lang="DE">Musik verwalten</text> + <text lang="IS">Tónlistartól</text> + <text lang="NL">Muziek Beheren</text> + <text lang="SV">Musikverktyg</text> + <text lang="FR">Gestion Musiques</text> + <text lang="JA">ミュージックツール</text> + <text lang="FI">Musiikkityökalut</text> + <text lang="ZH_TW">音樂工具</text> + <text lang="SI">Glasbena orodja</text> + <text lang="ET">Muusikatööriistad</text> + <text lang="NB">Musikkverktøy</text> + <text lang="DK">Musikværktøjer</text> + <text lang="ES">Gestionar Música</text> + <text lang="PT">Gerir Música</text> + <text lang="CZ">Hudební nástroje</text> + <text lang="RU">Работа с музыкой</text> + <text lang="PL">Narzędzia muzyczne</text> + <text lang="HE">כלי מוסיקה</text> + <action>PLUGIN mythmusic</action> + <depends>mythmusic</depends> + </button> + + <button> + <type>VIDEO_MANAGER</type> + <text>Video Manager</text> + <text lang="IT">Gestione Video</text> + <text lang="ES">Gestionar Videos</text> + <text lang="CA">Gestionar vÃdeos</text> + <text lang="DK">Filmopsætning</text> + <text lang="DE">Videos verwalten</text> + <text lang="IS">Kvikmyndatól</text> + <text lang="PT">Gerir Filmes</text> + <text lang="SV">Filmhanterare</text> + <text lang="FR">Gestion Vidéos</text> + <text lang="NL">Films Beheren</text> + <text lang="JA">ビデオマネージャー</text> + <text lang="FI">Videonhallinta</text> + <text lang="ZH_TW">電影工具</text> + <text lang="SI">Video orodja</text> + <text lang="ET">Videohaldus</text> + <text lang="NB">Videobehandler</text> + <text lang="CZ">Manažer filmů</text> + <text lang="RU">Управление фильмами</text> + <text lang="PL">Zarządca Filmów</text> + <text lang="HE">מנהל וידאו</text> + <action>JUMP Video Manager</action> + <depends>mythvideo</depends> + </button> + + <button> + <type>SETUP_KEYS</type> + <text>Edit Keys</text> + <text lang="IT">Modifica Tasti</text> + <text lang="FR">Configurer les touches</text> + <text lang="IS">Stilla takka</text> + <text lang="DE">Tastenbelegung ändern</text> + <text lang="FI">Muokkaa Näppäimiä</text> + <text lang="DK">Redigér tasteindstillinger</text> + <text lang="SV">Ändra knappar</text> + <text lang="ES">Editar Teclas</text> + <text lang="PT">Configurar Teclas</text> + <text lang="ET">Klahvide muutmine</text> + <text lang="NL">Toetsen Aanpassen</text> + <text lang="CZ">Editovat klávesy</text> + <text lang="JA">キー設定</text> + <text lang="RU">Редактировать клавиши</text> + <text lang="SI">Urejanje tipk</text> + <text lang="PL">Edytuj klawisze</text> + <text lang="HE">עריכת מקשים</text> + <action>PLUGIN mythcontrols</action> + <depends>mythcontrols</depends> + </button> + + <button> + <type>SETUP_MENU</type> + <text>Setup</text> + <text lang="IT">Impostazioni</text> + <text lang="ES">Configurar</text> + <text lang="CA">Configurar</text> + <text lang="FR">Paramètres</text> + <text lang="DE">Konfiguration</text> + <text lang="DK">Indstillinger</text> + <text lang="IS">Stillingar</text> + <text lang="NL">Configuratie</text> + <text lang="PT">Configurações</text> + <text lang="SV">Inställningar</text> + <text lang="JA">設定</text> + <text lang="FI">Asetukset</text> + <text lang="ZH_TW">設定</text> + <text lang="SI">Nastavitve</text> + <text lang="ET">Sätted</text> + <text lang="NB">Innstillinger</text> + <text lang="CZ">Nastavení</text> + <text lang="RU">Настройки</text> + <text lang="PL">Ustawienia</text> + <text lang="HE">הגדרה</text> + <action>MENU main_settings.xml</action> + </button> + <button> + <type>MV_SETUP_MENU</type> + <text>MythVantage Settings</text> + <action>MENU HOST_SETTINGS.xml</action> + + </button> + + <button> + <type>MV_TEMPLATE</type> + <text>Settings profile manager</text> + <action>EXEC mythinstall -t </action> + + </button> + + + +</mythmenu> diff --git a/abs/mv-core/myth/release-fixes/MythVanage-mythmenu/MythVantage-menu/util_menu.xml.mv b/abs/mv-core/myth/release-fixes/MythVanage-mythmenu/MythVantage-menu/util_menu.xml.mv new file mode 100755 index 0000000..4a94303 --- /dev/null +++ b/abs/mv-core/myth/release-fixes/MythVanage-mythmenu/MythVantage-menu/util_menu.xml.mv @@ -0,0 +1,106 @@ +<mythmenu name="UTIL"> + + <button> + <type>MUSIC_PLAYLIST</type> + <text>Music Tools</text> + <text lang="DE">Musik verwalten</text> + <text lang="IS">Tónlistartól</text> + <text lang="NL">Muziek Beheren</text> + <text lang="SV">Musikverktyg</text> + <text lang="FR">Musiques</text> + <text lang="JA">ミュージックツール</text> + <text lang="FI">Musiikkityökalut</text> + <text lang="ZH_TW">音樂工具</text> + <text lang="SI">Glasbena orodja</text> + <text lang="ET">Muusikatööriistad</text> + <text lang="NB">Musikkverktøy</text> + <text lang="DK">Musikværktøjer</text> + <text lang="ES">Gestionar Música</text> + <text lang="PT">Gerir Música</text> + <text lang="CZ">Hudební nástroje</text> + <text lang="RU">Работа с музыкой</text> + <action>PLUGIN mythmusic</action> + <depends>mythmusic</depends> + </button> + + <button> + <type>VIDEO_MANAGER</type> + <text>Video Manager</text> + <text lang="ES">Gestionar Videos</text> + <text lang="CA">Gestionar vÃdeos</text> + <text lang="DK">Filmopsætning</text> + <text lang="DE">Videos verwalten</text> + <text lang="IS">Kvikmyndatól</text> + <text lang="PT">Gerir Filmes</text> + <text lang="SV">Filmhanterare</text> + <text lang="FR">Vidéos</text> + <text lang="NL">Films Beheren</text> + <text lang="JA">ビデオマネージャー</text> + <text lang="FI">Videonhallinta</text> + <text lang="ZH_TW">電影工具</text> + <text lang="SI">Video manager</text> + <text lang="ET">Videohaldus</text> + <text lang="NB">Videobehandler</text> + <text lang="CZ">Manažer filmů</text> + <text lang="RU">Управление фильмами</text> + <action>JUMP Video Manager</action> + <depends>mythvideo</depends> + </button> + + <button> + <type>SETUP_KEYS</type> + <text>Edit Keys</text> + <text lang="FR">Configurer les touches</text> + <text lang="IS">Stilla takka</text> + <text lang="DE">Tastenbelegung ändern</text> + <text lang="FI">Muokkaa Näppäimiä</text> + <text lang="DK">Redigér tasteindstillinger</text> + <text lang="SV">Ändra knappar</text> + <text lang="ES">Editar Teclas</text> + <text lang="PT">Configurar Teclas</text> + <text lang="ET">Klahvide muutmine</text> + <text lang="NL">Toetsen Aanpassen</text> + <text lang="CZ">Editovat klávesy</text> + <text lang="JA">キー設定</text> + <text lang="RU">Редактировать клавиши</text> + <action>PLUGIN mythcontrols</action> + <depends>mythcontrols</depends> + </button> + + <button> + <type>SETUP_MENU</type> + <text>Setup</text> + <text lang="IT">Impostazioni</text> + <text lang="ES">Configurar</text> + <text lang="CA">Configurar</text> + <text lang="FR">Configuration</text> + <text lang="DE">Konfiguration</text> + <text lang="DK">Indstillinger</text> + <text lang="IS">Stillingar</text> + <text lang="NL">Configuratie</text> + <text lang="PT">Configurações</text> + <text lang="SV">Inställningar</text> + <text lang="JA">設定</text> + <text lang="FI">Asetukset</text> + <text lang="ZH_TW">設定</text> + <text lang="SI">Nastavitve</text> + <text lang="ET">Sätted</text> + <text lang="NB">Innstillinger</text> + <text lang="CZ">Nastavení</text> + <text lang="RU">Настройки</text> + <action>MENU main_settings.xml</action> + </button> + <button> + <type>MV_SETUP_MENU</type> + <text>MythVantage Settings</text> + <action>MENU HOST_SETTINGS.xml</action> + + </button> + + <button> + <type>MV_TEMPLATE</type> + <text>Settings profile manager</text> + <action>EXEC mythinstall -t </action> + + </button> +</mythmenu> diff --git a/abs/mv-core/myth/release-fixes/MythVanage-mythmenu/PKGBUILD b/abs/mv-core/myth/release-fixes/MythVanage-mythmenu/PKGBUILD new file mode 100755 index 0000000..888228e --- /dev/null +++ b/abs/mv-core/myth/release-fixes/MythVanage-mythmenu/PKGBUILD @@ -0,0 +1,15 @@ +pkgname=MythVantage-mythmenu +pkgver=1.0 +pkgrel=6 +pkgdesc="Myth menu with MythVantage settings" +#depends=( mythtv-svn ) +source=() +arch=('i686') +build() { + cd $startdir/src + rsync -a --exclude=.svn $startdir/MythVantage-menu . + mkdir -p -m 755 $startdir/pkg/usr/local/share/mythtv/themes + cp -rp MythVantage-menu $startdir/pkg/usr/local/share/mythtv/themes + +} + diff --git a/abs/mv-core/myth/release-fixes/basic-amber/PKGBUILD b/abs/mv-core/myth/release-fixes/basic-amber/PKGBUILD new file mode 100755 index 0000000..f31b77f --- /dev/null +++ b/abs/mv-core/myth/release-fixes/basic-amber/PKGBUILD @@ -0,0 +1,20 @@ +pkgname=basic-amber +pkgver=1 +pkgrel=5 +pkgdesc="" +url="" +license="" +depends=() +makedepends=() +conflicts=() +replaces=() +backup=() +source=(http://www.mythvantage.com/src/basic-amber.tgz) +md5sums=() +arch=('i686') +build() { + cd $startdir/src + mkdir -p $startdir/pkg/usr/local/share/mythtv/themes + cp -rp $pkgname $startdir/pkg/usr/local/share/mythtv/themes/ + +} diff --git a/abs/mv-core/myth/release-fixes/basic-blue/PKGBUILD b/abs/mv-core/myth/release-fixes/basic-blue/PKGBUILD new file mode 100755 index 0000000..48e5f8e --- /dev/null +++ b/abs/mv-core/myth/release-fixes/basic-blue/PKGBUILD @@ -0,0 +1,20 @@ +pkgname=basic-blue +pkgver=1 +pkgrel=6 +pkgdesc="" +url="" +license="" +depends=() +makedepends=() +conflicts=() +replaces=() +backup=() +source=(http://www.mythvantage.com/src/basic-blue.tgz) +md5sums=() +arch=('i686') +build() { + cd $startdir/src + mkdir -p $startdir/pkg/usr/local/share/mythtv/themes + #cp -rp $pkgname $startdir/pkg/usr/local/share/mythtv/themes/ + rsync -a --exclude=.svn $pkgname $startdir/pkg/usr/local/share/mythtv/themes/ +} diff --git a/abs/mv-core/myth/release-fixes/basic-green/PKGBUILD b/abs/mv-core/myth/release-fixes/basic-green/PKGBUILD new file mode 100755 index 0000000..f735150 --- /dev/null +++ b/abs/mv-core/myth/release-fixes/basic-green/PKGBUILD @@ -0,0 +1,20 @@ +pkgname=basic-green +pkgver=1 +pkgrel=5 +pkgdesc="" +url="" +license="" +depends=() +makedepends=() +conflicts=() +replaces=() +backup=() +source=(http://www.mythvantage.com/src/basic-green.tgz) +md5sums=() +arch=('i686') +build() { + cd $startdir/src + mkdir -p $startdir/pkg/usr/local/share/mythtv/themes + cp -rp $pkgname $startdir/pkg/usr/local/share/mythtv/themes/ + +} diff --git a/abs/mv-core/myth/release-fixes/basic-purple/PKGBUILD b/abs/mv-core/myth/release-fixes/basic-purple/PKGBUILD new file mode 100755 index 0000000..ff19c9f --- /dev/null +++ b/abs/mv-core/myth/release-fixes/basic-purple/PKGBUILD @@ -0,0 +1,20 @@ +pkgname=basic-purple +pkgver=1 +pkgrel=5 +pkgdesc="" +url="" +license="" +depends=() +makedepends=() +conflicts=() +replaces=() +backup=() +source=(http://www.mythvantage.com/src/basic-purple.tgz) +md5sums=() +arch=('i686') +build() { + cd $startdir/src + mkdir -p $startdir/pkg/usr/local/share/mythtv/themes + cp -rp $pkgname $startdir/pkg/usr/local/share/mythtv/themes/ + +} diff --git a/abs/mv-core/myth/release-fixes/basic-red/PKGBUILD b/abs/mv-core/myth/release-fixes/basic-red/PKGBUILD new file mode 100755 index 0000000..2b8db8a --- /dev/null +++ b/abs/mv-core/myth/release-fixes/basic-red/PKGBUILD @@ -0,0 +1,20 @@ +pkgname=basic-red +pkgver=1 +pkgrel=5 +pkgdesc="" +url="" +license="" +depends=() +makedepends=() +conflicts=() +replaces=() +backup=() +source=(http://www.mythvantage.com/src/basic-red.tgz) +md5sums=() +arch=('i686') +build() { + cd $startdir/src + mkdir -p $startdir/pkg/usr/local/share/mythtv/themes + cp -rp $pkgname $startdir/pkg/usr/local/share/mythtv/themes/ + +} diff --git a/abs/mv-core/myth/release-fixes/compile-plugins.sh b/abs/mv-core/myth/release-fixes/compile-plugins.sh new file mode 100755 index 0000000..22d03d9 --- /dev/null +++ b/abs/mv-core/myth/release-fixes/compile-plugins.sh @@ -0,0 +1,17 @@ +#!/bin/bash +logdir=`pwd` +rm fail.log +for i in plugins/* +do + if [ -d $i ] + then + mydir=`pwd` + + cd $i +# versionpkg -mf||exit 1 + echo "starting $i" + mp -fsr || echo "$i failed" >> $logdir/fail.log + cd $mydir + fi +done + diff --git a/abs/mv-core/myth/release-fixes/mythtv-release-fixes/3466-v1.patch b/abs/mv-core/myth/release-fixes/mythtv-release-fixes/3466-v1.patch new file mode 100755 index 0000000..912ce27 --- /dev/null +++ b/abs/mv-core/myth/release-fixes/mythtv-release-fixes/3466-v1.patch @@ -0,0 +1,240 @@ +Index: libs/libmythtv/NuppelVideoPlayer.cpp +=================================================================== +--- libs/libmythtv/NuppelVideoPlayer.cpp (revision 13535) ++++ libs/libmythtv/NuppelVideoPlayer.cpp (working copy) +@@ -1475,6 +1475,12 @@ + } + } + ++void NuppelVideoPlayer::DrawUnusedRects(bool sync) ++{ ++ if (videoOutput) ++ videoOutput->DrawUnusedRects(sync); ++} ++ + void NuppelVideoPlayer::ResetCaptions(uint mode_override) + { + uint origMode = textDisplayMode; +Index: libs/libmythtv/guidegrid.h +=================================================================== +--- libs/libmythtv/guidegrid.h (revision 13535) ++++ libs/libmythtv/guidegrid.h (working copy) +@@ -86,8 +86,9 @@ + void paintEvent(QPaintEvent *); + + private slots: +- void timeout(); +- void jumpToChannelTimeout(); ++ void timeCheckTimeout(void); ++ void repaintVideoTimeout(void); ++ void jumpToChannelTimeout(void); + + private: + void keyPressEvent(QKeyEvent *e); +@@ -174,6 +175,7 @@ + QString currentTimeColor; + + QTimer *timeCheck; ++ QTimer *videoRepaintTimer; + + bool keyDown; + +Index: libs/libmythtv/tv_play.h +=================================================================== +--- libs/libmythtv/tv_play.h (revision 13535) ++++ libs/libmythtv/tv_play.h (working copy) +@@ -112,6 +112,7 @@ + void StopEmbeddingOutput(void); + bool IsEmbedding(void); + void EPGChannelUpdate(uint chanid, QString channum); ++ void DrawUnusedRects(bool sync); + + // Recording commands + int PlayFromRecorder(int recordernum); +Index: libs/libmythtv/guidegrid.cpp +=================================================================== +--- libs/libmythtv/guidegrid.cpp (revision 13535) ++++ libs/libmythtv/guidegrid.cpp (working copy) +@@ -261,9 +261,14 @@ + + timeCheck = NULL; + timeCheck = new QTimer(this); +- connect(timeCheck, SIGNAL(timeout()), SLOT(timeout()) ); ++ connect(timeCheck, SIGNAL(timeout()), SLOT(timeCheckTimeout()) ); + timeCheck->start(200); + ++ videoRepaintTimer = new QTimer(this); ++ QObject::connect(videoRepaintTimer, SIGNAL(timeout()), ++ this, SLOT(repaintVideoTimeout())); ++ videoRepaintTimer->start(1000); ++ + selectState = false; + + updateBackground(); +@@ -281,18 +286,46 @@ + for (int x = 0; x < MAX_DISPLAY_TIMES; x++) + { + if (m_timeInfos[x]) ++ { + delete m_timeInfos[x]; ++ m_timeInfos[x] = NULL; ++ } + } + + for (int y = 0; y < MAX_DISPLAY_CHANS; y++) + { + if (m_programs[y]) ++ { + delete m_programs[y]; ++ m_programs[y] = NULL; ++ } + } + + m_channelInfos.clear(); + +- delete theme; ++ if (theme) ++ { ++ delete theme; ++ theme = NULL; ++ } ++ ++ if (jumpToChannelTimer) ++ { ++ jumpToChannelTimer->deleteLater(); ++ jumpToChannelTimer = NULL; ++ } ++ ++ if (timeCheck) ++ { ++ timeCheck->deleteLater(); ++ timeCheck = NULL; ++ } ++ ++ if (videoRepaintTimer) ++ { ++ videoRepaintTimer->deleteLater(); ++ videoRepaintTimer = NULL; ++ } + } + + void GuideGrid::keyPressEvent(QKeyEvent *e) +@@ -533,7 +566,7 @@ + return m_channelInfos[idx].chanid; + } + +-void GuideGrid::timeout() ++void GuideGrid::timeCheckTimeout(void) + { + timeCheck->changeInterval((int)(60 * 1000)); + QTime new_time = QTime::currentTime(); +@@ -561,6 +594,12 @@ + repaint(curInfoRect, false); + } + ++void GuideGrid::repaintVideoTimeout(void) ++{ ++ timeCheck->changeInterval(1000); ++ update(videoRect); ++} ++ + void GuideGrid::fillChannelInfos(bool gotostartchannel) + { + m_channelInfos.clear(); +@@ -974,6 +1013,7 @@ + if (r.intersects(videoRect) && m_player) + { + timeCheck->changeInterval((int)(200)); ++ m_player->DrawUnusedRects(false); + } + + qApp->unlock(); +@@ -1794,7 +1834,10 @@ + ChannelInfo info = m_channelInfos[idx]; + + if (m_player) ++ { + m_player->EPGChannelUpdate(info.chanid, info.chanstr); ++ videoRepaintTimer->start(200); ++ } + } + + // +Index: libs/libmythtv/NuppelVideoPlayer.h +=================================================================== +--- libs/libmythtv/NuppelVideoPlayer.h (revision 13535) ++++ libs/libmythtv/NuppelVideoPlayer.h (working copy) +@@ -118,6 +118,7 @@ + void StopEmbedding(void); + void ExposeEvent(void); + bool IsEmbedding(void); ++ void DrawUnusedRects(bool sync); + + // Audio Sets + void SetNoAudio(void) { no_audio_out = true; } +Index: libs/libmythtv/tv_play.cpp +=================================================================== +--- libs/libmythtv/tv_play.cpp (revision 13535) ++++ libs/libmythtv/tv_play.cpp (working copy) +@@ -5035,6 +5035,12 @@ + return false; + } + ++void TV::DrawUnusedRects(bool sync) ++{ ++ if (nvp) ++ nvp->DrawUnusedRects(sync); ++} ++ + void TV::doEditSchedule(int editType) + { + if (!playbackinfo) +Index: libs/libmythtv/videoout_xv.cpp +=================================================================== +--- libs/libmythtv/videoout_xv.cpp (revision 13535) ++++ libs/libmythtv/videoout_xv.cpp (working copy) +@@ -2465,7 +2465,7 @@ + } + + if ((needrepaint || xv_need_bobdeint_repaint) && +- (VideoOutputSubType() >= XVideo)) ++ (VideoOutputSubType() >= XVideo) && !embedding) + { + DrawUnusedRects(/* don't do a sync*/false); + } +@@ -2480,12 +2480,6 @@ + + void VideoOutputXv::DrawUnusedRects(bool sync) + { +- // Unfortunately, this gets drawn in the wrong place on prebuffering +- // pauses when embedding and this is rarely useful when embedding +- // since the background is drawn in guidegrid so we bail here. -- dtk +- if (embedding) +- return; +- + // boboff assumes the smallest interlaced resolution is 480 lines - 5% + bool use_bob = (m_deinterlacing && m_deintfiltername == "bobdeint"); + int boboff_raw = (int)round(((double)display_video_rect.height()) / +@@ -2512,7 +2506,12 @@ + + X11L; + +- if (xv_draw_colorkey && needrepaint) ++ // This is used to avoid drawing the colorkey when embedding and ++ // not using overlay. This is needed because we don't paint this ++ // in the vertical retrace period when calling this from the EPG. ++ bool clrdraw = xv_colorkey || !embedding; ++ ++ if (xv_draw_colorkey && needrepaint && clrdraw) + { + XSetForeground(XJ_disp, XJ_gc, xv_colorkey); + XFillRectangle(XJ_disp, XJ_curwin, XJ_gc, +@@ -2521,7 +2520,7 @@ + display_visible_rect.width(), + display_visible_rect.height() - 2 * boboff); + } +- else if (xv_draw_colorkey && xv_need_bobdeint_repaint) ++ else if (xv_draw_colorkey && xv_need_bobdeint_repaint && clrdraw) + { + // if this is only for deinterlacing mode switching, draw + // the border areas, presumably the main image is undamaged. diff --git a/abs/mv-core/myth/release-fixes/mythtv-release-fixes/PKGBUILD b/abs/mv-core/myth/release-fixes/mythtv-release-fixes/PKGBUILD new file mode 100755 index 0000000..c210b55 --- /dev/null +++ b/abs/mv-core/myth/release-fixes/mythtv-release-fixes/PKGBUILD @@ -0,0 +1,79 @@ +pkgname=mythtv-release-fixes +pkgver=18322 +pkgrel=13 +pkgdesc=".21 A personal video recorder for Linux" +url="http://www.mythtv.org" +license="GPL" +depends=('lame' 'libmysqlclient' 'alsa-lib' 'wget' 'qt3' 'x-server' 'freetype2' 'libmpeg2' 'libxml2' 'libraw1394' 'lirc' 'perl-date-manip' 'libavc1394' 'libdc1394' 'libiec61883') +makedepends=('subversion') +conflicts=(mythtv-svn) +replaces=() +backup=() +options=(!strip) +MAKEFLAGS="-j6" + +install='mythtv.install' +#source=(mythbackend myth.sh 3466-v1.patch reload.patch) +source=(mythbackend myth.sh myth.find_orphans.pl dbconfig.patch myththemedmenu.cpp.patch myththemedmenu.h.patch screenshots2.diff screenshot_jump.patch pop_be_restart.h.patch pop_be_restart.cpp.patch jump_snapshot.patch smolt_jump.patch) +arch=('i686') +md5sums=() +_svntrunk=http://svn.mythtv.org/svn/branches/release-0-21-fixes/mythtv +#_svntrunk=http://cvs.mythtv.org/svn/trunk/mythtv +_svnmod=mythtv + +build() { + svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod + cd $startdir/src/mythtv + patch -p0 < ../dbconfig.patch + grep snapshot programs/mythfrontend/networkcontrol.cpp|grep -q jumpMap + status=$? + + if [ $status != 0 ] + then + echo "patching for screenshot" + patch -p0 < ../screenshots2.diff + patch -p0 < ../screenshot_jump.patch + # patch -p0 < ../jump_snapshot.patch + + else + echo "screenshot already patched" + fi + patch -p0 < ../myththemedmenu.cpp.patch + patch -p0 < ../myththemedmenu.h.patch + patch -p0 < ../pop_be_restart.h.patch + patch -p0 < ../pop_be_restart.cpp.patch + patch -p0 < ../smolt_jump.patch + sed -i -e "s/\`(svnversion \$\${SVNTREEDIR} 2>\/dev\/null) || echo Unknown\`/$pkgver/" version.pro + make distclean + make clean + ./configure --prefix=/usr/local --enable-xvmc --enable-xvmc-pro --enable-opengl-vsync --enable-dvb --enable-firewire --compile-type=release --with-bindings=perl --disable-audio-arts --disable-xrandr --disable-audio-jack + #./configure --prefix=/usr/local --enable-xvmc --enable-xvmc-pro --enable-opengl-vsync --enable-dvb --enable-firewire --compile-type=release --disable-audio-arts --disable-xrandr --without-bindings=perl --disable-audio-jack +. /etc/profile + + make + make INSTALL_ROOT=$startdir/pkg install + mkdir -p $startdir/pkg/usr/local/share/mythtv/contrib + mkdir -p $startdir/pkg/etc/rc.d + mkdir -p $startdir/pkg/var/log/mythtv + mkdir -p $startdir/pkg/etc/profile.d + install -m0755 ../myth.sh $startdir/pkg/etc/profile.d/ +# install contrib + mkdir -p $startdir/pkg/usr/local/share/mythtv/contrib || return 1 + #cp -rp contrib/* $startdir/pkg/usr/local/share/mythtv/contrib + rsync -a --exclude=.svn contrib/* $startdir/pkg/usr/local/share/mythtv/contrib + echo "-release-fixes" > $startdir/pkg/usr/local/share/mythtv/.releasetype + #install -m0755 themes/*.ttf $startdir/pkg/usr/local/share/mythtv/themes/ + # set suid on mythfrontend +# chmod a+s $startdir/pkg/usr/local/bin/mythfrontend + +# mkdir -p $startdir/pkg/usr/lib/ +# mv $startdir/pkg/usr/local/lib/perl5 $startdir/pkg/usr/lib/perl5 + cd $startdir/src/mythtv/contrib + gcc -Wall -o firewire_tester firewire_tester.c -liec61883 -lraw1394 + install -m0755 firewire_tester $startdir/pkg/usr/local/bin/firewire_tester + install -m0755 $startdir/pkg/usr/local/share/mythtv/contrib/optimize_mythdb.pl $startdir/pkg/usr/local/bin/optimize_mythdb.pl + cp $startdir/src/myth.find_orphans.pl $startdir/pkg/usr/local/share/mythtv/contrib/myth.find_orphans.pl + install -m0755 $startdir/pkg/usr/local/share/mythtv/contrib/myth.find_orphans.pl $startdir/pkg/usr/local/bin/myth.find_orphans.pl + + +} diff --git a/abs/mv-core/myth/release-fixes/mythtv-release-fixes/dbconfig.patch b/abs/mv-core/myth/release-fixes/mythtv-release-fixes/dbconfig.patch new file mode 100644 index 0000000..1d181ac --- /dev/null +++ b/abs/mv-core/myth/release-fixes/mythtv-release-fixes/dbconfig.patch @@ -0,0 +1,19 @@ +--- libs/libmyth/mythcontext.cpp 2007-10-04 00:20:28.000000000 -0500 ++++ libs/libmyth/mythcontext.cpp.new 2007-11-12 22:54:57.000000000 -0600 +@@ -852,14 +852,14 @@ + cout << endl << error << endl << endl; + response = getResponse("Would you like to configure the database " + "connection now?", +- "yes"); ++ "no"); + if (!response || response.left(1).lower() != "y") + return false; + + params.dbHostName = getResponse("Database host name:", + params.dbHostName); + response = getResponse("Should I test connectivity to this host " +- "using the ping command?", "yes"); ++ "using the ping command?", "no"); + params.dbHostPing = (!response || response.left(1).lower() != "y"); + + params.dbPort = intResponse("Database non-default port:", diff --git a/abs/mv-core/myth/release-fixes/mythtv-release-fixes/debug_uitypes.cpp.patch b/abs/mv-core/myth/release-fixes/mythtv-release-fixes/debug_uitypes.cpp.patch new file mode 100644 index 0000000..b87b89f --- /dev/null +++ b/abs/mv-core/myth/release-fixes/mythtv-release-fixes/debug_uitypes.cpp.patch @@ -0,0 +1,21 @@ +--- mythtv/libs/libmyth/uitypes.cpp.orig 2007-11-30 14:03:07.000000000 -0600 ++++ mythtv/libs/libmyth/uitypes.cpp 2007-11-30 14:04:09.000000000 -0600 +@@ -3831,15 +3831,15 @@ + // + // Debugging, draw edges around bins + // +- +- /* ++ if (m_debug == true) ++ { + p->setPen(QColor(255,0,0)); + CornerMap::Iterator it; + for ( it = bin_corners.begin(); it != bin_corners.end(); ++it ) + { + p->drawRect(it.data()); + } +- */ ++ } + + } + diff --git a/abs/mv-core/myth/release-fixes/mythtv-release-fixes/debug_xmlparse.cpp.patch b/abs/mv-core/myth/release-fixes/mythtv-release-fixes/debug_xmlparse.cpp.patch new file mode 100644 index 0000000..f479bbe --- /dev/null +++ b/abs/mv-core/myth/release-fixes/mythtv-release-fixes/debug_xmlparse.cpp.patch @@ -0,0 +1,14 @@ +--- mythtv/libs/libmyth/xmlparse.cpp.orig 2007-11-30 14:03:00.000000000 -0600 ++++ mythtv/libs/libmyth/xmlparse.cpp 2007-11-30 14:06:22.000000000 -0600 +@@ -2618,6 +2618,11 @@ + area = parseRect(getFirstText(info)); + normalizeRect(area); + } ++ if (info.tagName() == "debug") ++ { ++ if (getFirstText(info) == "true") ++ container->SetDebug(true); ++ } + else if (info.tagName() == "image") + { + QString imgname = ""; diff --git a/abs/mv-core/myth/release-fixes/mythtv-release-fixes/jump_snapshot.patch b/abs/mv-core/myth/release-fixes/mythtv-release-fixes/jump_snapshot.patch new file mode 100644 index 0000000..2d2c68b --- /dev/null +++ b/abs/mv-core/myth/release-fixes/mythtv-release-fixes/jump_snapshot.patch @@ -0,0 +1,13 @@ +--- libs/libmythui/mythmainwindow.cpp.orrig 2008-03-19 18:43:08.000000000 +0000 ++++ libs/libmythui/mythmainwindow.cpp 2008-03-19 18:43:51.000000000 +0000 +@@ -1132,7 +1132,9 @@ + + void MythMainWindow::JumpTo(const QString& destination, bool pop) + { +- if (d->destinationMap.count(destination) > 0 && d->exitmenucallback == NULL) ++ if (destination == "ScreenShot") ++ screenShot(); ++ else if (d->destinationMap.count(destination) > 0 && d->exitmenucallback == NULL) + { + d->exitingtomain = true; + d->popwindows = pop; diff --git a/abs/mv-core/myth/release-fixes/mythtv-release-fixes/myth.find_orphans.pl b/abs/mv-core/myth/release-fixes/mythtv-release-fixes/myth.find_orphans.pl new file mode 100755 index 0000000..c258e1d --- /dev/null +++ b/abs/mv-core/myth/release-fixes/mythtv-release-fixes/myth.find_orphans.pl @@ -0,0 +1,260 @@ +#!/usr/bin/perl + +# check for recording anomolies - +# based somewhat on greg froese's "myth.rebuilddatabase.pl" +# -- Lincoln Dale <ltd@interlink.com.au>, September 2006 +# 2007-03-11: Added pretty print of unknown files vs. orphaned thumbnails. (Robert Kulagowski) + +# The intent of this script is to be able to find orphaned rows in the 'recorded' table +# (entries which don't have matching media files) and orphaned media files (potentially +# taking up gigabytes of otherwise usable disk space) which have no matching row in +# the 'recorded' db table. +# +# By default, running the script will simply return a list of problems it finds. +# Running with --dodbdelete will remove db recorded rows for which there is no matching +# media file. Running with --dodelete will delete media files for which there is no +# matching db record. +# +# This script may be useful to fix up some orphaned db entries (causes mythweb to run +# verrry slow) as well as reclaim some disk space from some orphaned media files. +# (in an ideal world, neither of these would ever happen, but i've seen both happen in reality). +# This script makes it easy to keep track of whether it has or hasn't happened, even if you +# have thousands of recordings and terabytes of stored media. +# +# no warranties expressed or implied. if you run this and it deletes all your recordings +# and sets mythtv to fill up all your disk space with The Home Shopping Network, its entirely +# your fault. + +my $progname = "myth.find_orphans.pl"; +my $revision = "0.20"; + +use DBI; +use Sys::Hostname; +use Getopt::Long; + +# +# options +# + +my $opt_host = hostname; +my $opt_dbhost = "localhost"; +my $opt_database = "mythconverg"; +my $opt_user = "mythtv"; +my $opt_pass = "mythtv"; +my $opt_ext = "{nuv,mpg,mpeg,avi}"; +my $opt_dir = ""; +my $opt_dodelete = 0; +my $opt_dodbdelete = 0; +my $debug = 0; +my $opt_help = 0; + +GetOptions( + 'host=s' => \$opt_host, + 'dbhost=s' => \$opt_dbhost, + 'database=s' => \$opt_database, + 'user=s' => \$opt_user, + 'pass=s' => \$opt_pass, + 'dir=s' => \$opt_dir, + 'dodelete' => \$opt_dodelete, + 'dodbdelete' => \$opt_dodbdelete, + 'debug+' => \$debug, + 'help' => \$opt_help, + 'h' => \$opt_help, + 'v' => \$opt_help); + +if ($opt_help) { + print<<EOF +$progname (rev $revision) +(checks MythTV recording directories for orphaned files) + +options: + --host=(host) MythTV backend host ($opt_host) + --dbhost=(host) host where MySQL database for backend is ($opt_dbhost) + --database=(dbname) MythTV database ($opt_database) + --user=(user) MySQL MythTV database user ($opt_user) + --pass=(pass) MySQL MythTV database password ($opt_pass) + --dir=directories manually specify recording directories (otherwise setting is from database) + --debug increase debug level + --dodbdelete remove recorded db entries with no matching file (default: don't) + --dodelete delete files with no record (default: don't) + +EOF +; + exit(0); +} + +# +# go go go! +# + +my $valid_recordings = 0; +my $missing_recordings = 0; +my $errors = 0; +my $unknown_files = 0; +my $known_files = 0; +my $unknown_size = 0; +my $known_size = 0; +my $unknown_thumbnail = 0; + +if (!($dbh = DBI->connect("dbi:mysql:database=$opt_database:host=$opt_dbhost","$opt_user","$opt_pass"))) { + die "Cannot connect to database $opt_database on host $opt_dbhost: $!\n"; +} + +if ($opt_dir eq "") { + &dir_lookup("SELECT dirname FROM storagegroup WHERE hostname=(?)"); + &dir_lookup("SELECT data FROM settings WHERE value='RecordFilePrefix' AND hostname=(?)"); + + printf STDERR "Recording directories ($opt_host): $opt_dir\n" if $debug; +} + +if ($opt_dir eq "") { + printf "ERROR: no directory found or specified\n"; + exit 1; +} + +foreach $d (split(/,/,$opt_dir)) { + $d =~ s/\/$//g; # strip trailing / + $dirs{$d}++; +} + + +# +# look in recorded table, make sure we can find every file .. +# + +my $q = "SELECT title, subtitle, starttime, endtime, chanid, basename FROM recorded WHERE hostname=(?) ORDER BY starttime"; +$sth = $dbh->prepare($q); +$sth->execute($opt_host) || die "Could not execute ($q): $!\n"; + +while (my @row=$sth->fetchrow_array) { + ($title, $subtitle, $starttime, $endtime, $channel, $basename) = @row; + + # see if we can find it... + $loc = find_file($basename); + if ($loc eq "") { + printf "Missing media: %s (title:%s, start:%s)\n",$basename,$title,$starttime; + $missing_recordings++; + + if ($opt_dodbdelete) { + my $sql = sprintf "DELETE FROM recorded WHERE basename LIKE \"%s\" LIMIT 1",$basename; + printf "performing database delete: %s\n",$sql; + $dbh->do($sql) || die "Could not execute $sql: $!\n"; + } + } else { + $valid_recordings++; + $seen_basename{$basename}++; + $seen_basename{$basename.".png"}++; # thumbnail + } +} + +# +# look in recording directories, see if there are extra files not in database +# + +foreach my $this_dir (keys %dirs) { + opendir(DIR, $this_dir) || die "cannot open directory $this_dir: $!\n"; + foreach $this_file (readdir(DIR)) { + if (-f "$this_dir/$this_file") { + + next if ($this_file eq "nfslockfile.lock"); + next if ($this_file =~ m/^mythconv.*/); + next if ($this_dir eq "/data/database_backup"); + + my $this_filesize = -s "$this_dir/$this_file"; + if ($seen_basename{$this_file} == 0) { + $sorted_filesizes{$this_filesize} .= sprintf "unknown file [%s]: %s/%s\n",pretty_filesize($this_filesize),$this_dir,$this_file; + $unknown_size += $this_filesize; + if (substr($this_file,-4) eq ".png") { + $unknown_thumbnail++; + } + else { + $unknown_files++; + } + + if ($opt_dodelete) { + printf STDERR "deleting [%s]: %s/%s\n",pretty_filesize($this_filesize),$this_dir,$this_file; + unlink "$this_dir/$this_file"; + + if (-f "$this_dir/$this_file") { + $errors++; + printf "ERROR: could not delete $this_dir/$this_file\n"; + } + } + } else { + $known_files++; + $known_size += $this_filesize; + printf "KNOWN file [%s]: %s/%s\n",pretty_filesize($this_filesize),$this_dir,$this_file if $debug; + } + } else { + printf "NOT A FILE: %s/%s\n",$this_dir,$this_file if $debug; + } + } + closedir DIR; +} + + +# +# finished, report results +# + +foreach my $key (sort { $a <=> $b } keys %sorted_filesizes) { + printf $sorted_filesizes{$key}; +} + +printf "Summary:\n"; +printf " Host: %s, Directories: %s\n", $opt_host, join(" ",keys %dirs); +printf " %d ERRORS ENCOUNTERED (see above for details)\n",$errors if ($errors > 0); +printf " %d valid recording%s, %d missing recording%s %s\n", + $valid_recordings, ($valid_recordings != 1 ? "s" : ""), + $missing_recordings, ($missing_recordings != 1 ? "s" : ""), + ($missing_recordings > 0 ? ($opt_dodbdelete ? "were fixed" : "not fixed, check above is valid and use --dodbdelete to fix") : ""); +printf " %d known media files using %s\n %d orphaned thumbnails with no corresponding recording\n %d unknown files using %s %s\n", + $known_files, pretty_filesize($known_size), + $unknown_thumbnail,$unknown_files, pretty_filesize($unknown_size), + ($unknown_files > 0 ? ($opt_dodelete ? "were fixed" : "not fixed, check above and use --dodelete to clean up if the above output is accurate") : ""); + +exit(0); + +########################################################################### +# filesize bling + +sub pretty_filesize +{ + local($fsize) = @_; + return sprintf "%0.1fGB",($fsize / 1000000000) if ($fsize >= 1000000000); + return sprintf "%0.1fMB",($fsize / 1000000) if ($fsize >= 1000000); + return sprintf "%0.1fKB",($fsize / 1000) if ($fsize >= 1000); + return sprintf "%0.0fB",$fsize; +} + +########################################################################### +# find a file in directories without globbing + +sub find_file +{ + local($fname) = @_; + + foreach my $d (keys %dirs) { + my $f = $d."/".$fname; + if (-e $f) { + return $f; + } + } + return; +} + +########################################################################### + +sub dir_lookup +{ + my $query = shift; + + $sth = $dbh->prepare($query); + $sth->execute($opt_host) || die "Could not execute ($dir_query)"; + while (my @row = $sth->fetchrow_array) { + $opt_dir .= "," if ($opt_dir ne ""); + $opt_dir .= $row[0]; + } +} + +########################################################################### diff --git a/abs/mv-core/myth/release-fixes/mythtv-release-fixes/myth.sh b/abs/mv-core/myth/release-fixes/mythtv-release-fixes/myth.sh new file mode 100755 index 0000000..fb7122c --- /dev/null +++ b/abs/mv-core/myth/release-fixes/mythtv-release-fixes/myth.sh @@ -0,0 +1,4 @@ +export PATH=$PATH:/usr/local/bin +# set core file size to 0 +ulimit -c 0 +export MALLOC_CHECK_=0
\ No newline at end of file diff --git a/abs/mv-core/myth/release-fixes/mythtv-release-fixes/mythbackend b/abs/mv-core/myth/release-fixes/mythtv-release-fixes/mythbackend new file mode 100755 index 0000000..f96c6b7 --- /dev/null +++ b/abs/mv-core/myth/release-fixes/mythtv-release-fixes/mythbackend @@ -0,0 +1,37 @@ +#!/bin/bash + +. /etc/rc.conf +. /etc/rc.d/functions + +PID=`pidof -o %PPID /usr/bin/mythbackend` +case "$1" in + start) + stat_busy "Starting MythTV Backend" + [ ! -e /var/run/mysqld.pid ] && echo -n "mysqld not started" && stat_fail && exit + [ -z "$PID" ] && /usr/local/bin/mythbackend -d -l /var/log/mythbackend.log -v quiet + if [ $? -gt 0 ]; then + stat_fail + else + echo $PID > /var/run/mythbackend.pid + add_daemon mythbackend + stat_done + fi + ;; + stop) + stat_busy "Stopping MythTV Backend" + [ ! -z "$PID" ] && kill $PID &>/dev/null + if [ $? -gt 0 ]; then + stat_fail + else + rm_daemon mythbackend + stat_done + fi + ;; + restart) + $0 stop + $0 start + ;; + *) + echo "usage: $0 {start|stop|restart}" +esac +exit 0 diff --git a/abs/mv-core/myth/release-fixes/mythtv-release-fixes/mythbackend.sh b/abs/mv-core/myth/release-fixes/mythtv-release-fixes/mythbackend.sh new file mode 100755 index 0000000..e7a7b70 --- /dev/null +++ b/abs/mv-core/myth/release-fixes/mythtv-release-fixes/mythbackend.sh @@ -0,0 +1,117 @@ +#!/bin/bash +# +# /etc/rc.d/init.d/mythbackend +# +# Starts the mythbackend as a daemon +# +# chkconfig: 345 90 10 +# description: Starts the mythbackend process as a daemon after the XWindows \ +# system is started, in runlevel 5. This allows scheduled \ +# recordings to occur without manual intervention. +# processname: mythbackend + +# Copyright (c) by Michael Thomson <linux at m-thomson dot net> +# With thanks to Stu Tomlinson <stu at nosnilmot dot com> +# +# 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +# Default values to use if none are supplied in the config file. +# User who should start the mythbackend processes +MBE_USER="root" +# Directory holding the mythbackend binary +MBE_LOCATION="/usr/local/bin/" +# Name of mythbackend binary +MBE_PROG="mythbackend" +# Full path to mythbackend log file +MBE_LOGFILE="/var/log/mythtv/mythbackend.log" + +# Source function library. +. /etc/init.d/functions + +# Source config file if available +if [ -f "/etc/sysconfig/mythbackend" ]; then + . /etc/sysconfig/mythbackend +fi + +test -x ${MBE_LOCATION}${MBE_PROG} || exit 0 + +RETVAL=0 + +# +# See how we were called. +# + +start() { + # Check if mythbackend is already running + if [ ! -f /var/lock/subsys/${MBE_PROG} ]; then + echo -n "Starting ${MBE_PROG}: " + # /usr/local/bin/mythbackend -d -l /some/log/file + #daemon --user ${MBE_USER} ${MBE_LOCATION}${MBE_PROG} -d -l ${MBE_LOGFILE} + ${MBE_LOCATION}${MBE_PROG} -d -l ${MBE_LOGFILE} + RETVAL=$? + [ $RETVAL -eq 0 ] && touch /var/lock/subsys/${MBE_PROG} + echo + fi + return $RETVAL +} + +stop() { + echo -n "Stopping ${MBE_PROG}: " + killproc ${MBE_LOCATION}${MBE_PROG} + RETVAL=$? + [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/${MBE_PROG} + echo + return $RETVAL +} + + +restart() { + stop + start +} + +reload() { + restart +} + +status_at() { + status ${MBE_LOCATION}${MBE_PROG} +} + +case "$1" in +start) + start + ;; +stop) + stop + ;; +reload|restart) + restart + ;; +condrestart) + if [ -f /var/lock/subsys/${MBE_PROG} ]; then + restart + fi + ;; +status) + status_at + ;; +*) + echo "Usage: $0 {start|stop|restart|condrestart|status}" + exit 1 +esac + +exit $? +exit $RETVAL diff --git a/abs/mv-core/myth/release-fixes/mythtv-release-fixes/myththemedmenu.cpp.patch b/abs/mv-core/myth/release-fixes/mythtv-release-fixes/myththemedmenu.cpp.patch new file mode 100644 index 0000000..f5baccd --- /dev/null +++ b/abs/mv-core/myth/release-fixes/mythtv-release-fixes/myththemedmenu.cpp.patch @@ -0,0 +1,125 @@ +--- libs/libmythui/myththemedmenu.cpp.orig 2008-01-31 15:26:38.000000000 +0000 ++++ libs/libmythui/myththemedmenu.cpp 2008-02-07 22:24:27.000000000 +0000 +@@ -2102,6 +2102,10 @@ + } + lastbutton = NULL; + } ++ else if (action == "MENU") ++ { ++ parent->doMenu(); ++ } + else if (action == "EJECT") + { + myth_eject(); +@@ -2482,6 +2486,8 @@ + + if (d->foundtheme) + d->parseMenu(menufile); ++ ++ m_menuPopup = NULL; + } + + MythThemedMenu::~MythThemedMenu(void) +@@ -2592,3 +2598,102 @@ + MythScreenType::aboutToShow(); + d->updateLCD(); + } ++void MythThemedMenu::doMenu() ++{ ++ int allowsd = gContext->GetNumSetting("AllowQuitShutdown"); ++ if (m_menuPopup) ++ return; ++ QString label = "System Menu"; ++ MythScreenStack *mainStack = GetMythMainWindow()->GetMainStack(); ++ m_menuPopup = new MythDialogBox(label, mainStack, "menuPopup"); ++ if (m_menuPopup->Create()) ++ mainStack->AddScreen(m_menuPopup); ++ ++ ++ if ( allowsd != 0 && allowsd !=4 ) ++ { ++ m_menuPopup->SetReturnEvent(this,"popmenu_exit"); ++ m_menuPopup->AddButton("Shutdown"); ++ m_menuPopup->AddButton("Reboot"); ++ m_menuPopup->AddButton("About"); ++ m_menuPopup->AddButton("Cancel"); ++ } ++ else ++ { ++ m_menuPopup->SetReturnEvent(this,"popmenu_noexit"); ++ m_menuPopup->AddButton("About"); ++ m_menuPopup->AddButton("Cancel"); ++ } ++} ++ ++void MythThemedMenu::aboutScreen() ++{ ++{ ++ extern const char *myth_source_version; ++ extern const char *myth_source_path; ++ QString distro_line; ++ distro_line=""; ++ ++ QFile file("/etc/os_myth_release"); ++ if ( file.open(IO_ReadOnly | IO_Translate) ) ++ { ++ QTextStream t( &file ); // use a text stream ++ distro_line = t.readLine(); ++ file.close(); ++ } ++ ++ QString label = ""; ++ label.append(QObject::tr("Revision: ") + myth_source_version + " \n Branch:" + myth_source_path + "\n" + distro_line ); ++ ++ MythScreenStack *mainStack = GetMythMainWindow()->GetMainStack(); ++ m_menuPopup = new MythDialogBox(label, mainStack, "About"); ++ if (m_menuPopup->Create()) ++ mainStack->AddScreen(m_menuPopup); ++ ++ m_menuPopup->SetReturnEvent(this,"About"); ++ m_menuPopup->AddButton("OK!"); ++ } ++} ++ ++void MythThemedMenu::customEvent(QCustomEvent *event) ++{ ++ if (event->type() == kMythDialogBoxCompletionEventType) ++ { ++ DialogCompletionEvent *dce = ++ dynamic_cast<DialogCompletionEvent*>(event); ++ ++ QString resultid= dce->GetId(); ++ int buttonnum = dce->GetResult(); ++ if (resultid == "popmenu_exit") ++ { ++ if (buttonnum == 0) ++ { ++ QString halt_cmd = gContext->GetSetting("HaltCommand", ++ "sudo /sbin/halt -p"); ++ if (!halt_cmd.isEmpty()) ++ system(halt_cmd.ascii()); ++ } ++ ++ if (buttonnum == 1) ++ { ++ QString reboot_cmd = gContext->GetSetting("RebootCommand", ++ "sudo /sbin/reboot"); ++ if (!reboot_cmd.isEmpty()) ++ system(reboot_cmd.ascii()); ++ } ++ ++ if (buttonnum == 2) ++ { ++ aboutScreen(); ++ } ++ } ++ ++ if (resultid == "popmenu_noexit") ++ { ++ if (buttonnum == 0) ++ aboutScreen(); ++ } ++ ++ m_menuPopup = NULL; ++ } ++} diff --git a/abs/mv-core/myth/release-fixes/mythtv-release-fixes/myththemedmenu.h.patch b/abs/mv-core/myth/release-fixes/mythtv-release-fixes/myththemedmenu.h.patch new file mode 100644 index 0000000..9744b11 --- /dev/null +++ b/abs/mv-core/myth/release-fixes/mythtv-release-fixes/myththemedmenu.h.patch @@ -0,0 +1,25 @@ +--- libs/libmythui/myththemedmenu.h.orig 2008-01-31 15:26:45.000000000 +0000 ++++ libs/libmythui/myththemedmenu.h 2008-02-07 21:00:22.000000000 +0000 +@@ -2,6 +2,7 @@ + #define MYTHTHEMEDMENU_H_ + + #include "mythscreentype.h" ++#include "mythdialogbox.h" + + class MythMainWindow; + class MythThemedMenuPrivate; +@@ -26,8 +27,14 @@ + + void ReloadTheme(void); + void ReloadExitKey(void); ++ + virtual void aboutToShow(void); + ++ void doMenu(); ++ void aboutScreen(); ++ MythDialogBox *m_menuPopup; ++ void customEvent(QCustomEvent *event); ++ + protected: + virtual bool keyPressEvent(QKeyEvent *e); + virtual void gestureEvent(MythUIType *origtype, MythGestureEvent *ge); diff --git a/abs/mv-core/myth/release-fixes/mythtv-release-fixes/mythtv.install b/abs/mv-core/myth/release-fixes/mythtv-release-fixes/mythtv.install new file mode 100755 index 0000000..2c87aee --- /dev/null +++ b/abs/mv-core/myth/release-fixes/mythtv-release-fixes/mythtv.install @@ -0,0 +1,59 @@ + +# arg 1: the new package version +pre_install () { + echo "backing up the database" + dbver=`pacman -Q mythtv-release-fixes | awk ' { print $2 } '` + if [ ! -e /data/databases_backup ] + then + mkdir -p /data/database_backup + fi + mysqldump -u mythtv -pmythtv mythconverg -c > /data/database_backup/${dbver}.dump.sql +} + +post_install() { + mkdir -p /data/home + /usr/sbin/useradd -G users,video,audio,optical -m -d /data/home/mythtv mythtv + /usr/sbin/usermod -G users,video,audio,optical mythtv +# mkdir /var/log/mythtv +# chown -R mythtv:users /var/log/mythtv + dbver=`pacman -Q mythtv-release-fixes | awk ' { print $2 } '` + if [ ! -e /data/database_backup ] + then + mkdir -p /data/database_backup + fi + chown mythtv:nobody /data/database_backup + chmod g+s /data/database_backup + + mysqldump -u mythtv -pmythtv mythconverg -c > /data/database_backup/${dbver}.dump.sql + grep -q /usr/local/lib /etc/ld.so.conf + if [ $? = 1 ] + then + echo "/usr/local/lib" >> /etc/ld.so.conf + fi + +} +pre_upgrade () { + pre_install +} + +# arg 1: the new package version +# arg 2: the old package version +post_upgrade() { + post_install + + /bin/true +} + +# arg 1: the old package version +pre_remove() { + /bin/true +} + +# arg 1: the old package version +post_remove() { +/bint/true +} + +op=$1 +shift +$op $* diff --git a/abs/mv-core/myth/release-fixes/mythtv-release-fixes/pop_be_restart.cpp.patch b/abs/mv-core/myth/release-fixes/mythtv-release-fixes/pop_be_restart.cpp.patch new file mode 100644 index 0000000..a7a5326 --- /dev/null +++ b/abs/mv-core/myth/release-fixes/mythtv-release-fixes/pop_be_restart.cpp.patch @@ -0,0 +1,51 @@ +--- libs/libmythui/myththemedmenu.cpp.orig 2008-03-17 15:54:00.000000000 -0500 ++++ libs/libmythui/myththemedmenu.cpp 2008-03-17 15:54:09.000000000 -0500 +@@ -2615,12 +2615,14 @@ + m_menuPopup->SetReturnEvent(this,"popmenu_exit"); + m_menuPopup->AddButton("Shutdown"); + m_menuPopup->AddButton("Reboot"); ++ m_menuPopup->AddButton("MythBackend restart"); + m_menuPopup->AddButton("About"); + m_menuPopup->AddButton("Cancel"); + } + else + { + m_menuPopup->SetReturnEvent(this,"popmenu_noexit"); ++ m_menuPopup->AddButton("MythBackend restart"); + m_menuPopup->AddButton("About"); + m_menuPopup->AddButton("Cancel"); + } +@@ -2655,6 +2657,11 @@ + } + } + ++void MythThemedMenu::Restartmythbackend() ++{ ++ system("/usr/MythVantage/bin/mythbeselect -restart"); ++} ++ + void MythThemedMenu::customEvent(QCustomEvent *event) + { + if (event->type() == kMythDialogBoxCompletionEventType) +@@ -2684,6 +2691,10 @@ + + if (buttonnum == 2) + { ++ Restartmythbackend(); ++ } ++ if (buttonnum == 3) ++ { + aboutScreen(); + } + } +@@ -2691,6 +2702,10 @@ + if (resultid == "popmenu_noexit") + { + if (buttonnum == 0) ++ { ++ Restartmythbackend(); ++ } ++ if (buttonnum == 1) + aboutScreen(); + } + diff --git a/abs/mv-core/myth/release-fixes/mythtv-release-fixes/pop_be_restart.h.patch b/abs/mv-core/myth/release-fixes/mythtv-release-fixes/pop_be_restart.h.patch new file mode 100644 index 0000000..1fba435 --- /dev/null +++ b/abs/mv-core/myth/release-fixes/mythtv-release-fixes/pop_be_restart.h.patch @@ -0,0 +1,10 @@ +--- libs/libmythui/myththemedmenu.h.orig 2008-03-17 15:48:28.000000000 -0500 ++++ libs/libmythui/myththemedmenu.h 2008-03-17 15:48:30.000000000 -0500 +@@ -32,6 +32,7 @@ + + void doMenu(); + void aboutScreen(); ++ void Restartmythbackend(); + MythDialogBox *m_menuPopup; + void customEvent(QCustomEvent *event); + diff --git a/abs/mv-core/myth/release-fixes/mythtv-release-fixes/reload.patch b/abs/mv-core/myth/release-fixes/mythtv-release-fixes/reload.patch new file mode 100644 index 0000000..9cc2044 --- /dev/null +++ b/abs/mv-core/myth/release-fixes/mythtv-release-fixes/reload.patch @@ -0,0 +1,52 @@ +--- programs/mythfrontend/main.cpp 2007-11-13 15:34:40.000000000 +0000 ++++ programs/mythfrontend/main.cpp.new 2007-11-13 15:36:15.000000000 +0000 +@@ -72,6 +72,9 @@ + RunProgramGuide(chanid, channum); + } + ++ ++ ++ + void startFinder(void) + { + RunProgramFind(); +@@ -761,6 +764,7 @@ + } + } + ++ + void InitJumpPoints(void) + { + REG_JUMP("Reload Theme", "", "", reloadTheme); +@@ -784,6 +788,17 @@ + TV::SetEmbedPbbFunc(PlaybackBox::RunPlaybackBox); + } + ++ ++void signal_USR1_handler(int){ ++ VERBOSE(VB_GENERAL, "SIG USR1 received, reloading theme"); ++ RemoteSendMessage("CLEAR_SETTINGS_CACHE"); ++ gContext->ActivateSettingsCache(false); ++ qApp->processEvents(); ++ GetMythMainWindow()->JumpTo("Reload Theme"); ++ gContext->removeCurrentLocation(); ++ gContext->ActivateSettingsCache(true); ++} ++ + int internal_media_init() + { + REG_MEDIAPLAYER("Internal", "MythTV's native media player.", +@@ -1411,7 +1426,12 @@ + + if (!RunMenu(themedir)) + break; +- ++ struct sigaction new_action, old_action; ++ /* Set up the structure to specify the new action. */ ++ new_action.sa_handler = signal_USR1_handler; ++ ::sigemptyset(&new_action.sa_mask); ++ new_action.sa_flags = 0; ++ ::sigaction (SIGUSR1, &new_action, &old_action); + qApp->setMainWidget(mainWindow); + qApp->exec(); + } while (!(exitstatus = handleExit())); diff --git a/abs/mv-core/myth/release-fixes/mythtv-release-fixes/screenshot_jump.patch b/abs/mv-core/myth/release-fixes/mythtv-release-fixes/screenshot_jump.patch new file mode 100644 index 0000000..8a5dee4 --- /dev/null +++ b/abs/mv-core/myth/release-fixes/mythtv-release-fixes/screenshot_jump.patch @@ -0,0 +1,10 @@ +--- programs/mythfrontend/networkcontrol.cpp.orig 2008-03-16 23:31:05.000000000 +0000 ++++ programs/mythfrontend/networkcontrol.cpp 2008-03-16 23:32:01.000000000 +0000 +@@ -80,6 +80,7 @@ + jumpMap["zoneminderconsole"] = "ZoneMinder Console"; + jumpMap["zoneminderliveview"] = "ZoneMinder Live View"; + jumpMap["zoneminderevents"] = "ZoneMinder Events"; ++ jumpMap["snapshot"] = "ScreenShot"; + + // These jump point names match the (lowercased) locations from gContext + jumpMap["channelrecpriority"] = "Channel Recording Priorities"; diff --git a/abs/mv-core/myth/release-fixes/mythtv-release-fixes/screenshots.diff b/abs/mv-core/myth/release-fixes/mythtv-release-fixes/screenshots.diff new file mode 100644 index 0000000..2b5dabe --- /dev/null +++ b/abs/mv-core/myth/release-fixes/mythtv-release-fixes/screenshots.diff @@ -0,0 +1,458 @@ +Index: libs/libmythui/mythmainwindow.cpp +=================================================================== +--- libs/libmythui/mythmainwindow.cpp (revision 15827) ++++ libs/libmythui/mythmainwindow.cpp (working copy) +@@ -504,6 +507,81 @@ + d->repaintRegion = d->repaintRegion.unite(pe->region()); + } + ++bool MythMainWindow::screenShot(QString fname, int x, int y, int x2, int y2, int w, int h) ++{ ++ bool ret = false; ++ ++ QString extension = fname.section('.', -1, -2); ++ ++ if (extension == "jpg") ++ extension = "JPEG"; ++ else ++ extension = "PNG"; ++ ++ VERBOSE(VB_GENERAL, QString("MythMainWindow::screenShot saving winId %1 to %2 (%3 x %4) [ %5/%6 - %7/%8]") ++ .arg(QApplication::desktop()->winId()) ++ .arg(fname) ++ .arg(w) ++ .arg(h) ++ .arg(x) ++ .arg(y) ++ .arg(x2) ++ .arg(y2)); ++ ++ QPixmap p; ++ p = QPixmap::grabWindow( QApplication::desktop()->winId(), x, y, x2, y2); ++ ++ QImage img = p.convertToImage(); ++ ++ if ( w == 0 ) ++ w = img.width(); ++ ++ if ( h == 0 ) ++ h = img.height(); ++ ++ VERBOSE(VB_GENERAL, QString("Scaling to %1 x %2 from %3 x %4") ++ .arg(w) ++ .arg(h) ++ .arg(img.width()) ++ .arg(img.height())); ++ ++ img = img.smoothScale( w, h , QImage::ScaleMin); ++ ++ if (img.save(fname ,extension)) ++ { ++ VERBOSE(VB_GENERAL, "MythMainWindow::screenShot succeeded"); ++ ret = true; ++ } ++ else ++ { ++ VERBOSE(VB_GENERAL, "MythMainWindow::screenShot Failed!"); ++ ret = false; ++ } ++ ++ return ret; ++} ++ ++bool MythMainWindow::screenShot(int x, int y, int x2, int y2) ++{ ++ QString fPath = gContext->GetSetting("ScreenShotPath","/tmp/"); ++ QString fName = QString("/%1/myth-screenshot-%2.png") ++ .arg(gContext->GetSetting("ScreenShotPath","/tmp/")) ++ .arg(QDateTime::currentDateTime().toString("yyyy-mm-ddThh-mm-ss.zzz")); ++ ++ return screenShot(fName, x, y, x2, y2, 0, 0); ++} ++ ++bool MythMainWindow::screenShot(QString fname, int w, int h) ++{ ++ return screenShot(fname, 0, 0, -1, -1, w, h); ++} ++ ++ ++bool MythMainWindow::screenShot(void) ++{ ++ return screenShot(0,0,-1,-1); ++} ++ + #ifdef USING_APPLEREMOTE + // This may be possible via installEventFilter() instead? + +Index: libs/libmythui/mythmainwindow.h +=================================================================== +--- libs/libmythui/mythmainwindow.h (revision 15827) ++++ libs/libmythui/mythmainwindow.h (working copy) +@@ -101,6 +101,11 @@ + + MythPainter *GetCurrentPainter(); + ++ bool screenShot(QString fname, int x, int y, int x2, int y2, int w, int h); ++ bool screenShot(int x, int y, int x2, int y2); ++ bool screenShot(QString fname, int w, int h); ++ bool screenShot(void); ++ + void AllowInput(bool allow); + + QRect GetUIScreenRect(); +Index: programs/mythfrontend/mediarenderer.cpp +=================================================================== +--- programs/mythfrontend/mediarenderer.cpp (revision 15827) ++++ programs/mythfrontend/mediarenderer.cpp (working copy) +@@ -9,6 +9,7 @@ + ///////////////////////////////////////////////////////////////////////////// + + #include "mediarenderer.h" ++#include "mythfexml.h" + #include "compat.h" + + ///////////////////////////////////////////////////////////////////////////// +@@ -85,6 +86,11 @@ + "http-get:*:video/mpeg:*," + "http-get:*:video/nupplevideo:*," + "http-get:*:video/x-ms-wmv:*"; ++ // ------------------------------------------------------------------ ++ // Register the MythFEXML protocol... ++ // ------------------------------------------------------------------ ++ VERBOSE(VB_UPNP, "MediaRenderer::Registering MythFEXML Service." ); ++ m_pHttpServer->RegisterExtension( new MythFEXML( RootDevice() )); + + // VERBOSE(VB_UPNP, QString( "MediaRenderer::Registering AVTransport Service." )); + // m_pHttpServer->RegisterExtension( m_pUPnpAVT = new UPnpAVTransport( RootDevice() )); +Index: programs/mythfrontend/MFEXML_scpd.xml +=================================================================== +--- programs/mythfrontend/MFEXML_scpd.xml (revision 0) ++++ programs/mythfrontend/MFEXML_scpd.xml (revision 0) +@@ -0,0 +1,34 @@ ++<?xml version="1.0" encoding="utf-8"?>
++<scpd xmlns="urn:schemas-upnp-org:service-1-0">
++ <specVersion>
++ <major>1</major>
++ <minor>0</minor>
++ </specVersion>
++ <actionList>
++ <action>
++ <name>GetScreenShot</name>
++ <argumentList>
++ <argument>
++ <name>Height</name>
++ <direction>in</direction>
++ <relatedStateVariable>A_ARG_TYPE_Height</relatedStateVariable>
++ </argument>
++ <argument>
++ <name>Width</name>
++ <direction>in</direction>
++ <relatedStateVariable>A_ARG_TYPE_Width</relatedStateVariable>
++ </argument>
++ </argumentList>
++ </action>
++ </actionList>
++ <serviceStateTable>
++ <stateVariable sendEvents="no">
++ <name>A_ARG_TYPE_Height</name>
++ <dataType>i2</dataType>
++ </stateVariable>
++ <stateVariable sendEvents="no">
++ <name>A_ARG_TYPE_Width</name>
++ <dataType>i2</dataType>
++ </stateVariable>
++ </serviceStateTable>
++</scpd>
+Index: programs/mythfrontend/globalsettings.cpp +=================================================================== +--- programs/mythfrontend/globalsettings.cpp (revision 15827) ++++ programs/mythfrontend/globalsettings.cpp (working copy) +@@ -2182,6 +2182,15 @@ + return ge; + } + ++static HostLineEdit *ScreenShotPath() ++{ ++ HostLineEdit *ge = new HostLineEdit("ScreenShotPath"); ++ ge->setLabel(QObject::tr("ScreenShotPath")); ++ ge->setValue(""); ++ ge->setHelpText(QObject::tr("Path to screenshot storage location. Should be writable by the frontend")); ++ return ge; ++} ++ + static HostCheckBox *UseArrowAccels() + { + HostCheckBox *gc = new HostCheckBox("UseArrowAccels"); +@@ -4455,6 +4464,7 @@ + MythMediaSettings *mediaMon = new MythMediaSettings(); + + general->addChild(LircKeyPressedApp()); ++ general->addChild(ScreenShotPath()); + general->addChild(row); + general->addChild(NetworkControlPort()); + general->addChild(mediaMon); +Index: programs/mythfrontend/mythfexml.h +=================================================================== +--- programs/mythfrontend/mythfexml.h (revision 0) ++++ programs/mythfrontend/mythfexml.h (revision 0) +@@ -0,0 +1,66 @@ ++////////////////////////////////////////////////////////////////////////////// ++// Program Name: mythxml.h ++// ++// Purpose - Myth Frontend XML protocol HttpServerExtension ++// ++////////////////////////////////////////////////////////////////////////////// ++ ++#ifndef MYTHFEXML_H_ ++#define MYTHFEXML_H_ ++ ++#include <qdom.h> ++#include <qdatetime.h> ++ ++#include "upnp.h" ++#include "eventing.h" ++#include "mythcontext.h" ++ ++typedef enum ++{ ++ MFEXML_Unknown = 0, ++ MFEXML_GetScreenShot = 1 ++ ++} MythFEXMLMethod; ++ ++class MythFEXML : public Eventing ++{ ++ private: ++ ++ QString m_sControlUrl; ++ QString m_sServiceDescFileName; ++ ++ protected: ++ ++ // Implement UPnpServiceImpl methods that we can ++ ++ virtual QString GetServiceType () { return "urn:schemas-mythtv-org:service:MythTv:1"; } ++ virtual QString GetServiceId () { return "urn:mythtv-org:serviceId:MYTHTV_1-0"; } ++ virtual QString GetServiceControlURL() { return m_sControlUrl.mid( 1 ); } ++ virtual QString GetServiceDescURL () { return m_sControlUrl.mid( 1 ) + "/GetServDesc"; } ++ ++ private: ++ ++ MythFEXMLMethod GetMethod( const QString &sURI ); ++ ++ void GetScreenShot ( HTTPRequest *pRequest ); ++ ++ public: ++ MythFEXML( UPnpDevice *pDevice ); ++ virtual ~MythFEXML(); ++ ++ bool ProcessRequest( HttpWorkerThread *pThread, HTTPRequest *pRequest ); ++ ++ // Static methods shared with HttpStatus ++ ++}; ++ ++///////////////////////////////////////////////////////////////////////////// ++///////////////////////////////////////////////////////////////////////////// ++// ++// ++// ++///////////////////////////////////////////////////////////////////////////// ++///////////////////////////////////////////////////////////////////////////// ++#endif ++ ++ +Index: programs/mythfrontend/main.cpp +=================================================================== +--- programs/mythfrontend/main.cpp (revision 15827) ++++ programs/mythfrontend/main.cpp (working copy) +@@ -799,6 +799,11 @@ + } + } + ++void getScreenShot(void) ++{ ++ (void) gContext->GetMainWindow()->screenShot(); ++} ++ + void InitJumpPoints(void) + { + REG_JUMP("Reload Theme", "", "", reloadTheme); +@@ -817,6 +822,8 @@ + REG_JUMP("Status Screen", "", "", showStatus); + REG_JUMP("Previously Recorded", "", "", startPrevious); + ++ REG_JUMPEX("ScreenShot","","",getScreenShot,false); ++ + REG_KEY("qt", "DELETE", "Delete", "D"); + REG_KEY("qt", "EDIT", "Edit", "E"); + +Index: programs/mythfrontend/mythfrontend.pro +=================================================================== +--- programs/mythfrontend/mythfrontend.pro (revision 15827) ++++ programs/mythfrontend/mythfrontend.pro (working copy) +@@ -15,7 +15,7 @@ + setting.files += util_menu.xml info_settings.xml main_settings.xml + setting.files += recpriorities_settings.xml tv_search.xml tv_lists.xml + setting.files += library.xml manage_recordings.xml optical_menu.xml tvmenu.xml +-setting.files += tv_settings.xml ++setting.files += tv_settings.xml MFEXML_scpd.xml + setting.extra = -ldconfig + + INSTALLS += setting +@@ -26,13 +26,13 @@ + HEADERS += manualbox.h playbackbox.h viewscheduled.h globalsettings.h + HEADERS += manualschedule.h programrecpriority.h channelrecpriority.h + HEADERS += statusbox.h networkcontrol.h custompriority.h +-HEADERS += mediarenderer.h ++HEADERS += mediarenderer.h mythfexml.h + HEADERS += mythappearance.h + + SOURCES += main.cpp manualbox.cpp playbackbox.cpp viewscheduled.cpp + SOURCES += globalsettings.cpp manualschedule.cpp programrecpriority.cpp + SOURCES += channelrecpriority.cpp statusbox.cpp networkcontrol.cpp +-SOURCES += mediarenderer.cpp ++SOURCES += mediarenderer.cpp mythfexml.cpp + SOURCES += custompriority.cpp + SOURCES += mythappearance.cpp + +Index: programs/mythfrontend/mythfexml.cpp +=================================================================== +--- programs/mythfrontend/mythfexml.cpp (revision 0) ++++ programs/mythfrontend/mythfexml.cpp (revision 0) +@@ -0,0 +1,135 @@ ++////////////////////////////////////////////////////////////////////////////// ++// Program Name: MythXML.cpp ++// ++// Purpose - Html & XML status HttpServerExtension ++// ++// Created By : David Blain Created On : Oct. 24, 2005 ++// Modified By : Daniel Kristjansson Modified On: Oct. 31, 2007 ++// ++////////////////////////////////////////////////////////////////////////////// ++ ++#include "mythfexml.h" ++ ++#include "libmyth/mythcontext.h" ++#include "libmyth/util.h" ++#include "libmyth/mythdbcon.h" ++ ++#include "mythmainwindow.h" ++ ++#include <qtextstream.h> ++#include <qdir.h> ++#include <qfile.h> ++#include <qregexp.h> ++#include <qbuffer.h> ++#include <math.h> ++ ++#include "../../config.h" ++ ++///////////////////////////////////////////////////////////////////////////// ++// ++///////////////////////////////////////////////////////////////////////////// ++ ++MythFEXML::MythFEXML( UPnpDevice *pDevice ) : Eventing( "MythFEXML", "MYTHTV_Event" ) ++{ ++ ++ QString sUPnpDescPath = UPnp::g_pConfig->GetValue( "UPnP/DescXmlPath", m_sSharePath ); ++ ++ m_sServiceDescFileName = sUPnpDescPath + "MFEXML_scpd.xml"; ++ m_sControlUrl = "/MythFE"; ++ ++ // Add our Service Definition to the device. ++ ++ RegisterService( pDevice ); ++} ++ ++///////////////////////////////////////////////////////////////////////////// ++// ++///////////////////////////////////////////////////////////////////////////// ++ ++MythFEXML::~MythFEXML() ++{ ++} ++ ++///////////////////////////////////////////////////////////////////////////// ++// ++///////////////////////////////////////////////////////////////////////////// ++ ++MythFEXMLMethod MythFEXML::GetMethod( const QString &sURI ) ++{ ++ if (sURI == "GetScreenShot" ) return MFEXML_GetScreenShot; ++ ++ return( MFEXML_Unknown ); ++} ++ ++///////////////////////////////////////////////////////////////////////////// ++// ++///////////////////////////////////////////////////////////////////////////// ++ ++bool MythFEXML::ProcessRequest( HttpWorkerThread *pThread, HTTPRequest *pRequest ) ++{ ++ try ++ { ++ if (pRequest) ++ { ++ if (pRequest->m_sBaseUrl != m_sControlUrl) ++ return( false ); ++ ++ VERBOSE(VB_UPNP, QString("MythFEXML::ProcessRequest: %1 : %2") ++ .arg(pRequest->m_sMethod) ++ .arg(pRequest->m_sRawRequest)); ++ ++ switch( GetMethod( pRequest->m_sMethod )) ++ { ++ case MFEXML_GetScreenShot : GetScreenShot ( pRequest ); return true; ++ ++ ++ default: ++ { ++ UPnp::FormatErrorResponse( pRequest, UPnPResult_InvalidAction ); ++ ++ return true; ++ } ++ } ++ } ++ } ++ catch( ... ) ++ { ++ VERBOSE( VB_IMPORTANT, "MythFEXML::ProcessRequest() - Unexpected Exception" ); ++ } ++ ++ return( false ); ++} ++ ++// ========================================================================== ++// Request handler Methods ++// ========================================================================== ++ ++///////////////////////////////////////////////////////////////////////////// ++// ++///////////////////////////////////////////////////////////////////////////// ++ ++void MythFEXML::GetScreenShot( HTTPRequest *pRequest ) ++{ ++ bool bDefaultPixmap = false; ++ ++ pRequest->m_eResponseType = ResponseTypeFile; ++ ++ // Optional Parameters ++ ++ int nWidth = pRequest->m_mapParams[ "Width" ].toInt(); ++ int nHeight = pRequest->m_mapParams[ "Height" ].toInt(); ++ ++ // Read Icon file path from database ++ ++ QString sFileName = "/tmp/moo.jpg"; ++ ++ ++ if (!gContext->GetMainWindow()->screenShot(sFileName,nWidth, nHeight)) ++ { ++ VERBOSE(VB_GENERAL, "MythFEXML: Failed to take screenshot. Aborting"); ++ return; ++ } ++ ++ pRequest->m_sFileName = sFileName; ++} ++ diff --git a/abs/mv-core/myth/release-fixes/mythtv-release-fixes/screenshots2.diff b/abs/mv-core/myth/release-fixes/mythtv-release-fixes/screenshots2.diff new file mode 100644 index 0000000..64ce08c --- /dev/null +++ b/abs/mv-core/myth/release-fixes/mythtv-release-fixes/screenshots2.diff @@ -0,0 +1,467 @@ +Index: libs/libmythui/mythmainwindow.cpp +=================================================================== +--- libs/libmythui/mythmainwindow.cpp (revision 16103) ++++ libs/libmythui/mythmainwindow.cpp (working copy) +@@ -8,6 +8,8 @@ + #include <qpaintdevicemetrics.h> + #include <qdir.h> + #include <qfile.h> ++#include <math.h> ++ + #ifdef QWS + #include <qwindowsystem_qws.h> + #endif +@@ -504,6 +507,83 @@ + d->repaintRegion = d->repaintRegion.unite(pe->region()); + } + ++bool MythMainWindow::screenShot(QString fname, int x, int y, int x2, int y2, int w, int h) ++{ ++ bool ret = false; ++ ++ QString extension = fname.section('.', -1, -1); ++ if (extension == "jpg") ++ extension = "JPEG"; ++ else ++ extension = "PNG"; ++ ++ VERBOSE(VB_GENERAL, QString("MythMainWindow::screenShot saving winId %1 to %2 (%3 x %4) [ %5/%6 - %7/%8] type %9") ++ .arg(QApplication::desktop()->winId()) ++ .arg(fname) ++ .arg(w) ++ .arg(h) ++ .arg(x) ++ .arg(y) ++ .arg(x2) ++ .arg(y2) ++ .arg(extension)); ++ ++ QPixmap p; ++ p = QPixmap::grabWindow( QApplication::desktop()->winId(), x, y, x2, y2); ++ ++ QImage img = p.convertToImage(); ++ ++ if ( w == 0 ) ++ w = img.width(); ++ ++ if ( h == 0 ) ++ h = img.height(); ++ ++ VERBOSE(VB_GENERAL, QString("Scaling to %1 x %2 from %3 x %4") ++ .arg(w) ++ .arg(h) ++ .arg(img.width()) ++ .arg(img.height())); ++ ++ img = img.smoothScale( w, h , QImage::ScaleMin); ++ ++ if (img.save(fname ,extension,100)) ++ { ++ VERBOSE(VB_GENERAL, "MythMainWindow::screenShot succeeded"); ++ ret = true; ++ } ++ else ++ { ++ VERBOSE(VB_GENERAL, "MythMainWindow::screenShot Failed!"); ++ ret = false; ++ } ++ ++ return ret; ++} ++ ++bool MythMainWindow::screenShot(int x, int y, int x2, int y2) ++{ ++ QString fPath = gContext->GetSetting("ScreenShotPath","/tmp/"); ++ QString fName = QString("/%1/myth-screenshot-%2.png") ++ .arg(fPath) ++ .arg(QDateTime::currentDateTime().toString("yyyy-mm-ddThh-mm-ss.zzz")); ++ ++ return screenShot(fName, x, y, x2, y2, 0, 0); ++} ++ ++bool MythMainWindow::screenShot(QString fname, int w, int h) ++{ ++ QRect sLoc = qApp->mainWidget()->geometry(); ++ return screenShot(fname, sLoc.left(),sLoc.top(), sLoc.width(), sLoc.height(), w, h); ++} ++ ++ ++bool MythMainWindow::screenShot(void) ++{ ++ QRect sLoc = qApp->mainWidget()->geometry(); ++ return screenShot(sLoc.left(),sLoc.top(), sLoc.width(), sLoc.height()); ++} ++ + #ifdef USING_APPLEREMOTE + // This may be possible via installEventFilter() instead? + +Index: libs/libmythui/mythmainwindow.h +=================================================================== +--- libs/libmythui/mythmainwindow.h (revision 16103) ++++ libs/libmythui/mythmainwindow.h (working copy) +@@ -101,6 +101,11 @@ + + MythPainter *GetCurrentPainter(); + ++ bool screenShot(QString fname, int x, int y, int x2, int y2, int w, int h); ++ bool screenShot(int x, int y, int x2, int y2); ++ bool screenShot(QString fname, int w, int h); ++ bool screenShot(void); ++ + void AllowInput(bool allow); + + QRect GetUIScreenRect(); +Index: programs/mythfrontend/mediarenderer.cpp +=================================================================== +--- programs/mythfrontend/mediarenderer.cpp (revision 16103) ++++ programs/mythfrontend/mediarenderer.cpp (working copy) +@@ -9,6 +9,7 @@ + ///////////////////////////////////////////////////////////////////////////// + + #include "mediarenderer.h" ++#include "mythfexml.h" + #include "compat.h" + + ///////////////////////////////////////////////////////////////////////////// +@@ -89,6 +90,11 @@ + "http-get:*:video/mpeg:*," + "http-get:*:video/nupplevideo:*," + "http-get:*:video/x-ms-wmv:*"; ++ // ------------------------------------------------------------------ ++ // Register the MythFEXML protocol... ++ // ------------------------------------------------------------------ ++ VERBOSE(VB_UPNP, "MediaRenderer::Registering MythFEXML Service." ); ++ m_pHttpServer->RegisterExtension( new MythFEXML( RootDevice() )); + + // VERBOSE(VB_UPNP, QString( "MediaRenderer::Registering AVTransport Service." )); + // m_pHttpServer->RegisterExtension( m_pUPnpAVT = new UPnpAVTransport( RootDevice() )); +Index: programs/mythfrontend/MFEXML_scpd.xml +=================================================================== +--- programs/mythfrontend/MFEXML_scpd.xml (revision 0) ++++ programs/mythfrontend/MFEXML_scpd.xml (revision 0) +@@ -0,0 +1,34 @@ ++<?xml version="1.0" encoding="utf-8"?>
++<scpd xmlns="urn:schemas-upnp-org:service-1-0">
++ <specVersion>
++ <major>1</major>
++ <minor>0</minor>
++ </specVersion>
++ <actionList>
++ <action>
++ <name>GetScreenShot</name>
++ <argumentList>
++ <argument>
++ <name>Height</name>
++ <direction>in</direction>
++ <relatedStateVariable>A_ARG_TYPE_Height</relatedStateVariable>
++ </argument>
++ <argument>
++ <name>Width</name>
++ <direction>in</direction>
++ <relatedStateVariable>A_ARG_TYPE_Width</relatedStateVariable>
++ </argument>
++ </argumentList>
++ </action>
++ </actionList>
++ <serviceStateTable>
++ <stateVariable sendEvents="no">
++ <name>A_ARG_TYPE_Height</name>
++ <dataType>i2</dataType>
++ </stateVariable>
++ <stateVariable sendEvents="no">
++ <name>A_ARG_TYPE_Width</name>
++ <dataType>i2</dataType>
++ </stateVariable>
++ </serviceStateTable>
++</scpd>
+Index: programs/mythfrontend/globalsettings.cpp +=================================================================== +--- programs/mythfrontend/globalsettings.cpp (revision 16103) ++++ programs/mythfrontend/globalsettings.cpp (working copy) +@@ -2220,6 +2220,15 @@ + return ge; + } + ++static HostLineEdit *ScreenShotPath() ++{ ++ HostLineEdit *ge = new HostLineEdit("ScreenShotPath"); ++ ge->setLabel(QObject::tr("ScreenShotPath")); ++ ge->setValue("/tmp/"); ++ ge->setHelpText(QObject::tr("Path to screenshot storage location. Should be writable by the frontend")); ++ return ge; ++} ++ + static HostCheckBox *UseArrowAccels() + { + HostCheckBox *gc = new HostCheckBox("UseArrowAccels"); +@@ -4502,6 +4511,7 @@ + MythMediaSettings *mediaMon = new MythMediaSettings(); + + general->addChild(LircKeyPressedApp()); ++ general->addChild(ScreenShotPath()); + general->addChild(row); + general->addChild(NetworkControlPort()); + general->addChild(mediaMon); +Index: programs/mythfrontend/mythfexml.h +=================================================================== +--- programs/mythfrontend/mythfexml.h (revision 0) ++++ programs/mythfrontend/mythfexml.h (revision 0) +@@ -0,0 +1,66 @@ ++////////////////////////////////////////////////////////////////////////////// ++// Program Name: mythxml.h ++// ++// Purpose - Myth Frontend XML protocol HttpServerExtension ++// ++////////////////////////////////////////////////////////////////////////////// ++ ++#ifndef MYTHFEXML_H_ ++#define MYTHFEXML_H_ ++ ++#include <qdom.h> ++#include <qdatetime.h> ++ ++#include "upnp.h" ++#include "eventing.h" ++#include "mythcontext.h" ++ ++typedef enum ++{ ++ MFEXML_Unknown = 0, ++ MFEXML_GetScreenShot = 1 ++ ++} MythFEXMLMethod; ++ ++class MythFEXML : public Eventing ++{ ++ private: ++ ++ QString m_sControlUrl; ++ QString m_sServiceDescFileName; ++ ++ protected: ++ ++ // Implement UPnpServiceImpl methods that we can ++ ++ virtual QString GetServiceType () { return "urn:schemas-mythtv-org:service:MythTv:1"; } ++ virtual QString GetServiceId () { return "urn:mythtv-org:serviceId:MYTHTV_1-0"; } ++ virtual QString GetServiceControlURL() { return m_sControlUrl.mid( 1 ); } ++ virtual QString GetServiceDescURL () { return m_sControlUrl.mid( 1 ) + "/GetServDesc"; } ++ ++ private: ++ ++ MythFEXMLMethod GetMethod( const QString &sURI ); ++ ++ void GetScreenShot ( HTTPRequest *pRequest ); ++ ++ public: ++ MythFEXML( UPnpDevice *pDevice ); ++ virtual ~MythFEXML(); ++ ++ bool ProcessRequest( HttpWorkerThread *pThread, HTTPRequest *pRequest ); ++ ++ // Static methods shared with HttpStatus ++ ++}; ++ ++///////////////////////////////////////////////////////////////////////////// ++///////////////////////////////////////////////////////////////////////////// ++// ++// ++// ++///////////////////////////////////////////////////////////////////////////// ++///////////////////////////////////////////////////////////////////////////// ++#endif ++ ++ +Index: programs/mythfrontend/main.cpp +=================================================================== +--- programs/mythfrontend/main.cpp (revision 16103) ++++ programs/mythfrontend/main.cpp (working copy) +@@ -800,6 +800,11 @@ + } + } + ++void getScreenShot(void) ++{ ++ (void) gContext->GetMainWindow()->screenShot(); ++} ++ + void InitJumpPoints(void) + { + REG_JUMP("Reload Theme", "", "", reloadTheme); +@@ -818,6 +823,8 @@ + REG_JUMP("Status Screen", "", "", showStatus); + REG_JUMP("Previously Recorded", "", "", startPrevious); + ++ REG_JUMPEX("ScreenShot","","",getScreenShot,false); ++ + REG_KEY("qt", "DELETE", "Delete", "D"); + REG_KEY("qt", "EDIT", "Edit", "E"); + +Index: programs/mythfrontend/mythfrontend.pro +=================================================================== +--- programs/mythfrontend/mythfrontend.pro (revision 16103) ++++ programs/mythfrontend/mythfrontend.pro (working copy) +@@ -15,7 +15,7 @@ + setting.files += util_menu.xml info_settings.xml main_settings.xml + setting.files += recpriorities_settings.xml tv_search.xml tv_lists.xml + setting.files += library.xml manage_recordings.xml optical_menu.xml tvmenu.xml +-setting.files += tv_settings.xml ++setting.files += tv_settings.xml MFEXML_scpd.xml + setting.extra = -ldconfig + + INSTALLS += setting +@@ -26,13 +26,13 @@ + HEADERS += manualbox.h playbackbox.h viewscheduled.h globalsettings.h + HEADERS += manualschedule.h programrecpriority.h channelrecpriority.h + HEADERS += statusbox.h networkcontrol.h custompriority.h +-HEADERS += mediarenderer.h ++HEADERS += mediarenderer.h mythfexml.h + HEADERS += mythappearance.h + + SOURCES += main.cpp manualbox.cpp playbackbox.cpp viewscheduled.cpp + SOURCES += globalsettings.cpp manualschedule.cpp programrecpriority.cpp + SOURCES += channelrecpriority.cpp statusbox.cpp networkcontrol.cpp +-SOURCES += mediarenderer.cpp ++SOURCES += mediarenderer.cpp mythfexml.cpp + SOURCES += custompriority.cpp + SOURCES += mythappearance.cpp + +Index: programs/mythfrontend/mythfexml.cpp +=================================================================== +--- programs/mythfrontend/mythfexml.cpp (revision 0) ++++ programs/mythfrontend/mythfexml.cpp (revision 0) +@@ -0,0 +1,133 @@ ++////////////////////////////////////////////////////////////////////////////// ++// Program Name: MythXML.cpp ++// ++// Purpose - Html & XML status HttpServerExtension ++// ++// Created By : David Blain Created On : Oct. 24, 2005 ++// Modified By : Daniel Kristjansson Modified On: Oct. 31, 2007 ++// ++////////////////////////////////////////////////////////////////////////////// ++ ++#include "mythfexml.h" ++ ++#include "libmyth/mythcontext.h" ++#include "libmyth/util.h" ++#include "libmyth/mythdbcon.h" ++ ++#include "mythmainwindow.h" ++ ++#include <qtextstream.h> ++#include <qdir.h> ++#include <qfile.h> ++#include <qregexp.h> ++#include <qbuffer.h> ++#include <math.h> ++ ++#include "../../config.h" ++ ++///////////////////////////////////////////////////////////////////////////// ++// ++///////////////////////////////////////////////////////////////////////////// ++ ++MythFEXML::MythFEXML( UPnpDevice *pDevice ) : Eventing( "MythFEXML", "MYTHTV_Event" ) ++{ ++ ++ QString sUPnpDescPath = UPnp::g_pConfig->GetValue( "UPnP/DescXmlPath", m_sSharePath ); ++ ++ m_sServiceDescFileName = sUPnpDescPath + "MFEXML_scpd.xml"; ++ m_sControlUrl = "/MythFE"; ++ ++ // Add our Service Definition to the device. ++ ++ RegisterService( pDevice ); ++} ++ ++///////////////////////////////////////////////////////////////////////////// ++// ++///////////////////////////////////////////////////////////////////////////// ++ ++MythFEXML::~MythFEXML() ++{ ++} ++ ++///////////////////////////////////////////////////////////////////////////// ++// ++///////////////////////////////////////////////////////////////////////////// ++ ++MythFEXMLMethod MythFEXML::GetMethod( const QString &sURI ) ++{ ++ if (sURI == "GetScreenShot" ) return MFEXML_GetScreenShot; ++ ++ return( MFEXML_Unknown ); ++} ++ ++///////////////////////////////////////////////////////////////////////////// ++// ++///////////////////////////////////////////////////////////////////////////// ++ ++bool MythFEXML::ProcessRequest( HttpWorkerThread *pThread, HTTPRequest *pRequest ) ++{ ++ try ++ { ++ if (pRequest) ++ { ++ if (pRequest->m_sBaseUrl != m_sControlUrl) ++ return( false ); ++ ++ VERBOSE(VB_UPNP, QString("MythFEXML::ProcessRequest: %1 : %2") ++ .arg(pRequest->m_sMethod) ++ .arg(pRequest->m_sRawRequest)); ++ ++ switch( GetMethod( pRequest->m_sMethod )) ++ { ++ case MFEXML_GetScreenShot : GetScreenShot ( pRequest ); return true; ++ ++ ++ default: ++ { ++ UPnp::FormatErrorResponse( pRequest, UPnPResult_InvalidAction ); ++ ++ return true; ++ } ++ } ++ } ++ } ++ catch( ... ) ++ { ++ VERBOSE( VB_IMPORTANT, "MythFEXML::ProcessRequest() - Unexpected Exception" ); ++ } ++ ++ return( false ); ++} ++ ++// ========================================================================== ++// Request handler Methods ++// ========================================================================== ++ ++///////////////////////////////////////////////////////////////////////////// ++// ++///////////////////////////////////////////////////////////////////////////// ++ ++void MythFEXML::GetScreenShot( HTTPRequest *pRequest ) ++{ ++ pRequest->m_eResponseType = ResponseTypeFile; ++ ++ // Optional Parameters ++ ++ int nWidth = pRequest->m_mapParams[ "Width" ].toInt(); ++ int nHeight = pRequest->m_mapParams[ "Height" ].toInt(); ++ ++ // Read Icon file path from database ++ ++ QString sFileName = QString("/%1/myth-screenshot-XML.jpg") ++ .arg(gContext->GetSetting("ScreenShotPath","/tmp/")); ++ ++ if (!gContext->GetMainWindow()->screenShot(sFileName,nWidth, nHeight)) ++ { ++ VERBOSE(VB_GENERAL, "MythFEXML: Failed to take screenshot. Aborting"); ++ return; ++ } ++ ++ pRequest->m_sFileName = sFileName; ++} ++ diff --git a/abs/mv-core/myth/release-fixes/mythtv-release-fixes/smolt_jump.patch b/abs/mv-core/myth/release-fixes/mythtv-release-fixes/smolt_jump.patch new file mode 100644 index 0000000..ca9bd08 --- /dev/null +++ b/abs/mv-core/myth/release-fixes/mythtv-release-fixes/smolt_jump.patch @@ -0,0 +1,10 @@ +--- programs/mythfrontend/networkcontrol.cpp.orig 2008-03-23 23:00:25.000000000 +0000 ++++ programs/mythfrontend/networkcontrol.cpp 2008-03-23 23:01:33.000000000 +0000 +@@ -81,6 +81,7 @@ + jumpMap["zoneminderliveview"] = "ZoneMinder Live View"; + jumpMap["zoneminderevents"] = "ZoneMinder Events"; + jumpMap["snapshot"] = "ScreenShot"; ++ jumpMap["mythsmolt"] = "MythSmolt"; + + // These jump point names match the (lowercased) locations from gContext + jumpMap["channelrecpriority"] = "Channel Recording Priorities"; diff --git a/abs/mv-core/myth/release-fixes/mythtv-themes/PKGBUILD b/abs/mv-core/myth/release-fixes/mythtv-themes/PKGBUILD new file mode 100755 index 0000000..5e6928c --- /dev/null +++ b/abs/mv-core/myth/release-fixes/mythtv-themes/PKGBUILD @@ -0,0 +1,36 @@ +pkgname=mythtv-themes-release-fixes +pkgver=15931 +pkgrel=4 +pkgdesc="themes for mythtv" +url="http://www.mythtv.org" +license="GPL" +depends=( ) +#makedepends=('sqlite3' 'sed') +conflicts=() +replaces=() +backup=() +#install='mythtv.install' +source=() +arch=('i686') +md5sums=() +_svntrunk=http://svn.mythtv.org/svn/branches/release-0-21-fixes/myththemes +_svnmod=myththemes + +build() { +echo svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod + svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod +#svn co http://cvs.mythtv.org/svn/trunk/mythtv +#svn co http://cvs.mythtv.org/svn/trunk/mythplugins +#svn co http://cvs.mythtv.org/svn/trunk/myththemes +cd $startdir/src/myththemes + make distclean + ./configure + #./configure --disable-all --enable-mythweather --enable-fftw --disable-aac + make || return 1 + make INSTALL_ROOT=$startdir/pkg install +# cd $startdir/src/$pkgname +# cd mythmovietime +# make || return 1 +# make INSTALL_ROOT=$startdir/pkg install + +} diff --git a/abs/mv-core/myth/release-fixes/plugins/mytharchive/PKGBUILD b/abs/mv-core/myth/release-fixes/plugins/mytharchive/PKGBUILD new file mode 100644 index 0000000..5a73f74 --- /dev/null +++ b/abs/mv-core/myth/release-fixes/plugins/mytharchive/PKGBUILD @@ -0,0 +1,41 @@ +pkgname=mytharchive-release-fixes +pkgver=17719 +pkgrel=5 +pkgdesc="MythTV plugin that lets you create DVDs from or archive your recorded shows." +arch=('i686') +url="http://www.mythtv.org" +license=('GPL') +depends=('mythtv-release-fixes' 'libxmu' 'mysql-python' 'pil' 'dvdauthor' 'cdrkit' 'dvd+rw-tools' 'mjpegtools' 'transcode' ) +source=() +groups=('mythtv-all-plugins-release-fixes') +#_svntrunk=http://cvs.mythtv.org/svn/trunk/mythplugins +_svntrunk=http://svn.mythtv.org/svn/branches/release-0-21-fixes/mythplugins +_svnmod=mythplugins + + +build() { + PLUGIN=mytharchive + cd $startdir/src/ + svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod + cd $startdir/src/mythplugins + + PLUGIN=mytharchive + grep -q programs-libs.pro $PLUGIN/$PLUGIN/$PLUGIN.pro + if [ $? != 0 ] + then + echo "include ( ../../programs-libs.pro )" >> $PLUGIN/$PLUGIN/$PLUGIN.pro + msg "appending program lib" + fi + msg "Correcting configure kde3 to kde" + sed -i 's#kde3#kde#' configure || return 1 + make distclean + ./configure --enable-opengl --disable-all --enable-create-archive --enable-create-dvd --enable-mytharchive || return 1 + qmake mythplugins.pro || return 1 + make qmake || return 1 + msg "Correcting Makefile kde3 to kde" + sed -i 's#kde3#kde#' ./mytharchive/mytharchive/Makefile || return 1 + make -j 2 || return 1 + make INSTALL_ROOT=$startdir/pkg install +} + + diff --git a/abs/mv-core/myth/release-fixes/plugins/mythbrowser/PKGBUILD b/abs/mv-core/myth/release-fixes/plugins/mythbrowser/PKGBUILD new file mode 100644 index 0000000..0a1b29e --- /dev/null +++ b/abs/mv-core/myth/release-fixes/plugins/mythbrowser/PKGBUILD @@ -0,0 +1,34 @@ + +pkgname=mythbrowser-release-fixes +pkgver=17284 +pkgrel=2 +pkgdesc="Mini web browser for MythTV" +url="http://www.mythtv.org" +arch=('i686') +depends=('mythtv-release-fixes' 'wget' 'libxvmc' 'kdelibs3') +conflicts=('mythtv-plugins-release-fixes') +groups=('mythtv-all-plugins-release-fixes') +license="GPL" +source=() +_svntrunk=http://svn.mythtv.org/svn/branches/release-0-21-fixes/mythplugins +_svnmod=mythplugins +build() { + cd $startdir/src/ + echo svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod + svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod + cd $startdir/src/mythplugins + pwd + PLUGIN=mythbrowser + grep -q programs-libs.pro $PLUGIN/$PLUGIN/$PLUGIN.pro + if [ $? != 0 ] + then + echo "include ( ../../programs-libs.pro )" >> $PLUGIN/$PLUGIN/$PLUGIN.pro + msg "appending program lib" + fi + make distclean + ./configure --enable-opengl --disable-all --enable-mythbrowser || return 1 + # sed -i 's#kde3#kde#' ./mythbrowser/mythbrowser/Makefile || return 1 + make || return 1 + + make INSTALL_ROOT=$startdir/pkg install +} diff --git a/abs/mv-core/myth/release-fixes/plugins/mythcontrols/PKGBUILD b/abs/mv-core/myth/release-fixes/plugins/mythcontrols/PKGBUILD new file mode 100644 index 0000000..31b1e73 --- /dev/null +++ b/abs/mv-core/myth/release-fixes/plugins/mythcontrols/PKGBUILD @@ -0,0 +1,36 @@ +pkgname=mythcontrols-release-fixes +pkgver=17719 +pkgrel=5 +pkgdesc="Experimental controls for MythTV" +url="http://www.mythtv.org" +arch=('i686') +depends=('mythtv'-release-fixes) +conflicts=('mythtv-plugins-release-fixes') +groups=('mythtv-all-plugins-release-fixes') +license="GPL" +source=() +_svntrunk=http://svn.mythtv.org/svn/branches/release-0-21-fixes/mythplugins +_svntrunk=http://svn.mythtv.org/svn/branches/release-0-21-fixes/mythplugins +_svnmod=mythplugins + + +build() { + cd $startdir/src/ + echo svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod + svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod + cd $startdir/src/mythplugins +PLUGIN=mythcontrols +grep -q programs-libs.pro $PLUGIN/$PLUGIN/$PLUGIN.pro +if [ $? != 0 ] +then + echo "include ( ../../programs-libs.pro )" >> $PLUGIN/$PLUGIN/$PLUGIN.pro + msg "appending program lib" + fi + make distclean + ./configure --disable-all --enable-opengl --enable-mythcontrols + + make -j 2 || return 1 + + make INSTALL_ROOT=$startdir/pkg install +} + diff --git a/abs/mv-core/myth/release-fixes/plugins/mythflix/PKGBUILD b/abs/mv-core/myth/release-fixes/plugins/mythflix/PKGBUILD new file mode 100644 index 0000000..3e49073 --- /dev/null +++ b/abs/mv-core/myth/release-fixes/plugins/mythflix/PKGBUILD @@ -0,0 +1,36 @@ +pkgname=mythflix-release-fixes +pkgver=17719 +pkgrel=2 +pkgdesc="Netflix access plugin for MythTV" +url="http://www.mythtv.org" +arch=('i686') +depends=('mythtv-release-fixes') +conflicts=('mythtv-plugins-release-fixes') +groups=('mythtv-all-plugins-release-fixes') +license="GPL" +source=() +#_svntrunk=http://cvs.mythtv.org/svn/trunk/mythplugins +_svntrunk=http://svn.mythtv.org/svn/branches/release-0-21-fixes/mythplugins + +_svntrunk=http://svn.mythtv.org/svn/branches/release-0-21-fixes/mythplugins +_svnmod=mythplugins + +build() { + cd $startdir/src/ + echo svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod + svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod + cd $startdir/src/mythplugins + PLUGIN=mythflix + grep -q programs-libs.pro $PLUGIN/$PLUGIN/$PLUGIN.pro + if [ $? != 0 ] + then + echo "include ( ../../programs-libs.pro )" >> $PLUGIN/$PLUGIN/$PLUGIN.pro + msg "appending program lib" + fi + make distclean + ./configure --disable-all --enable-opengl --enable-mythflix + + make -j 2 || return 1 + + make INSTALL_ROOT=$startdir/pkg install +} diff --git a/abs/mv-core/myth/release-fixes/plugins/mythgallery/PKGBUILD b/abs/mv-core/myth/release-fixes/plugins/mythgallery/PKGBUILD new file mode 100644 index 0000000..4469148 --- /dev/null +++ b/abs/mv-core/myth/release-fixes/plugins/mythgallery/PKGBUILD @@ -0,0 +1,36 @@ +pkgname=mythgallery-release-fixes +pkgver=17719 +pkgrel=3 +pkgdesc="Image gallery plugin for MythTV" +url="http://www.mythtv.org" +arch=('i686') +depends=('mythtv-release-fixes' 'libexif' 'libtiff') +conflicts=('mythtv-plugins-release-fixes') +groups=('mythtv-all-plugins-release-fixes') +license="GPL" +source=() +_svntrunk=http://svn.mythtv.org/svn/branches/release-0-21-fixes/mythplugins +_svntrunk=http://svn.mythtv.org/svn/branches/release-0-21-fixes/mythplugins +_svnmod=mythplugins + +build() { + cd $startdir/src/ + echo svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod + svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod + cd $startdir/src/mythplugins + export QMAKESPEC='linux-g++' + PLUGIN=mythgallery + grep -q programs-libs.pro $PLUGIN/$PLUGIN/$PLUGIN.pro + if [ $? != 0 ] + then + echo "include ( ../../programs-libs.pro )" >> $PLUGIN/$PLUGIN/$PLUGIN.pro + msg "appending program lib" + fi + make distclean + ./configure --disable-all --enable-opengl --enable-mythgallery --enable-exif + + make -j 2 || return 1 + + make INSTALL_ROOT=$startdir/pkg install +} + diff --git a/abs/mv-core/myth/release-fixes/plugins/mythgame/PKGBUILD b/abs/mv-core/myth/release-fixes/plugins/mythgame/PKGBUILD new file mode 100644 index 0000000..d572df1 --- /dev/null +++ b/abs/mv-core/myth/release-fixes/plugins/mythgame/PKGBUILD @@ -0,0 +1,36 @@ +pkgname=mythgame-release-fixes +pkgver=17719 +pkgrel=4 +pkgdesc="Emulation plugin for MythTV" +url="http://www.mythtv.org" +arch=('i686') +depends=('mythtv-release-fixes' 'zlib') +conflicts=('mythtv-plugins-release-fixes') +groups=('mythtv-all-plugins-release-fixes') +license="GPL" +source=() +_svntrunk=http://svn.mythtv.org/svn/branches/release-0-21-fixes/mythplugins +_svntrunk=http://svn.mythtv.org/svn/branches/release-0-21-fixes/mythplugins +_svnmod=mythplugins + +build() { + cd $startdir/src/ + echo svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod + svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod + cd $startdir/src/mythplugins +PLUGIN=mythgame +grep -q programs-libs.pro $PLUGIN/$PLUGIN/$PLUGIN.pro +if [ $? != 0 ] +then + echo "include ( ../../programs-libs.pro )" >> $PLUGIN/$PLUGIN/$PLUGIN.pro + msg "appending program lib" + fi + export QMAKESPEC='linux-g++' + make distclean + ./configure --disable-all --enable-opengl --enable-mythgame + + make -j 2 || return 1 + + make INSTALL_ROOT=$startdir/pkg install +} + diff --git a/abs/mv-core/myth/release-fixes/plugins/mythmovietime/PKGBUILD b/abs/mv-core/myth/release-fixes/plugins/mythmovietime/PKGBUILD new file mode 100644 index 0000000..f6945af --- /dev/null +++ b/abs/mv-core/myth/release-fixes/plugins/mythmovietime/PKGBUILD @@ -0,0 +1,35 @@ +pkgname=mythmovietime-release-fixes +pkgver=17284 +pkgrel=6 +pkgdesc="Emulation plugin for MythTV" +url="http://www.mythtv.org" +arch=('i686') +depends=('mythtv-release-fixes' 'zlib') +conflicts=('mythtv-plugins-release-fixes') +groups=('mythtv-all-plugins-release-fixes') +license="GPL" +source=() +_svntrunk=http://svn.mythtv.org/svn/branches/release-0-21-fixes/mythplugins +_svnmod=mythplugins + +build() { + cd $startdir/src/ + echo svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod + svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod + cd $startdir/src/mythplugins +PLUGIN=mythmovietime +grep -q programs-libs.pro $PLUGIN/$PLUGIN/$PLUGIN.pro +if [ $? != 0 ] +then + echo "include ( ../../programs-libs.pro )" >> $PLUGIN/$PLUGIN/$PLUGIN.pro + msg "appending program lib" + fi + export QMAKESPEC='linux-g++' + make distclean + ./configure --disable-all --enable-mythmovies + + make -j 2 || return 1 + + make INSTALL_ROOT=$startdir/pkg install +} + diff --git a/abs/mv-core/myth/release-fixes/plugins/mythmusic/PKGBUILD b/abs/mv-core/myth/release-fixes/plugins/mythmusic/PKGBUILD new file mode 100644 index 0000000..de26f57 --- /dev/null +++ b/abs/mv-core/myth/release-fixes/plugins/mythmusic/PKGBUILD @@ -0,0 +1,39 @@ +pkgname=mythmusic-release-fixes +pkgver=17719 +pkgrel=9 +pkgdesc="Music playing plugin for MythTV" +url="http://www.mythtv.org" +arch=('i686' 'x86_64') + +depends=('mythtv-release-fixes ' 'libid3tag' 'flac>=1.1.4 ' 'a52dec' 'libcdaudio' 'libcddb' 'libdvdread' 'libid3tag' 'libmad' 'libogg' 'libtheora' 'libvorbis' 'taglib' 'libvisual' 'cdparanoia' 'sdl' 'faad2' 'lame' 'fftw2') + +conflicts=('mythtv-plugins-release-fixes') +groups=('mythtv-all-plugins-release-fixes') +license="GPL" +source=(gcc4.3.patch) +_svntrunk=http://svn.mythtv.org/svn/branches/release-0-21-fixes/mythplugins +_svnmod=mythplugins + +build() { + cd $startdir/src/ + make distclean + echo svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod + svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod + cd $startdir/src/mythplugins/mythmusic + patch -p1 < ../../gcc4.3.patch + cd $startdir/src/mythplugins + ./configure --disable-all --enable-mythmusic --enable-fftw --enable-sdl --disable-aac --enable-opengl +PLUGIN=mythmusic +grep -q programs-libs.pro $PLUGIN/$PLUGIN/$PLUGIN.pro +if [ $? != 0 ] +then + echo "include ( ../../programs-libs.pro )" >> $PLUGIN/$PLUGIN/$PLUGIN.pro + msg "appending program lib" + fi + +# ./configure --disable-all --enable-mythmusic + + make || return 1 + + make INSTALL_ROOT=$startdir/pkg install +} diff --git a/abs/mv-core/myth/release-fixes/plugins/mythmusic/gcc4.3.patch b/abs/mv-core/myth/release-fixes/plugins/mythmusic/gcc4.3.patch new file mode 100644 index 0000000..564c434 --- /dev/null +++ b/abs/mv-core/myth/release-fixes/plugins/mythmusic/gcc4.3.patch @@ -0,0 +1,37 @@ +Index: mythmusic/mythmusic/aacdecoder.cpp +=================================================================== +--- mythmusic/mythmusic/aacdecoder.cpp (revision 17452) ++++ mythmusic/mythmusic/aacdecoder.cpp (working copy) +@@ -19,6 +19,7 @@ + #include <qobject.h> + #include <qiodevice.h> + #include <qfile.h> ++#include <stdlib.h> + + #include "aacdecoder.h" + #include "constants.h" +Index: mythmusic/mythmusic/aacdecoder.h +=================================================================== +--- mythmusic/mythmusic/aacdecoder.h (revision 17452) ++++ mythmusic/mythmusic/aacdecoder.h (working copy) +@@ -51,7 +51,7 @@ + bool done, finish; + long len, bitrate; + uchar channels; +- unsigned long sample_rate; ++ uint32_t sample_rate; + unsigned long output_size; + double totalTime, seekTime; + +Index: mythmusic/mythmusic/metaiomp4.cpp +=================================================================== +--- mythmusic/mythmusic/metaiomp4.cpp (revision 17452) ++++ mythmusic/mythmusic/metaiomp4.cpp (working copy) +@@ -3,6 +3,7 @@ + #include <fcntl.h> + #include <unistd.h> + #include <sys/types.h> ++#include <stdlib.h> + + using namespace std; + diff --git a/abs/mv-core/myth/release-fixes/plugins/mythmusic/music_flac.patch b/abs/mv-core/myth/release-fixes/plugins/mythmusic/music_flac.patch new file mode 100644 index 0000000..b152249 --- /dev/null +++ b/abs/mv-core/myth/release-fixes/plugins/mythmusic/music_flac.patch @@ -0,0 +1,293 @@ +--- flacdecoder.cpp.old 2007-03-11 18:14:37.000000000 -0400 ++++ flacdecoder.cpp 2007-03-11 18:15:34.000000000 -0400 +@@ -17,7 +17,7 @@ + + #include <qtimer.h> + +-static FLAC__SeekableStreamDecoderReadStatus flacread(const FLAC__SeekableStreamDecoder *decoder, FLAC__byte bufferp[], unsigned *bytes, void *client_data) ++static FLAC__StreamDecoderReadStatus flacread(const FLAC__StreamDecoder *decoder, FLAC__byte bufferp[], unsigned *bytes, void *client_data) + { + decoder = decoder; + +@@ -26,27 +26,27 @@ + + if (len == -1) + { +- return FLAC__SEEKABLE_STREAM_DECODER_READ_STATUS_ERROR; ++ return FLAC__STREAM_DECODER_READ_STATUS_END_OF_STREAM; + } + + *bytes = len; +- return FLAC__SEEKABLE_STREAM_DECODER_READ_STATUS_OK; ++ return FLAC__STREAM_DECODER_READ_STATUS_CONTINUE; + } + +-static FLAC__SeekableStreamDecoderSeekStatus flacseek(const FLAC__SeekableStreamDecoder *decoder, FLAC__uint64 absolute_byte_offset, void *client_data) ++static FLAC__StreamDecoderSeekStatus flacseek(const FLAC__StreamDecoder *decoder, FLAC__uint64 absolute_byte_offset, void *client_data) + { + decoder = decoder; + FlacDecoder *dflac = (FlacDecoder *)client_data; + + if (!dflac->input()->isDirectAccess()) +- return FLAC__SEEKABLE_STREAM_DECODER_SEEK_STATUS_ERROR; ++ return FLAC__STREAM_DECODER_SEEK_STATUS_ERROR; + + if (dflac->input()->at(absolute_byte_offset)) +- return FLAC__SEEKABLE_STREAM_DECODER_SEEK_STATUS_OK; +- return FLAC__SEEKABLE_STREAM_DECODER_SEEK_STATUS_ERROR; ++ return FLAC__STREAM_DECODER_SEEK_STATUS_OK; ++ return FLAC__STREAM_DECODER_SEEK_STATUS_ERROR; + } + +-static FLAC__SeekableStreamDecoderTellStatus flactell(const FLAC__SeekableStreamDecoder *decoder, FLAC__uint64 *absolute_byte_offset, void *client_data) ++static FLAC__StreamDecoderTellStatus flactell(const FLAC__StreamDecoder *decoder, FLAC__uint64 *absolute_byte_offset, void *client_data) + { + decoder = decoder; + FlacDecoder *dflac = (FlacDecoder *)client_data; +@@ -54,20 +54,20 @@ + long t = dflac->input()->at(); + *absolute_byte_offset = t; + +- return FLAC__SEEKABLE_STREAM_DECODER_TELL_STATUS_OK; ++ return FLAC__STREAM_DECODER_TELL_STATUS_OK; + } + +-static FLAC__SeekableStreamDecoderLengthStatus flaclength(const FLAC__SeekableStreamDecoder *decoder, FLAC__uint64 *stream_length, void *client_data) ++static FLAC__StreamDecoderLengthStatus flaclength(const FLAC__StreamDecoder *decoder, FLAC__uint64 *stream_length, void *client_data) + { + decoder = decoder; + + FlacDecoder *dflac = (FlacDecoder *)client_data; + + *stream_length = dflac->input()->size(); +- return FLAC__SEEKABLE_STREAM_DECODER_LENGTH_STATUS_OK; ++ return FLAC__STREAM_DECODER_LENGTH_STATUS_OK; + } + +-static FLAC__bool flaceof(const FLAC__SeekableStreamDecoder *decoder, void *client_data) ++static FLAC__bool flaceof(const FLAC__StreamDecoder *decoder, void *client_data) + { + decoder = decoder; + +@@ -76,7 +76,7 @@ + return dflac->input()->atEnd(); + } + +-static FLAC__StreamDecoderWriteStatus flacwrite(const FLAC__SeekableStreamDecoder *decoder, const FLAC__Frame *frame, const FLAC__int32 * const buffer[], void *client_data) ++static FLAC__StreamDecoderWriteStatus flacwrite(const FLAC__StreamDecoder *decoder, const FLAC__Frame *frame, const FLAC__int32 * const buffer[], void *client_data) + { + decoder = decoder; + +@@ -132,7 +132,7 @@ + } + } + +-static void flacmetadata(const FLAC__SeekableStreamDecoder *decoder, const FLAC__StreamMetadata *metadata, void *client_data) ++static void flacmetadata(const FLAC__StreamDecoder *decoder, const FLAC__StreamMetadata *metadata, void *client_data) + { + decoder = decoder; + +@@ -156,11 +156,11 @@ + } + } + +-static void flacerror(const FLAC__SeekableStreamDecoder *decoder, FLAC__StreamDecoderErrorStatus status, void *client_data) ++static void flacerror(const FLAC__StreamDecoder *decoder, FLAC__StreamDecoderErrorStatus status, void *client_data) + { + decoder = decoder; + +- FLAC__FileDecoder *file_decoder = (FLAC__FileDecoder *)client_data; ++ FLAC__StreamDecoder *file_decoder = (FLAC__StreamDecoder *)client_data; + + file_decoder = file_decoder; + status = status; +@@ -262,17 +262,8 @@ + } + } + +- decoder = FLAC__seekable_stream_decoder_new(); +- FLAC__seekable_stream_decoder_set_md5_checking(decoder, false); +- FLAC__seekable_stream_decoder_set_read_callback(decoder, flacread); +- FLAC__seekable_stream_decoder_set_seek_callback(decoder, flacseek); +- FLAC__seekable_stream_decoder_set_tell_callback(decoder, flactell); +- FLAC__seekable_stream_decoder_set_length_callback(decoder, flaclength); +- FLAC__seekable_stream_decoder_set_eof_callback(decoder, flaceof); +- FLAC__seekable_stream_decoder_set_write_callback(decoder, flacwrite); +- FLAC__seekable_stream_decoder_set_metadata_callback(decoder, flacmetadata); +- FLAC__seekable_stream_decoder_set_error_callback(decoder, flacerror); +- FLAC__seekable_stream_decoder_set_client_data(decoder, this); ++ decoder = FLAC__stream_decoder_new(); ++ FLAC__stream_decoder_set_md5_checking(decoder, false); + + freq = 0; + bitrate = 0; +@@ -281,8 +272,17 @@ + totalTime = 0; + totalTime = totalTime < 0 ? 0 : totalTime; + +- FLAC__seekable_stream_decoder_init(decoder); +- FLAC__seekable_stream_decoder_process_until_end_of_metadata(decoder); ++ FLAC__stream_decoder_init_stream(decoder, ++ flacread, ++ flacseek, ++ flactell, ++ flaclength, ++ flaceof, ++ flacwrite, ++ flacmetadata, ++ flacerror, ++ this); ++ FLAC__stream_decoder_process_until_end_of_metadata(decoder); + + inited = TRUE; + return TRUE; +@@ -295,8 +295,8 @@ + + void FlacDecoder::deinit() + { +- FLAC__seekable_stream_decoder_finish(decoder); +- FLAC__seekable_stream_decoder_delete(decoder); ++ FLAC__stream_decoder_finish(decoder); ++ FLAC__stream_decoder_delete(decoder); + + if (input()->isOpen()) + input()->close(); +@@ -330,7 +330,7 @@ + } + + bool flacok = true; +- FLAC__SeekableStreamDecoderState decoderstate; ++ FLAC__StreamDecoderState decoderstate; + + while (! done && ! finish) { + lock(); +@@ -340,12 +340,12 @@ + FLAC__uint64 sample = (FLAC__uint64)(seekTime * 44100.0); + if (sample > totalsamples - 50) + sample = totalsamples - 50; +- FLAC__seekable_stream_decoder_seek_absolute(decoder, sample); ++ FLAC__stream_decoder_seek_absolute(decoder, sample); + seekTime = -1.0; + } + +- flacok = FLAC__seekable_stream_decoder_process_single(decoder); +- decoderstate = FLAC__seekable_stream_decoder_get_state(decoder); ++ flacok = FLAC__stream_decoder_process_single(decoder); ++ decoderstate = FLAC__stream_decoder_get_state(decoder); + + if (decoderstate == 0 || decoderstate == 1) + { +--- flacdecoder.h.old 2007-03-11 18:14:37.000000000 -0400 ++++ flacdecoder.h 2007-03-11 18:14:12.000000000 -0400 +@@ -35,7 +35,7 @@ + char *output_buf; + ulong output_bytes, output_at; + +- FLAC__SeekableStreamDecoder *decoder; ++ FLAC__StreamDecoder *decoder; + + unsigned int bks; + bool done, finish; +--- flacencoder.cpp.old 2007-03-11 18:14:37.000000000 -0400 ++++ flacencoder.cpp 2007-03-11 18:14:12.000000000 -0400 +@@ -9,7 +9,7 @@ + #include "flacencoder.h" + #include "metaioflacvorbiscomment.h" + +-#include <FLAC/file_encoder.h> ++#include <FLAC/stream_encoder.h> + #include <FLAC/assert.h> + #include <mythtv/mythcontext.h> + +@@ -29,32 +29,32 @@ + int rice_parameter_search_dist = 0; + int max_lpc_order = 8; + +- encoder = FLAC__file_encoder_new(); ++ encoder = FLAC__stream_encoder_new(); + +- FLAC__file_encoder_set_streamable_subset(encoder, true); +- FLAC__file_encoder_set_do_mid_side_stereo(encoder, do_mid_side); +- FLAC__file_encoder_set_loose_mid_side_stereo(encoder, loose_mid_side); +- FLAC__file_encoder_set_channels(encoder, NUM_CHANNELS); +- FLAC__file_encoder_set_bits_per_sample(encoder, 16); +- FLAC__file_encoder_set_sample_rate(encoder, 44100); +- FLAC__file_encoder_set_blocksize(encoder, blocksize); +- FLAC__file_encoder_set_max_lpc_order(encoder, max_lpc_order); +- FLAC__file_encoder_set_qlp_coeff_precision(encoder, qlp_coeff_precision); +- FLAC__file_encoder_set_do_qlp_coeff_prec_search(encoder, false); +- FLAC__file_encoder_set_do_escape_coding(encoder, do_escape_coding); +- FLAC__file_encoder_set_do_exhaustive_model_search(encoder, ++ FLAC__stream_encoder_set_streamable_subset(encoder, true); ++ FLAC__stream_encoder_set_do_mid_side_stereo(encoder, do_mid_side); ++ FLAC__stream_encoder_set_loose_mid_side_stereo(encoder, loose_mid_side); ++ FLAC__stream_encoder_set_channels(encoder, NUM_CHANNELS); ++ FLAC__stream_encoder_set_bits_per_sample(encoder, 16); ++ FLAC__stream_encoder_set_sample_rate(encoder, 44100); ++ FLAC__stream_encoder_set_blocksize(encoder, blocksize); ++ FLAC__stream_encoder_set_max_lpc_order(encoder, max_lpc_order); ++ FLAC__stream_encoder_set_qlp_coeff_precision(encoder, qlp_coeff_precision); ++ FLAC__stream_encoder_set_do_qlp_coeff_prec_search(encoder, false); ++ FLAC__stream_encoder_set_do_escape_coding(encoder, do_escape_coding); ++ FLAC__stream_encoder_set_do_exhaustive_model_search(encoder, + do_exhaustive_model_search); +- FLAC__file_encoder_set_min_residual_partition_order(encoder, ++ FLAC__stream_encoder_set_min_residual_partition_order(encoder, + min_residual_partition_order); +- FLAC__file_encoder_set_max_residual_partition_order(encoder, ++ FLAC__stream_encoder_set_max_residual_partition_order(encoder, + max_residual_partition_order); +- FLAC__file_encoder_set_rice_parameter_search_dist(encoder, ++ FLAC__stream_encoder_set_rice_parameter_search_dist(encoder, + rice_parameter_search_dist); + +- FLAC__file_encoder_set_filename(encoder, outfile.local8Bit()); ++ + +- int ret = FLAC__file_encoder_init(encoder); +- if (ret != FLAC__FILE_ENCODER_OK) ++ int ret = FLAC__stream_encoder_init_file(encoder, outfile.local8Bit(), NULL, NULL); ++ if (ret != FLAC__STREAM_ENCODER_OK) + { + VERBOSE(VB_GENERAL, QString("Error initializing FLAC encoder." + " Got return code: %1").arg(ret)); +@@ -70,8 +70,8 @@ + + if (encoder) + { +- FLAC__file_encoder_finish(encoder); +- FLAC__file_encoder_delete(encoder); ++ FLAC__stream_encoder_finish(encoder); ++ FLAC__stream_encoder_delete(encoder); + } + + if (metadata) +@@ -102,7 +102,7 @@ + + if(sampleindex == MAX_SAMPLES || (length == 0 && sampleindex > 0) ) + { +- if (!FLAC__file_encoder_process(encoder, ++ if (!FLAC__stream_encoder_process(encoder, + (const FLAC__int32 * const *) input, + sampleindex)) + { +--- flacencoder.h.old 2007-03-11 18:14:37.000000000 -0400 ++++ flacencoder.h 2007-03-11 18:14:12.000000000 -0400 +@@ -4,7 +4,7 @@ + #include <qstring.h> + + #define HAVE_INTTYPES_H +-#include <FLAC/file_encoder.h> ++#include <FLAC/stream_encoder.h> + + #include "encoder.h" + +@@ -21,7 +21,7 @@ + int addSamples(int16_t *bytes, unsigned int len); + + private: +- FLAC__FileEncoder *encoder; ++ FLAC__StreamEncoder *encoder; + unsigned int sampleindex; + FLAC__int32 inputin[NUM_CHANNELS][MAX_SAMPLES]; + FLAC__int32 *input[NUM_CHANNELS]; diff --git a/abs/mv-core/myth/release-fixes/plugins/mythnews/PKGBUILD b/abs/mv-core/myth/release-fixes/plugins/mythnews/PKGBUILD new file mode 100644 index 0000000..ef46fd9 --- /dev/null +++ b/abs/mv-core/myth/release-fixes/plugins/mythnews/PKGBUILD @@ -0,0 +1,34 @@ +pkgname=mythnews-release-fixes +pkgver=17719 +pkgrel=4 +pkgdesc="News checking plugin for MythTV" +url="http://www.mythtv.org" +arch=('i686') +depends=('mythtv-release-fixes') +conflicts=('mythtv-plugins-release-fixes') +groups=('mythtv-all-plugins-release-fixes') +license="GPL" +source=() +_svntrunk=http://svn.mythtv.org/svn/branches/release-0-21-fixes/mythplugins +_svntrunk=http://svn.mythtv.org/svn/branches/release-0-21-fixes/mythplugins +_svnmod=mythplugins +build() { + cd $startdir/src/ + echo svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod + svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod + cd $startdir/src/mythplugins + PLUGIN=mythnews + grep -q programs-libs.pro $PLUGIN/$PLUGIN/$PLUGIN.pro + if [ $? != 0 ] + then + echo "include ( ../../programs-libs.pro )" >> $PLUGIN/$PLUGIN/$PLUGIN.pro + msg "appending program lib" + fi + make distclean + ./configure --disable-all --enable-mythnews + + make -j 2 || return 1 + + make INSTALL_ROOT=$startdir/pkg install +} +md5sums=('2a9fbf45ae58a3a35857ce8d7c4d12db') diff --git a/abs/mv-core/myth/release-fixes/plugins/mythphone/PKGBUILD b/abs/mv-core/myth/release-fixes/plugins/mythphone/PKGBUILD new file mode 100644 index 0000000..0311916 --- /dev/null +++ b/abs/mv-core/myth/release-fixes/plugins/mythphone/PKGBUILD @@ -0,0 +1,42 @@ +pkgname=mythphone-release-fixes +pkgver=17719 +pkgrel=3 +pkgdesc="Plugin that allows phone calls to be made to MythTv" +url="http://www.mythtv.org" +arch=('i686') +depends=('mythtv-release-fixes') +conflicts=('mythtv-plugins-release-fixes') +groups=('mythtv-all-plugins-release-fixes') +license="GPL" +source=() +_svntrunk=http://svn.mythtv.org/svn/branches/release-0-21-fixes/mythplugins +_svntrunk=http://svn.mythtv.org/svn/branches/release-0-21-fixes/mythplugins +_svnmod=mythplugins + +build() { + cd $startdir/src/ + echo svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod + svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod + cd $startdir/src/mythplugins + make distclean + PLUGIN=mythphone + grep -q programs-libs.pro $PLUGIN/$PLUGIN/$PLUGIN.pro + if [ $? != 0 ] + then + echo "include ( ../../programs-libs.pro )" >> $PLUGIN/$PLUGIN/$PLUGIN.pro + msg "appending program lib" + fi + + msg "Correcting configure kde3 to kde" + sed -i 's#kde3#kde#' configure || return 1 + ./configure --enable-opengl --disable-all --enable-mythphone || return 1 + qmake mythplugins.pro || return 1 + make qmake || return 1 + + msg "Correcting Makefile kde3 to kde" + sed -i 's#kde3#kde#' ./mythphone/mythphone/Makefile || return 1 + + make -j 2 || return 1 + make INSTALL_ROOT=$startdir/pkg install +} + diff --git a/abs/mv-core/myth/release-fixes/plugins/mythsmolt/PKGBUILD b/abs/mv-core/myth/release-fixes/plugins/mythsmolt/PKGBUILD new file mode 100644 index 0000000..021d270 --- /dev/null +++ b/abs/mv-core/myth/release-fixes/plugins/mythsmolt/PKGBUILD @@ -0,0 +1,27 @@ +pkgname=mythsmolt-release-fixes +pkgver=0.21 +pkgrel=4 +pkgdesc="mythsmolt, a hardware profileing tool" +arch=('i686' 'x86_64') +url="http://www.mythvantage.com" +license=('GPL') +depends=("mythtv-release-fixes" urlgrabber hal) +source=("http://www.mythvantage.com/request.php?4") + +groups=('mythtv-extras') + +build() { + cd $startdir/src/mythsmolt_src/mythsmolt + . /etc/profile.d/qt3.sh + + # use QT3 qmake + export PATH=$QTDIR/bin:$PATH + echo "INCLUDEPATH += /usr/local/include/mythtv" >> mythsmolt.pro.local + qmake mythsmolt.pro.local + make qmake || return 1 + make -j 2 || return 1 + + make INSTALL_ROOT=$startdir/pkg install +} + + diff --git a/abs/mv-core/myth/release-fixes/plugins/mythvideo/PKGBUILD b/abs/mv-core/myth/release-fixes/plugins/mythvideo/PKGBUILD new file mode 100644 index 0000000..cdc8dea --- /dev/null +++ b/abs/mv-core/myth/release-fixes/plugins/mythvideo/PKGBUILD @@ -0,0 +1,36 @@ +pkgname=mythvideo-release-fixes +pkgver=17719 +pkgrel=2 +pkgdesc="Video playback and browsing plugin for MythTV" +url="http://www.mythtv.org" +arch=('i686') +depends=('mythtv-release-fixes' 'perlxml' 'perl-libwww' 'perl-uri' 'perl-xml-simple' 'ffmpeg') +license="GPL" +conflicts=('mythtv-plugins-release-fixes') +groups=('mythtv-all-plugins-release-fixes') + +source=() +_svntrunk=http://svn.mythtv.org/svn/branches/release-0-21-fixes/mythplugins +_svntrunk=http://svn.mythtv.org/svn/branches/release-0-21-fixes/mythplugins +_svnmod=mythplugins + +build() { + cd $startdir/src/ + echo svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod + svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod + cd $startdir/src/mythplugins + make distclean + PLUGIN=mythvideo + grep -q programs-libs.pro $PLUGIN/$PLUGIN/$PLUGIN.pro + if [ $? != 0 ] + then + echo "include ( ../../programs-libs.pro )" >> $PLUGIN/$PLUGIN/$PLUGIN.pro + msg "appending program lib" + fi + ./configure --disable-all --enable-mythvideo --enable-transcode + + make -j 2 || return 1 + + make INSTALL_ROOT=$startdir/pkg install +} +md5sums=('2a9fbf45ae58a3a35857ce8d7c4d12db') diff --git a/abs/mv-core/myth/release-fixes/plugins/mythweather/PKGBUILD b/abs/mv-core/myth/release-fixes/plugins/mythweather/PKGBUILD new file mode 100644 index 0000000..997f78a --- /dev/null +++ b/abs/mv-core/myth/release-fixes/plugins/mythweather/PKGBUILD @@ -0,0 +1,37 @@ +pkgname=mythweather-release-fixes +pkgver=17719 +pkgrel=6 +pkgdesc="Weather checking plugin for MythTV" +url="http://www.mythtv.org" +arch=('i686') +depends=('mythtv-release-fixes' 'wget' 'perl-xml-sax' 'perl-soap-lite' 'perl-image-size' 'imagemagick') +conflicts=('mythtv-plugins-release-fixes') +groups=('mythtv-all-plugins-release-fixes') +license="GPL" +source=() +#_svntrunk=http://cvs.mythtv.org/svn/trunk/mythplugins +_svntrunk=http://svn.mythtv.org/svn/branches/release-0-21-fixes/mythplugins + +_svntrunk=http://svn.mythtv.org/svn/branches/release-0-21-fixes/mythplugins +_svnmod=mythplugins + +build() { + cd $startdir/src/ + echo svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod + svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod + cd $startdir/src/mythplugins + make distclean + PLUGIN=mythweather + grep -q programs-libs.pro $PLUGIN/$PLUGIN/$PLUGIN.pro + if [ $? != 0 ] + then + echo "include ( ../../programs-libs.pro )" >> $PLUGIN/$PLUGIN/$PLUGIN.pro + msg "appending program lib" + fi + ./configure --enable-opengl --disable-all --enable-mythweather + + make -j 2 || return 1 + + make INSTALL_ROOT=$startdir/pkg install +} +md5sums=('2a9fbf45ae58a3a35857ce8d7c4d12db') diff --git a/abs/mv-core/myth/release-fixes/plugins/mythweb/PKGBUILD b/abs/mv-core/myth/release-fixes/plugins/mythweb/PKGBUILD new file mode 100755 index 0000000..9bddf1c --- /dev/null +++ b/abs/mv-core/myth/release-fixes/plugins/mythweb/PKGBUILD @@ -0,0 +1,34 @@ +pkgname=mythweb-release-fixes +pkgver=17724 +pkgrel=21 +pkgdesc="mythweb" +url="http://www.mythtv.org" +license="GPL" +arch=('i686') +depends=(php fcgi libmysqlclient ) +conflicts=('mythweb' 'mythweb-fixes') +replaces=() +backup=() +install='mythweb.install' +source=(mythweblighttpd.patch dblogininit.inc ) +md5sums=() +_svntrunk=http://svn.mythtv.org/svn/branches/release-0-21-fixes/mythplugins +_svnmod=mythplugins +build() { +echo svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod + svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod +#svn co http://cvs.mythtv.org/svn/trunk/mythtv +#svn co http://cvs.mythtv.org/svn/trunk/mythplugins +#svn co http://cvs.mythtv.org/svn/trunk/myththemes +cd $startdir/src/mythplugins + +#take care of fing mythweb +mkdir -p $startdir/pkg/data/srv/httpd/htdocs/ +cp -rp mythweb $startdir/pkg/data/srv/httpd/htdocs/ +cp -f $startdir/src/dblogininit.inc $startdir/pkg/data/srv/httpd/htdocs/mythweb/includes/ +cd $startdir/pkg/data/srv/httpd/htdocs/mythweb/includes +patch -p0 < $startdir/src/mythweblighttpd.patch + +chown -R nobody:nobody $startdir/pkg/data/srv/httpd/htdocs/mythweb +chmod -R 775 $startdir/pkg/data/srv/httpd/htdocs/mythweb +} diff --git a/abs/mv-core/myth/release-fixes/plugins/mythweb/dblogininit.inc b/abs/mv-core/myth/release-fixes/plugins/mythweb/dblogininit.inc new file mode 100755 index 0000000..c5395c5 --- /dev/null +++ b/abs/mv-core/myth/release-fixes/plugins/mythweb/dblogininit.inc @@ -0,0 +1,6 @@ +<? + $_SERVER["db_server"] = "localhost"; + $_SERVER["db_name"] = "mythconverg"; + $_SERVER["db_login"] = "mythtv"; + $_SERVER["db_password"] = "mythtv"; +?> diff --git a/abs/mv-core/myth/release-fixes/plugins/mythweb/mythweb.install b/abs/mv-core/myth/release-fixes/plugins/mythweb/mythweb.install new file mode 100755 index 0000000..e135b6c --- /dev/null +++ b/abs/mv-core/myth/release-fixes/plugins/mythweb/mythweb.install @@ -0,0 +1,37 @@ + +# arg 1: the new package version +pre_install () { +/bin/true +} + +post_install() { + #cp /etc/lighttpd/lighttpd.conf /tmp +# sed -e "s/# .* \"mod_fastcgi\",/\"mod_fastcgi\"\,/g" /tmp/lighttpd.conf > /etc/lighttpd/lighttpd.conf + /bin/true + +} +pre_upgrade () { + pre_install +} + +# arg 1: the new package version +# arg 2: the old package version +post_upgrade() { + post_install + + /bin/true +} + +# arg 1: the old package version +pre_remove() { + /bin/true +} + +# arg 1: the old package version +post_remove() { +/bint/true +} + +op=$1 +shift +$op $* diff --git a/abs/mv-core/myth/release-fixes/plugins/mythweb/mythweblighttpd.patch b/abs/mv-core/myth/release-fixes/plugins/mythweb/mythweblighttpd.patch new file mode 100755 index 0000000..6403a88 --- /dev/null +++ b/abs/mv-core/myth/release-fixes/plugins/mythweb/mythweblighttpd.patch @@ -0,0 +1,13 @@ +--- database.php.orig 2007-12-31 21:25:30.000000000 +0000 ++++ database.php 2007-12-31 21:25:50.000000000 +0000 +@@ -18,6 +18,10 @@ + custom_error("Please install the MySQL libraries for PHP.\n" + .'The package is usually called something like php-mysql.'); + } ++ if (empty($_SERVER['db_server']) || empty($_SERVER['db_name']) || empty($_SERVER['db_login'])) { ++ require_once 'dblogininit.inc'; ++ } ++ + + // No database connection info defined? + if (empty($_SERVER['db_server']) || empty($_SERVER['db_name']) || empty($_SERVER['db_login'])) { diff --git a/abs/mv-core/myth/release-fixes/syth-lacquer-clean/PKGBUILD b/abs/mv-core/myth/release-fixes/syth-lacquer-clean/PKGBUILD new file mode 100755 index 0000000..1f47a47 --- /dev/null +++ b/abs/mv-core/myth/release-fixes/syth-lacquer-clean/PKGBUILD @@ -0,0 +1,22 @@ +pkgname=syth-lacquer-clean-wide +pkgver=1 +pkgrel=9 +pkgdesc="" +url="" +license="" +depends=() +makedepends=() +conflicts=() +replaces=() +backup=() +#source=($pkgname.tar.bz2) +source=(http://jmeyer.us/e107_files/downloads/SVN/$pkgname.tar.bz2) + +md5sums=() + +build() { + cd $startdir/src + mkdir -p $startdir/pkg/usr/local/share/mythtv/themes + cp -rp $pkgname $startdir/pkg/usr/local/share/mythtv/themes/ + +} diff --git a/abs/mv-core/myth/release-fixes/syth-lacquer-wide/PKGBUILD b/abs/mv-core/myth/release-fixes/syth-lacquer-wide/PKGBUILD new file mode 100755 index 0000000..e160f46 --- /dev/null +++ b/abs/mv-core/myth/release-fixes/syth-lacquer-wide/PKGBUILD @@ -0,0 +1,23 @@ +pkgname=syth-lacquer-wide +pkgver=4 +pkgrel=1 +pkgdesc="Syth for mythtv .21" +url="" +license="" +depends=() +makedepends=() +conflicts=() +replaces=() +backup=() +arch='i686' + +source=(http://www.mythvantage.com/src/syth-lacquer-wide.tgz) + +md5sums=() + +build() { + cd $startdir/src + mkdir -p $startdir/pkg/usr/local/share/mythtv/themes + cp -rp $pkgname $startdir/pkg/usr/local/share/mythtv/themes/ + +} diff --git a/abs/mv-core/mythvantage-live/PKGBUILD b/abs/mv-core/mythvantage-live/PKGBUILD new file mode 100644 index 0000000..6f3a02d --- /dev/null +++ b/abs/mv-core/mythvantage-live/PKGBUILD @@ -0,0 +1,30 @@ +pkgname=mythvantage-live +pkgver=5.3.3 +pkgrel=7 +provides="linhes-live" +pkgdesc="components for the Live System." + +depends=() +arch=( i586 i686 x86_64 ) +license=('GPL') + +build() { + # setup the local environment: + local rDir=bin eDir=etc lDir=lib sDir=session-save oDir=opt/$pkgname + local srcDir=${startdir}/src pkgDir=${startdir}/pkg + local insDir=${pkgDir}/$oDir proDir=${pkgDir}/${eDir}/profile.d + + mkdir -p $pkgDir $insDir $proDir + cp -dr ${startdir}/$eDir $pkgDir + local pthDir= + echo 'export PATH=${PATH}:'"/$oDir/$rDir" > ${proDir}/${pkgname}.sh + cp -dr ${startdir}/$lDir $pkgDir + cp -dr ${startdir}/$rDir $insDir + [ -d ${startdir}/$sDir ] && cp -dr ${startdir}/$sDir $insDir + chown -R root.root $pkgDir + return 0 +} + +# End +#change hook1 to wait for usb cdroms +#removed the word cdrom from sysinit
\ No newline at end of file diff --git a/abs/mv-core/mythvantage-live/bin/gen_fstab b/abs/mv-core/mythvantage-live/bin/gen_fstab new file mode 100755 index 0000000..db36546 --- /dev/null +++ b/abs/mv-core/mythvantage-live/bin/gen_fstab @@ -0,0 +1,122 @@ +#! /bin/sh +# +# gen_fstab - make new fstab for larch live system based on detected devices +# +# Author: Michael Towers <gradgrind[at]online[dot]de> +# +# This file is part of the larch project. +# +# larch 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. +# +# larch 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 larch; if not, write to the Free Software Foundation, Inc., +# 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +# +#---------------------------------------------------------------------------- +# 2007.12.17 + +# Note that the results are, by default, not copied into place +# They end up here: +DEST="/tmp/fstab" +MNT="/tmp/mnt" + +# However, passing '-l' as command-line option will install them. +# The old fstab will then be backed up to fstab~. +LOAD="" +if [ "$1" = "-l" ]; then LOAD="-l"; fi + +if [ -n "$( df | grep " ${MNT}" )" ]; then + echo "ERROR: Mounted filesystem at/within ${MNT}" + exit 1 +fi +mkdir -p ${MNT} +rm -rf ${MNT}/* + +tmpfile="/tmp/fstab2" +: >${tmpfile} + +echo "# fstab generated by gen_fstab" >${DEST} +echo "#<file system> <dir> <type> <options> <dump> <pass>" >>${DEST} +echo >>${DEST} + +echo "none /dev/pts devpts defaults 0 0" >>${DEST} +echo "none /dev/shm tmpfs defaults 0 0" >>${DEST} +echo >>${DEST} + +# Get all other partitions +sfdisk -d | grep "^/dev/" | sed "s|\(.*\):.*Id=\(..\).*|\1 \2|" | \ + while read dev id; do + # Ignore if id is "Extended" or "LVM", these are not usable partitions + if [ "${id}" = "5" -o "${id}" = "8e" ]; then continue; fi + # See if swap + if [ "${id}" = "82" ]; then + printf "%-12s %-12s %-8s defaults,noatime 0 0\n" \ + ${dev} swap swap >>${DEST} + continue + fi + removable="" + part=$( basename ${dev} ) + if [ $( cat /sys/block/${part:0:3}/removable 2>/dev/null ) -ne 0 ]; then + removable="_rmv" + fi + mountdir=${part}${removable} + printf "%-12s %-12s %-8s user,noauto,noatime 0 0\n" \ + ${dev} /mnt/${mountdir} auto >>${tmpfile} + mkdir -p ${MNT}/${mountdir} + done + +# LVM +for lvmd in $( ls /dev/mapper 2>/dev/null | grep -v control ); do + printf "%-30s %-22s %-8s user,noauto,noatime 0 0\n" \ + /dev/mapper/${lvmd} /mnt/${lvmd} auto >>${tmpfile} + mkdir -p ${MNT}/${lvmd} +done + +echo >>${DEST} +cat ${tmpfile} >>${DEST} +rm ${tmpfile} +echo >>${DEST} + +# CD devices +for dev in $( cat /proc/sys/dev/cdrom/info 2>/dev/null | head -n 3 | \ + tail -n 1 | cut -d ":" -f 2 ); do + mountdir="${dev}_cd" + mkdir ${MNT}/${mountdir} + printf "%-12s %-12s %-8s user,noauto,exec,unhide 0 0\n" \ + /dev/${dev} /mnt/${mountdir} auto >>${DEST} +done + +echo >>${DEST} +echo "# This would do for a floppy" >>${DEST} +echo "#/dev/fd0 /mnt/floppy vfat,ext2 rw,user,noauto 0 0" >>${DEST} +echo "# + mkdir /mnt/floppy" >>${DEST} +echo >>${DEST} +echo "# E.g. for USB storage:" >>${DEST} +echo "#/dev/sdb1 /mnt/usb auto rw,user,noauto 0 0" >>${DEST} +echo "# + mkdir /mnt/usb" >>${DEST} + +if [ -n "${LOAD}" ]; then + # test if the script is started by root user. If not, exit + if [ $UID -ne 0 ]; then + echo "Only root can run ${APP}"; exit 1 + fi + + cp -b ${DEST} /etc/fstab + # Delete removeable mount points which are not currently mounted + for m in $( ls /mnt | grep ^[hs]d ); do + if [ -z "$( df | grep " /mnt/${m}$" )" ]; then + rmdir /mnt/${m} + fi + done + for m in $( ls ${MNT} ); do + mkdir -p /mnt/${m} + done +fi diff --git a/abs/mv-core/mythvantage-live/bin/km b/abs/mv-core/mythvantage-live/bin/km new file mode 100755 index 0000000..386d966 --- /dev/null +++ b/abs/mv-core/mythvantage-live/bin/km @@ -0,0 +1,76 @@ +#!/bin/sh +# $Id: km,v 1.2 2005/12/13 04:14:53 judd Exp $ +# Modified by gradgrind to deal only with i386 keymaps +# and BASEDIR changed +# - also saves results to /etc/rc.conf + +# test if the script is started by root user. If not, exit +if [ $UID -ne 0 ]; then + echo "This should be run as root"; exit 1 +fi + +ANSWER="/tmp/.km" +BASEDIR="/usr/share/kbd" + +domenu() +{ + menutype=$1 ; shift + text=$1 ; shift + height=$1 ; shift + width=$1 ; shift + mheight=$1 ; shift + + dialog --cancel-label "Skip" --$menutype "$text" $height $width $mheight $* +} + +if [ ! -d $BASEDIR/keymaps ]; then + echo "Cannot load keymaps, as none were found in $BASEDIR/keymaps" >&2 + exit 1 +else + echo "Scanning for keymaps..." + KEYMAPS= + for t in qwerty qwertz azerty dvorak; do + for i in `find $BASEDIR/keymaps/i386/$t -follow -name "*.gz"`; do + fn=`echo $i | sed "s|$BASEDIR/keymaps/i386/||"` + KEYMAPS="$KEYMAPS $fn -" + done + done + domenu menu "Select A Keymap" 22 60 16 $KEYMAPS 2>$ANSWER + keymap=`cat $ANSWER` +fi + +if [ ! -d $BASEDIR/consolefonts ]; then + echo "Cannot load consolefonts, as none were found in $BASEDIR/consolefonts" >&2 +else + echo "Scanning for fonts..." + FONTS= + for i in `find $BASEDIR/consolefonts -follow -name "*.gz"`; do + fn=`echo $i | sed "s|$BASEDIR/consolefonts/||"` + FONTS="$FONTS $fn -" + done + domenu menu "Select A Console Font" 22 60 16 $FONTS 2>$ANSWER + font=`cat $ANSWER` +fi + +if [ "$keymap" ]; then + echo "Loading keymap: $keymap" + loadkeys -q $BASEDIR/keymaps/i386/$keymap + sed -i "s|^KEYMAP=.*|KEYMAP=\"$( echo $keymap | \ + cut -d'.' -f1 )\"|" /etc/rc.conf +fi + +if [ "$font" ]; then + echo "Loading font: $font" + for i in `seq 1 4`; do + if [ -d /dev/vc ]; then + setfont $BASEDIR/consolefonts/$font -C /dev/vc/${i} + else + setfont $BASEDIR/consolefonts/$font -C /dev/tty${i} + fi + done + sed -i "s|^CONSOLEFONT=.*|CONSOLEFONT=\"$( echo $font | \ + cut -d'.' -f1 )\"|" /etc/rc.conf +fi + +exit 0 + diff --git a/abs/mv-core/mythvantage-live/etc/live-shutdown b/abs/mv-core/mythvantage-live/etc/live-shutdown new file mode 100644 index 0000000..99c4c10 --- /dev/null +++ b/abs/mv-core/mythvantage-live/etc/live-shutdown @@ -0,0 +1,50 @@ +# Functions used by rc.shutdown +# Modified versions for mythvantage live systems + +f_saveclock () +{ + : +} + +f_swapoff () +{ + ############################# Include session saving functions + . /opt/mythvantage-live/session-save/shutdown2 + if [ -f /tmp/checkse ]; then + . /tmp/checkse + else + checkse + fi + + if [ -n "${saving}" ] && ! session_save; then + echo + echo "If you know what you are doing, you may be able to recover" + echo "something from this unpleasant situation." + echo + echo "You may use the command line to investigate further ..." + echo + echo "When finished please enter 'exit', the shutdown process will" + echo "then continue." + sh -i + fi + + ############################# + + stat_busy "Deactivating Swap" + /sbin/swapoff -a + stat_done +} + +f_remountro () +{ + if [ -n "${ejectdev}" ]; then + echo "Ejecting live CD" + eject ${ejectdev} + echo "========================================" + echo "It's safe to switch the computer off now" + echo -ne "Press Enter to continue" + read junk + fi +} + +# End diff --git a/abs/mv-core/mythvantage-live/etc/live-sysinit b/abs/mv-core/mythvantage-live/etc/live-sysinit new file mode 100644 index 0000000..8e2813b --- /dev/null +++ b/abs/mv-core/mythvantage-live/etc/live-sysinit @@ -0,0 +1,54 @@ +# Functions used by rc.sysinit +# Modified versions for mythvantage live systems + +f_header () +{ + cR='\e[31m' cY='\e[1;33m' cN='\e[0m' cW='\e[1;37m' + echo " " + printsep + printf " ${cR}MythVantage ${cY}Installation${cN}/${cY}Live${cW}. " + printsep + echo " " +} + +f_fscheck () +{ + stat_busy "Initializing /etc/mtab" + #/bin/mount -n -o remount,rw / + + /bin/rm -f /etc/mtab* + + # Make entries for aufs/unionfs, tmpfs and live medium in /etc/mtab + grep "^aufs */ " /proc/mounts >>/etc/mtab + grep "^unionfs */ " /proc/mounts >>/etc/mtab + grep "^tmpfs */.livesys " /proc/mounts >>/etc/mtab + if [ -d /.livesys/medium/live ]; then + grep " /.livesys/medium " /proc/mounts >>/etc/mtab + fi + + f_mountlocal + stat_done + + if [ -z "$( cat /etc/fstab | grep "^#KEEP" )" ]; then + stat_busy "Generating fresh /etc/fstab" + /opt/mythvantage-live/bin/gen_fstab -l + stat_done + fi + + # now mount all the local filesystems + stat_busy "Mounting Local Filesystems" + /bin/mount -a -t $NETFS + stat_done +} + +f_swapon () +{ + #+*** Copy session-save flag-file (if it exists) + [ -f /live/nosave ] && cp /live/nosave /.livesys + #-*** + + #*** Conditional swap activation + if [ -e /.livesys/swapon ]; then + status "Activating Swap" /sbin/swapon -a + fi +} diff --git a/abs/mv-core/mythvantage-live/etc/loginroot b/abs/mv-core/mythvantage-live/etc/loginroot new file mode 100755 index 0000000..e3153c6 --- /dev/null +++ b/abs/mv-core/mythvantage-live/etc/loginroot @@ -0,0 +1,3 @@ +#! /bin/sh +login -f root +# End diff --git a/abs/mv-core/mythvantage-live/etc/rc.shutdown-live b/abs/mv-core/mythvantage-live/etc/rc.shutdown-live new file mode 100755 index 0000000..bba263c --- /dev/null +++ b/abs/mv-core/mythvantage-live/etc/rc.shutdown-live @@ -0,0 +1,167 @@ +#!/bin/bash +# +# /etc/rc.shutdown +# + +### +# Based on initscripts 2008.05-1 +### + +. /etc/rc.conf +. /etc/rc.d/functions + +############################################################### +### These functions have been separated out, so that they can be +### replaced in mythvantage live systems. + +f_saveclock () +{ + stat_busy "Saving System Clock" + if [ "$TIMEZONE" != "" -a -e "/usr/share/zoneinfo/$TIMEZONE" ]; then + /bin/rm -f /etc/localtime + /bin/cp "/usr/share/zoneinfo/$TIMEZONE" /etc/localtime + fi + + HWCLOCK_PARAMS="--systohc" + if [ "$HARDWARECLOCK" = "UTC" ]; then + HWCLOCK_PARAMS="$HWCLOCK_PARAMS --utc" + else + HWCLOCK_PARAMS="$HWCLOCK_PARAMS --localtime" + fi + if [ "$USEDIRECTISA" = "yes" -o "$USEDIRECTISA" = "YES" ]; then + HWCLOCK_PARAMS="$HWCLOCK_PARAMS --directisa" + fi + /sbin/hwclock $HWCLOCK_PARAMS + stat_done +} + +f_swapoff () +{ + stat_busy "Deactivating Swap" + /sbin/swapoff -a + stat_done +} + +f_remountro () +{ + stat_busy "Remounting Root Filesystem Read-only" + /bin/mount -n -o remount,ro / + stat_done +} + +############################################################### + +### Override above functions if running mythvantage live system +[ -f /etc/live-shutdown ] && . /etc/live-shutdown + +# avoid staircase effect +/bin/stty onlcr + +echo " " +printhl "Initiating Shutdown..." +echo " " + +# avoid NIS hanging syslog-ng on shutdown by unsetting the domainname +if [ -x /bin/domainname ]; then + /bin/domainname "" +fi + +if [ -x /etc/rc.local.shutdown ]; then + /etc/rc.local.shutdown +fi + +if [ "$PREVLEVEL" = "3" -o "$PREVLEVEL" = "5" ]; then + # Shutdown daemons + let i=${#DAEMONS[@]} + while [ $i -ge 0 ]; do + if [ "${DAEMONS[$i]:0:1}" != '!' ]; then + ck_daemon ${DAEMONS[$i]#@} || /etc/rc.d/${DAEMONS[$i]#@} stop + fi + let i=i-1 + done + # find any leftover daemons and shut them down in reverse order + if [ -d /var/run/daemons ]; then + for daemon in $(/bin/ls -1t /var/run/daemons); do + /etc/rc.d/$daemon stop + done + fi +fi + +# Terminate all processes +stat_busy "Sending SIGTERM To Processes" +/sbin/killall5 -15 &> /dev/null +/bin/sleep 5 +stat_done + +stat_busy "Sending SIGKILL To Processes" +/sbin/killall5 -9 &> /dev/null +/bin/sleep 1 +stat_done + +stat_busy "Saving Random Seed" +/bin/dd if=/dev/urandom of=/var/run/random-seed count=1 bs=512 2> /dev/null +stat_done + +#F Save system time +f_saveclock + +# removing psmouse module to fix some reboot issues on newer laptops +/sbin/modprobe -r psmouse >/dev/null 2>&1 + +# Write to wtmp file before unmounting +/sbin/halt -w + +#F Deactivate swaps +f_swapoff + +stat_busy "Unmounting Filesystems" +/bin/umount -a -t noramfs,notmpfs,nosysfs,noproc +stat_done + +# Kill non-root encrypted partition mappings +if [ -f /etc/crypttab -a -n "$(/bin/grep -v ^# /etc/crypttab | /bin/grep -v ^$)" ]; then + stat_busy "Deactivating encrypted volumes:" + CS=/sbin/cryptsetup.static + do_uncrypt() { + if [ $# -ge 3 ]; then + stat_append "${1}.." + $CS remove $1 >/dev/null 2>&1 + if [ $? -ne 0 ]; then + stat_append "failed " + else + stat_append "ok " + fi + fi + } + while read line; do + eval do_uncrypt "$line" + done </etc/crypttab + stat_done +fi + +if [ "$USELVM" = "yes" -o "$USELVM" = "YES" ]; then + if [ -x /sbin/lvm -a -d /sys/block ]; then + stat_busy "Deactivating LVM2 groups" + /sbin/lvm vgchange --ignorelockingfailure -an >/dev/null 2>&1 + stat_done + fi +fi + +#F Remount / ro +f_remountro + +# Power off or reboot +if [ "$RUNLEVEL" = "0" ]; then + printsep + printhl "${C_H2}POWER OFF" + /sbin/poweroff -d -f -h -i +else + printsep + printhl "${C_H2}REBOOTING" + # if kexec is installed and a kernel is loaded, use it + [ -x /sbin/kexec ] && /sbin/kexec -e > /dev/null 2>&1 + /sbin/reboot -d -f -i +fi + +# vim: set ts=2 sw=2 noet: +# End diff --git a/abs/mv-core/mythvantage-live/etc/rc.sysinit-live b/abs/mv-core/mythvantage-live/etc/rc.sysinit-live new file mode 100755 index 0000000..3f72a50 --- /dev/null +++ b/abs/mv-core/mythvantage-live/etc/rc.sysinit-live @@ -0,0 +1,466 @@ +#!/bin/bash +# +# /etc/rc.sysinit +# + +### +# Based on initscripts 2008.05-1 +### + +. /etc/rc.conf +. /etc/rc.d/functions + +############################################################### +### These functions have been separated out, so that they can be +### replaced in linhes live systems. + +f_header () +{ + echo " " + printhl "Arch Linux $C_OTHER(${C_H2}Core Dump$C_OTHER)\n" + printhl "${C_H2}http://www.archlinux.org" + printhl "Copyright 2002-2007 Judd Vinet" + printhl "Copyright 2007-2008 Aaron Griffin" + printhl "Distributed under the GNU General Public License (GPL)" + printsep +} + +f_fscheck () +{ + status "Mounting Root Read-only" /bin/mount -n -o remount,ro / + + if [ -x /sbin/fsck ]; then + stat_busy "Checking Filesystems" + if /bin/grep -qw quiet /proc/cmdline; then + /sbin/fsck -A -T -C -a -t $NETFS $FORCEFSCK >/dev/null 2>&1 + else + /sbin/fsck -A -T -C -a -t $NETFS $FORCEFSCK 2>/dev/null + fi + fsckret=$? + if [ ${fsckret} -gt 1 ]; then + stat_fail + if [ $((${fsckret}&2)) -eq 2 ]; then + echo + echo "********************** REBOOT REQUIRED *********************" + echo "* *" + echo "* The system will be rebooted automatically in 15 seconds. *" + echo "* *" + echo "************************************************************" + echo + /bin/sleep 15 + else + echo + echo "***************** FILESYSTEM CHECK FAILED ****************" + echo "* *" + echo "* Please repair manually and reboot. Note that the root *" + echo "* file system is currently mounted read-only. To remount *" + echo "* it read-write type: mount -n -o remount,rw / *" + echo "* When you exit the maintenance shell the system will *" + echo "* reboot automatically. *" + echo "* *" + echo "************************************************************" + echo + /sbin/sulogin -p + fi + echo "Automatic reboot in progress..." + /bin/umount -a + /bin/mount -n -o remount,ro / + /sbin/reboot -f + exit 0 + fi + stat_done + fi + + stat_busy "Mounting Local Filesystems" + /bin/mount -n -o remount,rw / + /bin/rm -f /etc/mtab* + # make sure / gets written to /etc/mtab + /bin/mount -o remount,rw / + + f_mountlocal + stat_done +} + +f_mountlocal () +{ + # Write /proc, /sys and /dev to /etc/mtab + if [ -e /proc/mounts ]; then + /bin/grep -e "/proc " -e "/sys " -e "/dev " /proc/mounts >> /etc/mtab + fi + # now mount all the local filesystems + /bin/mount -a -t $NETFS +} + +f_swapon () +{ + status "Activating Swap" /sbin/swapon -a +} + +############################################################### + +### Override above functions if running linhes live system +[ -f /etc/live-sysinit ] && . /etc/live-sysinit + +#F Print header +f_header + +# mount /proc, /sys and our RAM /dev +/bin/mount -n -t ramfs none /dev +/bin/mount -n -t proc none /proc +/bin/mount -n -t sysfs none /sys + +# Create our default nodes that minilogd may need +/bin/mknod /dev/null c 1 3 +/bin/mknod /dev/zero c 1 5 +/bin/mknod /dev/console c 5 1 + +# More initial /dev setup that udev doesn't do +/bin/ln -snf /proc/self/fd /dev/fd +/bin/ln -snf /proc/self/fd/0 /dev/stdin +/bin/ln -snf /proc/self/fd/1 /dev/stdout +/bin/ln -snf /proc/self/fd/2 /dev/stderr +/bin/ln -snf /proc/kcore /dev/core +/bin/mkdir /dev/pts +/bin/mkdir /dev/shm + +# start up our mini logger until syslog takes over +/sbin/minilogd + +# anything more serious than KERN_WARNING goes to the console +# 'verbose' cmdline parameter enables more messages +if /bin/grep -q " verbose" /proc/cmdline; then + /bin/dmesg -n 8 +else + /bin/dmesg -n 3 +fi + +# enable rtc access +/sbin/modprobe rtc-cmos >/dev/null 2>&1 +RTC_MAJOR=$(/bin/grep -w rtc /proc/devices 2>/dev/null); RTC_MAJOR="${RTC_MAJOR%% *}" +if [ -n "$RTC_MAJOR" ]; then + /bin/mkdir /dev/misc/ + /bin/mknod /dev/misc/rtc0 c $RTC_MAJOR 0 + /bin/ln -s /dev/misc/rtc0 /dev/rtc +fi + +HWCLOCK_PARAMS="--hctosys" +if [ "$HARDWARECLOCK" = "UTC" ]; then + HWCLOCK_PARAMS="$HWCLOCK_PARAMS --utc" +else + HWCLOCK_PARAMS="$HWCLOCK_PARAMS --localtime" +fi +if [ "$USEDIRECTISA" = "yes" -o "$USEDIRECTISA" = "YES" ]; then + HWCLOCK_PARAMS="$HWCLOCK_PARAMS --directisa" +fi + +# Set clock early to fix some bugs with filesystem checks +# Clock is set again later to match rc.conf +if [ -f /etc/localtime ]; then + /sbin/hwclock $HWCLOCK_PARAMS --noadjfile +fi + +echo > /proc/sys/kernel/hotplug + +if [ -x /sbin/udevadm -a -d /sys/block ]; then + # We have udev and /sys appears to be mounted, use UDev + #status "Starting UDev Daemon" /etc/start_udev init + + stat_busy "Starting UDev Daemon" + /sbin/udevd --daemon + stat_done +else + # Static /dev, our last resort + status "Using static /dev filesystem" true +fi + +# Load modules from the MODULES array defined in rc.conf +if ! [ "$load_modules" = "off" ]; then + if [ -f /proc/modules ]; then + stat_busy "Loading Modules" + for mod in "${MODULES[@]}"; do + if [ "$mod" = "${mod#!}" ]; then + /sbin/modprobe $mod + fi + done + stat_done + fi + if [ -d /proc/acpi ]; then + stat_busy "Loading standard ACPI modules" + ACPI_MODULES="ac battery button fan processor thermal" + k="$(echo $BLACKLIST ${MOD_BLACKLIST[@]} | /bin/sed 's|-|_|g')" + j="$(echo ${MODULES[@]} | /bin/sed 's|-|_|g')" + #add disabled MODULES (!) to blacklist - much requested feature + for m in ${j}; do + [ "$m" != "${m#!}" ] && k="${k} ${m#!}" + done + # add disablemodules= from commandline to blacklist + k="${k} $(echo ${disablemodules} | /bin/sed 's|-|_|g' | /bin/sed 's|,| |g')" + for n in ${ACPI_MODULES}; do + if ! echo ${k} | /bin/grep "\<$n\>" 2>&1 >/dev/null; then + /sbin/modprobe $n > /dev/null 2>&1 + fi + done + stat_done + fi +fi + +# run udev uevents +if /bin/pidof -o %PPID /sbin/udevd >/dev/null; then + #status "Loading UDev uevents" /etc/start_udev uevents + stat_busy "Loading UDev uevents" + udevstart="$(/bin/date +%s%0N)" + /sbin/udevadm trigger + /sbin/udevadm settle + stat_done + udevend="$(/bin/date +%s%0N)" + printhl " UDev uevent processing time: $((($udevend-$udevstart)/1000000))ms" +fi + +# bring up the loopback interface +if [ -d /sys/class/net/lo ]; then + stat_busy "Bringing up loopback interface" + /sbin/ifconfig lo 127.0.0.1 up + if [ $? -ne 0 ]; then + stat_fail + else + stat_done + fi +fi + +# If necessary, find md devices and manually assemble RAID arrays +if [ -f /etc/mdadm.conf -a "$(/bin/grep ^ARRAY /etc/mdadm.conf 2>/dev/null)" ]; then + # udev won't create these md nodes, so we do it ourselves + for dev in $(/bin/grep ^ARRAY /etc/mdadm.conf | /bin/awk '{print $2}'); do + path=$(echo $dev | /bin/sed 's|/[^/]*$||') + node=$(echo $dev | /bin/sed "s|^$path/||") + minor=$(echo $node | /bin/sed 's|^[^0-9]*||') + [ ! -e $path/$node ] && /bin/mknod $path/$node b 9 $minor + done + status "Activating RAID arrays" /sbin/mdadm --assemble --scan +fi + +if [ "$USELVM" = "yes" -o "$USELVM" = "YES" ]; then + if [ -x /sbin/lvm -a -d /sys/block ]; then + # Kernel 2.6.x, LVM2 groups + /sbin/modprobe -q dm-mod 2>/dev/null + stat_busy "Activating LVM2 groups" + /sbin/lvm vgscan --ignorelockingfailure --mknodes >/dev/null + /sbin/lvm vgchange --ignorelockingfailure -a y >/dev/null + if [ $? -ne 0 ]; then + stat_fail + else + stat_done + fi + fi +fi + +# Set up non-root encrypted partition mappings +if [ -f /etc/crypttab -a -n "$(/bin/grep -v ^# /etc/crypttab | /bin/grep -v ^$)" ]; then + /sbin/modprobe -q dm-mod 2>/dev/null + stat_busy "Unlocking encrypted volumes:" + csfailed=0 + CS=/sbin/cryptsetup.static + do_crypt() { + if [ $# -ge 3 ]; then + cname="$1" + csrc="$2" + cpass="$3" + shift 3 + copts="$*" + stat_append "${cname}.." + # For some fun reason, the parameter ordering varies for + # LUKS and non-LUKS devices. Joy. + if [ "${cpass}" = "SWAP" ]; then + # This is DANGEROUS! The only possible safety check + # is to not proceed in case we find a LUKS device + # This may cause dataloss if it is not used carefully + if $CS isLuks $csrc 2>/dev/null; then + false + else + $CS -d /dev/urandom $copts create $cname $csrc >/dev/null + if [ $? -eq 0 ]; then + stat_append "creating swapspace.." + /sbin/mkswap -L $cname /dev/mapper/$cname >/dev/null + fi + fi + elif [ "${cpass}" = "ASK" ]; then + printf "\nOpening '${cname}' volume:\n" + + if $CS isLuks $csrc 2>/dev/null; then + $CS $copts luksOpen $csrc $cname < /dev/console + else + $CS $copts create $cname $csrc < /dev/console + fi + elif [ "${cpass:0:1}" != "/" ]; then + if $CS isLuks $csrc 2>/dev/null; then + echo "$cpass" | $CS $copts luksOpen $csrc $cname >/dev/null + else + echo "$cpass" | $CS $copts create $cname $csrc >/dev/null + fi + else + if $CS isLuks $csrc 2>/dev/null; then + $CS -d $cpass $copts luksOpen $csrc $cname >/dev/null + else + $CS -d $cpass $copts create $cname $csrc >/dev/null + fi + fi + if [ $? -ne 0 ]; then + csfailed=1 + stat_append "failed " + else + stat_append "ok " + fi + fi + } + while read line; do + eval do_crypt "$line" + done </etc/crypttab + if [ $csfailed -eq 0 ]; then + stat_done + else + stat_fail + fi + # Maybe someone has LVM on an encrypted block device + if [ "$USELVM" = "yes" -o "$USELVM" = "YES" ]; then + if [ -x /sbin/lvm -a -d /sys/block ]; then + /sbin/lvm vgscan --ignorelockingfailure --mknodes >/dev/null + /sbin/lvm vgchange --ignorelockingfailure -a y >/dev/null + fi + fi +fi + +FORCEFSCK= +[ -f /forcefsck ] && FORCEFSCK="-- -f" +NETFS="nonfs,nonfs4,nosmbfs,nocifs,nocodafs,noncpfs,nosysfs,noshfs,nofuse,nofuseblk" + +#F Check filesystems +f_fscheck + +#F Activate swaps +f_swapon + +stat_busy "Configuring System Clock" +if [ ! -f /var/lib/hwclock/adjtime ]; then + echo "0.0 0 0.0" > /var/lib/hwclock/adjtime +fi +if [ "$TIMEZONE" != "" -a -e "/usr/share/zoneinfo/$TIMEZONE" ]; then + /bin/rm -f /etc/localtime + /bin/cp "/usr/share/zoneinfo/$TIMEZONE" /etc/localtime +fi + +/sbin/hwclock $HWCLOCK_PARAMS +stat_done + +if [ -f /var/run/random-seed ]; then + stat_busy "Initializing Random Seed" + /bin/cat /var/run/random-seed >/dev/urandom + stat_done +fi + +stat_busy "Removing Leftover Files" +/bin/rm -f /etc/nologin &>/dev/null +/bin/rm -f /etc/shutdownpid &>/dev/null +/bin/rm -f /var/lock/* &>/dev/null +/bin/rm -rf /tmp/* /tmp/.* &>/dev/null +/bin/rm -f /forcefsck &>/dev/null +(cd /var/run && /usr/bin/find . ! -type d -exec /bin/rm -f -- {} \; ) +: > /var/run/utmp +# Keep {x,k,g}dm happy with xorg +/bin/mkdir /tmp/.ICE-unix && /bin/chmod 1777 /tmp/.ICE-unix +/bin/mkdir /tmp/.X11-unix && /bin/chmod 1777 /tmp/.X11-unix +stat_done + +#status "Updating Shared Library Links" /sbin/ldconfig + +if [ "$HOSTNAME" != "" ]; then + status "Setting Hostname: $HOSTNAME" /bin/hostname $HOSTNAME +fi + +# Set the NIS domain name, if necessary +[ -f /etc/conf.d/nisdomainname ] && . /etc/conf.d/nisdomainname +if [ "$NISDOMAINNAME" != "" ]; then + status "Setting NIS Domain Name: $NISDOMAINNAME" /bin/nisdomainname $NISDOMAINNAME +fi + +status "Updating Module Dependencies" /sbin/depmod -A + +# Flush old locale settings +: >/etc/profile.d/locale.sh +/bin/chmod 755 /etc/profile.d/locale.sh +# Set user defined locale +[ -z "$LOCALE" ] && LOCALE="en_US" +stat_busy "Setting Locale: $LOCALE" +echo "export LANG=$LOCALE" >>/etc/profile.d/locale.sh +stat_done + +if echo "$LOCALE" | /bin/grep -qi utf ; then + stat_busy "Setting Consoles to UTF-8 mode" + # UTF-8 consoles are default since 2.6.24 kernel + # this code is needed not only for older kernels, + # but also when user has set vt.default_utf8=0 but LOCALE is *.UTF-8. + /usr/bin/kbd_mode -u + for i in $(/usr/bin/seq 0 63); do + printf "\e%%G" > /dev/vc/${i} + done + # the $CONSOLE check helps us avoid this when running scripts from cron + echo 'if [ "$CONSOLE" = "" -a "$TERM" = "linux" -a -t 1 ]; then printf "\e%%G"; fi' >>/etc/profile.d/locale.sh + stat_done + [ -n "$KEYMAP" ] && status "Loading Keyboard Map: $KEYMAP" /bin/loadkeys -q -u $KEYMAP +else + stat_busy "Setting Consoles to legacy mode" + # make non-UTF-8 consoles work on 2.6.24 and newer kernels + /usr/bin/kbd_mode -a + for i in $(/usr/bin/seq 0 63); do + printf "\e%%@" > /dev/vc/${i} + done + # the $CONSOLE check helps us avoid this when running scripts from cron + echo 'if [ "$CONSOLE" = "" -a "$TERM" = "linux" -a -t 1 ]; then printf "\e%%@"; fi' >>/etc/profile.d/locale.sh + stat_done + [ -n "$KEYMAP" ] && status "Loading Keyboard Map: $KEYMAP" /bin/loadkeys -q $KEYMAP +fi + +if [ -n "$CONSOLEFONT" ]; then + stat_busy "Loading Console Font: $CONSOLEFONT" + #CONSOLEMAP in UTF-8 shouldn't be used + if [ -n "$CONSOLEMAP" ] && echo "$LOCALE" | /bin/grep -qi utf ; then + CONSOLEMAP="" + fi + for i in $(/usr/bin/seq 0 63); do + if [ -n "$CONSOLEMAP" ]; then + /usr/bin/setfont -m $CONSOLEMAP $CONSOLEFONT -C /dev/vc/${i} >/dev/null 2>&1 + else + /usr/bin/setfont $CONSOLEFONT -C /dev/vc/${i} >/dev/null 2>&1 + fi + done + if [ $? -ne 0 ]; then + stat_fail + else + for i in $(/usr/bin/seq 0 63); do + printf "\e(K" > /dev/vc/${i} + done + # the $CONSOLE check helps us avoid this when running scripts from cron + echo 'if [ "$CONSOLE" = "" -a "$TERM" = "linux" -a -t 1 ]; then printf "\e(K"; fi' >>/etc/profile.d/locale.sh + stat_done + fi +fi + +# Adding persistent network/cdrom generated rules +if [ -f "/dev/.udev/tmp-rules--70-persistent-cd.rules" ]; then + stat_busy "Adding persistent cdrom udev rules" + /bin/cat /dev/.udev/tmp-rules--70-persistent-cd.rules >> /etc/udev/rules.d/70-persistent-cd.rules + stat_done +fi +if [ -f "/dev/.udev/tmp-rules--70-persistent-net.rules" ]; then + stat_busy "Adding persistent network udev rules" + /bin/cat /dev/.udev/tmp-rules--70-persistent-net.rules >> /etc/udev/rules.d/70-persistent-net.rules + stat_done +fi + +# Save our dmesg output from this boot +if [ -f /var/log/dmesg.log ]; then + /bin/rm /var/log/dmesg.log +fi +/bin/dmesg > /var/log/dmesg.log + +# vim: set ts=2 noet: +# End diff --git a/abs/mv-core/mythvantage-live/etc/ulogin b/abs/mv-core/mythvantage-live/etc/ulogin new file mode 100755 index 0000000..085c431 --- /dev/null +++ b/abs/mv-core/mythvantage-live/etc/ulogin @@ -0,0 +1,57 @@ +#!/bin/bash + +# ulogin - A script for autologin of a selected user (and more) +#----------------------------------------------------------------- +# 2008.04.06 + +user=$( cat /tmp/newuser 2>/dev/null ) + +rm -f /tmp/newuser +rm -f /tmp/xlogout + +if [ -n "${user}" ]; then + login -f ${user} +else + # offer choice of user + ulist="$( cat /etc/passwd | grep ':/home/.*sh$' )" + echo -e "\nLogin a user or quit:" + echo " 0 : root" + echo " 1 : REBOOT" + echo " 2 : HALT" + + i=2 + for entry in ${ulist}; do + i=$(( ${i} + 1 )) + user="$( echo ${entry} | cut -d':' -f1 )" + users[${i}]=${user} + printf "%4d : %s\n" ${i} ${user} + done + while true; do + read -p "Enter a number from 0 to ${i} : " n + if [ "${n}" = 0 ]; then + login -f root + elif [ "${n}" = 1 ]; then + exec reboot + elif [ "${n}" = 2 ]; then + exec halt + elif [ -n "$( echo "${n}" | grep "^[0-9]\+$" )" ] && \ + [ -n "${users[${n}]}" ]; then + login -f ${users[${n}]} + else + echo " *** Invalid choice ..." + continue + fi + break + done +fi + +if grep "r" /tmp/xlogout &>/dev/null; then + reboot +elif grep "h" /tmp/xlogout &>/dev/null; then + halt +fi + +# This file is only needed for shutting down +rm -f /tmp/checkse + +# End diff --git a/abs/mv-core/mythvantage-live/lib/initcpio/gen_larch_init b/abs/mv-core/mythvantage-live/lib/initcpio/gen_larch_init new file mode 100755 index 0000000..d834e8f --- /dev/null +++ b/abs/mv-core/mythvantage-live/lib/initcpio/gen_larch_init @@ -0,0 +1,12 @@ +#! /bin/bash + +# gen_larch_init +# +# Author: Michael Towers <gradgrind[at]online[dot]de> + +# Create an initramfs for a larch live system +# $1 - kernel version + +# The cpio.gz image is generated in larch.img + +/sbin/mkinitcpio -c /lib/initcpio/mkinitcpio.conf -k $1 -g larch.img diff --git a/abs/mv-core/mythvantage-live/lib/initcpio/hooks/larch1 b/abs/mv-core/mythvantage-live/lib/initcpio/hooks/larch1 new file mode 100644 index 0000000..88ccc3e --- /dev/null +++ b/abs/mv-core/mythvantage-live/lib/initcpio/hooks/larch1 @@ -0,0 +1,125 @@ +# vim: set ft=sh: + +# larch1 - live 'hook' for mkinitcpio: set up tmpfs and find boot device + +# Author: Michael Towers (gradgrind) <mt.42@web.de> +# +# This file is part of the larch project. +# +# larch 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. +# +# larch 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 larch; if not, write to the Free Software Foundation, Inc., +# 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +# +#---------------------------------------------------------------------------- +#2008.02.11 + +# Replacement for msg which includes leading and trailing spaces +msg_ () { [ "${quiet}" != "y" ] && echo "$@"; } + +# Try to mount a disk, partition or cdrom and look for the file +# 'larchboot' in the /larch directory. +# If LiveCD system found in the device, return 0, else return 1 +# and leave the device mounted. +# $1 = device name (e.g. "/dev/hda2") +# $2 = directory where devices will be mounted +# +test_live_data_dir () +{ + /bin/mount -r -t iso9660 "$1" $2 >/dev/null 2>/dev/null || \ + /bin/mount -r -t vfat -o noatime,nodiratime "$1" $2 >/dev/null 2>/dev/null || \ + /bin/mount -r -t ext2 -o noatime,nodiratime "$1" $2 >/dev/null 2>/dev/null + if [ $? -eq 0 ]; then + if [ -f "$2/larch/larchboot" ]; then + LDEV="$1" + msg_ " ... found at $1" + return 0 + else + /bin/umount $2 2>/dev/null + msg_ " ... $1 mounted, but no 'larch/larchboot' found" + fi + else + msg_ " ... not $1" + fi + return 1 +} + +run_hook () +{ + msg_ ":: Creating writeable filesystem (tmpfs)" + /bin/mkdir "/tfs" + # Boot option copy-to-ram (c2r) + if [ "${c2r}" = "y" ]; then + TFSSIZE="90%" + else + TFSSIZE="60%" + fi + /bin/mount -t tmpfs -o "size=${TFSSIZE}" tmpfs "/tfs" + + # Directory for test mounts (and then for live CD) + cdmount="/livecd" + /bin/mkdir "${cdmount}" + + # look for livecd data directory, first try ${root} + LDEV="${root}" + if [ "x${LDEV}" != "x" ]; then + /bin/mount -r -t iso9660 "${LDEV}" "${cdmount}" >/dev/null 2>/dev/null || \ + /bin/mount -r -t vfat -o noatime,nodiratime "${LDEV}" "${cdmount}" >/dev/null 2>/dev/null || \ + /bin/mount -r -t ext2 -o noatime,nodiratime "${LDEV}" "${cdmount}" >/dev/null 2>/dev/null + if [ $? -eq 0 ]; then + if [ -d "${cdmount}/larch" ]; then + msg_ ":: larch system at ${LDEV}" + else + /bin/umount "${cdmount}" 2>/dev/null + echo "!! No larch system at ${LDEV}" + LDEV="" + fi + else + echo "!! Couldn't mount ${LDEV}" + LDEV="" + fi + fi + + # then try cdroms + if [ "x${LDEV}" = "x" ]; then + msg_ ":: Looking for boot device" + cdroms=$( /bin/cat /proc/sys/dev/cdrom/info | { while read a b c; do + if [ "${a}" = "drive" -a "${b}" = "name:" ]; then + echo "${c}" + break + fi + done + } ) + for i in ${cdroms}; do + test_live_data_dir "/dev/${i}" "${cdmount}" + if [ $? -eq 0 ]; then break; fi + done + fi + + # test USB devices (and disks) repeatedly until timed out + if [ "x${LDEV}" = "x" ]; then + msg_ ":: Searching for usb (and disk) devices .." + for i in 1 2 3 4 5; do + msg_ " :wait ${i} :::" + /bin/sleep ${i} + for d in /dev/sd[a-z][0-9]*; do + test_live_data_dir "${d}" "${cdmount}" + if [ $? -eq 0 ]; then break 2; fi + done + msg_ ":: Searching for usb cdroms .." + for d in /dev/sr[0-9]*; do + test_live_data_dir "${d}" "${cdmount}" + if [ $? -eq 0 ]; then break 2; fi + done + done + fi +} diff --git a/abs/mv-core/mythvantage-live/lib/initcpio/hooks/larch2 b/abs/mv-core/mythvantage-live/lib/initcpio/hooks/larch2 new file mode 100644 index 0000000..74b4e64 --- /dev/null +++ b/abs/mv-core/mythvantage-live/lib/initcpio/hooks/larch2 @@ -0,0 +1,33 @@ +# larch2 - live 'hook' for mkinitcpio: unionfs specific + +# Author: Michael Towers (gradgrind) <mt.42@web.de> +# +# This file is part of the larch project. +# +# larch 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. +# +# larch 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 larch; if not, write to the Free Software Foundation, Inc., +# 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +# +#---------------------------------------------------------------------------- +#2007.12.13 + +run_hook () +{ + #!!! --- unionfs specific + # Need unionfs module + /bin/modprobe unionfs + ovlmnt="ro" + bropt="dirs=" + sqfmnt="ro" + utype="unionfs" +} diff --git a/abs/mv-core/mythvantage-live/lib/initcpio/hooks/larch2_aufs b/abs/mv-core/mythvantage-live/lib/initcpio/hooks/larch2_aufs new file mode 100644 index 0000000..ac8e40b --- /dev/null +++ b/abs/mv-core/mythvantage-live/lib/initcpio/hooks/larch2_aufs @@ -0,0 +1,33 @@ +# larch2_aufs - live 'hook' for mkinitcpio: aufs specific + +# Author: Michael Towers (gradgrind) <mt.42@web.de> +# +# This file is part of the larch project. +# +# larch 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. +# +# larch 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 larch; if not, write to the Free Software Foundation, Inc., +# 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +# +#---------------------------------------------------------------------------- +# 2008.02.29 + +run_hook () +{ + #!!! --- aufs specific + # Need aufs module + /bin/modprobe aufs + ovlmnt="rr+wh" + sqfmnt="rr" + bropt="br:" + utype="aufs" +} diff --git a/abs/mv-core/mythvantage-live/lib/initcpio/hooks/larch3 b/abs/mv-core/mythvantage-live/lib/initcpio/hooks/larch3 new file mode 100644 index 0000000..47be81a --- /dev/null +++ b/abs/mv-core/mythvantage-live/lib/initcpio/hooks/larch3 @@ -0,0 +1,192 @@ +# larch3 - live 'hook' for mkinitcpio: +# deal with c2r, +# mount base system, +# load overlay, +# set up unioned root filesystem. +# Also manages overlay merging. + +# Author: Michael Towers <gradgrind[at]online[dot]de> +# +# This file is part of the larch project. +# +# larch 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. +# +# larch 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 larch; if not, write to the Free Software Foundation, Inc., +# 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +# +#---------------------------------------------------------------------------- +# 2008.04.04 + +run_hook () +{ + if [ "x${LDEV}" = "x" ]; then + err "Sorry, couldn't find boot medium ..." + break="y" + return + fi + + /sbin/modprobe loop + + # Path to compressed base system + sysSqf=${cdmount}/system.sqf + + ovlpath=${cdmount} + + # A possibility to use alternative files: + if [ -f ${cdmount}/larch/boot-init ]; then + . ${cdmount}/larch/boot-init + fi + + # Path to compressed 'modifications' archive + modsSqf=${ovlpath}/mods.sqf + # Default overlay file and directory + overlay=${ovlpath}/overlay.ovl + + # Make union root + /bin/mkdir /union + + # Deal with new archives + if [ -f ${overlay}_ ]; then + /bin/mount -o remount,rw ${LDEV} ${cdmount} + /bin/mv ${overlay} ${overlay}~ + /bin/mv ${overlay}_ ${overlay} + + if [ -f ${modsSqf}_ ]; then + /bin/mv ${modsSqf} ${modsSqf}~ + /bin/mv ${modsSqf}_ ${modsSqf} + fi + /bin/mount -o remount,ro ${LDEV} ${cdmount} + fi + + # Boot option copy-to-ram (c2r) + if [ "${c2r}" = "y" ]; then + msg_ ":: Copying base system to RAM, this will take a while ..." + /bin/cat ${sysSqf} > /tfs/system.sqf + if [ $? -ne 0 ]; then + err "Sorry, not enough RAM" + break="y" + return + fi + sysSqf=/tfs/system.sqf + + msg_ ":: Copying mods archive to RAM, this might take a while ..." + /bin/cat ${modsSqf} > /tfs/mods.sqf + if [ $? -ne 0 ]; then + err "Sorry, not enough RAM" + break="y" + return + fi + modsSqf=/tfs/mods.sqf + + # force use of swap (if available) + :> /tfs/swapon + + elif [ "${swap}" = "y" ]; then + :> /tfs/swapon + fi + + msg_ ":: Mounting squashed images" + /bin/mkdir /tfs/system + # The klibc mount command doesn't support '-o loop' + /bin/losetup /dev/loop0 ${sysSqf} + /bin/mount -r -t squashfs /dev/loop0 /tfs/system + + # Make stuff in 'system' available by providing the loader and + # library path + ldli=$( cd /tfs/system; echo lib/ld-linux*.so.2 ) + /bin/ln -s /tfs/system/${ldli} /${ldli} + export LD_LIBRARY_PATH=/tfs/system/lib:/tfs/system/usr/lib + + /bin/mkdir /tfs/mods + # The klibc mount command doesn't support '-o loop' + /bin/losetup /dev/loop1 ${modsSqf} + /bin/mount -r -t squashfs /dev/loop1 /tfs/mods + + # Unpack the overlay + msg_ ":: Initializing writable layer for union (overlay)" + /tfs/system/usr/bin/lzop -d < ${overlay} | \ + /tfs/system/bin/tar -C /tfs -xf - + + # Copy the installation tidy-up script (for removing custom live-only stuff), + # and any other files in 'larch/copy' directory + if [ -d ${ovlpath}/larch/copy ]; then + cd ${ovlpath}/larch/copy + for f in *; do + cat ${f} >/tfs/${f} + done + fi + + msg_ ":: Setting up union file system" + + layers="/tfs/overlay=rw:/tfs/mods=${ovlmnt}:/tfs/system=${sqfmnt}" + /bin/mount -t ${utype} -o ${bropt}${layers} ${utype} /union + + echo "${utype}" > /tfs/utype + + # Minimal device nodes needed before udev does its work + /bin/mkdir /union/dev + /bin/mknod /union/dev/console c 5 1 + /bin/mknod /union/dev/null c 1 3 + /bin/mknod /union/dev/zero c 1 5 + + # Make special directories + /bin/mkdir -m 1777 /union/tmp + /bin/mkdir /union/media + /bin/mkdir /union/sys + /bin/mkdir /union/proc + + # Make the tmpfs stuff accessible within the union + /bin/mkdir /union/.livesys + /bin/mount -o bind /tfs /union/.livesys + + /bin/mkdir /union/.livesys/medium + + /bin/mount -o bind /tfs/system /union/.livesys/system + /bin/mount -o bind /tfs/overlay /union/.livesys/overlay + /bin/mount -o bind ${cdmount} /union/.livesys/medium + + if [ "x${modsSqf}" != "x" ]; then + /bin/mount -o move /tfs/mods /union/.livesys/mods + fi + + # Remember the boot device + echo "${LDEV}" > /tfs/bootdevice + + if [ "${c2r}" = "y" ]; then + # Set flag to inform system of copy-to-ram + :> /tfs/c2r + + # Unmount boot device + /bin/umount ${cdmount} + fi + + msg_ ":: End of live system set-up" + + # Now some tweaks to alter 'init' actions from non-larch hooks, etc. + # Override rootdelay from usb hook + if [ "x${larchdelay}" = "x" ]; then + # To avoid spurious udevd pid numbers + export rootdelay=1 + else + # Allow adjustment via boot option + export rootdelay=${larchdelay} + fi + # root must be set to something or other, even though larch doesn't + # need it ... + export root="/dev/loop0" +} + +####### +# The actual root switch occurs later, when 'init' execs 'kinit'. +# I handle this by overwriting the 'kinit' binary with my own script. +# This will unmount dev, sys and proc and then exec run-init. +####### diff --git a/abs/mv-core/mythvantage-live/lib/initcpio/install/larch1 b/abs/mv-core/mythvantage-live/lib/initcpio/install/larch1 new file mode 100644 index 0000000..56baf48 --- /dev/null +++ b/abs/mv-core/mythvantage-live/lib/initcpio/install/larch1 @@ -0,0 +1,15 @@ +install () +{ + MODULES="vfat isofs ext2 ext3 nls_cp437" + BINARIES="" + FILES="" + SCRIPT="larch1" +} + +help () +{ +cat<<HELPEOF + This hook deals with booting a larch live CD. It is the first larch hook, +creating a tmpfs and seeking the boot medium. +HELPEOF +} diff --git a/abs/mv-core/mythvantage-live/lib/initcpio/install/larch2 b/abs/mv-core/mythvantage-live/lib/initcpio/install/larch2 new file mode 100644 index 0000000..a906227 --- /dev/null +++ b/abs/mv-core/mythvantage-live/lib/initcpio/install/larch2 @@ -0,0 +1,15 @@ +install () +{ + MODULES="unionfs" + BINARIES="" + FILES="" + SCRIPT="larch2" +} + +help () +{ +cat<<HELPEOF + This hook deals with booting a larch live CD. It handles selection of the +desired unioning file system, here unionfs. +HELPEOF +} diff --git a/abs/mv-core/mythvantage-live/lib/initcpio/install/larch2_aufs b/abs/mv-core/mythvantage-live/lib/initcpio/install/larch2_aufs new file mode 100644 index 0000000..0e19de9 --- /dev/null +++ b/abs/mv-core/mythvantage-live/lib/initcpio/install/larch2_aufs @@ -0,0 +1,15 @@ +install () +{ + MODULES="aufs" + BINARIES="" + FILES="" + SCRIPT="larch2_aufs" +} + +help () +{ +cat<<HELPEOF + This hook deals with booting a larch live CD. It handles selection of the +desired unioning file system, here aufs. +HELPEOF +} diff --git a/abs/mv-core/mythvantage-live/lib/initcpio/install/larch3 b/abs/mv-core/mythvantage-live/lib/initcpio/install/larch3 new file mode 100644 index 0000000..7dad03c --- /dev/null +++ b/abs/mv-core/mythvantage-live/lib/initcpio/install/larch3 @@ -0,0 +1,18 @@ +install () +{ + MODULES="squashfs loop reiserfs" + BINARIES="" + FILES="" + SCRIPT="larch3" +# add_file "/lib/initcpio/kinit" "/bin/kinit" ##### This doesn't work, so: + sed -i 's|.*/usr/lib/klibc/bin/kinit\.shared.*||' "${FILELIST}" + sed -i 's|/usr/lib/klibc/bin/kinit|/lib/initcpio/kinit|' "${FILELIST}" +} + +help () +{ +cat<<HELPEOF + This hook deals with booting a larch live CD. It is the last larch hook, +setting up the tmpfs root file system. +HELPEOF +} diff --git a/abs/mv-core/mythvantage-live/lib/initcpio/kinit b/abs/mv-core/mythvantage-live/lib/initcpio/kinit new file mode 100755 index 0000000..7c86f4b --- /dev/null +++ b/abs/mv-core/mythvantage-live/lib/initcpio/kinit @@ -0,0 +1,6 @@ +#! /bin/sh + +umount /sys +umount /proc +umount /dev +exec run-init -c /dev/console /union /sbin/init ${CMDLINE} diff --git a/abs/mv-core/mythvantage-live/lib/initcpio/mkinitcpio.conf b/abs/mv-core/mythvantage-live/lib/initcpio/mkinitcpio.conf new file mode 100644 index 0000000..79cca21 --- /dev/null +++ b/abs/mv-core/mythvantage-live/lib/initcpio/mkinitcpio.conf @@ -0,0 +1,54 @@ +# vim:set ft=sh +# MODULES +# The following modules are loaded before any boot hooks are +# run. Advanced users may wish to specify all system modules +# in this array. For instance: +# MODULES="piix ide_disk reiserfs" +MODULES="" + +# BINARIES +# This setting includes, into the CPIO image, and additional +# binaries a given user may wish. This is run first, so may +# be used to override the actual binaries used in a given hook. +# (Existing files are NOT overwritten is already added) +# BINARIES are dependancy parsed, so you may safely ignore libraries +#BINARIES="" + +# FILES +# This setting is similar to BINARIES above, however, files are added +# as-is and are not parsed in anyway. This is useful for config files. +# Some users may wish to include modprobe.conf for custom module options, +# like so: +# FILES="/etc/modprobe.conf" +FILES="" + +# HOOKS +# This is the most important setting in this file. The HOOKS control the +# modules and scripts added to the image, and what happens at boot time. +# Order is important, and it is recommended that you do not change the +# order in which HOOKS are added. Run 'mkinitcpio -H <hook name>' for +# help on a given hook. +# 'base' is _required_ unless you know precisely what you are doing. +# 'udev' is _required_ in order to automatically load modules +# 'modload' may be used in place of 'udev', but is not recommended +# 'filesystems' is _required_ unless you specify your fs modules in MODULES +# Examples: +# This setup specifies all modules in the MODULES setting above. +# No raid, lvm, or encrypted root is needed. +# HOOKS="base" +# +# This setup will autodetect all modules for your system and should +# work as a sane default +# HOOKS="base udev autodetect ide scsi sata filesystems" +# +# This setup will generate a 'full' image which supports most systems. +# No autodetection is done. +# HOOKS="base udev ide scsi sata usb filesystems" +# +# This setup assembles an ide raid array with an encrypted root FS. +# Note: See 'mkinitcpio -H raid' for more information on raid devices. +# HOOKS="base udev ide filesystems raid encrypt" +# +# This setup loads an LVM volume group on a usb device. +# HOOKS="base udev usb filesystems lvm" +HOOKS="base udev pata scsi sata usb larch1 larch2___aufs___ larch3" diff --git a/abs/mv-core/oss-sound/PKGBUILD b/abs/mv-core/oss-sound/PKGBUILD new file mode 100755 index 0000000..f9135f0 --- /dev/null +++ b/abs/mv-core/oss-sound/PKGBUILD @@ -0,0 +1,147 @@ +pkgname=oss-linux-free +pkgver=4.0_1016 +pkgrel=12 +_realname=oss-v4.0-build1016-src-gpl +pkgdesc="OSS/Open source driver" +arch=('i686' 'x86_64') +url="http://www.opensound.com/" +license=('GPL2') +depends=('gcc' 'make' 'gtk2' 'libtool' 'bc' 'sed') +makedepends=('gawk' 'pkgconfig') +conflicts=('oss-linux') +provides=('oss') +install=oss.install +source=(rc.oss-linux-free http://www.4front-tech.com/developer/sources/stable/gpl/$_realname.tar.bz2 oss4_1016-kernel2626.diff oss4_1016-moduleinc.diff) +md5sums=('f343bb70a4dbd1aabefabbea0f76e886' + 'b8c3409b477387dbe87118caf46773ed' + '376fce5cfd92d7793ee90d7352c1cafa' + '4077a972a6b26ae960ce15cfec8aa34f') + +build() { + +rm -rf build ; mkdir build ; cd build + +sed -i "s|export HAVE_ALSA=1|# export HAVE_ALSA=1|g" $srcdir/$_realname/configure +sed -i "s|700|755|g" $srcdir/$_realname/setup/Linux/build.sh +unset CFLAGS + +# Thanks to majeru of the OSS forums for this patch +cd $srcdir/$_realname +patch -p0 -i $srcdir/oss4_1016-kernel2626.diff || return 1 +# Thanks to cesium of the OSS forums for this patch +patch -p1 -i $srcdir/oss4_1016-moduleinc.diff || return 1 +cd $srcdir/build +$srcdir/$_realname/configure || return 1 +make build || return 1 + +cp -r prototype/{etc,usr} $pkgdir/ +install -Dm755 ../rc.oss-linux-free $pkgdir/etc/rc.d/oss-linux-free + +if [ `uname -m` == "i686" ]; then +cd setup/Linux/oss/lib +gcc -m32 -shared -fPIC -O2 -Wall -Werror -lssl flashsupport.c -o libflashsupport.so || return 1 +cp libflashsupport.so $pkgdir/usr/lib/oss/lib/ +fi + +#building modules + PREFIX=$startdir/pkg + OSSLIBDIR=$PREFIX/usr/lib/oss +cd $OSSLIBDIR/build +REGPARM=REGPARM +pushd $OSSLIBDIR +rm -rf objects +ln -s objects.regparm objects +rm -rf modules +ln -s modules.regparm modules +popd + + +if ! test -f $OSSLIBDIR/objects/osscore.o +then + echo Error: OSS core module for $REGPARM kernel are not available + exit 1 +fi + +if ! test -f $OSSLIBDIR/modules/ich.o +then + echo Error: OSS driver modules for $REGPARM kernel are not available + exit 1 +fi + +echo +echo OSS build environment set up for $REGPARM kernels +BASEKERNEL=/lib/modules/2.6.26-ARCH +PKGKERNEL=$startdir/pkg$BASEKERNEL +KERNELDIR=$BASEKERNEL/build + +cp -f ../objects/osscore.o osscore_mainline.o + +ln -sf ../include/sys/*.h ../include/sys/ossddk . + +rm -f Makefile +ln -s Makefile.osscore Makefile + +if ! test -d $OSSLIBDIR/logs +then + mkdir $OSSLIBDIR/logs +fi + +echo Building module osscore + +if ! make KERNELDIR=$KERNELDIR> build.list 2>&1 +then + echo Failed to compile OSS + cat build.list + exit 2 +fi + +if ! test -d $PKGKERNEL/kernel/oss +then + mkdir -p $PKGKERNEL/kernel/oss +fi + +if ! test -d $PKGKERNEL/kernel/oss +then + echo OSS module directory $PKGKERNEL/kernel/oss does not exist. + exit 3 +fi + +if ! ld -r osscore.ko osscore_mainline.o -o $PKGKERNEL/kernel/oss/osscore.ko +then + echo Linking the osscore module failed + exit 5 +fi + +#depmod -a + +for n in ../modules/*.o +do + N=`basename $n .o` + echo Building module $N + + rm -f $N_mainline.o Makefile + + sed "s/MODNAME/$N/" < Makefile.tmpl > Makefile + ln -s $n $N_mainline.o + + if ! make KERNELDIR=$KERNELDIR > build.list 2>&1 + then + echo Compiling module $N failed + cat build.list + exit 4 + fi + + if ! ld -r $N.ko $N_mainline.o -o $PKGKERNEL/kernel/oss/$N.ko + then + echo Linking $N module failed + exit 6 + fi + + rm -f $N_mainline.o + make clean +done + +rm -f Makefile + + +} diff --git a/abs/mv-core/oss-sound/PKGBUILD.keep b/abs/mv-core/oss-sound/PKGBUILD.keep new file mode 100755 index 0000000..f9135f0 --- /dev/null +++ b/abs/mv-core/oss-sound/PKGBUILD.keep @@ -0,0 +1,147 @@ +pkgname=oss-linux-free +pkgver=4.0_1016 +pkgrel=12 +_realname=oss-v4.0-build1016-src-gpl +pkgdesc="OSS/Open source driver" +arch=('i686' 'x86_64') +url="http://www.opensound.com/" +license=('GPL2') +depends=('gcc' 'make' 'gtk2' 'libtool' 'bc' 'sed') +makedepends=('gawk' 'pkgconfig') +conflicts=('oss-linux') +provides=('oss') +install=oss.install +source=(rc.oss-linux-free http://www.4front-tech.com/developer/sources/stable/gpl/$_realname.tar.bz2 oss4_1016-kernel2626.diff oss4_1016-moduleinc.diff) +md5sums=('f343bb70a4dbd1aabefabbea0f76e886' + 'b8c3409b477387dbe87118caf46773ed' + '376fce5cfd92d7793ee90d7352c1cafa' + '4077a972a6b26ae960ce15cfec8aa34f') + +build() { + +rm -rf build ; mkdir build ; cd build + +sed -i "s|export HAVE_ALSA=1|# export HAVE_ALSA=1|g" $srcdir/$_realname/configure +sed -i "s|700|755|g" $srcdir/$_realname/setup/Linux/build.sh +unset CFLAGS + +# Thanks to majeru of the OSS forums for this patch +cd $srcdir/$_realname +patch -p0 -i $srcdir/oss4_1016-kernel2626.diff || return 1 +# Thanks to cesium of the OSS forums for this patch +patch -p1 -i $srcdir/oss4_1016-moduleinc.diff || return 1 +cd $srcdir/build +$srcdir/$_realname/configure || return 1 +make build || return 1 + +cp -r prototype/{etc,usr} $pkgdir/ +install -Dm755 ../rc.oss-linux-free $pkgdir/etc/rc.d/oss-linux-free + +if [ `uname -m` == "i686" ]; then +cd setup/Linux/oss/lib +gcc -m32 -shared -fPIC -O2 -Wall -Werror -lssl flashsupport.c -o libflashsupport.so || return 1 +cp libflashsupport.so $pkgdir/usr/lib/oss/lib/ +fi + +#building modules + PREFIX=$startdir/pkg + OSSLIBDIR=$PREFIX/usr/lib/oss +cd $OSSLIBDIR/build +REGPARM=REGPARM +pushd $OSSLIBDIR +rm -rf objects +ln -s objects.regparm objects +rm -rf modules +ln -s modules.regparm modules +popd + + +if ! test -f $OSSLIBDIR/objects/osscore.o +then + echo Error: OSS core module for $REGPARM kernel are not available + exit 1 +fi + +if ! test -f $OSSLIBDIR/modules/ich.o +then + echo Error: OSS driver modules for $REGPARM kernel are not available + exit 1 +fi + +echo +echo OSS build environment set up for $REGPARM kernels +BASEKERNEL=/lib/modules/2.6.26-ARCH +PKGKERNEL=$startdir/pkg$BASEKERNEL +KERNELDIR=$BASEKERNEL/build + +cp -f ../objects/osscore.o osscore_mainline.o + +ln -sf ../include/sys/*.h ../include/sys/ossddk . + +rm -f Makefile +ln -s Makefile.osscore Makefile + +if ! test -d $OSSLIBDIR/logs +then + mkdir $OSSLIBDIR/logs +fi + +echo Building module osscore + +if ! make KERNELDIR=$KERNELDIR> build.list 2>&1 +then + echo Failed to compile OSS + cat build.list + exit 2 +fi + +if ! test -d $PKGKERNEL/kernel/oss +then + mkdir -p $PKGKERNEL/kernel/oss +fi + +if ! test -d $PKGKERNEL/kernel/oss +then + echo OSS module directory $PKGKERNEL/kernel/oss does not exist. + exit 3 +fi + +if ! ld -r osscore.ko osscore_mainline.o -o $PKGKERNEL/kernel/oss/osscore.ko +then + echo Linking the osscore module failed + exit 5 +fi + +#depmod -a + +for n in ../modules/*.o +do + N=`basename $n .o` + echo Building module $N + + rm -f $N_mainline.o Makefile + + sed "s/MODNAME/$N/" < Makefile.tmpl > Makefile + ln -s $n $N_mainline.o + + if ! make KERNELDIR=$KERNELDIR > build.list 2>&1 + then + echo Compiling module $N failed + cat build.list + exit 4 + fi + + if ! ld -r $N.ko $N_mainline.o -o $PKGKERNEL/kernel/oss/$N.ko + then + echo Linking $N module failed + exit 6 + fi + + rm -f $N_mainline.o + make clean +done + +rm -f Makefile + + +} diff --git a/abs/mv-core/oss-sound/PKGBUILD.orig b/abs/mv-core/oss-sound/PKGBUILD.orig new file mode 100755 index 0000000..e0e695b --- /dev/null +++ b/abs/mv-core/oss-sound/PKGBUILD.orig @@ -0,0 +1,147 @@ +pkgname=oss +pkgver=4.0_1016 +_pkgver=v4.0-1016 +pkgrel=14 +pkgdesc="OSS/Commercial driver" +url="http://www.opensound.com/" +license="" +depends=('glibc' 'gtk2') +makedepends=('make') +conflicts=('oss-linux') +provides=('oss-linux') +replaces=() +backup=() +#http://www.4front-tech.com/release/oss-linux-v4.0-1012-i386.tar.bz2 +install=oss.install +source=(http://www.4front-tech.com/release/oss-linux-v4.0-1016-i386.tar.bz2 install_sh.diff) +arch=('i686') + + +build() { + PREFIX=$startdir/pkg + OSSLIBDIR=$PREFIX/usr/lib/oss + + cd $startdir/src + find . -type d -exec chmod 755 '{}' ';' + patch -p0 < ../install_sh.diff || return 1 + + ## Install + cp -rp etc $PREFIX/ + cp -rp usr $PREFIX/ + cp -rp $PREFIX/usr/share/man $PREFIX/usr/ + rmdir $PREFIX/usr/share + mkdir $PREFIX/usr/lib/oss/logs + # mkdir -p $PREFIX/etc/rc.d + # install oss-linux $PREFIX/etc/rc.d/ + + mv $OSSLIBDIR/conf.tmpl $OSSLIBDIR/conf + mkdir -p $PREFIX/usr/lib + cd $PREFIX/usr/lib + ln -sf oss/lib/libOSSlib.so || return 1 + +#building modules +cd $OSSLIBDIR/build +REGPARM=REGPARM +pushd $OSSLIBDIR +rm -rf objects +ln -s objects.regparm objects +rm -rf modules +ln -s modules.regparm modules +popd + + +if ! test -f $OSSLIBDIR/objects/osscore.o +then + echo Error: OSS core module for $REGPARM kernel are not available + exit 1 +fi + +if ! test -f $OSSLIBDIR/modules/ich.o +then + echo Error: OSS driver modules for $REGPARM kernel are not available + exit 1 +fi + +echo +echo OSS build environment set up for $REGPARM kernels +BASEKERNEL=/lib/modules/2.6.26-ARCH +PKGKERNEL=$startdir/pkg$BASEKERNEL +KERNELDIR=$BASEKERNEL/build + +cp -f ../objects/osscore.o osscore_mainline.o + +ln -sf ../include/sys/*.h ../include/sys/ossddk . + +rm -f Makefile +ln -s Makefile.osscore Makefile + +if ! test -d $OSSLIBDIR/logs +then + mkdir $OSSLIBDIR/logs +fi + +echo Building module osscore + +if ! make KERNELDIR=$KERNELDIR> build.list 2>&1 +then + echo Failed to compile OSS + cat build.list + exit 2 +fi + +if ! test -d $PKGKERNEL/kernel/oss +then + mkdir -p $PKGKERNEL/kernel/oss +fi + +if ! test -d $PKGKERNEL/kernel/oss +then + echo OSS module directory $PKGKERNEL/kernel/oss does not exist. + exit 3 +fi + +if ! ld -r osscore.ko osscore_mainline.o -o $PKGKERNEL/kernel/oss/osscore.ko +then + echo Linking the osscore module failed + exit 5 +fi + +#depmod -a + +for n in ../modules/*.o +do + N=`basename $n .o` + echo Building module $N + + rm -f $N_mainline.o Makefile + + sed "s/MODNAME/$N/" < Makefile.tmpl > Makefile + ln -s $n $N_mainline.o + + if ! make KERNELDIR=$KERNELDIR > build.list 2>&1 + then + echo Compiling module $N failed + cat build.list + exit 4 + fi + + if ! ld -r $N.ko $N_mainline.o -o $PKGKERNEL/kernel/oss/$N.ko + then + echo Linking $N module failed + exit 6 + fi + + rm -f $N_mainline.o + make clean +done + +rm -f Makefile + + + + + + + + +} diff --git a/abs/mv-core/oss-sound/PKGBUILD.oss-free b/abs/mv-core/oss-sound/PKGBUILD.oss-free new file mode 100755 index 0000000..b652603 --- /dev/null +++ b/abs/mv-core/oss-sound/PKGBUILD.oss-free @@ -0,0 +1,45 @@ +pkgname=oss-linux-free +pkgver=4.0_1016 +pkgrel=3 +_realname=oss-v4.0-build1016-src-gpl +pkgdesc="OSS/Open source driver" +arch=('i686' 'x86_64') +url="http://www.opensound.com/" +license=('GPL2') +depends=('gcc' 'make' 'gtk2' 'libtool' 'bc' 'sed') +makedepends=('gawk' 'pkgconfig') +conflicts=('oss-linux') +provides=('oss') +install=oss.install +source=(rc.oss-linux-free http://www.4front-tech.com/developer/sources/stable/gpl/$_realname.tar.bz2 oss4_1016-kernel2626.diff oss4_1016-moduleinc.diff) +md5sums=('f343bb70a4dbd1aabefabbea0f76e886' + 'b8c3409b477387dbe87118caf46773ed' + '376fce5cfd92d7793ee90d7352c1cafa' + '4077a972a6b26ae960ce15cfec8aa34f') + +build() { + +rm -rf build ; mkdir build ; cd build + +sed -i "s|export HAVE_ALSA=1|# export HAVE_ALSA=1|g" $srcdir/$_realname/configure +sed -i "s|700|755|g" $srcdir/$_realname/setup/Linux/build.sh +unset CFLAGS + +# Thanks to majeru of the OSS forums for this patch +cd $srcdir/$_realname +patch -p0 -i $srcdir/oss4_1016-kernel2626.diff || return 1 +# Thanks to cesium of the OSS forums for this patch +patch -p1 -i $srcdir/oss4_1016-moduleinc.diff || return 1 +cd $srcdir/build +$srcdir/$_realname/configure || return 1 +make build || return 1 + +cp -r prototype/{etc,usr} $pkgdir/ +install -Dm755 ../rc.oss-linux-free $pkgdir/etc/rc.d/oss-linux-free + +if [ `uname -m` == "i686" ]; then +cd setup/Linux/oss/lib +gcc -m32 -shared -fPIC -O2 -Wall -Werror -lssl flashsupport.c -o libflashsupport.so || return 1 +cp libflashsupport.so $pkgdir/usr/lib/oss/lib/ +fi +} diff --git a/abs/mv-core/oss-sound/install_sh.diff b/abs/mv-core/oss-sound/install_sh.diff new file mode 100755 index 0000000..7276285 --- /dev/null +++ b/abs/mv-core/oss-sound/install_sh.diff @@ -0,0 +1,50 @@ +--- usr/lib/oss/build/install.sh.old 2007-02-15 17:02:16.000000000 +0800 ++++ usr/lib/oss/build/install.sh 2007-03-02 11:34:05.000000000 +0800 +@@ -10,21 +10,14 @@ + + rm -f $OSSLIBDIR/.cuckoo_installed + +-# Check if we should use REGPARM or non-REGPARM modules +-if /usr/sbin/ossvermagic -r || /sbin/modinfo ext3|grep -q REGPARM +-then ++# Always use REGPARM (for kernel 2.6.20+) + REGPARM=REGPARM +- rm -rf $OSSLIBDIR/objects +- ln -s $OSSLIBDIR/objects.regparm $OSSLIBDIR/objects +- rm -rf $OSSLIBDIR/modules +- ln -s $OSSLIBDIR/modules.regparm $OSSLIBDIR/modules +-else +- REGPARM=NOREGPARM +- rm -rf $OSSLIBDIR/objects +- ln -s $OSSLIBDIR/objects.noregparm $OSSLIBDIR/objects +- rm -rf $OSSLIBDIR/modules +- ln -s $OSSLIBDIR/modules.noregparm $OSSLIBDIR/modules +-fi ++pushd $OSSLIBDIR ++rm -rf objects ++ln -s objects.regparm objects ++rm -rf modules ++ln -s modules.regparm modules ++popd + + if ! test -f $OSSLIBDIR/objects/osscore.o + then +@@ -291,12 +284,12 @@ + fi + + # Install ALSA interface module (Cuckoo) +-#(cd $OSSLIBDIR/cuckoo && make clean) > /dev/null 2>&1 +-#if (cd $OSSLIBDIR/cuckoo && make install) > $OSSLIBDIR/logs/cuckoo.log 2>&1 +-#then +-# touch $OSSLIBDIR/.cuckoo_installed +-#fi +-#(cd $OSSLIBDIR/cuckoo && make clean) > /dev/null 2>&1 ++(cd $OSSLIBDIR/cuckoo && make clean) > /dev/null 2>&1 ++if (cd $OSSLIBDIR/cuckoo && make install) > $OSSLIBDIR/logs/cuckoo.log 2>&1 ++then ++ touch $OSSLIBDIR/.cuckoo_installed ++fi ++(cd $OSSLIBDIR/cuckoo && make clean) > /dev/null 2>&1 + + # Remove bogus char major 14 device files left from earlier OSS versions. + diff --git a/abs/mv-core/oss-sound/oss-linux-free/PKGBUILD b/abs/mv-core/oss-sound/oss-linux-free/PKGBUILD new file mode 100644 index 0000000..b652603 --- /dev/null +++ b/abs/mv-core/oss-sound/oss-linux-free/PKGBUILD @@ -0,0 +1,45 @@ +pkgname=oss-linux-free +pkgver=4.0_1016 +pkgrel=3 +_realname=oss-v4.0-build1016-src-gpl +pkgdesc="OSS/Open source driver" +arch=('i686' 'x86_64') +url="http://www.opensound.com/" +license=('GPL2') +depends=('gcc' 'make' 'gtk2' 'libtool' 'bc' 'sed') +makedepends=('gawk' 'pkgconfig') +conflicts=('oss-linux') +provides=('oss') +install=oss.install +source=(rc.oss-linux-free http://www.4front-tech.com/developer/sources/stable/gpl/$_realname.tar.bz2 oss4_1016-kernel2626.diff oss4_1016-moduleinc.diff) +md5sums=('f343bb70a4dbd1aabefabbea0f76e886' + 'b8c3409b477387dbe87118caf46773ed' + '376fce5cfd92d7793ee90d7352c1cafa' + '4077a972a6b26ae960ce15cfec8aa34f') + +build() { + +rm -rf build ; mkdir build ; cd build + +sed -i "s|export HAVE_ALSA=1|# export HAVE_ALSA=1|g" $srcdir/$_realname/configure +sed -i "s|700|755|g" $srcdir/$_realname/setup/Linux/build.sh +unset CFLAGS + +# Thanks to majeru of the OSS forums for this patch +cd $srcdir/$_realname +patch -p0 -i $srcdir/oss4_1016-kernel2626.diff || return 1 +# Thanks to cesium of the OSS forums for this patch +patch -p1 -i $srcdir/oss4_1016-moduleinc.diff || return 1 +cd $srcdir/build +$srcdir/$_realname/configure || return 1 +make build || return 1 + +cp -r prototype/{etc,usr} $pkgdir/ +install -Dm755 ../rc.oss-linux-free $pkgdir/etc/rc.d/oss-linux-free + +if [ `uname -m` == "i686" ]; then +cd setup/Linux/oss/lib +gcc -m32 -shared -fPIC -O2 -Wall -Werror -lssl flashsupport.c -o libflashsupport.so || return 1 +cp libflashsupport.so $pkgdir/usr/lib/oss/lib/ +fi +} diff --git a/abs/mv-core/oss-sound/oss-linux-free/oss.install b/abs/mv-core/oss-sound/oss-linux-free/oss.install new file mode 100644 index 0000000..e17dd0e --- /dev/null +++ b/abs/mv-core/oss-sound/oss-linux-free/oss.install @@ -0,0 +1,40 @@ +post_install() { + echo "Probing soundcards, change /usr/lib/oss/etc/installed_drivers as needed afterwards if + you want to disable any of the OSS modules. You can run '/usr/sbin/ossdetect -v' at any time + if you have changed soundcards." + /usr/sbin/ossdetect -v + /sbin/ldconfig + /bin/true +} + +pre_upgrade() { + /etc/rc.d/oss-linux-free stop + /bin/true +} + +post_upgrade() { + /etc/rc.d/oss-linux-free start + echo "If you changed your soundcard, reprobe for soundcards using '/usr/sbin/ossdetect -v'." + /sbin/ldconfig # We need to run this since libflashsupport.so is installed on x86 + /bin/true +} + +pre_remove() { + /etc/rc.d/oss-linux-free stop + sh /usr/lib/oss/scripts/restore_drv.sh +} + +post_remove() { + echo "/usr/lib/oss/ will still contain files after removal as those files were generated by OSS + after instalation. Delete them manually unless you want to keep them for later use." + if [ `uname -m` == "i686" ]; then + rm -f /usr/lib/libflashsupport.so + fi + /bin/true +} + +op=$1 +shift +[ "$(type -t "$op")" = "function" ] && $op "$@" + +# vim:set ts=2 sw=2 et: diff --git a/abs/mv-core/oss-sound/oss-linux-free/oss4_1016-kernel2626.diff b/abs/mv-core/oss-sound/oss-linux-free/oss4_1016-kernel2626.diff new file mode 100644 index 0000000..730c19e --- /dev/null +++ b/abs/mv-core/oss-sound/oss-linux-free/oss4_1016-kernel2626.diff @@ -0,0 +1,21 @@ +diff -uNr setup/Linux/oss/build/osscore.c setup/Linux/oss/build/osscore.c +--- setup/Linux/oss/build/osscore.c 2008-05-24 04:54:28.000000000 +0200 ++++ setup/Linux/oss/build/osscore.c 2008-07-31 19:47:53.000000000 +0200 +@@ -285,7 +285,7 @@ + init_proc_fs (void) + { + if ((oss_proc_root = +- create_proc_entry ("opensound", 0700 | S_IFDIR, &proc_root)) == NULL) ++ create_proc_entry ("opensound", 0700 | S_IFDIR, NULL)) == NULL) + { + oss_cmn_err (CE_CONT, "Cannot create /proc/opensound\n"); + return; +@@ -308,7 +308,7 @@ + { + if (oss_proc_devfiles) + remove_proc_entry ("devfiles", oss_proc_root); +- remove_proc_entry ("opensound", &proc_root); ++ remove_proc_entry ("opensound", NULL); + } + } + diff --git a/abs/mv-core/oss-sound/oss-linux-free/oss4_1016-moduleinc.diff b/abs/mv-core/oss-sound/oss-linux-free/oss4_1016-moduleinc.diff new file mode 100644 index 0000000..4595ead --- /dev/null +++ b/abs/mv-core/oss-sound/oss-linux-free/oss4_1016-moduleinc.diff @@ -0,0 +1,44 @@ +diff -uNr oss-v4.0-build1016-src-gpl/setup/Linux/oss/build/install.sh oss-v4.0-build1016-src-gpl.bak/setup/Linux/oss/build/install.sh +--- oss-v4.0-build1016-src-gpl/setup/Linux/oss/build/install.sh 2008-02-05 18:58:46.000000000 +0100 ++++ oss-v4.0-build1016-src-gpl.bak/setup/Linux/oss/build/install.sh 2008-07-31 10:36:09.000000000 +0200 +@@ -159,6 +159,7 @@ + ln -sf ../include/sys/*.h ../include/sys/ossddk . + + rm -f Makefile ++cp module.inc module.inc.orig + ln -s Makefile.osscore Makefile + + if ! test -d $OSSLIBDIR/logs +@@ -221,7 +222,8 @@ + make clean + done + +-rm -f Makefile ++cp module.inc.orig module.inc ++rm -f Makefile module.inc.orig + + echo "depmod -a" + depmod -a +diff -uNr oss-v4.0-build1016-src-gpl/setup/Linux/oss/build/Makefile.osscore oss-v4.0-build1016-src-gpl.bak/setup/Linux/oss/build/Makefile.osscore +--- oss-v4.0-build1016-src-gpl/setup/Linux/oss/build/Makefile.osscore 2005-11-23 23:52:32.000000000 +0100 ++++ oss-v4.0-build1016-src-gpl.bak/setup/Linux/oss/build/Makefile.osscore 2008-07-31 10:34:23.000000000 +0200 +@@ -7,11 +7,17 @@ + + KERNELDIR ?= /lib/modules/$(shell uname -r)/build + PWD := $(shell pwd) ++endif + + default: + $(MAKE) -C $(KERNELDIR) M=$(PWD) modules +- +-endif ++ @#Take generated symbol information and add it to module.inc ++ @echo >> module.inc ++ @echo "static const struct modversion_info ____versions[]" >> module.inc ++ @echo " __attribute__((used))" >> module.inc ++ @echo "__attribute__((section(\"__versions\"))) = {" >> module.inc ++ @sed -e "s:^:{:" -e "s:\t:, \":" -e "s:\t\(.\)*:\"},:" < Module.symvers >> module.inc ++ @echo "};" >> module.inc + + clean: + rm -f *.o *.ko *.mod.c *.mod.o .*.cmd core core.* x y z diff --git a/abs/mv-core/oss-sound/oss-linux-free/rc.oss-linux-free b/abs/mv-core/oss-sound/oss-linux-free/rc.oss-linux-free new file mode 100755 index 0000000..48b65e0 --- /dev/null +++ b/abs/mv-core/oss-sound/oss-linux-free/rc.oss-linux-free @@ -0,0 +1,73 @@ +#!/bin/bash + +. /etc/rc.conf +. /etc/rc.d/functions + +terminateapps() { + # Thanks to the Gentoo ebuild/start script for the following + # http://bugs.gentoo.org/show_bug.cgi?id=184123 + # http://bugs.gentoo.org/attachment.cgi?id=153689 + devs=`perl -e '{while (<>) {m/^(\S*)/; print "/dev/$1\n"}}' \ + < /proc/opensound/devfiles` + fuser -k ${devs} >/dev/null 2>/dev/null +} + +case "$1" in + start) + stat_busy "Starting OSS/Open source driver" + # start + /usr/sbin/soundon + if [ $? -gt 0 ]; then + stat_fail + else + grep '^softoss' /proc/modules >/dev/null 2>/dev/null + if [ $? -eq 0 ]; then + stat_busy "Replacing old \"softoss\" module with \"vmix\"" + rmmod softoss + modprobe vmix + sed -i 's/^softoss.*$/vmix/' /usr/lib/oss/etc/installed_drivers + fi + add_daemon oss-linux-free + stat_done + fi + ;; + stop) + stat_busy "Saving OSS mixer" + /usr/sbin/savemixer + if [ $? -gt 0 ]; then + stat_fail + else + stat_done + fi + grep '^"cuckoo"' /proc/modules >/dev/null 2>/dev/null + if [ $? -eq 0 ]; then + stat_busy "Removing \"cuckoo\" module" + rmmod cuckoo + fi + stat_busy "Killing processes using OSS" + terminateapps + stat_done + # It doesn't matter if it didnt kill anything! + stat_busy "Stopping OSS/Open source driver" + /usr/sbin/soundoff + if [ $? -gt 0 ]; then + stat_fail + else + rm_daemon oss-linux-free + stat_done + fi + ;; + restart) + $0 stop + sleep 1 + $0 start + ;; + terminateapps) + stat_busy "Killing processes using OSS" + terminateapps + stat_done + # It doesn't matter if it didnt kill anything! + ;; + *) + echo "usage: $0 {start|stop|restart|terminateapps}" +esac diff --git a/abs/mv-core/oss-sound/oss.install b/abs/mv-core/oss-sound/oss.install new file mode 100755 index 0000000..57a8ec6 --- /dev/null +++ b/abs/mv-core/oss-sound/oss.install @@ -0,0 +1,56 @@ +pre_install() { +#make a backup copy of the alsa modules +KERNAL=`uname -r` +MODULE=/lib/modules/$KERNAL/kernel/sound + +if [ -e $MODULE ] +then + echo "creating archive of alsa modules" + cd $MODULE + cd .. + tar -cvf /lib/modules/$KERNAL/kernel/alsa-$KERNAL.tar sound + rm -rf $MODULE +fi +} + +post_install() { + echo "Probing soundcards, change /usr/lib/oss/etc/installed_drivers as needed afterwards if + you want to disable any of the OSS modules. You can run '/usr/sbin/ossdetect -v' at any time + if you have changed soundcards." + /usr/sbin/ossdetect -v + /sbin/ldconfig + /bin/true +} + +pre_upgrade() { + sv stop oss + pre_install + +} + +post_upgrade() { + sv start oss + echo "If you changed your soundcard, reprobe for soundcards using '/usr/sbin/ossdetect -v'." + /sbin/ldconfig # We need to run this since libflashsupport.so is installed on x86 + /bin/true +} + +pre_remove() { + sv stop off + #sh /usr/lib/oss/scripts/restore_drv.sh +} + +post_remove() { + echo "/usr/lib/oss/ will still contain files after removal as those files were generated by OSS + after instalation. Delete them manually unless you want to keep them for later use." + if [ `uname -m` == "i686" ]; then + rm -f /usr/lib/libflashsupport.so + fi + /bin/true +} + +op=$1 +shift +[ "$(type -t "$op")" = "function" ] && $op "$@" + +# vim:set ts=2 sw=2 et: diff --git a/abs/mv-core/oss-sound/oss4_1016-kernel2626.diff b/abs/mv-core/oss-sound/oss4_1016-kernel2626.diff new file mode 100644 index 0000000..730c19e --- /dev/null +++ b/abs/mv-core/oss-sound/oss4_1016-kernel2626.diff @@ -0,0 +1,21 @@ +diff -uNr setup/Linux/oss/build/osscore.c setup/Linux/oss/build/osscore.c +--- setup/Linux/oss/build/osscore.c 2008-05-24 04:54:28.000000000 +0200 ++++ setup/Linux/oss/build/osscore.c 2008-07-31 19:47:53.000000000 +0200 +@@ -285,7 +285,7 @@ + init_proc_fs (void) + { + if ((oss_proc_root = +- create_proc_entry ("opensound", 0700 | S_IFDIR, &proc_root)) == NULL) ++ create_proc_entry ("opensound", 0700 | S_IFDIR, NULL)) == NULL) + { + oss_cmn_err (CE_CONT, "Cannot create /proc/opensound\n"); + return; +@@ -308,7 +308,7 @@ + { + if (oss_proc_devfiles) + remove_proc_entry ("devfiles", oss_proc_root); +- remove_proc_entry ("opensound", &proc_root); ++ remove_proc_entry ("opensound", NULL); + } + } + diff --git a/abs/mv-core/oss-sound/oss4_1016-moduleinc.diff b/abs/mv-core/oss-sound/oss4_1016-moduleinc.diff new file mode 100644 index 0000000..4595ead --- /dev/null +++ b/abs/mv-core/oss-sound/oss4_1016-moduleinc.diff @@ -0,0 +1,44 @@ +diff -uNr oss-v4.0-build1016-src-gpl/setup/Linux/oss/build/install.sh oss-v4.0-build1016-src-gpl.bak/setup/Linux/oss/build/install.sh +--- oss-v4.0-build1016-src-gpl/setup/Linux/oss/build/install.sh 2008-02-05 18:58:46.000000000 +0100 ++++ oss-v4.0-build1016-src-gpl.bak/setup/Linux/oss/build/install.sh 2008-07-31 10:36:09.000000000 +0200 +@@ -159,6 +159,7 @@ + ln -sf ../include/sys/*.h ../include/sys/ossddk . + + rm -f Makefile ++cp module.inc module.inc.orig + ln -s Makefile.osscore Makefile + + if ! test -d $OSSLIBDIR/logs +@@ -221,7 +222,8 @@ + make clean + done + +-rm -f Makefile ++cp module.inc.orig module.inc ++rm -f Makefile module.inc.orig + + echo "depmod -a" + depmod -a +diff -uNr oss-v4.0-build1016-src-gpl/setup/Linux/oss/build/Makefile.osscore oss-v4.0-build1016-src-gpl.bak/setup/Linux/oss/build/Makefile.osscore +--- oss-v4.0-build1016-src-gpl/setup/Linux/oss/build/Makefile.osscore 2005-11-23 23:52:32.000000000 +0100 ++++ oss-v4.0-build1016-src-gpl.bak/setup/Linux/oss/build/Makefile.osscore 2008-07-31 10:34:23.000000000 +0200 +@@ -7,11 +7,17 @@ + + KERNELDIR ?= /lib/modules/$(shell uname -r)/build + PWD := $(shell pwd) ++endif + + default: + $(MAKE) -C $(KERNELDIR) M=$(PWD) modules +- +-endif ++ @#Take generated symbol information and add it to module.inc ++ @echo >> module.inc ++ @echo "static const struct modversion_info ____versions[]" >> module.inc ++ @echo " __attribute__((used))" >> module.inc ++ @echo "__attribute__((section(\"__versions\"))) = {" >> module.inc ++ @sed -e "s:^:{:" -e "s:\t:, \":" -e "s:\t\(.\)*:\"},:" < Module.symvers >> module.inc ++ @echo "};" >> module.inc + + clean: + rm -f *.o *.ko *.mod.c *.mod.o .*.cmd core core.* x y z diff --git a/abs/mv-core/oss-sound/rc.oss-linux-free b/abs/mv-core/oss-sound/rc.oss-linux-free new file mode 100755 index 0000000..48b65e0 --- /dev/null +++ b/abs/mv-core/oss-sound/rc.oss-linux-free @@ -0,0 +1,73 @@ +#!/bin/bash + +. /etc/rc.conf +. /etc/rc.d/functions + +terminateapps() { + # Thanks to the Gentoo ebuild/start script for the following + # http://bugs.gentoo.org/show_bug.cgi?id=184123 + # http://bugs.gentoo.org/attachment.cgi?id=153689 + devs=`perl -e '{while (<>) {m/^(\S*)/; print "/dev/$1\n"}}' \ + < /proc/opensound/devfiles` + fuser -k ${devs} >/dev/null 2>/dev/null +} + +case "$1" in + start) + stat_busy "Starting OSS/Open source driver" + # start + /usr/sbin/soundon + if [ $? -gt 0 ]; then + stat_fail + else + grep '^softoss' /proc/modules >/dev/null 2>/dev/null + if [ $? -eq 0 ]; then + stat_busy "Replacing old \"softoss\" module with \"vmix\"" + rmmod softoss + modprobe vmix + sed -i 's/^softoss.*$/vmix/' /usr/lib/oss/etc/installed_drivers + fi + add_daemon oss-linux-free + stat_done + fi + ;; + stop) + stat_busy "Saving OSS mixer" + /usr/sbin/savemixer + if [ $? -gt 0 ]; then + stat_fail + else + stat_done + fi + grep '^"cuckoo"' /proc/modules >/dev/null 2>/dev/null + if [ $? -eq 0 ]; then + stat_busy "Removing \"cuckoo\" module" + rmmod cuckoo + fi + stat_busy "Killing processes using OSS" + terminateapps + stat_done + # It doesn't matter if it didnt kill anything! + stat_busy "Stopping OSS/Open source driver" + /usr/sbin/soundoff + if [ $? -gt 0 ]; then + stat_fail + else + rm_daemon oss-linux-free + stat_done + fi + ;; + restart) + $0 stop + sleep 1 + $0 start + ;; + terminateapps) + stat_busy "Killing processes using OSS" + terminateapps + stat_done + # It doesn't matter if it didnt kill anything! + ;; + *) + echo "usage: $0 {start|stop|restart|terminateapps}" +esac diff --git a/abs/mv-core/runit-scripts-mv/PKGBUILD b/abs/mv-core/runit-scripts-mv/PKGBUILD new file mode 100755 index 0000000..89848c9 --- /dev/null +++ b/abs/mv-core/runit-scripts-mv/PKGBUILD @@ -0,0 +1,28 @@ +pkgname=runit-scripts-mv +pkgver=1.8.0 +pkgrel=1 +pkgdesc="collection of startup scripts for runit MythVantage styel" +url="http://smarden.org/runit/" +license="BSD" +depends=('glibc' 'util-linux' 'initscripts' 'runit' ) +makedepends=() +conflicts=() +replaces=() +backup=() +install=runit.install +source=() +arch=('i686') + +build() { + rsync -a --exclude=.svn $startdir/runitscripts $startdir/src + cd $startdir/src/runitscripts + install -d $startdir/pkg/etc/ + install -d $startdir/pkg/etc/runit/ + install -d $startdir/pkg/var/service + install -d $startdir/pkg/etc/sv + install -d $startdir/pkg/sbin + install -m0700 1 2 3 ctrlaltdel $startdir/pkg/etc/runit + + install -m0755 reboot-runit halt-runit logger $startdir/pkg/sbin + rsync -a --exclude=.svn services/* $startdir/pkg/etc/sv +} diff --git a/abs/mv-core/runit-scripts-mv/runit.install b/abs/mv-core/runit-scripts-mv/runit.install new file mode 100755 index 0000000..4652368 --- /dev/null +++ b/abs/mv-core/runit-scripts-mv/runit.install @@ -0,0 +1,57 @@ +# arg 1: the new package version + +pre_install () { +if [ ! -f /sbin/halt-init ] +then + mv /sbin/halt /sbin/halt-init + rm -f /sbin/reboot + rm -f /sbin/poweroff +fi + +} + +pre_upgrade () { +if [ ! -f /sbin/halt-init ] +then + mv /sbin/halt /sbin/halt-init + rm -f /sbin/reboot + rm -f /sbin/poweroff +fi + +} + +post_install () { + + mkdir /var/service + ln -s /etc/sv/tty* /var/service + servicelist="acpid cron frontend lircd ntpd alsa-utils avahi dbus portmap sshd" + for i in $servicelist + do + ln -s /etc/sv/$i /var/service/$i + done + + ln -s /sbin/halt.script /sbin/halt + ln -s /sbin/reboot.script /sbin/reboot + ln -s /sbin/poweroff.script /sbin/poweroff + ln -s /sbin/halt-init /sbin/reboot.init + ln -s /sbin/halt-init /sbin/poweroff.init + + +} + +# arg 1: the new package version +# arg 2: the old package version + +post_upgrade(){ + ln -s /sbin/halt.script /sbin/halt + ln -s /sbin/reboot.script /sbin/reboot + ln -s /sbin/poweroff.script /sbin/poweroff + ln -s /sbin/halt-init /sbin/reboot.init + ln -s /sbin/halt-init /sbin/poweroff.init + +} + +op=$1 +shift + +$op $* diff --git a/abs/mv-core/runit-scripts-mv/runitscripts/1 b/abs/mv-core/runit-scripts-mv/runitscripts/1 new file mode 100755 index 0000000..748930f --- /dev/null +++ b/abs/mv-core/runit-scripts-mv/runitscripts/1 @@ -0,0 +1,14 @@ +#!/bin/bash +/etc/rc.sysinit +hostname `cat /etc/hostname` +/sbin/sysctl -p 2>/dev/null >/dev/null +#/usr/bin/load-modules-mythvantage.sh +rm /etc/dhcpc/dhcpcd*.pid 2>/dev/null +rm -f /etc/sv/frontend/.runtime/* 2>/dev/null +rm -f /etc/runit/reboot 2>/dev/null +/etc/net/scripts/network.init start 2>/var/log/network.init.error >/var/log/network.init +/usr/sbin/ethtool -s eth0 wol g 2>/dev/null +/usr/sbin/ethtool -s eth1 wol g 2>/dev/null +/usr/sbin/ethtool -s eth2 wol g 2>/dev/null + +#/bin/su mythtv -c /usr/bin/grabkey.py 2>/dev/null 1>/devn/null & diff --git a/abs/mv-core/runit-scripts-mv/runitscripts/2 b/abs/mv-core/runit-scripts-mv/runitscripts/2 new file mode 100755 index 0000000..079b644 --- /dev/null +++ b/abs/mv-core/runit-scripts-mv/runitscripts/2 @@ -0,0 +1,8 @@ +#!/bin/sh + +PATH=/bin:/sbin:/usr/bin:/usr/sbin + +#runsvchdir default >/dev/null + +exec env - PATH=$PATH \ +runsvdir -P /var/service 'log: ...........................................................................................................................................................................................................................................................................................................................................................................................................' diff --git a/abs/mv-core/runit-scripts-mv/runitscripts/3 b/abs/mv-core/runit-scripts-mv/runitscripts/3 new file mode 100755 index 0000000..0fa3abc --- /dev/null +++ b/abs/mv-core/runit-scripts-mv/runitscripts/3 @@ -0,0 +1,4 @@ +#!/bin/sh +# +export PREVLEVEL=3 +/etc/rc.shutdown diff --git a/abs/mv-core/runit-scripts-mv/runitscripts/ctrlaltdel b/abs/mv-core/runit-scripts-mv/runitscripts/ctrlaltdel new file mode 100755 index 0000000..2550d3c --- /dev/null +++ b/abs/mv-core/runit-scripts-mv/runitscripts/ctrlaltdel @@ -0,0 +1,9 @@ +#!/bin/sh + +PATH=/bin:/usr/bin +MSG="System is going down in 10 seconds..." + +# echo 'disabled.' ; exit +touch /etc/runit/stopit +chmod 100 /etc/runit/stopit && echo "$MSG" | wall +/bin/sleep 10 diff --git a/abs/mv-core/runit-scripts-mv/runitscripts/halt-runit b/abs/mv-core/runit-scripts-mv/runitscripts/halt-runit new file mode 100755 index 0000000..7c07b05 --- /dev/null +++ b/abs/mv-core/runit-scripts-mv/runitscripts/halt-runit @@ -0,0 +1,2 @@ +#!/bin/sh +runit-init 0 diff --git a/abs/mv-core/runit-scripts-mv/runitscripts/logger b/abs/mv-core/runit-scripts-mv/runitscripts/logger new file mode 100755 index 0000000..6888f6f --- /dev/null +++ b/abs/mv-core/runit-scripts-mv/runitscripts/logger @@ -0,0 +1,11 @@ +#!/bin/sh + +svname=$( cd .. && basename $( pwd ) ) +if [ ! -d /var/log/$svname ] +then + mkdir /var/log/$svname + chown root.root /var/log/$svname + chmod 700 /var/log/$svname +fi + +exec /sbin/svlogd -tt /var/log/$svname diff --git a/abs/mv-core/runit-scripts-mv/runitscripts/reboot-runit b/abs/mv-core/runit-scripts-mv/runitscripts/reboot-runit new file mode 100755 index 0000000..be831ec --- /dev/null +++ b/abs/mv-core/runit-scripts-mv/runitscripts/reboot-runit @@ -0,0 +1,2 @@ +#!/bin/sh +runit-init 6 diff --git a/abs/mv-core/runit-scripts-mv/runitscripts/services/Xvfb/finish b/abs/mv-core/runit-scripts-mv/runitscripts/services/Xvfb/finish new file mode 100755 index 0000000..14cd831 --- /dev/null +++ b/abs/mv-core/runit-scripts-mv/runitscripts/services/Xvfb/finish @@ -0,0 +1,12 @@ +#!/bin/bash +. /etc/profile +VIRTUAL_DISPLAY=":50" +Xvfb_parm="$VIRTUAL_DISPLAY -screen 0 800x600x16" +pid=`ps -eaf | grep Xvfb | grep $VIRTUAL_DISPLAY | awk '{print $2}'` + if [ $pid ] + then + kill -9 $pid +# echo $pid +fi +rm -f /tmp/.X${VIRTUAL_DISPLAY}-lock + diff --git a/abs/mv-core/runit-scripts-mv/runitscripts/services/Xvfb/run b/abs/mv-core/runit-scripts-mv/runitscripts/services/Xvfb/run new file mode 100755 index 0000000..823916d --- /dev/null +++ b/abs/mv-core/runit-scripts-mv/runitscripts/services/Xvfb/run @@ -0,0 +1,5 @@ +#!/bin/bash +. /etc/profile +VIRTUAL_DISPLAY=":50" +Xvfb_parm="$VIRTUAL_DISPLAY -screen 0 800x600x16" +Xvfb $Xvfb_parm diff --git a/abs/mv-core/runit-scripts-mv/runitscripts/services/Xvfb/supervise/lock b/abs/mv-core/runit-scripts-mv/runitscripts/services/Xvfb/supervise/lock new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/abs/mv-core/runit-scripts-mv/runitscripts/services/Xvfb/supervise/lock diff --git a/abs/mv-core/runit-scripts-mv/runitscripts/services/Xvfb/supervise/pid b/abs/mv-core/runit-scripts-mv/runitscripts/services/Xvfb/supervise/pid new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/abs/mv-core/runit-scripts-mv/runitscripts/services/Xvfb/supervise/pid diff --git a/abs/mv-core/runit-scripts-mv/runitscripts/services/Xvfb/supervise/stat b/abs/mv-core/runit-scripts-mv/runitscripts/services/Xvfb/supervise/stat new file mode 100644 index 0000000..eb0e904 --- /dev/null +++ b/abs/mv-core/runit-scripts-mv/runitscripts/services/Xvfb/supervise/stat @@ -0,0 +1 @@ +down diff --git a/abs/mv-core/runit-scripts-mv/runitscripts/services/Xvfb/supervise/status b/abs/mv-core/runit-scripts-mv/runitscripts/services/Xvfb/supervise/status Binary files differnew file mode 100644 index 0000000..2254c38 --- /dev/null +++ b/abs/mv-core/runit-scripts-mv/runitscripts/services/Xvfb/supervise/status diff --git a/abs/mv-core/runit-scripts-mv/runitscripts/services/acpid/run b/abs/mv-core/runit-scripts-mv/runitscripts/services/acpid/run new file mode 100755 index 0000000..daf9859 --- /dev/null +++ b/abs/mv-core/runit-scripts-mv/runitscripts/services/acpid/run @@ -0,0 +1,3 @@ +#!/bin/sh +exec 2>&1 +exec /usr/sbin/acpid -f -c /etc/acpi/events 2>/dev/null >/dev/null diff --git a/abs/mv-core/runit-scripts-mv/runitscripts/services/alsa-utils/finish b/abs/mv-core/runit-scripts-mv/runitscripts/services/alsa-utils/finish new file mode 100755 index 0000000..d6f3897 --- /dev/null +++ b/abs/mv-core/runit-scripts-mv/runitscripts/services/alsa-utils/finish @@ -0,0 +1,3 @@ +#!/bin/sh +exec 2>&1 +sv down alsa-utils diff --git a/abs/mv-core/runit-scripts-mv/runitscripts/services/alsa-utils/run b/abs/mv-core/runit-scripts-mv/runitscripts/services/alsa-utils/run new file mode 100755 index 0000000..0a97cfa --- /dev/null +++ b/abs/mv-core/runit-scripts-mv/runitscripts/services/alsa-utils/run @@ -0,0 +1,3 @@ +#!/bin/sh +exec 2>&1 +exec /etc/rc.d/alsa-utils start all diff --git a/abs/mv-core/runit-scripts-mv/runitscripts/services/apache/run b/abs/mv-core/runit-scripts-mv/runitscripts/services/apache/run new file mode 100755 index 0000000..130d870 --- /dev/null +++ b/abs/mv-core/runit-scripts-mv/runitscripts/services/apache/run @@ -0,0 +1,2 @@ +#!/bin/sh +exec /usr/local/apache/bin/httpd -DNO_DETACH diff --git a/abs/mv-core/runit-scripts-mv/runitscripts/services/avahi/run b/abs/mv-core/runit-scripts-mv/runitscripts/services/avahi/run new file mode 100755 index 0000000..323d242 --- /dev/null +++ b/abs/mv-core/runit-scripts-mv/runitscripts/services/avahi/run @@ -0,0 +1,4 @@ +#!/bin/sh +exec 2>&1 +exec /usr/sbin/avahi-daemon >/dev/null 2>/dev/null + diff --git a/abs/mv-core/runit-scripts-mv/runitscripts/services/certmaster/run b/abs/mv-core/runit-scripts-mv/runitscripts/services/certmaster/run new file mode 100755 index 0000000..745b1b3 --- /dev/null +++ b/abs/mv-core/runit-scripts-mv/runitscripts/services/certmaster/run @@ -0,0 +1,2 @@ +#!/bin/bash +exec /usr/bin/certmaster diff --git a/abs/mv-core/runit-scripts-mv/runitscripts/services/cron/run b/abs/mv-core/runit-scripts-mv/runitscripts/services/cron/run new file mode 100755 index 0000000..99dc014 --- /dev/null +++ b/abs/mv-core/runit-scripts-mv/runitscripts/services/cron/run @@ -0,0 +1,3 @@ +#!/bin/sh +exec 2>&1 +exec /usr/sbin/crond -f >/dev/null 2>/dev/null diff --git a/abs/mv-core/runit-scripts-mv/runitscripts/services/dbus/run b/abs/mv-core/runit-scripts-mv/runitscripts/services/dbus/run new file mode 100755 index 0000000..872ca77 --- /dev/null +++ b/abs/mv-core/runit-scripts-mv/runitscripts/services/dbus/run @@ -0,0 +1,3 @@ +#!/bin/sh +exec 2>&1 +exec /usr/bin/dbus-daemon --system --nofork 2>/dev/null >/dev/null diff --git a/abs/mv-core/runit-scripts-mv/runitscripts/services/dnsmasq/run b/abs/mv-core/runit-scripts-mv/runitscripts/services/dnsmasq/run new file mode 100755 index 0000000..451dda4 --- /dev/null +++ b/abs/mv-core/runit-scripts-mv/runitscripts/services/dnsmasq/run @@ -0,0 +1,4 @@ +#!/bin/sh +exec 2>&1 +exec /usr/sbin/dnsmasq -k >/dev/null 2>/dev/null + diff --git a/abs/mv-core/runit-scripts-mv/runitscripts/services/evrouter/finish b/abs/mv-core/runit-scripts-mv/runitscripts/services/evrouter/finish new file mode 100755 index 0000000..0dd33de --- /dev/null +++ b/abs/mv-core/runit-scripts-mv/runitscripts/services/evrouter/finish @@ -0,0 +1,4 @@ +#!/bin/bash +. /etc/profile +DISPLAY=localhost:50 evrouter -q +rm -rf /tmp/.evrouter* diff --git a/abs/mv-core/runit-scripts-mv/runitscripts/services/evrouter/run b/abs/mv-core/runit-scripts-mv/runitscripts/services/evrouter/run new file mode 100755 index 0000000..1d7389a --- /dev/null +++ b/abs/mv-core/runit-scripts-mv/runitscripts/services/evrouter/run @@ -0,0 +1,5 @@ +#!/bin/bash +. /etc/profile +sv start Xvfb +su mythtv -c "DISPLAY=localhost:50 evrouter -c /etc/evrouter.cfg -f /dev/input/event*" + diff --git a/abs/mv-core/runit-scripts-mv/runitscripts/services/evrouter/supervise/lock b/abs/mv-core/runit-scripts-mv/runitscripts/services/evrouter/supervise/lock new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/abs/mv-core/runit-scripts-mv/runitscripts/services/evrouter/supervise/lock diff --git a/abs/mv-core/runit-scripts-mv/runitscripts/services/evrouter/supervise/pid b/abs/mv-core/runit-scripts-mv/runitscripts/services/evrouter/supervise/pid new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/abs/mv-core/runit-scripts-mv/runitscripts/services/evrouter/supervise/pid diff --git a/abs/mv-core/runit-scripts-mv/runitscripts/services/evrouter/supervise/stat b/abs/mv-core/runit-scripts-mv/runitscripts/services/evrouter/supervise/stat new file mode 100644 index 0000000..eb0e904 --- /dev/null +++ b/abs/mv-core/runit-scripts-mv/runitscripts/services/evrouter/supervise/stat @@ -0,0 +1 @@ +down diff --git a/abs/mv-core/runit-scripts-mv/runitscripts/services/evrouter/supervise/status b/abs/mv-core/runit-scripts-mv/runitscripts/services/evrouter/supervise/status Binary files differnew file mode 100644 index 0000000..742989c --- /dev/null +++ b/abs/mv-core/runit-scripts-mv/runitscripts/services/evrouter/supervise/status diff --git a/abs/mv-core/runit-scripts-mv/runitscripts/services/frontend/finish b/abs/mv-core/runit-scripts-mv/runitscripts/services/frontend/finish new file mode 100755 index 0000000..3bbd374 --- /dev/null +++ b/abs/mv-core/runit-scripts-mv/runitscripts/services/frontend/finish @@ -0,0 +1,24 @@ +#!/bin/bash +exec 2>&1 +grep -q noautologin /proc/cmdline +STATUS=$? + if [ $STATUS = 0 ] + then + chvt 2 +else + +chvt 1 +touch /etc/sv/frontend/.runtime/`date +%s` +sleep 0.5 +ps -ef |grep "xinit /etc/X11/Sessions/STB"|grep -v grep|awk ' { print $2 } '|xargs kill 2> /dev/null +cdate=`date` +#numfiles=`/usr/bin/fbd -d "$cdate" -a 10s /etc/sv/frontend/.runtime 2>/dev/null |wc -l` +numfiles=`/usr/bin/file_time_offset.py -s10 -d/etc/sv/frontend/.runtime` + +if [ $numfiles -gt 2 ] +then + sv stop frontend + rm -f /etc/sv/frontend/.runtime/* + echo "Frontend is not able to start, disabling it" +fi +fi diff --git a/abs/mv-core/runit-scripts-mv/runitscripts/services/frontend/log/run b/abs/mv-core/runit-scripts-mv/runitscripts/services/frontend/log/run new file mode 100755 index 0000000..463045f --- /dev/null +++ b/abs/mv-core/runit-scripts-mv/runitscripts/services/frontend/log/run @@ -0,0 +1,5 @@ +#!/bin/sh +exec 2>&1 +. /etc/systemconfig + /usr/bin/logger -p local6.info -t mythfrontend + diff --git a/abs/mv-core/runit-scripts-mv/runitscripts/services/frontend/run b/abs/mv-core/runit-scripts-mv/runitscripts/services/frontend/run new file mode 100755 index 0000000..3b43b4f --- /dev/null +++ b/abs/mv-core/runit-scripts-mv/runitscripts/services/frontend/run @@ -0,0 +1,13 @@ +#!/bin/sh +exec 2>&1 + grep -q noautologin /proc/cmdline + STATUS=$? + if [ $STATUS = 0 ] + then + sv down frontend + exit 0 + fi + +#exec /usr/bin/openvt -fec 7 -- /bin/su - mythtv -l -c STB-start +exec /bin/su - mythtv -l -c STB-start + diff --git a/abs/mv-core/runit-scripts-mv/runitscripts/services/funcd/run b/abs/mv-core/runit-scripts-mv/runitscripts/services/funcd/run new file mode 100755 index 0000000..f807822 --- /dev/null +++ b/abs/mv-core/runit-scripts-mv/runitscripts/services/funcd/run @@ -0,0 +1,2 @@ +#!/bin/bash +exec /usr/bin/funcd diff --git a/abs/mv-core/runit-scripts-mv/runitscripts/services/ghosd/run b/abs/mv-core/runit-scripts-mv/runitscripts/services/ghosd/run new file mode 100755 index 0000000..fbe8ba0 --- /dev/null +++ b/abs/mv-core/runit-scripts-mv/runitscripts/services/ghosd/run @@ -0,0 +1,3 @@ +#!/bin/sh +exec 2>&1 +DISPLAY=localhost:0.0 exec /usr/bin/osdServer.pl 5000 diff --git a/abs/mv-core/runit-scripts-mv/runitscripts/services/gpm/run b/abs/mv-core/runit-scripts-mv/runitscripts/services/gpm/run new file mode 100755 index 0000000..361fc43 --- /dev/null +++ b/abs/mv-core/runit-scripts-mv/runitscripts/services/gpm/run @@ -0,0 +1,4 @@ +#!/bin/sh +exec 2>&1 +. /etc/sysconfig/mouse +exec gpm -D -m $MDEVICE -t $PROTOCOL diff --git a/abs/mv-core/runit-scripts-mv/runitscripts/services/hal/run b/abs/mv-core/runit-scripts-mv/runitscripts/services/hal/run new file mode 100755 index 0000000..f1362b2 --- /dev/null +++ b/abs/mv-core/runit-scripts-mv/runitscripts/services/hal/run @@ -0,0 +1,4 @@ +#!/bin/sh +exec 2>&1 +sv waitup dbus 2>/dev/null 1>/dev/null +exec /usr/sbin/hald --daemon=no --use-syslog 2>/dev/null >/dev/null diff --git a/abs/mv-core/runit-scripts-mv/runitscripts/services/hobbit-client/run b/abs/mv-core/runit-scripts-mv/runitscripts/services/hobbit-client/run new file mode 100755 index 0000000..e45173d --- /dev/null +++ b/abs/mv-core/runit-scripts-mv/runitscripts/services/hobbit-client/run @@ -0,0 +1,68 @@ +#!/bin/sh +#----------------------------------------------------------------------------# +# Hobbit client bootup script. # +# # +# This invokes hobbitlaunch, which in turn runs the Hobbit client and any # +# extensions configured. # +# # +# Copyright (C) 2005-2006 Henrik Storner <henrik@hswn.dk> # +# "status" section (C) Scott Smith 2006 # +# # +# This program is released under the GNU General Public License (GPL), # +# version 2. See the file "COPYING" for details. # +# # +#----------------------------------------------------------------------------# +# +# $Id: runclient.sh,v 1.13 2006/07/14 21:25:19 henrik Rel $ + +# Default settings for this client +MACHINEDOTS="`uname -n`" # This systems hostname +BBOSTYPE="`uname -s | tr '[A-Z]' '[a-z]'`" # This systems operating system in lowercase +BBOSSCRIPT="hobbitclient-$BBOSTYPE.sh" + +# Commandline mods for the defaults +while test "$1" != "" +do + case "$1" in + --hostname=*) + MACHINEDOTS="`echo $1 | sed -e 's/--hostname=//'`" + ;; + --os=*) + BBOSTYPE="`echo $1 | sed -e 's/--os=//' | tr '[A-Z]' '[a-z]'`" + ;; + --class=*) + CONFIGCLASS="`echo $1 | sed -e 's/--class=//' | tr '[A-Z]' '[a-z]'`" + ;; + --help) + echo "Usage: $0 [--hostname=CLIENTNAME] [--os=rhel3|linux22] [--class=CLASSNAME] start|stop" + exit 0 + ;; + start) + CMD=$1 + ;; + stop) + CMD=$1 + ;; + restart) + CMD=$1 + ;; + status) + CMD=$1 + ;; + esac + + shift +done + +OLDDIR="`pwd`" +cd "`dirname $0`" +HOBBITCLIENTHOME="/data/srv/hobbit/client" +cd "$OLDDIR" + +MACHINE="`echo $MACHINEDOTS | sed -e 's/\./,/g'`" + +export MACHINE MACHINEDOTS BBOSTYPE BBOSSCRIPT HOBBITCLIENTHOME CONFIGCLASS + + +su nobody -c "$HOBBITCLIENTHOME/bin/hobbitlaunch --config=$HOBBITCLIENTHOME/etc/clientlaunch.cfg --log=$HOBBITCLIENTHOME/logs/clientlaunch.log --pidfile=$HOBBITCLIENTHOME/logs/clientlaunch.$MACHINEDOTS.pid --no-daemon" + diff --git a/abs/mv-core/runit-scripts-mv/runitscripts/services/hobbit/run b/abs/mv-core/runit-scripts-mv/runitscripts/services/hobbit/run new file mode 100755 index 0000000..24ad9fe --- /dev/null +++ b/abs/mv-core/runit-scripts-mv/runitscripts/services/hobbit/run @@ -0,0 +1,3 @@ +#!/bin/sh +exec 2>&1 +exec su nobody -c "/data/srv/hobbit/server/bin/hobbitlaunch --config=/data/srv/hobbit/server/etc/hobbitlaunch.cfg --env=/data/srv/hobbit/server/etc/hobbitserver.cfg --log=/var/log/hobbit/hobbitlaunch.log --pidfile=/var/log/hobbit/hobbitlaunch.pid --no-daemon" diff --git a/abs/mv-core/runit-scripts-mv/runitscripts/services/lcdd/run b/abs/mv-core/runit-scripts-mv/runitscripts/services/lcdd/run new file mode 100755 index 0000000..df71bf8 --- /dev/null +++ b/abs/mv-core/runit-scripts-mv/runitscripts/services/lcdd/run @@ -0,0 +1,9 @@ +#!/bin/sh +. /etc/systemconfig +exec 2>&1 +if [ x$LCDtype = xxosd ] +then + DISPLAY=127.0.0.1:0 /usr/sbin/LCDd -f -c /etc/LCDd.conf 2>/dev/null >/dev/null +else + exec /usr/sbin/LCDd -f -c /etc/LCDd.conf 2>/dev/null >/dev/null +fi diff --git a/abs/mv-core/runit-scripts-mv/runitscripts/services/lighttpd/run b/abs/mv-core/runit-scripts-mv/runitscripts/services/lighttpd/run new file mode 100755 index 0000000..70cb0a5 --- /dev/null +++ b/abs/mv-core/runit-scripts-mv/runitscripts/services/lighttpd/run @@ -0,0 +1,2 @@ +#!/bin/bash +exec /usr/sbin/lighttpd -D -f /etc/lighttpd/lighttpd.conf diff --git a/abs/mv-core/runit-scripts-mv/runitscripts/services/lircd/finish b/abs/mv-core/runit-scripts-mv/runitscripts/services/lircd/finish new file mode 100755 index 0000000..3545b07 --- /dev/null +++ b/abs/mv-core/runit-scripts-mv/runitscripts/services/lircd/finish @@ -0,0 +1,12 @@ +#!/bin/bash +killall -9 lircd +rm -f /var/run/lirc*.pid +touch /etc/sv/lircd/.runtime/`date +%s` +numfiles=`/usr/bin/file_time_offset.py -s4 -d/etc/sv/lircd/.runtime ` +if [ $numfiles -gt 3 ] +then + rm -f /etc/sv/lircd/.runtime/* + ls -la /etc/sv/lircd/.runtime/* + sv stop lircd + echo "lircd is not able to start, disabling it" +fi diff --git a/abs/mv-core/runit-scripts-mv/runitscripts/services/lircd/run b/abs/mv-core/runit-scripts-mv/runitscripts/services/lircd/run new file mode 100755 index 0000000..4457b37 --- /dev/null +++ b/abs/mv-core/runit-scripts-mv/runitscripts/services/lircd/run @@ -0,0 +1,39 @@ +#!/bin/bash +exec 2>&1 +run_lircd2=false +. /etc/systemconfig +function imon_detect { +if [ -e /dev/lirc_imon ] +then +lircd2_cmd="/usr/sbin/lircd -d /dev/lirc_imon --output=/dev/lircd --pidfile=/var/run/lircd2.pid --connect=localhost:8765" +run_lircd2=true +fi +} + + + +case $ReceiverType in + Serial) + /usr/bin/setserial /dev/$ReceiverSerialport uart none + /sbin/modprobe lirc_serial + DEVICE=`ls /dev/lirc[0-9] 2>/dev/null |sort |sed '/./,$!d'|head -n 1 ` + imon_detect + ;; + Usb-imon) + DEVICE=/dev/lirc_imon + ;; + + *) + + DEVICE=`ls /dev/lirc[0-9] 2>/dev/null |sort |sed '/./,$!d'|head -n 1 ` + imon_detect + ;; +esac + +if [ "$run_lircd2" = "true" ] +then + $lircd2_cmd 2>/dev/null 1>/dev/null + exec /usr/sbin/lircd -n -d $DEVICE --output /dev/lircd1 --listen 2>/dev/null 1>/dev/null +else + exec /usr/sbin/lircd -n -d $DEVICE 2>/dev/null 1>/dev/null +fi diff --git a/abs/mv-core/runit-scripts-mv/runitscripts/services/mysql/run b/abs/mv-core/runit-scripts-mv/runitscripts/services/mysql/run new file mode 100755 index 0000000..569230e --- /dev/null +++ b/abs/mv-core/runit-scripts-mv/runitscripts/services/mysql/run @@ -0,0 +1,29 @@ +#!/bin/bash +exec 2>&1 + +MYSQLD_ROOT="/data/srv/mysql" +# source application-specific settings +[ -f /etc/conf.d/mysqld ] && . /etc/conf.d/mysqld +if [ ! `egrep '^mysql:' /etc/group` ]; then + stat_busy "Adding mysql group" + groupadd -g 89 mysql + stat_done +fi +if [ ! `egrep '^mysql:' /etc/passwd` ]; then + stat_busy "Adding mysql user" + useradd -u 89 -g mysql -d $MYSQLD_ROOT -s /bin/false mysql + [ -d $MYSQLD_ROOT ] && chown -R mysql.mysql $MYSQLD_ROOT + stat_done +fi + +if [ ! -d $MYSQLD_ROOT ]; then + mkdir $MYSQLD_ROOT + /usr/bin/mysql_install_db --datadir=$MYSQLD_ROOT --user=mysql + chown -R mysql.mysql $MYSQLD_ROOT +fi + +if [ ! -e /var/log/mysqld.log ]; then + touch /var/log/mysqld.log + chown mysql /var/log/mysqld.log +fi +exec /usr/sbin/mysqld -u mysql 2>/dev/null >/dev/null diff --git a/abs/mv-core/runit-scripts-mv/runitscripts/services/mythbackend/log/run b/abs/mv-core/runit-scripts-mv/runitscripts/services/mythbackend/log/run new file mode 100755 index 0000000..6ed5184 --- /dev/null +++ b/abs/mv-core/runit-scripts-mv/runitscripts/services/mythbackend/log/run @@ -0,0 +1,4 @@ +#!/bin/sh +exec 2>&1 + /usr/bin/logger -p local7.info -t mythbackend + diff --git a/abs/mv-core/runit-scripts-mv/runitscripts/services/mythbackend/run b/abs/mv-core/runit-scripts-mv/runitscripts/services/mythbackend/run new file mode 100755 index 0000000..1315006 --- /dev/null +++ b/abs/mv-core/runit-scripts-mv/runitscripts/services/mythbackend/run @@ -0,0 +1,25 @@ +#!/bin/sh +exec 2>&1 +. /etc/profile +. /etc/systemconfig +export HOME=/root +if [ ! x$SystemType = xSlave_backend ] +then + sv start mysql > /dev/null 2>/dev/null + #run mythfilldatabase + /usr/MythVantage/bin/initial_db_run & +fi +mkfifo /tmp/mbefifo >/dev/null 2>/dev/null +echo "Starting mythbackend" + if [ -f /tmp/debug ] + then + echo "using gbd/debug" + gdb /usr/local/bin/mythbackend -x $MV_ROOT/mbegdbcommands.txt + bash -c "osdClient.pl localhost 5000 'Restart gdb mbe :::SYS' "& + mv gdb.txt /data/home/mythtv/gdb.txt.mythbackend + chown mythtv:mythtv /data/home/mythtv/gdb.txt.mythbackend + sleep 10 + + else + exec /usr/local/bin/mythbackend + fi diff --git a/abs/mv-core/runit-scripts-mv/runitscripts/services/ncid/run b/abs/mv-core/runit-scripts-mv/runitscripts/services/ncid/run new file mode 100755 index 0000000..8a90707 --- /dev/null +++ b/abs/mv-core/runit-scripts-mv/runitscripts/services/ncid/run @@ -0,0 +1,5 @@ +#!/bin/sh +exec 2>&1 +sv start ncidd +exec /usr/bin/ncid --no-gui --all --call-prog --program /usr/bin/ncid.py 127.0.0.1 3333 + diff --git a/abs/mv-core/runit-scripts-mv/runitscripts/services/ncidd/run b/abs/mv-core/runit-scripts-mv/runitscripts/services/ncidd/run new file mode 100755 index 0000000..6b032db --- /dev/null +++ b/abs/mv-core/runit-scripts-mv/runitscripts/services/ncidd/run @@ -0,0 +1,3 @@ +#!/bin/sh +exec 2>&1 +exec /usr/sbin/ncidd -D 2>&1 diff --git a/abs/mv-core/runit-scripts-mv/runitscripts/services/netfs/finish b/abs/mv-core/runit-scripts-mv/runitscripts/services/netfs/finish new file mode 100755 index 0000000..43be94c --- /dev/null +++ b/abs/mv-core/runit-scripts-mv/runitscripts/services/netfs/finish @@ -0,0 +1,3 @@ +#!/bin/sh +exec 2>&1 +sv down netfs diff --git a/abs/mv-core/runit-scripts-mv/runitscripts/services/netfs/run b/abs/mv-core/runit-scripts-mv/runitscripts/services/netfs/run new file mode 100755 index 0000000..f2c0813 --- /dev/null +++ b/abs/mv-core/runit-scripts-mv/runitscripts/services/netfs/run @@ -0,0 +1,5 @@ +#!/bin/sh +exec 2>&1 +sv start portmap +/etc/rc.d/netfs start + diff --git a/abs/mv-core/runit-scripts-mv/runitscripts/services/nfsd/run b/abs/mv-core/runit-scripts-mv/runitscripts/services/nfsd/run new file mode 100755 index 0000000..6610fe9 --- /dev/null +++ b/abs/mv-core/runit-scripts-mv/runitscripts/services/nfsd/run @@ -0,0 +1,22 @@ +#!/bin/bash +exec 2>&1 + +# Make sure the statd daemon is up +# (the statd service must ensure portmap is running first) +svwaitup /var/service/nfslock >/dev/null 2>/dev/null + +source /etc/conf.d/nfsd + +# Re-export all directories in /etc/exports +/usr/sbin/exportfs -ra > /dev/null 2>/dev/null + +# start some nfsd threads +/usr/sbin/rpc.nfsd -p ${NFSD_OPTS} >/dev/null 2>/dev/null + +# since we are running kernel 2.6 we should also +# mount the nfsd virtual filesystem +/bin/mount -t nfsd none /proc/fs/nfsd >/dev/null 2>/dev/null + +# Start the rpc.mountd daemon +exec /usr/sbin/rpc.mountd --foreground >/dev/null 2>/dev/null + diff --git a/abs/mv-core/runit-scripts-mv/runitscripts/services/nfslock/run b/abs/mv-core/runit-scripts-mv/runitscripts/services/nfslock/run new file mode 100755 index 0000000..0ec6f75 --- /dev/null +++ b/abs/mv-core/runit-scripts-mv/runitscripts/services/nfslock/run @@ -0,0 +1,4 @@ +#!/bin/bash +exec 2>&1 +sv start portmap >/dev/null 2>/dev/null +/usr/sbin/rpc.statd -F >/dev/null 2>/dev/null diff --git a/abs/mv-core/runit-scripts-mv/runitscripts/services/nmbd/run b/abs/mv-core/runit-scripts-mv/runitscripts/services/nmbd/run new file mode 100755 index 0000000..9aa27ec --- /dev/null +++ b/abs/mv-core/runit-scripts-mv/runitscripts/services/nmbd/run @@ -0,0 +1,3 @@ +#!/bin/sh +exec 2>&1 +exec nmbd -F -S -d1 2>/dev/null >/dev/null diff --git a/abs/mv-core/runit-scripts-mv/runitscripts/services/ntpd/run b/abs/mv-core/runit-scripts-mv/runitscripts/services/ntpd/run new file mode 100755 index 0000000..97302f1 --- /dev/null +++ b/abs/mv-core/runit-scripts-mv/runitscripts/services/ntpd/run @@ -0,0 +1,3 @@ +#!/bin/sh +ntpdate pool.ntp.org +exec ntpd -n -p /var/run/ntpd.pid diff --git a/abs/mv-core/runit-scripts-mv/runitscripts/services/oss/finish b/abs/mv-core/runit-scripts-mv/runitscripts/services/oss/finish new file mode 100755 index 0000000..f929f39 --- /dev/null +++ b/abs/mv-core/runit-scripts-mv/runitscripts/services/oss/finish @@ -0,0 +1,4 @@ +#!/bin/sh +exec 2>&1 +sv down oss + diff --git a/abs/mv-core/runit-scripts-mv/runitscripts/services/oss/run b/abs/mv-core/runit-scripts-mv/runitscripts/services/oss/run new file mode 100755 index 0000000..687de8f --- /dev/null +++ b/abs/mv-core/runit-scripts-mv/runitscripts/services/oss/run @@ -0,0 +1,6 @@ +#!/bin/sh +exec 2>&1 +rm -f /usr/lib/oss/starting +#exec /etc/rc.d/alsa-utils start all +exec /usr/sbin/soundon + diff --git a/abs/mv-core/runit-scripts-mv/runitscripts/services/portmap/run b/abs/mv-core/runit-scripts-mv/runitscripts/services/portmap/run new file mode 100755 index 0000000..561d65b --- /dev/null +++ b/abs/mv-core/runit-scripts-mv/runitscripts/services/portmap/run @@ -0,0 +1,3 @@ +#!/bin/sh +exec 2>&1 +exec /sbin/portmap -d >/dev/null 2>/dev/null diff --git a/abs/mv-core/runit-scripts-mv/runitscripts/services/smbd/run b/abs/mv-core/runit-scripts-mv/runitscripts/services/smbd/run new file mode 100755 index 0000000..af77dcb --- /dev/null +++ b/abs/mv-core/runit-scripts-mv/runitscripts/services/smbd/run @@ -0,0 +1,3 @@ +#!/bin/sh +exec 2>&1 +exec smbd -F -S -d3 2>/dev/null >/dev/null diff --git a/abs/mv-core/runit-scripts-mv/runitscripts/services/sshd/run b/abs/mv-core/runit-scripts-mv/runitscripts/services/sshd/run new file mode 100755 index 0000000..a019e5d --- /dev/null +++ b/abs/mv-core/runit-scripts-mv/runitscripts/services/sshd/run @@ -0,0 +1,20 @@ +#!/bin/bash +exec 2>&1 +nobodydir=/data/srv/.nobody_ssh + +[ -f /etc/ssh/ssh_host_key ] || { /usr/bin/ssh-keygen -t rsa1 -N "" -f /etc/ssh/ssh_host_key >/dev/null; } + [ -f /etc/ssh/ssh_host_rsa_key ] || { /usr/bin/ssh-keygen -t rsa -N "" -f /etc/ssh/ssh_host_rsa_key >/dev/null; } + [ -f /etc/ssh/ssh_host_dsa_key ] || { /usr/bin/ssh-keygen -t dsa -N "" -f /etc/ssh/ssh_host_dsa_key >/dev/null; } + +if [ ! -f $nobodydir/id_dsa.pub ] +then + mkdir -p $nobodydir + ssh-keygen -t dsa -N '' -f $nobodydir/id_dsa + mkdir -p /data/home/mythtv/.ssh + cp $nobodydir/id_dsa.pub /data/home/mythtv/.ssh/authorized_keys + chmod 700 /data/home/mythtv/.ssh/ + chown -R mythtv:mythtv /data/home/mythtv/.ssh/ +fi +chown -R nobody:nobody $nobodydir +chmod 700 $nobodydir +exec /usr/sbin/sshd -D >/dev/null 2>/dev/null diff --git a/abs/mv-core/runit-scripts-mv/runitscripts/services/syslog-ng/run b/abs/mv-core/runit-scripts-mv/runitscripts/services/syslog-ng/run new file mode 100755 index 0000000..eb56ace --- /dev/null +++ b/abs/mv-core/runit-scripts-mv/runitscripts/services/syslog-ng/run @@ -0,0 +1,3 @@ +#!/bin/sh +exec 2>&1 +exec /usr/sbin/syslog-ng -F diff --git a/abs/mv-core/runit-scripts-mv/runitscripts/services/tty2/run b/abs/mv-core/runit-scripts-mv/runitscripts/services/tty2/run new file mode 100755 index 0000000..3782aed --- /dev/null +++ b/abs/mv-core/runit-scripts-mv/runitscripts/services/tty2/run @@ -0,0 +1,2 @@ +#!/bin/sh +exec /sbin/agetty 38400 vc/2 linux diff --git a/abs/mv-core/runit-scripts-mv/runitscripts/services/tty3/run b/abs/mv-core/runit-scripts-mv/runitscripts/services/tty3/run new file mode 100755 index 0000000..ce66b0d --- /dev/null +++ b/abs/mv-core/runit-scripts-mv/runitscripts/services/tty3/run @@ -0,0 +1,2 @@ +#!/bin/sh +exec /sbin/agetty 38400 vc/3 linux |