{"version":3,"file":"linux.js","sourceRoot":"","sources":["../../src/toolsets/linux.ts"],"names":[],"mappings":"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","sourcesContent":["import { Arch, exists, resolveEnvToolsetPath, use } from \"builder-util\"\nimport * as path from \"path\"\nimport { getBinFromUrl } from \"../binDownload\"\nimport { ToolsetConfig } from \"../configuration\"\nimport { downloadBuilderToolset } from \"../util/electronGet\"\n\nconst fpmChecksums = {\n  \"fpm-1.17.0-ruby-3.4.3-darwin-arm64.7z\": \"6cc6d4785875bc7d79bdf52ca146080a4c300e1d663376ae79615fb548030ede\",\n  \"fpm-1.17.0-ruby-3.4.3-darwin-x86_64.7z\": \"f7cb468c5e64177124c9d3a5f400ac20ffcb411aa5aa0ea224a808ff5a2d3bbf\",\n  \"fpm-1.17.0-ruby-3.4.3-linux-amd64.7z\": \"44b0ec6025c14ec137f56180e62675c0eae36233cdce53d0953d9c73ced8989f\",\n  \"fpm-1.17.0-ruby-3.4.3-linux-arm64v8.7z\": \"338b50cfa7f12d745a997d1a3d000bcd0410008050fa7d8c4476a78a61c0564e\",\n  \"fpm-1.17.0-ruby-3.4.3-linux-i386.7z\": \"181124e2e9856855c21229ea9096bb7006a9e3e712d133ce332597ba878cd7b6\",\n} as const\n\nexport const appimageChecksums = {\n  \"0.0.0\": {\n    \"appimage-12.0.1.7z\": \"d12ff7eb8f1d1ec4652ca5237a7fbdca33acc0c758045636feca62dc6ecb8ec4\",\n  },\n  \"1.0.2\": {\n    \"appimage-tools-runtime-20251108.tar.gz\": \"a784a8c26331ec2e945c23d6bdb14af5c9df27f5939825d84b8709c61dc81eb0\",\n  },\n  \"1.0.3\": {\n    \"appimage-tools-runtime-20251108.tar.gz\": \"84021a78ee214ae6fd33a2d62a92ba25542dd10bc86bf117a9b2d0bba44e7665\",\n  },\n} as const\n\n// no legacy toolset as macos arm64 BSD gtar/ar/lzip are not compatible with linux targets, so we always use newer toolset on macos for linux archives\nconst linuxToolsMacChecksums = {\n  \"linux-tools-mac-darwin-arm64.tar.gz\": \"204e76f08364352edb28a6a4be87e8f9bd9340213865d9a0d1c664aa46fcf053\",\n  \"linux-tools-mac-darwin-x86_64.tar.gz\": \"7ee26dfbd0d2a4c2c83b55a9416a30cc84876eef01c6497ca49bb016a190c726\",\n} as const\n\nexport async function getLinuxToolsPath(): Promise<string> {\n  const envPath = await resolveEnvToolsetPath(\"LINUX_TOOLS_MAC_PATH\", \"directory\")\n  if (envPath != null) {\n    return envPath\n  }\n  const arch = process.arch === \"arm64\" ? \"arm64\" : \"x86_64\"\n  const toolsetVersion = \"1.0.0\"\n  const filename: keyof typeof linuxToolsMacChecksums = `linux-tools-mac-darwin-${arch}.tar.gz`\n  return await downloadBuilderToolset({\n    releaseName: `linux-tools-mac@${toolsetVersion}`,\n    filenameWithExt: filename,\n    checksums: {\n      [filename]: linuxToolsMacChecksums[filename],\n    },\n    githubOrgRepo: \"electron-userland/electron-builder-binaries\",\n  })\n}\n\nexport async function getLinuxToolsMacToolset() {\n  const linuxToolsPath = await getLinuxToolsPath()\n  const bin = (pkg: string) => path.join(linuxToolsPath, \"bin\", pkg)\n  return {\n    ar: bin(\"ar\"),\n    lzip: bin(\"lzip\"),\n    gtar: bin(\"gtar\"),\n  }\n}\n\nexport async function getFpmPath() {\n  const customFpmPath = await resolveEnvToolsetPath(\"CUSTOM_FPM_PATH\", \"file\")\n  if (customFpmPath != null) {\n    return customFpmPath\n  }\n  const exec = \"fpm\"\n  if (process.platform === \"win32\" || process.env.USE_SYSTEM_FPM === \"true\") {\n    return exec\n  }\n  const getKey = () => {\n    if (process.platform === \"linux\") {\n      if (process.arch == \"x64\") {\n        return \"fpm-1.17.0-ruby-3.4.3-linux-amd64.7z\"\n      } else if (process.arch === \"arm64\") {\n        return \"fpm-1.17.0-ruby-3.4.3-linux-arm64v8.7z\"\n      }\n      return \"fpm-1.17.0-ruby-3.4.3-linux-i386.7z\"\n    }\n    // darwin arm64\n    if (process.arch === \"arm64\") {\n      return \"fpm-1.17.0-ruby-3.4.3-darwin-arm64.7z\"\n    }\n    return \"fpm-1.17.0-ruby-3.4.3-darwin-x86_64.7z\"\n  }\n\n  const filename = getKey()\n  const fpmPath = await getBinFromUrl(\"fpm@2.1.4\", filename, fpmChecksums[filename])\n  return path.join(fpmPath, exec)\n}\n\nexport async function getAppImageTools(appimageToolVersion: ToolsetConfig[\"appimage\"], targetArch: Arch) {\n  const runtimeArch = targetArch === Arch.armv7l ? \"arm32\" : targetArch === Arch.arm64 ? \"arm64\" : targetArch === Arch.ia32 ? \"ia32\" : \"x64\"\n\n  // Static-runtime layout: tools at root, runtimes/ subdir, lib/{arch}/ subdir\n  const getPaths = (artifactPath: string) => ({\n    mksquashfs: path.resolve(artifactPath, \"mksquashfs\"),\n    desktopFileValidate: path.resolve(artifactPath, \"desktop-file-validate\"),\n    runtime: path.resolve(artifactPath, \"runtimes\", `runtime-${runtimeArch}`),\n    runtimeLibraries: path.resolve(artifactPath, \"lib\", runtimeArch),\n  })\n\n  // FUSE2 layout: tools under a host-platform subdir; runtime files at root with target-arch suffix\n  const getFuse2Paths = (artifactPath: string) => {\n    // mksquashfs/desktop-file-validate are HOST binaries — use process.arch, not targetArch\n    const hostArch = process.arch === \"arm\" ? \"arm32\" : process.arch === \"arm64\" ? \"arm64\" : process.arch === \"ia32\" ? \"ia32\" : \"x64\"\n    const toolRoot = process.platform === \"linux\" ? `linux-${hostArch}` : \"darwin\"\n    // Runtime files live at root; armv7l target uses \"armv7l\" filename, not the internal \"arm32\" alias\n    const runtimeSuffix = targetArch === Arch.armv7l ? \"armv7l\" : runtimeArch\n    // FUSE2 tree only ships lib/ia32 and lib/x64; arm targets fall back to x64 here\n    // but buildLegacyFuse2AppImage only copies runtimeLibraries for x64/ia32.\n    const libArch = targetArch === Arch.ia32 ? \"ia32\" : \"x64\"\n    return {\n      mksquashfs: path.resolve(artifactPath, toolRoot, \"mksquashfs\"),\n      desktopFileValidate: path.resolve(artifactPath, toolRoot, \"desktop-file-validate\"),\n      runtime: path.resolve(artifactPath, `runtime-${runtimeSuffix}`),\n      runtimeLibraries: path.resolve(artifactPath, \"lib\", libArch),\n    }\n  }\n\n  const isFuse2 = appimageToolVersion === \"0.0.0\" || appimageToolVersion == null\n\n  const download = async () => {\n    if (isFuse2) {\n      const filenameWithExt = \"appimage-12.0.1.7z\"\n      const artifactPath = await downloadBuilderToolset({\n        releaseName: \"appimage-12.0.1\",\n        filenameWithExt,\n        checksums: { [filenameWithExt]: appimageChecksums[\"0.0.0\"][filenameWithExt] },\n        githubOrgRepo: \"electron-userland/electron-builder-binaries\",\n      })\n      return getFuse2Paths(artifactPath)\n    }\n\n    const filenameWithExt = \"appimage-tools-runtime-20251108.tar.gz\"\n    const artifactPath = await downloadBuilderToolset({\n      releaseName: `appimage@${appimageToolVersion}`,\n      filenameWithExt,\n      checksums: { [filenameWithExt]: appimageChecksums[appimageToolVersion][filenameWithExt] },\n      githubOrgRepo: \"electron-userland/electron-builder-binaries\",\n    })\n    return getPaths(artifactPath)\n  }\n\n  const artifact = use(await resolveEnvToolsetPath(\"APPIMAGE_TOOLS_PATH\", \"directory\"), it => (isFuse2 ? getFuse2Paths(it) : getPaths(it))) ?? (await download())\n  for (const entry of Object.entries(artifact)) {\n    if (!(await exists(entry[1]))) {\n      throw new Error(`AppImage tool ${entry[0]} not found at path: ${entry[1]}`)\n    }\n  }\n  return artifact\n}\n"]}