Add rpm target

This commit is contained in:
Kevin Yue 2024-02-24 22:32:58 +08:00
parent d2d45910cb
commit 5586daf9e5
5 changed files with 137 additions and 1 deletions

View File

@ -68,6 +68,35 @@ jobs:
path: |
globalprotect-openconnect_*.deb
rpm:
runs-on: ubuntu-latest
needs: [tarball]
container:
image: yuezk/gpdev:rpm-builder
credentials:
username: ${{ secrets.DOCKER_HUB_USERNAME }}
password: ${{ secrets.DOCKER_HUB_TOKEN }}
steps:
- name: Download tarball
uses: actions/download-artifact@v3
with:
name: artifact-tarball
- name: Build RPM package
run: |
tar -xzf globalprotect-openconnect-*.tar.gz
cd globalprotect-openconnect-*
make rpm
- name: Install RPM package
run: |
cd globalprotect-openconnect-*
ls -l .rpm
- name: Upload RPM package
uses: actions/upload-artifact@v3
with:
name: artifact-rpm
path: |
globalprotect-openconnect-*/.rpm/*.rpm
# Include arm64 if ref is a tag
# setup-matrix:
# runs-on: ubuntu-latest

1
.gitignore vendored
View File

@ -6,3 +6,4 @@
*.tar.xz
.cargo
.rpm

View File

@ -120,4 +120,39 @@ ppa: init-debian
publish-ppa: ppa
dput ppa:yuezk/globalprotect-openconnect ../*.changes
rpm:
# Generate RPM sepc file
rpm-spec:
rm -rf .rpm
mkdir -p .rpm
cp packaging/rpm/globalprotect-openconnect.spec.in .rpm/globalprotect-openconnect.spec
cp packaging/rpm/globalprotect-openconnect.changes.in .rpm/globalprotect-openconnect.changes
sed -i "s/@VERSION@/$(VERSION)/g" .rpm/globalprotect-openconnect.spec
sed -i "s/@REVISION@/$(REVISION)/g" .rpm/globalprotect-openconnect.spec
sed -i "s/@DATE@/$(shell date "+%a %b %d %Y")/g" .rpm/globalprotect-openconnect.spec
sed -i "s/@VERSION@/$(VERSION)/g" .rpm/globalprotect-openconnect.changes
sed -i "s/@DATE@/$(shell LC_ALL=en.US date -u "+%a %b %e %T %Z %Y")/g" .rpm/globalprotect-openconnect.changes
# Ensure ../globalprotect-openconnect-*.tar.gz exists.
rpm: rpm-spec
if [ ! -f ../$(PKG).tar.gz ]; then \
echo "Missing ../$(PKG).tar.gz"; \
exit 1; \
fi
rm -rf $(HOME)/rpmbuild
rpmdev-setuptree
cp ../$(PKG).tar.gz $(HOME)/rpmbuild/SOURCES/$(PKG_NAME).tar.gz
rpmbuild -ba .rpm/globalprotect-openconnect.spec
# Copy RPM package
cp $(HOME)/rpmbuild/RPMS/$(shell uname -m)/$(PKG_NAME)*.rpm .rpm
# Copy the SRPM only for x86_64.
if [ "$(shell uname -m)" = "x86_64" ]; then \
cp $(HOME)/rpmbuild/SRPMS/$(PKG_NAME)*.rpm .rpm \
fi

View File

@ -0,0 +1,5 @@
-------------------------------------------------------------------
@DATE@ - k3vinyue@gmail.com - @VERSION@
- Update to @VERSION@
* Bugfix and improvements.

View File

@ -0,0 +1,66 @@
Name: globalprotect-openconnect
Version: @VERSION@
Release: @REVISION@%{?dist}
Summary: A GlobalProtect VPN client powered by OpenConnect
Group: Productivity/Networking/PPP
License: GPL-3.0
URL: https://github.com/yuezk/GlobalProtect-openconnect
Source: %{name}.tar.gz
BuildRequires: make
BuildRequires: openconnect-devel
BuildRequires: openssl-devel
BuildRequires: curl
BuildRequires: wget
BuildRequires: file
BuildRequires: (webkit2gtk4.0-devel or webkit2gtk3-soup2-devel)
BuildRequires: (libappindicator-gtk3-devel or libappindicator3-1)
BuildRequires: (librsvg2-devel or librsvg-devel)
Requires: openconnect >= 8.20, (libayatana-appindicator or libappindicator-gtk3)
Conflicts: globalprotect-openconnect-snapshot
%global debug_package %{nil}
%description
A GUI for GlobalProtect VPN, based on OpenConnect, supports the SSO authentication method.
%prep
%setup
%build
make build OFFLINE=1
%install
%make_install
%files
%defattr(-,root,root)
%{_bindir}/gpclient
%{_bindir}/gpservice
%{_bindir}/gpauth
%{_bindir}/gpgui-helper
%{_datadir}/applications/gpgui.desktop
%{_datadir}/icons/hicolor/32x32/apps/gpgui.png
%{_datadir}/icons/hicolor/128x128/apps/gpgui.png
%{_datadir}/icons/hicolor/256x256@2/apps/gpgui.png
%{_datadir}/icons/hicolor/scalable/apps/gpgui.svg
%{_datadir}/polkit-1/actions/com.yuezk.gpgui.policy
%dir %{_datadir}/icons/hicolor
%dir %{_datadir}/icons/hicolor/32x32
%dir %{_datadir}/icons/hicolor/32x32/apps
%dir %{_datadir}/icons/hicolor/128x128
%dir %{_datadir}/icons/hicolor/128x128/apps
%dir %{_datadir}/icons/hicolor/256x256@2
%dir %{_datadir}/icons/hicolor/256x256@2/apps
%dir %{_datadir}/icons/hicolor/scalable
%dir %{_datadir}/icons/hicolor/scalable/apps
%dir %{_datadir}/polkit-1
%dir %{_datadir}/polkit-1/actions
%changelog
* @DATE@ Kevin Yue <k3vinyue@gmail.com> - @VERSION@
- Bugfix and improvements