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 upgrade does not work correctly on current pseudo-port
base should maintain a persistent working copy for all supported VCS fetches
changing $worksrcdir break the build when using git.fetch or hg.fetch
Weird library install_names for MacPorts dylibs
record successfully applied patches in the statefile
Change filenames of binary packages built against libc++ on < 10.9
bug: case sensitive port names in boolean expressions
Base should support fetching git submodules (git submodule update)
Implement a function to create stable tarballs
Use separate portindexes for libc++ on older systems
Support automatic migration between OS releases using 'port migrate'
Colors in the port command
Update compiler selection for 10.6-10.8 with libc++
Bundle libc++ with MacPorts on 10.6
Support creating MacPorts pkg/dmg by using 'pkg' and 'dmg' targets in the base builds system

MacPorts 2.7.0

Add versions to platforms
port install : in need of a progressbar
uninstalling macports could be easier
base should keep track of explicitly requested variants on install and only preserve those on upgrade
Provide a generic extract command in base
Don't install dependencies of packages that can't be installed
Use size from checksums for curl progress bar when server does not supply length header
Finalize and merge gsoc10-configfiles
Finalize and merge gsoc11-post-destroot
registry: Remove the receipt_flat storage

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
Unselect universal variant if there ends up being only one arch
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
--with-macports-user also sets the group
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
base: add default compiler variants
Ignore consequences of broken DNS servers
Remove "port -u uninstall" functionality
PORT/work/.home/.subversion and proxy access
Each MacPorts install adds a $PATH variable even if it already exists; Also, puts it after rvm $PATH variable
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}"
/opt/local/libexec/macports/bin/tclsh8.5 crashed when activating libgpg-error on PPC Leopard, Mac OS X 10.5.8
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
ran into a segfault from the tclsh bundled with MacPorts when doing `sudo port -d upgrade php*`
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
the copy of tclsh8.5 bundled with MacPorts SIGSEGVs when changing internet connections during a curl operation
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?
MacPorts should handle archive signature download failures gracefully
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
buildbot-slave: file mkdir in post-extract creates a dir owned by root
"---> 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
libgcc and libgcc-devel interfere
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 ?
Request: `port provides <file>` should indicate whether or not it points to a macports port file
copy, delete, move, touch: support -W argument for changing working directory
Add port action that bumps version and checksum
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
livecheck should have curl request a compressed response
selfupdate not respecting all installation options
Trying to install a port which is already installed should mark it as requested.
Make "port requested" an alias for "port installed requested"
RFE: Improve Compiler Management Code
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
port "gohome" errors with "A keychain cannot be found." if Safari is not already running
allow port reactivation (WIP)
"sudo port upgrade outdated" fails
destroot.keepdirs should behave better if specified path is not in destroot
sandbox-exec: execvp() of 'sh' failed: No such file or directory
reclaim: ignore .DS_Store files
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
use subdir for trace mode socket
make dist requires DISTVER to be specified
Remove prefix string from darwintrace.dylib and Pextlib.dylib
rev-upgrade: Handling missing architectures on libraries
macosx_version should contain the full macOS version
Base should know the installed version of the command line tools
Make it easier to determine which ports have lint problems
Create test to verify correct functioning of ptys in system call
It would be nice if shell mode saved command history immediately
selfupdate should use parallel build
rev-upgrade ignores -p
use_dmg: /usr/bin/cpio: illegal option -- 0
selfupdate loses error message returned by mportsync
Failed to activate: Cannot restore
port -D install doesn't work for subports
I ran "sudo port selfupdate" and now I cannot install any ports without an error
test statefile-unknown fails
test shellescaping fails
Feature request: make cxx_stdlib conflicts more verbose
archivefetch failed verification with key /opt/local/share/macports/macports-pubkey.pem
--with-no-root-privileges should imply --without-startupitems
Build doesn't honor --bindir, --libexecdir, etc.
reclaim removed my ports without asking
Installing a port with many files appears appears hang
`port activate`: error selecting already active variant
attempt to create ccachedir conditionally
New keywords for bash/zsh tab-completion
Several ports file to fetch distfiles when archive exists on server

Last modified 4 months ago Last modified on Apr 21, 2018, 1:50:41 PM