commit:     4e22c0baea377b17581747eed3958d9cf67278fb
Author:     Christian Aghyarian <c1ihvzhz <AT> 4wrd <DOT> cc>
AuthorDate: Sun Nov 30 05:04:23 2025 +0000
Commit:     Jay Faulkner <jayf <AT> gentoo <DOT> org>
CommitDate: Tue Dec  2 00:37:29 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=4e22c0ba

dev-util/claude-code: add 2.0.55

Signed-off-by: Christian Aghyarian <c1ihvzhz <AT> 4wrd.cc>
Part-of: https://github.com/gentoo/gentoo/pull/44825
Closes: https://github.com/gentoo/gentoo/pull/44825
Signed-off-by: Jay Faulkner <jayf <AT> gentoo.org>

 dev-util/claude-code/Manifest                  |  1 +
 dev-util/claude-code/claude-code-2.0.55.ebuild | 80 ++++++++++++++++++++++++++
 2 files changed, 81 insertions(+)

diff --git a/dev-util/claude-code/Manifest b/dev-util/claude-code/Manifest
index 5b74a05e78e3..2469a07c485e 100644
--- a/dev-util/claude-code/Manifest
+++ b/dev-util/claude-code/Manifest
@@ -1 +1,2 @@
 DIST claude-code-2.0.50.tgz 36332079 BLAKE2B 
e62a758b2461d57c836b7000dbc84726e9630774178e39c0f5acafde338eae77a9f3398efc5030d434961da143396ad5ca5045231080633ddcd028f261ce6869
 SHA512 
cd3e2f485af7c126355ee4074c16ed332c5cbfcec0976e4872bbfb0129e92538265d1d8ca0872cdddc9fa10194cc01e79c0ca6115492431797f838274ef3940e
+DIST claude-code-2.0.55.tgz 36634669 BLAKE2B 
7660be65d2bcb11845eaa48b2e7f926722ce73eaca9cbaa7f2188acb6db32e870ca59320fad40791acfa7f17571d9e1783532f4e2c0cfc7d8d5916edfcca0d30
 SHA512 
21563a2762a04cfe418826cb9ae3f790097c8db5df77ac86a17b6f7342f47a2670c4950c6be72e6d453453ca874675643660c08acf8ee0fd342a67ae1b348b5a

diff --git a/dev-util/claude-code/claude-code-2.0.55.ebuild 
b/dev-util/claude-code/claude-code-2.0.55.ebuild
new file mode 100644
index 000000000000..6e3380eb8890
--- /dev/null
+++ b/dev-util/claude-code/claude-code-2.0.55.ebuild
@@ -0,0 +1,80 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DESCRIPTION="Claude Code - an agentic coding tool by Anthropic"
+HOMEPAGE="https://www.anthropic.com/claude-code";
+SRC_URI="https://registry.npmjs.org/@anthropic-ai/claude-code/-/claude-code-${PV}.tgz";
+S="${WORKDIR}/package"
+
+# NOTE(JayF): claude-code is only usable via paid subscription and has a
+#             clickthrough EULA-type license. Please see $HOMEPAGE for
+#             full details.
+LICENSE="all-rights-reserved"
+SLOT="0"
+KEYWORDS="amd64"
+
+IUSE="jetbrains"
+RESTRICT="bindist strip"
+
+RDEPEND="
+       >=net-libs/nodejs-18
+       sys-apps/ripgrep
+"
+
+src_compile() {
+       # Skip, nothing to compile here.
+       :
+}
+
+src_install() {
+       dodoc README.md LICENSE.md
+
+       # We are using a strategy of "install everything that's left"
+       # so removing these here will prevent duplicates in /opt/claude-code
+       rm -f README.md LICENSE.md package.json || die
+       # remove vendored ripgrep
+       rm -rf vendor/ripgrep || die
+
+       # Install extentions these under /opt, and let users configure their
+       # IDEs appropriately if they have opted-into having them installed.
+       # Normally I wouldn't allow a few megs of data to be USE-flag-toggled,
+       # but removing these cuts the already-small package size in half, so
+       # it seems worth it.
+       use jetbrains || rm -r vendor/${PN}-jetbrains-plugin || die
+
+       insinto /opt/${PN}
+       doins -r ./*
+       fperms a+x opt/claude-code/cli.js
+
+       dodir /opt/bin
+       dosym -r /opt/${PN}/cli.js /opt/bin/claude
+
+       # https://bugs.gentoo.org/962002 indicates that Claude doesn't use
+       # path to find the `rg` binary. Gross. So we symlink it into the place
+       # they expect it to be. Thanks to Leo Douglas for the patch.
+       if use amd64; then
+               dodir /opt/${PN}/vendor/ripgrep/x64-linux
+               dosym -r /usr/bin/rg /opt/${PN}/vendor/ripgrep/x64-linux/rg
+       elif use arm64; then
+               dodir /opt/{$PN}/vendor/ripgrep/arm64-linux
+               dosym -r /usr/bin/rg /opt/${PN}/vendor/ripgrep/arm64-linux/rg
+       fi
+
+       insinto /etc/${PN}
+       doins "${FILESDIR}/managed-settings.json"
+
+       # nodejs defaults to disabling deprecation warnings when running code
+       # from any path containing a node_modules directory. Since we're 
installing
+       # outside of the realm of npm, explicitly pass an option to disable
+       # deprecation warnings so it behaves the same as it does if installed 
via
+       # npm. It's proprietary; not like Gentoo users can fix the warnings 
anyway.
+       sed -i 's/env node/env -S node --no-deprecation/' 
"${ED}/opt/claude-code/cli.js"
+}
+
+pkg_preinst() {
+       if test -f "${ROOT}/etc/${PN}/policies.json"; then
+               mv "${ROOT}/etc/${PN}/policies.json" 
"${ROOT}/etc/${PN}/managed-settings.json"
+       fi
+}

Reply via email to