update packaging for OS merge

This commit is contained in:
benschermel 2022-04-15 23:09:44 -04:00
parent 71121dff4e
commit 9031ac02f9
77 changed files with 534 additions and 141 deletions

View File

@ -2053,13 +2053,6 @@ server-threads 2
# bringing up replicas can result in data loss (the first master will win).
# active-replica yes
# Enable Enterprise? KeyDB Enterprise provides support for Enterprise only features
# note: you may omit the license key to demo Enterprise features for a limited time
# enable-enterprise [License Key]
# Enable FLASH support? (Enterprise Only)
# storage-provider flash /path/to/flash/db
# KeyDB will attempt to balance clients across threads evenly; However, replica clients
# are usually much more expensive than a normal client, and so KeyDB will try to assign
# fewer clients to threads with a replica. The weighting factor below is intented to help tune

View File

@ -1,3 +1,21 @@
### KeyDB Packaging
### KeyDB DEB Package Source Builds
The following directories contain packaging code used to create rpm and deb packages as well as docker images.
This directory contains scripts and components needed to generate debian packages on different distributions/architectures from source
The 'debian' directory contains debian source code for bionic, buster and later distributions as it uses functions only available with debhelper11+. 'debian_dh9' is used for xenial, stretch and earlier distributions using debhelper9.
You will need to install pbuilder `sudo apt install pbuilder` along with other distribution specific dependencies
Generate deb packages with the following script command run from this directory:
```
$ ./deb-buildsource.sh
```
This generates a directory structure, .dsc file, original.tar.gz, and new changelog for the distribution and architecture installed.
When complete the produced debian packages will be located in deb_files_generated directory.
Arguments for the deb-buildsource.sh script that can be passed are either 'None' or '"your custom comments"'. 'None' assumes a permanent changelog entry has been made listing the correct build for the version. If you quote and enter your own comment string, it will be appended to the changelog for that deb package. If no argument is passed a default comment is generated saying that this deb package was generated by this script.
This script has been tested on xenial/bionic/focal/stretch/buster/bullseye

View File

@ -14,4 +14,4 @@ When complete the produced debian packages will be located in deb_files_generate
Arguments for the deb-buildsource.sh script that can be passed are either 'None' or '"your custom comments"'. 'None' assumes a permanent changelog entry has been made listing the correct build for the version. If you quote and enter your own comment string, it will be appended to the changelog for that deb package. If no argument is passed a default comment is generated saying that this deb package was generated by this script.
This script has been tested on xenial/bionic/stretch/buster
This script has been tested on xenial/bionic/focal/stretch/buster/bullseye

View File

@ -257,6 +257,24 @@ tcp-keepalive 300
#
# tls-session-cache-timeout 60
# Allow the server to monitor the filesystem and rotate out TLS certificates if
# they change on disk, defaults to no.
#
# tls-rotation no
# Setup a allowlist of allowed Common Names (CNs)/Subject Alternative Names (SANs)
# that are allowed to connect to this server. This includes both normal clients as
# well as other servers connected for replication/clustering purposes. If nothing is
# specified, then no allowlist is used and all certificates are accepted.
# Supports IPv4, DNS, RFC822, and URI SAN types.
# You can put multiple names on one line as follows:
#
# tls-allowlist <dns1> <dns2> <dns3> ...
#
#
# This configuration also allows for wildcard characters with glob style formatting
# i.e. "*.com" would allow all clients to connect with a CN/SAN that ends with ".com"
################################# GENERAL #####################################
# By default KeyDB does not run as a daemon. Use 'yes' if you need it.
@ -2035,9 +2053,13 @@ server-threads 2
# bringing up replicas can result in data loss (the first master will win).
# active-replica yes
# Enable Pro? KeyDB pro provides support for pro only features
# note: you may omit the license key to demo pro features for a limited time
# enable-pro [License Key]
# Enable FLASH support? (Pro Only)
# storage-provider flash /path/to/flash/db
# KeyDB will attempt to balance clients across threads evenly; However, replica clients
# are usually much more expensive than a normal client, and so KeyDB will try to assign
# fewer clients to threads with a replica. The weighting factor below is intented to help tune
# this behavior. A replica weighting factor of 2 means we treat a replica as the equivalent
# of two normal clients. Adjusting this value may improve performance when replication is
# used. The best weighting is workload specific - e.g. read heavy workloads should set
# this to 1. Very write heavy workloads may benefit from higher numbers.
#
# By default KeyDB sets this to 2.
replica-weighting-factor 2

View File

@ -19,12 +19,12 @@ elif [ "$distributor" == "Ubuntu" ]; then
fi
codename=$(lsb_release --codename --short)
date=$(date +%a," "%d" "%b" "%Y" "%T)
pkg_name=keydb-enterprise-$majorv:$version$distname
pkg_name=keydb-$majorv:$version$distname
# create build tree
cd ../../../
tar -czvf keydb-enterprise_$version.orig.tar.gz --force-local KeyDB-Pro
cd KeyDB-Pro/pkg/deb/
tar -czvf keydb_$version.orig.tar.gz --force-local keydb-internal
cd keydb-internal/pkg/deb/
mkdir -p $pkg_name/tmp
if [[ "$codename" == "xenial" ]] || [[ "$codename" == "stretch" ]]; then
cp -r debian_dh9 $pkg_name/tmp/debian
@ -32,9 +32,9 @@ else
cp -r debian $pkg_name/tmp
fi
cp master_changelog $pkg_name/tmp/debian/changelog
mv ../../../keydb-enterprise_$version.orig.tar.gz ./$pkg_name
mv ../../../keydb_$version.orig.tar.gz ./$pkg_name
cd $pkg_name/tmp
changelog_str="keydb-enterprise ($majorv:$version-$build$distname) $codename; urgency=medium\n\n * $version $changelog_comments \n\n -- Ben Schermel <ben@eqalpha.com> $date +0000\n\n"
changelog_str="keydb ($majorv:$version-$build$distname) $codename; urgency=medium\n\n * $version $changelog_comments \n\n -- Ben Schermel <ben@eqalpha.com> $date +0000\n\n"
if [ $# -eq 0 ]; then
sed -i "1s/^/$changelog_str\n/" debian/changelog
elif [ $# -eq 1 ] && [ "$1" != "None" ]; then

View File

@ -9,6 +9,7 @@ else
SYSTEMD_EXTRA=$(cat <<EOF
RestrictAddressFamilies=AF_INET AF_INET6 AF_UNIX
#MemoryDenyWriteExecute=true
ProtectKernelModules=true
ProtectKernelTunables=true
ProtectControlGroups=true

View File

@ -1,4 +1,4 @@
Source: keydb-enterprise
Source: keydb
Section: database
Priority: optional
Maintainer: Ben Schermel <ben@eqalpha.com>
@ -26,14 +26,14 @@ Build-Depends:
libzstd-dev <!nocheck>
Standards-Version: 4.2.1
Homepage: https://docs.keydb.dev/
Vcs-Git: https://gitlab.eqalpha.com/keydb-dev/KeyDB-Pro.git
Vcs-Browser: https://gitlab.eqalpha.com/keydb-dev/KeyDB-Pro
Vcs-Git: https://github.com/EQ-Alpha/KeyDB.git
Vcs-Browser: https://github.com/EQ-Alpha/KeyDB
Package: keydb-enterprise
Package: keydb
Architecture: all
Depends:
keydb-enterprise-server (<< ${binary:Version}.1~),
keydb-enterprise-server (>= ${binary:Version}),
keydb-server (<< ${binary:Version}.1~),
keydb-server (>= ${binary:Version}),
${misc:Depends},
Description: Persistent key-value database with network interface (metapackage)
keydb is a key-value database in a similar vein to memcache but the dataset
@ -44,11 +44,11 @@ Description: Persistent key-value database with network interface (metapackage)
.
This package depends on the keydb-server package.
Package: keydb-enterprise-sentinel
Package: keydb-sentinel
Architecture: any
Depends:
lsb-base (>= 3.2-14),
keydb-enterprise-tools (= ${binary:Version}),
keydb-tools (= ${binary:Version}),
${misc:Depends},
Description: Persistent key-value database with network interface (monitoring)
keydb is a key-value database in a similar vein to memcache but the dataset
@ -57,11 +57,11 @@ Description: Persistent key-value database with network interface (monitoring)
.
This package contains the keydb Sentinel monitoring software.
Package: keydb-enterprise-server
Package: keydb-server
Architecture: any
Depends:
lsb-base (>= 3.2-14),
keydb-enterprise-tools (= ${binary:Version}),
keydb-tools (= ${binary:Version}),
${misc:Depends},
Description: Persistent key-value database with network interface
keydb is a key-value database in a similar vein to memcache but the dataset
@ -70,7 +70,7 @@ Description: Persistent key-value database with network interface
.
The dataset is stored entirely in memory and periodically flushed to disk.
Package: keydb-enterprise-tools
Package: keydb-tools
Architecture: any
Depends:
adduser,

View File

@ -1,13 +1,14 @@
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Upstream-Contact: John Sully <john@eqalpha.com>
Upstream-Name: keydb-enterprise
Source: https://gitlab.eqalpha.com/keydb-dev/KeyDB-Pro
Upstream-Name: KeyDB
Source: https://github.com/EQ-Alpha/KeyDB
Files: *
Copyright:
© 2006-2014 Salvatore Sanfilippo <antirez@gmail.com>
© 2019-2021 John Sully
© 2019-2021 EQ Alpha Technology Ltd.
© 2021 Snap Inc.
License: BSD-3-clause
@ -89,6 +90,7 @@ Files: pkg/deb/debian/*
Copyright:
© 2009 Chris Lamb <lamby@debian.org>
© 2020-2021 EQ Alpha Technology Ltd. <support@eqalpha.com>
© 2021 Snap Inc.
License: BSD-3-clause
License: BSD-2-clause

View File

@ -1 +0,0 @@
pkg/deb/conf/sentinel.conf /etc/keydb

View File

@ -1 +0,0 @@
debian/keydb-enterprise-sentinel.1

View File

@ -1 +0,0 @@
pkg/deb/conf/keydb.conf /etc/keydb

View File

@ -1 +0,0 @@
debian/keydb-enterprise-server.1

View File

@ -0,0 +1 @@
debian/keydb-sentinel.1

View File

@ -0,0 +1 @@
debian/keydb-server.1

View File

@ -19,8 +19,7 @@ endif
override_dh_auto_install:
debian/bin/generate-systemd-service-files
dh_installsystemd --name keydb-server --restart-after-upgrade
dh_installsystemd --name keydb-sentinel --restart-after-upgrade
dh_installsystemd --restart-after-upgrade
override_dh_auto_test:
ifeq (,$(filter nocheck,$(DEB_BUILD_OPTIONS)))

View File

@ -1,2 +1,2 @@
# Upstream do not provide signed tarballs.
keydb-enterprise source: debian-watch-does-not-check-gpg-signature
keydb-pro source: debian-watch-does-not-check-gpg-signature

View File

@ -1,3 +1,3 @@
version=6
opts=uversionmangle=s/-?(alpha|beta|rc)/~$1/ \
https://gitlab.eqalpha.com/keydb-dev/KeyDB-Pro/releases .*/archive/(.*).tar.gz
https://github.com/EQ-Alpha/KeyDB/releases .*/archive/(.*).tar.gz

View File

@ -9,6 +9,7 @@ else
SYSTEMD_EXTRA=$(cat <<EOF
RestrictAddressFamilies=AF_INET AF_INET6 AF_UNIX
#MemoryDenyWriteExecute=true
ProtectKernelModules=true
ProtectKernelTunables=true
ProtectControlGroups=true
@ -77,6 +78,8 @@ do
#
# $ systemctl start ${BINARY}@myname.service
# $ keydb-cli -s /var/run/${NAME}-myname/${BINARY}.sock info | grep config_file
#
# -- Chris Lamb <lamby@debian.org> Mon, 09 Oct 2017 22:17:24 +0100
EOF
fi

View File

@ -1,4 +1,4 @@
Source: keydb-enterprise
Source: keydb
Section: database
Priority: optional
Maintainer: Ben Schermel <ben@eqalpha.com>
@ -6,11 +6,6 @@ Build-Depends:
debhelper (>= 9~),
dpkg-dev (>= 1.17.5),
systemd,
# libhiredis-dev (>= 0.14.0),
# libjemalloc-dev [linux-any],
# liblua5.1-dev,
# lua-bitop-dev,
# lua-cjson-dev,
libsystemd-dev <!nocheck>,
procps <!nocheck>,
build-essential <!nocheck>,
@ -30,14 +25,14 @@ Build-Depends:
libzstd-dev <!nocheck>
Standards-Version: 4.2.1
Homepage: https://docs.keydb.dev/
Vcs-Git: https://gitlab.eqalpha.com/keydb-dev/KeyDB-Pro.git
Vcs-Browser: https://gitlab.eqalpha.com/keydb-dev/KeyDB-Pro
Vcs-Git: https://github.com/EQ-Alpha/KeyDB.git
Vcs-Browser: https://github.com/EQ-Alpha/KeyDB
Package: keydb-enterprise
Package: keydb
Architecture: all
Depends:
keydb-enterprise-server (<< ${binary:Version}.1~),
keydb-enterprise-server (>= ${binary:Version}),
keydb-server (<< ${binary:Version}.1~),
keydb-server (>= ${binary:Version}),
${misc:Depends},
Description: Persistent key-value database with network interface (metapackage)
keydb is a key-value database in a similar vein to memcache but the dataset
@ -48,11 +43,11 @@ Description: Persistent key-value database with network interface (metapackage)
.
This package depends on the keydb-server package.
Package: keydb-enterprise-sentinel
Package: keydb-sentinel
Architecture: any
Depends:
lsb-base (>= 3.2-14),
keydb-enterprise-tools (= ${binary:Version}),
keydb-tools (= ${binary:Version}),
${misc:Depends},
Description: Persistent key-value database with network interface (monitoring)
keydb is a key-value database in a similar vein to memcache but the dataset
@ -61,11 +56,11 @@ Description: Persistent key-value database with network interface (monitoring)
.
This package contains the keydb Sentinel monitoring software.
Package: keydb-enterprise-server
Package: keydb-server
Architecture: any
Depends:
lsb-base (>= 3.2-14),
keydb-enterprise-tools (= ${binary:Version}),
keydb-tools (= ${binary:Version}),
${misc:Depends},
Description: Persistent key-value database with network interface
keydb is a key-value database in a similar vein to memcache but the dataset
@ -74,7 +69,7 @@ Description: Persistent key-value database with network interface
.
The dataset is stored entirely in memory and periodically flushed to disk.
Package: keydb-enterprise-tools
Package: keydb-tools
Architecture: any
Depends:
adduser,

View File

@ -1,13 +1,89 @@
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Upstream-Contact: John Sully <john@eqalpha.com>
Upstream-Name: keydb-enterprise
Source: https://gitlab.eqalpha.com/keydb-dev/KeyDB-Pro
Upstream-Name: KeyDB
Source: https://github.com/EQ-Alpha/KeyDB
Files: *
Copyright: © 2006-2014 Salvatore Sanfilippo <antirez@gmail.com>
Copyright © 2019, John Sully
License: Proprietary
Copyright:
© 2006-2014 Salvatore Sanfilippo <antirez@gmail.com>
© 2019-2021 John Sully
© 2019-2021 EQ Alpha Technology Ltd.
License: BSD-3-clause
Files:
src/rio.*
src/t_zset.c
src/ziplist.h
src/intset.*
src/redis-check-aof.c
deps/hiredis/*
deps/linenoise/*
Copyright:
© 2009-2012 Pieter Noordhuis <pcnoordhuis@gmail.com>
© 2009-2012 Salvatore Sanfilippo <antirez@gmail.com>
License: BSD-3-clause
Files:
src/lzf.h
src/lzfP.h
src/lzf_d.c
src/lzf_c.c
Copyright:
© 2000-2007 Marc Alexander Lehmann <schmorp@schmorp.de>
© 2009-2012 Salvatore Sanfilippo <antirez@gmail.com>
License: BSD-2-clause
Files: src/setproctitle.c
Copyright:
© 2010 William Ahern
© 2013 Salvatore Sanfilippo
© 2013 Stam He
License: BSD-3-clause
Files: src/ae_evport.c
Copyright: © 2012 Joyent, Inc.
License: BSD-3-clause
Files: src/ae_kqueue.c
Copyright: © 2009 Harish Mallipeddi <harish.mallipeddi@gmail.com>
License: BSD-3-clause
Files: utils/install_server.sh
Copyright: © 2011 Dvir Volk <dvirsk@gmail.com>
License: BSD-3-clause
Files: deps/jemalloc/*
Copyright:
© 2002-2012 Jason Evans <jasone@canonware.com>
© 2007-2012 Mozilla Foundation
© 2009-2012 Facebook, Inc.
License: BSD-3-clause
Files: src/pqsort.*
Copyright: © 1992-1993 The Regents of the University of California
License: BSD-3-clause
Files: deps/lua/*
Copyright: © 1994-2012 Lua.org, PUC-Ri
License: MIT
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
.
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
Files: pkg/deb/debian_dh9/*
Copyright:

1
pkg/deb/debian_dh9/files Normal file
View File

@ -0,0 +1 @@
keydb_5.3.3-1~bionic1_source.buildinfo database optional

View File

@ -1,6 +1,6 @@
.TH KEYDB-BENCHMARK 1 "August 17, 2019"
.SH NAME
keydb-benchmark \- Benchmark a KeyDB instance
keydb-benchmark \- Benechmark a KeyDB instance
.SH SYNOPSIS
.B redis-benchmark
[\-h <host>] [\-p <port>] [\-c <clients>] [\-n <requests]> [\-k <boolean>]

View File

@ -1 +0,0 @@
debian/keydb-enterprise-sentinel.1

View File

@ -1,12 +0,0 @@
#!/bin/sh
set -e
# Automatically added by dh_installinit/11.1.6ubuntu1
if [ -x "/etc/init.d/keydb-sentinel" ]; then
invoke-rc.d keydb-sentinel stop || exit 1
fi
# End automatically added section
# Automatically added by dh_installsystemd/11.1.6ubuntu1
if [ -d /run/systemd/system ] && [ "$1" = remove ]; then
deb-systemd-invoke stop 'keydb-sentinel.service' >/dev/null || true
fi
# End automatically added section

View File

@ -1 +0,0 @@
debian/keydb-enterprise-server.1

View File

@ -1,12 +0,0 @@
#!/bin/sh
set -e
# Automatically added by dh_installinit/11.1.6ubuntu1
if [ -x "/etc/init.d/keydb-server" ]; then
invoke-rc.d keydb-server stop || exit 1
fi
# End automatically added section
# Automatically added by dh_installsystemd/11.1.6ubuntu1
if [ -d /run/systemd/system ] && [ "$1" = remove ]; then
deb-systemd-invoke stop 'keydb-server.service' >/dev/null || true
fi
# End automatically added section

View File

@ -0,0 +1,8 @@
# keydb-sentinel configure options
# ULIMIT: Call ulimit -n with this argument prior to invoking KeyDB Sentinel
# itself. This may be required for high-concurrency environments. KeyDB
# Sentinel itself cannot alter its limits as it is not being run as root.
# (default: 65536)
#
ULIMIT=65536

View File

@ -0,0 +1,89 @@
#! /bin/sh
### BEGIN INIT INFO
# Provides: keydb-sentinel
# Required-Start: $syslog $remote_fs
# Required-Stop: $syslog $remote_fs
# Should-Start: $local_fs
# Should-Stop: $local_fs
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: keydb-sentinel - Persistent key-value db monitor
# Description: keydb-sentinel - Persistent key-value db monitor
### END INIT INFO
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DAEMON=/usr/bin/keydb-sentinel
DAEMON_ARGS=/etc/keydb/sentinel.conf
NAME=keydb-sentinel
DESC=keydb-sentinel
RUNDIR=/var/run/sentinel
PIDFILE=$RUNDIR/keydb-sentinel.pid
test -x $DAEMON || exit 0
if [ -r /etc/default/$NAME ]
then
. /etc/default/$NAME
fi
. /lib/lsb/init-functions
set -e
if [ "$(id -u)" != "0" ]
then
log_failure_msg "Must be run as root."
exit 1
fi
case "$1" in
start)
echo -n "Starting $DESC: "
mkdir -p $RUNDIR
touch $PIDFILE
chown keydb:keydb $RUNDIR $PIDFILE
chmod 755 $RUNDIR
if [ -n "$ULIMIT" ]
then
ulimit -n $ULIMIT || true
fi
if start-stop-daemon --start --quiet --oknodo --umask 007 --pidfile $PIDFILE --chuid keydb:keydb --exec $DAEMON -- $DAEMON_ARGS
then
echo "$NAME."
else
echo "failed"
fi
;;
stop)
echo -n "Stopping $DESC: "
if start-stop-daemon --stop --retry forever/TERM/1 --quiet --oknodo --pidfile $PIDFILE --exec $DAEMON
then
echo "$NAME."
else
echo "failed"
fi
rm -f $PIDFILE
sleep 1
;;
restart|force-reload)
${0} stop
${0} start
;;
status)
status_of_proc -p ${PIDFILE} ${DAEMON} ${NAME}
;;
*)
echo "Usage: /etc/init.d/$NAME {start|stop|restart|force-reload|status}" >&2
exit 1
;;
esac
exit 0

View File

@ -0,0 +1,2 @@
debian/keydb-sentinel.service /lib/systemd/system
pkg/deb/conf/sentinel.conf /etc/keydb

View File

@ -0,0 +1 @@
debian/keydb-sentinel.1

View File

@ -21,6 +21,4 @@ then
find /etc/keydb -maxdepth 1 -type d -name 'keydb-sentinel.*.d' -empty -delete
fi
systemctl daemon-reload
exit 0

View File

@ -11,6 +11,4 @@ fi
#DEBHELPER#
systemctl daemon-reload
exit 0

View File

@ -0,0 +1,7 @@
# keydb-server configure options
# ULIMIT: Call ulimit -n with this argument prior to invoking Redis itself.
# This may be required for high-concurrency environments. KeyDB itself cannot
# alter its limits as it is not being run as root. (default: 65536)
#
ULIMIT=65536

View File

@ -0,0 +1,89 @@
#! /bin/sh
### BEGIN INIT INFO
# Provides: keydb-server
# Required-Start: $syslog $remote_fs
# Required-Stop: $syslog $remote_fs
# Should-Start: $local_fs
# Should-Stop: $local_fs
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: keydb-server - Persistent key-value db
# Description: keydb-server - Persistent key-value db
### END INIT INFO
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DAEMON=/usr/bin/keydb-server
DAEMON_ARGS=/etc/keydb/keydb.conf
NAME=keydb-server
DESC=keydb-server
RUNDIR=/var/run/keydb
PIDFILE=$RUNDIR/keydb-server.pid
test -x $DAEMON || exit 0
if [ -r /etc/default/$NAME ]
then
. /etc/default/$NAME
fi
. /lib/lsb/init-functions
set -e
if [ "$(id -u)" != "0" ]
then
log_failure_msg "Must be run as root."
exit 1
fi
case "$1" in
start)
echo -n "Starting $DESC: "
mkdir -p $RUNDIR
touch $PIDFILE
chown keydb:keydb $RUNDIR $PIDFILE
chmod 755 $RUNDIR
if [ -n "$ULIMIT" ]
then
ulimit -n $ULIMIT || true
fi
if start-stop-daemon --start --quiet --oknodo --umask 007 --pidfile $PIDFILE --chuid keydb:keydb --exec $DAEMON -- $DAEMON_ARGS
then
echo "$NAME."
else
echo "failed"
fi
;;
stop)
echo -n "Stopping $DESC: "
if start-stop-daemon --stop --retry forever/TERM/1 --quiet --oknodo --pidfile $PIDFILE --exec $DAEMON
then
echo "$NAME."
else
echo "failed"
fi
rm -f $PIDFILE
sleep 1
;;
restart|force-reload)
${0} stop
${0} start
;;
status)
status_of_proc -p ${PIDFILE} ${DAEMON} ${NAME}
;;
*)
echo "Usage: /etc/init.d/$NAME {start|stop|restart|force-reload|status}" >&2
exit 1
;;
esac
exit 0

View File

@ -0,0 +1,2 @@
debian/keydb-server.service /lib/systemd/system
pkg/deb/conf/keydb.conf /etc/keydb

View File

@ -0,0 +1 @@
debian/keydb-server.1

View File

@ -21,6 +21,4 @@ then
find /etc/keydb -maxdepth 1 -type d -name 'keydb-server.*.d' -empty -delete
fi
systemctl daemon-reload
exit 0

View File

@ -11,6 +11,4 @@ fi
#DEBHELPER#
systemctl daemon-reload
exit 0

View File

@ -1,8 +1,8 @@
debian/bash_completion.d/* /usr/share/bash-completion/completions
src/keydb-server /usr/bin
src/keydb-benchmark /usr/bin
src/keydb-check-aof /usr/bin
src/keydb-check-rdb /usr/bin
src/keydb-cli /usr/bin
src/keydb-server /usr/bin
src/keydb-sentinel /usr/bin
src/keydb-diagnostic-tool /usr/bin

View File

@ -33,9 +33,9 @@ override_dh_auto_install:
override_dh_auto_test:
ifeq (,$(filter nocheck,$(DEB_BUILD_OPTIONS)))
# Avoid race conditions in upstream testsuite.
./runtest --clients 1 || true
./runtest-cluster || true
./runtest-sentinel || true
# ./runtest --clients 1 || true
# ./runtest-cluster || true
# ./runtest-sentinel || true
endif
override_dh_auto_clean:

View File

@ -1,3 +1,2 @@
keydb-enterprise_5.0.6.orig.tar.gz
keydb-enterprise_5.0.6-1~bionic1.debian.tar.xz
keydb_5.0.6.orig.tar.gz
keydb_5.0.6-1chl1~bionic1.debian.tar.xz

View File

@ -1,2 +1,2 @@
# Upstream do not provide signed tarballs.
keydb-enterprise source: debian-watch-does-not-check-gpg-signature
keydb source: debian-watch-does-not-check-gpg-signature

View File

@ -1,2 +1 @@
extend-diff-ignore = "^\.travis\.yml$"

View File

@ -1,3 +1,3 @@
version=6
version=4
opts=uversionmangle=s/-?(alpha|beta|rc)/~$1/ \
https://gitlab.eqalpha.com/keydb-dev/KeyDB-Pro/releases .*/archive/(.*).tar.gz
https://github.com/EQ-Alpha/KeyDB/releases .*/archive/(.*).tar.gz

View File

@ -1,5 +1,119 @@
keydb-enterprise (6:6.0.12-1distribution_placeholder) codename_placeholder; urgency=medium
keydb (6:6.2.2-1distribution_placeholder) codename_placeholder; urgency=medium
* 6.0.12 Enable SCAN for MVCC
* Acquire lock in module.cpp to fix module test break
* Fix usage of nanosleep() on Apple hardware
* Fix networking deadlock (#183)
* Remove redundant zfree() in keydb-benchmark
* Issues resolved: #378, #384
-- Ben Schermel <ben@eqalpha.com> Fri, 10 Jul 2020 20:00:37 +0000
-- Ben Schermel <ben@eqalpha.com> Sat, 15 Jan 2022 20:00:37 +0000
keydb (6:6.2.1-1distribution_placeholder) codename_placeholder; urgency=medium
* This release of KeyDB is at parity with Redis 6.2.6. In addition, the following changes were included:
* Systemd support for release packages
* Fixes to buffer overflows in the `BITOP SHIFT` and `CRON` commands
* Server times are now computed on a seperate thread to improve performance
* Now enforces syslog identity and facility as soon as possible
* Removed erroneous use of LOG_... flags when using syslog
* Fixed erroneous `#endif` leading to build errors on some platforms
* Fixed the incorrect counting of client connections
* Issues resolved: #355, #370
-- Ben Schermel <ben@eqalpha.com> Wed, 17 Nov 2021 20:00:37 +0000
keydb (6:6.2.0-1distribution_placeholder) codename_placeholder; urgency=medium
* Removed unused command line options(-a, -d, -P, -r, -q, --csv, -l, -I, -e, --precision, --cluster, --enable-tracking)
* --ms option changed to --time, added --clients, --host, --port, and --threads options
* Added keydb-diagnostic-tool
* Improved test reliability
* Fixed memory leak in keydb-benchmark
* Fixed a number of race conditions
* Fixed OSX build issues
* Feature parity with Redis 6.2.3
* Fixed Issues: #323 #325 #276
-- Ben Schermel <ben@eqalpha.com> Thu, 12 Aug 2021 20:00:37 +0000
keydb (6:6.0.18-1distribution_placeholder) codename_placeholder; urgency=medium
* 6.0.18 - This release contains a number of improvements to stability and performance.
* Additional tests were added with improvements to existing test reliability
* Merged Redis 6.0.10 into KeyDB
* Issues resolved in this release: #214, #222, #238, #257, #273, #276, #285
-- Ben Schermel <ben@eqalpha.com> Fri, 26 Mar 2021 16:00:00 +0000
keydb (6:6.0.16-1distribution_placeholder) codename_placeholder; urgency=medium
* 6.0.16 - This release contains significant performance improvements as well as fixes to the following issues: #234, #236, #233, #207, #229, #231
* Reduced memory consumption when Active Replication is not used
* Reduced CPU consumption
* Improved TLS performance
* replica-quorum config for multi-master.Intended to be used with "replica-serve-stale-data no", if at least N replicas are connected we will consider our master link up and serve data.
* Subkey expires performance improvement for big sets
-- Ben Schermel <ben@eqalpha.com> Mon, 28 Sep 2020 16:00:00 +0000
keydb (6:6.0.13-1distribution_placeholder) codename_placeholder; urgency=medium
* 6.0.13 New features added: KEYDB.MEXISTS, REPLICAOF REMOVE, multi-master-no-forward configuration option
* KEYDB.MEXISTS - return exactly which keys exist in the database not just the count
* REPLICAOF REMOVE - Remove specific masters in a multi master setup
* multi-master-no-forward configuration option - Reduce network traffic in mesh topology multimaster setups
* Redis 6.0.5 feature parity
* Fixed Issues: 194 Bad directive or wrong number of arguments error on 'lazyfree-lazy-user-del no'; 209 Timeout using modules; 210 Databases are not merged on multi-master sync; 211 rpm packages now signed; 212 rpm file permissions updated
-- Ben Schermel <ben@eqalpha.com> Mon, 13 Jul 2020 8:00:00 +0000
keydb (6:6.0.9-1distribution_placeholder) codename_placeholder; urgency=medium
* 6.0.9 Addressing issues 187 - cpu lockup with subkey expire, 190 - missing sentinel binary in keydb-tools.
-- Ben Schermel <ben@eqalpha.com> Sun, 07 Jun 2020 18:00:37 +0000
keydb (6:6.0.8-1distribution_placeholder) codename_placeholder; urgency=medium
* This is our first release to fully support all Redis 6.0.4 features, including but not limited to: TLS Support (fully supports multithreading!), Client side caching, RESP 3 Support
* KeyDB Has also added the following new features: Improved memory efficiency for short strings, Fastlock autotuning, KeyDB.HRENAME (rename a member of a hash)In addition we've spent a lot of time focussing on stability.
* The following bug fixes are resolved: 150 - Deadlock in ReplicationFeedMonitors, 170 - KeyDB dying via SIGABORT, 180 - crash after setting maxclients via cmd line, 169 - Write performance of a master dropped sharply when a slave is added
* In addition untracked issues were resolved: Potential deadlock when entering futex sleep, Pub/Sub Async messages may not be sent in a timely manner when load is low, Excessive logging during failed RREPLAY, KeyDB unresponsive handling clients on different threads during RDB load
* Updated deb package builds to build from source and phasing out init.d. dh_installsystemd from deb helper 11 used where applicable
* Naming conventions are now updated [ keydbpackage_version-build~distribution_architecture] and master changelog included and maintained
* keydb-pro-server binary is no longer inluded in the open source package
-- Ben Schermel <ben@eqalpha.com> Mon, 1 Jun 2020 8:00:37 +0000
keydb (5:5.3.3-1distribution_placeholder) codename_placeholder; urgency=medium
* 5.3.3 Updating deb source package, naming conventions, and build scripts.
-- Ben Schermel <ben@eqalpha.com> Wed, 06 May 2020 8:00:37 +0000
keydb (5:5.1.12-1chl1distribution_placeholder) codename_placeholder; urgency=medium
* 5.1.1 update. This update fixes several rare deadlock scenarios. Deadlock detection is also added.
-- Ben Schermel <ben@eqalpha.com> Fri, 25 Oct 2019 8:00:37 +0000
keydb (5:5.1.11-1chl1distribution_placeholder) codename_placeholder; urgency=medium
* 5.1 release. This release includes subkey expires (EXPIREMEMBER/EXPIREMEMBERAT), with updates to PTTL/TTL accordingly. New OBJECT LASTMODIFIED, BITIOP LSHIFT & BITOP RSHIFT commands. See https://docs.keydb.dev/blog/2019/10/20/blog-post/ for detailed review of release.
-- Ben Schermel <ben@eqalpha.com> Mon, 21 Oct 2019 8:00:37 +0000
keydb (5:5.0.1-1chl1distribution_placeholder) codename_placeholder; urgency=medium
* Arm build now included for bionic package
-- Ben Schermel <ben@eqalpha.com> Wed, 21 Aug 2019 22:58:37 +0000
keydb (5:5.0.0-1chl1distribution_placeholder) codename_placeholder; urgency=medium
* Initial release of KeyDB PPA. This PPA was originally derived from https://launchpad.net/~chris-lea/+archive/ubuntu/redis-server
-- Ben Schermel <ben@eqalpha.com> Wed, 21 Aug 2019 2:58:37 +0000

View File

@ -1,16 +0,0 @@
#!/bin/sh
set -e
# first arg is `-f` or `--some-option`
# or first arg is `something.conf`
if [ "${1#-}" != "$1" ] || [ "${1%.conf}" != "$1" ]; then
set -- keydb-server "$@"
fi
# allow the container to be started with `--user`
if [ "$1" = 'keydb-server' -a "$(id -u)" = '0' ]; then
find . \! -user keydb -exec chown keydb '{}' +
exec gosu keydb "$0" "$@"
fi
exec "$@"

View File

@ -39,9 +39,8 @@ sed -i -E "1a\Version : $version" $DIR/keydb_build/keydb.spec
sed -i '3d' $DIR/keydb_build/keydb.spec
sed -i -E "2a\Release : $release%{?dist}" $DIR/keydb_build/keydb.spec
# yum install -y scl-utils centos-release-scl rpm-build
mkdir -p /root/rpmbuild/BUILDROOT/keydb-enterprise-$version-$release.$dist.$arch
cp -r $DIR/keydb_build/keydb_rpm/* /root/rpmbuild/BUILDROOT/keydb-enterprise-$version-$release.$dist.$arch/
mkdir -p /root/rpmbuild/BUILDROOT/keydb-$version-$release.$dist.$arch
cp -r $DIR/keydb_build/keydb_rpm/* /root/rpmbuild/BUILDROOT/keydb-$version-$release.$dist.$arch/
rpmbuild -bb $DIR/keydb_build/keydb.spec
mv /root/rpmbuild/RPMS/$arch/* $DIR/rpm_files_generated

View File

@ -1,9 +1,9 @@
Name : keydb-enterprise
Name : keydb
Version : 6.0.5
Release : 1%{?dist}
Group : Unspecified
License : BSD
Packager : EQ Alpha Technology
Packager : Snap Inc.
URL : https://keydb.dev
Summary : A persistent key-value database

View File

@ -257,6 +257,24 @@ tcp-keepalive 300
#
# tls-session-cache-timeout 60
# Allow the server to monitor the filesystem and rotate out TLS certificates if
# they change on disk, defaults to no.
#
# tls-rotation no
# Setup a allowlist of allowed Common Names (CNs)/Subject Alternative Names (SANs)
# that are allowed to connect to this server. This includes both normal clients as
# well as other servers connected for replication/clustering purposes. If nothing is
# specified, then no allowlist is used and all certificates are accepted.
# Supports IPv4, DNS, RFC822, and URI SAN types.
# You can put multiple names on one line as follows:
#
# tls-allowlist <dns1> <dns2> <dns3> ...
#
#
# This configuration also allows for wildcard characters with glob style formatting
# i.e. "*.com" would allow all clients to connect with a CN/SAN that ends with ".com"
################################# GENERAL #####################################
# By default KeyDB does not run as a daemon. Use 'yes' if you need it.
@ -2035,9 +2053,13 @@ server-threads 2
# bringing up replicas can result in data loss (the first master will win).
# active-replica yes
# Enable Pro? KeyDB pro provides support for pro only features
# note: you may omit the license key to demo pro features for a limited time
# enable-pro [License Key]
# Enable FLASH support? (Pro Only)
# storage-provider flash /path/to/flash/db
# KeyDB will attempt to balance clients across threads evenly; However, replica clients
# are usually much more expensive than a normal client, and so KeyDB will try to assign
# fewer clients to threads with a replica. The weighting factor below is intented to help tune
# this behavior. A replica weighting factor of 2 means we treat a replica as the equivalent
# of two normal clients. Adjusting this value may improve performance when replication is
# used. The best weighting is workload specific - e.g. read heavy workloads should set
# this to 1. Very write heavy workloads may benefit from higher numbers.
#
# By default KeyDB sets this to 2.
replica-weighting-factor 2

View File

@ -1,5 +1,8 @@
Copyright (c) 2006-2015, Salvatore Sanfilippo
Copyright (C) 2019, John Sully
Copyright (c) 2006-2020, Salvatore Sanfilippo
Copyright (C) 2019-2021, John Sully
Copyright (C) 2020-2021, EQ Alpha Technology Ltd.
Copyright (C) 2021, Snap Inc.
All rights reserved.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: