Add PKGBUILD file (#25)

This commit is contained in:
Michael Hübner 2024-07-19 01:51:49 +02:00 committed by GitHub
parent 04edf2eecc
commit eb81b7af4a
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 94 additions and 8 deletions

76
PKGBUILD Normal file
View File

@ -0,0 +1,76 @@
# Maintainer: hodasemi <michaelh.95 at t-online dot de>
_pkgbase=breezy-desktop
pkgname="${_pkgbase}"-gnome
pkgver=0.1
pkgrel=1
pkgdesc="Breezy desktop - XR desktop"
arch=('x86_64')
url="https://github.com/wheaney/breezy-desktop"
license=('GPL-3.0')
makedepends=('ninja' 'meson' 'librsvg')
depends=('python' 'python-pydbus' 'gnome-shell' 'XRLinuxDriver-BreezyGNOME')
conflicts=("${_pkgbase}")
source=("git+${url}")
md5sums=(SKIP)
_uuid="breezydesktop@xronlinux.com"
build() {
cd ${_pkgbase}
# init submodules (only required ones)
git submodule update --init --recursive modules/sombrero
git submodule update --init --recursive ui/modules/PyXRLinuxDriverIPC
# build binaries
cd ui
meson setup build
cd build
meson compile
# prepare extension
cd ../..
unlink gnome/src/schemas/com.xronlinux.BreezyDesktop.gschema.xml
cp ui/data/com.xronlinux.BreezyDesktop.gschema.xml gnome/src/schemas/
glib-compile-schemas --targetdir="gnome/src/schemas" "gnome/src/schemas"
unlink gnome/src/textures/custom_banner.png
cp vulkan/custom_banner.png gnome/src/textures/
unlink gnome/src/textures/calibrating.png
cp modules/sombrero/calibrating.png gnome/src/textures/
unlink gnome/src/IMUAdjust.frag
cp modules/sombrero/IMUAdjust.frag gnome/src/
# create icon
rsvg-convert ui/data/icons/hicolor/scalable/apps/com.xronlinux.BreezyDesktop.svg -w 64 -h 64 -o ui/data/icons/hicolor/com.xronlinux.BreezyDesktop_64.png
rsvg-convert ui/data/icons/hicolor/scalable/apps/com.xronlinux.BreezyDesktop.svg -w 128 -h 128 -o ui/data/icons/hicolor/com.xronlinux.BreezyDesktop_128.png
rsvg-convert ui/data/icons/hicolor/scalable/apps/com.xronlinux.BreezyDesktop.svg -w 256 -h 256 -o ui/data/icons/hicolor/com.xronlinux.BreezyDesktop_256.png
rsvg-convert ui/data/icons/hicolor/scalable/apps/com.xronlinux.BreezyDesktop.svg -w 1024 -h 1024 -o ui/data/icons/hicolor/com.xronlinux.BreezyDesktop_1024.png
}
package() {
# copy gnome extension
install -Dm755 ${_pkgbase}/ui/data/com.xronlinux.BreezyDesktop.gschema.xml "${pkgdir}"/usr/share/glib-2.0/schemas/com.xronlinux.BreezyDesktop.gschema.xml
install -d "${pkgdir}/usr/share/gnome-shell/extensions/${_uuid}/"
cp -r ${_pkgbase}/gnome/src/* "${pkgdir}/usr/share/gnome-shell/extensions/${_uuid}/"
# copy binaries
install -d "${pkgdir}"/usr/local/share/breezydesktop/breezydesktop/
cp -r ${_pkgbase}/ui/src/*.py "${pkgdir}"/usr/local/share/breezydesktop/breezydesktop/
install -Dm755 ${_pkgbase}/ui/modules/PyXRLinuxDriverIPC/xrdriveripc.py "${pkgdir}"/usr/local/share/breezydesktop/breezydesktop/xrdriveripc.py
install -Dm755 ${_pkgbase}/ui/build/src/breezydesktop "${pkgdir}"/usr/bin/breezydesktop
install -Dm755 ${_pkgbase}/ui/build/src/breezydesktop.gresource "${pkgdir}"/usr/local/share/breezydesktop/breezydesktop.gresource
install -Dm755 ${_pkgbase}/ui/build/data/com.xronlinux.BreezyDesktop.desktop "${pkgdir}"/usr/share/applications/com.xronlinux.BreezyDesktop.desktop
sed -i '/Exec/c\Exec=breezydesktop --skip-verification' "${pkgdir}"/usr/share/applications/com.xronlinux.BreezyDesktop.desktop
install -Dm755 ${_pkgbase}/ui/data/icons/hicolor/com.xronlinux.BreezyDesktop_64.png "${pkgdir}"/usr/share/icons/hicolor/64x64/apps/com.xronlinux.BreezyDesktop.png
install -Dm755 ${_pkgbase}/ui/data/icons/hicolor/com.xronlinux.BreezyDesktop_128.png "${pkgdir}"/usr/share/icons/hicolor/128x128/apps/com.xronlinux.BreezyDesktop.png
install -Dm755 ${_pkgbase}/ui/data/icons/hicolor/com.xronlinux.BreezyDesktop_256.png "${pkgdir}"/usr/share/icons/hicolor/256x256/apps/com.xronlinux.BreezyDesktop.png
install -Dm755 ${_pkgbase}/ui/data/icons/hicolor/com.xronlinux.BreezyDesktop_1024.png "${pkgdir}"/usr/share/icons/hicolor/1024x1024/apps/com.xronlinux.BreezyDesktop.png
}

View File

@ -21,6 +21,7 @@ import gi
import logging
import os
import sys
import argparse
from logging.handlers import TimedRotatingFileHandler
@ -58,13 +59,14 @@ XRDriverIPC.set_instance(XRDriverIPC(logger))
class BreezydesktopApplication(Adw.Application):
"""The main application singleton class."""
def __init__(self):
def __init__(self, skip_verification):
super().__init__(application_id='com.xronlinux.BreezyDesktop',
flags=Gio.ApplicationFlags.DEFAULT_FLAGS)
self.create_action('quit', self.on_quit_action, ['<primary>q'])
self.create_action('about', self.on_about_action)
self.create_action('license', self.on_license_action)
self.create_action('reset_driver', self.on_reset_driver_action)
self._skip_verification = skip_verification
def do_activate(self):
"""Called when the application is activated.
@ -74,7 +76,7 @@ class BreezydesktopApplication(Adw.Application):
"""
win = self.props.active_window
if not win:
win = BreezydesktopWindow(application=self)
win = BreezydesktopWindow(self._skip_verification, application=self)
win.connect('close-request', lambda *_: self.on_quit_action())
win.connect('destroy', lambda *_: self.on_quit_action())
win.present()
@ -125,5 +127,9 @@ class BreezydesktopApplication(Adw.Application):
def main(version):
app = BreezydesktopApplication()
return app.run(sys.argv)
parser = argparse.ArgumentParser()
parser.add_argument("-sv", "--skip-verification", action="store_true")
args = parser.parse_args()
app = BreezydesktopApplication(args.skip_verification)
return app.run(None)

View File

@ -37,7 +37,7 @@ class BreezydesktopWindow(Gtk.ApplicationWindow):
license_action_needed_banner = Gtk.Template.Child()
missing_breezy_features_banner = Gtk.Template.Child()
def __init__(self, **kwargs):
def __init__(self, skip_verification, **kwargs):
super().__init__(**kwargs)
self.state_manager = StateManager.get_instance()
@ -57,6 +57,8 @@ class BreezydesktopWindow(Gtk.ApplicationWindow):
self._handle_state_update(self.state_manager, None)
self._skip_verification = skip_verification
self.connect("destroy", self._on_window_destroy)
def _handle_state_update(self, state_manager, val):
@ -71,9 +73,11 @@ class BreezydesktopWindow(Gtk.ApplicationWindow):
for child in self.main_content:
self.main_content.remove(child)
if not verify_installation():
self.main_content.append(self.failed_verification)
elif not self.state_manager.get_property('license-present'):
if not self._skip_verification:
if not verify_installation():
self.main_content.append(self.failed_verification)
if not self.state_manager.get_property('license-present'):
self.main_content.append(self.no_license)
elif not ExtensionsManager.get_instance().is_installed():
self.main_content.append(self.no_extension)