On Thu, Aug 16, 2007 at 10:13:18AM +0200, Adrian Schröter wrote:
On Thursday 16 August 2007 02:38:27 wrote James Oakley:
I had some trouble with the obs_mirror_project in the new build of obs-server, so I rewrote it in Python. It's called exactly the same way but it differs in the following ways:
- Uses the osc library directly to perform api operations
- Instead of downloading every single RPM on every invocation, it only downloads RPMs that have not already been downloaded
- RPMs are downloaded to a temporary directly and moved to the local project once completed. If a download fails, there won't be any half-downloaded RPMs causing buildroot failures
- RPMs that are no longer on the api server are cleaned up
- Download progress is displayed
great stuff :)
I think I will drop my ruby script and package yours instead ...
Would a GPLv2 license okay with you ? Would it be okay when we relicense it at any later point under a later GPL license ?
Peter, do you think that this might become part of osc instead of the obs packages ?
Yes. It could also become a osc subcommand I think. In fact, I have started looking at it 20 minutes ago, and I'm trying to add the missing hooks to the osc core module to make this task easier. For example, a "binary list" command has been on the TODO for a while. I'm browsing https://api.opensuse.org/apidocs/, to find possible use cases and to come up with a user interface. There seem to be several possible ways to list binaries (per package vs. repository wide, for instance). For this obs script, maybe it would be interesting to have a (more general) osc command to download/mirror all binaries of a project into a directory. An obs-specific wrapper could then look pretty simple. Peter -- "WARNING: This bug is visible to non-employees. Please be respectful!" SUSE LINUX Products GmbH Research & Development