MacPorts

MacPorts supports universal binaries for PowerPC, Intel-based,[6] and Apple silicon versions of macOS,[7][8] but migrating from a PowerPC installation of MacPorts to a version on an Intel Mac requires reinstalling all installed ports.

Common actions include adding or removing dependencies and changing build arguments.

[22][23] The MacPorts Ports website was implemented during Google Summer of Code 2019,[24] with major UI improvements made within the same program in 2020.

[25] There is also a separate MacPorts homepage, that provides information on the project as well as instructions on how to install it.

[28] MacPorts was started in 2002 with the involvement of a number of Apple Inc. employees, including Landon Fuller, Kevin Van Vechten, and Jordan Hubbard.

It began as part of the OpenDarwin project, with its aim to help users on macOS and Darwin to install Unix software.

[34] As part of this change, git was used as the new version control system, although Trac was still preferred for ticket management over GitHub issues.

[37] At that time, package installation involved the source code being downloaded and compiled on the end user's machine.

[45] The reason given for this change is that other packaging systems could overwrite what MacPorts has installed, or vice versa.

The result of this is known as a binary archive, and it helps to reduce the time required for installation.

[48] Similar to Homebrew, MacPorts takes the approach of having different builders for different operating system versions and architectures.

[51] If a binary could not be built, this would be noted on the MacPorts website for that individual port and the maintainer would be alerted.

[58] These include the following: Fetch First, MacPorts retrieves and downloads all the relevant files for the port from upstream.

One advantage of this is that it makes it easy to record what files were created, allowing them to be cleanly uninstalled.

[66] For hashcat, this is done by running make install, where one of the arguments (DESTDIR) specifies where to temporarily store the files.

[69][12] When upgrading a port, MacPorts deactivates but does not uninstall the current version as a safety feature.

This allows the user to easily revert to the old version if the update causes breaking changes.

Anybody who wants to modify a portfile should alert the maintainer before applying the changes, although this is not always required for minor modifications.

[72][73] Anyone is able to contribute to MacPorts, generally via pull requests, and contributors can apply for commit rights following a good track record as a maintainer.

[76] They normally take place in Slovenia, and allow for MacPorts members to work on future development.

However, users can optionally submit information by running sudo port install mpstats.

The information is then used to determine which hardware to support and to understand how quickly new MacPorts releases are adopted.

Homepage of the MacPorts Ports site [ 23 ]
Jordan Hubbard, one of the main creators of MacPorts whilst heading Apple's UNIX team [ 29 ] [ 30 ]
Output of port info hashcat . This provides information about a port from its portfile. [ 59 ] [ 60 ]
Information on the hashcat port from the MacPorts Ports website. With the exception of statistics, this information is retrieved from the portfile.
MacPorts Meeting 2018 Badges
MacPorts developers at the 2019 meeting in Scout Center Bohinj , Slovenia [ 71 ]