Skip to contentSkip to conversation

Introducing service supervision/management with s6

PATCH New Eric Le Bihan 4 participants 23 messages Dec 19, 2016 – Mar 16, 2017

lore
Share & tools
lore
#0 lore raw

v3 cover Introducing service supervision/management with s6

Hi!

This series provides all the packages for programs and libraries to build an embedded system with service supervision and management using s6 from
http://skarnet.org.

Note that these packages only provide the mechanism for supervising/managing services using s6, not the policy. Packages to provide a policy suitable for Buildroot-based embedded systems, using s6 as init (instead of SysV or systemd), may be provided later. An example is available in the buildroot-demo-s6 project [1].

[1] https://github.com/elebihan/buildroot-demo-s6/

Best regards,

ELB

v2 -> v3:

- use --prefix=$(HOST_DIR)/usr for host variants.
- add SoB line to patches for skalibs.
- add comments about skarnet software build system in commit logs.
- remove user visible configuration entries for host variants of execline and s6-rc.

v1 -> v2:

- bump all packages to skarnet.org fall release versions.
- add dependency on BR2_USE_MMU.
- remove limitation to glibc.
- split skalibs endianness and type sizes patches.

Eric Le Bihan (9):
skalibs: new package
execline: new package
s6: new package
s6-dns: new package
s6-networking: new package
s6-rc: new package
s6-portable-utils: new package
s6-linux-utils: new package
s6-linux-init: new package

 package/Config.in                                  |  9 ++
 package/execline/Config.in                         | 12 +++
 package/execline/execline.hash                     |  2 +
 package/execline/execline.mk                       | 70 ++++++++++++++++
 package/s6-dns/Config.in                           |  9 ++
 package/s6-dns/s6-dns.hash                         |  2 +
 package/s6-dns/s6-dns.mk                           | 45 ++++++++++
 package/s6-linux-init/Config.in                    | 11 +++
 package/s6-linux-init/s6-linux-init.hash           |  2 +
 package/s6-linux-init/s6-linux-init.mk             | 36 ++++++++
 package/s6-linux-utils/Config.in                   |  9 ++
 package/s6-linux-utils/s6-linux-utils.hash         |  2 +
 package/s6-linux-utils/s6-linux-utils.mk           | 34 ++++++++
 package/s6-networking/Config.in                    | 12 +++
 package/s6-networking/s6-networking.hash           |  2 +
 package/s6-networking/s6-networking.mk             | 48 +++++++++++
 package/s6-portable-utils/Config.in                | 11 +++
 package/s6-portable-utils/s6-portable-utils.hash   |  2 +
 package/s6-portable-utils/s6-portable-utils.mk     | 34 ++++++++
 package/s6-rc/Config.in                            | 11 +++
 package/s6-rc/s6-rc.hash                           |  2 +
 package/s6-rc/s6-rc.mk                             | 73 +++++++++++++++++
 package/s6/Config.in                               | 10 +++
 package/s6/s6.hash                                 |  2 +
 package/s6/s6.mk                                   | 70 ++++++++++++++++
 .../0001-No-runtime-tests-for-endianness.patch     | 95 ++++++++++++++++++++++
 .../0002-No-runtime-tests-for-type-sizes.patch     | 54 ++++++++++++
 package/skalibs/Config.in                          |  9 ++
 package/skalibs/skalibs.hash                       |  2 +
 package/skalibs/skalibs.mk                         | 59 ++++++++++++++
 30 files changed, 739 insertions(+)
 create mode 100644 package/execline/Config.in
 create mode 100644 package/execline/execline.hash
 create mode 100644 package/execline/execline.mk
 create mode 100644 package/s6-dns/Config.in
 create mode 100644 package/s6-dns/s6-dns.hash
 create mode 100644 package/s6-dns/s6-dns.mk
 create mode 100644 package/s6-linux-init/Config.in
 create mode 100644 package/s6-linux-init/s6-linux-init.hash
 create mode 100644 package/s6-linux-init/s6-linux-init.mk
 create mode 100644 package/s6-linux-utils/Config.in
 create mode 100644 package/s6-linux-utils/s6-linux-utils.hash
 create mode 100644 package/s6-linux-utils/s6-linux-utils.mk
 create mode 100644 package/s6-networking/Config.in
 create mode 100644 package/s6-networking/s6-networking.hash
 create mode 100644 package/s6-networking/s6-networking.mk
 create mode 100644 package/s6-portable-utils/Config.in
 create mode 100644 package/s6-portable-utils/s6-portable-utils.hash
 create mode 100644 package/s6-portable-utils/s6-portable-utils.mk
 create mode 100644 package/s6-rc/Config.in
 create mode 100644 package/s6-rc/s6-rc.hash
 create mode 100644 package/s6-rc/s6-rc.mk
 create mode 100644 package/s6/Config.in
 create mode 100644 package/s6/s6.hash
 create mode 100644 package/s6/s6.mk
 create mode 100644 package/skalibs/0001-No-runtime-tests-for-endianness.patch
 create mode 100644 package/skalibs/0002-No-runtime-tests-for-type-sizes.patch
 create mode 100644 package/skalibs/Config.in
 create mode 100644 package/skalibs/skalibs.hash
 create mode 100644 package/skalibs/skalibs.mk
Signature · 1 line
2.5.5
#1 lore raw

PATCH v3 1/9 skalibs: new package

This new package provides skalibs, a collection of free software / open source C development files used for building all softwares from skarnet.org.

Note that, though skalibs (and all skarnet softwares) follows the "./configure; make; make install" convention, it does not behave like a traditional autotools project:

- static libraries are installed in $prefix/usr/lib/skalibs.
- pkg-config and libtool are not used: instead a custom system called "sysdeps" is used and locations to libraries and headers are to be passed explicitly via options of the './configure' script.

The host variant is provided to allow building the host variants of the other skarnet softwares.

---
 package/Config.in                                  |  1 +
 .../0001-No-runtime-tests-for-endianness.patch     | 95 ++++++++++++++++++++++
 .../0002-No-runtime-tests-for-type-sizes.patch     | 54 ++++++++++++
 package/skalibs/Config.in                          |  9 ++
 package/skalibs/skalibs.hash                       |  2 +
 package/skalibs/skalibs.mk                         | 59 ++++++++++++++
 6 files changed, 220 insertions(+)
 create mode 100644 package/skalibs/0001-No-runtime-tests-for-endianness.patch
 create mode 100644 package/skalibs/0002-No-runtime-tests-for-type-sizes.patch
 create mode 100644 package/skalibs/Config.in
 create mode 100644 package/skalibs/skalibs.hash
 create mode 100644 package/skalibs/skalibs.mk
package/Config.in +1 -0
index be0d150..760eaff 100644
@@ -1366,6 +1366,7 @@ endif
 	source "package/qhull/Config.in"
 	source "package/qlibc/Config.in"
 	source "package/shapelib/Config.in"
+	source "package/skalibs/Config.in"
 	source "package/sphinxbase/Config.in"
 	source "package/startup-notification/Config.in"
 	source "package/tinycbor/Config.in"
package/skalibs/0001-No-runtime-tests-for-endianness.patch new file +95 -0

95 lines not on this page · raw message

package/skalibs/0002-No-runtime-tests-for-type-sizes.patch new file +54 -0

54 lines not on this page · raw message

package/skalibs/Config.in new file +9 -0
new file mode 100644
index 0000000..7802ae3
@@ -0,0 +1,9 @@
+config BR2_PACKAGE_SKALIBS
+	bool "skalibs"
+	depends on BR2_USE_MMU # fork()
+	help
+	  skalibs is a package centralizing the FOSS C development
+	  files used for building all software at skarnet.org:
+	  it contains essentially general-purpose libraries.
+
+	  http://skarnet.org/software/skalibs/
package/skalibs/skalibs.hash new file +2 -0
new file mode 100644
index 0000000..195ac47
@@ -0,0 +1,2 @@
+# Locally generated
+sha256 0708172bc2ec9825f8a4f312d35f8dcd94da5f291425a598c33c873b3de77df8 skalibs-2.4.0.2.tar.gz
package/skalibs/skalibs.mk new file +59 -0

59 lines not on this page · raw message

Signature · 1 line
2.5.5
#2 lore raw

PATCH v3 1/9 skalibs: new package

Quoted 283 lines · Eric Le Bihan

This new package provides skalibs, a collection of free software / open source C development files used for building all softwares from skarnet.org.

Note that, though skalibs (and all skarnet softwares) follows the "./configure; make; make install" convention, it does not behave like a traditional autotools project:

- static libraries are installed in $prefix/usr/lib/skalibs.
- pkg-config and libtool are not used: instead a custom system called "sysdeps" is used and locations to libraries and headers are to be passed explicitly via options of the './configure' script.

The host variant is provided to allow building the host variants of the other skarnet softwares.

---
 package/Config.in                                  |  1 +
 .../0001-No-runtime-tests-for-endianness.patch     | 95 ++++++++++++++++++++++
 .../0002-No-runtime-tests-for-type-sizes.patch     | 54 ++++++++++++
 package/skalibs/Config.in                          |  9 ++
 package/skalibs/skalibs.hash                       |  2 +
 package/skalibs/skalibs.mk                         | 59 ++++++++++++++
 6 files changed, 220 insertions(+)
 create mode 100644 package/skalibs/0001-No-runtime-tests-for-endianness.patch
 create mode 100644 package/skalibs/0002-No-runtime-tests-for-type-sizes.patch
 create mode 100644 package/skalibs/Config.in
 create mode 100644 package/skalibs/skalibs.hash
 create mode 100644 package/skalibs/skalibs.mk
package/Config.in +1 -0
index be0d150..760eaff 100644
@@ -1366,6 +1366,7 @@ endif
        source "package/qhull/Config.in"
        source "package/qlibc/Config.in"
        source "package/shapelib/Config.in"
+       source "package/skalibs/Config.in"
        source "package/sphinxbase/Config.in"
        source "package/startup-notification/Config.in"
        source "package/tinycbor/Config.in"
package/skalibs/0001-No-runtime-tests-for-endianness.patch new file +95 -0
new file mode 100644
index 0000000..4390d44
@@ -0,0 +1,95 @@
+From 1e6f0b094c6ce6454be572704b866d2ce0962e59 Mon Sep 17 00:00:00 2001
+From: Eric Le Bihan <[email protected]>
+Date: Sun, 4 Dec 2016 19:10:40 +0100
+Subject: [PATCH] No runtime tests for endianness
+
+Replace build and execution of runtime test programs for determining
+the endianness of the target with compile time test programs.
+
+This improves support for cross-compilation.
+
+Signed-off-by: Eric Le Bihan <[email protected]>
+---
+ configure                     | 15 +++++++++++----
+ src/sysdeps/trybigendian.c    | 16 ++++++++++++++++
+ src/sysdeps/trylittleendian.c | 16 ++++++++++++++++
+ 3 files changed, 43 insertions(+), 4 deletions(-)
+ create mode 100644 src/sysdeps/trybigendian.c
+ create mode 100644 src/sysdeps/trylittleendian.c
+
+diff --git a/configure b/configure
+index 1579025..4da9c5e 100755
+--- a/configure
++++ b/configure
+@@ -463,13 +463,20 @@ EOF
+   fi
+   exec 3>&-
+
+-  echo "Checking system endianness..."
+-  $CC_AUTO $CPPFLAGS_AUTO $CFLAGS_AUTO -o tryendianness src/sysdeps/tryendianness.c
+-  endianness=$(./tryendianness) || fail "$0: unable to determine endianness"
++    echo "Checking system endianness..."
++  if $CC_AUTO $CPPFLAGS_AUTO $CFLAGS_AUTO -o trybigendian src/sysdeps/trybigendian.c 2>/dev/null; then
++      endianness=big
++  else
++      if $CC_AUTO $CPPFLAGS_AUTO $CFLAGS_AUTO -o trylittleendian src/sysdeps/trylittleendian.c 2>/dev/null; then
++          endianness=little
++      else
++          fail "$0: unable to determine endianness"
++      fi
++  fi
+   echo "endianness: $endianness" >> $sysdeps/sysdeps
+   echo "#define ${package_macro_name}_ENDIANNESS \"$endianness\"" >> $sysdeps/sysdeps.h
+   echo "  ... $endianness"
+-  rm -f tryendianness
++  rm -f trybigendian trylittleendian
+
+   trytypesize ushort USHORT "unsigned short"
+   trytypesize uint UINT "unsigned int"
+diff --git a/src/sysdeps/trybigendian.c b/src/sysdeps/trybigendian.c
+new file mode 100644
+index 0000000..d857572
+--- /dev/null
++++ b/src/sysdeps/trybigendian.c
+@@ -0,0 +1,16 @@
++#if defined(__BYTE_ORDER) && (__BYTE_ORDER == __BIG_ENDIAN) ||               \
++      defined(__BYTE_ORDER__) && (__BYTE_ORDER__  == __ORDER_BIG_ENDIAN__) || \
++      defined(__BIG_ENDIAN) ||                                       \
++      defined(__ARMEB__) ||                                          \
++      defined(__THUMBEB__) ||                                \
++      defined(__AARCH64EB__) ||                                      \
++      defined(_MIPSEB) || defined(__MIPSEB) || defined(__MIPSEB__)
++#define YEAH
++#else
++#error "not big endian"
++#endif
++
++int main(void)
++{
++      return 0;
++}
+diff --git a/src/sysdeps/trylittleendian.c b/src/sysdeps/trylittleendian.c
+new file mode 100644
+index 0000000..eba065a
+--- /dev/null
++++ b/src/sysdeps/trylittleendian.c
+@@ -0,0 +1,16 @@
++#if defined(__BYTE_ORDER) && (__BYTE_ORDER == __LITTLE_ENDIAN) ||     \
++      defined(__BYTE_ORDER__) && (__BYTE_ORDER__  == __ORDER_LITTLE_ENDIAN__) || \
++      defined(__LITTLE_ENDIAN) ||                                     \
++      defined(__ARMEL__) ||                                           \
++      defined(__THUMBEL__) ||                                 \
++      defined(__AARCH64EL__) ||                                       \
++      defined(_MIPSEL) || defined(__MIPSEL) || defined(__MIPSEL__)
++#define YEAH
++#else
++#error "not little endian"
++#endif
++
++int main(void)
++{
++      return 0;
++}
+--
+2.5.5
+
package/skalibs/0002-No-runtime-tests-for-type-sizes.patch new file +54 -0
new file mode 100644
index 0000000..3f16171
@@ -0,0 +1,54 @@
+From d868600a3f437750bc44a783d677a25a48100096 Mon Sep 17 00:00:00 2001
+From: Eric Le Bihan <[email protected]>
+Date: Sun, 4 Dec 2016 19:11:25 +0100
+Subject: [PATCH] No runtime tests for type sizes
+
+Replace build and execution of runtime test programs for determining
+some type sizes of the target with compile time test programs.
+
+This improves support for cross-compilation.
+
+Signed-off-by: Eric Le Bihan <[email protected]>
+---
+ configure | 24 +++++++++++++++++++++---
+ 1 file changed, 21 insertions(+), 3 deletions(-)
+
+diff --git a/configure b/configure
+index 4da9c5e..b5926ca 100755
+--- a/configure
++++ b/configure
+@@ -157,10 +157,28 @@ choose () {
+
+ trytypesize () {
+   echo "Checking size of $3..."
+-  $CC_AUTO $CPPFLAGS_AUTO $CFLAGS_AUTO $LDFLAGS_AUTO -o trysizeof$1 src/sysdeps/trysizeof$1.c
+-  type_size=$(./trysizeof$1) || fail "$0: unable to determine size of $3"
++  r=false
++  type_size=0
++  while true; do
++    cat<<EOF>trysizeof$1.c
++#include <sys/types.h>
++
++int main(void)
++{
++  static int v = 1 / !!((sizeof($3) == $type_size));
++  return 0;
++}
++EOF
++    if $CC_AUTO $CPPFLAGS_AUTO $CFLAGS_AUTO $LDFLAGS_AUTO -o trysizeof$1 trysizeof$1.c 2>/dev/null; then
++        r=true
++        break
++    fi
++    type_size=$(expr $type_size + 1)
++    test $type_size -le 16 || break
++  done
++  test $r = true || fail "$0: unable to determine size of $3"
+   type_bits=$(expr 8 \* $type_size)
+-  rm -f trysizeof$1
++  rm -f trysizeof$1 trysizeof$1.c
+   echo "sizeof$1: $type_size" >> $sysdeps/sysdeps
+   echo "#define ${package_macro_name}_SIZEOF$2 $type_size" >> $sysdeps/sysdeps.h
+   echo "#define ${package_macro_name}_$2_BITS $type_bits" >> $sysdeps/sysdeps.h
+--
+2.5.5
+
package/skalibs/Config.in new file +9 -0
new file mode 100644
index 0000000..7802ae3
@@ -0,0 +1,9 @@
+config BR2_PACKAGE_SKALIBS
+       bool "skalibs"
+       depends on BR2_USE_MMU # fork()
+       help
+         skalibs is a package centralizing the FOSS C development
+         files used for building all software at skarnet.org:
+         it contains essentially general-purpose libraries.
+
+         http://skarnet.org/software/skalibs/
package/skalibs/skalibs.hash new file +2 -0
new file mode 100644
index 0000000..195ac47
@@ -0,0 +1,2 @@
+# Locally generated
+sha256 0708172bc2ec9825f8a4f312d35f8dcd94da5f291425a598c33c873b3de77df8 skalibs-2.4.0.2.tar.gz
package/skalibs/skalibs.mk new file +50 -0
new file mode 100644
index 0000000..e525378
@@ -0,0 +1,59 @@
+################################################################################
+#
+# skalibs
+#
+################################################################################
+
+SKALIBS_VERSION = 2.4.0.2
+SKALIBS_SITE = http://skarnet.org/software/skalibs
+SKALIBS_LICENSE = ISC
+SKALIBS_LICENSE_FILES = COPYING
+SKALIBS_INSTALL_STAGING = YES
+
+SKALIBS_CONF_OPTS = \
+       --prefix=/usr \
+       --with-default-path=/sbin:/usr/sbin:/bin:/usr/bin \
+       $(SHARED_STATIC_LIBS_OPTS)
+
+define SKALIBS_CONFIGURE_CMDS
+       (cd $(@D); $(TARGET_CONFIGURE_OPTS) ./configure $(SKALIBS_CONF_OPTS))
+endef
+
+define SKALIBS_BUILD_CMDS
+       $(TARGET_MAKE_ENV) $(MAKE) -C $(@D)
+endef
+
+define SKALIBS_REMOVE_STATIC_LIB_DIR
+       rm -rf $(TARGET_DIR)/usr/lib/skalibs
+endef
+
+SKALIBS_POST_INSTALL_TARGET_HOOKS += SKALIBS_REMOVE_STATIC_LIB_DIR
+
+define SKALIBS_INSTALL_TARGET_CMDS
+       $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) DESTDIR=$(TARGET_DIR) install
+endef
+
+define SKALIBS_INSTALL_STAGING_CMDS
+       $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) DESTDIR=$(STAGING_DIR) install
+endef
+
+HOST_SKALIBS_CONF_OPTS = \
+       --prefix=$(HOST_DIR)/usr \
+       --disable-static \
+       --enable-shared \
+       --disable-allstatic
+
+define HOST_SKALIBS_CONFIGURE_CMDS
+       (cd $(@D); $(HOST_CONFIGURE_OPTS) ./configure $(HOST_SKALIBS_CONF_OPTS))
+endef
+
+define HOST_SKALIBS_BUILD_CMDS

package/skalibs/skalibs.mk

Quoted 10 lines
package/skalibs/skalibs.mk new file +9 -1
+       $(HOST_MAKE_ENV) $(MAKE) -C $(@D)
+endef
+
+define HOST_SKALIBS_INSTALL_CMDS
+       $(HOST_MAKE_ENV) $(MAKE) -C $(@D) install
+endef
+
+$(eval $(generic-package))
+$(eval $(host-generic-package))
--

This patch was already applied; I will mark it as such in patchwork.

#3 lore raw

PATCH v3 2/9 execline: new package

In reply to Eric Le Bihan

This package provides execline, a (non-interactive) scripting language, like sh, used in the s6 supervision system.

The host variant is provided as it is required to build and run the host variants of s6 and s6-rc.

---
 package/Config.in              |  1 +
 package/execline/Config.in     | 12 ++++++++
 package/execline/execline.hash |  2 ++
 package/execline/execline.mk   | 70 ++++++++++++++++++++++++++++++++++++++++++
 4 files changed, 85 insertions(+)
 create mode 100644 package/execline/Config.in
 create mode 100644 package/execline/execline.hash
 create mode 100644 package/execline/execline.mk
package/Config.in +1 -0
index 760eaff..7c0e4e1 100644
@@ -504,6 +504,7 @@ menu "Erlang libraries/modules"
 	source "package/erlang-p1-zlib/Config.in"
 endmenu
 endif
+	source "package/execline/Config.in"
 	source "package/ficl/Config.in"
 	source "package/gauche/Config.in"
 	source "package/guile/Config.in"
package/execline/Config.in new file +12 -0
new file mode 100644
index 0000000..8e2e6dc
@@ -0,0 +1,12 @@
+config BR2_PACKAGE_EXECLINE
+	bool "execline"
+	select BR2_PACKAGE_SKALIBS
+	depends on BR2_USE_MMU # skalibs
+	help
+	  execline is a (non-interactive) scripting language, like sh ; but its
+	  syntax is quite different from a traditional shell syntax.
+	  The execlineb program is meant to be used as an interpreter for a text
+	  file; the other commands are essentially useful inside an execlineb
+	  script.
+
+	  http://skarnet.org/software/execline/
package/execline/execline.hash new file +2 -0
new file mode 100644
index 0000000..61fc99c
@@ -0,0 +1,2 @@
+# Locally generated
+sha256 93bd744f2e3ad204cb89f147efdc6ca4e622f9c6bfc9895e0b2cb8b0480029de execline-2.2.0.0.tar.gz
package/execline/execline.mk new file +70 -0

70 lines not on this page · raw message

Signature · 1 line
2.5.5
#4 lore raw

PATCH v3 2/9 execline: new package

Hello,

Quoted 7 lines · Eric Le Bihan

This package provides execline, a (non-interactive) scripting language, like sh, used in the s6 supervision system.

The host variant is provided as it is required to build and run the host variants of s6 and s6-rc.

Quoted 9 lines
---
 package/Config.in              |  1 +
 package/execline/Config.in     | 12 ++++++++
 package/execline/execline.hash |  2 ++
 package/execline/execline.mk   | 70 ++++++++++++++++++++++++++++++++++++++++++
 4 files changed, 85 insertions(+)
 create mode 100644 package/execline/Config.in
 create mode 100644 package/execline/execline.hash
 create mode 100644 package/execline/execline.mk

Applied to master, after adding an entry to the DEVELOPERS file for this package.

Thanks!

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
#5 lore raw

PATCH v3 3/9 s6: new package

In reply to Eric Le Bihan

This new package provides s6, a small suite of programs for UNIX, designed to allow process supervision (a.k.a service supervision), in the line of daemontools and runit.

The host variant is provided as it is required to build the host variant of s6-rc. Only the libraries and headers are installed.

---
 package/Config.in    |  1 +
 package/s6/Config.in | 10 ++++++++
 package/s6/s6.hash   |  2 ++
 package/s6/s6.mk     | 70 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 4 files changed, 83 insertions(+)
 create mode 100644 package/s6/Config.in
 create mode 100644 package/s6/s6.hash
 create mode 100644 package/s6/s6.mk
package/Config.in +1 -0
index 7c0e4e1..6b4fdb5 100644
@@ -1758,6 +1758,7 @@ menu "System tools"
 	source "package/quota/Config.in"
 	source "package/rsyslog/Config.in"
 	source "package/runc/Config.in"
+	source "package/s6/Config.in"
 	source "package/scrub/Config.in"
 	source "package/scrypt/Config.in"
 	source "package/smack/Config.in"
package/s6/Config.in new file +10 -0
new file mode 100644
index 0000000..7b6b86b
@@ -0,0 +1,10 @@
+config BR2_PACKAGE_S6
+	bool "s6"
+	select BR2_PACKAGE_EXECLINE
+	depends on BR2_USE_MMU # execline
+	help
+	  s6 is a small suite of programs for UNIX, designed to allow process
+	  supervision (a.k.a service supervision), in the line of daemontools
+	  and runit, as well as various operations on processes and daemons.
+
+	  http://skarnet.org/software/s6/
package/s6/s6.hash new file +2 -0
new file mode 100644
index 0000000..36526de
@@ -0,0 +1,2 @@
+# Locally generated
+sha256 5e788d5935dbcce76ac9a99cfcf6ee46a2ffb84220c84225df7589e9a3585560 s6-2.4.0.0.tar.gz
package/s6/s6.mk new file +70 -0

70 lines not on this page · raw message

Signature · 1 line
2.5.5
#6 lore raw

PATCH v3 3/9 s6: new package

Hello,

Quoted 8 lines · Eric Le Bihan

This new package provides s6, a small suite of programs for UNIX, designed to allow process supervision (a.k.a service supervision), in the line of daemontools and runit.

The host variant is provided as it is required to build the host variant of s6-rc. Only the libraries and headers are installed.

Quoted 9 lines
---
 package/Config.in    |  1 +
 package/s6/Config.in | 10 ++++++++
 package/s6/s6.hash   |  2 ++
 package/s6/s6.mk     | 70 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 4 files changed, 83 insertions(+)
 create mode 100644 package/s6/Config.in
 create mode 100644 package/s6/s6.hash
 create mode 100644 package/s6/s6.mk

Applied to master, thanks.

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
#7 lore raw

PATCH v3 4/9 s6-dns: new package

In reply to Eric Le Bihan

This new package provides s6-dns, a suite of DNS client programs and libraries for Unix systems, as an alternative to the BIND, djbdns or other DNS clients.

---
 package/Config.in          |  1 +
 package/s6-dns/Config.in   |  9 +++++++++
 package/s6-dns/s6-dns.hash |  2 ++
 package/s6-dns/s6-dns.mk   | 45 +++++++++++++++++++++++++++++++++++++++++++++
 4 files changed, 57 insertions(+)
 create mode 100644 package/s6-dns/Config.in
 create mode 100644 package/s6-dns/s6-dns.hash
 create mode 100644 package/s6-dns/s6-dns.mk
package/Config.in +1 -0
index 6b4fdb5..0984a9b 100644
@@ -1602,6 +1602,7 @@ endif
 	source "package/rsync/Config.in"
 	source "package/rtorrent/Config.in"
 	source "package/rtptools/Config.in"
+	source "package/s6-dns/Config.in"
 	source "package/samba4/Config.in"
 	source "package/sconeserver/Config.in"
 	source "package/ser2net/Config.in"
package/s6-dns/Config.in new file +9 -0
new file mode 100644
index 0000000..84888ec
@@ -0,0 +1,9 @@
+config BR2_PACKAGE_S6_DNS
+	bool "s6-dns"
+	select BR2_PACKAGE_SKALIBS
+	depends on BR2_USE_MMU # skalibs
+	help
+	  s6-dns is a suite of DNS client programs and libraries for Unix
+	  systems, as an alternative to the BIND, djbdns or other DNS clients.
+
+	  http://skarnet.org/software/s6-dns/
package/s6-dns/s6-dns.hash new file +2 -0
new file mode 100644
index 0000000..7cfb9c3
@@ -0,0 +1,2 @@
+# Locally generated
+sha256 8455f3b1edad8f01a1340cb1242c141755729bfd5d71059739eced5c006539ad s6-dns-2.1.0.0.tar.gz
package/s6-dns/s6-dns.mk new file +45 -0

45 lines not on this page · raw message

Signature · 1 line
2.5.5
#8 lore raw

PATCH v3 4/9 s6-dns: new package

Hello,

Quoted 5 lines · Eric Le Bihan

This new package provides s6-dns, a suite of DNS client programs and libraries for Unix systems, as an alternative to the BIND, djbdns or other DNS clients.

Quoted 9 lines
---
 package/Config.in          |  1 +
 package/s6-dns/Config.in   |  9 +++++++++
 package/s6-dns/s6-dns.hash |  2 ++
 package/s6-dns/s6-dns.mk   | 45 +++++++++++++++++++++++++++++++++++++++++++++
 4 files changed, 57 insertions(+)
 create mode 100644 package/s6-dns/Config.in
 create mode 100644 package/s6-dns/s6-dns.hash
 create mode 100644 package/s6-dns/s6-dns.mk

Applied to master, thanks.

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
#9 lore raw

PATCH v3 5/9 s6-networking: new package

In reply to Eric Le Bihan

This new package provides s6-networking, a suite of small networking utilities for Unix systems.

---
 package/Config.in                        |  1 +
 package/s6-networking/Config.in          | 12 ++++++++
 package/s6-networking/s6-networking.hash |  2 ++
 package/s6-networking/s6-networking.mk   | 48 ++++++++++++++++++++++++++++++++
 4 files changed, 63 insertions(+)
 create mode 100644 package/s6-networking/Config.in
 create mode 100644 package/s6-networking/s6-networking.hash
 create mode 100644 package/s6-networking/s6-networking.mk
package/Config.in +1 -0
index 0984a9b..e4ceaf3 100644
@@ -1603,6 +1603,7 @@ endif
 	source "package/rtorrent/Config.in"
 	source "package/rtptools/Config.in"
 	source "package/s6-dns/Config.in"
+	source "package/s6-networking/Config.in"
 	source "package/samba4/Config.in"
 	source "package/sconeserver/Config.in"
 	source "package/ser2net/Config.in"
package/s6-networking/Config.in new file +12 -0
new file mode 100644
index 0000000..a530bd4
@@ -0,0 +1,12 @@
+config BR2_PACKAGE_S6_NETWORKING
+	bool "s6-networking"
+	select BR2_PACKAGE_S6_DNS
+	select BR2_PACKAGE_S6
+	depends on BR2_USE_MMU # s6
+	help
+	  s6-networking is a suite of small networking utilities for Unix
+	  systems. It includes command-line client and server management, TCP
+	  access control, privilege escalation across UNIX domain sockets,
+	  IDENT protocol management and clock synchronization.
+
+	  http://skarnet.org/software/s6-networking/
package/s6-networking/s6-networking.hash new file +2 -0
new file mode 100644
index 0000000..a15efab
@@ -0,0 +1,2 @@
+# Locally generated
+sha256 5d8150d7413b335693c6e63092381dd0866b1b6f95662a2cbae5ec17ca449ab0 s6-networking-2.2.1.0.tar.gz
package/s6-networking/s6-networking.mk new file +48 -0

48 lines not on this page · raw message

Signature · 1 line
2.5.5
#10 lore raw

PATCH v3 5/9 s6-networking: new package

Hello,

Quoted 4 lines · Eric Le Bihan

This new package provides s6-networking, a suite of small networking utilities for Unix systems.

Quoted 9 lines
---
 package/Config.in                        |  1 +
 package/s6-networking/Config.in          | 12 ++++++++
 package/s6-networking/s6-networking.hash |  2 ++
 package/s6-networking/s6-networking.mk   | 48 ++++++++++++++++++++++++++++++++
 4 files changed, 63 insertions(+)
 create mode 100644 package/s6-networking/Config.in
 create mode 100644 package/s6-networking/s6-networking.hash
 create mode 100644 package/s6-networking/s6-networking.mk

Applied to master, thanks.

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
#11 lore raw

PATCH v3 6/9 s6-rc: new package

In reply to Eric Le Bihan

This new package provides s6-rc, 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.

The host variant is provided so s6-rc-compile is available and can be used to build the services database offline, either in a package Makefile or a post-build script.

---
 package/Config.in        |  1 +
 package/s6-rc/Config.in  | 11 ++++++++
 package/s6-rc/s6-rc.hash |  2 ++
 package/s6-rc/s6-rc.mk   | 73 ++++++++++++++++++++++++++++++++++++++++++++++++
 4 files changed, 87 insertions(+)
 create mode 100644 package/s6-rc/Config.in
 create mode 100644 package/s6-rc/s6-rc.hash
 create mode 100644 package/s6-rc/s6-rc.mk
package/Config.in +1 -0
index e4ceaf3..e6334e8 100644
@@ -1761,6 +1761,7 @@ menu "System tools"
 	source "package/rsyslog/Config.in"
 	source "package/runc/Config.in"
 	source "package/s6/Config.in"
+	source "package/s6-rc/Config.in"
 	source "package/scrub/Config.in"
 	source "package/scrypt/Config.in"
 	source "package/smack/Config.in"
package/s6-rc/Config.in new file +11 -0
new file mode 100644
index 0000000..416d230
@@ -0,0 +1,11 @@
+config BR2_PACKAGE_S6_RC
+	bool "s6-rc"
+	select BR2_PACKAGE_S6
+	depends on BR2_USE_MMU # s6
+	help
+	  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.
+
+	  http://skarnet.org/software/s6-rc/
package/s6-rc/s6-rc.hash new file +2 -0
new file mode 100644
index 0000000..3d5186c
@@ -0,0 +1,2 @@
+# Locally generated
+sha256 d04a8a765740ed55e38a33da3639197f51f83b3e498bdef5bc1d1d322b1acff3 s6-rc-0.1.0.0.tar.gz
package/s6-rc/s6-rc.mk new file +73 -0

73 lines not on this page · raw message

Signature · 1 line
2.5.5
#12 lore raw

PATCH v3 6/9 s6-rc: new package

Hello,

Quoted 10 lines · Eric Le Bihan

This new package provides s6-rc, 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.

The host variant is provided so s6-rc-compile is available and can be used to build the services database offline, either in a package Makefile or a post-build script.

Quoted 9 lines
---
 package/Config.in        |  1 +
 package/s6-rc/Config.in  | 11 ++++++++
 package/s6-rc/s6-rc.hash |  2 ++
 package/s6-rc/s6-rc.mk   | 73 ++++++++++++++++++++++++++++++++++++++++++++++++
 4 files changed, 87 insertions(+)
 create mode 100644 package/s6-rc/Config.in
 create mode 100644 package/s6-rc/s6-rc.hash
 create mode 100644 package/s6-rc/s6-rc.mk

Applied to master, thanks.

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
#13 lore raw

PATCH v3 6/9 s6-rc: new package

Quoted 12 lines
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line

"Thomas" == Thomas Petazzoni <[email protected]> writes:

Hello,

Quoted 8 lines · Eric Le Bihan

This new package provides s6-rc, 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.

The host variant is provided so s6-rc-compile is available and can be used to build the services database offline, either in a package Makefile or a post-build script.

Hmm, shouldn't it then have a Config.in.host so it can be enabled for post-build scripts?

Signature · 1 line
Bye, Peter Korsgaard
#14 lore raw

PATCH v3 6/9 s6-rc: new package

Hello,

Quoted 6 lines · Peter Korsgaard
Quoted 6 lines · Eric Le Bihan
Quoted 5 lines

This new package provides s6-rc, 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.

Quoted 6 lines
Quoted 3 lines
Quoted 3 lines

The host variant is provided so s6-rc-compile is available and can be used to build the services database offline, either in a package Makefile or a post-build script.

Hmm, shouldn't it then have a Config.in.host so it can be enabled for post-build scripts?

Indeed. I guess that's something Eric can improve in a follow-up patch.

Thanks,

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com
#15 lore raw

PATCH v3 7/9 s6-portable-utils: new package

In reply to Eric Le Bihan

This new package provides s6-portable-utils, a set of tiny general Unix utilities, often performing well-known tasks such as cut and grep, but optimized for simplicity and small size.

---
 package/Config.in                                |  1 +
 package/s6-portable-utils/Config.in              | 11 ++++++++
 package/s6-portable-utils/s6-portable-utils.hash |  2 ++
 package/s6-portable-utils/s6-portable-utils.mk   | 34 ++++++++++++++++++++++++
 4 files changed, 48 insertions(+)
 create mode 100644 package/s6-portable-utils/Config.in
 create mode 100644 package/s6-portable-utils/s6-portable-utils.hash
 create mode 100644 package/s6-portable-utils/s6-portable-utils.mk
package/Config.in +1 -0
index e6334e8..3cee9ed 100644
@@ -1761,6 +1761,7 @@ menu "System tools"
 	source "package/rsyslog/Config.in"
 	source "package/runc/Config.in"
 	source "package/s6/Config.in"
+	source "package/s6-portable-utils/Config.in"
 	source "package/s6-rc/Config.in"
 	source "package/scrub/Config.in"
 	source "package/scrypt/Config.in"
package/s6-portable-utils/Config.in new file +11 -0
new file mode 100644
index 0000000..95aca0e
@@ -0,0 +1,11 @@
+config BR2_PACKAGE_S6_PORTABLE_UTILS
+	bool "s6-portable-utils"
+	select BR2_PACKAGE_SKALIBS
+	depends on BR2_USE_MMU # skalibs
+	help
+	  s6-portable-utils is a set of tiny general Unix utilities, often
+	  performing well-known tasks such as cut and grep, but optimized for
+	  simplicity and small size. They were designed for embedded systems
+	  and other constrained environments, but they work everywhere.
+
+	  http://skarnet.org/software/s6-portable-utils/
package/s6-portable-utils/s6-portable-utils.hash new file +2 -0
new file mode 100644
index 0000000..a03e6cd
@@ -0,0 +1,2 @@
+# Locally generated
+sha256 cde145b7b9d1f1685f271c45c8aed635e74221689bb8ec21a11b3e5a252d1c4e s6-portable-utils-2.1.0.0.tar.gz
package/s6-portable-utils/s6-portable-utils.mk new file +34 -0
new file mode 100644
index 0000000..7461450
@@ -0,0 +1,34 @@
+################################################################################
+#
+# s6-portable-utils
+#
+################################################################################
+
+S6_PORTABLE_UTILS_VERSION = 2.1.0.0
+S6_PORTABLE_UTILS_SITE = http://skarnet.org/software/s6-portable-utils
+S6_PORTABLE_UTILS_LICENSE = ISC
+S6_PORTABLE_UTILS_LICENSE_FILES = COPYING
+S6_PORTABLE_UTILS_DEPENDENCIES = skalibs
+
+S6_PORTABLE_UTILS_CONF_OPTS = \
+	--prefix=/usr \
+	--with-sysdeps=$(STAGING_DIR)/usr/lib/skalibs/sysdeps \
+	--with-include=$(STAGING_DIR)/usr/include \
+	--with-dynlib=$(STAGING_DIR)/usr/lib \
+	--with-lib=$(STAGING_DIR)/usr/lib/skalibs \
+	$(if $(BR2_STATIC_LIBS),,--disable-allstatic) \
+	$(SHARED_STATIC_LIBS_OPTS)
+
+define S6_PORTABLE_UTILS_CONFIGURE_CMDS
+	(cd $(@D); $(TARGET_CONFIGURE_OPTS) ./configure $(S6_PORTABLE_UTILS_CONF_OPTS))
+endef
+
+define S6_PORTABLE_UTILS_BUILD_CMDS
+	$(TARGET_MAKE_ENV) $(MAKE) -C $(@D)
+endef
+
+define S6_PORTABLE_UTILS_INSTALL_TARGET_CMDS
+	$(TARGET_MAKE_ENV) $(MAKE) -C $(@D) DESTDIR=$(TARGET_DIR) install
+endef
+
+$(eval $(generic-package))
Signature · 1 line
2.5.5
#16 lore raw

PATCH v3 7/9 s6-portable-utils: new package

Hello,

Quoted 5 lines · Eric Le Bihan

This new package provides s6-portable-utils, a set of tiny general Unix utilities, often performing well-known tasks such as cut and grep, but optimized for simplicity and small size.

Quoted 9 lines
---
 package/Config.in                                |  1 +
 package/s6-portable-utils/Config.in              | 11 ++++++++
 package/s6-portable-utils/s6-portable-utils.hash |  2 ++
 package/s6-portable-utils/s6-portable-utils.mk   | 34 ++++++++++++++++++++++++
 4 files changed, 48 insertions(+)
 create mode 100644 package/s6-portable-utils/Config.in
 create mode 100644 package/s6-portable-utils/s6-portable-utils.hash
 create mode 100644 package/s6-portable-utils/s6-portable-utils.mk

Applied to master, thanks.

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
#17 lore raw

PATCH v3 8/9 s6-linux-utils: new package

In reply to Eric Le Bihan

This new package provides s6-linux-utils, a set of minimalistic Linux-specific system utilities.

---
 package/Config.in                          |  1 +
 package/s6-linux-utils/Config.in           |  9 ++++++++
 package/s6-linux-utils/s6-linux-utils.hash |  2 ++
 package/s6-linux-utils/s6-linux-utils.mk   | 34 ++++++++++++++++++++++++++++++
 4 files changed, 46 insertions(+)
 create mode 100644 package/s6-linux-utils/Config.in
 create mode 100644 package/s6-linux-utils/s6-linux-utils.hash
 create mode 100644 package/s6-linux-utils/s6-linux-utils.mk
package/Config.in +1 -0
index 3cee9ed..29d9121 100644
@@ -1761,6 +1761,7 @@ menu "System tools"
 	source "package/rsyslog/Config.in"
 	source "package/runc/Config.in"
 	source "package/s6/Config.in"
+	source "package/s6-linux-utils/Config.in"
 	source "package/s6-portable-utils/Config.in"
 	source "package/s6-rc/Config.in"
 	source "package/scrub/Config.in"
package/s6-linux-utils/Config.in new file +9 -0
new file mode 100644
index 0000000..4624b50
@@ -0,0 +1,9 @@
+config BR2_PACKAGE_S6_LINUX_UTILS
+	bool "s6-linux-utils"
+	select BR2_PACKAGE_SKALIBS
+	depends on BR2_USE_MMU # skalibs
+	help
+	  s6-linux-utils is a set of minimalistic Linux-specific system
+	  utilities.
+
+	  http://skarnet.org/software/s6-linux-utils/
package/s6-linux-utils/s6-linux-utils.hash new file +2 -0
new file mode 100644
index 0000000..600c5fc
@@ -0,0 +1,2 @@
+# Locally generated
+sha256 587745abfbf2cc631bb54dd2b3fd29f39b723e3c50e28165138a85c98fda35f9 s6-linux-utils-2.2.0.0.tar.gz
package/s6-linux-utils/s6-linux-utils.mk new file +34 -0
new file mode 100644
index 0000000..04ce688
@@ -0,0 +1,34 @@
+################################################################################
+#
+# s6-linux-utils
+#
+################################################################################
+
+S6_LINUX_UTILS_VERSION = 2.2.0.0
+S6_LINUX_UTILS_SITE = http://skarnet.org/software/s6-linux-utils
+S6_LINUX_UTILS_LICENSE = ISC
+S6_LINUX_UTILS_LICENSE_FILES = COPYING
+S6_LINUX_UTILS_DEPENDENCIES = skalibs
+
+S6_LINUX_UTILS_CONF_OPTS = \
+	--prefix=/usr \
+	--with-sysdeps=$(STAGING_DIR)/usr/lib/skalibs/sysdeps \
+	--with-include=$(STAGING_DIR)/usr/include \
+	--with-dynlib=$(STAGING_DIR)/usr/lib \
+	--with-lib=$(STAGING_DIR)/usr/lib/skalibs \
+	$(if $(BR2_STATIC_LIBS),,--disable-allstatic) \
+	$(SHARED_STATIC_LIBS_OPTS)
+
+define S6_LINUX_UTILS_CONFIGURE_CMDS
+	(cd $(@D); $(TARGET_CONFIGURE_OPTS) ./configure $(S6_LINUX_UTILS_CONF_OPTS))
+endef
+
+define S6_LINUX_UTILS_BUILD_CMDS
+	$(TARGET_MAKE_ENV) $(MAKE) -C $(@D)
+endef
+
+define S6_LINUX_UTILS_INSTALL_TARGET_CMDS
+	$(TARGET_MAKE_ENV) $(MAKE) -C $(@D) DESTDIR=$(TARGET_DIR) install
+endef
+
+$(eval $(generic-package))
Signature · 1 line
2.5.5
#18 lore raw

PATCH v3 8/9 s6-linux-utils: new package

Hello,

Quoted 4 lines · Eric Le Bihan

This new package provides s6-linux-utils, a set of minimalistic Linux-specific system utilities.

Quoted 9 lines
---
 package/Config.in                          |  1 +
 package/s6-linux-utils/Config.in           |  9 ++++++++
 package/s6-linux-utils/s6-linux-utils.hash |  2 ++
 package/s6-linux-utils/s6-linux-utils.mk   | 34 ++++++++++++++++++++++++++++++
 4 files changed, 46 insertions(+)
 create mode 100644 package/s6-linux-utils/Config.in
 create mode 100644 package/s6-linux-utils/s6-linux-utils.hash
 create mode 100644 package/s6-linux-utils/s6-linux-utils.mk

Applied to master, thanks.

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
#19 lore raw

PATCH v3 9/9 s6-linux-init: new package

In reply to Eric Le Bihan

This new package provides s6-linux-init, a set of minimalistic tools to create a s6-based init system, including a /sbin/init program, on a machine running a Linux kernel.

---
 package/Config.in                        |  1 +
 package/s6-linux-init/Config.in          | 11 ++++++++++
 package/s6-linux-init/s6-linux-init.hash |  2 ++
 package/s6-linux-init/s6-linux-init.mk   | 36 ++++++++++++++++++++++++++++++++
 4 files changed, 50 insertions(+)
 create mode 100644 package/s6-linux-init/Config.in
 create mode 100644 package/s6-linux-init/s6-linux-init.hash
 create mode 100644 package/s6-linux-init/s6-linux-init.mk
package/Config.in +1 -0
index 29d9121..a7d70eb 100644
@@ -1761,6 +1761,7 @@ menu "System tools"
 	source "package/rsyslog/Config.in"
 	source "package/runc/Config.in"
 	source "package/s6/Config.in"
+	source "package/s6-linux-init/Config.in"
 	source "package/s6-linux-utils/Config.in"
 	source "package/s6-portable-utils/Config.in"
 	source "package/s6-rc/Config.in"
package/s6-linux-init/Config.in new file +11 -0
new file mode 100644
index 0000000..db07e69
@@ -0,0 +1,11 @@
+config BR2_PACKAGE_S6_LINUX_INIT
+	bool "s6-linux-init"
+	select BR2_PACKAGE_S6
+	select BR2_PACKAGE_S6_LINUX_UTILS
+	select BR2_PACKAGE_S6_PORTABLE_UTILS
+	depends on BR2_USE_MMU # s6
+	help
+	  s6-linux-init is a set of minimalistic tools to create a s6-based
+	  init system, including a /sbin/init binary, on a Linux kernel.
+
+	  http://skarnet.org/software/s6-linux-init/
package/s6-linux-init/s6-linux-init.hash new file +2 -0
new file mode 100644
index 0000000..e02e391
@@ -0,0 +1,2 @@
+# Locally generated
+sha256 131484e61eff0e671e112f0436b13e8e7d08752f810d8bec4924a68383eee2b9 s6-linux-init-0.2.0.0.tar.gz
package/s6-linux-init/s6-linux-init.mk new file +36 -0
new file mode 100644
index 0000000..112e176
@@ -0,0 +1,36 @@
+################################################################################
+#
+# s6-linux-init
+#
+################################################################################
+
+S6_LINUX_INIT_VERSION = 0.2.0.0
+S6_LINUX_INIT_SITE = http://skarnet.org/software/s6-linux-init
+S6_LINUX_INIT_LICENSE = ISC
+S6_LINUX_INIT_LICENSE_FILES = COPYING
+S6_LINUX_INIT_DEPENDENCIES = s6 s6-linux-utils s6-portable-utils
+
+S6_LINUX_INIT_CONF_OPTS = \
+	--prefix=/usr \
+	--with-sysdeps=$(STAGING_DIR)/usr/lib/skalibs/sysdeps \
+	--with-include=$(STAGING_DIR)/usr/include \
+	--with-dynlib=$(STAGING_DIR)/usr/lib \
+	--with-lib=$(STAGING_DIR)/usr/lib/execline \
+	--with-lib=$(STAGING_DIR)/usr/lib/s6 \
+	--with-lib=$(STAGING_DIR)/usr/lib/skalibs \
+	$(if $(BR2_STATIC_LIBS),,--disable-allstatic) \
+	$(SHARED_STATIC_LIBS_OPTS)
+
+define S6_LINUX_INIT_CONFIGURE_CMDS
+	(cd $(@D); $(TARGET_CONFIGURE_OPTS) ./configure $(S6_LINUX_INIT_CONF_OPTS))
+endef
+
+define S6_LINUX_INIT_BUILD_CMDS
+	$(TARGET_MAKE_ENV) $(MAKE) -C $(@D)
+endef
+
+define S6_LINUX_INIT_INSTALL_TARGET_CMDS
+	$(TARGET_MAKE_ENV) $(MAKE) -C $(@D) DESTDIR=$(TARGET_DIR) install
+endef
+
+$(eval $(generic-package))
Signature · 1 line
2.5.5
#20 lore raw

PATCH v3 9/9 s6-linux-init: new package

Hello,

Quoted 5 lines · Eric Le Bihan

This new package provides s6-linux-init, a set of minimalistic tools to create a s6-based init system, including a /sbin/init program, on a machine running a Linux kernel.

Quoted 9 lines
---
 package/Config.in                        |  1 +
 package/s6-linux-init/Config.in          | 11 ++++++++++
 package/s6-linux-init/s6-linux-init.hash |  2 ++
 package/s6-linux-init/s6-linux-init.mk   | 36 ++++++++++++++++++++++++++++++++
 4 files changed, 50 insertions(+)
 create mode 100644 package/s6-linux-init/Config.in
 create mode 100644 package/s6-linux-init/s6-linux-init.hash
 create mode 100644 package/s6-linux-init/s6-linux-init.mk

Applied to master, thanks.

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
#21 lore raw

PATCH v3 9/9 s6-linux-init: new package

In reply to Eric Le Bihan
Quoted 5 lines
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line

"Eric" == Eric Le Bihan <[email protected]> writes:

This new package provides s6-linux-init, a set of minimalistic tools to create a s6-based init system, including a /sbin/init program, on a machine running a Linux kernel.

Hmm, should this then be added as one of the available init options in the system menu? Or if not, at least depend on BR2_INIT_NONE to ensure no other init system overwrites /sbin/init?

Quoted 97 lines
---
 package/Config.in                        |  1 +
 package/s6-linux-init/Config.in          | 11 ++++++++++
 package/s6-linux-init/s6-linux-init.hash |  2 ++
 package/s6-linux-init/s6-linux-init.mk   | 36 ++++++++++++++++++++++++++++++++
 4 files changed, 50 insertions(+)
 create mode 100644 package/s6-linux-init/Config.in
 create mode 100644 package/s6-linux-init/s6-linux-init.hash
 create mode 100644 package/s6-linux-init/s6-linux-init.mk
package/Config.in +1 -0
index 29d9121..a7d70eb 100644
@@ -1761,6 +1761,7 @@ menu "System tools"
 	source "package/rsyslog/Config.in"
 	source "package/runc/Config.in"
 	source "package/s6/Config.in"
+	source "package/s6-linux-init/Config.in"
 	source "package/s6-linux-utils/Config.in"
 	source "package/s6-portable-utils/Config.in"
 	source "package/s6-rc/Config.in"
package/s6-linux-init/Config.in new file +11 -0
new file mode 100644
index 0000000..db07e69
@@ -0,0 +1,11 @@
+config BR2_PACKAGE_S6_LINUX_INIT
+	bool "s6-linux-init"
+	select BR2_PACKAGE_S6
+	select BR2_PACKAGE_S6_LINUX_UTILS
+	select BR2_PACKAGE_S6_PORTABLE_UTILS
+	depends on BR2_USE_MMU # s6
+	help
+	  s6-linux-init is a set of minimalistic tools to create a s6-based
+	  init system, including a /sbin/init binary, on a Linux kernel.
+
+	  http://skarnet.org/software/s6-linux-init/
package/s6-linux-init/s6-linux-init.hash new file +2 -0
new file mode 100644
index 0000000..e02e391
@@ -0,0 +1,2 @@
+# Locally generated
+sha256 131484e61eff0e671e112f0436b13e8e7d08752f810d8bec4924a68383eee2b9 s6-linux-init-0.2.0.0.tar.gz
package/s6-linux-init/s6-linux-init.mk new file +36 -0
new file mode 100644
index 0000000..112e176
@@ -0,0 +1,36 @@
+################################################################################
+#
+# s6-linux-init
+#
+################################################################################
+
+S6_LINUX_INIT_VERSION = 0.2.0.0
+S6_LINUX_INIT_SITE = http://skarnet.org/software/s6-linux-init
+S6_LINUX_INIT_LICENSE = ISC
+S6_LINUX_INIT_LICENSE_FILES = COPYING
+S6_LINUX_INIT_DEPENDENCIES = s6 s6-linux-utils s6-portable-utils
+
+S6_LINUX_INIT_CONF_OPTS = \
+	--prefix=/usr \
+	--with-sysdeps=$(STAGING_DIR)/usr/lib/skalibs/sysdeps \
+	--with-include=$(STAGING_DIR)/usr/include \
+	--with-dynlib=$(STAGING_DIR)/usr/lib \
+	--with-lib=$(STAGING_DIR)/usr/lib/execline \
+	--with-lib=$(STAGING_DIR)/usr/lib/s6 \
+	--with-lib=$(STAGING_DIR)/usr/lib/skalibs \
+	$(if $(BR2_STATIC_LIBS),,--disable-allstatic) \
+	$(SHARED_STATIC_LIBS_OPTS)
+
+define S6_LINUX_INIT_CONFIGURE_CMDS
+	(cd $(@D); $(TARGET_CONFIGURE_OPTS) ./configure $(S6_LINUX_INIT_CONF_OPTS))
+endef
+
+define S6_LINUX_INIT_BUILD_CMDS
+	$(TARGET_MAKE_ENV) $(MAKE) -C $(@D)
+endef
+
+define S6_LINUX_INIT_INSTALL_TARGET_CMDS
+	$(TARGET_MAKE_ENV) $(MAKE) -C $(@D) DESTDIR=$(TARGET_DIR) install
+endef
+
+$(eval $(generic-package))
Signature · 6 lines
2.5.5

_______________________________________________
buildroot mailing list
buildroot at busybox.net
http://lists.busybox.net/mailman/listinfo/buildroot
Signature · 1 line
Bye, Peter Korsgaard
#22 lore raw

PATCH v3 9/9 s6-linux-init: new package

Hi!

Quoted 9 lines · Peter Korsgaard
Quoted 5 lines
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line

"Eric" == Eric Le Bihan <[email protected]> writes:

This new package provides s6-linux-init, a set of minimalistic tools to create a s6-based init system, including a /sbin/init program, on a machine running a Linux kernel.

Hmm, should this then be added as one of the available init options in the system menu? Or if not, at least depend on BR2_INIT_NONE to ensure no other init system overwrites /sbin/init?

s6-linux-init [1] does not provide a replacement for /sbin/init, but a tool to generate one FROM the target. So when this package is selected, there is no risk of messing up target/sbin/init at build time. Hence no need to make it depend on on BR2_INIT_NONE.

The s6* packages provide the tools to build an init system with service supervision (as the author states it: "mechanism over policy"). It is up to the user to glue everything via post-build scripts or a custom skeleton. A basic example of such a skeleton [2] is available in a personal Buildroot external customization [3].

Should some comments be added in s6-linux-init/Config.in to clarify this?

[1] http://skarnet.org/software/s6-linux-init/
[2] https://github.com/elebihan/s6-br2-init-skeleton/
[3] https://github.com/elebihan/br2-ext-skarnet/blob/master/system/Config.in

--
ELB