<pre style='margin:0'>
Ryan Carsten Schmidt (ryandesign) pushed a commit to branch master
in repository macports-ports.

</pre>
<p><a href="https://github.com/macports/macports-ports/commit/9b7c2f3c227011f0fb98251571121c1d95f4dec3">https://github.com/macports/macports-ports/commit/9b7c2f3c227011f0fb98251571121c1d95f4dec3</a></p>
<pre style="white-space: pre; background: #F8F8F8">The following commit(s) were added to refs/heads/master by this push:
<span style='display:block; white-space:pre;color:#404040;'>     new 9b7c2f3c227 magic: Update to 8.3.459
</span>9b7c2f3c227 is described below

<span style='display:block; white-space:pre;color:#808000;'>commit 9b7c2f3c227011f0fb98251571121c1d95f4dec3
</span>Author: Ryan Carsten Schmidt <ryandesign@macports.org>
AuthorDate: Tue Jan 23 09:40:57 2024 -0600

<span style='display:block; white-space:pre;color:#404040;'>    magic: Update to 8.3.459
</span>---
 science/magic/Portfile              |  15 +++--
 science/magic/files/python312.patch | 110 ++++++++++++++++++++++++++++++++++++
 2 files changed, 119 insertions(+), 6 deletions(-)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/science/magic/Portfile b/science/magic/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index 0f4e895fa8d..d699b5f19ee 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/science/magic/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/science/magic/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -5,11 +5,11 @@ PortGroup           active_variants 1.1
</span> PortGroup           conflicts_build 1.0
 
 name                magic
<span style='display:block; white-space:pre;background:#ffe0e0;'>-version             8.3.456
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+version             8.3.459
</span> revision            0
<span style='display:block; white-space:pre;background:#ffe0e0;'>-checksums           rmd160  179e62f193e0eb5979508bc44980054ee82bb5d3 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    sha256  3eb29b2de70527eb61d31f40d1fa79e7446703cc3da1611332d1694193fcb73c \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    size    4229024
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+checksums           rmd160  3c5565780d5b2a677a16f948b0614605307851af \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    sha256  12b34564766227e0b0f1039044463da6ce7ff16a196045308fc688bb8d9d4fd4 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    size    4237442
</span> 
 set branch          [join [lrange [split ${version} .] 0 1] .]
 categories          science
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -47,13 +47,16 @@ universal_variant   no
</span> 
 conflicts_build     gnome-keyring
 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+patchfiles          python312.patch
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> configure.dir       ${worksrcpath}/scripts
 
 if {${os.platform} eq "darwin" && ${os.major} < 19} {
<span style='display:block; white-space:pre;background:#e0ffe0;'>+    set python_version 3.12
</span>     depends_build-append \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-                    port:python311
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    port:python[string map {. {}} ${python_version}]
</span>     configure.python \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-                    ${prefix}/bin/python3.11
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    ${prefix}/bin/python${python_version}
</span> } else {
     configure.python \
                     /usr/bin/python3
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/science/magic/files/python312.patch b/science/magic/files/python312.patch
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..6d10184ce85
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/science/magic/files/python312.patch
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,110 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Fix:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+magic/../scripts/preproc.py:62: SyntaxWarning: invalid escape sequence '\('
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  defrex = re.compile('defined[ \t]*\(([^\)]+)\)')
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+magic/../scripts/preproc.py:63: SyntaxWarning: invalid escape sequence '\|'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  orrex = re.compile('(.+)\|\|(.+)')
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+magic/../scripts/preproc.py:65: SyntaxWarning: invalid escape sequence '\|'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  notrex = re.compile('!([^&\|]+)')
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+magic/../scripts/preproc.py:66: SyntaxWarning: invalid escape sequence '\('
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  parenrex = re.compile('\(([^\)]+)\)')
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+magic/../scripts/preproc.py:170: SyntaxWarning: invalid escape sequence '\('
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  paramrex = re.compile('^([^\(]+)\(([^\)]+)\)')
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+magic/../scripts/preproc.py:180: SyntaxWarning: invalid escape sequence '\*'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  ccstartrex = re.compile('/\*')                # C-style comment start
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+magic/../scripts/preproc.py:181: SyntaxWarning: invalid escape sequence '\*'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  ccendrex = re.compile('\*/')          # C-style comment end
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+magic/../scripts/preproc.py:417: SyntaxWarning: invalid escape sequence '\('
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  pcondition = condition + '\('
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+magic/../scripts/preproc.py:420: SyntaxWarning: invalid escape sequence '\)'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  pcondition += '(.*)\)'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+magic/../scripts/preproc.py:426: SyntaxWarning: invalid escape sequence '\g'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  pvalue = pvalue.replace(param, '\g<' + str(idx) + '>')
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+https://github.com/RTimothyEdwards/magic/pull/288
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- scripts/preproc.py.orig        2020-04-08 10:45:13.000000000 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ scripts/preproc.py     2024-01-23 08:47:35.000000000 -0600
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -59,13 +59,13 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ def solve_statement(condition):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    defrex = re.compile('defined[ \t]*\(([^\)]+)\)')
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    orrex = re.compile('(.+)\|\|(.+)')
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    andrex = re.compile('(.+)&&(.+)')
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    notrex = re.compile('!([^&\|]+)')
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    parenrex = re.compile('\(([^\)]+)\)')
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    leadspacerex = re.compile('^[ \t]+(.*)')
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    endspacerex = re.compile('(.*)[ \t]+$')
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    defrex = re.compile(r'defined[ \t]*\(([^\)]+)\)')
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    orrex = re.compile(r'(.+)\|\|(.+)')
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    andrex = re.compile(r'(.+)&&(.+)')
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    notrex = re.compile(r'!([^&\|]+)')
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    parenrex = re.compile(r'\(([^\)]+)\)')
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    leadspacerex = re.compile(r'^[ \t]+(.*)')
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    endspacerex = re.compile(r'(.*)[ \t]+$')
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     matchfound = True
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     while matchfound:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -165,24 +165,24 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ def runpp(keys, keyrex, defines, ccomm, incdirs, inputfile, ofile):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    includerex = re.compile('^[ \t]*#include[ \t]+"*([^ \t\n\r"]+)')
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    definerex = re.compile('^[ \t]*#define[ \t]+([^ \t]+)[ \t]+(.+)')
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    paramrex = re.compile('^([^\(]+)\(([^\)]+)\)')
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    defrex = re.compile('^[ \t]*#define[ \t]+([^ \t\n\r]+)')
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    undefrex = re.compile('^[ \t]*#undef[ \t]+([^ \t\n\r]+)')
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    ifdefrex = re.compile('^[ \t]*#ifdef[ \t]+(.+)')
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    ifndefrex = re.compile('^[ \t]*#ifndef[ \t]+(.+)')
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    ifrex = re.compile('^[ \t]*#if[ \t]+(.+)')
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    elseifrex = re.compile('^[ \t]*#elseif[ \t]+(.+)')
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    elserex = re.compile('^[ \t]*#else')
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    endifrex = re.compile('^[ \t]*#endif')
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    commentrex = re.compile('^###[^#]*$')
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    ccstartrex = re.compile('/\*')                # C-style comment start
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    ccendrex = re.compile('\*/')          # C-style comment end
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    contrex = re.compile('.*\\\\$')               # Backslash continuation line
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    includerex = re.compile(r'^[ \t]*#include[ \t]+"*([^ \t\n\r"]+)')
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    definerex = re.compile(r'^[ \t]*#define[ \t]+([^ \t]+)[ \t]+(.+)')
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    paramrex = re.compile(r'^([^\(]+)\(([^\)]+)\)')
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    defrex = re.compile(r'^[ \t]*#define[ \t]+([^ \t\n\r]+)')
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    undefrex = re.compile(r'^[ \t]*#undef[ \t]+([^ \t\n\r]+)')
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    ifdefrex = re.compile(r'^[ \t]*#ifdef[ \t]+(.+)')
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    ifndefrex = re.compile(r'^[ \t]*#ifndef[ \t]+(.+)')
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    ifrex = re.compile(r'^[ \t]*#if[ \t]+(.+)')
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    elseifrex = re.compile(r'^[ \t]*#elseif[ \t]+(.+)')
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    elserex = re.compile(r'^[ \t]*#else')
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    endifrex = re.compile(r'^[ \t]*#endif')
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    commentrex = re.compile(r'^###[^#]*$')
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    ccstartrex = re.compile(r'/\*')               # C-style comment start
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    ccendrex = re.compile(r'\*/')         # C-style comment end
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    contrex = re.compile(r'.*\\$')                # Backslash continuation line
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    badifrex = re.compile('^[ \t]*#if[ \t]*.*')
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    badelserex = re.compile('^[ \t]*#else[ \t]*.*')
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    badifrex = re.compile(r'^[ \t]*#if[ \t]*.*')
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    badelserex = re.compile(r'^[ \t]*#else[ \t]*.*')
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     # This code is not designed to operate on huge files.  Neither is it designed to be
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     # efficient.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -414,16 +414,16 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                 # parentheses;  e.g., "def(a, b, (c1,c2))".  This is NOT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                 # handled.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                pcondition = condition + '\('
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                pcondition = condition + r'\('
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                 for param in parameters[0:-1]:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                    pcondition += '(.*),'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                pcondition += '(.*)\)'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                    pcondition += r'(.*),'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                pcondition += r'(.*)\)'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                 # Generate the substitution string with group substitutions
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                 pvalue = pmatch.group(2)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                 idx = 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                 for param in parameters:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                    pvalue = pvalue.replace(param, '\g<' + str(idx) + '>')
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                    pvalue = pvalue.replace(param, r'\g<' + str(idx) + r'>')
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                     idx = idx + 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                 defines[condition] = pvalue
</span></pre><pre style='margin:0'>

</pre>