Skip to content

Specifying Node Version will fail if you don't give repo config to mock-build #82

@emettely

Description

@emettely

This might be of use to other people in the README.

Context

  • I was getting a mock-build failure.
gyp ERR! configure error
gyp ERR! stack Error: This is most likely not a problem with node-gyp or the package itself and
gyp ERR! stack is related to network connectivity. In most cases you are behind a proxy or have bad
gyp ERR! stack network settings.
gyp ERR! stack     at Request.<anonymous> (/builddir/build/BUILD/digital-paper-edit-client/node_modules/node-gyp/lib/install.js:197:21)
gyp ERR! stack     at emitOne (events.js:96:13)
gyp ERR! stack     at Request.emit (events.js:188:7)
gyp ERR! stack     at Request.onRequestError (/builddir/build/BUILD/digital-paper-edit-client/node_modules/request/request.js:881:8)
gyp ERR! stack     at emitOne (events.js:96:13)
gyp ERR! stack     at ClientRequest.emit (events.js:188:7)
gyp ERR! stack     at TLSSocket.socketErrorListener (_http_client.js:324:9)
gyp ERR! stack     at emitOne (events.js:96:13)
gyp ERR! stack     at TLSSocket.emit (events.js:188:7)
gyp ERR! stack     at connectErrorNT (net.js:1034:8)
gyp ERR! System Linux 3.10.0-1062.4.1.el7.x86_64
gyp ERR! command "/usr/bin/node" "/builddir/build/BUILD/digital-paper-edit-client/node_modules/node-gyp/bin/node-gyp.js" "rebuild" "--verbose" "--libsass_ext=" "--libsass_cflags=" "--libsass_ldflags=" "--libsass_library="
gyp ERR! cwd /builddir/build/BUILD/digital-paper-edit-client/node_modules/node-sass
gyp ERR! node -v v6.17.1
gyp ERR! node-gyp -v v3.8.0
gyp ERR! not ok
Build failed with error code: 1

npm ERR! Linux 3.10.0-1062.4.1.el7.x86_64
npm ERR! argv "/usr/bin/node" "/usr/bin/npm" "rebuild"
npm ERR! node v6.17.1
npm ERR! npm  v3.10.10
npm ERR! code ELIFECYCLE
npm ERR! node-sass@4.13.0 postinstall: `node scripts/build.js`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the node-sass@4.13.0 postinstall script 'node scripts/build.js'.
npm ERR! Make sure you have the latest version of node.js and npm installed.
npm ERR! If you do, this is most likely a problem with the node-sass package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     node scripts/build.js
npm ERR! You can get information on how to open an issue for this project with:
npm ERR!     npm bugs node-sass
npm ERR! Or if that isn't available, you can get their info via:
npm ERR!     npm owner ls node-sass
npm ERR! There is likely additional logging output above.

npm ERR! Please include the following file with any support request:
npm ERR!     /builddir/build/BUILD/digital-paper-edit-client/npm-debug.log
error: Bad exit status from /var/tmp/rpm-tmp.VsAKeT (%build)
    Bad exit status from /var/tmp/rpm-tmp.VsAKeT (%build)


RPM build errors:
ERROR: Exception(/var/lib/jenkins/workspace/digital-paper-edit-client/SRPMS/digital-paper-edit-client-1.2.3-1.2.37.src.rpm) Config(epel-7-x86_64) 0 minutes 30 seconds
  • I needed Node version +8 for node-sass.
  • passing in the parameter NodeVersion in package.json that was above version 6 resulted in no Node JS dependency being found.
  • This was due to mock-build not picking up the build server's yum configuration, so it used the default Node version 6.

Solution

Have a mock_conf directory in your project to use when you run mock-conf --os 7 -r mock_conf.
Inside the mock_conf, there should be a file called nodesource-el7.repo (or a name of your choice with the extension .repo)

[nodesource]
name=Node.js Packages for Enterprise Linux 7 - $basearch
baseurl=https://rpm.nodesource.com/pub_8.x/el/7/$basearch
failovermethod=priority
enabled=1
gpgcheck=1
gpgkey=https://rpm.nodesource.com/pub/el/NODESOURCE-GPG-SIGNING-KEY-EL

[nodesource-source]
name=Node.js for Enterprise Linux 7 - $basearch - Source
baseurl=https://rpm.nodesource.com/pub_8.x/el/7/SRPMS
failovermethod=priority
enabled=0
gpgkey=https://rpm.nodesource.com/pub/el/NODESOURCE-GPG-SIGNING-KEY-EL
gpgcheck=1

You specify the directory via the -r option:

-r, --repos-dir DIRECTORY    Path to directory containing .repo files to be
                               added to the mock configuration [repos.d]

This allowed mock-conf to find Node version 8 to successfully rebuild node-sass.
bbc/digital-paper-edit-client#84 (comment)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions