diff --git a/sys-apps/uutils-coreutils/Manifest b/sys-apps/uutils-coreutils/Manifest index 4ab038604bc24..9949639e72cff 100644 --- a/sys-apps/uutils-coreutils/Manifest +++ b/sys-apps/uutils-coreutils/Manifest @@ -1,4 +1,6 @@ DIST coreutils-0.2.2-crates.tar.xz 21799080 BLAKE2B b50758e5eff69d5a98e80c3ce888e85b081ce208a14706340843bfd4bd14f386af8275cca82d4f5168bb7634a16eb39c9cc08200d6831b119831e17ea4e997e0 SHA512 1f76735ed983496d489654798e86d85c52d1b0d67b2314e6c58453da8a267dceaf82e943f2a22b16c8775f72fe8cf05bea4be719bee9d47ee7cf29879d35619a DIST coreutils-0.3.0-crates.tar.xz 21786752 BLAKE2B ef3127a092e8aa1c773d7a9a05f5079e2b53203cd13519827261373ce453786b889c4456e161925b8a6130d09d815fbe36fc127dd7891b058eb813b06187a3a8 SHA512 87e8cc96d1c668b133d75226df674803964b75d44c87e0a3f241c2cf19442763bbdf13f5f7b38e5f8680b97fd849427ba96d5c62d6e07a50f5fda9470b92ca1a +DIST coreutils-0.4.0-crates.tar.xz 21871264 BLAKE2B 6cda42af0b2647b676830905dad847a038164f214fb0c8fcd32dcb9dca97751a120fa23a0d38ea5c5643817820111e47127fa161f56ea3e1bd2f2a3eea576f20 SHA512 487f5774d7e0b14224cc01ffa91408c47cc3b55edc03e8ce41c802ac3c08a7a47e016f8bbd2130a67e6c66ebae78858f5b604a2d627d1880a14f4c4507781dc3 DIST uutils-coreutils-0.2.2.tar.gz 2827753 BLAKE2B ca57fff4952c112459bc62ea56f3fa45f18b4dcdc2c0220c5609eeb8d0523a2f137f6aaf3ed918dbe9eb8efe1dce0de5056b37eedaf1756ff48b157bbde83765 SHA512 58def9fe8f01640c6eb7c16cd182061bf62fab22124bdedcb931cdb39b25c2bd3f31523561e321a4822d9e09107dc0c5cc2ddf8e20333138ddaa19d284db609f DIST uutils-coreutils-0.3.0.tar.gz 2905646 BLAKE2B 1e0347904cc49ac05da50c9aa2111d3355134dbc2ae7e98ec9420da42ee44ad3df32305d679d053cf5941acf7e33f67c211355ae85d80329799717fd8593f5ca SHA512 fe41bdb6cd216d580c0960af03ba28a2ebead783a927d5926d2533502ed98aefcb5b7fbc872cb88ed2c8293418db4ae5ededf92eecfd710feda804e4ca831c94 +DIST uutils-coreutils-0.4.0.tar.gz 2935884 BLAKE2B ce96746948200eee035f6dad2371bee99cb89cf8676eb30764bf352241206cff0bcf33d03b5d73ae018dc90351c86ba42981be93f65b5a6c93c3f2021c96d1c0 SHA512 96e34974d9e1b8290852f8b73948ae60476e6986e6515ce897f0393655cf2afa99138aac2992d5b67c8e6c856683c17fc09a3c39eaf7d647e33d4f6a38cfac41 diff --git a/sys-apps/uutils-coreutils/uutils-coreutils-0.4.0.ebuild b/sys-apps/uutils-coreutils/uutils-coreutils-0.4.0.ebuild new file mode 100644 index 0000000000000..7b3d8fbf850d2 --- /dev/null +++ b/sys-apps/uutils-coreutils/uutils-coreutils-0.4.0.ebuild @@ -0,0 +1,124 @@ +# Copyright 2022-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +# Autogenerated by pycargoebuild 0.6.2 + +EAPI=8 + +CRATES=" +" + +RUST_MIN_VER="1.85.0" +LLVM_COMPAT=( {17..21} ) +inherit cargo flag-o-matic llvm-r1 multiprocessing + +DESCRIPTION="GNU coreutils rewritten in Rust" +HOMEPAGE="https://uutils.github.io/coreutils/ https://github.com/uutils/coreutils" + +if [[ ${PV} == 9999 ]] ; then + EGIT_REPO_URI="https://github.com/uutils/coreutils" + inherit git-r3 +elif [[ ${PV} == *_p* ]] ; then + COREUTILS_COMMIT="" + SRC_URI="https://github.com/uutils/coreutils/archive/${COREUTILS_COMMIT}.tar.gz -> ${P}.tar.gz" + S="${WORKDIR}"/coreutils-${COREUTILS_COMMIT} +else + SRC_URI="https://github.com/uutils/coreutils/archive/refs/tags/${PV}.tar.gz -> ${P}.tar.gz" + S="${WORKDIR}"/coreutils-${PV} + + KEYWORDS="~amd64 ~arm64 ~ppc64" +fi + +if [[ ${PV} != 9999 ]] ; then + SRC_URI+=" + https://github.com/gentoo-crate-dist/coreutils/releases/download/${PV}/coreutils-${PV}-crates.tar.xz + " +fi + +LICENSE="MIT" +# Dependent crate licenses +LICENSE+=" + Apache-2.0 BSD-2 BSD Boost-1.0 CC0-1.0 ISC MIT Unicode-3.0 ZLIB +" +SLOT="0" +IUSE="debug selinux test" +RESTRICT="!test? ( test )" + +DEPEND=" + dev-libs/oniguruma:= + selinux? ( sys-libs/libselinux ) +" +RDEPEND="${DEPEND}" +BDEPEND=" + test? ( dev-util/cargo-nextest ) + selinux? ( + $(llvm_gen_dep ' + llvm-core/clang:${LLVM_SLOT} + ') + ) +" +QA_FLAGS_IGNORED=".*" + +pkg_setup() { + llvm-r1_pkg_setup + rust_pkg_setup +} + +src_unpack() { + if [[ ${PV} == 9999 ]] ; then + git-r3_src_unpack + cargo_live_src_unpack + else + cargo_src_unpack + fi +} + +src_compile() { + # normally cargo_src_compile sets this for us, but we don't use it + filter-lto + + # By default, the crate uses a system version if it can. This just guarantees + # that it will error out instead of building a vendored copy. + export RUSTONIG_SYSTEM_LIBONIG=1 + + makeargs=( + # Disable output synchronisation as make calls cargo + -Onone + + V=1 + + PROFILE=$(usex debug debug release) + + PREFIX="${EPREFIX}/usr" + PROG_PREFIX="uu-" + MULTICALL=y + MANDIR="/share/man/man1" + + SELINUX_ENABLED=$(usex selinux 1 0) + + # pinky, uptime, users, and who require utmpx (not available on musl) + # bug #832868 + # runcon chcon require selinux, but upstream broke the SELINUX_ENABLED logic + SKIP_UTILS="$(usev elibc_musl "pinky uptime users who") $(usev !selinux "runcon chcon")" + + # bug #963516 + LIBSTDBUF_DIR="${EPREFIX}/usr/libexec/${PN}" + ) + + emake "${makeargs[@]}" +} + +src_test() { + local -x RUST_BACKTRACE=full + local -x NEXTEST_TEST_THREADS="$(makeopts_jobs)" + + # Nicer output for nextest vs test + emake "${makeargs[@]}" \ + CARGOFLAGS="${CARGOFLAGS} $(usev !debug --release)" \ + TEST_NO_FAIL_FAST="--no-fail-fast" \ + nextest +} + +src_install() { + emake "${makeargs[@]}" DESTDIR="${D}" install +}