制作netease-cloud-music-gtk的debian包

要创建一个deb包,只需要有一个基于 debian 的操作系统即可。

下载上游的包,或者手动打一个上游的包。这个上游的包是源代码的仓库或者文件夹,打包的时候不要 .git 目录,也不要 rust 插件自动生成的 target/ 目录

要使用debain 安装的 rustc,因为 debuild 会移除一些环境变量。https://unix.stackexchange.com/questions/630447/debuild-cant-find-rustc 因此必须使用通过 apt 安装的 rustc.

源代码文件的压缩包文件的名字应该是这样的:netease-cloud-music-gtk-2.3.1.tar.gz。也就是 <package>-<version>.tar.gz 的形式。解压出来的文件夹应该也保持这样的形式,也就是文件夹名字应该是 netease-cloud-music-gtk-2.3.1

假设从 https://github.com/wngtk/netease-cloud-music-gtk/releases 下载上游包(.tar.gz结尾的文件)。

mv v2.3.1.tar.gz netease-cloud-music-gtk-2.3.1.tar.gz
tar xvf netease-cloud-music-gtk-2.3.1.tar.gz
cd netease-cloud-music-gtk-2.3.1

修改好名字并解压,进入源代码的目录,生成 debian 目录的模板。

debmake

因为项目是使用 meson 构建而且 dh 是可以直接支持的,要生成 deb 包直接 debuild 就可以。但是直接 debuild 会失败,因为 screenshot 标签中的一个小问题,因此我们还需要打个补丁。参照 https://www.debian.org/doc/manuals/debmake-doc/ch04.en.html#diff-u 制作一个这样的补丁,名为 000-screenshots-image.patch

From: Wang Tiaoke <wngtk@outlook.com>
Description: Add <image> tag in <screenshots>
diff -Nru netease-cloud-music-gtk-2.3.1.orig/data/com.gitee.gmg137.NeteaseCloudMusicGtk4.metainfo.xml.in netease-cloud-music-gtk-2.3.1/data/com.gitee.gmg137.NeteaseCloudMusicGtk4.metainfo.xml.in
--- netease-cloud-music-gtk-2.3.1.orig/data/com.gitee.gmg137.NeteaseCloudMusicGtk4.metainfo.xml.in	2024-04-09 02:13:37.000000000 +0800
+++ netease-cloud-music-gtk-2.3.1/data/com.gitee.gmg137.NeteaseCloudMusicGtk4.metainfo.xml.in	2024-04-11 13:04:12.699998049 +0800
@@ -19,7 +19,9 @@
         <p xml:lang="zh_TW">使用網易雲音樂 API 的 Gtk4 音樂播放器</p>
     </description>
     <screenshots>
-        <screenshot type="default">https://gitee.com/gmg137/netease-cloud-music-gtk/raw/master/screenshots/discover.png</screenshot>
+        <screenshot type="default">
+            <image>https://gitee.com/gmg137/netease-cloud-music-gtk/raw/master/screenshots/discover.png</image>
+        </screenshot>
     </screenshots>
     <content_rating type="oars-1.1" />
 </component>

然后我们需要将补丁文件放到对应的位置。

echo '000-screenshots-image.patch' > debian/patch/seris
cp 000-screenshots-image.patch debian/patch

准备好补丁后执行:

debuild

就会在上一级生成netease-cloud-music-gtk_2.3.1-1_amd64.deb

因为项目使用了 meson, dh 可以自动完成一些任务,要对这样的一个 meson 项目创建一个 deb 包就比较容易了。

posted @ 2024-04-11 16:43  wngtk  阅读(5)  评论(0编辑  收藏  举报