I have been fiddling with rpms for quite a long time (building them,parsing them). I have a proposed solution for rpm patching.
I have submitted by application at Google School of Code. I just wanted to know if the below method is feasible and flawless.
The solution:
----------------------------------------------------------------------------------------------------------------------------------------------------
RPMs contain easily parsable meta-data (headers),
small executable code, gzipped cpio ball of the files to be installed.
When a package is upgraded only some files may be
changed/deleted/added. This can be found just by a diff.
This diff-ed output along with the changes in
meta-data,executable code are stored in quasi-rpm. The quasi-rpm would
also store the MD5SUM of i/p and o/p rpms to eliminate wrong version
and integrity problems
The user applies this quasi-rpm to his existing rpm,
to get an rpm, that is as good as the required new rpm. Then he can do
a 'rpm -U' on the new rpm to install it.
This method ensures
1. No insane dependency confusions like the patch rpm remaining installed when the base rpm has been removed.
2. High integrity guaranteed.
----------------------------------------------------------------------------------------------------------------------------------------------------
Why would the patching mechanism be only experimental. This method can
ensure problem-free updating. This would certainly benefit not on Open
Office, but the entire Open Source Community.
