--- rpms/smeserver-yum/sme10/smeserver-yum-2.6.0.bz8705.avoidReboot.patch 2017/02/18 17:06:46 1.1 +++ rpms/smeserver-yum/sme10/smeserver-yum-2.6.0.bz8705.avoidReboot.patch 2017/02/19 21:05:27 1.2 @@ -1,7 +1,7 @@ diff -Nur smeserver-yum-2.6.0.bz8705.old/root/usr/lib/yum-plugins/smeserver.py smeserver-yum-2.6.0.bz8705.new/root/usr/lib/yum-plugins/smeserver.py --- smeserver-yum-2.6.0.bz8705.old/root/usr/lib/yum-plugins/smeserver.py 2013-01-31 17:35:08.000000000 +0100 -+++ smeserver-yum-2.6.0.bz8705.new/root/usr/lib/yum-plugins/smeserver.py 2017-02-18 17:59:40.293143635 +0100 -@@ -14,72 +14,250 @@ ++++ smeserver-yum-2.6.0.bz8705.new/root/usr/lib/yum-plugins/smeserver.py 2017-02-19 22:03:21.922929438 +0100 +@@ -14,72 +14,278 @@ signal_event = '/sbin/e-smith/signal-event' config_set = '/sbin/e-smith/config' status_file = '/var/run/yum.status' @@ -33,11 +33,13 @@ diff -Nur smeserver-yum-2.6.0.bz8705.old +servicenames['proftp']='proftpd', +servicenames['samba']='smbd', +servicenames['spamassassin']='spamd', ++servicenames['squid']='squid', +servicenames['dovecot']='dovecot','pop3','pop3s' + smechange = False ourfile = False ++erasing = False def report_yum_status(status): - fileHandle = open(status_file, 'w') @@ -60,10 +62,6 @@ diff -Nur smeserver-yum-2.6.0.bz8705.old - ourfile = True - report_yum_status('prereposetup') + global ourfile -+ global eventlist -+ global actionlist -+ global templateslist -+ global serviceslist + + ourfile = True + report_yum_status('prereposetup') @@ -92,16 +90,21 @@ diff -Nur smeserver-yum-2.6.0.bz8705.old + # otherwise for updated packages headers will not be available + ts = conduit.getTsInfo() + removes = ts.getMembersWithState(output_states=TS_REMOVE_STATES) -+ ++ global smechange + global eventlist + global actionlist + global templateslist + global serviceslist -+ ++ global erasing ++ + for tsmem in removes: ++ erasing = True + (n, a, e, v, r) = tsmem.po.pkgtup -+ print 'Package: ' + tsmem.name + ' remove' ++ #only for debug ++ #print 'Package: ' + tsmem.name + ' remove' + smeevent = tsmem.name + '-update' ++ #only for debug ++ #print smeevent + if os.path.isdir(events_path + os.sep + smeevent): + tmppath = events_path + os.sep + smeevent + os.sep + eventlist[tsmem.name] = smeevent @@ -126,8 +129,9 @@ diff -Nur smeserver-yum-2.6.0.bz8705.old + if not serviceslist.has_key(f): + serviceslist[f]=mytmpserv + else: -+ print "old value: " + serviceslist[f] -+ print "new value: " + mytmpserv ++ #only for debug ++ #print "old value: " + serviceslist[f] ++ #print "new value: " + mytmpserv + + if mytmpserv == "restart": + print "overriding all signals, forcing restart" @@ -136,6 +140,12 @@ diff -Nur smeserver-yum-2.6.0.bz8705.old + else: + if n.startswith('smeserver') or n.startswith('e-smith'): + smechange = True ++ ++ #only for debug ++ #print 'smechange: '+str(smechange) ++ #print 'eventlist: '+ str(eventlist) ++ #print 'templateslist: '+str(templateslist) ++ #print 'serviceslist: '+str(serviceslist) def posttrans_hook(conduit): - global smechange @@ -164,10 +174,14 @@ diff -Nur smeserver-yum-2.6.0.bz8705.old + global actionlist + global templateslist + global serviceslist ++ global erasing + ++ + for tsmem in ts.getMembers(): + (n, a, e, v, r) = tsmem.po.pkgtup -+ ++ ++ #print 'smechange: '+str(smechange) ++ + # we're upgrading/installing/removing a rebootpkgs package.. a reboot is required + for pkg in rebootpkgs: + if n.startswith(pkg): @@ -186,15 +200,16 @@ diff -Nur smeserver-yum-2.6.0.bz8705.old + if not serviceslist.has_key(name): + serviceslist[name] = 'restart' + else: -+ print pkg ++ #only for debug ++ #print pkg + if not serviceslist.has_key(pkg): + serviceslist[pkg] = 'restart' + -+ #print serviceslist + + #if smechange is true we can ignore the following part -+ if not smechange: ++ if not smechange and not erasing: + ++ #smeevent = 'yum-reconfigure-' + tsmem.name + smeevent = tsmem.name + '-update' + if os.path.isdir(events_path + os.sep + smeevent): + tmppath = events_path + os.sep + smeevent + os.sep @@ -230,10 +245,12 @@ diff -Nur smeserver-yum-2.6.0.bz8705.old + if not serviceslist.has_key(f): + serviceslist[f]=mytmpserv + else: -+ print "old value: " + serviceslist[f] -+ print "new value: " + mytmpserv ++ #only for debug ++ #print "old value: " + serviceslist[f] ++ #print "new value: " + mytmpserv + + if mytmpserv == "restart": ++ #only for debug + print "overriding all signals, forcing restart" + serviceslist[f]="restart" + @@ -241,30 +258,41 @@ diff -Nur smeserver-yum-2.6.0.bz8705.old + if n.startswith('smeserver') or n.startswith('e-smith'): + smechange = True + ++ ++ #only for debug ++ #print 'smechange: '+str(smechange) ++ #print 'post-trans' ++ #print 'eventlist: '+ str(eventlist) ++ #print 'templateslist: '+str(templateslist) ++ #print 'serviceslist: '+str(serviceslist) ++ + # check if smechange is true or if eventlist has items.. in both cases we must initialize databases + if smechange == True or len(eventlist)>0: ++ print 'Initializing databases' + os.spawnl(os.P_WAIT, initialize_database, initialize_database) + + # now, if smechange is false (no reboot needed), we can execute actions, expan templates and adjust services -+ if not smechange: ++ #if not smechange: + -+ if len(actionlist)>0: -+ print "Executing actions" -+ for kactions in actionlist: -+ #print kactions ++ if len(actionlist)>0: ++ print "Executing actions" ++ for kactions in actionlist: ++ #print kactions ++ if os.path.isfile(kactions): + os.spawnl(os.P_WAIT, kactions, kactions) + -+ if len(templateslist)>0: -+ print "Expanding templates" -+ for ktemplates in templateslist: -+ #print ktemplates ++ if len(templateslist)>0: ++ print "Expanding templates" ++ for ktemplates in templateslist: ++ #print ktemplates ++ if os.path.isfile(ktemplates): + os.spawnl(os.P_WAIT, expand_template, expand_template, ktemplates) + -+ if len(serviceslist)>0: -+ print "Adjusting services" -+ for kservices in serviceslist: -+ print kservices + ": " + serviceslist[kservices] -+ os.spawnl(os.P_WAIT, service, service, kservices, serviceslist[kservices]) ++ if len(serviceslist)>0: ++ print "Adjusting services" ++ for kservices in serviceslist: ++ print kservices + ": " + serviceslist[kservices] ++ os.spawnl(os.P_WAIT, service, service, kservices, serviceslist[kservices]) + + + if smechange: