Question on macro python_enable_dependency_generator
Hi, I'm not sure how this dependency generator sets dependencies for subpackages. I have a package FOO with a subpackage FOO-Special FOO-Special adds some functionality and requires some additional pacakges, that most users of FOO will not need. So it would be a waste of resources if all the additional packages from FOO- Special would be installed with FOO as well. So do I need to call the macro in each sub-package, or is a single call sufficient? How can I make sure that all dependencies are detected? From a first test I found at least one that is not fulflled.... Cheers Axel
On Tue, Feb 16, 2021 at 3:45 AM Axel Braun <axel.braun@gmx.de> wrote:
Hi,
I'm not sure how this dependency generator sets dependencies for subpackages.
I have a package FOO with a subpackage FOO-Special FOO-Special adds some functionality and requires some additional pacakges, that most users of FOO will not need. So it would be a waste of resources if all the additional packages from FOO- Special would be installed with FOO as well.
So do I need to call the macro in each sub-package, or is a single call sufficient?
How can I make sure that all dependencies are detected? From a first test I found at least one that is not fulflled....
Only a single call is required, since it just configures RPM to load the generator for generating Requires. The dependency generator works by locating the Python metadata (dist-info, egg-info, etc.) and reading the dependencies set in there. Those are converted back into pythonX.Ydist(M) dependencies where X.Y represents the Python version it was built against and M is the dependency name. This does not cover non-Python dependencies (which you'd still need to manually specify). Thus, it will generate dependencies on the package that contains the egg-info/dist-info data. In the case where FOO has the metadata and the metadata only specifies the required dependencies, those will be generated there, and FOO-Special will need to have dependencies manually specified. As for identifying which ones are or are not fulfilled, I guess you'd check in the OBS package detail page to see whether the generated names have matching packages that provide those names. -- 真実はいつも一つ!/ Always, there's only one truth!
Hi Neal, Am Dienstag, 16. Februar 2021, 14:20:33 CET schrieb Neal Gompa:
I'm not sure how this dependency generator sets dependencies for subpackages.
I have a package FOO with a subpackage FOO-Special FOO-Special adds some functionality and requires some additional pacakges, that most users of FOO will not need. So it would be a waste of resources if all the additional packages from FOO- Special would be installed with FOO as well.
So do I need to call the macro in each sub-package, or is a single call sufficient?
How can I make sure that all dependencies are detected? From a first test I found at least one that is not fulflled....
Only a single call is required, since it just configures RPM to load the generator for generating Requires. The dependency generator works by locating the Python metadata (dist-info, egg-info, etc.) and reading the dependencies set in there. Those are converted back into pythonX.Ydist(M) dependencies where X.Y represents the Python version it was built against and M is the dependency name. This does not cover non-Python dependencies (which you'd still need to manually specify).
I guessed so.
Thus, it will generate dependencies on the package that contains the egg-info/dist-info data. In the case where FOO has the metadata and the metadata only specifies the required dependencies, those will be generated there, and FOO-Special will need to have dependencies manually specified.
OK, so it still needs some manual adjustmend. And in doubt, FOO will contain the additionally the dependencies that are only needed for FOO-special, correct?
As for identifying which ones are or are not fulfilled, I guess you'd check in the OBS package detail page to see whether the generated names have matching packages that provide those names.
However, one should intensively test if all dependencies are fulfilled. Thanks for the explanation Axel
Hi Neal, Am Dienstag, 16. Februar 2021, 14:20:33 CET schrieb Neal Gompa:
I'm not sure how this dependency generator sets dependencies for subpackages.
I have a package FOO with a subpackage FOO-Special FOO-Special adds some functionality and requires some additional pacakges, that most users of FOO will not need. So it would be a waste of resources if all the additional packages from FOO- Special would be installed with FOO as well.
So do I need to call the macro in each sub-package, or is a single call sufficient?
How can I make sure that all dependencies are detected? From a first test I found at least one that is not fulflled....
Only a single call is required, since it just configures RPM to load the generator for generating Requires. The dependency generator works by locating the Python metadata (dist-info, egg-info, etc.) and reading the dependencies set in there. Those are converted back into pythonX.Ydist(M) dependencies where X.Y represents the Python version it was built against and M is the dependency name. This does not cover non-Python dependencies (which you'd still need to manually specify).
I guessed so.
Thus, it will generate dependencies on the package that contains the egg-info/dist-info data. In the case where FOO has the metadata and the metadata only specifies the required dependencies, those will be generated there, and FOO-Special will need to have dependencies manually specified.
OK, so it still needs some manual adjustmend. And in doubt, FOO will contain the additionally the dependencies that are only needed for FOO-special, correct?
As for identifying which ones are or are not fulfilled, I guess you'd check in the OBS package detail page to see whether the generated names have matching packages that provide those names.
However, one should intensively test if all dependencies are fulfilled. Thanks for the explanation Axel
participants (3)
-
Axel Braun
-
Axel Braun
-
Neal Gompa