@oxiaom/adoremix 1.0.35 → 1.0.36

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.
Files changed (2) hide show
  1. package/package.json +1 -1
  2. package/src/doctor.js +19 -8
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@oxiaom/adoremix",
3
- "version": "1.0.35",
3
+ "version": "1.0.36",
4
4
  "description": "AdoreMix broadcast server - cross-platform installer, runner and service manager",
5
5
  "bin": {
6
6
  "adoremix": "./bin/adoremix.js"
package/src/doctor.js CHANGED
@@ -335,24 +335,35 @@ function runDoctor(workdir, opts) {
335
335
  }
336
336
  }
337
337
 
338
- // C. Qt 捆绑一致性:必须加载捆绑 lib/ 里的 Qt,不能加载系统 Qt(版本可能不匹配)
339
- const qtSonames = Object.keys(resolved).filter(k => /^libQt5.*\.so\.5$/.test(k));
338
+ // C. 捆绑库一致性:自包含包中,Qt/ICU/pcre/z/glib/krb5/sqlite/ssl 等应全部从捆绑 lib/ 解析。
339
+ // 若某个库从系统路径加载,说明捆绑不完整或 RPATH 未生效,版本可能不匹配(如系统 ICU72 vs 捆绑 ICU67)。
340
+ const BUNDLED_PREFIXES = [
341
+ 'libQt5', 'libicu', 'libpcre', 'libz', 'libglib-2.0',
342
+ 'libgssapi_krb5', 'libkrb5', 'libk5crypto', 'libkrb5support',
343
+ 'libcom_err', 'libkeyutils', 'libdouble-conversion', 'libsqlite3',
344
+ 'libssl', 'libcrypto', 'libhiredis', 'libmariadb', 'libopus', 'libmp3lame'
345
+ ];
340
346
  const libDirNorm = path.normalize(libDir);
341
- for (const so of qtSonames) {
347
+ let bundledChecked = 0;
348
+ let bundledFromSystem = 0;
349
+ for (const so of Object.keys(resolved)) {
350
+ if (!BUNDLED_PREFIXES.some(p => so.startsWith(p))) continue;
351
+ bundledChecked++;
342
352
  const rp = resolved[so];
343
353
  if (!rp) {
344
- issues.push({ type: 'qt-missing', severity: 'error', msg: `${so} 未能解析,捆绑 Qt 加载失败` });
345
- logger.error(`❌ ${so} 未解析(捆绑 Qt 加载失败)`);
354
+ issues.push({ type: 'bundled-lib-missing', severity: 'error', msg: `${so} 未能解析(应捆绑在 lib/)` });
355
+ logger.error(`❌ ${so} 未解析(捆绑库加载失败)`);
346
356
  } else if (!path.normalize(rp).startsWith(libDirNorm + path.sep)) {
347
- issues.push({ type: 'qt-bundle', severity: 'error', msg: `${so} 加载系统 Qt:${rp}(应为捆绑 ${libDir}),版本可能不匹配` });
348
- logger.error(`❌ ${so} => ${rp}(非捆绑 Qt)`);
357
+ bundledFromSystem++;
358
+ issues.push({ type: 'bundled-lib-system', severity: 'error', msg: `${so} 从系统加载:${rp}(应捆绑 ${libDir}),版本可能不匹配` });
359
+ logger.error(`❌ ${so} => ${rp}(非捆绑,可能版本不匹配)`);
349
360
  } else {
350
361
  logger.ok(`✓ ${so} => 捆绑 ${path.basename(rp)}`);
351
362
  }
352
363
  }
353
364
 
354
365
  // D. 依赖解析统计(信息性)
355
- logger.log(` 已解析依赖 ${Object.keys(resolved).length} 项,缺库 ${missing.length} 项`);
366
+ logger.log(` 已解析依赖 ${Object.keys(resolved).length} 项,缺库 ${missing.length} 项,捆绑库 ${bundledChecked} 项(其中从系统加载 ${bundledFromSystem} 项)`);
356
367
  } catch (e) {
357
368
  logger.warn(`⚠ ldd 检查失败(非 Linux 或权限问题):${e.message.split('\n')[0]}`);
358
369
  }