注意: ** 这只是测试版本 ** ,目前把 xware-desktop 进行 openSUSE 化的进度完成情况如下:
- 编写从 github 下载不开源的固件文件的 shell 脚本。
- 在 Makefile 里 decouple(解挂)固件文件的安装。
- 不要装到 /opt/xware-desktop 而是装到 /usr 下面。主要涉及到了改 src 文件中的一些硬编码路径,c 和 python 文件里都有,还有改 Makefile 来安装到正确的位置。(已完成)
- 不要只能使用 xware:xware 用户和用户组执行,使用 root 执行。(感觉像是完成了)
- 改 Makefile 去生成程序使用的临时文件夹,touch 一些 lock/socket 和配置文件。(跟 2 有极大连带,感觉像是完成了)
- 基本的测试运行,看看配置文件、临时文件和临时文件夹的权限是否正确(没办法,权限是硬编码的)(感觉像是完成了)
- 调整 systemd 服务和 desktop 文件。(已完成)
- 绘制 svg 图标。(未完成)
所以 ** 只提供了 x86_64 版本(因为我的开发环境就是 x86_64)供有能力的用户协助我进行真实下载测试。小白请耐心等待,不要敲碗。**
安装:
- 安装 chrpath。你也可以从 devel:tools 源里安装。
xware-desktop 的开发官网的 wiki 指责我们 openSUSE 的 chrpath 太旧,0.14,2004 年。
这是因为它就应该旧:chrpath 是一个 GNU 项目:http://directory.fsf.org/wiki/Chrpath。项目上游在 0.14 版后并没有发布新版本,现在 Debian/Ubuntu/Arch 里使用的所谓 0.16 版其实是 Debian 在自己的项目网站上为 chrpath 发布的新版,这让我又想起了 avifile 0.47 版的故事,作为一个下游不去上游开发老在自己那儿 bump 版本号,这点 Debian 值得批评,Fedora 主力开发 GNOME 人家也没在 Fedora bump 版本号啊。(xware-desktop 的 wiki 已编辑澄清,同时 openSUSE 也开始 track Debian 的项目地址了,维护者是我)
0.16 版和 0.14 版的区别就是 0.16 版可以跨架构去移除 ELF 文件中的 rpath。比如我们在用 x86_64,而迅雷固件是 32bit only 的,0.14 版就去不了它的 rpath(其实也能啦,不过要用 chrpath-32bit 这样的包来去,这样的包在 openSUSE 下也没有)。
- 安装 python3-sip 和 python3-qt5。 ** 一定要用我给出的版本。**
原因是:
2.1 openSUSE 13.1 oss 和 KDE:Qt5 源中的 python3-qt5 并没有编译 PyQt5.QtMultimedia 这个模块,而该模块被 xware-desktop 需要。没有原因也很简单,之前 KDE 用 Qt 没有用这个模块,但我觉得在 openSUSE 下做 Qt5 开发必须要有这个模块,于是我启用了。
2.2 KDE:Qt5 源中的 libqt5-qtbase 有个 bug 导致 python-qt5 和 python3-qt5 无法编译。这个 bug 很好修,我修了,提交,我们 KDE team 的人说这个是上游的某个 commit 故意搞成这样的,downstream hack 是不是不太好,好吧,我也认同不太好。于是直到 Qt 上游修复那个编译 bug 前,KDE:Qt5 源里是不会有我修好的全模块版本的 python3-qt5 的。
2.3 安装 KDE:Qt5 源中的 python3-qt5 会安装该源中的 libqt5,该源中的版本是 5.2.1。而 openSUSE 13.1 默认带的是 5.1.1,这就会导致你从 home:opensuse_zh 源中装的比如 doubanfm-qt5、WeCase 等被卸载(因为没有东西能提供 5.1.1 的 Qt5 了)。
所以我针对 openSUSE 13.1 中的 Qt5 5.1.1 编译了 python3-qt5,而 python3-sip 是因为太新版里有 bug 同样会导致 python3-qt5 无法编译。
- 安装 xware-desktop。
一定要使用
sudo zypper in xware-desktop*.rpm
而不是 Linux 通用的
sudo rpm -ivh *.rpm
来安装。
因为迅雷固件不是开源的,随随便便拿来用不太好,所以跟搜狗拼音一样整合了 openSUSE 专有 hack 去在安装时下载, ** 你不用 zypper 安装 rpm 就触发不了专有 hack 也就没有固件 ** 。
之后
sudo systemctl start xwared.service
启动服务
然后
xware-desktop
去启动前端。
注意: ** 关闭前端并不会同时关闭后端 xwared,后端依然在下载 ** 。这跟 mldonky 很像。需要你去关闭 systemd 服务
sudo systemctl stop xwared.service
才可以。
目前需要进行协助测试的有:
- ** 终端运行 xwared(就是不运行 systemd 服务,直接开个窗口跑)**
- ** 终端运行 xware-desktop**
进行登录、资源查找、下载、暂停、续传等基本使用测试。
** 出现问题请把 xwared 和 xware-desktop 的终端输出贴到这里来 ** 。
再次提醒, ** 本帖不接受抱怨,只接受勇敢的测试报告,同时也不接受 bug 汇报,因为 openSUSE 方面我说了这是测试版,而上游方面,程序被我改动很大,很可能不是上游的责任。**