Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/ipatch/homebrew-us-05

homebrew 🍺 tap serving off beat ales ↑ and lagers ↓
https://github.com/ipatch/homebrew-us-05

homebrew homebrew-cask homebrew-formula homebrew-tap

Last synced: 2 months ago
JSON representation

homebrew 🍺 tap serving off beat ales ↑ and lagers ↓

Awesome Lists containing this project

README

        

## Contents 📖

- [Installing a formula](#installing-a-formula)
- [working with neovim](#working-with-neovim)
- [Working with OpenSSH _from this tap_](#working-with-openssh)
- [working with openssh / todos](#working-with-openssh-todos)
- [Working with osxfuse](#working-with-osxfuse)
- [Working with fuse-ext2](#working-with-fuse-ext2)
- [Working with QEMU](#working-with-qemu)
- [Gotchas](#gotchas)
- [Maintenance](#maintenance)
- [Miscellanous](#misc)
- [Development](#development)
- [development / casks](#development-casks)
- [development / cask / freecad](#development-cask-freecad)
- [development / freecad](#freecad)
- [References](#references)
- [TODOs](#todos)

## ipatch/homebrew-us-05

> An off beat repo for storing custom ↑ ales and lagers ↓ to make your life a little b1t easier.

## Installing a formula

To install formula from this repo

```shell
brew tap ipatch/homebrew-us-05
brew install ipatch/homebrew-us-05/[name-of-formula] [--with-options]
```

Example

```shell
brew install ipatch/us-05/openssh --verbose --build-from-source --with-ldns
```

To upgrade a formula that has been installed via this tap

```shell
brew reinstall ipatch/us-05/[name-of-formula] --verbose --build-from-source
```

## Working with Neovim

When attempting to install neovim on a box where macports installation exists in `/opt/local` the neovim configure scripts will find the support files in the macports installation **before** the homebrew installation (that's a **no no**) and will lead to a **failed** installation. **my quick hack** rename `/usr/local/` (macports installation path) to something else, ie.

```
mv /opt/local /opt/localllll
```

undo the name change after the homebrew installation of neovim completes. [**learn more**][lm1]

[lm1]:

## Working with OpenSSH _from this repo_

When installing OpenSSH from this repo _LibreSSL_ install from **tarball** and not git source ~~**head**~~

When upgrading or install OpenSSH from this repo, a few files will need to have their permissions changed.

```shell
cd /usr/local/etc/ssh
sudo chown root:wheel *_key
sudo chmod 600 *_key
```

### TODOs / openssh

- [ ] change permissions, owner, and group of above mentioned files when installing formula.

> If LibreSSL has been updated from mainline Homebrew, ie. upgrading from v2.7.x to v2.8.x then this version of OpenSSH will need to be reinstalled from this tap.

## Working with osxfuse

The last version of osxfuse to have a open source license without using a prebuild binary is version 3.8.3, per [this github issue][fl1]

I recently reinstalled **osxfuse** so i could have write support for NTFS filesystems without having to spin up a virtual machine for write purposes. I created a cask based formula file within this repo to store the last open source version of **osxfuse** as mentioned above.

For getting write support to NTFS file systems after installing `ntfs-3g` using brew, [**reference**][fl2]

```shell
sudo mv /sbin/mount_ntfs /sbin/mount_ntfs.apl
sudo ln -s /usr/local/sbin/mount_ntfs /sbin/mount_ntfs
```

[fl1]:
[fl2]:

## Working with fuse-ext2

- **fuse-ext2** is a program that allows working with ext-{2,3,4} file systems on macOS, and provides both **read** and **write** support.

To install **fuse-ext2** from this repo using homebrew

```shell
brew tap ipatch/homebrew-us-05
brew install ipatch/homebrew-us-05/fuse-ext2 --verbose
```

> As of September 17, 2018, **e2fsprogs** needs to be unlinked after installing **fuse-ext2**

To manually unlink **e2fsprogs**

```shell
brew unlink e2fsprogs
```

To manually link **fuse-ext2**

```shell
brew link fuse-ext2
```

## Working with Qemu

To install Qemu from this homebrew 🍺 repo

```shell
brew install ipatch/homebrew-us-05/qemu \
--verbose \
--with-docs \
--with-libusb \
--with-hvf \
--with-hax \
--HEAD
```

## Gotchas

If a formula is installed from this repo ie. **qemu** with options, passed to the `install` command, ie. `--with-hax` homebrew has issues running the **reinstall** command even with the `--build-from-source` flag. To work around this, ~~run `brew remove [name-of-formula]` to uninstall the package, and then reinstall the package with the flags provided form the previous install.~~ [see my Q/A][ul11]

[ul11]:

## Maintenance

To pull down updates from this tap from time to time or when an upstream change has been made

```shell
brew update
```

## Miscellanous

Installing [universal ctags](http://ctags.io) requires its own work around, [learn more][lm1]

[lm1]:

## Development

When working with formula locally for debugging purposes specify a local filesystem path, make sure to add **.rb**

```shell
brew [re]install /path/to/some/local_formula.rb
```

> 💡 set the following env var **$HOMEBREW_NO_AUTO_UPDATE** to **1** preventing mac homebrew from auto updating everytime a `brew install` cmd is run, thus greatly speeding up the process of local formula development.
>
> ❗️`brew reinstall` is problematic a majority of the time, so when experimenting with local formula when developing use `brew install [/path/to/formula.rb]`
>
> 🚨 recently i've had difficulty installing a formula that has a similar name with that of a formula from a installed tap, ie. installing `freecad.rb` locally was resulting in conflicts of sorts, so created a unique name, ie. `freecad-dev.rb` and am able to install & test formula file locally without doing the, _git add, commit, push brew update, brew install routine_. the above mentioned _brew [re]install_ cmd is all that is required
>
> 🚨 if there are any sytnax errors within the formula file the brew cmd will fail with a shitty error message, ie. not letting the user (developer) know the formula file contains a error mesage (more than likely a _syntax error_) but rather complains it cannot find the specified formula.

### Development / cask

- development of cask(s) formula files will live within, `/usr/local/Homebrew/Library/Taps/homebrew/homebrew-cask`, path may vary depending upon how homebrew is installed and the current OS that homebrew is running on.
- development of cask(s) formula files that represent app bundles that are considered development, beta, or unstable releases live within `/usr/local/Homebrew/Library/Taps/homebrew/homebrew-cask-versions`

Before submitting a PR for a cask _upstream_ run through the below check

```shell
brew cask audit --download {{cask_file}}
brew cask style --fix {{cask_file}}
brew cask (re)install {{cask_file}}
brew cask uninstall {{cask_file}}
```

- [github.com ## Getting set up to contribute][cl1]
- [homebrew-cask / docs / adding_a_cask.md][cl2]

[cl1]:
[cl2]:

#### Development / cask / naming example

- renamed the freecad cask within this repo _(homebrew tap)_ to not conflict with either the hombrew-cask-versions, `freecad-pre`, to have a cask specific to this tap, `freecad-ipre`, prepended an `i` to the cask name in reference to my github username.

- github / @kapcake created a cask.formula for freecad pre release, but appears to not have been updated in ~ a year. [learn more](https://github.com/Homebrew/homebrew-cask/blob/e141c13bfdb4818c1833afb6522b61b1f1897a25/Casks/freecad.rb)

## freecad

i moved all freecad related notes within its own [README][ulfc]

[ulfc]:

#### cmake related

to show a list of configuration settings

```shell
cd ./build; cmake -L ..
```

apparently explicitly setting `CC` and `CXX` env vars in `.cmake` files can lead to [complications][so1], the preferred way to set a specific `CC` & `CXX` compiler is to use env vars `export CC=/path/to/c-compiler` before running `cd ./build; cmake ..`

[so1]:

## / devolpment / homebrew / References

- [**stackoverflow** / git checkout a specific commit for a formula][ref1]
- [**docs.brew.sh** / formual cookbook][ref2]
- [**GitHub** / Homebrew Formula Cookbook][ref3]
- [**github** / homebrew-tiny-scripts **tap**][ref4]
> within the above repo there is a shell script, `cask-repair` that should do the bulk of the work updating a cask that is often updated frequently, as opposed to manually editing the cask file
- [**github** / repo for actual tiny scripts **NOT** the tap repo][ref5]
- [**medium**, creating relocatable linux exe by setting RPATH][ref6]
- [**macports.org**, clang does not respect `-syslibroot` when linking][ref7]

---

- https://github.com/Rylan12/homebrew-development useful homebrew tap for maintaining homebrew formula

[ref1]:
[ref2]:
[ref3]:
[ref4]:
[ref5]:
[ref6]:
[ref7]:

## TODOs

- [ ] **update homepage URLs for certain freecad dependencies**, _pivy bb URL,_
- [ ] [review git repo for developing homebrew bottle][todo1]
- [ ] experiment with [brew.vim](https://github.com/xu-cheng/brew.vim) sytnax & filetype files

[todo1]: