Lintian task implementation discussion
I've been reading !300 (merged) and started thinking how to implement the Lintian task.
I might be re-inventing the wheel or inventing the wrong wheel. I'd like to discuss what I've thought, ask some questions and get some opinions.
I see that we have the option target_distribution (so lintian will run in stable/testing/unstable) and maybe with binary+source packages or unrelated packages (I am still not sure of the complexity of the "unrelated packages" as mentioned in !300 (diffs) but we can leave this for another moment).
I'm not super-super familiar with schroot (I use it but to certain extent, and probably not the best way that can be used). I'm having some problems with sessions... I might ask on IRC at some point if I cannot fix them and we want them (I guess that @enrico is familiar with them).
Since the workers will likely have chroots for stable/testing/unstable for the -sbuild we could make Lintian class in debusine to execute (adjust paths, filenames, temp directories if we want, etc.) something like:
tar -cvf - -C /home/debian qnetload_1.3.1-1_amd64.deb | schroot -c chroot:stable-amd64-sbuild -- bash -c "apt-get -y install lintian; mkdir temp; cd temp; tar -xf -; lintian *.deb"
Questions:
- Is this what some of you had in mind, or would do?
- Should we make workers create (via ansible) a specific chroot for lintian? Or using the -sbuild ones is ok?
- If we want specific lintian schroots: do you have any recommended way to create schroots with lintian installed? In my slow testing VPS (1 GB RAM, 1 CPU), "apt-get install lintian" takes 27 seconds. Is it worth improving it on the first implementation?
- I also thought of using sessions (create session, install lintian, keep using this session for each lintian job in this worker). But I prefer to not have to manage sessions; and I like to not have states between runs. Even if it's only for lintian.
Thanks for any answers or links to look, projects to inspire.