diff options
author | Jakub Jirutka <jakub@jirutka.cz> | 2016-03-27 23:01:19 +0000 |
---|---|---|
committer | Natanael Copa <ncopa@alpinelinux.org> | 2016-03-30 08:26:05 +0000 |
commit | e379b72e209d55a68ac76a614c358e7bb8ea23f1 (patch) | |
tree | ac52f0611b80b1b9e3bf4bbcda6318b72b862ca3 /testing/http-parser | |
parent | 83c66b420d4c2bd4b8a93e1fe243161ce8efc22d (diff) | |
download | aports-e379b72e209d55a68ac76a614c358e7bb8ea23f1.tar.bz2 aports-e379b72e209d55a68ac76a614c358e7bb8ea23f1.tar.xz |
testing/http-parser: new abuild
https://github.com/nodejs/http-parser
HTTP request/response parser for C
Diffstat (limited to 'testing/http-parser')
6 files changed, 276 insertions, 0 deletions
diff --git a/testing/http-parser/0001-makefile-fix-DESTDIR-usage.patch b/testing/http-parser/0001-makefile-fix-DESTDIR-usage.patch new file mode 100644 index 0000000000..a819cf441d --- /dev/null +++ b/testing/http-parser/0001-makefile-fix-DESTDIR-usage.patch @@ -0,0 +1,64 @@ +From 7fbc87986baa09c342abb21e34613e8bbdc3c9c7 Mon Sep 17 00:00:00 2001 +From: hasufell <hasufell@hasufell.de> +Date: Mon, 2 Nov 2015 16:24:43 +0100 +Subject: [PATCH 1/4] makefile: fix DESTDIR usage + +DESTDIR is not supposed to be set inside other variables. It is +standard to have this variable in install/uninstall rules, so it +can be reliably set separately no matter what other variables are set +to. +This also avoids potential bugs with setting SONAME or seds on +installed files (like pkgconfig) which then might include the +temporary DESTDIR directory. + +DESTDIR is really just for installing into a temporary directory or +a chroot, mostly used by package managers. +--- + Makefile | 20 ++++++++++---------- + 1 file changed, 10 insertions(+), 10 deletions(-) + +diff --git a/Makefile b/Makefile +index 33c8ba0..76153a0 100644 +--- a/Makefile ++++ b/Makefile +@@ -55,7 +55,7 @@ CFLAGS_LIB = $(CFLAGS_FAST) -fPIC + LDFLAGS_LIB = $(LDFLAGS) -shared + + INSTALL ?= install +-PREFIX ?= $(DESTDIR)/usr/local ++PREFIX ?= /usr/local + LIBDIR = $(PREFIX)/lib + INCLUDEDIR = $(PREFIX)/include + +@@ -123,19 +123,19 @@ tags: http_parser.c http_parser.h test.c + ctags $^ + + install: library +- $(INSTALL) -D http_parser.h $(INCLUDEDIR)/http_parser.h +- $(INSTALL) -D $(SONAME) $(LIBDIR)/$(SONAME) +- ln -s $(LIBDIR)/$(SONAME) $(LIBDIR)/libhttp_parser.$(SOEXT) ++ $(INSTALL) -D http_parser.h $(DESTDIR)$(INCLUDEDIR)/http_parser.h ++ $(INSTALL) -D $(SONAME) $(DESTDIR)$(LIBDIR)/$(SONAME) ++ ln -s $(LIBDIR)/$(SONAME) $(DESTDIR)$(LIBDIR)/libhttp_parser.$(SOEXT) + + 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.$(SOEXT) ++ $(INSTALL) -D http_parser.h $(DESTDIR)$(INCLUDEDIR)/http_parser.h ++ $(INSTALL) -D -s $(SONAME) $(DESTDIR)$(LIBDIR)/$(SONAME) ++ ln -s $(LIBDIR)/$(SONAME) $(DESTDIR)$(LIBDIR)/libhttp_parser.$(SOEXT) + + uninstall: +- rm $(INCLUDEDIR)/http_parser.h +- rm $(LIBDIR)/$(SONAME) +- rm $(LIBDIR)/libhttp_parser.so ++ rm $(DESTDIR)$(INCLUDEDIR)/http_parser.h ++ rm $(DESTDIR)$(LIBDIR)/$(SONAME) ++ rm $(DESTDIR)$(LIBDIR)/libhttp_parser.so + + clean: + rm -f *.o *.a tags test test_fast test_g \ +-- +2.6.1 + diff --git a/testing/http-parser/0002-makefile-quote-variables.patch b/testing/http-parser/0002-makefile-quote-variables.patch new file mode 100644 index 0000000000..096ac6b6bd --- /dev/null +++ b/testing/http-parser/0002-makefile-quote-variables.patch @@ -0,0 +1,50 @@ +From 9bce473ba7417b45bfdb59d4151a8857dcfff4ad Mon Sep 17 00:00:00 2001 +From: hasufell <hasufell@hasufell.de> +Date: Mon, 2 Nov 2015 16:27:06 +0100 +Subject: [PATCH 2/4] makefile: quote variables + +Make does not take care of this in make rules. If any of the variables +DESTDIR, INCLUDEDIR or LIBDIR contain whitespaces, then the related +install command will fail. + +This is even more important for the uninstall rule. +--- + Makefile | 18 +++++++++--------- + 1 file changed, 9 insertions(+), 9 deletions(-) + +diff --git a/Makefile b/Makefile +index 76153a0..8c4a9d7 100644 +--- a/Makefile ++++ b/Makefile +@@ -123,19 +123,19 @@ tags: http_parser.c http_parser.h test.c + ctags $^ + + install: library +- $(INSTALL) -D http_parser.h $(DESTDIR)$(INCLUDEDIR)/http_parser.h +- $(INSTALL) -D $(SONAME) $(DESTDIR)$(LIBDIR)/$(SONAME) +- ln -s $(LIBDIR)/$(SONAME) $(DESTDIR)$(LIBDIR)/libhttp_parser.$(SOEXT) ++ $(INSTALL) -D http_parser.h "$(DESTDIR)$(INCLUDEDIR)/http_parser.h" ++ $(INSTALL) -D $(SONAME) "$(DESTDIR)$(LIBDIR)/$(SONAME)" ++ ln -s $(LIBDIR)/$(SONAME) "$(DESTDIR)$(LIBDIR)/libhttp_parser.$(SOEXT)" + + install-strip: library +- $(INSTALL) -D http_parser.h $(DESTDIR)$(INCLUDEDIR)/http_parser.h +- $(INSTALL) -D -s $(SONAME) $(DESTDIR)$(LIBDIR)/$(SONAME) +- ln -s $(LIBDIR)/$(SONAME) $(DESTDIR)$(LIBDIR)/libhttp_parser.$(SOEXT) ++ $(INSTALL) -D http_parser.h "$(DESTDIR)$(INCLUDEDIR)/http_parser.h" ++ $(INSTALL) -D -s $(SONAME) "$(DESTDIR)$(LIBDIR)/$(SONAME)" ++ ln -s $(LIBDIR)/$(SONAME) "$(DESTDIR)$(LIBDIR)/libhttp_parser.$(SOEXT)" + + uninstall: +- rm $(DESTDIR)$(INCLUDEDIR)/http_parser.h +- rm $(DESTDIR)$(LIBDIR)/$(SONAME) +- rm $(DESTDIR)$(LIBDIR)/libhttp_parser.so ++ rm "$(DESTDIR)$(INCLUDEDIR)/http_parser.h" ++ rm "$(DESTDIR)$(LIBDIR)/$(SONAME)" ++ rm "$(DESTDIR)$(LIBDIR)/libhttp_parser.so" + + clean: + rm -f *.o *.a tags test test_fast test_g \ +-- +2.6.1 + diff --git a/testing/http-parser/0003-makefile-fix-SONAME-symlink-it-should-not-be-a-full-.patch b/testing/http-parser/0003-makefile-fix-SONAME-symlink-it-should-not-be-a-full-.patch new file mode 100644 index 0000000000..cafe68d220 --- /dev/null +++ b/testing/http-parser/0003-makefile-fix-SONAME-symlink-it-should-not-be-a-full-.patch @@ -0,0 +1,35 @@ +From f45b38c42e7e92a5d0215c44dcf306616536011e Mon Sep 17 00:00:00 2001 +From: hasufell <hasufell@hasufell.de> +Date: Mon, 2 Nov 2015 16:32:11 +0100 +Subject: [PATCH 3/4] makefile: fix SONAME symlink, it should not be a full + path + +The symlink destination being a full path doesn't give any benefit and +may break a few use cases of copying these files to a different +destination, while preserving the symlink. +--- + Makefile | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/Makefile b/Makefile +index 8c4a9d7..cbe93e8 100644 +--- a/Makefile ++++ b/Makefile +@@ -125,12 +125,12 @@ tags: http_parser.c http_parser.h test.c + install: library + $(INSTALL) -D http_parser.h "$(DESTDIR)$(INCLUDEDIR)/http_parser.h" + $(INSTALL) -D $(SONAME) "$(DESTDIR)$(LIBDIR)/$(SONAME)" +- ln -s $(LIBDIR)/$(SONAME) "$(DESTDIR)$(LIBDIR)/libhttp_parser.$(SOEXT)" ++ ln -s $(SONAME) "$(DESTDIR)$(LIBDIR)/libhttp_parser.$(SOEXT)" + + install-strip: library + $(INSTALL) -D http_parser.h "$(DESTDIR)$(INCLUDEDIR)/http_parser.h" + $(INSTALL) -D -s $(SONAME) "$(DESTDIR)$(LIBDIR)/$(SONAME)" +- ln -s $(LIBDIR)/$(SONAME) "$(DESTDIR)$(LIBDIR)/libhttp_parser.$(SOEXT)" ++ ln -s $(SONAME) "$(DESTDIR)$(LIBDIR)/libhttp_parser.$(SOEXT)" + + uninstall: + rm "$(DESTDIR)$(INCLUDEDIR)/http_parser.h" +-- +2.6.1 + diff --git a/testing/http-parser/0004-makefile-add-CFLAGS-to-linking-command.patch b/testing/http-parser/0004-makefile-add-CFLAGS-to-linking-command.patch new file mode 100644 index 0000000000..e21cd71549 --- /dev/null +++ b/testing/http-parser/0004-makefile-add-CFLAGS-to-linking-command.patch @@ -0,0 +1,31 @@ +From 62b1450cfe2e0df2d912279d38edf1b916020101 Mon Sep 17 00:00:00 2001 +From: hasufell <hasufell@hasufell.de> +Date: Mon, 2 Nov 2015 16:39:31 +0100 +Subject: [PATCH 4/4] makefile: add CFLAGS to linking command + +Although we compile the objects explicitly there are some CFLAGS +that may also affect linking, which is not always obvious. + +This can also be a problem for toolchains that support multiple ABIs +and need to set CFLAGS=<abi selector>, which will cause linking +to either fail or produce an unusable executable/library. +--- + Makefile | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/Makefile b/Makefile +index cbe93e8..ae16f08 100644 +--- a/Makefile ++++ b/Makefile +@@ -102,7 +102,7 @@ libhttp_parser.o: http_parser.c http_parser.h Makefile + $(CC) $(CPPFLAGS_FAST) $(CFLAGS_LIB) -c http_parser.c -o libhttp_parser.o + + library: libhttp_parser.o +- $(CC) $(LDFLAGS_LIB) -o $(SONAME) $< ++ $(CC) $(CFLAGS_LIB) $(LDFLAGS_LIB) -o $(SONAME) $< + + package: http_parser.o + $(AR) rcs libhttp_parser.a http_parser.o +-- +2.6.1 + diff --git a/testing/http-parser/0005-makefile-fix-install-rule-dependency.patch b/testing/http-parser/0005-makefile-fix-install-rule-dependency.patch new file mode 100644 index 0000000000..da96637306 --- /dev/null +++ b/testing/http-parser/0005-makefile-fix-install-rule-dependency.patch @@ -0,0 +1,33 @@ +From b67bfbe6a07529dd82e2ee83b6848d017e6e422f Mon Sep 17 00:00:00 2001 +From: hasufell <hasufell@hasufell.de> +Date: Mon, 2 Nov 2015 16:51:28 +0100 +Subject: [PATCH 5/5] makefile: fix install rule dependency + +Otherwise the install rule will recompile the library, no matter +if it has already been compiled. +--- + Makefile | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/Makefile b/Makefile +index ae16f08..df0b59f 100644 +--- a/Makefile ++++ b/Makefile +@@ -122,12 +122,12 @@ parsertrace_g: http_parser_g.o contrib/parsertrace.c + tags: http_parser.c http_parser.h test.c + ctags $^ + +-install: library ++install: $(SONAME) + $(INSTALL) -D http_parser.h "$(DESTDIR)$(INCLUDEDIR)/http_parser.h" + $(INSTALL) -D $(SONAME) "$(DESTDIR)$(LIBDIR)/$(SONAME)" + ln -s $(SONAME) "$(DESTDIR)$(LIBDIR)/libhttp_parser.$(SOEXT)" + +-install-strip: library ++install-strip: $(SONAME) + $(INSTALL) -D http_parser.h "$(DESTDIR)$(INCLUDEDIR)/http_parser.h" + $(INSTALL) -D -s $(SONAME) "$(DESTDIR)$(LIBDIR)/$(SONAME)" + ln -s $(SONAME) "$(DESTDIR)$(LIBDIR)/libhttp_parser.$(SOEXT)" +-- +2.6.1 + diff --git a/testing/http-parser/APKBUILD b/testing/http-parser/APKBUILD new file mode 100644 index 0000000000..6905b211c4 --- /dev/null +++ b/testing/http-parser/APKBUILD @@ -0,0 +1,63 @@ +# Contributor: Jakub Jirutka <jakub@jirutka.cz> +# Maintainer: Jakub Jirutka <jakub@jirutka.cz> +pkgname=http-parser +pkgver=2.6.2 +pkgrel=0 +pkgdesc="HTTP request/response parser for C" +url="https://github.com/nodejs/http-parser" +arch="all" +license="MIT" +depends="" +makedepends="" +subpackages="$pkgname-dev" + +# Note: All the patches are copied from Gentoo ebuild. +# upstream: https://github.com/nodejs/http-parser/pull/272 +source="$pkgname-$pkgver.tar.gz::https://github.com/nodejs/$pkgname/archive/v$pkgver.tar.gz + 0001-makefile-fix-DESTDIR-usage.patch + 0002-makefile-quote-variables.patch + 0003-makefile-fix-SONAME-symlink-it-should-not-be-a-full-.patch + 0004-makefile-add-CFLAGS-to-linking-command.patch + 0005-makefile-fix-install-rule-dependency.patch + " + +_builddir="$srcdir/$pkgname-$pkgver" + +prepare() { + cd "$_builddir" + + local file; for file in $source; do + case $file in + *.patch) msg $file; patch -p1 -i "$srcdir"/$file || return 1;; + esac + done +} + +build() { + cd "$_builddir" + make library +} + +package() { + cd "$_builddir" + make install DESTDIR="$pkgdir" PREFIX="/usr" +} + +md5sums="bcb0b4845b38404590c7197761bfa7b9 http-parser-2.6.2.tar.gz +f6d5377fd3b5c91422bb2dcc2c4dce6c 0001-makefile-fix-DESTDIR-usage.patch +859eff808165458c797353f0306ebc65 0002-makefile-quote-variables.patch +8aea7eb27ae19ede7c8aed3d41c86d84 0003-makefile-fix-SONAME-symlink-it-should-not-be-a-full-.patch +23d1e43dbf2deffb38488d54cce62f96 0004-makefile-add-CFLAGS-to-linking-command.patch +fd7ffe7e725f866232f3b2850d164256 0005-makefile-fix-install-rule-dependency.patch" +sha256sums="80fffc3b64ef6968cecdd4b299a96986007dff4bd12ae6c58cbcb506959b90ad http-parser-2.6.2.tar.gz +785012d9e0efb70c4dcc137f354ab57afabdcb0fb7c8cb2580c3c4a7e9add330 0001-makefile-fix-DESTDIR-usage.patch +80fdf673731f27f328d45f4da7daa613613d8db40f1dc84d2ce65fad0130c054 0002-makefile-quote-variables.patch +9854f5f205ec0959cc10cab80d16ff54f33a9979e5fd310ba9a4624b60c84ee9 0003-makefile-fix-SONAME-symlink-it-should-not-be-a-full-.patch +e69fa304327dbb0626edaf147b73dc9fb4718b656b225794a04937206929c0df 0004-makefile-add-CFLAGS-to-linking-command.patch +04898654adef3f3dbf1e29e66f8e9fc4467f68389e224beb03387d33ee263212 0005-makefile-fix-install-rule-dependency.patch" +sha512sums="e19e5377b3eb7f149c428196826fb878564fdfa3716ff6df5a3845c51586aee0582e252e09d1f8ebad1163b3e66632ff0c6e78f6acb2f0da20d7a06e734406c1 http-parser-2.6.2.tar.gz +ebb481df21cb312824ed65e7d6a3e7b237451071235566595da97c09b165767693ec3c47c27c451bfbdc2d62cc45c7d5d9f996b80789dc7fedaa2543c94c9065 0001-makefile-fix-DESTDIR-usage.patch +3637abedbf330af0f4a9721081db99fe0f6400322f21f77ab16d580546a9d200d40bc584e8dbb51adec249c2d468730c6e2487ccda3786626909d988b7f8856a 0002-makefile-quote-variables.patch +8202d665963234ce6dd84439f281921cb959424024c2fec8a27b65693b3466cab8674a3549d22fdb2fc07edf69f94440368ef77738ae4be2a5d94c13e3c814bb 0003-makefile-fix-SONAME-symlink-it-should-not-be-a-full-.patch +e18c163f2069795fb6b744ad9f6e44eb9efca7f560460a6759bc0121a404bfe8109031c0f43d36d4987bda3411e0a433dbab6d0eabb2dbb5c79f1ce878251aae 0004-makefile-add-CFLAGS-to-linking-command.patch +4cd120f406eeeb1e5a60c7d8955cdfead50d99b60f91a0fcdb2ae19403d08e5ed5619885c9e434ce40ffb442b317ee8c32ef636960429036f9bff92492f03968 0005-makefile-fix-install-rule-dependency.patch" |