added my Recipes

This commit is contained in:
2024-07-11 14:16:35 +02:00
parent 38bc4f53ac
commit 09b621d929
7118 changed files with 525762 additions and 3 deletions

View File

@@ -0,0 +1,42 @@
From 780fd27ea6f7f2c446c46a7a5e26d94106c67efd Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Sun, 20 Nov 2016 15:04:52 +0000
Subject: [PATCH] Add support for RISC-V.
The architecture is sufficiently similar to aarch64 that simply
extending the existing aarch64 macro works.
---
src/include/storage/s_lock.h | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/include/storage/s_lock.h b/src/include/storage/s_lock.h
index 4d3ffc7..22e27bf 100644
--- a/src/include/storage/s_lock.h
+++ b/src/include/storage/s_lock.h
@@ -317,11 +317,12 @@ tas(volatile slock_t *lock)
/*
* On ARM and ARM64, we use __sync_lock_test_and_set(int *, int) if available.
+ * On RISC-V, the same.
*
* We use the int-width variant of the builtin because it works on more chips
* than other widths.
*/
-#if defined(__arm__) || defined(__arm) || defined(__aarch64__) || defined(__aarch64)
+#if defined(__arm__) || defined(__arm) || defined(__aarch64__) || defined(__aarch64) || defined(__riscv)
#ifdef HAVE_GCC__SYNC_INT32_TAS
#define HAS_TEST_AND_SET
@@ -355,8 +356,7 @@ spin_delay(void)
#endif /* __aarch64__ || __aarch64 */
#endif /* HAVE_GCC__SYNC_INT32_TAS */
-#endif /* __arm__ || __arm || __aarch64__ || __aarch64 */
-
+#endif /* __arm__ || __arm || __aarch64__ || __aarch64 || __riscv */
/* S/390 and S/390x Linux (32- and 64-bit zSeries) */
#if defined(__s390__) || defined(__s390x__)
--
2.34.1

View File

@@ -0,0 +1,41 @@
From bbba8a5261a99e79c9cd4693ef56021014a9856b Mon Sep 17 00:00:00 2001
From: Changqing Li <changqing.li@windriver.com>
Date: Mon, 28 Dec 2020 16:38:21 +0800
Subject: [PATCH] Improve reproducibility,
Remove build patch from binaries which pg_config do
not record var-CC, var-CFLAGS, and configure
$ /usr/bin/pg_config --cc
not recorded
$ /usr/bin/pg_config --configure
not recorded
Upstream-Status: Inappropriate [oe specific]
Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
update patch for v13.1
Signed-off-by: Changqing Li <changqing.li@windriver.com>
---
src/common/Makefile | 3 ---
1 file changed, 3 deletions(-)
diff --git a/src/common/Makefile b/src/common/Makefile
index 880722f..7a9b9d4 100644
--- a/src/common/Makefile
+++ b/src/common/Makefile
@@ -31,9 +31,6 @@ include $(top_builddir)/src/Makefile.global
# don't include subdirectory-path-dependent -I and -L switches
STD_CPPFLAGS := $(filter-out -I$(top_srcdir)/src/include -I$(top_builddir)/src/include,$(CPPFLAGS))
STD_LDFLAGS := $(filter-out -L$(top_builddir)/src/common -L$(top_builddir)/src/port,$(LDFLAGS))
-override CPPFLAGS += -DVAL_CC="\"$(CC)\""
-override CPPFLAGS += -DVAL_CPPFLAGS="\"$(STD_CPPFLAGS)\""
-override CPPFLAGS += -DVAL_CFLAGS="\"$(CFLAGS)\""
override CPPFLAGS += -DVAL_CFLAGS_SL="\"$(CFLAGS_SL)\""
override CPPFLAGS += -DVAL_LDFLAGS="\"$(STD_LDFLAGS)\""
override CPPFLAGS += -DVAL_LDFLAGS_EX="\"$(LDFLAGS_EX)\""
--
2.34.1

View File

@@ -0,0 +1,119 @@
From b92eebe8b0760fee7bd55c6c22318620c2c07579 Mon Sep 17 00:00:00 2001
From: Mingli Yu <mingli.yu@windriver.com>
Date: Mon, 1 Aug 2022 15:44:38 +0800
Subject: [PATCH] config_info.c: not expose build info
Don't collect the build information to fix the buildpaths issue.
Upstream-Status: Inappropriate [oe specific]
Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
---
configure.ac | 2 +-
src/common/config_info.c | 68 ----------------------------------------
2 files changed, 1 insertion(+), 69 deletions(-)
diff --git a/configure.ac b/configure.ac
index 0eb595b..508487b 100644
--- a/configure.ac
+++ b/configure.ac
@@ -23,7 +23,7 @@ AC_COPYRIGHT([Copyright (c) 1996-2021, PostgreSQL Global Development Group])
AC_CONFIG_SRCDIR([src/backend/access/common/heaptuple.c])
AC_CONFIG_AUX_DIR(config)
AC_PREFIX_DEFAULT(/usr/local/pgsql)
-AC_DEFINE_UNQUOTED(CONFIGURE_ARGS, ["$ac_configure_args"], [Saved arguments from configure])
+AC_DEFINE_UNQUOTED(CONFIGURE_ARGS, ["ac_configure_args"], [Saved arguments from configure])
[PG_MAJORVERSION=`expr "$PACKAGE_VERSION" : '\([0-9][0-9]*\)'`]
[PG_MINORVERSION=`expr "$PACKAGE_VERSION" : '.*\.\([0-9][0-9]*\)'`]
diff --git a/src/common/config_info.c b/src/common/config_info.c
index e72e729..b482c20 100644
--- a/src/common/config_info.c
+++ b/src/common/config_info.c
@@ -38,7 +38,7 @@
int i = 0;
/* Adjust this to match the number of items filled below */
- *configdata_len = 23;
+ *configdata_len = 14;
configdata = (ConfigData *) palloc(*configdata_len * sizeof(ConfigData));
configdata[i].name = pstrdup("BINDIR");
@@ -123,74 +123,6 @@
configdata[i].setting = pstrdup(path);
i++;
- configdata[i].name = pstrdup("CONFIGURE");
- configdata[i].setting = pstrdup(CONFIGURE_ARGS);
- i++;
-
- configdata[i].name = pstrdup("CC");
-#ifdef VAL_CC
- configdata[i].setting = pstrdup(VAL_CC);
-#else
- configdata[i].setting = pstrdup(_("not recorded"));
-#endif
- i++;
-
- configdata[i].name = pstrdup("CPPFLAGS");
-#ifdef VAL_CPPFLAGS
- configdata[i].setting = pstrdup(VAL_CPPFLAGS);
-#else
- configdata[i].setting = pstrdup(_("not recorded"));
-#endif
- i++;
-
- configdata[i].name = pstrdup("CFLAGS");
-#ifdef VAL_CFLAGS
- configdata[i].setting = pstrdup(VAL_CFLAGS);
-#else
- configdata[i].setting = pstrdup(_("not recorded"));
-#endif
- i++;
-
- configdata[i].name = pstrdup("CFLAGS_SL");
-#ifdef VAL_CFLAGS_SL
- configdata[i].setting = pstrdup(VAL_CFLAGS_SL);
-#else
- configdata[i].setting = pstrdup(_("not recorded"));
-#endif
- i++;
-
- configdata[i].name = pstrdup("LDFLAGS");
-#ifdef VAL_LDFLAGS
- configdata[i].setting = pstrdup(VAL_LDFLAGS);
-#else
- configdata[i].setting = pstrdup(_("not recorded"));
-#endif
- i++;
-
- configdata[i].name = pstrdup("LDFLAGS_EX");
-#ifdef VAL_LDFLAGS_EX
- configdata[i].setting = pstrdup(VAL_LDFLAGS_EX);
-#else
- configdata[i].setting = pstrdup(_("not recorded"));
-#endif
- i++;
-
- configdata[i].name = pstrdup("LDFLAGS_SL");
-#ifdef VAL_LDFLAGS_SL
- configdata[i].setting = pstrdup(VAL_LDFLAGS_SL);
-#else
- configdata[i].setting = pstrdup(_("not recorded"));
-#endif
- i++;
-
- configdata[i].name = pstrdup("LIBS");
-#ifdef VAL_LIBS
- configdata[i].setting = pstrdup(VAL_LIBS);
-#else
- configdata[i].setting = pstrdup(_("not recorded"));
-#endif
- i++;
-
configdata[i].name = pstrdup("VERSION");
configdata[i].setting = pstrdup("PostgreSQL " PG_VERSION);
i++;
--
2.25.1

View File

@@ -0,0 +1,30 @@
From 5f9dedc91a0a9710033fa155ea759f765ce5b58b Mon Sep 17 00:00:00 2001
From: Yi Fan Yu <yifan.yu@windriver.com>
Date: Fri, 5 Feb 2021 17:15:42 -0500
Subject: [PATCH] configure.ac: bypass autoconf 2.69 version check
for upgrade to autoconf 2.71
Upstream-Status: Inappropriate [disable feature]
Signed-off-by: Yi Fan Yu <yifan.yu@windriver.com>
---
configure.ac | 4 ----
1 file changed, 4 deletions(-)
diff --git a/configure.ac b/configure.ac
index 998ff31..912e490 100644
--- a/configure.ac
+++ b/configure.ac
@@ -19,10 +19,6 @@ m4_pattern_forbid(^PGAC_)dnl to catch undefined macros
AC_INIT([PostgreSQL], [15.3], [pgsql-bugs@lists.postgresql.org], [], [https://www.postgresql.org/])
-m4_if(m4_defn([m4_PACKAGE_VERSION]), [2.69], [], [m4_fatal([Autoconf version 2.69 is required.
-Untested combinations of 'autoconf' and PostgreSQL versions are not
-recommended. You can remove the check from 'configure.ac' but it is then
-your responsibility whether the result works or not.])])
AC_COPYRIGHT([Copyright (c) 1996-2022, PostgreSQL Global Development Group])
AC_CONFIG_SRCDIR([src/backend/access/common/heaptuple.c])
AC_CONFIG_AUX_DIR(config)

View File

@@ -0,0 +1,42 @@
From 9f81377dddfe32d950844d7053020a36b40fce08 Mon Sep 17 00:00:00 2001
From: Manoj Saun <manojsingh.saun@windriver.com>
Date: Wed, 22 Mar 2023 08:07:26 +0000
Subject: [PATCH] postgresql: fix ptest failure of sysviews
The patch "0001-config_info.c-not-expose-build-info.patch" hides the debug info
in pg_config table which reduces the count of rows from pg_config and leads to
sysviews test failure.
To fix it we need to reduce the count of parameters in sysviews test.
Also we need to reduce the row count in expected result of sysview test
to make the test output shown as pass.
Upstream-Status: Inappropriate [oe specific]
Signed-off-by: Manoj Saun <manojsingh.saun@windriver.com>
---
src/test/regress/expected/sysviews.out | 2 +-
src/test/regress/sql/sysviews.sql | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
--- a/src/test/regress/expected/sysviews.out
+++ b/src/test/regress/expected/sysviews.out
@@ -29,7 +29,7 @@ select name, ident, parent, level, total
(1 row)
-- At introduction, pg_config had 23 entries; it may grow
-select count(*) > 20 as ok from pg_config;
+select count(*) > 13 as ok from pg_config;
ok
----
t
--- a/src/test/regress/sql/sysviews.sql
+++ b/src/test/regress/sql/sysviews.sql
@@ -18,7 +18,7 @@ select name, ident, parent, level, total
from pg_backend_memory_contexts where level = 0;
-- At introduction, pg_config had 23 entries; it may grow
-select count(*) > 20 as ok from pg_config;
+select count(*) > 13 as ok from pg_config;
-- We expect no cursors in this test; see also portals.sql
select count(*) = 0 as ok from pg_cursors;

View File

@@ -0,0 +1,37 @@
From 56b830edecff1cac5f8a8a956e7a7eeef2aa7c17 Mon Sep 17 00:00:00 2001
From: Changqing Li <changqing.li@windriver.com>
Date: Tue, 27 Nov 2018 13:25:15 +0800
Subject: [PATCH] not check libperl under cross compiling
Upstream-Status: Inappropriate [configuration]
libperl ldflags returned by PGAC_CHECK_PERL_EMBED_LDFLAGS are native,
can not be used to check target library.
postpresql has the dependency on perl, so not need to check libperl
again, like in postgresql-9.2.4
Signed-off-by: Roy Li <rongqing.li@windriver.com>
update patch to version 11.1
Signed-off-by: Changqing Li <changqing.li@windriver.com>
---
configure.ac | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/configure.ac b/configure.ac
index fba79ee..7170f26 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2261,7 +2261,7 @@ Use --without-tcl to disable building PL/Tcl.])
fi
# check for <perl.h>
-if test "$with_perl" = yes; then
+if test "$with_perl" = yes && test "$cross_compiling" = no; then
ac_save_CPPFLAGS=$CPPFLAGS
CPPFLAGS="$CPPFLAGS $perl_includespec"
AC_CHECK_HEADER(perl.h, [], [AC_MSG_ERROR([header file <perl.h> is required for Perl])],
--
2.34.1

View File

@@ -0,0 +1,4 @@
[ -f /etc/profile ] && source /etc/profile
PGDATA=/var/lib/postgresql/data
export PGDATA

View File

@@ -0,0 +1,73 @@
#!/bin/sh
#
# postgresql-setup Initialization operation for PostgreSQL
# For SELinux we need to use 'runuser' not 'su'
if [ -x /sbin/runuser ]
then
SU=runuser
else
SU=su
fi
PGENGINE=/usr/bin
PGDATA=/var/lib/postgresql/data
PGLOG=/var/lib/postgresql/pgstartup.log
script_result=0
initdb(){
if [ -f "$PGDATA/PG_VERSION" ]
then
echo -n "Data directory is not empty!"
echo -n " [FAILED] "
echo
script_result=1
else
echo -n "Initializing database: "
if [ ! -e "$PGDATA" -a ! -h "$PGDATA" ]
then
mkdir -p "$PGDATA" || exit 1
chown postgres:postgres "$PGDATA"
chmod go-rwx "$PGDATA"
fi
# Clean up SELinux tagging for PGDATA
[ -x /sbin/restorecon ] && /sbin/restorecon "$PGDATA"
# Make sure the startup-time log file is OK, too
if [ ! -e "$PGLOG" -a ! -h "$PGLOG" ]
then
touch "$PGLOG" || exit 1
chown postgres:postgres "$PGLOG"
chmod go-rwx "$PGLOG"
[ -x /sbin/restorecon ] && /sbin/restorecon "$PGLOG"
fi
# Initialize the database
$SU -l postgres -c "$PGENGINE/initdb --pgdata='$PGDATA' --auth='ident'" >> "$PGLOG" 2>&1 < /dev/null
# Create directory for postmaster log
mkdir "$PGDATA/pg_log"
chown postgres:postgres "$PGDATA/pg_log"
chmod go-rwx "$PGDATA/pg_log"
if [ -f "$PGDATA/PG_VERSION" ]
then
echo -n " [ OK ] "
else
echo -n " [FAILED] "
script_result=1
fi
echo
fi
}
case "$1" in
initdb)
initdb
;;
*)
echo "Usage: $0 initdb"
exit 2
esac
exit $script_result

View File

@@ -0,0 +1,193 @@
#!/bin/sh
#
# postgresql This is the init script for starting up the PostgreSQL
# server.
#
# chkconfig: - 64 36
# description: PostgreSQL database server.
# processname: postmaster
# pidfile: /var/run/postmaster.PORT.pid
# This script is slightly unusual in that the name of the daemon (postmaster)
# is not the same as the name of the subsystem (postgresql)
# PGVERSION is the full package version, e.g., 8.4.0
# Note: the specfile inserts the correct value during package build
PGVERSION=9.2.4
# PGMAJORVERSION is major version, e.g., 10 (this should match PG_VERSION)
PGMAJORVERSION=`echo "$PGVERSION" | sed 's/^\([0-9]*\).*$/\1/'`
# Source function library.
. /etc/init.d/functions
# Find the name of the script
NAME=`basename $0`
if [ ${NAME:0:1} = "S" -o ${NAME:0:1} = "K" ]
then
NAME=${NAME:3}
fi
# For SELinux we need to use 'runuser' not 'su'
if [ -x /sbin/runuser ]
then
SU=runuser
else
SU=su
fi
# Set defaults for configuration variables
PGENGINE=/usr/bin
PGPORT=5432
PGDATA=/var/lib/postgresql/data
PGLOG=/var/lib/postgresql/pgstartup.log
# Value to set as postmaster process's oom_adj
PG_OOM_ADJ=-17
# Override defaults from /etc/sysconfig/postgresql if file is present
[ -f /etc/default/postgresql/${NAME} ] && . /etc/default/postgresql/${NAME}
export PGDATA
export PGPORT
lockfile="/var/lock/subsys/${NAME}"
pidfile="/var/run/postmaster.${PGPORT}.pid"
script_result=0
start(){
[ -x "$PGENGINE/postmaster" ] || exit 5
PSQL_START=$"Starting ${NAME} service: "
# Make sure startup-time log file is valid
if [ ! -e "$PGLOG" -a ! -h "$PGLOG" ]
then
touch "$PGLOG" || exit 4
chown postgres:postgres "$PGLOG"
chmod go-rwx "$PGLOG"
[ -x /sbin/restorecon ] && /sbin/restorecon "$PGLOG"
fi
# Check for the PGDATA structure
if [ -f "$PGDATA/PG_VERSION" ] && [ -d "$PGDATA/base" ]
then
# Check version of existing PGDATA
if [ x`cat "$PGDATA/PG_VERSION"` != x"$PGMAJORVERSION" ]
then
SYSDOCDIR="(Your System's documentation directory)"
if [ -d "/usr/doc/postgresql-$PGVERSION" ]
then
SYSDOCDIR=/usr/doc
fi
if [ -d "/usr/share/doc/postgresql-$PGVERSION" ]
then
SYSDOCDIR=/usr/share/doc
fi
if [ -d "/usr/doc/packages/postgresql-$PGVERSION" ]
then
SYSDOCDIR=/usr/doc/packages
fi
if [ -d "/usr/share/doc/packages/postgresql-$PGVERSION" ]
then
SYSDOCDIR=/usr/share/doc/packages
fi
echo
echo $"An old version of the database format was found."
echo $"You need to upgrade the data format before using PostgreSQL."
echo $"See $SYSDOCDIR/postgresql-$PGVERSION/README.rpm-dist for more information."
exit 1
fi
else
# No existing PGDATA! Warn the user to initdb it.
echo
echo "$PGDATA is missing. Use \"postgresql-setup initdb\" to initialize the cluster first."
echo -n " [FAILED] "
echo
exit 1
fi
echo -n "$PSQL_START"
test x"$PG_OOM_ADJ" != x && echo "$PG_OOM_ADJ" > /proc/self/oom_score_adj
$SU -l postgres -c "$PGENGINE/postmaster -p '$PGPORT' -D '$PGDATA' ${PGOPTS} &" >> "$PGLOG" 2>&1 < /dev/null
sleep 2
pid=`head -n 1 "$PGDATA/postmaster.pid" 2>/dev/null`
if [ "x$pid" != x ]
then
echo -n " [ OK ]"
touch "$lockfile"
echo $pid > "$pidfile"
echo
else
echo -n " [FAILED]"
echo
script_result=1
fi
}
stop(){
echo -n $"Stopping ${NAME} service: "
if [ -e "$lockfile" ]
then
$SU -l postgres -c "$PGENGINE/pg_ctl stop -D '$PGDATA' -s -m fast" > /dev/null 2>&1 < /dev/null
ret=$?
if [ $ret -eq 0 ]
then
echo -n " [ OK ] "
rm -f "$pidfile"
rm -f "$lockfile"
else
echo -n " [FAILED] "
script_result=1
fi
else
# not running; per LSB standards this is "ok"
echo -n " [ OK ] "
fi
echo
}
restart(){
stop
start
}
condrestart(){
[ -e "$lockfile" ] && restart || :
}
reload(){
$SU -l postgres -c "$PGENGINE/pg_ctl reload -D '$PGDATA' -s" > /dev/null 2>&1 < /dev/null
}
# See how we were called.
case "$1" in
start)
start
;;
stop)
stop
;;
status)
status postmaster
script_result=$?
;;
restart)
restart
;;
condrestart|try-restart)
condrestart
;;
reload)
reload
;;
force-reload)
restart
;;
*)
echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload}"
exit 2
esac
exit $script_result

View File

@@ -0,0 +1,4 @@
#%PAM-1.0
auth include common-auth
account include common-account
password include common-password

View File

@@ -0,0 +1,27 @@
[Unit]
Description=PostgreSQL database server
After=network.target
[Service]
Type=forking
User=postgres
Group=postgres
# Port number for server to listen on
Environment=PGPORT=5432
# Location of database directory
Environment=PGDATA=/var/lib/postgresql/data
# Disable OOM kill on the postmaster
OOMScoreAdjust=-17
ExecStart=@BINDIR@/pg_ctl start -D ${PGDATA} -s -o "-p ${PGPORT}" -w -t 300
ExecStop=@BINDIR@/pg_ctl stop -D ${PGDATA} -s -m fast
ExecReload=@BINDIR@/pg_ctl reload -D ${PGDATA} -s
# Give a reasonable amount of time for the server to start up/shut down
TimeoutSec=300
[Install]
WantedBy=multi-user.target

View File

@@ -0,0 +1,375 @@
SUMMARY = "PostgreSQL is a powerful, open source relational database system."
DESCRIPTION = "\
PostgreSQL is an advanced Object-Relational database management system \
(DBMS) that supports almost all SQL constructs (including \
transactions, subselects and user-defined types and functions). The \
postgresql package includes the client programs and libraries that \
you'll need to access a PostgreSQL DBMS server. These PostgreSQL \
client programs are programs that directly manipulate the internal \
structure of PostgreSQL databases on a PostgreSQL server. These client \
programs can be located on the same machine with the PostgreSQL \
server, or may be on a remote machine which accesses a PostgreSQL \
server over a network connection. This package contains the docs \
in HTML for the whole package, as well as command-line utilities for \
managing PostgreSQL databases on a PostgreSQL server. \
\
If you want to manipulate a PostgreSQL database on a local or remote \
PostgreSQL server, you need this package. You also need to install \
this package if you're installing the postgresql-server package. \
"
HOMEPAGE = "http://www.postgresql.com"
LICENSE = "0BSD"
DEPENDS = "libnsl2 readline tzcode-native"
ARM_INSTRUCTION_SET = "arm"
SRC_URI = "https://ftp.postgresql.org/pub/source/v${PV}/${BP}.tar.bz2 \
file://postgresql.init \
file://postgresql-profile \
file://postgresql.pam \
file://postgresql-setup \
file://postgresql.service \
"
LEAD_SONAME = "libpq.so"
# LDFLAGS for shared libraries
export LDFLAGS_SL = "${LDFLAGS}"
inherit autotools pkgconfig perlnative python3native python3targetconfig useradd update-rc.d systemd gettext cpan-base multilib_header
CFLAGS += "-I${STAGING_INCDIR}/${PYTHON_DIR} -I${STAGING_INCDIR}/tcl8.6"
SYSTEMD_SERVICE:${PN} = "postgresql.service"
SYSTEMD_AUTO_ENABLE:${PN} = "disable"
pkg_postinst:${PN} () {
if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd sysvinit', 'true', 'false', d)}; then
if [ -n "$D" ]; then
OPTS="--root=$D"
fi
systemctl $OPTS mask postgresql-server.service
fi
}
PACKAGECONFIG ??= " \
${@bb.utils.filter('DISTRO_FEATURES', 'pam systemd', d)} \
openssl python uuid libxml tcl perl zlib \
"
PACKAGECONFIG[tcl] = "--with-tcl --with-tclconfig=${STAGING_BINDIR_CROSS},--without-tcl,tcl tcl-native,"
PACKAGECONFIG[perl] = "--with-perl,--without-perl,perl,perl"
PACKAGECONFIG[python] = "--with-python,--without-python,python3,python3"
PACKAGECONFIG[gssapi] = "--with-gssapi,--without-gssapi,krb5"
PACKAGECONFIG[pam] = "--with-pam,--without-pam,libpam"
PACKAGECONFIG[ldap] = "--with-ldap,--without-ldap,openldap"
PACKAGECONFIG[systemd] = "--with-systemd,--without-systemd,systemd systemd-systemctl-native"
PACKAGECONFIG[uuid] = "--with-uuid=e2fs,--without-uuid,util-linux"
PACKAGECONFIG[libxml] = "--with-libxml,--without-libxml,libxml2,libxml2"
PACKAGECONFIG[libxslt] = "--with-libxslt,--without-libxslt,libxslt"
PACKAGECONFIG[zlib] = "--with-zlib,--without-zlib,zlib"
PACKAGECONFIG[lz4] = "--with-lz4,--without-lz4,lz4"
PACKAGECONFIG[openssl] = "--with-ssl=openssl,ac_cv_file__dev_urandom=yes,openssl"
EXTRA_OECONF += "--enable-thread-safety --disable-rpath \
--datadir=${datadir}/${BPN} \
--sysconfdir=${sysconfdir}/${BPN} \
"
EXTRA_OECONF:sh4 += "--disable-spinlocks"
DEBUG_OPTIMIZATION:remove:mips = " -Og"
DEBUG_OPTIMIZATION:append:mips = " -O"
BUILD_OPTIMIZATION:remove:mips = " -Og"
BUILD_OPTIMIZATION:append:mips = " -O"
DEBUG_OPTIMIZATION:remove:mipsel = " -Og"
DEBUG_OPTIMIZATION:append:mipsel = " -O"
BUILD_OPTIMIZATION:remove:mipsel = " -Og"
BUILD_OPTIMIZATION:append:mipsel = " -O"
PACKAGES_DYNAMIC += "^${PN}-plperl \
^${PN}-pltcl \
^${PN}-plpython \
"
python populate_packages:prepend() {
def fill_more(name):
if name is None or name.strip() == "":
return
fpack=d.getVar('PACKAGES', False) or ""
fpack="${PN}-" + name + " " + fpack
d.setVar('PACKAGES', fpack)
conf=(d.getVar('PACKAGECONFIG') or "").split()
pack=d.getVar('PACKAGES', False) or ""
bb.debug(1, "PACKAGECONFIG=%s" % conf)
bb.debug(1, "PACKAGES1=%s" % pack )
if "perl" in conf :
fill_more("plperl")
if "tcl" in conf:
fill_more("pltcl")
if "python" in conf:
fill_more("plpython")
pack=d.getVar('PACKAGES') or ""
bb.debug(1, "PACKAGES2=%s" % pack)
}
# This will make native perl use target settings (for include dirs etc.)
export PERLCONFIGTARGET = "${@is_target(d)}"
export PERL_ARCHLIB = "${STAGING_LIBDIR}${PERL_OWN_DIR}/perl5/${@get_perl_version(d)}/${@get_perl_arch(d)}"
do_configure() {
# do_configure
autotools_do_configure
# do_configure:append
# workaround perl package related bugs
sed -i -e "s:-L/usr/local/lib:-L=/usr/local/lib:g" \
${B}/src/Makefile.global
LIBPNA="\${STAGING_LIBDIR_NATIVE}/perl-native"
LIBNA="\${STAGING_LIBDIR_NATIVE}"
BLIBNA="\${STAGING_BASE_LIBDIR_NATIVE}"
sed -i -e "/^perl_archlibexp/s:${LIBPNA}:${STAGING_LIBDIR}:g" \
${B}/src/Makefile.global
sed -i -e "/^perl_privlibexp/s:${libdir}:${STAGING_LIBDIR}:g" \
${B}/src/Makefile.global
# remove the rpath, replace with correct lib path
sed -i \
-e "/^perl_embed_ldflags/s:-Wl,-rpath,${LIBNA}::g" \
-e "/^perl_embed_ldflags/s:-Wl,-rpath,${BLIBNA}::g" \
-e "/^perl_embed_ldflags/s:-Wl,-rpath-link,${LIBNA}::g" \
-e "/^perl_embed_ldflags/s:-Wl,-rpath-link,${BLIBNA}::g" \
-e "/^perl_embed_ldflags/s:${LIBPNA}:${STAGING_LIBDIR}:g" \
-e "/^perl_embed_ldflags/s:${LIBNA}:${STAGING_LIBDIR}:g" \
-e "/^perl_embed_ldflags/s:${BLIBNA}:${STAGING_BASELIBDIR}:g" \
-e "/^TCLSH/s:=.*:= ${bindir}/tclsh:g" \
${B}/src/Makefile.global
if ${@bb.utils.contains('PACKAGECONFIG', 'perl', 'true', 'false', d)}; then
# workaround perl package's libperl.so problem
# we are using perlnative so this perl should have same version
perl_version=`perl -v 2>/dev/null | \
sed -n 's/This is perl.*v[a-z ]*\([0-9]\.[0-9][0-9.]*\).*$/\1/p'`
if [ ! -h "${STAGING_LIBDIR}/perl/$perl_version/CORE/libperl.so" -a \
! -h "${STAGING_LIBDIR}/libperl.so" ]; then
ln -sf ../../../libperl.so.5 \
${STAGING_LIBDIR}/perl/$perl_version/CORE/libperl.so
fi
fi
}
do_compile:append() {
oe_runmake -C contrib all
}
# server needs to configure user and group
usernum = "28"
groupnum = "28"
USERADD_PACKAGES = "${PN}"
USERADD_PARAM:${PN} = "-M -g postgres -o -r -d ${localstatedir}/lib/${BPN} \
-s /bin/sh -c 'PostgreSQL Server' -u ${usernum} postgres"
GROUPADD_PARAM:${PN} = "-g ${groupnum} -o -r postgres"
INITSCRIPT_PACKAGES = "${PN}"
INITSCRIPT_NAME = "${BPN}-server"
INITSCRIPT_PARAMS = "start 64 . stop 36 0 1 2 3 4 5 6 ."
do_install:append() {
# install contrib
oe_runmake DESTDIR=${D} -C contrib install
oe_multilib_header pg_config.h pg_config_ext.h ecpg_config.h postgresql/server/pg_config.h postgresql/server/pg_config_ext.h
# install tutorial
install -d -m 0755 ${D}${libdir}/${BPN}/tutorial
install ${B}/src/tutorial/* ${D}${libdir}/${BPN}/tutorial
# install COPYRIGHT README HISTORY
install -d -m 0755 ${D}${docdir}/${BPN}
for i in ${B}/COPYRIGHT ${B}/README ${B}/HISTORY ${B}/doc/KNOWN_BUGS ${B}/doc/MISSING_FEATURES ${B}/doc/README* ${B}/doc/bug.template; do
[ -f $i ] && install $i ${D}${docdir}/${BPN}
done
# install dirs and server init
install -d ${D}${sysconfdir}/init.d
install -m 0755 ${WORKDIR}/${BPN}.init ${D}${sysconfdir}/init.d/${BPN}-server
sed -i -e "s/^PGVERSION=.*$/PGVERSION=${PV}/g" ${D}${sysconfdir}/init.d/${BPN}-server
install -m 0755 ${WORKDIR}/${BPN}-setup ${D}${bindir}/${BPN}-setup
install -d -m 700 ${D}${localstatedir}/lib/${BPN}/data
install -d -m 700 ${D}${localstatedir}/lib/${BPN}/backups
install -m 644 ${WORKDIR}/${BPN}-profile ${D}${localstatedir}/lib/${BPN}/.profile
chown -R postgres:postgres ${D}${localstatedir}/lib/${BPN}
# multiple server config directory
install -d -m 700 ${D}${sysconfdir}/default/${BPN}
if ${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'true', 'false', d)}; then
install -d ${D}${sysconfdir}/pam.d
install -m 644 ${WORKDIR}/postgresql.pam ${D}${sysconfdir}/pam.d/postgresql
fi
# Install systemd unit files
install -d ${D}${systemd_unitdir}/system
install -m 0644 ${WORKDIR}/postgresql.service ${D}${systemd_unitdir}/system
sed -i -e 's,@BINDIR@,${bindir},g' \
${D}${systemd_unitdir}/system/postgresql.service
# Remove the build path
if [ -f ${D}${libdir}/${BPN}/pgxs/src/Makefile.global ]; then
sed -i -e 's#${RECIPE_SYSROOT}##g' \
-e 's#${RECIPE_SYSROOT_NATIVE}##g' \
-e 's#${WORKDIR}##g' \
-e 's#${TMPDIR}##g' \
${D}${libdir}/${BPN}/pgxs/src/Makefile.global
fi
}
SSTATE_SCAN_FILES += "Makefile.global"
SSTATE_SCAN_FILES:remove = "*_config"
PACKAGES =+ "${PN}-client ${PN}-server-dev ${PN}-timezone \
libecpg-compat libecpg-compat-dev \
libecpg libecpg-dev libecpg-staticdev libecpg-doc \
libpq libpq-dev libpq-staticdev \
libpgtypes libpgtypes-staticdev libpgtypes-dev \
${PN}-contrib \
"
RPROVIDES:${PN}-dbg += "libecpg-compat-dbg \
libecpg-dbg \
libpq-dbg \
libpgtypes-dbg \
${PN}-contrib-dbg \
${PN}-pltcl-dbg \
${PN}-plpython-dbg \
${PN}-plperl-dbg \
"
FILES:${PN} += "${sysconfdir}/init.d/${BPN}-server \
${localstatedir}/lib/${BPN}/data ${localstatedir}/lib/${BPN}/backups \
${localstatedir}/lib/${BPN}/.profile ${sysconfdir}/default/${BPN} \
${libdir}/${BPN}/dict_snowball.so ${libdir}/${BPN}/plpgsql.so \
${libdir}/${BPN}/euc2004_sjis2004.so \
${libdir}/${BPN}/libpqwalreceiver.so \
${libdir}/${BPN}/*_and_*.so \
${@'${sysconfdir}/pam.d/postgresql' \
if 'pam' == d.getVar('enable_pam') \
else ''} \
"
FILES:${PN}-client = "${bindir}/clusterdb \
${bindir}/createdb \
${bindir}/createuser \
${bindir}/dropdb \
${bindir}/dropuser \
${bindir}/pg_dump \
${bindir}/pg_dumpall \
${bindir}/pg_restore \
${bindir}/psql \
${bindir}/reindexdb \
${bindir}/vacuumdb \
${bindir}/vacuumlo \
${datadir}/${BPN}/psqlrc.sample \
"
FILES:${PN}-client-doc = "${mandir}/man1/clusterdb.* \
${mandir}/man1/createdb.* ${mandir}/man1/createlang.* \
${mandir}/man1/createuser.* ${mandir}/man1/dropdb.* \
${mandir}/man1/droplang.* ${mandir}/man1/dropuser.* \
${mandir}/man1/pg_dump.* ${mandir}/man1/pg_dumpall.* \
${mandir}/man1/pg_restore.* ${mandir}/man1/psql.* \
${mandir}/man1/reindexdb.* ${mandir}/man1/vacuumdb.* \
${mandir}/man7/* \
"
FILES:${PN}-doc += "${docdir}/${BPN}/html ${libdir}/${BPN}/tutorial/ \
${mandir}/man1/initdb.* ${mandir}/man1/pg_controldata.* \
${mandir}/man1/pg_ctl.* ${mandir}/man1/pg_resetxlog.* \
${mandir}/man1/postgres.* ${mandir}/man1/postmaster.* \
"
FILES:${PN}-timezone = "${datadir}/${BPN}/timezone \
${datadir}/${BPN}/timezonesets \
"
RDEPENDS:${PN} += "${PN}-timezone"
FILES:${PN}-server-dev = "${includedir}/${BPN}/server \
${libdir}/${BPN}/pgxs \
"
FILES:libecpg = "${libdir}/libecpg*${SOLIBS}"
FILES:libecpg-dev = "${libdir}/libecpg*${SOLIBSDEV} \
${libdir}/libpgtypes*${SOLIBSDEV} \
${includedir}/ecpg*.h ${includedir}/${BPN}/ecpg*.h \
${includedir}/pgtypes*.h ${includedir}/${BPN}/informix \
${includedir}/sql3types.h ${includedir}/sqlca.h \
"
FILES:libecpg-doc = "${mandir}/man1/ecpg.*"
FILES:libecpg-staticdev = "${libdir}/libecpg*.a"
SECTION:libecpg-staticdev = "devel"
RDEPENDS:libecpg-staticdev = "libecpg-dev (= ${EXTENDPKGV})"
FILES:libpq = "${libdir}/libpq*${SOLIBS}"
FILES:libpq-dev = "${libdir}/libpq*${SOLIBSDEV} \
${includedir} \
"
FILES:libpq-staticdev = "${libdir}/libpq*.a ${libdir}/libpgport.a"
SECTION:libpq-staticdev = "devel"
RDEPENDS:libpq-staticdev = "libpq-dev (= ${EXTENDPKGV})"
FILES:libecpg-compat = "${libdir}/libecpg_compat*${SOLIBS}"
FILES:libecpg-compat-dev = "${libdir}/libecpg_compat*${SOLIBS}"
FILES:libpgtypes = "${libdir}/libpgtypes*${SOLIBS}"
FILES:libpgtypes-staticdev = "${libdir}/libpgtypes*.a"
FILES:libpgtypes-dev = "${libdir}/libpgtypes*${SOLIBS} ${includedir}/pgtypes*.h"
FILES:${PN}-contrib = " ${bindir}/oid2name ${bindir}/pg_standby \
${bindir}/pgbench \
${S}/contrib/spi/*.example \
${libdir}/${BPN}/_int.so ${libdir}/${BPN}/adminpack.so \
${libdir}/${BPN}/autoinc.so ${libdir}/${BPN}/auto_explain.so \
${libdir}/${BPN}/auth_delay.so ${libdir}/${BPN}/btree_gin.so \
${libdir}/${BPN}/btree_gist.so ${libdir}/${BPN}/.so \
${libdir}/${BPN}/chkpass.so ${libdir}/${BPN}/citext.so \
${libdir}/${BPN}/cube.so ${libdir}/${BPN}/dblink.so \
${libdir}/${BPN}/dict_int.so ${libdir}/${BPN}/dict_xsyn.so \
${libdir}/${BPN}/dummy_seclabel.so ${libdir}/${BPN}/earthdistance.so \
${libdir}/${BPN}/file_fdw.so ${libdir}/${BPN}/fuzzystrmatch.so \
${libdir}/${BPN}/hstore.so ${libdir}/${BPN}/insert_username.so \
${libdir}/${BPN}/isn.so ${libdir}/${BPN}/lo.so \
${libdir}/${BPN}/ltree.so ${libdir}/${BPN}/moddatetime.so \
${libdir}/${BPN}/pageinspect.so ${libdir}/${BPN}/pg_buffercache.so \
${libdir}/${BPN}/pg_freespacemap.so ${libdir}/${BPN}/pg_trgm.so \
${libdir}/${BPN}/pgcrypto.so ${libdir}/${BPN}/pgrowlocks.so \
${libdir}/${BPN}/pgstattuple.so ${libdir}/${BPN}/pg_stat_statements.so \
${libdir}/${BPN}/refint.so ${libdir}/${BPN}/seg.so \
${libdir}/${BPN}/sslinfo.so \
${libdir}/${BPN}/tablefunc.so \
${libdir}/${BPN}/test_parser.so ${libdir}/${BPN}/timetravel.so \
${libdir}/${BPN}/uuid-ossp.so \
${libdir}/${BPN}/pgxml.so ${libdir}/${BPN}/passwordcheck.so \
${libdir}/${BPN}/pg_upgrade_support.so ${libdir}/${BPN}/.so \
${libdir}/${BPN}/unaccent.so \
"
DESCRIPTION:${PN}-contrib = "The postgresql-contrib package contains \
contributed packages that are included in the PostgreSQL distribution."
FILES:${PN}-pltcl = "${libdir}/${BPN}/pltcl.so ${bindir}/pltcl_delmod \
${binddir}/pltcl_listmod ${bindir}/pltcl_loadmod \
${datadir}/${BPN}/unknown.pltcl"
SUMMARY:${PN}-pltcl = "The Tcl procedural language for PostgreSQL"
DESCRIPTION:${PN}-pltcl = "PostgreSQL is an advanced Object-Relational \
database management system. The postgresql-pltcl package contains the PL/Tcl \
procedural language for the backend."
FILES:${PN}-plperl = "${libdir}/${BPN}/plperl.so"
SUMMARY:${PN}-plperl = "The Perl procedural language for PostgreSQL"
DESCRIPTION:${PN}-plperl = "PostgreSQL is an advanced Object-Relational \
database management system. The postgresql-plperl package contains the \
PL/Perl procedural language for the backend."
# In version 8, it will be plpython.so
# In version 9, it might be plpython{2,3}.so depending on python2 or 3
FILES:${PN}-plpython = "${libdir}/${BPN}/plpython*.so"
SUMMARY:${PN}-plpython = "The Python procedural language for PostgreSQL"
DESCRIPTION:${PN}-plpython = "PostgreSQL is an advanced Object-Relational \
database management system. The postgresql-plpython package contains \
the PL/Python procedural language for the backend."

View File

@@ -0,0 +1,18 @@
require postgresql.inc
LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=c31f662bb2bfb3b4187fe9a53e0ffe7c"
SRC_URI += "\
file://not-check-libperl.patch \
file://0001-Add-support-for-RISC-V.patch \
file://0001-Improve-reproducibility.patch \
file://0001-configure.ac-bypass-autoconf-2.69-version-check.patch \
file://0001-config_info.c-not-expose-build-info.patch \
file://0001-postgresql-fix-ptest-failure-of-sysviews.patch \
"
SRC_URI[sha256sum] = "ffc7d4891f00ffbf5c3f4eab7fbbced8460b8c0ee63c5a5167133b9e6599d932"
CVE_CHECK_IGNORE += "\
CVE-2017-8806 \
"