On Mon, Aug 8, 2016 at 6:07 PM, Kevin Fenzi kevin@scrye.com wrote:
So, how does this work? Does it make the repo from the sources in lookaside each time? or does it (optionally?) replace the lookaside sources entirely?
I am only vaguely familiar with how rel-eng tools works so I am not entirely sure. However, it seems to me that support for this was implemented on build system side. I've tried scratch-build and it went fine but local mockbuild failed for me, complaining that dist-git repo is missing sources file. Also, buildSRPMFromSCM task that was created for my scratch build contained checkout.log where I could see that build system checked out my git repo and then it created tar archive that was subsequently gzipped and used to build src.rpm (observed in mock_output.log)
Here is workflow from packager perspective, i.e. what was necessary to do to successfully build a scratch build. Packager drops sources file from dist-git repo and instead adds source-repos file. It contains link to git repo and commit hash (on one line separated by white-space), Source0 in spec file then says <package-name>-{%commit_id}.tar.gz (commit_id is usually defined as a macro). Once you've set up git repo with exploded sources and downstream patches on top of that then you can delete all patches from dist-git and from spec file. In my case it was also necessary to update invocation of %setup macro.
We would want to get approval from releng/fesco, but if it's not too much work to add in, it might be fine.
I don't know how much code is needed to implement this, because I couldn't find a commit introducing this functionality internally.
Are there any docs on how it works, etc?
I found an internal wiki page about this feature.
Michal