alire-project / alire

Command-line tool from the Alire project and supporting library
GNU General Public License v3.0
288 stars 49 forks source link

Cannot use gtkada 23.0 and 24.0 in a project on Linux #1777

Closed stcarrez closed 4 weeks ago

stcarrez commented 1 month ago

Checklist

Describe the bug

On Ubuntu 24 (but I guess any GNU/Linux), if you create a project and want to use the gtkada crate, the build fails starting with version 23.0 and 24.0. The build succeeds for version 21.0 and 22.0.

The alr get gtkada compiles successfully for version 24 but it fails if you compile from within your project.

@Fabien-Chouteau and @reznikmm, I create this bug request here since I'm not sure where we should report crate issues.

To Reproduce Steps to reproduce the behavior:

description = "Shiny new project"
maintainers = [
"your@email.here",
]
maintainers-logins = [
"github-username",
]
name = "gtk_test"
version = "0.0.0"

[[depends-on]]  # This line was added by `alr with`
gtkada = "^23.0"  # This line was added by `alr with`

Run alr update and alr build

Expected Behavior Compilation of gtkada succeeds.

It fails with:

/usr/bin/bash: line 1: ./configure: Permission denied
error: Command ["bash", "-c", "PATH=${DISTRIB_ROOT}/mingw64/bin:${PATH} ./configure"] exited with code 126

I suspect the following entry in the gtkada crate is not correct (see below in the logs, configure file exist):

[[actions]]
type = "post-fetch"
command = ["bash", "-c", "PATH=${DISTRIB_ROOT}/mingw64/bin:${PATH} ./configure"]

workarround

Find where the gtkada sources are extracted and run:

chmod +x .../configure

suggested fix Either:

  1. remove the mingw64 path on Linux,

  2.  command = ["env", "PATH=${DISTRIB_ROOT}/mingw64/bin:${PATH}", "bash", "-c", "./configure"]
  3. use export and add another bash -c after the PATH

alr version

alr version:               2.1.0-dev+9638c9d8_dirty
libalire version:          2.1.0-dev+9638c9d8_dirty
compilation date:          2024-09-21 11:37:14
compiled with version:     12.1.0

alr logs

And alr -v build gives the following:

detail: Env: Crate prefix for resources location sets '/home/ciceron/.local/share/alire/builds/gtkada_23.0.0_bac4d634/e3d4399ab9cc4dde2e0c4fe30614a678c7847b10fb06899608abbceb95d361c1' to 'GTKADA_ALIRE_PREFIX'
detail: Env: Crate prefix for resources location sets '/home/ciceron/.local/share/alire/releases/libgtk3_3.24.41_system' to 'LIBGTK3_ALIRE_PREFIX'
detail: Env: Crate prefix for resources location sets '/home/ciceron/.local/share/alire/toolchains/gnat_external_12.1.0_external' to 'GNAT_EXTERNAL_ALIRE_PREFIX'
detail: Env: Crate prefix for resources location sets '/home/ciceron/.local/share/alire/releases/make_4.3.0_system' to 'MAKE_ALIRE_PREFIX'
detail: Env: Crate prefix for resources location sets '/src/alire/alr-test/tst-gtk/gtk' to 'GTK_TEST_ALIRE_PREFIX'
detail: Env: Crate prefix for resources location sets '/home/ciceron/.local/share/alire/toolchains/gprbuild_22.0.0_external' to 'GPRBUILD_ALIRE_PREFIX'
detail: Env: crates prepends '/src/alire/alr-test/tst-gtk/gtk' to 'GPR_PROJECT_PATH'
detail: Env: crates prepends '/home/ciceron/.local/share/alire/builds/gtkada_23.0.0_bac4d634/e3d4399ab9cc4dde2e0c4fe30614a678c7847b10fb06899608abbceb95d361c1/src' to 'GPR_PROJECT_PATH'
detail: Env: Crate prefix for resources location sets '/home/ciceron/.local/share/alire/releases/pkg_config_1.8.1_system' to 'PKG_CONFIG_ALIRE_PREFIX'
detail: Env: Alire sets 'True' to 'ALIRE'
detail: ⓘ Skipping actions and build of libgtk3=3.24.41: origin is system/external
detail: ⓘ Skipping actions and build of make=4.3.0: origin is system/external
detail: ⓘ Skipping actions and build of pkg_config=1.8.1: origin is system/external
detail: Using default value for configuration 'dependencies.shared': 'TRUE'
detail: Using default value for configuration 'dependencies.shared': 'TRUE'
info: ⓘ Running post-fetch actions for gtkada=23.0.0...
detail: Running action: Post_Fetch run: bash -c PATH=${DISTRIB_ROOT}/mingw64/bin:${PATH} ./configure (from ${CRATE_ROOT}/.) (cwd:/home/ciceron/.local/share/alire/builds/gtkada_23.0.0_bac4d634/e3d4399ab9cc4dde2e0c4fe30614a678c7847b10fb06899608abbceb95d361c1)
detail: Spawning: ["bash", "-c", "PATH=${DISTRIB_ROOT}/mingw64/bin:${PATH} ./configure"]
/usr/bin/bash: line 1: ./configure: Permission denied
error: Command ["bash", "-c", "PATH=${DISTRIB_ROOT}/mingw64/bin:${PATH} ./configure"] exited with code 126

And the gtkada extracted directory contains:

ls -l /home/ciceron/.local/share/alire/builds/gtkada_23.0.0_bac4d634/e3d4399ab9cc4dde2e0c4fe30614a678c7847b10fb06899608abbceb95d361c1/
total 428
-rw-rw-r-- 1 ciceron ciceron  11141 oct.  13 09:38 aclocal.m4
drwxrwxr-x 3 ciceron ciceron   4096 oct.  13 09:59 alire
-rw-rw-r-- 1 ciceron ciceron   1190 oct.  13 09:38 alire.toml
-rw-rw-r-- 1 ciceron ciceron    289 oct.  13 09:38 ANNOUNCE
-rw-rw-r-- 1 ciceron ciceron    249 oct.  13 09:38 AUTHORS
-rw-rw-r-- 1 ciceron ciceron  44283 oct.  13 09:38 config.guess
-rw-rw-r-- 1 ciceron ciceron  36136 oct.  13 09:38 config.sub
-rw-rw-r-- 1 ciceron ciceron 162943 oct.  13 09:38 configure
-rw-rw-r-- 1 ciceron ciceron   1331 oct.  13 09:38 configure.ac
drwxrwxr-x 2 ciceron ciceron   4096 oct.  13 09:38 contrib
-rw-rw-r-- 1 ciceron ciceron  35147 oct.  13 09:38 COPYING3
-rw-rw-r-- 1 ciceron ciceron   3376 oct.  13 09:38 COPYING.RUNTIME
drwxrwxr-x 4 ciceron ciceron   4096 oct.  13 09:38 docs
-rw-rw-r-- 1 ciceron ciceron   4406 oct.  13 09:38 doinstall
-rw-rw-r-- 1 ciceron ciceron   2181 oct.  13 09:38 features-17
-rw-rw-r-- 1 ciceron ciceron   7040 oct.  13 09:38 features.old
-rw-rw-r-- 1 ciceron ciceron   2064 oct.  13 09:38 gtkada_gps.gpr
-rw-rw-r-- 1 ciceron ciceron   2492 oct.  13 09:38 gtk.gpr
-rw-rw-r-- 1 ciceron ciceron   1196 oct.  13 09:38 INSTALL
-rw-rw-r-- 1 ciceron ciceron   4773 oct.  13 09:38 install-sh
-rw-rw-r-- 1 ciceron ciceron   3046 oct.  13 09:38 known-problems-3.14
-rw-rw-r-- 1 ciceron ciceron   6671 oct.  13 09:38 known-problems.old
drwxrwxr-x 2 ciceron ciceron   4096 oct.  13 09:38 m4
-rw-rw-r-- 1 ciceron ciceron   4938 oct.  13 09:38 Makefile.in
drwxrwxr-x 2 ciceron ciceron   4096 oct.  13 09:38 po
-rw-rw-r-- 1 ciceron ciceron   1975 oct.  13 09:38 README.md
-rw-rw-r-- 1 ciceron ciceron   4697 oct.  13 09:38 shared.gpr.in
drwxrwxr-x 4 ciceron ciceron  12288 oct.  13 09:38 src
drwxrwxr-x 5 ciceron ciceron  12288 oct.  13 09:38 testgtk
drwxrwxr-x 2 ciceron ciceron   4096 oct.  13 09:38 xml
reznikmm commented 1 month ago

I've opened an issue for alr about this. If you need a workaround run this before building:

alr settings --global --set dependencies.shared false

Нд, 13 жовт. 2024, 11:15 користувач Stephane Carrez < @.***> пише:

Checklist

  • I've included the output of alr version.
  • I've included complete steps to reproduce my issue.

Describe the bug

On Ubuntu 24 (but I guess any GNU/Linux), if you create a project and want to use the gtkada crate, the build fails starting with version 23.0 and 24.0. The build succeeds for version 21.0 and 22.0.

The alr get gtkada compiles successfully for version 24 but it fails if you compile from within your project.

@Fabien-Chouteau https://github.com/Fabien-Chouteau and @reznikmm https://github.com/reznikmm, I create this bug request here since I'm not sure where we should report crate issues.

To Reproduce Steps to reproduce the behavior:

description = "Shiny new project" maintainers = [ @.***", ] maintainers-logins = [ "github-username", ] name = "gtk_test" version = "0.0.0"

[[depends-on]] # This line was added by alr with gtkada = "^23.0" # This line was added by alr with

Run alr update and alr build

Expected Behavior Compilation of gtkada succeeds.

It fails with:

/usr/bin/bash: line 1: ./configure: Permission denied error: Command ["bash", "-c", "PATH=${DISTRIB_ROOT}/mingw64/bin:${PATH} ./configure"] exited with code 126

I suspect the following entry in the gtkada crate is not correct (see below in the logs, configure file exist):

[[actions]] type = "post-fetch" command = ["bash", "-c", "PATH=${DISTRIB_ROOT}/mingw64/bin:${PATH} ./configure"]

workarround

Find where the gtkada sources are extracted and run:

chmod +x .../configure

suggested fix Either:

1.

remove the mingw64 path on Linux, 2.

command = ["env", "PATH=${DISTRIB_ROOT}/mingw64/bin:${PATH}", "bash", "-c", "./configure"]

3.

use export and add another bash -c after the PATH

alr version

alr version: 2.1.0-dev+9638c9d8_dirty libalire version: 2.1.0-dev+9638c9d8_dirty compilation date: 2024-09-21 11:37:14 compiled with version: 12.1.0

alr logs

And alr -v build gives the following:

detail: Env: Crate prefix for resources location sets '/home/ciceron/.local/share/alire/builds/gtkada_23.0.0_bac4d634/e3d4399ab9cc4dde2e0c4fe30614a678c7847b10fb06899608abbceb95d361c1' to 'GTKADA_ALIRE_PREFIX' detail: Env: Crate prefix for resources location sets '/home/ciceron/.local/share/alire/releases/libgtk3_3.24.41_system' to 'LIBGTK3_ALIRE_PREFIX' detail: Env: Crate prefix for resources location sets '/home/ciceron/.local/share/alire/toolchains/gnat_external_12.1.0_external' to 'GNAT_EXTERNAL_ALIRE_PREFIX' detail: Env: Crate prefix for resources location sets '/home/ciceron/.local/share/alire/releases/make_4.3.0_system' to 'MAKE_ALIRE_PREFIX' detail: Env: Crate prefix for resources location sets '/src/alire/alr-test/tst-gtk/gtk' to 'GTK_TEST_ALIRE_PREFIX' detail: Env: Crate prefix for resources location sets '/home/ciceron/.local/share/alire/toolchains/gprbuild_22.0.0_external' to 'GPRBUILD_ALIRE_PREFIX' detail: Env: crates prepends '/src/alire/alr-test/tst-gtk/gtk' to 'GPR_PROJECT_PATH' detail: Env: crates prepends '/home/ciceron/.local/share/alire/builds/gtkada_23.0.0_bac4d634/e3d4399ab9cc4dde2e0c4fe30614a678c7847b10fb06899608abbceb95d361c1/src' to 'GPR_PROJECT_PATH' detail: Env: Crate prefix for resources location sets '/home/ciceron/.local/share/alire/releases/pkg_config_1.8.1_system' to 'PKG_CONFIG_ALIRE_PREFIX' detail: Env: Alire sets 'True' to 'ALIRE' detail: ⓘ Skipping actions and build of libgtk3=3.24.41: origin is system/external detail: ⓘ Skipping actions and build of make=4.3.0: origin is system/external detail: ⓘ Skipping actions and build of pkg_config=1.8.1: origin is system/external detail: Using default value for configuration 'dependencies.shared': 'TRUE' detail: Using default value for configuration 'dependencies.shared': 'TRUE' info: ⓘ Running post-fetch actions for gtkada=23.0.0... detail: Running action: Post_Fetch run: bash -c PATH=${DISTRIB_ROOT}/mingw64/bin:${PATH} ./configure (from ${CRATE_ROOT}/.) (cwd:/home/ciceron/.local/share/alire/builds/gtkada_23.0.0_bac4d634/e3d4399ab9cc4dde2e0c4fe30614a678c7847b10fb06899608abbceb95d361c1) detail: Spawning: ["bash", "-c", "PATH=${DISTRIB_ROOT}/mingw64/bin:${PATH} ./configure"] /usr/bin/bash: line 1: ./configure: Permission denied error: Command ["bash", "-c", "PATH=${DISTRIB_ROOT}/mingw64/bin:${PATH} ./configure"] exited with code 126

And the gtkada extracted directory contains:

ls -l /home/ciceron/.local/share/alire/builds/gtkada_23.0.0_bac4d634/e3d4399ab9cc4dde2e0c4fe30614a678c7847b10fb06899608abbceb95d361c1/ total 428 -rw-rw-r-- 1 ciceron ciceron 11141 oct. 13 09:38 aclocal.m4 drwxrwxr-x 3 ciceron ciceron 4096 oct. 13 09:59 alire -rw-rw-r-- 1 ciceron ciceron 1190 oct. 13 09:38 alire.toml -rw-rw-r-- 1 ciceron ciceron 289 oct. 13 09:38 ANNOUNCE -rw-rw-r-- 1 ciceron ciceron 249 oct. 13 09:38 AUTHORS -rw-rw-r-- 1 ciceron ciceron 44283 oct. 13 09:38 config.guess -rw-rw-r-- 1 ciceron ciceron 36136 oct. 13 09:38 config.sub -rw-rw-r-- 1 ciceron ciceron 162943 oct. 13 09:38 configure -rw-rw-r-- 1 ciceron ciceron 1331 oct. 13 09:38 configure.ac drwxrwxr-x 2 ciceron ciceron 4096 oct. 13 09:38 contrib -rw-rw-r-- 1 ciceron ciceron 35147 oct. 13 09:38 COPYING3 -rw-rw-r-- 1 ciceron ciceron 3376 oct. 13 09:38 COPYING.RUNTIME drwxrwxr-x 4 ciceron ciceron 4096 oct. 13 09:38 docs -rw-rw-r-- 1 ciceron ciceron 4406 oct. 13 09:38 doinstall -rw-rw-r-- 1 ciceron ciceron 2181 oct. 13 09:38 features-17 -rw-rw-r-- 1 ciceron ciceron 7040 oct. 13 09:38 features.old -rw-rw-r-- 1 ciceron ciceron 2064 oct. 13 09:38 gtkada_gps.gpr -rw-rw-r-- 1 ciceron ciceron 2492 oct. 13 09:38 gtk.gpr -rw-rw-r-- 1 ciceron ciceron 1196 oct. 13 09:38 INSTALL -rw-rw-r-- 1 ciceron ciceron 4773 oct. 13 09:38 install-sh -rw-rw-r-- 1 ciceron ciceron 3046 oct. 13 09:38 known-problems-3.14 -rw-rw-r-- 1 ciceron ciceron 6671 oct. 13 09:38 known-problems.old drwxrwxr-x 2 ciceron ciceron 4096 oct. 13 09:38 m4 -rw-rw-r-- 1 ciceron ciceron 4938 oct. 13 09:38 Makefile.in drwxrwxr-x 2 ciceron ciceron 4096 oct. 13 09:38 po -rw-rw-r-- 1 ciceron ciceron 1975 oct. 13 09:38 README.md -rw-rw-r-- 1 ciceron ciceron 4697 oct. 13 09:38 shared.gpr.in drwxrwxr-x 4 ciceron ciceron 12288 oct. 13 09:38 src drwxrwxr-x 5 ciceron ciceron 12288 oct. 13 09:38 testgtk drwxrwxr-x 2 ciceron ciceron 4096 oct. 13 09:38 xml

— Reply to this email directly, view it on GitHub https://github.com/alire-project/alire/issues/1777, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABRB775XYV64KP4LDYDKY4TZ3ITZLAVCNFSM6AAAAABP3GM7EGVHI2DSMVQWIX3LMV43ASLTON2WKOZSGU4DGNZXGM4TQNA . You are receiving this because you were mentioned.Message ID: @.***>

mosteo commented 4 weeks ago

This should be fixed by #1768. I can't find the commit of your alr version in our git history, so I'm unsure whether it is included in your alr.

This was not included in 2.0.2 because it involves rather significant internal refactorings which I preferred not to include in a minor patch build.

Please reopen if you find that the latest master branch build (or nightly version) is still failing.