#52477: rtorrent: Update to 0.9.6 w/ patches for macOS 10.12 -------------------------+-------------------------------- Reporter: torstenb@… | Owner: macports-tickets@… Type: defect | Status: new Priority: Normal | Milestone: Component: ports | Version: 2.3.4 Resolution: | Keywords: sierra haspatch Port: rtorrent | -------------------------+-------------------------------- Comment (by ryandesign@…): Your patch adds this block: {{{ post-patch { system "find ${worksrcpath} \\( -name '*.h' -or -name '*.cc' \\) -type f -print0 | xargs -0 sed -i '' -e 's/tr1::/std::/g'" system "find ${worksrcpath} \\( -name '*.h' -or -name '*.cc' \\) -type f -print0 | xargs -0 sed -i '' -e 's/std::std::/std::/g'" system "find ${worksrcpath} \\( -name '*.h' -or -name '*.cc' \\) -type f -print0 | xargs -0 sed -i '' -e '/namespace tr1/d'" system "find ${worksrcpath} \\( -name '*.h' -or -name '*.cc' \\) -type f -print0 | xargs -0 sed -i '' -e '/include/s,tr1/,,'" } }}} Ideally, you would use `fs-traverse` and `reinplace`, instead of `system` calling `find`, `xargs` and `sed`. Maybe something like this (untested): {{{ post-patch { fs-traverse f ${worksrcpath} { switch [file extension ${f}] { .cc - .h { reinplace {s/std::std::/std::/g} ${f} reinplace {/namespace tr1/d} ${f} reinplace {/namespace tr1/d} ${f} reinplace {/include/s,tr1/,,} ${f} } } } } }}} It looks like this will make the port work with compilers that support the final C++11 standard, but fail with compilers that only support the transitional tr1 standard. I wonder if you should only be doing this replacing when `configure.cxx_stdlib` is` libc++`. Or alternatively, maybe this code requires libc++; if so, include the cxx11 1.0 portgroup to handle the details. We can wait on this, commit it without such changes, and see whether it fails to build on the older [https://build.macports.org Buildbot] workers. The same comments apply to libtorrent in #52476. -- Ticket URL: <https://trac.macports.org/ticket/52477#comment:4> MacPorts <https://www.macports.org/> Ports system for the Mac operating system