From 262f3c3e8081d57b058799d336a51c1a11c8d804 Mon Sep 17 00:00:00 2001 From: Max Howell Date: Sun, 19 Jan 2025 19:25:06 -0500 Subject: [PATCH 1/5] Only symlink posix prefixes Fixes #13 --- .github/workflows/ci.yml | 4 +++- pkgm.ts | 33 ++++++++++++++++++++------------- 2 files changed, 23 insertions(+), 14 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 2e9b339..5dd9316 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -28,8 +28,10 @@ jobs: - uses: actions/checkout@v4 - uses: pkgxdev/setup@v3 - run: ./pkgm.ts i git - - run: /usr/local/bin/git --version - run: ./pkgm.ts i pkgx.sh/brewkit - run: /usr/local/bin/bk --help + + - run: ./pkgm.ts i xpra.org # https://github.com/pkgxdev/pkgm/issues/13 + - run: xpra --version diff --git a/pkgm.ts b/pkgm.ts index 8724230..b9e2662 100755 --- a/pkgm.ts +++ b/pkgm.ts @@ -148,25 +148,27 @@ async function sudo_install( ) { const dst = "/usr/local"; for (const pkg_prefix of pkg_prefixes) { - if (pkg_prefix == "pkgx.sh") { - // don’t overwrite ourselves - // * https://github.com/pkgxdev/pkgm/issues/14 - // * https://github.com/pkgxdev/pkgm/issues/17 - continue; - } // create /usr/local/pkgs/${prefix} - await mirror_directory("/usr/local/pkgs", pkgx_dir, pkg_prefix); + await mirror_directory(join(dst, "pkgs"), pkgx_dir, pkg_prefix); // symlink /usr/local/pkgs/${prefix} to /usr/local - await symlink(join("/usr/local/pkgs", pkg_prefix), dst); + if (!pkg_prefix.startsWith("pkgx.sh/v")) { + console.log(pkg_prefix); + // ^^ don’t overwrite ourselves + // ^^ * https://github.com/pkgxdev/pkgm/issues/14 + // ^^ * https://github.com/pkgxdev/pkgm/issues/17 + await symlink(join(dst, "pkgs", pkg_prefix), dst); + } // create v1, etc. symlinks - await create_v_symlinks(join("/usr/local/pkgs", pkg_prefix)); + await create_v_symlinks(join(dst, "pkgs", pkg_prefix)); } for (const [project, env] of Object.entries(runtime_env)) { + if (project == "pkgx.sh") continue; + const pkg_prefix = pkg_prefixes.find((x) => x.startsWith(project))!; - if (pkg_prefix == "pkgx.sh") { - continue; - } + + if (!pkg_prefix) continue; //FIXME wtf? + for (const bin of ["bin", "sbin"]) { const bin_prefix = join("/usr/local/pkgs", pkg_prefix, bin); @@ -221,7 +223,12 @@ async function mirror_directory(dst: string, src: string, prefix: string) { } async function symlink(src: string, dst: string) { - await processEntry(src, dst); + for (const base of ["bin", "sbin", "share", "lib", "libexec", "var", "etc"]) { + const foo = join(src, base); + if (existsSync(foo)) { + await processEntry(foo, join(dst, base)); + } + } async function processEntry(sourcePath: string, targetPath: string) { const fileInfo = await Deno.lstat(sourcePath); From df78e3882787a882f19c0a76440c9f8e5b0c90f9 Mon Sep 17 00:00:00 2001 From: Max Howell Date: Thu, 23 Jan 2025 10:01:11 -0500 Subject: [PATCH 2/5] wip --- .github/workflows/ci.yml | 1 + pkgm.ts | 1 - 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 5dd9316..6014a86 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -34,4 +34,5 @@ jobs: - run: /usr/local/bin/bk --help - run: ./pkgm.ts i xpra.org # https://github.com/pkgxdev/pkgm/issues/13 + - run: ls -la /usr/local/pkgs/xpra.org/v6.2.3/venv/bin - run: xpra --version diff --git a/pkgm.ts b/pkgm.ts index b9e2662..3d82468 100755 --- a/pkgm.ts +++ b/pkgm.ts @@ -152,7 +152,6 @@ async function sudo_install( await mirror_directory(join(dst, "pkgs"), pkgx_dir, pkg_prefix); // symlink /usr/local/pkgs/${prefix} to /usr/local if (!pkg_prefix.startsWith("pkgx.sh/v")) { - console.log(pkg_prefix); // ^^ don’t overwrite ourselves // ^^ * https://github.com/pkgxdev/pkgm/issues/14 // ^^ * https://github.com/pkgxdev/pkgm/issues/17 From 3d5411330026ace29825ccd148391e45c71d3ead Mon Sep 17 00:00:00 2001 From: Max Howell Date: Thu, 23 Jan 2025 10:37:00 -0500 Subject: [PATCH 3/5] wip --- .github/workflows/ci.yml | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 6014a86..4af9cac 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -33,6 +33,12 @@ jobs: - run: ./pkgm.ts i pkgx.sh/brewkit - run: /usr/local/bin/bk --help - - run: ./pkgm.ts i xpra.org # https://github.com/pkgxdev/pkgm/issues/13 - - run: ls -la /usr/local/pkgs/xpra.org/v6.2.3/venv/bin - - run: xpra --version + - run: | + if ["$(/usr/local/bin/pkgx --version)" != "pkgx 2"* ]; then + exit 1 + fi + + # TODO pending: https://github.com/pkgxdev/pantry/issues/8487 + # - run: ./pkgm.ts i xpra.org # https://github.com/pkgxdev/pkgm/issues/13 + # - run: ls -la /usr/local/pkgs/xpra.org/v6.2.3/venv/bin + # - run: xpra --version From ec77f541690d6ff445247caf6f28a3871c1bab00 Mon Sep 17 00:00:00 2001 From: Max Howell Date: Thu, 23 Jan 2025 10:40:06 -0500 Subject: [PATCH 4/5] wip --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 4af9cac..5c8c04c 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -34,7 +34,7 @@ jobs: - run: /usr/local/bin/bk --help - run: | - if ["$(/usr/local/bin/pkgx --version)" != "pkgx 2"* ]; then + if [ "$(/usr/local/bin/pkgx --version)" != "pkgx 2"* ]; then exit 1 fi From 66a15964afa51b57ddb49cab580628db520e26a9 Mon Sep 17 00:00:00 2001 From: Max Howell Date: Thu, 23 Jan 2025 10:43:13 -0500 Subject: [PATCH 5/5] wip --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 5c8c04c..79fe932 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -34,7 +34,7 @@ jobs: - run: /usr/local/bin/bk --help - run: | - if [ "$(/usr/local/bin/pkgx --version)" != "pkgx 2"* ]; then + if [[ "$(/usr/local/bin/pkgx --version)" != "pkgx 2"* ]]; then exit 1 fi