From Fedora Project Wiki

(fleshing out the documentation)
m (A few minor wiki syntax and wording changes)
Line 3: Line 3:


= What Is Depcheck? =
= What Is Depcheck? =
Depcheck was created to detect packages with broken dependencies. As the test matures, it will eventually be a part of the rel-eng process to keep these broken packages from being pushed to testing or stable repositories.
Depcheck was created to detect packages with broken dependencies. As the test matures, it will eventually be a part of the rel-eng process to prevent broken packages from being pushed to the ''testing'' or ''stable'' package repositories.


= How Does Depcheck Work? =
= How Does Depcheck Work? =
Line 18: Line 18:
</pre>
</pre>


In this case, matahari requires the libsigar shared library and this isn't provided by any currently available package.
In this case, {{package|matahari}} requires the shared library {{filename|libsigar.so}}.  At the time the test ran, the shared library {{filename|libsigar.so}} was not provided by any available package.


= Fixing Failures =
= Fixing Failures =
Fortunately, the fixes for depcheck errors tend to be relatively straight-forward and tend to fall into one of two categories:
Fortunately, the fixes for depcheck errors tend to be relatively straight-forward and tend to fall into one of two categories listed below.
=== Add Missing Dependencies ===
 
<ol>
<li> '''Add missing dependencies'''<br/>
The missing dependencies could come from packages that have not yet been built or updated, in which case waiting for those packages is a good solution. Otherwise, the missing dependencies need to be added to an existing package or a new one.
The missing dependencies could come from packages that have not yet been built or updated, in which case waiting for those packages is a good solution. Otherwise, the missing dependencies need to be added to an existing package or a new one.
 
<li> '''Remove the Missing Dependencies'''<br/>
=== Remove the Missing Dependencies ===
Removing the problem-causing dependency would also fix the problem, assuming that it wasn't actually needed.
Removing the problem-causing dependency would also fix the problem, assuming that it wasn't actually needed.
</ol>


= Getting Help =
= Getting Help =
Line 33: Line 35:
= Additional Information =
= Additional Information =
<references/>
<references/>


[[Category:AutoQA tests]]
[[Category:AutoQA tests]]

Revision as of 12:42, 16 June 2011


This page is a draft only
It is still under construction and content may change. Do not rely on the information on this page.

What Is Depcheck?

Depcheck was created to detect packages with broken dependencies. As the test matures, it will eventually be a part of the rel-eng process to prevent broken packages from being pushed to the testing or stable package repositories.

How Does Depcheck Work?

Describing exactly how depcheck functions is outside the scope of this page but the basic idea is to trick yum into thinking that all available packages are installed and attempt to install the package under test. If there are problems installing that package, depcheck assumes that those errors are dependency problems and fails the error-causing package.

For more detailed information on depcheck, there are several blog posts about its internals ([1] [2] [3] [4]).

Understanding Failures

Looking at an example log, we see the following highlight:

matahari-lib-0.4.1-2.fc14.i686 from pending has depsolving problems
  --> Package: matahari-lib-0.4.1-2.fc14.i686 (pending)
  -->     Requires: libsigar.so »

In this case, matahari requires the shared library libsigar.so. At the time the test ran, the shared library libsigar.so was not provided by any available package.

Fixing Failures

Fortunately, the fixes for depcheck errors tend to be relatively straight-forward and tend to fall into one of two categories listed below.

  1. Add missing dependencies
    The missing dependencies could come from packages that have not yet been built or updated, in which case waiting for those packages is a good solution. Otherwise, the missing dependencies need to be added to an existing package or a new one.
  2. Remove the Missing Dependencies
    Removing the problem-causing dependency would also fix the problem, assuming that it wasn't actually needed.

Getting Help

If you still don't understand why your update failed the test, if you think there's something wrong in our test or its documentation or if you have any other suggestions, please contact us.

Additional Information