On Wed, May 21, 2008 at 05:49:43PM +0200, Marcus Hüwe wrote:
On 2008-05-09 20:15:25 +0100, Carlos Goncalves wrote:
Hi,
As requested by darix, I'm emailing oS-buildservice to ask for a new osc feature - capability to build a whole project (eg. KDE:KDE4:UNSTABLE:Desktop) with one single command.
Currently there is only possible to do things like $ osc build PLATFORM ARCH BUILD_DESCR
Which restricts builds to a given PRJCT:PGK so if one wants to build a whole project the following won't work: $ osc build PLATFORM ARCH PROJECT
With my osc feature request something like it would be possible.
For what I have understood, darix pointed out that to do that some API changes/exposing would be needed or so, which seems to concern him a little.
Hmm I think we need one additional api call to retrieve the buildorder of a project. This new call could look like this:
'POST:/build/$project/$repository/$arch/_buildorder'
Then we could upload all spec files to the backend, the backend parses all specs and calculates the buildorder. Calculating the buildorder isn't too hard but the real problem is how to transfer all the spec files to the backend?
There actually is kind of a plan how this bit could be solved. A long time ago, we planned to complete the local build support by sending (from osc to the backend) the requires and provides of locally preferred packages (so the api can take that into account). We would actually send the local spec, plus provides and requires of the other packages cpio'ed to the api. (I actually implemented the cpio part at the time) I'm not sure if this is already enough to calculate the build order, but if not it could probably achieved the same way.
I attached a potential method to calculate the buildorder (it retrieves the spec files and other needed data in one big xml file) (note: this method isn't complete, it should just show that the whole thing shouldn't be too hard to implement).
So once the backend generates a buildorder xml file we can start to tweak the clients to build a complete project.
Any opinions?:)
Yes, it would be quite interesting. Just for the record, if the build order is known, something like for i in pkg1 pkg2 pkg3; do osc build ..... -k /tmp/keepdir -p /tmp/keepdir done works around the lack of the functionality. Peter -- "WARNING: This bug is visible to non-employees. Please be respectful!" SUSE LINUX Products GmbH Research & Development