[packages/zabbix] short circuit friendly build process
atler
atler at pld-linux.org
Fri Oct 31 01:23:04 CET 2025
commit de329bbcd6a366c8740c9764d39871849a35fca2
Author: Jan Palus <atler at pld-linux.org>
Date: Thu Oct 30 20:09:22 2025 +0100
short circuit friendly build process
number of fixes for building in separate build directory. submitted
upstream in: https://support.zabbix.com/browse/ZBX-27178
builddir.patch | 225 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
zabbix.spec | 34 ++++-----
2 files changed, 242 insertions(+), 17 deletions(-)
---
diff --git a/zabbix.spec b/zabbix.spec
index feccdb2..1e40e11 100644
--- a/zabbix.spec
+++ b/zabbix.spec
@@ -51,6 +51,7 @@ Patch0: config.patch
Patch1: sqlite3_dbname.patch
Patch2: always_compile_ipc.patch
Patch3: go-vendor.patch
+Patch4: builddir.patch
URL: https://www.zabbix.com/
BuildRequires: OpenIPMI-devel
BuildRequires: autoconf
@@ -72,7 +73,7 @@ BuildRequires: openldap-devel >= 2.4.6
BuildRequires: openssl-devel >= 1.1.0
BuildRequires: pcre-devel
%{?with_pgsql:BuildRequires: postgresql-devel}
-BuildRequires: rpmbuild(macros) >= 2.021
+BuildRequires: rpmbuild(macros) >= 2.043
%{?with_sqlite3:BuildRequires: sqlite3-devel}
BuildRequires: tar >= 1:1.22
BuildRequires: unixODBC-devel
@@ -368,6 +369,7 @@ This package provides the Zabbix Java Gateway.
%patch -P1 -p1
%patch -P2 -p1
%patch -P3 -p1
+%patch -P4 -p1
%build
%{__libtoolize}
@@ -376,9 +378,10 @@ This package provides the Zabbix Java Gateway.
%{__autoheader}
%{__automake}
+%define configuredir ..
+
configure() {
%configure \
- --enable-dependency-tracking \
--enable-ipv6 \
--with-ares \
--with-ldap \
@@ -394,6 +397,8 @@ configure() {
"$@"
}
+install -d build-agents
+cd build-agents
configure \
%{?with_java:JAVAC=%{java_home}/bin/javac} \
%{?with_java:JAR=%{java_home}/bin/jar} \
@@ -404,8 +409,11 @@ configure \
--disable-proxy
%{__make}
+cd ..
for database in %{databases} ; do
+ install -d build-$database
+ cd build-$database
if [ "$database" = "sqlite3" ] ; then
enable_server=""
else
@@ -420,16 +428,7 @@ for database in %{databases} ; do
--disable-java
%{__make}
-
- if [ "$enable_server" ] ; then
- %{__make} install \
- -C src/zabbix_server \
- DESTDIR=$PWD/install-${database}
- fi
-
- %{__make} install \
- -C src/zabbix_proxy \
- DESTDIR=$PWD/install-${database}
+ cd ..
done
%install
@@ -439,17 +438,18 @@ install -d \
$RPM_BUILD_ROOT{/etc/rc.d/init.d,%{_appdir}/frontends/php} \
$RPM_BUILD_ROOT{/var/run/zabbix,/var/log/zabbix,%{systemdunitdir},%{systemdtmpfilesdir}}
-%{__make} install \
+%{__make} -C build-agents install \
DESTDIR=$RPM_BUILD_ROOT \
ZJG_DEST=$RPM_BUILD_ROOT%{_datadir}/zabbix_java
for database in %{databases} ; do
+ %{__make} -C build-$database install \
+ DESTDIR=$RPM_BUILD_ROOT
+
if [ "$database" != "sqlite3" ] ; then
- cp -p install-$database/%{_sbindir}/zabbix_server \
- $RPM_BUILD_ROOT%{_sbindir}/zabbix_server-$database
+ %{__mv} $RPM_BUILD_ROOT%{_sbindir}/zabbix_server{,-$database}
fi
- cp -p install-$database/%{_sbindir}/zabbix_proxy \
- $RPM_BUILD_ROOT%{_sbindir}/zabbix_proxy-$database
+ %{__mv} $RPM_BUILD_ROOT%{_sbindir}/zabbix_proxy{,-$database}
done
if [ -n "$database" ] ; then
diff --git a/builddir.patch b/builddir.patch
new file mode 100644
index 0000000..139161b
--- /dev/null
+++ b/builddir.patch
@@ -0,0 +1,225 @@
+--- zabbix-7.0.20/configure.ac.orig 2025-10-28 08:32:39.701807634 +0100
++++ zabbix-7.0.20/configure.ac 2025-10-30 16:00:32.881049137 +0100
+@@ -24,7 +24,7 @@
+
+ AC_CONFIG_HEADERS(include/common/config.h)
+
+-AC_SUBST(DEFAULT_INCLUDES, ['-I$(top_srcdir)/include/common -I$(top_srcdir)/include'])
++AC_SUBST(DEFAULT_INCLUDES, ['-I$(top_srcdir)/include/common -I$(top_builddir)/include/common -I$(top_srcdir)/include'])
+
+ AC_CANONICAL_HOST
+
+@@ -1909,7 +1909,7 @@
+ fi
+
+ if test "x$agent2" = "xyes"; then
+- CGO_CFLAGS="$TLS_CFLAGS $LIBPCRE_CFLAGS $LIBPCRE2_CFLAGS"
++ CGO_CFLAGS="-I\$(abs_top_builddir)/include/common $TLS_CFLAGS $LIBPCRE_CFLAGS $LIBPCRE2_CFLAGS"
+ CGO_LDFLAGS="$AGENT2_LDFLAGS $LD_START_GROUP \
+ \${abs_top_builddir}/src/libs/zbxalgo/libzbxalgo.a \
+ \${abs_top_builddir}/src/libs/zbxinterface/libzbxinterface.a \
+--- zabbix-7.0.20/src/zabbix_js/Makefile.am.orig 2025-10-27 14:55:59.257664974 +0100
++++ zabbix-7.0.20/src/zabbix_js/Makefile.am 2025-10-30 16:12:43.195582140 +0100
+@@ -5,30 +5,30 @@
+ zabbix_js_SOURCES = zabbix_js.c
+
+ zabbix_js_LDADD = \
+- $(top_srcdir)/src/libs/zbxlog/libzbxlog.a \
+- $(top_srcdir)/src/libs/zbxembed/libzbxembed.a \
+- $(top_srcdir)/src/libs/zbxjson/libzbxjson.a \
+- $(top_srcdir)/src/libs/zbxregexp/libzbxregexp.a \
+- $(top_srcdir)/src/libs/zbxalgo/libzbxalgo.a \
+- $(top_srcdir)/src/libs/zbxthreads/libzbxthreads.a \
+- $(top_srcdir)/src/libs/zbxmutexs/libzbxmutexs.a \
+- $(top_srcdir)/src/libs/zbxprof/libzbxprof.a \
+- $(top_srcdir)/src/libs/zbxnix/libzbxnix.a \
+- $(top_srcdir)/src/libs/zbxcomms/libzbxcomms.a \
+- $(top_srcdir)/src/libs/zbxip/libzbxip.a \
+- $(top_srcdir)/src/libs/zbxgetopt/libzbxgetopt.a \
+- $(top_srcdir)/src/libs/zbxhash/libzbxhash.a \
+- $(top_srcdir)/src/libs/zbxcrypto/libzbxcrypto.a \
+- $(top_srcdir)/src/libs/zbxcompress/libzbxcompress.a \
+- $(top_srcdir)/src/libs/zbxhttp/libzbxhttp.a \
+- $(top_srcdir)/src/libs/zbxvariant/libzbxvariant.a \
+- $(top_srcdir)/src/libs/zbxxml/libzbxxml.a \
+- $(top_srcdir)/src/libs/zbxstr/libzbxstr.a \
+- $(top_srcdir)/src/libs/zbxnum/libzbxnum.a \
+- $(top_srcdir)/src/libs/zbxtime/libzbxtime.a \
+- $(top_srcdir)/src/libs/zbxcommon/libzbxcommon.a \
+- $(top_srcdir)/src/libs/zbxbincommon/libzbxbincommon.a \
+- $(top_srcdir)/src/libs/zbxcurl/libzbxcurl.a
++ $(top_builddir)/src/libs/zbxlog/libzbxlog.a \
++ $(top_builddir)/src/libs/zbxembed/libzbxembed.a \
++ $(top_builddir)/src/libs/zbxjson/libzbxjson.a \
++ $(top_builddir)/src/libs/zbxregexp/libzbxregexp.a \
++ $(top_builddir)/src/libs/zbxalgo/libzbxalgo.a \
++ $(top_builddir)/src/libs/zbxthreads/libzbxthreads.a \
++ $(top_builddir)/src/libs/zbxmutexs/libzbxmutexs.a \
++ $(top_builddir)/src/libs/zbxprof/libzbxprof.a \
++ $(top_builddir)/src/libs/zbxnix/libzbxnix.a \
++ $(top_builddir)/src/libs/zbxcomms/libzbxcomms.a \
++ $(top_builddir)/src/libs/zbxip/libzbxip.a \
++ $(top_builddir)/src/libs/zbxgetopt/libzbxgetopt.a \
++ $(top_builddir)/src/libs/zbxhash/libzbxhash.a \
++ $(top_builddir)/src/libs/zbxcrypto/libzbxcrypto.a \
++ $(top_builddir)/src/libs/zbxcompress/libzbxcompress.a \
++ $(top_builddir)/src/libs/zbxhttp/libzbxhttp.a \
++ $(top_builddir)/src/libs/zbxvariant/libzbxvariant.a \
++ $(top_builddir)/src/libs/zbxxml/libzbxxml.a \
++ $(top_builddir)/src/libs/zbxstr/libzbxstr.a \
++ $(top_builddir)/src/libs/zbxnum/libzbxnum.a \
++ $(top_builddir)/src/libs/zbxtime/libzbxtime.a \
++ $(top_builddir)/src/libs/zbxcommon/libzbxcommon.a \
++ $(top_builddir)/src/libs/zbxbincommon/libzbxbincommon.a \
++ $(top_builddir)/src/libs/zbxcurl/libzbxcurl.a
+
+ zabbix_js_LDADD += @ZBXJS_LIBS@ $(LIBXML2_LIBS)
+
+--- zabbix-7.0.20/src/zabbix_server/Makefile.am.orig 2025-10-28 08:32:37.185788428 +0100
++++ zabbix-7.0.20/src/zabbix_server/Makefile.am 2025-10-30 16:19:35.916381687 +0100
+@@ -188,4 +188,4 @@
+ $(MKDIR_P) "$(DESTDIR)$(EXTERNAL_SCRIPTS_PATH)"
+ $(MKDIR_P) "$(DESTDIR)$(ALERT_SCRIPTS_PATH)"
+ $(MKDIR_P) "$(DESTDIR)$(LOAD_MODULE_PATH)"
+- test -f "$(DESTDIR)$(SERVER_CONFIG_FILE)" || cp "../../conf/zabbix_server.conf" "$(DESTDIR)$(SERVER_CONFIG_FILE)"
++ test -f "$(DESTDIR)$(SERVER_CONFIG_FILE)" || cp "$(srcdir)/../../conf/zabbix_server.conf" "$(DESTDIR)$(SERVER_CONFIG_FILE)"
+--- zabbix-7.0.20/src/zabbix_agent/Makefile.am.orig 2025-10-27 14:55:59.241664859 +0100
++++ zabbix-7.0.20/src/zabbix_agent/Makefile.am 2025-10-30 16:24:54.900771905 +0100
+@@ -69,4 +69,4 @@
+ install-data-hook:
+ $(MKDIR_P) "$(DESTDIR)$(AGENT_CONFIG_FILE).d"
+ $(MKDIR_P) "$(DESTDIR)$(LOAD_MODULE_PATH)"
+- test -f "$(DESTDIR)$(AGENT_CONFIG_FILE)" || cp "../../conf/zabbix_agentd.conf" "$(DESTDIR)$(AGENT_CONFIG_FILE)"
++ test -f "$(DESTDIR)$(AGENT_CONFIG_FILE)" || cp "$(srcdir)/../../conf/zabbix_agentd.conf" "$(DESTDIR)$(AGENT_CONFIG_FILE)"
+--- zabbix-7.0.20/src/zabbix_proxy/Makefile.am.orig 2025-10-28 08:32:37.181788396 +0100
++++ zabbix-7.0.20/src/zabbix_proxy/Makefile.am 2025-10-30 16:24:22.724982406 +0100
+@@ -152,4 +152,4 @@
+ $(MKDIR_P) "$(DESTDIR)$(PROXY_CONFIG_FILE).d"
+ $(MKDIR_P) "$(DESTDIR)$(EXTERNAL_SCRIPTS_PATH)"
+ $(MKDIR_P) "$(DESTDIR)$(LOAD_MODULE_PATH)"
+- test -f "$(DESTDIR)$(PROXY_CONFIG_FILE)" || cp "../../conf/zabbix_proxy.conf" "$(DESTDIR)$(PROXY_CONFIG_FILE)"
++ test -f "$(DESTDIR)$(PROXY_CONFIG_FILE)" || cp "$(srcdir)/../../conf/zabbix_proxy.conf" "$(DESTDIR)$(PROXY_CONFIG_FILE)"
+--- zabbix-7.0.20/src/go/Makefile.am.orig 2025-10-30 20:43:14.732173269 +0100
++++ zabbix-7.0.20/src/go/Makefile.am 2025-10-30 21:00:54.131994777 +0100
+@@ -48,19 +48,23 @@
+ all: build
+
+ bin/zabbix_agent2: FORCE
++ $(MKDIR_P) bin
+ CGO_CFLAGS="${CGO_CFLAGS}" CGO_LDFLAGS="${CGO_LDFLAGS}" \
+ $(GO) build \
++ -C $(srcdir) \
+ -mod=vendor \
+ -tags="${AGENT_GOTAGS}" \
+ -ldflags="${AGENT_GOLDFLAGS}" \
+- -o bin \
++ -o $(abs_builddir)/bin \
+ golang.zabbix.com/agent2/cmd/zabbix_agent2
+
+ bin/zabbix_web_service: FORCE
++ $(MKDIR_P) bin
+ $(GO) build \
++ -C $(srcdir) \
+ -mod=vendor \
+ -ldflags="${WEBSERVICE_GOLDFLAGS}" \
+- -o bin \
++ -o $(abs_builddir)/bin \
+ golang.zabbix.com/agent2/cmd/zabbix_web_service
+
+ build: ${TARGETS}
+@@ -95,9 +95,9 @@
+ $(INSTALL) -d "$(DESTDIR)$(sbindir)"
+ $(INSTALL_PROGRAM) bin/zabbix_agent2 "$(DESTDIR)$(sbindir)"
+ $(INSTALL) -d "$(DESTDIR)$(AGENT2_PLUGIN_CONFIG_DIR)"
+- $(INSTALL_DATA) conf/zabbix_agent2.conf "$(DESTDIR)$(sysconfdir)"
++ $(INSTALL_DATA) $(srcdir)/conf/zabbix_agent2.conf "$(DESTDIR)$(sysconfdir)"
+ $(INSTALL) -d "$(DESTDIR)$(AGENT2_PLUGIN_CONFIG_DIR)"
+- (cd conf/zabbix_agent2.d/plugins.d && \
++ (cd $(srcdir)/conf/zabbix_agent2.d/plugins.d && \
+ for _f in *.conf; do \
+ $(INSTALL_DATA) $${_f} "$(DESTDIR)$(AGENT2_PLUGIN_CONFIG_DIR)"; \
+ done)
+--- zabbix-7.0.20/src/go/pkg/zbxlib/globals_linux.go.orig 2025-10-28 08:32:37.097787756 +0100
++++ zabbix-7.0.20/src/go/pkg/zbxlib/globals_linux.go 2025-10-30 23:13:52.195425445 +0100
+@@ -17,34 +17,6 @@
+ /* cspell:disable */
+
+ /*
+-#cgo LDFLAGS: -Wl,--start-group
+-#cgo LDFLAGS: ${SRCDIR}/../../../zabbix_agent/logfiles/libzbxlogfiles.a
+-#cgo LDFLAGS: ${SRCDIR}/../../../libs/zbxnum/libzbxnum.a
+-#cgo LDFLAGS: ${SRCDIR}/../../../libs/zbxstr/libzbxstr.a
+-#cgo LDFLAGS: ${SRCDIR}/../../../libs/zbxfile/libzbxfile.a
+-#cgo LDFLAGS: ${SRCDIR}/../../../libs/zbxparam/libzbxparam.a
+-#cgo LDFLAGS: ${SRCDIR}/../../../libs/zbxexpr/libzbxexpr.a
+-#cgo LDFLAGS: ${SRCDIR}/../../../libs/zbxip/libzbxip.a
+-#cgo LDFLAGS: ${SRCDIR}/../../../libs/zbxcomms/libzbxcomms.a
+-#cgo LDFLAGS: ${SRCDIR}/../../../libs/zbxcommon/libzbxcommon.a
+-#cgo LDFLAGS: ${SRCDIR}/../../../libs/zbxcrypto/libzbxcrypto.a
+-#cgo LDFLAGS: ${SRCDIR}/../../../libs/zbxthreads/libzbxthreads.a
+-#cgo LDFLAGS: ${SRCDIR}/../../../libs/zbxmutexs/libzbxmutexs.a
+-#cgo LDFLAGS: ${SRCDIR}/../../../libs/zbxnix/libzbxnix.a
+-#cgo LDFLAGS: ${SRCDIR}/../../../libs/zbxhttp/libzbxhttp.a
+-#cgo LDFLAGS: ${SRCDIR}/../../../libs/zbxcompress/libzbxcompress.a
+-#cgo LDFLAGS: ${SRCDIR}/../../../libs/zbxregexp/libzbxregexp.a
+-#cgo LDFLAGS: ${SRCDIR}/../../../libs/zbxsysinfo/libzbxagentsysinfo.a
+-#cgo LDFLAGS: ${SRCDIR}/../../../libs/zbxsysinfo/common/libcommonsysinfo.a
+-#cgo LDFLAGS: ${SRCDIR}/../../../libs/zbxsysinfo/simple/libsimplesysinfo.a
+-#cgo LDFLAGS: ${SRCDIR}/../../../libs/zbxsysinfo/linux/libspechostnamesysinfo.a
+-#cgo LDFLAGS: ${SRCDIR}/../../../libs/zbxsysinfo/linux/libspecsysinfo.a
+-#cgo LDFLAGS: ${SRCDIR}/../../../libs/zbxexec/libzbxexec.a
+-#cgo LDFLAGS: ${SRCDIR}/../../../libs/zbxalgo/libzbxalgo.a
+-#cgo LDFLAGS: ${SRCDIR}/../../../libs/zbxjson/libzbxjson.a
+-#cgo pcre LDFLAGS: -lz -lpcre -lresolv
+-#cgo pcre2 LDFLAGS: -lz -lpcre2-8 -lresolv
+-#cgo LDFLAGS: -Wl,--end-group
+
+ #include "zbxsysinfo.h"
+ #include "zbxcomms.h"
+--- zabbix-7.0.20/src/zabbix_java/Makefile.am.orig 2025-10-27 14:55:59.245664887 +0100
++++ zabbix-7.0.20/src/zabbix_java/Makefile.am 2025-10-30 23:24:04.882160839 +0100
+@@ -9,7 +9,7 @@
+ startup.sh
+
+ ZJG = bin/zabbix-java-gateway-$(VERSION).jar
+-LIB = lib/android-json-4.3_r3.1.jar:lib/logback-core-1.5.16.jar:lib/logback-classic-1.5.16.jar:lib/slf4j-api-2.0.16.jar
++LIB = $(srcdir)/lib/android-json-4.3_r3.1.jar:$(srcdir)/lib/logback-core-1.5.16.jar:$(srcdir)/lib/logback-classic-1.5.16.jar:$(srcdir)/lib/slf4j-api-2.0.16.jar
+
+ JUNIT = tests/junit-4.8.2.jar
+
+@@ -17,8 +17,8 @@
+
+ all: $(ZJG)
+
+-$(ZJG): class src/com/zabbix/gateway/*.java
+- $(JAVAC) -d class/src -classpath $(LIB) src/com/zabbix/gateway/*.java
++$(ZJG): class $(srcdir)/src/com/zabbix/gateway/*.java
++ $(JAVAC) -d class/src -classpath $(LIB) $(srcdir)/src/com/zabbix/gateway/*.java
+ $(JAR) cf $(ZJG) -C class/src .
+
+ test: class
+@@ -29,18 +29,19 @@
+ java -classpath class/tests:$(LIB):$(ZJG):$(JUNIT) com.zabbix.gateway.AllTestRunner
+
+ class:
++ $(MKDIR_P) bin
+ $(MKDIR_P) class/src
+ $(MKDIR_P) class/tests
+
+ install: all
+ $(MKDIR_P) "$(ZJG_DEST)/bin"
+ $(MKDIR_P) "$(ZJG_DEST)/lib"
+- cp startup.sh shutdown.sh "$(ZJG_DEST)"
+- if test ! -f "$(ZJG_DEST)/settings.sh"; then cp settings.sh "$(ZJG_DEST)"; fi
++ cp $(srcdir)/startup.sh $(srcdir)/shutdown.sh "$(ZJG_DEST)"
++ if test ! -f "$(ZJG_DEST)/settings.sh"; then cp $(srcdir)/settings.sh "$(ZJG_DEST)"; fi
+ cp $(ZJG) "$(ZJG_DEST)/bin"
+- cp lib/*.jar "$(ZJG_DEST)/lib"
+- if test ! -f "$(ZJG_DEST)/lib/logback.xml"; then cp lib/logback.xml "$(ZJG_DEST)/lib"; fi
+- if test ! -f "$(ZJG_DEST)/lib/logback-console.xml"; then cp lib/logback-console.xml "$(ZJG_DEST)/lib"; fi
++ cp $(srcdir)/lib/*.jar "$(ZJG_DEST)/lib"
++ if test ! -f "$(ZJG_DEST)/lib/logback.xml"; then cp $(srcdir)/lib/logback.xml "$(ZJG_DEST)/lib"; fi
++ if test ! -f "$(ZJG_DEST)/lib/logback-console.xml"; then cp $(srcdir)/lib/logback-console.xml "$(ZJG_DEST)/lib"; fi
+
+ clean:
+ rm -f tests/com/zabbix/gateway/jmx_test_beans/*.class
================================================================
---- gitweb:
http://git.pld-linux.org/gitweb.cgi/packages/zabbix.git/commitdiff/461e1e1a416e19603ecda3eb2ad25f98228cbab5
More information about the pld-cvs-commit
mailing list