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.
- package/README.md +12 -0
- package/README_zh-CN.md +11 -0
- package/dist/cli/archlinux-java.js +36 -12
- package/dist/cli/archlinux-java.js.map +1 -1
- package/dist/cli/paclink.js +84 -0
- package/dist/cli/paclink.js.map +1 -1
- package/dist/cli/pacman.d.ts.map +1 -1
- package/dist/cli/pacman.js +66 -11
- package/dist/cli/pacman.js.map +1 -1
- package/dist/cli/pactree.d.ts +3 -0
- package/dist/cli/pactree.d.ts.map +1 -0
- package/dist/cli/pactree.js +216 -0
- package/dist/cli/pactree.js.map +1 -0
- package/dist/core/deps.d.ts +7 -0
- package/dist/core/deps.d.ts.map +1 -1
- package/dist/core/deps.js +104 -24
- package/dist/core/deps.js.map +1 -1
- package/dist/core/logger.d.ts +7 -0
- package/dist/core/logger.d.ts.map +1 -0
- package/dist/core/logger.js +93 -0
- package/dist/core/logger.js.map +1 -0
- package/dist/core/options.d.ts +2 -0
- package/dist/core/options.d.ts.map +1 -1
- package/dist/core/paclinks.d.ts +9 -0
- package/dist/core/paclinks.d.ts.map +1 -0
- package/dist/core/paclinks.js +69 -0
- package/dist/core/paclinks.js.map +1 -0
- package/dist/core/pkgfile.d.ts +2 -0
- package/dist/core/pkgfile.d.ts.map +1 -1
- package/dist/core/pkgfile.js +6 -0
- package/dist/core/pkgfile.js.map +1 -1
- package/dist/core/tar.d.ts +3 -1
- package/dist/core/tar.d.ts.map +1 -1
- package/dist/core/tar.js +87 -11
- package/dist/core/tar.js.map +1 -1
- package/dist/core/types.d.ts +17 -0
- package/dist/core/types.d.ts.map +1 -1
- package/dist/db/dpkg-compat.d.ts +5 -2
- package/dist/db/dpkg-compat.d.ts.map +1 -1
- package/dist/db/dpkg-compat.js +130 -57
- package/dist/db/dpkg-compat.js.map +1 -1
- package/dist/db/localdb.d.ts.map +1 -1
- package/dist/db/localdb.js +21 -2
- package/dist/db/localdb.js.map +1 -1
- package/dist/debug-upgrade.d.ts +2 -0
- package/dist/debug-upgrade.d.ts.map +1 -0
- package/dist/debug-upgrade.js +140 -0
- package/dist/debug-upgrade.js.map +1 -0
- package/dist/i18n/en.json +2 -0
- package/dist/i18n/paclink/en.d.ts.map +1 -1
- package/dist/i18n/paclink/en.js +7 -0
- package/dist/i18n/paclink/en.js.map +1 -1
- package/dist/i18n/paclink/zh-CN.d.ts.map +1 -1
- package/dist/i18n/paclink/zh-CN.js +7 -0
- package/dist/i18n/paclink/zh-CN.js.map +1 -1
- package/dist/i18n/zh-CN.json +2 -0
- package/dist/lock/dpkg-helper +0 -0
- package/dist/lock/dpkg-lock.d.ts +5 -0
- package/dist/lock/dpkg-lock.d.ts.map +1 -0
- package/dist/lock/dpkg-lock.js +113 -0
- package/dist/lock/dpkg-lock.js.map +1 -0
- package/dist/makepkg/build.d.ts.map +1 -1
- package/dist/makepkg/build.js +3 -5
- package/dist/makepkg/build.js.map +1 -1
- package/dist/makepkg/pkgbuild.d.ts.map +1 -1
- package/dist/makepkg/pkgbuild.js +109 -53
- package/dist/makepkg/pkgbuild.js.map +1 -1
- package/dist/ops/install.d.ts +2 -1
- package/dist/ops/install.d.ts.map +1 -1
- package/dist/ops/install.js +290 -157
- package/dist/ops/install.js.map +1 -1
- package/dist/ops/query.d.ts.map +1 -1
- package/dist/ops/query.js +62 -35
- package/dist/ops/query.js.map +1 -1
- package/dist/ops/remove.d.ts.map +1 -1
- package/dist/ops/remove.js +106 -60
- package/dist/ops/remove.js.map +1 -1
- package/dist/ops/upgrade.d.ts.map +1 -1
- package/dist/ops/upgrade.js +71 -13
- package/dist/ops/upgrade.js.map +1 -1
- package/dist/repo/config.d.ts.map +1 -1
- package/dist/repo/config.js +60 -6
- package/dist/repo/config.js.map +1 -1
- package/dist/repo/repository.d.ts +6 -0
- package/dist/repo/repository.d.ts.map +1 -1
- package/dist/repo/repository.js +348 -49
- package/dist/repo/repository.js.map +1 -1
- package/dist/scripts/setup.js +27 -77
- package/dist/scripts/setup.js.map +1 -1
- package/docs/en/architecture.md +109 -45
- package/docs/en/pactree.md +42 -0
- package/docs/en/yay-aur.md +10 -6
- package/docs/zh-CN/pactree.md +41 -0
- package/lib/pac4deb/include/alpm.h +2 -1
- package/lib/pac4deb/src/libalpm.c +116 -54
- package/lib/pac4deb/src/stubs_manual.c +11 -1
- package/package.json +4 -3
- package/resources/paclinks.conf +64 -0
- 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"}
|
package/dist/core/pkgfile.d.ts
CHANGED
|
@@ -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;
|
|
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"}
|
package/dist/core/pkgfile.js
CHANGED
|
@@ -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;
|
package/dist/core/pkgfile.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pkgfile.js","sourceRoot":"","sources":["../../src/core/pkgfile.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"pkgfile.js","sourceRoot":"","sources":["../../src/core/pkgfile.ts"],"names":[],"mappings":"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"}
|
package/dist/core/tar.d.ts
CHANGED
|
@@ -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
|
|
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
|
package/dist/core/tar.d.ts.map
CHANGED
|
@@ -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,
|
|
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
|
|
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
|
-
|
|
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 =
|
|
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 (
|
|
113
|
-
|
|
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
|
-
|
|
117
|
-
|
|
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
|
-
|
|
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
|
}
|
package/dist/core/tar.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tar.js","sourceRoot":"","sources":["../../src/core/tar.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiDA,gCAaC;AAED,0CAKC;
|
|
1
|
+
{"version":3,"file":"tar.js","sourceRoot":"","sources":["../../src/core/tar.ts"],"names":[],"mappings":"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"}
|
package/dist/core/types.d.ts
CHANGED
|
@@ -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>;
|
package/dist/core/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;CACnC;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,UAAU,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,UAAU,GAAG,YAAY,CAAC;IAClC,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,QAAQ,CAAC,EAAE,QAAQ,GAAG,MAAM,GAAG,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"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"}
|
package/dist/db/dpkg-compat.d.ts
CHANGED
|
@@ -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":"
|
|
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"}
|
package/dist/db/dpkg-compat.js
CHANGED
|
@@ -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
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
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
|
-
|
|
141
|
-
|
|
142
|
-
|
|
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
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
const
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
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
|