From 04c1b5452b3f0e5904a802a32811fe3b72646407 Mon Sep 17 00:00:00 2001 From: Stephen Gallagher Date: Mon, 26 Oct 2009 13:08:58 +0000 Subject: [PATCH] Fix upgrade issues from old (pre-0.5.0) releases of SSSD Configuration files before 0.5.0 did not enforce provider= in local domains it did special-case by domain name (LOCAL). Our script was relying on provider= value, this patch adds the special-casing in case the domain was called LOCAL. --- old_upgrades.patch | 50 ++++++++++++++++++++++++++++++++++++++++++++++ sssd.spec | 9 ++++++++- 2 files changed, 58 insertions(+), 1 deletion(-) create mode 100644 old_upgrades.patch diff --git a/old_upgrades.patch b/old_upgrades.patch new file mode 100644 index 0000000..3ed44b4 --- /dev/null +++ b/old_upgrades.patch @@ -0,0 +1,50 @@ +>From ff5fd17a20037377889b60a73b2b1f470c67c674 Mon Sep 17 00:00:00 2001 +From: Jakub Hrozek +Date: Mon, 26 Oct 2009 12:54:38 +0100 +Subject: [PATCH] Fix migration script for pre-0.5 local domains + +Configuration files before 0.5.0 did not enforce provider= in local +domains it did special-case by domain name (LOCAL). Our script was +relying on provider= value, this patch adds the special-casing in case +the domain was called LOCAL. +--- + server/upgrade/upgrade_config.py | 13 +++++++++++-- + 1 files changed, 11 insertions(+), 2 deletions(-) + +diff --git a/server/upgrade/upgrade_config.py b/server/upgrade/upgrade_config.py +index 87e3990..fe20811 100644 +--- a/server/upgrade/upgrade_config.py ++++ b/server/upgrade/upgrade_config.py +@@ -25,6 +25,7 @@ import sys + import shutil + import traceback + from ConfigParser import RawConfigParser ++from ConfigParser import NoOptionError + from optparse import OptionParser + + class SSSDConfigParser(RawConfigParser): +@@ -211,11 +212,19 @@ class SSSDConfigFile(object): + self._migrate_kw(new_domsec, old_domsec, ldap_kw) + self._migrate_kw(new_domsec, old_domsec, krb5_kw) + ++ # configuration files before 0.5.0 did not enforce provider= in local domains ++ # it did special-case by domain name (LOCAL) ++ try: ++ prv = self._new_config.get(new_domsec, 'id_provider') ++ except NoOptionError: ++ if old_domsec == 'domains/LOCAL': ++ prv = 'local' ++ self._new_config.set(new_domsec, 'id_provider', prv) ++ + # if domain was local, update with parameters from [user_defaults] +- if self._new_config.get(new_domsec, 'id_provider') == 'local': ++ if prv == 'local': + self._migrate_kw(new_domsec, 'user_defaults', user_defaults_kw) + +- + def _migrate_domains(self): + for domain in [ s.replace('domains/','') for s in self._config.sections() if s.startswith("domains/") ]: + domain = domain.strip() +-- +1.6.2.5 + diff --git a/sssd.spec b/sssd.spec index 8501d9f..a6afafb 100644 --- a/sssd.spec +++ b/sssd.spec @@ -3,7 +3,7 @@ Name: sssd Version: 0.7.0 -Release: 1%{?dist} +Release: 2%{?dist} Group: Applications/System Summary: System Security Services Daemon # The entire source code is GPLv3+ except replace/ which is LGPLv3+ @@ -15,6 +15,8 @@ BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX) ### Patches ### +Patch1: 0001-Fix-migration-script-for-pre-0.5-local-domains.patch + ### Dependencies ### Requires: libldb >= 0.9.3 @@ -73,6 +75,8 @@ service. %prep %setup -q +%patch1 -p1 -b .upgrade_fixes + %build %configure \ --without-tests \ @@ -190,6 +194,9 @@ fi %postun client -p /sbin/ldconfig %changelog +* Mon Oct 26 2009 Stephen Gallagher - 0.7.0-2 +- Fix upgrade issues from old (pre-0.5.0) releases of SSSD + * Fri Oct 23 2009 Stephen Gallagher - 0.7.0-1 - New upstream release 0.7.0