[109844] trunk/dports/_resources/port1.0/group/muniversal-1.0.tcl
jeremyhu at macports.org
jeremyhu at macports.org
Tue Aug 20 10:15:19 PDT 2013
Revision: 109844
https://trac.macports.org/changeset/109844
Author: jeremyhu at macports.org
Date: 2013-08-20 10:15:19 -0700 (Tue, 20 Aug 2013)
Log Message:
-----------
muniversal: Improve flow control for known file type handling
Modified Paths:
--------------
trunk/dports/_resources/port1.0/group/muniversal-1.0.tcl
Modified: trunk/dports/_resources/port1.0/group/muniversal-1.0.tcl
===================================================================
--- trunk/dports/_resources/port1.0/group/muniversal-1.0.tcl 2013-08-20 17:06:43 UTC (rev 109843)
+++ trunk/dports/_resources/port1.0/group/muniversal-1.0.tcl 2013-08-20 17:15:19 UTC (rev 109844)
@@ -547,15 +547,12 @@
copy -force ${dir1}/${fl} ${dir}/${arch1}-${fl}
copy -force ${dir2}/${fl} ${dir}/${arch2}-${fl}
} else {
- set known_file "no"
-
# Text file on which diff will not give correct results.
switch -glob ${fl} {
*.mod {
# .mod files from Fortran modules.
# Create a sepcial module directory for each architecture.
# To find these modules, GFortran might require -M or -J.
- set known_file "yes"
file mkdir ${dir}/mods32
file mkdir ${dir}/mods64
if { ${arch1}=="i386" || ${arch1}=="ppc" } {
@@ -568,8 +565,6 @@
}
*.pc -
*-config {
- set known_file "yes"
-
set tempdir [mkdtemp "/tmp/muniversal.XXXXXXXX"]
set tempfile1 "${tempdir}/${arch1}-${fl}"
set tempfile2 "${tempdir}/${arch2}-${fl}"
@@ -591,86 +586,79 @@
delete ${tempfile1} ${tempfile2} ${tempdir}
}
- }
-
- if { ${known_file}=="no" } {
- if { ! [catch {system "/usr/bin/diff -dw ${diffFormat} \"${dir1}/${fl}\" \"${dir2}/${fl}\" > \"${dir}/${fl}\"; test \$? -le 1"} ] } {
- # diff worked
- ui_debug "universal: merge: used diff to create ${prefixDir}/${fl}"
- } else {
- # File created by diff is invalid
- delete ${dir}/${fl}
-
- # nothing has worked so far.
+ *.la {
+ if {${destroot.delete_la_files} == "yes"} {
+ ui_debug "universal: merge: ${prefixDir}/${fl} differs in ${base1} and ${base2}; ignoring due to delete_la_files"
+ } else {
+ return -code error "${prefixDir}/${fl} differs in ${base1} and ${base2} and cannot be merged"
+ }
+ }
+ *.typelib {
+ # Sometimes garbage ends up in ignored trailing bytes
+ # https://trac.macports.org/ticket/39629
+ # TODO: Compare the g-ir-generate output
+ ui_debug "universal: merge: ${prefixDir}/${fl} differs in ${base1} and ${base2}; assume trivial difference"
+ copy ${dir1}/${fl} ${dir}
+ }
+ *.jar {
+ # jar files can be different because of timestamp
+ ui_debug "universal: merge: ${prefixDir}/${fl} differs in ${base1} and ${base2}; assume timestamp difference"
+ copy ${dir1}/${fl} ${dir}
+ }
+ *.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"
+ copy ${dir1}/${fl} ${dir}
+ }
+ *.gz -
+ *.bz2 {
+ # compressed files can differ due to entropy
switch -glob ${fl} {
- *.la {
- if {${destroot.delete_la_files} == "yes"} {
- ui_debug "universal: merge: ${prefixDir}/${fl} differs in ${base1} and ${base2}; ignoring due to delete_la_files"
- } else {
- return -code error "${prefixDir}/${fl} differs in ${base1} and ${base2} and cannot be merged"
- }
+ *.gz {
+ set cat /usr/bin/gzcat
}
- *.typelib {
- # Sometimes garbage ends up in ignored trailing bytes
- # https://trac.macports.org/ticket/39629
- # TODO: Compare the g-ir-generate output
- ui_debug "universal: merge: ${prefixDir}/${fl} differs in ${base1} and ${base2}; assume trivial difference"
- copy ${dir1}/${fl} ${dir}
- }
- *.jar {
- # jar files can be different because of timestamp
- ui_debug "universal: merge: ${prefixDir}/${fl} differs in ${base1} and ${base2}; assume timestamp difference"
- copy ${dir1}/${fl} ${dir}
- }
- *.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"
- copy ${dir1}/${fl} ${dir}
- }
- *.gz -
*.bz2 {
- # compressed files can differ due to entropy
- switch -glob ${fl} {
- *.gz {
- set cat /usr/bin/gzcat
- }
- *.bz2 {
- set cat /usr/bin/bzcat
- }
- }
- set tempdir [mkdtemp "/tmp/muniversal.XXXXXXXX"]
- set tempfile1 "${tempdir}/${arch1}-[file rootname ${fl}]"
- set tempfile2 "${tempdir}/${arch2}-[file rootname ${fl}]"
- system "${cat} \"${dir1}/${fl}\" > \"${tempfile1}\""
- system "${cat} \"${dir2}/${fl}\" > \"${tempfile2}\""
- set identical "no"
- if { ! [catch {system "/usr/bin/cmp -s \"${tempfile1}\" \"${tempfile2}\""}] } {
- # files are identical
- ui_debug "universal: merge: ${prefixDir}/${fl} differs in ${base1} and ${base2} but the contents are the same"
+ set cat /usr/bin/bzcat
+ }
+ }
+ set tempdir [mkdtemp "/tmp/muniversal.XXXXXXXX"]
+ set tempfile1 "${tempdir}/${arch1}-[file rootname ${fl}]"
+ set tempfile2 "${tempdir}/${arch2}-[file rootname ${fl}]"
+ system "${cat} \"${dir1}/${fl}\" > \"${tempfile1}\""
+ system "${cat} \"${dir2}/${fl}\" > \"${tempfile2}\""
+ set identical "no"
+ if { ! [catch {system "/usr/bin/cmp -s \"${tempfile1}\" \"${tempfile2}\""}] } {
+ # files are identical
+ ui_debug "universal: merge: ${prefixDir}/${fl} differs in ${base1} and ${base2} but the contents are the same"
+ set identical "yes"
+ copy ${dir1}/${fl} ${dir}
+ }
+ if { ${identical}=="no" } {
+ switch -glob ${fl} {
+ *.el.gz {
+ # Emacs lisp files should be same across architectures
+ # the emacs package (and perhaps others) records the date of automatically generated el files
+ ui_debug "universal: merge: ${prefixDir}/${fl} differs in ${base1} and ${base2}; assume trivial difference"
set identical "yes"
copy ${dir1}/${fl} ${dir}
}
- if { ${identical}=="no" } {
- switch -glob ${fl} {
- *.el.gz {
- # Emacs lisp files should be same across architectures
- # the emacs package (and perhaps others) records the date of automatically generated el files
- ui_debug "universal: merge: ${prefixDir}/${fl} differs in ${base1} and ${base2}; assume trivial difference"
- set identical "yes"
- copy ${dir1}/${fl} ${dir}
- }
- }
- }
- delete ${tempfile1} ${tempfile2} ${tempdir}
- if {${identical}=="no"} {
- return -code error "${prefixDir}/${fl} differs in ${base1} and ${base2} and cannot be merged"
- }
}
- default {
- return -code error "${prefixDir}/${fl} differs in ${base1} and ${base2} and cannot be merged"
- }
}
+ delete ${tempfile1} ${tempfile2} ${tempdir}
+ if {${identical}=="no"} {
+ return -code error "${prefixDir}/${fl} differs in ${base1} and ${base2} and cannot be merged"
+ }
}
+ default {
+ if { ! [catch {system "/usr/bin/diff -dw ${diffFormat} \"${dir1}/${fl}\" \"${dir2}/${fl}\" > \"${dir}/${fl}\"; test \$? -le 1"} ] } {
+ # diff worked
+ ui_debug "universal: merge: used diff to create ${prefixDir}/${fl}"
+ } else {
+ # File created by diff is invalid
+ delete ${dir}/${fl}
+ return -code error "${prefixDir}/${fl} differs in ${base1} and ${base2} and cannot be merged"
+ }
+ }
}
}
}
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/macports-changes/attachments/20130820/58592d8b/attachment-0001.html>
More information about the macports-changes
mailing list