Re: [PoC] Federated Authn/z with OAUTHBEARER

From: Wolfgang Walther <walther(at)technowledgy(dot)de>
To: Jacob Champion <jacob(dot)champion(at)enterprisedb(dot)com>
Cc: Jelte Fennema-Nio <postgres(at)jeltef(dot)nl>, Christoph Berg <myon(at)debian(dot)org>, Peter Eisentraut <peter(at)eisentraut(dot)org>, Andres Freund <andres(at)anarazel(dot)de>, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, Bruce Momjian <bruce(at)momjian(dot)us>, PostgreSQL Hackers <pgsql-hackers(at)postgresql(dot)org>, Daniel Gustafsson <daniel(at)yesql(dot)se>, Thomas Munro <thomas(dot)munro(at)gmail(dot)com>, Nazir Bilal Yavuz <byavuz81(at)gmail(dot)com>, Antonin Houska <ah(at)cybertec(dot)at>
Subject: Re: [PoC] Federated Authn/z with OAUTHBEARER
Date: 2025-04-14 17:09:55
Message-ID: 012b6a4a-aead-411a-a9db-c6c7b25e1dcc@technowledgy.de
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Jacob Champion:
> (The [2] link is missing, I think.)

Ah, sry. This is the link:

https://github.com/wolfgangwalther/nixpkgs/commits/postgresql-libpq-curl/

It's the last two commits on that branch.

> I'm confused by this -- the build produces staticlibs alongside the
> dynamically linked ones, so that's what I've been testing against.
> What different options do you pass to configure for a "statically
> linked build"?

It's not so much the options, but more that for this build there are no
shared libs available at buildtime at all. You can consider it a "fully
static system". So in your case, you'd always do the configure test with
shared libs, but I can't.

The build system passes --enable-static and --disable-shared to
configure, but both of those are ignored by configure, as indicated by a
WARNING immediately.

>> Not unless there is some magic in PKG_CHECK_MODULES I've never heard
>> of (which is entirely possible!). Furthermore I imagine that the
>> transitive dependencies of all its dependencies are not added either.

IIUC, the transitive dependencies would be part of libcurl's
Libs.private / Requires.private (assuming that file is correctly
created). So that would be taken care of, I guess.

> Does your build method currently work for dependency forests like
> libgssapi_krb5 and libldap? (I want to make sure I'm not accidentally
> doing less work than we currently support for those other deps, but
> I'm also not planning to add more feature work as part of this
> particular open item.)

We currently build libpq with neither libldap, nor libkrb5, at least for
the static case. But I just tried on the bigger postgresql package and
force-enabled libldap there for the static build - it fails in exactly
the same way.

So yes, not related to your patch. I do understand that PostgreSQL's
autoconf build system is not designed for "static only", I am certainly
not expecting you to fix that.

I think meson will do better here, but I was not able to make that work,
yet.

>> When I do "make -C src/interfaces/libpq-oauth", I get this error:
>>
>> make: *** No rule to make target 'oauth-curl.o', needed by
>> 'libpq-oauth-18.so'. Stop.
> I cannot reproduce this. The CI seems happy, too. Is this patch the
> only modification you've made to our build system, or are there more
> changes?

We apply another patch to change the default socket directory to /run,
but that's certainly unrelated. All the other custom stuff only kicks in
afterwards, in the installPhase, so unrelated as well.

I just tried the same thing on the bigger postgresql package, where the
full build is run and not only libpq / libpq-oauth. It fails with the
same error. No rule for oauth-curl.o.

> I'm about to rewrite this part somewhat, so a deep dive may not be very helpful.

OK. I will try to get meson running, at least enough to try this patch
again. Maybe that gives better results.

Thanks,

Wolfgang

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Sami Imseih 2025-04-14 17:13:00 Re: Conflicting updates of command progress
Previous Message Kirill Reshke 2025-04-14 17:02:10 Re: HELP: SAVEPOINT feature cases