<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://www.slacky.eu/wikislack/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="it">
		<id>http://www.slacky.eu/wikislack/index.php?title=Notificatore_e_installatore_automatico_di_security_fixes_per_Slackware&amp;feed=atom&amp;action=history</id>
		<title>Notificatore e installatore automatico di security fixes per Slackware - Cronologia</title>
		<link rel="self" type="application/atom+xml" href="http://www.slacky.eu/wikislack/index.php?title=Notificatore_e_installatore_automatico_di_security_fixes_per_Slackware&amp;feed=atom&amp;action=history"/>
		<link rel="alternate" type="text/html" href="http://www.slacky.eu/wikislack/index.php?title=Notificatore_e_installatore_automatico_di_security_fixes_per_Slackware&amp;action=history"/>
		<updated>2013-05-23T06:22:25Z</updated>
		<subtitle>Cronologia della pagina su questo sito</subtitle>
		<generator>MediaWiki 1.20.3</generator>

	<entry>
		<id>http://www.slacky.eu/wikislack/index.php?title=Notificatore_e_installatore_automatico_di_security_fixes_per_Slackware&amp;diff=4339&amp;oldid=prev</id>
		<title>Slacky: Notificatore e installatore auotmatico di security fixes per Slackware moved to Notificatore e installatore automatico di security fixes per Slackware</title>
		<link rel="alternate" type="text/html" href="http://www.slacky.eu/wikislack/index.php?title=Notificatore_e_installatore_automatico_di_security_fixes_per_Slackware&amp;diff=4339&amp;oldid=prev"/>
				<updated>2007-10-21T16:17:41Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;a href=&quot;/slacky/Notificatore_e_installatore_auotmatico_di_security_fixes_per_Slackware&quot; class=&quot;mw-redirect&quot; title=&quot;Notificatore e installatore auotmatico di security fixes per Slackware&quot;&gt;Notificatore e installatore auotmatico di security fixes per Slackware&lt;/a&gt; moved to &lt;a href=&quot;/slacky/Notificatore_e_installatore_automatico_di_security_fixes_per_Slackware&quot; title=&quot;Notificatore e installatore automatico di security fixes per Slackware&quot;&gt;Notificatore e installatore automatico di security fixes per Slackware&lt;/a&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
			&lt;tr style='vertical-align: top;'&gt;
			&lt;td colspan='1' style=&quot;background-color: white; color:black;&quot;&gt;← Versione meno recente&lt;/td&gt;
			&lt;td colspan='1' style=&quot;background-color: white; color:black;&quot;&gt;Versione delle 16:17, 21 ott 2007&lt;/td&gt;
			&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Slacky</name></author>	</entry>

	<entry>
		<id>http://www.slacky.eu/wikislack/index.php?title=Notificatore_e_installatore_automatico_di_security_fixes_per_Slackware&amp;diff=4338&amp;oldid=prev</id>
		<title>Slacky il 16:16, 21 ott 2007</title>
		<link rel="alternate" type="text/html" href="http://www.slacky.eu/wikislack/index.php?title=Notificatore_e_installatore_automatico_di_security_fixes_per_Slackware&amp;diff=4338&amp;oldid=prev"/>
				<updated>2007-10-21T16:16:09Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nuova pagina&lt;/b&gt;&lt;/p&gt;&lt;div&gt;[[Category:Script]]&lt;br /&gt;
= Descrizione =&lt;br /&gt;
Notificatore e installatore automatico di security fixes che controlla il checksum e la firma digitale dei pacchetti prima di upgradarli...&lt;br /&gt;
= Download =&lt;br /&gt;
http://www.slacky.eu/misto/concorso/absinthe/SSANotifier-0.90.0/SSANotifier&amp;lt;br&amp;gt;&lt;br /&gt;
http://www.slacky.eu/misto/concorso/absinthe/SSANotifier-0.90.0/SSANotifier.conf.new&amp;lt;br&amp;gt;&lt;br /&gt;
http://www.slacky.eu/misto/concorso/absinthe/SSANotifier-0.90.0/SSAUpdater&amp;lt;br&amp;gt;&lt;br /&gt;
'''http://www.slacky.eu/misto/concorso/absinthe/ssanotifier-0.90.0-noarch-1ab.tgz'''&lt;br /&gt;
= Script SSANotifier =&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
#&lt;br /&gt;
#SSANotifier: a system daemon for automatic check of security patches.&lt;br /&gt;
#it runs on all slackware system (including slack ports to other architectures?)&lt;br /&gt;
#it is written in ash so you can run it under your preferred shell.&lt;br /&gt;
#&lt;br /&gt;
#v.0.90.0&lt;br /&gt;
#&lt;br /&gt;
#to do:&lt;br /&gt;
#-prova gdialog&lt;br /&gt;
#-prova xdialog&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#--------------------------------------------------&lt;br /&gt;
#security check&lt;br /&gt;
[ -f /var/lock/SSANotifier ] &amp;amp;&amp;amp; {&lt;br /&gt;
	echo &amp;quot;$0 ABORT: another istance of $0 is running&amp;quot;&lt;br /&gt;
	exit 0;&lt;br /&gt;
}&lt;br /&gt;
touch /var/lock/SSANotifier&lt;br /&gt;
#--------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#--------------------------------------------------&lt;br /&gt;
#general settings&lt;br /&gt;
&lt;br /&gt;
TMPDIR=/tmp/SSANotifier&lt;br /&gt;
&lt;br /&gt;
UPDATER=&amp;quot;/usr/libexec/SSANotifier/SSAUpdater&amp;quot;&lt;br /&gt;
#UPDATER=&amp;quot;/home/utente/slack/scripting/SSANotifier/devel/SSAUpdater&amp;quot;	#just for debugging&lt;br /&gt;
&lt;br /&gt;
CONFDIR=&amp;quot;/etc/SSANotifier&amp;quot;&lt;br /&gt;
#CONFDIR=&amp;quot;/home/utente/slack/scripting/SSANotifier/devel&amp;quot;	#just for debugging&lt;br /&gt;
CONFFILE=$CONFDIR/&amp;quot;SSANotifier.conf&amp;quot;&lt;br /&gt;
&lt;br /&gt;
PATCHLIST=&amp;quot;FILE_LIST&amp;quot;&lt;br /&gt;
MD5LIST=&amp;quot;CHECKSUMS.md5&amp;quot;&lt;br /&gt;
#--------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#--------------------------------------------------&lt;br /&gt;
#auxiliary functions&lt;br /&gt;
&lt;br /&gt;
function CompareVersion () {&lt;br /&gt;
##&lt;br /&gt;
## compare the version and the build string of two packages&lt;br /&gt;
## the fisrt one (defined by the prefix P as Patch) is expected to be newer than the second&lt;br /&gt;
## (defioned by the prefix I as Installed) if so the function return 1 else return 0&lt;br /&gt;
##&lt;br /&gt;
&lt;br /&gt;
#retrieve patch version: to compare the version number we need to sanitize it!&lt;br /&gt;
#the sed command removes any 'dot' (from 2.3.45 to 2345) and any letter (from 6u2 to 62 - look at jre numbering scheme)&lt;br /&gt;
PVERSION=$(echo $FILE | awk -F - '{printf $(NF-2)}' | sed -e &amp;quot;s|\.||g; s|[a-zA-Z]||g&amp;quot;)&lt;br /&gt;
IVERSION=$(echo $nFILE | awk -F - '{printf $(NF-2)}' | sed -e &amp;quot;s|\.||g; s|[a-zA-Z]||g&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
# echo $PVERSION&lt;br /&gt;
# echo $IVERSION&lt;br /&gt;
&lt;br /&gt;
[ $PVERSION -lt $IVERSION ] &amp;amp;&amp;amp; return 0;&lt;br /&gt;
[ $PVERSION -gt $IVERSION ] &amp;amp;&amp;amp; return 1;&lt;br /&gt;
&lt;br /&gt;
#if we have the same version look at the build...&lt;br /&gt;
[ $PVERSION -eq $IVERSION ] &amp;amp;&amp;amp; {&lt;br /&gt;
	#looking at recent patches, it seems that pat uses a suffix to define the distro version&lt;br /&gt;
	#usually the build string is something like &amp;quot;X&amp;quot; or &amp;quot;X_slackV&amp;quot;, where X is the build number and V is the&lt;br /&gt;
	#slackware version&lt;br /&gt;
	PBUILD=$(echo $(basename $FILE .tgz) | awk -F - '{printf $(NF)}' | cut -f1 -d &amp;quot;_&amp;quot;)&lt;br /&gt;
	IBUILD=$(echo $(basename $nFILE .tgz) | awk -F - '{printf $(NF)}' | cut -f1 -d &amp;quot;_&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
# 	echo $PBUILD&lt;br /&gt;
# 	echo $IBUILD&lt;br /&gt;
&lt;br /&gt;
	[ $PBUILD -le $IBUILD ] &amp;amp;&amp;amp; return 0;&lt;br /&gt;
	[ $PBUILD -gt $IBUILD ] &amp;amp;&amp;amp; return 1;&lt;br /&gt;
}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
function GetPending () {&lt;br /&gt;
##&lt;br /&gt;
## define pending upgrades: this is useful if we have aborted a previous upgrade session of if we&lt;br /&gt;
## have installed some NEW packages in the while of two upgrade sessions&lt;br /&gt;
##&lt;br /&gt;
&lt;br /&gt;
#load all already downloaded patches&lt;br /&gt;
CANDIDATEPATCHES=$(ls *.tgz)&lt;br /&gt;
&lt;br /&gt;
#clean up the list of patches retrieving all and only pending upgrades&lt;br /&gt;
for FILE in $CANDIDATEPATCHES; do&lt;br /&gt;
	#retrieve the patch name discarding version, arch and build informations&lt;br /&gt;
	FNAME=$(echo $FILE | awk -F - '{for (i=1; i&amp;lt;NF-3; i++) {printf $i&amp;quot;-&amp;quot;}; printf $(NF-3)}')&lt;br /&gt;
	#look if we find any version installed in the system&lt;br /&gt;
	INSTALLED=$(ls /var/log/packages | grep -w &amp;quot;$FNAME&amp;quot; 2&amp;gt;/dev/null)&lt;br /&gt;
	#we can have more matches&lt;br /&gt;
	#(eg. if we grep the &amp;quot;gimp&amp;quot; patch we can find both &amp;quot;gimp-print&amp;quot; and &amp;quot;gimp&amp;quot; packages)&lt;br /&gt;
	for nFILE in $INSTALLED; do&lt;br /&gt;
		#retrieve the file name of the installed package discarding version, arch and build infos&lt;br /&gt;
		INAME=$(echo $nFILE | awk -F - '{for (i=1; i&amp;lt;NF-3; i++) {printf $i&amp;quot;-&amp;quot;}; printf $(NF-3)}')&lt;br /&gt;
		#found exactly the same package (this discards &amp;quot;gimp-print&amp;quot; if we are patching the &amp;quot;gimp&amp;quot; package)&lt;br /&gt;
		[ &amp;quot;$INAME&amp;quot; = &amp;quot;$FNAME&amp;quot; ] &amp;amp;&amp;amp; {&lt;br /&gt;
			#look if an older version is installed&lt;br /&gt;
			#(otherwise we drop the patch automatically)&lt;br /&gt;
			CompareVersion&lt;br /&gt;
			[ $? -eq 1 ] &amp;amp;&amp;amp; {&lt;br /&gt;
				#look if a new version of a patch is in the new list,&lt;br /&gt;
				#if it isn't, we add the pending patch to the list&lt;br /&gt;
				OBSOLETELIST=$(echo $NEWPATCHES | grep $FNAME 2&amp;gt;/dev/null)&lt;br /&gt;
				#once again we can have more matches... (gimp and gimp-print, for example)&lt;br /&gt;
				OBSOLETE=0&lt;br /&gt;
				for nnFILE in $OBSOLETELIST; do&lt;br /&gt;
					ONAME=$(echo $nnFILE | awk -F - '{for (i=1; i&amp;lt;NF-3; i++) {printf $i&amp;quot;-&amp;quot;}; printf $(NF-3)}')&lt;br /&gt;
					# if we have a match, go over and search for other patches&lt;br /&gt;
					[ &amp;quot;$INAME&amp;quot; = &amp;quot;$FNAME&amp;quot; ] &amp;amp;&amp;amp;  {&lt;br /&gt;
						OBSOLETE=1&lt;br /&gt;
						OBSOLETEPATCHES=&amp;quot;$OBSOLETEPATCHES $FNAME&amp;quot;&lt;br /&gt;
						break&lt;br /&gt;
					}&lt;br /&gt;
				done&lt;br /&gt;
				#if there is not a new version on the server, we add the file to the pending list&lt;br /&gt;
				[ $OBSOLETE -eq 0 ] &amp;amp;&amp;amp; PENDINGPATCHES=&amp;quot;$PENDINGPATCHES $FILE&amp;quot;&lt;br /&gt;
			}&lt;br /&gt;
			break; #for nFILE in $INSTALLED;&lt;br /&gt;
		}&lt;br /&gt;
	done #for nFILE in $INSTALLED;&lt;br /&gt;
done #for FILE in $CANDIDATEPATCHES;&lt;br /&gt;
}&lt;br /&gt;
#--------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#--------------------------------------------------&lt;br /&gt;
#&amp;quot;resource table&amp;quot; with some messages displayed on screen&lt;br /&gt;
TITLE=&amp;quot;SSANotifier&amp;quot;&lt;br /&gt;
UMESSAGE=&amp;quot;Upgrade the system?&amp;quot;&lt;br /&gt;
DMESSAGE=&amp;quot;Currently downloading:&amp;quot;&lt;br /&gt;
FMESSAGE=&amp;quot;Upgrading the system&amp;quot;&lt;br /&gt;
GMESSAGE=&amp;quot;please wait...&amp;quot;&lt;br /&gt;
#--------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#--------------------------------------------------&lt;br /&gt;
#entry point&lt;br /&gt;
&lt;br /&gt;
#load settings&lt;br /&gt;
. $CONFFILE&lt;br /&gt;
&lt;br /&gt;
## check for environment&lt;br /&gt;
&lt;br /&gt;
#look if we found the upgradepkg utility&lt;br /&gt;
[ -f $UPGRADEPKG ] || { echo &amp;quot;$0 ABORT: upgrade utility is not installed&amp;quot;; rm /var/lock/SSANotifier; exit 1; }&lt;br /&gt;
&lt;br /&gt;
#look if we have setted a download mirror!&lt;br /&gt;
[ -z $SERVER ] &amp;amp;&amp;amp; { echo &amp;quot;$0 ABORT: no server selected&amp;quot;; rm /var/lock/SSANotifier; exit 1; }&lt;br /&gt;
&lt;br /&gt;
#look if we have selected a dir where we can store our patches&lt;br /&gt;
[ -z $LOCALMIRROR ] &amp;amp;&amp;amp; { echo &amp;quot;$0 ABORT: no local mirror selected&amp;quot;; rm /var/lock/SSANotifier; exit 1; }&lt;br /&gt;
&lt;br /&gt;
#look if wget is installed and in our path&lt;br /&gt;
[ $(which wget) ] || { echo &amp;quot;$0 ABORT: wget is not installed&amp;quot;; rm /var/lock/SSANotifier; exit 1; }&lt;br /&gt;
WGET=$(which wget)&lt;br /&gt;
export WGET&lt;br /&gt;
&lt;br /&gt;
#look to the md5 utility&lt;br /&gt;
[ $(which md5sum) ] || { echo &amp;quot;$0 ABORT: md5sum is not installed&amp;quot;; rm /var/lock/SSANotifier; exit 1; }&lt;br /&gt;
MD5SUM=$(which md5sum)&lt;br /&gt;
export MD5SUM&lt;br /&gt;
&lt;br /&gt;
#look if we have enabled the gpg key check. if so, look to the gpg utility&lt;br /&gt;
[ $CHECKGPG -eq 1 ] &amp;amp;&amp;amp; {&lt;br /&gt;
	[ $(which gpg2) ] || { echo &amp;quot;$0 ABORT: gpg2 is not installed&amp;quot;; rm /var/lock/SSANotifier; exit 1; }&lt;br /&gt;
	GPG=$(which gpg2)&lt;br /&gt;
	export GPG&lt;br /&gt;
	#look for gpg key location&lt;br /&gt;
	[ -z $GPGKEY ] &amp;amp;&amp;amp; { echo&amp;quot;$0 ABORT: gpg public key not defined&amp;quot;; rm /var/lock/SSANotifier; exit 1; }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#check for notification type&lt;br /&gt;
case $NOTIFY in&lt;br /&gt;
&amp;quot;KDE&amp;quot;)&lt;br /&gt;
	[ $(which kdialog) ] || { echo &amp;quot;$0 ABORT: kdialog not installed&amp;quot;; rm /var/lock/SSANotifier; exit 1; }&lt;br /&gt;
	DIALOGBASE=$(which kdialog)&lt;br /&gt;
	[ $(which kdesu) ] || { echo &amp;quot;$0 ABORT: kdesu not installed&amp;quot;; rm /var/lock/SSANotifier; exit 1; }&lt;br /&gt;
	SUGUI=$(which kdesu)&lt;br /&gt;
	SUGUIOPTS=&amp;quot;--noignorebutton -d -n -t -c&amp;quot;&lt;br /&gt;
	PASSIVE=&amp;quot;--passivepopup&amp;quot;&lt;br /&gt;
	SIZE1=&amp;quot;500 300&amp;quot;&lt;br /&gt;
	SIZE2=&amp;quot;&amp;quot;&lt;br /&gt;
	SIZE3=&amp;quot;800 600&amp;quot;&lt;br /&gt;
	SIZE4=&amp;quot;200&amp;quot;&lt;br /&gt;
	SIZE5=&amp;quot;1000&amp;quot;&lt;br /&gt;
;;&lt;br /&gt;
&amp;quot;SHELL&amp;quot;)&lt;br /&gt;
	[ $(which dialog) ] || { echo &amp;quot;$0 ABORT: dialog not installed&amp;quot;; rm /var/lock/SSANotifier; exit 1; }&lt;br /&gt;
	DIALOGBASE=$(which dialog)&lt;br /&gt;
	SUGUI=$(which su)&lt;br /&gt;
	SUGUIOPTS=&amp;quot;-c&amp;quot;&lt;br /&gt;
	PASSIVE=&amp;quot;--infobox&amp;quot;&lt;br /&gt;
	SIZE1=&amp;quot;20 80&amp;quot;&lt;br /&gt;
	SIZE2=&amp;quot;10 80&amp;quot;&lt;br /&gt;
	SIZE3=&amp;quot;20 80&amp;quot;&lt;br /&gt;
	SIZE4=&amp;quot;10 80&amp;quot;&lt;br /&gt;
	SIZE5=&amp;quot;10 80&amp;quot;&lt;br /&gt;
;;&lt;br /&gt;
&amp;quot;GNOME&amp;quot;)&lt;br /&gt;
	[ $(which zenity) ] || { echo &amp;quot;$0 ABORT: gdialog/zenity not installed&amp;quot;; rm /var/lock/SSANotifier; exit 1; }&lt;br /&gt;
	DIALOGBASE=$(which zenity)&lt;br /&gt;
	[ $(which gksu) ] || { echo &amp;quot;$0 ABORT: gksu not installed&amp;quot;; rm /var/lock/SSANotifier; exit 1; }&lt;br /&gt;
	SUGUI=$(which gksu)&lt;br /&gt;
	SUGUIOPTS=&amp;quot;-u root -w&amp;quot;&lt;br /&gt;
	PASSIVE=&amp;quot;--progress --pulsate --auto-close&amp;quot;&lt;br /&gt;
	SIZE1=&amp;quot;500 300&amp;quot;&lt;br /&gt;
	SIZE2=&amp;quot;&amp;quot;&lt;br /&gt;
	SIZE3=&amp;quot;800 600&amp;quot;&lt;br /&gt;
	SIZE4=&amp;quot;200&amp;quot;&lt;br /&gt;
	SIZE5=&amp;quot;1000&amp;quot;&lt;br /&gt;
;;&lt;br /&gt;
*)&lt;br /&gt;
	echo &amp;quot;$0 ABORT: selected notification not supported&amp;quot;&lt;br /&gt;
	exit 1&lt;br /&gt;
;;&lt;br /&gt;
esac&lt;br /&gt;
&lt;br /&gt;
#update patches list&lt;br /&gt;
[ ! -d $TMPDIR ] &amp;amp;&amp;amp; {&lt;br /&gt;
	mkdir -p $TMPDIR || {&lt;br /&gt;
		echo &amp;quot;$0 ABORT: unable to create filelist cache&amp;quot;;&lt;br /&gt;
		rm /var/lock/SSANotifier; exit 1;&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
NEWLIST=$SERVER/&amp;quot;$PATCHLIST&amp;quot;&lt;br /&gt;
$WGET $WGETOPTS -P $TMPDIR &amp;quot;$NEWLIST&amp;quot;&lt;br /&gt;
[ $? -eq 1 ] &amp;amp;&amp;amp; { echo &amp;quot;$0 ABORT: unable to find a changelog file&amp;quot;; rm /var/lock/SSANotifier; exit 1; }  #is this a bug or there is not any patch?&lt;br /&gt;
&lt;br /&gt;
#check if an older list is available&lt;br /&gt;
NEWLIST=$TMPDIR/&amp;quot;$PATCHLIST&amp;quot;&lt;br /&gt;
export NEWLIST&lt;br /&gt;
OLDLIST=$LOCALMIRROR/$PATCHLIST&amp;quot;.old&amp;quot;&lt;br /&gt;
export OLDLIST&lt;br /&gt;
&lt;br /&gt;
[ -f &amp;quot;$OLDLIST&amp;quot; ] &amp;amp;&amp;amp; {&lt;br /&gt;
	#if we have an older list we check if something has changed&lt;br /&gt;
	OLD=$($MD5SUM &amp;quot;$OLDLIST&amp;quot; | cut -f1 -d &amp;quot; &amp;quot;)&lt;br /&gt;
	NEW=$($MD5SUM &amp;quot;$NEWLIST&amp;quot; | cut -f1 -d &amp;quot; &amp;quot;)&lt;br /&gt;
	[ $NEW = $OLD ] &amp;amp;&amp;amp; NEWLIST=&amp;quot;&amp;quot; 	#no new updates&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# define pending upgrades&lt;br /&gt;
PENDINGPATCHES=&amp;quot;&amp;quot;&lt;br /&gt;
export PENDINGPATCHES&lt;br /&gt;
# define an empty list of new patches to be downloaded&lt;br /&gt;
NEWPATCHES=&amp;quot;&amp;quot;&lt;br /&gt;
export NEWPATCHES&lt;br /&gt;
echo $NEWPATCHES&lt;br /&gt;
#define an empty list to store old version of patches. these packages are to be&lt;br /&gt;
#removed after the download (and check) of a new version (do you remember the many mozilla patches?...)&lt;br /&gt;
OBSOLETEPATCHES=&amp;quot;&amp;quot;&lt;br /&gt;
export OBSOLETEPATCHES&lt;br /&gt;
&lt;br /&gt;
[ ! -z &amp;quot;$NEWLIST&amp;quot; ] &amp;amp;&amp;amp; {&lt;br /&gt;
#if we have some new upgrade...&lt;br /&gt;
&lt;br /&gt;
	#extract all available patches defined in the the changelog file&lt;br /&gt;
	PATCHES=$(grep &amp;quot;\.tgz$&amp;quot; $NEWLIST 2&amp;gt;/dev/null | cut -f 2-3 -d /)&lt;br /&gt;
&lt;br /&gt;
#echo ${PATCHES}&lt;br /&gt;
&lt;br /&gt;
	#check for new patches...&lt;br /&gt;
	for FILE in $PATCHES; do&lt;br /&gt;
		[ -f $LOCALMIRROR/$(basename $FILE) ] || {&lt;br /&gt;
			NEWPATCHES=&amp;quot;$NEWPATCHES $FILE&amp;quot;&lt;br /&gt;
		}&lt;br /&gt;
	done&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
[ -d $LOCALMIRROR ] &amp;amp;&amp;amp; {&lt;br /&gt;
&lt;br /&gt;
	cd $LOCALMIRROR&lt;br /&gt;
	#load pending patches (this modify the PENDINGPATCHES variable)&lt;br /&gt;
	#and look for obsolete ones (this modify the OBSOLETEPATCHES variable)&lt;br /&gt;
	GetPending&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
	#if we haven't a new list and there is no pending upgrade this means that we can exit&lt;br /&gt;
[ -z &amp;quot;$NEWPATCHES&amp;quot; ] &amp;amp;&amp;amp; [ -z &amp;quot;$PENDINGPATCHES&amp;quot; ] &amp;amp;&amp;amp; {&lt;br /&gt;
	echo &amp;quot;$0 ABORT: nothing changed&amp;quot;;&lt;br /&gt;
	rm $NEWLIST;&lt;br /&gt;
	rm /var/lock/SSANotifier;&lt;br /&gt;
	exit 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
## it is time to printout something and wait for user response...&lt;br /&gt;
&lt;br /&gt;
#create a dialog for user response...&lt;br /&gt;
TMPFILE=$TMPDIR/message-$(date +%Y%m%d%H%M%S)&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;  --&amp;gt; The following security fixes are available at $SERVER:&amp;quot; &amp;gt; $TMPFILE&lt;br /&gt;
for FILE in $NEWPATCHES; do&lt;br /&gt;
	echo $(basename $FILE) &amp;gt;&amp;gt; $TMPFILE&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;  --&amp;gt; The following security fixes are pending since last update:&amp;quot; &amp;gt;&amp;gt; $TMPFILE&lt;br /&gt;
for FILE in $PENDINGPATCHES; do&lt;br /&gt;
	echo $(basename $FILE) &amp;gt;&amp;gt; $TMPFILE&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
[ ! $NOTIFY = &amp;quot;GNOME&amp;quot; ] &amp;amp;&amp;amp; $DIALOGBASE --title &amp;quot;$TITLE&amp;quot; --textbox &amp;quot;$TMPFILE&amp;quot; $SIZE1 || \&lt;br /&gt;
$DIALOGBASE --title &amp;quot;$TITLE&amp;quot; --text-info --filename=&amp;quot;$TMPFILE&amp;quot; $SIZE1&lt;br /&gt;
&lt;br /&gt;
rm &amp;quot;$TMPFILE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[ ! $NOTIFY = &amp;quot;GNOME&amp;quot; ] &amp;amp;&amp;amp; {&lt;br /&gt;
	$DIALOGBASE --title &amp;quot;$TITLE&amp;quot; --yesno &amp;quot;$UMESSAGE&amp;quot; $SIZE2&lt;br /&gt;
} #|| {	###this cause a strange behaviour... we have to postpone this feature for other versions...&lt;br /&gt;
#	$DIALOGBASE --title &amp;quot;$TITLE&amp;quot; --question --text=&amp;quot;$UMESSAGE&amp;quot; $SIZE2&lt;br /&gt;
#}&lt;br /&gt;
&lt;br /&gt;
[ $? -eq 1 ] &amp;amp;&amp;amp; { rm $NEWLIST; rm /var/lock/SSANotifier; exit 0; } #abort upgrade because of user request&lt;br /&gt;
&lt;br /&gt;
## if we have &amp;quot;green light&amp;quot; we update the system via SSAUpdater ;-)&lt;br /&gt;
&lt;br /&gt;
#just useful for shell interface&lt;br /&gt;
echo; echo &amp;quot;Root user identification:&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
$SUGUI $SUGUIOPTS &amp;quot;$UPDATER&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm /var/lock/SSANotifier;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
= Script SSAUpdater =&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#! /bin/sh&lt;br /&gt;
#&lt;br /&gt;
#SSAUpdater: a tool for automatic downloading and installing of security patches.&lt;br /&gt;
#it runs on all slackware system (including slack ports to other architectures?)&lt;br /&gt;
#it is written in ash so you can run it under your preferred shell.&lt;br /&gt;
#&lt;br /&gt;
#!!!														   !!!&lt;br /&gt;
#!!! don't run this script as stand alone application          !!!&lt;br /&gt;
#!!! SSAUpdater has been designed to be called by SSANotifier  !!!&lt;br /&gt;
#!!!														   !!!&lt;br /&gt;
#&lt;br /&gt;
#v.0.90.0&lt;br /&gt;
#&lt;br /&gt;
#to do:&lt;br /&gt;
#-prova gdialog&lt;br /&gt;
#-prova xdialog&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#--------------------------------------------------&lt;br /&gt;
#general settings&lt;br /&gt;
&lt;br /&gt;
TMPDIR=/tmp/SSANotifier&lt;br /&gt;
&lt;br /&gt;
CONFDIR=&amp;quot;/etc/SSANotifier&amp;quot;&lt;br /&gt;
#CONFDIR=&amp;quot;/home/utente/slack/scripting/SSANotifier/devel&amp;quot;	#just for debugging&lt;br /&gt;
CONFFILE=$CONFDIR/&amp;quot;SSANotifier.conf&amp;quot;&lt;br /&gt;
&lt;br /&gt;
PATCHLIST=&amp;quot;FILE_LIST&amp;quot;&lt;br /&gt;
MD5LIST=&amp;quot;CHECKSUMS.md5&amp;quot;&lt;br /&gt;
#--------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#--------------------------------------------------&lt;br /&gt;
#&amp;quot;resource table&amp;quot; with some messages displayed on screen&lt;br /&gt;
TITLE=&amp;quot;SSAUpdater&amp;quot;&lt;br /&gt;
UMESSAGE=&amp;quot;Upgrade the system?&amp;quot;&lt;br /&gt;
DMESSAGE=&amp;quot;Currently downloading:&amp;quot;&lt;br /&gt;
FMESSAGE=&amp;quot;Upgrading the system&amp;quot;&lt;br /&gt;
GMESSAGE=&amp;quot;please wait...&amp;quot;&lt;br /&gt;
#--------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#--------------------------------------------------&lt;br /&gt;
#auxiliary functions&lt;br /&gt;
&lt;br /&gt;
function RemoveOldVersion () {&lt;br /&gt;
##&lt;br /&gt;
## this function remove any old version of a patchd&lt;br /&gt;
## it is called olny after a new patch version has been checked, so we can be _REALLY_ sure&lt;br /&gt;
## that the file is no longer required&lt;br /&gt;
##&lt;br /&gt;
&lt;br /&gt;
for FILE in $GPGPATCHES; do&lt;br /&gt;
	#retrieve the patch name discarding version, arch and build informations&lt;br /&gt;
	FNAME=$(echo $FILE | awk -F - '{for (i=1; i&amp;lt;NF-3; i++) {printf $i&amp;quot;-&amp;quot;}; printf $(NF-3)}')&lt;br /&gt;
	#look if we find an old version installed in the system&lt;br /&gt;
	OLDVERSIONLIST=$(echo $OBSOLETEPATCHES | grep -w &amp;quot;$FNAME&amp;quot; 2&amp;gt;/dev/null)&lt;br /&gt;
	#we can have more matches&lt;br /&gt;
	#(eg. if we grep the &amp;quot;gimp&amp;quot; patch we can find both &amp;quot;gimp-print&amp;quot; and &amp;quot;gimp&amp;quot; packages)&lt;br /&gt;
	for nFILE in $OLDVERSIONLIST; do&lt;br /&gt;
		#retrieve the file name of the installed package discarding version, arch and build infos&lt;br /&gt;
		INAME=$(echo $nFILE | awk -F - '{for (i=1; i&amp;lt;NF-3; i++) {printf $i&amp;quot;-&amp;quot;}; printf $(NF-3)}')&lt;br /&gt;
		#found exactly the same package (this discards &amp;quot;gimp-print&amp;quot; if we are patching the &amp;quot;gimp&amp;quot; package)&lt;br /&gt;
		[ &amp;quot;$INAME&amp;quot; = &amp;quot;$FNAME&amp;quot; ] &amp;amp;&amp;amp; {&lt;br /&gt;
		#remove it&lt;br /&gt;
		rm $nFILE &amp;amp;&amp;gt;/dev/null&lt;br /&gt;
		continue&lt;br /&gt;
		}&lt;br /&gt;
	done&lt;br /&gt;
done&lt;br /&gt;
}&lt;br /&gt;
#--------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#--------------------------------------------------&lt;br /&gt;
#entry point&lt;br /&gt;
&lt;br /&gt;
#load settings&lt;br /&gt;
. $CONFFILE&lt;br /&gt;
&lt;br /&gt;
#if the local mirror doesn't exist we create it!&lt;br /&gt;
[ -d $LOCALMIRROR ] || {&lt;br /&gt;
mkdir -p $LOCALMIRROR || { echo &amp;quot;$0 ABORT: unable to create local mirror&amp;quot;; exit 1; }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#check for notification type&lt;br /&gt;
case $NOTIFY in&lt;br /&gt;
&amp;quot;KDE&amp;quot;)&lt;br /&gt;
	[ $(which kdialog) ] || { echo &amp;quot;$0 ABORT: kdialog not installed&amp;quot;; exit 1; }&lt;br /&gt;
	DIALOGBASE=$(which kdialog)&lt;br /&gt;
	[ $(which kdesu) ] || { echo &amp;quot;$0 ABORT: kdesu not installed&amp;quot;; exit 1; }&lt;br /&gt;
	SUGUI=$(which kdesu)&lt;br /&gt;
	SUGUIOPTS=&amp;quot;--noignorebutton -d -n -t -c&amp;quot;&lt;br /&gt;
	PASSIVE=&amp;quot;--passivepopup&amp;quot;&lt;br /&gt;
	SIZE1=&amp;quot;500 300&amp;quot;&lt;br /&gt;
	SIZE2=&amp;quot;&amp;quot;&lt;br /&gt;
	SIZE3=&amp;quot;800 600&amp;quot;&lt;br /&gt;
	SIZE4=&amp;quot;200&amp;quot;&lt;br /&gt;
	SIZE5=&amp;quot;1000&amp;quot;&lt;br /&gt;
;;&lt;br /&gt;
&amp;quot;SHELL&amp;quot;)&lt;br /&gt;
	[ $(which dialog) ] || { echo &amp;quot;$0 ABORT: dialog not installed&amp;quot;; exit 1; }&lt;br /&gt;
	DIALOGBASE=$(which dialog)&lt;br /&gt;
	SUGUI=$(which su)&lt;br /&gt;
	SUGUIOPTS=&amp;quot;-c&amp;quot;&lt;br /&gt;
	PASSIVE=&amp;quot;--infobox&amp;quot;&lt;br /&gt;
	SIZE1=&amp;quot;20 80&amp;quot;&lt;br /&gt;
	SIZE2=&amp;quot;10 80&amp;quot;&lt;br /&gt;
	SIZE3=&amp;quot;20 80&amp;quot;&lt;br /&gt;
	SIZE4=&amp;quot;10 80&amp;quot;&lt;br /&gt;
	SIZE5=&amp;quot;10 80&amp;quot;&lt;br /&gt;
;;&lt;br /&gt;
&amp;quot;GNOME&amp;quot;)&lt;br /&gt;
	[ $(which zenity) ] || { echo &amp;quot;$0 ABORT: gdialog/zenity not installed&amp;quot;; exit 1; }&lt;br /&gt;
	DIALOGBASE=$(which zenity)&lt;br /&gt;
	[ $(which gksu) ] || { echo &amp;quot;$0 ABORT: gksu not installed&amp;quot;; exit 1; }&lt;br /&gt;
	SUGUI=$(which gksu)&lt;br /&gt;
	SUGUIOPTS=&amp;quot;-u root -w&amp;quot;&lt;br /&gt;
	PASSIVE=&amp;quot;--progress --pulsate --auto-close&amp;quot;&lt;br /&gt;
	SIZE1=&amp;quot;500 300&amp;quot;&lt;br /&gt;
	SIZE2=&amp;quot;&amp;quot;&lt;br /&gt;
	SIZE3=&amp;quot;800 600&amp;quot;&lt;br /&gt;
	SIZE4=&amp;quot;200&amp;quot;&lt;br /&gt;
	SIZE5=&amp;quot;1000&amp;quot;&lt;br /&gt;
;;&lt;br /&gt;
*)&lt;br /&gt;
	echo &amp;quot;$0 ABORT: selected notification not supported&amp;quot;&lt;br /&gt;
	exit 1&lt;br /&gt;
;;&lt;br /&gt;
esac&lt;br /&gt;
&lt;br /&gt;
#if we want to check the gpg encription we download the gpgkey file&lt;br /&gt;
#!!!&lt;br /&gt;
#!!! useful to check for its existance and set a flag to force the key download every time&lt;br /&gt;
#!!!&lt;br /&gt;
[ $CHECKGPG -eq 1 ] &amp;amp;&amp;amp; {&lt;br /&gt;
	[ -f $(basename $GPGKEY) ] &amp;amp;&amp;amp; rm $(basename $GPGKEY) #force old key remotion.&lt;br /&gt;
	$WGET $WGETOPTS $GPGKEY || { echo &amp;quot;$0 ABORT: unable to download gpg key&amp;quot;; exit 1; }&lt;br /&gt;
	#we import the key in our keyring&lt;br /&gt;
	[ $($GPG --import $(basename $GPGKEY) 1&amp;gt; /dev/null) ] &amp;amp;&amp;amp; { echo &amp;quot;$0 ABORT: unable to import gpg key&amp;quot;; exit 1; }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#if we want to check the md5sum we download the checksum file&lt;br /&gt;
[ $CHECKMD5 -eq 1 ] &amp;amp;&amp;amp; {&lt;br /&gt;
	[ -f &amp;quot;$MD5LIST&amp;quot; ] &amp;amp;&amp;amp; rm &amp;quot;$MD5LIST&amp;quot;&lt;br /&gt;
	$WGET $WGETOPTS $SERVER/&amp;quot;$MD5LIST&amp;quot; || { echo &amp;quot;$0 ABORT: unable to download md5sums&amp;quot;; exit 1; }&lt;br /&gt;
	[ $CHECKGPG -eq 1 ] &amp;amp;&amp;amp; {&lt;br /&gt;
		#if we want to check the gpg key we download the checksum asc file...&lt;br /&gt;
		rm &amp;quot;$MD5LIST&amp;quot;&amp;quot;.asc&amp;quot; 2&amp;gt; /dev/null&lt;br /&gt;
		$WGET $WGETOPTS $SERVER/&amp;quot;$MD5LIST&amp;quot;&amp;quot;.asc&amp;quot; || { echo &amp;quot;$0 ABORT: unable to download md5sums asc&amp;quot;; exit 1; }&lt;br /&gt;
		#...and we test it&lt;br /&gt;
		[ $($GPG --verify $MD5LIST&amp;quot;.asc&amp;quot; $MD5LIST 1&amp;gt; /dev/null) ] &amp;amp;&amp;amp; \&lt;br /&gt;
			{ echo &amp;quot;$0 ABORT: md5sums didn't pass gpg check&amp;quot;; exit 1; }&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#echo ${NEWPATCHES}&lt;br /&gt;
&lt;br /&gt;
#create a log file&lt;br /&gt;
TMPLOG=$TMPDIR/message-$(date +%Y%m%d%H%M%S)&lt;br /&gt;
echo &amp;quot;Upgrade report:&amp;quot; &amp;gt; $TMPLOG&lt;br /&gt;
&lt;br /&gt;
#if we have a new patch we download it&lt;br /&gt;
WGETPATCHES=&amp;quot;&amp;quot;&lt;br /&gt;
for FILE in $NEWPATCHES; do&lt;br /&gt;
	$DIALOGBASE --title &amp;quot;$DMESSAGE&amp;quot; $PASSIVE $(basename $FILE) $SIZE4 2&amp;gt;/dev/null &amp;amp;&lt;br /&gt;
	$WGET $WGETOPTS $SERVER/$FILE&lt;br /&gt;
	[ $? -eq 0 ] || {&lt;br /&gt;
		rm $(basename $FILE) &amp;amp;&amp;gt;/dev/null	#if we fail and we have a partial download we remove the file&lt;br /&gt;
		echo &amp;quot;unable to download $(basename $FILE): file discarded&amp;quot; &amp;gt;&amp;gt; $TMPLOG&lt;br /&gt;
#this line kills the kde popup dialog if it is used... otherwise it does nothing!&lt;br /&gt;
		kill $(ps aux | grep -m1 &amp;quot;passivepopup&amp;quot; | awk '{printf $2&amp;quot;\n&amp;quot;}') &amp;amp;&amp;gt;/dev/null&lt;br /&gt;
		continue&lt;br /&gt;
	}&lt;br /&gt;
	#if we want to check the gpg key we download tgz signatures&lt;br /&gt;
	[ $CHECKGPG -eq 1 ] &amp;amp;&amp;amp; {&lt;br /&gt;
		$WGET $WGETOPTS $SERVER/$FILE.&amp;quot;asc&amp;quot;&lt;br /&gt;
 		[ $? -eq 0 ] || {&lt;br /&gt;
			rm $(basename $FILE) &amp;amp;&amp;gt;/dev/null	#if we fail we remove the file&lt;br /&gt;
			rm $(basename $FILE)&amp;quot;.asc&amp;quot; &amp;amp;&amp;gt;/dev/null&lt;br /&gt;
			echo &amp;quot;unable to download $(basename $FILE).asc: file discarded&amp;quot; &amp;gt;&amp;gt; $TMPLOG&lt;br /&gt;
			kill $(ps aux | grep -m1 &amp;quot;passivepopup&amp;quot; | awk '{printf $2&amp;quot;\n&amp;quot;}') &amp;amp;&amp;gt;/dev/null&lt;br /&gt;
			continue&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
	WGETPATCHES=&amp;quot;$WGETPATCHES $(basename $FILE)&amp;quot;	#if everything goes right we add the file to the upgrade list&lt;br /&gt;
	kill $(ps aux | grep -m1 &amp;quot;passivepopup&amp;quot; | awk '{printf $2&amp;quot;\n&amp;quot;}') &amp;amp;&amp;gt;/dev/null&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
#echo $WGETPATCHES&lt;br /&gt;
&lt;br /&gt;
[ -z &amp;quot;$WGETPATCHES&amp;quot; ] &amp;amp;&amp;amp; [ -z &amp;quot;$PENDINGPATCHES&amp;quot; ] &amp;amp;&amp;amp; { echo &amp;quot;$0 ABORT: unable to download patches&amp;quot;; \&lt;br /&gt;
	rm $NEWLIST; exit 0; }&lt;br /&gt;
&lt;br /&gt;
#if we want to check the md5 it is time to do it!&lt;br /&gt;
MD5PATCHES=&amp;quot;&amp;quot;&lt;br /&gt;
[ $CHECKMD5 -eq 1 ] &amp;amp;&amp;amp; {&lt;br /&gt;
	for FILE in $WGETPATCHES; do&lt;br /&gt;
		SUM=$($MD5SUM $FILE)&lt;br /&gt;
		STRING=$(grep $SUM $MD5LIST | cut -f 3 -d /)	#if we match a checksum look if it is related to the right file!&lt;br /&gt;
		[ $STRING==$FILE ] &amp;amp;&amp;amp; MD5PATCHES=&amp;quot;$MD5PATCHES $FILE&amp;quot; \&lt;br /&gt;
		|| {&lt;br /&gt;
			rm $FILE 2&amp;gt; /dev/null	#if the file fails the checksum we remove it&lt;br /&gt;
			rm $FILE&amp;quot;.asc&amp;quot; 2&amp;gt;/dev/null&lt;br /&gt;
			echo &amp;quot;$(basename $FILE) didn't pass the md5sum: file discarded&amp;quot; &amp;gt;&amp;gt; $TMPLOG&lt;br /&gt;
		}&lt;br /&gt;
	done&lt;br /&gt;
} || {	#if we don't want to do any check&lt;br /&gt;
MD5PATCHES=&amp;quot;$WGETPATCHES&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#echo $MD5PATCHES&lt;br /&gt;
&lt;br /&gt;
[ -z &amp;quot;$MD5PATCHES&amp;quot; ] &amp;amp;&amp;amp; [ -z &amp;quot;$PENDINGPATCHES&amp;quot; ] &amp;amp;&amp;amp; { echo &amp;quot;$0 ABORT: no patch passed the md5 check&amp;quot;; \&lt;br /&gt;
	rm $NEWLIST; exit 0; }&lt;br /&gt;
&lt;br /&gt;
#if we want to check gpg key&lt;br /&gt;
[ $CHECKGPG -eq 1 ] &amp;amp;&amp;amp; {&lt;br /&gt;
	for FILE in $MD5PATCHES; do&lt;br /&gt;
		$GPG --verify $FILE&amp;quot;.asc&amp;quot; $FILE 1&amp;gt;/dev/null&lt;br /&gt;
		[ ! $? -eq 0 ] &amp;amp;&amp;amp; {&lt;br /&gt;
			rm $FILE 2&amp;gt; /dev/null	#if the file fails the gpg check we remove it&lt;br /&gt;
			rm $FILE&amp;quot;.asc&amp;quot; 2&amp;gt;/dev/null&lt;br /&gt;
			echo &amp;quot;$(basename $FILE) didn't pass the gpg check: file discarded&amp;quot; &amp;gt;&amp;gt; $TMPLOG&lt;br /&gt;
		} || {&lt;br /&gt;
			GPGPATCHES=&amp;quot;$GPGPATCHES $FILE&amp;quot;	#esle we add the file to the upgrade list&lt;br /&gt;
		}&lt;br /&gt;
	done&lt;br /&gt;
} || {	#else we skip the gpg signature check&lt;br /&gt;
	GPGPATCHES=&amp;quot;$MD5PATCHES&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#append pending patches (they have been checked in a previous session)&lt;br /&gt;
GPGPATCHES=&amp;quot;$GPGPATCHES $PENDINGPATCHES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[ -z &amp;quot;$GPGPATCHES&amp;quot; ] &amp;amp;&amp;amp; { echo &amp;quot;$0 ABORT: no patch passed the gpg check&amp;quot;; rm $NEWLIST; exit 0; }&lt;br /&gt;
&lt;br /&gt;
#if and old version was present in the local mirror, we remove it! (we use the OBSOLETEPATCHES variable)&lt;br /&gt;
RemoveOldVersion&lt;br /&gt;
&lt;br /&gt;
$UPGRADEPKG $UPOPTS $GPGPATCHES &amp;gt;&amp;gt; $TMPLOG&lt;br /&gt;
&lt;br /&gt;
#show report&lt;br /&gt;
[ ! $NOTIFY = &amp;quot;GNOME&amp;quot; ] &amp;amp;&amp;amp; $DIALOGBASE --title &amp;quot;$TITLE&amp;quot; --textbox &amp;quot;$TMPLOG&amp;quot; $SIZE3 || \&lt;br /&gt;
$DIALOGBASE --title &amp;quot;$TITLE&amp;quot; --text-info --filename=&amp;quot;$LOCALMIRROR/$TMPLOG&amp;quot; $SIZE3&lt;br /&gt;
rm $TMPLOG&lt;br /&gt;
&lt;br /&gt;
# update info about last check&lt;br /&gt;
mv $NEWLIST $OLDLIST 2&amp;gt;/dev/null&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
= SSANotifier.conf =&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#######################################################################&lt;br /&gt;
#set your download options (see wget man page).&lt;br /&gt;
#leave it black for no options. by default the -q option is used&lt;br /&gt;
&lt;br /&gt;
WGETOPTS=&amp;quot;-q&amp;quot;&lt;br /&gt;
&lt;br /&gt;
#######################################################################&lt;br /&gt;
#set to 1 if you want to check the md5 of tgzs. set to 0 otherwise&lt;br /&gt;
#!!! note that the md5sum utility is still required, even if you set this value to 0 !!!&lt;br /&gt;
&lt;br /&gt;
CHECKMD5=1&lt;br /&gt;
&lt;br /&gt;
#######################################################################&lt;br /&gt;
#set to 1 if you want to check the gpg key of tgzs. set to 0 otherwise&lt;br /&gt;
&lt;br /&gt;
CHECKGPG=1&lt;br /&gt;
&lt;br /&gt;
#######################################################################&lt;br /&gt;
#set location of slackware public gpg key&lt;br /&gt;
#!!! used only if CHECKGPG is set to 1 !!!&lt;br /&gt;
#for example:&lt;br /&gt;
#GPGKEY=http://slackware.osuosl.org/slackware-12.0/GPG-KEY&lt;br /&gt;
&lt;br /&gt;
GPGKEY=&lt;br /&gt;
&lt;br /&gt;
#######################################################################&lt;br /&gt;
#select your preferred patches server. for example:&lt;br /&gt;
#SERVER=&amp;quot;http://slackware.osuosl.org/slackware-12.0/patches&amp;quot;&lt;br /&gt;
&lt;br /&gt;
SERVER=&lt;br /&gt;
&lt;br /&gt;
#######################################################################&lt;br /&gt;
#select your preferred location to store patches.&lt;br /&gt;
#for example:&lt;br /&gt;
#LOCALMIRROR=&amp;quot;/var/log/patches/&amp;quot;&lt;br /&gt;
&lt;br /&gt;
LOCALMIRROR=&lt;br /&gt;
&lt;br /&gt;
#######################################################################&lt;br /&gt;
#set your preferred way for notifications&lt;br /&gt;
#possible values are:&lt;br /&gt;
#NOTIFY=KDE		to use from KDE via the kdialog interface&lt;br /&gt;
#NOTIFY=SHELL	to use from shell via the dialog interface&lt;br /&gt;
#NOTIFY=GNOME	!!! actually not implemented !!! to use from GNOME via the gdialog interface, actually not implemented&lt;br /&gt;
#NOTIFY=X11		!!! actually not implemented !!! to use with any grafical environment different from kde and gnome&lt;br /&gt;
&lt;br /&gt;
NOTIFY=SHELL&lt;br /&gt;
&lt;br /&gt;
#######################################################################&lt;br /&gt;
#set your upgrade command (full path). for example:&lt;br /&gt;
#UPGRADEPKG=/sbin/upgradepkg&lt;br /&gt;
&lt;br /&gt;
UPGRADEPKG=/sbin/upgradepkg&lt;br /&gt;
&lt;br /&gt;
#######################################################################&lt;br /&gt;
#set upgrade options (see man page of your upgrade utility)&lt;br /&gt;
#leave it black for no options.&lt;br /&gt;
#!!! if you want to test the tool behaviour without any real update, !!!&lt;br /&gt;
#!!! try the /sbin/upgradepkg utility and use the --dry-run option   !!!&lt;br /&gt;
&lt;br /&gt;
UPOPTS=&amp;quot;--dry-run&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Data: 21/10/2007&lt;br /&gt;
* Autore: Absinthe&lt;/div&gt;</summary>
		<author><name>Slacky</name></author>	</entry>

	</feed>