tmignore
tmignore copied to clipboard
tmignore fails to install via Homebrew on macOS Big Sur
On macOS Big Sur (11.1) the tmignore installation step from the README.md file fails with the following error:
brew install samuelmeuli/tap/tmignore
==> Installing tmignore from samuelmeuli/tap
==> Downloading https://github.com/samuelmeuli/tmignore/archive/v1.2.2.tar.gz
Already downloaded: /Users/seb/Library/Caches/Homebrew/downloads/694e9e2acfa7fc1d36e4be32543d766098b853eaf69a98ec5ec66fbc803d0abd--tmignore-1.2.2.tar.gz
==> make build
Last 15 lines from /Users/seb/Library/Logs/Homebrew/tmignore/01.make:
Fetching https://github.com/jakeheis/SwiftCLI
Fetching https://github.com/samuelmeuli/swift-exec
Fetching https://github.com/apple/swift-log
Fetching https://github.com/SwiftyJSON/SwiftyJSON
Fetching https://github.com/IBM-Swift/HeliumLogger
xcodebuild: error: Could not resolve package dependencies:
sandbox-exec: sandbox_apply: Operation not permitted
make: *** [build] Error 74
If reporting this issue please do so at (not Homebrew/brew or Homebrew/core):
https://github.com/samuelmeuli/homebrew-tap/issues
These open issues may also help:
tmignore Build for macOS Big Sur https://github.com/samuelmeuli/homebrew-tap/issues/2
Possibly related to:
- https://github.com/samuelmeuli/homebrew-tap/issues/2
- https://github.com/samuelmeuli/tmignore/issues/9#issuecomment-742870705
Workaround
However, checking out this repo and running make
manually does correctly build bin/tmignore
successfully.
Setup Xcode
- Install Xcode from the App Store
-
sudo xcode-select -s /Applications/Xcode.app/Contents/Developer
-
sudo xcodebuild -license accept
Manually build and Install tmignore
-
git clone https://github.com/samuelmeuli/tmignore.git && cd tmignore
-
make
-
cp bin/tmignore /usr/local/bin/
-
crontab -l | { cat; echo "0 10 * * * /usr/local/bin/tmignore run &>> /tmp/tmignore.log"; } | crontab -
same for macOS Catalina (10.15.7)
-
HOMEBREW_EDITOR=vim brew edit tmignore
- write
class Tmignore < Formula
desc "Exclude development files from Time Machine backups"
homepage "https://github.com/samuelmeuli/tmignore"
url "https://github.com/samuelmeuli/tmignore/releases/download/v1.2.2/tmignore"
sha256 "80a8b0e3e05dc30113b9a4db1997b39fadfabbe2a58fa7f63ac4f757b2de9012"
head "https://github.com/samuelmeuli/tmignore.git"
depends_on :macos => :high_sierra
def install
bin.install "./tmignore"
system "curl", "-L","-o", "#{prefix}/homebrew.tmignore.plist", "https://github.com/samuelmeuli/tmignore/raw/master/homebrew.tmignore.plist"
end
test do
system "#{bin}/tmignore", "version"
end
end
-
brew install tmignore
-
brew services start samuelmeuli/tap/tmignore
The above didn’t work for me. Running brew services start samuelmeuli/tap/tmignore
returned the following error:
Error: Formula `tmignore` has not implemented #plist, #service or installed a locatable service file
Adding mv "#{prefix}/homebrew.tmignore.plist", plist_path
(as recommended here) got it working again:
NOTE: This only works after first trying the install script from the previous comment. So the steps are:
brew edit tmignore
- Replace with @cjahv’s script
brew install tmignore
brew edit tmignore
- Add “mv to plist_path” line like below
brew reinstall tmignore
brew services start tmignore
class Tmignore < Formula
desc "Exclude development files from Time Machine backups"
homepage "https://github.com/samuelmeuli/tmignore"
url "https://github.com/samuelmeuli/tmignore/releases/download/v1.2.2/tmignore"
sha256 "80a8b0e3e05dc30113b9a4db1997b39fadfabbe2a58fa7f63ac4f757b2de9012"
head "https://github.com/samuelmeuli/tmignore.git"
depends_on :macos => :high_sierra
def install
bin.install "./tmignore"
system "curl", "-L","-o", "#{prefix}/homebrew.tmignore.plist", "https://github.com/samuelmeuli/tmignore/raw/master/homebrew.tmignore.plist"
mv "#{prefix}/homebrew.tmignore.plist", plist_path
end
test do
system "#{bin}/tmignore", "version"
end
end
This is effective on Mac OS 12.3.1
class Tmignore < Formula
desc "Exclude development files from Time Machine backups"
homepage "https://github.com/samuelmeuli/tmignore"
url "https://github.com/samuelmeuli/tmignore/releases/download/v1.2.2/tmignore"
sha256 "80a8b0e3e05dc30113b9a4db1997b39fadfabbe2a58fa7f63ac4f757b2de9012"
head "https://github.com/samuelmeuli/tmignore.git"
depends_on :macos => :high_sierra
def install
bin.install "./tmignore"
system "curl", "-L","-o", plist_path, "https://github.com/samuelmeuli/tmignore/raw/master/homebrew.tmignore.plist"
end
test do
system "#{bin}/tmignore", "version"
end
end
The above didn’t work for me. Running
brew services start samuelmeuli/tap/tmignore
returned the following error:Error: Formula `tmignore` has not implemented #plist, #service or installed a locatable service file
Adding
mv "#{prefix}/homebrew.tmignore.plist", plist_path
(as recommended here) got it working again:NOTE: This only works after first trying the install script from the previous comment. So the steps are:
brew edit tmignore
- Replace with @cjahv’s script
brew install tmignore
brew edit tmignore
- Add “mv to plist_path” line like below
brew reinstall tmignore
brew services start tmignore
class Tmignore < Formula desc "Exclude development files from Time Machine backups" homepage "https://github.com/samuelmeuli/tmignore" url "https://github.com/samuelmeuli/tmignore/releases/download/v1.2.2/tmignore" sha256 "80a8b0e3e05dc30113b9a4db1997b39fadfabbe2a58fa7f63ac4f757b2de9012" head "https://github.com/samuelmeuli/tmignore.git" depends_on :macos => :high_sierra def install bin.install "./tmignore" system "curl", "-L","-o", "#{prefix}/homebrew.tmignore.plist", "https://github.com/samuelmeuli/tmignore/raw/master/homebrew.tmignore.plist" mv "#{prefix}/homebrew.tmignore.plist", plist_path end test do system "#{bin}/tmignore", "version" end end
thank,it work on Mac OS 12.3.1 Xcode 13.3.1
On Ventura 13.4.1 with Homebrew 4.1.23 I had to slightly modify the script mentioned by elstgav and use launchd_service_path
instead of plist_path
:
class Tmignore < Formula
desc "Exclude development files from Time Machine backups"
homepage "https://github.com/samuelmeuli/tmignore"
url "https://github.com/samuelmeuli/tmignore/releases/download/v1.2.2/tmignore"
sha256 "80a8b0e3e05dc30113b9a4db1997b39fadfabbe2a58fa7f63ac4f757b2de9012"
head "https://github.com/samuelmeuli/tmignore.git"
depends_on :macos => :high_sierra
def install
bin.install "./tmignore"
system "curl", "-L","-o", "#{prefix}/homebrew.tmignore.plist", "https://github.com/samuelmeuli/tmignore/raw/master/homebrew.tmignore.plist"
mv "#{prefix}/homebrew.tmignore.plist", launchd_service_path
end
test do
system "#{bin}/tmignore", "version"
end
end
I found a project that can replace this tool. It has GUI and complete functions. https://github.com/PhotonQuantum/tmexclude