README.rst 3.64 KB
Newer Older
Seblu's avatar
Seblu committed
1 2 3 4
===========
ArchVersion
===========

Seblu's avatar
Seblu committed
5

Seblu's avatar
Seblu committed
6 7
INTRODUCTION
============
Seblu's avatar
Seblu committed
8
*archversion* is a tool used to compare upstream and downstream versions of archlinux packages.
Seblu's avatar
Seblu committed
9

Seblu's avatar
Seblu committed
10
Downstream packages version can be found in:
Seblu's avatar
Seblu committed
11 12 13
- the *Archlinux* web site [#]_;
- the *Archlinux* User Repository [#]_;
- a local pacman databases;
Seblu's avatar
Seblu committed
14
- a local abs sync.
Seblu's avatar
Seblu committed
15

Seblu's avatar
Seblu committed
16
You can also use it to update a PKGBUILD to the upstream version.
Seblu's avatar
Seblu committed
17 18 19 20

It targets Devs and TUs to help them to stay informed of new release of their packages.
It can also be used by AUR maintainers to track update for their packages.

Seblu's avatar
Seblu committed
21

Seblu's avatar
Seblu committed
22 23
HOW TO USE IT
=============
Seblu's avatar
Seblu committed
24
The first thing to do is to define a list of packages to track by creating a file
Seblu's avatar
Seblu committed
25
~/.config/archversion/packages.conf. The file content looks like an old fashioned INI file.
Seblu's avatar
Seblu committed
26

Seblu's avatar
Seblu committed
27
The following example allow to check the last version of acpid against archlinux
Seblu's avatar
Seblu committed
28
official repositories
Seblu's avatar
Seblu committed
29

Seblu's avatar
Seblu committed
30 31 32
|  [acpid]
|  url = http://sourceforge.net/projects/acpid2/files/

Seblu's avatar
Seblu committed
33
You can find more complete examples in the misc/ directory.
Seblu's avatar
Seblu committed
34 35

Basically, you can run:
Seblu's avatar
Seblu committed
36
*archversion sync* to fetch last versions from upstream and downstream.
Seblu's avatar
Seblu committed
37 38
*archversion report --new* to display new verions.
*archversion report --sync acpid* to sync and display version report of the acpid package.
Seblu's avatar
Seblu committed
39
*archversion update* to update the current PKGBUILD to the last upstream version.
Seblu's avatar
Seblu committed
40

Seblu's avatar
Seblu committed
41 42 43
You can use systemd timers to get a report of packages which need updates:
$ systemctl enable archversion.timer
$ systemctl start archversion.timer
Seblu's avatar
Seblu committed
44

Seblu's avatar
Seblu committed
45 46
To update a PKGBUILD to the last upstream version, run:
$ archversion update
Seblu's avatar
Seblu committed
47 48 49 50 51

HOW IT WORKS
============
As simple as possible! *archversion* retrieve the content of the provided upstream
webpage and search for well-known pattern. And then compare it to the reference.
Seblu's avatar
Seblu committed
52 53


Seblu's avatar
Seblu committed
54 55
DOWNSTREAM MODES
================
Seblu's avatar
Seblu committed
56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89

pacman
------
This mode compare a remote upstream version against a local package version from
pacman databases.
This software is not responsible of syncing pacman databases. Please do it yourself.
This mode is recommended.

archweb
-------
This mode compare a remote upstream version against a remote package version
on *www.archlinux.org*.
Getting version is done using the json ouput of packages pages.
Unfortunatly, Archweb doesn't offer a RPC, so find the right URL for a package
need a lot of call. As a consequency it's slow and load the archlinux servers.
So, I recommend to avoid using this mode in favour of pacman mode!

aur
---
This mode compare a remomte upstream version against a remote package version
from the *Archlinux User Repository*.
AUR provides a JSON-RPC which allow to easily query about packages.

abs
---
This mode compare a remote upstream version against a local package version from
a synced ABS filesystem tree.
This is not responsible of syncing ABS tree. Please do it yourself.
This is **DANGEROUS** because PKGBUILD are *partially* executed to guess the package version!
So, prefer pacman mode!

none
----
This mode is a fake one, it only retrieves upstream version without any comparaison.
Seblu's avatar
Seblu committed
90 91 92 93


DEPENDENCIES
============
Seblu's avatar
Seblu committed
94

Seblu's avatar
Seblu committed
95 96
- Python 3.x [#]_
- PyXDG [#]_
Seblu's avatar
Seblu committed
97
- PyALPM [#]_
Seblu's avatar
Seblu committed
98 99 100 101 102 103


SOURCES
=======
*archversion* sources are available on github [#]_.

Seblu's avatar
Seblu committed
104 105 106 107 108
Once you get the git tree, you can build a test package:

|  ./bootstrap
|  ./configure
|  make pkg
Seblu's avatar
Seblu committed
109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125

LICENSE
=======
*archversion* is licensied under the term of GPL v2 [#]_.


AUTHOR
======
*archversion* was started by Sébastien Luttringer in July 2012.


LINKS
=====
.. [#] http://www.archlinux.org/
.. [#] http://aur.archlinux.org/
.. [#] http://python.org/download/releases/
.. [#] http://freedesktop.org/wiki/Software/pyxdg
Seblu's avatar
Seblu committed
126
.. [#] https://projects.archlinux.org/users/remy/pyalpm.git
Seblu's avatar
Seblu committed
127 128
.. [#] https://github.com/seblu/archversion/
.. [#] http://www.gnu.org/licenses/gpl-2.0.html