从源代码编译安装 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. 跳过校验

请参考这里

以及这里

  1. 自定义 webUI 界面。

效果如下图: make-transmission2-94-from-source-code-1.jpg

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

  • 修改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 界面,效果如下: make-transmission2-94-from-source-code-2.jpg

    首先使用了命令 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