-
Notifications
You must be signed in to change notification settings - Fork 198
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
Update to use proj 0.23.1, using libproj 8.1.0 #661
Conversation
bors try |
tryBuild failed: |
Hmmmm missing |
The geo-ci dockerfile copies the proj installation from libproj-builder: https://github.com/georust/docker-images/blob/master/rust-1.53/geo-ci.Dockerfile#L29 So if it's trying to build proj, something has gone wrong. |
One thought: are you sure that you'd built and tagged the latest libproj-builder:rust-1.53 (with proj 8) before rebuilding and tagging the geo-ci:rust-1.53 container? ...I have no idea how to audit this =( I'll try to reproduce it locally. |
I thought I had… |
That stderr line is from:
I wonder why we're triggering that? |
Oh, I guess I didn't realize (or maybe forgot) that using geo/Cargo.toml
proj/Cargo.toml
and
proj-sys/Cargo.toml
So I guess this is intended. I'm not sure why this was added - I guess maybe it's hard to probe whether the existing proj installation has the tiff feature? Maybe in the immediate, the thing to do is simply to install cmake on geo-ci, as @urschrei suggested long ago. 😬 |
It's the easier option for now, for sure. |
Sorry that this has sat here so long @urschrei! I confess, I'm still kind of confused as to why we now need to build proj from source when we (apparently?) didn't previously need to. One thing that might help me trace this back - can you push up a proj-0.20.3 tag? |
BTW, I did go to add Ultimately I'd be OK with having just one heavy base docker image for ci, it's no big deal. But the primary reason it gives me pause was because now I'm wondering if we'd be newly requiring For example, a (very) cursory look shows that debian (sid) and macos homebrew include libtiff. It seems likes those users shouldn't need to build libproj from source if we get things set up nicely. |
Hm... maybe this is the history: georust/proj#58 Seems like we first added a way to disable the building of tiff in hopes of getting proj building on M1, but we've since tracked down a different root cause and everything is now peachy w/ aarch64 and libproj. Since tiff is enabled by default by libproj... would it be too bold to deprecate that feature and assume all people are either:
I guess weighing the downsides of that vs. requiring everyone who uses geo w/ proj to compile libproj from source... |
I think it's reasonable to assume that most people with an existing |
(I also pushed a tag for 0.20.3) |
92: Assume `tiff` to avoid unnecessary libproj builds. r=urschrei a=michaelkirk This is a preface to unblocking georust/geo#661 (I've integrated these changes with the geo crate here: https://github.com/georust/geo/tree/mkirk/bump_proj_810) --- This removes the bundled_proj_tiff feature (added in https://github.com/georust/proj/pull/58/files), and we now, once again, assume all proj installations support tiff. Meaning the user either: 1. If the user has a recent system installation of libproj, it supports libtiff. 2. Else if the user has no recent system installation of libproj, build.rs will compile it from source, which requires linking in libtiff The previous "bundled_proj_tiff" unfortunately conflated needing tiff with needing to build from source, even though most system proj installs will already support tiff. ## Longer explanation proj-sys requires a compatible libproj installation. build.rs will either use a pre-existing system installation of libproj or build libproj from source. Building from source takes a while, so it's preferable to use the system installation if it's compatible. tiff support is used by libproj's network grid. tiff support is required by libproj by default, though it's possible to opt out. When Apple first released aarch64 (M1), libtiff was failing to build, so as a stop gap we added a "bundled_proj_tiff" feature which: 1. forced a from-source build 2. explicitly enabled tiff support, else tiff support would be disabled, allowing us to build the proj crate on aarch64 The underlying build failures in libtiff have now been fixed, so the original motivation for this feature no longer exists. There was a cost associated with keeping it - unnecessarily triggering source builds from, e.g. georust/geo crate, whose `proj/network` feature wants to ensure tiff is enabled. Given that most installations will have this feature, I think it will give most of our users a better experience if we can avoid the compile. To be clear, there is potential downside with this approach. It's still conceivable that environments exists where tiff is not, or can not be installed, but weighing that against the more common case of having libproj installed with the default configuration, and I think this approach wins. If this poops on too many parties, we can revisit something like the former behavior in a way that's less deleterious to the default use case - e.g. have a `tiff` feature that will still use the local install if it supports tiff. Co-authored-by: Michael Kirk <michael.code@endoftheworl.de>
ping @urschrei - I'm happy to take this one over if you're busy. |
6e2077c
to
7beced3
Compare
Let's see if this will merge even though cargo-tarpaulin is failing with an error |
bors r+ |
661: Update to use proj 0.23.1, using libproj 8.1.0 r=urschrei a=urschrei - [x] I agree to follow the project's [code of conduct](https://github.com/georust/geo/blob/master/CODE_OF_CONDUCT.md). - [x] I added an entry to `CHANGES.md` if knowledge of this change could be valuable to users. --- Co-authored-by: Stephan Hügel <shugel@tcd.ie>
Build failed: |
bors try |
48b808e
to
2e50e11
Compare
[skip coverage]
2e50e11
to
e0aa25f
Compare
OK! But will the merge commit skip the coverage check 🧐? |
bors r+ |
661: Update to use proj 0.23.1, using libproj 8.1.0 r=urschrei a=urschrei - [x] I agree to follow the project's [code of conduct](https://github.com/georust/geo/blob/master/CODE_OF_CONDUCT.md). - [x] I added an entry to `CHANGES.md` if knowledge of this change could be valuable to users. --- Co-authored-by: Stephan Hügel <shugel@tcd.ie>
OK, now what? Manual merge? |
Build failed: |
In the immediate, I'm totally fine with a manual merge. I'm going to open a separate issue about tarpaulin (here: #676) |
tryTimed out. |
CHANGES.md
if knowledge of this change could be valuable to users.