Coder Social home page Coder Social logo

Comments (11)

timholy avatar timholy commented on August 22, 2024

I should add that the contents of C:\Users\tim\AppData\Roaming\julia\packages\RPMmd\deps\usr\x86_64-w64-mingw32\sys-root\mingw\bin include 'libgobject-2.0-0.dll`, with size 308 KB.

from cairo.jl.

ihnorton avatar ihnorton commented on August 22, 2024

The problem here is missing dependency DLLs. I was able to get Cairo working by checking what is missing (for gobject, then libcairo) using Dependency Walker, and then running RPMmd.install for each one (libcairo2, pango, libffi, libintl, maybe some others). But that is obviously not a generalizable solution.

There are a few things going on:

  • bug in RPMmd such that Packages(pkgs::Vector{Package}) errors out
  • pango install is not being run.
  • upstream does not list dependencies correctly. gobject depends on libffi and libintl but those are not listed in the RPMmd XML file. I guess we know some of this already, because we list some dependencies explicitly (zlib, ffi, png). However, those provider lines in Cairo's build script are not being executed correctly (or perhaps, in the wrong order?). I'm not sure why this is now a problem.. @vtjnash is more familiar with the RPMmd setup and might be able to comment on what has changed (version bumps? linker options on the build host?).

There is a one-line fix for the 1st one, which I will push later on - hopefully with a fix for the 2nd, although the interaction between BinDeps and RPMmd is rather...mystifying and difficult to debug on windows.

from cairo.jl.

ihnorton avatar ihnorton commented on August 22, 2024

Apparently it works on 32-bit build (just confirmed myself). Very strange.

from cairo.jl.

ihnorton avatar ihnorton commented on August 22, 2024

Never mind, just saw this. I suppose we could do the same thing for 64-bit.

from cairo.jl.

quinnj avatar quinnj commented on August 22, 2024

I just updated everything and ran into this problem as well. Windows 8 64-bit native build. Commit bc0b382

from cairo.jl.

ihnorton avatar ihnorton commented on August 22, 2024

I just pushed a hacky fix, which depends on this pr. Neither of those is particularly satisfying, but at this point I don't have time to dig in to RPMmd upstream dependency issues. If no other solution is forthcoming we should merge those so people can test the more important stuff that uses Cairo.

from cairo.jl.

ihnorton avatar ihnorton commented on August 22, 2024

Fixed in JuliaPackaging/WinRPM.jl@b3624ac and JuliaLang/METADATA.jl@d851d76

from cairo.jl.

ihnorton avatar ihnorton commented on August 22, 2024

I tested installation against a clean julia, and used Cairo via Jeff's fractal notebook. Everything was smooth.

from cairo.jl.

timholy avatar timholy commented on August 22, 2024

Works for me, too. This is the first time I've had graphics on 64-bit Windows, so this is a huge step forward! Thanks so much!

from cairo.jl.

StefanKarpinski avatar StefanKarpinski commented on August 22, 2024

Slowly, but surely, we're getting better at this.

from cairo.jl.

timholy avatar timholy commented on August 22, 2024

Clearly!

from cairo.jl.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.