rpms/mythtv/F-20 mythjobqueue.service, NONE, 1.1 ChangeLog, 1.18, 1.19 mythtv-0.27-fixes.patch, 1.9, 1.10 mythtv.spec, 1.143, 1.144

Richard Shaw hobbes1069 at rpmfusion.org
Wed Apr 15 21:55:55 CEST 2015


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 at 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 at 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 at mythtv.org>
+
+commit f1115fcd2b5cef93e870f926f53bf32cf546da9d
+Author: Stuart Auchterlonie <stuarta at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at gmail.com> - 0.27.4-3
 - Update to latest bugfix release.
 - Change systemd dependency from network.target to network-online.target, fixes


More information about the rpmfusion-commits mailing list