<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>