rpms/mythtv/devel ChangeLog, 1.23, 1.24 mythtv-0.27-fixes.patch, 1.12, 1.13 mythtv.spec, 1.152, 1.153

Richard Shaw hobbes1069 at rpmfusion.org
Mon Nov 2 17:14:56 CET 2015


Author: hobbes1069

Update of /cvs/free/rpms/mythtv/devel
In directory old02.ovh.rpmfusion.lan:/tmp/cvs-serv25576

Modified Files:
	ChangeLog mythtv-0.27-fixes.patch mythtv.spec 
Log Message:
* Mon Jul  6 2015 Richard Shaw <hobbes1069 at gmail.com> - 0.27.5-1
- Update to latest upstream release.
- Move udisks requirement to the libs package where it's actually used.
- Add systemd mythtv database optimization service and timer.



Index: ChangeLog
===================================================================
RCS file: /cvs/free/rpms/mythtv/devel/ChangeLog,v
retrieving revision 1.23
retrieving revision 1.24
diff -u -r1.23 -r1.24
--- ChangeLog	21 Jul 2015 19:38:41 -0000	1.23
+++ ChangeLog	2 Nov 2015 16:14:54 -0000	1.24
@@ -1,3 +1,198 @@
+commit 3682a9a14783e81685af1f838ba7f3c9916e1746
+Merge: e5e095b 9ac80fb
+Author: Karl Dietz <dekarl at mythtv.org>
+Date:   Fri Oct 9 11:16:34 2015 +0200
+
+    Merge branch 'devel/027candidates' into fixes/0.27
+
+commit e5e095bcb6d03f1edd107c04a8cd14c90145c079
+Author: Karl Dietz <dekarl at mythtv.org>
+Date:   Sat Oct 3 12:48:34 2015 +0200
+
+    Fiddle with the theme template regular expression for #12003
+    
+    It appears that \w worked for a long time. But does not match #
+    so it was changed to \S which matches everything but white space.
+    
+    Now try with \w and explicit #.
+    
+    The regexp is tested with online tools.
+    (I couldn't get QRegExp-Editor to build and refactoring to suit unit
+    tests didn't look easy)
+    
+    Fixes #12003
+    
+    (cherry picked from commit bb6fe50f70e47b836bcc9752af32996fd114a15e)
+
+commit 2ad315894af9a7770b29dbec5d0ca56a84534f49
+Author: Stuart Auchterlonie <stuarta at squashedfrog.net>
+Date:   Fri May 1 18:09:57 2015 +0100
+
+    Re-Enable screensaver-x11 after the dbus screensaver support was added.
+    
+    This now utilizes the dbus screensaver first, and then the previously
+    existing screensaver methods. This should resolve the issues seen by
+    those using only DPMS or xscreensaver.
+    
+    (cherry picked from commit 8ea5911f066fe406deeddb8ba92b629be4f47cd1)
+    
+    Backport to fixes/0.27. Fixes #12511
+
+commit 156c30034f6d0c2c22c3b61f59da075f50938269
+Author: Stuart Auchterlonie <stuarta at squashedfrog.net>
+Date:   Fri May 1 18:09:30 2015 +0100
+
+    Move failure to connect to the different dbus services to LOG_WARNING level #2
+    
+    (cherry picked from commit e731ebc0d31d20afa29a95a3934be0149c2e0383)
+    
+    Backport to fixes/0.27. Refs #12511
+
+commit 05016ef186d113a0058babe4002a429ffc2f035e
+Author: Stuart Auchterlonie <stuarta at squashedfrog.net>
+Date:   Fri May 1 16:03:36 2015 +0100
+
+    Move failure to connect to the different dbus services to LOG_WARNING level
+    
+    (cherry picked from commit 348ed663810ffa6860f380733a677e0aa6d729d1)
+    
+    Backport to fixes/0.27. Refs #12511
+
+commit 43312ef43893b0a720b9c49c6b1d1112c34c79e9
+Author: Stuart Auchterlonie <stuarta at squashedfrog.net>
+Date:   Fri May 1 11:44:04 2015 +0100
+
+    Separate the ScreenSaver base class from the ScreenSaverController.
+    
+    This is a preliminary step to allow multiple screen saver control
+    methods to be utilized at the same time.
+    
+    (cherry picked from commit b1c3c35a99fbd3498a01dc06888801b553604927)
+    
+    Backport to fixes/0.27. Refs #12511
+
+commit 1b02deb1b9fd89ed27d2f98bb00137ff48d60bf7
+Author: Stuart Auchterlonie <stuarta at squashedfrog.net>
+Date:   Wed Apr 29 22:28:00 2015 +0100
+
+    Fix lirc being ignored after dbus screen saver changes.
+    
+    If the Screensaver is Asleep() we ignore all keypresses
+    generated via the remote. This is clearly so that a button
+    pressed on the remote while the screen is asleep only wakes
+    up the screen, rather than triggering an action.
+    
+    This swaps the logic around in the dbus screensaver so that
+    it satisfies the Asleep() check.
+    
+    We may need to revist this in the future if we find that
+    when using the dbus screensaver we are not ignoring the
+    remote keypress which is used to bring us out of screensave.
+    
+    (cherry picked from commit 70ae25deab026238250cbe0ca108fb6ceb41e188)
+    
+    Backport to fixes/0.27. Refs #12511
+
+commit 42939f201a653b8e66876ba88b2bcbc4b57511a2
+Author: Stuart Auchterlonie <stuarta at squashedfrog.net>
+Date:   Tue Apr 21 09:04:10 2015 +0100
+
+    Refs #12414. Removes some old commented out code
+    
+    (cherry picked from commit 7c18c182e693302915bfcdd483f95192c95c04f1)
+    
+    Backport to fixes/0.27. Refs #12511
+
+commit 31bd913580153c7b7ab4ce32850d8bc0c4298634
+Author: Stuart Auchterlonie <stuarta at squashedfrog.net>
+Date:   Tue Apr 21 00:11:12 2015 +0100
+
+    lost a void along the way
+    
+    (cherry picked from commit b316010a65a70561852f34ae2891825c8189d76b)
+    
+    Backport to fixes/0.27. Refs #12511
+
+commit 7c7c4e5dd0ea7795414e44da5170662d283c81a5
+Author: Stuart Auchterlonie <stuarta at squashedfrog.net>
+Date:   Mon Apr 20 23:41:14 2015 +0100
+
+    Attempt to use 4 different known screensaver dbus services
+    
+    (cherry picked from commit eb68676d8ea4dae3cc2d823d2ba10183b00a4680)
+    
+    Backport to fixes/0.27. Refs #12511
+
+commit ac595a7e69cb8cb13d9d43cab0cb2fef36ec8dbf
+Author: Stuart Auchterlonie <stuarta at squashedfrog.net>
+Date:   Thu Mar 19 21:07:47 2015 +0000
+
+    Initial version of dbus based screensaver
+    
+    (cherry picked from commit 35564d70e71ee0fe3ccea7dfa53a1ffa21117057)
+    
+    Backport to fixes/0.27. Refs #12511
+
+commit fbd5ef3122abff438d4d706b4ccc046213f47f22
+Author: Karl Dietz <dekarl at mythtv.org>
+Date:   Tue Sep 15 12:00:00 2015 +0200
+
+    handle RTP packets with header extensions and/or less then 7 TS packets
+    
+    1328 is a magic number of 12 (minimum RTP header size) plus
+    7 times 188 (length of a plain TS packet)
+    
+    Fix handling of padding length calculation while here.
+    from RFC 1889, page 11:
+        The last octet of the padding contains a count of how many padding
+        octets should be ignored.
+    
+    Refs #11852
+    
+    (cherry picked from commit 90b98524e04e5a37112e038bd9c5da6958fbf4f1)
+
+commit ec7116540f7bca2007f3d74cbd30321d5123993d
+Author: Karl Dietz <dekarl at mythtv.org>
+Date:   Sat Sep 19 23:07:15 2015 +0200
+
+    Make the comparison of magic card type strings case insensitive
+    
+    Fixes #12481
+    
+    (cherry picked from commit 7126654f1ae8cdec1708cb20088362d6c9c87b27)
+
+commit e9b577d3e9865fd51ffb385c3317448ac3771124
+Author: Michael Niedermayer <michaelni at gmx.at>
+Date:   Wed Sep 9 18:10:51 2015 +0100
+
+    avcodec/aacdec: Fix storing state before PCE decode
+    
+    Signed-off-by: Paul Harrison <pharrison at mythtv.org>
+    (cherry picked from commit fdbe56014caac49e617736b18bf0ffc27bad7386)
+
+commit 32fd3968acea905d71d9769996487eff280233ea
+Author: David Engel <dengel at mythtv.org>
+Date:   Fri Sep 4 09:58:37 2015 -0500
+
+    Only use visible channels to mark first/last showings.
+    
+    If a first or last showing is only on an invisible channel, it will
+    cause a recording rule using that feature to miss a showing on another
+    visible channel.
+    
+    Cherry picked from commit 97aface5.
+
+commit e2a11c915058c6876a25d8188f02bc1d99fdad02
+Author: Hika van den Hoven <hikavdh at gmail.com>
+Date:   Sun Aug 2 12:32:37 2015 +0200
+
+    Internet Content: Only use the YouTube region preference if it is nonempty
+    
+    Fixes #12475
+    
+    Signed-off-by: Jonatan Lindblad <jlindblad at mythtv.org>
+    (cherry picked from commit a8dcf35fe25dfd9f0501b8f0bd4d08e770f415e0)
+
 commit 9498257571e8158926b60a0eefc74568c4436823
 Author: Mario Limonciello <superm1 at ubuntu.com>
 Date:   Wed Oct 9 07:21:38 2013 -0500
@@ -42,3 +237,86 @@
     This bumps the ABI version.
     
     (cherry picked from commit 9527d3d0c9b71bb088b3869319a11f5c1ea9bb57)
+
+commit 9ac80fbb52a5c8022d5cb4374cf6b455785a3990
+Author: Jonatan Lindblad <jlindblad at mythtv.org>
+Date:   Sun Apr 19 23:41:00 2015 +0200
+
+    Video output: Fix OpenGL 1 output after b9971146
+    
+    (cherry picked from commit 2b01ed3894be8374b6c143449fa563fbd945da5a)
+    
+    Refs #12421
+
+commit cd9762c6acaa1fa26f4c5e29f2bc83d4e7e2353e
+Author: Jonatan Lindblad <jlindblad at mythtv.org>
+Date:   Mon Mar 23 23:46:13 2015 +0100
+
+    Video output: Add default fragment shader for OpenGL 2
+    
+    When there were no color conversions with the YUV->RGB shader, there was no
+    other fragment shader active and because of that the video was black.
+    
+    (cherry picked from commit b997114683759562dbaf6b80a651070d099195ac)
+    
+    Refs #12421
+
+commit fbe2c3c1215a4fa0e9aa4df815e86d7d7a42ef4b
+Merge: fd0f283 7962008
+Author: Stuart Auchterlonie <stuarta at squashedfrog.net>
+Date:   Mon May 4 21:52:03 2015 +0100
+
+    Merge remote-tracking branch 'origin/fixes/0.27' into devel/027candidates
+
+commit fd0f2831f936b55512d9ff68f70aa3032f20d451
+Merge: c4bbf71 628183a
+Author: Stuart Auchterlonie <stuarta at squashedfrog.net>
+Date:   Fri Apr 10 11:36:41 2015 +0100
+
+    Merge branch 'fixes/0.27' into devel/027candidates
+    
+    Pull in various fixes that have been pushed to 0.27,
+    but aren't in devel/027candidates
+
+commit c4bbf713ac4c4b51fd9125d1c57a4aa0e70b0c44
+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 920097d8a8ad8a7fdcfc8357ee0a9744a29976e4
+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 f88acbe3648495f211ad22e9dbf90ecc3ae99a69
+Merge: 2fb2643 b97ea66
+Author: Jean-Yves Avenard <jyavenard at mythtv.org>
+Date:   Tue Oct 14 19:28:45 2014 +1100
+
+    Merge branch 'fixes/0.27' into devel/027candidates
+
+commit 2fb26439867aea9bbd2f2b4808f780c6fd477e41
+Author: John Poet <jpoet at mythtv.org>
+Date:   Tue Sep 23 12:58:15 2014 -0600
+
+    MythMainWindow::Norm: With very small values of x, scaling down can cause
+    the 'normalized' value to go to zero.  Rounding the result fixes this, and
+    is probably more desireable anyway.
+    
+    (cherry picked from commit 42bae47be8794eac2dadff3b4fd1a7fa3c547b82)
+
+commit 4c29a5e2d79f180a0684c91f4867793ed561e9ed
+Author: John Poet <jpoet at mythtv.org>
+Date:   Fri Sep 19 16:15:09 2014 -0600
+
+    MythUIScrollBar: Initialize maximum to zero until it is actually known,
+    otherwise the scrollbar is drawn prematurely.
+    
+    (cherry picked from commit 899f3d3185c994715c86cd42bf56e011266e4c9c)

mythtv-0.27-fixes.patch:
 mythplugins/mythnetvision/mythnetvision/netcommon.cpp                                           |    4 
 mythplugins/mythnetvision/mythnetvision/netcommon.h                                             |    2 
 mythplugins/mythnetvision/mythnetvision/netsearch.cpp                                           |   23 
 mythplugins/mythnetvision/mythnetvision/netsearch.h                                             |    3 
 mythtv/external/FFmpeg/libavcodec/aacdec.c                                                      |    2 
 mythtv/libs/libmyth/netgrabbermanager.cpp                                                       |   26 
 mythtv/libs/libmyth/netgrabbermanager.h                                                         |    7 
 mythtv/libs/libmythbase/mythversion.h                                                           |    2 
 mythtv/libs/libmythtv/profilegroup.cpp                                                          |    3 
 mythtv/libs/libmythtv/recorders/rtp/rtpdatapacket.h                                             |    8 
 mythtv/libs/libmythtv/recorders/rtp/rtptsdatapacket.h                                           |    2 
 mythtv/libs/libmythui/libmythui.pro                                                             |    7 
 mythtv/libs/libmythui/mythuibuttonlist.cpp                                                      |    2 
 mythtv/libs/libmythui/mythuihelper.cpp                                                          |    2 
 mythtv/libs/libmythui/mythuitext.cpp                                                            |    4 
 mythtv/libs/libmythui/screensaver-dbus.cpp                                                      |  171 ++
 mythtv/libs/libmythui/screensaver-dbus.h                                                        |   25 
 mythtv/libs/libmythui/screensaver-null.h                                                        |    2 
 mythtv/libs/libmythui/screensaver-osx.h                                                         |    2 
 mythtv/libs/libmythui/screensaver-x11.h                                                         |    2 
 mythtv/libs/libmythui/screensaver.cpp                                                           |   68 
 mythtv/libs/libmythui/screensaver.h                                                             |   27 
 mythtv/programs/mythbackend/internetContent.cpp                                                 |   10 
 mythtv/programs/mythfilldatabase/main.cpp                                                       |   44 
 mythtv/programs/scripts/internetcontent/nv_python_libs/common/common_api.py                     |    9 
 mythtv/programs/scripts/internetcontent/nv_python_libs/configs/XML/defaultUserPrefs/youtube.xml |   10 
 mythtv/programs/scripts/internetcontent/nv_python_libs/mainProcess.py                           |   17 
 mythtv/programs/scripts/internetcontent/nv_python_libs/vimeo/vimeo_data.py                      |   21 
 mythtv/programs/scripts/internetcontent/nv_python_libs/youtube/youtube_api.py                   |  734 +++-------
 mythtv/programs/scripts/internetcontent/nv_python_libs/youtube/youtube_data.py                  |   20 
 mythtv/programs/scripts/internetcontent/youtube.py                                              |   31 
 31 files changed, 666 insertions(+), 624 deletions(-)

Index: mythtv-0.27-fixes.patch
===================================================================
RCS file: /cvs/free/rpms/mythtv/devel/mythtv-0.27-fixes.patch,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -r1.12 -r1.13
--- mythtv-0.27-fixes.patch	21 Jul 2015 19:38:41 -0000	1.12
+++ mythtv-0.27-fixes.patch	2 Nov 2015 16:14:54 -0000	1.13
@@ -2,10 +2,26 @@
  .../mythnetvision/mythnetvision/netcommon.h        |   2 +-
  .../mythnetvision/mythnetvision/netsearch.cpp      |  23 +-
  .../mythnetvision/mythnetvision/netsearch.h        |   3 +
+ mythtv/external/FFmpeg/libavcodec/aacdec.c         |   2 +-
  mythtv/libs/libmyth/netgrabbermanager.cpp          |  26 +-
  mythtv/libs/libmyth/netgrabbermanager.h            |   7 +-
  mythtv/libs/libmythbase/mythversion.h              |   2 +-
+ mythtv/libs/libmythtv/profilegroup.cpp             |   3 +-
+ .../libs/libmythtv/recorders/rtp/rtpdatapacket.h   |   8 +-
+ .../libs/libmythtv/recorders/rtp/rtptsdatapacket.h |   2 +-
+ mythtv/libs/libmythui/libmythui.pro                |   7 +
+ mythtv/libs/libmythui/mythuibuttonlist.cpp         |   2 +-
+ mythtv/libs/libmythui/mythuihelper.cpp             |   2 +-
+ mythtv/libs/libmythui/mythuitext.cpp               |   4 +-
+ mythtv/libs/libmythui/screensaver-dbus.cpp         | 171 +++++
+ mythtv/libs/libmythui/screensaver-dbus.h           |  25 +
+ mythtv/libs/libmythui/screensaver-null.h           |   2 +-
+ mythtv/libs/libmythui/screensaver-osx.h            |   2 +-
+ mythtv/libs/libmythui/screensaver-x11.h            |   2 +-
+ mythtv/libs/libmythui/screensaver.cpp              |  68 +-
+ mythtv/libs/libmythui/screensaver.h                |  27 +-
  mythtv/programs/mythbackend/internetContent.cpp    |  10 +-
+ mythtv/programs/mythfilldatabase/main.cpp          |  44 +-
  .../nv_python_libs/common/common_api.py            |   9 +-
  .../configs/XML/defaultUserPrefs/youtube.xml       |  10 +
  .../internetcontent/nv_python_libs/mainProcess.py  |  17 +-
@@ -13,7 +29,7 @@
  .../nv_python_libs/youtube/youtube_api.py          | 734 +++++++--------------
  .../nv_python_libs/youtube/youtube_data.py         |  20 +
  mythtv/programs/scripts/internetcontent/youtube.py |  31 +-
- 16 files changed, 349 insertions(+), 570 deletions(-)
+ 32 files changed, 666 insertions(+), 624 deletions(-)
 
 diff --git a/mythplugins/mythnetvision/mythnetvision/netcommon.cpp b/mythplugins/mythnetvision/mythnetvision/netcommon.cpp
 index 1397347..296d923 100644
@@ -114,6 +130,19 @@
    private slots:
      void streamWebVideo(void);
      void showWebVideo(void);
+diff --git a/mythtv/external/FFmpeg/libavcodec/aacdec.c b/mythtv/external/FFmpeg/libavcodec/aacdec.c
+index c9eb798..66c7b3b 100644
+--- a/mythtv/external/FFmpeg/libavcodec/aacdec.c
++++ b/mythtv/external/FFmpeg/libavcodec/aacdec.c
+@@ -399,7 +399,7 @@ static uint64_t sniff_channel_order(uint8_t (*layout_map)[3], int tags)
+  * Save current output configuration if and only if it has been locked.
+  */
+ static void push_output_configuration(AACContext *ac) {
+-    if (ac->oc[1].status == OC_LOCKED) {
++    if (ac->oc[1].status == OC_LOCKED || ac->oc[0].status == OC_NONE) {
+         ac->oc[0] = ac->oc[1];
+     }
+     ac->oc[1].status = OC_NONE;
 diff --git a/mythtv/libs/libmyth/netgrabbermanager.cpp b/mythtv/libs/libmyth/netgrabbermanager.cpp
 index 15d876a..6b1b38d 100644
 --- a/mythtv/libs/libmyth/netgrabbermanager.cpp
@@ -218,6 +247,513 @@
  
  /** \brief Increment this whenever the MythTV network protocol changes.
   *
+diff --git a/mythtv/libs/libmythtv/profilegroup.cpp b/mythtv/libs/libmythtv/profilegroup.cpp
+index 72e8d33..f6b0f06 100644
+--- a/mythtv/libs/libmythtv/profilegroup.cpp
++++ b/mythtv/libs/libmythtv/profilegroup.cpp
+@@ -86,7 +86,8 @@ void ProfileGroup::fillSelections(SelectSetting* setting)
+         QString cardtype   = result.value(4).toString();
+ 
+         // Only show default profiles that match installed cards
+-        bool have_cardtype = cardtypes.contains(cardtype);
++        // Workaround for #12481 in fixes/0.27
++        bool have_cardtype = cardtypes.contains(cardtype, Qt::CaseInsensitive);
+         if (is_default && (cardtype == "TRANSCODE") && !have_cardtype)
+         {
+             tid = id;
+diff --git a/mythtv/libs/libmythtv/recorders/rtp/rtpdatapacket.h b/mythtv/libs/libmythtv/recorders/rtp/rtpdatapacket.h
+index 6586cc0..e8b8d94 100644
+--- a/mythtv/libs/libmythtv/recorders/rtp/rtpdatapacket.h
++++ b/mythtv/libs/libmythtv/recorders/rtp/rtpdatapacket.h
+@@ -43,12 +43,6 @@ class RTPDataPacket : public UDPPacket
+                 .arg(GetVersion()));
+             return false;
+         }
+-        if (HasPadding() && (m_data.size() < 1328))
+-        {
+-            LOG(VB_GENERAL, LOG_INFO, QString("HasPadding && %1 < 1328")
+-                .arg(m_data.size()));
+-            return false;
+-        }
+ 
+         int off = 12 + 4 * GetCSRCCount();
+         if (off > m_data.size())
+@@ -120,7 +114,7 @@ class RTPDataPacket : public UDPPacket
+     {
+         if (!HasPadding())
+             return 0;
+-        return m_data[1328];
++        return m_data[m_data.size()-1];
+     }
+ 
+   protected:
+diff --git a/mythtv/libs/libmythtv/recorders/rtp/rtptsdatapacket.h b/mythtv/libs/libmythtv/recorders/rtp/rtptsdatapacket.h
+index 95cf684..ead472d 100644
+--- a/mythtv/libs/libmythtv/recorders/rtp/rtptsdatapacket.h
++++ b/mythtv/libs/libmythtv/recorders/rtp/rtptsdatapacket.h
+@@ -29,7 +29,7 @@ class RTPTSDataPacket : public RTPDataPacket
+ 
+     unsigned int GetTSDataSize(void) const
+     {
+-        return max(1328 - (int)GetTSOffset() - (int)GetPaddingSize(), 0);
++        return max(m_data.size() - (int)GetTSOffset() - (int)GetPaddingSize(), 0);
+     }
+ 
+   private:
+diff --git a/mythtv/libs/libmythui/libmythui.pro b/mythtv/libs/libmythui/libmythui.pro
+index 589639c..8143126 100644
+--- a/mythtv/libs/libmythui/libmythui.pro
++++ b/mythtv/libs/libmythui/libmythui.pro
+@@ -112,6 +112,13 @@ using_x11 {
+     POST_TARGETDEPS += ../libmythnvctrl/libmythnvctrl-$${MYTH_LIB_EXT}
+ }
+ 
++using_qtdbus {
++    QT      += dbus
++    DEFINES += USING_DBUS
++    HEADERS += screensaver-dbus.h
++    SOURCES += screensaver-dbus.cpp
++}
++
+ macx {
+     HEADERS += screensaver-osx.h   DisplayResOSX.h   util-osx.h
+     SOURCES += screensaver-osx.cpp DisplayResOSX.cpp util-osx.cpp
+diff --git a/mythtv/libs/libmythui/mythuibuttonlist.cpp b/mythtv/libs/libmythui/mythuibuttonlist.cpp
+index ea0d634..8b13eef 100644
+--- a/mythtv/libs/libmythui/mythuibuttonlist.cpp
++++ b/mythtv/libs/libmythui/mythuibuttonlist.cpp
+@@ -3518,7 +3518,7 @@ void MythUIButtonListItem::SetToRealButton(MythUIStateType *button, bool selecte
+ 
+             QString newText = text->GetTemplateText();
+ 
+-            QRegExp regexp("%(([^\\|%]+)?\\||\\|(.))?(\\S+)(\\|(.+))?%");
++            QRegExp regexp("%(([^\\|%]+)?\\||\\|(.))?([\\w#]+)(\\|(.+))?%");
+             regexp.setMinimal(true);
+ 
+             if (!newText.isEmpty() && newText.contains(regexp))
+diff --git a/mythtv/libs/libmythui/mythuihelper.cpp b/mythtv/libs/libmythui/mythuihelper.cpp
+index 19fcde4..0520be5 100644
+--- a/mythtv/libs/libmythui/mythuihelper.cpp
++++ b/mythtv/libs/libmythui/mythuihelper.cpp
+@@ -197,7 +197,7 @@ MythUIHelperPrivate::~MythUIHelperPrivate()
+ 
+ void MythUIHelperPrivate::Init(void)
+ {
+-    screensaver = ScreenSaverControl::get();
++    screensaver = new ScreenSaverControl();
+     GetScreenBounds();
+     StoreGUIsettings();
+     screenSetup = true;
+diff --git a/mythtv/libs/libmythui/mythuitext.cpp b/mythtv/libs/libmythui/mythuitext.cpp
+index 60fa71f..b6fcfcb 100644
+--- a/mythtv/libs/libmythui/mythuitext.cpp
++++ b/mythtv/libs/libmythui/mythuitext.cpp
+@@ -132,7 +132,7 @@ void MythUIText::ResetMap(const InfoMap &map)
+     if (newText.isEmpty())
+         newText = GetDefaultText();
+ 
+-    QRegExp regexp("%(([^\\|%]+)?\\||\\|(.))?(\\w+)(\\|(.+))?%");
++    QRegExp regexp("%(([^\\|%]+)?\\||\\|(.))?([\\w#]+)(\\|(.+))?%");
+     regexp.setMinimal(true);
+ 
+     bool replaced = map.contains(objectName());
+@@ -196,7 +196,7 @@ void MythUIText::SetTextFromMap(const InfoMap &map)
+     if (newText.isEmpty())
+         newText = GetDefaultText();
+ 
+-    QRegExp regexp("%(([^\\|%]+)?\\||\\|(.))?(\\S+)(\\|(.+))?%");
++    QRegExp regexp("%(([^\\|%]+)?\\||\\|(.))?([\\w#]+)(\\|(.+))?%");
+     regexp.setMinimal(true);
+ 
+     if (!newText.isEmpty() && newText.contains(regexp))
+diff --git a/mythtv/libs/libmythui/screensaver-dbus.cpp b/mythtv/libs/libmythui/screensaver-dbus.cpp
+new file mode 100644
+index 0000000..b099c46
+--- /dev/null
++++ b/mythtv/libs/libmythui/screensaver-dbus.cpp
+@@ -0,0 +1,171 @@
++#include <stdint.h>
++#include "screensaver-dbus.h"
++#include <QDBusConnection>
++#include <QDBusInterface>
++#include <QDBusReply>
++#include <QString>
++
++#include "mythlogging.h"
++
++#define LOC                 QString("ScreenSaverDBus: ")
++
++const char m_app[]         = "MythTV";
++const char m_reason[]      = "Watching TV";
++const char m_dbusInhibit[] = "Inhibit";
++
++#define NUM_DBUS_METHODS 4
++// Thanks to vlc for the set of dbus services to use.
++const char m_dbusService[][40] = {
++    "org.freedesktop.ScreenSaver", /**< KDE >= 4 and GNOME >= 3.10 */
++    "org.freedesktop.PowerManagement.Inhibit", /**< KDE and GNOME <= 2.26 */
++    "org.mate.SessionManager", /**< >= 1.0 */
++    "org.gnome.SessionManager", /**< GNOME 2.26..3.4 */
++};
++
++const char m_dbusPath[][33] = {
++    "/ScreenSaver",
++    "/org/freedesktop/PowerManagement",
++    "/org/mate/SessionManager",
++    "/org/gnome/SessionManager",
++};
++
++// Service name is also the interface name in all cases
++
++const char m_dbusUnInhibit[][10] = {
++    "UnInhibit",
++    "UnInhibit",
++    "Uninhibit",
++    "Uninhibit",
++};
++
++class ScreenSaverDBusPrivate
++{
++    friend class    ScreenSaverDBus;
++
++  public:
++    ScreenSaverDBusPrivate(QString dbusService, QString dbusPath, QString dbusInterface, QDBusConnection *bus) :
++        m_inhibited(false),
++        m_cookie(0),
++        m_bus(bus),
++        m_interface(new QDBusInterface(dbusService, dbusPath , dbusInterface, *m_bus)),
++        m_unInhibit(""),
++        m_serviceUsed(dbusService)
++    {
++        if (!m_interface->isValid())
++        {
++            LOG(VB_GENERAL, LOG_WARNING, LOC + "Could not connect to dbus: " +
++                m_interface->lastError().message());
++        }
++        else
++        {
++            LOG(VB_GENERAL, LOG_INFO, LOC + "Created for DBus service: " + dbusService);
++        }
++    }
++    ~ScreenSaverDBusPrivate()
++    {
++        delete m_interface;
++    }
++    void Inhibit(void)
++    {
++        if (m_interface->isValid())
++        {
++            // method uint org.freedesktop.ScreenSaver.Inhibit(QString application_name, QString reason_for_inhibit)
++            QDBusMessage msg = m_interface->call(QDBus::Block, m_dbusInhibit , m_app, m_reason);
++            if (msg.type() == QDBusMessage::ReplyMessage)
++            {
++                QList<QVariant> replylist = msg.arguments();
++                QVariant reply = replylist.first();
++                m_cookie = reply.toUInt();
++                m_inhibited = true;
++                LOG(VB_GENERAL, LOG_INFO, LOC +
++                    QString("Successfully inhibited screensaver via %1. cookie %2. nom nom")
++                    .arg(m_serviceUsed).arg(m_cookie));
++            }
++            else // msg.type() == QDBusMessage::ErrorMessage
++            {
++                LOG(VB_GENERAL, LOG_WARNING, LOC + "Failed to disable screensaver: " +
++                    msg.errorMessage());
++            }
++        }
++    }
++    void UnInhibit(void)
++    {
++        if (m_interface->isValid())
++        {
++            // Don't block waiting for the reply, there isn't one
++            // method void org.freedesktop.ScreenSaver.UnInhibit(uint cookie) (or equivalent)
++            if (m_cookie != 0) {
++                m_interface->call(QDBus::NoBlock, m_unInhibit , m_cookie);
++                m_cookie = 0;
++                m_inhibited = false;
++                LOG(VB_GENERAL, LOG_INFO, LOC + QString("Screensaver uninhibited via %1")
++                    .arg(m_serviceUsed));
++            }
++        }
++    }
++    void SetUnInhibit(QString method) { m_unInhibit = method; }
++
++  protected:
++    bool            m_inhibited;
++    uint32_t        m_cookie;
++    QDBusConnection *m_bus;
++    QDBusInterface  *m_interface;
++  private:
++    QString         m_unInhibit;
++    QString         m_serviceUsed;
++};
++
++ScreenSaverDBus::ScreenSaverDBus() :
++    m_bus(QDBusConnection::sessionBus()),
++    d(NULL),
++    m_dbusPrivateInterfaces(QList<ScreenSaverDBusPrivate *>())
++{
++    // service, path, interface, bus - note that interface = service, hence it is used twice
++    for (uint i=0; i < NUM_DBUS_METHODS; i++) {
++        ScreenSaverDBusPrivate *ssdbp =
++            new ScreenSaverDBusPrivate(m_dbusService[i], m_dbusPath[i], m_dbusService[i], &m_bus);
++        ssdbp->SetUnInhibit(m_dbusUnInhibit[i]);
++        m_dbusPrivateInterfaces.push_back(ssdbp);
++    }
++}
++
++ScreenSaverDBus::~ScreenSaverDBus()
++{
++    ScreenSaverDBus::Restore();
++    while (!m_dbusPrivateInterfaces.isEmpty()) {
++        ScreenSaverDBusPrivate *ssdbp = m_dbusPrivateInterfaces.takeLast();
++        delete ssdbp;
++    }
++}
++
++void ScreenSaverDBus::Disable(void)
++{
++    QList<ScreenSaverDBusPrivate *>::iterator i;
++    for (i = m_dbusPrivateInterfaces.begin(); i != m_dbusPrivateInterfaces.end(); ++i) {
++        (*i)->Inhibit();
++    }
++}
++
++void ScreenSaverDBus::Restore(void)
++{
++    QList<ScreenSaverDBusPrivate *>::iterator i;
++    for (i = m_dbusPrivateInterfaces.begin(); i != m_dbusPrivateInterfaces.end(); ++i) {
++        (*i)->UnInhibit();
++    }
++}
++
++void ScreenSaverDBus::Reset(void)
++{
++    Restore();
++}
++
++bool ScreenSaverDBus::Asleep(void)
++{
++    QList<ScreenSaverDBusPrivate *>::iterator i;
++    for (i = m_dbusPrivateInterfaces.begin(); i != m_dbusPrivateInterfaces.end(); ++i) {
++        if((*i)->m_inhibited) {
++            return true;
++        }
++    }
++    return false;
++}
+diff --git a/mythtv/libs/libmythui/screensaver-dbus.h b/mythtv/libs/libmythui/screensaver-dbus.h
+new file mode 100644
+index 0000000..f22252b
+--- /dev/null
++++ b/mythtv/libs/libmythui/screensaver-dbus.h
+@@ -0,0 +1,25 @@
++#ifndef MYTH_SCREENSAVER_DBUS_H
++#define MYTH_SCREENSAVER_DBUS_H
++
++#include "screensaver.h"
++#include "QDBusConnection"
++
++class ScreenSaverDBus : public ScreenSaver
++{
++  public:
++    ScreenSaverDBus();
++    ~ScreenSaverDBus();
++
++    void Disable(void);
++    void Restore(void);
++    void Reset(void);
++
++    bool Asleep(void);
++  protected:
++    QDBusConnection m_bus;
++    class ScreenSaverDBusPrivate *d;
++    QList<ScreenSaverDBusPrivate *> m_dbusPrivateInterfaces;
++};
++
++#endif // MYTH_SCREENSAVER_DBUS_H
++
+diff --git a/mythtv/libs/libmythui/screensaver-null.h b/mythtv/libs/libmythui/screensaver-null.h
+index 60119dd..1267324 100644
+--- a/mythtv/libs/libmythui/screensaver-null.h
++++ b/mythtv/libs/libmythui/screensaver-null.h
+@@ -3,7 +3,7 @@
+ 
+ #include "screensaver.h"
+ 
+-class ScreenSaverNull : public ScreenSaverControl
++class ScreenSaverNull : public ScreenSaver
+ {
+ public:
+     ScreenSaverNull();
+diff --git a/mythtv/libs/libmythui/screensaver-osx.h b/mythtv/libs/libmythui/screensaver-osx.h
+index dae5622..69413a7 100644
+--- a/mythtv/libs/libmythui/screensaver-osx.h
++++ b/mythtv/libs/libmythui/screensaver-osx.h
+@@ -3,7 +3,7 @@
+ 
+ #include "screensaver.h"
+ 
+-class ScreenSaverOSX : public ScreenSaverControl
++class ScreenSaverOSX : public ScreenSaver
+ {
+ public:
+     ScreenSaverOSX();
+diff --git a/mythtv/libs/libmythui/screensaver-x11.h b/mythtv/libs/libmythui/screensaver-x11.h
+index 0fa7956..5945f9e 100644
+--- a/mythtv/libs/libmythui/screensaver-x11.h
++++ b/mythtv/libs/libmythui/screensaver-x11.h
+@@ -5,7 +5,7 @@
+ 
+ #include "screensaver.h"
+ 
+-class ScreenSaverX11 : public QObject, public ScreenSaverControl
++class ScreenSaverX11 : public QObject, public ScreenSaver
+ {
+     Q_OBJECT
+ 
+diff --git a/mythtv/libs/libmythui/screensaver.cpp b/mythtv/libs/libmythui/screensaver.cpp
+index a9e480a..de4d148 100644
+--- a/mythtv/libs/libmythui/screensaver.cpp
++++ b/mythtv/libs/libmythui/screensaver.cpp
+@@ -2,6 +2,10 @@
+ #include "screensaver.h"
+ #include "screensaver-null.h"
+ 
++#ifdef USING_DBUS
++#include "screensaver-dbus.h"
++#endif // USING_DBUS
++
+ #ifdef USING_X11
+ #include "screensaver-x11.h"
+ #endif // USING_X11
+@@ -13,21 +17,61 @@
+ QEvent::Type ScreenSaverEvent::kEventType =
+     (QEvent::Type) QEvent::registerEventType();
+ 
+-ScreenSaverControl* ScreenSaverSingleton = NULL;
+-
+-ScreenSaverControl* ScreenSaverControl::get(void)
++ScreenSaverControl::ScreenSaverControl() :
++    m_screenSavers(QList<ScreenSaver *>())
+ {
+-    if (!ScreenSaverSingleton)
+-    {
+-  
++    ScreenSaver * tmp;
++#if defined(USING_DBUS)
++    tmp = new ScreenSaverDBus();
++    m_screenSavers.push_back(tmp);
++#endif
+ #if defined(USING_X11)
+-        ScreenSaverSingleton = new ScreenSaverX11();
++    tmp = new ScreenSaverX11();
++    m_screenSavers.push_back(tmp);
+ #elif CONFIG_DARWIN
+-        ScreenSaverSingleton = new ScreenSaverOSX();
+-#else
+-        ScreenSaverSingleton = new ScreenSaverNull();
++    tmp = new ScreenSaverOSX();
++    m_screenSavers.push_back(tmp);
+ #endif
++#if not (defined(USING_DBUS) || defined(USING_X11) || CONFIG_DARWIN)
++    tmp = new ScreenSaverNull();
++    m_screenSavers.push_back(tmp);
++#endif
++}
++
++ScreenSaverControl::~ScreenSaverControl() {
++    while (!m_screenSavers.isEmpty()) {
++        ScreenSaver *tmp = m_screenSavers.takeLast();
++        delete tmp;
++    }
++}
++
++void ScreenSaverControl::Disable(void) {
++    QList<ScreenSaver *>::iterator i;
++    for (i = m_screenSavers.begin(); i != m_screenSavers.end(); ++i) {
++        (*i)->Disable();
++    }
++}
++
++void ScreenSaverControl::Restore(void) {
++    QList<ScreenSaver *>::iterator i;
++    for (i = m_screenSavers.begin(); i != m_screenSavers.end(); ++i) {
++        (*i)->Restore();
++    }
++}
++
++void ScreenSaverControl::Reset(void) {
++    QList<ScreenSaver *>::iterator i;
++    for (i = m_screenSavers.begin(); i != m_screenSavers.end(); ++i) {
++        (*i)->Reset();
++    }
++}
++
++bool ScreenSaverControl::Asleep(void) {
++    QList<ScreenSaver *>::iterator i;
++    for (i = m_screenSavers.begin(); i != m_screenSavers.end(); ++i) {
++        if((*i)->Asleep()) {
++            return true;
++        }
+     }
+-    
+-    return ScreenSaverSingleton;
++    return false;
+ }
+diff --git a/mythtv/libs/libmythui/screensaver.h b/mythtv/libs/libmythui/screensaver.h
+index 018ff06..0c45e16 100644
+--- a/mythtv/libs/libmythui/screensaver.h
++++ b/mythtv/libs/libmythui/screensaver.h
+@@ -2,6 +2,7 @@
+ #define MYTH_SCREENSAVER_H
+ 
+ #include <QEvent>
++#include <QList>
+ 
+ class ScreenSaverEvent : public QEvent
+ {
+@@ -24,20 +25,32 @@ protected:
+     ScreenSaverEventKind sset;
+ };
+ 
+-class ScreenSaverControl
++/// Base Class for screensavers
++class ScreenSaver
+ {
+   public:
+-    // creates one of the concrete subsclasses
+-    static ScreenSaverControl* get(void);
+-
+-    ScreenSaverControl() { };
+-    virtual ~ScreenSaverControl() { };
++    ScreenSaver() { };
++    virtual ~ScreenSaver() { };
+ 
+     virtual void Disable(void) = 0;
+     virtual void Restore(void) = 0;
+     virtual void Reset(void) = 0;
+-
+     virtual bool Asleep(void) = 0;
+ };
+ 
++/// Controls all instances of the screensaver
++class ScreenSaverControl
++{
++  public:
++    ScreenSaverControl();
++    ~ScreenSaverControl();
++
++    void Disable(void);
++    void Restore(void);
++    void Reset(void);
++    bool Asleep(void);
++  private:
++    QList<ScreenSaver *> m_screenSavers;
++};
++
+ #endif // MYTH_SCREENSAVER_H
 diff --git a/mythtv/programs/mythbackend/internetContent.cpp b/mythtv/programs/mythbackend/internetContent.cpp
 index 0701cc8..cbfa278 100644
 --- a/mythtv/programs/mythbackend/internetContent.cpp
@@ -255,6 +791,82 @@
      loop.exec();
  
      search->process();
+diff --git a/mythtv/programs/mythfilldatabase/main.cpp b/mythtv/programs/mythfilldatabase/main.cpp
+index d936e9b..e5f9874 100644
+--- a/mythtv/programs/mythfilldatabase/main.cpp
++++ b/mythtv/programs/mythfilldatabase/main.cpp
+@@ -607,10 +607,12 @@ int main(int argc, char *argv[])
+ 
+     LOG(VB_GENERAL, LOG_INFO, "Marking episode first showings.");
+     updt.prepare("UPDATE program "
+-                    "JOIN (SELECT MIN(starttime) AS starttime, programid "
+-                    "      FROM program "
+-                    "      WHERE programid <> '' "
+-                    "      GROUP BY programid "
++                    "JOIN (SELECT MIN(p.starttime) AS starttime, p.programid "
++                    "      FROM program p, channel c "
++                    "      WHERE p.programid <> '' "
++                    "            AND p.chanid = c.chanid "
++                    "            AND c.visible = 1 "
++                    "      GROUP BY p.programid "
+                     "     ) AS firsts "
+                     "ON program.programid = firsts.programid "
+                     "  AND program.starttime = firsts.starttime "
+@@ -620,11 +622,13 @@ int main(int argc, char *argv[])
+     found = updt.numRowsAffected();
+ 
+     updt.prepare("UPDATE program "
+-                    "JOIN (SELECT MIN(starttime) AS starttime, title, subtitle,"
+-                    "           LEFT(description, 1024) AS partdesc "
+-                    "      FROM program "
+-                    "      WHERE programid = '' "
+-                    "      GROUP BY title, subtitle, partdesc "
++                    "JOIN (SELECT MIN(p.starttime) AS starttime, p.title, p.subtitle, "
++                    "           LEFT(p.description, 1024) AS partdesc "
++                    "      FROM program p, channel c "
++                    "      WHERE p.programid = '' "
++                    "            AND p.chanid = c.chanid "
++                    "            AND c.visible = 1 "
++                    "      GROUP BY p.title, p.subtitle, partdesc "
+                     "     ) AS firsts "
+                     "ON program.starttime = firsts.starttime "
+                     "  AND program.title = firsts.title "
+@@ -639,10 +643,12 @@ int main(int argc, char *argv[])
+ 
+     LOG(VB_GENERAL, LOG_INFO, "Marking episode last showings.");
+     updt.prepare("UPDATE program "
+-                    "JOIN (SELECT MAX(starttime) AS starttime, programid "
+-                    "      FROM program "
+-                    "      WHERE programid <> '' "
+-                    "      GROUP BY programid "
++                    "JOIN (SELECT MAX(p.starttime) AS starttime, p.programid "
++                    "      FROM program p, channel c "
++                    "      WHERE p.programid <> '' "
++                    "            AND p.chanid = c.chanid "
++                    "            AND c.visible = 1 "
++                    "      GROUP BY p.programid "
+                     "     ) AS lasts "
+                     "ON program.programid = lasts.programid "
+                     "  AND program.starttime = lasts.starttime "
+@@ -652,11 +658,13 @@ int main(int argc, char *argv[])
+     found = updt.numRowsAffected();
+ 
+     updt.prepare("UPDATE program "
+-                    "JOIN (SELECT MAX(starttime) AS starttime, title, subtitle,"
+-                    "           LEFT(description, 1024) AS partdesc "
+-                    "      FROM program "
+-                    "      WHERE programid = '' "
+-                    "      GROUP BY title, subtitle, partdesc "
++                    "JOIN (SELECT MAX(p.starttime) AS starttime, p.title, p.subtitle, "
++                    "           LEFT(p.description, 1024) AS partdesc "
++                    "      FROM program p, channel c "
++                    "      WHERE p.programid = '' "
++                    "            AND p.chanid = c.chanid "
++                    "            AND c.visible = 1 "
++                    "      GROUP BY p.title, p.subtitle, partdesc "
+                     "     ) AS lasts "
+                     "ON program.starttime = lasts.starttime "
+                     "  AND program.title = lasts.title "
 diff --git a/mythtv/programs/scripts/internetcontent/nv_python_libs/common/common_api.py b/mythtv/programs/scripts/internetcontent/nv_python_libs/common/common_api.py
 index 643fcb1..0334124 100644
 --- a/mythtv/programs/scripts/internetcontent/nv_python_libs/common/common_api.py
@@ -370,7 +982,7 @@
 +                total.append(char)
 +        return "".join(total)
 diff --git a/mythtv/programs/scripts/internetcontent/nv_python_libs/youtube/youtube_api.py b/mythtv/programs/scripts/internetcontent/nv_python_libs/youtube/youtube_api.py
-index f6f967f..f8b3121 100644
+index f6f967f..62fde93 100644
 --- a/mythtv/programs/scripts/internetcontent/nv_python_libs/youtube/youtube_api.py
 +++ b/mythtv/programs/scripts/internetcontent/nv_python_libs/youtube/youtube_api.py
 @@ -19,7 +19,7 @@ meta data, video and image URLs from youtube. These routines are based on the ap
@@ -600,7 +1212,7 @@
 -            }
 +        # Read region code from user preferences, used by tree view
 +        region = self.userPrefs.find("region")
-+        if region != None:
++        if region != None and region.text:
 +            self.config['region'] = region.text
 +        else:
 +            self.config['region'] = u'us'


Index: mythtv.spec
===================================================================
RCS file: /cvs/free/rpms/mythtv/devel/mythtv.spec,v
retrieving revision 1.152
retrieving revision 1.153
diff -u -r1.152 -r1.153
--- mythtv.spec	21 Jul 2015 19:38:42 -0000	1.152
+++ mythtv.spec	2 Nov 2015 16:14:55 -0000	1.153
@@ -61,7 +61,7 @@
 %define desktop_vendor RPMFusion
 
 # MythTV Version string -- preferably the output from git describe
-%define vers_string v0.27.5-3-g9498257
+%define vers_string v0.27.5-28-g3682a9a
 %define branch fixes/0.27
 
 # Git revision and branch ID
@@ -82,7 +82,7 @@
 %if "%{branch}" == "master"
 Release:        0.1.git.%{_gitrev}%{?dist}
 %else
-Release:        1%{?dist}
+Release:        2%{?dist}
 %endif
 
 # The primary license is GPLv2+, but bits are borrowed from a number of
@@ -131,7 +131,7 @@
 ################################################################################
 
 # https://github.com/MythTV/mythtv/tarball/v0.26
-Source0:   %{name}-%{version}.tar.gz
+Source0:   https://github.com/MythTV/%{name}/archive/v%{version}.tar.gz#/%{name}-%{version}.tar.gz
 
 # From the mythtv git repository with the appropriate branch checked out:
 # git diff -p --stat v0.26.0 > mythtv-0.26-fixes.patch
@@ -795,7 +795,7 @@
 %prep
 %setup -q -n %{name}-%{version}
 
-# Replace static lib paths with %{_lib} so we build properly on x86_64
+# Replace static lib paths with %%{_lib} so we build properly on x86_64
 # systems, where the libs are actually in lib64.
     if [ "%{_lib}" != "lib" ]; then
          find \( -name 'configure' -o -name '*pro' -o -name 'Makefile' \) -exec sed -r -i -e 's,/lib\b,/%{_lib},g' {} \+
@@ -820,7 +820,7 @@
 BRANCH=%{branch}
 EOF
 
-# Drop execute permissions on contrib bits, since they'll be %doc
+# Drop execute permissions on contrib bits, since they'll be %%doc
     find contrib/ -type f -exec chmod -x "{}" \;
 # And drop execute bit on theme html files
     chmod -x themes/default/htmls/*.html
@@ -877,10 +877,10 @@
     --enable-vdpau                              \
 %endif
 %if %{with_vaapi}
-    --enable-vaapi				\
+    --enable-vaapi                              \
 %endif
 %if !%{with_crystalhd}
-    --disable-crystalhd				\
+    --disable-crystalhd                         \
 %endif
 %if !%{with_perl}
     --without-bindings=perl                     \
@@ -1022,9 +1022,6 @@
     mkdir -p %{buildroot}%{_sysconfdir}/mythtv
 
 
-# Fix permissions on executable python bindings
-#    chmod +x %{buildroot}%{python_sitelib}/MythTV/Myth*.py
-
 # config/init files
     echo "# to be filled in by mythtv-setup" > %{buildroot}%{_sysconfdir}/mythtv/config.xml
 
@@ -1093,7 +1090,6 @@
 %if %{with_mythgame}
     mkdir -p %{buildroot}%{_datadir}/mythtv/games/nes/{roms,screens}
     mkdir -p %{buildroot}%{_datadir}/mythtv/games/snes/{roms,screens}
-#   mkdir -p %{buildroot}%{_datadir}/mythtv/games/mame/{roms,screens,flyers,cabs}
     mkdir -p %{buildroot}%{_datadir}/mythtv/games/PC/screens
     mkdir -p %{buildroot}%{_datadir}/mame
     ln -s ../../mame %{buildroot}%{_datadir}/mythtv/games/xmame
@@ -1193,8 +1189,8 @@
 %doc mythtv/FAQ
 %doc mythtv/database mythtv/keys.txt
 # Do we really need the API documentation?
-#%doc mythtv/docs/*.html mythtv/docs/*.png
-#%doc mythtv/docs/*.txt
+#%%doc mythtv/docs/*.html mythtv/docs/*.png
+#%%doc mythtv/docs/*.txt
 %doc mythtv/contrib
 
 %files common
@@ -1220,7 +1216,7 @@
 %{_bindir}/mythmediaserver
 %{_bindir}/mythreplex
 %{_bindir}/mythhdhomerun_config
-%{_bindir}/mythdb_optimize
+%{_bindir}/optimize_mythdb
 %{_datadir}/mythtv/MXML_scpd.xml
 %{_datadir}/mythtv/backend-config/
 %attr(-,mythtv,mythtv) %dir %{_localstatedir}/lib/mythtv
@@ -1297,8 +1293,6 @@
 %{perl_vendorlib}/MythTV.pm
 %dir %{perl_vendorlib}/MythTV
 %{perl_vendorlib}/MythTV/*.pm
-#%dir %{perl_vendorlib}/IO/Socket
-#%dir %{perl_vendorlib}/IO/Socket/INET
 %{perl_vendorlib}/IO/Socket/INET/MythTV.pm
 %exclude %{perl_vendorarch}/auto/MythTV/.packlist
 %endif


More information about the rpmfusion-commits mailing list