<pre style='margin:0'>
Ken (kencu) pushed a commit to branch master
in repository macports-ports.
</pre>
<p><a href="https://github.com/macports/macports-ports/commit/843c41df7f314a18b6d6dc1e060dac3e42cb3bc8">https://github.com/macports/macports-ports/commit/843c41df7f314a18b6d6dc1e060dac3e42cb3bc8</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 843c41df7f3 transmission-x11: allow build with gcc7
</span>843c41df7f3 is described below
<span style='display:block; white-space:pre;color:#808000;'>commit 843c41df7f314a18b6d6dc1e060dac3e42cb3bc8
</span>Author: Ken Cunningham <kencu@macports.org>
AuthorDate: Fri Mar 15 22:40:37 2024 -0700
<span style='display:block; white-space:pre;color:#404040;'> transmission-x11: allow build with gcc7
</span><span style='display:block; white-space:pre;color:#404040;'>
</span><span style='display:block; white-space:pre;color:#404040;'> adds two small patches to work around gcc7 issues
</span><span style='display:block; white-space:pre;color:#404040;'> when building this port
</span>---
net/transmission-x11/Portfile | 16 ++++++++++++
...ansmission-x11-gcc7-crypto-utils-constexpr.diff | 29 ++++++++++++++++++++++
...on-x11-gcc7-messagelogwindow-errorcode-fix.diff | 20 +++++++++++++++
3 files changed, 65 insertions(+)
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/net/transmission-x11/Portfile b/net/transmission-x11/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index 4aacc252b72..44d593f555a 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/net/transmission-x11/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/net/transmission-x11/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -71,6 +71,22 @@ default_variants +gtk
</span> # transmission-gtk(47187) malloc: *** error for object 0x33480a4: Non-aligned pointer being freed
legacysupport.redirect_bins transmission-cli transmission-create transmission-daemon transmission-edit transmission-gtk transmission-remote transmission-show
<span style='display:block; white-space:pre;background:#e0ffe0;'>+if [string match macports-gcc-7 ${configure.compiler}] {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # two patches that I believe are only needed to build with gcc7
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # work around std::tolower not being a constexpr. I am not sure how this
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # works on other compilers, as it seems it should not
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ patchfiles-append patch-transmission-x11-gcc7-crypto-utils-constexpr.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # work around std::ios_base::failure not deriving from std:system_error as
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # it should. This may be related to the way we force the CXX11_ABI off in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # MacPorts. At any rate, the code has to be adjusted as std::ios_base::failure
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # derives from std::exception when building with gcc7 on older Darwin, even if
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # the c++ standard is set to c++11 or newer
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ patchfiles-append patch-transmission-x11-gcc7-messagelogwindow-errorcode-fix.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> variant aqua description {Build Aqua front-end} {
configure.args-replace -DENABLE_QT=OFF -DENABLE_QT=ON \
-DENABLE_MAC=OFF -DENABLE_MAC=ON
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/net/transmission-x11/files/patch-transmission-x11-gcc7-crypto-utils-constexpr.diff b/net/transmission-x11/files/patch-transmission-x11-gcc7-crypto-utils-constexpr.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..94ef7b14f94
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/net/transmission-x11/files/patch-transmission-x11-gcc7-crypto-utils-constexpr.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,29 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git libtransmission/crypto-utils.cc libtransmission/crypto-utils.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index a77e2c9..aaea1f1 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- libtransmission/crypto-utils.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ libtransmission/crypto-utils.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -171,6 +171,11 @@ constexpr void tr_binary_to_hex(void const* vinput, void* voutput, size_t byte_l
</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;'>++// Custom constexpr function to convert a character to lowercase
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++constexpr char toLower(char c) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ return (c >= 'A' && c <= 'Z') ? (c - 'A' + 'a') : c;
</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;'>+ constexpr void tr_hex_to_binary(char const* input, void* voutput, size_t byte_length)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ auto constexpr Hex = "0123456789abcdef"sv;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -179,9 +184,9 @@ constexpr void tr_hex_to_binary(char const* input, void* voutput, size_t byte_le
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ for (size_t i = 0; i < byte_length; ++i)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- auto const upper_nibble = Hex.find(std::tolower(*input++));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- auto const lower_nibble = Hex.find(std::tolower(*input++));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- *output++ = (uint8_t)((upper_nibble << 4) | lower_nibble);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ auto const upper_nibble = Hex.find(toLower(*input++));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ auto const lower_nibble = Hex.find(toLower(*input++));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ *output++ = static_cast<uint8_t>((upper_nibble << 4) | lower_nibble);
</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;color:#808080;'>diff --git a/net/transmission-x11/files/patch-transmission-x11-gcc7-messagelogwindow-errorcode-fix.diff b/net/transmission-x11/files/patch-transmission-x11-gcc7-messagelogwindow-errorcode-fix.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..aafdcbc831f
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/net/transmission-x11/files/patch-transmission-x11-gcc7-messagelogwindow-errorcode-fix.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,20 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gtk/MessageLogWindow.cc gtk/MessageLogWindow.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 05ca819..6abdab7 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gtk/MessageLogWindow.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gtk/MessageLogWindow.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -227,12 +227,12 @@ void MessageLogWindow::Impl::doSave(Gtk::Window& parent, Glib::ustring const& fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fmt::format(
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ _("Couldn't save '{path}': {error} ({error_code})"),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fmt::arg("path", filename),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- fmt::arg("error", e.code().message()),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- fmt::arg("error_code", e.code().value())),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ fmt::arg("error", e.what()),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ fmt::arg("error_code", e.what())),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ false,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ TR_GTK_MESSAGE_TYPE(ERROR),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ TR_GTK_BUTTONS_TYPE(CLOSE));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- w->set_secondary_text(e.code().message());
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ w->set_secondary_text(e.what());
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ w->signal_response().connect([w](int /*response*/) mutable { w.reset(); });
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ w->show();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span></pre><pre style='margin:0'>
</pre>