Skip to main content

config_diff_soso

Copies the original configuration files and your changes with a diff.

WHAT DID I DO!!!?

If you're like me, you make changes to your Debian/Ubuntu system as needed, and don't always keep a good record of what you have done.

When I upgrade to a newer version of my operating system, I want to make the same changes to the new install. That's what prompted me to create this script.

Now I can do a new installation with the newest package maintainer's version of all the config files, and then go through the changed files and make the fixes on the new install.

Install

The usual pip installation:

$ pip install config_diff_soso

...or...

$ python3 -m pip install config_diff_soso

Usage

$ config-diff-soso

What it does

This script uses debsums to extract the package maintainer's config file for every package on your system, and compares it to the version on your machine, saving a copy of each with another file showing the differences between them.

It creates a directory in the current working directory with the following template:

<host name>-config-diff-<date>

Inside this directory will be created subdirectories which mirror the directories and file name of each configuration file. The filename will be stored as the final directory in the tree, with one file each for the original package maintainer's version, your version, and a "diff" of the changes between them.

For example, using "/etc/default/grub":

Original path:

etc
└── apache2
    └── apache2.conf

The differences will be saved as:

etc
└── apache2
    └── apache2.conf
        ├── diff
        ├── original
        └── yours

Effects

This script makes no changes to your system, only records what you have already changed.

It needs sudo rights to run some commands. Check the script before using it to make sure it doesn't do anything malicious. I would. Run it as a regular user, and you'll be prompted for your password when needed.

It takes a while for debsums to extract all the packages. Be patient. If you upgrade a system with a lot of changes to system configuration files, it'll be worth it.

The script downloads .deb files from your configured apt repository, if they do not already exist. If you want to make sure that you download the most recent versions, run "sudo apt-cache clean" before running this script.

Metadata

Release files for config-diff-soso 1.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for config-diff-soso 1.1.0
File Size Uploaded Provenance
config_diff_soso-1.1.0.tar.gz 15.9 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for config-diff-soso 1.1.0
File Interpreter ABI Platform
config_diff_soso-1.1.0-py2.py3-none-any.whl Python 2, Python 3 none any Details

Total release size: 32.7 kB

Release files / config_diff_soso-1.1.0.tar.gz

Download URL config_diff_soso-1.1.0.tar.gz
Size 15.9 kB
Tags Source
SHA-256 checksum
How to use checksums
249306ff7c268f597b1f466233a925b1c62535d035c15dd876cfee6ab1721498
BLAKE2b-256 checksum
How to use checksums
c4ea2f98b28acb1684bd7c6ab4e1cc717e85d71f2d122c95a1a5c4c37731656a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.4

Release files / config_diff_soso-1.1.0-py2.py3-none-any.whl

Download URL config_diff_soso-1.1.0-py2.py3-none-any.whl
Size 16.8 kB
Tags Python 2 Python 3
SHA-256 checksum
How to use checksums
6e3ce014ffae6e048f9e9fb1f3b7c334f3118d3e836ba559489b67ea1a21636b
BLAKE2b-256 checksum
How to use checksums
b7078c7a20803a45607c5f1c082525110e7494c94ce1ad94ca6d25a1ef5f8d67
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.4

Security for config-diff-soso 1.1.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page