diff --git a/Readme.md b/Readme.md index f14f631..f451f9e 100644 --- a/Readme.md +++ b/Readme.md @@ -15,6 +15,8 @@ Directory contains various build scripts. * 7-Zip * NSIS * HTML Help Workshop (for PgAdmin documentation, included in Visual Studio) +* .NET 3.5 (for pg_probackup only) +* WiX toolset (for pg_probackup only) ## Patches @@ -35,3 +37,33 @@ If you want to use GIT: * GIT_BRANCH=[git branch name] -- if you sets this variables we will download source from git * GIT_PATH=[git path] -- git URL, git://git.postgresql.org/git/postgresql.git by default + +### probackup build +You can specify several environmental variables depending on desirable result: + +* PROBACKUP_VERSION=[2.1.3/2.1.5] - pg_probackup full version +* PROBACKUP_EDITION=[vanilla/std/enterprise] -- fork to build probackup for, default 'vanilla' +* PROBACKUP_PATCH_POSTGRESQL=[YES/NO] -- apply probackup specific patches, default NO +* GIT_COMMIT=commit -- git commit, to build source from + +To build pg_probackup installer for vanilla PostgreSQL, run: + +``` +SET SDK=MSVC2013 +SET PROBACKUP_VERSION=2.1.5 +SET PG_MAJOR_VERSION=11 +SET PG_PATCH_VERSION=4 +SET PROBACKUP_EDITION=vanilla +``` + +To build pg_probackup installer for PostgresPro Standart, run: + +``` +SET SDK=MSVC2013 +SET PROBACKUP_VERSION=2.1.5 +SET PG_MAJOR_VERSION=11 +SET PG_PATCH_VERSION=4 +SET PROBACKUP_EDITION=std +SET GIT_PATH=https://git.postgrespro.ru/pgpro-dev/postgrespro.git +SET GIT_BRANCH=PGPRO11_4_1 +``` diff --git a/build/helpers/dependencies.cmd b/build/helpers/dependencies.cmd index 47126fb..b1e8ab5 100644 --- a/build/helpers/dependencies.cmd +++ b/build/helpers/dependencies.cmd @@ -151,6 +151,9 @@ MKDIR %DEPENDENCIES_BIN_DIR%\openssl\lib\VC cp -av out32dll/* %DEPENDENCIES_BIN_DIR%\openssl\lib\VC || GOTO :ERROR cp -v out32dll/ssleay32.lib %DEPENDENCIES_BIN_DIR%\openssl\lib\VC\ssleay32MD.lib || GOTO :ERROR cp -v out32dll/libeay32.lib %DEPENDENCIES_BIN_DIR%\openssl\lib\VC\libeay32MD.lib || GOTO :ERROR +MKDIR %DEPENDENCIES_BIN_DIR%\openssl\bin +cp -av out32dll/openssl.exe %DEPENDENCIES_BIN_DIR%\openssl\bin || GOTO :ERROR +cp -av out32dll/*32.dll %DEPENDENCIES_BIN_DIR%\openssl\bin || GOTO :ERROR CD /D %DOWNLOADS_DIR% 7z a -r %DOWNLOADS_DIR%\%DEPS_ZIP% %DEPENDENCIES_BIN_DIR%\openssl -y diff --git a/build/helpers/postgres.cmd b/build/helpers/postgres.cmd index c7951a8..14a2a7d 100644 --- a/build/helpers/postgres.cmd +++ b/build/helpers/postgres.cmd @@ -20,23 +20,26 @@ GOTO :NOLOAD :BUILD_POSTGRESQL TITLE Building PostgreSQL... CD /D %DOWNLOADS_DIR% + IF "%GIT_PATH%"=="" ( SET GIT_PATH=git://git.postgresql.org/git/postgresql.git ) + IF NOT "%GIT_BRANCH%"=="" ( -rm -rf %BUILD_DIR%\postgresql -MKDIR %BUILD_DIR%\postgresql -MKDIR %BUILD_DIR%\postgresql\postgresql-%PGVER% -git clone -b %GIT_BRANCH% %GIT_PATH% %BUILD_DIR%\postgresql\postgresql-%PGVER% +rm -rf %BUILD_DIR%\postgresql || GOTO :ERROR +MKDIR %BUILD_DIR%\postgresql || GOTO :ERROR +MKDIR %BUILD_DIR%\postgresql\postgresql-%PGVER% || GOTO :ERROR +git clone --depth=1 -b %GIT_BRANCH% %GIT_PATH% %BUILD_DIR%\postgresql\postgresql-%PGVER% || GOTO :ERROR CD /D %BUILD_DIR%\postgresql\*%PGVER%* || GOTO :ERROR GOTO :NOTAR ) wget --no-check-certificate %PGURL% -O postgresql-%PGVER%.tar.bz2 || GOTO :ERROR -rm -rf %BUILD_DIR%\postgresql -MKDIR %BUILD_DIR%\postgresql -tar xf postgresql-%PGVER%.tar.bz2 -C %BUILD_UDIR%/postgresql +rm -rf %BUILD_DIR%\postgresql || GOTO :ERROR +MKDIR %BUILD_DIR%\postgresql || GOTO :ERROR +tar xf postgresql-%PGVER%.tar.bz2 -C %BUILD_UDIR%/postgresql || GOTO :ERROR CD /D %BUILD_DIR%\postgresql\*%PGVER%* || GOTO :ERROR + :NOTAR IF %ONE_C% == YES ( IF %HAVE_PGURL% == 1 SET PGTARNAME=postgrespro-1c @@ -51,16 +54,6 @@ IF %ONE_C% == YES ( :DONE_1C_PATCH -IF %HAVE_PGURL% == 0 ( - cp -va %ROOT%/patches/postgresql/%PG_MAJOR_VERSION%/series . - IF NOT EXIST series GOTO :DONE_POSTGRESQL_PATCH - FOR /F %%I IN (series) do ( - ECHO %%I - cp -va %ROOT%/patches/postgresql/%PG_MAJOR_VERSION%/%%I . - patch -p1 < %%I || GOTO :ERROR - ) -) - :DONE_POSTGRESQL_PATCH >src\tools\msvc\config.pl ECHO use strict; >>src\tools\msvc\config.pl ECHO use warnings; @@ -72,31 +65,18 @@ IF %HAVE_PGURL% == 0 ( >>src\tools\msvc\config.pl ECHO ^# blocksize ^=^> 8, >>src\tools\msvc\config.pl ECHO ^# wal_blocksize ^=^> 8, >>src\tools\msvc\config.pl ECHO ^# wal_segsize ^=^> 16, ->>src\tools\msvc\config.pl ECHO ldap ^=^> 1, ->>src\tools\msvc\config.pl ECHO nls ^=^> '%DEPENDENCIES_BIN_DIR%\libintl', +>>src\tools\msvc\config.pl ECHO ldap ^=^> undef, +>>src\tools\msvc\config.pl ECHO nls ^=^> undef, >>src\tools\msvc\config.pl ECHO tcl ^=^> undef, -IF %SDK% == SDK71 GOTO :DISABLE_PERL -IF %ARCH% == X86 GOTO :DISABLE_PERL -IF %ARCH% == X64 (>>src\tools\msvc\config.pl ECHO perl ^=^> '%PERL64_PATH%', ) -GOTO :PERL_CONF_DONE -:DISABLE_PERL -IF %ARCH% == X86 (>>src\tools\msvc\config.pl ECHO perl ^=^> undef, ) -:PERL_CONF_DONE -IF %ARCH% == X64 (>>src\tools\msvc\config.pl ECHO python ^=^> '%PYTHON64_PATH%', ) -IF %ARCH% == X86 (>>src\tools\msvc\config.pl ECHO python ^=^> '%PYTHON32_PATH%', ) >>src\tools\msvc\config.pl ECHO openssl ^=^> '%DEPENDENCIES_BIN_DIR%\openssl', ->>src\tools\msvc\config.pl ECHO uuid ^=^> '%DEPENDENCIES_BIN_DIR%\uuid', ->>src\tools\msvc\config.pl ECHO xml ^=^> '%DEPENDENCIES_BIN_DIR%\libxml2', ->>src\tools\msvc\config.pl ECHO xslt ^=^> '%DEPENDENCIES_BIN_DIR%\libxslt', ->>src\tools\msvc\config.pl ECHO iconv ^=^> '%DEPENDENCIES_BIN_DIR%\iconv', ->>src\tools\msvc\config.pl ECHO zlib ^=^> '%DEPENDENCIES_BIN_DIR%\zlib', ->>src\tools\msvc\config.pl ECHO icu ^=^> '%DEPENDENCIES_BIN_DIR%\icu' +>>src\tools\msvc\config.pl ECHO uuid ^=^> undef, +>>src\tools\msvc\config.pl ECHO xml ^=^> undef, +>>src\tools\msvc\config.pl ECHO xslt ^=^> undef, +>>src\tools\msvc\config.pl ECHO iconv ^=^> undef, +>>src\tools\msvc\config.pl ECHO zlib ^=^> '%DEPENDENCIES_BIN_DIR%\zlib' >>src\tools\msvc\config.pl ECHO ^}; >>src\tools\msvc\config.pl ECHO 1^; -REM IF %ONE_C% == YES ( -REM mv -v contrib\fulleq\fulleq.sql.in.in contrib\fulleq\fulleq.sql.in || GOTO :ERROR -REM ) SET DEPENDENCIES_BIN_DIR=%DEPENDENCIES_BIN_DIR:\=/% cp -va %DEPENDENCIES_BIN_DIR%/icu/include/* src\include\ || GOTO :ERROR @@ -160,6 +140,8 @@ REM remove python3 extensions rm -rf %BUILD_UDIR%/distr_%ARCH%_%PGVER%/postgresql/share/extension/*python3* || GOTO :ERROR rm -rf %BUILD_UDIR%/distr_%ARCH%_%PGVER%/postgresql/lib/*python3* || GOTO :ERROR +GOTO :DONE + SET WGET=wget --no-check-certificate rem download help sources diff --git a/build/helpers/probackup.cmd b/build/helpers/probackup.cmd new file mode 100644 index 0000000..90119b2 --- /dev/null +++ b/build/helpers/probackup.cmd @@ -0,0 +1,55 @@ +CALL %ROOT%\build\helpers\setvars.cmd + +SET PROBACKUP_URL=https://github.com/postgrespro/pg_probackup/tarball/%PROBACKUP_VERSION% +SET PRODUCT_NAME="" + +IF %PROBACKUP_EDITION% == vanilla ( + SET PRODUCT_NAME=PostgreSQL +) + +IF %PROBACKUP_EDITION% == std ( + SET PRODUCT_NAME=PostgresPro +) + +IF %PRODUCT_NAME% == "" ( + ECHO Invalid PROBACKUP_EDITION: %PROBACKUP_EDITION% + GOTO :ERROR +) + +SET BIN_DIR=%BUILD_DIR%\pg_probackup_%PROBACKUP_EDITION%_%PG_MAJOR_VERSION%_%PROBACKUP_VERSION%_%ARCH% + +echo Download sources ... + +rm -rf %BUILD_DIR%\pg_probackup || GOTO :ERROR +MKDIR %BUILD_DIR%\pg_probackup || GOTO :ERROR +MKDIR %BUILD_DIR%\pg_probackup\pg_probackup-%PG_MAJOR_VERSION%-%PROBACKUP_VERSION% || GOTO :ERROR + +CD /D %BUILD_DIR%\pg_probackup\pg_probackup-%PG_MAJOR_VERSION%-%PROBACKUP_VERSION% || GOTO :ERROR + +git clone https://github.com/postgrespro/pg_probackup . || GOTO :ERROR +git checkout %PROBACKUP_VERSION% || GOTO :ERROR + +IF NOT "%GIT_COMMIT%"=="" ( + git checkout %GIT_COMMIT% || GOTO :ERROR +) + + +perl gen_probackup_project.pl %BUILD_DIR%\postgresql\postgresql-%PGVER% || GOTO :ERROR + +rm -rf %BIN_DIR% || GOTO :ERROR +MKDIR %BIN_DIR% || GOTO :ERROR + +copy %BUILD_DIR%\postgresql\postgresql-%PGVER%\Release\pg_probackup\pg_probackup.exe %BIN_DIR% || GOTO :ERROR +copy %BUILD_DIR%\postgresql\postgresql-%PGVER%\Release\libpq\libpq.dll %BIN_DIR% || GOTO :ERROR +copy %DEPENDENCIES_BIN_DIR%\zlib\lib\zlib1.dll %BIN_DIR% || GOTO :ERROR +copy %DEPENDENCIES_BIN_DIR%\openssl\lib\libeay32.dll %BIN_DIR% || GOTO :ERROR +copy %DEPENDENCIES_BIN_DIR%\openssl\lib\ssleay32.dll %BIN_DIR% || GOTO :ERROR + +goto :DONE + +:ERROR +ECHO Failed with error #%errorlevel%. +EXIT /b %errorlevel% + +:DONE +ECHO Done. diff --git a/build/helpers/probackup_installer.cmd b/build/helpers/probackup_installer.cmd new file mode 100644 index 0000000..1ffb21c --- /dev/null +++ b/build/helpers/probackup_installer.cmd @@ -0,0 +1,63 @@ +CALL %ROOT%\build\helpers\setvars.cmd + +echo. +echo Building PG_PROBACKUP Installer... + +SET WIXDIR=C:\Program Files (x86)\WiX Toolset v3.11\bin +SET PRODUCT_NAME="" + +IF %PROBACKUP_EDITION% == vanilla ( + SET PRODUCT_NAME=PostgreSQL + SET PG_DEF_BRANDING=PostgreSQL%PG_MAJOR_VERSION% +) + +IF %PROBACKUP_EDITION% == std ( + SET PRODUCT_NAME=PostgresPro + SET PG_DEF_BRANDING=PostgresPro%PG_MAJOR_VERSION% +) + +IF %PRODUCT_NAME% == "" ( + ECHO Invalid PROBACKUP_EDITION: %PROBACKUP_EDITION% + GOTO :ERROR +) + +SET PG_REG_KEY=SOFTWARE\Postgres Professional\%ARCH%\%PRODUCT_NAME%\%PG_MAJOR_VERSION%\Installations\postgresql-%PG_MAJOR_VERSION% +SET BIN_DIR=%BUILD_DIR%\pg_probackup_%PROBACKUP_EDITION%_%PG_MAJOR_VERSION%_%PROBACKUP_VERSION%_%ARCH% + +rm -rf %BUILD_DIR%\pg_probackup\installer || GOTO :ERROR +MKDIR %BUILD_DIR%\pg_probackup\installer + +CD /D %ROOT%\wix +cp -av pg_probackup/* %BUILD_DIR%\pg_probackup\installer || GOTO :ERROR +CD /D %BUILD_DIR%\pg_probackup\installer + +echo. +echo Building Full Installer... + +>Files.wxs ECHO ^<^?xml version="1.0" encoding="UTF-8"?^> +>>Files.wxs ECHO ^ +>>Files.wxs ECHO ^<^?include Variables.wxi?^> +>>Files.wxs ECHO ^ +>>Files.wxs ECHO ^ +>>Files.wxs ECHO ^<^Component Id="ProductComponent" Guid="$(var.ComponentCode)" Win64="$(var.Win64)"^> +perl genfilelist.pl %BIN_DIR%/*.* Files.wxs +>>Files.wxs ECHO ^<^/Component^> +>>Files.wxs ECHO ^<^/DirectoryRef^> +>>Files.wxs ECHO ^<^/Fragment^> +>>Files.wxs ECHO ^<^/Wix^> +"%WIXDIR%\candle" -nologo -dAPPVERSION="%PROBACKUP_VERSION%" -dPG_REG_KEY="%PG_REG_KEY%" -dPG_DEF_BRANDING="%PG_DEF_BRANDING%" Product_separate.wxs Files.wxs || goto :ERROR + +SET INS_FILE=pg-probackup-%PROBACKUP_EDITION%-%PG_MAJOR_VERSION%-%PROBACKUP_VERSION%-standalone-en.msi + +"%WIXDIR%\light" -sice:ICE03 -sice:ICE25 -sice:ICE82 -sw1101 -nologo -ext WixUIExtension -cultures:en-us -o %INS_FILE% Files.wixobj Product_separate.wixobj || goto :ERROR + +cp -av pg-probackup-%PROBACKUP_EDITION%-%PG_MAJOR_VERSION%-%PROBACKUP_VERSION%-standalone-en.msi %BUILD_DIR%\installers\ || goto :ERROR + +goto :DONE + +:ERROR +ECHO Failed with error #%errorlevel%. +EXIT /b %errorlevel% + +:DONE +ECHO Done. diff --git a/build/helpers/setvars.cmd b/build/helpers/setvars.cmd index 50c9c18..d6be9cc 100644 --- a/build/helpers/setvars.cmd +++ b/build/helpers/setvars.cmd @@ -17,7 +17,7 @@ SET PYTHON32_PATH=C:\Python27x86 SET PYTHON64_PATH=C:\Python27x64 SET ZIP_PATH=C:\Program Files\7-Zip;C:\Program Files (x86)\7-Zip SET NSIS_PATH=C:\Program Files (x86)\NSIS -SET MSYS2_PATH=C:\msys64\mingw32\bin;C:\msys64\mingw64\bin;C:\msys32\usr\bin;C:\msys64\usr\bin +SET MSYS2_PATH=D:\msys64\mingw32\bin;D:\msys64\mingw64\bin;C:\msys32\usr\bin;D:\msys64\usr\bin SET PATH=%PATH%;%ZIP_PATH%;%MSYS2_PATH%;%NSIS_PATH% SET PERL5LIB=. diff --git a/build/run.cmd b/build/run.cmd index c1bd85f..e187604 100644 --- a/build/run.cmd +++ b/build/run.cmd @@ -14,6 +14,8 @@ IF "%~1" == "4" GOTO :OK IF "%~1" == "5" GOTO :OK IF "%~1" == "6" GOTO :OK IF "%~1" == "7" GOTO :OK +IF "%~1" == "8" GOTO :OK +IF "%~1" == "9" GOTO :OK SET USG=1 @@ -27,6 +29,8 @@ IF DEFINED USG ( ECHO 5: Build installer PgAdmin3 ECHO 6: Make PostgreSQL and PgAdmin3 archives ECHO 7: Build pgbouncer + ECHO 8: Build pg_probackup + ECHO 9: Build pg_probackup installer PAUSE EXIT /b 1 ) @@ -95,6 +99,16 @@ IF "%~1"=="7" ( CMD.EXE /C %ROOT%\build\helpers\pgbouncer.cmd || GOTO :ERROR ) +IF "%~1"=="8" ( + TITLE Build PG_PROBACKUP + CMD.EXE /C %ROOT%\build\helpers\probackup.cmd || GOTO :ERROR +) + +IF "%~1"=="9" ( + TITLE Build PG_PROBACKUP installer + CMD.EXE /C %ROOT%\build\helpers\probackup_installer.cmd || GOTO :ERROR +) + GOTO :DONE :ERROR diff --git a/patches/pg_probackup/dirent.patch b/patches/pg_probackup/dirent.patch new file mode 100644 index 0000000..8b98082 --- /dev/null +++ b/patches/pg_probackup/dirent.patch @@ -0,0 +1,19 @@ +diff --git a/src/port/dirent.c b/src/port/dirent.c +index 7a91450..284bf27 100644 +--- a/src/port/dirent.c ++++ b/src/port/dirent.c +@@ -83,7 +83,13 @@ readdir(DIR *d) + d->handle = FindFirstFile(d->dirname, &fd); + if (d->handle == INVALID_HANDLE_VALUE) + { +- errno = ENOENT; ++ if (GetLastError() == ERROR_FILE_NOT_FOUND) ++ { ++ /* No more files, force errno=0 (unlike mingw) */ ++ errno = 0; ++ return NULL; ++ } ++ _dosmaperr(GetLastError()); + return NULL; + } + } diff --git a/wix/pg_probackup/Files_example.wxs b/wix/pg_probackup/Files_example.wxs new file mode 100644 index 0000000..5d3922e --- /dev/null +++ b/wix/pg_probackup/Files_example.wxs @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/wix/pg_probackup/Product.wxs b/wix/pg_probackup/Product.wxs new file mode 100644 index 0000000..d1aa64b --- /dev/null +++ b/wix/pg_probackup/Product.wxs @@ -0,0 +1,103 @@ + + + + + + + + + + + + + + + + + + + + + + + "")]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/wix/pg_probackup/Product_separate.wxs b/wix/pg_probackup/Product_separate.wxs new file mode 100644 index 0000000..508e11e --- /dev/null +++ b/wix/pg_probackup/Product_separate.wxs @@ -0,0 +1,109 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/wix/pg_probackup/RegenGuids.pl b/wix/pg_probackup/RegenGuids.pl new file mode 100644 index 0000000..fe80639 --- /dev/null +++ b/wix/pg_probackup/RegenGuids.pl @@ -0,0 +1,24 @@ +use Win32; + +my $filename = shift @ARGV; + +die "Usage: regenguids.pl \n\n" unless ($filename); + +sub MakeGuid { + my $u = Win32::GuidGen(); + $u =~ s/[{}]//g; + return $u; +} + +open(IN,"<$filename"); +open(OUT, ">$filename.out") || die "Could not open output file ($filename.out)!\n"; + +while() { + chomp(); + if(/(.*)([0-9A-Fa-f]{8}-?[0-9A-Fa-f]{4}-?[0-9A-Fa-f]{4}-?[0-9A-Fa-f]{4}-?[0-9A-Fa-f]{12})(.*)/) { + $newguid=MakeGuid(); + print OUT $1.$newguid.$3; + } else { print OUT $_ ;} + print OUT "\n"; +} + diff --git a/wix/pg_probackup/Variables.wxi b/wix/pg_probackup/Variables.wxi new file mode 100644 index 0000000..d9f61c1 --- /dev/null +++ b/wix/pg_probackup/Variables.wxi @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + diff --git a/wix/pg_probackup/background.bmp b/wix/pg_probackup/background.bmp new file mode 100644 index 0000000..f8489e0 Binary files /dev/null and b/wix/pg_probackup/background.bmp differ diff --git a/wix/pg_probackup/banner.bmp b/wix/pg_probackup/banner.bmp new file mode 100644 index 0000000..b677a20 Binary files /dev/null and b/wix/pg_probackup/banner.bmp differ diff --git a/wix/pg_probackup/genfilelist.pl b/wix/pg_probackup/genfilelist.pl new file mode 100644 index 0000000..2a889c7 --- /dev/null +++ b/wix/pg_probackup/genfilelist.pl @@ -0,0 +1,29 @@ +use Win32; +use File::Basename; + +sub usage +{ + die( "Usage: genfilelist.pl \n"); +} + + usage() + unless scalar(@ARGV) == 2; + +my $filename = $ARGV[1]; +open(OUT, ">>$filename") || die "Could not open output file ($filename)!\n"; + + +my @files = glob($ARGV[0]); +my $file2 = ""; + + foreach my $file (@files) { + + $file2 = basename($file); + $file2 =~ s/-//ig; + print OUT "\n"; + + + } + +close(OUT); +exit 0; diff --git a/wix/pg_probackup/genres.pl b/wix/pg_probackup/genres.pl new file mode 100644 index 0000000..f384986 --- /dev/null +++ b/wix/pg_probackup/genres.pl @@ -0,0 +1,48 @@ +use Win32; +use File::Basename; + +sub usage +{ + die( "Usage: genres.pl \nFor example:\ngenres.pl \"Pro database backup\" 2.0.26 dll"); +} + + usage() + unless scalar(@ARGV) == 3; + + AddResourceFile($ARGV[0], $ARGV[1], $ARGV[2]); + +exit 0; + + +sub AddResourceFile +{ + my ($desc, $ver, $type) = @_; + $ver =~ s/\./,/gm; + + my ($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst) = + localtime(time); + my $d = sprintf("%02d%03d", ($year - 100), $yday); + + print "Generating win32ver.rc\n"; + open(my $i, '<', 'win32ver_tmp.rc') + || die "Could not open win32ver_tmp.rc"; + open(my $o, '>', "win32ver.rc") + || die "Could not write win32ver.rc"; + my $icostr = $ico ? "IDI_ICON ICON \"$ico.ico\"" : ""; + while (<$i>) + { + s/FILEDESC/"$desc"/gm; + s/_ICO_/$icostr/gm; + #s/(VERSION.*),0/$1,$d/; + s/(VERSION ).*$/$1 $ver,$d/; + if ($type eq "dll") + { + s/VFT_APP/VFT_DLL/gm; + } + print $o $_; + } + close($o); + close($i); + + return; +} diff --git a/wix/pg_probackup/licence.rtf b/wix/pg_probackup/licence.rtf new file mode 100644 index 0000000..02dd165 Binary files /dev/null and b/wix/pg_probackup/licence.rtf differ diff --git a/wix/pg_probackup/readme.md b/wix/pg_probackup/readme.md new file mode 100644 index 0000000..7298862 --- /dev/null +++ b/wix/pg_probackup/readme.md @@ -0,0 +1,4 @@ +Use run.cmd for build pg_probackup with download source and binary fron repo.postgrespro.ru +Use build_separate.bat if you already have source and binary. You must set environment variables in this file. + + diff --git a/wix/pg_probackup/readme.txt b/wix/pg_probackup/readme.txt new file mode 100644 index 0000000..12d21bb --- /dev/null +++ b/wix/pg_probackup/readme.txt @@ -0,0 +1,52 @@ +Использование скриптов + +Используйте RUN.CMD для скачивания исходников и исполняемых файлов postgreSQL, скачивания и сборки pg_probackup +Для этого файла используйте переменные среды: + +--- stable или dev --- +SET ISDEV=1 для dev версии postgres +SET ISDEV= для стабильной версии postgres + +-- версия PostgreSQL --- +SET PG_MAJOR_VERSION=11 +SET PG_PATCH_VERSION=1.1 + +-- версия PRO продукта, используется для вычисления ветки реестра, куда записывается путь к PostgreSQL --- +SET PRODUCT_NAME=PostgresPro +или +SET PRODUCT_NAME=PostgresProEnterprise + +--- версия pg_probackup --- +SET APPVERSION=2.0.26 + + + +Используйте build_separate.bat для скачивания и сборки pg_probackup без загрузки postgreSQL + +В начале этого файла надо настроить переменные: + +--- путь к исходным кодам и к бинарным файлам PostgrSQL --- +SET PGDIRSRC=... +SET PGDIR=... + +--- Версию pg_probackup --- +SET APPVERSION=2.0.26 + +Для создания инсталлятора требуются следующие переменные среды: + +--- ветка реестра, в которую пишется путь к установке PostgresPro. --- +SET PG_REG_KEY=SOFTWARE\PostgresPro\X64\PostgresProEnterprise\11\Installations\postgresql-11 +(не используется при создании автономного инсталлятора) + +--- используется при сообщении, что инсталляция продукта не найдена: --- +SET PG_DEF_BRANDING=PostgresPro Enterprise 11 + +--- в этом случае используется только как первая часть в имени файла инсталлятора --- +SET PRODUCT_NAME=PostgresProEnterprise + +--- используется для имени фйла инсталлтора --- +SET BITS=64bit + +--- используется для имени фйла инсталлтора --- +SET PGVER=11.1.1 + diff --git a/wix/pg_probackup/run.cmd b/wix/pg_probackup/run.cmd new file mode 100644 index 0000000..bbac6e4 --- /dev/null +++ b/wix/pg_probackup/run.cmd @@ -0,0 +1,100 @@ +SET ZIP_PATH=C:\Program Files\7-Zip;C:\Program Files (x86)\7-Zip +SET MSYS2_PATH=C:\msys64\usr\bin +SET PATH=%PATH%;%ZIP_PATH%;%MSYS2_PATH%; +rem SET ISDEV=1 for dev version of postgres +rem SET ISDEV= for stable version of postgres +IF EXIST config.cmd ( +call config.cmd +GOTO :HAVECONFIG +) +rem PRODUCT_NAME may be PostgresProEnterprise or PostgresPro +IF "%PRODUCT_NAME%" == "" SET PRODUCT_NAME=PostgresPro +IF "%PG_MAJOR_VERSION%" == "" SET PG_MAJOR_VERSION=11 +IF "%PG_PATCH_VERSION%" == "" SET PG_PATCH_VERSION=1.1 +IF "%EDITION%" == "" SET EDITION=std +rem version of pg_probackup: +IF "%APPVERSION%" == "" SET APPVERSION=2.0.26 +IF "%ARCH%" == "" SET ARCH=X64 +:HAVECONFIG +SET COMPANY_NAME=PostgresPro +IF %ARCH% == X86 ( + SET BITS=32bit +) else ( + SET BITS=64bit +) + +ECHO %PG_PATCH_VERSION% | grep "^[0-9]." > nul && ( + SET PGVER=%PG_MAJOR_VERSION%.%PG_PATCH_VERSION% +) || ( + SET PGVER=%PG_MAJOR_VERSION%%PG_PATCH_VERSION% +) + +SET PG_INS_FILE=%PRODUCT_NAME%_%PGVER%_%BITS%_Setup.exe + +rem Set reg key +SET PRODUCT_DIR_REGKEY=SOFTWARE\%COMPANY_NAME%\%ARCH%\%PRODUCT_NAME%\%PG_MAJOR_VERSION% +SET PG_REG_KEY=%PRODUCT_DIR_REGKEY%\Installations\postgresql-%PG_MAJOR_VERSION% +rem echo PgVer=%PGVER% + +rem set URLS for downloading +SET PRODUCT=pgpro-%PG_MAJOR_VERSION% +IF "%PRODUCT_NAME%" == "PostgresProEnterprise" ( + SET PRODUCT=pgproee-%PG_MAJOR_VERSION% +) + +rem http://localrepo.l.postgrespro.ru/dev/ + +SET URL_PART_ONE=http://localrepo.l.postgrespro.ru/dev/%PRODUCT% +IF "%ISDEV%" == "" ( +SET URL_PART_ONE=http://repo.postgrespro.ru/%PRODUCT%-beta/ +) + +IF "%PG_MAJOR_VERSION%" == "9.6" SET PG_URL=%URL_PART_ONE%/src/postgrespro-%PGVER%.tar.bz2 +IF NOT "%PG_MAJOR_VERSION%" == "9.6" SET PG_URL=%URL_PART_ONE%/src/postgrespro-standard-%PGVER%.tar.bz2 + +SET PG_INS_URL=%URL_PART_ONE%/win/%PG_INS_FILE% +SET PG_DEF_BRANDING=PostgresPro%PG_MAJOR_VERSION% +IF "%PRODUCT_NAME%" == "PostgresProEnterprise" ( +SET PG_URL=%URL_PART_ONE%/src/postgrespro-enterprise-%PGVER%.tar.bz2 +SET PG_INS_URL=%URL_PART_ONE%/win/%PG_INS_FILE% +SET PG_DEF_BRANDING=PostgresProEnterprise%PG_MAJOR_VERSION% +) +IF "%PRODUCT_NAME%" == "PostgreSql" ( +SET PG_URL=https://ftp.postgresql.org/pub/source/v%PGVER%/postgresql-%PGVER%.tar.bz2 +SET PG_INS_URL=https://repo.postgrespro.ru/win/64/PostgreSQL_%PGVER%_64bit_Setup.exe +SET PG_DEF_BRANDING=PostgreSQL%PG_MAJOR_VERSION% +SET COMPANY_NAME=Postgres Professional +SET PRODUCT_DIR_REGKEY=SOFTWARE\Postgres Professional\%ARCH%\%PRODUCT_NAME%\%PG_MAJOR_VERSION% +SET PG_REG_KEY=SOFTWARE\Postgres Professional\%ARCH%\%PRODUCT_NAME%\%PG_MAJOR_VERSION%\Installations\postgresql-%PG_MAJOR_VERSION% +) +rem GOTO :TEST +echo Downloading sources... +wget --no-check-certificate %PG_URL% -O postgresql-%PGVER%.tar.bz2 || GOTO :ERROR +rm -rf ./postgresql +MKDIR .\postgresql +tar xf postgres*-%PGVER%.tar.bz2 -C ./postgresql || GOTO :ERROR +mv ./postgresql/*%PGVER%*/* ./postgresql/ + +rem patch for readdir +rem will removed in the next postgres version +rem IF "%PRODUCT_NAME%" == "PostgreSql" ( +rem CD postgresql +rem patch -f -p1 < ..\dirent.patch || GOTO :ERROR +rem cd .. +rem ) +echo Downloading bins... +wget --no-check-certificate %PG_INS_URL% -O setup-%PGVER%.exe || GOTO :ERROR +rm -rf ./setup +7z.exe x setup-%PGVER%.exe -o./setup || GOTO :ERROR +:TEST +SET PGDIRSRC=.././postgresql +SET PGDIR=.././setup + +call build_pro_backup.bat || GOTO :ERROR + +goto :DONE +:ERROR +ECHO Failed with error #%errorlevel%. +EXIT /b %errorlevel% +:DONE +ECHO Done. diff --git a/wix/pg_probackup/win32.ico b/wix/pg_probackup/win32.ico new file mode 100644 index 0000000..a58ee43 Binary files /dev/null and b/wix/pg_probackup/win32.ico differ diff --git a/wix/pg_probackup/win32ver.rc b/wix/pg_probackup/win32ver.rc new file mode 100644 index 0000000..925bd65 --- /dev/null +++ b/wix/pg_probackup/win32ver.rc @@ -0,0 +1,32 @@ +#include +#include "pg_config.h" + +VS_VERSION_INFO VERSIONINFO + FILEVERSION 2,1,1,19132 + PRODUCTVERSION 2,1,1,19132 + FILEFLAGSMASK 0x17L + FILEFLAGS 0x0L + FILEOS VOS_NT_WINDOWS32 + FILETYPE VFT_APP + FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "000004b0" + BEGIN + VALUE "CompanyName", "Postgres Professional" + VALUE "FileDescription", "pg_probackup for PostgreSQL" + VALUE "FileVersion", PG_VERSION + VALUE "LegalCopyright", "Copyright (c) 2015-2019, Postgres Professional. Portions Copyright (c) 1996-2018, PostgreSQL Global Development Group. Portions Copyright (c) 1994, Regents of the University of California." + + VALUE "ProductName", "Postgre Pro" + VALUE "ProductVersion", PG_VERSION + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0, 1200 + END +END + +IDI_ICON ICON "win32.ico" diff --git a/wix/pg_probackup/win32ver_tmp.rc b/wix/pg_probackup/win32ver_tmp.rc new file mode 100644 index 0000000..573d9da --- /dev/null +++ b/wix/pg_probackup/win32ver_tmp.rc @@ -0,0 +1,32 @@ +#include +#include "pg_config.h" + +VS_VERSION_INFO VERSIONINFO + FILEVERSION 11,0,2,0 + PRODUCTVERSION 11,0,2,0 + FILEFLAGSMASK 0x17L + FILEFLAGS 0x0L + FILEOS VOS_NT_WINDOWS32 + FILETYPE VFT_APP + FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "000004b0" + BEGIN + VALUE "CompanyName", "Postgres Professional" + VALUE "FileDescription", FILEDESC + VALUE "FileVersion", PG_VERSION + VALUE "LegalCopyright", "Copyright (c) 2015-2019, Postgres Professional. Portions Copyright (c) 1996-2018, PostgreSQL Global Development Group. Portions Copyright (c) 1994, Regents of the University of California." + + VALUE "ProductName", "Postgre Pro" + VALUE "ProductVersion", PG_VERSION + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0, 1200 + END +END + +IDI_ICON ICON "win32.ico" pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy