-
Notifications
You must be signed in to change notification settings - Fork 29.6k
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
build: fix shared installing target #15148
Conversation
tools/install.py
Outdated
@@ -132,8 +133,7 @@ def files(action): | |||
# in its source - see the _InstallableTargetInstallPath function. | |||
if sys.platform != 'darwin': | |||
output_prefix += 'lib.target/' | |||
|
|||
action([output_prefix + output_file], 'bin/' + output_file) | |||
action([output_prefix + output_file], 'bin/' + output_file) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
how about:
action([output_prefix + output_file], ('bin/' if 'false' == variables.get('node_shared') else 'lib/) + output_file)
that only affect one line.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nice suggestion! Merged to one statement but still 2 lines because of the 80 chars per line rule :)
tools/install.py
Outdated
@@ -133,7 +133,8 @@ def files(action): | |||
if sys.platform != 'darwin': | |||
output_prefix += 'lib.target/' | |||
|
|||
action([output_prefix + output_file], 'bin/' + output_file) | |||
action([output_prefix + output_file], ( | |||
'bin/' if 'false' == variables.get('node_shared') else 'lib/') + output_file) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Will be easier on the eyes when written as an if/else statement. That's also the commonest style in this file and will also let you keep it <= 80 columns.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Like this?
if 'false' == variables.get('node_shared'):
action([output_prefix + output_file], 'bin/' + output_file)
else:
action([output_prefix + output_file], 'lib/' + output_file)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ping @bnoordhuis
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@yorkie that looks like what Ben was suggesting, could you update this branch with that code?
Could someone take a look at this? This is a little patch to fix the vital issue! |
@nodejs/build PTAL |
Still Ping @bnoordhuis :( |
Ping @nodejs/build again |
Ping @nodejs/tsc |
Ok, @gibfahn @bnoordhuis Updated :) |
cc/ @nodejs/python |
Ping @XadillaX LGTY now? |
I think this is good to land if CI is green. |
Landed in 6975c49 |
PR-URL: #15148 Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de> Reviewed-By: Gibson Fahnestock <gibfahn@gmail.com> Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: James M Snell <jasnell@gmail.com>
PR-URL: nodejs#15148 Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de> Reviewed-By: Gibson Fahnestock <gibfahn@gmail.com> Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: James M Snell <jasnell@gmail.com>
PR-URL: #15148 Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de> Reviewed-By: Gibson Fahnestock <gibfahn@gmail.com> Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: James M Snell <jasnell@gmail.com>
PR-URL: nodejs/node#15148 Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de> Reviewed-By: Gibson Fahnestock <gibfahn@gmail.com> Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: James M Snell <jasnell@gmail.com>
PR-URL: #15148 Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de> Reviewed-By: Gibson Fahnestock <gibfahn@gmail.com> Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: James M Snell <jasnell@gmail.com>
PR-URL: #15148 Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de> Reviewed-By: Gibson Fahnestock <gibfahn@gmail.com> Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: James M Snell <jasnell@gmail.com>
PR-URL: #15148 Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de> Reviewed-By: Gibson Fahnestock <gibfahn@gmail.com> Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: James M Snell <jasnell@gmail.com>
The npm install rules had a hidden dependency on the `node` binary install rule creating the `$PREFIX/bin` directory. Because with `./configure --shared` no binary is created, the rule subsequently failed. Fix that by creating the directory before creating the symlinks to the npm and npx scripts. (Whether it makes sense to install npm without a `node` binary is a separate question. This commit is not taking positions. :-)) Regression introduced in commit ed8c89a ("build: fix shared installing target") which, as the commit log indicates, was itself a bug fix for the `./configure --shared` install. Fixes: nodejs#16437 Refs: nodejs#15148
PR-URL: #15148 Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de> Reviewed-By: Gibson Fahnestock <gibfahn@gmail.com> Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: James M Snell <jasnell@gmail.com>
The npm install rules had a hidden dependency on the `node` binary install rule creating the `$PREFIX/bin` directory. Because with `./configure --shared` no binary is created, the rule subsequently failed. Fix that by creating the directory before creating the symlinks to the npm and npx scripts. (Whether it makes sense to install npm without a `node` binary is a separate question. This commit is not taking positions. :-)) Regression introduced in commit ed8c89a ("build: fix shared installing target") which, as the commit log indicates, was itself a bug fix for the `./configure --shared` install. PR-URL: #16438 Fixes: #16437 Ref: #15148 Reviewed-By: Gibson Fahnestock <gibfahn@gmail.com> Reviewed-By: Richard Lau <riclau@uk.ibm.com> Reviewed-By: Gireesh Punathil <gpunathi@in.ibm.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Refael Ackermann <refack@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Daijiro Wachi <daijiro.wachi@gmail.com> Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com>
The npm install rules had a hidden dependency on the `node` binary install rule creating the `$PREFIX/bin` directory. Because with `./configure --shared` no binary is created, the rule subsequently failed. Fix that by creating the directory before creating the symlinks to the npm and npx scripts. (Whether it makes sense to install npm without a `node` binary is a separate question. This commit is not taking positions. :-)) Regression introduced in commit ed8c89a ("build: fix shared installing target") which, as the commit log indicates, was itself a bug fix for the `./configure --shared` install. PR-URL: nodejs/node#16438 Fixes: nodejs/node#16437 Ref: nodejs/node#15148 Reviewed-By: Gibson Fahnestock <gibfahn@gmail.com> Reviewed-By: Richard Lau <riclau@uk.ibm.com> Reviewed-By: Gireesh Punathil <gpunathi@in.ibm.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Refael Ackermann <refack@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Daijiro Wachi <daijiro.wachi@gmail.com> Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com>
The npm install rules had a hidden dependency on the `node` binary install rule creating the `$PREFIX/bin` directory. Because with `./configure --shared` no binary is created, the rule subsequently failed. Fix that by creating the directory before creating the symlinks to the npm and npx scripts. (Whether it makes sense to install npm without a `node` binary is a separate question. This commit is not taking positions. :-)) Regression introduced in commit ed8c89a ("build: fix shared installing target") which, as the commit log indicates, was itself a bug fix for the `./configure --shared` install. PR-URL: #16438 Fixes: #16437 Ref: #15148 Reviewed-By: Gibson Fahnestock <gibfahn@gmail.com> Reviewed-By: Richard Lau <riclau@uk.ibm.com> Reviewed-By: Gireesh Punathil <gpunathi@in.ibm.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Refael Ackermann <refack@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Daijiro Wachi <daijiro.wachi@gmail.com> Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com>
The npm install rules had a hidden dependency on the `node` binary install rule creating the `$PREFIX/bin` directory. Because with `./configure --shared` no binary is created, the rule subsequently failed. Fix that by creating the directory before creating the symlinks to the npm and npx scripts. (Whether it makes sense to install npm without a `node` binary is a separate question. This commit is not taking positions. :-)) Regression introduced in commit ed8c89a ("build: fix shared installing target") which, as the commit log indicates, was itself a bug fix for the `./configure --shared` install. PR-URL: #16438 Fixes: #16437 Ref: #15148 Reviewed-By: Gibson Fahnestock <gibfahn@gmail.com> Reviewed-By: Richard Lau <riclau@uk.ibm.com> Reviewed-By: Gireesh Punathil <gpunathi@in.ibm.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Refael Ackermann <refack@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Daijiro Wachi <daijiro.wachi@gmail.com> Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com>
The npm install rules had a hidden dependency on the `node` binary install rule creating the `$PREFIX/bin` directory. Because with `./configure --shared` no binary is created, the rule subsequently failed. Fix that by creating the directory before creating the symlinks to the npm and npx scripts. (Whether it makes sense to install npm without a `node` binary is a separate question. This commit is not taking positions. :-)) Regression introduced in commit ed8c89a ("build: fix shared installing target") which, as the commit log indicates, was itself a bug fix for the `./configure --shared` install. PR-URL: #16438 Fixes: #16437 Ref: #15148 Reviewed-By: Gibson Fahnestock <gibfahn@gmail.com> Reviewed-By: Richard Lau <riclau@uk.ibm.com> Reviewed-By: Gireesh Punathil <gpunathi@in.ibm.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Refael Ackermann <refack@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Daijiro Wachi <daijiro.wachi@gmail.com> Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com>
The npm install rules had a hidden dependency on the `node` binary install rule creating the `$PREFIX/bin` directory. Because with `./configure --shared` no binary is created, the rule subsequently failed. Fix that by creating the directory before creating the symlinks to the npm and npx scripts. (Whether it makes sense to install npm without a `node` binary is a separate question. This commit is not taking positions. :-)) Regression introduced in commit ed8c89a ("build: fix shared installing target") which, as the commit log indicates, was itself a bug fix for the `./configure --shared` install. PR-URL: #16438 Fixes: #16437 Ref: #15148 Reviewed-By: Gibson Fahnestock <gibfahn@gmail.com> Reviewed-By: Richard Lau <riclau@uk.ibm.com> Reviewed-By: Gireesh Punathil <gpunathi@in.ibm.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Refael Ackermann <refack@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Daijiro Wachi <daijiro.wachi@gmail.com> Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com>
The npm install rules had a hidden dependency on the `node` binary install rule creating the `$PREFIX/bin` directory. Because with `./configure --shared` no binary is created, the rule subsequently failed. Fix that by creating the directory before creating the symlinks to the npm and npx scripts. (Whether it makes sense to install npm without a `node` binary is a separate question. This commit is not taking positions. :-)) Regression introduced in commit ed8c89a ("build: fix shared installing target") which, as the commit log indicates, was itself a bug fix for the `./configure --shared` install. PR-URL: #16438 Fixes: #16437 Ref: #15148 Reviewed-By: Gibson Fahnestock <gibfahn@gmail.com> Reviewed-By: Richard Lau <riclau@uk.ibm.com> Reviewed-By: Gireesh Punathil <gpunathi@in.ibm.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Refael Ackermann <refack@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Daijiro Wachi <daijiro.wachi@gmail.com> Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com>
The npm install rules had a hidden dependency on the `node` binary install rule creating the `$PREFIX/bin` directory. Because with `./configure --shared` no binary is created, the rule subsequently failed. Fix that by creating the directory before creating the symlinks to the npm and npx scripts. (Whether it makes sense to install npm without a `node` binary is a separate question. This commit is not taking positions. :-)) Regression introduced in commit ed8c89a ("build: fix shared installing target") which, as the commit log indicates, was itself a bug fix for the `./configure --shared` install. PR-URL: #16438 Fixes: #16437 Ref: #15148 Reviewed-By: Gibson Fahnestock <gibfahn@gmail.com> Reviewed-By: Richard Lau <riclau@uk.ibm.com> Reviewed-By: Gireesh Punathil <gpunathi@in.ibm.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Refael Ackermann <refack@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Daijiro Wachi <daijiro.wachi@gmail.com> Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com>
The npm install rules had a hidden dependency on the `node` binary install rule creating the `$PREFIX/bin` directory. Because with `./configure --shared` no binary is created, the rule subsequently failed. Fix that by creating the directory before creating the symlinks to the npm and npx scripts. (Whether it makes sense to install npm without a `node` binary is a separate question. This commit is not taking positions. :-)) Regression introduced in commit ed8c89a ("build: fix shared installing target") which, as the commit log indicates, was itself a bug fix for the `./configure --shared` install. PR-URL: nodejs/node#16438 Fixes: nodejs/node#16437 Ref: nodejs/node#15148 Reviewed-By: Gibson Fahnestock <gibfahn@gmail.com> Reviewed-By: Richard Lau <riclau@uk.ibm.com> Reviewed-By: Gireesh Punathil <gpunathi@in.ibm.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Refael Ackermann <refack@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Daijiro Wachi <daijiro.wachi@gmail.com> Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com>
Checklist
make -j4 test
(UNIX), orvcbuild test
(Windows) passesThis patch fixes the target location with
--shared
flag, we should install the lib under$node_prefix/lib