c-icap: new package

[Thomas:
 - Remove trailing whitespace everywhere
 - Rewrap the Config.in help text
 - Fix Config.in comment, the proper text for BR2_PREFER_STATIC_LIB is
   "dynamic library", not "libdl library"
 - Use a PID file in the init script
 - Show OK / FAIL when stopping the service
 - Remove the largefile/IPv6 handling in c-icap.mk, since they are now
   mandatory. We therefore pass --enable-large-files and --enable-ipv6
   unconditionally.
 - Remove the reference to a non-existing
   C_ICAP_INSTALL_TARGET_CONFIGS install target hook.
 - Install the init script unconditionally.
 - Remove unneeded example configuration files (*.default) from /etc,
   and fixup the c-icap.conf so that the default values work with
   Buildroot
 - Properly handle the *-config scripts installed by c-icap.
 - Add hash file.]

Signed-off-by: Guillaume GARDET <guillaume.gardet@oliseo.fr>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
This commit is contained in:
Guillaume GARDET 2014-11-18 15:54:46 +01:00 committed by Thomas Petazzoni
parent 9c9598e023
commit 97b494b0d3
5 changed files with 116 additions and 0 deletions

View File

@ -1159,6 +1159,7 @@ menu "Networking applications"
source "package/boa/Config.in"
source "package/bridge-utils/Config.in"
source "package/bwm-ng/Config.in"
source "package/c-icap/Config.in"
source "package/can-utils/Config.in"
source "package/chrony/Config.in"
source "package/civetweb/Config.in"

16
package/c-icap/Config.in Normal file
View File

@ -0,0 +1,16 @@
config BR2_PACKAGE_C_ICAP
bool "c-icap"
depends on !BR2_PREFER_STATIC_LIB
depends on BR2_TOOLCHAIN_HAS_THREADS
help
c-icap is an implementation of an ICAP server. It can be
used with HTTP proxies that support the ICAP protocol to
implement content adaptation and filtering services. Most
of the commercial HTTP proxies must support the ICAP
protocol. The open source Squid 3.x proxy server supports
it.
http://c-icap.sourceforge.net/
comment "c-icap needs a toolchain w/ threads and dynamic library"
depends on BR2_PREFER_STATIC_LIB || !BR2_TOOLCHAIN_HAS_THREADS

27
package/c-icap/S96cicap Normal file
View File

@ -0,0 +1,27 @@
#!/bin/sh
# (Re)create directories
mkdir -p /var/run/c-icap
mkdir -p /var/log/c-icap
case "$1" in
start)
echo -n "Starting c-icap server: "
start-stop-daemon -S -q -b -m -p /var/run/c-icap.pid \
-x /usr/bin/c-icap -- -N
[ $? == 0 ] && echo "OK" || echo "FAIL"
;;
stop)
echo -n "Stopping c-icap server: "
start-stop-daemon -K -q -p /var/run/c-icap.pid
[ $? = 0 ] && echo "OK" || echo "FAIL"
;;
restart|reload)
$0 stop
sleep 1
$0 start
;;
*)
echo "Usage: /etc/init.d/S96cicap {start|stop|restart|reload}"
exit 1
esac

View File

@ -0,0 +1,2 @@
# Locally calculated
sha256 46b97fab73dbb9e8def8e34c3f94048c92f50a5341bb85bec4f6f6349aec529a c_icap-0.3.5.tar.gz

70
package/c-icap/c-icap.mk Normal file
View File

@ -0,0 +1,70 @@
################################################################################
#
# c-icap
#
################################################################################
C_ICAP_VERSION = 0.3.5
C_ICAP_SOURCE = c_icap-$(C_ICAP_VERSION).tar.gz
C_ICAP_SITE = http://downloads.sourceforge.net/c-icap/
C_ICAP_LICENSE = LGPLv2.1+
C_ICAP_LICENSE_FILES = COPYING
C_ICAP_INSTALL_STAGING = YES
C_ICAP_CONFIG_SCRIPTS = c-icap-config c-icap-libicapapi-config
C_ICAP_CONF_OPTS = \
--with-process-mutexes=posix \
--without-ldap \
--enable-large-files \
--enable-ipv6
ifeq ($(BR2_PACKAGE_BERKELEYDB),y)
C_ICAP_CONF_OPTS += --with-berkeleydb
C_ICAP_DEPENDENCIES += berkeleydb
else
C_ICAP_CONF_OPTS += --without-berkeleydb
endif
ifeq ($(BR2_PACKAGE_BZIP2),y)
C_ICAP_CONF_OPTS += --with-bzip2
C_ICAP_DEPENDENCIES += bzip2
else
C_ICAP_CONF_OPTS += --without-bzip2
endif
ifeq ($(BR2_PACKAGE_PERL),y)
C_ICAP_CONF_OPTS += --with-perl
C_ICAP_DEPENDENCIES += perl
else
C_ICAP_CONF_OPTS += --without-perl
endif
ifeq ($(BR2_PACKAGE_ZLIB),y)
C_ICAP_CONF_OPTS += --with-zlib
C_ICAP_DEPENDENCIES += zlib
else
C_ICAP_CONF_OPTS += --without-zlib
endif
define C_ICAP_INSTALL_INIT_SYSV
$(INSTALL) -m 0755 -D package/c-icap/S96cicap $(TARGET_DIR)/etc/init.d/S96cicap
endef
# Tweak the installation:
# - Removed unneeded sample configuration files (c-icap.*.default),
# since some real ones are also installed
# - Tweak some paths in the c-icap.conf configuration file
# - Tweak the -config scripts, because the generic
# <pkg>_CONFIG_SCRIPTS logic doesn't tweak them enough
define C_ICAP_TUNE_INSTALLATION
$(RM) -f $(TARGET_DIR)/etc/c-icap.*.default
$(SED) 's%/usr/etc/%/etc/%' $(TARGET_DIR)/etc/c-icap.conf
$(SED) 's%/usr/var/%/var/%' $(TARGET_DIR)/etc/c-icap.conf
$(SED) 's%INCDIR=.*%INCDIR=$(STAGING_DIR)/usr/include%' \
$(STAGING_DIR)/usr/bin/{c-icap,c-icap-libicapapi}-config
$(SED) 's%INCDIR2=.*%INCDIR2=$(STAGING_DIR)/usr/include/c_icap%' \
$(STAGING_DIR)/usr/bin/{c-icap,c-icap-libicapapi}-config
endef
C_ICAP_POST_INSTALL_TARGET_HOOKS += C_ICAP_TUNE_INSTALLATION
$(eval $(autotools-package))