Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Eclipse Projects » Buckminster » Buckminster script execution stops after 'build -c'
Buckminster script execution stops after 'build -c' [message #1052979] Wed, 01 May 2013 17:02 Go to next message
Sakis Kotisis is currently offline Sakis Kotisis
Messages: 31
Registered: July 2009
Member
Hi,

I'm running headless Buckminster to build an update site with the
following script as argument:

importtargetdefinition -A
'F:/_Workspaces/bucky-pg/c.s.p.site/mirror.target'
import 'C:/Users/tkotisis/workspace4/c.s.p.site/site.cquery'
build -c
perform -D target.os=win32 -D target.ws=win32 -D target.arch=x86 -D
cbi.include.source=false c.s.p.site#site.p2

Build action is called, the bundles are being built and some build errors
and warnings appear in stderr.

But then Buckminster stops (!), not calling the 'perform' action.

There's no indication as to why in the Buckminster .log or in the console.

Am i correct in the assumption that if
org.eclipse.buckminster.core.commands.Build finds any error markers, the
script execution is stopped?

If so, is there a way to avoid this, without removing the code causing the
errors?

--
Sakis Kotisis

Senior Software Engineer
SciGen Technologies, S.A.
Re: Buckminster script execution stops after 'build -c' [message #1053023 is a reply to message #1052979] Thu, 02 May 2013 05:54 Go to previous messageGo to next message
Thomas Hallgren is currently offline Thomas Hallgren
Messages: 3229
Registered: July 2009
Senior Member
On 2013-05-01 19:02, Sakis Kotisis wrote:
> Hi,
>
> I'm running headless Buckminster to build an update site with the
> following script as argument:
>
> importtargetdefinition -A
> 'F:/_Workspaces/bucky-pg/c.s.p.site/mirror.target'
> import 'C:/Users/tkotisis/workspace4/c.s.p.site/site.cquery'
> build -c
> perform -D target.os=win32 -D target.ws=win32 -D target.arch=x86 -D
> cbi.include.source=false c.s.p.site#site.p2
>
> Build action is called, the bundles are being built and some build
> errors and warnings appear in stderr.
>
> But then Buckminster stops (!), not calling the 'perform' action.
>
> There's no indication as to why in the Buckminster .log or in the console.
>
> Am i correct in the assumption that if
> org.eclipse.buckminster.core.commands.Build finds any error markers, the
> script execution is stopped?
>
That is correct. It's assumed that an error should terminate the script.

> If so, is there a way to avoid this, without removing the code causing
> the errors?
>
The only way to work around this is to invoke the perform in another script.

Why would you continue and build a p2 site when the build is in error?

- thomas
Re: Buckminster script execution stops after 'build -c' [message #1057761 is a reply to message #1053023] Wed, 08 May 2013 15:21 Go to previous messageGo to next message
Sakis Kotisis is currently offline Sakis Kotisis
Messages: 31
Registered: July 2009
Member
Thanks for the help Thomas.

You are right of course, i need this bundle built to have a working RCP
app.

Let me explain the situation fully.

My product has to be built for several platforms.

To this date it is being built cross-platform on win32 through the PDE ant
scripts using the delta pack.
I.e. PDE is able to build for platforms different from the one where the
build is executed.

It's the equivalent of choosing "Export for multiple platforms" when
exporting from the IDE.

Now, a single plug-in "c.s.p.p.macosx" in the product, is importing code
from the fragment "org.eclipse.swt.cocoa.macosx".
Naturally, this causes an error when building this particular plug-in for
any other platform.
However, this plug-in is included in it's feature "c.s.p.cl" with
os="macosx",ws="cocoa".

Is there a way to perform a multi-platform cross-build using Buckminster?

On Thu, 02 May 2013 08:54:25 +0300, Thomas Hallgren <thomas@xxxxxxxx> wrote:

> On 2013-05-01 19:02, Sakis Kotisis wrote:
>> Hi,
>>
>> I'm running headless Buckminster to build an update site with the
>> following script as argument:
>>
>> importtargetdefinition -A
>> 'F:/_Workspaces/bucky-pg/c.s.p.site/mirror.target'
>> import 'C:/Users/tkotisis/workspace4/c.s.p.site/site.cquery'
>> build -c
>> perform -D target.os=win32 -D target.ws=win32 -D target.arch=x86 -D
>> cbi.include.source=false c.s.p.site#site.p2
>>
>> Build action is called, the bundles are being built and some build
>> errors and warnings appear in stderr.
>>
>> But then Buckminster stops (!), not calling the 'perform' action.
>>
>> There's no indication as to why in the Buckminster .log or in the
>> console.
>>
>> Am i correct in the assumption that if
>> org.eclipse.buckminster.core.commands.Build finds any error markers, the
>> script execution is stopped?
>>
> That is correct. It's assumed that an error should terminate the script.
>
>> If so, is there a way to avoid this, without removing the code causing
>> the errors?
>>
> The only way to work around this is to invoke the perform in another
> script.
>
> Why would you continue and build a p2 site when the build is in error?
>
> - thomas
>
>


--
Sakis Kotisis

Senior Software Engineer
SciGen Technologies, S.A.
Re: Buckminster script execution stops after 'build -c' [message #1057785 is a reply to message #1057761] Wed, 08 May 2013 17:15 Go to previous messageGo to next message
Henrik Lindberg is currently offline Henrik Lindberg
Messages: 2500
Registered: July 2009
Senior Member
You can look at how we do things in the project cloudsmith/geppetto
@github - we build an RCP (an IDE) for multiple platforms using
Buckminster. (Buckminster setup by Thomas Hallgren ;-))

There are some special stuff in there since we build certain parts for
non OSGi environments as well.

Regards
- henrik

On 2013-08-05 17:21, Sakis Kotisis wrote:
> Thanks for the help Thomas.
>
> You are right of course, i need this bundle built to have a working RCP
> app.
>
> Let me explain the situation fully.
>
> My product has to be built for several platforms.
>
> To this date it is being built cross-platform on win32 through the PDE
> ant scripts using the delta pack.
> I.e. PDE is able to build for platforms different from the one where the
> build is executed.
>
> It's the equivalent of choosing "Export for multiple platforms" when
> exporting from the IDE.
>
> Now, a single plug-in "c.s.p.p.macosx" in the product, is importing code
> from the fragment "org.eclipse.swt.cocoa.macosx".
> Naturally, this causes an error when building this particular plug-in
> for any other platform.
> However, this plug-in is included in it's feature "c.s.p.cl" with
> os="macosx",ws="cocoa".
>
> Is there a way to perform a multi-platform cross-build using Buckminster?
>
> On Thu, 02 May 2013 08:54:25 +0300, Thomas Hallgren <thomas@xxxxxxxx> wrote:
>
>> On 2013-05-01 19:02, Sakis Kotisis wrote:
>>> Hi,
>>>
>>> I'm running headless Buckminster to build an update site with the
>>> following script as argument:
>>>
>>> importtargetdefinition -A
>>> 'F:/_Workspaces/bucky-pg/c.s.p.site/mirror.target'
>>> import 'C:/Users/tkotisis/workspace4/c.s.p.site/site.cquery'
>>> build -c
>>> perform -D target.os=win32 -D target.ws=win32 -D target.arch=x86 -D
>>> cbi.include.source=false c.s.p.site#site.p2
>>>
>>> Build action is called, the bundles are being built and some build
>>> errors and warnings appear in stderr.
>>>
>>> But then Buckminster stops (!), not calling the 'perform' action.
>>>
>>> There's no indication as to why in the Buckminster .log or in the
>>> console.
>>>
>>> Am i correct in the assumption that if
>>> org.eclipse.buckminster.core.commands.Build finds any error markers, the
>>> script execution is stopped?
>>>
>> That is correct. It's assumed that an error should terminate the script.
>>
>>> If so, is there a way to avoid this, without removing the code causing
>>> the errors?
>>>
>> The only way to work around this is to invoke the perform in another
>> script.
>>
>> Why would you continue and build a p2 site when the build is in error?
>>
>> - thomas
>>
>>
>
>
Re: Buckminster script execution stops after 'build -c' [message #1057879 is a reply to message #1057761] Thu, 09 May 2013 14:19 Go to previous messageGo to next message
Lorenzo Bettini is currently offline Lorenzo Bettini
Messages: 1362
Registered: July 2009
Senior Member
On 05/08/2013 05:21 PM, Sakis Kotisis wrote:
> Now, a single plug-in "c.s.p.p.macosx" in the product, is importing code
> from the fragment "org.eclipse.swt.cocoa.macosx".
> Naturally, this causes an error when building this particular plug-in
> for any other platform.
> However, this plug-in is included in it's feature "c.s.p.cl" with
> os="macosx",ws="cocoa".
>
> Is there a way to perform a multi-platform cross-build using Buckminster?

I published a tutorial blogpost

http://www.lorenzobettini.it/2013/01/building-an-eclipse-rcp-product-with-buckminster/

which builds the same product for several platforms with Buckminster
(and you do not need the delta-pack)

hope this helps
Lorenzo

--
Lorenzo Bettini, PhD in Computer Science, DI, Univ. Torino
HOME: http://www.lorenzobettini.it
Re: Buckminster script execution stops after 'build -c' [message #1057915 is a reply to message #1057785] Thu, 09 May 2013 18:25 Go to previous messageGo to next message
Sakis Kotisis is currently offline Sakis Kotisis
Messages: 31
Registered: July 2009
Member
I took a second look at how the geppetto project is being built.
If my understanding is correct, the project build occurs within the
bmscript.

Namely, the following script line:
build --thorough

Upon receiving this command Buckminster executes a PDE build __ for the
platform it currently runs on __.

In my case a separate PDE build is required for the different platforms
being built.
When building with headless PDE from Ant scripts this is achieved by
configuring the different platforms:

configs=win32, win32, x86 & \
macosx, cocoa, x86_64 & \
macosx, cocoa, x86 & \
linux, gtk, x86

Scouring the newsgroup I found the following thread more or less talking
about the same issue:
http://www.eclipse.org/forums/index.php/m/555879/

The solution outlined there is to include the environment within the
target definition.
This means importing one target definition per platform, which is time
consuming.

Is there really no other way to define a cross-build?

On Wed, 08 May 2013 20:15:58 +0300, Henrik Lindberg
<henrik.lindberg@xxxxxxxx> wrote:

> You can look at how we do things in the project cloudsmith/geppetto
> @github - we build an RCP (an IDE) for multiple platforms using
> Buckminster. (Buckminster setup by Thomas Hallgren ;-))
>
> There are some special stuff in there since we build certain parts for
> non OSGi environments as well.
>
> Regards
> - henrik
>
> On 2013-08-05 17:21, Sakis Kotisis wrote:
>> Thanks for the help Thomas.
>>
>> You are right of course, i need this bundle built to have a working RCP
>> app.
>>
>> Let me explain the situation fully.
>>
>> My product has to be built for several platforms.
>>
>> To this date it is being built cross-platform on win32 through the PDE
>> ant scripts using the delta pack.
>> I.e. PDE is able to build for platforms different from the one where the
>> build is executed.
>>
>> It's the equivalent of choosing "Export for multiple platforms" when
>> exporting from the IDE.
>>
>> Now, a single plug-in "c.s.p.p.macosx" in the product, is importing code
>> from the fragment "org.eclipse.swt.cocoa.macosx".
>> Naturally, this causes an error when building this particular plug-in
>> for any other platform.
>> However, this plug-in is included in it's feature "c.s.p.cl" with
>> os="macosx",ws="cocoa".
>>
>> Is there a way to perform a multi-platform cross-build using
>> Buckminster?
>>
>> On Thu, 02 May 2013 08:54:25 +0300, Thomas Hallgren <thomas@xxxxxxxx>
>> wrote:
>>
>>> On 2013-05-01 19:02, Sakis Kotisis wrote:
>>>> Hi,
>>>>
>>>> I'm running headless Buckminster to build an update site with the
>>>> following script as argument:
>>>>
>>>> importtargetdefinition -A
>>>> 'F:/_Workspaces/bucky-pg/c.s.p.site/mirror.target'
>>>> import 'C:/Users/tkotisis/workspace4/c.s.p.site/site.cquery'
>>>> build -c
>>>> perform -D target.os=win32 -D target.ws=win32 -D target.arch=x86 -D
>>>> cbi.include.source=false c.s.p.site#site.p2
>>>>
>>>> Build action is called, the bundles are being built and some build
>>>> errors and warnings appear in stderr.
>>>>
>>>> But then Buckminster stops (!), not calling the 'perform' action.
>>>>
>>>> There's no indication as to why in the Buckminster .log or in the
>>>> console.
>>>>
>>>> Am i correct in the assumption that if
>>>> org.eclipse.buckminster.core.commands.Build finds any error markers,
>>>> the
>>>> script execution is stopped?
>>>>
>>> That is correct. It's assumed that an error should terminate the
>>> script.
>>>
>>>> If so, is there a way to avoid this, without removing the code causing
>>>> the errors?
>>>>
>>> The only way to work around this is to invoke the perform in another
>>> script.
>>>
>>> Why would you continue and build a p2 site when the build is in error?
>>>
>>> - thomas
>>>
>>>
>>
>>
>


--
Sakis Kotisis

Senior Software Engineer
SciGen Technologies, S.A.
Re: Buckminster script execution stops after 'build -c' [message #1057990 is a reply to message #1057915] Fri, 10 May 2013 11:13 Go to previous messageGo to next message
Henrik Lindberg is currently offline Henrik Lindberg
Messages: 2500
Registered: July 2009
Senior Member
We build Geppetto using current platform when doing this from within the
IDE (for the purpose of testing what you have in the workspace). On our
Jenkins we have a buildjob that builds for all platforms - it produces a
p2 repo and ready-to-run zips, one per supported platform.

- henrik

On 2013-09-05 20:25, Sakis Kotisis wrote:
> I took a second look at how the geppetto project is being built.
> If my understanding is correct, the project build occurs within the
> bmscript.
>
> Namely, the following script line:
> build --thorough
>
> Upon receiving this command Buckminster executes a PDE build __ for the
> platform it currently runs on __.
>
> In my case a separate PDE build is required for the different platforms
> being built.
> When building with headless PDE from Ant scripts this is achieved by
> configuring the different platforms:
>
> configs=win32, win32, x86 & \
> macosx, cocoa, x86_64 & \
> macosx, cocoa, x86 & \
> linux, gtk, x86
>
> Scouring the newsgroup I found the following thread more or less talking
> about the same issue:
> http://www.eclipse.org/forums/index.php/m/555879/
>
> The solution outlined there is to include the environment within the
> target definition.
> This means importing one target definition per platform, which is time
> consuming.
>
> Is there really no other way to define a cross-build?
>
> On Wed, 08 May 2013 20:15:58 +0300, Henrik Lindberg
> <henrik.lindberg@xxxxxxxx> wrote:
>
>> You can look at how we do things in the project cloudsmith/geppetto
>> @github - we build an RCP (an IDE) for multiple platforms using
>> Buckminster. (Buckminster setup by Thomas Hallgren ;-))
>>
>> There are some special stuff in there since we build certain parts for
>> non OSGi environments as well.
>>
>> Regards
>> - henrik
>>
>> On 2013-08-05 17:21, Sakis Kotisis wrote:
>>> Thanks for the help Thomas.
>>>
>>> You are right of course, i need this bundle built to have a working RCP
>>> app.
>>>
>>> Let me explain the situation fully.
>>>
>>> My product has to be built for several platforms.
>>>
>>> To this date it is being built cross-platform on win32 through the PDE
>>> ant scripts using the delta pack.
>>> I.e. PDE is able to build for platforms different from the one where the
>>> build is executed.
>>>
>>> It's the equivalent of choosing "Export for multiple platforms" when
>>> exporting from the IDE.
>>>
>>> Now, a single plug-in "c.s.p.p.macosx" in the product, is importing code
>>> from the fragment "org.eclipse.swt.cocoa.macosx".
>>> Naturally, this causes an error when building this particular plug-in
>>> for any other platform.
>>> However, this plug-in is included in it's feature "c.s.p.cl" with
>>> os="macosx",ws="cocoa".
>>>
>>> Is there a way to perform a multi-platform cross-build using
>>> Buckminster?
>>>
>>> On Thu, 02 May 2013 08:54:25 +0300, Thomas Hallgren <thomas@xxxxxxxx>
>>> wrote:
>>>
>>>> On 2013-05-01 19:02, Sakis Kotisis wrote:
>>>>> Hi,
>>>>>
>>>>> I'm running headless Buckminster to build an update site with the
>>>>> following script as argument:
>>>>>
>>>>> importtargetdefinition -A
>>>>> 'F:/_Workspaces/bucky-pg/c.s.p.site/mirror.target'
>>>>> import 'C:/Users/tkotisis/workspace4/c.s.p.site/site.cquery'
>>>>> build -c
>>>>> perform -D target.os=win32 -D target.ws=win32 -D target.arch=x86 -D
>>>>> cbi.include.source=false c.s.p.site#site.p2
>>>>>
>>>>> Build action is called, the bundles are being built and some build
>>>>> errors and warnings appear in stderr.
>>>>>
>>>>> But then Buckminster stops (!), not calling the 'perform' action.
>>>>>
>>>>> There's no indication as to why in the Buckminster .log or in the
>>>>> console.
>>>>>
>>>>> Am i correct in the assumption that if
>>>>> org.eclipse.buckminster.core.commands.Build finds any error
>>>>> markers, the
>>>>> script execution is stopped?
>>>>>
>>>> That is correct. It's assumed that an error should terminate the
>>>> script.
>>>>
>>>>> If so, is there a way to avoid this, without removing the code causing
>>>>> the errors?
>>>>>
>>>> The only way to work around this is to invoke the perform in another
>>>> script.
>>>>
>>>> Why would you continue and build a p2 site when the build is in error?
>>>>
>>>> - thomas
>>>>
>>>>
>>>
>>>
>>
>
>
Re: Buckminster script execution stops after 'build -c' [message #1058056 is a reply to message #1057990] Fri, 10 May 2013 16:40 Go to previous message
Sakis Kotisis is currently offline Sakis Kotisis
Messages: 31
Registered: July 2009
Member
That i understand.

However, in the case of Geppetto there is no need for a platform specific
PDE build.
I.e., you don't have any source importing classes from (for example)
org.eclipse.swt.internal.cocoa.*

On Fri, 10 May 2013 14:13:43 +0300, Henrik Lindberg
<henrik.lindberg@xxxxxxxx> wrote:

> We build Geppetto using current platform when doing this from within the
> IDE (for the purpose of testing what you have in the workspace). On our
> Jenkins we have a buildjob that builds for all platforms - it produces a
> p2 repo and ready-to-run zips, one per supported platform.
>
> - henrik
>
> On 2013-09-05 20:25, Sakis Kotisis wrote:
>> I took a second look at how the geppetto project is being built.
>> If my understanding is correct, the project build occurs within the
>> bmscript.
>>
>> Namely, the following script line:
>> build --thorough
>>
>> Upon receiving this command Buckminster executes a PDE build __ for the
>> platform it currently runs on __.
>>
>> In my case a separate PDE build is required for the different platforms
>> being built.
>> When building with headless PDE from Ant scripts this is achieved by
>> configuring the different platforms:
>>
>> configs=win32, win32, x86 & \
>> macosx, cocoa, x86_64 & \
>> macosx, cocoa, x86 & \
>> linux, gtk, x86
>>
>> Scouring the newsgroup I found the following thread more or less talking
>> about the same issue:
>> http://www.eclipse.org/forums/index.php/m/555879/
>>
>> The solution outlined there is to include the environment within the
>> target definition.
>> This means importing one target definition per platform, which is time
>> consuming.
>>
>> Is there really no other way to define a cross-build?
>>
>> On Wed, 08 May 2013 20:15:58 +0300, Henrik Lindberg
>> <henrik.lindberg@xxxxxxxx> wrote:
>>
>>> You can look at how we do things in the project cloudsmith/geppetto
>>> @github - we build an RCP (an IDE) for multiple platforms using
>>> Buckminster. (Buckminster setup by Thomas Hallgren ;-))
>>>
>>> There are some special stuff in there since we build certain parts for
>>> non OSGi environments as well.
>>>
>>> Regards
>>> - henrik
>>>
>>> On 2013-08-05 17:21, Sakis Kotisis wrote:
>>>> Thanks for the help Thomas.
>>>>
>>>> You are right of course, i need this bundle built to have a working
>>>> RCP
>>>> app.
>>>>
>>>> Let me explain the situation fully.
>>>>
>>>> My product has to be built for several platforms.
>>>>
>>>> To this date it is being built cross-platform on win32 through the PDE
>>>> ant scripts using the delta pack.
>>>> I.e. PDE is able to build for platforms different from the one where
>>>> the
>>>> build is executed.
>>>>
>>>> It's the equivalent of choosing "Export for multiple platforms" when
>>>> exporting from the IDE.
>>>>
>>>> Now, a single plug-in "c.s.p.p.macosx" in the product, is importing
>>>> code
>>>> from the fragment "org.eclipse.swt.cocoa.macosx".
>>>> Naturally, this causes an error when building this particular plug-in
>>>> for any other platform.
>>>> However, this plug-in is included in it's feature "c.s.p.cl" with
>>>> os="macosx",ws="cocoa".
>>>>
>>>> Is there a way to perform a multi-platform cross-build using
>>>> Buckminster?
>>>>
>>>> On Thu, 02 May 2013 08:54:25 +0300, Thomas Hallgren <thomas@xxxxxxxx>
>>>> wrote:
>>>>
>>>>> On 2013-05-01 19:02, Sakis Kotisis wrote:
>>>>>> Hi,
>>>>>>
>>>>>> I'm running headless Buckminster to build an update site with the
>>>>>> following script as argument:
>>>>>>
>>>>>> importtargetdefinition -A
>>>>>> 'F:/_Workspaces/bucky-pg/c.s.p.site/mirror.target'
>>>>>> import 'C:/Users/tkotisis/workspace4/c.s.p.site/site.cquery'
>>>>>> build -c
>>>>>> perform -D target.os=win32 -D target.ws=win32 -D target.arch=x86 -D
>>>>>> cbi.include.source=false c.s.p.site#site.p2
>>>>>>
>>>>>> Build action is called, the bundles are being built and some build
>>>>>> errors and warnings appear in stderr.
>>>>>>
>>>>>> But then Buckminster stops (!), not calling the 'perform' action.
>>>>>>
>>>>>> There's no indication as to why in the Buckminster .log or in the
>>>>>> console.
>>>>>>
>>>>>> Am i correct in the assumption that if
>>>>>> org.eclipse.buckminster.core.commands.Build finds any error
>>>>>> markers, the
>>>>>> script execution is stopped?
>>>>>>
>>>>> That is correct. It's assumed that an error should terminate the
>>>>> script.
>>>>>
>>>>>> If so, is there a way to avoid this, without removing the code
>>>>>> causing
>>>>>> the errors?
>>>>>>
>>>>> The only way to work around this is to invoke the perform in another
>>>>> script.
>>>>>
>>>>> Why would you continue and build a p2 site when the build is in
>>>>> error?
>>>>>
>>>>> - thomas
>>>>>
>>>>>
>>>>
>>>>
>>>
>>
>>
>


--
Sakis Kotisis

Senior Software Engineer
SciGen Technologies, S.A.
Previous Topic:Strange behavior with cspex file
Next Topic:ERROR [0002] : Artifact is a folder but the repository is an archive or remote location.
Goto Forum:
  


Current Time: Wed Oct 01 08:14:50 GMT 2014

Powered by FUDForum. Page generated in 0.02889 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software