[opensuse-packaging] Building rubygems for SLES12 broken due to "Too many levels of recursion in macro expansion"
![](https://seccdn.libravatar.org/avatar/77c4eb3d8ae9cd743ffd1d5872665418.jpg?s=120&d=mm&r=g)
Hi all, during cleanup I noticed that building rubygems for SLES12 in breaks with the following error: [ 23s] + exec rpmbuild -ba --define '_srcdefattr (-,root,root)' --nosignature --define '_build_create_debug 1' /home/abuild/rpmbuild/SOURCES/rubygem-net-ssh-5_0.spec [ 23s] error: Too many levels of recursion in macro expansion. It is likely caused by recursive macro declaration. [ 23s] error: Too many levels of recursion in macro expansion. It is likely caused by recursive macro declaration. [ 23s] error: Too many levels of recursion in macro expansion. It is likely caused by recursive macro declaration. [ 23s] error: Too many levels of recursion in macro expansion. It is likely caused by recursive macro declaration. [ 23s] error: Too many levels of recursion in macro expansion. It is likely caused by recursive macro declaration. This leads to an error later: [ 24s] error: Failed build dependencies: [ 24s] rubygem(ruby:2.2.0: is needed by rubygem-net-ssh-5_0-5.0.2-0.x86_64 [ 24s] rubygem(ruby:2.3.0: is needed by rubygem-net-ssh-5_0-5.0.2-0.x86_64 [ 24s] rubygem(ruby:2.4.0: is needed by rubygem-net-ssh-5_0-5.0.2-0.x86_64 [ 24s] rubygem(ruby:2.5.0: is needed by rubygem-net-ssh-5_0-5.0.2-0.x86_64 [ 24s] rubygem(ruby:2.6.0: is needed by rubygem-net-ssh-5_0-5.0.2-0.x86_64 The macros have been defined in the prjconf long time ago and are still matching what I find in Factory or dlre prjconf. I'll try to setup a new project for testing this. Is there any place I need to look besides prjconf and the macro package? Kind Regards, Johannes -- Johannes Kastl Linux Consultant & Trainer Tel.: +49 (0) 151 2372 5802 Mail: kastl@b1-systems.de B1 Systems GmbH Osterfeldstraße 7 / 85088 Vohburg / http://www.b1-systems.de GF: Ralph Dehner / Unternehmenssitz: Vohburg / AG: Ingolstadt,HRB 3537
![](https://seccdn.libravatar.org/avatar/e6dc8afd12f42302ae7b5ea72e4dd686.jpg?s=120&d=mm&r=g)
Hi Johannes, some of the macros come from obs-build itself, see: https://github.com/openSUSE/obs-build/tree/master/configs Hope that helps, Dan Johannes Kastl <kastl@b1-systems.de> writes:
Hi all,
during cleanup I noticed that building rubygems for SLES12 in breaks with the following error:
[ 23s] + exec rpmbuild -ba --define '_srcdefattr (-,root,root)' --nosignature --define '_build_create_debug 1' /home/abuild/rpmbuild/SOURCES/rubygem-net-ssh-5_0.spec [ 23s] error: Too many levels of recursion in macro expansion. It is likely caused by recursive macro declaration. [ 23s] error: Too many levels of recursion in macro expansion. It is likely caused by recursive macro declaration. [ 23s] error: Too many levels of recursion in macro expansion. It is likely caused by recursive macro declaration. [ 23s] error: Too many levels of recursion in macro expansion. It is likely caused by recursive macro declaration. [ 23s] error: Too many levels of recursion in macro expansion. It is likely caused by recursive macro declaration.
This leads to an error later: [ 24s] error: Failed build dependencies: [ 24s] rubygem(ruby:2.2.0: is needed by rubygem-net-ssh-5_0-5.0.2-0.x86_64 [ 24s] rubygem(ruby:2.3.0: is needed by rubygem-net-ssh-5_0-5.0.2-0.x86_64 [ 24s] rubygem(ruby:2.4.0: is needed by rubygem-net-ssh-5_0-5.0.2-0.x86_64 [ 24s] rubygem(ruby:2.5.0: is needed by rubygem-net-ssh-5_0-5.0.2-0.x86_64 [ 24s] rubygem(ruby:2.6.0: is needed by rubygem-net-ssh-5_0-5.0.2-0.x86_64
The macros have been defined in the prjconf long time ago and are still matching what I find in Factory or dlre prjconf.
I'll try to setup a new project for testing this. Is there any place I need to look besides prjconf and the macro package?
Kind Regards, Johannes
-- Johannes Kastl Linux Consultant & Trainer Tel.: +49 (0) 151 2372 5802 Mail: kastl@b1-systems.de
B1 Systems GmbH Osterfeldstraße 7 / 85088 Vohburg / http://www.b1-systems.de GF: Ralph Dehner / Unternehmenssitz: Vohburg / AG: Ingolstadt,HRB 3537
-- Dan Čermák <dcermak@suse.com> Software Engineer Development tools SUSE Linux GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany Tel: +49-911-74053-0; Fax: +49-911-7417755; https://www.suse.com/ GF: Felix Imendörffer, Mary Higgins, Sri Rasiah HRB 21284 (AG Nürnberg)
![](https://seccdn.libravatar.org/avatar/995333432565ad6e9ab0505464619fcb.jpg?s=120&d=mm&r=g)
Hi Dan, thanks for the link. On 12.04.19 10:09 Dan Čermák wrote:
Johannes Kastl <kastl@b1-systems.de> writes:
during cleanup I noticed that building rubygems for SLES12 in breaks with the following error:
I have created a testcase here: home:ojkastl_buildservice:Playground The prjconf was built from parts used in other projects for a long time, where it worked flawlessly until recently. Trying to build rubygem-addressable within this project leads to the error message given in my OP: [ 53s] error: Too many levels of recursion in macro expansion. It is likely caused by recursive macro declaration. But removing some macro definitions either leads to builds not even starting (OBS showing unresolvable) or only add additional errors. Any hints would be highly appreciated... Kind Regards, Johannes
![](https://seccdn.libravatar.org/avatar/995333432565ad6e9ab0505464619fcb.jpg?s=120&d=mm&r=g)
On 15.04.19 21:16 Johannes Kastl wrote:
I have created a testcase here: home:ojkastl_buildservice:Playground
The prjconf was built from parts used in other projects for a long time, where it worked flawlessly until recently.
I could trace this down to the following line in the prjconf: # WORKING: %rb_build_versions ruby21 ruby22 ruby25 ruby26 # NON WORKING: %rb_build_versions ruby21 ruby22 ruby24 ruby25 ruby26 %rb_build_versions ruby21 ruby22 ruby23 ruby25 ruby26 As soon as I add ruby23 or ruby24 to the rb_build_versions macro, the builds on SLES12 error out with the "recursive macro declaration" error. Kind Regards, Johannes
participants (3)
-
Dan Čermák
-
Johannes Kastl
-
Johannes Kastl