A Request To Package SeerGDB

Project information

Name

SeerGDB

Homepage

License

Upstream has been contacted

1 Like

Here you are:
io.github.epasveer.Seer.yml

app-id: io.github.epasveer.Seer
runtime: org.kde.Platform
runtime-version: '6.8'
sdk: org.kde.Sdk
command: seergdb
finish-args:
  - --share=ipc
  - --socket=fallback-x11
  - --socket=wayland
  - --device=dri
  - --share=network
  - --filesystem=host:ro
#  - --filesystem=home:ro
#  - --filesystem=/var/lib/flatpak:ro
modules:
  - name: seer
    buildsystem: simple
    sources:
      - type: git
        url: https://github.com/epasveer/seer.git
        #commit: a04e774023ea69d06b4054f18fedbe26286a6957
        tag: v2.5
      - type: file
        path: io.github.epasveer.Seer.desktop
      - type: file
        path: io.github.epasveer.Seer.metainfo.xml
      - type: file
        path: io.github.epasveer.Seer.png
    build-commands:
      - mkdir build
      - cd build && cmake -G Ninja -DCMAKE_INSTALL_PREFIX=/app ../src
      - cd build && ninja
      - install -Dm755 build/seergdb /app/bin/seergdb
      - install -Dm644 io.github.epasveer.Seer.desktop /app/share/applications/io.github.epasveer.Seer.desktop
      - install -Dm644 io.github.epasveer.Seer.metainfo.xml /app/share/metainfo/io.github.epasveer.Seer.metainfo.xml
      - install -Dm644 io.github.epasveer.Seer.png /app/share/icons/hicolor/64x64/apps/io.github.epasveer.Seer.png
      - install -Dm644 io.github.epasveer.Seer.png /app/share/icons/hicolor/128x128/apps/io.github.epasveer.Seer.png
      - install -Dm644 io.github.epasveer.Seer.png /app/share/icons/hicolor/256x256/apps/io.github.epasveer.Seer.png
      - install -Dm644 io.github.epasveer.Seer.png /app/share/icons/hicolor/512x512/apps/io.github.epasveer.Seer.png

io.github.epasveer.Seer.desktop

[Desktop Entry]
Version=1.0
Type=Application
Name=Seer
GenericName=GDB Frontend
Comment=A GUI frontend to GDB debugger
Icon=io.github.epasveer.Seer
Exec=seergdb
Terminal=false
Categories=Development;Debugger;Qt;
Keywords=debug;gdb;debugger;qt;
StartupNotify=true
X-Flatpak=io.github.epasveer.Seer

io.github.epasveer.Seer.metainfo.xml

<?xml version="1.0" encoding="UTF-8"?>
<component type="desktop-application">
  <id>io.github.epasveer.Seer</id>
  <metadata_license>CC0-1.0</metadata_license>
  <project_license>GPL-3.0-or-later</project_license>
  <name>Seer</name>
  <summary>A GUI frontend to GDB debugger</summary>
  <description>
    <p>
      Seer is a graphical frontend to the GDB debugger that provides a rich development environment for debugging programs.
    </p>
    <p>Features:</p>
    <ul>
      <li>Source code browsing and breakpoint management</li>
      <li>Variable inspection and modification</li>
      <li>Stack frame navigation</li>
      <li>Memory inspection</li>
      <li>Assembly view</li>
      <li>Register view</li>
    </ul>
  </description>
  <launchable type="desktop-id">io.github.epasveer.Seer.desktop</launchable>
  <screenshots>
    <screenshot type="default">
      <caption>Main debugging window</caption>
      <image>https://raw.githubusercontent.com/epasveer/seer/main/images/mainview.png</image>
    </screenshot>
  </screenshots>
  <url type="homepage">https://github.com/epasveer/seer</url>
  <url type="bugtracker">https://github.com/epasveer/seer/issues</url>
  <developer_name>Ernie Pasveer</developer_name>
  <releases>
    <release version="2.5" date="2025-07-19"/>
  </releases>
  <content_rating type="oars-1.1"/>
</component>

It builds and runs fine.Apparently GDB binary is available in the KDE runtime.
The perms are very broad but we can limit it under /var/lib/flatpak or ~ .
Also if you dont have the rest of the files ie .desktop .xml and .png in the dir where the manifest is , then plz comment out the relevant sections of the manifest.

Should i submit it?
But I am not willing to maintain it all the time.
Also some user that knows how to use it, they should kindly test it before.
Also the perms. Maybe we can get some advice from one of our knowledgeable maintainers.
Finally and most importantly the creator of this app .Dont we need permission to publish it?

1 Like

@alamahant, you should, but when someone’s tested it, indeed. Unfortunately, I’m unfamiliar with both SeerGDB and .Flatpak packaging, so I can’t confirm or maintain it.

Flatpak discloses the required permissions upon installation. Insofar as it works, I’d say that’s not a problem: it can always be retroactively hardened, and it’s a development utility that’s expected to interact at a low level anyway.

I believe so. If you comment at the GitHub thread, I presume that the creator shall be pleased with the amount of work you’ve accomplished.

1 Like

Finally and most importantly the creator of this app .Dont we need permission to publish it?

presume that the creator shall be pleased with the amount of work you’ve accomplished.

Hi. I am the creator of the seergdb app. You most certainly have my permission to package it up. And I’m very appreciative of your work here!

I’m not familiar with flatpak. However, if someone gives me an example of the command line, I can try it on one of my machines and ā€œkick the tiresā€ of my own program.

Thanks again!

2 Likes

Ok i can confirm it works fine with executables built with flatpak versions of IDEs.For example it worked smoothly with qtcreator project binary.I am not sure if it will work with gtk binaries though because the flatpak version of Seer NEEDS to use kde runtime.I am not sure how it will behave if set to debug gtk binary.


I will try also to download other flatpak ides like gnome builder and test it against binaries created through them. Also NOTE: Binaries created via local --non flatpak IDEs-- do not work very well because they link against system libraries to which the flatpak does not have access due to its sandboxing. Also i got it to work fine with - --filesystem=home , so we can avoid the broad --filesystem=host. I suppose it will work for projects created inside ~ .

2 Likes

That is good news! Thanks!

Seer is built on Qt. It shouldn’t need a KDE environment per-se. Just the Qt libraries (which ARE required by KDE but you can have a GNOME environment with Qt libraries added).

As for debugging gtk binaries, it shouldn’t have any problems with them. Whatever gdb can debug, Seer should be able to as well.

(But maybe I’m wrong because I’m not familiar with ftatpack :slight_smile:

Seer uses Qt as evident from CMake. That is why it needs to be built with kde runtime.

Does Seer need write access to ~ ?
Also does it need network? I think so because I saw something like ā€œconnect to gdb serverā€ in the UI.

I am also thinking we need:
–allow=devel

and possibly

filesystem=host:ro

and

–env=LD_LIBRARY_PATH=/usr/lib:/lib:/usr/lib64:/lib64${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}

and

filesystem=home (if it produces any output that needs to be saved)

and also I was thinking if we might invoke it thus(in case we dont put lib dirs in the manifest):

flatpak run --env=LD_LIBRARY_PATH=/usr/lib:/lib:/usr/lib64:/lib64${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH} io.github.epasveer.Seer

Just thinking out loud…

@epasveer, not per se in Flatpak. The runtime package selection is what allows it to be so portable, but is also why the packages provided by it are inherently space-inefficient and restrictive.

If using Qt, one generally chooses the KDE runtime. If using GTK, they generally choose the GNOME runtime. All else choose the FreeDesktop runtime, and bundle what is essentially a desktop environment in the package.

Does Seer need write access to ~ ?

Yes it does to save it’s state. Window sizes. Config settings. Etc…

Also does it need network?

Yes, when the ā€œconnectā€ method is used to connect to a remote machine.

1 Like

If using Qt, one chooses the KDE runtime.

Thanks. That’s a little clearer to me now.

1 Like

Ok. from my part I did my best.And it builds and runs and works.BUT it fails to see system libs.If anyone knows how to allow the flatpak to see system libs please kindly let me know what kind of perm we should include in the manifest. Otherwise Seer functionality as a flatpak might be a bit restricted and erratic.Sometimes I get error 0177 or something indicating missing libs. Even if I use filesystem=host:ro and set LD_LIBRARY_PATH to include host lib directories . Thanks alot…

1 Like

@alamahant, is the undermentioned of use?

If not, perhaps follow:

So I’ve grabbed your example files to build the flatpak myself. I’m getting this error, which I think is pretty basic. The program it complains about is on my native box but I think it’s not in my ā€œsandboxā€?

Any ideas how to fix this? It happens at the very end of building things. Thanks.

Running appstream-compose
bwrap: execvp appstream-compose: No such file or directory
Error: ERROR: appstream-compose failed: Child process exited with code 1

Answering my own comment. I installed a newer version of org.flatpak.Builder and that fixed things.

1 Like

I’ve created the PR to package up Seergdb in FlatHub. I’ve likely missed some things as this is my first attempt with FlatPak/FlatHub.

1 Like

A big step forward. Seer is now in FlatHub’s testing repository.

$ flatpak install --user https://dl.flathub.org/build-repo/238339/io.github.epasveer.seer.flatpakref
$ flatpak run io.github.epasveer.seer -s /some/program/to/debug arg1 arg2
1 Like

And now it’s officially part of Flathub.

1 Like