m1n1-1.6.0asahi
download
# Copyright 2022-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
# Since we use aarch64-unknown-none-softfload, we need to build core and alloc.
# These crates are from pycargoebuild ${RUST}/lib/rustlib/src/rust/library/core/
# XXX: Will these break on every Rust update? I'd rather not pin a specific rust
# version...
CRATES_CORE="
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]+wasi-snapshot-preview1
[email protected]+wasi-0.2.4
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
"
CRATES_M1N1="
[email protected]
[email protected]
[email protected]
"
CRATES="
${CRATES_CORE}
${CRATES_M1N1}
"
declare -A GIT_CRATES=(
[fatfs]='https://github.com/rafalh/rust-fatfs;4eccb50d011146fbed20e133d33b22f3c27292e7;rust-fatfs-%commit%'
)
RUST_MIN_VER="1.89.0"
RUST_REQ_USE="rust-src"
inherit cargo rust
DESCRIPTION="Apple Silicon bootloader and experimentation playground"
HOMEPAGE="https://asahilinux.org/"
SRC_URI="
https://github.com/AsahiLinux/m1n1/archive/refs/tags/v${PV}.tar.gz -> ${PN}-${PV}.tar.gz
${CARGO_CRATE_URIS}
"
LICENSE="MIT"
SLOT="0"
KEYWORDS="~arm64"
IUSE="clang"
BDEPEND="dev-build/make"
RDEPEND="
sys-boot/u-boot
|| (
sys-kernel/asahi-sources
virtual/dist-kernel:asahi
)
"
BDEPEND="${BDEPEND}
clang? ( llvm-core/clang )
"
PATCHES="
${FILESDIR}/${P}-unvendor-fatfs.patch
"
src_compile() {
cd "${S}" || die
if use clang; then
emake USE_CLANG=1 \
RELEASE=1 \
ARCH="${CHOST}" \
BUILDSTD=1
else
emake USE_CLANG=0 \
RELEASE=1 \
ARCH="${CHOST}-" \
BUILDSTD=1
fi
}
src_install() {
dodir /usr/lib/asahi-boot
cp "${S}"/build/m1n1.bin "${ED}"/usr/lib/asahi-boot/m1n1.bin || die
}
pkg_postinst() {
elog "m1n1 has been installed at /usr/lib/asahi-boot/m1n1.bin"
elog "You must run update-m1n1 for the new version to be installed"
elog "in the ESP."
elog "Please see the Asahi Linux Wiki for more information."
}
pkg_postrm() {
elog "m1n1 has been removed from /usr/lib/asahi-boot/ but has not"
elog "been removed from the ESP. You need to do this manually, though"
elog "you really shouldn't."
}