Menu

#2253 Add ARM CPU architectures

open
nobody
None
2018-05-02
2018-02-19
Anonymous
No

Originally created by: jhermsmeier

This adds armv7 and armv8 cpu architectures to getHumanArchitecture()
in order to support running node-sass on ARM.

Discussion

  • Anonymous

    Anonymous - 2018-02-19

    Originally posted by: jhermsmeier

    Note, it installs and builds fine on ARM since some time after v4.5.3, it's just that this manual check prevents it from actually running – would it make sense to remove these manual checks entirely, or only display any platform related errors if loading the binding fails?

     
  • Anonymous

    Anonymous - 2018-03-09

    Originally posted by: nschonni

    @jhermsmeier we will likely remove those checks in 5, and just rely on the node-pre-gyp syntax for people wanting different combos [#2111]

     

    Related

    Tickets: #2111

  • Anonymous

    Anonymous - 2018-03-30

    Originally posted by: xzyfer

    I'm curious where you for these values from? The installer gets these values from process.arch. According the documentation it return either arm or arm64.

    https://nodejs.org/api/process.html#process_process_arch

     
  • Anonymous

    Anonymous - 2018-03-30

    Originally posted by: xzyfer

    Looking at the official downloads I see the following arm variations.

    • arm64
    • armv6l
    • armv7l

    It's not clear to me if/how these map to just arm and arm64.

     
  • Anonymous

    Anonymous - 2018-04-18

    Originally posted by: jessaustin

    @xzyfer all three are different architectures. arm64 is sometimes labeled "v8", although I've never seen "armv8" as an architecture as included in this PR. aarch64 is indeed the same thing as arm64. As far as I can tell, "arm" by itself is not a thing. I don't know if there is a reason the armv6l architecture was left out of this PR?

     
  • Anonymous

    Anonymous - 2018-04-18

    Originally posted by: xzyfer

    We use the value of process.arch to determine which binary to download for the user. As stated in my previous comment the only official downloads I see the following arm variations.

    • arm64
    • armv6l
    • armv7l

    We can only support the value returned by process.arch (on each of those downloads). I am unable to confirm those values since I don't have any arm devices to test on.

     
  • Anonymous

    Anonymous - 2018-04-18

    Originally posted by: jessaustin

    What you describe should be good enough:

    $ uname -m -p -i
    aarch64 aarch64 aarch64
    $ node
    > process.arch
    'arm64'
    

    However I only found this PR because of the following error I got while trying to install node-sass:

    $ npm i --save-dev node-sass
    
    > node-sass@4.8.3 install /home/jess/dev/first.site/node_modules/node-sass
    > node scripts/install.js
    
    Downloading binary from https://github.com/sass/node-sass/releases/download/v4.8.3/linux-arm64-59_binding.node
    Cannot download "https://github.com/sass/node-sass/releases/download/v4.8.3/linux-arm64-59_binding.node":
    
    HTTP error 404 Not Found
    

    It's expecting an "arm64" at that location, and it's not finding it. I'm thinking I'll try to just install the Github version, although I haven't figured that out yet.

     
  • Anonymous

    Anonymous - 2018-04-18

    Originally posted by: xzyfer

    The reason it can't be found is that we don't build those binaries yet
    which is what this issue is trying to resolve.

    We don't supply the arm binaries largely because no-one in the team has
    access to arm hardware.

    On Wed., 18 Apr. 2018, 10:48 am jessaustin, notifications@github.com
    wrote:

    What you describe should be good enough:

    $ uname -m -p -i
    aarch64 aarch64 aarch64
    $ node> process.arch'arm64'

    However I only found this PR because of the following error I got while
    trying to install node-sass:

    $ npm i --save-dev node-sass

    node-sass@4.8.3 install /home/jess/dev/first.site/node_modules/node-sass> node scripts/install.js

    Downloading binary from https://github.com/sass/node-sass/releases/download/v4.8.3/linux-arm64-59_binding.node
    Cannot download "https://github.com/sass/node-sass/releases/download/v4.8.3/linux-arm64-59_binding.node":

    HTTP error 404 Not Found

    It's expecting an "arm64" at that location, and it's not finding it. I'm
    thinking I'll try to just install the Github version, although I haven't
    figured that out yet.


    You are receiving this because you were mentioned.
    Reply to this email directly, view it on GitHub
    https://github.com/sass/node-sass/pull/2253#issuecomment-382206254, or mute
    the thread
    https://github.com/notifications/unsubscribe-auth/AAjZWNF4gDPuPsO_wXhxXnYKsOia5-VDks5tpo1YgaJpZM4SLGHD
    .

     
  • Anonymous

    Anonymous - 2018-04-18

    Originally posted by: jessaustin

    What can I do to help? My current chromebook is arm64, although I think I have a armv7l in a box in a closet somewhere.

    Alternatively, the package could just fall back to attempting to build itself on the current installation machine. I guess that would be hard to test though.

     
  • Anonymous

    Anonymous - 2018-04-18

    Originally posted by: xzyfer

    Honestly this issue is a dead lock until either
    - we can have access to arm hardware
    - i.e. arm based CI, or physical hardware
    - we onboard a community member who is available to
    - build the release binaries, and
    - ensure changes don't break arm compatibility

    We are able to support linux, windows, osx, and alpine because we can either automate test and binary generation, or we have team members who take on that responsibility.


    Related, in version 5 we will be relaxing the installation process to automatically fallback to a local compilation if a pre-built binary is not available for download.

    This will at least lower the barrier to running on unsupported architectures. This comes at the cost of guaranteeing future releases will continue to work on those architectures.

     
  • Anonymous

    Anonymous - 2018-04-18

    Originally posted by: jessaustin

    Have the relevant v5 patches hit yet?

     
  • Anonymous

    Anonymous - 2018-04-18

    Originally posted by: xzyfer

    No. You can subscribe to https://github.com/sass/node-sass/pull/2312 for updates.

     
  • Anonymous

    Anonymous - 2018-04-18

    Originally posted by: jessaustin

    OK thanks I will.

     
  • Anonymous

    Anonymous - 2018-05-02

    Originally posted by: jhermsmeier

    Honestly this issue is a dead lock until either

    we can have access to arm hardware
    i.e. arm based CI, or physical hardware

    @xzyfer I'd be happy to donate a RPi, if that'd help

     

Log in to post a comment.

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.