sclorg / spec2scl

MIT License
7 stars 7 forks source link

Add meta-runtime deps automatically #16

Closed torsava closed 7 years ago

torsava commented 10 years ago

Originally reported by: Slavek Kabrda (Bitbucket: bkabrda, GitHub: bkabrda)


I'm starting to think that meta-runtime deps for runtime (already implemented) and buildtime (requested in #13) should be added automatically. It is safe to add them and it's very convenient. I believe that there should be switches to disable these, instead of switches to enable.


irushchyshyn commented 7 years ago

The dependency in now added automatically for runtime and buildtime. Can be disabled with the following switches: -r, --no-meta-runtime-dep -b, --no-meta-buildtime-dep

Closing the issue. Please reopen if necessary.

junaruga commented 6 years ago

@irushchyshyn

Why are below 2 lines inserted as a result of spec2scl command?

%{?scl:Requires: %{scl}-runtime}
%{?scl:BuildRequires: %{scl}-runtime}

I saw scl-utils fixed an issue that we need %{?scl:Requires: %{scl}-runtime}. Maybe if we use scl-utils >= version 20140815, we do not have to set %{?scl:Requires: %{scl}-runtime}. https://github.com/sclorg/scl-utils/commit/029120d https://github.com/sclorg/scl-utils/commit/ca2b0e7

In case of that we are using scl-utils version < 20140815, we need %{?scl:Requires: %{scl}-runtime}. I see the first line exists because of old scl-utils compatibility.

But how about %{?scl:BuildRequires: %{scl}-runtime}? The line is still needed?

irushchyshyn commented 6 years ago

Hi @junaruga ! Thanks for reaching out!

It was requested in exactly this issue that those dependencies are added automatically, and you can disable adding those two lines with:

-r, --no-meta-runtime-dep
-b, --no-meta-buildtime-dep

But I see your point. If starting version 2.0 of scl-utils, one does not need %{?scl:Requires: %{scl}-runtime}, then considering that the latest release of scl-utils is already 2.0.2, I believe we can flip the switches, so that those dependencies are added only if some options are provided (e.g. --meta-runtime-dep, --meta-buildtime-dep).

Do you know if this change is documented anywhere? I believe the official documentation still suggests adding the dependency for some reason: See #5 in procedure Feel free to create a new issue with your suggestion

junaruga commented 6 years ago

then considering that the latest release of scl-utils is already 2.0.2, I believe we can flip the switches, so that those dependencies are added only if some options are provided (e.g. --meta-runtime-dep, --meta-buildtime-dep).

I agree with you. That's good change.

Do you know if this change is documented anywhere? I believe the official documentation still suggests adding the dependency for some reason: See #5 in procedure

There is a document about runtime. https://www.softwarecollections.org/en/docs/guide/ Maybe this document is written by not only RHEL7 but also RHEL6, and older version. According to RHEL7, %{?scl:Requires: %scl_runtime} is not needed. automatically generated. I think that below sections are target, if we can modify something.

2.10.1. Example of the Converted Spec File

+%{?scl:Requires: %scl_runtime}
  1. To check that all essential Software Collection's packages are dependencies of the main metapackage, add the following macro after the BuildRequires or Requires tags in the spec file:
    %{?scl:Requires: %scl_runtime}

2.11. Uninstalling All Software Collection Directories

3.16.2. Missing runtime Subpackage Dependencies On Red Hat Enterprise Linux 7, the scl tool automatically generates the needed Requires on the Software Collection runtime subpackage.