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

cairo/all: Fix binutils 2.34 libbfd compatibility. #6712

Closed
wants to merge 1 commit into from

Conversation

sh0
Copy link
Contributor

@sh0 sh0 commented Aug 6, 2021

Specify library name and version: cairo/1.17.4

The libbfd is included in binutils package. In binutils 2.34 some header macros like bfd_get_section_flags were removed/modified. This breaks cairo <=1.17.4 compilation with binutils >=2.34.

This issue is fixed in cairo master branch, but it is not clear when we can expect a release so we resort to this ugly patch. It should work with older binutils as well.

Gentoo bug for similar issue: https://bugs.gentoo.org/707846

Tested locally with binutils 2.34. Will rely on CI to test for older versions.


  • I've read the guidelines for contributing.
  • I've followed the PEP8 style guides for Python code in the recipes.
  • I've used the latest Conan client version.
  • I've tried at least one configuration locally with the
    conan-center hook activated.

@conan-center-bot

This comment has been minimized.

@@ -0,0 +1,30 @@
--- lookup-symbol.c.original 2021-08-05 22:21:15.819998378 +0300
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please add as a patch inline comment a URL to the upstream commit fixing this, so we know for further releases when/if we can drop it easily

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have added more information to the patch now.

@sh0
Copy link
Contributor Author

sh0 commented Aug 6, 2021

CI build bot failures seem unrelated to this PR. Particularly 1.16.0 and 1.17.2 were not patched at all yet throw errors.

The libbfd is included in binutils package. In binutils 2.34 some header
macros like 'bfd_get_section_flags' were removed/modified. This breaks
cairo <=1.17.4 compilation with binutils >=2.34.

This issue is fixed in cairo master branch, but it is not clear when we
can expect a release so we resort to this ugly patch. It should work with
older binutils as well.

Gentoo bug for similar issue: https://bugs.gentoo.org/707846
@conan-center-bot
Copy link
Collaborator

Failure in build 2 (f259dbc43d6e57674fed9ffd8e99fa9af3eb5e3b):

  • cairo/1.16.0@:
    CI failed to create some packages (All logs)

    Logs for packageID 694e5508bd0ca7f32f3f2db6e088673a2d232e59:
    [settings]
    arch=x86_64
    arch_build=x86_64
    build_type=Release
    compiler=gcc
    compiler.libcxx=libstdc++
    compiler.version=4.9
    os=Linux
    os_build=Linux
    [options]
    cairo:shared=False
    
    [...]
    cairo/1.16.0: Generator pkg_config created pcre.pc
    cairo/1.16.0: Generator pkg_config created libelf.pc
    cairo/1.16.0: Generator pkg_config created mount.pc
    cairo/1.16.0: Generator pkg_config created libsepol.pc
    cairo/1.16.0: Generator pkg_config created libselinux.pc
    cairo/1.16.0: Generator pkg_config created autoconf.pc
    cairo/1.16.0: Generator pkg_config created libpng.pc
    cairo/1.16.0: Generator pkg_config created libbrotlicommon.pc
    cairo/1.16.0: Generator pkg_config created libbrotlienc.pc
    cairo/1.16.0: Generator pkg_config created libbrotlidec.pc
    cairo/1.16.0: Generator pkg_config created brotli.pc
    cairo/1.16.0: Generator pkg_config created libpcre2-32.pc
    cairo/1.16.0: Generator pkg_config created libpcre2-16.pc
    cairo/1.16.0: Generator pkg_config created libpcre2-8.pc
    cairo/1.16.0: Generator pkg_config created libpcre2-posix.pc
    cairo/1.16.0: Generator pkg_config created libpcre2.pc
    cairo/1.16.0: Generator pkg_config created m4.pc
    cairo/1.16.0: Generator pkg_config created zlib.pc
    cairo/1.16.0: Generator pkg_config created bzip2.pc
    [HOOK - conan-center.py] pre_build(): [FPIC MANAGEMENT (KB-H007)] OK. 'fPIC' option found and apparently well managed
    [HOOK - conan-center.py] pre_build(): [FPIC MANAGEMENT (KB-H007)] OK
    cairo/1.16.0: Calling build()
    
    ----Running------
    > ./autogen.sh
    -----------------
    *** No GTK-Doc found, documentation won't be generated ***
    cairo/1.16.0: 
    autoreconf: export WARNINGS=
    autoreconf: Entering directory '.'
    autoreconf: configure.ac: not using Gettext
    autoreconf: running: /home/conan/w/BuildSingleReference/.conan/data/automake/1.16.3/_/_/package/258f6f05ca54813b3d7180161753df7f9ccf7e1d/bin/aclocal -I build ${ACLOCAL_FLAGS}
    autoreconf: configure.ac: tracing
    autoreconf: running: /home/conan/w/BuildSingleReference/.conan/data/libtool/2.4.6/_/_/package/2eb8236af2116b81ab75a438a26411e4e0e9ed6f/bin/libtoolize --copy
    autoreconf: configure.ac: not using Intltool
    autoreconf: running: gtkdocize --copy
    Can't exec "gtkdocize": No such file or directory at /home/conan/w/BuildSingleReference/.conan/data/autoconf/2.71/_/_/package/cb054d0b3e1ca595dc66bc2339d40f1f8f04ab31/bin/share/autoconf/Autom4te/FileUtils.pm line 293.
    autoreconf: error: gtkdocize failed with exit status: 2
    m4/1.4.18: WARN: Lib folder doesn't exist, can't collect libraries: /home/conan/w/BuildSingleReference/.conan/data/m4/1.4.18/_/_/package/24647d9fe8ec489125dfbae4b3ebefaf7581674c/lib
    xorg/system: WARN: Lib folder doesn't exist, can't collect libraries: /home/conan/w/BuildSingleReference/.conan/data/xorg/system/_/_/package/5ab84d6acfe1f23c4fae0ab88f26e3a396351ac9/lib
    autoconf/2.71: WARN: Lib folder doesn't exist, can't collect libraries: /home/conan/w/BuildSingleReference/.conan/data/autoconf/2.71/_/_/package/cb054d0b3e1ca595dc66bc2339d40f1f8f04ab31/lib
    automake/1.16.3: WARN: Lib folder doesn't exist, can't collect libraries: /home/conan/w/BuildSingleReference/.conan/data/automake/1.16.3/_/_/package/258f6f05ca54813b3d7180161753df7f9ccf7e1d/lib
    cairo/1.16.0: WARN: Build folder is dirty, removing it: /home/conan/w/BuildSingleReference/.conan/data/cairo/1.16.0/_/_/build/694e5508bd0ca7f32f3f2db6e088673a2d232e59
    cairo/1.16.0: ERROR: Package '694e5508bd0ca7f32f3f2db6e088673a2d232e59' build failed
    cairo/1.16.0: WARN: Build folder /home/conan/w/BuildSingleReference/.conan/data/cairo/1.16.0/_/_/build/694e5508bd0ca7f32f3f2db6e088673a2d232e59
    ERROR: cairo/1.16.0: Error in build() method, line 97
    	self._build_configure()
    while calling '_build_configure', line 164
    	self.run("./autogen.sh", win_bash=tools.os_info.is_windows, run_environment=True)
    	ConanException: Error 2 while executing ./autogen.sh
    
  • cairo/1.17.2@:
    CI failed to create some packages (All logs)

    Logs for packageID b1445fa75a8a264e6920887e5458b8e51ec68f43:
    [settings]
    arch=x86_64
    arch_build=x86_64
    build_type=Release
    compiler=apple-clang
    compiler.libcxx=libc++
    compiler.version=11.0
    os=Macos
    os_build=Macos
    [options]
    cairo:shared=False
    
    [...]
    cairo/1.17.2: Generator pkg_config created expat.pc
    cairo/1.17.2: Generator pkg_config created libffi.pc
    cairo/1.17.2: Generator pkg_config created libpcre32.pc
    cairo/1.17.2: Generator pkg_config created libpcre16.pc
    cairo/1.17.2: Generator pkg_config created libpcre.pc
    cairo/1.17.2: Generator pkg_config created libpcreposix.pc
    cairo/1.17.2: Generator pkg_config created pcre.pc
    cairo/1.17.2: Generator pkg_config created libelf.pc
    cairo/1.17.2: Generator pkg_config created libgettext.pc
    cairo/1.17.2: Generator pkg_config created autoconf.pc
    cairo/1.17.2: Generator pkg_config created libpng.pc
    cairo/1.17.2: Generator pkg_config created bzip2.pc
    cairo/1.17.2: Generator pkg_config created libbrotlicommon.pc
    cairo/1.17.2: Generator pkg_config created libbrotlienc.pc
    cairo/1.17.2: Generator pkg_config created libbrotlidec.pc
    cairo/1.17.2: Generator pkg_config created brotli.pc
    cairo/1.17.2: Generator pkg_config created libiconv.pc
    cairo/1.17.2: Generator pkg_config created m4.pc
    cairo/1.17.2: Generator pkg_config created zlib.pc
    [HOOK - conan-center.py] pre_build(): [FPIC MANAGEMENT (KB-H007)] OK. 'fPIC' option found and apparently well managed
    [HOOK - conan-center.py] pre_build(): [FPIC MANAGEMENT (KB-H007)] OK
    cairo/1.17.2: Calling build()
    
    ----Running------
    > DYLD_LIBRARY_PATH="/Users/jenkins/w/BuildSingleReference/.conan/data/libtool/2.4.6/_/_/package/150f8c59c5beb38d3bb23c3061298c1594abbc17/lib:/Users/jenkins/w/BuildSingleReference/.conan/data/pkgconf/1.7.4/_/_/package/f74366f76f700cc6e991285892ad7a23c30e6d47/lib:/Users/jenkins/w/BuildSingleReference/.conan/data/fontconfig/2.13.93/_/_/package/872cd54f1f3f8d13be873781d6291535b08d0718/lib:/Users/jenkins/w/BuildSingleReference/.conan/data/glib/2.68.1/_/_/package/956f77339a78ee1aad08b24e70e6d02a1dcc2e14/lib:/Users/jenkins/w/BuildSingleReference/.conan/data/pixman/0.40.0/_/_/package/f74366f76f700cc6e991285892ad7a23c30e6d47/lib:/Users/jenkins/w/BuildSingleReference/.conan/data/freetype/2.10.4/_/_/package/f4c0145073ecfc496791f7fb27b34ce4842839a4/lib:/Users/jenkins/w/BuildSingleReference/.conan/data/expat/2.4.1/_/_/package/c2af20934eb6114018bf39eb2aa084128d52e0d7/lib:/Users/jenkins/w/BuildSingleReference/.conan/data/libffi/3.3/_/_/package/f74366f76f700cc6e991285892ad7a23c30e6d47/lib:/Users/jenkins/w/BuildSingleReference/.conan/data/pcre/8.44/_/_/package/7f20fc916721952b7932b61b69133626a204d286/lib:/Users/jenkins/w/BuildSingleReference/.conan/data/libelf/0.8.13/_/_/package/f74366f76f700cc6e991285892ad7a23c30e6d47/lib:/Users/jenkins/w/BuildSingleReference/.conan/data/libgettext/0.20.1/_/_/package/e07c0ae66c83fe10de3d7fa371e0d1f85824b2ee/lib:/Users/jenkins/w/BuildSingleReference/.conan/data/libpng/1.6.37/_/_/package/8fbcc84fd73710baeb1053770e9887336c02dc9b/lib:/Users/jenkins/w/BuildSingleReference/.conan/data/bzip2/1.0.8/_/_/package/32bef4803d4b079e983ecb27f105881e778bc5a7/lib:/Users/jenkins/w/BuildSingleReference/.conan/data/brotli/1.0.9/_/_/package/f74366f76f700cc6e991285892ad7a23c30e6d47/lib:/Users/jenkins/w/BuildSingleReference/.conan/data/libiconv/1.16/_/_/package/f74366f76f700cc6e991285892ad7a23c30e6d47/lib:/Users/jenkins/w/BuildSingleReference/.conan/data/zlib/1.2.11/_/_/package/f74366f76f700cc6e991285892ad7a23c30e6d47/lib" DYLD_FRAMEWORK_PATH="" ./autogen.sh
    -----------------
    *** No GTK-Doc found, documentation won't be generated ***
    cairo/1.17.2: 
    autoreconf: export WARNINGS=
    autoreconf: Entering directory '.'
    autoreconf: configure.ac: not using Gettext
    autoreconf: running: /Users/jenkins/w/BuildSingleReference/.conan/data/automake/1.16.3/_/_/package/3c28ba69276b46fd46e9c2060ba991d725ccab43/bin/aclocal -I build ${ACLOCAL_FLAGS}
    autoreconf: configure.ac: tracing
    autoreconf: running: /Users/jenkins/w/BuildSingleReference/.conan/data/libtool/2.4.6/_/_/package/150f8c59c5beb38d3bb23c3061298c1594abbc17/bin/libtoolize --copy
    autoreconf: configure.ac: not using Intltool
    autoreconf: running: gtkdocize --copy
    Can't exec "gtkdocize": No such file or directory at /Users/jenkins/w/BuildSingleReference/.conan/data/autoconf/2.71/_/_/package/cc471ed355602ffa7007968c83aa4e7e648a38b5/bin/share/autoconf/Autom4te/FileUtils.pm line 293.
    autoreconf: error: gtkdocize failed with exit status: 2
    libgettext/0.20.1: WARN: Recipe 'libgettext/0.20.1' is deprecated in favor of 'gettext'. Please, consider changing your requirements.
    m4/1.4.18: WARN: Lib folder doesn't exist, can't collect libraries: /Users/jenkins/w/BuildSingleReference/.conan/data/m4/1.4.18/_/_/package/801752c0480319b8e090188c566245a78e9abcf4/lib
    autoconf/2.71: WARN: Lib folder doesn't exist, can't collect libraries: /Users/jenkins/w/BuildSingleReference/.conan/data/autoconf/2.71/_/_/package/cc471ed355602ffa7007968c83aa4e7e648a38b5/lib
    automake/1.16.3: WARN: Lib folder doesn't exist, can't collect libraries: /Users/jenkins/w/BuildSingleReference/.conan/data/automake/1.16.3/_/_/package/3c28ba69276b46fd46e9c2060ba991d725ccab43/lib
    cairo/1.17.2: WARN: Build folder is dirty, removing it: /Users/jenkins/w/BuildSingleReference/.conan/data/cairo/1.17.2/_/_/build/b1445fa75a8a264e6920887e5458b8e51ec68f43
    cairo/1.17.2: ERROR: Package 'b1445fa75a8a264e6920887e5458b8e51ec68f43' build failed
    cairo/1.17.2: WARN: Build folder /Users/jenkins/w/BuildSingleReference/.conan/data/cairo/1.17.2/_/_/build/b1445fa75a8a264e6920887e5458b8e51ec68f43
    ERROR: cairo/1.17.2: Error in build() method, line 97
    	self._build_configure()
    while calling '_build_configure', line 164
    	self.run("./autogen.sh", win_bash=tools.os_info.is_windows, run_environment=True)
    	ConanException: Error 2 while executing DYLD_LIBRARY_PATH="/Users/jenkins/w/BuildSingleReference/.conan/data/libtool/2.4.6/_/_/package/150f8c59c5beb38d3bb23c3061298c1594abbc17/lib:/Users/jenkins/w/BuildSingleReference/.conan/data/pkgconf/1.7.4/_/_/package/f74366f76f700cc6e991285892ad7a23c30e6d47/lib:/Users/jenkins/w/BuildSingleReference/.conan/data/fontconfig/2.13.93/_/_/package/872cd54f1f3f8d13be873781d6291535b08d0718/lib:/Users/jenkins/w/BuildSingleReference/.conan/data/glib/2.68.1/_/_/package/956f77339a78ee1aad08b24e70e6d02a1dcc2e14/lib:/Users/jenkins/w/BuildSingleReference/.conan/data/pixman/0.40.0/_/_/package/f74366f76f700cc6e991285892ad7a23c30e6d47/lib:/Users/jenkins/w/BuildSingleReference/.conan/data/freetype/2.10.4/_/_/package/f4c0145073ecfc496791f7fb27b34ce4842839a4/lib:/Users/jenkins/w/BuildSingleReference/.conan/data/expat/2.4.1/_/_/package/c2af20934eb6114018bf39eb2aa084128d52e0d7/lib:/Users/jenkins/w/BuildSingleReference/.conan/data/libffi/3.3/_/_/package/f74366f76f700cc6e991285892ad7a23c30e6d47/lib:/Users/jenkins/w/BuildSingleReference/.conan/data/pcre/8.44/_/_/package/7f20fc916721952b7932b61b69133626a204d286/lib:/Users/jenkins/w/BuildSingleReference/.conan/data/libelf/0.8.13/_/_/package/f74366f76f700cc6e991285892ad7a23c30e6d47/lib:/Users/jenkins/w/BuildSingleReference/.conan/data/libgettext/0.20.1/_/_/package/e07c0ae66c83fe10de3d7fa371e0d1f85824b2ee/lib:/Users/jenkins/w/BuildSingleReference/.conan/data/libpng/1.6.37/_/_/package/8fbcc84fd73710baeb1053770e9887336c02dc9b/lib:/Users/jenkins/w/BuildSingleReference/.conan/data/bzip2/1.0.8/_/_/package/32bef4803d4b079e983ecb27f105881e778bc5a7/lib:/Users/jenkins/w/BuildSingleReference/.conan/data/brotli/1.0.9/_/_/package/f74366f76f700cc6e991285892ad7a23c30e6d47/lib:/Users/jenkins/w/BuildSingleReference/.conan/data/libiconv/1.16/_/_/package/f74366f76f700cc6e991285892ad7a23c30e6d47/lib:/Users/jenkins/w/BuildSingleReference/.conan/data/zlib/1.2.11/_/_/package/f74366f76f700cc6e991285892ad7a23c30e6d47/lib" DYLD_FRAMEWORK_PATH="" ./autogen.sh
    
  • cairo/1.17.4@:
    CI failed to create some packages (All logs)

    Logs for packageID 73e7bd2dcf44d8bd011cbe95c253b3f4edcfdf0a:
    [settings]
    arch=x86_64
    arch_build=x86_64
    build_type=Release
    compiler=gcc
    compiler.libcxx=libstdc++11
    compiler.version=8
    os=Linux
    os_build=Linux
    [options]
    cairo:shared=False
    
    [...]
    cairo/1.17.4: Generator pkg_config created pcre.pc
    cairo/1.17.4: Generator pkg_config created libelf.pc
    cairo/1.17.4: Generator pkg_config created mount.pc
    cairo/1.17.4: Generator pkg_config created libsepol.pc
    cairo/1.17.4: Generator pkg_config created libselinux.pc
    cairo/1.17.4: Generator pkg_config created autoconf.pc
    cairo/1.17.4: Generator pkg_config created libpng.pc
    cairo/1.17.4: Generator pkg_config created libbrotlicommon.pc
    cairo/1.17.4: Generator pkg_config created libbrotlienc.pc
    cairo/1.17.4: Generator pkg_config created libbrotlidec.pc
    cairo/1.17.4: Generator pkg_config created brotli.pc
    cairo/1.17.4: Generator pkg_config created libpcre2-32.pc
    cairo/1.17.4: Generator pkg_config created libpcre2-16.pc
    cairo/1.17.4: Generator pkg_config created libpcre2-8.pc
    cairo/1.17.4: Generator pkg_config created libpcre2-posix.pc
    cairo/1.17.4: Generator pkg_config created libpcre2.pc
    cairo/1.17.4: Generator pkg_config created m4.pc
    cairo/1.17.4: Generator pkg_config created zlib.pc
    cairo/1.17.4: Generator pkg_config created bzip2.pc
    [HOOK - conan-center.py] pre_build(): [FPIC MANAGEMENT (KB-H007)] OK. 'fPIC' option found and apparently well managed
    [HOOK - conan-center.py] pre_build(): [FPIC MANAGEMENT (KB-H007)] OK
    cairo/1.17.4: Calling build()
    
    ----Running------
    > ./autogen.sh
    -----------------
    *** No GTK-Doc found, documentation won't be generated ***
    cairo/1.17.4: 
    autoreconf: export WARNINGS=
    autoreconf: Entering directory '.'
    autoreconf: configure.ac: not using Gettext
    autoreconf: running: /home/conan/w/BuildSingleReference/.conan/data/automake/1.16.3/_/_/package/258f6f05ca54813b3d7180161753df7f9ccf7e1d/bin/aclocal -I build ${ACLOCAL_FLAGS}
    autoreconf: configure.ac: tracing
    autoreconf: running: /home/conan/w/BuildSingleReference/.conan/data/libtool/2.4.6/_/_/package/9a742fb357948de0898e8481664b356888dece9e/bin/libtoolize --copy
    autoreconf: configure.ac: not using Intltool
    autoreconf: running: gtkdocize --copy
    Can't exec "gtkdocize": No such file or directory at /home/conan/w/BuildSingleReference/.conan/data/autoconf/2.71/_/_/package/cb054d0b3e1ca595dc66bc2339d40f1f8f04ab31/bin/share/autoconf/Autom4te/FileUtils.pm line 293.
    autoreconf: error: gtkdocize failed with exit status: 2
    m4/1.4.18: WARN: Lib folder doesn't exist, can't collect libraries: /home/conan/w/BuildSingleReference/.conan/data/m4/1.4.18/_/_/package/24647d9fe8ec489125dfbae4b3ebefaf7581674c/lib
    xorg/system: WARN: Lib folder doesn't exist, can't collect libraries: /home/conan/w/BuildSingleReference/.conan/data/xorg/system/_/_/package/5ab84d6acfe1f23c4fae0ab88f26e3a396351ac9/lib
    autoconf/2.71: WARN: Lib folder doesn't exist, can't collect libraries: /home/conan/w/BuildSingleReference/.conan/data/autoconf/2.71/_/_/package/cb054d0b3e1ca595dc66bc2339d40f1f8f04ab31/lib
    automake/1.16.3: WARN: Lib folder doesn't exist, can't collect libraries: /home/conan/w/BuildSingleReference/.conan/data/automake/1.16.3/_/_/package/258f6f05ca54813b3d7180161753df7f9ccf7e1d/lib
    cairo/1.17.4: WARN: Build folder is dirty, removing it: /home/conan/w/BuildSingleReference/.conan/data/cairo/1.17.4/_/_/build/73e7bd2dcf44d8bd011cbe95c253b3f4edcfdf0a
    cairo/1.17.4: ERROR: Package '73e7bd2dcf44d8bd011cbe95c253b3f4edcfdf0a' build failed
    cairo/1.17.4: WARN: Build folder /home/conan/w/BuildSingleReference/.conan/data/cairo/1.17.4/_/_/build/73e7bd2dcf44d8bd011cbe95c253b3f4edcfdf0a
    ERROR: cairo/1.17.4: Error in build() method, line 97
    	self._build_configure()
    while calling '_build_configure', line 164
    	self.run("./autogen.sh", win_bash=tools.os_info.is_windows, run_environment=True)
    	ConanException: Error 2 while executing ./autogen.sh
    

Note: To save resources, CI tries to finish as soon as an error is found. For this reason you might find that not all the references have been launched or not all the configurations for a given reference. Also, take into account that we cannot guarantee the order of execution as it depends on CI workload and workers availability.

@sh0
Copy link
Contributor Author

sh0 commented Aug 30, 2021

Closing until #7027 gets merged to fix CI.

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

Successfully merging this pull request may close these issues.

None yet

3 participants