#47907: libvpx: update to 1.4.0 ---------------------------+---------------------- Reporter: ryandesign@… | Owner: devans@… Type: update | Status: assigned Priority: Normal | Milestone: Component: ports | Version: Resolution: | Keywords: haspatch Port: libvpx | ---------------------------+---------------------- Changes (by ryandesign@…): * keywords: => haspatch Comment: Ok, most of the patches deal with disabusing the hand-rolled configure script of the idea that it should do different things on different OS X versions and that it should pick the SDK and deployment target, and I'm completely in favor of that, so let's keep those patches. The alternative is that the configure script needs to be patched every time a new version of OS X is released, which is a bit mad; we used to do that, until Jeremy fixed it with the current patches. ----- There's another unrelated part of the patch that modifies two `sed` invocations. This was added in r70208 to fix comment:ticket:25815:26. It originally made these changes: {{{#!diff --- build/make/configure.sh.orig 2010-08-02 23:34:10.000000000 -0400 +++ build/make/configure.sh 2010-08-02 23:34:50.000000000 -0400 @@ -375,10 +375,10 @@ EOF if enabled rvct; then cat >> $1 << EOF -fmt_deps = sed -e 's;^__image.axf;\$(dir \$@)\$(notdir \$<).o \$@;' #hide +fmt_deps = sed -e 's;^__image.axf\$\$;\$(dir \$@)\$(notdir \$<).o \$@;' #hide EOF else cat >> $1 << EOF -fmt_deps = sed -e 's;^\(.*\)\.o;\$(dir \$@)\1\$(suffix \$<).o \$@;' #hide +fmt_deps = sed -e 's;^\(.*\)\.o\$\$;\$(dir \$@)\1\$(suffix \$<).o \$@;' #hide EOF fi }}} The intention was that after the various quoting is removed, a "`$`" will have been inserted at the end of the search string, anchoring the search string to the end of the line. The search string is already anchored to the beginning of the line with the leading "`^`". So whereas before the second invocation would find lines ''containing'' ".o", now it only finds lines that ''end'' with ".o". This is important because the intention of the second `sed` invocation was to identify object files whose names end with ".o", but it was finding other things as well, because the default build path in MacPorts contains the string "rsync.macports.org"—which just happens to contain ".o". The patch was updated in r74608 to accommodate changes between libvpx 0.9.1 and 0.9.5—changes that made our patch unnecessary, and it could have been dropped at that time. But it was kept, and updated a couple times more, most recently in r117553, when it was changed in such a way that the original intention was lost: {{{ #!diff --- build/make/configure.sh.orig 2015-04-17 10:56:45.000000000 -0700 +++ build/make/configure.sh 2015-04-17 10:58:27.000000000 -0700 @@ -442,10 +442,10 @@ EOF if enabled rvct; then cat >> $1 << EOF -fmt_deps = sed -e 's;^__image.axf;\${@:.d=.o} \$@;' #hide +fmt_deps = sed -e 's;^__image.axf;\$\${@:.d=.o} \$@;' #hide EOF else cat >> $1 << EOF -fmt_deps = sed -e 's;^\([a-zA-Z0-9_]*\)\.o;\${@:.d=.o} \$@;' +fmt_deps = sed -e 's;^\([a-zA-Z0-9_]*\)\.o;\$\${@:.d=.o} \$@;' EOF fi }}} Now it just doubles the "`$`" at the beginning of the replacement string, which was not the original intent. We should drop this part of the patch now. ----- A final part of the patch was added just recently for #47436 and that part can I believe be removed now since that part of the code has changed in 1.4.0. I do not understand the code, but I did not have any problem building universal with Xcode 6.3 without that patch, which was what the patch was intended to fix. -- Ticket URL: <https://trac.macports.org/ticket/47907#comment:5> MacPorts <https://www.macports.org/> Ports system for OS X