From Fedora Project Wiki
(obsoleted by rpmdeplint)
 
Line 1: Line 1:
= What Is Depcheck? =
Depcheck has been obsoleted by [[Taskotron/Tasks/dist.rpmdeplint]].
Depcheck was created to detect package builds with broken dependencies. As the test matures, it will eventually be a part of the rel-eng process to prevent broken builds from being pushed to the ''testing'' or ''stable'' package repositories.
 
= How Does Depcheck Work? =
Depcheck uses {{pkg|libsolv}} to compute package dependencies of proposed updates and evaluates whether these dependencies are satisfied. Always the whole set of builds submitted to a certain repository (''fedora'', ''updates'' or ''updates-testing'') is considered together -- even though Bodhi update should be completely standalone, depcheck will be able to find and resolve dependencies between individual updates, as long as they are submitted together (request to be pushed to the same repository at the same time).
 
= Known deficiencies =
 
At the moment, depcheck only decides whether each of the ''submitted'' builds is installable. This is equivalent to trying to install that build into a completely empty environment (no RPM packages pre-installed). If some other package build (that is already present in the target repository) gets broken as a result of this, that's not currently detected by depcheck. See [https://phab.qadevel.cloud.fedoraproject.org/T357 ticket 357] and [http://tirfa.com/current-state-of-depcheck-and-paths-forward.html Current State of Depcheck and Paths Forward].
 
= Understanding Failures =
 
== Unsatisfied dependencies ==
Looking at an [https://taskotron.fedoraproject.org/taskmaster//builders/x86_64/builds/1446/steps/runtask/logs/stdio example log], we see the following excerpt:
<pre>
not ok - depcheck for Bodhi update openstack-zaqar-2014.2-0.3.b3.fc21 # FAIL
  ---
  arch: i386
  details:
    output: |-
      Build openstack-zaqar-2014.2-0.3.b3.fc21 failed depcheck
      nothing provides python-oslo-utils needed by openstack-zaqar-2014.2-0.3.b3.fc21.noarch
      nothing provides python-oslo-utils needed by openstack-zaqar-2014.2-0.3.b3.fc21.noarch
  item: openstack-zaqar-2014.2-0.3.b3.fc21
  outcome: FAILED
  summary: openstack-zaqar-2014.2-0.3.b3.fc21 into F21 testing
  type: bodhi_update
  ...
</pre>
 
This is a similar message that you should see when trying to install this package using {{package|dnf}}.
 
In this case, {{package|openstack-zaqar}} requires <code>python-oslo-utils</code>, but at the time the test ran, this 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.
 
<ol>
<li> '''Problems caused by your package'''<br/>
Examine any changes to <code>Provides</code>, <code>Requires</code> or <code>BuildRequires</code> in the {{filename|spec}} file.  Ensure correct spelling of all dependencies and confirm that any changed requirements do resolve for the appropriate release.  If the dependencies of your package have not changed, it's possible that other packages no longer satisfy the dependencies as expected.  Read below for further guidance.
<br/>
The command {{command|repoquery}} is helpful to track dependencies.
 
<li> '''Problems caused by other package(s)'''<br/>
If your package failed because the dependencies of other packages changed (features they were providing changed or were removed), update the requirements of your package or consult with maintainers of the corresponding packages.
</ol>
 
= 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 [[Taskotron#Get_involved|contact us]].
 
= Additional Information =
* [https://bitbucket.org/fedoraqa/task-depcheck Depcheck source code]
 
[[Category:Taskotron]]

Latest revision as of 20:48, 23 February 2018

Depcheck has been obsoleted by Taskotron/Tasks/dist.rpmdeplint.