Browse Source

add basic support for s6 init system

Waldemar Brodkorb 9 years ago
parent
commit
17503c1de1

+ 34 - 0
package/execline/Makefile

@@ -0,0 +1,34 @@
+# This file is part of the OpenADK project. OpenADK is copyrighted
+# material, please see the LICENCE file in the top-level directory.
+
+include $(ADK_TOPDIR)/rules.mk
+
+PKG_NAME:=		execline
+PKG_VERSION:=		2.1.5.0
+PKG_RELEASE:=		1
+PKG_HASH:=		8a3605a6db73183baa376bf2130e8b7eb75a5b5347c7f9144e520fe86bcb1142
+PKG_DESCR:=		non-interactive scripting language
+PKG_SECTION:=		libs/misc
+PKG_DEPENDS:=		skalibs
+PKG_BUILDDEP:=		skalibs
+PKG_URL:=		http://skarnet.org/software/execline/
+PKG_SITES:=		http://skarnet.org/software/execline/
+PKG_OPTS:=		dev
+
+DISTFILES:=             $(PKG_NAME)-$(PKG_VERSION).tar.gz
+
+include $(ADK_TOPDIR)/mk/package.mk
+
+$(eval $(call PKG_template,EXECLINE,execline,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKG_DESCR),$(PKG_SECTION),$(PKG_OPTS)))
+
+CONFIGURE_ARGS+=	--with-sysdeps=$(STAGING_TARGET_DIR)/usr/lib/skalibs/sysdeps \
+			--with-include=$(STAGING_TARGET_DIR)/usr/include \
+			--with-dynlib=$(STAGING_TARGET_DIR)/usr/lib \
+			--disable-allstatic
+
+execline-install:
+	$(INSTALL_DIR) $(IDIR_EXECLINE)/usr/lib
+	$(CP) $(WRKINST)/usr/lib/libexecline*.so* \
+		$(IDIR_EXECLINE)/usr/lib
+
+include $(ADK_TOPDIR)/mk/pkg-bottom.mk

+ 34 - 0
package/s6-linux-utils/Makefile

@@ -0,0 +1,34 @@
+# This file is part of the OpenADK project. OpenADK is copyrighted
+# material, please see the LICENCE file in the top-level directory.
+
+include $(ADK_TOPDIR)/rules.mk
+
+PKG_NAME:=		s6-linux-utils
+PKG_VERSION:=		2.1.0.0
+PKG_RELEASE:=		1
+PKG_HASH:=		3523ba84ba524198711b2de3edaaf620381a4e95d78ec6d13dcb7aba42397ead
+PKG_DESCR:=		set of minimalistic Linux-specific system utilities
+PKG_SECTION:=		sys/misc
+PKG_DEPENDS:=		skalibs
+PKG_BUILDDEP:=		skalibs
+PKG_URL:=		http://skarnet.org/software/s6-linux-utils/
+PKG_SITES:=		http://skarnet.org/software/s6-linux-utils/
+
+DISTFILES:=             $(PKG_NAME)-$(PKG_VERSION).tar.gz
+
+include $(ADK_TOPDIR)/mk/package.mk
+
+$(eval $(call PKG_template,S6_LINUX_UTILS,s6-linux-utils,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKG_DESCR),$(PKG_SECTION)))
+
+TARGET_LDFLAGS+=	-lrt
+CONFIGURE_ARGS+=	--with-sysdeps=$(STAGING_TARGET_DIR)/usr/lib/skalibs/sysdeps \
+			--with-include=$(STAGING_TARGET_DIR)/usr/include \
+			--with-dynlib=$(STAGING_TARGET_DIR)/usr/lib \
+			--disable-allstatic 
+
+s6-linux-utils-install:
+	$(INSTALL_DIR) $(IDIR_S6_LINUX_UTILS)/usr/bin
+	$(CP) $(WRKINST)/usr/bin/* \
+		$(IDIR_S6_LINUX_UTILS)/usr/bin
+
+include $(ADK_TOPDIR)/mk/pkg-bottom.mk

+ 33 - 0
package/s6-portable-utils/Makefile

@@ -0,0 +1,33 @@
+# This file is part of the OpenADK project. OpenADK is copyrighted
+# material, please see the LICENCE file in the top-level directory.
+
+include $(ADK_TOPDIR)/rules.mk
+
+PKG_NAME:=		s6-portable-utils
+PKG_VERSION:=		2.0.6.0
+PKG_RELEASE:=		1
+PKG_HASH:=		233b7d13766a23661cc7ed5c052f29b9c558c1d516a538a281a17da22a909d4b
+PKG_DESCR:=		set of tiny general Unix utilities
+PKG_SECTION:=		sys/misc
+PKG_DEPENDS:=		skalibs
+PKG_BUILDDEP:=		skalibs
+PKG_URL:=		http://skarnet.org/software/s6-portable-utils/
+PKG_SITES:=		http://skarnet.org/software/s6-portable-utils/
+
+DISTFILES:=             $(PKG_NAME)-$(PKG_VERSION).tar.gz
+
+include $(ADK_TOPDIR)/mk/package.mk
+
+$(eval $(call PKG_template,S6_PORTABLE_UTILS,s6-portable-utils,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKG_DESCR),$(PKG_SECTION)))
+
+CONFIGURE_ARGS+=	--with-sysdeps=$(STAGING_TARGET_DIR)/usr/lib/skalibs/sysdeps \
+			--with-include=$(STAGING_TARGET_DIR)/usr/include \
+			--with-dynlib=$(STAGING_TARGET_DIR)/usr/lib \
+			--disable-allstatic 
+
+s6-portable-utils-install:
+	$(INSTALL_DIR) $(IDIR_S6_PORTABLE_UTILS)/usr/bin
+	$(CP) $(WRKINST)/usr/bin/* \
+		$(IDIR_S6_PORTABLE_UTILS)/usr/bin
+
+include $(ADK_TOPDIR)/mk/pkg-bottom.mk

+ 39 - 0
package/s6/Makefile

@@ -0,0 +1,39 @@
+# This file is part of the OpenADK project. OpenADK is copyrighted
+# material, please see the LICENCE file in the top-level directory.
+
+include $(ADK_TOPDIR)/rules.mk
+
+PKG_NAME:=		s6
+PKG_VERSION:=		2.3.0.0
+PKG_RELEASE:=		1
+PKG_HASH:=		49c9a0476d93c6279c776ca5ae9c49b3fd39c356eda674828aebf78f8488e8e6
+PKG_DESCR:=		small suite of programs for UNIX, designed to allow process supervision
+PKG_SECTION:=		base/apps
+PKG_DEPENDS:=		skalibs execline
+PKG_BUILDDEP:=		skalibs execline
+PKG_URL:=		http://www.skarnet.org/software/s6/
+PKG_SITES:=		http://www.skarnet.org/software/s6/
+
+DISTFILES:=             $(PKG_NAME)-$(PKG_VERSION).tar.gz
+
+include $(ADK_TOPDIR)/mk/package.mk
+
+$(eval $(call PKG_template,S6,s6,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKG_DESCR),$(PKG_SECTION)))
+
+CONFIGURE_ARGS+=	--with-sysdeps=$(STAGING_TARGET_DIR)/usr/lib/skalibs/sysdeps \
+			--with-include=$(STAGING_TARGET_DIR)/usr/include \
+			--with-dynlib=$(STAGING_TARGET_DIR)/usr/lib \
+			--disable-allstatic 
+
+s6-install:
+	$(INSTALL_DIR) $(IDIR_S6)/usr/bin
+	$(INSTALL_DIR) $(IDIR_S6)/usr/sbin
+	$(INSTALL_DIR) $(IDIR_S6)/usr/libexec
+	$(CP) $(WRKINST)/usr/bin/* \
+		$(IDIR_S6)/usr/bin
+	$(CP) $(WRKINST)/usr/sbin/* \
+		$(IDIR_S6)/usr/sbin
+	$(CP) $(WRKINST)/usr/libexec/* \
+		$(IDIR_S6)/usr/libexec
+
+include $(ADK_TOPDIR)/mk/pkg-bottom.mk

+ 31 - 0
package/skalibs/Makefile

@@ -0,0 +1,31 @@
+# This file is part of the OpenADK project. OpenADK is copyrighted
+# material, please see the LICENCE file in the top-level directory.
+
+include $(ADK_TOPDIR)/rules.mk
+
+PKG_NAME:=		skalibs
+PKG_VERSION:=		2.3.10.0
+PKG_RELEASE:=		1
+PKG_HASH:=		e4d5147941055b2a367794666f773a4b216c3ae83c015a5fcf2cd0498470ea44
+PKG_DESCR:=		general purpose libraries
+PKG_SECTION:=		libs/misc
+PKG_URL:=		http://www.skarnet.org/software/skalibs/
+PKG_SITES:=		http://www.skarnet.org/software/skalibs/
+PKG_OPTS:=		dev
+
+DISTFILES:=             $(PKG_NAME)-$(PKG_VERSION).tar.gz
+
+include $(ADK_TOPDIR)/mk/package.mk
+
+$(eval $(call PKG_template,SKALIBS,skalibs,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKG_DESCR),$(PKG_SECTION),$(PKG_OPTS)))
+
+CONFIGURE_ARGS+=	--enable-force-devr \
+			--disable-allstatic \
+			--with-default-path=/sbin:/usr/sbin:/bin:/usr/bin
+
+skalibs-install:
+	$(INSTALL_DIR) $(IDIR_SKALIBS)/usr/lib
+	$(CP) $(WRKINST)/usr/lib/libskarnet.so* \
+		$(IDIR_SKALIBS)/usr/lib
+
+include $(ADK_TOPDIR)/mk/pkg-bottom.mk

+ 58 - 0
package/skalibs/patches/patch-configure

@@ -0,0 +1,58 @@
+--- skalibs-2.3.10.0.orig/configure	2016-03-19 16:04:58.000000000 +0100
++++ skalibs-2.3.10.0/configure	2016-09-03 17:23:41.494368249 +0200
+@@ -154,10 +154,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
+@@ -451,12 +469,20 @@ EOF
+   fi
+ 
+   echo "Checking system endianness..."
+-  $CC_AUTO $CPPFLAGS_AUTO $CFLAGS_AUTO -o tryendianness src/sysdeps/tryendianness.c
+-  endianness=$(./tryendianness) || fail "$0: unable to determine 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"

+ 17 - 0
package/skalibs/src/src/sysdeps/trybigendian.c

@@ -0,0 +1,17 @@
+#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;
+}
+

+ 16 - 0
package/skalibs/src/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;
+}

+ 6 - 0
target/config/Config.in.runtime

@@ -15,6 +15,12 @@ default ADK_RUNTIME_INIT_SYSV
 config ADK_RUNTIME_INIT_SYSV
 	bool "Use busybox init"
 
+config ADK_RUNTIME_INIT_S6
+	bool "Use s6 init and supervision"
+	select ADK_PACKAGE_S6
+	select ADK_PACKAGE_S6_PORTABLE_UTILS
+	select ADK_PACKAGE_S6_LINUX_UTILS
+
 config ADK_RUNTIME_INIT_SIMPLEINIT
 	bool "Use a very simple init"
 	select ADK_PACKAGE_SIMPLEINIT