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

Cant install npm package unit-http, "libunit version mismatch" #1219

Open
mStirner opened this issue Apr 17, 2024 · 5 comments
Open

Cant install npm package unit-http, "libunit version mismatch" #1219

mStirner opened this issue Apr 17, 2024 · 5 comments

Comments

@mStirner
Copy link

mStirner commented Apr 17, 2024

I have freshly installed, unit & unit-dev via apt on my ubuntu 22.04.4.
When i run npm install -g --unsafe-perm unit-http i get a "libunit version mismatch":

npm ERR! code 1
npm ERR! path /home/marc/.nvm/versions/node/v20.11.1/lib/node_modules/unit-http
npm ERR! command failed
npm ERR! command sh -c node-gyp configure build
npm ERR! make: Verzeichnis „/home/marc/.nvm/versions/node/v20.11.1/lib/node_modules/unit-http/build“ wird betreten
npm ERR!   CXX(target) Release/obj.target/unit-http/unit.o
npm ERR! make: Verzeichnis „/home/marc/.nvm/versions/node/v20.11.1/lib/node_modules/unit-http/build“ wird verlassen
npm ERR! gyp info it worked if it ends with ok
npm ERR! gyp info using node-gyp@10.0.1
npm ERR! gyp info using node@20.11.1 | linux | x64
npm ERR! gyp info find Python using Python version 3.10.12 found at "/usr/bin/python3"
npm ERR! gyp info spawn /usr/bin/python3
npm ERR! gyp info spawn args [
npm ERR! gyp info spawn args '/home/marc/.nvm/versions/node/v20.11.1/lib/node_modules/npm/node_modules/node-gyp/gyp/gyp_main.py',
npm ERR! gyp info spawn args 'binding.gyp',
npm ERR! gyp info spawn args '-f',
npm ERR! gyp info spawn args 'make',
npm ERR! gyp info spawn args '-I',
npm ERR! gyp info spawn args '/home/marc/.nvm/versions/node/v20.11.1/lib/node_modules/unit-http/build/config.gypi',
npm ERR! gyp info spawn args '-I',
npm ERR! gyp info spawn args '/home/marc/.nvm/versions/node/v20.11.1/lib/node_modules/npm/node_modules/node-gyp/addon.gypi',
npm ERR! gyp info spawn args '-I',
npm ERR! gyp info spawn args '/home/marc/.cache/node-gyp/20.11.1/include/node/common.gypi',
npm ERR! gyp info spawn args '-Dlibrary=shared_library',
npm ERR! gyp info spawn args '-Dvisibility=default',
npm ERR! gyp info spawn args '-Dnode_root_dir=/home/marc/.cache/node-gyp/20.11.1',
npm ERR! gyp info spawn args '-Dnode_gyp_dir=/home/marc/.nvm/versions/node/v20.11.1/lib/node_modules/npm/node_modules/node-gyp',
npm ERR! gyp info spawn args '-Dnode_lib_file=/home/marc/.cache/node-gyp/20.11.1/<(target_arch)/node.lib',
npm ERR! gyp info spawn args '-Dmodule_root_dir=/home/marc/.nvm/versions/node/v20.11.1/lib/node_modules/unit-http',
npm ERR! gyp info spawn args '-Dnode_engine=v8',
npm ERR! gyp info spawn args '--depth=.',
npm ERR! gyp info spawn args '--no-parallel',
npm ERR! gyp info spawn args '--generator-output',
npm ERR! gyp info spawn args 'build',
npm ERR! gyp info spawn args '-Goutput_dir=.'
npm ERR! gyp info spawn args ]
npm ERR! gyp info spawn make
npm ERR! gyp info spawn args [ 'BUILDTYPE=Release', '-C', 'build' ]
npm ERR! In file included from ../unit.h:9,
npm ERR!                  from ../unit.cpp:6:
npm ERR! ../nxt_napi.h:20:2: error: #error "libunit version mismatch."
npm ERR!    20 | #error "libunit version mismatch."
npm ERR!       |  ^~~~~
npm ERR! make: *** [unit-http.target.mk:105: Release/obj.target/unit-http/unit.o] Fehler 1
npm ERR! gyp ERR! build error 
npm ERR! gyp ERR! stack Error: `make` failed with exit code: 2
npm ERR! gyp ERR! stack at ChildProcess.<anonymous> (/home/marc/.nvm/versions/node/v20.11.1/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:209:23)
npm ERR! gyp ERR! System Linux 6.5.0-1019-oem
npm ERR! gyp ERR! command "/home/marc/.nvm/versions/node/v20.11.1/bin/node" "/home/marc/.nvm/versions/node/v20.11.1/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "configure" "build"
npm ERR! gyp ERR! cwd /home/marc/.nvm/versions/node/v20.11.1/lib/node_modules/unit-http
npm ERR! gyp ERR! node -v v20.11.1
npm ERR! gyp ERR! node-gyp -v v10.0.1
npm ERR! gyp ERR! not ok

Followed the install steps: https://unit.nginx.org/installation/#node-js

node.js version: v20.11.1
npm version: v10.2.4
os version: Ubuntu 22.04.4 LTS
node-gyp version: v10.1.0

How can i fix this/install unit-http & why does it not download a pre-compiled version from npm?

Thanks in advance

@ac000
Copy link
Member

ac000 commented Apr 17, 2024

npm ERR! ../nxt_napi.h:20:2: error: #error "libunit version mismatch."
npm ERR! 20 | #error "libunit version mismatch."
npm ERR! | ^~~~~

In simple terms this means the version of unit-http you're trying to
build/install is from a different version of unit to what you're trying
to build/install against.

The check it's failing on is

#if NXT_VERNUM != NXT_NODE_VERNUM                                               
#error "libunit version mismatch."                                              
#endif 

from src/nodejs/unit-http/nxt_napi.h

These versions essentially come from the version file in the
repository root.

However seeing as you installed unit via your package manager you'd
either need to install the nodejs language module likewise, or build it
from the Unit source having checked out the version that matches what
you have installed.

Any reason not to just use the packaged module though?

@mStirner
Copy link
Author

mStirner commented Apr 17, 2024

Im not sure if i understand correctly.

I have unit installed via apt.
Followed the install steps for the unit-http module.

Is there a version relationship between the unit-http npm module & unit/unit-dev from apt?
What version do i need to change (to what) that i can build the unit-http module?

I have unit v1.32.1 installed. The latest release of unit-http is v1.32.0.
Would it work if both versions match?

Any reason not to just use the packaged module though?

What module are you meaning?


To clarify things: I just copy & pasted all your installation guide's.

I do not want to use any specific version or any other kind of special case.
Just wanted to start as easy as possible.

@ac000
Copy link
Member

ac000 commented Apr 17, 2024

I have unit v1.32.1 installed. The latest release of unit-http is
v1.32.0.
Would it work if both versions match?

Yes, they both need to be the same version.

So it broke before because

NXT_VERNUM is 13201 and NXT_NODE_VERNUM is 13200

What module are you meaning?

Hmm, so there is no nodejs module package...

@mStirner
Copy link
Author

Yes, they both need to be the same version.

Ok, now i understand.

Any reason there is not a unit-http v1.32.1 module in the npm registry?

There should also be a note on the docs (https://unit.nginx.org/installation/#node-js) that the unit & unit-http module need matching version numbers.

@ac000
Copy link
Member

ac000 commented Apr 17, 2024

Any reason there is not a unit-http v1.32.1 module in the npm registry?

Not sure, probably an oversight, maybe @tippexs or @thresheek knows?

There should also be a note on the docs (https://unit.nginx.org/installation/#node-js)
that the unit & unit-http module need matching version numbers.

Indeed, that vital bit of information does seem to be missing... (I'll open a unit-docs issue for it)

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

No branches or pull requests

2 participants