From mboxrd@z Thu Jan 1 00:00:00 1970 Delivery-date: Thu, 02 Dec 2021 16:11:07 +0100 Received: from metis.ext.pengutronix.de ([2001:67c:670:201:290:27ff:fe1d:cc33]) by lore.white.stw.pengutronix.de with esmtp (Exim 4.92) (envelope-from ) id 1msnjn-0003LZ-TC for lore@lore.pengutronix.de; Thu, 02 Dec 2021 16:11:07 +0100 Received: from localhost ([127.0.0.1] helo=metis.ext.pengutronix.de) by metis.ext.pengutronix.de with esmtp (Exim 4.92) (envelope-from ) id 1msnjn-0000tf-JI; Thu, 02 Dec 2021 16:11:07 +0100 Received: from mail.pqgruber.com ([52.59.78.55]) by metis.ext.pengutronix.de with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from ) id 1msnj6-0000t1-Lx for ptxdist@pengutronix.de; Thu, 02 Dec 2021 16:10:25 +0100 Received: from workstation.tuxnet (213-47-165-233.cable.dynamic.surfer.at [213.47.165.233]) by mail.pqgruber.com (Postfix) with ESMTPSA id C0C5EC73801; Thu, 2 Dec 2021 16:10:23 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=pqgruber.com; s=mail; t=1638457823; bh=1lKjoFsgJlM7dSA4oPgUE56K2EbM87mjV7cEqBxYU7A=; h=From:To:Cc:Subject:Date:From; b=B521A1p0T8ZXRB/ZViNmBqQLnEvqQUSHvrkOGL0oBANd/4cidqQ+yy7TQ+JCDdOKg 4/x0ddiu5VgmnyhR/vEG6yaj1Yr6Fl2fNvmH5DHkMBt12cTjgWtm2/tC5FHrEtB0jo QMDqWfLE8EaPugnq5IByWWB6Tr6jnQBO8vHOt8yA= From: Clemens Gruber To: ptxdist@pengutronix.de Date: Thu, 2 Dec 2021 16:09:55 +0100 Message-Id: <20211202150955.121266-1-clemens.gruber@pqgruber.com> X-Mailer: git-send-email 2.34.1 MIME-Version: 1.0 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on metis.ext.pengutronix.de X-Spam-Level: X-Spam-Status: No, score=-102.6 required=4.0 tests=AWL,BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,SPF_HELO_NONE,SPF_PASS, USER_IN_WELCOMELIST,USER_IN_WHITELIST autolearn=ham autolearn_force=no version=3.4.2 Subject: [ptxdist] [PATCH] redis: new package X-BeenThere: ptxdist@pengutronix.de X-Mailman-Version: 2.1.29 Precedence: list List-Id: PTXdist Development Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: ptxdist@pengutronix.de Cc: Clemens Gruber Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "ptxdist" X-SA-Exim-Connect-IP: 127.0.0.1 X-SA-Exim-Mail-From: ptxdist-bounces@pengutronix.de X-SA-Exim-Scanned: No (on metis.ext.pengutronix.de); SAEximRunCond expanded to false Adds a new package for redis, an open source (BSD licensed), in-memory data structure store, used as a database, cache, and message broker. Signed-off-by: Clemens Gruber --- ...ort-systemd-and-set-a-data-directory.patch | 30 ++++++ patches/redis-6.2.6/series | 4 + projectroot/etc/group | 1 + projectroot/etc/passwd | 1 + .../usr/lib/systemd/system/redis.service | 23 +++++ projectroot/usr/lib/tmpfiles.d/redis.conf | 1 + rules/redis.in | 27 ++++++ rules/redis.make | 96 +++++++++++++++++++ 8 files changed, 183 insertions(+) create mode 100644 patches/redis-6.2.6/0001-Support-systemd-and-set-a-data-directory.patch create mode 100644 patches/redis-6.2.6/series create mode 100644 projectroot/usr/lib/systemd/system/redis.service create mode 100644 projectroot/usr/lib/tmpfiles.d/redis.conf create mode 100644 rules/redis.in create mode 100644 rules/redis.make diff --git a/patches/redis-6.2.6/0001-Support-systemd-and-set-a-data-directory.patch b/patches/redis-6.2.6/0001-Support-systemd-and-set-a-data-directory.patch new file mode 100644 index 000000000..34d8fd283 --- /dev/null +++ b/patches/redis-6.2.6/0001-Support-systemd-and-set-a-data-directory.patch @@ -0,0 +1,30 @@ +From: Clemens Gruber +Date: Mon, 15 Nov 2021 16:21:31 +0100 +Subject: [PATCH] Support systemd and set a data directory + +--- + redis.conf | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/redis.conf b/redis.conf +index e8eff2774981..8f76ea1c84e4 100644 +--- a/redis.conf ++++ b/redis.conf +@@ -272,7 +272,7 @@ daemonize no + # The default is "no". To run under upstart/systemd, you can simply uncomment + # the line below: + # +-# supervised auto ++supervised auto + + # If a pid file is specified, Redis writes it where specified at startup + # and removes it at exit. +@@ -451,7 +451,7 @@ rdb-del-sync-files no + # 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/patches/redis-6.2.6/series b/patches/redis-6.2.6/series new file mode 100644 index 000000000..1a299f8b7 --- /dev/null +++ b/patches/redis-6.2.6/series @@ -0,0 +1,4 @@ +# generated by git-ptx-patches +#tag:base --start-number 1 +0001-Support-systemd-and-set-a-data-directory.patch +# a122637ab2789578ffe3ff7cc6f22faf - git-ptx-patches magic diff --git a/projectroot/etc/group b/projectroot/etc/group index 09df73ba0..69d650510 100644 --- a/projectroot/etc/group +++ b/projectroot/etc/group @@ -33,4 +33,5 @@ render:x:209: pulse:x:210: chrony:x:211: rauc-hawkbit:x:212: +redis:x:213: nogroup:x:65534: diff --git a/projectroot/etc/passwd b/projectroot/etc/passwd index 529f49a77..b4669abb5 100644 --- a/projectroot/etc/passwd +++ b/projectroot/etc/passwd @@ -17,5 +17,6 @@ systemd-journal-upload:x:208:208:systemd-journal-upload:/dev/null:/bin/false pulse:x:209:210:pulse:/dev/null:/bin/false chrony:x:210:211:chrony:/dev/null:/bin/false rauc-hawkbit:x:211:212:rauc-hawkbit:/dev/null:/bin/false +redis:x:212:213:redis:/dev/null:/bin/false rpcuser:x:65533:65534:RPC user:/dev/null:/bin/false nobody:x:65534:65534:Unprivileged Nobody:/dev/null:/bin/false diff --git a/projectroot/usr/lib/systemd/system/redis.service b/projectroot/usr/lib/systemd/system/redis.service new file mode 100644 index 000000000..715e64d69 --- /dev/null +++ b/projectroot/usr/lib/systemd/system/redis.service @@ -0,0 +1,23 @@ +[Unit] +Description=Advanced key-value store +After=network.target + +[Service] +Type=notify +User=redis +Group=redis +ExecStart=/usr/bin/redis-server /etc/redis.conf +TimeoutStartSec=60 +TimeoutStopSec=60 +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/projectroot/usr/lib/tmpfiles.d/redis.conf b/projectroot/usr/lib/tmpfiles.d/redis.conf new file mode 100644 index 000000000..d9283eab5 --- /dev/null +++ b/projectroot/usr/lib/tmpfiles.d/redis.conf @@ -0,0 +1 @@ +d /var/lib/redis 0700 redis redis diff --git a/rules/redis.in b/rules/redis.in new file mode 100644 index 000000000..3cf67ea89 --- /dev/null +++ b/rules/redis.in @@ -0,0 +1,27 @@ +## SECTION=system_libraries +menuconfig REDIS + tristate + prompt "redis " + select GCCLIBS_GCC_S + select LIBC_DL + select LIBC_PTHREAD + select LIBC_CRYPT + select SYSTEMD if REDIS_SYSTEMD + help + Redis is an open source (BSD licensed), in-memory data + structure store, used as a database, cache, and message + broker. + +if REDIS + +config REDIS_SYSTEMD + bool + default INITMETHOD_SYSTEMD + +config REDIS_SYSTEMD_UNIT + bool + default y + depends on SYSTEMD + prompt "Unit file for systemd" + +endif diff --git a/rules/redis.make b/rules/redis.make new file mode 100644 index 000000000..bb3bb60ff --- /dev/null +++ b/rules/redis.make @@ -0,0 +1,96 @@ +# -*-makefile-*- +# +# Copyright (C) 2021 by Clemens Gruber +# +# For further information about the PTXdist project and license conditions +# see the README file. +# + +# +# We provide this package +# +PACKAGES-$(PTXCONF_REDIS) += redis + +# +# Paths and names +# +REDIS_VERSION := 6.2.6 +REDIS_MD5 := f69ca96b39ca93001add922d558f9842 +REDIS := redis-$(REDIS_VERSION) +REDIS_SUFFIX := tar.gz +REDIS_URL := https://download.redis.io/releases/$(REDIS).$(REDIS_SUFFIX) +REDIS_SOURCE := $(SRCDIR)/$(REDIS).$(REDIS_SUFFIX) +REDIS_DIR := $(BUILDDIR)/$(REDIS) +REDIS_LICENSE := BSD-3-Clause + +# ---------------------------------------------------------------------------- +# Prepare +# ---------------------------------------------------------------------------- + +REDIS_CONF_TOOL := NO + +REDIS_MAKE_ENV := \ + $(CROSS_ENV) + +REDIS_MAKE_OPT := \ + CC=$(CROSS_CC) \ + PREFIX=/usr \ + USE_JEMALLOC=no \ + USE_SYSTEMD=$(call ptx/ifdef,PTXCONF_REDIS_SYSTEMD,yes,no) \ + all + +REDIS_PATH := PATH=$(CROSS_PATH) + +REDIS_INSTALL_OPT := \ + PREFIX=$(REDIS_PKGDIR)/usr \ + install + + +# ---------------------------------------------------------------------------- +# Install +# ---------------------------------------------------------------------------- + +$(STATEDIR)/redis.install: + @$(call targetinfo) + @$(call world/install, REDIS) + @install -v -D -m644 $(REDIS_DIR)/redis.conf \ + $(REDIS_PKGDIR)/etc/redis.conf + @$(call touch) + + +# ---------------------------------------------------------------------------- +# Target-Install +# ---------------------------------------------------------------------------- + +$(STATEDIR)/redis.targetinstall: + @$(call targetinfo) + + @$(call install_init, redis) + @$(call install_fixup, redis,PRIORITY,optional) + @$(call install_fixup, redis,SECTION,base) + @$(call install_fixup, redis,AUTHOR,"Clemens Gruber ") + @$(call install_fixup, redis,DESCRIPTION,"An in-memory database that persists on disk") + + @$(call install_copy, redis, 0, 0, 0755, -, /usr/bin/redis-benchmark) + @$(call install_copy, redis, 0, 0, 0755, -, /usr/bin/redis-cli) + @$(call install_copy, redis, 0, 0, 0755, -, /usr/bin/redis-server) + + @$(call install_link, redis, /usr/bin/redis-server, /usr/bin/redis-check-aof) + @$(call install_link, redis, /usr/bin/redis-server, /usr/bin/redis-check-rdb) + + @$(call install_alternative, redis, 0, 0, 0644, /etc/redis.conf) + + @$(call install_copy, redis, 0, 0, 0700, /var/lib/redis) + +ifdef PTXCONF_REDIS_SYSTEMD_UNIT + @$(call install_alternative, redis, 0, 0, 0644, /usr/lib/systemd/system/redis.service) + @$(call install_link, redis, ../redis.service, \ + /usr/lib/systemd/system/multi-user.target.wants/redis.service) +endif + @$(call install_alternative, redis, 0, 0, 0644, /usr/lib/tmpfiles.d/redis.conf) + + @$(call install_finish, redis) + + @$(call touch) + +# vim: syntax=make -- 2.34.1 _______________________________________________ ptxdist mailing list ptxdist@pengutronix.de To unsubscribe, send a mail with subject "unsubscribe" to ptxdist-request@pengutronix.de