<pre style='margin:0'>
Clemens Lang (neverpanic) pushed a commit to branch master
in repository macports-ports.

</pre>
<p><a href="https://github.com/macports/macports-ports/commit/8064da0ce1b0e7f8562fafc2616c8b7823c37298">https://github.com/macports/macports-ports/commit/8064da0ce1b0e7f8562fafc2616c8b7823c37298</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 8064da0  textmate2: Fix compilation, clean up deps
</span>8064da0 is described below

<span style='display:block; white-space:pre;color:#808000;'>commit 8064da0ce1b0e7f8562fafc2616c8b7823c37298
</span>Author: Clemens Lang <cal@macports.org>
AuthorDate: Sun Sep 8 22:54:46 2019 +0200

<span style='display:block; white-space:pre;color:#404040;'>    textmate2: Fix compilation, clean up deps
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    Fix compilation of textmate2, fixing two incompatibilities with newer
</span><span style='display:block; white-space:pre;color:#404040;'>    versions of tools used by its build system.
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    Clear out the generated build/build.ninja.d list of dependencies because
</span><span style='display:block; white-space:pre;color:#404040;'>    it contained ".", which newer ninja understands as rebuild if the mtime
</span><span style='display:block; white-space:pre;color:#404040;'>    of the directory changes. However, since writing build.ninja changes the
</span><span style='display:block; white-space:pre;color:#404040;'>    mtime of the directory, this causes an endless loop. Work around this
</span><span style='display:block; white-space:pre;color:#404040;'>    problem by not writing a dependency list at all, since we never
</span><span style='display:block; white-space:pre;color:#404040;'>    reconfigure without cleaning.
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    Additionally, work around bugs in ragel 7.x which fails to parse
</span><span style='display:block; white-space:pre;color:#404040;'>    a second machine statement in a single block (fixed by opening a new
</span><span style='display:block; white-space:pre;color:#404040;'>    block) and fails to process a 'write data' statement claiming there are
</span><span style='display:block; white-space:pre;color:#404040;'>    "no machine instantiations to write" -- this is fixed by moving an
</span><span style='display:block; white-space:pre;color:#404040;'>    equivalent write statement further down the file, where this is
</span><span style='display:block; white-space:pre;color:#404040;'>    apparently no longer an issue. This seems like an upstream bug in ragel
</span><span style='display:block; white-space:pre;color:#404040;'>    7 and we should probably never have updated to the 7.x development
</span><span style='display:block; white-space:pre;color:#404040;'>    versions.
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    Additionally, move libraries that are only used during the build phase
</span><span style='display:block; white-space:pre;color:#404040;'>    into depends_build.
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    Closes: https://trac.macports.org/ticket/57266
</span><span style='display:block; white-space:pre;color:#404040;'>    Closes: https://trac.macports.org/ticket/57423
</span>---
 editors/textmate2/Portfile                         | 28 ++++++++-----
 ...plist_src_ascii.rl-work-around-ragel7-bugs.diff | 49 ++++++++++++++++++++++
 ...in__gen_build-avoid-endless-configure-loop.diff | 27 ++++++++++++
 3 files changed, 93 insertions(+), 11 deletions(-)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/editors/textmate2/Portfile b/editors/textmate2/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index 53516b4..8135a65 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/editors/textmate2/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/editors/textmate2/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -23,6 +23,9 @@ long_description        ${description}\
</span> platforms               darwin
 supported_archs         x86_64
 license                 GPL-3+
<span style='display:block; white-space:pre;background:#e0ffe0;'>+if {[info exists use_xcode]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    use_xcode           yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span> 
 fetch.type              git
 post-fetch {
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -35,7 +38,9 @@ patchfiles              patch-Applications_commit_target.diff \
</span>                         patch-ninja-verbose.diff \
                         0001-Revert-Build-with-MacOSX10.11-SDK.patch \
                         0001-Add-missing-link-dependency-to-Preferences.patch \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-                        ae470335a234e336c3d0337f065e26b29751e668.patch
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        ae470335a234e336c3d0337f065e26b29751e668.patch \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        patch-bin__gen_build-avoid-endless-configure-loop.diff \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        patch-Frameworks_plist_src_ascii.rl-work-around-ragel7-bugs.diff
</span> 
 post-patch {
     reinplace "s/@VERSION@/${version}/" ${worksrcpath}/configure
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -47,21 +52,22 @@ post-patch {
</span>     }
 }
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-depends_build-append    port:ninja \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                        port:ragel \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                        port:sparsehash \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+depends_build-append    path:lib/libssl.dylib:openssl \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        path:share/curl/curl-ca-bundle.crt:curl-ca-bundle \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        port:boost \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        port:capnproto \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        port:multimarkdown \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        port:ninja \
</span>                         port:proctools \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-                        path:share/curl/curl-ca-bundle.crt:curl-ca-bundle
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        port:ragel \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        port:sparsehash
</span> 
 depends_skip_archcheck  ninja ragel proctools
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-depends_lib-append      port:boost \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                        port:multimarkdown \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                        port:curl \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                        path:lib/libssl.dylib:openssl \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+depends_lib-append      port:curl \
</span>                         port:libiconv \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-                        port:zlib \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                        port:capnproto
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        port:sqlite3 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        port:zlib
</span> 
 if {${os.platform} ne "darwin" || ${os.major} < 12} {
     depends_fetch
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/editors/textmate2/files/patch-Frameworks_plist_src_ascii.rl-work-around-ragel7-bugs.diff b/editors/textmate2/files/patch-Frameworks_plist_src_ascii.rl-work-around-ragel7-bugs.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..830552f
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/editors/textmate2/files/patch-Frameworks_plist_src_ascii.rl-work-around-ragel7-bugs.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,49 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ascii.rl: Work around ragel 7 bugs
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+The version of ragel currently in MacPorts fails to parse the second machine
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+definition if it's in the same block. Additionally, once that problem is
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+out of the way, the 'write data' statement for the string machine fails
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+and aborts because there are "no machine instantiations to write".
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Moving the same piece of code further down as "machine string; write
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+data;" seems to work, but the ragel compiler is picky as to where in the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+file it can occur.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+I've picked a place that seems to work fine.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Upstream-Status: Inappropriate [likely a ragel bug]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/Frameworks/plist/src/ascii.rl b/Frameworks/plist/src/ascii.rl
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 3cc453a9..820830ed 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- ./Frameworks/plist/src/ascii.rl
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ ./Frameworks/plist/src/ascii.rl
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -35,9 +35,9 @@ date:     @2010-05-10 20:34:12 +0000
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   DOUBLE    = '"' (D_ESCAPE | D_ANY)* >clear_str '"';
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   string   := (BARE | SINGLE | DOUBLE) @matched;
</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;'>+-  write data;
</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;'>+   machine comment;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   SINGLE   = '//' [^\n]* '\n';
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   DOUBLE   = '/*' ([^*] | '*' [^/])* '*/';
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -46,6 +46,7 @@ date:     @2010-05-10 20:34:12 +0000
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   write data;
</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><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #pragma clang diagnostic pop
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ static bool backtrack (char const*& p, char const* bt, plist::any_t& res)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -60,6 +61,11 @@ static bool parse_ws (char const*& p, char const* pe)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   return true;
</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;'>++#pragma clang diagnostic push
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#pragma clang diagnostic ignored "-Wunused-const-variable"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%% machine string; write data;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#pragma clang diagnostic pop
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ static bool parse_char (char const*& p, char const*& pe, char ch)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   return parse_ws(p, pe) && p != pe && *p == ch ? (++p, true) : false;
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/editors/textmate2/files/patch-bin__gen_build-avoid-endless-configure-loop.diff b/editors/textmate2/files/patch-bin__gen_build-avoid-endless-configure-loop.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..e1361d2
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/editors/textmate2/files/patch-bin__gen_build-avoid-endless-configure-loop.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,27 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+gen_build: Avoid endless configure loop
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+The build.ninja.d dependency file written by bin/gen_build adds "." as
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+a dependency of build.ninja. This causes the generation rule for the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+build.ninja file to re-run endlessly because the mtime of the directory changes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+every time the build.ninja file is written.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Remove all dependencies instead, which fixes the build for us, and is not
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+a problem because we don't update the sources in-place and rebuild.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Upstream-Status: Inappropriate [Configuration]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/bin/gen_build b/bin/gen_build
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index b3412da4..29ce2f0c 100755
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- ./bin/gen_build
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ ./bin/gen_build
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -562,10 +562,7 @@ Dir.chdir(File.dirname(path)) do
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       builder.write(io, Target.new(path))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       atomic_write("#{builddir}/build.ninja.d") do |io|
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        dep = BuildDependencies.to_a.map do |file|
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          file.gsub(%r{^\./|/\.(?=/|$)}, '')
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        end
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        builder.dependencies(io, dep)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        io << "build.ninja: \n"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       end
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     end
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   end
</span></pre><pre style='margin:0'>

</pre>