diff options
author | Julian Ospald <hasufell@gentoo.org> | 2015-11-02 17:04:10 +0100 |
---|---|---|
committer | Julian Ospald <hasufell@gentoo.org> | 2015-11-02 17:05:41 +0100 |
commit | 2dcfb00c893c3190165f76a9b592fcf25b813809 (patch) | |
tree | 05ffa7af206f5d78d555d8822fef06159a4b1df8 | |
parent | sys-apps/grep: Bump to version 2.22 (diff) | |
download | gentoo-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.
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 +} |