devstack fails in quantal - /usr/bin/env node - no such file or directory

Bug #1070083 reported by Robert Collins
38
This bug affects 7 people
Affects Status Importance Assigned to Milestone
OpenStack Dashboard (Horizon)
Won't Fix
Medium
Gabriel Hurley
devstack
Fix Released
Undecided
Unassigned

Bug Description

In Quantal, the nodejs package no longer installs a script called 'node', instead it only installs nodejs.
lessc calls node:
#!/usr/bin/env node

And devstack installs nodejs, not nodejs-legacy (which contains the old symlink from node -> nodejs).

This could be argued to be a devstack issue, but as the legacy package will go away, we probably need to deal with this platform specific variation in horizon itself.

Revision history for this message
Tihomir Trifonov (ttrifonov) wrote :

Devstack installs what's in tools/pip-requres, so this needs to be addressed in the requirements.

Changed in horizon:
status: New → Confirmed
Revision history for this message
Ivan Kolodyazhny (e0ne) wrote :

Tihomir,
There are a list of dependencies which are installed from deb/rpm packages from the distros repo. E.g.: $desstack_dir$/files/apts/horizon

Revision history for this message
Ivan Kolodyazhny (e0ne) wrote :

I think we need to change "#!/usr/bin/env node" to "#!/usr/bin/env nodejs" invoke in Grizzly release to support newer version of NodeJS package.

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to horizon (master)

Fix proposed to branch: master
Review: https://review.openstack.org/15553

Changed in horizon:
assignee: nobody → Ivan Kolodyazhny (e0ne)
status: Confirmed → In Progress
Revision history for this message
Gabriel Hurley (gabriel-hurley) wrote :

Cross-posting this from the review:

Modifying the script to use the quantal-only "nodejs" is unacceptable for 2 reasons:

  1. This breaks things for all versions of node which still *do* install a script called "node", including 12.04 which is the LTS.

  2. We're bundling the LESS script *unmodified* from upstream. I'm not open to changing that. The upstream still uses the "node" script name.

Honestly I think this is a problem between the Ubuntu package maintainer for Node and the developers of LESS.

That said, other solution ideas here are welcome.

Changed in horizon:
importance: Undecided → Medium
milestone: none → grizzly-1
status: In Progress → Triaged
Revision history for this message
Gabriel Hurley (gabriel-hurley) wrote :

One possible alternative (as a fix just for devstack) is to modify devstack to alias the "node" to "nodejs" under Quantal so that both versions work.

Revision history for this message
Ivan Kolodyazhny (e0ne) wrote :

Gabrial, thanks a lot for review and comments. I'm agree with you now, it looks like Ububtu 12.10 package issue

Ivan Kolodyazhny (e0ne)
Changed in horizon:
assignee: Ivan Kolodyazhny (e0ne) → nobody
Revision history for this message
Chris Watkins (watkins) wrote :

I found this http://www.cloudbase.it/howto-solve-devstack-dashboard-node-error/
but, just installing nodejs-legacy braught up the dashboard.
The only reason I mention that is because, if you enable quamtum, it's just broke and it might not be obvious until you find this.
So, what is going to break then if it one just adds nodes-legacy or adds it to $desstack_dir$/files/apts/horizon?

Revision history for this message
Chris Watkins (watkins) wrote :

Oh, I did forget to add though, everywhere else the error has appeared in the past with other packages the consensus
is to make tighten/make more build-dependency to versions of nodejs not renaming its binary.

Revision history for this message
Sean Dague (sdague) wrote :

I agree this should probably be fixed in devstack, as part of the point of devstack is to document installation steps, and clearly this is a new step for quantal.

Patch out there https://review.openstack.org/#/c/16458/ to fix it.

Changed in horizon:
milestone: grizzly-1 → grizzly-2
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to devstack (master)

Reviewed: https://review.openstack.org/16458
Committed: http://github.com/openstack-dev/devstack/commit/818a048afc2ae0935f487dec7107237c7fba2f28
Submitter: Jenkins
Branch: master

commit 818a048afc2ae0935f487dec7107237c7fba2f28
Author: Sean Dague <email address hidden>
Date: Mon Nov 19 15:05:31 2012 -0500

    install nodejs-legacy on quantal

    quantal changed the name of the node binary on disk, which breaks
    horizon on 12.10 installs. Provide a work around for installing
    the legacy package on that environment.

    Fixes bug #1070083

    Change-Id: If8ef211d12451ef4e1df0d2398cf18a3b2c46da3

Changed in devstack:
status: New → Fix Released
Revision history for this message
Gabriel Hurley (gabriel-hurley) wrote :

This is fixed in devstack, and shortly we'll be removing the LESS bin file from the repo since other distros have caught up and have node/npm available.

Changed in horizon:
assignee: nobody → Gabriel Hurley (gabriel-hurley)
milestone: grizzly-2 → none
status: Triaged → Won't Fix
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Duplicates of this bug

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.