[Pkg-openldap-devel] Bug#905237: openldap: FTBFS on x32 with testsuite failures (actual bugs)
Thorsten Glaser
tg at mirbsd.de
Wed Aug 1 21:19:25 BST 2018
Source: openldap
Version: 2.4.46+dfsg-5
Severity: important
Tags: upstream patch
Justification: fails to build from source (but built successfully in the past)
I’ve just managed to unbreak the build of openldap on x32
by fixing a couple of simple GCC warnings.
Please apply to the next upload to unstable and keep in
touch with upstream, so they will merge it.
-------------- next part --------------
diff -Nru openldap-2.4.46+dfsg/debian/changelog openldap-2.4.46+dfsg/debian/changelog
--- openldap-2.4.46+dfsg/debian/changelog 2018-05-05 01:12:27.000000000 +0200
+++ openldap-2.4.46+dfsg/debian/changelog 2018-08-01 18:54:58.000000000 +0200
@@ -1,3 +1,11 @@
+openldap (2.4.46+dfsg-5+x32.1) unreleased; urgency=medium
+
+ * Non-maintainer upload.
+ * Fix a couple of compiler warnings that are actual problems
+ in the hope of fixing the FTBFS on x32.
+
+ -- Thorsten Glaser <tg at mirbsd.de> Wed, 01 Aug 2018 18:54:58 +0200
+
openldap (2.4.46+dfsg-5) unstable; urgency=medium
* Restore slapd-smbk5pwd now that libldap is installable in unstable.
diff -Nru openldap-2.4.46+dfsg/debian/patches/fix-format-strings openldap-2.4.46+dfsg/debian/patches/fix-format-strings
--- openldap-2.4.46+dfsg/debian/patches/fix-format-strings 1970-01-01 01:00:00.000000000 +0100
+++ openldap-2.4.46+dfsg/debian/patches/fix-format-strings 2018-08-01 18:54:58.000000000 +0200
@@ -0,0 +1,239 @@
+--- a/contrib/slapd-modules/smbk5pwd/smbk5pwd.c
++++ b/contrib/slapd-modules/smbk5pwd/smbk5pwd.c
+@@ -605,7 +605,7 @@ static int smbk5pwd_exop_passwd(
+ keys[0].bv_val = ch_malloc( LDAP_PVT_INTTYPE_CHARS(long) );
+ keys[0].bv_len = snprintf(keys[0].bv_val,
+ LDAP_PVT_INTTYPE_CHARS(long),
+- "%ld", slap_get_time());
++ "%lld", (long long)slap_get_time());
+ BER_BVZERO( &keys[1] );
+
+ ml->sml_desc = ad_sambaPwdLastSet;
+@@ -627,7 +627,7 @@ static int smbk5pwd_exop_passwd(
+ keys[0].bv_val = ch_malloc( LDAP_PVT_INTTYPE_CHARS(long) );
+ keys[0].bv_len = snprintf(keys[0].bv_val,
+ LDAP_PVT_INTTYPE_CHARS(long),
+- "%ld", slap_get_time() + pi->smb_must_change);
++ "%lld", (long long)slap_get_time() + (long long)pi->smb_must_change);
+ BER_BVZERO( &keys[1] );
+
+ ml->sml_desc = ad_sambaPwdMustChange;
+@@ -650,7 +650,7 @@ static int smbk5pwd_exop_passwd(
+ keys[0].bv_val = ch_malloc( LDAP_PVT_INTTYPE_CHARS(long) );
+ keys[0].bv_len = snprintf(keys[0].bv_val,
+ LDAP_PVT_INTTYPE_CHARS(long),
+- "%ld", slap_get_time() + pi->smb_can_change);
++ "%lld", (long long)slap_get_time() + (long long)pi->smb_can_change);
+ BER_BVZERO( &keys[1] );
+
+ ml->sml_desc = ad_sambaPwdCanChange;
+--- a/libraries/libldap/os-ip.c
++++ b/libraries/libldap/os-ip.c
+@@ -282,8 +282,8 @@ ldap_int_poll(
+ int rc;
+
+
+- osip_debug(ld, "ldap_int_poll: fd: %d tm: %ld\n",
+- s, tvp ? tvp->tv_sec : -1L, 0);
++ osip_debug(ld, "ldap_int_poll: fd: %d tm: %lld\n",
++ s, tvp ? (long long)tvp->tv_sec : -1LL, 0);
+
+ #ifdef HAVE_POLL
+ {
+@@ -432,8 +432,8 @@ ldap_pvt_connect(LDAP *ld, ber_socket_t
+ opt_tv = &tv;
+ }
+
+- osip_debug(ld, "ldap_pvt_connect: fd: %d tm: %ld async: %d\n",
+- s, opt_tv ? tv.tv_sec : -1L, async);
++ osip_debug(ld, "ldap_pvt_connect: fd: %d tm: %lld async: %d\n",
++ s, opt_tv ? (long long)tv.tv_sec : -1LL, async);
+
+ if ( opt_tv && ldap_pvt_ndelay_on(ld, s) == -1 )
+ return ( -1 );
+--- a/libraries/libldap/os-local.c
++++ b/libraries/libldap/os-local.c
+@@ -176,8 +176,8 @@ ldap_pvt_connect(LDAP *ld, ber_socket_t
+ opt_tv = &tv;
+ }
+
+- oslocal_debug(ld, "ldap_connect_timeout: fd: %d tm: %ld async: %d\n",
+- s, opt_tv ? tv.tv_sec : -1L, async);
++ oslocal_debug(ld, "ldap_connect_timeout: fd: %d tm: %lld async: %d\n",
++ s, opt_tv ? (long long)tv.tv_sec : -1LL, async);
+
+ if ( ldap_pvt_ndelay_on(ld, s) == -1 ) return -1;
+
+--- a/libraries/libldap/result.c
++++ b/libraries/libldap/result.c
+@@ -264,8 +264,8 @@ wait4msg(
+ Debug( LDAP_DEBUG_TRACE, "wait4msg ld %p msgid %d (infinite timeout)\n",
+ (void *)ld, msgid, 0 );
+ } else {
+- Debug( LDAP_DEBUG_TRACE, "wait4msg ld %p msgid %d (timeout %ld usec)\n",
+- (void *)ld, msgid, (long)timeout->tv_sec * 1000000 + timeout->tv_usec );
++ Debug( LDAP_DEBUG_TRACE, "wait4msg ld %p msgid %d (timeout %lld usec)\n",
++ (void *)ld, msgid, (long long)timeout->tv_sec * 1000000LL + timeout->tv_usec );
+ }
+ #endif /* LDAP_DEBUG */
+
+--- a/servers/slapd/back-ldap/bind.c
++++ b/servers/slapd/back-ldap/bind.c
+@@ -3008,14 +3008,14 @@ ldap_back_conn2str( const ldapconn_base_
+ }
+
+ if ( lc->lcb_create_time != 0 ) {
+- len = snprintf( tbuf, sizeof(tbuf), "%ld", lc->lcb_create_time );
++ len = snprintf( tbuf, sizeof(tbuf), "%lld", (long long)lc->lcb_create_time );
+ if ( ptr + sizeof(" created=") + len >= end ) return -1;
+ ptr = lutil_strcopy( ptr, " created=" );
+ ptr = lutil_strcopy( ptr, tbuf );
+ }
+
+ if ( lc->lcb_time != 0 ) {
+- len = snprintf( tbuf, sizeof(tbuf), "%ld", lc->lcb_time );
++ len = snprintf( tbuf, sizeof(tbuf), "%lld", (long long)lc->lcb_time );
+ if ( ptr + sizeof(" modified=") + len >= end ) return -1;
+ ptr = lutil_strcopy( ptr, " modified=" );
+ ptr = lutil_strcopy( ptr, tbuf );
+--- a/servers/slapd/back-meta/config.c
++++ b/servers/slapd/back-meta/config.c
+@@ -1277,8 +1277,8 @@ meta_back_cf_gen( ConfigArgs *c )
+ if ( mc->mc_network_timeout == 0 ) {
+ return 1;
+ }
+- bv.bv_len = snprintf( c->cr_msg, sizeof(c->cr_msg), "%ld",
+- mc->mc_network_timeout );
++ bv.bv_len = snprintf( c->cr_msg, sizeof(c->cr_msg), "%lld",
++ (long long)mc->mc_network_timeout );
+ bv.bv_val = c->cr_msg;
+ value_add_one( &c->rvalue_vals, &bv );
+ break;
+--- a/servers/slapd/overlays/dds.c
++++ b/servers/slapd/overlays/dds.c
+@@ -417,7 +417,7 @@ dds_op_add( Operation *op, SlapReply *rs
+ assert( ttl <= DDS_RF2589_MAX_TTL );
+
+ bv.bv_val = ttlbuf;
+- bv.bv_len = snprintf( ttlbuf, sizeof( ttlbuf ), "%ld", ttl );
++ bv.bv_len = snprintf( ttlbuf, sizeof( ttlbuf ), "%lld", (long long)ttl );
+ assert( bv.bv_len < sizeof( ttlbuf ) );
+
+ /* FIXME: apparently, values in op->ora_e are malloc'ed
+@@ -695,7 +695,7 @@ dds_op_modify( Operation *op, SlapReply
+ goto done;
+ }
+
+- bv_entryTtl.bv_len = snprintf( textbuf, sizeof( textbuf ), "%ld", entryTtl );
++ bv_entryTtl.bv_len = snprintf( textbuf, sizeof( textbuf ), "%lld", (long long)entryTtl );
+ break;
+
+ default:
+@@ -917,7 +917,7 @@ dds_response( Operation *op, SlapReply *
+ ttl = (ttl < 0) ? 0 : ttl;
+ assert( ttl <= DDS_RF2589_MAX_TTL );
+
+- len = snprintf( ttlbuf, sizeof(ttlbuf), "%ld", ttl );
++ len = snprintf( ttlbuf, sizeof(ttlbuf), "%lld", (long long)ttl );
+ if ( len < 0 )
+ {
+ goto done;
+@@ -1177,7 +1177,7 @@ dds_op_extended( Operation *op, SlapRepl
+ ttlmod.sml_values = ttlvalues;
+ ttlmod.sml_numvals = 1;
+ ttlvalues[ 0 ].bv_val = ttlbuf;
+- ttlvalues[ 0 ].bv_len = snprintf( ttlbuf, sizeof( ttlbuf ), "%ld", ttl );
++ ttlvalues[ 0 ].bv_len = snprintf( ttlbuf, sizeof( ttlbuf ), "%lld", (long long)ttl );
+ BER_BVZERO( &ttlvalues[ 1 ] );
+
+ /* the entryExpireTimestamp is added by modify */
+@@ -1205,8 +1205,8 @@ dds_op_extended( Operation *op, SlapRepl
+ rs->sr_rspoid = ch_strdup( slap_EXOP_REFRESH.bv_val );
+
+ Log3( LDAP_DEBUG_TRACE, LDAP_LEVEL_INFO,
+- "%s REFRESH dn=\"%s\" TTL=%ld\n",
+- op->o_log_prefix, op->o_req_ndn.bv_val, ttl );
++ "%s REFRESH dn=\"%s\" TTL=%lld\n",
++ op->o_log_prefix, op->o_req_ndn.bv_val, (long long)ttl );
+ }
+
+ ber_free_buf( ber );
+--- a/servers/slapd/overlays/pcache.c
++++ b/servers/slapd/overlays/pcache.c
+@@ -2728,8 +2728,8 @@ pc_bind_search( Operation *op, SlapReply
+ pbi->bi_flags |= BI_HASHED;
+ } else {
+ Debug( pcache_debug, "pc_bind_search: cache is stale, "
+- "reftime: %ld, current time: %ld\n",
+- pbi->bi_cq->bindref_time, op->o_time, 0 );
++ "reftime: %lld, current time: %lld\n",
++ (long long)pbi->bi_cq->bindref_time, (long long)op->o_time, 0 );
+ }
+ } else if ( pbi->bi_si ) {
+ /* This search result is going into the cache */
+@@ -3831,9 +3831,9 @@ pc_cf_gen( ConfigArgs *c )
+ struct berval bv;
+ switch( c->type ) {
+ case PC_MAIN:
+- bv.bv_len = snprintf( c->cr_msg, sizeof( c->cr_msg ), "%s %d %d %d %ld",
++ bv.bv_len = snprintf( c->cr_msg, sizeof( c->cr_msg ), "%s %d %d %d %lld",
+ cm->db.bd_info->bi_type, cm->max_entries, cm->numattrsets,
+- cm->num_entries_limit, cm->cc_period );
++ cm->num_entries_limit, (long long)cm->cc_period );
+ bv.bv_val = c->cr_msg;
+ value_add_one( &c->rvalue_vals, &bv );
+ break;
+@@ -3875,12 +3875,12 @@ pc_cf_gen( ConfigArgs *c )
+ /* HEADS-UP: always print all;
+ * if optional == 0, ignore */
+ bv.bv_len = snprintf( c->cr_msg, sizeof( c->cr_msg ),
+- " %d %ld %ld %ld %ld",
++ " %d %lld %lld %lld %lld",
+ temp->attr_set_index,
+- temp->ttl,
+- temp->negttl,
+- temp->limitttl,
+- temp->ttr );
++ (long long)temp->ttl,
++ (long long)temp->negttl,
++ (long long)temp->limitttl,
++ (long long)temp->ttr );
+ bv.bv_len += temp->querystr.bv_len + 2;
+ bv.bv_val = ch_malloc( bv.bv_len+1 );
+ ptr = bv.bv_val;
+@@ -3897,9 +3897,9 @@ pc_cf_gen( ConfigArgs *c )
+ for (temp=qm->templates; temp; temp=temp->qmnext) {
+ if ( !temp->bindttr ) continue;
+ bv.bv_len = snprintf( c->cr_msg, sizeof( c->cr_msg ),
+- " %d %ld %s ",
++ " %d %lld %s ",
+ temp->attr_set_index,
+- temp->bindttr,
++ (long long)temp->bindttr,
+ ldap_pvt_scope2str( temp->bindscope ));
+ bv.bv_len += temp->bindbase.bv_len + temp->bindftemp.bv_len + 4;
+ bv.bv_val = ch_malloc( bv.bv_len + 1 );
+--- a/servers/slapd/syncrepl.c
++++ b/servers/slapd/syncrepl.c
+@@ -2395,8 +2395,8 @@ syncrepl_message_to_op(
+ op->o_callback = &cb;
+ slap_op_time( &op->o_time, &op->o_tincr );
+
+- Debug( LDAP_DEBUG_SYNC, "syncrepl_message_to_op: %s tid %x\n",
+- si->si_ridtxt, op->o_tid, 0 );
++ Debug( LDAP_DEBUG_SYNC, "syncrepl_message_to_op: %s tid %lx\n",
++ si->si_ridtxt, (unsigned long)op->o_tid, 0 );
+
+ switch( op->o_tag ) {
+ case LDAP_REQ_ADD:
+@@ -2905,8 +2905,8 @@ syncrepl_entry(
+ int freecsn = 1;
+
+ Debug( LDAP_DEBUG_SYNC,
+- "syncrepl_entry: %s LDAP_RES_SEARCH_ENTRY(LDAP_SYNC_%s) tid %x\n",
+- si->si_ridtxt, syncrepl_state2str( syncstate ), op->o_tid );
++ "syncrepl_entry: %s LDAP_RES_SEARCH_ENTRY(LDAP_SYNC_%s) tid %lx\n",
++ si->si_ridtxt, syncrepl_state2str( syncstate ), (unsigned long)op->o_tid );
+
+ if (( syncstate == LDAP_SYNC_PRESENT || syncstate == LDAP_SYNC_ADD ) ) {
+ if ( !si->si_refreshPresent && !si->si_refreshDone ) {
diff -Nru openldap-2.4.46+dfsg/debian/patches/fix-operator-precedence-mistake openldap-2.4.46+dfsg/debian/patches/fix-operator-precedence-mistake
--- openldap-2.4.46+dfsg/debian/patches/fix-operator-precedence-mistake 1970-01-01 01:00:00.000000000 +0100
+++ openldap-2.4.46+dfsg/debian/patches/fix-operator-precedence-mistake 2018-08-01 18:34:49.000000000 +0200
@@ -0,0 +1,11 @@
+--- a/clients/tools/common.c
++++ b/clients/tools/common.c
+@@ -2326,7 +2326,7 @@ void tool_print_ctrls(
+ /* known controls */
+ for ( j = 0; tool_ctrl_response[j].oid != NULL; j++ ) {
+ if ( strcmp( tool_ctrl_response[j].oid, ctrls[i]->ldctl_oid ) == 0 ) {
+- if ( !tool_ctrl_response[j].mask & tool_type ) {
++ if ( !(tool_ctrl_response[j].mask & tool_type) ) {
+ /* this control should not appear
+ * with this tool; warning? */
+ }
diff -Nru openldap-2.4.46+dfsg/debian/patches/fix-string-empty-check openldap-2.4.46+dfsg/debian/patches/fix-string-empty-check
--- openldap-2.4.46+dfsg/debian/patches/fix-string-empty-check 1970-01-01 01:00:00.000000000 +0100
+++ openldap-2.4.46+dfsg/debian/patches/fix-string-empty-check 2018-08-01 18:50:17.000000000 +0200
@@ -0,0 +1,46 @@
+--- a/servers/slapd/backend.c
++++ b/servers/slapd/backend.c
+@@ -1500,7 +1500,7 @@ fe_acl_group(
+ * or if filter parsing fails.
+ * In the latter case,
+ * we should give up. */
+- if ( ludp->lud_filter != NULL && ludp->lud_filter != '\0') {
++ if ( ludp->lud_filter != NULL && ludp->lud_filter[0] != '\0') {
+ filter = str2filter_x( op, ludp->lud_filter );
+ if ( filter == NULL ) {
+ /* give up... */
+--- a/servers/slapd/overlays/constraint.c
++++ b/servers/slapd/overlays/constraint.c
+@@ -446,7 +446,7 @@ constraint_cf_gen( ConfigArgs *c )
+ }
+
+ if ( ap.restrict_lud->lud_attrs != NULL ) {
+- if ( ap.restrict_lud->lud_attrs[0] != '\0' ) {
++ if ( ap.restrict_lud->lud_attrs[0] != NULL ) {
+ snprintf( c->cr_msg, sizeof( c->cr_msg ),
+ "%s %s: attrs not allowed in restrict URI %s\n",
+ c->argv[0], c->argv[1], arg);
+--- a/servers/slapd/syntax.c
++++ b/servers/slapd/syntax.c
+@@ -219,8 +219,8 @@ syn_add(
+ }
+
+ assert( (*lsei)->lsei_values != NULL );
+- if ( (*lsei)->lsei_values[0] == '\0'
+- || (*lsei)->lsei_values[1] != '\0' )
++ if ( (*lsei)->lsei_values[0] == NULL
++ || (*lsei)->lsei_values[1] != NULL )
+ {
+ Debug( LDAP_DEBUG_ANY, "syn_add(%s): exactly one substitute syntax must be present\n",
+ ssyn->ssyn_syn.syn_oid, 0, 0 );
+--- a/tests/progs/slapd-addel.c
++++ b/tests/progs/slapd-addel.c
+@@ -173,7 +173,7 @@ main( int argc, char **argv )
+
+ }
+
+- if (( attrs == NULL ) || ( *attrs == '\0' )) {
++ if (( attrs == NULL ) || ( *attrs == NULL )) {
+
+ fprintf( stderr, "%s: invalid attrs in file \"%s\".\n",
+ argv[0], filename );
diff -Nru openldap-2.4.46+dfsg/debian/patches/series openldap-2.4.46+dfsg/debian/patches/series
--- openldap-2.4.46+dfsg/debian/patches/series 2018-04-30 04:08:55.000000000 +0200
+++ openldap-2.4.46+dfsg/debian/patches/series 2018-08-01 18:41:26.000000000 +0200
@@ -23,3 +23,6 @@
no-bdb-ABI-second-guessing
ITS6035-olcauthzregex-needs-restart.patch
set-maintainer-name
+fix-operator-precedence-mistake
+fix-string-empty-check
+fix-format-strings
More information about the Pkg-openldap-devel
mailing list