Buildbot cruft: /opt/local/bin/mvn31

Blair Zajac blair at orcaware.com
Thu Mar 19 09:52:35 PDT 2015


On Mar 18, 2015, at 10:34 AM, Joshua Root <jmr at macports.org> wrote:

> 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.

Thanks, fixed in r134171.

Blair



More information about the macports-dev mailing list