Buildbot cruft: /opt/local/bin/mvn31

Joshua Root jmr at macports.org
Wed Mar 18 10:34:52 PDT 2015


On 2015-3-19 03:45 , Blair Zajac wrote:
> 
> On Mar 18, 2015, at 9:41 AM, Blair Zajac <blair at orcaware.com> wrote:
> 
>>
>> On Mar 17, 2015, at 11:40 PM, Ryan Schmidt <ryandesign at macports.org> wrote:
>>
>>>
>>> On Mar 18, 2015, at 1:30 AM, Mojca Miklavec wrote:
>>>>
>>>> On Wed, Mar 18, 2015 at 7:09 AM, Ryan Schmidt wrote:
>>>>> On Mar 17, 2015, at 3:24 PM, Blair Zajac wrote:
>>>>>>
>>>>>> Funny, I found this code in the maven3 port because of this bug:
>>>>>>
>>>>>> pre-activate {
>>>>>> # Remove stray files on Mavericks buildbot
>>>>>> foreach file {bin/mvn3} {
>>>>>>     set filepath ${prefix}/${file}
>>>>>>     if {[file exists ${filepath}] && [registry_file_registered ${filepath}] == "0"} {
>>>>>>         delete ${filepath}
>>>>>>     }
>>>>>> }
>>>>>> }
>>>>>>
>>>>>> I’ll put this in maven31 for an hour and then remove it.
>>>>>
>>>>> If these crufty files are present on the buildbot builders, then they are probably also present on the system of any user who installed the port.
>>>>
>>>> No, not necessarily. The files could also be present because of a
>>>> failure on the buildbot (if the build was broken in the middle of
>>>> activation step for example, so that files ended up on the system, but
>>>> they were never registered).
>>>>
>>>> I'm not saying this is the case here, but it often is.
>>>
>>> We know that's not the case here. We know the problem was caused by a line in the destroot block that copied a file directly into prefix, bypassing destroot. This was fixed in r134042 but anybody who installed the port before that will experience an activation error when upgrading to any newer version. A fix for the activation error was committed in r134059, but removed again in r134074. The fix should be re-committed and kept for a minimum of one year.
>>
>> Restored in r134113.
> 
> This isn’t working:
> 
> https://build.macports.org/builders/buildports-mavericks-x86_64/builds/11615/steps/compile/logs/stdio
> 
> --->  Activating maven31 @3.1.1_2
> DEBUG: Using /usr/bin/tar
> DEBUG: Using /usr/bin/bzip2
> x ./
> x ./+COMMENT
> x ./+CONTENTS
> 
>>>> x ./opt/local/bin/mvn31
> 
> Error: org.macports.activate for port maven31 returned: Image error: /opt/local/bin/mvn31 already exists and does not belong to a registered port.  Unable to activate port maven31. Use 'port -f activate maven31' to force the activation.
> DEBUG: Error code: registry::image-error
> DEBUG: Backtrace: Image error: /opt/local/bin/mvn31 already exists and does not belong to a registered port.  Unable to activate port maven31. Use 'port -f activate maven31' to force the activation.
>     invoked from within
> 
> Any ideas?

'file exists' resolves symlinks. The target of the link does not exist.

Use ![catch {file type $somefile}] instead.

- Josh


More information about the macports-dev mailing list