[Rpm-ecosystem] Feaders rewritten in Rust using Libhif

Pavel Odvody podvody at redhat.com
Wed Apr 20 10:02:51 UTC 2016


On Tue, 2016-04-19 at 16:05 -0400, Colin Walters wrote:
> On Tue, Apr 19, 2016, at 03:30 PM, Pavel Odvody wrote:
> > 
> > Hello,
> > 
> > this is a reimplementation of the Feaders[0] project written in
> > Rust.
> > In short, Feaders is an application that can scan your C/C++
> > project
> > for #include directives and figure out which package from
> > distribution
> > provides the included headers.
> I would instead scan the build system metadata such as configure.ac
> and the like.
> Those tend to reference e.g. pkg-config files, which in turn are
> already 
> Provides: of the relevant -devel package.
> 
> https://fedoraproject.org/wiki/PackagingDrafts/PkgConfigBuildRequires
> 

That is on my radar, but from experience, people tend to #include
*much* more than they put into CMakeList.txt or configure.ac -- even
libhif itself doesn't list librepo, GObject, GObjectIntrospection and
others in CMakeList.txt (or there's no version checks) and you just
need to jump back and forth to figure out what is actually needed when
you're working with some minimal build environment like Docker base
image.

> To do this really right, you need to take as input the configure
> arguments,
> so e.g. if --disable-selinux is provided, you don't require
> selinux.  This
> matters most when doing cross builds or self-hosted system
> bootstrapping.
> 
> Also, to make this all work if you think about it, you need to go
> to generating spec files after scanning the upstream source code
> (which
> IMO is indeed the right way to do things).

My use-case for this is to get stuff working in a container, for
projects that don't have well-defined build systems, say you want to
install some Python package that includes a bunch of .c and .h files.
The good thing is that scanning just the #include statements gives you
exhaustive list of everything that might be needed so you can get it
working fast and bisect as needed.

> _______________________________________________
> Rpm-ecosystem mailing list
> Rpm-ecosystem at lists.rpm.org
> http://lists.rpm.org/mailman/listinfo/rpm-ecosystem

-- 
Pavel Odvody <podvody at redhat.com>
Sr. Software Engineer - EMEA ENG Developer Experience
5EC1 95C1 8E08 5BD9 9BBF 9241 3AFA 3A66 024F F68D
Red Hat Czech s.r.o., Purkyňova 99/71, 612 45, Brno

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: This is a digitally signed message part
URL: <http://lists.rpm.org/pipermail/rpm-ecosystem/attachments/20160420/177fc223/attachment.asc>


More information about the Rpm-ecosystem mailing list