# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 PYTHON_COMPAT=( python3_{12..14} ) inherit optfeature python-single-r1 readme.gentoo-r1 shell-completion DESCRIPTION="Google Cloud CLI" HOMEPAGE="https://docs.cloud.google.com/sdk/gcloud" SRC_URI="amd64? ( https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/${P}-linux-x86_64.tar.gz ) arm64? ( https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/${P}-linux-arm.tar.gz )" S="${WORKDIR}/google-cloud-sdk" LICENSE="Apache-2.0" SLOT="0" KEYWORDS="~amd64 ~arm64" REQUIRED_USE="${PYTHON_REQUIRED_USE}" RDEPEND="${PYTHON_DEPS} $(python_gen_cond_dep ' dev-python/absl-py[${PYTHON_USEDEP}] dev-python/antlr3-python-runtime[${PYTHON_USEDEP}] dev-python/argcomplete[${PYTHON_USEDEP}] dev-python/attrs[${PYTHON_USEDEP}] dev-python/boto3[${PYTHON_USEDEP}] dev-python/cachetools[${PYTHON_USEDEP}] dev-python/charset-normalizer[${PYTHON_USEDEP}] dev-python/certifi[${PYTHON_USEDEP}] dev-python/containerregistry[${PYTHON_USEDEP}] dev-python/crcmod[${PYTHON_USEDEP}] dev-python/dnspython[${PYTHON_USEDEP}] dev-python/fasteners[${PYTHON_USEDEP}] dev-python/frozendict[${PYTHON_USEDEP}] dev-python/httplib2[${PYTHON_USEDEP}] dev-python/inflection[${PYTHON_USEDEP}] dev-python/google-api-core[${PYTHON_USEDEP}] dev-python/google-api-python-client[${PYTHON_USEDEP}] dev-python/google-apitools[${PYTHON_USEDEP}] dev-python/google-auth[${PYTHON_USEDEP}] dev-python/google-auth-httplib2[${PYTHON_USEDEP}] dev-python/google-auth-oauthlib[${PYTHON_USEDEP}] dev-python/google-cloud-appengine-admin[${PYTHON_USEDEP}] dev-python/google-cloud-appengine-logging[${PYTHON_USEDEP}] dev-python/google-cloud-audit-log[${PYTHON_USEDEP}] dev-python/google-cloud-bigquery-logging[${PYTHON_USEDEP}] dev-python/google-cloud-bigtable[${PYTHON_USEDEP}] dev-python/google-cloud-iam[${PYTHON_USEDEP}] dev-python/google-cloud-pubsublite[${PYTHON_USEDEP}] dev-python/google-reauth[${PYTHON_USEDEP}] dev-python/googleapis-common-protos[${PYTHON_USEDEP}] dev-python/grpc-google-iam-v1[${PYTHON_USEDEP}] dev-python/grpcio[${PYTHON_USEDEP}] dev-python/idna[${PYTHON_USEDEP}] dev-python/jmespath[${PYTHON_USEDEP}] dev-python/jsonschema[${PYTHON_USEDEP}] dev-python/kubernetes[${PYTHON_USEDEP}] dev-python/lark[${PYTHON_USEDEP}] dev-python/mako[${PYTHON_USEDEP}] dev-python/oauth2client[${PYTHON_USEDEP}] dev-python/oauthlib[${PYTHON_USEDEP}] dev-python/overrides[${PYTHON_USEDEP}] dev-python/packaging[${PYTHON_USEDEP}] dev-python/ply[${PYTHON_USEDEP}] dev-python/portpicker[${PYTHON_USEDEP}] dev-python/proto-plus[${PYTHON_USEDEP}] dev-python/protobuf[${PYTHON_USEDEP}] dev-python/pygments[${PYTHON_USEDEP}] dev-python/pyasn1[${PYTHON_USEDEP}] dev-python/pyasn1-modules[${PYTHON_USEDEP}] dev-python/pyparsing[${PYTHON_USEDEP}] dev-python/pysocks[${PYTHON_USEDEP}] dev-python/python-dateutil[${PYTHON_USEDEP}] dev-python/python-dotenv[${PYTHON_USEDEP}] dev-python/python-hcl2[${PYTHON_USEDEP}] dev-python/pytz[${PYTHON_USEDEP}] dev-python/pyu2f[${PYTHON_USEDEP}] dev-python/pyyaml[${PYTHON_USEDEP}] dev-python/requests[${PYTHON_USEDEP}] dev-python/requests-oauthlib[${PYTHON_USEDEP}] dev-python/rsa[${PYTHON_USEDEP}] dev-python/ruamel-yaml[${PYTHON_USEDEP}] dev-python/six[${PYTHON_USEDEP}] dev-python/sqlparse[${PYTHON_USEDEP}] dev-python/termcolor[${PYTHON_USEDEP}] dev-python/typing-extensions[${PYTHON_USEDEP}] dev-python/uritemplate[${PYTHON_USEDEP}] dev-python/urllib3[${PYTHON_USEDEP}] dev-python/wcwidth[${PYTHON_USEDEP}] dev-python/websocket-client[${PYTHON_USEDEP}] ')" PATCHES=( "${FILESDIR}/${PN}"-589.0.0-ruamel-yaml-compat.patch "${FILESDIR}/${PN}"-589.0.0-system-antlr3.patch "${FILESDIR}/${PN}"-589.0.0-system-crcmod.patch "${FILESDIR}/${PN}"-589.0.0-system-google-cloud-protos.patch "${FILESDIR}/${PN}"-589.0.0-system-hcl2.patch "${FILESDIR}/${PN}"-589.0.0-system-ipaddress.patch "${FILESDIR}/${PN}"-589.0.0-system-oauth2client.patch "${FILESDIR}/${PN}"-589.0.0-unbundle-ml-sdk.patch ) DOCS=( RELEASE_NOTES ) DOC_CONTENTS="The following features are unavailable:\\n * Interactive gcloud shell (requires obsolete prompt_toolkit 1.x).\\n * Legacy Cloud ML Engine local prediction (bundled ML SDK removed).\\n\\n" QA_PREBUILT="usr/share/google-cloud-sdk/bin/gcloud-crc32c" src_prepare() { default # remove unused installers and bundled Python and gsutil rm -r deb rpm install.{bat,sh} \ platform/{bundledpythonunix,gsutil,gcloud-crc32c_licenses} \ bin/{gsutil,bootstrapping/gsutil.py} || die # remove bundled BigQuery dependencies, retaining the SDK-specific pyglib find platform/bq/third_party -mindepth 1 -maxdepth 1 \ ! -name pyglib -exec rm -r -- {} + || die # remove bundled dependencies, keeping SDK-specific modules find "${S}/lib/third_party" -mindepth 1 -maxdepth 1 \ ! -name gae_ext_runtime ! -name orchestration_pipelines_models \ -exec rm -rf -- {} + || die # remove legacy interactive CLI requiring prompt_toolkit 1.x rm -r lib/googlecloudsdk/command_lib/interactive || die rm lib/surface/interactive.py lib/googlecloudsdk/core/document_renderers/token_renderer.py || die # remove bundled Python 2 components find . -type d -name python2 -prune -exec rm -r {} + || die # use system dev-python/protobuf instead of bundled protobuf grep -rlZ --include='*.py' 'cloudsdk\.google\.protobuf' lib | xargs -0 -r sed -i 's/cloudsdk\.google\.protobuf/google.protobuf/g' || die # disable SDK component management sed -i '/disable_updater/s|false|true|' lib/googlecloudsdk/core/config.json || die python_fix_shebang lib/googlecloudsdk/gcloud_main.py lib/gcloud.py \ bin/bootstrapping/bq.py bin/dev_appserver.py \ platform/ext-runtime/*/bin/{detect,generate_configs} # remove generated Python bytecode find . -type d -name __pycache__ -prune -exec rm -r -- {} + || die } src_install() { einstalldocs dodir /usr/share/google-cloud-sdk cp -a "${S}"/. "${ED}"/usr/share/google-cloud-sdk || die dosym ../share/google-cloud-sdk/bin/gcloud /usr/bin/gcloud dosym ../share/google-cloud-sdk/bin/gcloud-crc32c /usr/bin/gcloud-crc32c dosym ../share/google-cloud-sdk/bin/bq /usr/bin/bq dosym ../share/google-cloud-sdk/bin/docker-credential-gcloud /usr/bin/docker-credential-gcloud dosym ../share/google-cloud-sdk/bin/git-credential-gcloud.sh /usr/bin/git-credential-gcloud.sh newbashcomp completion.bash.inc gcloud newzshcomp completion.zsh.inc _gcloud bashcomp_alias gcloud bq python_optimize "${ED}"/usr/share/google-cloud-sdk/lib/googlecloudsdk \ "${ED}"/usr/share/google-cloud-sdk/lib/surface \ "${ED}"/usr/share/google-cloud-sdk/platform/bq readme.gentoo_create_doc } pkg_postinst() { readme.gentoo_print_elog optfeature "legacy Google Cloud Storage CLI" net-misc/gsutil }