9ada012c创建于 2025年12月15日历史提交
文件最后提交记录最后更新时间
Add getter for GVDB table contents The xdg-desktop-portal project is using GVDB as the basis for the permissions store. Each permission table is stores as a block of bytes inside another GVDB table, in order to isolate the permissions of each application. Currently, xdg-desktop-portal uses GVDB as a copy-paste library; the only missing API to avoid that, and switch GVDB to a proper subproject, is a way to extract the contents of a GVDB table into a GBytes buffer.6 个月前
Add getter for GVDB table contents The xdg-desktop-portal project is using GVDB as the basis for the permissions store. Each permission table is stores as a block of bytes inside another GVDB table, in order to isolate the permissions of each application. Currently, xdg-desktop-portal uses GVDB as a copy-paste library; the only missing API to avoid that, and switch GVDB to a proper subproject, is a way to extract the contents of a GVDB table into a GBytes buffer.6 个月前
build: Add very basic meson build system This doesn’t build any files, but does expose the list of sources as a Meson variable so it can be used as a subproject from other projects. I thought about building a static library for gvdb, but this would cause problems for libgio (and gvdb’s use inside libgio is the motivation for making it subproject-able). gvdb depends on libgio types, such as GCancellable, but also is a dependency of parts of libgio, such as GResource. That circular dependency means that building a static library is non-trivial. There is an approach for achieving this, detailed by Eli Schwartz at https://gitlab.gnome.org/GNOME/gvdb/-/merge_requests/18#note_1474750, but that’s too much work for what I would like to achieve here. It can always be implemented in future, particularly if we add unit tests to gvdb (in this git repository) or if another project starts linking gvdb in using Meson subprojects rather than copy/paste. The files have to be moved to a gvdb/ subdirectory to keep the include paths working correctly — code in GLib which uses gvdb uses #include <gvdb/gvdb-builder.h>. Signed-off-by: Philip Withnall <pwithnall@endlessos.org>6 个月前
build: Add very basic meson build system This doesn’t build any files, but does expose the list of sources as a Meson variable so it can be used as a subproject from other projects. I thought about building a static library for gvdb, but this would cause problems for libgio (and gvdb’s use inside libgio is the motivation for making it subproject-able). gvdb depends on libgio types, such as GCancellable, but also is a dependency of parts of libgio, such as GResource. That circular dependency means that building a static library is non-trivial. There is an approach for achieving this, detailed by Eli Schwartz at https://gitlab.gnome.org/GNOME/gvdb/-/merge_requests/18#note_1474750, but that’s too much work for what I would like to achieve here. It can always be implemented in future, particularly if we add unit tests to gvdb (in this git repository) or if another project starts linking gvdb in using Meson subprojects rather than copy/paste. The files have to be moved to a gvdb/ subdirectory to keep the include paths working correctly — code in GLib which uses gvdb uses #include <gvdb/gvdb-builder.h>. Signed-off-by: Philip Withnall <pwithnall@endlessos.org>6 个月前
build: Add very basic meson build system This doesn’t build any files, but does expose the list of sources as a Meson variable so it can be used as a subproject from other projects. I thought about building a static library for gvdb, but this would cause problems for libgio (and gvdb’s use inside libgio is the motivation for making it subproject-able). gvdb depends on libgio types, such as GCancellable, but also is a dependency of parts of libgio, such as GResource. That circular dependency means that building a static library is non-trivial. There is an approach for achieving this, detailed by Eli Schwartz at https://gitlab.gnome.org/GNOME/gvdb/-/merge_requests/18#note_1474750, but that’s too much work for what I would like to achieve here. It can always be implemented in future, particularly if we add unit tests to gvdb (in this git repository) or if another project starts linking gvdb in using Meson subprojects rather than copy/paste. The files have to be moved to a gvdb/ subdirectory to keep the include paths working correctly — code in GLib which uses gvdb uses #include <gvdb/gvdb-builder.h>. Signed-off-by: Philip Withnall <pwithnall@endlessos.org>6 个月前