On Thu, 2016-02-25 at 05:42 -0500, Honza Å ilhan wrote:
> From: "Josh Boyer" <jwboyer(a)fedoraproject.org>
> Could you please elaborate (perhaps in a separate thread) the full
> desire and requirements behind rewriting DNF into C? The first
> link
> in your email says the initiative is started, but it doesn't really
> explain why aside from the libhif step.
Having DNF in C is desire of many users. If you could notice the
thread
from Courtney Pacheco, she did investigation [1] to minimize the
Fedora
image (which is bigger than in other distros). The DNF will probably
be
taken out of that image. Mostly because of the Python requirement.
It appears the requirement is not so much
"rewrite DNF in C"
as
"rewrite DNF in a language that can be compiled to efficient machine
code, which doesn't require a large runtime support library, and which
can interoperate with C".
I think I'm only semi-serious here [1], but have you considered Rust?
[1] e.g. it's not yet in Fedora.
By dropping Python requirement, it could speed up the the process
start-up
(no need to load Python libs then). That is also the reason why PK
does not
call DNF Python API from C and rather have a special library in C
instead.
> I can think of many reasons for doing this, but it would probably
> be
> better coming from the development team doing the work. It would
> also
> be nice if you could explain how the recently proposed and accepted
> system-python Change plays into this long term. I believe DNF was
> one
> of the targeted "system tools" that would use it, so if that isn't
> really going to be the case it would be good to know.
Gradually DNF is moving more code into C but still a lot of code is
in
Python and plugins are written in Python too. Having rewritten DNF
into
C would take a few years while maintaining the UX compatibility and
still support Python API for plugins.
The main message was to inform the consumers of hawkey to prepare
their
apps for the libhif change.
Honza
[1]
https://gist.github.com/iamcourtney/b8709ed897b7ecc9ac0f