cross-rs/cross

Outdated packages in Ubuntu Focal

Opened this issue · 2 comments

Checklist

Describe your issue

My project uses gtk4 and libadwaita crates, and those rely on some system development packages, e.g libpango1.0-dev.

The packages exist in Ubuntu's repos, but the versions are too old.

I added this to the pre-build flag:

pre-build = ["dpkg --add-architecture i386 && apt-get update && apt-get install libpango1.0-dev"]

It runs and downloads the library successfully, but the build fails with error:

cargo:warning=`PKG_CONFIG_ALLOW_SYSTEM_CFLAGS="1" PKG_CONFIG_PATH="/usr/lib/i386-linux-gnu/pkgconfig/:" "pkg-config" "--libs" "--cflags" "pango" "pango >= 1.46"` did not exit successfully: exit status: 1
  error: could not find system library 'pango' required by the 'pango-sys' crate

  --- stderr
  Requested 'pango >= 1.46' but version of Pango is 1.38.1

This is for pango-sys, and the same errors happen to gobject-sys, gio-sys, glib-sys, and gdk-pixbuf-sys. And I'm afraid as I add more deps, this will just happen more and more, and manually building the latest versions of these packages is gonna be quite a big hassle.

Is there any plan to support more recent versions of Ubuntu images? From what I've read in other issues, the older versions seem to be necessary for some projects for some reason, if that's the case can we have more options separated from these (e.g. by adding a -ubuntu22.04 prefix for example)?

What target(s) are you cross-compiling for?

i686-pc-windows-gnu, i686-unknown-linux-gnu, x86_64-pc-windows-gnu

Which operating system is the host (e.g computer cross is on) running?

  • macOS
  • Windows
  • Linux / BSD
  • other OS (specify in description)

What architecture is the host?

  • x86_64 / AMD64
  • arm32
  • arm64 (including Mac M1)

What container engine is cross using?

  • docker
  • podman
  • other container engine (specify in description)

cross version

cross 0.2.5

Example

No response

Additional information / notes

No response

current images on main use focal (20.04)

You can use them by using cross installed from main or specifying the image directly

[target.i686-unknown-linux-gnu]
image = "ghcr.io/cross-rs/i686-unknown-linux-gnu:main"

There's no plans to support multiple at the same time, we do have plans to update to jammy (22.04).

See #973 for the focal update

--- stderr
  Requested 'glib-2.0 >= 2.66' but version of GLib is 2.64.6

Still not recent enough with focal 😭

Is there any workaround for this? It's a real blocker since building for Windows 32-bit target is such a pain, even in a Windows x64-bit host (can't use Windows x86 host, since msys2 doesn't support it since more than 3 years).