On 08/08/18 19:39, Adrian Schröter wrote:
Hi,
I read on the wiki that you look for some solution how to avoid additional build time due to tar ball recompression.
One way to do it is like in science:unstable/FreeCAD package. It builds directly in the git tree and is just packaging the _service file in src.rpm's. It would have a > 100MB tar.xz file otherwise inside.
This us speeding up the build a lot.
The disadvantage of that is that you can not do an offline build.
And you can't get the code anymore, if the upstream scm server disappears _and_ build.opensuse.org is not working for you anymore.
Therefore the distribution source tree alone would not be enough anymore for saitisfing the GPL. Either the upstream project or the OBS instance is required as well.
Not sure if this is good enough for you, but I wanted to mention it at least.
How does it look in practice?
_service file has only the obs_scm and set_version service active.
FreeCAD.spec is just packaging the _service file instead of the tar ball.
%setup is skipping tar ball extraction via %setup -q -b %_sourcedir/%name-%version -T -D
Have a look in the example here, you find this also switchable via build_tar_ball rpm macro:
https://build.opensuse.org/package/show/science:unstable/FreeCAD
(and yes, someone broke hdf5 stuff again, but does not matter here)
bye adrian
My team is also interested in faster build on obs, in the coming weeks i'll be looking at finishing a patchset that will allow rpmbuild to do all the post build steps in parallel, ie building multiple sub rpm's at once given that most of our larger packages ship multiple rpm's this should also help speed up many builds, I can't remember if the src and debug rpm's will also be built in parallel. -- Simon Lees (Simotek) http://simotek.net Emergency Update Team keybase.io/simotek SUSE Linux Adelaide Australia, UTC+10:30 GPG Fingerprint: 5B87 DB9D 88DC F606 E489 CEC5 0922 C246 02F0 014B