From 9bd2a9687bd4952ab6f4bebeee7c5d727c06848c Mon Sep 17 00:00:00 2001 From: Abishek Jakkala Date: Sun, 15 Mar 2026 13:06:29 +0000 Subject: [PATCH] app-emulation/darling: add 0.1.20260222 Signed-off-by: Abishek Jakkala --- app-emulation/darling/Manifest | 1 + .../darling/darling-0.1.20260222.ebuild | 197 ++++++++++++++++++ app-emulation/darling/metadata.xml | 24 +++ 3 files changed, 222 insertions(+) create mode 100644 app-emulation/darling/darling-0.1.20260222.ebuild diff --git a/app-emulation/darling/Manifest b/app-emulation/darling/Manifest index eb82437545..90267a061a 100644 --- a/app-emulation/darling/Manifest +++ b/app-emulation/darling/Manifest @@ -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 diff --git a/app-emulation/darling/darling-0.1.20260222.ebuild b/app-emulation/darling/darling-0.1.20260222.ebuild new file mode 100644 index 0000000000..8ece931e94 --- /dev/null +++ b/app-emulation/darling/darling-0.1.20260222.ebuild @@ -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 +} diff --git a/app-emulation/darling/metadata.xml b/app-emulation/darling/metadata.xml index 3ef7577b82..faf5850dc2 100644 --- a/app-emulation/darling/metadata.xml +++ b/app-emulation/darling/metadata.xml @@ -17,4 +17,28 @@ supports most command line tools and some GUI applications for macOS. + + + Includes core and everything necessary to enter a shell + + Includes system and most standalone command-line programs (i.e. those that don't + require additional runtimes or complex frameworks/libraries) + + + 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. + + Includes cli and some additional programs not installed on a standard macOS installation (e.g. GNU tar) + + 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.) + + + 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. + + Includes gui_frameworks and many stubbed GUI-related frameworks. + This is a large framework used for executing JavaScript code, primarily in web browsers.