[prev in list] [next in list] [prev in thread] [next in thread] 

List:       opensuse-packaging
Subject:    Re: [opensuse-packaging] rubygem build: macro expansion error
From:       Josef Reidinger <jreidinger () suse ! cz>
Date:       2017-11-16 9:29:18
Message-ID: 20171116102918.2485c2b8 () pepa ! labs ! suse ! cz
[Download RAW message or body]

On Fri, 10 Nov 2017 22:04:25 +0100
Hans-Peter Jansen <hpj@urpla.net> wrote:

> Hi,
> 
> I suffer from macro expansion errors in rubygem builds:
> 
> [   29s] + exec rpmbuild -ba --define '_srcdefattr (-,root,root)' --nosignature \
> --define '_build_create_debug 1' --define 'disturl \
> obs://build.opensuse.org/home:frispete:GitLab/openSUSE_13.2/cd8f1e1e66ffd44acf12bb1d37856772-rubygem-addressable' \
> /home/abuild/rpmbuild/SOURCES/rubygem-addressable.spec [   29s] error: Too many \
> levels of recursion in macro expansion. It is likely caused by recursive macro \
> declaration. [   29s] error: Too many levels of recursion in macro expansion. It is \
> likely caused by recursive macro declaration. [   29s] error: Too many levels of \
> recursion in macro expansion. It is likely caused by recursive macro declaration. [ \
> 29s] error: Too many levels of recursion in macro expansion. It is likely caused by \
> recursive macro declaration. [   29s] error: Too many levels of recursion in macro \
> expansion. It is likely caused by recursive macro declaration. [   29s] error: Too \
> many levels of recursion in macro expansion. It is likely caused by recursive macro \
> declaration. [   29s] error: Too many levels of recursion in macro expansion. It is \
> likely caused by recursive macro declaration. [   29s] error: Too many levels of \
> recursion in macro expansion. It is likely caused by recursive macro declaration. [ \
> 29s] error: Too many levels of recursion in macro expansion. It is likely caused by \
> recursive macro declaration. [   29s] error: Too many levels of recursion in macro \
> expansion. It is likely caused by recursive macro declaration. 
> resulting in build errors later on similar to:
> 
> [   31s] error: Failed build dependencies:
> [   31s] 	rubygem(ruby:2.1.0: is needed by rubygem-addressable-2.5.2-2.1.x86_64
> [   31s] 	rubygem(ruby:2.2.0: is needed by rubygem-addressable-2.5.2-2.1.x86_64
> [   31s] 	rubygem(ruby:2.3.0: is needed by rubygem-addressable-2.5.2-2.1.x86_64
> [   31s] 	rubygem(ruby:2.4.0: is needed by rubygem-addressable-2.5.2-2.1.x86_64
> [   31s] 	rubygem(ruby:2.5.0: is needed by rubygem-addressable-2.5.2-2.1.x86_64
> 
> https://build.opensuse.org/package/live_build_log/home:frispete:GitLab/rubygem-addressable/openSUSE_13.2/x86_64
>  
> The ruby packages in question are built here:
> 
> https://build.opensuse.org/project/monitor/home:frispete:ruby
> 
> I slightly modified the macros of devel:languages:ruby for the later 
> versions running on top of openSUSE_13.2. (yes, lame, I know..)
> 
> Any idea, how to debug such macro expansion errors? Is there a way to
> examine the expanded spec?

You can try to find problematic macro by examining macros used in spec.

just get into osc build root with `osc chroot` and there you can see how macro is \
expanded:

 rpm -E "%gem_install"

/usr/lib/rpm/gem_install.sh              --default-gem %{mod_name}-%{version}.gem \
--gem-name=%{mod_name} --gem-version=%{version} --build-root \
/home/jreidinger/rpmbuild/BUILDROOT/%{name}-%{version}-%{release}.x86_64

so check how it is expanded.
You can also use rpm to do just one step, so you can easier find in which section is \
problematic macro.

Josef

> 
> I can workaround these problems by pre-installing the offending ruby 
> packages, but that's just papering over the underlying problem, that
> I would like to understand.
> 
> Thanks in advance,
> Pete

-- 
To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org
To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic