Skip to content

Text files have overzealous prefix replacement, with no way to disable #19743

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
3 tasks done
p-linnane opened this issue Apr 11, 2025 · 6 comments
Open
3 tasks done
Labels
help wanted We want help addressing this

Comments

@p-linnane
Copy link
Member

brew doctor output

Your system is ready to brew.

Verification

brew config output

HOMEBREW_VERSION: 4.4.29-59-g7b34fcc
ORIGIN: https://github.com/Homebrew/brew
HEAD: 7b34fcc330801f31e204959d8e6371fb28957016
Last commit: 4 hours ago
Branch: master
Core tap HEAD: 027805772a784816d6bc8e9326df27b8a8634dde
Core tap last commit: 6 minutes ago
Core cask tap HEAD: 25076a3151a70449453597a7b5f9ac24f53a942c
Core cask tap last commit: 13 minutes ago
HOMEBREW_PREFIX: /opt/homebrew
HOMEBREW_CASK_OPTS: []
HOMEBREW_DEVELOPER: set
HOMEBREW_DISPLAY_INSTALL_TIMES: set
HOMEBREW_EDITOR: /opt/homebrew/bin/code
HOMEBREW_EVAL_ALL: set
HOMEBREW_FORCE_BREWED_CURL: set
HOMEBREW_FORCE_BREWED_GIT: set
HOMEBREW_LIVECHECK_AUTOBUMP: set
HOMEBREW_MAKE_JOBS: 14
HOMEBREW_NO_ENV_HINTS: set
HOMEBREW_NO_INSTALL_FROM_API: set
HOMEBREW_SORBET_RUNTIME: set
HOMEBREW_UPGRADE_GREEDY: set
HOMEBREW_VERIFY_ATTESTATIONS: set
Homebrew Ruby: 3.3.7 => /opt/homebrew/Library/Homebrew/vendor/portable-ruby/3.3.7/bin/ruby
CPU: 14-core 64-bit arm_palma
Clang: 17.0.0 build 1700
Git: 2.49.0 => /opt/homebrew/opt/git/bin/git
Curl: 8.13.0 => /opt/homebrew/opt/curl/bin/curl
macOS: 15.4-arm64
CLT: 16.3.0.0.1.1742442376
Xcode: 16.3
Rosetta 2: false

What were you trying to do (and why)?

An :all bottle should be created in Homebrew/homebrew-core#219712, but the publish job fails.

What happened (include all command output)?

langgraph-cli should have an `:all` bottle but one cannot be created:
[
  {
    "filename": "langgraph-cli-0.2.3.arm64_linux.bottle.tar.gz",
    "local_filename": "langgraph-cli--0.2.3.arm64_linux.bottle.tar.gz",
    "sha256": "7bbcc68ccbb42727271ce8ac41c4a2e7d9bca0a36d7885b2affe7fe8c3582f6b",
    "tab": {
      "homebrew_version": "4.4.29-59-g7b34fcc",
      "changed_files": [
        "libexec/bin/langgraph",
        "libexec/pyvenv.cfg"
      ],
      "source_modified_time": 0,
      "compiler": "gcc-11",
      "runtime_dependencies": [
        {
          "full_name": "mpdecimal",
          "version": "4.0.0",
          "revision": 0,
          "bottle_rebuild": 1,
          "pkg_version": "4.0.0",
          "declared_directly": false
        },
        {
          "full_name": "ca-certificates",
          "version": "2025-02-25",
          "revision": 0,
          "bottle_rebuild": 0,
          "pkg_version": "2025-02-25",
          "declared_directly": false
        },
        {
          "full_name": "openssl@3",
          "version": "3.4.1",
          "revision": 0,
          "bottle_rebuild": 0,
          "pkg_version": "3.4.1",
          "declared_directly": false
        },
        {
          "full_name": "ncurses",
          "version": "6.5",
          "revision": 0,
          "bottle_rebuild": 0,
          "pkg_version": "6.5",
          "declared_directly": false
        },
        {
          "full_name": "readline",
          "version": "8.2.13",
          "revision": 0,
          "bottle_rebuild": 0,
          "pkg_version": "8.2.13",
          "declared_directly": false
        },
        {
          "full_name": "zlib",
          "version": "1.3.1",
          "revision": 0,
          "bottle_rebuild": 0,
          "pkg_version": "1.3.1",
          "declared_directly": false
        },
        {
          "full_name": "sqlite",
          "version": "3.49.1",
          "revision": 0,
          "bottle_rebuild": 0,
          "pkg_version": "3.49.1",
          "declared_directly": false
        },
        {
          "full_name": "xz",
          "version": "5.8.1",
          "revision": 0,
          "bottle_rebuild": 0,
          "pkg_version": "5.8.1",
          "declared_directly": false
        },
        {
          "full_name": "bzip2",
          "version": "1.0.8",
          "revision": 0,
          "bottle_rebuild": 2,
          "pkg_version": "1.0.8",
          "declared_directly": false
        },
        {
          "full_name": "expat",
          "version": "2.7.1",
          "revision": 0,
          "bottle_rebuild": 0,
          "pkg_version": "2.7.1",
          "declared_directly": false
        },
        {
          "full_name": "libedit",
          "version": "20250104-3.1",
          "revision": 0,
          "bottle_rebuild": 0,
          "pkg_version": "20250104-3.1",
          "declared_directly": false
        },
        {
          "full_name": "libffi",
          "version": "3.4.8",
          "revision": 0,
          "bottle_rebuild": 0,
          "pkg_version": "3.4.8",
          "declared_directly": false
        },
        {
          "full_name": "unzip",
          "version": "6.0",
          "revision": 8,
          "bottle_rebuild": 0,
          "pkg_version": "6.0_8",
          "declared_directly": false
        },
        {
          "full_name": "berkeley-db@5",
          "version": "5.3.28",
          "revision": 1,
          "bottle_rebuild": 0,
          "pkg_version": "5.3.28_1",
          "declared_directly": false
        },
        {
          "full_name": "[email protected]",
          "version": "3.13.3",
          "revision": 0,
          "bottle_rebuild": 1,
          "pkg_version": "3.13.3",
          "declared_directly": true
        }
      ],
      "arch": "arm64",
      "built_on": {
        "os": "Linux",
        "os_version": "Ubuntu 22.04.5 LTS",
        "cpu_family": "arm",
        "glibc_version": "2.35",
        "oldest_cpu_family": "armv8"
      }
    },
    "path_exec_files": [
      "bin/langgraph"
    ],
    "all_files": [
      ".brew/langgraph-cli.rb",

Prefix replacement was found when diffing new bottles for macOS 15 x86_64 and arm64:

╰─ diffoscope bottles_15-arm64-14408349467/langgraph-cli--0.2.3.arm64_sequoia.bottle.tar.gz bottles_15-x86_64-14408349467/langgraph-cli--0.2.3.sequoia.bottle.tar.gz
--- bottles_15-arm64-14408349467/langgraph-cli--0.2.3.arm64_sequoia.bottle.tar.gz
+++ bottles_15-x86_64-14408349467/langgraph-cli--0.2.3.sequoia.bottle.tar.gz
│   --- langgraph-cli--0.2.3.arm64_sequoia.bottle.tar
├── +++ langgraph-cli--0.2.3.sequoia.bottle.tar
│ ├── file list
│ │ @@ -42,15 +42,15 @@
│ │  -rw-r--r--   0        0        0       82 1970-01-01 00:00:00.000000 langgraph-cli/0.2.3/libexec/lib/python3.13/site-packages/click-8.1.8.dist-info/WHEEL
│ │  drwxr-xr-x   0        0        0        0 1970-01-01 00:00:00.000000 langgraph-cli/0.2.3/libexec/lib/python3.13/site-packages/click-8.1.8.dist-info/licenses/
│ │  -rw-r--r--   0        0        0     1475 1970-01-01 00:00:00.000000 langgraph-cli/0.2.3/libexec/lib/python3.13/site-packages/click-8.1.8.dist-info/licenses/LICENSE.txt
│ │  drwxr-xr-x   0        0        0        0 1970-01-01 00:00:00.000000 langgraph-cli/0.2.3/libexec/lib/python3.13/site-packages/langgraph_cli/
│ │  -rw-r--r--   0        0        0        0 1970-01-01 00:00:00.000000 langgraph-cli/0.2.3/libexec/lib/python3.13/site-packages/langgraph_cli/__init__.py
│ │  -rw-r--r--   0        0        0     2462 1970-01-01 00:00:00.000000 langgraph-cli/0.2.3/libexec/lib/python3.13/site-packages/langgraph_cli/analytics.py
│ │  -rw-r--r--   0        0        0    22501 1970-01-01 00:00:00.000000 langgraph-cli/0.2.3/libexec/lib/python3.13/site-packages/langgraph_cli/cli.py
│ │ --rw-r--r--   0        0        0    50966 1970-01-01 00:00:00.000000 langgraph-cli/0.2.3/libexec/lib/python3.13/site-packages/langgraph_cli/config.py
│ │ +-rw-r--r--   0        0        0    51002 1970-01-01 00:00:00.000000 langgraph-cli/0.2.3/libexec/lib/python3.13/site-packages/langgraph_cli/config.py
│ │  -rw-r--r--   0        0        0      362 1970-01-01 00:00:00.000000 langgraph-cli/0.2.3/libexec/lib/python3.13/site-packages/langgraph_cli/constants.py
│ │  -rw-r--r--   0        0        0     8018 1970-01-01 00:00:00.000000 langgraph-cli/0.2.3/libexec/lib/python3.13/site-packages/langgraph_cli/docker.py
│ │  -rw-r--r--   0        0        0     5205 1970-01-01 00:00:00.000000 langgraph-cli/0.2.3/libexec/lib/python3.13/site-packages/langgraph_cli/exec.py
│ │  -rw-r--r--   0        0        0     1754 1970-01-01 00:00:00.000000 langgraph-cli/0.2.3/libexec/lib/python3.13/site-packages/langgraph_cli/progress.py
│ │  -rw-r--r--   0        0        0        0 1970-01-01 00:00:00.000000 langgraph-cli/0.2.3/libexec/lib/python3.13/site-packages/langgraph_cli/py.typed
│ │  -rw-r--r--   0        0        0     8761 1970-01-01 00:00:00.000000 langgraph-cli/0.2.3/libexec/lib/python3.13/site-packages/langgraph_cli/templates.py
│ │  -rw-r--r--   0        0        0       98 1970-01-01 00:00:00.000000 langgraph-cli/0.2.3/libexec/lib/python3.13/site-packages/langgraph_cli/util.py
│ ├── langgraph-cli/0.2.3/libexec/lib/python3.13/site-packages/langgraph_cli/config.py
│ │ @@ -412,16 +412,16 @@
│ │  PIP_CLEANUP_LINES = """# -- Ensure user deps didn't inadvertently overwrite langgraph-api
│ │  RUN mkdir -p /api/langgraph_api /api/langgraph_runtime /api/langgraph_license && \
│ │      touch /api/langgraph_api/__init__.py /api/langgraph_runtime/__init__.py /api/langgraph_license/__init__.py
│ │  RUN PYTHONDONTWRITEBYTECODE=1 pip install --no-cache-dir --no-deps -e /api
│ │  # -- End of ensuring user deps didn't inadvertently overwrite langgraph-api --
│ │  # -- Removing pip from the final image ~<:===~~~ --
│ │  RUN pip uninstall -y pip setuptools wheel && \
│ │ -    rm -rf /usr/local/lib/python*/site-packages/pip* /usr/local/lib/python*/site-packages/setuptools* /usr/local/lib/python*/site-packages/wheel* && \
│ │ -    find /usr/local/bin -name "pip*" -delete
│ │ +    rm -rf @@HOMEBREW_PREFIX@@/lib/python*/site-packages/pip* @@HOMEBREW_PREFIX@@/lib/python*/site-packages/setuptools* @@HOMEBREW_PREFIX@@/lib/python*/site-packages/wheel* && \
│ │ +    find @@HOMEBREW_PREFIX@@/bin -name "pip*" -delete
│ │  # -- End of pip removal --"""
│ │
│ │
│ │  def _parse_version(version_str: str) -> tuple[int, int]:
│ │      """Parse a version string into a tuple of (major, minor)."""
│ │      try:
│ │          major, minor = map(int, version_str.split("-")[0].split("."))

What did you expect to happen?

An :all bottle is built merged.

Step-by-step reproduction instructions (by running brew commands)

Job logs: https://github.com/Homebrew/homebrew-core/actions/runs/14409600763/job/40414217704
@Bo98 Bo98 changed the title :all bottles have overzealous prefix replacement Text files have overzealous prefix replacement, with no way to disable Apr 11, 2025
@MikeMcQuaid MikeMcQuaid added the help wanted We want help addressing this label Apr 13, 2025
@rafaelgallani
Copy link
Contributor

rafaelgallani commented Apr 13, 2025

howdy @MikeMcQuaid! can I try tackling this one? although I think my slim-to-none ruby knowledge might not be enough here.
plus I'm not super familiar with all of brew's mechanisms/internals - I'm more of a basic user, but if you think that's suitable/if there's any tip/advice/etc, I'd be happy to give it a shot.

@MikeMcQuaid
Copy link
Member

@rafaelgallani never need to ask before tackling things so feel free.

The issue here is that /usr/local is being relocated incorrectly. Check keg_relocate.rb files and dev-cmd/bottle.rb for relevant files here

@xakep8
Copy link

xakep8 commented Apr 22, 2025

is this issue fixed?

@MikeMcQuaid
Copy link
Member

@xakep8 no

@rafaelgallani
Copy link
Contributor

@xakep8 if possible I'd like to handle this one - I wasn't around these last days, as I'm still handling some outstanding issues from my previous employer, but I'll actively start to work on this one soon. Is that OK?

@p-linnane
Copy link
Member Author

@rafaelgallani There are no open PR's for this, so please feel free to open one. No need to coordinate. No Homebrew maintainers are working on this.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
help wanted We want help addressing this
Projects
None yet
Development

No branches or pull requests

4 participants