[Rpm-ecosystem] Photon and dnf

Jan Zelený jzeleny at redhat.com
Wed Apr 22 07:18:56 UTC 2015

On 21. 4. 2015 at 20:15:31, Krishna Ganugapati wrote:
> Hello all,
> I wanted to introduce myself - my  name is Krishna Ganugapati and I work on
> the newly released VMware Photon Linux distribution.  Photon is a really
> small  RPM based distro starting at around 70 packages and extensible
> through YUM via yum repositories.
> Even though the focus of  Photon is to function as a container host runtime,
> we felt that the rpm package model is hugely relevant and given that it is
> the established standard, we felt its the only way to go forward.
> For package management on top of rpm, we started with yum and dnf, but one
> of our concerns was that yum and dnf require python and we got a fair
> amount of feedback requesting that we don't have a python system on the
> smallest images.
> So we decided to write a C version of dnf - a  tiny dnf. We also thought it
> would be worthwhile if we could create a C API that other applications
> could write to so we wrote libtdnf. The tdnf utility basically calls the
> libtdnf shared library which itself calls librepo and libhawkey.
> tdnf is pretty small - the whole thing is about 6K lines of C code .  It
> doesn't have all of the extensible Python plugin support that dnf and yum
> do, and in a sense is like the vanilla yum and dnf. We hope to
> systematically implement all of the commands that exist in dnf today.
> We hope to  integrate tdnf with  rpm-ostree as well because we think it is a
> well-thought out model for atomic updates
> We've open sourced it under the LGPL 2.1 license for libtdnf and the GPL 2.0
> license for tdnf. The source can be found here
> https://github.com/vmware/tdnf
> By the way, Photon will always support the full dnf and yum as standard - we
> want to make sure that tdnf is 100% compatible with dnf and yum.
> We hope the community will view this positively and we would appreciate any
> feedback on how best to engage. tdnf is built with standard tools and
> should be very easily portable on to Fedora, Centos, RHEL and SuSe if there
> is interest.

Hello Krishna,
your timing is impeccable. We discussed the long term plan to move dnf from 
Python to C just yesterday. I hope we can use this shared interest to a mutual 

One thing I'd like to ask you is to consider using existing libraries even on 
the higher level. Your libtdnf sounds quite similar to Richard Hughes's 
libhif[1]. One of the things we discussed yesterday was the possibility of dnf 
starting to use some of the libhif's functionality. The idea behind it is to 
incrementally get rid of multiple implementations of software management 
business logic. I think it would make a lot of sense for all three projects 
(dnf, tdnf, packagekit) to use one underlying library instead of two or three 
different ones.

In any case we appreciate your contributions and I hope we will be 
collaborating more closely in the future. Using one library underneath and 
thus improving it in the process would be a great start of that collaboration.

[1] https://github.com/hughsie/libhif


More information about the Rpm-ecosystem mailing list