Update the 'apt-get' version of GMT?

apt-get installs GMT version 6.0, while the latest stable release is 6.4. Any chance to update the version in the ‘apt-get’ package manager? Currently I am getting some odd bugs in my GMT which I believe are caused by this outdated version number. I could of course build 6.4 from source, but I venture to guess a large number of users are running on 6.0 as Ubuntu is the most common linux environment for new users getting started with this software, so this update would benefit a lot of people.

For example: when downloading new images with grdcut @earth_relief_03s, I get numerous messages like this:

ERROR 1: PROJ: proj_as_wkt: SQLite error on SELECT name, ellipsoid_auth_name, ellipsoid_code, prime_meridian_auth_name, prime_meridian_code, area_of_use_auth_name, area_of_use_code, publication_date, deprecated FROM geodetic_datum WHERE auth_name = ? AND code = ?: no such column: area_of_use_auth_name

I assume this is an error caused by an outdated version of GMT compared to proj.

None. That is managed by Ubuntu, not us. There are ways of selecting newer Ubuntu repositories but we always forget how that is done.

Dropping Ubuntu would be a step to consider.

Unfortunately dropping ubuntu is not a feasible option for most of us, especially considering most of the students I teach are now learning to use linux through WSL on windows, which defaults to Ubuntu. I understand your frustration though! Sounds like I need to go complain in their forum instead.

Eric

This must be an old version of Ubuntu? Even Debian 12 Bookworm released in June has GMT 6.4.0. And Debian is usually (very) slow (or stable, if you prefer that term).

(And Debian 11 Bullseye also had GMT > 6.0, so again, your Ubuntu must be old - time to upgrade?)

And final note; compiling GMT takes ~6 commands and 5-10 minutes to do (first time), so I think this is a nice thing to teach your students.

Thanks - I don’t think I realized that apt-get would find different versions of GMT depending on the Ubuntu version. I’m still on Ubuntu 20.04 LTS, I’ll try updating to 22.04 LTS and see if that changes what’s available.

Hi Eric!

In your case, I would make a youtube video like the one below showing how to build gmt on ubuntu.
It is in Indonesian but it is basically the same. You only have to use gmt 6.4 (or even the dev version). We are planning to make I video like that but I don’t think that would soon enough for your students.

Not sure how Ubuntu does things, but on Debian (which Ubuntu is based on), the available packet version(s) depends on the Debian version you’re using.

Thanks all! Indeed I found that Ubuntu 22.04 has GMT 6.3, while Ubuntu 23.04 has GMT 6.4. The various versions can be found by searching here - https://packages.ubuntu.com/. I learned something new today!

Thanks for the video too, Esteban! I’m sure we could build it from source but for me the value of a package manager like apt-get is that it makes the system more uniform and maintainable, and the whole system could be rebuilt identically in theory, with just a few commands. So I probably won’t go this route unless I absolutely have to. I’ve built GMT from source in the past though, many times!

2 Likes

One thing that is worth mentioning is that the Debian/Ubuntu GMTs don’t use the Shewchuk method in triangulate (for licensing reasons). This alone makes it worthwhile to compile a custom version for me. Compiling GMT is pretty easy, you can write a script which apt-gets the requisites, curl-downloads the code, sets up compile options, builds and installs; then pass that script around to students.

2 Likes

That is really ghrrrrr …
We should have some warning when triangulation is used in those systems.

For reference; dealt with in https://github.com/GenericMappingTools/gmt/pull/7666.

That change (though now merged) is technically incorrect, Shewchuk is excluded not because it is “not a GNU license”, rather that it explicitly prohibits inclusion in a commercial system:

Distribution of this code as part of a commercial system is permissible ONLY BY DIRECT ARRANGEMENT WITH THE AUTHOR.

That’s generally in deal-breaker in Linux distros, I can’t imagine that any could include such code.