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

libwebp-base should add a run_constrained on libwebp version #26

Closed
isuruf opened this issue Mar 17, 2020 · 9 comments
Closed

libwebp-base should add a run_constrained on libwebp version #26

isuruf opened this issue Mar 17, 2020 · 9 comments

Comments

@isuruf
Copy link
Member

isuruf commented Mar 17, 2020

Otherwise, the following environment is possible,

  libwebp            conda-forge/osx-64::libwebp-1.0.2-hd3bf737_5
  libwebp-base       conda-forge/osx-64::libwebp-base-1.1.0-2
dschreij added a commit that referenced this issue Mar 18, 2020

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
@ocefpaf
Copy link
Member

ocefpaf commented Mar 18, 2020

@isuruf I'm having a hard time trying to fix this. I believe that this part in the recipe is wrong:

https://github.com/conda-forge/libwebp-feedstock/blob/master/recipe/meta.yaml#L56-L58

It declares a run_exports for libwebp-base in the libwebp output. Also, when I add

run_constrained:
  - libwebp =={{ version }}

in the libwebp-base output the recipe won't build. The failure is:

INFO conda_build.metadata:finalize_outputs_pass(705): Attempting to finalize metadata for libwebp
Collecting package metadata (repodata.json): ...working... done
Solving environment: ...working... done
Collecting package metadata (repodata.json): ...working... done
Solving environment: ...working... done
Collecting package metadata (repodata.json): ...working... done
Solving environment: ...working... done
Traceback (most recent call last):
  File "/opt/conda/bin/conda-build", line 11, in <module>
    sys.exit(main())
  File "/opt/conda/lib/python3.7/site-packages/conda_build/cli/main_build.py", line 474, in main
    execute(sys.argv[1:])
  File "/opt/conda/lib/python3.7/site-packages/conda_build/cli/main_build.py", line 465, in execute
    verify=args.verify, variants=args.variants)
  File "/opt/conda/lib/python3.7/site-packages/conda_build/api.py", line 209, in build
    notest=notest, need_source_download=need_source_download, variants=variants)
  File "/opt/conda/lib/python3.7/site-packages/conda_build/build.py", line 2867, in build_tree
    notest=notest,
  File "/opt/conda/lib/python3.7/site-packages/conda_build/build.py", line 1841, in build
    output_metas = expand_outputs([(m, need_source_download, need_reparse_in_env)])
  File "/opt/conda/lib/python3.7/site-packages/conda_build/render.py", line 757, in expand_outputs
    for (output_dict, m) in _m.copy().get_output_metadata_set(permit_unsatisfiable_variants=False):
  File "/opt/conda/lib/python3.7/site-packages/conda_build/metadata.py", line 2057, in get_output_metadata_set
    ensure_matching_hashes(conda_packages)
  File "/opt/conda/lib/python3.7/site-packages/conda_build/metadata.py", line 333, in ensure_matching_hashes
    "Involved packages were:\n" + error)
conda_build.exceptions.RecipeError: Mismatching hashes in recipe. Exact pins in dependencies that contribute to the hash often cause this. Can you change one or more exact pins to version bound constraints?
Involved packages were:
Mismatching package: libwebp-base (id 3); dep: libwebp-base 1.1.0 2; consumer package: libwebp

@isuruf
Copy link
Member Author

isuruf commented Mar 18, 2020

This recipe is a mess and I'd consider it a bad hack. I can have a look at fixing it, but not for a while.
In order to fix this issue quickly, I suggest hotfixing the metadata in https://github.com/conda-forge/conda-forge-repodata-patches-feedstock

@carterbox
Copy link
Member

This might be because there is a circular dependency with libtiff since conda-forge/libtiff-feedstock#48!

libtiff 4.1.0 hc7e4089_5
------------------------
file name   : libtiff-4.1.0-hc7e4089_5.tar.bz2
name        : libtiff
version     : 4.1.0
build       : hc7e4089_5
build number: 5
size        : 632 KB
license     : HPND
subdir      : linux-64
url         : https://conda.anaconda.org/conda-forge/linux-64/libtiff-4.1.0-hc7e4089_5.tar.bz2
md5         : 9f7eb4181f9d6ea4ce72e0c1d95c455b
timestamp   : 2020-03-17 14:22:38 UTC
dependencies: 
  - jpeg >=9c,<10a
  - libgcc-ng >=7.3.0
  - libstdcxx-ng >=7.3.0
  - libwebp
  - libwebp-base >=1.1.0,<1.2.0a0
  - xz >=5.2.4,<5.3.0a0
  - zlib >=1.2.11,<1.3.0a0
  - zstd >=1.4.4,<1.4.5.0a0

@carterbox
Copy link
Member

One of these libraries must not strictly depend on the other. Which is it? They can't both require the other to be compiled. Otherwise, they should be the same package?

@carterbox
Copy link
Member

I think it would be best if libwebp and libtiff remove their run requirement on each other but keep their build requirement for each other. It would break this circular dependency where libwebp depends on itself. It should be up to the end user whether they want jpeg, png, and tiff support anyways.

@hmaarrfk
Copy link
Contributor

@dschreij could we speak as to why we need a base and a non-base package? There might be an other way for us to do this without split packages (which are really annoying to deal with for me).

@carterbox
Copy link
Member

@hmaarrfk, in #28 we discussed that the best way is to change libtiff to depend only on libwebp-base (conda-forge/libtiff-feedstock#58 (comment)) and then make a new feedstock for libwebp-base instead of having one split feedstock (todo). Do you have time to set that up today? Otherwise I volunteer to do it this weekend.

@kmuehlbauer
Copy link

This also has surfaced over at gdal-feedstock, see conda-forge/gdal-feedstock#370 Anything we can do to fix gdal?

@carterbox
Copy link
Member

@kmuehlbauer Please wait a few days for this libwebp to be rebuilt.

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

Successfully merging a pull request may close this issue.

5 participants