Compare commits

...

1 Commits

Author SHA1 Message Date
Ernie Pasveer 47bae904d1 First attempt at building a snap package. 2026-08-29 20:11:12 -05:00
3 changed files with 147 additions and 0 deletions
+37
View File
@@ -0,0 +1,37 @@
name: snap-latest Development Build
on:
workflow_dispatch:
jobs:
snap:
name: Build Snap
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Create/update tag
uses: rickstaa/action-create-tag@v1
with:
tag: snap-latest
message: Tag from latest ${{ github.ref_name }} branch.
force_push_tag: true
- name: Build snap
uses: snapcore/action-build@v1
id: build
- name: Create Release
uses: softprops/action-gh-release@v2
with:
name: Snap Development Release
body: Build from latest ${{ github.ref_name }} branch.
files: |
${{ steps.build.outputs.snap }}
tag_name: snap-latest
draft: false
prerelease: true
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+23
View File
@@ -0,0 +1,23 @@
#!/bin/sh
# Launcher for the classic-confinement seergdb snap.
#
# Classic snaps run unconfined against the host system (needed here since
# Seer/gdb must ptrace arbitrary host processes and read arbitrary source
# trees), but they don't get automatic library injection the way strict
# snaps do. This wrapper points the dynamic linker and Qt at the copies of
# their runtime libraries/plugins bundled inside the snap, so seergdb works
# even on a host that doesn't have the matching Qt6 packages installed.
case "$(uname -m)" in
x86_64) ARCH_TRIPLET=x86_64-linux-gnu ;;
aarch64) ARCH_TRIPLET=aarch64-linux-gnu ;;
armv7l) ARCH_TRIPLET=arm-linux-gnueabihf ;;
i686) ARCH_TRIPLET=i386-linux-gnu ;;
*) ARCH_TRIPLET="$(uname -m)-linux-gnu" ;;
esac
export LD_LIBRARY_PATH="$SNAP/lib/$ARCH_TRIPLET:$SNAP/usr/lib/$ARCH_TRIPLET:$SNAP/usr/lib:${LD_LIBRARY_PATH:+$LD_LIBRARY_PATH:}"
export QT_PLUGIN_PATH="$SNAP/usr/lib/$ARCH_TRIPLET/qt6/plugins"
export QT_QPA_PLATFORM_PLUGIN_PATH="$QT_PLUGIN_PATH/platforms"
exec "$SNAP/usr/bin/seergdb" "$@"
+87
View File
@@ -0,0 +1,87 @@
name: seergdb
title: Seer
summary: A GUI frontend to gdb
description: |
Seer is a graphical frontend to the GDB debugger that provides a rich
development environment for debugging programs, including:
- Source code browsing and breakpoint management
- Variable inspection and modification
- Stack frame navigation
- Memory inspection
- Assembly view
- Register view
Seer runs the host's own gdb and attaches to/launches the programs you
ask it to debug, so this snap uses classic confinement: it needs
unrestricted access to the filesystem (to find source and binaries
anywhere on the system) and to ptrace arbitrary processes, neither of
which is possible from a strictly confined snap.
website: https://github.com/epasveer/seer
issues: https://github.com/epasveer/seer/issues
license: GPL-3.0-or-later
icon: src/resources/icons/hicolor/256x256/seergdb.png
version: '2.8.0'
base: core24
confinement: classic
grade: stable
compression: lzo
architectures:
- build-on: amd64
apps:
seergdb:
command: bin/seergdb-launch
desktop: usr/share/applications/seergdb.desktop
parts:
seergdb:
plugin: cmake
source: src
cmake-parameters:
- -DCMAKE_INSTALL_PREFIX=/usr
- -DQTVERSION=QT6
- -DCMAKE_BUILD_TYPE=Release
- -DCONFIG_SEER_INSTALL_ICONS=1
build-packages:
- qt6-base-dev
- qt6-charts-dev
- qt6-svg-dev
- libgl1-mesa-dev
- libglx-dev
stage-packages:
- libqt6core6t64
- libqt6gui6t64
- libqt6widgets6t64
- libqt6printsupport6t64
- libqt6charts6
- libqt6svg6
- libqt6opengl6t64
- libqt6openglwidgets6t64
- qt6-gtk-platformtheme
- qt6-qpa-plugins
stage:
- -usr/lib/*/cmake
- -usr/include
prime:
- -usr/lib/*/cmake
- -usr/include
desktop-file:
plugin: dump
source: src/resources
organize:
seergdb.desktop: usr/share/applications/seergdb.desktop
stage:
- usr/share/applications/seergdb.desktop
prime:
- usr/share/applications/seergdb.desktop
launcher:
plugin: dump
source: snap/local
organize:
launcher.sh: bin/seergdb-launch