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

Cairo does not built on julia 0.7 Windows (x86_64-w64-mingw32) #261

Closed
alblaz opened this issue Sep 12, 2018 · 7 comments · Fixed by #292
Closed

Cairo does not built on julia 0.7 Windows (x86_64-w64-mingw32) #261

alblaz opened this issue Sep 12, 2018 · 7 comments · Fixed by #292

Comments

@alblaz
Copy link

alblaz commented Sep 12, 2018

Building Cairo yields the error ERROR: LoadError: Provider WinRPM.RPM failed to satisfy dependency pangocairo. This is similar to what described in issues #230 and #239 but in that case the discussion was about OSX. I'm on Windows 10 (x86_64-w64-mingw32). I wonder if the error is a specific problem of my system or if it is a general problem at the moment that can be reproduced by other people.

The complete log I obtain when I build Cairo is the following
`
(v0.7) pkg> build Cairo

Building LibCURL ─→ C:\Users\alaz\.julia\packages\LibCURL\GC3ap\deps\build.log
Building WinRPM ──→ C:\Users\alaz\.julia\packages\WinRPM\Y9QdZ\deps\build.log
Building Homebrew → C:\Users\alaz\.julia\packages\Homebrew\l8kUw\deps\build.log
Building Cairo ───→ C:\Users\alaz\.julia\packages\Cairo\CXPG1\deps\build.log
┌ Error: Error building Cairo:
│ [ Info: Updating WinRPM package list
│ [ Info: Downloading https://cache.julialang.org/http://download.opensuse.org/repositories/windows:/mingw:/win32/openSUSE_Leap_42.2/repodata/repomd.xml
│ [ Info: Downloading https://cache.julialang.org/http://download.opensuse.org/repositories/windows:/mingw:/win64/openSUSE_Leap_42.2/repodata/repomd.xml
│ [ Info: Nothing to do
│ [ Info: Nothing to do
│ [ Info: Nothing to do
│ ERROR: LoadError: Provider WinRPM.RPM failed to satisfy dependency pangocairo
│ Stacktrace:
│ [1] error(::String) at .\error.jl:33
│ [2] satisfy!(::BinDeps.LibraryDependency, ::Array{DataType,1}) at C:\Users\alaz.julia\packages\BinDeps\ZEval\src\dependencies.jl:945
│ [3] satisfy!(::BinDeps.LibraryGroup, ::Array{DataType,1}) at C:\Users\alaz.julia\packages\BinDeps\ZEval\src\dependencies.jl:910
│ [4] satisfy!(::BinDeps.LibraryGroup) at C:\Users\alaz.julia\packages\BinDeps\ZEval\src\dependencies.jl:874
│ [5] top-level scope at C:\Users\alaz.julia\packages\BinDeps\ZEval\src\dependencies.jl:977
│ [6] include at .\boot.jl:317 [inlined]
│ [7] include_relative(::Module, ::String) at .\loading.jl:1038
│ [8] include(::Module, ::String) at .\sysimg.jl:29
│ [9] include(::String) at .\client.jl:398
│ [10] top-level scope at none:0
│ in expression starting at C:\Users\alaz.julia\packages\Cairo\CXPG1\deps\build.jl:165
└ @ Pkg.Operations C:\cygwin\home\Administrator\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v0.7\Pkg\src\Operations.jl:1068
`

@lobingera
Copy link
Contributor

Might be specific to your system, appveyor succeeds in 0.7 (64bit) https://ci.appveyor.com/project/lobingera/cairo-jl-f7sfx

@alblaz
Copy link
Author

alblaz commented Sep 12, 2018

Thanks @lobingera. I tried to remove Cairo and WinRPM from the folder .julia/packages and do a reinstall as it was suggested in other threads but I had no succcess. Do you have any suggestion to track and solve the problem?

@lobingera
Copy link
Contributor

You could try a BinDeps debug https://github.com/JuliaPackaging/BinDeps.jl#diagnostics to see what BinDeps thinks is resolvable and not.

@alblaz
Copy link
Author

alblaz commented Sep 13, 2018

Thanks @lobingera for your suggestion. Looks like the binaries required have been installed by WinRPM. I can in fact see them in a subfolder of ~.julia/Packages/WinRPM.

ls .julia\packages\WinRPM\Y9QdZ\deps\usr\x86_64-w64-mingw32\sys-root\mingw\bin\

gspawn-win64-helper-console.exe* libglib-2.0-0.dll* libpangowin32-1.0-0.dll* gspawn-win64-helper.exe* libgobject-2.0-0.dll* libpixman-1-0.dll* libcairo-2.dll* libharfbuzz-0.dll* libpng16-16.dll* libffi-6.dll* libintl-8.dll* libwinpthread-1.dll* libfontconfig-1.dll* libpango-1.0-0.dll* libxml2-2.dll* libfreetype-6.dll* libpangocairo-1.0-0.dll* zlib1.dll* libgcc_s_seh-1.dll* libpangoft2-1.0-0.dll*

But when I run BinDeps.debug("Cairo") it cannot find libpangocairo using the WinRPM.RPM provider although WinRPM succeed in providing the library libgobject-2.0-0.dll which is in the same folder. Any idea of what could be the cause? Find below the full report of BinDeps.debug.

`
BinDeps.debug("Cairo")

WARNING: importing deprecated binding Base.STDOUT into BinDeps.
WARNING: Base.STDOUT is deprecated, use stdout instead.
in module BinDeps
in debug at C:\Users\alaz.julia\packages\BinDeps\ZEval\src\debug.jl
[ Info: Reading build script...
┌ Warning: Pkg.dir(pkgname, paths...) is deprecated; instead, do import Cairo; joinpath(dirname(pathof(Cairo)), "..", paths...).
└ @ Pkg.API C:\cygwin\home\Administrator\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v0.7\Pkg\src\API.jl:454
┌ Warning: eval(m, x) is deprecated, use Core.eval(m, x) instead.
│ caller = eval_anon_module(::BinDeps.PackageContext, ::String) at BinDeps.jl:557
└ @ BinDeps C:\Users\alaz.julia\packages\BinDeps\ZEval\src\BinDeps.jl:557
The package declares 1 dependencies.

  • Library Group "cairo"[ Info: Updating WinRPM package list
    [ Info: Downloading https://cache.julialang.org/http://download.opensuse.org/repositories/windows:/mingw:/win32/openSUSE_Leap_42.2/repodata/repomd.xml
    [ Info: Downloading https://cache.julialang.org/http://download.opensuse.org/repositories/windows:/mingw:/win64/openSUSE_Leap_42.2/repodata/repomd.xml

    • Library "png" (not applicable to this system)
    • Library "pixman" (not applicable to this system)
    • Library "ffi" (not applicable to this system)
    • Library "gettext" (not applicable to this system)
    • Library "gobject"
      • Satisfied by:
        • WinRPM.RPM package ["glib2", "libgobject-2_0-0"] at C:\Users\alaz.julia\packages\WinRPM\Y9QdZ\deps\usr\x86_64-w64-mingw32\sys-root\mingw\bin\libgobject-2.0-0.dll
        • System Paths at C:\Program Files\pdf2svg\libgobject-2.0-0.dll
      • Providers:
        • WinRPM.RPM package ["glib2", "libgobject-2_0-0"]
        • AptGet package libglib2.0-0 (can't provide)
        • Yum package glib2 (can't provide)
        • Zypper package libglib-2_0 (can't provide)
        • Autotools Build
    • Library "freetype" (not applicable to this system)
    • Library "fontconfig" (not applicable to this system)
    • Library "cairo"
      • Satisfied by:
        • WinRPM.RPM package ["libcairo2", "libharfbuzz0"] at C:\Users\alaz.julia\packages\WinRPM\Y9QdZ\deps\usr\x86_64-w64-mingw32\sys-root\mingw\bin\libcairo-2.DLL
      • Providers:
        • WinRPM.RPM package ["libcairo2", "libharfbuzz0"]
        • AptGet package libcairo2 (can't provide)
        • Yum package cairo (can't provide)
        • Zypper package libcairo2 (can't provide)
        • Autotools Build
    • Library "pango"
      • Satisfied by:
        • System Paths at C:\Program Files\Inkscape\libpango-1.0-0.dll
      • Providers:
        • WinRPM.RPM package libpango-1_0-0
        • AptGet package libpango1.0-0 (can't provide)
        • Yum package pango (can't provide)
        • Zypper package libpango-1_0 (can't provide)
        • Autotools Build
    • Library "pangocairo"
      • Providers:
        • WinRPM.RPM package libpango-1_0-0
        • AptGet package libpango1.0-0 (can't provide)
        • Yum package pango (can't provide)
        • Zypper package libpango-1_0 (can't provide)
        • Autotools Build
    • Library "zlib"
      • Satisfied by:
        • WinRPM.RPM package zlib-devel at C:\Users\alaz.julia\packages\WinRPM\Y9QdZ\deps\usr\x86_64-w64-mingw32\sys-root\mingw\bin\zlib1.DLL
        • System Paths at C:\Users\alaz\AppData\Local\Julia-0.7.0\bin\zlib1.dll
      • Providers:
        • WinRPM.RPM package zlib-devel
        • Simple Build Process
          `

@lobingera
Copy link
Contributor

One thing i remember is, BinDeps is thinking, that ALL dependencies have to be resolved within the same provider. Looks' like above you have pangocairo as (only) system lib.

@alblaz
Copy link
Author

alblaz commented Sep 13, 2018

Thanks for the suggestion @lobingera! After removing Inkscape and pdf2svg from the PATH environment variable Cairo.jl builds successfully.

@aalexandersson
Copy link

BinDeps is not compatible with Julia 1.x. I have the same Cairo build problem and get this BinDeps error:

julia> using BinDeps

julia> BinDeps.debug("Cairo")
ERROR: UndefVarError: STDOUT not defined
Stacktrace:
 [1] debug(::String) at C:\Users\aalexandersson\.julia\packages\BinDeps\ZEval\src\debug.jl:69
 [2] top-level scope at none:0

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.

3 participants