mirror of
https://github.com/bggRGjQaUbCoE/PiliPlus.git
synced 2026-06-01 00:28:18 +08:00
package linux rpm (#1575)
* modified: .github/workflows/linux.yml * modified: .github/workflows/linux.yml * modified: .github/workflows/linux.yml * modified: .github/workflows/linux.yml * modified: .github/workflows/linux.yml * modified: .github/workflows/linux.yml * modified: .github/workflows/linux.yml * modified: .github/workflows/linux.yml * modified: .github/workflows/linux.yml * modified: .github/workflows/linux.yml
This commit is contained in:
87
.github/workflows/linux.yml
vendored
87
.github/workflows/linux.yml
vendored
@@ -29,7 +29,7 @@ jobs:
|
|||||||
- name: Install dependencies
|
- name: Install dependencies
|
||||||
run: |
|
run: |
|
||||||
sudo apt-get update
|
sudo apt-get update
|
||||||
sudo apt-get install -y clang cmake libgtk-3-dev ninja-build libayatana-appindicator3-dev unzip webkit2gtk-4.1 libasound2-dev
|
sudo apt-get install -y clang cmake libgtk-3-dev ninja-build libayatana-appindicator3-dev unzip webkit2gtk-4.1 libasound2-dev rpm patchelf
|
||||||
sudo apt-get install -y gcc g++ autoconf automake debhelper glslang-dev ladspa-sdk xutils-dev libasound2-dev \
|
sudo apt-get install -y gcc g++ autoconf automake debhelper glslang-dev ladspa-sdk xutils-dev libasound2-dev \
|
||||||
libarchive-dev libbluray-dev libbs2b-dev libcaca-dev libcdio-paranoia-dev libdrm-dev \
|
libarchive-dev libbluray-dev libbs2b-dev libcaca-dev libcdio-paranoia-dev libdrm-dev \
|
||||||
libdav1d-dev libdvdnav-dev libegl1-mesa-dev libepoxy-dev libfontconfig-dev libfreetype6-dev \
|
libdav1d-dev libdvdnav-dev libegl1-mesa-dev libepoxy-dev libfontconfig-dev libfreetype6-dev \
|
||||||
@@ -107,6 +107,85 @@ jobs:
|
|||||||
printf "完成: PiliPlus_linux_%s_amd64.deb\n" "${{ env.version }}"
|
printf "完成: PiliPlus_linux_%s_amd64.deb\n" "${{ env.version }}"
|
||||||
shell: bash
|
shell: bash
|
||||||
|
|
||||||
|
- name: Packege rpm
|
||||||
|
run: |
|
||||||
|
printf "建立 RPM 构建目录...\n"
|
||||||
|
RPM_BUILD_ROOT="$PWD/rpm_build"
|
||||||
|
mkdir -p "$RPM_BUILD_ROOT/BUILD" "$RPM_BUILD_ROOT/RPMS" "$RPM_BUILD_ROOT/SOURCES" "$RPM_BUILD_ROOT/SPECS" "$RPM_BUILD_ROOT/SRPMS"
|
||||||
|
|
||||||
|
printf "准备源码归档(仅包含运行时与元数据)...\n"
|
||||||
|
DATE="$(date '+%a %b %d %Y')"
|
||||||
|
SRC_DIR="$PWD/piliplus-${{ env.version }}"
|
||||||
|
mkdir -p "$SRC_DIR/bundle" "$SRC_DIR/assets"
|
||||||
|
cp -r build/linux/x64/release/bundle/* "$SRC_DIR/bundle/"
|
||||||
|
cp assets/linux/piliplus.desktop "$SRC_DIR/assets/piliplus.desktop"
|
||||||
|
cp assets/images/logo/logo.png "$SRC_DIR/assets/piliplus.png"
|
||||||
|
tar -zcvf "$RPM_BUILD_ROOT/SOURCES/piliplus-${{ env.version }}.tar.gz" -C "$PWD" "piliplus-${{ env.version }}"
|
||||||
|
|
||||||
|
printf "生成 spec 文件...\n"
|
||||||
|
cat > "$RPM_BUILD_ROOT/SPECS/piliplus.spec" <<EOF
|
||||||
|
Name: piliplus
|
||||||
|
Version: ${{ env.version }}
|
||||||
|
Release: 1%{?dist}
|
||||||
|
Summary: PiliPlus Linux Version
|
||||||
|
License: GPL-3.0
|
||||||
|
Source0: piliplus-${{ env.version }}.tar.gz
|
||||||
|
Requires: desktop-file-utils, hicolor-icon-theme
|
||||||
|
|
||||||
|
%description
|
||||||
|
使用 Flutter 开发的 BiliBili 第三方客户端
|
||||||
|
|
||||||
|
%prep
|
||||||
|
%setup -q -n piliplus-${{ env.version }}
|
||||||
|
|
||||||
|
%build
|
||||||
|
|
||||||
|
%install
|
||||||
|
mkdir -p %{buildroot}/opt/PiliPlus
|
||||||
|
cp -r bundle/* %{buildroot}/opt/PiliPlus/
|
||||||
|
|
||||||
|
# 二进制权限与命令行入口
|
||||||
|
chmod 755 %{buildroot}/opt/PiliPlus/piliplus
|
||||||
|
mkdir -p %{buildroot}/usr/bin
|
||||||
|
ln -sf /opt/PiliPlus/piliplus %{buildroot}/usr/bin/piliplus
|
||||||
|
|
||||||
|
# 桌面集成
|
||||||
|
mkdir -p %{buildroot}/usr/share/applications
|
||||||
|
install -m 644 assets/piliplus.desktop %{buildroot}/usr/share/applications/piliplus.desktop
|
||||||
|
|
||||||
|
mkdir -p %{buildroot}/usr/share/icons/hicolor/512x512/apps
|
||||||
|
install -m 644 assets/piliplus.png %{buildroot}/usr/share/icons/hicolor/512x512/apps/piliplus.png
|
||||||
|
|
||||||
|
%post
|
||||||
|
update-desktop-database -q || true
|
||||||
|
gtk-update-icon-cache -q -t -f %{_datadir}/icons/hicolor || true
|
||||||
|
|
||||||
|
%postun
|
||||||
|
update-desktop-database -q || true
|
||||||
|
gtk-update-icon-cache -q -t -f %{_datadir}/icons/hicolor || true
|
||||||
|
|
||||||
|
%files
|
||||||
|
/opt/PiliPlus
|
||||||
|
/usr/bin/piliplus
|
||||||
|
/usr/share/applications/piliplus.desktop
|
||||||
|
/usr/share/icons/hicolor/512x512/apps/piliplus.png
|
||||||
|
|
||||||
|
%changelog
|
||||||
|
* DATE - ${{ env.version }}-1
|
||||||
|
- Initial RPM release
|
||||||
|
EOF
|
||||||
|
|
||||||
|
sed -i "s/DATE/${DATE}/g" "$RPM_BUILD_ROOT/SPECS/piliplus.spec"
|
||||||
|
|
||||||
|
printf "构建 RPM 包...\n"
|
||||||
|
rpmbuild --define "_topdir $RPM_BUILD_ROOT" -bb "$RPM_BUILD_ROOT/SPECS/piliplus.spec"
|
||||||
|
|
||||||
|
printf "移动生成的 RPM...\n"
|
||||||
|
find "$RPM_BUILD_ROOT/RPMS" -name "*.rpm" -exec mv {} "PiliPlus_linux_${{ env.version }}.rpm" \;
|
||||||
|
|
||||||
|
printf "完成: PiliPlus_linux_%s.rpm\n" "${{ env.version }}"
|
||||||
|
shell: bash
|
||||||
|
|
||||||
- name: Upload linux targz package
|
- name: Upload linux targz package
|
||||||
uses: actions/upload-artifact@v4
|
uses: actions/upload-artifact@v4
|
||||||
with:
|
with:
|
||||||
@@ -118,3 +197,9 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
name: Linux_deb_package
|
name: Linux_deb_package
|
||||||
path: PiliPlus_linux_*.deb
|
path: PiliPlus_linux_*.deb
|
||||||
|
|
||||||
|
- name: Upload linux rpm package
|
||||||
|
uses: actions/upload-artifact@v4
|
||||||
|
with:
|
||||||
|
name: Linux_rpm_package
|
||||||
|
path: PiliPlus_linux_*.rpm
|
||||||
|
|||||||
Reference in New Issue
Block a user