From 83b4344ad743386bd02402e68ee823c239322d35 Mon Sep 17 00:00:00 2001 From: Kevin Mihelich Date: Tue, 5 Dec 2017 00:39:00 +0000 Subject: [PATCH] added community/redis --- community/redis/PKGBUILD | 59 +++++++++++++++++++ .../redis-2.8.11-use-system-jemalloc.patch | 15 +++++ .../redis/redis.conf-sane-defaults.patch | 12 ++++ community/redis/redis.logrotate | 5 ++ community/redis/redis.service | 22 +++++++ community/redis/redis.sysusers | 1 + community/redis/redis.tmpfiles | 1 + 7 files changed, 115 insertions(+) create mode 100644 community/redis/PKGBUILD create mode 100644 community/redis/redis-2.8.11-use-system-jemalloc.patch create mode 100644 community/redis/redis.conf-sane-defaults.patch create mode 100644 community/redis/redis.logrotate create mode 100644 community/redis/redis.service create mode 100644 community/redis/redis.sysusers create mode 100644 community/redis/redis.tmpfiles diff --git a/community/redis/PKGBUILD b/community/redis/PKGBUILD new file mode 100644 index 000000000..562e070b1 --- /dev/null +++ b/community/redis/PKGBUILD @@ -0,0 +1,59 @@ +# $Id$ +# Maintainer: Sergej Pupykin +# Maintainer: Bartłomiej Piotrowski +# Contributor: Jan-Erik Rediger +# Contributor: nofxx .com> + +# ALARM: Kevin Mihelich +# - explicitly link v5/v6 with libatomic + +pkgname=redis +pkgver=4.0.6 +pkgrel=1 +pkgdesc='Advanced key-value store' +arch=('x86_64') +url='http://redis.io/' +license=('BSD') +depends=('jemalloc' 'grep' 'shadow') +backup=('etc/redis.conf' + 'etc/logrotate.d/redis') +source=(http://download.redis.io/releases/redis-$pkgver.tar.gz + redis.service redis.sysusers redis.tmpfiles + redis.logrotate + redis.conf-sane-defaults.patch + redis-2.8.11-use-system-jemalloc.patch) +sha256sums=('769b5d69ec237c3e0481a262ff5306ce30db9b5c8ceb14d1023491ca7be5f6fa' + 'cceff2a097d9041a0c73caeb5c33e849af783c6a12db866f24b8417ac3ac9d11' + '78f6ab83408956a9afaf28689128f382545c901f172cd5b670724c73f6896d5d' + '09dcc8522899dc3d1e9362989aa4acb5a3996d700b9a44f22ebb5b9667b88183' + '8b4c2caabb4f54157ad91ca472423112b1803685ad18ed11b60463d78494df13' + '22cd3b9f7e9b17647a615d009b50603e7978b0af26c3e2c53560e57573b996ed' + '9720468ede366893c32f34616c6d8670e790309757ae0abc0f49402089a7a672') + +prepare() { + cd $pkgname-$pkgver + patch -p1 -i ../redis.conf-sane-defaults.patch + patch -p1 -i ../redis-2.8.11-use-system-jemalloc.patch + [[ $CARCH == arm || $CARCH == armv6h ]] && sed -ri 's/^(FINAL_LIBS=.*)/\1 -latomic/' src/Makefile +} + +build() { + make -C $pkgname-$pkgver +} + +package() { + cd $pkgname-$pkgver + make PREFIX="$pkgdir"/usr install + + install -Dm644 COPYING "$pkgdir"/usr/share/licenses/redis/LICENSE + install -Dm644 redis.conf "$pkgdir"/etc/redis.conf + install -Dm644 ../redis.service "$pkgdir"/usr/lib/systemd/system/redis.service + + # files kept for compatibility with installations made before 2.8.13-2 + install -Dm644 ../redis.logrotate "$pkgdir"/etc/logrotate.d/redis + + ln -sf redis-server "$pkgdir"/usr/bin/redis-sentinel + + install -Dm644 "$srcdir"/redis.sysusers "$pkgdir"/usr/lib/sysusers.d/redis.conf + install -Dm644 "$srcdir"/redis.tmpfiles "$pkgdir"/usr/lib/tmpfiles.d/redis.conf +} diff --git a/community/redis/redis-2.8.11-use-system-jemalloc.patch b/community/redis/redis-2.8.11-use-system-jemalloc.patch new file mode 100644 index 000000000..5ec0a71f2 --- /dev/null +++ b/community/redis/redis-2.8.11-use-system-jemalloc.patch @@ -0,0 +1,15 @@ +Index: redis-2.8.11/src/Makefile +=================================================================== +--- redis-2.8.11.orig/src/Makefile ++++ redis-2.8.11/src/Makefile +@@ -84,8 +84,8 @@ endif + + ifeq ($(MALLOC),jemalloc) + DEPENDENCY_TARGETS+= jemalloc +- FINAL_CFLAGS+= -DUSE_JEMALLOC -I../deps/jemalloc/include +- FINAL_LIBS+= ../deps/jemalloc/lib/libjemalloc.a ++ FINAL_CFLAGS+= -DUSE_JEMALLOC -DJEMALLOC_NO_DEMANGLE -I/usr/include/jemalloc ++ FINAL_LIBS+= -ljemalloc + endif + + REDIS_CC=$(QUIET_CC)$(CC) $(FINAL_CFLAGS) diff --git a/community/redis/redis.conf-sane-defaults.patch b/community/redis/redis.conf-sane-defaults.patch new file mode 100644 index 000000000..1c4cb9a0a --- /dev/null +++ b/community/redis/redis.conf-sane-defaults.patch @@ -0,0 +1,12 @@ +diff -wbBur redis-3.2.1/redis.conf redis-3.2.1.my/redis.conf +--- redis-3.2.1/redis.conf 2016-06-17 16:15:21.000000000 +0300 ++++ redis-3.2.1.my/redis.conf 2016-06-22 18:06:23.687046141 +0300 +@@ -244,7 +244,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/redis/ + + ################################# REPLICATION ################################# + diff --git a/community/redis/redis.logrotate b/community/redis/redis.logrotate new file mode 100644 index 000000000..01d11422a --- /dev/null +++ b/community/redis/redis.logrotate @@ -0,0 +1,5 @@ +/var/log/redis.log { + notifempty + copytruncate + missingok +} diff --git a/community/redis/redis.service b/community/redis/redis.service new file mode 100644 index 000000000..0a8162b8a --- /dev/null +++ b/community/redis/redis.service @@ -0,0 +1,22 @@ +[Unit] +Description=Advanced key-value store +After=network.target + +[Service] +Type=simple +User=redis +Group=redis +ExecStart=/usr/bin/redis-server /etc/redis.conf +ExecStop=/usr/bin/redis-cli shutdown +CapabilityBoundingSet= +PrivateTmp=true +PrivateDevices=true +ProtectSystem=full +ProtectHome=true +NoNewPrivileges=true +RuntimeDirectory=redis +RuntimeDirectoryMode=755 +LimitNOFILE=10032 + +[Install] +WantedBy=multi-user.target diff --git a/community/redis/redis.sysusers b/community/redis/redis.sysusers new file mode 100644 index 000000000..2dee7d536 --- /dev/null +++ b/community/redis/redis.sysusers @@ -0,0 +1 @@ +u redis - "Redis in-memory data structure store" /var/lib/redis diff --git a/community/redis/redis.tmpfiles b/community/redis/redis.tmpfiles new file mode 100644 index 000000000..d9283eab5 --- /dev/null +++ b/community/redis/redis.tmpfiles @@ -0,0 +1 @@ +d /var/lib/redis 0700 redis redis