From nobody Mon Apr 27 10:14:17 2026 X-Original-To: dev-commits-ports-main@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4g3ztx5hdSz6Zqtw for ; Mon, 27 Apr 2026 10:14:17 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4g3ztx5B3sz3Twb for ; Mon, 27 Apr 2026 10:14:17 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1777284857; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=fPMphiN1LtqdZ1Pas4FTaW/qkky/ocSPp0sdFpVW+Ec=; b=V3AdQqH6rBnsdDypY5nAWOFxpwAvhlh9hisYCr1dFz4QvPMbjC7RDHNY855RPj2Y7NOsyB STAxrjg9/XIZCgWDGVF97DUB+2D+cnPrTPhVF8m8OlPfXIkqHAjARBJ6EbKTsvaFmdd78d sxuxeUq0jNyIqDHlY2KeUydOlFsSIiXQUeCLePiJCohSA08ONzK5QkckKWMaNSPvYgbE9D aD/DdmOH3byWVgrOndCTJecSWHoDbqdXpblzQwA6c3XNZK2mDxS7IPfV3KMnPl+sqwB8OW cCjug+7E7EqTQDKJPVX68Wp6Z3eL397BhMWWN8F1yr2Pb/2Mxpd1W6mih4p+pA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1777284857; a=rsa-sha256; cv=none; b=BI1WZdP5EfIjpcO2ZYW6iYrnJjRnOukVBKbbYtmWARYEADsl7PD8xYUVsNToyzuvmdW2jZ qIXSMiXwGNHg0S4qcyev2qsaGfPN2Mg9VnUF0rFHxR0yvakS5m7payQkMoAx3Yrb9WkEir jYM1qzm2iGPepVADNlLVzxd4+zUDy5J6M7VyFnkHQbFFKKZeZbjxUSWd/JcAO2Mdb9CRMV hx0k8BGU7bU6BI+QsWzQAuRs5VX3QVCsngBSiahbJcFIvjtL6TqQuAPTCU6Z4Mym8GT5sP TwmaXfrLUOxELE+twFsl+rYaDRMMWvx/7Yu9++Ej1vwt5mIbkGsoKVIZkYe0aw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1777284857; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=fPMphiN1LtqdZ1Pas4FTaW/qkky/ocSPp0sdFpVW+Ec=; b=oRH5s3UNEW7QnwkXgHs7TXbOIUDsSUQTO/+NzpjopEQLdmRuFS1swC/SdncQXbgV4ftKWv 3n25yWPCB7rcpAPpXpWOviaohGdBpD6+ouzSkdo8efg231eBLSE0s7mTd5unA6EI2Raa7F c4cm5lpseuMIBcldxUCkvldIL0v6DYdMCQcrtu8B4zDlNmzx8eJgv09rAW26+SOU6avrdI XlxnhD/1rdbUktIS4jDSVGn44Ot9WhkTC4X0tGMayCDHdBmb9OMmW06E2RJ3NmgtRsjV2d FMZlP2Rj0YjxyP6kNPfnjG5x4H6SpDIelklJFxzL10OeQpdJRE7Y/7HckD/NuQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4g3ztx4nFPz12kV for ; Mon, 27 Apr 2026 10:14:17 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 4643c by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 27 Apr 2026 10:14:17 +0000 To: ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org From: Dave Cottlehuber Subject: git: 2cc531514db9 - main - misc/py-aider-chat: Remove port List-Id: Commits to the main branch of the FreeBSD ports repository List-Archive: https://lists.freebsd.org/archives/dev-commits-ports-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-ports-main@freebsd.org Sender: owner-dev-commits-ports-main@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: dch X-Git-Repository: ports X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 2cc531514db964d09614204ad13f007003f97a54 Auto-Submitted: auto-generated Date: Mon, 27 Apr 2026 10:14:17 +0000 Message-Id: <69ef36f9.4643c.5adc0765@gitrepo.freebsd.org> The branch main has been updated by dch: URL: https://cgit.FreeBSD.org/ports/commit/?id=2cc531514db964d09614204ad13f007003f97a54 commit 2cc531514db964d09614204ad13f007003f97a54 Author: Dave Cottlehuber AuthorDate: 2026-04-27 10:12:45 +0000 Commit: Dave Cottlehuber CommitDate: 2026-04-27 10:13:29 +0000 misc/py-aider-chat: Remove port aider-chat upstream has stopped doing releases, and its dependencies have drifted too much to be practically maintained within the ports tree. --- MOVED | 2 + misc/py-aider-chat/Makefile | 85 ------------------------ misc/py-aider-chat/distinfo | 3 - misc/py-aider-chat/files/patch-aider_commands.py | 32 --------- misc/py-aider-chat/files/patch-aider_scrape.py | 82 ----------------------- misc/py-aider-chat/files/patch-pyproject.toml | 11 --- misc/py-aider-chat/pkg-descr | 7 -- 7 files changed, 2 insertions(+), 220 deletions(-) diff --git a/MOVED b/MOVED index 2d35d1af2139..c39762331e1e 100644 --- a/MOVED +++ b/MOVED @@ -5253,3 +5253,5 @@ www/py-requests-cache0|www/py-requests-cache|2026-04-18|Remove obsoleted port. U sysutils/py-azure-cli-base||2026-04-21|Remove obsoleted port games/coronapoker||2026-04-25|Remove for security concerns: downloads closed source binary modules, should not be restored unless https://github.com/tonikelope/coronapoker/issues/7 is addressed sysutils/py-ioztat|filesystems/py-ioztat|2026-04-27|Move to more appropriate category +misc/py-aider-chat||2026-04-27|Upstream project has stopped active releases and doesn't match ports dependencies + diff --git a/misc/py-aider-chat/Makefile b/misc/py-aider-chat/Makefile deleted file mode 100644 index 6ae1445f389e..000000000000 --- a/misc/py-aider-chat/Makefile +++ /dev/null @@ -1,85 +0,0 @@ -PORTNAME= aider_chat -DISTVERSION= 0.86.1 -PORTREVISION= 1 -CATEGORIES= misc python -MASTER_SITES= PYPI -PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} -DISTNAME= aider_chat-${PORTVERSION} - -MAINTAINER= dch@FreeBSD.org -COMMENT= AI pair programming in your terminal -WWW= https://aider.chat/ - -LICENSE= APACHE20 -LICENSE_FILE= ${WRKSRC}/LICENSE.txt - -BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}setuptools-scm>=8.0:devel/py-setuptools-scm@${PY_FLAVOR} \ - ${PYTHON_PKGNAMEPREFIX}setuptools>=63:devel/py-setuptools@${PY_FLAVOR} \ - ${PYTHON_PKGNAMEPREFIX}wheel>=0.44:devel/py-wheel@${PY_FLAVOR} -RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}arrow>=1.3:devel/py-arrow@${PY_FLAVOR} \ - ${PYTHON_PKGNAMEPREFIX}SoundFile>=0.12:audio/py-SoundFile@${PY_FLAVOR} \ - ${PYTHON_PKGNAMEPREFIX}aiosqlite>0:databases/py-aiosqlite@${PY_FLAVOR} \ - ${PYTHON_PKGNAMEPREFIX}backoff>=2.2:devel/py-backoff@${PY_FLAVOR} \ - ${PYTHON_PKGNAMEPREFIX}beautifulsoup>=4.12:www/py-beautifulsoup@${PY_FLAVOR} \ - ${PYTHON_PKGNAMEPREFIX}blinker>=1.8:devel/py-blinker@${PY_FLAVOR} \ - ${PYTHON_PKGNAMEPREFIX}cachetools>=5.5:devel/py-cachetools@${PY_FLAVOR} \ - ${PYTHON_PKGNAMEPREFIX}colorama>=0.4.6:devel/py-colorama@${PY_FLAVOR} \ - ${PYTHON_PKGNAMEPREFIX}configargparse>=1.5:devel/py-configargparse@${PY_FLAVOR} \ - ${PYTHON_PKGNAMEPREFIX}diff-match-patch>=0:textproc/py-diff-match-patch@${PY_FLAVOR} \ - ${PYTHON_PKGNAMEPREFIX}diskcache>=5.6.0:devel/py-diskcache@${PY_FLAVOR} \ - ${PYTHON_PKGNAMEPREFIX}flake8>=7.1.1:devel/py-flake8@${PY_FLAVOR} \ - ${PYTHON_PKGNAMEPREFIX}gitpython>=3.1.30:devel/py-gitpython@${PY_FLAVOR} \ - ${PYTHON_PKGNAMEPREFIX}greenlet>=3.0.3:devel/py-greenlet@${PY_FLAVOR} \ - ${PYTHON_PKGNAMEPREFIX}grep-ast>=0.3.2:textproc/py-grep-ast@${PY_FLAVOR} \ - ${PYTHON_PKGNAMEPREFIX}huggingface-hub>=0.24.6:misc/py-huggingface-hub@${PY_FLAVOR} \ - ${PYTHON_PKGNAMEPREFIX}importlib-resources>=0:devel/py-importlib-resources@${PY_FLAVOR} \ - ${PYTHON_PKGNAMEPREFIX}json5>=0.9.11:devel/py-json5@${PY_FLAVOR} \ - ${PYTHON_PKGNAMEPREFIX}jsonschema>=4.23.0:devel/py-jsonschema@${PY_FLAVOR} \ - ${PYTHON_PKGNAMEPREFIX}litellm>=1.44.7:misc/py-litellm@${PY_FLAVOR} \ - ${PYTHON_PKGNAMEPREFIX}mixpanel>=4.10:misc/py-mixpanel@${PY_FLAVOR} \ - ${PYTHON_PKGNAMEPREFIX}networkx>=3.3:math/py-networkx@${PY_FLAVOR} \ - ${PYTHON_PKGNAMEPREFIX}numpy1<2.0:math/py-numpy1@${PY_FLAVOR} \ - ${PYTHON_PKGNAMEPREFIX}openai>=1.43.1:misc/py-openai@${PY_FLAVOR} \ - ${PYTHON_PKGNAMEPREFIX}oslex>=0.1.3:devel/py-oslex@${PY_FLAVOR} \ - ${PYTHON_PKGNAMEPREFIX}packaging>=24.1:devel/py-packaging@${PY_FLAVOR} \ - ${PYTHON_PKGNAMEPREFIX}pathspec>=0.12.1:devel/py-pathspec@${PY_FLAVOR} \ - ${PYTHON_PKGNAMEPREFIX}pexpect>=4.9.0:misc/py-pexpect@${PY_FLAVOR} \ - ${PYTHON_PKGNAMEPREFIX}pillow>=10.4.0:graphics/py-pillow@${PY_FLAVOR} \ - ${PYTHON_PKGNAMEPREFIX}posthog>=4.0.1:misc/py-posthog@${PY_FLAVOR} \ - ${PYTHON_PKGNAMEPREFIX}prompt-toolkit>=3.0.47:devel/py-prompt-toolkit@${PY_FLAVOR} \ - ${PYTHON_PKGNAMEPREFIX}psutil>=5.8.0:sysutils/py-psutil@${PY_FLAVOR} \ - ${PYTHON_PKGNAMEPREFIX}pydub>=0.25:audio/py-pydub@${PY_FLAVOR} \ - ${PYTHON_PKGNAMEPREFIX}pypandoc>=1.5:textproc/py-pypandoc@${PY_FLAVOR} \ - ${PYTHON_PKGNAMEPREFIX}pyperclip>=1.7.0:devel/py-pyperclip@${PY_FLAVOR} \ - ${PYTHON_PKGNAMEPREFIX}pyyaml-include>=1.2:devel/py-pyyaml-include@${PY_FLAVOR} \ - ${PYTHON_PKGNAMEPREFIX}rich>=13.8:textproc/py-rich@${PY_FLAVOR} \ - ${PYTHON_PKGNAMEPREFIX}scipy>=1.11,1:science/py-scipy@${PY_FLAVOR} \ - ${PYTHON_PKGNAMEPREFIX}shtab>0:devel/py-shtab@${PY_FLAVOR} \ - ${PYTHON_PKGNAMEPREFIX}socksio>=1<2:net/py-socksio@${PY_FLAVOR} \ - ${PYTHON_PKGNAMEPREFIX}sounddevice>=0.5.0:audio/py-sounddevice@${PY_FLAVOR} \ - ${PYTHON_PKGNAMEPREFIX}streamlit>=1.38:www/py-streamlit@${PY_FLAVOR} \ - ${PYTHON_PKGNAMEPREFIX}tiktoken>=0.7.0:textproc/py-tiktoken@${PY_FLAVOR} \ - ${PYTHON_PKGNAMEPREFIX}tokenizers>=0.20.0:textproc/py-tokenizers@${PY_FLAVOR} \ - ${PYTHON_PKGNAMEPREFIX}tree-sitter>=0.20,<0.22.2:devel/py-tree-sitter@${PY_FLAVOR} \ - ${PYTHON_PKGNAMEPREFIX}watchfiles>=0:devel/py-watchfiles@${PY_FLAVOR} -# missing dependencies -# playwright its a chromium browser automation library -# watchdog is pulled in by streamlit -# google-generativeai is not a popular aider dependency - -USES= python shebangfix -USE_PYTHON= autoplist concurrent pep517 -SHEBANG_FILES= aider/coders/base_coder.py aider/coders/search_replace.py - -NO_ARCH= yes - -PORTDOCS= README.md - -OPTIONS_DEFINE= DOCS - -post-install-DOCS-on: - @${MKDIR} ${STAGEDIR}${DOCSDIR} - ${INSTALL_MAN} ${PORTDOCS:S|^|${WRKSRC}/|} \ - ${STAGEDIR}${DOCSDIR} - -.include diff --git a/misc/py-aider-chat/distinfo b/misc/py-aider-chat/distinfo deleted file mode 100644 index 19d993493826..000000000000 --- a/misc/py-aider-chat/distinfo +++ /dev/null @@ -1,3 +0,0 @@ -TIMESTAMP = 1756024923 -SHA256 (aider_chat-0.86.1.tar.gz) = 48e489d20a4dfdd90ac4acc781f0170f688aaa5c5f2017d035e2d947fb801bbb -SIZE (aider_chat-0.86.1.tar.gz) = 1314126 diff --git a/misc/py-aider-chat/files/patch-aider_commands.py b/misc/py-aider-chat/files/patch-aider_commands.py deleted file mode 100644 index cfa6e67a6b58..000000000000 --- a/misc/py-aider-chat/files/patch-aider_commands.py +++ /dev/null @@ -1,32 +0,0 @@ ---- aider/commands.py.orig 2025-05-09 22:41:18 UTC -+++ aider/commands.py -@@ -21,7 +21,7 @@ from aider.run_cmd import run_cmd - from aider.llm import litellm - from aider.repo import ANY_GIT_ERROR - from aider.run_cmd import run_cmd --from aider.scrape import Scraper, install_playwright -+from aider.scrape import Scraper - from aider.utils import is_image_file - - from .dump import dump # noqa: F401 -@@ -220,20 +220,6 @@ class Commands: - return - - self.io.tool_output(f"Scraping {url}...") -- if not self.scraper: -- disable_playwright = getattr(self.args, "disable_playwright", False) -- if disable_playwright: -- res = False -- else: -- res = install_playwright(self.io) -- if not res: -- self.io.tool_warning("Unable to initialize playwright.") -- -- self.scraper = Scraper( -- print_error=self.io.tool_error, -- playwright_available=res, -- verify_ssl=self.verify_ssl, -- ) - - content = self.scraper.scrape(url) or "" - content = f"Here is the content of {url}:\n\n" + content diff --git a/misc/py-aider-chat/files/patch-aider_scrape.py b/misc/py-aider-chat/files/patch-aider_scrape.py deleted file mode 100644 index ba103c6f725e..000000000000 --- a/misc/py-aider-chat/files/patch-aider_scrape.py +++ /dev/null @@ -1,82 +0,0 @@ ---- aider/scrape.py.orig 2025-05-09 22:41:18 UTC -+++ aider/scrape.py -@@ -92,7 +92,7 @@ class Scraper: - else: - self.print_error = print - -- self.playwright_available = playwright_available -+ self.playwright_available = False - self.verify_ssl = verify_ssl - - def scrape(self, url): -@@ -103,10 +103,7 @@ class Scraper: - `url` - the URL to scrape. - """ - -- if self.playwright_available: -- content, mime_type = self.scrape_with_playwright(url) -- else: -- content, mime_type = self.scrape_with_httpx(url) -+ content, mime_type = self.scrape_with_httpx(url) - - if not content: - self.print_error(f"Failed to retrieve content from {url}") -@@ -138,58 +135,6 @@ class Scraper: - ] - return any(re.search(pattern, content, re.IGNORECASE) for pattern in html_patterns) - return False -- -- # Internals... -- def scrape_with_playwright(self, url): -- import playwright # noqa: F401 -- from playwright.sync_api import Error as PlaywrightError -- from playwright.sync_api import TimeoutError as PlaywrightTimeoutError -- from playwright.sync_api import sync_playwright -- -- with sync_playwright() as p: -- try: -- browser = p.chromium.launch() -- except Exception as e: -- self.playwright_available = False -- self.print_error(str(e)) -- return None, None -- -- try: -- context = browser.new_context(ignore_https_errors=not self.verify_ssl) -- page = context.new_page() -- -- user_agent = page.evaluate("navigator.userAgent") -- user_agent = user_agent.replace("Headless", "") -- user_agent = user_agent.replace("headless", "") -- user_agent += " " + aider_user_agent -- -- page.set_extra_http_headers({"User-Agent": user_agent}) -- -- response = None -- try: -- response = page.goto(url, wait_until="networkidle", timeout=5000) -- except PlaywrightTimeoutError: -- print(f"Page didn't quiesce, scraping content anyway: {url}") -- response = None -- except PlaywrightError as e: -- self.print_error(f"Error navigating to {url}: {str(e)}") -- return None, None -- -- try: -- content = page.content() -- mime_type = None -- if response: -- content_type = response.header_value("content-type") -- if content_type: -- mime_type = content_type.split(";")[0] -- except PlaywrightError as e: -- self.print_error(f"Error retrieving page content: {str(e)}") -- content = None -- mime_type = None -- finally: -- browser.close() -- -- return content, mime_type - - def scrape_with_httpx(self, url): - import httpx diff --git a/misc/py-aider-chat/files/patch-pyproject.toml b/misc/py-aider-chat/files/patch-pyproject.toml deleted file mode 100644 index c6b5ebe68b8c..000000000000 --- a/misc/py-aider-chat/files/patch-pyproject.toml +++ /dev/null @@ -1,11 +0,0 @@ ---- pyproject.toml.orig 2025-04-14 23:24:32 UTC -+++ pyproject.toml -@@ -41,7 +41,7 @@ include = ["aider"] - include = ["aider"] - - [build-system] --requires = ["setuptools>=68", "setuptools_scm[toml]>=8"] -+requires = ["setuptools>=61", "setuptools_scm[toml]>=8"] - build-backend = "setuptools.build_meta" - - [tool.setuptools_scm] diff --git a/misc/py-aider-chat/pkg-descr b/misc/py-aider-chat/pkg-descr deleted file mode 100644 index 0c86531a716e..000000000000 --- a/misc/py-aider-chat/pkg-descr +++ /dev/null @@ -1,7 +0,0 @@ -Aider is a command line tool that lets you pair program with LLMs, to edit -code stored in your local git repository. Aider will directly edit the -code in your local source files, and git commit the changes with sensible -commit messages. You can start a new project or work with an existing git -repo. Aider is unique in that it lets you ask for changes to pre-existing, -larger codebases. Aider works well with GPT-4o, Claude 3 Opus, GPT-3.5 and -supports connecting to almost any LLM.