mirror of https://gitee.com/openkylin/nodejs.git
Multiarch search path, arch triplet, DFHS path for modules
Last-Update: 2018-09-30 Last-Update: 2020-03-04 Forwarded: https://github.com/nodejs/node/issues/22745 Reviewed-By: Xavier Guimard <yadd@debian.org> Gbp-Pq: Name dfhs_module_path_arch_triplet.patch
This commit is contained in:
parent
614e41e7c5
commit
145e5ef4ad
22
configure.py
22
configure.py
|
@ -83,6 +83,11 @@ parser.add_option('--coverage',
|
||||||
dest='coverage',
|
dest='coverage',
|
||||||
help='Build node with code coverage enabled')
|
help='Build node with code coverage enabled')
|
||||||
|
|
||||||
|
parser.add_option('--arch-triplet',
|
||||||
|
action='store',
|
||||||
|
dest='arch_triplet',
|
||||||
|
help='arch triplet used by distro')
|
||||||
|
|
||||||
parser.add_option('--debug',
|
parser.add_option('--debug',
|
||||||
action='store_true',
|
action='store_true',
|
||||||
dest='debug',
|
dest='debug',
|
||||||
|
@ -121,6 +126,11 @@ parser.add_option('--gdb',
|
||||||
dest='gdb',
|
dest='gdb',
|
||||||
help='add gdb support')
|
help='add gdb support')
|
||||||
|
|
||||||
|
parser.add_option('--node-relative-path',
|
||||||
|
action='store',
|
||||||
|
dest='node_relative_path',
|
||||||
|
help='Node path(s) used by require, resolved relative to prefix dir.')
|
||||||
|
|
||||||
parser.add_option('--no-ifaddrs',
|
parser.add_option('--no-ifaddrs',
|
||||||
action='store_true',
|
action='store_true',
|
||||||
dest='no_ifaddrs',
|
dest='no_ifaddrs',
|
||||||
|
@ -1220,6 +1230,17 @@ def configure_napi(output):
|
||||||
version = getnapibuildversion.get_napi_version()
|
version = getnapibuildversion.get_napi_version()
|
||||||
output['variables']['napi_build_version'] = version
|
output['variables']['napi_build_version'] = version
|
||||||
|
|
||||||
|
def configure_debian(output):
|
||||||
|
if options.arch_triplet:
|
||||||
|
output['variables']['arch_triplet'] = options.arch_triplet
|
||||||
|
else:
|
||||||
|
output['variables']['arch_triplet'] = 'unknown-unknown-unknown'
|
||||||
|
|
||||||
|
if options.node_relative_path:
|
||||||
|
output['variables']['node_relative_path'] = options.node_relative_path
|
||||||
|
else:
|
||||||
|
output['variables']['node_relative_path']= ''
|
||||||
|
|
||||||
def configure_library(lib, output, pkgname=None):
|
def configure_library(lib, output, pkgname=None):
|
||||||
shared_lib = 'shared_' + lib
|
shared_lib = 'shared_' + lib
|
||||||
output['variables']['node_' + shared_lib] = b(getattr(options, shared_lib))
|
output['variables']['node_' + shared_lib] = b(getattr(options, shared_lib))
|
||||||
|
@ -1711,6 +1732,7 @@ flavor = GetFlavor(flavor_params)
|
||||||
|
|
||||||
configure_node(output)
|
configure_node(output)
|
||||||
configure_napi(output)
|
configure_napi(output)
|
||||||
|
configure_debian(output)
|
||||||
configure_library('zlib', output)
|
configure_library('zlib', output)
|
||||||
configure_library('http_parser', output)
|
configure_library('http_parser', output)
|
||||||
configure_library('libuv', output)
|
configure_library('libuv', output)
|
||||||
|
|
|
@ -1102,6 +1102,7 @@ Module.createRequire = createRequire;
|
||||||
Module._initPaths = function() {
|
Module._initPaths = function() {
|
||||||
const homeDir = isWindows ? process.env.USERPROFILE : safeGetenv('HOME');
|
const homeDir = isWindows ? process.env.USERPROFILE : safeGetenv('HOME');
|
||||||
const nodePath = isWindows ? process.env.NODE_PATH : safeGetenv('NODE_PATH');
|
const nodePath = isWindows ? process.env.NODE_PATH : safeGetenv('NODE_PATH');
|
||||||
|
const relativePaths = process.config.variables.node_relative_path;
|
||||||
|
|
||||||
// process.execPath is $PREFIX/bin/node except on Windows where it is
|
// process.execPath is $PREFIX/bin/node except on Windows where it is
|
||||||
// $PREFIX\node.exe where $PREFIX is the root of the Node.js installation.
|
// $PREFIX\node.exe where $PREFIX is the root of the Node.js installation.
|
||||||
|
@ -1109,7 +1110,17 @@ Module._initPaths = function() {
|
||||||
path.resolve(process.execPath, '..') :
|
path.resolve(process.execPath, '..') :
|
||||||
path.resolve(process.execPath, '..', '..');
|
path.resolve(process.execPath, '..', '..');
|
||||||
|
|
||||||
let paths = [path.resolve(prefixDir, 'lib', 'node')];
|
var postDirs = [];
|
||||||
|
if (relativePaths) {
|
||||||
|
relativePaths.split(path.delimiter).map(path => {
|
||||||
|
if (path) postDirs.push(path);
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
postDirs.push(path.join('lib', 'node'));
|
||||||
|
}
|
||||||
|
let paths = postDirs.map(postDir => {
|
||||||
|
return path.resolve(prefixDir, postDir);
|
||||||
|
});
|
||||||
|
|
||||||
if (homeDir) {
|
if (homeDir) {
|
||||||
paths.unshift(path.resolve(homeDir, '.node_libraries'));
|
paths.unshift(path.resolve(homeDir, '.node_libraries'));
|
||||||
|
|
|
@ -73,10 +73,10 @@ if (process.argv[2] === 'child') {
|
||||||
|
|
||||||
// Test module in $PREFIX/lib/node.
|
// Test module in $PREFIX/lib/node.
|
||||||
// Write module into $PREFIX/lib/node.
|
// Write module into $PREFIX/lib/node.
|
||||||
const expectedString = '$PREFIX/lib/node';
|
const expectedString = '$PREFIX/lib/nodejs';
|
||||||
const prefixLibPath = path.join(prefixPath, 'lib');
|
const prefixLibPath = path.join(prefixPath, 'lib');
|
||||||
fs.mkdirSync(prefixLibPath);
|
fs.mkdirSync(prefixLibPath);
|
||||||
const prefixLibNodePath = path.join(prefixLibPath, 'node');
|
const prefixLibNodePath = path.join(prefixLibPath, 'nodejs');
|
||||||
fs.mkdirSync(prefixLibNodePath);
|
fs.mkdirSync(prefixLibNodePath);
|
||||||
const pkgPath = path.join(prefixLibNodePath, `${pkgName}.js`);
|
const pkgPath = path.join(prefixLibNodePath, `${pkgName}.js`);
|
||||||
fs.writeFileSync(pkgPath, `exports.string = '${expectedString}';`);
|
fs.writeFileSync(pkgPath, `exports.string = '${expectedString}';`);
|
||||||
|
|
Loading…
Reference in New Issue