On Mon, Apr 14, 2025 at 1:17 PM Jacob Champion <jacob.champ...@enterprisedb.com> wrote: > I believe so. I'm in the middle of the .pc stuff right now; v6 should > have the fixes as long as I don't get stuck.
Done in v6-0001. I think this is now architecturally complete, so if reviewers are happy I can work on docs and the commit message. As a summary: - We provide a libpq-oauth-18.so module for shared builds, and a corresponding .a for static builds, when OAuth is enabled. - Platforms which cannot support the builtin flow now error out if you request OAuth at configure time. - When OAuth is enabled and there's no custom client flow, libpq.so loads the module via dlopen(), which respects RPATH/LD_LIBRARY_PATH et al. If it's not installed, OAuth doesn't continue. - Static builds must link libpq-oauth-18.a explicitly. libpq.pc now puts -lpq-oauth-18 in Libs.private, and libcurl in Requires.private. - Internally, we compile separate versions of fe-auth-oauth.c to handle the different cases (disabled, dynamic, static). This is borrowed from src/common. - The only new export from libpq is appendPQExpBufferVA. Other internal symbols are shared with libpq-oauth via dependency injection. v6-0002 is a WIP rename of the --with-libcurl option to --with-oauth-client. I'm not sure I have all of the Meson corner cases with auto_features figured out, but maybe it doesn't matter since it's temporary (it targets a total of seven buildfarm animals, and once they've switched we can remove the old name). I have added a separate open item for this. Thanks, --Jacob
v6-0002-oauth-rename-with-libcurl-to-with-oauth-client.patch
Description: Binary data
v6-0001-WIP-split-Device-Authorization-flow-into-dlopen-d.patch
Description: Binary data