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

Conflict with Camomile #28

Closed
ygrek opened this issue Aug 29, 2015 · 7 comments
Closed

Conflict with Camomile #28

ygrek opened this issue Aug 29, 2015 · 7 comments

Comments

@ygrek
Copy link
Owner

ygrek commented Aug 29, 2015

Originally reported on Google Code with ID 23

What steps will reproduce the problem?
1. Install camomile 0.8.X
2. Install extlib
3. Install any software that has transitive depends on extlib and camomile (e.g. pgocaml
+ sqlexpr).

What is the expected output? What do you see instead?

The files /usr/lib/ocaml/camomile/camomile.cma
and /usr/lib/ocaml/extlib/extLib.cma
disagree over interface UChar

What version of the product are you using? On what operating system?

1.5.2/Debian unstable

Please provide any additional information below.

For more info see 
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=670474

Reported by gildor478 on 2012-04-30 19:23:19

@ygrek
Copy link
Owner Author

ygrek commented Aug 29, 2015

Proposed solution - build another cma without UChar and UTF8 modules and provide it
via subpackage so that interested parties can link against it..

Reported by ygrekheretix on 2013-11-12 17:15:57

  • Status changed: Accepted
  • Labels added: Type-Enhancement, Milestone-Release1.6, Priority-High

@ygrek
Copy link
Owner Author

ygrek commented Aug 29, 2015

It won't work because uChar.cmi will be present in both directories and program that
compiled with the top package (not the subpackage) will not be able to choose between
extlib/uChar.cmi and camomile/uChar.cmi.

If I follow your idea, the only solution is to put uChar.cmi in a sub-directory of
extlib/ (e.g. extlib/foo/) or in a totally different package (e.g. extlib-unicode/uChar.cmi).

Reported by gildor478 on 2013-11-12 17:23:42

@ygrek
Copy link
Owner Author

ygrek commented Aug 29, 2015

Thanks for the feedback! Indeed, you are correct. I guess it is not possible to have
subdirectories with ocamlfind, so the only solution left is to provide two packages.
Not _that_ bad..

Reported by ygrekheretix on 2013-11-12 17:37:43

@ygrek
Copy link
Owner Author

ygrek commented Aug 29, 2015

With the next release extlib is going to provide and install by default two ocamlfind
packages : extlib (full, same as current) and extlib_min (without UChar UTF8 Unzip
Base64 modules) in order to mitigate this issue.

Reported by ygrekheretix on 2013-11-23 12:51:34

  • Status changed: Started

@ygrek
Copy link
Owner Author

ygrek commented Aug 29, 2015

This issue was closed by revision r428.

Reported by ygrekheretix on 2013-11-23 18:28:48

  • Status changed: Fixed

@ygrek
Copy link
Owner Author

ygrek commented Aug 29, 2015

Now I think of an alternative way to solve this. Clearly we want everybody to upgrade
extlib without UChar and UTF8, but without breaking any code. Current solution requires
everybody to change used package name from extlib to extlib_min and it will causes
chaos wrt dependencies. The proposed solution is to build by default full cma with
all modules, but have a configure-time option to build cma without UTF8. This will
allow to to gradually introduce reduced set of modules on codebases that don't need
it (e.g. opam, debian, etc).

Reported by ygrekheretix on 2013-11-25 03:11:05

  • Status changed: Started

@ygrek
Copy link
Owner Author

ygrek commented Aug 29, 2015

Reported by ygrekheretix on 2013-11-26 03:55:18

  • Status changed: Fixed

@ygrek ygrek closed this as completed Aug 29, 2015
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant