How to remove a port from MacPorts?

Ryan Schmidt ryandesign at
Sun Mar 6 14:35:23 PST 2011

On Mar 6, 2011, at 16:28, Marko Käning wrote:

>> Yes, that's how you would remove a port.
> OK.
>> Note that everybody who already has the port installed will receive no notification that the port has been deleted from the tree, and will continue to have the port installed forever, or until they manually decide to "sudo port uninstall" it.
> I see. That wouldn't be a big deal since…
>> What is the port? Is there or will there be a replacement for it in MacPorts? If so, don't delete the port immediately, but keep it around for a year or so as a stub port marked as "replaced_by" whatever the replacement port is.
> it's the port "skrooge-devel" which the skrooge-developers decided to not to support anymore. Instead we agreed upon maintaining solely port "skrooge".
> This is why I would simple "rm" it.
> BUT, how to I create 'a stub port marked as "replaced_by"'??? (Just out of sheer curiosity I'd like to know, just in case I come across a case like this in the future.)

In this case, you should absolutely leave skrooge-devel and mark it as replaced_by skrooge. For examples of how this is used, grep the ports tree for "replaced_by"; you should find several examples. xz-devel is a good example; xz-devel was replaced by xz. The important elements are:

 * add the line "replaced_by foo" where foo is the port this one is replaced by; when a user upgrades this port, MacPorts will instead install the replacement port
 * increase the version, revision, or epoch, so that users who have this port installed will get notice in "port outdated" that they should upgrade it and trigger the above process
 * clear distfiles (have a line reading only "distfiles") so that no distfile is downloaded for this stub port
 * delete master_sites since there aren't any distfiles to download
 * use "livecheck.type none" so that livecheck doesn't try to do anything
 * add a pre-configure block with a ui_error and return -code error explaining to users why try to install this port that the port has been replaced

More information about the macports-dev mailing list