app-emulation/darling: add 0.1.20260222

Signed-off-by: Abishek Jakkala <thysupremematrix@tuta.io>
This commit is contained in:
Abishek Jakkala
2026-03-15 13:06:29 +00:00
parent 19f6fa9969
commit 9bd2a9687b
3 changed files with 222 additions and 0 deletions

View File

@@ -79,6 +79,7 @@ DIST darling-commoncrypto-0.1.20260201.tar.gz 711414 BLAKE2B c1fc0c668317d2c1c01
DIST darling-commoncrypto-0.1.20260220.tar.gz 711414 BLAKE2B c1fc0c668317d2c1c0185e2f68f99335ad312acb78753d6319b9559c9db189a656e8c09520c37c84783bd5ecb614708e0f72878029508423f848b8a307bcd911 SHA512 c9ef43d762c6643bd3a5942263f21157aa67160ac55f3c53bccf09f8701405ef984aafe18af2a9dda4086d979ca47b0e255ca6a467d804cfb52cde595412b549
DIST darling-compiler-rt-0.1.20260201.tar.gz 2169679 BLAKE2B 08adf0fba6d69ecd76672d35ed19e1d2f1c63b7870060f873918280aea63a1ec85bf538b4bdc90077b9a0415cfad1a7c2537750111584be14efa047cf197dee5 SHA512 402c5883c288184adcae66f9e5a003dfd714984bfede34877bfe037ee8f90ffd3ac1b5819e6e6bc4f90ae17c13e9f3d4de94e01b2329e73b3dcf16d9c51ddb19
DIST darling-compiler-rt-0.1.20260220.tar.gz 2169679 BLAKE2B 08adf0fba6d69ecd76672d35ed19e1d2f1c63b7870060f873918280aea63a1ec85bf538b4bdc90077b9a0415cfad1a7c2537750111584be14efa047cf197dee5 SHA512 402c5883c288184adcae66f9e5a003dfd714984bfede34877bfe037ee8f90ffd3ac1b5819e6e6bc4f90ae17c13e9f3d4de94e01b2329e73b3dcf16d9c51ddb19
DIST darling-complete-source-0.1.20260222.tar.gz 804820275 BLAKE2B e6d324a8ecc9aeda03397c859444e28f00dcf44e12c0dba7b23f86407aa69f98439ab5c8ba77661f13b87c50f853344ac128c9b57c5b4976e665a83c5a5d0309 SHA512 cae5ed8dd880f15c7e3031ca1894460457681d593acf5edc6d9b588284308e5ade36d170de530c458f95ccc3256a9fc36a53449c4a1d93b9f5ff2f620f2ad487
DIST darling-configd-0.1.20260201.tar.gz 933440 BLAKE2B 400d343dfc8937c70c0b70e47961fba098397b862be3111a0d3154a5ca496f16b5d4c828d11c5d91f11fdbbb31e1352e8ea1c436330f9e54bdf6d2e83423d3de SHA512 3851daff129aa41c7e3a7d84adfff83188cf7753f98c1b0dba83aab62c8a236d8293b1cbd32d35a5bff774c8ee0c1347c61cdf85b3265f1d3e47ccde8e9e4cca
DIST darling-configd-0.1.20260220.tar.gz 933440 BLAKE2B 400d343dfc8937c70c0b70e47961fba098397b862be3111a0d3154a5ca496f16b5d4c828d11c5d91f11fdbbb31e1352e8ea1c436330f9e54bdf6d2e83423d3de SHA512 3851daff129aa41c7e3a7d84adfff83188cf7753f98c1b0dba83aab62c8a236d8293b1cbd32d35a5bff774c8ee0c1347c61cdf85b3265f1d3e47ccde8e9e4cca
DIST darling-copyfile-0.1.20260201.tar.gz 73855 BLAKE2B 13b97563f7343584145ddfd35dd85a09071459ec88c036b13261de5c8e417bdaee149e3bf293c2b78a748cf880139b2e62e47a51561ea9ca005f05d9da32b65c SHA512 2a7c6d84c4d41d9352a7531a691a217ea8aeb4fa12d7168b7f3f08922ba54fdf44f9e96d3e10c923bc9780b0a0ce2eca1b70ac91fb4a582020ceff386b67fb02

View File

@@ -0,0 +1,197 @@
# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
PYTHON_COMPAT=( python3_{10..14} )
inherit cmake python-any-r1 check-reqs linux-info
DESCRIPTION="Translation layer for running macOS software on Linux"
HOMEPAGE="https://www.darlinghq.org"
SRC_URI="
https://github.com/darlinghq/darling/releases/download/v0.1.20260222/darling-source.tar.gz -> darling-complete-source-${PV}.tar.gz
"
S="${WORKDIR}/darling"
LICENSE="GPL-3"
SLOT="0"
KEYWORDS="~amd64"
IUSE="cli cli_dev cli_extra gui gui_frameworks gui_stubs jsc webkit python ruby perl metal multilib system"
REQUIRED_USE="
cli_dev? ( cli python ruby perl )
cli? ( system )
cli_extra? ( cli )
gui_frameworks? ( gui )
gui_stubs? ( gui_frameworks )
gui? ( system )
webkit? ( jsc )
python? ( system )
ruby? ( system )
perl? ( system )
metal? ( gui )
"
DEPEND="
x11-misc/xdg-user-dirs
sys-fs/fuse:0
dev-libs/icu:=
dev-libs/libbsd
dev-libs/libxml2:2
llvm-core/llvm:=
media-libs/freetype
media-libs/libjpeg-turbo
media-libs/fontconfig
media-libs/tiff:=
multilib? (
media-libs/freetype[abi_x86_32]
media-libs/libjpeg-turbo[abi_x86_32]
media-libs/fontconfig[abi_x86_32]
media-libs/tiff[abi_x86_32]
sys-libs/glibc[multilib]
)
gui? (
media-libs/mesa[X]
virtual/opengl
virtual/glu
media-libs/libpng:=
media-libs/giflib:=
x11-libs/libX11
x11-libs/libXext
x11-libs/libXrandr
x11-libs/libXcursor
x11-libs/libxkbfile
x11-libs/cairo
media-libs/libpulse
media-libs/vulkan-loader
)
gui? ( multilib? (
media-libs/mesa[X,abi_x86_32]
virtual/opengl[abi_x86_32]
virtual/glu[abi_x86_32]
) )
sys-apps/dbus
media-video/ffmpeg:=
"
BDEPEND="
>=llvm-core/clang-11
sys-devel/flex
sys-devel/bison
dev-build/cmake
virtual/pkgconfig
llvm-core/llvm:=
${PYTHON_DEPS}
gui? ( dev-util/vulkan-headers )
"
RDEPEND="${DEPEND}"
QA_SONAME="*"
pkg_pretend(){
# https://unix.stackexchange.com/questions/131954/check-sse3-support-from-bash
if ! grep -qE '^flags.* (sse3|pni)' /proc/cpuinfo; then
eerror "darling requires a cpu with support of the sse3 instruction set"
die "cpu doesn't support sse3 instruction set"
fi
if kernel_is -lt 5 0; then
eerror "darling requires Linux kernel 5.0 or newer to be installed"
die "darling requires Linux kernel 5.0 or newer"
fi
CHECKREQS_DISK_BUILD="16G"
CHECKREQS_MEMORY="4G"
check-reqs_pkg_pretend
}
pkg_setup(){
# https://unix.stackexchange.com/questions/131954/check-sse3-support-from-bash
if ! grep -qE '^flags.* (sse3|pni)' /proc/cpuinfo; then
eerror "darling requires a cpu with support of the sse3 instruction set"
die "cpu doesn't support sse3 instruction set"
fi
if kernel_is -lt 5 0; then
eerror "darling requires Linux kernel 5.0 or newer to be installed"
die "darling requires Linux kernel 5.0 or newer"
fi
CHECKREQS_DISK_BUILD="16G"
CHECKREQS_MEMORY="4G"
check-reqs_pkg_setup
python-any-r1_pkg_setup
}
src_prepare() {
default
cd "${S}"
# We need clang as we're building a Darwin system
export CC=clang
export CXX=clang++
unset LDFLAGS
export LDFLAGS=""
cmake_src_prepare
}
src_configure() {
export CC=clang
export CXX=clang++
unset LDFLAGS
export LDFLAGS=""
local components="core"
use system && components+=",system"
use python && components+=",python"
use ruby && components+=",ruby"
use perl && components+=",perl"
use cli && components+=",cli"
use cli_dev && components+=",cli_dev"
use cli_extra && components+=",cli_extra"
use gui && components+=",gui"
use gui_frameworks && components+=",gui_frameworks"
use gui_stubs && components+=",gui_stubs"
use jsc && components+=",jsc"
use webkit && components+=",webkit"
local mycmakeargs=(
"-DCMAKE_INSTALL_PREFIX=/usr"
"-DCMAKE_POSITION_INDEPENDENT_CODE=ON"
"-DDARLING_COMPONENTS=\"${components}\""
"-DJSC_UNIFIED_BUILD=ON"
"-DENABLE_METAL=$(usex metal ON OFF)"
"-DTARGET_i386=$(usex multilib ON OFF)"
)
cmake_src_configure
}
src_compile() {
cmake_src_compile
}
src_install() {
cmake_src_install
# Darlingserver requires these empty dirs to exist at runtime
# to set up its container (procfs mount, tmp, var, etc.)
keepdir /usr/libexec/darling/private/tmp
keepdir /usr/libexec/darling/private/var
keepdir /usr/libexec/darling/private/etc
keepdir /usr/libexec/darling/proc
keepdir /usr/libexec/darling/run
}

View File

@@ -17,4 +17,28 @@
supports most command line tools and some GUI applications
for macOS.
</longdescription>
<use>
<flag name="system">Includes core and everything necessary to enter a shell</flag>
<flag name="cli">
Includes system and most standalone command-line programs (i.e. those that don't
require additional runtimes or complex frameworks/libraries)
</flag>
<flag name="cli_dev">
Includes cli, python, ruby, and perl, along with some additional targets normally
regarded as GUI targets. These additional targets are necessary for certain parts
of the Xcode CLI tools.
</flag>
<flag name="cli_extra">Includes cli and some additional programs not installed on a standard macOS installation (e.g. GNU tar)</flag>
<flag name="gui">
Includes system and everything necessary to run basic Cocoa, Metal, and OpenGL apps.
Note that only includes the minimum required for GUI applications; most applications
will also require additional frameworks (e.g. audio, video, location, etc.)
</flag>
<flag name="gui_frameworks">
Includes gui and many GUI-related frameworks depended upon by Cocoa apps (e.g. audio
frameworks). Note that this component only includes non-stub frameworks.
</flag>
<flag name="gui_stubs">Includes gui_frameworks and many stubbed GUI-related frameworks.</flag>
<flag name="jsc">This is a large framework used for executing JavaScript code, primarily in web browsers.</flag>
</pkgmetadata>