4runr-os 2.1.26 → 2.1.28
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/system-verify.d.ts.map +1 -1
- package/dist/system-verify.js +29 -2
- package/dist/system-verify.js.map +1 -1
- package/package.json +1 -1
- package/scripts/setup.js +85 -19
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"system-verify.d.ts","sourceRoot":"","sources":["../src/system-verify.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAcH;;GAEG;AACH,wBAAsB,YAAY,IAAI,OAAO,CAAC,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"system-verify.d.ts","sourceRoot":"","sources":["../src/system-verify.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAcH;;GAEG;AACH,wBAAsB,YAAY,IAAI,OAAO,CAAC,OAAO,CAAC,CA6KrD"}
|
package/dist/system-verify.js
CHANGED
|
@@ -53,16 +53,43 @@ export async function verifySystem() {
|
|
|
53
53
|
catch {
|
|
54
54
|
// MSVC not available - check if MinGW is available for GNU toolchain
|
|
55
55
|
let mingwAvailable = false;
|
|
56
|
+
let mingwPath = '';
|
|
56
57
|
try {
|
|
57
|
-
execSync('where dlltool.exe', { stdio: '
|
|
58
|
+
const dlltoolPath = execSync('where dlltool.exe', { encoding: 'utf-8', stdio: 'pipe' }).trim();
|
|
58
59
|
mingwAvailable = true;
|
|
60
|
+
mingwPath = path.dirname(dlltoolPath);
|
|
59
61
|
}
|
|
60
62
|
catch {
|
|
63
|
+
// Check common MinGW locations
|
|
64
|
+
const commonPaths = [
|
|
65
|
+
'C:\\mingw64\\bin',
|
|
66
|
+
'C:\\msys64\\mingw64\\bin',
|
|
67
|
+
path.join(process.env.ProgramFiles || 'C:\\Program Files', 'mingw-w64'),
|
|
68
|
+
];
|
|
69
|
+
for (const testPath of commonPaths) {
|
|
70
|
+
const dlltoolPath = path.join(testPath, 'dlltool.exe');
|
|
71
|
+
if (fs.existsSync(dlltoolPath)) {
|
|
72
|
+
mingwAvailable = true;
|
|
73
|
+
mingwPath = path.dirname(dlltoolPath);
|
|
74
|
+
process.env.PATH = `${mingwPath};${process.env.PATH}`;
|
|
75
|
+
break;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
if (!mingwAvailable) {
|
|
61
80
|
process.stderr.write('❌ MinGW not found (required for GNU toolchain).\n');
|
|
62
81
|
process.stderr.write(' Run setup to install: 4runr-setup\n');
|
|
63
|
-
process.stderr.write(' Or install manually: winget install mingw-w64.mingw-w64\n
|
|
82
|
+
process.stderr.write(' Or install manually: winget install mingw-w64.mingw-w64\n');
|
|
83
|
+
process.stderr.write(' Then restart terminal and run 4r again\n\n');
|
|
64
84
|
return false;
|
|
65
85
|
}
|
|
86
|
+
// Ensure MinGW is in PATH
|
|
87
|
+
if (mingwPath && process.env.PATH && !process.env.PATH.includes(mingwPath)) {
|
|
88
|
+
process.env.PATH = `${mingwPath};${process.env.PATH}`;
|
|
89
|
+
}
|
|
90
|
+
else if (mingwPath && !process.env.PATH) {
|
|
91
|
+
process.env.PATH = mingwPath;
|
|
92
|
+
}
|
|
66
93
|
if (mingwAvailable) {
|
|
67
94
|
process.stderr.write('⚠️ MSVC linker not found. Using GNU toolchain...\n');
|
|
68
95
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"system-verify.js","sourceRoot":"","sources":["../src/system-verify.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAE/B,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AAEtC,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAkB,CAAC;AAC5C,MAAM,SAAS,GAAG,QAAQ,KAAK,OAAO,CAAC;AAEvC;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY;IAChC,iCAAiC;IACjC,MAAM,UAAU,GAAG,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC;IACzD,MAAM,aAAa,GAAG;QACpB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,QAAQ,IAAI,OAAO,CAAC,IAAI,EAAE,EAAE,UAAU,CAAC;QAC5F,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,CAAC;QACvE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,CAAC;QACtE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,CAAC;KAC3F,CAAC;IAEF,yBAAyB;IACzB,KAAK,MAAM,QAAQ,IAAI,aAAa,EAAE,CAAC;QACrC,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC5B,OAAO,IAAI,CAAC,CAAC,6BAA6B;QAC5C,CAAC;IACH,CAAC;IAED,qCAAqC;IACrC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC;IAEnD,aAAa;IACb,IAAI,aAAa,GAAG,KAAK,CAAC;IAC1B,IAAI,CAAC;QACH,QAAQ,CAAC,iBAAiB,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;QACjD,aAAa,GAAG,IAAI,CAAC;IACvB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAChD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC;QAC5D,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,4CAA4C,CAAC,CAAC;QACnE,OAAO,KAAK,CAAC;IACf,CAAC;IAED,0CAA0C;IAC1C,IAAI,SAAS,EAAE,CAAC;QACd,IAAI,aAAa,GAAG,KAAK,CAAC;QAC1B,IAAI,CAAC;YACH,QAAQ,CAAC,gBAAgB,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;YAChD,aAAa,GAAG,IAAI,CAAC;QACvB,CAAC;QAAC,MAAM,CAAC;YACP,qEAAqE;YACrE,IAAI,cAAc,GAAG,KAAK,CAAC;YAC3B,IAAI,CAAC;gBACH,QAAQ,CAAC,mBAAmB,EAAE,EAAE,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"system-verify.js","sourceRoot":"","sources":["../src/system-verify.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/scripts/setup.js
CHANGED
|
@@ -94,33 +94,99 @@ if (isWindows && rustInstalled && rustNeedsGNU) {
|
|
|
94
94
|
|
|
95
95
|
// Check if MinGW is installed (required for GNU toolchain)
|
|
96
96
|
let mingwInstalled = false;
|
|
97
|
+
let mingwPath = '';
|
|
98
|
+
|
|
97
99
|
try {
|
|
98
|
-
execSync('where dlltool.exe', { stdio: '
|
|
100
|
+
const dlltoolPath = execSync('where dlltool.exe', { encoding: 'utf-8', stdio: 'pipe' }).trim();
|
|
99
101
|
mingwInstalled = true;
|
|
100
|
-
|
|
102
|
+
mingwPath = path.dirname(dlltoolPath);
|
|
103
|
+
console.log('✅ MinGW found at:', mingwPath);
|
|
101
104
|
} catch {
|
|
102
|
-
console.log('⚠️ MinGW not found - required for GNU toolchain');
|
|
103
|
-
console.log('
|
|
105
|
+
console.log('⚠️ MinGW not found in PATH - required for GNU toolchain');
|
|
106
|
+
console.log(' Checking common installation locations...');
|
|
104
107
|
|
|
105
|
-
//
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
108
|
+
// Check common MinGW locations
|
|
109
|
+
const commonPaths = [
|
|
110
|
+
'C:\\mingw64\\bin',
|
|
111
|
+
'C:\\msys64\\mingw64\\bin',
|
|
112
|
+
'C:\\Program Files\\mingw-w64\\x86_64-8.1.0-posix-seh-rt_v6-rev0\\mingw64\\bin',
|
|
113
|
+
path.join(process.env.ProgramFiles || 'C:\\Program Files', 'mingw-w64', 'x86_64-*-*-*-*-*', 'mingw64', 'bin'),
|
|
114
|
+
];
|
|
115
|
+
|
|
116
|
+
for (const testPath of commonPaths) {
|
|
117
|
+
const dlltoolPath = path.join(testPath, 'dlltool.exe');
|
|
118
|
+
if (fs.existsSync(dlltoolPath)) {
|
|
119
|
+
mingwInstalled = true;
|
|
120
|
+
mingwPath = testPath;
|
|
121
|
+
console.log('✅ MinGW found at:', mingwPath);
|
|
122
|
+
console.log(' Adding to PATH for this session...');
|
|
123
|
+
process.env.PATH = process.env.PATH ? `${mingwPath};${process.env.PATH}` : mingwPath;
|
|
124
|
+
break;
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
if (!mingwInstalled) {
|
|
129
|
+
console.log(' Installing MinGW-w64...');
|
|
130
|
+
|
|
131
|
+
// Try multiple installation methods
|
|
132
|
+
let installed = false;
|
|
133
|
+
|
|
134
|
+
// Try winget with different package IDs
|
|
135
|
+
const wingetPackages = [
|
|
136
|
+
'mingw-w64.mingw-w64',
|
|
137
|
+
'mingw-w64',
|
|
138
|
+
];
|
|
139
|
+
|
|
140
|
+
for (const pkg of wingetPackages) {
|
|
141
|
+
try {
|
|
142
|
+
console.log(` Trying: winget install ${pkg}...`);
|
|
143
|
+
execSync(`winget install ${pkg} --accept-package-agreements --accept-source-agreements --silent`, {
|
|
144
|
+
stdio: 'pipe',
|
|
145
|
+
timeout: 60000
|
|
146
|
+
});
|
|
147
|
+
installed = true;
|
|
148
|
+
console.log(` ✅ Installed via winget: ${pkg}`);
|
|
149
|
+
break;
|
|
150
|
+
} catch (err) {
|
|
151
|
+
// Try next package
|
|
152
|
+
continue;
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
if (!installed) {
|
|
157
|
+
console.error('\n❌ Failed to install MinGW automatically via winget');
|
|
158
|
+
console.error('\n Please install MinGW-w64 manually using one of these methods:\n');
|
|
159
|
+
console.error(' Option 1: MSYS2 (Recommended - Easiest)');
|
|
160
|
+
console.error(' 1. Download: https://www.msys2.org/');
|
|
161
|
+
console.error(' 2. Install MSYS2');
|
|
162
|
+
console.error(' 3. Open MSYS2 terminal and run: pacman -S mingw-w64-x86_64-toolchain');
|
|
163
|
+
console.error(' 4. Add C:\\msys64\\mingw64\\bin to your PATH');
|
|
164
|
+
console.error(' 5. Restart terminal and run: 4runr-setup\n');
|
|
165
|
+
console.error(' Option 2: WinLibs (Direct Download)');
|
|
166
|
+
console.error(' 1. Download: https://winlibs.com/');
|
|
167
|
+
console.error(' 2. Extract to C:\\mingw64');
|
|
168
|
+
console.error(' 3. Add C:\\mingw64\\bin to your PATH');
|
|
169
|
+
console.error(' 4. Restart terminal and run: 4runr-setup\n');
|
|
170
|
+
console.error(' Option 3: Chocolatey (if installed)');
|
|
171
|
+
console.error(' choco install mingw\n');
|
|
172
|
+
process.exit(1);
|
|
173
|
+
} else {
|
|
174
|
+
console.log('\n✅ MinGW-w64 installed!');
|
|
175
|
+
console.log(' IMPORTANT: Please restart your terminal to update PATH');
|
|
176
|
+
console.log(' Then run: 4runr-setup\n');
|
|
177
|
+
process.exit(0);
|
|
178
|
+
}
|
|
120
179
|
}
|
|
121
180
|
}
|
|
122
181
|
|
|
123
182
|
if (mingwInstalled) {
|
|
183
|
+
// Make sure MinGW is in PATH for cargo
|
|
184
|
+
if (mingwPath && process.env.PATH && !process.env.PATH.includes(mingwPath)) {
|
|
185
|
+
process.env.PATH = `${mingwPath};${process.env.PATH}`;
|
|
186
|
+
} else if (mingwPath && !process.env.PATH) {
|
|
187
|
+
process.env.PATH = mingwPath;
|
|
188
|
+
}
|
|
189
|
+
|
|
124
190
|
try {
|
|
125
191
|
execSync('rustup toolchain install stable-x86_64-pc-windows-gnu', { stdio: 'inherit' });
|
|
126
192
|
execSync('rustup default stable-x86_64-pc-windows-gnu', { stdio: 'inherit' });
|