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
Use hfsCompression
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 Installer System Requirements info
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
Add port action that bumps version and checksum
RFE: Improve Compiler Management Code
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

support for launchd.plist items (e.g. UserName) in portfiles
port install : in need of a progressbar
MacPorts base should verify build_arch has a sensible value
base should keep track of explicitly requested variants on install and only preserve those on upgrade
Using port in Eterm: curl progress callback failed: can't read "env(COLUMNS)": no such variable
livecheck should have curl request a compressed response
use subdir for trace mode socket
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
base does not necessarily tell you when circular dependency occurs
Please add port version, revision and variant info the debug output
port lint should no longer recommend the patch-*.diff naming convention
Including a nonexistent portgroup should be an error
'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
port lint PortGroup false alarm when "PortGroup" appears in string
Error: port deactivate failed: this entry does not own the given file
Wrong minimum clang version when compiler.thread_local_storage is yes and compiler.cxx_standard is 2014
Segmentation Fault during rev-upgrade
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
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
port lint should warn when *-append should be used
Hard links fail with Macports on AFS
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
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
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
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
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 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
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
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
#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
Replace bzip2 and gzip with pbzip2 and pigz system wide?
port-lint: Add option to disable parent directories checks
portconfigure.tcl : fix for building on Linux
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 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
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
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
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
Correctly represent 64-bit platform as x86_64 in ${os.arch} and pre-generated PortIndex
Make it easier to determine which ports have lint problems
Create test to verify correct functioning of ptys in system call
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
Build doesn't honor --bindir, --libexecdir, etc.
reclaim removed my ports without asking
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
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
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
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
Install from source --with-no-root-privileges fails on Catalina - 'couldn't create error file for command: permission denied'
DYLD_LIBRARY_PATH doesn't work in <command>.env
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 (missing arm64e)
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.
graphviz, graphviz-devel: 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
base prefers arch of terminal in use rather than machine arch when installing ports
port lint --nitpick gives false warning when version is a single integer
Make master_site_local and patch_site_local able to be suffixed with dist_subdir
base: On Mountain Lion configuration file is processed but it ignores archives server URL
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
Increase minimum C11 compatible compiler
Base: port rdeps --full, infinite loop on circular dependency
Add the supported_archs field to port info
'daemondo' in MacPorts-2.6.4-10.11-ElCapitan.pkg is of type 'data' upon reinstallation of base pkg
`port clean` can fail without identifying the failing port
Allow ports to install for x86_64 on arm64 if a dependency requires that
port diagnose: check for broken SDKs and missing SDK receipts
Prefer MacOSX11.sdk if available else prefer newest MacOSX11.*.sdk
Makefile and installer postflight script should remove incorrect DISPLAY environment variable left in shell startup script by MacPorts 2.6.4 installation on Big Sur
zsh: killed port upg outdated in Big Sur
Trace mode causes anything piped to sed from within csh to output the sed executable
`port search --variant` doesn't find all matching ports
base: port select blindly overwrites pre-existing binaries, without warning
port install: fetch shouldn't abort the whole command on a 503 error
detect when user has not opened Xcode to perform installation of additional components
Compiling MacPorts for installation in home directory on Catalina fails at "make install" with: make: *** [install] Killed: 9
Replace rmd160 use in MacPorts with something else
add a way to get rdeps of an installed version of a port
sync over git: rebase with autostash only if fast-forwarding fails
perl: posix_spawn: ${prefix}/var/macports/sip-workaround/502/usr/bin/perl5.xx: No such file or directory
MacPorts base: patch_sites.mirror_subdir not getting appended to patch_sites URL
Allow "." as synonym for current port directory
Add livecheck.user_agent
curl_multi_info_read() returned {.msg = CURLMSG_DONE, .data.result = 3 (!= CURLE_OK)}, but the error buffer is not set. curl_easy_strerror(.data.result): URL using bad/illegal format or missing URL
Possible to build ports on 10.6.8 as universal (x86_64 + ppc64) after restoring PPC assembler?
Unable to interrupt curl call in proc _archive_available
use_7z, use_bzip2, use_lzip, use_lzma, use_tar, use_xz, use_zip cannot be undone
sqlite error: no such column: cxx_stdlib (1) while executing query
Launch port selfupdate automatically
dependency related commands don't seem to work
tcllib fails to destroot with a signed in-tree tclsh
selfupdate throws error changing directory permissions on Monterey and Big Sur
installing base with ./configure --with-universal-archs="CPU" doesn't actually set the universal_archs in macports.conf
enabling git fsmonitor causes base to hang on git operations
`port selfupdate` fails when updating a local ports tree using `/usr/bin/git`
chrony @4.2, Ventura, daemondo (in base) does not start chrony daemon after a system restart
invalid command name "::registry::entry807"
port sets echo for stty in at least one case
sip-workaround no longer works on macOS 13 Ventura due to new security features
port installs graphviz instead of graphviz-devel on PPC Leoprad, Mac OS X 10.5.8
port cannot install again graphviz on PPC Leopard, Mac OS X 10.5.6
While I am installing port 1 I cannot build port 2
Significantly reduce MacPorts base install size by removing base.tar and compressing ports.tar
Allow customizing applications_dir on a per-port basis
Uninstall warning: add portname to warning prompt. Makes it more clear which port is triggering the warning if multiple ports are specified on the uninstall line.
Port space command ignores hardlinks in it's total size calculations
Add a field to port information that specifies whether that port is distributed as a binary or requires a lengthy rebuild
Allow suppressing 'Warning: couldn't find file'
Installation of Ventura package fails
Inaccurate "This package is meant to be installed on" message
Mac OS Ventura Update asks for MacPorts password, password unknown
The installer encountered an error that caused the installation to fail
port 2.8.1 and tcsh do not interact correctly on Monterey
Installation on Leopard broken? Error: The installed version of Xcode (3.1.4) is too old to use on the installed OS version. Version 14.2 or late is recommended
Crowdstrike (security scanner) freaks out when the package installer runs
Unnecessary prompt to install build dependencies when using an archive
Registry DB is 1.2GB and makes a 10.4.11 system unusable
Port selfupdate is NOT working on macOS Catalina version 10.15.7
BSD tar can create corrupted archives on Catalina, Big Sur, Monterey, Ventura
Can't build MacPorts on 10.11 with Xcode 8.2.1
sudo: port: command not found
port rev-upgrade --id-loadcmd-check fails on intel macports 2.8.1
upgrade: newly installed dependencies inherit variants from the dependent port
gd license should not be marked as conflicting with GPL
Detect other possible default -Werror compiler errors during configure
Refuse to run if install_name_tool is broken
startupitem: enhancement: logfile should also log stderr
clean fails with ::registry::entryXX for multiple ports from darwin 19 --> darwin 22.
cross-platform portfiles and shlib extension

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