[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#35691: [bug-guix] remote configure failure due to bad pathnames for
From: |
Ludovic Courtès |
Subject: |
bug#35691: [bug-guix] remote configure failure due to bad pathnames for crt*.o |
Date: |
Wed, 15 May 2019 18:29:06 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/26.2 (gnu/linux) |
Hi Nelson,
(Please keep the bug Cc’d.)
"Nelson H. F. Beebe" <address@hidden> skribis:
> Here is what I find about installed gcc-related packages:
>
> $ guix package --list-installed |grep gcc
> gccgo 4.9.4 out
> /gnu/store/7108fl31hfj9lb4y76g89sxdb43c1wpc-gccgo-4.9.4
> gcc-objc 8.3.0 out
> /gnu/store/44r4xl10nmix25bv6bv974r280vc232c-gcc-objc-8.3.0
> gcc-objc++ 8.3.0 out
> /gnu/store/wqycqqp4almqcmmsj7gys56lyk9girvq-gcc-objc++-8.3.0
> gcc-bootstrap 0 out
> /gnu/store/fgarfy5392vz5hik1ag5b8ccv0r4cm01-gcc-bootstrap-0
> gcc-toolchain 9.1.0 out
> /gnu/store/aqv6njg05w2yqh8krgrjy0wcbfxb4nn3-gcc-toolchain-9.1.0
It’s crowded here. Please remove everything but ‘gcc-toolchain’.
Now, if you want to have Objective-C support, you of course have to
install ‘gcc-objc’ and/or ‘gcc-objc++’. However, you’ll have to make
sure that they come after ‘gcc-toolchain’ in your profile, like so:
guix install gcc-toolchain gcc-objc
> Maybe it is related to another problem that I wanted to eventually
> raise on a guix list. Namely, after installing the new GUIX 1.0 VM, I
> found that /usr/bin, /usr/sbin, and /sbin do not exist, and /bin
> contains only /bin/sh. Even after numerous "guix install" runs, /bin
> continues to have only one entry.
Correct.
> This seems bizarre, because it is long-standing practice that
> shell scripts should set PATH to a limited value to avoid
> trojan attacks, and things like "/bin/rm foo" should always work.
The GNU build system purposefully makes no assumptions on the location
of tools: ‘configure.ac’ files have AC_PROG_SED, AC_PATH_PROG, and
similar calls.
> On your GUIX systems, do you have a reasonably populated /bin? Ditto
> the other three.
No. By default, one gets /bin/sh, and nothing more.
This is a radical departure from Unix tradition, but (1) GNU’s Not Unix
;-), and (2) the lack of a global name space gives rise to many
interesting properties: transactional upgrades and rollbacks are now
possible, per-user profiles, on-the-fly environments with ‘guix
environment’, etc.
> (packages
> (list (specification->package "nss-certs")))
Note that this is bogus, due to
<https://issues.guix.gnu.org/issue/35541>, which will be fixed in
Guix 1.0.1 in the coming days.
You should write:
(packages (append (list (specification->package "nss-certs"))
%base-packages))
to get the full set of “base packages” (Coreutils, grep, etc.) in $PATH
by default.
Once you’ve made that change, you have to reconfigure your system:
guix system reconfigure /etc/config.scm
HTH!
Thanks,
Ludo’.