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:
- Python and Tkinter (package python-tk)
- wget
- the Tktray extension to Tcl/Tk (package tk-tktray)
- gettext
- gksu
- one of xvt, rxvt-unicode (a.k.a. urxvt) or mlterm (MultiLingualTerminal)
as terminal emulator program
- for older systems that still use Tcl/Tk-8.5, as Debian Wheezy, the
tk image library is needed (package libtk-img)
- and of course a desktop environment with a working system tray
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:
- As a consequence of the bug in konsole described
in the "News" entry below I decided that un-applet now supports only three different terminal
emulator programs that have thoroughly been tested to work flawlessly
together with the applet:
- xvt: a really old-fashioned terminal with a minimal
footprint (only about 40 kB download size, less than 80 kB installed size),
which is still a fully working solution for users with english locale
or some european locales that do not use many non-latin1 characters.
Xvt does not support unicode, however and so
it is likely to be a poor choice for asian, african or even some european
locales (as greek, russian etc.).
- rxvt-unicode (urxvt): a very advanced
xterm alternative with excellent unicode
support. urxvt is a very good choice for most locales.
It is about 750 kB to download and 3000 kB installed size.
There are also a slightly smaller package named rxvt-unicode-lite
and a rxvt-unicode-256color version which are also supported.
- mlterm (the Multi-Lingual-Terminal): this is a terminal
with very sophisticated unicode support that should hopefully
be able to handle any possible locale. If you experience problems with urxvt
you might want to give mlterm a try. However, mlterm is about 2 MB
to download and about 10 MB installed size. There is also a
slightly smaller mlterm-tiny variant which is
also supported.
- The default dependency, if none of these is already installed, is
rxvt-unicode.
The appearance of the terminal emulator window can now be adjusted
from un-applet's Preferences dialog.
I am sorry for the inconvenience, but as mentioned earlier, the
situation with KDE / konsole is truly embarrassing, and so I did not want to
risk another surprise of that kind.
- A new option DIST_UPGRADE in /etc/un-applet/un-applet.conf
now allows to choose how the upgrade process will be performed. If set to "1"
(default) apt-get dist-upgrade will be used, if set to "0",
apt-get upgrade will be used instead. The latter may especially be desired on
potentially "unstable" distributions like debian testing.
- The automatic search for pending updates now uses a random delay
from 0 to 3000 sec. (0-50 min.) to avoid problems caused by too many
users trying to connect to mirror servers at the same time.
- Eye candy: besides the default 22x22 px tray icons I added two
more icon themes borrowed from Gnome and Linux Mint in various sizes
from 16 - 48 px, so hopefully everyone will find a tray icon theme that
suits their taste.
- Besides this there is a number of smaller bugs that have been
fixed plus some improvements to the UI.
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:
- green: no pending updates, system is up-to-date.
- orange: updates available.
- red: some kind of error (probably a temporarily locked package database
or unreachable mirror server(s)) occured.
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:
- Time interval for polling (default 10 min.):
defines how often the applet
checks the results of the cron script (and its helper scripts). This
does not affect the time interval between updates of the package
database. This check is done in a tiny fraction of a second, so there
should be no need to increase the value.
- Startup delay (default 2 sec.):
delay between program start and creation
of the tray icon. This is (probably) only needed for older versions of IceWm (see above).
For most users it should be safe to set this to 0.
- Graphical administrator login command (default: gksu):
defines which command
to use for administrator login. On systems without root-login (as
a standard Ubuntu install) you would have to use gksudo instead
of gksu. However, if everything is configured properly, gksu's smart
internal logic will decide automagically which is the right thing to
do. On misconfigured systems you might have to change this into
"gksudo" to work around a spoiled gksu-configuration, though.
If you want, you can of course try to use an altogether different
administrator login program, probably the KDE variant or others
will work, too (although I never tried it).
- Terminal emulator options:
allows you to choose one of the supported
terminal applications (if more than one is installed).
There is also a number of hopefully self-explanatory appearance
options for the terminal that can be adjusted.
Bugs
Contact
Any comments, bug reports and suggestions are highly welcome.
Please mailto:
Michael Lange <klappnase (at) users (dot) sourceforge (dot) net>
Hosted by: