make-transmission2.94-from-source-code

从源代码编译安装 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

官方参考文档

魔改

  1. 跳过校验

    请参考这里

    以及这里

  2. 自定义 webUI 界面。

    效果如下图:

    在工具栏上添加一个跳转到自定义路径的按钮。

  • 修改1:
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.amMakefile.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

---------本文结束感谢阅读---------
Title - Artist
0:00