Keep Arch Linux Up-to-date -- an upgrade notifier for Arch Linux
C M4 Shell Other
Failed to load latest commit information.
doc updater: .pacorig support was removed from ALPM Jan 30, 2016
m4 Add support for internationalization Dec 7, 2012
po Added Norwegian Bokmål translation Mar 1, 2016
src updater: Fix not setting /etc/pacman.d/hooks as default HookDir May 11, 2016
.gitignore Add polkit rule so members of group "kalu" don't need auth to run a s… Jun 6, 2013
COPYING adding a few files (README, HISTORY, etc) Mar 26, 2012
HISTORY Bump to 4.1.0; Update HISTORY May 12, 2016
LICENSE Fix installing w/ --disable-gui Jan 9, 2015 README: Fix typo Aug 5, 2014
TRANSLATE Add support for internationalization Dec 7, 2012 Bump copyright years Jan 20, 2013 Bump to 4.1.0; Update HISTORY May 12, 2016

kalu: Keeping Arch Linux Up-to-date

kalu (which could stand for "Keeping Arch Linux Up-to-date") is a small application that will add an icon to your systray and sit there, regularly checking if there's anything new for you to upgrade. As soon as it finds something, it'll show a notification to let you know about it. Very classic stuff.

What makes kalu any different?

For starter, it doesn't need root privileges to do its checking. Not because it doesn't synchronize databases, since that would make it mostly useless, but because it will create a temporary copy of your sync databases, sync those, and then remove them of course.

The idea is not only not to require root privileges, but more importantly to avoid putting you in a situation where you'd risk messing up your system, as you might unknowingly end up basically doing a pacman -Sy foobar (which is pretty generally understood to be a bad idea).

Because if kalu did sync your databases, and there were upgrades available, but you did not apply them right away (for one reason or another, e.g. you're busy, or were AFK when the notification poped up and didn't see it...) then your next -S operation would really be a -Sy, even though you might not even realize it.

What does it check for?

kalu can check for a few things :

  • Arch Linux News. To be sure not to miss an important announcement from Arch Linux's official website.

  • Available upgrades for installed packages. That is, anything from one of the repos, or what would be upgraded with a pacman -Syu

  • Available upgrades for non-installed packages. You can define a list of "watched packages", that is packages for which you'd like to be notified when an upgrade is out, even though they're not installed. (E.g. packages you repack for yourself to apply a patch or something)

  • Available upgrades for AUR packages. All foreign packages (i.e. not found in any repo, aka -Qm) can be checked for upgrades available in the AUR.

  • Available upgrades for watched AUR packages. Just like with "regular" packages, you can have a list of packages in the AUR for which you'd like to be notified when an upgrade is available, even though they're not installed.

Of course you don't have to use all of this, and you can define which of those checks kalu should do. Besides maintaining lists of watched (AUR) packages, you can also define a list of foreign packages that kalu should not check the AUR for. Since there's no reason to check for packages you know aren't from the AUR (e.g. packages of your own making).

More than a notifier: kalu's updater

When a notification is shown, it will feature an action button. This button can be used to simply trigger a process of your choosing, e.g. you could have it start pacman with something like urxvt -e sudo pacman -Syu

However, kalu comes with an integrated system upgrader, which does exactly the same, only in a GTK GUI. Before being able to synchronize your databases (and possibly upgrade the system) the updater needs root privileges, obviously.

The way it works is: kalu itself only contains the GUI, and the part that does interact with libalpm (to actually upgrade your system) is in a secondary binary (kalu-dbus). This binary only will require root privileges, and will rely on PolicyKit to ensure you are authorized before doing anything.

You can also define one or more processes to be run after completing a system upgrade (to start e.g. localepurge and/or PkgClip), and kalu will start them after each succesfull sysupgrade (and an optional confirmation, which for multiple processes will feature the full list so you can specify which (if any) to start).

Note that if you're not interested in this, you can remove it by specifying --disable-updater on the configure command line.

Want to know more?

Some useful links if you're looking for more info:

Plus, kalu comes with a man page.