<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class=""><span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);" class="">Hello there,</span><div class="" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);"><br class=""></div><div class="" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);">I agree with all the points about publicity (blog posts, Twitter, etc.). But I want to share the opinion on MacPorts from a (power?) user who is aware of the tool and “deep in my heart” believe that MacPorts is a better option than, for example, Homebrew.</div><div class="" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);"><br class=""></div><div class="" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);">INSTALLATION</div><div class="" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);"><br class=""></div><div class="" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);">The current process is described well[1], but it is almost impossible to automate it. For a tool that supposes to be a CLI to manage everything, this is a disadvantage for me. Yes, I can install MacPorts from the command-line with something like this in my Makefile:</div><div class="" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);"><br class=""></div><div class="" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);">```<br class="">macports: ## Install/Upgrade MacPorts<br class="">ifeq (, $(shell which port))<br class=""><span class="Apple-tab-span" style="white-space: pre;">  </span>$(eval TEMP_PKG := $(shell mktemp -t macports).pkg)<br class=""><span class="Apple-tab-span" style="white-space: pre;">  </span>curl --silent --output $(TEMP_PKG) --remote-name <a href="https://distfiles.macports.org/MacPorts/MacPorts-2.6.4_1-11-BigSur.pkg" class="">https://distfiles.macports.org/MacPorts/MacPorts-2.6.4_1-11-BigSur.pkg</a><br class=""><span class="Apple-tab-span" style="white-space: pre;">   </span>sudo installer -pkg $(TEMP_PKG) -target /<br class=""><span class="Apple-tab-span" style="white-space: pre;">    </span>rm -Rf $(TEMP_PKG)</div><div class="" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);">```</div><div class="" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);"><br class=""></div><div class="" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);">But then I have to maintain the URL, update it if I do not want to migrate, etc.</div><div class="" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);">You can compare it with the Homebrew approach[2]:</div><div class="" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);"><br class=""></div><div class="" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);">```</div><div class="" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);">/bin/bash -c "$(curl -fsSL <a href="https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh" class="">https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh</a>)”</div><div class="" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);">```</div><div class="" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);"><br class=""></div><div class="" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);">It may sound like a minor issue. But simplicity and efficiency are important, I believe. From my point of view, it is easy to improve it:</div><div class="" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);">1. Have a symlink to the latest available version (e.g. <span class=""><a href="https://distfiles.macports.org/latest-macos-11.pkg" class="">https://distfiles.macports.org/latest-macos-11.pkg</a>)</span></div><div class="" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);"><span class="">2. Have a script that will detect the macOS version on the machine (`</span><font color="#000000" class="">sw_vers -productVersion` or something) and download the proper package</font></div><div class="" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);"><font color="#000000" class="">3. Run the installer with `installer -pkg …`</font></div><div class="" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);"><span class=""><br class=""></span></div><div class="" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);"><span class="">GUI APPLICATIONS</span></div><div class="" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);"><span class=""><br class=""></span></div><div class="" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);"><font color="#000000" class="">This is a controversial topic. As you know, you can install and manage GUI macOS applications with so-called Homebrew `casks`[4]. From the user perspective, there are no differences between CLI and GUI applications, and I just want to manage applications I use with ONE package manager. In the case of MacPorts, I cannot install even open-source applications (like Firefox, NetNewsWire, etc.). </font></div><div class="" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);"><font color="#000000" class="">Yes, I understand that someone has to maintain such ports. But if we are talking about publicity, new users and experience, it is vital to have at least the most popular software on the list.</font></div><div class="" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);"><span class=""><br class=""></span></div><div class="" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);"><span class="">BUNDLES</span></div><div class="" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);"><span class=""><br class=""></span></div><div class="" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);"><font color="#000000" class="">Homebrew supports bundles[3] where you can list all the software you use and install it with a simple `brew bundle` command. It is a convenient way to track a list of software you use, migrate between machines or set up remote hardware on CI/CD. With MacPorts, I found only one way to do so – Makefile or a shell script where I list all the packages I need. Not a big deal, you can say, and it is true. But one of the reasons to use Homebrew over MacPorts.</font></div><div class="" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);"><font color="#000000" class=""><br class=""></font></div><div class="" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);"><font color="#000000" class="">CONCLUSIONS</font></div><div class="" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);"><font color="#000000" class=""><br class=""></font></div><div class="" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);"><font color="#000000" class="">Why I like MacPorts but use Homebrew? Because it is a convenient way to manage your packages seamlessly (starting from the installation process and to the point of how you maintain the list of software you use).</font></div><div class="" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);"><font color="#000000" class="">And again, from my point of view, publicity could (and should) help, but the user experience is an important aspect as well. For now, even the statement from the main page – <span class="">Install and upgrade open-source software on macOS – is not entirely true, unfortunately.</span></font></div><div class="" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);"><font color="#000000" class=""><br class=""></font></div><div class="" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);"><font color="#000000" class="">P.S. Do not get me wrong. You do a great job maintaining the tool for many years; thank you for this! And there are cases when I prefer MacPorts over other solutions. Please, consider this message as my attempt to help and contribute to the discussion.</font></div><div class="" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);"><br class=""></div><div class="" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);"><br class=""></div><div class="" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);">[1] <a href="https://www.macports.org/install.php" class="">https://www.macports.org/install.php</a></div><div class="" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);">[2] <a href="https://brew.sh/" class="">https://brew.sh/</a></div><div class="" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);">[3] <a href="https://github.com/Homebrew/homebrew-bundle" class="">https://github.com/Homebrew/homebrew-bundle</a></div><div class="" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);">[4] <a href="https://github.com/Homebrew/homebrew-cask" class="">https://github.com/Homebrew/homebrew-cask</a></div><div class="" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);"><br class=""></div><div class="" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);">Regards,</div><div class="" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);">Artem</div></body></html>