pacman-debian 7.3.36 → 7.5.0

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 (99) hide show
  1. package/README.md +12 -0
  2. package/README_zh-CN.md +11 -0
  3. package/dist/cli/archlinux-java.js +36 -12
  4. package/dist/cli/archlinux-java.js.map +1 -1
  5. package/dist/cli/paclink.js +84 -0
  6. package/dist/cli/paclink.js.map +1 -1
  7. package/dist/cli/pacman.d.ts.map +1 -1
  8. package/dist/cli/pacman.js +66 -11
  9. package/dist/cli/pacman.js.map +1 -1
  10. package/dist/cli/pactree.d.ts +3 -0
  11. package/dist/cli/pactree.d.ts.map +1 -0
  12. package/dist/cli/pactree.js +216 -0
  13. package/dist/cli/pactree.js.map +1 -0
  14. package/dist/core/deps.d.ts +7 -0
  15. package/dist/core/deps.d.ts.map +1 -1
  16. package/dist/core/deps.js +104 -24
  17. package/dist/core/deps.js.map +1 -1
  18. package/dist/core/logger.d.ts +7 -0
  19. package/dist/core/logger.d.ts.map +1 -0
  20. package/dist/core/logger.js +93 -0
  21. package/dist/core/logger.js.map +1 -0
  22. package/dist/core/options.d.ts +2 -0
  23. package/dist/core/options.d.ts.map +1 -1
  24. package/dist/core/paclinks.d.ts +9 -0
  25. package/dist/core/paclinks.d.ts.map +1 -0
  26. package/dist/core/paclinks.js +69 -0
  27. package/dist/core/paclinks.js.map +1 -0
  28. package/dist/core/pkgfile.d.ts +2 -0
  29. package/dist/core/pkgfile.d.ts.map +1 -1
  30. package/dist/core/pkgfile.js +6 -0
  31. package/dist/core/pkgfile.js.map +1 -1
  32. package/dist/core/tar.d.ts +3 -1
  33. package/dist/core/tar.d.ts.map +1 -1
  34. package/dist/core/tar.js +87 -11
  35. package/dist/core/tar.js.map +1 -1
  36. package/dist/core/types.d.ts +17 -0
  37. package/dist/core/types.d.ts.map +1 -1
  38. package/dist/db/dpkg-compat.d.ts +5 -2
  39. package/dist/db/dpkg-compat.d.ts.map +1 -1
  40. package/dist/db/dpkg-compat.js +130 -57
  41. package/dist/db/dpkg-compat.js.map +1 -1
  42. package/dist/db/localdb.d.ts.map +1 -1
  43. package/dist/db/localdb.js +21 -2
  44. package/dist/db/localdb.js.map +1 -1
  45. package/dist/debug-upgrade.d.ts +2 -0
  46. package/dist/debug-upgrade.d.ts.map +1 -0
  47. package/dist/debug-upgrade.js +140 -0
  48. package/dist/debug-upgrade.js.map +1 -0
  49. package/dist/i18n/en.json +2 -0
  50. package/dist/i18n/paclink/en.d.ts.map +1 -1
  51. package/dist/i18n/paclink/en.js +7 -0
  52. package/dist/i18n/paclink/en.js.map +1 -1
  53. package/dist/i18n/paclink/zh-CN.d.ts.map +1 -1
  54. package/dist/i18n/paclink/zh-CN.js +7 -0
  55. package/dist/i18n/paclink/zh-CN.js.map +1 -1
  56. package/dist/i18n/zh-CN.json +2 -0
  57. package/dist/lock/dpkg-helper +0 -0
  58. package/dist/lock/dpkg-lock.d.ts +5 -0
  59. package/dist/lock/dpkg-lock.d.ts.map +1 -0
  60. package/dist/lock/dpkg-lock.js +113 -0
  61. package/dist/lock/dpkg-lock.js.map +1 -0
  62. package/dist/makepkg/build.d.ts.map +1 -1
  63. package/dist/makepkg/build.js +3 -5
  64. package/dist/makepkg/build.js.map +1 -1
  65. package/dist/makepkg/pkgbuild.d.ts.map +1 -1
  66. package/dist/makepkg/pkgbuild.js +109 -53
  67. package/dist/makepkg/pkgbuild.js.map +1 -1
  68. package/dist/ops/install.d.ts +2 -1
  69. package/dist/ops/install.d.ts.map +1 -1
  70. package/dist/ops/install.js +290 -157
  71. package/dist/ops/install.js.map +1 -1
  72. package/dist/ops/query.d.ts.map +1 -1
  73. package/dist/ops/query.js +62 -35
  74. package/dist/ops/query.js.map +1 -1
  75. package/dist/ops/remove.d.ts.map +1 -1
  76. package/dist/ops/remove.js +106 -60
  77. package/dist/ops/remove.js.map +1 -1
  78. package/dist/ops/upgrade.d.ts.map +1 -1
  79. package/dist/ops/upgrade.js +71 -13
  80. package/dist/ops/upgrade.js.map +1 -1
  81. package/dist/repo/config.d.ts.map +1 -1
  82. package/dist/repo/config.js +60 -6
  83. package/dist/repo/config.js.map +1 -1
  84. package/dist/repo/repository.d.ts +6 -0
  85. package/dist/repo/repository.d.ts.map +1 -1
  86. package/dist/repo/repository.js +348 -49
  87. package/dist/repo/repository.js.map +1 -1
  88. package/dist/scripts/setup.js +27 -77
  89. package/dist/scripts/setup.js.map +1 -1
  90. package/docs/en/architecture.md +109 -45
  91. package/docs/en/pactree.md +42 -0
  92. package/docs/en/yay-aur.md +10 -6
  93. package/docs/zh-CN/pactree.md +41 -0
  94. package/lib/pac4deb/include/alpm.h +2 -1
  95. package/lib/pac4deb/src/libalpm.c +116 -54
  96. package/lib/pac4deb/src/stubs_manual.c +11 -1
  97. package/package.json +4 -3
  98. package/resources/paclinks.conf +64 -0
  99. package/resources/pacman.conf.template +16 -2
@@ -0,0 +1,69 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.readPaclinks = readPaclinks;
37
+ exports.writePaclinks = writePaclinks;
38
+ exports.addPaclink = addPaclink;
39
+ exports.removePaclink = removePaclink;
40
+ const fs = __importStar(require("node:fs"));
41
+ const PACLINKS_FILE = '/var/lib/pacman-debian/paclinks';
42
+ function ensureDir(d) { if (!fs.existsSync(d))
43
+ fs.mkdirSync(d, { recursive: true }); }
44
+ function readPaclinks() {
45
+ if (!fs.existsSync(PACLINKS_FILE))
46
+ return [];
47
+ const text = fs.readFileSync(PACLINKS_FILE, 'utf8');
48
+ return text.split('\n')
49
+ .filter(line => line.trim() && !line.startsWith('#'))
50
+ .map(line => {
51
+ const [virt, deb] = line.trim().split(/\s+/, 2);
52
+ return { virt, deb };
53
+ });
54
+ }
55
+ function writePaclinks(entries) {
56
+ entries.sort((a, b) => a.virt.localeCompare(b.virt));
57
+ const text = entries.map(e => `${e.virt} ${e.deb}`).join('\n') + '\n';
58
+ ensureDir('/var/lib/pacman-debian');
59
+ fs.writeFileSync(PACLINKS_FILE, text, 'utf8');
60
+ }
61
+ function addPaclink(virt, deb) {
62
+ const entries = readPaclinks().filter(e => e.virt !== virt);
63
+ entries.push({ virt, deb });
64
+ writePaclinks(entries);
65
+ }
66
+ function removePaclink(virt) {
67
+ writePaclinks(readPaclinks().filter(e => e.virt !== virt));
68
+ }
69
+ //# sourceMappingURL=paclinks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"paclinks.js","sourceRoot":"","sources":["../../src/core/paclinks.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAWA,oCASC;AAED,sCAKC;AAED,gCAIC;AAED,sCAEC;AArCD,4CAA8B;AAE9B,MAAM,aAAa,GAAG,iCAAiC,CAAC;AAOxD,SAAS,SAAS,CAAC,CAAS,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;IAAE,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AAE9F,SAAgB,YAAY;IAC1B,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC;QAAE,OAAO,EAAE,CAAC;IAC7C,MAAM,IAAI,GAAG,EAAE,CAAC,YAAY,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;IACpD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;SACpB,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;SACpD,GAAG,CAAC,IAAI,CAAC,EAAE;QACV,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAChD,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC;IACvB,CAAC,CAAC,CAAC;AACP,CAAC;AAED,SAAgB,aAAa,CAAC,OAAuB;IACnD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IACrD,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IACtE,SAAS,CAAC,wBAAwB,CAAC,CAAC;IACpC,EAAE,CAAC,aAAa,CAAC,aAAa,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;AAChD,CAAC;AAED,SAAgB,UAAU,CAAC,IAAY,EAAE,GAAW;IAClD,MAAM,OAAO,GAAG,YAAY,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;IAC5D,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;IAC5B,aAAa,CAAC,OAAO,CAAC,CAAC;AACzB,CAAC;AAED,SAAgB,aAAa,CAAC,IAAY;IACxC,aAAa,CAAC,YAAY,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC;AAC7D,CAAC"}
@@ -1,6 +1,7 @@
1
1
  export interface PkgInfo {
2
2
  name: string;
3
3
  version: string;
4
+ base?: string;
4
5
  description?: string;
5
6
  depends?: string[];
6
7
  conflicts?: string[];
@@ -11,6 +12,7 @@ export interface PkgInfo {
11
12
  installedSize?: number;
12
13
  size?: number;
13
14
  packager?: string;
15
+ buildDate?: number;
14
16
  }
15
17
  export interface InstallScript {
16
18
  pre_install?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"pkgfile.d.ts","sourceRoot":"","sources":["../../src/core/pkgfile.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAmDD,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,aAAa,CAAC;IAAC,KAAK,EAAE,MAAM,EAAE,CAAC;IAAC,UAAU,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,EAAE,CAAA;CAAE,CAmB7J;AA0BD,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,EAAE,GAAG,IAAI,CAMtH;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAkBvE"}
1
+ {"version":3,"file":"pkgfile.d.ts","sourceRoot":"","sources":["../../src/core/pkgfile.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,aAAa;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAqDD,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,aAAa,CAAC;IAAC,KAAK,EAAE,MAAM,EAAE,CAAC;IAAC,UAAU,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,EAAE,CAAA;CAAE,CAmB7J;AA0BD,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,EAAE,GAAG,IAAI,CAMtH;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAkBvE"}
@@ -23,6 +23,9 @@ function parsePKGINFO(content) {
23
23
  case 'pkgname':
24
24
  info.name = val;
25
25
  break;
26
+ case 'pkgbase':
27
+ info.base = val;
28
+ break;
26
29
  case 'pkgver':
27
30
  info.version = val;
28
31
  break;
@@ -38,6 +41,9 @@ function parsePKGINFO(content) {
38
41
  case 'packager':
39
42
  info.packager = val;
40
43
  break;
44
+ case 'builddate':
45
+ info.buildDate = parseInt(val, 10) || undefined;
46
+ break;
41
47
  case 'size':
42
48
  info.size = parseInt(val, 10) || undefined;
43
49
  break;
@@ -1 +1 @@
1
- {"version":3,"file":"pkgfile.js","sourceRoot":"","sources":["../../src/core/pkgfile.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pkgfile.js","sourceRoot":"","sources":["../../src/core/pkgfile.ts"],"names":[],"mappings":"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"}
@@ -8,6 +8,8 @@ export interface TarEntry {
8
8
  }
9
9
  export declare function iterateTar(buf: Buffer): Generator<TarEntry>;
10
10
  export declare function readFileFromTar(buf: Buffer, filePath: string): Buffer | null;
11
- export declare function extractTar(buf: Buffer, dest: string): string[];
11
+ export type ProgressCallback = (current: number, total: number, name: string) => void;
12
+ export declare function safeTargetPath(root: string, entryName: string): string;
13
+ export declare function extractTar(buf: Buffer, dest: string, onProgress?: ProgressCallback, noExtract?: string[], noUpgrade?: string[]): string[];
12
14
  export declare function listTarEntries(buf: Buffer): string[];
13
15
  //# sourceMappingURL=tar.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tar.d.ts","sourceRoot":"","sources":["../../src/core/tar.ts"],"names":[],"mappings":"AAwCA,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,wBAAiB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAC,QAAQ,CAAC,CAa5D;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAK5E;AAED,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAuB9D;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAIpD"}
1
+ {"version":3,"file":"tar.d.ts","sourceRoot":"","sources":["../../src/core/tar.ts"],"names":[],"mappings":"AAwCA,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,wBAAiB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAC,QAAQ,CAAC,CAa5D;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAK5E;AAED,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;AActF,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CA4BtE;AASD,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,gBAAgB,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CA4CzI;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAIpD"}
package/dist/core/tar.js CHANGED
@@ -35,6 +35,7 @@ var __importStar = (this && this.__importStar) || (function () {
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
36
  exports.iterateTar = iterateTar;
37
37
  exports.readFileFromTar = readFileFromTar;
38
+ exports.safeTargetPath = safeTargetPath;
38
39
  exports.extractTar = extractTar;
39
40
  exports.listTarEntries = listTarEntries;
40
41
  const fs = __importStar(require("node:fs"));
@@ -90,9 +91,66 @@ function readFileFromTar(buf, filePath) {
90
91
  }
91
92
  return null;
92
93
  }
93
- function extractTar(buf, dest) {
94
+ function matchGlob(pattern, name) {
95
+ if (pattern === name || pattern === '/' + name)
96
+ return true;
97
+ if (pattern.endsWith('/*') && (name.startsWith(pattern.slice(0, -1)) || name.startsWith('/' + pattern.slice(0, -1))))
98
+ return true;
99
+ if (pattern.includes('*') || pattern.includes('?')) {
100
+ try {
101
+ const re = new RegExp('^' + pattern.replace(/\*/g, '.*').replace(/\?/g, '.') + '$');
102
+ return re.test(name) || re.test('/' + name);
103
+ }
104
+ catch {
105
+ return false;
106
+ }
107
+ }
108
+ return false;
109
+ }
110
+ function safeTargetPath(root, entryName) {
111
+ const base = path.resolve(root);
112
+ const normalizedName = entryName.replace(/^\.\//, '').replace(/^\/+/, '');
113
+ if (normalizedName.split(/[\\/]+/).includes('..')) {
114
+ throw new Error(`unsafe package path: ${entryName}`);
115
+ }
116
+ const target = path.resolve(base, normalizedName);
117
+ const inside = base === path.parse(base).root
118
+ ? target.startsWith(base)
119
+ : target.startsWith(base + path.sep);
120
+ if (target !== base && !inside) {
121
+ throw new Error(`unsafe package path: ${entryName}`);
122
+ }
123
+ // Existing symlinked parents could redirect a normal-looking path outside
124
+ // the package root before the file is written.
125
+ let current = path.dirname(target);
126
+ while (current !== base && (base === path.parse(base).root ? current.startsWith(base) : current.startsWith(base + path.sep))) {
127
+ const realCurrent = fs.existsSync(current) ? fs.realpathSync(current) : current;
128
+ const realInside = base === path.parse(base).root
129
+ ? realCurrent.startsWith(base)
130
+ : realCurrent.startsWith(base + path.sep);
131
+ if (realCurrent !== current && !realInside) {
132
+ throw new Error(`unsafe package parent path: ${entryName}`);
133
+ }
134
+ current = path.dirname(current);
135
+ }
136
+ return target;
137
+ }
138
+ function removeExistingPath(target) {
139
+ if (!fs.existsSync(target) && !fs.lstatSync(target, { throwIfNoEntry: false }))
140
+ return;
141
+ const stat = fs.lstatSync(target);
142
+ if (stat.isDirectory() && !stat.isSymbolicLink())
143
+ fs.rmSync(target, { recursive: true, force: true });
144
+ else
145
+ fs.unlinkSync(target);
146
+ }
147
+ function extractTar(buf, dest, onProgress, noExtract, noUpgrade) {
94
148
  const extracted = [];
95
- for (const entry of iterateTar(buf)) {
149
+ const base = path.resolve(dest);
150
+ const entries = [...iterateTar(buf)];
151
+ const total = entries.length;
152
+ for (let i = 0; i < total; i++) {
153
+ const entry = entries[i];
96
154
  let targetPath = entry.name;
97
155
  if (targetPath.startsWith('./'))
98
156
  targetPath = targetPath.slice(2);
@@ -100,24 +158,42 @@ function extractTar(buf, dest) {
100
158
  targetPath = targetPath.slice(1);
101
159
  if (!targetPath)
102
160
  continue;
103
- const fullPath = path.resolve(dest, targetPath);
104
- if (!fullPath.startsWith(path.resolve(dest)))
105
- continue;
161
+ const fullPath = safeTargetPath(dest, targetPath);
106
162
  extracted.push(`/${targetPath}`);
163
+ onProgress?.(i + 1, total, targetPath);
164
+ if (noExtract?.some(p => matchGlob(p, targetPath)))
165
+ continue;
107
166
  if (entry.type === 'directory') {
167
+ if (fs.existsSync(fullPath) && fs.lstatSync(fullPath).isSymbolicLink())
168
+ removeExistingPath(fullPath);
108
169
  fs.mkdirSync(fullPath, { recursive: true, mode: entry.mode || 0o755 });
109
170
  }
110
171
  else if (entry.type === 'file') {
111
172
  fs.mkdirSync(path.dirname(fullPath), { recursive: true });
112
- if (entry.data)
113
- fs.writeFileSync(fullPath, entry.data, { mode: entry.mode || 0o644 });
173
+ if (noUpgrade?.some(p => matchGlob(p, targetPath)) && fs.existsSync(fullPath)) {
174
+ const bak = fullPath + '.pacnew';
175
+ if (entry.data)
176
+ fs.writeFileSync(bak, entry.data, { mode: entry.mode || 0o644 });
177
+ }
178
+ else {
179
+ if (fs.existsSync(fullPath) && fs.lstatSync(fullPath).isSymbolicLink())
180
+ removeExistingPath(fullPath);
181
+ if (entry.data)
182
+ fs.writeFileSync(fullPath, entry.data, { mode: entry.mode || 0o644 });
183
+ }
114
184
  }
115
185
  else if (entry.type === 'symlink') {
116
- fs.mkdirSync(path.dirname(fullPath), { recursive: true });
117
- try {
118
- fs.unlinkSync(fullPath);
186
+ if (path.isAbsolute(entry.linkname) || entry.linkname.split(/[\\/]+/).includes('..')) {
187
+ throw new Error(`unsafe package symlink: ${entry.name} -> ${entry.linkname}`);
119
188
  }
120
- catch { }
189
+ const resolvedLink = path.resolve(path.dirname(fullPath), entry.linkname);
190
+ const linkInside = base === path.parse(base).root
191
+ ? resolvedLink.startsWith(base)
192
+ : resolvedLink.startsWith(base + path.sep);
193
+ if (!linkInside)
194
+ throw new Error(`unsafe package symlink: ${entry.name} -> ${entry.linkname}`);
195
+ fs.mkdirSync(path.dirname(fullPath), { recursive: true });
196
+ removeExistingPath(fullPath);
121
197
  fs.symlinkSync(entry.linkname, fullPath);
122
198
  }
123
199
  }
@@ -1 +1 @@
1
- {"version":3,"file":"tar.js","sourceRoot":"","sources":["../../src/core/tar.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tar.js","sourceRoot":"","sources":["../../src/core/tar.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiDA,gCAaC;AAED,0CAKC;AAgBD,wCA4BC;AASD,gCA4CC;AAED,wCAIC;AA5KD,4CAA8B;AAC9B,gDAAkC;AAUlC,SAAS,UAAU,CAAC,GAAW,EAAE,KAAa,EAAE,GAAW;IACzD,MAAM,GAAG,GAAG,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,GAAG,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACxF,OAAO,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;AAC/B,CAAC;AAED,SAAS,IAAI,CAAC,CAAS;IACrB,OAAO,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;AACrC,CAAC;AAED,SAAS,UAAU,CAAC,GAAW;IAC7B,IAAI,GAAG,CAAC,MAAM,GAAG,GAAG;QAAE,OAAO,IAAI,CAAC;IAClC,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IAE1D,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;IACzD,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;IAC7D,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;IACrC,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;IACtC,MAAM,QAAQ,GAAG,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;IAC/C,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;IAC/D,MAAM,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IAErD,IAAI,IAAI,GAAiD,SAAS,CAAC;IACnE,IAAI,QAAQ,KAAK,GAAG,IAAI,QAAQ,KAAK,IAAI;QAAE,IAAI,GAAG,MAAM,CAAC;SACpD,IAAI,QAAQ,KAAK,GAAG;QAAE,IAAI,GAAG,WAAW,CAAC;SACzC,IAAI,QAAQ,KAAK,GAAG;QAAE,IAAI,GAAG,SAAS,CAAC;IAE5C,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;AACxD,CAAC;AAWD,QAAe,CAAC,CAAC,UAAU,CAAC,GAAW;IACrC,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,OAAO,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC;QAC3B,IAAI,MAAM,GAAG,GAAG,GAAG,GAAG,CAAC,MAAM;YAAE,MAAM;QACrC,MAAM,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;QAC7C,IAAI,CAAC,GAAG;YAAE,MAAM;QAChB,MAAM,IAAI,GAAG,CAAC;QACd,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC;QACnD,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,KAAK,MAAM,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC;YAC9C,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACnD,MAAM,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC;QACvG,MAAM,IAAI,UAAU,CAAC;IACvB,CAAC;AACH,CAAC;AAED,SAAgB,eAAe,CAAC,GAAW,EAAE,QAAgB;IAC3D,KAAK,MAAM,KAAK,IAAI,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACpC,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI;YAAE,OAAO,KAAK,CAAC,IAAI,CAAC;IAC/D,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAID,SAAS,SAAS,CAAC,OAAe,EAAE,IAAY;IAC9C,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,GAAG,GAAG,IAAI;QAAE,OAAO,IAAI,CAAC;IAC5D,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IAClI,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACnD,IAAI,CAAC;YACH,MAAM,EAAE,GAAG,IAAI,MAAM,CAAC,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC;YACpF,OAAO,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC;QAC9C,CAAC;QAAC,MAAM,CAAC;YAAC,OAAO,KAAK,CAAC;QAAC,CAAC;IAC3B,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAgB,cAAc,CAAC,IAAY,EAAE,SAAiB;IAC5D,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAChC,MAAM,cAAc,GAAG,SAAS,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAC1E,IAAI,cAAc,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QAClD,MAAM,IAAI,KAAK,CAAC,wBAAwB,SAAS,EAAE,CAAC,CAAC;IACvD,CAAC;IACD,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;IAClD,MAAM,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI;QAC3C,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC;QACzB,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;IACvC,IAAI,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QAC/B,MAAM,IAAI,KAAK,CAAC,wBAAwB,SAAS,EAAE,CAAC,CAAC;IACvD,CAAC;IAED,0EAA0E;IAC1E,+CAA+C;IAC/C,IAAI,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACnC,OAAO,OAAO,KAAK,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;QAC7H,MAAM,WAAW,GAAG,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;QAChF,MAAM,UAAU,GAAG,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI;YAC/C,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC;YAC9B,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;QAC5C,IAAI,WAAW,KAAK,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC;YAC3C,MAAM,IAAI,KAAK,CAAC,+BAA+B,SAAS,EAAE,CAAC,CAAC;QAC9D,CAAC;QACD,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAClC,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,kBAAkB,CAAC,MAAc;IACxC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC;QAAE,OAAO;IACvF,MAAM,IAAI,GAAG,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAClC,IAAI,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;QAAE,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;;QACjG,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;AAC7B,CAAC;AAED,SAAgB,UAAU,CAAC,GAAW,EAAE,IAAY,EAAE,UAA6B,EAAE,SAAoB,EAAE,SAAoB;IAC7H,MAAM,SAAS,GAAa,EAAE,CAAC;IAC/B,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAChC,MAAM,OAAO,GAAG,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;IACrC,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC;IAC7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;QAC/B,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QACzB,IAAI,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC;QAC5B,IAAI,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC;YAAE,UAAU,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAClE,IAAI,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,UAAU,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACjE,IAAI,CAAC,UAAU;YAAE,SAAS;QAC1B,MAAM,QAAQ,GAAG,cAAc,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QAClD,SAAS,CAAC,IAAI,CAAC,IAAI,UAAU,EAAE,CAAC,CAAC;QACjC,UAAU,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;QAEvC,IAAI,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;YAAE,SAAS;QAE7D,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;YAC/B,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,cAAc,EAAE;gBAAE,kBAAkB,CAAC,QAAQ,CAAC,CAAC;YACrG,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,KAAK,EAAE,CAAC,CAAC;QACzE,CAAC;aAAM,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YACjC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAC1D,IAAI,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC9E,MAAM,GAAG,GAAG,QAAQ,GAAG,SAAS,CAAC;gBACjC,IAAI,KAAK,CAAC,IAAI;oBAAE,EAAE,CAAC,aAAa,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,KAAK,EAAE,CAAC,CAAC;YACnF,CAAC;iBAAM,CAAC;gBACN,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,cAAc,EAAE;oBAAE,kBAAkB,CAAC,QAAQ,CAAC,CAAC;gBACrG,IAAI,KAAK,CAAC,IAAI;oBAAE,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,KAAK,EAAE,CAAC,CAAC;YACxF,CAAC;QACH,CAAC;aAAM,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YACpC,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;gBACrF,MAAM,IAAI,KAAK,CAAC,2BAA2B,KAAK,CAAC,IAAI,OAAO,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;YAChF,CAAC;YACD,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;YAC1E,MAAM,UAAU,GAAG,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI;gBAC/C,CAAC,CAAC,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC;gBAC/B,CAAC,CAAC,YAAY,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;YAC7C,IAAI,CAAC,UAAU;gBAAE,MAAM,IAAI,KAAK,CAAC,2BAA2B,KAAK,CAAC,IAAI,OAAO,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;YAC/F,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAC1D,kBAAkB,CAAC,QAAQ,CAAC,CAAC;YAC7B,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAgB,cAAc,CAAC,GAAW;IACxC,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,MAAM,KAAK,IAAI,UAAU,CAAC,GAAG,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC5D,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -30,6 +30,9 @@ export interface InstalledPackage {
30
30
  conflicts?: string;
31
31
  provides?: string;
32
32
  maintainer?: string;
33
+ license?: string;
34
+ pkgbase?: string;
35
+ buildDate?: number;
33
36
  homepage?: string;
34
37
  controlSection?: string;
35
38
  controlPriority?: string;
@@ -38,6 +41,7 @@ export interface InstalledPackage {
38
41
  reason: 'explicit' | 'dependency';
39
42
  files: string[];
40
43
  repoType?: 'debian' | 'arch' | 'link';
44
+ repo?: string;
41
45
  }
42
46
  export interface RepoPkg {
43
47
  package: string;
@@ -67,7 +71,20 @@ export interface Config {
67
71
  architecture: string;
68
72
  color: boolean;
69
73
  parallelDownloads: number;
74
+ xferCommand?: string;
75
+ checkSpace: boolean;
76
+ ignorePkg: string[];
77
+ ignoreGroup: string[];
78
+ noUpgrade: string[];
79
+ noExtract: string[];
80
+ verbosePkgLists: boolean;
81
+ cleanMethod: 'KeepInstalled' | 'KeepCurrent';
82
+ dbPath: string;
83
+ cacheDir: string;
84
+ logFile: string;
85
+ rootDir: string;
70
86
  repos: RepoConfig[];
87
+ notFindDepsFromCurrentRepo: boolean;
71
88
  }
72
89
  export interface Database {
73
90
  packages: Map<string, InstalledPackage>;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"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"}
@@ -14,6 +14,9 @@ export interface DpkgEntry {
14
14
  }
15
15
  export declare function readDpkgStatus(): Map<string, DpkgEntry>;
16
16
  export declare function dpkgHasPackage(name: string): boolean;
17
- export declare function writeDpkgEntry(pkg: InstalledPackage): void;
18
- export declare function removeDpkgEntry(name: string): void;
17
+ export declare function writeDpkgEntry(pkg: InstalledPackage): Promise<void>;
18
+ export declare function removeDpkgEntry(name: string): Promise<void>;
19
+ /** Rewrite dpkg entries for all pacman-debian-managed Arch packages,
20
+ * translating dependency names through paclinks so apt doesn't break. */
21
+ export declare function rewriteArchDpkgEntries(): Promise<void>;
19
22
  //# sourceMappingURL=dpkg-compat.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"dpkg-compat.d.ts","sourceRoot":"","sources":["../../src/db/dpkg-compat.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAKtD,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAKD,wBAAgB,cAAc,IAAI,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CA0BvD;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEpD;AAoBD,wBAAgB,cAAc,CAAC,GAAG,EAAE,gBAAgB,GAAG,IAAI,CA4C1D;AAYD,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAclD"}
1
+ {"version":3,"file":"dpkg-compat.d.ts","sourceRoot":"","sources":["../../src/db/dpkg-compat.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAKtD,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAKD,wBAAgB,cAAc,IAAI,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CA0BvD;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEpD;AAoBD,wBAAsB,cAAc,CAAC,GAAG,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CA6FzE;AAYD,wBAAsB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAiBjE;AAED;0EAC0E;AAC1E,wBAAsB,sBAAsB,IAAI,OAAO,CAAC,IAAI,CAAC,CAM5D"}
@@ -37,8 +37,11 @@ exports.readDpkgStatus = readDpkgStatus;
37
37
  exports.dpkgHasPackage = dpkgHasPackage;
38
38
  exports.writeDpkgEntry = writeDpkgEntry;
39
39
  exports.removeDpkgEntry = removeDpkgEntry;
40
+ exports.rewriteArchDpkgEntries = rewriteArchDpkgEntries;
40
41
  const fs = __importStar(require("node:fs"));
41
42
  const control_1 = require("../core/control");
43
+ const paclinks_1 = require("../core/paclinks");
44
+ const dpkg_lock_1 = require("../lock/dpkg-lock");
42
45
  const DPKG_STATUS = '/var/lib/dpkg/status';
43
46
  const DPKG_INFO = '/var/lib/dpkg/info';
44
47
  /* ---- In-memory cache with mtime check ---- */
@@ -94,72 +97,142 @@ function formatDescription(desc) {
94
97
  const rest = lines.slice(1).map(l => ' ' + l).join('\n');
95
98
  return `Description: ${first}\n${rest}`;
96
99
  }
97
- function writeDpkgEntry(pkg) {
100
+ async function writeDpkgEntry(pkg) {
98
101
  if (!fs.existsSync(DPKG_STATUS))
99
102
  return;
100
- const content = fs.readFileSync(DPKG_STATUS, 'utf8');
101
- const entries = content.split('\n\n').filter((e) => e.trim() !== '');
102
- let kept = entries.filter((e) => {
103
- const m = e.match(/^Package: (.+)$/m);
104
- return !(m && m[1] === pkg.name);
105
- });
106
- const entry = [
107
- `Package: ${pkg.name}`,
108
- `Status: install ok installed`,
109
- `Priority: ${pkg.controlPriority || 'optional'}`,
110
- `Section: ${pkg.controlSection || 'misc'}`,
111
- `Installed-Size: ${pkg.installedSize || 0}`,
112
- `Maintainer: ${pkg.maintainer || 'Unknown'}`,
113
- `Architecture: ${toDpkgArch(pkg.architecture)}`,
114
- `Version: ${pkg.version}`,
115
- ];
116
- if (pkg.depends)
117
- entry.push(`Depends: ${pkg.depends}`);
118
- entry.push(formatDescription(pkg.description));
119
- if (pkg.homepage)
120
- entry.push(`Homepage: ${pkg.homepage}`);
121
- kept = kept.filter((e) => e.trim() !== '');
122
- kept.push(entry.join('\n'));
123
- fs.writeFileSync(DPKG_STATUS, kept.join('\n\n') + '\n');
124
- _dpkgCache = null; // invalidate cache
125
- if (fs.existsSync(DPKG_INFO)) {
126
- const lp = `${DPKG_INFO}/${pkg.name}.list`;
127
- const files = pkg.files.length > 0
128
- ? pkg.files
129
- : (pkg.depends && /^[a-z]/.test(pkg.depends)
130
- ? loadFilesFromDpkg(pkg.depends.split(',')[0].trim().split(/\s/)[0])
131
- : []);
132
- const existing = fs.existsSync(lp)
133
- ? fs.readFileSync(lp, 'utf8').split('\n').filter(Boolean)
134
- : [];
135
- fs.writeFileSync(lp, [...new Set([...existing, ...files])].sort().join('\n') + '\n');
103
+ await (0, dpkg_lock_1.acquireDpkgLock)();
104
+ try {
105
+ // Skip packages whose architecture doesn't match the system — they'd cause
106
+ // multiarch conflicts in dpkg (e.g. lib32-*:amd64 on aarch64).
107
+ const pkgArch = toDpkgArch(pkg.architecture);
108
+ const sysArch = process.arch === 'arm64' ? 'aarch64' : process.arch;
109
+ const sysDpkgArch = toDpkgArch(sysArch);
110
+ const archMismatch = pkgArch !== sysDpkgArch;
111
+ const content = fs.readFileSync(DPKG_STATUS, 'utf8');
112
+ const entries = content.split('\n\n').filter((e) => e.trim() !== '');
113
+ let kept = entries.filter((e) => {
114
+ const m = e.match(/^Package: (.+)$/m);
115
+ return !(m && m[1] === pkg.name);
116
+ });
117
+ // Strip :arch qualifiers from deps when package arch doesn't match system
118
+ // (otherwise dpkg would try to resolve libfreetype6:amd64 on aarch64)
119
+ let translateDep;
120
+ {
121
+ const paclinks = (0, paclinks_1.readPaclinks)();
122
+ const virtMap = new Map(paclinks.map(e => [e.virt.toLowerCase(), e.deb]));
123
+ const debSet = new Set(paclinks.map(e => e.deb.toLowerCase()));
124
+ translateDep = (dep) => {
125
+ const trimmed = dep.trim();
126
+ const noArch = archMismatch ? trimmed.replace(/:[\w.]+/g, '') : trimmed;
127
+ const name = noArch.split(/[<>=]/)[0].trim().toLowerCase();
128
+ // Drop deps with wrong arch
129
+ if (!archMismatch) {
130
+ const a = trimmed.match(/:([\w.]+)$/);
131
+ if (a && a[1] !== sysDpkgArch)
132
+ return '';
133
+ }
134
+ const mapped = virtMap.get(name);
135
+ if (mapped)
136
+ return noArch.replace(/^[^<>=]+/, mapped);
137
+ if (debSet.has(name))
138
+ return noArch;
139
+ if (name.endsWith('.so') || /^lib/.test(name) || name.endsWith('common') || name === 'sh')
140
+ return '';
141
+ return noArch;
142
+ };
143
+ }
144
+ let depends = '';
145
+ if (pkg.depends) {
146
+ depends = pkg.depends.split(',').map(d => translateDep(d.trim())).filter(Boolean).join(', ');
147
+ }
148
+ const entry = [
149
+ `Package: ${pkg.name}`,
150
+ `Status: install ok installed`,
151
+ `Priority: ${pkg.controlPriority || 'optional'}`,
152
+ `Section: ${pkg.controlSection || 'misc'}`,
153
+ `Installed-Size: ${pkg.installedSize || 0}`,
154
+ `Maintainer: ${pkg.maintainer || 'Unknown'}`,
155
+ `Architecture: ${archMismatch ? sysDpkgArch : pkgArch}`,
156
+ `Version: ${pkg.version}`,
157
+ ];
158
+ if (depends)
159
+ entry.push(`Depends: ${depends}`);
160
+ if (pkg.license)
161
+ entry.push(`License: ${pkg.license}`);
162
+ if (pkg.pkgbase)
163
+ entry.push(`X-Pacman-Base: ${pkg.pkgbase}`);
164
+ if (pkg.buildDate)
165
+ entry.push(`X-Pacman-Build-Date: ${pkg.buildDate}`);
166
+ entry.push(formatDescription(pkg.description));
167
+ if (pkg.homepage)
168
+ entry.push(`Homepage: ${pkg.homepage}`);
169
+ kept = kept.filter((e) => e.trim() !== '');
170
+ kept.push(entry.join('\n'));
171
+ fs.writeFileSync(DPKG_STATUS, kept.join('\n\n') + '\n');
172
+ _dpkgCache = null; // invalidate cache
173
+ if (fs.existsSync(DPKG_INFO)) {
174
+ const lp = `${DPKG_INFO}/${pkg.name}.list`;
175
+ const files = pkg.files.length > 0
176
+ ? pkg.files.filter(f => f && f.trim())
177
+ : (pkg.depends && /^[a-z]/.test(pkg.depends)
178
+ ? loadFilesFromDpkg(pkg.depends.split(',')[0].trim().split(/\s/)[0])
179
+ : []);
180
+ const existing = fs.existsSync(lp)
181
+ ? fs.readFileSync(lp, 'utf8').split('\n').filter(Boolean)
182
+ : [];
183
+ const merged = [...new Set([...existing, ...files])].sort();
184
+ if (merged.length > 0) {
185
+ fs.writeFileSync(lp, merged.join('\n') + '\n');
186
+ }
187
+ else if (fs.existsSync(lp)) {
188
+ fs.unlinkSync(lp);
189
+ }
190
+ }
191
+ }
192
+ finally {
193
+ (0, dpkg_lock_1.releaseDpkgLock)();
136
194
  }
137
195
  }
138
196
  function loadFilesFromDpkg(name) {
197
+ const listFile = `/var/lib/dpkg/info/${name}.list`;
139
198
  try {
140
- const { execSync } = require('node:child_process');
141
- const out = execSync(`dpkg -L ${name} 2>/dev/null`, { encoding: 'utf8', timeout: 5000 });
142
- return out.trim().split('\n').filter(Boolean);
143
- }
144
- catch {
145
- return [];
199
+ if (fs.existsSync(listFile)) {
200
+ return fs.readFileSync(listFile, 'utf8').split('\n').filter(Boolean);
201
+ }
146
202
  }
203
+ catch { }
204
+ return [];
147
205
  }
148
- function removeDpkgEntry(name) {
206
+ async function removeDpkgEntry(name) {
149
207
  if (!fs.existsSync(DPKG_STATUS))
150
208
  return;
151
- const content = fs.readFileSync(DPKG_STATUS, 'utf8');
152
- const entries = content.split('\n\n').filter((e) => e.trim() !== '');
153
- const kept = entries.filter((e) => {
154
- const m = e.match(/^Package: (.+)$/m);
155
- if (m && m[1] === name)
156
- return false;
157
- return true;
158
- });
159
- fs.writeFileSync(DPKG_STATUS, kept.join('\n\n') + '\n');
160
- _dpkgCache = null;
161
- const lp = `${DPKG_INFO}/${name}.list`;
162
- if (fs.existsSync(lp))
163
- fs.unlinkSync(lp);
209
+ await (0, dpkg_lock_1.acquireDpkgLock)();
210
+ try {
211
+ const content = fs.readFileSync(DPKG_STATUS, 'utf8');
212
+ const entries = content.split('\n\n').filter((e) => e.trim() !== '');
213
+ const kept = entries.filter((e) => {
214
+ const m = e.match(/^Package: (.+)$/m);
215
+ if (m && m[1] === name)
216
+ return false;
217
+ return true;
218
+ });
219
+ fs.writeFileSync(DPKG_STATUS, kept.join('\n\n') + '\n');
220
+ _dpkgCache = null;
221
+ const lp = `${DPKG_INFO}/${name}.list`;
222
+ if (fs.existsSync(lp))
223
+ fs.unlinkSync(lp);
224
+ }
225
+ finally {
226
+ (0, dpkg_lock_1.releaseDpkgLock)();
227
+ }
228
+ }
229
+ /** Rewrite dpkg entries for all pacman-debian-managed Arch packages,
230
+ * translating dependency names through paclinks so apt doesn't break. */
231
+ async function rewriteArchDpkgEntries() {
232
+ const { getAllPackages } = require('./localdb');
233
+ const pkgs = getAllPackages().filter((p) => p.repoType === 'arch');
234
+ for (const p of pkgs) {
235
+ await writeDpkgEntry(p);
236
+ }
164
237
  }
165
238
  //# sourceMappingURL=dpkg-compat.js.map