From mboxrd@z Thu Jan 1 00:00:00 1970 Delivery-date: Fri, 03 Dec 2021 16:28:49 +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 1mtAUT-0001Jj-Rr for lore@lore.pengutronix.de; Fri, 03 Dec 2021 16:28:49 +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 1mtAUT-0006EL-Co; Fri, 03 Dec 2021 16:28:49 +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 1mtAUL-0006EA-Ba for ptxdist@pengutronix.de; Fri, 03 Dec 2021 16:28:42 +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 70808C73801 for ; Fri, 3 Dec 2021 16:28:40 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=pqgruber.com; s=mail; t=1638545320; bh=7v56TUnbQrTMqmmWD8iEGhUE8I/K4mKgsRHDecOgfwM=; h=Date:From:To:Subject:References:In-Reply-To:From; b=RQfQ1SMUhmbupCUEOpzudzVWbfZmXDtV7E5V9szI9Jyport0lXeYQ8dl2RQg601Af djm2eK6LXmDmpI7+zAYjFnGqb4QcdWaQ2BWJojqnMNjQXUl1UAEmeezQ/pQa6dt7tQ ruKGfQJtEbbuupX+P3Rzyx52BgDyAu7KW+4Y+uzk= Date: Fri, 3 Dec 2021 16:28:39 +0100 From: Clemens Gruber To: ptxdist@pengutronix.de Message-ID: References: <20211202150955.121266-1-clemens.gruber@pqgruber.com> <20211203151706.glrmlwa4yadeucwm@pengutronix.de> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20211203151706.glrmlwa4yadeucwm@pengutronix.de> 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: Re: [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 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 On Fri, Dec 03, 2021 at 04:17:06PM +0100, Roland Hieber wrote: > On Thu, Dec 02, 2021 at 04:09:55PM +0100, Clemens Gruber wrote: > > 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 > > Magic number? Or is this really the maximum number of file descriptors > that redis will ever need? By default, Redis sets its maxclients variable to 10000. Number of required FDs is apparently maxclients + 32. That's why some distros set the FD limit to 10032. Debian sets it to 65535 but I think 10000 client connections should be enough for embedded Linux usecases :) I took the whole service file from ArchLinux btw. > > > + > > +[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 > > Please add at least one license snippet to REDIS_LICENSE_FILES, see > > (as far as I can see, LICENSE should be enough.) OK. I will wait a bit before sending a v2, in case someone else spots something. Thanks, Clemens _______________________________________________ ptxdist mailing list ptxdist@pengutronix.de To unsubscribe, send a mail with subject "unsubscribe" to ptxdist-request@pengutronix.de