Commit 45d3ee22 authored by iv's avatar iv

Add nodejs dependencies.

parent 48f0935e
......@@ -35,7 +35,11 @@ Original: https://gitweb.gentoo.org/repo/gentoo.git/tree/dev-python/virtualenv/v
# nodejs (more recent version than the one in Chromium OS overlay)
## Existing ebuilds
### nodejs
Original: https://gitweb.gentoo.org/repo/gentoo.git/plain/net-libs/nodejs/nodejs-4.4.1.ebuild
### zlib
### libuv
### http-parser
# TODO
- it could be nice to create our own portage overlay instead of adding to Chromium OS's one
DIST libuv-1.8.0.tar.gz 1048022 SHA256 906e1a5c673c95cb261adeacdb7308a65b4a8f7c9c50d85f3021364951fa9cde SHA512 51d5940873a771278c24a697f0da5c9cb7f42c192daa14254cff9309af600a1b343f1f39272f88d4cd0158f7b15bc966fb7e0b67b9590295fe4d9f0a7c6572b4 WHIRLPOOL ce9c49d5ba646458daa60e3f935d2f53483570d6dc34a8515c875115377929271bbc113c4c382054e9b1dbe4c04e04c2381f90d0776d69b064fb72169b6b4060
# Copyright 1999-2016 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id$
EAPI=5
inherit autotools eutils multilib-minimal
DESCRIPTION="Cross-platform asychronous I/O"
HOMEPAGE="https://github.com/libuv/libuv"
SRC_URI="https://github.com/libuv/libuv/archive/v${PV}.tar.gz -> ${P}.tar.gz"
LICENSE="BSD BSD-2 ISC MIT"
SLOT="0/1"
KEYWORDS="amd64 ~arm ~arm64 ~ppc ~ppc64 ~sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
IUSE="static-libs"
RESTRICT="test"
DEPEND="sys-devel/libtool
virtual/pkgconfig[${MULTILIB_USEDEP}]"
src_prepare() {
echo "m4_define([UV_EXTRA_AUTOMAKE_FLAGS], [serial-tests])" \
> m4/libuv-extra-automake-flags.m4 || die
eautoreconf
}
multilib_src_configure() {
ECONF_SOURCE="${S}" econf \
cc_cv_cflags__g=no \
$(use_enable static-libs static)
}
multilib_src_test() {
mkdir "${BUILD_DIR}"/test || die
cp -pPR "${S}"/test/fixtures "${BUILD_DIR}"/test/fixtures || die
default
}
multilib_src_install_all() {
einstalldocs
prune_libtool_files
}
DIST http-parser-2.6.2.tar.gz 48292 SHA256 80fffc3b64ef6968cecdd4b299a96986007dff4bd12ae6c58cbcb506959b90ad SHA512 e19e5377b3eb7f149c428196826fb878564fdfa3716ff6df5a3845c51586aee0582e252e09d1f8ebad1163b3e66632ff0c6e78f6acb2f0da20d7a06e734406c1 WHIRLPOOL 25e5f3ff8bc37d8a06d1929e31683326bb4d3a13f1e899e4f357787973be56fc007dd4ad16567067a9bce587ddc81360f777332a097fbb6dcf22cbad26872962
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
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
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
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
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
# Copyright 1999-2016 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/nodejs/http-parser"
SRC_URI="https://github.com/nodejs/http-parser/archive/v${PV}.tar.gz -> ${P}.tar.gz"
LICENSE="MIT"
SLOT="0/${PV}"
KEYWORDS="amd64 ~arm ~arm64 ~ppc ~ppc64 x86 ~amd64-linux ~x64-macos ~x64-solaris"
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="${EPREFIX}/usr" LIBDIR="${EPREFIX}/usr/$(get_libdir)" install
use static-libs && dolib.a libhttp_parser.a
}
DIST zlib-1.2.8.tar.gz 571091 SHA256 36658cb768a54c1d4dec43c3116c27ed893e88b02ecfcb44f2166f9c0b7f2a0d SHA512 ece209d4c7ec0cb58ede791444dc754e0d10811cbbdebe3df61c0fd9f9f9867c1c3ccd5f1827f847c005e24eef34fb5bf87b5d3f894d75da04f1797538290e4a WHIRLPOOL bcb6243f1a9370eafcea03c227938da1cc106c934193ce59ef4fbdca0167777b95c9baa376feb6d8d369023024a74de5df17c2b6ec5887cdb732ffc95808ef95
# Copyright 1999-2014 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id$
EAPI=4
AUTOTOOLS_AUTO_DEPEND="no"
inherit autotools toolchain-funcs multilib multilib-minimal
DESCRIPTION="Standard (de)compression library"
HOMEPAGE="http://www.zlib.net/"
SRC_URI="http://zlib.net/${P}.tar.gz
http://www.gzip.org/zlib/${P}.tar.gz
http://www.zlib.net/current/beta/${P}.tar.gz"
LICENSE="ZLIB"
SLOT="0"
KEYWORDS="alpha amd64 arm arm64 hppa ia64 m68k ~mips ppc ppc64 s390 sh sparc x86 ~amd64-fbsd ~sparc-fbsd ~x86-fbsd"
IUSE="minizip static-libs"
DEPEND="minizip? ( ${AUTOTOOLS_DEPEND} )"
RDEPEND="abi_x86_32? (
!<=app-emulation/emul-linux-x86-baselibs-20130224
!app-emulation/emul-linux-x86-baselibs[-abi_x86_32(-)]
)
!<dev-libs/libxml2-2.7.7" #309623
src_prepare() {
if use minizip ; then
cd contrib/minizip || die
eautoreconf
fi
multilib_copy_sources
}
echoit() { echo "$@"; "$@"; }
multilib_src_configure() {
case ${CHOST} in
*-mingw*|mingw*)
;;
*) # not an autoconf script, so can't use econf
local uname=$("${EPREFIX}"/usr/share/gnuconfig/config.sub "${CHOST}" | cut -d- -f3) #347167
echoit ./configure \
--shared \
--prefix="${EPREFIX}/usr" \
--libdir="${EPREFIX}/usr/$(get_libdir)" \
${uname:+--uname=${uname}} \
|| die
;;
esac
if use minizip ; then
cd contrib/minizip || die
econf $(use_enable static-libs static)
fi
}
multilib_src_compile() {
case ${CHOST} in
*-mingw*|mingw*)
emake -f win32/Makefile.gcc STRIP=true PREFIX=${CHOST}-
sed \
-e 's|@prefix@|${EPREFIX}/usr|g' \
-e 's|@exec_prefix@|${prefix}|g' \
-e 's|@libdir@|${exec_prefix}/'$(get_libdir)'|g' \
-e 's|@sharedlibdir@|${exec_prefix}/'$(get_libdir)'|g' \
-e 's|@includedir@|${prefix}/include|g' \
-e 's|@VERSION@|'${PV}'|g' \
zlib.pc.in > zlib.pc || die
;;
*)
emake
;;
esac
use minizip && emake -C contrib/minizip
}
sed_macros() {
# clean up namespace a little #383179
# we do it here so we only have to tweak 2 files
sed -i -r 's:\<(O[FN])\>:_Z_\1:g' "$@" || die
}
multilib_src_install() {
case ${CHOST} in
*-mingw*|mingw*)
emake -f win32/Makefile.gcc install \
BINARY_PATH="${ED}/usr/bin" \
LIBRARY_PATH="${ED}/usr/$(get_libdir)" \
INCLUDE_PATH="${ED}/usr/include" \
SHARED_MODE=1
insinto /usr/share/pkgconfig
doins zlib.pc
;;
*)
emake install DESTDIR="${D}" LDCONFIG=:
gen_usr_ldscript -a z
;;
esac
sed_macros "${ED}"/usr/include/*.h
if use minizip ; then
emake -C contrib/minizip install DESTDIR="${D}"
sed_macros "${ED}"/usr/include/minizip/*.h
fi
use static-libs || rm -f "${ED}"/usr/$(get_libdir)/lib{z,minizip}.{a,la} #419645
}
multilib_src_install_all() {
dodoc FAQ README ChangeLog doc/*.txt
use minizip && dodoc contrib/minizip/*.txt
}
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment