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.0.2

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.0.2
File Size Uploaded Provenance
config_diff_soso-1.0.2.tar.gz 15.6 kB Without provenance Details

Built distribution (wheel)

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

Total release size: 32.2 kB

Release files / config_diff_soso-1.0.2.tar.gz

Download URL config_diff_soso-1.0.2.tar.gz
Size 15.6 kB
Tags Source
SHA-256 checksum
How to use checksums
eaa4a131b34763e5a52f6367ba98c981ddb93ce385119729a914532cd4acff90
BLAKE2b-256 checksum
How to use checksums
73260203e8206949987562d705ab6918d62b951616055b5ed76fca83574e15c8
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.0.2-py2.py3-none-any.whl

Download URL config_diff_soso-1.0.2-py2.py3-none-any.whl
Size 16.6 kB
Tags Python 2 Python 3
SHA-256 checksum
How to use checksums
e65e43711b36428327e268a9e9019a2978f0a4edc4b19a1cb7044fe0b72c1980
BLAKE2b-256 checksum
How to use checksums
c8c76fc7971777e5991f6e9a13cff7bc78cf48a510b33fb45d847d37a5c4e34c
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.0.2

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