Building against Snapshot
Oktober 3, 2009 1 Kommentar
Today i’m removing my openSUSE:Factory/standard and replace it with openSUSE:Factory/snapshot. Why? If i have in my Project the standard Tree, and anything changes in standard, then all Repositories who having the standard tree will be rebuilded. So we have an Option to change to snapshot. The snapshot has an lower update frequency, and so we can save Time and Equipment. Would you like to change too? Just follow the next Lines.
Magnus started recently a discussion on the openSUSE packaging mailing list (thread start is archived here) where he stated that it takes very long for him to build packages for openSUSE’s Factory distribution since the packages are only build once the complete distribution has been built.
The solution that was proposed – and which should be used in general – is to build against the snapshot repository of openSUSE:Factory.
openSUSE:Factory (as Factory is called in the openSUSE Build Service (OBS)) has the following repositories in OBS:
- standard: This one is constantly changing. Packages get checked into this repository and then the whole dependencies get rebuilt.
- snapshot: Is a shadow copy of standard that is currently created manually before major changes are checked into Factory. We’re still evaluating on how to create snapshot in the best way.
- staging: This is used for testing of packages before submitting to standard. It’s used for testing those packages like gcc, rpm and automake that are known to cause problems, so that all these can be fixed before openSUSE:Factory gets built.
- images: This is an internal project for building the ftp distribution and the ISO images, it depends on the packages in the standard repository.
So, if your project builds against snapshot, you will have faster turn-around times since the packages don’t need to wait for a complete rebuild of the distribution. If you do that you risk a breaking build when submitting to openSUSE:Factory proper (because up until then you built against a slightly older version), but at least you can get work done.
The advice really is to build against snapshot due to the faster turn-around times and also since it distributes the load better for OBS.
Important: Please build either against snapshot or standard but not against both to save build power of our build farm.
How to build against snapshot?
If you branch of your project from a project that builds already against snapshot, your packages will build against it as well. In general, with branching you get all the distributions to build against that the original ones had, so it’s good practice to review what you’re building against.
If you want to replace standard by snapshot for your project do something like Vincent did:
$ osc meta prj -e home:vuntz:branches:GNOME:Factory
and change the line:
<path repository="standard" project="openSUSE:Factory"/>
<path repository="snapshot" project="openSUSE:Factory"/>
You can also add the repository manually in the web interface of OBS: Go to “add repositories”, click on “Advanced” and then select “openSUSE:Factory/snapshot” in the selection list.
Originally from Andreas Jaeger in http://lizards.opensuse.org/2009/09/02/building-against-opensusefactory/ Thanks 🙂