This is a simple tool for comparing difference between 2 source RPM packages. It is alternative for using classical rpmdiff and it focuses on showing graphically difference of those 2 packages.
The main purpose of this tool is to be able to review changes made by patches and to keep full context and understanding of what and where changed between 2 packages.
Both packages can even be a lot divergent from each other. The tool still tries to find difference no mather what happened which means it can be used for comparing 2 source packages across 2 different major versions.
It expects 2 URIs for old and new package on command line. There are 2 types of files identification:
-
absolute or relative path in filesystem
-
URLaddress of those files on web.
It unpacks both sprm packages/containers in current directory to data_old and data_new folders. Then it applies patches.
It displays difference between those 2 packages.
-
It compares all files and folders in
meldtool which is designed for comparing difference between 2 files or directory structures in general. -
It compares both spec files
You just need to add this program to your $PATH or add this to you ~/.bashrc
export SFCD_REPO_PATH="<path_to_this_repo>"
alias sfcd="bash ${SFCD_REPO_PATH}/src/srpm-full-context-diff.sh"
Supported ussage: You run program from terminal in the current directory.
There are 2 modes how to get input files:
- You can compare 2 RPMS files stored on Web. It will be downloaded to your local system:
sfcd --old https://fedora.com/srpms/my_older_package.src.rpm --new https://fedora.com/srpms/my_newer_package.src.rpm
- You can compare 2 RPMS files already stored in your file system:
sfcd --old my_older_package.src.rpm --new my_newer_package.src.rpm
-
It requires the program meld for graphical comparision.
-
It should support
BASHversion4.2or newer. -
It uses the local BASH Helper Functions (BHF) framework - local in this context means that it is copied version to this repository withou any other external resource or dependenciest.