conan-io / conan-center-index

Recipes for the ConanCenter repository
https://conan.io/center
MIT License
960 stars 1.77k forks source link

Issues with latest updates to `xapian-core/1.4.18` and libuuid #19119

Open jcar87 opened 1 year ago

jcar87 commented 1 year ago

This has broken some of our builds, as we also depend on xapian-core/1.4.19 and libuuid. Is there a way to get the older version of xapian-core/1.4.18 which works with libuuid?

Originally posted by @mgehre-amd in https://github.com/conan-io/conan-center-index/issues/18551#issuecomment-1671250156

jcar87 commented 1 year ago

@samuel-emrys, thanks for responding so quickly. Where can I find the previous revision of the recipe? https://conan.io/center/recipes/xapian-core?version=1.4.19 seems to only list the latest one.

We will work on replacing libuuid by util-linux-libuuid eventually, but currently builds fail because find_package(libuuid) doesn't work with util-linux-libuuid.

Originally posted by @mgehre-amd in https://github.com/conan-io/conan-center-index/issues/18551#issuecomment-1671273243

@mgehre-amd I'm not sure how to search for previous revisions with conan 1 - I assume the revisions haven't changed in conan 2 though. You can find them like this:

$ conan list "xapian-core/1.4.19#*" -r conancenter
conancenter
  xapian-core
    xapian-core/1.4.19
      revisions
        7a53af51867537057638eb8efc7e7c42 (2022-03-17 02:17:07 UTC)
        ff04ba9f37d90ddd5c29266a0f16e5c3 (2022-04-24 09:04:59 UTC)
        1b0e0ff1df9b8d0d426e29333532fdf3 (2022-08-31 08:46:13 UTC)
        60856b4e1c6680459fd9bc1c652f7cb7 (2022-11-17 12:33:55 UTC)
        e9b2e8ef1660f47fc5bcd7a05ec1a8e9 (2023-03-08 10:52:56 UTC)

So, I guess you'd have similar to the following (you might have to experiment a bit):

self.requires("xapian-core/1.4.19#60856b4e1c6680459fd9bc1c652f7cb7")

But as I said, you could equally just force libuuid to be used instead of util-linux-libuuid with

self.requires("libuuid/1.0.3", override=True)

Originally posted by @samuel-emrys in https://github.com/conan-io/conan-center-index/issues/18551#issuecomment-1671313124

jcar87 commented 1 year ago

Hi @mgehre-amd , thank you for reporting this, and @samuel-emrys for providing assistance.

Indeed, it is going to be a problem to have both libuuid and util-linux-libuuid in the same dependency graph - they provide the same symbols and Conan will raise a conflict error, otherwise linker errors would be possible.

It should be possible to completely depend on util-linux-libuuid as it is source compatible and provides the same functionality as the earlier libuuid - this should be no problem.

Regarding the issue with util-linux-libuuid and the legacy generators, please be advised that Conan Center no longer enforces continued support for these legacy generations, as per this announcement.

However, we would happily accept a contribution for util-linux-libuuid to make it compatible with the behaviour of the previous libuuid if this minimises disruption. Otherwise, as @samuel-emrys suggest, it should be possible to use an earlier revision of the xapian-core recipe.

mgehre-amd commented 1 year ago

Thanks, pinning xapian-core/1.4.19#60856b4e1c6680459fd9bc1c652f7cb7 for solves our immediate issue. We will look into moving to a newer generator.

datalogics-kam commented 1 year ago

It also breaks building doxygen/1.9.1 on macOS:

[100%] Linking CXX executable ../../bin/doxyparse
Undefined symbols for architecture x86_64:
  "_iconv", referenced from:
      _portable_iconv in libdoxycfg.a(portable_c.c.o)
     (maybe you meant: _portable_iconv_open, _portable_iconv_close , _portable_iconv )
  "_iconv_close", referenced from:
      _portable_iconv_close in libdoxycfg.a(portable_c.c.o)
     (maybe you meant: _portable_iconv_close)
  "_iconv_open", referenced from:
      _portable_iconv_open in libdoxycfg.a(portable_c.c.o)
     (maybe you meant: _portable_iconv_open)
ld: symbol(s) not found for architecture x86_64

I think Doxygen is fumbling due to the unexpected presence of libiconv in the CMAKE_MODULE_PATH, as libiconv is now a new transitive requirement via xapian-core, util-linux-libuuid and libgettext. I think Doxygen was expecting to link to iconv as provided by the operating system.

samuel-emrys commented 1 year ago

I've resolved the doxygen iconv issue in https://github.com/conan-io/conan-center-index/pull/18415. Can break it out if it makes sense to.

Edit: broke it out into https://github.com/conan-io/conan-center-index/issues/19903

datalogics-kam commented 1 year ago

I've resolved the doxygen iconv issue in https://github.com/conan-io/conan-center-index/pull/18415. Can break it out if it makes sense to.

Thanks! It's not urgent for us, because I think we just decided to put doxygen/*:enable_search=False in options in our profiles, because we don't really use that feature, but I reported it here as a service to others.