Browse Source

tipidee: new package

Also needs a host version to be able to generate the binary config file.
The host version is user-selectable so the user has the option of
running the compiler in a post-build script some other way.

We don't install the config file compiler tipidee-config on target.

Signed-off-by: J. Neuschäfer <j.neuschaefer@gmx.net>
[Arnout:
 - Remove BR2_PACKAGE_TIPIDEE_CONFIGURATION, use empty value of
   BR2_PACKAGE_TIPIDEE_CONFIG_FILE to flag false.
 - Rename BR2_PACKAGE_TIPIDEE_CONFIGURATION_FILE to
   BR2_PACKAGE_TIPIDEE_CONFIG_FILE.
 - Default BR2_PACKAGE_TIPIDEE_CONFIG_FILE to empty.
 - Fix spelling of BR2_PACKAGE_HOST_TIPIDEE.
 - Add J. to DEVELOPERS.
 - Install in /usr instead of /.
]
Signed-off-by: Arnout Vandecappelle <arnout@mind.be>
J. Neuschäfer 1 year ago
parent
commit
17deaf60f6

+ 3 - 0
DEVELOPERS

@@ -1442,6 +1442,9 @@ N:	Ismael Luceno <ismael@iodev.co.uk>
 F:	package/axel/
 F:	package/mawk/
 
+N:	J. Neuschäfer <j.neuschaefer@gmx.net>
+F:	package/tipidee
+
 N:	Jagan Teki <jagan@amarulasolutions.com>
 F:	board/amarula/
 F:	board/asus/

+ 1 - 0
package/Config.in

@@ -2606,6 +2606,7 @@ endif
 	source "package/tinc/Config.in"
 	source "package/tinyproxy/Config.in"
 	source "package/tinyssh/Config.in"
+	source "package/tipidee/Config.in"
 	source "package/tor/Config.in"
 	source "package/traceroute/Config.in"
 	source "package/transmission/Config.in"

+ 1 - 0
package/Config.in.host

@@ -114,6 +114,7 @@ menu "Host utilities"
 	source "package/systemd/Config.in.host"
 	source "package/tegrarcm/Config.in.host"
 	source "package/ti-cgt-pru/Config.in.host"
+	source "package/tipidee/Config.in.host"
 	source "package/uboot-tools/Config.in.host"
 	source "package/util-linux/Config.in.host"
 	source "package/utp_com/Config.in.host"

+ 31 - 0
package/tipidee/Config.in

@@ -0,0 +1,31 @@
+config BR2_PACKAGE_TIPIDEE
+	bool "tipidee"
+	depends on BR2_USE_MMU # skalibs
+	select BR2_PACKAGE_SKALIBS
+	select BR2_PACKAGE_HOST_TIPIDEE if BR2_PACKAGE_TIPIDEE_CONFIG_FILE != ""
+	help
+	  tipidee is a web server. It supports HTTP 1.0 and 1.1. It aims
+	  to be compliant with RFC 9112: while it only implements a very
+	  limited subset of the optional functionality in HTTP 1.1, it
+	  implements all the mandatory parts. It is usable with both
+	  HTTP and HTTPS.
+
+	  It runs under a super-server, e.g. inetd, s6-tcpserver, or
+	  s6-tlsserver (for HTTPS). Traditionally, inetd-mode web
+	  servers aren't considered performant, but tipidee aims to eke
+	  out every single drop of performance that is attainable with
+	  its programming model.
+
+	  https://skarnet.org/software/tipidee/
+
+if BR2_PACKAGE_TIPIDEE
+
+config BR2_PACKAGE_TIPIDEE_CONFIG_FILE
+	string "configuration source file"
+	default ""
+	help
+	  The configuration file in source (text) format, documented at:
+
+	  https://skarnet.org/software/tipidee/tipidee.conf.html
+
+endif

+ 8 - 0
package/tipidee/Config.in.host

@@ -0,0 +1,8 @@
+config BR2_PACKAGE_HOST_TIPIDEE
+	bool "host tipidee"
+	depends on BR2_USE_MMU # skalibs
+	select BR2_PACKAGE_SKALIBS
+	help
+	  This package builds the tipidee-config tool for the host.
+
+	  https://skarnet.org/software/tipidee/

+ 3 - 0
package/tipidee/tipidee.hash

@@ -0,0 +1,3 @@
+# Locally generated
+sha256  d9e91fc719879a43d54329b99b02c6649c54e428e77bc96a0573506b52bf1422  tipidee-0.0.5.0.tar.gz
+sha256  8feb7933c6e6506a7f20fbfc03fd37df3caff4becdf3b7a0ffad5016277e441e  COPYING

+ 72 - 0
package/tipidee/tipidee.mk

@@ -0,0 +1,72 @@
+################################################################################
+#
+# tipidee
+#
+################################################################################
+
+TIPIDEE_VERSION = 0.0.5.0
+TIPIDEE_SITE = https://skarnet.org/software/tipidee
+TIPIDEE_LICENSE = ISC
+TIPIDEE_LICENSE_FILES = COPYING
+TIPIDEE_DEPENDENCIES = skalibs
+
+TIPIDEE_CONF_OPTS = \
+	--prefix=/usr \
+	--with-sysdeps=$(STAGING_DIR)/lib/skalibs/sysdeps \
+	--with-include=$(STAGING_DIR)/include \
+	--with-dynlib=$(STAGING_DIR)/lib \
+	--with-lib=$(STAGING_DIR)/lib/skalibs \
+	$(if $(BR2_STATIC_LIBS),,--disable-allstatic) \
+	$(SHARED_STATIC_LIBS_OPTS)
+
+define TIPIDEE_CONFIGURE_CMDS
+	(cd $(@D); $(TARGET_CONFIGURE_OPTS) ./configure $(TIPIDEE_CONF_OPTS))
+endef
+
+define TIPIDEE_BUILD_CMDS
+	$(TARGET_MAKE_ENV) $(MAKE) -C $(@D)
+endef
+
+define TIPIDEE_INSTALL_TARGET_CMDS
+	$(TARGET_MAKE_ENV) $(MAKE) -C $(@D) DESTDIR=$(TARGET_DIR) install
+	rm -f $(TARGET_DIR)/bin/tipidee-config
+	rm -f $(TARGET_DIR)/libexec/tipidee-config-preprocess
+endef
+
+ifneq ($(BR2_PACKAGE_TIPIDEE_CONFIG_FILE),)
+TIPIDEE_DEPENDENCIES += host-tipidee
+
+define TIPIDEE_INSTALL_CONFIG
+	$(HOST_DIR)/bin/tipidee-config \
+		-i $(call qstrip, $(BR2_PACKAGE_TIPIDEE_CONFIG_FILE)) \
+		-o $(TARGET_DIR)/etc/tipidee.conf.cdb
+endef
+TIPIDEE_POST_INSTALL_TARGET_HOOKS += TIPIDEE_INSTALL_CONFIG
+
+endif
+
+HOST_TIPIDEE_DEPENDENCIES = host-skalibs
+
+HOST_TIPIDEE_CONF_OPTS = \
+	--prefix=$(HOST_DIR) \
+	--with-sysdeps=$(HOST_DIR)/lib/skalibs/sysdeps \
+	--with-include=$(HOST_DIR)/include \
+	--with-dynlib=$(HOST_DIR)/lib \
+	--disable-static \
+	--enable-shared \
+	--disable-allstatic
+
+define HOST_TIPIDEE_CONFIGURE_CMDS
+	(cd $(@D); $(HOST_CONFIGURE_OPTS) ./configure $(HOST_TIPIDEE_CONF_OPTS))
+endef
+
+define HOST_TIPIDEE_BUILD_CMDS
+	$(HOST_MAKE_ENV) $(MAKE) -C $(@D)
+endef
+
+define HOST_TIPIDEE_INSTALL_CMDS
+	$(HOST_MAKE_ENV) $(MAKE) -C $(@D) install-dynlib install-bin install-libexec
+endef
+
+$(eval $(generic-package))
+$(eval $(host-generic-package))