Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Discussion] Non-collection build-time dependencies notation #38

Open
khardix opened this issue Mar 23, 2018 · 6 comments
Open

[Discussion] Non-collection build-time dependencies notation #38

khardix opened this issue Mar 23, 2018 · 6 comments

Comments

@khardix
Copy link
Contributor

khardix commented Mar 23, 2018

Some of the collections have build-time dependencies, which are not considered part of the collection and may even be regular, non-SCL packages. However, they still need to be build with the collections, because they are missing from the target platform/distribution.

The concrete example is rh-mongodb36, which requires a scons package in version that is newer than any released in CentOS 7 (which is considered the target platform).

The recipe file currently list only a packages that are part of the collection itself. Some of the build dependencies can be included as well (if they are proper SCL packages), but some can not (the scons above does not produce package name with the SCL prefix, which confuses the rebuild tool).

The purpose of this issue is to discuss what to do with such dependencies. The main questions are:

  1. Do we want to list such dependencies in the recipe? If so, in what place/format?
  2. Do we want the rpm-list-builder to support such dependencies?
@junaruga
Copy link
Member

@khardix Thanks for the proposal.

The concrete example is rh-mongodb36, which requires a scons package in version that is newer than any released in CentOS 7 (which is considered the target platform).

Can I see the actual RPM spec file that requires scons package?
Can you upload it to somewhere I can see?

  1. Do we want to list such dependencies in the recipe? If so, in what place/format?

If the new feature solves some problems, basically I am positive to add new feature as optional element in the YAML. At the moment, I have no idea for the place. I want to see the above actual RPM spec file at first.

  1. Do we want the rpm-list-builder to support such dependencies?

I can not judge it at the moment. But I think that It is possible.

@omron93
Copy link
Contributor

omron93 commented Mar 26, 2018

Can I see the actual RPM spec file that requires scons package?
Can you upload it to somewhere I can see?

Same for rh-mongodb34-mongodb:
https://paste.fedoraproject.org/paste/y7EgX89HKem2Mg2TH~94~A

@junaruga
Copy link
Member

@omron93 thanks for info. That helps me.

The concrete example is rh-mongodb36, which requires a scons package in version that is newer
than any released in CentOS 7 (which is considered the target platform).

Right now I can see below line in the RPM spec file.

mongodb.spec

BuildRequires:  scons

My suggestion is
if you want to emphasize specific new version (>= X.Y.Z) is necessary to build, how about add below line in the recipe file?

mongodb.yml

rh-mongodb34:
  name: MongoDB 3.4
    ...
    - mongodb:
        cmd: sed -i 's/^BuildRequires:  scons/BuildRequires:  scons >= X.Y.Z/g' mongodb.spec
    ...

@junaruga
Copy link
Member

By the way, I am in vacation from 28th March to 6th April. :)
My response can be delay.

@omron93
Copy link
Contributor

omron93 commented Mar 27, 2018

if you want to emphasize specific new version (>= X.Y.Z) is necessary to build, how about add below line in the recipe file?

Agree. Could be done. Also for future releases it would be better to set this directly in spec.

Will it work after this change? Is rebuild tool going to build scons package without having SCL prefix?

@khardix
Copy link
Contributor Author

khardix commented Mar 27, 2018

Will it work after this change? Is rebuild tool going to build scons package without having SCL prefix?

It will not. The rebuild tool simply takes the list of packages specified and builds them in order. Any external dependencies must be satisfied manually.

if you want to emphasize specific new version (>= X.Y.Z) is necessary to build, how about add below line in the recipe file?

That is definitely correct and it should be done.

The original questions may perhaps be better rephrased as follows:

Suppose we knew (from spec, from author of the collection, etc.) that we need to adjust the buildroot (new versions, …) with packages that are NOT officially part of the collection itself. Do we want to record such information in the recipe, and if so, how?

Thanks for the insights, keep them coming 👍.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants