Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
51 changes: 51 additions & 0 deletions registry/com.dbxio.dbx/0001-Fix-HAVE_VALGRIND-AM_CONDITIONAL.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
From 729546c51806a1b3ea6cb6efb7a115b1baa811f1 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Stefan=20Br=C3=BCns?= <stefan.bruens@rwth-aachen.de>
Date: Mon, 18 Nov 2019 19:58:53 +0100
Subject: [PATCH 1/1] Fix HAVE_VALGRIND AM_CONDITIONAL

The AM_CONDITIONAL should also be run with --disable-tests, otherwise
HAVE_VALGRIND is undefined.
---
configure | 4 ++--
configure.ac | 2 +-
2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/configure b/configure
index 831a3bb..8913b9b 100644
--- a/configure
+++ b/configure
@@ -14801,6 +14801,8 @@ else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
have_valgrind=yes
+fi
+
fi
if test "x$have_valgrind" = "xyes"; then
HAVE_VALGRIND_TRUE=
@@ -14811,8 +14813,6 @@ else
fi


-fi
-



diff --git a/configure.ac b/configure.ac
index ace54d1..cbd38a6 100644
--- a/configure.ac
+++ b/configure.ac
@@ -120,8 +120,8 @@ PKG_CHECK_MODULES(DBUSMENUTESTS, json-glib-1.0 >= $JSON_GLIB_REQUIRED_VERSION
[have_tests=yes]
)
PKG_CHECK_MODULES(DBUSMENUTESTSVALGRIND, valgrind, have_valgrind=yes, have_valgrind=no)
-AM_CONDITIONAL([HAVE_VALGRIND], [test "x$have_valgrind" = "xyes"])
])
+AM_CONDITIONAL([HAVE_VALGRIND], [test "x$have_valgrind" = "xyes"])

AC_SUBST(DBUSMENUTESTS_CFLAGS)
AC_SUBST(DBUSMENUTESTS_LIBS)
--
2.46.2

44 changes: 44 additions & 0 deletions registry/com.dbxio.dbx/0001-Make-introspection-configurable.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
From 8a09e6ad33c58c017c0c8fd756da036fc39428ea Mon Sep 17 00:00:00 2001
From: Alexander Koskovich <akoskovich@pm.me>
Date: Sun, 29 Sep 2024 13:47:54 -0400
Subject: [PATCH 1/1] Make introspection configurable

---
CMakeLists.txt | 1 +
src/CMakeLists.txt | 4 ++++
2 files changed, 5 insertions(+)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 0e13fcd..f3e9ec0 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -12,6 +12,7 @@ endif(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
option(ENABLE_TESTS "Enable all tests and checks" OFF)
option(ENABLE_COVERAGE "Enable coverage reports (includes enabling all tests and checks)" OFF)
option(ENABLE_WERROR "Treat all build warnings as errors" OFF)
+option(ENABLE_INTROSPECTION "Enable introspection" ON)

if(ENABLE_COVERAGE)
set(ENABLE_TESTS ON)
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 5b3638d..aca9481 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -108,6 +108,8 @@ install(TARGETS "ayatana-ido3-0.4" LIBRARY DESTINATION "${CMAKE_INSTALL_FULL_LIB

# AyatanaIdo3-0.4.gir

+if (ENABLE_INTROSPECTION)
+
find_package(GObjectIntrospection REQUIRED QUIET)

if (INTROSPECTION_FOUND)
@@ -183,3 +185,5 @@ if (INTROSPECTION_FOUND)
endif ()

endif ()
+
+endif ()
--
2.46.2

26 changes: 26 additions & 0 deletions registry/com.dbxio.dbx/apply_extra.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
#!/bin/sh
set -eu

# Runs offline at install time inside org.gnome.Platform. The upstream Debian
# package is a plain FHS tree whose payload is a single self-contained Tauri
# binary (usr/bin/dbx; the frontend assets are embedded in the binary). We keep
# only that binary at a stable path the wrapper expects: /app/extra/dbx. The
# desktop file, icon and AppStream metainfo are shipped by the manifest at
# *build* time — extra-data is fetched later on the user's machine, so anything
# Flatpak must export cannot come from here.

extra_root="${EXTRA_ROOT:-/app/extra}"
cd "$extra_root"

[ -f dbx.deb ] || { echo "missing extra-data: dbx.deb" >&2; exit 1; }

# The Platform runtime has no ar/dpkg, but bsdtar (libarchive) reads the .deb
# ar container directly; pipe its data member into a second bsdtar to unpack the
# tree (the inner data.tar compression is auto-detected).
rm -rf stage dbx
mkdir stage
bsdtar -xOf dbx.deb 'data.tar*' | bsdtar -xf - -C stage
[ -x stage/usr/bin/dbx ] || { echo "dbx binary not found in .deb" >&2; exit 1; }
mv stage/usr/bin/dbx dbx
rm -rf stage dbx.deb
chmod +x dbx
12 changes: 12 additions & 0 deletions registry/com.dbxio.dbx/com.dbxio.dbx.desktop
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
[Desktop Entry]
Type=Application
Name=DBX
Comment=Lightweight cross-platform database management tool
Exec=dbx %u
Icon=com.dbxio.dbx
Terminal=false
Categories=Development;Database;
StartupWMClass=dbx
StartupNotify=true
MimeType=application/sql;x-scheme-handler/dbx;
Keywords=database;sql;mysql;postgresql;sqlite;redis;mongodb;client;
64 changes: 64 additions & 0 deletions registry/com.dbxio.dbx/com.dbxio.dbx.metainfo.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
<?xml version="1.0" encoding="UTF-8"?>
<component type="desktop-application">
<id>com.dbxio.dbx</id>
<name>DBX</name>
<summary>Lightweight cross-platform database client</summary>
<metadata_license>CC0-1.0</metadata_license>
<project_license>Apache-2.0</project_license>
<developer id="com.dbxio">
<name>t8y2</name>
</developer>
<url type="homepage">https://dbxio.com</url>
<url type="bugtracker">https://github.com/t8y2/dbx/issues</url>
<url type="vcs-browser">https://github.com/t8y2/dbx</url>
<description>
<p>This is a community package of DBX, maintained independently.</p>
<p>DBX is a lightweight, fast desktop database client and management tool for relational, document, key-value, vector and analytical databases.</p>
<ul>
<li>Supports MySQL, PostgreSQL, SQLite, SQL Server, Redis, MongoDB, DuckDB, ClickHouse and more</li>
<li>Query editor with executable-statement markers, result-source tracking and export</li>
<li>Data grid with filtering, navigation and in-cell editing; ER diagrams and table-structure editing</li>
</ul>
<p>This package talks to databases over the network. Its own settings live in its private per-app directory. Local file databases (SQLite/DuckDB) and .sql scripts are opened through the file-chooser portal; to keep a local-file connection working across restarts, grant the path with "flatpak override --user --filesystem=/path/to/db com.dbxio.dbx".</p>
</description>
<launchable type="desktop-id">com.dbxio.dbx.desktop</launchable>
<categories>
<category>Development</category>
<category>Database</category>
</categories>
<keywords>
<keyword>database</keyword>
<keyword>sql</keyword>
<keyword>mysql</keyword>
<keyword>postgresql</keyword>
<keyword>sqlite</keyword>
<keyword>redis</keyword>
<keyword>mongodb</keyword>
<keyword>client</keyword>
</keywords>
<content_rating type="oars-1.1" />
<recommends>
<control>keyboard</control>
<control>pointing</control>
</recommends>
<provides>
<binary>dbx</binary>
</provides>
<screenshots>
<screenshot type="default">
<caption>Browsing data with the data grid</caption>
<image>https://dl.dbxio.com/assets/screenshot-light.png</image>
</screenshot>
<screenshot>
<caption>Exploring relationships with the ER diagram</caption>
<image>https://dl.dbxio.com/assets/screenshot-er.png</image>
</screenshot>
<screenshot>
<caption>Editing and filtering the data grid</caption>
<image>https://dl.dbxio.com/assets/screenshot-grid.png</image>
</screenshot>
</screenshots>
<releases>
<release version="0.5.41" date="2026-06-29" />
</releases>
</component>
Binary file added registry/com.dbxio.dbx/com.dbxio.dbx.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
143 changes: 143 additions & 0 deletions registry/com.dbxio.dbx/com.dbxio.dbx.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,143 @@
id: com.dbxio.dbx
runtime: org.gnome.Platform
runtime-version: "50"
sdk: org.gnome.Sdk
command: dbx
separate-locales: false
build-options:
no-debuginfo: true
finish-args:
# Tauri/WebKitGTK database client (MySQL, PostgreSQL, SQLite, Redis, MongoDB,
# DuckDB, ClickHouse, SQL Server, ...). network is the core function — it talks
# to remote/local DB servers; dri for hardware-accelerated WebKit rendering.
- --share=ipc
- --share=network
- --socket=wayland
- --socket=fallback-x11
- --device=dri
# System tray (Tauri tray-icon).
- --talk-name=org.kde.StatusNotifierWatcher
- --filesystem=xdg-run/tray-icon:create
# No --filesystem=home: dbx's own settings live in its private per-app dir, and
# local file databases (SQLite/DuckDB) and .sql scripts are opened through the
# file-chooser portal. To keep a local-file connection working across restarts
# (the portal grant is per-pick), grant the path with
# `flatpak override --user --filesystem=/path/to/db com.dbxio.dbx`.
modules:
# dbx's Tauri tray-icon dlopen-s libayatana-appindicator3.so.1 at startup (via
# libappindicator-sys) and the GNOME runtime does not ship it. Build the Ayatana
# stack from the Flathub-maintained shared-modules recipe
# (flathub/shared-modules/libayatana-appindicator), which carries the build-fix
# patches the modern toolchain needs (intltool perl5.26, libdbusmenu valgrind,
# ayatana-ido introspection). Git sources are pinned to immutable commits.
- name: intltool
cleanup:
- "*"
sources:
- type: archive
url: https://launchpad.net/intltool/trunk/0.51.0/+download/intltool-0.51.0.tar.gz
sha256: 67c74d94196b153b774ab9f89b2fa6c6ba79352407037c8c14d5aeb334e959cd
- type: patch
path: intltool-perl5.26-regex-fixes.patch
- name: libdbusmenu
buildsystem: autotools
build-options:
cflags: -Wno-error
cleanup:
- "*.la"
- /include
- /lib/pkgconfig
- /libexec
- /share/doc
- /share/gtk-doc
config-opts:
- --with-gtk=3
- --disable-dumper
- --disable-static
- --disable-tests
- --disable-gtk-doc
- --enable-introspection=no
- --disable-vala
sources:
- type: archive
url: https://launchpad.net/libdbusmenu/16.04/16.04.0/+download/libdbusmenu-16.04.0.tar.gz
sha256: b9cc4a2acd74509435892823607d966d424bd9ad5d0b00938f27240a1bfa878a
- type: patch
paths:
- 0001-Fix-HAVE_VALGRIND-AM_CONDITIONAL.patch
- name: ayatana-ido
buildsystem: cmake-ninja
cleanup:
- /include
- /lib/pkgconfig
config-opts:
- -DENABLE_INTROSPECTION=OFF
# Force /app/lib (not lib64): newer cmake defaults LIBDIR to lib64 on
# x86_64, but pkg-config only searches /app/lib/pkgconfig, so the next
# module would not find this one's .pc. Keep the whole stack in /app/lib.
- -DCMAKE_INSTALL_LIBDIR=lib
sources:
- type: git
url: https://github.com/AyatanaIndicators/ayatana-ido.git
tag: "0.10.4"
commit: f968079b09e2310fefc3fc307359025f1c74b3eb
- type: patch
paths:
- 0001-Make-introspection-configurable.patch
- name: libayatana-indicator
buildsystem: cmake-ninja
cleanup:
- /include
- /lib/pkgconfig
- /libexec
- /share
config-opts:
- -DCMAKE_INSTALL_LIBDIR=lib
sources:
- type: git
url: https://github.com/AyatanaIndicators/libayatana-indicator.git
tag: "0.9.4"
commit: 611bb384b73fa6311777ba4c41381a06f5b99dad
- name: libayatana-appindicator
buildsystem: cmake-ninja
cleanup:
- /include
- /lib/pkgconfig
config-opts:
- -DENABLE_BINDINGS_MONO=NO
- -DENABLE_BINDINGS_VALA=NO
- -DENABLE_GTKDOC=NO
- -DCMAKE_INSTALL_LIBDIR=lib
sources:
- type: git
url: https://github.com/AyatanaIndicators/libayatana-appindicator.git
tag: "0.5.94"
commit: 31e8bb083b307e1cc96af4874a94707727bd1e79
- name: dbx
buildsystem: simple
build-commands:
- install -Dm755 apply_extra.sh /app/bin/apply_extra
- install -Dm755 dbx-wrapper /app/bin/dbx
- install -Dm644 com.dbxio.dbx.desktop /app/share/applications/com.dbxio.dbx.desktop
- install -Dm644 com.dbxio.dbx.metainfo.xml /app/share/metainfo/com.dbxio.dbx.metainfo.xml
- install -Dm644 com.dbxio.dbx.png /app/share/icons/hicolor/256x256/apps/com.dbxio.dbx.png
sources:
# BEGIN MANAGED EXTRA-DATA
- type: extra-data
filename: dbx.deb
only-arches:
- x86_64
url: https://github.com/t8y2/dbx/releases/download/v0.5.41/DBX_0.5.41_amd64.deb
sha256: 9319ee4ada0b796f545d2e1be004364825e12d39e1ec8cca1059e48508bd5811
size: 26681004
# END MANAGED EXTRA-DATA
- type: file
path: apply_extra.sh
- type: file
path: dbx-wrapper
- type: file
path: com.dbxio.dbx.desktop
- type: file
path: com.dbxio.dbx.metainfo.xml
- type: file
path: com.dbxio.dbx.png
16 changes: 16 additions & 0 deletions registry/com.dbxio.dbx/dbx-wrapper
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
#!/bin/sh
set -eu

# dbx is a single Tauri (WebKitGTK) binary staged by apply_extra to
# /app/extra/dbx. It links only against libraries in org.gnome.Platform
# (webkit2gtk-4.1, gtk-3, libsoup-3) plus libayatana-appindicator, which the
# binary dlopen-s for its tray icon and which the manifest builds into /app/lib
# (the GNOME runtime does not ship it).

# WebKitGTK's DMABUF renderer paints a blank window under many drivers inside the
# Flatpak sandbox — the same blank-screen failure users hit running the upstream
# .deb/AppImage directly. Disabling it is the reliable default. dbx itself checks
# this env var (it ships the workaround for the bare .deb too).
export WEBKIT_DISABLE_DMABUF_RENDERER=1

exec /app/extra/dbx "$@"
25 changes: 25 additions & 0 deletions registry/com.dbxio.dbx/flatpark.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
id: com.dbxio.dbx
name: DBX
summary: Lightweight cross-platform database client
website: https://dbxio.com
source_url: https://github.com/t8y2/dbx
build:
manifest: com.dbxio.dbx.yml
branch: stable
mode: extra-data
catalog:
category: Development
tags:
- Database
- SQL
- MySQL
- PostgreSQL
- SQLite
- Redis
- MongoDB
update:
command: ./resolve-update.sh
policy:
proprietary: false
extra_data_first: true
dangerous_permissions: []
Loading
Loading