diff options
18 files changed, 10841 insertions, 156 deletions
@@ -1,5 +1,7 @@ +clog package-*.xml *.tgz +*.tar.bz2 *.tar.gz *.tar.xz *.tar.xz.asc diff --git a/compat_reports/2.10.7_to_2.10.8/compat_report.html b/compat_reports/2.10.7_to_2.10.8/compat_report.html new file mode 100644 index 0000000..5de59bd --- /dev/null +++ b/compat_reports/2.10.7_to_2.10.8/compat_report.html @@ -0,0 +1,1028 @@ +<!-- kind:binary;verdict:compatible;affected:0;added:0;removed:0;type_problems_high:0;type_problems_medium:0;type_problems_low:2;interface_problems_high:0;interface_problems_medium:0;interface_problems_low:0;changed_constants:1;type_changes_other:1;constant_changes_other:6;tool_version:2.3 --> +<!-- kind:source;verdict:compatible;affected:0;added:0;removed:0;type_problems_high:0;type_problems_medium:0;type_problems_low:1;interface_problems_high:0;interface_problems_medium:0;interface_problems_low:0;changed_constants:4;type_changes_other:1;constant_changes_other:6;tool_version:2.3 --> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<meta name="viewport" content="width=device-width,initial-scale=1" /> +<meta name="keywords" content="libcouchbase, compatibility, API, ABI, report" /> +<meta name="description" content="API/ABI compatibility report for the libcouchbase library between 2.10.7 and 2.10.8 versions" /> +<title>libcouchbase: 2.10.7 to 2.10.8 compatibility report</title> +<style type="text/css"> +body { + font-family:Arial, sans-serif; + background-color:White; + color:Black; +} +hr { + color:Black; + background-color:Black; + height:1px; + border:0; +} +h1 { + margin-bottom:0px; + padding-bottom:0px; + font-size:1.625em; +} +h2 { + margin-bottom:0px; + padding-bottom:0px; + font-size:1.25em; + white-space:nowrap; +} +span.section { + font-weight:bold; + cursor:pointer; + color:#003E69; + white-space:nowrap; + margin-left:0.3125em; +} +span.new_sign { + font-weight:bold; + margin-left:1.65em; + color:#003E69; +} +span.new_sign_lbl { + margin-left:3em; + font-size:1em; + color:Black; +} +span:hover.section { + color:#336699; +} +span.sect_aff { + cursor:pointer; + padding-left:1.55em; + font-size:0.875em; + color:#cc3300; +} +span.sect_info { + cursor:pointer; + padding-left:1.55em; + font-size:0.875em; + color:Black; +} +span.ext { + font-weight:normal; +} +span.h_name { + color:#cc3300; + font-size:0.875em; + font-weight:bold; +} +div.h_list, div.lib_list { + font-size:0.94em; + padding-left:0.4em; +} +span.ns { + color:#408080; + font-size:0.94em; +} +span.lib_name { + color:Green; + font-size:0.875em; + font-weight:bold; +} +span.iname { + font-weight:bold; + color:#003E69; + margin-left:0.3125em; +} +span.iname_b { + font-weight:bold; +} +span.iname_a { + color:#333333; + font-weight:bold; + font-size:0.94em; +} +span.sym_p { + font-weight:normal; + white-space:normal; +} +span.sym_pd { + white-space:normal; +} +span.sym_p span, span.sym_pd span { + white-space:nowrap; +} +div.affect { + padding-left:1em; + padding-bottom:10px; + font-size:0.87em; + font-style:italic; + line-height:0.9em; +} +div.affected { + padding-left:1.9em; + padding-top:10px; +} +table.ptable { + border-collapse:collapse; + border:1px outset black; + margin-left:0.95em; + margin-top:3px; + margin-bottom:3px; + width:56.25em; +} +table.ptable td { + border:1px solid gray; + padding:3px; + font-size:0.875em; + text-align:left; + vertical-align:top; + max-width:28em; + word-wrap:break-word; +} +table.ptable th.pn { + width:2%; +} +table.ptable th.chg { + width:47%; +} +table.vtable { + border-collapse:collapse; + border:1px outset black; + margin-left:1.9em; + margin-top:0.7em; +} +table.vtable td { + border:1px solid gray; + padding:3px; + font-size:0.875em; + vertical-align:top; + max-width:450px; + word-wrap:break-word; +} +table.ptable th, table.vtable th { + background-color:#eeeeee; + font-weight:bold; + color:#333333; + font-family:Verdana, Arial; + font-size:0.875em; + border:1px solid gray; + text-align:center; + vertical-align:top; + white-space:nowrap; + padding:3px; +} +table.summary { + border-collapse:collapse; + border:1px outset black; +} +table.summary th { + background-color:#eeeeee; + font-weight:normal; + text-align:left; + font-size:0.94em; + white-space:nowrap; + border:1px inset gray; + padding:3px; +} +table.summary td { + text-align:right; + white-space:nowrap; + border:1px inset gray; + padding:3px 5px 3px 10px; +} +span.mngl { + padding-left:1em; + font-size:0.875em; + cursor:text; + color:#444444; + font-weight:bold; +} +span.pleft { + padding-left:2.5em; +} +span.sym_ver { + color:#333333; + white-space:nowrap; + font-family:"DejaVu Sans Mono", Monospace; +} +span.attr { + color:#333333; + font-weight:normal; +} +span.color_p { + font-style:italic; + color:Brown; +} +span.p { + font-style:italic; +} +span.fp { + font-style:italic; + background-color:#DCDCDC; +} +span.ttype { + font-weight:normal; +} +span.nowrap { + white-space:nowrap; +} +span.value { + font-weight:bold; +} +.passed { + background-color:#CCFFCC; + font-weight:normal; +} +.warning { + background-color:#F4F4AF; + font-weight:normal; +} +.failed { + background-color:#FFCCCC; + font-weight:normal; +} +.new { + background-color:#C6DEFF; + font-weight:normal; +} +.compatible { + background-color:#CCFFCC; + font-weight:normal; +} +.almost_compatible { + background-color:#FFDAA3; + font-weight:normal; +} +.incompatible { + background-color:#FFCCCC; + font-weight:normal; +} +.gray { + background-color:#DCDCDC; + font-weight:normal; +} +.top_ref { + font-size:0.69em; +} +.footer { + font-size:0.75em; +} + +.tabset { + float:left; +} +a.tab { + border:1px solid Black; + float:left; + margin:0px 5px -1px 0px; + padding:3px 5px 3px 5px; + position:relative; + font-size:0.875em; + background-color:#DDD; + text-decoration:none; + color:Black; +} +a.disabled:hover +{ + color:Black; + background:#EEE; +} +a.active:hover +{ + color:Black; + background:White; +} +a.active { + border-bottom-color:White; + background-color:White; +} +div.tab { + border-top:1px solid Black; + padding:0px; + width:100%; + clear:both; +} +</style> +<script type="text/javascript" language="JavaScript"> +<!-- +function showContent(header, id) +{ + e = document.getElementById(id); + if(e.style.display == 'none') + { + e.style.display = 'block'; + e.style.visibility = 'visible'; + header.innerHTML = header.innerHTML.replace(/\[[^0-9 ]\]/gi,"[−]"); + } + else + { + e.style.display = 'none'; + e.style.visibility = 'hidden'; + header.innerHTML = header.innerHTML.replace(/\[[^0-9 ]\]/gi,"[+]"); + } +} +function initTabs() +{ + var url = window.location.href; + if(url.indexOf('_Source_')!=-1 || url.indexOf('#Source')!=-1) + { + var tab1 = document.getElementById('BinaryID'); + var tab2 = document.getElementById('SourceID'); + tab1.className='tab disabled'; + tab2.className='tab active'; + } + var sets = document.getElementsByTagName('div'); + for (var i = 0; i < sets.length; i++) + { + if (sets[i].className.indexOf('tabset') != -1) + { + var tabs = []; + var links = sets[i].getElementsByTagName('a'); + for (var j = 0; j < links.length; j++) + { + if (links[j].className.indexOf('tab') != -1) + { + tabs.push(links[j]); + links[j].tabs = tabs; + var tab = document.getElementById(links[j].href.substr(links[j].href.indexOf('#') + 1)); + //reset all tabs on start + if (tab) + { + if (links[j].className.indexOf('active')!=-1) { + tab.style.display = 'block'; + } + else { + tab.style.display = 'none'; + } + } + links[j].onclick = function() + { + var tab = document.getElementById(this.href.substr(this.href.indexOf('#') + 1)); + if (tab) + { + //reset all tabs before change + for (var k = 0; k < this.tabs.length; k++) + { + document.getElementById(this.tabs[k].href.substr(this.tabs[k].href.indexOf('#') + 1)).style.display = 'none'; + this.tabs[k].className = this.tabs[k].className.replace('active', 'disabled'); + } + this.className = 'tab active'; + tab.style.display = 'block'; + // window.location.hash = this.id.replace('ID', ''); + return false; + } + } + } + } + } + } + if(url.indexOf('#')!=-1) { + location.href=location.href; + } +} +if (window.addEventListener) window.addEventListener('load', initTabs, false); +else if (window.attachEvent) window.attachEvent('onload', initTabs); +--> +</script> +</head> +<body><a name='Source'></a><a name='Binary'></a><a name='Top'></a><h1>API compatibility report for the <span style='color:Blue;'>libcouchbase</span> library between <span style='color:Red;'>2.10.7</span> and <span style='color:Red;'>2.10.8</span> versions on <span style='color:Blue;'>x86_64</span></h1> + + <br/> + <div class='tabset'> + <a id='BinaryID' href='#BinaryTab' class='tab active'>Binary<br/>Compatibility</a> + <a id='SourceID' href='#SourceTab' style='margin-left:3px' class='tab disabled'>Source<br/>Compatibility</a> + </div><div id='BinaryTab' class='tab'> +<h2>Test Info</h2><hr/> +<table class='summary'> +<tr><th>Library Name</th><td>libcouchbase</td></tr> +<tr><th>Version #1</th><td>2.10.7</td></tr> +<tr><th>Version #2</th><td>2.10.8</td></tr> +<tr><th>Arch</th><td>x86_64</td></tr> +<tr><th>GCC Version</th><td>9</td></tr> +<tr><th>Subject</th><td width='150px'>Binary Compatibility</td></tr> +</table> +<h2>Test Results</h2><hr/> +<table class='summary'><tr><th>Total Header Files</th><td><a href='#Headers' style='color:Blue;'>33</a></td></tr> +<tr><th>Total Libraries</th><td><a href='#Libs' style='color:Blue;'>1</a></td></tr> +<tr><th>Total Symbols / Types</th><td>286 / 465</td></tr> +<tr><th>Compatibility</th> +<td class='compatible'>100%</td> +</tr> +</table> +<h2>Problem Summary</h2><hr/> +<table class='summary'><tr><th></th><th style='text-align:center;'>Severity</th><th style='text-align:center;'>Count</th></tr><tr><th>Added Symbols</th><td>-</td><td>0</td></tr> +<tr><th>Removed Symbols</th><td>High</td><td>0</td></tr> +<tr><th rowspan='3'>Problems with<br/>Data Types</th><td>High</td><td>0</td></tr> +<tr><td>Medium</td><td>0</td></tr> +<tr><td>Low</td><td class='warning'><a href='#Type_Binary_Problems_Low' style='color:Blue;'>2</a></td></tr> +<tr><th rowspan='3'>Problems with<br/>Symbols</th><td>High</td><td>0</td></tr> +<tr><td>Medium</td><td>0</td></tr> +<tr><td>Low</td><td>0</td></tr> +<tr><th>Problems with<br/>Constants</th><td>Low</td><td class='warning'><a href='#Constant_Binary_Problems_Low' style='color:Blue;'>1</a></td></tr> +<tr><th>Other Changes<br/>in Data Types</th><td>-</td><td class='passed'><a href='#Other_Binary_Changes_In_Types' style='color:Blue;'>1</a></td></tr> +<tr><th>Other Changes<br/>in Constants</th><td>-</td><td class='passed'><a href='#Other_Binary_Changes_In_Constants' style='color:Blue;'>6</a></td></tr> +</table> + +<a name='Low_Risk_Binary_Problems'></a><a name='Type_Binary_Problems_Low'></a> +<h2>Problems with Data Types, Low Severity <span class='warning'> 2 </span></h2><hr/> +<span class='h_name'>vbucket.h</span><br/> +<span class="section" onclick="javascript:showContent(this, 'c_1')"> +<span class='ext'>[+]</span> <span class='ttype'>struct</span> lcbvb_CONFIGDIFF <span class='warning'> 2 </span></span> +<br/> +<div id="c_1" style="display:none;"> +<table class='ptable'><tr> +<th class='pn'></th> +<th class='chg'>Change</th> +<th>Effect</th></tr><tr> +<th>1</th> +<td>Field <b>n_repl_changed</b> has been added to this type.</td> +<td>1) This field will not be initialized by old clients.<br/>2) Size of the inclusive type has been changed.<br/><br/><b>NOTE</b>: this field should be accessed only from the new library functions, otherwise it may result in crash or incorrect behavior of applications.</td> +</tr> +<tr> +<th>2</th> +<td>Size of this type has been changed from <b>24</b> bytes to <b>32</b> bytes.</td> +<td>The fields or parameters of such data type may be incorrectly initialized or accessed by old client applications.</td> +</tr> +</table> +<span class="sect_aff" onclick="javascript:showContent(this, 'c_2')"> +[+] affected symbols: 6 (2.1%)</span> +<div id="c_2" style="display:none;"> +<div class='affected'><span class='iname_a'>lcbvb_compare <span class='sym_p'><span>( lcbvb_CONFIG* <i>from</i></span>, <span>lcbvb_CONFIG* <i>to</i></span> )</span></span><br/> +<div class='affect'>Return value (pointer) has base type 'struct lcbvb_CONFIGDIFF'.</div> +<span class='iname_a'>lcbvb_free_diff <span class='sym_p'><span>( struct lcbvb_CONFIGDIFF* <span class='fp'>diff</span></span> )</span></span><br/> +<div class='affect'>1st parameter 'diff' (pointer) has base type 'struct lcbvb_CONFIGDIFF'.</div> +<span class='iname_a'>lcbvb_get_changetype <span class='sym_p'><span>( struct lcbvb_CONFIGDIFF* <span class='fp'>diff</span></span> )</span></span><br/> +<div class='affect'>1st parameter 'diff' (pointer) has base type 'struct lcbvb_CONFIGDIFF'.</div> +<span class='iname_a'>vbucket_compare <span class='sym_p'><span>( lcbvb_CONFIG* <i>p1</i></span>, <span>lcbvb_CONFIG* <i>p2</i></span> )</span></span><br/> +<div class='affect'>Return value (pointer) has base type 'struct lcbvb_CONFIGDIFF'.</div> +<span class='iname_a'>vbucket_free_diff <span class='sym_p'><span>( struct lcbvb_CONFIGDIFF* <span class='fp'>p1</span></span> )</span></span><br/> +<div class='affect'>1st parameter 'p1' (pointer) has base type 'struct lcbvb_CONFIGDIFF'.</div> +<span class='iname_a'>vbucket_what_changed <span class='sym_p'><span>( struct lcbvb_CONFIGDIFF* <span class='fp'>diff</span></span> )</span></span><br/> +<div class='affect'>1st parameter 'diff' (pointer) has base type 'struct lcbvb_CONFIGDIFF'.</div> +</div> +</div> +<br/><br/></div> + +<br/> +<a class='top_ref' href='#Top'>to the top</a><br/> +<a name='Constant_Binary_Problems_Low'></a> +<h2>Problems with Constants, Low Severity <span class='warning'> 1 </span></h2><hr/> +<span class='h_name'>cntl.h</span><br/> +<span class="section" onclick="javascript:showContent(this, 'c_3')"> +<span class='ext'>[+]</span> LCB_CNTL__MAX</span> +<br/> +<div id="c_3" style="display:none;"> +<table class='ptable'> +<tr> +<th class='pn'></th> +<th class='chg'>Change</th> +<th>Effect</th> +</tr> +<tr> +<th>1</th> +<td>The value of constant <b>LCB_CNTL__MAX</b> has been changed from <b>0x5f</b> to <b>0x62</b>.</td> +<td>Applications will pass an old value of this constant as the parameter to the new-version library functions, that expect a new one. This may result in crash of incorrect behavior of applications.</td> +</tr> +</table> +<br/> +</div> + +<br/> +<a class='top_ref' href='#Top'>to the top</a><br/> +<a name='Other_Binary_Changes'></a><a name='Other_Binary_Changes_In_Types'></a> +<h2>Other Changes in Data Types <span class='passed'> 1 </span></h2><hr/> +<span class='h_name'>vbucket.h</span><br/> +<span class="section" onclick="javascript:showContent(this, 'c_4')"> +<span class='ext'>[+]</span> <span class='ttype'>enum</span> lcbvb_CHANGETYPE <span class='passed'> 1 </span></span> +<br/> +<div id="c_4" style="display:none;"> +<table class='ptable'><tr> +<th class='pn'></th> +<th class='chg'>Change</th> +<th>Effect</th></tr><tr> +<th>1</th> +<td>The member <b>LCBVB_REPLICAS_MODIFIED</b> with value <b>4</b> has been added.</td> +<td>No effect.</td> +</tr> +</table> +<span class="sect_aff" onclick="javascript:showContent(this, 'c_5')"> +[+] affected symbols: 2 (0.7%)</span> +<div id="c_5" style="display:none;"> +<div class='affected'><span class='iname_a'>lcbvb_get_changetype <span class='sym_p'><span>( struct lcbvb_CONFIGDIFF* <i>diff</i></span> )</span></span><br/> +<div class='affect'>Return value is of type 'enum lcbvb_CHANGETYPE'.</div> +<span class='iname_a'>vbucket_what_changed <span class='sym_p'><span>( struct lcbvb_CONFIGDIFF* <i>diff</i></span> )</span></span><br/> +<div class='affect'>Return value is of type 'enum lcbvb_CHANGETYPE'.</div> +</div> +</div> +<br/><br/></div> + +<br/> +<a class='top_ref' href='#Top'>to the top</a><br/> +<a name='Other_Binary_Changes_In_Constants'></a> +<h2>Other Changes in Constants <span class='passed'> 6 </span></h2><hr/> +<span class='h_name'>cntl.h</span><br/> +<span class="section" onclick="javascript:showContent(this, 'c_6')"> +<span class='ext'>[+]</span> LCB_CNTL_TCP_KEEPCNT</span> +<br/> +<div id="c_6" style="display:none;"> +<table class='ptable'> +<tr> +<th class='pn'></th> +<th class='chg'>Change</th> +<th>Effect</th> +</tr> +<tr> +<th>1</th> +<td>The constant <b>LCB_CNTL_TCP_KEEPCNT</b> with value <b>0x5f</b> has been added.</td> +<td>No effect.</td> +</tr> +</table> +<br/> +</div> + +<span class="section" onclick="javascript:showContent(this, 'c_7')"> +<span class='ext'>[+]</span> LCB_CNTL_TCP_KEEPIDLE</span> +<br/> +<div id="c_7" style="display:none;"> +<table class='ptable'> +<tr> +<th class='pn'></th> +<th class='chg'>Change</th> +<th>Effect</th> +</tr> +<tr> +<th>1</th> +<td>The constant <b>LCB_CNTL_TCP_KEEPIDLE</b> with value <b>0x60</b> has been added.</td> +<td>No effect.</td> +</tr> +</table> +<br/> +</div> + +<span class="section" onclick="javascript:showContent(this, 'c_8')"> +<span class='ext'>[+]</span> LCB_CNTL_TCP_KEEPINTVL</span> +<br/> +<div id="c_8" style="display:none;"> +<table class='ptable'> +<tr> +<th class='pn'></th> +<th class='chg'>Change</th> +<th>Effect</th> +</tr> +<tr> +<th>1</th> +<td>The constant <b>LCB_CNTL_TCP_KEEPINTVL</b> with value <b>0x61</b> has been added.</td> +<td>No effect.</td> +</tr> +</table> +<br/> +</div> + +<br/> +<span class='h_name'>iops.h</span><br/> +<span class="section" onclick="javascript:showContent(this, 'c_9')"> +<span class='ext'>[+]</span> LCB_IO_CNTL_TCP_KEEPCNT</span> +<br/> +<div id="c_9" style="display:none;"> +<table class='ptable'> +<tr> +<th class='pn'></th> +<th class='chg'>Change</th> +<th>Effect</th> +</tr> +<tr> +<th>1</th> +<td>The constant <b>LCB_IO_CNTL_TCP_KEEPCNT</b> with value <b>3</b> has been added.</td> +<td>No effect.</td> +</tr> +</table> +<br/> +</div> + +<span class="section" onclick="javascript:showContent(this, 'c_10')"> +<span class='ext'>[+]</span> LCB_IO_CNTL_TCP_KEEPIDLE</span> +<br/> +<div id="c_10" style="display:none;"> +<table class='ptable'> +<tr> +<th class='pn'></th> +<th class='chg'>Change</th> +<th>Effect</th> +</tr> +<tr> +<th>1</th> +<td>The constant <b>LCB_IO_CNTL_TCP_KEEPIDLE</b> with value <b>4</b> has been added.</td> +<td>No effect.</td> +</tr> +</table> +<br/> +</div> + +<span class="section" onclick="javascript:showContent(this, 'c_11')"> +<span class='ext'>[+]</span> LCB_IO_CNTL_TCP_KEEPINTVL</span> +<br/> +<div id="c_11" style="display:none;"> +<table class='ptable'> +<tr> +<th class='pn'></th> +<th class='chg'>Change</th> +<th>Effect</th> +</tr> +<tr> +<th>1</th> +<td>The constant <b>LCB_IO_CNTL_TCP_KEEPINTVL</b> with value <b>5</b> has been added.</td> +<td>No effect.</td> +</tr> +</table> +<br/> +</div> + +<br/> +<a class='top_ref' href='#Top'>to the top</a><br/> +<a name='Headers'></a><h2>Header Files <span class='gray'> 33 </span></h2><hr/> +<div class='h_list'> +_cxxwrap.h<br/> +analytics.h<br/> +api-legacy.h<br/> +api3.h<br/> +assert.h<br/> +auth.h<br/> +cbft.h<br/> +cntl-private.h<br/> +cntl.h<br/> +configuration.h<br/> +couchbase.h<br/> +crypto.h<br/> +deprecated.h<br/> +http.h<br/> +iops.h<br/> +ixmgmt.h<br/> +kvbuf.h<br/> +libev_io_opts.h<br/> +libevent_io_opts.h<br/> +libuv_compat.h<br/> +libuv_io_opts.h<br/> +metrics.h<br/> +n1ql.h<br/> +pktfwd.h<br/> +plugin-internal.h<br/> +select_io_opts.h<br/> +subdoc.h<br/> +sysdefs.h<br/> +tracing.h<br/> +vbucket.h<br/> +views.h<br/> +visibility.h<br/> +wsaerr.h<br/> +</div> +<br/><a class='top_ref' href='#Top'>to the top</a><br/> +<a name='Libs'></a><h2>Libraries <span class='gray'> 1 </span></h2><hr/> +<div class='lib_list'> +libcouchbase.so.2.0.69<br/> +</div> +<br/><a class='top_ref' href='#Top'>to the top</a><br/> +<br/><br/><br/></div><div id='SourceTab' class='tab'> +<h2>Test Info</h2><hr/> +<table class='summary'> +<tr><th>Library Name</th><td>libcouchbase</td></tr> +<tr><th>Version #1</th><td>2.10.7</td></tr> +<tr><th>Version #2</th><td>2.10.8</td></tr> +<tr><th>Arch</th><td>x86_64</td></tr> +<tr><th>Subject</th><td width='150px'>Source Compatibility</td></tr> +</table> +<h2>Test Results</h2><hr/> +<table class='summary'><tr><th>Total Header Files</th><td><a href='#Headers' style='color:Blue;'>33</a></td></tr> +<tr><th>Total Libraries</th><td><a href='#Libs' style='color:Blue;'>1</a></td></tr> +<tr><th>Total Symbols / Types</th><td>554 / 472</td></tr> +<tr><th>Compatibility</th> +<td class='compatible'>100%</td> +</tr> +</table> +<h2>Problem Summary</h2><hr/> +<table class='summary'><tr><th></th><th style='text-align:center;'>Severity</th><th style='text-align:center;'>Count</th></tr><tr><th>Added Symbols</th><td>-</td><td>0</td></tr> +<tr><th>Removed Symbols</th><td>High</td><td>0</td></tr> +<tr><th rowspan='3'>Problems with<br/>Data Types</th><td>High</td><td>0</td></tr> +<tr><td>Medium</td><td>0</td></tr> +<tr><td>Low</td><td class='warning'><a href='#Type_Source_Problems_Low' style='color:Blue;'>1</a></td></tr> +<tr><th rowspan='3'>Problems with<br/>Symbols</th><td>High</td><td>0</td></tr> +<tr><td>Medium</td><td>0</td></tr> +<tr><td>Low</td><td>0</td></tr> +<tr><th>Problems with<br/>Constants</th><td>Low</td><td class='warning'><a href='#Constant_Source_Problems_Low' style='color:Blue;'>4</a></td></tr> +<tr><th>Other Changes<br/>in Data Types</th><td>-</td><td class='passed'><a href='#Other_Source_Changes_In_Types' style='color:Blue;'>1</a></td></tr> +<tr><th>Other Changes<br/>in Constants</th><td>-</td><td class='passed'><a href='#Other_Source_Changes_In_Constants' style='color:Blue;'>6</a></td></tr> +</table> + +<a name='Low_Risk_Source_Problems'></a><a name='Type_Source_Problems_Low'></a> +<h2>Problems with Data Types, Low Severity <span class='warning'> 1 </span></h2><hr/> +<span class='h_name'>vbucket.h</span><br/> +<span class="section" onclick="javascript:showContent(this, 'c_12')"> +<span class='ext'>[+]</span> <span class='ttype'>struct</span> lcbvb_CONFIGDIFF <span class='warning'> 1 </span></span> +<br/> +<div id="c_12" style="display:none;"> +<table class='ptable'><tr> +<th class='pn'></th> +<th class='chg'>Change</th> +<th>Effect</th></tr><tr> +<th>1</th> +<td>Field <b>n_repl_changed</b> has been added to this type.</td> +<td>This field will not be initialized or used by old client applications.</td> +</tr> +</table> +<span class="sect_aff" onclick="javascript:showContent(this, 'c_13')"> +[+] affected symbols: 6 (1.1%)</span> +<div id="c_13" style="display:none;"> +<div class='affected'><span class='iname_a'>lcbvb_compare <span class='sym_p'><span>( lcbvb_CONFIG* <i>from</i></span>, <span>lcbvb_CONFIG* <i>to</i></span> )</span></span><br/> +<div class='affect'>Return value (pointer) has base type 'struct lcbvb_CONFIGDIFF'.</div> +<span class='iname_a'>lcbvb_free_diff <span class='sym_p'><span>( struct lcbvb_CONFIGDIFF* <span class='fp'>diff</span></span> )</span></span><br/> +<div class='affect'>1st parameter 'diff' (pointer) has base type 'struct lcbvb_CONFIGDIFF'.</div> +<span class='iname_a'>lcbvb_get_changetype <span class='sym_p'><span>( struct lcbvb_CONFIGDIFF* <span class='fp'>diff</span></span> )</span></span><br/> +<div class='affect'>1st parameter 'diff' (pointer) has base type 'struct lcbvb_CONFIGDIFF'.</div> +<span class='iname_a'>vbucket_compare <span class='sym_p'><span>( lcbvb_CONFIG* <i>p1</i></span>, <span>lcbvb_CONFIG* <i>p2</i></span> )</span></span><br/> +<div class='affect'>Return value (pointer) has base type 'struct lcbvb_CONFIGDIFF'.</div> +<span class='iname_a'>vbucket_free_diff <span class='sym_p'><span>( struct lcbvb_CONFIGDIFF* <span class='fp'>p1</span></span> )</span></span><br/> +<div class='affect'>1st parameter 'p1' (pointer) has base type 'struct lcbvb_CONFIGDIFF'.</div> +<span class='iname_a'>vbucket_what_changed <span class='sym_p'><span>( struct lcbvb_CONFIGDIFF* <span class='fp'>diff</span></span> )</span></span><br/> +<div class='affect'>1st parameter 'diff' (pointer) has base type 'struct lcbvb_CONFIGDIFF'.</div> +</div> +</div> +<br/><br/></div> + +<br/> +<a class='top_ref' href='#Top'>to the top</a><br/> +<a name='Constant_Source_Problems_Low'></a> +<h2>Problems with Constants, Low Severity <span class='warning'> 4 </span></h2><hr/> +<span class='h_name'>cntl.h</span><br/> +<span class="section" onclick="javascript:showContent(this, 'c_14')"> +<span class='ext'>[+]</span> LCB_CNTL__MAX</span> +<br/> +<div id="c_14" style="display:none;"> +<table class='ptable'> +<tr> +<th class='pn'></th> +<th class='chg'>Change</th> +<th>Effect</th> +</tr> +<tr> +<th>1</th> +<td>The value of constant <b>LCB_CNTL__MAX</b> has been changed from <b>0x5f</b> to <b>0x62</b>.</td> +<td>Recompilation of a client program may be broken.</td> +</tr> +</table> +<br/> +</div> + +<br/> +<span class='h_name'>configuration.h</span><br/> +<span class="section" onclick="javascript:showContent(this, 'c_15')"> +<span class='ext'>[+]</span> LCB_VERSION</span> +<br/> +<div id="c_15" style="display:none;"> +<table class='ptable'> +<tr> +<th class='pn'></th> +<th class='chg'>Change</th> +<th>Effect</th> +</tr> +<tr> +<th>1</th> +<td>The value of constant <b>LCB_VERSION</b> has been changed from <b>0x021007</b> to <b>0x021008</b>.</td> +<td>Recompilation of a client program may be broken.</td> +</tr> +</table> +<br/> +</div> + +<span class="section" onclick="javascript:showContent(this, 'c_16')"> +<span class='ext'>[+]</span> LCB_VERSION_CHANGESET</span> +<br/> +<div id="c_16" style="display:none;"> +<table class='ptable'> +<tr> +<th class='pn'></th> +<th class='chg'>Change</th> +<th>Effect</th> +</tr> +<tr> +<th>1</th> +<td>The value of constant <b>LCB_VERSION_CHANGESET</b> has been changed from <b>"ca7933953e924ef8bd8c374e544c9fee01940d39"</b> to <b>"9e58d34d89c759124635024a820dcf3ce7b63538"</b>.</td> +<td>Recompilation of a client program may be broken.</td> +</tr> +</table> +<br/> +</div> + +<span class="section" onclick="javascript:showContent(this, 'c_17')"> +<span class='ext'>[+]</span> LCB_VERSION_STRING</span> +<br/> +<div id="c_17" style="display:none;"> +<table class='ptable'> +<tr> +<th class='pn'></th> +<th class='chg'>Change</th> +<th>Effect</th> +</tr> +<tr> +<th>1</th> +<td>The value of constant <b>LCB_VERSION_STRING</b> has been changed from <b>"2.10.7"</b> to <b>"2.10.8"</b>.</td> +<td>Recompilation of a client program may be broken.</td> +</tr> +</table> +<br/> +</div> + +<br/> +<a class='top_ref' href='#Top'>to the top</a><br/> +<a name='Other_Source_Changes'></a><a name='Other_Source_Changes_In_Types'></a> +<h2>Other Changes in Data Types <span class='passed'> 1 </span></h2><hr/> +<span class='h_name'>vbucket.h</span><br/> +<span class="section" onclick="javascript:showContent(this, 'c_18')"> +<span class='ext'>[+]</span> <span class='ttype'>enum</span> lcbvb_CHANGETYPE <span class='passed'> 1 </span></span> +<br/> +<div id="c_18" style="display:none;"> +<table class='ptable'><tr> +<th class='pn'></th> +<th class='chg'>Change</th> +<th>Effect</th></tr><tr> +<th>1</th> +<td>The member <b>LCBVB_REPLICAS_MODIFIED</b> with value <b>4</b> has been added.</td> +<td>No effect.</td> +</tr> +</table> +<span class="sect_aff" onclick="javascript:showContent(this, 'c_19')"> +[+] affected symbols: 2 (0.4%)</span> +<div id="c_19" style="display:none;"> +<div class='affected'><span class='iname_a'>lcbvb_get_changetype <span class='sym_p'><span>( struct lcbvb_CONFIGDIFF* <i>diff</i></span> )</span></span><br/> +<div class='affect'>Return value is of type 'enum lcbvb_CHANGETYPE'.</div> +<span class='iname_a'>vbucket_what_changed <span class='sym_p'><span>( struct lcbvb_CONFIGDIFF* <i>diff</i></span> )</span></span><br/> +<div class='affect'>Return value is of type 'enum lcbvb_CHANGETYPE'.</div> +</div> +</div> +<br/><br/></div> + +<br/> +<a class='top_ref' href='#Top'>to the top</a><br/> +<a name='Other_Source_Changes_In_Constants'></a> +<h2>Other Changes in Constants <span class='passed'> 6 </span></h2><hr/> +<span class='h_name'>cntl.h</span><br/> +<span class="section" onclick="javascript:showContent(this, 'c_20')"> +<span class='ext'>[+]</span> LCB_CNTL_TCP_KEEPCNT</span> +<br/> +<div id="c_20" style="display:none;"> +<table class='ptable'> +<tr> +<th class='pn'></th> +<th class='chg'>Change</th> +<th>Effect</th> +</tr> +<tr> +<th>1</th> +<td>The constant <b>LCB_CNTL_TCP_KEEPCNT</b> with value <b>0x5f</b> has been added.</td> +<td>No effect.</td> +</tr> +</table> +<br/> +</div> + +<span class="section" onclick="javascript:showContent(this, 'c_21')"> +<span class='ext'>[+]</span> LCB_CNTL_TCP_KEEPIDLE</span> +<br/> +<div id="c_21" style="display:none;"> +<table class='ptable'> +<tr> +<th class='pn'></th> +<th class='chg'>Change</th> +<th>Effect</th> +</tr> +<tr> +<th>1</th> +<td>The constant <b>LCB_CNTL_TCP_KEEPIDLE</b> with value <b>0x60</b> has been added.</td> +<td>No effect.</td> +</tr> +</table> +<br/> +</div> + +<span class="section" onclick="javascript:showContent(this, 'c_22')"> +<span class='ext'>[+]</span> LCB_CNTL_TCP_KEEPINTVL</span> +<br/> +<div id="c_22" style="display:none;"> +<table class='ptable'> +<tr> +<th class='pn'></th> +<th class='chg'>Change</th> +<th>Effect</th> +</tr> +<tr> +<th>1</th> +<td>The constant <b>LCB_CNTL_TCP_KEEPINTVL</b> with value <b>0x61</b> has been added.</td> +<td>No effect.</td> +</tr> +</table> +<br/> +</div> + +<br/> +<span class='h_name'>iops.h</span><br/> +<span class="section" onclick="javascript:showContent(this, 'c_23')"> +<span class='ext'>[+]</span> LCB_IO_CNTL_TCP_KEEPCNT</span> +<br/> +<div id="c_23" style="display:none;"> +<table class='ptable'> +<tr> +<th class='pn'></th> +<th class='chg'>Change</th> +<th>Effect</th> +</tr> +<tr> +<th>1</th> +<td>The constant <b>LCB_IO_CNTL_TCP_KEEPCNT</b> with value <b>3</b> has been added.</td> +<td>No effect.</td> +</tr> +</table> +<br/> +</div> + +<span class="section" onclick="javascript:showContent(this, 'c_24')"> +<span class='ext'>[+]</span> LCB_IO_CNTL_TCP_KEEPIDLE</span> +<br/> +<div id="c_24" style="display:none;"> +<table class='ptable'> +<tr> +<th class='pn'></th> +<th class='chg'>Change</th> +<th>Effect</th> +</tr> +<tr> +<th>1</th> +<td>The constant <b>LCB_IO_CNTL_TCP_KEEPIDLE</b> with value <b>4</b> has been added.</td> +<td>No effect.</td> +</tr> +</table> +<br/> +</div> + +<span class="section" onclick="javascript:showContent(this, 'c_25')"> +<span class='ext'>[+]</span> LCB_IO_CNTL_TCP_KEEPINTVL</span> +<br/> +<div id="c_25" style="display:none;"> +<table class='ptable'> +<tr> +<th class='pn'></th> +<th class='chg'>Change</th> +<th>Effect</th> +</tr> +<tr> +<th>1</th> +<td>The constant <b>LCB_IO_CNTL_TCP_KEEPINTVL</b> with value <b>5</b> has been added.</td> +<td>No effect.</td> +</tr> +</table> +<br/> +</div> + +<br/> +<a class='top_ref' href='#Top'>to the top</a><br/> +<a name='Headers'></a><h2>Header Files <span class='gray'> 33 </span></h2><hr/> +<div class='h_list'> +_cxxwrap.h<br/> +analytics.h<br/> +api-legacy.h<br/> +api3.h<br/> +assert.h<br/> +auth.h<br/> +cbft.h<br/> +cntl-private.h<br/> +cntl.h<br/> +configuration.h<br/> +couchbase.h<br/> +crypto.h<br/> +deprecated.h<br/> +http.h<br/> +iops.h<br/> +ixmgmt.h<br/> +kvbuf.h<br/> +libev_io_opts.h<br/> +libevent_io_opts.h<br/> +libuv_compat.h<br/> +libuv_io_opts.h<br/> +metrics.h<br/> +n1ql.h<br/> +pktfwd.h<br/> +plugin-internal.h<br/> +select_io_opts.h<br/> +subdoc.h<br/> +sysdefs.h<br/> +tracing.h<br/> +vbucket.h<br/> +views.h<br/> +visibility.h<br/> +wsaerr.h<br/> +</div> +<br/><a class='top_ref' href='#Top'>to the top</a><br/> +<a name='Libs'></a><h2>Libraries <span class='gray'> 1 </span></h2><hr/> +<div class='lib_list'> +libcouchbase.so.2.0.69<br/> +</div> +<br/><a class='top_ref' href='#Top'>to the top</a><br/> +<br/><br/><br/></div><hr/> +<div class='footer' align='right'><i>Generated by <a href='https://github.com/lvc/abi-compliance-checker'>ABI Compliance Checker</a> 2.3  </i> +</div> +<br/> + +</body></html> diff --git a/compat_reports/3.0.6_to_3.0.7/compat_report.html b/compat_reports/3.0.6_to_3.0.7/compat_report.html new file mode 100644 index 0000000..172f94b --- /dev/null +++ b/compat_reports/3.0.6_to_3.0.7/compat_report.html @@ -0,0 +1,1170 @@ +<!-- kind:binary;verdict:incompatible;affected:3.9;added:0;removed:0;type_problems_high:0;type_problems_medium:7;type_problems_low:5;interface_problems_high:0;interface_problems_medium:0;interface_problems_low:0;changed_constants:1;type_changes_other:2;constant_changes_other:1;tool_version:2.3 --> +<!-- kind:source;verdict:compatible;affected:0;added:0;removed:0;type_problems_high:0;type_problems_medium:0;type_problems_low:4;interface_problems_high:0;interface_problems_medium:0;interface_problems_low:0;changed_constants:4;type_changes_other:4;constant_changes_other:1;tool_version:2.3 --> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<meta name="viewport" content="width=device-width,initial-scale=1" /> +<meta name="keywords" content="libcouchbase, compatibility, API, ABI, report" /> +<meta name="description" content="API/ABI compatibility report for the libcouchbase library between 3.0.6 and 3.0.7 versions" /> +<title>libcouchbase: 3.0.6 to 3.0.7 compatibility report</title> +<style type="text/css"> +body { + font-family:Arial, sans-serif; + background-color:White; + color:Black; +} +hr { + color:Black; + background-color:Black; + height:1px; + border:0; +} +h1 { + margin-bottom:0px; + padding-bottom:0px; + font-size:1.625em; +} +h2 { + margin-bottom:0px; + padding-bottom:0px; + font-size:1.25em; + white-space:nowrap; +} +span.section { + font-weight:bold; + cursor:pointer; + color:#003E69; + white-space:nowrap; + margin-left:0.3125em; +} +span.new_sign { + font-weight:bold; + margin-left:1.65em; + color:#003E69; +} +span.new_sign_lbl { + margin-left:3em; + font-size:1em; + color:Black; +} +span:hover.section { + color:#336699; +} +span.sect_aff { + cursor:pointer; + padding-left:1.55em; + font-size:0.875em; + color:#cc3300; +} +span.sect_info { + cursor:pointer; + padding-left:1.55em; + font-size:0.875em; + color:Black; +} +span.ext { + font-weight:normal; +} +span.h_name { + color:#cc3300; + font-size:0.875em; + font-weight:bold; +} +div.h_list, div.lib_list { + font-size:0.94em; + padding-left:0.4em; +} +span.ns { + color:#408080; + font-size:0.94em; +} +span.lib_name { + color:Green; + font-size:0.875em; + font-weight:bold; +} +span.iname { + font-weight:bold; + color:#003E69; + margin-left:0.3125em; +} +span.iname_b { + font-weight:bold; +} +span.iname_a { + color:#333333; + font-weight:bold; + font-size:0.94em; +} +span.sym_p { + font-weight:normal; + white-space:normal; +} +span.sym_pd { + white-space:normal; +} +span.sym_p span, span.sym_pd span { + white-space:nowrap; +} +div.affect { + padding-left:1em; + padding-bottom:10px; + font-size:0.87em; + font-style:italic; + line-height:0.9em; +} +div.affected { + padding-left:1.9em; + padding-top:10px; +} +table.ptable { + border-collapse:collapse; + border:1px outset black; + margin-left:0.95em; + margin-top:3px; + margin-bottom:3px; + width:56.25em; +} +table.ptable td { + border:1px solid gray; + padding:3px; + font-size:0.875em; + text-align:left; + vertical-align:top; + max-width:28em; + word-wrap:break-word; +} +table.ptable th.pn { + width:2%; +} +table.ptable th.chg { + width:47%; +} +table.vtable { + border-collapse:collapse; + border:1px outset black; + margin-left:1.9em; + margin-top:0.7em; +} +table.vtable td { + border:1px solid gray; + padding:3px; + font-size:0.875em; + vertical-align:top; + max-width:450px; + word-wrap:break-word; +} +table.ptable th, table.vtable th { + background-color:#eeeeee; + font-weight:bold; + color:#333333; + font-family:Verdana, Arial; + font-size:0.875em; + border:1px solid gray; + text-align:center; + vertical-align:top; + white-space:nowrap; + padding:3px; +} +table.summary { + border-collapse:collapse; + border:1px outset black; +} +table.summary th { + background-color:#eeeeee; + font-weight:normal; + text-align:left; + font-size:0.94em; + white-space:nowrap; + border:1px inset gray; + padding:3px; +} +table.summary td { + text-align:right; + white-space:nowrap; + border:1px inset gray; + padding:3px 5px 3px 10px; +} +span.mngl { + padding-left:1em; + font-size:0.875em; + cursor:text; + color:#444444; + font-weight:bold; +} +span.pleft { + padding-left:2.5em; +} +span.sym_ver { + color:#333333; + white-space:nowrap; + font-family:"DejaVu Sans Mono", Monospace; +} +span.attr { + color:#333333; + font-weight:normal; +} +span.color_p { + font-style:italic; + color:Brown; +} +span.p { + font-style:italic; +} +span.fp { + font-style:italic; + background-color:#DCDCDC; +} +span.ttype { + font-weight:normal; +} +span.nowrap { + white-space:nowrap; +} +span.value { + font-weight:bold; +} +.passed { + background-color:#CCFFCC; + font-weight:normal; +} +.warning { + background-color:#F4F4AF; + font-weight:normal; +} +.failed { + background-color:#FFCCCC; + font-weight:normal; +} +.new { + background-color:#C6DEFF; + font-weight:normal; +} +.compatible { + background-color:#CCFFCC; + font-weight:normal; +} +.almost_compatible { + background-color:#FFDAA3; + font-weight:normal; +} +.incompatible { + background-color:#FFCCCC; + font-weight:normal; +} +.gray { + background-color:#DCDCDC; + font-weight:normal; +} +.top_ref { + font-size:0.69em; +} +.footer { + font-size:0.75em; +} + +.tabset { + float:left; +} +a.tab { + border:1px solid Black; + float:left; + margin:0px 5px -1px 0px; + padding:3px 5px 3px 5px; + position:relative; + font-size:0.875em; + background-color:#DDD; + text-decoration:none; + color:Black; +} +a.disabled:hover +{ + color:Black; + background:#EEE; +} +a.active:hover +{ + color:Black; + background:White; +} +a.active { + border-bottom-color:White; + background-color:White; +} +div.tab { + border-top:1px solid Black; + padding:0px; + width:100%; + clear:both; +} +</style> +<script type="text/javascript" language="JavaScript"> +<!-- +function showContent(header, id) +{ + e = document.getElementById(id); + if(e.style.display == 'none') + { + e.style.display = 'block'; + e.style.visibility = 'visible'; + header.innerHTML = header.innerHTML.replace(/\[[^0-9 ]\]/gi,"[−]"); + } + else + { + e.style.display = 'none'; + e.style.visibility = 'hidden'; + header.innerHTML = header.innerHTML.replace(/\[[^0-9 ]\]/gi,"[+]"); + } +} +function initTabs() +{ + var url = window.location.href; + if(url.indexOf('_Source_')!=-1 || url.indexOf('#Source')!=-1) + { + var tab1 = document.getElementById('BinaryID'); + var tab2 = document.getElementById('SourceID'); + tab1.className='tab disabled'; + tab2.className='tab active'; + } + var sets = document.getElementsByTagName('div'); + for (var i = 0; i < sets.length; i++) + { + if (sets[i].className.indexOf('tabset') != -1) + { + var tabs = []; + var links = sets[i].getElementsByTagName('a'); + for (var j = 0; j < links.length; j++) + { + if (links[j].className.indexOf('tab') != -1) + { + tabs.push(links[j]); + links[j].tabs = tabs; + var tab = document.getElementById(links[j].href.substr(links[j].href.indexOf('#') + 1)); + //reset all tabs on start + if (tab) + { + if (links[j].className.indexOf('active')!=-1) { + tab.style.display = 'block'; + } + else { + tab.style.display = 'none'; + } + } + links[j].onclick = function() + { + var tab = document.getElementById(this.href.substr(this.href.indexOf('#') + 1)); + if (tab) + { + //reset all tabs before change + for (var k = 0; k < this.tabs.length; k++) + { + document.getElementById(this.tabs[k].href.substr(this.tabs[k].href.indexOf('#') + 1)).style.display = 'none'; + this.tabs[k].className = this.tabs[k].className.replace('active', 'disabled'); + } + this.className = 'tab active'; + tab.style.display = 'block'; + // window.location.hash = this.id.replace('ID', ''); + return false; + } + } + } + } + } + } + if(url.indexOf('#')!=-1) { + location.href=location.href; + } +} +if (window.addEventListener) window.addEventListener('load', initTabs, false); +else if (window.attachEvent) window.attachEvent('onload', initTabs); +--> +</script> +</head> +<body><a name='Source'></a><a name='Binary'></a><a name='Top'></a><h1>API compatibility report for the <span style='color:Blue;'>libcouchbase</span> library between <span style='color:Red;'>3.0.6</span> and <span style='color:Red;'>3.0.7</span> versions on <span style='color:Blue;'>x86_64</span></h1> + + <br/> + <div class='tabset'> + <a id='BinaryID' href='#BinaryTab' class='tab active'>Binary<br/>Compatibility</a> + <a id='SourceID' href='#SourceTab' style='margin-left:3px' class='tab disabled'>Source<br/>Compatibility</a> + </div><div id='BinaryTab' class='tab'> +<h2>Test Info</h2><hr/> +<table class='summary'> +<tr><th>Library Name</th><td>libcouchbase</td></tr> +<tr><th>Version #1</th><td>3.0.6</td></tr> +<tr><th>Version #2</th><td>3.0.7</td></tr> +<tr><th>Arch</th><td>x86_64</td></tr> +<tr><th>GCC Version</th><td>10</td></tr> +<tr><th>Subject</th><td width='150px'>Binary Compatibility</td></tr> +</table> +<h2>Test Results</h2><hr/> +<table class='summary'><tr><th>Total Header Files</th><td><a href='#Headers' style='color:Blue;'>25</a></td></tr> +<tr><th>Total Libraries</th><td><a href='#Libs' style='color:Blue;'>1</a></td></tr> +<tr><th>Total Symbols / Types</th><td>610 / 360</td></tr> +<tr><th>Compatibility</th> +<td class='warning'>96.1%</td> +</tr> +</table> +<h2>Problem Summary</h2><hr/> +<table class='summary'><tr><th></th><th style='text-align:center;'>Severity</th><th style='text-align:center;'>Count</th></tr><tr><th>Added Symbols</th><td>-</td><td>0</td></tr> +<tr><th>Removed Symbols</th><td>High</td><td>0</td></tr> +<tr><th rowspan='3'>Problems with<br/>Data Types</th><td>High</td><td>0</td></tr> +<tr><td>Medium</td><td class='failed'><a href='#Type_Binary_Problems_Medium' style='color:Blue;'>7</a></td></tr> +<tr><td>Low</td><td class='warning'><a href='#Type_Binary_Problems_Low' style='color:Blue;'>5</a></td></tr> +<tr><th rowspan='3'>Problems with<br/>Symbols</th><td>High</td><td>0</td></tr> +<tr><td>Medium</td><td>0</td></tr> +<tr><td>Low</td><td>0</td></tr> +<tr><th>Problems with<br/>Constants</th><td>Low</td><td class='warning'><a href='#Constant_Binary_Problems_Low' style='color:Blue;'>1</a></td></tr> +<tr><th>Other Changes<br/>in Data Types</th><td>-</td><td class='passed'><a href='#Other_Binary_Changes_In_Types' style='color:Blue;'>2</a></td></tr> +<tr><th>Other Changes<br/>in Constants</th><td>-</td><td class='passed'><a href='#Other_Binary_Changes_In_Constants' style='color:Blue;'>1</a></td></tr> +</table> + +<a name='Medium_Risk_Binary_Problems'></a><a name='Type_Binary_Problems_Medium'></a> +<h2>Problems with Data Types, Medium Severity <span class='failed'> 7 </span></h2><hr/> +<span class='h_name'>vbucket.h</span><br/> +<span class="section" onclick="javascript:showContent(this, 'c_1')"> +<span class='ext'>[+]</span> <span class='ttype'>struct</span> lcbvb_SERVER <span class='failed'> 5 </span></span> +<br/> +<div id="c_1" style="display:none;"> +<table class='ptable'><tr> +<th class='pn'></th> +<th class='chg'>Change</th> +<th>Effect</th></tr><tr> +<th>1</th> +<td>Field <b>eventingpath</b> has been added at the middle position of this structural type.</td> +<td>1) Size of the inclusive type has been changed.<br/>2) Layout of structure fields has been changed and therefore fields at higher positions of the structure definition may be incorrectly accessed by applications.</td> +</tr> +<tr> +<th>2</th> +<td>Size of field <b>alt_svc</b> has been changed from <b>112</b> bytes to <b>136</b> bytes.</td> +<td>1) Size of the inclusive type has been changed.<br/>2) Previous accesses of applications and library functions to this field and fields at higher positions of the structure definition may be broken.</td> +</tr> +<tr> +<th>3</th> +<td>Size of field <b>svc</b> has been changed from <b>112</b> bytes to <b>136</b> bytes.</td> +<td>1) Size of the inclusive type has been changed.<br/>2) Previous accesses of applications and library functions to this field and fields at higher positions of the structure definition may be broken.</td> +</tr> +<tr> +<th>4</th> +<td>Size of field <b>svc_ssl</b> has been changed from <b>112</b> bytes to <b>136</b> bytes.</td> +<td>1) Size of the inclusive type has been changed.<br/>2) Previous accesses of applications and library functions to this field and fields at higher positions of the structure definition may be broken.</td> +</tr> +<tr> +<th>5</th> +<td>Size of field <b>alt_svc_ssl</b> has been changed from <b>112</b> bytes to <b>136</b> bytes.</td> +<td>1) Size of the inclusive type has been changed.<br/>2) Previous accesses of applications and library functions to this field may be broken.</td> +</tr> +</table> +<span class="sect_aff" onclick="javascript:showContent(this, 'c_2')"> +[+] affected symbols: 48 (7.9%)</span> +<div id="c_2" style="display:none;"> +<div class='affected'><span class='iname_a'>lcbvb_compare <span class='sym_p'><span>( lcbvb_CONFIG* <span class='fp'>from</span></span>, <span>lcbvb_CONFIG* <i>to</i></span> )</span></span><br/> +<div class='affect'>Field 'from.servers' in 1st parameter 'from' (pointer) has base type 'struct lcbvb_SERVER'.</div> +<span class='iname_a'>lcbvb_create <span class='sym_p'>( )</span></span><br/> +<div class='affect'>Field 'retval.servers' in the return value (pointer) has base type 'struct lcbvb_SERVER'.</div> +<span class='iname_a'>lcbvb_destroy <span class='sym_p'><span>( lcbvb_CONFIG* <span class='fp'>conf</span></span> )</span></span><br/> +<div class='affect'>Field 'conf.servers' in 1st parameter 'conf' (pointer) has base type 'struct lcbvb_SERVER'.</div> +<span class='iname_a'>lcbvb_genconfig <span class='sym_p'><span>( lcbvb_CONFIG* <span class='fp'>vb</span></span>, <span>unsigned int <i>nservers</i></span>, <span>unsigned int <i>nreplica</i></span>, <span>unsigned int <i>nvbuckets</i></span> )</span></span><br/> +<div class='affect'>Field 'vb.servers' in 1st parameter 'vb' (pointer) has base type 'struct lcbvb_SERVER'.</div> +<span class='iname_a'>lcbvb_genconfig_ex <span class='sym_p'><span>( lcbvb_CONFIG* <i>vb</i></span>, <span>char const* <i>name</i></span>, <span>char const* <i>uuid</i></span>, <span>struct lcbvb_SERVER const* <span class='fp'>servers</span></span>, <span>unsigned int <i>nservers</i></span>, <span>unsigned int <i>nreplica</i></span>, <span>unsigned int <i>nvbuckets</i></span> )</span></span><br/> +<div class='affect'>4th parameter 'servers' (pointer) has base type 'struct lcbvb_SERVER'.</div> +<span class='iname_a'>lcbvb_genffmap <span class='sym_p'><span>( lcbvb_CONFIG* <span class='fp'>vb</span></span> )</span></span><br/> +<div class='affect'>Field 'vb.servers' in 1st parameter 'vb' (pointer) has base type 'struct lcbvb_SERVER'.</div> +<span class='iname_a'>lcbvb_get_capibase <span class='sym_p'><span>( lcbvb_CONFIG* <span class='fp'>cfg</span></span>, <span>unsigned int <i>ix</i></span>, <span>enum lcbvb_SVCMODE <i>mode</i></span> )</span></span><br/> +<div class='affect'>Field 'cfg.servers' in 1st parameter 'cfg' (pointer) has base type 'struct lcbvb_SERVER'.</div> +<span class='iname_a'>lcbvb_get_distmode <span class='sym_p'><span>( lcbvb_CONFIG const* <span class='fp'>cfg</span></span> )</span></span><br/> +<div class='affect'>Field 'cfg.servers' in 1st parameter 'cfg' (pointer) has base type 'struct lcbvb_SERVER'.</div> +<span class='iname_a'>lcbvb_get_error <span class='sym_p'><span>( lcbvb_CONFIG const* <span class='fp'>vbc</span></span> )</span></span><br/> +<div class='affect'>Field 'vbc.servers' in 1st parameter 'vbc' (pointer) has base type 'struct lcbvb_SERVER'.</div> +<span class='iname_a'>lcbvb_get_hostname <span class='sym_p'><span>( lcbvb_CONFIG const* <span class='fp'>cfg</span></span>, <span>unsigned int <i>ix</i></span> )</span></span><br/> +<div class='affect'>Field 'cfg.servers' in 1st parameter 'cfg' (pointer) has base type 'struct lcbvb_SERVER'.</div> + <b>...</b> +<br/> +</div> +</div> +<br/><br/></div> + +<span class="section" onclick="javascript:showContent(this, 'c_3')"> +<span class='ext'>[+]</span> <span class='ttype'>struct</span> lcbvb_SERVICES <span class='failed'> 2 </span></span> +<br/> +<div id="c_3" style="display:none;"> +<table class='ptable'><tr> +<th class='pn'></th> +<th class='chg'>Change</th> +<th>Effect</th></tr><tr> +<th>1</th> +<td>Field <b>eventing</b> has been added at the middle position of this structural type.</td> +<td>1) Size of the inclusive type has been changed.<br/>2) Layout of structure fields has been changed and therefore fields at higher positions of the structure definition may be incorrectly accessed by applications.</td> +</tr> +<tr> +<th>2</th> +<td>Field <b>eventing_base_</b> has been added at the middle position of this structural type.</td> +<td>1) Size of the inclusive type has been changed.<br/>2) Layout of structure fields has been changed and therefore fields at higher positions of the structure definition may be incorrectly accessed by applications.</td> +</tr> +</table> +<span class="sect_aff" onclick="javascript:showContent(this, 'c_4')"> +[+] affected symbols: 48 (7.9%)</span> +<div id="c_4" style="display:none;"> +<div class='affected'><span class='iname_a'>lcbvb_compare <span class='sym_p'><span>( lcbvb_CONFIG* <span class='fp'>from</span></span>, <span>lcbvb_CONFIG* <i>to</i></span> )</span></span><br/> +<div class='affect'>Field 'from.servers.svc' in 1st parameter 'from' (pointer) is of type 'struct lcbvb_SERVICES'.</div> +<span class='iname_a'>lcbvb_create <span class='sym_p'>( )</span></span><br/> +<div class='affect'>Field 'retval.servers.svc' in the return value (pointer) is of type 'struct lcbvb_SERVICES'.</div> +<span class='iname_a'>lcbvb_destroy <span class='sym_p'><span>( lcbvb_CONFIG* <span class='fp'>conf</span></span> )</span></span><br/> +<div class='affect'>Field 'conf.servers.svc' in 1st parameter 'conf' (pointer) is of type 'struct lcbvb_SERVICES'.</div> +<span class='iname_a'>lcbvb_genconfig <span class='sym_p'><span>( lcbvb_CONFIG* <span class='fp'>vb</span></span>, <span>unsigned int <i>nservers</i></span>, <span>unsigned int <i>nreplica</i></span>, <span>unsigned int <i>nvbuckets</i></span> )</span></span><br/> +<div class='affect'>Field 'vb.servers.svc' in 1st parameter 'vb' (pointer) is of type 'struct lcbvb_SERVICES'.</div> +<span class='iname_a'>lcbvb_genconfig_ex <span class='sym_p'><span>( lcbvb_CONFIG* <i>vb</i></span>, <span>char const* <i>name</i></span>, <span>char const* <i>uuid</i></span>, <span>struct lcbvb_SERVER const* <span class='fp'>servers</span></span>, <span>unsigned int <i>nservers</i></span>, <span>unsigned int <i>nreplica</i></span>, <span>unsigned int <i>nvbuckets</i></span> )</span></span><br/> +<div class='affect'>Field 'servers.alt_svc' in 4th parameter 'servers' (pointer) is of type 'struct lcbvb_SERVICES'.</div> +<span class='iname_a'>lcbvb_genffmap <span class='sym_p'><span>( lcbvb_CONFIG* <span class='fp'>vb</span></span> )</span></span><br/> +<div class='affect'>Field 'vb.servers.svc' in 1st parameter 'vb' (pointer) is of type 'struct lcbvb_SERVICES'.</div> +<span class='iname_a'>lcbvb_get_capibase <span class='sym_p'><span>( lcbvb_CONFIG* <span class='fp'>cfg</span></span>, <span>unsigned int <i>ix</i></span>, <span>enum lcbvb_SVCMODE <i>mode</i></span> )</span></span><br/> +<div class='affect'>Field 'cfg.servers.svc' in 1st parameter 'cfg' (pointer) is of type 'struct lcbvb_SERVICES'.</div> +<span class='iname_a'>lcbvb_get_distmode <span class='sym_p'><span>( lcbvb_CONFIG const* <span class='fp'>cfg</span></span> )</span></span><br/> +<div class='affect'>Field 'cfg.servers.svc' in 1st parameter 'cfg' (pointer) is of type 'struct lcbvb_SERVICES'.</div> +<span class='iname_a'>lcbvb_get_error <span class='sym_p'><span>( lcbvb_CONFIG const* <span class='fp'>vbc</span></span> )</span></span><br/> +<div class='affect'>Field 'vbc.servers.svc' in 1st parameter 'vbc' (pointer) is of type 'struct lcbvb_SERVICES'.</div> +<span class='iname_a'>lcbvb_get_hostname <span class='sym_p'><span>( lcbvb_CONFIG const* <span class='fp'>cfg</span></span>, <span>unsigned int <i>ix</i></span> )</span></span><br/> +<div class='affect'>Field 'cfg.servers.svc' in 1st parameter 'cfg' (pointer) is of type 'struct lcbvb_SERVICES'.</div> + <b>...</b> +<br/> +</div> +</div> +<br/><br/></div> + +<br/> +<a class='top_ref' href='#Top'>to the top</a><br/> +<a name='Low_Risk_Binary_Problems'></a><a name='Type_Binary_Problems_Low'></a> +<h2>Problems with Data Types, Low Severity <span class='warning'> 5 </span></h2><hr/> +<span class='h_name'>couchbase.h</span><br/> +<span class="section" onclick="javascript:showContent(this, 'c_5')"> +<span class='ext'>[+]</span> <span class='ttype'>enum</span> lcb_HTTP_TYPE <span class='warning'> 1 </span></span> +<br/> +<div id="c_5" style="display:none;"> +<table class='ptable'><tr> +<th class='pn'></th> +<th class='chg'>Change</th> +<th>Effect</th></tr><tr> +<th>1</th> +<td>Value of member <b>LCB_HTTP_TYPE_MAX</b> has been changed from <b>7</b> to <b>8</b>.</td> +<td>Applications may execute a wrong branch of code in the library and therefore change the behavior.</td> +</tr> +</table> +<span class="sect_aff" onclick="javascript:showContent(this, 'c_6')"> +[+] affected symbols: 1 (0.2%)</span> +<div id="c_6" style="display:none;"> +<div class='affected'><span class='iname_a'>lcb_cmdhttp_create <span class='sym_p'><span>( lcb_CMDHTTP** <i>cmd</i></span>, <span>enum lcb_HTTP_TYPE <span class='fp'>type</span></span> )</span></span><br/> +<div class='affect'>2nd parameter 'type' is of type 'enum lcb_HTTP_TYPE'.</div> +</div> +</div> +<br/><br/></div> + +<br/> +<span class='h_name'>vbucket.h</span><br/> +<span class="section" onclick="javascript:showContent(this, 'c_7')"> +<span class='ext'>[+]</span> <span class='ttype'>enum</span> lcbvb_SVCTYPE <span class='warning'> 1 </span></span> +<br/> +<div id="c_7" style="display:none;"> +<table class='ptable'><tr> +<th class='pn'></th> +<th class='chg'>Change</th> +<th>Effect</th></tr><tr> +<th>1</th> +<td>Value of member <b>LCBVB_SVCTYPE__MAX</b> has been changed from <b>8</b> to <b>9</b>.</td> +<td>Applications may execute a wrong branch of code in the library and therefore change the behavior.</td> +</tr> +</table> +<span class="sect_aff" onclick="javascript:showContent(this, 'c_8')"> +[+] affected symbols: 5 (0.8%)</span> +<div id="c_8" style="display:none;"> +<div class='affected'><span class='iname_a'>lcbvb_get_hostport <span class='sym_p'><span>( lcbvb_CONFIG* <i>cfg</i></span>, <span>unsigned int <i>ix</i></span>, <span>enum lcbvb_SVCTYPE <span class='fp'>type</span></span>, <span>enum lcbvb_SVCMODE <i>mode</i></span> )</span></span><br/> +<div class='affect'>3rd parameter 'type' is of type 'enum lcbvb_SVCTYPE'.</div> +<span class='iname_a'>lcbvb_get_port <span class='sym_p'><span>( lcbvb_CONFIG* <i>cfg</i></span>, <span>unsigned int <i>ix</i></span>, <span>enum lcbvb_SVCTYPE <span class='fp'>type</span></span>, <span>enum lcbvb_SVCMODE <i>mode</i></span> )</span></span><br/> +<div class='affect'>3rd parameter 'type' is of type 'enum lcbvb_SVCTYPE'.</div> +<span class='iname_a'>lcbvb_get_randhost <span class='sym_p'><span>( lcbvb_CONFIG const* <i>cfg</i></span>, <span>enum lcbvb_SVCTYPE <span class='fp'>type</span></span>, <span>enum lcbvb_SVCMODE <i>mode</i></span> )</span></span><br/> +<div class='affect'>2nd parameter 'type' is of type 'enum lcbvb_SVCTYPE'.</div> +<span class='iname_a'>lcbvb_get_randhost_ex <span class='sym_p'><span>( lcbvb_CONFIG const* <i>cfg</i></span>, <span>enum lcbvb_SVCTYPE <span class='fp'>type</span></span>, <span>enum lcbvb_SVCMODE <i>mode</i></span>, <span>int* <i>used</i></span> )</span></span><br/> +<div class='affect'>2nd parameter 'type' is of type 'enum lcbvb_SVCTYPE'.</div> +<span class='iname_a'>lcbvb_get_resturl <span class='sym_p'><span>( lcbvb_CONFIG* <i>cfg</i></span>, <span>unsigned int <i>ix</i></span>, <span>enum lcbvb_SVCTYPE <span class='fp'>type</span></span>, <span>enum lcbvb_SVCMODE <i>mode</i></span> )</span></span><br/> +<div class='affect'>3rd parameter 'type' is of type 'enum lcbvb_SVCTYPE'.</div> +</div> +</div> +<br/><br/></div> + +<span class="section" onclick="javascript:showContent(this, 'c_9')"> +<span class='ext'>[+]</span> <span class='ttype'>struct</span> lcbvb_SERVER <span class='warning'> 1 </span></span> +<br/> +<div id="c_9" style="display:none;"> +<table class='ptable'><tr> +<th class='pn'></th> +<th class='chg'>Change</th> +<th>Effect</th></tr><tr> +<th>1</th> +<td>Size of this type has been changed from <b>512</b> bytes to <b>616</b> bytes.</td> +<td>The fields or parameters of such data type may be incorrectly initialized or accessed by old client applications.</td> +</tr> +</table> +<span class="sect_aff" onclick="javascript:showContent(this, 'c_10')"> +[+] affected symbols: 48 (7.9%)</span> +<div id="c_10" style="display:none;"> +<div class='affected'><span class='iname_a'>lcbvb_compare <span class='sym_p'><span>( lcbvb_CONFIG* <span class='fp'>from</span></span>, <span>lcbvb_CONFIG* <i>to</i></span> )</span></span><br/> +<div class='affect'>Field 'from.servers' in 1st parameter 'from' (pointer) has base type 'struct lcbvb_SERVER'.</div> +<span class='iname_a'>lcbvb_create <span class='sym_p'>( )</span></span><br/> +<div class='affect'>Field 'retval.servers' in the return value (pointer) has base type 'struct lcbvb_SERVER'.</div> +<span class='iname_a'>lcbvb_destroy <span class='sym_p'><span>( lcbvb_CONFIG* <span class='fp'>conf</span></span> )</span></span><br/> +<div class='affect'>Field 'conf.servers' in 1st parameter 'conf' (pointer) has base type 'struct lcbvb_SERVER'.</div> +<span class='iname_a'>lcbvb_genconfig <span class='sym_p'><span>( lcbvb_CONFIG* <span class='fp'>vb</span></span>, <span>unsigned int <i>nservers</i></span>, <span>unsigned int <i>nreplica</i></span>, <span>unsigned int <i>nvbuckets</i></span> )</span></span><br/> +<div class='affect'>Field 'vb.servers' in 1st parameter 'vb' (pointer) has base type 'struct lcbvb_SERVER'.</div> +<span class='iname_a'>lcbvb_genconfig_ex <span class='sym_p'><span>( lcbvb_CONFIG* <i>vb</i></span>, <span>char const* <i>name</i></span>, <span>char const* <i>uuid</i></span>, <span>struct lcbvb_SERVER const* <span class='fp'>servers</span></span>, <span>unsigned int <i>nservers</i></span>, <span>unsigned int <i>nreplica</i></span>, <span>unsigned int <i>nvbuckets</i></span> )</span></span><br/> +<div class='affect'>4th parameter 'servers' (pointer) has base type 'struct lcbvb_SERVER'.</div> +<span class='iname_a'>lcbvb_genffmap <span class='sym_p'><span>( lcbvb_CONFIG* <span class='fp'>vb</span></span> )</span></span><br/> +<div class='affect'>Field 'vb.servers' in 1st parameter 'vb' (pointer) has base type 'struct lcbvb_SERVER'.</div> +<span class='iname_a'>lcbvb_get_capibase <span class='sym_p'><span>( lcbvb_CONFIG* <span class='fp'>cfg</span></span>, <span>unsigned int <i>ix</i></span>, <span>enum lcbvb_SVCMODE <i>mode</i></span> )</span></span><br/> +<div class='affect'>Field 'cfg.servers' in 1st parameter 'cfg' (pointer) has base type 'struct lcbvb_SERVER'.</div> +<span class='iname_a'>lcbvb_get_distmode <span class='sym_p'><span>( lcbvb_CONFIG const* <span class='fp'>cfg</span></span> )</span></span><br/> +<div class='affect'>Field 'cfg.servers' in 1st parameter 'cfg' (pointer) has base type 'struct lcbvb_SERVER'.</div> +<span class='iname_a'>lcbvb_get_error <span class='sym_p'><span>( lcbvb_CONFIG const* <span class='fp'>vbc</span></span> )</span></span><br/> +<div class='affect'>Field 'vbc.servers' in 1st parameter 'vbc' (pointer) has base type 'struct lcbvb_SERVER'.</div> +<span class='iname_a'>lcbvb_get_hostname <span class='sym_p'><span>( lcbvb_CONFIG const* <span class='fp'>cfg</span></span>, <span>unsigned int <i>ix</i></span> )</span></span><br/> +<div class='affect'>Field 'cfg.servers' in 1st parameter 'cfg' (pointer) has base type 'struct lcbvb_SERVER'.</div> + <b>...</b> +<br/> +</div> +</div> +<br/><br/></div> + +<span class="section" onclick="javascript:showContent(this, 'c_11')"> +<span class='ext'>[+]</span> <span class='ttype'>struct</span> lcbvb_SERVICES <span class='warning'> 2 </span></span> +<br/> +<div id="c_11" style="display:none;"> +<table class='ptable'><tr> +<th class='pn'></th> +<th class='chg'>Change</th> +<th>Effect</th></tr><tr> +<th>1</th> +<td>Size of this type has been changed from <b>112</b> bytes to <b>136</b> bytes.</td> +<td>The fields or parameters of such data type may be incorrectly initialized or accessed by old client applications.</td> +</tr> +<tr> +<th>2</th> +<td>Type of field <b>hoststrs</b> has been changed from <b>char*[8]</b> to <b>char*[9]</b>.</td> +<td>Replacement of the field data type may indicate a change in the semantic meaning of the field.</td> +</tr> +</table> +<span class="sect_aff" onclick="javascript:showContent(this, 'c_12')"> +[+] affected symbols: 48 (7.9%)</span> +<div id="c_12" style="display:none;"> +<div class='affected'><span class='iname_a'>lcbvb_compare <span class='sym_p'><span>( lcbvb_CONFIG* <span class='fp'>from</span></span>, <span>lcbvb_CONFIG* <i>to</i></span> )</span></span><br/> +<div class='affect'>Field 'from.servers.svc' in 1st parameter 'from' (pointer) is of type 'struct lcbvb_SERVICES'.</div> +<span class='iname_a'>lcbvb_create <span class='sym_p'>( )</span></span><br/> +<div class='affect'>Field 'retval.servers.svc' in the return value (pointer) is of type 'struct lcbvb_SERVICES'.</div> +<span class='iname_a'>lcbvb_destroy <span class='sym_p'><span>( lcbvb_CONFIG* <span class='fp'>conf</span></span> )</span></span><br/> +<div class='affect'>Field 'conf.servers.svc' in 1st parameter 'conf' (pointer) is of type 'struct lcbvb_SERVICES'.</div> +<span class='iname_a'>lcbvb_genconfig <span class='sym_p'><span>( lcbvb_CONFIG* <span class='fp'>vb</span></span>, <span>unsigned int <i>nservers</i></span>, <span>unsigned int <i>nreplica</i></span>, <span>unsigned int <i>nvbuckets</i></span> )</span></span><br/> +<div class='affect'>Field 'vb.servers.svc' in 1st parameter 'vb' (pointer) is of type 'struct lcbvb_SERVICES'.</div> +<span class='iname_a'>lcbvb_genconfig_ex <span class='sym_p'><span>( lcbvb_CONFIG* <i>vb</i></span>, <span>char const* <i>name</i></span>, <span>char const* <i>uuid</i></span>, <span>struct lcbvb_SERVER const* <span class='fp'>servers</span></span>, <span>unsigned int <i>nservers</i></span>, <span>unsigned int <i>nreplica</i></span>, <span>unsigned int <i>nvbuckets</i></span> )</span></span><br/> +<div class='affect'>Field 'servers.alt_svc' in 4th parameter 'servers' (pointer) is of type 'struct lcbvb_SERVICES'.</div> +<span class='iname_a'>lcbvb_genffmap <span class='sym_p'><span>( lcbvb_CONFIG* <span class='fp'>vb</span></span> )</span></span><br/> +<div class='affect'>Field 'vb.servers.svc' in 1st parameter 'vb' (pointer) is of type 'struct lcbvb_SERVICES'.</div> +<span class='iname_a'>lcbvb_get_capibase <span class='sym_p'><span>( lcbvb_CONFIG* <span class='fp'>cfg</span></span>, <span>unsigned int <i>ix</i></span>, <span>enum lcbvb_SVCMODE <i>mode</i></span> )</span></span><br/> +<div class='affect'>Field 'cfg.servers.svc' in 1st parameter 'cfg' (pointer) is of type 'struct lcbvb_SERVICES'.</div> +<span class='iname_a'>lcbvb_get_distmode <span class='sym_p'><span>( lcbvb_CONFIG const* <span class='fp'>cfg</span></span> )</span></span><br/> +<div class='affect'>Field 'cfg.servers.svc' in 1st parameter 'cfg' (pointer) is of type 'struct lcbvb_SERVICES'.</div> +<span class='iname_a'>lcbvb_get_error <span class='sym_p'><span>( lcbvb_CONFIG const* <span class='fp'>vbc</span></span> )</span></span><br/> +<div class='affect'>Field 'vbc.servers.svc' in 1st parameter 'vbc' (pointer) is of type 'struct lcbvb_SERVICES'.</div> +<span class='iname_a'>lcbvb_get_hostname <span class='sym_p'><span>( lcbvb_CONFIG const* <span class='fp'>cfg</span></span>, <span>unsigned int <i>ix</i></span> )</span></span><br/> +<div class='affect'>Field 'cfg.servers.svc' in 1st parameter 'cfg' (pointer) is of type 'struct lcbvb_SERVICES'.</div> + <b>...</b> +<br/> +</div> +</div> +<br/><br/></div> + +<br/> +<a class='top_ref' href='#Top'>to the top</a><br/> +<a name='Constant_Binary_Problems_Low'></a> +<h2>Problems with Constants, Low Severity <span class='warning'> 1 </span></h2><hr/> +<span class='h_name'>cntl.h</span><br/> +<span class="section" onclick="javascript:showContent(this, 'c_13')"> +<span class='ext'>[+]</span> LCB_CNTL__MAX</span> +<br/> +<div id="c_13" style="display:none;"> +<table class='ptable'> +<tr> +<th class='pn'></th> +<th class='chg'>Change</th> +<th>Effect</th> +</tr> +<tr> +<th>1</th> +<td>The value of constant <b>LCB_CNTL__MAX</b> has been changed from <b>0x63</b> to <b>0x64</b>.</td> +<td>Applications will pass an old value of this constant as the parameter to the new-version library functions, that expect a new one. This may result in crash of incorrect behavior of applications.</td> +</tr> +</table> +<br/> +</div> + +<br/> +<a class='top_ref' href='#Top'>to the top</a><br/> +<a name='Other_Binary_Changes'></a><a name='Other_Binary_Changes_In_Types'></a> +<h2>Other Changes in Data Types <span class='passed'> 2 </span></h2><hr/> +<span class='h_name'>couchbase.h</span><br/> +<span class="section" onclick="javascript:showContent(this, 'c_14')"> +<span class='ext'>[+]</span> <span class='ttype'>enum</span> lcb_HTTP_TYPE <span class='passed'> 1 </span></span> +<br/> +<div id="c_14" style="display:none;"> +<table class='ptable'><tr> +<th class='pn'></th> +<th class='chg'>Change</th> +<th>Effect</th></tr><tr> +<th>1</th> +<td>The member <b>LCB_HTTP_TYPE_EVENTING</b> with value <b>7</b> has been added.</td> +<td>No effect.</td> +</tr> +</table> +<span class="sect_aff" onclick="javascript:showContent(this, 'c_15')"> +[+] affected symbols: 1 (0.2%)</span> +<div id="c_15" style="display:none;"> +<div class='affected'><span class='iname_a'>lcb_cmdhttp_create <span class='sym_p'><span>( lcb_CMDHTTP** <i>cmd</i></span>, <span>enum lcb_HTTP_TYPE <span class='fp'>type</span></span> )</span></span><br/> +<div class='affect'>2nd parameter 'type' is of type 'enum lcb_HTTP_TYPE'.</div> +</div> +</div> +<br/><br/></div> + +<br/> +<span class='h_name'>vbucket.h</span><br/> +<span class="section" onclick="javascript:showContent(this, 'c_16')"> +<span class='ext'>[+]</span> <span class='ttype'>enum</span> lcbvb_SVCTYPE <span class='passed'> 1 </span></span> +<br/> +<div id="c_16" style="display:none;"> +<table class='ptable'><tr> +<th class='pn'></th> +<th class='chg'>Change</th> +<th>Effect</th></tr><tr> +<th>1</th> +<td>The member <b>LCBVB_SVCTYPE_EVENTING</b> with value <b>8</b> has been added.</td> +<td>No effect.</td> +</tr> +</table> +<span class="sect_aff" onclick="javascript:showContent(this, 'c_17')"> +[+] affected symbols: 5 (0.8%)</span> +<div id="c_17" style="display:none;"> +<div class='affected'><span class='iname_a'>lcbvb_get_hostport <span class='sym_p'><span>( lcbvb_CONFIG* <i>cfg</i></span>, <span>unsigned int <i>ix</i></span>, <span>enum lcbvb_SVCTYPE <span class='fp'>type</span></span>, <span>enum lcbvb_SVCMODE <i>mode</i></span> )</span></span><br/> +<div class='affect'>3rd parameter 'type' is of type 'enum lcbvb_SVCTYPE'.</div> +<span class='iname_a'>lcbvb_get_port <span class='sym_p'><span>( lcbvb_CONFIG* <i>cfg</i></span>, <span>unsigned int <i>ix</i></span>, <span>enum lcbvb_SVCTYPE <span class='fp'>type</span></span>, <span>enum lcbvb_SVCMODE <i>mode</i></span> )</span></span><br/> +<div class='affect'>3rd parameter 'type' is of type 'enum lcbvb_SVCTYPE'.</div> +<span class='iname_a'>lcbvb_get_randhost <span class='sym_p'><span>( lcbvb_CONFIG const* <i>cfg</i></span>, <span>enum lcbvb_SVCTYPE <span class='fp'>type</span></span>, <span>enum lcbvb_SVCMODE <i>mode</i></span> )</span></span><br/> +<div class='affect'>2nd parameter 'type' is of type 'enum lcbvb_SVCTYPE'.</div> +<span class='iname_a'>lcbvb_get_randhost_ex <span class='sym_p'><span>( lcbvb_CONFIG const* <i>cfg</i></span>, <span>enum lcbvb_SVCTYPE <span class='fp'>type</span></span>, <span>enum lcbvb_SVCMODE <i>mode</i></span>, <span>int* <i>used</i></span> )</span></span><br/> +<div class='affect'>2nd parameter 'type' is of type 'enum lcbvb_SVCTYPE'.</div> +<span class='iname_a'>lcbvb_get_resturl <span class='sym_p'><span>( lcbvb_CONFIG* <i>cfg</i></span>, <span>unsigned int <i>ix</i></span>, <span>enum lcbvb_SVCTYPE <span class='fp'>type</span></span>, <span>enum lcbvb_SVCMODE <i>mode</i></span> )</span></span><br/> +<div class='affect'>3rd parameter 'type' is of type 'enum lcbvb_SVCTYPE'.</div> +</div> +</div> +<br/><br/></div> + +<br/> +<a class='top_ref' href='#Top'>to the top</a><br/> +<a name='Other_Binary_Changes_In_Constants'></a> +<h2>Other Changes in Constants <span class='passed'> 1 </span></h2><hr/> +<span class='h_name'>cntl.h</span><br/> +<span class="section" onclick="javascript:showContent(this, 'c_18')"> +<span class='ext'>[+]</span> LCB_CNTL_SEARCH_TIMEOUT</span> +<br/> +<div id="c_18" style="display:none;"> +<table class='ptable'> +<tr> +<th class='pn'></th> +<th class='chg'>Change</th> +<th>Effect</th> +</tr> +<tr> +<th>1</th> +<td>The constant <b>LCB_CNTL_SEARCH_TIMEOUT</b> with value <b>0x63</b> has been added.</td> +<td>No effect.</td> +</tr> +</table> +<br/> +</div> + +<br/> +<a class='top_ref' href='#Top'>to the top</a><br/> +<a name='Headers'></a><h2>Header Files <span class='gray'> 25 </span></h2><hr/> +<div class='h_list'> +assert.h<br/> +auth.h<br/> +cntl-private.h<br/> +cntl.h<br/> +configuration.h<br/> +couchbase.h<br/> +crypto.h<br/> +iops.h<br/> +ixmgmt.h<br/> +kvbuf.h<br/> +libev_io_opts.h<br/> +libevent_io_opts.h<br/> +libuv_compat.h<br/> +libuv_io_opts.h<br/> +logger.h<br/> +metrics.h<br/> +pktfwd.h<br/> +plugin-internal.h<br/> +select_io_opts.h<br/> +sysdefs.h<br/> +tracing.h<br/> +utils.h<br/> +vbucket.h<br/> +visibility.h<br/> +wsaerr.h<br/> +</div> +<br/><a class='top_ref' href='#Top'>to the top</a><br/> +<a name='Libs'></a><h2>Libraries <span class='gray'> 1 </span></h2><hr/> +<div class='lib_list'> +libcouchbase.so.6.0.7<br/> +</div> +<br/><a class='top_ref' href='#Top'>to the top</a><br/> +<br/><br/><br/></div><div id='SourceTab' class='tab'> +<h2>Test Info</h2><hr/> +<table class='summary'> +<tr><th>Library Name</th><td>libcouchbase</td></tr> +<tr><th>Version #1</th><td>3.0.6</td></tr> +<tr><th>Version #2</th><td>3.0.7</td></tr> +<tr><th>Arch</th><td>x86_64</td></tr> +<tr><th>Subject</th><td width='150px'>Source Compatibility</td></tr> +</table> +<h2>Test Results</h2><hr/> +<table class='summary'><tr><th>Total Header Files</th><td><a href='#Headers' style='color:Blue;'>25</a></td></tr> +<tr><th>Total Libraries</th><td><a href='#Libs' style='color:Blue;'>1</a></td></tr> +<tr><th>Total Symbols / Types</th><td>615 / 366</td></tr> +<tr><th>Compatibility</th> +<td class='compatible'>100%</td> +</tr> +</table> +<h2>Problem Summary</h2><hr/> +<table class='summary'><tr><th></th><th style='text-align:center;'>Severity</th><th style='text-align:center;'>Count</th></tr><tr><th>Added Symbols</th><td>-</td><td>0</td></tr> +<tr><th>Removed Symbols</th><td>High</td><td>0</td></tr> +<tr><th rowspan='3'>Problems with<br/>Data Types</th><td>High</td><td>0</td></tr> +<tr><td>Medium</td><td>0</td></tr> +<tr><td>Low</td><td class='warning'><a href='#Type_Source_Problems_Low' style='color:Blue;'>4</a></td></tr> +<tr><th rowspan='3'>Problems with<br/>Symbols</th><td>High</td><td>0</td></tr> +<tr><td>Medium</td><td>0</td></tr> +<tr><td>Low</td><td>0</td></tr> +<tr><th>Problems with<br/>Constants</th><td>Low</td><td class='warning'><a href='#Constant_Source_Problems_Low' style='color:Blue;'>4</a></td></tr> +<tr><th>Other Changes<br/>in Data Types</th><td>-</td><td class='passed'><a href='#Other_Source_Changes_In_Types' style='color:Blue;'>4</a></td></tr> +<tr><th>Other Changes<br/>in Constants</th><td>-</td><td class='passed'><a href='#Other_Source_Changes_In_Constants' style='color:Blue;'>1</a></td></tr> +</table> + +<a name='Low_Risk_Source_Problems'></a><a name='Type_Source_Problems_Low'></a> +<h2>Problems with Data Types, Low Severity <span class='warning'> 4 </span></h2><hr/> +<span class='h_name'>vbucket.h</span><br/> +<span class="section" onclick="javascript:showContent(this, 'c_19')"> +<span class='ext'>[+]</span> <span class='ttype'>struct</span> lcbvb_SERVER <span class='warning'> 1 </span></span> +<br/> +<div id="c_19" style="display:none;"> +<table class='ptable'><tr> +<th class='pn'></th> +<th class='chg'>Change</th> +<th>Effect</th></tr><tr> +<th>1</th> +<td>Field <b>eventingpath</b> has been added to this type.</td> +<td>This field will not be initialized or used by old client applications.</td> +</tr> +</table> +<span class="sect_aff" onclick="javascript:showContent(this, 'c_20')"> +[+] affected symbols: 49 (8%)</span> +<div id="c_20" style="display:none;"> +<div class='affected'><span class='iname_a'>lcbvb_compare <span class='sym_p'><span>( lcbvb_CONFIG* <span class='fp'>from</span></span>, <span>lcbvb_CONFIG* <i>to</i></span> )</span></span><br/> +<div class='affect'>Field 'from.servers' in 1st parameter 'from' (pointer) has base type 'struct lcbvb_SERVER'.</div> +<span class='iname_a'>lcbvb_create <span class='sym_p'>( )</span></span><br/> +<div class='affect'>Field 'retval.servers' in the return value (pointer) has base type 'struct lcbvb_SERVER'.</div> +<span class='iname_a'>lcbvb_destroy <span class='sym_p'><span>( lcbvb_CONFIG* <span class='fp'>conf</span></span> )</span></span><br/> +<div class='affect'>Field 'conf.servers' in 1st parameter 'conf' (pointer) has base type 'struct lcbvb_SERVER'.</div> +<span class='iname_a'>lcbvb_genconfig <span class='sym_p'><span>( lcbvb_CONFIG* <span class='fp'>vb</span></span>, <span>unsigned int <i>nservers</i></span>, <span>unsigned int <i>nreplica</i></span>, <span>unsigned int <i>nvbuckets</i></span> )</span></span><br/> +<div class='affect'>Field 'vb.servers' in 1st parameter 'vb' (pointer) has base type 'struct lcbvb_SERVER'.</div> +<span class='iname_a'>lcbvb_genconfig_ex <span class='sym_p'><span>( lcbvb_CONFIG* <i>vb</i></span>, <span>char const* <i>name</i></span>, <span>char const* <i>uuid</i></span>, <span>struct lcbvb_SERVER const* <span class='fp'>servers</span></span>, <span>unsigned int <i>nservers</i></span>, <span>unsigned int <i>nreplica</i></span>, <span>unsigned int <i>nvbuckets</i></span> )</span></span><br/> +<div class='affect'>4th parameter 'servers' (pointer) has base type 'struct lcbvb_SERVER'.</div> +<span class='iname_a'>lcbvb_genffmap <span class='sym_p'><span>( lcbvb_CONFIG* <span class='fp'>vb</span></span> )</span></span><br/> +<div class='affect'>Field 'vb.servers' in 1st parameter 'vb' (pointer) has base type 'struct lcbvb_SERVER'.</div> +<span class='iname_a'>lcbvb_get_capibase <span class='sym_p'><span>( lcbvb_CONFIG* <span class='fp'>cfg</span></span>, <span>unsigned int <i>ix</i></span>, <span>enum lcbvb_SVCMODE <i>mode</i></span> )</span></span><br/> +<div class='affect'>Field 'cfg.servers' in 1st parameter 'cfg' (pointer) has base type 'struct lcbvb_SERVER'.</div> +<span class='iname_a'>lcbvb_get_distmode <span class='sym_p'><span>( lcbvb_CONFIG const* <span class='fp'>cfg</span></span> )</span></span><br/> +<div class='affect'>Field 'cfg.servers' in 1st parameter 'cfg' (pointer) has base type 'struct lcbvb_SERVER'.</div> +<span class='iname_a'>lcbvb_get_error <span class='sym_p'><span>( lcbvb_CONFIG const* <span class='fp'>vbc</span></span> )</span></span><br/> +<div class='affect'>Field 'vbc.servers' in 1st parameter 'vbc' (pointer) has base type 'struct lcbvb_SERVER'.</div> +<span class='iname_a'>lcbvb_get_hostname <span class='sym_p'><span>( lcbvb_CONFIG const* <span class='fp'>cfg</span></span>, <span>unsigned int <i>ix</i></span> )</span></span><br/> +<div class='affect'>Field 'cfg.servers' in 1st parameter 'cfg' (pointer) has base type 'struct lcbvb_SERVER'.</div> + <b>...</b> +<br/> +</div> +</div> +<br/><br/></div> + +<span class="section" onclick="javascript:showContent(this, 'c_21')"> +<span class='ext'>[+]</span> <span class='ttype'>struct</span> lcbvb_SERVICES <span class='warning'> 3 </span></span> +<br/> +<div id="c_21" style="display:none;"> +<table class='ptable'><tr> +<th class='pn'></th> +<th class='chg'>Change</th> +<th>Effect</th></tr><tr> +<th>1</th> +<td>Field <b>eventing</b> has been added to this type.</td> +<td>This field will not be initialized or used by old client applications.</td> +</tr> +<tr> +<th>2</th> +<td>Field <b>eventing_base_</b> has been added to this type.</td> +<td>This field will not be initialized or used by old client applications.</td> +</tr> +<tr> +<th>3</th> +<td>Type of field <b>hoststrs</b> has been changed from <b>char*[8]</b> to <b>char*[9]</b>.</td> +<td>Recompilation of a client program may be broken.</td> +</tr> +</table> +<span class="sect_aff" onclick="javascript:showContent(this, 'c_22')"> +[+] affected symbols: 49 (8%)</span> +<div id="c_22" style="display:none;"> +<div class='affected'><span class='iname_a'>lcbvb_compare <span class='sym_p'><span>( lcbvb_CONFIG* <span class='fp'>from</span></span>, <span>lcbvb_CONFIG* <i>to</i></span> )</span></span><br/> +<div class='affect'>Field 'from.servers.svc' in 1st parameter 'from' (pointer) is of type 'struct lcbvb_SERVICES'.</div> +<span class='iname_a'>lcbvb_create <span class='sym_p'>( )</span></span><br/> +<div class='affect'>Field 'retval.servers.svc' in the return value (pointer) is of type 'struct lcbvb_SERVICES'.</div> +<span class='iname_a'>lcbvb_destroy <span class='sym_p'><span>( lcbvb_CONFIG* <span class='fp'>conf</span></span> )</span></span><br/> +<div class='affect'>Field 'conf.servers.svc' in 1st parameter 'conf' (pointer) is of type 'struct lcbvb_SERVICES'.</div> +<span class='iname_a'>lcbvb_genconfig <span class='sym_p'><span>( lcbvb_CONFIG* <span class='fp'>vb</span></span>, <span>unsigned int <i>nservers</i></span>, <span>unsigned int <i>nreplica</i></span>, <span>unsigned int <i>nvbuckets</i></span> )</span></span><br/> +<div class='affect'>Field 'vb.servers.svc' in 1st parameter 'vb' (pointer) is of type 'struct lcbvb_SERVICES'.</div> +<span class='iname_a'>lcbvb_genconfig_ex <span class='sym_p'><span>( lcbvb_CONFIG* <i>vb</i></span>, <span>char const* <i>name</i></span>, <span>char const* <i>uuid</i></span>, <span>struct lcbvb_SERVER const* <span class='fp'>servers</span></span>, <span>unsigned int <i>nservers</i></span>, <span>unsigned int <i>nreplica</i></span>, <span>unsigned int <i>nvbuckets</i></span> )</span></span><br/> +<div class='affect'>Field 'servers.alt_svc' in 4th parameter 'servers' (pointer) is of type 'struct lcbvb_SERVICES'.</div> +<span class='iname_a'>lcbvb_genffmap <span class='sym_p'><span>( lcbvb_CONFIG* <span class='fp'>vb</span></span> )</span></span><br/> +<div class='affect'>Field 'vb.servers.svc' in 1st parameter 'vb' (pointer) is of type 'struct lcbvb_SERVICES'.</div> +<span class='iname_a'>lcbvb_get_capibase <span class='sym_p'><span>( lcbvb_CONFIG* <span class='fp'>cfg</span></span>, <span>unsigned int <i>ix</i></span>, <span>enum lcbvb_SVCMODE <i>mode</i></span> )</span></span><br/> +<div class='affect'>Field 'cfg.servers.svc' in 1st parameter 'cfg' (pointer) is of type 'struct lcbvb_SERVICES'.</div> +<span class='iname_a'>lcbvb_get_distmode <span class='sym_p'><span>( lcbvb_CONFIG const* <span class='fp'>cfg</span></span> )</span></span><br/> +<div class='affect'>Field 'cfg.servers.svc' in 1st parameter 'cfg' (pointer) is of type 'struct lcbvb_SERVICES'.</div> +<span class='iname_a'>lcbvb_get_error <span class='sym_p'><span>( lcbvb_CONFIG const* <span class='fp'>vbc</span></span> )</span></span><br/> +<div class='affect'>Field 'vbc.servers.svc' in 1st parameter 'vbc' (pointer) is of type 'struct lcbvb_SERVICES'.</div> +<span class='iname_a'>lcbvb_get_hostname <span class='sym_p'><span>( lcbvb_CONFIG const* <span class='fp'>cfg</span></span>, <span>unsigned int <i>ix</i></span> )</span></span><br/> +<div class='affect'>Field 'cfg.servers.svc' in 1st parameter 'cfg' (pointer) is of type 'struct lcbvb_SERVICES'.</div> + <b>...</b> +<br/> +</div> +</div> +<br/><br/></div> + +<br/> +<a class='top_ref' href='#Top'>to the top</a><br/> +<a name='Constant_Source_Problems_Low'></a> +<h2>Problems with Constants, Low Severity <span class='warning'> 4 </span></h2><hr/> +<span class='h_name'>cntl.h</span><br/> +<span class="section" onclick="javascript:showContent(this, 'c_23')"> +<span class='ext'>[+]</span> LCB_CNTL__MAX</span> +<br/> +<div id="c_23" style="display:none;"> +<table class='ptable'> +<tr> +<th class='pn'></th> +<th class='chg'>Change</th> +<th>Effect</th> +</tr> +<tr> +<th>1</th> +<td>The value of constant <b>LCB_CNTL__MAX</b> has been changed from <b>0x63</b> to <b>0x64</b>.</td> +<td>Recompilation of a client program may be broken.</td> +</tr> +</table> +<br/> +</div> + +<br/> +<span class='h_name'>configuration.h</span><br/> +<span class="section" onclick="javascript:showContent(this, 'c_24')"> +<span class='ext'>[+]</span> LCB_VERSION</span> +<br/> +<div id="c_24" style="display:none;"> +<table class='ptable'> +<tr> +<th class='pn'></th> +<th class='chg'>Change</th> +<th>Effect</th> +</tr> +<tr> +<th>1</th> +<td>The value of constant <b>LCB_VERSION</b> has been changed from <b>0x030006</b> to <b>0x030007</b>.</td> +<td>Recompilation of a client program may be broken.</td> +</tr> +</table> +<br/> +</div> + +<span class="section" onclick="javascript:showContent(this, 'c_25')"> +<span class='ext'>[+]</span> LCB_VERSION_CHANGESET</span> +<br/> +<div id="c_25" style="display:none;"> +<table class='ptable'> +<tr> +<th class='pn'></th> +<th class='chg'>Change</th> +<th>Effect</th> +</tr> +<tr> +<th>1</th> +<td>The value of constant <b>LCB_VERSION_CHANGESET</b> has been changed from <b>"e7b53f01b5c8653e4f4c3ea87e6e1af9c1277a34"</b> to <b>"d2d3666e269b41413408aaae96eb289f1cb4f8ec"</b>.</td> +<td>Recompilation of a client program may be broken.</td> +</tr> +</table> +<br/> +</div> + +<span class="section" onclick="javascript:showContent(this, 'c_26')"> +<span class='ext'>[+]</span> LCB_VERSION_STRING</span> +<br/> +<div id="c_26" style="display:none;"> +<table class='ptable'> +<tr> +<th class='pn'></th> +<th class='chg'>Change</th> +<th>Effect</th> +</tr> +<tr> +<th>1</th> +<td>The value of constant <b>LCB_VERSION_STRING</b> has been changed from <b>"3.0.6"</b> to <b>"3.0.7"</b>.</td> +<td>Recompilation of a client program may be broken.</td> +</tr> +</table> +<br/> +</div> + +<br/> +<a class='top_ref' href='#Top'>to the top</a><br/> +<a name='Other_Source_Changes'></a><a name='Other_Source_Changes_In_Types'></a> +<h2>Other Changes in Data Types <span class='passed'> 4 </span></h2><hr/> +<span class='h_name'>couchbase.h</span><br/> +<span class="section" onclick="javascript:showContent(this, 'c_27')"> +<span class='ext'>[+]</span> <span class='ttype'>enum</span> lcb_HTTP_TYPE <span class='passed'> 2 </span></span> +<br/> +<div id="c_27" style="display:none;"> +<table class='ptable'><tr> +<th class='pn'></th> +<th class='chg'>Change</th> +<th>Effect</th></tr><tr> +<th>1</th> +<td>The member <b>LCB_HTTP_TYPE_EVENTING</b> with value <b>7</b> has been added.</td> +<td>No effect.</td> +</tr> +<tr> +<th>2</th> +<td>Value of member <b>LCB_HTTP_TYPE_MAX</b> has been changed from <b>7</b> to <b>8</b>.</td> +<td>No effect.</td> +</tr> +</table> +<span class="sect_aff" onclick="javascript:showContent(this, 'c_28')"> +[+] affected symbols: 1 (0.2%)</span> +<div id="c_28" style="display:none;"> +<div class='affected'><span class='iname_a'>lcb_cmdhttp_create <span class='sym_p'><span>( lcb_CMDHTTP** <i>cmd</i></span>, <span>enum lcb_HTTP_TYPE <span class='fp'>type</span></span> )</span></span><br/> +<div class='affect'>2nd parameter 'type' is of type 'enum lcb_HTTP_TYPE'.</div> +</div> +</div> +<br/><br/></div> + +<br/> +<span class='h_name'>vbucket.h</span><br/> +<span class="section" onclick="javascript:showContent(this, 'c_29')"> +<span class='ext'>[+]</span> <span class='ttype'>enum</span> lcbvb_SVCTYPE <span class='passed'> 2 </span></span> +<br/> +<div id="c_29" style="display:none;"> +<table class='ptable'><tr> +<th class='pn'></th> +<th class='chg'>Change</th> +<th>Effect</th></tr><tr> +<th>1</th> +<td>The member <b>LCBVB_SVCTYPE_EVENTING</b> with value <b>8</b> has been added.</td> +<td>No effect.</td> +</tr> +<tr> +<th>2</th> +<td>Value of member <b>LCBVB_SVCTYPE__MAX</b> has been changed from <b>8</b> to <b>9</b>.</td> +<td>No effect.</td> +</tr> +</table> +<span class="sect_aff" onclick="javascript:showContent(this, 'c_30')"> +[+] affected symbols: 5 (0.8%)</span> +<div id="c_30" style="display:none;"> +<div class='affected'><span class='iname_a'>lcbvb_get_hostport <span class='sym_p'><span>( lcbvb_CONFIG* <i>cfg</i></span>, <span>unsigned int <i>ix</i></span>, <span>enum lcbvb_SVCTYPE <span class='fp'>type</span></span>, <span>enum lcbvb_SVCMODE <i>mode</i></span> )</span></span><br/> +<div class='affect'>3rd parameter 'type' is of type 'enum lcbvb_SVCTYPE'.</div> +<span class='iname_a'>lcbvb_get_port <span class='sym_p'><span>( lcbvb_CONFIG* <i>cfg</i></span>, <span>unsigned int <i>ix</i></span>, <span>enum lcbvb_SVCTYPE <span class='fp'>type</span></span>, <span>enum lcbvb_SVCMODE <i>mode</i></span> )</span></span><br/> +<div class='affect'>3rd parameter 'type' is of type 'enum lcbvb_SVCTYPE'.</div> +<span class='iname_a'>lcbvb_get_randhost <span class='sym_p'><span>( lcbvb_CONFIG const* <i>cfg</i></span>, <span>enum lcbvb_SVCTYPE <span class='fp'>type</span></span>, <span>enum lcbvb_SVCMODE <i>mode</i></span> )</span></span><br/> +<div class='affect'>2nd parameter 'type' is of type 'enum lcbvb_SVCTYPE'.</div> +<span class='iname_a'>lcbvb_get_randhost_ex <span class='sym_p'><span>( lcbvb_CONFIG const* <i>cfg</i></span>, <span>enum lcbvb_SVCTYPE <span class='fp'>type</span></span>, <span>enum lcbvb_SVCMODE <i>mode</i></span>, <span>int* <i>used</i></span> )</span></span><br/> +<div class='affect'>2nd parameter 'type' is of type 'enum lcbvb_SVCTYPE'.</div> +<span class='iname_a'>lcbvb_get_resturl <span class='sym_p'><span>( lcbvb_CONFIG* <i>cfg</i></span>, <span>unsigned int <i>ix</i></span>, <span>enum lcbvb_SVCTYPE <span class='fp'>type</span></span>, <span>enum lcbvb_SVCMODE <i>mode</i></span> )</span></span><br/> +<div class='affect'>3rd parameter 'type' is of type 'enum lcbvb_SVCTYPE'.</div> +</div> +</div> +<br/><br/></div> + +<br/> +<a class='top_ref' href='#Top'>to the top</a><br/> +<a name='Other_Source_Changes_In_Constants'></a> +<h2>Other Changes in Constants <span class='passed'> 1 </span></h2><hr/> +<span class='h_name'>cntl.h</span><br/> +<span class="section" onclick="javascript:showContent(this, 'c_31')"> +<span class='ext'>[+]</span> LCB_CNTL_SEARCH_TIMEOUT</span> +<br/> +<div id="c_31" style="display:none;"> +<table class='ptable'> +<tr> +<th class='pn'></th> +<th class='chg'>Change</th> +<th>Effect</th> +</tr> +<tr> +<th>1</th> +<td>The constant <b>LCB_CNTL_SEARCH_TIMEOUT</b> with value <b>0x63</b> has been added.</td> +<td>No effect.</td> +</tr> +</table> +<br/> +</div> + +<br/> +<a class='top_ref' href='#Top'>to the top</a><br/> +<a name='Headers'></a><h2>Header Files <span class='gray'> 25 </span></h2><hr/> +<div class='h_list'> +assert.h<br/> +auth.h<br/> +cntl-private.h<br/> +cntl.h<br/> +configuration.h<br/> +couchbase.h<br/> +crypto.h<br/> +iops.h<br/> +ixmgmt.h<br/> +kvbuf.h<br/> +libev_io_opts.h<br/> +libevent_io_opts.h<br/> +libuv_compat.h<br/> +libuv_io_opts.h<br/> +logger.h<br/> +metrics.h<br/> +pktfwd.h<br/> +plugin-internal.h<br/> +select_io_opts.h<br/> +sysdefs.h<br/> +tracing.h<br/> +utils.h<br/> +vbucket.h<br/> +visibility.h<br/> +wsaerr.h<br/> +</div> +<br/><a class='top_ref' href='#Top'>to the top</a><br/> +<a name='Libs'></a><h2>Libraries <span class='gray'> 1 </span></h2><hr/> +<div class='lib_list'> +libcouchbase.so.6.0.7<br/> +</div> +<br/><a class='top_ref' href='#Top'>to the top</a><br/> +<br/><br/><br/></div><hr/> +<div class='footer' align='right'><i>Generated by <a href='https://github.com/lvc/abi-compliance-checker'>ABI Compliance Checker</a> 2.3  </i> +</div> +<br/> + +</body></html> diff --git a/compat_reports/3.0.7_to_3.1.0/compat_report.html b/compat_reports/3.0.7_to_3.1.0/compat_report.html new file mode 100644 index 0000000..e212d9a --- /dev/null +++ b/compat_reports/3.0.7_to_3.1.0/compat_report.html @@ -0,0 +1,692 @@ +<!-- kind:binary;verdict:compatible;affected:0;added:2;removed:0;type_problems_high:0;type_problems_medium:0;type_problems_low:0;interface_problems_high:0;interface_problems_medium:0;interface_problems_low:0;changed_constants:0;type_changes_other:1;tool_version:2.3 --> +<!-- kind:source;verdict:compatible;affected:0;added:2;removed:0;type_problems_high:0;type_problems_medium:0;type_problems_low:0;interface_problems_high:0;interface_problems_medium:0;interface_problems_low:0;changed_constants:3;type_changes_other:1;tool_version:2.3 --> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<meta name="viewport" content="width=device-width,initial-scale=1" /> +<meta name="keywords" content="libcouchbase, compatibility, API, ABI, report" /> +<meta name="description" content="API/ABI compatibility report for the libcouchbase library between 3.0.7 and 3.1.0 versions" /> +<title>libcouchbase: 3.0.7 to 3.1.0 compatibility report</title> +<style type="text/css"> +body { + font-family:Arial, sans-serif; + background-color:White; + color:Black; +} +hr { + color:Black; + background-color:Black; + height:1px; + border:0; +} +h1 { + margin-bottom:0px; + padding-bottom:0px; + font-size:1.625em; +} +h2 { + margin-bottom:0px; + padding-bottom:0px; + font-size:1.25em; + white-space:nowrap; +} +span.section { + font-weight:bold; + cursor:pointer; + color:#003E69; + white-space:nowrap; + margin-left:0.3125em; +} +span.new_sign { + font-weight:bold; + margin-left:1.65em; + color:#003E69; +} +span.new_sign_lbl { + margin-left:3em; + font-size:1em; + color:Black; +} +span:hover.section { + color:#336699; +} +span.sect_aff { + cursor:pointer; + padding-left:1.55em; + font-size:0.875em; + color:#cc3300; +} +span.sect_info { + cursor:pointer; + padding-left:1.55em; + font-size:0.875em; + color:Black; +} +span.ext { + font-weight:normal; +} +span.h_name { + color:#cc3300; + font-size:0.875em; + font-weight:bold; +} +div.h_list, div.lib_list { + font-size:0.94em; + padding-left:0.4em; +} +span.ns { + color:#408080; + font-size:0.94em; +} +span.lib_name { + color:Green; + font-size:0.875em; + font-weight:bold; +} +span.iname { + font-weight:bold; + color:#003E69; + margin-left:0.3125em; +} +span.iname_b { + font-weight:bold; +} +span.iname_a { + color:#333333; + font-weight:bold; + font-size:0.94em; +} +span.sym_p { + font-weight:normal; + white-space:normal; +} +span.sym_pd { + white-space:normal; +} +span.sym_p span, span.sym_pd span { + white-space:nowrap; +} +div.affect { + padding-left:1em; + padding-bottom:10px; + font-size:0.87em; + font-style:italic; + line-height:0.9em; +} +div.affected { + padding-left:1.9em; + padding-top:10px; +} +table.ptable { + border-collapse:collapse; + border:1px outset black; + margin-left:0.95em; + margin-top:3px; + margin-bottom:3px; + width:56.25em; +} +table.ptable td { + border:1px solid gray; + padding:3px; + font-size:0.875em; + text-align:left; + vertical-align:top; + max-width:28em; + word-wrap:break-word; +} +table.ptable th.pn { + width:2%; +} +table.ptable th.chg { + width:47%; +} +table.vtable { + border-collapse:collapse; + border:1px outset black; + margin-left:1.9em; + margin-top:0.7em; +} +table.vtable td { + border:1px solid gray; + padding:3px; + font-size:0.875em; + vertical-align:top; + max-width:450px; + word-wrap:break-word; +} +table.ptable th, table.vtable th { + background-color:#eeeeee; + font-weight:bold; + color:#333333; + font-family:Verdana, Arial; + font-size:0.875em; + border:1px solid gray; + text-align:center; + vertical-align:top; + white-space:nowrap; + padding:3px; +} +table.summary { + border-collapse:collapse; + border:1px outset black; +} +table.summary th { + background-color:#eeeeee; + font-weight:normal; + text-align:left; + font-size:0.94em; + white-space:nowrap; + border:1px inset gray; + padding:3px; +} +table.summary td { + text-align:right; + white-space:nowrap; + border:1px inset gray; + padding:3px 5px 3px 10px; +} +span.mngl { + padding-left:1em; + font-size:0.875em; + cursor:text; + color:#444444; + font-weight:bold; +} +span.pleft { + padding-left:2.5em; +} +span.sym_ver { + color:#333333; + white-space:nowrap; + font-family:"DejaVu Sans Mono", Monospace; +} +span.attr { + color:#333333; + font-weight:normal; +} +span.color_p { + font-style:italic; + color:Brown; +} +span.p { + font-style:italic; +} +span.fp { + font-style:italic; + background-color:#DCDCDC; +} +span.ttype { + font-weight:normal; +} +span.nowrap { + white-space:nowrap; +} +span.value { + font-weight:bold; +} +.passed { + background-color:#CCFFCC; + font-weight:normal; +} +.warning { + background-color:#F4F4AF; + font-weight:normal; +} +.failed { + background-color:#FFCCCC; + font-weight:normal; +} +.new { + background-color:#C6DEFF; + font-weight:normal; +} +.compatible { + background-color:#CCFFCC; + font-weight:normal; +} +.almost_compatible { + background-color:#FFDAA3; + font-weight:normal; +} +.incompatible { + background-color:#FFCCCC; + font-weight:normal; +} +.gray { + background-color:#DCDCDC; + font-weight:normal; +} +.top_ref { + font-size:0.69em; +} +.footer { + font-size:0.75em; +} + +.tabset { + float:left; +} +a.tab { + border:1px solid Black; + float:left; + margin:0px 5px -1px 0px; + padding:3px 5px 3px 5px; + position:relative; + font-size:0.875em; + background-color:#DDD; + text-decoration:none; + color:Black; +} +a.disabled:hover +{ + color:Black; + background:#EEE; +} +a.active:hover +{ + color:Black; + background:White; +} +a.active { + border-bottom-color:White; + background-color:White; +} +div.tab { + border-top:1px solid Black; + padding:0px; + width:100%; + clear:both; +} +</style> +<script type="text/javascript" language="JavaScript"> +<!-- +function showContent(header, id) +{ + e = document.getElementById(id); + if(e.style.display == 'none') + { + e.style.display = 'block'; + e.style.visibility = 'visible'; + header.innerHTML = header.innerHTML.replace(/\[[^0-9 ]\]/gi,"[−]"); + } + else + { + e.style.display = 'none'; + e.style.visibility = 'hidden'; + header.innerHTML = header.innerHTML.replace(/\[[^0-9 ]\]/gi,"[+]"); + } +} +function initTabs() +{ + var url = window.location.href; + if(url.indexOf('_Source_')!=-1 || url.indexOf('#Source')!=-1) + { + var tab1 = document.getElementById('BinaryID'); + var tab2 = document.getElementById('SourceID'); + tab1.className='tab disabled'; + tab2.className='tab active'; + } + var sets = document.getElementsByTagName('div'); + for (var i = 0; i < sets.length; i++) + { + if (sets[i].className.indexOf('tabset') != -1) + { + var tabs = []; + var links = sets[i].getElementsByTagName('a'); + for (var j = 0; j < links.length; j++) + { + if (links[j].className.indexOf('tab') != -1) + { + tabs.push(links[j]); + links[j].tabs = tabs; + var tab = document.getElementById(links[j].href.substr(links[j].href.indexOf('#') + 1)); + //reset all tabs on start + if (tab) + { + if (links[j].className.indexOf('active')!=-1) { + tab.style.display = 'block'; + } + else { + tab.style.display = 'none'; + } + } + links[j].onclick = function() + { + var tab = document.getElementById(this.href.substr(this.href.indexOf('#') + 1)); + if (tab) + { + //reset all tabs before change + for (var k = 0; k < this.tabs.length; k++) + { + document.getElementById(this.tabs[k].href.substr(this.tabs[k].href.indexOf('#') + 1)).style.display = 'none'; + this.tabs[k].className = this.tabs[k].className.replace('active', 'disabled'); + } + this.className = 'tab active'; + tab.style.display = 'block'; + // window.location.hash = this.id.replace('ID', ''); + return false; + } + } + } + } + } + } + if(url.indexOf('#')!=-1) { + location.href=location.href; + } +} +if (window.addEventListener) window.addEventListener('load', initTabs, false); +else if (window.attachEvent) window.attachEvent('onload', initTabs); +--> +</script> +</head> +<body><a name='Source'></a><a name='Binary'></a><a name='Top'></a><h1>API compatibility report for the <span style='color:Blue;'>libcouchbase</span> library between <span style='color:Red;'>3.0.7</span> and <span style='color:Red;'>3.1.0</span> versions on <span style='color:Blue;'>x86_64</span></h1> + + <br/> + <div class='tabset'> + <a id='BinaryID' href='#BinaryTab' class='tab active'>Binary<br/>Compatibility</a> + <a id='SourceID' href='#SourceTab' style='margin-left:3px' class='tab disabled'>Source<br/>Compatibility</a> + </div><div id='BinaryTab' class='tab'> +<h2>Test Info</h2><hr/> +<table class='summary'> +<tr><th>Library Name</th><td>libcouchbase</td></tr> +<tr><th>Version #1</th><td>3.0.7</td></tr> +<tr><th>Version #2</th><td>3.1.0</td></tr> +<tr><th>Arch</th><td>x86_64</td></tr> +<tr><th>GCC Version</th><td>10</td></tr> +<tr><th>Subject</th><td width='150px'>Binary Compatibility</td></tr> +</table> +<h2>Test Results</h2><hr/> +<table class='summary'><tr><th>Total Header Files</th><td><a href='#Headers' style='color:Blue;'>25</a></td></tr> +<tr><th>Total Libraries</th><td><a href='#Libs' style='color:Blue;'>1</a></td></tr> +<tr><th>Total Symbols / Types</th><td>610 / 360</td></tr> +<tr><th>Compatibility</th> +<td class='compatible'>100%</td> +</tr> +</table> +<h2>Problem Summary</h2><hr/> +<table class='summary'><tr><th></th><th style='text-align:center;'>Severity</th><th style='text-align:center;'>Count</th></tr><tr><th>Added Symbols</th><td>-</td><td class='new'><a href='#Binary_Added' style='color:Blue;'>2</a></td></tr> +<tr><th>Removed Symbols</th><td>High</td><td>0</td></tr> +<tr><th rowspan='3'>Problems with<br/>Data Types</th><td>High</td><td>0</td></tr> +<tr><td>Medium</td><td>0</td></tr> +<tr><td>Low</td><td>0</td></tr> +<tr><th rowspan='3'>Problems with<br/>Symbols</th><td>High</td><td>0</td></tr> +<tr><td>Medium</td><td>0</td></tr> +<tr><td>Low</td><td>0</td></tr> +<tr><th>Problems with<br/>Constants</th><td>Low</td><td>0</td></tr> +<tr><th>Other Changes<br/>in Data Types</th><td>-</td><td class='passed'><a href='#Other_Binary_Changes_In_Types' style='color:Blue;'>1</a></td></tr> +</table> + +<a name='Binary_Added'></a><h2>Added Symbols <span class='new'> 2 </span></h2><hr/> +<span class='h_name'>couchbase.h</span>, <span class='lib_name'>libcouchbase.so.7.0.1</span><br/> +<span class="iname">lcb_cmdanalytics_scope_name <span class='sym_p'><span>( lcb_CMDANALYTICS* <span class='color_p'>cmd</span></span>, <span>char const* <span class='color_p'>scope</span></span>, <span>size_t <span class='color_p'>scope_len</span></span> )</span></span><br/> +<span class="iname">lcb_cmdanalytics_scope_qualifier <span class='sym_p'><span>( lcb_CMDANALYTICS* <span class='color_p'>cmd</span></span>, <span>char const* <span class='color_p'>qualifier</span></span>, <span>size_t <span class='color_p'>qualifier_len</span></span> )</span></span><br/> +<br/> +<a class='top_ref' href='#Top'>to the top</a><br/> +<a name='Other_Binary_Changes'></a><a name='Other_Binary_Changes_In_Types'></a> +<h2>Other Changes in Data Types <span class='passed'> 1 </span></h2><hr/> +<span class='h_name'>error.h</span><br/> +<span class="section" onclick="javascript:showContent(this, 'c_1')"> +<span class='ext'>[+]</span> <span class='ttype'>enum</span> lcb_STATUS <span class='passed'> 1 </span></span> +<br/> +<div id="c_1" style="display:none;"> +<table class='ptable'><tr> +<th class='pn'></th> +<th class='chg'>Change</th> +<th>Effect</th></tr><tr> +<th>1</th> +<td>The member <b>LCB_ERR_KEYSPACE_NOT_FOUND</b> with value <b>404</b> has been added.</td> +<td>No effect.</td> +</tr> +</table> +<span class="sect_aff" onclick="javascript:showContent(this, 'c_2')"> +[+] affected symbols: 467 (76.6%)</span> +<div id="c_2" style="display:none;"> +<div class='affected'><span class='iname_a'>lcb_analytics <span class='sym_p'><span>( lcb_INSTANCE* <i>instance</i></span>, <span>void* <i>cookie</i></span>, <span>lcb_CMDANALYTICS const* <i>cmd</i></span> )</span></span><br/> +<div class='affect'>Return value is of type 'enum lcb_STATUS'.</div> +<span class='iname_a'>lcb_analytics_cancel <span class='sym_p'><span>( lcb_INSTANCE* <i>instance</i></span>, <span>lcb_ANALYTICS_HANDLE* <i>handle</i></span> )</span></span><br/> +<div class='affect'>Return value is of type 'enum lcb_STATUS'.</div> +<span class='iname_a'>lcb_cbflush3 <span class='sym_p'><span>( lcb_INSTANCE* <i>instance</i></span>, <span>void* <i>cookie</i></span>, <span>struct lcb_CMDCBFLUSH const* <i>cmd</i></span> )</span></span><br/> +<div class='affect'>Return value is of type 'enum lcb_STATUS'.</div> +<span class='iname_a'>lcb_cmdanalytics_callback <span class='sym_p'><span>( lcb_CMDANALYTICS* <i>cmd</i></span>, <span>lcb_ANALYTICS_CALLBACK <i>callback</i></span> )</span></span><br/> +<div class='affect'>Return value is of type 'enum lcb_STATUS'.</div> +<span class='iname_a'>lcb_cmdanalytics_client_context_id <span class='sym_p'><span>( lcb_CMDANALYTICS* <i>cmd</i></span>, <span>char const* <i>value</i></span>, <span>size_t <i>value_len</i></span> )</span></span><br/> +<div class='affect'>Return value is of type 'enum lcb_STATUS'.</div> +<span class='iname_a'>lcb_cmdanalytics_consistency <span class='sym_p'><span>( lcb_CMDANALYTICS* <i>cmd</i></span>, <span>enum lcb_ANALYTICS_CONSISTENCY <i>level</i></span> )</span></span><br/> +<div class='affect'>Return value is of type 'enum lcb_STATUS'.</div> +<span class='iname_a'>lcb_cmdanalytics_create <span class='sym_p'><span>( lcb_CMDANALYTICS** <i>cmd</i></span> )</span></span><br/> +<div class='affect'>Return value is of type 'enum lcb_STATUS'.</div> +<span class='iname_a'>lcb_cmdanalytics_deferred <span class='sym_p'><span>( lcb_CMDANALYTICS* <i>cmd</i></span>, <span>int <i>deferred</i></span> )</span></span><br/> +<div class='affect'>Return value is of type 'enum lcb_STATUS'.</div> +<span class='iname_a'>lcb_cmdanalytics_destroy <span class='sym_p'><span>( lcb_CMDANALYTICS* <i>cmd</i></span> )</span></span><br/> +<div class='affect'>Return value is of type 'enum lcb_STATUS'.</div> +<span class='iname_a'>lcb_cmdanalytics_encoded_payload <span class='sym_p'><span>( lcb_CMDANALYTICS* <i>cmd</i></span>, <span>char const** <i>query</i></span>, <span>size_t* <i>query_len</i></span> )</span></span><br/> +<div class='affect'>Return value is of type 'enum lcb_STATUS'.</div> + <b>...</b> +<br/> +</div> +</div> +<br/><br/></div> + +<br/> +<a class='top_ref' href='#Top'>to the top</a><br/> +<a name='Headers'></a><h2>Header Files <span class='gray'> 25 </span></h2><hr/> +<div class='h_list'> +assert.h<br/> +auth.h<br/> +cntl-private.h<br/> +cntl.h<br/> +configuration.h<br/> +couchbase.h<br/> +crypto.h<br/> +iops.h<br/> +ixmgmt.h<br/> +kvbuf.h<br/> +libev_io_opts.h<br/> +libevent_io_opts.h<br/> +libuv_compat.h<br/> +libuv_io_opts.h<br/> +logger.h<br/> +metrics.h<br/> +pktfwd.h<br/> +plugin-internal.h<br/> +select_io_opts.h<br/> +sysdefs.h<br/> +tracing.h<br/> +utils.h<br/> +vbucket.h<br/> +visibility.h<br/> +wsaerr.h<br/> +</div> +<br/><a class='top_ref' href='#Top'>to the top</a><br/> +<a name='Libs'></a><h2>Libraries <span class='gray'> 1 </span></h2><hr/> +<div class='lib_list'> +libcouchbase.so.6.0.8<br/> +</div> +<br/><a class='top_ref' href='#Top'>to the top</a><br/> +<br/><br/><br/></div><div id='SourceTab' class='tab'> +<h2>Test Info</h2><hr/> +<table class='summary'> +<tr><th>Library Name</th><td>libcouchbase</td></tr> +<tr><th>Version #1</th><td>3.0.7</td></tr> +<tr><th>Version #2</th><td>3.1.0</td></tr> +<tr><th>Arch</th><td>x86_64</td></tr> +<tr><th>Subject</th><td width='150px'>Source Compatibility</td></tr> +</table> +<h2>Test Results</h2><hr/> +<table class='summary'><tr><th>Total Header Files</th><td><a href='#Headers' style='color:Blue;'>25</a></td></tr> +<tr><th>Total Libraries</th><td><a href='#Libs' style='color:Blue;'>1</a></td></tr> +<tr><th>Total Symbols / Types</th><td>615 / 366</td></tr> +<tr><th>Compatibility</th> +<td class='compatible'>100%</td> +</tr> +</table> +<h2>Problem Summary</h2><hr/> +<table class='summary'><tr><th></th><th style='text-align:center;'>Severity</th><th style='text-align:center;'>Count</th></tr><tr><th>Added Symbols</th><td>-</td><td class='new'><a href='#Source_Added' style='color:Blue;'>2</a></td></tr> +<tr><th>Removed Symbols</th><td>High</td><td>0</td></tr> +<tr><th rowspan='3'>Problems with<br/>Data Types</th><td>High</td><td>0</td></tr> +<tr><td>Medium</td><td>0</td></tr> +<tr><td>Low</td><td>0</td></tr> +<tr><th rowspan='3'>Problems with<br/>Symbols</th><td>High</td><td>0</td></tr> +<tr><td>Medium</td><td>0</td></tr> +<tr><td>Low</td><td>0</td></tr> +<tr><th>Problems with<br/>Constants</th><td>Low</td><td class='warning'><a href='#Constant_Source_Problems_Low' style='color:Blue;'>3</a></td></tr> +<tr><th>Other Changes<br/>in Data Types</th><td>-</td><td class='passed'><a href='#Other_Source_Changes_In_Types' style='color:Blue;'>1</a></td></tr> +</table> + +<a name='Source_Added'></a><h2>Added Symbols <span class='new'> 2 </span></h2><hr/> +<span class='h_name'>couchbase.h</span><br/> +<span class="iname">lcb_cmdanalytics_scope_name <span class='sym_p'><span>( lcb_CMDANALYTICS* <span class='color_p'>cmd</span></span>, <span>char const* <span class='color_p'>scope</span></span>, <span>size_t <span class='color_p'>scope_len</span></span> )</span></span><br/> +<span class="iname">lcb_cmdanalytics_scope_qualifier <span class='sym_p'><span>( lcb_CMDANALYTICS* <span class='color_p'>cmd</span></span>, <span>char const* <span class='color_p'>qualifier</span></span>, <span>size_t <span class='color_p'>qualifier_len</span></span> )</span></span><br/> +<br/> +<a class='top_ref' href='#Top'>to the top</a><br/> +<a name='Low_Risk_Source_Problems'></a><a name='Constant_Source_Problems_Low'></a> +<h2>Problems with Constants, Low Severity <span class='warning'> 3 </span></h2><hr/> +<span class='h_name'>configuration.h</span><br/> +<span class="section" onclick="javascript:showContent(this, 'c_3')"> +<span class='ext'>[+]</span> LCB_VERSION</span> +<br/> +<div id="c_3" style="display:none;"> +<table class='ptable'> +<tr> +<th class='pn'></th> +<th class='chg'>Change</th> +<th>Effect</th> +</tr> +<tr> +<th>1</th> +<td>The value of constant <b>LCB_VERSION</b> has been changed from <b>0x030007</b> to <b>0x030100</b>.</td> +<td>Recompilation of a client program may be broken.</td> +</tr> +</table> +<br/> +</div> + +<span class="section" onclick="javascript:showContent(this, 'c_4')"> +<span class='ext'>[+]</span> LCB_VERSION_CHANGESET</span> +<br/> +<div id="c_4" style="display:none;"> +<table class='ptable'> +<tr> +<th class='pn'></th> +<th class='chg'>Change</th> +<th>Effect</th> +</tr> +<tr> +<th>1</th> +<td>The value of constant <b>LCB_VERSION_CHANGESET</b> has been changed from <b>"d2d3666e269b41413408aaae96eb289f1cb4f8ec"</b> to <b>"ed8b57e731e04e2749393c8bed8f9eb88d5d663d"</b>.</td> +<td>Recompilation of a client program may be broken.</td> +</tr> +</table> +<br/> +</div> + +<span class="section" onclick="javascript:showContent(this, 'c_5')"> +<span class='ext'>[+]</span> LCB_VERSION_STRING</span> +<br/> +<div id="c_5" style="display:none;"> +<table class='ptable'> +<tr> +<th class='pn'></th> +<th class='chg'>Change</th> +<th>Effect</th> +</tr> +<tr> +<th>1</th> +<td>The value of constant <b>LCB_VERSION_STRING</b> has been changed from <b>"3.0.7"</b> to <b>"3.1.0"</b>.</td> +<td>Recompilation of a client program may be broken.</td> +</tr> +</table> +<br/> +</div> + +<br/> +<a class='top_ref' href='#Top'>to the top</a><br/> +<a name='Other_Source_Changes'></a><a name='Other_Source_Changes_In_Types'></a> +<h2>Other Changes in Data Types <span class='passed'> 1 </span></h2><hr/> +<span class='h_name'>error.h</span><br/> +<span class="section" onclick="javascript:showContent(this, 'c_6')"> +<span class='ext'>[+]</span> <span class='ttype'>enum</span> lcb_STATUS <span class='passed'> 1 </span></span> +<br/> +<div id="c_6" style="display:none;"> +<table class='ptable'><tr> +<th class='pn'></th> +<th class='chg'>Change</th> +<th>Effect</th></tr><tr> +<th>1</th> +<td>The member <b>LCB_ERR_KEYSPACE_NOT_FOUND</b> with value <b>404</b> has been added.</td> +<td>No effect.</td> +</tr> +</table> +<span class="sect_aff" onclick="javascript:showContent(this, 'c_7')"> +[+] affected symbols: 470 (76.4%)</span> +<div id="c_7" style="display:none;"> +<div class='affected'><span class='iname_a'>lcb_analytics <span class='sym_p'><span>( lcb_INSTANCE* <i>instance</i></span>, <span>void* <i>cookie</i></span>, <span>lcb_CMDANALYTICS const* <i>cmd</i></span> )</span></span><br/> +<div class='affect'>Return value is of type 'enum lcb_STATUS'.</div> +<span class='iname_a'>lcb_analytics_cancel <span class='sym_p'><span>( lcb_INSTANCE* <i>instance</i></span>, <span>lcb_ANALYTICS_HANDLE* <i>handle</i></span> )</span></span><br/> +<div class='affect'>Return value is of type 'enum lcb_STATUS'.</div> +<span class='iname_a'>lcb_cbflush3 <span class='sym_p'><span>( lcb_INSTANCE* <i>instance</i></span>, <span>void* <i>cookie</i></span>, <span>struct lcb_CMDCBFLUSH const* <i>cmd</i></span> )</span></span><br/> +<div class='affect'>Return value is of type 'enum lcb_STATUS'.</div> +<span class='iname_a'>lcb_cmdanalytics_callback <span class='sym_p'><span>( lcb_CMDANALYTICS* <i>cmd</i></span>, <span>lcb_ANALYTICS_CALLBACK <i>callback</i></span> )</span></span><br/> +<div class='affect'>Return value is of type 'enum lcb_STATUS'.</div> +<span class='iname_a'>lcb_cmdanalytics_client_context_id <span class='sym_p'><span>( lcb_CMDANALYTICS* <i>cmd</i></span>, <span>char const* <i>value</i></span>, <span>size_t <i>value_len</i></span> )</span></span><br/> +<div class='affect'>Return value is of type 'enum lcb_STATUS'.</div> +<span class='iname_a'>lcb_cmdanalytics_consistency <span class='sym_p'><span>( lcb_CMDANALYTICS* <i>cmd</i></span>, <span>enum lcb_ANALYTICS_CONSISTENCY <i>level</i></span> )</span></span><br/> +<div class='affect'>Return value is of type 'enum lcb_STATUS'.</div> +<span class='iname_a'>lcb_cmdanalytics_create <span class='sym_p'><span>( lcb_CMDANALYTICS** <i>cmd</i></span> )</span></span><br/> +<div class='affect'>Return value is of type 'enum lcb_STATUS'.</div> +<span class='iname_a'>lcb_cmdanalytics_deferred <span class='sym_p'><span>( lcb_CMDANALYTICS* <i>cmd</i></span>, <span>int <i>deferred</i></span> )</span></span><br/> +<div class='affect'>Return value is of type 'enum lcb_STATUS'.</div> +<span class='iname_a'>lcb_cmdanalytics_destroy <span class='sym_p'><span>( lcb_CMDANALYTICS* <i>cmd</i></span> )</span></span><br/> +<div class='affect'>Return value is of type 'enum lcb_STATUS'.</div> +<span class='iname_a'>lcb_cmdanalytics_encoded_payload <span class='sym_p'><span>( lcb_CMDANALYTICS* <i>cmd</i></span>, <span>char const** <i>query</i></span>, <span>size_t* <i>query_len</i></span> )</span></span><br/> +<div class='affect'>Return value is of type 'enum lcb_STATUS'.</div> + <b>...</b> +<br/> +</div> +</div> +<br/><br/></div> + +<br/> +<a class='top_ref' href='#Top'>to the top</a><br/> +<a name='Headers'></a><h2>Header Files <span class='gray'> 25 </span></h2><hr/> +<div class='h_list'> +assert.h<br/> +auth.h<br/> +cntl-private.h<br/> +cntl.h<br/> +configuration.h<br/> +couchbase.h<br/> +crypto.h<br/> +iops.h<br/> +ixmgmt.h<br/> +kvbuf.h<br/> +libev_io_opts.h<br/> +libevent_io_opts.h<br/> +libuv_compat.h<br/> +libuv_io_opts.h<br/> +logger.h<br/> +metrics.h<br/> +pktfwd.h<br/> +plugin-internal.h<br/> +select_io_opts.h<br/> +sysdefs.h<br/> +tracing.h<br/> +utils.h<br/> +vbucket.h<br/> +visibility.h<br/> +wsaerr.h<br/> +</div> +<br/><a class='top_ref' href='#Top'>to the top</a><br/> +<a name='Libs'></a><h2>Libraries <span class='gray'> 1 </span></h2><hr/> +<div class='lib_list'> +libcouchbase.so.6.0.8<br/> +</div> +<br/><a class='top_ref' href='#Top'>to the top</a><br/> +<br/><br/><br/></div><hr/> +<div class='footer' align='right'><i>Generated by <a href='https://github.com/lvc/abi-compliance-checker'>ABI Compliance Checker</a> 2.3  </i> +</div> +<br/> + +</body></html> diff --git a/compat_reports/3.1.0_to_3.1.1/compat_report.html b/compat_reports/3.1.0_to_3.1.1/compat_report.html new file mode 100644 index 0000000..875931b --- /dev/null +++ b/compat_reports/3.1.0_to_3.1.1/compat_report.html @@ -0,0 +1,817 @@ +<!-- kind:binary;verdict:compatible;affected:0;added:0;removed:0;type_problems_high:0;type_problems_medium:0;type_problems_low:0;interface_problems_high:0;interface_problems_medium:0;interface_problems_low:0;changed_constants:1;type_changes_other:1;constant_changes_other:2;tool_version:2.3 --> +<!-- kind:source;verdict:compatible;affected:0;added:0;removed:0;type_problems_high:0;type_problems_medium:0;type_problems_low:0;interface_problems_high:0;interface_problems_medium:0;interface_problems_low:0;changed_constants:4;type_changes_other:1;constant_changes_other:2;tool_version:2.3 --> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<meta name="viewport" content="width=device-width,initial-scale=1" /> +<meta name="keywords" content="libcouchbase, compatibility, API, ABI, report" /> +<meta name="description" content="API/ABI compatibility report for the libcouchbase library between 3.1.0 and 3.1.1 versions" /> +<title>libcouchbase: 3.1.0 to 3.1.1 compatibility report</title> +<style type="text/css"> +body { + font-family:Arial, sans-serif; + background-color:White; + color:Black; +} +hr { + color:Black; + background-color:Black; + height:1px; + border:0; +} +h1 { + margin-bottom:0px; + padding-bottom:0px; + font-size:1.625em; +} +h2 { + margin-bottom:0px; + padding-bottom:0px; + font-size:1.25em; + white-space:nowrap; +} +span.section { + font-weight:bold; + cursor:pointer; + color:#003E69; + white-space:nowrap; + margin-left:0.3125em; +} +span.new_sign { + font-weight:bold; + margin-left:1.65em; + color:#003E69; +} +span.new_sign_lbl { + margin-left:3em; + font-size:1em; + color:Black; +} +span:hover.section { + color:#336699; +} +span.sect_aff { + cursor:pointer; + padding-left:1.55em; + font-size:0.875em; + color:#cc3300; +} +span.sect_info { + cursor:pointer; + padding-left:1.55em; + font-size:0.875em; + color:Black; +} +span.ext { + font-weight:normal; +} +span.h_name { + color:#cc3300; + font-size:0.875em; + font-weight:bold; +} +div.h_list, div.lib_list { + font-size:0.94em; + padding-left:0.4em; +} +span.ns { + color:#408080; + font-size:0.94em; +} +span.lib_name { + color:Green; + font-size:0.875em; + font-weight:bold; +} +span.iname { + font-weight:bold; + color:#003E69; + margin-left:0.3125em; +} +span.iname_b { + font-weight:bold; +} +span.iname_a { + color:#333333; + font-weight:bold; + font-size:0.94em; +} +span.sym_p { + font-weight:normal; + white-space:normal; +} +span.sym_pd { + white-space:normal; +} +span.sym_p span, span.sym_pd span { + white-space:nowrap; +} +div.affect { + padding-left:1em; + padding-bottom:10px; + font-size:0.87em; + font-style:italic; + line-height:0.9em; +} +div.affected { + padding-left:1.9em; + padding-top:10px; +} +table.ptable { + border-collapse:collapse; + border:1px outset black; + margin-left:0.95em; + margin-top:3px; + margin-bottom:3px; + width:56.25em; +} +table.ptable td { + border:1px solid gray; + padding:3px; + font-size:0.875em; + text-align:left; + vertical-align:top; + max-width:28em; + word-wrap:break-word; +} +table.ptable th.pn { + width:2%; +} +table.ptable th.chg { + width:47%; +} +table.vtable { + border-collapse:collapse; + border:1px outset black; + margin-left:1.9em; + margin-top:0.7em; +} +table.vtable td { + border:1px solid gray; + padding:3px; + font-size:0.875em; + vertical-align:top; + max-width:450px; + word-wrap:break-word; +} +table.ptable th, table.vtable th { + background-color:#eeeeee; + font-weight:bold; + color:#333333; + font-family:Verdana, Arial; + font-size:0.875em; + border:1px solid gray; + text-align:center; + vertical-align:top; + white-space:nowrap; + padding:3px; +} +table.summary { + border-collapse:collapse; + border:1px outset black; +} +table.summary th { + background-color:#eeeeee; + font-weight:normal; + text-align:left; + font-size:0.94em; + white-space:nowrap; + border:1px inset gray; + padding:3px; +} +table.summary td { + text-align:right; + white-space:nowrap; + border:1px inset gray; + padding:3px 5px 3px 10px; +} +span.mngl { + padding-left:1em; + font-size:0.875em; + cursor:text; + color:#444444; + font-weight:bold; +} +span.pleft { + padding-left:2.5em; +} +span.sym_ver { + color:#333333; + white-space:nowrap; + font-family:"DejaVu Sans Mono", Monospace; +} +span.attr { + color:#333333; + font-weight:normal; +} +span.color_p { + font-style:italic; + color:Brown; +} +span.p { + font-style:italic; +} +span.fp { + font-style:italic; + background-color:#DCDCDC; +} +span.ttype { + font-weight:normal; +} +span.nowrap { + white-space:nowrap; +} +span.value { + font-weight:bold; +} +.passed { + background-color:#CCFFCC; + font-weight:normal; +} +.warning { + background-color:#F4F4AF; + font-weight:normal; +} +.failed { + background-color:#FFCCCC; + font-weight:normal; +} +.new { + background-color:#C6DEFF; + font-weight:normal; +} +.compatible { + background-color:#CCFFCC; + font-weight:normal; +} +.almost_compatible { + background-color:#FFDAA3; + font-weight:normal; +} +.incompatible { + background-color:#FFCCCC; + font-weight:normal; +} +.gray { + background-color:#DCDCDC; + font-weight:normal; +} +.top_ref { + font-size:0.69em; +} +.footer { + font-size:0.75em; +} + +.tabset { + float:left; +} +a.tab { + border:1px solid Black; + float:left; + margin:0px 5px -1px 0px; + padding:3px 5px 3px 5px; + position:relative; + font-size:0.875em; + background-color:#DDD; + text-decoration:none; + color:Black; +} +a.disabled:hover +{ + color:Black; + background:#EEE; +} +a.active:hover +{ + color:Black; + background:White; +} +a.active { + border-bottom-color:White; + background-color:White; +} +div.tab { + border-top:1px solid Black; + padding:0px; + width:100%; + clear:both; +} +</style> +<script type="text/javascript" language="JavaScript"> +<!-- +function showContent(header, id) +{ + e = document.getElementById(id); + if(e.style.display == 'none') + { + e.style.display = 'block'; + e.style.visibility = 'visible'; + header.innerHTML = header.innerHTML.replace(/\[[^0-9 ]\]/gi,"[−]"); + } + else + { + e.style.display = 'none'; + e.style.visibility = 'hidden'; + header.innerHTML = header.innerHTML.replace(/\[[^0-9 ]\]/gi,"[+]"); + } +} +function initTabs() +{ + var url = window.location.href; + if(url.indexOf('_Source_')!=-1 || url.indexOf('#Source')!=-1) + { + var tab1 = document.getElementById('BinaryID'); + var tab2 = document.getElementById('SourceID'); + tab1.className='tab disabled'; + tab2.className='tab active'; + } + var sets = document.getElementsByTagName('div'); + for (var i = 0; i < sets.length; i++) + { + if (sets[i].className.indexOf('tabset') != -1) + { + var tabs = []; + var links = sets[i].getElementsByTagName('a'); + for (var j = 0; j < links.length; j++) + { + if (links[j].className.indexOf('tab') != -1) + { + tabs.push(links[j]); + links[j].tabs = tabs; + var tab = document.getElementById(links[j].href.substr(links[j].href.indexOf('#') + 1)); + //reset all tabs on start + if (tab) + { + if (links[j].className.indexOf('active')!=-1) { + tab.style.display = 'block'; + } + else { + tab.style.display = 'none'; + } + } + links[j].onclick = function() + { + var tab = document.getElementById(this.href.substr(this.href.indexOf('#') + 1)); + if (tab) + { + //reset all tabs before change + for (var k = 0; k < this.tabs.length; k++) + { + document.getElementById(this.tabs[k].href.substr(this.tabs[k].href.indexOf('#') + 1)).style.display = 'none'; + this.tabs[k].className = this.tabs[k].className.replace('active', 'disabled'); + } + this.className = 'tab active'; + tab.style.display = 'block'; + // window.location.hash = this.id.replace('ID', ''); + return false; + } + } + } + } + } + } + if(url.indexOf('#')!=-1) { + location.href=location.href; + } +} +if (window.addEventListener) window.addEventListener('load', initTabs, false); +else if (window.attachEvent) window.attachEvent('onload', initTabs); +--> +</script> +</head> +<body><a name='Source'></a><a name='Binary'></a><a name='Top'></a><h1>API compatibility report for the <span style='color:Blue;'>libcouchbase</span> library between <span style='color:Red;'>3.1.0</span> and <span style='color:Red;'>3.1.1</span> versions on <span style='color:Blue;'>x86_64</span></h1> + + <br/> + <div class='tabset'> + <a id='BinaryID' href='#BinaryTab' class='tab active'>Binary<br/>Compatibility</a> + <a id='SourceID' href='#SourceTab' style='margin-left:3px' class='tab disabled'>Source<br/>Compatibility</a> + </div><div id='BinaryTab' class='tab'> +<h2>Test Info</h2><hr/> +<table class='summary'> +<tr><th>Library Name</th><td>libcouchbase</td></tr> +<tr><th>Version #1</th><td>3.1.0</td></tr> +<tr><th>Version #2</th><td>3.1.1</td></tr> +<tr><th>Arch</th><td>x86_64</td></tr> +<tr><th>GCC Version</th><td>10</td></tr> +<tr><th>Subject</th><td width='150px'>Binary Compatibility</td></tr> +</table> +<h2>Test Results</h2><hr/> +<table class='summary'><tr><th>Total Header Files</th><td><a href='#Headers' style='color:Blue;'>25</a></td></tr> +<tr><th>Total Libraries</th><td><a href='#Libs' style='color:Blue;'>1</a></td></tr> +<tr><th>Total Symbols / Types</th><td>612 / 360</td></tr> +<tr><th>Compatibility</th> +<td class='compatible'>100%</td> +</tr> +</table> +<h2>Problem Summary</h2><hr/> +<table class='summary'><tr><th></th><th style='text-align:center;'>Severity</th><th style='text-align:center;'>Count</th></tr><tr><th>Added Symbols</th><td>-</td><td>0</td></tr> +<tr><th>Removed Symbols</th><td>High</td><td>0</td></tr> +<tr><th rowspan='3'>Problems with<br/>Data Types</th><td>High</td><td>0</td></tr> +<tr><td>Medium</td><td>0</td></tr> +<tr><td>Low</td><td>0</td></tr> +<tr><th rowspan='3'>Problems with<br/>Symbols</th><td>High</td><td>0</td></tr> +<tr><td>Medium</td><td>0</td></tr> +<tr><td>Low</td><td>0</td></tr> +<tr><th>Problems with<br/>Constants</th><td>Low</td><td class='warning'><a href='#Constant_Binary_Problems_Low' style='color:Blue;'>1</a></td></tr> +<tr><th>Other Changes<br/>in Data Types</th><td>-</td><td class='passed'><a href='#Other_Binary_Changes_In_Types' style='color:Blue;'>1</a></td></tr> +<tr><th>Other Changes<br/>in Constants</th><td>-</td><td class='passed'><a href='#Other_Binary_Changes_In_Constants' style='color:Blue;'>2</a></td></tr> +</table> + +<a name='Low_Risk_Binary_Problems'></a><a name='Constant_Binary_Problems_Low'></a> +<h2>Problems with Constants, Low Severity <span class='warning'> 1 </span></h2><hr/> +<span class='h_name'>cntl.h</span><br/> +<span class="section" onclick="javascript:showContent(this, 'c_1')"> +<span class='ext'>[+]</span> LCB_CNTL__MAX</span> +<br/> +<div id="c_1" style="display:none;"> +<table class='ptable'> +<tr> +<th class='pn'></th> +<th class='chg'>Change</th> +<th>Effect</th> +</tr> +<tr> +<th>1</th> +<td>The value of constant <b>LCB_CNTL__MAX</b> has been changed from <b>0x64</b> to <b>0x66</b>.</td> +<td>Applications will pass an old value of this constant as the parameter to the new-version library functions, that expect a new one. This may result in crash of incorrect behavior of applications.</td> +</tr> +</table> +<br/> +</div> + +<br/> +<a class='top_ref' href='#Top'>to the top</a><br/> +<a name='Other_Binary_Changes'></a><a name='Other_Binary_Changes_In_Types'></a> +<h2>Other Changes in Data Types <span class='passed'> 1 </span></h2><hr/> +<span class='h_name'>error.h</span><br/> +<span class="section" onclick="javascript:showContent(this, 'c_2')"> +<span class='ext'>[+]</span> <span class='ttype'>enum</span> lcb_STATUS <span class='passed'> 1 </span></span> +<br/> +<div id="c_2" style="display:none;"> +<table class='ptable'><tr> +<th class='pn'></th> +<th class='chg'>Change</th> +<th>Effect</th></tr><tr> +<th>1</th> +<td>The member <b>LCB_ERR_DML_FAILURE</b> with value <b>405</b> has been added.</td> +<td>No effect.</td> +</tr> +</table> +<span class="sect_aff" onclick="javascript:showContent(this, 'c_3')"> +[+] affected symbols: 469 (76.6%)</span> +<div id="c_3" style="display:none;"> +<div class='affected'><span class='iname_a'>lcb_analytics <span class='sym_p'><span>( lcb_INSTANCE* <i>instance</i></span>, <span>void* <i>cookie</i></span>, <span>lcb_CMDANALYTICS const* <i>cmd</i></span> )</span></span><br/> +<div class='affect'>Return value is of type 'enum lcb_STATUS'.</div> +<span class='iname_a'>lcb_analytics_cancel <span class='sym_p'><span>( lcb_INSTANCE* <i>instance</i></span>, <span>lcb_ANALYTICS_HANDLE* <i>handle</i></span> )</span></span><br/> +<div class='affect'>Return value is of type 'enum lcb_STATUS'.</div> +<span class='iname_a'>lcb_cbflush3 <span class='sym_p'><span>( lcb_INSTANCE* <i>instance</i></span>, <span>void* <i>cookie</i></span>, <span>struct lcb_CMDCBFLUSH const* <i>cmd</i></span> )</span></span><br/> +<div class='affect'>Return value is of type 'enum lcb_STATUS'.</div> +<span class='iname_a'>lcb_cmdanalytics_callback <span class='sym_p'><span>( lcb_CMDANALYTICS* <i>cmd</i></span>, <span>lcb_ANALYTICS_CALLBACK <i>callback</i></span> )</span></span><br/> +<div class='affect'>Return value is of type 'enum lcb_STATUS'.</div> +<span class='iname_a'>lcb_cmdanalytics_client_context_id <span class='sym_p'><span>( lcb_CMDANALYTICS* <i>cmd</i></span>, <span>char const* <i>value</i></span>, <span>size_t <i>value_len</i></span> )</span></span><br/> +<div class='affect'>Return value is of type 'enum lcb_STATUS'.</div> +<span class='iname_a'>lcb_cmdanalytics_consistency <span class='sym_p'><span>( lcb_CMDANALYTICS* <i>cmd</i></span>, <span>enum lcb_ANALYTICS_CONSISTENCY <i>level</i></span> )</span></span><br/> +<div class='affect'>Return value is of type 'enum lcb_STATUS'.</div> +<span class='iname_a'>lcb_cmdanalytics_create <span class='sym_p'><span>( lcb_CMDANALYTICS** <i>cmd</i></span> )</span></span><br/> +<div class='affect'>Return value is of type 'enum lcb_STATUS'.</div> +<span class='iname_a'>lcb_cmdanalytics_deferred <span class='sym_p'><span>( lcb_CMDANALYTICS* <i>cmd</i></span>, <span>int <i>deferred</i></span> )</span></span><br/> +<div class='affect'>Return value is of type 'enum lcb_STATUS'.</div> +<span class='iname_a'>lcb_cmdanalytics_destroy <span class='sym_p'><span>( lcb_CMDANALYTICS* <i>cmd</i></span> )</span></span><br/> +<div class='affect'>Return value is of type 'enum lcb_STATUS'.</div> +<span class='iname_a'>lcb_cmdanalytics_encoded_payload <span class='sym_p'><span>( lcb_CMDANALYTICS* <i>cmd</i></span>, <span>char const** <i>query</i></span>, <span>size_t* <i>query_len</i></span> )</span></span><br/> +<div class='affect'>Return value is of type 'enum lcb_STATUS'.</div> + <b>...</b> +<br/> +</div> +</div> +<br/><br/></div> + +<br/> +<a class='top_ref' href='#Top'>to the top</a><br/> +<a name='Other_Binary_Changes_In_Constants'></a> +<h2>Other Changes in Constants <span class='passed'> 2 </span></h2><hr/> +<span class='h_name'>cntl-private.h</span><br/> +<span class="section" onclick="javascript:showContent(this, 'c_4')"> +<span class='ext'>[+]</span> LCB_CNTL_QUERY_GRACE_PERIOD</span> +<br/> +<div id="c_4" style="display:none;"> +<table class='ptable'> +<tr> +<th class='pn'></th> +<th class='chg'>Change</th> +<th>Effect</th> +</tr> +<tr> +<th>1</th> +<td>The constant <b>LCB_CNTL_QUERY_GRACE_PERIOD</b> with value <b>0x64</b> has been added.</td> +<td>No effect.</td> +</tr> +</table> +<br/> +</div> + +<br/> +<span class='h_name'>cntl.h</span><br/> +<span class="section" onclick="javascript:showContent(this, 'c_5')"> +<span class='ext'>[+]</span> LCB_CNTL_ENABLE_ERRMAP</span> +<br/> +<div id="c_5" style="display:none;"> +<table class='ptable'> +<tr> +<th class='pn'></th> +<th class='chg'>Change</th> +<th>Effect</th> +</tr> +<tr> +<th>1</th> +<td>The constant <b>LCB_CNTL_ENABLE_ERRMAP</b> with value <b>0x65</b> has been added.</td> +<td>No effect.</td> +</tr> +</table> +<br/> +</div> + +<br/> +<a class='top_ref' href='#Top'>to the top</a><br/> +<a name='Headers'></a><h2>Header Files <span class='gray'> 25 </span></h2><hr/> +<div class='h_list'> +assert.h<br/> +auth.h<br/> +cntl-private.h<br/> +cntl.h<br/> +configuration.h<br/> +couchbase.h<br/> +crypto.h<br/> +iops.h<br/> +ixmgmt.h<br/> +kvbuf.h<br/> +libev_io_opts.h<br/> +libevent_io_opts.h<br/> +libuv_compat.h<br/> +libuv_io_opts.h<br/> +logger.h<br/> +metrics.h<br/> +pktfwd.h<br/> +plugin-internal.h<br/> +select_io_opts.h<br/> +sysdefs.h<br/> +tracing.h<br/> +utils.h<br/> +vbucket.h<br/> +visibility.h<br/> +wsaerr.h<br/> +</div> +<br/><a class='top_ref' href='#Top'>to the top</a><br/> +<a name='Libs'></a><h2>Libraries <span class='gray'> 1 </span></h2><hr/> +<div class='lib_list'> +libcouchbase.so.7.0.1<br/> +</div> +<br/><a class='top_ref' href='#Top'>to the top</a><br/> +<br/><br/><br/></div><div id='SourceTab' class='tab'> +<h2>Test Info</h2><hr/> +<table class='summary'> +<tr><th>Library Name</th><td>libcouchbase</td></tr> +<tr><th>Version #1</th><td>3.1.0</td></tr> +<tr><th>Version #2</th><td>3.1.1</td></tr> +<tr><th>Arch</th><td>x86_64</td></tr> +<tr><th>Subject</th><td width='150px'>Source Compatibility</td></tr> +</table> +<h2>Test Results</h2><hr/> +<table class='summary'><tr><th>Total Header Files</th><td><a href='#Headers' style='color:Blue;'>25</a></td></tr> +<tr><th>Total Libraries</th><td><a href='#Libs' style='color:Blue;'>1</a></td></tr> +<tr><th>Total Symbols / Types</th><td>617 / 366</td></tr> +<tr><th>Compatibility</th> +<td class='compatible'>100%</td> +</tr> +</table> +<h2>Problem Summary</h2><hr/> +<table class='summary'><tr><th></th><th style='text-align:center;'>Severity</th><th style='text-align:center;'>Count</th></tr><tr><th>Added Symbols</th><td>-</td><td>0</td></tr> +<tr><th>Removed Symbols</th><td>High</td><td>0</td></tr> +<tr><th rowspan='3'>Problems with<br/>Data Types</th><td>High</td><td>0</td></tr> +<tr><td>Medium</td><td>0</td></tr> +<tr><td>Low</td><td>0</td></tr> +<tr><th rowspan='3'>Problems with<br/>Symbols</th><td>High</td><td>0</td></tr> +<tr><td>Medium</td><td>0</td></tr> +<tr><td>Low</td><td>0</td></tr> +<tr><th>Problems with<br/>Constants</th><td>Low</td><td class='warning'><a href='#Constant_Source_Problems_Low' style='color:Blue;'>4</a></td></tr> +<tr><th>Other Changes<br/>in Data Types</th><td>-</td><td class='passed'><a href='#Other_Source_Changes_In_Types' style='color:Blue;'>1</a></td></tr> +<tr><th>Other Changes<br/>in Constants</th><td>-</td><td class='passed'><a href='#Other_Source_Changes_In_Constants' style='color:Blue;'>2</a></td></tr> +</table> + +<a name='Low_Risk_Source_Problems'></a><a name='Constant_Source_Problems_Low'></a> +<h2>Problems with Constants, Low Severity <span class='warning'> 4 </span></h2><hr/> +<span class='h_name'>cntl.h</span><br/> +<span class="section" onclick="javascript:showContent(this, 'c_6')"> +<span class='ext'>[+]</span> LCB_CNTL__MAX</span> +<br/> +<div id="c_6" style="display:none;"> +<table class='ptable'> +<tr> +<th class='pn'></th> +<th class='chg'>Change</th> +<th>Effect</th> +</tr> +<tr> +<th>1</th> +<td>The value of constant <b>LCB_CNTL__MAX</b> has been changed from <b>0x64</b> to <b>0x66</b>.</td> +<td>Recompilation of a client program may be broken.</td> +</tr> +</table> +<br/> +</div> + +<br/> +<span class='h_name'>configuration.h</span><br/> +<span class="section" onclick="javascript:showContent(this, 'c_7')"> +<span class='ext'>[+]</span> LCB_VERSION</span> +<br/> +<div id="c_7" style="display:none;"> +<table class='ptable'> +<tr> +<th class='pn'></th> +<th class='chg'>Change</th> +<th>Effect</th> +</tr> +<tr> +<th>1</th> +<td>The value of constant <b>LCB_VERSION</b> has been changed from <b>0x030100</b> to <b>0x030101</b>.</td> +<td>Recompilation of a client program may be broken.</td> +</tr> +</table> +<br/> +</div> + +<span class="section" onclick="javascript:showContent(this, 'c_8')"> +<span class='ext'>[+]</span> LCB_VERSION_CHANGESET</span> +<br/> +<div id="c_8" style="display:none;"> +<table class='ptable'> +<tr> +<th class='pn'></th> +<th class='chg'>Change</th> +<th>Effect</th> +</tr> +<tr> +<th>1</th> +<td>The value of constant <b>LCB_VERSION_CHANGESET</b> has been changed from <b>"ed8b57e731e04e2749393c8bed8f9eb88d5d663d"</b> to <b>"614635bc74fa006eca454a8d90b1c92d31eaa7c6"</b>.</td> +<td>Recompilation of a client program may be broken.</td> +</tr> +</table> +<br/> +</div> + +<span class="section" onclick="javascript:showContent(this, 'c_9')"> +<span class='ext'>[+]</span> LCB_VERSION_STRING</span> +<br/> +<div id="c_9" style="display:none;"> +<table class='ptable'> +<tr> +<th class='pn'></th> +<th class='chg'>Change</th> +<th>Effect</th> +</tr> +<tr> +<th>1</th> +<td>The value of constant <b>LCB_VERSION_STRING</b> has been changed from <b>"3.1.0"</b> to <b>"3.1.1"</b>.</td> +<td>Recompilation of a client program may be broken.</td> +</tr> +</table> +<br/> +</div> + +<br/> +<a class='top_ref' href='#Top'>to the top</a><br/> +<a name='Other_Source_Changes'></a><a name='Other_Source_Changes_In_Types'></a> +<h2>Other Changes in Data Types <span class='passed'> 1 </span></h2><hr/> +<span class='h_name'>error.h</span><br/> +<span class="section" onclick="javascript:showContent(this, 'c_10')"> +<span class='ext'>[+]</span> <span class='ttype'>enum</span> lcb_STATUS <span class='passed'> 1 </span></span> +<br/> +<div id="c_10" style="display:none;"> +<table class='ptable'><tr> +<th class='pn'></th> +<th class='chg'>Change</th> +<th>Effect</th></tr><tr> +<th>1</th> +<td>The member <b>LCB_ERR_DML_FAILURE</b> with value <b>405</b> has been added.</td> +<td>No effect.</td> +</tr> +</table> +<span class="sect_aff" onclick="javascript:showContent(this, 'c_11')"> +[+] affected symbols: 472 (76.5%)</span> +<div id="c_11" style="display:none;"> +<div class='affected'><span class='iname_a'>lcb_analytics <span class='sym_p'><span>( lcb_INSTANCE* <i>instance</i></span>, <span>void* <i>cookie</i></span>, <span>lcb_CMDANALYTICS const* <i>cmd</i></span> )</span></span><br/> +<div class='affect'>Return value is of type 'enum lcb_STATUS'.</div> +<span class='iname_a'>lcb_analytics_cancel <span class='sym_p'><span>( lcb_INSTANCE* <i>instance</i></span>, <span>lcb_ANALYTICS_HANDLE* <i>handle</i></span> )</span></span><br/> +<div class='affect'>Return value is of type 'enum lcb_STATUS'.</div> +<span class='iname_a'>lcb_cbflush3 <span class='sym_p'><span>( lcb_INSTANCE* <i>instance</i></span>, <span>void* <i>cookie</i></span>, <span>struct lcb_CMDCBFLUSH const* <i>cmd</i></span> )</span></span><br/> +<div class='affect'>Return value is of type 'enum lcb_STATUS'.</div> +<span class='iname_a'>lcb_cmdanalytics_callback <span class='sym_p'><span>( lcb_CMDANALYTICS* <i>cmd</i></span>, <span>lcb_ANALYTICS_CALLBACK <i>callback</i></span> )</span></span><br/> +<div class='affect'>Return value is of type 'enum lcb_STATUS'.</div> +<span class='iname_a'>lcb_cmdanalytics_client_context_id <span class='sym_p'><span>( lcb_CMDANALYTICS* <i>cmd</i></span>, <span>char const* <i>value</i></span>, <span>size_t <i>value_len</i></span> )</span></span><br/> +<div class='affect'>Return value is of type 'enum lcb_STATUS'.</div> +<span class='iname_a'>lcb_cmdanalytics_consistency <span class='sym_p'><span>( lcb_CMDANALYTICS* <i>cmd</i></span>, <span>enum lcb_ANALYTICS_CONSISTENCY <i>level</i></span> )</span></span><br/> +<div class='affect'>Return value is of type 'enum lcb_STATUS'.</div> +<span class='iname_a'>lcb_cmdanalytics_create <span class='sym_p'><span>( lcb_CMDANALYTICS** <i>cmd</i></span> )</span></span><br/> +<div class='affect'>Return value is of type 'enum lcb_STATUS'.</div> +<span class='iname_a'>lcb_cmdanalytics_deferred <span class='sym_p'><span>( lcb_CMDANALYTICS* <i>cmd</i></span>, <span>int <i>deferred</i></span> )</span></span><br/> +<div class='affect'>Return value is of type 'enum lcb_STATUS'.</div> +<span class='iname_a'>lcb_cmdanalytics_destroy <span class='sym_p'><span>( lcb_CMDANALYTICS* <i>cmd</i></span> )</span></span><br/> +<div class='affect'>Return value is of type 'enum lcb_STATUS'.</div> +<span class='iname_a'>lcb_cmdanalytics_encoded_payload <span class='sym_p'><span>( lcb_CMDANALYTICS* <i>cmd</i></span>, <span>char const** <i>query</i></span>, <span>size_t* <i>query_len</i></span> )</span></span><br/> +<div class='affect'>Return value is of type 'enum lcb_STATUS'.</div> + <b>...</b> +<br/> +</div> +</div> +<br/><br/></div> + +<br/> +<a class='top_ref' href='#Top'>to the top</a><br/> +<a name='Other_Source_Changes_In_Constants'></a> +<h2>Other Changes in Constants <span class='passed'> 2 </span></h2><hr/> +<span class='h_name'>cntl-private.h</span><br/> +<span class="section" onclick="javascript:showContent(this, 'c_12')"> +<span class='ext'>[+]</span> LCB_CNTL_QUERY_GRACE_PERIOD</span> +<br/> +<div id="c_12" style="display:none;"> +<table class='ptable'> +<tr> +<th class='pn'></th> +<th class='chg'>Change</th> +<th>Effect</th> +</tr> +<tr> +<th>1</th> +<td>The constant <b>LCB_CNTL_QUERY_GRACE_PERIOD</b> with value <b>0x64</b> has been added.</td> +<td>No effect.</td> +</tr> +</table> +<br/> +</div> + +<br/> +<span class='h_name'>cntl.h</span><br/> +<span class="section" onclick="javascript:showContent(this, 'c_13')"> +<span class='ext'>[+]</span> LCB_CNTL_ENABLE_ERRMAP</span> +<br/> +<div id="c_13" style="display:none;"> +<table class='ptable'> +<tr> +<th class='pn'></th> +<th class='chg'>Change</th> +<th>Effect</th> +</tr> +<tr> +<th>1</th> +<td>The constant <b>LCB_CNTL_ENABLE_ERRMAP</b> with value <b>0x65</b> has been added.</td> +<td>No effect.</td> +</tr> +</table> +<br/> +</div> + +<br/> +<a class='top_ref' href='#Top'>to the top</a><br/> +<a name='Headers'></a><h2>Header Files <span class='gray'> 25 </span></h2><hr/> +<div class='h_list'> +assert.h<br/> +auth.h<br/> +cntl-private.h<br/> +cntl.h<br/> +configuration.h<br/> +couchbase.h<br/> +crypto.h<br/> +iops.h<br/> +ixmgmt.h<br/> +kvbuf.h<br/> +libev_io_opts.h<br/> +libevent_io_opts.h<br/> +libuv_compat.h<br/> +libuv_io_opts.h<br/> +logger.h<br/> +metrics.h<br/> +pktfwd.h<br/> +plugin-internal.h<br/> +select_io_opts.h<br/> +sysdefs.h<br/> +tracing.h<br/> +utils.h<br/> +vbucket.h<br/> +visibility.h<br/> +wsaerr.h<br/> +</div> +<br/><a class='top_ref' href='#Top'>to the top</a><br/> +<a name='Libs'></a><h2>Libraries <span class='gray'> 1 </span></h2><hr/> +<div class='lib_list'> +libcouchbase.so.7.0.1<br/> +</div> +<br/><a class='top_ref' href='#Top'>to the top</a><br/> +<br/><br/><br/></div><hr/> +<div class='footer' align='right'><i>Generated by <a href='https://github.com/lvc/abi-compliance-checker'>ABI Compliance Checker</a> 2.3  </i> +</div> +<br/> + +</body></html> diff --git a/compat_reports/3.1.1_to_3.1.2/compat_report.html b/compat_reports/3.1.1_to_3.1.2/compat_report.html new file mode 100644 index 0000000..2ea4e63 --- /dev/null +++ b/compat_reports/3.1.1_to_3.1.2/compat_report.html @@ -0,0 +1,725 @@ +<!-- kind:binary;verdict:incompatible;affected:3.9;added:0;removed:0;type_problems_high:0;type_problems_medium:1;type_problems_low:1;interface_problems_high:0;interface_problems_medium:0;interface_problems_low:0;changed_constants:0;tool_version:2.3 --> +<!-- kind:source;verdict:compatible;affected:0;added:0;removed:0;type_problems_high:0;type_problems_medium:0;type_problems_low:1;interface_problems_high:0;interface_problems_medium:0;interface_problems_low:0;changed_constants:3;tool_version:2.3 --> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<meta name="viewport" content="width=device-width,initial-scale=1" /> +<meta name="keywords" content="libcouchbase, compatibility, API, ABI, report" /> +<meta name="description" content="API/ABI compatibility report for the libcouchbase library between 3.1.1 and 3.1.2 versions" /> +<title>libcouchbase: 3.1.1 to 3.1.2 compatibility report</title> +<style type="text/css"> +body { + font-family:Arial, sans-serif; + background-color:White; + color:Black; +} +hr { + color:Black; + background-color:Black; + height:1px; + border:0; +} +h1 { + margin-bottom:0px; + padding-bottom:0px; + font-size:1.625em; +} +h2 { + margin-bottom:0px; + padding-bottom:0px; + font-size:1.25em; + white-space:nowrap; +} +span.section { + font-weight:bold; + cursor:pointer; + color:#003E69; + white-space:nowrap; + margin-left:0.3125em; +} +span.new_sign { + font-weight:bold; + margin-left:1.65em; + color:#003E69; +} +span.new_sign_lbl { + margin-left:3em; + font-size:1em; + color:Black; +} +span:hover.section { + color:#336699; +} +span.sect_aff { + cursor:pointer; + padding-left:1.55em; + font-size:0.875em; + color:#cc3300; +} +span.sect_info { + cursor:pointer; + padding-left:1.55em; + font-size:0.875em; + color:Black; +} +span.ext { + font-weight:normal; +} +span.h_name { + color:#cc3300; + font-size:0.875em; + font-weight:bold; +} +div.h_list, div.lib_list { + font-size:0.94em; + padding-left:0.4em; +} +span.ns { + color:#408080; + font-size:0.94em; +} +span.lib_name { + color:Green; + font-size:0.875em; + font-weight:bold; +} +span.iname { + font-weight:bold; + color:#003E69; + margin-left:0.3125em; +} +span.iname_b { + font-weight:bold; +} +span.iname_a { + color:#333333; + font-weight:bold; + font-size:0.94em; +} +span.sym_p { + font-weight:normal; + white-space:normal; +} +span.sym_pd { + white-space:normal; +} +span.sym_p span, span.sym_pd span { + white-space:nowrap; +} +div.affect { + padding-left:1em; + padding-bottom:10px; + font-size:0.87em; + font-style:italic; + line-height:0.9em; +} +div.affected { + padding-left:1.9em; + padding-top:10px; +} +table.ptable { + border-collapse:collapse; + border:1px outset black; + margin-left:0.95em; + margin-top:3px; + margin-bottom:3px; + width:56.25em; +} +table.ptable td { + border:1px solid gray; + padding:3px; + font-size:0.875em; + text-align:left; + vertical-align:top; + max-width:28em; + word-wrap:break-word; +} +table.ptable th.pn { + width:2%; +} +table.ptable th.chg { + width:47%; +} +table.vtable { + border-collapse:collapse; + border:1px outset black; + margin-left:1.9em; + margin-top:0.7em; +} +table.vtable td { + border:1px solid gray; + padding:3px; + font-size:0.875em; + vertical-align:top; + max-width:450px; + word-wrap:break-word; +} +table.ptable th, table.vtable th { + background-color:#eeeeee; + font-weight:bold; + color:#333333; + font-family:Verdana, Arial; + font-size:0.875em; + border:1px solid gray; + text-align:center; + vertical-align:top; + white-space:nowrap; + padding:3px; +} +table.summary { + border-collapse:collapse; + border:1px outset black; +} +table.summary th { + background-color:#eeeeee; + font-weight:normal; + text-align:left; + font-size:0.94em; + white-space:nowrap; + border:1px inset gray; + padding:3px; +} +table.summary td { + text-align:right; + white-space:nowrap; + border:1px inset gray; + padding:3px 5px 3px 10px; +} +span.mngl { + padding-left:1em; + font-size:0.875em; + cursor:text; + color:#444444; + font-weight:bold; +} +span.pleft { + padding-left:2.5em; +} +span.sym_ver { + color:#333333; + white-space:nowrap; + font-family:"DejaVu Sans Mono", Monospace; +} +span.attr { + color:#333333; + font-weight:normal; +} +span.color_p { + font-style:italic; + color:Brown; +} +span.p { + font-style:italic; +} +span.fp { + font-style:italic; + background-color:#DCDCDC; +} +span.ttype { + font-weight:normal; +} +span.nowrap { + white-space:nowrap; +} +span.value { + font-weight:bold; +} +.passed { + background-color:#CCFFCC; + font-weight:normal; +} +.warning { + background-color:#F4F4AF; + font-weight:normal; +} +.failed { + background-color:#FFCCCC; + font-weight:normal; +} +.new { + background-color:#C6DEFF; + font-weight:normal; +} +.compatible { + background-color:#CCFFCC; + font-weight:normal; +} +.almost_compatible { + background-color:#FFDAA3; + font-weight:normal; +} +.incompatible { + background-color:#FFCCCC; + font-weight:normal; +} +.gray { + background-color:#DCDCDC; + font-weight:normal; +} +.top_ref { + font-size:0.69em; +} +.footer { + font-size:0.75em; +} + +.tabset { + float:left; +} +a.tab { + border:1px solid Black; + float:left; + margin:0px 5px -1px 0px; + padding:3px 5px 3px 5px; + position:relative; + font-size:0.875em; + background-color:#DDD; + text-decoration:none; + color:Black; +} +a.disabled:hover +{ + color:Black; + background:#EEE; +} +a.active:hover +{ + color:Black; + background:White; +} +a.active { + border-bottom-color:White; + background-color:White; +} +div.tab { + border-top:1px solid Black; + padding:0px; + width:100%; + clear:both; +} +</style> +<script type="text/javascript" language="JavaScript"> +<!-- +function showContent(header, id) +{ + e = document.getElementById(id); + if(e.style.display == 'none') + { + e.style.display = 'block'; + e.style.visibility = 'visible'; + header.innerHTML = header.innerHTML.replace(/\[[^0-9 ]\]/gi,"[−]"); + } + else + { + e.style.display = 'none'; + e.style.visibility = 'hidden'; + header.innerHTML = header.innerHTML.replace(/\[[^0-9 ]\]/gi,"[+]"); + } +} +function initTabs() +{ + var url = window.location.href; + if(url.indexOf('_Source_')!=-1 || url.indexOf('#Source')!=-1) + { + var tab1 = document.getElementById('BinaryID'); + var tab2 = document.getElementById('SourceID'); + tab1.className='tab disabled'; + tab2.className='tab active'; + } + var sets = document.getElementsByTagName('div'); + for (var i = 0; i < sets.length; i++) + { + if (sets[i].className.indexOf('tabset') != -1) + { + var tabs = []; + var links = sets[i].getElementsByTagName('a'); + for (var j = 0; j < links.length; j++) + { + if (links[j].className.indexOf('tab') != -1) + { + tabs.push(links[j]); + links[j].tabs = tabs; + var tab = document.getElementById(links[j].href.substr(links[j].href.indexOf('#') + 1)); + //reset all tabs on start + if (tab) + { + if (links[j].className.indexOf('active')!=-1) { + tab.style.display = 'block'; + } + else { + tab.style.display = 'none'; + } + } + links[j].onclick = function() + { + var tab = document.getElementById(this.href.substr(this.href.indexOf('#') + 1)); + if (tab) + { + //reset all tabs before change + for (var k = 0; k < this.tabs.length; k++) + { + document.getElementById(this.tabs[k].href.substr(this.tabs[k].href.indexOf('#') + 1)).style.display = 'none'; + this.tabs[k].className = this.tabs[k].className.replace('active', 'disabled'); + } + this.className = 'tab active'; + tab.style.display = 'block'; + // window.location.hash = this.id.replace('ID', ''); + return false; + } + } + } + } + } + } + if(url.indexOf('#')!=-1) { + location.href=location.href; + } +} +if (window.addEventListener) window.addEventListener('load', initTabs, false); +else if (window.attachEvent) window.attachEvent('onload', initTabs); +--> +</script> +</head> +<body><a name='Source'></a><a name='Binary'></a><a name='Top'></a><h1>API compatibility report for the <span style='color:Blue;'>libcouchbase</span> library between <span style='color:Red;'>3.1.1</span> and <span style='color:Red;'>3.1.2</span> versions on <span style='color:Blue;'>x86_64</span></h1> + + <br/> + <div class='tabset'> + <a id='BinaryID' href='#BinaryTab' class='tab active'>Binary<br/>Compatibility</a> + <a id='SourceID' href='#SourceTab' style='margin-left:3px' class='tab disabled'>Source<br/>Compatibility</a> + </div><div id='BinaryTab' class='tab'> +<h2>Test Info</h2><hr/> +<table class='summary'> +<tr><th>Library Name</th><td>libcouchbase</td></tr> +<tr><th>Version #1</th><td>3.1.1</td></tr> +<tr><th>Version #2</th><td>3.1.2</td></tr> +<tr><th>Arch</th><td>x86_64</td></tr> +<tr><th>GCC Version</th><td>10</td></tr> +<tr><th>Subject</th><td width='150px'>Binary Compatibility</td></tr> +</table> +<h2>Test Results</h2><hr/> +<table class='summary'><tr><th>Total Header Files</th><td><a href='#Headers' style='color:Blue;'>25</a></td></tr> +<tr><th>Total Libraries</th><td><a href='#Libs' style='color:Blue;'>1</a></td></tr> +<tr><th>Total Symbols / Types</th><td>612 / 360</td></tr> +<tr><th>Compatibility</th> +<td class='warning'>96.1%</td> +</tr> +</table> +<h2>Problem Summary</h2><hr/> +<table class='summary'><tr><th></th><th style='text-align:center;'>Severity</th><th style='text-align:center;'>Count</th></tr><tr><th>Added Symbols</th><td>-</td><td>0</td></tr> +<tr><th>Removed Symbols</th><td>High</td><td>0</td></tr> +<tr><th rowspan='3'>Problems with<br/>Data Types</th><td>High</td><td>0</td></tr> +<tr><td>Medium</td><td class='failed'><a href='#Type_Binary_Problems_Medium' style='color:Blue;'>1</a></td></tr> +<tr><td>Low</td><td class='warning'><a href='#Type_Binary_Problems_Low' style='color:Blue;'>1</a></td></tr> +<tr><th rowspan='3'>Problems with<br/>Symbols</th><td>High</td><td>0</td></tr> +<tr><td>Medium</td><td>0</td></tr> +<tr><td>Low</td><td>0</td></tr> +<tr><th>Problems with<br/>Constants</th><td>Low</td><td>0</td></tr> +</table> + +<a name='Medium_Risk_Binary_Problems'></a><a name='Type_Binary_Problems_Medium'></a> +<h2>Problems with Data Types, Medium Severity <span class='failed'> 1 </span></h2><hr/> +<span class='h_name'>vbucket.h</span><br/> +<span class="section" onclick="javascript:showContent(this, 'c_1')"> +<span class='ext'>[+]</span> <span class='ttype'>struct</span> lcbvb_CONFIG_st <span class='failed'> 1 </span></span> +<br/> +<div id="c_1" style="display:none;"> +<table class='ptable'><tr> +<th class='pn'></th> +<th class='chg'>Change</th> +<th>Effect</th></tr><tr> +<th>1</th> +<td>Type of field <b>revid</b> has been changed from <span class='nowrap'><b>int</b> (<b>4</b> bytes)</span> to <span class='nowrap'><b>int64_t</b> (<b>8</b> bytes)</span>.</td> +<td>1) Size of the inclusive type has been changed.<br/>2) Previous accesses of applications and library functions to this field and fields at higher positions of the structure definition may be broken.</td> +</tr> +</table> +<span class="sect_aff" onclick="javascript:showContent(this, 'c_2')"> +[+] affected symbols: 48 (7.8%)</span> +<div id="c_2" style="display:none;"> +<div class='affected'><span class='iname_a'>lcbvb_compare <span class='sym_p'><span>( lcbvb_CONFIG* <span class='fp'>from</span></span>, <span>lcbvb_CONFIG* <i>to</i></span> )</span></span><br/> +<div class='affect'>1st parameter 'from' (pointer) has base type 'struct lcbvb_CONFIG_st'.</div> +<span class='iname_a'>lcbvb_create <span class='sym_p'>( )</span></span><br/> +<div class='affect'>Return value (pointer) has base type 'struct lcbvb_CONFIG_st'.</div> +<span class='iname_a'>lcbvb_destroy <span class='sym_p'><span>( lcbvb_CONFIG* <span class='fp'>conf</span></span> )</span></span><br/> +<div class='affect'>1st parameter 'conf' (pointer) has base type 'struct lcbvb_CONFIG_st'.</div> +<span class='iname_a'>lcbvb_genconfig <span class='sym_p'><span>( lcbvb_CONFIG* <span class='fp'>vb</span></span>, <span>unsigned int <i>nservers</i></span>, <span>unsigned int <i>nreplica</i></span>, <span>unsigned int <i>nvbuckets</i></span> )</span></span><br/> +<div class='affect'>1st parameter 'vb' (pointer) has base type 'struct lcbvb_CONFIG_st'.</div> +<span class='iname_a'>lcbvb_genconfig_ex <span class='sym_p'><span>( lcbvb_CONFIG* <span class='fp'>vb</span></span>, <span>char const* <i>name</i></span>, <span>char const* <i>uuid</i></span>, <span>struct lcbvb_SERVER const* <i>servers</i></span>, <span>unsigned int <i>nservers</i></span>, <span>unsigned int <i>nreplica</i></span>, <span>unsigned int <i>nvbuckets</i></span> )</span></span><br/> +<div class='affect'>1st parameter 'vb' (pointer) has base type 'struct lcbvb_CONFIG_st'.</div> +<span class='iname_a'>lcbvb_genffmap <span class='sym_p'><span>( lcbvb_CONFIG* <span class='fp'>vb</span></span> )</span></span><br/> +<div class='affect'>1st parameter 'vb' (pointer) has base type 'struct lcbvb_CONFIG_st'.</div> +<span class='iname_a'>lcbvb_get_capibase <span class='sym_p'><span>( lcbvb_CONFIG* <span class='fp'>cfg</span></span>, <span>unsigned int <i>ix</i></span>, <span>enum lcbvb_SVCMODE <i>mode</i></span> )</span></span><br/> +<div class='affect'>1st parameter 'cfg' (pointer) has base type 'struct lcbvb_CONFIG_st'.</div> +<span class='iname_a'>lcbvb_get_distmode <span class='sym_p'><span>( lcbvb_CONFIG const* <span class='fp'>cfg</span></span> )</span></span><br/> +<div class='affect'>1st parameter 'cfg' (pointer) has base type 'struct lcbvb_CONFIG_st'.</div> +<span class='iname_a'>lcbvb_get_error <span class='sym_p'><span>( lcbvb_CONFIG const* <span class='fp'>vbc</span></span> )</span></span><br/> +<div class='affect'>1st parameter 'vbc' (pointer) has base type 'struct lcbvb_CONFIG_st'.</div> +<span class='iname_a'>lcbvb_get_hostname <span class='sym_p'><span>( lcbvb_CONFIG const* <span class='fp'>cfg</span></span>, <span>unsigned int <i>ix</i></span> )</span></span><br/> +<div class='affect'>1st parameter 'cfg' (pointer) has base type 'struct lcbvb_CONFIG_st'.</div> + <b>...</b> +<br/> +</div> +</div> +<br/><br/></div> + +<br/> +<a class='top_ref' href='#Top'>to the top</a><br/> +<a name='Low_Risk_Binary_Problems'></a><a name='Type_Binary_Problems_Low'></a> +<h2>Problems with Data Types, Low Severity <span class='warning'> 1 </span></h2><hr/> +<span class='h_name'>vbucket.h</span><br/> +<span class="section" onclick="javascript:showContent(this, 'c_3')"> +<span class='ext'>[+]</span> <span class='ttype'>struct</span> lcbvb_CONFIG_st <span class='warning'> 1 </span></span> +<br/> +<div id="c_3" style="display:none;"> +<table class='ptable'><tr> +<th class='pn'></th> +<th class='chg'>Change</th> +<th>Effect</th></tr><tr> +<th>1</th> +<td>Size of this type has been changed from <b>120</b> bytes to <b>128</b> bytes.</td> +<td>The fields or parameters of such data type may be incorrectly initialized or accessed by old client applications.</td> +</tr> +</table> +<span class="sect_aff" onclick="javascript:showContent(this, 'c_4')"> +[+] affected symbols: 48 (7.8%)</span> +<div id="c_4" style="display:none;"> +<div class='affected'><span class='iname_a'>lcbvb_compare <span class='sym_p'><span>( lcbvb_CONFIG* <span class='fp'>from</span></span>, <span>lcbvb_CONFIG* <i>to</i></span> )</span></span><br/> +<div class='affect'>1st parameter 'from' (pointer) has base type 'struct lcbvb_CONFIG_st'.</div> +<span class='iname_a'>lcbvb_create <span class='sym_p'>( )</span></span><br/> +<div class='affect'>Return value (pointer) has base type 'struct lcbvb_CONFIG_st'.</div> +<span class='iname_a'>lcbvb_destroy <span class='sym_p'><span>( lcbvb_CONFIG* <span class='fp'>conf</span></span> )</span></span><br/> +<div class='affect'>1st parameter 'conf' (pointer) has base type 'struct lcbvb_CONFIG_st'.</div> +<span class='iname_a'>lcbvb_genconfig <span class='sym_p'><span>( lcbvb_CONFIG* <span class='fp'>vb</span></span>, <span>unsigned int <i>nservers</i></span>, <span>unsigned int <i>nreplica</i></span>, <span>unsigned int <i>nvbuckets</i></span> )</span></span><br/> +<div class='affect'>1st parameter 'vb' (pointer) has base type 'struct lcbvb_CONFIG_st'.</div> +<span class='iname_a'>lcbvb_genconfig_ex <span class='sym_p'><span>( lcbvb_CONFIG* <span class='fp'>vb</span></span>, <span>char const* <i>name</i></span>, <span>char const* <i>uuid</i></span>, <span>struct lcbvb_SERVER const* <i>servers</i></span>, <span>unsigned int <i>nservers</i></span>, <span>unsigned int <i>nreplica</i></span>, <span>unsigned int <i>nvbuckets</i></span> )</span></span><br/> +<div class='affect'>1st parameter 'vb' (pointer) has base type 'struct lcbvb_CONFIG_st'.</div> +<span class='iname_a'>lcbvb_genffmap <span class='sym_p'><span>( lcbvb_CONFIG* <span class='fp'>vb</span></span> )</span></span><br/> +<div class='affect'>1st parameter 'vb' (pointer) has base type 'struct lcbvb_CONFIG_st'.</div> +<span class='iname_a'>lcbvb_get_capibase <span class='sym_p'><span>( lcbvb_CONFIG* <span class='fp'>cfg</span></span>, <span>unsigned int <i>ix</i></span>, <span>enum lcbvb_SVCMODE <i>mode</i></span> )</span></span><br/> +<div class='affect'>1st parameter 'cfg' (pointer) has base type 'struct lcbvb_CONFIG_st'.</div> +<span class='iname_a'>lcbvb_get_distmode <span class='sym_p'><span>( lcbvb_CONFIG const* <span class='fp'>cfg</span></span> )</span></span><br/> +<div class='affect'>1st parameter 'cfg' (pointer) has base type 'struct lcbvb_CONFIG_st'.</div> +<span class='iname_a'>lcbvb_get_error <span class='sym_p'><span>( lcbvb_CONFIG const* <span class='fp'>vbc</span></span> )</span></span><br/> +<div class='affect'>1st parameter 'vbc' (pointer) has base type 'struct lcbvb_CONFIG_st'.</div> +<span class='iname_a'>lcbvb_get_hostname <span class='sym_p'><span>( lcbvb_CONFIG const* <span class='fp'>cfg</span></span>, <span>unsigned int <i>ix</i></span> )</span></span><br/> +<div class='affect'>1st parameter 'cfg' (pointer) has base type 'struct lcbvb_CONFIG_st'.</div> + <b>...</b> +<br/> +</div> +</div> +<br/><br/></div> + +<br/> +<a class='top_ref' href='#Top'>to the top</a><br/> +<a name='Headers'></a><h2>Header Files <span class='gray'> 25 </span></h2><hr/> +<div class='h_list'> +assert.h<br/> +auth.h<br/> +cntl-private.h<br/> +cntl.h<br/> +configuration.h<br/> +couchbase.h<br/> +crypto.h<br/> +iops.h<br/> +ixmgmt.h<br/> +kvbuf.h<br/> +libev_io_opts.h<br/> +libevent_io_opts.h<br/> +libuv_compat.h<br/> +libuv_io_opts.h<br/> +logger.h<br/> +metrics.h<br/> +pktfwd.h<br/> +plugin-internal.h<br/> +select_io_opts.h<br/> +sysdefs.h<br/> +tracing.h<br/> +utils.h<br/> +vbucket.h<br/> +visibility.h<br/> +wsaerr.h<br/> +</div> +<br/><a class='top_ref' href='#Top'>to the top</a><br/> +<a name='Libs'></a><h2>Libraries <span class='gray'> 1 </span></h2><hr/> +<div class='lib_list'> +libcouchbase.so.7.0.2<br/> +</div> +<br/><a class='top_ref' href='#Top'>to the top</a><br/> +<br/><br/><br/></div><div id='SourceTab' class='tab'> +<h2>Test Info</h2><hr/> +<table class='summary'> +<tr><th>Library Name</th><td>libcouchbase</td></tr> +<tr><th>Version #1</th><td>3.1.1</td></tr> +<tr><th>Version #2</th><td>3.1.2</td></tr> +<tr><th>Arch</th><td>x86_64</td></tr> +<tr><th>Subject</th><td width='150px'>Source Compatibility</td></tr> +</table> +<h2>Test Results</h2><hr/> +<table class='summary'><tr><th>Total Header Files</th><td><a href='#Headers' style='color:Blue;'>25</a></td></tr> +<tr><th>Total Libraries</th><td><a href='#Libs' style='color:Blue;'>1</a></td></tr> +<tr><th>Total Symbols / Types</th><td>617 / 366</td></tr> +<tr><th>Compatibility</th> +<td class='compatible'>100%</td> +</tr> +</table> +<h2>Problem Summary</h2><hr/> +<table class='summary'><tr><th></th><th style='text-align:center;'>Severity</th><th style='text-align:center;'>Count</th></tr><tr><th>Added Symbols</th><td>-</td><td>0</td></tr> +<tr><th>Removed Symbols</th><td>High</td><td>0</td></tr> +<tr><th rowspan='3'>Problems with<br/>Data Types</th><td>High</td><td>0</td></tr> +<tr><td>Medium</td><td>0</td></tr> +<tr><td>Low</td><td class='warning'><a href='#Type_Source_Problems_Low' style='color:Blue;'>1</a></td></tr> +<tr><th rowspan='3'>Problems with<br/>Symbols</th><td>High</td><td>0</td></tr> +<tr><td>Medium</td><td>0</td></tr> +<tr><td>Low</td><td>0</td></tr> +<tr><th>Problems with<br/>Constants</th><td>Low</td><td class='warning'><a href='#Constant_Source_Problems_Low' style='color:Blue;'>3</a></td></tr> +</table> + +<a name='Low_Risk_Source_Problems'></a><a name='Type_Source_Problems_Low'></a> +<h2>Problems with Data Types, Low Severity <span class='warning'> 1 </span></h2><hr/> +<span class='h_name'>vbucket.h</span><br/> +<span class="section" onclick="javascript:showContent(this, 'c_5')"> +<span class='ext'>[+]</span> <span class='ttype'>struct</span> lcbvb_CONFIG_st <span class='warning'> 1 </span></span> +<br/> +<div id="c_5" style="display:none;"> +<table class='ptable'><tr> +<th class='pn'></th> +<th class='chg'>Change</th> +<th>Effect</th></tr><tr> +<th>1</th> +<td>Type of field <b>revid</b> has been changed from <b>int</b> to <b>int64_t</b>.</td> +<td>Recompilation of a client program may be broken.</td> +</tr> +</table> +<span class="sect_aff" onclick="javascript:showContent(this, 'c_6')"> +[+] affected symbols: 49 (7.9%)</span> +<div id="c_6" style="display:none;"> +<div class='affected'><span class='iname_a'>lcbvb_compare <span class='sym_p'><span>( lcbvb_CONFIG* <span class='fp'>from</span></span>, <span>lcbvb_CONFIG* <i>to</i></span> )</span></span><br/> +<div class='affect'>1st parameter 'from' (pointer) has base type 'struct lcbvb_CONFIG_st'.</div> +<span class='iname_a'>lcbvb_create <span class='sym_p'>( )</span></span><br/> +<div class='affect'>Return value (pointer) has base type 'struct lcbvb_CONFIG_st'.</div> +<span class='iname_a'>lcbvb_destroy <span class='sym_p'><span>( lcbvb_CONFIG* <span class='fp'>conf</span></span> )</span></span><br/> +<div class='affect'>1st parameter 'conf' (pointer) has base type 'struct lcbvb_CONFIG_st'.</div> +<span class='iname_a'>lcbvb_genconfig <span class='sym_p'><span>( lcbvb_CONFIG* <span class='fp'>vb</span></span>, <span>unsigned int <i>nservers</i></span>, <span>unsigned int <i>nreplica</i></span>, <span>unsigned int <i>nvbuckets</i></span> )</span></span><br/> +<div class='affect'>1st parameter 'vb' (pointer) has base type 'struct lcbvb_CONFIG_st'.</div> +<span class='iname_a'>lcbvb_genconfig_ex <span class='sym_p'><span>( lcbvb_CONFIG* <span class='fp'>vb</span></span>, <span>char const* <i>name</i></span>, <span>char const* <i>uuid</i></span>, <span>struct lcbvb_SERVER const* <i>servers</i></span>, <span>unsigned int <i>nservers</i></span>, <span>unsigned int <i>nreplica</i></span>, <span>unsigned int <i>nvbuckets</i></span> )</span></span><br/> +<div class='affect'>1st parameter 'vb' (pointer) has base type 'struct lcbvb_CONFIG_st'.</div> +<span class='iname_a'>lcbvb_genffmap <span class='sym_p'><span>( lcbvb_CONFIG* <span class='fp'>vb</span></span> )</span></span><br/> +<div class='affect'>1st parameter 'vb' (pointer) has base type 'struct lcbvb_CONFIG_st'.</div> +<span class='iname_a'>lcbvb_get_capibase <span class='sym_p'><span>( lcbvb_CONFIG* <span class='fp'>cfg</span></span>, <span>unsigned int <i>ix</i></span>, <span>enum lcbvb_SVCMODE <i>mode</i></span> )</span></span><br/> +<div class='affect'>1st parameter 'cfg' (pointer) has base type 'struct lcbvb_CONFIG_st'.</div> +<span class='iname_a'>lcbvb_get_distmode <span class='sym_p'><span>( lcbvb_CONFIG const* <span class='fp'>cfg</span></span> )</span></span><br/> +<div class='affect'>1st parameter 'cfg' (pointer) has base type 'struct lcbvb_CONFIG_st'.</div> +<span class='iname_a'>lcbvb_get_error <span class='sym_p'><span>( lcbvb_CONFIG const* <span class='fp'>vbc</span></span> )</span></span><br/> +<div class='affect'>1st parameter 'vbc' (pointer) has base type 'struct lcbvb_CONFIG_st'.</div> +<span class='iname_a'>lcbvb_get_hostname <span class='sym_p'><span>( lcbvb_CONFIG const* <span class='fp'>cfg</span></span>, <span>unsigned int <i>ix</i></span> )</span></span><br/> +<div class='affect'>1st parameter 'cfg' (pointer) has base type 'struct lcbvb_CONFIG_st'.</div> + <b>...</b> +<br/> +</div> +</div> +<br/><br/></div> + +<br/> +<a class='top_ref' href='#Top'>to the top</a><br/> +<a name='Constant_Source_Problems_Low'></a> +<h2>Problems with Constants, Low Severity <span class='warning'> 3 </span></h2><hr/> +<span class='h_name'>configuration.h</span><br/> +<span class="section" onclick="javascript:showContent(this, 'c_7')"> +<span class='ext'>[+]</span> LCB_VERSION</span> +<br/> +<div id="c_7" style="display:none;"> +<table class='ptable'> +<tr> +<th class='pn'></th> +<th class='chg'>Change</th> +<th>Effect</th> +</tr> +<tr> +<th>1</th> +<td>The value of constant <b>LCB_VERSION</b> has been changed from <b>0x030101</b> to <b>0x030102</b>.</td> +<td>Recompilation of a client program may be broken.</td> +</tr> +</table> +<br/> +</div> + +<span class="section" onclick="javascript:showContent(this, 'c_8')"> +<span class='ext'>[+]</span> LCB_VERSION_CHANGESET</span> +<br/> +<div id="c_8" style="display:none;"> +<table class='ptable'> +<tr> +<th class='pn'></th> +<th class='chg'>Change</th> +<th>Effect</th> +</tr> +<tr> +<th>1</th> +<td>The value of constant <b>LCB_VERSION_CHANGESET</b> has been changed from <b>"614635bc74fa006eca454a8d90b1c92d31eaa7c6"</b> to <b>"f463b2eff72b016adcfc00cc2787e6d0201147fe"</b>.</td> +<td>Recompilation of a client program may be broken.</td> +</tr> +</table> +<br/> +</div> + +<span class="section" onclick="javascript:showContent(this, 'c_9')"> +<span class='ext'>[+]</span> LCB_VERSION_STRING</span> +<br/> +<div id="c_9" style="display:none;"> +<table class='ptable'> +<tr> +<th class='pn'></th> +<th class='chg'>Change</th> +<th>Effect</th> +</tr> +<tr> +<th>1</th> +<td>The value of constant <b>LCB_VERSION_STRING</b> has been changed from <b>"3.1.1"</b> to <b>"3.1.2"</b>.</td> +<td>Recompilation of a client program may be broken.</td> +</tr> +</table> +<br/> +</div> + +<br/> +<a class='top_ref' href='#Top'>to the top</a><br/> +<a name='Headers'></a><h2>Header Files <span class='gray'> 25 </span></h2><hr/> +<div class='h_list'> +assert.h<br/> +auth.h<br/> +cntl-private.h<br/> +cntl.h<br/> +configuration.h<br/> +couchbase.h<br/> +crypto.h<br/> +iops.h<br/> +ixmgmt.h<br/> +kvbuf.h<br/> +libev_io_opts.h<br/> +libevent_io_opts.h<br/> +libuv_compat.h<br/> +libuv_io_opts.h<br/> +logger.h<br/> +metrics.h<br/> +pktfwd.h<br/> +plugin-internal.h<br/> +select_io_opts.h<br/> +sysdefs.h<br/> +tracing.h<br/> +utils.h<br/> +vbucket.h<br/> +visibility.h<br/> +wsaerr.h<br/> +</div> +<br/><a class='top_ref' href='#Top'>to the top</a><br/> +<a name='Libs'></a><h2>Libraries <span class='gray'> 1 </span></h2><hr/> +<div class='lib_list'> +libcouchbase.so.7.0.2<br/> +</div> +<br/><a class='top_ref' href='#Top'>to the top</a><br/> +<br/><br/><br/></div><hr/> +<div class='footer' align='right'><i>Generated by <a href='https://github.com/lvc/abi-compliance-checker'>ABI Compliance Checker</a> 2.3  </i> +</div> +<br/> + +</body></html> diff --git a/compat_reports/3.1.2_to_3.1.3/compat_report.html b/compat_reports/3.1.2_to_3.1.3/compat_report.html new file mode 100644 index 0000000..a420dca --- /dev/null +++ b/compat_reports/3.1.2_to_3.1.3/compat_report.html @@ -0,0 +1,725 @@ +<!-- kind:binary;verdict:incompatible;affected:3.9;added:0;removed:0;type_problems_high:0;type_problems_medium:1;type_problems_low:1;interface_problems_high:0;interface_problems_medium:0;interface_problems_low:0;changed_constants:0;tool_version:2.3 --> +<!-- kind:source;verdict:compatible;affected:0;added:0;removed:0;type_problems_high:0;type_problems_medium:0;type_problems_low:1;interface_problems_high:0;interface_problems_medium:0;interface_problems_low:0;changed_constants:3;tool_version:2.3 --> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<meta name="viewport" content="width=device-width,initial-scale=1" /> +<meta name="keywords" content="libcouchbase, compatibility, API, ABI, report" /> +<meta name="description" content="API/ABI compatibility report for the libcouchbase library between 3.1.2 and 3.1.3 versions" /> +<title>libcouchbase: 3.1.2 to 3.1.3 compatibility report</title> +<style type="text/css"> +body { + font-family:Arial, sans-serif; + background-color:White; + color:Black; +} +hr { + color:Black; + background-color:Black; + height:1px; + border:0; +} +h1 { + margin-bottom:0px; + padding-bottom:0px; + font-size:1.625em; +} +h2 { + margin-bottom:0px; + padding-bottom:0px; + font-size:1.25em; + white-space:nowrap; +} +span.section { + font-weight:bold; + cursor:pointer; + color:#003E69; + white-space:nowrap; + margin-left:0.3125em; +} +span.new_sign { + font-weight:bold; + margin-left:1.65em; + color:#003E69; +} +span.new_sign_lbl { + margin-left:3em; + font-size:1em; + color:Black; +} +span:hover.section { + color:#336699; +} +span.sect_aff { + cursor:pointer; + padding-left:1.55em; + font-size:0.875em; + color:#cc3300; +} +span.sect_info { + cursor:pointer; + padding-left:1.55em; + font-size:0.875em; + color:Black; +} +span.ext { + font-weight:normal; +} +span.h_name { + color:#cc3300; + font-size:0.875em; + font-weight:bold; +} +div.h_list, div.lib_list { + font-size:0.94em; + padding-left:0.4em; +} +span.ns { + color:#408080; + font-size:0.94em; +} +span.lib_name { + color:Green; + font-size:0.875em; + font-weight:bold; +} +span.iname { + font-weight:bold; + color:#003E69; + margin-left:0.3125em; +} +span.iname_b { + font-weight:bold; +} +span.iname_a { + color:#333333; + font-weight:bold; + font-size:0.94em; +} +span.sym_p { + font-weight:normal; + white-space:normal; +} +span.sym_pd { + white-space:normal; +} +span.sym_p span, span.sym_pd span { + white-space:nowrap; +} +div.affect { + padding-left:1em; + padding-bottom:10px; + font-size:0.87em; + font-style:italic; + line-height:0.9em; +} +div.affected { + padding-left:1.9em; + padding-top:10px; +} +table.ptable { + border-collapse:collapse; + border:1px outset black; + margin-left:0.95em; + margin-top:3px; + margin-bottom:3px; + width:56.25em; +} +table.ptable td { + border:1px solid gray; + padding:3px; + font-size:0.875em; + text-align:left; + vertical-align:top; + max-width:28em; + word-wrap:break-word; +} +table.ptable th.pn { + width:2%; +} +table.ptable th.chg { + width:47%; +} +table.vtable { + border-collapse:collapse; + border:1px outset black; + margin-left:1.9em; + margin-top:0.7em; +} +table.vtable td { + border:1px solid gray; + padding:3px; + font-size:0.875em; + vertical-align:top; + max-width:450px; + word-wrap:break-word; +} +table.ptable th, table.vtable th { + background-color:#eeeeee; + font-weight:bold; + color:#333333; + font-family:Verdana, Arial; + font-size:0.875em; + border:1px solid gray; + text-align:center; + vertical-align:top; + white-space:nowrap; + padding:3px; +} +table.summary { + border-collapse:collapse; + border:1px outset black; +} +table.summary th { + background-color:#eeeeee; + font-weight:normal; + text-align:left; + font-size:0.94em; + white-space:nowrap; + border:1px inset gray; + padding:3px; +} +table.summary td { + text-align:right; + white-space:nowrap; + border:1px inset gray; + padding:3px 5px 3px 10px; +} +span.mngl { + padding-left:1em; + font-size:0.875em; + cursor:text; + color:#444444; + font-weight:bold; +} +span.pleft { + padding-left:2.5em; +} +span.sym_ver { + color:#333333; + white-space:nowrap; + font-family:"DejaVu Sans Mono", Monospace; +} +span.attr { + color:#333333; + font-weight:normal; +} +span.color_p { + font-style:italic; + color:Brown; +} +span.p { + font-style:italic; +} +span.fp { + font-style:italic; + background-color:#DCDCDC; +} +span.ttype { + font-weight:normal; +} +span.nowrap { + white-space:nowrap; +} +span.value { + font-weight:bold; +} +.passed { + background-color:#CCFFCC; + font-weight:normal; +} +.warning { + background-color:#F4F4AF; + font-weight:normal; +} +.failed { + background-color:#FFCCCC; + font-weight:normal; +} +.new { + background-color:#C6DEFF; + font-weight:normal; +} +.compatible { + background-color:#CCFFCC; + font-weight:normal; +} +.almost_compatible { + background-color:#FFDAA3; + font-weight:normal; +} +.incompatible { + background-color:#FFCCCC; + font-weight:normal; +} +.gray { + background-color:#DCDCDC; + font-weight:normal; +} +.top_ref { + font-size:0.69em; +} +.footer { + font-size:0.75em; +} + +.tabset { + float:left; +} +a.tab { + border:1px solid Black; + float:left; + margin:0px 5px -1px 0px; + padding:3px 5px 3px 5px; + position:relative; + font-size:0.875em; + background-color:#DDD; + text-decoration:none; + color:Black; +} +a.disabled:hover +{ + color:Black; + background:#EEE; +} +a.active:hover +{ + color:Black; + background:White; +} +a.active { + border-bottom-color:White; + background-color:White; +} +div.tab { + border-top:1px solid Black; + padding:0px; + width:100%; + clear:both; +} +</style> +<script type="text/javascript" language="JavaScript"> +<!-- +function showContent(header, id) +{ + e = document.getElementById(id); + if(e.style.display == 'none') + { + e.style.display = 'block'; + e.style.visibility = 'visible'; + header.innerHTML = header.innerHTML.replace(/\[[^0-9 ]\]/gi,"[−]"); + } + else + { + e.style.display = 'none'; + e.style.visibility = 'hidden'; + header.innerHTML = header.innerHTML.replace(/\[[^0-9 ]\]/gi,"[+]"); + } +} +function initTabs() +{ + var url = window.location.href; + if(url.indexOf('_Source_')!=-1 || url.indexOf('#Source')!=-1) + { + var tab1 = document.getElementById('BinaryID'); + var tab2 = document.getElementById('SourceID'); + tab1.className='tab disabled'; + tab2.className='tab active'; + } + var sets = document.getElementsByTagName('div'); + for (var i = 0; i < sets.length; i++) + { + if (sets[i].className.indexOf('tabset') != -1) + { + var tabs = []; + var links = sets[i].getElementsByTagName('a'); + for (var j = 0; j < links.length; j++) + { + if (links[j].className.indexOf('tab') != -1) + { + tabs.push(links[j]); + links[j].tabs = tabs; + var tab = document.getElementById(links[j].href.substr(links[j].href.indexOf('#') + 1)); + //reset all tabs on start + if (tab) + { + if (links[j].className.indexOf('active')!=-1) { + tab.style.display = 'block'; + } + else { + tab.style.display = 'none'; + } + } + links[j].onclick = function() + { + var tab = document.getElementById(this.href.substr(this.href.indexOf('#') + 1)); + if (tab) + { + //reset all tabs before change + for (var k = 0; k < this.tabs.length; k++) + { + document.getElementById(this.tabs[k].href.substr(this.tabs[k].href.indexOf('#') + 1)).style.display = 'none'; + this.tabs[k].className = this.tabs[k].className.replace('active', 'disabled'); + } + this.className = 'tab active'; + tab.style.display = 'block'; + // window.location.hash = this.id.replace('ID', ''); + return false; + } + } + } + } + } + } + if(url.indexOf('#')!=-1) { + location.href=location.href; + } +} +if (window.addEventListener) window.addEventListener('load', initTabs, false); +else if (window.attachEvent) window.attachEvent('onload', initTabs); +--> +</script> +</head> +<body><a name='Source'></a><a name='Binary'></a><a name='Top'></a><h1>API compatibility report for the <span style='color:Blue;'>libcouchbase</span> library between <span style='color:Red;'>3.1.2</span> and <span style='color:Red;'>3.1.3</span> versions on <span style='color:Blue;'>x86_64</span></h1> + + <br/> + <div class='tabset'> + <a id='BinaryID' href='#BinaryTab' class='tab active'>Binary<br/>Compatibility</a> + <a id='SourceID' href='#SourceTab' style='margin-left:3px' class='tab disabled'>Source<br/>Compatibility</a> + </div><div id='BinaryTab' class='tab'> +<h2>Test Info</h2><hr/> +<table class='summary'> +<tr><th>Library Name</th><td>libcouchbase</td></tr> +<tr><th>Version #1</th><td>3.1.2</td></tr> +<tr><th>Version #2</th><td>3.1.3</td></tr> +<tr><th>Arch</th><td>x86_64</td></tr> +<tr><th>GCC Version</th><td>10</td></tr> +<tr><th>Subject</th><td width='150px'>Binary Compatibility</td></tr> +</table> +<h2>Test Results</h2><hr/> +<table class='summary'><tr><th>Total Header Files</th><td><a href='#Headers' style='color:Blue;'>25</a></td></tr> +<tr><th>Total Libraries</th><td><a href='#Libs' style='color:Blue;'>1</a></td></tr> +<tr><th>Total Symbols / Types</th><td>612 / 360</td></tr> +<tr><th>Compatibility</th> +<td class='warning'>96.1%</td> +</tr> +</table> +<h2>Problem Summary</h2><hr/> +<table class='summary'><tr><th></th><th style='text-align:center;'>Severity</th><th style='text-align:center;'>Count</th></tr><tr><th>Added Symbols</th><td>-</td><td>0</td></tr> +<tr><th>Removed Symbols</th><td>High</td><td>0</td></tr> +<tr><th rowspan='3'>Problems with<br/>Data Types</th><td>High</td><td>0</td></tr> +<tr><td>Medium</td><td class='failed'><a href='#Type_Binary_Problems_Medium' style='color:Blue;'>1</a></td></tr> +<tr><td>Low</td><td class='warning'><a href='#Type_Binary_Problems_Low' style='color:Blue;'>1</a></td></tr> +<tr><th rowspan='3'>Problems with<br/>Symbols</th><td>High</td><td>0</td></tr> +<tr><td>Medium</td><td>0</td></tr> +<tr><td>Low</td><td>0</td></tr> +<tr><th>Problems with<br/>Constants</th><td>Low</td><td>0</td></tr> +</table> + +<a name='Medium_Risk_Binary_Problems'></a><a name='Type_Binary_Problems_Medium'></a> +<h2>Problems with Data Types, Medium Severity <span class='failed'> 1 </span></h2><hr/> +<span class='h_name'>vbucket.h</span><br/> +<span class="section" onclick="javascript:showContent(this, 'c_1')"> +<span class='ext'>[+]</span> <span class='ttype'>struct</span> lcbvb_CONFIG_st <span class='failed'> 1 </span></span> +<br/> +<div id="c_1" style="display:none;"> +<table class='ptable'><tr> +<th class='pn'></th> +<th class='chg'>Change</th> +<th>Effect</th></tr><tr> +<th>1</th> +<td>Field <b>revepoch</b> has been added at the middle position of this structural type.</td> +<td>1) Size of the inclusive type has been changed.<br/>2) Layout of structure fields has been changed and therefore fields at higher positions of the structure definition may be incorrectly accessed by applications.</td> +</tr> +</table> +<span class="sect_aff" onclick="javascript:showContent(this, 'c_2')"> +[+] affected symbols: 48 (7.8%)</span> +<div id="c_2" style="display:none;"> +<div class='affected'><span class='iname_a'>lcbvb_compare <span class='sym_p'><span>( lcbvb_CONFIG* <span class='fp'>from</span></span>, <span>lcbvb_CONFIG* <i>to</i></span> )</span></span><br/> +<div class='affect'>1st parameter 'from' (pointer) has base type 'struct lcbvb_CONFIG_st'.</div> +<span class='iname_a'>lcbvb_create <span class='sym_p'>( )</span></span><br/> +<div class='affect'>Return value (pointer) has base type 'struct lcbvb_CONFIG_st'.</div> +<span class='iname_a'>lcbvb_destroy <span class='sym_p'><span>( lcbvb_CONFIG* <span class='fp'>conf</span></span> )</span></span><br/> +<div class='affect'>1st parameter 'conf' (pointer) has base type 'struct lcbvb_CONFIG_st'.</div> +<span class='iname_a'>lcbvb_genconfig <span class='sym_p'><span>( lcbvb_CONFIG* <span class='fp'>vb</span></span>, <span>unsigned int <i>nservers</i></span>, <span>unsigned int <i>nreplica</i></span>, <span>unsigned int <i>nvbuckets</i></span> )</span></span><br/> +<div class='affect'>1st parameter 'vb' (pointer) has base type 'struct lcbvb_CONFIG_st'.</div> +<span class='iname_a'>lcbvb_genconfig_ex <span class='sym_p'><span>( lcbvb_CONFIG* <span class='fp'>vb</span></span>, <span>char const* <i>name</i></span>, <span>char const* <i>uuid</i></span>, <span>struct lcbvb_SERVER const* <i>servers</i></span>, <span>unsigned int <i>nservers</i></span>, <span>unsigned int <i>nreplica</i></span>, <span>unsigned int <i>nvbuckets</i></span> )</span></span><br/> +<div class='affect'>1st parameter 'vb' (pointer) has base type 'struct lcbvb_CONFIG_st'.</div> +<span class='iname_a'>lcbvb_genffmap <span class='sym_p'><span>( lcbvb_CONFIG* <span class='fp'>vb</span></span> )</span></span><br/> +<div class='affect'>1st parameter 'vb' (pointer) has base type 'struct lcbvb_CONFIG_st'.</div> +<span class='iname_a'>lcbvb_get_capibase <span class='sym_p'><span>( lcbvb_CONFIG* <span class='fp'>cfg</span></span>, <span>unsigned int <i>ix</i></span>, <span>enum lcbvb_SVCMODE <i>mode</i></span> )</span></span><br/> +<div class='affect'>1st parameter 'cfg' (pointer) has base type 'struct lcbvb_CONFIG_st'.</div> +<span class='iname_a'>lcbvb_get_distmode <span class='sym_p'><span>( lcbvb_CONFIG const* <span class='fp'>cfg</span></span> )</span></span><br/> +<div class='affect'>1st parameter 'cfg' (pointer) has base type 'struct lcbvb_CONFIG_st'.</div> +<span class='iname_a'>lcbvb_get_error <span class='sym_p'><span>( lcbvb_CONFIG const* <span class='fp'>vbc</span></span> )</span></span><br/> +<div class='affect'>1st parameter 'vbc' (pointer) has base type 'struct lcbvb_CONFIG_st'.</div> +<span class='iname_a'>lcbvb_get_hostname <span class='sym_p'><span>( lcbvb_CONFIG const* <span class='fp'>cfg</span></span>, <span>unsigned int <i>ix</i></span> )</span></span><br/> +<div class='affect'>1st parameter 'cfg' (pointer) has base type 'struct lcbvb_CONFIG_st'.</div> + <b>...</b> +<br/> +</div> +</div> +<br/><br/></div> + +<br/> +<a class='top_ref' href='#Top'>to the top</a><br/> +<a name='Low_Risk_Binary_Problems'></a><a name='Type_Binary_Problems_Low'></a> +<h2>Problems with Data Types, Low Severity <span class='warning'> 1 </span></h2><hr/> +<span class='h_name'>vbucket.h</span><br/> +<span class="section" onclick="javascript:showContent(this, 'c_3')"> +<span class='ext'>[+]</span> <span class='ttype'>struct</span> lcbvb_CONFIG_st <span class='warning'> 1 </span></span> +<br/> +<div id="c_3" style="display:none;"> +<table class='ptable'><tr> +<th class='pn'></th> +<th class='chg'>Change</th> +<th>Effect</th></tr><tr> +<th>1</th> +<td>Size of this type has been changed from <b>128</b> bytes to <b>136</b> bytes.</td> +<td>The fields or parameters of such data type may be incorrectly initialized or accessed by old client applications.</td> +</tr> +</table> +<span class="sect_aff" onclick="javascript:showContent(this, 'c_4')"> +[+] affected symbols: 48 (7.8%)</span> +<div id="c_4" style="display:none;"> +<div class='affected'><span class='iname_a'>lcbvb_compare <span class='sym_p'><span>( lcbvb_CONFIG* <span class='fp'>from</span></span>, <span>lcbvb_CONFIG* <i>to</i></span> )</span></span><br/> +<div class='affect'>1st parameter 'from' (pointer) has base type 'struct lcbvb_CONFIG_st'.</div> +<span class='iname_a'>lcbvb_create <span class='sym_p'>( )</span></span><br/> +<div class='affect'>Return value (pointer) has base type 'struct lcbvb_CONFIG_st'.</div> +<span class='iname_a'>lcbvb_destroy <span class='sym_p'><span>( lcbvb_CONFIG* <span class='fp'>conf</span></span> )</span></span><br/> +<div class='affect'>1st parameter 'conf' (pointer) has base type 'struct lcbvb_CONFIG_st'.</div> +<span class='iname_a'>lcbvb_genconfig <span class='sym_p'><span>( lcbvb_CONFIG* <span class='fp'>vb</span></span>, <span>unsigned int <i>nservers</i></span>, <span>unsigned int <i>nreplica</i></span>, <span>unsigned int <i>nvbuckets</i></span> )</span></span><br/> +<div class='affect'>1st parameter 'vb' (pointer) has base type 'struct lcbvb_CONFIG_st'.</div> +<span class='iname_a'>lcbvb_genconfig_ex <span class='sym_p'><span>( lcbvb_CONFIG* <span class='fp'>vb</span></span>, <span>char const* <i>name</i></span>, <span>char const* <i>uuid</i></span>, <span>struct lcbvb_SERVER const* <i>servers</i></span>, <span>unsigned int <i>nservers</i></span>, <span>unsigned int <i>nreplica</i></span>, <span>unsigned int <i>nvbuckets</i></span> )</span></span><br/> +<div class='affect'>1st parameter 'vb' (pointer) has base type 'struct lcbvb_CONFIG_st'.</div> +<span class='iname_a'>lcbvb_genffmap <span class='sym_p'><span>( lcbvb_CONFIG* <span class='fp'>vb</span></span> )</span></span><br/> +<div class='affect'>1st parameter 'vb' (pointer) has base type 'struct lcbvb_CONFIG_st'.</div> +<span class='iname_a'>lcbvb_get_capibase <span class='sym_p'><span>( lcbvb_CONFIG* <span class='fp'>cfg</span></span>, <span>unsigned int <i>ix</i></span>, <span>enum lcbvb_SVCMODE <i>mode</i></span> )</span></span><br/> +<div class='affect'>1st parameter 'cfg' (pointer) has base type 'struct lcbvb_CONFIG_st'.</div> +<span class='iname_a'>lcbvb_get_distmode <span class='sym_p'><span>( lcbvb_CONFIG const* <span class='fp'>cfg</span></span> )</span></span><br/> +<div class='affect'>1st parameter 'cfg' (pointer) has base type 'struct lcbvb_CONFIG_st'.</div> +<span class='iname_a'>lcbvb_get_error <span class='sym_p'><span>( lcbvb_CONFIG const* <span class='fp'>vbc</span></span> )</span></span><br/> +<div class='affect'>1st parameter 'vbc' (pointer) has base type 'struct lcbvb_CONFIG_st'.</div> +<span class='iname_a'>lcbvb_get_hostname <span class='sym_p'><span>( lcbvb_CONFIG const* <span class='fp'>cfg</span></span>, <span>unsigned int <i>ix</i></span> )</span></span><br/> +<div class='affect'>1st parameter 'cfg' (pointer) has base type 'struct lcbvb_CONFIG_st'.</div> + <b>...</b> +<br/> +</div> +</div> +<br/><br/></div> + +<br/> +<a class='top_ref' href='#Top'>to the top</a><br/> +<a name='Headers'></a><h2>Header Files <span class='gray'> 25 </span></h2><hr/> +<div class='h_list'> +assert.h<br/> +auth.h<br/> +cntl-private.h<br/> +cntl.h<br/> +configuration.h<br/> +couchbase.h<br/> +crypto.h<br/> +iops.h<br/> +ixmgmt.h<br/> +kvbuf.h<br/> +libev_io_opts.h<br/> +libevent_io_opts.h<br/> +libuv_compat.h<br/> +libuv_io_opts.h<br/> +logger.h<br/> +metrics.h<br/> +pktfwd.h<br/> +plugin-internal.h<br/> +select_io_opts.h<br/> +sysdefs.h<br/> +tracing.h<br/> +utils.h<br/> +vbucket.h<br/> +visibility.h<br/> +wsaerr.h<br/> +</div> +<br/><a class='top_ref' href='#Top'>to the top</a><br/> +<a name='Libs'></a><h2>Libraries <span class='gray'> 1 </span></h2><hr/> +<div class='lib_list'> +libcouchbase.so.7.0.3<br/> +</div> +<br/><a class='top_ref' href='#Top'>to the top</a><br/> +<br/><br/><br/></div><div id='SourceTab' class='tab'> +<h2>Test Info</h2><hr/> +<table class='summary'> +<tr><th>Library Name</th><td>libcouchbase</td></tr> +<tr><th>Version #1</th><td>3.1.2</td></tr> +<tr><th>Version #2</th><td>3.1.3</td></tr> +<tr><th>Arch</th><td>x86_64</td></tr> +<tr><th>Subject</th><td width='150px'>Source Compatibility</td></tr> +</table> +<h2>Test Results</h2><hr/> +<table class='summary'><tr><th>Total Header Files</th><td><a href='#Headers' style='color:Blue;'>25</a></td></tr> +<tr><th>Total Libraries</th><td><a href='#Libs' style='color:Blue;'>1</a></td></tr> +<tr><th>Total Symbols / Types</th><td>617 / 366</td></tr> +<tr><th>Compatibility</th> +<td class='compatible'>100%</td> +</tr> +</table> +<h2>Problem Summary</h2><hr/> +<table class='summary'><tr><th></th><th style='text-align:center;'>Severity</th><th style='text-align:center;'>Count</th></tr><tr><th>Added Symbols</th><td>-</td><td>0</td></tr> +<tr><th>Removed Symbols</th><td>High</td><td>0</td></tr> +<tr><th rowspan='3'>Problems with<br/>Data Types</th><td>High</td><td>0</td></tr> +<tr><td>Medium</td><td>0</td></tr> +<tr><td>Low</td><td class='warning'><a href='#Type_Source_Problems_Low' style='color:Blue;'>1</a></td></tr> +<tr><th rowspan='3'>Problems with<br/>Symbols</th><td>High</td><td>0</td></tr> +<tr><td>Medium</td><td>0</td></tr> +<tr><td>Low</td><td>0</td></tr> +<tr><th>Problems with<br/>Constants</th><td>Low</td><td class='warning'><a href='#Constant_Source_Problems_Low' style='color:Blue;'>3</a></td></tr> +</table> + +<a name='Low_Risk_Source_Problems'></a><a name='Type_Source_Problems_Low'></a> +<h2>Problems with Data Types, Low Severity <span class='warning'> 1 </span></h2><hr/> +<span class='h_name'>vbucket.h</span><br/> +<span class="section" onclick="javascript:showContent(this, 'c_5')"> +<span class='ext'>[+]</span> <span class='ttype'>struct</span> lcbvb_CONFIG_st <span class='warning'> 1 </span></span> +<br/> +<div id="c_5" style="display:none;"> +<table class='ptable'><tr> +<th class='pn'></th> +<th class='chg'>Change</th> +<th>Effect</th></tr><tr> +<th>1</th> +<td>Field <b>revepoch</b> has been added to this type.</td> +<td>This field will not be initialized or used by old client applications.</td> +</tr> +</table> +<span class="sect_aff" onclick="javascript:showContent(this, 'c_6')"> +[+] affected symbols: 49 (7.9%)</span> +<div id="c_6" style="display:none;"> +<div class='affected'><span class='iname_a'>lcbvb_compare <span class='sym_p'><span>( lcbvb_CONFIG* <span class='fp'>from</span></span>, <span>lcbvb_CONFIG* <i>to</i></span> )</span></span><br/> +<div class='affect'>1st parameter 'from' (pointer) has base type 'struct lcbvb_CONFIG_st'.</div> +<span class='iname_a'>lcbvb_create <span class='sym_p'>( )</span></span><br/> +<div class='affect'>Return value (pointer) has base type 'struct lcbvb_CONFIG_st'.</div> +<span class='iname_a'>lcbvb_destroy <span class='sym_p'><span>( lcbvb_CONFIG* <span class='fp'>conf</span></span> )</span></span><br/> +<div class='affect'>1st parameter 'conf' (pointer) has base type 'struct lcbvb_CONFIG_st'.</div> +<span class='iname_a'>lcbvb_genconfig <span class='sym_p'><span>( lcbvb_CONFIG* <span class='fp'>vb</span></span>, <span>unsigned int <i>nservers</i></span>, <span>unsigned int <i>nreplica</i></span>, <span>unsigned int <i>nvbuckets</i></span> )</span></span><br/> +<div class='affect'>1st parameter 'vb' (pointer) has base type 'struct lcbvb_CONFIG_st'.</div> +<span class='iname_a'>lcbvb_genconfig_ex <span class='sym_p'><span>( lcbvb_CONFIG* <span class='fp'>vb</span></span>, <span>char const* <i>name</i></span>, <span>char const* <i>uuid</i></span>, <span>struct lcbvb_SERVER const* <i>servers</i></span>, <span>unsigned int <i>nservers</i></span>, <span>unsigned int <i>nreplica</i></span>, <span>unsigned int <i>nvbuckets</i></span> )</span></span><br/> +<div class='affect'>1st parameter 'vb' (pointer) has base type 'struct lcbvb_CONFIG_st'.</div> +<span class='iname_a'>lcbvb_genffmap <span class='sym_p'><span>( lcbvb_CONFIG* <span class='fp'>vb</span></span> )</span></span><br/> +<div class='affect'>1st parameter 'vb' (pointer) has base type 'struct lcbvb_CONFIG_st'.</div> +<span class='iname_a'>lcbvb_get_capibase <span class='sym_p'><span>( lcbvb_CONFIG* <span class='fp'>cfg</span></span>, <span>unsigned int <i>ix</i></span>, <span>enum lcbvb_SVCMODE <i>mode</i></span> )</span></span><br/> +<div class='affect'>1st parameter 'cfg' (pointer) has base type 'struct lcbvb_CONFIG_st'.</div> +<span class='iname_a'>lcbvb_get_distmode <span class='sym_p'><span>( lcbvb_CONFIG const* <span class='fp'>cfg</span></span> )</span></span><br/> +<div class='affect'>1st parameter 'cfg' (pointer) has base type 'struct lcbvb_CONFIG_st'.</div> +<span class='iname_a'>lcbvb_get_error <span class='sym_p'><span>( lcbvb_CONFIG const* <span class='fp'>vbc</span></span> )</span></span><br/> +<div class='affect'>1st parameter 'vbc' (pointer) has base type 'struct lcbvb_CONFIG_st'.</div> +<span class='iname_a'>lcbvb_get_hostname <span class='sym_p'><span>( lcbvb_CONFIG const* <span class='fp'>cfg</span></span>, <span>unsigned int <i>ix</i></span> )</span></span><br/> +<div class='affect'>1st parameter 'cfg' (pointer) has base type 'struct lcbvb_CONFIG_st'.</div> + <b>...</b> +<br/> +</div> +</div> +<br/><br/></div> + +<br/> +<a class='top_ref' href='#Top'>to the top</a><br/> +<a name='Constant_Source_Problems_Low'></a> +<h2>Problems with Constants, Low Severity <span class='warning'> 3 </span></h2><hr/> +<span class='h_name'>configuration.h</span><br/> +<span class="section" onclick="javascript:showContent(this, 'c_7')"> +<span class='ext'>[+]</span> LCB_VERSION</span> +<br/> +<div id="c_7" style="display:none;"> +<table class='ptable'> +<tr> +<th class='pn'></th> +<th class='chg'>Change</th> +<th>Effect</th> +</tr> +<tr> +<th>1</th> +<td>The value of constant <b>LCB_VERSION</b> has been changed from <b>0x030102</b> to <b>0x030103</b>.</td> +<td>Recompilation of a client program may be broken.</td> +</tr> +</table> +<br/> +</div> + +<span class="section" onclick="javascript:showContent(this, 'c_8')"> +<span class='ext'>[+]</span> LCB_VERSION_CHANGESET</span> +<br/> +<div id="c_8" style="display:none;"> +<table class='ptable'> +<tr> +<th class='pn'></th> +<th class='chg'>Change</th> +<th>Effect</th> +</tr> +<tr> +<th>1</th> +<td>The value of constant <b>LCB_VERSION_CHANGESET</b> has been changed from <b>"f463b2eff72b016adcfc00cc2787e6d0201147fe"</b> to <b>"7739e685e579fb981eda1fdf89f7d6fcd5b2ebc9"</b>.</td> +<td>Recompilation of a client program may be broken.</td> +</tr> +</table> +<br/> +</div> + +<span class="section" onclick="javascript:showContent(this, 'c_9')"> +<span class='ext'>[+]</span> LCB_VERSION_STRING</span> +<br/> +<div id="c_9" style="display:none;"> +<table class='ptable'> +<tr> +<th class='pn'></th> +<th class='chg'>Change</th> +<th>Effect</th> +</tr> +<tr> +<th>1</th> +<td>The value of constant <b>LCB_VERSION_STRING</b> has been changed from <b>"3.1.2"</b> to <b>"3.1.3"</b>.</td> +<td>Recompilation of a client program may be broken.</td> +</tr> +</table> +<br/> +</div> + +<br/> +<a class='top_ref' href='#Top'>to the top</a><br/> +<a name='Headers'></a><h2>Header Files <span class='gray'> 25 </span></h2><hr/> +<div class='h_list'> +assert.h<br/> +auth.h<br/> +cntl-private.h<br/> +cntl.h<br/> +configuration.h<br/> +couchbase.h<br/> +crypto.h<br/> +iops.h<br/> +ixmgmt.h<br/> +kvbuf.h<br/> +libev_io_opts.h<br/> +libevent_io_opts.h<br/> +libuv_compat.h<br/> +libuv_io_opts.h<br/> +logger.h<br/> +metrics.h<br/> +pktfwd.h<br/> +plugin-internal.h<br/> +select_io_opts.h<br/> +sysdefs.h<br/> +tracing.h<br/> +utils.h<br/> +vbucket.h<br/> +visibility.h<br/> +wsaerr.h<br/> +</div> +<br/><a class='top_ref' href='#Top'>to the top</a><br/> +<a name='Libs'></a><h2>Libraries <span class='gray'> 1 </span></h2><hr/> +<div class='lib_list'> +libcouchbase.so.7.0.3<br/> +</div> +<br/><a class='top_ref' href='#Top'>to the top</a><br/> +<br/><br/><br/></div><hr/> +<div class='footer' align='right'><i>Generated by <a href='https://github.com/lvc/abi-compliance-checker'>ABI Compliance Checker</a> 2.3  </i> +</div> +<br/> + +</body></html> diff --git a/compat_reports/3.1.3_to_3.1.4/compat_report.html b/compat_reports/3.1.3_to_3.1.4/compat_report.html new file mode 100644 index 0000000..c7aa322 --- /dev/null +++ b/compat_reports/3.1.3_to_3.1.4/compat_report.html @@ -0,0 +1,762 @@ +<!-- kind:binary;verdict:compatible;affected:0;added:10;removed:0;type_problems_high:0;type_problems_medium:0;type_problems_low:2;interface_problems_high:0;interface_problems_medium:0;interface_problems_low:0;changed_constants:0;tool_version:2.3 --> +<!-- kind:source;verdict:compatible;affected:0;added:10;removed:0;type_problems_high:0;type_problems_medium:0;type_problems_low:3;interface_problems_high:0;interface_problems_medium:0;interface_problems_low:0;changed_constants:3;tool_version:2.3 --> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<meta name="viewport" content="width=device-width,initial-scale=1" /> +<meta name="keywords" content="libcouchbase, compatibility, API, ABI, report" /> +<meta name="description" content="API/ABI compatibility report for the libcouchbase library between 3.1.3 and 3.1.4 versions" /> +<title>libcouchbase: 3.1.3 to 3.1.4 compatibility report</title> +<style type="text/css"> +body { + font-family:Arial, sans-serif; + background-color:White; + color:Black; +} +hr { + color:Black; + background-color:Black; + height:1px; + border:0; +} +h1 { + margin-bottom:0px; + padding-bottom:0px; + font-size:1.625em; +} +h2 { + margin-bottom:0px; + padding-bottom:0px; + font-size:1.25em; + white-space:nowrap; +} +span.section { + font-weight:bold; + cursor:pointer; + color:#003E69; + white-space:nowrap; + margin-left:0.3125em; +} +span.new_sign { + font-weight:bold; + margin-left:1.65em; + color:#003E69; +} +span.new_sign_lbl { + margin-left:3em; + font-size:1em; + color:Black; +} +span:hover.section { + color:#336699; +} +span.sect_aff { + cursor:pointer; + padding-left:1.55em; + font-size:0.875em; + color:#cc3300; +} +span.sect_info { + cursor:pointer; + padding-left:1.55em; + font-size:0.875em; + color:Black; +} +span.ext { + font-weight:normal; +} +span.h_name { + color:#cc3300; + font-size:0.875em; + font-weight:bold; +} +div.h_list, div.lib_list { + font-size:0.94em; + padding-left:0.4em; +} +span.ns { + color:#408080; + font-size:0.94em; +} +span.lib_name { + color:Green; + font-size:0.875em; + font-weight:bold; +} +span.iname { + font-weight:bold; + color:#003E69; + margin-left:0.3125em; +} +span.iname_b { + font-weight:bold; +} +span.iname_a { + color:#333333; + font-weight:bold; + font-size:0.94em; +} +span.sym_p { + font-weight:normal; + white-space:normal; +} +span.sym_pd { + white-space:normal; +} +span.sym_p span, span.sym_pd span { + white-space:nowrap; +} +div.affect { + padding-left:1em; + padding-bottom:10px; + font-size:0.87em; + font-style:italic; + line-height:0.9em; +} +div.affected { + padding-left:1.9em; + padding-top:10px; +} +table.ptable { + border-collapse:collapse; + border:1px outset black; + margin-left:0.95em; + margin-top:3px; + margin-bottom:3px; + width:56.25em; +} +table.ptable td { + border:1px solid gray; + padding:3px; + font-size:0.875em; + text-align:left; + vertical-align:top; + max-width:28em; + word-wrap:break-word; +} +table.ptable th.pn { + width:2%; +} +table.ptable th.chg { + width:47%; +} +table.vtable { + border-collapse:collapse; + border:1px outset black; + margin-left:1.9em; + margin-top:0.7em; +} +table.vtable td { + border:1px solid gray; + padding:3px; + font-size:0.875em; + vertical-align:top; + max-width:450px; + word-wrap:break-word; +} +table.ptable th, table.vtable th { + background-color:#eeeeee; + font-weight:bold; + color:#333333; + font-family:Verdana, Arial; + font-size:0.875em; + border:1px solid gray; + text-align:center; + vertical-align:top; + white-space:nowrap; + padding:3px; +} +table.summary { + border-collapse:collapse; + border:1px outset black; +} +table.summary th { + background-color:#eeeeee; + font-weight:normal; + text-align:left; + font-size:0.94em; + white-space:nowrap; + border:1px inset gray; + padding:3px; +} +table.summary td { + text-align:right; + white-space:nowrap; + border:1px inset gray; + padding:3px 5px 3px 10px; +} +span.mngl { + padding-left:1em; + font-size:0.875em; + cursor:text; + color:#444444; + font-weight:bold; +} +span.pleft { + padding-left:2.5em; +} +span.sym_ver { + color:#333333; + white-space:nowrap; + font-family:"DejaVu Sans Mono", Monospace; +} +span.attr { + color:#333333; + font-weight:normal; +} +span.color_p { + font-style:italic; + color:Brown; +} +span.p { + font-style:italic; +} +span.fp { + font-style:italic; + background-color:#DCDCDC; +} +span.ttype { + font-weight:normal; +} +span.nowrap { + white-space:nowrap; +} +span.value { + font-weight:bold; +} +.passed { + background-color:#CCFFCC; + font-weight:normal; +} +.warning { + background-color:#F4F4AF; + font-weight:normal; +} +.failed { + background-color:#FFCCCC; + font-weight:normal; +} +.new { + background-color:#C6DEFF; + font-weight:normal; +} +.compatible { + background-color:#CCFFCC; + font-weight:normal; +} +.almost_compatible { + background-color:#FFDAA3; + font-weight:normal; +} +.incompatible { + background-color:#FFCCCC; + font-weight:normal; +} +.gray { + background-color:#DCDCDC; + font-weight:normal; +} +.top_ref { + font-size:0.69em; +} +.footer { + font-size:0.75em; +} + +.tabset { + float:left; +} +a.tab { + border:1px solid Black; + float:left; + margin:0px 5px -1px 0px; + padding:3px 5px 3px 5px; + position:relative; + font-size:0.875em; + background-color:#DDD; + text-decoration:none; + color:Black; +} +a.disabled:hover +{ + color:Black; + background:#EEE; +} +a.active:hover +{ + color:Black; + background:White; +} +a.active { + border-bottom-color:White; + background-color:White; +} +div.tab { + border-top:1px solid Black; + padding:0px; + width:100%; + clear:both; +} +</style> +<script type="text/javascript" language="JavaScript"> +<!-- +function showContent(header, id) +{ + e = document.getElementById(id); + if(e.style.display == 'none') + { + e.style.display = 'block'; + e.style.visibility = 'visible'; + header.innerHTML = header.innerHTML.replace(/\[[^0-9 ]\]/gi,"[−]"); + } + else + { + e.style.display = 'none'; + e.style.visibility = 'hidden'; + header.innerHTML = header.innerHTML.replace(/\[[^0-9 ]\]/gi,"[+]"); + } +} +function initTabs() +{ + var url = window.location.href; + if(url.indexOf('_Source_')!=-1 || url.indexOf('#Source')!=-1) + { + var tab1 = document.getElementById('BinaryID'); + var tab2 = document.getElementById('SourceID'); + tab1.className='tab disabled'; + tab2.className='tab active'; + } + var sets = document.getElementsByTagName('div'); + for (var i = 0; i < sets.length; i++) + { + if (sets[i].className.indexOf('tabset') != -1) + { + var tabs = []; + var links = sets[i].getElementsByTagName('a'); + for (var j = 0; j < links.length; j++) + { + if (links[j].className.indexOf('tab') != -1) + { + tabs.push(links[j]); + links[j].tabs = tabs; + var tab = document.getElementById(links[j].href.substr(links[j].href.indexOf('#') + 1)); + //reset all tabs on start + if (tab) + { + if (links[j].className.indexOf('active')!=-1) { + tab.style.display = 'block'; + } + else { + tab.style.display = 'none'; + } + } + links[j].onclick = function() + { + var tab = document.getElementById(this.href.substr(this.href.indexOf('#') + 1)); + if (tab) + { + //reset all tabs before change + for (var k = 0; k < this.tabs.length; k++) + { + document.getElementById(this.tabs[k].href.substr(this.tabs[k].href.indexOf('#') + 1)).style.display = 'none'; + this.tabs[k].className = this.tabs[k].className.replace('active', 'disabled'); + } + this.className = 'tab active'; + tab.style.display = 'block'; + // window.location.hash = this.id.replace('ID', ''); + return false; + } + } + } + } + } + } + if(url.indexOf('#')!=-1) { + location.href=location.href; + } +} +if (window.addEventListener) window.addEventListener('load', initTabs, false); +else if (window.attachEvent) window.attachEvent('onload', initTabs); +--> +</script> +</head> +<body><a name='Source'></a><a name='Binary'></a><a name='Top'></a><h1>API compatibility report for the <span style='color:Blue;'>libcouchbase</span> library between <span style='color:Red;'>3.1.3</span> and <span style='color:Red;'>3.1.4</span> versions on <span style='color:Blue;'>x86_64</span></h1> + + <br/> + <div class='tabset'> + <a id='BinaryID' href='#BinaryTab' class='tab active'>Binary<br/>Compatibility</a> + <a id='SourceID' href='#SourceTab' style='margin-left:3px' class='tab disabled'>Source<br/>Compatibility</a> + </div><div id='BinaryTab' class='tab'> +<h2>Test Info</h2><hr/> +<table class='summary'> +<tr><th>Library Name</th><td>libcouchbase</td></tr> +<tr><th>Version #1</th><td>3.1.3</td></tr> +<tr><th>Version #2</th><td>3.1.4</td></tr> +<tr><th>Arch</th><td>x86_64</td></tr> +<tr><th>GCC Version</th><td>10</td></tr> +<tr><th>Subject</th><td width='150px'>Binary Compatibility</td></tr> +</table> +<h2>Test Results</h2><hr/> +<table class='summary'><tr><th>Total Header Files</th><td><a href='#Headers' style='color:Blue;'>25</a></td></tr> +<tr><th>Total Libraries</th><td><a href='#Libs' style='color:Blue;'>1</a></td></tr> +<tr><th>Total Symbols / Types</th><td>612 / 350</td></tr> +<tr><th>Compatibility</th> +<td class='compatible'>100%</td> +</tr> +</table> +<h2>Problem Summary</h2><hr/> +<table class='summary'><tr><th></th><th style='text-align:center;'>Severity</th><th style='text-align:center;'>Count</th></tr><tr><th>Added Symbols</th><td>-</td><td class='new'><a href='#Binary_Added' style='color:Blue;'>10</a></td></tr> +<tr><th>Removed Symbols</th><td>High</td><td>0</td></tr> +<tr><th rowspan='3'>Problems with<br/>Data Types</th><td>High</td><td>0</td></tr> +<tr><td>Medium</td><td>0</td></tr> +<tr><td>Low</td><td class='warning'><a href='#Type_Binary_Problems_Low' style='color:Blue;'>2</a></td></tr> +<tr><th rowspan='3'>Problems with<br/>Symbols</th><td>High</td><td>0</td></tr> +<tr><td>Medium</td><td>0</td></tr> +<tr><td>Low</td><td>0</td></tr> +<tr><th>Problems with<br/>Constants</th><td>Low</td><td>0</td></tr> +</table> + +<a name='Binary_Added'></a><h2>Added Symbols <span class='new'> 10 </span></h2><hr/> +<span class='h_name'>auth.h</span>, <span class='lib_name'>libcouchbase.so.7.0.5</span><br/> +<span class="iname">lcbauth_credentials_bucket <span class='sym_p'><span>( lcbauth_CREDENTIALS const* <span class='color_p'>credentials</span></span>, <span>char const** <span class='color_p'>bucket</span></span>, <span>size_t* <span class='color_p'>bucket_len</span></span> )</span></span><br/> +<span class="iname">lcbauth_credentials_cookie <span class='sym_p'><span>( lcbauth_CREDENTIALS const* <span class='color_p'>credentials</span></span>, <span>void** <span class='color_p'>cookie</span></span> )</span></span><br/> +<span class="iname">lcbauth_credentials_hostname <span class='sym_p'><span>( lcbauth_CREDENTIALS const* <span class='color_p'>credentials</span></span>, <span>char const** <span class='color_p'>hostname</span></span>, <span>size_t* <span class='color_p'>hostname_len</span></span> )</span></span><br/> +<span class="iname">lcbauth_credentials_password <span class='sym_p'><span>( lcbauth_CREDENTIALS* <span class='color_p'>credentials</span></span>, <span>char const* <span class='color_p'>password</span></span>, <span>size_t <span class='color_p'>password_len</span></span> )</span></span><br/> +<span class="iname">lcbauth_credentials_port <span class='sym_p'><span>( lcbauth_CREDENTIALS const* <span class='color_p'>credentials</span></span>, <span>char const** <span class='color_p'>port</span></span>, <span>size_t* <span class='color_p'>port_len</span></span> )</span></span><br/> +<span class="iname">lcbauth_credentials_reason <span class='sym_p'><span>( lcbauth_CREDENTIALS const* <span class='color_p'>credentials</span></span> )</span></span><br/> +<span class="iname">lcbauth_credentials_result <span class='sym_p'><span>( lcbauth_CREDENTIALS* <span class='color_p'>credentials</span></span>, <span>enum lcbauth_RESULT <span class='color_p'>result</span></span> )</span></span><br/> +<span class="iname">lcbauth_credentials_service <span class='sym_p'><span>( lcbauth_CREDENTIALS const* <span class='color_p'>credentials</span></span> )</span></span><br/> +<span class="iname">lcbauth_credentials_username <span class='sym_p'><span>( lcbauth_CREDENTIALS* <span class='color_p'>credentials</span></span>, <span>char const* <span class='color_p'>username</span></span>, <span>size_t <span class='color_p'>username_len</span></span> )</span></span><br/> +<span class="iname">lcbauth_set_callback <span class='sym_p'><span>( lcb_AUTHENTICATOR* <span class='color_p'>auth</span></span>, <span>void* <span class='color_p'>cookie</span></span>, <span>void(*<span class='color_p'>callback</span>)(lcbauth_CREDENTIALS*)</span> )</span></span><br/> +<br/> +<a class='top_ref' href='#Top'>to the top</a><br/> +<a name='Low_Risk_Binary_Problems'></a><a name='Type_Binary_Problems_Low'></a> +<h2>Problems with Data Types, Low Severity <span class='warning'> 2 </span></h2><hr/> +<span class='h_name'>crypto.h</span><br/> +<span class="section" onclick="javascript:showContent(this, 'c_1')"> +<span class='ext'>[+]</span> <span class='ttype'>struct</span> lcbcrypto_PROVIDER <span class='warning'> 1 </span></span> +<br/> +<div id="c_1" style="display:none;"> +<table class='ptable'><tr> +<th class='pn'></th> +<th class='chg'>Change</th> +<th>Effect</th></tr><tr> +<th>1</th> +<td>Type of field <b>v</b> has been changed from <span class='value'>union lcbcrypto_PROVIDER::._anon_200</span> to <span class='value'>union lcbcrypto_PROVIDER::._anon_203</span>.</td> +<td>Replacement of the field data type may indicate a change in the semantic meaning of the field.</td> +</tr> +</table> +<span class="sect_aff" onclick="javascript:showContent(this, 'c_2')"> +[+] affected symbols: 3 (0.5%)</span> +<div id="c_2" style="display:none;"> +<div class='affected'><span class='iname_a'>lcbcrypto_ref <span class='sym_p'><span>( lcbcrypto_PROVIDER* <span class='fp'>provider</span></span> )</span></span><br/> +<div class='affect'>1st parameter 'provider' (pointer) has base type 'struct lcbcrypto_PROVIDER'.</div> +<span class='iname_a'>lcbcrypto_register <span class='sym_p'><span>( lcb_INSTANCE* <i>instance</i></span>, <span>char const* <i>name</i></span>, <span>lcbcrypto_PROVIDER* <span class='fp'>provider</span></span> )</span></span><br/> +<div class='affect'>3rd parameter 'provider' (pointer) has base type 'struct lcbcrypto_PROVIDER'.</div> +<span class='iname_a'>lcbcrypto_unref <span class='sym_p'><span>( lcbcrypto_PROVIDER* <span class='fp'>provider</span></span> )</span></span><br/> +<div class='affect'>1st parameter 'provider' (pointer) has base type 'struct lcbcrypto_PROVIDER'.</div> +</div> +</div> +<br/><br/></div> + +<br/> +<span class='h_name'>tracing.h</span><br/> +<span class="section" onclick="javascript:showContent(this, 'c_3')"> +<span class='ext'>[+]</span> <span class='ttype'>struct</span> lcbtrace_TRACER <span class='warning'> 1 </span></span> +<br/> +<div id="c_3" style="display:none;"> +<table class='ptable'><tr> +<th class='pn'></th> +<th class='chg'>Change</th> +<th>Effect</th></tr><tr> +<th>1</th> +<td>Type of field <b>v</b> has been changed from <span class='value'>union lcbtrace_TRACER::._anon_39</span> to <span class='value'>union lcbtrace_TRACER::._anon_42</span>.</td> +<td>Replacement of the field data type may indicate a change in the semantic meaning of the field.</td> +</tr> +</table> +<span class="sect_aff" onclick="javascript:showContent(this, 'c_4')"> +[+] affected symbols: 5 (0.8%)</span> +<div id="c_4" style="display:none;"> +<div class='affected'><span class='iname_a'>lcb_get_tracer <span class='sym_p'><span>( lcb_INSTANCE* <i>instance</i></span> )</span></span><br/> +<div class='affect'>Return value (pointer) has base type 'struct lcbtrace_TRACER'.</div> +<span class='iname_a'>lcb_set_tracer <span class='sym_p'><span>( lcb_INSTANCE* <i>instance</i></span>, <span>lcbtrace_TRACER* <span class='fp'>tracer</span></span> )</span></span><br/> +<div class='affect'>2nd parameter 'tracer' (pointer) has base type 'struct lcbtrace_TRACER'.</div> +<span class='iname_a'>lcbtrace_destroy <span class='sym_p'><span>( lcbtrace_TRACER* <span class='fp'>tracer</span></span> )</span></span><br/> +<div class='affect'>1st parameter 'tracer' (pointer) has base type 'struct lcbtrace_TRACER'.</div> +<span class='iname_a'>lcbtrace_new <span class='sym_p'><span>( lcb_INSTANCE* <i>instance</i></span>, <span>lcb_U64 <i>flags</i></span> )</span></span><br/> +<div class='affect'>Return value (pointer) has base type 'struct lcbtrace_TRACER'.</div> +<span class='iname_a'>lcbtrace_span_start <span class='sym_p'><span>( lcbtrace_TRACER* <span class='fp'>tracer</span></span>, <span>char const* <i>operation</i></span>, <span>lcb_U64 <i>now</i></span>, <span>struct lcbtrace_REF* <i>ref</i></span> )</span></span><br/> +<div class='affect'>1st parameter 'tracer' (pointer) has base type 'struct lcbtrace_TRACER'.</div> +</div> +</div> +<br/><br/></div> + +<br/> +<a class='top_ref' href='#Top'>to the top</a><br/> +<a name='Headers'></a><h2>Header Files <span class='gray'> 25 </span></h2><hr/> +<div class='h_list'> +assert.h<br/> +auth.h<br/> +cntl-private.h<br/> +cntl.h<br/> +configuration.h<br/> +couchbase.h<br/> +crypto.h<br/> +iops.h<br/> +ixmgmt.h<br/> +kvbuf.h<br/> +libev_io_opts.h<br/> +libevent_io_opts.h<br/> +libuv_compat.h<br/> +libuv_io_opts.h<br/> +logger.h<br/> +metrics.h<br/> +pktfwd.h<br/> +plugin-internal.h<br/> +select_io_opts.h<br/> +sysdefs.h<br/> +tracing.h<br/> +utils.h<br/> +vbucket.h<br/> +visibility.h<br/> +wsaerr.h<br/> +</div> +<br/><a class='top_ref' href='#Top'>to the top</a><br/> +<a name='Libs'></a><h2>Libraries <span class='gray'> 1 </span></h2><hr/> +<div class='lib_list'> +libcouchbase.so.7.0.4<br/> +</div> +<br/><a class='top_ref' href='#Top'>to the top</a><br/> +<br/><br/><br/></div><div id='SourceTab' class='tab'> +<h2>Test Info</h2><hr/> +<table class='summary'> +<tr><th>Library Name</th><td>libcouchbase</td></tr> +<tr><th>Version #1</th><td>3.1.3</td></tr> +<tr><th>Version #2</th><td>3.1.4</td></tr> +<tr><th>Arch</th><td>x86_64</td></tr> +<tr><th>Subject</th><td width='150px'>Source Compatibility</td></tr> +</table> +<h2>Test Results</h2><hr/> +<table class='summary'><tr><th>Total Header Files</th><td><a href='#Headers' style='color:Blue;'>25</a></td></tr> +<tr><th>Total Libraries</th><td><a href='#Libs' style='color:Blue;'>1</a></td></tr> +<tr><th>Total Symbols / Types</th><td>617 / 353</td></tr> +<tr><th>Compatibility</th> +<td class='compatible'>100%</td> +</tr> +</table> +<h2>Problem Summary</h2><hr/> +<table class='summary'><tr><th></th><th style='text-align:center;'>Severity</th><th style='text-align:center;'>Count</th></tr><tr><th>Added Symbols</th><td>-</td><td class='new'><a href='#Source_Added' style='color:Blue;'>10</a></td></tr> +<tr><th>Removed Symbols</th><td>High</td><td>0</td></tr> +<tr><th rowspan='3'>Problems with<br/>Data Types</th><td>High</td><td>0</td></tr> +<tr><td>Medium</td><td>0</td></tr> +<tr><td>Low</td><td class='warning'><a href='#Type_Source_Problems_Low' style='color:Blue;'>3</a></td></tr> +<tr><th rowspan='3'>Problems with<br/>Symbols</th><td>High</td><td>0</td></tr> +<tr><td>Medium</td><td>0</td></tr> +<tr><td>Low</td><td>0</td></tr> +<tr><th>Problems with<br/>Constants</th><td>Low</td><td class='warning'><a href='#Constant_Source_Problems_Low' style='color:Blue;'>3</a></td></tr> +</table> + +<a name='Source_Added'></a><h2>Added Symbols <span class='new'> 10 </span></h2><hr/> +<span class='h_name'>auth.h</span><br/> +<span class="iname">lcbauth_credentials_bucket <span class='sym_p'><span>( lcbauth_CREDENTIALS const* <span class='color_p'>credentials</span></span>, <span>char const** <span class='color_p'>bucket</span></span>, <span>size_t* <span class='color_p'>bucket_len</span></span> )</span></span><br/> +<span class="iname">lcbauth_credentials_cookie <span class='sym_p'><span>( lcbauth_CREDENTIALS const* <span class='color_p'>credentials</span></span>, <span>void** <span class='color_p'>cookie</span></span> )</span></span><br/> +<span class="iname">lcbauth_credentials_hostname <span class='sym_p'><span>( lcbauth_CREDENTIALS const* <span class='color_p'>credentials</span></span>, <span>char const** <span class='color_p'>hostname</span></span>, <span>size_t* <span class='color_p'>hostname_len</span></span> )</span></span><br/> +<span class="iname">lcbauth_credentials_password <span class='sym_p'><span>( lcbauth_CREDENTIALS* <span class='color_p'>credentials</span></span>, <span>char const* <span class='color_p'>password</span></span>, <span>size_t <span class='color_p'>password_len</span></span> )</span></span><br/> +<span class="iname">lcbauth_credentials_port <span class='sym_p'><span>( lcbauth_CREDENTIALS const* <span class='color_p'>credentials</span></span>, <span>char const** <span class='color_p'>port</span></span>, <span>size_t* <span class='color_p'>port_len</span></span> )</span></span><br/> +<span class="iname">lcbauth_credentials_reason <span class='sym_p'><span>( lcbauth_CREDENTIALS const* <span class='color_p'>credentials</span></span> )</span></span><br/> +<span class="iname">lcbauth_credentials_result <span class='sym_p'><span>( lcbauth_CREDENTIALS* <span class='color_p'>credentials</span></span>, <span>enum lcbauth_RESULT <span class='color_p'>result</span></span> )</span></span><br/> +<span class="iname">lcbauth_credentials_service <span class='sym_p'><span>( lcbauth_CREDENTIALS const* <span class='color_p'>credentials</span></span> )</span></span><br/> +<span class="iname">lcbauth_credentials_username <span class='sym_p'><span>( lcbauth_CREDENTIALS* <span class='color_p'>credentials</span></span>, <span>char const* <span class='color_p'>username</span></span>, <span>size_t <span class='color_p'>username_len</span></span> )</span></span><br/> +<span class="iname">lcbauth_set_callback <span class='sym_p'><span>( lcb_AUTHENTICATOR* <span class='color_p'>auth</span></span>, <span>void* <span class='color_p'>cookie</span></span>, <span>void(*<span class='color_p'>callback</span>)(lcbauth_CREDENTIALS*)</span> )</span></span><br/> +<br/> +<a class='top_ref' href='#Top'>to the top</a><br/> +<a name='Low_Risk_Source_Problems'></a><a name='Type_Source_Problems_Low'></a> +<h2>Problems with Data Types, Low Severity <span class='warning'> 3 </span></h2><hr/> +<span class='h_name'>crypto.h</span><br/> +<span class="section" onclick="javascript:showContent(this, 'c_5')"> +<span class='ext'>[+]</span> <span class='ttype'>struct</span> lcbcrypto_PROVIDER <span class='warning'> 1 </span></span> +<br/> +<div id="c_5" style="display:none;"> +<table class='ptable'><tr> +<th class='pn'></th> +<th class='chg'>Change</th> +<th>Effect</th></tr><tr> +<th>1</th> +<td>Type of field <b>v</b> has been changed from <span class='value'>union lcbcrypto_PROVIDER::._anon_200</span> to <span class='value'>union lcbcrypto_PROVIDER::._anon_203</span>.</td> +<td>Recompilation of a client program may be broken.</td> +</tr> +</table> +<span class="sect_aff" onclick="javascript:showContent(this, 'c_6')"> +[+] affected symbols: 3 (0.5%)</span> +<div id="c_6" style="display:none;"> +<div class='affected'><span class='iname_a'>lcbcrypto_ref <span class='sym_p'><span>( lcbcrypto_PROVIDER* <span class='fp'>provider</span></span> )</span></span><br/> +<div class='affect'>1st parameter 'provider' (pointer) has base type 'struct lcbcrypto_PROVIDER'.</div> +<span class='iname_a'>lcbcrypto_register <span class='sym_p'><span>( lcb_INSTANCE* <i>instance</i></span>, <span>char const* <i>name</i></span>, <span>lcbcrypto_PROVIDER* <span class='fp'>provider</span></span> )</span></span><br/> +<div class='affect'>3rd parameter 'provider' (pointer) has base type 'struct lcbcrypto_PROVIDER'.</div> +<span class='iname_a'>lcbcrypto_unref <span class='sym_p'><span>( lcbcrypto_PROVIDER* <span class='fp'>provider</span></span> )</span></span><br/> +<div class='affect'>1st parameter 'provider' (pointer) has base type 'struct lcbcrypto_PROVIDER'.</div> +</div> +</div> +<br/><br/></div> + +<br/> +<span class='h_name'>libuv_io_opts.h</span><br/> +<span class="section" onclick="javascript:showContent(this, 'c_7')"> +<span class='ext'>[+]</span> <span class='ttype'>struct</span> lcbuv_options_st <span class='warning'> 1 </span></span> +<br/> +<div id="c_7" style="display:none;"> +<table class='ptable'><tr> +<th class='pn'></th> +<th class='chg'>Change</th> +<th>Effect</th></tr><tr> +<th>1</th> +<td>Type of field <b>v</b> has been changed from <span class='value'>union lcbuv_options_st::._anon_179</span> to <span class='value'>union lcbuv_options_st::._anon_182</span>.</td> +<td>Recompilation of a client program may be broken.</td> +</tr> +</table> +<span class="sect_aff" onclick="javascript:showContent(this, 'c_8')"> +[+] affected symbols: 1 (0.2%)</span> +<div id="c_8" style="display:none;"> +<div class='affected'><span class='iname_a'>lcb_create_libuv_io_opts <span class='sym_p'><span>( int <i>version</i></span>, <span>lcb_io_opt_t* <i>io</i></span>, <span>lcbuv_options_t* <span class='fp'>options</span></span> )</span></span><br/> +<div class='affect'>3rd parameter 'options' (pointer) has base type 'struct lcbuv_options_st'.</div> +</div> +</div> +<br/><br/></div> + +<br/> +<span class='h_name'>tracing.h</span><br/> +<span class="section" onclick="javascript:showContent(this, 'c_9')"> +<span class='ext'>[+]</span> <span class='ttype'>struct</span> lcbtrace_TRACER <span class='warning'> 1 </span></span> +<br/> +<div id="c_9" style="display:none;"> +<table class='ptable'><tr> +<th class='pn'></th> +<th class='chg'>Change</th> +<th>Effect</th></tr><tr> +<th>1</th> +<td>Type of field <b>v</b> has been changed from <span class='value'>union lcbtrace_TRACER::._anon_39</span> to <span class='value'>union lcbtrace_TRACER::._anon_42</span>.</td> +<td>Recompilation of a client program may be broken.</td> +</tr> +</table> +<span class="sect_aff" onclick="javascript:showContent(this, 'c_10')"> +[+] affected symbols: 5 (0.8%)</span> +<div id="c_10" style="display:none;"> +<div class='affected'><span class='iname_a'>lcb_get_tracer <span class='sym_p'><span>( lcb_INSTANCE* <i>instance</i></span> )</span></span><br/> +<div class='affect'>Return value (pointer) has base type 'struct lcbtrace_TRACER'.</div> +<span class='iname_a'>lcb_set_tracer <span class='sym_p'><span>( lcb_INSTANCE* <i>instance</i></span>, <span>lcbtrace_TRACER* <span class='fp'>tracer</span></span> )</span></span><br/> +<div class='affect'>2nd parameter 'tracer' (pointer) has base type 'struct lcbtrace_TRACER'.</div> +<span class='iname_a'>lcbtrace_destroy <span class='sym_p'><span>( lcbtrace_TRACER* <span class='fp'>tracer</span></span> )</span></span><br/> +<div class='affect'>1st parameter 'tracer' (pointer) has base type 'struct lcbtrace_TRACER'.</div> +<span class='iname_a'>lcbtrace_new <span class='sym_p'><span>( lcb_INSTANCE* <i>instance</i></span>, <span>lcb_U64 <i>flags</i></span> )</span></span><br/> +<div class='affect'>Return value (pointer) has base type 'struct lcbtrace_TRACER'.</div> +<span class='iname_a'>lcbtrace_span_start <span class='sym_p'><span>( lcbtrace_TRACER* <span class='fp'>tracer</span></span>, <span>char const* <i>operation</i></span>, <span>lcb_U64 <i>now</i></span>, <span>struct lcbtrace_REF* <i>ref</i></span> )</span></span><br/> +<div class='affect'>1st parameter 'tracer' (pointer) has base type 'struct lcbtrace_TRACER'.</div> +</div> +</div> +<br/><br/></div> + +<br/> +<a class='top_ref' href='#Top'>to the top</a><br/> +<a name='Constant_Source_Problems_Low'></a> +<h2>Problems with Constants, Low Severity <span class='warning'> 3 </span></h2><hr/> +<span class='h_name'>configuration.h</span><br/> +<span class="section" onclick="javascript:showContent(this, 'c_11')"> +<span class='ext'>[+]</span> LCB_VERSION</span> +<br/> +<div id="c_11" style="display:none;"> +<table class='ptable'> +<tr> +<th class='pn'></th> +<th class='chg'>Change</th> +<th>Effect</th> +</tr> +<tr> +<th>1</th> +<td>The value of constant <b>LCB_VERSION</b> has been changed from <b>0x030103</b> to <b>0x030104</b>.</td> +<td>Recompilation of a client program may be broken.</td> +</tr> +</table> +<br/> +</div> + +<span class="section" onclick="javascript:showContent(this, 'c_12')"> +<span class='ext'>[+]</span> LCB_VERSION_CHANGESET</span> +<br/> +<div id="c_12" style="display:none;"> +<table class='ptable'> +<tr> +<th class='pn'></th> +<th class='chg'>Change</th> +<th>Effect</th> +</tr> +<tr> +<th>1</th> +<td>The value of constant <b>LCB_VERSION_CHANGESET</b> has been changed from <b>"7739e685e579fb981eda1fdf89f7d6fcd5b2ebc9"</b> to <b>"513555d6c63dec7fd7166450282be92c6f74ef47"</b>.</td> +<td>Recompilation of a client program may be broken.</td> +</tr> +</table> +<br/> +</div> + +<span class="section" onclick="javascript:showContent(this, 'c_13')"> +<span class='ext'>[+]</span> LCB_VERSION_STRING</span> +<br/> +<div id="c_13" style="display:none;"> +<table class='ptable'> +<tr> +<th class='pn'></th> +<th class='chg'>Change</th> +<th>Effect</th> +</tr> +<tr> +<th>1</th> +<td>The value of constant <b>LCB_VERSION_STRING</b> has been changed from <b>"3.1.3"</b> to <b>"3.1.4"</b>.</td> +<td>Recompilation of a client program may be broken.</td> +</tr> +</table> +<br/> +</div> + +<br/> +<a class='top_ref' href='#Top'>to the top</a><br/> +<a name='Headers'></a><h2>Header Files <span class='gray'> 25 </span></h2><hr/> +<div class='h_list'> +assert.h<br/> +auth.h<br/> +cntl-private.h<br/> +cntl.h<br/> +configuration.h<br/> +couchbase.h<br/> +crypto.h<br/> +iops.h<br/> +ixmgmt.h<br/> +kvbuf.h<br/> +libev_io_opts.h<br/> +libevent_io_opts.h<br/> +libuv_compat.h<br/> +libuv_io_opts.h<br/> +logger.h<br/> +metrics.h<br/> +pktfwd.h<br/> +plugin-internal.h<br/> +select_io_opts.h<br/> +sysdefs.h<br/> +tracing.h<br/> +utils.h<br/> +vbucket.h<br/> +visibility.h<br/> +wsaerr.h<br/> +</div> +<br/><a class='top_ref' href='#Top'>to the top</a><br/> +<a name='Libs'></a><h2>Libraries <span class='gray'> 1 </span></h2><hr/> +<div class='lib_list'> +libcouchbase.so.7.0.4<br/> +</div> +<br/><a class='top_ref' href='#Top'>to the top</a><br/> +<br/><br/><br/></div><hr/> +<div class='footer' align='right'><i>Generated by <a href='https://github.com/lvc/abi-compliance-checker'>ABI Compliance Checker</a> 2.3  </i> +</div> +<br/> + +</body></html> diff --git a/compat_reports/3.1.4_to_3.2.0/compat_report.html b/compat_reports/3.1.4_to_3.2.0/compat_report.html new file mode 100644 index 0000000..fa5e1cd --- /dev/null +++ b/compat_reports/3.1.4_to_3.2.0/compat_report.html @@ -0,0 +1,2169 @@ +<!-- kind:binary;verdict:incompatible;affected:0.7;added:24;removed:2;type_problems_high:0;type_problems_medium:1;type_problems_low:3;interface_problems_high:0;interface_problems_medium:0;interface_problems_low:0;changed_constants:12;constant_changes_other:20;tool_version:2.3 --> +<!-- kind:source;verdict:incompatible;affected:0.7;added:25;removed:2;type_problems_high:0;type_problems_medium:1;type_problems_low:3;interface_problems_high:0;interface_problems_medium:0;interface_problems_low:0;changed_constants:16;constant_changes_other:20;tool_version:2.3 --> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<meta name="viewport" content="width=device-width,initial-scale=1" /> +<meta name="keywords" content="libcouchbase, compatibility, API, ABI, report" /> +<meta name="description" content="API/ABI compatibility report for the libcouchbase library between 3.1.4 and 3.2.0 versions" /> +<title>libcouchbase: 3.1.4 to 3.2.0 compatibility report</title> +<style type="text/css"> +body { + font-family:Arial, sans-serif; + background-color:White; + color:Black; +} +hr { + color:Black; + background-color:Black; + height:1px; + border:0; +} +h1 { + margin-bottom:0px; + padding-bottom:0px; + font-size:1.625em; +} +h2 { + margin-bottom:0px; + padding-bottom:0px; + font-size:1.25em; + white-space:nowrap; +} +span.section { + font-weight:bold; + cursor:pointer; + color:#003E69; + white-space:nowrap; + margin-left:0.3125em; +} +span.new_sign { + font-weight:bold; + margin-left:1.65em; + color:#003E69; +} +span.new_sign_lbl { + margin-left:3em; + font-size:1em; + color:Black; +} +span:hover.section { + color:#336699; +} +span.sect_aff { + cursor:pointer; + padding-left:1.55em; + font-size:0.875em; + color:#cc3300; +} +span.sect_info { + cursor:pointer; + padding-left:1.55em; + font-size:0.875em; + color:Black; +} +span.ext { + font-weight:normal; +} +span.h_name { + color:#cc3300; + font-size:0.875em; + font-weight:bold; +} +div.h_list, div.lib_list { + font-size:0.94em; + padding-left:0.4em; +} +span.ns { + color:#408080; + font-size:0.94em; +} +span.lib_name { + color:Green; + font-size:0.875em; + font-weight:bold; +} +span.iname { + font-weight:bold; + color:#003E69; + margin-left:0.3125em; +} +span.iname_b { + font-weight:bold; +} +span.iname_a { + color:#333333; + font-weight:bold; + font-size:0.94em; +} +span.sym_p { + font-weight:normal; + white-space:normal; +} +span.sym_pd { + white-space:normal; +} +span.sym_p span, span.sym_pd span { + white-space:nowrap; +} +div.affect { + padding-left:1em; + padding-bottom:10px; + font-size:0.87em; + font-style:italic; + line-height:0.9em; +} +div.affected { + padding-left:1.9em; + padding-top:10px; +} +table.ptable { + border-collapse:collapse; + border:1px outset black; + margin-left:0.95em; + margin-top:3px; + margin-bottom:3px; + width:56.25em; +} +table.ptable td { + border:1px solid gray; + padding:3px; + font-size:0.875em; + text-align:left; + vertical-align:top; + max-width:28em; + word-wrap:break-word; +} +table.ptable th.pn { + width:2%; +} +table.ptable th.chg { + width:47%; +} +table.vtable { + border-collapse:collapse; + border:1px outset black; + margin-left:1.9em; + margin-top:0.7em; +} +table.vtable td { + border:1px solid gray; + padding:3px; + font-size:0.875em; + vertical-align:top; + max-width:450px; + word-wrap:break-word; +} +table.ptable th, table.vtable th { + background-color:#eeeeee; + font-weight:bold; + color:#333333; + font-family:Verdana, Arial; + font-size:0.875em; + border:1px solid gray; + text-align:center; + vertical-align:top; + white-space:nowrap; + padding:3px; +} +table.summary { + border-collapse:collapse; + border:1px outset black; +} +table.summary th { + background-color:#eeeeee; + font-weight:normal; + text-align:left; + font-size:0.94em; + white-space:nowrap; + border:1px inset gray; + padding:3px; +} +table.summary td { + text-align:right; + white-space:nowrap; + border:1px inset gray; + padding:3px 5px 3px 10px; +} +span.mngl { + padding-left:1em; + font-size:0.875em; + cursor:text; + color:#444444; + font-weight:bold; +} +span.pleft { + padding-left:2.5em; +} +span.sym_ver { + color:#333333; + white-space:nowrap; + font-family:"DejaVu Sans Mono", Monospace; +} +span.attr { + color:#333333; + font-weight:normal; +} +span.color_p { + font-style:italic; + color:Brown; +} +span.p { + font-style:italic; +} +span.fp { + font-style:italic; + background-color:#DCDCDC; +} +span.ttype { + font-weight:normal; +} +span.nowrap { + white-space:nowrap; +} +span.value { + font-weight:bold; +} +.passed { + background-color:#CCFFCC; + font-weight:normal; +} +.warning { + background-color:#F4F4AF; + font-weight:normal; +} +.failed { + background-color:#FFCCCC; + font-weight:normal; +} +.new { + background-color:#C6DEFF; + font-weight:normal; +} +.compatible { + background-color:#CCFFCC; + font-weight:normal; +} +.almost_compatible { + background-color:#FFDAA3; + font-weight:normal; +} +.incompatible { + background-color:#FFCCCC; + font-weight:normal; +} +.gray { + background-color:#DCDCDC; + font-weight:normal; +} +.top_ref { + font-size:0.69em; +} +.footer { + font-size:0.75em; +} + +.tabset { + float:left; +} +a.tab { + border:1px solid Black; + float:left; + margin:0px 5px -1px 0px; + padding:3px 5px 3px 5px; + position:relative; + font-size:0.875em; + background-color:#DDD; + text-decoration:none; + color:Black; +} +a.disabled:hover +{ + color:Black; + background:#EEE; +} +a.active:hover +{ + color:Black; + background:White; +} +a.active { + border-bottom-color:White; + background-color:White; +} +div.tab { + border-top:1px solid Black; + padding:0px; + width:100%; + clear:both; +} +</style> +<script type="text/javascript" language="JavaScript"> +<!-- +function showContent(header, id) +{ + e = document.getElementById(id); + if(e.style.display == 'none') + { + e.style.display = 'block'; + e.style.visibility = 'visible'; + header.innerHTML = header.innerHTML.replace(/\[[^0-9 ]\]/gi,"[−]"); + } + else + { + e.style.display = 'none'; + e.style.visibility = 'hidden'; + header.innerHTML = header.innerHTML.replace(/\[[^0-9 ]\]/gi,"[+]"); + } +} +function initTabs() +{ + var url = window.location.href; + if(url.indexOf('_Source_')!=-1 || url.indexOf('#Source')!=-1) + { + var tab1 = document.getElementById('BinaryID'); + var tab2 = document.getElementById('SourceID'); + tab1.className='tab disabled'; + tab2.className='tab active'; + } + var sets = document.getElementsByTagName('div'); + for (var i = 0; i < sets.length; i++) + { + if (sets[i].className.indexOf('tabset') != -1) + { + var tabs = []; + var links = sets[i].getElementsByTagName('a'); + for (var j = 0; j < links.length; j++) + { + if (links[j].className.indexOf('tab') != -1) + { + tabs.push(links[j]); + links[j].tabs = tabs; + var tab = document.getElementById(links[j].href.substr(links[j].href.indexOf('#') + 1)); + //reset all tabs on start + if (tab) + { + if (links[j].className.indexOf('active')!=-1) { + tab.style.display = 'block'; + } + else { + tab.style.display = 'none'; + } + } + links[j].onclick = function() + { + var tab = document.getElementById(this.href.substr(this.href.indexOf('#') + 1)); + if (tab) + { + //reset all tabs before change + for (var k = 0; k < this.tabs.length; k++) + { + document.getElementById(this.tabs[k].href.substr(this.tabs[k].href.indexOf('#') + 1)).style.display = 'none'; + this.tabs[k].className = this.tabs[k].className.replace('active', 'disabled'); + } + this.className = 'tab active'; + tab.style.display = 'block'; + // window.location.hash = this.id.replace('ID', ''); + return false; + } + } + } + } + } + } + if(url.indexOf('#')!=-1) { + location.href=location.href; + } +} +if (window.addEventListener) window.addEventListener('load', initTabs, false); +else if (window.attachEvent) window.attachEvent('onload', initTabs); +--> +</script> +</head> +<body><a name='Source'></a><a name='Binary'></a><a name='Top'></a><h1>API compatibility report for the <span style='color:Blue;'>libcouchbase</span> library between <span style='color:Red;'>3.1.4</span> and <span style='color:Red;'>3.2.0</span> versions on <span style='color:Blue;'>x86_64</span></h1> + + <br/> + <div class='tabset'> + <a id='BinaryID' href='#BinaryTab' class='tab active'>Binary<br/>Compatibility</a> + <a id='SourceID' href='#SourceTab' style='margin-left:3px' class='tab disabled'>Source<br/>Compatibility</a> + </div><div id='BinaryTab' class='tab'> +<h2>Test Info</h2><hr/> +<table class='summary'> +<tr><th>Library Name</th><td>libcouchbase</td></tr> +<tr><th>Version #1</th><td>3.1.4</td></tr> +<tr><th>Version #2</th><td>3.2.0</td></tr> +<tr><th>Arch</th><td>x86_64</td></tr> +<tr><th>GCC Version</th><td>10</td></tr> +<tr><th>Subject</th><td width='150px'>Binary Compatibility</td></tr> +</table> +<h2>Test Results</h2><hr/> +<table class='summary'><tr><th>Total Header Files</th><td><a href='#Headers' style='color:Blue;'>25</a></td></tr> +<tr><th>Total Libraries</th><td><a href='#Libs' style='color:Blue;'>1</a></td></tr> +<tr><th>Total Symbols / Types</th><td>622 / 356</td></tr> +<tr><th>Compatibility</th> +<td class='warning'>99.3%</td> +</tr> +</table> +<h2>Problem Summary</h2><hr/> +<table class='summary'><tr><th></th><th style='text-align:center;'>Severity</th><th style='text-align:center;'>Count</th></tr><tr><th>Added Symbols</th><td>-</td><td class='new'><a href='#Binary_Added' style='color:Blue;'>24</a></td></tr> +<tr><th>Removed Symbols</th><td>High</td><td class='failed'><a href='#Binary_Removed' style='color:Blue;'>2</a></td></tr> +<tr><th rowspan='3'>Problems with<br/>Data Types</th><td>High</td><td>0</td></tr> +<tr><td>Medium</td><td class='failed'><a href='#Type_Binary_Problems_Medium' style='color:Blue;'>1</a></td></tr> +<tr><td>Low</td><td class='warning'><a href='#Type_Binary_Problems_Low' style='color:Blue;'>3</a></td></tr> +<tr><th rowspan='3'>Problems with<br/>Symbols</th><td>High</td><td>0</td></tr> +<tr><td>Medium</td><td>0</td></tr> +<tr><td>Low</td><td>0</td></tr> +<tr><th>Problems with<br/>Constants</th><td>Low</td><td class='warning'><a href='#Constant_Binary_Problems_Low' style='color:Blue;'>12</a></td></tr> +<tr><th>Other Changes<br/>in Constants</th><td>-</td><td class='passed'><a href='#Other_Binary_Changes_In_Constants' style='color:Blue;'>20</a></td></tr> +</table> + +<a name='Binary_Added'></a><h2>Added Symbols <span class='new'> 24 </span></h2><hr/> +<span class='h_name'>couchbase.h</span>, <span class='lib_name'>libcouchbase.so.8.0.1</span><br/> +<span class="iname">lcb_cmdstore_preserve_expiry <span class='sym_p'><span>( lcb_CMDSTORE* <span class='color_p'>cmd</span></span>, <span>int <span class='color_p'>should_preserve</span></span> )</span></span><br/> +<span class="iname">lcb_cmdsubdoc_preserve_expiry <span class='sym_p'><span>( lcb_CMDSUBDOC* <span class='color_p'>cmd</span></span>, <span>int <span class='color_p'>should_preserve</span></span> )</span></span><br/> +<span class="iname">lcb_createopts_meter <span class='sym_p'><span>( lcb_CREATEOPTS* <span class='color_p'>options</span></span>, <span>lcbmetrics_METER const* <span class='color_p'>metrics</span></span> )</span></span><br/> +<span class="iname">lcb_createopts_tracer <span class='sym_p'><span>( lcb_CREATEOPTS* <span class='color_p'>options</span></span>, <span>lcbtrace_TRACER* <span class='color_p'>tracer</span></span> )</span></span><br/> +<span class="iname">lcb_respgetreplica_is_active <span class='sym_p'><span>( lcb_RESPGETREPLICA const* <span class='color_p'>resp</span></span> )</span></span><br/> +<br/> +<span class='h_name'>metrics.h</span>, <span class='lib_name'>libcouchbase.so.8.0.1</span><br/> +<span class="iname">lcbmetrics_meter_cookie <span class='sym_p'><span>( lcbmetrics_METER const* <span class='color_p'>meter</span></span>, <span>void** <span class='color_p'>cookie</span></span> )</span></span><br/> +<span class="iname">lcbmetrics_meter_create <span class='sym_p'><span>( lcbmetrics_METER** <span class='color_p'>meter</span></span>, <span>void* <span class='color_p'>cookie</span></span> )</span></span><br/> +<span class="iname">lcbmetrics_meter_destroy <span class='sym_p'><span>( lcbmetrics_METER const* <span class='color_p'>meter</span></span> )</span></span><br/> +<span class="iname">lcbmetrics_meter_dtor_callback <span class='sym_p'><span>( lcbmetrics_METER* <span class='color_p'>meter</span></span>, <span>void(*<span class='color_p'>callback</span>)(lcbmetrics_METER const*)</span> )</span></span><br/> +<span class="iname">lcbmetrics_meter_value_recorder_callback <span class='sym_p'><span>( lcbmetrics_METER* <span class='color_p'>meter</span></span>, <span>lcbmetrics_VALUE_RECORDER_CALLBACK <span class='color_p'>callback</span></span> )</span></span><br/> +<span class="iname">lcbmetrics_valuerecorder_cookie <span class='sym_p'><span>( lcbmetrics_VALUERECORDER const* <span class='color_p'>recorder</span></span>, <span>void** <span class='color_p'>cookie</span></span> )</span></span><br/> +<span class="iname">lcbmetrics_valuerecorder_create <span class='sym_p'><span>( lcbmetrics_VALUERECORDER** <span class='color_p'>recorder</span></span>, <span>void* <span class='color_p'>cookie</span></span> )</span></span><br/> +<span class="iname">lcbmetrics_valuerecorder_destroy <span class='sym_p'><span>( lcbmetrics_VALUERECORDER const* <span class='color_p'>recorder</span></span> )</span></span><br/> +<span class="iname">lcbmetrics_valuerecorder_dtor_callback <span class='sym_p'><span>( lcbmetrics_VALUERECORDER* <span class='color_p'>recorder</span></span>, <span>void(*<span class='color_p'>callback</span>)(lcbmetrics_VALUERECORDER const*)</span> )</span></span><br/> +<span class="iname">lcbmetrics_valuerecorder_record_value_callback <span class='sym_p'><span>( lcbmetrics_VALUERECORDER* <span class='color_p'>recorder</span></span>, <span>lcbmetrics_RECORD_VALUE <span class='color_p'>callback</span></span> )</span></span><br/> +<br/> +<span class='h_name'>tracing.h</span>, <span class='lib_name'>libcouchbase.so.8.0.1</span><br/> +<span class="iname">lcbtrace_span_get_is_dispatch <span class='sym_p'><span>( lcbtrace_SPAN* <span class='color_p'>span</span></span>, <span>int* <span class='color_p'>dispatch</span></span> )</span></span><br/> +<span class="iname">lcbtrace_span_get_is_outer <span class='sym_p'><span>( lcbtrace_SPAN* <span class='color_p'>span</span></span>, <span>int* <span class='color_p'>outer</span></span> )</span></span><br/> +<span class="iname">lcbtrace_span_get_service <span class='sym_p'><span>( lcbtrace_SPAN* <span class='color_p'>span</span></span>, <span>enum lcbtrace_SERVICE* <span class='color_p'>svc</span></span> )</span></span><br/> +<span class="iname">lcbtrace_span_set_is_dispatch <span class='sym_p'><span>( lcbtrace_SPAN* <span class='color_p'>span</span></span>, <span>int <span class='color_p'>dispatch</span></span> )</span></span><br/> +<span class="iname">lcbtrace_span_set_is_encode <span class='sym_p'><span>( lcbtrace_SPAN* <span class='color_p'>span</span></span>, <span>int <span class='color_p'>encode</span></span> )</span></span><br/> +<span class="iname">lcbtrace_span_set_is_outer <span class='sym_p'><span>( lcbtrace_SPAN* <span class='color_p'>span</span></span>, <span>int <span class='color_p'>outer</span></span> )</span></span><br/> +<span class="iname">lcbtrace_span_set_service <span class='sym_p'><span>( lcbtrace_SPAN* <span class='color_p'>span</span></span>, <span>enum lcbtrace_SERVICE <span class='color_p'>svc</span></span> )</span></span><br/> +<span class="iname">lcbtrace_span_should_finish <span class='sym_p'><span>( lcbtrace_SPAN* <span class='color_p'>span</span></span> )</span></span><br/> +<span class="iname">lcbtrace_span_wrap <span class='sym_p'><span>( lcbtrace_TRACER* <span class='color_p'>tracer</span></span>, <span>char const* <span class='color_p'>opname</span></span>, <span>uint64_t <span class='color_p'>start</span></span>, <span>void* <span class='color_p'>external_span</span></span>, <span>lcbtrace_SPAN** <span class='color_p'>lcbspan</span></span> )</span></span><br/> +<br/> +<a class='top_ref' href='#Top'>to the top</a><br/> +<a name='Binary_Removed'></a><a name='Binary_Withdrawn'></a><h2>Removed Symbols <span class='failed'> 2 </span></h2><hr/> +<span class='h_name'>utils.h</span>, <span class='lib_name'>libcouchbase.so.7.0.5</span><br/> +<span class="iname">lcb_resp_get_error_context <span class='sym_p'><span>( int <span class='color_p'>cbtype</span></span>, <span>struct lcb_RESPBASE_ const* <span class='color_p'>rb</span></span> )</span></span><br/> +<span class="iname">lcb_resp_get_error_ref <span class='sym_p'><span>( int <span class='color_p'>cbtype</span></span>, <span>struct lcb_RESPBASE_ const* <span class='color_p'>rb</span></span> )</span></span><br/> +<br/> +<a class='top_ref' href='#Top'>to the top</a><br/> +<a name='Medium_Risk_Binary_Problems'></a><a name='Type_Binary_Problems_Medium'></a> +<h2>Problems with Data Types, Medium Severity <span class='failed'> 1 </span></h2><hr/> +<span class='h_name'>tracing.h</span><br/> +<span class="section" onclick="javascript:showContent(this, 'c_1')"> +<span class='ext'>[+]</span> <span class='ttype'>struct</span> lcbtrace_TRACER <span class='failed'> 1 </span></span> +<br/> +<div id="c_1" style="display:none;"> +<table class='ptable'><tr> +<th class='pn'></th> +<th class='chg'>Change</th> +<th>Effect</th></tr><tr> +<th>1</th> +<td>Type of field <b>v</b> has been changed from <span class='nowrap'><span class='value'>union lcbtrace_TRACER::._anon_42</span> (<b>8</b> bytes)</span> to <span class='nowrap'><span class='value'>union lcbtrace_TRACER::._anon_44</span> (<b>40</b> bytes)</span>.</td> +<td>1) This field may be incorrectly initialized or accessed by applications.<br/>2) Size of the inclusive type has been changed.</td> +</tr> +</table> +<span class="sect_aff" onclick="javascript:showContent(this, 'c_2')"> +[+] affected symbols: 5 (0.8%)</span> +<div id="c_2" style="display:none;"> +<div class='affected'><span class='iname_a'>lcb_get_tracer <span class='sym_p'><span>( lcb_INSTANCE* <i>instance</i></span> )</span></span><br/> +<div class='affect'>Return value (pointer) has base type 'struct lcbtrace_TRACER'.</div> +<span class='iname_a'>lcb_set_tracer <span class='sym_p'><span>( lcb_INSTANCE* <i>instance</i></span>, <span>lcbtrace_TRACER* <span class='fp'>tracer</span></span> )</span></span><br/> +<div class='affect'>2nd parameter 'tracer' (pointer) has base type 'struct lcbtrace_TRACER'.</div> +<span class='iname_a'>lcbtrace_destroy <span class='sym_p'><span>( lcbtrace_TRACER* <span class='fp'>tracer</span></span> )</span></span><br/> +<div class='affect'>1st parameter 'tracer' (pointer) has base type 'struct lcbtrace_TRACER'.</div> +<span class='iname_a'>lcbtrace_new <span class='sym_p'><span>( lcb_INSTANCE* <i>instance</i></span>, <span>lcb_U64 <i>flags</i></span> )</span></span><br/> +<div class='affect'>Return value (pointer) has base type 'struct lcbtrace_TRACER'.</div> +<span class='iname_a'>lcbtrace_span_start <span class='sym_p'><span>( lcbtrace_TRACER* <span class='fp'>tracer</span></span>, <span>char const* <i>operation</i></span>, <span>lcb_U64 <i>now</i></span>, <span>struct lcbtrace_REF* <i>ref</i></span> )</span></span><br/> +<div class='affect'>1st parameter 'tracer' (pointer) has base type 'struct lcbtrace_TRACER'.</div> +</div> +</div> +<br/><br/></div> + +<br/> +<a class='top_ref' href='#Top'>to the top</a><br/> +<a name='Low_Risk_Binary_Problems'></a><a name='Type_Binary_Problems_Low'></a> +<h2>Problems with Data Types, Low Severity <span class='warning'> 3 </span></h2><hr/> +<span class='h_name'>couchbase.h</span><br/> +<span class="section" onclick="javascript:showContent(this, 'c_3')"> +<span class='ext'>[+]</span> <span class='ttype'>typedef</span> lcb_RESPBASE <span class='warning'> 1 </span></span> +<br/> +<div id="c_3" style="display:none;"> +<table class='ptable'><tr> +<th class='pn'></th> +<th class='chg'>Change</th> +<th>Effect</th></tr><tr> +<th>1</th> +<td>Base type has been changed from <span class='value'>struct lcb_RESPBASE_</span> to <b>void</b>.</td> +<td>Replacement of the base data type may indicate a change in its semantic meaning.</td> +</tr> +</table> +<span class="sect_aff" onclick="javascript:showContent(this, 'c_4')"> +[+] affected symbols: 2 (0.3%)</span> +<div id="c_4" style="display:none;"> +<div class='affected'><span class='iname_a'>lcb_get_callback <span class='sym_p'><span>( lcb_INSTANCE* <i>instance</i></span>, <span>int <i>cbtype</i></span> )</span></span><br/> +<div class='affect'>Field 'retval.p2' in the return value has base type 'lcb_RESPBASE'.</div> +<span class='iname_a'>lcb_install_callback <span class='sym_p'><span>( lcb_INSTANCE* <i>instance</i></span>, <span>int <i>cbtype</i></span>, <span>void(*<span class='fp'>cb</span>)(struct lcb_st*, int, struct lcb_RESPBASE_ const*)</span> )</span></span><br/> +<div class='affect'>Field 'cb.p2' in 3rd parameter 'cb' has base type 'lcb_RESPBASE'.</div> +</div> +</div> +<br/><br/></div> + +<br/> +<span class='h_name'>crypto.h</span><br/> +<span class="section" onclick="javascript:showContent(this, 'c_5')"> +<span class='ext'>[+]</span> <span class='ttype'>struct</span> lcbcrypto_PROVIDER <span class='warning'> 1 </span></span> +<br/> +<div id="c_5" style="display:none;"> +<table class='ptable'><tr> +<th class='pn'></th> +<th class='chg'>Change</th> +<th>Effect</th></tr><tr> +<th>1</th> +<td>Type of field <b>v</b> has been changed from <span class='value'>union lcbcrypto_PROVIDER::._anon_203</span> to <span class='value'>union lcbcrypto_PROVIDER::._anon_206</span>.</td> +<td>Replacement of the field data type may indicate a change in the semantic meaning of the field.</td> +</tr> +</table> +<span class="sect_aff" onclick="javascript:showContent(this, 'c_6')"> +[+] affected symbols: 3 (0.5%)</span> +<div id="c_6" style="display:none;"> +<div class='affected'><span class='iname_a'>lcbcrypto_ref <span class='sym_p'><span>( lcbcrypto_PROVIDER* <span class='fp'>provider</span></span> )</span></span><br/> +<div class='affect'>1st parameter 'provider' (pointer) has base type 'struct lcbcrypto_PROVIDER'.</div> +<span class='iname_a'>lcbcrypto_register <span class='sym_p'><span>( lcb_INSTANCE* <i>instance</i></span>, <span>char const* <i>name</i></span>, <span>lcbcrypto_PROVIDER* <span class='fp'>provider</span></span> )</span></span><br/> +<div class='affect'>3rd parameter 'provider' (pointer) has base type 'struct lcbcrypto_PROVIDER'.</div> +<span class='iname_a'>lcbcrypto_unref <span class='sym_p'><span>( lcbcrypto_PROVIDER* <span class='fp'>provider</span></span> )</span></span><br/> +<div class='affect'>1st parameter 'provider' (pointer) has base type 'struct lcbcrypto_PROVIDER'.</div> +</div> +</div> +<br/><br/></div> + +<br/> +<span class='h_name'>tracing.h</span><br/> +<span class="section" onclick="javascript:showContent(this, 'c_7')"> +<span class='ext'>[+]</span> <span class='ttype'>struct</span> lcbtrace_TRACER <span class='warning'> 1 </span></span> +<br/> +<div id="c_7" style="display:none;"> +<table class='ptable'><tr> +<th class='pn'></th> +<th class='chg'>Change</th> +<th>Effect</th></tr><tr> +<th>1</th> +<td>Size of this type has been changed from <b>40</b> bytes to <b>72</b> bytes.</td> +<td>The fields or parameters of such data type may be incorrectly initialized or accessed by old client applications.</td> +</tr> +</table> +<span class="sect_aff" onclick="javascript:showContent(this, 'c_8')"> +[+] affected symbols: 5 (0.8%)</span> +<div id="c_8" style="display:none;"> +<div class='affected'><span class='iname_a'>lcb_get_tracer <span class='sym_p'><span>( lcb_INSTANCE* <i>instance</i></span> )</span></span><br/> +<div class='affect'>Return value (pointer) has base type 'struct lcbtrace_TRACER'.</div> +<span class='iname_a'>lcb_set_tracer <span class='sym_p'><span>( lcb_INSTANCE* <i>instance</i></span>, <span>lcbtrace_TRACER* <span class='fp'>tracer</span></span> )</span></span><br/> +<div class='affect'>2nd parameter 'tracer' (pointer) has base type 'struct lcbtrace_TRACER'.</div> +<span class='iname_a'>lcbtrace_destroy <span class='sym_p'><span>( lcbtrace_TRACER* <span class='fp'>tracer</span></span> )</span></span><br/> +<div class='affect'>1st parameter 'tracer' (pointer) has base type 'struct lcbtrace_TRACER'.</div> +<span class='iname_a'>lcbtrace_new <span class='sym_p'><span>( lcb_INSTANCE* <i>instance</i></span>, <span>lcb_U64 <i>flags</i></span> )</span></span><br/> +<div class='affect'>Return value (pointer) has base type 'struct lcbtrace_TRACER'.</div> +<span class='iname_a'>lcbtrace_span_start <span class='sym_p'><span>( lcbtrace_TRACER* <span class='fp'>tracer</span></span>, <span>char const* <i>operation</i></span>, <span>lcb_U64 <i>now</i></span>, <span>struct lcbtrace_REF* <i>ref</i></span> )</span></span><br/> +<div class='affect'>1st parameter 'tracer' (pointer) has base type 'struct lcbtrace_TRACER'.</div> +</div> +</div> +<br/><br/></div> + +<br/> +<a class='top_ref' href='#Top'>to the top</a><br/> +<a name='Constant_Binary_Problems_Low'></a> +<h2>Problems with Constants, Low Severity <span class='warning'> 12 </span></h2><hr/> +<span class='h_name'>cntl.h</span><br/> +<span class="section" onclick="javascript:showContent(this, 'c_9')"> +<span class='ext'>[+]</span> LCB_CNTL__MAX</span> +<br/> +<div id="c_9" style="display:none;"> +<table class='ptable'> +<tr> +<th class='pn'></th> +<th class='chg'>Change</th> +<th>Effect</th> +</tr> +<tr> +<th>1</th> +<td>The value of constant <b>LCB_CNTL__MAX</b> has been changed from <b>0x66</b> to <b>0x68</b>.</td> +<td>Applications will pass an old value of this constant as the parameter to the new-version library functions, that expect a new one. This may result in crash of incorrect behavior of applications.</td> +</tr> +</table> +<br/> +</div> + +<br/> +<span class='h_name'>tracing.h</span><br/> +<span class="section" onclick="javascript:showContent(this, 'c_10')"> +<span class='ext'>[+]</span> LCBTRACE_OP_DISPATCH_TO_SERVER</span> +<br/> +<div id="c_10" style="display:none;"> +<table class='ptable'> +<tr> +<th class='pn'></th> +<th class='chg'>Change</th> +<th>Effect</th> +</tr> +<tr> +<th>1</th> +<td>The value of constant <b>LCBTRACE_OP_DISPATCH_TO_SERVER</b> has been changed from <b>"dispatch_to_server"</b> to <b>"dispatch"</b>.</td> +<td>Applications will pass an old value of this constant as the parameter to the new-version library functions, that expect a new one. This may result in crash of incorrect behavior of applications.</td> +</tr> +</table> +<br/> +</div> + +<span class="section" onclick="javascript:showContent(this, 'c_11')"> +<span class='ext'>[+]</span> LCBTRACE_TAG_COMPONENT</span> +<br/> +<div id="c_11" style="display:none;"> +<table class='ptable'> +<tr> +<th class='pn'></th> +<th class='chg'>Change</th> +<th>Effect</th> +</tr> +<tr> +<th>1</th> +<td>The value of constant <b>LCBTRACE_TAG_COMPONENT</b> has been changed from <b>"component"</b> to <b>"db.couchbase.component"</b>.</td> +<td>Applications will pass an old value of this constant as the parameter to the new-version library functions, that expect a new one. This may result in crash of incorrect behavior of applications.</td> +</tr> +</table> +<br/> +</div> + +<span class="section" onclick="javascript:showContent(this, 'c_12')"> +<span class='ext'>[+]</span> LCBTRACE_TAG_DB_TYPE</span> +<br/> +<div id="c_12" style="display:none;"> +<table class='ptable'> +<tr> +<th class='pn'></th> +<th class='chg'>Change</th> +<th>Effect</th> +</tr> +<tr> +<th>1</th> +<td>The constant <b>LCBTRACE_TAG_DB_TYPE</b> with value <b>"db.type"</b> has been removed.</td> +<td>The value of this constant may no longer be properly handled by new-version library functions.</td> +</tr> +</table> +<br/> +</div> + +<span class="section" onclick="javascript:showContent(this, 'c_13')"> +<span class='ext'>[+]</span> LCBTRACE_TAG_LOCAL_ADDRESS</span> +<br/> +<div id="c_13" style="display:none;"> +<table class='ptable'> +<tr> +<th class='pn'></th> +<th class='chg'>Change</th> +<th>Effect</th> +</tr> +<tr> +<th>1</th> +<td>The value of constant <b>LCBTRACE_TAG_LOCAL_ADDRESS</b> has been changed from <b>"local.address"</b> to <b>"net.host.name"</b>.</td> +<td>Applications will pass an old value of this constant as the parameter to the new-version library functions, that expect a new one. This may result in crash of incorrect behavior of applications.</td> +</tr> +</table> +<br/> +</div> + +<span class="section" onclick="javascript:showContent(this, 'c_14')"> +<span class='ext'>[+]</span> LCBTRACE_TAG_LOCAL_ID</span> +<br/> +<div id="c_14" style="display:none;"> +<table class='ptable'> +<tr> +<th class='pn'></th> +<th class='chg'>Change</th> +<th>Effect</th> +</tr> +<tr> +<th>1</th> +<td>The value of constant <b>LCBTRACE_TAG_LOCAL_ID</b> has been changed from <b>"couchbase.local_id"</b> to <b>"db.couchbase.local_id"</b>.</td> +<td>Applications will pass an old value of this constant as the parameter to the new-version library functions, that expect a new one. This may result in crash of incorrect behavior of applications.</td> +</tr> +</table> +<br/> +</div> + +<span class="section" onclick="javascript:showContent(this, 'c_15')"> +<span class='ext'>[+]</span> LCBTRACE_TAG_OPERATION_ID</span> +<br/> +<div id="c_15" style="display:none;"> +<table class='ptable'> +<tr> +<th class='pn'></th> +<th class='chg'>Change</th> +<th>Effect</th> +</tr> +<tr> +<th>1</th> +<td>The value of constant <b>LCBTRACE_TAG_OPERATION_ID</b> has been changed from <b>"couchbase.operation_id"</b> to <b>"db.couchbase.operation_id"</b>.</td> +<td>Applications will pass an old value of this constant as the parameter to the new-version library functions, that expect a new one. This may result in crash of incorrect behavior of applications.</td> +</tr> +</table> +<br/> +</div> + +<span class="section" onclick="javascript:showContent(this, 'c_16')"> +<span class='ext'>[+]</span> LCBTRACE_TAG_PEER_ADDRESS</span> +<br/> +<div id="c_16" style="display:none;"> +<table class='ptable'> +<tr> +<th class='pn'></th> +<th class='chg'>Change</th> +<th>Effect</th> +</tr> +<tr> +<th>1</th> +<td>The value of constant <b>LCBTRACE_TAG_PEER_ADDRESS</b> has been changed from <b>"peer.address"</b> to <b>"net.peer.name"</b>.</td> +<td>Applications will pass an old value of this constant as the parameter to the new-version library functions, that expect a new one. This may result in crash of incorrect behavior of applications.</td> +</tr> +</table> +<br/> +</div> + +<span class="section" onclick="javascript:showContent(this, 'c_17')"> +<span class='ext'>[+]</span> LCBTRACE_TAG_PEER_LATENCY</span> +<br/> +<div id="c_17" style="display:none;"> +<table class='ptable'> +<tr> +<th class='pn'></th> +<th class='chg'>Change</th> +<th>Effect</th> +</tr> +<tr> +<th>1</th> +<td>The value of constant <b>LCBTRACE_TAG_PEER_LATENCY</b> has been changed from <b>"peer.latency"</b> to <b>"db.couchbase.server_duration"</b>.</td> +<td>Applications will pass an old value of this constant as the parameter to the new-version library functions, that expect a new one. This may result in crash of incorrect behavior of applications.</td> +</tr> +</table> +<br/> +</div> + +<span class="section" onclick="javascript:showContent(this, 'c_18')"> +<span class='ext'>[+]</span> LCBTRACE_TAG_SERVICE</span> +<br/> +<div id="c_18" style="display:none;"> +<table class='ptable'> +<tr> +<th class='pn'></th> +<th class='chg'>Change</th> +<th>Effect</th> +</tr> +<tr> +<th>1</th> +<td>The value of constant <b>LCBTRACE_TAG_SERVICE</b> has been changed from <b>"couchbase.service"</b> to <b>"db.couchbase.service"</b>.</td> +<td>Applications will pass an old value of this constant as the parameter to the new-version library functions, that expect a new one. This may result in crash of incorrect behavior of applications.</td> +</tr> +</table> +<br/> +</div> + +<span class="section" onclick="javascript:showContent(this, 'c_19')"> +<span class='ext'>[+]</span> LCBTRACE_TAG_SERVICE_N1QL</span> +<br/> +<div id="c_19" style="display:none;"> +<table class='ptable'> +<tr> +<th class='pn'></th> +<th class='chg'>Change</th> +<th>Effect</th> +</tr> +<tr> +<th>1</th> +<td>The value of constant <b>LCBTRACE_TAG_SERVICE_N1QL</b> has been changed from <b>"n1ql"</b> to <b>"query"</b>.</td> +<td>Applications will pass an old value of this constant as the parameter to the new-version library functions, that expect a new one. This may result in crash of incorrect behavior of applications.</td> +</tr> +</table> +<br/> +</div> + +<span class="section" onclick="javascript:showContent(this, 'c_20')"> +<span class='ext'>[+]</span> LCBTRACE_TAG_SERVICE_VIEW</span> +<br/> +<div id="c_20" style="display:none;"> +<table class='ptable'> +<tr> +<th class='pn'></th> +<th class='chg'>Change</th> +<th>Effect</th> +</tr> +<tr> +<th>1</th> +<td>The value of constant <b>LCBTRACE_TAG_SERVICE_VIEW</b> has been changed from <b>"view"</b> to <b>"views"</b>.</td> +<td>Applications will pass an old value of this constant as the parameter to the new-version library functions, that expect a new one. This may result in crash of incorrect behavior of applications.</td> +</tr> +</table> +<br/> +</div> + +<br/> +<a class='top_ref' href='#Top'>to the top</a><br/> +<a name='Other_Binary_Changes'></a><a name='Other_Binary_Changes_In_Constants'></a> +<h2>Other Changes in Constants <span class='passed'> 20 </span></h2><hr/> +<span class='h_name'>cntl.h</span><br/> +<span class="section" onclick="javascript:showContent(this, 'c_21')"> +<span class='ext'>[+]</span> LCB_CNTL_ENABLE_OP_METRICS</span> +<br/> +<div id="c_21" style="display:none;"> +<table class='ptable'> +<tr> +<th class='pn'></th> +<th class='chg'>Change</th> +<th>Effect</th> +</tr> +<tr> +<th>1</th> +<td>The constant <b>LCB_CNTL_ENABLE_OP_METRICS</b> with value <b>0x67</b> has been added.</td> +<td>No effect.</td> +</tr> +</table> +<br/> +</div> + +<span class="section" onclick="javascript:showContent(this, 'c_22')"> +<span class='ext'>[+]</span> LCB_CNTL_OP_METRICS_FLUSH_INTERVAL</span> +<br/> +<div id="c_22" style="display:none;"> +<table class='ptable'> +<tr> +<th class='pn'></th> +<th class='chg'>Change</th> +<th>Effect</th> +</tr> +<tr> +<th>1</th> +<td>The constant <b>LCB_CNTL_OP_METRICS_FLUSH_INTERVAL</b> with value <b>0x66</b> has been added.</td> +<td>No effect.</td> +</tr> +</table> +<br/> +</div> + +<br/> +<span class='h_name'>metrics.h</span><br/> +<span class="section" onclick="javascript:showContent(this, 'c_23')"> +<span class='ext'>[+]</span> LCBTRACE_F_LOGGING</span> +<br/> +<div id="c_23" style="display:none;"> +<table class='ptable'> +<tr> +<th class='pn'></th> +<th class='chg'>Change</th> +<th>Effect</th> +</tr> +<tr> +<th>1</th> +<td>The constant <b>LCBTRACE_F_LOGGING</b> with value <b>0x01</b> has been added.</td> +<td>No effect.</td> +</tr> +</table> +<br/> +</div> + +<br/> +<span class='h_name'>tracing.h</span><br/> +<span class="section" onclick="javascript:showContent(this, 'c_24')"> +<span class='ext'>[+]</span> LCBTRACE_F_EXTERNAL</span> +<br/> +<div id="c_24" style="display:none;"> +<table class='ptable'> +<tr> +<th class='pn'></th> +<th class='chg'>Change</th> +<th>Effect</th> +</tr> +<tr> +<th>1</th> +<td>The constant <b>LCBTRACE_F_EXTERNAL</b> with value <b>0x02</b> has been added.</td> +<td>No effect.</td> +</tr> +</table> +<br/> +</div> + +<span class="section" onclick="javascript:showContent(this, 'c_25')"> +<span class='ext'>[+]</span> LCBTRACE_OP_ANALYTICS</span> +<br/> +<div id="c_25" style="display:none;"> +<table class='ptable'> +<tr> +<th class='pn'></th> +<th class='chg'>Change</th> +<th>Effect</th> +</tr> +<tr> +<th>1</th> +<td>The constant <b>LCBTRACE_OP_ANALYTICS</b> with value <b>"analytics"</b> has been added.</td> +<td>No effect.</td> +</tr> +</table> +<br/> +</div> + +<span class="section" onclick="javascript:showContent(this, 'c_26')"> +<span class='ext'>[+]</span> LCBTRACE_OP_LOOKUPIN</span> +<br/> +<div id="c_26" style="display:none;"> +<table class='ptable'> +<tr> +<th class='pn'></th> +<th class='chg'>Change</th> +<th>Effect</th> +</tr> +<tr> +<th>1</th> +<td>The constant <b>LCBTRACE_OP_LOOKUPIN</b> with value <b>"lookup_in"</b> has been added.</td> +<td>No effect.</td> +</tr> +</table> +<br/> +</div> + +<span class="section" onclick="javascript:showContent(this, 'c_27')"> +<span class='ext'>[+]</span> LCBTRACE_OP_MUTATEIN</span> +<br/> +<div id="c_27" style="display:none;"> +<table class='ptable'> +<tr> +<th class='pn'></th> +<th class='chg'>Change</th> +<th>Effect</th> +</tr> +<tr> +<th>1</th> +<td>The constant <b>LCBTRACE_OP_MUTATEIN</b> with value <b>"mutate_in"</b> has been added.</td> +<td>No effect.</td> +</tr> +</table> +<br/> +</div> + +<span class="section" onclick="javascript:showContent(this, 'c_28')"> +<span class='ext'>[+]</span> LCBTRACE_OP_QUERY</span> +<br/> +<div id="c_28" style="display:none;"> +<table class='ptable'> +<tr> +<th class='pn'></th> +<th class='chg'>Change</th> +<th>Effect</th> +</tr> +<tr> +<th>1</th> +<td>The constant <b>LCBTRACE_OP_QUERY</b> with value <b>"query"</b> has been added.</td> +<td>No effect.</td> +</tr> +</table> +<br/> +</div> + +<span class="section" onclick="javascript:showContent(this, 'c_29')"> +<span class='ext'>[+]</span> LCBTRACE_OP_SEARCH</span> +<br/> +<div id="c_29" style="display:none;"> +<table class='ptable'> +<tr> +<th class='pn'></th> +<th class='chg'>Change</th> +<th>Effect</th> +</tr> +<tr> +<th>1</th> +<td>The constant <b>LCBTRACE_OP_SEARCH</b> with value <b>"search"</b> has been added.</td> +<td>No effect.</td> +</tr> +</table> +<br/> +</div> + +<span class="section" onclick="javascript:showContent(this, 'c_30')"> +<span class='ext'>[+]</span> LCBTRACE_OP_VIEW</span> +<br/> +<div id="c_30" style="display:none;"> +<table class='ptable'> +<tr> +<th class='pn'></th> +<th class='chg'>Change</th> +<th>Effect</th> +</tr> +<tr> +<th>1</th> +<td>The constant <b>LCBTRACE_OP_VIEW</b> with value <b>"views"</b> has been added.</td> +<td>No effect.</td> +</tr> +</table> +<br/> +</div> + +<span class="section" onclick="javascript:showContent(this, 'c_31')"> +<span class='ext'>[+]</span> LCBTRACE_TAG_COLLECTION</span> +<br/> +<div id="c_31" style="display:none;"> +<table class='ptable'> +<tr> +<th class='pn'></th> +<th class='chg'>Change</th> +<th>Effect</th> +</tr> +<tr> +<th>1</th> +<td>The constant <b>LCBTRACE_TAG_COLLECTION</b> with value <b>"db.couchbase.collection"</b> has been added.</td> +<td>No effect.</td> +</tr> +</table> +<br/> +</div> + +<span class="section" onclick="javascript:showContent(this, 'c_32')"> +<span class='ext'>[+]</span> LCBTRACE_TAG_DURABILITY</span> +<br/> +<div id="c_32" style="display:none;"> +<table class='ptable'> +<tr> +<th class='pn'></th> +<th class='chg'>Change</th> +<th>Effect</th> +</tr> +<tr> +<th>1</th> +<td>The constant <b>LCBTRACE_TAG_DURABILITY</b> with value <b>"db.couchbase.durability"</b> has been added.</td> +<td>No effect.</td> +</tr> +</table> +<br/> +</div> + +<span class="section" onclick="javascript:showContent(this, 'c_33')"> +<span class='ext'>[+]</span> LCBTRACE_TAG_LOCAL_PORT</span> +<br/> +<div id="c_33" style="display:none;"> +<table class='ptable'> +<tr> +<th class='pn'></th> +<th class='chg'>Change</th> +<th>Effect</th> +</tr> +<tr> +<th>1</th> +<td>The constant <b>LCBTRACE_TAG_LOCAL_PORT</b> with value <b>"net.host.port"</b> has been added.</td> +<td>No effect.</td> +</tr> +</table> +<br/> +</div> + +<span class="section" onclick="javascript:showContent(this, 'c_34')"> +<span class='ext'>[+]</span> LCBTRACE_TAG_OPERATION</span> +<br/> +<div id="c_34" style="display:none;"> +<table class='ptable'> +<tr> +<th class='pn'></th> +<th class='chg'>Change</th> +<th>Effect</th> +</tr> +<tr> +<th>1</th> +<td>The constant <b>LCBTRACE_TAG_OPERATION</b> with value <b>"db.operation"</b> has been added.</td> +<td>No effect.</td> +</tr> +</table> +<br/> +</div> + +<span class="section" onclick="javascript:showContent(this, 'c_35')"> +<span class='ext'>[+]</span> LCBTRACE_TAG_PEER_PORT</span> +<br/> +<div id="c_35" style="display:none;"> +<table class='ptable'> +<tr> +<th class='pn'></th> +<th class='chg'>Change</th> +<th>Effect</th> +</tr> +<tr> +<th>1</th> +<td>The constant <b>LCBTRACE_TAG_PEER_PORT</b> with value <b>"net.peer.port"</b> has been added.</td> +<td>No effect.</td> +</tr> +</table> +<br/> +</div> + +<span class="section" onclick="javascript:showContent(this, 'c_36')"> +<span class='ext'>[+]</span> LCBTRACE_TAG_RETRIES</span> +<br/> +<div id="c_36" style="display:none;"> +<table class='ptable'> +<tr> +<th class='pn'></th> +<th class='chg'>Change</th> +<th>Effect</th> +</tr> +<tr> +<th>1</th> +<td>The constant <b>LCBTRACE_TAG_RETRIES</b> with value <b>"db.couchbase.retries"</b> has been added.</td> +<td>No effect.</td> +</tr> +</table> +<br/> +</div> + +<span class="section" onclick="javascript:showContent(this, 'c_37')"> +<span class='ext'>[+]</span> LCBTRACE_TAG_SCOPE</span> +<br/> +<div id="c_37" style="display:none;"> +<table class='ptable'> +<tr> +<th class='pn'></th> +<th class='chg'>Change</th> +<th>Effect</th> +</tr> +<tr> +<th>1</th> +<td>The constant <b>LCBTRACE_TAG_SCOPE</b> with value <b>"db.couchbase.scope"</b> has been added.</td> +<td>No effect.</td> +</tr> +</table> +<br/> +</div> + +<span class="section" onclick="javascript:showContent(this, 'c_38')"> +<span class='ext'>[+]</span> LCBTRACE_TAG_STATEMENT</span> +<br/> +<div id="c_38" style="display:none;"> +<table class='ptable'> +<tr> +<th class='pn'></th> +<th class='chg'>Change</th> +<th>Effect</th> +</tr> +<tr> +<th>1</th> +<td>The constant <b>LCBTRACE_TAG_STATEMENT</b> with value <b>"db.statement"</b> has been added.</td> +<td>No effect.</td> +</tr> +</table> +<br/> +</div> + +<span class="section" onclick="javascript:showContent(this, 'c_39')"> +<span class='ext'>[+]</span> LCBTRACE_TAG_SYSTEM</span> +<br/> +<div id="c_39" style="display:none;"> +<table class='ptable'> +<tr> +<th class='pn'></th> +<th class='chg'>Change</th> +<th>Effect</th> +</tr> +<tr> +<th>1</th> +<td>The constant <b>LCBTRACE_TAG_SYSTEM</b> with value <b>"db.system"</b> has been added.</td> +<td>No effect.</td> +</tr> +</table> +<br/> +</div> + +<span class="section" onclick="javascript:showContent(this, 'c_40')"> +<span class='ext'>[+]</span> LCBTRACE_TAG_TRANSPORT</span> +<br/> +<div id="c_40" style="display:none;"> +<table class='ptable'> +<tr> +<th class='pn'></th> +<th class='chg'>Change</th> +<th>Effect</th> +</tr> +<tr> +<th>1</th> +<td>The constant <b>LCBTRACE_TAG_TRANSPORT</b> with value <b>"db.net.transport"</b> has been added.</td> +<td>No effect.</td> +</tr> +</table> +<br/> +</div> + +<br/> +<a class='top_ref' href='#Top'>to the top</a><br/> +<a name='Headers'></a><h2>Header Files <span class='gray'> 25 </span></h2><hr/> +<div class='h_list'> +assert.h<br/> +auth.h<br/> +cntl-private.h<br/> +cntl.h<br/> +configuration.h<br/> +couchbase.h<br/> +crypto.h<br/> +iops.h<br/> +ixmgmt.h<br/> +kvbuf.h<br/> +libev_io_opts.h<br/> +libevent_io_opts.h<br/> +libuv_compat.h<br/> +libuv_io_opts.h<br/> +logger.h<br/> +metrics.h<br/> +pktfwd.h<br/> +plugin-internal.h<br/> +select_io_opts.h<br/> +sysdefs.h<br/> +tracing.h<br/> +utils.h<br/> +vbucket.h<br/> +visibility.h<br/> +wsaerr.h<br/> +</div> +<br/><a class='top_ref' href='#Top'>to the top</a><br/> +<a name='Libs'></a><h2>Libraries <span class='gray'> 1 </span></h2><hr/> +<div class='lib_list'> +libcouchbase.so.7.0.5<br/> +</div> +<br/><a class='top_ref' href='#Top'>to the top</a><br/> +<br/><br/><br/></div><div id='SourceTab' class='tab'> +<h2>Test Info</h2><hr/> +<table class='summary'> +<tr><th>Library Name</th><td>libcouchbase</td></tr> +<tr><th>Version #1</th><td>3.1.4</td></tr> +<tr><th>Version #2</th><td>3.2.0</td></tr> +<tr><th>Arch</th><td>x86_64</td></tr> +<tr><th>Subject</th><td width='150px'>Source Compatibility</td></tr> +</table> +<h2>Test Results</h2><hr/> +<table class='summary'><tr><th>Total Header Files</th><td><a href='#Headers' style='color:Blue;'>25</a></td></tr> +<tr><th>Total Libraries</th><td><a href='#Libs' style='color:Blue;'>1</a></td></tr> +<tr><th>Total Symbols / Types</th><td>627 / 359</td></tr> +<tr><th>Compatibility</th> +<td class='warning'>99.3%</td> +</tr> +</table> +<h2>Problem Summary</h2><hr/> +<table class='summary'><tr><th></th><th style='text-align:center;'>Severity</th><th style='text-align:center;'>Count</th></tr><tr><th>Added Symbols</th><td>-</td><td class='new'><a href='#Source_Added' style='color:Blue;'>25</a></td></tr> +<tr><th>Removed Symbols</th><td>High</td><td class='failed'><a href='#Source_Removed' style='color:Blue;'>2</a></td></tr> +<tr><th rowspan='3'>Problems with<br/>Data Types</th><td>High</td><td>0</td></tr> +<tr><td>Medium</td><td class='failed'><a href='#Type_Source_Problems_Medium' style='color:Blue;'>1</a></td></tr> +<tr><td>Low</td><td class='warning'><a href='#Type_Source_Problems_Low' style='color:Blue;'>3</a></td></tr> +<tr><th rowspan='3'>Problems with<br/>Symbols</th><td>High</td><td>0</td></tr> +<tr><td>Medium</td><td>0</td></tr> +<tr><td>Low</td><td>0</td></tr> +<tr><th>Problems with<br/>Constants</th><td>Low</td><td class='warning'><a href='#Constant_Source_Problems_Low' style='color:Blue;'>16</a></td></tr> +<tr><th>Other Changes<br/>in Constants</th><td>-</td><td class='passed'><a href='#Other_Source_Changes_In_Constants' style='color:Blue;'>20</a></td></tr> +</table> + +<a name='Source_Added'></a><h2>Added Symbols <span class='new'> 25 </span></h2><hr/> +<span class='h_name'>couchbase.h</span><br/> +<span class="iname">lcb_cmdstore_preserve_expiry <span class='sym_p'><span>( lcb_CMDSTORE* <span class='color_p'>cmd</span></span>, <span>int <span class='color_p'>should_preserve</span></span> )</span></span><br/> +<span class="iname">lcb_cmdsubdoc_preserve_expiry <span class='sym_p'><span>( lcb_CMDSUBDOC* <span class='color_p'>cmd</span></span>, <span>int <span class='color_p'>should_preserve</span></span> )</span></span><br/> +<span class="iname">lcb_createopts_meter <span class='sym_p'><span>( lcb_CREATEOPTS* <span class='color_p'>options</span></span>, <span>lcbmetrics_METER const* <span class='color_p'>metrics</span></span> )</span></span><br/> +<span class="iname">lcb_createopts_tracer <span class='sym_p'><span>( lcb_CREATEOPTS* <span class='color_p'>options</span></span>, <span>lcbtrace_TRACER* <span class='color_p'>tracer</span></span> )</span></span><br/> +<span class="iname">lcb_respgetreplica_is_active <span class='sym_p'><span>( lcb_RESPGETREPLICA const* <span class='color_p'>resp</span></span> )</span></span><br/> +<br/> +<span class='h_name'>metrics.h</span><br/> +<span class="iname">lcbmetrics_meter_cookie <span class='sym_p'><span>( lcbmetrics_METER const* <span class='color_p'>meter</span></span>, <span>void** <span class='color_p'>cookie</span></span> )</span></span><br/> +<span class="iname">lcbmetrics_meter_create <span class='sym_p'><span>( lcbmetrics_METER** <span class='color_p'>meter</span></span>, <span>void* <span class='color_p'>cookie</span></span> )</span></span><br/> +<span class="iname">lcbmetrics_meter_destroy <span class='sym_p'><span>( lcbmetrics_METER const* <span class='color_p'>meter</span></span> )</span></span><br/> +<span class="iname">lcbmetrics_meter_dtor_callback <span class='sym_p'><span>( lcbmetrics_METER* <span class='color_p'>meter</span></span>, <span>void(*<span class='color_p'>callback</span>)(lcbmetrics_METER const*)</span> )</span></span><br/> +<span class="iname">lcbmetrics_meter_value_recorder_callback <span class='sym_p'><span>( lcbmetrics_METER* <span class='color_p'>meter</span></span>, <span>lcbmetrics_VALUE_RECORDER_CALLBACK <span class='color_p'>callback</span></span> )</span></span><br/> +<span class="iname">lcbmetrics_valuerecorder_cookie <span class='sym_p'><span>( lcbmetrics_VALUERECORDER const* <span class='color_p'>recorder</span></span>, <span>void** <span class='color_p'>cookie</span></span> )</span></span><br/> +<span class="iname">lcbmetrics_valuerecorder_create <span class='sym_p'><span>( lcbmetrics_VALUERECORDER** <span class='color_p'>recorder</span></span>, <span>void* <span class='color_p'>cookie</span></span> )</span></span><br/> +<span class="iname">lcbmetrics_valuerecorder_destroy <span class='sym_p'><span>( lcbmetrics_VALUERECORDER const* <span class='color_p'>recorder</span></span> )</span></span><br/> +<span class="iname">lcbmetrics_valuerecorder_dtor_callback <span class='sym_p'><span>( lcbmetrics_VALUERECORDER* <span class='color_p'>recorder</span></span>, <span>void(*<span class='color_p'>callback</span>)(lcbmetrics_VALUERECORDER const*)</span> )</span></span><br/> +<span class="iname">lcbmetrics_valuerecorder_record_value_callback <span class='sym_p'><span>( lcbmetrics_VALUERECORDER* <span class='color_p'>recorder</span></span>, <span>lcbmetrics_RECORD_VALUE <span class='color_p'>callback</span></span> )</span></span><br/> +<br/> +<span class='h_name'>tracing.h</span><br/> +<span class="iname">lcbtrace_span_get_is_dispatch <span class='sym_p'><span>( lcbtrace_SPAN* <span class='color_p'>span</span></span>, <span>int* <span class='color_p'>dispatch</span></span> )</span></span><br/> +<span class="iname">lcbtrace_span_get_is_encoding <span class='sym_p'><span>( lcbtrace_SPAN* <span class='color_p'>span</span></span>, <span>int* <span class='color_p'>encoding</span></span> )</span></span><br/> +<span class="iname">lcbtrace_span_get_is_outer <span class='sym_p'><span>( lcbtrace_SPAN* <span class='color_p'>span</span></span>, <span>int* <span class='color_p'>outer</span></span> )</span></span><br/> +<span class="iname">lcbtrace_span_get_service <span class='sym_p'><span>( lcbtrace_SPAN* <span class='color_p'>span</span></span>, <span>enum lcbtrace_SERVICE* <span class='color_p'>svc</span></span> )</span></span><br/> +<span class="iname">lcbtrace_span_set_is_dispatch <span class='sym_p'><span>( lcbtrace_SPAN* <span class='color_p'>span</span></span>, <span>int <span class='color_p'>dispatch</span></span> )</span></span><br/> +<span class="iname">lcbtrace_span_set_is_encode <span class='sym_p'><span>( lcbtrace_SPAN* <span class='color_p'>span</span></span>, <span>int <span class='color_p'>encode</span></span> )</span></span><br/> +<span class="iname">lcbtrace_span_set_is_outer <span class='sym_p'><span>( lcbtrace_SPAN* <span class='color_p'>span</span></span>, <span>int <span class='color_p'>outer</span></span> )</span></span><br/> +<span class="iname">lcbtrace_span_set_service <span class='sym_p'><span>( lcbtrace_SPAN* <span class='color_p'>span</span></span>, <span>enum lcbtrace_SERVICE <span class='color_p'>svc</span></span> )</span></span><br/> +<span class="iname">lcbtrace_span_should_finish <span class='sym_p'><span>( lcbtrace_SPAN* <span class='color_p'>span</span></span> )</span></span><br/> +<span class="iname">lcbtrace_span_wrap <span class='sym_p'><span>( lcbtrace_TRACER* <span class='color_p'>tracer</span></span>, <span>char const* <span class='color_p'>opname</span></span>, <span>uint64_t <span class='color_p'>start</span></span>, <span>void* <span class='color_p'>external_span</span></span>, <span>lcbtrace_SPAN** <span class='color_p'>lcbspan</span></span> )</span></span><br/> +<br/> +<a class='top_ref' href='#Top'>to the top</a><br/> +<a name='Source_Removed'></a><a name='Source_Withdrawn'></a><h2>Removed Symbols <span class='failed'> 2 </span></h2><hr/> +<span class='h_name'>utils.h</span><br/> +<span class="iname">lcb_resp_get_error_context <span class='sym_p'><span>( int <span class='color_p'>cbtype</span></span>, <span>struct lcb_RESPBASE_ const* <span class='color_p'>rb</span></span> )</span></span><br/> +<span class="iname">lcb_resp_get_error_ref <span class='sym_p'><span>( int <span class='color_p'>cbtype</span></span>, <span>struct lcb_RESPBASE_ const* <span class='color_p'>rb</span></span> )</span></span><br/> +<br/> +<a class='top_ref' href='#Top'>to the top</a><br/> +<a name='Medium_Risk_Source_Problems'></a><a name='Type_Source_Problems_Medium'></a> +<h2>Problems with Data Types, Medium Severity <span class='failed'> 1 </span></h2><hr/> +<span class='h_name'>tracing.h</span><br/> +<span class="section" onclick="javascript:showContent(this, 'c_41')"> +<span class='ext'>[+]</span> <span class='ttype'>struct</span> lcbtrace_TRACER <span class='failed'> 1 </span></span> +<br/> +<div id="c_41" style="display:none;"> +<table class='ptable'><tr> +<th class='pn'></th> +<th class='chg'>Change</th> +<th>Effect</th></tr><tr> +<th>1</th> +<td>Type of field <b>v</b> has been changed from <span class='value'>union lcbtrace_TRACER::._anon_42</span> to <span class='value'>union lcbtrace_TRACER::._anon_44</span> of different format.</td> +<td>Recompilation of a client program may be broken.</td> +</tr> +</table> +<span class="sect_aff" onclick="javascript:showContent(this, 'c_42')"> +[+] affected symbols: 5 (0.8%)</span> +<div id="c_42" style="display:none;"> +<div class='affected'><span class='iname_a'>lcb_get_tracer <span class='sym_p'><span>( lcb_INSTANCE* <i>instance</i></span> )</span></span><br/> +<div class='affect'>Return value (pointer) has base type 'struct lcbtrace_TRACER'.</div> +<span class='iname_a'>lcb_set_tracer <span class='sym_p'><span>( lcb_INSTANCE* <i>instance</i></span>, <span>lcbtrace_TRACER* <span class='fp'>tracer</span></span> )</span></span><br/> +<div class='affect'>2nd parameter 'tracer' (pointer) has base type 'struct lcbtrace_TRACER'.</div> +<span class='iname_a'>lcbtrace_destroy <span class='sym_p'><span>( lcbtrace_TRACER* <span class='fp'>tracer</span></span> )</span></span><br/> +<div class='affect'>1st parameter 'tracer' (pointer) has base type 'struct lcbtrace_TRACER'.</div> +<span class='iname_a'>lcbtrace_new <span class='sym_p'><span>( lcb_INSTANCE* <i>instance</i></span>, <span>lcb_U64 <i>flags</i></span> )</span></span><br/> +<div class='affect'>Return value (pointer) has base type 'struct lcbtrace_TRACER'.</div> +<span class='iname_a'>lcbtrace_span_start <span class='sym_p'><span>( lcbtrace_TRACER* <span class='fp'>tracer</span></span>, <span>char const* <i>operation</i></span>, <span>lcb_U64 <i>now</i></span>, <span>struct lcbtrace_REF* <i>ref</i></span> )</span></span><br/> +<div class='affect'>1st parameter 'tracer' (pointer) has base type 'struct lcbtrace_TRACER'.</div> +</div> +</div> +<br/><br/></div> + +<br/> +<a class='top_ref' href='#Top'>to the top</a><br/> +<a name='Low_Risk_Source_Problems'></a><a name='Type_Source_Problems_Low'></a> +<h2>Problems with Data Types, Low Severity <span class='warning'> 3 </span></h2><hr/> +<span class='h_name'>couchbase.h</span><br/> +<span class="section" onclick="javascript:showContent(this, 'c_43')"> +<span class='ext'>[+]</span> <span class='ttype'>typedef</span> lcb_RESPBASE <span class='warning'> 1 </span></span> +<br/> +<div id="c_43" style="display:none;"> +<table class='ptable'><tr> +<th class='pn'></th> +<th class='chg'>Change</th> +<th>Effect</th></tr><tr> +<th>1</th> +<td>Base type has been changed from <span class='value'>struct lcb_RESPBASE_</span> to <b>void</b>.</td> +<td>Recompilation of a client program may be broken.</td> +</tr> +</table> +<span class="sect_aff" onclick="javascript:showContent(this, 'c_44')"> +[+] affected symbols: 2 (0.3%)</span> +<div id="c_44" style="display:none;"> +<div class='affected'><span class='iname_a'>lcb_get_callback <span class='sym_p'><span>( lcb_INSTANCE* <i>instance</i></span>, <span>int <i>cbtype</i></span> )</span></span><br/> +<div class='affect'>Field 'retval.p2' in the return value has base type 'lcb_RESPBASE'.</div> +<span class='iname_a'>lcb_install_callback <span class='sym_p'><span>( lcb_INSTANCE* <i>instance</i></span>, <span>int <i>cbtype</i></span>, <span>void(*<span class='fp'>cb</span>)(struct lcb_st*, int, struct lcb_RESPBASE_ const*)</span> )</span></span><br/> +<div class='affect'>Field 'cb.p2' in 3rd parameter 'cb' has base type 'lcb_RESPBASE'.</div> +</div> +</div> +<br/><br/></div> + +<br/> +<span class='h_name'>crypto.h</span><br/> +<span class="section" onclick="javascript:showContent(this, 'c_45')"> +<span class='ext'>[+]</span> <span class='ttype'>struct</span> lcbcrypto_PROVIDER <span class='warning'> 1 </span></span> +<br/> +<div id="c_45" style="display:none;"> +<table class='ptable'><tr> +<th class='pn'></th> +<th class='chg'>Change</th> +<th>Effect</th></tr><tr> +<th>1</th> +<td>Type of field <b>v</b> has been changed from <span class='value'>union lcbcrypto_PROVIDER::._anon_203</span> to <span class='value'>union lcbcrypto_PROVIDER::._anon_206</span>.</td> +<td>Recompilation of a client program may be broken.</td> +</tr> +</table> +<span class="sect_aff" onclick="javascript:showContent(this, 'c_46')"> +[+] affected symbols: 3 (0.5%)</span> +<div id="c_46" style="display:none;"> +<div class='affected'><span class='iname_a'>lcbcrypto_ref <span class='sym_p'><span>( lcbcrypto_PROVIDER* <span class='fp'>provider</span></span> )</span></span><br/> +<div class='affect'>1st parameter 'provider' (pointer) has base type 'struct lcbcrypto_PROVIDER'.</div> +<span class='iname_a'>lcbcrypto_register <span class='sym_p'><span>( lcb_INSTANCE* <i>instance</i></span>, <span>char const* <i>name</i></span>, <span>lcbcrypto_PROVIDER* <span class='fp'>provider</span></span> )</span></span><br/> +<div class='affect'>3rd parameter 'provider' (pointer) has base type 'struct lcbcrypto_PROVIDER'.</div> +<span class='iname_a'>lcbcrypto_unref <span class='sym_p'><span>( lcbcrypto_PROVIDER* <span class='fp'>provider</span></span> )</span></span><br/> +<div class='affect'>1st parameter 'provider' (pointer) has base type 'struct lcbcrypto_PROVIDER'.</div> +</div> +</div> +<br/><br/></div> + +<br/> +<span class='h_name'>libuv_io_opts.h</span><br/> +<span class="section" onclick="javascript:showContent(this, 'c_47')"> +<span class='ext'>[+]</span> <span class='ttype'>struct</span> lcbuv_options_st <span class='warning'> 1 </span></span> +<br/> +<div id="c_47" style="display:none;"> +<table class='ptable'><tr> +<th class='pn'></th> +<th class='chg'>Change</th> +<th>Effect</th></tr><tr> +<th>1</th> +<td>Type of field <b>v</b> has been changed from <span class='value'>union lcbuv_options_st::._anon_182</span> to <span class='value'>union lcbuv_options_st::._anon_185</span>.</td> +<td>Recompilation of a client program may be broken.</td> +</tr> +</table> +<span class="sect_aff" onclick="javascript:showContent(this, 'c_48')"> +[+] affected symbols: 1 (0.2%)</span> +<div id="c_48" style="display:none;"> +<div class='affected'><span class='iname_a'>lcb_create_libuv_io_opts <span class='sym_p'><span>( int <i>version</i></span>, <span>lcb_io_opt_t* <i>io</i></span>, <span>lcbuv_options_t* <span class='fp'>options</span></span> )</span></span><br/> +<div class='affect'>3rd parameter 'options' (pointer) has base type 'struct lcbuv_options_st'.</div> +</div> +</div> +<br/><br/></div> + +<br/> +<a class='top_ref' href='#Top'>to the top</a><br/> +<a name='Constant_Source_Problems_Low'></a> +<h2>Problems with Constants, Low Severity <span class='warning'> 16 </span></h2><hr/> +<span class='h_name'>cntl.h</span><br/> +<span class="section" onclick="javascript:showContent(this, 'c_49')"> +<span class='ext'>[+]</span> LCB_CNTL__MAX</span> +<br/> +<div id="c_49" style="display:none;"> +<table class='ptable'> +<tr> +<th class='pn'></th> +<th class='chg'>Change</th> +<th>Effect</th> +</tr> +<tr> +<th>1</th> +<td>The value of constant <b>LCB_CNTL__MAX</b> has been changed from <b>0x66</b> to <b>0x68</b>.</td> +<td>Recompilation of a client program may be broken.</td> +</tr> +</table> +<br/> +</div> + +<br/> +<span class='h_name'>configuration.h</span><br/> +<span class="section" onclick="javascript:showContent(this, 'c_50')"> +<span class='ext'>[+]</span> LCB_VERSION</span> +<br/> +<div id="c_50" style="display:none;"> +<table class='ptable'> +<tr> +<th class='pn'></th> +<th class='chg'>Change</th> +<th>Effect</th> +</tr> +<tr> +<th>1</th> +<td>The value of constant <b>LCB_VERSION</b> has been changed from <b>0x030104</b> to <b>0x030200</b>.</td> +<td>Recompilation of a client program may be broken.</td> +</tr> +</table> +<br/> +</div> + +<span class="section" onclick="javascript:showContent(this, 'c_51')"> +<span class='ext'>[+]</span> LCB_VERSION_CHANGESET</span> +<br/> +<div id="c_51" style="display:none;"> +<table class='ptable'> +<tr> +<th class='pn'></th> +<th class='chg'>Change</th> +<th>Effect</th> +</tr> +<tr> +<th>1</th> +<td>The value of constant <b>LCB_VERSION_CHANGESET</b> has been changed from <b>"513555d6c63dec7fd7166450282be92c6f74ef47"</b> to <b>"c712686af5825f2f05c89112e555cd09906aa727"</b>.</td> +<td>Recompilation of a client program may be broken.</td> +</tr> +</table> +<br/> +</div> + +<span class="section" onclick="javascript:showContent(this, 'c_52')"> +<span class='ext'>[+]</span> LCB_VERSION_STRING</span> +<br/> +<div id="c_52" style="display:none;"> +<table class='ptable'> +<tr> +<th class='pn'></th> +<th class='chg'>Change</th> +<th>Effect</th> +</tr> +<tr> +<th>1</th> +<td>The value of constant <b>LCB_VERSION_STRING</b> has been changed from <b>"3.1.4"</b> to <b>"3.2.0"</b>.</td> +<td>Recompilation of a client program may be broken.</td> +</tr> +</table> +<br/> +</div> + +<br/> +<span class='h_name'>tracing.h</span><br/> +<span class="section" onclick="javascript:showContent(this, 'c_53')"> +<span class='ext'>[+]</span> LCBTRACE_OP_DISPATCH_TO_SERVER</span> +<br/> +<div id="c_53" style="display:none;"> +<table class='ptable'> +<tr> +<th class='pn'></th> +<th class='chg'>Change</th> +<th>Effect</th> +</tr> +<tr> +<th>1</th> +<td>The value of constant <b>LCBTRACE_OP_DISPATCH_TO_SERVER</b> has been changed from <b>"dispatch_to_server"</b> to <b>"dispatch"</b>.</td> +<td>Recompilation of a client program may be broken.</td> +</tr> +</table> +<br/> +</div> + +<span class="section" onclick="javascript:showContent(this, 'c_54')"> +<span class='ext'>[+]</span> LCBTRACE_TAG_COMPONENT</span> +<br/> +<div id="c_54" style="display:none;"> +<table class='ptable'> +<tr> +<th class='pn'></th> +<th class='chg'>Change</th> +<th>Effect</th> +</tr> +<tr> +<th>1</th> +<td>The value of constant <b>LCBTRACE_TAG_COMPONENT</b> has been changed from <b>"component"</b> to <b>"db.couchbase.component"</b>.</td> +<td>Recompilation of a client program may be broken.</td> +</tr> +</table> +<br/> +</div> + +<span class="section" onclick="javascript:showContent(this, 'c_55')"> +<span class='ext'>[+]</span> LCBTRACE_TAG_DB_TYPE</span> +<br/> +<div id="c_55" style="display:none;"> +<table class='ptable'> +<tr> +<th class='pn'></th> +<th class='chg'>Change</th> +<th>Effect</th> +</tr> +<tr> +<th>1</th> +<td>The constant <b>LCBTRACE_TAG_DB_TYPE</b> with value <b>"db.type"</b> has been removed.</td> +<td>Recompilation of a client program may be broken.</td> +</tr> +</table> +<br/> +</div> + +<span class="section" onclick="javascript:showContent(this, 'c_56')"> +<span class='ext'>[+]</span> LCBTRACE_TAG_LOCAL_ADDRESS</span> +<br/> +<div id="c_56" style="display:none;"> +<table class='ptable'> +<tr> +<th class='pn'></th> +<th class='chg'>Change</th> +<th>Effect</th> +</tr> +<tr> +<th>1</th> +<td>The value of constant <b>LCBTRACE_TAG_LOCAL_ADDRESS</b> has been changed from <b>"local.address"</b> to <b>"net.host.name"</b>.</td> +<td>Recompilation of a client program may be broken.</td> +</tr> +</table> +<br/> +</div> + +<span class="section" onclick="javascript:showContent(this, 'c_57')"> +<span class='ext'>[+]</span> LCBTRACE_TAG_LOCAL_ID</span> +<br/> +<div id="c_57" style="display:none;"> +<table class='ptable'> +<tr> +<th class='pn'></th> +<th class='chg'>Change</th> +<th>Effect</th> +</tr> +<tr> +<th>1</th> +<td>The value of constant <b>LCBTRACE_TAG_LOCAL_ID</b> has been changed from <b>"couchbase.local_id"</b> to <b>"db.couchbase.local_id"</b>.</td> +<td>Recompilation of a client program may be broken.</td> +</tr> +</table> +<br/> +</div> + +<span class="section" onclick="javascript:showContent(this, 'c_58')"> +<span class='ext'>[+]</span> LCBTRACE_TAG_OPERATION_ID</span> +<br/> +<div id="c_58" style="display:none;"> +<table class='ptable'> +<tr> +<th class='pn'></th> +<th class='chg'>Change</th> +<th>Effect</th> +</tr> +<tr> +<th>1</th> +<td>The value of constant <b>LCBTRACE_TAG_OPERATION_ID</b> has been changed from <b>"couchbase.operation_id"</b> to <b>"db.couchbase.operation_id"</b>.</td> +<td>Recompilation of a client program may be broken.</td> +</tr> +</table> +<br/> +</div> + +<span class="section" onclick="javascript:showContent(this, 'c_59')"> +<span class='ext'>[+]</span> LCBTRACE_TAG_PEER_ADDRESS</span> +<br/> +<div id="c_59" style="display:none;"> +<table class='ptable'> +<tr> +<th class='pn'></th> +<th class='chg'>Change</th> +<th>Effect</th> +</tr> +<tr> +<th>1</th> +<td>The value of constant <b>LCBTRACE_TAG_PEER_ADDRESS</b> has been changed from <b>"peer.address"</b> to <b>"net.peer.name"</b>.</td> +<td>Recompilation of a client program may be broken.</td> +</tr> +</table> +<br/> +</div> + +<span class="section" onclick="javascript:showContent(this, 'c_60')"> +<span class='ext'>[+]</span> LCBTRACE_TAG_PEER_LATENCY</span> +<br/> +<div id="c_60" style="display:none;"> +<table class='ptable'> +<tr> +<th class='pn'></th> +<th class='chg'>Change</th> +<th>Effect</th> +</tr> +<tr> +<th>1</th> +<td>The value of constant <b>LCBTRACE_TAG_PEER_LATENCY</b> has been changed from <b>"peer.latency"</b> to <b>"db.couchbase.server_duration"</b>.</td> +<td>Recompilation of a client program may be broken.</td> +</tr> +</table> +<br/> +</div> + +<span class="section" onclick="javascript:showContent(this, 'c_61')"> +<span class='ext'>[+]</span> LCBTRACE_TAG_SERVICE</span> +<br/> +<div id="c_61" style="display:none;"> +<table class='ptable'> +<tr> +<th class='pn'></th> +<th class='chg'>Change</th> +<th>Effect</th> +</tr> +<tr> +<th>1</th> +<td>The value of constant <b>LCBTRACE_TAG_SERVICE</b> has been changed from <b>"couchbase.service"</b> to <b>"db.couchbase.service"</b>.</td> +<td>Recompilation of a client program may be broken.</td> +</tr> +</table> +<br/> +</div> + +<span class="section" onclick="javascript:showContent(this, 'c_62')"> +<span class='ext'>[+]</span> LCBTRACE_TAG_SERVICE_N1QL</span> +<br/> +<div id="c_62" style="display:none;"> +<table class='ptable'> +<tr> +<th class='pn'></th> +<th class='chg'>Change</th> +<th>Effect</th> +</tr> +<tr> +<th>1</th> +<td>The value of constant <b>LCBTRACE_TAG_SERVICE_N1QL</b> has been changed from <b>"n1ql"</b> to <b>"query"</b>.</td> +<td>Recompilation of a client program may be broken.</td> +</tr> +</table> +<br/> +</div> + +<span class="section" onclick="javascript:showContent(this, 'c_63')"> +<span class='ext'>[+]</span> LCBTRACE_TAG_SERVICE_VIEW</span> +<br/> +<div id="c_63" style="display:none;"> +<table class='ptable'> +<tr> +<th class='pn'></th> +<th class='chg'>Change</th> +<th>Effect</th> +</tr> +<tr> +<th>1</th> +<td>The value of constant <b>LCBTRACE_TAG_SERVICE_VIEW</b> has been changed from <b>"view"</b> to <b>"views"</b>.</td> +<td>Recompilation of a client program may be broken.</td> +</tr> +</table> +<br/> +</div> + +<br/> +<span class='h_name'>utils.h</span><br/> +<span class="section" onclick="javascript:showContent(this, 'c_64')"> +<span class='ext'>[+]</span> LCB_CMD_BASE</span> +<br/> +<div id="c_64" style="display:none;"> +<table class='ptable'> +<tr> +<th class='pn'></th> +<th class='chg'>Change</th> +<th>Effect</th> +</tr> +<tr> +<th>1</th> +<td>The constant <b>LCB_CMD_BASE</b> with value <span class='value'>lcb_U32 cmdflags; lcb_U32 exptime; lcb_U64 cas; lcb_U32 cid; const char *scope; size_t nscope; const char *collection; size_t ncollection; lcb_KEYBUF key; lcb_U32 timeout; lcbtrace_SPAN *pspan</span> has been removed.</td> +<td>Recompilation of a client program may be broken.</td> +</tr> +</table> +<br/> +</div> + +<br/> +<a class='top_ref' href='#Top'>to the top</a><br/> +<a name='Other_Source_Changes'></a><a name='Other_Source_Changes_In_Constants'></a> +<h2>Other Changes in Constants <span class='passed'> 20 </span></h2><hr/> +<span class='h_name'>cntl.h</span><br/> +<span class="section" onclick="javascript:showContent(this, 'c_65')"> +<span class='ext'>[+]</span> LCB_CNTL_ENABLE_OP_METRICS</span> +<br/> +<div id="c_65" style="display:none;"> +<table class='ptable'> +<tr> +<th class='pn'></th> +<th class='chg'>Change</th> +<th>Effect</th> +</tr> +<tr> +<th>1</th> +<td>The constant <b>LCB_CNTL_ENABLE_OP_METRICS</b> with value <b>0x67</b> has been added.</td> +<td>No effect.</td> +</tr> +</table> +<br/> +</div> + +<span class="section" onclick="javascript:showContent(this, 'c_66')"> +<span class='ext'>[+]</span> LCB_CNTL_OP_METRICS_FLUSH_INTERVAL</span> +<br/> +<div id="c_66" style="display:none;"> +<table class='ptable'> +<tr> +<th class='pn'></th> +<th class='chg'>Change</th> +<th>Effect</th> +</tr> +<tr> +<th>1</th> +<td>The constant <b>LCB_CNTL_OP_METRICS_FLUSH_INTERVAL</b> with value <b>0x66</b> has been added.</td> +<td>No effect.</td> +</tr> +</table> +<br/> +</div> + +<br/> +<span class='h_name'>metrics.h</span><br/> +<span class="section" onclick="javascript:showContent(this, 'c_67')"> +<span class='ext'>[+]</span> LCBTRACE_F_LOGGING</span> +<br/> +<div id="c_67" style="display:none;"> +<table class='ptable'> +<tr> +<th class='pn'></th> +<th class='chg'>Change</th> +<th>Effect</th> +</tr> +<tr> +<th>1</th> +<td>The constant <b>LCBTRACE_F_LOGGING</b> with value <b>0x01</b> has been added.</td> +<td>No effect.</td> +</tr> +</table> +<br/> +</div> + +<br/> +<span class='h_name'>tracing.h</span><br/> +<span class="section" onclick="javascript:showContent(this, 'c_68')"> +<span class='ext'>[+]</span> LCBTRACE_F_EXTERNAL</span> +<br/> +<div id="c_68" style="display:none;"> +<table class='ptable'> +<tr> +<th class='pn'></th> +<th class='chg'>Change</th> +<th>Effect</th> +</tr> +<tr> +<th>1</th> +<td>The constant <b>LCBTRACE_F_EXTERNAL</b> with value <b>0x02</b> has been added.</td> +<td>No effect.</td> +</tr> +</table> +<br/> +</div> + +<span class="section" onclick="javascript:showContent(this, 'c_69')"> +<span class='ext'>[+]</span> LCBTRACE_OP_ANALYTICS</span> +<br/> +<div id="c_69" style="display:none;"> +<table class='ptable'> +<tr> +<th class='pn'></th> +<th class='chg'>Change</th> +<th>Effect</th> +</tr> +<tr> +<th>1</th> +<td>The constant <b>LCBTRACE_OP_ANALYTICS</b> with value <b>"analytics"</b> has been added.</td> +<td>No effect.</td> +</tr> +</table> +<br/> +</div> + +<span class="section" onclick="javascript:showContent(this, 'c_70')"> +<span class='ext'>[+]</span> LCBTRACE_OP_LOOKUPIN</span> +<br/> +<div id="c_70" style="display:none;"> +<table class='ptable'> +<tr> +<th class='pn'></th> +<th class='chg'>Change</th> +<th>Effect</th> +</tr> +<tr> +<th>1</th> +<td>The constant <b>LCBTRACE_OP_LOOKUPIN</b> with value <b>"lookup_in"</b> has been added.</td> +<td>No effect.</td> +</tr> +</table> +<br/> +</div> + +<span class="section" onclick="javascript:showContent(this, 'c_71')"> +<span class='ext'>[+]</span> LCBTRACE_OP_MUTATEIN</span> +<br/> +<div id="c_71" style="display:none;"> +<table class='ptable'> +<tr> +<th class='pn'></th> +<th class='chg'>Change</th> +<th>Effect</th> +</tr> +<tr> +<th>1</th> +<td>The constant <b>LCBTRACE_OP_MUTATEIN</b> with value <b>"mutate_in"</b> has been added.</td> +<td>No effect.</td> +</tr> +</table> +<br/> +</div> + +<span class="section" onclick="javascript:showContent(this, 'c_72')"> +<span class='ext'>[+]</span> LCBTRACE_OP_QUERY</span> +<br/> +<div id="c_72" style="display:none;"> +<table class='ptable'> +<tr> +<th class='pn'></th> +<th class='chg'>Change</th> +<th>Effect</th> +</tr> +<tr> +<th>1</th> +<td>The constant <b>LCBTRACE_OP_QUERY</b> with value <b>"query"</b> has been added.</td> +<td>No effect.</td> +</tr> +</table> +<br/> +</div> + +<span class="section" onclick="javascript:showContent(this, 'c_73')"> +<span class='ext'>[+]</span> LCBTRACE_OP_SEARCH</span> +<br/> +<div id="c_73" style="display:none;"> +<table class='ptable'> +<tr> +<th class='pn'></th> +<th class='chg'>Change</th> +<th>Effect</th> +</tr> +<tr> +<th>1</th> +<td>The constant <b>LCBTRACE_OP_SEARCH</b> with value <b>"search"</b> has been added.</td> +<td>No effect.</td> +</tr> +</table> +<br/> +</div> + +<span class="section" onclick="javascript:showContent(this, 'c_74')"> +<span class='ext'>[+]</span> LCBTRACE_OP_VIEW</span> +<br/> +<div id="c_74" style="display:none;"> +<table class='ptable'> +<tr> +<th class='pn'></th> +<th class='chg'>Change</th> +<th>Effect</th> +</tr> +<tr> +<th>1</th> +<td>The constant <b>LCBTRACE_OP_VIEW</b> with value <b>"views"</b> has been added.</td> +<td>No effect.</td> +</tr> +</table> +<br/> +</div> + +<span class="section" onclick="javascript:showContent(this, 'c_75')"> +<span class='ext'>[+]</span> LCBTRACE_TAG_COLLECTION</span> +<br/> +<div id="c_75" style="display:none;"> +<table class='ptable'> +<tr> +<th class='pn'></th> +<th class='chg'>Change</th> +<th>Effect</th> +</tr> +<tr> +<th>1</th> +<td>The constant <b>LCBTRACE_TAG_COLLECTION</b> with value <b>"db.couchbase.collection"</b> has been added.</td> +<td>No effect.</td> +</tr> +</table> +<br/> +</div> + +<span class="section" onclick="javascript:showContent(this, 'c_76')"> +<span class='ext'>[+]</span> LCBTRACE_TAG_DURABILITY</span> +<br/> +<div id="c_76" style="display:none;"> +<table class='ptable'> +<tr> +<th class='pn'></th> +<th class='chg'>Change</th> +<th>Effect</th> +</tr> +<tr> +<th>1</th> +<td>The constant <b>LCBTRACE_TAG_DURABILITY</b> with value <b>"db.couchbase.durability"</b> has been added.</td> +<td>No effect.</td> +</tr> +</table> +<br/> +</div> + +<span class="section" onclick="javascript:showContent(this, 'c_77')"> +<span class='ext'>[+]</span> LCBTRACE_TAG_LOCAL_PORT</span> +<br/> +<div id="c_77" style="display:none;"> +<table class='ptable'> +<tr> +<th class='pn'></th> +<th class='chg'>Change</th> +<th>Effect</th> +</tr> +<tr> +<th>1</th> +<td>The constant <b>LCBTRACE_TAG_LOCAL_PORT</b> with value <b>"net.host.port"</b> has been added.</td> +<td>No effect.</td> +</tr> +</table> +<br/> +</div> + +<span class="section" onclick="javascript:showContent(this, 'c_78')"> +<span class='ext'>[+]</span> LCBTRACE_TAG_OPERATION</span> +<br/> +<div id="c_78" style="display:none;"> +<table class='ptable'> +<tr> +<th class='pn'></th> +<th class='chg'>Change</th> +<th>Effect</th> +</tr> +<tr> +<th>1</th> +<td>The constant <b>LCBTRACE_TAG_OPERATION</b> with value <b>"db.operation"</b> has been added.</td> +<td>No effect.</td> +</tr> +</table> +<br/> +</div> + +<span class="section" onclick="javascript:showContent(this, 'c_79')"> +<span class='ext'>[+]</span> LCBTRACE_TAG_PEER_PORT</span> +<br/> +<div id="c_79" style="display:none;"> +<table class='ptable'> +<tr> +<th class='pn'></th> +<th class='chg'>Change</th> +<th>Effect</th> +</tr> +<tr> +<th>1</th> +<td>The constant <b>LCBTRACE_TAG_PEER_PORT</b> with value <b>"net.peer.port"</b> has been added.</td> +<td>No effect.</td> +</tr> +</table> +<br/> +</div> + +<span class="section" onclick="javascript:showContent(this, 'c_80')"> +<span class='ext'>[+]</span> LCBTRACE_TAG_RETRIES</span> +<br/> +<div id="c_80" style="display:none;"> +<table class='ptable'> +<tr> +<th class='pn'></th> +<th class='chg'>Change</th> +<th>Effect</th> +</tr> +<tr> +<th>1</th> +<td>The constant <b>LCBTRACE_TAG_RETRIES</b> with value <b>"db.couchbase.retries"</b> has been added.</td> +<td>No effect.</td> +</tr> +</table> +<br/> +</div> + +<span class="section" onclick="javascript:showContent(this, 'c_81')"> +<span class='ext'>[+]</span> LCBTRACE_TAG_SCOPE</span> +<br/> +<div id="c_81" style="display:none;"> +<table class='ptable'> +<tr> +<th class='pn'></th> +<th class='chg'>Change</th> +<th>Effect</th> +</tr> +<tr> +<th>1</th> +<td>The constant <b>LCBTRACE_TAG_SCOPE</b> with value <b>"db.couchbase.scope"</b> has been added.</td> +<td>No effect.</td> +</tr> +</table> +<br/> +</div> + +<span class="section" onclick="javascript:showContent(this, 'c_82')"> +<span class='ext'>[+]</span> LCBTRACE_TAG_STATEMENT</span> +<br/> +<div id="c_82" style="display:none;"> +<table class='ptable'> +<tr> +<th class='pn'></th> +<th class='chg'>Change</th> +<th>Effect</th> +</tr> +<tr> +<th>1</th> +<td>The constant <b>LCBTRACE_TAG_STATEMENT</b> with value <b>"db.statement"</b> has been added.</td> +<td>No effect.</td> +</tr> +</table> +<br/> +</div> + +<span class="section" onclick="javascript:showContent(this, 'c_83')"> +<span class='ext'>[+]</span> LCBTRACE_TAG_SYSTEM</span> +<br/> +<div id="c_83" style="display:none;"> +<table class='ptable'> +<tr> +<th class='pn'></th> +<th class='chg'>Change</th> +<th>Effect</th> +</tr> +<tr> +<th>1</th> +<td>The constant <b>LCBTRACE_TAG_SYSTEM</b> with value <b>"db.system"</b> has been added.</td> +<td>No effect.</td> +</tr> +</table> +<br/> +</div> + +<span class="section" onclick="javascript:showContent(this, 'c_84')"> +<span class='ext'>[+]</span> LCBTRACE_TAG_TRANSPORT</span> +<br/> +<div id="c_84" style="display:none;"> +<table class='ptable'> +<tr> +<th class='pn'></th> +<th class='chg'>Change</th> +<th>Effect</th> +</tr> +<tr> +<th>1</th> +<td>The constant <b>LCBTRACE_TAG_TRANSPORT</b> with value <b>"db.net.transport"</b> has been added.</td> +<td>No effect.</td> +</tr> +</table> +<br/> +</div> + +<br/> +<a class='top_ref' href='#Top'>to the top</a><br/> +<a name='Headers'></a><h2>Header Files <span class='gray'> 25 </span></h2><hr/> +<div class='h_list'> +assert.h<br/> +auth.h<br/> +cntl-private.h<br/> +cntl.h<br/> +configuration.h<br/> +couchbase.h<br/> +crypto.h<br/> +iops.h<br/> +ixmgmt.h<br/> +kvbuf.h<br/> +libev_io_opts.h<br/> +libevent_io_opts.h<br/> +libuv_compat.h<br/> +libuv_io_opts.h<br/> +logger.h<br/> +metrics.h<br/> +pktfwd.h<br/> +plugin-internal.h<br/> +select_io_opts.h<br/> +sysdefs.h<br/> +tracing.h<br/> +utils.h<br/> +vbucket.h<br/> +visibility.h<br/> +wsaerr.h<br/> +</div> +<br/><a class='top_ref' href='#Top'>to the top</a><br/> +<a name='Libs'></a><h2>Libraries <span class='gray'> 1 </span></h2><hr/> +<div class='lib_list'> +libcouchbase.so.7.0.5<br/> +</div> +<br/><a class='top_ref' href='#Top'>to the top</a><br/> +<br/><br/><br/></div><hr/> +<div class='footer' align='right'><i>Generated by <a href='https://github.com/lvc/abi-compliance-checker'>ABI Compliance Checker</a> 2.3  </i> +</div> +<br/> + +</body></html> diff --git a/compat_reports/3.2.0_to_3.2.1/compat_report.html b/compat_reports/3.2.0_to_3.2.1/compat_report.html new file mode 100644 index 0000000..6ba6de2 --- /dev/null +++ b/compat_reports/3.2.0_to_3.2.1/compat_report.html @@ -0,0 +1,598 @@ +<!-- kind:binary;verdict:compatible;affected:0;added:2;removed:0;type_problems_high:0;type_problems_medium:0;type_problems_low:0;interface_problems_high:0;interface_problems_medium:0;interface_problems_low:0;changed_constants:0;tool_version:2.3 --> +<!-- kind:source;verdict:compatible;affected:0;added:2;removed:0;type_problems_high:0;type_problems_medium:0;type_problems_low:0;interface_problems_high:0;interface_problems_medium:0;interface_problems_low:0;changed_constants:3;tool_version:2.3 --> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<meta name="viewport" content="width=device-width,initial-scale=1" /> +<meta name="keywords" content="libcouchbase, compatibility, API, ABI, report" /> +<meta name="description" content="API/ABI compatibility report for the libcouchbase library between 3.2.0 and 3.2.1 versions" /> +<title>libcouchbase: 3.2.0 to 3.2.1 compatibility report</title> +<style type="text/css"> +body { + font-family:Arial, sans-serif; + background-color:White; + color:Black; +} +hr { + color:Black; + background-color:Black; + height:1px; + border:0; +} +h1 { + margin-bottom:0px; + padding-bottom:0px; + font-size:1.625em; +} +h2 { + margin-bottom:0px; + padding-bottom:0px; + font-size:1.25em; + white-space:nowrap; +} +span.section { + font-weight:bold; + cursor:pointer; + color:#003E69; + white-space:nowrap; + margin-left:0.3125em; +} +span.new_sign { + font-weight:bold; + margin-left:1.65em; + color:#003E69; +} +span.new_sign_lbl { + margin-left:3em; + font-size:1em; + color:Black; +} +span:hover.section { + color:#336699; +} +span.sect_aff { + cursor:pointer; + padding-left:1.55em; + font-size:0.875em; + color:#cc3300; +} +span.sect_info { + cursor:pointer; + padding-left:1.55em; + font-size:0.875em; + color:Black; +} +span.ext { + font-weight:normal; +} +span.h_name { + color:#cc3300; + font-size:0.875em; + font-weight:bold; +} +div.h_list, div.lib_list { + font-size:0.94em; + padding-left:0.4em; +} +span.ns { + color:#408080; + font-size:0.94em; +} +span.lib_name { + color:Green; + font-size:0.875em; + font-weight:bold; +} +span.iname { + font-weight:bold; + color:#003E69; + margin-left:0.3125em; +} +span.iname_b { + font-weight:bold; +} +span.iname_a { + color:#333333; + font-weight:bold; + font-size:0.94em; +} +span.sym_p { + font-weight:normal; + white-space:normal; +} +span.sym_pd { + white-space:normal; +} +span.sym_p span, span.sym_pd span { + white-space:nowrap; +} +div.affect { + padding-left:1em; + padding-bottom:10px; + font-size:0.87em; + font-style:italic; + line-height:0.9em; +} +div.affected { + padding-left:1.9em; + padding-top:10px; +} +table.ptable { + border-collapse:collapse; + border:1px outset black; + margin-left:0.95em; + margin-top:3px; + margin-bottom:3px; + width:56.25em; +} +table.ptable td { + border:1px solid gray; + padding:3px; + font-size:0.875em; + text-align:left; + vertical-align:top; + max-width:28em; + word-wrap:break-word; +} +table.ptable th.pn { + width:2%; +} +table.ptable th.chg { + width:47%; +} +table.vtable { + border-collapse:collapse; + border:1px outset black; + margin-left:1.9em; + margin-top:0.7em; +} +table.vtable td { + border:1px solid gray; + padding:3px; + font-size:0.875em; + vertical-align:top; + max-width:450px; + word-wrap:break-word; +} +table.ptable th, table.vtable th { + background-color:#eeeeee; + font-weight:bold; + color:#333333; + font-family:Verdana, Arial; + font-size:0.875em; + border:1px solid gray; + text-align:center; + vertical-align:top; + white-space:nowrap; + padding:3px; +} +table.summary { + border-collapse:collapse; + border:1px outset black; +} +table.summary th { + background-color:#eeeeee; + font-weight:normal; + text-align:left; + font-size:0.94em; + white-space:nowrap; + border:1px inset gray; + padding:3px; +} +table.summary td { + text-align:right; + white-space:nowrap; + border:1px inset gray; + padding:3px 5px 3px 10px; +} +span.mngl { + padding-left:1em; + font-size:0.875em; + cursor:text; + color:#444444; + font-weight:bold; +} +span.pleft { + padding-left:2.5em; +} +span.sym_ver { + color:#333333; + white-space:nowrap; + font-family:"DejaVu Sans Mono", Monospace; +} +span.attr { + color:#333333; + font-weight:normal; +} +span.color_p { + font-style:italic; + color:Brown; +} +span.p { + font-style:italic; +} +span.fp { + font-style:italic; + background-color:#DCDCDC; +} +span.ttype { + font-weight:normal; +} +span.nowrap { + white-space:nowrap; +} +span.value { + font-weight:bold; +} +.passed { + background-color:#CCFFCC; + font-weight:normal; +} +.warning { + background-color:#F4F4AF; + font-weight:normal; +} +.failed { + background-color:#FFCCCC; + font-weight:normal; +} +.new { + background-color:#C6DEFF; + font-weight:normal; +} +.compatible { + background-color:#CCFFCC; + font-weight:normal; +} +.almost_compatible { + background-color:#FFDAA3; + font-weight:normal; +} +.incompatible { + background-color:#FFCCCC; + font-weight:normal; +} +.gray { + background-color:#DCDCDC; + font-weight:normal; +} +.top_ref { + font-size:0.69em; +} +.footer { + font-size:0.75em; +} + +.tabset { + float:left; +} +a.tab { + border:1px solid Black; + float:left; + margin:0px 5px -1px 0px; + padding:3px 5px 3px 5px; + position:relative; + font-size:0.875em; + background-color:#DDD; + text-decoration:none; + color:Black; +} +a.disabled:hover +{ + color:Black; + background:#EEE; +} +a.active:hover +{ + color:Black; + background:White; +} +a.active { + border-bottom-color:White; + background-color:White; +} +div.tab { + border-top:1px solid Black; + padding:0px; + width:100%; + clear:both; +} +</style> +<script type="text/javascript" language="JavaScript"> +<!-- +function showContent(header, id) +{ + e = document.getElementById(id); + if(e.style.display == 'none') + { + e.style.display = 'block'; + e.style.visibility = 'visible'; + header.innerHTML = header.innerHTML.replace(/\[[^0-9 ]\]/gi,"[−]"); + } + else + { + e.style.display = 'none'; + e.style.visibility = 'hidden'; + header.innerHTML = header.innerHTML.replace(/\[[^0-9 ]\]/gi,"[+]"); + } +} +function initTabs() +{ + var url = window.location.href; + if(url.indexOf('_Source_')!=-1 || url.indexOf('#Source')!=-1) + { + var tab1 = document.getElementById('BinaryID'); + var tab2 = document.getElementById('SourceID'); + tab1.className='tab disabled'; + tab2.className='tab active'; + } + var sets = document.getElementsByTagName('div'); + for (var i = 0; i < sets.length; i++) + { + if (sets[i].className.indexOf('tabset') != -1) + { + var tabs = []; + var links = sets[i].getElementsByTagName('a'); + for (var j = 0; j < links.length; j++) + { + if (links[j].className.indexOf('tab') != -1) + { + tabs.push(links[j]); + links[j].tabs = tabs; + var tab = document.getElementById(links[j].href.substr(links[j].href.indexOf('#') + 1)); + //reset all tabs on start + if (tab) + { + if (links[j].className.indexOf('active')!=-1) { + tab.style.display = 'block'; + } + else { + tab.style.display = 'none'; + } + } + links[j].onclick = function() + { + var tab = document.getElementById(this.href.substr(this.href.indexOf('#') + 1)); + if (tab) + { + //reset all tabs before change + for (var k = 0; k < this.tabs.length; k++) + { + document.getElementById(this.tabs[k].href.substr(this.tabs[k].href.indexOf('#') + 1)).style.display = 'none'; + this.tabs[k].className = this.tabs[k].className.replace('active', 'disabled'); + } + this.className = 'tab active'; + tab.style.display = 'block'; + // window.location.hash = this.id.replace('ID', ''); + return false; + } + } + } + } + } + } + if(url.indexOf('#')!=-1) { + location.href=location.href; + } +} +if (window.addEventListener) window.addEventListener('load', initTabs, false); +else if (window.attachEvent) window.attachEvent('onload', initTabs); +--> +</script> +</head> +<body><a name='Source'></a><a name='Binary'></a><a name='Top'></a><h1>API compatibility report for the <span style='color:Blue;'>libcouchbase</span> library between <span style='color:Red;'>3.2.0</span> and <span style='color:Red;'>3.2.1</span> versions on <span style='color:Blue;'>x86_64</span></h1> + + <br/> + <div class='tabset'> + <a id='BinaryID' href='#BinaryTab' class='tab active'>Binary<br/>Compatibility</a> + <a id='SourceID' href='#SourceTab' style='margin-left:3px' class='tab disabled'>Source<br/>Compatibility</a> + </div><div id='BinaryTab' class='tab'> +<h2>Test Info</h2><hr/> +<table class='summary'> +<tr><th>Library Name</th><td>libcouchbase</td></tr> +<tr><th>Version #1</th><td>3.2.0</td></tr> +<tr><th>Version #2</th><td>3.2.1</td></tr> +<tr><th>Arch</th><td>x86_64</td></tr> +<tr><th>GCC Version</th><td>10</td></tr> +<tr><th>Subject</th><td width='150px'>Binary Compatibility</td></tr> +</table> +<h2>Test Results</h2><hr/> +<table class='summary'><tr><th>Total Header Files</th><td><a href='#Headers' style='color:Blue;'>26</a></td></tr> +<tr><th>Total Libraries</th><td><a href='#Libs' style='color:Blue;'>1</a></td></tr> +<tr><th>Total Symbols / Types</th><td>644 / 382</td></tr> +<tr><th>Compatibility</th> +<td class='compatible'>100%</td> +</tr> +</table> +<h2>Problem Summary</h2><hr/> +<table class='summary'><tr><th></th><th style='text-align:center;'>Severity</th><th style='text-align:center;'>Count</th></tr><tr><th>Added Symbols</th><td>-</td><td class='new'><a href='#Binary_Added' style='color:Blue;'>2</a></td></tr> +<tr><th>Removed Symbols</th><td>High</td><td>0</td></tr> +<tr><th rowspan='3'>Problems with<br/>Data Types</th><td>High</td><td>0</td></tr> +<tr><td>Medium</td><td>0</td></tr> +<tr><td>Low</td><td>0</td></tr> +<tr><th rowspan='3'>Problems with<br/>Symbols</th><td>High</td><td>0</td></tr> +<tr><td>Medium</td><td>0</td></tr> +<tr><td>Low</td><td>0</td></tr> +<tr><th>Problems with<br/>Constants</th><td>Low</td><td>0</td></tr> +</table> + +<a name='Binary_Added'></a><h2>Added Symbols <span class='new'> 2 </span></h2><hr/> +<span class='h_name'>couchbase.h</span>, <span class='lib_name'>libcouchbase.so.8.0.2</span><br/> +<span class="iname">lcb_cmdanalytics_positional_params <span class='sym_p'><span>( lcb_CMDANALYTICS* <span class='color_p'>cmd</span></span>, <span>char const* <span class='color_p'>value</span></span>, <span>size_t <span class='color_p'>value_len</span></span> )</span></span><br/> +<span class="iname">lcb_cmdquery_positional_params <span class='sym_p'><span>( lcb_CMDQUERY* <span class='color_p'>cmd</span></span>, <span>char const* <span class='color_p'>value</span></span>, <span>size_t <span class='color_p'>value_len</span></span> )</span></span><br/> +<br/> +<a class='top_ref' href='#Top'>to the top</a><br/> +<a name='Headers'></a><h2>Header Files <span class='gray'> 26 </span></h2><hr/> +<div class='h_list'> +assert.h<br/> +auth.h<br/> +cntl-private.h<br/> +cntl.h<br/> +configuration.h<br/> +couchbase.h<br/> +crypto.h<br/> +iometrics.h<br/> +iops.h<br/> +ixmgmt.h<br/> +kvbuf.h<br/> +libev_io_opts.h<br/> +libevent_io_opts.h<br/> +libuv_compat.h<br/> +libuv_io_opts.h<br/> +logger.h<br/> +metrics.h<br/> +pktfwd.h<br/> +plugin-internal.h<br/> +select_io_opts.h<br/> +sysdefs.h<br/> +tracing.h<br/> +utils.h<br/> +vbucket.h<br/> +visibility.h<br/> +wsaerr.h<br/> +</div> +<br/><a class='top_ref' href='#Top'>to the top</a><br/> +<a name='Libs'></a><h2>Libraries <span class='gray'> 1 </span></h2><hr/> +<div class='lib_list'> +libcouchbase.so.8.0.1<br/> +</div> +<br/><a class='top_ref' href='#Top'>to the top</a><br/> +<br/><br/><br/></div><div id='SourceTab' class='tab'> +<h2>Test Info</h2><hr/> +<table class='summary'> +<tr><th>Library Name</th><td>libcouchbase</td></tr> +<tr><th>Version #1</th><td>3.2.0</td></tr> +<tr><th>Version #2</th><td>3.2.1</td></tr> +<tr><th>Arch</th><td>x86_64</td></tr> +<tr><th>Subject</th><td width='150px'>Source Compatibility</td></tr> +</table> +<h2>Test Results</h2><hr/> +<table class='summary'><tr><th>Total Header Files</th><td><a href='#Headers' style='color:Blue;'>26</a></td></tr> +<tr><th>Total Libraries</th><td><a href='#Libs' style='color:Blue;'>1</a></td></tr> +<tr><th>Total Symbols / Types</th><td>650 / 388</td></tr> +<tr><th>Compatibility</th> +<td class='compatible'>100%</td> +</tr> +</table> +<h2>Problem Summary</h2><hr/> +<table class='summary'><tr><th></th><th style='text-align:center;'>Severity</th><th style='text-align:center;'>Count</th></tr><tr><th>Added Symbols</th><td>-</td><td class='new'><a href='#Source_Added' style='color:Blue;'>2</a></td></tr> +<tr><th>Removed Symbols</th><td>High</td><td>0</td></tr> +<tr><th rowspan='3'>Problems with<br/>Data Types</th><td>High</td><td>0</td></tr> +<tr><td>Medium</td><td>0</td></tr> +<tr><td>Low</td><td>0</td></tr> +<tr><th rowspan='3'>Problems with<br/>Symbols</th><td>High</td><td>0</td></tr> +<tr><td>Medium</td><td>0</td></tr> +<tr><td>Low</td><td>0</td></tr> +<tr><th>Problems with<br/>Constants</th><td>Low</td><td class='warning'><a href='#Constant_Source_Problems_Low' style='color:Blue;'>3</a></td></tr> +</table> + +<a name='Source_Added'></a><h2>Added Symbols <span class='new'> 2 </span></h2><hr/> +<span class='h_name'>couchbase.h</span><br/> +<span class="iname">lcb_cmdanalytics_positional_params <span class='sym_p'><span>( lcb_CMDANALYTICS* <span class='color_p'>cmd</span></span>, <span>char const* <span class='color_p'>value</span></span>, <span>size_t <span class='color_p'>value_len</span></span> )</span></span><br/> +<span class="iname">lcb_cmdquery_positional_params <span class='sym_p'><span>( lcb_CMDQUERY* <span class='color_p'>cmd</span></span>, <span>char const* <span class='color_p'>value</span></span>, <span>size_t <span class='color_p'>value_len</span></span> )</span></span><br/> +<br/> +<a class='top_ref' href='#Top'>to the top</a><br/> +<a name='Low_Risk_Source_Problems'></a><a name='Constant_Source_Problems_Low'></a> +<h2>Problems with Constants, Low Severity <span class='warning'> 3 </span></h2><hr/> +<span class='h_name'>configuration.h</span><br/> +<span class="section" onclick="javascript:showContent(this, 'c_1')"> +<span class='ext'>[+]</span> LCB_VERSION</span> +<br/> +<div id="c_1" style="display:none;"> +<table class='ptable'> +<tr> +<th class='pn'></th> +<th class='chg'>Change</th> +<th>Effect</th> +</tr> +<tr> +<th>1</th> +<td>The value of constant <b>LCB_VERSION</b> has been changed from <b>0x030200</b> to <b>0x030201</b>.</td> +<td>Recompilation of a client program may be broken.</td> +</tr> +</table> +<br/> +</div> + +<span class="section" onclick="javascript:showContent(this, 'c_2')"> +<span class='ext'>[+]</span> LCB_VERSION_CHANGESET</span> +<br/> +<div id="c_2" style="display:none;"> +<table class='ptable'> +<tr> +<th class='pn'></th> +<th class='chg'>Change</th> +<th>Effect</th> +</tr> +<tr> +<th>1</th> +<td>The value of constant <b>LCB_VERSION_CHANGESET</b> has been changed from <b>"c712686af5825f2f05c89112e555cd09906aa727"</b> to <b>"4e76dc6c809d0b01cf304f6421c73386c852b353"</b>.</td> +<td>Recompilation of a client program may be broken.</td> +</tr> +</table> +<br/> +</div> + +<span class="section" onclick="javascript:showContent(this, 'c_3')"> +<span class='ext'>[+]</span> LCB_VERSION_STRING</span> +<br/> +<div id="c_3" style="display:none;"> +<table class='ptable'> +<tr> +<th class='pn'></th> +<th class='chg'>Change</th> +<th>Effect</th> +</tr> +<tr> +<th>1</th> +<td>The value of constant <b>LCB_VERSION_STRING</b> has been changed from <b>"3.2.0"</b> to <b>"3.2.1"</b>.</td> +<td>Recompilation of a client program may be broken.</td> +</tr> +</table> +<br/> +</div> + +<br/> +<a class='top_ref' href='#Top'>to the top</a><br/> +<a name='Headers'></a><h2>Header Files <span class='gray'> 26 </span></h2><hr/> +<div class='h_list'> +assert.h<br/> +auth.h<br/> +cntl-private.h<br/> +cntl.h<br/> +configuration.h<br/> +couchbase.h<br/> +crypto.h<br/> +iometrics.h<br/> +iops.h<br/> +ixmgmt.h<br/> +kvbuf.h<br/> +libev_io_opts.h<br/> +libevent_io_opts.h<br/> +libuv_compat.h<br/> +libuv_io_opts.h<br/> +logger.h<br/> +metrics.h<br/> +pktfwd.h<br/> +plugin-internal.h<br/> +select_io_opts.h<br/> +sysdefs.h<br/> +tracing.h<br/> +utils.h<br/> +vbucket.h<br/> +visibility.h<br/> +wsaerr.h<br/> +</div> +<br/><a class='top_ref' href='#Top'>to the top</a><br/> +<a name='Libs'></a><h2>Libraries <span class='gray'> 1 </span></h2><hr/> +<div class='lib_list'> +libcouchbase.so.8.0.1<br/> +</div> +<br/><a class='top_ref' href='#Top'>to the top</a><br/> +<br/><br/><br/></div><hr/> +<div class='footer' align='right'><i>Generated by <a href='https://github.com/lvc/abi-compliance-checker'>ABI Compliance Checker</a> 2.3  </i> +</div> +<br/> + +</body></html> diff --git a/compat_reports/3.2.1_to_3.2.2/compat_report.html b/compat_reports/3.2.1_to_3.2.2/compat_report.html new file mode 100644 index 0000000..63b022c --- /dev/null +++ b/compat_reports/3.2.1_to_3.2.2/compat_report.html @@ -0,0 +1,618 @@ +<!-- kind:binary;verdict:compatible;affected:0;added:12;removed:0;type_problems_high:0;type_problems_medium:0;type_problems_low:0;interface_problems_high:0;interface_problems_medium:0;interface_problems_low:0;changed_constants:0;tool_version:2.3 --> +<!-- kind:source;verdict:compatible;affected:0;added:12;removed:0;type_problems_high:0;type_problems_medium:0;type_problems_low:0;interface_problems_high:0;interface_problems_medium:0;interface_problems_low:0;changed_constants:3;tool_version:2.3 --> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<meta name="viewport" content="width=device-width,initial-scale=1" /> +<meta name="keywords" content="libcouchbase, compatibility, API, ABI, report" /> +<meta name="description" content="API/ABI compatibility report for the libcouchbase library between 3.2.1 and 3.2.2 versions" /> +<title>libcouchbase: 3.2.1 to 3.2.2 compatibility report</title> +<style type="text/css"> +body { + font-family:Arial, sans-serif; + background-color:White; + color:Black; +} +hr { + color:Black; + background-color:Black; + height:1px; + border:0; +} +h1 { + margin-bottom:0px; + padding-bottom:0px; + font-size:1.625em; +} +h2 { + margin-bottom:0px; + padding-bottom:0px; + font-size:1.25em; + white-space:nowrap; +} +span.section { + font-weight:bold; + cursor:pointer; + color:#003E69; + white-space:nowrap; + margin-left:0.3125em; +} +span.new_sign { + font-weight:bold; + margin-left:1.65em; + color:#003E69; +} +span.new_sign_lbl { + margin-left:3em; + font-size:1em; + color:Black; +} +span:hover.section { + color:#336699; +} +span.sect_aff { + cursor:pointer; + padding-left:1.55em; + font-size:0.875em; + color:#cc3300; +} +span.sect_info { + cursor:pointer; + padding-left:1.55em; + font-size:0.875em; + color:Black; +} +span.ext { + font-weight:normal; +} +span.h_name { + color:#cc3300; + font-size:0.875em; + font-weight:bold; +} +div.h_list, div.lib_list { + font-size:0.94em; + padding-left:0.4em; +} +span.ns { + color:#408080; + font-size:0.94em; +} +span.lib_name { + color:Green; + font-size:0.875em; + font-weight:bold; +} +span.iname { + font-weight:bold; + color:#003E69; + margin-left:0.3125em; +} +span.iname_b { + font-weight:bold; +} +span.iname_a { + color:#333333; + font-weight:bold; + font-size:0.94em; +} +span.sym_p { + font-weight:normal; + white-space:normal; +} +span.sym_pd { + white-space:normal; +} +span.sym_p span, span.sym_pd span { + white-space:nowrap; +} +div.affect { + padding-left:1em; + padding-bottom:10px; + font-size:0.87em; + font-style:italic; + line-height:0.9em; +} +div.affected { + padding-left:1.9em; + padding-top:10px; +} +table.ptable { + border-collapse:collapse; + border:1px outset black; + margin-left:0.95em; + margin-top:3px; + margin-bottom:3px; + width:56.25em; +} +table.ptable td { + border:1px solid gray; + padding:3px; + font-size:0.875em; + text-align:left; + vertical-align:top; + max-width:28em; + word-wrap:break-word; +} +table.ptable th.pn { + width:2%; +} +table.ptable th.chg { + width:47%; +} +table.vtable { + border-collapse:collapse; + border:1px outset black; + margin-left:1.9em; + margin-top:0.7em; +} +table.vtable td { + border:1px solid gray; + padding:3px; + font-size:0.875em; + vertical-align:top; + max-width:450px; + word-wrap:break-word; +} +table.ptable th, table.vtable th { + background-color:#eeeeee; + font-weight:bold; + color:#333333; + font-family:Verdana, Arial; + font-size:0.875em; + border:1px solid gray; + text-align:center; + vertical-align:top; + white-space:nowrap; + padding:3px; +} +table.summary { + border-collapse:collapse; + border:1px outset black; +} +table.summary th { + background-color:#eeeeee; + font-weight:normal; + text-align:left; + font-size:0.94em; + white-space:nowrap; + border:1px inset gray; + padding:3px; +} +table.summary td { + text-align:right; + white-space:nowrap; + border:1px inset gray; + padding:3px 5px 3px 10px; +} +span.mngl { + padding-left:1em; + font-size:0.875em; + cursor:text; + color:#444444; + font-weight:bold; +} +span.pleft { + padding-left:2.5em; +} +span.sym_ver { + color:#333333; + white-space:nowrap; + font-family:"DejaVu Sans Mono", Monospace; +} +span.attr { + color:#333333; + font-weight:normal; +} +span.color_p { + font-style:italic; + color:Brown; +} +span.p { + font-style:italic; +} +span.fp { + font-style:italic; + background-color:#DCDCDC; +} +span.ttype { + font-weight:normal; +} +span.nowrap { + white-space:nowrap; +} +span.value { + font-weight:bold; +} +.passed { + background-color:#CCFFCC; + font-weight:normal; +} +.warning { + background-color:#F4F4AF; + font-weight:normal; +} +.failed { + background-color:#FFCCCC; + font-weight:normal; +} +.new { + background-color:#C6DEFF; + font-weight:normal; +} +.compatible { + background-color:#CCFFCC; + font-weight:normal; +} +.almost_compatible { + background-color:#FFDAA3; + font-weight:normal; +} +.incompatible { + background-color:#FFCCCC; + font-weight:normal; +} +.gray { + background-color:#DCDCDC; + font-weight:normal; +} +.top_ref { + font-size:0.69em; +} +.footer { + font-size:0.75em; +} + +.tabset { + float:left; +} +a.tab { + border:1px solid Black; + float:left; + margin:0px 5px -1px 0px; + padding:3px 5px 3px 5px; + position:relative; + font-size:0.875em; + background-color:#DDD; + text-decoration:none; + color:Black; +} +a.disabled:hover +{ + color:Black; + background:#EEE; +} +a.active:hover +{ + color:Black; + background:White; +} +a.active { + border-bottom-color:White; + background-color:White; +} +div.tab { + border-top:1px solid Black; + padding:0px; + width:100%; + clear:both; +} +</style> +<script type="text/javascript" language="JavaScript"> +<!-- +function showContent(header, id) +{ + e = document.getElementById(id); + if(e.style.display == 'none') + { + e.style.display = 'block'; + e.style.visibility = 'visible'; + header.innerHTML = header.innerHTML.replace(/\[[^0-9 ]\]/gi,"[−]"); + } + else + { + e.style.display = 'none'; + e.style.visibility = 'hidden'; + header.innerHTML = header.innerHTML.replace(/\[[^0-9 ]\]/gi,"[+]"); + } +} +function initTabs() +{ + var url = window.location.href; + if(url.indexOf('_Source_')!=-1 || url.indexOf('#Source')!=-1) + { + var tab1 = document.getElementById('BinaryID'); + var tab2 = document.getElementById('SourceID'); + tab1.className='tab disabled'; + tab2.className='tab active'; + } + var sets = document.getElementsByTagName('div'); + for (var i = 0; i < sets.length; i++) + { + if (sets[i].className.indexOf('tabset') != -1) + { + var tabs = []; + var links = sets[i].getElementsByTagName('a'); + for (var j = 0; j < links.length; j++) + { + if (links[j].className.indexOf('tab') != -1) + { + tabs.push(links[j]); + links[j].tabs = tabs; + var tab = document.getElementById(links[j].href.substr(links[j].href.indexOf('#') + 1)); + //reset all tabs on start + if (tab) + { + if (links[j].className.indexOf('active')!=-1) { + tab.style.display = 'block'; + } + else { + tab.style.display = 'none'; + } + } + links[j].onclick = function() + { + var tab = document.getElementById(this.href.substr(this.href.indexOf('#') + 1)); + if (tab) + { + //reset all tabs before change + for (var k = 0; k < this.tabs.length; k++) + { + document.getElementById(this.tabs[k].href.substr(this.tabs[k].href.indexOf('#') + 1)).style.display = 'none'; + this.tabs[k].className = this.tabs[k].className.replace('active', 'disabled'); + } + this.className = 'tab active'; + tab.style.display = 'block'; + // window.location.hash = this.id.replace('ID', ''); + return false; + } + } + } + } + } + } + if(url.indexOf('#')!=-1) { + location.href=location.href; + } +} +if (window.addEventListener) window.addEventListener('load', initTabs, false); +else if (window.attachEvent) window.attachEvent('onload', initTabs); +--> +</script> +</head> +<body><a name='Source'></a><a name='Binary'></a><a name='Top'></a><h1>API compatibility report for the <span style='color:Blue;'>libcouchbase</span> library between <span style='color:Red;'>3.2.1</span> and <span style='color:Red;'>3.2.2</span> versions on <span style='color:Blue;'>x86_64</span></h1> + + <br/> + <div class='tabset'> + <a id='BinaryID' href='#BinaryTab' class='tab active'>Binary<br/>Compatibility</a> + <a id='SourceID' href='#SourceTab' style='margin-left:3px' class='tab disabled'>Source<br/>Compatibility</a> + </div><div id='BinaryTab' class='tab'> +<h2>Test Info</h2><hr/> +<table class='summary'> +<tr><th>Library Name</th><td>libcouchbase</td></tr> +<tr><th>Version #1</th><td>3.2.1</td></tr> +<tr><th>Version #2</th><td>3.2.2</td></tr> +<tr><th>Arch</th><td>x86_64</td></tr> +<tr><th>GCC Version</th><td>10</td></tr> +<tr><th>Subject</th><td width='150px'>Binary Compatibility</td></tr> +</table> +<h2>Test Results</h2><hr/> +<table class='summary'><tr><th>Total Header Files</th><td><a href='#Headers' style='color:Blue;'>26</a></td></tr> +<tr><th>Total Libraries</th><td><a href='#Libs' style='color:Blue;'>1</a></td></tr> +<tr><th>Total Symbols / Types</th><td>646 / 382</td></tr> +<tr><th>Compatibility</th> +<td class='compatible'>100%</td> +</tr> +</table> +<h2>Problem Summary</h2><hr/> +<table class='summary'><tr><th></th><th style='text-align:center;'>Severity</th><th style='text-align:center;'>Count</th></tr><tr><th>Added Symbols</th><td>-</td><td class='new'><a href='#Binary_Added' style='color:Blue;'>12</a></td></tr> +<tr><th>Removed Symbols</th><td>High</td><td>0</td></tr> +<tr><th rowspan='3'>Problems with<br/>Data Types</th><td>High</td><td>0</td></tr> +<tr><td>Medium</td><td>0</td></tr> +<tr><td>Low</td><td>0</td></tr> +<tr><th rowspan='3'>Problems with<br/>Symbols</th><td>High</td><td>0</td></tr> +<tr><td>Medium</td><td>0</td></tr> +<tr><td>Low</td><td>0</td></tr> +<tr><th>Problems with<br/>Constants</th><td>Low</td><td>0</td></tr> +</table> + +<a name='Binary_Added'></a><h2>Added Symbols <span class='new'> 12 </span></h2><hr/> +<span class='h_name'>couchbase.h</span>, <span class='lib_name'>libcouchbase.so.8.0.3</span><br/> +<span class="iname">lcb_cmdanalytics_on_behalf_of <span class='sym_p'><span>( lcb_CMDANALYTICS* <span class='color_p'>cmd</span></span>, <span>char const* <span class='color_p'>data</span></span>, <span>size_t <span class='color_p'>data_len</span></span> )</span></span><br/> +<span class="iname">lcb_cmdcounter_on_behalf_of <span class='sym_p'><span>( lcb_CMDCOUNTER* <span class='color_p'>cmd</span></span>, <span>char const* <span class='color_p'>data</span></span>, <span>size_t <span class='color_p'>data_len</span></span> )</span></span><br/> +<span class="iname">lcb_cmdexists_on_behalf_of <span class='sym_p'><span>( lcb_CMDEXISTS* <span class='color_p'>cmd</span></span>, <span>char const* <span class='color_p'>data</span></span>, <span>size_t <span class='color_p'>data_len</span></span> )</span></span><br/> +<span class="iname">lcb_cmdget_on_behalf_of <span class='sym_p'><span>( lcb_CMDGET* <span class='color_p'>cmd</span></span>, <span>char const* <span class='color_p'>data</span></span>, <span>size_t <span class='color_p'>data_len</span></span> )</span></span><br/> +<span class="iname">lcb_cmdgetreplica_on_behalf_of <span class='sym_p'><span>( lcb_CMDGETREPLICA* <span class='color_p'>cmd</span></span>, <span>char const* <span class='color_p'>data</span></span>, <span>size_t <span class='color_p'>data_len</span></span> )</span></span><br/> +<span class="iname">lcb_cmdquery_on_behalf_of <span class='sym_p'><span>( lcb_CMDQUERY* <span class='color_p'>cmd</span></span>, <span>char const* <span class='color_p'>data</span></span>, <span>size_t <span class='color_p'>data_len</span></span> )</span></span><br/> +<span class="iname">lcb_cmdremove_on_behalf_of <span class='sym_p'><span>( lcb_CMDREMOVE* <span class='color_p'>cmd</span></span>, <span>char const* <span class='color_p'>data</span></span>, <span>size_t <span class='color_p'>data_len</span></span> )</span></span><br/> +<span class="iname">lcb_cmdsearch_on_behalf_of <span class='sym_p'><span>( lcb_CMDSEARCH* <span class='color_p'>cmd</span></span>, <span>char const* <span class='color_p'>data</span></span>, <span>size_t <span class='color_p'>data_len</span></span> )</span></span><br/> +<span class="iname">lcb_cmdstore_on_behalf_of <span class='sym_p'><span>( lcb_CMDSTORE* <span class='color_p'>cmd</span></span>, <span>char const* <span class='color_p'>data</span></span>, <span>size_t <span class='color_p'>data_len</span></span> )</span></span><br/> +<span class="iname">lcb_cmdsubdoc_on_behalf_of <span class='sym_p'><span>( lcb_CMDSUBDOC* <span class='color_p'>cmd</span></span>, <span>char const* <span class='color_p'>data</span></span>, <span>size_t <span class='color_p'>data_len</span></span> )</span></span><br/> +<span class="iname">lcb_cmdtouch_on_behalf_of <span class='sym_p'><span>( lcb_CMDTOUCH* <span class='color_p'>cmd</span></span>, <span>char const* <span class='color_p'>data</span></span>, <span>size_t <span class='color_p'>data_len</span></span> )</span></span><br/> +<span class="iname">lcb_cmdunlock_on_behalf_of <span class='sym_p'><span>( lcb_CMDUNLOCK* <span class='color_p'>cmd</span></span>, <span>char const* <span class='color_p'>data</span></span>, <span>size_t <span class='color_p'>data_len</span></span> )</span></span><br/> +<br/> +<a class='top_ref' href='#Top'>to the top</a><br/> +<a name='Headers'></a><h2>Header Files <span class='gray'> 26 </span></h2><hr/> +<div class='h_list'> +assert.h<br/> +auth.h<br/> +cntl-private.h<br/> +cntl.h<br/> +configuration.h<br/> +couchbase.h<br/> +crypto.h<br/> +iometrics.h<br/> +iops.h<br/> +ixmgmt.h<br/> +kvbuf.h<br/> +libev_io_opts.h<br/> +libevent_io_opts.h<br/> +libuv_compat.h<br/> +libuv_io_opts.h<br/> +logger.h<br/> +metrics.h<br/> +pktfwd.h<br/> +plugin-internal.h<br/> +select_io_opts.h<br/> +sysdefs.h<br/> +tracing.h<br/> +utils.h<br/> +vbucket.h<br/> +visibility.h<br/> +wsaerr.h<br/> +</div> +<br/><a class='top_ref' href='#Top'>to the top</a><br/> +<a name='Libs'></a><h2>Libraries <span class='gray'> 1 </span></h2><hr/> +<div class='lib_list'> +libcouchbase.so.8.0.2<br/> +</div> +<br/><a class='top_ref' href='#Top'>to the top</a><br/> +<br/><br/><br/></div><div id='SourceTab' class='tab'> +<h2>Test Info</h2><hr/> +<table class='summary'> +<tr><th>Library Name</th><td>libcouchbase</td></tr> +<tr><th>Version #1</th><td>3.2.1</td></tr> +<tr><th>Version #2</th><td>3.2.2</td></tr> +<tr><th>Arch</th><td>x86_64</td></tr> +<tr><th>Subject</th><td width='150px'>Source Compatibility</td></tr> +</table> +<h2>Test Results</h2><hr/> +<table class='summary'><tr><th>Total Header Files</th><td><a href='#Headers' style='color:Blue;'>26</a></td></tr> +<tr><th>Total Libraries</th><td><a href='#Libs' style='color:Blue;'>1</a></td></tr> +<tr><th>Total Symbols / Types</th><td>652 / 388</td></tr> +<tr><th>Compatibility</th> +<td class='compatible'>100%</td> +</tr> +</table> +<h2>Problem Summary</h2><hr/> +<table class='summary'><tr><th></th><th style='text-align:center;'>Severity</th><th style='text-align:center;'>Count</th></tr><tr><th>Added Symbols</th><td>-</td><td class='new'><a href='#Source_Added' style='color:Blue;'>12</a></td></tr> +<tr><th>Removed Symbols</th><td>High</td><td>0</td></tr> +<tr><th rowspan='3'>Problems with<br/>Data Types</th><td>High</td><td>0</td></tr> +<tr><td>Medium</td><td>0</td></tr> +<tr><td>Low</td><td>0</td></tr> +<tr><th rowspan='3'>Problems with<br/>Symbols</th><td>High</td><td>0</td></tr> +<tr><td>Medium</td><td>0</td></tr> +<tr><td>Low</td><td>0</td></tr> +<tr><th>Problems with<br/>Constants</th><td>Low</td><td class='warning'><a href='#Constant_Source_Problems_Low' style='color:Blue;'>3</a></td></tr> +</table> + +<a name='Source_Added'></a><h2>Added Symbols <span class='new'> 12 </span></h2><hr/> +<span class='h_name'>couchbase.h</span><br/> +<span class="iname">lcb_cmdanalytics_on_behalf_of <span class='sym_p'><span>( lcb_CMDANALYTICS* <span class='color_p'>cmd</span></span>, <span>char const* <span class='color_p'>data</span></span>, <span>size_t <span class='color_p'>data_len</span></span> )</span></span><br/> +<span class="iname">lcb_cmdcounter_on_behalf_of <span class='sym_p'><span>( lcb_CMDCOUNTER* <span class='color_p'>cmd</span></span>, <span>char const* <span class='color_p'>data</span></span>, <span>size_t <span class='color_p'>data_len</span></span> )</span></span><br/> +<span class="iname">lcb_cmdexists_on_behalf_of <span class='sym_p'><span>( lcb_CMDEXISTS* <span class='color_p'>cmd</span></span>, <span>char const* <span class='color_p'>data</span></span>, <span>size_t <span class='color_p'>data_len</span></span> )</span></span><br/> +<span class="iname">lcb_cmdget_on_behalf_of <span class='sym_p'><span>( lcb_CMDGET* <span class='color_p'>cmd</span></span>, <span>char const* <span class='color_p'>data</span></span>, <span>size_t <span class='color_p'>data_len</span></span> )</span></span><br/> +<span class="iname">lcb_cmdgetreplica_on_behalf_of <span class='sym_p'><span>( lcb_CMDGETREPLICA* <span class='color_p'>cmd</span></span>, <span>char const* <span class='color_p'>data</span></span>, <span>size_t <span class='color_p'>data_len</span></span> )</span></span><br/> +<span class="iname">lcb_cmdquery_on_behalf_of <span class='sym_p'><span>( lcb_CMDQUERY* <span class='color_p'>cmd</span></span>, <span>char const* <span class='color_p'>data</span></span>, <span>size_t <span class='color_p'>data_len</span></span> )</span></span><br/> +<span class="iname">lcb_cmdremove_on_behalf_of <span class='sym_p'><span>( lcb_CMDREMOVE* <span class='color_p'>cmd</span></span>, <span>char const* <span class='color_p'>data</span></span>, <span>size_t <span class='color_p'>data_len</span></span> )</span></span><br/> +<span class="iname">lcb_cmdsearch_on_behalf_of <span class='sym_p'><span>( lcb_CMDSEARCH* <span class='color_p'>cmd</span></span>, <span>char const* <span class='color_p'>data</span></span>, <span>size_t <span class='color_p'>data_len</span></span> )</span></span><br/> +<span class="iname">lcb_cmdstore_on_behalf_of <span class='sym_p'><span>( lcb_CMDSTORE* <span class='color_p'>cmd</span></span>, <span>char const* <span class='color_p'>data</span></span>, <span>size_t <span class='color_p'>data_len</span></span> )</span></span><br/> +<span class="iname">lcb_cmdsubdoc_on_behalf_of <span class='sym_p'><span>( lcb_CMDSUBDOC* <span class='color_p'>cmd</span></span>, <span>char const* <span class='color_p'>data</span></span>, <span>size_t <span class='color_p'>data_len</span></span> )</span></span><br/> +<span class="iname">lcb_cmdtouch_on_behalf_of <span class='sym_p'><span>( lcb_CMDTOUCH* <span class='color_p'>cmd</span></span>, <span>char const* <span class='color_p'>data</span></span>, <span>size_t <span class='color_p'>data_len</span></span> )</span></span><br/> +<span class="iname">lcb_cmdunlock_on_behalf_of <span class='sym_p'><span>( lcb_CMDUNLOCK* <span class='color_p'>cmd</span></span>, <span>char const* <span class='color_p'>data</span></span>, <span>size_t <span class='color_p'>data_len</span></span> )</span></span><br/> +<br/> +<a class='top_ref' href='#Top'>to the top</a><br/> +<a name='Low_Risk_Source_Problems'></a><a name='Constant_Source_Problems_Low'></a> +<h2>Problems with Constants, Low Severity <span class='warning'> 3 </span></h2><hr/> +<span class='h_name'>configuration.h</span><br/> +<span class="section" onclick="javascript:showContent(this, 'c_1')"> +<span class='ext'>[+]</span> LCB_VERSION</span> +<br/> +<div id="c_1" style="display:none;"> +<table class='ptable'> +<tr> +<th class='pn'></th> +<th class='chg'>Change</th> +<th>Effect</th> +</tr> +<tr> +<th>1</th> +<td>The value of constant <b>LCB_VERSION</b> has been changed from <b>0x030201</b> to <b>0x030202</b>.</td> +<td>Recompilation of a client program may be broken.</td> +</tr> +</table> +<br/> +</div> + +<span class="section" onclick="javascript:showContent(this, 'c_2')"> +<span class='ext'>[+]</span> LCB_VERSION_CHANGESET</span> +<br/> +<div id="c_2" style="display:none;"> +<table class='ptable'> +<tr> +<th class='pn'></th> +<th class='chg'>Change</th> +<th>Effect</th> +</tr> +<tr> +<th>1</th> +<td>The value of constant <b>LCB_VERSION_CHANGESET</b> has been changed from <b>"4e76dc6c809d0b01cf304f6421c73386c852b353"</b> to <b>"fadbd4d1617df952457abfa9984d095015f1ca52"</b>.</td> +<td>Recompilation of a client program may be broken.</td> +</tr> +</table> +<br/> +</div> + +<span class="section" onclick="javascript:showContent(this, 'c_3')"> +<span class='ext'>[+]</span> LCB_VERSION_STRING</span> +<br/> +<div id="c_3" style="display:none;"> +<table class='ptable'> +<tr> +<th class='pn'></th> +<th class='chg'>Change</th> +<th>Effect</th> +</tr> +<tr> +<th>1</th> +<td>The value of constant <b>LCB_VERSION_STRING</b> has been changed from <b>"3.2.1"</b> to <b>"3.2.2"</b>.</td> +<td>Recompilation of a client program may be broken.</td> +</tr> +</table> +<br/> +</div> + +<br/> +<a class='top_ref' href='#Top'>to the top</a><br/> +<a name='Headers'></a><h2>Header Files <span class='gray'> 26 </span></h2><hr/> +<div class='h_list'> +assert.h<br/> +auth.h<br/> +cntl-private.h<br/> +cntl.h<br/> +configuration.h<br/> +couchbase.h<br/> +crypto.h<br/> +iometrics.h<br/> +iops.h<br/> +ixmgmt.h<br/> +kvbuf.h<br/> +libev_io_opts.h<br/> +libevent_io_opts.h<br/> +libuv_compat.h<br/> +libuv_io_opts.h<br/> +logger.h<br/> +metrics.h<br/> +pktfwd.h<br/> +plugin-internal.h<br/> +select_io_opts.h<br/> +sysdefs.h<br/> +tracing.h<br/> +utils.h<br/> +vbucket.h<br/> +visibility.h<br/> +wsaerr.h<br/> +</div> +<br/><a class='top_ref' href='#Top'>to the top</a><br/> +<a name='Libs'></a><h2>Libraries <span class='gray'> 1 </span></h2><hr/> +<div class='lib_list'> +libcouchbase.so.8.0.2<br/> +</div> +<br/><a class='top_ref' href='#Top'>to the top</a><br/> +<br/><br/><br/></div><hr/> +<div class='footer' align='right'><i>Generated by <a href='https://github.com/lvc/abi-compliance-checker'>ABI Compliance Checker</a> 2.3  </i> +</div> +<br/> + +</body></html> diff --git a/compat_reports/3.2.2_to_3.2.3/compat_report.html b/compat_reports/3.2.2_to_3.2.3/compat_report.html new file mode 100644 index 0000000..2732248 --- /dev/null +++ b/compat_reports/3.2.2_to_3.2.3/compat_report.html @@ -0,0 +1,669 @@ +<!-- kind:binary;verdict:compatible;affected:0;added:0;removed:0;type_problems_high:0;type_problems_medium:0;type_problems_low:0;interface_problems_high:0;interface_problems_medium:0;interface_problems_low:0;changed_constants:2;tool_version:2.3 --> +<!-- kind:source;verdict:compatible;affected:0;added:0;removed:0;type_problems_high:0;type_problems_medium:0;type_problems_low:0;interface_problems_high:0;interface_problems_medium:0;interface_problems_low:0;changed_constants:5;tool_version:2.3 --> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<meta name="viewport" content="width=device-width,initial-scale=1" /> +<meta name="keywords" content="libcouchbase, compatibility, API, ABI, report" /> +<meta name="description" content="API/ABI compatibility report for the libcouchbase library between 3.2.2 and 3.2.3 versions" /> +<title>libcouchbase: 3.2.2 to 3.2.3 compatibility report</title> +<style type="text/css"> +body { + font-family:Arial, sans-serif; + background-color:White; + color:Black; +} +hr { + color:Black; + background-color:Black; + height:1px; + border:0; +} +h1 { + margin-bottom:0px; + padding-bottom:0px; + font-size:1.625em; +} +h2 { + margin-bottom:0px; + padding-bottom:0px; + font-size:1.25em; + white-space:nowrap; +} +span.section { + font-weight:bold; + cursor:pointer; + color:#003E69; + white-space:nowrap; + margin-left:0.3125em; +} +span.new_sign { + font-weight:bold; + margin-left:1.65em; + color:#003E69; +} +span.new_sign_lbl { + margin-left:3em; + font-size:1em; + color:Black; +} +span:hover.section { + color:#336699; +} +span.sect_aff { + cursor:pointer; + padding-left:1.55em; + font-size:0.875em; + color:#cc3300; +} +span.sect_info { + cursor:pointer; + padding-left:1.55em; + font-size:0.875em; + color:Black; +} +span.ext { + font-weight:normal; +} +span.h_name { + color:#cc3300; + font-size:0.875em; + font-weight:bold; +} +div.h_list, div.lib_list { + font-size:0.94em; + padding-left:0.4em; +} +span.ns { + color:#408080; + font-size:0.94em; +} +span.lib_name { + color:Green; + font-size:0.875em; + font-weight:bold; +} +span.iname { + font-weight:bold; + color:#003E69; + margin-left:0.3125em; +} +span.iname_b { + font-weight:bold; +} +span.iname_a { + color:#333333; + font-weight:bold; + font-size:0.94em; +} +span.sym_p { + font-weight:normal; + white-space:normal; +} +span.sym_pd { + white-space:normal; +} +span.sym_p span, span.sym_pd span { + white-space:nowrap; +} +div.affect { + padding-left:1em; + padding-bottom:10px; + font-size:0.87em; + font-style:italic; + line-height:0.9em; +} +div.affected { + padding-left:1.9em; + padding-top:10px; +} +table.ptable { + border-collapse:collapse; + border:1px outset black; + margin-left:0.95em; + margin-top:3px; + margin-bottom:3px; + width:56.25em; +} +table.ptable td { + border:1px solid gray; + padding:3px; + font-size:0.875em; + text-align:left; + vertical-align:top; + max-width:28em; + word-wrap:break-word; +} +table.ptable th.pn { + width:2%; +} +table.ptable th.chg { + width:47%; +} +table.vtable { + border-collapse:collapse; + border:1px outset black; + margin-left:1.9em; + margin-top:0.7em; +} +table.vtable td { + border:1px solid gray; + padding:3px; + font-size:0.875em; + vertical-align:top; + max-width:450px; + word-wrap:break-word; +} +table.ptable th, table.vtable th { + background-color:#eeeeee; + font-weight:bold; + color:#333333; + font-family:Verdana, Arial; + font-size:0.875em; + border:1px solid gray; + text-align:center; + vertical-align:top; + white-space:nowrap; + padding:3px; +} +table.summary { + border-collapse:collapse; + border:1px outset black; +} +table.summary th { + background-color:#eeeeee; + font-weight:normal; + text-align:left; + font-size:0.94em; + white-space:nowrap; + border:1px inset gray; + padding:3px; +} +table.summary td { + text-align:right; + white-space:nowrap; + border:1px inset gray; + padding:3px 5px 3px 10px; +} +span.mngl { + padding-left:1em; + font-size:0.875em; + cursor:text; + color:#444444; + font-weight:bold; +} +span.pleft { + padding-left:2.5em; +} +span.sym_ver { + color:#333333; + white-space:nowrap; + font-family:"DejaVu Sans Mono", Monospace; +} +span.attr { + color:#333333; + font-weight:normal; +} +span.color_p { + font-style:italic; + color:Brown; +} +span.p { + font-style:italic; +} +span.fp { + font-style:italic; + background-color:#DCDCDC; +} +span.ttype { + font-weight:normal; +} +span.nowrap { + white-space:nowrap; +} +span.value { + font-weight:bold; +} +.passed { + background-color:#CCFFCC; + font-weight:normal; +} +.warning { + background-color:#F4F4AF; + font-weight:normal; +} +.failed { + background-color:#FFCCCC; + font-weight:normal; +} +.new { + background-color:#C6DEFF; + font-weight:normal; +} +.compatible { + background-color:#CCFFCC; + font-weight:normal; +} +.almost_compatible { + background-color:#FFDAA3; + font-weight:normal; +} +.incompatible { + background-color:#FFCCCC; + font-weight:normal; +} +.gray { + background-color:#DCDCDC; + font-weight:normal; +} +.top_ref { + font-size:0.69em; +} +.footer { + font-size:0.75em; +} + +.tabset { + float:left; +} +a.tab { + border:1px solid Black; + float:left; + margin:0px 5px -1px 0px; + padding:3px 5px 3px 5px; + position:relative; + font-size:0.875em; + background-color:#DDD; + text-decoration:none; + color:Black; +} +a.disabled:hover +{ + color:Black; + background:#EEE; +} +a.active:hover +{ + color:Black; + background:White; +} +a.active { + border-bottom-color:White; + background-color:White; +} +div.tab { + border-top:1px solid Black; + padding:0px; + width:100%; + clear:both; +} +</style> +<script type="text/javascript" language="JavaScript"> +<!-- +function showContent(header, id) +{ + e = document.getElementById(id); + if(e.style.display == 'none') + { + e.style.display = 'block'; + e.style.visibility = 'visible'; + header.innerHTML = header.innerHTML.replace(/\[[^0-9 ]\]/gi,"[−]"); + } + else + { + e.style.display = 'none'; + e.style.visibility = 'hidden'; + header.innerHTML = header.innerHTML.replace(/\[[^0-9 ]\]/gi,"[+]"); + } +} +function initTabs() +{ + var url = window.location.href; + if(url.indexOf('_Source_')!=-1 || url.indexOf('#Source')!=-1) + { + var tab1 = document.getElementById('BinaryID'); + var tab2 = document.getElementById('SourceID'); + tab1.className='tab disabled'; + tab2.className='tab active'; + } + var sets = document.getElementsByTagName('div'); + for (var i = 0; i < sets.length; i++) + { + if (sets[i].className.indexOf('tabset') != -1) + { + var tabs = []; + var links = sets[i].getElementsByTagName('a'); + for (var j = 0; j < links.length; j++) + { + if (links[j].className.indexOf('tab') != -1) + { + tabs.push(links[j]); + links[j].tabs = tabs; + var tab = document.getElementById(links[j].href.substr(links[j].href.indexOf('#') + 1)); + //reset all tabs on start + if (tab) + { + if (links[j].className.indexOf('active')!=-1) { + tab.style.display = 'block'; + } + else { + tab.style.display = 'none'; + } + } + links[j].onclick = function() + { + var tab = document.getElementById(this.href.substr(this.href.indexOf('#') + 1)); + if (tab) + { + //reset all tabs before change + for (var k = 0; k < this.tabs.length; k++) + { + document.getElementById(this.tabs[k].href.substr(this.tabs[k].href.indexOf('#') + 1)).style.display = 'none'; + this.tabs[k].className = this.tabs[k].className.replace('active', 'disabled'); + } + this.className = 'tab active'; + tab.style.display = 'block'; + // window.location.hash = this.id.replace('ID', ''); + return false; + } + } + } + } + } + } + if(url.indexOf('#')!=-1) { + location.href=location.href; + } +} +if (window.addEventListener) window.addEventListener('load', initTabs, false); +else if (window.attachEvent) window.attachEvent('onload', initTabs); +--> +</script> +</head> +<body><a name='Source'></a><a name='Binary'></a><a name='Top'></a><h1>API compatibility report for the <span style='color:Blue;'>libcouchbase</span> library between <span style='color:Red;'>3.2.2</span> and <span style='color:Red;'>3.2.3</span> versions on <span style='color:Blue;'>x86_64</span></h1> + + <br/> + <div class='tabset'> + <a id='BinaryID' href='#BinaryTab' class='tab active'>Binary<br/>Compatibility</a> + <a id='SourceID' href='#SourceTab' style='margin-left:3px' class='tab disabled'>Source<br/>Compatibility</a> + </div><div id='BinaryTab' class='tab'> +<h2>Test Info</h2><hr/> +<table class='summary'> +<tr><th>Library Name</th><td>libcouchbase</td></tr> +<tr><th>Version #1</th><td>3.2.2</td></tr> +<tr><th>Version #2</th><td>3.2.3</td></tr> +<tr><th>Arch</th><td>x86_64</td></tr> +<tr><th>GCC Version</th><td>10</td></tr> +<tr><th>Subject</th><td width='150px'>Binary Compatibility</td></tr> +</table> +<h2>Test Results</h2><hr/> +<table class='summary'><tr><th>Total Header Files</th><td><a href='#Headers' style='color:Blue;'>26</a></td></tr> +<tr><th>Total Libraries</th><td><a href='#Libs' style='color:Blue;'>1</a></td></tr> +<tr><th>Total Symbols / Types</th><td>658 / 382</td></tr> +<tr><th>Compatibility</th> +<td class='compatible'>100%</td> +</tr> +</table> +<h2>Problem Summary</h2><hr/> +<table class='summary'><tr><th></th><th style='text-align:center;'>Severity</th><th style='text-align:center;'>Count</th></tr><tr><th>Added Symbols</th><td>-</td><td>0</td></tr> +<tr><th>Removed Symbols</th><td>High</td><td>0</td></tr> +<tr><th rowspan='3'>Problems with<br/>Data Types</th><td>High</td><td>0</td></tr> +<tr><td>Medium</td><td>0</td></tr> +<tr><td>Low</td><td>0</td></tr> +<tr><th rowspan='3'>Problems with<br/>Symbols</th><td>High</td><td>0</td></tr> +<tr><td>Medium</td><td>0</td></tr> +<tr><td>Low</td><td>0</td></tr> +<tr><th>Problems with<br/>Constants</th><td>Low</td><td class='warning'><a href='#Constant_Binary_Problems_Low' style='color:Blue;'>2</a></td></tr> +</table> + +<a name='Low_Risk_Binary_Problems'></a><a name='Constant_Binary_Problems_Low'></a> +<h2>Problems with Constants, Low Severity <span class='warning'> 2 </span></h2><hr/> +<span class='h_name'>tracing.h</span><br/> +<span class="section" onclick="javascript:showContent(this, 'c_1')"> +<span class='ext'>[+]</span> LCBTRACE_TAG_DB_INSTANCE</span> +<br/> +<div id="c_1" style="display:none;"> +<table class='ptable'> +<tr> +<th class='pn'></th> +<th class='chg'>Change</th> +<th>Effect</th> +</tr> +<tr> +<th>1</th> +<td>The value of constant <b>LCBTRACE_TAG_DB_INSTANCE</b> has been changed from <b>"db.instance"</b> to <b>"db.name"</b>.</td> +<td>Applications will pass an old value of this constant as the parameter to the new-version library functions, that expect a new one. This may result in crash of incorrect behavior of applications.</td> +</tr> +</table> +<br/> +</div> + +<span class="section" onclick="javascript:showContent(this, 'c_2')"> +<span class='ext'>[+]</span> LCBTRACE_TAG_TRANSPORT</span> +<br/> +<div id="c_2" style="display:none;"> +<table class='ptable'> +<tr> +<th class='pn'></th> +<th class='chg'>Change</th> +<th>Effect</th> +</tr> +<tr> +<th>1</th> +<td>The value of constant <b>LCBTRACE_TAG_TRANSPORT</b> has been changed from <b>"db.net.transport"</b> to <b>"net.transport"</b>.</td> +<td>Applications will pass an old value of this constant as the parameter to the new-version library functions, that expect a new one. This may result in crash of incorrect behavior of applications.</td> +</tr> +</table> +<br/> +</div> + +<br/> +<a class='top_ref' href='#Top'>to the top</a><br/> +<a name='Headers'></a><h2>Header Files <span class='gray'> 26 </span></h2><hr/> +<div class='h_list'> +assert.h<br/> +auth.h<br/> +cntl-private.h<br/> +cntl.h<br/> +configuration.h<br/> +couchbase.h<br/> +crypto.h<br/> +iometrics.h<br/> +iops.h<br/> +ixmgmt.h<br/> +kvbuf.h<br/> +libev_io_opts.h<br/> +libevent_io_opts.h<br/> +libuv_compat.h<br/> +libuv_io_opts.h<br/> +logger.h<br/> +metrics.h<br/> +pktfwd.h<br/> +plugin-internal.h<br/> +select_io_opts.h<br/> +sysdefs.h<br/> +tracing.h<br/> +utils.h<br/> +vbucket.h<br/> +visibility.h<br/> +wsaerr.h<br/> +</div> +<br/><a class='top_ref' href='#Top'>to the top</a><br/> +<a name='Libs'></a><h2>Libraries <span class='gray'> 1 </span></h2><hr/> +<div class='lib_list'> +libcouchbase.so.8.0.3<br/> +</div> +<br/><a class='top_ref' href='#Top'>to the top</a><br/> +<br/><br/><br/></div><div id='SourceTab' class='tab'> +<h2>Test Info</h2><hr/> +<table class='summary'> +<tr><th>Library Name</th><td>libcouchbase</td></tr> +<tr><th>Version #1</th><td>3.2.2</td></tr> +<tr><th>Version #2</th><td>3.2.3</td></tr> +<tr><th>Arch</th><td>x86_64</td></tr> +<tr><th>Subject</th><td width='150px'>Source Compatibility</td></tr> +</table> +<h2>Test Results</h2><hr/> +<table class='summary'><tr><th>Total Header Files</th><td><a href='#Headers' style='color:Blue;'>26</a></td></tr> +<tr><th>Total Libraries</th><td><a href='#Libs' style='color:Blue;'>1</a></td></tr> +<tr><th>Total Symbols / Types</th><td>664 / 388</td></tr> +<tr><th>Compatibility</th> +<td class='compatible'>100%</td> +</tr> +</table> +<h2>Problem Summary</h2><hr/> +<table class='summary'><tr><th></th><th style='text-align:center;'>Severity</th><th style='text-align:center;'>Count</th></tr><tr><th>Added Symbols</th><td>-</td><td>0</td></tr> +<tr><th>Removed Symbols</th><td>High</td><td>0</td></tr> +<tr><th rowspan='3'>Problems with<br/>Data Types</th><td>High</td><td>0</td></tr> +<tr><td>Medium</td><td>0</td></tr> +<tr><td>Low</td><td>0</td></tr> +<tr><th rowspan='3'>Problems with<br/>Symbols</th><td>High</td><td>0</td></tr> +<tr><td>Medium</td><td>0</td></tr> +<tr><td>Low</td><td>0</td></tr> +<tr><th>Problems with<br/>Constants</th><td>Low</td><td class='warning'><a href='#Constant_Source_Problems_Low' style='color:Blue;'>5</a></td></tr> +</table> + +<a name='Low_Risk_Source_Problems'></a><a name='Constant_Source_Problems_Low'></a> +<h2>Problems with Constants, Low Severity <span class='warning'> 5 </span></h2><hr/> +<span class='h_name'>configuration.h</span><br/> +<span class="section" onclick="javascript:showContent(this, 'c_3')"> +<span class='ext'>[+]</span> LCB_VERSION</span> +<br/> +<div id="c_3" style="display:none;"> +<table class='ptable'> +<tr> +<th class='pn'></th> +<th class='chg'>Change</th> +<th>Effect</th> +</tr> +<tr> +<th>1</th> +<td>The value of constant <b>LCB_VERSION</b> has been changed from <b>0x030202</b> to <b>0x030203</b>.</td> +<td>Recompilation of a client program may be broken.</td> +</tr> +</table> +<br/> +</div> + +<span class="section" onclick="javascript:showContent(this, 'c_4')"> +<span class='ext'>[+]</span> LCB_VERSION_CHANGESET</span> +<br/> +<div id="c_4" style="display:none;"> +<table class='ptable'> +<tr> +<th class='pn'></th> +<th class='chg'>Change</th> +<th>Effect</th> +</tr> +<tr> +<th>1</th> +<td>The value of constant <b>LCB_VERSION_CHANGESET</b> has been changed from <b>"fadbd4d1617df952457abfa9984d095015f1ca52"</b> to <b>"b3294247961261db72fe6f0d413b8f972a59047d"</b>.</td> +<td>Recompilation of a client program may be broken.</td> +</tr> +</table> +<br/> +</div> + +<span class="section" onclick="javascript:showContent(this, 'c_5')"> +<span class='ext'>[+]</span> LCB_VERSION_STRING</span> +<br/> +<div id="c_5" style="display:none;"> +<table class='ptable'> +<tr> +<th class='pn'></th> +<th class='chg'>Change</th> +<th>Effect</th> +</tr> +<tr> +<th>1</th> +<td>The value of constant <b>LCB_VERSION_STRING</b> has been changed from <b>"3.2.2"</b> to <b>"3.2.3"</b>.</td> +<td>Recompilation of a client program may be broken.</td> +</tr> +</table> +<br/> +</div> + +<br/> +<span class='h_name'>tracing.h</span><br/> +<span class="section" onclick="javascript:showContent(this, 'c_6')"> +<span class='ext'>[+]</span> LCBTRACE_TAG_DB_INSTANCE</span> +<br/> +<div id="c_6" style="display:none;"> +<table class='ptable'> +<tr> +<th class='pn'></th> +<th class='chg'>Change</th> +<th>Effect</th> +</tr> +<tr> +<th>1</th> +<td>The value of constant <b>LCBTRACE_TAG_DB_INSTANCE</b> has been changed from <b>"db.instance"</b> to <b>"db.name"</b>.</td> +<td>Recompilation of a client program may be broken.</td> +</tr> +</table> +<br/> +</div> + +<span class="section" onclick="javascript:showContent(this, 'c_7')"> +<span class='ext'>[+]</span> LCBTRACE_TAG_TRANSPORT</span> +<br/> +<div id="c_7" style="display:none;"> +<table class='ptable'> +<tr> +<th class='pn'></th> +<th class='chg'>Change</th> +<th>Effect</th> +</tr> +<tr> +<th>1</th> +<td>The value of constant <b>LCBTRACE_TAG_TRANSPORT</b> has been changed from <b>"db.net.transport"</b> to <b>"net.transport"</b>.</td> +<td>Recompilation of a client program may be broken.</td> +</tr> +</table> +<br/> +</div> + +<br/> +<a class='top_ref' href='#Top'>to the top</a><br/> +<a name='Headers'></a><h2>Header Files <span class='gray'> 26 </span></h2><hr/> +<div class='h_list'> +assert.h<br/> +auth.h<br/> +cntl-private.h<br/> +cntl.h<br/> +configuration.h<br/> +couchbase.h<br/> +crypto.h<br/> +iometrics.h<br/> +iops.h<br/> +ixmgmt.h<br/> +kvbuf.h<br/> +libev_io_opts.h<br/> +libevent_io_opts.h<br/> +libuv_compat.h<br/> +libuv_io_opts.h<br/> +logger.h<br/> +metrics.h<br/> +pktfwd.h<br/> +plugin-internal.h<br/> +select_io_opts.h<br/> +sysdefs.h<br/> +tracing.h<br/> +utils.h<br/> +vbucket.h<br/> +visibility.h<br/> +wsaerr.h<br/> +</div> +<br/><a class='top_ref' href='#Top'>to the top</a><br/> +<a name='Libs'></a><h2>Libraries <span class='gray'> 1 </span></h2><hr/> +<div class='lib_list'> +libcouchbase.so.8.0.3<br/> +</div> +<br/><a class='top_ref' href='#Top'>to the top</a><br/> +<br/><br/><br/></div><hr/> +<div class='footer' align='right'><i>Generated by <a href='https://github.com/lvc/abi-compliance-checker'>ABI Compliance Checker</a> 2.3  </i> +</div> +<br/> + +</body></html> diff --git a/compat_reports/3.2.3_to_3.2.4/compat_report.html b/compat_reports/3.2.3_to_3.2.4/compat_report.html new file mode 100644 index 0000000..48acb41 --- /dev/null +++ b/compat_reports/3.2.3_to_3.2.4/compat_report.html @@ -0,0 +1,692 @@ +<!-- kind:binary;verdict:compatible;affected:0;added:0;removed:0;type_problems_high:0;type_problems_medium:0;type_problems_low:0;interface_problems_high:0;interface_problems_medium:0;interface_problems_low:0;changed_constants:0;type_changes_other:2;tool_version:2.3 --> +<!-- kind:source;verdict:compatible;affected:0;added:0;removed:0;type_problems_high:0;type_problems_medium:0;type_problems_low:0;interface_problems_high:0;interface_problems_medium:0;interface_problems_low:0;changed_constants:3;type_changes_other:2;tool_version:2.3 --> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<meta name="viewport" content="width=device-width,initial-scale=1" /> +<meta name="keywords" content="libcouchbase, compatibility, API, ABI, report" /> +<meta name="description" content="API/ABI compatibility report for the libcouchbase library between 3.2.3 and 3.2.4 versions" /> +<title>libcouchbase: 3.2.3 to 3.2.4 compatibility report</title> +<style type="text/css"> +body { + font-family:Arial, sans-serif; + background-color:White; + color:Black; +} +hr { + color:Black; + background-color:Black; + height:1px; + border:0; +} +h1 { + margin-bottom:0px; + padding-bottom:0px; + font-size:1.625em; +} +h2 { + margin-bottom:0px; + padding-bottom:0px; + font-size:1.25em; + white-space:nowrap; +} +span.section { + font-weight:bold; + cursor:pointer; + color:#003E69; + white-space:nowrap; + margin-left:0.3125em; +} +span.new_sign { + font-weight:bold; + margin-left:1.65em; + color:#003E69; +} +span.new_sign_lbl { + margin-left:3em; + font-size:1em; + color:Black; +} +span:hover.section { + color:#336699; +} +span.sect_aff { + cursor:pointer; + padding-left:1.55em; + font-size:0.875em; + color:#cc3300; +} +span.sect_info { + cursor:pointer; + padding-left:1.55em; + font-size:0.875em; + color:Black; +} +span.ext { + font-weight:normal; +} +span.h_name { + color:#cc3300; + font-size:0.875em; + font-weight:bold; +} +div.h_list, div.lib_list { + font-size:0.94em; + padding-left:0.4em; +} +span.ns { + color:#408080; + font-size:0.94em; +} +span.lib_name { + color:Green; + font-size:0.875em; + font-weight:bold; +} +span.iname { + font-weight:bold; + color:#003E69; + margin-left:0.3125em; +} +span.iname_b { + font-weight:bold; +} +span.iname_a { + color:#333333; + font-weight:bold; + font-size:0.94em; +} +span.sym_p { + font-weight:normal; + white-space:normal; +} +span.sym_pd { + white-space:normal; +} +span.sym_p span, span.sym_pd span { + white-space:nowrap; +} +div.affect { + padding-left:1em; + padding-bottom:10px; + font-size:0.87em; + font-style:italic; + line-height:0.9em; +} +div.affected { + padding-left:1.9em; + padding-top:10px; +} +table.ptable { + border-collapse:collapse; + border:1px outset black; + margin-left:0.95em; + margin-top:3px; + margin-bottom:3px; + width:56.25em; +} +table.ptable td { + border:1px solid gray; + padding:3px; + font-size:0.875em; + text-align:left; + vertical-align:top; + max-width:28em; + word-wrap:break-word; +} +table.ptable th.pn { + width:2%; +} +table.ptable th.chg { + width:47%; +} +table.vtable { + border-collapse:collapse; + border:1px outset black; + margin-left:1.9em; + margin-top:0.7em; +} +table.vtable td { + border:1px solid gray; + padding:3px; + font-size:0.875em; + vertical-align:top; + max-width:450px; + word-wrap:break-word; +} +table.ptable th, table.vtable th { + background-color:#eeeeee; + font-weight:bold; + color:#333333; + font-family:Verdana, Arial; + font-size:0.875em; + border:1px solid gray; + text-align:center; + vertical-align:top; + white-space:nowrap; + padding:3px; +} +table.summary { + border-collapse:collapse; + border:1px outset black; +} +table.summary th { + background-color:#eeeeee; + font-weight:normal; + text-align:left; + font-size:0.94em; + white-space:nowrap; + border:1px inset gray; + padding:3px; +} +table.summary td { + text-align:right; + white-space:nowrap; + border:1px inset gray; + padding:3px 5px 3px 10px; +} +span.mngl { + padding-left:1em; + font-size:0.875em; + cursor:text; + color:#444444; + font-weight:bold; +} +span.pleft { + padding-left:2.5em; +} +span.sym_ver { + color:#333333; + white-space:nowrap; + font-family:"DejaVu Sans Mono", Monospace; +} +span.attr { + color:#333333; + font-weight:normal; +} +span.color_p { + font-style:italic; + color:Brown; +} +span.p { + font-style:italic; +} +span.fp { + font-style:italic; + background-color:#DCDCDC; +} +span.ttype { + font-weight:normal; +} +span.nowrap { + white-space:nowrap; +} +span.value { + font-weight:bold; +} +.passed { + background-color:#CCFFCC; + font-weight:normal; +} +.warning { + background-color:#F4F4AF; + font-weight:normal; +} +.failed { + background-color:#FFCCCC; + font-weight:normal; +} +.new { + background-color:#C6DEFF; + font-weight:normal; +} +.compatible { + background-color:#CCFFCC; + font-weight:normal; +} +.almost_compatible { + background-color:#FFDAA3; + font-weight:normal; +} +.incompatible { + background-color:#FFCCCC; + font-weight:normal; +} +.gray { + background-color:#DCDCDC; + font-weight:normal; +} +.top_ref { + font-size:0.69em; +} +.footer { + font-size:0.75em; +} + +.tabset { + float:left; +} +a.tab { + border:1px solid Black; + float:left; + margin:0px 5px -1px 0px; + padding:3px 5px 3px 5px; + position:relative; + font-size:0.875em; + background-color:#DDD; + text-decoration:none; + color:Black; +} +a.disabled:hover +{ + color:Black; + background:#EEE; +} +a.active:hover +{ + color:Black; + background:White; +} +a.active { + border-bottom-color:White; + background-color:White; +} +div.tab { + border-top:1px solid Black; + padding:0px; + width:100%; + clear:both; +} +</style> +<script type="text/javascript" language="JavaScript"> +<!-- +function showContent(header, id) +{ + e = document.getElementById(id); + if(e.style.display == 'none') + { + e.style.display = 'block'; + e.style.visibility = 'visible'; + header.innerHTML = header.innerHTML.replace(/\[[^0-9 ]\]/gi,"[−]"); + } + else + { + e.style.display = 'none'; + e.style.visibility = 'hidden'; + header.innerHTML = header.innerHTML.replace(/\[[^0-9 ]\]/gi,"[+]"); + } +} +function initTabs() +{ + var url = window.location.href; + if(url.indexOf('_Source_')!=-1 || url.indexOf('#Source')!=-1) + { + var tab1 = document.getElementById('BinaryID'); + var tab2 = document.getElementById('SourceID'); + tab1.className='tab disabled'; + tab2.className='tab active'; + } + var sets = document.getElementsByTagName('div'); + for (var i = 0; i < sets.length; i++) + { + if (sets[i].className.indexOf('tabset') != -1) + { + var tabs = []; + var links = sets[i].getElementsByTagName('a'); + for (var j = 0; j < links.length; j++) + { + if (links[j].className.indexOf('tab') != -1) + { + tabs.push(links[j]); + links[j].tabs = tabs; + var tab = document.getElementById(links[j].href.substr(links[j].href.indexOf('#') + 1)); + //reset all tabs on start + if (tab) + { + if (links[j].className.indexOf('active')!=-1) { + tab.style.display = 'block'; + } + else { + tab.style.display = 'none'; + } + } + links[j].onclick = function() + { + var tab = document.getElementById(this.href.substr(this.href.indexOf('#') + 1)); + if (tab) + { + //reset all tabs before change + for (var k = 0; k < this.tabs.length; k++) + { + document.getElementById(this.tabs[k].href.substr(this.tabs[k].href.indexOf('#') + 1)).style.display = 'none'; + this.tabs[k].className = this.tabs[k].className.replace('active', 'disabled'); + } + this.className = 'tab active'; + tab.style.display = 'block'; + // window.location.hash = this.id.replace('ID', ''); + return false; + } + } + } + } + } + } + if(url.indexOf('#')!=-1) { + location.href=location.href; + } +} +if (window.addEventListener) window.addEventListener('load', initTabs, false); +else if (window.attachEvent) window.attachEvent('onload', initTabs); +--> +</script> +</head> +<body><a name='Source'></a><a name='Binary'></a><a name='Top'></a><h1>API compatibility report for the <span style='color:Blue;'>libcouchbase</span> library between <span style='color:Red;'>3.2.3</span> and <span style='color:Red;'>3.2.4</span> versions on <span style='color:Blue;'>x86_64</span></h1> + + <br/> + <div class='tabset'> + <a id='BinaryID' href='#BinaryTab' class='tab active'>Binary<br/>Compatibility</a> + <a id='SourceID' href='#SourceTab' style='margin-left:3px' class='tab disabled'>Source<br/>Compatibility</a> + </div><div id='BinaryTab' class='tab'> +<h2>Test Info</h2><hr/> +<table class='summary'> +<tr><th>Library Name</th><td>libcouchbase</td></tr> +<tr><th>Version #1</th><td>3.2.3</td></tr> +<tr><th>Version #2</th><td>3.2.4</td></tr> +<tr><th>Arch</th><td>x86_64</td></tr> +<tr><th>GCC Version</th><td>11</td></tr> +<tr><th>Subject</th><td width='150px'>Binary Compatibility</td></tr> +</table> +<h2>Test Results</h2><hr/> +<table class='summary'><tr><th>Total Header Files</th><td><a href='#Headers' style='color:Blue;'>26</a></td></tr> +<tr><th>Total Libraries</th><td><a href='#Libs' style='color:Blue;'>1</a></td></tr> +<tr><th>Total Symbols / Types</th><td>658 / 382</td></tr> +<tr><th>Compatibility</th> +<td class='compatible'>100%</td> +</tr> +</table> +<h2>Problem Summary</h2><hr/> +<table class='summary'><tr><th></th><th style='text-align:center;'>Severity</th><th style='text-align:center;'>Count</th></tr><tr><th>Added Symbols</th><td>-</td><td>0</td></tr> +<tr><th>Removed Symbols</th><td>High</td><td>0</td></tr> +<tr><th rowspan='3'>Problems with<br/>Data Types</th><td>High</td><td>0</td></tr> +<tr><td>Medium</td><td>0</td></tr> +<tr><td>Low</td><td>0</td></tr> +<tr><th rowspan='3'>Problems with<br/>Symbols</th><td>High</td><td>0</td></tr> +<tr><td>Medium</td><td>0</td></tr> +<tr><td>Low</td><td>0</td></tr> +<tr><th>Problems with<br/>Constants</th><td>Low</td><td>0</td></tr> +<tr><th>Other Changes<br/>in Data Types</th><td>-</td><td class='passed'><a href='#Other_Binary_Changes_In_Types' style='color:Blue;'>2</a></td></tr> +</table> + +<a name='Other_Binary_Changes'></a><a name='Other_Binary_Changes_In_Types'></a> +<h2>Other Changes in Data Types <span class='passed'> 2 </span></h2><hr/> +<span class='h_name'>error.h</span><br/> +<span class="section" onclick="javascript:showContent(this, 'c_1')"> +<span class='ext'>[+]</span> <span class='ttype'>enum</span> lcb_STATUS <span class='passed'> 2 </span></span> +<br/> +<div id="c_1" style="display:none;"> +<table class='ptable'><tr> +<th class='pn'></th> +<th class='chg'>Change</th> +<th>Effect</th></tr><tr> +<th>1</th> +<td>The member <b>LCB_ERR_QUOTA_LIMITED</b> with value <b>221</b> has been added.</td> +<td>No effect.</td> +</tr> +<tr> +<th>2</th> +<td>The member <b>LCB_ERR_RATE_LIMITED</b> with value <b>220</b> has been added.</td> +<td>No effect.</td> +</tr> +</table> +<span class="sect_aff" onclick="javascript:showContent(this, 'c_2')"> +[+] affected symbols: 511 (77.7%)</span> +<div id="c_2" style="display:none;"> +<div class='affected'><span class='iname_a'>lcb_analytics <span class='sym_p'><span>( lcb_INSTANCE* <i>instance</i></span>, <span>void* <i>cookie</i></span>, <span>lcb_CMDANALYTICS const* <i>cmd</i></span> )</span></span><br/> +<div class='affect'>Return value is of type 'enum lcb_STATUS'.</div> +<span class='iname_a'>lcb_analytics_cancel <span class='sym_p'><span>( lcb_INSTANCE* <i>instance</i></span>, <span>lcb_ANALYTICS_HANDLE* <i>handle</i></span> )</span></span><br/> +<div class='affect'>Return value is of type 'enum lcb_STATUS'.</div> +<span class='iname_a'>lcb_cbflush3 <span class='sym_p'><span>( lcb_INSTANCE* <i>instance</i></span>, <span>void* <i>cookie</i></span>, <span>struct lcb_CMDCBFLUSH const* <i>cmd</i></span> )</span></span><br/> +<div class='affect'>Return value is of type 'enum lcb_STATUS'.</div> +<span class='iname_a'>lcb_cmdanalytics_callback <span class='sym_p'><span>( lcb_CMDANALYTICS* <i>cmd</i></span>, <span>lcb_ANALYTICS_CALLBACK <i>callback</i></span> )</span></span><br/> +<div class='affect'>Return value is of type 'enum lcb_STATUS'.</div> +<span class='iname_a'>lcb_cmdanalytics_client_context_id <span class='sym_p'><span>( lcb_CMDANALYTICS* <i>cmd</i></span>, <span>char const* <i>value</i></span>, <span>size_t <i>value_len</i></span> )</span></span><br/> +<div class='affect'>Return value is of type 'enum lcb_STATUS'.</div> +<span class='iname_a'>lcb_cmdanalytics_consistency <span class='sym_p'><span>( lcb_CMDANALYTICS* <i>cmd</i></span>, <span>enum lcb_ANALYTICS_CONSISTENCY <i>level</i></span> )</span></span><br/> +<div class='affect'>Return value is of type 'enum lcb_STATUS'.</div> +<span class='iname_a'>lcb_cmdanalytics_create <span class='sym_p'><span>( lcb_CMDANALYTICS** <i>cmd</i></span> )</span></span><br/> +<div class='affect'>Return value is of type 'enum lcb_STATUS'.</div> +<span class='iname_a'>lcb_cmdanalytics_deferred <span class='sym_p'><span>( lcb_CMDANALYTICS* <i>cmd</i></span>, <span>int <i>deferred</i></span> )</span></span><br/> +<div class='affect'>Return value is of type 'enum lcb_STATUS'.</div> +<span class='iname_a'>lcb_cmdanalytics_destroy <span class='sym_p'><span>( lcb_CMDANALYTICS* <i>cmd</i></span> )</span></span><br/> +<div class='affect'>Return value is of type 'enum lcb_STATUS'.</div> +<span class='iname_a'>lcb_cmdanalytics_encoded_payload <span class='sym_p'><span>( lcb_CMDANALYTICS* <i>cmd</i></span>, <span>char const** <i>query</i></span>, <span>size_t* <i>query_len</i></span> )</span></span><br/> +<div class='affect'>Return value is of type 'enum lcb_STATUS'.</div> + <b>...</b> +<br/> +</div> +</div> +<br/><br/></div> + +<br/> +<a class='top_ref' href='#Top'>to the top</a><br/> +<a name='Headers'></a><h2>Header Files <span class='gray'> 26 </span></h2><hr/> +<div class='h_list'> +assert.h<br/> +auth.h<br/> +cntl-private.h<br/> +cntl.h<br/> +configuration.h<br/> +couchbase.h<br/> +crypto.h<br/> +iometrics.h<br/> +iops.h<br/> +ixmgmt.h<br/> +kvbuf.h<br/> +libev_io_opts.h<br/> +libevent_io_opts.h<br/> +libuv_compat.h<br/> +libuv_io_opts.h<br/> +logger.h<br/> +metrics.h<br/> +pktfwd.h<br/> +plugin-internal.h<br/> +select_io_opts.h<br/> +sysdefs.h<br/> +tracing.h<br/> +utils.h<br/> +vbucket.h<br/> +visibility.h<br/> +wsaerr.h<br/> +</div> +<br/><a class='top_ref' href='#Top'>to the top</a><br/> +<a name='Libs'></a><h2>Libraries <span class='gray'> 1 </span></h2><hr/> +<div class='lib_list'> +libcouchbase.so.8.0.4<br/> +</div> +<br/><a class='top_ref' href='#Top'>to the top</a><br/> +<br/><br/><br/></div><div id='SourceTab' class='tab'> +<h2>Test Info</h2><hr/> +<table class='summary'> +<tr><th>Library Name</th><td>libcouchbase</td></tr> +<tr><th>Version #1</th><td>3.2.3</td></tr> +<tr><th>Version #2</th><td>3.2.4</td></tr> +<tr><th>Arch</th><td>x86_64</td></tr> +<tr><th>Subject</th><td width='150px'>Source Compatibility</td></tr> +</table> +<h2>Test Results</h2><hr/> +<table class='summary'><tr><th>Total Header Files</th><td><a href='#Headers' style='color:Blue;'>26</a></td></tr> +<tr><th>Total Libraries</th><td><a href='#Libs' style='color:Blue;'>1</a></td></tr> +<tr><th>Total Symbols / Types</th><td>664 / 388</td></tr> +<tr><th>Compatibility</th> +<td class='compatible'>100%</td> +</tr> +</table> +<h2>Problem Summary</h2><hr/> +<table class='summary'><tr><th></th><th style='text-align:center;'>Severity</th><th style='text-align:center;'>Count</th></tr><tr><th>Added Symbols</th><td>-</td><td>0</td></tr> +<tr><th>Removed Symbols</th><td>High</td><td>0</td></tr> +<tr><th rowspan='3'>Problems with<br/>Data Types</th><td>High</td><td>0</td></tr> +<tr><td>Medium</td><td>0</td></tr> +<tr><td>Low</td><td>0</td></tr> +<tr><th rowspan='3'>Problems with<br/>Symbols</th><td>High</td><td>0</td></tr> +<tr><td>Medium</td><td>0</td></tr> +<tr><td>Low</td><td>0</td></tr> +<tr><th>Problems with<br/>Constants</th><td>Low</td><td class='warning'><a href='#Constant_Source_Problems_Low' style='color:Blue;'>3</a></td></tr> +<tr><th>Other Changes<br/>in Data Types</th><td>-</td><td class='passed'><a href='#Other_Source_Changes_In_Types' style='color:Blue;'>2</a></td></tr> +</table> + +<a name='Low_Risk_Source_Problems'></a><a name='Constant_Source_Problems_Low'></a> +<h2>Problems with Constants, Low Severity <span class='warning'> 3 </span></h2><hr/> +<span class='h_name'>configuration.h</span><br/> +<span class="section" onclick="javascript:showContent(this, 'c_3')"> +<span class='ext'>[+]</span> LCB_VERSION</span> +<br/> +<div id="c_3" style="display:none;"> +<table class='ptable'> +<tr> +<th class='pn'></th> +<th class='chg'>Change</th> +<th>Effect</th> +</tr> +<tr> +<th>1</th> +<td>The value of constant <b>LCB_VERSION</b> has been changed from <b>0x030203</b> to <b>0x030204</b>.</td> +<td>Recompilation of a client program may be broken.</td> +</tr> +</table> +<br/> +</div> + +<span class="section" onclick="javascript:showContent(this, 'c_4')"> +<span class='ext'>[+]</span> LCB_VERSION_CHANGESET</span> +<br/> +<div id="c_4" style="display:none;"> +<table class='ptable'> +<tr> +<th class='pn'></th> +<th class='chg'>Change</th> +<th>Effect</th> +</tr> +<tr> +<th>1</th> +<td>The value of constant <b>LCB_VERSION_CHANGESET</b> has been changed from <b>"b3294247961261db72fe6f0d413b8f972a59047d"</b> to <b>"38cc0708dfcc5a706c6b21dc80bcd84f05890225"</b>.</td> +<td>Recompilation of a client program may be broken.</td> +</tr> +</table> +<br/> +</div> + +<span class="section" onclick="javascript:showContent(this, 'c_5')"> +<span class='ext'>[+]</span> LCB_VERSION_STRING</span> +<br/> +<div id="c_5" style="display:none;"> +<table class='ptable'> +<tr> +<th class='pn'></th> +<th class='chg'>Change</th> +<th>Effect</th> +</tr> +<tr> +<th>1</th> +<td>The value of constant <b>LCB_VERSION_STRING</b> has been changed from <b>"3.2.3"</b> to <b>"3.2.4"</b>.</td> +<td>Recompilation of a client program may be broken.</td> +</tr> +</table> +<br/> +</div> + +<br/> +<a class='top_ref' href='#Top'>to the top</a><br/> +<a name='Other_Source_Changes'></a><a name='Other_Source_Changes_In_Types'></a> +<h2>Other Changes in Data Types <span class='passed'> 2 </span></h2><hr/> +<span class='h_name'>error.h</span><br/> +<span class="section" onclick="javascript:showContent(this, 'c_6')"> +<span class='ext'>[+]</span> <span class='ttype'>enum</span> lcb_STATUS <span class='passed'> 2 </span></span> +<br/> +<div id="c_6" style="display:none;"> +<table class='ptable'><tr> +<th class='pn'></th> +<th class='chg'>Change</th> +<th>Effect</th></tr><tr> +<th>1</th> +<td>The member <b>LCB_ERR_QUOTA_LIMITED</b> with value <b>221</b> has been added.</td> +<td>No effect.</td> +</tr> +<tr> +<th>2</th> +<td>The member <b>LCB_ERR_RATE_LIMITED</b> with value <b>220</b> has been added.</td> +<td>No effect.</td> +</tr> +</table> +<span class="sect_aff" onclick="javascript:showContent(this, 'c_7')"> +[+] affected symbols: 515 (77.6%)</span> +<div id="c_7" style="display:none;"> +<div class='affected'><span class='iname_a'>lcb_analytics <span class='sym_p'><span>( lcb_INSTANCE* <i>instance</i></span>, <span>void* <i>cookie</i></span>, <span>lcb_CMDANALYTICS const* <i>cmd</i></span> )</span></span><br/> +<div class='affect'>Return value is of type 'enum lcb_STATUS'.</div> +<span class='iname_a'>lcb_analytics_cancel <span class='sym_p'><span>( lcb_INSTANCE* <i>instance</i></span>, <span>lcb_ANALYTICS_HANDLE* <i>handle</i></span> )</span></span><br/> +<div class='affect'>Return value is of type 'enum lcb_STATUS'.</div> +<span class='iname_a'>lcb_cbflush3 <span class='sym_p'><span>( lcb_INSTANCE* <i>instance</i></span>, <span>void* <i>cookie</i></span>, <span>struct lcb_CMDCBFLUSH const* <i>cmd</i></span> )</span></span><br/> +<div class='affect'>Return value is of type 'enum lcb_STATUS'.</div> +<span class='iname_a'>lcb_cmdanalytics_callback <span class='sym_p'><span>( lcb_CMDANALYTICS* <i>cmd</i></span>, <span>lcb_ANALYTICS_CALLBACK <i>callback</i></span> )</span></span><br/> +<div class='affect'>Return value is of type 'enum lcb_STATUS'.</div> +<span class='iname_a'>lcb_cmdanalytics_client_context_id <span class='sym_p'><span>( lcb_CMDANALYTICS* <i>cmd</i></span>, <span>char const* <i>value</i></span>, <span>size_t <i>value_len</i></span> )</span></span><br/> +<div class='affect'>Return value is of type 'enum lcb_STATUS'.</div> +<span class='iname_a'>lcb_cmdanalytics_consistency <span class='sym_p'><span>( lcb_CMDANALYTICS* <i>cmd</i></span>, <span>enum lcb_ANALYTICS_CONSISTENCY <i>level</i></span> )</span></span><br/> +<div class='affect'>Return value is of type 'enum lcb_STATUS'.</div> +<span class='iname_a'>lcb_cmdanalytics_create <span class='sym_p'><span>( lcb_CMDANALYTICS** <i>cmd</i></span> )</span></span><br/> +<div class='affect'>Return value is of type 'enum lcb_STATUS'.</div> +<span class='iname_a'>lcb_cmdanalytics_deferred <span class='sym_p'><span>( lcb_CMDANALYTICS* <i>cmd</i></span>, <span>int <i>deferred</i></span> )</span></span><br/> +<div class='affect'>Return value is of type 'enum lcb_STATUS'.</div> +<span class='iname_a'>lcb_cmdanalytics_destroy <span class='sym_p'><span>( lcb_CMDANALYTICS* <i>cmd</i></span> )</span></span><br/> +<div class='affect'>Return value is of type 'enum lcb_STATUS'.</div> +<span class='iname_a'>lcb_cmdanalytics_encoded_payload <span class='sym_p'><span>( lcb_CMDANALYTICS* <i>cmd</i></span>, <span>char const** <i>query</i></span>, <span>size_t* <i>query_len</i></span> )</span></span><br/> +<div class='affect'>Return value is of type 'enum lcb_STATUS'.</div> + <b>...</b> +<br/> +</div> +</div> +<br/><br/></div> + +<br/> +<a class='top_ref' href='#Top'>to the top</a><br/> +<a name='Headers'></a><h2>Header Files <span class='gray'> 26 </span></h2><hr/> +<div class='h_list'> +assert.h<br/> +auth.h<br/> +cntl-private.h<br/> +cntl.h<br/> +configuration.h<br/> +couchbase.h<br/> +crypto.h<br/> +iometrics.h<br/> +iops.h<br/> +ixmgmt.h<br/> +kvbuf.h<br/> +libev_io_opts.h<br/> +libevent_io_opts.h<br/> +libuv_compat.h<br/> +libuv_io_opts.h<br/> +logger.h<br/> +metrics.h<br/> +pktfwd.h<br/> +plugin-internal.h<br/> +select_io_opts.h<br/> +sysdefs.h<br/> +tracing.h<br/> +utils.h<br/> +vbucket.h<br/> +visibility.h<br/> +wsaerr.h<br/> +</div> +<br/><a class='top_ref' href='#Top'>to the top</a><br/> +<a name='Libs'></a><h2>Libraries <span class='gray'> 1 </span></h2><hr/> +<div class='lib_list'> +libcouchbase.so.8.0.4<br/> +</div> +<br/><a class='top_ref' href='#Top'>to the top</a><br/> +<br/><br/><br/></div><hr/> +<div class='footer' align='right'><i>Generated by <a href='https://github.com/lvc/abi-compliance-checker'>ABI Compliance Checker</a> 2.3  </i> +</div> +<br/> + +</body></html> diff --git a/libcouchbase-0001-enforce-system-crypto-policies.patch b/libcouchbase-0001-enforce-system-crypto-policies.patch index 1cb4bd1..097de76 100644 --- a/libcouchbase-0001-enforce-system-crypto-policies.patch +++ b/libcouchbase-0001-enforce-system-crypto-policies.patch @@ -1,19 +1,19 @@ -From f056a86227675d6f653036de56e79b4b7f37db32 Mon Sep 17 00:00:00 2001 +From ec7bcaa642651cff434a1e4123cc248da37dacd9 Mon Sep 17 00:00:00 2001 From: Sergey Avseyev <sergey.avseyev@gmail.com> -Date: Fri, 1 Nov 2019 17:33:22 +0300 +Date: Wed, 16 Dec 2020 15:22:59 +0300 Subject: [PATCH] Enforce system crypto policies -Change-Id: I89ac30526455ce7e51a584daa354001b3f3dd7a9 +Change-Id: I3a011fa4aaf3ee7a337a6d48ef4913fec78b1d41 --- src/ssl/ssl_common.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/src/ssl/ssl_common.c b/src/ssl/ssl_common.c -index c223114f..95170d33 100644 +index 4d64bb35..8c4e785f 100644 --- a/src/ssl/ssl_common.c +++ b/src/ssl/ssl_common.c -@@ -287,11 +287,7 @@ lcbio_pSSLCTX lcbio_ssl_new(const char *tsfile, const char *cafile, const char * - lcb_error_t err_s; +@@ -304,11 +304,7 @@ lcbio_pSSLCTX lcbio_ssl_new(const char * + lcb_STATUS err_s; lcbio_pSSLCTX ret; - static const char *default_ssl_cipher_list = @@ -23,8 +23,8 @@ index c223114f..95170d33 100644 - "CBC-SHA:EXP-EDH-DSS-DES-CBC-SHA:EXP-DES-CBC-SHA:EXP-RC2-CBC-MD5:EXP-RC2-CBC-MD5:EXP-RC4-MD5:EXP-RC4-MD5"; + static const char *default_ssl_cipher_list = "PROFILE=SYSTEM"; - const char* cipher_list = getenv("LCB_SSL_CIPHER_LIST"); - #if HAVE_CIPERSUITES + const char *cipher_list = getenv("LCB_SSL_CIPHER_LIST"); + #ifdef HAVE_CIPHERSUITES -- -2.21.0 +2.29.2 diff --git a/libcouchbase-0002-do-not-install-plugins-into-libdir.patch b/libcouchbase-0002-do-not-install-plugins-into-libdir.patch deleted file mode 100644 index 74a0528..0000000 --- a/libcouchbase-0002-do-not-install-plugins-into-libdir.patch +++ /dev/null @@ -1,80 +0,0 @@ -From 3d7f066b7d97a8d05fcde0b6cb1b6ac521279d82 Mon Sep 17 00:00:00 2001 -From: Sergey Avseyev <sergey.avseyev@gmail.com> -Date: Wed, 27 Sep 2017 02:04:00 +0300 -Subject: [PATCH] Do not install plugins into libdir - ---- - cmake/config-cmake.h.in | 2 +- - plugins/io/libev/CMakeLists.txt | 2 +- - plugins/io/libevent/CMakeLists.txt | 2 +- - plugins/io/libuv/CMakeLists.txt | 2 +- - src/iofactory.c | 6 ++++++ - 5 files changed, 10 insertions(+), 4 deletions(-) - -diff --git a/cmake/config-cmake.h.in b/cmake/config-cmake.h.in -index 81128091..f97d8bf5 100644 ---- a/cmake/config-cmake.h.in -+++ b/cmake/config-cmake.h.in -@@ -56,7 +56,7 @@ - - #cmakedefine LCB_USE_HDR_HISTOGRAM - --#define LCB_LIBDIR "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}" -+#define LCB_LIBDIR "${CMAKE_INSTALL_LIBDIR}/libcouchbase" - - #include "config_static.h" - #endif -diff --git a/plugins/io/libev/CMakeLists.txt b/plugins/io/libev/CMakeLists.txt -index 6eaa62f6..1ad13736 100644 ---- a/plugins/io/libev/CMakeLists.txt -+++ b/plugins/io/libev/CMakeLists.txt -@@ -26,4 +26,4 @@ ENDIF() - - INSTALL(TARGETS - couchbase_libev -- LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}) -+ LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}/libcouchbase") -diff --git a/plugins/io/libevent/CMakeLists.txt b/plugins/io/libevent/CMakeLists.txt -index 1b96a9e3..95ff434b 100644 ---- a/plugins/io/libevent/CMakeLists.txt -+++ b/plugins/io/libevent/CMakeLists.txt -@@ -22,7 +22,7 @@ IF(LCB_EMBED_PLUGIN_LIBEVENT) - SET(LCB_LINK_SPEC "${LCB_LINKS_SPEC} ${LIBEVENT_LIBRARIES}") - ELSE() - ADD_LIBRARY(couchbase_libevent SHARED plugin-libevent.c) -- INSTALL(TARGETS couchbase_libevent LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}) -+ INSTALL(TARGETS couchbase_libevent LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}/libcouchbase") - TARGET_LINK_LIBRARIES(couchbase_libevent ${LIBEVENT_LIBRARIES}) - ENDIF() - -diff --git a/plugins/io/libuv/CMakeLists.txt b/plugins/io/libuv/CMakeLists.txt -index 2492a835..86f31687 100644 ---- a/plugins/io/libuv/CMakeLists.txt -+++ b/plugins/io/libuv/CMakeLists.txt -@@ -38,5 +38,5 @@ INCLUDE_DIRECTORIES(AFTER ${LIBUV_INCLUDE_DIR}) - ADD_DEFINITIONS(-DLIBCOUCHBASE_INTERNAL=1) - INSTALL(TARGETS - couchbase_libuv -- LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} -+ LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}/libcouchbase" - RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) -diff --git a/src/iofactory.c b/src/iofactory.c -index 74eae50c..ca1a2d1b 100644 ---- a/src/iofactory.c -+++ b/src/iofactory.c -@@ -366,6 +366,12 @@ static lcb_error_t generate_options(plugin_info *pi, - } - ret = get_create_func(ours->v.v1.sofile, ours->v.v1.symbol, &plugin, want_debug); - if (ret != LCB_SUCCESS) { -+ char path[PATH_MAX]; -+ /* try to look up the so-file in the libdir */ -+ snprintf(path, PATH_MAX, "%s/%s", LCB_LIBDIR, ours->v.v1.sofile); -+ ret = get_create_func(path, ours->v.v1.symbol, &plugin, want_debug); -+ } -+ if (ret != LCB_SUCCESS) { - if (type) { - *type = LCB_IO_OPS_SELECT; - } --- -2.13.6 - diff --git a/libcouchbase-0003-fix-pkgconfig-paths.patch b/libcouchbase-0003-fix-pkgconfig-paths.patch deleted file mode 100644 index 29e3985..0000000 --- a/libcouchbase-0003-fix-pkgconfig-paths.patch +++ /dev/null @@ -1,28 +0,0 @@ -From 8355c1d68e8825e4aa006418ccd91eadbac6c02a Mon Sep 17 00:00:00 2001 -From: Sergey Avseyev <sergey.avseyev@gmail.com> -Date: Wed, 27 Sep 2017 12:30:44 +0300 -Subject: [PATCH] Fix pkgconfig paths - -Change-Id: I8459fc3d602266dd7bb9791f05f235da9308c562 ---- - packaging/libcouchbase.pc.in | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - -diff --git a/packaging/libcouchbase.pc.in b/packaging/libcouchbase.pc.in -index 94820a65..c7171fcf 100644 ---- a/packaging/libcouchbase.pc.in -+++ b/packaging/libcouchbase.pc.in -@@ -1,7 +1,7 @@ - prefix=@CMAKE_INSTALL_PREFIX@ --exec_prefix=${prefix}/@CMAKE_INSTALL_BINDIR@ --includedir=${prefix}/include --libdir=${prefix}/@CMAKE_INSTALL_LIBDIR@ -+exec_prefix=@CMAKE_INSTALL_PREFIX@ -+includedir=@CMAKE_INSTALL_PREFIX@/include -+libdir=@CMAKE_INSTALL_LIBDIR@ - - Name: libcouchbase @LCB_VERSION@ - Description: Couchbase client library --- -2.13.5 - diff --git a/libcouchbase.spec b/libcouchbase.spec index e157b44..9269cba 100644 --- a/libcouchbase.spec +++ b/libcouchbase.spec @@ -1,12 +1,21 @@ # remirepo spec file for libcouchbase # -# Copyright (c) 2013-2020 Remi Collet +# Copyright (c) 2013-2021 Remi Collet # License: CC-BY-SA # http://creativecommons.org/licenses/by-sa/4.0/ # # Please, preserve the changelog entries # +%global libname libcouchbase +%global soname 8 + +%if 0%{?fedora} >= 35 || 0%{?rhel} >= 7 +%bcond_with rename +%else +%bcond_without rename +%endif + %if 0%{?fedora} >= 25 || 0%{?rhel} >= 8 %bcond_without tests %else @@ -14,39 +23,41 @@ %bcond_with tests %endif -%global with_dtrace 1 +%bcond_without dtrace +%bcond_without uv -%if 0%{?fedora} >= 22 || 0%{?rhel} >= 7 -%global with_uv 1 +%if %{with rename} +Name: %{libname}%{soname} %else -%global with_uv 0 +Name: %{libname} %endif - -Name: libcouchbase -Version: 2.10.7 +Version: 3.2.4 Release: 1%{?dist} Summary: Couchbase client library Group: System Environment/Libraries License: ASL 2.0 -URL: http://www.couchbase.com/communities/c/getting-started -Source0: http://packages.couchbase.com/clients/c/%{name}-%{version}.tar.gz - -Patch0: %{name}-0001-enforce-system-crypto-policies.patch -Patch1: %{name}-0002-do-not-install-plugins-into-libdir.patch -Patch2: %{name}-0003-fix-pkgconfig-paths.patch +URL: https://docs.couchbase.com/c-sdk/current/project-docs/sdk-release-notes.html +Source0: http://packages.couchbase.com/clients/c/%{libname}-%{version}.tar.gz +Patch0: %{libname}-0001-enforce-system-crypto-policies.patch +%if 0%{?rhel} == 7 +%global dtsenable source /opt/rh/devtoolset-8/enable +BuildRequires: devtoolset-8-toolchain +BuildRequires: cmake3 >= 3.5.1 +%else BuildRequires: gcc BuildRequires: gcc-c++ +BuildRequires: cmake >= 3.5.1 +%endif BuildRequires: libtool BuildRequires: openssl-devel -BuildRequires: cmake >= 2.8.9 BuildRequires: pkgconfig(libevent) >= 2.0.20 BuildRequires: libev-devel >= 3 -%if %{with_uv} +%if %{with uv} BuildRequires: pkgconfig(libuv) >= 1 %endif -%if %{with_dtrace} +%if %{with dtrace} BuildRequires: systemtap-sdt-devel >= 1.8 BuildRequires: systemtap-devel %endif @@ -58,6 +69,10 @@ Suggests: %{name}-tools%{_isa} = %{version}-%{release} %else Requires: %{name}-libevent%{_isa} = %{version}-%{release} %endif +%if %{without rename} +Obsoletes: %{libname}%{soname} < %{version}-%{release} +Obsoletes: %{libname}3 < %{version}-%{release} +%endif # Filter shared private badly named %{?filter_provides_in: %filter_provides_in %{name}/%{name}.*\.so$} @@ -73,12 +88,25 @@ HTTP transport. This Couchbase Client Library for C and C++ provides a complete interface to the functionality of Couchbase Server. +%if %{with rename} +This package is designed for parallel installation with libcouchbase +%endif %package devel Summary: Development files for Couchbase client library Group: Development/Libraries Requires: %{name}%{?_isa} = %{version}-%{release} +%if %{with rename} +Conflicts: %{libname}-devel < %{version} +Provides: %{libname}-devel = %{version}-%{release} +Conflicts: %{libname}7-devel < %{version} +Conflicts: %{libname}6-devel < %{version} +Conflicts: %{libname}3-devel < %{version} +%else +Obsoletes: %{libname}%{soname}-devel < %{version}-%{release} +Obsoletes: %{libname}3-devel < %{version}-%{release} +%endif %description devel The %{name}-devel package contains libraries and header files for @@ -89,28 +117,40 @@ developing applications that use %{name}. Summary: Couchbase client library - libevent IO back-end Group: System Environment/Libraries Requires: %{name}%{?_isa} = %{version}-%{release} +%if %{without rename} +Obsoletes: %{libname}%{soname}-libevent < %{version}-%{release} +Obsoletes: %{libname}3-libevent < %{version}-%{release} +%endif %description libevent -This package provides libevent back-end for libcouchbase. +This package provides libevent back-end for %{name}. %package libev Summary: Couchbase client library - libev IO back-end Group: System Environment/Libraries Requires: %{name}%{?_isa} = %{version}-%{release} +%if %{without rename} +Obsoletes: %{libname}%{soname}-libev < %{version}-%{release} +Obsoletes: %{libname}3-libev < %{version}-%{release} +%endif %description libev -This package provides libev back-end for libcouchbase. +This package provides libev back-end for %{name}. -%if %{with_uv} +%if %{with uv} %package libuv Summary: Couchbase client library - libuv IO back-end Group: System Environment/Libraries Requires: %{name}%{?_isa} = %{version}-%{release} +%if %{without rename} +Obsoletes: %{libname}%{soname}-libuv < %{version}-%{release} +Obsoletes: %{libname}3-libuv < %{version}-%{release} +%endif %description libuv -This package provides libuv back-end for libcouchbase. +This package provides libuv back-end for %{name}. %endif @@ -119,6 +159,16 @@ Summary: Couchbase tools Group: Applications/System Requires: %{name}%{?_isa} = %{version}-%{release} Requires: %{name}-libevent%{?_isa} = %{version}-%{release} +%if %{with rename} +Conflicts: %{libname}-tools < %{version} +Provides: %{libname}-tools = %{version}-%{release} +Conflicts: %{libname}7-tools < %{version} +Conflicts: %{libname}6-tools < %{version} +Conflicts: %{libname}3-tools < %{version} +%else +Obsoletes: %{libname}%{soname}-tools < %{version}-%{release} +Obsoletes: %{libname}3-tools < %{version}-%{release} +%endif %description tools The %{name}-tools package contains some command line tools to manage @@ -126,41 +176,64 @@ a Couchbase Server. %prep -%setup -q +%setup -q -n %{libname}-%{version} %patch0 -p1 -b .crypto -%patch1 -p1 -b .plug -%patch2 -p1 -b .pkgc %build +%{?dtsenable} +gcc --version + +%if 0%{?rhel} == 7 +%cmake3 \ +%else %cmake \ +%endif -DLCB_BUILD_LIBEVENT=ON \ -DLCB_BUILD_LIBEV=ON \ -%if %{with_uv} +%if %{with uv} -DLCB_BUILD_LIBUV=ON \ %else -DLCB_BUILD_LIBUV=OFF \ %endif -%if %{with_dtrace} +%if %{with dtrace} -DLCB_BUILD_DTRACE=ON \ %else -DLCB_BUILD_DTRACE=OFF \ %endif -DLCB_NO_MOCK=1 \ - . + -DLCB_PLUGINS_DIR:STRING=%{name} +%if 0%{?cmake_build:1} +%cmake_build +%else make %{?_smp_mflags} V=1 +%endif %install +%{?dtsenable} + +%if 0%{?cmake_install:1} +%cmake_install +%else make install DESTDIR=%{buildroot} +%endif %check %if %{with tests} -# ARGS needed to pass arguments to ctest +%{?dtsenable} + export CTEST_OUTPUT_ON_FAILURE=1 +%if 0%{?cmake_build:1} +%cmake_build --target alltests +%ctest +%else +# ARGS needed to pass arguments to ctest make %{_smp_mflags} alltests test ARGS=%{_smp_mflags} +%endif + %else : check disabled %endif @@ -176,26 +249,27 @@ make %{_smp_mflags} alltests test ARGS=%{_smp_mflags} %{!?_licensedir:%global license %%doc} %doc README.markdown RELEASE_NOTES.markdown %license LICENSE -%{_libdir}/%{name}.so.2* -%if %{with_dtrace} -%{_datadir}/systemtap/tapset/libcouchbase.so* +%{_libdir}/%{libname}.so.%{soname}* +%if %{with dtrace} +%{_datadir}/systemtap/tapset/%{libname}.so* %endif +%dir %{_libdir}/%{name} %files libevent -%{_libdir}/%{name}/%{name}_libevent.so +%{_libdir}/%{name}/%{libname}_libevent.so %files libev -%{_libdir}/%{name}/%{name}_libev.so +%{_libdir}/%{name}/%{libname}_libev.so -%if %{with_uv} +%if %{with uv} %files libuv -%{_libdir}/%{name}/%{name}_libuv.so +%{_libdir}/%{name}/%{libname}_libuv.so %endif %files devel -%{_includedir}/%{name} -%{_libdir}/%{name}.so -%{_libdir}/pkgconfig/%{name}.pc +%{_includedir}/%{libname} +%{_libdir}/%{libname}.so +%{_libdir}/pkgconfig/%{libname}.pc %files tools %{_bindir}/cbc* @@ -204,6 +278,58 @@ make %{_smp_mflags} alltests test ARGS=%{_smp_mflags} %changelog +* Thu Nov 25 2021 Remi Collet <remi@remirepo.net> - 3.2.4-1 +- update to 3.2.4 + +* Wed Oct 20 2021 Remi Collet <remi@remirepo.net> - 3.2.3-1 +- update to 3.2.3 + +* Thu Sep 23 2021 Remi Collet <remi@remirepo.net> - 3.2.2-1 +- update to 3.2.2 + +* Wed Aug 25 2021 Remi Collet <remi@remirepo.net> - 3.2.1-1 +- update to 3.2.1 + +* Wed Jul 21 2021 Remi Collet <remi@remirepo.net> - 3.2.0-1 +- update to 3.2.0 +- bump soname to 8 + +* Wed Jun 9 2021 Remi Collet <remi@remirepo.net> - 3.1.4-1 +- update to 3.1.4 +- always build as libcouchbase7 + +* Tue May 11 2021 Remi Collet <remi@remirepo.net> - 3.1.3-1 +- update to 3.1.3 + +* Tue Apr 27 2021 Remi Collet <remi@remirepo.net> - 3.1.2-1 +- update to 3.1.2 + +* Tue Apr 13 2021 Remi Collet <remi@remirepo.net> - 3.1.1-1 +- update to 3.1.1 + +* Wed Mar 3 2021 Remi Collet <remi@remirepo.net> - 3.1.0-1 +- update to 3.1.0 +- bump soname to 7 + +* Tue Jan 12 2021 Sergey Avseyev <sergey.avseyev@gmail.com> - 3.0.7-2 +- Use cmake macros for build, install and test steps + +* Wed Dec 16 2020 Remi Collet <remi@remirepo.net> - 3.0.7-1 +- update to 3.0.7 +- drop patch merged upstream + +* Mon Nov 16 2020 Remi Collet <remi@remirepo.net> - 3.0.6-2 +- cleanup and only rename for fedora < 34 + +* Thu Nov 12 2020 Remi Collet <remi@remirepo.net> - 3.0.6-1 +- update to 3.0.6 +- rename to libcouchbase6 to allow parallel installation with libcouchbase v2 +- relocate IO plugins installation using patch from + https://github.com/couchbase/libcouchbase/pull/38 + +* Wed Sep 23 2020 Remi Collet <remi@remirepo.net> - 2.10.7-1 +- update to 2.10.8 + * Wed Jun 17 2020 Remi Collet <remi@remirepo.net> - 2.10.7-1 - update to 2.10.7 diff --git a/libcouchbase.xml b/libcouchbase.xml index b71eea9..801aa23 100644 --- a/libcouchbase.xml +++ b/libcouchbase.xml @@ -9,7 +9,7 @@ <version> <!-- Version of the library --> -2.10.7 +3.2.4 </version> <headers> |