add RPM package (#150)

This commit is contained in:
Cyano Hao 2023-10-24 12:20:32 +08:00 committed by GitHub
parent 1c23010408
commit adbbf96733
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
9 changed files with 288 additions and 0 deletions

View File

@ -197,6 +197,48 @@ jobs:
name: Arch Linux
path: dist/*.pkg.tar.zst
rpm_fedora:
name: RPM on latest Fedora
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Fetch container image
run: |
podman pull --platform linux/amd64 docker.io/amd64/fedora:latest
- name: Build
run: |
podman run --rm -e SOURCE_DIR=/src -v $GITHUB_WORKSPACE:/src --platform linux/amd64 docker.io/amd64/fedora:latest /src/packages/fedora/01-in-docker.sh
- name: Upload
uses: actions/upload-artifact@v2
with:
name: RPM on latest Fedora
path: dist/*.rpm
rpm_opensuse:
name: RPM on openSUSE Tumbleweed
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Fetch container image
run: |
podman pull --platform linux/amd64 docker.io/opensuse/tumbleweed:latest
- name: Build
run: |
podman run --rm -e SOURCE_DIR=/src -v $GITHUB_WORKSPACE:/src --platform linux/amd64 docker.io/opensuse/tumbleweed:latest /src/packages/opensuse/01-in-docker.sh
- name: Upload
uses: actions/upload-artifact@v2
with:
name: RPM on openSUSE Tumbleweed
path: dist/*.rpm
macos_x86_64:
name: macOS x86_64
runs-on: macos-latest

View File

@ -335,6 +335,54 @@ Enter `RedPandaIDE` to launch RedPanda C++.
Note that makepkg checks out HEAD of the repo, so any change should be committed before building.
## Fedora
1. Install dependency:
```bash
sudo dnf install \
gcc gcc-c++ rpm-build rpmdevtools git \
glibc-static libstdc++-static libasan \
qt5-qtbase-devel qt5-qtsvg-devel qt5-qttools-devel
rpmdev-setuptree # first time only
```
2. Build the package:
```bash
./packages/fedora/buildrpm.sh
```
3. Install the package:
```bash
sudo dnf install ~/rpmbuild/RPMS/$(uname -m)/redpanda-cpp-git-*.rpm
```
4. Run Red Panda C++:
```bash
RedPandaIDE
```
## openSUSE
1. Install dependency:
```bash
sudo zypper in \
gcc gcc-c++ rpm-build rpmdevtools git \
glibc-devel-static \
libqt5svg5-dev qtbase5-dev qtbase5-dev-tools qttools5-dev-tools
rpmdev-setuptree # first time only
```
2. Build the package:
```bash
./packages/opensuse/buildrpm.sh
```
3. Install the package:
```bash
sudo zypper --no-gpg-checks in ~/rpmbuild/RPMS/$(uname -m)/redpanda-cpp-git-*.rpm
```
4. Run Red Panda C++:
```bash
RedPandaIDE
```
## Linux AppImage
1. Install dependency: Docker or Podman.

View File

@ -335,6 +335,54 @@ Windows 宿主的额外要求:
注意makepkg 签出此存储库的 HEAD因此构建之前务必提交所有变更。
## Fedora
1. 安装依赖包:
```bash
sudo dnf install \
gcc gcc-c++ rpm-build rpmdevtools git \
glibc-static libstdc++-static libasan \
qt5-qtbase-devel qt5-qtsvg-devel qt5-qttools-devel
rpmdev-setuptree # 仅第一次
```
2. 构建 rpm 包:
```bash
./packages/fedora/buildrpm.sh
```
3. 安装 rpm 包:
```bash
sudo dnf install ~/rpmbuild/RPMS/$(uname -m)/redpanda-cpp-git-*.rpm
```
4. 运行小熊猫 C++
```bash
RedPandaIDE
```
## openSUSE
1. 安装依赖包:
```bash
sudo zypper in \
gcc gcc-c++ rpm-build rpmdevtools git \
glibc-devel-static \
libqt5svg5-dev qtbase5-dev qtbase5-dev-tools qttools5-dev-tools
rpmdev-setuptree # 仅第一次
```
2. 构建 rpm 包:
```bash
./packages/opensuse/buildrpm.sh
```
3. 安装 rpm 包:
```bash
sudo zypper --no-gpg-checks in ~/rpmbuild/RPMS/$(uname -m)/redpanda-cpp-git-*.rpm
```
4. 运行小熊猫 C++
```bash
RedPandaIDE
```
## Linux AppImage
1. 安装依赖包Docker 或 Podman。

15
packages/fedora/01-in-docker.sh Executable file
View File

@ -0,0 +1,15 @@
#!/bin/bash
set -xeuo pipefail
dnf install -y \
gcc gcc-c++ rpm-build rpmdevtools git \
glibc-static libstdc++-static libasan \
qt5-qtbase-devel qt5-qtsvg-devel qt5-qttools-devel
rpmdev-setuptree
cd $SOURCE_DIR
./packages/fedora/buildrpm.sh
mkdir -p $SOURCE_DIR/dist
cp ~/rpmbuild/RPMS/$(uname -m)/redpanda-cpp-git-*.rpm $SOURCE_DIR/dist/

13
packages/fedora/buildrpm.sh Executable file
View File

@ -0,0 +1,13 @@
#!/bin/bash
set -xeuo pipefail
SPECDIR=$(rpm --eval %{_specdir})
BUILDDIR=$(rpm --eval %{_builddir})/redpanda-cpp-git
VERSION=$(git describe --long --tags --always | sed 's/^v//;s/\([^-]*-g\)/r\1/;s/-/./g')
sed -s "s/__VERSION__/$VERSION/g" packages/fedora/redpanda-cpp-git.spec.in >$SPECDIR/redpanda-cpp-git.spec
[[ -d $BUILDDIR ]] && rm -rf $BUILDDIR
rpmbuild --define "_sourcedir $(pwd)" -bb $SPECDIR/redpanda-cpp-git.spec

View File

@ -0,0 +1,44 @@
Name: redpanda-cpp-git
Version: __VERSION__
Release: 1%{?dist}
Summary: A fast, lightweight, open source, and cross platform C++ IDE
License: GPLv3+
URL: https://github.com/royqh1979/RedPanda-CPP
BuildRequires: gcc gcc-c++
BuildRequires: qt5-qtbase-devel qt5-qtsvg-devel qt5-qttools-devel
Requires: gcc gcc-c++
Requires: glibc-static libstdc++-static libasan
Requires: qt5-qtbase qt5-qtsvg
%description
A lightweight but powerful C/C++ IDE
Red Panda C++ (Old name Red Panda Dev-C++ 7) is a full featured C/C++ IDE.
It's the succesor of Red Panda Dev-C++ 6, which is developed by Delphi 7 and
can only running under Windows.
%prep
%build
mkdir -p %{name}
cd %{name}
qmake-qt5 \
PREFIX=/usr \
XDG_ADAPTIVE_ICON=ON \
"%{_sourcedir}/Red_Panda_CPP.pro"
make %{_smp_mflags}
%install
cd %{name}
make INSTALL_ROOT="%{buildroot}" install
%files
/usr/bin/RedPandaIDE
/usr/libexec/RedPandaCPP/*
/usr/share/RedPandaCPP/*
/usr/share/doc/RedPandaCPP/*
/usr/share/applications/redpandaide.desktop
/usr/share/icons/hicolor/scalable/apps/redpandaide.svg
%changelog

View File

@ -0,0 +1,21 @@
#!/bin/bash
set -xeuo pipefail
DISTRO_ID=$(grep ^ID= /etc/os-release | cut -d= -f2- | tr -d '"')
VERSION_ID=$(grep ^VERSION_ID= /etc/os-release | cut -d= -f2- | tr -d '"')
zypper in -y \
gcc gcc-c++ rpm-build rpmdevtools git \
glibc-devel-static \
libqt5-qtbase-devel libqt5-qtsvg-devel libqt5-qttools-devel
rpmdev-setuptree
cd $SOURCE_DIR
./packages/opensuse/buildrpm.sh
file=$(ls ~/rpmbuild/RPMS/$(uname -m)/redpanda-cpp-git-*.rpm)
basename=$(basename $file)
mkdir -p $SOURCE_DIR/dist
cp $file $SOURCE_DIR/dist/${basename/.rpm/.$DISTRO_ID$VERSION_ID.rpm}

13
packages/opensuse/buildrpm.sh Executable file
View File

@ -0,0 +1,13 @@
#!/bin/bash
set -xeuo pipefail
SPECDIR=$(rpm --eval %{_specdir})
BUILDDIR=$(rpm --eval %{_builddir})/redpanda-cpp-git
VERSION=$(git describe --long --tags --always | sed 's/^v//;s/\([^-]*-g\)/r\1/;s/-/./g')
sed -s "s/__VERSION__/$VERSION/g" packages/opensuse/redpanda-cpp-git.spec.in >$SPECDIR/redpanda-cpp-git.spec
[[ -d $BUILDDIR ]] && rm -rf $BUILDDIR
rpmbuild --define "_sourcedir $(pwd)" -bb $SPECDIR/redpanda-cpp-git.spec

View File

@ -0,0 +1,44 @@
Name: redpanda-cpp-git
Version: __VERSION__
Release: 1%{?dist}
Summary: A fast, lightweight, open source, and cross platform C++ IDE
License: GPLv3+
URL: https://github.com/royqh1979/RedPanda-CPP
BuildRequires: gcc gcc-c++
BuildRequires: libqt5-qtbase-devel libqt5-qtsvg-devel libqt5-qttools-devel
Requires: gcc gcc-c++
Requires: glibc-devel-static
Requires: libQt5Core5 libQt5Gui5 libQt5Svg5
%description
A lightweight but powerful C/C++ IDE
Red Panda C++ (Old name Red Panda Dev-C++ 7) is a full featured C/C++ IDE.
It's the succesor of Red Panda Dev-C++ 6, which is developed by Delphi 7 and
can only running under Windows.
%prep
%build
mkdir -p %{name}
cd %{name}
qmake-qt5 \
PREFIX=/usr \
XDG_ADAPTIVE_ICON=ON \
"%{_sourcedir}/Red_Panda_CPP.pro"
make %{_smp_mflags}
%install
cd %{name}
make INSTALL_ROOT="%{buildroot}" install
%files
/usr/bin/RedPandaIDE
/usr/libexec/RedPandaCPP/*
/usr/share/RedPandaCPP/*
/usr/share/doc/RedPandaCPP/*
/usr/share/applications/redpandaide.desktop
/usr/share/icons/hicolor/scalable/apps/redpandaide.svg
%changelog