Thread: vcbuild optional packages

vcbuild optional packages

From
Magnus Hagander
Date:
This patch fixes vcbuild so you can build without OpenSSL and libz
should you want to. This disables the sslinfo and pgcrypto modules
because they require the libraries to build at all.

//Magnus
Index: src\tools\msvc/mkvcbuild.pl
===================================================================
RCS file: c:/prog/cvsrepo/pgsql/pgsql/src/tools/msvc/mkvcbuild.pl,v
retrieving revision 1.8
diff -c -r1.8 mkvcbuild.pl
*** src\tools\msvc/mkvcbuild.pl    21 Nov 2006 17:54:26 -0000    1.8
--- src\tools\msvc/mkvcbuild.pl    8 Jan 2007 19:49:13 -0000
***************
*** 182,203 ****
      push @contrib_excludes,'xml2';
  }

! # Pgcrypto makefile too complex to parse....
! my $pgcrypto = $solution->AddProject('pgcrypto','dll','crypto');
! $pgcrypto->AddFiles('contrib\pgcrypto','pgcrypto.c','px.c','px-hmac.c','px-crypt.c',
!         'crypt-gensalt.c','crypt-blowfish.c','crypt-des.c','crypt-md5.c','mbuf.c',
!         'pgp.c','pgp-armor.c','pgp-cfb.c','pgp-compress.c','pgp-decrypt.c','pgp-encrypt.c',
!         'pgp-info.c','pgp-mpi.c','pgp-pubdec.c','pgp-pubenc.c','pgp-pubkey.c','pgp-s2k.c',
!         'pgp-pgsql.c');
! if ($solution->{options}->{openssl}) {
!     $pgcrypto->AddFiles('contrib\pgcrypto', 'openssl.c','pgp-mpi-openssl.c');
  }
! else {
!     $pgcrypto->AddFiles('contrib\pgcrypto', 'md5.c','sha1.c','sha2.c','internal.c','internal-sha2.c',
!             'blf.c','rijndael.c','fortuna.c','random.c','pgp-mpi-internal.c','imath.c');
  }
- $pgcrypto->AddReference($postgres);
- $pgcrypto->AddLibrary('wsock32.lib');

  my $D;
  opendir($D, 'contrib') || croak "Could not opendir on contrib!\n";
--- 182,210 ----
      push @contrib_excludes,'xml2';
  }

! if (!$solution->{options}->{openssl}) {
!    push @contrib_excludes,'sslinfo';
  }
!
! # Pgcrypto makefile too complex to parse....
! # Pgcrypto requires zlib
! if ($solution->{options}->{zlib}) {
!    my $pgcrypto = $solution->AddProject('pgcrypto','dll','crypto');
!    $pgcrypto->AddFiles('contrib\pgcrypto','pgcrypto.c','px.c','px-hmac.c','px-crypt.c',
!            'crypt-gensalt.c','crypt-blowfish.c','crypt-des.c','crypt-md5.c','mbuf.c',
!            'pgp.c','pgp-armor.c','pgp-cfb.c','pgp-compress.c','pgp-decrypt.c','pgp-encrypt.c',
!            'pgp-info.c','pgp-mpi.c','pgp-pubdec.c','pgp-pubenc.c','pgp-pubkey.c','pgp-s2k.c',
!            'pgp-pgsql.c');
!    if ($solution->{options}->{openssl}) {
!        $pgcrypto->AddFiles('contrib\pgcrypto', 'openssl.c','pgp-mpi-openssl.c');
!    }
!    else {
!        $pgcrypto->AddFiles('contrib\pgcrypto', 'md5.c','sha1.c','sha2.c','internal.c','internal-sha2.c',
!                'blf.c','rijndael.c','fortuna.c','random.c','pgp-mpi-internal.c','imath.c');
!    }
!    $pgcrypto->AddReference($postgres);
!    $pgcrypto->AddLibrary('wsock32.lib');
  }

  my $D;
  opendir($D, 'contrib') || croak "Could not opendir on contrib!\n";

Re: vcbuild optional packages

From
Tom Lane
Date:
Magnus Hagander <magnus@hagander.net> writes:
> This patch fixes vcbuild so you can build without OpenSSL and libz
> should you want to. This disables the sslinfo and pgcrypto modules
> because they require the libraries to build at all.

Applied.

            regards, tom lane

Re: [PATCHES] vcbuild optional packages

From
"Marko Kreen"
Date:
On 1/8/07, Magnus Hagander <magnus@hagander.net> wrote:
> This patch fixes vcbuild so you can build without OpenSSL and libz
> should you want to. This disables the sslinfo and pgcrypto modules
> because they require the libraries to build at all.

Both openssl and zlib are optional for pgcrypto.  Please
look at the real Makefile.  (Put -DDISABLE_ZLIB into CFLAGS.)

--
marko

Re: [PATCHES] vcbuild optional packages

From
Magnus Hagander
Date:
Marko Kreen wrote:
> On 1/8/07, Magnus Hagander <magnus@hagander.net> wrote:
>> This patch fixes vcbuild so you can build without OpenSSL and libz
>> should you want to. This disables the sslinfo and pgcrypto modules
>> because they require the libraries to build at all.
>
> Both openssl and zlib are optional for pgcrypto.  Please
> look at the real Makefile.  (Put -DDISABLE_ZLIB into CFLAGS.)
>

Ah, I see. Will have to take a look at that later then.

Is there any reason why the check is "backwards" in pgcrypto compared to
the rest of the system? All the other places check for HAVE_ZLIB from
what I can tell.

//Magnus

Re: [PATCHES] vcbuild optional packages

From
"Marko Kreen"
Date:
On 1/14/07, Magnus Hagander <magnus@hagander.net> wrote:
> Is there any reason why the check is "backwards" in pgcrypto compared to
> the rest of the system? All the other places check for HAVE_ZLIB from
> what I can tell.

Eh, just an oversight from my part.  I was so focused on Makefile
hacking so I forgot to check if there is already a define
somewhere.  And its reverse to have less clutter in command-line
in default case.

Attached patch replaces unnecessary DISABLE_ZLIB define in
pgcrypto with HAVE_LIBZ from core.  Result is bit simpler
Makefile which is only good.

--
marko

Attachment

Re: [PATCHES] vcbuild optional packages

From
Alvaro Herrera
Date:
Marko Kreen wrote:
> On 1/14/07, Magnus Hagander <magnus@hagander.net> wrote:
> >Is there any reason why the check is "backwards" in pgcrypto compared to
> >the rest of the system? All the other places check for HAVE_ZLIB from
> >what I can tell.
>
> Eh, just an oversight from my part.  I was so focused on Makefile
> hacking so I forgot to check if there is already a define
> somewhere.  And its reverse to have less clutter in command-line
> in default case.
>
> Attached patch replaces unnecessary DISABLE_ZLIB define in
> pgcrypto with HAVE_LIBZ from core.  Result is bit simpler
> Makefile which is only good.

Applied.

--
Alvaro Herrera                                http://www.CommandPrompt.com/
PostgreSQL Replication, Consulting, Custom Development, 24x7 support