-
Notifications
You must be signed in to change notification settings - Fork 32
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
net-libs/iojs-1.7.1 version bump #95
Changes from 1 commit
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,48 @@ | ||
diff --git configure configure | ||
index 67440a2..2a3b05f 100755 | ||
--- configure | ||
+++ configure | ||
@@ -326,12 +326,13 @@ def b(value): | ||
|
||
|
||
def pkg_config(pkg): | ||
- cmd = os.popen('pkg-config --libs %s' % pkg, 'r') | ||
+ pkg_config = os.environ.get('PKG_CONFIG', 'pkg-config') | ||
+ cmd = os.popen(pkg_config + ' --libs %s' % pkg, 'r') | ||
libs = cmd.readline().strip() | ||
ret = cmd.close() | ||
if (ret): return None | ||
|
||
- cmd = os.popen('pkg-config --cflags %s' % pkg, 'r') | ||
+ cmd = os.popen(pkg_config + ' --cflags %s' % pkg, 'r') | ||
cflags = cmd.readline().strip() | ||
ret = cmd.close() | ||
if (ret): return None | ||
@@ -603,14 +604,21 @@ def configure_node(o): | ||
|
||
def configure_libz(o): | ||
o['variables']['node_shared_zlib'] = b(options.shared_zlib) | ||
+ if b(options.shared_zlib) == 'true': | ||
+ (libs, cflags) = pkg_config('zlib') or ('-lz', '') | ||
|
||
- if b(options.shared_zlib) == True: | ||
- o['libraries'] += ['-l%s' % options.shared_zlib_libname] | ||
- if options.shared_zlib_libpath: | ||
- o['libraries'] += ['-L%s' % options.shared_zlib_libpath] | ||
- if options.shared_zlib_includes: | ||
- o['include_dirs'] += [options.shared_zlib_includes] | ||
+ if options.shared_zlib_libpath: | ||
+ o['libraries'] += ['-L%s' % options.shared_zlib_libpath] | ||
|
||
+ if options.shared_zlib_libname: | ||
+ o['libraries'] += ['-l%s' % options.shared_zlib_libname] | ||
+ else: | ||
+ o['libraries'] += libs.split() | ||
+ | ||
+ if options.shared_zlib_includes: | ||
+ o['include_dirs'] += [options.shared_zlib_includes] | ||
+ else: | ||
+ o['cflags'] += cflags.split() | ||
|
||
def configure_http_parser(o): | ||
o['variables']['node_shared_http_parser'] = b(options.shared_http_parser) |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,127 @@ | ||
# Copyright 1999-2015 Gentoo Foundation | ||
# Distributed under the terms of the GNU General Public License v2 | ||
# $Header: $ | ||
|
||
EAPI=5 | ||
|
||
PYTHON_COMPAT=( python2_7 ) | ||
|
||
MY_PV="v${PV}" | ||
MY_P="${PN}-${MY_PV}" | ||
|
||
inherit flag-o-matic pax-utils python-single-r1 toolchain-funcs | ||
|
||
DESCRIPTION="An npm compatible platform originally based on node.js" | ||
HOMEPAGE="http://iojs.org/" | ||
SRC_URI="http://iojs.org/dist/${MY_PV}/${MY_P}.tar.xz" | ||
|
||
LICENSE="Apache-1.1 Apache-2.0 BSD BSD-2 MIT" | ||
SLOT="0" | ||
KEYWORDS="~amd64 ~arm ~x86 ~x64-macos" | ||
IUSE="bundled-libs debug icu +npm snapshot +ssl" | ||
|
||
RDEPEND="icu? ( dev-libs/icu ) | ||
!bundled-libs? ( | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Didn't I just tell you this isn't going to fly? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I gave you feedback you never replied to - as well as suggesting a mitigation path forward on IRC. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Sorry, must've missed it when you changed the code and github ate old comments. |
||
>=net-libs/http-parser-2.3 | ||
>=dev-libs/libuv-1.4.2 | ||
>=dev-libs/openssl-1.0.1m[-bindist] | ||
)" | ||
DEPEND="${RDEPEND} | ||
${PYTHON_DEPS} | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. If scripts use it at runtime, this belongs in RDEPEND. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Correct. Thanks for spotting. |
||
!!net-libs/nodejs" | ||
S="${WORKDIR}/${MY_P}" | ||
|
||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Ok. |
||
pkg_pretend() { | ||
if ! test-flag-CXX -std=c++11 ; then | ||
die "Your compiler doesn't support C++11. Use GCC 4.8, Clang 3.3 or newer." | ||
fi | ||
} | ||
|
||
src_prepare() { | ||
tc-export CC CXX PKG_CONFIG | ||
export V=1 # Verbose build | ||
export BUILDTYPE=Release | ||
|
||
# fix compilation on Darwin | ||
# http://code.google.com/p/gyp/issues/detail?id=260 | ||
sed -i -e "/append('-arch/d" tools/gyp/pylib/gyp/xcode_emulation.py || die | ||
|
||
# make sure we use python2.* while using gyp | ||
sed -i -e "s/python/${EPYTHON}/" deps/npm/node_modules/node-gyp/gyp/gyp || die | ||
sed -i -e "s/|| 'python'/|| '${EPYTHON}'/" deps/npm/node_modules/node-gyp/lib/configure.js || die | ||
|
||
# less verbose install output (stating the same as portage, basically) | ||
sed -i -e "/print/d" tools/install.py || die | ||
|
||
# proper libdir, hat tip @ryanpcmcquen https://github.com/iojs/io.js/issues/504 | ||
local LIBDIR=$(get_libdir) | ||
sed -i -e "s|lib/|${LIBDIR}/|g" tools/install.py || die | ||
sed -i -e "s/'lib'/'${LIBDIR}'/" lib/module.js || die | ||
sed -i -e "s|\"lib\"|\"${LIBDIR}\"|" deps/npm/lib/npm.js || die | ||
|
||
epatch "${FILESDIR}"/${P}-pkgconfig.patch | ||
|
||
# Avoid a test that I've only been able to reproduce from emerge. It doesnt | ||
# seem sandbox related either (invoking it from a sandbox works fine). | ||
# The issue is that no stdin handle is openened when asked for one. | ||
# It doesn't really belong upstream , so it'll just be removed until someone | ||
# with more gentoo-knowledge than me (jbergstroem) figures it out. | ||
rm test/parallel/test-stdout-close-unref.js || die | ||
|
||
# fix upstream bug regarding shared build logic (my own fault, jbergstroem) | ||
sed -i -e "s/== True/== 'true'/g" configure || die | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I guess the above patch only fixes it partially? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Pretty much. See above comment to the proper upstream patch which also makes us drop our pkg-config patch. The only fallout is libuv. |
||
|
||
# debug builds. change install path, remove optimisations and override buildtype | ||
if use debug; then | ||
sed -i -e "s|out/Release/|out/Debug/|g" tools/install.py | ||
BUILDTYPE=Debug | ||
fi | ||
} | ||
|
||
src_configure() { | ||
local myconf=() | ||
local myarch="" | ||
use bundled-libs || myconf+=( --shared-openssl --shared-libuv --shared-http-parser --shared-zlib ) | ||
use npm || myconf+=( --without-npm ) | ||
use icu && myconf+=( --with-intl=system-icu ) | ||
use snapshot && myconf+=( --with-snapshot ) | ||
use ssl || myconf+=( --without-ssl ) | ||
use debug && myconf+=( --debug ) | ||
|
||
case ${ABI} in | ||
x86) myarch="ia32";; | ||
amd64) myarch="x64";; | ||
x32) myarch="x32";; | ||
arm) myarch="arm";; | ||
arm64) myarch="arm64";; | ||
*) die "Unrecognized ARCH ${ARCH}";; | ||
esac | ||
|
||
"${PYTHON}" configure \ | ||
--prefix="${EPREFIX}"/usr \ | ||
--dest-cpu=${myarch} \ | ||
--without-dtrace \ | ||
"${myconf[@]}" || die | ||
} | ||
|
||
src_compile() { | ||
emake -C out mksnapshot | ||
pax-mark m "out/${BUILDTYPE}/mksnapshot" | ||
emake -C out | ||
} | ||
|
||
src_install() { | ||
local LIBDIR="${ED}/usr/$(get_libdir)" | ||
emake install DESTDIR="${ED}" | ||
use npm && dodoc -r "${LIBDIR}"/node_modules/npm/html | ||
rm -rf "${LIBDIR}"/node_modules/npm/{doc,html} || die | ||
find "${LIBDIR}"/node_modules -type f -name "LICENSE" -delete | ||
|
||
pax-mark -m "${ED}"/usr/bin/iojs | ||
} | ||
|
||
src_test() { | ||
out/${BUILDTYPE}/cctest || die | ||
declare -xl TESTTYPE="${BUILDTYPE}" | ||
"${PYTHON}" tools/test.py --mode=${TESTTYPE} -J message parallel sequential || die | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Are you upstreaming this? :)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, and more.