diff --git a/dist/main/index.js b/dist/main/index.js
index ce99cbe..c97672f 100644
--- a/dist/main/index.js
+++ b/dist/main/index.js
@@ -91466,12 +91466,8 @@ const core = __importStar(__nccwpck_require__(2186));
const tc = __importStar(__nccwpck_require__(7784));
const utils_1 = __nccwpck_require__(1314);
const path_1 = __nccwpck_require__(1017);
-const os_1 = __nccwpck_require__(2037);
-const fs_1 = __nccwpck_require__(7147);
-const MUSL_NAME = 'musl-gcc';
-const MUSL_VERSION = '1.2.4';
-const ZLIB_VERSION = '1.2.13';
-// Build instructions: https://github.com/oracle/graal/blob/6dab549194b85252f88bda4ee825762d8b02c687/docs/reference-manual/native-image/guides/build-static-and-mostly-static-executable.md?plain=1#L38-L67
+const MUSL_NAME = 'x86_64-linux-musl-native';
+const MUSL_VERSION = '10.2.1';
function setUpNativeImageMusl() {
return __awaiter(this, void 0, void 0, function* () {
if (!c.IS_LINUX) {
@@ -91480,35 +91476,26 @@ function setUpNativeImageMusl() {
}
let toolPath = tc.find(MUSL_NAME, MUSL_VERSION);
if (toolPath) {
- core.info(`Found musl ${MUSL_VERSION} in tool-cache @ ${toolPath}`);
+ core.info(`Found ${MUSL_NAME} ${MUSL_VERSION} in tool-cache @ ${toolPath}`);
}
else {
- core.startGroup(`Building musl with zlib for GraalVM Native Image...`);
- // Build musl
- const muslHome = (0, path_1.join)((0, os_1.homedir)(), 'musl-toolchain');
- const muslDownloadPath = yield tc.downloadTool(`https://musl.libc.org/releases/musl-${MUSL_VERSION}.tar.gz`);
+ core.startGroup(`Setting up musl for GraalVM Native Image...`);
+ const muslDownloadPath = yield tc.downloadTool(`https://github.com/graalvm/setup-graalvm/releases/download/x86_64-linux-musl-${MUSL_VERSION}/${MUSL_NAME}.tgz`);
const muslExtractPath = yield tc.extractTar(muslDownloadPath);
- const muslPath = (0, path_1.join)(muslExtractPath, `musl-${MUSL_VERSION}`);
- const muslBuildOptions = { cwd: muslPath };
- yield (0, utils_1.exec)('./configure', [`--prefix=${muslHome}`, '--static'], muslBuildOptions);
- yield (0, utils_1.exec)('make', [], muslBuildOptions);
- yield (0, utils_1.exec)('make', ['install'], muslBuildOptions);
- const muslGCC = (0, path_1.join)(muslHome, 'bin', MUSL_NAME);
- yield fs_1.promises.symlink(muslGCC, (0, path_1.join)(muslHome, 'bin', 'x86_64-linux-musl-gcc'), 'file');
- // Build zlib
- const zlibDownloadPath = yield tc.downloadTool(`https://zlib.net/fossils/zlib-${ZLIB_VERSION}.tar.gz`);
+ const muslPath = (0, path_1.join)(muslExtractPath, MUSL_NAME);
+ const zlibCommit = 'ec3df00224d4b396e2ac6586ab5d25f673caa4c2';
+ const zlibDownloadPath = yield tc.downloadTool(`https://github.com/madler/zlib/archive/${zlibCommit}.tar.gz`);
const zlibExtractPath = yield tc.extractTar(zlibDownloadPath);
- const zlibPath = (0, path_1.join)(zlibExtractPath, `zlib-${ZLIB_VERSION}`);
+ const zlibPath = (0, path_1.join)(zlibExtractPath, `zlib-${zlibCommit}`);
const zlibBuildOptions = {
cwd: zlibPath,
- env: Object.assign(Object.assign({}, process.env), { CC: muslGCC })
+ env: Object.assign(Object.assign({}, process.env), { CC: (0, path_1.join)(muslPath, 'bin', 'gcc') })
};
- yield (0, utils_1.exec)('./configure', [`--prefix=${muslHome}`, '--static'], zlibBuildOptions);
+ yield (0, utils_1.exec)('./configure', [`--prefix=${muslPath}`, '--static'], zlibBuildOptions);
yield (0, utils_1.exec)('make', [], zlibBuildOptions);
yield (0, utils_1.exec)('make', ['install'], { cwd: zlibPath });
- // Store in cache
- core.info(`Adding musl ${MUSL_VERSION} with zlib ${ZLIB_VERSION} to tool-cache ...`);
- toolPath = yield tc.cacheDir(muslHome, MUSL_NAME, MUSL_VERSION);
+ core.info(`Adding ${MUSL_NAME} ${MUSL_VERSION} to tool-cache ...`);
+ toolPath = yield tc.cacheDir(muslPath, MUSL_NAME, MUSL_VERSION);
core.endGroup();
}
core.addPath((0, path_1.join)(toolPath, 'bin'));
diff --git a/src/features/musl.ts b/src/features/musl.ts
index 897e140..a5cde2d 100644
--- a/src/features/musl.ts
+++ b/src/features/musl.ts
@@ -3,14 +3,9 @@ import * as core from '@actions/core'
import * as tc from '@actions/tool-cache'
import {exec} from '../utils'
import {join} from 'path'
-import {homedir} from 'os'
-import {promises as fs} from 'fs'
-const MUSL_NAME = 'musl-gcc'
-const MUSL_VERSION = '1.2.4'
-const ZLIB_VERSION = '1.2.13'
-
-// Build instructions: https://github.com/oracle/graal/blob/6dab549194b85252f88bda4ee825762d8b02c687/docs/reference-manual/native-image/guides/build-static-and-mostly-static-executable.md?plain=1#L38-L67
+const MUSL_NAME = 'x86_64-linux-musl-native'
+const MUSL_VERSION = '10.2.1'
export async function setUpNativeImageMusl(): Promise {
if (!c.IS_LINUX) {
@@ -19,55 +14,38 @@ export async function setUpNativeImageMusl(): Promise {
}
let toolPath = tc.find(MUSL_NAME, MUSL_VERSION)
if (toolPath) {
- core.info(`Found musl ${MUSL_VERSION} in tool-cache @ ${toolPath}`)
+ core.info(`Found ${MUSL_NAME} ${MUSL_VERSION} in tool-cache @ ${toolPath}`)
} else {
- core.startGroup(`Building musl with zlib for GraalVM Native Image...`)
- // Build musl
- const muslHome = join(homedir(), 'musl-toolchain')
+ core.startGroup(`Setting up musl for GraalVM Native Image...`)
const muslDownloadPath = await tc.downloadTool(
- `https://musl.libc.org/releases/musl-${MUSL_VERSION}.tar.gz`
+ `https://github.com/graalvm/setup-graalvm/releases/download/x86_64-linux-musl-${MUSL_VERSION}/${MUSL_NAME}.tgz`
)
const muslExtractPath = await tc.extractTar(muslDownloadPath)
- const muslPath = join(muslExtractPath, `musl-${MUSL_VERSION}`)
- const muslBuildOptions = {cwd: muslPath}
- await exec(
- './configure',
- [`--prefix=${muslHome}`, '--static'],
- muslBuildOptions
- )
- await exec('make', [], muslBuildOptions)
- await exec('make', ['install'], muslBuildOptions)
- const muslGCC = join(muslHome, 'bin', MUSL_NAME)
- await fs.symlink(
- muslGCC,
- join(muslHome, 'bin', 'x86_64-linux-musl-gcc'),
- 'file'
- )
- // Build zlib
+ const muslPath = join(muslExtractPath, MUSL_NAME)
+
+ const zlibCommit = 'ec3df00224d4b396e2ac6586ab5d25f673caa4c2'
const zlibDownloadPath = await tc.downloadTool(
- `https://zlib.net/fossils/zlib-${ZLIB_VERSION}.tar.gz`
+ `https://github.com/madler/zlib/archive/${zlibCommit}.tar.gz`
)
const zlibExtractPath = await tc.extractTar(zlibDownloadPath)
- const zlibPath = join(zlibExtractPath, `zlib-${ZLIB_VERSION}`)
+ const zlibPath = join(zlibExtractPath, `zlib-${zlibCommit}`)
const zlibBuildOptions = {
cwd: zlibPath,
env: {
...process.env,
- CC: muslGCC
+ CC: join(muslPath, 'bin', 'gcc')
}
}
await exec(
'./configure',
- [`--prefix=${muslHome}`, '--static'],
+ [`--prefix=${muslPath}`, '--static'],
zlibBuildOptions
)
await exec('make', [], zlibBuildOptions)
await exec('make', ['install'], {cwd: zlibPath})
- // Store in cache
- core.info(
- `Adding musl ${MUSL_VERSION} with zlib ${ZLIB_VERSION} to tool-cache ...`
- )
- toolPath = await tc.cacheDir(muslHome, MUSL_NAME, MUSL_VERSION)
+
+ core.info(`Adding ${MUSL_NAME} ${MUSL_VERSION} to tool-cache ...`)
+ toolPath = await tc.cacheDir(muslPath, MUSL_NAME, MUSL_VERSION)
core.endGroup()
}
core.addPath(join(toolPath, 'bin'))