diff --git a/dev-util/pkgcruft/Manifest b/dev-util/pkgcruft/Manifest index ef5c0f1b61c23..5c9e8fff5a355 100644 --- a/dev-util/pkgcruft/Manifest +++ b/dev-util/pkgcruft/Manifest @@ -1,2 +1,3 @@ DIST pkgcruft-0.0.13.tar.xz 30200436 BLAKE2B 85ed531a79d4261c65dcda41d6a238398fb36b8e93c1698444b866f6c930544bf19c85046ad9ab651bd0f5460ad174b47d468274de169a458083198b084205e2 SHA512 d53713d0f14d965e3b069fe2902af9aac1fac56b565e93b502c081adf0ada99336a43f5af697ec522ce4e6d49eff5b1fb20c375ffa90dcf417ae396c2dc81c2b DIST pkgcruft-0.0.14.tar.xz 31996380 BLAKE2B af72caec78d1879c7087108c360c4260fb25c1411e4bea54f4e7d5e23f4c6bca894b63559546dfa154105bbe40021004d3cc0eeeaa06834fb8c8573bd2e581d0 SHA512 b6da9e128f58f44c79fe1774ed70637ec1bc90a3ded3c79570f1977a2165ee5680a526d659b742001e80a18f5fd1b5d4a5460dcbf36e44aa233bf2aa6d2ca111 +DIST pkgcruft-0.0.15.tar.xz 41472844 BLAKE2B fe190451c559fd800bcd18fdb9e6a9adf8e6fad4c42b0577f6532d0f4bb7b1cc64905932daf9cf6ba1bdbeb6c3641644265c7ea13860370af01a25fad800a31e SHA512 e02c2ea7cdbad3373b13d2856905a7fd90b3c6ae1cbcb61672cb9bb441ea206a59fbf0050459e3ead5c59ee7d72c7c38a446462428a0c115cef8b43acbcb310b diff --git a/dev-util/pkgcruft/pkgcruft-0.0.15.ebuild b/dev-util/pkgcruft/pkgcruft-0.0.15.ebuild new file mode 100644 index 0000000000000..e81a7eddc6f1c --- /dev/null +++ b/dev-util/pkgcruft/pkgcruft-0.0.15.ebuild @@ -0,0 +1,98 @@ +# Copyright 2023-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +CRATES=" " +LLVM_COMPAT=( {17..21} ) +RUST_MIN_VER="1.88.0" + +inherit cargo edo llvm-r2 multiprocessing shell-completion toolchain-funcs + +DESCRIPTION="QA library and tools based on pkgcraft" +HOMEPAGE="https://pkgcraft.github.io/" + +if [[ ${PV} == 9999 ]] ; then + EGIT_REPO_URI="https://github.com/pkgcraft/pkgcraft" + inherit git-r3 + + S="${WORKDIR}"/${P}/crates/${PN} +else + SRC_URI="https://github.com/pkgcraft/pkgcraft/releases/download/${P}/${P}.tar.xz" + + KEYWORDS="~amd64" +fi + +LICENSE="MIT" +# Dependent crate licenses +LICENSE+=" + Apache-2.0 BSD-2 BSD CC0-1.0 CDLA-Permissive-2.0 ISC MIT MPL-2.0 +" +SLOT="0" +IUSE="test" +RESTRICT="!test? ( test )" + +# clang needed for bindgen +BDEPEND+=" + $(llvm_gen_dep ' + llvm-core/clang:${LLVM_SLOT} + ') + test? ( dev-util/cargo-nextest ) +" + +QA_FLAGS_IGNORED="usr/bin/pkgcruft" + +pkg_setup() { + llvm-r2_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() { + # For scallop building bash + tc-export AR CC + + cargo_src_compile + + if [[ ${PV} == 9999 ]] ; then + einfo "Generating shell completions" + mkdir shell || die + local BIN="${WORKDIR}/${P}/$(cargo_target_dir)/pkgcruft" + "${BIN}" completion bash > shell/pkgcruft.bash || die + "${BIN}" completion zsh > shell/_pkgcruft || die + "${BIN}" completion fish > shell/pkgcruft.fish || die + fi +} + +src_test() { + unset CLICOLOR CLICOLOR_FORCE + + # TODO: Maybe move into eclass (and maybe have a cargo_enable_tests + # helper) + local -x NEXTEST_TEST_THREADS="$(makeopts_jobs)" + + # check::ignore::tests::check: https://github.com/pkgcraft/pkgcraft/issues/334 + edo cargo nextest run $(usev !debug '--release') \ + --color always \ + --all-features \ + --tests \ + --no-fail-fast \ + -- \ + --skip 'check::ignore::tests::check' +} + +src_install() { + cargo_src_install + + newbashcomp shell/pkgcruft.bash pkgcruft + dozshcomp shell/_pkgcruft + dofishcomp shell/pkgcruft.fish +} diff --git a/dev-util/pkgcruft/pkgcruft-9999.ebuild b/dev-util/pkgcruft/pkgcruft-9999.ebuild index 7cb2168b8ed84..b794367c9528d 100644 --- a/dev-util/pkgcruft/pkgcruft-9999.ebuild +++ b/dev-util/pkgcruft/pkgcruft-9999.ebuild @@ -5,7 +5,7 @@ EAPI=8 CRATES=" " LLVM_COMPAT=( {17..20} ) -RUST_MIN_VER="1.85.0" +RUST_MIN_VER="1.88.0" inherit cargo edo llvm-r2 multiprocessing shell-completion toolchain-funcs @@ -84,37 +84,7 @@ src_test() { --color always \ --all-features \ --tests \ - --no-fail-fast \ - -- \ - --skip 'commands::tests::check' \ - --skip 'dependency::tests::check' \ - --skip 'dependency_slot_missing::tests::check' \ - --skip 'eapi_stale::tests::check' \ - --skip 'eapi_status::tests::check' \ - --skip 'ebuild_name::tests::check' \ - --skip 'eclass::tests::check' \ - --skip 'filesdir::tests::check' \ - --skip 'header::tests::check' \ - --skip 'homepage::tests::check' \ - --skip 'ignore::tests::check' \ - --skip 'iuse::tests::check' \ - --skip 'keywords::tests::check' \ - --skip 'keywords_dropped::tests::check' \ - --skip 'license::tests::check' \ - --skip 'live::tests::check' \ - --skip 'manifest::tests::check' \ - --skip 'metadata::tests::check' \ - --skip 'properties::tests::check' \ - --skip 'python_update::tests::check' \ - --skip 'repo_layout::tests::check' \ - --skip 'restrict::tests::check' \ - --skip 'restrict_test_missing::tests::check' \ - --skip 'ruby_update::tests::check' \ - --skip 'src_uri::tests::check' \ - --skip 'unstable_only::tests::check' \ - --skip 'use_local::tests::check' \ - --skip 'variable_order::tests::check' \ - --skip 'whitespace::tests::check' + --no-fail-fast } src_install() {