Skip to content

Undocumented dependency on GNAT 14? #5

@ulahello

Description

@ulahello

Hello,
I ran into a compile error in a dependency while installing gnatformat with GNAT 13, while using GNAT 14 worked perfectly. If gnatformat does depend on GNAT 14 then I figured it would be worth documenting if other people run into this. I checked the manual, but didn't see anything relevant aside from "have GNATPro installed".

To reproduce

$ nix-shell --pure -p gnat13 gnat13Packages.gprbuild alire libiconv gmp gmp.dev pkg-config unzip curl cacert git

[nix-shell:~]$ gnat --version
GNAT 13.3.0
Copyright (C) 1996-2023, Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

[nix-shell:~]$ alr toolchain --select
Welcome to the toolchain selection assistant

In this assistant you can set up the default toolchain to be used with any crate
that does not specify its own top-level dependency on a version of gnat or
gprbuild.

If you choose "None", Alire will use whatever version is found in the
environment.

ⓘ Currently configured: gnat_external=13.3.0

Please select the gnat version for use with this configuration
  1. gnat_native=14.2.1
  2. None
  3. gnat_external=13.3.0 [Detected at (...)dg75xs88004jbrbgfnx11y1w8w-gnat-wrapper-13.3.0/bin/gnat]
  4. gnat_arm_elf=14.2.1
  5. gnat_avr_elf=14.2.1
  6. gnat_riscv64_elf=14.2.1
  7. gnat_xtensa_esp32_elf=14.2.1
  8. gnat_arm_elf=14.1.3
  9. gnat_avr_elf=14.1.3
  0. gnat_native=14.1.3
  a. (See more choices...)
Enter your choice index (first is default):
> 3
ⓘ Selected tool version gnat_external=13.3.0

ⓘ Choices for the following tool are narrowed down to releases compatible with just selected gnat_external=13.3.0

ⓘ Currently configured: gprbuild=18.0.0

Please select the gprbuild version for use with this configuration
  1. gprbuild=18.0.0 [Detected at (...)lpws58krs2hdwr102ggv53ynv0-gprbuild-25.0.0/bin/gprbuild]
  2. None
Enter your choice index (first is default):
> 1
ⓘ Selected tool version gprbuild=18.0.0



[nix-shell:~]$ alr get --build gnatformat
                                                                                                          ◷ Solving dependencies: 45.45% solved (5/11 deps, 17/58 solutions left)... Looking for external crate: lib                                                                                                          ◷ Solving dependencies: 45.45% solved (5/11 deps, 17/58 solutions left)... Looking for external crate: lib                                                                                                          ◷ Solving dependencies: 45.45% solved (5/11 deps, 17/58 solutions left)... Looking for external crate: lib                                                                                                          warn:
warn:    New solution is incomplete.
warn:    +        adasat          25.0.0 (new)
warn:    +📦      gnat            14.2.1 (new,gnat_native,indirect,binary)
warn:    +        gnatcoll        25.0.0 (new)
warn:    +        gnatcoll_gmp    25.0.0 (new,indirect)
warn:    +        gnatcoll_iconv  25.0.0 (new,indirect)
warn:    +        langkit_support 25.0.0 (new,indirect)
warn:    +        libadalang      25.0.0 (new)
warn:    +        libgpr          25.0.0 (new,indirect)
warn:    +        libgpr2         25.0.0 (new,indirect)
warn:    +        prettier_ada    25.0.0 (new)
warn:    +        vss             25.0.0 (new,indirect)
warn:    +        xmlada          25.0.0 (new,indirect)
warn:    Missing:
warn:    +❗      libgmp          *      (new,indirect,missing)
warn:
warn: Could not find a complete solution for gnatformat=25.0.0
Build will fail unless externals are made available, do you want to continue?
[Y] Yes  [N] No  (default is No) y
ⓘ Deploying gnatformat=25.0.0...
     -=O=-     #     #      #      #
warn: The following external dependencies are unavailable within Alire:
warn:    libgmp*
warn: Index 'community' version (1.3.0) is older than the newest supported by alr (1.4.0)
warn: You can disable this warning with settings key 'warning.old_index'
ⓘ If you experience any problems loading this index, you may need to reset the community index with 'alr index --reset-community'. Note that this operation will delete any local changes to the community index.
warn: They should be made available in the environment by the user.
warn: Generating possibly incomplete configuration because of missing dependencies
◴ Syncing build dir... warn: Generating possibly incomplete environment because of missing dependencies
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            ⓘ Running post-fetch actions for xmlada=25.0.0...
checking build system type... x86_64-pc-linux-gnu
checking host system type... x86_64-pc-linux-gnu
checking target system type... x86_64-pc-linux-gnu
checking whether gnat can build shared libs... yes
checking for a BSD-compatible install... /nix/store/vz67zaqyfln2jcqwar682kdlrxfx9vq1-coreutils-9.6/bin/install -c
checking whether ln -s works... yes
configure: creating ./config.status
config.status: creating xmlada_shared.gpr
config.status: creating Makefile
config.status: creating tests/dom/default.gpr
ⓘ Building gnatformat=25.0.0/gnat/gnatformat_driver.gpr...
Setup
   [mkdir]        object directory for project GNATCOLL_Minimal
   [mkdir]        library directory for project GNATCOLL_Minimal
   [mkdir]        object directory for project GNATCOLL_Core
   [mkdir]        library directory for project GNATCOLL_Core
   [mkdir]        object directory for project XmlAda_Sax
   [mkdir]        library directory for project XmlAda_Sax
   [mkdir]        object directory for project XmlAda_Schema
   [mkdir]        object directory for project GPR
   [mkdir]        library directory for project GPR
   [mkdir]        object directory for project GNATCOLL_Projects
   [mkdir]        library directory for project GNATCOLL_Projects
   [mkdir]        object directory for project GnatColl_GMP
   [mkdir]        library directory for project GnatColl_GMP
   [mkdir]        object directory for project GnatColl_Iconv
   [mkdir]        library directory for project GnatColl_Iconv
   [mkdir]        object directory for project VSS_GNAT
   [mkdir]        library directory for project VSS_GNAT
   [mkdir]        object directory for project Prettier_Ada
   [mkdir]        library directory for project Prettier_Ada
   [mkdir]        object directory for project AdaSAT
   [mkdir]        exec directory for project AdaSAT
   [mkdir]        library directory for project AdaSAT
   [mkdir]        object directory for project Langkit_Support
   [mkdir]        library directory for project Langkit_Support
   [mkdir]        object directory for project GPR2
   [mkdir]        library directory for project GPR2
   [mkdir]        object directory for project Libadalang
   [mkdir]        library directory for project Libadalang
   [mkdir]        object directory for project Gnatformat
   [mkdir]        library directory for project Gnatformat
   [mkdir]        exec directory for project Gnatformat_Driver
Compile
   [Ada]          gnatformat-ada_driver.adb
   [C]            gpr_parser-gdb.c
   [Ada]          gpr_parser_support-internal-analysis.adb
   [Ada]          gpr_parser_support-generic_api-analysis.adb
   [Ada]          gpr_parser_support-adalog-solver.adb
   [Ada]          gpr_parser_support-generic_bump_ptr.adb
   [Ada]          gpr_parser_support-array_utils.adb
   [Ada]          gpr_parser-implementation.adb
   [Ada]          gpr_parser_support-hashes.adb
   [Ada]          gpr_parser-lexer_implementation.adb
   [Ada]          gpr_parser-analysis.adb
   [Ada]          gpr_parser_support-diagnostics.adb
   [Ada]          gpr_parser-generic_api-introspection.ads
   [Ada]          gpr_parser_adasat.adb
   [Ada]          gpr_parser-unparsing.adb
   [Ada]          gpr_parser_support-names.adb
   [Ada]          gpr_parser_adasat-theory.ads
   [Ada]          gpr_parser_support-adalog-logic_var.adb
   [Ada]          gpr_parser-generic_introspection.adb
   [Ada]          gpr_parser_support-diagnostics-output.adb
   [Ada]          gpr_parser-generic_api.adb
   [Ada]          gpr_parser_support-cheap_sets.adb
   [Ada]          gpr_parser-parsers.adb
   [Ada]          gpr_parser_support-lexical_envs_impl.adb
   [Ada]          gpr_parser_adasat-dpll.adb
   [Ada]          gpr_parser_support-internal.ads
   [Ada]          gpr_parser_support-names-maps.adb
   [Ada]          gpr_parser-lexer_state_machine.adb
   [Ada]          gpr_parser_support-boxes.adb
   [Ada]          gpr_parser-iterators.adb
   [Ada]          gpr_parser_support-adalog-solver_interface.adb
   [Ada]          gpr_parser_support-symbols-precomputed.adb
   [Ada]          gpr_parser_support-tree_traversal_iterator.adb
   [Ada]          gpr_parser_support-adalog.ads
   [Ada]          gpr_parser-private_converters.adb
   [Ada]          gpr_parser-unparsing_implementation.adb
   [Ada]          gpr_parser-public_converters.adb
   [Ada]          gpr_parser_support-token_data_handlers.adb
   [Ada]          gpr_parser_support-images.adb
   [Ada]          gpr_parser_adasat-helpers.adb
   [Ada]          gpr_parser_support-adalog-main_support.ads
   [Ada]          gpr_parser_adasat-builders.adb
   [Ada]          gpr_parser_adasat-internals.ads
   [Ada]          gpr_parser_support-lexical_envs.ads
   [Ada]          gpr_parser_support-bump_ptr_vectors.adb
   [Ada]          gpr_parser_support-generic_api.adb
   [Ada]          gpr_parser-common.adb
   [Ada]          gpr_parser_support-types.ads
   [Ada]          gpr_parser_support-adalog-generic_main_support.adb
   [Ada]          gpr_parser_support-symbols.adb
   [Ada]          gpr_parser-c.adb
   [Ada]          gpr_parser.ads
   [Ada]          gpr_parser_support-packrat.adb
   [Ada]          gpr_parser_support-generic_api-introspection.adb
   [Ada]          gpr_parser_support-errors.ads
   [Ada]          gpr_parser_support-relative_get.adb
   [Ada]          gpr_parser_support-slocs.adb
   [Ada]          gpr_parser_support-bump_ptr.ads
   [Ada]          gpr_parser_support-text.adb
   [Ada]          gpr_parser_support-adalog-debug.adb
   [Ada]          gpr_parser_support-vectors.adb
   [Ada]          gpr_parser_support-iterators.adb
   [Ada]          gpr_parser-lexer.adb
   [Ada]          gpr_parser_support-internal-introspection.adb
   [Ada]          gpr_parser_support-file_readers.adb
   [Ada]          gpr_parser_support-internal-conversions.ads
   [Ada]          gpr_parser_adasat-decisions.adb
   [Ada]          gpr_parser_support.ads
   [Ada]          gpr_parser-debug.adb
   [Ada]          gpr_parser_adasat-vectors.adb
   [Ada]          gpr_parser-implementation-c.adb
   [Ada]          gpr_parser-rewriting_implementation.adb
   [Ada]          gpr_parser_adasat-formulas.adb
   [Ada]          gpr_parser-generic_impl.adb
   [Ada]          gpr_parser-rewriting.adb
   [Ada]          gpr_parser_support-internal-descriptor.ads
   [Ada]          gpr2-kb-embedded.adb
   [Ada]          gpr2-project_parser-registry.adb
   [Ada]          gpr2-project_parser.adb
   [Ada]          gpr2-view_internal.adb
   [Ada]          gpr2-pack_internal.ads
   [Ada]          gpr2-project_parser-set.ads
   [Ada]          gpr2-build-view_tables.adb
   [Ada]          gpr2-view_base_internal.ads
   [Ada]          gpr2-tree_internal.adb
   [Ada]          gpr2-project_parser-create.adb
   [Ada]          gpr2-tree_internal-view_builder.adb
   [Ada]          gpr2-build-artifacts.adb
   [Ada]          gpr2-build-process_manager-json.adb
   [Ada]          gpr2-build-artifacts-file_part.adb
   [Ada]          gpr2-build-actions-link.adb
   [Ada]          gpr2-build-source-sets.adb
   [Ada]          gpr2-build-process_manager.adb
   [Ada]          gpr2-build.ads
   [Ada]          gpr2-build-compilation_unit-maps.ads
   [Ada]          gpr2-build-actions-post_bind.adb
   [Ada]          gpr2-build-ali_parser.adb
   [Ada]          gpr2-build-actions-compile-ada.adb
   [Ada]          gpr2-build-actions.adb
   [Ada]          gpr2-build-compilation_unit.adb
   [Ada]          gpr2-build-actions-compile.adb
   [Ada]          gpr2-build-view_db.adb
   [Ada]          gpr2-build-source_base.adb
   [Ada]          gpr2-build-source_base-ada_parser.adb
   [Ada]          gpr2-build-signature.adb
gpr2-build-signature.adb:78:24: error: no selector "Finalize" for private type "JSON_Value" defined at gnatcoll-json.ads:167

   compilation of gpr2-build-signature.adb failed

gprbuild: *** compilation phase failed
error: Command ["gprbuild", "-s", "-j0", "-p", "-P", "/tmp/gnatformat_25.0.0_79117be8/gnat/gnatformat_driver.gpr"] exited with code 4

warn: gnatformat=25.0.0 successfully retrieved with missing dependencies but its build failed.
Dependencies were solved as follows:

   New solution is incomplete.
   +        adasat          25.0.0 (new)
   +📦      gnat            14.2.1 (new,gnat_native,indirect,binary)
   +        gnatcoll        25.0.0 (new)
   +        gnatcoll_gmp    25.0.0 (new,indirect)
   +        gnatcoll_iconv  25.0.0 (new,indirect)
   +        langkit_support 25.0.0 (new,indirect)
   +        libadalang      25.0.0 (new)
   +        libgpr          25.0.0 (new,indirect)
   +        libgpr2         25.0.0 (new,indirect)
   +        prettier_ada    25.0.0 (new)
   +        vss             25.0.0 (new,indirect)
   +        xmlada          25.0.0 (new,indirect)
   Missing:
   +❗      libgmp          *      (new,indirect,missing)
error: Build ended with errors

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions