gcc@7 and higher are not hidden packages

  • Open
  • quality assurance status badge
Details
3 participants
  • bbb ee
  • Julien Lepiller
  • zimoun
Owner
unassigned
Submitted by
bbb ee
Severity
normal
B
B
bbb ee wrote on 15 Nov 2022 00:53
how gcc-toolchain can depends a package who doesn't exists?
(address . bug-guix@gnu.org)
CALNLCmUJOyvfjELjW-YcF+hDgwxPH1SoEcZm2hMOAtmt6vr36g@mail.gmail.com
in version c81457a5883ea43950eb2ecdcbb58a5b144bcd11 of guix, gcc-toolchain
depends gcc:
```
$ DEFAULT_CHANNELS=/tmp/default_channels.scm
$ echo "%default-channels" > $DEFAULT_CHANNELS
# I force guix to use only %default-channels here
$ guix time-machine --commit=c81457a5883ea43950eb2ecdcbb58a5b144bcd11 -C
$DEFAULT_CHANNELS -- search gcc-toolchain
guile: warning: failed to install locale
name: gcc-toolchain
version: 9.3.0
outputs: out debug static
systems: x86_64-linux i686-linux
dependencies: binutils@2.32 gcc@9.3.0 glibc@2.29 ld-wrapper@0
```


However, I can't find gcc package in this version of guix
```
$ guix time-machine --commit=c81457a5883ea43950eb2ecdcbb58a5b144bcd11 -C
$DEFAULT_CHANNELS -- search gcc
# no found gcc

# guix install failure message confirm that gcc doesn't exist in commit
c81457
$ guix time-machine --commit=c81457a5883ea43950eb2ecdcbb58a5b144bcd11 -C
$DEFAULT_CHANNELS -- install gcc -p ~/opt/python-dev_3_7
guile: warning: failed to install locale
guix install: error: gcc: unknown package
```

in commit c81457, how gcc-toolchain can depends a package who doesn't
exists?
Attachment: file
J
J
Julien Lepiller wrote on 15 Nov 2022 07:26
Re: bug#59278: how gcc-toolchain can depends a package who doesn't exists?
83ED95D5-441E-43FB-9BBD-93338342E07A@lepiller.eu
Hi,

This is not a bug. The gcc package exists, but is hidden from CLI on purpose because you shouldn't install it and use it directly. You should use gcc-toolchain instead.

Le 15 novembre 2022 00:53:32 GMT+01:00, bbb ee <blasforr@gmail.com> a écrit :
Toggle quote (33 lines)
>in version c81457a5883ea43950eb2ecdcbb58a5b144bcd11 of guix, gcc-toolchain
>depends gcc:
>```
>$ DEFAULT_CHANNELS=/tmp/default_channels.scm
>$ echo "%default-channels" > $DEFAULT_CHANNELS
># I force guix to use only %default-channels here
>$ guix time-machine --commit=c81457a5883ea43950eb2ecdcbb58a5b144bcd11 -C
>$DEFAULT_CHANNELS -- search gcc-toolchain
>guile: warning: failed to install locale
>name: gcc-toolchain
>version: 9.3.0
>outputs: out debug static
>systems: x86_64-linux i686-linux
>dependencies: binutils@2.32 gcc@9.3.0 glibc@2.29 ld-wrapper@0
>```
>
>
>However, I can't find gcc package in this version of guix
>```
>$ guix time-machine --commit=c81457a5883ea43950eb2ecdcbb58a5b144bcd11 -C
>$DEFAULT_CHANNELS -- search gcc
># no found gcc
>
># guix install failure message confirm that gcc doesn't exist in commit
>c81457
>$ guix time-machine --commit=c81457a5883ea43950eb2ecdcbb58a5b144bcd11 -C
>$DEFAULT_CHANNELS -- install gcc -p ~/opt/python-dev_3_7
>guile: warning: failed to install locale
>guix install: error: gcc: unknown package
>```
>
>in commit c81457, how gcc-toolchain can depends a package who doesn't
>exists?
Attachment: file
B
B
bbb ee wrote on 15 Nov 2022 11:29
Re: bug#59278: how gcc-toolchain can depends a package who doesn't exists?
(name . Julien Lepiller)(address . julien@lepiller.eu)(address . 59278@debbugs.gnu.org)
CALNLCmVjTPPLbW4=WgAdRfvc7JSiZ3cWy9AyJqWZJgfA4=9vAA@mail.gmail.com
Thanks, I close the issue

Le mar. 15 nov. 2022 à 07:27, Julien Lepiller <julien@lepiller.eu> a écrit :

Toggle quote (44 lines)
> Hi,
>
> This is not a bug. The gcc package exists, but is hidden from CLI on
> purpose because you shouldn't install it and use it directly. You should
> use gcc-toolchain instead.
>
> Le 15 novembre 2022 00:53:32 GMT+01:00, bbb ee <blasforr@gmail.com> a
> écrit :
>>
>> in version c81457a5883ea43950eb2ecdcbb58a5b144bcd11 of guix,
>> gcc-toolchain depends gcc:
>> ```
>> $ DEFAULT_CHANNELS=/tmp/default_channels.scm
>> $ echo "%default-channels" > $DEFAULT_CHANNELS
>> # I force guix to use only %default-channels here
>> $ guix time-machine --commit=c81457a5883ea43950eb2ecdcbb58a5b144bcd11 -C
>> $DEFAULT_CHANNELS -- search gcc-toolchain
>> guile: warning: failed to install locale
>> name: gcc-toolchain
>> version: 9.3.0
>> outputs: out debug static
>> systems: x86_64-linux i686-linux
>> dependencies: binutils@2.32 gcc@9.3.0 glibc@2.29 ld-wrapper@0
>> ```
>>
>>
>> However, I can't find gcc package in this version of guix
>> ```
>> $ guix time-machine --commit=c81457a5883ea43950eb2ecdcbb58a5b144bcd11 -C
>> $DEFAULT_CHANNELS -- search gcc
>> # no found gcc
>>
>> # guix install failure message confirm that gcc doesn't exist in commit
>> c81457
>> $ guix time-machine --commit=c81457a5883ea43950eb2ecdcbb58a5b144bcd11 -C
>> $DEFAULT_CHANNELS -- install gcc -p ~/opt/python-dev_3_7
>> guile: warning: failed to install locale
>> guix install: error: gcc: unknown package
>> ```
>>
>> in commit c81457, how gcc-toolchain can depends a package who doesn't
>> exists?
>>
>
Attachment: file
B
B
bbb ee wrote on 15 Nov 2022 11:30
(address . 59278@debbugs.gnu.org)
CALNLCmU+5NRv2+YCWUA5+oDpUD9-5Jia8K2aQ1JhKbxoT_=7hQ@mail.gmail.com
close #59278
Attachment: file
B
B
bbb ee wrote on 15 Nov 2022 11:48
(address . control@debbugs.gnu.org)
CALNLCmVf6Pajb-En_w2T2mu664O1Zm91zKppMPbBa_agTyRB_A@mail.gmail.com
close #59278
Attachment: file
Z
Z
zimoun wrote on 15 Nov 2022 09:42
864jv0k3r9.fsf@gmail.com
Hi,

On Tue, 15 Nov 2022 at 00:53, bbb ee <blasforr@gmail.com> wrote:

Toggle quote (3 lines)
> in commit c81457, how gcc-toolchain can depends a package who doesn't
> exists?

The package exists, it is ’hidden’ – it means not accessible at the CLI
level. The ’inherit’ copies, so gcc-11 is also hidden, for instance.

Toggle snippet (19 lines)
(define-public gcc-4.7
[...]
(hidden-package
(package
(name "gcc")
(version "4.7.4")

(define-public gcc-4.8
(package (inherit gcc-4.7)
(version "4.8.5")

[...]

(define-public gcc-11
(package
(inherit gcc-8)
(version "11.3.0")

The package ’gcc’ by itself is not barely useful because you also need
linker etc. Well, you usually need a complete toolchain, named
gcc-toolchain. ;-)



So this is not a bug and I miss how what could be improved. Closing?

Cheers,
simon
B
B
bbb ee wrote on 15 Nov 2022 22:42
(name . zimoun)(address . zimon.toutoune@gmail.com)(address . 59278@debbugs.gnu.org)
CALNLCmVQqW-L_3dd1Nz0AmYFs=b+pnCTfsz+pTNgbYPzGZgL9w@mail.gmail.com
It is just a little confusing for newcomers to guix. If we really want to
improve something, I think that could be to give a more rigorous
specification of the guix command:

in `guix search --help`, the documentation could be "Search for no hidden
packages matching REGEXPS."

in
in the specification of the option -s :
"-s regexp

List the available packages whose name, synopsis, or description matches
regexp
"
What exactly means "available" ? For example, available means no hidden
guix package.

And in

Le mar. 15 nov. 2022 à 15:54, zimoun <zimon.toutoune@gmail.com> a écrit :

Toggle quote (43 lines)
> Hi,
>
> On Tue, 15 Nov 2022 at 00:53, bbb ee <blasforr@gmail.com> wrote:
>
> > in commit c81457, how gcc-toolchain can depends a package who doesn't
> > exists?
>
> The package exists, it is ’hidden’ – it means not accessible at the CLI
> level. The ’inherit’ copies, so gcc-11 is also hidden, for instance.
>
> --8<---------------cut here---------------start------------->8---
> (define-public gcc-4.7
> [...]
> (hidden-package
> (package
> (name "gcc")
> (version "4.7.4")
>
> (define-public gcc-4.8
> (package (inherit gcc-4.7)
> (version "4.8.5")
>
> [...]
>
> (define-public gcc-11
> (package
> (inherit gcc-8)
> (version "11.3.0")
> --8<---------------cut here---------------end--------------->8---
>
> The package ’gcc’ by itself is not barely useful because you also need
> linker etc. Well, you usually need a complete toolchain, named
> gcc-toolchain. ;-)
>
> See manual: <
> https://guix.gnu.org/manual/devel/en/guix.html#The-GCC-toolchain>
>
>
> So this is not a bug and I miss how what could be improved. Closing?
>
> Cheers,
> simon
>
Attachment: file
B
B
bbb ee wrote on 15 Nov 2022 23:04
(name . zimoun)(address . zimon.toutoune@gmail.com)(address . 59278@debbugs.gnu.org)
CALNLCmU9ZtHLpW2M8V2LAc7=YYv4NCEMbb5h4AAgcUHZEMpzSg@mail.gmail.com
In the documentation, when it says "guix search" search matching package,
if users don't find a package defined in .scm (hidden or no), users can
consider it is a bug, because that doesn't match the behavior described in
the specification (here, the manual and "guix search --help").

Le mar. 15 nov. 2022 à 15:54, zimoun <zimon.toutoune@gmail.com> a écrit :

Toggle quote (43 lines)
> Hi,
>
> On Tue, 15 Nov 2022 at 00:53, bbb ee <blasforr@gmail.com> wrote:
>
> > in commit c81457, how gcc-toolchain can depends a package who doesn't
> > exists?
>
> The package exists, it is ’hidden’ – it means not accessible at the CLI
> level. The ’inherit’ copies, so gcc-11 is also hidden, for instance.
>
> --8<---------------cut here---------------start------------->8---
> (define-public gcc-4.7
> [...]
> (hidden-package
> (package
> (name "gcc")
> (version "4.7.4")
>
> (define-public gcc-4.8
> (package (inherit gcc-4.7)
> (version "4.8.5")
>
> [...]
>
> (define-public gcc-11
> (package
> (inherit gcc-8)
> (version "11.3.0")
> --8<---------------cut here---------------end--------------->8---
>
> The package ’gcc’ by itself is not barely useful because you also need
> linker etc. Well, you usually need a complete toolchain, named
> gcc-toolchain. ;-)
>
> See manual: <
> https://guix.gnu.org/manual/devel/en/guix.html#The-GCC-toolchain>
>
>
> So this is not a bug and I miss how what could be improved. Closing?
>
> Cheers,
> simon
>
Attachment: file
Z
Z
zimoun wrote on 16 Nov 2022 09:53
(name . bbb ee)(address . blasforr@gmail.com)(address . 59278@debbugs.gnu.org)
87h6yz46wp.fsf@gmail.com
Hi,

On Tue, 15 Nov 2022 at 22:42, bbb ee <blasforr@gmail.com> wrote:

Toggle quote (4 lines)
> It is just a little confusing for newcomers to guix. If we really want to
> improve something, I think that could be to give a more rigorous
> specification of the guix command:

I agree that the manual does not speak about the concept of
’hidden-package’, if I read correctly. A note would be welcome, IMHO.

However, the commit you are referring is from 2020:

c81457a5883ea43950eb2ecdcbb58a5b144bcd11
Author: Ludovic Courtès <ludo@gnu.org>
AuthorDate: Fri May 8 16:34:58 2020 +0200
Commit: Ludovic Courtès <ludo@gnu.org>
CommitDate: Fri May 8 16:34:58 2020 +0200

gnu: gcc-toolchain: Add 10.1.0.

* gnu/packages/commencement.scm (gcc-toolchain-10): New variable.

1 file changed, 3 insertions(+)
gnu/packages/commencement.scm | 3 +++

and many things have been improved since. ;-)


For instance, using 00ff6f7 (from ~Oct 2022), it reads,

Toggle snippet (32 lines)
$ guix search gcc | recsel -p name,version | head -30
name: gcc
version: 12.2.0

name: gcc
version: 11.3.0

name: gcc
version: 10.3.0

name: gcc
version: 9.5.0

name: gcc
version: 8.5.0

name: gcc
version: 7.5.0

name: gcc
version: 2.95.3

name: gcc-toolchain
version: 12.2.0

name: gcc-toolchain
version: 11.3.0

name: gcc-toolchain
version: 10.3.0

Wait, contrary to what I said, the packages are not hidden when they
should be! For example, gcc@4m @5 and @6 are not displayed but @7 is.

Toggle snippet (20 lines)
$ guix show gcc@6
guix show: error: gcc@6: package not found

$ guix show gcc@7
name: gcc
version: 7.5.0
outputs:
+ lib: shared libraries
+ debug: debug information
+ out: everything else
systems: x86_64-linux i686-linux
dependencies: gmp@6.2.1 isl@0.23 libelf@0.8.13 libstdc++-headers@10.3.0 mpc@1.2.1 mpfr@4.1.0 perl@5.34.0 texinfo@6.7 zlib@1.2.11
location: gnu/packages/gcc.scm:601:2
homepage: https://gcc.gnu.org/
license: GPL 3+
synopsis: GNU Compiler Collection
description: GCC is the GNU Compiler Collection. It provides compiler front-ends for several languages, including C, C++, Objective-C, Fortran, Ada, and
+ Go. It also includes runtime support libraries for these languages.

It is because the ’properties’ field of gcc@7 is rewritten,

Toggle snippet (12 lines)
(define-public gcc-7
(package
(inherit gcc-6)
(version "7.5.0")
[...]
(properties
`((compiler-cpu-architectures
("aarch64" ,@%gcc-7.5-aarch64-micro-architectures)
("armhf" ,@%gcc-7.5-armhf-micro-architectures)
("x86_64" ,@%gcc-7.5-x86_64-micro-architectures))))))

and thus, it looses ’hidden’, as shown here:

Toggle snippet (18 lines)
$ guix repl
GNU Guile 3.0.8
Copyright (C) 1995-2021 Free Software Foundation, Inc.

Guile comes with ABSOLUTELY NO WARRANTY; for details type `,show w'.
This program is free software, and you are welcome to redistribute it
under certain conditions; type `,show c' for details.

Enter `,help' for help.
scheme@(guix-user)> ,use(gnu packages gcc)
scheme@(guix-user)> (package-properties gcc-6)
$1 = ((hidden? . #t) (gcc-libc . #f))
scheme@(guix-user)> (package-properties gcc-7)
$2 = ((compiler-cpu-architectures ("aarch64" "armv8-a" "armv8.1-a" "armv8.2-a" "armv8.3-a") ("armhf" "armv7" "armv7-a" "armv7-m" "armv7-r" "armv7e-m" "armv7ve" "armv8-a" "armv8-a+crc" "armv8.1-a" "armv8.1-a+crc" "armv8-m.base" "armv8-m.main" "armv8-m.main+dsp" "iwmmxt" "iwmmxt2") ("x86_64" "core2" "nehalem" "westmere" "sandybridge" "ivybridge" "haswell" "broadwell" "skylake" "bonnell" "silvermont" "knl" "skylake-avx512" "k8" "k8-sse3" "barcelona" "bdver1" "bdver2" "bdver3" "bdver4" "znver1" "btver1" "btver2" "geode")))
scheme@(guix-user)>


Thanks, there is indeed a bug. ;-)


Back to the initial report, what could be improved is the display of the
field ’dependencies’; distinguishing regular packages to hidden ones.
And maybe instead of a plain error “package not found”, the command
“guix show” could error which “non installable package” or something
like that.


Cheers,
simon
Z
Z
zimoun wrote on 16 Nov 2022 09:49
control message for bug #59278
(address . control@debbugs.gnu.org)
87k03v473u.fsf@gmail.com
retitle 59278 gcc@7 and higher are not hidden packages
quit
Z
Z
zimoun wrote on 15 May 2023 19:55
Re: bug#59278: gcc@7 and higher are not hidden packages
(name . bbb ee)(address . blasforr@gmail.com)(address . 59278@debbugs.gnu.org)
86pm7132eo.fsf@gmail.com
Hi,

On Tue, 15 Nov 2022 at 00:53, bbb ee <blasforr@gmail.com> wrote:

Toggle quote (28 lines)
> in version c81457a5883ea43950eb2ecdcbb58a5b144bcd11 of guix, gcc-toolchain depends gcc:
> ```
> $ DEFAULT_CHANNELS=/tmp/default_channels.scm
> $ echo "%default-channels" > $DEFAULT_CHANNELS
> # I force guix to use only %default-channels here
> $ guix time-machine --commit=c81457a5883ea43950eb2ecdcbb58a5b144bcd11 -C $DEFAULT_CHANNELS -- search gcc-toolchain
> guile: warning: failed to install locale
> name: gcc-toolchain
> version: 9.3.0
> outputs: out debug static
> systems: x86_64-linux i686-linux
> dependencies: binutils@2.32 gcc@9.3.0 glibc@2.29 ld-wrapper@0
> ```
>
> However, I can't find gcc package in this version of guix
> ```
> $ guix time-machine --commit=c81457a5883ea43950eb2ecdcbb58a5b144bcd11 -C $DEFAULT_CHANNELS -- search gcc
> # no found gcc
>
> # guix install failure message confirm that gcc doesn't exist in commit c81457
> $ guix time-machine --commit=c81457a5883ea43950eb2ecdcbb58a5b144bcd11 -C $DEFAULT_CHANNELS -- install gcc -p
> ~/opt/python-dev_3_7
> guile: warning: failed to install locale
> guix install: error: gcc: unknown package
> ```
>
> in commit c81457, how gcc-toolchain can depends a package who doesn't exists?

Aside a minor point about documenting ’hidden-packages’ although
’hidden?’ is mentioned in section “9.3 Defining Package Variants“ [1],
the main issue is fixed by e1bf3c6b5a06b6dbbe4f5a8692ea638a0ce43511.

Moreover, please note the section “8.4 The GCC toolchain” [2] in the
manual explaining the confusion.

Closing?


Cheers,
simon
?
Your comment

Commenting via the web interface is currently disabled.

To comment on this conversation send an email to 59278@debbugs.gnu.org

To respond to this issue using the mumi CLI, first switch to it
mumi current 59278
Then, you may apply the latest patchset in this issue (with sign off)
mumi am -- -s
Or, compose a reply to this issue
mumi compose
Or, send patches to this issue
mumi send-email *.patch