-
Notifications
You must be signed in to change notification settings - Fork 29.6k
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
Release proposal: v1.7.0 #1396
Comments
This only has half of the commits @shigeki made as part of the openssl 1.0.2 bump. I don't think that is a problem, but the full patchset would be more tested (or no patchset). |
Yes, I agree. It is better that v1.6.5 is the last final version which supports openssl-1.0.1. Go 1.0.2 after that. |
@shigeki that puts us in a bad seat as well since we'd have to revert your commits or explore creating more branches for managing releases (please correct me if I'm wrong here). |
@jbergstroem No. My commits included here to be in 1.6.5 are kinds of refactoring for just preparing upgrade, in which there is nothing to do with 1.0.2. If something trouble would happen in specific 1.0.2 in future, these commits here are not affected. |
I see what you mean now. Ok, just disregard my comment. |
👍 of note: arm fixes, npm, reduced process.binding calls |
Would be nice if we could get #1341 in, so as to remove that "static libs don't build" bit. :) |
Now 1.7.0 - #1395 |
In that case, we might want to get some of these in: https://github.com/iojs/io.js/labels/semver-minor |
can we talk about openssl 1.0.2 a bit more please? is there enough uncertainty about its stability to hold off for another release or two or is it relatively straight forward and therefore could just be part of 1.7.0? |
The build was refactored quite drastically so it's possible people with unusual configurations may see build breakage. I have no reason to believe that run-time stability is any worse though. |
Isn't lots of that already in 1.6.4? |
Yes, but there is still more to come. I don't expect major issues though. |
I would like to wait upgrading 1.0.2a to the next version because #1377 here has a possibility to break some compatibilities of openssl configuration especially on android or mips/mipsel that was listed in |
@Gioyik Could you please make a build and run tests in android for this release ? |
@shigeki sure, I am going to make a build early tomorrow. So, should I make a build from v1.x branch? |
Runs fine for me 👍 |
@Gioyik could you also mention if you're testing this on device or crossdev? thanks. |
going to punt on this till tomorrow |
I compiled it and is not problems during compilation. When I tested on Android devices I got the following error:
@jbergstroem I compiled it using Android NDK for cross compiling and the final binary is tested on a real Android phone. |
Forget about the error, it's the phone where I am testing on. I tested in other and works as expected. |
I made tests on my Nexus4 (armv7l, Android5.1) and found that there are several issues on Android. I think it better to left them as known issues on Android and fix them later version. diff --git a/configure b/configure
index 16d71a8..099bd2a 100755
--- a/configure
+++ b/configure
@@ -514,6 +514,10 @@ def configure_mips(o):
def configure_node(o):
if options.dest_os == 'android':
o['variables']['OS'] = 'android'
+ # Probably they are needed above Android 5.x
+ o['cflags'] = ['-pie', '-fPIE']
+ o['ldflags'] = ['-pie', '-fPIE']
+
o['variables']['node_prefix'] = os.path.expanduser(options.prefix or '')
o['variables']['node_install_npm'] = b(not options.without_npm)
o['default_configuration'] = 'Debug' if options.debug else 'Release'
diff --git a/lib/child_process.js b/lib/child_process.js
index 0fdbcf4..6716455 100644
--- a/lib/child_process.js
+++ b/lib/child_process.js
@@ -568,6 +568,9 @@ function normalizeExecArgs(command /*, options, callback */) {
// options object.
options = util._extend({}, options);
options.windowsVerbatimArguments = true;
+ } else if (process.platform === 'android') {
+ file = '/system/bin/sh';
+ args = ['-c', command];
} else {
file = '/bin/sh';
args = ['-c', command];
diff --git a/lib/dns.js b/lib/dns.js
index d39eec8..90cf493 100644
--- a/lib/dns.js
+++ b/lib/dns.js
@@ -129,7 +129,7 @@ exports.lookup = function lookup(hostname, options, callback) {
// FIXME(indutny): V4MAPPED on FreeBSD results in EAI_BADFLAGS, because
// the libc does not support it
- if (process.platform === 'freebsd' && family !== 6)
+ if ((process.platform === 'freebsd' || process.platform === 'android') && family !== 6)
hints &= ~exports.V4MAPPED;
} else {
family = options >>> 0; |
2015-04-14, Version 1.7.0, @rvaggNotable changes
|
https://jenkins-iojs.nodesource.com/job/iojs+any-pr+multi/502/ the usual Jenkins-specific TIMEOUTs on Windows slaves, the rest looks pretty good. So happy about the state of ARM in this one, great work everyone! |
v1.7.0 tagged, building @ https://jenkins-iojs.nodesource.com/job/iojs+release/54/ |
2015-04-14, Version 1.7.1, @rvaggNotable changes
Commits
|
tagged v1.7.1 building @ https://jenkins-iojs.nodesource.com/job/iojs+release/55/ and looking better. I'm deleting 1.7.0 from staging, it'll be unreleased. |
@rvagg Shouldn't there be a "Working on v1.7.2" commit ? |
thanks @targos, rectified |
v1.7.1 has landed, will promote armv6 tomorrow |
@shigeki did you create a PR with changes in that diff patch? Added to it, which test you run to detect issues on Android build? |
@Gioyik Yes, I will work it tomorrow. The problem is that there are no python for Android build in PIE to run tests. I made an test shell script for an alternative but it does not have a timeout feature so that it is very hard to finish all tests. |
@shigeki what about if you use the python inside Android NDK? when it uncompress the NDK in |
FYI I found a problem with a couple of raspberry pis in the cluster, the one that prepared the 1.7.1 binary was naming it "armv7l" when it should have been "armv6l" so I've started a build again to get the right binary for release. There was also a problem compressing the binary with |
Are you using a swap? If not, that should probably fix that issue. |
yeah, there's a 100M swapfile atm, @jbergstroem is telling me that -9 is requiring ~750M for our files so that's not quite enough I'm torn between increasing swap or adjusting the compression level .. input welcome |
If compression time is no concern, i'd just increase the swap file to like 1GB. As I see it, it totally makes sense to optimize |
Since newer versions of xz is supposed to thread over multiple cores I fear memory consumption might go up more. I think @silverwind is on point though;
A suggested patch that would expose control would look like this: diff --git Makefile Makefile
index 141cee2..28fd263 100644
--- Makefile
+++ Makefile
@@ -223,6 +223,7 @@ TARBALL=$(TARNAME).tar
BINARYNAME=$(TARNAME)-$(PLATFORM)-$(ARCH)
BINARYTAR=$(BINARYNAME).tar
XZ=$(shell which xz > /dev/null 2>&1; echo $$?)
+XZ_COMPRESSION ?= 9
PKG=out/$(TARNAME).pkg
PACKAGEMAKER ?= /Developer/Applications/Utilities/PackageMaker.app/Contents/MacOS/PackageMaker
@@ -296,7 +297,7 @@ $(TARBALL): release-only $(NODE_EXE) doc
rm -rf $(TARNAME)
gzip -c -f -9 $(TARNAME).tar > $(TARNAME).tar.gz
ifeq ($(XZ), 0)
- xz -c -f -9 $(TARNAME).tar > $(TARNAME).tar.xz
+ xz -c -f -$(XZ_COMPRESSION) $(TARNAME).tar > $(TARNAME).tar.xz
endif
rm $(TARNAME).tar
@@ -314,7 +315,7 @@ $(BINARYTAR): release-only
rm -rf $(BINARYNAME)
gzip -c -f -9 $(BINARYNAME).tar > $(BINARYNAME).tar.gz
ifeq ($(XZ), 0)
- xz -c -f -9 $(BINARYNAME).tar > $(BINARYNAME).tar.xz
+ xz -c -f -$(XZ_COMPRESSION) $(BINARYNAME).tar > $(BINARYNAME).tar.xz
endif
rm $(BINARYNAME).tar ..and invoked: $ XZ_COMPRESSION=6 make tar |
that |
@Gioyik I opened a new issue #143 for test failures on Android. Let's move to it. The python in the $ file arm-android-8/toolchain/bin/python2.7
arm-android-8/toolchain/bin/python2.7: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.8, not stripped PIE stands for "Position-Independent Executable" which is introduced in Android5.x for security protection see http://source.android.com/devices/tech/security/enhancements/enhancements50.html . It is
I made tests by disabling PIE by changing linker binary and test results are shown in #1430 . |
PR-URL: nodejs#50 Related: nodejs/node#1396 Signed-off-by: Hans Kristian Flaatten <[email protected]>
Let's get some commits off our books, this will be a fairly minor release unless something makes it in within the next couple of days
d2b62a4973
] - benchmark: don't check wrk in non-http benchmark (Jackson Tian) #1368fd90b33b94
] - build: validate options passed to configure (Johan Bergström) #133504b02f5e34
] - build: Remove deprecated flags (Johan Bergström) #140739d395c966
] - build: minor changes to fix rpm build (Dan Varga) #1408f9a2d31b32
] - build: Simplify fetching release version (Johan Bergström) #1405cd38a4af8f
] - build: support building io.js as a static library (Marat Abdullin) #1341d726a177ed
] - build: Remove building against a shared V8 (Johan Bergström) #1331a5244d3a39
] - (SEMVER-MINOR) deps: backport 1f8555 from v8's upstream (Fedor Indutny) #139509d4a286ea
] - deps: make node-gyp work with io.js (cjihrig) #990cc8376ae67
] - deps: upgrade npm to 2.7.6 (Forrest L Norvell) #13905b0e5755a0
] - deps: generate opensslconf.h for architectures (Shigeki Ohtsu) #13777d14aa0222
] - deps: add Makefile to generate opensslconf.h (Shigeki Ohtsu) #137729a3301461
] - deps: make opensslconf.h include each target arch (Shigeki Ohtsu) #137793a1a07ef4
] - doc: remove keepAlive options from http.request (Jeremiah Senkpiel) #13923ad6ea7c38
] - doc: remove redundant parameter inend
listener. (Alex Yursha) #13872bc3532461
] - doc: document Console class (Jackson Tian) #138869bc1382b7
] - doc: properly indent http.Agent keepAlive options (Jeremiah Senkpiel) #1384b464d467a2
] - doc: update curl usage in COLLABORATOR_GUIDE (Roman Reiss) #138261c0e7b70f
] - doc: update CONTRIBUTING links. (Andrew Crites) #13808d467e521c
] - doc: add TC meeting 2015-03-18 minutes (Rod Vagg) #13708ba9c4a7c2
] - doc: add TC meeting 2015-04-01 minutes (Rod Vagg) #137148facf93ad
] - doc: update AUTHORS list (Rod Vagg) #13721219e7466c
] - lib: reduce process.binding() calls (Brendan Ashworth) #1367264a8f3a1b
] - linux: fix epoll_pwait() fallback on arm64 (Ben Noordhuis) #1365f0bf6bb024
] - readline: fix calling constructor without new (Alex Kocharin) #1385ff74931107
] - smalloc: do not track external memory (Fedor Indutny) #1375a07c69113a
] - (SEMVER-MINOR) src: use global SealHandleScope (Fedor Indutny) #1395a4d88475fa
] - src: disable fast math only on armv6 (Ben Noordhuis) #1398e306c78f83
] - src: disable fast math on arm (Ben Noordhuis) #13987049d7b474
] - test: increase timeouts on ARM (Roman Reiss) #13663066f2c0c3
] - test: double test timeout on arm machines (Ben Noordhuis) #135766db9241cb
] - tools: Remove unused files (Johan Bergström) #14068bc8bd4bc2
] - tools: add to install deps/openssl/config/archs (Shigeki Ohtsu) #1377907aaf325a
] - win,node-gyp: optionally allow node.exe/iojs.exe to be renamed (Bert Belder) #1266372bf83818
] - zlib: make constants keep readonly (Jackson Tian) #1361The text was updated successfully, but these errors were encountered: