Thread

Commits

  1. Fix MSVC scripts when building with GSSAPI/Kerberos

  1. Error building for 64-bit Windows (10)

    The Post Office <noreply@postgresql.org> — 2021-05-17T20:07:02Z

    The following documentation comment has been logged on the website:
    
    Page: https://www.postgresql.org/docs/13/install-windows-full.html
    Description:
    
    The Solution.pm file has the following lines:
    	if ($self->{options}->{gss})
    	{
    	    $proj->AddIncludeDir($self->{options}->{gss} . '\inc\krb5');
    	    $proj->AddLibrary($self->{options}->{gss} . '\lib\i386\krb5_32.lib');
    	    $proj->AddLibrary($self->{options}->{gss} .
    '\lib\i386\comerr32.lib');
    	    $proj->AddLibrary($self->{options}->{gss} .
    '\lib\i386\gssapi32.lib');
    	}
    I had to change them to the following or the compiling failed:
    	if ($self->{options}->{gss})
    	{
    		$proj->AddIncludeDir($self->{options}->{gss} . '\include');
    		$proj->AddIncludeDir($self->{options}->{gss} . '\include\krb5');
    		$proj->AddLibrary($self->{options}->{gss} . '\lib\amd64\krb5_64.lib');
    		$proj->AddLibrary($self->{options}->{gss} . '\lib\amd64\comerr64.lib');
    		$proj->AddLibrary($self->{options}->{gss} . '\lib\amd64\gssapi64.lib');
    
  2. Re: Error building for 64-bit Windows (10)

    Michael Paquier <michael@paquier.xyz> — 2021-05-18T05:56:59Z

    On Mon, May 17, 2021 at 08:07:02PM +0000, PG Doc comments form wrote:
    > The Solution.pm file has the following lines:
    > 	if ($self->{options}->{gss})
    > 	{
    > 	    $proj->AddIncludeDir($self->{options}->{gss} . '\inc\krb5');
    > 	    $proj->AddLibrary($self->{options}->{gss} . '\lib\i386\krb5_32.lib');
    > 	    $proj->AddLibrary($self->{options}->{gss} .
    > '\lib\i386\comerr32.lib');
    > 	    $proj->AddLibrary($self->{options}->{gss} .
    > '\lib\i386\gssapi32.lib');
    > 	}
    > I had to change them to the following or the compiling failed:
    > 	if ($self->{options}->{gss})
    > 	{
    > 		$proj->AddIncludeDir($self->{options}->{gss} . '\include');
    > 		$proj->AddIncludeDir($self->{options}->{gss} . '\include\krb5');
    > 		$proj->AddLibrary($self->{options}->{gss} . '\lib\amd64\krb5_64.lib');
    > 		$proj->AddLibrary($self->{options}->{gss} . '\lib\amd64\comerr64.lib');
    > 		$proj->AddLibrary($self->{options}->{gss} . '\lib\amd64\gssapi64.lib');
    
    Yes, you are right.  I have been playing with the deliverables we
    recommend in the docs as of [1], and there are a couple of gotchas
    here:
    - For the 32b and 64b MSI installer, the include path is not "inc",
    but "include".  So I could not get the installation on Win32 to work
    either on HEAD.
    - There is a sub-path called "include/krb5", which is not really
    necessary except if we use krb5.h, but we don't.  Upstream code
    recommends actually to use krb5/krb5.h, meaning that only "include/"
    would be sufficient.  Keeping "include/krb5/" around is not a big deal
    either.
    
    This has not been changed in ages, so perhaps few have bothered.
    Anyway, the attached patch fixes both the 32b and 64b builds for me.
    Another interesting thing is that the installation of krb5 for amd64
    and i386 cannot co-exist together, so installing one removes the
    second automatically.
    
    [1]: https://web.mit.edu/Kerberos/dist/index.html
    --
    Michael
    
  3. Re: Error building for 64-bit Windows (10)

    Brian Ye <brian.y.ye@gmail.com> — 2021-05-18T13:15:35Z

    Hi Michael,
    Thanks for the reply.
    Yes I also saw that after installing 64-bit, the 32-bit "bin" and "include"
    directories were removed.
    I think the content of the "include" are common for both 32- and 64-bit.
    Windows can run both 32-bit and
    64-bit binaries so removing these 2 directories is probably okay.  Just my
    guess.
    Again, thanks!
    Brian Ye
    
    
    On Tue, May 18, 2021 at 12:57 AM Michael Paquier <michael@paquier.xyz>
    wrote:
    
    > On Mon, May 17, 2021 at 08:07:02PM +0000, PG Doc comments form wrote:
    > > The Solution.pm file has the following lines:
    > >       if ($self->{options}->{gss})
    > >       {
    > >           $proj->AddIncludeDir($self->{options}->{gss} . '\inc\krb5');
    > >           $proj->AddLibrary($self->{options}->{gss} .
    > '\lib\i386\krb5_32.lib');
    > >           $proj->AddLibrary($self->{options}->{gss} .
    > > '\lib\i386\comerr32.lib');
    > >           $proj->AddLibrary($self->{options}->{gss} .
    > > '\lib\i386\gssapi32.lib');
    > >       }
    > > I had to change them to the following or the compiling failed:
    > >       if ($self->{options}->{gss})
    > >       {
    > >               $proj->AddIncludeDir($self->{options}->{gss} . '\include');
    > >               $proj->AddIncludeDir($self->{options}->{gss} .
    > '\include\krb5');
    > >               $proj->AddLibrary($self->{options}->{gss} .
    > '\lib\amd64\krb5_64.lib');
    > >               $proj->AddLibrary($self->{options}->{gss} .
    > '\lib\amd64\comerr64.lib');
    > >               $proj->AddLibrary($self->{options}->{gss} .
    > '\lib\amd64\gssapi64.lib');
    >
    > Yes, you are right.  I have been playing with the deliverables we
    > recommend in the docs as of [1], and there are a couple of gotchas
    > here:
    > - For the 32b and 64b MSI installer, the include path is not "inc",
    > but "include".  So I could not get the installation on Win32 to work
    > either on HEAD.
    > - There is a sub-path called "include/krb5", which is not really
    > necessary except if we use krb5.h, but we don't.  Upstream code
    > recommends actually to use krb5/krb5.h, meaning that only "include/"
    > would be sufficient.  Keeping "include/krb5/" around is not a big deal
    > either.
    >
    > This has not been changed in ages, so perhaps few have bothered.
    > Anyway, the attached patch fixes both the 32b and 64b builds for me.
    > Another interesting thing is that the installation of krb5 for amd64
    > and i386 cannot co-exist together, so installing one removes the
    > second automatically.
    >
    > [1]: https://web.mit.edu/Kerberos/dist/index.html
    > --
    > Michael
    >
    
  4. Re: Error building for 64-bit Windows (10)

    Michael Paquier <michael@paquier.xyz> — 2021-05-19T00:15:45Z

    Hi Andrew,
    
    On Tue, May 18, 2021 at 08:15:35AM -0500, Brian Ye wrote:
    > Thanks for the reply.
    > Yes I also saw that after installing 64-bit, the 32-bit "bin" and "include"
    > directories were removed.
    > I think the content of the "include" are common for both 32- and 64-bit.
    > Windows can run both 32-bit and
    > 64-bit binaries so removing these 2 directories is probably okay.  Just my
    > guess.
    > Again, thanks!
    > Brian Ye
    
    hamerkop is the only buildfarm member testing krb5 builds with MSVC on
    Windows.  The path used in this case is c:\Program Files\MIT\Kerberos\
    so the patch of this thread is going to break the builds there if this
    relies on "inc/" for the include path.  Is this the original include
    folder used for this installation of krb5?
    
    Thanks,
    --
    Michael
    
  5. Re: Error building for 64-bit Windows (10)

    Andrew Dunstan <andrew@dunslane.net> — 2021-05-19T14:56:23Z

    On 5/18/21 8:15 PM, Michael Paquier wrote:
    > Hi Andrew,
    >
    > On Tue, May 18, 2021 at 08:15:35AM -0500, Brian Ye wrote:
    >> Thanks for the reply.
    >> Yes I also saw that after installing 64-bit, the 32-bit "bin" and "include"
    >> directories were removed.
    >> I think the content of the "include" are common for both 32- and 64-bit.
    >> Windows can run both 32-bit and
    >> 64-bit binaries so removing these 2 directories is probably okay.  Just my
    >> guess.
    >> Again, thanks!
    >> Brian Ye
    > hamerkop is the only buildfarm member testing krb5 builds with MSVC on
    > Windows.  The path used in this case is c:\Program Files\MIT\Kerberos\
    > so the patch of this thread is going to break the builds there if this
    > relies on "inc/" for the include path.  Is this the original include
    > folder used for this installation of krb5?
    >
    
    
    I have no idea - it's not my animal. Maybe ask the owner
    <buildfarm@sraoss.co.jp>
    
    
    I guess maybe I should look at adding kerberos to one of the animals I
    do control.
    
    
    cheers
    
    
    andrew
    
    
    --
    Andrew Dunstan
    EDB: https://www.enterprisedb.com
    
    
    
    
    
  6. Re: Error building for 64-bit Windows (10)

    Michael Paquier <michael@paquier.xyz> — 2021-05-20T00:05:16Z

    On Wed, May 19, 2021 at 10:56:23AM -0400, Andrew Dunstan wrote:
    > I have no idea - it's not my animal. Maybe ask the owner
    > <buildfarm@sraoss.co.jp>
    
    Oops, I thought that this was yours.  I am adding those folks in CC of
    this thread.
    
    > I guess maybe I should look at adding kerberos to one of the animals I
    > do control.
    
    That would be nice.  I think that hamerkop should really update its
    installation of krb5 as a first step.
    
    @ Owners of hamerkop, could you look at updating the krb5 installation
    on this animal?  This include path used seems out of date compared to
    the MSI installers upstream provides.
    --
    Michael
    
  7. Re: Error building for 64-bit Windows (10)

    近藤雄太 <kondo@sraoss.co.jp> — 2021-05-20T02:04:05Z

    Hi Michael, 
    
    > @ Owners of hamerkop, could you look at updating the krb5 installation
    > on this animal?  This include path used seems out of date compared to
    > the MSI installers upstream provides.
    
    OK. We'll have it done in a few days.
    
    --
    Kondo Yuta <kondo@sraoss.co.jp>
    
    
    
    
  8. Re: Error building for 64-bit Windows (10)

    Michael Paquier <michael@paquier.xyz> — 2021-05-20T02:19:26Z

    On Thu, May 20, 2021 at 11:04:05AM +0900, 近藤雄太 wrote:
    >> @ Owners of hamerkop, could you look at updating the krb5 installation
    >> on this animal?  This include path used seems out of date compared to
    >> the MSI installers upstream provides.
    > 
    > OK. We'll have it done in a few days.
    
    Thanks!
    --
    Michael
    
  9. Re: Error building for 64-bit Windows (10)

    近藤雄太 <kondo@sraoss.co.jp> — 2021-05-27T10:21:16Z

    Hi,
    
    >>> @ Owners of hamerkop, could you look at updating the krb5 installation
    >>> on this animal?  This include path used seems out of date compared to
    >>> the MSI installers upstream provides.
    >> 
    >> OK. We'll have it done in a few days.
    >
    >Thanks!
    
    Thanks for your patience.
    
    We found some problems with hamerkop, so we ended up updating two things.
    
    First, the config option that specified the kerberos installation
    directory was still "krb5", so we changed it to "gss".
    
    Secondly, kerberos SDK (include, lib) was not installed on hamerkop, so
    we installed it. After that, we made sure that the "include" (not "inc")
    directory existed under the kerberos installation directory
    "C:\Program Files\MIT\Kerberos" which we set to "gss".
    
    Please check.
    
    --
    Kondo Yuta <kondo@sraoss.co.jp>
    
    
    
    
  10. Re: Error building for 64-bit Windows (10)

    Michael Paquier <michael@paquier.xyz> — 2021-05-27T10:55:18Z

    On Thu, May 27, 2021 at 07:21:16PM +0900, 近藤雄太 wrote:
    > First, the config option that specified the kerberos installation
    > directory was still "krb5", so we changed it to "gss".
    
    Thanks Kondo-san.  Wow.  So this has been actually untested for many
    years.  The stuff got renamed in the MSVC scripts as of 74a72ec from
    2014.
    
    > Secondly, kerberos SDK (include, lib) was not installed on hamerkop, so
    > we installed it. After that, we made sure that the "include" (not "inc")
    > directory existed under the kerberos installation directory
    > "C:\Program Files\MIT\Kerberos" which we set to "gss".
    > 
    > Please check.
    
    From what I can see, hamerkop now fails to build, which is what I
    would expect with the current code.  I'll go fix this stuff and
    backpatch, that should bring this buildfarm to green.
    --
    Michael