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.
- #34619
- prevent use of unknown subports
- #50469
- Git clone fails - SSL certificate problem: Couldn't understand the server certificate format
- #52218
- make test: Error: no mirror had select-0.1.tar.gz for gcc_select
- #55492
- move: case-only renames fail when no arguments are given
- #55560
- 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?
- #55575
- port -vst install fails with "/usr/bin/tar: No such file or directory"
- #56018
- Backport bugfixes to release-2.4 for next release
MacPorts 2.4.4
- #26486
- Error attempting to install portfile with non-integer revision
- #55680
- Trace mode fails when ccache is used
- #55933
- Use MacPorts Subversion when fetch.type svn on OS X El Capitan and earlier
- #55939
- reclaim does not support distfile tags
- #55989
- Use MacPorts git when fetch.type git on OS X Mountain Lion and earlier
- #56267
- 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.
- #22471
- Debugging options for startupitems (launchd / daemondo)
- #23677
- Deactivating a port should automatically unload daemons
- #31798
- Installation from binary package does not notify user of need to start launch item
- #36770
- Need for a fix regarding mechanism for startupitem handling
- #40074
- Add macports.conf setting controlling startupitem.autostart
- #44295
- support more than one launchd plist
- #44496
- startupitem_install not respected when installing from binary archive
- #44497
- Change port load to use MacPorts plists directly
- #46807
- base: allow dots (.) in variant names
- #52445
- portpatch.tcl: support xz-compressed patchfiles
- #53843
- warning: 'syscall' is deprecated: first deprecated in macOS 10.12 - syscall(2) is unsupported; please switch to a supported interface
- #53857
- port -N reclaim does not remove any ports
- #54037
- port reclaim missing in man page of port
- #54743
- Binary-only mode requested with no usable archive sites configured
- #55282
- Lack of Xcode 9 update not detected with High Sierra OS.
- #56053
- Respect cxx_stdlib and delete_la_files in selection of archive_site
- #56326
- rev-upgrade considers gcc as broken due to libstdc++
- #56434
- 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.
- #37667
- port lint should complain about using only md5 or sha1 checksums
- #37867
- Weird library install_names for MacPorts dylibs
- #56041
- Update compiler selection for 10.6-10.8 with libc++
- #56381
- It would be nice if shell mode saved command history immediately
- #56563
- Failed to activate: Cannot restore xattr:com.apple.decmpfs
- #57003
- port info order of fields is unexpected
- #57143
- Unable to determine location of a macOS SDK
- #57245
- Confusing message when attempting to use +universal with the macOS 10.14 SDK
- #57457
- Travis CI: Sometimes declared dependencies aren't installed
- #57717
- archive_site_local doesn't work at all
- #57718
- Unexpected behavior when archive_site_local contains more than 1 URL
- #58016
- Unnecessary warning about Xcode and xcodebuild when installing port
- #58309
- NOP port upgrade outdated returns error status
- #58914
- 'bump' action not mentioned in port(1) man page
- #59061
- 2.6.0 rc1 and beta1 packages won't open on SnowLeopard
MacPorts 2.7.0
- #15186
- port upgrade does not work correctly on current pseudo-port
- #15712
- Add versions to platforms
- #15939
- port install : in need of a progressbar
- #16373
- base should maintain a persistent working copy for all supported VCS fetches
- #29093
- changing $worksrcdir break the build when using git.fetch or hg.fetch
- #42207
- uninstalling macports could be easier
- #46927
- record successfully applied patches in the statefile
- #46956
- base should keep track of explicitly requested variants on install and only preserve those on upgrade
- #50518
- bug: case sensitive port names in boolean expressions
- #50708
- Base should support fetching git submodules (git submodule update)
- #50896
- Implement a function to create stable tarballs
- #50969
- Provide a generic extract command in base
- #55011
- livecheck should have curl request a compressed response
- #55502
- Use size from checksums for curl progress bar when server does not supply length header
- #56019
- Support automatic migration between OS releases using 'port migrate'
- #56020
- Finalize and merge gsoc10-configfiles
- #56021
- Finalize and merge gsoc11-post-destroot
- #56022
- Colors in the port command
- #56042
- Bundle libc++ with MacPorts on 10.6
- #56055
- Support creating MacPorts pkg/dmg by using 'pkg' and 'dmg' targets in the base builds system
- #56180
- use subdir for trace mode socket
- #56183
- registry: Remove the receipt_flat storage
- #56252
- macosx_version should contain the full macOS version
- #56549
- selfupdate loses error message returned by mportsync
- #56629
- Make cxx_stdlib mismatches more verbose
- #56743
- --with-no-root-privileges should imply --without-startupitems
- #56817
- `port activate`: error selecting already active version/variant
- #57133
- Don't offer universal variant when multiple architectures aren't supported
- #57719
- archive_site_local URLs are attempted twice
- #57720
- preferred_hosts has no effect on archive_site_local
- #59289
- base does not necessarily tell you when circular dependency occurs
- #59643
- Please add port version, revision and variant info the debug output
- #60126
- 'port reclaim' should clean out /opt/local/var/macports/build
- #60454
- Print a warning when users specify version/revision information at install time that will not be honored
- #60653
- Allow ports to customize the launchd plist files in the destroot phase
- #60854
- Wrong subversion dependency when fetch.type is svn with Xcode 11.4 and later
- #61154
- Error: port deactivate failed: this entry does not own the given file
- #61540
- Segmentation Fault during rev-upgrade
- #61584
- Use deployment target 10.16 on Big Sur
- #61649
- installer postflight incorrectly sets DISPLAY variable on Big Sur
- #61866
- base uses incorrect SDK for Big Sur 11.1 and Xcode 12.3
Base tickets without a milestone
- #12048
- RFE: Document all the code in the MacPorts base
- #20683
- port upgrade does nothing with a downgraded package
- #23038
- Option to automatically clean distfile too
- #24520
- warn when an unavailable version is requested for install
- #24687
- port command unnecessarily requires permissions to the cwd
- #24778
- please add mcpu (march is only for x86)
- #25182
- add a way to exclude build dependencies from pseudo-portname "leaves"
- #25970
- Variant names should be treated case-insensitively
- #26028
- Add feature to show changes between port versions
- #26853
- MacPorts should say why it is (re)installing a dependency
- #26918
- MacPorts-1.9.1 compiled to XFS NFS files system
- #27097
- program suggests running 'port xxx' from within the 'port' interactive shell
- #27141
- Feature request: make minimum UID/GID for adduser addgroup commands configurable
- #27353
- selfupdate failing, perhaps a user account issue?
- #27788
- ports should ignore default +universal when universal archs mismatch
- #28001
- MacPorts base could support out-of-source builds, or tell user that it doesn't
- #28096
- stale interpreter reference used after error in interactive mode
- #28640
- port lint should warn when *-append should be used
- #28738
- Hard links fail with Macports on AFS
- #29009
- port incorrectly detects some ports as uninstalled
- #29172
- remove dependency on Xcode
- #30040
- Allow case-sensitive build roots
- #30067
- archives owned by different users
- #30328
- Enable variants for specific ports in variants.conf
- #30562
- MacPorts should offer to sign archives
- #30622
- port should output a message when vacuuming registry
- #30736
- Local repository with space in path name won't work
- #31056
- Locking somewhat broken in MacPorts 2
- #31472
- pextlib crash/segfault in curl code
- #32261
- Allow building on a RAM disk or other secondary disk
- #32266
- pkg: tell us where it was created
- #32700
- port upgrade -u py25-wxpython fails to deactivate old version
- #33037
- background archiving
- #33396
- Create single mpkg of all installed ports
- #33491
- Save binary packages to user-specified location
- #33629
- port -e, environment mode
- #33820
- base: add ui_msg to output outdated ports during selfupdate
- #33930
- Ignore consequences of broken DNS servers
- #33933
- Remove "port -u uninstall" functionality
- #34832
- PORT/work/.home/.subversion and proxy access
- #34931
- Add "new" to port command
- #35093
- mpkg / mdmg requires cleaning and reinstalling every time
- #35670
- could not set effective gid to 0
- #36137
- Option to mark a port for installation when the port is fixed
- #36612
- path:-style dep allows non-macports file inside macports prefix
- #36951
- Feature Request: Notify me when my local Portfiles shadow upstream Portfiles that have been updated
- #37583
- base: Update m4/tcl.m4 to check for tcl8.6
- #37853
- RFE: "port provides" should return a different message when used on files provided by base
- #38112
- RFE: add a "depends_pkg" type of dependency
- #38120
- RFE: automatically remove .DS_Store files from build directories
- #38206
- RFE: pubkeys_conf variable in macports.conf
- #38381
- RFE: pseudo-portnames `depof:` and `rdepof:` should be more granular
- #38555
- RFE: Move "rec_glob" proc from nodejs portfile into base
- #38579
- RFE: make the aclocal.m4 file in base safe to regenerate with `aclocal`
- #38582
- RFE: update the configure.ac file in base to silence some warnings produced by autoscan
- #38586
- atlas @3.10.1_3: log file contents missing when -k option used
- #38662
- RFE: Replace "command execution failed" with a more informative error message
- #38697
- mdmg says it's up-to-date when it isn't
- #38859
- Use dseditgroup in "addgroup"?
- #38862
- Automatically clean builds with old statefile formats
- #39272
- `-p` flag for `port` command doesn't play nice with errors resulting from mismatched requested variants vs. originally-selected variants
- #39405
- Space character in packagemaker_path attribute in macports.conf breaks mpkg and mdmg
- #39423
- Uninstalling replaced port with dependents has to be forced
- #39659
- configure script does not expand "~" for applications_dir and frameworks_dir
- #39782
- Add keyword to list compatible graphical environments (X11, Quartz, Wayland)?
- #39897
- Add 'optional' or 'recommended' metadata tags to portfile spec.
- #40035
- base aborts if current directory does not exist, even when given a port name
- #40042
- base should ignore variant conflicts when cleaning
- #41339
- Add "dependencies" as alias of "deps"
- #41796
- binary package download ignores macosx_deployment_target set globally
- #41828
- port 2.2.1 mpkg build fails after package has been created
- #42731
- RFE: Add a conf option to automatically run test phase during normal install process
- #43291
- more integrated security notification: security page, port selfupdate notice, ...
- #43648
- mpkg missing daemondo
- #43809
- port selfupgrade to base v2.3.0 fails on G4
- #43996
- port select should record its symlinks in the registry
- #44067
- use "configure.includes {path1 path2}" instead of "configure.cppflags -I{path1} -I{path2}"
- #44413
- Use a compiler wrapper script
- #44451
- Update Installer System Requirements info
- #44493
- Support globs in port versions
- #44509
- selfupdate tried to tell me to run selfupdate again
- #44549
- Overriding autoreconf.cmd/autoconf.cmd/automake.cmd should delete default autoreconf.args/autoconf.args/automake.args
- #44691
- port search: return Trac ticket for submission
- #44786
- list of dependencies to be installed can be inaccurate
- #44894
- base: improve livecheck.type moddate
- #44900
- Installation of Xcode should be better than Homebrew's process
- #45010
- RFE: stop "port test" immediately if no test phase defined
- #45274
- Run portbuild::build_main once for each build.target
- #45353
- base - git and mercurial fetching target directory
- #45674
- Misleading logging
- #45851
- port should scan for DYLIB missing the TWOLEVEL flag
- #45981
- Clearer logging
- #46139
- postflight.in v2.3.1 Error determining network user's shell
- #46229
- Uninstalling all active ports - are you sure?
- #47442
- port: new action_environment and/or environment mode
- #47706
- base: postflight.in: Missing check causes duplicate PATH entries when sourcing CONF_FILE
- #48051
- Installing a port +universal needlessly reinstalls recursive dependencies +universal
- #48345
- 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
- #48423
- Replace bzip2 and gzip with pbzip2 and pigz system wide?
- #48680
- port-lint: Add option to disable parent directories checks
- #48968
- Using port in Eterm: curl progress callback failed: can't read "env(COLUMNS)": no such variable
- #48983
- portconfigure.tcl : fix for building on Linux
- #49101
- Ensure that macports $HOME exists and is valid
- #49169
- port selfupdate fails with an imprecise error message when the Xcode license has not been accepted
- #49496
- Offer a choice of mirror server in the MacPorts installer package
- #49501
- Spaces and Backslashes in Group Names
- #49645
- `port -n upgrade --force foo` should deactivate after creating the new archive
- #49855
- base fails to build on Linux: sip_copy_proc.c:319: error: ‘struct stat’ has no member named ‘st_mtimespec’
- #50168
- selfupdate: rsync fails if http_proxy is configured
- #50233
- port upgrade --force shouldn't uninstall if no permission was given to install a missing dependency
- #50770
- In rsync_options, use --delete-delay instead of --delete-after
- #51045
- "---> Attempting to fetch" doesn't start in a new line
- #51183
- MacPorts did not install curl's dependency openssl
- #51214
- Add option to show binary package URLs
- #51298
- Base does not prevent conflicting port activation when portfile from registry cannot be executed
- #51498
- requested (meta) ports get uninstalled on uninstall leaves
- #51499
- Propose --follow-dependents
- #51599
- main.log is never deleted with "keeplogs yes"
- #51684
- xcodebuild exists but failed to execute
- #51706
- platform statement: support an else clause
- #51799
- add a concept of 'distributions' for ports that work on specific older architectures
- #52000
- Add xz to "base" to allow changing the default compression format to .tar.xz in the future
- #52303
- `port uninstall --follow-dependents` uninstalls more ports than `port rdependents` reports
- #52530
- conditional PortGroup include
- #52575
- Report Xcode version and other useful information in main.log
- #52700
- port rev-upgrade stumbles over -weak_framework library dependencies
- #52713
- splitting up ports in "runtime" and "-dev" ports, DebUntu style (PoC)
- #52767
- port lint should warn when modeline is missing
- #52873
- port sync should open only a single rsync connection
- #52898
- revision convenience
- #52911
- rev-upgrade -v should be more verbose about missing architecture
- #52952
- Ability to list just emails or just GitHub usernames of maintainers
- #52973
- add setting to allow main.log truncation
- #52981
- Print custom warnings from Portfile with `port info`
- #53089
- option-contains
- #53387
- Pextlib/xinstall : don't ignore directory chmod errors silently
- #53404
- `port upgrade outdated` changes colours in terminal emulation
- #53411
- macports-base codesigning ?
- #53730
- copy, delete, move, touch: support -W argument for changing working directory
- #53909
- port diagnose fails in xcode-select
- #54056
- MacPorts should warn when not using "macports" rsync module
- #54366
- 2 variant convenience procedures
- #54386
- variants set with default_variant don't propagate the same way as variants set by the user do.
- #54388
- port -q should suppress warnings
- #54393
- 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
- #54579
- Add alias "dependencies" for action "deps"
- #54645
- Uninstall one Python version removes packages from other Python versions
- #54697
- `port history` action
- #55085
- Trying to install a port which is already installed should mark it as requested.
- #55089
- Make "port requested" an alias for "port installed requested"
- #55151
- port install fails if $COLUMNS is unset
- #55332
- chown does not support changing group
- #55445
- install phase fails with "no destroot found"
- #55468
- macports destroot.umask not recursively applied
- #55508
- autorequested (mark some unrequested leaves as requested)
- #55514
- Add semantic versioning support to livecheck
- #55546
- Install dependencies without asking
- #55637
- allow port reactivation (WIP)
- #55673
- destroot.keepdirs should behave better if specified path is not in destroot
- #55827
- sandbox-exec: execvp() of 'sh' failed: No such file or directory
- #55940
- Don't import suffix into global namespace
- #56008
- port mirror does not indicate failure when checksum verification fails
- #56016
- make test uses the installed version of MacPorts, not the just-built one
- #56040
- Move some checks out of lint --nitpick
- #56120
- pkg-config fails to find python3
- #56134
- shortcut to combine selfupdate and upgrade outdated
- #56201
- make dist requires DISTVER to be specified
- #56204
- Remove prefix string from darwintrace.dylib and Pextlib.dylib
- #56245
- rev-upgrade: Handling missing architectures on libraries
- #56345
- Make it easier to determine which ports have lint problems
- #56365
- Create test to verify correct functioning of ptys in system call
- #56435
- selfupdate should use parallel build
- #56437
- rev-upgrade ignores -p
- #56457
- use_dmg: /usr/bin/cpio: illegal option -- 0
- #56619
- I ran "sudo port selfupdate" and now I cannot install any ports without an error
- #56625
- test statefile-unknown fails
- #56704
- archivefetch failed verification with key /opt/local/share/macports/macports-pubkey.pem
- #56756
- Build doesn't honor --bindir, --libexecdir, etc.
- #56757
- reclaim removed my ports without asking
- #56793
- Installing a port with many files appears appears hang
- #56957
- attempt to create ccachedir conditionally
- #56963
- New keywords for bash/zsh tab-completion
- #57011
- New keyword for man page/documentation installation
- #57075
- port diagnose: check directory permissions
- #57076
- port diagnose: warn about incompatible archs
- #57099
- [feature request] "replaces" keyword
- #57160
- MacPorts base readline support is not compatible with MacPorts readline port
- #57171
- Registry operations can take a very long time in 2.5.3 under Mojave
- #57391
- port log and port logfile don't accept subport
- #57653
- install/upgrade feedback suggestion
- #57690
- Warning when disabling default archive_sites
- #57695
- Set AR, NM and RANLIB env. variables
- #57730
- registry.db files table should have unique constraint over id and path columns
- #57736
- Allow the location of archive_sites.conf and pubkeys.conf to be configured in macports.conf
- #57950
- port selfupdate gives the impression of doing work in the wrong order
- #57964
- port diagnose: could not execute xcode-select, no such file or directory
- #58018
- MacPorts fails to run after manual install via tarball
- #58060
- Build error on Ubuntu: unknown type name ‘SHA2_CTX’ / conflicting types for ‘SHA256_CTX’
- #58103
- new command request: port broken
- #58175
- base fails to configure in a path that contains a space
- #58229
- base: defining the same variant both in a PG and a port discards description
- #58497
- Don't check os_major on Linux
- #58529
- Port command, in interactive mode, doesn't load the editline config file
- #58575
- Small error - Forcing uninstall uses wrong jargon
- #58597
- When MacPorts asks a yes/no question, add an abort option
- #58656
- Show URL in "port info"
- #58663
- Unsigned files will not run at all in future versions of macOS
- #58751
- MacPorts should bundle a newer rsync or allow overriding the default rsync
- #58785
- If port select fails, it can leave an incomplete or inconsistent set of symlinks
- #58858
- [base]: default_variants could check variant conflicts
- #59055
- port bump suggestions
- #59283
- xinstall: Prevent the creation of pathless directories that looks like octal permission numbers, like 755
- #59373
- gtk3 @3.24.12 does not build on PPC Mac OS X 10.5.8, Leopard, because "too many nested evaluations (infinite loop?)"
- #59381
- Do something better when no ports are specified
- #59463
- Binary-only mode requested with no usable archive sites configured
- #59672
- Set SOURCE_DATE_EPOCH
- #59691
- After a time, MacPorts cannot determine the Xcode version, on Snow Leopard
- #59696
- Use MacPorts git or svn if available when fetch.type is git or svn
- #59836
- port should explicitly say to use sudo when upgrading
- #59837
- macOS 10.14 SDK does not appear to be installed even though Command Line Tools are installed
- #59839
- Record default python and perl versions
- #60062
- selfupdate fails with Xcode 10.1 on macOS 10.13 because it uses the 10.14 SDK which doesn't have i386 bits
- #60075
- Error in Scanning binaries for linking errors
- #60256
- 'port bump' does not update checksums for cargo crates
- #60269
- port archive should be smarter with regards to portarchivetype
- #60431
- base: (linux) fails to determine build arch correctly
- #60432
- base: (linux) arch flags are not recognized by linux compilers
- #60433
- base: (linux) cxx_stdlib is not derived by base
- #60446
- Port name unexpectedly handled case-sensitively when uninstalling
- #60473
- [wishlist] -u: allow not to uninstall all inactive versions
- #60534
- Print status information for a daemon
- #60648
- MacPorts marks ports requested that weren't
- #60676
- Install from source --with-no-root-privileges fails on Catalina - 'couldn't create error file for command: permission denied'
- #60722
- test.env doesn't work
- #60749
- Activation fails if a port tries to install ._ files
- #60754
- Reclaim removes build dependencies
- #60756
- Tell the user when fetching a binary failed and a build from source will occur
- #60757
- Print already completed phases
- #60786
- Build progress bar does not account for muniversal variant
- #60818
- darwintrace cannot inject into binaries of a different architecture
- #60844
- Make the reinplace warning an error
- #60881
- Portindex: "Failed to locate 'gnumake' in path" when faking the platform on Linux
- #61015
- Selectors depof: rdepof: subportof: ignore -p
- #61050
- Add `port vercmp` command
- #61191
- port deactivate fails, mentions nonexistent logfile
- #61233
- port command hangs under tracemode
- #61236
- $xcodeversion does not calculate the proper version when Xcode.app is not present or not found.
- #61253
- configuring base requires working tclsh
- #61288
- Manpage symlink to symlink doesn't get recreated to compressed version
- #61315
- Distfile fetch for python39 hangs on 10.5
- #61320
- MacPorts-2.6.3-10.15-Catalina.pkg installer error
- #61390
- compiler.openmp_version doesn't set configure.ldflags -L${prefix}/lib/libomp -lomp with port groups cmake+python
- #61503
- improve warning message when command line tools are out of date
- #61574
- Tests that try to access system libraries fail on Big Sur
- #61683
- remoted hangs on Big Sur when installing p5* ports, losing network and sometimes panicking kernel
- #61750
- base prefers arch of terminal in use rather than machine arch when installing ports
- #61813
- macports base: faulty symbolic links should be flagged
- #61980
- port lint --nitpick gives false warning when version is a single integer
- #62144
- base: On Mountain Lion configuration file is processed but it ignores archives server URL
- #62321
- sudo port -v selfupdate or sudo port -v sync will stop for a long time
- #62345
- Not prompted to agree to xcode license when circular dependencies exist due to that very problem
- #62382
- port mpkg iperf3 fails to create work/destroot/ directories
- #62457
- port lint: warn if there is no test phase
- #62554
- Let ports specify expected memory use per job
- #62590
- port lint: warn if missing 'revision' field
- #62591
- port lint incorrectly warns about missing checksums in go.vendors and cargo.crates
- #62677
- Add C++20 support for configure.cxx_standard
- #62688
- Increase minimum C11 compatible compiler
- #62710
- `return -code error` doesn't work inside a 'try' command's catch clause
- #62711
- Base: port rdeps --full, infinite loop on circular dependency