# Copyright 2017-2024 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 CRATES="" inherit cargo optfeature DESCRIPTION="ccache/distcc like tool with support for rust and cloud storage" HOMEPAGE="https://github.com/mozilla/sccache/" if [[ ${PV} == "9999" ]] ; then inherit git-r3 EGIT_REPO_URI="https://github.com/mozilla/sccache.git" else SRC_URI=" https://github.com/mozilla/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz ${CARGO_CRATE_URIS} " KEYWORDS="~amd64 ~ppc64" fi LICENSE="Apache-2.0" # Dependent crate licenses LICENSE+=" Apache-2.0 BSD-2 BSD CC0-1.0 ISC MIT MPL-2.0 Unicode-DFS-2016 ZLIB " SLOT="0" IUSE="azure dist-client dist-server gcs memcached redis s3 simple-s3" # See https://github.com/mozilla/sccache/issues/1820, hopefully temporary. RESTRICT="test" REQUIRED_USE="s3? ( simple-s3 )" BDEPEND=" virtual/pkgconfig " DEPEND=" app-arch/zstd sys-libs/zlib:= dist-server? ( dev-libs/openssl:= ) gcs? ( dev-libs/openssl:= ) " RDEPEND=" ${DEPEND} dist-server? ( sys-apps/bubblewrap ) " QA_FLAGS_IGNORED="usr/bin/sccache*" src_unpack() { if [[ "${PV}" == *9999* ]]; then git-r3_src_unpack cargo_live_src_unpack else cargo_src_unpack fi } src_configure() { export ZSTD_SYS_USE_PKG_CONFIG=1 myfeatures=( native-zlib $(usev azure) $(usev dist-client) $(usev dist-server) $(usev gcs) $(usev memcached) $(usev redis) $(usev s3) $(usev simple-s3) ) cargo_src_configure --no-default-features } src_test() { if [[ "${PV}" == *9999* ]]; then ewarn "tests are always broken for ${PV} (require network), skipping" else cargo_src_test fi } src_install() { cargo_src_install keepdir /etc/sccache einstalldocs dodoc -r docs/. if use dist-server; then newinitd "${FILESDIR}"/server.initd sccache-server newconfd "${FILESDIR}"/server.confd sccache-server newinitd "${FILESDIR}"/scheduler.initd sccache-scheduler newconfd "${FILESDIR}"/scheduler.confd sccache-scheduler fi } pkg_postinst() { ewarn "${PN} is experimental, please use with care" use memcached && optfeature "memcached backend support" net-misc/memcached use redis && optfeature "redis backend support" dev-db/redis }