package toybox-source {
	description = "toybox source tree";
	exclude = true;

	version# = "0.8.14";
	output = remoteTar {
		url = "https://landley.net/toybox/downloads/toybox-"+version+".tar.gz";
		checksum = "RZQp2CTsLt_y15vsZxwqUb2O1XfK7uvwn-2sTd38O4HAsFKPQpS1UP0brYJ3dRA-";
		compress = gzip;
	};
}

package toybox {
	description = "many common Linux command line utilities";
	website = "https://landley.net/toybox";
	anitya = 13818;

	source = toybox-source;

	writable = true;
	enterSource = true;
	toyboxEarly = true;

	exec = make {
		defaults = false;
		chdir = false;

		configure = nil;
		preMake = `
LDFLAGS="${LDFLAGS:-''} -static"

chmod +w /bin/
ln -rs "$(which bash)" /bin/ || true

chmod +w kconfig tests
rm \
	tests/du.test \
	tests/sed.test \
	tests/tar.test \
	tests/ls.test \
	tests/taskset.test

make defconfig
sed -i \
	's/^CONFIG_TOYBOX_ZHELP=y$/CONFIG_TOYBOX_ZHELP=0/' \
	.config
`;

		check = [
			"USER=cure",
			"tests",
		];
		checkEarly = false;

		install = "PREFIX=/work/system/bin make install_flat";

		postInstall = `
mkdir -p /work/usr/bin
ln -s ../../system/bin/env /work/usr/bin
`;
	};

	inputs = [
		bash,
		gzip,

		kernel-headers,
	];
}

package toybox-early {
	description = "a build of toybox with unfinished tools enabled to break dependency loops";
	website = "https://landley.net/toybox";
	exclude = true;

	source = toybox-source;

	writable = true;
	enterSource = true;
	toyboxEarly = true;

	exec = make {
		defaults = false;
		chdir = false;

		configure = nil;
		preMake = `
LDFLAGS="${LDFLAGS:-''} -static"

chmod +w /bin/
ln -rs "$(which bash)" /bin/ || true

chmod +w kconfig tests
rm \
	tests/du.test \
	tests/sed.test \
	tests/tar.test \
	tests/ls.test \
	tests/taskset.test

make defconfig
sed -i \
	's/^CONFIG_TOYBOX_ZHELP=y$/CONFIG_TOYBOX_ZHELP=0/' \
	.config

echo '
CONFIG_EXPR=y
CONFIG_TR=y
CONFIG_AWK=y
CONFIG_DIFF=y
' >> .config
`;

		check = [
			"USER=cure",
			"tests",
		];
		checkEarly = false;

		install = "PREFIX=/work/system/bin make install_flat";

		postInstall = `
mkdir -p /work/usr/bin
ln -s ../../system/bin/env /work/usr/bin
`;
	};

	inputs = [
		bash,
		gzip,

		kernel-headers,
	];
}
