On Dec 4, 2018, at 01:04, Ryan Schmidt wrote:

> On Dec 3, 2018, at 19:35, Michael Dickens wrote:
> 
>> Here's the error (just do "sudo port extract cmake-devel"; it results in 
>> this error on every OS I tested, from 10.5 to 10.14):
>> {{{
>> Error: Failed to extract cmake-devel: error renaming 
>> "/opt/local/var/macports/build/_opt_sources_MacPorts_ports_github_macports_devel_cmake/cmake-devel/work/cmake-772edffbf0c08fc0a6fcf74fb98545b7afcfee13-772edffbf0c08fc0a6fcf74fb98545b7afcfee13"
>>  to 
>> "/opt/local/var/macports/build/_opt_sources_MacPorts_ports_github_macports_devel_cmake/cmake-devel/work/cmake-772edffbf0c08fc0a6fcf74fb98545b7afcfee13/cmake-772edffbf0c08fc0a6fcf74fb98545b7afcfee13-772edffbf0c08fc0a6fcf74fb98545b7afcfee13":
>>  trying to rename a volume or move a directory into itself
>> Error: See 
>> /opt/local/var/macports/logs/_opt_sources_MacPorts_ports_github_macports_devel_cmake/cmake-devel/main.log
>>  for details.
>> }}}
> 
> Ok, that's because cmake-devel does this:
> 
>    post-extract {
>        move ${workpath}/${name}-${commit}-${commit} 
> ${workpath}/${name}-${commit}
>    }
> 
> Now that base has been changed, MacPorts has already made a ${worksrcdir} (in 
> this case ${name}-${commit}) symlink for you. So for compatibility with both 
> the released version of MacPorts and master, you should ensure it doesn't 
> already exist before moving it:
> 
>    post-extract {
>        if {![file exists ${worksrcpath}]} {
>            move ${workpath}/${name}-${commit}-${commit} ${worksrcpath}
>        }
>    }
> 
> which is basically what's done in the remaining commit for libao in this PR:
> 
> https://github.com/macports/macports-ports/pull/1760
> 
> After compatibility with the current version of MacPorts is no longer needed, 
> the entire post-extract block can be removed.

Or, more simply and more usually, you should be able to just:

worksrcdir        ${name}-${commit}-${commit}

(and again, if desired, remove it once a future version of MacPorts is 
released).

Reply via email to