<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>