diff mbox series

[meta-oe,v5] pgpool2: Added a new recipe.

Message ID 1679281355-18266-1-git-send-email-leimaohui@fujitsu.com
State Under Review
Headers show
Series [meta-oe,v5] pgpool2: Added a new recipe. | expand

Commit Message

Maohui Lei (Fujitsu) March 20, 2023, 3:02 a.m. UTC
Pgpool-II is a middleware that works between PostgreSQL servers and a PostgreSQL database client. It is distributed under a license similar to BSD and MIT. It provides the  following features.

Signed-off-by: Lei Maohui <leimaohui@fujitsu.com>
---
 ...0001-Fix-build-error-when-build-this-file.patch | 32 +++++++++++++
 ...-unknown-type-name-fd_set-error-with-musl.patch | 33 ++++++++++++++
 .../recipes-support/pgpool2/pgpool2/pgpool.service | 17 +++++++
 .../pgpool2/pgpool2/pgpool.sysconfig               |  7 +++
 .../recipes-support/pgpool2/pgpool2_4.4.1.bb       | 53 ++++++++++++++++++++++
 5 files changed, 142 insertions(+)
 create mode 100644 meta-networking/recipes-support/pgpool2/pgpool2/0001-Fix-build-error-when-build-this-file.patch
 create mode 100644 meta-networking/recipes-support/pgpool2/pgpool2/0001-pgpool2-Fix-unknown-type-name-fd_set-error-with-musl.patch
 create mode 100644 meta-networking/recipes-support/pgpool2/pgpool2/pgpool.service
 create mode 100644 meta-networking/recipes-support/pgpool2/pgpool2/pgpool.sysconfig
 create mode 100644 meta-networking/recipes-support/pgpool2/pgpool2_4.4.1.bb

Comments

Khem Raj March 20, 2023, 3:34 a.m. UTC | #1
On Sun, Mar 19, 2023 at 8:02 PM leimaohui <leimaohui@fujitsu.com> wrote:
>
> Pgpool-II is a middleware that works between PostgreSQL servers and a PostgreSQL database client. It is distributed under a license similar to BSD and MIT. It provides the  following features.
>
> Signed-off-by: Lei Maohui <leimaohui@fujitsu.com>
> ---
>  ...0001-Fix-build-error-when-build-this-file.patch | 32 +++++++++++++
>  ...-unknown-type-name-fd_set-error-with-musl.patch | 33 ++++++++++++++
>  .../recipes-support/pgpool2/pgpool2/pgpool.service | 17 +++++++
>  .../pgpool2/pgpool2/pgpool.sysconfig               |  7 +++
>  .../recipes-support/pgpool2/pgpool2_4.4.1.bb       | 53 ++++++++++++++++++++++
>  5 files changed, 142 insertions(+)
>  create mode 100644 meta-networking/recipes-support/pgpool2/pgpool2/0001-Fix-build-error-when-build-this-file.patch
>  create mode 100644 meta-networking/recipes-support/pgpool2/pgpool2/0001-pgpool2-Fix-unknown-type-name-fd_set-error-with-musl.patch
>  create mode 100644 meta-networking/recipes-support/pgpool2/pgpool2/pgpool.service
>  create mode 100644 meta-networking/recipes-support/pgpool2/pgpool2/pgpool.sysconfig
>  create mode 100644 meta-networking/recipes-support/pgpool2/pgpool2_4.4.1.bb
>
> diff --git a/meta-networking/recipes-support/pgpool2/pgpool2/0001-Fix-build-error-when-build-this-file.patch b/meta-networking/recipes-support/pgpool2/pgpool2/0001-Fix-build-error-when-build-this-file.patch
> new file mode 100644
> index 0000000..52bcc3b
> --- /dev/null
> +++ b/meta-networking/recipes-support/pgpool2/pgpool2/0001-Fix-build-error-when-build-this-file.patch
> @@ -0,0 +1,32 @@
> +From f8ab74a76049f69adeebe92c62593547e05a075d Mon Sep 17 00:00:00 2001
> +From: Lei Maohui <leimaohui@fujitsu.com>
> +Date: Wed, 11 Jan 2023 17:22:41 +0900
> +Subject: [PATCH] Fix build error when build this file.
> +
> +| snprintf.c:770:64: error: 'PG_STRERROR_R_BUFLEN' undeclared (first use in this function)
> +|   770 |                                         char            errbuf[PG_STRERROR_R_BUFLEN];
> +|       |                                                                ^~~~~~~~~~~~~~~~~~~~
> +
> +PG_STRERROR_R_BUFLEN is defined in postgresql, but pgpool doesn't
> +include the header of postgresql.
> +
> +Upstream-Status: Inappropriate [OE-Specific]
> +Signed-off-by: Lei Maohui <leimaohui@fujitsu.com>
> +---
> + src/parser/snprintf.c | 1 +
> + 1 file changed, 1 insertion(+)
> +
> +diff --git a/src/parser/snprintf.c b/src/parser/snprintf.c
> +index 84ebdb2..3387897 100644
> +--- a/src/parser/snprintf.c
> ++++ b/src/parser/snprintf.c
> +@@ -46,6 +46,7 @@
> + #include "pool_parser.h"
> + #include "stringinfo.h"
> + #include "utils/palloc.h"
> ++#include "postgresql/server/port.h"
> +
> + /*
> +  * We used to use the platform's NL_ARGMAX here, but that's a bad idea,
> +--
> +2.25.1
> diff --git a/meta-networking/recipes-support/pgpool2/pgpool2/0001-pgpool2-Fix-unknown-type-name-fd_set-error-with-musl.patch b/meta-networking/recipes-support/pgpool2/pgpool2/0001-pgpool2-Fix-unknown-type-name-fd_set-error-with-musl.patch
> new file mode 100644
> index 0000000..26f8afe
> --- /dev/null
> +++ b/meta-networking/recipes-support/pgpool2/pgpool2/0001-pgpool2-Fix-unknown-type-name-fd_set-error-with-musl.patch
> @@ -0,0 +1,33 @@
> +From 5d335b5ddd052f047759cae0e9b94ec49f9f3884 Mon Sep 17 00:00:00 2001
> +From: Lei Maohui <leimaohui@fujitsu.com>
> +Date: Mon, 20 Mar 2023 02:03:04 +0000
> +Subject: [PATCH] pgpool2: Fix unknown type name 'fd_set' error with musl.
> +
> +| read.c: In function 'read_until_ready_for_query':
> +| read.c:53:24: error: storage size of 'timeoutval' isn't known
> +|    53 |         struct timeval timeoutval;
> +|       |                        ^~~~~~~~~~
> +| read.c:54:9: error: unknown type name 'fd_set'
> +|    54 |         fd_set          readmask;
> +|       |         ^~~~~~
> +
> +Upstream-Status: Inappropriate [embedded specific]

This is upstream bug and worth upstreaming. Please send it to the
appropriate upstream project as well.

> +Signed-off-by: Lei Maohui <leimaohui@fujitsu.com>
> +---
> + src/tools/pgproto/read.c | 1 +
> + 1 file changed, 1 insertion(+)
> +
> +diff --git a/src/tools/pgproto/read.c b/src/tools/pgproto/read.c
> +index c7fb548..4efe641 100644
> +--- a/src/tools/pgproto/read.c
> ++++ b/src/tools/pgproto/read.c
> +@@ -19,6 +19,7 @@
> + #include "../../include/config.h"
> + #include "pgproto/pgproto.h"
> + #include <unistd.h>
> ++#include <sys/select.h>
> + #include <stdlib.h>
> + #include <stdio.h>
> + #include <string.h>
> +--
> +2.34.1
> diff --git a/meta-networking/recipes-support/pgpool2/pgpool2/pgpool.service b/meta-networking/recipes-support/pgpool2/pgpool2/pgpool.service
> new file mode 100644
> index 0000000..bf2d323
> --- /dev/null
> +++ b/meta-networking/recipes-support/pgpool2/pgpool2/pgpool.service
> @@ -0,0 +1,17 @@
> +[Unit]
> +Description=Pgpool-II
> +After=syslog.target network.target
> +
> +[Service]
> +
> +User=postgres
> +Group=postgres
> +
> +EnvironmentFile=-/etc/sysconfig/pgpool
> +
> +ExecStart=/usr/bin/pgpool -f /etc/pgpool-II/pgpool.conf $OPTS
> +ExecStop=/usr/bin/pgpool -f /etc/pgpool-II/pgpool.conf $STOP_OPTS stop
> +ExecReload=/usr/bin/pgpool -f /etc/pgpool-II/pgpool.conf reload
> +
> +[Install]
> +WantedBy=multi-user.target
> diff --git a/meta-networking/recipes-support/pgpool2/pgpool2/pgpool.sysconfig b/meta-networking/recipes-support/pgpool2/pgpool2/pgpool.sysconfig
> new file mode 100644
> index 0000000..ea13089
> --- /dev/null
> +++ b/meta-networking/recipes-support/pgpool2/pgpool2/pgpool.sysconfig
> @@ -0,0 +1,7 @@
> +# Options for pgpool
> +
> +# -n: don't run in daemon mode. does not detach control tty
> +# -d: debug mode. lots of debug information will be printed
> +
> +#OPTS=" -d -n"
> +OPTS=" -n"
> diff --git a/meta-networking/recipes-support/pgpool2/pgpool2_4.4.1.bb b/meta-networking/recipes-support/pgpool2/pgpool2_4.4.1.bb
> new file mode 100644
> index 0000000..efb563b
> --- /dev/null
> +++ b/meta-networking/recipes-support/pgpool2/pgpool2_4.4.1.bb
> @@ -0,0 +1,53 @@
> +SUMMARY = "a language independent connection pool server for PostgreSQL."
> +
> +DESCRIPTION = "Pgpool-II is a middleware that works between PostgreSQL \
> +               servers and a PostgreSQL database client. It is distributed \
> +               under a license similar to BSD and MIT. It provides the \
> +               following features."
> +
> +HOMEPAGE = "http://pgpool.net"
> +
> +LICENSE = "BSD-2-Clause"
> +LIC_FILES_CHKSUM = "file://COPYING;md5=e4b38de086d73e0521de0bbdbaa4a1a9"
> +
> +SRC_URI = "http://www.pgpool.net/mediawiki/images/pgpool-II-${PV}.tar.gz \
> +          file://0001-Fix-build-error-when-build-this-file.patch \
> +          file://0001-pgpool2-Fix-unknown-type-name-fd_set-error-with-musl.patch \
> +          file://pgpool.sysconfig \
> +          file://pgpool.service \
> +           "
> +SRC_URI[sha256sum] = "4b379bbba8e178128a1cee4a5bd1ae116dedb3da6121b728c18f0f54c881f328"
> +
> +S = "${WORKDIR}/pgpool-II-${PV}"
> +
> +inherit autotools systemd
> +
> +SYSTEMD_SERVICE:${PN} = "pgpool.service"
> +
> +PACKAGECONFIG ??= " openssl libmemcached postgresql \
> +"
> +PACKAGECONFIG[pam] = "--with-pam,,libpam"
> +PACKAGECONFIG[openssl] = "--with-openssl,,openssl"
> +PACKAGECONFIG[libmemcached] = "--with-memcached=${STAGING_INCDIR}/libmemcachedutil-1.0,,libmemcached"
> +PACKAGECONFIG[postgresql] = "--with-pgsql-includedir=${STAGING_INCDIR}/postgresql,, postgresql"
> +
> +EXTRA_OECONF += "--disable-static \
> +                --disable-rpath \
> +               "
> +B = "${S}"
> +CFLAGS:append = " -fcommon "
> +
> +FILES:${PN} += "${datadir}/pgpool-II/ "
> +
> +do_configure:append() {
> +    echo "#define HAVE_STRCHRNUL 1" >> ${S}/src/include/config.h
> +    sed -i "s,#define USE_REPL_SNPRINTF 1,/* #undef USE_REPL_SNPRINTF*/,g" ${S}/src/include/config.h
> +}
> +
> +do_install:append() {
> +    install -d ${D}${sysconfdir}/pgpool-II
> +    install -D -m 0644 ${WORKDIR}/pgpool.sysconfig  ${D}${sysconfdir}/pgpool-II/pgpool.conf
> +    install -D -m 0644 ${S}/src/sample/pcp.conf.sample ${D}${sysconfdir}/pgpool-II/pcp.conf
> +    install -D -m 0644 ${S}/src/sample/pool_hba.conf.sample ${D}${sysconfdir}/pgpool-II/pool_hba.conf
> +    install -Dm 0644 ${WORKDIR}/pgpool.service ${D}${systemd_system_unitdir}/pgpool.service
> +}
> --
> 1.8.3.1
>
>
> -=-=-=-=-=-=-=-=-=-=-=-
> Links: You receive all messages sent to this group.
> View/Reply Online (#101602): https://lists.openembedded.org/g/openembedded-devel/message/101602
> Mute This Topic: https://lists.openembedded.org/mt/97724221/1997914
> Group Owner: openembedded-devel+owner@lists.openembedded.org
> Unsubscribe: https://lists.openembedded.org/g/openembedded-devel/unsub [raj.khem@gmail.com]
> -=-=-=-=-=-=-=-=-=-=-=-
>
Maohui Lei (Fujitsu) March 22, 2023, 5:31 a.m. UTC | #2
Hi Khem


> This is upstream bug and worth upstreaming. Please send it to the appropriate
> upstream project as well.

Ok, I'll do it. Thanks.

Lei
Best regards




> -----Original Message-----
> From: openembedded-devel@lists.openembedded.org
> <openembedded-devel@lists.openembedded.org> On Behalf Of Khem Raj
> Sent: Monday, March 20, 2023 11:34 AM
> To: Lei, Maohui <leimaohui@fujitsu.com>
> Cc: openembedded-devel@lists.openembedded.org
> Subject: Re: [oe] [meta-oe][PATCH v5] pgpool2: Added a new recipe.
> 
> On Sun, Mar 19, 2023 at 8:02 PM leimaohui <leimaohui@fujitsu.com> wrote:
> >
> > Pgpool-II is a middleware that works between PostgreSQL servers and a
> PostgreSQL database client. It is distributed under a license similar to BSD and
> MIT. It provides the  following features.
> >
> > Signed-off-by: Lei Maohui <leimaohui@fujitsu.com>
> > ---
> >  ...0001-Fix-build-error-when-build-this-file.patch | 32 +++++++++++++
> > ...-unknown-type-name-fd_set-error-with-musl.patch | 33 ++++++++++++++
> > .../recipes-support/pgpool2/pgpool2/pgpool.service | 17 +++++++
> >  .../pgpool2/pgpool2/pgpool.sysconfig               |  7 +++
> >  .../recipes-support/pgpool2/pgpool2_4.4.1.bb       | 53
> ++++++++++++++++++++++
> >  5 files changed, 142 insertions(+)
> >  create mode 100644
> > meta-networking/recipes-support/pgpool2/pgpool2/0001-Fix-build-error-w
> > hen-build-this-file.patch  create mode 100644
> > meta-networking/recipes-support/pgpool2/pgpool2/0001-pgpool2-Fix-unkno
> > wn-type-name-fd_set-error-with-musl.patch
> >  create mode 100644
> > meta-networking/recipes-support/pgpool2/pgpool2/pgpool.service
> >  create mode 100644
> > meta-networking/recipes-support/pgpool2/pgpool2/pgpool.sysconfig
> >  create mode 100644
> > meta-networking/recipes-support/pgpool2/pgpool2_4.4.1.bb
> >
> > diff --git
> > a/meta-networking/recipes-support/pgpool2/pgpool2/0001-Fix-build-error
> > -when-build-this-file.patch
> > b/meta-networking/recipes-support/pgpool2/pgpool2/0001-Fix-build-error
> > -when-build-this-file.patch
> > new file mode 100644
> > index 0000000..52bcc3b
> > --- /dev/null
> > +++ b/meta-networking/recipes-support/pgpool2/pgpool2/0001-Fix-build-e
> > +++ rror-when-build-this-file.patch
> > @@ -0,0 +1,32 @@
> > +From f8ab74a76049f69adeebe92c62593547e05a075d Mon Sep 17 00:00:00
> > +2001
> > +From: Lei Maohui <leimaohui@fujitsu.com>
> > +Date: Wed, 11 Jan 2023 17:22:41 +0900
> > +Subject: [PATCH] Fix build error when build this file.
> > +
> > +| snprintf.c:770:64: error: 'PG_STRERROR_R_BUFLEN' undeclared (first use in
> this function)
> > +|   770 |                                         char
> errbuf[PG_STRERROR_R_BUFLEN];
> > +|       |
> ^~~~~~~~~~~~~~~~~~~~
> > +
> > +PG_STRERROR_R_BUFLEN is defined in postgresql, but pgpool doesn't
> > +include the header of postgresql.
> > +
> > +Upstream-Status: Inappropriate [OE-Specific]
> > +Signed-off-by: Lei Maohui <leimaohui@fujitsu.com>
> > +---
> > + src/parser/snprintf.c | 1 +
> > + 1 file changed, 1 insertion(+)
> > +
> > +diff --git a/src/parser/snprintf.c b/src/parser/snprintf.c index
> > +84ebdb2..3387897 100644
> > +--- a/src/parser/snprintf.c
> > ++++ b/src/parser/snprintf.c
> > +@@ -46,6 +46,7 @@
> > + #include "pool_parser.h"
> > + #include "stringinfo.h"
> > + #include "utils/palloc.h"
> > ++#include "postgresql/server/port.h"
> > +
> > + /*
> > +  * We used to use the platform's NL_ARGMAX here, but that's a bad
> > +idea,
> > +--
> > +2.25.1
> > diff --git
> > a/meta-networking/recipes-support/pgpool2/pgpool2/0001-pgpool2-Fix-unk
> > nown-type-name-fd_set-error-with-musl.patch
> > b/meta-networking/recipes-support/pgpool2/pgpool2/0001-pgpool2-Fix-unk
> > nown-type-name-fd_set-error-with-musl.patch
> > new file mode 100644
> > index 0000000..26f8afe
> > --- /dev/null
> > +++ b/meta-networking/recipes-support/pgpool2/pgpool2/0001-pgpool2-Fix
> > +++ -unknown-type-name-fd_set-error-with-musl.patch
> > @@ -0,0 +1,33 @@
> > +From 5d335b5ddd052f047759cae0e9b94ec49f9f3884 Mon Sep 17 00:00:00
> > +2001
> > +From: Lei Maohui <leimaohui@fujitsu.com>
> > +Date: Mon, 20 Mar 2023 02:03:04 +0000
> > +Subject: [PATCH] pgpool2: Fix unknown type name 'fd_set' error with musl.
> > +
> > +| read.c: In function 'read_until_ready_for_query':
> > +| read.c:53:24: error: storage size of 'timeoutval' isn't known
> > +|    53 |         struct timeval timeoutval;
> > +|       |                        ^~~~~~~~~~
> > +| read.c:54:9: error: unknown type name 'fd_set'
> > +|    54 |         fd_set          readmask;
> > +|       |         ^~~~~~
> > +
> > +Upstream-Status: Inappropriate [embedded specific]
> 
> This is upstream bug and worth upstreaming. Please send it to the appropriate
> upstream project as well.
> 
> > +Signed-off-by: Lei Maohui <leimaohui@fujitsu.com>
> > +---
> > + src/tools/pgproto/read.c | 1 +
> > + 1 file changed, 1 insertion(+)
> > +
> > +diff --git a/src/tools/pgproto/read.c b/src/tools/pgproto/read.c
> > +index c7fb548..4efe641 100644
> > +--- a/src/tools/pgproto/read.c
> > ++++ b/src/tools/pgproto/read.c
> > +@@ -19,6 +19,7 @@
> > + #include "../../include/config.h"
> > + #include "pgproto/pgproto.h"
> > + #include <unistd.h>
> > ++#include <sys/select.h>
> > + #include <stdlib.h>
> > + #include <stdio.h>
> > + #include <string.h>
> > +--
> > +2.34.1
> > diff --git
> > a/meta-networking/recipes-support/pgpool2/pgpool2/pgpool.service
> > b/meta-networking/recipes-support/pgpool2/pgpool2/pgpool.service
> > new file mode 100644
> > index 0000000..bf2d323
> > --- /dev/null
> > +++ b/meta-networking/recipes-support/pgpool2/pgpool2/pgpool.service
> > @@ -0,0 +1,17 @@
> > +[Unit]
> > +Description=Pgpool-II
> > +After=syslog.target network.target
> > +
> > +[Service]
> > +
> > +User=postgres
> > +Group=postgres
> > +
> > +EnvironmentFile=-/etc/sysconfig/pgpool
> > +
> > +ExecStart=/usr/bin/pgpool -f /etc/pgpool-II/pgpool.conf $OPTS
> > +ExecStop=/usr/bin/pgpool -f /etc/pgpool-II/pgpool.conf $STOP_OPTS
> > +stop ExecReload=/usr/bin/pgpool -f /etc/pgpool-II/pgpool.conf reload
> > +
> > +[Install]
> > +WantedBy=multi-user.target
> > diff --git
> > a/meta-networking/recipes-support/pgpool2/pgpool2/pgpool.sysconfig
> > b/meta-networking/recipes-support/pgpool2/pgpool2/pgpool.sysconfig
> > new file mode 100644
> > index 0000000..ea13089
> > --- /dev/null
> > +++ b/meta-networking/recipes-support/pgpool2/pgpool2/pgpool.sysconfig
> > @@ -0,0 +1,7 @@
> > +# Options for pgpool
> > +
> > +# -n: don't run in daemon mode. does not detach control tty # -d:
> > +debug mode. lots of debug information will be printed
> > +
> > +#OPTS=" -d -n"
> > +OPTS=" -n"
> > diff --git a/meta-networking/recipes-support/pgpool2/pgpool2_4.4.1.bb
> > b/meta-networking/recipes-support/pgpool2/pgpool2_4.4.1.bb
> > new file mode 100644
> > index 0000000..efb563b
> > --- /dev/null
> > +++ b/meta-networking/recipes-support/pgpool2/pgpool2_4.4.1.bb
> > @@ -0,0 +1,53 @@
> > +SUMMARY = "a language independent connection pool server for
> PostgreSQL."
> > +
> > +DESCRIPTION = "Pgpool-II is a middleware that works between PostgreSQL \
> > +               servers and a PostgreSQL database client. It is distributed \
> > +               under a license similar to BSD and MIT. It provides the \
> > +               following features."
> > +
> > +HOMEPAGE = "http://pgpool.net"
> > +
> > +LICENSE = "BSD-2-Clause"
> > +LIC_FILES_CHKSUM =
> "file://COPYING;md5=e4b38de086d73e0521de0bbdbaa4a1a9"
> > +
> > +SRC_URI = "http://www.pgpool.net/mediawiki/images/pgpool-II-${PV}.tar.gz
> \
> > +          file://0001-Fix-build-error-when-build-this-file.patch \
> > +
> file://0001-pgpool2-Fix-unknown-type-name-fd_set-error-with-musl.patch \
> > +          file://pgpool.sysconfig \
> > +          file://pgpool.service \
> > +           "
> > +SRC_URI[sha256sum] =
> "4b379bbba8e178128a1cee4a5bd1ae116dedb3da6121b728c18f0f54c881f328"
> > +
> > +S = "${WORKDIR}/pgpool-II-${PV}"
> > +
> > +inherit autotools systemd
> > +
> > +SYSTEMD_SERVICE:${PN} = "pgpool.service"
> > +
> > +PACKAGECONFIG ??= " openssl libmemcached postgresql \ "
> > +PACKAGECONFIG[pam] = "--with-pam,,libpam"
> > +PACKAGECONFIG[openssl] = "--with-openssl,,openssl"
> > +PACKAGECONFIG[libmemcached] =
> "--with-memcached=${STAGING_INCDIR}/libmemcachedutil-1.0,,libmemcached
> "
> > +PACKAGECONFIG[postgresql] =
> "--with-pgsql-includedir=${STAGING_INCDIR}/postgresql,, postgresql"
> > +
> > +EXTRA_OECONF += "--disable-static \
> > +                --disable-rpath \
> > +               "
> > +B = "${S}"
> > +CFLAGS:append = " -fcommon "
> > +
> > +FILES:${PN} += "${datadir}/pgpool-II/ "
> > +
> > +do_configure:append() {
> > +    echo "#define HAVE_STRCHRNUL 1" >> ${S}/src/include/config.h
> > +    sed -i "s,#define USE_REPL_SNPRINTF 1,/* #undef
> > +USE_REPL_SNPRINTF*/,g" ${S}/src/include/config.h }
> > +
> > +do_install:append() {
> > +    install -d ${D}${sysconfdir}/pgpool-II
> > +    install -D -m 0644 ${WORKDIR}/pgpool.sysconfig
> ${D}${sysconfdir}/pgpool-II/pgpool.conf
> > +    install -D -m 0644 ${S}/src/sample/pcp.conf.sample
> ${D}${sysconfdir}/pgpool-II/pcp.conf
> > +    install -D -m 0644 ${S}/src/sample/pool_hba.conf.sample
> ${D}${sysconfdir}/pgpool-II/pool_hba.conf
> > +    install -Dm 0644 ${WORKDIR}/pgpool.service
> > +${D}${systemd_system_unitdir}/pgpool.service
> > +}
> > --
> > 1.8.3.1
> >
> >
> >
> >
diff mbox series

Patch

diff --git a/meta-networking/recipes-support/pgpool2/pgpool2/0001-Fix-build-error-when-build-this-file.patch b/meta-networking/recipes-support/pgpool2/pgpool2/0001-Fix-build-error-when-build-this-file.patch
new file mode 100644
index 0000000..52bcc3b
--- /dev/null
+++ b/meta-networking/recipes-support/pgpool2/pgpool2/0001-Fix-build-error-when-build-this-file.patch
@@ -0,0 +1,32 @@ 
+From f8ab74a76049f69adeebe92c62593547e05a075d Mon Sep 17 00:00:00 2001
+From: Lei Maohui <leimaohui@fujitsu.com>
+Date: Wed, 11 Jan 2023 17:22:41 +0900
+Subject: [PATCH] Fix build error when build this file.
+
+| snprintf.c:770:64: error: 'PG_STRERROR_R_BUFLEN' undeclared (first use in this function)
+|   770 |                                         char            errbuf[PG_STRERROR_R_BUFLEN];
+|       |                                                                ^~~~~~~~~~~~~~~~~~~~
+
+PG_STRERROR_R_BUFLEN is defined in postgresql, but pgpool doesn't
+include the header of postgresql.
+
+Upstream-Status: Inappropriate [OE-Specific]
+Signed-off-by: Lei Maohui <leimaohui@fujitsu.com>
+---
+ src/parser/snprintf.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/src/parser/snprintf.c b/src/parser/snprintf.c
+index 84ebdb2..3387897 100644
+--- a/src/parser/snprintf.c
++++ b/src/parser/snprintf.c
+@@ -46,6 +46,7 @@
+ #include "pool_parser.h"
+ #include "stringinfo.h"
+ #include "utils/palloc.h"
++#include "postgresql/server/port.h"
+
+ /*
+  * We used to use the platform's NL_ARGMAX here, but that's a bad idea,
+--
+2.25.1
diff --git a/meta-networking/recipes-support/pgpool2/pgpool2/0001-pgpool2-Fix-unknown-type-name-fd_set-error-with-musl.patch b/meta-networking/recipes-support/pgpool2/pgpool2/0001-pgpool2-Fix-unknown-type-name-fd_set-error-with-musl.patch
new file mode 100644
index 0000000..26f8afe
--- /dev/null
+++ b/meta-networking/recipes-support/pgpool2/pgpool2/0001-pgpool2-Fix-unknown-type-name-fd_set-error-with-musl.patch
@@ -0,0 +1,33 @@ 
+From 5d335b5ddd052f047759cae0e9b94ec49f9f3884 Mon Sep 17 00:00:00 2001
+From: Lei Maohui <leimaohui@fujitsu.com>
+Date: Mon, 20 Mar 2023 02:03:04 +0000
+Subject: [PATCH] pgpool2: Fix unknown type name 'fd_set' error with musl.
+
+| read.c: In function 'read_until_ready_for_query':
+| read.c:53:24: error: storage size of 'timeoutval' isn't known
+|    53 |         struct timeval timeoutval;
+|       |                        ^~~~~~~~~~
+| read.c:54:9: error: unknown type name 'fd_set'
+|    54 |         fd_set          readmask;
+|       |         ^~~~~~
+
+Upstream-Status: Inappropriate [embedded specific]
+Signed-off-by: Lei Maohui <leimaohui@fujitsu.com>
+---
+ src/tools/pgproto/read.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/src/tools/pgproto/read.c b/src/tools/pgproto/read.c
+index c7fb548..4efe641 100644
+--- a/src/tools/pgproto/read.c
++++ b/src/tools/pgproto/read.c
+@@ -19,6 +19,7 @@
+ #include "../../include/config.h"
+ #include "pgproto/pgproto.h"
+ #include <unistd.h>
++#include <sys/select.h>
+ #include <stdlib.h>
+ #include <stdio.h>
+ #include <string.h>
+--
+2.34.1
diff --git a/meta-networking/recipes-support/pgpool2/pgpool2/pgpool.service b/meta-networking/recipes-support/pgpool2/pgpool2/pgpool.service
new file mode 100644
index 0000000..bf2d323
--- /dev/null
+++ b/meta-networking/recipes-support/pgpool2/pgpool2/pgpool.service
@@ -0,0 +1,17 @@ 
+[Unit]
+Description=Pgpool-II
+After=syslog.target network.target
+
+[Service]
+
+User=postgres
+Group=postgres
+
+EnvironmentFile=-/etc/sysconfig/pgpool
+
+ExecStart=/usr/bin/pgpool -f /etc/pgpool-II/pgpool.conf $OPTS
+ExecStop=/usr/bin/pgpool -f /etc/pgpool-II/pgpool.conf $STOP_OPTS stop
+ExecReload=/usr/bin/pgpool -f /etc/pgpool-II/pgpool.conf reload
+
+[Install]
+WantedBy=multi-user.target
diff --git a/meta-networking/recipes-support/pgpool2/pgpool2/pgpool.sysconfig b/meta-networking/recipes-support/pgpool2/pgpool2/pgpool.sysconfig
new file mode 100644
index 0000000..ea13089
--- /dev/null
+++ b/meta-networking/recipes-support/pgpool2/pgpool2/pgpool.sysconfig
@@ -0,0 +1,7 @@ 
+# Options for pgpool
+
+# -n: don't run in daemon mode. does not detach control tty
+# -d: debug mode. lots of debug information will be printed
+
+#OPTS=" -d -n"
+OPTS=" -n"
diff --git a/meta-networking/recipes-support/pgpool2/pgpool2_4.4.1.bb b/meta-networking/recipes-support/pgpool2/pgpool2_4.4.1.bb
new file mode 100644
index 0000000..efb563b
--- /dev/null
+++ b/meta-networking/recipes-support/pgpool2/pgpool2_4.4.1.bb
@@ -0,0 +1,53 @@ 
+SUMMARY = "a language independent connection pool server for PostgreSQL."
+
+DESCRIPTION = "Pgpool-II is a middleware that works between PostgreSQL \
+               servers and a PostgreSQL database client. It is distributed \
+               under a license similar to BSD and MIT. It provides the \
+               following features."
+
+HOMEPAGE = "http://pgpool.net"
+
+LICENSE = "BSD-2-Clause"
+LIC_FILES_CHKSUM = "file://COPYING;md5=e4b38de086d73e0521de0bbdbaa4a1a9"
+
+SRC_URI = "http://www.pgpool.net/mediawiki/images/pgpool-II-${PV}.tar.gz \
+	   file://0001-Fix-build-error-when-build-this-file.patch \
+	   file://0001-pgpool2-Fix-unknown-type-name-fd_set-error-with-musl.patch \
+	   file://pgpool.sysconfig \
+	   file://pgpool.service \
+           "
+SRC_URI[sha256sum] = "4b379bbba8e178128a1cee4a5bd1ae116dedb3da6121b728c18f0f54c881f328"
+
+S = "${WORKDIR}/pgpool-II-${PV}"
+
+inherit autotools systemd
+
+SYSTEMD_SERVICE:${PN} = "pgpool.service"
+
+PACKAGECONFIG ??= " openssl libmemcached postgresql \
+"
+PACKAGECONFIG[pam] = "--with-pam,,libpam"
+PACKAGECONFIG[openssl] = "--with-openssl,,openssl"
+PACKAGECONFIG[libmemcached] = "--with-memcached=${STAGING_INCDIR}/libmemcachedutil-1.0,,libmemcached"
+PACKAGECONFIG[postgresql] = "--with-pgsql-includedir=${STAGING_INCDIR}/postgresql,, postgresql"
+
+EXTRA_OECONF += "--disable-static \
+	         --disable-rpath \
+	        "
+B = "${S}"
+CFLAGS:append = " -fcommon "
+
+FILES:${PN} += "${datadir}/pgpool-II/ "
+
+do_configure:append() {
+    echo "#define HAVE_STRCHRNUL 1" >> ${S}/src/include/config.h
+    sed -i "s,#define USE_REPL_SNPRINTF 1,/* #undef USE_REPL_SNPRINTF*/,g" ${S}/src/include/config.h
+}
+
+do_install:append() {
+    install -d ${D}${sysconfdir}/pgpool-II
+    install -D -m 0644 ${WORKDIR}/pgpool.sysconfig  ${D}${sysconfdir}/pgpool-II/pgpool.conf
+    install -D -m 0644 ${S}/src/sample/pcp.conf.sample ${D}${sysconfdir}/pgpool-II/pcp.conf
+    install -D -m 0644 ${S}/src/sample/pool_hba.conf.sample ${D}${sysconfdir}/pgpool-II/pool_hba.conf
+    install -Dm 0644 ${WORKDIR}/pgpool.service ${D}${systemd_system_unitdir}/pgpool.service
+}