diff --git a/SOURCES/0001-1st-man-pageis-for-redis-cli-redis-benchmark-redis-c.patch b/SOURCES/0001-1st-man-pageis-for-redis-cli-redis-benchmark-redis-c.patch new file mode 100644 index 0000000..f7e3dd1 --- /dev/null +++ b/SOURCES/0001-1st-man-pageis-for-redis-cli-redis-benchmark-redis-c.patch @@ -0,0 +1,652 @@ +From d68953c34d4d6987883ddf6158c3c69e7500667f Mon Sep 17 00:00:00 2001 +From: Remi Collet +Date: Thu, 8 Sep 2016 14:51:15 +0200 +Subject: [PATCH 1/3] 1st man pageis for - redis-cli - redis-benchmark - + redis-check-aof - redis-check-rdb - redis-server - redis.conf + +as redis-sentinel is a symlink to redis-server, same page can be used (also symlinked) +redis.conf can also be used for sentinel.conf +--- + man/man1/redis-benchmark.1 | 132 ++++++++++++++++++++++++++++ + man/man1/redis-check-aof.1 | 60 +++++++++++++ + man/man1/redis-check-rdb.1 | 53 ++++++++++++ + man/man1/redis-cli.1 | 171 +++++++++++++++++++++++++++++++++++++ + man/man1/redis-server.1 | 117 +++++++++++++++++++++++++ + man/man5/redis.conf.5 | 57 +++++++++++++ + 6 files changed, 590 insertions(+) + create mode 100644 man/man1/redis-benchmark.1 + create mode 100644 man/man1/redis-check-aof.1 + create mode 100644 man/man1/redis-check-rdb.1 + create mode 100644 man/man1/redis-cli.1 + create mode 100644 man/man1/redis-server.1 + create mode 100644 man/man5/redis.conf.5 + +diff --git a/man/man1/redis-benchmark.1 b/man/man1/redis-benchmark.1 +new file mode 100644 +index 0000000..a3e4c62 +--- /dev/null ++++ b/man/man1/redis-benchmark.1 +@@ -0,0 +1,132 @@ ++.TH REDIS-BENCHMARK 1 "2016" "Redis" "User commands" ++.SH NAME ++redis\-benchmark \- Redis benchmark ++ ++.SH SYNOPSIS ++.B redis\-benchmark ++[ options ] ++.LP ++ ++.SH DESCRIPTION ++\fBRedis\fP is an open source (BSD licensed), in-memory data structure store, ++used as database, cache and message broker, found at ++.B http://redis.io/ ++ ++The \fBredis\-benchmark\fP command is a command to benchmark redis-server. ++ ++.SH OPTIONS ++.TP 15 ++.B \-h \fIhostname\fP ++Server hostname (default: 127.0.0.1). ++.TP ++.B \-p \fIport\fP ++Server port (default: 6379). ++.TP ++.B \-s \fIsocket\fP ++Server socket (overrides hostname and port). ++.TP ++.B \-a \fIpassword\fP ++Password to use when connecting to the server. ++.TP ++.B \-c \fIclients\fP ++Number of parallel connections (default 50) ++.TP ++.B \-dnnum \fIdb\fP ++SELECT the specified db number (default 0) ++.TP ++.B \-k \fIboolean\fP ++1=keep alive 0=reconnect (default 1) ++.TP ++.B \-r \fIkeyspacelen\fP ++Use random keys for SET/GET/INCR, random values for SADD ++Using this option the benchmark will expand the string __rand_int__ ++inside an argument with a 12 digits number in the specified range ++from 0 to keyspacelen-1. The substitution changes every time a command ++is executed. Default tests use this to hit random keys in the ++specified range. ++.TP ++.B \-P \fInumreq\fP ++Pipeline requests. Default 1 (no pipeline). ++.TP ++.B \-e ++If server replies with errors, show them on stdout. ++(no more than 1 error per second is displayed) ++.TP ++.B \-q ++Quiet. Just show query/sec values ++.TP ++.B \-\-csv ++Output in CSV format ++.TP ++.B \-l ++Loop. Run the tests forever ++.TP ++.B \-t \fItests\fP ++Only run the comma separated list of tests. The test ++names are the same as the ones produced as output. ++.TP ++.B \-I ++Idle mode. Just open N idle connections and wait. ++ ++.SH EXAMPLES ++.TP 5 ++Run the benchmark with the default configuration against 127.0.0.1:6379: ++$ redis\-benchmark ++.TP ++Use 20 parallel clients, for a total of 100k requests, against 192.168.1.1: ++$ redis-benchmark \-h 192.168.1.1 \-p 6379 \-n 100000 \-c 20 ++.TP ++Fill 127.0.0.1:6379 with about 1 million keys only using the SET test: ++$ redis\-benchmark \-t set \-n 1000000 \-r 100000000 ++.TP ++Benchmark 127.0.0.1:6379 for a few commands producing CSV output: ++$ redis\-benchmark \-t ping,set,get \-n 100000 \-\-csv ++.TP ++Benchmark a specific command line: ++$ redis\-benchmark \-r 10000 \-n 10000 eval 'return redis.call("ping")' 0 ++.TP ++Fill a list with 10000 random elements: ++$ redis\-benchmark \-r 10000 \-n 10000 lpush mylist __rand_int__ ++.TP ++On user specified command lines __rand_int__ is replaced with a random integer ++with a range of values selected by the -r option. ++ ++ ++.SH BUGS ++See: ++.PD 0 ++.B http://redis.io/support ++and ++.B https://github.com/antirez/redis/issues ++ ++.SH COPYRIGHT ++Copyright \(co 2006\-2016 ++Salvatore Sanfilippo ++.P ++Redistribution and use in source and binary forms, with or without ++modification, are permitted provided that the following conditions are met: ++.TP 2 ++* ++Redistributions of source code must retain the above copyright notice, ++this list of conditions and the following disclaimer. ++.TP ++* ++Redistributions in binary form must reproduce the above copyright ++notice, this list of conditions and the following disclaimer in the ++documentation and/or other materials provided with the distribution. ++.TP ++* ++Neither the name of Redis nor the names of its contributors may be used ++to endorse or promote products derived from this software without specific ++prior written permission. ++.P ++THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ++ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED ++WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE ++DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ++ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES ++(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; ++LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ++ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ++(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS ++SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +diff --git a/man/man1/redis-check-aof.1 b/man/man1/redis-check-aof.1 +new file mode 100644 +index 0000000..1569fd9 +--- /dev/null ++++ b/man/man1/redis-check-aof.1 +@@ -0,0 +1,60 @@ ++.TH REDIS-CHECK-AOF 1 "2016" "Redis" "User commands" ++.SH NAME ++redis\-check\-aof \- Redis AOF file checker and repairer ++ ++.SH SYNOPSIS ++.B redis\-check\-aof ++[\-\-fix] ++.IR file.aof ++ ++.SH DESCRIPTION ++\fBRedis\fP is an open source (BSD licensed), in-memory data structure store, ++used as database, cache and message broker, found at ++.B http://redis.io/ ++ ++The \fBredis\-check\-aof\fP command to check or repair redis-server AOF files. ++ ++.SH OPTIONS ++.TP 15 ++.B \-\-fix ++Fix the file ++ ++ ++.SH BUGS ++See: ++.PD 0 ++.B http://redis.io/support ++and ++.B https://github.com/antirez/redis/issues ++ ++.SH COPYRIGHT ++Copyright \(co 2006\-2016 ++Salvatore Sanfilippo ++.P ++Redistribution and use in source and binary forms, with or without ++modification, are permitted provided that the following conditions are met: ++.TP 2 ++* ++Redistributions of source code must retain the above copyright notice, ++this list of conditions and the following disclaimer. ++.TP ++* ++Redistributions in binary form must reproduce the above copyright ++notice, this list of conditions and the following disclaimer in the ++documentation and/or other materials provided with the distribution. ++.TP ++* ++Neither the name of Redis nor the names of its contributors may be used ++to endorse or promote products derived from this software without specific ++prior written permission. ++.P ++THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ++ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED ++WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE ++DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ++ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES ++(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; ++LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ++ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ++(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS ++SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +diff --git a/man/man1/redis-check-rdb.1 b/man/man1/redis-check-rdb.1 +new file mode 100644 +index 0000000..0e798ab +--- /dev/null ++++ b/man/man1/redis-check-rdb.1 +@@ -0,0 +1,53 @@ ++.TH REDIS-CHECK-RDB 1 "2016" "Redis" "User commands" ++.SH NAME ++redis\-check\-aof \- Redis RDB file checker ++ ++.SH SYNOPSIS ++.B redis\-check\-aof ++.IR file.rdb ++ ++.SH DESCRIPTION ++\fBRedis\fP is an open source (BSD licensed), in-memory data structure store, ++used as database, cache and message broker, found at ++.B http://redis.io/ ++ ++The \fBredis\-check\-rdb\fP command to check redis-server RDB files. ++ ++.SH BUGS ++See: ++.PD 0 ++.B http://redis.io/support ++and ++.B https://github.com/antirez/redis/issues ++ ++.SH COPYRIGHT ++Copyright \(co 2006\-2016 ++Salvatore Sanfilippo ++.P ++Redistribution and use in source and binary forms, with or without ++modification, are permitted provided that the following conditions are met: ++.TP 2 ++* ++Redistributions of source code must retain the above copyright notice, ++this list of conditions and the following disclaimer. ++.TP ++* ++Redistributions in binary form must reproduce the above copyright ++notice, this list of conditions and the following disclaimer in the ++documentation and/or other materials provided with the distribution. ++.TP ++* ++Neither the name of Redis nor the names of its contributors may be used ++to endorse or promote products derived from this software without specific ++prior written permission. ++.P ++THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ++ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED ++WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE ++DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ++ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES ++(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; ++LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ++ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ++(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS ++SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +diff --git a/man/man1/redis-cli.1 b/man/man1/redis-cli.1 +new file mode 100644 +index 0000000..14f84df +--- /dev/null ++++ b/man/man1/redis-cli.1 +@@ -0,0 +1,171 @@ ++.TH REDIS-CLI 1 "2016" "Redis" "User commands" ++.SH NAME ++redis\-cli \- Redis client ++ ++.SH SYNOPSIS ++.B redis\-cli ++[ options ] [cmd [arg [arg ...]]] ++.LP ++ ++.SH DESCRIPTION ++\fBRedis\fP is an open source (BSD licensed), in-memory data structure store, ++used as database, cache and message broker, found at ++.B http://redis.io/ ++ ++The \fBredis-cli\fP command is a command line client to redis-server. ++ ++.SH OPTIONS ++.TP 15 ++.B \-h \fIhostname\fP ++Server hostname (default: 127.0.0.1). ++.TP ++.B \-p \fIport\fP ++Server port (default: 6379). ++.TP ++.B \-s \fIsocket\fP ++Server socket (overrides hostname and port). ++.TP ++.B \-a \fIpassword\fP ++Password to use when connecting to the server. ++.TP ++.B \-r \fIrepeat\fP ++Execute specified command N times. ++.TP ++.B \-i \fIinterval\fP ++When -r is used, waits \fIinterval\fP seconds per command. ++It is possible to specify sub-second times like -i 0.1. ++.TP ++.B \-n \fIdb\fP ++Database number. ++.TP ++.B \-x ++Read last argument from STDIN. ++.TP ++.B \-d \fIdelimiter\fP ++Multi-bulk delimiter in for raw formatting (default: \n). ++.TP ++.B \-c ++Enable cluster mode (follow -ASK and -MOVED redirections). ++.TP ++.B \-\-raw ++Use raw formatting for replies (default when STDOUT is not a tty). ++.TP ++.B \-\-no\-raw ++Force formatted output even when STDOUT is not a tty. ++.TP ++.B \-\-csv ++Output in CSV format. ++.TP ++.B \-\-stat ++Print rolling stats about server: mem, clients, ... ++.TP ++.B \-\-latency ++Enter a special mode continuously sampling latency. ++.TP ++.B \-\-latency\-history ++Like \-\-latency but tracking latency changes over time. ++Default time interval is 15 sec. Change it using -i. ++.TP ++.B \-\-latency\-dist ++Shows latency as a spectrum, requires xterm 256 colors. ++Default time interval is 1 sec. Change it using -i. ++.TP ++.B \-\-lru\-test ++Simulate a cache workload with an 80-20 distribution. ++.TP ++.B \-\-slave ++Simulate a slave showing commands received from the master. ++.TP ++.B \-\-rdb \fIfilename\fP ++Transfer an RDB dump from remote server to local file. ++.TP ++.B \-\-pipe ++Transfer raw Redis protocol from stdin to server. ++.TP ++.B \-\-pipe-timeout \fIn\fP ++In --pipe mode, abort with error if after sending all data. ++no reply is received within \fIn\fP seconds. ++Default timeout: 30. Use 0 to wait forever. ++.TP ++.B \-\-bigkeys ++Sample Redis keys looking for big keys. ++.TP ++.B \-\-scan ++List all keys using the SCAN command. ++.TP ++.B \-\-pattern \fIpat\fP ++Useful with --scan to specify a SCAN pattern. ++.TP ++.B \-\-intrinsic-latency \fIsec\fP ++Run a test to measure intrinsic system latency. ++The test will run for the specified amount of seconds. ++.TP ++.B \-\-eval \fIfile\fP ++Send an EVAL command using the Lua script at \fIfile\fP. ++.TP ++.B \-\-ldb ++Used with --eval enable the Redis Lua debugger. ++.TP ++.B \-\-ldb-sync-mode ++Like --ldb but uses the synchronous Lua debugger, in ++this mode the server is blocked and script changes are ++are not rolled back from the server memory. ++.TP ++.B \-\-help ++Output this help and exit. ++.TP ++.B \-\-version ++Output version and exit. ++ ++.SH EXAMPLES ++.TP ++cat /etc/passwd | redis-cli -x set mypasswd ++.TP ++redis-cli get mypasswd ++.TP ++redis-cli \-r 100 lpush mylist x ++.TP ++redis-cli \-r 100 \-i 1 info | grep used_memory_human: ++.TP ++redis-cli \-\-eval myscript.lua key1 key2 , arg1 arg2 arg3 ++.TP ++redis-cli \-\-scan \-\-pattern '*:12345*' ++ ++.SH BUGS ++See: ++.PD 0 ++.B http://redis.io/support ++and ++.B https://github.com/antirez/redis/issues ++ ++.SH COPYRIGHT ++Copyright \(co 2006\-2016 ++Salvatore Sanfilippo ++.P ++Redistribution and use in source and binary forms, with or without ++modification, are permitted provided that the following conditions are met: ++.TP 2 ++* ++Redistributions of source code must retain the above copyright notice, ++this list of conditions and the following disclaimer. ++.TP ++* ++Redistributions in binary form must reproduce the above copyright ++notice, this list of conditions and the following disclaimer in the ++documentation and/or other materials provided with the distribution. ++.TP ++* ++Neither the name of Redis nor the names of its contributors may be used ++to endorse or promote products derived from this software without specific ++prior written permission. ++.P ++THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ++ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED ++WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE ++DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ++ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES ++(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; ++LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ++ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ++(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS ++SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +diff --git a/man/man1/redis-server.1 b/man/man1/redis-server.1 +new file mode 100644 +index 0000000..d6edd25 +--- /dev/null ++++ b/man/man1/redis-server.1 +@@ -0,0 +1,117 @@ ++.TH REDIS-SERVER 1 "2016" "Redis" "User commands" ++.SH NAME ++redis\-server, redis\-sentinel \- Redis server ++ ++.SH SYNOPSIS ++.B redis\-server ++[ ++.IR configuration_file ++] [ options ] [ \-\-sentinel ] ++.LP ++.B redis\-sentinel ++[ ++.IR configuration_file ++] [ options ] ++ ++ ++.SH DESCRIPTION ++\fBRedis\fP is an open source (BSD licensed), in-memory data structure store, ++used as database, cache and message broker, found at ++.B http://redis.io/ ++.LP ++The \fBredis\-server\fP command is a command line to launch a Redis server. ++.LP ++The \fBredis\-sentinel\fP command is a symbolic link to the \fBredis\-server\fP ++command which imply the \fB\-\-sentionel\fP option. ++ ++.SH OPTIONS ++.TP 15 ++.B \- ++Read configuration from stdin. ++.TP ++.TP 15 ++.B \-\-sentinel ++Run in sentinel mode ++.TP ++.B \-\-test-memory \fImegabytes\fP ++Run a memory check and exit. ++.TP ++.PD 0 ++.B \-\-help ++.TP ++.PD 1 ++.B \-h ++Output this help and exit. ++.TP ++.PD 0 ++.B \-\-version ++.TP ++.PD 1 ++.B \-v ++Output version and exit. ++.P ++All parameters described in \fBredis.conf\fR file can be passed as ++command line option, e.g. ++.B \-\-port ++.IR port ++. ++ ++.SH EXAMPLES ++.TP 5 ++Run the server with default conf ++redis-server ++.TP ++Run the server with a configuration file ++redis-server /etc/redis/6379.conf ++.TP ++Run the server changing some default options ++redis-server --port 7777 --slaveof 127.0.0.1 8888 ++.TP ++Run the server with a configuration file and changing some options ++redis-server /etc/myredis.conf --loglevel verbose ++.TP ++Run in sentinel mode ++redis-server /etc/sentinel.conf --sentinel ++ ++.SH "SEE ALSO" ++.PP ++\fBredis.conf\fR(5) ++ ++.SH BUGS ++See: ++.PD 0 ++.B http://redis.io/support ++and ++.B https://github.com/antirez/redis/issues ++ ++.SH COPYRIGHT ++Copyright \(co 2006\-2016 ++Salvatore Sanfilippo ++.P ++Redistribution and use in source and binary forms, with or without ++modification, are permitted provided that the following conditions are met: ++.TP 2 ++* ++Redistributions of source code must retain the above copyright notice, ++this list of conditions and the following disclaimer. ++.TP ++* ++Redistributions in binary form must reproduce the above copyright ++notice, this list of conditions and the following disclaimer in the ++documentation and/or other materials provided with the distribution. ++.TP ++* ++Neither the name of Redis nor the names of its contributors may be used ++to endorse or promote products derived from this software without specific ++prior written permission. ++.P ++THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ++ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED ++WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE ++DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ++ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES ++(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; ++LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ++ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ++(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS ++SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +diff --git a/man/man5/redis.conf.5 b/man/man5/redis.conf.5 +new file mode 100644 +index 0000000..1e0c9c9 +--- /dev/null ++++ b/man/man5/redis.conf.5 +@@ -0,0 +1,57 @@ ++.TH REDIS.CONF 5 "2016" "Redis" "Configuration files" ++.SH NAME ++redis.conf, sentinel.conf - redis server configuration files. ++ ++.SH PARAMETERS ++.TP ++All empty lines or lines beginning with '#' are ignored. ++.TP ++See inline comments for parameters description. ++ ++.SH DESCRIPTION ++.TP ++\fBredis-server\fP read the configuration file passed as first argument. ++ ++.SH "SEE ALSO" ++.PP ++\fBredis\-server\fR(1) ++ ++ ++.SH BUGS ++See: ++.PD 0 ++.B http://redis.io/support ++and ++.B https://github.com/antirez/redis/issues ++ ++.SH COPYRIGHT ++Copyright \(co 2006\-2016 ++Salvatore Sanfilippo ++.P ++Redistribution and use in source and binary forms, with or without ++modification, are permitted provided that the following conditions are met: ++.TP 2 ++* ++Redistributions of source code must retain the above copyright notice, ++this list of conditions and the following disclaimer. ++.TP ++* ++Redistributions in binary form must reproduce the above copyright ++notice, this list of conditions and the following disclaimer in the ++documentation and/or other materials provided with the distribution. ++.TP ++* ++Neither the name of Redis nor the names of its contributors may be used ++to endorse or promote products derived from this software without specific ++prior written permission. ++.P ++THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ++ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED ++WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE ++DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ++ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES ++(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; ++LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ++ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ++(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS ++SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +-- +2.24.1 + diff --git a/SOURCES/icinga-conf.patch b/SOURCES/icinga-conf.patch new file mode 100644 index 0000000..1314f82 --- /dev/null +++ b/SOURCES/icinga-conf.patch @@ -0,0 +1,180 @@ +Author: Henrik Triem +Date: Mon Jun 27 18:00:00 2022 +0100 + + Re-arrange patches + +diff --git a/redis.conf b/redis.conf +--- a/redis.conf ++++ b/redis.conf +@@ -135,7 +135,7 @@ + + # Accept connections on the specified port, default is 6379 (IANA #815344). + # If port 0 is specified Redis will not listen on a TCP socket. +-port 6379 ++port 6380 + + # TCP listen() backlog. + # +@@ -152,7 +152,7 @@ + # incoming connections. There is no default, so Redis will not listen + # on a unix socket when not specified. + # +-# unixsocket /run/redis.sock ++# unixsocket /run/icingadb-redis/icingadb-redis-server.sock + # unixsocketperm 700 + + # Close the connection after a client is idle for N seconds (0 to disable) +@@ -192,7 +192,7 @@ + # default port, use: + # + # port 0 +-# tls-port 6379 ++# tls-port 6380 + + # Configure a X.509 certificate and private key to use for authenticating the + # server to connected clients, masters or cluster peers. These files should be +@@ -306,7 +306,7 @@ + # By default Redis does not run as a daemon. Use 'yes' if you need it. + # Note that Redis will write a pid file in /var/run/redis.pid when daemonized. + # When Redis is supervised by upstart or systemd, this parameter has no impact. +-daemonize no ++daemonize yes + + # If you run Redis from upstart or systemd, Redis can interact with your + # supervision tree. Options: +@@ -338,7 +338,7 @@ + # + # Note that on modern Linux systems "/run/redis.pid" is more conforming + # and should be used instead. +-pidfile /var/run/redis_6379.pid ++pidfile /run/icingadb-redis/icingadb-redis-server.pid + + # Specify the server verbosity level. + # This can be one of: +@@ -351,7 +351,7 @@ + # Specify the log file name. Also the empty string can be used to force + # Redis to log on the standard output. Note that if you use standard + # output for logging but daemonize, logs will be sent to /dev/null +-logfile "" ++logfile /var/log/icingadb-redis/icingadb-redis-server.log + + # To enable logging to the system logger, just set 'syslog-enabled' to yes, + # and optionally update the other syslog parameters to suit your needs. +@@ -501,7 +501,7 @@ + # The Append Only File will also be created inside this directory. + # + # Note that you must specify a directory here, not a file name. +-dir ./ ++dir /var/lib/icingadb-redis + + ################################# REPLICATION ################################# + +@@ -1022,7 +1022,7 @@ + # The format of the external ACL user file is exactly the same as the + # format that is used inside redis.conf to describe users. + # +-# aclfile /etc/redis/users.acl ++# aclfile /etc/icingadb-redis/users.acl + + # IMPORTANT NOTE: starting with Redis 6 "requirepass" is just a compatibility + # layer on top of the new ACL system. The option effect will be just setting +@@ -1581,7 +1581,7 @@ + # Make sure that instances running in the same system do not have + # overlapping cluster configuration file names. + # +-# cluster-config-file nodes-6379.conf ++# cluster-config-file nodes-6380.conf + + # Cluster node timeout is the amount of milliseconds a node must be unreachable + # for it to be considered in failure state. +@@ -1790,9 +1790,9 @@ + # Example: + # + # cluster-announce-ip 10.1.1.5 +-# cluster-announce-tls-port 6379 ++# cluster-announce-tls-port 6380 + # cluster-announce-port 0 +-# cluster-announce-bus-port 6380 ++# cluster-announce-bus-port 6381 + + ################################## SLOW LOG ################################### + +diff --git a/sentinel.conf b/sentinel.conf +--- a/sentinel.conf ++++ b/sentinel.conf +@@ -7,22 +7,22 @@ + + # port + # The port that this sentinel instance will run on +-port 26379 ++port 26380 + + # By default Redis Sentinel does not run as a daemon. Use 'yes' if you need it. +-# Note that Redis will write a pid file in /var/run/redis-sentinel.pid when +-# daemonized. +-daemonize no ++# Note that Redis will write a pid file in /var/run/icingadb-redis-sentinel.pid ++# when daemonized. ++daemonize yes + + # When running daemonized, Redis Sentinel writes a pid file in +-# /var/run/redis-sentinel.pid by default. You can specify a custom pid file +-# location here. +-pidfile /var/run/redis-sentinel.pid ++# /var/run/icingadb-redis-sentinel.pid by default. You can specify a custom ++# pid file location here. ++pidfile /run/icingadb-sentinel/icingadb-redis-sentinel.pid + + # Specify the log file name. Also the empty string can be used to force + # Sentinel to log on the standard output. Note that if you use standard + # output for logging but daemonize, logs will be sent to /dev/null +-logfile "" ++logfile /var/log/icingadb-redis/icingadb-redis-sentinel.log + + # sentinel announce-ip + # sentinel announce-port +@@ -51,7 +51,7 @@ + # For Redis Sentinel to chdir to /tmp at startup is the simplest thing + # for the process to don't interfere with administrative tasks such as + # unmounting filesystems. +-dir /tmp ++dir /var/lib/icingadb-redis + + # sentinel monitor + # +@@ -70,7 +70,7 @@ + # + # Note: master name should not include special characters or spaces. + # The valid charset is A-z 0-9 and the three characters ".-_". +-sentinel monitor mymaster 127.0.0.1 6379 2 ++sentinel monitor mymaster 127.0.0.1 6380 2 + + # sentinel auth-pass + # +@@ -147,7 +147,7 @@ + # The format of the external ACL user file is exactly the same as the + # format that is used inside redis.conf to describe users. + # +-# aclfile /etc/redis/sentinel-users.acl ++# aclfile /etc/icingadb-redis/icingadb-sentinel-users.acl + + # requirepass + # +@@ -250,7 +250,7 @@ + # + # Example: + # +-# sentinel notification-script mymaster /var/redis/notify.sh ++# sentinel notification-script mymaster /var/icingadb-redis/notify.sh + + # CLIENTS RECONFIGURATION SCRIPT + # +@@ -275,7 +275,7 @@ + # + # Example: + # +-# sentinel client-reconfig-script mymaster /var/redis/reconfig.sh ++# sentinel client-reconfig-script mymaster /var/icingadb-redis/reconfig.sh + + # SECURITY + # diff --git a/SOURCES/icinga-deps.patch b/SOURCES/icinga-deps.patch new file mode 100644 index 0000000..5620a06 --- /dev/null +++ b/SOURCES/icinga-deps.patch @@ -0,0 +1,196 @@ +Author: Henrik Triem +Date: Mon Jun 27 18:00:00 2022 +0100 + + Re-arrange patches + +diff --git a/deps/hiredis/Makefile b/deps/hiredis/Makefile +--- a/deps/hiredis/Makefile ++++ b/deps/hiredis/Makefile +@@ -24,7 +24,7 @@ INSTALL_LIBRARY_PATH= $(DESTDIR)$(PREFIX + INSTALL_PKGCONF_PATH= $(INSTALL_LIBRARY_PATH)/$(PKGCONF_PATH) + + # redis-server configuration used for testing +-REDIS_PORT=56379 ++REDIS_PORT=56380 + REDIS_SERVER=redis-server + define REDIS_TEST_CONFIG + daemonize yes + +diff --git a/deps/hiredis/test.c b/deps/hiredis/test.c +--- a/deps/hiredis/test.c ++++ b/deps/hiredis/test.c +@@ -799,7 +799,7 @@ static void test_allocator_injection(voi + hiredisSetAllocators(&ha); + + test("redisContext uses injected allocators: "); +- redisContext *c = redisConnect("localhost", 6379); ++ redisContext *c = redisConnect("localhost", 6380); + test_cond(c == NULL); + + test("redisReader uses injected allocators: "); +@@ -823,12 +823,12 @@ static void test_blocking_connection_err + struct addrinfo hints = {.ai_family = AF_INET}; + struct addrinfo *ai_tmp = NULL; + +- int rv = getaddrinfo(HIREDIS_BAD_DOMAIN, "6379", &hints, &ai_tmp); ++ int rv = getaddrinfo(HIREDIS_BAD_DOMAIN, "6380", &hints, &ai_tmp); + if (rv != 0) { + // Address does *not* exist + test("Returns error when host cannot be resolved: "); + // First see if this domain name *actually* resolves to NXDOMAIN +- c = redisConnect(HIREDIS_BAD_DOMAIN, 6379); ++ c = redisConnect(HIREDIS_BAD_DOMAIN, 6380); + test_cond( + c->err == REDIS_ERR_OTHER && + (strcmp(c->errstr, "Name or service not known") == 0 || +@@ -1885,7 +1885,7 @@ int main(int argc, char **argv) { + struct config cfg = { + .tcp = { + .host = "127.0.0.1", +- .port = 6379 ++ .port = 6380 + }, + .unix_sock = { + .path = "/tmp/redis.sock" +diff --git a/deps/hiredis/test.sh b/deps/hiredis/test.sh +--- a/deps/hiredis/test.sh ++++ b/deps/hiredis/test.sh +@@ -1,7 +1,7 @@ + #!/bin/sh -ue + + REDIS_SERVER=${REDIS_SERVER:-redis-server} +-REDIS_PORT=${REDIS_PORT:-56379} ++REDIS_PORT=${REDIS_PORT:-56380} + REDIS_SSL_PORT=${REDIS_SSL_PORT:-56443} + TEST_SSL=${TEST_SSL:-0} + SKIPS_AS_FAILS=${SKIPS_AS_FAILS-:0} + +diff --git a/deps/hiredis/examples/example-ae.c b/deps/hiredis/examples/example-ae.c +--- a/deps/hiredis/examples/example-ae.c ++++ b/deps/hiredis/examples/example-ae.c +@@ -43,7 +43,7 @@ void disconnectCallback(const redisAsync + int main (int argc, char **argv) { + signal(SIGPIPE, SIG_IGN); + +- redisAsyncContext *c = redisAsyncConnect("127.0.0.1", 6379); ++ redisAsyncContext *c = redisAsyncConnect("127.0.0.1", 6380); + if (c->err) { + /* Let *c leak for now... */ + printf("Error: %s\n", c->errstr); + +diff --git a/deps/hiredis/examples/example-glib.c b/deps/hiredis/examples/example-glib.c +--- a/deps/hiredis/examples/example-glib.c ++++ b/deps/hiredis/examples/example-glib.c +@@ -52,7 +52,7 @@ main (gint argc G_GNUC_UNUSED, + GMainContext *context = NULL; + GSource *source; + +- ac = redisAsyncConnect("127.0.0.1", 6379); ++ ac = redisAsyncConnect("127.0.0.1", 6380); + if (ac->err) { + g_printerr("%s\n", ac->errstr); + exit(EXIT_FAILURE); + +diff --git a/deps/hiredis/examples/example-ivykis.c b/deps/hiredis/examples/example-ivykis.c +--- a/deps/hiredis/examples/example-ivykis.c ++++ b/deps/hiredis/examples/example-ivykis.c +@@ -39,7 +39,7 @@ int main (int argc, char **argv) { + + iv_init(); + +- redisAsyncContext *c = redisAsyncConnect("127.0.0.1", 6379); ++ redisAsyncContext *c = redisAsyncConnect("127.0.0.1", 6380); + if (c->err) { + /* Let *c leak for now... */ + printf("Error: %s\n", c->errstr); + +diff --git a/deps/hiredis/examples/example-libev.c b/deps/hiredis/examples/example-libev.c +--- a/deps/hiredis/examples/example-libev.c ++++ b/deps/hiredis/examples/example-libev.c +@@ -37,7 +37,7 @@ int main (int argc, char **argv) { + signal(SIGPIPE, SIG_IGN); + #endif + +- redisAsyncContext *c = redisAsyncConnect("127.0.0.1", 6379); ++ redisAsyncContext *c = redisAsyncConnect("127.0.0.1", 6380); + if (c->err) { + /* Let *c leak for now... */ + printf("Error: %s\n", c->errstr); + +diff --git a/deps/hiredis/examples/example-libevent.c b/deps/hiredis/examples/example-libevent.c +--- a/deps/hiredis/examples/example-libevent.c ++++ b/deps/hiredis/examples/example-libevent.c +@@ -44,7 +44,7 @@ int main (int argc, char **argv) { + + struct event_base *base = event_base_new(); + redisOptions options = {0}; +- REDIS_OPTIONS_SET_TCP(&options, "127.0.0.1", 6379); ++ REDIS_OPTIONS_SET_TCP(&options, "127.0.0.1", 6380); + struct timeval tv = {0}; + tv.tv_sec = 1; + options.connect_timeout = &tv; + +diff --git a/deps/hiredis/examples/example-libuv.c b/deps/hiredis/examples/example-libuv.c +--- a/deps/hiredis/examples/example-libuv.c ++++ b/deps/hiredis/examples/example-libuv.c +@@ -54,7 +54,7 @@ int main (int argc, char **argv) { + + uv_loop_t* loop = uv_default_loop(); + +- redisAsyncContext *c = redisAsyncConnect("127.0.0.1", 6379); ++ redisAsyncContext *c = redisAsyncConnect("127.0.0.1", 6380); + if (c->err) { + /* Let *c leak for now... */ + printf("Error: %s\n", c->errstr); + +diff --git a/deps/hiredis/examples/example-macosx.c b/deps/hiredis/examples/example-macosx.c +--- a/deps/hiredis/examples/example-macosx.c ++++ b/deps/hiredis/examples/example-macosx.c +@@ -44,7 +44,7 @@ int main (int argc, char **argv) { + return 1; + } + +- redisAsyncContext *c = redisAsyncConnect("127.0.0.1", 6379); ++ redisAsyncContext *c = redisAsyncConnect("127.0.0.1", 6380); + if (c->err) { + /* Let *c leak for now... */ + printf("Error: %s\n", c->errstr); + +diff --git a/deps/hiredis/examples/example-push.c b/deps/hiredis/examples/example-push.c +--- a/deps/hiredis/examples/example-push.c ++++ b/deps/hiredis/examples/example-push.c +@@ -109,7 +109,7 @@ int main(int argc, char **argv) { + redisReply *reply; + + const char *hostname = (argc > 1) ? argv[1] : "127.0.0.1"; +- int port = (argc > 2) ? atoi(argv[2]) : 6379; ++ int port = (argc > 2) ? atoi(argv[2]) : 6380; + + redisOptions o = {0}; + REDIS_OPTIONS_SET_TCP(&o, hostname, port); + +diff --git a/deps/hiredis/examples/example-qt.cpp b/deps/hiredis/examples/example-qt.cpp +--- a/deps/hiredis/examples/example-qt.cpp ++++ b/deps/hiredis/examples/example-qt.cpp +@@ -19,7 +19,7 @@ void getCallback(redisAsyncContext *, vo + + void ExampleQt::run() { + +- m_ctx = redisAsyncConnect("localhost", 6379); ++ m_ctx = redisAsyncConnect("localhost", 6380); + + if (m_ctx->err) { + cerr << "Error: " << m_ctx->errstr << endl; + +diff --git a/deps/hiredis/examples/example.c b/deps/hiredis/examples/example.c +--- a/deps/hiredis/examples/example.c ++++ b/deps/hiredis/examples/example.c +@@ -21,7 +21,7 @@ int main(int argc, char **argv) { + } + } + +- int port = (argc > 2) ? atoi(argv[2]) : 6379; ++ int port = (argc > 2) ? atoi(argv[2]) : 6380; + + struct timeval timeout = { 1, 500000 }; // 1.5 seconds + if (isunix) { diff --git a/SOURCES/icinga-src.patch b/SOURCES/icinga-src.patch new file mode 100644 index 0000000..e031771 --- /dev/null +++ b/SOURCES/icinga-src.patch @@ -0,0 +1,95 @@ +Author: Henrik Triem +Date: Mon Jun 27 18:00:00 2022 +0100 + + Re-arrange patches + +diff --git a/src/config.c b/src/config.c +--- a/src/config.c ++++ b/src/config.c +@@ -3016,7 +3016,7 @@ standardConfig static_configs[] = { + + /* Integer configs */ + createIntConfig("databases", NULL, IMMUTABLE_CONFIG, 1, INT_MAX, server.dbnum, 16, INTEGER_CONFIG, NULL, NULL), +- createIntConfig("port", NULL, MODIFIABLE_CONFIG, 0, 65535, server.port, 6379, INTEGER_CONFIG, NULL, updatePort), /* TCP port. */ ++ createIntConfig("port", NULL, MODIFIABLE_CONFIG, 0, 65535, server.port, 6380, INTEGER_CONFIG, NULL, updatePort), /* TCP port. */ + createIntConfig("io-threads", NULL, DEBUG_CONFIG | IMMUTABLE_CONFIG, 1, 128, server.io_threads_num, 1, INTEGER_CONFIG, NULL, NULL), /* Single threaded by default */ + createIntConfig("auto-aof-rewrite-percentage", NULL, MODIFIABLE_CONFIG, 0, INT_MAX, server.aof_rewrite_perc, 100, INTEGER_CONFIG, NULL, NULL), + createIntConfig("cluster-replica-validity-factor", "cluster-slave-validity-factor", MODIFIABLE_CONFIG, 0, INT_MAX, server.cluster_slave_validity_factor, 10, INTEGER_CONFIG, NULL, NULL), /* Slave max data age factor. */ + +diff --git a/src/redis-benchmark.c b/src/redis-benchmark.c +--- a/src/redis-benchmark.c ++++ b/src/redis-benchmark.c +@@ -1741,7 +1741,7 @@ int main(int argc, char **argv) { + config.idlemode = 0; + config.clients = listCreate(); + config.conn_info.hostip = sdsnew("127.0.0.1"); +- config.conn_info.hostport = 6379; ++ config.conn_info.hostport = 6380; + config.hostsocket = NULL; + config.tests = NULL; + config.conn_info.input_dbnum = 0; + +diff --git a/src/redis-cli.c b/src/redis-cli.c +--- a/src/redis-cli.c ++++ b/src/redis-cli.c +@@ -8858,7 +8858,7 @@ int main(int argc, char **argv) { + + memset(&config.sslconfig, 0, sizeof(config.sslconfig)); + config.conn_info.hostip = sdsnew("127.0.0.1"); +- config.conn_info.hostport = 6379; ++ config.conn_info.hostport = 6380; + config.hostsocket = NULL; + config.repeat = 1; + config.interval = 0; + +diff --git a/src/sentinel.c b/src/sentinel.c +--- a/src/sentinel.c ++++ b/src/sentinel.c +@@ -49,7 +49,7 @@ extern SSL_CTX *redis_tls_ctx; + extern SSL_CTX *redis_tls_client_ctx; + #endif + +-#define REDIS_SENTINEL_PORT 26379 ++#define REDIS_SENTINEL_PORT 26380 + + /* ======================== Sentinel global state =========================== */ + + +diff --git a/src/server.c b/src/server.c +--- a/src/server.c ++++ b/src/server.c +@@ -1915,7 +1915,7 @@ void initServerConfig(void) { + + /* Replication related */ + server.masterhost = NULL; +- server.masterport = 6379; ++ server.masterport = 6380; + server.master = NULL; + server.cached_master = NULL; + server.master_initial_offset = -1; + +diff --git a/src/Makefile b/src/Makefile +--- a/src/Makefile ++++ b/src/Makefile +@@ -319,15 +319,15 @@ QUIET_LINK = @printf ' %b %b\n' $(LIN + QUIET_INSTALL = @printf ' %b %b\n' $(LINKCOLOR)INSTALL$(ENDCOLOR) $(BINCOLOR)$@$(ENDCOLOR) 1>&2; + endif + +-REDIS_SERVER_NAME=redis-server$(PROG_SUFFIX) +-REDIS_SENTINEL_NAME=redis-sentinel$(PROG_SUFFIX) ++REDIS_SERVER_NAME=icingadb-redis-server$(PROG_SUFFIX) ++REDIS_SENTINEL_NAME=icingadb-redis-sentinel$(PROG_SUFFIX) + REDIS_SERVER_OBJ=adlist.o quicklist.o ae.o anet.o dict.o server.o sds.o zmalloc.o lzf_c.o lzf_d.o pqsort.o zipmap.o sha1.o ziplist.o release.o networking.o util.o object.o db.o replication.o rdb.o t_string.o t_list.o t_set.o t_zset.o t_hash.o config.o aof.o pubsub.o multi.o debug.o sort.o intset.o syncio.o cluster.o crc16.o endianconv.o slowlog.o eval.o bio.o rio.o rand.o memtest.o syscheck.o crcspeed.o crc64.o bitops.o sentinel.o notify.o setproctitle.o blocked.o hyperloglog.o latency.o sparkline.o redis-check-rdb.o redis-check-aof.o geo.o lazyfree.o module.o evict.o expire.o geohash.o geohash_helper.o childinfo.o defrag.o siphash.o rax.o t_stream.o listpack.o localtime.o lolwut.o lolwut5.o lolwut6.o acl.o tracking.o connection.o tls.o sha256.o timeout.o setcpuaffinity.o monotonic.o mt19937-64.o resp_parser.o call_reply.o script_lua.o script.o functions.o function_lua.o commands.o +-REDIS_CLI_NAME=redis-cli$(PROG_SUFFIX) ++REDIS_CLI_NAME=icingadb-redis-cli$(PROG_SUFFIX) + REDIS_CLI_OBJ=anet.o adlist.o dict.o redis-cli.o zmalloc.o release.o ae.o redisassert.o crcspeed.o crc64.o siphash.o crc16.o monotonic.o cli_common.o mt19937-64.o +-REDIS_BENCHMARK_NAME=redis-benchmark$(PROG_SUFFIX) ++REDIS_BENCHMARK_NAME=icingadb-redis-benchmark$(PROG_SUFFIX) + REDIS_BENCHMARK_OBJ=ae.o anet.o redis-benchmark.o adlist.o dict.o zmalloc.o redisassert.o release.o crcspeed.o crc64.o siphash.o crc16.o monotonic.o cli_common.o mt19937-64.o +-REDIS_CHECK_RDB_NAME=redis-check-rdb$(PROG_SUFFIX) +-REDIS_CHECK_AOF_NAME=redis-check-aof$(PROG_SUFFIX) ++REDIS_CHECK_RDB_NAME=icingadb-redis-check-rdb$(PROG_SUFFIX) ++REDIS_CHECK_AOF_NAME=icingadb-redis-check-aof$(PROG_SUFFIX) + ALL_SOURCES=$(sort $(patsubst %.o,%.c,$(REDIS_SERVER_OBJ) $(REDIS_CLI_OBJ) $(REDIS_BENCHMARK_OBJ))) + + all: $(REDIS_SERVER_NAME) $(REDIS_SENTINEL_NAME) $(REDIS_CLI_NAME) $(REDIS_BENCHMARK_NAME) $(REDIS_CHECK_RDB_NAME) $(REDIS_CHECK_AOF_NAME) diff --git a/SOURCES/icinga-utils.patch b/SOURCES/icinga-utils.patch new file mode 100644 index 0000000..18533c6 --- /dev/null +++ b/SOURCES/icinga-utils.patch @@ -0,0 +1,73 @@ +diff --git a/utils/generate-commands-json.py b/utils/generate-commands-json.py +--- a/utils/generate-commands-json.py ++++ b/utils/generate-commands-json.py +@@ -103,11 +103,11 @@ srcdir = os.path.abspath(os.path.dirname + if __name__ == '__main__': + opts = { + 'description': 'Transform the output from `redis-cli --json` using COMMAND and COMMAND DOCS to a single commands.json format.', +- 'epilog': f'Usage example: {argv[0]} --cli src/redis-cli --port 6379 > commands.json' ++ 'epilog': f'Usage example: {argv[0]} --cli src/redis-cli --port 6380 > commands.json' + } + parser = argparse.ArgumentParser(**opts) + parser.add_argument('--host', type=str, default='localhost') +- parser.add_argument('--port', type=int, default=6379) ++ parser.add_argument('--port', type=int, default=6380) + parser.add_argument('--cli', type=str, default='%s/redis-cli' % srcdir) + args = parser.parse_args() + + +diff --git a/utils/install_server.sh b/utils/install_server.sh +--- a/utils/install_server.sh ++++ b/utils/install_server.sh +@@ -60,7 +60,7 @@ SCRIPT=$(readlink -f $0) + SCRIPTPATH=$(dirname $SCRIPT) + + #Initial defaults +-_REDIS_PORT=6379 ++_REDIS_PORT=6380 + _MANUAL_EXECUTION=false + + echo "Welcome to the redis service installer" +@@ -212,7 +212,7 @@ REDIS_CHKCONFIG_INFO=\ + # chkconfig: - 58 74\n + # description: redis_${REDIS_PORT} is the redis daemon.\n + ### BEGIN INIT INFO\n +-# Provides: redis_6379\n ++# Provides: redis_6380\n + # Required-Start: \$network \$local_fs \$remote_fs\n + # Required-Stop: \$network \$local_fs \$remote_fs\n + # Default-Start: 2 3 4 5\n + +diff --git a/utils/redis-sha1.rb b/utils/redis-sha1.rb +--- a/utils/redis-sha1.rb ++++ b/utils/redis-sha1.rb +@@ -46,7 +46,7 @@ def redisSha1(opts={}) + end + + host = ARGV[0] || "127.0.0.1" +-port = ARGV[1] || "6379" ++port = ARGV[1] || "6380" + db = ARGV[2] || "0" + puts "Performing SHA1 of Redis server #{host} #{port} DB: #{db}" + p "Dataset SHA1: #{redisSha1(:host => host, :port => port.to_i, :db => db)}" + +diff --git a/utils/redis_init_script b/utils/redis_init_script +--- a/utils/redis_init_script ++++ b/utils/redis_init_script +@@ -4,14 +4,14 @@ + # as it does use of the /proc filesystem. + + ### BEGIN INIT INFO +-# Provides: redis_6379 ++# Provides: redis_6380 + # Default-Start: 2 3 4 5 + # Default-Stop: 0 1 6 + # Short-Description: Redis data structure server + # Description: Redis data structure server. See https://redis.io + ### END INIT INFO + +-REDISPORT=6379 ++REDISPORT=6380 + EXEC=/usr/local/bin/redis-server + CLIEXEC=/usr/local/bin/redis-cli + diff --git a/SOURCES/icinga-x509.service b/SOURCES/icinga-x509.service new file mode 100644 index 0000000..e76115f --- /dev/null +++ b/SOURCES/icinga-x509.service @@ -0,0 +1,11 @@ +[Unit] +Description=Icinga Certificate Monitoring Module Jobs Runner + +[Service] +Type=simple +User=apache +ExecStart=/usr/bin/icingacli x509 jobs run +Restart=on-success + +[Install] +WantedBy=multi-user.target diff --git a/SOURCES/icingadb-redis-limit-systemd b/SOURCES/icingadb-redis-limit-systemd new file mode 100644 index 0000000..a792937 --- /dev/null +++ b/SOURCES/icingadb-redis-limit-systemd @@ -0,0 +1,14 @@ +# If you need to change max open file limit +# for example, when you change maxclient in configuration +# you can change the LimitNOFILE value below. +# See "man systemd.exec" for more information. + +# Slave nodes on large system may take lot of time to start. +# You may need to uncomment TimeoutStartSec and TimeoutStopSec +# directives below and raise their value. +# See "man systemd.service" for more information. + +[Service] +LimitNOFILE=10240 +#TimeoutStartSec=90s +#TimeoutStopSec=90s diff --git a/SOURCES/icingadb-redis-sentinel.service b/SOURCES/icingadb-redis-sentinel.service new file mode 100644 index 0000000..92c88d8 --- /dev/null +++ b/SOURCES/icingadb-redis-sentinel.service @@ -0,0 +1,18 @@ +[Unit] +Description=IcingaDB Redis Sentinel +After=network.target +After=network-online.target +Wants=network-online.target + +[Service] +ExecStart=/usr/bin/icingadb-redis-sentinel /etc/icingadb-redis/icingadb-sentinel.conf --daemonize no --supervised systemd +ExecStop=/usr/libexec/icingadb-redis-shutdown icingadb-sentinel +Type=notify +User=icingadb-redis +Group=icingadb-redis +RuntimeDirectory=icingadb-redis +RuntimeDirectoryMode=0755 + +[Install] +WantedBy=multi-user.target + diff --git a/SOURCES/icingadb-redis-shutdown b/SOURCES/icingadb-redis-shutdown new file mode 100644 index 0000000..803d865 --- /dev/null +++ b/SOURCES/icingadb-redis-shutdown @@ -0,0 +1,40 @@ +#!/bin/bash +# +# Wrapper to close properly redis and sentinel +test x"$REDIS_DEBUG" != x && set -x + +REDIS_CLI=/usr/bin/icingadb-redis-cli + +# Retrieve service name +SERVICE_NAME="$1" +if [ -z "$SERVICE_NAME" ]; then + SERVICE_NAME=icingadb-redis +fi + +# Get the proper config file based on service name +CONFIG_FILE="/etc/icingadb-redis/$SERVICE_NAME.conf" + +# Use awk to retrieve host, port from config file +HOST=`awk '/^[[:blank:]]*bind/ { print $2 }' $CONFIG_FILE | tail -n1` +PORT=`awk '/^[[:blank:]]*port/ { print $2 }' $CONFIG_FILE | tail -n1` +PASS=`awk '/^[[:blank:]]*requirepass/ { print $2 }' $CONFIG_FILE | tail -n1` +SOCK=`awk '/^[[:blank:]]*unixsocket\s/ { print $2 }' $CONFIG_FILE | tail -n1` + +# Just in case, use default host, port +HOST=${HOST:-127.0.0.1} +if [ "$SERVICE_NAME" = icingadb-redis ]; then + PORT=${PORT:-6380} +else + PORT=${PORT:-26739} +fi + +# Setup additional parameters +# e.g password-protected redis instances +[ -z "$PASS" ] || ADDITIONAL_PARAMS="-a $PASS" + +# shutdown the service properly +if [ -e "$SOCK" ] ; then + $REDIS_CLI -s $SOCK $ADDITIONAL_PARAMS shutdown +else + $REDIS_CLI -h $HOST -p $PORT $ADDITIONAL_PARAMS shutdown +fi diff --git a/SOURCES/icingadb-redis.logrotate b/SOURCES/icingadb-redis.logrotate new file mode 100644 index 0000000..ffade00 --- /dev/null +++ b/SOURCES/icingadb-redis.logrotate @@ -0,0 +1,9 @@ +/var/log/icingadb-redis/*.log { + weekly + rotate 10 + copytruncate + delaycompress + compress + notifempty + missingok +} diff --git a/SOURCES/icingadb-redis.service b/SOURCES/icingadb-redis.service new file mode 100644 index 0000000..4c332b9 --- /dev/null +++ b/SOURCES/icingadb-redis.service @@ -0,0 +1,18 @@ +[Unit] +Description=IcingaDB Redis persistent key-value database +After=network.target +After=network-online.target +Wants=network-online.target + +[Service] +ExecStart=/usr/bin/icingadb-redis-server /etc/icingadb-redis/icingadb-redis.conf --daemonize no --supervised systemd +ExecStop=/usr/libexec/icingadb-redis-shutdown +Type=notify +User=icingadb-redis +Group=icingadb-redis +RuntimeDirectory=icingadb-redis +RuntimeDirectoryMode=0755 + +[Install] +WantedBy=multi-user.target + diff --git a/SOURCES/icingadb.service b/SOURCES/icingadb.service new file mode 100644 index 0000000..0ae5845 --- /dev/null +++ b/SOURCES/icingadb.service @@ -0,0 +1,12 @@ +[Unit] +Description=Icinga DB +After=syslog.target network-online.target icingadb-redis.service mariadb.service + +[Service] +Type=notify +ExecStart=/usr/sbin/icingadb --config /etc/icingadb/config.yml +User=icingadb +Group=icingadb + +[Install] +WantedBy=multi-user.target diff --git a/SOURCES/macros.icingadb-redis b/SOURCES/macros.icingadb-redis new file mode 100644 index 0000000..b6d372b --- /dev/null +++ b/SOURCES/macros.icingadb-redis @@ -0,0 +1,2 @@ +%redis_modules_abi 1 +%redis_modules_dir %{_libdir}/icingadb-redis/modules diff --git a/SPECS/icinga-l10n.spec b/SPECS/icinga-l10n.spec new file mode 100644 index 0000000..05dff8f --- /dev/null +++ b/SPECS/icinga-l10n.spec @@ -0,0 +1,45 @@ +%define basedir %{_datadir}/icinga-L10n + +Name: icinga-l10n +Version: 1.0.0 +Release: 1%{?dist} +Summary: Icinga L10n +License: GPLv2+ +URL: https://icinga.com +Source0: https://github.com/Icinga/L10n/archive/v%{version}.tar.gz +BuildArch: noarch +BuildRoot: %{_tmppath}/%{name}-%{version}-%{release} + + +%description +L10n (short for Localization) provides all translations available for Icinga. + + + +%prep +%setup -q -n L10n-1.0.0 + + +%build + + +%install +mkdir -p %{buildroot}/%{basedir} +cp *.md %{buildroot}/%{basedir} +cp COPYING %{buildroot}/%{basedir} +cp -prv locale %{buildroot}/%{basedir} +find %{buildroot}/%{basedir}/locale -name *.po -delete + + +%clean +rm -rf %{buildroot} + + +%files +%defattr(-,root,root) +%{basedir} +%doc README.md +%doc CONTRIBUTING.md + + +%changelog diff --git a/SPECS/icinga-php-common.spec b/SPECS/icinga-php-common.spec new file mode 100644 index 0000000..c81a402 --- /dev/null +++ b/SPECS/icinga-php-common.spec @@ -0,0 +1,32 @@ +%global basedir %{_datadir}/icinga-php + +Name: icinga-php-common +Version: 1.0.0 +Release: 1%{?dist} +Summary: Icinga PHP Common for Icinga Web 2 +Group: Applications/System +License: Public Domain +URL: https://icinga.com +BuildArch: noarch + + +%description +This package manages the directory /usr/share/icinga-php. + + +%prep + + +%build + + +%install +mkdir -vp %{buildroot}%{basedir} + + +%files +%defattr(-,root,root) +%{basedir} + + +%changelog diff --git a/SPECS/icinga-php-library.spec b/SPECS/icinga-php-library.spec new file mode 100644 index 0000000..efef635 --- /dev/null +++ b/SPECS/icinga-php-library.spec @@ -0,0 +1,50 @@ +%global basedir %{_datadir}/icinga-php/ipl + +Name: icinga-php-library +Version: 0.12.0 +Release: 1%{?dist} +Summary: Icinga PHP Library for Icinga Web 2 +Group: Applications/System +License: MIT +URL: https://icinga.com +Source0: https://github.com/Icinga/%{name}/archive/v%{version}.tar.gz +BuildArch: noarch +Requires: icinga-php-common +Requires: icinga-php-thirdparty +Requires: php-intl +Requires: php-pdo +Requires: php-json + + +%description +This project bundles all Icinga PHP libraries into one +piece and can be integrated as library into Icinga Web 2. + + +%prep +%setup -q + + +%build + + +%install +mkdir -vp %{buildroot}%{basedir} +cp -vr asset %{buildroot}%{basedir} +cp -vr vendor %{buildroot}%{basedir} +cp -vr composer.* %{buildroot}%{basedir} +cp -vr VERSION %{buildroot}%{basedir} + + +%clean +rm -rf %{buildroot} + + +%files +%doc README.md +%license LICENSE +%defattr(-,root,root) +%{basedir} + + +%changelog diff --git a/SPECS/icinga-php-thirdparty.spec b/SPECS/icinga-php-thirdparty.spec new file mode 100644 index 0000000..0b9b69f --- /dev/null +++ b/SPECS/icinga-php-thirdparty.spec @@ -0,0 +1,51 @@ +%global basedir %{_datadir}/icinga-php/vendor + +Name: icinga-php-thirdparty +Version: 0.11.0 +Release: 1%{?dist} +Summary: Icinga PHP Thirdparty for Icinga Web 2 +Group: Applications/System +License: MIT +URL: https://icinga.com +Source0: https://github.com/Icinga/%{name}/archive/v%{version}.tar.gz +BuildArch: noarch +Requires: icinga-php-common +Requires: php-soap +Requires: php-sockets +Requires: php-curl +Requires: php-json + + +%description +This package bundles all 3rd party PHP libraries +used by Icinga Web products into one piece, +which can be integrated as library into Icinga Web 2. + + +%prep +%setup -q + + +%build + + +%install +mkdir -vp %{buildroot}%{basedir} +cp -vr asset %{buildroot}%{basedir} +cp -vr vendor %{buildroot}%{basedir} +cp -vr composer.* %{buildroot}%{basedir} +cp -vr VERSION %{buildroot}%{basedir} + + +%clean +rm -rf %{buildroot} + + +%files +%doc README.md +%license LICENSE +%defattr(-,root,root) +%{basedir} + + +%changelog diff --git a/SPECS/icinga2.spec b/SPECS/icinga2.spec index da65ce5..fc932bc 100644 --- a/SPECS/icinga2.spec +++ b/SPECS/icinga2.spec @@ -40,7 +40,7 @@ Summary: Network monitoring application License: GPLv2+ Group: System/Monitoring Name: icinga2 -Version: 2.12.4 +Version: 2.13.7 Release: %{revision}%{?dist} Url: https://www.icinga.com/ Source: https://github.com/Icinga/%{name}/archive/v%{version}%{?src_version_suffix}.tar.gz @@ -179,6 +179,9 @@ Provides Nano syntax highlighting for icinga2. %build +source /opt/rh/devtoolset-10/enable +%global optflags %(echo %{optflags} | sed 's/-mdirect-move/ /') + # set basedir to allow cache to hit between different builds # this will make all paths below BUILD/icinga2-x.x.x relative for cache export CCACHE_BASEDIR="${CCACHE_BASEDIR:-$(pwd)}" diff --git a/SPECS/icingadb-redis.spec b/SPECS/icingadb-redis.spec new file mode 100644 index 0000000..90438f7 --- /dev/null +++ b/SPECS/icingadb-redis.spec @@ -0,0 +1,297 @@ +%undefine _package_note_file +%global doc_commit e50ea1872e4efaf2a7174700050b7ce1c47dc2a8 +%global short_doc_commit %(c=%{doc_commit}; echo ${c:0:7}) +%global macrosdir %(d=%{_rpmconfigdir}/macros.d; [ -d $d ] || d=%{_sysconfdir}/rpm; echo $d) +%global redis_port 6380 + +Name: icingadb-redis +Version: 7.0.5 +Release: 1%{?dist} +Summary: A persistent key-value database +License: BSD and MIT +URL: https://redis.io +Source0: https://download.redis.io/releases/redis-%{version}.tar.gz +Source1: icingadb-redis.logrotate +Source2: icingadb-redis-sentinel.service +Source3: icingadb-redis.service +Source6: icingadb-redis-shutdown +Source7: icingadb-redis-limit-systemd +Source9: macros.icingadb-redis +Source10: https://github.com/redis/redis-doc/archive/%{doc_commit}/redis-doc-%{short_doc_commit}.tar.gz +# To refresh patches: +# tar xf redis-xxx.tar.gz && cd redis-xxx && git init && git add . && git commit -m "%%{version} baseline" +# git am %%{patches} +# Then refresh your patches +# git format-patch HEAD~ +# Update configuration for Fedora +# https://github.com/redis/redis/pull/3491 - man pages +Patch0001: 0001-1st-man-pageis-for-redis-cli-redis-benchmark-redis-c.patch +# Update default port from 6370 to 6380 +Patch0901: icinga-conf.patch +Patch0902: icinga-deps.patch +Patch0903: icinga-src.patch +Patch0904: icinga-utils.patch +BuildRequires: make +BuildRequires: gcc +%if %{with tests} +BuildRequires: procps-ng +BuildRequires: tcl +%endif +BuildRequires: pkgconfig(libsystemd) +BuildRequires: systemd-devel +#BuildRequires: systemd-rpm-macros +BuildRequires: openssl-devel +Obsoletes: redis-trib < 5 +Requires: /bin/awk +Requires: logrotate +Requires(pre): shadow-utils +Requires(post): systemd +Requires(preun): systemd +Requires(postun): systemd +# from deps/hiredis/hiredis.h +Provides: bundled(hiredis) = 0.14.0 +# from deps/jemalloc/VERSION +Provides: bundled(jemalloc) = 5.2.1 +# from deps/lua/src/lua.h +Provides: bundled(lua-libs) = 5.1.5 +# from deps/linenoise/linenoise.h +Provides: bundled(linenoise) = 1.0 +Provides: bundled(lzf) +# from deps/hdr_histogram/README.md +Provides: bundled(hdr_histogram) = 0.11.0 +%global redis_modules_abi 1 +%global redis_modules_dir %{_libdir}/%{name}/modules +Provides: redis(modules_abi)%{?_isa} = %{redis_modules_abi} +Conflicts: icinga-redis + + +%description +Redis is an advanced key-value store. It is often referred to as a data +structure server since keys can contain strings, hashes, lists, sets and +sorted sets. +You can run atomic operations on these types, like appending to a string; +incrementing the value in a hash; pushing to a list; computing set +intersection, union and difference; or getting the member with highest +ranking in a sorted set. +In order to achieve its outstanding performance, Redis works with an +in-memory dataset. Depending on your use case, you can persist it either +by dumping the dataset to disk every once in a while, or by appending +each command to a log. +Redis also supports trivial-to-setup master-slave replication, with very +fast non-blocking first synchronization, auto-reconnection on net split +and so forth. +Other features include Transactions, Pub/Sub, Lua scripting, Keys with a +limited time-to-live, and configuration settings to make Redis behave like +a cache. +You can use Redis from most programming languages also. + + +%package devel +Summary: Development header for Redis module development +Provides: icingadb-redis-static = %{version}-%{release} +%description devel +Header file required for building loadable Redis modules. Detailed +API documentation is available in the redis-doc package. + +%package doc +Summary: Documentation for Redis including man pages +License: CC-BY-SA +BuildArch: noarch +Conflicts: redis < 4.0 +%description doc +Manual pages and detailed documentation for many aspects of Redis use, +administration and development. + + +%prep +%setup -q -b 10 -n redis-%{version} +%setup -q -n redis-%{version} +mv ../redis-doc-%{doc_commit} doc +%patch0001 -p1 +%patch0901 -p1 +%patch0902 -p1 +%patch0903 -p1 +%patch0904 -p1 +mv deps/lua/COPYRIGHT COPYRIGHT-lua +mv deps/jemalloc/COPYING COPYING-jemalloc +mv deps/hiredis/COPYING COPYING-hiredis +mv deps/hdr_histogram/LICENSE.txt LICENSE-hdrhistogram +mv deps/hdr_histogram/COPYING.txt COPYING-hdrhistogram +# Configuration file changes +sed -i -e 's|^logfile .*$|logfile /var/log/%{name}/redis.log|g' redis.conf +sed -i -e 's|^logfile .*$|logfile /var/log/%{name}/sentinel.log|g' sentinel.conf +sed -i -e 's|^dir .*$|dir /var/lib/%{name}|g' redis.conf +# Update redis port in config +sed -i -e 's|^port .*$|port %{redis_port}|'g redis.conf +sed -i -e 's|^port .*$|port 2%{redis_port}|'g sentinel.conf +# Update PID file in config +sed -i -e 's|^pidfile .*$|pidfile /var/run/%{name}/redis.pid|g' redis.conf +sed -i -e 's|^pidfile .*$|pidfile /var/run/%{name}/redis-sentinel.pid|g' sentinel.conf +# Module API version safety check +api=`sed -n -e 's/#define REDISMODULE_APIVER_[0-9][0-9]* //p' src/redismodule.h` +if test "$api" != "%{redis_modules_abi}"; then + : Error: Upstream API version is now ${api}, expecting %%{redis_modules_abi}. + : Update the redis_modules_abi macro, the rpmmacros file, and rebuild. + exit 1 +fi +%global make_flags DEBUG="" V="echo" LDFLAGS="%{?__global_ldflags}" CFLAGS+="%{optflags} -fPIC" INSTALL="install -p" PREFIX=%{buildroot}%{_prefix} BUILD_WITH_SYSTEMD=yes BUILD_TLS=yes + + +%build +%make_build %{make_flags} all + + +%install +make %{make_flags} install +# Filesystem. +install -d %{buildroot}%{_sharedstatedir}/%{name} +install -d %{buildroot}%{_localstatedir}/log/%{name} +install -d %{buildroot}%{_localstatedir}/run/%{name} +install -d %{buildroot}%{redis_modules_dir} +# Install logrotate file. +install -pDm644 %{S:1} %{buildroot}%{_sysconfdir}/logrotate.d/%{name} +# Install configuration files. +#newicingaline1 +install -pd %{buildroot}%{_sysconfdir}/%{name} +install -pDm640 redis.conf %{buildroot}%{_sysconfdir}/%{name}/%{name}.conf +install -pDm640 sentinel.conf %{buildroot}%{_sysconfdir}/%{name}/%{?pkg_prefix}sentinel.conf +# Install systemd unit files. +mkdir -p %{buildroot}%{_unitdir} +install -pm644 %{S:3} %{buildroot}%{_unitdir}/%{name}.service +install -pm644 %{S:2} %{buildroot}%{_unitdir}/%{name}-sentinel.service +# Install systemd limit files (requires systemd >= 204) +install -p -D -m 644 %{S:7} %{buildroot}%{_sysconfdir}/systemd/system/%{name}.service.d/limit.conf +install -p -D -m 644 %{S:7} %{buildroot}%{_sysconfdir}/systemd/system/%{name}-sentinel.service.d/limit.conf +# Fix non-standard-executable-perm error. +#newicingaline5 +for bin in $(cd %{buildroot}%{_bindir}; ls redis*); do + # Rename bin file and add prefix if set + [ -z %{?pkg_prefix} ] || mv %{buildroot}%{_bindir}/${bin} %{buildroot}%{_bindir}/%{?pkg_prefix}${bin} + chmod 755 %{buildroot}%{_bindir}/%{?pkg_prefix}${bin} +done +# Fix symlinks for checks +#newicingaline4 +if [ -n %{?pkg_prefix} ]; then + ln -svf %{name}-server %{buildroot}%{_bindir}/%{name}-check-aof + ln -svf %{name}-server %{buildroot}%{_bindir}/%{name}-check-rdb +fi +# Install redis-shutdown +install -pDm755 %{S:6} %{buildroot}%{_libexecdir}/%{name}-shutdown +# Install redis module header +install -pDm644 src/redismodule.h %{buildroot}%{_includedir}/%{name}module.h +# Install man pages +man=$(dirname %{buildroot}%{_mandir}) +for page in man/man?/*; do +#newicingaline3 + dir=$(dirname $page) + file=$(basename $page) + install -Dpm644 $page $man/$dir/icingadb-$file +done +ln -s redis-server.1 %{buildroot}%{_mandir}/man1/icingadb-redis-sentinel.1 +ln -s redis.conf.5 %{buildroot}%{_mandir}/man5/icingadb-redis-sentinel.conf.5 +# Install documentation and html pages +doc=$(echo %{buildroot}/%{_docdir}/%{name}) +for page in 00-RELEASENOTES BUGS MANIFESTO *.md; do + install -Dpm644 $page $doc/$page +done +for page in $(find doc -name \*.md | sed -e 's|.md$||g'); do + base=$(echo $page | sed -e 's|doc/||g') + install -Dpm644 $page.md $doc/$base.md +done +# Install rpm macros for redis modules +mkdir -p %{buildroot}%{macrosdir} +install -pDm644 %{S:9} %{buildroot}%{macrosdir}/macros.%{name} + + +%check +%if %{with tests} +# https://github.com/redis/redis/issues/1417 (for "taskset -c 1") +taskset -c 1 make %{make_flags} test +make %{make_flags} test-sentinel +%endif + + +%pre +getent group %{name} &> /dev/null || \ +groupadd -r %{name} &> /dev/null +getent passwd %{name} &> /dev/null || \ +useradd -r -g %{name} -d %{_sharedstatedir}/%{name} -s /sbin/nologin \ +-c 'Redis Database Server' %{name} &> /dev/null +exit 0 +%post +if [ -f %{_sysconfdir}/%{name}.conf -a ! -L %{_sysconfdir}/%{name}.conf ]; then + if [ -f %{_sysconfdir}/%{name}/%{name}.conf.rpmnew ]; then + rm %{_sysconfdir}/%{name}/%{name}.conf.rpmnew + fi + if [ -f %{_sysconfdir}/%{name}/%{name}.conf ]; then + mv %{_sysconfdir}/%{name}/%{name}.conf %{_sysconfdir}/%{name}/%{name}.conf.rpmnew + fi + mv %{_sysconfdir}/%{name}.conf %{_sysconfdir}/%{name}/%{name}.conf + echo -e "\nWarning: %{name} configuration is now in %{_sysconfdir}/%{name} directory\n" +fi +if [ -f %{_sysconfdir}/%{name}-sentinel.conf -a ! -L %{_sysconfdir}/%{name}-sentinel.conf ]; then + if [ -f %{_sysconfdir}/%{name}/%{?pkg_prefix}sentinel.conf.rpmnew ]; then + rm %{_sysconfdir}/%{name}/%{?pkg_prefix}sentinel.conf.rpmnew + fi + if [ -f %{_sysconfdir}/%{name}/%{?pkg_prefix}sentinel.conf ]; then + mv %{_sysconfdir}/%{name}/%{?pkg_prefix}sentinel.conf %{_sysconfdir}/%{name}/%{?pkg_prefix}sentinel.conf.rpmnew + fi + mv %{_sysconfdir}/%{name}-sentinel.conf %{_sysconfdir}/%{name}/%{?pkg_prefix}sentinel.conf +fi +%systemd_post %{name}.service +%systemd_post %{name}-sentinel.service +%preun +%systemd_preun %{name}.service +%systemd_preun %{name}-sentinel.service +%postun +%systemd_postun_with_restart %{name}.service +%systemd_postun_with_restart %{name}-sentinel.service + + +%files +%{!?_licensedir:%global license %%doc} +%license COPYING +%license COPYRIGHT-lua +%license COPYING-jemalloc +%license COPYING-hiredis +%license LICENSE-hdrhistogram +%license COPYING-hdrhistogram +%config(noreplace) %{_sysconfdir}/logrotate.d/%{name} +%attr(0750, %{name}, root) %dir %{_sysconfdir}/%{name} +%attr(0640, %{name}, root) %config(noreplace) %{_sysconfdir}/%{name}/%{name}.conf +%attr(0640, %{name}, root) %config(noreplace) %{_sysconfdir}/%{name}/%{?pkg_prefix}sentinel.conf +%dir %attr(0750, %{name}, %{name}) %{_libdir}/%{name} +%dir %attr(0750, %{name}, %{name}) %{redis_modules_dir} +%dir %attr(0750, %{name}, %{name}) %{_sharedstatedir}/%{name} +%dir %attr(0750, %{name}, %{name}) %{_localstatedir}/log/%{name} +%exclude %{macrosdir} +%exclude %{_includedir} +%exclude %{_docdir}/%{name}/* +%{_bindir}/%{name}-* +%{_libexecdir}/%{name}-* +%{_mandir}/man1/%{name}* +%{_mandir}/man5/%{name}* +%{_unitdir}/%{name}.service +%{_unitdir}/%{name}-sentinel.service +%dir %{_sysconfdir}/systemd/system/%{name}.service.d +%config(noreplace) %{_sysconfdir}/systemd/system/%{name}.service.d/limit.conf +%dir %{_sysconfdir}/systemd/system/%{name}-sentinel.service.d +%config(noreplace) %{_sysconfdir}/systemd/system/%{name}-sentinel.service.d/limit.conf +%dir %attr(0755, %{name}, %{name}) %ghost %{_localstatedir}/run/%{name} + + +%files devel +# main package is not required +%license COPYING +%{_includedir}/%{name}module.h +%{macrosdir}/* + + +%files doc +# specific for documentation (CC-BY-SA) +%license doc/LICENSE +%docdir %{_docdir}/%{name} +%{_docdir}/%{name} + + +%changelog diff --git a/SPECS/icingadb-web.spec b/SPECS/icingadb-web.spec new file mode 100644 index 0000000..a2e0285 --- /dev/null +++ b/SPECS/icingadb-web.spec @@ -0,0 +1,62 @@ +%global module_name icingadb +%global basedir %{_datadir}/icingaweb2/modules/icingadb +%global docdir %{_datadir}/doc/icingadb-web + +Name: icingadb-web +Version: 1.0.2 +Release: 1%{?dist} +Summary: Icinga DB Web for Icinga Web 2 +Group: Applications/System +License: GPLv2+ +URL: https://icinga.com +Source0: https://github.com/Icinga/icingadb-web/archive/v%{version}.tar.gz +BuildArch: noarch +Requires: icingaweb2 >= 2.9 +Requires: icinga-php-library +Requires: icinga-php-thirdparty + + +%description +Icinga DB Web offers a modern and streamlined design to provide a clear +and concise overview of your monitoring environment. + + +%prep +%setup -q + + +%install +mkdir -vp %{buildroot}%{basedir} +mkdir -vp %{buildroot}%{docdir} +cp -vr application %{buildroot}%{basedir} +cp -vr library %{buildroot}%{basedir} +cp -vr public %{buildroot}%{basedir} +cp -vr configuration.php %{buildroot}%{basedir} +cp -vr module.info %{buildroot}%{basedir} +cp -vr run.php %{buildroot}%{basedir} +cp -vr doc %{buildroot}%{docdir} + + +%clean +rm -rf %{buildroot} + + +%preun +set -e +# Only for removal +if [ $1 == 0 ]; then + echo "Disabling icingaweb2 module '%{module_name}'" + rm -f /etc/icingaweb2/enabledModules/%{module_name} +fi +exit 0 + + +%files +%doc README.md +%license LICENSE +%defattr(-,root,root) +%{basedir} +%{docdir} + + +%changelog diff --git a/SPECS/icingadb.spec b/SPECS/icingadb.spec new file mode 100644 index 0000000..01cd634 --- /dev/null +++ b/SPECS/icingadb.spec @@ -0,0 +1,77 @@ +%global provider github +%global provider_tld com +%global project Icinga +%global repo icingadb +%global provider_prefix %{provider}.%{provider_tld}/%{project}/%{repo} +%global import_path %{provider_prefix} +%define debug_package %nil +%define configdir %{_sysconfdir}/%{name} +%define service %{name}.service + +Name: icingadb +Version: 1.1.1 +Release: 1%{?dist} +Summary: Icinga DB +Group: System Environment/Daemons +License: GPLv2+ +URL: https://%{provider_prefix} +#Source0: https://%{import_path}/archive/v%{version}.tar.gz +Source1: icingadb.service +BuildRoot: %{_tmppath}/%{name}-%{version}-%{release} +BuildRequires: gcc +BuildRequires: git +BuildRequires: systemd +Requires(pre): shadow-utils + + +%description +Icinga DB + + +%prep +%setup -q -T -c %{name}-%{version} +git clone https://%{provider_prefix} . + +%build +go build -v -ldflags "-extldflags -s -w -B 0x$(head -c20 /dev/urandom|od -An -tx1|tr -d ' \n') -buildid "%{version}"" -buildvcs=false -trimpath ./cmd/icingadb + + +%install +install -d -m 0755 %{buildroot}%{_sbindir} +install -d -m 0755 %{buildroot}%{configdir} +install -d -m 0755 %{buildroot}%{_unitdir} +install -m 0755 icingadb %{buildroot}%{_sbindir}/ +install -m 0644 config.example.yml %{buildroot}%{configdir}/config.yml +install -m 0644 %{S:1} %{buildroot}%{_unitdir}/ +install -d -m 0755 %{buildroot}%{_datadir}/%{name} +(umask 0022 && cp -rv schema %{buildroot}%{_datadir}/%{name}/) + + +%pre +getent group icingadb >/dev/null || groupadd -r icingadb +getent passwd icingadb >/dev/null || useradd -r -g icingadb -d /etc/icingadb -s /sbin/nologin -c 'Icinga DB' icingadb +%post +%systemd_post %{service} +%preun +%systemd_preun %{service} +%postun +%systemd_postun %{service} + + +%clean +rm -rf %{buildroot} + + +%files +%defattr(-,root,root) +%doc LICENSE AUTHORS README.md CHANGELOG.md +%{_sbindir}/icingadb +%{_unitdir}/%{service} +%dir %{_datadir}/%{name} +%{_datadir}/%{name}/schema +%defattr(0644,icingadb,icingadb,0755) +%dir %{configdir} +%config(noreplace) %{configdir}/config.yml + + +%changelog diff --git a/SPECS/icingaweb2-module-audit.spec b/SPECS/icingaweb2-module-audit.spec new file mode 100644 index 0000000..fb5b568 --- /dev/null +++ b/SPECS/icingaweb2-module-audit.spec @@ -0,0 +1,54 @@ +%global module_name audit +%global icingaweb_min_version 2.6.0 +%global basedir %{_datadir}/icingaweb2/modules/%{module_name} + +Name: icingaweb2-module-%{module_name} +Version: 1.0.2 +Release: 1%{?dist} +Summary: Audit - Icinga Web 2 module +Group: Applications/System +License: GPLv2+ +URL: https://icinga.com +Source0: https://github.com/Icinga/icingaweb2-module-%{module_name}/archive/v%{version}.tar.gz +BuildArch: noarch +Requires: icingaweb2 >= %{icingaweb_min_version} +Requires: php-Icinga >= %{icingaweb_min_version} + + +%description +Audit logging module for Icinga Web 2. + + +%prep +%setup -q + + +%build + + +%install +rm -rf %{buildroot} +mkdir -p %{buildroot}%{basedir} +cp -r * %{buildroot}%{basedir} + + +%clean +rm -rf %{buildroot} + + +%preun +set -e +if [ $1 == 0 ]; then + echo "Disabling icingaweb2 module '%{module_name}'" + rm -f /etc/icingaweb2/enabledModules/%{module_name} +fi +exit 0 + + +%files +%doc README.md LICENSE +%defattr(-,root,root) +%{basedir} + + +%changelog diff --git a/SPECS/icingaweb2-module-businessprocess.spec b/SPECS/icingaweb2-module-businessprocess.spec new file mode 100644 index 0000000..09e2c68 --- /dev/null +++ b/SPECS/icingaweb2-module-businessprocess.spec @@ -0,0 +1,58 @@ +%global module_name businessprocess +%global icingaweb_min_version 2.6.0 +%global basedir %{_datadir}/icingaweb2/modules/%{module_name} + +Name: icingaweb2-module-%{module_name} +Version: 2.4.0 +Release: 1%{?dist} +Summary: Business Processes - Icinga Web 2 module +Group: Applications/System +License: GPLv2+ +URL: https://icinga.com +Source0: https://github.com/Icinga/icingaweb2-module-%{module_name}/archive/v%{version}.tar.gz +BuildArch: noarch +Requires: icingaweb2 >= %{icingaweb_min_version} +Requires: php-Icinga >= %{icingaweb_min_version} +Requires: icingaweb2-module-ipl >= 0.2 + + +%description +Create a combined view of your existing data and build your very own top level +view. In the end, what matters is the availability of your whole application +or service. The Business Process Module makes it possible to set single hosts +and services into context, by combining the states with logical functions. + + +%prep +%setup -q + + +%build + + +%install +rm -rf %{buildroot} +mkdir -p %{buildroot}%{basedir} +cp -r * %{buildroot}%{basedir} + + +%clean +rm -rf %{buildroot} + + +%preun +set -e +if [ $1 == 0 ]; then + echo "Disabling icingaweb2 module '%{module_name}'" + rm -f /etc/icingaweb2/enabledModules/%{module_name} +fi +exit 0 + + +%files +%doc README.md LICENSE +%defattr(-,root,root) +%{basedir} + + +%changelog diff --git a/SPECS/icingaweb2-module-cube.spec b/SPECS/icingaweb2-module-cube.spec new file mode 100644 index 0000000..3e468e8 --- /dev/null +++ b/SPECS/icingaweb2-module-cube.spec @@ -0,0 +1,47 @@ +%global module_name cube +%global icingaweb_min_version 2.6.0 +%global basedir %{_datadir}/icingaweb2/modules/%{module_name} +Name: icingaweb2-module-%{module_name} +Version: 1.3.0 +Release: 1%{?dist} +Summary: Certificate Monitoring (x509) - Icinga Web 2 module +Group: Applications/System +License: GPLv2+ +URL: https://icinga.com +Source0: https://github.com/Icinga/icingaweb2-module-%{module_name}/archive/v%{version}.tar.gz +BuildArch: noarch +Requires: icingaweb2 >= %{icingaweb_min_version} +Requires: php-Icinga >= %{icingaweb_min_version} +Requires: openssl + + +%description +The Cube is a tiny but useful Icinga Web 2 module. It currently shows host +statistics (total count, health) grouped by various custom variables +in multiple dimensions. + + +%prep +%setup -q + + +%build + + +%install +rm -rf %{buildroot} +mkdir -p %{buildroot}%{basedir} +cp -r * %{buildroot}%{basedir} + + +%clean +rm -rf %{buildroot} + + +%files +%doc README.md LICENSE +%defattr(-,root,root) +%{basedir} + + +%changelog diff --git a/SPECS/icingaweb2-module-generictts.spec b/SPECS/icingaweb2-module-generictts.spec new file mode 100644 index 0000000..3ba3612 --- /dev/null +++ b/SPECS/icingaweb2-module-generictts.spec @@ -0,0 +1,54 @@ +%global module_name generictts +%global icingaweb_min_version 2.6.0 +%global basedir %{_datadir}/icingaweb2/modules/%{module_name} + +Name: icingaweb2-module-%{module_name} +Version: 2.1.0 +Release: 1%{?dist} +Summary: Audit - Icinga Web 2 module +Group: Applications/System +License: GPLv2+ +URL: https://icinga.com +Source0: https://github.com/Icinga/icingaweb2-module-%{module_name}/archive/v%{version}.tar.gz +BuildArch: noarch +Requires: icingaweb2 >= %{icingaweb_min_version} +Requires: php-Icinga >= %{icingaweb_min_version} + + +%description +Generic TTS module for Icinga Web 2. + + +%prep +%setup -q + + +%build + + +%install +rm -rf %{buildroot} +mkdir -p %{buildroot}%{basedir} +cp -r * %{buildroot}%{basedir} + + +%clean +rm -rf %{buildroot} + + +%preun +set -e +if [ $1 == 0 ]; then + echo "Disabling icingaweb2 module '%{module_name}'" + rm -f /etc/icingaweb2/enabledModules/%{module_name} +fi +exit 0 + + +%files +%doc README.md LICENSE +%defattr(-,root,root) +%{basedir} + + +%changelog diff --git a/SPECS/icingaweb2-module-grafana.spec b/SPECS/icingaweb2-module-grafana.spec new file mode 100644 index 0000000..028e5fc --- /dev/null +++ b/SPECS/icingaweb2-module-grafana.spec @@ -0,0 +1,54 @@ +%global module_name grafana +%global icingaweb_min_version 2.6.0 +%global basedir %{_datadir}/icingaweb2/modules/%{module_name} + +Name: icingaweb2-module-%{module_name} +Version: 2.0.3 +Release: 1%{?dist} +Summary: Grafana - Icinga Web 2 module +Group: Applications/System +License: GPLv2+ +URL: https://icinga.com +Source0: https://github.com/Mikesch-mp/icingaweb2-module-%{module_name}/archive/v%{version}.tar.gz +BuildArch: noarch +Requires: icingaweb2 >= %{icingaweb_min_version} +Requires: php-Icinga >= %{icingaweb_min_version} + + +%description +Grafana module for Icinga Web 2. + + +%prep +%setup -q + + +%build + + +%install +rm -rf %{buildroot} +mkdir -p %{buildroot}%{basedir} +cp -r * %{buildroot}%{basedir} + + +%clean +rm -rf %{buildroot} + + +%preun +set -e +if [ $1 == 0 ]; then + echo "Disabling icingaweb2 module '%{module_name}'" + rm -f /etc/icingaweb2/enabledModules/%{module_name} +fi +exit 0 + + +%files +%doc README.md LICENSE +%defattr(-,root,root) +%{basedir} + + +%changelog diff --git a/SPECS/icingaweb2-module-graphite.spec b/SPECS/icingaweb2-module-graphite.spec new file mode 100644 index 0000000..efc14f9 --- /dev/null +++ b/SPECS/icingaweb2-module-graphite.spec @@ -0,0 +1,54 @@ +%global module_name graphite +%global icingaweb_min_version 2.6.0 +%global basedir %{_datadir}/icingaweb2/modules/%{module_name} + +Name: icingaweb2-module-%{module_name} +Version: 1.2.2 +Release: 1%{?dist} +Summary: Audit - Icinga Web 2 module +Group: Applications/System +License: GPLv2+ +URL: https://icinga.com +Source0: https://github.com/Icinga/icingaweb2-module-%{module_name}/archive/v%{version}.tar.gz +BuildArch: noarch +Requires: icingaweb2 >= %{icingaweb_min_version} +Requires: php-Icinga >= %{icingaweb_min_version} + + +%description +Graphite module for Icinga Web 2. + + +%prep +%setup -q + + +%build + + +%install +rm -rf %{buildroot} +mkdir -p %{buildroot}%{basedir} +cp -r * %{buildroot}%{basedir} + + +%clean +rm -rf %{buildroot} + + +%preun +set -e +if [ $1 == 0 ]; then + echo "Disabling icingaweb2 module '%{module_name}'" + rm -f /etc/icingaweb2/enabledModules/%{module_name} +fi +exit 0 + + +%files +%doc README.md LICENSE +%defattr(-,root,root) +%{basedir} + + +%changelog diff --git a/SPECS/icingaweb2-module-ipl.spec b/SPECS/icingaweb2-module-ipl.spec new file mode 100644 index 0000000..00ef2f6 --- /dev/null +++ b/SPECS/icingaweb2-module-ipl.spec @@ -0,0 +1,71 @@ +%global module_name ipl +%global icingaweb_min_version 2.6.0 +%global basedir %{_datadir}/icingaweb2/modules/%{module_name} + +Name: icingaweb2-module-%{module_name} +Version: 0.5.0 +Release: 1%{?dist} +Summary: Icinga PHP library module for Icinga Web 2 +Group: Applications/System +License: GPLv2+ +URL: https://icinga.com +Source0: https://github.com/Icinga/icingaweb2-module-%{module_name}/archive/v%{version}.tar.gz +BuildArch: noarch +Requires: icingaweb2 >= %{icingaweb_min_version} +Requires: php-Icinga >= %{icingaweb_min_version} + + +%description +This module collects several IPL library and ships them as a simple module +for Icinga Web 2. + + +%prep +%setup -q + + +%build + + +%install +rm -rf %{buildroot} +mkdir -p %{buildroot}%{basedir} +cp -r * %{buildroot}%{basedir} + + +%clean +rm -rf %{buildroot} + + +%post +set -e +# Only for fresh installations +if [ $1 == 1 ]; then + if [ ! -d /etc/icingaweb2/enabledModules ]; then + mkdir /etc/icingaweb2/enabledModules + chmod g=rwx,o= /etc/icingaweb2/enabledModules + fi + + echo "Enabling icingaweb2 module '%{module_name}'" + ln -svf /usr/share/icingaweb2/modules/%{module_name} /etc/icingaweb2/enabledModules/%{module_name} +fi +exit 0 + + +%preun +set -e +# Only for removal +if [ $1 == 0 ]; then + echo "Disabling icingaweb2 module '%{module_name}'" + rm -f /etc/icingaweb2/enabledModules/%{module_name} +fi +exit 0 + + +%files +%doc README.md +%defattr(-,root,root) +%{basedir} + + +%changelog diff --git a/SPECS/icingaweb2-module-reactbundle.spec b/SPECS/icingaweb2-module-reactbundle.spec new file mode 100644 index 0000000..09645a2 --- /dev/null +++ b/SPECS/icingaweb2-module-reactbundle.spec @@ -0,0 +1,75 @@ +%global module_name reactbundle +%global icingaweb_min_version 2.6.0 +%global basedir %{_datadir}/icingaweb2/modules/%{module_name} + +Name: icingaweb2-module-%{module_name} +Version: 0.6.0 +Release: 1%{?dist} +Summary: Icinga PHP library module for Icinga Web 2 +Group: Applications/System +License: GPLv2+ +URL: https://icinga.com +Source0: https://github.com/Icinga/icingaweb2-module-%{module_name}/archive/v%{version}.tar.gz +#/icingaweb2-module-%{module_name}-%{version}.tar.gz +BuildArch: noarch +Requires: icingaweb2 >= %{icingaweb_min_version} +Requires: icingacli >= %{icingaweb_min_version} +Requires: php-Icinga >= %{icingaweb_min_version} +Requires: php-cli +Requires: php-process +Requires: php-pcntl +Requires: php-soap + + +%description +This module provides React as a third-party library for other Icinga Web +modules. + + +%prep +%setup -q + + +%build + + +%install +rm -rf %{buildroot} +mkdir -p %{buildroot}%{basedir} +cp -r * %{buildroot}%{basedir} + + +%clean +rm -rf %{buildroot} + + +%post +set -e +# Only for fresh installations +if [ $1 == 1 ]; then + if [ ! -d /etc/icingaweb2/enabledModules ]; then + mkdir /etc/icingaweb2/enabledModules + chmod g=rwx,o= /etc/icingaweb2/enabledModules + fi + echo "Enabling icingaweb2 module '%{module_name}'" + ln -svf /usr/share/icingaweb2/modules/%{module_name} /etc/icingaweb2/enabledModules/%{module_name} +fi +exit 0 +%preun +set -e +# Only for removal +if [ $1 == 0 ]; then + echo "Disabling icingaweb2 module '%{module_name}'" + rm -f /etc/icingaweb2/enabledModules/%{module_name} +fi +exit 0 + + +%files +%doc README.md +#LICENSE +%defattr(-,root,root) +%{basedir} + + +%changelog diff --git a/SPECS/icingaweb2-module-toplevelview.spec b/SPECS/icingaweb2-module-toplevelview.spec new file mode 100644 index 0000000..1f28569 --- /dev/null +++ b/SPECS/icingaweb2-module-toplevelview.spec @@ -0,0 +1,47 @@ +%global module_name toplevelview +%global icingaweb_min_version 2.6.0 +%global basedir %{_datadir}/icingaweb2/modules/%{module_name} +Name: icingaweb2-module-%{module_name} +Version: 0.3.2 +Release: 1%{?dist} +Summary: TopLevelView is a drill down view into your Icinga environment +Group: Applications/System +License: GPLv2+ +URL: https://icinga.com +Source0: https://github.com/Icinga/icingaweb2-module-%{module_name}/archive/v%{version}.tar.gz +BuildArch: noarch +Requires: icingaweb2 >= %{icingaweb_min_version} +Requires: php-Icinga >= %{icingaweb_min_version} +Requires: openssl + + +%description +The Cube is a tiny but useful Icinga Web 2 module. It currently shows host +statistics (total count, health) grouped by various custom variables +in multiple dimensions. + + +%prep +%setup -q -n %{name}-%{version} + + +%build + + +%install +rm -rf %{buildroot} +mkdir -p %{buildroot}%{basedir} +cp -r * %{buildroot}%{basedir} + + +%clean +rm -rf %{buildroot} + + +%files +%doc README.md +%defattr(-,root,root) +%{basedir} + + +%changelog diff --git a/SPECS/icingaweb2-module-treeview.spec b/SPECS/icingaweb2-module-treeview.spec new file mode 100644 index 0000000..ae716bf --- /dev/null +++ b/SPECS/icingaweb2-module-treeview.spec @@ -0,0 +1,48 @@ +%global module_name treeview +%global icingaweb_min_version 2.6.0 +%global basedir %{_datadir}/icingaweb2/modules/%{module_name} +Name: icingaweb2-module-%{module_name} +Version: 1.0.0 +Release: 1%{?dist} +Summary: Certificate Monitoring (x509) - Icinga Web 2 module +Group: Applications/System +License: GPLv2+ +URL: https://icinga.com +#Source0: https://github.com/Icinga/icingaweb2-module-%{module_name}/archive/v%{version}.tar.gz +BuildArch: noarch +Requires: icingaweb2 >= %{icingaweb_min_version} +Requires: php-Icinga >= %{icingaweb_min_version} +Requires: openssl + + +%description +The Cube is a tiny but useful Icinga Web 2 module. It currently shows host +statistics (total count, health) grouped by various custom variables +in multiple dimensions. + + +%prep +%setup -q -T -c %{name}-%{version} +git clone https://github.com/ecm75/icingaweb2-module-treeview . + + +%build + + +%install +rm -rf %{buildroot} +mkdir -p %{buildroot}%{basedir} +cp -r * %{buildroot}%{basedir} + + +%clean +rm -rf %{buildroot} + + +%files +%doc README.md LICENSE +%defattr(-,root,root) +%{basedir} + + +%changelog diff --git a/SPECS/icingaweb2-module-x509.spec b/SPECS/icingaweb2-module-x509.spec new file mode 100644 index 0000000..209cab7 --- /dev/null +++ b/SPECS/icingaweb2-module-x509.spec @@ -0,0 +1,71 @@ +%global module_name x509 +%global icingaweb_min_version 2.6.0 +%global basedir %{_datadir}/icingaweb2/modules/%{module_name} +%global service_name icinga-%{module_name} +%global service_user apache +Name: icingaweb2-module-%{module_name} +Version: 1.1.2 +Release: 1%{?dist} +Summary: Certificate Monitoring (x509) - Icinga Web 2 module +Group: Applications/System +License: GPLv2+ +URL: https://icinga.com +Source0: https://github.com/Icinga/icingaweb2-module-%{module_name}/archive/v%{version}.tar.gz +Source1: %{service_name}.service +BuildArch: noarch +BuildRequires: systemd-devel +Requires: systemd +Requires: icingaweb2 >= %{icingaweb_min_version} +Requires: php-Icinga >= %{icingaweb_min_version} +Requires: openssl +Requires: icingaweb2-module-ipl >= 0.1 +Requires: icingaweb2-module-reactbundle >= 0.4 + + +%description +The certificate monitoring module for Icinga keeps track of certificates as +they are deployed in a network environment. It does this by scanning networks +for TLS services and collects whatever certificates it finds along the way. +The certificates are verified using its own trust store. +The module’s web frontend can be used to view scan results, allowing you to +drill down into detailed information about any discovered certificate of your +landscape. + + +%prep +%setup -q + + +%build + + +%install +rm -rf %{buildroot} +mkdir -p %{buildroot}%{basedir} +cp -r * %{buildroot}%{basedir} +install -d %{buildroot}%{_unitdir} +install -m 0644 %{SOURCE1} %{buildroot}%{_unitdir}/%{service_name}.service +# Replace user in service unit +sed -i -e 's~^User=.*~User=%{service_user}~' %{buildroot}%{_unitdir}/%{service_name}.service + + +%clean +rm -rf %{buildroot} + + +%post +%systemd_post %{service_name}.service +%preun +%systemd_preun %{service_name}.service +%postun +%systemd_postun_with_restart %{service_name}.service + + +%files +%doc README.md LICENSE +%defattr(-,root,root) +%{basedir} +%{_unitdir}/%{service_name}.service + + +%changelog diff --git a/SPECS/icingaweb2.spec b/SPECS/icingaweb2.spec index a324816..9613bf8 100644 --- a/SPECS/icingaweb2.spec +++ b/SPECS/icingaweb2.spec @@ -14,16 +14,15 @@ %define docsdir %{_datadir}/doc/%{name} Name: icingaweb2 -Version: 2.8.2 +Version: 2.11.4 Release: 1%{?dist} Summary: Icinga Web 2 Group: Applications/System License: GPLv2+ and MIT and BSD URL: https://icinga.com -Source0: icingaweb2-2.8.2.orig.tar.gz +Source0: https://github.com/Icinga/icingaweb2/archive/refs/tags/v%{version}.tar.gz BuildArch: noarch BuildRoot: %{_tmppath}/%{name}-%{version}-%{release} -Packager: Icinga Team Requires: %{php}-mysqlnd Requires: %{php}-pgsql Requires: %{php}-ldap @@ -60,8 +59,8 @@ Requires: php-common >= %{php_version} Requires: php-gd Requires: php-intl Requires: php-mbstring -Requires: %{php}-json -#Requires: %{name}-vendor-zf1 = %{version}-%{release} +Requires: php-json +Requires: %{name}-vendor-zf1 = %{version}-%{release} #Requires: php-pecl-imagick %description -n php-Icinga Icinga Web 2 PHP library @@ -74,7 +73,7 @@ Requires: icinga-l10n Requires: %{name}-common = %{version}-%{release} Requires: php-Icinga = %{version}-%{release} Requires: bash-completion -Requires: phpi-cli >= %{php_version} +Requires: php-cli >= %{php_version} %description -n icingacli Icinga CLI @@ -244,7 +243,7 @@ exit 0 %dir %{basedir}/library %dir %{basedir}/library/vendor %dir %{basedir}/modules -%{basedir}/application/locale +#%{basedir}/application/locale %attr(2770,root,%{icingawebgroup}) %config(noreplace) %dir %{configdir} %attr(2770,root,%{icingawebgroup}) %config(noreplace) %dir %{configdir}/modules diff --git a/SPECS/prometheus.spec b/SPECS/prometheus.spec index c4ad2eb..e22325a 100644 --- a/SPECS/prometheus.spec +++ b/SPECS/prometheus.spec @@ -6,7 +6,7 @@ #%define debug_package %{nil} Name : prometheus -Version : 2.24.0 +Version : 2.37.0 Release : 1%{dist} License : MIT URL : https://prometheus.io @@ -35,7 +35,7 @@ export GOPATH=`pwd` cd src/github.com/prometheus/prometheus/ git checkout tags/v%{version} sed 's/\&\& yarn/\&\& yarnpkg/' -i Makefile -sed 's/yarn/yarnpkg/g' -i scripts/build_react_app.sh +#sed 's/yarn/yarnpkg/g' -i scripts/build_react_app.sh make build