rpmt-py : a new implementation of rpmt (unlike rpm, this tool allows multiple transactions on multiple packages)

"Nicolas Pinto" <[email protected]> Mon, 5 Sep 2005 11:18:08 +0200
Newsgroups gmane.linux.redhat.rpm.python,gmane.linux.redhat.rpm.general
Message-ID <[email protected]>
Dear all,

I am happy to announce the release of the new rpmt tool called rpmt-py =
(rpmt in python).

As you may know, rpmt stands for "Transactional RPM", and it is a tool =
to install, upgrade/downgrade and erase RPM packages in one transaction, =
thus allow package sets with complex dependencies to be processed at =
once while keeping the system in a consistent state.=20
The rpm tool doesn't provide this functionnality so we decided to =
implement it for the needs of quattor (http://quattor.org).
Actually, there is =
https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=3D110905 asking for =
this to be integrated into rpm but unfortunately, no action has been =
done there...

The rpmt tool needed to be re-engineered since the ANSI/C implementation =
was using the rpm library (rpmlib) which is known to be very unstable =
(changing too frequently).=20
In order to avoid to recode rpmt each time there is a new version of RPM =
we decided to search for a more stable interface...=20
We finally found that Python could provide us this interface with its =
binding library named rpm-python.=20
Finally, we have designed and implemented the new rpmt-py tool and =
noticed that no port was needed from the 4.2.x versions of rpmlib to the =
4.3.x and the 4.4.x.
For further information on this re-engineering work you can see the =
following url : http://agenda.cern.ch/fullAgenda.php?ida=3Da054340

rpmt-py is available on CVS =
(http://quattor.web.cern.ch/quattor/software.htm).=20
For more information about rpmt-py and its usage, please check its man =
page, the epydoc developer documentation and the README file.

Please send your feedback to this mailing list (comments, criticisms, =
suggestions, etc).

I wish you a nice day !

Best regards,

Nicolas Pinto