【注意】最后更新于 July 24, 2018,文中内容可能已过时,请谨慎使用。
从源代码编译安装 transmission, 以支持跳过校验以及自定义部分 webUI 特性。环境 ubuntu 系。
编译环境
1
2
3
4
|
sudo apt-get install build-essential automake \
autoconf libtool pkg-config intltool \
libcurl4-openssl-dev libglib2.0-dev \
libevent-dev libminiupnpc-dev libgtk-3-dev libappindicator3-dev
|
官方参考文档 。
魔改
- 跳过校验
请参考这里。
以及这里。
- 自定义 webUI 界面。
效果如下图:
在工具栏上添加一个跳转到自定义路径的按钮。
1
2
3
4
5
6
7
8
9
|
vim web/index.html
# 第 50 行附近添加
<div id="toolbar-pause-all" title="Pause All Torrents"></div>
+ <div id="toolbar-separator"></div>
+ <a href="/index.html" title="返回首页"><div style="margin-right: 10px; margin-top: 6px"><img src="./images/home.png" /></div></a>
+ <div id="toolbar-separator"></div>
<div id="toolbar-inspector" title="Toggle Inspector"></div>
|
为此需要添加一枚 home.png 图标 到 web/images/home.png
.
同时修改 该文件夹 的 Makefile.am
和 Makefile.in
,如下:
1
2
3
4
5
6
7
8
9
10
|
vim web/images/Makefile.am
# 改成如下
datadir = ${datarootdir}/${PACKAGE_NAME}/${subdir}
dist_data_DATA = \
favicon.ico \
favicon.png \
webclip-icon.png \
home.png
|
1
2
3
4
5
6
7
8
9
10
11
|
vim web/images/Makefile.in
# 大约在 365 行附近,如下修改
disti\_data\_DATA = \
favicon.ico \
favicon.png \
+ webclip-icon.png \
+ home.png
all: all-am
|
自此 自定义的 webUI 就算是好啦。
-
修改2:
魔改 401 界面,效果如下:
首先使用了命令 cd transmission-2.94 && find . | xargs grep '<h1>'
查找包含 <h1>
的源代码位置。
结果为 ./libtransmission/rpc-server.c: evbuffer_add_printf (body, "<h1>%d: %s</h1>", code, code_text);
1
2
3
4
5
6
7
8
|
vim ./libtransmission/rpc-server.c
# 大约在 128 行
evbuffer_add_printf (body, "<h1>%d: %s</h1>", code, code_text);
if (text)
+ evbuffer_add_printf (body, "%s<br /><br /><a href=\"/index.html\">Click to Homepage</a>", text);
evhttp_send_reply (req, code, code_text, body);
|
修改如上,在 %s
后面加上了一个 a 标签。
编译
1
2
3
|
./configure -q && make -s
sudo make install
|
安装会自动覆盖掉以前的版本。
详见:
https://github.com/rachpt/transmission-skiphashcheck-mod-webUI