diff --git a/system-config-bind-4.0.2-DNSSECkey-record-column.patch b/system-config-bind-4.0.2-DNSSECkey-record-column.patch
new file mode 100644
index 0000000..6a08d66
--- /dev/null
+++ b/system-config-bind-4.0.2-DNSSECkey-record-column.patch
@@ -0,0 +1,62 @@
+--- system-config-bind-4.0.2/RR.py.old 2005-08-09 20:09:57.000000000 +0200
++++ system-config-bind-4.0.2/RR.py 2007-02-07 19:27:21.000000000 +0100
+@@ -201,13 +204,13 @@
+ if self.desc.has_key(key):
+ val=getattr(self,key)
+ t=type(val)
+- if ( t == str) or (t == int):
+- yield[ self.desc[key], val ]
++ if ( t == str) or (t == int):
++ yield[ self.desc[key], val, 0]
+ else:
+ v=''
+ if val.__class__ == DNS.Name:
+ v = str(val)
+- yield[ self.desc[key], v ]
++ yield[ self.desc[key], v, 0 ]
+ else:
+ if type(self.desc[key]) == list:
+ # handle records with variable length attr lists:
+@@ -230,14 +233,14 @@
+ elif hasattr(v,'value'):
+ v = v.value
+ if( v != None ):
+- yield( desc, v )
++ yield( desc, v, 0 )
+ else:
+ if( hasattr(val,'label')):
+ v = val.label()
+ else:
+ v = str(val)
+- yield[ self.desc[key], v ]
+- yield [ _('Cache Time To Live'), self.TTL().label()]
++ yield[ self.desc[key], v, val.__class__ == DNS.Base64 ]
++ yield [ _('Cache Time To Live'), self.TTL().label(), 0]
+
+ def max_value_label(self):
+ m=0
+--- system-config-bind-4.0.2/ZoneTree.py.old 2005-09-23 19:39:51.000000000 +0200
++++ system-config-bind-4.0.2/ZoneTree.py 2007-02-07 19:14:23.000000000 +0100
+@@ -1269,8 +1269,20 @@
+ data=""+str(r.Name())+"\n"
+ jlen=r.max_value_label() + 2
+ jfmt='%-'+str(jlen)+'s'
+- for name, val in r.value_labels():
+- data+=(jfmt % name)+": "+str(val)+"\n"
++ max_record_lenght = 30
++ for name, val, wrap in r.value_labels():
++ value_str = ''
++ if wrap:
++ input_str = str(val)
++ start = 0
++ while start < len(input_str):
++ if start == 0:
++ data+=(jfmt % name)+": "+input_str[start:start+max_record_lenght]+'\n'
++ else:
++ data+=string.expandtabs('\t',jlen+2)+input_str[start:start+max_record_lenght]+'\n'
++ start = start + max_record_lenght
++ else:
++ data+=(jfmt % name)+": "+str(val)+"\n"
+ node=''
+ if len( rname ) and ( rname != z['zone'].zone_origin ):
+ if z['names'].has_key(rname):
diff --git a/system-config-bind-4.0.2-rndc-label-correction.patch b/system-config-bind-4.0.2-rndc-label-correction.patch
new file mode 100644
index 0000000..41b8fcf
--- /dev/null
+++ b/system-config-bind-4.0.2-rndc-label-correction.patch
@@ -0,0 +1,84 @@
+--- system-config-bind-4.0.2/RRGUI.py.old 2006-03-14 21:30:48.000000000 +0100
++++ system-config-bind-4.0.2/RRGUI.py 2007-02-12 14:02:17.000000000 +0100
+@@ -18,6 +18,8 @@
+ import RR
+ import DNS
+
++RDNC_KEY_NAME=_('Remote Nameserver Control Security Key')
++
+ class Widget:
+ def __init__(s, d, r, a, k):
+ s.dialog = d
+@@ -2225,17 +2227,17 @@
+ if (s.attr.name == None) or (len(s.attr.name)==0):
+ name = s.entry.get_text()
+ if len(name) <= 0:
+- s.bind.gui.modalError(s.bind.gui.gui,_('DNS Security Key Name Error'),
+- _('A non-empty DNS Security Key Name is required.')
++ s.bind.gui.modalError(s.bind.gui.gui,_('Remote Nameserver Control Security Key Name Error'),
++ _('A non-empty Security Key Name is required.')
+ )
+ return False
+ if s.bind.nmdc.__contains__(s.attr.key + [ name ]):
+- s.bind.gui.modalError(s.bind.gui.gui,_('DNS Security Key Name Error'),
++ s.bind.gui.modalError(s.bind.gui.gui,_('Remote Nameserver Control Security Key Name Error'),
+ _('Key "%s" already exists.') % name
+ )
+ return False
+ if s.bind.acls.has_key(name) or (name.lower() in ['none','any','localhost','localnets']) :
+- s.bind.gui.modalError(s.bind.gui.gui,_('DNS Security Key Name Error'),
++ s.bind.gui.modalError(s.bind.gui.gui,_('Remote Nameserver Control Security Key Name Error'),
+ _('Name "%s" is an Access Control List name.') % name
+ )
+ return False
+@@ -2258,9 +2260,9 @@
+ def keyDialog(s):
+ t=''
+ if (s.attr.name == None) or (len(s.attr.name)==0):
+- t = _('New DNS Security Key')
++ t = _('New Remote Nameserver Control Security Key')
+ else:
+- t = _('DNS Security Key')+' '+s.attr.name
++ t = RDNC_KEY_NAME+' '+s.attr.name
+ s.editDialog = gtk.Dialog(parent=s.gui.gui, title=t,
+ buttons=
+ (gtk.STOCK_OK, gtk.RESPONSE_OK,
+--- system-config-bind-4.0.2/ZoneTree.py.old 2005-09-23 19:39:51.000000000 +0200
++++ system-config-bind-4.0.2/ZoneTree.py 2007-02-12 14:02:39.000000000 +0100
+@@ -28,6 +28,8 @@
+ INFO_COLUMN=2
+ RECORD_COLUMN=3
+
++RDNC_KEY_NAME=_('Remote Nameserver Control Security Key')
++
+ class ZoneNode:
+ def __init__(s, z):
+ s.z=z
+@@ -263,7 +265,7 @@
+ show_names = True
+ elif((selection.__class__ == DNS.ACL) or (selection.__class__==DNS.Key)):
+ choices=[['acl',_('Access Control List Filter'),DNS.ACL],
+- ['key',_('DNS Security Key'),DNS.Key]
++ ['key', RDNC_KEY_NAME, DNS.Key]
+ ]
+ for choice in choices:
+ if show_names :
+@@ -1077,7 +1079,7 @@
+ for acl in s.bind.acls.keys():
+ s.store.append(None,[s.acl_pic, acl, _('Access Control List Filter'), s.bind.acls[acl] ])
+ for key in s.bind.keys.keys():
+- s.store.append(None,[s.key_pic, key, _('DNS Security Key'), s.bind.keys[key] ])
++ s.store.append(None,[s.key_pic, key, RDNC_KEY_NAME, s.bind.keys[key] ])
+ for svr in s.bind.servers.keys():
+ s.store.append(None,[s.server_pic, svr, _('DNS Server') + ' ' + svr, s.bind.servers[svr]])
+ if not s.bind.isViewed :
+@@ -1092,7 +1094,7 @@
+ s.store.append( s.bind.views[key]['node'], [s.acl_pic, _('From: Filter'), _('Access Control List Filter'), view.inputFilter ] )
+ s.store.append( s.bind.views[key]['node'], [s.acl_pic, _('To: Filter'), _('Access Control List Filter'), view.outputFilter ] )
+ for k in s.bind.views[key]['keys'].keys():
+- s.store.append(s.bind.views[key]['node'],[s.key_pic, k, _('DNS Security Key'), s.bind.views[key]['keys'][k] ])
++ s.store.append(s.bind.views[key]['node'],[s.key_pic, k, RDNC_KEY_NAME, s.bind.views[key]['keys'][k] ])
+ for svr in s.bind.views[key]['servers'].keys():
+ s.store.append(s.bind.views[key]['node'],[s.server_pic, svr, _('DNS Server') + ' ' + svr, s.bind.views[key]['servers'][svr]])
+ for key in s.bind.views.keys():
+
diff --git a/system-config-bind.spec b/system-config-bind.spec
index 78bcf6d..e0e7219 100644
--- a/system-config-bind.spec
+++ b/system-config-bind.spec
@@ -1,7 +1,7 @@
Summary: The Red Hat BIND DNS Configuration Tool.
Name: system-config-bind
Version: 4.0.2
-Release: 5%{?dist}
+Release: 6%{?dist}
License: GPL
Group: Applications/System
URL: http://people.redhat.com/~jvdias/system-config-bind
@@ -11,6 +11,8 @@ Patch1: system-config-bind-4.0.2-version-2.patch
Patch2: system-config-bind-4.0.2-check-child.patch
Patch3: system-config-bind-4.0.2-SSHFPrecord.patch
Patch4: system-config-bind-4.0.2-correct-typos.patch
+Patch5: system-config-bind-4.0.2-rndc-label-correction.patch
+Patch6: system-config-bind-4.0.2-DNSSECkey-record-column.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root
BuildArch: noarch
BuildRequires: python, gettext, make, intltool
@@ -37,6 +39,8 @@ DNS server.
%patch2 -p1
%patch3 -p1 -b .sshfprecord
%patch4 -p1 -b .correct-typos
+%patch5 -p1
+%patch6 -p1
%build
rm -rf $RPM_BUILD_ROOT
@@ -103,6 +107,12 @@ if [ "$2" -gt 0 ]; then
fi
%changelog
+* Tue Apr 3 2007 Ondrej Dvoracek - 4.0.2-6
+- Corrected rndc key labels
+- Resolves #219795
+- Corrected DNSSEC key record column
+- Resolves #219798
+
* Tue Apr 3 2007 Ondrej Dvoracek - 4.0.2-5
- Added SSHFP Resource record
- Resolves #205689