[opensuse-packaging] [INFO] New setup for openSUSE:Factory/snapshot
Dear Tumbleweed hackers and devs, I just finished, together with Adrian Schröter (Thank you!), the new setup for openSUSE:Factory/snapshot. * Why did we change the setup (what problem do we solve) openSUSE:Factory/snapshot promised to offer a stable target to build against. Unlike openSUSE:Factory/standard it is not being 'built' and projects building against it are thus not 'blocked' while waiting for the the parent project to finish. But some changes are always happening project-wide, not repository wide. So for example when a package is being deleted from openSUSE:Factory, the binaries were removed also from /snapshot. For delete requests we had developed a 'complex process' trying to eliminate this. The process worked 'fine', but it had gaps: if a package used to have multiple spec files (which resulted in linked packages to the main name) and then dropped some of those spec files, the linked package containers needed to be cleaned up. And this bled directly into /snapshot (just recently we had this case with lvm2/device-mapper again). The new setup we now implemented no longer suffers from this issue. * What changed (background info) Instead of copying binaries from openSUSE:Factory/standard to /totest (when the snapshot moves to QA) and then to /snapshot (when the snapshot is being published), we changed the setup to no use Download On Demand - i.e. if your package builds against openSUSE:Factory/snapshot, OBS will query the repository on download.opensuse.org and download the needed binaries as they are used. For OBS, this means we save quite some disk space: instead of storing three complete sets of RPMs, we now store only one set (/standard, where we build) PLUS the packages that were needed in order to build against them (only a subset is neaded, as many leaf packages are never pulled into the buildroots and thus do not ever get downloaded by OBS). This is of course just a nice side-effect - and was in no way a driver for the change * What do you as a user need to do? Nothing. The change is completely transparent to the OBS user base. Well, almost completely: there are several packages that are not published as part of the snapshot, as they are only meant to bootstrap the distro and improve build performance a tad. Those are the -bootstrap and -mini packages. We don't publish them in the repository, as they all contain a Requires on this-is-only-for-build-envs - which no package provides (OBS is instructed to ignore those deps). If, for some (most likely invalid!) reason, your package would buildrequire any such -mini package, it will now be 'unresolvable'. The correct fix there will be to change the BuildRequires to asymbol shared between the -mini package and the real package (not the non-mini package name, as this would destroy the wins achieved by using the -mini to build the distro). A typical example could be for example systemd-mini, which should be pkgconfig(systemd) Should you see any issues hat you can't explain and that you think could come from this change, please let me know. Best regards, Dominique
participants (1)
-
Dominique Leuenberger / DimStar