ODB: C++ Object-Relational Mapping (ORM): New packages.
Get series with b4
b4 am 20180428230729.7f9bfa98@windsurfVersions newest first
- v1 Latest0 of 4 patches 0 repliesNew
Patches in v1 No applies recorded yet
None of the 4 patches the cover letter announces are in this archive.
Reviews trailers per patch
No Reviewed-by, Acked-by or Tested-by trailers for v1 yet.
Cover letter [Buildroot] [PATCH 0/4] ODB: C++ Object-Relational Mapping (ORM): New packages.
Hello Adam,
Quoted 20 lines · Adam Duskett
There are three main components to use ODB (and a single dependency):
- libcutl: This library is ODB's only dependency.
- ODB: This is a compiler that takes a specially crafted c++ header file and auto-generates a schema that works with libodb and the subsequent libodb-database library.It would be used as such:
odb -d <database> --generate-query --generate-schema file.hxx- libodb: This package contains the common ODB runtime library. Every application that includes code generated by the ODB compiler will need to link to this library.
- libodb-pgsql: This package contains the PostgreSQL ODB runtime library. Every application that includes code generated for the PostgreSQL database will need to link to this library.
I am only providing libodb-pgsql as that is the only one I personally need. There is also support for mysql, sqlite, mssql, and oracle as well.
Quoted 7 lines
Also boost and qt libraries are avaiable if anybody so wishes to add them.
Adam Duskett (4):
libcutl: new package
ODB: New package
libodb: new package
libodb-pgsql: new package
So, I started looking at this patch series. I found a number of problems, mainly around licensing:
- The libcutl license details were incomplete
- The odb license was incorrect (it's GPL-3.0 and not MIT)
- The libodb and libodb-pgsql license was incorrect (it's GPL-2.0 and not MIT)
But then, I encountered two more fundamental problems:
(1) host-odb tries to build a gcc plugin for the host gcc, but my system didn't had the necessary headers and development files to build a gcc plugin. I had to install the gcc-plugin-devel package on my Fedora system.
Since this is not guaranteed to be installed on all systems, I believe we should add a hidden Config.in boolean such as BR2_NEEDS_HOST_GCC_PLUGIN_SUPPORT, selected by host-odb (which would perhaps require adding a Config.in.host option for host-odb), and a check should be added in support/dependencies/dependencies.sh to verify that gcc plugins can be built for the host gcc. It might also be that plugin support doesn't exist in old gcc versions.
(2) I was able to build libodb and libodb-pgsql without host-odb and host-libcutl, and I don't see in the libodb and libodb-pgsql build system where the gcc plugin built by host-odb or the odb compiler is used. Try by yourself: remove the host-odb dependency from libodb.mk, enable libodb and libodb-pgsql, and it will just work.
Could you look into the problems (1) and (2) ?
In order to avoid duplicating our effort, and because I also did a few other cosmetic improvements, I put the latest version of the patches I have at
https://git.bootlin.com/users/thomas-petazzoni/buildroot/log/?h=odb.
Thanks,
Thomas
Signature · 3 lines
Thomas Petazzoni, CTO, Bootlin (formerly Free Electrons) Embedded Linux and Kernel engineering https://bootlin.com