diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..e594810
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,4 @@
+*.rpm
+*.log
+*spec-20*
+*.tar.xz
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..5f0dfa7
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,21 @@
+# Makefile for source rpm: smeserver-yum
+# $Id: Makefile,v 1.1 2016/02/05 23:20:26 stephdl Exp $
+NAME := smeserver-yum
+SPECFILE = $(firstword $(wildcard *.spec))
+
+define find-makefile-common
+for d in common ../common ../../common ; do if [ -f $$d/Makefile.common ] ; then if [ -f $$d/CVS/Root -a -w $$/Makefile.common ] ; then cd $$d ; cvs -Q update ; fi ; echo "$$d/Makefile.common" ; break ; fi ; done
+endef
+
+MAKEFILE_COMMON := $(shell $(find-makefile-common))
+
+ifeq ($(MAKEFILE_COMMON),)
+# attept a checkout
+define checkout-makefile-common
+test -f CVS/Root && { cvs -Q -d $$(cat CVS/Root) checkout common && echo "common/Makefile.common" ; } || { echo "ERROR: I can't figure out how to checkout the 'common' module." ; exit -1 ; } >&2
+endef
+
+MAKEFILE_COMMON := $(shell $(checkout-makefile-common))
+endif
+
+include $(MAKEFILE_COMMON)
diff --git a/README.md b/README.md
index f76705b..ea1ea93 100644
--- a/README.md
+++ b/README.md
@@ -1,3 +1,17 @@
-# smeserver-yum
+# smeserver-yum
-SMEServer Koozali developed git repo for smeserver-yum smeserver
\ No newline at end of file
+SMEServer Koozali developed git repo for smeserver-yum smeserver
+
+## Wiki
+ https://wiki.koozali.org/
+
+## Bugzilla
+Show list of outstanding bugs: [here](https://bugs.koozali.org/buglist.cgi?component=smeserver-yum&product=SME%20Server%2010.X&query_format=advanced&limit=0&bug_status=UNCONFIRMED&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&bug_status=CONFIRMED)
+
+## Description
+
+ *This description has been generated by an LLM AI system and cannot be relied on to be fully correct.*
+*Once it has been checked, then this comment will be deleted*
+
+
+Yum is a software package manager for Linux that makes it easy to install, update, and remove software packages on Linux systems. Yum can automatically download and install software packages from online repositories, as well as update existing packages. It also has the ability to verify package integrity, so that users can be sure that the software is legitimate and up-to-date. Yum is a great tool for managing software packages, and it’s one of the main reasons why many Linux distributions are so popular.
diff --git a/contriborbase b/contriborbase
new file mode 100644
index 0000000..ef36a67
--- /dev/null
+++ b/contriborbase
@@ -0,0 +1 @@
+sme10
diff --git a/createlinks b/createlinks
new file mode 100755
index 0000000..f8f5ff4
--- /dev/null
+++ b/createlinks
@@ -0,0 +1,37 @@
+#!/usr/bin/perl -w
+
+use esmith::Build::CreateLinks qw(:all);
+use File::Basename;
+use File::Path;
+
+foreach my $file (qw(/etc/yum.conf /etc/yum/protected.d/smeserver.conf
+ /etc/yum.smerepos.d/sme-base.repo /etc/yum/yum-cron.conf))
+{
+ templates2events($file, qw(yum-modify bootstrap-console-save smeserver-yum-update));
+}
+
+templates2events("/etc/crontab", "yum-modify");
+
+for ( qw(install remove update) )
+{
+ event_link("yum-action", "yum-$_", "20");
+}
+
+safe_symlink("restart", "root/etc/e-smith/events/yum-modify/services2adjust/yum");
+
+for ( qw(bootstrap-console-save yum-update smeserver-yum-update) )
+{
+ event_link("yum-import-keys", $_, "10");
+}
+
+my $event= "smeserver-yum-update";
+# systemd-specific action mandatory for this package-update event
+event_link("systemd-reload", $event, "89");
+event_link("systemd-default", $event, "88");
+templates2events("/etc/rsyslog.conf",$event);
+safe_symlink("restart", "root/etc/e-smith/events/$event/services2adjust/rsyslog");
+
+#--------------------------------------------------
+# functions for manager panel
+#--------------------------------------------------
+panel_link("yum", "manager");
diff --git a/root/etc/cron.daily/smeserver-yum b/root/etc/cron.daily/smeserver-yum
new file mode 100644
index 0000000..07535c8
--- /dev/null
+++ b/root/etc/cron.daily/smeserver-yum
@@ -0,0 +1,27 @@
+#!/bin/sh
+#----------------------------------------------------------------------
+# smeserver-yum daily tasks
+# Copyright (C) 2005 Gordon Rowell
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License or more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+#----------------------------------------------------------------------
+
+yum_status=$(/sbin/e-smith/db configuration getprop yum status)
+yum_status=${yum_status:-disabled}
+
+[ $yum_status = 'enabled' ] || exit 0
+
+/usr/bin/systemctl restart yum.service
+
diff --git a/root/etc/e-smith/db/configuration/defaults/yum/AutoInstallUpdates b/root/etc/e-smith/db/configuration/defaults/yum/AutoInstallUpdates
new file mode 100644
index 0000000..7a68b11
--- /dev/null
+++ b/root/etc/e-smith/db/configuration/defaults/yum/AutoInstallUpdates
@@ -0,0 +1 @@
+disabled
diff --git a/root/etc/e-smith/db/configuration/defaults/yum/CheckContribs b/root/etc/e-smith/db/configuration/defaults/yum/CheckContribs
new file mode 100644
index 0000000..86981e6
--- /dev/null
+++ b/root/etc/e-smith/db/configuration/defaults/yum/CheckContribs
@@ -0,0 +1 @@
+enabled
diff --git a/root/etc/e-smith/db/configuration/defaults/yum/DeltaRpmProcess b/root/etc/e-smith/db/configuration/defaults/yum/DeltaRpmProcess
new file mode 100644
index 0000000..7a68b11
--- /dev/null
+++ b/root/etc/e-smith/db/configuration/defaults/yum/DeltaRpmProcess
@@ -0,0 +1 @@
+disabled
diff --git a/root/etc/e-smith/db/configuration/defaults/yum/EnableGroups b/root/etc/e-smith/db/configuration/defaults/yum/EnableGroups
new file mode 100644
index 0000000..7ecb56e
--- /dev/null
+++ b/root/etc/e-smith/db/configuration/defaults/yum/EnableGroups
@@ -0,0 +1 @@
+no
diff --git a/root/etc/e-smith/db/configuration/defaults/yum/GPGCheck b/root/etc/e-smith/db/configuration/defaults/yum/GPGCheck
new file mode 100644
index 0000000..573541a
--- /dev/null
+++ b/root/etc/e-smith/db/configuration/defaults/yum/GPGCheck
@@ -0,0 +1 @@
+0
diff --git a/root/etc/e-smith/db/configuration/defaults/yum/PackageFunctions b/root/etc/e-smith/db/configuration/defaults/yum/PackageFunctions
new file mode 100644
index 0000000..7a68b11
--- /dev/null
+++ b/root/etc/e-smith/db/configuration/defaults/yum/PackageFunctions
@@ -0,0 +1 @@
+disabled
diff --git a/root/etc/e-smith/db/configuration/defaults/yum/RandomDelay b/root/etc/e-smith/db/configuration/defaults/yum/RandomDelay
new file mode 100644
index 0000000..52bd8e4
--- /dev/null
+++ b/root/etc/e-smith/db/configuration/defaults/yum/RandomDelay
@@ -0,0 +1 @@
+120
diff --git a/root/etc/e-smith/db/configuration/defaults/yum/check4updates b/root/etc/e-smith/db/configuration/defaults/yum/check4updates
new file mode 100644
index 0000000..f1931f6
--- /dev/null
+++ b/root/etc/e-smith/db/configuration/defaults/yum/check4updates
@@ -0,0 +1 @@
+daily
diff --git a/root/etc/e-smith/db/configuration/defaults/yum/status b/root/etc/e-smith/db/configuration/defaults/yum/status
new file mode 100644
index 0000000..86981e6
--- /dev/null
+++ b/root/etc/e-smith/db/configuration/defaults/yum/status
@@ -0,0 +1 @@
+enabled
diff --git a/root/etc/e-smith/db/configuration/defaults/yum/type b/root/etc/e-smith/db/configuration/defaults/yum/type
new file mode 100644
index 0000000..24e1098
--- /dev/null
+++ b/root/etc/e-smith/db/configuration/defaults/yum/type
@@ -0,0 +1 @@
+service
diff --git a/root/etc/e-smith/db/configuration/migrate/Yum-remove-check4contribsupdates b/root/etc/e-smith/db/configuration/migrate/Yum-remove-check4contribsupdates
new file mode 100644
index 0000000..7abf48f
--- /dev/null
+++ b/root/etc/e-smith/db/configuration/migrate/Yum-remove-check4contribsupdates
@@ -0,0 +1,11 @@
+{
+#Added for bug 8855 and bug 8858
+#we want to remove the property check4contribsupdates
+
+
+my $check4contribsupdates = $DB->get_prop('yum','check4contribsupdates');
+
+if ($check4contribsupdates) {
+ $DB->get('yum')->delete_prop('check4contribsupdates');
+ }
+}
diff --git a/root/etc/e-smith/db/configuration/migrate/Yum-remove-previous-eolversion b/root/etc/e-smith/db/configuration/migrate/Yum-remove-previous-eolversion
new file mode 100644
index 0000000..b409ed6
--- /dev/null
+++ b/root/etc/e-smith/db/configuration/migrate/Yum-remove-previous-eolversion
@@ -0,0 +1,9 @@
+{
+ use POSIX qw(strftime);
+ my $curdate = strftime '%Y%m%d', localtime;
+ my $curVers = 7;
+ my $curVersEOL = 20240630;
+ # we remove the forced value if for a previous release;
+ # also if not after the eol date
+ my $dropit = $DB->get_prop_and_delete('yum','eolversion') if ( (substr($yum{eolversion},0,1)<$curVers) || ( "$curdate" < "$curVersEOL") );
+}
diff --git a/root/etc/e-smith/db/yum_available/.gitignore b/root/etc/e-smith/db/yum_available/.gitignore
new file mode 100644
index 0000000..e69de29
diff --git a/root/etc/e-smith/db/yum_installed/.gitignore b/root/etc/e-smith/db/yum_installed/.gitignore
new file mode 100644
index 0000000..e69de29
diff --git a/root/etc/e-smith/db/yum_repositories/defaults/base/EnableGroups b/root/etc/e-smith/db/yum_repositories/defaults/base/EnableGroups
new file mode 100644
index 0000000..7ecb56e
--- /dev/null
+++ b/root/etc/e-smith/db/yum_repositories/defaults/base/EnableGroups
@@ -0,0 +1 @@
+no
diff --git a/root/etc/e-smith/db/yum_repositories/defaults/base/GPGCheck b/root/etc/e-smith/db/yum_repositories/defaults/base/GPGCheck
new file mode 100644
index 0000000..7cfab5b
--- /dev/null
+++ b/root/etc/e-smith/db/yum_repositories/defaults/base/GPGCheck
@@ -0,0 +1 @@
+yes
diff --git a/root/etc/e-smith/db/yum_repositories/defaults/base/MirrorList b/root/etc/e-smith/db/yum_repositories/defaults/base/MirrorList
new file mode 100644
index 0000000..8726a85
--- /dev/null
+++ b/root/etc/e-smith/db/yum_repositories/defaults/base/MirrorList
@@ -0,0 +1 @@
+http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
diff --git a/root/etc/e-smith/db/yum_repositories/defaults/base/Name b/root/etc/e-smith/db/yum_repositories/defaults/base/Name
new file mode 100644
index 0000000..7866a86
--- /dev/null
+++ b/root/etc/e-smith/db/yum_repositories/defaults/base/Name
@@ -0,0 +1 @@
+CentOS - os
diff --git a/root/etc/e-smith/db/yum_repositories/defaults/base/Visible b/root/etc/e-smith/db/yum_repositories/defaults/base/Visible
new file mode 100644
index 0000000..7cfab5b
--- /dev/null
+++ b/root/etc/e-smith/db/yum_repositories/defaults/base/Visible
@@ -0,0 +1 @@
+yes
diff --git a/root/etc/e-smith/db/yum_repositories/defaults/base/status b/root/etc/e-smith/db/yum_repositories/defaults/base/status
new file mode 100644
index 0000000..86981e6
--- /dev/null
+++ b/root/etc/e-smith/db/yum_repositories/defaults/base/status
@@ -0,0 +1 @@
+enabled
diff --git a/root/etc/e-smith/db/yum_repositories/defaults/base/type b/root/etc/e-smith/db/yum_repositories/defaults/base/type
new file mode 100644
index 0000000..09d06c8
--- /dev/null
+++ b/root/etc/e-smith/db/yum_repositories/defaults/base/type
@@ -0,0 +1 @@
+repository
diff --git a/root/etc/e-smith/db/yum_repositories/defaults/centosplus/EnableGroups b/root/etc/e-smith/db/yum_repositories/defaults/centosplus/EnableGroups
new file mode 100644
index 0000000..7ecb56e
--- /dev/null
+++ b/root/etc/e-smith/db/yum_repositories/defaults/centosplus/EnableGroups
@@ -0,0 +1 @@
+no
diff --git a/root/etc/e-smith/db/yum_repositories/defaults/centosplus/GPGCheck b/root/etc/e-smith/db/yum_repositories/defaults/centosplus/GPGCheck
new file mode 100644
index 0000000..7cfab5b
--- /dev/null
+++ b/root/etc/e-smith/db/yum_repositories/defaults/centosplus/GPGCheck
@@ -0,0 +1 @@
+yes
diff --git a/root/etc/e-smith/db/yum_repositories/defaults/centosplus/MirrorList b/root/etc/e-smith/db/yum_repositories/defaults/centosplus/MirrorList
new file mode 100644
index 0000000..dde8b50
--- /dev/null
+++ b/root/etc/e-smith/db/yum_repositories/defaults/centosplus/MirrorList
@@ -0,0 +1 @@
+http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus
diff --git a/root/etc/e-smith/db/yum_repositories/defaults/centosplus/Name b/root/etc/e-smith/db/yum_repositories/defaults/centosplus/Name
new file mode 100644
index 0000000..b3c772b
--- /dev/null
+++ b/root/etc/e-smith/db/yum_repositories/defaults/centosplus/Name
@@ -0,0 +1 @@
+CentOS - centosplus
diff --git a/root/etc/e-smith/db/yum_repositories/defaults/centosplus/Visible b/root/etc/e-smith/db/yum_repositories/defaults/centosplus/Visible
new file mode 100644
index 0000000..7ecb56e
--- /dev/null
+++ b/root/etc/e-smith/db/yum_repositories/defaults/centosplus/Visible
@@ -0,0 +1 @@
+no
diff --git a/root/etc/e-smith/db/yum_repositories/defaults/centosplus/status b/root/etc/e-smith/db/yum_repositories/defaults/centosplus/status
new file mode 100644
index 0000000..7a68b11
--- /dev/null
+++ b/root/etc/e-smith/db/yum_repositories/defaults/centosplus/status
@@ -0,0 +1 @@
+disabled
diff --git a/root/etc/e-smith/db/yum_repositories/defaults/centosplus/type b/root/etc/e-smith/db/yum_repositories/defaults/centosplus/type
new file mode 100644
index 0000000..09d06c8
--- /dev/null
+++ b/root/etc/e-smith/db/yum_repositories/defaults/centosplus/type
@@ -0,0 +1 @@
+repository
diff --git a/root/etc/e-smith/db/yum_repositories/defaults/extras/EnableGroups b/root/etc/e-smith/db/yum_repositories/defaults/extras/EnableGroups
new file mode 100644
index 0000000..7ecb56e
--- /dev/null
+++ b/root/etc/e-smith/db/yum_repositories/defaults/extras/EnableGroups
@@ -0,0 +1 @@
+no
diff --git a/root/etc/e-smith/db/yum_repositories/defaults/extras/GPGCheck b/root/etc/e-smith/db/yum_repositories/defaults/extras/GPGCheck
new file mode 100644
index 0000000..7cfab5b
--- /dev/null
+++ b/root/etc/e-smith/db/yum_repositories/defaults/extras/GPGCheck
@@ -0,0 +1 @@
+yes
diff --git a/root/etc/e-smith/db/yum_repositories/defaults/extras/MirrorList b/root/etc/e-smith/db/yum_repositories/defaults/extras/MirrorList
new file mode 100644
index 0000000..06223cf
--- /dev/null
+++ b/root/etc/e-smith/db/yum_repositories/defaults/extras/MirrorList
@@ -0,0 +1 @@
+http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras
diff --git a/root/etc/e-smith/db/yum_repositories/defaults/extras/Name b/root/etc/e-smith/db/yum_repositories/defaults/extras/Name
new file mode 100644
index 0000000..bdbce8e
--- /dev/null
+++ b/root/etc/e-smith/db/yum_repositories/defaults/extras/Name
@@ -0,0 +1 @@
+CentOS - extras
diff --git a/root/etc/e-smith/db/yum_repositories/defaults/extras/Visible b/root/etc/e-smith/db/yum_repositories/defaults/extras/Visible
new file mode 100644
index 0000000..7ecb56e
--- /dev/null
+++ b/root/etc/e-smith/db/yum_repositories/defaults/extras/Visible
@@ -0,0 +1 @@
+no
diff --git a/root/etc/e-smith/db/yum_repositories/defaults/extras/status b/root/etc/e-smith/db/yum_repositories/defaults/extras/status
new file mode 100644
index 0000000..7a68b11
--- /dev/null
+++ b/root/etc/e-smith/db/yum_repositories/defaults/extras/status
@@ -0,0 +1 @@
+disabled
diff --git a/root/etc/e-smith/db/yum_repositories/defaults/extras/type b/root/etc/e-smith/db/yum_repositories/defaults/extras/type
new file mode 100644
index 0000000..09d06c8
--- /dev/null
+++ b/root/etc/e-smith/db/yum_repositories/defaults/extras/type
@@ -0,0 +1 @@
+repository
diff --git a/root/etc/e-smith/db/yum_repositories/defaults/fasttrack/EnableGroups b/root/etc/e-smith/db/yum_repositories/defaults/fasttrack/EnableGroups
new file mode 100644
index 0000000..7ecb56e
--- /dev/null
+++ b/root/etc/e-smith/db/yum_repositories/defaults/fasttrack/EnableGroups
@@ -0,0 +1 @@
+no
diff --git a/root/etc/e-smith/db/yum_repositories/defaults/fasttrack/GPGCheck b/root/etc/e-smith/db/yum_repositories/defaults/fasttrack/GPGCheck
new file mode 100644
index 0000000..7cfab5b
--- /dev/null
+++ b/root/etc/e-smith/db/yum_repositories/defaults/fasttrack/GPGCheck
@@ -0,0 +1 @@
+yes
diff --git a/root/etc/e-smith/db/yum_repositories/defaults/fasttrack/MirrorList b/root/etc/e-smith/db/yum_repositories/defaults/fasttrack/MirrorList
new file mode 100644
index 0000000..b1a701c
--- /dev/null
+++ b/root/etc/e-smith/db/yum_repositories/defaults/fasttrack/MirrorList
@@ -0,0 +1 @@
+http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=fasttrack
diff --git a/root/etc/e-smith/db/yum_repositories/defaults/fasttrack/Name b/root/etc/e-smith/db/yum_repositories/defaults/fasttrack/Name
new file mode 100644
index 0000000..f7a4bfd
--- /dev/null
+++ b/root/etc/e-smith/db/yum_repositories/defaults/fasttrack/Name
@@ -0,0 +1 @@
+CentOS - fasttrack
diff --git a/root/etc/e-smith/db/yum_repositories/defaults/fasttrack/Visible b/root/etc/e-smith/db/yum_repositories/defaults/fasttrack/Visible
new file mode 100644
index 0000000..7ecb56e
--- /dev/null
+++ b/root/etc/e-smith/db/yum_repositories/defaults/fasttrack/Visible
@@ -0,0 +1 @@
+no
diff --git a/root/etc/e-smith/db/yum_repositories/defaults/fasttrack/status b/root/etc/e-smith/db/yum_repositories/defaults/fasttrack/status
new file mode 100644
index 0000000..7a68b11
--- /dev/null
+++ b/root/etc/e-smith/db/yum_repositories/defaults/fasttrack/status
@@ -0,0 +1 @@
+disabled
diff --git a/root/etc/e-smith/db/yum_repositories/defaults/fasttrack/type b/root/etc/e-smith/db/yum_repositories/defaults/fasttrack/type
new file mode 100644
index 0000000..09d06c8
--- /dev/null
+++ b/root/etc/e-smith/db/yum_repositories/defaults/fasttrack/type
@@ -0,0 +1 @@
+repository
diff --git a/root/etc/e-smith/db/yum_repositories/defaults/remi-safe/BaseURL b/root/etc/e-smith/db/yum_repositories/defaults/remi-safe/BaseURL
new file mode 100644
index 0000000..f6f2d91
--- /dev/null
+++ b/root/etc/e-smith/db/yum_repositories/defaults/remi-safe/BaseURL
@@ -0,0 +1 @@
+http://rpms.famillecollet.com/enterprise/$releasever/safe/$basearch/
diff --git a/root/etc/e-smith/db/yum_repositories/defaults/remi-safe/EnableGroups b/root/etc/e-smith/db/yum_repositories/defaults/remi-safe/EnableGroups
new file mode 100644
index 0000000..7ecb56e
--- /dev/null
+++ b/root/etc/e-smith/db/yum_repositories/defaults/remi-safe/EnableGroups
@@ -0,0 +1 @@
+no
diff --git a/root/etc/e-smith/db/yum_repositories/defaults/remi-safe/GPGCheck b/root/etc/e-smith/db/yum_repositories/defaults/remi-safe/GPGCheck
new file mode 100644
index 0000000..7cfab5b
--- /dev/null
+++ b/root/etc/e-smith/db/yum_repositories/defaults/remi-safe/GPGCheck
@@ -0,0 +1 @@
+yes
diff --git a/root/etc/e-smith/db/yum_repositories/defaults/remi-safe/GPGKey b/root/etc/e-smith/db/yum_repositories/defaults/remi-safe/GPGKey
new file mode 100644
index 0000000..9f7a2b8
--- /dev/null
+++ b/root/etc/e-smith/db/yum_repositories/defaults/remi-safe/GPGKey
@@ -0,0 +1 @@
+http://rpms.famillecollet.com/RPM-GPG-KEY-remi
diff --git a/root/etc/e-smith/db/yum_repositories/defaults/remi-safe/Name b/root/etc/e-smith/db/yum_repositories/defaults/remi-safe/Name
new file mode 100644
index 0000000..118b601
--- /dev/null
+++ b/root/etc/e-smith/db/yum_repositories/defaults/remi-safe/Name
@@ -0,0 +1 @@
+Remi - safe
diff --git a/root/etc/e-smith/db/yum_repositories/defaults/remi-safe/Visible b/root/etc/e-smith/db/yum_repositories/defaults/remi-safe/Visible
new file mode 100644
index 0000000..7cfab5b
--- /dev/null
+++ b/root/etc/e-smith/db/yum_repositories/defaults/remi-safe/Visible
@@ -0,0 +1 @@
+yes
diff --git a/root/etc/e-smith/db/yum_repositories/defaults/remi-safe/status b/root/etc/e-smith/db/yum_repositories/defaults/remi-safe/status
new file mode 100644
index 0000000..86981e6
--- /dev/null
+++ b/root/etc/e-smith/db/yum_repositories/defaults/remi-safe/status
@@ -0,0 +1 @@
+enabled
diff --git a/root/etc/e-smith/db/yum_repositories/defaults/remi-safe/type b/root/etc/e-smith/db/yum_repositories/defaults/remi-safe/type
new file mode 100644
index 0000000..09d06c8
--- /dev/null
+++ b/root/etc/e-smith/db/yum_repositories/defaults/remi-safe/type
@@ -0,0 +1 @@
+repository
diff --git a/root/etc/e-smith/db/yum_repositories/defaults/smeaddons/EnableGroups b/root/etc/e-smith/db/yum_repositories/defaults/smeaddons/EnableGroups
new file mode 100644
index 0000000..7cfab5b
--- /dev/null
+++ b/root/etc/e-smith/db/yum_repositories/defaults/smeaddons/EnableGroups
@@ -0,0 +1 @@
+yes
diff --git a/root/etc/e-smith/db/yum_repositories/defaults/smeaddons/GPGCheck b/root/etc/e-smith/db/yum_repositories/defaults/smeaddons/GPGCheck
new file mode 100644
index 0000000..7cfab5b
--- /dev/null
+++ b/root/etc/e-smith/db/yum_repositories/defaults/smeaddons/GPGCheck
@@ -0,0 +1 @@
+yes
diff --git a/root/etc/e-smith/db/yum_repositories/defaults/smeaddons/MirrorList b/root/etc/e-smith/db/yum_repositories/defaults/smeaddons/MirrorList
new file mode 100644
index 0000000..3d2b228
--- /dev/null
+++ b/root/etc/e-smith/db/yum_repositories/defaults/smeaddons/MirrorList
@@ -0,0 +1 @@
+https://mirrorlist.koozali.org/mirrorlist/smeaddons-10
diff --git a/root/etc/e-smith/db/yum_repositories/defaults/smeaddons/Name b/root/etc/e-smith/db/yum_repositories/defaults/smeaddons/Name
new file mode 100644
index 0000000..3ebc076
--- /dev/null
+++ b/root/etc/e-smith/db/yum_repositories/defaults/smeaddons/Name
@@ -0,0 +1 @@
+SME Server - addons
diff --git a/root/etc/e-smith/db/yum_repositories/defaults/smeaddons/Visible b/root/etc/e-smith/db/yum_repositories/defaults/smeaddons/Visible
new file mode 100644
index 0000000..7cfab5b
--- /dev/null
+++ b/root/etc/e-smith/db/yum_repositories/defaults/smeaddons/Visible
@@ -0,0 +1 @@
+yes
diff --git a/root/etc/e-smith/db/yum_repositories/defaults/smeaddons/status b/root/etc/e-smith/db/yum_repositories/defaults/smeaddons/status
new file mode 100644
index 0000000..86981e6
--- /dev/null
+++ b/root/etc/e-smith/db/yum_repositories/defaults/smeaddons/status
@@ -0,0 +1 @@
+enabled
diff --git a/root/etc/e-smith/db/yum_repositories/defaults/smeaddons/type b/root/etc/e-smith/db/yum_repositories/defaults/smeaddons/type
new file mode 100644
index 0000000..09d06c8
--- /dev/null
+++ b/root/etc/e-smith/db/yum_repositories/defaults/smeaddons/type
@@ -0,0 +1 @@
+repository
diff --git a/root/etc/e-smith/db/yum_repositories/defaults/smecontribs/EnableGroups b/root/etc/e-smith/db/yum_repositories/defaults/smecontribs/EnableGroups
new file mode 100644
index 0000000..7cfab5b
--- /dev/null
+++ b/root/etc/e-smith/db/yum_repositories/defaults/smecontribs/EnableGroups
@@ -0,0 +1 @@
+yes
diff --git a/root/etc/e-smith/db/yum_repositories/defaults/smecontribs/GPGCheck b/root/etc/e-smith/db/yum_repositories/defaults/smecontribs/GPGCheck
new file mode 100644
index 0000000..7cfab5b
--- /dev/null
+++ b/root/etc/e-smith/db/yum_repositories/defaults/smecontribs/GPGCheck
@@ -0,0 +1 @@
+yes
diff --git a/root/etc/e-smith/db/yum_repositories/defaults/smecontribs/MirrorList b/root/etc/e-smith/db/yum_repositories/defaults/smecontribs/MirrorList
new file mode 100644
index 0000000..329eec2
--- /dev/null
+++ b/root/etc/e-smith/db/yum_repositories/defaults/smecontribs/MirrorList
@@ -0,0 +1 @@
+https://mirrorlist.koozali.org/mirrorlist/smecontribs-10
diff --git a/root/etc/e-smith/db/yum_repositories/defaults/smecontribs/Name b/root/etc/e-smith/db/yum_repositories/defaults/smecontribs/Name
new file mode 100644
index 0000000..e8f3310
--- /dev/null
+++ b/root/etc/e-smith/db/yum_repositories/defaults/smecontribs/Name
@@ -0,0 +1 @@
+SME Server - contribs
diff --git a/root/etc/e-smith/db/yum_repositories/defaults/smecontribs/Visible b/root/etc/e-smith/db/yum_repositories/defaults/smecontribs/Visible
new file mode 100644
index 0000000..7cfab5b
--- /dev/null
+++ b/root/etc/e-smith/db/yum_repositories/defaults/smecontribs/Visible
@@ -0,0 +1 @@
+yes
diff --git a/root/etc/e-smith/db/yum_repositories/defaults/smecontribs/status b/root/etc/e-smith/db/yum_repositories/defaults/smecontribs/status
new file mode 100644
index 0000000..86981e6
--- /dev/null
+++ b/root/etc/e-smith/db/yum_repositories/defaults/smecontribs/status
@@ -0,0 +1 @@
+enabled
diff --git a/root/etc/e-smith/db/yum_repositories/defaults/smecontribs/type b/root/etc/e-smith/db/yum_repositories/defaults/smecontribs/type
new file mode 100644
index 0000000..09d06c8
--- /dev/null
+++ b/root/etc/e-smith/db/yum_repositories/defaults/smecontribs/type
@@ -0,0 +1 @@
+repository
diff --git a/root/etc/e-smith/db/yum_repositories/defaults/smedev/EnableGroups b/root/etc/e-smith/db/yum_repositories/defaults/smedev/EnableGroups
new file mode 100644
index 0000000..7cfab5b
--- /dev/null
+++ b/root/etc/e-smith/db/yum_repositories/defaults/smedev/EnableGroups
@@ -0,0 +1 @@
+yes
diff --git a/root/etc/e-smith/db/yum_repositories/defaults/smedev/GPGCheck b/root/etc/e-smith/db/yum_repositories/defaults/smedev/GPGCheck
new file mode 100644
index 0000000..7cfab5b
--- /dev/null
+++ b/root/etc/e-smith/db/yum_repositories/defaults/smedev/GPGCheck
@@ -0,0 +1 @@
+yes
diff --git a/root/etc/e-smith/db/yum_repositories/defaults/smedev/MirrorList b/root/etc/e-smith/db/yum_repositories/defaults/smedev/MirrorList
new file mode 100644
index 0000000..f704a42
--- /dev/null
+++ b/root/etc/e-smith/db/yum_repositories/defaults/smedev/MirrorList
@@ -0,0 +1 @@
+https://mirrorlist.koozali.org/mirrorlist/smedev-10
diff --git a/root/etc/e-smith/db/yum_repositories/defaults/smedev/Name b/root/etc/e-smith/db/yum_repositories/defaults/smedev/Name
new file mode 100644
index 0000000..d8c37d5
--- /dev/null
+++ b/root/etc/e-smith/db/yum_repositories/defaults/smedev/Name
@@ -0,0 +1 @@
+SME Server - dev
diff --git a/root/etc/e-smith/db/yum_repositories/defaults/smedev/Visible b/root/etc/e-smith/db/yum_repositories/defaults/smedev/Visible
new file mode 100644
index 0000000..7ecb56e
--- /dev/null
+++ b/root/etc/e-smith/db/yum_repositories/defaults/smedev/Visible
@@ -0,0 +1 @@
+no
diff --git a/root/etc/e-smith/db/yum_repositories/defaults/smedev/status b/root/etc/e-smith/db/yum_repositories/defaults/smedev/status
new file mode 100644
index 0000000..7a68b11
--- /dev/null
+++ b/root/etc/e-smith/db/yum_repositories/defaults/smedev/status
@@ -0,0 +1 @@
+disabled
diff --git a/root/etc/e-smith/db/yum_repositories/defaults/smedev/type b/root/etc/e-smith/db/yum_repositories/defaults/smedev/type
new file mode 100644
index 0000000..09d06c8
--- /dev/null
+++ b/root/etc/e-smith/db/yum_repositories/defaults/smedev/type
@@ -0,0 +1 @@
+repository
diff --git a/root/etc/e-smith/db/yum_repositories/defaults/smeextras/EnableGroups b/root/etc/e-smith/db/yum_repositories/defaults/smeextras/EnableGroups
new file mode 100644
index 0000000..7cfab5b
--- /dev/null
+++ b/root/etc/e-smith/db/yum_repositories/defaults/smeextras/EnableGroups
@@ -0,0 +1 @@
+yes
diff --git a/root/etc/e-smith/db/yum_repositories/defaults/smeextras/GPGCheck b/root/etc/e-smith/db/yum_repositories/defaults/smeextras/GPGCheck
new file mode 100644
index 0000000..7cfab5b
--- /dev/null
+++ b/root/etc/e-smith/db/yum_repositories/defaults/smeextras/GPGCheck
@@ -0,0 +1 @@
+yes
diff --git a/root/etc/e-smith/db/yum_repositories/defaults/smeextras/MirrorList b/root/etc/e-smith/db/yum_repositories/defaults/smeextras/MirrorList
new file mode 100644
index 0000000..7336e46
--- /dev/null
+++ b/root/etc/e-smith/db/yum_repositories/defaults/smeextras/MirrorList
@@ -0,0 +1 @@
+https://mirrorlist.koozali.org/mirrorlist/smeextras-10
diff --git a/root/etc/e-smith/db/yum_repositories/defaults/smeextras/Name b/root/etc/e-smith/db/yum_repositories/defaults/smeextras/Name
new file mode 100644
index 0000000..7e51fb7
--- /dev/null
+++ b/root/etc/e-smith/db/yum_repositories/defaults/smeextras/Name
@@ -0,0 +1 @@
+SME Server - extras
diff --git a/root/etc/e-smith/db/yum_repositories/defaults/smeextras/Visible b/root/etc/e-smith/db/yum_repositories/defaults/smeextras/Visible
new file mode 100644
index 0000000..7cfab5b
--- /dev/null
+++ b/root/etc/e-smith/db/yum_repositories/defaults/smeextras/Visible
@@ -0,0 +1 @@
+yes
diff --git a/root/etc/e-smith/db/yum_repositories/defaults/smeextras/status b/root/etc/e-smith/db/yum_repositories/defaults/smeextras/status
new file mode 100644
index 0000000..86981e6
--- /dev/null
+++ b/root/etc/e-smith/db/yum_repositories/defaults/smeextras/status
@@ -0,0 +1 @@
+enabled
diff --git a/root/etc/e-smith/db/yum_repositories/defaults/smeextras/type b/root/etc/e-smith/db/yum_repositories/defaults/smeextras/type
new file mode 100644
index 0000000..09d06c8
--- /dev/null
+++ b/root/etc/e-smith/db/yum_repositories/defaults/smeextras/type
@@ -0,0 +1 @@
+repository
diff --git a/root/etc/e-smith/db/yum_repositories/defaults/smeos/EnableGroups b/root/etc/e-smith/db/yum_repositories/defaults/smeos/EnableGroups
new file mode 100644
index 0000000..7cfab5b
--- /dev/null
+++ b/root/etc/e-smith/db/yum_repositories/defaults/smeos/EnableGroups
@@ -0,0 +1 @@
+yes
diff --git a/root/etc/e-smith/db/yum_repositories/defaults/smeos/GPGCheck b/root/etc/e-smith/db/yum_repositories/defaults/smeos/GPGCheck
new file mode 100644
index 0000000..7cfab5b
--- /dev/null
+++ b/root/etc/e-smith/db/yum_repositories/defaults/smeos/GPGCheck
@@ -0,0 +1 @@
+yes
diff --git a/root/etc/e-smith/db/yum_repositories/defaults/smeos/MirrorList b/root/etc/e-smith/db/yum_repositories/defaults/smeos/MirrorList
new file mode 100644
index 0000000..21c578b
--- /dev/null
+++ b/root/etc/e-smith/db/yum_repositories/defaults/smeos/MirrorList
@@ -0,0 +1 @@
+https://mirrorlist.koozali.org/mirrorlist/smeos-10
diff --git a/root/etc/e-smith/db/yum_repositories/defaults/smeos/Name b/root/etc/e-smith/db/yum_repositories/defaults/smeos/Name
new file mode 100644
index 0000000..1c681f1
--- /dev/null
+++ b/root/etc/e-smith/db/yum_repositories/defaults/smeos/Name
@@ -0,0 +1 @@
+SME Server - os
diff --git a/root/etc/e-smith/db/yum_repositories/defaults/smeos/Visible b/root/etc/e-smith/db/yum_repositories/defaults/smeos/Visible
new file mode 100644
index 0000000..7cfab5b
--- /dev/null
+++ b/root/etc/e-smith/db/yum_repositories/defaults/smeos/Visible
@@ -0,0 +1 @@
+yes
diff --git a/root/etc/e-smith/db/yum_repositories/defaults/smeos/status b/root/etc/e-smith/db/yum_repositories/defaults/smeos/status
new file mode 100644
index 0000000..86981e6
--- /dev/null
+++ b/root/etc/e-smith/db/yum_repositories/defaults/smeos/status
@@ -0,0 +1 @@
+enabled
diff --git a/root/etc/e-smith/db/yum_repositories/defaults/smeos/type b/root/etc/e-smith/db/yum_repositories/defaults/smeos/type
new file mode 100644
index 0000000..09d06c8
--- /dev/null
+++ b/root/etc/e-smith/db/yum_repositories/defaults/smeos/type
@@ -0,0 +1 @@
+repository
diff --git a/root/etc/e-smith/db/yum_repositories/defaults/smetest/EnableGroups b/root/etc/e-smith/db/yum_repositories/defaults/smetest/EnableGroups
new file mode 100644
index 0000000..7cfab5b
--- /dev/null
+++ b/root/etc/e-smith/db/yum_repositories/defaults/smetest/EnableGroups
@@ -0,0 +1 @@
+yes
diff --git a/root/etc/e-smith/db/yum_repositories/defaults/smetest/GPGCheck b/root/etc/e-smith/db/yum_repositories/defaults/smetest/GPGCheck
new file mode 100644
index 0000000..7cfab5b
--- /dev/null
+++ b/root/etc/e-smith/db/yum_repositories/defaults/smetest/GPGCheck
@@ -0,0 +1 @@
+yes
diff --git a/root/etc/e-smith/db/yum_repositories/defaults/smetest/MirrorList b/root/etc/e-smith/db/yum_repositories/defaults/smetest/MirrorList
new file mode 100644
index 0000000..a01b987
--- /dev/null
+++ b/root/etc/e-smith/db/yum_repositories/defaults/smetest/MirrorList
@@ -0,0 +1 @@
+https://mirrorlist.koozali.org/mirrorlist/smetest-10
diff --git a/root/etc/e-smith/db/yum_repositories/defaults/smetest/Name b/root/etc/e-smith/db/yum_repositories/defaults/smetest/Name
new file mode 100644
index 0000000..b98d5c5
--- /dev/null
+++ b/root/etc/e-smith/db/yum_repositories/defaults/smetest/Name
@@ -0,0 +1 @@
+SME Server - test
diff --git a/root/etc/e-smith/db/yum_repositories/defaults/smetest/Visible b/root/etc/e-smith/db/yum_repositories/defaults/smetest/Visible
new file mode 100644
index 0000000..7ecb56e
--- /dev/null
+++ b/root/etc/e-smith/db/yum_repositories/defaults/smetest/Visible
@@ -0,0 +1 @@
+no
diff --git a/root/etc/e-smith/db/yum_repositories/defaults/smetest/status b/root/etc/e-smith/db/yum_repositories/defaults/smetest/status
new file mode 100644
index 0000000..7a68b11
--- /dev/null
+++ b/root/etc/e-smith/db/yum_repositories/defaults/smetest/status
@@ -0,0 +1 @@
+disabled
diff --git a/root/etc/e-smith/db/yum_repositories/defaults/smetest/type b/root/etc/e-smith/db/yum_repositories/defaults/smetest/type
new file mode 100644
index 0000000..09d06c8
--- /dev/null
+++ b/root/etc/e-smith/db/yum_repositories/defaults/smetest/type
@@ -0,0 +1 @@
+repository
diff --git a/root/etc/e-smith/db/yum_repositories/defaults/smeupdates-testing/EnableGroups b/root/etc/e-smith/db/yum_repositories/defaults/smeupdates-testing/EnableGroups
new file mode 100644
index 0000000..7cfab5b
--- /dev/null
+++ b/root/etc/e-smith/db/yum_repositories/defaults/smeupdates-testing/EnableGroups
@@ -0,0 +1 @@
+yes
diff --git a/root/etc/e-smith/db/yum_repositories/defaults/smeupdates-testing/GPGCheck b/root/etc/e-smith/db/yum_repositories/defaults/smeupdates-testing/GPGCheck
new file mode 100644
index 0000000..7cfab5b
--- /dev/null
+++ b/root/etc/e-smith/db/yum_repositories/defaults/smeupdates-testing/GPGCheck
@@ -0,0 +1 @@
+yes
diff --git a/root/etc/e-smith/db/yum_repositories/defaults/smeupdates-testing/MirrorList b/root/etc/e-smith/db/yum_repositories/defaults/smeupdates-testing/MirrorList
new file mode 100644
index 0000000..71ed3fa
--- /dev/null
+++ b/root/etc/e-smith/db/yum_repositories/defaults/smeupdates-testing/MirrorList
@@ -0,0 +1 @@
+https://mirrorlist.koozali.org/mirrorlist/smeupdates-testing-10
diff --git a/root/etc/e-smith/db/yum_repositories/defaults/smeupdates-testing/Name b/root/etc/e-smith/db/yum_repositories/defaults/smeupdates-testing/Name
new file mode 100644
index 0000000..54b9fa1
--- /dev/null
+++ b/root/etc/e-smith/db/yum_repositories/defaults/smeupdates-testing/Name
@@ -0,0 +1 @@
+SME Server - updates testing
diff --git a/root/etc/e-smith/db/yum_repositories/defaults/smeupdates-testing/Visible b/root/etc/e-smith/db/yum_repositories/defaults/smeupdates-testing/Visible
new file mode 100644
index 0000000..7cfab5b
--- /dev/null
+++ b/root/etc/e-smith/db/yum_repositories/defaults/smeupdates-testing/Visible
@@ -0,0 +1 @@
+yes
diff --git a/root/etc/e-smith/db/yum_repositories/defaults/smeupdates-testing/status b/root/etc/e-smith/db/yum_repositories/defaults/smeupdates-testing/status
new file mode 100644
index 0000000..7a68b11
--- /dev/null
+++ b/root/etc/e-smith/db/yum_repositories/defaults/smeupdates-testing/status
@@ -0,0 +1 @@
+disabled
diff --git a/root/etc/e-smith/db/yum_repositories/defaults/smeupdates-testing/type b/root/etc/e-smith/db/yum_repositories/defaults/smeupdates-testing/type
new file mode 100644
index 0000000..09d06c8
--- /dev/null
+++ b/root/etc/e-smith/db/yum_repositories/defaults/smeupdates-testing/type
@@ -0,0 +1 @@
+repository
diff --git a/root/etc/e-smith/db/yum_repositories/defaults/smeupdates/EnableGroups b/root/etc/e-smith/db/yum_repositories/defaults/smeupdates/EnableGroups
new file mode 100644
index 0000000..7cfab5b
--- /dev/null
+++ b/root/etc/e-smith/db/yum_repositories/defaults/smeupdates/EnableGroups
@@ -0,0 +1 @@
+yes
diff --git a/root/etc/e-smith/db/yum_repositories/defaults/smeupdates/GPGCheck b/root/etc/e-smith/db/yum_repositories/defaults/smeupdates/GPGCheck
new file mode 100644
index 0000000..7cfab5b
--- /dev/null
+++ b/root/etc/e-smith/db/yum_repositories/defaults/smeupdates/GPGCheck
@@ -0,0 +1 @@
+yes
diff --git a/root/etc/e-smith/db/yum_repositories/defaults/smeupdates/MirrorList b/root/etc/e-smith/db/yum_repositories/defaults/smeupdates/MirrorList
new file mode 100644
index 0000000..24e646d
--- /dev/null
+++ b/root/etc/e-smith/db/yum_repositories/defaults/smeupdates/MirrorList
@@ -0,0 +1 @@
+https://mirrorlist.koozali.org/mirrorlist/smeupdates-10
diff --git a/root/etc/e-smith/db/yum_repositories/defaults/smeupdates/Name b/root/etc/e-smith/db/yum_repositories/defaults/smeupdates/Name
new file mode 100644
index 0000000..7e885f1
--- /dev/null
+++ b/root/etc/e-smith/db/yum_repositories/defaults/smeupdates/Name
@@ -0,0 +1 @@
+SME Server - updates
diff --git a/root/etc/e-smith/db/yum_repositories/defaults/smeupdates/Visible b/root/etc/e-smith/db/yum_repositories/defaults/smeupdates/Visible
new file mode 100644
index 0000000..7cfab5b
--- /dev/null
+++ b/root/etc/e-smith/db/yum_repositories/defaults/smeupdates/Visible
@@ -0,0 +1 @@
+yes
diff --git a/root/etc/e-smith/db/yum_repositories/defaults/smeupdates/status b/root/etc/e-smith/db/yum_repositories/defaults/smeupdates/status
new file mode 100644
index 0000000..86981e6
--- /dev/null
+++ b/root/etc/e-smith/db/yum_repositories/defaults/smeupdates/status
@@ -0,0 +1 @@
+enabled
diff --git a/root/etc/e-smith/db/yum_repositories/defaults/smeupdates/type b/root/etc/e-smith/db/yum_repositories/defaults/smeupdates/type
new file mode 100644
index 0000000..09d06c8
--- /dev/null
+++ b/root/etc/e-smith/db/yum_repositories/defaults/smeupdates/type
@@ -0,0 +1 @@
+repository
diff --git a/root/etc/e-smith/db/yum_repositories/defaults/updates/EnableGroups b/root/etc/e-smith/db/yum_repositories/defaults/updates/EnableGroups
new file mode 100644
index 0000000..7ecb56e
--- /dev/null
+++ b/root/etc/e-smith/db/yum_repositories/defaults/updates/EnableGroups
@@ -0,0 +1 @@
+no
diff --git a/root/etc/e-smith/db/yum_repositories/defaults/updates/GPGCheck b/root/etc/e-smith/db/yum_repositories/defaults/updates/GPGCheck
new file mode 100644
index 0000000..7cfab5b
--- /dev/null
+++ b/root/etc/e-smith/db/yum_repositories/defaults/updates/GPGCheck
@@ -0,0 +1 @@
+yes
diff --git a/root/etc/e-smith/db/yum_repositories/defaults/updates/MirrorList b/root/etc/e-smith/db/yum_repositories/defaults/updates/MirrorList
new file mode 100644
index 0000000..780885d
--- /dev/null
+++ b/root/etc/e-smith/db/yum_repositories/defaults/updates/MirrorList
@@ -0,0 +1 @@
+http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates
diff --git a/root/etc/e-smith/db/yum_repositories/defaults/updates/Name b/root/etc/e-smith/db/yum_repositories/defaults/updates/Name
new file mode 100644
index 0000000..3510df4
--- /dev/null
+++ b/root/etc/e-smith/db/yum_repositories/defaults/updates/Name
@@ -0,0 +1 @@
+CentOS - updates
diff --git a/root/etc/e-smith/db/yum_repositories/defaults/updates/Visible b/root/etc/e-smith/db/yum_repositories/defaults/updates/Visible
new file mode 100644
index 0000000..7cfab5b
--- /dev/null
+++ b/root/etc/e-smith/db/yum_repositories/defaults/updates/Visible
@@ -0,0 +1 @@
+yes
diff --git a/root/etc/e-smith/db/yum_repositories/defaults/updates/status b/root/etc/e-smith/db/yum_repositories/defaults/updates/status
new file mode 100644
index 0000000..86981e6
--- /dev/null
+++ b/root/etc/e-smith/db/yum_repositories/defaults/updates/status
@@ -0,0 +1 @@
+enabled
diff --git a/root/etc/e-smith/db/yum_repositories/defaults/updates/type b/root/etc/e-smith/db/yum_repositories/defaults/updates/type
new file mode 100644
index 0000000..09d06c8
--- /dev/null
+++ b/root/etc/e-smith/db/yum_repositories/defaults/updates/type
@@ -0,0 +1 @@
+repository
diff --git a/root/etc/e-smith/db/yum_repositories/migrate/00openRW b/root/etc/e-smith/db/yum_repositories/migrate/00openRW
new file mode 100644
index 0000000..2c2b16c
--- /dev/null
+++ b/root/etc/e-smith/db/yum_repositories/migrate/00openRW
@@ -0,0 +1,3 @@
+{
+ $DB = esmith::ConfigDB->open(${DB_FILENAME});
+}
diff --git a/root/etc/e-smith/db/yum_repositories/migrate/10GPG_and_Groups b/root/etc/e-smith/db/yum_repositories/migrate/10GPG_and_Groups
new file mode 100644
index 0000000..159114e
--- /dev/null
+++ b/root/etc/e-smith/db/yum_repositories/migrate/10GPG_and_Groups
@@ -0,0 +1,16 @@
+{
+ for my $repo ($DB->get_all_by_prop(type => 'repository'))
+ {
+ %props = $repo->props;
+
+ if (defined $props{GPGCheck}) {
+ $props{GPGCheck} = 'yes' if ($props{GPGCheck} =~ /1/);
+ $props{GPGCheck} = 'no' if ($props{GPGCheck} =~ /0/);
+ }
+ if (defined $props{EnableGroups}) {
+ $props{EnableGroups} = 'yes' if ($props{EnableGroups} =~ /1/);
+ $props{EnableGroups} = 'no' if ($props{EnableGroups} =~ /0/);
+ }
+ $repo->merge_props(%props);
+ }
+}
diff --git a/root/etc/e-smith/db/yum_repositories/migrate/20CentOSRepos b/root/etc/e-smith/db/yum_repositories/migrate/20CentOSRepos
new file mode 100644
index 0000000..6f771bd
--- /dev/null
+++ b/root/etc/e-smith/db/yum_repositories/migrate/20CentOSRepos
@@ -0,0 +1,8 @@
+{
+ for my $name ( qw(base updates) )
+ {
+ my $repo = $DB->get($name) or next;
+
+ $repo->set_prop('Visible', 'yes');
+ }
+}
diff --git a/root/etc/e-smith/db/yum_repositories/migrate/30DeleteAddons b/root/etc/e-smith/db/yum_repositories/migrate/30DeleteAddons
new file mode 100644
index 0000000..0bd276e
--- /dev/null
+++ b/root/etc/e-smith/db/yum_repositories/migrate/30DeleteAddons
@@ -0,0 +1,4 @@
+{
+ my $repo = $DB->get('addons');
+ $repo->delete if $repo;
+}
diff --git a/root/etc/e-smith/db/yum_repositories/migrate/30DeleteContrib b/root/etc/e-smith/db/yum_repositories/migrate/30DeleteContrib
new file mode 100644
index 0000000..827b91a
--- /dev/null
+++ b/root/etc/e-smith/db/yum_repositories/migrate/30DeleteContrib
@@ -0,0 +1,4 @@
+{
+ my $repo = $DB->get('contrib');
+ $repo->delete if $repo;
+}
diff --git a/root/etc/e-smith/db/yum_repositories/migrate/30DeleteDungog b/root/etc/e-smith/db/yum_repositories/migrate/30DeleteDungog
new file mode 100644
index 0000000..743ed9c
--- /dev/null
+++ b/root/etc/e-smith/db/yum_repositories/migrate/30DeleteDungog
@@ -0,0 +1,4 @@
+{
+ my $repo = $DB->get('dungog');
+ $repo->delete if $repo;
+}
diff --git a/root/etc/e-smith/db/yum_repositories/migrate/39VisibleSmeContribs b/root/etc/e-smith/db/yum_repositories/migrate/39VisibleSmeContribs
new file mode 100644
index 0000000..6ff9c5e
--- /dev/null
+++ b/root/etc/e-smith/db/yum_repositories/migrate/39VisibleSmeContribs
@@ -0,0 +1,9 @@
+{
+ for my $name ( qw(smecontribs) )
+ {
+ my $repo = $DB->get($name) or next;
+ #only migrate if restore from previous SME version, we do not want to override an admin setting for current version.
+ return unless $repo->prop('MirrorList') =~ m{/$name-[789]$};
+ $repo->set_prop('Visible', 'yes');
+ }
+}
diff --git a/root/etc/e-smith/db/yum_repositories/migrate/40GlobalMirrorList b/root/etc/e-smith/db/yum_repositories/migrate/40GlobalMirrorList
new file mode 100644
index 0000000..2c822e8
--- /dev/null
+++ b/root/etc/e-smith/db/yum_repositories/migrate/40GlobalMirrorList
@@ -0,0 +1,30 @@
+{
+ for my $name ( qw(smeaddons smecontribs smedev smeextras smeos smetest
+ smeupdates smeupdates-testing) )
+ {
+ my $repo = $DB->get($name) or next;
+
+ my $mirrorlist = $repo->prop('MirrorList') || '';
+ my $baseurl = $repo->prop('BaseURL') || '';
+
+ if ($mirrorlist =~ m{^file:///etc/yum.repos.d/mirrors-sme|/7/|/sme.*-7$} || $baseurl =~ m{/7/|/sme.*-7$})
+ {
+ $repo->delete_prop('MirrorList');
+ $repo->delete_prop('BaseURL');
+ unlink "/var/cache/yum/$name/$_" foreach qw(repomd.xml mirrorlist.txt);
+ if ($repo->prop('status') eq 'enabled')
+ {
+ unlink "/home/e-smith/db/yum_$_" foreach qw(available updates installed);
+ }
+ }
+
+ $repo->set_prop('MirrorList', "https://mirrorlist.koozali.org/mirrorlist/$name-10")
+ if $repo->prop('MirrorList') =~ m{^http://distro.ibiblio.org/pub/linux/distributions/smeserver};
+
+ $repo->set_prop('MirrorList', "http://mirrorlist.koozali.org/mirrorlist/$name-10")
+ if $repo->prop('MirrorList') =~ m{/$name-[789]$};
+
+ $repo->set_prop('MirrorList', "https://mirrorlist.koozali.org/mirrorlist/$name-10")
+ if $repo->prop('MirrorList') =~ m{^http://mirrorlist.contribs.org/mirrorlist/$name-10$};
+ }
+}
diff --git a/root/etc/e-smith/db/yum_repositories/migrate/45CentOSEOL b/root/etc/e-smith/db/yum_repositories/migrate/45CentOSEOL
new file mode 100644
index 0000000..f0e46cd
--- /dev/null
+++ b/root/etc/e-smith/db/yum_repositories/migrate/45CentOSEOL
@@ -0,0 +1,55 @@
+{
+ use POSIX qw(strftime);
+ use File::Slurp;
+ my $curdate = strftime '%Y%m%d', localtime;
+ my $curVers = 7;
+ my $curVersEOL = 20240630;
+ #get CentOS release we are
+ my $SUBVER = read_file('/etc/centos-release');
+ $SUBVER =~ s/^CentOS Linux release ([0-9\.]+).*?$/$1/;
+ chomp $SUBVER;
+ # we ignore the force value if for a previous release; idealy should be deleted from another fragment against configuration db
+ delete $yum{eolversion} if ( ( defined $yum{eolversion} && (substr($yum{eolversion},0,1)<$curVers) ) || ( "$curdate" < "$curVersEOL") );
+ $SUBVER = $yum{eolversion} || $SUBVER ;
+
+ # we need to remove that from migrated server
+ for my $name ( qw(base updates centosplus extras fasttrack centos-sclo-rh centos-sclo-centos) )
+ {
+ my $repo = $DB->get($name) or next;
+ my $baseurl = $repo->prop('BaseURL') or next;
+ my $mirrorlist = $repo->prop('MirrorList') or next;
+ if ( $baseurl =~ /^http:\/\/vault\.centos\.org\/([0-9])/ )
+ {
+ # we want to reset this unless vers 7
+ next if ($1 == $curVers && "$curdate" >= "$curVersEOL");
+ $repo->delete_prop('MirrorList');
+ $repo->delete_prop('BaseURL');
+ unlink "/var/cache/yum/$name/$_" foreach qw(repomd.xml mirrorlist.txt);
+ }
+ else
+ {
+ # no match for a numerical, we probably want to reset that as well
+ $repo->delete_prop('MirrorList');
+ $repo->delete_prop('BaseURL');
+ unlink "/var/cache/yum/$name/$_" foreach qw(repomd.xml mirrorlist.txt);
+ }
+ }
+
+ # return unless we have a release version
+ return unless $SUBVER ne "";
+ my $curdate = strftime '%Y%m%d', localtime;
+ # return unless EOL is reached
+ return unless ( "$curdate" >= "$curVersEOL");
+ for my $name ( qw(base updates centosplus extras fasttrack centos-sclo-rh centos-sclo-centos) )
+ {
+ my $repo = $DB->get($name) or next;
+ my $rname = ( $name eq 'base' )? 'os' :$name;
+ my $sclo = "";
+ $sclo = "rh/" if $name eq "centos-sclo-rh";
+ $sclo = "sclo/" if $name eq "centos-sclo-centos";
+ # setprop BaseURL "http://vault.centos.org/$SUBVER/$rname/\$basearch/"
+ $repo->set_prop('BaseURL', "http://vault.centos.org/$SUBVER/$rname/\$basearch/$sclo");
+ # delprop MirrorList
+ $repo->set_prop('MirrorList', "disabled");
+ }
+}
diff --git a/root/etc/e-smith/db/yum_updates/.gitignore b/root/etc/e-smith/db/yum_updates/.gitignore
new file mode 100644
index 0000000..e69de29
diff --git a/root/etc/e-smith/events/actions/yum-action b/root/etc/e-smith/events/actions/yum-action
new file mode 100644
index 0000000..c191372
--- /dev/null
+++ b/root/etc/e-smith/events/actions/yum-action
@@ -0,0 +1,67 @@
+#!/usr/bin/perl -w
+#----------------------------------------------------------------------
+# Yum actions
+# Copyright (C) 2005-2006 Gordon Rowell
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License or more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+#----------------------------------------------------------------------
+
+use strict;
+use warnings;
+use esmith::ConfigDB;
+
+use constant YUM_CMD => qw(/usr/bin/yum -d 2 -e 2 -y);
+
+my $db = esmith::ConfigDB->open or die "Couldn't open ConfigDB\n";
+
+my $event = $ARGV[0];
+
+my $function = $event;
+$function =~ s/yum-//;
+
+die "Unknown function $function\n"
+ unless ($function =~ /install|update|remove/);
+
+my $log_file = "/var/log/yum/yum.log." . time();
+$db->set_prop('yum', 'LogFile', $log_file);
+
+open STDOUT, '>', "$log_file" or die "Can't redirect STDOUT: $!";
+open STDERR, ">&STDOUT" or die "Can't dup STDOUT: $!";
+
+# Make yum send output immediately, so server-manager sees progress
+$ENV{PYTHONUNBUFFERED} = 1;
+
+# XXX - FIXME - For groupremove, we need to do a grouplist on the group
+# and then work out what to do
+
+my @groups = split(',',
+ ($db->get_prop_and_delete('yum', 'SelectedGroups') || ''));
+
+my @packages = split(',',
+ ($db->get_prop_and_delete('yum', 'SelectedPackages') || ''));
+
+if (@groups)
+{
+ system(YUM_CMD, "group$function", @groups) == 0 or
+ die "yum group$function @groups failed: $?\n";
+}
+
+if (@packages)
+{
+ system(YUM_CMD, $function, @packages) == 0 or
+ die "yum $function @packages failed: $?\n";
+}
+
+exit 0;
diff --git a/root/etc/e-smith/events/actions/yum-import-keys b/root/etc/e-smith/events/actions/yum-import-keys
new file mode 100644
index 0000000..2eff89b
--- /dev/null
+++ b/root/etc/e-smith/events/actions/yum-import-keys
@@ -0,0 +1,81 @@
+#!/usr/bin/perl -w
+#----------------------------------------------------------------------
+# Yum import keys
+# Copyright (C) 2005 Gordon Rowell
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License or more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+#----------------------------------------------------------------------
+
+use strict;
+use warnings;
+
+use constant KEYDIR => "/usr/share/rpm-gpg-keys";
+
+sub parse_key {
+ my @lines = @_;
+ my ($key, $good);
+
+ $good = 0;
+ foreach (@lines) {
+ chomp;
+ next if m#Version:#i;
+
+ if (m#BEGIN PGP PUBLIC KEY BLOCK#) {
+ $good++;
+ next;
+ }
+
+ if (m#END PGP PUBLIC KEY BLOCK#) {
+ $key .= $1 if (m/^(.+)-----END PGP PUBLIC KEY BLOCK/);
+ return $key;
+ }
+
+
+ $key .= $_ if m#^\S+$# && $good;
+ }
+ return undef;
+}
+
+my %keys;
+
+if(open (RPMS, '/bin/rpm -q gpg-pubkey 2> /dev/null|')) {
+ foreach my $rpm (map { chomp; $_ } ) {
+ if(open (KEY, "/bin/rpm -q --qf \%{DESCRIPTION} $rpm|")) {
+ my $key = parse_key();
+ $keys{$key}++ if $key;
+ close(KEY);
+ }
+ }
+ close (RPMS);
+}
+
+chdir KEYDIR or die "Couldn't chdir " . KEYDIR . "\n";
+
+opendir DIR, '.' or die "Couldn't opendir .\n";
+
+for my $file ( grep { m#^RPM-GPG-KEY# } readdir(DIR) )
+{
+ if(open(KEY, "$file")) {
+ my $key = parse_key();
+ next if $key && $keys{$key};
+ }
+
+ warn "Importing key $file\n";
+
+ system("rpm", "--import", $file) == 0 or
+ warn "Couldn't rpm --import $file\n";
+}
+
+exit 0;
diff --git a/root/etc/e-smith/events/bootstrap-console-save/templates2expand/etc/yum.conf b/root/etc/e-smith/events/bootstrap-console-save/templates2expand/etc/yum.conf
new file mode 100644
index 0000000..e69de29
diff --git a/root/etc/e-smith/events/local/.gitignore b/root/etc/e-smith/events/local/.gitignore
new file mode 100644
index 0000000..e69de29
diff --git a/root/etc/e-smith/events/yum-install/.gitignore b/root/etc/e-smith/events/yum-install/.gitignore
new file mode 100644
index 0000000..e69de29
diff --git a/root/etc/e-smith/events/yum-modify/templates2expand/etc/yum.conf b/root/etc/e-smith/events/yum-modify/templates2expand/etc/yum.conf
new file mode 100644
index 0000000..e69de29
diff --git a/root/etc/e-smith/events/yum-remove/.gitignore b/root/etc/e-smith/events/yum-remove/.gitignore
new file mode 100644
index 0000000..e69de29
diff --git a/root/etc/e-smith/events/yum-update/.gitignore b/root/etc/e-smith/events/yum-update/.gitignore
new file mode 100644
index 0000000..e69de29
diff --git a/root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/yum b/root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/yum
new file mode 100644
index 0000000..d0482cf
--- /dev/null
+++ b/root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/yum
@@ -0,0 +1,296 @@
+
+
+
+ Software installer
+ Software installer
+
+
+
+ SUCCESS
+ The new settings have been saved.
+
+
+
+ UPDATE_SUCCESS
+ The requested changes have been successfully implemented.
+
+
+
+ LABEL_YUM_STATUS
+ Check for updates
+
+
+
+ LABEL_YUM_AUTOINSTALLUPDATES
+ Automatically install updates
+
+
+ LABEL_YUM_AUTOINSTALLUPDATES_DESCRIPTION
+ If enabled this will take precedence over the simple check for updates notification and predownload features. Instead it will install the available updates from enabled repositories. For more information refer to yum and yum-cron manual page.
+
+
+
+ LABEL_YUM_PACKAGEFUNCTIONS
+ Manage individual packages
+
+
+
+ DESC_YUM_PACKAGEFUNCTIONS
+
+ The software installer can manage groups of
+ related package or individual packages. By
+ default, only groups of packages are presented.
+ If you wish to manage individual packages,
+ enable this option. This should only be done
+ by experienced administrators.
+
+
+
+
+ LABEL_ENABLED_REPOSITORIES
+ Enabled repositories
+
+
+
+ DESC_ENABLED_REPOSITORIES
+
+ The software installer can install software
+ from any of enabled repositories. To enable
+ a repository, select it from the list.
+ To disable a repository, de-select it from the list.
+ By default, only stable, tested software is available
+ for installation.
+
+
+
+
+ DESC_UPTODATE
+
+
+
This system is up to date.
+
+ All updates have been installed.
+
+ ]]>
+
+
+
+
+ DESC_UPDATES_AVAILABLE
+
+
+
Updates Available
+
+ There are updates available for your system. These updates
+ should be installed as soon as possible.
+
+ ]]>
+
+
+
+
+ LABEL_AVAILABLE_UPDATES
+ Updates available
+
+
+
+ DESC_AVAILABLE_UPDATES
+
+ The following updates are available for your system.
+ You should normally install all available updates.
+ If there are updates you do not wish to install, de-select
+ them from the list below.
+
+
+
+
+ INSTALL_UPDATES
+ Install selected updates
+
+
+
+ DESC_BUTTON_INSTALL_UPDATES
+
+ List available updates
+ ]]>
+
+
+
+
+ HEADER_AVAILABLE_SOFTWARE
+
+ The following software is available to be installed
+ onto your system. You should only install additional
+ software onto this system if you are aware
+ of the consequences of doing so.
+
+
+
+
+ DESC_AVAILABLE_GROUPS
+
+ You can select software groups
+ to install from the list below.
+
+
+
+
+ LABEL_AVAILABLE_GROUPS
+ Available groups
+
+
+
+ DESC_AVAILABLE_PACKAGES
+
+ You can also select individual packages
+ to install from the list below.
+
+
+
+
+ LABEL_AVAILABLE_PACKAGES
+ Available packages
+
+
+
+ INSTALL_SOFTWARE
+ Install
+
+
+
+ HEADER_INSTALLED_SOFTWARE
+
+ The following software is installed
+ on this system. You should only remove
+ software from this system if you are aware
+ of the consequences of doing so.
+
+
+
+
+ DESC_INSTALLED_GROUPS
+
+ You can select software groups
+ to remove from the list below.
+
+
+
+
+ LABEL_INSTALLED_GROUPS
+ Installed groups
+
+
+
+ DESC_INSTALLED_PACKAGES
+
+ You can also select individual packages
+ you wish to remove from the list below.
+
+
+
+
+ LABEL_INSTALLED_PACKAGES
+ Installed packages
+
+
+
+ DESC_BUTTON_CONFIGURATION
+
+ Change software installer settings
+ ]]>
+
+
+
+
+ DESC_BUTTON_INSTALL_AVAILABLE
+
+ Install additional software
+ ]]>
+
+
+
+
+ DESC_BUTTON_REMOVE
+
+ Remove installed software
+ ]]>
+
+
+
+
+ HEADER_POSTUPGRADE_REQUIRED
+
+
+ Please click on the Reconfigure button at the bottom of
+ this page to start the reconfiguration process.
+ An automatic reboot will be
+ initiated as part of this reconfiguration process
+
+ ]]>
+
+
+
+
+ SYSTEM_BEING_RECONFIGURED
+
+ Your system is being automatically rebooted to
+ complete the reconfiguraton process.
+
+
+
+
+ 1DAILY
+ Daily
+
+
+
+ 2WEEKLY
+ Weekly
+
+
+
+ 3MONTHLY
+ Monthly
+
+
+
+ LABEL_YUM_DELTARPMPROCESS
+ Delta Rpm Update
+
+
+
+ LABEL_YUM_DELTARPM
+ A deltarpm contains the difference between an old and a new version of a rpm,
+ which can save bandwith. The drawback is that update
+ operations consume considerably more CPU cycles
+
+
+
+ LABEL_YUM_DOWNLOADONLY
+ Predownload updates
+
+
+
+ LABEL_YUM_DOWNLOADONLY_DESCRIPTION
+ The rpm updates can be downloaded during the night,
+ this will ease and give faster the yum update process
+ (only enabled repositories will be used).
+
+
+
diff --git a/root/etc/e-smith/templates/etc/crontab/check4contribsupdates b/root/etc/e-smith/templates/etc/crontab/check4contribsupdates
new file mode 100644
index 0000000..3564c03
--- /dev/null
+++ b/root/etc/e-smith/templates/etc/crontab/check4contribsupdates
@@ -0,0 +1,30 @@
+{
+ use esmith::ConfigDB;
+ my $ydb = esmith::ConfigDB->open_ro('yum_repositories')
+ or die "Couldn't open yum_repositories";
+ my $smecontribs=$ydb->get_prop('smecontribs','status') || 'disabled';
+
+ return "\n# yum check for smecontribs updates is disabled\n" unless ( ($yum{status} eq 'enabled') && ($yum{CheckContribs} eq 'enabled') && ($smecontribs eq 'disabled') );
+
+ my $freq = $yum{check4updates} || 'daily';
+
+ my $min;
+ my $dom;
+ my $dow;
+
+ if ($freq eq 'weekly') {
+ $min = 22;
+ $dom = '*';
+ $dow = 0;
+ } elsif ($freq eq 'monthly') {
+ $min = 42;
+ $dom = 1;
+ $dow = '*';
+ } else {
+ $min = 2;
+ $dom = '*';
+ $dow = '*';
+ }
+ return "$min 4 $dom * $dow root "
+ . q{sleep $[ $RANDOM \\% 3600 ]; /sbin/e-smith/check4contribsupdates -m };
+}
diff --git a/root/etc/e-smith/templates/etc/crontab/check4updates b/root/etc/e-smith/templates/etc/crontab/check4updates
new file mode 100644
index 0000000..cb8a670
--- /dev/null
+++ b/root/etc/e-smith/templates/etc/crontab/check4updates
@@ -0,0 +1,25 @@
+{
+ return "\n# yum check for updates is disabled\n" unless $yum{status} eq 'enabled';
+
+ my $freq = $yum{check4updates} || 'daily';
+
+ my $min;
+ my $dom;
+ my $dow;
+
+ if ($freq eq 'weekly') {
+ $min = 22;
+ $dom = '*';
+ $dow = 0;
+ } elsif ($freq eq 'monthly') {
+ $min = 42;
+ $dom = 1;
+ $dow = '*';
+ } else {
+ $min = 2;
+ $dom = '*';
+ $dow = '*';
+ }
+ return "$min 4 $dom * $dow root "
+ . q{sleep $[ $RANDOM \\% 3600 ]; /sbin/e-smith/check4updates -m };
+}
diff --git a/root/etc/e-smith/templates/etc/rsyslog.conf/32yum b/root/etc/e-smith/templates/etc/rsyslog.conf/32yum
new file mode 100644
index 0000000..e5716ab
--- /dev/null
+++ b/root/etc/e-smith/templates/etc/rsyslog.conf/32yum
@@ -0,0 +1,4 @@
+#yum
+if $programname startswith "yum_update_dbs" then /var/log/yum/yum-update.log
+& stop
+
diff --git a/root/etc/e-smith/templates/etc/yum.conf/10main b/root/etc/e-smith/templates/etc/yum.conf/10main
new file mode 100644
index 0000000..15685c3
--- /dev/null
+++ b/root/etc/e-smith/templates/etc/yum.conf/10main
@@ -0,0 +1 @@
+[main]
diff --git a/root/etc/e-smith/templates/etc/yum.conf/10main_cachedir b/root/etc/e-smith/templates/etc/yum.conf/10main_cachedir
new file mode 100644
index 0000000..62a899d
--- /dev/null
+++ b/root/etc/e-smith/templates/etc/yum.conf/10main_cachedir
@@ -0,0 +1,2 @@
+cachedir=/var/cache/yum/$basearch/$releasever
+keepcache=0
diff --git a/root/etc/e-smith/templates/etc/yum.conf/10main_debuglevel b/root/etc/e-smith/templates/etc/yum.conf/10main_debuglevel
new file mode 100644
index 0000000..a70bacc
--- /dev/null
+++ b/root/etc/e-smith/templates/etc/yum.conf/10main_debuglevel
@@ -0,0 +1 @@
+debuglevel={ $yum{Debug} || '2' }
diff --git a/root/etc/e-smith/templates/etc/yum.conf/10main_deltarpm b/root/etc/e-smith/templates/etc/yum.conf/10main_deltarpm
new file mode 100644
index 0000000..76cfc0b
--- /dev/null
+++ b/root/etc/e-smith/templates/etc/yum.conf/10main_deltarpm
@@ -0,0 +1,6 @@
+{
+my $deltaRpm = $yum{DeltaRpmProcess} || 'disabled';
+$deltaRpm = '0' if ($deltaRpm eq 'disabled');
+$deltaRpm = '2' if ($deltaRpm eq 'enabled');
+$OUT .= "deltarpm=$deltaRpm";
+}
diff --git a/root/etc/e-smith/templates/etc/yum.conf/10main_distroverpkg b/root/etc/e-smith/templates/etc/yum.conf/10main_distroverpkg
new file mode 100644
index 0000000..d4f6569
--- /dev/null
+++ b/root/etc/e-smith/templates/etc/yum.conf/10main_distroverpkg
@@ -0,0 +1 @@
+distroverpkg=centos-release
diff --git a/root/etc/e-smith/templates/etc/yum.conf/10main_exactarch b/root/etc/e-smith/templates/etc/yum.conf/10main_exactarch
new file mode 100644
index 0000000..8320e38
--- /dev/null
+++ b/root/etc/e-smith/templates/etc/yum.conf/10main_exactarch
@@ -0,0 +1 @@
+exactarch=1
diff --git a/root/etc/e-smith/templates/etc/yum.conf/10main_httpcache b/root/etc/e-smith/templates/etc/yum.conf/10main_httpcache
new file mode 100644
index 0000000..ac7915e
--- /dev/null
+++ b/root/etc/e-smith/templates/etc/yum.conf/10main_httpcache
@@ -0,0 +1 @@
+http_caching=packages
diff --git a/root/etc/e-smith/templates/etc/yum.conf/10main_installonly_limit b/root/etc/e-smith/templates/etc/yum.conf/10main_installonly_limit
new file mode 100644
index 0000000..8405caf
--- /dev/null
+++ b/root/etc/e-smith/templates/etc/yum.conf/10main_installonly_limit
@@ -0,0 +1 @@
+installonly_limit=3
diff --git a/root/etc/e-smith/templates/etc/yum.conf/10main_logfile b/root/etc/e-smith/templates/etc/yum.conf/10main_logfile
new file mode 100644
index 0000000..5085b5f
--- /dev/null
+++ b/root/etc/e-smith/templates/etc/yum.conf/10main_logfile
@@ -0,0 +1 @@
+logfile=/var/log/yum/yum.log
diff --git a/root/etc/e-smith/templates/etc/yum.conf/10main_obsoletes b/root/etc/e-smith/templates/etc/yum.conf/10main_obsoletes
new file mode 100644
index 0000000..4edd974
--- /dev/null
+++ b/root/etc/e-smith/templates/etc/yum.conf/10main_obsoletes
@@ -0,0 +1 @@
+obsoletes=1
diff --git a/root/etc/e-smith/templates/etc/yum.conf/10main_plugins b/root/etc/e-smith/templates/etc/yum.conf/10main_plugins
new file mode 100644
index 0000000..a762788
--- /dev/null
+++ b/root/etc/e-smith/templates/etc/yum.conf/10main_plugins
@@ -0,0 +1 @@
+plugins=1
diff --git a/root/etc/e-smith/templates/etc/yum.conf/10main_tolerant b/root/etc/e-smith/templates/etc/yum.conf/10main_tolerant
new file mode 100644
index 0000000..93aa08d
--- /dev/null
+++ b/root/etc/e-smith/templates/etc/yum.conf/10main_tolerant
@@ -0,0 +1 @@
+tolerant=1
diff --git a/root/etc/e-smith/templates/etc/yum.conf/20main_reposdir b/root/etc/e-smith/templates/etc/yum.conf/20main_reposdir
new file mode 100644
index 0000000..52d7fc6
--- /dev/null
+++ b/root/etc/e-smith/templates/etc/yum.conf/20main_reposdir
@@ -0,0 +1 @@
+reposdir=/etc/yum.smerepos.d
diff --git a/root/etc/e-smith/templates/etc/yum.smerepos.d/sme-base.repo/20repositories b/root/etc/e-smith/templates/etc/yum.smerepos.d/sme-base.repo/20repositories
new file mode 100644
index 0000000..015b223
--- /dev/null
+++ b/root/etc/e-smith/templates/etc/yum.smerepos.d/sme-base.repo/20repositories
@@ -0,0 +1,74 @@
+{
+ my $ydb = esmith::ConfigDB->open_ro('yum_repositories')
+ or die "Couldn't open yum_repositories";
+
+ my $priority = $yum{priority} || 'enabled';
+
+ $OUT = "\n";
+
+ for my $repos ( $ydb->get_all_by_prop('type' => 'repository') )
+ {
+ my %props = ($DB->get('yum')->props(), $repos->props());
+
+ $OUT .= "[" . $repos->key . "]\n";
+
+ $OUT .= "enabled=" . (($repos->prop('status') eq 'enabled') ? 1 : 0)
+ . "\n";
+
+ if ( ! exists $props{MirrorList} or $props{MirrorList} eq "disabled" )
+ {
+ $OUT .= 'baseurl=' . $props{BaseURL} . "\n";
+ }
+ else
+ {
+ $OUT .= 'mirrorlist=' . $props{MirrorList} . "\n";
+ }
+
+ for my $prop (qw(Name))
+ {
+ $OUT .= lc($prop) . '=' . $props{$prop} . "\n";
+ }
+
+ for my $prop (qw(GPGCheck EnableGroups))
+ {
+ $OUT .= lc($prop) . '=' . ($props{$prop} eq "yes" ? 1 : 0) . "\n";
+ }
+
+ if (exists $props{Exclude})
+ {
+ $OUT .= "exclude=" . join(' ', split(/,/, $props{Exclude})) . "\n";
+ }
+
+ if (exists $props{IncludePkgs})
+ {
+ $OUT .= "includepkgs=" . join(' ', split(/,/, $props{IncludePkgs})) . "\n";
+ }
+
+ if ( exists $props{GPGKey})
+ {
+ $OUT .= "gpgkey" . '=' . $props{GPGKey} . "\n";
+ }
+
+ if ($priority eq 'enabled' && exists $props{Priority})
+ {
+ $OUT .= "priority" . '=' . $props{Priority} . "\n";
+ }
+ elsif ($priority eq 'enabled' && $repos->key =~ /^sme.*/)
+ {
+ $OUT .= "priority=10\n";
+ }
+ elsif ($priority eq 'enabled' && ( $repos->key eq 'base' || $repos->key eq 'updates' || $repos->key eq 'remi-safe' ))
+ {
+ $OUT .= "priority=10\n";
+ }
+
+ if (exists $props{DeltaRpmPercentage})
+ {
+ my $deltarpmpercentage = $props{DeltaRpmPercentage};
+ $deltarpmpercentage = '0' if ($deltarpmpercentage eq 'disabled');
+ $OUT .= "deltarpm_percentage" . '=' . $deltarpmpercentage . "\n";
+ }
+
+ $OUT .= "\n";
+ }
+}
diff --git a/root/etc/e-smith/templates/etc/yum/protected.d/smeserver.conf/template-begin b/root/etc/e-smith/templates/etc/yum/protected.d/smeserver.conf/template-begin
new file mode 100644
index 0000000..67459af
--- /dev/null
+++ b/root/etc/e-smith/templates/etc/yum/protected.d/smeserver.conf/template-begin
@@ -0,0 +1,4 @@
+{
+ $pkgs = $yum{Protected} || 'e-smith-base,smeserver-support';
+ $OUT = join "\n", split /[,;]/, $pkgs;
+}
diff --git a/root/etc/e-smith/templates/etc/yum/yum-cron.conf/10commands b/root/etc/e-smith/templates/etc/yum/yum-cron.conf/10commands
new file mode 100644
index 0000000..0d2497c
--- /dev/null
+++ b/root/etc/e-smith/templates/etc/yum/yum-cron.conf/10commands
@@ -0,0 +1,42 @@
+{
+ our $AutoInstallUpdates = $yum{AutoInstallUpdates} || 'disabled';
+ $AutoInstallUpdates = ( $AutoInstallUpdates eq "disabled") ? "no" : "yes";
+ our $downloadonly = $yum{DownloadOnly} || 'disabled';
+ $downloadonly = ($downloadonly eq "disabled") ? "no" : "yes";
+ our $check = $yum{check4updates} || 'daily';
+ $check = ($check eq "disabled") ? "no" : "yes";
+ $check = ($downloadonly eq "yes" || $AutoInstallUpdates eq "yes" ) ? "yes" : $check;
+ $OUT = "";
+}
+[commands]
+# What kind of update to use:
+# default = yum upgrade
+# security = yum --security upgrade
+# security-severity:Critical = yum --sec-severity=Critical upgrade
+# minimal = yum --bugfix update-minimal
+# minimal-security = yum --security update-minimal
+# minimal-security-severity:Critical = --sec-severity=Critical update-minimal
+# Note: CentOS and Koozali SME Server do not provide the necessary information
+# in order to have security and minimal upgrade functionality.
+update_cmd = default
+
+# Whether a message should be emitted when updates are available,
+# were downloaded, or applied.
+update_messages = { $check || "yes" }
+
+# Whether updates should be downloaded when they are available.
+download_updates = { $downloadonly || "no" }
+
+# Whether updates should be applied when they are available. Note
+# that download_updates must also be yes for the update to be applied.
+apply_updates = { $AutoInstallUpdates }
+
+# Maximum amout of time to randomly sleep, in minutes. The program
+# will sleep for a random amount of time between 0 and random_sleep
+# minutes before running. This is useful for e.g. staggering the
+# times that multiple systems will access update servers. If
+# random_sleep is 0 or negative, the program will run immediately.
+# 6*60 = 360
+random_sleep = { $yum{sleep} || '0' }
+
+
diff --git a/root/etc/e-smith/templates/etc/yum/yum-cron.conf/20emiters b/root/etc/e-smith/templates/etc/yum/yum-cron.conf/20emiters
new file mode 100644
index 0000000..89daf26
--- /dev/null
+++ b/root/etc/e-smith/templates/etc/yum/yum-cron.conf/20emiters
@@ -0,0 +1,18 @@
+[emitters]
+# Name to use for this system in messages that are emitted. If
+# system_name is None, the hostname will be used.
+system_name = { $SystemName . "." . $DomainName || 'None' }
+
+# How to send messages. Valid options are stdio and email. If
+# emit_via includes stdio, messages will be sent to stdout; this is useful
+# to have cron send the messages. If emit_via includes email, this
+# program will send email itself according to the configured options.
+# If emit_via is None or left blank, no messages will be sent.
+emit_via = stdio
+
+# The width, in characters, that messages that are emitted should be
+# formatted to.
+output_width = { $yum{output_width} || '100' }
+
+
+
diff --git a/root/etc/e-smith/templates/etc/yum/yum-cron.conf/30email b/root/etc/e-smith/templates/etc/yum/yum-cron.conf/30email
new file mode 100644
index 0000000..ea6aad5
--- /dev/null
+++ b/root/etc/e-smith/templates/etc/yum/yum-cron.conf/30email
@@ -0,0 +1,12 @@
+[email]
+# The address to send email messages from.
+# NOTE: 'localhost' will be replaced with the value of system_name.
+email_from = { 'root@' . $DomainName }
+
+# List of addresses to send messages to.
+email_to = { $yum{ReportEmail} || 'admin@' . $DomainName }
+
+# Name of the host to connect to to send email messages.
+email_host = localhost
+
+
diff --git a/root/etc/e-smith/templates/etc/yum/yum-cron.conf/40groups b/root/etc/e-smith/templates/etc/yum/yum-cron.conf/40groups
new file mode 100644
index 0000000..21424e8
--- /dev/null
+++ b/root/etc/e-smith/templates/etc/yum/yum-cron.conf/40groups
@@ -0,0 +1,9 @@
+[groups]
+# NOTE: This only works when group_command != objects, which is now the default
+# List of groups to update
+group_list = None
+
+# The types of group packages to install
+group_package_types = mandatory, core, default
+
+
diff --git a/root/etc/e-smith/templates/etc/yum/yum-cron.conf/50base b/root/etc/e-smith/templates/etc/yum/yum-cron.conf/50base
new file mode 100644
index 0000000..c7064fb
--- /dev/null
+++ b/root/etc/e-smith/templates/etc/yum/yum-cron.conf/50base
@@ -0,0 +1,25 @@
+[base]
+# This section overrides yum.conf
+
+# Use this to filter Yum core messages
+# -4: critical
+# -3: critical+errors
+# -2: critical+errors+warnings (default)
+debuglevel = -{ $yum{Debug} || '2' }
+
+# skip_broken = True
+
+# use this to change metadata download
+# `instant' - Just download the new metadata index, this is roughly what yum always did, however it now does some checking on the index and reverts if it classifies it as bad.
+# `group:primary' - Download the primary metadata with the index. This contains most of the package information and so is almost always required anyway.
+# `group:small' - With the primary also download the updateinfo metadata, groups, and pkgtags. This is required for yum-security operations and it also used in the graphical clients. This file also tends to be signifi‐
+# cantly smaller than most others. This is the default.
+# `group:main' - With the primary and updateinfo download the filelists metadata and the group metadata. The filelists data is required for operations like "yum install /bin/bash", and also some dependency resolutions
+# require it. The group data is used in some graphical clients and for group operations like "yum grouplist Base".
+# `group:all' - Download all metadata listed in the index, currently the only one not listed above is the other metadata, which contains the changelog information which is used by yum-changelog. This is what "yum make‐
+# cache" uses.
+mdpolicy = group:main
+
+# Uncomment to auto-import new gpg keys (dangerous)
+# assumeyes = True
+
diff --git a/root/etc/e-smith/web/functions/yum b/root/etc/e-smith/web/functions/yum
new file mode 100644
index 0000000..78447ec
--- /dev/null
+++ b/root/etc/e-smith/web/functions/yum
@@ -0,0 +1,321 @@
+#!/usr/bin/perl -wT
+# vim: ft=xml:
+
+#----------------------------------------------------------------------
+# heading : Configuration
+# description : Software installer
+# navigation : 4000 4200
+#
+# copyright (C) 1999-2005 Mitel Networks Corporation
+# copyright (C) 2004 Shad L. Lords
+# copyright (C) 2005-2006 Gordon Rowell
+# Copyright (c) 2003-2004 Darrell May
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+#
+# Technical support for this program is available from Mitel Networks
+# Please visit our web site www.mitel.com/sme/ for details.
+#----------------------------------------------------------------------
+
+use strict;
+use esmith::TestUtils;
+use esmith::FormMagick::Panel::yum;
+my $f = esmith::FormMagick::Panel::yum->new();
+
+if (-e "/var/run/yum.pid")
+{
+ $f->print_yum_status_page();
+ exit(0);
+}
+
+if ($f->get_prop('yum', 'LogFile'))
+{
+ $f->skip_to_postupgrade();
+}
+
+$f->display();
+
+=head1 TESTING
+
+=begin testing
+
+=end testing
+
+=cut
+
+__DATA__
+
diff --git a/root/etc/e-smith/web/panels/manager/cgi-bin/.gitignore b/root/etc/e-smith/web/panels/manager/cgi-bin/.gitignore
new file mode 100644
index 0000000..e69de29
diff --git a/root/etc/logrotate.d/yum-sme b/root/etc/logrotate.d/yum-sme
new file mode 100644
index 0000000..29e8ec1
--- /dev/null
+++ b/root/etc/logrotate.d/yum-sme
@@ -0,0 +1,15 @@
+/var/log/yum/yum.log {
+ missingok
+ notifempty
+ maxsize 1M
+ yearly
+ create 0600 root root
+}
+/var/log/yum/yum-update.log {
+ missingok
+ notifempty
+ maxsize 1M
+ weekly
+ create 0600 root root
+}
+
diff --git a/root/etc/yum/pluginconf.d/smeserver.conf b/root/etc/yum/pluginconf.d/smeserver.conf
new file mode 100644
index 0000000..37d52e2
--- /dev/null
+++ b/root/etc/yum/pluginconf.d/smeserver.conf
@@ -0,0 +1,3 @@
+[main]
+enabled=1
+
diff --git a/root/sbin/e-smith/check4contribsupdates b/root/sbin/e-smith/check4contribsupdates
new file mode 100644
index 0000000..7416351
--- /dev/null
+++ b/root/sbin/e-smith/check4contribsupdates
@@ -0,0 +1,34 @@
+#! /bin/bash
+
+mkdir -p /tmp/check4contribsupdates.$$
+TMPFILE=`mktemp /tmp/check4contribsupdates.$$/XXXXXXXXXX` || exit 1
+TMP1=`mktemp /tmp/check4contribsupdates.$$/XXXXXXXXXX` || exit 1
+
+MAILADDR=admin-yum
+
+yum -e 0 -d 0 check-update --disablerepo=* --enablerepo=smecontribs > $TMP1
+if [ $? = 100 ]; then
+ echo -e "===\n=== yum reports available updates for Contribs:\n===" >> $TMPFILE
+ cat $TMP1 >> $TMPFILE
+ echo -e "\n=== To apply *all* these updates, log on to your server command line and
+=== enter the following command:
+ # yum update --enablerepo=smecontribs" >> $TMPFILE
+ echo -e "\n=== Alternatively you can update packages one at a time using the command:
+=== (replace packagename with contrib name eg smeserver-wbl)
+ # yum update --enablerepo=smecontribs packagename
+=== if needed, you might also be asked to run after yum:
+ # signal-event post-upgrade
+ # signal-event reboot\n" >> $TMPFILE
+fi
+
+if [ -s $TMPFILE ]; then
+ if [ "$1" = "-m" ]; then
+ mail -s "SME Server Contribs Updates available for `hostname`" $MAILADDR < $TMPFILE
+ else
+ echo "SME Server Contribs Updates available for `hostname`"
+ cat $TMPFILE
+ fi
+fi
+
+rm -f $TMPFILE $TMP1
+rm -fr /tmp/check4contribsupdates.*
diff --git a/root/sbin/e-smith/check4updates b/root/sbin/e-smith/check4updates
new file mode 100644
index 0000000..18d6266
--- /dev/null
+++ b/root/sbin/e-smith/check4updates
@@ -0,0 +1,40 @@
+#! /bin/bash
+
+mkdir -p /tmp/check4updates.$$
+TMPFILE=`mktemp /tmp/check4updates.$$/XXXXXXXXXX` || exit 1
+TMP1=`mktemp /tmp/check4updates.$$/XXXXXXXXXX` || exit 1
+
+MAILADDR=admin-yum
+
+# SME 10 EOL message
+DATE=$(date +%Y%m%d)
+if [ $DATE -ge "20240630" ]; then
+ echo -e "===\n=== URGENT NOTICE:">> $TMPFILE
+ echo -e "=== As per June 30th 2024, SME Server 10 is obsolete, and potentially INSECURE.">> $TMPFILE
+ echo -e "=== Failure to upgrade may lead to the compromise of this server.">> $TMPFILE
+ echo -e "=== NO support will be offered for any issue found with this installed version.">> $TMPFILE
+ echo -e "=== Please migrate IMMEDIATELY to Koozali SME Server 11 or higher version." >> $TMPFILE
+ echo -e "=== Visit https://wiki.koozali.org/SME_Server:Download \n===" >> $TMPFILE
+fi
+
+yum -e 0 -d 0 check-update > $TMP1
+if [ $? = 100 ]; then
+ echo -e "===\n=== yum reports available updates:\n===" >> $TMPFILE
+ /usr/sbin/yum-cron /etc/yum/yum-cron.conf >> $TMPFILE
+ #cat $TMP1 >> $TMPFILE
+ # we have updates, let's inform the server-manager
+ /usr/bin/systemctl restart yum.service
+
+fi
+
+if [ -s $TMPFILE ]; then
+ if [ "$1" = "-m" ]; then
+ mail -s "Updates available for `hostname`" $MAILADDR < $TMPFILE
+ else
+ echo "Updates available for `hostname`"
+ cat $TMPFILE
+ fi
+fi
+
+rm -f $TMPFILE $TMP1
+rm -fr /tmp/check4updates.*
diff --git a/root/sbin/e-smith/yum_update_dbs b/root/sbin/e-smith/yum_update_dbs
new file mode 100644
index 0000000..82327fd
--- /dev/null
+++ b/root/sbin/e-smith/yum_update_dbs
@@ -0,0 +1,132 @@
+#!/usr/bin/perl -w
+#----------------------------------------------------------------------
+# Yum database updates
+# Copyright (C) 2005 Gordon Rowell
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License or more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+#----------------------------------------------------------------------
+
+use strict;
+use esmith::ConfigDB;
+
+my $db = esmith::ConfigDB->open_ro or die "Couldn't open ConfigDB\n";
+
+my $pid = fork;
+exit 1 unless defined $pid;
+# now two processes are executing
+if ($pid == 0) {
+
+use constant YUM_CRON_FLAG => '/var/lock/subsys/yum-cron';
+# we do not use yum-cron /etc/cron.daily file
+# so we keep away the subsys file
+#if ($db->get_prop('yum', 'AutoInstallUpdates') eq 'enabled')
+#{
+# (system('/bin/touch', YUM_CRON_FLAG) == 0) or
+# warn "Couldn't touch " . YUM_CRON_FLAG . "\n";
+#}
+#else
+#{
+# system("/usr/bin/systemctl -q stop yum-cron");
+# system("/usr/bin/systemctl -q mask yum-cron");
+ unlink YUM_CRON_FLAG;
+#}
+
+# XXX - WARNING - XXX
+#
+# For speed and to reduce log noise, we don't use
+# the esmith::DB routines here
+
+# We do not use -R xxx to sleep for a while, as we do this at cron level
+# this allows faster results when needed or delayed when not
+
+use constant YUM_CMD => "/usr/bin/yum -d 0 -e 0 ";
+
+# avoid error with no installed groups file.
+system(YUM_CMD." groups mark convert -d 0 -e 0 1>/dev/null") unless (-d "/var/lib/yum/groups/");
+
+# yum check to have fresh metadata
+system(YUM_CMD." check-update 1>/dev/null");
+
+my $tmp_file;
+
+END { $tmp_file and -f $tmp_file and unlink $tmp_file; }
+
+for my $list_option ( qw(available installed updates) )
+{
+ my $file = "/home/e-smith/db/yum_${list_option}";
+ $tmp_file = "/home/e-smith/db/yum_${list_option}.tmp";
+
+ open DB, ">$tmp_file" or die "Couldn't create $tmp_file\n";
+
+ print DB "# Generated by $0: " . scalar localtime() . "\n";
+
+ open YUM, "-|", YUM_CMD . "list $list_option" or
+ die "Couldn't call yum list $list_option\n";
+
+ #strip header, preventing inclusion as package
+ my $header = ;
+ while ( )
+ {
+ my ($package, $version, $repo) = split /\s+/;
+
+ next unless $package and $version and $repo;
+
+ if ($list_option eq 'available')
+ {
+ my $RestrictRpm = $db->get_prop('yum', 'RestrictRpm') || '';
+ my $RestrictRepo = $db->get_prop('yum', 'RestrictRepo') || '';
+ my @rpms = split(/,/, $RestrictRpm);
+ my @repos = split(/,/, $RestrictRepo);
+
+ if ( ($#rpms < 0 && $#repos < 0)
+ || (grep { $package =~ /$_/ } @rpms)
+ || (grep { $repo =~ /$_/ } @repos)
+ )
+ {
+ print DB "$package=package|Repo|$repo|Version|$version\n";
+ }
+ }
+ else
+ {
+ print DB "$package=package|Repo|$repo|Version|$version\n";
+ }
+ }
+
+ close YUM or warn "yum list $list_option status $?\n";
+
+ open YUM, "-|", YUM_CMD . "grouplist $list_option" or
+ die "Couldn't call yum grouplist $list_option\n";
+
+ while ( )
+ {
+ next if /^\s*$/;
+
+ next unless /^\s+/;
+
+ s/\s+//g;
+
+ print DB "$_=group\n";
+ }
+
+ close YUM or warn "yum grouplist $list_option status $?\n";
+
+ close DB;
+
+ rename $tmp_file, $file or die "Couldn't rename $tmp_file $file\n";
+}
+
+exit 0;
+}
+exit 0;
diff --git a/root/usr/lib/systemd/system/yum.service b/root/usr/lib/systemd/system/yum.service
new file mode 100644
index 0000000..930f920
--- /dev/null
+++ b/root/usr/lib/systemd/system/yum.service
@@ -0,0 +1,14 @@
+[Unit]
+Description=Yum db updater for Koozali SME Server
+After=network-pre.target networking.service
+Conflicts=yum-cron.service
+
+[Service]
+Type=forking
+ExecStartPre=/sbin/e-smith/service-status yum
+ExecStart=/sbin/e-smith/yum_update_dbs
+TimeoutSec=0
+RemainAfterExit=yes
+
+[Install]
+WantedBy=sme-server.target
diff --git a/root/usr/lib/yum-plugins/smeserver.py b/root/usr/lib/yum-plugins/smeserver.py
new file mode 100644
index 0000000..23c7f10
--- /dev/null
+++ b/root/usr/lib/yum-plugins/smeserver.py
@@ -0,0 +1,446 @@
+# vim: noexpandtab tabstop=4
+
+import os
+import shutil
+import subprocess
+import syslog
+from yum.constants import *
+from yum.plugins import PluginYumExit
+from yum.plugins import TYPE_CORE
+from yum.packages import parsePackages
+from yum.packages import RpmBase
+
+requires_api_version = '2.1'
+plugin_type = (TYPE_CORE,)
+
+events_path = '/etc/e-smith/events'
+initialize_database = events_path + '/actions/initialize-default-databases'
+navigation_conf = events_path + '/actions/navigation-conf'
+systemctl = "/usr/bin/systemctl"
+yum_update_dbs = events_path + '/actions/yum-update-dbs'
+signal_event = '/sbin/e-smith/signal-event'
+config_set = '/sbin/e-smith/config'
+status_file = '/var/run/yum.status'
+expand_template = '/sbin/e-smith/expand-template'
+service = '/sbin/e-smith/service'
+
+eventlist = dict()
+actionlist = dict()
+templateslist = dict()
+serviceslist = dict()
+
+
+# list of packages that need a reboot
+# if a package name starts with one these names, a reboot is needed
+rebootpkgs = ['daemontools', 'dbus', 'glibc', 'gnutls', 'kernel', 'linux-firmware', 'lvm2', 'mdadm', 'openssl-libs', 'systemd']
+# exclusions :
+rebootpkgsexclude = dict()
+rebootpkgsexclude['dbus']='-python','-tests','-devel','-doc',
+rebootpkgsexclude['glibc']='-devel','-headers','-statics','-utils','-glib',
+rebootpkgsexclude['gnutls']='-devel',
+rebootpkgsexclude['kernel']='-doc','-debug','-devel','-abi-whitelists','tools',
+rebootpkgsexclude['lvm2']='-devel','-python',
+rebootpkgsexclude['systemd']='-devel','-python',
+
+
+# list of packages that need a service restart
+# if a package name starts with one of these values, a service restart is needed
+# since, for example, httpd means httpd-admin and httpd-e-smith, we won't use these names directly but via serviceslist (see below)
+restartpkgs = ['dovecot','bglibs','cvm','freeradius','httpd','iptables', 'mariadb' , 'nut', 'openldap', 'openssh', 'php', 'pptpd', 'proftp', 'samba', 'spamassassin', 'squid', 'qmail', 'qpsmtpd']
+servicenames = dict()
+servicenames['bglibs']='cvm-unix',
+servicenames['cvm']='cvm-unix',
+servicenames['dovecot']='dovecot',
+servicenames['freeradius']='radiusd',
+servicenames['httpd']='httpd-admin','httpd-e-smith',
+servicenames['iptables']='masq',
+servicenames['mariadb']='mariadb',
+servicenames['nut']='nut-server','nut-driver','nut-monitor',
+servicenames['openldap']='ldap',
+servicenames['openssh']='sshd',
+servicenames['php']='httpd-e-smith', 'php-fpm', 'php55-php-fpm', 'php56-php-fpm', 'php70-php-fpm', 'php71-php-fpm', 'php72-php-fpm', 'php73-php-fpm', 'php74-php-fpm', 'php80-php-fpm', 'php81-php-fpm',
+servicenames['proftp']='ftp',
+servicenames['samba']='smb',
+servicenames['spamassassin']='spamassassin',
+servicenames['squid']='squid',
+servicenames['qmail']='qmail',
+servicenames['qpsmtpd']='qpsmtpd',
+
+smechange = False
+smechangelist = dict()
+ourfile = False
+erasing = False
+DEBUG = False
+smeEventPretrans = False
+removenorebootok = dict()
+
+def log(s):
+ if DEBUG :
+ print s
+def createevent():
+ if os.path.isdir('/etc/e-smith/events/temp'):
+ shutil.rmtree('/etc/e-smith/events/temp')
+ os.makedirs('/etc/e-smith/events/temp/services2adjust', 0o777)
+ os.makedirs('/etc/e-smith/events/temp/templates2expand', 0o777)
+
+def addtemplate2expand(template):
+ #check filename
+ head_tail = os.path.split(template)
+ head = head_tail[0];
+ filename = head_tail[1];
+ # create dir
+ if not os.path.isdir('/etc/e-smith/events/temp/templates2expand' + head):
+ os.makedirs('/etc/e-smith/events/temp/templates2expand' + head, 0o777)
+ #touch file
+ fname= '/etc/e-smith/events/temp/templates2expand'+ template
+ fhandle = open(fname, 'a')
+ try:
+ os.utime(fname, None)
+ finally:
+ fhandle.close()
+
+def report_yum_status(status):
+ fileHandle = open(status_file, 'w')
+ fileHandle.write(status)
+ fileHandle.close()
+
+def predownload_hook(conduit):
+ report_yum_status('predownload')
+
+def postdownload_hook(conduit):
+ report_yum_status('postdownload')
+
+def prereposetup_hook(conduit):
+ global ourfile
+
+ ourfile = True
+ report_yum_status('prereposetup')
+
+def postreposetup_hook(conduit):
+ report_yum_status('postreposetup')
+
+def exclude_hook(conduit):
+ report_yum_status('exclude')
+
+def preresolve_hook(conduit):
+ report_yum_status('preresolve')
+
+def postresolve_hook(conduit):
+ report_yum_status('postresolve')
+
+def pretrans_hook(conduit):
+# we might need to change the strategy here to make a difference between update and removal.
+#transaction set states
+#TS_UPDATE = 10
+#TS_INSTALL = 20
+#TS_TRUEINSTALL = 30
+#TS_ERASE = 40
+#TS_OBSOLETED = 50
+#TS_OBSOLETING = 60
+#TS_AVAILABLE = 70
+#TS_UPDATED = 90
+#TS_FAILED = 100
+#TS_INSTALL_STATES = [TS_INSTALL, TS_TRUEINSTALL, TS_UPDATE, TS_OBSOLETING]
+#TS_REMOVE_STATES = [TS_ERASE, TS_OBSOLETED, TS_UPDATED]
+
+ report_yum_status('pretrans')
+ log("*******Pretrans********")
+ # Prefetch filelist for packages to be removed,
+ # otherwise for updated packages headers will not be available
+ ts = conduit.getTsInfo()
+ removes = ts.getMembersWithState(output_states=TS_REMOVE_STATES)
+ rpmdb = conduit.getRpmDB()
+ global smechange
+ global eventlist
+ global actionlist
+ global templateslist
+ global serviceslist
+ global erasing
+ global smeEventPretrans
+ global removenorebootok
+
+
+ # reinstall are not listed there so already skipped
+ # downgrade are going there
+ # update are going there, we filter them out
+ # real removal are the real deal there ; downgrade are played like if they were removal
+ for tsmem in removes:
+ erasing = True
+ (n, a, e, v, r) = tsmem.po.pkgtup
+ if tsmem.output_state == TS_UPDATED :
+ # if we are actually updating then we are not removing, and new package will do better... skipping
+ log('skiping as updating ==> state ' + str(tsmem.po.state) + " RPM current state" + str(tsmem.current_state) + " RPM output state" + str(tsmem.output_state))
+ continue
+ log('**Package: ' + tsmem.name + ' to be removed')
+ smeevent = tsmem.name + '-update'
+ if os.path.isdir(events_path + os.sep + smeevent):
+ tmppath = events_path + os.sep + smeevent + os.sep
+ eventlist[tsmem.name] = smeevent
+
+ if os.path.isdir(tmppath + "templates2expand" + os.sep):
+ tmppathtmpl = tmppath + "templates2expand" + os.sep
+ for subdir, dirs, files in os.walk(tmppathtmpl):
+ for file in files:
+ mytmptemplate = os.path.join(subdir, file).replace(tmppathtmpl,os.sep)
+ if not templateslist.has_key(mytmptemplate):
+ templateslist[mytmptemplate]=mytmptemplate
+ log(" template " + mytmptemplate)
+
+ # nothing for actions ???
+ tmppathsrv = tmppath + os.sep
+ files = [f for f in os.listdir(tmppathsrv)]
+ for f in files:
+ if os.path.islink(tmppathsrv + f):
+ mytmpaction = os.path.realpath(os.readlink(tmppath + f).replace("..",events_path))
+ log(" link " + f + ": " + mytmpaction)
+ actionlist[f]=mytmpaction
+
+ # end debug print
+ if os.path.isdir(tmppath + "services2adjust" + os.sep):
+ tmppathsrv = tmppath + "services2adjust" + os.sep
+ files = [f for f in os.listdir(tmppathsrv)]
+ for f in files:
+ if os.path.islink(tmppathsrv + f):
+ log(" service link " + f + ": " + (os.readlink(tmppathsrv + f)))
+ mytmpserv = os.readlink(tmppathsrv + f)
+ if not serviceslist.has_key(f):
+ serviceslist[f]=mytmpserv
+ else:
+ if mytmpserv == "restart":
+ log("overriding all signals, forcing restart " + f )
+ serviceslist[f]="restart"
+ removenorebootok[n]=1;
+ thispo = rpmdb.searchNevra(name=n, arch=a, epoch=e, ver=v, rel=r)[0]
+ # thispo.dirlist thispo.ghostlist thispo.filelist
+ if "/etc/e-smith/web/panels/manager/cgi-bin" in thispo.dirlist:
+ log(" ==> pannel detected : adding navigation-conf")
+ actionlist['S80navigation-conf']="/etc/e-smith/events/actions/navigation-conf"
+
+ else:
+ if (n.startswith('smeserver') or n.startswith('e-smith')) and not n.startswith('smeserver-locale'):
+ smechange = True
+ smechangelist[n]=str(tsmem.po.state) + " " + str(tsmem.current_state) + " " + str(tsmem.output_state)
+ log("smechange set to True because of " + n + " with " + str(tsmem.po.state) + " " + str(tsmem.current_state) + " " + str(tsmem.output_state) )
+
+ #only for debug
+ log('## smechange: '+str(smechange))
+ log('## eventlist: '+ str(eventlist))
+ log('## templateslist: '+str(templateslist.keys()))
+ log('## serviceslist: '+str(serviceslist.items()))
+ log('## actions ALL: ' + str(actionlist.keys()))
+ log('## smechangelist: ' + str(smechangelist.keys()))
+
+ if len(serviceslist)>0:
+ # would it be a good idea to do some action/event there to stop service being removed ?
+ # for the moment we do not, logic : if template still there at posttrans, we expand it after removal
+ # probably the actions in some situations could be done before...
+ # create an empty temp event
+ print "Creating temporary event 'temp' and populating it..."
+ createevent()
+ print " Adding services to adjust"
+ for kservices in serviceslist:
+ log(" " + kservices + ": " + serviceslist[kservices])
+ os.symlink(serviceslist[kservices], '/etc/e-smith/events/temp/services2adjust/' + kservices)
+
+ # execute the event ; should we really wait ??
+ print "Executing signal-event temp before uninstalling ..........."
+ os.spawnl(os.P_WAIT,signal_event,signal_event, 'temp')
+ smeEventPretrans = True;
+
+def posttrans_hook(conduit):
+ report_yum_status('posttrans')
+ log("*******Postrans********")
+ ts = conduit.getTsInfo()
+ rpmdb = conduit.getRpmDB()
+
+ global smechange
+ global eventlist
+ global actionlist
+ global templateslist
+ global serviceslist
+ global erasing
+ global smeEventPretrans
+ global removenorebootok
+
+
+ for tsmem in ts.getMembers():
+ (n, a, e, v, r) = tsmem.po.pkgtup
+ # n: name ; a : arch; e: epoch ; v: version, r: release
+ #if tsmem.output_state in TS_INSTALL_STATES:
+ # thispo = rpmdb.searchNevra(name=n, arch=a, epoch=e, ver=v, rel=r)[0]
+
+ # we're upgrading/installing/removing a rebootpkgs package.. a reboot is required
+ for pkg in rebootpkgs:
+ if n.startswith(pkg):
+ log('**Package: ' + tsmem.name + ' triggers reboot')
+ # we do some exclusions -devel -doc ...
+ if pkg in rebootpkgsexclude:
+ cont=False
+ for name in rebootpkgsexclude[pkg]:
+ if n.startswith(pkg + name):
+ cont=True
+ if cont:
+ # this is an exception we do not need reboot : -devel, -doc ...
+ continue
+ # either no exception or does not fit exceptions: we need reboot
+ smechange = True
+ smechangelist[n]=str(tsmem.po.state) + " " + str(tsmem.current_state) + " " + str(tsmem.output_state)
+ log("smechange set to True because of " + n + " with " + str(tsmem.po.state) + " " + str(tsmem.current_state) + " " + str(tsmem.output_state))
+ #log("smechange set to True because of " + pkg)
+
+ # check if we're upgrading a restartpkgs rpm
+ for pkg in restartpkgs:
+ if n.startswith(pkg):
+ if pkg in servicenames:
+ for name in servicenames[pkg]:
+ if not serviceslist.has_key(name):
+ serviceslist[name] = 'restart'
+ else:
+ if not serviceslist.has_key(pkg):
+ serviceslist[pkg] = 'restart'
+
+
+ #if smechange is true we can ignore the following part
+ # wondering if we reallly do want to ignore that : let's say we want to delay kernel reboot,
+ # could we at least configure httpd cleanly until next week ?
+ # also when updating a package the erasing flag was on and prevented to do this ....
+ # if not smechange and not erasing:
+ if True:
+
+ smeevent = tsmem.name + '-update'
+ if os.path.isdir(events_path + os.sep + smeevent):
+ tmppath = events_path + os.sep + smeevent + os.sep
+ eventlist[tsmem.name] = smeevent
+
+ files = [f for f in os.listdir(tmppath)]
+ for f in files:
+ if os.path.islink(tmppath + f):
+
+ mytmpaction = os.path.realpath(os.readlink(tmppath + f).replace("..",events_path))
+ #log(" link " + f + ": " + mytmpaction)
+ actionlist[f]=mytmpaction
+
+
+ if os.path.isdir(tmppath + "templates2expand" + os.sep):
+ tmppathtmpl = tmppath + "templates2expand" + os.sep
+ for subdir, dirs, files in os.walk(tmppathtmpl):
+ for file in files:
+ mytmptemplate = os.path.join(subdir, file).replace(tmppathtmpl,os.sep)
+ if not templateslist.has_key(mytmptemplate):
+ templateslist[mytmptemplate]=mytmptemplate
+ log(" template " + mytmptemplate)
+
+ if os.path.isdir(tmppath + "services2adjust" + os.sep):
+ tmppathsrv = tmppath + "services2adjust" + os.sep
+ files = [f for f in os.listdir(tmppathsrv)]
+ for f in files:
+ if os.path.islink(tmppathsrv + f):
+ log(" service link " + f + ": " + (os.readlink(tmppathsrv + f)))
+ mytmpserv = os.readlink(tmppathsrv + f)
+ if not serviceslist.has_key(f):
+ serviceslist[f]=mytmpserv
+ else:
+ if mytmpserv == "restart":
+ #only for debug
+ log("overriding all signals, forcing restart " + f)
+ serviceslist[f]="restart"
+ if tsmem.output_state in TS_INSTALL_STATES:
+ thispo = rpmdb.searchNevra(name=n, arch=a, epoch=e, ver=v, rel=r)[0]
+ # thispo.dirlist thispo.ghostlist thispo.filelist
+ if "/etc/e-smith/web/panels/manager/cgi-bin" in thispo.dirlist:
+ log(" ==> pannel detected : adding navigation-conf")
+ actionlist['S80navigation-conf']="/etc/e-smith/events/actions/navigation-conf"
+
+ else:
+ if (n.startswith('smeserver') or n.startswith('e-smith')) and not n.startswith('smeserver-locale') and not (n in removenorebootok):
+ smechange = True
+ smechangelist[n]=str(tsmem.po.state) + " " + str(tsmem.current_state) + " " + str(tsmem.output_state)
+ log("smechange set to True because of " + n + " with " + str(tsmem.po.state) + " " + str(tsmem.current_state) + " " + str(tsmem.output_state) )
+
+ #only for debug
+ log('## smechange: '+str(smechange))
+ log('## eventlist: '+ str(eventlist))
+ log('## templateslist: '+str(templateslist.keys()))
+ log('## serviceslist: '+str(serviceslist.items()))
+ log('## actions ALL: ' + str(actionlist.keys()))
+ log('## smechangelist: ' + str(smechangelist.keys()))
+
+ # 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)
+
+ # just in case we add systemd-default and systemd-reload
+ if not actionlist.has_key('S88systemd-default'):
+ actionlist['S88systemd-default'] = '/etc/e-smith/events/actions/systemd-default'
+ if not actionlist.has_key('S89systemd-reload'):
+ actionlist['S89systemd-reload'] = '/etc/e-smith/events/actions/systemd-reload'
+
+ # here we would like to remove duplicates
+ # those are potential : S??navigation-conf S??systemd-reload S??systemd-default
+ for act in ('navigation-conf','systemd-reload','systemd-default'):
+ global iter
+ iter = 0
+ for key in actionlist.keys():
+ if key.endswith(act):
+ iter += 1
+ if iter>1:
+ del actionlist[key]
+ log("removing duplicate action " + key + " iter " + str(iter))
+
+
+ # now, if smechange is false (no reboot needed), we can execute actions, expand templates and adjust services
+
+ # create an empty temp event
+ print "Creating temporary event 'temp' and populating it..."
+ createevent()
+
+ # fill it with our list of actions
+ if len(actionlist)>0:
+ print " Adding actions to execute"
+ for kactions in actionlist:
+ if os.path.isfile(actionlist[kactions]):
+ log(" " + kactions)
+ os.symlink(actionlist[kactions],'/etc/e-smith/events/temp/' + kactions)
+
+ # fill it with our list of templates to expand
+ if len(templateslist)>0:
+ print " Adding templates to expand"
+ for ktemplates in templateslist:
+ mytemplatedir = '/etc/e-smith/templates/' + ktemplates
+ mytemplatemeta = '/etc/e-smith/templates.metadata/' + ktemplates
+ if os.path.exists(mytemplatedir) or os.path.exists(mytemplatemeta):
+ log(" " + ktemplates)
+ addtemplate2expand(ktemplates)
+
+ if len(serviceslist)>0:
+ print " Adding services to adjust"
+ for kservices in serviceslist:
+ log(" " + kservices + ": " + serviceslist[kservices])
+ os.symlink(serviceslist[kservices], '/etc/e-smith/events/temp/services2adjust/' + kservices)
+
+ # execute the event ; should we really wait ??
+ print "Executing signal-event temp ..........."
+ os.spawnl(os.P_WAIT,signal_event,signal_event, 'temp')
+
+ if smechange:
+ os.spawnl(os.P_WAIT, config_set, config_set, 'set', 'UnsavedChanges', 'yes')
+ os.spawnl(os.P_WAIT, navigation_conf, navigation_conf)
+ syslog.syslog('Needs signal-event post-upgrade; signal-event reboot because of: ' + str(smechangelist.keys()) )
+ print "Reload yum db for server-manager"
+ os.spawnl(os.P_WAIT, systemctl, systemctl, 'restart', 'yum')
+
+def close_hook(conduit):
+ if ourfile and os.path.isfile('/var/run/yum.status'):
+ os.unlink('/var/run/yum.status')
+
+ if smechange:
+ print "\nThe following updates require a server reboot:\n" + str(smechangelist.keys())
+ print "\n=============================================================="
+ print "WARNING: You now need to run BOTH of the following commands"
+ print "to ensure consistent system state:\n"
+ print "signal-event post-upgrade; signal-event reboot\n"
+ print "You should run these commands unless you are certain that"
+ print "yum made no changes to your system."
+ print "=============================================================="
+
diff --git a/root/usr/share/perl5/vendor_perl/esmith/FormMagick/Panel/yum.pm b/root/usr/share/perl5/vendor_perl/esmith/FormMagick/Panel/yum.pm
new file mode 100644
index 0000000..5c36e47
--- /dev/null
+++ b/root/usr/share/perl5/vendor_perl/esmith/FormMagick/Panel/yum.pm
@@ -0,0 +1,416 @@
+#!/usr/bin/perl -w
+
+#----------------------------------------------------------------------
+# copyright (C) 2004 Shad L. Lords
+# Copyright (C) 2005-2006 Gordon Rowell
+# Copyright (C) 2005 Darrell May
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+#----------------------------------------------------------------------
+
+package esmith::FormMagick::Panel::yum;
+
+use strict;
+use esmith::ConfigDB;
+use esmith::FormMagick;
+use CGI::FormMagick::TagMaker;
+use esmith::util;
+use esmith::cgi;
+use File::Basename;
+use File::stat;
+use Exporter;
+use Carp;
+
+our @ISA = qw(esmith::FormMagick Exporter);
+
+our @EXPORT = qw( print_yum_status_page );
+
+our $VERSION = sprintf '%d.%03d', q$Revision: 1.0 $ =~ /: (\d+).(\d+)/;
+our $db = esmith::ConfigDB->open or
+ die "Couldn't open configuration database (permissions problems?)";
+
+our %dbs;
+
+for ( qw(available installed updates) )
+{
+ $dbs{$_} = esmith::ConfigDB->open_ro("yum_$_") or
+ die "Couldn't open yum_$_ DB\n";
+}
+
+for ( qw(repositories) )
+{
+ $dbs{$_} = esmith::ConfigDB->open("yum_$_") or
+ die "Couldn't open yum_$_ DB\n";
+}
+
+=pod
+
+=head1 NAME
+
+esmith::FormMagick::Panels::yum - useful panel functions
+
+=head1 SYNOPSIS
+
+use esmith::FormMagick::Panels::yum;
+
+my $panel = esmith::FormMagick::Panel::yum->new();
+$panel->display();
+
+=head1 DESCRIPTION
+
+=cut
+
+=head2 new();
+
+Exactly as for esmith::FormMagick
+
+=cut
+
+sub new {
+ shift;
+ my $self = esmith::FormMagick->new(csrfdelay=>600);
+ $self->{calling_package} = (caller)[0];
+ bless $self;
+ return $self;
+}
+
+=head2 get_prop ITEM PROP
+
+A simple accessor for esmith::ConfigDB::Record::prop
+
+=cut
+
+sub get_prop {
+ my ($fm, $item, $prop, $default) = @_;
+ warn "You must specify a record key" unless $item;
+ warn "You must specify a property name" unless $prop;
+ my $record = $db->get($item) or warn "Couldn't get record for $item";
+ my $value = $record ? $record->prop($prop) : undef;
+ return defined $value ? $value : $default;
+}
+
+=head2 get_value ITEM
+
+A simple accessor for esmith::ConfigDB::Record::value
+
+=cut
+
+sub get_value {
+ my ($fm,$item,$default) = @_;
+ my $record = $db->get($item) or warn "Couldn't get record for $item";
+ my $value = $record ? $record->value() : undef;
+ return defined $value ? $value : $default;
+}
+
+sub is_empty
+{
+ my ($fm, $yumdb) = @_;
+
+ my $groups = $dbs{$yumdb}->get_all_by_prop(type => 'group') || 'none';
+ my $packages = $dbs{$yumdb}->get_all_by_prop(type => 'package') || 'none';
+
+ #Show no updates if both = none
+ return 1 if ($packages eq $groups);
+
+ #else return here
+ return;
+}
+
+sub non_empty
+{
+ my ($fm, $yumdb, $type) = @_;
+
+ $type ||= 'both';
+
+ return 0 unless (exists $dbs{$yumdb});
+
+ my $groups = scalar $dbs{$yumdb}->get_all_by_prop(type => 'group');
+ return $groups if ($type eq 'group');
+
+ my $packages = scalar $dbs{$yumdb}->get_all_by_prop(type => 'package');
+ if ($type eq 'package')
+ {
+ return $fm->package_functions_enabled ? $packages : 0;
+ }
+
+ return ($fm->package_functions_enabled or $yumdb eq 'updates') ?
+ ($groups || $packages) : $groups;
+}
+
+sub get_options
+{
+ my ($fm, $yumdb, $type) = @_;
+
+ my %options;
+
+ for ($dbs{$yumdb}->get_all_by_prop(type => $type))
+ {
+ $options{$_->key} = $_->key . " " . ($_->prop("Version")||"") . " - " .
+ ($_->prop("Repo")||"");
+ }
+
+ return \%options;
+}
+
+sub get_names
+{
+ return [ keys %{get_options(@_)} ];
+}
+
+sub get_avail
+{
+ my ($fm, $yumdb, $type) = @_;
+
+ return $fm->get_options("available", "package");
+}
+
+sub get_status
+{
+ my ($fm, $prop, $localise) = @_;
+
+ my $status = $db->get_prop("yum", $prop) || 'disabled';
+
+ return $status unless $localise;
+
+ return $fm->localise($status eq 'enabled' ? 'ENABLED' : 'DISABLED');
+}
+
+sub change_settings
+{
+ my ($fm) = @_;
+ my $q = $fm->{'cgi'};
+
+ for my $param ( qw(
+ PackageFunctions
+ ) )
+ {
+ $db->set_prop('yum', $param, $q->param("yum_$param"));
+ }
+
+ my $check4updates = $q->param("yum_check4updates");
+ my $status = 'disabled';
+
+ if ($check4updates ne 'disabled') { $status = 'enabled'; }
+
+ $db->set_prop('yum', 'check4updates', $check4updates);
+
+ my $deltarpm = $q->param("yum_DeltaRpmProcess");
+ $db->set_prop('yum', 'DeltaRpmProcess', $deltarpm);
+
+ my $downloadonly = $q->param("yum_DownloadOnly");
+ if ($downloadonly ne 'disabled') { $status = 'enabled'; }
+
+ $db->set_prop('yum', 'DownloadOnly', $downloadonly);
+
+ my $AutoInstallUpdates = $q->param("yum_AutoInstallUpdates");
+ if ($AutoInstallUpdates ne 'disabled') { $status = 'enabled'; }
+
+ $db->set_prop('yum', 'AutoInstallUpdates', $AutoInstallUpdates);
+ $db->set_prop('yum', 'status', $status);
+
+ my %selected = map {$_ => 1} $q->param('SelectedRepositories');
+
+ foreach my $repos (
+ $dbs{repositories}->get_all_by_prop(type => "repository") )
+ {
+ $repos->set_prop("status",
+ exists $selected{$repos->key} ? 'enabled' : 'disabled');
+
+ }
+
+ $dbs{repositories}->reload;
+
+ unless ( system( "/sbin/e-smith/signal-event", "yum-modify" ) == 0 )
+ {
+ $fm->error('ERROR_UPDATING_CONFIGURATION');
+ return undef;
+ }
+
+ $fm->success('SUCCESS');
+}
+
+sub do_yum
+{
+ my ($fm, $function) = @_;
+ my $q = $fm->{'cgi'};
+
+ for ( qw(SelectedGroups SelectedPackages) )
+ {
+ $db->set_prop("yum", $_, join(',', ($q->param($_) )));
+ }
+
+ esmith::util::backgroundCommand(0,
+ "/sbin/e-smith/signal-event", "yum-$function");
+
+ $db->reload;
+
+ $fm->print_yum_status_page();
+}
+
+sub print_skip_header
+{
+ return "\n";
+}
+
+sub format_yum_log
+{
+ my ($fm) = @_;
+
+ my $yum_log = $db->get_prop('yum', 'LogFile');
+
+ return '' unless $yum_log and -f $yum_log;
+
+ my @contents;
+
+ open my $log_file, "<", $yum_log or die "Couldn't open $yum_log\n";
+ push @contents, "
", <$log_file>, "
";
+ close $log_file or die "Failed to close $yum_log\n";
+
+ return @contents;
+}
+
+sub print_yum_status_page
+{
+ my ($fm) = @_;
+ my @yum_status;
+
+ if (open(YUM_STATUS, ";
+ close(YUM_STATUS);
+ }
+
+ my @yum_log = $fm->format_yum_log();
+
+ my $page_output = << "EOF";
+Expires: 0
+Refresh: 10; URL=/server-manager/cgi-bin/yum
+Content-type: text/html
+
+
+
+
+
+
+ server manager
+
+
+
+
Please Wait - Yum Running (@yum_status)
+ @yum_log
+
+
+EOF
+
+ print $page_output;
+}
+
+sub package_functions_enabled
+{
+ my ($fm) = @_;
+
+ return ($db->get_prop("yum", "PackageFunctions") eq "enabled");
+}
+
+sub get_repository_options
+{
+ my $self = shift;
+
+ my %options;
+
+ foreach my $repos (
+ $dbs{repositories}->get_all_by_prop(type => "repository") )
+ {
+ next unless ($repos->prop('Visible') eq 'yes'
+ or $repos->prop('status') eq 'enabled');
+
+ $options{$repos->key} = $repos->prop('Name');
+ }
+
+ return \%options;
+}
+
+sub get_repository_current_options
+{
+ my $self = shift;
+
+ my @selected;
+
+ foreach my $repos (
+ $dbs{repositories}->get_all_by_prop( type => "repository" ) )
+ {
+ next unless ($repos->prop('Visible') eq 'yes'
+ or $repos->prop('status') eq 'enabled');
+
+ push @selected, $repos->key if ($repos->prop('status') eq 'enabled');
+ }
+
+ return \@selected;
+}
+
+sub post_upgrade_reboot
+{
+ my $fm = shift;
+
+ $db->get_prop_and_delete('yum', 'LogFile');
+
+ $db->reload;
+
+ if (fork == 0)
+ {
+ exec "/sbin/e-smith/signal-event post-upgrade; /sbin/e-smith/signal-event reboot";
+ die "Exec failed";
+ }
+
+ $fm->success('SYSTEM_BEING_RECONFIGURED');
+}
+
+sub display_yum_log
+{
+ my $fm = shift;
+
+ print $fm->format_yum_log();
+
+ my $yum_log = $db->get_prop_and_delete('yum', 'LogFile');
+ return;
+}
+
+sub skip_to_postupgrade
+{
+ my $fm = shift;
+
+ my $reconf = get_value($fm,"UnsavedChanges",'yes');
+ if ( $reconf eq 'no' ) {
+ $fm->success('UPDATE_SUCCESS');
+ $fm->{cgi}->param(-name => "page", -value => 0);
+ $fm->{cgi}->param(-name => "page_stack", -value => '');
+ $fm->{cgi}->param(-name => "Next", -value => 'Next');
+ $fm->{cgi}->param(-name => "wherenext", -value =>'YUM_PAGE_NO_POSTUPGRADE');
+ } else {
+# effective reconfigure and reboot required
+ $fm->success('HEADER_POSTUPGRADE_REQUIRED', 'YUM_PAGE_POSTUPGRADE');
+ if ($fm->{csrf}) {
+ # we want to restart CSRF token timer from now
+ $fm->{cgi}->param(-name => 'csrf_timestamp', -value => time);
+ $fm->commit_session;
+ }
+ $fm->{cgi}->param(-name => "page", -value => 0);
+ $fm->{cgi}->param(-name => "page_stack", -value => '');
+ $fm->{cgi}->param(-name => "Next", -value => 'Next');
+ $fm->{cgi}->param(-name => "wherenext", -value =>'YUM_PAGE_POSTUPGRADE');
+ }
+}
+
+1;
diff --git a/root/usr/share/rpm-gpg-keys/RPM-GPG-KEY-CentOS-5 b/root/usr/share/rpm-gpg-keys/RPM-GPG-KEY-CentOS-5
new file mode 100644
index 0000000..2627d31
--- /dev/null
+++ b/root/usr/share/rpm-gpg-keys/RPM-GPG-KEY-CentOS-5
@@ -0,0 +1,28 @@
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+Version: GnuPG v1.2.6 (GNU/Linux)
+
+mQGiBEWfB6MRBACrnYW6yKMT+MwJlCIhoyTxGf3mAxmnAiDEy6HcYN8rivssVTJk
+CFtQBlBOpLV/OW2YtKrCO2xHn46eNfnMri8FGT8g+9JF3MUVi7kiV1He4iJynHXB
++F2ZqIvHf3IaUj1ys+p8TK64FDFxDQDrGQfIsD/+pkSGx53/877IrvdwjwCguQcr
+Ioip5TH0Fj0OLUY4asYVZH8EAIqFHEqsY+9ziP+2R3/FyxSllKkjwcMLrBug+cYO
+LYDD6eQXE9Mq8XKGFDj9ZB/0+JzK/XQeStheeFG75q3noq5oCPVFO4czuKErIRAB
+qKbDBhaTj3JhOgM12XsUYn+rI6NeMV2ZogoQCC2tWmDETfRpYp2moo53NuFWHbAy
+XjETA/sHEeQT9huHzdi/lebNBj0L8nBGfLN1nSRP1GtvagBvkR4RZ6DTQyl0UzOJ
+RA3ywWlrL9IV9mrpb1Fmn60l2jTMMCc7J6LacmPK906N+FcN/Docj1M4s/4CNanQ
+NhzcFhAFtQL56SNyLTCk1XzhssGZ/jwGnNbU/aaj4wOj0Uef5LRGQ2VudE9TLTUg
+S2V5IChDZW50T1MgNSBPZmZpY2lhbCBTaWduaW5nIEtleSkgPGNlbnRvcy01LWtl
+eUBjZW50b3Mub3JnPohkBBMRAgAkBQJFnwekAhsDBQkSzAMABgsJCAcDAgMVAgMD
+FgIBAh4BAheAAAoJEKikR9zoViiXKlEAmwSoZDvZo+WChcg3s/SpNoWCKhMAAJwI
+E2aXpZVrpsQnInUQWwkdrTiL5YhMBBMRAgAMBQJFnwiSBYMSzAIRAAoJEDjCFhY5
+bKCk0hAAn134bIx3wSbq58E6P6U5RT7Z2Zx4AJ9VxnVkoGHkVIgSdsxHUgRjo27N
+F7kBDQRFnwezEAQA/HnJ5yiozwgtf6jt+kii8iua+WnjqBKomPHOQ8moxbWdv5Ks
+4e1DPhzRqxhshjmub4SuJ93sgMSAF2ayC9t51mSJV33KfzPF2gIahcMqfABe/2hJ
+aMzcQZHrGJCEX6ek8l8SFKou7vICzyajRSIK8gxWKBuQknP/9LKsoczV+xsAAwUD
+/idXPkk4vRRHsCwc6I23fdI0ur52bzEqHiAIswNfO521YgLk2W1xyCLc2aYjc8Ni
+nrMX1tCnEx0/gK7ICyJoWH1Vc7//79sWFtX2EaTO+Q07xjFX4E66WxJlCo9lOjos
+Vk5qc7R+xzLDoLGFtbzaTRQFzf6yr7QTu+BebWLoPwNTiE8EGBECAA8FAkWfB7MC
+GwwFCRLMAwAACgkQqKRH3OhWKJfvvACfbsF1WK193zM7vSc4uq51XsceLwgAoI0/
+9GxdNhGQEAweSlQfhPa3yYXH
+=o/Mx
+-----END PGP PUBLIC KEY BLOCK-----
+
diff --git a/root/usr/share/rpm-gpg-keys/RPM-GPG-KEY-CentOS-6 b/root/usr/share/rpm-gpg-keys/RPM-GPG-KEY-CentOS-6
new file mode 100644
index 0000000..bd863d8
--- /dev/null
+++ b/root/usr/share/rpm-gpg-keys/RPM-GPG-KEY-CentOS-6
@@ -0,0 +1,30 @@
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+Version: GnuPG v1.4.5 (GNU/Linux)
+
+mQINBE4P06MBEACqn48FZgYkG2QrtUAVDV58H6LpDYEcTcv4CIFSkgs6dJ9TavCW
+NyPBZRpM2R+Rg5eVqlborp7TmktBP/sSsxc8eJ+3P2aQWSWc5ol74Y0OznJUCrBr
+bIdypJllsD9Fe+h7gLBXTh3vdBEWr2lR+xA+Oou8UlO2gFbVFQqMafUgU1s0vqaE
+/hHH0TzwD0/tJ6eqIbHwVR/Bu6kHFK4PwePovhfvyYD9Y+C0vOYd5Ict2vbLHz1f
+QBDZObv4M6KN3j7nzme47hKtdMd+LwFqxM5cXfM6b5doDulWPmuGV78VoX6OR7el
+x1tlfpuiFeuXYnImm5nTawArcQ1UkXUSYcTUKShJebRDLR3BycxR39Q9jtbOQ29R
+FumHginovEhdUcinRr22eRXgcmzpR00zFIWoFCwHh/OCtG14nFhefuZ8Z80qbVhW
+2J9+/O4tksv9HtQBmQNOK5S8C4HNF2M8AfOWNTr8esFSDc0YA5/cxzdfOOtWam/w
+lBpNcUUSSgddRsBwijPuWhVA3NmA/uQlJtAo4Ji5vo8cj5MTPG3+U+rfNqRxu1Yc
+ioXRo4LzggPscaTZX6V24n0fzw0J2k7TT4sX007k+7YXwEMqmHpcMYbDNzdCzUer
+Zilh5hihJwvGfdi234W3GofttoO+jaAZjic7a3p6cO1ICMgfVqrbZCUQVQARAQAB
+tEZDZW50T1MtNiBLZXkgKENlbnRPUyA2IE9mZmljaWFsIFNpZ25pbmcgS2V5KSA8
+Y2VudG9zLTYta2V5QGNlbnRvcy5vcmc+iQI8BBMBAgAmBQJOD9OjAhsDBQkSzAMA
+BgsJCAcDAgQVAggDBBYCAwECHgECF4AACgkQCUb8osEFud6ajRAAnb6d+w6Y/v/d
+MSy7UEy4rNquArix8xhqBwwjoGXpa37OqTvvcJrftZ1XgtzmTbkqXc+9EFch0C+w
+ST10f+H0SPTUGuPwqLkg27snUkDAv1B8laub+l2L9erzCaRriH8MnFyxt5v1rqWA
+mVlRymzgXK+EQDr+XOgMm1CvxVY3OwdjdoHNox4TdVQWlZl83xdLXBxkd5IRciNm
+sg5fJAzAMeg8YsoDee3m4khg9gEm+/Rj5io8Gfk0nhQpgGGeS1HEXl5jzTb44zQW
+qudkfcLEdUMOECbu7IC5Z1wrcj559qcp9C94IwQQO+LxLwg4kHffvZjCaOXDRiya
+h8KGsEDuiqwjU9HgGq9fa0Ceo3OyUazUi+WnOxBLVIQ8cUZJJ2Ia5PDnEsz59kCp
+JmBZaYPxUEteMtG3yDTa8c8jUnJtMPpkwpSkeMBeNr/rEH4YcBoxuFjppHzQpJ7G
+hZRbOfY8w97TgJbfDElwTX0/xX9ypsmBezgGoOvOkzP9iCy9YUBc9q/SNnflRWPO
+sMVrjec0vc6ffthu2xBdigBXhL7x2bphWzTXf2T067k+JOdoh5EGney6LhQzcp8m
+YCTENStCR+L/5XwrvNgRBnoXe4e0ZHet1CcCuBCBvSmsPHp5ml21ahsephnHx+rl
+JNGtzulnNP07RyfzQcpCNFH7W4lXzqM=
+=jrWY
+-----END PGP PUBLIC KEY BLOCK-----
diff --git a/root/usr/share/rpm-gpg-keys/RPM-GPG-KEY-CentOS-7 b/root/usr/share/rpm-gpg-keys/RPM-GPG-KEY-CentOS-7
new file mode 100644
index 0000000..47f6d4d
--- /dev/null
+++ b/root/usr/share/rpm-gpg-keys/RPM-GPG-KEY-CentOS-7
@@ -0,0 +1,30 @@
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+Version: GnuPG v1.4.5 (GNU/Linux)
+
+mQINBFOn/0sBEADLDyZ+DQHkcTHDQSE0a0B2iYAEXwpPvs67cJ4tmhe/iMOyVMh9
+Yw/vBIF8scm6T/vPN5fopsKiW9UsAhGKg0epC6y5ed+NAUHTEa6pSOdo7CyFDwtn
+4HF61Esyb4gzPT6QiSr0zvdTtgYBRZjAEPFVu3Dio0oZ5UQZ7fzdZfeixMQ8VMTQ
+4y4x5vik9B+cqmGiq9AW71ixlDYVWasgR093fXiD9NLT4DTtK+KLGYNjJ8eMRqfZ
+Ws7g7C+9aEGHfsGZ/SxLOumx/GfiTloal0dnq8TC7XQ/JuNdB9qjoXzRF+faDUsj
+WuvNSQEqUXW1dzJjBvroEvgTdfCJfRpIgOrc256qvDMp1SxchMFltPlo5mbSMKu1
+x1p4UkAzx543meMlRXOgx2/hnBm6H6L0FsSyDS6P224yF+30eeODD4Ju4BCyQ0jO
+IpUxmUnApo/m0eRelI6TRl7jK6aGqSYUNhFBuFxSPKgKYBpFhVzRM63Jsvib82rY
+438q3sIOUdxZY6pvMOWRkdUVoz7WBExTdx5NtGX4kdW5QtcQHM+2kht6sBnJsvcB
+JYcYIwAUeA5vdRfwLKuZn6SgAUKdgeOtuf+cPR3/E68LZr784SlokiHLtQkfk98j
+NXm6fJjXwJvwiM2IiFyg8aUwEEDX5U+QOCA0wYrgUQ/h8iathvBJKSc9jQARAQAB
+tEJDZW50T1MtNyBLZXkgKENlbnRPUyA3IE9mZmljaWFsIFNpZ25pbmcgS2V5KSA8
+c2VjdXJpdHlAY2VudG9zLm9yZz6JAjUEEwECAB8FAlOn/0sCGwMGCwkIBwMCBBUC
+CAMDFgIBAh4BAheAAAoJECTGqKf0qA61TN0P/2730Th8cM+d1pEON7n0F1YiyxqG
+QzwpC2Fhr2UIsXpi/lWTXIG6AlRvrajjFhw9HktYjlF4oMG032SnI0XPdmrN29lL
+F+ee1ANdyvtkw4mMu2yQweVxU7Ku4oATPBvWRv+6pCQPTOMe5xPG0ZPjPGNiJ0xw
+4Ns+f5Q6Gqm927oHXpylUQEmuHKsCp3dK/kZaxJOXsmq6syY1gbrLj2Anq0iWWP4
+Tq8WMktUrTcc+zQ2pFR7ovEihK0Rvhmk6/N4+4JwAGijfhejxwNX8T6PCuYs5Jiv
+hQvsI9FdIIlTP4XhFZ4N9ndnEwA4AH7tNBsmB3HEbLqUSmu2Rr8hGiT2Plc4Y9AO
+aliW1kOMsZFYrX39krfRk2n2NXvieQJ/lw318gSGR67uckkz2ZekbCEpj/0mnHWD
+3R6V7m95R6UYqjcw++Q5CtZ2tzmxomZTf42IGIKBbSVmIS75WY+cBULUx3PcZYHD
+ZqAbB0Dl4MbdEH61kOI8EbN/TLl1i077r+9LXR1mOnlC3GLD03+XfY8eEBQf7137
+YSMiW5r/5xwQk7xEcKlbZdmUJp3ZDTQBXT06vavvp3jlkqqH9QOE8ViZZ6aKQLqv
+pL+4bs52jzuGwTMT7gOR5MzD+vT0fVS7Xm8MjOxvZgbHsAgzyFGlI1ggUQmU7lu3
+uPNL0eRx4S1G4Jn5
+=OGYX
+-----END PGP PUBLIC KEY BLOCK-----
diff --git a/root/usr/share/rpm-gpg-keys/RPM-GPG-KEY-CentOS-SIG-SCLo b/root/usr/share/rpm-gpg-keys/RPM-GPG-KEY-CentOS-SIG-SCLo
new file mode 100644
index 0000000..343aff9
--- /dev/null
+++ b/root/usr/share/rpm-gpg-keys/RPM-GPG-KEY-CentOS-SIG-SCLo
@@ -0,0 +1,20 @@
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+Version: GnuPG v2.0.22 (GNU/Linux)
+
+mQENBFYM/AoBCADR9Q5cb+H5ndx+QkzNBQ88wcD+g112yvnHNlSiBMOnNEGHuKPJ
+tujZ+eWXP3K6ucJckT91WxfQ2fxPr9jQ0xpZytcHcZdTfn3vKL9+OwR0npp+qmcz
+rK8/EzVz/SWSgBQ5xT/HUvaeoVAbzBHSng0r2njnBAqABKAoTxgyRGKSCWduKD32
+7PF2ZpqeDFFhd99Ykt6ar8SlV8ToqH6F7An0ILeejINVbHUxd6+wsbpcOwQ4mGAa
+/CPXeqqLGj62ASBv36xQr34hlN/9zQMViaKkacl8zkuvwhuHf4b4VlGVCe6VILpQ
+8ytKMV/lcg7YpMfRq4KVWBjCwkvk6zg6KxaHABEBAAG0aENlbnRPUyBTb2Z0d2Fy
+ZUNvbGxlY3Rpb25zIFNJRyAoaHR0cHM6Ly93aWtpLmNlbnRvcy5vcmcvU3BlY2lh
+bEludGVyZXN0R3JvdXAvU0NMbykgPHNlY3VyaXR5QGNlbnRvcy5vcmc+iQE5BBMB
+AgAjBQJWDPwKAhsDBwsJCAcDAgEGFQgCCQoLBBYCAwECHgECF4AACgkQTrhOcfLu
+nVXNewgAg7RVclomjTY4w80XiztUuUaFlCHyR76KazdaGfx/8XckWH2GdQtwii+3
+Tg7+PT2H0Xyuj1aod+jVTPXTPVUr+rEHAjuNDY+xyAJrNljoOHiz111zs9pk7PLX
+CPwKWQLnmrcKIi8v/51L79FFsUMvhClTBdLUQ51lkCwbcXQi+bOhPvZTVbRhjoB/
+a9z0d8t65X16zEzE7fBhnVoj4xye/MPMbTH41Mv+FWVciBTuAepOLmgJ9oxODliv
+rgZa28IEWkvHQ8m9GLJ0y9mI6olh0cGFybnd5y4Ss1cMttlRGR4qthLhN2gHZpO9
+2y4WgkeVXCj1BK1fzVrDMLPbuNNCZQ==
+=UtPD
+-----END PGP PUBLIC KEY BLOCK-----
diff --git a/root/usr/share/rpm-gpg-keys/RPM-GPG-KEY-EPEL-5 b/root/usr/share/rpm-gpg-keys/RPM-GPG-KEY-EPEL-5
new file mode 100644
index 0000000..5a13bb4
--- /dev/null
+++ b/root/usr/share/rpm-gpg-keys/RPM-GPG-KEY-EPEL-5
@@ -0,0 +1,30 @@
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+Version: GnuPG v1.2.6 (GNU/Linux)
+
+mQGiBEXopTIRBACZDBMOoFOakAjaxw1LXjeSvh/kmE35fU1rXfM7T0AV31NATCLF
+l5CQiNDA4oWreDThg2Bf6+LIVTsGQb1V+XXuLak4Em5yTYwMTVB//4/nMxQEbpl/
+QB2XwlJ7EQ0vW+kiPDz/7pHJz1p1jADzd9sQQicMtzysS4qT2i5A23j0VwCg1PB/
+lpYqo0ZhWTrevxKMa1n34FcD/REavj0hSLQFTaKNLHRotRTF8V0BajjSaTkUT4uk
+/RTaZ8Kr1mTosVtosqmdIAA2XHxi8ZLiVPPSezJjfElsSqOAxEKPL0djfpp2wrTm
+l/1iVnX+PZH5DRKCbjdCMLDJhYap7YUhcPsMGSeUKrwmBCBJUPc6DhjFvyhA9IMl
+1T0+A/9SKTv94ToP/JYoCTHTgnG5MoVNafisfe0wojP2mWU4gRk8X4dNGKMj6lic
+vM6gne3hESyjcqZSmr7yELPPGhI9MNauJ6Ob8cTR2T12Fmv9w03DD3MnBstR6vhP
+QcqZKhc5SJYYY7oVfxlSOfF4xfwcHQKoD5TOKwIAQ6T8jyFpKbQkRmVkb3JhIEVQ
+RUwgPGVwZWxAZmVkb3JhcHJvamVjdC5vcmc+iGQEExECACQFAkXopTICGwMFCRLM
+AwAGCwkIBwMCAxUCAwMWAgECHgECF4AACgkQEZzANiF1IfabmQCgzvE60MnHSOBa
+ZXXF7uU2Vzu8EOkAoKg9h+j0NuNom6WUYZyJQt4zc5seuQINBEXopTYQCADapnR/
+blrJ8FhlgNPl0X9S3JE/kygPbNXIqne4XBVYisVp0uzNCRUxNZq30MpY027JCs2J
+nL2fMpwvx33f0phU029vrIZKA3CmnnwVsjcWfMJOVPBmVN7m5bGU68F+PdRIcDsl
+PMOWRLkTBZOGolLgIbM4719fqA8etewILrX6uPvRDwywV7/sPCFpRcfNNBUY+Zx3
+5bf4fnkaCKxgXgQS3AT+hGYhlzIqQVTkGNveHTnt4SSzgAqR9sSwQwqvEfVtYNeS
+w5rDguLG41HQm1Hojv59HNYjH6F/S1rClZi21bLgZbKpCFX76qPt8CTw+iQLBPPd
+yoOGHfzyp7nsfhUrAAMFB/9/H9Gpk822ZpBexQW4y3LGFo9ZSnmu+ueOZPU3SqDA
+DW1ovZdYzGuJTGGM9oMl6bL8eZrcUBBOFaWge5wZczIE3hx2exEOkDdvq+MUDVD1
+axmN45q/7h1NYRp5GQL2ZsoV4g9U2gMdzHOFtZCER6PP9ErVlfJpgBUCdSL93V4H
+Sgpkk7znmTOklbCM6l/G/A6q4sCRqfzHwVSTiruyTBiU9lfROsAl8fjIq2OzWJ2T
+P9sadBe1llUYaow7txYSUxssW+89avct35gIyrBbof5M+CBXyAOUaSWmpM2eub24
+0qbqiSr/Y6Om0t6vSzR8gRk7g+1H6IE0Tt1IJCvCAMimiE8EGBECAA8FAkXopTYC
+GwwFCRLMAwAACgkQEZzANiF1IfZQYgCgiZHCv4xb+sTHCn/otc1Ovvi/OgMAnRXY
+bbsLFWOfmzAnNIGvFRWy+YHi
+=MMNL
+-----END PGP PUBLIC KEY BLOCK-----
diff --git a/root/usr/share/rpm-gpg-keys/RPM-GPG-KEY-EPEL-6 b/root/usr/share/rpm-gpg-keys/RPM-GPG-KEY-EPEL-6
new file mode 100644
index 0000000..7a20304
--- /dev/null
+++ b/root/usr/share/rpm-gpg-keys/RPM-GPG-KEY-EPEL-6
@@ -0,0 +1,29 @@
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+Version: GnuPG v1.4.5 (GNU/Linux)
+
+mQINBEvSKUIBEADLGnUj24ZVKW7liFN/JA5CgtzlNnKs7sBg7fVbNWryiE3URbn1
+JXvrdwHtkKyY96/ifZ1Ld3lE2gOF61bGZ2CWwJNee76Sp9Z+isP8RQXbG5jwj/4B
+M9HK7phktqFVJ8VbY2jfTjcfxRvGM8YBwXF8hx0CDZURAjvf1xRSQJ7iAo58qcHn
+XtxOAvQmAbR9z6Q/h/D+Y/PhoIJp1OV4VNHCbCs9M7HUVBpgC53PDcTUQuwcgeY6
+pQgo9eT1eLNSZVrJ5Bctivl1UcD6P6CIGkkeT2gNhqindRPngUXGXW7Qzoefe+fV
+QqJSm7Tq2q9oqVZ46J964waCRItRySpuW5dxZO34WM6wsw2BP2MlACbH4l3luqtp
+Xo3Bvfnk+HAFH3HcMuwdaulxv7zYKXCfNoSfgrpEfo2Ex4Im/I3WdtwME/Gbnwdq
+3VJzgAxLVFhczDHwNkjmIdPAlNJ9/ixRjip4dgZtW8VcBCrNoL+LhDrIfjvnLdRu
+vBHy9P3sCF7FZycaHlMWP6RiLtHnEMGcbZ8QpQHi2dReU1wyr9QgguGU+jqSXYar
+1yEcsdRGasppNIZ8+Qawbm/a4doT10TEtPArhSoHlwbvqTDYjtfV92lC/2iwgO6g
+YgG9XrO4V8dV39Ffm7oLFfvTbg5mv4Q/E6AWo/gkjmtxkculbyAvjFtYAQARAQAB
+tCFFUEVMICg2KSA8ZXBlbEBmZWRvcmFwcm9qZWN0Lm9yZz6JAjYEEwECACAFAkvS
+KUICGw8GCwkIBwMCBBUCCAMEFgIDAQIeAQIXgAAKCRA7Sd8qBgi4lR/GD/wLGPv9
+qO39eyb9NlrwfKdUEo1tHxKdrhNz+XYrO4yVDTBZRPSuvL2yaoeSIhQOKhNPfEgT
+9mdsbsgcfmoHxmGVcn+lbheWsSvcgrXuz0gLt8TGGKGGROAoLXpuUsb1HNtKEOwP
+Q4z1uQ2nOz5hLRyDOV0I2LwYV8BjGIjBKUMFEUxFTsL7XOZkrAg/WbTH2PW3hrfS
+WtcRA7EYonI3B80d39ffws7SmyKbS5PmZjqOPuTvV2F0tMhKIhncBwoojWZPExft
+HpKhzKVh8fdDO/3P1y1Fk3Cin8UbCO9MWMFNR27fVzCANlEPljsHA+3Ez4F7uboF
+p0OOEov4Yyi4BEbgqZnthTG4ub9nyiupIZ3ckPHr3nVcDUGcL6lQD/nkmNVIeLYP
+x1uHPOSlWfuojAYgzRH6LL7Idg4FHHBA0to7FW8dQXFIOyNiJFAOT2j8P5+tVdq8
+wB0PDSH8yRpn4HdJ9RYquau4OkjluxOWf0uRaS//SUcCZh+1/KBEOmcvBHYRZA5J
+l/nakCgxGb2paQOzqqpOcHKvlyLuzO5uybMXaipLExTGJXBlXrbbASfXa/yGYSAG
+iVrGz9CE6676dMlm8F+s3XXE13QZrXmjloc6jwOljnfAkjTGXjiB7OULESed96MR
+XtfLk0W5Ab9pd7tKDR6QHI7rgHXfCopRnZ2VVQ==
+=V/6I
+-----END PGP PUBLIC KEY BLOCK-----
diff --git a/root/usr/share/rpm-gpg-keys/RPM-GPG-KEY-EPEL-7 b/root/usr/share/rpm-gpg-keys/RPM-GPG-KEY-EPEL-7
new file mode 100644
index 0000000..f205ede
--- /dev/null
+++ b/root/usr/share/rpm-gpg-keys/RPM-GPG-KEY-EPEL-7
@@ -0,0 +1,29 @@
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+Version: GnuPG v1.4.11 (GNU/Linux)
+
+mQINBFKuaIQBEAC1UphXwMqCAarPUH/ZsOFslabeTVO2pDk5YnO96f+rgZB7xArB
+OSeQk7B90iqSJ85/c72OAn4OXYvT63gfCeXpJs5M7emXkPsNQWWSju99lW+AqSNm
+jYWhmRlLRGl0OO7gIwj776dIXvcMNFlzSPj00N2xAqjMbjlnV2n2abAE5gq6VpqP
+vFXVyfrVa/ualogDVmf6h2t4Rdpifq8qTHsHFU3xpCz+T6/dGWKGQ42ZQfTaLnDM
+jToAsmY0AyevkIbX6iZVtzGvanYpPcWW4X0RDPcpqfFNZk643xI4lsZ+Y2Er9Yu5
+S/8x0ly+tmmIokaE0wwbdUu740YTZjCesroYWiRg5zuQ2xfKxJoV5E+Eh+tYwGDJ
+n6HfWhRgnudRRwvuJ45ztYVtKulKw8QQpd2STWrcQQDJaRWmnMooX/PATTjCBExB
+9dkz38Druvk7IkHMtsIqlkAOQMdsX1d3Tov6BE2XDjIG0zFxLduJGbVwc/6rIc95
+T055j36Ez0HrjxdpTGOOHxRqMK5m9flFbaxxtDnS7w77WqzW7HjFrD0VeTx2vnjj
+GqchHEQpfDpFOzb8LTFhgYidyRNUflQY35WLOzLNV+pV3eQ3Jg11UFwelSNLqfQf
+uFRGc+zcwkNjHh5yPvm9odR1BIfqJ6sKGPGbtPNXo7ERMRypWyRz0zi0twARAQAB
+tChGZWRvcmEgRVBFTCAoNykgPGVwZWxAZmVkb3JhcHJvamVjdC5vcmc+iQI4BBMB
+AgAiBQJSrmiEAhsPBgsJCAcDAgYVCAIJCgsEFgIDAQIeAQIXgAAKCRBqL66iNSxk
+5cfGD/4spqpsTjtDM7qpytKLHKruZtvuWiqt5RfvT9ww9GUUFMZ4ZZGX4nUXg49q
+ixDLayWR8ddG/s5kyOi3C0uX/6inzaYyRg+Bh70brqKUK14F1BrrPi29eaKfG+Gu
+MFtXdBG2a7OtPmw3yuKmq9Epv6B0mP6E5KSdvSRSqJWtGcA6wRS/wDzXJENHp5re
+9Ism3CYydpy0GLRA5wo4fPB5uLdUhLEUDvh2KK//fMjja3o0L+SNz8N0aDZyn5Ax
+CU9RB3EHcTecFgoy5umRj99BZrebR1NO+4gBrivIfdvD4fJNfNBHXwhSH9ACGCNv
+HnXVjHQF9iHWApKkRIeh8Fr2n5dtfJEF7SEX8GbX7FbsWo29kXMrVgNqHNyDnfAB
+VoPubgQdtJZJkVZAkaHrMu8AytwT62Q4eNqmJI1aWbZQNI5jWYqc6RKuCK6/F99q
+thFT9gJO17+yRuL6Uv2/vgzVR1RGdwVLKwlUjGPAjYflpCQwWMAASxiv9uPyYPHc
+ErSrbRG0wjIfAR3vus1OSOx3xZHZpXFfmQTsDP7zVROLzV98R3JwFAxJ4/xqeON4
+vCPFU6OsT3lWQ8w7il5ohY95wmujfr6lk89kEzJdOTzcn7DBbUru33CQMGKZ3Evt
+RjsC7FDbL017qxS+ZVA/HGkyfiu4cpgV8VUnbql5eAZ+1Ll6Dw==
+=hdPa
+-----END PGP PUBLIC KEY BLOCK-----
diff --git a/root/usr/share/rpm-gpg-keys/RPM-GPG-KEY-SMEServer b/root/usr/share/rpm-gpg-keys/RPM-GPG-KEY-SMEServer
new file mode 100644
index 0000000..8e4fe72
--- /dev/null
+++ b/root/usr/share/rpm-gpg-keys/RPM-GPG-KEY-SMEServer
@@ -0,0 +1,19 @@
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+Version: GnuPG v1.2.6 (GNU/Linux)
+
+mQGiBEM84T4RBACMPEsM0PcEqt0hFSOWI4BLLUfBbXZVDekRD24vEq9wGQWWvNxf
+tABh53/eLemGxLF28dqipU5TK+6B0FFDkRyaBppmhmtgBD4jDfw9hPoIIw8ufHO6
+F929yBdRuKLPMn+uQ74Bva1JEhUChxMafE+yyrXORXvZWjR5sc2THJWTywCgnfpQ
+ENzljYR1TcM451xgYxIQKBkD/jHPXM7jfCUYobUQ2P80GqaPCnNtA5nhR9/jyUmP
+KPEgiQCVYQmfXWL6/LnnHEi0IFmZ7bDZc7hLO4JhWQINDgg5WDFNflawCeqZ2KIp
+j+SnwbudnXmE4QdGJ66DrS7eNqJkFvLAT/S2Y2A9QIZCWKrg3HfvbrmiR4abRcy0
+kzBVA/sE/6OTLSO5o/kWBIuPQ616800vhXhLdITEPETkkaA3Oj0POKP6AJi7aLKO
+KqpZzyLZi80vhCauztiQmY6fJiHQym6b/HsRSKf+DjExxoq4zp3TEojUK8ReSY6P
+Mx9nsK5l+T70BX4iJsFdcjJHipnXBcuHOMlQtRlszU0b3NMLE7QvU01FIFNlcnZl
+ciA3IHNpZ25pbmcga2V5IDxidWd0ZWFtQGNvbnRyaWJzLm9yZz6IXgQTEQIAHgUC
+QzzhPgIbAwYLCQgHAwIDFQIDAxYCAQIeAQIXgAAKCRA9cgUIHpyTCJWFAJ4xgIUK
+VQysThX/neAbxWvl2YeqpQCeOOUivZbOSScohei7r8jCa+xUiVWIRgQTEQIABgUC
+QzzjFwAKCRC8R3SEoTuRTTJbAJ9auKPxDeQ1hLN43hO5/bmd+TUKggCeIKAFeaR7
+9Pfl09sv0czvNTFSLRM=
+=z7FN
+-----END PGP PUBLIC KEY BLOCK-----
diff --git a/root/usr/share/rpm-gpg-keys/RPM-GPG-KEY-elrepo.org b/root/usr/share/rpm-gpg-keys/RPM-GPG-KEY-elrepo.org
new file mode 100644
index 0000000..fe0c082
--- /dev/null
+++ b/root/usr/share/rpm-gpg-keys/RPM-GPG-KEY-elrepo.org
@@ -0,0 +1,30 @@
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+Version: GnuPG v1.4.5 (GNU/Linux)
+
+mQGiBEm+/6QRBAC5mbtqOFSQ0FkTLIMdIoqxtraIeUqwbPp3IBYQ/u/EREjyEf1D
+qFyBEXII0dD8JDT85vRZ81jhB7nFWa0VbUfY0xfghkbnokiNBVNpiQcvszw3UYDF
+aLAaOC8Z98vmlsQaBBTQG6704ZXLr7FJyG3GP5WE6egXIQQbrMcdmCoRBwCg/dwC
+HLWjuemoDc5SX7hKHbB4zZ8D/jP+oMbqz+bDn8OZ2UuaGdxr+mHW8tzTdPjnEU8e
+hUt1ws8eBqn/gMfKvUBa8xFSILe8Ty99u+VjFbcRsdf0H6dRre9AdDVUz5oxzoPw
+gamA8mhPQvFh3wt9smtRUh5IoM2LiM1s5pGMLuYuvSnVUPArEnSfW6K5I6v7OarU
+3WfrBACDEGGcaWKjfdkRtmKIQrzu6AnldVC1ISLVAoqxHnKNFTk1BgO0PSZDpfJI
+x8fMCnGlusoL6F5+LYEk4K4B0zvlj1ur3JocjxpuBLccl94JTo/+I9ZbS8ptUqLw
+LBUkgIQJzzIH4G5NZsQ3FpzSWGRFVa7etqTv9BfUMUmJxhEoobQ/ZWxyZXBvLm9y
+ZyAoUlBNIFNpZ25pbmcgS2V5IGZvciBlbHJlcG8ub3JnKSA8c2VjdXJlQGVscmVw
+by5vcmc+iGAEExECACAFAkm+/6QCGwMGCwkIBwMCBBUCCAMEFgIDAQIeAQIXgAAK
+CRAwm8MFuq2uUlgWAKCGWOpyodbzxS7Xy/0X9m9qVnHq+ACfUHrQzYAtFRpT07Sg
+giosE+mvAKu5Ag0ESb7/pxAIALgT0q0HhwugE717a7N+gAtCbFu8pCXOZcrAnJpG
+cMA9VWmsODZStPTxXYM2ggCMSzUnNis8pPZOPIP5C+t2IYtVjLshM4C9UiY7u5ET
+jErWCxWmF+2QLO50K56E4qxj0wufZt9P+Ih0USUM5L2oyrQG51uj/2v3Qq3igc8Z
+NTtmEOfis3losusQbAfZtTBmNQ0570kkhMxiyavgAUxLenXHYrkDJFuL7XdBCmna
+kykTn2dzU81rIDZ+QPxII4V/eZ5xGiRY/EDUIAysEV2m0NNZgWi/twUnZICm7zYp
+VRviJrBnFTvNEPMhiGRnJgQp/Krv4WIHQ67N8lQg3q5RJX8AAwUH/0UBjBgbsuWR
+dB+ZYWjKPBy+bJY/6HefPUuLrt3QDNINMW8kY7VzWRMWyGc4IlPJDW0nwOn/vT5H
+Dgc3YmA3tm7cKj5wpFijzff61Db8eq+CUKGscKxDBGzHq6oirM5U7DQLmipCs5Eb
+efwHIjE3aOUSnoQmniEnBWI2hm/rftmY9oJSi8xgns4wAokDPiMcucADtbV3fznx
+ppuowtBi8bcGB1vJZjTySQcSKWv+IVp5ej06uZ9501BEm6HxUZkuAGPecP65kcQu
+5bg7B7LQeI5AWyujqvfuWgAF34xhl9QU/sDWxM3wUog+bw7y8pyWCqnJhp70yx8o
+SqzhFygT62eISQQYEQIACQUCSb7/pwIbDAAKCRAwm8MFuq2uUq8PAKC1+E2pSwiS
+oHXkKYPYDwApsP1mVACfRe1YnggLYQtG9LMeweVQQC77rK8=
+=qyRr
+-----END PGP PUBLIC KEY BLOCK-----
diff --git a/root/usr/share/rpm-gpg-keys/RPM-GPG-KEY-fedora-extras b/root/usr/share/rpm-gpg-keys/RPM-GPG-KEY-fedora-extras
new file mode 100644
index 0000000..e89f164
--- /dev/null
+++ b/root/usr/share/rpm-gpg-keys/RPM-GPG-KEY-fedora-extras
@@ -0,0 +1,35 @@
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+Version: GnuPG v1.0.7 (GNU/Linux)
+
+mQGiBEG+vu8RBACyH3cUSp+DXbyIvZ075bGDhjhRCf8m44UW2cCQdO/45CJBkRnC
+AA6SHthCrXCVKIuuo1jSwy8kMXt1P/7IpF6Tc8ZMzcHKTyNetuuD/A7oavgnrJNb
+QVTScqbD6VrvjUAPpDz5TMPqMMFYwylp+ySKMQpoPOYoqdNE3XwnA5vOywCg44+S
+KDWIV0j5xCeIAoa47VmgF2cEAK/FIZRkbb7+i2Fob1mxKsnuLN/xx67aBpU2w7HO
+scVnkke08lRestDVk/6xb+lrq+gVLdNBfAANBrOcwRv2heu+Zu3PZGuC166/JWFM
+kx5a9TkI0zQAw72LqKeX4VDBRz5fUoIs/C+3aGc5Mh+h8fZYjJGf0kr/90rnd/0e
+WqsBA/9ONArdHN44aICt7xku/t98p9Da04A7kRYTHlLrBk5i0U4JJXKei7ZAzNi4
+Or//8ATepQdsBMCJVx1Ss/vJKxupLG9Mw43nbNuA5SmOSPnAoyglYadKyaUXBbVj
+mkqf9ZkjOMfD5u9PEWMWMq3f8uf05qxsrBDeiyc7Fk0jBYTvnrQ4RmVkb3JhIFBy
+ZSBFeHRyYXMgUmVsZWFzZSA8cHJlLWV4dHJhc0BmZWRvcmFwcm9qZWN0Lm9yZz6I
+XgQTEQIAHgUCQb6+7wIbAwYLCQgHAwIDFQIDAxYCAQIeAQIXgAAKCRCC7ZUEGscM
+5uAMAKC+XaPSCYIpdcmJYEe9rNxYMz/hLwCeOyBYUYA2L0WnbfXuNafRqwta/s2I
+RgQSEQIABgUCQgD+/AAKCRC0QmnQTypv0lVYAJoCLolPSuAj873GbV2+m3Bj6sS/
+UACeNcDmIWeruRld83uSQcx4xJyEOUa0KUZlZG9yYSBQcm9qZWN0IDxmZWRvcmEt
+ZXh0cmFzQHJlZGhhdC5jb20+iF4EExECAB4FAkIAeFQCGwMGCwkIBwMCAxUCAwMW
+AgECHgECF4AACgkQgu2VBBrHDOYu8wCffLm57mvcYApV7eqvHXr29gNAbLwAoJVq
+JWvgBIvg8/4MiqwKAQ1MDkIUiEYEEhECAAYFAkIA/wQACgkQtEJp0E8qb9LQJACf
+c0LteS513+5O6erQO7RBUxC/NI4AniDHK+Ogf5l5Gs2ciwD+WApsZ4mPtDBGZWRv
+cmEgUHJvamVjdCA8ZmVkb3JhLWV4dHJhc0BmZWRvcmFwcm9qZWN0Lm9yZz6IXgQT
+EQIAHgUCQgB4iQIbAwYLCQgHAwIDFQIDAxYCAQIeAQIXgAAKCRCC7ZUEGscM5gZ7
+AJ9n8CYN6nvMqxCbQQZwvs7e/J4//QCeM3nDwC5EfEbEtOHPIYAqTf3IQZaIRgQS
+EQIABgUCQgD/BAAKCRC0QmnQTypv0qKuAJ0cnqk9BbbblRSBbn72bK/BAquzywCe
+M7S0C6rfrYlfOjQHQdVB5GitT9u5AQ0EQb6+8RAEAJmsZ5apOFz0Fj6RwX0D+nOU
+Atdzd3zpTNzu4j8+L750ePutjuwizEmCxKycchuG+gGasLmdxY+xk5AUB7gLt4ms
+eKsWyHvQt+H4wG8jjOjHWXlaJkZaYQUxpVPd6/11hkoqpodJ9ckfoIJnpUJWDcd3
+HTW7jdq+ZtBXjQlwvh3HAAMHA/9g50+hqjn23d91SaFTkvaAySZYHEF/xm5sOV1X
+Z37XNFdl7JRl6BN7y59PE9Nk6qP4yHqH1G2YNDL3BmejChMF5GmEqluNdnvfFvwk
+yqPvE7qCv8BhktPqsnrpFmtfeDFI4vztD08oab9LdkDvQwLHBZpc+wCb4VJzOkaZ
+7e7VP4hJBBgRAgAJBQJBvr7xAhsMAAoJEILtlQQaxwzmxdYAn3X4X/ENC3V4yPDR
+7X6oVeIVr5fvAJ4n5vY10NpvYKV5arzKd8DSW2m5Bg==
+=N/fy
+-----END PGP PUBLIC KEY BLOCK-----
diff --git a/root/usr/share/rpm-gpg-keys/RPM-GPG-KEY-koozali b/root/usr/share/rpm-gpg-keys/RPM-GPG-KEY-koozali
new file mode 100644
index 0000000..6d9c555
--- /dev/null
+++ b/root/usr/share/rpm-gpg-keys/RPM-GPG-KEY-koozali
@@ -0,0 +1,30 @@
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+Version: GnuPG v1.4.5 (GNU/Linux)
+
+mQINBFbb5JYBEAC9I+N9hcehQ60cessrpEfyuJhoG4G5hUtF2ri53YzvsW/+in6Y
+va5r4OM9/iiX01ie5bO7uj7JIbWkoAmrIFoQ3aKSFPHa8X6QFZ9T1Ho1vKfVnXYW
+GzeX2VXavEGC4zRjD74AoKj4Pm0Gsa7Yi8iKOCWuxOU2kwc3+RfEiMi18kdtX6UR
+X8KrXZfeG3n8gLrLeK7lqphpk8SUr9BTXnWVGlPUt15qFS5wkcPlhSlnutknFEFI
+i7hLSUqYSL+8L3hNcoNMuKvMAL+TS40s4Ei5G4SrAGxXH1z9NVE98msUfAdK3ROi
+7xigNZFjCFiaL0D27ropBG0oJQURLtbAdCis5vlgVpz3YKQTadmNYy8iU0j9V5uv
+kLlwfXgKOVGrYwrW3c04u64iIRDa638dD0JObAyGQn/H7lCtifH0QNmOr4g20dEl
+Yfhd4jyWFOwg8/qYlCDvfvKMy+CHsib8+5p6uUIuDd7Xrm2/lgnsFJSFrazXh9Ly
+ieWmY5wpX0Eq26MiSNSDm0AKYEu+yMa7Kifgh5dpjqe1/x0B0SR0mcRN+I2GSunE
+xIx/PoZf8wUAKsPq5a9lcTR9PwSu7si7wgfHI187GbuLbIoxobk138TcKiZVcGmJ
+9aDNWS68EbfjKP+ftJB8pHRW0ViFi/KOydkA3NQ+zRNGIle/6+nLQ3G/8wARAQAB
+tDlLb296YWxpIFNNRSBTZXJ2ZXIgc2lnbmluZyBrZXkgKDEwKSA8YnVndGVhbUBr
+b296YWxpLm9yZz6JAjYEEwECACAFAlbb5JYCGwMGCwkIBwMCBBUCCAMEFgIDAQIe
+AQIXgAAKCRAaDbzAVocxUWyeEACC+CXtPCeSC8TS+kDzpSJ7+7Q+oJAydQjknmeO
+kYOP/8aw0OGLysMQtdErOlJh+Am5oJyLquKH2Fs3NpwjbCy/jvFuFuwxZ0ahM3dd
+6nf7Evd0rOoZUO+xeoUzl/ykHgXaEGY2750Tib7/R9lOSHglgrF/QOIelHKOZqOU
+y0nT3w+FTyqf3ZNA9IMS/YvfMZGJ0KgxoOx8nV/GMVmt0gKHqz2DL3muHGiXub6D
+EXb8aZOH9q6dAGrpixEExBRgtAs3JTYl2M47w4xDb91/yRWoqUHmlv8aV7ZQr20c
+sLuxijbqpfR//Vp9OEXFmK6jCd1s0qBKwJu+e8wiRD8UvDLzic0Hki5imBggos1g
+TWAec9yjBMUUVKse1opmU14k1b8N+iv2d2MaspHrswVRU3Um/0vDlny0OMtYBnvz
+nBPaKSk8FcqDbItFBJCK7Y3Rrx5dsTadAr+Dmli54EM9aYOrhPG7GBLDjML8HI2x
+RjxQ4aAOAl0ETZmgC9Ib2YBt2Xza1ogtTHOjie+Am0j5il0FeGohV28UcJluy5Zt
+bctEEPeeZq7kzYDvv0lSiXy0S11TsvSXbmhs0Z/Lh7CorMaHUiRjt+Hg17CGe0V9
+jzFRUokUykrDqTDai0R7UYRcEUpKfiA+32yqf11J2kpyqzueJ3z59xPr2n4SkZ6Y
+bu7tgg==
+=aVLF
+-----END PGP PUBLIC KEY BLOCK-----
diff --git a/root/usr/share/rpm-gpg-keys/RPM-GPG-KEY-openfusion b/root/usr/share/rpm-gpg-keys/RPM-GPG-KEY-openfusion
new file mode 100644
index 0000000..f349cd2
--- /dev/null
+++ b/root/usr/share/rpm-gpg-keys/RPM-GPG-KEY-openfusion
@@ -0,0 +1,24 @@
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+Version: GnuPG v1.0.7 (GNU/Linux)
+
+mQGiBDps6bkRBACFKoIFqtDXVbzQDfuVhUDbKy1bNTEen8E/0UyqDPfSLgD8uEDU
+ZdG9v3e1IAiAKwBRpNNdn7DrvYSP2HnM+5gSL9WwF+Qc7pt6i5Fp8jsnVKHtulF4
+8hoU/0nbJth/1r+uQOCXIn/5yU0gt9ev7y6FovpE4TmvGkZocKs9PGlSnwCg2Fcg
+Rw2Z3BlIdwTIH4HdY4A+X9ED/AiCz6AIbTN3No4Pofyd9Ctdb8Wi2+HDFe8o1r5M
+BUn2yb04v5/fUgZ32DJHqPxdC/6rwR15PMEO0weIITji8nkGPAUU5Yf1U6WfxaXC
+fj5z6dSM1QbMdEXBZ2qXuzGFV+NoHrPpsi5k1LCETNAmiZ1YdK5QsqcBvLTenum0
+S82+A/96vqBlaxf7VsqVQ6f/KwLvegd1ftpncKzX1lDFN3wT9FSJDz2wbN7X93jg
+bRaSBbwwgSrISCtjciJLzvg8btInRXvzHpngA+jrY82GBMjJ0g0rO/e8WeK4S3+z
+zVAnljQRogFErsxe6AhZFz2Hz9pL12t2Bb1Y/Yj62kIdBs1FTLQkR2F2aW4gQ2Fy
+ciA8Z2F2aW5Ab3BlbmZ1c2lvbi5jb20uYXU+iFcEExECABcFAjps6bkFCwcKAwQD
+FQMCAxYCAQIXgAAKCRDceqMiKmuRSn7KAJwPv3xGQvZjKneR5aYMr8DR4tGXmgCc
+C/YcA9yRa17VcCS8SFTNbrFs9um5AQ0EOmzpwhAEAKYnfhzBJW99bSGWg6826FbC
+g7LdQBjUa7lIk/Osvlkd1FjeogRg4jtEqAeUwTo4Nf3nPMRKE/l4Rzv0DOjhWDEG
+hOKpx1iIKJUPKGHTToOcNAWXSTvzWOx6Rm/sKbInvVgUZjj36IktS88IEI+LMgdm
+nxuPdI46YDcA6+jyUhYnAAMFA/44mjlvBSX8MYaklIMQrps8hPVSVINwTmksRIDb
+wuLU6R85g8If9LaRpVG3rPca+EQ2gEDFVlgt2t2A5XrcHFfkLUx3k1UyF1LOmpRt
+I78FY5s4IXQE7s/QOrBWQj3+FdOkSjeoOyAor5t8ckkLNEM48WAa1hFChOiqYRfO
+vkbYdohGBBgRAgAGBQI6bOnCAAoJENx6oyIqa5FK6QcAn0zeyRrNrt3yHkxoLI36
+XNgiCqE/AJ9AZ+mLPpxeFe8oSM37ZlWQu0yvyQ==
+=r1Po
+-----END PGP PUBLIC KEY BLOCK-----
diff --git a/root/usr/share/rpm-gpg-keys/RPM-GPG-KEY-remi b/root/usr/share/rpm-gpg-keys/RPM-GPG-KEY-remi
new file mode 100644
index 0000000..3283386
--- /dev/null
+++ b/root/usr/share/rpm-gpg-keys/RPM-GPG-KEY-remi
@@ -0,0 +1,24 @@
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+Version: GnuPG v1.4.7 (GNU/Linux)
+
+mQGiBEJny1wRBACRnbQgZ6qLmJSuGvi/EwrRL6aW610BbdpLQRL3dnwy5wI5t9T3
+/JEiEJ7GTvAwfiisEHifMfk2sRlWRf2EDQFttHyrrYXfY5L6UAF2IxixK5FL7PWA
+/2a7tkw1IbCbt4IGG0aZJ6/xgQejrOLi4ewniqWuXCc+tLuWBZrGpE2QfwCggZ+L
+0e6KPTHMP97T4xV81e3Ba5MD/3NwOQh0pVvZlW66Em8IJnBgM+eQh7pl4xq7nVOh
+dEMJwVU0wDRKkXqQVghOxALOSAMapj5mDppEDzGLZHZNSRcvGEs2iPwo9vmY+Qhp
+AyEBzE4blNR8pwPtAwL0W3cBKUx7ZhqmHr2FbNGYNO/hP4tO2ochCn5CxSwAfN1B
+Qs5pBACOkTZMNC7CLsSUT5P4+64t04x/STlAFczEBcJBLF1T16oItDITJmAsPxbY
+iee6JRfXmZKqmDP04fRdboWMcRjfDfCciSdIeGqP7vMcO25bDZB6x6++fOcmQpyD
+1Fag3ZUq2yojgXWqVrgFHs/HB3QE7UQkykNp1fjQGbKK+5mWTrQkUmVtaSBDb2xs
+ZXQgPFJQTVNARmFtaWxsZUNvbGxldC5jb20+iGAEExECACAFAkZ+MYoCGwMGCwkI
+BwMCBBUCCAMEFgIDAQIeAQIXgAAKCRAATm9HAPl/Vv/UAJ9EL8ioMTsz/2EPbNuQ
+MP5Xx/qPLACeK5rk2hb8VFubnEsbVxnxfxatGZ25AQ0EQmfLXRAEANwGvY+mIZzj
+C1L5Nm2LbSGZNTN3NMbPFoqlMfmym8XFDXbdqjAHutGYEZH/PxRI6GC8YW5YK4E0
+HoBAH0b0F97JQEkKquahCakj0P5mGuH6Q8gDOfi6pHimnsSAGf+D+6ZwAn8bHnAa
+o+HVmEITYi6s+Csrs+saYUcjhu9zhyBfAAMFA/9Rmfj9/URdHfD1u0RXuvFCaeOw
+CYfH2/nvkx+bAcSIcbVm+tShA66ybdZ/gNnkFQKyGD9O8unSXqiELGcP8pcHTHsv
+JzdD1k8DhdFNhux/WPRwbo/es6QcpIPa2JPjBCzfOTn9GXVdT4pn5tLG2gHayudK
+8Sj1OI2vqGLMQzhxw4hJBBgRAgAJBQJCZ8tdAhsMAAoJEABOb0cA+X9WcSAAn11i
+gC5ns/82kSprzBOU0BNwUeXZAJ0cvNmY7rvbyiJydyLsSxh/la6HKw==
+=6Rbg
+-----END PGP PUBLIC KEY BLOCK-----
diff --git a/root/usr/share/rpm-gpg-keys/RPM-GPG-KEY-rpmfusion-free-el-7 b/root/usr/share/rpm-gpg-keys/RPM-GPG-KEY-rpmfusion-free-el-7
new file mode 100644
index 0000000..efe2902
--- /dev/null
+++ b/root/usr/share/rpm-gpg-keys/RPM-GPG-KEY-rpmfusion-free-el-7
@@ -0,0 +1,29 @@
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+
+mQINBFVE8DcBEACmsFjnapHXm5l0dXbyxXZU8sZVawRIQ/lG9Yc9tSICcY8QuSxu
+636wsVHiQHd0sIipk6vvgWfTTV+w0OxyovY8PFciEtOC4JZBJO1cT952sDxRTzcU
+Y+DArqPUwqyMqJo86BxwoQi9qdg4eNlp5RNamzbu2yKpPZUk4RWF0QnlEJ5bQ8xY
+Q2HyzR6YUsKBuCbNV/OevxxSjSFesWqmE2zIFVDsNvS+FGbH6SwDrKgBeDHCeg35
+KQgHyNkONoe7EjfCVdWwWsOdo9pqEKZKd4U6Sz234d9JqvF7y3+Lc85l/TxU+G/C
+uXxRki5XVx3sMH0UgK0nn0fBEv95Dtq5I7EWNYDOesFDbBRjhqo5dh51yOcfn1QO
+ATKGwo2WZTGc32kOXwu/zzZaT37HulyOpJ/8jAoOQ6qH5T7RDy2M1vlAvGcdy2dz
+GUyD2bNlPSp1exw6CWOXjty/9nOglJBBsr/YwTundSKpZSKPkn3z74ZAD4Pqviwx
+yRsk1UjHlCm8sPfahkpRheFKDJT/wIBUhI7tbzyfxMaNwryc1U+yOiAl92sMr8ra
+a0CGk48cFa6vulSq/ELdt/qF+I0TywacaTvU3ySSd3Juff54c8ELNBjTGY4MAomk
+y1P755q83yBdYaRDU6U1ljKP1GP8Kgilk6QCWu1izFPepPK4Bi7ZGTUEhQARAQAB
+tE5SUE0gRnVzaW9uIGZyZWUgcmVwb3NpdG9yeSBmb3IgRUwgKDcpIDxycG1mdXNp
+b24tYnVpbGRzeXNAbGlzdHMucnBtZnVzaW9uLm9yZz6JAjIEEwECABwFAlVE8DcC
+GwMECwkIBwMVCAoDFgIAAh4BAheAAAoJEHWLPRj1z2weGigQAKO+ULRBzztGDg3m
+ev8rDEOfv49x3T4+tTYlMOtvsg8Jvi5okGp+bXO0qZkw8463Ljrs5FAW1/oIGFYA
+D9RMDnlgpDAhP6Gho/tGIPc6yfSHOUm2uS5Ve1Q7j3eBHr8IlAvpg/1U9IIS7LDU
+WcVNjpsBzog8pGXRBSYx5yi7ddP5GcQPLwn0TT7jkawzrlmfnMz3un6gaxgFIxmS
+wzd+lr7CHP3Lptxt3Oe5pliEQ58kuBzt0gkxGkkbeRyolareanJBlIozYIM3TQum
+K4UbXIjPWlHr02z+qtrkpkDgM5aO+rEPGctd4W12zT5Gqp5Ij5fuFUHgFKvxf+0F
+t7RDWffAiKtk8HX0PoytIBY9fiQtZXjnbPq1rT65brz6bc85HR3sRx2+gn9IN+Cg
+OwdV7NoL8Dj7w3J5DMS1yT1KbmwRHHyKD0muL3NUw9RZXPmmUakbIvLZlERKhyca
+JZlkakLUOvesXcZg2Zqug36ET0AQO/Af7e6dw8jXBc4BN/R5U8LU0ENaB3apRcdF
+NEDqxPo98MGzIxqJUjWkwJfRvdqAPEM8JLeyhcuChsmwIGF0WbLsmVJ90LJxsoZQ
+G+iQKiFwF8HO6fBk4APSAtic+j+9uHoLMS9tWsLABmNQCvjtRe6hxz20yud672uo
+OEGWGYNPKeu56Dbc18pxBHez9m42
+=buWg
+-----END PGP PUBLIC KEY BLOCK-----
diff --git a/root/usr/share/rpm-gpg-keys/RPM-GPG-KEY.atrpms b/root/usr/share/rpm-gpg-keys/RPM-GPG-KEY.atrpms
new file mode 100644
index 0000000..1827f40
--- /dev/null
+++ b/root/usr/share/rpm-gpg-keys/RPM-GPG-KEY.atrpms
@@ -0,0 +1,30 @@
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+Version: GnuPG v1.2.6 (GNU/Linux)
+
+mQGiBD5gtCgRBACKIvjMF+20r9k/Uw2Hq6Y/qn1nM0AZEFalhglXP5pMm5bMgkcI
+1vCWqJxSbhQhk8hSEenoszes8hyUxHj4hFFUDiRtAxOpCpGCsCnUddgQtHAQd+tm
+aQsM6J3Jm/EZPtwR0lvwvRGvz2x6Rr95G8+42KK9x+mBYhLk0y3gAbBzhwCgnkDH
+a97MGBT7gRLrmtFqiHrWlPkD/2tBaH6IEuoJhcAbNj9MukbhDOYJ6ic9Nzf6sR3t
+ZG+XgQLLS2DNy8+HWcYJOjpJDEe8zWFDdUv3cL1D0U2f2e85FuJaMucHn+816iw8
+mNjZXJEoDE4LJ8Vv53fkevNZpdWmO2VtRwI+woDnIHYHukDLj2sWhVt+5W+uOKAE
+OippA/9OzuWrwBtTR+Np8ApZGkxhxU1z0iEStV+kQNqJE7YoR4SGMuzEa3bFzrPx
+k4qIU+rw4YgFgHrs1x08lXxNOZkq6avvbl60HqN2qF2UQL/YdU+5X3ixaJVaYYk8
+yuK+hp0Hx2DdBWmVhq6rEzIfpnFhF4qspwMWEiiBGjYDL62W7LQ0QVRycG1zLm5l
+dCAocnBtIHNpZ25pbmcga2V5KSA8QXhlbC5UaGltbUBBVHJwbXMubmV0PohnBBMR
+AgAnAhsDBgsJCAcDAgMVAgMDFgIBAh4BAheAAhkBBQJB1X6uBQkFVf4GAAoJEFCM
+5eZmU0wr0wUAmQF0c6+9GiXCV2WOKtT++GM6YKHnAJ0cDppTgYooRSritXjCG+cr
+Mk8llYhnBBMRAgAnAhsDBQkDdMLsBgsJCAcDAgMVAgMDFgIBAh4BAheABQJAKteu
+AhkBAAoJEFCM5eZmU0wrMMUAnRjS2PXQp0tsC/69IGMMxqU+8xeAAJ9XQjVAo+mU
+kg/3AeBlMBIlFe5hDbQ2QVRycG1zIChycG0gc2lnbmluZyBrZXkpIDxBeGVsLlRo
+aW1tQHBoeXNpay5mdS1iZXJsaW4+iEkEMBECAAkFAkHVfmQCHQAACgkQUIzl5mZT
+TCsESwCcCgs7hLZMF0BThsLvxwnC9qSvHkcAn0UkCAzjm7Q2KsuoX5cS+rNvAgf7
+iEwEEBECAAwFAj5gtJsFgwHhMw0ACgkQQBVS1GOamfHbLgCfWP8SvaGYzOWuJIoV
+TToAkYcF0tEAoIuDT91/XarnY/ZUO+Rolw9w7leNiF8EExECAB8ECwcDAgMVAgMD
+FgIBAh4BAheABQJB1X6uBQkFVf4GAAoJEFCM5eZmU0wrOtEAn0QhRI4QG3vo5zm3
+RZdd2JHwOvw0AJ9UHpxXmlsL0zbdLVcWvobRWLfGgYhfBBMRAgAfBQI+YLQoBQkB
+4TOABAsHAwIDFQIDAxYCAQIeAQIXgAAKCRBQjOXmZlNMKx1jAJwPYAl6NLcSYWeR
+Bz56nWqWv39XBACeP7jdZExNZu+vQjONd+zXsMU8MpuIXwQTEQIAHwQLBwMCAxUC
+AwMWAgECHgECF4AFAj/wTxQFCQN0wuwACgkQUIzl5mZTTCsPOgCdHnJrsLx2shkq
+7IS2f0auH+D+m8wAoIgencfOcNUsuJDLYhaGLjjBKcgw
+=IhnP
+-----END PGP PUBLIC KEY BLOCK-----
diff --git a/root/usr/share/rpm-gpg-keys/RPM-GPG-KEY.dag.txt b/root/usr/share/rpm-gpg-keys/RPM-GPG-KEY.dag.txt
new file mode 100644
index 0000000..8ee27f4
--- /dev/null
+++ b/root/usr/share/rpm-gpg-keys/RPM-GPG-KEY.dag.txt
@@ -0,0 +1,32 @@
+The following public key can be used to verify RPM packages
+downloaded from http://dag.wieers.com/apt/ using 'rpm -K'
+if you have the GNU GPG package.
+Questions about this key should be sent to:
+Dag Wieers
+
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+Version: GnuPG v1.2.1 (GNU/Linux)
+
+mQGiBD9JMT0RBAC9Q2B0AloUMTxaK73sD0cOu1MMdD8yuDagbMlDtUYA1aGeJVO6
+TV02JLGr67OBY+UkYuC1c3PUwmb3+jakZd5bW1L8E2L705wS0129xQOZPz6J+alF
+5rTzVkiefg8ch1yEcMayK20NdyOmhDGXQXNQS8OJFLTIC6bJs+7MZL83/wCg3cG3
+3q7MWHm3IpJb+6QKpB9YH58D/2WjPDK+7YIky/JbFBT4JPgTSBy611+bLqHA6PXq
+39tzY6un8KDznAMNtm+NAsr6FEG8PHe406+tbgd7tBkecz3HPX8nR5v0JtDT+gzN
+8fM3kAiAzjCHUAFWVAMAZLr5TXuoq4lGTTxvZbwTjZfyjCm7gIieCu8+qnPWh6hm
+30NgA/0ZyEHG6I4rOWqPks4vZuD+wlp5XL8moBXEKfEVOMh2MCNDRGnvVHu1P3eD
+oHOooVMt9sWrGcgxpYuupPNL4Uf6B6smiLlH6D4tEg+qCxC17zABI5572XJTJ170
+JklZJrPGtnkPrrKMamnN9MU4RjGmjh9JZPa7rKjZHyWP/z/CBrQ1RGFnIFdpZWVy
+cyAoRGFnIEFwdCBSZXBvc2l0b3J5IHYxLjApIDxkYWdAd2llZXJzLmNvbT6IWQQT
+EQIAGQUCP0kxPQQLBwMCAxUCAwMWAgECHgECF4AACgkQog5SFGuNeeYvDQCeKHST
+hIq/WzFBXtJOnQkJGSqAoHoAnRtsJVWYmzYKHqzkRx1qAzL18Sd0iEYEEBECAAYF
+Aj9JMWAACgkQoj2iXPqnmevnOACfRQaageMcESHVE1+RSuP3txPUvoEAoJAtOHon
+g+3SzVNSZLn/g7/Ljfw+uQENBD9JMT8QBACj1QzRptL6hbpWl5DdQ2T+3ekEjJGt
+llCwt4Mwt/yOHDhzLe8SzUNyYxTXUL4TPfFvVW9/j8WOkNGvffbs7g84k7a5h/+l
+IJTTlP9V9NruDt1dlrBe+mWF6eCY55OFHjb6nOIkcJwKxRd3nGlWnLsz0ce9Hjrg
+6lMrn0lPsMV6swADBQP9H42sss6mlqnJEFA97Fl3V9s+7UVJoAIA5uSVXxEOwVoh
+Vq7uECQRvWzif6tzOY+vHkUxOBRvD6oIU6tlmuG3WByKyA1d0MTqMr3eWieSYf/L
+n5VA9NuD7NwjFA1kLkoDwfSbsF51LppTMkUggzwgvwE46MB6yyuqAVI1kReAWw+I
+RgQYEQIABgUCP0kxPwAKCRCiDlIUa4155oktAKDAzm9QYbDpk6SrQhkSFy016BjE
+BACeJU1hpElFnUZCL4yKj4EuLnlo8kc=
+=mqUt
+-----END PGP PUBLIC KEY BLOCK-----
diff --git a/root/var/log/yum/.gitignore b/root/var/log/yum/.gitignore
new file mode 100644
index 0000000..e69de29
diff --git a/smeserver-yum.spec b/smeserver-yum.spec
new file mode 100644
index 0000000..1ec92a7
--- /dev/null
+++ b/smeserver-yum.spec
@@ -0,0 +1,1182 @@
+# $Id: smeserver-yum.spec,v 1.88 2023/08/16 21:33:43 jpp Exp $
+
+%define name smeserver-yum
+Summary: YUM, an rpm updater
+Name: %{name}
+%define version 2.6.2
+%define release 5
+Version: %{version}
+Release: %{release}%{?dist}
+License: GPL
+Group: SMEServer/addon
+Source: %{name}-%{version}.tar.xz
+
+BuildRoot: /var/tmp/%{name}-%{version}-%{release}-buildroot
+BuildArchitectures: noarch
+Requires: e-smith-formmagick >= 1.4.0-12
+Requires: e-smith-base
+Requires: perl(CGI::FormMagick) >= 0.91-26
+Requires: rpm-python >= 4.0.4-7x.18
+Requires: yum >= 1.0.3-1_73
+Provides: yumconf
+Obsoletes: check4updates
+Provides: check4updates
+Obsoletes: rpmdb-CentOS
+Requires: yum-plugin-fastestmirror
+Requires: yum-plugin-priorities
+Obsoletes: yum-plugin-installonlyn
+Obsoletes: yum-protect-packages <= 1.1.16
+Requires: yum-plugin-post-transaction-actions
+Requires: mailx
+Requires: deltarpm
+Requires: yum-cron
+BuildRequires: e-smith-devtools >= 1.13.1-03
+BuildRequires: python
+Conflicts: centos-yumconf
+AutoReqProv: no
+%description
+%name is an implementation of http://linux.duke.edu/projects/yum on SME Server
+
+%prep
+%setup
+rm -rf root/var/service/ root/service/
+rm -rf root/etc/e-smith/db/configuration/force
+
+%build
+perl createlinks
+mkdir -p root/etc/yum.smerepos.d
+
+%install
+/bin/rm -rf $RPM_BUILD_ROOT
+(cd root ; /usr/bin/find . -depth -print | /bin/cpio -dump $RPM_BUILD_ROOT)
+/bin/rm -f %{name}-%{version}-filelist
+/sbin/e-smith/genfilelist \
+ --file '/sbin/e-smith/yum_update_dbs' 'attr(0700,root,root)' \
+ --file '/sbin/e-smith/yum' 'attr(0755,root,root)' \
+ --file '/sbin/e-smith/check4updates' 'attr(0755,root,root)' \
+ --file '/sbin/e-smith/check4contribsupdates' 'attr(0755,root,root)' \
+ --file '/sbin/e-smith/yumdownloadonly' 'attr(0755,root,root)' \
+ --file '/etc/cron.daily/smeserver-yum' 'attr(0700,root,root)' \
+ --dir /var/log/yum 'attr(2750,root,root)' \
+ $RPM_BUILD_ROOT > %{name}-%{version}-%{release}-filelist
+
+%clean
+/bin/rm -rf $RPM_BUILD_ROOT
+
+%files -f %{name}-%{version}-%{release}-filelist
+
+%defattr(-,root,root)
+
+%pre
+if [ $1 -gt 1 ] ; then
+ if [ -e /var/service/yum/run ] ; then
+ /usr/bin/sv d yum
+ /usr/bin/sv d yum/log
+ fi
+fi
+
+
+%changelog
+* Thu Oct 26 2023 cvs2git.sh aka Brian Read 2.6.2-5.sme
+- Roll up patches and move to git repo [SME: 12338]
+
+* Thu Oct 26 2023 BogusDateBot
+- Eliminated rpmbuild "bogus date" warnings due to inconsistent weekday,
+ by assuming the date is correct and changing the weekday.
+
+* Wed Aug 16 2023 Jean-Philippe Pialasse 2.6.2-4.sme
+- remove initialize-default-databases and navigation-conf from yum-* events [SME: 12172]
+- fix warning readline() on closed filehandle YUM_STATUS [SME: 12170]
+- fix warning on uninitialized value in concatenation [SME: 12173]
+- fix CSRF time-out during yum update [SME: 10926]
+ now 10 minutes for this panel updated on last generation of a page
+
+* Mon Feb 27 2023 Michel Begue 2.6.2-3.sme
+- fix reconfigure asked when not needed [SME: 12171]
+- do not show reconfigure button and message if not needed [SME: 12209]
+
+* Tue Nov 22 2022 Jean-Philippe Pialasse 2.6.2-2.sme
+- set smecontribs enabled on new install [SME: 12179]
+
+* Mon Jul 11 2022 Jean-Philippe Pialasse 2.6.2-1.sme
+- bump version number
+- no reboot for dbus-glib [SME: 12091]
+
+* Tue Jun 14 2022 Jean-Philippe Pialasse 2.6.0-64.sme
+- rephrase contrib update message [SME: 11543]
+- move mysqld to mariadb in smeserver plugin [SME: 11921]
+
+* Sun Apr 24 2022 Jean-Philippe Pialasse 2.6.0-63.sme
+- remove force AutoInstallUpdates to disabled [SME: 11961]
+
+* Sun Apr 17 2022 Jean-Philippe Pialasse 2.6.0-61.sme
+- fix rotate yum.log as not standard location [SME: 11951]
+- remove yum_update_dbs from messages log [SME: 11952]
+
+* Tue Mar 08 2022 Jean-Philippe Pialasse 2.6.0-60.sme
+- restart cvm-unix on cvm or bglibs update [SME: 11886]
+
+* Mon Dec 20 2021 Jean-Philippe Pialasse 2.6.0-59.sme
+- remove pop3 and pop3s services from plugin [SME: 11808]
+
+* Thu Dec 09 2021 Jean-Philippe Pialasse 2.6.0-58.sme
+- fix restarting spamd instead of spamassassin [SME: 11803]
+
+* Fri Dec 03 2021 Brian Read 2.6.0-57.sme
+- Re-word-reboot-required-message.patch [SME: 11790]
+
+* Sun Nov 21 2021 Jean-Philippe Pialasse 2.6.0-56.sme
+- fix wrong qpsmtpd handling [SME: 11768]
+
+* Mon Jun 07 2021 Jean-Philippe Pialasse 2.6.0-55.sme
+- add elrepo GPG key [SME: 11625]
+
+* Mon May 31 2021 Jean-Philippe Pialasse 2.6.0-54.sme
+- no reboot needed for systemd-python [SME: 11609]
+
+* Tue Mar 30 2021 Jean-Philippe Pialasse 2.6.0-53.sme
+- fix services stop on removal [SME: 11510]
+
+* Tue Mar 30 2021 Jean-Philippe Pialasse 2.6.0-52.sme
+- run navigation-conf when a panel is installed [SME: 11507]
+
+* Sun Mar 21 2021 Jean-Philippe Pialasse 2.6.0-51.sme
+- migrate back to normal CentOS mirrors after el6 EOL [SME: 11477]
+- version 2 with
+ deleting yum{eolversion} if for previous release or not yet eol
+ better handling of conditions
+
+* Wed Mar 17 2021 Jean-Philippe Pialasse 2.6.0-49.sme
+- avoid reboot on removal of smeserver-* rpms [SME: 11458]
+- navigation-conf when a panel is installed
+
+* Wed Feb 24 2021 Jean-Philipe Pialasse 2.6.0-47.sme
+- fix wrong path for rsyslog.conf [SME: 11364]
+
+* Sun Feb 21 2021 Jean-Philipe Pialasse 2.6.0-46.sme
+- remove noise in yum process "overriding all signals, forcing restart" [SME: 11372]
+
+* Fri Feb 19 2021 Jean-Philipe Pialasse 2.6.0-45.sme
+- packages installed logged both in yum.log and message [SME: 11364]
+- set priority to 10 for remi-safe [SME: 11360]
+
+* Mon Feb 15 2021 Jean-Philipe Pialasse 2.6.0-44.sme
+- fix poor handling of service adjusting and action order [SME: 11300]
+ now a temp event is created
+ also better logging, better handling of update vs removal
+
+* Wed Dec 09 2020 Jean-Philipe Pialasse 2.6.0-43.sme
+- make yum dbs service fork [SME: 11243]
+ now smeserver.py plugin call the service
+ yum-modify can use the service restart
+ yum.service is its own service, not called by local.service
+
+* Tue Dec 08 2020 Jean-Philipe Pialasse 2.6.0-42.sme
+- move yum upate db service to systemd [SME: 11180]
+
+* Sun Dec 06 2020 Jean-Philipe Pialasse 2.6.0-41.sme
+- fix -update events not runt on package upgrade [SME: 11184]
+ lower noise on forced restart
+
+* Thu Dec 03 2020 Jean-Philipe Pialasse 2.6.0-39.sme
+- fix switch to vault BaseURL for CentOS [SME: 11227]
+
+* Mon Nov 16 2020 Jean-Philipe Pialasse 2.6.0-38.sme
+- add remi-safe as base repo [SME: 11179]
+- smeserver-yum-update event created [SME: 11168]
+
+* Sun Nov 15 2020 Jean-Philipe Pialasse 2.6.0-37.sme
+- fix separate action before template, and after service [SME: 11175]
+ run all actions with post-upgrade as default event
+
+* Tue Nov 10 2020 Jean-Philipe Pialasse 2.6.0-36.sme
+- fix some templates not expanded [SME: 11121]
+
+* Tue Oct 20 2020 Jean-Philipe Pialasse 2.6.0-35.sme
+- fix smeserver.py not executing action because of wrong path [SME: 11047]
+
+* Mon Jun 22 2020 Jean-Philipe Pialasse 2.6.0-33.sme
+- fix error when key absent of a dict of smeserver plugin at clean stage [SME: 10931]
+
+* Thu Jan 30 2020 Jean-Philipe Pialasse 2.6.0-32.sme
+- avoid missing template error after removal of a rpm [SME: 10846]
+
+* Thu Jan 30 2020 Jean-Philipe Pialasse 2.6.0-30.sme
+- restart php-fpm services when needed [SME: 10873]
+
+* Mon Dec 09 2019 Jean-Philipe Pialasse 2.6.0-29.sme
+- applying patch [SME: 10690]
+
+* Sun Dec 08 2019 Jean-Philipe Pialasse 2.6.0-27.sme
+- fix NameError: global name 'yum_update_dbs' is not defined [SME: 6940]
+
+* Fri Dec 06 2019 Jean-Philipe Pialasse 2.6.0-26.sme
+- use yum-cron with autoupdate feature [SME: 10690]
+ * use yum-cron for download only or auto update
+ * yum-cron.conf templates
+ * update lock path
+ * settings in server-manager
+ * remove yumdownloadonly script and crontab template
+
+* Fri Dec 06 2019 Jean-Philipe Pialasse 2.6.0-25.sme
+- fix typo on patch [SME: 10249]
+
+* Wed Dec 04 2019 Jean-Philipe Pialasse 2.6.0-24.sme
+- fix header detected as package [SME: 10843]
+- avoid discrepancy between manager, cli and email [SME: 6940]
+ * force refresh of metadata before db generation
+ * add regeneration of db during check4updates, after yum update/install/remove
+- fix no installed groups file [SME: 118]
+- switch to centos vault after EOL [SME: 10249]
+- update http://mirrorlist.contribs.org/mirrorlist to https://mirrorlist.koozali.org/mirrorlist [SME: 9697]
+- make smecontribs visible [SME: 10716]
+
+* Mon Feb 18 2019 Jean-Philipe Pialasse 2.6.0-22.sme
+- add openfusion gpg key [SME: 10742]
+
+* Sat Jan 26 2019 Jean-Philipe Pialasse 2.6.0-21.sme
+- updated EOL patch [SME: 10170]
+
+* Wed Jan 23 2019 Jean-Philipe Pialasse 2.6.0-19.sme
+- add yum-priority as requirement [SME: 6499]
+ add support for plugin priority using property priority im yum_repositories db
+ initial priority to 10 for sme*, base and updates repos.
+ property yum priority set as enabled as default
+- avoid double check updates for contribs if smecontribs is set to enabled [SME: 9388]
+- update check4contribs email format to match check4updates [SME: 8782]
+- improve yum plugin to avoid reboot [SME: 8705]
+ add nut support, add exclusions for -doc, -devel... subpackages
+
+* Tue Jan 22 2019 Jean-Philipe Pialasse 2.6.0-18.sme
+- add message to indicate EOL after Jun 30 2024 fix [SME: 10170]
+
+* Mon Nov 06 2017 Jean-Philipe Pialasse 2.6.0-17.sme
+- add yum-plugin-post-transaction-actions as requirement [SME: 1100]
+
+* Tue May 02 2017 Jean-Philipe Pialasse 2.6.0-16.sme
+- add rpmfusion free el7 RPM GPG KEY [SME: 10263]
+
+* Mon Apr 10 2017 Jean-Philipe Pialasse 2.6.0-15.sme
+- avoid reboot for smeserver-locale upgrade [SME: 8705]
+- code by stefano zamboni
+
+* Wed Mar 29 2017 Jean-Philipe Pialasse 2.6.0-14.sme
+- correct service names with plugin to avoid reboot [SME: 8705]
+- code by stefano zamboni
+
+* Mon Mar 27 2017 Jean-Philipe Pialasse 2.6.0-13.sme
+- fix KeyError with plugin to avoid reboot [SME: 8705]
+- code by stefano zamboni
+
+* Mon Mar 20 2017 Jean-Philipe Pialasse 2.6.0-12.sme
+- remove centos contrib repo [SME: 10156]
+
+* Sat Feb 25 2017 Jean-Philipe Pialasse 2.6.0-11.sme
+- added centos SCLo SIG gpg rpm signing key [SME: 10119]
+- will allow to install SCL packages directly from smecontribs
+
+* Sat Feb 18 2017 stephane de Labrusse 2.6.0-10.sme
+- Added smeserver-yum-2.6.0.bz8705.avoidReboot.patch [SME: 8705]
+- code by stefano zamboni
+- Avoid to reboot after the installation of a smeserver-* package
+
+* Fri Jan 06 2017 Jean-Philipe Pialasse 2.6.0-8.sme
+- add Remi Collet RPM GPG KEY [SME: 9903]
+
+* Thu Aug 04 2016 stephane de Labrusse 2.6.0-7.sme
+- Rpm updates can be downloaded during the night [SME: 1502]
+- Added smeserver-yum-2.6.0.bz1502.DownloadOnly.patch
+
+* Mon Aug 1 2016 stephane de Labrusse 2.6.0-6.sme
+- Deltarpm is now a setting in the yum panel (disabled by default)
+- Added smeserver-yum-2.6.0.bz8834.DeltaRpm.patch [SME: 8834]
+
+* Fri May 27 2016 Jean-Philipe Pialasse 2.6.0-5.sme
+- adding Koozali SME10, EPEL7 and Centos7 gpg keys [SME: 9533]
+
+* Thu May 12 2016 Daniel Berteaud 2.6.0-4.sme
+- Rebuild [SME: 9393]
+
+* Wed Mar 23 2016 Jean-Philipe Pialasse 2.6.0-3.sme
+- yum points now to SME10 mirrors [SME: 9377]
+- moved changelog at the end of file
+- Eliminated rpmbuild "bogus date" warnings due to inconsistent weekday,
+ by assuming the date is correct and changing the weekday.
+ Fri May 31 2005 --> Fri May 27 2005 or Tue May 31 2005 or Fri Jun 03 2005 or ....
+ Fri Nov 16 2006 --> Fri Nov 10 2006 or Thu Nov 16 2006 or Fri Nov 17 2006 or ....
+ Fri Nov 23 2006 --> Fri Nov 17 2006 or Thu Nov 23 2006 or Fri Nov 24 2006 or ....
+
+
+* Sun Feb 7 2016 Daniel Berteaud 2.6.0-2.sme
+- Add python to BuildReq so brp-python-bytecode compiles sme yum plugin
+ [SME: 9229]
+
+* Sat Feb 06 2016 stephane de Labrusse 2.6.0-1.sme
+- Initial release to sme10
+
+* Wed Jan 13 2016 Daniel Berteaud 2.4.0-12.sme
+- Example to update contribs 1 by 1 [SME: 8850]
+
+* Sat Feb 21 2015 Stephane de Labrusse 2.4.0-11.sme
+- Set the check update frequency of smecontribs through the server-manager
+- [SME: 8855]
+
+* Sat Jan 10 2015 Stephane de Labrusse 2.4.0-10.sme
+- Add a default Yum db property for check4contribsupdates [SME: 8790]
+
+* Wed Nov 19 2014 Stephane de Labrusse 2.4.0-9.sme
+- Added a check-update for the smecontribs repository [SME: 8672]
+
+* Mon Jun 30 2014 Daniel Berteaud 2.4.0-8.sme
+- Move protected package list to the correct location [SME: 8476]
+
+* Fri Mar 22 2013 Ian Wells 2.4.0-7.sme
+- Change order of mail options in check4updates [SME: 7504]
+
+* Sun Mar 17 2013 Ian Wells 2.4.0-6.sme
+- Change wording of Software Update button [SME: 7499]
+
+* Wed Mar 6 2013 Shad L. Lords 2.4.0-5.sme
+- Obsolete el5 yum-protect-packages, provided by yum [SME: 7273]
+
+* Wed Mar 6 2013 Shad L. Lords 2.4.0-4.sme
+- Update GPG keys for sme9 [SME: 7465]
+
+* Wed Feb 27 2013 Daniel Berteaud 2.4.0-3.sme
+- Add fasttrack and remove addons repo [SME: 7385]
+
+* Tue Feb 5 2013 Shad L. Lords 2.4.0-2.sme
+- Add back in missing parts from new stream [SME: 7305]
+
+* Thu Jan 31 2013 Shad L. Lords 2.4.0-1.sme
+- Roll new stream for sme9
+
+* Fri Aug 31 2012 Shad L. Lords 2.2.0-20.sme
+- Point mirrorlist to mirrorlist.contribs.org [SME: 7087]
+
+* Tue Mar 1 2011 Jonathan Martens 2.2.0-19.sme
+- Add random wait timer for check4updates script to distribute load on ibiblio [SME: 6534]
+
+* Fri Oct 1 2010 Jonathan Martens 2.2.0-18.sme
+- Trigger post-upgrade and reboot on kernel updates [SME: 6166]
+
+* Sat Jun 12 2010 Shad L. Lords 2.2.0-17.sme
+- Fix migrate fragment to not throw warnings [SME: 5705]
+
+* Wed Jun 02 2010 Shad L. Lords 2.2.0-16.sme
+- Fix yum database removal (missing one) [SME: 5705]
+
+* Wed Jun 02 2010 Shad L. Lords 2.2.0-15.sme
+- Migrate MirrorList properties to sme8 repos [SME: 5705]
+- Remove BaseURL properties if migrating to sme8 repos [SME: 5949]
+- Remove yum databases and repodata if migrating to sme8 repos [SME: 5998]
+
+* Mon May 17 2010 Jonathan Martens 2.2.0-14.sme
+- Revert previous change [SME: 5962]
+
+* Mon May 17 2010 Jonathan Martens 2.2.0-13.sme
+- Migrate CentOS Exclude property default values to smeserver-yum [SME: 5962]
+
+* Thu Nov 5 2009 Shad L. Lords 2.2.0-12.sme
+- only unlink file if we created it [SME: 5476]
+
+* Wed Oct 14 2009 Filipo Carletti 2.2.0-11.sme
+- Import only keys not already imported [SME: 5507]
+
+* Tue Sep 15 2009 Shad L. Lords 2.2.0-10.sme
+- set unsaved changes in yum event [SME: 5475]
+- move yum warming to sme yum plugin [SME: 5474]
+- ensure file exists before unlinking [SME: 5476]
+- remove semicolons from yum plugin
+
+* Tue Sep 15 2009 Shad L. Lords 2.2.0-9.sme
+- Add frequency of updates toggle [SME: 3764]
+- remove stray file
+
+* Sat May 30 2009 Shad L. Lords 2.2.0-8.sme
+- Add /etc/yum.smerepos.d to package [SME: 5305]
+
+* Mon May 18 2009 Shad L. Lords 2.2.0-7.sme
+- Change SME mirrorlists to point to ibiblio [SME: 5242]
+
+* Fri Apr 10 2009 Jonathan Martens 2.2.0-6.sme
+- Require mailx [SME: 5131]
+
+* Mon Nov 24 2008 Shad L. Lords 2.2.0-5.sme
+- Add yum-protect-packages support to prevent removal of
+ needed pacakges [SME: 3133]
+
+* Tue Oct 28 2008 Shad L. Lords 2.2.0-4.sme
+- Make yum update unbuffered for web interface [SME: 4726]
+
+* Mon Oct 13 2008 Shad L. Lords 2.2.0-3.sme
+- Move repos to repodir to fix yum bug [SME: 3676]
+
+* Sun Oct 12 2008 Shad L. Lords 2.2.0-2.sme
+- Fix name for smeextras [SME: 4585]
+
+* Tue Oct 7 2008 Shad L. Lords 2.2.0-1.sme
+- Roll new stream to separate sme7/sme8 trees [SME: 4633]
+
+* Tue Oct 7 2008 Shad L. Lords 1.2.0-58
+- Fix mirrorlist for sme8 [SME: 4508]
+
+* Fri Sep 19 2008 Shad L. Lords 1.2.0-57
+- Add smeextras repo database and information [SME: 4585]
+
+* Sun Aug 10 2008 Shad L. Lords 1.2.0-56
+- Remove links to crontab in bootstrap-console-save [SME: 4494]
+
+* Sat Jul 5 2008 Jonathan Martens 1.2.0-55
+- Add common tags to e-smith-formmagick's general [SME: 4279]
+
+* Sun Apr 27 2008 Jonathan Martens 1.2.0-54
+- Add common tags to e-smith-formmagick's general [SME: 4290]
+
+* Mon Mar 31 2008 Shad L. Lords 1.2.0-53
+- Include installonlyn plugin to manage kernels [SME: 2101]
+
+* Mon Mar 31 2008 Stephen Noble 1.2.0-52
+- Delete dungog repository, reworked [SME: 4097]
+
+* Fri Mar 14 2008 Shad L. Lords 1.2.0-51
+- Clean up "rpm -qa" warnings in yum wrapper [SME: 4052]
+
+* Wed Feb 13 2008 Stephen Noble 1.2.0-50
+- Remove tags now in general [SME: 3914]
+
+* Sun Feb 10 2008 Stephen Noble 1.2.0-49
+- Remove duplicate entries [SME: 3889]
+
+* Fri Jan 11 2008 Shad L. Lords 1.2.0-48
+- Put check4updates obsoletes & provides in the right place [SME: 3250]
+
+* Fri Jan 11 2008 Shad L. Lords 1.2.0-47
+- Add check4update script, make cronjob run same as scheduled dirs [SME: 3250]
+
+* Wed Jan 09 2008 Stephen Noble 1.2.0-46
+- Add server is up to date message on panel [SME: 2512]
+
+* Mon Jan 7 2008 Stephen Noble 1.2.0-45
+- remove BaseURL property for repos with mirrorlists [SME: 3275]
+
+* Mon Jan 7 2008 Stephen Noble 1.2.0-44
+- safesymlink yum into local [SME: 3238]
+
+* Mon Jan 7 2008 Stephen Noble 1.2.0-43
+- add check4updates cronjob, obsolete check4updates rpm [SME: 3250]
+
+* Mon Jan 7 2008 Stephen Noble 1.2.0-42
+- yum-import-keys action to yum-update event [SME: 3196]
+
+* Mon Dec 24 2007 Stephen Noble 1.2.0-41
+- add smecontribs repo [SME: 3551]
+
+* Tue Dec 11 2007 Gavin Weight 1.2.0-40
+- Remove bad mirror and add two new mirrors. [SME: 3636]
+
+* Fri Nov 30 2007 Gavin Weight 1.2.0-39
+- Change EnableGroups value to no/yes instead of 0/1. [SME: 3607]
+
+* Fri Nov 30 2007 Gavin Weight 1.2.0-38
+- Fix use of uninitialized value in migrate 10GPG_and_Groups. [SME: 2491]
+
+* Sat Jul 14 2007 Shad L. Lords 1.2.0-37
+- Add GPG keys for CentOS 5 [SME: 3160]
+
+* Sun Jun 10 2007 Stephen Noble 1.2.0-36
+- Refine matching of rpms or repos [SME: 2416]
+
+* Sun Jun 10 2007 Stephen Noble 1.2.0-35
+- Add db values to restrict available rpms or repos [SME: 2416]
+
+* Sun Jun 10 2007 Stephen Noble 1.2.0-34
+- remove restrictAvailable patch [SME: 2416]
+
+* Fri Jun 08 2007 Stephen Noble 1.2.0-33
+- Add db value to restrict available rpms [SME: 2416]
+
+* Fri May 25 2007 Shad L. Lords 1.2.0-32
+- Add rpm key for epel packages
+
+* Wed May 9 2007 Shad L. Lords 1.2.0-31
+- Updates to support SME Server 8
+
+* Sun Apr 29 2007 Shad L. Lords
+- Clean up spec so package can be built by koji/plague
+
+* Mon Apr 09 2007 Stephen Noble 1.2.0-30
+- remove two of them, leaving pacific.net.au [SME: 2763]
+
+* Mon Apr 09 2007 Stephen Noble 1.2.0-29
+- add three more repositories to yum.repos.d/mirrors-sme* files [SME: 2763]
+
+* Fri Feb 16 2007 Shad L. Lords 1.2.0-28
+- Change runsvctrl to sv to support runit v1.7.x [SME: 2486]
+
+* Wed Jan 17 2007 Shad L. Lords 1.2.0-27
+- Only import keys we don't already have [SME: 1174]
+
+* Wed Jan 03 2007 Shad L. Lords 1.2.0-26
+- Only allow upstream proxies to cache packages not metadata.
+
+* Thu Dec 07 2006 Shad L. Lords
+- Update to new release naming. No functional changes.
+- Make Packager generic
+
+* Fri Dec 1 2006 Gordon Rowell 1.2.0-25
+- Remove defaults for CentOS testing repository [SME: 2119]
+
+* Thu Nov 30 2006 Greg Swallow 1.2.0-24
+- Change Includepkgs to IncludePkgs [SME: 2049]
+
+* Thu Nov 30 2006 Greg Swallow 1.2.0-23
+- Add includepkgs option to repository configuration [SME: 2049]
+
+* Thu Nov 30 2006 Gordon Rowell 1.2.0-22
+- Correct typos in last patch [SME: 2050]
+
+* Thu Nov 30 2006 Gordon Rowell 1.2.0-21
+- Create local SME Server mirrorlists during build of package
+- Refer to these mirrorlists from yum.conf
+- Comment out baseurl if a MirrorList is defined [SME: 2050]
+
+* Wed Nov 29 2006 Gordon Rowell 1.2.0-20
+- Revert to 10s panel refresh [SME: 2097]
+
+* Thu Nov 23 2006 Gordon Rowell 1.2.0-19
+ Fri Nov 23 2006 --> Fri Nov 17 2006 or Thu Nov 23 2006 or Fri Nov 24 2006 or ....
+- Make CentOS base and updates enabled/Visible by default [SME: 1849]
+- Migrate CentOS base and updates to Visible, but leave status [SME: 1849]
+
+* Thu Nov 23 2006 Gordon Rowell 1.2.0-18
+ Fri Nov 23 2006 --> Fri Nov 17 2006 or Thu Nov 23 2006 or Fri Nov 24 2006 or ....
+- Adjust wording on post-upgrade page [SME: 2076]
+
+* Tue Nov 21 2006 Gordon Rowell 1.2.0-17
+- Clean up post-upgrade page LogFile display [SME: 2077]
+
+* Tue Nov 21 2006 Gordon Rowell 1.2.0-16
+- Fix post-upgrade page handling [SME: 2077]
+- TODO: Add persistent RebootRequired handling so that the reconfigure
+ page is displayed from other sessions
+- TODO: Re-add display of LogFile prior to reconfigure
+
+* Thu Nov 16 2006 Gordon Rowell 1.2.0-15
+ Fri Nov 16 2006 --> Fri Nov 10 2006 or Thu Nov 16 2006 or Fri Nov 17 2006 or ....
+- Add dependency on yum-plugin-fastestmirror [SME: 1163]
+- Alpha sort dependencies
+
+* Thu Nov 16 2006 Gordon Rowell 1.2.0-14
+ Fri Nov 16 2006 --> Fri Nov 10 2006 or Thu Nov 16 2006 or Fri Nov 17 2006 or ....
+- Add MirrorList options to each of the SME repos [SME: 1163]
+
+* Thu Nov 16 2006 Gordon Rowell 1.2.0-13
+ Fri Nov 16 2006 --> Fri Nov 10 2006 or Thu Nov 16 2006 or Fri Nov 17 2006 or ....
+- Put back missed patch for post-upgrade [SME: 2071]
+
+* Thu Nov 16 2006 Gordon Rowell 1.2.0-12
+ Fri Nov 16 2006 --> Fri Nov 10 2006 or Thu Nov 16 2006 or Fri Nov 17 2006 or ....
+- Re-add post-upgrade handling [SME: 2071]
+- Display yum output
+- Lower refresh to 3 seconds from 10
+
+* Thu Nov 16 2006 Gordon Rowell 1.2.0-11
+- Add Federico Simoncelli's smeserver plugin for yum [SME: 59]
+- TODO: Add post-upgrade page handling
+
+* Tue Nov 14 2006 Gordon Rowell 1.2.0-10
+- Add distroverpkg to set release version for CentOS packages [SME: 1163]
+
+* Thu Nov 9 2006 Gordon Rowell 1.2.0-09
+- Allow MirrorList property to be optional [SME: 1163]
+
+* Thu Nov 9 2006 Gordon Rowell 1.2.0-08
+- Add mirrorlist option to CentOS repos via MirrorList db property [SME: 1163]
+- TODO: Create mirrorlist for SME repos.
+
+* Thu Nov 9 2006 Gordon Rowell 1.2.0-07
+- Explicitly unset reposdir so we ignore the CentOS repo files [SME: 1905]
+
+* Fri Sep 1 2006 Charlie Brady 1.2.0-06
+- Fix quoting in yum wrapper script. [SME: 1894]
+
+* Mon May 1 2006 Charlie Brady 1.2.0-05
+- Remove stray yum.pm.orig file. [SME: 1350]
+
+* Tue Apr 18 2006 Gordon Rowell 1.2.0-04
+- Also display yum output if the yum command fails, e.g. due to an
+ existing yum lock. [SME: 1110]
+
+* Tue Apr 18 2006 Gordon Rowell 1.2.0-03
+- Update the yum dbs in yum-modify in case the repos have changed [SME: 1261]
+
+* Tue Apr 18 2006 Gordon Rowell 1.2.0-02
+- Capture and display yum output [SME: 1269]
+
+* Wed Mar 15 2006 Charlie Brady 1.2.0-01
+- Roll stable stream version. [SME: 1016]
+
+* Mon Mar 6 2006 Gordon Rowell 1.1.2-26
+- And migrate old SME repo URLs to new paths [SME: 951]
+
+* Mon Mar 6 2006 Gordon Rowell 1.1.2-25
+- Change SME Server repo URLs to match repo names so we avoid confusion
+ with CentOS repos and can remove the symlinks [SME: 951]
+
+* Mon Mar 6 2006 Gordon Rowell 1.1.2-24
+- Don't force the BaseURL properties - just set defaults [SME: 951]
+
+* Wed Feb 22 2006 Gordon Rowell 1.1.2-23
+- Default smeupdates-testing repository to Visible, disabled [SME: 846]
+
+* Thu Feb 16 2006 Charlie Brady 1.1.2-22
+- Do not suggest post-upgrade/reboot if no rpms were installed or
+ removed. [SME: 676]
+
+* Thu Feb 16 2006 Gordon Rowell 1.1.2-21
+- Run post-upgrade and reboot in the background so that the front page
+ can be displayed without the "Your system needs to be rebooted"
+ warning - it's already getting one by then. [SME: 611]
+- Adjust reconfiguration wording [SME: 611]
+
+* Thu Feb 16 2006 Gordon Rowell 1.1.2-20
+- And add L10N for newly exposed unlocalised message [SME: 611]
+
+* Thu Feb 16 2006 Gordon Rowell 1.1.2-19
+- Catch error return status from yum commands [SME: 611]
+
+* Tue Feb 7 2006 Gordon Rowell 1.1.2-18
+- Adjust wording in yum wrapper [SME: 676]
+
+* Tue Jan 24 2006 Gordon Rowell 1.1.2-17
+- And change "A reboot will be required" to
+ "A reboot will be initiated" in the post-upgrade panel [SME: 199]
+
+* Tue Jan 24 2006 Gordon Rowell 1.1.2-16
+- Bring back post-upgrade page after performing updates [SME: 199]
+- Force a reboot after the post-upgrade command [SME: 199]
+
+* Tue Jan 24 2006 Gordon Rowell 1.1.2-15
+- Add wrapper /sbin/e-smith/yum to remind people to
+ post-upgrade/reboot [SME: 199]
+
+* Tue Jan 24 2006 Gordon Rowell 1.1.2-14
+- Force yum{AutoInstallUpdates} to disabled and remove toggle from
+ panel for now [SME: 525]
+
+* Mon Nov 21 2005 Gordon Rowell 1.1.2-13
+- And make them Visible=no by default [SF: 1362528]
+
+* Mon Nov 21 2005 Gordon Rowell 1.1.2-12
+- Disable centos base/updates/contrib repos by default [SF: 1362528]
+
+* Mon Nov 21 2005 Gordon Rowell 1.1.2-11
+- Show repositories which are either Visible or enabled [SF: 1362529]
+
+* Mon Nov 21 2005 Gordon Rowell 1.1.2-10
+- Disable automatic updates by default [SF: 1362526]
+
+* Mon Nov 14 2005 Gordon Rowell 1.1.2-09
+- Add Conflicts: centos-yumconf [SF: 1356006]
+
+* Tue Nov 8 2005 Gordon Rowell 1.1.2-08
+- Don't force a post-upgrade/reboot after changes. We don't need to
+ do it in most cases [SF: 1304387, 1349946]
+
+* Fri Oct 28 2005 Gordon Rowell 1.1.2-07
+- Allow optional GPGKey property [SF: 1332624]
+
+* Fri Oct 28 2005 Gordon Rowell 1.1.2-06
+- Change CentOS BaseURL values back to /centos/4 [SF: 1334861]
+- Generate all repositories in /etc/yum.conf with enabled=0/1 [SF: 1332624]
+- Only display "Visible" repositories in the server-manager panel [SF: 1332624]
+
+* Fri Oct 14 2005 Gordon Rowell 1.1.2-05
+- Move all L10Ns to smeserver-locale [SF: 1309520]
+
+* Mon Oct 10 2005 Gordon Rowell 1.1.2-04
+- Fix up auto-selection of all updates [SF: 1321887]
+
+* Mon Oct 10 2005 Gordon Rowell 1.1.2-03
+- Remove navigation-conf-hidden [SF: 1315730]
+
+* Fri Oct 7 2005 Gordon Rowell 1.1.2-02
+- Require GPG signatures on all yum packages
+
+* Fri Oct 7 2005 Gordon Rowell 1.1.2-01
+- Roll new tarball, patches to 1.1.1-07
+
+* Fri Sep 30 2005 Gordon Rowell 1.1.1-07
+- And another [SF: 1301044]
+
+* Fri Sep 30 2005 Gordon Rowell 1.1.1-06
+- Correction to French L10N - Thanks Didier Rambeau [SF: 1301044]
+
+* Fri Sep 30 2005 Gordon Rowell 1.1.1-05
+- Added Italian L10N - Thanks Filippo Carletti [SF: 1309266]
+
+* Fri Sep 30 2005 Gordon Rowell 1.1.1-04
+- Added lots of RPM GPG keys [SF: 1309195]
+
+* Thu Sep 29 2005 Gordon Rowell 1.1.1-03
+- It's obsoletes=1 [SF: 1306265]
+
+* Thu Sep 29 2005 Gordon Rowell 1.1.1-02
+- Added obsoletes option to yum.conf [SF: 1306265]
+
+* Mon Sep 26 2005 Gordon Rowell 1.1.1-01
+- Rolled patches up to 1.1.0-26
+- Added German L10N
+
+* Sun Sep 25 2005 Gordon Rowell 1.1.0-26
+- Typo fix - add space between 'yum' and options
+
+* Sun Sep 25 2005 Gordon Rowell 1.1.0-25
+- Increase debug and error level so we at least capture yum output
+ in the messages log [SF: 1218082]
+
+* Sun Sep 25 2005 Gordon Rowell 1.1.0-24
+- Need to return a hash, with key equal to package.arch [SF: 1298468]
+
+* Sun Sep 25 2005 Gordon Rowell 1.1.0-23
+- Display version and repository in picklists [SF: 1298468]
+
+* Sun Sep 25 2005 Gordon Rowell 1.1.0-22
+- Change 1/0 values for GPGCheck and EnableGroups to yes/no
+ It's more readable in the DB and also works around a bug [SF: 1303885]
+
+* Sun Sep 25 2005 Gordon Rowell 1.1.0-21
+- Wrap HTML escapes in Fr lexicon in CDATA blocks [SF: 1302289]
+
+* Fri Sep 23 2005 Gordon Rowell 1.1.0-20
+- Remove XXX - FIXMEs from French lexicon [SF: 1301044]
+
+* Fri Sep 23 2005 Gordon Rowell 1.1.0-19
+- French L10N fix [SF: 1266152]
+
+* Mon Sep 12 2005 chris burnat 1.1.0-18
+- Fix equal greater than (=>) to (>=) in two instances in spec file.
+
+* Mon Sep 5 2005 Gordon Rowell 1.1.0-17
+- Change centos BaseURL entries from /centos/4/ to /centos/4.1/ as
+ it appears that some mirrors aren't following the symlinks correctly
+- Move BaseURL settings into force fragments as they will need to
+ change as we update the base [SF: 1272438]
+
+* Wed Aug 24 2005 Gordon Rowell 1.1.0-16
+- Remove XXX entries from panel text [SF: 1267315]
+
+* Wed Aug 24 2005 Gordon Rowell 1.1.0-15
+- Fix status check in yum cron job - Thanks Filippo Carletti [SF: 1266967]
+
+* Wed Aug 17 2005 Charlie Brady 1.1.0-14
+- Change dependency to rpmdb-CentOS
+
+* Mon Aug 15 2005 Gordon Rowell
+- [1.1.0-13]
+- Add dependency on rpmdb package
+
+* Mon Jul 18 2005 Gordon Rowell
+- [1.1.0-12]
+- And remove now unused action scripts
+
+* Mon Jul 18 2005 Gordon Rowell
+- [1.1.0-11]
+- Removed the old pre-FM panels, which we haven't used or displayed for
+ a while
+
+* Mon Jul 18 2005 Gordon Rowell
+- [1.1.0-10]
+- Relocate dbs to /home/e-smith/db. Note yum_update_dbs avoids the
+ ConfigDB interface for speed and to reduce log noise. Maybe it
+ shouldn't, which would give a record of nightly changes.
+
+* Thu Jul 14 2005 Gordon Rowell
+- [1.1.0-09]
+- French localisation - Merci Didier Rambeau [SF: 1234929]
+
+* Thu Jul 14 2005 Gordon Rowell
+- [1.1.0-08]
+- Fix cron.daily ordering so yum_update_dbs gets a chance to fix
+ the yum flag file before the standard yum cron job runs [SF: 1237639]
+- Clean up various old cron jobs which are no longer used
+- Change cron job template into a shell script
+
+* Thu Jul 14 2005 Gordon Rowell
+- [1.1.0-07]
+- Remove pid file check - yum leaves stale pid files when an action
+ fails, but cleans up next time. Since we're calling yum, it can
+ do the work. Death to pid files.
+
+* Thu Jul 14 2005 Gordon Rowell
+- [1.1.0-06]
+- Adjusted repository names sme{addons,core,dev,test,updates} ->
+ addons,os,dev,test,updates
+- Added updates-testing
+- Changed BaseURL to use mirror.contribs.org/pub/smeserver for consistency
+ across mirrors
+- Drop /7.0alpha/ to /7/
+
+* Sat Jul 2 2005 Gordon Rowell
+- [1.1.0-05]
+- Fix creation of event links
+
+* Sat Jul 2 2005 Gordon Rowell
+- [1.1.0-04]
+- Remove all other instances of services2adjust once for yum, and use
+ the action script instead to avoid an endless run of yum_update_dbs
+
+* Sat Jul 2 2005 Gordon Rowell
+- [1.1.0-03]
+- Add exec to yum service run script
+- Add action script to update DBs as required, including 'local' event
+- TODO: Work out why services2adjust 'once' loops forever on this service
+
+* Sat Jul 2 2005 Gordon Rowell
+- [1.1.0-02]
+- Add Provides: yumconf [SF: 1230970]
+- Cater for new yum output format, and only pick package lines from
+ output [SF: 1230971]
+
+* Thu Jun 30 2005 Gordon Rowell
+- [1.1.0-01gr22]
+- Change from CentOS 3 to CentOS 4
+- Remove force fragment for stunnel since we now ship the CentOS RPM
+
+* Fri Jun 10 2005 Gordon Rowell
+- [1.1.0-01gr21]
+- Import keys in bootstrap-console-save rather than post-{install,upgrade}
+
+* Fri Jun 10 2005 Gordon Rowell
+- [1.1.0-01gr20]
+- Populate /usr/share/rpm-gpg-keys with various RPM-GPG-KEY files
+ we might want to use
+- Add script to import keys
+- TODO: Clean out duplicate key copies
+
+* Thu Jun 9 2005 Gordon Rowell
+- [1.1.0-01gr19]
+- Comment out 'once' invocation in local event - it seems to loop
+- Change cron job to do the 'runsvctrl once' invocation
+
+* Thu Jun 9 2005 Gordon Rowell
+- [1.1.0-01gr18]
+- Fix up exit status warning.
+
+* Thu Jun 9 2005 Gordon Rowell
+- [1.1.0-01gr17]
+- Don't bother checking the exit status of yum, since yum may
+ return non-zero for failure or for "no matching groups/packages".
+ TODO: We should probably work out how to tell between these.
+
+* Thu Jun 9 2005 Gordon Rowell
+- [1.1.0-01gr16]
+- Make it a supervised service, but one which we only run
+ "once" when we need it [SF: 1216096]
+
+* Thu Jun 9 2005 Gordon Rowell
+- [1.1.0-01gr15]
+- Don't try to grab the yum.pid file with Proc::PID_File as then
+ we can't actually run yum commands [SF: 1216097]
+
+* Thu Jun 9 2005 Gordon Rowell
+- [1.1.0-01gr14]
+- Add yum_update_dbs into a supervised service so we don't have
+ to wait for it at boot time [SF: 1216096]
+
+* Thu Jun 9 2005 Gordon Rowell
+- [1.1.0-01gr13]
+- Unlink tmp files if yum command fails and we exit early
+
+* Thu Jun 9 2005 Gordon Rowell
+- [1.1.0-01gr12]
+- Check for another running yum process [SF: 1216097]
+- Don't update the databases if the yum command fails [SF: 1216097]
+
+* Fri Jun 3 2005 Gordon Rowell
+- [1.1.0-01gr11]
+- Use the dump RPM from CentOS [SF: 1214055]
+
+* Fri Jun 3 2005 Gordon Rowell
+- [1.1.0-01gr10]
+- Invert exit status of system()
+
+* Fri Jun 3 2005 Gordon Rowell
+- [1.1.0-01gr09]
+- Move management of /var/lock/subsys/yum into yum_updates_dbs action script
+- Call yum_update_dbs in local event - after the system is up and running
+- Remove commented out panel references
+
+* Fri Jun 3 2005 Gordon Rowell
+- [1.1.0-01gr08]
+- Default gpgcheck off, except for base/updates/smecore/smeupdates
+- Default yum{AutoInstallUpdates} == enabled
+- Add code to manage /var/lock/subsys/yum, which controls daily updates
+ in /etc/cron.daily/yum
+
+* Fri Jun 3 2005 Gordon Rowell
+- [1.1.0-01gr07]
+- Deal with the case when the list of updates is empty
+- Put a header on each of the yum_* dbs
+
+* Fri Jun 3 2005 Gordon Rowell
+- [1.1.0-01gr06]
+- Rename centos repositories to match the centos-yumcache names
+- Remove pkgpolicy=last and repository ordering.
+- Add Exclude= properties to CentOS base and updates for packages which
+ are modified for the SMEServer releases
+- INSTALL: Need to manually remove old version of yum_repositories DB
+
+* Tue May 31 2005 Gordon Rowell
+ Fri May 31 2005 --> Fri May 27 2005 or Tue May 31 2005 or Fri Jun 03 2005 or ....
+- [1.1.0-01gr05]
+- Add enable/disable repository support to configuration page
+
+* Tue May 31 2005 Gordon Rowell
+ Fri May 31 2005 --> Fri May 27 2005 or Tue May 31 2005 or Fri Jun 03 2005 or ....
+- [1.1.0-01gr04]
+- Hide empty group/package select boxes
+
+* Tue May 31 2005 Gordon Rowell
+- [1.1.0-01gr03]
+- Change BaseURLs for smeserver repositories to ..../7.0alpha/ until we
+ add FollowSymlinks to httpd.conf
+
+* Fri May 27 2005 Gordon Rowell
+- [1.1.0-01gr02]
+- Add post-upgrade configuration page
+- Hide Darrell's original panels
+- Remove historical event directories
+- TODO: Page for adding/deleting repositories
+- TODO: yum-arch local repositories
+
+* Fri May 27 2005 Gordon Rowell
+- [1.1.0-01gr01]
+- Roll to 1.1.0
+
+* Fri May 27 2005 Gordon Rowell
+- [1.0.0-04gr30]
+- Call yum_update_dbs during the actions so the db state is correct
+
+* Fri May 27 2005 Gordon Rowell
+- [1.0.0-04gr29]
+- Create empty yum_{available,installed,updates} dbs in SPEC file
+- Display the available repositories, and provide a select box
+ to allow them to be enabled/disabled.
+- Add dependency on recent CGI::FormMagick so that the select options work
+
+* Thu May 26 2005 Gordon Rowell
+- [1.0.0-04gr28]
+- Introduce yum_repositories database and convert yum.conf template
+- Introduce yum_repositories database and convert yum.conf template
+- Set defaults, which can be overridden on a per-repository basis:
+ yum{EnableGroups}==0
+ yum{GPGCheck}==1
+
+* Sat May 21 2005 Gordon Rowell
+- [1.0.0-04gr27]
+- Add contrib group from CentOS and contribs.org repositories
+
+* Fri May 20 2005 Gordon Rowell
+- [1.0.0-04gr26]
+- Change configuration event to yum-modify since we need
+ yum-update for other purposes
+- TODO: Need to update yum_* dbs after we perform an action
+ so the panel status matches reality. For speed, we should
+ probably delete the entries directly.
+- TODO: Some yum comands take a long time, probably too long for
+ the manager.
+- TODO: Capture the yum output
+
+* Fri May 20 2005 Gordon Rowell
+- [1.0.0-04gr25]
+- Fix CGI parameter passing
+
+* Fri May 20 2005 Gordon Rowell
+- [1.0.0-04gr24]
+- Add actions for install/remove/update
+- TODO: groupremove needs to pull apart the group and remove
+ packages individually
+
+* Fri May 20 2005 Gordon Rowell
+- [1.0.0-04gr23]
+- Major cleanup of yum.pm, refactoring lots of code
+- Note: Depends on CGI::FormMagick patch from [SF:1205448]
+
+* Fri May 20 2005 Gordon Rowell
+- [1.0.0-04gr22]
+- Changed yum{ShowPackages} to yum{PackageFunctions}
+- Added enable/disable toggle to panel and fleshed out
+ change_settings() so that the settings are saved
+- TODO: Actually signal-event yum-update
+
+* Fri May 20 2005 Gordon Rowell