1
0
forked from pool/openldap2
OBS User unknown 2008-10-13 14:43:35 +00:00 committed by Git OBS Bridge
parent 32a7c170bc
commit 4a835de402
12 changed files with 156 additions and 292 deletions

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:0ae8ed1e1f2ea7b4a0b34d75aa83d4195a955f9dd74f9a4e0d6e701d472da140
size 3947545

3
openldap-2.4.12.tar.bz2 Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:5cd0553141bc9c7e8266338656d89e9dcd9328be1d7f6c70dbeadce7b5906291
size 3996921

View File

@ -1,3 +1,38 @@
-------------------------------------------------------------------
Mon Oct 13 11:33:57 CEST 2008 - rhafer@suse.de
- Added missing #include to slapo-collect
-------------------------------------------------------------------
Sun Oct 12 23:51:09 CEST 2008 - rhafer@suse.de
- Update to 2.4.12. Most important changes:
* Fixed libldap ldap_utf8_strchar arguments (ITS#5720)
* Fixed libldap TLS_CRLFILE (ITS#5677)
* Fixed librewrite memory handling (ITS#5691)
* Fixed slapd attribute leak (ITS#5683)
* Fixed slapd config backend with index greater than sibs (ITS#5684)
* Fixed slapd custom attribute inheritance (ITS#5642)
* Fixed slapd firstComponentMatch normalization (ITS#5634)
* Fixed slapd connection events enabled twice (ITS#5725)
* Fixed slapd memory handling (ITS#5691)
* Fixed slapd objectClass canonicalization (ITS#5681)
* Fixed slapd objectClass termination (ITS#5682)
* Fixed slapd overlay control registration (ITS#5649)
* Fixed slapd runqueue checking (ITS#5726)
* Fixed slapd sortvals comparison (ITS#5578)
* Fixed slapd syncrepl contextCSN detection (ITS#5675)
* Fixed slapd syncrepl error logging (ITS#5618)
* Fixed slapd syncrepl runqueue interval (ITS#5719)
* Fixed slapd-bdb entry return if attr not present (ITS#5650)
* Fixed slapd-bdb/hdb release search entries earlier (ITS#5728,ITS#5730)
* Fixed slapd-bdb/hdb subtree search with empty suffix (ITS#5729)
* Fixed slapo-memberof internal operations DN (ITS#5622)
* Fixed slapo-pcache attrset crash (ITS#5665)
* Fixed slapo-pcache caching with invalid schema (ITS#5680)
* Fixed slapo-ppolicy control return on password modify exop (ITS#5711)
- removed obsolete patches
-------------------------------------------------------------------
Mon Oct 6 10:49:23 CEST 2008 - rhafer@suse.de

View File

@ -1,5 +1,5 @@
#
# spec file for package openldap2-client (Version 2.4.11)
# spec file for package openldap2-client (Version 2.4.12)
#
# Copyright (c) 2008 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
@ -26,8 +26,8 @@ BuildRequires: -pwdutils
%if %sles_version == 10
BuildRequires: -db-devel -pwdutils libdb-4_5-devel
%endif
Version: 2.4.11
Release: 30
Version: 2.4.12
Release: 1
Url: http://www.openldap.org
License: BSD 3-Clause
%if "%{name}" == "openldap2"
@ -59,11 +59,9 @@ Patch4: ldapi_url.dif
Patch6: libldap-gethostbyname_r.dif
Patch7: pie-compile.dif
Patch9: openldap2-add-gnu-source.diff
Patch10: slapd-overlay_register_control.dif
Patch11: slapd-bconfig-del-db.dif
Patch12: slapd-bconfig-adjust-idx.dif
Patch13: slapd-bdb-stop-checkpoint.dif
Patch14: slapd-bdb-index-config.dif
Patch14: slapo-collect-include.dif
Patch100: openldap-2.3.37.dif
BuildRoot: %{_tmppath}/%{name}-%{version}-build
@ -164,11 +162,9 @@ Authors:
%patch7
%endif
%patch9 -p1
%patch10
%patch11
%patch12
%patch13
%patch14
%patch14 -p1
cp %{SOURCE5} .
cd ../openldap-2.3.37
%patch100
@ -287,6 +283,7 @@ install -m 755 ../openldap-2.3.37/servers/slapd/slapcat $RPM_BUILD_ROOT/usr/sbin
%endif
rm -f $RPM_BUILD_ROOT/usr/lib/openldap/modules/*.a
rm -f $RPM_BUILD_ROOT/usr/share/man/man5/slapd-dnssrv.5
rm -f $RPM_BUILD_ROOT/usr/share/man/man5/slapd-ndb.5
rm -f $RPM_BUILD_ROOT/usr/share/man/man5/slapd-null.5
rm -f $RPM_BUILD_ROOT/usr/share/man/man5/slapd-passwd.5
rm -f $RPM_BUILD_ROOT/usr/share/man/man5/slapd-shell.5
@ -506,6 +503,35 @@ fi
%endif
%changelog
* Mon Oct 13 2008 rhafer@suse.de
- Added missing #include to slapo-collect
* Mon Oct 13 2008 rhafer@suse.de
- Update to 2.4.12. Most important changes:
* Fixed libldap ldap_utf8_strchar arguments (ITS#5720)
* Fixed libldap TLS_CRLFILE (ITS#5677)
* Fixed librewrite memory handling (ITS#5691)
* Fixed slapd attribute leak (ITS#5683)
* Fixed slapd config backend with index greater than sibs (ITS#5684)
* Fixed slapd custom attribute inheritance (ITS#5642)
* Fixed slapd firstComponentMatch normalization (ITS#5634)
* Fixed slapd connection events enabled twice (ITS#5725)
* Fixed slapd memory handling (ITS#5691)
* Fixed slapd objectClass canonicalization (ITS#5681)
* Fixed slapd objectClass termination (ITS#5682)
* Fixed slapd overlay control registration (ITS#5649)
* Fixed slapd runqueue checking (ITS#5726)
* Fixed slapd sortvals comparison (ITS#5578)
* Fixed slapd syncrepl contextCSN detection (ITS#5675)
* Fixed slapd syncrepl error logging (ITS#5618)
* Fixed slapd syncrepl runqueue interval (ITS#5719)
* Fixed slapd-bdb entry return if attr not present (ITS#5650)
* Fixed slapd-bdb/hdb release search entries earlier (ITS#5728,ITS#5730)
* Fixed slapd-bdb/hdb subtree search with empty suffix (ITS#5729)
* Fixed slapo-memberof internal operations DN (ITS#5622)
* Fixed slapo-pcache attrset crash (ITS#5665)
* Fixed slapo-pcache caching with invalid schema (ITS#5680)
* Fixed slapo-ppolicy control return on password modify exop (ITS#5711)
- removed obsolete patches
* Mon Oct 06 2008 rhafer@suse.de
- remove some problematic test-cases, that cause a lot of
unreproducable buildfailures

View File

@ -1,3 +1,38 @@
-------------------------------------------------------------------
Mon Oct 13 11:33:57 CEST 2008 - rhafer@suse.de
- Added missing #include to slapo-collect
-------------------------------------------------------------------
Sun Oct 12 23:51:09 CEST 2008 - rhafer@suse.de
- Update to 2.4.12. Most important changes:
* Fixed libldap ldap_utf8_strchar arguments (ITS#5720)
* Fixed libldap TLS_CRLFILE (ITS#5677)
* Fixed librewrite memory handling (ITS#5691)
* Fixed slapd attribute leak (ITS#5683)
* Fixed slapd config backend with index greater than sibs (ITS#5684)
* Fixed slapd custom attribute inheritance (ITS#5642)
* Fixed slapd firstComponentMatch normalization (ITS#5634)
* Fixed slapd connection events enabled twice (ITS#5725)
* Fixed slapd memory handling (ITS#5691)
* Fixed slapd objectClass canonicalization (ITS#5681)
* Fixed slapd objectClass termination (ITS#5682)
* Fixed slapd overlay control registration (ITS#5649)
* Fixed slapd runqueue checking (ITS#5726)
* Fixed slapd sortvals comparison (ITS#5578)
* Fixed slapd syncrepl contextCSN detection (ITS#5675)
* Fixed slapd syncrepl error logging (ITS#5618)
* Fixed slapd syncrepl runqueue interval (ITS#5719)
* Fixed slapd-bdb entry return if attr not present (ITS#5650)
* Fixed slapd-bdb/hdb release search entries earlier (ITS#5728,ITS#5730)
* Fixed slapd-bdb/hdb subtree search with empty suffix (ITS#5729)
* Fixed slapo-memberof internal operations DN (ITS#5622)
* Fixed slapo-pcache attrset crash (ITS#5665)
* Fixed slapo-pcache caching with invalid schema (ITS#5680)
* Fixed slapo-ppolicy control return on password modify exop (ITS#5711)
- removed obsolete patches
-------------------------------------------------------------------
Mon Oct 6 10:49:23 CEST 2008 - rhafer@suse.de

View File

@ -48,21 +48,3 @@ Index: servers/slapd/aclparse.c
" attr \"%s\" normalization failed (%d: %s)",
fname, lineno,
a->acl_attrs[ 0 ].an_name.bv_val, rc, text );
Index: libraries/libldap/result.c
===================================================================
--- libraries/libldap/result.c.orig
+++ libraries/libldap/result.c
@@ -639,10 +639,12 @@ retry_ber:
if ( LDAP_IS_UDP(ld) && isv2 ) {
ber_scanf(ber, "x{");
}
-nextresp2:
#endif
}
+#ifdef LDAP_CONNECTIONLESS
+nextresp2:
+#endif
/* the message type */
tag = ber_peek_tag( ber, &len );
if ( tag == LBER_ERROR ) {

View File

@ -1,5 +1,5 @@
#
# spec file for package openldap2 (Version 2.4.11)
# spec file for package openldap2 (Version 2.4.12)
#
# Copyright (c) 2008 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
@ -26,8 +26,8 @@ BuildRequires: -pwdutils
%if %sles_version == 10
BuildRequires: -db-devel -pwdutils libdb-4_5-devel
%endif
Version: 2.4.11
Release: 28
Version: 2.4.12
Release: 1
Url: http://www.openldap.org
License: BSD 3-Clause; openldap 2.8
%if "%{name}" == "openldap2"
@ -59,11 +59,9 @@ Patch4: ldapi_url.dif
Patch6: libldap-gethostbyname_r.dif
Patch7: pie-compile.dif
Patch9: openldap2-add-gnu-source.diff
Patch10: slapd-overlay_register_control.dif
Patch11: slapd-bconfig-del-db.dif
Patch12: slapd-bconfig-adjust-idx.dif
Patch13: slapd-bdb-stop-checkpoint.dif
Patch14: slapd-bdb-index-config.dif
Patch14: slapo-collect-include.dif
Patch100: openldap-2.3.37.dif
BuildRoot: %{_tmppath}/%{name}-%{version}-build
@ -167,11 +165,9 @@ Authors:
%patch7
%endif
%patch9 -p1
%patch10
%patch11
%patch12
%patch13
%patch14
%patch14 -p1
cp %{SOURCE5} .
cd ../openldap-2.3.37
%patch100
@ -290,6 +286,7 @@ install -m 755 ../openldap-2.3.37/servers/slapd/slapcat $RPM_BUILD_ROOT/usr/sbin
%endif
rm -f $RPM_BUILD_ROOT/usr/lib/openldap/modules/*.a
rm -f $RPM_BUILD_ROOT/usr/share/man/man5/slapd-dnssrv.5
rm -f $RPM_BUILD_ROOT/usr/share/man/man5/slapd-ndb.5
rm -f $RPM_BUILD_ROOT/usr/share/man/man5/slapd-null.5
rm -f $RPM_BUILD_ROOT/usr/share/man/man5/slapd-passwd.5
rm -f $RPM_BUILD_ROOT/usr/share/man/man5/slapd-shell.5
@ -509,6 +506,35 @@ fi
%endif
%changelog
* Mon Oct 13 2008 rhafer@suse.de
- Added missing #include to slapo-collect
* Mon Oct 13 2008 rhafer@suse.de
- Update to 2.4.12. Most important changes:
* Fixed libldap ldap_utf8_strchar arguments (ITS#5720)
* Fixed libldap TLS_CRLFILE (ITS#5677)
* Fixed librewrite memory handling (ITS#5691)
* Fixed slapd attribute leak (ITS#5683)
* Fixed slapd config backend with index greater than sibs (ITS#5684)
* Fixed slapd custom attribute inheritance (ITS#5642)
* Fixed slapd firstComponentMatch normalization (ITS#5634)
* Fixed slapd connection events enabled twice (ITS#5725)
* Fixed slapd memory handling (ITS#5691)
* Fixed slapd objectClass canonicalization (ITS#5681)
* Fixed slapd objectClass termination (ITS#5682)
* Fixed slapd overlay control registration (ITS#5649)
* Fixed slapd runqueue checking (ITS#5726)
* Fixed slapd sortvals comparison (ITS#5578)
* Fixed slapd syncrepl contextCSN detection (ITS#5675)
* Fixed slapd syncrepl error logging (ITS#5618)
* Fixed slapd syncrepl runqueue interval (ITS#5719)
* Fixed slapd-bdb entry return if attr not present (ITS#5650)
* Fixed slapd-bdb/hdb release search entries earlier (ITS#5728,ITS#5730)
* Fixed slapd-bdb/hdb subtree search with empty suffix (ITS#5729)
* Fixed slapo-memberof internal operations DN (ITS#5622)
* Fixed slapo-pcache attrset crash (ITS#5665)
* Fixed slapo-pcache caching with invalid schema (ITS#5680)
* Fixed slapo-ppolicy control return on password modify exop (ITS#5711)
- removed obsolete patches
* Mon Oct 06 2008 rhafer@suse.de
- remove some problematic test-cases, that cause a lot of
unreproducable buildfailures

View File

@ -1,17 +0,0 @@
Index: servers/slapd/bconfig.c
===================================================================
RCS file: /repo/OpenLDAP/pkg/ldap/servers/slapd/bconfig.c,v
retrieving revision 1.341
retrieving revision 1.342
diff -u -r1.341 -r1.342
--- servers/slapd/bconfig.c 30 Jun 2008 21:16:02 -0000 1.341
+++ servers/slapd/bconfig.c 4 Sep 2008 11:56:31 -0000 1.342
@@ -3881,7 +3881,7 @@
if ( isconfig && index == -1 ) {
index = 0;
}
- if ( !isfrontend && index == -1 ) {
+ if (( !isfrontend && index == -1 ) || ( index > nsibs ) ){
index = nsibs;
}

View File

@ -10,7 +10,7 @@ diff -u -r1.342 -r1.344
if ( last )
rs->sr_matched = last->ce_entry->e_name.bv_val;
rs->sr_err = LDAP_NO_SUCH_OBJECT;
- } if ( ce->ce_kids ) {
- } else if ( ce->ce_kids ) {
+ } else if ( ce->ce_kids ) {
rs->sr_err = LDAP_UNWILLING_TO_PERFORM;
- } else if ( ce->ce_type == Cft_Overlay ){

View File

@ -1,207 +0,0 @@
Index: servers/slapd/back-bdb/attr.c
===================================================================
RCS file: /repo/OpenLDAP/pkg/ldap/servers/slapd/back-bdb/attr.c,v
retrieving revision 1.39
diff -u -r1.39 attr.c
--- servers/slapd/back-bdb/attr.c 26 May 2008 15:38:32 -0000 1.39
+++ servers/slapd/back-bdb/attr.c 23 Sep 2008 13:09:29 -0000
@@ -23,6 +23,7 @@
#include "slap.h"
#include "back-bdb.h"
+#include "config.h"
#include "lutil.h"
/* Find the ad, return -1 if not found,
@@ -92,7 +93,8 @@
const char *fname,
int lineno,
int argc,
- char **argv )
+ char **argv,
+ struct config_reply_s *c_reply)
{
int rc = 0;
int i;
@@ -132,9 +134,14 @@
rc = slap_str2index( indexes[i], &index );
if( rc != LDAP_SUCCESS ) {
- fprintf( stderr, "%s: line %d: "
- "index type \"%s\" undefined\n",
- fname, lineno, indexes[i] );
+ if ( c_reply )
+ {
+ snprintf(c_reply->msg, sizeof(c_reply->msg),
+ "index type \"%s\" undefined", indexes[i] );
+
+ fprintf( stderr, "%s: line %d: %s\n",
+ fname, lineno, c_reply->msg );
+ }
rc = LDAP_PARAM_ERROR;
goto done;
}
@@ -144,9 +151,13 @@
}
if( !mask ) {
- fprintf( stderr, "%s: line %d: "
- "no indexes selected\n",
- fname, lineno );
+ if ( c_reply )
+ {
+ snprintf(c_reply->msg, sizeof(c_reply->msg),
+ "no indexes selected" );
+ fprintf( stderr, "%s: line %d: %s\n",
+ fname, lineno, c_reply->msg );
+ }
rc = LDAP_PARAM_ERROR;
goto done;
}
@@ -169,9 +180,14 @@
if ( is_component_reference( attrs[i] ) ) {
rc = extract_component_reference( attrs[i], &cr );
if ( rc != LDAP_SUCCESS ) {
- fprintf( stderr, "%s: line %d: "
- "index component reference\"%s\" undefined\n",
- fname, lineno, attrs[i] );
+ if ( c_reply )
+ {
+ snprintf(c_reply->msg, sizeof(c_reply->msg),
+ "index component reference\"%s\" undefined",
+ attrs[i] );
+ fprintf( stderr, "%s: line %d: %s\n",
+ fname, lineno, c_reply->msg );
+ }
goto done;
}
cr->cr_indexmask = mask;
@@ -187,16 +203,25 @@
rc = slap_str2ad( attrs[i], &ad, &text );
if( rc != LDAP_SUCCESS ) {
- fprintf( stderr, "%s: line %d: "
- "index attribute \"%s\" undefined\n",
- fname, lineno, attrs[i] );
+ if ( c_reply )
+ {
+ snprintf(c_reply->msg, sizeof(c_reply->msg),
+ "index attribute \"%s\" undefined",
+ attrs[i] );
+
+ fprintf( stderr, "%s: line %d: %s\n",
+ fname, lineno, c_reply->msg );
+ }
goto done;
}
if( slap_ad_is_binary( ad ) ) {
- fprintf( stderr, "%s: line %d: "
- "index of attribute \"%s\" disallowed\n",
- fname, lineno, attrs[i] );
+ if (c_reply) {
+ snprintf(c_reply->msg, sizeof(c_reply->msg),
+ "index of attribute \"%s\" disallowed", attrs[i] );
+ fprintf( stderr, "%s: line %d: %s\n",
+ fname, lineno, c_reply->msg );
+ }
rc = LDAP_UNWILLING_TO_PERFORM;
goto done;
}
@@ -206,9 +231,12 @@
&& ad->ad_type->sat_approx->smr_indexer
&& ad->ad_type->sat_approx->smr_filter ) )
{
- fprintf( stderr, "%s: line %d: "
- "approx index of attribute \"%s\" disallowed\n",
- fname, lineno, attrs[i] );
+ if (c_reply) {
+ snprintf(c_reply->msg, sizeof(c_reply->msg),
+ "approx index of attribute \"%s\" disallowed", attrs[i] );
+ fprintf( stderr, "%s: line %d: %s\n",
+ fname, lineno, c_reply->msg );
+ }
rc = LDAP_INAPPROPRIATE_MATCHING;
goto done;
}
@@ -218,9 +246,12 @@
&& ad->ad_type->sat_equality->smr_indexer
&& ad->ad_type->sat_equality->smr_filter ) )
{
- fprintf( stderr, "%s: line %d: "
- "equality index of attribute \"%s\" disallowed\n",
- fname, lineno, attrs[i] );
+ if (c_reply) {
+ snprintf(c_reply->msg, sizeof(c_reply->msg),
+ "equality index of attribute \"%s\" disallowed", attrs[i] );
+ fprintf( stderr, "%s: line %d: %s\n",
+ fname, lineno, c_reply->msg );
+ }
rc = LDAP_INAPPROPRIATE_MATCHING;
goto done;
}
@@ -230,9 +261,12 @@
&& ad->ad_type->sat_substr->smr_indexer
&& ad->ad_type->sat_substr->smr_filter ) )
{
- fprintf( stderr, "%s: line %d: "
- "substr index of attribute \"%s\" disallowed\n",
- fname, lineno, attrs[i] );
+ if (c_reply) {
+ snprintf(c_reply->msg, sizeof(c_reply->msg),
+ "substr index of attribute \"%s\" disallowed", attrs[i] );
+ fprintf( stderr, "%s: line %d: %s\n",
+ fname, lineno, c_reply->msg );
+ }
rc = LDAP_INAPPROPRIATE_MATCHING;
goto done;
}
@@ -295,9 +329,13 @@
rc = 0;
continue;
}
- fprintf( stderr,
- "%s: line %d: duplicate index definition for attr \"%s\".\n",
- fname, lineno, attrs[i] );
+ if (c_reply) {
+ snprintf(c_reply->msg, sizeof(c_reply->msg),
+ "duplicate index definition for attr \"%s\"",
+ attrs[i] );
+ fprintf( stderr, "%s: line %d: %s\n",
+ fname, lineno, c_reply->msg );
+ }
rc = LDAP_PARAM_ERROR;
goto done;
Index: servers/slapd/back-bdb/config.c
===================================================================
RCS file: /repo/OpenLDAP/pkg/ldap/servers/slapd/back-bdb/config.c,v
retrieving revision 1.108
diff -u -r1.108 config.c
--- servers/slapd/back-bdb/config.c 26 Aug 2008 23:45:35 -0000 1.108
+++ servers/slapd/back-bdb/config.c 23 Sep 2008 13:09:29 -0000
@@ -736,7 +736,7 @@
case BDB_INDEX:
rc = bdb_attr_index_config( bdb, c->fname, c->lineno,
- c->argc - 1, &c->argv[1] );
+ c->argc - 1, &c->argv[1], &c->reply);
if( rc != LDAP_SUCCESS ) return 1;
if (( bdb->bi_flags & BDB_IS_OPEN ) && !bdb->bi_index_task ) {
Index: servers/slapd/back-bdb/proto-bdb.h
===================================================================
RCS file: /repo/OpenLDAP/pkg/ldap/servers/slapd/back-bdb/proto-bdb.h,v
retrieving revision 1.160
diff -u -r1.160 proto-bdb.h
--- servers/slapd/back-bdb/proto-bdb.h 26 Aug 2008 23:45:35 -0000 1.160
+++ servers/slapd/back-bdb/proto-bdb.h 23 Sep 2008 13:09:29 -0000
@@ -49,7 +49,7 @@
int bdb_attr_index_config LDAP_P(( struct bdb_info *bdb,
const char *fname, int lineno,
- int argc, char **argv ));
+ int argc, char **argv, struct config_reply_s *cr ));
void bdb_attr_index_unparse LDAP_P(( struct bdb_info *bdb, BerVarray *bva ));
void bdb_attr_index_destroy LDAP_P(( struct bdb_info *bdb ));

View File

@ -1,28 +0,0 @@
Index: servers/slapd/backover.c
===================================================================
RCS file: /repo/OpenLDAP/pkg/ldap/servers/slapd/backover.c,v
retrieving revision 1.87
retrieving revision 1.88
diff -u -r1.87 -r1.88
--- servers/slapd/backover.c 12 Jul 2008 09:53:49 -0000 1.87
+++ servers/slapd/backover.c 9 Aug 2008 08:11:41 -0000 1.88
@@ -1063,7 +1063,7 @@
/* add to all backends... */
LDAP_STAILQ_FOREACH( bd, &backendDB, be_next ) {
- if ( be == bd ) {
+ if ( bd == be->bd_self ) {
gotit = 1;
}
@@ -1074,8 +1074,8 @@
}
if ( !gotit ) {
- be->be_ctrls[ cid ] = 1;
- be->be_ctrls[ SLAP_MAX_CIDS ] = 1;
+ be->bd_self->be_ctrls[ cid ] = 1;
+ be->bd_self->be_ctrls[ SLAP_MAX_CIDS ] = 1;
}
return 0;

12
slapo-collect-include.dif Normal file
View File

@ -0,0 +1,12 @@
Index: openldap-2.4.12/servers/slapd/overlays/collect.c
===================================================================
--- openldap-2.4.12.orig/servers/slapd/overlays/collect.c
+++ openldap-2.4.12/servers/slapd/overlays/collect.c
@@ -30,6 +30,7 @@
#include "slap.h"
#include "config.h"
+#include "lutil.h"
/* This is a cheap hack to implement a collective attribute.
*