MacPorts Changelog

What's new in MacPorts 2.9.1

Feb 1, 2024
  • Fixed installation of unneeded build-time dependencies when using source-only mode. (cal in 5988c00)

New in MacPorts 2.9.0 (Jan 25, 2024)

  • Upgrade will now update registry metadata if needed for ports that are not outdated. This should hopefully cut down on revision increases requiring a rebuild just to do things like add or remove dependencies. (jmr in bec110b)
  • Added new option startupitem.logfile.stderr. (#67955, mascguy in e70a512)
  • Many single-letter command line options should now work when given after the action name, and apply only to that action. A few like -N can't easily be turned on and off internally, so if in doubt, keep putting single-letter options before the action. (jmr in aec0601)
  • Ports that set platforms containing any are now not considered outdated after major OS updates. (#68256, jmr in 1b4db00)
  • Dependencies installed for the first time when upgrading a port no longer inherit all variants from the dependent port. Arch checking is now done in this case so +universal is added to the dependency iff needed. (#67637, jmr in 7be167c)
  • Prevented rev-upgrade from complaining about weakly-linked libs that are not present. (#52700, chrstphrchvz in 77e333a)
  • Avoid installing build-time dependencies when force-upgrading an installed port for which a binary archive will be used. (#67017, jmr in a9597dc)
  • Fixed error when running upgrade with -R and -u options. (#68019, jmr in 980a5c1)
  • Fixed rev-upgrade potentially trying to access registry entries that have been uninstalled as a result of a rebuild. (#66186, jmr in 1abd73a)
  • Fixed missing make command potentially causing some ports to fail to parse. (#60881, jmr in 1b4e6a1)
  • Prevented destroot.keepdirs from creating files outside the destroot. (#55673, jmr in 8db11c8)
  • Running port install on a port that is already installed will set the requested flag for that port. (#55085, jmr in 7ed853d)
  • Fixed trace mode on Intel macOS 13. (#66358, cal in 4a1b0c7)
  • Fixed incorrect trace mode handling of setuid/setgid binaries. (cal in 9cc9afc)
  • Fixed the deactivate and uninstall actions sometimes not handling multiple ports in correct dependency order if one or more of them was specified with non-canonical case. (#60446, jmr in 772a9cc)
  • Fixed port names that differ only in case not being considered to be the same when evaulating boolean expressions. (#50518, jmr in bd02a2f)
  • Fixed some issues that could occur in the unusual case that a mirror has an archive but not its corresponding signature. (jmr in a774938, f7828b8)
  • If the macports user has an incorrect home directory set somehow, the installer should now fix it. (#49101, jmr in 128e8ce)
  • Skip vacuuming the registry database on shutdown (after uninstalling one or more ports) if it would not save significant space. (jmr in c82a269)
  • Clean up the SQLite write-ahead log file when closing the registry. (jmr in 9bb06b9)
  • Added a simple default test phase for all ports, which currently just checks the architectures of installed files. test.run yes enables the tests defined by the Portfile, as before. It should always be safe to run port test now, and if it fails it means a test didn't pass. (jmr in ddc2655)
  • Using multiple threads for portindex. (jmr in f00bf80)

New in MacPorts 2.8.1 (Feb 1, 2023)

  • Fixed port lint complaining about platforms any. (jmr in 84d8683)
  • Specifiers like {darwin any >= 10} are now allowed in platforms. This means one archive will be shared by all darwin versions, but it only works on the specified versions. (jmr in 3d9856b)
  • The -stdlib option is now passed to GCC when supported. (jonesc in ebd2261)
  • Fixed the PortIndex not getting correct known_fail values based on the platforms option when using portindex -p. (#66301, jmr in a82021a)
  • Updated the bundled Tcl to 8.6.13. (jmr in 9edb436)
  • No longer automatically creating a symlink in $workpath when the expected worksrcdir doesn't exist, as this broke some ports. Either set worksrcdir correctly, or if it can't be determined in advance, set the new extract.rename option to yes. (jmr in ffdb7d9, 8ae0d73)
  • Added --no-test option for port rdeps to exclude depends_test. (jmr in f1de2b6)

New in MacPorts 2.8.0 (Oct 20, 2022)

  • Fixed an error that occurred in the very specific but apparently somewhat common circumstances where a port was installed from a binary archive but failed to activate (usually because of a conflict with an existing file), and then the port was uninstalled, and later installed again without cleaning it in between. (#55445, jmr in bdd0a13)
  • Added startupitem.custom_file option, which can be used to specify the path to an existing .plist file that should be installed instead of generating one. (jmr in dadc533)
  • The platforms option can now indicate which OS versions a port works on, and known_fail is automatically set on other versions. (#15712, jmr in 2866618)
  • The user is now informed before installing if a port sets known_fail, with the option to try installing anyway if you really want to. (#60566, jmr in d863a7e, 3406c5d)
  • Attempting to install a port with replaced_by set will now install the replacement instead. (jmr in 4da66a2)
  • Fixed new dependencies installed when upgrading a requested port being incorrectly marked as requested. (#60648, jmr in 31e10a8)
  • The SQLite included with Tcl is now used instead of the system version. (jmr in 11d2b06)
  • MacPorts can now be built without a pre-existing tclsh. (#61253, jmr in 2eeba4d)
  • Updated the bundled Tcl to 8.6.12, as well as tcllib 1.21 and tclx 8.4.4. (cal in 89abece, 24c34a9, d7cf914, d3d9e4b, etc.)
  • Fixed the ln command erroring when told to link more than two files into a directory. (jmr in b75c464)
  • The PortGroup command now prevents multiple inclusion of the same portgroup. (jmr in 4215012)
  • Added xcodecltversion variable containing the installed version of the Command Line Tools for Xcode. (jmr in d05ebde)
  • The vercmp command can now take a comparison operator. (jmr in 35daead)
  • Fixed error when installing ports that change prefix without root privileges. (#65313, jmr in a594e01, fbfcb9f)
  • Fixed possible directory ownership error when syncing with recent versions of git. (jmr in e0338e8)
  • Improved the message printed by port diagnose when the Xcode version is newer than any we know about. (#63377, jmr in 733d6e7)

New in MacPorts 2.7.2 (Mar 14, 2022)

  • Fixed poor trace mode performance on newer OS versions. (cal in 3b949cc)
  • Added escaping of shell-unsafe characters when compressing man pages in the destroot phase. (#64531, jmr in b6bac45)
  • Fixed several cases of unrelated errorInfo being printed when something failed. (jmr in e5e7dff, b864109)
  • Fixed handling of distname containing spaces. (#64419, jmr in 690fab1)
  • Fixed use_xmkmf. (#64011, ryandesign in ce42354, c8ff808)
  • Fixed fetch.type cvs. (#63931, ryandesign in c118fb2)
  • Avoided error about specified version being unavailable when the version came from a pseudo-portname like outdated. (#63438, jmr in db498e0)
  • Fixed failure in PortGroup command when the ports tree path contains spaces. (#63534, jmr in b83c743)
  • Fixed incorrect compiler selection logic for certain GCC versions. (#63281, jmr in 087ce29)
  • Added metadata so Installer won't erroneously claim that the MacPorts .pkg requires Rosetta 2 to install on Apple Silicon. (#63096, jmr in 09c4373)

New in MacPorts 2.7.1 (May 26, 2021)

  • Fixed SQL error when MacPorts was built against the 10.15 SDK but run on 10.14. (#62929, jmr in 0249b3c)
  • Fixed poor performance when installing ports containing tens of thousands of files. (#56793, jmr in fc212a0)
  • Fixed a stack trace being printed after an error occurred if COLUMNS was not set in the environment. (#62935, jmr in 13eeabd)

New in MacPorts 2.7.0 (May 19, 2021)

  • The platforms option now has a default value of darwin. (jmr in d918190)
  • Fixed incorrect versioning assumptions that led to being unable to find the right SDK on Big Sur. (#61866, jmr in 8aa347e)
  • Fixed installer incorrectly setting DISPLAY in the user's shell config on Big Sur. (#61649, jmr in 4ce1e96)
  • Fixed crash in rev-upgrade when MacPorts was built against the macOS 11 SDK and run on 10.15. (#61540, jmr in 23f2aa3)
  • Fixed minimum compiler version selected when C++14 and thread-local storage are required. (#61418, chrstphrchvz in 618d036)
  • Enabled write-ahead logging when using SQLite 3.22.0 and later, and enabled the fullfsync pragma, which should make the database even more resilient against power failures and the like. (#61154, jmr in 5779dbc)
  • Fixed svn fetch with newer Xcode versions that no longer provide svn (but do ship a /usr/bin/svn stub) by always using the subversion port. (#60854, jmr in 4acfd68)
  • Logs now explicitly mention the port's version, revision, and active variants. (#59643, jmr in d484695)
  • Improved error reporting when circular dependencies are present when installing or upgrading ports. (#59289, jmr in cea9833)
  • The universal variant is removed if it is not possible to build for two or more architectures. (#57133, jmr in fcff138)
  • New universal_possible variable can be checked to see if universal building is possible. (jmr in e356e1e)
  • Fixed error when choosing the currently active version when interactively prompted to pick a version by port activate. (#56817, jmr in 5f41bb4)
  • Configuring MacPorts base with --with-no-root-privileges now also defaults to --without-startupitems. (#56743, jmr in a18eb94)
  • Rev-upgrade now makes it more obvious when a port is considered broken because of using the wrong cxx_stdlib. (#56629, jmr in 00a2631)
  • Fixed missing error message when the sync portion of selfupdate fails. (#56549, jmr in 8f4b9e5)
  • When installing a port, the variants that are requested by the user (either on the command line or via variants.conf) are now recorded in the registry in order to distinguish them from default variants chosen by the port. When upgrading, only the requested variants from the previous version, rather than all its active variants, are considered when deciding which variants to request when installing the new version. (#46956, jmr in 19c9339)
  • Added new variables macos_version and macos_version_major, which contain the full macOS version (like 10.15.7) and the major macOS version (like 10.15 or 11), respectively. The macosx_version variable is still available but deprecated. (#56252, jmr in 1916d6f)
  • reclaim: remove everything under build and ccache directories. (#60126, khindenburg in b9fdb84, d08d261)
  • For various actions, abort if @version specified is not current. (#60454, khindenburg, jmr in 835a7db, ca07195)
  • Abort when a port includes a nonexistent PortGroup. (#59787, khindenburg in d913932)
  • Adjust lint --nitpick on patchfiles to allow *.diff or *.patch. (#59695, khindenburg in 5037999)
  • Display a progress bar when the underlying build system provides the necessary information, which is currently cmake and ninja. (#15939, landonf in da3524e)
  • Support compressed web pages for livecheck. (#55011, dgilman in 8c41ca7, d741f0c)
  • Added configure.sysroot variable, which is set to either ${configure.sdkroot} if an SDK is being used, or / if not. (#59798, jmr in 8d76ba6)

New in MacPorts 2.6.4 (Nov 14, 2020)

  • Fixed incorrectly requiring a full Xcode installation when building all ports on Big Sur. (#61435, jmr in d58b124)
  • Allow building ports for x86_64 on arm64 systems if they don't support arm64. (#61430, jmr in 94f428e)
  • Disabled building the MacPorts SQLite extension by default, since the system's SQLite on Big Sur no longer supports extensions. Use the new macports.sqlext port, which has a dependency on MacPorts' sqlite3 port, to install it. (toby in 4664a4a)
  • Fixed calculation of dependencies of up-to-date ports during upgrade when different variants are specified but --enforce-variants is not used. (jmr in 81979e5)
  • Rev-upgrade no longer warns about libraries that are present only in the shared cache, since this is normal as of Big Sur. (jeremyhu in 601864d)
  • Fixed incorrect output of 'port info --depends' when used with multiple ports. (#61083, ryandesign in a7cf423)
  • Fixed incorrect warning that the SDK for the current OS version is missing, when configure.sdk_version has been cleared by the Portfile. (jmr in 8402cf8)
  • Fixed some operations involving fs-traverse failing with paths containing whitespace. (ryandesign in 52609c9)
  • Various changes to support arm64. (ryandesign, toby in c8ddc79, bfc0544, 7ccf5a2)
  • No longer error out immediately when an appropriate SDK cannot be found, which prevented even actions like 'port info' from working in that situation. (jmr in 5764fd9)

New in MacPorts 2.6.3 (Jul 20, 2020)

  • Correct macports-clang c++11+ compiler selection with non-libc++ installations. (kencu in 3ea1fb4)
  • Avoid problems with trace mode on modern macOS. (#60702, saagarjha, cal in d96e5a8)
  • Added some basic support for Apple Silicon. (jeremyhu, jmr in 6eaa8d5, 901eb21, 01afdbb)
  • Fixed an issue where post-extract ran with elevated privileges when adduser was used in a Portfile. (#50918, cal in ac1a9b0)
  • Fixed cases where a proper error message was not displayed when curl failed. (#60581, cal in f535c26)
  • Reduced the number of processes spawned when pinging mirror sites. (ryandesign in cee74bb)
  • Support new naming scheme used starting with macports-clang-10 in configure.compiler. (jonesc in 5c3f571)
  • Fixed dmg and mdmg targets on 10.15+. (#59697, jmr in 0459cb1)
  • Ensure archive paths are correctly quoted when extracting. (#60365, jmr in 8a088c3)

New in MacPorts 2.6.2 (Oct 21, 2019)

  • Added support for zsh to the pkg installer's PATH setup code.
  • Allow individual ports to change prefix without disabling binary distribution for them.
  • Added warning to install the Command Line Tools when using
  • Xcode 10 or later and headers corresponding to the current OS version are not available.
  • Always try macports-gcc on ppc systems if system compilers are blacklisted.

New in MacPorts 2.6.1 (Oct 3, 2019)

  • Fixed error on older OS versions that use apple-gcc-4.2.
  • Fixed 'port diagnose' check for command line tools on some older OS versions.
  • - Silenced some SDK-related warnings that were repeatedly printed when using Xcode 11.
  • Improved performance with Xcode 11.
  • Fixed C++ compiler selection with Xcode 4.x on Snow Leopard.
  • Fixed 'port info --depends' printing the wrong set of fields.

New in MacPorts 2.6.0 (Sep 25, 2019)

  • Extend the touch command to take a -W directory parameter.
  • Added fetch.user_agent option to allow working around servers that don't like our default User-Agent string.
  • Enabled sending custom headers in livecheck. (jonesc in 84f97ca)
  • Improved explanatory message when a port cannot be built with universal on macOS 10.14. (#57245, jmr in 918c347)
  • Overhauled compiler selection logic. Ports can now specify that they require a particular C or C++ standard (e.g. C++11), Fortran, OpenMP, MPI, or TLS, and a suitable compiler will be chosen based on all these criteria. (mcalhoun in 5e17a69)
  • Rewrote handling of *.env options. This should fix cases where environment variables were not being set because the old code silently failed to parse something and skipped all remaining variables in the list. This change requires different quoting in some cases: each list element now needs to contain a single assignment (like VAR=value). (jmr in 9313be5)
  • 'port info' with multiple field options now outputs the fields in the order they were given. (#57003, khindenburg in e115b59)
  • Added 'bump' action to assist in updating ports to new upstream versions. (satraul in 9c91a29)
  • Added use_xcode option which indicates that a port requires a full Xcode installation to build (as opposed to just the Command Line Tools). This should allow MacPorts to only complain about Xcode not being installed when it's really needed.
  • Allow using the 'macosx' SDK when the SDK for the current OS version is not present. This comes with its own problems, but it's better than not being able to build anything.
  • The default cxx_stdlib for 10.6-10.8 is now libc++. It is recommended that users on these OS versions run rev-upgrade to rebuild any ports using libstdc++. (jmr in 6b7846a)

New in MacPorts 2.5.4 (Oct 3, 2018)

  • Fixed a reclaim failure when the distfiles option contains a list of one or more empty strings. (#56786, jmr in 8a67087)
  • Changed the 'default' command to not require overquoting of the default value that is being set. (jmr in 8434c0e)
  • Indicate that i386 is not supported by the macOS 10.14 SDK. (jmr in 60544ce)

New in MacPorts 2.5.3 (Jul 5, 2018)

  • Fixed failures due to insufficient privileges on older OS versions. (#56721, jmr in 4b36e60)
  • Fixed 'port reclaim' failing when installed ports have circular dependencies. (#56730, jmr in f4affba)
  • Fixed 'port provides' on Tiger. (#56620, jmr in 6ba4c34)
  • Fixed os.platform value set by portindex -p. (jmr in e45ab90)

New in MacPorts 2.5.2 (Jun 5, 2018)

  • Fixed expression used to check for g++-mp-* when choosing default configure.cxx_stdlib (#56605, jmr in 3e430f1).

New in MacPorts 2.5.1 (Jun 4, 2018)

  • Set the default value of configure.cxx_stdlib to macports-libstdc++ when using macports-gcc-* compilers. (jmr in feaba00)
  • Worked around failure to activate ports containing read-only files in non-root-owned MacPorts installations by disabling hfscompression for those installations. (#56563, jmr in cf91a8b)
  • Fixed failure to record that a port has overridden cxx_stdlib when installing from an archive generated by an older version of MacPorts. (jmr in a514690)

New in MacPorts 2.5.0 (May 29, 2018)

  • New pseudo-portname 'rleaves', matching installed ports that are unrequested and that no requested ports depend on. (danchr in b042c0e7)
  • 'port reclaim' will automatically run 'port rev-upgrade' at the end. (danchr in eed6ffce)
  • 'port reclaim' will only remove all unrequested ports as manual selection of a subset could break dependents. (g5pw in 3578400b)
  • 'port reclaim' respects -N for non-interactive and -y for dry run mode. (#53857, raimue in 08d0a695)
  • New flag 'port fetch --no-mirrors' which will only fetch from URLs in master_sites. (raimue in 0cf1faf2)
  • 'port selfupdate --nosync' has been deprecated, use '--no-sync' instead. (#56434, raimue in ce6d4817)
  • Apply HFS+ compression on activation when bsdtar is available and supports --hfsCompression. Used automatically when libarchive is installed. (#36560, eborisch, raimue in 829557e2)
  • Allow dots in variant names. (#46807, raimue in c3f08731)
  • Sandbox allows access to /dev/ptmx and /dev/ttys* (ryandesign in 8765c142)
  • New option use_tar for ports that use uncompressed tar archives as distfile. (ryandesign in f10e0e37)
  • Add depends_patch to handle the patch dependencies of ports (#52445, khindenburg in a74c159d)
  • Add the ability to handle xz patch files (#52445, khindenburg in 5a142fd2)
  • The cxx_stdlib and delete_la_files settings are taken into account when determining which archive sites can be used. (#56053, jmr in cbbc31e)
  • New options startupitem.debug and startupitem.daemondo.verbosity (#22471, jmr in fd19a71)
  • StartupItems installed by a port are unloaded when the port is deactivated, and reloaded after it is upgraded. (#23677, jmr in 738e5f5)
  • The message about how to load a port's StartupItem is now part of the notes, and will thus be displayed when ports are installed from a binary archive, and can be reviewed later with 'port notes'. (#31798, jmr in 6faf3f8)
  • startupitem_autostart macports.conf setting allows autostart to be disabled for all ports. (#40074, jmr in 85ffdc7)
  • Ports can install more than one StartupItem using the 'startupitems' option. (#44295, jmr in 99d5fb3)
  • Having a different startupitem.install setting than was used when a binary archive was built now works. (#44496, jmr in 3dde77d)
  • 'port load' will now attempt to load launchd plists even if they have not been installed in /Library. (#44497, jmr in ec4ae2d)
  • StartupItems installed as LaunchAgents can be loaded for the current user with 'port load'. Loading LaunchDaemons still requires root. (jmr in 190bf96)

New in MacPorts 2.5.0 RC 1 (May 25, 2018)

  • Changes since beta1:
  • Made portindex(1) more robust in the case of more than one port with the same name being accidentally added to the tree. (raimue in aa2b75c)

New in MacPorts 2.5.0 Beta 1 (May 10, 2018)

  • New pseudo-portname 'rleaves', matching installed ports that are unrequested and that no requested ports depend on. (danchr in b042c0e)
  • 'port reclaim' will automatically run 'port rev-upgrade' at the end. (danchr in eed6ffc)
  • 'port reclaim' will only remove all unrequested ports as manual selection of a subset could break dependents. (g5pw in 3578400)
  • 'port reclaim' respects -N for non-interactive and -y for dry run mode. (#53857, raimue in 08d0a69)
  • New flag 'port fetch --no-mirrors' which will only fetch from URLs in master_sites. (raimue in 0cf1faf)
  • 'port selfupdate --nosync' has been deprecated, use '--no-sync' instead. (#56434, raimue in ce6d481)
  • Apply HFS+ compression on activation when bsdtar is available and supports --hfsCompression. Used automatically when libarchive is installed. (#36560, eborisch, raimue in 829557e)
  • Allow dots in variant names. (#46807, raimue in c3f0873)
  • Sandbox allows access to /dev/ptmx and /dev/ttys* (ryandesign in 8765c14)
  • New option use_tar for ports that use uncompressed tar archives as distfile. (ryandesign in f10e0e3)
  • Add depends_patch to handle the patch dependencies of ports (#52445, khindenburg in a74c159)
  • Add the ability to handle xz patch files (#52445, khindenburg in 5a142fd)
  • The cxx_stdlib and delete_la_files settings are taken into account when determining which archive sites can be used. (#56053, jmr in cbbc31e)
  • New options startupitem.debug and startupitem.daemondo.verbosity (#22471, jmr in fd19a71)
  • StartupItems installed by a port are unloaded when the port is deactivated, and reloaded after it is upgraded. (#23677, jmr in 738e5f5)
  • The message about how to load a port's StartupItem is now part of the notes, and will thus be displayed when ports are installed from a binary archive, and can be reviewed later with 'port notes'. (#31798, jmr in 6faf3f8)
  • startupitem_autostart macports.conf setting allows autostart to be disabled for all ports. (#40074, jmr in 85ffdc7)
  • Ports can install more than one StartupItem using the 'startupitems' option. (#44295, jmr in 99d5fb3)
  • Having a different startupitem.install setting than was used when a binary archive was built now works. (#44496, jmr in 3dde77d)
  • 'port load' will now attempt to load launchd plists even if they have not been installed in /Library. (#44497, jmr in ec4ae2d)
  • StartupItems installed as LaunchAgents can be loaded for the current user with 'port load'. Loading LaunchDaemons still requires root. (jmr in 190bf96)

New in MacPorts 2.4.4 (May 6, 2018)

  • Use subversion port instead of /usr/bin/svn in fetch phase on OS X 10.11 El Capitan and earlier.
  • Use git port instead of /usr/bin/git in fetch phase on OS X 10.8 Mountain Lion and earlier.
  • 'port reclaim' works correctly with distfiles with tags.
  • Trace mode with ccache enabled works correctly when the ccache-devel port is installed.
  • Add 'size' to the set of default checksums.
  • An error will be raised immediately if the revision or epoch options are set to something that is not an integer.
  • 'port mirror' will skip ports that have the special keyword 'NoMirror' in their license option.

New in MacPorts 2.4.3 (Apr 12, 2018)

  • Fix trace mode on macOS High Sierra 10.13.3
  • Using subport= with a nonexistent subport causes an error.
  • livecheck.regex is matched case-insensitive.
  • Sandbox allows read/write access to /dev/{u,}random.
  • Sandbox allows write access to /var/db/mds.

New in MacPorts 2.4.2 (Oct 9, 2017)

  • Sandbox prevented ports to set suid permission bit on High Sierra.
  • Change compiler and SDK selection rules for Sierra and High Sierra.
  • Use copyfile(3) with COPYFILE_CLONE for SIP workaround in trace mode.
  • Fix memory leak in 'port reclaim'.

New in MacPorts 2.4.1 (Mar 1, 2017)

  • Avoid an infinite loop when livecheck.regex is empty. (raimue in d33a8a0)
  • Fixed detection of /opt/local/bin already in the user's PATH in the installer postflight script. (barry-scott in dcb0788, b757252)
  • Fixed the display of default variants by 'port variants' when the defaults are affected by variants present in variants.conf. (jmr in 9e63a61)
  • Fixed 'port reclaim' deleting a file installed by the MacPorts installer for technical reasons. (#53436, cal in b0c0957)
  • Display warning if reinplace doesn't change anything. (#15514, khindenburg in 8460505)
  • Fixed 'port select' failure when the currently selected version no longer exists. (#31702, raimue in 9389e83)
  • Fixed 'port lint' complaining that very large epoch values are non-numeric. (#53489, ionic in eb0a577, 0846afb)
  • Fixed fallback to building from source when MacPorts is configured to get packages from an FTP server. (#53530, jmr in 6718cc6)
  • Fixed failure to extract portdir archives. (#53532, jmr in 8c2da16)
  • Fixed 'port diagnose' incorrectly offering to fix the PATH in some shells by skipping the check with shells it doesn't know about. (#53473, jmr in 17c70c9)
  • Reduced the default verbosity of 'port diagnose'. (jmr in 741a77b)
  • Fixed 'port diagnose' incorrectly reporting some symlinks as missing. (#53490, jmr in 103d6f6)
  • Fixed 'port lint' complaining that GitHub handles should be obfuscated. (jmr in 2cadd1b)

New in MacPorts 2.4.0 (Feb 3, 2017)

  • New action 'port reclaim' to clean inactive ports and unnecessary distfiles to get back disk space, developed during GSoC 2014. (ksammons in branch gsoc14-cleanup)
  • New action 'port diagnose' to check for installation problems and configuration errors, developed during GSoC 2014. (ksammons in branch gsoc14-cleanup)
  • Replaced the strings previously printed by "port help" with much more detailed and current manpages written using asciidoc that open automatically. Added documentation for almost all commands currently implemented by MacPorts. (raimue in branch new-help-system, merge in r123002, manpages written by cal, jmr, raimue, ionic, jeremyhu, #44530, #15467)
  • Added interactive questions for various use cases like 'install', 'activate', 'uninstall --follow-dependencies'. Also added global flag '-N' to provide non-interactive invocations. (shasha in branch gsoc14-interactive, merge in r124243)
  • Display notes for installed or updated ports at the end of the installation to prevent them from getting lost in the scrolling output. (#24507, cal in r118304, patch by snc)
  • Show date in verbose output of 'port installed' (raimue in r146757, r152685)
  • Added "setunrequested" alias for "unsetrequested" command. (ionic in r130217)
  • Handle SIGTERM and SIGINT (^C) in MacPorts to prevent inconsistencies in the registry database when MacPorts is aborted during a critical operation. (cal in r118297 and r118298)
  • Added macports_version to the Portfile execution context, to allow checking the current MacPorts version in Portfiles. (cal in r134511)
  • Add depends_test to handle the dependencies for the test phase of ports. (khindenburg in r140488, #38208)
  • Remove "support" for rpm and deb packages in MacPorts, leaving pkg/mpkg. (afb in r123004)
  • Remove deprecated rpm-vercomp function, ports should use vercmp instead. (afb in r123005)
  • Use pkgbuild instead of PackageMaker.app in 'port pkg' on newer systems. (#42725, jmr in dd89bb8)
  • Fixed a bug that could cause installation of ports with large numbers of dependencies to fail due to running out of file descriptors. (#50986, jmr in 0fd195f)
  • Fixed variants requested on the command line or in variants.conf not being properly passed down to dependencies when +universal is added by arch checking. (#53322, jmr in 4972592)
  • Fixed building dmgs of ports with a non-zero revision. (#51136, jmr in 62d7125, e0c7f1c, 75584d8)
  • Fix 'port info' output for multi-valued maintainers (#52928, raimue in ba2002c)

New in MacPorts 2.3.5 (Jan 26, 2017)

  • Updated compiler selection for macOS 10.12 Sierra (jeremyhu in r141134 and r150305)
  • Do not use default archive_sites for custom ports trees (raimue in r147456)
  • Prune symlinks to deleted libtool archives (.la) (#40935, jmr in r119571, r119594, r119595)
  • Return an error livecheck matched a version older than the current version. (jmr, raimue in r127797, r149299)
  • Permit pkg phase to be run as root, if needed for additional modifications in destroot. (ctreleaven in r152115)
  • Ignore warnings on stderr for archive extraction to allow use of gnutar. (#42492, cal in r132312)
  • Create the documented porthier(7) directory structure in ${prefix}/var and ${prefix}/share for destroot phase. (#45434, #47688, ryandesign in r135998, r135999)
  • When syncing a ports tree failed, operation could continue with the wrong uid. (#43202, cal in r118570)
  • No longer check Subversion properties in 'port lint' (#48577, ryandesign in r153865)
  • Fix problems with the postflight script in the installer. (#43875, #43749, cal in r122042, r122044, r154073, r154110)
  • Warn when the obsolete Subversion repository is used. (raimue in r154451)

New in MacPorts 2.3.4 (Oct 23, 2015)

  • Installation will now abort when an archive is found on a server but downloading it fails, rather than trying to build from source without the correct dependencies (jmr in r138461)
  • Re-added macports-llvm-gcc-4.2 and apple-gcc-4.2 to the compiler fallback list on Yosemite now that they work (jmr in r136965)
  • Changed the existsuser and existsgroup procs to return -1 on failure instead of 0, since 0 is root's uid (#45737, cal in r135851)
  • The MacPorts version is now available to Portfiles through a proc called macports_version (cal in r134511)
  • Fix failure to activate ports that install files with backslashes in their names (#47283, cal in r134501, r134502)

New in MacPorts 2.3.3 (Nov 22, 2014)

  • Changes:
  • selfupdate
  • pkgs/dmgs for 10.10, 10.9, 10.8, 10.7, 10.6, 10.5 and 10.4
  • a source tarball
  • a tag in subversion

New in MacPorts 2.3.2 (Oct 18, 2014)

  • MacPorts 2.3.2 has been made available via the usual methods:
  • selfupdate
  • pkgs/dmgs for 10.10, 10.9, 10.8, 10.7, 10.6, 10.5 and 10.4
  • a source tarball
  • a tag in subversion

New in MacPorts 2.3.1 (Jun 26, 2014)

  • Added macports-clang-3.4 to compiler fallback lists(#43932, jeremyhu in r118735, r119034)
  • Added quoting to PATH and MANPATH variables set by the installer, toaccomodate paths containing spaces (#43798, jmr in r121311)
  • Update for automatic dependencies for fetch.type git, needed due to thegit-core port being renamed to git (#44052, ciserlohn in r120928)
  • Fixed failure to sync using daily tarball (#43821, cal in r120382)

New in MacPorts 2.3.0 (May 24, 2014)

  • Use a private copy of Tcl 8.5 for MacPorts. Starting with this change features introduced with Tcl 8.5 can be used in Portfiles while still keeping support for Tiger and Leopard. (cal in r117621)
  • Add select --summary option. (#36179, snc in r117607)
  • Display a progress indicator for slow downloads. (cal in r117044)
  • Attempt to use HTTP pipelining when downloading. (cal in r117022)
  • Allow ports to select a specific version of the Mac OS X SDK for builds. (larryv in r116437)
  • Check for Command Line Tools presence and Xcode license agreement acceptance and print helpful warnings if they aren't detected. (cal in r115900)
  • Support using .tar.lz archives using use_lzip (mww in r114652)
  • Enhance the "move" Portfile builtin to support case-only renames on case-insensitive filesystems. (#41679, ryandesign in r114289)
  • Fix a regression that caused problems with sandboxing when the MacPorts prefix contained a symlink. (#39850, cal in r113704)
  • Disable Spotlight indexing on build directories, distfiles, registry, log files, archives, base source and the default ports tree. (cal in r113649)
  • Detect when base is running on a different platform than the one it was configured for and refer user to migration instructions. (raimue in r113478)
  • Merge curl HTTP POST support required for MacPorts port statistics developed in GSoC 2011 (jmr in r113396, original code by derek)
  • In debug output, sort environment variables and print one per line. (#40703, ryandesign in r113037)
  • Fix incorrect lint messages when an uppercase letter is used in a PortGroup name. (#40733, ryandesign in r112064)
  • Add "-prepend" command for Portfile options (similar to existing "-append" command). (#40655, ryandesign in r111990)
  • Merge new test framework developed in GSoC 2013 (mariusc in r111325)
  • Support clang's -stdlib option explicitly using configure.cxx_stdlib rather than relying on its default value. This can be used to make MacPorts use libc++ on OS X < 10.9. (larryv in r110519)
  • Support syncing git-svn working copies. (jeremyhu in r109747)
  • Remove support for mports:// and non-tarball HTTP/FTP port tree sources. (cal in r109659)

New in MacPorts 2.3.0 RC 2 (May 20, 2014)

  • Changes since rc1 are:
  • Fixed files being installed with too restrictive permissions when the
  • user has a restrictive umask.
  • Portability fixes (for the rsync server, which generates the PortIndex)

New in MacPorts 2.3.0 Beta 2 (Apr 23, 2014)

  • Added a port-tclsh link for the use of contrib scripts, and removed the requirement for them to source macports_fastload.tcl.
  • Fixed pkg_mkIndex failure at build time on Leopard and Tiger
  • Fixes for trace mode when not running as root
  • Fixed an error when executing portfiles from the registry

New in MacPorts 2.3.0 Beta 1 (Mar 21, 2014)

  • Use a private copy of Tcl 8.5 for MacPorts. Starting with this change features introduced with Tcl 8.5 can be used in Portfiles while still keeping support for Tiger and Leopard. (cal in r117621)
  • Add select --summary option. (#36179, snc in r117607)
  • Display a progress indicator for slow downloads. (cal in r117044)
  • Attempt to use HTTP pipelining when downloading. (cal in r117022)
  • Allow ports to select a specific version of the Mac OS X SDK for builds. (larryv in r116437)
  • Check for Command Line Tools presence and Xcode license agreement acceptance and print helpful warnings if they aren't detected. (cal in r115900)
  • Support using .tar.lz archives using use_lzip (mww in r114652)
  • Enhance the "move" Portfile builtin to support case-only renames on case-insensitive filesystems. (#41679, ryandesign in r114289)
  • Fix a regression that caused problems with sandboxing when the MacPorts prefix contained a symlink. (#39850, cal in r113704)
  • Disable Spotlight indexing on build directories, distfiles, registry, log files, archives, base source and the default ports tree. (cal in r113649)
  • Detect when base is running on a different platform than the one it was configured for and refer user to migration instructions. (raimue in r113478)
  • Merge curl HTTP POST support required for MacPorts port statistics developed in GSoC 2011 (jmr in r113396, original code by derek)
  • In debug output, sort environment variables and print one per line. (#40703, ryandesign in r113037)
  • Fix incorrect lint messages when an uppercase letter is used in a PortGroup name. (#40733, ryandesign in r112064)
  • Add "-prepend" command for Portfile options (similar to existing "-append" command). (#40655, ryandesign in r111990)
  • Merge new test framework developed in GSoC 2013 (mariusc in r111325)
  • Support clang's -stdlib option explicitly using configure.cxx_stdlib rather than relying on its default value. This can be used to make MacPorts use libc++ on OS X < 10.9. (larryv in r110519)
  • Support syncing git-svn working copies. (jeremyhu in r109747)
  • Remove support for mports:// and non-tarball HTTP/FTP port tree sources. (cal in r109659)

New in MacPorts 2.2.1 (Oct 26, 2013)

  • Fixed a problem where dependency calculation could sometimes fail for ports that only support 32-bit architectures when the configured build_arch is 64-bit and dependencies thus need to be +universal (#40721, jmr in r112067)
  • Fixed a potential crash in the strsed procedure (toby in r110985)
  • Provide choice of GCC version when compiling with DragonEgg. (larryv in r108040)
  • Add Portfile options for setting OBJCXX, OBJCXXFLAGS, and universal architecture flags in OBJCFLAGS. (#38512, larryv in r107973, r107976, r107987)
  • Add support for autostarting tasks with startupitems after installing. Useful for the certsync port. (#35474, cal in r106810, 109245)

New in MacPorts 2.2.0 (Jul 24, 2013)

  • Fixed ports sometimes being incorrectly cleaned after the unarchive target is run with newer archives. (jmr in r106717)
  • When rebuilding an installed port, fixed the old copy being removed before the new copy has been built. (jmr in r106668)
  • Support deleting selected files and directories before creating a pkg. (blair in r105575)
  • Remove unsupported xpkg package type, xar-based format with XML. (afb in r105002)
  • Support pattern matching in compiler.blacklist. (larryv in r104174, r104178)
  • Workaround for some OS commands hanging on 10.8 when started from a root login shell. (#34221, jeremyhu in r104118)
  • TMPDIR is now set to ${workpath}/.tmp while building ports, to avoid problems with using /tmp. (#37834, ryandesign in r103518)
  • Remove unimplemented 'port submit', remove XAR source packages. (cal in r103400)
  • Prevent overlinking by removing dependency_libs information from GNU Libtool (.la) files or by deleting the files entirely. (#38010; jmr in r102945; jeremyhu in r107465, r107527)
  • Setting configure.compiler will now automatically add a dependency if the chosen compiler is provided by a port. (#32542, cal in r102932)
  • Add 'port space --total' which displays the grand total only. (raimue in r102248)
  • Added 'subport:' pseudo-portname that expands to ports that provide a matching subport; added 'subportof:' pseudo-portname that expands to the list of subports of the given port name (raimue in r100059)
  • Fixes bringing trace mode back to a working state. Improvements to reduce the number of builds trace mode breaks. (cal in r100071-100073, r100077, r100126, r100221, r106710)
  • Began using sandbox-exec(1) on 10.5+ to prevent commands executed using the 'system' procedure from writing files outside of the build directory and selected other locations like /tmp. (jmr in r98156, r98193, etc.)
  • Added ability to sync ports tree with git (jeremyhu in r92410)

New in MacPorts 2.2.0 RC 1 (Jul 12, 2013)

  • fixed disabling the default archive source in archive_sites.conf
  • workaround: disabled sandboxing for the 'pkg' target on 10.8 until a real fix can be found.

New in MacPorts 2.2.0 Beta 1 (Jun 11, 2013)

  • Fixed ports sometimes being incorrectly cleaned after the unarchive
  • target is run with newer archives. (jmr in r106717)
  • When rebuilding an installed port, fixed the old copy being removed before the new copy has been built. (jmr in r106668)
  • Support deleting selected files and directories before creating a pkg. (blair in r105575)
  • Remove unsupported xpkg package type, xar-based format with XML. (afb in r105002)
  • Support pattern matching in compiler.blacklist. (larryv in r104174, r104178)
  • Workaround for some OS commands hanging on 10.8 when started from a root login shell. (#34221, jeremyhu in r104118)
  • TMPDIR is now set to ${workpath}/.tmp while building ports, to avoid problems with using /tmp. (#37834, ryandesign in r103518)
  • Remove unimplemented 'port submit', remove XAR source packages. (cal in r103400)
  • Remove dependency_libs information from libtool libraries (.la) in order to prevent overlinking. (#38010, jmr in r102945)
  • Setting configure.compiler will now automatically add a dependency if the chosen compiler is provided by a port. (#32542, cal in r102932)
  • Add 'port space --total' which displays the grand total only. (raimue in r102248)
  • Added 'subport:' pseudo-portname that expands to ports that provide a matching subport; added 'subportof:' pseudo-portname that expands to the list of subports of the given port name (raimue in r100059)
  • Fixes bringing trace mode back to a working state. Improvements to reduce the number of builds trace mode breaks. (cal in r100071-100073, r100077, r100126, r100221, r106710)
  • Began using sandbox-exec(1) on 10.5+ to prevent commands executed using the 'system' procedure from writing files outside of the build directory and selected other locations like /tmp. (jmr in r98156, r98193, etc.)
  • Added ability to sync ports tree with git (jeremyhu in r92410)

New in MacPorts 2.1.3 (Feb 5, 2013)

  • Fixed a bug where a certain order of starting and aborting a build, running selfupdate and continuing a build would resume building although it should start from the beginning. (#29223, cal in r96136, r96399, r96400, r96538)
  • Fix permission problem in the creation of the ccache directory with ccache >= 3.1.7 by running the initialization step as the macportsuser. (raimue in r97868)
  • Fix an endless loop that could be triggered in rev-upgrade when a broken port is not in the index, e.g. when it has been deleted from the tree, or it was installed directly from a Portfile not in the tree. (cal in r100129, jmr in r101313)
  • Set a busy timeout on SQLite connections to prevent MacPorts from uselessly burning CPU cycles when waiting for a database lock. (cal in r100217)
  • Switch from exclusive locking to immediate locking in the registry database to avoid locking reads where not needed. (cal in r100218)
  • Fix a problem where interrupting the uninstallation process could leave the registry database in a corrupted state. (#34482, cal in r100219)
  • Fixed a failure in the fallback code used by 'port pkg' when PackageMaker is not installed. (#36597, jmr in r96262)
  • Fixed an incorrect lint error about the port directory name when a full @macports.org maintainer address is used. (#35925, ryandesign in r97264)
  • Fixed creation of disk images with flat packages. (jmr in r99167)
  • Fixed a bug where not all requested variants would be passed on to dependencies when building an mpkg. (#36363, jmr in r100679)
  • Added configure.compiler options macports-clang-3.2 and macports-clang-3.3 (jeremyhu, ryandesign, jmr in r92588, r101163, r101166, r101270)
  • Added configure.compiler options macports-dragonegg-3.0 through macports-dragonegg-3.3. (jeremyhu in r101933)

New in MacPorts 2.1.2 (Jul 26, 2012)

  • Fixed autodetection of developer_dir with Xcode 4.4
  • Made conversion of images to archives more robust against missing images
  • Support spaces in hg.tag when fetching from mercurial
  • Made mpkg fail when building a component pkg fails, instead of trying to
  • Added a log message when everything to be installed has an unsatisfied dependency, such as in the case of circular dependencies
  • Fixed incorrect error message when installing a port that has a dependency that is not in the index

New in MacPorts 2.1.1 (May 22, 2012)

  • Fixed incorrect parsing of mirror group URLs that contain a colon to indicate a port number (#32018, jmr in r93258)
  • Do not print detailed progress information in rev-upgrade when stdout is not a terminal (#34480, cal in r93221,r93222)
  • Made rev-upgrade avoid trying to upgrade ports that are not in the index (jmr in r93197)
  • Fixed rev-upgrade disabling source-only mode in its first upgrade pass (jmr in r93153)
  • Fixed incorrect rebuild order in rev-upgrade (cal in r93129)
  • Fixed port lookups failing for all sources when the index is missing in one source (#30593, jmr in r92976)
  • Fix database upgrade on Tiger, where SQLite doesn't support ALTER TABLE ADD COLUMN (#34463, cal in r93256)

New in MacPorts 2.1.0 (May 17, 2012)

  • New configure.compiler options: macports-clang-2.9, macports-clang-3.0, macports-clang-3.1, macports-gcc-4.7, macports-gcc-4.8 (jeremyhu in r86719, ryandesign in r91521)
  • Avoid using pkg-config to find sqlite3 in our configure script unless it can't be found by other means, because some third-party packages incorrectly install a /usr/bin/pkg-config that points to an incompatible copy of sqlite3. (#30932, dluke/jmr in r91512)
  • 'port pkg' and 'port mpkg' will now create flat packages (i.e. a xar archive rather than a directory) on 10.6+. (jmr in r91317, r91329, r91331, r91437)
  • Fixed dependencies sometimes being installed multiple times when required with different archs. (#31794, jmr in r91357)
  • Build-time dependencies will no longer be installed if a prebuilt archive is available for download (and port is configured to use it). (jmr in r91196, r91217)
  • Added new config file archive_sites.conf, which can be used to configure additional archive download sources. Each source has an associated archive type; portarchivetype is now only used when creating archives locally. Sources also have an associated prefix, applications_dir and frameworks_dir, and if any of these do not match the current values, the source is not used. (jmr in r91009)
  • Xcode 4.3 support: Search harder for developer directory; advise user to run xcode-select when necessary, searching for Xcode and suggesting xcode-select commands. (jberry, jmr in r89970,r89971,r89972,r89996,r89999,r90003,r90005-r90009, r90018-r90019,r90024,r90031)
  • warn about non-existing developer_dir when it's set in macports.conf (cal in 90802)
  • port automatically installs bsdmake when there's no bsdmake in $PATH and a port sets build.type bsd (#33355, cal in r90650)
  • Added -W option for reinplace that sets a base directory that all file arguments are interpreted as being relative to. (raimue in r90610)
  • Added macports.conf options 'host_blacklist' and 'preferred_hosts', used for indicating lists of download hosts that should not be used or should be used preferentially, respectively. These override the usual ping time check. Ping times are also now cached for 24 hours. (jmr in r89459)
  • Added 'rev-upgrade' action checking for broken linkage and rebuilding ports containing broken files. Made rev-upgrade run automatically after each upgrade or install. (cal in branch gsoc11-rev-upgrade, merge in r88376, also cal, raimue, jmr in r88377,r88411,r88441,r88511,r88666,r88732,r89180,r89659,r89661,r90102, r90381)
  • Added options controlling rev-upgrade behavior to macports.conf (jmr, cal in r88725,r88794,r89189)
  • port livecheck regex finds multiple matches on the same line (raimue in r88031)
  • Several improvements to port lint: licenses, subversion properties, maintainer addresses (#30194, snc, raimue in r85929, r86016, r89428, r89610)
  • Added license_noconflict option to specify dependencies for which the maintainer has manually checked license compatibility and wishes to overrule the conservative automated checks. (jmr in r89004)
  • Xcode 4.3 support: Use xcrun -find to find xcode compiler if it's not found in /usr/bin. (jberry, jmr in r88540,r88541,r88546,r88777,r88779,r88787,r89359,r89984,r90028)
  • Added options compiler.blacklist, compiler.whitelist, and compiler.fallback; to allow blacklisting, whitelisting, and setting the fallback order for configure.compiler values, respectively. (#30041, jmr in r88676)
  • Fix sync with subdirectory of Subversion 1.7-format working copy (#33573, jmr in 86872)
  • Fixed conflicts not being checked for when installing ports that have no dependencies. (#31571, dports in r85382)
  • dmg postflight: quote all paths to handle the increasingly frequent occurrence that $HOME contains spaces (#33583, ryandesign in r84345)
  • dmg postflight: adjust wording of some messages (ryandesign in r84344)
  • The deprecated Portfile options svn.tag, distcheck.check and livecheck.check have been removed. (raimue in r82763)
  • Implement new option-replace using lsearch/lreplace. The old behavior is deprecated for option-replace with only one argument, but can still be found in option-strsed. (raimue in r82760, r82761)
  • Added 'buildfromsource' macports.conf setting, which allows permanently selecting the behaviour of the -s or -b option. (jmr in r81540)

New in MacPorts 2.0.4 (Feb 27, 2012)

  • Xcode 4.3 support: Change home directory for MacPorts user to ${prefix}/var/macports/home. (jberry, jmr in r89988, r89993, r90002, r90010, r90011)
  • set env(HOME) to ${workpath}/.home when building ports (#31827, jmr in r89994, r90004)
  • Added configure.cxx setting when configure.compiler is apple-gcc-4.2 (jeremyhu in r80248)
  • Xcode 4.3 support: added packagemaker_path macports.conf setting (jmr in r90058)
  • Resolve ambiguity in selection in portlists (jberry in r88179, r88185)
  • Xcode 4.3 support: updated default developer_dir location for 4.3 (jmr in r90016)
  • Xcode 4.3 support: use compilers in /usr/bin instead of developer_dir when possible, as the latter has proven to be volatile. (jmr in r90015)
  • Xcode 4.3 support: updated SDK paths for 4.3 (jmr in r90000)
  • Work around broken FTP proxy support in some versions of libcurl (jmr in r84351, r88045)

New in MacPorts 2.0.3 (Sep 5, 2011)

  • Fixed a regression introduced in 2.0.2 when fetching with a VCS (#31073, jmr in r83471)

New in MacPorts 2.0.2 (Sep 2, 2011)

  • Messages recommending running selfupdate will no longer be printed when
  • selfupdate is being run. (#23094, jmr in r83270, r83391)
  • The PortIndex will not be regenerated during selfupdate when base is
  • outdated. This avoids failure to index ports that use features only
  • available in the current version. (#30739, jmr in r83271)
  • Fixed build failures when the TMPDIR environment variable is set to a
  • directory that is not writable by the macports user.
  • (#30749, jmr in r83267)
  • Fixed error when checksumming distfiles with names containing spaces.
  • (#28568, jmr in r83149)
  • The uninstall and deactivate actions now sort the port list so that
  • dependents are processed before the ports they depend on.
  • (#8431, jmr in r82947)
  • Fixed an issue where a non-universal version of a port could be
  • installed as a dependency as well as the universal version, with
  • unpredictable results, when some ports in the dependency graph needed
  • the universal version but others didn't. (jmr in r82924)
  • Now using a temp dir inside ${prefix} when activating, as /tmp or
  • /var/folders may be on a different volume. (jmr in r82767)
  • Fixed extracting portfile-only archives. (#31033, jmr in r81830)
  • Fixed adduser and addgroup procedures not re-dropping privileges when
  • done. (jmr in r81630)
  • Fixed error activating ports with names containing the string "cpio".
  • (#30532, jmr in r81577)

New in MacPorts 2.0.0 (Jul 22, 2011)

  • Multiple ports can now be defined in one Portfile using the 'subport' procedure. This reduces code duplication when several ports use very similar code. (jmr in r78062)
  • Privilege dropping is now on by default. The runtime user can be changed when building from source but defaults to 'macports'; this user is created at install time. (jmr in r79025)
  • Fetching from some extremely slow or partially unresponsive servers should now time out as expected. (raimue in r71038)
  • The registry is now "vacuumed" (compacted/defragmented) after uninstalling ports. (jmr in r70608)
  • Downloaded archives are now checked for integrity using digital signatures. Sync and selfupdate can also use a signed tarball. New pubkeys.conf file allows configuring keys to trust. (jmr in r68996, r79093)
  • Added 'actinact' pseudo-portname that expands to installed ports with an active version and at least one inactive version. (#27666, jmr in r79421, based on patch from gmail.com:ww.galen)
  • Added --size option for 'contents' action that makes it print the size of each file. (#27245, jmr in r79365, based on patch from gmail.com:ww.galen)
  • Added 'space' action to show the disk space used by ports' active files. (#27244, jmr in r79349, based on patch from gmail.com:ww.galen)
  • Actions can be abbreviated to an unambiguous prefix of the full name. (#27242, patch from gmail.com:ww.galen committed in r79259)
  • Fixed error when activating ports whose version contains an underscore followed by an integer and a dash. (#28084, jmr in r79167)
  • Deactivating a port that has dependents no longer needs to be forced when the dependents are all inactive. (#29505, jmr in r78086)
  • New option 'add_users' has been added. Setting it will ensure that the listed users are created before all operations that may require them to exist. (#11563, jmr in r78660)
  • 'port info --index' should be much faster and will work with the 'current' pseudo-port provided the port has been indexed. (#13673, jmr in r78621)
  • Relocation is explicitly disabled when building pkgs on 10.6, so Apple's Installer won't attempt to overwrite other copies of the same software not installed by MacPorts. (#25174, jmr in r78178)
  • Non-Darwin platforms can once again build base against OpenSSL for checksum support. (#26813, afb in r77865)
  • It is now safe to set svn.post_args, rather than that option being reserved for svn.url. (#27454, jmr in r73825)
  • Variants specified when running 'port mpkg' are now set in the dependencies as well. (#27231, jmr in r73303)
  • Fixed various issues with privilege dropping. (#26899, jmr in r69453 etc.)
  • Trace mode no longer fails on 10.6. (#21582, jmr in r74318, r74369)
  • Ports that create StartupItems (aka launchd plists) should now be installable by unprivileged users. (#10879, jmr in r66700, r75143)
  • Fixed incorrect output from 'port dependents' when using newer SQLite versions. (#27506, patch from gmail.com:mmpestorich committed in r76827)
  • The flat registry format is no longer available. Setting portdbformat to 'flat' in macports.conf will result in the sqlite registry being used. (jmr in r77681)
  • Port images are now stored as archives. Archive mode is now effectively always on. Among other benefits, this fixes some bugs with the handling of hard links installed by ports (e.g. #13601).
  • Direct mode is no longer available. Existing port image directories, and installed files for direct mode, will be converted to archives when upgrading.
  • (#19458, branch by blb, merged by jmr in r77511)
  • master_site_local, patch_site_local, and archive_site_local can be set in macports.conf, with the same effects as the corresponding environment variables. (jmr in r74924)
  • Added 'logfile' action that prints the path to a port's log file. (jmr in r74655)
  • Computing large dependency trees that contain the same port(s) multiple times should be considerably faster. (jmr in r73133)
  • configure.compiler can now be set to macports-llvm-gcc-4.2 or macports-clang (mfeiri in r72936, r72937)
  • Add '-n' option to reinplace (#26406, ryandesign in r73227)
  • Add new ccache_dir and ccache_size options, default path is ${portdbpath}/build/.ccache and a size of 2 GB. (raimue in r71604, r71606)
  • Add 'system -W path' which changes to the given directory before executing the command. (raimue in r71380, r71389)
  • Add -w to build.cmd and destroot.cmd if using gnumake (raimue in r71370)
  • Add livecheck.ignore_sslcert; setting fetch.ignore_sslcert does no longer apply to livecheck. distcheck now respects fetch.ignore_sslcert. (#17063, raimue in r70975, r70979, r70982)
  • Add SHA256 checksums in addition to MD5, SHA1 and RIPEMD160. (afb in r57888, r57913; snc in r68955)
  • Add @pkgdep lines to archives, with build-time dependencies. (afb in r76919

New in MacPorts 1.9.2 (Nov 8, 2010)

  • selfupdate
  • DMGs for 10.5, and 10.6
  • a source tarball
  • a tag in subversion

New in MacPorts 1.9.1 (Jun 18, 2010)

  • selfupdate
  • DMGs for 10.4, 10.5, and 10.6
  • a source tarball
  • a tag in subversion

New in MacPorts 1.9.0 (Jun 9, 2010)

  • It is no longer possible to use include statements in Portfiles (raimue in r68206)
  • Command line options can be abbreviated if unambiguous (raimue in r66837)
  • Added a new variable 'os.subplatform'. When os.platform is darwin, the subplatform is either 'macosx' or 'puredarwin'.
  • 'platform' no longer creates a variant, instead it executes the code in the body immediately if the current platform matches the one specified.
  • Using a Portfile with a modification date in the future now causes an informative error early on, instead of just discarding the workdir at the start of every phase. (#24717, raimue in r65246)
  • Fetching from servers that require a cookie to be set now works. (#24584, raimue in r66785)
  • Fixed an error when everything is deleted from the patchfiles list. (#24178, raimue in r65243)
  • Added 'license:' pseudo-port selector. (#24123, perry in r65033)
  • Added new fetch.type 'bzr'. (#23436, perry in r65096)
  • Added 'rdeps' and 'rdependents' actions, recursive versions of 'deps' and 'dependents' respectively. Also added 'depof:', 'rdepof:', 'dependentof:' and 'rdependentof:' pseudo-port selectors, for specifying the ports that are dependencies or dependents of the given port. (#22346, jmr in r65858/r66198)
  • Updated the description of the search action in the port(1) man page. (#23749, jmr in r66670)
  • Dry-run now uses /dev/null as the statefile, which prevents a couple of problems involving locking and variant checks. (#21794, #21962; jmr in r66921)
  • The list of dependencies to be installed is now displayed immediately after computing them. (#21540, jmr in r66321)
  • The quick index is now reloaded after syncing in interactive mode, which prevents errors due to it not matching the updated PortIndex. (#20874, jmr in r66319, refinement of patch from carrel.org:edward)
  • The architectures of dependencies are checked when installing a port. If a dependency does not provide the required arch(s), it is rebuilt with +universal if that is possible and will help, otherwise the install fails and an error message explains why. (#20728, jmr in r65087)
  • New supported_archs option allows ports to indicate which architectures they can be built for. The default values of configure.build_arch and configure.universal_archs change based on this list. Set this to 'noarch' if a port installs only architecture-independent files. (#20739, jmr in r64372/r64945)
  • Declaring a variant that requires one or more other variants will now correctly set the required variants, so they can be checked with variant_isset. (#19224, jmr in r66642)
  • 'port outdated' now indicates the reason why a port that appears to have the same version as that in the tree is considered outdated. Possible reasons are that the epoch is higher, or the installed version was built on a different OS version. (#19138, jmr in r64960)
  • Distfile names are now percent-escaped in the download URLs when needed. (#18736, jmr in r66794)
  • buildnicevalue is now applied to configure and destroot commands, and to build commands with unusual names. (#18304, raimue in r65076/r65808)
  • Removed hardcoded /opt/local prefix from the base dmg resources. (#17633, jmr in r66776)
  • Fixed an error that occurred when archive mode was enabled but ${prefix}/var/macports/packages did not exist. (#17579, jmr in r66775)
  • Syncing rsync sources now tries to get a platform-specific version of the PortIndex from the server, and skips this if the local copy is less than a day old. All sync methods now update the PortIndex at the end. (#17157, jmr in r66846/r67207)
  • portindex(1) now skips parsing Portfiles whose modification time is older than the current PortIndex, instead reusing the existing entry. (#16235, jmr in r66845)
  • Added a 'requested' flag to the registry that indicates which ports were installed explicitly (as opposed to as a dependency of something else). This enables the new 'requested', 'unrequested' and 'leaves' pseudo- ports, as well as the --follow-dependencies option for uninstall. The setrequested and unsetrequested actions will set and clear the flag, respectively. (#15260, jmr in r64517, r64663, r65546, r66037, r66200, r66215)
  • The macports1.0 directory is now installed to ${prefix}/share/macports/Tcl rather than /Library/Tcl. A symlink will be installed in the old location if there is nothing there already, so 'package require macports' will still work in tclsh. (#12943, jmr in r65055)
  • Added warning and error messags when Xcode is old enough to cause problems or too old to use at all, respectively. (#12794, jmr in r66771)
  • Removed the rather outdated copy of sqlite3 from the source tree, made the sqlite3 directory configurable, and added defaults for non-darwin platforms. (#12231, jmr in r64358/r64363)
  • There is a new 'archivefetch' target which is run before unarchive when archive mode is enabled, and attempts to download the archive from a server. There are currently no sites configured to download from (these are stored in the ports tree like the mirror sites used for fetch), but you can set ARCHIVE_SITE_LOCAL in the environment. Note that there is no integrity checking for archives yet. (#8571, jmr in r64816)
  • Now recording negative variants in the registry, which stops deselected variants from being reactivated on upgrade due to default_variants or variants.conf settings. (#2377, jmr in r64533)
  • Added support for pre- and post- procedures for the activate, deactivate and uninstall targets. This feature requires portdbformat sqlite. There was limited support for pre- and post-activate previously, but the procedures were only run when installing the port, not when activating an inactive version. (#1068, #4228, #18273; jmr in r64638/r64639)
  • Integrated the sqlite-based registry2.0 code. The portdbformat variable in macports.conf can be set to 'sqlite' to enable it. Existing flat receipts will be converted the first time port(1) is run with sufficient privileges. Original code by sfiera, fixed and integrated by jmr in r63398 and following. The new format lacks a number of problems that the old one suffers from, including #13054 (dependencies from old port versions stick around across upgrades) and #14123 (files whose paths differ only in case are left behind when uninstalling).
  • Fixed file list in +CONTENTS file in archives. (#21864, jmr in r59882)
  • Fixed a few issues reported with building MacPorts on Linux. (#22716)
  • Upgrade will now always choose the port that is active when following dependencies that could be satisfied by more than one port and more than one of these is installed, instead of choosing the one actually named in the depspec. (#23921, jmr in r60883)
  • Extracting from a disk image ("use_dmg yes") no longer fails when there is a space in $worksrcdir. (#23456, raimue in r67089)
  • Added a configure.sdkroot option which can be used to build against a Mac OS X SDK. It is empty by default unless the value of macosx_deployment_target is not the current OS version, or the universal variant is set and the current platform is PowerPC Tiger. It is also possible to set macosx_deployment_target globally in macports.conf now, but this is unsupported. (#19875, jmr in r66924)
  • Add "fs-traverse -tails" which only returns the part following the specified directory (#21873, raimue in r65785)
  • Allow gcc45 port to be used in configure.compiler (ryandesign in r62223)
  • svn checkouts now use peg revisions instead of operative revisions, so they'll continue to work if a repository gets reorganized (#20777, ryandesign in r60573)
  • Print the location of the log file when a target fails (jmr in r60769)
  • Use CommonCrypto/CommonDigest instead of OpenSSL libcrypto. (toby in r58131, jberry in r59715)
  • Add SHA256 checksums in addition to MD5, SHA1 and RIPEMD160. (afb in r57888, r57913)
  • New "patch.type gnu" for GNU patch, similar to "build.type gnu" for GNU make. Only makes a difference for BSD patch and BSD make. (afb in r58020)
  • Updated the FreeBSD package (ObjC/Foundation is now optional). (afb in r57889)
  • Don't use "make -j1" for build.jobs=1, but prefer "make" instead. (afb in r57998)
  • Add new "use_xz yes" port option to allow distfiles in xz format. (afb in r57827)
  • Archive mode now uses build_arch in archive names rather than os.arch. (snc in r58977)
  • Add new log command and keeping of debug output for easy access after port has run (GSoC 2009 logging project by enl, merged in r60372)
  • Some of the build_arch flags now appear in LDFLAGS as well, fixing several ports when building for a different architecture (jeremyhu in r60662, jmr in r60680)
  • Fixed 'merge' proc for paths with spaces, and for symlinks on Snow Leopard, and added an error message for when 'merge' is not called correctly (#21852, ryandesign in r58776, r58777, r58778)

New in MacPorts 1.8.2 (Jan 4, 2010)

  • Fixed 'port load' for non-root installations (#21713, jmr in r60774)
  • Fixed a bug that could cause port to hit the open file limit (#22959, jmr in r61770)
  • Fixed an error when installing from source or selfupdating on Tiger with an svn-based ports tree (#20760, jmr in r61302)
  • Fixed an error when selfupdating as root with a prefix that is not owned by root (#21010, jmr in r60798)
  • Stopped uninstall from failing when files in the port image have already been deleted (#22001, jmr in r59318, r59654)
  • Stopped printing command output multiple times on failure (#21084, jmr in r60770)
  • Started showing bug reporting instructions on failure (jmr in r60770)
  • Fixed a bug where 'port dmg' could create too small an image and run out of space (#22404, jmr in r60260)
  • Fixed a bug where reinplace could fail when running port without root privileges (#20896, jmr in r59597)
  • Started setting our own umask since Snow Leopard makes us inherit the user's even when using sudo (#21389, jmr in r59585)

New in MacPorts 1.8.1 (Sep 29, 2009)

  • Installer error messages now display properly even from the Snow Leopard MacPorts dmg. (jmr in r56448)
  • 'fetch.type svn' no longer requires the installation of the subversion port as of Snow Leopard. (toby in r56160; raimue in r56162)
  • Updated manpages and 'port help' output (ryandesign in r56472, r56473, r56474; blb in r56666, r57048, r57131)
  • Fixed syncing using the daily tarball. (#21034, toby in r56889)
  • Fixed 'port load' (#21128, raimue in r57055)
  • Improved error message when an expression on the command line does not match any ports (jmr in r57026)
  • Stopped recording the completion of the install phase in the statefile, which led to errors if the port was uninstalled but the work dir was not cleaned, and the port was then installed again. (jmr/raimue in r57801, 57820)

New in MacPorts 1.8.0 (Aug 28, 2009)

  • There is now a 'build_arch' variable, available in portfiles and
  • configurable in macports.conf, which sets the CPU architecture that
  • ports should be compiled for (when not building universal). Its default
  • is the same as that of the Apple-supplied /usr/bin/gcc.
  • (#19874, jmr in r53217,r53386,r53420,r53494,r53860,r54236)
  • MacPorts base now works on and has appropriate default settings for
  • Mac OS X 10.6 Snow Leopard. (#19874, toby/mww/jkh in r38271,r40060,
  • r40836,r43976,r52397)
  • MacPorts now requires Mac OS X 10.4 Tiger or later. (Panther is not
  • just "unsupported", it really won't work.)
  • The universal_sysroot and universal_target keys have been removed from
  • macports.conf. These settings are now handled automatically.
  • (toby in r52324)
  • Added a 'replaced_by' portfile option. This causes upgrade to deactivate
  • the current port and install the port specified by this option. This
  • also allows ports to be renamed. Upgrade accepts a --no-replace option
  • which disables this behaviour. (#20157, jmr in r54378)
  • The upgrade action now accepts --force and --enforce-variants options.
  • The former causes ports to be rebuilt even if they are not outdated, and
  • the global -f option no longer has this effect (it had too many effects
  • already). The latter causes ports to be rebuilt if the requested
  • variants do not match those installed (even if they are not outdated).
  • (#20156, jmr in r54376)
  • Dependencies can be satisfied by ports that are installed but not
  • available in the ports tree (useful for testing uncommitted ports).
  • (jmr in r52075, r52160)
  • Ports that are installed but not available in the ports tree no longer
  • cause an error when running commands like 'port clean installed'. They
  • are skipped and a warning is printed. (#19253, jmr in r50865)
  • Selfupdate no longer disables readline support unless readline is found
  • in /usr/local, which has historically caused failures.
  • (#19035, jmr in r50868)
  • Uninstalling a port that is not installed now produces an informational
  • message rather than an error. (#18984, jmr in r53709)
  • Added a 'conflicts' portfile option. Conflicting ports will be detected
  • during dependency calculation. (#18794, blb/jmr in r51525)
  • 'port selfupdate' now explicitly states precisely what it does. (#18512)
  • Operating system and architecture information is now shown in debug
  • output. (#18435, raimue in r46669)
  • Fixed a bug that could break some symlinks to man pages. (#18302)
  • Switched to a more efficient algorithm for looking up port information
  • in the index, which makes many operations faster.
  • (#18259, jmr/blb in r47110)
  • MacPorts base now tries to avoid using commands that come from ports, so
  • that a broken port can't break the base code. (#18149)
  • Deleting all the contents of a portfile option no longer unsets the
  • option entirely. (#17865, toby in r44901)
  • Removed the code that upgrades from the old DarwinPorts filesystem
  • layout. Trying to upgrade to 1.8.0+ from a version older than 1.5.0 will
  • produce an error message saying you need to install 1.7.1 first.
  • (#17619, jmr in r53260)
  • port(1) now reports its version as dotted-decimal rather than floating
  • point. (#17420)

New in MacPorts 1.7.1 (Mar 30, 2009)

  • Fix freshmeat-based livecheck.
  • Fix issue on direct-mode installs where checking for installed ports wasn't properly looking (it only matched for revision 0 and no variants).
  • Add new "use_7z yes" port option to allow distfiles in 7z format.
  • Port lint no longer requires variable master_sites if the port has no distfiles.
  • Upgrade will no longer accept ports that are not installed (but it still installs new ports as dependencies if needed). In particular, this means that "port upgrade all" will no longer proceed to install every available port.
  • Add mkdtemp Tcl command to create temporary directories.
  • Add 'apple-gcc-4.2' option to configure.compiler.
  • Create ${applications_dir} and ${frameworks_dir} in destroot automatically.
  • Make the postflight procedure a bit smarter about which login files to update for bash and tcsh.
  • Add error messages to package installers when the wrong OS package is being installed.

New in MacPorts 1.7.0 (Dec 15, 2008)

  • Global variant descriptions using variant_descriptions.conf in the new resources directory in the ports tree (#14482, raimue)
  • Move port resources into the ports tree (#14553, raimue and blb)
  • Improve error message when "upgrade outdated" is used (#12288)
  • Properly handle ports whose version evaluates to 0 (#16740, ryandesign)
  • PortIndex is now regenerated atomically (#16234, blb & ryandesign)
  • Improve upon 'port lint' usage by not being too overbearing unless --nitpick is used (#14799)
  • Fix reinplace when the filename contains spaces (#17098, ryandesign)
  • Fix python port group issues (#15226)
  • Make sure global variants (from variants.conf) are applied to all phases (#11897)
  • Allow configuring --without-objc-runtime --without-objc-foundation, for building on platforms without Foundation like +puredarwin (r41015)
  • Changes in loading of configuration files. Currently the global configuration file is loaded first, then user defined one (if present), PORTSRC environment variable is loaded last. Last defined value is used for each configuration option. (#16329, contributed by Adam Byrtek)
  • Ruby port group now accepts a new (optional) last parameter for the ruby.setup command, "implementation". It is "ruby" by default, and can be set to "ruby19". It names the ruby-implementing port, and can possibly support still other rubys in the future. (#15912, febeling in r38683)
  • Don't use build.nice for complex build.cmd commands (#16091)
  • The buildmakejobs setting now also affects ports using the scons build system, so now scons-based ports can be built in parallel too. Previously only automake-based ports were supported. (ryandesign in r38556)
  • User-supplied port names are now treated in a fully case-insensitive manner. This fixes a bug where giving the name with incorrect case when deactivating/uninstalling would cause all the port's files to be left behind. (#11759, jmr/raimue in r37349, r37621)
  • The non-verbose output for the build phase no longer shows what target was used. This makes the build phase consistent with the other phases which also do not show details. If details are desired, the debug or verbose switches should be used. (#15881, raimue/ryandesign in r38315)
  • Make missing sed extended regexp (for reinplace -E) into a runtime error. (#15577, afb in r37501)
  • More helpful strings for 'port help' (needs more work #15467, raimue)
  • Command line options are checked if the command accepts it before running (raimue)
  • We now have a mirror of (almost) all distfiles at distfiles.macports.org, and it is automatically appended to master_sites and patch_sites (#15456, jmr in r37217, r37255)
  • port search looks now in name, description and long_description for the search pattern and prints the list sorted (#15434, raimue in r37119, r37121)
  • Stopped 'port -R upgrade' from processing more ports than it should, and from processing ports multiple times. (#10827, jmr in r37046)
  • Don't include build.nice and build.jobs in destroot.cmd (#15295)
  • The default universal variant is no longer added when we know it won't work. (#12170, jmr in r36764)
  • During upgrade, if the latest installed version of a port is not active, the currently active version (if any) is now deactivated before trying to activate the latest version. (#12013, jmr in r36762)
  • A port with dependents can now be removed without forcing iff it is inactive and there is at least one other version of the same port installed (#11501, jmr in r36747)
  • Duplicate entries can no longer build up in the dependency map (#8763, jmr in r36745)
  • In image mode, dependencies are no longer treated as being satisfied when the satisfying port is not active (#7361, jmr in r36735)
  • Fixed a bug where upgrade could create too many nested subdirectories in distpath, archive.destpath and unarchive.srcpath (#11971, jmr in r36679, r36687, r36688)
  • Declaring a dependency on a nonexistent port now always causes an error (#10768, jmr in r36648)
  • Explicitly use unsetenv(3) on all environment variables (#13930, #16010, #16233)
  • Make the included tclthread compile on Leopard if configured (#13495)
  • Allow distfiles to be disk images with "use_dmg yes" port option (#13509, ryandesign in r36708)
  • ruby.setup now takes a type 'fetch' to just fetch/extract (eridius in r35773)
  • Fetch now prefers mirrors with lower ping times (#14891, jmr in r35748, r35806, r35808)
  • Fetching of daily snapshot tarballs of the ports tree as an alternative to rsync (raimue in r35647, r35648)
  • port uninstall now takes --recursive to uninstall all dependents (#14637, eridius in r34977)
  • New fetch.type git (#14232, eridius in r34875)
  • fixed "port mdmg" getting block size wrong for the disk image (#13968, afb in r34844)
  • always set MACOSX_DEPLOYMENT_TARGET, to avoid bugs with older glibtool (afb in r34541)
  • port lint now checks all dependencies so that the ports actually exist (#14380)
  • added target_state to avoid the need for privileges for lint/livecheck (#13458)
  • Overhauled output for port info/deps/dependents/search (raimue in r34354, r34371, r34391, r34395, r34402, r34420)
  • Revert the default +universal MDT/SDK to 10.4/10.4u on Tiger and 10.5/10.5 on Leopard
  • port lint shouldn't require variable master_sites for fetch.type != standard (#14377)
  • Add "tcldoc" documentation comments and "tcldox" Doxyfile for doxygen (#12048)
  • Add --pretend and --nosync flags to selfupdate (raimue in r33938, r33939, r33940, r33941)
  • Work around autoconf X11 detection bugs on darwin (afb in r33717)
  • Fix bugs with X11 lib detection on Leopard (#14089, afb in r33716)
  • Add configure.{optflags,m32,m64,march,mtune} (afb in r33503, r33599)
  • Add applications_dir and frameworks_dir configuration (r33499, r33722)
  • Remove some hardcoded paths (such as /usr/X11R6, /usr/bin/install) (afb in r33501, r33619, r33620)
  • Add configure.{universal_target,universal_sysroot,universal_archs} (afb in r33478).
  • Change default +universal platform back to: 10.4/10.4u.sdk/i386 ppc (r33087, r33107).
  • Add `port platform` info target that outputs current platform (#12302, afb in r32724).
  • Enable 64 bit environment, ppc64 x86_64, for all +universal builds (mww in r32194).
  • Add 'merge' function for merging multiple (single arch) destroots into one (universal) destroot (mww in r31954).
  • If checksum is mismatched, and in verbose mode, present a corrected pre-fabricated checksum statement to make it easy to update a port (jberry in r32441).
  • Fixed the "Error: Unable to open port: invalid command name "ui_prefix"" runtime error on Panther (eridius in r32525).
  • Fixed the "Error: Unable to open port: invalid command name "ui_channels"" runtime error on Panther (eridius in r32514).
  • "port lint" now recognizes non-canonical modelines (afb in r32480).
  • "configure.pipe" is now hackable from Portfiles (afb in r32430).
  • MacPorts no longer installs the "base/config/mp_version" file, as the release version is now stored internally in $macports::autoconf::macports_vesion (jmpp in r32353).
  • Bail out with a suitable message if the requested port is not installed when polling its dependents (jmpp in r32336).
  • Fixed a Panther build failure due to missing sqlite headers (jmpp in r32212).
  • Fixed a build failure by passing the base/src/cregistry/cregistry.a archive through ranlib (jmpp in r32105).