From 26bf79fad6de777a5eafa588c4ca69c2ff06ae6a Mon Sep 17 00:00:00 2001 From: Muhammad Mahendra Subrata Date: Sun, 12 Jan 2020 21:46:27 +0700 Subject: system/s6-rc: Added (service manager for s6-based systems). Signed-off-by: Willy Sudiarto Raharjo --- system/s6-rc/README | 29 ++++++++++ system/s6-rc/s6-rc.SlackBuild | 122 ++++++++++++++++++++++++++++++++++++++++++ system/s6-rc/s6-rc.info | 10 ++++ system/s6-rc/slack-desc | 19 +++++++ 4 files changed, 180 insertions(+) create mode 100644 system/s6-rc/README create mode 100644 system/s6-rc/s6-rc.SlackBuild create mode 100644 system/s6-rc/s6-rc.info create mode 100644 system/s6-rc/slack-desc (limited to 'system/s6-rc') diff --git a/system/s6-rc/README b/system/s6-rc/README new file mode 100644 index 0000000000..5a565ceed2 --- /dev/null +++ b/system/s6-rc/README @@ -0,0 +1,29 @@ +s6-rc is a service manager for s6-based systems, i.e. a suite of programs +that can start and stop services, both long-running daemons and one-time +initialization scripts, in the proper order according to a dependency tree. +It ensures that long-running daemons are supervised by the s6 infrastructure, +and that one-time scripts are also run in a controlled environment. + +NOTE: +Upstream recommends building skarnet.org softwares with static libraries +as most of skarnet.org softwares are small enough that using shared +libraries are generally not worth using. Therefore, by default, shared +libraries are not built and binaries are linked against the static +versions of the skarnet.org libraries. + +If you want to also build the shared libraries, pass BUILD_SHARED=yes +environment variable to the SlackBuild script like below: + + BUILD_SHARED=yes ./s6-rc.SlackBuild + +Similarly, to avoid building the static libraries, you can pass +BUILD_STATIC=no to the script. For example, to only build the shared +libraries and not the static ones, you can do something like: + + BUILD_SHARED=yes BUILD_STATIC=no ./s6-rc.SlackBuild + +If you just want to build and use skarnet.org softwares, building only +the static libraries should be sufficient. + +If you want the binaries to be linked against the shared versions of the +skarnet.org libraries, pass LINK_SHARED=yes to the script. diff --git a/system/s6-rc/s6-rc.SlackBuild b/system/s6-rc/s6-rc.SlackBuild new file mode 100644 index 0000000000..ff38938475 --- /dev/null +++ b/system/s6-rc/s6-rc.SlackBuild @@ -0,0 +1,122 @@ +#!/bin/sh + +# Slackware build script for s6-rc + +# Copyright 2020 Muhammad Mahendra Subrata Depok, Indonesia +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR "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 AUTHOR 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. + +PRGNAM=s6-rc +VERSION=${VERSION:-0.5.1.1} +BUILD=${BUILD:-1} +TAG=${TAG:-_SBo} + +if [ -z "$ARCH" ]; then + case "$( uname -m )" in + i?86) ARCH=i586 ;; + arm*) ARCH=arm ;; + *) ARCH=$( uname -m ) ;; + esac +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp/SBo} +PKG=$TMP/package-$PRGNAM +OUTPUT=${OUTPUT:-/tmp} + +if [ "$ARCH" = "i586" ]; then + SLKCFLAGS="-O2 -march=i586 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "i686" ]; then + SLKCFLAGS="-O2 -march=i686 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +else + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +fi + +# By default, only static libraries are built. If you need to build the shared libraries, just pass +# BUILD_SHARED=yes to this script +BUILD_STATIC=${BUILD_STATIC:-yes} +BUILD_SHARED=${BUILD_SHARED:-no} + +if [ "$BUILD_STATIC" = "no" ]; then + LIBS_CONF="--disable-static" +fi + +if [ "$BUILD_SHARED" = "yes" ]; then + LIBS_CONF="--enable-shared $LIBS_CONF" +fi + +# By default, all binaries are linked against the static versions of the skarnet.org libraries +# Pass LINK_SHARED=yes to link the binaries against the shared versions of the skarnet.org libraries +# Also, if you only built the shared versions of the skarnet.org libraries, the binaries will be +# linked against shared libraries automatically, as though LINK_SHARED=yes is passed to this script +LINK_SHARED=${LINK_SHARED:-no} + +if [ "$LINK_SHARED" = "yes" ]; then + LIBS_CONF="--disable-allstatic $LIBS_CONF" +fi + +set -e + +rm -rf $PKG +mkdir -p $TMP $PKG $OUTPUT +cd $TMP +rm -rf $PRGNAM-$VERSION +tar xvf $CWD/$PRGNAM-$VERSION.tar.gz +cd $PRGNAM-$VERSION +chown -R root:root . +find -L . \ + \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \ + -o -perm 511 \) -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \ + -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +CXXFLAGS="$SLKCFLAGS" \ +./configure \ + --dynlibdir=/lib${LIBDIRSUFFIX} \ + --bindir=/bin \ + --libexecdir=/usr/libexec \ + --libdir=/usr/lib${LIBDIRSUFFIX}/s6-rc \ + --includedir=/usr/include \ + --livedir=/run/s6/rc \ + --with-sysdeps=/usr/lib${LIBDIRSUFFIX}/skalibs/sysdeps \ + --with-lib=/usr/lib${LIBDIRSUFFIX}/skalibs \ + --with-lib=/usr/lib${LIBDIRSUFFIX}/execline \ + --with-lib=/usr/lib${LIBDIRSUFFIX}/s6 \ + $LIBS_CONF + +make +make strip +make install DESTDIR=$PKG + +mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION +cp -a AUTHORS COPYING INSTALL NEWS README doc examples $PKG/usr/doc/$PRGNAM-$VERSION +cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz} diff --git a/system/s6-rc/s6-rc.info b/system/s6-rc/s6-rc.info new file mode 100644 index 0000000000..ee9c0290d7 --- /dev/null +++ b/system/s6-rc/s6-rc.info @@ -0,0 +1,10 @@ +PRGNAM="s6-rc" +VERSION="0.5.1.1" +HOMEPAGE="https://skarnet.org/software/s6-rc/" +DOWNLOAD="https://skarnet.org/software/s6-rc/s6-rc-0.5.1.1.tar.gz" +MD5SUM="eecab911a3bedfce5129bd80c6c2197c" +DOWNLOAD_x86_64="" +MD5SUM_x86_64="" +REQUIRES="s6" +MAINTAINER="Muhammad Mahendra Subrata" +EMAIL="mumahendras3@gmail.com" diff --git a/system/s6-rc/slack-desc b/system/s6-rc/slack-desc new file mode 100644 index 0000000000..7f5f936130 --- /dev/null +++ b/system/s6-rc/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. +# Line up the first '|' above the ':' following the base package name, and +# the '|' on the right side marks the last column you can put a character in. +# You must make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':' except on otherwise blank lines. + + |-----handy-ruler------------------------------------------------------| +s6: s6-rc (service manager for s6-based systems) +s6: +s6: s6-rc is a service manager for s6-based systems, i.e. a suite of +s6: programs that can start and stop services, both long-running daemons +s6: and one-time initialization scripts, in the proper order according +s6: to a dependency tree. It ensures that long-running daemons are +s6: supervised by the s6 infrastructure, and that one-time scripts are +s6: also run in a controlled environment. +s6: +s6: Homepage: https://skarnet.org/software/s6-rc/ +s6: -- cgit v1.2.3