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