Add gp-suspend.service

This commit is contained in:
Kevin Yue
2024-03-27 09:19:08 -04:00
parent 187ca778f2
commit e602b3b018
10 changed files with 157 additions and 10 deletions

View File

@@ -1,3 +1,7 @@
INCLUDE_SYSTEMD ?= $(shell [ -d /run/systemd/system ] && echo 1 || echo 0)
# Enable the systemd service after installation
ENABLE_SERVICE ?= 1
install:
@echo "===> Installing..."
@@ -5,7 +9,10 @@ install:
install -Dm755 artifacts/usr/bin/gpservice $(DESTDIR)/usr/bin/gpservice
install -Dm755 artifacts/usr/bin/gpauth $(DESTDIR)/usr/bin/gpauth
install -Dm755 artifacts/usr/bin/gpgui-helper $(DESTDIR)/usr/bin/gpgui-helper
install -Dm755 artifacts/usr/bin/gpgui $(DESTDIR)/usr/bin/gpgui
if [ -f artifacts/usr/bin/gpgui ]; then \
install -Dm755 artifacts/usr/bin/gpgui $(DESTDIR)/usr/bin/gpgui; \
fi
install -Dm644 artifacts/usr/share/applications/gpgui.desktop $(DESTDIR)/usr/share/applications/gpgui.desktop
install -Dm644 artifacts/usr/share/icons/hicolor/scalable/apps/gpgui.svg $(DESTDIR)/usr/share/icons/hicolor/scalable/apps/gpgui.svg
@@ -14,9 +21,28 @@ install:
install -Dm644 artifacts/usr/share/icons/hicolor/256x256@2/apps/gpgui.png $(DESTDIR)/usr/share/icons/hicolor/256x256@2/apps/gpgui.png
install -Dm644 artifacts/usr/share/polkit-1/actions/com.yuezk.gpgui.policy $(DESTDIR)/usr/share/polkit-1/actions/com.yuezk.gpgui.policy
# Install the service
if [ $(INCLUDE_SYSTEMD) -eq 1 ]; then \
install -Dm644 artifacts/usr/lib/systemd/system/gpgui.service $(DESTDIR)/usr/lib/systemd/system/gpgui.service; \
if [ $(ENABLE_SERVICE) -eq 1 ]; then \
systemctl --system daemon-reload; \
systemctl enable gpgui.service; \
fi; \
fi
@echo "===> Done."
uninstall:
@echo "===> Uninstalling from $(DESTDIR)..."
# Disable the systemd service
if [ -d /run/systemd/system ]; then \
systemctl disable gp-suspend.service >/dev/null || true; \
fi
rm -f $(DESTDIR)/lib/systemd/system/gp-suspend.service
rm -f $(DESTDIR)/usr/lib/systemd/system/gp-suspend.service
rm -f $(DESTDIR)/usr/bin/gpclient
rm -f $(DESTDIR)/usr/bin/gpservice
rm -f $(DESTDIR)/usr/bin/gpauth
@@ -29,3 +55,5 @@ uninstall:
rm -f $(DESTDIR)/usr/share/icons/hicolor/128x128/apps/gpgui.png
rm -f $(DESTDIR)/usr/share/icons/hicolor/256x256@2/apps/gpgui.png
rm -f $(DESTDIR)/usr/share/polkit-1/actions/com.yuezk.gpgui.policy
@echo "===> Done."

View File

@@ -11,4 +11,6 @@ case "$1" in
;;
esac
#DEBHELPER#
exit 0

View File

@@ -2,6 +2,12 @@
export OFFLINE = @OFFLINE@
export BUILD_FE = 0
export DEB_PACKAGING = 1
export INCLUDE_SYSTEMD = 1
export ENABLE_SERVICE = 0
%:
dh $@ --no-parallel
override_dh_installsystemd:
dh_installsystemd gp-suspend.service --no-start

View File

@@ -0,0 +1,10 @@
[Unit]
Description=Disconnect from the VPN when suspending
Before=sleep.target
[Service]
Type=oneshot
ExecStart=/usr/bin/gpclient disconnect
[Install]
WantedBy=sleep.target

View File

@@ -14,6 +14,8 @@ optdepends=('wmctrl: for window management')
provides=('globalprotect-openconnect' 'gpclient' 'gpservice' 'gpauth' 'gpgui')
install=gp.install
source=("${_pkgname}-${pkgver}.tar.gz")
sha256sums=('SKIP')
@@ -31,5 +33,5 @@ build() {
package() {
cd "$pkgname-$pkgver"
make install DESTDIR="$pkgdir"
make install DESTDIR="$pkgdir" INCLUDE_SYSTEMD=1 ENABLE_SERVICE=0
}

View File

@@ -0,0 +1,12 @@
post_install() {
systemctl --system daemon-reload
systemctl enable gpservice.service
}
post_upgrade() {
post_install
}
post_remove() {
systemctl disable gpservice.service
}

View File

@@ -22,6 +22,7 @@ BuildRequires: perl
BuildRequires: (webkit2gtk4.0-devel or webkit2gtk3-soup2-devel)
BuildRequires: (libappindicator-gtk3-devel or libappindicator3-1)
BuildRequires: (librsvg2-devel or librsvg-devel)
BuildRequires: systemd-rpm-macros
Requires: openconnect >= 8.20, (libayatana-appindicator or libappindicator-gtk3)
Conflicts: globalprotect-openconnect-snapshot
@@ -34,16 +35,42 @@ A GUI for GlobalProtect VPN, based on OpenConnect, supports the SSO authenticati
%prep
%setup
%pre
%if 0%{?suse_version}
%service_add_pre gp-suspend.service
%endif
%post
%if 0%{?suse_version}
%service_add_post gp-suspend.service
%else
%systemd_post gp-suspend.service
%endif
%preun
%if 0%{?suse_version}
%service_del_preun gp-suspend.service
%else
%systemd_preun gp-suspend.service
%endif
%postun
# Clean up the gpgui downloaded at runtime
rm -f %{_bindir}/gpgui
%if 0%{?suse_version}
%service_del_postun_without_restart gp-suspend.service
%else
%systemd_postun gp-suspend.service
%endif
%build
# The injected RUSTFLAGS could fail the build
unset RUSTFLAGS
make build OFFLINE=@OFFLINE@ BUILD_FE=0
%install
%make_install
%make_install INCLUDE_SYSTEMD=1 ENABLE_SERVICE=0
%files
%defattr(-,root,root)
@@ -54,6 +81,7 @@ make build OFFLINE=@OFFLINE@ BUILD_FE=0
%{_datadir}/icons/hicolor/256x256@2/apps/gpgui.png
%{_datadir}/icons/hicolor/scalable/apps/gpgui.svg
%{_datadir}/polkit-1/actions/com.yuezk.gpgui.policy
%{_unitdir}/gp-suspend.service
%dir %{_datadir}/icons/hicolor
%dir %{_datadir}/icons/hicolor/32x32