diff --git a/README.en.md b/README.en.md deleted file mode 100644 index b45fc6c..0000000 --- a/README.en.md +++ /dev/null @@ -1,36 +0,0 @@ -# libpq - -#### Description -{**When you're done, you can delete the content in this README and update the file with details for others getting started with your repository**} - -#### Software Architecture -Software architecture description - -#### Installation - -1. xxxx -2. xxxx -3. xxxx - -#### Instructions - -1. xxxx -2. xxxx -3. xxxx - -#### Contribution - -1. Fork the repository -2. Create Feat_xxx branch -3. Commit your code -4. Create Pull Request - - -#### Gitee Feature - -1. You can use Readme\_XXX.md to support different languages, such as Readme\_en.md, Readme\_zh.md -2. Gitee blog [blog.gitee.com](https://blog.gitee.com) -3. Explore open source project [https://gitee.com/explore](https://gitee.com/explore) -4. The most valuable open source project [GVP](https://gitee.com/gvp) -5. The manual of Gitee [https://gitee.com/help](https://gitee.com/help) -6. The most popular members [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/) diff --git a/README.md b/README.md deleted file mode 100644 index 120669c..0000000 --- a/README.md +++ /dev/null @@ -1,39 +0,0 @@ -# libpq - -#### 介绍 -{**以下是码云平台说明,您可以替换此简介** -码云是 OSCHINA 推出的基于 Git 的代码托管平台(同时支持 SVN)。专为开发者提供稳定、高效、安全的云端软件开发协作平台 -无论是个人、团队、或是企业,都能够用码云实现代码托管、项目管理、协作开发。企业项目请看 [https://gitee.com/enterprises](https://gitee.com/enterprises)} - -#### 软件架构 -软件架构说明 - - -#### 安装教程 - -1. xxxx -2. xxxx -3. xxxx - -#### 使用说明 - -1. xxxx -2. xxxx -3. xxxx - -#### 参与贡献 - -1. Fork 本仓库 -2. 新建 Feat_xxx 分支 -3. 提交代码 -4. 新建 Pull Request - - -#### 码云特技 - -1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md -2. 码云官方博客 [blog.gitee.com](https://blog.gitee.com) -3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解码云上的优秀开源项目 -4. [GVP](https://gitee.com/gvp) 全称是码云最有价值开源项目,是码云综合评定出的优秀开源项目 -5. 码云官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help) -6. 码云封面人物是一档用来展示码云会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/) diff --git a/libpq-10.3-rpm-pgsql.patch b/libpq-10.3-rpm-pgsql.patch new file mode 100644 index 0000000..aec64ac --- /dev/null +++ b/libpq-10.3-rpm-pgsql.patch @@ -0,0 +1,72 @@ +For the RPMs, we want the custom installation directories to end in +/pgsql not /postgresql. This is historical but not worth changing. + +Notice that this patch also makes the appending of /pgsql unconditional. +This is to avoid unexpected behavior if the RPM is built in a working +directory whose path happens to include "postgres" or "pgsql" already. +However, datadir and sysconfdir are already set up in the specfile's +configure call, so we do not have to append anything to them. + + +diff -Naur postgresql-9.0.1.orig/src/Makefile.global.in postgresql-9.0.1/src/Makefile.global.in +--- postgresql-9.0.1.orig/src/Makefile.global.in 2010-10-01 10:25:44.000000000 -0400 ++++ postgresql-9.0.1/src/Makefile.global.in 2010-10-11 11:52:05.224975308 -0400 +@@ -55,8 +55,7 @@ + # Installation directories + # + # These are set by the equivalent --xxxdir configure options. We +-# append "postgresql" to some of them, if the string does not already +-# contain "pgsql" or "postgres", in order to avoid directory clutter. ++# append "pgsql" to some of them, in order to avoid directory clutter. + # + # In a PGXS build, we cannot use the values inserted into Makefile.global + # by configure, since the installation tree may have been relocated. +@@ -74,45 +73,23 @@ + bindir := @bindir@ + + datadir := @datadir@ +-ifeq "$(findstring pgsql, $(datadir))" "" +-ifeq "$(findstring postgres, $(datadir))" "" +-override datadir := $(datadir)/postgresql +-endif +-endif + + sysconfdir := @sysconfdir@ +-ifeq "$(findstring pgsql, $(sysconfdir))" "" +-ifeq "$(findstring postgres, $(sysconfdir))" "" +-override sysconfdir := $(sysconfdir)/postgresql +-endif +-endif + + libdir := @libdir@ + + pkglibdir = $(libdir) +-ifeq "$(findstring pgsql, $(pkglibdir))" "" +-ifeq "$(findstring postgres, $(pkglibdir))" "" +-override pkglibdir := $(pkglibdir)/postgresql +-endif +-endif ++override pkglibdir := $(pkglibdir)/pgsql + + includedir := @includedir@ + + pkgincludedir = $(includedir) +-ifeq "$(findstring pgsql, $(pkgincludedir))" "" +-ifeq "$(findstring postgres, $(pkgincludedir))" "" +-override pkgincludedir := $(pkgincludedir)/postgresql +-endif +-endif ++override pkgincludedir := $(pkgincludedir)/pgsql + + mandir := @mandir@ + + docdir := @docdir@ +-ifeq "$(findstring pgsql, $(docdir))" "" +-ifeq "$(findstring postgres, $(docdir))" "" +-override docdir := $(docdir)/postgresql +-endif +-endif ++override docdir := $(docdir)/pgsql + + htmldir := @htmldir@ + diff --git a/libpq-10.3-var-run-socket.patch b/libpq-10.3-var-run-socket.patch new file mode 100644 index 0000000..8e3b193 --- /dev/null +++ b/libpq-10.3-var-run-socket.patch @@ -0,0 +1,53 @@ +Change the built-in default socket directory to be /var/run/postgresql. +For backwards compatibility with (probably non-libpq-based) clients that +might still expect to find the socket in /tmp, also create a socket in +/tmp. This is to resolve communication problems with clients operating +under systemd's PrivateTmp environment, which won't be using the same +global /tmp directory as the server; see bug #825448. + +Note that we apply the socket directory change at the level of the +hard-wired defaults in the C code, not by just twiddling the setting in +postgresql.conf.sample; this is so that the change will take effect on +server package update, without requiring any existing postgresql.conf +to be updated. (Of course, a user who dislikes this behavior can still +override it via postgresql.conf.) + +diff --git a/src/backend/utils/misc/guc.c b/src/backend/utils/misc/guc.c +index 9481f2d..75532c7 100644 +--- a/src/backend/utils/misc/guc.c ++++ b/src/backend/utils/misc/guc.c +@@ -3196,7 +3196,7 @@ static struct config_string ConfigureNamesString[] = + }, + &Unix_socket_directories, + #ifdef HAVE_UNIX_SOCKETS +- DEFAULT_PGSOCKET_DIR, ++ DEFAULT_PGSOCKET_DIR ", /tmp", + #else + "", + #endif +diff --git a/src/bin/initdb/initdb.c b/src/bin/initdb/initdb.c +index feeff9e..3e3d784 100644 +--- a/src/bin/initdb/initdb.c ++++ b/src/bin/initdb/initdb.c +@@ -1234,7 +1234,7 @@ setup_config(void) + + #ifdef HAVE_UNIX_SOCKETS + snprintf(repltok, sizeof(repltok), "#unix_socket_directories = '%s'", +- DEFAULT_PGSOCKET_DIR); ++ DEFAULT_PGSOCKET_DIR ", /tmp"); + #else + snprintf(repltok, sizeof(repltok), "#unix_socket_directories = ''"); + #endif +diff --git a/src/include/pg_config_manual.h b/src/include/pg_config_manual.h +index e278fa0..9ee15d4 100644 +--- a/src/include/pg_config_manual.h ++++ b/src/include/pg_config_manual.h +@@ -169,7 +169,7 @@ + * here's where to twiddle it. You can also override this at runtime + * with the postmaster's -k switch. + */ +-#define DEFAULT_PGSOCKET_DIR "/tmp" ++#define DEFAULT_PGSOCKET_DIR "/var/run/postgresql" + + /* + * This is the default event source for Windows event log. diff --git a/libpq-10.4-symbol-versioning.patch b/libpq-10.4-symbol-versioning.patch new file mode 100644 index 0000000..ad09569 --- /dev/null +++ b/libpq-10.4-symbol-versioning.patch @@ -0,0 +1,89 @@ +The libpq package is supposed to be used for all the PostgreSQL modules +available in RHEL 8, and ABI versioning will guarantee us that modular RPMs will +depend on appropriate libpq ABI version (picked at build-time). + +diff --git a/config/Makefile b/config/Makefile +index 67e7998f55..86612a42c3 100644 +--- a/config/Makefile ++++ b/config/Makefile +@@ -8,6 +8,7 @@ include $(top_builddir)/src/Makefile.global + install: all installdirs + $(INSTALL_SCRIPT) $(srcdir)/install-sh '$(DESTDIR)$(pgxsdir)/config/install-sh' + $(INSTALL_SCRIPT) $(srcdir)/missing '$(DESTDIR)$(pgxsdir)/config/missing' ++ $(INSTALL_SCRIPT) $(srcdir)/build-exports-gnu-ld '$(DESTDIR)$(pgxsdir)/config/build-exports-gnu-ld' + + installdirs: + $(MKDIR_P) '$(DESTDIR)$(pgxsdir)/config' +diff --git a/config/build-exports-gnu-ld b/config/build-exports-gnu-ld +new file mode 100755 +index 0000000000..bdcfb40d48 +--- /dev/null ++++ b/config/build-exports-gnu-ld +@@ -0,0 +1,41 @@ ++#! /bin/sh ++ ++# by default use PG_ prefix ++: "${SYMBOL_VERSION_PREFIX=PG_}" ++ ++# we started symbol versioning since v10 ++: "${SYMBOL_VERSION_START=9.6}" ++ ++version=$SYMBOL_VERSION_START ++version_prev= ++first=: ++ ++open_block () ++{ ++ $first || echo ++ first=false ++ echo "${SYMBOL_VERSION_PREFIX}$version {" ++ echo "global:" ++} ++ ++close_block () ++{ ++ echo "}${version_prev:+ $SYMBOL_VERSION_PREFIX$version_prev};" ++ version_prev=$version ++ version=$1 ++} ++ ++open_block ++while read -r symbol _ new_version ++do ++ case $symbol in '#'*) continue ;; esac ++ if test -n "$new_version" && test "$new_version" != "$version"; then ++ close_block "$new_version" ++ open_block ++ fi ++ echo " $symbol;" ++done ++ ++echo "local:" ++echo " *;" ++close_block +diff --git a/src/Makefile.shlib b/src/Makefile.shlib +index 95b82a6dea..a7065d02a4 100644 +--- a/src/Makefile.shlib ++++ b/src/Makefile.shlib +@@ -221,7 +221,7 @@ ifeq ($(PORTNAME), linux) + ifdef soname + LINK.shared += -Wl,-soname,$(soname) + endif +- BUILD.exports = ( echo '{ global:'; $(AWK) '/^[^\#]/ {printf "%s;\n",$$1}' $<; echo ' local: *; };' ) >$@ ++ BUILD.exports = $(SHELL) $(top_srcdir)/config/build-exports-gnu-ld < $< > $@ + exports_file = $(SHLIB_EXPORTS:%.txt=%.list) + ifneq (,$(exports_file)) + LINK.shared += -Wl,--version-script=$(exports_file) +diff --git a/src/interfaces/libpq/exports.txt b/src/interfaces/libpq/exports.txt +index d6a38d0df8..29bebeac7e 100644 +--- a/src/interfaces/libpq/exports.txt ++++ b/src/interfaces/libpq/exports.txt +@@ -171,4 +171,4 @@ PQsslAttributeNames 168 + PQsslAttribute 169 + PQsetErrorContextVisibility 170 + PQresultVerboseErrorMessage 171 +-PQencryptPasswordConn 172 ++PQencryptPasswordConn 172 10 +-- +2.17.0 + diff --git a/libpq.spec b/libpq.spec new file mode 100644 index 0000000..02c1fff --- /dev/null +++ b/libpq.spec @@ -0,0 +1,74 @@ +Name: libpq +Version: 11.2 +Release: 3 +Summary: A share library of PostgreSQL +License: PostgreSQL +Url: http://www.postgresql.org/ +Source0: https://ftp.postgresql.org/pub/source/v11.2/postgresql-11.2.tar.bz2 +Patch0001: libpq-10.3-rpm-pgsql.patch +Patch0002: libpq-10.3-var-run-socket.patch +Patch0003: libpq-10.4-symbol-versioning.patch +BuildRequires: gcc glibc-devel bison flex gawk zlib-devel openssl-devel +BuildRequires: krb5-devel openldap-devel gettext multilib-rpm-config +Obsoletes: postgresql-libs < 11 +Provides: postgresql-libs = 11.2-3 +%description +PostgreSQL is a powerful, open source object-relational database system +that uses and extends the SQL language combined with many features that +safely store and scale the most complicated data workloads. This package +provides the essential shared library for any PostgreSQL client program +or interface. + +%package devel +Summary: Development files for building PostgreSQL client tools +Requires: libpq%{?_isa} = 11.2-3 +Provides: postgresql-devel = 11.2-3 +Obsoletes: postgresql-devel < 11 +%description devel +The development package of libpq +%prep +%autosetup -n postgresql-11.2 -p1 + +%build +export SYMBOL_VERSION_PREFIX=RHPG_ +%configure --disable-rpath --with-ldap --with-openssl --with-gssapi \ + --enable-nls --without-readline --datadir=%_datadir/pgsql +%global build_subdirs \\\ + src/interfaces/libpq \\\ + src/bin/pg_config \\\ + src/include +for subdir in %build_subdirs; do + %make_build -C "$subdir" +done + +%install +for subdir in %build_subdirs; do + %make_install -C "$subdir" +done +find $RPM_BUILD_ROOT -name '*.a' -delete +rm -r $RPM_BUILD_ROOT%_includedir/pgsql/server +%multilib_fix_c_header --file "%_includedir/pg_config.h" +%multilib_fix_c_header --file "%_includedir/pg_config_ext.h" + +cp /dev/null libpq.lst +%find_lang libpq5-11 +cat libpq5-11.lang >>libpq.lst +cp /dev/null libpq-devel.lst +%find_lang pg_config-11 +cat pg_config-11.lang >>libpq-devel.lst + +%files -f libpq.lst +%license COPYRIGHT +%_libdir/libpq.so.5* +%dir %_datadir/pgsql +%doc %_datadir/pgsql/pg_service.conf.sample + +%files devel -f libpq-devel.lst +%_bindir/pg_config +%_includedir/* +%_libdir/libpq.so +%_libdir/pkgconfig/libpq.pc + +%changelog +* Tue Nov 26 2019 openEuler Buildteam - 11.2-3 +- Package init diff --git a/postgresql-11.2.tar.bz2 b/postgresql-11.2.tar.bz2 new file mode 100644 index 0000000..ef77fcf Binary files /dev/null and b/postgresql-11.2.tar.bz2 differ