feat: add deb build (#1422)

This commit is contained in:
NLsdt
2025-10-02 18:39:42 +08:00
committed by GitHub
parent 5d5adbc73f
commit 750e67d835
6 changed files with 134 additions and 5 deletions

View File

@@ -67,12 +67,61 @@ jobs:
- name: Build Linux
run: flutter build linux --release -v
- name: Package linux build output
- name: Package .tar.gz
run: tar -zcvf PiliPlus_linux_${{ env.version }}_amd64.tar.gz -C build/linux/x64/release/bundle .
- name: Upload linux outputs
- name: Packege deb
run: |
printf "建立构建目录...\n"
mkdir "PiliPlus_linux_${{ env.version }}_amd64"
pushd "PiliPlus_linux_${{ env.version }}_amd64"
mkdir -p opt/PiliPlus
mkdir -p usr/share/applications
mkdir -p usr/share/icons/hicolor/512x512/apps
printf "复制文件...\n"
cp -r ../build/linux/x64/release/bundle/* opt/PiliPlus
cp -r ../assets/linux/DEBIAN .
cp ../assets/linux/piliplus.desktop usr/share/applications
cp ../assets/images/logo/logo.png usr/share/icons/hicolor/512x512/apps/piliplus.png
printf "修改控制文件...\n"
# 替换版本号
sed -i "2s/version_need_change/${{ env.version }}/g" DEBIAN/control
# 计算安装大小并替换
SIZE_KB=$(du -s -b --apparent-size . | awk '{print int($1)}')
SIZE_KB=$(($SIZE_KB - $(du -s -b --apparent-size DEBIAN | awk '{print int($1)}')))
SIZE_KB=$(echo $SIZE_KB | awk '{print int($1/1024 + 0.999)}')
printf "\t安装大小: %s KB\n" "$SIZE_KB"
sed -i "9s/size_need_change/${SIZE_KB}/g" DEBIAN/control
printf "生成并写入 md5sums ...\n"
md5sum opt/PiliPlus/piliplus >> DEBIAN/md5sums
md5sum opt/PiliPlus/lib/* >> DEBIAN/md5sums
md5sum opt/PiliPlus/data/icudtl.dat >> DEBIAN/md5sums
printf "设置权限...\n"
chmod 0644 DEBIAN/control
chmod 0644 DEBIAN/md5sums
chmod 0755 DEBIAN/postinst
chmod 0755 DEBIAN/postrm
chmod 0755 DEBIAN/prerm
printf "打包 deb 文件...\n"
popd
dpkg-deb --build --verbose --root-owner-group "PiliPlus_linux_${{ env.version }}_amd64"
printf "完成: PiliPlus_linux_%s_amd64.deb\n" "${{ env.version }}"
shell: bash
- name: Upload linux targz package
uses: actions/upload-artifact@v4
with:
name: linux_outputs
path: |
PiliPlus_linux_*.tar.gz
name: Linux_targz_packege
path: PiliPlus_linux_*.tar.gz
- name: Upload linux deb package
uses: actions/upload-artifact@v4
with:
name: Linux_deb_package
path: PiliPlus_linux_*.deb

View File

@@ -0,0 +1,16 @@
Package: PiliPlus
Version: version_need_change
Maintainer: gh-MzA4Nzk <githubaccount2333@proton.me>
Original-Maintainer: bggRGjQaUbCoE <githubaccount56556@proton.me>
Section: x11
Priority: optional
Architecture: amd64
Essential: no
Installed-Size: size_need_change
Description: third-party Bilibili client developed in Flutter
Homepage: https://github.com/bggRGjQaUbCoE/PiliPlus
Depends: libgtk-3-0t64,
libmpv2,
gir1.2-ayatanaappindicator3-0.1,
libayatana-appindicator3-1

View File

@@ -0,0 +1,21 @@
#!/usr/bin/env bash
ln -sf /opt/PiliPlus/piliplus /usr/bin/piliplus
chmod +x /usr/bin/piliplus
if [ $1 == "config" ] && [ -x /usr/binupdate-mime-database ]; then
echo "updating mime database..."
update-mime-database /usr/share/mime || true
fi
if [ $1 == "config" ] && [ -x /usr/bin/gtk-update-icon-cache ]; then
echo "updating icon cache..."
gtk-update-icon-cache -q -f -t /usr/share/icons/hicolor || true
fi
if [ $1 == "config" ] && [ -x /usr/bin/update-desktop-database ]; then
echo "updating desktop database..."
update-desktop-database -q /usr/share/applications || true
fi
exit 0

View File

@@ -0,0 +1,26 @@
#!/usr/bin/env bash
rm /usr/bin/piliplus
if [ "$1" = "remove" ] || [ "$1" = "purge" ]; then
if [ -x /usr/bin/update-desktop-database ]; then
echo "updating desktop database..."
update-desktop-database -q /usr/share/applications || true
fi
if [ -x /usr/bin/gtk-update-icon-cache ]; then
echo "updating icon cache..."
gtk-update-icon-cache -q -t /usr/share/icons/hicolor || true
fi
if [ -x /usr/bin/update-mime-database ]; then
echo "updating mime database..."
update-mime-database /usr/share/mime || true
fi
fi
if [ $1 = "purge" ]; then
echo "Removing user data..."
rm -rf /home/*/.local/share/com.example.PiliPlus || true
rm -rf /root/.local/share/com.example.PiliPlus || true
fi
exit 0

View File

@@ -0,0 +1,8 @@
#!/usr/bin/env bash
if [ "$1" = "remove" ] || [ "$1" = "deconfigure" ]; then
echo "Stopping PiliPlus if running..."
pkill -x piliplus || true
fi
exit 0

View File

@@ -0,0 +1,9 @@
[Desktop Entry]
Type=Application
Name=PiliPlus
Comment=A third-party Bilibili Client developed in Flutter
Comment[zh_CN]=使用 Flutter 开发的 BiliBili 第三方客户端
Exec=piliplus
Icon=piliplus
Terminal=false
Categories=Video;AudioVideo;Player;