Defining Roadmaps

What are the next steps required until the next MacPorts release(s)?

After a lengty discussion, we identified the following work mode to track base tickets and where they are being released:

  • Base tickets are usually created without milestones.
  • When closing a ticket when a fix is pushed to master, set the milestone field to the milestone for the next feature release to indicate that is now fixed on master.
  • If the fix should be backported to a release branch, set the needs-backport keyword.
  • When backporting to a release branch, set the ticket's milestone to the milestone for the next bugfix release.
  • If there are milestones missing, file a ticket against the trac component and request them.

This documentation should be moved to the guide #56056.

Release Planning

MacPorts 2.4.3

We identified a need for a bugfix release from the 2.4.x branch, because trace mode is currently broken in 2.4.2 on High Sierra. The ticket for that is #55575. There was an email from Ryan a while ago that requested backporting a number of fixes as well. We created #56018 to track this.

prevent use of unknown subports
Git clone fails - SSL certificate problem: Couldn't understand the server certificate format
make test: Error: no mirror had select-0.1.tar.gz for gcc_select
move: case-only renames fail when no arguments are given
Failed to locate 'lbzip2' in path: '/opt/local/bin:/opt/local/sbin:/bin:/sbin:/usr/bin:/usr/sbin' or at its MacPorts configuration time location, did you move it?
port -vst install fails with "/usr/bin/tar: No such file or directory"
Backport bugfixes to release-2.4 for next release

MacPorts 2.4.4

Error attempting to install portfile with non-integer revision
Trace mode fails when ccache is used
Use MacPorts Subversion when fetch.type svn on OS X El Capitan and earlier
reclaim does not support distfile tags
Use MacPorts git when fetch.type git on OS X Mountain Lion and earlier
Backport changes to release-2.4 for 2.4.4

MacPorts 2.5.0

There are a number of features that we want to get done before the next major version release. We mostly picked branches with some code that don't need a lot of work to merged into master and simple tickets for this milestone. We did not want to set any far-reached goals for 2.5.0.

Debugging options for startupitems (launchd / daemondo)
Deactivating a port should automatically unload daemons
Installation from binary package does not notify user of need to start launch item
Need for a fix regarding mechanism for startupitem handling
Add macports.conf setting controlling startupitem.autostart
support more than one launchd plist
startupitem_install not respected when installing from binary archive
Change port load to use MacPorts plists directly
base: allow dots (.) in variant names
portpatch.tcl: support xz-compressed patchfiles
warning: 'syscall' is deprecated: first deprecated in macOS 10.12 - syscall(2) is unsupported; please switch to a supported interface
port -N reclaim does not remove any ports
port reclaim missing in man page of port
Binary-only mode requested with no usable archive sites configured
Lack of Xcode 9 update not detected with High Sierra OS.
Respect cxx_stdlib and delete_la_files in selection of archive_site
rev-upgrade considers gcc as broken due to libstdc++
Inconsistent flag names --nosync and --no-mirror

MacPorts 2.6.0

We identified a number of features that we think should be the next step after 2.5.0 and added them to the 2.6.0 milestone.

port lint should complain about using only md5 or sha1 checksums
Weird library install_names for MacPorts dylibs
Update compiler selection for 10.6-10.8 with libc++
It would be nice if shell mode saved command history immediately
Failed to activate: Cannot restore
port info order of fields is unexpected
Unable to determine location of a macOS SDK
Confusing message when attempting to use +universal with the macOS 10.14 SDK
Travis CI: Sometimes declared dependencies aren't installed
archive_site_local doesn't work at all
Unexpected behavior when archive_site_local contains more than 1 URL
Unnecessary warning about Xcode and xcodebuild when installing port
NOP port upgrade outdated returns error status
'bump' action not mentioned in port(1) man page
2.6.0 rc1 and beta1 packages won't open on SnowLeopard

MacPorts 2.7.0

port upgrade does not work correctly on current pseudo-port
Add versions to platforms
port install : in need of a progressbar
base should maintain a persistent working copy for all supported VCS fetches
changing $worksrcdir break the build when using git.fetch or hg.fetch
uninstalling macports could be easier
record successfully applied patches in the statefile
base should keep track of explicitly requested variants on install and only preserve those on upgrade
bug: case sensitive port names in boolean expressions
Base should support fetching git submodules (git submodule update)
Implement a function to create stable tarballs
Provide a generic extract command in base
livecheck should have curl request a compressed response
Use size from checksums for curl progress bar when server does not supply length header
Support automatic migration between OS releases using 'port migrate'
Finalize and merge gsoc10-configfiles
Finalize and merge gsoc11-post-destroot
Colors in the port command
Bundle libc++ with MacPorts on 10.6
Support creating MacPorts pkg/dmg by using 'pkg' and 'dmg' targets in the base builds system
use subdir for trace mode socket
registry: Remove the receipt_flat storage
macosx_version should contain the full macOS version
selfupdate loses error message returned by mportsync
Make cxx_stdlib mismatches more verbose
--with-no-root-privileges should imply --without-startupitems
`port activate`: error selecting already active version/variant
Don't offer universal variant when multiple architectures aren't supported
archive_site_local URLs are attempted twice
preferred_hosts has no effect on archive_site_local
base does not necessarily tell you when circular dependency occurs
Please add port version, revision and variant info the debug output
'port reclaim' should clean out /opt/local/var/macports/build
Print a warning when users specify version/revision information at install time that will not be honored
Allow ports to customize the launchd plist files in the destroot phase
Wrong subversion dependency when fetch.type is svn with Xcode 11.4 and later
Error: port deactivate failed: this entry does not own the given file
Segmentation Fault during rev-upgrade
Use deployment target 10.16 on Big Sur
installer postflight incorrectly sets DISPLAY variable on Big Sur
base uses incorrect SDK for Big Sur 11.1 and Xcode 12.3

Base tickets without a milestone

RFE: Document all the code in the MacPorts base
port upgrade does nothing with a downgraded package
Option to automatically clean distfile too
warn when an unavailable version is requested for install
port command unnecessarily requires permissions to the cwd
please add mcpu (march is only for x86)
add a way to exclude build dependencies from pseudo-portname "leaves"
Variant names should be treated case-insensitively
Add feature to show changes between port versions
MacPorts should say why it is (re)installing a dependency
MacPorts-1.9.1 compiled to XFS NFS files system
program suggests running 'port xxx' from within the 'port' interactive shell
Feature request: make minimum UID/GID for adduser addgroup commands configurable
selfupdate failing, perhaps a user account issue?
ports should ignore default +universal when universal archs mismatch
MacPorts base could support out-of-source builds, or tell user that it doesn't
stale interpreter reference used after error in interactive mode
port lint should warn when *-append should be used
Hard links fail with Macports on AFS
port incorrectly detects some ports as uninstalled
remove dependency on Xcode
Allow case-sensitive build roots
archives owned by different users
Enable variants for specific ports in variants.conf
MacPorts should offer to sign archives
port should output a message when vacuuming registry
Local repository with space in path name won't work
Locking somewhat broken in MacPorts 2
pextlib crash/segfault in curl code
Allow building on a RAM disk or other secondary disk
pkg: tell us where it was created
port upgrade -u py25-wxpython fails to deactivate old version
background archiving
Create single mpkg of all installed ports
Save binary packages to user-specified location
port -e, environment mode
base: add ui_msg to output outdated ports during selfupdate
Ignore consequences of broken DNS servers
Remove "port -u uninstall" functionality
PORT/work/.home/.subversion and proxy access
Add "new" to port command
mpkg / mdmg requires cleaning and reinstalling every time
could not set effective gid to 0
Option to mark a port for installation when the port is fixed
path:-style dep allows non-macports file inside macports prefix
Feature Request: Notify me when my local Portfiles shadow upstream Portfiles that have been updated
base: Update m4/tcl.m4 to check for tcl8.6
RFE: "port provides" should return a different message when used on files provided by base
RFE: add a "depends_pkg" type of dependency
RFE: automatically remove .DS_Store files from build directories
RFE: pubkeys_conf variable in macports.conf
RFE: pseudo-portnames `depof:` and `rdepof:` should be more granular
RFE: Move "rec_glob" proc from nodejs portfile into base
RFE: make the aclocal.m4 file in base safe to regenerate with `aclocal`
RFE: update the file in base to silence some warnings produced by autoscan
atlas @3.10.1_3: log file contents missing when -k option used
RFE: Replace "command execution failed" with a more informative error message
mdmg says it's up-to-date when it isn't
Use dseditgroup in "addgroup"?
Automatically clean builds with old statefile formats
`-p` flag for `port` command doesn't play nice with errors resulting from mismatched requested variants vs. originally-selected variants
Space character in packagemaker_path attribute in macports.conf breaks mpkg and mdmg
Uninstalling replaced port with dependents has to be forced
configure script does not expand "~" for applications_dir and frameworks_dir
Add keyword to list compatible graphical environments (X11, Quartz, Wayland)?
Add 'optional' or 'recommended' metadata tags to portfile spec.
base aborts if current directory does not exist, even when given a port name
base should ignore variant conflicts when cleaning
Add "dependencies" as alias of "deps"
binary package download ignores macosx_deployment_target set globally
port 2.2.1 mpkg build fails after package has been created
RFE: Add a conf option to automatically run test phase during normal install process
more integrated security notification: security page, port selfupdate notice, ...
mpkg missing daemondo
port selfupgrade to base v2.3.0 fails on G4
port select should record its symlinks in the registry
use "configure.includes {path1 path2}" instead of "configure.cppflags -I{path1} -I{path2}"
Use a compiler wrapper script
Update Installer System Requirements info
Support globs in port versions
selfupdate tried to tell me to run selfupdate again
Overriding autoreconf.cmd/autoconf.cmd/automake.cmd should delete default autoreconf.args/autoconf.args/automake.args
port search: return Trac ticket for submission
list of dependencies to be installed can be inaccurate
base: improve livecheck.type moddate
Installation of Xcode should be better than Homebrew's process
RFE: stop "port test" immediately if no test phase defined
Run portbuild::build_main once for each
base - git and mercurial fetching target directory
Misleading logging
port should scan for DYLIB missing the TWOLEVEL flag
Clearer logging
#46139 v2.3.1 Error determining network user's shell
Uninstalling all active ports - are you sure?
port: new action_environment and/or environment mode
base: Missing check causes duplicate PATH entries when sourcing CONF_FILE
Installing a port +universal needlessly reinstalls recursive dependencies +universal
Building for 10.4u SDK on 10.6 uses gcc-4.0 even though building directly on 10.4 uses the newer apple-gcc-4.2
Replace bzip2 and gzip with pbzip2 and pigz system wide?
port-lint: Add option to disable parent directories checks
Using port in Eterm: curl progress callback failed: can't read "env(COLUMNS)": no such variable
portconfigure.tcl : fix for building on Linux
Ensure that macports $HOME exists and is valid
port selfupdate fails with an imprecise error message when the Xcode license has not been accepted
Offer a choice of mirror server in the MacPorts installer package
Spaces and Backslashes in Group Names
`port -n upgrade --force foo` should deactivate after creating the new archive
base fails to build on Linux: sip_copy_proc.c:319: error: ‘struct stat’ has no member named ‘st_mtimespec’
selfupdate: rsync fails if http_proxy is configured
port upgrade --force shouldn't uninstall if no permission was given to install a missing dependency
In rsync_options, use --delete-delay instead of --delete-after
"---> Attempting to fetch" doesn't start in a new line
MacPorts did not install curl's dependency openssl
Add option to show binary package URLs
Base does not prevent conflicting port activation when portfile from registry cannot be executed
requested (meta) ports get uninstalled on uninstall leaves
Propose --follow-dependents
main.log is never deleted with "keeplogs yes"
xcodebuild exists but failed to execute
platform statement: support an else clause
add a concept of 'distributions' for ports that work on specific older architectures
Add xz to "base" to allow changing the default compression format to .tar.xz in the future
`port uninstall --follow-dependents` uninstalls more ports than `port rdependents` reports
conditional PortGroup include
Report Xcode version and other useful information in main.log
port rev-upgrade stumbles over -weak_framework library dependencies
splitting up ports in "runtime" and "-dev" ports, DebUntu style (PoC)
port lint should warn when modeline is missing
port sync should open only a single rsync connection
revision convenience
rev-upgrade -v should be more verbose about missing architecture
Ability to list just emails or just GitHub usernames of maintainers
add setting to allow main.log truncation
Print custom warnings from Portfile with `port info`
Pextlib/xinstall : don't ignore directory chmod errors silently
`port upgrade outdated` changes colours in terminal emulation
macports-base codesigning ?
copy, delete, move, touch: support -W argument for changing working directory
port diagnose fails in xcode-select
MacPorts should warn when not using "macports" rsync module
2 variant convenience procedures
variants set with default_variant don't propagate the same way as variants set by the user do.
port -q should suppress warnings
Port fails to execute an upgrade with the additional arguments given at invocation but uses it for upgrading the ports on which the given port depends
Add alias "dependencies" for action "deps"
Uninstall one Python version removes packages from other Python versions
`port history` action
Trying to install a port which is already installed should mark it as requested.
Make "port requested" an alias for "port installed requested"
port install fails if $COLUMNS is unset
chown does not support changing group
install phase fails with "no destroot found"
macports destroot.umask not recursively applied
autorequested (mark some unrequested leaves as requested)
Add semantic versioning support to livecheck
Install dependencies without asking
allow port reactivation (WIP)
destroot.keepdirs should behave better if specified path is not in destroot
sandbox-exec: execvp() of 'sh' failed: No such file or directory
Don't import suffix into global namespace
port mirror does not indicate failure when checksum verification fails
make test uses the installed version of MacPorts, not the just-built one
Move some checks out of lint --nitpick
pkg-config fails to find python3
shortcut to combine selfupdate and upgrade outdated
make dist requires DISTVER to be specified
Remove prefix string from darwintrace.dylib and Pextlib.dylib
rev-upgrade: Handling missing architectures on libraries
Make it easier to determine which ports have lint problems
Create test to verify correct functioning of ptys in system call
selfupdate should use parallel build
rev-upgrade ignores -p
use_dmg: /usr/bin/cpio: illegal option -- 0
I ran "sudo port selfupdate" and now I cannot install any ports without an error
test statefile-unknown fails
archivefetch failed verification with key /opt/local/share/macports/macports-pubkey.pem
Build doesn't honor --bindir, --libexecdir, etc.
reclaim removed my ports without asking
Installing a port with many files appears appears hang
attempt to create ccachedir conditionally
New keywords for bash/zsh tab-completion
New keyword for man page/documentation installation
port diagnose: check directory permissions
port diagnose: warn about incompatible archs
[feature request] "replaces" keyword
MacPorts base readline support is not compatible with MacPorts readline port
Registry operations can take a very long time in 2.5.3 under Mojave
port log and port logfile don't accept subport
install/upgrade feedback suggestion
Warning when disabling default archive_sites
Set AR, NM and RANLIB env. variables
registry.db files table should have unique constraint over id and path columns
Allow the location of archive_sites.conf and pubkeys.conf to be configured in macports.conf
port selfupdate gives the impression of doing work in the wrong order
port diagnose: could not execute xcode-select, no such file or directory
MacPorts fails to run after manual install via tarball
Build error on Ubuntu: unknown type name ‘SHA2_CTX’ / conflicting types for ‘SHA256_CTX’
new command request: port broken
base fails to configure in a path that contains a space
base: defining the same variant both in a PG and a port discards description
Don't check os_major on Linux
Port command, in interactive mode, doesn't load the editline config file
Small error - Forcing uninstall uses wrong jargon
When MacPorts asks a yes/no question, add an abort option
Show URL in "port info"
Unsigned files will not run at all in future versions of macOS
MacPorts should bundle a newer rsync or allow overriding the default rsync
If port select fails, it can leave an incomplete or inconsistent set of symlinks
[base]: default_variants could check variant conflicts
port bump suggestions
xinstall: Prevent the creation of pathless directories that looks like octal permission numbers, like 755
gtk3 @3.24.12 does not build on PPC Mac OS X 10.5.8, Leopard, because "too many nested evaluations (infinite loop?)"
Do something better when no ports are specified
Binary-only mode requested with no usable archive sites configured
After a time, MacPorts cannot determine the Xcode version, on Snow Leopard
Use MacPorts git or svn if available when fetch.type is git or svn
port should explicitly say to use sudo when upgrading
macOS 10.14 SDK does not appear to be installed even though Command Line Tools are installed
Record default python and perl versions
selfupdate fails with Xcode 10.1 on macOS 10.13 because it uses the 10.14 SDK which doesn't have i386 bits
Error in Scanning binaries for linking errors
'port bump' does not update checksums for cargo crates
port archive should be smarter with regards to portarchivetype
base: (linux) fails to determine build arch correctly
base: (linux) arch flags are not recognized by linux compilers
base: (linux) cxx_stdlib is not derived by base
Port name unexpectedly handled case-sensitively when uninstalling
[wishlist] -u: allow not to uninstall all inactive versions
Print status information for a daemon
MacPorts marks ports requested that weren't
Install from source --with-no-root-privileges fails on Catalina - 'couldn't create error file for command: permission denied'
test.env doesn't work
Activation fails if a port tries to install ._ files
Reclaim removes build dependencies
Tell the user when fetching a binary failed and a build from source will occur
Print already completed phases
Build progress bar does not account for muniversal variant
darwintrace cannot inject into binaries of a different architecture
Make the reinplace warning an error
Portindex: "Failed to locate 'gnumake' in path" when faking the platform on Linux
Selectors depof: rdepof: subportof: ignore -p
Add `port vercmp` command
port deactivate fails, mentions nonexistent logfile
port command hangs under tracemode
$xcodeversion does not calculate the proper version when is not present or not found.
configuring base requires working tclsh
Manpage symlink to symlink doesn't get recreated to compressed version
Distfile fetch for python39 hangs on 10.5
MacPorts-2.6.3-10.15-Catalina.pkg installer error
compiler.openmp_version doesn't set configure.ldflags -L${prefix}/lib/libomp -lomp with port groups cmake+python
improve warning message when command line tools are out of date
Tests that try to access system libraries fail on Big Sur
remoted hangs on Big Sur when installing p5* ports, losing network and sometimes panicking kernel
base prefers arch of terminal in use rather than machine arch when installing ports
macports base: faulty symbolic links should be flagged
port lint --nitpick gives false warning when version is a single integer
base: On Mountain Lion configuration file is processed but it ignores archives server URL
sudo port -v selfupdate or sudo port -v sync will stop for a long time
Not prompted to agree to xcode license when circular dependencies exist due to that very problem
port mpkg iperf3 fails to create work/destroot/ directories
port lint: warn if there is no test phase
Let ports specify expected memory use per job
port lint: warn if missing 'revision' field
port lint incorrectly warns about missing checksums in go.vendors and cargo.crates
Add C++20 support for configure.cxx_standard
Increase minimum C11 compatible compiler
`return -code error` doesn't work inside a 'try' command's catch clause
Base: port rdeps --full, infinite loop on circular dependency

Last modified 3 years ago Last modified on Apr 21, 2018, 1:50:41 PM