<pre style='margin:0'>
Marcus Calhoun-Lopez (MarcusCalhoun-Lopez) pushed a commit to branch master
in repository macports-ports.

</pre>
<p><a href="https://github.com/macports/macports-ports/commit/359672971ee3c6800d8992288b5058a54bbd7c2f">https://github.com/macports/macports-ports/commit/359672971ee3c6800d8992288b5058a54bbd7c2f</a></p>
<pre style="white-space: pre; background: #F8F8F8"><span style='display:block; white-space:pre;color:#808000;'>commit 359672971ee3c6800d8992288b5058a54bbd7c2f
</span>Author: Marcus Calhoun-Lopez <mcalhoun@macports.org>
AuthorDate: Wed Jun 8 05:09:00 2022 -0700

<span style='display:block; white-space:pre;color:#404040;'>    muniversal PG: add support for merging gir files
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    Fixes https://trac.macports.org/ticket/65240
</span>---
 _resources/port1.0/group/muniversal-1.1.tcl | 27 +++++++++++++++++++++++++++
 1 file changed, 27 insertions(+)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/_resources/port1.0/group/muniversal-1.1.tcl b/_resources/port1.0/group/muniversal-1.1.tcl
</span><span style='display:block; white-space:pre;color:#808080;'>index fd9c120b00c..5acd2b9e78c 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/_resources/port1.0/group/muniversal-1.1.tcl
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/_resources/port1.0/group/muniversal-1.1.tcl
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -316,6 +316,30 @@ proc muniversal::strip_arch_flags {dir1 dir2 dir fl} {
</span>     }
 }
 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+# merge two files (${dir1}/${fl} and ${dir2}/${fl}) to ${dir}/${fl}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# by stripping out -${arch} (e.g. from a directory name)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+proc muniversal::strip_dir_arch {arch1 arch2 dir1 dir2 dir fl} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set tempdir [mkdtemp "/tmp/muniversal.XXXXXXXX"]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set tempfile1 "${tempdir}/1-${fl}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set tempfile2 "${tempdir}/2-${fl}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    copy ${dir1}/${fl} ${tempfile1}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    copy ${dir2}/${fl} ${tempfile2}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    reinplace -q -E "s:-${arch1}::g" ${tempfile1}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    reinplace -q -E "s:-${arch2}::g" ${tempfile2}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    if { ! [catch {system "/usr/bin/cmp -s \"${tempfile1}\" \"${tempfile2}\""}] } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        # modified files are identical
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        ui_debug "universal: merge: ${fl} differs in ${dir1} and ${dir2} but are the same when stripping out -${arch1} and ${arch2}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        copy ${tempfile1} ${dir}/${fl}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        delete ${tempfile1} ${tempfile2} ${tempdir}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        delete ${tempfile1} ${tempfile2} ${tempdir}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        return -code error "${fl} differs in ${dir1} and ${dir2} and cannot be merged"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> # merge ${base1}/${prefixDir} and ${base2}/${prefixDir} into dir ${base}/${prefixDir}
 #        arch1, arch2: names to prepend to files if a diff merge of two files is forbidden by merger_dont_diff
 #    merger_dont_diff: list of files for which /usr/bin/diff ${diffFormat} will not merge correctly
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -441,6 +465,9 @@ proc muniversal::merge {base1 base2 base prefixDir arch1 arch2 merger_dont_diff
</span>                                     ui_debug "universal: merge: ${prefixDir}/${fl} differs in ${base1} and ${base2}; assume trivial difference"
                                     copy ${dir1}/${fl} ${dir}
                                 }
<span style='display:block; white-space:pre;background:#e0ffe0;'>+                                *.gir {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                                    muniversal::strip_dir_arch ${arch1} ${arch2} ${dir1} ${dir2} ${dir} ${fl}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                                }
</span>                                 *.elc {
                                     # elc files can be different because they record when and where they were built.
                                     ui_debug "universal: merge: ${prefixDir}/${fl} differs in ${base1} and ${base2}; assume trivial difference"
</pre><pre style='margin:0'>

</pre>