Opened 2 years ago

Last modified 2 years ago

#1730 accepted enhancement

Improve the dependency system

Reported by: Pierre Labastie Owned by: Pierre Labastie
Priority: normal Milestone:
Component: ablfs Version: GIT
Severity: normal Keywords:
Cc:

Description (last modified by Pierre Labastie)

Currently, the dependencies are only installed if either:

  • (i) they are not already installed
  • (ii) their version is higher than the installed version

If a dependency is not in any of those states, its dependencies are not considered.

But it may happen that a dependency (depB) of a dependency (depA) is in state (i) or (ii) (most likely), but not depA. In this case, depB is not considered, although it might happen that it is needed for the requested package.

So the dependency system should be changed to always compute the full dependency chain, and another function should be created to remove packages not in case (i) or (ii) from the list of generated dependencies.

Change History (6)

comment:1 by Pierre Labastie, 2 years ago

Owner: changed from alfs-log@… to Pierre Labastie
Priority: highestnormal
Status: newaccepted

comment:2 by Pierre Labastie, 2 years ago

Component: Docsablfs
Severity: blockernormal

comment:3 by Pierre Labastie, 2 years ago

We need a small .xsl to retrieve the versions from packages.xml, then compute whether the installed one is lower than the available one (if it exists). It may be easier to use sort -V than to do it in xslt language!

comment:4 by Pierre Labastie, 2 years ago

Related commits: 5132b937, 1fc36f56, a690d42f, 5e1d9dd5, a6fbc653, b8e5cad4, and 7ae97740. At this point, it is working, but suboptimal: the dependency graph generation and pruning to a tree is done on the full dependency graph, which may involve hundreds of packages, when at the end, only one needs to be built... Packages which do not need to be rebuilt should be removed when building the dependency graph.

Last edited 2 years ago by Pierre Labastie (previous) (diff)

comment:5 by Pierre Labastie, 2 years ago

Description: modified (diff)

comment:6 by Pierre Labastie, 2 years ago

Description: modified (diff)
Note: See TracTickets for help on using tickets.