summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJulian Ospald <hasufell@gentoo.org>2015-11-02 17:04:10 +0100
committerJulian Ospald <hasufell@gentoo.org>2015-11-02 17:05:41 +0100
commit2dcfb00c893c3190165f76a9b592fcf25b813809 (patch)
tree05ffa7af206f5d78d555d8822fef06159a4b1df8
parentsys-apps/grep: Bump to version 2.22 (diff)
downloadgentoo-2dcfb00c893c3190165f76a9b592fcf25b813809.tar.gz
gentoo-2dcfb00c893c3190165f76a9b592fcf25b813809.tar.bz2
gentoo-2dcfb00c893c3190165f76a9b592fcf25b813809.zip
net-libs/http-parser: version bump
This also fixes the upstream build system instead of working around it. It also fixes missing CFLAGS in linking commands.
-rw-r--r--net-libs/http-parser/Manifest1
-rw-r--r--net-libs/http-parser/files/0001-makefile-fix-DESTDIR-usage.patch64
-rw-r--r--net-libs/http-parser/files/0002-makefile-quote-variables.patch50
-rw-r--r--net-libs/http-parser/files/0003-makefile-fix-SONAME-symlink-it-should-not-be-a-full-.patch35
-rw-r--r--net-libs/http-parser/files/0004-makefile-add-CFLAGS-to-linking-command.patch31
-rw-r--r--net-libs/http-parser/files/0005-makefile-fix-install-rule-dependency.patch33
-rw-r--r--net-libs/http-parser/http-parser-2.6.0.ebuild45
7 files changed, 259 insertions, 0 deletions
diff --git a/net-libs/http-parser/Manifest b/net-libs/http-parser/Manifest
index 2d8af53de859..10f268ef3121 100644
--- a/net-libs/http-parser/Manifest
+++ b/net-libs/http-parser/Manifest
@@ -2,3 +2,4 @@ DIST http-parser-2.3.tar.gz 42538 SHA256 3bfe6b4ab7656c86e48b4a43a7a08aee7fd72c1
DIST http-parser-2.4.1.tar.gz 44724 SHA256 4a2597c37b874ce46b30764960d158d18cae2b4cd46458ce3cad98aa106427c9 SHA512 f56b84f0af57cefa46daa10ac2e7b3015c185fa4c55615efa33f9131871a980b5c06ffad1699302ebe847c9325b41403520e0ef4d34bf5f6c48c6edabf1f4cb8 WHIRLPOOL 1873e97df046b10ed7a7da9ad3ba43055634af230b0b4391a8a814bb00455f8864ead809ba2555715e63b9a74202287b2a3c68ced884edf152e794bf70a0cfeb
DIST http-parser-2.4.2.tar.gz 44814 SHA256 d93d6cd4d587355bc714d6a79f4e5676d7dd2ccd2fafb21606c87268ea440cbf SHA512 fa2ac6a27807252a8e2ca61e307b92fa7004424dbea69d9ffbd2297f47e0c2af740033126aeb6b11ea172e03c2fbf957c0ab0387836647920c3a9304d07f68ab WHIRLPOOL cbf45915f622ad07ee095f3a592c565847f427575ab0a062ce7d8dbfe3b8b92d4ec97787c3dec4710b7dec4f5b4cde49ece80063b29399c2f44acc14816c08ff
DIST http-parser-2.5.0.tar.gz 46070 SHA256 e3b4ba58f4e6ee5fbec781df020e5cb74c3a799a07f059e1e125127a0b801481 SHA512 da94b21f313d09f0557e61574e1187d06ef3bc4e8115c6f8120eac8d26ba6db51469ee5ddb6da5a0c05f49279838e5028afff6a15790708cdca147b3bc66e18f WHIRLPOOL 933ab2f8065fd2e7734d61284a042579edea40f0a0dea6b339a1ba07d9e50f2cd5e14f081d9889b728024171f2faeff7aab97b43c531fbd6badd882026261254
+DIST http-parser-2.6.0.tar.gz 47598 SHA256 a11c5ccb9808496f3de66d54ea1f89271919923307e31c75de2a3a77a6754c97 SHA512 e7bd34ed8270192e55f5e7495972afc9fe2adc36d85df4f09be4958bbf7f93872a056bb8db268cdc1068a9eb79ad9aefc2a8502bda92bac8a2490e08435f09e1 WHIRLPOOL 2bef86db5140c04a2d7e2191e5669c905368a1180c357c512a66a65907b23b317bd2466aa9b1a47c1287e9def7aecdab48c151343b1700d99514b47915df7bf5
diff --git a/net-libs/http-parser/files/0001-makefile-fix-DESTDIR-usage.patch b/net-libs/http-parser/files/0001-makefile-fix-DESTDIR-usage.patch
new file mode 100644
index 000000000000..a819cf441d32
--- /dev/null
+++ b/net-libs/http-parser/files/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/net-libs/http-parser/files/0002-makefile-quote-variables.patch b/net-libs/http-parser/files/0002-makefile-quote-variables.patch
new file mode 100644
index 000000000000..096ac6b6bd69
--- /dev/null
+++ b/net-libs/http-parser/files/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/net-libs/http-parser/files/0003-makefile-fix-SONAME-symlink-it-should-not-be-a-full-.patch b/net-libs/http-parser/files/0003-makefile-fix-SONAME-symlink-it-should-not-be-a-full-.patch
new file mode 100644
index 000000000000..cafe68d220c9
--- /dev/null
+++ b/net-libs/http-parser/files/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/net-libs/http-parser/files/0004-makefile-add-CFLAGS-to-linking-command.patch b/net-libs/http-parser/files/0004-makefile-add-CFLAGS-to-linking-command.patch
new file mode 100644
index 000000000000..e21cd715499b
--- /dev/null
+++ b/net-libs/http-parser/files/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/net-libs/http-parser/files/0005-makefile-fix-install-rule-dependency.patch b/net-libs/http-parser/files/0005-makefile-fix-install-rule-dependency.patch
new file mode 100644
index 000000000000..da966373063f
--- /dev/null
+++ b/net-libs/http-parser/files/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/net-libs/http-parser/http-parser-2.6.0.ebuild b/net-libs/http-parser/http-parser-2.6.0.ebuild
new file mode 100644
index 000000000000..186c88065131
--- /dev/null
+++ b/net-libs/http-parser/http-parser-2.6.0.ebuild
@@ -0,0 +1,45 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit eutils toolchain-funcs multilib multilib-minimal
+
+DESCRIPTION="Http request/response parser for C"
+HOMEPAGE="https://github.com/joyent/http-parser"
+SRC_URI="https://github.com/joyent/http-parser/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0/${PV}"
+KEYWORDS="~amd64 ~arm ~ppc ~x86"
+IUSE="static-libs"
+
+# https://github.com/nodejs/http-parser/pull/272
+PATCHES=(
+ "${FILESDIR}"/0001-makefile-fix-DESTDIR-usage.patch
+ "${FILESDIR}"/0002-makefile-quote-variables.patch
+ "${FILESDIR}"/0003-makefile-fix-SONAME-symlink-it-should-not-be-a-full-.patch
+ "${FILESDIR}"/0004-makefile-add-CFLAGS-to-linking-command.patch
+ "${FILESDIR}"/0005-makefile-fix-install-rule-dependency.patch
+)
+
+src_prepare() {
+ tc-export CC AR
+ epatch ${PATCHES[@]}
+ multilib_copy_sources
+}
+
+multilib_src_compile() {
+ emake CFLAGS_FAST="${CFLAGS}" library
+ use static-libs && emake CFLAGS_FAST="${CFLAGS}" package
+}
+
+multilib_src_test() {
+ emake CFLAGS_DEBUG="${CFLAGS}" test
+}
+
+multilib_src_install() {
+ emake DESTDIR="${D}" PREFIX="/usr" LIBDIR="/usr/$(get_libdir)" install
+ use static-libs && dolib.a libhttp_parser.a
+}