From 3104b78fac1c97a4a677140e923b75d4bb9ce3c2 Mon Sep 17 00:00:00 2001 From: Valentin Churavy Date: Thu, 16 Dec 2021 19:45:54 -0500 Subject: [PATCH 1/5] MPI: Experimental platform tag --- .ci/Manifest.toml | 28 ++++++++++++++-------------- L/LAMMPS/build_tarballs.jl | 33 ++++++++++++++++++++++++++++++--- 2 files changed, 44 insertions(+), 17 deletions(-) diff --git a/.ci/Manifest.toml b/.ci/Manifest.toml index beb6a6b3641..be6bfb6775c 100644 --- a/.ci/Manifest.toml +++ b/.ci/Manifest.toml @@ -28,19 +28,19 @@ uuid = "2a0f44e3-6c83-55bd-87e4-b1978d98bd5f" [[BinaryBuilder]] deps = ["ArgParse", "BinaryBuilderBase", "Dates", "Downloads", "GitHub", "HTTP", "JLD2", "JSON", "LibGit2", "Libdl", "Logging", "LoggingExtras", "ObjectFile", "OutputCollectors", "Pkg", "PkgLicenses", "ProgressMeter", "REPL", "Random", "Registrator", "RegistryTools", "SHA", "Scratch", "Sockets", "UUIDs", "ghr_jll"] -git-tree-sha1 = "3412f6ef0e3dc3f4d4eda931f94f17a8cd9d1d3e" -repo-rev = "master" +git-tree-sha1 = "7ac8bbcb42151546dd4ec7d141529a9f2316e731" +repo-rev = "vc/augmented_platform" repo-url = "https://github.com/JuliaPackaging/BinaryBuilder.jl.git" uuid = "12aac903-9f7c-5d81-afc2-d9565ea332ae" version = "0.4.4" [[BinaryBuilderBase]] deps = ["CodecZlib", "Downloads", "InteractiveUtils", "JSON", "LibGit2", "Libdl", "Logging", "OutputCollectors", "Pkg", "Random", "SHA", "Scratch", "SimpleBufferStream", "TOML", "Tar", "UUIDs", "p7zip_jll", "pigz_jll"] -git-tree-sha1 = "6ea13175e9a30512805c9bf1599a628b397eac60" +git-tree-sha1 = "66c3eb2778203fb29254cfa1ba5a780c528f389f" repo-rev = "master" repo-url = "https://github.com/JuliaPackaging/BinaryBuilderBase.jl.git" uuid = "7f725544-6523-48cd-82d1-3fa08ff4056e" -version = "1.1.2" +version = "1.2.0" [[CodecZlib]] deps = ["TranscodingStreams", "Zlib_jll"] @@ -50,9 +50,9 @@ version = "0.7.0" [[Compat]] deps = ["Base64", "Dates", "DelimitedFiles", "Distributed", "InteractiveUtils", "LibGit2", "Libdl", "LinearAlgebra", "Markdown", "Mmap", "Pkg", "Printf", "REPL", "Random", "SHA", "Serialization", "SharedArrays", "Sockets", "SparseArrays", "Statistics", "Test", "UUIDs", "Unicode"] -git-tree-sha1 = "dce3e3fea680869eaa0b774b2e8343e9ff442313" +git-tree-sha1 = "44c37b4636bc54afac5c574d2d02b625349d6582" uuid = "34da2185-b29b-5c13-b0c7-acf172513d20" -version = "3.40.0" +version = "3.41.0" [[DataAPI]] git-tree-sha1 = "cc70b17275652eb47bc9e5f81635981f13cea5c8" @@ -61,9 +61,9 @@ version = "1.9.0" [[DataStructures]] deps = ["Compat", "InteractiveUtils", "OrderedCollections"] -git-tree-sha1 = "7d9d316f04214f7efdbb6398d545446e246eff02" +git-tree-sha1 = "3daef5523dd2e769dad2365274f760ff5f282c7d" uuid = "864edb3b-99cc-5e75-8d2d-829cb0a9cfe8" -version = "0.18.10" +version = "0.18.11" [[DataValueInterfaces]] git-tree-sha1 = "bfc1187b79289637fa0ef6d4436ebdfe6905cbd6" @@ -317,15 +317,15 @@ version = "1.2.9" [[RegistryTools]] deps = ["AutoHashEquals", "LibGit2", "Pkg", "SHA", "UUIDs"] -git-tree-sha1 = "e5bc4ecbdd55f030b9f2644aa4a625f34a868ea0" +git-tree-sha1 = "7ba3c65d4f40a399e5a2f0ec5abc89de871604e5" uuid = "d1eb7eb1-105f-429d-abf5-b0f65cb9e2c4" -version = "1.6.0" +version = "1.7.0" [[Requires]] deps = ["UUIDs"] -git-tree-sha1 = "4036a3bd08ac7e968e27c203d45f5fff15020621" +git-tree-sha1 = "8f82019e525f4d5c669692772a6f4b0a58b06a6a" uuid = "ae029012-a4dd-5104-9daa-d747884805df" -version = "1.1.3" +version = "1.2.0" [[SHA]] uuid = "ea8e919c-243c-51af-8825-aaa63cd721ce" @@ -383,9 +383,9 @@ version = "1.0.1" [[Tables]] deps = ["DataAPI", "DataValueInterfaces", "IteratorInterfaceExtensions", "LinearAlgebra", "TableTraits", "Test"] -git-tree-sha1 = "fed34d0e71b91734bf0a7e10eb1bb05296ddbcd0" +git-tree-sha1 = "bb1064c9a84c52e277f1096cf41434b675cd368b" uuid = "bd369af6-aec1-5ad0-b16a-f7cc5008161c" -version = "1.6.0" +version = "1.6.1" [[Tar]] deps = ["ArgTools", "SHA"] diff --git a/L/LAMMPS/build_tarballs.jl b/L/LAMMPS/build_tarballs.jl index bb8829e22b7..1729f92ef80 100644 --- a/L/LAMMPS/build_tarballs.jl +++ b/L/LAMMPS/build_tarballs.jl @@ -1,6 +1,7 @@ # 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 +using Base.BinaryPlatforms name = "LAMMPS" version = v"1.0.1" # Equivalent to 2020-10-29 @@ -58,12 +59,38 @@ products = [ ExecutableProduct("lmp", :lmp), ] +mpi_abis = ( + (:mpich, PackageSpec(name="MPICH_jll"), "") , + (:msmpi, PackageSpec(name="MicrosoftMPI_jll"), ""), + (:mpitrampoline, PackageSpec(name="MPItrampoline_jll"), "2") +) + # Dependencies that must be installed before this package can be built dependencies = [ Dependency(PackageSpec(name="CompilerSupportLibraries_jll")), - Dependency(PackageSpec(name="MPItrampoline_jll"), compat="2"), - Dependency(PackageSpec(name="MicrosoftMPI_jll")) + # Dependency(PackageSpec(name="MPIPlatformTag")), ] +all_platforms = AbstractPlatform[] +for (abi, pkg, compat) in mpi_abis + pkg_platforms = deepcopy(platforms) + foreach(pkg_platforms) do p + BinaryPlatforms.add_tag!(p.tags, "mpi", string(abi)) + end + append!(all_platforms, pkg_platforms) + push!(dependencies, Dependency(pkg; compat, platforms=pkg_platforms)) +end + +augmented_platform_block = """ + using Base.BinaryPlatforms + # using MPIPlatformTag + + function augmented_platform(platform) + abi = :mpich + # abi = MPIPlatformTag.get_abi() + BinaryPlatforms.add_tag!(platform.tags, "mpi", string(abi)) + return platform + end +""" # Build the tarballs, and possibly a `build.jl` as well. -build_tarballs(ARGS, name, version, sources, script, platforms, products, dependencies; julia_compat="1.6", preferred_gcc_version=v"8") +build_tarballs(ARGS, name, version, sources, script, all_platforms, products, dependencies; julia_compat="1.6", preferred_gcc_version=v"8") From 09461196b1b9fd42ffd5612fd7c7d60c59a7ad52 Mon Sep 17 00:00:00 2001 From: Valentin Churavy Date: Thu, 16 Dec 2021 20:00:09 -0500 Subject: [PATCH 2/5] fixup BBB --- .ci/Manifest.toml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.ci/Manifest.toml b/.ci/Manifest.toml index be6bfb6775c..8213d9efe05 100644 --- a/.ci/Manifest.toml +++ b/.ci/Manifest.toml @@ -36,8 +36,8 @@ version = "0.4.4" [[BinaryBuilderBase]] deps = ["CodecZlib", "Downloads", "InteractiveUtils", "JSON", "LibGit2", "Libdl", "Logging", "OutputCollectors", "Pkg", "Random", "SHA", "Scratch", "SimpleBufferStream", "TOML", "Tar", "UUIDs", "p7zip_jll", "pigz_jll"] -git-tree-sha1 = "66c3eb2778203fb29254cfa1ba5a780c528f389f" -repo-rev = "master" +git-tree-sha1 = "b96b146f55315b7432eb1034b8276afe21b6a4ac" +repo-rev = "vc/fixup" repo-url = "https://github.com/JuliaPackaging/BinaryBuilderBase.jl.git" uuid = "7f725544-6523-48cd-82d1-3fa08ff4056e" version = "1.2.0" From 4c5599ab5bab00ecc21bda7aae82c0af8f7c6837 Mon Sep 17 00:00:00 2001 From: Valentin Churavy Date: Thu, 16 Dec 2021 20:28:57 -0500 Subject: [PATCH 3/5] filter OS correctly --- L/LAMMPS/build_tarballs.jl | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/L/LAMMPS/build_tarballs.jl b/L/LAMMPS/build_tarballs.jl index 1729f92ef80..7d585120bdd 100644 --- a/L/LAMMPS/build_tarballs.jl +++ b/L/LAMMPS/build_tarballs.jl @@ -60,9 +60,9 @@ products = [ ] mpi_abis = ( - (:mpich, PackageSpec(name="MPICH_jll"), "") , - (:msmpi, PackageSpec(name="MicrosoftMPI_jll"), ""), - (:mpitrampoline, PackageSpec(name="MPItrampoline_jll"), "2") + (:mpich, PackageSpec(name="MPICH_jll"), "", !Sys.iswindows) , + (:msmpi, PackageSpec(name="MicrosoftMPI_jll"), "", Sys.iswindows), + (:mpitrampoline, PackageSpec(name="MPItrampoline_jll"), "2", !Sys.iswindows) ) # Dependencies that must be installed before this package can be built @@ -72,8 +72,8 @@ dependencies = [ ] all_platforms = AbstractPlatform[] -for (abi, pkg, compat) in mpi_abis - pkg_platforms = deepcopy(platforms) +for (abi, pkg, compat, f) in mpi_abis + pkg_platforms = deepcopy(filter(f, platforms)) foreach(pkg_platforms) do p BinaryPlatforms.add_tag!(p.tags, "mpi", string(abi)) end From 12cbca588676629de34a02511183b17a198d5740 Mon Sep 17 00:00:00 2001 From: Valentin Churavy Date: Fri, 17 Dec 2021 19:42:20 -0500 Subject: [PATCH 4/5] use MPIABI --- L/LAMMPS/build_tarballs.jl | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/L/LAMMPS/build_tarballs.jl b/L/LAMMPS/build_tarballs.jl index 7d585120bdd..c9e1c80beec 100644 --- a/L/LAMMPS/build_tarballs.jl +++ b/L/LAMMPS/build_tarballs.jl @@ -60,15 +60,16 @@ products = [ ] mpi_abis = ( - (:mpich, PackageSpec(name="MPICH_jll"), "", !Sys.iswindows) , - (:msmpi, PackageSpec(name="MicrosoftMPI_jll"), "", Sys.iswindows), - (:mpitrampoline, PackageSpec(name="MPItrampoline_jll"), "2", !Sys.iswindows) + (:MPICH, PackageSpec(name="MPICH_jll"), "", !Sys.iswindows) , + # (:OpenMPI, PackageSpec(name="OpenMPI"), "", !Sys.iswindows), + (:MicrosoftMPI, PackageSpec(name="MicrosoftMPI_jll"), "", Sys.iswindows), + (:MPITrampoline, PackageSpec(name="MPItrampoline_jll"), "2", !Sys.iswindows) ) # Dependencies that must be installed before this package can be built dependencies = [ Dependency(PackageSpec(name="CompilerSupportLibraries_jll")), - # Dependency(PackageSpec(name="MPIPlatformTag")), + Dependency(PackageSpec(name="MPIABI")), ] all_platforms = AbstractPlatform[] @@ -81,16 +82,15 @@ for (abi, pkg, compat, f) in mpi_abis push!(dependencies, Dependency(pkg; compat, platforms=pkg_platforms)) end -augmented_platform_block = """ - using Base.BinaryPlatforms - # using MPIPlatformTag +augment_platform_block = """ +using Base.BinaryPlatforms +import MPIABI - function augmented_platform(platform) - abi = :mpich - # abi = MPIPlatformTag.get_abi() - BinaryPlatforms.add_tag!(platform.tags, "mpi", string(abi)) - return platform - end +function augment_platform!(platform) + abi = MPIABI.abi + BinaryPlatforms.add_tag!(platform.tags, "mpi", string(abi)) + return platform +end """ # Build the tarballs, and possibly a `build.jl` as well. -build_tarballs(ARGS, name, version, sources, script, all_platforms, products, dependencies; julia_compat="1.6", preferred_gcc_version=v"8") +build_tarballs(ARGS, name, version, sources, script, all_platforms, products, dependencies; julia_compat="1.6", preferred_gcc_version=v"8", augment_platform_block) From c26ee64d7398b66f9031861a21800f2d2d8b23cc Mon Sep 17 00:00:00 2001 From: Valentin Churavy Date: Sat, 18 Dec 2021 12:57:15 -0500 Subject: [PATCH 5/5] Use branches with fixes --- .ci/Manifest.toml | 22 ++++++++++++---------- .ci/Project.toml | 1 + 2 files changed, 13 insertions(+), 10 deletions(-) diff --git a/.ci/Manifest.toml b/.ci/Manifest.toml index 8213d9efe05..7ffdf9612db 100644 --- a/.ci/Manifest.toml +++ b/.ci/Manifest.toml @@ -27,8 +27,8 @@ version = "0.2.0" uuid = "2a0f44e3-6c83-55bd-87e4-b1978d98bd5f" [[BinaryBuilder]] -deps = ["ArgParse", "BinaryBuilderBase", "Dates", "Downloads", "GitHub", "HTTP", "JLD2", "JSON", "LibGit2", "Libdl", "Logging", "LoggingExtras", "ObjectFile", "OutputCollectors", "Pkg", "PkgLicenses", "ProgressMeter", "REPL", "Random", "Registrator", "RegistryTools", "SHA", "Scratch", "Sockets", "UUIDs", "ghr_jll"] -git-tree-sha1 = "7ac8bbcb42151546dd4ec7d141529a9f2316e731" +deps = ["ArgParse", "BinaryBuilderBase", "Dates", "Downloads", "GitHub", "HTTP", "JLD2", "JLLWrappers", "JSON", "LibGit2", "Libdl", "Logging", "LoggingExtras", "ObjectFile", "OutputCollectors", "Pkg", "PkgLicenses", "ProgressMeter", "REPL", "Random", "Registrator", "RegistryTools", "SHA", "Scratch", "Sockets", "UUIDs", "ghr_jll"] +git-tree-sha1 = "30b779f7441ce3fc755e0164c2e577a711205803" repo-rev = "vc/augmented_platform" repo-url = "https://github.com/JuliaPackaging/BinaryBuilder.jl.git" uuid = "12aac903-9f7c-5d81-afc2-d9565ea332ae" @@ -36,8 +36,8 @@ version = "0.4.4" [[BinaryBuilderBase]] deps = ["CodecZlib", "Downloads", "InteractiveUtils", "JSON", "LibGit2", "Libdl", "Logging", "OutputCollectors", "Pkg", "Random", "SHA", "Scratch", "SimpleBufferStream", "TOML", "Tar", "UUIDs", "p7zip_jll", "pigz_jll"] -git-tree-sha1 = "b96b146f55315b7432eb1034b8276afe21b6a4ac" -repo-rev = "vc/fixup" +git-tree-sha1 = "73a13427284bc99cecaf2fb26f67a1a199cc3a0e" +repo-rev = "master" repo-url = "https://github.com/JuliaPackaging/BinaryBuilderBase.jl.git" uuid = "7f725544-6523-48cd-82d1-3fa08ff4056e" version = "1.2.0" @@ -141,15 +141,17 @@ version = "1.0.0" [[JLD2]] deps = ["DataStructures", "FileIO", "MacroTools", "Mmap", "Pkg", "Printf", "Reexport", "TranscodingStreams", "UUIDs"] -git-tree-sha1 = "46b7834ec8165c541b0b5d1c8ba63ec940723ffb" +git-tree-sha1 = "5335c4c9a30b4b823d1776d2db09882cbfac9f1e" uuid = "033835bb-8acc-5ee8-8aae-3f567f8a3819" -version = "0.4.15" +version = "0.4.16" [[JLLWrappers]] deps = ["Preferences"] -git-tree-sha1 = "642a199af8b68253517b80bd3bfd17eb4e84df6e" +git-tree-sha1 = "25f34ab356ede03701066def0c5be9bd491fe851" +repo-rev = "vc/platform_tags" +repo-url = "https://github.com/JuliaPackaging/JLLWrappers.jl.git" uuid = "692b3bcd-3c85-4b1f-b108-f13ce0eb3210" -version = "1.3.0" +version = "1.4.0" [[JSON]] deps = ["Dates", "Mmap", "Parsers", "Unicode"] @@ -260,9 +262,9 @@ version = "0.1.0" [[Parsers]] deps = ["Dates"] -git-tree-sha1 = "ae4bbcadb2906ccc085cf52ac286dc1377dceccc" +git-tree-sha1 = "d7fa6237da8004be601e19bd6666083056649918" uuid = "69de0a69-1ddd-5017-9359-2bf0b02dc9f0" -version = "2.1.2" +version = "2.1.3" [[Pidfile]] deps = ["FileWatching", "Test"] diff --git a/.ci/Project.toml b/.ci/Project.toml index 6874879878c..e11d33ba0df 100644 --- a/.ci/Project.toml +++ b/.ci/Project.toml @@ -3,6 +3,7 @@ BinaryBuilder = "12aac903-9f7c-5d81-afc2-d9565ea332ae" BinaryBuilderBase = "7f725544-6523-48cd-82d1-3fa08ff4056e" Dates = "ade2ca70-3891-5945-98fb-dc099432e06a" Downloads = "f43a241f-c20a-4ad4-852c-f6b1247861c6" +JLLWrappers = "692b3bcd-3c85-4b1f-b108-f13ce0eb3210" Pkg = "44cfe95a-1eb2-52ea-b672-e2afdf69b78f" Registrator = "4418983a-e44d-11e8-3aec-9789530b3b3e" RegistryTools = "d1eb7eb1-105f-429d-abf5-b0f65cb9e2c4"