forked from gentoo/gentoo
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Signed-off-by: Sam James <[email protected]>
- Loading branch information
1 parent
2c9e2b6
commit ae6b394
Showing
3 changed files
with
125 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,5 +1,7 @@ | ||
DIST ccache-4.5.1.tar.xz 513008 BLAKE2B 637b6d36c169bc742efd165569879a47405c2884918ed3731186e8176c926fa0e8e9cd648756d501ae3b741c671e2399cfdb0bc216410bc64826d4fe00d69498 SHA512 267dcc6b41270eeffe029d13e58eca3399540037cc19dc58bb5ebeb7dcc51b201fbde91c9824eaee5b14fbf28bb7304b78d1340118bc72e56b80ff148575bc56 | ||
DIST ccache-4.6.1.tar.xz 529040 BLAKE2B b4c1cae8b0c836c9e562488c79524ddbba4c995946e16f87c9b856e32961b454dd205bacdb030c283477be66d357b0fb5e67c9ad38715359b73f714aa73baee9 SHA512 361427ccecd74e8c25ca6a98ef3d3c125d81862196767eb383f6f8159fed8e1695cd5bc8731cb591c23c55352f0114a088b32a673717711efbfbb178a6c08c82 | ||
DIST ccache-4.6.1.tar.xz.asc 833 BLAKE2B 2f9ca555a014cfc9dbc354f43d4db0d79f89a6f84c57a7b9452324854abb39cd21af1071404278c694212f38c3975c7fa702f7cc475e44f75e9b132e53088d5d SHA512 5494844f99232c5bc21f52db461f2a03d706e38bd73e147ebda89a4ce57fc2b80a920e42f7de539b9a5837ac8b515b309a29e045e479910c95a95d3c839b837d | ||
DIST ccache-4.6.2.tar.xz 530952 BLAKE2B ef0fec6438ea69b109e918decb5e4a768ae0a5350e124b18cf700af7d307ed7a46509d02a9499aee87ed76a8fe5b9e4523ffec1fcc37b9b0a5ad56e5e713f8b8 SHA512 324c09c7cc76425552fd88e7483527c20ae977c817de1f0dff8a0102ae98f1c35d5e08c8a49c83ad76f6564ea912d9a500948051baa028139074913a6e07e452 | ||
DIST ccache-4.6.2.tar.xz.asc 833 BLAKE2B dc4103d15808f044e47e27967df0b3ac063e40c4a40175958c99cf2609549657f4eec761f7d1103d8995ed7a86ad844cadd411fc4a4928901d78191f2dbe291b SHA512 66f42af7fb43ce1e701adaf911829d6690388e69249e6d97e0f51c31510f4198c22a7fdf68489f7b59fa07d311b2391be02d0a6702e8d890401318e4bfafd900 | ||
DIST ccache-4.6.tar.xz 526084 BLAKE2B 2e43d0a3a004117e8c535ecb2f09c1273f5bec2b3704710abbc3034749438df33ef27db37d5bfbd48d83d60bdd3f738d3dbf356eff21166fee03780969dd1f24 SHA512 3a53fedfa91034ee876e1a4a672de25498fe53c6c80901bd4976049eb35e0479275ceb6627f0e8cf76d677d041d216f731daf4bad142e454e775b5e7f05e3e4e | ||
DIST ccache-4.6.tar.xz.asc 833 BLAKE2B e0fc7677087006e3c6ac2bb7285915a56f233b4058c738c9d5967d29baf62b1b072ad2da4bf12f076440c68f39be77333d001d68703c32e26bd88a42b9e3ce71 SHA512 af09ffcdbba5e1e26047c7692dd0cf61f07869720d5849f59cbc0fe0f61c11aa419226d4d05061d23b5a03e8ec995e4d0e5af398af096bd19dbe35bf460eee0c |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,93 @@ | ||
# Copyright 1999-2022 Gentoo Authors | ||
# Distributed under the terms of the GNU General Public License v2 | ||
|
||
EAPI=8 | ||
|
||
VERIFY_SIG_OPENPGP_KEY_PATH="${BROOT}"/usr/share/openpgp-keys/joelrosdahl.asc | ||
inherit cmake toolchain-funcs flag-o-matic verify-sig | ||
|
||
DESCRIPTION="Fast compiler cache" | ||
HOMEPAGE="https://ccache.dev/" | ||
SRC_URI="https://github.com/ccache/ccache/releases/download/v${PV}/${P}.tar.xz" | ||
SRC_URI+=" verify-sig? ( https://github.com/ccache/ccache/releases/download/v${PV}/${P}.tar.xz.asc )" | ||
|
||
LICENSE="GPL-3 LGPL-3" | ||
SLOT="0" | ||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" | ||
# Enable 'static-c++' by default to make 'gcc' ebuild Just Work: bug #761220 | ||
IUSE="doc redis +static-c++ test" | ||
RESTRICT="!test? ( test )" | ||
|
||
DEPEND="app-arch/zstd:= | ||
redis? ( dev-libs/hiredis:= )" | ||
RDEPEND="${DEPEND} | ||
dev-util/shadowman | ||
sys-apps/gentoo-functions" | ||
# Needed for eselect calls in pkg_* | ||
IDEPEND="dev-util/shadowman" | ||
|
||
# clang-specific tests use dev-libs/elfutils to compare objects for equality. | ||
# Let's pull in the dependency unconditionally. | ||
DEPEND+=" test? ( dev-libs/elfutils )" | ||
BDEPEND=" doc? ( dev-ruby/asciidoctor ) | ||
verify-sig? ( sec-keys/openpgp-keys-joelrosdahl )" | ||
|
||
DOCS=( doc/{AUTHORS,MANUAL,NEWS}.adoc CONTRIBUTING.md README.md ) | ||
|
||
PATCHES=( | ||
"${FILESDIR}"/${PN}-3.5-nvcc-test.patch | ||
"${FILESDIR}"/${PN}-4.0-objdump.patch | ||
"${FILESDIR}"/${PN}-4.6.2-avoid-run-user.patch | ||
) | ||
|
||
src_prepare() { | ||
cmake_src_prepare | ||
|
||
sed \ | ||
-e "/^EPREFIX=/s:'':'${EPREFIX}':" \ | ||
"${FILESDIR}"/ccache-config-3 > ccache-config || die | ||
} | ||
|
||
src_configure() { | ||
# Mainly used in tests | ||
tc-export CC OBJDUMP | ||
|
||
# Avoid dependency on libstdc++.so. Useful for cases when | ||
# we would like to use ccache to build older gcc which injects | ||
# into ccache locally built (possibly outdated) libstdc++ | ||
# See bug #761220 for examples. | ||
# | ||
# Ideally gcc should not use LD_PRELOAD to avoid this type of failure. | ||
use static-c++ && append-ldflags -static-libstdc++ | ||
|
||
local mycmakeargs=( | ||
-DENABLE_DOCUMENTATION=$(usex doc) | ||
-DENABLE_TESTING=$(usex test) | ||
-DZSTD_FROM_INTERNET=OFF | ||
-DREDIS_STORAGE_BACKEND=$(usex redis) | ||
) | ||
|
||
use redis && mycmakeargs+=( -DHIREDIS_FROM_INTERNET_DEFAULT=OFF ) | ||
|
||
cmake_src_configure | ||
} | ||
|
||
src_install() { | ||
cmake_src_install | ||
|
||
dobin ccache-config | ||
insinto /usr/share/shadowman/tools | ||
newins - ccache <<<"${EPREFIX}/usr/lib/ccache/bin" | ||
} | ||
|
||
pkg_prerm() { | ||
if [[ -z ${REPLACED_BY_VERSION} && -z ${ROOT} ]] ; then | ||
eselect compiler-shadow remove ccache | ||
fi | ||
} | ||
|
||
pkg_postinst() { | ||
if [[ -z ${ROOT} ]] ; then | ||
eselect compiler-shadow update ccache | ||
fi | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,30 @@ | ||
Gentoo's sandbox does not whitelist this path by default yet. | ||
|
||
(4.1 update: | ||
https://github.com/ccache/ccache/issues/984 | ||
https://github.com/ccache/ccache/issues/1044 | ||
https://github.com/ccache/ccache/commit/a0edd4294f6a5a2d3f0c7b01273736f975f250e1 | ||
https://github.com/ccache/ccache/commit/ef2e922f9642f943199138447b29ec53fa63ea68 | ||
... gets us closer, but not there yet.) | ||
|
||
And see https://github.com/ccache/ccache/discussions/1086#discussioncomment-3327565. | ||
|
||
https://bugs.gentoo.org/837362 for 4.6 issue. | ||
--- a/src/Config.cpp | ||
+++ b/src/Config.cpp | ||
@@ -1039,14 +1039,5 @@ Config::check_key_tables_consistency() | ||
std::string | ||
Config::default_temporary_dir() const | ||
{ | ||
- static const std::string run_user_tmp_dir = [] { | ||
-#ifdef HAVE_GETEUID | ||
- auto dir = FMT("/run/user/{}/ccache-tmp", geteuid()); | ||
- if (Util::create_dir(dir) && access(dir.c_str(), W_OK) == 0) { | ||
- return dir; | ||
- } | ||
-#endif | ||
- return std::string(); | ||
- }(); | ||
- return !run_user_tmp_dir.empty() ? run_user_tmp_dir : m_cache_dir + "/tmp"; | ||
+ return m_cache_dir + "/tmp"; | ||
} |