Author: hobbes1069
Update of /cvs/free/rpms/mythtv/F-20
In directory old02.ovh.rpmfusion.lan:/tmp/cvs-serv25312
Modified Files:
ChangeLog mythtv-0.27-fixes.patch mythtv.spec
Added Files:
mythjobqueue.service
Log Message:
* Tue Apr 7 2015 Richard Shaw <hobbes1069(a)gmail.com> - 0.27.4-5
- Update to latest bugfix release.
- Fix owner on /etc/mythtv (BZ#3558).
- Add systemd unit file for mythjobqueue only backends (BZ#3571).
--- NEW FILE mythjobqueue.service ---
# Do not edit this file, it will be replaced on update
# If you need to make modifications to this unit file first make a copy in
# /etc/systemd/system
# This file is part of the packaging of MythTV
#
# MythTV is free software; view
http://www.mythtv.org
# for more information.
#
[Unit]
Description=MythTV Job-queue service
After=network-online.target
# mythbackend will run it's own instance of mythjobqueue. This service should
# only be enabled for offloading the master backend.
Conflicts=mythbackend.service
[Service]
Type=simple
# Default setting assumes a system wide install. Otherwise it should be set to
# the folder containing the .mythtv subfolder containing the config.xml file
Environment=MYTHCONFDIR=/etc/mythtv
# systemd changes execution from the calling user (possibly root) to this user
# if you have permissions problems or obscure errors try logging in as mythtv
User=mythtv
ExecStart=/bin/mythjobqueue --logpath /var/log/mythtv
# mythjobqueue will exit if it can't talk to the master backend.
Restart=on-failure
RestartSec=1h
[Install]
WantedBy=multi-user.target
Index: ChangeLog
===================================================================
RCS file: /cvs/free/rpms/mythtv/F-20/ChangeLog,v
retrieving revision 1.18
retrieving revision 1.19
diff -u -r1.18 -r1.19
--- ChangeLog 4 Jan 2015 21:10:24 -0000 1.18
+++ ChangeLog 15 Apr 2015 19:55:55 -0000 1.19
@@ -1,3 +1,139 @@
+commit 628183a01b66a010e9cf510b9d1d08a348ed5889
+Author: Warren Falk <warren(a)warrenfalk.com>
+Date: Tue Mar 3 12:57:58 2015 -0500
+
+ fix SSDP thread using 100% CPU on zero byte datagrams
+
+ Refs #12395
+
+ Signed-off-by: Stuart Morgan <smorgan(a)mythtv.org>
+
+commit f1115fcd2b5cef93e870f926f53bf32cf546da9d
+Author: Stuart Auchterlonie <stuarta(a)squashedfrog.net>
+Date: Wed Mar 4 21:44:19 2015 +0000
+
+ Try to use qmake-qt4 in preference to qmake-qt5
+
+commit 6b550fcf084aba085909efc2d4e0b2fac465a28a
+Author: Stuart Morgan <smorgan(a)mythtv.org>
+Date: Mon Mar 2 14:21:08 2015 +0000
+
+ Fix a segfault in the EIT cache
+
+ (cherry picked from commit 2e8c5f84c63e806272b474e08c2de4c8c10c13d1)
+
+commit 56acf7cb6d2b891f1ed11dc8aff818528dfc6e34
+Author: Stuart Morgan <smorgan(a)mythtv.org>
+Date: Sun Mar 1 08:26:16 2015 +0000
+
+ Don't try to listen on addresses which are no longer available.
+
+ (cherry picked from commit 5f64cabf8fdf21026212c17a64275e92601a8385)
+
+commit a2563e13062298467480cd8465153cdc7e851f05
+Author: Stuart Morgan <smorgan(a)mythtv.org>
+Date: Wed Feb 25 23:49:31 2015 +0000
+
+ Revert "Fix metadata fanart selection."
+
+ The fix for this issue was addressed at a lower level in another
+ commit as a result this code path was reversing the list again.
+
+ Fixes #12246
+
+ This reverts commit da8ac305c3dbe955459a6a12e646b81109552836.
+
+ Conflicts:
+ mythtv/libs/libmythmetadata/metadatafactory.cpp
+
+ (cherry picked from commit 09422c5508a74c0d052a78ee14fb4a20ce9ca058)
+
+commit 4e4a78541d9ab632552eafb35dce827f86994d88
+Author: Stuart Auchterlonie <stuarta(a)squashedfrog.net>
+Date: Mon Feb 23 16:42:45 2015 +0000
+
+ Add 29.5Msys/s to the preset list of possible symbol rates. Found on several dvb-s2
multiplexes across Europe
+
+ (cherry picked from commit e26980483f392e7f13c614201a757a74af25112c)
+
+commit 6b8357105da9c84385b43102a76055ca0ae628f1
+Author: Stuart Morgan <smorgan(a)mythtv.org>
+Date: Wed Apr 30 11:36:21 2014 +0100
+
+ Add 23Msys/s to the preset list of possible symbol rates. This one is used for
several DVB-S2 multiplexes in the UK.
+
+ (cherry picked from commit 8d11d72f570aa52d7cd8a102e7ac4fa90c77ab16)
+
+commit 5aeccac88f424f000a11d1a648a8b9b6b659fef2
+Author: Stuart Auchterlonie <stuarta(a)squashedfrog.net>
+Date: Mon Feb 23 15:54:39 2015 +0000
+
+ Fixes #12221. When setting a dvb_tuning_delay, save the value the user enters
+
+ (cherry picked from commit 267c890baf1d06cb0ed7e2454da6784881b65b99)
+
+commit ca4a2d68aab8723e4424cd808d6865bad2b950f1
+Author: Stuart Morgan <smorgan(a)mythtv.org>
+Date: Fri Feb 13 12:15:38 2015 +0000
+
+ Fix mythtranscode segfault
+
+ (cherry picked from commit cce890a85ba0a06575a287d67ba53539fd496517)
+
+commit 05dbcee65c501f4fc669e7d97f14ae3dda7491f6
+Merge: 7c48b79 aa256d1
+Author: Stuart Auchterlonie <stuarta(a)squashedfrog.net>
+Date: Thu Feb 12 18:14:45 2015 +0000
+
+ Merge branch 'fixes/0.27' of code.mythtv.org:mythtv into fixes/0.27
+
+commit 7c48b799e92e0e0a8160e4ab1da146afc583b97c
+Author: Stuart Auchterlonie <stuarta(a)squashedfrog.net>
+Date: Wed Feb 11 16:58:49 2015 +0000
+
+ Enable pic by default on linux systems.
+ Should fix building on 32bit based systems with Qt5
+
+ (cherry picked from commit 0e5961e41dd6867772b74c051a96dc219181c6a5)
+
+commit aa256d1f7f96aa8afadd5bb070adfb8a9b2cb6b8
+Author: Richard Hulme <peper03(a)mythtv.org>
+Date: Sun Feb 8 19:43:26 2015 +0100
+
+ Added missing support for JUMPTODVDCHAPTERMENU and JUMPTODVDTITLEMENU actions.
+ (cherry picked from commit 19e8d7fb65a766f16881d0143fcd09f7691c5818)
+
+commit 3b4390396bf09dfe3741508ecf7fc71a004abd01
+Author: Stuart Auchterlonie <stuarta(a)squashedfrog.net>
+Date: Fri Jan 2 11:52:58 2015 +0000
+
+ Add missing QObject include. Should resolve Qt5 build error
+
+ (cherry picked from commit f063b19facd153c2b2844e9643d570b9466b4b6f)
+
+commit 03eaf3b9bdf7ce04f1285d08ee74af63ca8fd46b
+Author: Stuart Morgan <smorgan(a)mythtv.org>
+Date: Wed Jan 14 23:10:58 2015 +0000
+
+ Icon Downloader: Fix improper escaping of search string that broke proper matching
and sorting with some searches
+
+ (cherry picked from commit 93f4b96128c454aac728301282259df6734eb771)
+
+commit edc162bdfcdc95a68b4dc49d778dfedd3adcff8f
+Author: Stuart Morgan <smorgan(a)mythtv.org>
+Date: Mon Jan 12 12:08:00 2015 +0000
+
+ Null pointer check in MainServer::customEvent.
+
+ There are a few backtraces from ubuntu users appearing to show a crash here with
+ a null event pointer. It's not possible to work backwards and see how a null
+ event managed to end up being posted in the first place, and this
+ change won't necessarily prevent all variations of this crash but it's
+ the best I can do for now without a full audit of all code using the
+ events system.
+
+ (cherry picked from commit 84619a0c3c2e043a61317836362bd0e31ae989c4)
+
commit 40506c2ba7d81fa8e65bf8bb783c998ffe65c7af
Author: Stuart Morgan <smorgan(a)mythtv.org>
Date: Thu Dec 11 15:49:35 2014 +0000
mythtv-0.27-fixes.patch:
mythplugins/configure | 10
mythtv/bindings/python/MythTV/methodheap.py | 2
mythtv/configure | 11
mythtv/libs/libmyth/programtypes.cpp | 1
mythtv/libs/libmythbase/mythdownloadmanager.cpp | 3
mythtv/libs/libmythbase/mythversion.h | 2
mythtv/libs/libmythbase/serverpool.cpp | 3
mythtv/libs/libmythmetadata/metadatafactory.cpp | 8
mythtv/libs/libmythtv/channelscan/channelscanmiscsettings.h | 2
mythtv/libs/libmythtv/datadirect.cpp | 56 +
mythtv/libs/libmythtv/datadirect.h | 2
mythtv/libs/libmythtv/eitcache.cpp | 15
mythtv/libs/libmythtv/eitcache.h | 2
mythtv/libs/libmythtv/eithelper.cpp | 36
mythtv/libs/libmythtv/mhegic.cpp | 9
mythtv/libs/libmythtv/mpeg/dvbdescriptors.h | 50 +
mythtv/libs/libmythtv/mpeg/mpegdescriptors.h | 16
mythtv/libs/libmythtv/mpeg/mpegstreamdata.cpp | 9
mythtv/libs/libmythtv/recorders/dtvrecorder.cpp | 7
mythtv/libs/libmythtv/test/test_mpegtables/test_mpegtables.h | 52 +
mythtv/libs/libmythtv/test/test_mpegtables/test_mpegtables.pro | 4
mythtv/libs/libmythtv/transporteditor.cpp | 2
mythtv/libs/libmythtv/tv_play.cpp | 14
mythtv/libs/libmythtv/videosource.cpp | 1
mythtv/libs/libmythui/mythuibuttonlist.cpp | 2
mythtv/libs/libmythui/mythuiimage.cpp | 122 +-
mythtv/libs/libmythui/mythuiimage.h | 5
mythtv/libs/libmythui/mythuitext.cpp | 2
mythtv/libs/libmythupnp/msocketdevice.h | 4
mythtv/libs/libmythupnp/msocketdevice_unix.cpp | 27
mythtv/libs/libmythupnp/ssdp.cpp | 28
mythtv/locales/de_at.xml | 37
mythtv/programs/mythbackend/mainserver.cpp | 3
mythtv/programs/mythfilldatabase/xmltvparser.cpp | 19
mythtv/programs/mythfrontend/globalsettings.cpp | 13
mythtv/programs/mythfrontend/programrecpriority.cpp | 69 -
mythtv/programs/mythtranscode/transcode.cpp | 2
mythtv/programs/mythtv-setup/importicons.cpp | 6
mythtv/themes/default/keyboard/el.xml | 270 ++++++
mythtv/themes/default/keyboard/el_ui.xml | 410 ++++++++++
40 files changed, 1177 insertions(+), 159 deletions(-)
Index: mythtv-0.27-fixes.patch
===================================================================
RCS file: /cvs/free/rpms/mythtv/F-20/mythtv-0.27-fixes.patch,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- mythtv-0.27-fixes.patch 4 Jan 2015 21:10:24 -0000 1.9
+++ mythtv-0.27-fixes.patch 15 Apr 2015 19:55:55 -0000 1.10
@@ -1,8 +1,16 @@
+ mythplugins/configure | 10 +-
mythtv/bindings/python/MythTV/methodheap.py | 2 +-
+ mythtv/configure | 11 +-
+ mythtv/libs/libmyth/programtypes.cpp | 1 +
mythtv/libs/libmythbase/mythdownloadmanager.cpp | 3 +
mythtv/libs/libmythbase/mythversion.h | 2 +-
+ mythtv/libs/libmythbase/serverpool.cpp | 3 +-
+ mythtv/libs/libmythmetadata/metadatafactory.cpp | 8 +-
+ .../channelscan/channelscanmiscsettings.h | 2 +
mythtv/libs/libmythtv/datadirect.cpp | 56 ++-
mythtv/libs/libmythtv/datadirect.h | 2 +
+ mythtv/libs/libmythtv/eitcache.cpp | 15 +-
+ mythtv/libs/libmythtv/eitcache.h | 2 +-
mythtv/libs/libmythtv/eithelper.cpp | 36 +-
mythtv/libs/libmythtv/mhegic.cpp | 9 +-
mythtv/libs/libmythtv/mpeg/dvbdescriptors.h | 50 ++-
@@ -11,19 +19,51 @@
mythtv/libs/libmythtv/recorders/dtvrecorder.cpp | 7 +-
.../test/test_mpegtables/test_mpegtables.h | 52 +++
.../test/test_mpegtables/test_mpegtables.pro | 4 +
+ mythtv/libs/libmythtv/transporteditor.cpp | 2 +
+ mythtv/libs/libmythtv/tv_play.cpp | 14 +
+ mythtv/libs/libmythtv/videosource.cpp | 1 +
mythtv/libs/libmythui/mythuibuttonlist.cpp | 2 +-
mythtv/libs/libmythui/mythuiimage.cpp | 122 +++---
mythtv/libs/libmythui/mythuiimage.h | 5 +
mythtv/libs/libmythui/mythuitext.cpp | 2 +-
- mythtv/libs/libmythupnp/ssdp.cpp | 2 +-
+ mythtv/libs/libmythupnp/msocketdevice.h | 4 +-
+ mythtv/libs/libmythupnp/msocketdevice_unix.cpp | 27 +-
+ mythtv/libs/libmythupnp/ssdp.cpp | 28 +-
mythtv/locales/de_at.xml | 37 ++
+ mythtv/programs/mythbackend/mainserver.cpp | 3 +
mythtv/programs/mythfilldatabase/xmltvparser.cpp | 19 +-
mythtv/programs/mythfrontend/globalsettings.cpp | 13 +
.../programs/mythfrontend/programrecpriority.cpp | 69 ++--
+ mythtv/programs/mythtranscode/transcode.cpp | 2 +-
+ mythtv/programs/mythtv-setup/importicons.cpp | 6 +-
mythtv/themes/default/keyboard/el.xml | 270 ++++++++++++++
mythtv/themes/default/keyboard/el_ui.xml | 410 +++++++++++++++++++++
- 24 files changed, 1081 insertions(+), 118 deletions(-)
+ 40 files changed, 1177 insertions(+), 159 deletions(-)
+diff --git a/mythplugins/configure b/mythplugins/configure
+index b9086ba..f14a405 100755
+--- a/mythplugins/configure
++++ b/mythplugins/configure
+@@ -561,14 +561,14 @@ OPENGLV=$(cat mythconfig.mak | grep -e
"^CONFIG_OPENGL_VIDEO=yes")
+ EXTRALIBS=$(cat mythconfig.mak | grep -e "^EXTRALIBS=")
+ EXTRALIBS=${EXTRALIBS#EXTRALIBS=}
+
+-if is_qmake5 $qmake || is_qmake5 qmake-qt5; then
+- if is_qmake5 qmake-qt5; then
+- qmake=qmake-qt5
+- fi
+-elif is_qmake4 $qmake || is_qmake4 qmake-qt4; then
++if is_qmake4 $qmake || is_qmake4 qmake-qt4; then
+ if is_qmake4 qmake-qt4; then
+ qmake=qmake-qt4
+ fi
++elif is_qmake5 $qmake || is_qmake5 qmake-qt5; then
++ if is_qmake5 qmake-qt5; then
++ qmake=qmake-qt5
++ fi
+ else
+ die "qmake for Qt4.8 or newer not found.\nPlease specify the correct qmake with
--qmake="
+ fi
diff --git a/mythtv/bindings/python/MythTV/methodheap.py
b/mythtv/bindings/python/MythTV/methodheap.py
index d598b2f..b41b2da 100644
--- a/mythtv/bindings/python/MythTV/methodheap.py
@@ -37,6 +77,51 @@
class MythMusic( MusicSchema, DBCache ):
"""
+diff --git a/mythtv/configure b/mythtv/configure
+index f8c1f2f..d95a3a3 100755
+--- a/mythtv/configure
++++ b/mythtv/configure
+@@ -4250,6 +4250,7 @@ case $target_os in
+ ! disabled joystick_menu && enable joystick_menu
+ enable libudev
+ enable libuuid
++ enable pic
+ ;;
+ irix*)
+ target_os=irix
+@@ -4467,15 +4468,15 @@ is_qmake4(){
+ $1 --version 2>&1 | egrep -q -e "Qt version 4\.[8-9]\.[0-9]"
+ }
+
+-if is_qmake5 $qmake || is_qmake5 qmake-qt5; then
++if is_qmake4 $qmake || is_qmake4 qmake-qt4; then
++ if is_qmake4 qmake-qt4; then
++ qmake=qmake-qt4
++ fi
++elif is_qmake5 $qmake || is_qmake5 qmake-qt5; then
+ if is_qmake5 qmake-qt5; then
+ qmake=qmake-qt5
+ fi
+ check_cxxflags -DQT_DISABLE_DEPRECATED_BEFORE
+-elif is_qmake4 $qmake || is_qmake4 qmake-qt4; then
+- if is_qmake4 qmake-qt4; then
+- qmake=qmake-qt4
+- fi
+ else
+ die "qmake for Qt4.8 or newer not found.\nPlease specify the correct qmake with
--qmake="
+ fi
+diff --git a/mythtv/libs/libmyth/programtypes.cpp b/mythtv/libs/libmyth/programtypes.cpp
+index 3167e81..c1253c5 100644
+--- a/mythtv/libs/libmyth/programtypes.cpp
++++ b/mythtv/libs/libmyth/programtypes.cpp
+@@ -2,6 +2,7 @@
+
+ #include <QDateTime>
+ #include <QMutex>
++#include <QObject>
+
+ #include "programtypes.h"
+ #include "mythdate.h"
diff --git a/mythtv/libs/libmythbase/mythdownloadmanager.cpp
b/mythtv/libs/libmythbase/mythdownloadmanager.cpp
index 02d27a0..63e2e51 100644
--- a/mythtv/libs/libmythbase/mythdownloadmanager.cpp
@@ -65,6 +150,56 @@
/** \brief Increment this whenever the MythTV network protocol changes.
*
+diff --git a/mythtv/libs/libmythbase/serverpool.cpp
b/mythtv/libs/libmythbase/serverpool.cpp
+index 11694b3..e13c331 100644
+--- a/mythtv/libs/libmythbase/serverpool.cpp
++++ b/mythtv/libs/libmythbase/serverpool.cpp
+@@ -417,7 +417,8 @@ bool ServerPool::listen(QList<QHostAddress> addrs, quint16
port,
+ server->disconnect();
+ server->deleteLater();
+
+- if (server->serverError() == QAbstractSocket::HostNotFoundError)
++ if (server->serverError() == QAbstractSocket::HostNotFoundError ||
++ server->serverError() ==
QAbstractSocket::SocketAddressNotAvailableError)
+ {
+ LOG(VB_GENERAL, LOG_ERR,
+ QString("Address %1 no longer exists - ignoring")
+diff --git a/mythtv/libs/libmythmetadata/metadatafactory.cpp
b/mythtv/libs/libmythmetadata/metadatafactory.cpp
+index 5c66bef..bc385d8 100644
+--- a/mythtv/libs/libmythmetadata/metadatafactory.cpp
++++ b/mythtv/libs/libmythmetadata/metadatafactory.cpp
+@@ -290,12 +290,10 @@ void MetadataFactory::OnSingleResult(MetadataLookup *lookup)
+ if (fanartlist.size())
+ {
+ ArtworkInfo info;
+- int index = fanartlist.size();
++ int index = 0;
+ int season = lookup->GetIsCollection() ? 0 :
(int)lookup->GetSeason();
+- if (season > 0)
+- index = max(0, index-season);
+- else
+- index--;
++ if (season > 0 && season <= fanartlist.count())
++ index = season - 1;
+ info.url = fanartlist.takeAt(index).url;
+ map.insert(kArtworkFanart, info);
+ }
+diff --git a/mythtv/libs/libmythtv/channelscan/channelscanmiscsettings.h
b/mythtv/libs/libmythtv/channelscan/channelscanmiscsettings.h
+index 8a81f07..6a167b7 100644
+--- a/mythtv/libs/libmythtv/channelscan/channelscanmiscsettings.h
++++ b/mythtv/libs/libmythtv/channelscan/channelscanmiscsettings.h
+@@ -170,9 +170,11 @@ class ScanSymbolRateDVBS: public ComboBoxSetting, public
TransientStorage
+ "million symbols per second."));
+ addSelection("3333000");
+ addSelection("22000000");
++ addSelection("23000000");
+ addSelection("27500000", "27500000", true);
+ addSelection("28000000");
+ addSelection("28500000");
++ addSelection("29500000");
+ addSelection("29900000");
+ }
+ };
diff --git a/mythtv/libs/libmythtv/datadirect.cpp b/mythtv/libs/libmythtv/datadirect.cpp
index 77cdef5..4ec9f92 100644
--- a/mythtv/libs/libmythtv/datadirect.cpp
@@ -203,6 +338,63 @@
mutable QString m_cookieFile;
QDateTime m_cookieFileDT;
+diff --git a/mythtv/libs/libmythtv/eitcache.cpp b/mythtv/libs/libmythtv/eitcache.cpp
+index ae7c98d..a855443 100644
+--- a/mythtv/libs/libmythtv/eitcache.cpp
++++ b/mythtv/libs/libmythtv/eitcache.cpp
+@@ -249,15 +249,12 @@ event_map_t * EITCache::LoadChannel(uint chanid)
+ return eventMap;
+ }
+
+-void EITCache::WriteChannelToDB(QStringList &value_clauses, uint chanid)
++bool EITCache::WriteChannelToDB(QStringList &value_clauses, uint chanid)
+ {
+ event_map_t * eventMap = channelMap[chanid];
+
+ if (!eventMap)
+- {
+- channelMap.remove(chanid);
+- return;
+- }
++ return false;
+
+ uint size = eventMap->size();
+ uint updated = 0;
+@@ -294,6 +291,8 @@ void EITCache::WriteChannelToDB(QStringList &value_clauses, uint
chanid)
+ "for channel %3 from cache.")
+ .arg(removed).arg(size).arg(chanid));
+ pruneCnt += removed;
++
++ return true;
+ }
+
+ void EITCache::WriteToDB(void)
+@@ -304,8 +303,10 @@ void EITCache::WriteToDB(void)
+ key_map_t::iterator it = channelMap.begin();
+ while (it != channelMap.end())
+ {
+- WriteChannelToDB(value_clauses, it.key());
+- ++it;
++ if (!WriteChannelToDB(value_clauses, it.key()))
++ it = channelMap.erase(it);
++ else
++ ++it;
+ }
+
+ if(value_clauses.isEmpty())
+diff --git a/mythtv/libs/libmythtv/eitcache.h b/mythtv/libs/libmythtv/eitcache.h
+index 92e2e9a..aa62916 100644
+--- a/mythtv/libs/libmythtv/eitcache.h
++++ b/mythtv/libs/libmythtv/eitcache.h
+@@ -36,7 +36,7 @@ class EITCache
+
+ private:
+ event_map_t * LoadChannel(uint chanid);
+- void WriteChannelToDB(QStringList &value_clauses, uint chanid);
++ bool WriteChannelToDB(QStringList &value_clauses, uint chanid);
+
+ // event key cache
+ key_map_t channelMap;
diff --git a/mythtv/libs/libmythtv/eithelper.cpp b/mythtv/libs/libmythtv/eithelper.cpp
index bf980ed..e34714f 100644
--- a/mythtv/libs/libmythtv/eithelper.cpp
@@ -531,6 +723,59 @@
LIBS += -L../../../libmythbase -lmythbase-$$LIBVERSION
LIBS += -L../../../libmythui -lmythui-$$LIBVERSION
LIBS += -L../../../libmythupnp -lmythupnp-$$LIBVERSION
+diff --git a/mythtv/libs/libmythtv/transporteditor.cpp
b/mythtv/libs/libmythtv/transporteditor.cpp
+index 2582133..de9b07b 100644
+--- a/mythtv/libs/libmythtv/transporteditor.cpp
++++ b/mythtv/libs/libmythtv/transporteditor.cpp
+@@ -470,9 +470,11 @@ class DVBSymbolRate : public ComboBoxSetting, public MuxDBStorage
+ "million symbols per second."));
+ addSelection("3333000");
+ addSelection("22000000");
++ addSelection("23000000");
+ addSelection("27500000", "27500000", true);
+ addSelection("28000000");
+ addSelection("28500000");
++ addSelection("29500000");
+ addSelection("29900000");
+ };
+ };
+diff --git a/mythtv/libs/libmythtv/tv_play.cpp b/mythtv/libs/libmythtv/tv_play.cpp
+index ae43970..fb799fb 100644
+--- a/mythtv/libs/libmythtv/tv_play.cpp
++++ b/mythtv/libs/libmythtv/tv_play.cpp
+@@ -4865,6 +4865,20 @@ bool TV::ActivePostQHandleAction(PlayerContext *ctx, const
QStringList &actions)
+ ctx->player->GoToMenu("root");
+ ctx->UnlockDeletePlayer(__FILE__, __LINE__);
+ }
++ else if (has_action(ACTION_JUMPTODVDCHAPTERMENU, actions) && isdisc)
++ {
++ ctx->LockDeletePlayer(__FILE__, __LINE__);
++ if (ctx->player)
++ ctx->player->GoToMenu("chapter");
++ ctx->UnlockDeletePlayer(__FILE__, __LINE__);
++ }
++ else if (has_action(ACTION_JUMPTODVDTITLEMENU, actions) && isdisc)
++ {
++ ctx->LockDeletePlayer(__FILE__, __LINE__);
++ if (ctx->player)
++ ctx->player->GoToMenu("title");
++ ctx->UnlockDeletePlayer(__FILE__, __LINE__);
++ }
+ else if (has_action(ACTION_JUMPTOPOPUPMENU, actions) && isdisc)
+ {
+ ctx->LockDeletePlayer(__FILE__, __LINE__);
+diff --git a/mythtv/libs/libmythtv/videosource.cpp
b/mythtv/libs/libmythtv/videosource.cpp
+index 3f5b595..132b023 100644
+--- a/mythtv/libs/libmythtv/videosource.cpp
++++ b/mythtv/libs/libmythtv/videosource.cpp
+@@ -1144,6 +1144,7 @@ class DVBTuningDelay : public SpinBoxSetting, public
CaptureCardDBStorage
+ CaptureCardDBStorage(this, parent, "dvb_tuning_delay")
+ {
+ setLabel(QObject::tr("DVB tuning delay (ms)"));
++ setValue(true);
+ setHelpText(
+ QObject::tr("Some Linux DVB drivers, in particular for the "
+ "Hauppauge Nova-T, require that we slow down "
diff --git a/mythtv/libs/libmythui/mythuibuttonlist.cpp
b/mythtv/libs/libmythui/mythuibuttonlist.cpp
index 95966a5..24669b5 100644
--- a/mythtv/libs/libmythui/mythuibuttonlist.cpp
@@ -764,11 +1009,135 @@
regexp.setMinimal(true);
if (!newText.isEmpty() && newText.contains(regexp))
+diff --git a/mythtv/libs/libmythupnp/msocketdevice.h
b/mythtv/libs/libmythupnp/msocketdevice.h
+index 3e40fa7..cbee01d 100644
+--- a/mythtv/libs/libmythupnp/msocketdevice.h
++++ b/mythtv/libs/libmythupnp/msocketdevice.h
+@@ -121,7 +121,9 @@ public:
+
+ inline qint64 readBlock(char *data, quint64 maxlen)
+ {
+- return qint64(read(data, qint64(maxlen)));
++ // read() does not correctly handle zero-byte udp packets
++ // so call readData() directly which does
++ return maxlen ? qint64(read(data, qint64(maxlen))) : qint64(readData(data,
qint64(maxlen)));
+ }
+
+ virtual quint16 port() const;
+diff --git a/mythtv/libs/libmythupnp/msocketdevice_unix.cpp
b/mythtv/libs/libmythupnp/msocketdevice_unix.cpp
+index 5a80aa6..0741eed 100644
+--- a/mythtv/libs/libmythupnp/msocketdevice_unix.cpp
++++ b/mythtv/libs/libmythupnp/msocketdevice_unix.cpp
+@@ -983,8 +983,28 @@ qint64 MSocketDevice::waitForMore(int msecs, bool *timeout) const
+ */
+ qint64 MSocketDevice::readData(char *data, qint64 maxlen)
+ {
++#if !defined(QT_NO_IPV6)
++
++ struct sockaddr_storage aa;
++#else
++
++ struct sockaddr_in aa;
++#endif
++
+ if (maxlen == 0)
++ {
++ // Cannot short circuit on zero bytes for datagram because zero-
++ // byte datagrams are a real thing and if you don't issue a read
++ // then select() will keep falling through
++ if (t == Datagram)
++ {
++ QT_SOCKLEN_T sz;
++ sz = sizeof(aa);
++ ::recvfrom(fd, data, 0, 0, (struct sockaddr *) & aa, &sz);
++ qt_socket_getportaddr((struct sockaddr *)&aa, &pp, &pa);
++ }
+ return 0;
++ }
+
+ if (data == 0)
+ {
+@@ -1022,13 +1042,6 @@ qint64 MSocketDevice::readData(char *data, qint64 maxlen)
+ {
+ if (t == Datagram)
+ {
+-#if !defined(QT_NO_IPV6)
+-
+- struct sockaddr_storage aa;
+-#else
+-
+- struct sockaddr_in aa;
+-#endif
+ memset(&aa, 0, sizeof(aa));
+ QT_SOCKLEN_T sz;
+ sz = sizeof(aa);
diff --git a/mythtv/libs/libmythupnp/ssdp.cpp b/mythtv/libs/libmythupnp/ssdp.cpp
-index 9e503eb..b1a4ba0 100644
+index 9e503eb..c375f79 100644
--- a/mythtv/libs/libmythupnp/ssdp.cpp
+++ b/mythtv/libs/libmythupnp/ssdp.cpp
-@@ -367,7 +367,7 @@ void SSDP::ProcessData( MSocketDevice *pSocket )
+@@ -291,14 +291,19 @@ void SSDP::run()
+
+ int count;
+ count = select(nMaxSocket + 1, &read_set, NULL, NULL, &timeout);
++
+ for (int nIdx = 0; count && nIdx < (int)NumberOfSockets; nIdx++ )
+ {
+- if (m_Sockets[nIdx] != NULL && m_Sockets[nIdx]->socket() >= 0
&&
+- FD_ISSET(m_Sockets[nIdx]->socket(), &read_set))
++ bool cond1 = m_Sockets[nIdx] != NULL;
++ bool cond2 = cond1 && m_Sockets[nIdx]->socket() >= 0;
++ bool cond3 = cond2 && FD_ISSET(m_Sockets[nIdx]->socket(),
&read_set);
++
++ if (cond3)
+ {
+ #if 0
+ LOG(VB_GENERAL, LOG_DEBUG, QString("FD_ISSET( %1
)").arg(nIdx));
+ #endif
++
+ ProcessData(m_Sockets[nIdx]);
+ count--;
+ }
+@@ -315,10 +320,20 @@ void SSDP::run()
+ void SSDP::ProcessData( MSocketDevice *pSocket )
+ {
+ QByteArray buffer;
+- long nBytes = 0;
++ long nBytes = pSocket->bytesAvailable();
+ int retries = 0;
++ // Note: this function MUST do a read even if someone sends a zero byte UDP message
++ // Otherwise the select() will continue to signal data ready, so to prevent using
100%
++ // CPU, we need to call a recv function to make select() block again
++ bool didDoRead = 0;
++
++ // UDP message of zero length? OK, "recv" it and move on
++ if (nBytes == 0)
++ {
++ LOG(VB_UPNP, LOG_WARNING, QString("SSDP: Received 0 byte UDP
message"));
++ }
+
+- while ((nBytes = pSocket->bytesAvailable()) > 0)
++ while ((nBytes = pSocket->bytesAvailable()) > 0 || (nBytes == 0 &&
!didDoRead))
+ {
+ buffer.resize(nBytes);
+
+@@ -326,6 +341,7 @@ void SSDP::ProcessData( MSocketDevice *pSocket )
+ do
+ {
+ long ret = pSocket->readBlock( buffer.data() + nRead, nBytes - nRead );
++ didDoRead = 1;
+ if (ret < 0)
+ {
+ if (errno == EAGAIN || errno == EWOULDBLOCK)
+@@ -349,7 +365,7 @@ void SSDP::ProcessData( MSocketDevice *pSocket )
+
+ nRead += ret;
+
+- if (0 == ret)
++ if (0 == ret && nBytes != 0)
+ {
+ LOG(VB_SOCKET, LOG_WARNING,
+ QString("%1 bytes reported available, "
+@@ -367,7 +383,7 @@ void SSDP::ProcessData( MSocketDevice *pSocket )
QHostAddress peerAddress = pSocket->peerAddress();
quint16 peerPort = pSocket->peerPort ();
@@ -820,6 +1189,20 @@
+ <!-- MythArchive -->
+ <setting name="MythArchiveVideoFormat">PAL</setting>
+</mythlocale>
+diff --git a/mythtv/programs/mythbackend/mainserver.cpp
b/mythtv/programs/mythbackend/mainserver.cpp
+index 6fc25d4..8813652 100644
+--- a/mythtv/programs/mythbackend/mainserver.cpp
++++ b/mythtv/programs/mythbackend/mainserver.cpp
+@@ -898,6 +898,9 @@ void MainServer::ProcessRequestWork(MythSocket *sock)
+
+ void MainServer::customEvent(QEvent *e)
+ {
++ if (!e)
++ return;
++
+ QStringList broadcast;
+ QSet<QString> receivers;
+
diff --git a/mythtv/programs/mythfilldatabase/xmltvparser.cpp
b/mythtv/programs/mythfilldatabase/xmltvparser.cpp
index d05649d..b843acb 100644
--- a/mythtv/programs/mythfilldatabase/xmltvparser.cpp
@@ -987,6 +1370,43 @@
}
if (m_recProfileText)
+diff --git a/mythtv/programs/mythtranscode/transcode.cpp
b/mythtv/programs/mythtranscode/transcode.cpp
+index 343834b..50f9e22 100644
+--- a/mythtv/programs/mythtranscode/transcode.cpp
++++ b/mythtv/programs/mythtranscode/transcode.cpp
+@@ -267,7 +267,7 @@ int Transcode::TranscodeFile(const QString &inputname,
+ return REENCODE_ERROR;
+ }
+ player_ctx->SetRingBuffer(rb);
+- player_ctx->SetPlayer(new MythPlayer(kVideoIsNull));
++ player_ctx->SetPlayer(new MythPlayer((PlayerFlags)(kVideoIsNull | kNoITV)));
+ SetPlayerContext(player_ctx);
+ GetPlayer()->SetPlayerInfo(NULL, NULL, GetPlayerContext());
+ if (m_proginfo->GetRecordingEndTime() > curtime)
+diff --git a/mythtv/programs/mythtv-setup/importicons.cpp
b/mythtv/programs/mythtv-setup/importicons.cpp
+index 6cceb04..ec8e506 100644
+--- a/mythtv/programs/mythtv-setup/importicons.cpp
++++ b/mythtv/programs/mythtv-setup/importicons.cpp
+@@ -165,8 +165,8 @@ void ImportIconsWizard::enableControls(dialogState state, bool
selectEnabled)
+ void ImportIconsWizard::manualSearch()
+ {
+ QString str = m_manualEdit->GetText();
+- if (!search(escape_csv(str)))
+- m_statusText->SetText(tr("No matches found for %1") .arg(str));
++ if (!search(str))
++ m_statusText->SetText(tr("No matches found for
\"%1\"").arg(str));
+ else
+ m_statusText->Reset();
+ }
+@@ -476,7 +476,7 @@ bool ImportIconsWizard::doLoad()
+ m_nameText->SetText(tr("Choose icon for channel %1")
+ .arg((*m_missingIter).strName));
+ m_manualEdit->SetText((*m_missingIter).strName);
+- if (!search((*m_missingIter).strNameCSV))
++ if (!search((*m_missingIter).strName))
+ m_statusText->SetText(tr("No matches found for %1")
+ .arg((*m_missingIter).strName));
+ else
diff --git a/mythtv/themes/default/keyboard/el.xml
b/mythtv/themes/default/keyboard/el.xml
new file mode 100644
index 0000000..da192cf
Index: mythtv.spec
===================================================================
RCS file: /cvs/free/rpms/mythtv/F-20/mythtv.spec,v
retrieving revision 1.143
retrieving revision 1.144
diff -u -r1.143 -r1.144
--- mythtv.spec 4 Jan 2015 21:10:25 -0000 1.143
+++ mythtv.spec 15 Apr 2015 19:55:55 -0000 1.144
@@ -60,7 +60,7 @@
%define desktop_vendor RPMFusion
# MythTV Version string -- preferably the output from git --describe
-%define vers_string v0.27.4-27-g40506c2
+%define vers_string v0.27.4-42-g628183a
%define branch fixes/0.27
# Git revision and branch ID
@@ -78,7 +78,7 @@
%if "%{branch}" == "master"
Release: 0.1.git.%{_gitrev}%{?dist}
%else
-Release: 3%{?dist}
+Release: 5%{?dist}
%endif
# The primary license is GPLv2+, but bits are borrowed from a number of
@@ -149,15 +149,16 @@
Source108: mythtv-setup.png
Source109: mythtv-setup.desktop
Source111: 99-mythbackend.rules
+Source112: mythjobqueue.service
# Global MythTV and Shared Build Requirements
%if %{with_systemd}
# Use systemd
-BuildRequires: systemd-units
-Requires(post): systemd-units
-Requires(preun): systemd-units
-Requires(postun): systemd-units
+BuildRequires: systemd
+Requires(post): systemd
+Requires(preun): systemd
+Requires(postun): systemd
%else
# Use SysV
Requires(post): chkconfig
@@ -517,9 +518,8 @@
Requires: mythtv-common = %{version}-%{release}
Requires: mythtv-base-themes = %{version}
Requires: python-MythTV
+Requires: mesa-vdpau-drivers
Provides: mythtv-frontend-api = %{mythfeapiver}
-Obsoletes: mythvideo < %{version}-%{release}
-Provides: mythvideo = %{version}-%{release}
%description frontend
MythTV provides a unified graphical interface for recording and viewing
@@ -1039,6 +1039,9 @@
mkdir -p %{buildroot}/lib/udev/rules.d/
install -p -m 0644 %{SOURCE111} %{buildroot}/lib/udev/rules.d/
+ # Systemd unit file for mythjobqueue only backends.
+ install -p -m 0644 %{SOURCE112} %{buildroot}%{_unitdir}/
+
### SysV based setup. ###
%else
install -p -m 0755 %{SOURCE102} %{buildroot}%{_sysconfdir}/init.d/mythbackend
@@ -1142,22 +1145,17 @@
%post backend
%if %{with_systemd}
-if [ $1 -eq 1 ] ; then
- # Initial installation
- /bin/systemctl daemon-reload >/dev/null 2>&1 || :
-fi
+ %systemd_post mythbackend.service
+ %systemd_post mythjobqueue.service
%else
-/sbin/chkconfig --add mythbackend
+ /sbin/chkconfig --add mythbackend
%endif
%preun backend
%if %{with_systemd}
-if [ $1 -eq 0 ] ; then
- # Package removal, not upgrade
- /bin/systemctl --no-reload disable mythbackend.service > /dev/null 2>&1 ||
:
- /bin/systemctl stop mythbackend.service > /dev/null 2>&1 || :
-fi
+ %systemd_preun mythbackend.service
+ %systemd_preun mythjobqueue.service
%else
if [ $1 = 0 ]; then
/sbin/service mythbackend stop > /dev/null 2>&1
@@ -1167,11 +1165,8 @@
%postun backend
%if %{with_systemd}
-/bin/systemctl daemon-reload >/dev/null 2>&1 || :
-if [ $1 -ge 1 ] ; then
- # Package upgrade, not uninstall
- /bin/systemctl try-restart mythbackend.service >/dev/null 2>&1 || :
-fi
+ %systemd_postun_with_restart mythbackend.service
+ %systemd_postun_with_restart mythjobqueue.service
%else
if [ "$1" -ge "1" ] ; then
/sbin/service mythbackend condrestart >/dev/null 2>&1 || :
@@ -1209,9 +1204,8 @@
%{_datadir}/mythtv/locales/
%{_datadir}/mythtv/metadata/
%{_datadir}/mythtv/hardwareprofile/
-%attr(-,mythtv,mythtv)
-%dir %{_sysconfdir}/mythtv
-%config(noreplace) %{_sysconfdir}/mythtv/config.xml
+%attr(-,mythtv,mythtv) %dir %{_sysconfdir}/mythtv
+%attr(0664,mythtv,mythtv) %config(noreplace) %{_sysconfdir}/mythtv/config.xml
%files backend
%{_bindir}/mythbackend
@@ -1226,6 +1220,7 @@
%attr(-,mythtv,mythtv) %dir %{_localstatedir}/cache/mythtv
%if %{with_systemd}
%{_unitdir}/mythbackend.service
+%{_unitdir}/mythjobqueue.service
/lib/udev/rules.d/99-mythbackend.rules
%else
%{_sysconfdir}/init.d/mythbackend
@@ -1280,7 +1275,6 @@
%files devel
%{_includedir}/*
%{_libdir}/*.so
-%exclude %{_libdir}/*.a
%dir %{_datadir}/mythtv/build
%{_datadir}/mythtv/build/settings.pro
@@ -1423,6 +1417,15 @@
%changelog
+* Tue Apr 7 2015 Richard Shaw <hobbes1069(a)gmail.com> - 0.27.4-5
+- Update to latest bugfix release.
+- Fix owner on /etc/mythtv (BZ#3558).
+- Add systemd unit file for mythjobqueue only backends (BZ#3571).
+
+* Mon Mar 2 2015 Richard Shaw <hobbes1069(a)gmail.com> - 0.27.4-4
+- Update to latest bugfix release.
+- Add mesa-vdpau-drivers to requirements as it is usable on ATI/AMD video cards.
+
* Sun Jan 4 2015 Richard Shaw <hobbes1069(a)gmail.com> - 0.27.4-3
- Update to latest bugfix release.
- Change systemd dependency from network.target to network-online.target, fixes