Name | alpm-conf JSON |
Version |
0.5
JSON |
| download |
home_page | None |
Summary | ArchLinux tool to manage /etc configuration files using git. |
upload_time | 2025-08-17 08:48:17 |
maintainer | None |
docs_url | None |
author | None |
requires_python | <4,>=3.12 |
license | None |
keywords |
archlinux
pacman
alpm
|
VCS |
|
bugtrack_url |
|
requirements |
No requirements were recorded.
|
Travis-CI |
No Travis.
|
coveralls test coverage |
No coveralls.
|
.. image:: images/coverage.png
:alt: [alpm-conf test coverage]
`alpm-conf`_ is an ArchLinux tool to manage /etc configuration files using
``git``. It is implemented as a Python package.
Overview
--------
Packages installed by ``pacman`` whose etc files have been changed in the last
pacman upgrade and that have been changed by the ``root`` user [#]_ in the /etc
directory are tracked in the *master* branch of the git repository created by
the *alpm-conf* ``create`` subcommand.
Using the same algorithm that is used by pacman to select files that are
installed with a *.pacnew* extension [#]_, the ``update`` subcommand
cherry-picks the changes (i.e. merges the changes) made to etc files by the
pacman upgrade into the files on a temporary *master-tmp* branch [#]_ created by
the subcommand as a descendant of the *master* branch. The ``merge`` subcommand
merges the *master-tmp* branch into the *master* branch and copies those files
to the /etc directory. This completes the transaction and the temporary branch
is deleted.
*alpm-conf* also tracks the changes in files that are created in /etc by the
root user such as *netctl* profiles for example. The files must be added first
and commited to the *master* branch by the *alpm-conf* user in order to be
tracked afterward by alpm-conf.
The ``diff`` subcommand is a standalone utility that uses a temporary alpm-conf
repository to print [4]_ the differences between the etc files of installed
pacman package archives and the corresponding files modified in the /etc
directory. The command takes less than 2 seconds to complete on a plain laptop
with 1212 installed packages.
Git commands allow to:
* list the names of files created in /etc by the root user and tracked in the
*master* branch
* print [#]_ the changes made in the *master-tmp* branch before running the
``merge`` subcommand
* print [4]_ the changes made by the last *alpm-conf* ``merge`` subcommand
* print [4]_ the differences between the etc files of installed pacman package
archives and the corresponding files modified in the /etc directory
Documentation
-------------
The documentation is hosted at `Read the Docs`_:
- The `stable documentation`_ of the last released version.
- The `latest documentation`_ of the current GitLab development version.
To access the documentation as a pdf document one must click on the icon at the
down-right corner of any page. It allows to switch between stable and latest
versions and to select the corresponding pdf document.
Requirements
------------
The ArchLinux packages that are required by *alpm-conf* are installed with the
command:
.. code-block:: text
# pacman -Sy git util-linux alpm-mtree python pyalpm python-zstandard
``pyalpm`` and ``alpm-mtree`` are used to access the ArchLinux local
database, ``util-linux`` provides *setpriv* allowing to run *alpm-conf* as root
while running git commands as the creator of the git repository.
Installation
------------
Install the `python-alpm-conf`_ package from the AUR.
Or install *alpm-conf* with pip::
$ python -m pip install alpm-conf
.. _alpm-conf: https://gitlab.com/xdegaye/alpm-conf
.. _Read the Docs: https://about.readthedocs.com/
.. _stable documentation: https://alpm-conf.readthedocs.io/en/stable/
.. _latest documentation: https://alpm-conf.readthedocs.io/en/latest/
.. _python-alpm-conf: https://aur.archlinux.org/packages/python-alpm-conf
.. rubric:: Footnotes
.. [#] Packaged files that are modified by a package scriptlet are considered as
files modified by the root user.
.. [#] See the **HANDLING CONFIG FILES** section in the pacman man page.
.. [#] The ``update`` subcommand also creates the *etc-tmp* and *packages-tmp*
temporary branches. These branches as well as the *etc* and *packages*
branches are used internally by alpm-conf. The three temporary branches
are deleted upon completion of the ``merge`` and ``reset`` subcommands.
.. [#] Or show the changes or differences using an editor such as vim or emacs
if a git difftool has been configured.
Raw data
{
"_id": null,
"home_page": null,
"name": "alpm-conf",
"maintainer": null,
"docs_url": null,
"requires_python": "<4,>=3.12",
"maintainer_email": null,
"keywords": "Archlinux, pacman, alpm",
"author": null,
"author_email": "Xavier de Gaye <xdegaye@gmail.com>",
"download_url": "https://files.pythonhosted.org/packages/36/45/cf6fbf883cf513f9f5318c7fb8bab0ec5bb13f3cb209050edf6000991115/alpm_conf-0.5.tar.gz",
"platform": null,
"description": ".. image:: images/coverage.png\n :alt: [alpm-conf test coverage]\n\n`alpm-conf`_ is an ArchLinux tool to manage /etc configuration files using\n``git``. It is implemented as a Python package.\n\nOverview\n--------\n\nPackages installed by ``pacman`` whose etc files have been changed in the last\npacman upgrade and that have been changed by the ``root`` user [#]_ in the /etc\ndirectory are tracked in the *master* branch of the git repository created by\nthe *alpm-conf* ``create`` subcommand.\n\nUsing the same algorithm that is used by pacman to select files that are\ninstalled with a *.pacnew* extension [#]_, the ``update`` subcommand\ncherry-picks the changes (i.e. merges the changes) made to etc files by the\npacman upgrade into the files on a temporary *master-tmp* branch [#]_ created by\nthe subcommand as a descendant of the *master* branch. The ``merge`` subcommand\nmerges the *master-tmp* branch into the *master* branch and copies those files\nto the /etc directory. This completes the transaction and the temporary branch\nis deleted.\n\n*alpm-conf* also tracks the changes in files that are created in /etc by the\nroot user such as *netctl* profiles for example. The files must be added first\nand commited to the *master* branch by the *alpm-conf* user in order to be\ntracked afterward by alpm-conf.\n\nThe ``diff`` subcommand is a standalone utility that uses a temporary alpm-conf\nrepository to print [4]_ the differences between the etc files of installed\npacman package archives and the corresponding files modified in the /etc\ndirectory. The command takes less than 2 seconds to complete on a plain laptop\nwith 1212 installed packages.\n\nGit commands allow to:\n\n * list the names of files created in /etc by the root user and tracked in the\n *master* branch\n * print [#]_ the changes made in the *master-tmp* branch before running the\n ``merge`` subcommand\n * print [4]_ the changes made by the last *alpm-conf* ``merge`` subcommand\n * print [4]_ the differences between the etc files of installed pacman package\n archives and the corresponding files modified in the /etc directory\n\nDocumentation\n-------------\n\nThe documentation is hosted at `Read the Docs`_:\n\n - The `stable documentation`_ of the last released version.\n - The `latest documentation`_ of the current GitLab development version.\n\nTo access the documentation as a pdf document one must click on the icon at the\ndown-right corner of any page. It allows to switch between stable and latest\nversions and to select the corresponding pdf document.\n\nRequirements\n------------\n\nThe ArchLinux packages that are required by *alpm-conf* are installed with the\ncommand:\n\n.. code-block:: text\n\n # pacman -Sy git util-linux alpm-mtree python pyalpm python-zstandard\n\n``pyalpm`` and ``alpm-mtree`` are used to access the ArchLinux local\ndatabase, ``util-linux`` provides *setpriv* allowing to run *alpm-conf* as root\nwhile running git commands as the creator of the git repository.\n\nInstallation\n------------\n\nInstall the `python-alpm-conf`_ package from the AUR.\n\nOr install *alpm-conf* with pip::\n\n $ python -m pip install alpm-conf\n\n\n.. _alpm-conf: https://gitlab.com/xdegaye/alpm-conf\n.. _Read the Docs: https://about.readthedocs.com/\n.. _stable documentation: https://alpm-conf.readthedocs.io/en/stable/\n.. _latest documentation: https://alpm-conf.readthedocs.io/en/latest/\n.. _python-alpm-conf: https://aur.archlinux.org/packages/python-alpm-conf\n\n.. rubric:: Footnotes\n\n.. [#] Packaged files that are modified by a package scriptlet are considered as\n files modified by the root user.\n.. [#] See the **HANDLING CONFIG FILES** section in the pacman man page.\n.. [#] The ``update`` subcommand also creates the *etc-tmp* and *packages-tmp*\n temporary branches. These branches as well as the *etc* and *packages*\n branches are used internally by alpm-conf. The three temporary branches\n are deleted upon completion of the ``merge`` and ``reset`` subcommands.\n.. [#] Or show the changes or differences using an editor such as vim or emacs\n if a git difftool has been configured.\n",
"bugtrack_url": null,
"license": null,
"summary": "ArchLinux tool to manage /etc configuration files using git.",
"version": "0.5",
"project_urls": {
"Changelog": "https://alpm-conf.readthedocs.io/en/stable/history.html",
"Documentation": "https://alpm-conf.readthedocs.io/en/stable/",
"Source": "https://gitlab.com/xdegaye/alpm-conf"
},
"split_keywords": [
"archlinux",
" pacman",
" alpm"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "1d62f2d672de95db53d271ce175f373b6bbada4c20d03da2fdd644bd32dfd452",
"md5": "558df253964d2a6113b136137ad04b6f",
"sha256": "6f94b44e08c75ce881c9f952374ca9e6946475b174060df6d0ee21106f9578ec"
},
"downloads": -1,
"filename": "alpm_conf-0.5-py3-none-any.whl",
"has_sig": false,
"md5_digest": "558df253964d2a6113b136137ad04b6f",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "<4,>=3.12",
"size": 34011,
"upload_time": "2025-08-17T08:48:15",
"upload_time_iso_8601": "2025-08-17T08:48:15.500859Z",
"url": "https://files.pythonhosted.org/packages/1d/62/f2d672de95db53d271ce175f373b6bbada4c20d03da2fdd644bd32dfd452/alpm_conf-0.5-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "3645cf6fbf883cf513f9f5318c7fb8bab0ec5bb13f3cb209050edf6000991115",
"md5": "90cba92030b7b9981e03ef9843a90832",
"sha256": "9ba854586c6af9a74c00ed62e9956a87dc9a9ac12b9d93c164c1980b93943295"
},
"downloads": -1,
"filename": "alpm_conf-0.5.tar.gz",
"has_sig": false,
"md5_digest": "90cba92030b7b9981e03ef9843a90832",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "<4,>=3.12",
"size": 112624,
"upload_time": "2025-08-17T08:48:17",
"upload_time_iso_8601": "2025-08-17T08:48:17.652929Z",
"url": "https://files.pythonhosted.org/packages/36/45/cf6fbf883cf513f9f5318c7fb8bab0ec5bb13f3cb209050edf6000991115/alpm_conf-0.5.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-08-17 08:48:17",
"github": false,
"gitlab": true,
"bitbucket": false,
"codeberg": false,
"gitlab_user": "xdegaye",
"gitlab_project": "alpm-conf",
"lcname": "alpm-conf"
}