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


leimaohui
 

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@...>
---
...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@...>
+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@...>
+---
+ 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@...>
+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@...>
+---
+ 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


Khem Raj
 

On Sun, Mar 19, 2023 at 8:02 PM leimaohui <leimaohui@...> 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@...>
---
...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@...>
+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@...>
+---
+ 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@...>
+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@...>
+---
+ 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




leimaohui
 

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@...
<openembedded-devel@...> On Behalf Of Khem Raj
Sent: Monday, March 20, 2023 11:34 AM
To: Lei, Maohui <leimaohui@...>
Cc: openembedded-devel@...
Subject: Re: [oe] [meta-oe][PATCH v5] pgpool2: Added a new recipe.

On Sun, Mar 19, 2023 at 8:02 PM leimaohui <leimaohui@...> 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@...>
---
...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@...>
+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@...>
+---
+ 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@...>
+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@...>
+---
+ 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