Update Notifier Applet

Latest news: project has moved

Today (June 14 2016) I decided to move un-applet from sourceforge.
I did so because the recent changes to sourceforge's services rendered un-applet's debian repository virtually unusable, presumably because of a bug in current versions of apt, that stops apt from handling http(s) redirections implemented by sourceforge correctly, causing "apt-get update" to fail with somewhat odd (and probably misleading) error messages (see also below).

The good news is that the friendly folks from TuxFamily accepted to host the project, so you can reach the project's home page now at unapplet.tuxfamily.org , the new download area is located at download.tuxfamily.org/unapplet .

If you want to use un-applet's debian repository, you can get the gpg-key with:
# wget -O - http://download.tuxfamily.org/unapplet/debian/key/deb.gpg.key | apt-key add -
resp. on systems without root login:
$ sudo wget -O - http://download.tuxfamily.org/unapplet/debian/key/deb.gpg.key | apt-key add -
and then add the following line to /etc/apt/sources.list (or use your favourite package management application to add the repository):
deb http://download.tuxfamily.org/unapplet/debian debian main
For now I will also keep the files here on sourceforge, but there will of course be no more updates to this site, so please update your bookmarks.

I am sorry for the inconvenience.

Thanks to the people at sourceforge for the free hosting and their excellent service, and good-bye!


Description

UN-Applet provides a simple applet for the system tray that informs the user about available software updates on Debian linux based systems, as Ubuntu, Linux Mint and of course Debian.
The main goal of un-applet is to provide an easy way to help users to keep their system up to date without getting in the user's way while keeping software dependencies at a minimum.
It should work with any panel-like application that conforms to the freedesktop.org system tray specifications; it has been tested with IceWm, Lxde, xfce4, KDE and Gnome, most likely other desktop environment's panels should be fine, too.
KDE or Gnome libraries are not required to run un-applet.

Dependencies

un-applet requires the following packages to be installed:

News

June 13 2016: un-applet_1.0 released!

I am glad to finally announce the stable version 1.0 of un-applet!
This version features a number of major improvements plus a (presumably unpleasant) change affecting the supported terminal emulator programs:
Repository bug
Unfortunately sourceforge decided to apply some changes to their service that renders un-applet's package repository virtually useless. This seems to have something to do with the way https redirection is implemented and a failure of apt to handle this correctly. Oddly enough the repo still seems to work with an outdated version of LMDE (which is basically Debian Jessie at testing stage without any updates for the last two years or so), but it fails with current versions of apt as found today in Jessie, Stretch, Ubuntu Trusty and so on. In any case now sourceforge only supports https, so the respective line in your /etc/apt/sources.list file needs to be changed into
deb https://sourceforge.net/projects/un-applet/files/debian debian main
You will also need to have the package apt-transport-https installed in order to use the repo.
Still, depending on the distro in use, a subsequent apt-get update will probably fail with on or other error message. See here for details about this problem.
I apologize for the inconvenience, but I am afraid this is not in my hands.
I am working on a solution for this, which might well end in moving the project to a different hosting service, so please stay tuned.

IceWM problems
There is a bug in older versions of IceWM (i.e. for example the version 1.3.8-2 from Debian Jessie, as well as the "official" 1.3.8 from IceWM's sourceforge page) that causes uncontrollable "zombie" windows to appear on the screen if any application that requests the system tray is launched too early during window manager startup. To work around this, earlier versions of un-applet had a hard-coded two second time-out before the applet actually started. This time-out can now be increased from the preferences dialog, if necessary (for users of other desktop environments it should be safe to set this to 0).
This bug has apparently been fixed in the latest versions of IceWM (currently 1.3.8+githubmod+20150914+fa3fdef-2), however unfortunately for the worse, because a new bug was introduced that stops TkTray icons from being displayed properly in the IceWm system tray.
A bug report on this issue has been acknowledged as valid by debian's IceWM maintainers, so there may be hope that this will be resolved in subsequent releases (see here for details).

Aug. 25 2015:

A nasty bug in the KDE terminal application konsole has been reported to render un-applet virtually unusable when konsole is used as terminal emulator program, which will probably be the case for the majority of KDE users.
Please see for example this forum thread for a more detailed description of the bug.
Apparently the problem lies deep in the internals of KDE's underlying Qt-library.
At least on Ubuntu Trusty with KDE-4.13 the bug is still present.
Unfortunately the only solution for un-applet I can offer is to use a different terminal emulator program.
In case you have no other terminal programs installed you might want to try one of several light-weight alternatives as for example xvt or, in case you need utf-8 support, rxvt-unicode
I am currently trying to figure out how to best work around this issue, which might very well result in hard-coding the use of one or other terminal program.

Aug. 24 2015:

I finally set up a debian repository for un-applet!
If you would like to be notified about new releases now all you have to do is to add my gpg-key to you keyring by running (as root) on debian systems:
# wget -O - http://sourceforge.net/projects/un-applet/files/debian/key/deb.gpg.key | apt-key add -
resp. on Ubuntu (or other systems without root login):
$ sudo wget -O - http://sourceforge.net/projects/un-applet/files/debian/key/deb.gpg.key | apt-key add -
Then add the following line to /etc/apt/sources.list or use your favourite package management application to add the repository:
deb http://sourceforge.net/projects/un-applet/files/debian debian main
After the next update of the package database un-applet's repository will be active.
The repository currently only supports i386 and amd64 archtectures; if you miss your architecture please send me a note. Since it is the same package for any architecture anyway, it would be easy to add if I know that someone actually needs it.

Aug. 05 2015: un-applet_0.4

This release fixes a bug that could have caused false negative results when the package database was locked by another process while the cron script tried to check for available updates. Now the script tests if /var/lib/dpkg/status is locked before actually updating the package database. If it is, the call to apt-get update will be silently postponed until the script is called the next time.

July 19 2015: un-applet_0.3

Initial release.

Download

un-applet is available for download on its sourceforge site

License

un-applet is licensed under the terms of the Gnu General Public License.
The package includes several portions of third party code, please consult the file /usr/share/doc/un-applet/README.3rdParty for details and copyright notices.

Installation:

Please download the latest version from the sourceforge project page. To install the applet, simply install the .deb package with
    # dpkg -i un-applet_<version>_all.deb
or the graphical package installer of your choice. If you want to have a look at the files the package contains first, you can download the .tar.bz2 archive instead of the .deb package, extract its contents and view the files within the source tree. You may then build your own package from the sources with
    $ fakeroot dpkg -b un-applet_<version>_all

Usage:

Once the debian package is installed, you should find a main menu entry "Update Notifier Applet" under either "System" or "System" -> "Package Management", depending on the desktop environment in use. Of course you can also start the applet simply by calling
    $ un-applet

How it works:

The core functionality is in fact not provided by the applet itself, but by a simple script that is installed into /etc/cron.hourly and thus executed once an hour with root privilege.
This script (by default) first tries to determine if an applet process is actually active, if not it does nothing.
In the next step it checks if the pre-defined interval between updates of the package database (default three hrs.) is expired, if not, again it stops and does nothing.
Finally, if the above conditions are met, it calls a helper script un-applet-update-pkgdatabase in order to obtain information about pending updates.
This script (by default) first runs the un-applet-verify-mirrors script to check if all of the software mirrors defined in /etc/apt/sources.list and (if present) /etc/apt/sources.list.d/*.list can be reached. This is done to work around a bug in apt-get that has been observed when apt-pinning is used (which may well be the case if you never consciously decided to do so, for example if a debian-backports mirror is in use), that may lead to a considerable amount of packages accidentally selected for upgrade if one or more mirrors can not be accessed.
Next thing, it checks if the package database is locked by another process, and if yes, stops and does nothing, in order to avoid false negative results.
If everything is ok, it calls
    apt-get update
and creates a list of pending updates, if any.
Finally the script writes the number of available upgrades, the names of the upgradable packages and the time of its last execution into three files in /var/lib/un-applet.

The applet itself simply periodically checks the contents of these files and changes its color accordingly: If updates are available, you can click on the icon and will be prompted with a yes/no dialog box that asks you if you want to perform the upgrade now. If you choose yes, a gksu prompt will show up, which starts up a terminal emulator that runs the un-applet-dist-upgrade script which basically calls
    apt-get (dist-)upgrade
to install the upgrades.
The icon has also a context menu which allows you to manually start the update of the package database or lets you open a list with information about pending updates (if any).

Configuration:

The behavior of the cron script and its helpers can be customized by editing the file /etc/un-applet/un-applet.conf . In particular the time interval between updates of the package database and the command to install pending updates (apt-get upgrade vs. apt-get dist-upgrade) might be things that you would want to change.
Please consult the comments in this file for more details.

As far as the applet itself is concerned, you can configure a few things through the applet's Preferences... dialog:

Bugs

Contact

Any comments, bug reports and suggestions are highly welcome.
Please mailto:
Michael Lange <klappnase (at) users (dot) sourceforge (dot) net>


Hosted by:

Get UN-Applet at SourceForge.net. Fast, secure and Free Open Source software downloads