Comments (8)
Release 0.20.1 comes with darwin / macOS build:
https://github.com/pkolaczk/fclones/releases/tag/v0.20.1
I cross-compiled it from Linux. Please let me know how it works.
from fclones.
Until it is merged, you can use pkolaczk/fclones
tap.
Works on Linux for me.
from fclones.
Yay! They have merged it and now it is officially in homebrew core. Thank you all for the help!
from fclones.
I'd like to do this but I have no idea how to actually make that happen. I don't even own a Mac ;)
Is there a way to generate such packages on Linux? Docker maybe or sth? Or maybe homebrew?
from fclones.
If you use Nix, we're working on it here: NixOS/nixpkgs#137626
from fclones.
@cyounkins the ticket you've linked has been merged. Does it mean fclones is already installable on Darwin?
Should I close it?
from fclones.
fclones is able to be compiled on Darwin / macOS and basic functionality works, but I haven't extensively tested it. There is at least one failing test due to device names that could be conditioned to be linux-only.
fclones is installable on Darwin / macOS using the Nix package manager when using the 'unstable' channel. Users would need to install Nix, enable the unstable channel, then do nix-env -iA nixpkgs.fclones
.
I love Nix, but it has a higher initial learning curve and smaller user base than Homebrew. There will probably be a request for Homebrew packaging either here or in the Homebrew project sometime soon. It sounds like you don't use macOS @pkolaczk so I would let the Homebrew folks handle that.
from fclones.
Release 0.20.1 comes with darwin / macOS build: https://github.com/pkolaczk/fclones/releases/tag/v0.20.1
I cross-compiled it from Linux. Please let me know how it works.
All works on latest macOS, once I confirmed to run the unsigned binary (there's no way to sign a unix binary AFAIK).
A better alternative would be to create a Homebrew formulae, which is surprisingly easy and I've created one below via similar steps to these:
# run on a mac :)
# install homebrew
# to create the formulae:
brew create --rust https://github.com/pkolaczk/fclones/archive/refs/tags/v0.20.1.tar.gz
# to set the homepage:
sed -i '' 's|homepage ""|homepage "https://github.com/pkolaczk/fclones"|' /opt/homebrew/Library/Taps/homebrew/homebrew-core/Formula/fclones.rb
# to clear the comments:
sed -i '' '/^ *#/d' /opt/homebrew/Library/Taps/homebrew/homebrew-core/Formula/fclones.rb
# to fix the test in a silly way:
sed -i '' 's|system "false"|assert_equal "fclones #{version}", shell_output("#{bin}/fclones --version").strip|' /opt/homebrew/Library/Taps/homebrew/homebrew-core/Formula/fclones.rb
# to install the formulae:
brew install --build-from-source fclones
# to test the formulae:
brew test fclones
fclones.rb with a better test and a bottle hash for macOS Monterey
class Fclones < Formula
desc "Efficient Duplicate File Finder"
homepage "https://github.com/pkolaczk/fclones"
url "https://github.com/pkolaczk/fclones/archive/refs/tags/v0.20.1.tar.gz"
sha256 "5ce5864ee6dec363e72e779a97f5c6e9e23043f3c85c1692c59e040200ba143f"
license "MIT"
bottle do
sha256 cellar: :any_skip_relocation, arm64_monterey: "2a5b1a8a453d5029d81a085475d4c443b25f5198b5752930c299edff6145d45e"
end
depends_on "rust" => :build
def install
system "cargo", "install", *std_cargo_args
end
test do
(testpath/"foo1.txt").write "foo"
(testpath/"foo2.txt").write "foo"
(testpath/"foo3.txt").write "foo"
(testpath/"bar1.txt").write "bar"
(testpath/"bar2.txt").write "bar"
output = shell_output("fclones group #{testpath}")
assert_match "Redundant: 9 B (9 B) in 3 files", output
assert_match "a9707ebb28a5cf556818ea23a0c7282c", output
assert_match "16aa71f09f39417ecbc83ea81c90c4e7", output
end
end
Then this formulae can be sent as a PR to homebrew-core. Once the formula is accepted in their repo, installing it will be trivial via brew install fclones
and then upgrading with brew upgrade fclones
.
Aside - building a bottle (which is a pre-built binary for a specific OS) for other systems is possible, but I'll have to dig some older macs or even run a linux VM/distro. Let me know.
There's an option to run Homebrew on Linux, which I haven't done since I do not use a linux distro atm.
from fclones.
Related Issues (20)
- fclones depends on libc6:amd64 (>= 2.36) HOT 4
- On android, running on termux, hard or soft link creation fails after creating the dupes file.
- Hard links are reported as duplicates
- Feedback, showdown against 3 other tools HOT 4
- How to find AND isolate/extract unique files that are in one directory but not another? HOT 2
- Add ability to filter by magic HOT 1
- How to deduplicate and compress?
- Sort file chunks instead of hashing HOT 1
- fclones scans a ton of files that have no chance of matching HOT 4
- fclones `move` ignores standard format log from `group`?
- /var/lib/snapd/void: Permission denied HOT 1
- ARM binary HOT 1
- group output according to order on command line
- "remove" does not work if some files have future modification dates HOT 2
- Why hash whole files? HOT 2
- hard links treated as duplicates
- Pattern matching doesn't work at all on Windows HOT 1
- the dir specified in --cache is empty after a complete run
- [Feature Request] Support for `dedupe` command on ReFS on Windows HOT 1
- index out of bounds: the len is 0 but the index is 0 HOT 4
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from fclones.