Web lists-archives.com

Re: sparse job, was Re: [PATCH] test-xml-encode: fix sparse NULL pointer warnings

On 28/01/2019 16:10, Johannes Schindelin wrote:
> Hi Ramsay,
> On Sat, 26 Jan 2019, Ramsay Jones wrote:
>> Signed-off-by: Ramsay Jones <ramsay@xxxxxxxxxxxxxxxxxxxx>
>> ---
>> Hi Johannes,
>> If you need to re-roll your 'js/vsts-ci' branch, could you please
>> squash this into the relevant patch (commit af7747e7c7 ("tests: optionally
>> write results as JUnit-style .xml", 2019-01-23)).
> Certainly!
> BTW would you be interested in working with me on an Azure Pipeline that
> runs `sparse` on all of Junio's branches? (I am now pretty proficient with
> building a software package in one Azure Pipeline, publishing it as a
> build artifact, then consuming it from another Azure Pipeline, so I would
> build the `sparse` package as an Ubuntu package and offer it as a build
> artifact.)

Happy to help, if I can.

Looking at the sparse wiki [1] we can see that the most recent
release of sparse is v0.6.0, released on December 26th 2018
(just too late for crimble!).  This is the release you will
need to use for more recent Linux distros (eg. fedora 27+,
Ubuntu 18.04, 18.10, etc).

The releases are available from [2] as a compressed tar-ball
using '.gz' or .'xz' compression. eg. sparse-0.6.0.tar.gz
(there is also a sparse-0.6.0.tar.sign).

[The git repo is at [3], BTW].

[I was a little surprised that Linux Mint 19.1 (based on Ubuntu
18.04) has v0.5.1 - Debian unstable has v0.5.2, but both of those
are just a little too old for use with git on recent Linux.]

It seems Ubuntu has split sparse into two packages, the main
'sparse' package, which contains the command-line programs and
a 'sparse-test-inspect' package, which contains the 'test-inspect'
GUI program (and so depends on GTK).

The dependencies for the 'sparse' package includes: libc6 (>= 2.14),
libllvm4.0 (>= 1:4.0~), libxml2 (>= 2.7.4), perl:any

However, for git, we only need to build 'cgcc' and 'sparse', which
means we can forget about libxml (only used for c2xml), and libllvm
(only used for sparse-llvm/sparsec/sparsei). Also, I'm not sure what
perl is doing there ...

Note that these dependencies (along with the dependent programs) are
optional and I can happily build sparse without them:

  $ make clean
  Makefile:124: Your system does not have libxml, disabling c2xml
  Makefile:146: Your system does not have gtk3/gtk2, disabling test-inspect
  Makefile:179: Your system does not have llvm, disabling sparse-llvm

Hmm, I've never built an Ubuntu package before, so I don't know
exactly what would be required (spec file etc.) to create a PPA.
But I suspect you are not talking about doing that, right?

Ramsay Jones

[1] https://sparse.wiki.kernel.org/index.php/Main_Page
[2] http://www.kernel.org/pub/software/devel/sparse/dist/
[3] git://git.kernel.org/pub/scm/devel/sparse/sparse.git