-
-
Notifications
You must be signed in to change notification settings - Fork 1.4k
Description
Hi there 👋
I originally came here to write a Homebrew formula for Ciphey #197. Half a year later, and I'm proud to announce that Ciphey has now instead been added to MacPorts!
TL;DR: To (hopefully) solve your macOS installation issues, run the following:
sudo port install ciphey
The project page can be found here.
Issues fixed
- Segmentation faults have been squashed out of existence Getting Segmentation fault: 11 when running ciphey #362 Run
cipheyfaild in macOS #256 - No TypeErrors to be found Ciphey TypeError with Python 3.9 #558 TypeError: Multiple inheritance with NamedTuple is not supported #579
- Fixed by setting default python version to 3.8.
Why not use PyPi?
As is mentioned in the wiki, pip install ciphey just doesn't work on macOS.
Again, this boils down to cipheycore, but I'll go through that in a different issue on cipheycore.
Why not use Docker?
This is much better (it actually works on my machine!). However, there are still some problems:
- Docker on macOS runs in a VM. This naturally comes with some overhead, and there's a notable speed difference compared to MacPorts' ciphey.
- Even though I don't have any issues with it, other macOS users have had problems with Docker Ciphey ImportError #544 Getting Segmentation fault: 11 when running ciphey #362 (comment)
EDIT: Just to give you some very basic benchmarking:
# Docker
> hyperfine --warmup 3 'docker run --rm remnux/ciphey --help'
Benchmark #1: docker run --rm remnux/ciphey --help
Time (mean ± σ): 1.337 s ± 0.041 s [User: 171.5 ms, System: 77.7 ms]
Range (min … max): 1.266 s … 1.389 s 10 runs# MacPorts
> hyperfine --warmup 3 'ciphey --help'
Benchmark #1: ciphey --help
Time (mean ± σ): 325.4 ms ± 4.3 ms [User: 260.7 ms, System: 56.6 ms]
Range (min … max): 318.9 ms … 331.5 ms 10 runsJust to run the --help flag, there is a massive difference in time taken (~1.3s vs ~325ms).
Why did you choose MacPorts over Homebrew?
- Although I have some experience with Homebrew (~30 contributions), I don’t have enough to write a rigorous formula for cipheycore.
- Even if I could write it, it’s questionable whether Homebrew would except it
- Their relationship with python modules is confusing.
- cipheycore doesn't meet their acceptable formulae standards (not enough stars/forks/watchers).
- Personal opinion
- MacPorts provides full base support for projects such as Cipheycore. Homebrew arguably lacks the features required for more complex projects.
- MacPorts is a much more stable and polished tool than Homebrew.
- It supports much older macOS versions (this one's for you @deepio! macOS, pip install, Could not find cipheycore==0.2.9 #266 (comment))
- All deps are self-contained by MacPorts, which gave me the granular control to blacklist/set fallback compilers for cipheycore
- etc. etc.
If you find any issues with this, please let me know and provide any relevant details. Preferably, it would be as a Trac ticket, but pinging me on GitHub is also fine.
As I said before, I'll post an issue on cipheycore detailing the measures I took to hopefully prevent any issues. If you have any questions, please feel free to ask. Thanks, Haren.