Subject: Re: bug#56467: vala command compiles files instead of running them

From: Maxim Cournoyer <[email-masked]>
Date: Fri, 15 Jul 2022 15:31:05 -0400

Hi,

[email-masked] writes:

> the bin/vala-0.54 shell script executes bin/valac-0.54 which executes bin/.valac-0.54-real.
> it should execute bin/.vala-0.54-real instead.
>
> expected (was the case before guix's update):
> $ vala hello.vala
> Hello, World!
> $ ls
> hello.vala
>
> actual:
> $ vala hello.vala
> $ ls 
> hello hello.vala
> $ ./hello
> Hello, World!

That's indeed confusing, but it stems from the odd symbolic links layout
that upstream installs:

--8<---------------cut here---------------start------------->8---
lrwxrwxrwx 1 nixbld nixbld      9 Jul 15 19:18 vala -> vala-0.54
lrwxrwxrwx 1 nixbld nixbld     10 Jul 15 19:18 vala-0.54 -> valac-0.54
lrwxrwxrwx 1 nixbld nixbld     10 Jul 15 19:18 valac -> valac-0.54
-rwxr-xr-x 1 nixbld nixbld 147248 Jul 15 19:18 valac-0.54
lrwxrwxrwx 1 nixbld nixbld     12 Jul 15 19:18 valadoc -> valadoc-0.54
-rwxr-xr-x 1 nixbld nixbld 451032 Jul 15 19:18 valadoc-0.54
lrwxrwxrwx 1 nixbld nixbld     24 Jul 15 19:18 vala-gen-introspect -> vala-gen-introspect-0.54
-rwxr-xr-x 1 nixbld nixbld   1067 Jul 15 19:18 vala-gen-introspect-0.54
lrwxrwxrwx 1 nixbld nixbld     12 Jul 15 19:18 vapigen -> vapigen-0.54
-rwxr-xr-x 1 nixbld nixbld 720128 Jul 15 19:18 vapigen-0.54
--8<---------------cut here---------------end--------------->8---

If you read attentively, you'll see there's no proper 'vala' binary,
vala, vala-0.54 and valac are all symbolic links to valac-0.54, which is
the compiler.

Perhaps upstream changed the behavior?  Or it could be that they use
arg0 (the program name) to infer different behaviors, which gets mangled
by our wrappers.

Do you have another build of vala to compare against, preferably at the
same version?

Thanks,

Maxim