Date: Tue, 14 Apr 2026 08:28:19 +0000 From: Yuri Victorovich <yuri@FreeBSD.org> To: ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org Subject: git: 551343efa5e1 - main - misc/claude-code: Add option USE_CURL_USER_AGENT Message-ID: <69ddfaa3.18cd4.1079650d@gitrepo.freebsd.org>
index | next in thread | raw e-mail
The branch main has been updated by yuri: URL: https://cgit.FreeBSD.org/ports/commit/?id=551343efa5e137cd095e99d252ce180d35a5d1c6 commit 551343efa5e137cd095e99d252ce180d35a5d1c6 Author: Yuri Victorovich <yuri@FreeBSD.org> AuthorDate: 2026-04-14 07:54:52 +0000 Commit: Yuri Victorovich <yuri@FreeBSD.org> CommitDate: 2026-04-14 08:28:16 +0000 misc/claude-code: Add option USE_CURL_USER_AGENT Problem: Certain URLs reject requests from AI agents like Claude. Example is https://bugs.freebsd.org. Solution: The USE_CURL_USER_AGENT option will make Claude to look like Curl. Benerits to the user: Claude will be able to read such URLs, summarize their content, or perform other actions with the contents. This makes Claude more usable when it comes to such protected URLs. How it works: Claude's Fetch tool uses the rgq() function in cli.js which returns: Claude-User (claude-code/2.1.105; +https://support.anthropic.com/) This UA is explicitly blocked by Anubis bot protection on bugs.freebsd.org (and elsewhere), returning a ~2KB "Access Denied" page. With USE_CURL_USER_AGENT=ON the post-extract-USE_CURL_USER_AGENT-on target patches rgq() to return curl/8.19.0 (version detected from the installed curl at build time). --- misc/claude-code/Makefile | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/misc/claude-code/Makefile b/misc/claude-code/Makefile index 69cce1592da3..d270ab99c8cf 100644 --- a/misc/claude-code/Makefile +++ b/misc/claude-code/Makefile @@ -1,5 +1,6 @@ PORTNAME= claude-code DISTVERSION= 2.1.105 +PORTREVISION= 1 CATEGORIES= misc # machine-learning DISTFILES= ${PORTNAME}-${DISTVERSION}${EXTRACT_SUFX} @@ -12,6 +13,7 @@ FETCH_DEPENDS= cargo:lang/rust \ jq:textproc/jq \ npm:www/npm \ ${LOCALBASE}/share/certs/ca-root-nss.crt:security/ca_root_nss +EXTRACT_DEPENDS= curl:ftp/curl RUN_DEPENDS= rg:textproc/ripgrep USES= nodejs:run @@ -19,11 +21,12 @@ USES= nodejs:run JS_ARCH= ${ARCH:S/amd64/x64/:S/aarch64/arm64/:S/i386/ia32/:S/powerpc64le/ppc64le/:S/powerpc64/ppc64/:C/armv[67]/arm/} # modeled after electron.mk PLIST_SUB= JS_ARCH=${JS_ARCH} -OPTIONS_DEFINE= AUDIO_CAPTURE -OPTIONS_DEFAULT= AUDIO_CAPTURE +OPTIONS_DEFINE= AUDIO_CAPTURE USE_CURL_USER_AGENT +OPTIONS_DEFAULT= AUDIO_CAPTURE USE_CURL_USER_AGENT OPTIONS_SUB= yes AUDIO_CAPTURE_DESC= Build native audio capture module for FreeBSD +USE_CURL_USER_AGENT_DESC= Use curl User-Agent for web fetching to bypass bot-blocking filters (e.g. Anubis) AUDIO_CAPTURE_BUILD_DEPENDS= ${LOCALBASE}/bin/cargo:lang/rust \ pkgconf:devel/pkgconf AUDIO_CAPTURE_LIB_DEPENDS= libasound.so:audio/alsa-lib @@ -77,6 +80,13 @@ post-extract-AUDIO_CAPTURE-on: -e 's|q!=="darwin"&&q!=="linux"&&q!=="win32"|q!=="darwin"\&\&q!=="linux"\&\&q!=="win32"\&\&q!=="freebsd"|' \ ${CLI_JS} +post-extract-USE_CURL_USER_AGENT-on: + # patch cli.js to use a curl-style User-Agent for web fetching + @_V=$$(${LOCALBASE}/bin/curl --version 2>/dev/null | head -1 | ${AWK} '{print $$2}'); \ + ${REINPLACE_CMD} -i '' \ + -e 's|function rgq(){return`Claude-User ($${oA()}; +https://support.anthropic.com/)`}|function rgq(){return"curl/'"$$_V"'"}|' \ + ${CLI_JS} + do-build: .if ${PORT_OPTIONS:MAUDIO_CAPTURE} @${ECHO_MSG} "====> Building audio-capture for FreeBSD amd64..."home | help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?69ddfaa3.18cd4.1079650d>
