Re: undefined symbol when installing pgcrypto on 16.1

2024-01-24 Thread Tom Lane
Michael Nolan  writes:
> Including --with-openssl does include the crypto library, but if I
> don't do a 'make clean' before doing a make, I get errors when
> compiling postgresql.  Apparently is it always a good idea to do make
> clean when reconfiguring postgresql.

Indeed.  In theory, if you use --enable-depend, you needn't do
"make clean".  But I don't trust that a whole lot personally.
I find that using ccache gets most of the win with fewer assumptions.

regards, tom lane




Re: undefined symbol when installing pgcrypto on 16.1

2024-01-24 Thread Michael Nolan
No, it wasn't there, because I hadn't included --with-openssl in the
configure.  Looking at my history, I had done that once earlier but
dropped it for the reason noted below.

Including --with-openssl does include the crypto library, but if I
don't do a 'make clean' before doing a make, I get errors when
compiling postgresql.  Apparently is it always a good idea to do make
clean when reconfiguring postgresql.  (Could configure do a 'make
clean'?)

Anyway, everything's apparently working now.
--
Mike Nolan




Re: undefined symbol when installing pgcrypto on 16.1

2024-01-24 Thread Tom Lane
Michael Nolan  writes:
> Writing or debugging makefiles is something I haven't done much of,
> but as best I can figure out the problem is that the libcrypto.so file
> isn't being linked in, though this line in the Makefile in pgcrypto
> seems to say should be:

> SHLIB_LINK += $(filter -lcrypto -lz, $(LIBS))

> I'm guessing it is supposed to pick up the LIBS list from the top
> Makefile, but isn't.

What that does is to select "-lcrypto" (and "-lz", but that's not
relevant now) out of the LIBS variable.  The configure script
should have included that in LIBS if you specified
--with-openssl, but maybe it failed to.  Can you check the
configured value of LIBS (in src/Makefile.global) to see?

If it's not there, it would be useful to see the contents of
the config.log log file.

regards, tom lane




Re: undefined symbol when installing pgcrypto on 16.1

2024-01-24 Thread Michael Nolan
Sorry, I meant 'make check'.  :sigh:




Re: undefined symbol when installing pgcrypto on 16.1

2024-01-24 Thread Michael Nolan
Writing or debugging makefiles is something I haven't done much of,
but as best I can figure out the problem is that the libcrypto.so file
isn't being linked in, though this line in the Makefile in pgcrypto
seems to say should be:

SHLIB_LINK += $(filter -lcrypto -lz, $(LIBS))

I'm guessing it is supposed to pick up the LIBS list from the top
Makefile, but isn't.

If I add this:

SHLIB_LINK += -lcrypto

'make clean' now passes all tests.
--
Mike Nolan




Re: undefined symbol when installing pgcrypto on 16.1

2024-01-18 Thread Michael Nolan
On Thu, Jan 18, 2024 at 9:51 AM Tom Lane  wrote:
>
> Looks like we have aarch64 and ppc64 machines running Alma 8 and 9.
> No x86 though, which might matter for such a low-level failure
> as this.

So I guess that'll be on the list to add to the build farm at some
point?  (My Xanthian 'talent' of finding bugs continues, lucky me!)

I get the impression AlmaLinux 9 isn't as widely used as Centos was
yet.  (I tend to follow my son's recommendation for which Linux distro
to use, he's an SRE currently at YugaByte, which uses postgresql as a
front end to their custom storage back end.)

Mike Nolan




Re: undefined symbol when installing pgcrypto on 16.1

2024-01-18 Thread Tom Lane
Michael Nolan  writes:
> Would I be correct to assume the postgresql build farm doesn't include
> AlmaLinux 9 to test it.

No, you wouldn't:

https://buildfarm.postgresql.org/cgi-bin/show_status.pl

Looks like we have aarch64 and ppc64 machines running Alma 8 and 9.
No x86 though, which might matter for such a low-level failure
as this.

regards, tom lane




Re: undefined symbol when installing pgcrypto on 16.1

2024-01-18 Thread Michael Nolan
On Thu, Jan 18, 2024 at 5:03 AM Daniel Gustafsson  wrote:
>
> > On 18 Jan 2024, at 00:59, Michael Nolan  wrote:
> > On Wed, Jan 17, 2024 at 5:32 PM Daniel Gustafsson  wrote:
> >>
>
> That's surprising, I expected that it would require the legacy provider be
> loaded, not the other way around.  OpenSSL works in mysterious ways though.
>
> --
> Daniel Gustafsson
>

Turns out that was premature, when I rebuilt postgres to add other
modules I needed, like plperl, the missing symbols issue came back.
So now I'm not sure why it (apparently briefly) worked.  I'm assuming
it's an issue with the AlmaLinux 9 version of openssl. I don't know if
compiling it from source would fix the problem, but I may try that
after checking with the AlmaLinux folks.

Would I be correct to assume the postgresql build farm doesn't include
AlmaLinux 9 to test it.

Mike Nolan




Re: undefined symbol when installing pgcrypto on 16.1

2024-01-18 Thread Daniel Gustafsson
> On 18 Jan 2024, at 00:59, Michael Nolan  wrote:
> On Wed, Jan 17, 2024 at 5:32 PM Daniel Gustafsson  wrote:
>> 
>>> On 18 Jan 2024, at 00:24, Michael Nolan  wrote:

>>> I reinstalled the devel package, still get the same unresolved symbol error.
>> 
>> My memory is failing me, but isn't CAST5 only available when loading the 
>> legacy
>> provider in OpenSSL 3?  Which providers are loaded in your openssl config?
> 
> The legacy providers were enabled, disabling them worked.  (The build
> took a lot longer, too, but there were no obvious messages about
> problems with the legacy providers enabled untilI ran the check.)

That's surprising, I expected that it would require the legacy provider be
loaded, not the other way around.  OpenSSL works in mysterious ways though.

--
Daniel Gustafsson





Re: undefined symbol when installing pgcrypto on 16.1

2024-01-17 Thread Michael Nolan
On Wed, Jan 17, 2024 at 5:32 PM Daniel Gustafsson  wrote:
>
> > On 18 Jan 2024, at 00:24, Michael Nolan  wrote:
> >
> > Sorry for the delay in responding, network issues kept me offline for
> > several days.
> >
> > These are the openssl packages installed from the Almalinux 9 repositories:
> >
> > apr-util-openssl.x86_64   1.6.1-23.el9   
> > @appstream
> > openssl.x86_641:3.0.7-24.el9 
> > @anaconda
> > openssl-devel.x86_64  1:3.0.7-24.el9 
> > @appstream
> > openssl-libs.x86_64   1:3.0.7-24.el9 
> > @anaconda
> >
> > I reinstalled the devel package, still get the same unresolved symbol error.
>
> My memory is failing me, but isn't CAST5 only available when loading the 
> legacy
> provider in OpenSSL 3?  Which providers are loaded in your openssl config?
>
> --
> Daniel Gustafsson

The legacy providers were enabled, disabling them worked.  (The build
took a lot longer, too, but there were no obvious messages about
problems with the legacy providers enabled untilI ran the check.)

Thanks, Daniel.




Re: undefined symbol when installing pgcrypto on 16.1

2024-01-17 Thread Daniel Gustafsson
> On 18 Jan 2024, at 00:24, Michael Nolan  wrote:
> 
> Sorry for the delay in responding, network issues kept me offline for
> several days.
> 
> These are the openssl packages installed from the Almalinux 9 repositories:
> 
> apr-util-openssl.x86_64   1.6.1-23.el9   
> @appstream
> openssl.x86_641:3.0.7-24.el9 @anaconda
> openssl-devel.x86_64  1:3.0.7-24.el9 
> @appstream
> openssl-libs.x86_64   1:3.0.7-24.el9 @anaconda
> 
> I reinstalled the devel package, still get the same unresolved symbol error.

My memory is failing me, but isn't CAST5 only available when loading the legacy
provider in OpenSSL 3?  Which providers are loaded in your openssl config?

--
Daniel Gustafsson





Re: undefined symbol when installing pgcrypto on 16.1

2024-01-17 Thread Michael Nolan
Sorry for the delay in responding, network issues kept me offline for
several days.

These are the openssl packages installed from the Almalinux 9 repositories:

apr-util-openssl.x86_64   1.6.1-23.el9   @appstream
openssl.x86_641:3.0.7-24.el9 @anaconda
openssl-devel.x86_64  1:3.0.7-24.el9 @appstream
openssl-libs.x86_64   1:3.0.7-24.el9 @anaconda

I reinstalled the devel package, still get the same unresolved symbol error.

Mike Nolan




Re: undefined symbol when installing pgcrypto on 16.1

2024-01-11 Thread Tom Lane
Michael Nolan  writes:
> This is on AlmaLinux 9.3, installing postgresql from source code.
> In PG 16.1 when I try to install pgcrypto, the modules compile but I
> get this error when running checks:

>  CREATE EXTENSION pgcrypto;
> +ERROR:  could not load library
> "/home/postgres/src/postgresql-16.1/tmp_install/usr/local/pgsql/lib/
> pgcrypto.so": 
> /home/postgres/src/postgresql-16.1/tmp_install/usr/local/pgsql/lib/pgcrypto.so:
> undefined symbol: EVP_cast5_cbc

That should be supplied by OpenSSL.  Are you using some weird
version of openssl?  Did you get any warnings during build?

regards, tom lane