I was using ImageView fine yesterday in julia 1.0.2, now today it tells me that Cairo is installed but needs a rebuild. During this rebuild Cairo demands sudo root access; it is trying to tell zypper (OpenSUSE package manager) to install gettext, but gettext runtime is already installed in system so I don’t think this is going to help. This is really odd, first time I think Julia has asked for root, is this OK?
- Afaiu the BinDeps logic tries to get the dependencies from the same source. So if gettext is available but others of the set are not, BinDeps will try to get all dependencies. So it’s expected behaviour.
- Tim Holy recently posted something about libz issues on ImageView
Problem with using Images.
Thanks for the tip. I allowed root access and got the following which may be of interest to others in the same situation:
Loading repository data…
│ Reading installed packages…
│ ‘gettext’ not found in package names. Trying capabilities.
│ ‘gettext-runtime’ providing ‘gettext’ is already installed.
│ Resolving package dependencies…
│ Nothing to do.
│ ERROR: LoadError: Provider Zypper failed to satisfy dependency gettext
I’m not sure what I can do to make it easier for zypper to find the materials,
which gettext works just fine. I guess it may be because the OpenSUSE package is called “gettext-runtime” and not simply “gettext”. I think I ran into this issue a couple of versions ago (0.5/0.6) so it may be a regression.
Afaics we’re not testing BinDeps/Cairo against OpenSUSE, so changes in their naming structure are not reflected here. If you know the exact package names, don’t hesitate to check this (change build.jl) and PR it.
OK I think I have a contribution here. OpenSUSE seems to use two packages to cover gettext: gettext-runtime and intltool. At first glance it seems Julia Cairo wants gettext-runtime but I don’t think this is right, what it wants is the functionality from intltool. When I add intltool as an alias to gettext Cairo builds and so does ImageView and I can use imshow again.
I have added a PR for this; I think I have done it correctly but if I have made a mistake in the process let me know and I will try again.