Skip to content

feat(brew): fetch Homebrew directly from upstream#164

Open
dylanmtaylor wants to merge 1 commit intoprojectbluefin:mainfrom
dylanmtaylor:feat/brew-from-upstream
Open

feat(brew): fetch Homebrew directly from upstream#164
dylanmtaylor wants to merge 1 commit intoprojectbluefin:mainfrom
dylanmtaylor:feat/brew-from-upstream

Conversation

@dylanmtaylor
Copy link
Copy Markdown
Contributor

Replace the ublue-os/packages tarball with a direct fetch from Homebrew/brew v5.1.4.

This removes the third-party dependency on ublue-os/packages weekly releases. The element clones Homebrew/brew, sets up the expected directory layout, and tars it for the existing brew-setup.service to unpack on first boot.

No longer needs per-arch elements since brew is Ruby scripts.

Ref #12

Copy link
Copy Markdown

@gemini-code-assist gemini-code-assist Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request refactors the Homebrew tarball creation process by switching from a stack-based approach using pre-downloaded binaries to a manual build that clones the Homebrew repository directly. The changes define a specific directory structure and package it into a compressed tarball. Feedback was provided regarding a logic error in the installation script where recursive copying would occur, as well as recommendations to ensure the output directory exists and to clean up staging files to avoid artifact bloat.

Comment thread elements/bluefin/brew-tarball/brew-tarball.bst Outdated
@dylanmtaylor dylanmtaylor force-pushed the feat/brew-from-upstream branch from 8d43296 to 66488cc Compare April 6, 2026 20:40
Replace the ublue-os/packages tarball dependency with a direct
fetch from Homebrew/brew. This removes the third-party middleman
and makes the brew version trackable via renovate.

The element clones Homebrew/brew, sets up the expected directory
layout, and tars it for the first-boot brew-setup service.
@dylanmtaylor dylanmtaylor force-pushed the feat/brew-from-upstream branch from 66488cc to 8dd7511 Compare April 6, 2026 20:48
@castrojo
Copy link
Copy Markdown
Contributor

castrojo commented Apr 6, 2026

Does it make sense to build this here at all? We could just use ublue-os/brew like all the other bluefins?

@dylanmtaylor
Copy link
Copy Markdown
Contributor Author

#12 makes a case for it, and I think renovate will pull in the latest forcing new builds fairly frequently

@dylanmtaylor dylanmtaylor reopened this Apr 6, 2026
@dylanmtaylor
Copy link
Copy Markdown
Contributor Author

Reopening. The ublue-os/packages tarball generation was intentionally removed in ublue-os/packages#1182 on March 11. The existing tarball in Dakota is frozen at March 10 and will never update.

This PR fetches directly from Homebrew/brew. The version display issue (brew --version shows 'shallow or no git repository') is cosmetic -- brew update on first run fixes it. The alternative is a stale tarball that never updates.

@castrojo
Copy link
Copy Markdown
Contributor

Can we adjust this to pull from ublue-os/brew? We need it to be consistent with the other Bluefins since it also has PATH fixes in there and stuff. We don't want to have 2 different brew experiences.

@dylanmtaylor
Copy link
Copy Markdown
Contributor Author

Can we adjust this to pull from ublue-os/brew? We need it to be consistent with the other Bluefins since it also has PATH fixes in there and stuff. We don't want to have 2 different brew experiences.

@castrojo I think that would require ublue-os/brew#14 be merged in, which adds a workflow to publish release tarballs that dakota can consume. Without it, there's no tarball to fetch from ublue-os/brew. The old ublue-os/packages tarballs stopped being generated in March so the current ones are frozen.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants