<div dir="ltr"><div style="font-family:arial,sans-serif;font-size:13px">Hi everybody,</div><div style="font-family:arial,sans-serif;font-size:13px"><br></div><div style="font-family:arial,sans-serif;font-size:13px">I proposed some time ago to implement new checkpkg checks in order to detect binaries not honouring the new direct binding constraint or having unused libraries dependencies:  <a href="http://lists.opencsw.org/pipermail/maintainers/2012-August/017126.html" target="_blank">http://lists.opencsw.org/pipermail/maintainers/2012-August/017126.html</a> and <a href="http://lists.opencsw.org/pipermail/maintainers/2012-August/017158.html" target="_blank">http://lists.opencsw.org/pipermail/maintainers/2012-August/017158.html</a></div>

<div style="font-family:arial,sans-serif;font-size:13px"><br></div><div style="font-family:arial,sans-serif;font-size:13px">Well, as always, it took longer than expected but with the help and advices of Maciej, I will eventually be able to commit the new tests on the main branch the day after tomorrow.</div>

<div style="font-family:arial,sans-serif;font-size:13px"><br></div><div style="font-family:arial,sans-serif;font-size:13px">These new checks will probably not change anything or trigger new warnings for your package, except if your build system doesn't correctly take into account the LD_OPTIONS default variable defined by GAR.</div>

<div style="font-family:arial,sans-serif;font-size:13px">In that case, you will probably have one the two new checkpkg errors documented here:</div><div style="font-family:arial,sans-serif;font-size:13px"><a href="http://wiki.opencsw.org/checkpkg-error-tags#no-direct-binding" target="_blank">http://wiki.opencsw.org/checkpkg-error-tags#no-direct-binding</a><br>

</div><div style="font-family:arial,sans-serif;font-size:13px"><a href="http://wiki.opencsw.org/checkpkg-error-tags#soname-unused" target="_blank">http://wiki.opencsw.org/checkpkg-error-tags#soname-unused</a><br></div><div style="font-family:arial,sans-serif;font-size:13px">

<br></div><div style="font-family:arial,sans-serif;font-size:13px">An important note: ldd is used to gather some information about binaries. As ldd only work on binaries of the same architecture, this means that the package content analysis step can now only be done on a server with the same architecture as the package checked.<br>

</div><div style="font-family:arial,sans-serif;font-size:13px">The real check step however can still be performed from anywhere.</div><div style="font-family:arial,sans-serif;font-size:13px"><br></div><div style="font-family:arial,sans-serif;font-size:13px">

<br></div><div style="font-family:arial,sans-serif;font-size:13px">These new checks required to add new information about symbols and linkage in the checkpkg database. This information can now easily be used to create others checks related to linkage, symbol and interfaces.</div>

<div style="font-family:arial,sans-serif;font-size:13px">For exemple I also added a new test to detect if a binary is using a forbidden version interface: <a href="http://wiki.opencsw.org/checkpkg-error-tags#forbidden-version-interface-dependencies" target="_blank">http://wiki.opencsw.org/checkpkg-error-tags#forbidden-version-interface-dependencies</a></div>

<div style="font-family:arial,sans-serif;font-size:13px"><br></div><div style="font-family:arial,sans-serif;font-size:13px">Unfortunately this also requires to re-import all the existing packages to in the database to gather the symbols and linkage information from previous packages.</div>

<div style="font-family:arial,sans-serif;font-size:13px">I will begin this operation starting from now, it takes around 18h and can be done live without preventing maintainers to upload new packages.</div><div style="font-family:arial,sans-serif;font-size:13px">

However, at the end, I will update the db schema version and commit the new code. After this, you will have to svn update your gar build system or it will complains about db schema version difference.</div><div style="font-family:arial,sans-serif;font-size:13px">

The procedure followed is described on the wiki: <a href="http://wiki.opencsw.org/checkpkg#toc8" target="_blank">http://wiki.opencsw.org/checkpkg#toc</a></div><div style="font-family:arial,sans-serif;font-size:13px"><br>
</div>
<div style="font-family:arial,sans-serif;font-size:13px">I'll keep you updated as soon as it is finished.</div><div style="font-family:arial,sans-serif;font-size:13px"><br></div><div style="font-family:arial,sans-serif;font-size:13px">

If you have any question, don't hesitate.</div><div style="font-family:arial,sans-serif;font-size:13px"><br></div><div style="font-family:arial,sans-serif;font-size:13px"><br></div><div style="font-family:arial,sans-serif;font-size:13px">

BTW, happy New Year to everybody !</div><div style="font-family:arial,sans-serif;font-size:13px"><br></div><div style="font-family:arial,sans-serif;font-size:13px"><br></div><div style="font-family:arial,sans-serif;font-size:13px">

Yann</div></div>