# Cairo rebuild demands root access?

**URL:** <https://discourse.julialang.org/t/cairo-rebuild-demands-root-access/18898>\
**Category:** General Usage\
**Created:** [December 21, 2018, 2:34pm UTC](https://discourse.julialang.org/t/cairo-rebuild-demands-root-access/18898 "2018-12-21T14:34:55Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![Colin\_Beckingham](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/colin_beckingham/32/4878_2.png) [@Colin\_Beckingham](https://discourse.julialang.org/u/Colin_Beckingham)\
**Post date:** [December 21, 2018, 2:34pm UTC](https://discourse.julialang.org/t/cairo-rebuild-demands-root-access/18898/1 "2018-12-21T14:34:55Z")

</div>

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?

---

<div class="post-metadata">

**Author:** ![lobingera](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/lobingera/32/211_2.png) [@lobingera](https://discourse.julialang.org/u/lobingera)\
**Post date:** [December 21, 2018, 6:01pm UTC](https://discourse.julialang.org/t/cairo-rebuild-demands-root-access/18898/2 "2018-12-21T18:01:45Z")

</div>

1. 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.
2. Tim Holy recently posted something about libz issues on ImageView  
[Problem with using Images.](https://discourse.julialang.org/t/problem-with-using-images/18713)

---

<div class="post-metadata">

**Author:** ![Colin\_Beckingham](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/colin_beckingham/32/4878_2.png) [@Colin\_Beckingham](https://discourse.julialang.org/u/Colin_Beckingham)\
**Post date:** [December 21, 2018, 6:28pm UTC](https://discourse.julialang.org/t/cairo-rebuild-demands-root-access/18898/3 "2018-12-21T18:28:23Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![lobingera](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/lobingera/32/211_2.png) [@lobingera](https://discourse.julialang.org/u/lobingera)\
**Post date:** [December 22, 2018, 9:07am UTC](https://discourse.julialang.org/t/cairo-rebuild-demands-root-access/18898/4 "2018-12-22T09:07:00Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![Colin\_Beckingham](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/colin_beckingham/32/4878_2.png) [@Colin\_Beckingham](https://discourse.julialang.org/u/Colin_Beckingham)\
**Post date:** [December 22, 2018, 2:11pm UTC](https://discourse.julialang.org/t/cairo-rebuild-demands-root-access/18898/5 "2018-12-22T14:11:26Z")

</div>

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.
