rpms/system-config-bind/F-11 dnssec-workaround.patch, NONE, 1.1 system-config-bind.spec, 1.83, 1.84

Jaroslav Reznik jreznik at fedoraproject.org
Thu Apr 23 11:10:50 UTC 2009


Author: jreznik

Update of /cvs/pkgs/rpms/system-config-bind/F-11
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv5214

Modified Files:
	system-config-bind.spec 
Added Files:
	dnssec-workaround.patch 
Log Message:
* Thu Apr 23 2009 Jaroslav Reznik <jreznik at redhat.com> - 4.0.12-2
- dnssec workaround (rhbz#496017)


dnssec-workaround.patch:

--- NEW FILE dnssec-workaround.patch ---
diff -r 1728a48f0fc2 src/DNSsec.py
--- a/src/DNSsec.py	Tue Apr 14 16:43:57 2009 +0200
+++ b/src/DNSsec.py	Thu Apr 23 12:57:55 2009 +0200
@@ -639,6 +639,10 @@
         s.key = 'trusted-keys'
         if bind.nmdc.__contains__('trusted-keys'):
             tk = bind.nmdc['trusted-keys']
+
+            # if we have only one key, add it to list
+            if (type(tk) == dict):
+                tk=[tk]    
             for lk in tk:
                 for k in lk.keys():
                     origin = k.strip('"')
diff -r 1728a48f0fc2 src/NamedConf.py
--- a/src/NamedConf.py	Tue Apr 14 16:43:57 2009 +0200
+++ b/src/NamedConf.py	Thu Apr 23 12:57:55 2009 +0200
@@ -410,7 +410,7 @@
                 k_removed=0
             if parent.has_key('_NEW_') and (dumpKey == None):
                 output+=string.join(parent['_NEW_'],'')
-                del parent['_NEW_'] 
+                del parent['_NEW_']
             if exists:
                 if t['type']=='key':
                    output+=t['t']
@@ -438,7 +438,16 @@
                                    lli=0
                                    output += obj[li][lli]
                                    lli+=1
-                               self.lists[lkey]=[li,lli]                               
+                               self.lists[lkey]=[li,lli]
+                           elif ( type(obj[li]) == dict):
+                               # FIX: fixes DNSSec support, workaround
+                               #ke = t['keys'][1]
+                               #for key, args in obj[li].items():
+                               #   if (key == ke):
+                               #       output+=args[0]+' '+args[1]+' '+args[2]+' '+args[3]
+                               self.lists[lkey]+=1
+                               
+                               # for now just skip
                            else:
                                output+=obj[li]
                                self.lists[lkey]+=1
@@ -518,37 +527,39 @@
         if len(self.chroot):
             chrootArg = '-t '+self.chroot
         for f in self.files:
-            md5sum=md5.new(f['contents']).digest()
-            if md5sum != f['md5']:
-                try:
-                    os.rename(f['file'],f['file']+'.'+ts)
-                    fd = os.open(f['file'],os.O_CREAT | os.O_WRONLY, 0644)
-                    os.write(fd, f['contents'])
-                    os.fsync(fd)
-                    os.close(fd)
-                    commands.getstatusoutput( "if [ -x /sbin/restorecon ]; then /sbin/restorecon "+ f['file'] + "; fi" )
-                    os.chown(f['file'],0,25)
-                except OSError, e:
-                    self.errors = [ e[0], _('cannot write file %s: %s.') % (f['file'], e[1]) ]
-                    return e[0]
-                f['md5']=md5sum
-                fName=f['file']
-                if (len(self.chroot)>0) and (len(fName)> len(self.chroot)) and (fName[:len(self.chroot)] == self.chroot):
-                    fName = fName[(len(self.chroot)+1):]
-                s=commands.getstatusoutput('/usr/sbin/named-checkconf '+chrootArg + ' '+fName)
-                if s[0] != 0:
-                    self.errors.append(_('Generation of new file "%s" failed:\n%s\nThe original file will be restored.')
+            # workaround for not working dnssec support
+            if (f['file'].find('/etc/pki/dnssec-keys') == -1):
+                md5sum=md5.new(f['contents']).digest()
+                if md5sum != f['md5']:
+                    try:
+                        os.rename(f['file'],f['file']+'.'+ts)
+                        fd = os.open(f['file'],os.O_CREAT | os.O_WRONLY, 0644)
+                        os.write(fd, f['contents'])
+                        os.fsync(fd)
+                        os.close(fd)
+                        commands.getstatusoutput( "if [ -x /sbin/restorecon ]; then /sbin/restorecon "+ f['file'] + "; fi" )
+                        os.chown(f['file'],0,25)
+                    except OSError, e:
+                        self.errors = [ e[0], _('cannot write file %s: %s.') % (f['file'], e[1]) ]
+                        return e[0]
+                    f['md5']=md5sum
+                    fName=f['file']
+                    if (len(self.chroot)>0) and (len(fName)> len(self.chroot)) and (fName[:len(self.chroot)] == self.chroot):
+                        fName = fName[(len(self.chroot)+1):]
+                    s=commands.getstatusoutput('/usr/sbin/named-checkconf '+chrootArg + ' '+fName)
+                    if s[0] != 0:
+                        self.errors.append(_('Generation of new file "%s" failed:\n%s\nThe original file will be restored.')
                                        % ( f['file'], s[1] )
                                       )
-                    try:
-                        os.rename(f['file'], f['file']+'.REJECT'+'.'+ts)
-                        os.rename(f['file']+'.'+ts,f['file'])
-                    except OSError, e:
-                        self.errors.append(_('Restoration of file "%s" failed:\n%s\n.')
+                        try:
+                            os.rename(f['file'], f['file']+'.REJECT'+'.'+ts)
+                            os.rename(f['file']+'.'+ts,f['file'])
+                        except OSError, e:
+                            self.errors.append(_('Restoration of file "%s" failed:\n%s\n.')
                                            %(f['file'], str(e[0]), e[1])
                                           )
-                        return e[0]
-                    return s[0]
+                            return e[0]
+                        return s[0]
         self.dirty = False
         self.tokens=self.files[0]['tokens']
         self.contents=self.files[0]['contents']
@@ -557,7 +568,9 @@
 
     def preview(self):
         for f in self.files:
-            yield ( f['file'], f['contents'] )
+    	    # workaround for not working dnssec support
+	    if (f['file'].find('/etc/pki/dnssec-keys') == -1):
+		yield ( f['file'], f['contents'] )
         
     def dump(self):
         out=''


Index: system-config-bind.spec
===================================================================
RCS file: /cvs/pkgs/rpms/system-config-bind/F-11/system-config-bind.spec,v
retrieving revision 1.83
retrieving revision 1.84
diff -u -r1.83 -r1.84
--- system-config-bind.spec	14 Apr 2009 14:48:54 -0000	1.83
+++ system-config-bind.spec	23 Apr 2009 11:10:19 -0000	1.84
@@ -1,11 +1,12 @@
 Summary:        BIND DNS Configuration Tool
 Name:           system-config-bind
 Version:        4.0.12
-Release:        1%{?dist}
+Release:        2%{?dist}
 URL:            http://fedorahosted.org/system-config-bind
 License:        GPLv2
 Group:          Applications/System
 Source0:        https://fedorahosted.org/releases/s/y/system-config-bind/%{name}-%{version}.tar.gz
+Patch0:         dnssec-workaround.patch
 BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root
 BuildArch:      noarch
 BuildRequires:  python, gettext, make, intltool, desktop-file-utils
@@ -24,6 +25,10 @@
 %prep
 %setup -q
 
+# this is workaround as DNSSec is enabled by default in Fedora 11 but it 
+# needs more work
+%patch0 -p1 -b .dnssec-workaround
+
 %build
 make 
 
@@ -81,6 +86,9 @@
 fi;
 
 %changelog
+* Thu Apr 23 2009 Jaroslav Reznik <jreznik at redhat.com> - 4.0.12-2
+- dnssec workaround (rhbz#496017)
+
 * Tue Apr 14 2009 Jaroslav Reznik <jreznik at redhat.com> - 4.0.12-1
 - update to 4.0.12
 - startup crash (rhbz#495599)




More information about the fedora-extras-commits mailing list