- Update from version 4.0.5 to 4.0.6 - Update of rootfile not required - Bundled miniupnpc not working with build of 4.0.6 As we prefer not to use bundled packages where possible, this patch set builds miniupnpc prior to transmission. As miniupnpc is only required for the build of transmission, nothing is installed from miniupnpc. - miniupnpc-2.2.8 has a problem with transmission and needs a patch to fix it. Added into the transmission lfs file - Changelog 4.0.6 All Platforms Improved parsing HTTP tracker announce response. (#6223) Fixed 4.0.0 bug that caused some user scripts to have an invalid TR_TORRENT_TRACKERS environment variable. (#6434) Fixed 4.0.0 bug where alt-speed-enabled had no effect in settings.json. (#6483) Fixed 4.0.0 bug where the GTK client's "Use authentication" option was not saved between's sessions. (#6514) Fixed 4.0.0 bug where the filename for single-file torrents aren't sanitized. (#6846) macOS Client Fix: Sparkle support for handling beta version updates. (#5263) Fixed app unable to start when having many torrents and TimeMachine enabled. (#6523) Fix: Sparkle Version Comparator. (#6623) Qt Client Fixed 4.0.0 bug where piece size description text and slider state in torrent creation dialog are not always up-to-date. (#6516) GTK Client Fixed build when compiling with GTKMM 4. (#6393) Added developer name to metainfo files. (#6598) Added the launchable desktop-id to metainfo files. (#6779) Fixed build when compiling on BSD. (#6812) Web Client Fixed a 4.0.0 bug where the infinite ratio symbol was displayed incorrectly in the WebUI. (#6491, #6500) Fixed layout issue in speed display. (#6570) General UI improvement related to filterbar and fixes download/upload speed info wrap. (#6761) Daemon Fixed a couple of logging issues. (#6463) Everything Else Updated flatpak release metainfo. (#6357) Fixed libtransmission build on very old cmake versions. (#6418) UTP peer connections follow user-defined speed limits better now. (#6551) Only use a single concurrent queue for timeMachineExclude instead of one queue per torrent (#6523). (#6558) Fixed 4.0.5 bug where svg and png icons in the WebUI might not be displayed. (#6563) Fixed 4.0.0 bug where alt-speed-enabled had no effect in settings.json. (#6564) Fixed 4.0.0 bugs where some RPC methods don't put torrents in recently-active anymore. (#6565) Improved parsing HTTP tracker announce response. (#6567) Fixed compatibility with clang-format 18. (#6690) Fixed build when compiling with mbedtls 3.x . (#6823)
Signed-off-by: Adolf Belka adolf.belka@ipfire.org --- lfs/transmission | 7 ++-- ...ission-4.0.6-fix_for_miniupnpc-2.2.8.patch | 34 +++++++++++++++++++ 2 files changed, 38 insertions(+), 3 deletions(-) create mode 100644 src/patches/transmission-4.0.6-fix_for_miniupnpc-2.2.8.patch
diff --git a/lfs/transmission b/lfs/transmission index 298c2a0e9..1568b67e7 100644 --- a/lfs/transmission +++ b/lfs/transmission @@ -26,7 +26,7 @@ include Config
SUMMARY = A BitTorrent client with multiple UIs
-VER = 4.0.5 +VER = 4.0.6
THISAPP = transmission-$(VER) DL_FILE = $(THISAPP).tar.xz @@ -34,7 +34,7 @@ DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP) PROG = transmission -PAK_VER = 22 +PAK_VER = 23
DEPS =
@@ -48,7 +48,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_BLAKE2 = 60caa3bc615137b225d3ac3f25daa352c6960fcc848c91e5ea45488ae109d93b53e314e4683bd7c4ef3f9b2f364d796b6c5bb014ca647d3f44fb5c9df9f8c997 +$(DL_FILE)_BLAKE2 = 3eb1d851322299cb1b79c799f431c09db5aee1be0372fa2877e16508ca6f9e78ea42ed75520ab29a3325e62efcfca63a83559db73c39c981c9e2eddb403ef65a
install : $(TARGET)
@@ -81,6 +81,7 @@ $(subst %,%_BLAKE2,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE) + cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/transmission-4.0.6-fix_for_miniupnpc-2.2.8.patch cd $(DIR_APP) && cmake . \ -DCMAKE_INSTALL_PREFIX=/usr \ -DCMAKE_BUILD_TYPE=Release \ diff --git a/src/patches/transmission-4.0.6-fix_for_miniupnpc-2.2.8.patch b/src/patches/transmission-4.0.6-fix_for_miniupnpc-2.2.8.patch new file mode 100644 index 000000000..3426d13bc --- /dev/null +++ b/src/patches/transmission-4.0.6-fix_for_miniupnpc-2.2.8.patch @@ -0,0 +1,34 @@ +From febfe49ca3ecab1a7142ecb34012c1f0b2bcdee8 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?C=C5=93ur?= coeur@gmx.fr +Date: Sat, 15 Jun 2024 07:24:06 +0800 +Subject: [PATCH] bump miniupnpc to 2.2.8 (#6907) + +* bump miniupnpc to 2.2.8 + +* Avoid build error "ln: include/miniupnpc/.: Operation not permitted" +--- + Transmission.xcodeproj/project.pbxproj | 2 +- + libtransmission/port-forwarding-upnp.cc | 9 +++++++-- + third-party/miniupnp | 2 +- + 3 files changed, 9 insertions(+), 4 deletions(-) + +diff --git a/libtransmission/port-forwarding-upnp.cc b/libtransmission/port-forwarding-upnp.cc +index 6d7bbc7f7c2..a4146e0df13 100644 +--- a/libtransmission/port-forwarding-upnp.cc ++++ b/libtransmission/port-forwarding-upnp.cc +@@ -261,8 +261,13 @@ tr_port_forwarding_state tr_upnpPulse( + + FreeUPNPUrls(&handle->urls); + auto lanaddr = std::array<char, TR_ADDRSTRLEN>{}; +- if (UPNP_GetValidIGD(devlist, &handle->urls, &handle->data, std::data(lanaddr), std::size(lanaddr) - 1) == +- UPNP_IGD_VALID_CONNECTED) ++ if ( ++#if (MINIUPNPC_API_VERSION >= 18) ++ UPNP_GetValidIGD(devlist, &handle->urls, &handle->data, std::data(lanaddr), std::size(lanaddr) - 1, nullptr, 0) ++#else ++ UPNP_GetValidIGD(devlist, &handle->urls, &handle->data, std::data(lanaddr), std::size(lanaddr) - 1) ++#endif ++ == UPNP_IGD_VALID_CONNECTED) + { + tr_logAddInfo(fmt::format(_("Found Internet Gateway Device '{url}'"), fmt::arg("url", handle->urls.controlURL))); + tr_logAddInfo(fmt::format(_("Local Address is '{address}'"), fmt::arg("address", lanaddr.data())));
- miniupnpc is required for the build of transmiossion but the bundled version was not working properly with version 4.0.6 and we prefer to not use bundled versions. - Only used for the build so rootfile is 100% commented out. No miniupnpc installed on IPFire.
Signed-off-by: Adolf Belka adolf.belka@ipfire.org --- config/rootfiles/common/miniupnpc | 19 ++++++++ lfs/miniupnpc | 77 +++++++++++++++++++++++++++++++ make.sh | 1 + 3 files changed, 97 insertions(+) create mode 100644 config/rootfiles/common/miniupnpc create mode 100644 lfs/miniupnpc
diff --git a/config/rootfiles/common/miniupnpc b/config/rootfiles/common/miniupnpc new file mode 100644 index 000000000..616ea6131 --- /dev/null +++ b/config/rootfiles/common/miniupnpc @@ -0,0 +1,19 @@ +#usr/bin/external-ip +#usr/bin/upnp-listdevices +#usr/bin/upnpc +#usr/include/miniupnpc +#usr/include/miniupnpc/igd_desc_parse.h +#usr/include/miniupnpc/miniupnpc.h +#usr/include/miniupnpc/miniupnpc_declspec.h +#usr/include/miniupnpc/miniupnpctypes.h +#usr/include/miniupnpc/miniwget.h +#usr/include/miniupnpc/portlistingparse.h +#usr/include/miniupnpc/upnpcommands.h +#usr/include/miniupnpc/upnpdev.h +#usr/include/miniupnpc/upnperrors.h +#usr/include/miniupnpc/upnpreplyparse.h +#usr/lib/libminiupnpc.a +#usr/lib/libminiupnpc.so +#usr/lib/libminiupnpc.so.18 +#usr/lib/pkgconfig/miniupnpc.pc +#usr/share/man/man3/miniupnpc.3.gz diff --git a/lfs/miniupnpc b/lfs/miniupnpc new file mode 100644 index 000000000..7907bb5b9 --- /dev/null +++ b/lfs/miniupnpc @@ -0,0 +1,77 @@ +############################################################################### +# # +# IPFire.org - A linux based firewall # +# Copyright (C) 2024 IPFire Team info@ipfire.org # +# # +# This program is free software: you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation, either version 3 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program. If not, see http://www.gnu.org/licenses/. # +# # +############################################################################### + +############################################################################### +# Definitions +############################################################################### + +include Config + +VER = 2.2.8 + +THISAPP = miniupnpc-$(VER) +DL_FILE = $(THISAPP).tar.gz +DL_FROM = $(URL_IPFIRE) +DIR_APP = $(DIR_SRC)/$(THISAPP) +TARGET = $(DIR_INFO)/$(THISAPP) + +############################################################################### +# Top-level Rules +############################################################################### + +objects = $(DL_FILE) + +$(DL_FILE) = $(DL_FROM)/$(DL_FILE) + +$(DL_FILE)_BLAKE2 = eae4d97bdf8c494ea6744edfeb870f9d92df8468d23f974e0e44e735fc7c8925189ea58f60a71c37315aebff1269ae69e9413cdf80dc292c4b90df5f12bf58a4 + +install : $(TARGET) + +check : $(patsubst %,$(DIR_CHK)/%,$(objects)) + +download :$(patsubst %,$(DIR_DL)/%,$(objects)) + +b2 : $(subst %,%_BLAKE2,$(objects)) + +############################################################################### +# Downloading, checking, b2sum +############################################################################### + +$(patsubst %,$(DIR_CHK)/%,$(objects)) : + @$(CHECK) + +$(patsubst %,$(DIR_DL)/%,$(objects)) : + @$(LOAD) + +$(subst %,%_BLAKE2,$(objects)) : + @$(B2SUM) + +############################################################################### +# Installation Details +############################################################################### + +$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) + @$(PREBUILD) + @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE) + cd $(DIR_APP) && make + cd $(DIR_APP) && python3 setup.py build + cd $(DIR_APP) && make install + @rm -rf $(DIR_APP) + @$(POSTBUILD) diff --git a/make.sh b/make.sh index 42970b0c1..5199ca7c1 100755 --- a/make.sh +++ b/make.sh @@ -1984,6 +1984,7 @@ build_system() { lfsmake2 aws-cli lfsmake2 oci-python-sdk lfsmake2 oci-cli + lfsmake2 miniupnpc lfsmake2 transmission lfsmake2 mtr lfsmake2 minidlna