Apache Cloudberry version
main
What happened
Some errors returned. Please see the details as follows. With the help of AI, I successfully installed Cloudberry on Rocky Linux 10. But I don't know if they're the right way to fix these issues. Please help correct me. Thanks!
What you think should happen instead
No response
How to reproduce
Test Env
OS:
[gpadmin@cdw cloudberry]$ cat /etc/os-release
NAME="Rocky Linux"
VERSION="10.0 (Red Quartz)"
ID="rocky"
ID_LIKE="rhel centos fedora"
VERSION_ID="10.0"
PLATFORM_ID="platform:el10"
PRETTY_NAME="Rocky Linux 10.0 (Red Quartz)"
ANSI_COLOR="0;32"
LOGO="fedora-logo-icon"
CPE_NAME="cpe:/o:rocky:rocky:10::baseos"
HOME_URL="https://rockylinux.org/"
VENDOR_NAME="RESF"
VENDOR_URL="https://resf.org/"
BUG_REPORT_URL="https://bugs.rockylinux.org/"
SUPPORT_END="2035-05-31"
ROCKY_SUPPORT_PRODUCT="Rocky-Linux-10"
ROCKY_SUPPORT_PRODUCT_VERSION="10.0"
REDHAT_SUPPORT_PRODUCT="Rocky Linux"
REDHAT_SUPPORT_PRODUCT_VERSION="10.0"
gcc/g++:
[gpadmin@cdw cloudberry]$ gcc --version
gcc (GCC) 14.2.1 20250110 (Red Hat 14.2.1-7)
Copyright (C) 2024 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
[gpadmin@cdw cloudberry]$ g++ --version
g++ (GCC) 14.2.1 20250110 (Red Hat 14.2.1-7)
Copyright (C) 2024 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
List of issues:
make -C foreign all
make[3]: Entering directory '/home/gpadmin/cloudberry/src/backend/foreign'
make[3]: Nothing to be done for 'all'.
make[3]: Leaving directory '/home/gpadmin/cloudberry/src/backend/foreign'
make -C lib all
make[3]: Entering directory '/home/gpadmin/cloudberry/src/backend/lib'
make[3]: Nothing to be done for 'all'.
make[3]: Leaving directory '/home/gpadmin/cloudberry/src/backend/lib'
make -C libpq all
make[3]: Entering directory '/home/gpadmin/cloudberry/src/backend/libpq'
gcc -Wall -Wmissing-prototypes -Wpointer-arith -Werror=vla -Wendif-labels -Wmissing-format-attribute -Wimplicit-fallthrough=3 -Wcast-function-type -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -Wno-unused-but-set-variable -Werror=implicit-fallthrough=3 -Wno-format-truncation -Wno-stringop-truncation -g -O3 -fPIC -DUSE_INTERNAL_FTS=1 -Werror=uninitialized -Werror=implicit-function-declaration -Werror -I../../../src/include -D_GNU_SOURCE -I/usr/include/libxml2 -DWITH_GZFILEOP -I/usr/local/xerces-c/include -I../../../src/interfaces/libpq -I../../../src/port -c -o fe-secure-openssl.o fe-secure-openssl.c
fe-secure-openssl.c: In function ‘initialize_SSL’:
fe-secure-openssl.c:800:21: error: unused variable ‘pkey’ [-Werror=unused-variable]
800 | EVP_PKEY *pkey = NULL;
| ^~~~
cc1: all warnings being treated as errors
make[3]: *** [<builtin>: fe-secure-openssl.o] Error 1
make[3]: Leaving directory '/home/gpadmin/cloudberry/src/backend/libpq'
make[2]: *** [common.mk:39: libpq-recursive] Error 2
make[2]: Leaving directory '/home/gpadmin/cloudberry/src/backend'
make[1]: *** [Makefile:45: all-backend-recurse] Error 2
make[1]: Leaving directory '/home/gpadmin/cloudberry/src'
make: *** [GNUmakefile:11: all-src-recurse] Error 2
~>
diff --git a/src/interfaces/libpq/fe-secure-openssl.c b/src/interfaces/libpq/fe-secure-openssl.c
index 5c6b317caa7..eac8b65fb37 100644
--- a/src/interfaces/libpq/fe-secure-openssl.c
+++ b/src/interfaces/libpq/fe-secure-openssl.c
@@ -797,8 +797,9 @@ initialize_SSL(PGconn *conn)
bool have_homedir;
bool have_cert;
bool have_rootcert;
+#ifdef USE_SSL_ENGINE
EVP_PKEY *pkey = NULL;
-
+#endif
/*
* We'll need the home directory if any of the relevant parameters are
* defaulted. If pqGetHomeDirectory fails, act as though none of the
gcc -Wall -Wmissing-prototypes -Wpointer-arith -Werror=vla -Wendif-labels -Wmissing-format-attribute -Wimplicit-fallthrough=3 -Wcast-function-type -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -Wno-unused-but-set-variable -Werror=implicit-fallthrough=3 -Wno-format-truncation -Wno-stringop-truncation -g -O3 -fPIC -DUSE_INTERNAL_FTS=1 -Werror=uninitialized -Werror=implicit-function-declaration -Werror -I. -I. -I../../../../src/interfaces/libpq -I../../../../src/include -D_GNU_SOURCE -I/usr/include/libxml2 -DWITH_GZFILEOP -I/usr/local/xerces-c/include -c -o xml.o xml.c
xml.c: In function ‘pg_xml_init’:
xml.c:1025:52: error: passing argument 2 of ‘xmlSetStructuredErrorFunc’ from incompatible pointer type [-Wincompatible-pointer-types]
1025 | xmlSetStructuredErrorFunc((void *) errcxt, xml_errorHandler);
| ^~~~~~~~~~~~~~~~
| |
| void (*)(void *, xmlError *) {aka void (*)(void *, struct _xmlError *)}
In file included from /usr/include/libxml2/libxml/valid.h:15,
from /usr/include/libxml2/libxml/parser.h:19,
from xml.c:50:
/usr/include/libxml2/libxml/xmlerror.h:898:57: note: expected ‘xmlStructuredErrorFunc’ {aka ‘void (*)(void *, const struct _xmlError *)’} but argument is of type ‘void (*)(void *, xmlError *)’ {aka ‘void (*)(void *, struct _xmlError *)’}
898 | xmlStructuredErrorFunc handler);
| ~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~
xml.c: In function ‘XmlTableFetchRow’:
xml.c:4562:62: error: passing argument 2 of ‘xmlSetStructuredErrorFunc’ from incompatible pointer type [-Wincompatible-pointer-types]
4562 | xmlSetStructuredErrorFunc((void *) xtCxt->xmlerrcxt, xml_errorHandler);
| ^~~~~~~~~~~~~~~~
| |
| void (*)(void *, xmlError *) {aka void (*)(void *, struct _xmlError *)}
/usr/include/libxml2/libxml/xmlerror.h:898:57: note: expected ‘xmlStructuredErrorFunc’ {aka ‘void (*)(void *, const struct _xmlError *)’} but argument is of type ‘void (*)(void *, xmlError *)’ {aka ‘void (*)(void *, struct _xmlError *)’}
898 | xmlStructuredErrorFunc handler);
| ~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~
xml.c: In function ‘XmlTableGetValue’:
xml.c:4616:62: error: passing argument 2 of ‘xmlSetStructuredErrorFunc’ from incompatible pointer type [-Wincompatible-pointer-types]
4616 | xmlSetStructuredErrorFunc((void *) xtCxt->xmlerrcxt, xml_errorHandler);
| ^~~~~~~~~~~~~~~~
| |
| void (*)(void *, xmlError *) {aka void (*)(void *, struct _xmlError *)}
/usr/include/libxml2/libxml/xmlerror.h:898:57: note: expected ‘xmlStructuredErrorFunc’ {aka ‘void (*)(void *, const struct _xmlError *)’} but argument is of type ‘void (*)(void *, xmlError *)’ {aka ‘void (*)(void *, struct _xmlError *)’}
898 | xmlStructuredErrorFunc handler);
| ~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~
xml.c: In function ‘XmlTableDestroyOpaque’:
xml.c:4759:62: error: passing argument 2 of ‘xmlSetStructuredErrorFunc’ from incompatible pointer type [-Wincompatible-pointer-types]
4759 | xmlSetStructuredErrorFunc((void *) xtCxt->xmlerrcxt, xml_errorHandler);
| ^~~~~~~~~~~~~~~~
| |
| void (*)(void *, xmlError *) {aka void (*)(void *, struct _xmlError *)}
/usr/include/libxml2/libxml/xmlerror.h:898:57: note: expected ‘xmlStructuredErrorFunc’ {aka ‘void (*)(void *, const struct _xmlError *)’} but argument is of type ‘void (*)(void *, xmlError *)’ {aka ‘void (*)(void *, struct _xmlError *)’}
898 | xmlStructuredErrorFunc handler);
| ~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~
make[4]: *** [<builtin>: xml.o] Error 1
make[4]: Leaving directory '/home/gpadmin/cloudberry/src/backend/utils/adt'
make[3]: *** [../../../src/backend/common.mk:39: adt-recursive] Error 2
make[3]: Leaving directory '/home/gpadmin/cloudberry/src/backend/utils'
make[2]: *** [common.mk:39: utils-recursive] Error 2
make[2]: Leaving directory '/home/gpadmin/cloudberry/src/backend'
make[1]: *** [Makefile:45: all-backend-recurse] Error 2
make[1]: Leaving directory '/home/gpadmin/cloudberry/src'
make: *** [GNUmakefile:11: all-src-recurse] Error 2
~>
diff --git a/src/backend/utils/adt/xml.c b/src/backend/utils/adt/xml.c
index 6d38a2d0de2..d96695e0dd9 100644
--- a/src/backend/utils/adt/xml.c
+++ b/src/backend/utils/adt/xml.c
@@ -121,7 +121,7 @@ struct PgXmlErrorContext
static xmlParserInputPtr xmlPgEntityLoader(const char *URL, const char *ID,
xmlParserCtxtPtr ctxt);
-static void xml_errorHandler(void *data, xmlErrorPtr error);
+static void xml_errorHandler(void *data, const xmlError *error);
static void xml_ereport_by_code(int level, int sqlcode,
const char *msg, int errcode);
static void chopStringInfoNewlines(StringInfo str);
@@ -1762,7 +1762,7 @@ xml_ereport(PgXmlErrorContext *errcxt, int level, int sqlcode, const char *msg)
* Error handler for libxml errors and warnings
*/
static void
-xml_errorHandler(void *data, xmlErrorPtr error)
+xml_errorHandler(void *data, const xmlError *error)
{
PgXmlErrorContext *xmlerrcxt = (PgXmlErrorContext *) data;
xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr) error->ctxt;
/home/gpadmin/cloudberry/contrib/pax_storage/src/cpp/comm/comm_test.cc: In member function ‘virtual void pax::tests::CommTest_TestNewOperator_Test::TestBody()’:
/home/gpadmin/cloudberry/contrib/pax_storage/src/cpp/comm/comm_test.cc:62:24: error: allocation of insufficient size ‘0’ for type ‘bool’ with size ‘1’ [-Werror=alloc-size]
62 | auto obj = new bool[0];
| ^
[ 96%] Building CXX object src/cpp/CMakeFiles/test_main.dir/storage/columns/pax_delta_encoding_test.cc.o
cc1plus: all warnings being treated as errors
make[4]: *** [src/cpp/CMakeFiles/test_main.dir/build.make:1448: src/cpp/CMakeFiles/test_main.dir/comm/comm_test.cc.o] Error 1
make[4]: *** Waiting for unfinished jobs....
make[3]: *** [CMakeFiles/Makefile2:339: src/cpp/CMakeFiles/test_main.dir/all] Error 2
make[2]: *** [Makefile:136: all] Error 2
make[2]: Leaving directory '/home/gpadmin/cloudberry/contrib/pax_storage/build'
make[1]: *** [Makefile:69: build] Error 2
make[1]: Leaving directory '/home/gpadmin/cloudberry/contrib/pax_storage'
make: *** [GNUmakefile:32: all] Error 2
make: Leaving directory '/home/gpadmin/cloudberry'
~>
diff --git a/contrib/pax_storage/src/cpp/comm/comm_test.cc b/contrib/pax_storage/src/cpp/comm/comm_test.cc
index 7839e9e1f8d..38bf4bd1510 100644
--- a/contrib/pax_storage/src/cpp/comm/comm_test.cc
+++ b/contrib/pax_storage/src/cpp/comm/comm_test.cc
@@ -59,7 +59,10 @@ TEST_F(CommTest, TestDeleteOperator) {
TEST_F(CommTest, TestNewOperator) {
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Walloc-size"
auto obj = new bool[0];
+#pragma GCC diagnostic pop
ASSERT_NE(obj, nullptr);
delete[] obj;
- make install
# Install wheel and cython for PyYAML building
pip3 install --user wheel "cython<3.0.0"
Collecting wheel
Downloading wheel-0.45.1-py3-none-any.whl.metadata (2.3 kB)
Collecting cython<3.0.0
Downloading Cython-0.29.37-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl.metadata (3.1 kB)
Downloading wheel-0.45.1-py3-none-any.whl (72 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 72.5/72.5 kB 977.0 kB/s eta 0:00:00
Downloading Cython-0.29.37-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl (2.0 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 2.0/2.0 MB 10.8 MB/s eta 0:00:00
Installing collected packages: wheel, cython
Successfully installed cython-0.29.37 wheel-0.45.1
--- pyyaml
--- psutil
--- PyGreSQL
cd /home/gpadmin/cloudberry/gpMgmt/bin/pythonSrc/ext/ && /usr/bin/tar xzf PyYAML-5.4.1.tar.gz
cd /home/gpadmin/cloudberry/gpMgmt/bin/pythonSrc/ext/ && /usr/bin/tar xzf psutil-5.7.0.tar.gz
cd /home/gpadmin/cloudberry/gpMgmt/bin/pythonSrc/ext/ && /usr/bin/tar xzf PyGreSQL-5.2.tar.gz
cd /home/gpadmin/cloudberry/gpMgmt/bin/pythonSrc/ext/PyGreSQL-5.2/ && PATH=/usr/local/cloudberry-db/bin:$PATH LDFLAGS='-L../../src/port -L../../src/common -L/usr/local/cloudberry-db/lib -Wl,--as-needed -Wl,-rpath,'/usr/local/cloudberry-db/lib',--enable-new-dtags -Werror ' python3 setup.py build
cd /home/gpadmin/cloudberry/gpMgmt/bin/pythonSrc/ext/psutil-5.7.0/ && env -u CC python3 setup.py build
cd /home/gpadmin/cloudberry/gpMgmt/bin/pythonSrc/ext/PyYAML-5.4.1/ && env -u CC CFLAGS="-w" python3 setup.py build
Traceback (most recent call last):
File "/home/gpadmin/cloudberry/gpMgmt/bin/pythonSrc/ext/PyGreSQL-5.2/setup.py", line 47, in <module>
from setuptools import setup
ModuleNotFoundError: No module named 'setuptools'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/gpadmin/cloudberry/gpMgmt/bin/pythonSrc/ext/PyGreSQL-5.2/setup.py", line 49, in <module>
from distutils.core import setup
ModuleNotFoundError: No module named 'distutils'
make[2]: *** [Makefile:124: pygresql] Error 1
make[2]: *** Waiting for unfinished jobs....
Traceback (most recent call last):
File "/home/gpadmin/cloudberry/gpMgmt/bin/pythonSrc/ext/PyYAML-5.4.1/setup.py", line 70, in <module>
from distutils import log
ModuleNotFoundError: No module named 'distutils'
make[2]: *** [Makefile:147: pyyaml] Error 1
Traceback (most recent call last):
File "/home/gpadmin/cloudberry/gpMgmt/bin/pythonSrc/ext/psutil-5.7.0/setup.py", line 24, in <module>
import setuptools
ModuleNotFoundError: No module named 'setuptools'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/gpadmin/cloudberry/gpMgmt/bin/pythonSrc/ext/psutil-5.7.0/setup.py", line 28, in <module>
from distutils.core import setup, Extension
ModuleNotFoundError: No module named 'distutils'
make[2]: *** [Makefile:134: psutil] Error 1
make[2]: Leaving directory '/home/gpadmin/cloudberry/gpMgmt/bin'
make[1]: *** [Makefile:7: install-bin-recurse] Error 2
make[1]: Leaving directory '/home/gpadmin/cloudberry/gpMgmt'
make: *** [GNUmakefile:80: install] Error 2
make: Leaving directory '/home/gpadmin/cloudberry'
~>
sudo dnf install python3-setuptools
sudo dnf install --enablerepo=crb python3-wheel
When running
source /usr/local/cloudberry-db/cloudberry-env.sh
make create-demo-cluster -C ~/cloudberry
Then:
performing post-bootstrap initialization ... LOG: gp_role forced to 'utility' in single-user mode
initdb: error: error while reading cdb_init.d directory: Function not implemented
initdb: removing data directory "/home/gpadmin/cloudberry/gpAux/gpdemo/datadirs/qddir/demoDataDir-1"
-- 5.43 ROLE_ROUTINE_GRANTS view is based on 5.50 ROUTINE_PRIVILEGES and is defined there instead.
-- 5.44 ROLE_TABLE_GRANTS view is based on 5.63 TABLE_PRIVILEGES and is defined there instead.
/*
* 5.45
* ROLE_TABLE_METHOD_GRANTS view
*/
-- feature not supported
-- 5.46 ROLE_USAGE_GRANTS view is based on 5.75 USAGE_PRIVILEGES and is defined there instead.
-- 5.47 ROLE_UDT_GRANTS view is based on 5.74 UDT_PRIVILEGES and is defined there instead.
~>
diff --git a/src/bin/initdb/initdb.c b/src/bin/initdb/initdb.c
index 4ed9869a2c9..342be9baf35 100644
--- a/src/bin/initdb/initdb.c
+++ b/src/bin/initdb/initdb.c
@@ -2023,6 +2023,7 @@ setup_cdb_schema(FILE *cmdfd)
/* Collect all files with .sql suffix in array. */
nscripts = 0;
+ errno = 0;
while ((file = readdir(dir)) != NULL)
{
int namelen = strlen(file->d_name);
Operating System
Rocky Linux 10
Anything else
No response
Are you willing to submit PR?
Code of Conduct
Apache Cloudberry version
main
What happened
Some errors returned. Please see the details as follows. With the help of AI, I successfully installed Cloudberry on Rocky Linux 10. But I don't know if they're the right way to fix these issues. Please help correct me. Thanks!
What you think should happen instead
No response
How to reproduce
Test Env
OS:
gcc/g++:
List of issues:
~>
~>
~>
~>
When running
Then:
~>
Operating System
Rocky Linux 10
Anything else
No response
Are you willing to submit PR?
Code of Conduct