Skip to content
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

README.md: additional noncore platforms #17

Closed
wants to merge 1 commit into from

Conversation

smikes
Copy link

@smikes smikes commented Dec 2, 2014

A problem that prevents node releases getting packaged for debian and ubuntu is the need to compile on all required debian platforms. Currently new versions of node are breaking on MIPS and GNU hurd, mainly due to minor libuv problems (eg missing headers, undefined constants).

Aiming to at least test those platforms would help keep fresh io.js versions coming to debian/ubuntu users through "official" channels.

A problem that prevents `node` releases getting packaged for debian and ubuntu is the need to compile on all required debian platforms.  Currently new versions of `node` are breaking on MIPS and GNU hurd, mainly due to minor libuv problems (eg missing headers, undefined constants).

Aiming to at least test those platforms would help keep fresh `io.js` versions coming to debian/ubuntu users through "official" channels.
@mikeal
Copy link
Contributor

mikeal commented Dec 2, 2014

Does this require new hardware resources or is it just a cross-compile?

@rvagg
Copy link
Member

rvagg commented Dec 3, 2014

tbh I have little interest in assisting official Debian or Ubuntu packages for node/io.js because the packaging rules don't make any sense for how Node should be distributed--i.e. breaking up every dependency into a separate package, including npm's many dependencies. This is why we're pushing our own releases via https://deb.nodesource.com/ so we can do it in a Node-friendly way.

However, the fact that there are compile problems on MIPS and hurd is news to me and I think the libuv team would be interested in hearing this and working how how we can get some hardware to test this. cross-compile isn't very helpful because you still need to execute tests so we need some kind of hardware to run these.

/cc @saghul

@smikes
Copy link
Author

smikes commented Dec 3, 2014

Here are my notes from when I looked into this (last week) --

https://buildd.debian.org/status/package.php?p=nodejs

  1. on mips, byte order is swapped, causing some TLS tests to fail (? this was my guess, did not verify as I don't have MIPS hardware)
  2. on gnu-hurd-i386, IOV_MAX is not defined, causing the version of libuv bundled with node 0.10.29 to fail to compile. This is still a problem with node through 0.10.33, unfortunately.

I made contact with Jérémy Lal (@kapouer) who is involved in javascript on debian ; his comment was

You can try to make patches fixing those issues.
These fixes will certainly get accepted in testing (i suppose you know
it's freeze time,.. )

Since debian is in freeze, there is a window of time to make this happen for the following major release (not the next one, but one after).

@rvagg
Copy link
Member

rvagg commented Dec 3, 2014

for the following major release

So that's in 3 to 5 years for Debian right?

:trollface:

@mikeal
Copy link
Contributor

mikeal commented Dec 3, 2014

How do we even go about getting this hardware donated to the build farm?

@smikes
Copy link
Author

smikes commented Dec 3, 2014

So that's in 3 to 5 years for Debian right?

Probably. I am not thrilled with the un-iojs-like way that a million npm modules get split up in debian/ubuntu, but it sure would be nice to be able to

apt-get install iojs
... things just work

The current nodesource tools are a big help, and I point people to them (see https://github.com/npm/npm/wiki/Troubleshooting#updating-node-on-linux)

curl -sL https://deb.nodesource.com/setup | sudo bash - is much easier than telling people to install software-properties-common so they can add a ppa to do a thing... when all they want is to run some javascript in a docker image. But having at least the base (iojs binary and npm) in the official deb tree would be a big, big help.

@rvagg
Copy link
Member

rvagg commented Dec 3, 2014

un-iojs-like

I think we're allowed to say "un-ionian" now!

@smikes
Copy link
Author

smikes commented Dec 3, 2014

HURD can run on x86 hardware. Apparently MIPS can be run in QEMU ( http://www.aurel32.net/info/debian_mips_qemu.php ) on x86, but I'm not sure if that is considered valid enough.

Getting attention on

the fact that there are compile problems on MIPS and hurd

and that this fact is what's blocking 0.10.33 on deb/ubuntu is enough for me, honestly.

@mikeal
Copy link
Contributor

mikeal commented Dec 3, 2014

maybe someone should fork debian not on the grounds that systemd is an affront to God but that developers should be able to run releases of software in the year they are actually released.

@kapouer
Copy link

kapouer commented Dec 3, 2014

@rvagg https://wiki.debian.org/DebianReleases#Release_statistics you're just being accurate.
@smikes indeed, all patches fixing builds, security issues, or important bugs will be accepted sooner or later in jessie (the coming stable).
@mikeal there's a misconception here:
debian/stable is for production servers that are supposed to only get security updates - and nodejs won't be supported by security team anyway - lack of human resources.
debian/testing is for desktop/production/development for using latest and greatest software - it is perfectly usable as a nodejs dev platform.

@mikeal
Copy link
Contributor

mikeal commented Dec 3, 2014

and nodejs won't be supported by security team anyway

Except for Paypal, Walmart, Netflix, Yahoo, Bloomberg, and the Federal Reserve. But who's counting :)

@kapouer
Copy link

kapouer commented Dec 3, 2014

@mikeal as far as i understand v8/nodejs won't be officially supported by debian security team.
That doesn't mean security patches won't happen, though.

@mikeal
Copy link
Contributor

mikeal commented Dec 3, 2014

oh, by debian security team. I though it was more of a general statement. My bad :)

@smikes
Copy link
Author

smikes commented Dec 3, 2014

@kapouer is a javascript aficionado like the rest of us, see eg https://github.com/kapouer/node-webkitgtk

@SomeoneWeird
Copy link
Member

@smikes Not sure what relevance that has to this conversation, that was never disputed.

@rvagg rvagg mentioned this pull request Dec 3, 2014
8 tasks
@saghul
Copy link
Member

saghul commented Dec 3, 2014

However, the fact that there are compile problems on MIPS and hurd is news to me and I think the libuv team would be interested in hearing this and working how how we can get some hardware to test this. cross-compile isn't very helpful because you still need to execute tests so we need some kind of hardware to run these.

FWIW, we have been in touch with the libuv Debian maintainer, and already fixed some issues with aarch64, IIRC. I'm not aware of any MIPS issues, but if there are I'm sure they'll get in touch, just as they've already done in the past.

@saghul
Copy link
Member

saghul commented Dec 3, 2014

libuv is already packaged for Debian, officially: https://packages.debian.org/jessie/libuv0.10 and I do see MIPS packages there. About GNU/Hurd: patches are welcome :-)

@kapouer
Copy link

kapouer commented Dec 3, 2014

@saghul i'm also in contact with libuv maintainer, the plan was to make nodejs debian package depend on it instead of using its private copy. That'll happen with version 0.12 / uv 1.0

@saghul
Copy link
Member

saghul commented Dec 3, 2014

@kapouer unfortunately the Jessie boat has sailed, so Debian stable will not get libuv 1.0.

@kapouer
Copy link

kapouer commented Dec 3, 2014

@saghul yep but as i said above, it's not that much of a problem. As soon as jessie is released, debian testing will roll latest versions of software again.

@bnoordhuis
Copy link
Member

Currently new versions of node are breaking on MIPS and GNU hurd, mainly due to minor libuv problems (eg missing headers, undefined constants).

Can you file an issue at libuv/libuv for the MIPS build errors? It probably requires just a few trivial fixes; and if not, I'll be happy to review patches.

I'm -1 on committing to Hurd support. We don't support MINIX or Plan9 either. Hell, we don't really support AIX either, except on a self-serve basis, and that platform actually has a sizable user base (and people running node on it.)

EDIT: To be clear, it's not that I'm against simple build fixes, it's that I don't want to make a promise of support.

@smikes
Copy link
Author

smikes commented Dec 3, 2014

@bnoordhuis Sorry, I was incorrect about where the MIPS problem is. It's not in libuv but rather in node; the failing test is release test-buffer, see

assert.js:92
  throw new assert.AssertionError({
        ^
AssertionError: [0,252,0,98,0,101,0,114] deepEqual [252,0,98,0,101,0,114,0]
    at /«PKGBUILDDIR»/test/simple/test-buffer.js:339:10
    at Array.forEach (native)
    at Object.<anonymous> (/«PKGBUILDDIR»/test/simple/test-buffer.js:336:42)
    at Module._compile (module.js:456:26)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Function.Module.runMain (module.js:497:10)
    at startup (node.js:119:16)
    at node.js:906:3
Command: out/Release/node /«PKGBUILDDIR»/test/simple/test-buffer.js

(ref : https://buildd.debian.org/status/fetch.php?pkg=nodejs&arch=mips&ver=0.10.29~dfsg-1&stamp=1402725731 )

@bnoordhuis
Copy link
Member

@smikes If that also happens with io.js/v0.12, can you file an issue there? We're not doing anything with the v0.10 branch at the moment.

(Aside, I think there were one or two endianness issues that have been fixed in the v0.11/v0.12 development cycle but I can't find the commits right now.)

@smikes
Copy link
Author

smikes commented Dec 3, 2014

@bnoordhuis Will do. I don't know anything about the debian process (yet) but once there is an io.js package to try installing, I will bring feedback about build problems on debian platforms to https://github.com/iojs/io.js

@kenperkins
Copy link

What's the status of this PR? The last explicit comment was @bnoordhuis with a 👎 on Hurd.

@bnoordhuis
Copy link
Member

I think we can close this. Bug reports or pull requests for the MIPS build issues never materialized and no one's going to commit to Hurd support.

@bnoordhuis bnoordhuis closed this Feb 21, 2015
@smikes
Copy link
Author

smikes commented Feb 21, 2015

Yes, if I get back to the debian thing I will circle back and create a new issue/PR.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

8 participants