Homebrew Tap

Homebrew Kegerators with Single, Dual or Triple Tap Towers for dispensing Homebrew Kegs. Dispense Homebrew with ease and Save Money at Home! Purchase a home beer dispenser today & enjoy draft beer anytime. Find the lowest priced home kegerator at Kegerator.com. The tap command allows Homebrew to tap into another repository of formulae. Once you've done this you've expanded your options of installable software. These additional Git repos (inside /usr/local/Homebrew/Library/Taps) describe sets of package formulae that are available for installation. Over time, I've installed a number of packages with Homebrew, mostly from the default repo of formulae (homebrew-core), but some from other locations via brew tap.Now I'm putting together some install scripts to make my dev environment more reproducible, and I'm trying to figure out which packages can be installed by a simple brew install and which require a brew tap beforehand. When you use brew tap on the command line, however, you can leave out the 'homebrew-' prefix in commands. That is, brew tap username/foobar can be used as a shortcut for the long version: brew tap username/homebrew-foobar. Brew will automatically add back the 'homebrew-' prefix whenever it's necessary. Formula with duplicate names.

Some Terminology and Background¶

Homebrew is a fantastic package manager written in ruby. A package in Homebrew is built with a formula, and all formula-based packages can be and must be capable of being built from source1. Since many FOSS projects use git these days, you can even specify the git repository and how to build from it in the homebrew formula.

Heart of the sea pdf free download. For example:

would git clone the latest gcc sources and build gcc using the formula provided in Homebrew.

Homebrew is also very flexible and secure as it doesn't need root privileges for its packages.

Homebrew can turn a build into a re-distributable Bottle. Homebrew works on both Linux and Mac and hosts its core repository at https://github.com/Homebrew/homebrew-core.

Lastly, Homebrew has taps which are third party formula repositories that a user can install from.

Why Make a Homebrew Tap?¶

Recently, Bluespec open sourced their BlueSpec Verilog Compiler(bsc) 2. I wanted to build a homebrew formula and submit it to homebrew-core. Homebrew has strict requirements for formula they accept to homebrew-core.

The one that got me in trouble is:

Homebrew Tapping Cask

If the source for the software to be built is hosted on GitHub, a canonical 3 versioned/git-tagged Github release tarball must be used as the source for the build of the formula.

Basically, as of the time of the writing of this article, the BSC maintainers do not have a Github release.

If I can't contribute a formula to homebrew core, I can still create my own tap.

Making a Tap and Bottle¶

I created my own tap at bracketmaster/homebrew-rtl which contains some formulas for building FOSS RTL and FPGA tools such as NextPnr and bsc.

To install these formulas, I do:

You may notice that homebrew poured bottles instead of building bsc from source. You may also notice the bottles are hosted using Github Releases.

Basically, I created a versioned release on Github with all the tarred sources for various formulas4 I also uploaded the bottles brew generated when building my formulas the first go round.

Generating your first brew bottle is easy. For example wit NextPnr:

Where root-url is the Github Releases url you plan to upload the bottle to.

You should see a file in your current directory that looks something along the lines of nextpnr-1.0.catalina.bottle.tar.gz.

Homebrew Tap

Go ahead and upload that to your Github Releases and paste the bottle do/end stanza into your homebrew ruby formula.

  1. I specify formula-based packages because Hombrew also supports the installation of Casks which in MacOS are MacOS native 'apps' that end in .app such as Chrome.app. ↩

  2. Anounced here to be open sourced on January 31, 2020. Interestingly enough, at the time of the writing of this article, https://bluespec.com still does not have a link on their website pointing to the source code location. But, after scouring around on the internet, this Reddit post notes that the source is located here. ↩

  3. Canonical basically means that the Github Repo is not a fork. ↩

  4. Worth noting that as of this writing, Github does provide a URL API that allows you to download a repository as a tar. But the provided tarball doesn't contain submodules or the .git which is a problem for software that builds version info from the git commit. Also worth noting that Github releases also use this same URL API. ↩

A tap is Homebrew-speak for a Git repository containing extra formulae.Homebrew has the capability to add (and remove) multiple taps to your local installation with the brew tap and brew untap commands. Type man brew in your terminal. The main repository at https://github.com/Homebrew/homebrew-core, often called homebrew/core, is always built-in.

Your taps are Git repositories located at $(brew --repository)/Library/Taps.

Unsupported interesting taps

  • homebrew-ffmpeg/ffmpeg: A tap for FFmpeg with additional options, including nonfree additions.

  • denji/nginx: A tap for NGINX modules, intended for its nginx-full formula which includes more module options.

  • InstantClientTap/instantclient: A tap for Oracle Instant Client. The packages need to be downloaded manually.

  • osx-cross/avr: GNU AVR toolchain (Libc, compilers and other tools for Atmel MCUs, useful for Arduino hackers and AVR programmers).

  • petere/postgresql: Allows installing multiple PostgreSQL versions in parallel.

  • osrf/simulation: Tools for robotics simulation.

  • brewsci/bio: Bioinformatics formulae.

  • davidchall/hep: High energy physics formulae.

  • lifepillar/appleii: Formulae for vintage Apple emulation.

Unsupported interesting forks

List

Homebrew Tapping

  • mistydemeo/tigerbrew: Experimental Tiger PowerPC version.
Comments are closed.