Re: Execute RPM dependency generators on the .spec file which ships them

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Just FTR, this is how the generators would be used in practice:


~~~

$ git diff
diff --git a/ruby.spec b/ruby.spec
index 1aea20b..51f3065 100644
--- a/ruby.spec
+++ b/ruby.spec
@@ -196,6 +196,11 @@ Source15: test_openssl_fips.rb
 %{load:%{SOURCE4}}
 %{load:%{SOURCE5}}

+%global __local_generator_requires make -C %{_builddir}/%{buildsubdir}/%{_vpath_builddir} -s runruby TESTRUN_SCRIPT="--enable-gems %{SOURCE9}" +%global __local_generator_provides make -C %{_builddir}/%{buildsubdir}/%{_vpath_builddir} -s runruby TESTRUN_SCRIPT="--enable-gems %{SOURCE10}" +%global __local_generator_conflicts make -C %{_builddir}/%{buildsubdir}/%{_vpath_builddir} -s runruby TESTRUN_SCRIPT="--enable-gems %{SOURCE11}"
+%global __local_generator_path ^%{gem_dir}/specifications/.*\.gemspec$
+
 # Fix ruby_version abuse.
 # https://bugs.ruby-lang.org/issues/11002
 Patch0: ruby-2.3.0-ruby_version.patch
@@ -229,6 +234,7 @@ Requires: %{name}-libs%{?_isa} = %{version}-%{release}
 Recommends: ruby(rubygems) >= %{rubygems_version}
 Recommends: rubygem(bigdecimal) >= %{bigdecimal_version}

+BuildRequires: rpm-local-generator-support
 # Build dependencies
 BuildRequires: autoconf
 BuildRequires: gcc

~~~


For your convenience, full ruby.spec file is available here:

https://src.fedoraproject.org/rpms/ruby/blob/rawhide/f/ruby.spec


Please note that this is the default rubygems.attr file we are distributing with Ruby (actually via rubygems-devel package):


~~~

%__rubygems_requires    %{_rpmconfigdir}/rubygems.req
%__rubygems_provides    %{_rpmconfigdir}/rubygems.prov
%__rubygems_conflicts    %{_rpmconfigdir}/rubygems.con
# In non-gem packages, the %%{gem_name} macro is not available and the macro
# stays unexpanded which leads to "invalid regex" error (rhbz#1154067).
%__rubygems_path ^%{?gem_name:%{gem_spec}}%{!?gem_name:this_should_never_match_anything}$

~~~


As you can see, we would not be able to use the generator even if it was somehow available because it need Ruby for its execution. But Ruby is not available for Ruby build, therefore we could not benefit from it without changing the macros.


Vít



Dne 06. 10. 23 v 18:06 Vít Ondruch napsal(a):
I am still playing with idea of executing RPM dependency generators on the .spec file which ships them. I have created RPM RFE ticket quite a while ago here:

https://github.com/rpm-software-management/rpm/issues/782

So for no luck with having this implemented.

However, I think there is reasonable way. It would be enough to have some generic attr file around. I have create small test package exploring this idea and you can find it in my Copr repo:

https://copr.fedorainfracloud.org/coprs/vondruch/rpm-local-generator/

https://copr-dist-git.fedorainfracloud.org/cgit/vondruch/rpm-local-generator/rpm-local-generator-support.git/tree/rpm-local-generator-support.spec

On the same place, you can also find package leveraging this concept:

https://copr-dist-git.fedorainfracloud.org/cgit/vondruch/rpm-local-generator/rpm-local-generator-test.git/tree/rpm-local-generator-test.spec

Would somebody else benefit from this idea/package or can somebody spot some issue with it? Thx for feedback.


Vít


Attachment: OpenPGP_signature.asc
Description: OpenPGP digital signature

_______________________________________________
devel mailing list -- devel@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxxxxxxxx
Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: https://lists.fedoraproject.org/archives/list/devel@xxxxxxxxxxxxxxxxxxxxxxx
Do not reply to spam, report it: https://pagure.io/fedora-infrastructure/new_issue

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Fedora Announce]     [Fedora Users]     [Fedora Kernel]     [Fedora Testing]     [Fedora Formulas]     [Fedora PHP Devel]     [Kernel Development]     [Fedora Legacy]     [Fedora Maintainers]     [Fedora Desktop]     [PAM]     [Red Hat Development]     [Gimp]     [Yosemite News]

  Powered by Linux