Fork me on GitHub

pkgdiff

A tool for visualizing changes in Linux software packages

Package Changes Analyzer (pkgdiff) is a tool for visualizing changes in Linux software packages (RPM, DEB, TAR.GZ, etc). The tool is intended for Linux maintainers who are interested in ensuring compatibility of old and new versions of packages.

The tool is developed by Andrey Ponomarenko: https://abi-laboratory.pro/

Table of Contents

Downloads

All releases can be downloaded from this page.

Latest release: pkgdiff-1.7.2.tar.gz

Read-only access to the latest development version:

 git clone git://github.com/lvc/pkgdiff 

License

This program is free software. You may use, redistribute and/or modify it under the terms of the GNU GPL

Supported Platforms

GNU/Linux, FreeBSD, Mac OS X

Dependencies

Requires: Suggests:

Installation

The tool is ready-to-use after extracting the archive.

You can also use a Makefile to install the tool into the system:

 sudo make install prefix=PREFIX [/usr, /usr/local] 

This command will install a pkgdiff program to the PREFIX/bin system directory and private modules into the PREFIX/share.

Usage

 pkgdiff PKG1 PKG2 

The HTML report will be generated to:

 pkgdiff_reports/<pkg>/<v1>_to_<v2>/changes_report.html 

Examples

Compare 0.4.1 and 0.8.1 versions of libqb SRPM-packages:

 pkgdiff libqb-0.4.1-2.fc15.src.rpm libqb-0.8.1-2.fc16.src.rpm 

The HTML report will be generated to:

 pkgdiff_reports/libqb/0.4.1_to_0.8.1/changes_report.html 

Compare 0.10.23 and 0.10.32 versions of gstreamer TXZ-packages:

 pkgdiff gstreamer-0.10.23-i486-1.txz gstreamer-0.10.32-i486-1.txz 

The HTML report will be generated to:

 pkgdiff_reports/gstreamer/0.10.23-i486-1_to_0.10.32-i486-1/changes_report.html 

Compare 0.3.4 and 0.4.0 versions of libssh TAR.GZ-packages:

 pkgdiff libssh-0.3.4.tar.gz libssh-0.4.0.tar.gz 

The HTML report will be generated to:

 pkgdiff_reports/libssh/0.3.4_to_0.4.0/changes_report.html 

Compare 1.10.2 and 1.12.2 versions of cairo DEB-packages:

 pkgdiff libcairo2-dev_1.10.2-6.1_i386.deb libcairo2-dev_1.12.2-1_i386.deb 

The HTML report will be generated to:

 pkgdiff_reports/libcairo2-dev/1.10.2-6.1_to_1.12.2-1/changes_report.html 

Compare 2.24.1 and 2.28.8 versions of glib RPM-packages:

 pkgdiff libglib2.0-devel-2.24.1.i586.rpm libglib2.0-devel-2.28.8.i586.rpm 

The HTML report will be generated to:

 pkgdiff_reports/libglib2.0-devel/2.24.1_to_2.28.8/changes_report.html 

Adv. Usage

For advanced usage, see output of --help option:

 pkgdiff --help 

If you need to analyze a group of packages then you can create an XML-descriptor of this group (OLD.xml file):

<version>
    2.24.1
</version>

<group>
    libglib
</group>

<packages>
    libglib2.0-devel-2.24.1-1mdv2010.1.i586.rpm
    libglib2.0_0-2.24.1-1mdv2010.1.i586.rpm
</packages>

And then pass XML-descriptors of old and new versions of a group to the tool:

 pkgdiff OLD.xml NEW.xml 

The HTML report will be generated to:

 pkgdiff_reports/<group>/<v1>_to_<v2>/changes_report.html 

Adv. Examples

Compare 2.3.12 and 2.4.5 versions of libfreetype6 group of RPM-packages:

 pkgdiff 2.3.12.xml 2.4.5.xml 

File 2.3.12.xml:

<version>
    2.3.12
</version>

<group>
    libfreetype6
</group>

<packages>
    libfreetype6-2.3.12-1mdv2010.1.i586.rpm
    libfreetype6-devel-2.3.12-1mdv2010.1.i586.rpm
</packages>

File 2.4.5.xml:

<version>
    2.4.5
</version>

<group>
    libfreetype6
</group>

<packages>
    libfreetype6-2.4.5-2-mdv2011.0.i586.rpm
    libfreetype6-devel-2.4.5-2-mdv2011.0.i586.rpm
</packages>

The HTML report will be generated to:

 pkgdiff_reports/libfreetype6/2.3.12_to_2.4.5/changes_report.html 

Bugs

Please post your bug reports, feature requests and questions to the issue tracker.

Maintainers

The tool is developed by Andrey Ponomarenko.

Changes

Version 1.8 (January 28, 2017)
Bug Fixes
Version 1.7.2 (March 18, 2016)
New Features Bug Fixes
Version 1.7.1 (December 11, 2015)
New Features Bug Fixes
Version 1.7.0 (October 18, 2015)
New Features
Version 1.6.4 (September 08, 2015)
Bug Fixes
Version 1.6.3 (November 05, 2014)
New Features Bug Fixes
Version 1.6 (June 07, 2013)
New Features
Version 1.5 (April 04, 2013)
New Features Bug Fixes
Version 1.4.1 (December 14, 2012)
Bug Fixes
Version 1.4 (October 25, 2012)
New Features