<pre style='margin:0'>
Craig Treleaven (ctreleaven) pushed a commit to branch master
in repository macports-ports.

</pre>
<p><a href="https://github.com/macports/macports-ports/commit/14829fec8a6e4d888910197a0f47fff10b17032f">https://github.com/macports/macports-ports/commit/14829fec8a6e4d888910197a0f47fff10b17032f</a></p>
<pre style="white-space: pre; background: #F8F8F8"><span style='display:block; white-space:pre;color:#808000;'>commit 14829fec8a6e4d888910197a0f47fff10b17032f
</span>Author: Craig Treleaven <ctreleaven@macports.org>
AuthorDate: Fri Nov 17 15:31:16 2017 -0500

<span style='display:block; white-space:pre;color:#404040;'>    mythtv-core.25: obsolete
</span>---
 .../files/Myth_Filldatabase.applescript            |  47 ----
 .../mythtv-core.25/files/Myth_Frontend.applescript |  37 ---
 .../files/Myth_Frontend_Logging.applescript        |  59 -----
 .../mythtv-core.25/files/Myth_Setup.applescript    |  48 ----
 .../files/Myth_Stop_Start.applescript              |  82 ------
 multimedia/mythtv-core.25/files/logrotate.mythtv   |  49 ----
 .../files/org.mythtv.mythbackend.plist             |  31 ---
 .../patch-bindings-python-mythtv-utility.diff      | 294 ---------------------
 .../files/patch-bonjour-correction.diff            |  32 ---
 .../mythtv-core.25/files/patch-clang_compat.diff   |  56 ----
 .../mythtv-core.25/files/patch-greedyh.asm.diff    |  19 --
 ...htv-libs-libmythtv-NuppelVideoRecorder.cpp.diff |  24 --
 ...h-mythtv-libs-libmythtv-avformatwriter.cpp.diff |  23 --
 ...otect-metadata-loads-from-multiple-threads.diff |  52 ----
 ...re-fe-netcontrol-play-resume-functionality.diff |  27 --
 .../mythtv-core.25/files/patch-util-osx-objC.diff  |  33 ---
 16 files changed, 913 deletions(-)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/multimedia/mythtv-core.25/files/Myth_Filldatabase.applescript b/multimedia/mythtv-core.25/files/Myth_Filldatabase.applescript
</span>deleted file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index d324354..0000000
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/multimedia/mythtv-core.25/files/Myth_Filldatabase.applescript
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,47 +0,0 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-(*  Applescript to run 'Unix' version of mythfilldatabase
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-For use with MacPorts install of Myth
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Author:  Craig Treleaven, ctreleaven at cogeco.ca
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Myth Version: 0.25.0
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Modified: 2012May17
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-*)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-property MFDappPath : "@PREFIX@/bin/mythfilldatabase"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-property MFDlogArg : "--logpath @MYTHTVLOGDIR@"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-property MFDlogLevel : "warning" -- single string
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-property MFDverboseLevel : {"general"} -- a list, can be multiple strings
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-set welcome to "In a 'production' system, mythfilldatabase is run automatically by mythbackend at the times suggested by the listings source, usually daily.  
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- This applescript program allows you to run mythfilldatabase 'manually'; perhaps when Myth is first set up or if there are problems with the automatic runs. 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-try
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   set Clicked to display dialog welcome with title "Run mythfilldatabase" buttons {"Cancel", "Options", "Start Run"} default button "Start Run"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-on error
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   set Clicked to false
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-end try
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-set CmdList to {MFDappPath, MFDlogArg, "--loglevel " & MFDlogLevel, "--verbose " & joinlist(MFDverboseLevel, ",")}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-set Cmd to (joinlist(CmdList, " "))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---display alert button returned of Clicked
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-if Clicked is not false then
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   if button returned of Clicked = "Start Run" then
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-           do shell script Cmd -- run it!
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   else if button returned of Clicked = "Options" then
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-           display alert "Options"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-           -- let user select verbose and loglevel options
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   end if
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-end if
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- -- -- -- -- -- -- -- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- Handlers
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-to joinlist(aList, delimiter)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   set retVal to ""
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   set prevDelimiter to AppleScript's text item delimiters
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   set AppleScript's text item delimiters to delimiter
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   set retVal to aList as string
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   set AppleScript's text item delimiters to prevDelimiter
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   return retVal
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-end joinlist
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/multimedia/mythtv-core.25/files/Myth_Frontend.applescript b/multimedia/mythtv-core.25/files/Myth_Frontend.applescript
</span>deleted file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 5085154..0000000
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/multimedia/mythtv-core.25/files/Myth_Frontend.applescript
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,37 +0,0 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-(*  Applescript to run 'Unix' version of mythfronted
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-For use with MacPorts install of Myth
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Author:  Craig Treleaven, ctreleaven at cogeco.ca
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Version: 0.25.0
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Modified: 2012May15
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-          2012Nov20 -- handle 'thread not shut down error' on exit, add --quiet to prevent 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            console output from being returned to AppleScript, allow experimental AirPlay
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-*)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-property MFEappPath : "@PREFIX@/bin/mythfrontend"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-property MFElogArg : "--logpath @MYTHTVLOGDIR@"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-property MFElogLevel : "info" -- single string
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-property MFEverboseLevel : {"none", "general"} -- a list, can be multiple strings
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-set CmdList to {"AIRPLAY=\"1\"", MFEappPath, MFElogArg, "--loglevel " & MFElogLevel, "--verbose " & joinlist(MFEverboseLevel, ","), "--quiet"}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-set Cmd to (joinlist(CmdList, " "))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-try
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   do shell script Cmd 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-on error the error_message number the error_number
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   if the error_number is not 133 then
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-           set the error_text to "Error: " & the error_number & ". " & the error_message
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-           display dialog the error_text buttons {"OK"} default button 1
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-           return the error_text
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   end if
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-end try
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- -- -- -- -- -- -- -- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- Handlers
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-to joinlist(aList, delimiter)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   set retVal to ""
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   set prevDelimiter to AppleScript's text item delimiters
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   set AppleScript's text item delimiters to delimiter
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   set retVal to aList as string
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   set AppleScript's text item delimiters to prevDelimiter
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   return retVal
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-end joinlist
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/multimedia/mythtv-core.25/files/Myth_Frontend_Logging.applescript b/multimedia/mythtv-core.25/files/Myth_Frontend_Logging.applescript
</span>deleted file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index d1141f1..0000000
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/multimedia/mythtv-core.25/files/Myth_Frontend_Logging.applescript
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,59 +0,0 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-(*  Applescript to select verbosity level of Myth Frontend
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-For use with MacPorts install of Myth
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Author:  Craig Treleaven, ctreleaven at cogeco.ca
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Myth Version: 0.25.2
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Modified: 2012MAug10 - script path in compiled app
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-*)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-set MFEscriptPath to "@APPLICATIONS_DIR@/MythTV/Myth_Frontend.app/Contents/Resources/Scripts/main.scpt"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-set MFEscript to load script MFEscriptPath
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---display dialog (MFEverboseLevel of MFEscript)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-set verbose_list to {"none", "all", "most", "audio", "channel", "database", "decode", "file", "frame", "general", "gpuvideo", "gui", "libav", "network", "osd", "playback", "process", "schedule", "system", "timestamp", "upnp", "vbi"}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-set level_list to {"emerg", "alert", "crit", "err", "warning", "notice", "info", "debug"}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---special: all, most
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-set verbose_selected to choose from list verbose_list with title "Verbose setting" with prompt "Choose one or more areas for focused logging.  General is the default" default items "general" with multiple selections allowed
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-if (count of verbose_selected) > 1 then
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   if verbose_selected contains "all" then
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-           set verbose_selected to {"all"}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   else if verbose_selected contains "most" then
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-           set verbose_selected to {"most"}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   end if
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-end if
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-if verbose_selected is not false then
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   set (MFEverboseLevel of MFEscript) to verbose_selected
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   store script MFEscript in POSIX file MFEscriptPath with replacing
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-end if
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-set level_selected to choose from list level_list with title "Logging depth" with prompt "choose how extensively to log.  Info is the Myth default; I find warning adequate." default items "warning" without multiple selections allowed
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-if level_selected is not false then
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   set (MFElogLevel of MFEscript) to level_selected
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   store script MFEscript in POSIX file MFEscriptPath with replacing
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-end if
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-set theParams to "--verbose " & joinlist(verbose_selected, ",") & " --loglevel " & level_selected
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-display dialog ("From now on, Myth_Fontend will start the frontend using: " & theParams)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- -- -- -- -- -- -- -- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- Handlers
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-to joinlist(aList, delimiter)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   set retVal to ""
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   set prevDelimiter to AppleScript's text item delimiters
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   set AppleScript's text item delimiters to delimiter
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   set retVal to aList as string
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   set AppleScript's text item delimiters to prevDelimiter
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   return retVal
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-end joinlist
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-(*
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Log levels
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-"emerg", "alert", "crit", "err", "warning", "notice", "info", "debug"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-defaults to info
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Full list of verbose options
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-{"none", "all", "most", "audio", "channel", "chanscan", "commflag", "database", "decode", "dsmcc", "dvbcam", "eit", "file", "frame", "general", "gpu", "gpuaudio", "gpuvideo", "gui", "idle", "jobqueue", "libav", "media", "mheg", "network", "osd", "playback", "process", "record", "refcount", "rplxqueue", "schedule", "siparser", "socket", "system", "timestamp", "upnp", "vbi", "xmltv"}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-*)
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/multimedia/mythtv-core.25/files/Myth_Setup.applescript b/multimedia/mythtv-core.25/files/Myth_Setup.applescript
</span>deleted file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 4f255eb..0000000
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/multimedia/mythtv-core.25/files/Myth_Setup.applescript
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,48 +0,0 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-(*  Applescript to run 'Unix' version of mythtv-setup
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-For use with MacPorts install of Myth
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Author:  Craig Treleaven, ctreleaven at cogeco.ca
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Myth Version: 0.25.0
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Modified: 2012May17
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-          2012Sep08 Force working themepainter
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-*)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-property MSUappPath : "@PREFIX@/bin/mythtv-setup"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-property MSUlogArg : "-O ThemePainter=qt --logpath @MYTHTVLOGDIR@"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-property MSUlogLevel : "info" -- single string
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-property MSUverboseLevel : {"general"} -- a list, can be multiple strings
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-set welcome to "Initial setup of Myth is done through the mythtv-setup program.  
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-This includes defining where recordings and other media are stored, tuners and sources of listings data and scanning for available channels, etc.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---Should test if mythbackend is running and warn user...
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-try
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   set Clicked to display dialog welcome with title ¬
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-           "Run mythtv-setup" buttons {"Cancel", "Start"} default button "Start"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-on error
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   set Clicked to false
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-end try
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-set CmdList to {MSUappPath, MSUlogArg, "--loglevel " & MSUlogLevel, "--verbose " & joinlist(MSUverboseLevel, ",")}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-set Cmd to (joinlist(CmdList, " "))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---display alert button returned of Clicked
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-if Clicked is not false then
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   if button returned of Clicked = "Start" then
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-           --display alert Cmd
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-           do shell script Cmd -- run it!
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   end if
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-end if
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- -- -- -- -- -- -- -- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- Handlers
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-to joinlist(aList, delimiter)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   set retVal to ""
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   set prevDelimiter to AppleScript's text item delimiters
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   set AppleScript's text item delimiters to delimiter
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   set retVal to aList as string
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   set AppleScript's text item delimiters to prevDelimiter
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   return retVal
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-end joinlist
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/multimedia/mythtv-core.25/files/Myth_Stop_Start.applescript b/multimedia/mythtv-core.25/files/Myth_Stop_Start.applescript
</span>deleted file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 549b2ab..0000000
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/multimedia/mythtv-core.25/files/Myth_Stop_Start.applescript
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,82 +0,0 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-(*  Applescript to stop/start Myth background apps
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-For use with MacPorts install of Myth
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Author:  Craig Treleaven, ctreleaven at cogeco.ca
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Version: 0.25.2
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Modified: 2012Jul11 - new
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-           2012Sep21 - log rotation
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-NB - if mbe is running, we only stop it if it was launched under launchd
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-*)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-set mysqld to " not running on this machine.  Is it on another machine on your network?"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-set rotatorStatus to ""
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-set logrotButton to ""
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-set mythbackend to ""
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-set mythbackendButton to "Donno"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-set newline to "
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-set indent to space & space & space & space
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-set myResult to ""
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-repeat until (myResult contains "Close")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   if (do shell script "sudo launchctl list" with administrator privileges) contains ".logrotate" then
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-           set rotatorStatus to "runs daily"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-           set logrotButton to "Disable log rotation"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   else
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-           set rotatorStatus to "is not scheduled"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-           set logrotButton to "Schedule log rotation"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   end if
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   set processes to do shell script "ps -Ac"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   if the processes contains "mysqld" then
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-           set mysqld to " running."
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   end if
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   if the processes contains "mythbackend" then
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-           set mythbackend to " running."
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-           set mythbackendButton to "Stop MythBackend"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-           try
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                   do shell script "mythshutdown --check"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-           on error
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                   set mythbackend to " running but busy with something.  Are you sure you want to shut down now?"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-           end try
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   else
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-           set mythbackend to " not running."
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-           set mythbackendButton to "Start MythBackend"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   end if
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   set myResult to display dialog newline & "Simple tool to start and stop Myth's background processes" & �
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-           newline & newline & newline & "Currently... " & �
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-           newline & newline & indent & "Log rotation " & rotatorStatus & �
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-           newline & newline & indent & "MySQL is" & mysqld & �
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-           newline & newline & indent & "MythBackend is" & mythbackend & newline & newline �
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-           with icon note with title �
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-           "Stop/Start Myth-related programs" buttons {logrotButton, mythbackendButton, "Close"} �
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-           default button "Close" -- cancel button "Close" 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   set myResult to button returned of myResult
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   if myResult contains "Start MythBackend" then
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-           do shell script "sudo launchctl load -w /Library/LaunchDaemons/org.mythtv.mythbackend.plist" with administrator privileges
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   else if myResult contains "Stop MythBackend" then
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-           if ((do shell script "sudo launchctl list" with administrator privileges) contains "mythbackend") then
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                   do shell script "sudo launchctl unload -w /Library/LaunchDaemons/org.mythtv.mythbackend.plist" with administrator privileges
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                   -- there is a longish delay while myth closes down.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-           else
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                   display alert " MythBackend appears not to have been started in the normal fashion.  Unable to shut down." message "Was mythbackend started directly from a command line session?" as warning
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-           end if
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-           set myResult to "Close"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   else if myResult contains "Schedule log rotation" then
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-           --check for existence of 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-           if (FileExists("@PREFIX@/etc/logrotate.conf") and �
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                   FileExists("@PREFIX@/etc/logrotate.d/logrotate.mythtv")) then
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                   do shell script "sudo launchctl load -w /Library/LaunchDaemons/org.macports.logrotate.plist" with administrator privileges
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-           else
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                   display dialog "logrotate is not configured.  Please see http://www.mythtv.org/wiki/MacPorts for instructions." buttons {"Close"}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                   set myResult to "Close"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-           end if
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   else if myResult contains "Disable log rotation" then
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-           do shell script "sudo launchctl unload -w /Library/LaunchDaemons/org.macports.logrotate.plist" with administrator privileges
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   end if
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-end repeat
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-on FileExists(theFile) -- (String) as Boolean
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   tell application "System Events" to return (exists file theFile)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-end FileExists
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/multimedia/mythtv-core.25/files/logrotate.mythtv b/multimedia/mythtv-core.25/files/logrotate.mythtv
</span>deleted file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index a1c7309..0000000
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/multimedia/mythtv-core.25/files/logrotate.mythtv
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,49 +0,0 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# ${prefix}/etc/logrotate.d/logrotate.mythtv
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# 2012Sep20 Craig Treleaven
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# MacPorts logrotate port -- set up for MythTV
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# based on http://www.mythtv.org/wiki/Logrotate_-_all_applications
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# Common settings
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-su root admin
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-missingok
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-ifempty
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-nocreate
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-nocompress
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-sharedscripts
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-olddir @MYTHTVLOGDIR@/old
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# programs that may run for extended periods
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@MYTHTVLOGDIR@/mythbackend*.log @MYTHTVLOGDIR@/mythfrontend*.log @MYTHTVLOGDIR@/mythjobqueue*.log @MYTHTVLOGDIR@/mythwelcome*.log @MYTHTVLOGDIR@/mythmediaserver*.log @MYTHTVLOGDIR@/mythlcdserver*.log {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        weekly
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        rotate 8
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        lastaction
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                killall -HUP mythbackend
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                killall -HUP mythfrontend
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                killall -HUP mythjobqueue
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                killall -HUP mythwelcome
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                killall -HUP mythmediaserver
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                killall -HUP mythlcdserver
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                find @MYTHTVLOGDIR@ -type f -mtime +20 -delete
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                find @MYTHTVLOGDIR@/old -type f -mtime +30 -delete
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        endscript
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# tranient programs
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# these won't be running and writing to a log that needs rotating
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@MYTHTVLOGDIR@/mythfilldatabase*.log @MYTHTVLOGDIR@/mythcommflag*.log @MYTHTVLOGDIR@/mythmetadatalookup*.log @MYTHTVLOGDIR@/mythtranscode*.log @MYTHTVLOGDIR@/mythtv-setup*.log @MYTHTVLOGDIR@/mythutil*.log {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        weekly
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        rotate 0
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# VERY transient
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# many, many previews
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@MYTHTVLOGDIR@/mythpreviewgen*.log {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        daily
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        rotate 0
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        lastaction
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                find @MYTHTVLOGDIR@ -name 'mythpreviewgen*' -type f -mtime +6 -delete
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                find @MYTHTVLOGDIR@/old -name 'mythpreviewgen*' -type f -mtime +6 -delete
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        endscript
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/multimedia/mythtv-core.25/files/org.mythtv.mythbackend.plist b/multimedia/mythtv-core.25/files/org.mythtv.mythbackend.plist
</span>deleted file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index ea1b647..0000000
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/multimedia/mythtv-core.25/files/org.mythtv.mythbackend.plist
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,31 +0,0 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-<?xml version="1.0" encoding="UTF-8"?>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-<plist version="1.0">
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-<dict>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    <key>EnvironmentVariables</key>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    <dict>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        <key>HOME</key>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        <string>@PREFIX@/var/mythtvuser</string>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        <key>PATH</key>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        <string>@PREFIX@/bin:@PREFIX@/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin</string>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        <key>PYTHONPATH</key>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        <string>@PREFIX@/lib/@PYTHONVER@/site-packages:$PYTHONPATH</string>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    </dict>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    <key>KeepAlive</key>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    <true/>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    <key>Label</key>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    <string>@PLISTLABEL@</string>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    <key>ProgramArguments</key>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    <array>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        <string>@PREFIX@/bin/mythbackend</string>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        <string>--logpath</string>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        <string>@MYTHTVLOGDIR@</string>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        <string>--pidfile</string>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        <string>@MYTHTVPIDFILE@</string>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        <string>--loglevel</string>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        <string>info</string>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    </array>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    <key>RunAtLoad</key>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    <true/>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-</dict>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-</plist>
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/multimedia/mythtv-core.25/files/patch-bindings-python-mythtv-utility.diff b/multimedia/mythtv-core.25/files/patch-bindings-python-mythtv-utility.diff
</span>deleted file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index e1e406d..0000000
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/multimedia/mythtv-core.25/files/patch-bindings-python-mythtv-utility.diff
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,294 +0,0 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- mythtv/bindings/python/MythTV/utility.py.orig   2012-05-21 07:35:19.000000000 -0400
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ mythtv/bindings/python/MythTV/utility.py    2012-05-21 07:33:57.000000000 -0400
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1,11 +1,11 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # -*- coding: utf-8 -*-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- """Provides decorator classes for assorted functions"""
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--from logging import MythLog
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--from exceptions import MythDBError, MythError
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+from MythTV.logging import MythLog
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+from MythTV.exceptions import MythDBError, MythError
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- from cStringIO import StringIO
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--from select import select, poll, POLLHUP, POLLIN, POLLOUT
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+from select import select
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- from time import time, mktime, sleep
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- from datetime import datetime as _pydatetime
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- from datetime import tzinfo as _pytzinfo
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -927,66 +927,8 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     except socket.error:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         return False
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--class DequeBuffer( object ):
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    """
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    This is a chunked buffer, storing a sequence of buffer objects in a
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    deque, allowing for FIFO operations outside the limited 64K system
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    buffer, and the efficient freeing of memory without needing to rewrite
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    a large contiguous buffer object.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    """
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    class _Buffer( object ):
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--        """
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--        This subclass contains a buffer object and a read/write lock, as
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--        well as independent read and write positions.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--        """
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--        __slots__ = ['buffer', 'lock', 'blocksize', 'EOF', 'rpos', 'wpos']
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--        def __init__(self, size=2**18):
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--            self.buffer = StringIO()
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--            self.lock = Lock()
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--            self.blocksize = size
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--            self.EOF = False
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--            self.rpos = 0
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--            self.wpos = 0
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--        def __del__(self):
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--            self.buffer.close()
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--        def read(self, nbytes):
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--            with self.lock:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--                self.buffer.seek(self.rpos)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--                buff = self.buffer.read(nbytes)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--                self.rpos = self.buffer.tell()
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--                if self.rpos == self.blocksize:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--                    self.EOF = True
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--                return buff
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--        def write(self, data):
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--            with self.lock:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--                nbytes = self.blocksize-self.wpos
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--                if nbytes < len(data):
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--                    data = data[:nbytes]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--                else:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--                    nbytes = len(data)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--                self.buffer.seek(self.wpos)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--                self.buffer.write(data)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--                self.wpos += nbytes
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--            return nbytes
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--        def rollback(self, nbytes):
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--            with self.lock:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--                self.EOF = False
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--                if self.rpos < nbytes:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--                    nbytes -= self.rpos
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--                    self.rpos = 0
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--                    return nbytes
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--                else:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--                    self.rpos -= nbytes
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--                    return 0
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--        def close(self):
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--            with self.lock:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--                self.buffer.close()
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+try:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    from select import poll, POLLHUP, POLLIN, POLLOUT
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     class _PollingThread( Thread ):
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         """
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         This polling thread listens on selected pipes, and automatically reads
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -998,13 +940,14 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                            args=(), kwargs={}):
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-             self.inputqueue = Queue()
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-             self.idletime = time()
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--            super(DequeBuffer._PollingThread, self).__init__(group,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            super(_PollingThread, self).__init__(group,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                         target, name, args, kwargs)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         def add_pipe(self, buff, pipe, mode):
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-             self.inputqueue.put((buff, pipe, mode))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         def run(self):
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-             poller = poll()
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-             fds = {}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            events = []
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-             while True:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                 while not self.inputqueue.empty():
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                     # loop though the queue and add new pipes to the
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1055,6 +998,141 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                     sleep(0.1)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                 else:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                     self.idletime = time()
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+except ImportError:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    from select import kqueue, kevent, KQ_FILTER_READ, KQ_FILTER_WRITE, \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                         KQ_EV_ADD, KQ_EV_DELETE, KQ_EV_EOF
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    class _PollingThread( Thread ):
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        """
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        This polling thread listens on selected pipes, and automatically reads
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        and writes data between the buffer and those pipes. This will self
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        terminate when there are no more pipes defined, and will need to be
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        restarted.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        """
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        def __init__(self, group=None, target=None, name=None,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                           args=(), kwargs={}):
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            self.inputqueue = Queue()
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            self.idletime = time()
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            super(_PollingThread, self).__init__(group,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                        target, name, args, kwargs)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        def add_pipe(self, buff, pipe, mode):
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            self.inputqueue.put((buff, pipe, mode))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        def run(self):
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            poller = kqueue()
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            fds = {}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            events = []
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            while True:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                while not self.inputqueue.empty():
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                    # loop through the queue and gather new pipes to add the
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                    # kernel queue
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                    buff, pipe, mode = self.inputqueue.get()
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                    if 'r' in mode:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                        events.append(kevent(pipe, KQ_FILTER_READ, KQ_EV_ADD))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                    elif 'w' in mode:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                        events.append(kevent(pipe, KQ_FILTER_WRITE, KQ_EV_ADD))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                    else:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                        continue
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                    fds[pipe.fileno()] = (weakref.ref(buff), pipe)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                if len(events) == 0:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                    events = None
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                events = poller.control(events, 16, 0.1)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                for i in range(len(events)):
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                    # loop through response and handle events
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                    event = events.pop()
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                    buff, pipe = fds[event.ident]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                    if buff() is None:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                        # buffer object has closed out from underneath us
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                        # pipe will be automatically removed from kqueue
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                        pipe.close()
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                        del fds[event.ident]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                        continue
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                    if (abs(event.filter) & abs(KQ_FILTER_READ)) and event.data:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                        # new data has come in, push into the buffer
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                        buff().write(pipe.read(event.data))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                    if (abs(event.filter) & abs(KQ_FILTER_WRITE)) and event.data:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                        # space is available to write data
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                        pipe.write(buff().read(\
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                                    min(buff()._nbytes, event.data, 2**16)))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                    if abs(event.flags) & abs(KQ_EV_EOF):
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                        # pipe has been closed and all IO has been processed
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                        # pipe will be automatically removed from kqueue
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                        buff().close()
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                        pipe.close()
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                        del fds[event.ident]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                if len(fds) == 0:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                    # no pipes referenced
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                    if self.idletime + 20 < time():
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                        # idle timeout reached, terminate
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                        break
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                    sleep(0.1)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                else:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                    self.idletime = time()
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+class DequeBuffer( object ):
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    """
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    This is a chunked buffer, storing a sequence of buffer objects in a
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    deque, allowing for FIFO operations outside the limited 64K system
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    buffer, and the efficient freeing of memory without needing to rewrite
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    a large contiguous buffer object.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    """
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    class _Buffer( object ):
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        """
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        This subclass contains a buffer object and a read/write lock, as
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        well as independent read and write positions.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        """
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        __slots__ = ['buffer', 'lock', 'blocksize', 'EOF', 'rpos', 'wpos']
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        def __init__(self, size=2**18):
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            self.buffer = StringIO()
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            self.lock = Lock()
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            self.blocksize = size
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            self.EOF = False
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            self.rpos = 0
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            self.wpos = 0
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        def __del__(self):
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            self.buffer.close()
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        def read(self, nbytes):
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            with self.lock:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                self.buffer.seek(self.rpos)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                buff = self.buffer.read(nbytes)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                self.rpos = self.buffer.tell()
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                if self.rpos == self.blocksize:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                    self.EOF = True
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                return buff
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        def write(self, data):
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            with self.lock:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                nbytes = self.blocksize-self.wpos
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                if nbytes < len(data):
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                    data = data[:nbytes]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                else:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                    nbytes = len(data)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                self.buffer.seek(self.wpos)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                self.buffer.write(data)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                self.wpos += nbytes
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            return nbytes
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        def rollback(self, nbytes):
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            with self.lock:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                self.EOF = False
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                if self.rpos < nbytes:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                    nbytes -= self.rpos
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                    self.rpos = 0
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                    return nbytes
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                else:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                    self.rpos -= nbytes
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                    return 0
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        def close(self):
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            with self.lock:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                self.buffer.close()
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     _pollingthread = None
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1102,7 +1180,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-             else:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                 # end of data or request reached, return
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                 break
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--        self._nbytes += data.tell()
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        self._nbytes -= data.tell()
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         return data.getvalue()
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     def write(self, data):
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1187,9 +1265,39 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         if (cls._pollingthread is None) or not cls._pollingthread.isAlive():
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-             # create new thread, and set it to not block shutdown
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--            cls._pollingthread = cls._PollingThread()
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            cls._pollingthread = _PollingThread()
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-             cls._pollingthread.daemon = True
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-             cls._pollingthread.start()
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         cls._pollingthread.add_pipe(buffer, pipe, mode)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+class QuickProperty( object ):
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    def __init__(self, maskedvar, default=None, handler=None):
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        self.varname = maskedvar
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        self.default = default
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        if handler is None:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            handler = lambda x: x
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        self.handler = handler
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    def __get__(self, inst, owner):
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        if inst is None:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            return self
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        if hasattr(inst, self.varname):
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            return getattr(inst, self.varname)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        return self.default
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    def __set__(self, inst, value):
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        try:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            value = self.handler(value)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        except:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            pass
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        else:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            setattr(inst, self.varname, value)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    def __call__(self, handler):
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        self.handler = handler
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        return self
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    def isDefault(self, inst):
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        if hasattr(inst, self.varname):
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            return False
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        return True
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/multimedia/mythtv-core.25/files/patch-bonjour-correction.diff b/multimedia/mythtv-core.25/files/patch-bonjour-correction.diff
</span>deleted file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 9ccca55..0000000
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/multimedia/mythtv-core.25/files/patch-bonjour-correction.diff
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,32 +0,0 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-From 8929314e77dfc5fe9bcc58f4ace4e7ba6fea9bef Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-From: George Nassas <george@nassas.com>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Date: Tue, 29 May 2012 10:11:38 -0400
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Subject: [PATCH] make backend's bonjour service name dns-compliant
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>----
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- mythtv/programs/mythbackend/mediaserver.cpp |    7 ++-----
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 1 files changed, 2 insertions(+), 5 deletions(-)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git a/mythtv/programs/mythbackend/mediaserver.cpp b/mythtv/programs/mythbackend/mediaserver.cpp
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index 043140d..19d0eb9 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- mythtv/programs/mythbackend/mediaserver.cpp
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ mythtv/programs/mythbackend/mediaserver.cpp
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -256,13 +256,10 @@ void MediaServer::Init(bool bIsMaster, bool bDisableUPnp /* = false */)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         m_bonjour = new BonjourRegister();
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         if (m_bonjour)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--            QByteArray dummy;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-             QByteArray name("Mythbackend on ");
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-             name.append(gCoreContext->GetHostName());
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--            m_bonjour->Register(nPort,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--                                bIsMaster ? "_mythbackend-master._tcp" :
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--                                            "_mythbackend-slave._tcp",
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--                                name, dummy);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            QByteArray txt(bIsMaster ? "\x0Clevel=master" : "\x0Blevel=slave");
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            m_bonjour->Register(nPort, "_mythbackend._tcp", name, txt);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #endif
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-1.7.2.5
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/multimedia/mythtv-core.25/files/patch-clang_compat.diff b/multimedia/mythtv-core.25/files/patch-clang_compat.diff
</span>deleted file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 310f5e0..0000000
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/multimedia/mythtv-core.25/files/patch-clang_compat.diff
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,56 +0,0 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-From bcd7344c533bd0b4cf0b2ecaf82b570202bebccc Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-From: Amar Takhar <verm@darkbeer.org>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Date: Wed, 15 Jan 2014 21:44:48 +0000
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Subject: [PATCH] Fixes for FreeBSD 10.0 + clang.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>----
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- mythtv/libs/libmyth/remoteutil.h                 | 2 ++
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- mythtv/libs/libmythbase/mythmiscutil.h           | 1 +
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- mythtv/libs/libmythbase/mythsystemlegacy.h       | 1 +
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- mythtv/libs/libmythbase/mythtimer.cpp            | 2 ++
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- mythtv/libs/libmythbase/mythtimezone.cpp         | 1 +
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- mythtv/libs/libmythtv/recorders/dvbdev/dvbci.cpp | 6 +++++-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- mythtv/libs/libmythui/mythgesture.cpp            | 1 +
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- mythtv/libs/libmythui/mythpainter.cpp            | 1 +
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- mythtv/libs/libmythupnp/mmulticastsocketdevice.h | 4 ++++
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 9 files changed, 18 insertions(+), 1 deletion(-)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-see https://code.mythtv.org/trac/ticket/12020
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git mythtv/libs/libmyth/remoteutil.h mythtv/libs/libmyth/remoteutil.h
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index 7acff6a..4dc6a54 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- mythtv/libs/libmyth/remoteutil.h
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ mythtv/libs/libmyth/remoteutil.h
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1,6 +1,8 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #ifndef REMOTEUTIL_H_
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #define REMOTEUTIL_H_
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#include <time.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #include <QStringList>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #include <QDateTime>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git mythtv/libs/libmythui/mythgesture.cpp mythtv/libs/libmythui/mythgesture.cpp
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index 37846e4..f020f1a 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- mythtv/libs/libmythui/mythgesture.cpp
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ mythtv/libs/libmythui/mythgesture.cpp
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -30,6 +30,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #include <cmath>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #include <algorithm>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#include <complex>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #include <QMutex>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #include <QMap>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- diff -u mythtv/libs/libmythui/mythpainter.cpp.orig mythtv/libs/libmythui/mythpainter.cpp
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- mythtv/libs/libmythui/mythpainter.cpp.orig     2013-08-11 19:30:33.000000000 -0400
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ mythtv/libs/libmythui/mythpainter.cpp  2014-03-03 14:32:55.000000000 -0500
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1,4 +1,5 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #include <stdint.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#include <complex>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- // QT headers
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #include <QRect>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- -- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-1.8.5.2
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/multimedia/mythtv-core.25/files/patch-greedyh.asm.diff b/multimedia/mythtv-core.25/files/patch-greedyh.asm.diff
</span>deleted file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 8f07061..0000000
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/multimedia/mythtv-core.25/files/patch-greedyh.asm.diff
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,19 +0,0 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-See http://code.mythtv.org/trac/ticket/10762
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-By Gary Buhrmaster
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- mythtv/filters/greedyhdeint/greedyh.asm
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ mythtv/filters/greedyhdeint/greedyh.asm
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -26,10 +26,10 @@ static const int64_t __attribute__((__used__)) UVMask       = 0xff00ff00ff00ff00
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- static const int64_t __attribute__((__used__)) ShiftMask    = 0xfefffefffefffeffull; // to avoid shifting chroma to luma
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- static const int64_t __attribute__((__used__)) QW256        = 0x0100010001000100ull; // 4 256's
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--static int64_t MaxComb;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--static int64_t MotionThreshold;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--static int64_t MotionSense;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--static int64_t QW256B;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+static int64_t __attribute__((__used__)) MaxComb;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+static int64_t __attribute__((__used__)) MotionThreshold;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+static int64_t __attribute__((__used__)) MotionSense;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+static int64_t __attribute__((__used__)) QW256B;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #endif
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/multimedia/mythtv-core.25/files/patch-mythtv-libs-libmythtv-NuppelVideoRecorder.cpp.diff b/multimedia/mythtv-core.25/files/patch-mythtv-libs-libmythtv-NuppelVideoRecorder.cpp.diff
</span>deleted file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 7d87023..0000000
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/multimedia/mythtv-core.25/files/patch-mythtv-libs-libmythtv-NuppelVideoRecorder.cpp.diff
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,24 +0,0 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- mythtv/libs/libmythtv/NuppelVideoRecorder.cpp  2012-09-18 17:58:13.000000000 -0700
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ mythtv/libs/libmythtv/NuppelVideoRecorder.cpp  2012-10-01 19:33:09.000000000 -0700
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -33,10 +33,17 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #include "vbitext/cc.h"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #include "vbitext/vbi.h"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--#if HAVE_BIGENDIAN
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--extern "C" {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--#include "byteswap.h"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#if HAVE_BYTESWAP_H
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#include <byteswap.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#elif HAVE_SYS_ENDIAN_H
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#include <sys/endian.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#elif CONFIG_DARWIN
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#include <libkern/OSByteOrder.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#define bswap_16 OSSwapInt16
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#define bswap_32 OSSwapInt32
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#define bswap_64 OSSwapInt64
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#elif HAVE_BIGENDIAN
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#error No bswap functions defined
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #endif
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- extern "C" {
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/multimedia/mythtv-core.25/files/patch-mythtv-libs-libmythtv-avformatwriter.cpp.diff b/multimedia/mythtv-core.25/files/patch-mythtv-libs-libmythtv-avformatwriter.cpp.diff
</span>deleted file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 41f4711..0000000
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/multimedia/mythtv-core.25/files/patch-mythtv-libs-libmythtv-avformatwriter.cpp.diff
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,23 +0,0 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- mythtv/libs/libmythtv/avformatwriter.cpp       2012-09-18 17:58:13.000000000 -0700
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ mythtv/libs/libmythtv/avformatwriter.cpp       2012-10-01 19:33:15.000000000 -0700
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -24,10 +24,16 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #include "NuppelVideoRecorder.h"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #include "avformatwriter.h"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--#if HAVE_BIGENDIAN
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--extern "C" {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--#include "byteswap.h"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#if HAVE_BYTESWAP_H
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#include <byteswap.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#elif HAVE_SYS_ENDIAN_H
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#include <sys/endian.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#elif CONFIG_DARWIN
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#include <libkern/OSByteOrder.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#define bswap_16 OSSwapInt16
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#define bswap_32 OSSwapInt32
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#elif HAVE_BIGENDIAN
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#error No bswap functions defined
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #endif
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #define LOC QString("AVFW(%1): ").arg(m_filename)
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/multimedia/mythtv-core.25/files/patch-protect-metadata-loads-from-multiple-threads.diff b/multimedia/mythtv-core.25/files/patch-protect-metadata-loads-from-multiple-threads.diff
</span>deleted file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 5c9f02e..0000000
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/multimedia/mythtv-core.25/files/patch-protect-metadata-loads-from-multiple-threads.diff
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,52 +0,0 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-From b20171597097f8b933065ef3291c63194d310fbf Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-From: George Nassas <george@nassas.com>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Date: Sun, 10 Jun 2012 13:36:42 -0400
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Subject: [PATCH] protect metadata loads from multiple threads
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>----
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- mythtv/libs/libmythmetadata/dbaccess.cpp |    9 +++++++++
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 1 files changed, 9 insertions(+), 0 deletions(-)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git a/mythtv/libs/libmythmetadata/dbaccess.cpp b/mythtv/libs/libmythmetadata/dbaccess.cpp
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index 67cd904..46adb7a 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- mythtv/libs/libmythmetadata/dbaccess.cpp
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ mythtv/libs/libmythmetadata/dbaccess.cpp
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -47,8 +47,11 @@ class SingleValueImp
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     virtual ~SingleValueImp() {}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    mutable QMutex mutex;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     void load_data()
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        QMutexLocker locker(&mutex);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         if (!m_ready)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-             fill_from_db();
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -271,8 +274,11 @@ class MultiValueImp
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                 .arg(m_value_name).arg(m_table_name).arg(m_id_name);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    mutable QMutex mutex;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     void load_data()
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        QMutexLocker locker(&mutex);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         if (!m_ready)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-             fill_from_db();
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -730,8 +736,11 @@ class FileAssociationsImp
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    mutable QMutex mutex;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     void load_data()
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        QMutexLocker locker(&mutex);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         if (!m_ready)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-             fill_from_db();
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-1.7.2.5
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/multimedia/mythtv-core.25/files/patch-restore-fe-netcontrol-play-resume-functionality.diff b/multimedia/mythtv-core.25/files/patch-restore-fe-netcontrol-play-resume-functionality.diff
</span>deleted file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 742b8f7..0000000
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/multimedia/mythtv-core.25/files/patch-restore-fe-netcontrol-play-resume-functionality.diff
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,27 +0,0 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-From 2fb4b7bb111d7ec256f0b0f96c7271bcc0f61766 Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-From: George Nassas <george@nassas.com>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Date: Fri, 24 Aug 2012 00:17:08 -0400
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Subject: [PATCH 4/4] restore fe netcontrol play/resume functionality
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>----
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- mythtv/programs/mythfrontend/playbackbox.cpp |    4 +++-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 1 files changed, 3 insertions(+), 1 deletions(-)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git a/mythtv/programs/mythfrontend/playbackbox.cpp b/mythtv/programs/mythfrontend/playbackbox.cpp
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index 734cce1..44bb343 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- mythtv/programs/mythfrontend/playbackbox.cpp
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ mythtv/programs/mythfrontend/playbackbox.cpp
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -3723,7 +3723,9 @@ void PlaybackBox::processNetworkControlCommand(const QString &command)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                 pginfo.SetPathname(pginfo.GetPlaybackURL());
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--                PlayX(pginfo, true, true);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+          bool ignoreBookmark = tokens[1] == "PLAY";
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                PlayX(pginfo, ignoreBookmark, true);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-             }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-             else
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-             {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-1.7.2.5
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/multimedia/mythtv-core.25/files/patch-util-osx-objC.diff b/multimedia/mythtv-core.25/files/patch-util-osx-objC.diff
</span>deleted file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 731b93d..0000000
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/multimedia/mythtv-core.25/files/patch-util-osx-objC.diff
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,33 +0,0 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-From 12a3eac312d06257ba1dca771ee710eacda6ce1e Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-From: Jean-Yves Avenard <jyavenard@mythtv.org>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Date: Thu, 14 Jun 2012 19:29:01 +0000
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Subject: Fix compilation with clang/clang++ - configure: we can't use CFLAGS for compiling C++ code, especially as CFLAGS would include -std=c99 which makes no sense for C++ - util-osx-cocoa.mm was compiled as a C++ file, not an objective-C++ file, gcc was forgiving about the error, clang++ isn't
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>----
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git mythtv/libs/libmythui/libmythui.pro mythtv/libs/libmythui/libmythui.pro
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index 72d5482..4560bb2 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- mythtv/libs/libmythui/libmythui.pro
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ mythtv/libs/libmythui/libmythui.pro
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -95,16 +95,12 @@ using_x11 {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- macx {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    QMAKE_EXT_CPP += .mm
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    QMAKE_OBJECTIVE_CFLAGS += $$QMAKE_CFLAGS
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    HEADERS += screensaver-osx.h   DisplayResOSX.h   util-osx.h   util-osx-cocoa.h
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    SOURCES += screensaver-osx.cpp DisplayResOSX.cpp util-osx.cpp util-osx-cocoa.mm
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    QMAKE_CXXFLAGS += -F/System/Library/Frameworks/CoreServices.framework/Frameworks
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    QMAKE_CXXFLAGS += -F/System/Library/Frameworks/ApplicationServices.framework/Frameworks
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    QMAKE_CXXFLAGS += -F/System/Library/Frameworks/Carbon.framework/Frameworks
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    QMAKE_CXXFLAGS += -F/System/Library/Frameworks/Cocoa.framework/Frameworks
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    LIBS           += -framework Carbon -framework Cocoa -framework IOKit
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    HEADERS += screensaver-osx.h   DisplayResOSX.h   util-osx.h
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    SOURCES += screensaver-osx.cpp DisplayResOSX.cpp util-osx.cpp
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    QMAKE_OBJECTIVE_CXXFLAGS += $$QMAKE_CXXFLAGS
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    OBJECTIVE_HEADERS += util-osx-cocoa.h
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    OBJECTIVE_SOURCES += util-osx-cocoa.mm
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    LIBS              += -framework Carbon -framework Cocoa -framework IOKit
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     using_appleremote {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         HEADERS += AppleRemote.h   AppleRemoteListener.h
</span></pre><pre style='margin:0'>

</pre>