View | Details | Raw Unified | Return to bug 239921 | Differences between
and this patch

Collapse All | Expand All

(-)b/www/rutorrent/Makefile (+281 lines)
Added Link Here
1
PORTNAME=	rutorrent
2
PORTVERSION=	5.1.9.hotfix
3
DISTVERSIONPREFIX=v
4
CATEGORIES=	www
5
6
PATCH_SITES=	https://github.com/${GH_ACCOUNT}/${GH_PROJECT}/commit/
7
PATCHFILES+=	f68e87a37ecf4ab6901b8a7d929c837dd11edf60.patch:-p1 # https://github.com/Novik/ruTorrent/pull/2910
8
PATCHFILES+=	0dce8b693db18ffed50c2e9e42d41e35f1941a51.patch:-p1 # https://github.com/Novik/ruTorrent/pull/2911
9
10
MAINTAINER=	rozhuk.im@gmail.com
11
COMMENT=	Web front-end for the Bittorrent client rtorrent.
12
13
LICENSE=	GPLv3
14
LICENSE_FILE=	${WRKSRC}/LICENSE.md
15
16
USES=		php
17
18
NO_BUILD=	yes
19
NO_ARCH=	yes
20
USE_GITHUB=	yes
21
PORTEXAMPLES=	rutorent.conf
22
SUB_FILES=	pkg-message
23
GH_ACCOUNT=	Novik
24
GH_PROJECT=	ruTorrent
25
GH_TAGNAME=	c55d338d9fe83228f0aa0ea8a6953463fc5c320a
26
27
OPTIONS_DEFINE=	EXAMPLES
28
OPTIONS_GROUP=	PLUGINS 3RDPARTY
29
OPTIONS_GROUP_PLUGINS=	AUTOTOOLS BULKMAGNET CHECKPORT CHUNKS COOKIES CPULOAD \
30
		CREATE DATA DATADIR DISKSPACE EDIT ERASEDATA EXTRATIO \
31
		EXTSEARCH FEEDS FILEDROP GEOIP HISTORY HTTPRPC IPAD \
32
		LOGINMGR LOOKAT MEDIAINFO RATIO RETRACKERS RSS \
33
		RUTRKCHK SCHEDULER SCREENSHOTS SEEDINGTIME \
34
		SWTORRENT SOURCE SPECTROGRAM THEME THROTTLE TRACKLBLS \
35
		TRAFIC UNPACK UPLOADETA XMPP
36
OPTIONS_GROUP_3RDPARTY=	HOSTNAME MOBILE INSTANTSEARCH PAUSEWEBUI \
37
		RATIOCOLOR
38
OPTIONS_DEFAULT=CHUNKS CREATE DATADIR EDIT ERASEDATA HOSTNAME \
39
		SCHEDULER SEEDINGTIME SOURCE TRACKLBLS TRAFIC
40
OPTIONS_SUB=	yes
41
42
3RDPARTY_DESC=	3rd party plugins
43
44
AUTOTOOLS_DESC=	Provides some possibilities on automation
45
AUTOTOOLS_DIRS=	autotools
46
47
BULKMAGNET_DESC=Allows bulk operations with magnet links
48
BULKMAGNET_DIRS=bulk_magnet
49
50
CHECKPORT_DESC=	Adds incoming port status indicator
51
CHECKPORT_DIRS=	check_port
52
53
CHUNKS_DESC=	Shows the download status of torrent chunks
54
CHUNKS_DIRS=	chunks
55
56
COOKIES_DESC=	Use cookies for client authentication on trackers
57
COOKIES_DIRS=	cookies
58
59
CPULOAD_DESC=	Adds a CPU Load usage bar to the bottom toolbar
60
CPULOAD_DIRS=	cpuload
61
62
CREATE_DESC=	Allows for the creation of new .torrent files
63
CREATE_DIRS=	create
64
65
DATA_DESC=	Adds the "Get File" item to the right click menu
66
DATA_DIRS=	data
67
68
DATADIR_DESC=	Replacement of the cur torrent data dir
69
DATADIR_DIRS=	datadir
70
71
DISKSPACE_DESC=	Adds an easy to read disk meter
72
DISKSPACE_DIRS=	diskspace
73
74
EDIT_DESC=	Edit list of trackers and comment of the torrent
75
EDIT_DIRS=	edit
76
77
ERASEDATA_DESC=	Allows to delete data via context menu
78
ERASEDATA_DIRS=	erasedata
79
80
EXTRATIO_DESC=	Extends the functionality of the ratio plugin
81
EXTRATIO_DIRS=	extratio
82
EXTRATIO_IMPLIES=RATIO
83
84
EXTSEARCH_DESC=	Allows to search many popular torrent sites
85
EXTSEARCH_DIRS=	extsearch
86
87
FEEDS_DESC=	Making RSS feeds with information of torrents
88
FEEDS_DIRS=	feeds
89
90
FILEDROP_DESC=	Allows to drag multiple torrents to the browser
91
FILEDROP_DIRS=	filedrop
92
93
GEOIP_DESC=	Shows geolocation of peers for the selected torrent
94
GEOIP_DIRS=	geoip
95
96
HISTORY_DESC=	Log a history of torrents
97
HISTORY_DIRS=	history
98
99
HTTPRPC_DESC=	Replacement for the mod_scgi webserver module
100
HTTPRPC_DIRS=	httprpc
101
102
IPAD_DESC=	Use scrolling and right-click mouse button
103
IPAD_DIRS=	ipad
104
105
LOGINMGR_DESC=	Used to login to 3rd party torrent sites
106
LOGINMGR_DIRS=	loginmgr
107
108
LOOKAT_DESC=	Search for torrent name in external sources
109
LOOKAT_DIRS=	lookat
110
111
MEDIAINFO_DESC=		Display media file information
112
MEDIAINFO_DIRS=		mediainfo
113
MEDIAINFO_RUN_DEPENDS=	mediainfo:multimedia/mediainfo
114
115
RATIO_DESC=	Set ratio limits for groups of torrents
116
RATIO_DIRS=	extratio ratio
117
118
RETRACKERS_DESC=Add specified trackers to newly added torrents
119
RETRACKERS_DIRS=retrackers
120
121
RSS_DESC=	Fetch torrents via rss download links
122
RSS_DIRS=	rss rssurlrewrite
123
124
RUTRKCHK_DESC=	Checks the rutracker.org for changed torrents
125
RUTRKCHK_DIRS=	rutracker_check
126
127
SCHEDULER_DESC=	Scheduler to control limits
128
SCHEDULER_DIRS=	scheduler
129
130
SCREENSHOTS_DESC=	Show screenshots from video
131
SCREENSHOTS_DIRS=	screenshots
132
SCREENSHOTS_RUN_DEPENDS=ffmpeg:multimedia/ffmpeg
133
134
SEEDINGTIME_DESC=Adds the columns 'Finished' and 'Added'
135
SEEDINGTIME_DIRS=seedingtime
136
137
SWTORRENT_DESC=	Show peers like wTorrent
138
SWTORRENT_DIRS=	show_peers_like_wtorrent
139
140
SOURCE_DESC=	Adds a "Get .torrent" to the click context menu
141
SOURCE_DIRS=	source
142
143
SPECTROGRAM_DESC=	Show spectrogram of audio files
144
SPECTROGRAM_DIRS=	spectrogram
145
SPECTROGRAM_RUN_DEPENDS=sox:audio/sox
146
147
THEME_DESC=	Allows change gui theme
148
THEME_DIRS=	theme
149
150
THROTTLE_DESC=	Set limits of speed for groups of torrents
151
THROTTLE_DIRS=	throttle
152
153
TRACKLBLS_DESC=	Adds a set of labels on the category panel
154
TRACKLBLS_DIRS=	tracklabels
155
156
TRAFIC_DESC=	Subsystem for monitoring rtorrent traffic totals
157
TRAFIC_DIRS=	trafic
158
159
UNPACK_DESC=		unrar/unzip torrent data
160
UNPACK_DIRS=		unpack
161
UNPACK_RUN_DEPENDS=	unrar:archivers/unrar
162
163
UPLOADETA_DESC=	Add upload target and ETA columns
164
UPLOADETA_DIRS=	uploadeta
165
166
XMPP_DESC=	Send notification via xmpp about finished downloads
167
XMPP_DIRS=	xmpp
168
169
HOSTNAME_DESC=		Add hostname column to peers tab
170
HOSTNAME_DIRS=		hostname
171
HOSTNAME_GH_ACCOUNT=	rozhuk-im:plugin_hostname
172
HOSTNAME_GH_PROJECT=	rutorrent-hostname:plugin_hostname
173
HOSTNAME_GH_TAGNAME=	3ea65a6934144c403d534ba1bc86c57263686c6e:plugin_hostname
174
175
INSTANTSEARCH_DESC=	Searchresults appears instantly
176
INSTANTSEARCH_DIRS=	instantsearch
177
INSTANTSEARCH_GH_ACCOUNT=Gyran:plugin_instantsearch
178
INSTANTSEARCH_GH_PROJECT=rutorrent-instantsearch:plugin_instantsearch
179
INSTANTSEARCH_GH_TAGNAME=d1bc52d6ef6547bc643312b5868c3662c7118a9b:plugin_instantsearch
180
181
MOBILE_DESC=		Mobile version of ruTorrent
182
MOBILE_DIRS=		mobile
183
MOBILE_GH_ACCOUNT=	xombiemp:plugin_mobile
184
MOBILE_GH_PROJECT=	rutorrentMobile:plugin_mobile
185
MOBILE_GH_TAGNAME=	e3555a935469f810ea755516a6f0d85046571114:plugin_mobile
186
187
PAUSEWEBUI_DESC=	Adds an button to pause the webui from updating
188
PAUSEWEBUI_DIRS=	pausewebui
189
PAUSEWEBUI_GH_ACCOUNT=	Gyran:plugin_pausewebui
190
PAUSEWEBUI_GH_PROJECT=	rutorrent-pausewebui:plugin_pausewebui
191
PAUSEWEBUI_GH_TAGNAME=	b398483f1e70c8e215ddbe34dfe3af3fc5f192ef:plugin_pausewebui
192
193
RATIOCOLOR_DESC=	Change color of ratio column depending on ratio
194
RATIOCOLOR_DIRS=	ratiocolor
195
RATIOCOLOR_GH_ACCOUNT=	Gyran:plugin_ratiocolor
196
RATIOCOLOR_GH_PROJECT=	rutorrent-ratiocolor:plugin_ratiocolor
197
RATIOCOLOR_GH_TAGNAME=	3ab4962be86d17fb83649b6db44767796ee377de:plugin_ratiocolor
198
199
.include <bsd.port.pre.mk>
200
201
.if ${PORT_OPTIONS:MIPAD} && ${PORT_OPTIONS:MMOBILE}
202
IGNORE=			options IPAD and WebUI are incopatible
203
.endif
204
205
post-extract-HOSTNAME-on:
206
	@${MKDIR} ${WRKSRC}/plugins/hostname/
207
	@${MV} ${WRKSRC_plugin_hostname}/* ${WRKSRC}/plugins/hostname/
208
209
post-extract-INSTANTSEARCH-on:
210
	@${MKDIR} ${WRKSRC}/plugins/instantsearch/
211
	@${MV} ${WRKSRC_plugin_instantsearch}/* ${WRKSRC}/plugins/instantsearch/
212
213
post-extract-MOBILE-on:
214
	@${MKDIR} ${WRKSRC}/plugins/mobile/
215
	@${MV} ${WRKSRC_plugin_mobile}/* ${WRKSRC}/plugins/mobile/
216
217
post-extract-PAUSEWEBUI-on:
218
	@${MKDIR} ${WRKSRC}/plugins/pausewebui/
219
	@${MV} ${WRKSRC_plugin_pausewebui}/* ${WRKSRC}/plugins/pausewebui/
220
221
post-extract-RATIOCOLOR-on:
222
	@${MKDIR} ${WRKSRC}/plugins/ratiocolor/
223
	@${MV} ${WRKSRC_plugin_ratiocolor}/* ${WRKSRC}/plugins/ratiocolor/
224
225
do-install:
226
	# Prepare.
227
	@${FIND} ${WRKSRC} -type f \( \
228
		-name '*.orig' \
229
		-o -name '*.bak' \
230
		-o -name '.gitignore' \) -delete
231
	@${MKDIR} ${STAGEDIR}${WWWDIR}
232
	# Install base files.
233
.for _dir in conf css images js lang php share
234
	@(cd ${WRKSRC} && ${COPYTREE_SHARE} ${_dir} ${STAGEDIR}${WWWDIR})
235
.endfor
236
.for _file in index.html
237
	${INSTALL_DATA} ${WRKSRC}/${_file} ${STAGEDIR}${WWWDIR}/
238
.endfor
239
	# Install base plugins.
240
	@${MKDIR} ${STAGEDIR}${WWWDIR}/plugins
241
.for _dir in _cloudflare _getdir _noty _noty2 _task
242
	@(cd ${WRKSRC}/plugins && ${COPYTREE_SHARE} ${_dir} ${STAGEDIR}${WWWDIR}/plugins)
243
.endfor
244
	# Install selected plugins.
245
.for _opt in ${OPTIONS_GROUP_PLUGINS} ${OPTIONS_GROUP_3RDPARTY}
246
.  if ${PORT_OPTIONS:M${_opt}}
247
.    for _dir in ${${_opt}_DIRS}
248
	@(cd ${WRKSRC}/plugins && ${COPYTREE_SHARE} ${_dir} ${STAGEDIR}${WWWDIR}/plugins)
249
.    endfor
250
.  endif
251
.endfor
252
	# Fix perms.
253
	@${FIND} ${STAGEDIR}${WWWDIR} -type f -name "*.sh" -exec ${CHMOD} +x {} \+
254
	# Rename config files to .sample.
255
.for _conf in access.ini config.php plugins.ini
256
	@${MV} ${STAGEDIR}${WWWDIR}/conf/${_conf} ${STAGEDIR}${WWWDIR}/conf/${_conf}.sample
257
.endfor
258
	# Rename plugins configs to .sample.
259
	@${FIND} ${STAGEDIR}${WWWDIR}/plugins -maxdepth 2 -type f \
260
		-name "conf.php" -exec ${MV} {} {}.sample \;
261
262
post-install-EXAMPLES-on:
263
	@${MKDIR} ${STAGEDIR}${EXAMPLESDIR}
264
	${INSTALL_DATA} ${FILESDIR}/rutorent.conf ${STAGEDIR}${EXAMPLESDIR}/
265
266
post-stage:
267
	# Generate plist.
268
	@${SETENV} ${CO_ENV} ${SH} ${SCRIPTSDIR}/check-stagedir.sh makeplist | \
269
		${GREP} -v ^\/ | \
270
		${SED} -e 's|%%WWWDIR%%|www/${PORTNAME}|' \
271
			-e 's|%%PORTEXAMPLES%%||' \
272
			-e 's|%%EXAMPLESDIR%%|share/examples/${PORTNAME}|' \
273
			> ${TMPPLIST}
274
	# Mark config files as samples in plist.
275
	@${REINPLACE_CMD} -E "s|(.*\.sample)$$|@sample \1|" ${TMPPLIST}
276
	# Fix perms.
277
	@${ECHO_CMD} "@postexec chown -R root:${WWWGRP} ${WWWDIR}/share" >> ${TMPPLIST}
278
	@${ECHO_CMD} "@postexec chmod -R u=rwX,g=rwX,o=rwX ${WWWDIR}/share" >> ${TMPPLIST}
279
	@${ECHO_CMD} "@postexec chmod u=rw,g=r,o=r ${WWWDIR}/share/.htaccess" >> ${TMPPLIST}
280
281
.include <bsd.port.post.mk>
(-)b/www/rutorrent/distinfo (+9 lines)
Added Link Here
1
TIMESTAMP = 1746220758
2
SHA256 (Novik-ruTorrent-v5.1.9.hotfix-c55d338d9fe83228f0aa0ea8a6953463fc5c320a_GH0.tar.gz) = 90e7715b95cf3793d9b0a0fee4fc0af115b2900d984c0e6dde2046bba2df202a
3
SIZE (Novik-ruTorrent-v5.1.9.hotfix-c55d338d9fe83228f0aa0ea8a6953463fc5c320a_GH0.tar.gz) = 2743406
4
SHA256 (rozhuk-im-rutorrent-hostname-3ea65a6934144c403d534ba1bc86c57263686c6e_GH0.tar.gz) = 6beefd8cfbfbd547c23fd87f1cd2cd907039722afcfdfa47732807da570ed516
5
SIZE (rozhuk-im-rutorrent-hostname-3ea65a6934144c403d534ba1bc86c57263686c6e_GH0.tar.gz) = 4416
6
SHA256 (f68e87a37ecf4ab6901b8a7d929c837dd11edf60.patch) = 7b9b78a52afdd4d873b4f361894a2ce436801c39f9ecaab5851aec6dc5abee98
7
SIZE (f68e87a37ecf4ab6901b8a7d929c837dd11edf60.patch) = 2510
8
SHA256 (0dce8b693db18ffed50c2e9e42d41e35f1941a51.patch) = ccb1e206c0ac9533290139414944c2878ad69774f631a3e75c862cfd546ffed6
9
SIZE (0dce8b693db18ffed50c2e9e42d41e35f1941a51.patch) = 1257
(-)b/www/rutorrent/files/patch-conf_config.php (+51 lines)
Added Link Here
1
--- conf/config.php.orig	2024-10-27 15:31:31 UTC
2
+++ conf/config.php
3
@@ -30,14 +30,14 @@
4
 
5
 	$log_file = '/tmp/errors.log';		// path to log file (comment or leave blank to disable logging)
6
 
7
-	$saveUploadedTorrents = true;		// Save uploaded torrents to profile/torrents directory or not
8
+	$saveUploadedTorrents = false;		// Save uploaded torrents to profile/torrents directory or not
9
 	$overwriteUploadedTorrents = false;	// Overwrite existing uploaded torrents in profile/torrents directory or make unique name
10
 
11
 	$topDirectory = '/';			// Upper available directory. Absolute path with trail slash.
12
 	$forbidUserSettings = false;
13
 
14
-	$scgi_port = 5000;
15
-	$scgi_host = "127.0.0.1";
16
+	$scgi_port = 0;
17
+	$scgi_host = "unix:///var/run/rtorrent-rpc.sock";
18
 
19
 	// For web->rtorrent link through unix domain socket
20
 	// (scgi_local in rtorrent conf file), change variables
21
@@ -52,11 +52,17 @@
22
 	// Can't be greater then 327625*1024 due to limitation in libtorrent ResourceManager::set_max_upload_unchoked function.
23
 
24
 	$pathToExternals = array(
25
-		"php"	=> '',			// Something like /usr/bin/php. If empty, will be found in PATH.
26
-		"curl"	=> '',			// Something like /usr/bin/curl. If empty, will be found in PATH.
27
-		"gzip"	=> '',			// Something like /usr/bin/gzip. If empty, will be found in PATH.
28
-		"id"	=> '',			// Something like /usr/bin/id. If empty, will be found in PATH.
29
-		"stat"	=> '',			// Something like /usr/bin/stat. If empty, will be found in PATH.
30
+		"php"	=> '/usr/local/bin/php',	// Something like /usr/bin/php. If empty, will be found in PATH.
31
+		"curl"	=> '/usr/local/bin/curl',	// Something like /usr/bin/curl. If empty, will be found in PATH.
32
+		"gzip"	=> '/usr/bin/gzip',		// Something like /usr/bin/gzip. If empty, will be found in PATH.
33
+		"id"	=> '/usr/bin/id',		// Something like /usr/bin/id. If empty, will be found in PATH.
34
+		"stat"	=> '/usr/bin/stat',		// Something like /usr/bin/stat. If empty, will be found in PATH.
35
+		"pgrep"	=> '/bin/pgrep',
36
+		"unzip"	=> '/usr/bin/unzip',
37
+		"unrar"	=> '/usr/local/bin/unrar',
38
+		"ffmpeg"=> '/usr/local/bin/ffmpeg',
39
+		"sox"	=> '/usr/local/bin/sox',
40
+		"mediainfo"=> '/usr/local/bin/mediainfo',
41
 	);
42
 
43
 	$localHostedMode = false;		// Set to true if rTorrent is hosted on the SAME machine as ruTorrent
44
@@ -65,6 +71,7 @@
45
 										// Required to clear web browser cache when upgrading versions	
46
 
47
 	$localhosts = array(			// list of local interfaces
48
+		"::1",
49
 		"127.0.0.1",
50
 		"localhost",
51
 	);
(-)b/www/rutorrent/files/pkg-message.in (+30 lines)
Added Link Here
1
[
2
{ type: install
3
  message: <<EOM
4
5
rtorrent must be build with xml-rpc support.
6
7
An example configuration file for nginx has been installed in
8
%%EXAMPLESDIR%%.
9
10
More information about setup:
11
https://github.com/Novik/ruTorrent/wiki/MainInstall
12
https://github.com/Novik/ruTorrent/wiki/Config
13
https://github.com/Novik/ruTorrent/wiki/WebSERVER
14
15
16
17
Do not forget add to rtorrent.conf:
18
19
in case no rutorrent users configured:
20
execute2 = {sh,-c,/usr/local/bin/php /usr/local/www/rutorrent/php/initplugins.php &}
21
22
in case you have "USER" configured in rutorrent:
23
execute2 = {sh,-c,/usr/local/bin/php /usr/local/www/rutorrent/php/initplugins.php USER &}
24
25
More info: https://github.com/Novik/ruTorrent/wiki/Plugins#starting-plugins-with-rtorrent
26
27
28
EOM
29
}
30
]
(-)b/www/rutorrent/files/rutorent.conf (+28 lines)
Added Link Here
1
### Rozhuk Ivan 2009.04-2024
2
### nginx configuration file
3
### PHP rutorrent HTTP request handler
4
5
6
# You can include this to nginx server.
7
# Before use:
8
# 1. Check scgi_pass and fastcgi_pass.
9
# 2. Make sure that you secure HTTP access to it.
10
11
12
# SCGI for rtorrent.
13
location ^~ /RPC2 {
14
	include			scgi_params;
15
	scgi_pass		unix:/var/run/rtorrent-rpc.sock;
16
}
17
18
# Handle PHP files.
19
location ~* /rutorrent/ {
20
	index			index.html;
21
	location ~* \.php$ {
22
		try_files	$fastcgi_script_name = 404;
23
		include		fastcgi_params;
24
		fastcgi_pass	unix:/var/run/PHP-FCGI.sock;
25
		fastcgi_param	SCRIPT_FILENAME $document_root$fastcgi_script_name;
26
		fastcgi_param	PATH_INFO $uri;
27
	}
28
}
(-)b/www/rutorrent/pkg-descr (+10 lines)
Added Link Here
1
ruTorrent is a web frontend for rtorrent designed to emulate the look
2
and feel of uTorrent WebUI so its appearance is quite similar to the
3
"parent".
4
The name "ruTorrent" is the combination of uTorrent and rtorrent.
5
6
The original version of ruTorrent was based on an older version of
7
uTorrent Webui but has been completely rewritten as of 3.0.
8
9
10
WWW: https://github.com/Novik/ruTorrent

Return to bug 239921