Building psqlODBC installers - Mailing list pgsql-odbc

From Heikki Linnakangas
Subject Building psqlODBC installers
Date
Msg-id 539AEFAF.1070708@vmware.com
Whole thread Raw
Responses Re: Building psqlODBC installers  (Michael Paquier <michael.paquier@gmail.com>)
Re: Building psqlODBC installers  (Craig Ringer <craig@2ndquadrant.com>)
Re: Building psqlODBC installers  ("Inoue, Hiroshi" <inoue@tpf.co.jp>)
Re: Building psqlODBC installers  ("Inoue, Hiroshi" <inoue@tpf.co.jp>)
List pgsql-odbc
I found the procedure for building the installers quite cumbersome.
There are several ways to do it, using the PowerShell installers, or
Make.bat or Makex64.bat files, and you have to first build the right
drivers versions etc.

To simplify things, I invented yet another way to build the installers ;-).

I pushed a patch that adds new targets to the top-level win64.mak file.
The most interesting target is "world", which builds both x64 and x86
versions of the driver, both ANSI and Unicode versions. And then it
builds both x86 and x64 installers. All in one command:

nmake /f win64.mak world

I don't know how you've been building the official releases so far, but
I would strongly recommend using this method. I'd like to remove the
installer/make.bat and installer/makex64.bat files now. The only reason
I didn't do that yet is that I don't actually do the official releases
myself, so wanted to make sure this works for everyone.

So: Hiroshi, Hiroshi, Dave, does this method work for you, for building
the official builds? Would it be helpful to add new targets to build the
various .zip files, for pushing directly to the FTP site?

Any objections to removing the following files:

installer/Make.bat
installer/Makex64.bat
installer/buildX86-installer.ps1
installer/buildX64-installer.ps1

?

To be honest, I would also like to remove the MSBuild stuff that
Inoue-san did last summer. I prefer the nmake infrastructure, and don't
find it useful myself. But I know you spent a lot of effort on writing
that stuff... Do you use it actively? What would it take to convince you
to switch back to the nmake system? I volunteer to improve the nmake
system, if there's something missing.


One cumbersome thing left is bumping the version number. We have version
numbers in many different files (and my commit only made the situation
worse). For example, see the latest commit that bumped up the version
number to 09.03.0300:

commit dbd2a9eb2be8913bdfbe4331f8a1649966e39906
Author: Hiroshi Saito <hiroshi@winpg.jp>
Date:   Wed May 14 00:24:27 2014 +0900

     Prep release ver 09.03.0300

  configure.ac                        |  2 +-
  docs/release.html                   | 33 +++++++++++++++++++++++++++++++++
  installer/Make.bat                  |  3 ++-
  installer/MakeX64.bat               |  3 ++-
  installer/buildX64-installer.ps1    |  1 +
  version.h                           |  6 +++---
  winbuild/configuration_template.xml |  2 +-
  7 files changed, 43 insertions(+), 7 deletions(-)

And that one forgot to update installer/buildX86-installer.ps1! And it's
not just a version number, many of those files contain product UUIDs
like this (from Make.bat):

+SET PRODUCTID["09.03.0300"]="D3527FA5-9C2B-4550-A59B-9534A78950F4"

these need to be kept in sync across all files.

So my next endeavor is to try to unify all that. There should be exactly
one file that contains all the version numbers and product codes, and
one script or makefile target to update it.

- Heikki


pgsql-odbc by date:

Previous
From: Craig Ringer
Date:
Subject: NPE in psqlodbc30a.dll!PgDtc_set_property caused by pgendlista.dll!IAsyncPG::RequestExec
Next
From: Michael Paquier
Date:
Subject: Re: Building psqlODBC installers