Commit ba1b3a5f authored by Renaud AUBIN's avatar Renaud AUBIN Committed by Thomas Petazzoni
Browse files

package/libhttpparser: New package



http-parser provides a simple C API to parse HTTP responses and
requests.

This packaging uses the official Joyent repository.

[Thomas:
 - since we're always building the shared library, depend on
   !BR2_STATIC_LIBS in Config.in. We could build only the static
   library, but then we would have to do all the lib installation
   manually.
 - indent using tabs in Config.in
 - use 'make install' instead of handcoding the library installation.
 - use $(TARGET_CONFIGURE_OPTS) instead of just CC= and LD=.
 - use tabs for indentation in commands instead of spaces
 - add patch to fix reinstallation.]

Signed-off-by: default avatarThomas Petazzoni <thomas.petazzoni@free-electrons.com>
parent 0d83de38
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -979,6 +979,7 @@ menu "Networking"
	source "package/libeXosip2/Config.in"
	source "package/libfcgi/Config.in"
	source "package/libgsasl/Config.in"
	source "package/libhttpparser/Config.in"
	source "package/libidn/Config.in"
	source "package/libiscsi/Config.in"
	source "package/libmbus/Config.in"
+34 −0
Original line number Diff line number Diff line
From d9dfeca8736318eaad5cd4554cbae059469decde Mon Sep 17 00:00:00 2001
From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Date: Fri, 28 Aug 2015 19:02:11 +0200
Subject: [PATCH] Use -f option when calling ln at install time

This allows "make install; make install" to work properly.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
---
 Makefile | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/Makefile b/Makefile
index 373709c..6206b09 100644
--- a/Makefile
+++ b/Makefile
@@ -113,12 +113,12 @@ tags: http_parser.c http_parser.h test.c
 install: library
 	$(INSTALL) -D  http_parser.h $(INCLUDEDIR)/http_parser.h
 	$(INSTALL) -D $(SONAME) $(LIBDIR)/$(SONAME)
-	ln -s $(LIBDIR)/$(SONAME) $(LIBDIR)/libhttp_parser.so
+	ln -sf $(LIBDIR)/$(SONAME) $(LIBDIR)/libhttp_parser.so
 
 install-strip: library
 	$(INSTALL) -D  http_parser.h $(INCLUDEDIR)/http_parser.h
 	$(INSTALL) -D -s $(SONAME) $(LIBDIR)/$(SONAME)
-	ln -s $(LIBDIR)/$(SONAME) $(LIBDIR)/libhttp_parser.so
+	ln -sf $(LIBDIR)/$(SONAME) $(LIBDIR)/libhttp_parser.so
 
 uninstall:
 	rm $(INCLUDEDIR)/http_parser.h
-- 
2.5.0
+17 −0
Original line number Diff line number Diff line
config BR2_PACKAGE_LIBHTTPPARSER
	bool "libhttpparser"
	depends on !BR2_STATIC_LIBS
	help
	  This is a parser for HTTP messages written in C. It
	  parses both requests and responses. The parser is
	  designed to be used in performance HTTP applications.
	  It does not make any syscalls nor allocations, it does
	  not buffer data, it can be interrupted at anytime.
	  Depending on your architecture, it only requires about
	  40 bytes of data per message stream (in a web server
	  that is per connection).

	  https://github.com/joyent/http-parser

comment "libhttpparser needs a toolchain w/ dynamic library"
	depends on BR2_STATIC_LIBS
+26 −0
Original line number Diff line number Diff line
################################################################################
#
# libhttpparser
#
################################################################################

LIBHTTPPARSER_VERSION = v2.5.0
LIBHTTPPARSER_SITE = $(call github,joyent,http-parser,$(LIBHTTPPARSER_VERSION))
LIBHTTPPARSER_INSTALL_STAGING = YES
LIBHTTPPARSER_LICENSE = MIT
LIBHTTPPARSER_LICENSE_FILES = LICENSE-MIT

define LIBHTTPPARSER_BUILD_CMDS
	$(MAKE) $(TARGET_CONFIGURE_OPTS) -C $(@D) library package
endef

define LIBHTTPPARSER_INSTALL_STAGING_CMDS
	$(MAKE) $(TARGET_CONFIGURE_OPTS) -C $(@D) PREFIX=$(STAGING_DIR)/usr install
	$(INSTALL) -D -m 0644 $(@D)/libhttp_parser.a $(STAGING_DIR)/usr/lib/libhttp_parser.a
endef

define LIBHTTPPARSER_INSTALL_TARGET_CMDS
	$(MAKE) $(TARGET_CONFIGURE_OPTS) -C $(@D) PREFIX=$(TARGET_DIR)/usr install
endef

$(eval $(generic-package))