BuildPGSQLWindows/UsingLinux

Материал из Etersoft wiki
Перейти к навигацииПерейти к поиску
Wackowiki-logo.png Blue Glass Arrow.svg MediaWiki logo.png
Эта страница была автоматически перемещена с old.wiki.etersoft.ru.
Эта страница наверняка требует чистки и улучшения — смело правьте разметку и ссылки.
Просьба по окончанию убрать этот шаблон со страницы.


Мануал для сборки PostgreSQL для Windows.


Сборка

    • Взять rpm
/var/ftp/pub/Etersoft/Postgres@Etersoft/8.4.4/sources/postgresql-8.4eter-8.4.4-alt1.1.src.rpm
    • Распаковать
  1. rpm -i postgresql-8.4eter-8.4.2-alt1.src.rpm
    • Приложить патчи.
  1. cd /RPM/SPECS
  1. rpmbuild -bp postgresql-8.4eter.spec
  1. Собрать
    • В configure
Найти такие строки. И удалить

Похоже этого делать не надо начиная с 8.4.4:

if test -z "$ZIC"; then

    { { echo "$as_me:$LINENO: error:

When cross-compiling, either use the option --with-system-tzdata to use

existing time-zone data, or set the environment variable ZIC to a zic

program to use during the build." >&5

echo "$as_me: error:

When cross-compiling, either use the option --with-system-tzdata to use

existing time-zone data, or set the environment variable ZIC to a zic

program to use during the build." >&2;}

   { (exit 1); exit 1; }; }

  fi
    • Запустить configure
  1. ./configure --host i586-pc-mingw32 --without-zlib --without-readline --enable-nls --without-openssl --without-perl --without-python --without-tcl
    • Запустить make
  1. make
    • В src/interfaces/libpq/libpq-8.4eterdll.def
Заменить LIBPQ-8.4ETER на LIBPQ-84ETER
    • В postgresql-8.4.2/contrib/mchar/
Распаковать в postgresql-8.4.2/contrib/mchar
(это связано с багой #5958, после решения надо изменить это описание)
      • В Makefile изменить:
SHLIB_LINK += -L/usr/local/lib -licuuc -l$(ICUNAME) -Wl,-rpath,'$$ORIGIN'
на
SHLIB_LINK += -Licu/lib -licuuc -l$(ICUNAME) -Wl,-rpath,'$$ORIGIN'


PG_CPPFLAGS=-I/usr/local/include
на
PG_CPPFLAGS=-I/usr/local/include -Iicu/include


    • В contrib/uuid-ossp/
выполнить make (может не собраться, зато появится html)
    • В Makefil'ах нужно замить строку
PROGRAM = <name_program>
на
PROGRAM = <name_program>.exe
в сделующих makefile'ах
      • contrib/pg_standby/
      • contrib/pgbench/
      • сontrib/vacuumlo/
      • сontrib/oid2name/
    • Запустить make 2 раз.
    • Запустить make -C contrib all и make -C contrib/xml2 all
Все эти изменения должны решится с багой #5957


Установка nsis

nsis есть в репозитарии (mingw32-nsis).

Однако у него есть одна проблема -- неработающий плагин System (System.dll). По этому поводу есть бага #6119.

Пока она не решена System.dll можно копировать из nsis (http://nsis.sourceforge.net/Download) или у нас (/var/ftp/pvt/Windows/4makepg/nsis/System.dll/System.dll)


Также нужно добавить плагины (копируются в папку nsis plugins)

Все плагины лежат тут /var/ftp/pvt/Windows/4makepg/nsis/Plugins/

Он был изменен, изменения в git'е c инсталлером.
  • localelist Для получения списка всех локалей. Исходники в git'е c инсталлером.


Копирование всего необходимого

Есть тут: /var/ftp/pvt/Windows/4makepg/nsis/OpenSSL-Win32


Есть тут: /var/ftp/pvt/Windows/4makepg/nsis/pgAdmin\ III


  • msvcr
Можно взять из инсталлера для pg_admin(как раз для него и нужно). http://www.pgadmin.org/download/windows.php.
Есть тут: /var/ftp/pvt/Windows/4makepg/nsis/msvcr


  • timezone (Не могу найти адрес откуда скачал)
Есть тут: /var/ftp/pvt/Windows/4makepg/nsis/timezone

Сборка инсталлера

  1. Нужно взять из git'а nsis'овский инсталлер: git.eter:public/pginstaller
Написать пути в файле setting.nsi


SSLPATH -- Для OpenSSL
LIBMINGWPATHFROM -- bin у mingw (например "\usr\i586-pc-mingw32\sys-root\mingw\bin\")
MSVCRPATHFROM -- msvcr
PGHEADPATHFROM -- Собранные исходники PostgreSQL
PGADMINPATHFROM -- pgAdmin3
TIMEZONEFROM -- timezone


  1. Собрать
  1. make

либо

makensis main.nsi