From 3e0a0e5e2a0c952491a33b460858c84489e63a8f Mon Sep 17 00:00:00 2001 From: Smaarn Date: Sat, 18 Jan 2025 15:24:08 +0100 Subject: [PATCH 1/6] upgrade rutorrent 4.3.7 => 5.1.5 * Bump PHP requirement to 8.2 --- cross/rutorrent/Makefile | 2 +- cross/rutorrent/digests | 6 +++--- spk/rutorrent/Makefile | 8 ++++---- spk/rutorrent/src/conf/resource | 2 +- 4 files changed, 9 insertions(+), 9 deletions(-) diff --git a/cross/rutorrent/Makefile b/cross/rutorrent/Makefile index acbbe7a3d49..93935727f62 100644 --- a/cross/rutorrent/Makefile +++ b/cross/rutorrent/Makefile @@ -1,5 +1,5 @@ PKG_NAME = ruTorrent -PKG_VERS = 4.3.7 +PKG_VERS = 5.1.5 PKG_EXT = tar.gz PKG_DIST_NAME = v$(PKG_VERS).$(PKG_EXT) PKG_DIST_SITE = https://github.com/Novik/ruTorrent/archive/refs/tags diff --git a/cross/rutorrent/digests b/cross/rutorrent/digests index 6385dc83b86..063b5c536d6 100644 --- a/cross/rutorrent/digests +++ b/cross/rutorrent/digests @@ -1,3 +1,3 @@ -ruTorrent-4.3.7.tar.gz SHA1 d5eb78b7de4f84f216bb41551f8f4afd66cd4cee -ruTorrent-4.3.7.tar.gz SHA256 5aae962c65e6effdd3cf2d1edf6936c4343414de8271852a8174643b87a8a628 -ruTorrent-4.3.7.tar.gz MD5 b1d37f3a2ed4b0062d2eb057749a670a +ruTorrent-5.1.5.tar.gz SHA1 a6729b7bc126220dcb0c3344e1fce1bc7a18ef08 +ruTorrent-5.1.5.tar.gz SHA256 1855b6f9fc96df3897b67b2159f875ee4400e58e93912eea9c5befc94b14f62d +ruTorrent-5.1.5.tar.gz MD5 78fa7e7352f4e2115f7928bcd9645f5b diff --git a/spk/rutorrent/Makefile b/spk/rutorrent/Makefile index 906e3fdd691..5df4e5913c0 100644 --- a/spk/rutorrent/Makefile +++ b/spk/rutorrent/Makefile @@ -1,19 +1,19 @@ SPK_NAME = rutorrent -SPK_VERS = 4.3.7 -SPK_REV = 17 +SPK_VERS = 5.1.5 +SPK_REV = 18 SPK_ICON = src/rutorrent.png DSM_UI_DIR = app MAINTAINER = smaarn DESCRIPTION = ruTorrent is a front-end for the popular Bittorrent client rTorrent. rTorrent is a BitTorrent client for ncurses, using the libtorrent library. The client and library is written in C++ with emphasis on speed and efficiency, while delivering equivalent features to those found in GUI based clients in an ncurses client. DISPLAY_NAME = ruTorrent -CHANGELOG = "1. Upgrade rutorrent to 4.3.7" +CHANGELOG = "1. Upgrade rutorrent to 5.1.5" # newer libtorrent-rakshasa requires C++14 support REQUIRED_MIN_DSM = 7.0 UNSUPPORTED_ARCHS = comcerto2k -SPK_DEPENDS = "WebStation:python311:PHP7.4:Apache2.4" +SPK_DEPENDS = "WebStation:python311:PHP8.2:Apache2.4" WHEELS = src/requirements-pure.txt # Must be done prior to busybox (aarch64) diff --git a/spk/rutorrent/src/conf/resource b/spk/rutorrent/src/conf/resource index 21120fa4e72..016f99e95be 100644 --- a/spk/rutorrent/src/conf/resource +++ b/spk/rutorrent/src/conf/resource @@ -10,7 +10,7 @@ "php": { "profile_name": "ruTorrent", "profile_desc": "PHP profile used by ruTorrent", - "backend": 8, + "backend": 11, "extensions": [], "user": "sc-rutorrent", "open_basedir": null, From 960c5f8e4f1b517995a9a64c26542c8773a86879 Mon Sep 17 00:00:00 2001 From: hgy59 Date: Sat, 18 Jan 2025 22:26:41 +0100 Subject: [PATCH 2/6] rutorrent: update dependencies - update cross/libtorrent-rakshasa from v0.13.8 to v0.14.0 (drop specific commit by hash) - update cross/rtorrent from v0.9.8 to v0.10.0 (drop specific commit by hash) - update cross/xmlrpc-c from v1.51.06 to v1.59.03 - spk/rutorrent: - drop rutorrent.sc (same as default, generated by spksrc.spk.mk) - adjust changelog --- cross/libtorrent-rakshasa/Makefile | 31 ++++---- cross/libtorrent-rakshasa/PLIST | 4 +- cross/libtorrent-rakshasa/digests | 6 +- .../patches/001-fix-cross-compile.patch | 30 ++------ cross/rtorrent/Makefile | 15 ++-- cross/rtorrent/digests | 6 +- cross/rutorrent/Makefile | 12 +-- cross/sox/Makefile | 5 +- cross/xmlrpc-c/Makefile | 12 +-- cross/xmlrpc-c/PLIST | 74 +++++++++---------- cross/xmlrpc-c/digests | 6 +- spk/rutorrent/Makefile | 12 ++- spk/rutorrent/src/rutorrent.sc | 5 -- 13 files changed, 91 insertions(+), 127 deletions(-) delete mode 100644 spk/rutorrent/src/rutorrent.sc diff --git a/cross/libtorrent-rakshasa/Makefile b/cross/libtorrent-rakshasa/Makefile index d86b6f24e58..a6ba4a0cdd9 100644 --- a/cross/libtorrent-rakshasa/Makefile +++ b/cross/libtorrent-rakshasa/Makefile @@ -1,18 +1,13 @@ PKG_NAME = libtorrent -PKG_VERS = 0.13.8 +PKG_VERS = 0.14.0 PKG_EXT = tar.gz -PKG_DIST_SITE = https://github.com/rakshasa/libtorrent/archive -#PKG_DIST_NAME = v$(PKG_VERS).$(PKG_EXT) -#PKG_DIST_FILE = $(PKG_NAME)-$(PKG_VERS).$(PKG_EXT) -#PKG_DIR = $(PKG_NAME)-$(PKG_VERS) -PKG_GIT_HASH = 71a487c66b136524bce5519cb1f9e855621a9101 -PKG_DIST_NAME = $(PKG_GIT_HASH).$(PKG_EXT) -PKG_DIST_FILE = $(PKG_NAME)-git$(PKG_GIT_HASH).$(PKG_EXT) -PKG_DIR = $(PKG_NAME)-$(PKG_GIT_HASH) +PKG_DIST_NAME = $(PKG_NAME)-$(PKG_VERS).$(PKG_EXT) +PKG_DIST_SITE = https://github.com/rakshasa/rtorrent/releases/download/v0.10.0/ +PKG_DIR = $(PKG_NAME)-$(PKG_VERS) -DEPENDS = cross/cppunit cross/openssl3 cross/libsigc++ cross/zlib +DEPENDS = cross/zlib cross/openssl3 cross/libsigc++ -HOMEPAGE = https://rakshasa.github.io +HOMEPAGE = https://github.com/rakshasa/rtorrent/wiki COMMENT = LibTorrent is a BitTorrent library written in C++ for *nix, with a focus on high performance and good code. LICENSE = GPLv2 @@ -21,12 +16,12 @@ REQUIRED_MIN_DSM = 7.0 UNSUPPORTED_ARCHS = comcerto2k GNU_CONFIGURE = 1 -PRE_PATCH_TARGET = libtorrent_pre_patch -CONFIGURE_ARGS = --disable-instrumentation --with-zlib=$(STAGING_INSTALL_PREFIX) -ADDITIONAL_CXXFLAGS = -fno-strict-aliasing -include ../../mk/spksrc.cross-cc.mk +CONFIGURE_ARGS = --disable-instrumentation +CONFIGURE_ARGS += --with-zlib=$(STAGING_INSTALL_PREFIX) + +# disable some compiler warnings: +ADDITIONAL_CXXFLAGS = -Wno-deprecated-declarations -Wno-deprecated -Wno-terminate -Wno-sign-compare +ADDITIONAL_CFLAGS = -O2 -.PHONY: libtorrent_pre_patch -libtorrent_pre_patch: - @$(RUN) autoreconf -fi +include ../../mk/spksrc.cross-cc.mk diff --git a/cross/libtorrent-rakshasa/PLIST b/cross/libtorrent-rakshasa/PLIST index f5b53b07c77..aa09866d8ec 100644 --- a/cross/libtorrent-rakshasa/PLIST +++ b/cross/libtorrent-rakshasa/PLIST @@ -1,3 +1,3 @@ lnk:lib/libtorrent.so -lnk:lib/libtorrent.so.21 -lib:lib/libtorrent.so.21.0.0 +lnk:lib/libtorrent.so.22 +lib:lib/libtorrent.so.22.0.0 diff --git a/cross/libtorrent-rakshasa/digests b/cross/libtorrent-rakshasa/digests index 42389f29c57..5c92cc50060 100644 --- a/cross/libtorrent-rakshasa/digests +++ b/cross/libtorrent-rakshasa/digests @@ -1,3 +1,3 @@ -libtorrent-git71a487c66b136524bce5519cb1f9e855621a9101.tar.gz SHA1 5d19ed169d7cf9ef53ea847a074a24ba5d605993 -libtorrent-git71a487c66b136524bce5519cb1f9e855621a9101.tar.gz SHA256 259f80dcced1179a3215225b5dc243b0fe6392fd9b1e97ca4c542b39928c43d3 -libtorrent-git71a487c66b136524bce5519cb1f9e855621a9101.tar.gz MD5 60facb50262549eb87073c00865ab88c +libtorrent-0.14.0.tar.gz SHA1 177c05ddcaee270688c05f3d20e378daf18e3a1f +libtorrent-0.14.0.tar.gz SHA256 17b816da5807c7b3455a1a48aae8dacf0f4ef75b1a4372c758948710066fd3ec +libtorrent-0.14.0.tar.gz MD5 97d46c67411a451cf14b3e447377d542 diff --git a/cross/libtorrent-rakshasa/patches/001-fix-cross-compile.patch b/cross/libtorrent-rakshasa/patches/001-fix-cross-compile.patch index 58cd1edecf0..2a65876a623 100755 --- a/cross/libtorrent-rakshasa/patches/001-fix-cross-compile.patch +++ b/cross/libtorrent-rakshasa/patches/001-fix-cross-compile.patch @@ -1,29 +1,13 @@ ---- configure-ORIG 2024-08-30 11:34:24.394575860 +0000 -+++ configure 2024-08-30 11:37:24.038698880 +0000 -@@ -18196,7 +18196,7 @@ else $as_nop +# disable test execution when cross_compile = yes +# +--- configure.orig 2024-09-28 16:06:43.000000000 +0000 ++++ configure 2025-01-18 18:28:08.024342161 +0000 +@@ -18375,7 +18375,7 @@ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking the byte alignment" >&5 printf %s "checking the byte alignment... " >&6; } - if test "$cross_compiling" = yes + if test "$cross_compiling" = maybe then : - { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 - printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} -@@ -19209,7 +19209,7 @@ ac_compiler_gnu=$ac_cv_cxx_compiler_gnu - - - tmp_CXXFLAGS=$CXXFLAGS -- CXXFLAGS="$CXXFLAGS -fvisibility=hidden" -+ CXXFLAGS="$CXXFLAGS" - - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if compiler supports __attribute__((visibility(\"default\")))" >&5 - printf %s "checking if compiler supports __attribute__((visibility(\"default\")))... " >&6; } -@@ -19247,7 +19247,7 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu - - printf "%s\n" "#define SUPPORT_ATTRIBUTE_VISIBILITY 1" >>confdefs.h - -- CXXFLAGS="$CXXFLAGS -fvisibility=hidden" -+ CXXFLAGS="$CXXFLAGS" - - else - true + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 + printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;} diff --git a/cross/rtorrent/Makefile b/cross/rtorrent/Makefile index b254e925ac9..67f596c6fc4 100644 --- a/cross/rtorrent/Makefile +++ b/cross/rtorrent/Makefile @@ -1,14 +1,9 @@ PKG_NAME = rtorrent -PKG_VERS = 0.9.8 +PKG_VERS = 0.10.0 PKG_EXT = tar.gz -PKG_DIST_SITE = https://github.com/rakshasa/rtorrent/archive -#PKG_DIST_NAME = v$(PKG_VERS).$(PKG_EXT) -#PKG_DIST_FILE = $(PKG_NAME)-$(PKG_VERS).$(PKG_EXT) -#PKG_DIR = $(PKG_NAME)-$(PKG_VERS) -PKG_GIT_HASH = eacf9798e2787df7dd4d5c800a46bac7931ac41c -PKG_DIST_NAME = $(PKG_GIT_HASH).$(PKG_EXT) -PKG_DIST_FILE = $(PKG_NAME)-git$(PKG_GIT_HASH).$(PKG_EXT) -PKG_DIR = $(PKG_NAME)-$(PKG_GIT_HASH) +PKG_DIST_NAME = $(PKG_NAME)-$(PKG_VERS).$(PKG_EXT) +PKG_DIST_SITE = https://github.com/rakshasa/rtorrent/releases/download/v$(PKG_VERS) +PKG_DIR = $(PKG_NAME)-$(PKG_VERS) DEPENDS = cross/ncursesw cross/libsigc++ cross/curl cross/libtorrent-rakshasa cross/xmlrpc-c @@ -16,7 +11,7 @@ HOMEPAGE = https://rakshasa.github.com COMMENT = rTorrent is a BitTorrent client for ncurses, using the libtorrent library. The client and library is written in C++ with emphasis on speed and efficiency, while delivering equivalent features to those found in GUI based clients in an ncurses client. LICENSE = GPL -# newer libtorrent-rakshasa requires C++14 support +# libtorrent-rakshasa requires C++14 support REQUIRED_MIN_DSM = 7.0 UNSUPPORTED_ARCHS = comcerto2k diff --git a/cross/rtorrent/digests b/cross/rtorrent/digests index 3ce3ba275e7..b34780414b1 100644 --- a/cross/rtorrent/digests +++ b/cross/rtorrent/digests @@ -1,3 +1,3 @@ -rtorrent-giteacf9798e2787df7dd4d5c800a46bac7931ac41c.tar.gz SHA1 27fcaa6651b46c2b2b7a0275b1de1628e1b0291e -rtorrent-giteacf9798e2787df7dd4d5c800a46bac7931ac41c.tar.gz SHA256 714b06f0938b25df6d4e9e42a080f42abb9407f431a7e461e4de3bb6fc5aab1c -rtorrent-giteacf9798e2787df7dd4d5c800a46bac7931ac41c.tar.gz MD5 a6870aa16acb4dca606ccaded61f1862 +rtorrent-0.10.0.tar.gz SHA1 c717a1f60f3b0efd74f5b82887c15380ead63164 +rtorrent-0.10.0.tar.gz SHA256 cc65bba7abead24151f10af116eca2342b0c320fdff3cb8d604c0af09215d3aa +rtorrent-0.10.0.tar.gz MD5 94556d3c9838c0b89abefb33ac0118ed diff --git a/cross/rutorrent/Makefile b/cross/rutorrent/Makefile index 93935727f62..31405d67a33 100644 --- a/cross/rutorrent/Makefile +++ b/cross/rutorrent/Makefile @@ -2,7 +2,7 @@ PKG_NAME = ruTorrent PKG_VERS = 5.1.5 PKG_EXT = tar.gz PKG_DIST_NAME = v$(PKG_VERS).$(PKG_EXT) -PKG_DIST_SITE = https://github.com/Novik/ruTorrent/archive/refs/tags +PKG_DIST_SITE = https://github.com/Novik/ruTorrent/archive PKG_DIST_FILE = $(PKG_NAME)-$(PKG_VERS).$(PKG_EXT) PKG_DIR = $(PKG_NAME)-$(PKG_VERS) @@ -19,8 +19,8 @@ include ../../mk/spksrc.install-resources.mk .PHONY: rutorrent_install rutorrent_install: - rm -f $(WORK_DIR)/$(PKG_DIR)/.htaccess - chmod -R u+w $(WORK_DIR)/$(PKG_DIR) - cp src/favicon.ico $(WORK_DIR)/$(PKG_DIR) - mkdir -p $(STAGING_INSTALL_PREFIX)/share/rutorrent - tar -cf - -C $(WORK_DIR)/$(PKG_DIR) . | tar -xf - -C $(STAGING_INSTALL_PREFIX)/share/rutorrent + @rm -f $(WORK_DIR)/$(PKG_DIR)/.htaccess + @chmod -R u+w $(WORK_DIR)/$(PKG_DIR) + @cp src/favicon.ico $(WORK_DIR)/$(PKG_DIR) + @mkdir -p $(STAGING_INSTALL_PREFIX)/share/rutorrent + @tar -cf - -C $(WORK_DIR)/$(PKG_DIR) . | tar -xf - -C $(STAGING_INSTALL_PREFIX)/share/rutorrent diff --git a/cross/sox/Makefile b/cross/sox/Makefile index 999b321b458..5934e978971 100644 --- a/cross/sox/Makefile +++ b/cross/sox/Makefile @@ -2,7 +2,7 @@ PKG_NAME = sox PKG_VERS = 14.4.2 PKG_EXT = tar.gz PKG_DIST_NAME = $(PKG_NAME)-$(PKG_VERS).$(PKG_EXT) -PKG_DIST_SITE = https://sourceforge.net/projects/$(PKG_NAME)/files/sox/$(PKG_VERS)/ +PKG_DIST_SITE = https://sourceforge.net/projects/sox/files/sox/$(PKG_VERS) PKG_DIR = $(PKG_NAME)-$(PKG_VERS) DEPENDS = cross/flac @@ -14,5 +14,8 @@ COMMENT = SoX is the Swiss Army Knife of sound processing utilities. It can con LICENSE = GPL & LGPL v2 GNU_CONFIGURE = 1 +CONFIGURE_ARGS = --disable-static + +ADDITIONAL_CFLAGS = -O2 include ../../mk/spksrc.cross-cc.mk diff --git a/cross/xmlrpc-c/Makefile b/cross/xmlrpc-c/Makefile index d7bb091020a..4b171de5fbe 100644 --- a/cross/xmlrpc-c/Makefile +++ b/cross/xmlrpc-c/Makefile @@ -1,8 +1,8 @@ PKG_NAME = xmlrpc-c -PKG_VERS = 1.51.06 +PKG_VERS = 1.59.03 PKG_EXT = tgz PKG_DIST_NAME = $(PKG_NAME)-$(PKG_VERS).$(PKG_EXT) -PKG_DIST_SITE = https://sourceforge.net/projects/$(PKG_NAME)/files/Xmlrpc-c%20Super%20Stable/$(PKG_VERS) +PKG_DIST_SITE = https://sourceforge.net/projects/xmlrpc-c/files/Xmlrpc-c%20Super%20Stable/$(PKG_VERS) PKG_DIR = $(PKG_NAME)-$(PKG_VERS) DEPENDS = cross/libxml2 cross/curl @@ -11,16 +11,10 @@ HOMEPAGE = http://xmlrpc-c.sourceforge.net/ COMMENT = Programming library for writing an XML-RPC server or client in C or C++. LICENSE = BSD -PRE_CONFIGURE_TARGET = xmlrpc-c_pre_configure GNU_CONFIGURE = 1 CONFIGURE_ARGS = --enable-libxml2-backend - +# requires xml2-config in path to build libxml2-backend ENV += PATH=$(INSTALL_DIR)/$(INSTALL_PREFIX)/bin:$$PATH include ../../mk/spksrc.cross-cc.mk - -.PHONY: xmlrpc-c_pre_configure -xmlrpc-c_pre_configure: - cp $(STAGING_INSTALL_PREFIX)/lib/libxml2.* $(WORK_DIR)/$(PKG_DIR)/lib/libutil/ - cp $(STAGING_INSTALL_PREFIX)/lib/libcurl.* $(WORK_DIR)/$(PKG_DIR)/lib/libutil/ diff --git a/cross/xmlrpc-c/PLIST b/cross/xmlrpc-c/PLIST index 1665851abbc..4a5d90dfbc8 100644 --- a/cross/xmlrpc-c/PLIST +++ b/cross/xmlrpc-c/PLIST @@ -1,51 +1,51 @@ +lnk:lib/libxmlrpc++.so +lnk:lib/libxmlrpc++.so.9 +lib:lib/libxmlrpc++.so.9.59 +lnk:lib/libxmlrpc.so +lnk:lib/libxmlrpc.so.3 +lib:lib/libxmlrpc.so.3.59 lnk:lib/libxmlrpc_abyss++.so -lnk:lib/libxmlrpc_abyss++.so.8 -lnk:lib/libxmlrpc_abyss++.so.8.51 +lnk:lib/libxmlrpc_abyss++.so.9 +lnk:lib/libxmlrpc_abyss++.so.9.59 lnk:lib/libxmlrpc_abyss.so lnk:lib/libxmlrpc_abyss.so.3 -lib:lib/libxmlrpc_abyss.so.3.51 +lib:lib/libxmlrpc_abyss.so.3.59 +lnk:lib/libxmlrpc_client++.so +lnk:lib/libxmlrpc_client++.so.9 +lib:lib/libxmlrpc_client++.so.9.59 lnk:lib/libxmlrpc_client.so lnk:lib/libxmlrpc_client.so.3 -lib:lib/libxmlrpc_client.so.3.51 -lnk:lib/libxmlrpc_client++.so -lnk:lib/libxmlrpc_client++.so.8 -lib:lib/libxmlrpc_client++.so.8.51 +lib:lib/libxmlrpc_client.so.3.59 lnk:lib/libxmlrpc_cpp.so -lnk:lib/libxmlrpc_cpp.so.8 -lib:lib/libxmlrpc_cpp.so.8.51 +lnk:lib/libxmlrpc_cpp.so.9 +lib:lib/libxmlrpc_cpp.so.9.59 lnk:lib/libxmlrpc_packetsocket.so -lnk:lib/libxmlrpc_packetsocket.so.8 -lib:lib/libxmlrpc_packetsocket.so.8.51 +lnk:lib/libxmlrpc_packetsocket.so.9 +lib:lib/libxmlrpc_packetsocket.so.9.59 +lnk:lib/libxmlrpc_server++.so +lnk:lib/libxmlrpc_server++.so.9 +lib:lib/libxmlrpc_server++.so.9.59 +lnk:lib/libxmlrpc_server.so +lnk:lib/libxmlrpc_server.so.3 +lib:lib/libxmlrpc_server.so.3.59 +lnk:lib/libxmlrpc_server_abyss++.so +lnk:lib/libxmlrpc_server_abyss++.so.9 +lib:lib/libxmlrpc_server_abyss++.so.9.59 lnk:lib/libxmlrpc_server_abyss.so lnk:lib/libxmlrpc_server_abyss.so.3 -lib:lib/libxmlrpc_server_abyss.so.3.51 -lnk:lib/libxmlrpc_server_abyss++.so -lnk:lib/libxmlrpc_server_abyss++.so.8 -lib:lib/libxmlrpc_server_abyss++.so.8.51 +lib:lib/libxmlrpc_server_abyss.so.3.59 +lnk:lib/libxmlrpc_server_cgi++.so +lnk:lib/libxmlrpc_server_cgi++.so.9 +lib:lib/libxmlrpc_server_cgi++.so.9.59 lnk:lib/libxmlrpc_server_cgi.so lnk:lib/libxmlrpc_server_cgi.so.3 -lib:lib/libxmlrpc_server_cgi.so.3.51 -lnk:lib/libxmlrpc_server_cgi++.so -lnk:lib/libxmlrpc_server_cgi++.so.8 -lib:lib/libxmlrpc_server_cgi++.so.8.51 +lib:lib/libxmlrpc_server_cgi.so.3.59 lnk:lib/libxmlrpc_server_pstream++.so -lnk:lib/libxmlrpc_server_pstream++.so.8 -lib:lib/libxmlrpc_server_pstream++.so.8.51 -lnk:lib/libxmlrpc_server.so -lnk:lib/libxmlrpc_server.so.3 -lib:lib/libxmlrpc_server.so.3.51 -lnk:lib/libxmlrpc_server++.so -lnk:lib/libxmlrpc_server++.so.8 -lib:lib/libxmlrpc_server++.so.8.51 -lnk:lib/libxmlrpc.so -lnk:lib/libxmlrpc.so.3 -lib:lib/libxmlrpc.so.3.51 -lnk:lib/libxmlrpc++.so -lnk:lib/libxmlrpc++.so.8 -lib:lib/libxmlrpc++.so.8.51 +lnk:lib/libxmlrpc_server_pstream++.so.9 +lib:lib/libxmlrpc_server_pstream++.so.9.59 +lnk:lib/libxmlrpc_util++.so +lnk:lib/libxmlrpc_util++.so.9 +lib:lib/libxmlrpc_util++.so.9.59 lnk:lib/libxmlrpc_util.so lnk:lib/libxmlrpc_util.so.4 -lib:lib/libxmlrpc_util.so.4.51 -lnk:lib/libxmlrpc_util++.so -lnk:lib/libxmlrpc_util++.so.8 -lib:lib/libxmlrpc_util++.so.8.51 +lib:lib/libxmlrpc_util.so.4.59 diff --git a/cross/xmlrpc-c/digests b/cross/xmlrpc-c/digests index 6a4fc2946de..9ffdf9162ef 100644 --- a/cross/xmlrpc-c/digests +++ b/cross/xmlrpc-c/digests @@ -1,3 +1,3 @@ -xmlrpc-c-1.51.06.tgz SHA1 aa9a659cdcaa05270c6bda38ada76dd2bc46a5b9 -xmlrpc-c-1.51.06.tgz SHA256 06dcd87d9c88374559369ffbe83b3139cf41418c1a2d03f20e08808085f89fd0 -xmlrpc-c-1.51.06.tgz MD5 46d910a3597185cdda5ecaf689514d47 +xmlrpc-c-1.59.03.tgz SHA1 95c60c9c1666873f822465d644ec58380b5e2314 +xmlrpc-c-1.59.03.tgz SHA256 bdb71db42ab0be51591555885d11682b044c1034d4a3296401bf921ec0b233fe +xmlrpc-c-1.59.03.tgz MD5 34b02a850dc88a0d88bdd3add9f2bf9a diff --git a/spk/rutorrent/Makefile b/spk/rutorrent/Makefile index 5df4e5913c0..6ac2c8e36db 100644 --- a/spk/rutorrent/Makefile +++ b/spk/rutorrent/Makefile @@ -7,9 +7,9 @@ DSM_UI_DIR = app MAINTAINER = smaarn DESCRIPTION = ruTorrent is a front-end for the popular Bittorrent client rTorrent. rTorrent is a BitTorrent client for ncurses, using the libtorrent library. The client and library is written in C++ with emphasis on speed and efficiency, while delivering equivalent features to those found in GUI based clients in an ncurses client. DISPLAY_NAME = ruTorrent -CHANGELOG = "1. Upgrade rutorrent to 5.1.5" +CHANGELOG = "1. Upgrade rutorrent to 5.1.5.
2. Update rtorrent to v0.10.0.
3. Update libtorrent to v0.14.0." -# newer libtorrent-rakshasa requires C++14 support +# libtorrent-rakshasa requires C++14 support REQUIRED_MIN_DSM = 7.0 UNSUPPORTED_ARCHS = comcerto2k @@ -19,6 +19,7 @@ WHEELS = src/requirements-pure.txt # Must be done prior to busybox (aarch64) DEPENDS += cross/openssl3 +# pgrep commandline tool (used by _tasks plugin) see #4234 DEPENDS += cross/busybox export BUSYBOX_CONFIG=procutils @@ -43,7 +44,6 @@ DSM_UI_CONFIG = src/app/config # Required environment variables will be injected in service-setup.sh SERVICE_COMMAND = /var/packages/rutorrent/target/bin/rtorrent-daemon -FWPORTS = src/rutorrent.sc CONF_DIR = src/conf/ WIZARDS_DIR = $(WORK_DIR)/generated-wizards WIZARDS = install_uifile upgrade_uifile @@ -53,7 +53,7 @@ POST_STRIP_TARGET = rutorrent_extra_install SYSTEM_GROUP = http SERVICE_PORT = 8050 -SERVICE_PORT_TITLE = rutorrent RPC +SERVICE_PORT_TITLE = ruTorrent RPC SUPPORTED_LANGUAGES = fre @@ -86,8 +86,6 @@ generated-wizards: .PHONY: rutorrent_extra_install rutorrent_extra_install: - install -m 755 -d $(STAGING_DIR)/bin + install -m 755 -d $(STAGING_DIR)/bin $(STAGING_DIR)/var/.session $(STAGING_DIR)/tmp install -m 755 src/bin/rtorrent-daemon $(STAGING_DIR)/bin/rtorrent-daemon - install -m 755 -d $(STAGING_DIR)/var/.session install -m 644 src/rtorrent.rc $(STAGING_DIR)/var/rtorrent.rc - install -m 775 -d $(STAGING_DIR)/tmp diff --git a/spk/rutorrent/src/rutorrent.sc b/spk/rutorrent/src/rutorrent.sc deleted file mode 100644 index b8fd69141ba..00000000000 --- a/spk/rutorrent/src/rutorrent.sc +++ /dev/null @@ -1,5 +0,0 @@ -[rutorrent] -title="ruTorrent" -desc="ruTorrent" -port_forward="yes" -dst.ports="8050/tcp" From 9b347c4a34f2a4fbacab718ffb6af6ab54fb0dd9 Mon Sep 17 00:00:00 2001 From: hgy59 Date: Sat, 18 Jan 2025 23:49:06 +0100 Subject: [PATCH 3/6] update libtorrent-rakshasa and rtorrent to v0.15.1 --- cross/libtorrent-rakshasa/Makefile | 6 +- cross/libtorrent-rakshasa/PLIST | 4 +- cross/libtorrent-rakshasa/digests | 6 +- cross/rtorrent/Makefile | 25 +- cross/rtorrent/digests | 6 +- .../patches/001-add-building-lib-atomic.patch | 41 --- cross/rtorrent/src/linux-atomic.c | 279 ------------------ spk/rutorrent/Makefile | 2 +- 8 files changed, 19 insertions(+), 350 deletions(-) delete mode 100755 cross/rtorrent/patches/001-add-building-lib-atomic.patch delete mode 100755 cross/rtorrent/src/linux-atomic.c diff --git a/cross/libtorrent-rakshasa/Makefile b/cross/libtorrent-rakshasa/Makefile index a6ba4a0cdd9..bd308d2c2cc 100644 --- a/cross/libtorrent-rakshasa/Makefile +++ b/cross/libtorrent-rakshasa/Makefile @@ -1,8 +1,8 @@ PKG_NAME = libtorrent -PKG_VERS = 0.14.0 +PKG_VERS = 0.15.1 PKG_EXT = tar.gz PKG_DIST_NAME = $(PKG_NAME)-$(PKG_VERS).$(PKG_EXT) -PKG_DIST_SITE = https://github.com/rakshasa/rtorrent/releases/download/v0.10.0/ +PKG_DIST_SITE = https://github.com/rakshasa/rtorrent/releases/download/v$(PKG_VERS) PKG_DIR = $(PKG_NAME)-$(PKG_VERS) DEPENDS = cross/zlib cross/openssl3 cross/libsigc++ @@ -11,7 +11,7 @@ HOMEPAGE = https://github.com/rakshasa/rtorrent/wiki COMMENT = LibTorrent is a BitTorrent library written in C++ for *nix, with a focus on high performance and good code. LICENSE = GPLv2 -# requires C++14 support +# A compiler with support for C++14 language features is required. REQUIRED_MIN_DSM = 7.0 UNSUPPORTED_ARCHS = comcerto2k diff --git a/cross/libtorrent-rakshasa/PLIST b/cross/libtorrent-rakshasa/PLIST index aa09866d8ec..e3c4b699218 100644 --- a/cross/libtorrent-rakshasa/PLIST +++ b/cross/libtorrent-rakshasa/PLIST @@ -1,3 +1,3 @@ lnk:lib/libtorrent.so -lnk:lib/libtorrent.so.22 -lib:lib/libtorrent.so.22.0.0 +lnk:lib/libtorrent.so.23 +lib:lib/libtorrent.so.23.0.0 diff --git a/cross/libtorrent-rakshasa/digests b/cross/libtorrent-rakshasa/digests index 5c92cc50060..9c0cb77ac85 100644 --- a/cross/libtorrent-rakshasa/digests +++ b/cross/libtorrent-rakshasa/digests @@ -1,3 +1,3 @@ -libtorrent-0.14.0.tar.gz SHA1 177c05ddcaee270688c05f3d20e378daf18e3a1f -libtorrent-0.14.0.tar.gz SHA256 17b816da5807c7b3455a1a48aae8dacf0f4ef75b1a4372c758948710066fd3ec -libtorrent-0.14.0.tar.gz MD5 97d46c67411a451cf14b3e447377d542 +libtorrent-0.15.1.tar.gz SHA1 3c4cb30e872f2038cc4efa050b55119af2c1fc55 +libtorrent-0.15.1.tar.gz SHA256 ef96bcc1fe8c56108db2f323e562fb982af1e5f3f21086986d133518df874301 +libtorrent-0.15.1.tar.gz MD5 02b159afc8ecf23983a2e5b9a0f6073b diff --git a/cross/rtorrent/Makefile b/cross/rtorrent/Makefile index 67f596c6fc4..c6c0e80fcff 100644 --- a/cross/rtorrent/Makefile +++ b/cross/rtorrent/Makefile @@ -1,5 +1,5 @@ PKG_NAME = rtorrent -PKG_VERS = 0.10.0 +PKG_VERS = 0.15.1 PKG_EXT = tar.gz PKG_DIST_NAME = $(PKG_NAME)-$(PKG_VERS).$(PKG_EXT) PKG_DIST_SITE = https://github.com/rakshasa/rtorrent/releases/download/v$(PKG_VERS) @@ -11,28 +11,17 @@ HOMEPAGE = https://rakshasa.github.com COMMENT = rTorrent is a BitTorrent client for ncurses, using the libtorrent library. The client and library is written in C++ with emphasis on speed and efficiency, while delivering equivalent features to those found in GUI based clients in an ncurses client. LICENSE = GPL -# libtorrent-rakshasa requires C++14 support +# Requires compiler with C++14 support REQUIRED_MIN_DSM = 7.0 UNSUPPORTED_ARCHS = comcerto2k GNU_CONFIGURE = 1 -PRE_CONFIGURE_TARGET = rtorrent_pre_configure -PRE_PATCH_TARGET = rtorrent_pre_patch -PRE_COMPILE_TARGET = rtorrent_pre_compile CONFIGURE_ARGS = --with-xmlrpc-c=$(STAGING_INSTALL_PREFIX)/bin/xmlrpc-c-config +# let it find xml2-config (referenced in xmlrpc-c-config) +ENV += "PATH=$(PATH):$(STAGING_INSTALL_PREFIX)/bin" -include ../../mk/spksrc.cross-cc.mk - -.PHONY: rtorrent_pre_configure -rtorrent_pre_configure: - cp src/linux-atomic.c $(WORK_DIR)/$(PKG_DIR)/src +# disable some compiler warnings: +ADDITIONAL_CXXFLAGS = -Wno-deprecated-declarations -Wno-unused-parameter -Wno-terminate -Wno-sign-compare -Wno-class-memaccess -.PHONY: rtorrent_pre_patch -rtorrent_pre_patch: - @$(RUN) autoreconf -fi - -.PHONY: rtorrent_pre_compile -rtorrent_pre_compile: - @$(RUN) libtool --tag=CC --mode=compile $(TC_PATH)$(TC_PREFIX)gcc -g -O2 -MT src/linux-atomic.lo -MD -MP -MF src/linux-atomic.Tpo -c -o src/linux-atomic.lo src/linux-atomic.c - @$(RUN) libtool --tag=CC --mode=link $(TC_PATH)$(TC_PREFIX)gcc -g -O2 -o src/liblinux-atomic.la src/linux-atomic.lo +include ../../mk/spksrc.cross-cc.mk diff --git a/cross/rtorrent/digests b/cross/rtorrent/digests index b34780414b1..ba3a2bf37f7 100644 --- a/cross/rtorrent/digests +++ b/cross/rtorrent/digests @@ -1,3 +1,3 @@ -rtorrent-0.10.0.tar.gz SHA1 c717a1f60f3b0efd74f5b82887c15380ead63164 -rtorrent-0.10.0.tar.gz SHA256 cc65bba7abead24151f10af116eca2342b0c320fdff3cb8d604c0af09215d3aa -rtorrent-0.10.0.tar.gz MD5 94556d3c9838c0b89abefb33ac0118ed +rtorrent-0.15.1.tar.gz SHA1 81f6a17e211e099b28ca9b609837953ff6f1d17c +rtorrent-0.15.1.tar.gz SHA256 1d5437d7a6828f2f72a6c309f25f136eda1be69b059d250bc52e0d4185420506 +rtorrent-0.15.1.tar.gz MD5 2b2a7f832ad3e0e026ab1bd6d1c15866 diff --git a/cross/rtorrent/patches/001-add-building-lib-atomic.patch b/cross/rtorrent/patches/001-add-building-lib-atomic.patch deleted file mode 100755 index f5f01ab3841..00000000000 --- a/cross/rtorrent/patches/001-add-building-lib-atomic.patch +++ /dev/null @@ -1,41 +0,0 @@ -diff -uprN ../rtorrent-eacf9798e2787df7dd4d5c800a46bac7931ac41c-orig/src/Makefile.am ./src/Makefile.am ---- ../rtorrent-eacf9798e2787df7dd4d5c800a46bac7931ac41c-orig/src/Makefile.am 2024-08-20 17:56:03.000000000 +0000 -+++ ./src/Makefile.am 2024-08-30 12:25:51.533847996 +0000 -@@ -181,6 +181,7 @@ libsub_root_a_SOURCES = \ - control.h \ - globals.cc \ - globals.h \ -+ linux-atomic.c \ - option_parser.cc \ - option_parser.h \ - signal_handler.cc \ -diff -uprN ../rtorrent-eacf9798e2787df7dd4d5c800a46bac7931ac41c-orig/src/Makefile.in ./src/Makefile.in ---- ../rtorrent-eacf9798e2787df7dd4d5c800a46bac7931ac41c-orig/src/Makefile.in 2024-08-30 12:25:15.881424928 +0000 -+++ ./src/Makefile.in 2024-08-30 12:28:12.033508331 +0000 -@@ -433,7 +433,7 @@ top_build_prefix = @top_build_prefix@ - top_builddir = @top_builddir@ - top_srcdir = @top_srcdir@ - noinst_LIBRARIES = libsub_root.a --rtorrent_LDADD = libsub_root.a @PTHREAD_LIBS@ -+rtorrent_LDADD = libsub_root.a .libs/liblinux-atomic.a @PTHREAD_LIBS@ - rtorrent_SOURCES = main.cc - libsub_root_a_SOURCES = \ - core/curl_get.cc \ -@@ -612,6 +612,7 @@ libsub_root_a_SOURCES = \ - control.h \ - globals.cc \ - globals.h \ -+ linux-atomic.c \ - option_parser.cc \ - option_parser.h \ - signal_handler.cc \ -@@ -1004,6 +1005,9 @@ am--depfiles: $(am__depfiles_remade) - @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ - @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ $< - -+.c.o: -+@am__fastdepCXX_TRUE@ $(LTCOMPILE) -c -o $@ $< -+ - .cc.obj: - @am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ - @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ diff --git a/cross/rtorrent/src/linux-atomic.c b/cross/rtorrent/src/linux-atomic.c deleted file mode 100755 index 107b9f3a1af..00000000000 --- a/cross/rtorrent/src/linux-atomic.c +++ /dev/null @@ -1,279 +0,0 @@ -/* Linux-specific atomic operations for ARM EABI. - Copyright (C) 2008-2013 Free Software Foundation, Inc. - Contributed by CodeSourcery. - -This file is part of GCC. - -GCC 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, or (at your option) any later -version. - -GCC 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. - -Under Section 7 of GPL version 3, you are granted additional -permissions described in the GCC Runtime Library Exception, version -3.1, as published by the Free Software Foundation. - -You should have received a copy of the GNU General Public License and -a copy of the GCC Runtime Library Exception along with this program; -see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -. */ - -/* Kernel helper for compare-and-exchange. */ -typedef int (__kernel_cmpxchg_t) (int oldval, int newval, int *ptr); -#define __kernel_cmpxchg (*(__kernel_cmpxchg_t *) 0xffff0fc0) - -/* Kernel helper for memory barrier. */ -typedef void (__kernel_dmb_t) (void); -#define __kernel_dmb (*(__kernel_dmb_t *) 0xffff0fa0) - -/* Note: we implement byte, short and int versions of atomic operations using - the above kernel helpers; see linux-atomic-64bit.c for "long long" (64-bit) - operations. */ - -#define HIDDEN - -#ifdef __ARMEL__ -#define INVERT_MASK_1 0 -#define INVERT_MASK_2 0 -#else -#define INVERT_MASK_1 24 -#define INVERT_MASK_2 16 -#endif - -#define MASK_1 0xffu -#define MASK_2 0xffffu - -#define FETCH_AND_OP_WORD(OP, PFX_OP, INF_OP) \ - int HIDDEN \ - __sync_fetch_and_##OP##_4 (int *ptr, int val) \ - { \ - int failure, tmp; \ - \ - do { \ - tmp = *ptr; \ - failure = __kernel_cmpxchg (tmp, PFX_OP (tmp INF_OP val), ptr); \ - } while (failure != 0); \ - \ - return tmp; \ - } - -FETCH_AND_OP_WORD (add, , +) -FETCH_AND_OP_WORD (sub, , -) -FETCH_AND_OP_WORD (or, , |) -FETCH_AND_OP_WORD (and, , &) -FETCH_AND_OP_WORD (xor, , ^) -FETCH_AND_OP_WORD (nand, ~, &) - -#define NAME_oldval(OP, WIDTH) __sync_fetch_and_##OP##_##WIDTH -#define NAME_newval(OP, WIDTH) __sync_##OP##_and_fetch_##WIDTH - -/* Implement both __sync__and_fetch and __sync_fetch_and_ for - subword-sized quantities. */ - -#define SUBWORD_SYNC_OP(OP, PFX_OP, INF_OP, TYPE, WIDTH, RETURN) \ - TYPE HIDDEN \ - NAME##_##RETURN (OP, WIDTH) (TYPE *ptr, TYPE val) \ - { \ - int *wordptr = (int *) ((unsigned int) ptr & ~3); \ - unsigned int mask, shift, oldval, newval; \ - int failure; \ - \ - shift = (((unsigned int) ptr & 3) << 3) ^ INVERT_MASK_##WIDTH; \ - mask = MASK_##WIDTH << shift; \ - \ - do { \ - oldval = *wordptr; \ - newval = ((PFX_OP (((oldval & mask) >> shift) \ - INF_OP (unsigned int) val)) << shift) & mask; \ - newval |= oldval & ~mask; \ - failure = __kernel_cmpxchg (oldval, newval, wordptr); \ - } while (failure != 0); \ - \ - return (RETURN & mask) >> shift; \ - } - -SUBWORD_SYNC_OP (add, , +, short, 2, oldval) -SUBWORD_SYNC_OP (sub, , -, short, 2, oldval) -SUBWORD_SYNC_OP (or, , |, short, 2, oldval) -SUBWORD_SYNC_OP (and, , &, short, 2, oldval) -SUBWORD_SYNC_OP (xor, , ^, short, 2, oldval) -SUBWORD_SYNC_OP (nand, ~, &, short, 2, oldval) - -SUBWORD_SYNC_OP (add, , +, signed char, 1, oldval) -SUBWORD_SYNC_OP (sub, , -, signed char, 1, oldval) -SUBWORD_SYNC_OP (or, , |, signed char, 1, oldval) -SUBWORD_SYNC_OP (and, , &, signed char, 1, oldval) -SUBWORD_SYNC_OP (xor, , ^, signed char, 1, oldval) -SUBWORD_SYNC_OP (nand, ~, &, signed char, 1, oldval) - -#define OP_AND_FETCH_WORD(OP, PFX_OP, INF_OP) \ - int HIDDEN \ - __sync_##OP##_and_fetch_4 (int *ptr, int val) \ - { \ - int tmp, failure; \ - \ - do { \ - tmp = *ptr; \ - failure = __kernel_cmpxchg (tmp, PFX_OP (tmp INF_OP val), ptr); \ - } while (failure != 0); \ - \ - return PFX_OP (tmp INF_OP val); \ - } - -OP_AND_FETCH_WORD (add, , +) -OP_AND_FETCH_WORD (sub, , -) -OP_AND_FETCH_WORD (or, , |) -OP_AND_FETCH_WORD (and, , &) -OP_AND_FETCH_WORD (xor, , ^) -OP_AND_FETCH_WORD (nand, ~, &) - -SUBWORD_SYNC_OP (add, , +, short, 2, newval) -SUBWORD_SYNC_OP (sub, , -, short, 2, newval) -SUBWORD_SYNC_OP (or, , |, short, 2, newval) -SUBWORD_SYNC_OP (and, , &, short, 2, newval) -SUBWORD_SYNC_OP (xor, , ^, short, 2, newval) -SUBWORD_SYNC_OP (nand, ~, &, short, 2, newval) - -SUBWORD_SYNC_OP (add, , +, signed char, 1, newval) -SUBWORD_SYNC_OP (sub, , -, signed char, 1, newval) -SUBWORD_SYNC_OP (or, , |, signed char, 1, newval) -SUBWORD_SYNC_OP (and, , &, signed char, 1, newval) -SUBWORD_SYNC_OP (xor, , ^, signed char, 1, newval) -SUBWORD_SYNC_OP (nand, ~, &, signed char, 1, newval) - -int HIDDEN -__sync_val_compare_and_swap_4 (int *ptr, int oldval, int newval) -{ - int actual_oldval, fail; - - while (1) - { - actual_oldval = *ptr; - - if (__builtin_expect (oldval != actual_oldval, 0)) - return actual_oldval; - - fail = __kernel_cmpxchg (actual_oldval, newval, ptr); - - if (__builtin_expect (!fail, 1)) - return oldval; - } -} - -#define SUBWORD_VAL_CAS(TYPE, WIDTH) \ - TYPE HIDDEN \ - __sync_val_compare_and_swap_##WIDTH (TYPE *ptr, TYPE oldval, \ - TYPE newval) \ - { \ - int *wordptr = (int *)((unsigned int) ptr & ~3), fail; \ - unsigned int mask, shift, actual_oldval, actual_newval; \ - \ - shift = (((unsigned int) ptr & 3) << 3) ^ INVERT_MASK_##WIDTH; \ - mask = MASK_##WIDTH << shift; \ - \ - while (1) \ - { \ - actual_oldval = *wordptr; \ - \ - if (__builtin_expect (((actual_oldval & mask) >> shift) != \ - ((unsigned int) oldval & MASK_##WIDTH), 0)) \ - return (actual_oldval & mask) >> shift; \ - \ - actual_newval = (actual_oldval & ~mask) \ - | (((unsigned int) newval << shift) & mask); \ - \ - fail = __kernel_cmpxchg (actual_oldval, actual_newval, \ - wordptr); \ - \ - if (__builtin_expect (!fail, 1)) \ - return oldval; \ - } \ - } - -SUBWORD_VAL_CAS (short, 2) -SUBWORD_VAL_CAS (signed char, 1) - -typedef unsigned char bool; - -bool HIDDEN -__sync_bool_compare_and_swap_4 (int *ptr, int oldval, int newval) -{ - int failure = __kernel_cmpxchg (oldval, newval, ptr); - return (failure == 0); -} - -#define SUBWORD_BOOL_CAS(TYPE, WIDTH) \ - bool HIDDEN \ - __sync_bool_compare_and_swap_##WIDTH (TYPE *ptr, TYPE oldval, \ - TYPE newval) \ - { \ - TYPE actual_oldval \ - = __sync_val_compare_and_swap_##WIDTH (ptr, oldval, newval); \ - return (oldval == actual_oldval); \ - } - -SUBWORD_BOOL_CAS (short, 2) -SUBWORD_BOOL_CAS (signed char, 1) - -void HIDDEN -__sync_synchronize (void) -{ - __kernel_dmb (); -} - -int HIDDEN -__sync_lock_test_and_set_4 (int *ptr, int val) -{ - int failure, oldval; - - do { - oldval = *ptr; - failure = __kernel_cmpxchg (oldval, val, ptr); - } while (failure != 0); - - return oldval; -} - -#define SUBWORD_TEST_AND_SET(TYPE, WIDTH) \ - TYPE HIDDEN \ - __sync_lock_test_and_set_##WIDTH (TYPE *ptr, TYPE val) \ - { \ - int failure; \ - unsigned int oldval, newval, shift, mask; \ - int *wordptr = (int *) ((unsigned int) ptr & ~3); \ - \ - shift = (((unsigned int) ptr & 3) << 3) ^ INVERT_MASK_##WIDTH; \ - mask = MASK_##WIDTH << shift; \ - \ - do { \ - oldval = *wordptr; \ - newval = (oldval & ~mask) \ - | (((unsigned int) val << shift) & mask); \ - failure = __kernel_cmpxchg (oldval, newval, wordptr); \ - } while (failure != 0); \ - \ - return (oldval & mask) >> shift; \ - } - -SUBWORD_TEST_AND_SET (short, 2) -SUBWORD_TEST_AND_SET (signed char, 1) - -#define SYNC_LOCK_RELEASE(TYPE, WIDTH) \ - void HIDDEN \ - __sync_lock_release_##WIDTH (TYPE *ptr) \ - { \ - /* All writes before this point must be seen before we release \ - the lock itself. */ \ - __kernel_dmb (); \ - *ptr = 0; \ - } - -SYNC_LOCK_RELEASE (long long, 8) -SYNC_LOCK_RELEASE (int, 4) -SYNC_LOCK_RELEASE (short, 2) -SYNC_LOCK_RELEASE (char, 1) diff --git a/spk/rutorrent/Makefile b/spk/rutorrent/Makefile index 6ac2c8e36db..ca215e0e2e9 100644 --- a/spk/rutorrent/Makefile +++ b/spk/rutorrent/Makefile @@ -7,7 +7,7 @@ DSM_UI_DIR = app MAINTAINER = smaarn DESCRIPTION = ruTorrent is a front-end for the popular Bittorrent client rTorrent. rTorrent is a BitTorrent client for ncurses, using the libtorrent library. The client and library is written in C++ with emphasis on speed and efficiency, while delivering equivalent features to those found in GUI based clients in an ncurses client. DISPLAY_NAME = ruTorrent -CHANGELOG = "1. Upgrade rutorrent to 5.1.5.
2. Update rtorrent to v0.10.0.
3. Update libtorrent to v0.14.0." +CHANGELOG = "1. Upgrade rutorrent to 5.1.5.
2. Update rtorrent to v0.15.1.
3. Update libtorrent to v0.15.1." # libtorrent-rakshasa requires C++14 support REQUIRED_MIN_DSM = 7.0 From 82de8077ce8b9db66437b7b9d34f0cd1d2915371 Mon Sep 17 00:00:00 2001 From: hgy59 Date: Sun, 19 Jan 2025 01:02:54 +0100 Subject: [PATCH 4/6] rutorrent: update screen from v4.9.1 to v5.0.0 - add cross/screen5 (requires DSM 7, i.e. std c17) --- cross/screen5/Makefile | 27 +++++++++++++++++++++++++++ cross/screen5/PLIST | 1 + cross/screen5/digests | 3 +++ spk/rutorrent/Makefile | 4 ++-- 4 files changed, 33 insertions(+), 2 deletions(-) create mode 100644 cross/screen5/Makefile create mode 100644 cross/screen5/PLIST create mode 100644 cross/screen5/digests diff --git a/cross/screen5/Makefile b/cross/screen5/Makefile new file mode 100644 index 00000000000..c11a80cc595 --- /dev/null +++ b/cross/screen5/Makefile @@ -0,0 +1,27 @@ +PKG_NAME = screen +PKG_VERS = 5.0.0 +PKG_EXT = tar.gz +PKG_DIST_NAME = $(PKG_NAME)-$(PKG_VERS).$(PKG_EXT) +PKG_DIST_SITE = https://ftp.gnu.org/gnu/screen +PKG_DIR = $(PKG_NAME)-$(PKG_VERS) + +DEPENDS = cross/ncursesw cross/linux-pam + +# Compiler with support for std=c17 required +REQUIRED_MIN_DSM = 7.0 +UNSUPPORTED_ARCHS = comcerto2k + +HOMEPAGE = https://www.gnu.org/software/screen/ +COMMENT = Screen is a full-screen window manager that multiplexes a physical terminal between several processes, typically interactive shells. +LICENSE = GPLv2 + +GNU_CONFIGURE = 1 + +INSTALL_TARGET = screen_install + +include ../../mk/spksrc.cross-cc.mk + +.PHONY: screen_install +screen_install: + @$(MSG) "- Manually install screen (make install fails due to filesystem permissions)" + @$(RUN) install -c screen $(STAGING_INSTALL_PREFIX)/bin/$(PKG_NAME) diff --git a/cross/screen5/PLIST b/cross/screen5/PLIST new file mode 100644 index 00000000000..6f5a6ac9d72 --- /dev/null +++ b/cross/screen5/PLIST @@ -0,0 +1 @@ +bin:bin/screen diff --git a/cross/screen5/digests b/cross/screen5/digests new file mode 100644 index 00000000000..51a4aabdd61 --- /dev/null +++ b/cross/screen5/digests @@ -0,0 +1,3 @@ +screen-5.0.0.tar.gz SHA1 caedbcda3bb61d4e5d38526fd1f484b25a6420a0 +screen-5.0.0.tar.gz SHA256 f04a39d00a0e5c7c86a55338808903082ad5df4d73df1a2fd3425976aed94971 +screen-5.0.0.tar.gz MD5 befc115989242ed4bceeff8d8bfeb4e6 diff --git a/spk/rutorrent/Makefile b/spk/rutorrent/Makefile index ca215e0e2e9..511b89d28aa 100644 --- a/spk/rutorrent/Makefile +++ b/spk/rutorrent/Makefile @@ -7,7 +7,7 @@ DSM_UI_DIR = app MAINTAINER = smaarn DESCRIPTION = ruTorrent is a front-end for the popular Bittorrent client rTorrent. rTorrent is a BitTorrent client for ncurses, using the libtorrent library. The client and library is written in C++ with emphasis on speed and efficiency, while delivering equivalent features to those found in GUI based clients in an ncurses client. DISPLAY_NAME = ruTorrent -CHANGELOG = "1. Upgrade rutorrent to 5.1.5.
2. Update rtorrent to v0.15.1.
3. Update libtorrent to v0.15.1." +CHANGELOG = "1. Upgrade rutorrent to 5.1.5.
2. Update rtorrent to v0.15.1.
3. Update libtorrent to v0.15.1.
4. Update screen to v5.0.0." # libtorrent-rakshasa requires C++14 support REQUIRED_MIN_DSM = 7.0 @@ -28,7 +28,7 @@ DEPENDS += cross/curl export CURL_INCLUDE_EXECUTABLE=1 # Remaining dependencies -DEPENDS += cross/mediainfo cross/rtorrent cross/rutorrent cross/screen cross/sox cross/unzip +DEPENDS += cross/mediainfo cross/rtorrent cross/rutorrent cross/screen5 cross/sox cross/unzip ADMIN_URL = /rutorrent/ STARTABLE = yes From 668dac14d033b8951adf6b73301c57246c9b5a41 Mon Sep 17 00:00:00 2001 From: Smaarn Date: Sun, 19 Jan 2025 13:15:07 +0100 Subject: [PATCH 5/6] Rollback PHP requirement upgrade --- spk/rutorrent/Makefile | 2 +- spk/rutorrent/src/conf/resource | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/spk/rutorrent/Makefile b/spk/rutorrent/Makefile index 511b89d28aa..710476dd164 100644 --- a/spk/rutorrent/Makefile +++ b/spk/rutorrent/Makefile @@ -13,7 +13,7 @@ CHANGELOG = "1. Upgrade rutorrent to 5.1.5.
2. Update rtorrent to v0.15.1. REQUIRED_MIN_DSM = 7.0 UNSUPPORTED_ARCHS = comcerto2k -SPK_DEPENDS = "WebStation:python311:PHP8.2:Apache2.4" +SPK_DEPENDS = "WebStation:python311:PHP7.4:Apache2.4" WHEELS = src/requirements-pure.txt # Must be done prior to busybox (aarch64) diff --git a/spk/rutorrent/src/conf/resource b/spk/rutorrent/src/conf/resource index 016f99e95be..21120fa4e72 100644 --- a/spk/rutorrent/src/conf/resource +++ b/spk/rutorrent/src/conf/resource @@ -10,7 +10,7 @@ "php": { "profile_name": "ruTorrent", "profile_desc": "PHP profile used by ruTorrent", - "backend": 11, + "backend": 8, "extensions": [], "user": "sc-rutorrent", "open_basedir": null, From 36745b2677ad74de79a22e582a3f4077f8cc9e51 Mon Sep 17 00:00:00 2001 From: Smaarn Date: Sun, 19 Jan 2025 13:24:54 +0100 Subject: [PATCH 6/6] Remove DSM 6 support --- spk/rutorrent/src/service-setup.sh | 74 ++---------------------------- 1 file changed, 5 insertions(+), 69 deletions(-) diff --git a/spk/rutorrent/src/service-setup.sh b/spk/rutorrent/src/service-setup.sh index 32f796f5b3b..9bf9712c881 100644 --- a/spk/rutorrent/src/service-setup.sh +++ b/spk/rutorrent/src/service-setup.sh @@ -7,11 +7,7 @@ PYTHON_DIR="/var/packages/python311/target/bin" PATH="${SYNOPKG_PKGDEST}/env/bin:${SYNOPKG_PKGDEST}/bin:${SYNOPKG_PKGDEST}/usr/bin:${PYTHON_DIR}:${PATH}" # Others DSM6_WEB_DIR="/var/services/web" -if [ "${SYNOPKG_DSM_VERSION_MAJOR}" -ge 7 ]; then - WEB_DIR="/var/services/web_packages" -else - WEB_DIR="${DSM6_WEB_DIR}" -fi +WEB_DIR="/var/services/web_packages" APACHE_USER="$([ $(grep buildnumber /etc.defaults/VERSION | cut -d"\"" -f2) -ge 4418 ] && echo -n http || echo -n nobody)" APACHE_GROUP=${APACHE_USER} @@ -34,19 +30,6 @@ SVC_WRITE_PID=y SERVICE_COMMAND="env RUTORRENT_WEB_DIR=${RUTORRENT_WEB_DIR} SYNOPKG_PKGVAR=${SYNOPKG_PKGVAR} SYNOPKG_PKGDEST=${SYNOPKG_PKGDEST} ${SERVICE_COMMAND}" -check_acl() -{ - acl_path=$1 - acl_user=$2 - acl_permissions=$(synoacltool -get-perm "${acl_path}" "${acl_user}" | awk -F'Final permission: ' 'NF > 1 {print $2}' | tr -d '[] ') - if [ -z "${acl_permissions}" -o "${acl_permissions}" = "-------------" ]; then - return 1 - else - synoacltool -get-perm "${acl_path}" "${acl_user}" - return 0 - fi -} - fix_shared_folders_rights() { local folder=$1 @@ -83,29 +66,10 @@ service_postinst () # Install busybox stuff "${SYNOPKG_PKGDEST}/bin/busybox" --install "${SYNOPKG_PKGDEST}/bin" - if [ "${SYNOPKG_DSM_VERSION_MAJOR}" -lt 7 ]; then - - syno_user_add_to_legacy_group "${EFF_USER}" "${LEGACY_USER}" "${LEGACY_GROUP}" - - # Install the web interface - cp -pR -t "${WEB_DIR}" "${SYNOPKG_PKGDEST}/share/${PACKAGE}" - fi - # Allow direct-user access to rtorrent configuration file mv "${SYNOPKG_PKGVAR}/rtorrent.rc" "${RTORRENT_RC}" ln -s -T -f "${RTORRENT_RC}" "${SYNOPKG_PKGVAR}/.rtorrent.rc" - if [ "${SYNOPKG_DSM_VERSION_MAJOR}" -lt 7 ]; then - # Configure open_basedir - if [ "${APACHE_USER}" == "nobody" ]; then - echo -e "\nphp_admin_value open_basedir none\n" > /usr/syno/etc/sites-enabled-user/${PACKAGE}.conf - else - if [ -d "/etc/php/conf.d/" ]; then - echo -e "[PATH=${RUTORRENT_WEB_DIR}]\nopen_basedir = Null" > /etc/php/conf.d/com.synocommunity.packages.${PACKAGE}.ini - fi - fi - fi - # Configure files if [ "${SYNOPKG_PKG_STATUS}" == "INSTALL" ]; then TOP_DIR=`echo "${wizard_download_dir}" | cut -d "/" -f 2` @@ -137,19 +101,6 @@ service_postinst () else sed -i -e "/@watch_dir@/d" ${RTORRENT_RC} fi - - if [ "${SYNOPKG_DSM_VERSION_MAJOR}" -lt 7 ]; then - if [ "${wizard_disable_openbasedir}" == "true" ] && [ "${APACHE_USER}" == "http" ]; then - if [ -f "/etc/php/conf.d/user-settings.ini" ]; then - sed -i -e "s|^open_basedir.*|open_basedir = none|g" /etc/php/conf.d/user-settings.ini - initctl restart php-fpm > /dev/null 2>&1 - fi - fi - # Permissions handling - if [ "${BUILDNUMBER}" -ge "4418" ]; then - set_syno_permissions "${wizard_download_volume:=/volume1}/${wizard_download_share:=downloads}" "${GROUP}" - fi - fi fi # Setup a virtual environment with cloudscraper @@ -162,14 +113,6 @@ service_postinst () mkdir -p "${SYNOPKG_PKGDEST}/tmp" fix_shared_folders_rights "${SYNOPKG_PKGDEST}/tmp" - - if [ "${SYNOPKG_DSM_VERSION_MAJOR}" -lt 7 ]; then - # Allow passing through ${WEB_DIR} for sc-rutorrent user (#4295) - echo "Fixing shared folder access for ${WEB_DIR}" - check_acl "${WEB_DIR}" "${EFF_USER}" - [ $? -eq 1 ] \ - && synoacltool -add "${WEB_DIR}" "user:${EFF_USER}:allow:--x----------:---n" - fi if [ "${SYNOPKG_PKG_STATUS}" == "INSTALL" ]; then mkdir -p "${RUTORRENT_WEB_DIR}/share" @@ -177,9 +120,7 @@ service_postinst () # Allow read/write/execute over the share web/rutorrent/share directory fix_shared_folders_rights "${RUTORRENT_WEB_DIR}/share" - if [ "${SYNOPKG_DSM_VERSION_MAJOR}" -ge 7 ]; then - touch "${SYNOPKG_PKGVAR}/.dsm7_migrated" - fi + touch "${SYNOPKG_PKGVAR}/.dsm7_migrated" fi return 0 @@ -187,11 +128,6 @@ service_postinst () service_postuninst () { - if [ "${SYNOPKG_DSM_VERSION_MAJOR}" -lt 7 ]; then - # Remove the web interface - log_step "Removing web interface" - rm -fr "${RUTORRENT_WEB_DIR}" - fi return 0 } @@ -199,7 +135,7 @@ service_postuninst () service_save () { local source_directory="${RUTORRENT_WEB_DIR}" - if [ "${SYNOPKG_DSM_VERSION_MAJOR}" -ge 7 ] && [ ! -f "${SYNOPKG_PKGVAR}/.dsm7_migrated" ]; then + if [ -d "${DSM6_WEB_DIR}/${PACKAGE}" ] && [ ! -f "${SYNOPKG_PKGVAR}/.dsm7_migrated" ]; then source_directory="${DSM6_WEB_DIR}/${PACKAGE}" fi local ruTorrentConfigFile="${source_directory}/conf/config.php" @@ -383,8 +319,8 @@ service_restore () if is_not_defined_external_program 'php'; then define_external_program 'php' '/bin/php' '/usr/bin/php' fi - - if [ "${SYNOPKG_DSM_VERSION_MAJOR}" -ge 7 -a ! -f "${SYNOPKG_PKGVAR}/.dsm7_migrated" ]; then + + if [ ! -f "${SYNOPKG_PKGVAR}/.dsm7_migrated" ]; then touch "${SYNOPKG_PKGVAR}/.dsm7_migrated" fi