package musl-source {
	description = "an implementation of the C standard library - source code";
	exclude = true;

	version* = "1.2.6";
	output = remoteTar {
		url = "https://musl.libc.org/releases/musl-"+version+".tar.gz";
		checksum = "WtWb_OV_XxLDAB5NerOL9loLlHVadV00MmGk65PPBU1evaolagoMHfvpZp_vxEzS";
		compress = gzip;
	};
}

package musl-headers {
	description = "system installation of musl headers";

	source = musl-source;

	// expected to be writable in copies
	chmod = true;

	env = [
		"LDFLAGS=" + earlyLDFLAGS,
	];

	exec = make {
		omitDefaults = true;
		skipCheck = true;

		make = [
			"DESTDIR=/work",
			"install-headers",
		];

		install = "# headers installed during make";
	};

	inputs = [ coreutils ];
}

package musl {
	description = "an implementation of the C standard library";
	website = "https://musl.libc.org";
	anitya = 11688;

	source = musl-source;
	patches = [ "ldso-rosa.patch" ];

	// expected to be writable in copies
	chmod = true;

	env = [
		"LDFLAGS=" + earlyLDFLAGS,
	];

	exec = make {
		omitDefaults = true;
		skipCheck = true;

		postInstall = `
mkdir -p /work/system/bin
COMPAT_LINKER_NAME="ld-musl-` + linuxArch + `.so.1"
ln -vs ../lib/libc.so /work/system/bin/linker
ln -vs ../lib/libc.so /work/system/bin/ldd
ln -vs libc.so "/work/system/lib/${COMPAT_LINKER_NAME}"
rm -v "/work/lib/${COMPAT_LINKER_NAME}"
rmdir -v /work/lib
`;
	};

	inputs = [ coreutils ];
}
