From ce1f2b1e4e241f7ab5f3fc313a0241d4156aeac4 Mon Sep 17 00:00:00 2001 From: Maarten Pronk Date: Thu, 19 Sep 2024 10:17:24 +0200 Subject: [PATCH 01/15] Add MEOS build recipe. --- M/MEOS/build_tarballs.jl | 41 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 M/MEOS/build_tarballs.jl diff --git a/M/MEOS/build_tarballs.jl b/M/MEOS/build_tarballs.jl new file mode 100644 index 00000000000..122d7bdb2ab --- /dev/null +++ b/M/MEOS/build_tarballs.jl @@ -0,0 +1,41 @@ +# Note that this script can accept some limited command-line arguments, run +# `julia build_tarballs.jl --help` to see a usage message. +using BinaryBuilder, Pkg + +name = "MEOS" +version = v"1.1.1" + +# Collection of sources required to complete build +sources = [ + GitSource("https://github.com/MobilityDB/MobilityDB.git", "4273bdd4f70ee6fb8b28cd269385d83da6eeba31") +] + +# Bash recipe for building across all platforms +script = raw""" +cd $WORKSPACE/srcdir/MobilityDB + +cmake -S -DCMAKE_INSTALL_PREFIX=${prefix} -DCMAKE_TOOLCHAIN_FILE=${CMAKE_TARGET_TOOLCHAIN} -DCMAKE_BUILD_TYPE=Release -DMEOS=ON +cmake -B build -DCMAKE_INSTALL_PREFIX=${prefix} -DCMAKE_TOOLCHAIN_FILE=${CMAKE_TARGET_TOOLCHAIN} -DCMAKE_BUILD_TYPE=Release -DMEOS=ON +cmake --build build --parallel ${nproc} +cmake --install build +""" + +# These are the platforms we will build for by default, unless further +# platforms are passed in on the command line +platforms = supported_platforms(; experimental=true) + +# The products that we will ensure are always built +products = [ + LibraryProduct("libmeos", :libmeos) +] + +# Dependencies that must be installed before this package can be built +dependencies = [ + Dependency(PackageSpec(name="GEOS_jll", uuid="d604d12d-fa86-5845-992e-78dc15976526")) + Dependency(PackageSpec(name="JSON_C_jll", uuid="9cdfc4e7-e793-5089-b6f7-569a57a60f0a")) + Dependency(PackageSpec(name="Proj_jll", uuid="58948b4f-47e0-5654-a9ad-f609743f8632")) + Dependency(PackageSpec(name="GSL_jll", uuid="1b77fbbe-d8ee-58f0-85f9-836ddc23a7a4")) +] + +# Build the tarballs, and possibly a `build.jl` as well. +build_tarballs(ARGS, name, version, sources, script, platforms, products, dependencies; julia_compat="1.6") From aa09bf5cd30c0a1a04beb86972d71d01c2563d1a Mon Sep 17 00:00:00 2001 From: Maarten Pronk Date: Thu, 19 Sep 2024 10:19:55 +0200 Subject: [PATCH 02/15] Remove duplicate line. --- M/MEOS/build_tarballs.jl | 1 - 1 file changed, 1 deletion(-) diff --git a/M/MEOS/build_tarballs.jl b/M/MEOS/build_tarballs.jl index 122d7bdb2ab..74054fe0f0b 100644 --- a/M/MEOS/build_tarballs.jl +++ b/M/MEOS/build_tarballs.jl @@ -14,7 +14,6 @@ sources = [ script = raw""" cd $WORKSPACE/srcdir/MobilityDB -cmake -S -DCMAKE_INSTALL_PREFIX=${prefix} -DCMAKE_TOOLCHAIN_FILE=${CMAKE_TARGET_TOOLCHAIN} -DCMAKE_BUILD_TYPE=Release -DMEOS=ON cmake -B build -DCMAKE_INSTALL_PREFIX=${prefix} -DCMAKE_TOOLCHAIN_FILE=${CMAKE_TARGET_TOOLCHAIN} -DCMAKE_BUILD_TYPE=Release -DMEOS=ON cmake --build build --parallel ${nproc} cmake --install build From c5723a1d5d62d611e4108ef8cf0b161fd01c1a6c Mon Sep 17 00:00:00 2001 From: Maarten Pronk Date: Thu, 19 Sep 2024 20:07:41 +0200 Subject: [PATCH 03/15] Expand cxx, compat for GSL. --- M/MEOS/build_tarballs.jl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/M/MEOS/build_tarballs.jl b/M/MEOS/build_tarballs.jl index 74054fe0f0b..36bcdf1e711 100644 --- a/M/MEOS/build_tarballs.jl +++ b/M/MEOS/build_tarballs.jl @@ -21,7 +21,7 @@ cmake --install build # These are the platforms we will build for by default, unless further # platforms are passed in on the command line -platforms = supported_platforms(; experimental=true) +platforms = expand_cxxstring_abis(supported_platforms()) # The products that we will ensure are always built products = [ @@ -33,7 +33,7 @@ dependencies = [ Dependency(PackageSpec(name="GEOS_jll", uuid="d604d12d-fa86-5845-992e-78dc15976526")) Dependency(PackageSpec(name="JSON_C_jll", uuid="9cdfc4e7-e793-5089-b6f7-569a57a60f0a")) Dependency(PackageSpec(name="Proj_jll", uuid="58948b4f-47e0-5654-a9ad-f609743f8632")) - Dependency(PackageSpec(name="GSL_jll", uuid="1b77fbbe-d8ee-58f0-85f9-836ddc23a7a4")) + Dependency(PackageSpec(name="GSL_jll", uuid="1b77fbbe-d8ee-58f0-85f9-836ddc23a7a4"); compat="~2.7.2") ] # Build the tarballs, and possibly a `build.jl` as well. From 89c35260dda1700567cdb2653e46af603dc6f9e9 Mon Sep 17 00:00:00 2001 From: Maarten Pronk Date: Tue, 24 Sep 2024 13:51:23 +0200 Subject: [PATCH 04/15] Set gcc to v8. --- M/MEOS/build_tarballs.jl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/M/MEOS/build_tarballs.jl b/M/MEOS/build_tarballs.jl index 36bcdf1e711..020025846f1 100644 --- a/M/MEOS/build_tarballs.jl +++ b/M/MEOS/build_tarballs.jl @@ -37,4 +37,4 @@ dependencies = [ ] # Build the tarballs, and possibly a `build.jl` as well. -build_tarballs(ARGS, name, version, sources, script, platforms, products, dependencies; julia_compat="1.6") +build_tarballs(ARGS, name, version, sources, script, platforms, products, dependencies; julia_compat="1.6", preferred_gcc_version=v"8") From a19de8112c02466e3048a5246845d94d9a7b9031 Mon Sep 17 00:00:00 2001 From: Maarten Pronk Date: Thu, 26 Sep 2024 22:29:28 +0200 Subject: [PATCH 05/15] Typo in PROJ. Fix cross-compile try run. Use rc1. --- M/MEOS/build_tarballs.jl | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/M/MEOS/build_tarballs.jl b/M/MEOS/build_tarballs.jl index 020025846f1..5a9a4f1f8bb 100644 --- a/M/MEOS/build_tarballs.jl +++ b/M/MEOS/build_tarballs.jl @@ -3,18 +3,18 @@ using BinaryBuilder, Pkg name = "MEOS" -version = v"1.1.1" +version = v"1.2.0" # Collection of sources required to complete build sources = [ - GitSource("https://github.com/MobilityDB/MobilityDB.git", "4273bdd4f70ee6fb8b28cd269385d83da6eeba31") + GitSource("https://github.com/MobilityDB/MobilityDB.git", "b5dfee7083beb85de772767971d52745f9b200ad") ] # Bash recipe for building across all platforms script = raw""" cd $WORKSPACE/srcdir/MobilityDB -cmake -B build -DCMAKE_INSTALL_PREFIX=${prefix} -DCMAKE_TOOLCHAIN_FILE=${CMAKE_TARGET_TOOLCHAIN} -DCMAKE_BUILD_TYPE=Release -DMEOS=ON +cmake -B build -DCMAKE_INSTALL_PREFIX=${prefix} -DCMAKE_TOOLCHAIN_FILE=${CMAKE_TARGET_TOOLCHAIN} -DCMAKE_BUILD_TYPE=Release -DMEOS=ON -DHAVE_X86_64_POPCNTQ_EXITCODE="FAILED_TO_RUN" -DHAVE_X86_64_POPCNTQ_EXITCODE__TRYRUN_OUTPUT= cmake --build build --parallel ${nproc} cmake --install build """ @@ -32,7 +32,7 @@ products = [ dependencies = [ Dependency(PackageSpec(name="GEOS_jll", uuid="d604d12d-fa86-5845-992e-78dc15976526")) Dependency(PackageSpec(name="JSON_C_jll", uuid="9cdfc4e7-e793-5089-b6f7-569a57a60f0a")) - Dependency(PackageSpec(name="Proj_jll", uuid="58948b4f-47e0-5654-a9ad-f609743f8632")) + Dependency(PackageSpec(name="PROJ_jll", uuid="58948b4f-47e0-5654-a9ad-f609743f8632")) Dependency(PackageSpec(name="GSL_jll", uuid="1b77fbbe-d8ee-58f0-85f9-836ddc23a7a4"); compat="~2.7.2") ] From 62c27c5a499ee5ad62bd666dbdbff2d6d44260cf Mon Sep 17 00:00:00 2001 From: Maarten Pronk Date: Fri, 27 Sep 2024 09:54:12 +0200 Subject: [PATCH 06/15] Drop platforms without support for __int128. --- M/MEOS/build_tarballs.jl | 3 +++ 1 file changed, 3 insertions(+) diff --git a/M/MEOS/build_tarballs.jl b/M/MEOS/build_tarballs.jl index 5a9a4f1f8bb..dd19668cb3e 100644 --- a/M/MEOS/build_tarballs.jl +++ b/M/MEOS/build_tarballs.jl @@ -22,6 +22,9 @@ cmake --install build # These are the platforms we will build for by default, unless further # platforms are passed in on the command line platforms = expand_cxxstring_abis(supported_platforms()) +filter!(x -> arch(x) != "i686", platforms) # __int128 not supported on i686 +filter!(x -> !startswith(arch(x), "armv"), platforms) # __int128 not supported on armv + # The products that we will ensure are always built products = [ From 0a9ef7686e83f91b7d4e198ba99caee39a9594e4 Mon Sep 17 00:00:00 2001 From: Maarten Pronk Date: Fri, 27 Sep 2024 13:46:08 +0200 Subject: [PATCH 07/15] Style update Co-authored-by: Ian McInerney --- M/MEOS/build_tarballs.jl | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/M/MEOS/build_tarballs.jl b/M/MEOS/build_tarballs.jl index dd19668cb3e..a97939df8f2 100644 --- a/M/MEOS/build_tarballs.jl +++ b/M/MEOS/build_tarballs.jl @@ -14,7 +14,13 @@ sources = [ script = raw""" cd $WORKSPACE/srcdir/MobilityDB -cmake -B build -DCMAKE_INSTALL_PREFIX=${prefix} -DCMAKE_TOOLCHAIN_FILE=${CMAKE_TARGET_TOOLCHAIN} -DCMAKE_BUILD_TYPE=Release -DMEOS=ON -DHAVE_X86_64_POPCNTQ_EXITCODE="FAILED_TO_RUN" -DHAVE_X86_64_POPCNTQ_EXITCODE__TRYRUN_OUTPUT= +cmake -B build \ + -DCMAKE_INSTALL_PREFIX=${prefix} \ + -DCMAKE_TOOLCHAIN_FILE=${CMAKE_TARGET_TOOLCHAIN} \ + -DCMAKE_BUILD_TYPE=Release \ + -DMEOS=ON \ + -DHAVE_X86_64_POPCNTQ_EXITCODE="FAILED_TO_RUN" \ + -DHAVE_X86_64_POPCNTQ_EXITCODE__TRYRUN_OUTPUT= cmake --build build --parallel ${nproc} cmake --install build """ From 5da9f1eb062b9704c2350cc5338bd138988e08ce Mon Sep 17 00:00:00 2001 From: Maarten Pronk Date: Fri, 27 Sep 2024 15:42:40 +0200 Subject: [PATCH 08/15] Drop FreeBSD aarch64 because it's missing most deps. --- M/MEOS/build_tarballs.jl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/M/MEOS/build_tarballs.jl b/M/MEOS/build_tarballs.jl index a97939df8f2..0dd609eee7b 100644 --- a/M/MEOS/build_tarballs.jl +++ b/M/MEOS/build_tarballs.jl @@ -30,7 +30,7 @@ cmake --install build platforms = expand_cxxstring_abis(supported_platforms()) filter!(x -> arch(x) != "i686", platforms) # __int128 not supported on i686 filter!(x -> !startswith(arch(x), "armv"), platforms) # __int128 not supported on armv - +filter!(!=(Platform("aarch64", "freebsd")), platforms) # Misses most dependencies # The products that we will ensure are always built products = [ From d84d2dae7fc986dbfa699bae9ca88e56273a6875 Mon Sep 17 00:00:00 2001 From: Maarten Pronk Date: Fri, 4 Oct 2024 21:25:23 +0200 Subject: [PATCH 09/15] Change to latest master. --- M/MEOS/build_tarballs.jl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/M/MEOS/build_tarballs.jl b/M/MEOS/build_tarballs.jl index 0dd609eee7b..3c005d7a26a 100644 --- a/M/MEOS/build_tarballs.jl +++ b/M/MEOS/build_tarballs.jl @@ -7,7 +7,7 @@ version = v"1.2.0" # Collection of sources required to complete build sources = [ - GitSource("https://github.com/MobilityDB/MobilityDB.git", "b5dfee7083beb85de772767971d52745f9b200ad") + GitSource("https://github.com/MobilityDB/MobilityDB.git", "f4f32777d4b7a2ef32e7c52b3992330fe49418a4") ] # Bash recipe for building across all platforms From aaa0af68f061179e66a75ef07e4cb284b5a700bb Mon Sep 17 00:00:00 2001 From: Maarten Pronk Date: Sun, 20 Oct 2024 16:17:38 +0200 Subject: [PATCH 10/15] Update to released 1.2.0 version. --- M/MEOS/build_tarballs.jl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/M/MEOS/build_tarballs.jl b/M/MEOS/build_tarballs.jl index 3c005d7a26a..da36a25056e 100644 --- a/M/MEOS/build_tarballs.jl +++ b/M/MEOS/build_tarballs.jl @@ -7,7 +7,7 @@ version = v"1.2.0" # Collection of sources required to complete build sources = [ - GitSource("https://github.com/MobilityDB/MobilityDB.git", "f4f32777d4b7a2ef32e7c52b3992330fe49418a4") + GitSource("https://github.com/MobilityDB/MobilityDB.git", "60048b5b4b7ce2f7560c024d1af024db73b3bd5b") ] # Bash recipe for building across all platforms From f90c20d60209204ee979581f29d8653552e86cd4 Mon Sep 17 00:00:00 2001 From: Maarten Pronk Date: Wed, 23 Oct 2024 14:57:24 +0200 Subject: [PATCH 11/15] Explain the apparent mismatch between MEOS and the MobilityDB git. --- M/MEOS/build_tarballs.jl | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/M/MEOS/build_tarballs.jl b/M/MEOS/build_tarballs.jl index da36a25056e..515d0984f89 100644 --- a/M/MEOS/build_tarballs.jl +++ b/M/MEOS/build_tarballs.jl @@ -5,7 +5,8 @@ using BinaryBuilder, Pkg name = "MEOS" version = v"1.2.0" -# Collection of sources required to complete build +# MEOS (Mobility Engine, Open Source) is a standalone C library and the core component of MobilityDB. +# For further information, see https://libmeos.org sources = [ GitSource("https://github.com/MobilityDB/MobilityDB.git", "60048b5b4b7ce2f7560c024d1af024db73b3bd5b") ] From 7388a6cf3da5f16322a06d0a455b7a91b53be727 Mon Sep 17 00:00:00 2001 From: Maarten Pronk Date: Wed, 6 Nov 2024 23:23:14 +0100 Subject: [PATCH 12/15] Pin GEOS and PROJ. --- M/MEOS/build_tarballs.jl | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/M/MEOS/build_tarballs.jl b/M/MEOS/build_tarballs.jl index 515d0984f89..67240a7db3a 100644 --- a/M/MEOS/build_tarballs.jl +++ b/M/MEOS/build_tarballs.jl @@ -6,7 +6,7 @@ name = "MEOS" version = v"1.2.0" # MEOS (Mobility Engine, Open Source) is a standalone C library and the core component of MobilityDB. -# For further information, see https://libmeos.org +# For further information, see https://libmeos.org. sources = [ GitSource("https://github.com/MobilityDB/MobilityDB.git", "60048b5b4b7ce2f7560c024d1af024db73b3bd5b") ] @@ -40,9 +40,9 @@ products = [ # Dependencies that must be installed before this package can be built dependencies = [ - Dependency(PackageSpec(name="GEOS_jll", uuid="d604d12d-fa86-5845-992e-78dc15976526")) + Dependency(PackageSpec(name="GEOS_jll", uuid="d604d12d-fa86-5845-992e-78dc15976526"); compat="~3.9"); Dependency(PackageSpec(name="JSON_C_jll", uuid="9cdfc4e7-e793-5089-b6f7-569a57a60f0a")) - Dependency(PackageSpec(name="PROJ_jll", uuid="58948b4f-47e0-5654-a9ad-f609743f8632")) + Dependency(PackageSpec(name="PROJ_jll", uuid="58948b4f-47e0-5654-a9ad-f609743f8632"); compat="~902.5"); Dependency(PackageSpec(name="GSL_jll", uuid="1b77fbbe-d8ee-58f0-85f9-836ddc23a7a4"); compat="~2.7.2") ] From 2794d968b8d4a19c324f473cfd58cf93c1ae09c6 Mon Sep 17 00:00:00 2001 From: Maarten Pronk Date: Wed, 6 Nov 2024 23:37:03 +0100 Subject: [PATCH 13/15] Pin GEOS and PROJ correctly. --- M/MEOS/build_tarballs.jl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/M/MEOS/build_tarballs.jl b/M/MEOS/build_tarballs.jl index 67240a7db3a..6211375db95 100644 --- a/M/MEOS/build_tarballs.jl +++ b/M/MEOS/build_tarballs.jl @@ -42,7 +42,7 @@ products = [ dependencies = [ Dependency(PackageSpec(name="GEOS_jll", uuid="d604d12d-fa86-5845-992e-78dc15976526"); compat="~3.9"); Dependency(PackageSpec(name="JSON_C_jll", uuid="9cdfc4e7-e793-5089-b6f7-569a57a60f0a")) - Dependency(PackageSpec(name="PROJ_jll", uuid="58948b4f-47e0-5654-a9ad-f609743f8632"); compat="~902.5"); + Dependency(PackageSpec(name="PROJ_jll", uuid="58948b4f-47e0-5654-a9ad-f609743f8632"); compat="~902.500"); Dependency(PackageSpec(name="GSL_jll", uuid="1b77fbbe-d8ee-58f0-85f9-836ddc23a7a4"); compat="~2.7.2") ] From 29356c396fb21bcab1925c59fb80a2405cca15f9 Mon Sep 17 00:00:00 2001 From: Maarten Pronk Date: Wed, 6 Nov 2024 23:55:10 +0100 Subject: [PATCH 14/15] Up GEOS. --- M/MEOS/build_tarballs.jl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/M/MEOS/build_tarballs.jl b/M/MEOS/build_tarballs.jl index 6211375db95..fe3f506554f 100644 --- a/M/MEOS/build_tarballs.jl +++ b/M/MEOS/build_tarballs.jl @@ -40,7 +40,7 @@ products = [ # Dependencies that must be installed before this package can be built dependencies = [ - Dependency(PackageSpec(name="GEOS_jll", uuid="d604d12d-fa86-5845-992e-78dc15976526"); compat="~3.9"); + Dependency(PackageSpec(name="GEOS_jll", uuid="d604d12d-fa86-5845-992e-78dc15976526"); compat="^3.10"); Dependency(PackageSpec(name="JSON_C_jll", uuid="9cdfc4e7-e793-5089-b6f7-569a57a60f0a")) Dependency(PackageSpec(name="PROJ_jll", uuid="58948b4f-47e0-5654-a9ad-f609743f8632"); compat="~902.500"); Dependency(PackageSpec(name="GSL_jll", uuid="1b77fbbe-d8ee-58f0-85f9-836ddc23a7a4"); compat="~2.7.2") From 69f866fe8e83a545c38f07cb32cf75f0f27c8a57 Mon Sep 17 00:00:00 2001 From: Maarten Pronk Date: Thu, 7 Nov 2024 00:16:23 +0100 Subject: [PATCH 15/15] Ping GEOS to 3.13. --- M/MEOS/build_tarballs.jl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/M/MEOS/build_tarballs.jl b/M/MEOS/build_tarballs.jl index fe3f506554f..561bf37de99 100644 --- a/M/MEOS/build_tarballs.jl +++ b/M/MEOS/build_tarballs.jl @@ -40,7 +40,7 @@ products = [ # Dependencies that must be installed before this package can be built dependencies = [ - Dependency(PackageSpec(name="GEOS_jll", uuid="d604d12d-fa86-5845-992e-78dc15976526"); compat="^3.10"); + Dependency(PackageSpec(name="GEOS_jll", uuid="d604d12d-fa86-5845-992e-78dc15976526"); compat="~3.13"); Dependency(PackageSpec(name="JSON_C_jll", uuid="9cdfc4e7-e793-5089-b6f7-569a57a60f0a")) Dependency(PackageSpec(name="PROJ_jll", uuid="58948b4f-47e0-5654-a9ad-f609743f8632"); compat="~902.500"); Dependency(PackageSpec(name="GSL_jll", uuid="1b77fbbe-d8ee-58f0-85f9-836ddc23a7a4"); compat="~2.7.2")