]> git.pld-linux.org Git - packages/zabbix.git/blobdiff - zabbix.spec
up to 6.0.30
[packages/zabbix.git] / zabbix.spec
index c07be484c9d9458b104fc91b5ae6d9eb2efbb994..12126422b34145857524151140c48eb76f733a09 100644 (file)
@@ -1,58 +1,86 @@
 # TODO:
-# - initscript for zabbix-agentd, zabbix-server, zabbix-proxy and zabbix-java
+# - initscript for zabbix-server, zabbix-proxy and zabbix-java
+# - unpackaged files:
+#   /usr/bin/zabbix_js
+#   /var/lib/zabbix/zabbix.db
 #
 # Conditional build:
-%bcond_with    pgsql   # enable PostgreSQL support
-%bcond_with    oracle  # enable Oracle support
-%bcond_with    sqlite3 # enable sqlite3 support
+%bcond_without pgsql   # enable PostgreSQL support
+%bcond_without sqlite3 # enable sqlite3 support
 %bcond_without mysql   # enable MySQL support
-
 %bcond_without java    # disable java support
+%bcond_without agent2  # disable bulding of Go based agent2
 
-%if %{with pgsql} || %{with oracle} || %{with sqlite3}
-%undefine with_mysql
-%endif
+%define databases %{?with_sqlite3:sqlite3} %{?with_pgsql:postgresql} %{?with_mysql:mysql}
+%define any_database %{with pgsql}%{with mysql}%{with sqlite3}
 
-%if %{?with_pgsql:1}%{?with_oracle:1}%{?with_sqlite3:1}%{?with_mysql:1} != 1
-ERROR: exactly one database must be selected
+%ifnarch %{go_arches}
+%undefine      with_agent2
 %endif
 
-%define         php_min_version 5.4.0
+%{?with_java:%{?use_default_jdk}}
 
+%define                php_min_version 7.2.5
 Summary:       Zabbix - network monitoring software
 Summary(pl.UTF-8):     Zabbix - oprogramowanie do monitorowania sieci
 Name:          zabbix
-Version:       3.2.0
-Release:       0.2
+Version:       6.0.30
+Release:       1
 License:       GPL v2+
 Group:         Networking/Utilities
-Source0:       http://downloads.sourceforge.net/zabbix/%{name}-%{version}.tar.gz
-# Source0-md5: e2491b482868059f251902d5f636eacb
+# https://www.zabbix.com/download_sources
+Source0:       https://cdn.zabbix.com/zabbix/sources/stable/6.0/%{name}-%{version}.tar.gz
+# Source0-md5: 7f553e63c07f330996ad06ea87ea2f38
+Source100:     go-vendor.tar.xz
+# Source100-md5:       b25dd4b2a72c62d6fa1378031b261a3d
 Source1:       %{name}-apache.conf
-Source2:       zabbix_server.service
-Source3:       zabbix_agentd.service
-Source4:       zabbix_proxy.service
-Source5:       zabbix_java.service
-Source6:       zabbix.tmpfiles
+Source2:       %{name}_server.service
+Source3:       %{name}_agentd.service
+Source4:       %{name}_proxy.service
+Source5:       %{name}_java.service
+Source6:       %{name}.tmpfiles
+Source7:       %{name}_agentd.init
+Source8:       %{name}_agent2.init
+Source9:       %{name}_agent2.service
+%if 0
+cd src/go/
+go mod vendor
+tar -caf ~/go-vendor.tar.xz -C ../../ src/go/vendor
+%endif
 Patch0:                config.patch
-URL:           http://zabbix.sourceforge.net/
+Patch1:                sqlite3_dbname.patch
+Patch2:                always_compile_ipc.patch
+Patch3:                go-destdir.patch
+Patch4:                go-vendor.patch
+URL:           https://www.zabbix.com/
 BuildRequires: OpenIPMI-devel
+BuildRequires: autoconf
+BuildRequires: automake >= 1:1.15
 BuildRequires: curl-devel
 BuildRequires: iksemel-devel
-%{?with_java:BuildRequires:    jdk}
-BuildRequires: libxml2-devel
+%{?with_java:%buildrequires_jdk}
+BuildRequires: rpm-build >= 4.6
+%{?with_java:BuildRequires:    rpm-pld-macros-javaprov}
+%{?with_agent2:BuildRequires:  golang >= 1.19}
+BuildRequires: libevent-devel
 BuildRequires: libssh2-devel
+BuildRequires: libtool
+BuildRequires: libxml2-devel
 %{?with_mysql:BuildRequires:   mysql-devel}
 BuildRequires: net-snmp-devel
 BuildRequires: openldap-devel >= 2.4.6
 BuildRequires: openssl-devel >= 0.9.7d
+BuildRequires: pcre-devel
 %{?with_pgsql:BuildRequires:   postgresql-devel}
+BuildRequires: rpmbuild(macros) >= 2.021
 %{?with_sqlite3:BuildRequires: sqlite3-devel}
+BuildRequires: tar >= 1:1.22
 BuildRequires: unixODBC-devel
-BuildRequires: rpmbuild(macros) >= 1.671
-Requires:      zabbix-server
-Requires:      zabbix-agentd
-Requires:      zabbix-frontend-php
+BuildRequires: xz
+BuildRequires: zlib-devel
+Requires:      %{name}-agentd = %{version}-%{release}
+Requires:      %{name}-frontend-php = %{version}-%{release}
+Requires:      %{name}-server = %{version}-%{release}
 BuildRoot:     %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
 
 %define                _sysconfdir     /etc/%{name}
@@ -60,13 +88,21 @@ BuildRoot:  %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
 %define                _webapps        /etc/webapps
 %define                _webapp         %{name}
 
+%if %{defined __compress_doc}
+%define                doc_cat         zcat
+%define                doc_suffix      .gz
+%else
+%define                doc_cat         cat
+%define                doc_suffix      %{nil}
+%endif
+
 %description
 Zabbix is software that monitors numerous parameters of a network and
-the servers on that network. It is a useful tool for monitoring
-the health and integrity of servers. Zabbix uses a flexible
-notification mechanism that allows users to configure email based
-alerts for virtually any event. All monitored parameters are stored in
-database. Zabbix offers excellent reporting and data visualisation
+the servers on that network. It is a useful tool for monitoring the
+health and integrity of servers. Zabbix uses a flexible notification
+mechanism that allows users to configure email based alerts for
+virtually any event. All monitored parameters are stored in a
+database. Zabbix offers excellent reporting and data visualisation
 features based on the stored data. Zabbix supports both polling and
 trapping. All Zabbix reports and statistics, as well as configuration
 parameters, are accessed through a web-based front end.
@@ -105,10 +141,12 @@ Wspólne pliki dla oprogramowania monitorującego Zabbix.
 Summary:       Zabbix Agent
 Summary(pl.UTF-8):     Agenta Zabbiksa
 Group:         Networking/Utilities
-Requires:      systemd-units >= 38
 Requires:      %{name}-common = %{version}-%{release}
+Requires:      systemd-units >= 38
 Obsoletes:     zabbix-agent-inetd
 Obsoletes:     zabbix-agent-standalone
+Requires(post,preun):  /sbin/chkconfig
+Requires:      rc-scripts
 
 %description agentd
 Zabbix agent collects data from the local system for a Zabbix server.
@@ -116,6 +154,34 @@ Zabbix agent collects data from the local system for a Zabbix server.
 %description agentd -l pl.UTF-8
 Agent zbiera dane z lokalnej maszyny dla serwera Zabbix.
 
+%package agent2
+Summary:       Zabbix Agent 2
+Group:         Networking/Utilities
+URL:           https://www.zabbix.com/documentation/current/manual/concepts/agent2
+Requires:      %{name}-common = %{version}-%{release}
+Requires(post,preun):  /sbin/chkconfig
+Requires:      rc-scripts
+
+%description agent2
+Zabbix agent 2 is a new generation of Zabbix agent and may be used in
+place of Zabbix agent.
+
+Zabbix agent 2 has been developed to:
+- reduce the number of TCP connections
+- have greater check concurrency
+- be easily extendible with plugins.
+
+A plugin should be able to:
+- provide trivial checks consisting of only a few simple lines of code
+- provide complex checks consisting of long-running scripts and
+  standalone data gathering with periodic sending back of the data
+- be a drop-in replacement for Zabbix agent (in that it supports all
+  the previous functionality)
+
+Passive checks work similarly to Zabbix agent. Active checks support
+scheduled/flexible intervals and check concurrency within one active
+server.
+
 %package frontend-php
 Summary:       PHP frontend for Zabbix
 Summary(pl.UTF-8):     Interfejs PHP dla Zabbiksa
@@ -123,19 +189,29 @@ Group:            Applications/WWW
 Requires:      php(bcmath)
 Requires:      php(core) >= %{php_min_version}
 Requires:      php(ctype)
+Requires:      php(filter)
 Requires:      php(gd)
 Requires:      php(gettext)
+Requires:      php(json)
 Requires:      php(mbstring)
+Requires:      php(openssl)
 Requires:      php(pcre)
 Requires:      php(session)
+Requires:      php(simplexml)
 Requires:      php(sockets)
 Requires:      php(xml)
 Requires:      php(xmlreader)
 Requires:      php(xmlwriter)
-%{?with_mysql:Requires:        php(mysql)}
-%{?with_pgsql:Requires:        php(pgsql)}
 Requires:      webapps
+Requires:      webserver(alias)
+Requires:      webserver(indexfile)
 Requires:      webserver(php)
+Suggests:      php(mysql)
+Suggests:      php(pgsql)
+Suggests:      php(sqlite3)
+# used with sqlite3
+Suggests:      php(sysvsem)
+BuildArch:     noarch
 
 %description frontend-php
 This package provides web based (PHP) frontend for Zabbix.
@@ -158,8 +234,9 @@ Ten pakiet zawiera program odpytujÄcy agenta Zabbiksa.
 Summary:       Zabbix proxy
 Summary(pl.UTF-8):     Proxy do Zabbiksa
 Group:         Networking/Utilities
-Requires:      systemd-units >= 38
 Requires:      %{name}-common = %{version}-%{release}
+Requires:      systemd-units >= 38
+Requires:      zabbix-proxy(db) = %{version}-%{release}
 
 %description proxy
 This package provides the Zabbix proxy.
@@ -167,6 +244,48 @@ This package provides the Zabbix proxy.
 %description proxy -l pl.UTF-8
 Ten pakiet zawiera proxy Zabbix.
 
+%package proxy-mysql
+Summary:       MySQL support for Zabbix proxy
+Summary(pl.UTF-8):     Obsługa MySQL dla proxy do Zabbiksa
+Group:         Networking/Utilities
+Provides:      %{name}-proxy(db) = %{version}-%{release}
+Obsoletes:     zabbix-proxy-postgresql
+Obsoletes:     zabbix-proxy-sqlite3
+
+%description proxy-mysql
+This package provides the Zabbix proxy binary with MySQL support.
+
+%description proxy-mysql -l pl.UTF-8
+Ten pakiet zawiera proxy Zabbix z obsługą MySQL.
+
+%package proxy-postgresql
+Summary:       PostgreSQL support for Zabbix proxy
+Summary(pl.UTF-8):     Obsługa PostgreSQL dla proxy do Zabbiksa
+Group:         Networking/Utilities
+Provides:      %{name}-proxy(db) = %{version}-%{release}
+Obsoletes:     zabbix-proxy-mysql
+Obsoletes:     zabbix-proxy-sqlite3
+
+%description proxy-postgresql
+This package provides the Zabbix proxy binary with PostgreSQL support.
+
+%description proxy-postgresql -l pl.UTF-8
+Ten pakiet zawiera proxy Zabbix z obsługą PostgreSQL.
+
+%package proxy-sqlite3
+Summary:       SQLite 3 support for Zabbix proxy
+Summary(pl.UTF-8):     Obsługa SQLite 3 dla proxy do Zabbiksa
+Group:         Networking/Utilities
+Provides:      %{name}-proxy(db) = %{version}-%{release}
+Obsoletes:     zabbix-proxy-mysql
+Obsoletes:     zabbix-proxy-postgresql
+
+%description proxy-sqlite3
+This package provides the Zabbix proxy binary with SQLite 3 support.
+
+%description proxy-sqlite3 -l pl.UTF-8
+Ten pakiet zawiera proxy Zabbix z obsługą SQLite 3.
+
 %package sender
 Summary:       Zabbix sender
 Summary(pl.UTF-8):     Program zawiadamiający Zabbiksa
@@ -182,11 +301,12 @@ Ten pakiet zawiera program zawiadamiający Zabbiksa.
 Summary:       Zabbix server
 Summary(pl.UTF-8):     Serwer Zabbiksa
 Group:         Networking/Utilities
-Requires:      systemd-units >= 38
 Requires:      %{name}-common = %{version}-%{release}
-Obsoletes:     %{name}-suckerd
-Obsoletes:     %{name}-trapper-inetd
-Obsoletes:     %{name}-trapper-standalone
+Requires:      %{name}-server(db) = %{version}-%{release}
+Requires:      systemd-units >= 38
+Obsoletes:     zabbix-suckerd
+Obsoletes:     zabbix-trapper-inetd
+Obsoletes:     zabbix-trapper-standalone
 
 %description server
 This package provides the Zabbix server.
@@ -194,75 +314,168 @@ This package provides the Zabbix server.
 %description server -l pl.UTF-8
 Ten pakiet zawiera serwer Zabbiksa.
 
+%package server-mysql
+Summary:       MySQL support for Zabbix server
+Summary(pl.UTF-8):     Obsługa MySQL sla serwera Zabbiksa
+Group:         Networking/Utilities
+Provides:      %{name}-server(db) = %{version}-%{release}
+Obsoletes:     zabbix-server-postgresql
+Obsoletes:     zabbix-server-sqlite3
+
+%description server-mysql
+This package provides the Zabbix server binary for use with MySQL
+database.
+
+%description server-mysql -l pl.UTF-8
+Ten pakiet zawiera serwer Zabbiksa z obsługą bazy danych MySQL.
+
+%package server-postgresql
+Summary:       PostgreSQL support for Zabbix server
+Summary(pl.UTF-8):     Obsługa PostgreSQL sla serwera Zabbiksa
+Group:         Networking/Utilities
+Provides:      %{name}-server(db) = %{version}-%{release}
+Obsoletes:     zabbix-server-mysql
+Obsoletes:     zabbix-server-sqlite3
+
+%description server-postgresql
+This package provides the Zabbix server binary for use with PostgreSQL
+database.
+
+%description server-postgresql -l pl.UTF-8
+Ten pakiet zawiera serwer Zabbiksa z obsługą bazy danych PostgreSQL.
+
 %package java
 Summary:       Zabbix Java Gateway
 Group:         Networking/Utilities
-Requires:      systemd-units >= 38
 Requires:      %{name}-common = %{version}-%{release}
+Requires:      systemd-units >= 38
 
 %description java
 This package provides the Zabbix Java Gateway.
 
 %prep
-%setup -q
-
+%setup -q -a100
 %patch0 -p1
+%patch1 -p1
+%patch2 -p1
+%patch3 -p1
+%patch4 -p1
 
 %build
-%configure \
-       %{?with_mysql:--with-mysql} \
-       %{?with_pgsql:--with-postgresql} \
-       %{?with_oracle:--with-oracle} \
-       %{?with_sqlite3:--with-sqlite3} \
-       --enable-server \
+%{__libtoolize}
+%{__aclocal} -I m4
+%{__autoconf}
+%{__autoheader}
+%{__automake}
+
+configure() {
+       %configure \
+       %{?with_java:ac_cv_prog_JAVAC=%{java_home}/bin/javac} \
+       %{?with_java:ac_cv_prog_JAR=%{java_home}/bin/jar} \
+       --enable-dependency-tracking \
        --enable-agent \
-       --enable-proxy \
+       %{__enable_disable agent2} \
        --enable-ipv6 \
        %{__enable_disable java} \
-       --with-jabber \
        --with-ldap \
        --with-libcurl \
+       --with-libevent \
+       --with-libpcre \
        --with-libxml2 \
        --with-net-snmp \
        --with-openipmi \
        --with-openssl \
        --with-ssh2 \
-       --with-unixodbc
+       --with-unixodbc \
+       "$@"
+}
+
+configure \
+       --disable-server \
+       --disable-proxy
 
 %{__make}
 
+for database in %{databases} ; do
+       if [ "$database" = "sqlite3" ] ; then
+               enable_server=""
+       else
+               enable_server="--enable-server"
+       fi
+       configure \
+               --with-$database \
+               $enable_server \
+               --enable-proxy
+
+       %{__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}
+done
+
 %install
 rm -rf $RPM_BUILD_ROOT
-install -d $RPM_BUILD_ROOT{%{_sysconfdir},/etc/webapps/%{_webapp},%{_appdir}} \
-       $RPM_BUILD_ROOT{/run/zabbix,/var/log/zabbix,%{systemdunitdir},%{tmpfilesdir}}
+install -d \
+       $RPM_BUILD_ROOT/etc/webapps/%{_webapp} \
+       $RPM_BUILD_ROOT{/etc/rc.d/init.d,%{_appdir}/frontends/php} \
+       $RPM_BUILD_ROOT{/var/run/zabbix,/var/log/zabbix,%{systemdunitdir},%{systemdtmpfilesdir}}
 
 %{__make} install \
        DESTDIR=$RPM_BUILD_ROOT \
        ZJG_DEST=$RPM_BUILD_ROOT%{_datadir}/zabbix_java
 
-cp -r frontends $RPM_BUILD_ROOT%{_appdir}
+for database in %{databases} ; do
+       if [ "$database" != "sqlite3" ] ; then
+               cp -p install-$database/%{_sbindir}/zabbix_server \
+                       $RPM_BUILD_ROOT%{_sbindir}/zabbix_server-$database
+       fi
+       cp -p install-$database/%{_sbindir}/zabbix_proxy \
+               $RPM_BUILD_ROOT%{_sbindir}/zabbix_proxy-$database
+done
+
+if [ -n "$database" ] ; then
+       ln -sf zabbix_server-$database $RPM_BUILD_ROOT%{_sbindir}/zabbix_server
+       ln -sf zabbix_proxy-$database $RPM_BUILD_ROOT%{_sbindir}/zabbix_proxy
+fi
+
+%if %{with sqlite3}
+install -d $RPM_BUILD_ROOT/var/lib/zabbix
+touch $RPM_BUILD_ROOT/var/lib/zabbix/zabbix.db
+%endif
+
+cp -r ui/* $RPM_BUILD_ROOT%{_appdir}/frontends/php
 
-install %{SOURCE1} $RPM_BUILD_ROOT%{_webapps}/%{_webapp}/apache.conf
-install %{SOURCE1} $RPM_BUILD_ROOT%{_webapps}/%{_webapp}/httpd.conf
+cp -p %{SOURCE1} $RPM_BUILD_ROOT%{_webapps}/%{_webapp}/apache.conf
+cp -p %{SOURCE1} $RPM_BUILD_ROOT%{_webapps}/%{_webapp}/httpd.conf
 
 install        %{SOURCE2} $RPM_BUILD_ROOT%{systemdunitdir}/zabbix_server.service
 install        %{SOURCE3} $RPM_BUILD_ROOT%{systemdunitdir}/zabbix_agentd.service
+install        %{SOURCE9} $RPM_BUILD_ROOT%{systemdunitdir}/zabbix_agent2.service
+install        %{SOURCE7} $RPM_BUILD_ROOT/etc/rc.d/init.d/zabbix_agentd
+install        %{SOURCE8} $RPM_BUILD_ROOT/etc/rc.d/init.d/zabbix_agent2
 install        %{SOURCE4} $RPM_BUILD_ROOT%{systemdunitdir}/zabbix_proxy.service
-install        %{SOURCE5} $RPM_BUILD_ROOT%{systemdunitdir}/zabbix_java.service
+%{?with_java:install   %{SOURCE5} $RPM_BUILD_ROOT%{systemdunitdir}/zabbix_java.service}
 
-install %{SOURCE6} $RPM_BUILD_ROOT%{tmpfilesdir}/zabbix.conf
+cp -p %{SOURCE6} $RPM_BUILD_ROOT%{systemdtmpfilesdir}/zabbix.conf
 
 mv $RPM_BUILD_ROOT%{_appdir}/frontends/php/conf $RPM_BUILD_ROOT%{_sysconfdir}/frontend
-ln -s %{_sysconfdir}/frontend $RPM_BUILD_ROOT%{_appdir}/frontends/php/conf
+ln -s --relative $RPM_BUILD_ROOT{%{_sysconfdir}/frontend,%{_appdir}/frontends/php/conf}
 touch $RPM_BUILD_ROOT%{_sysconfdir}/frontend/zabbix.conf.php
 
 %if %{with java}
 mv $RPM_BUILD_ROOT%{_datadir}/zabbix_java/settings.sh $RPM_BUILD_ROOT%{_sysconfdir}/zabbix_java.conf
-ln -s %{_sysconfdir}/zabbix_java.conf $RPM_BUILD_ROOT%{_datadir}/zabbix_java/settings.sh
+ln -s --relative $RPM_BUILD_ROOT{%{_sysconfdir}/zabbix_java.conf,%{_datadir}/zabbix_java/settings.sh}
 mv $RPM_BUILD_ROOT%{_datadir}/zabbix_java/lib/logback.xml $RPM_BUILD_ROOT%{_sysconfdir}/java-logback.xml
-ln -s %{_sysconfdir}/java-logback.xml $RPM_BUILD_ROOT%{_datadir}/zabbix_java/lib/logback.xml
+ln -s --relative $RPM_BUILD_ROOT{%{_sysconfdir}/java-logback.xml,%{_datadir}/zabbix_java/lib/logback.xml}
 mv $RPM_BUILD_ROOT%{_datadir}/zabbix_java/lib/logback-console.xml $RPM_BUILD_ROOT%{_sysconfdir}/java-logback-console.xml
-ln -s %{_sysconfdir}/java-logback-console.xml $RPM_BUILD_ROOT%{_datadir}/zabbix_java/lib/logback-console.xml
+ln -s --relative $RPM_BUILD_ROOT{%{_sysconfdir}/java-logback-console.xml,%{_datadir}/zabbix_java/lib/logback-console.xml}
 
 cat >$RPM_BUILD_ROOT%{_sbindir}/zabbix_java-start <<'EOF'
 #!/bin/sh
@@ -292,9 +505,13 @@ rm -rf $RPM_BUILD_ROOT
 %triggerun frontend-php -- apache < 2.2.0, apache-base
 %webapp_unregister httpd %{_webapp}
 
+%triggerpostun agent2 -- zabbix-agent2 < 6.0.15
+%systemd_trigger zabbix_agent2.service
+
 %pre common
 %groupadd -g 111 zabbix
 %useradd -d / -u 111 -g zabbix -c "Zabbix User" -s /bin/false zabbix
+%addusertogroup -q zabbix proc
 
 %postun common
 if [ "$1" = "0" ]; then
@@ -302,47 +519,86 @@ if [ "$1" = "0" ]; then
        %groupremove zabbix
 fi
 
-%post server
+%post server-mysql
 if [ "$1" = 1 ]; then
        %banner -e %{name}-server <<-EOF
        You should create database for Zabbix.
-%if %{with pgsql}
-       Running these should be fine in most cases:
-       psql -c 'create database zabbix'
-       zcat %{_docdir}/%{name}-server-%{version}/postgresql/schema.sql.gz | psql zabbix
-       zcat %{_docdir}/%{name}-server-%{version}/postgresql/images.sql.gz | psql zabbix
-       zcat %{_docdir}/%{name}-server-%{version}/postgresql/data.sql.gz | psql zabbix
-%else
-%if %{with mysql}
+
        Running these should be fine in most cases:
        mysqladmin create zabbix
-       zcat %{_docdir}/%{name}-server-%{version}/mysql/schema.sql.gz | mysql zabbix
-       zcat %{_docdir}/%{name}-server-%{version}/mysql/images.sql.gz | mysql zabbix
-       zcat %{_docdir}/%{name}-server-%{version}/mysql/data.sql.gz | mysql zabbix
-%else
-       Database template is available in %{_docdir}/%{name}-%{version}
-%endif
-%endif
-       %{?TODO:You also need zabbix-agent. install zabbix-agentd.}
+       %doc_cat %{_docdir}/%{name}-server-mysql-%{version}/schema.sql%{doc_suffix} | mysql zabbix
+       %doc_cat %{_docdir}/%{name}-server-mysql-%{version}/images.sql%{doc_suffix} | mysql zabbix
+       %doc_cat %{_docdir}/%{name}-server-mysql-%{version}/data.sql%{doc_suffix} | mysql zabbix
 EOF
 fi
+ln -sf zabbix_server-mysql %{_sbindir}/zabbix_server || :
+
+%post server-postgresql
+if [ "$1" = 1 ]; then
+       %banner -e %{name}-server <<-EOF
+       You should create database for Zabbix.
+
+       Running these should be fine in most cases:
+
+       createuser zabbix
+       createdb -O zabbix -E utf8 -T template0 zabbix
+       %doc_cat %{_docdir}/%{name}-server-postgresql-%{version}/schema.sql%{doc_suffix} | psql -U zabbix zabbix
+       %doc_cat %{_docdir}/%{name}-server-postgresql-%{version}/images.sql%{doc_suffix} | psql -U zabbix zabbix
+       %doc_cat %{_docdir}/%{name}-server-postgresql-%{version}/data.sql%{doc_suffix} | psql -U zabbix zabbix
+EOF
+fi
+ln -sf zabbix_server-postgresql %{_sbindir}/zabbix_server || :
+
+%post server
 %systemd_post zabbix_server.service
 
 %preun server
 %systemd_preun zabbix_server.service
 
 %postun server
+if [ "$1" = "0" ]; then
+       if [ -L %{_sbindir}/zabbix_server ] ; then
+               rm -f %{_sbindir}/zabbix_server || :
+       fi
+fi
 %systemd_reload
 
 %post agentd
+/sbin/chkconfig --add zabbix_agentd
+%service zabbix_agentd restart
 %systemd_post zabbix_agentd.service
 
 %preun agentd
+if [ "$1" = "0" ]; then
+       %service -q zabbix_agentd stop
+       /sbin/chkconfig --del zabbix_agentd
+fi
 %systemd_preun zabbix_agentd.service
 
 %postun agentd
 %systemd_reload
 
+%post agent2
+/sbin/chkconfig --add zabbix_agent2
+%service zabbix_agent2 restart
+%systemd_post zabbix_agent2.service
+
+%preun agent2
+if [ "$1" = "0" ]; then
+       %service -q zabbix_agent2 stop
+       /sbin/chkconfig --del zabbix_agent2
+fi
+%systemd_preun zabbix_agent2.service
+
+%post proxy-mysql
+ln -sf zabbix_proxy-mysql %{_sbindir}/zabbix_proxy || :
+
+%post proxy-postgresql
+ln -sf zabbix_proxy-postgresql %{_sbindir}/zabbix_proxy || :
+
+%post proxy-sqlite3
+ln -sf zabbix_proxy-sqlite3 %{_sbindir}/zabbix_proxy || :
+
 %post proxy
 %systemd_post zabbix_proxy.service
 
@@ -372,62 +628,105 @@ fi
 %attr(751,root,http) %dir %{_sysconfdir}/frontend
 %dir %{_appdir}
 %dir %{_appdir}/frontends
-%dir %attr(770,root,zabbix) /run/zabbix
+%dir %attr(770,root,zabbix) /var/run/zabbix
 %dir %attr(775,root,zabbix) /var/log/zabbix
+%{systemdtmpfilesdir}/zabbix.conf
 
 %files agentd
 %defattr(644,root,root,755)
+%doc conf/zabbix_agentd/*.conf
 %attr(640,root,zabbix) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/zabbix_agentd.conf
+%dir %attr(751,root,zabbix) %{_sysconfdir}/zabbix_agentd.conf.d
+%attr(754,root,root) /etc/rc.d/init.d/zabbix_agentd
 %attr(755,root,root) %{_sbindir}/zabbix_agentd
 %{_mandir}/man8/zabbix_agentd*
 %{systemdunitdir}/zabbix_agentd.service
 
+%if %{with agent2}
+%files agent2
+%defattr(644,root,root,755)
+%attr(640,root,zabbix) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/zabbix_agent2.conf
+%dir %attr(751,root,zabbix) %{_sysconfdir}/zabbix_agent2.d
+%dir %attr(751,root,zabbix) %{_sysconfdir}/zabbix_agent2.d/plugins.d
+%attr(640,root,zabbix) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/zabbix_agent2.d/plugins.d/*.conf
+%attr(754,root,root) /etc/rc.d/init.d/zabbix_agent2
+%attr(755,root,root) %{_sbindir}/zabbix_agent2
+%{_mandir}/man8/zabbix_agent2.8*
+%{systemdunitdir}/zabbix_agent2.service
+%endif
+
 %files frontend-php
 %defattr(644,root,root,755)
 %attr(750,root,http) %dir %{_webapps}/%{_webapp}
-%attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_webapps}/%{_webapp}/*
-%{_appdir}/frontends/php
+%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_webapps}/%{_webapp}/apache.conf
+%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_webapps}/%{_webapp}/httpd.conf
 %ghost %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/frontend/zabbix.conf.php
 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/frontend/.htaccess
 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/frontend/maintenance.inc.php
 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/frontend/zabbix.conf.php.example
+%{_appdir}/frontends/php
 
 %files get
 %defattr(644,root,root,755)
 %attr(755,root,root) %{_bindir}/zabbix_get
 %{_mandir}/man1/zabbix_get*
 
+%if %{any_database}
 %files proxy
 %defattr(644,root,root,755)
 %attr(640,root,zabbix) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/zabbix_proxy.conf
-%attr(755,root,root) %{_sbindir}/zabbix_proxy
+%dir %attr(751,root,zabbix) %{_sysconfdir}/zabbix_proxy.conf.d
+%ghost %{_sbindir}/zabbix_proxy
 %{_mandir}/man8/zabbix_proxy*
 %{systemdunitdir}/zabbix_proxy.service
+%endif
+
+%if %{with mysql}
+%files proxy-mysql
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_sbindir}/zabbix_proxy-mysql
+%endif
+
+%if %{with pgsql}
+%files proxy-postgresql
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_sbindir}/zabbix_proxy-postgresql
+%endif
+
+%if %{with sqlite3}
+%files proxy-sqlite3
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_sbindir}/zabbix_proxy-sqlite3
+%endif
 
 %files sender
 %defattr(644,root,root,755)
 %attr(755,root,root) %{_bindir}/zabbix_sender
 %{_mandir}/man1/zabbix_sender*
 
+%if %{any_database}
 %files server
 %defattr(644,root,root,755)
-%doc upgrades/dbpatches
+%attr(640,root,zabbix) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/zabbix_server.conf
+%dir %attr(751,root,zabbix) %{_sysconfdir}/zabbix_server.conf.d
+%ghost %{_sbindir}/zabbix_server
+%{_mandir}/man8/zabbix_server*
+%{systemdunitdir}/zabbix_server.service
+%endif
+
 %if %{with mysql}
-%doc database/mysql
+%files server-mysql
+%defattr(644,root,root,755)
+%doc database/mysql/*.sql
+%attr(755,root,root) %{_sbindir}/zabbix_server-mysql
 %endif
+
 %if %{with pgsql}
-%doc database/postgresql
-%endif
-%if %{with oracle}
-%doc database/oracle
-%endif
-%if %{with sqlite3}
-%doc database/sqlite3
+%files server-postgresql
+%defattr(644,root,root,755)
+%doc database/postgresql/*.sql
+%attr(755,root,root) %{_sbindir}/zabbix_server-postgresql
 %endif
-%attr(640,root,zabbix) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/zabbix_server.conf
-%attr(755,root,root) %{_sbindir}/zabbix_server
-%{_mandir}/man8/zabbix_server*
-%{systemdunitdir}/zabbix_server.service
 
 %if %{with java}
 %files java
This page took 0.146453 seconds and 4 git commands to generate.