¨make install" fails because of missing gawk

DoneSubmitted by Konrad Hinsen.
Details
3 participants
  • Konrad Hinsen
  • Ludovic Courtès
  • Ricardo Wurmus
Owner
unassigned
Severity
normal
K
K
Konrad Hinsen wrote on 26 May 2017 09:18
(address . bug-guix@gnu.org)
abb593da-c192-2d4b-707f-f00e034abcae@fastmail.net
I am trying to build/install Guix 0.13 from sources (git checkout), using a binary installation of a slightly earlier Guix in a Ubuntu 16.04 host system. Basically I am doing
git checkout v0.13.0 guix environment guix make check make install
I have also tried with this the most recent commit on master, with the same failure.
The trouble starts here:
...Compiling Scheme modules...guile: warning: failed to install locale /gnu/store/2kgp5d4wh40b49gp4qwqh2b4il29gq6g-profile/bin/mkdir -p '/opt/guix/share/man/man1' /gnu/store/2kgp5d4wh40b49gp4qwqh2b4il29gq6g-profile/bin/install -c -m 644 ./doc/guix.1 ./doc/guix-archive.1 ./doc/guix-build.1 ./doc/guix-challenge.1 ./doc/guix-download.1 ./doc/guix-edit.1 ./doc/guix-environment.1 ./doc/guix-gc.1 ./doc/guix-hash.1 ./doc/guix-import.1 ./doc/guix-lint.1 ./doc/guix-package.1 ./doc/guix-publish.1 ./doc/guix-pull.1 ./doc/guix-refresh.1 ./doc/guix-size.1 ./doc/guix-system.1 ./doc/guix-daemon.1 '/opt/guix/share/man/man1' /gnu/store/2kgp5d4wh40b49gp4qwqh2b4il29gq6g-profile/bin/mkdir -p '/opt/guix/share/guile/site/2.2'/bin/bash: line 5: gawk: command not foundsed: couldn't write 47 items to stdout: Broken pipe/bin/bash: line 5: echo: write error: Broken pipe/bin/bash: line 5: echo: write error: Broken pipe/bin/bash: line 5: echo: write error: Broken pipe/bin/bash: line 5: echo: write error: Broken pipe...
I get lots of copies of these "Broken pipe" lines. Then:
.../bin/bash: line 5: echo: write error: Broken pipe/bin/bash: line 5: echo: write error: Broken pipe/bin/bash: line 5: echo: write error: Broken pipe/bin/bash: line 5: echo: write error: Broken pipe /gnu/store/2kgp5d4wh40b49gp4qwqh2b4il29gq6g-profile/bin/mkdir -p '/opt/guix/share/guile/site/2.2'/bin/bash: line 5: gawk: command not foundsed: couldn't flush stdout: Broken pipe /gnu/store/2kgp5d4wh40b49gp4qwqh2b4il29gq6g-profile/bin/mkdir -p '/opt/guix/lib/guile/2.2/site-ccache'/bin/bash: line 5: gawk: command not foundsed: couldn't write 47 items to stdout: Broken pipe/bin/bash: line 5: echo: write error: Broken pipe/bin/bash: line 5: echo: write error: Broken pipe/bin/bash: line 5: echo: write error: Broken pipe...
and another round of broken pipes. But the initial problem seems to be that gawk is not found. It is available in my build environment, but apparently that's not where it is looked for.
Konrad.
R
R
Ricardo Wurmus wrote on 26 May 2017 13:10
(name . Konrad Hinsen)(address . konrad.hinsen@fastmail.net)(address . 27080@debbugs.gnu.org)
87h907g9go.fsf@elephly.net
Hi Konrad,
Toggle quote (9 lines)> I am trying to build/install Guix 0.13 from sources (git checkout),> using a binary installation of a slightly earlier Guix in a Ubuntu 16.04> host system. Basically I am doing>> git checkout v0.13.0> guix environment guix> make check> make install
You did not run “./configure --localstatedir=/var”. In config.log youshould see what file paths were detected for the tools that are usedduring the build. It could be that this is outdated and that you shouldreconfigure.
--Ricardo
GPG: BCA6 89B6 3655 3801 C3C6 2150 197A 5888 235F ACAChttps://elephly.net
K
K
Konrad Hinsen wrote on 26 May 2017 15:53
Re: bug#27080: ¨make install" fails because of mis sing gawk
(name . Ricardo Wurmus)(address . rekado@elephly.net)(address . 27080@debbugs.gnu.org)
920162d3-7548-5f22-21c3-893fd427e353@fastmail.net
Hi Ricardo,
Thanks for your reply!
Toggle quote (2 lines)> You did not run “./configure --localstatedir=/var”.
I did, in an earlier cycle. More precisely, I did
./configure --prefix=/opt/guix --localstatedir=/var
in order to prevent Guix from overwriting some of Ubuntu's system files.
In order to start from a clean slate, I now did
guix environment guix make distclean ./bootstrap ./configure --prefix=/opt/guix --localstatedir=/var make check sudo make install
This fails even earlier, complaining about a missing makeinfo:
make[2]: Entering directory '/home/hinsen/Development/guix' MAKEINFO doc/guix.info /home/hinsen/Development/guix/build-aux/missing: line 81: makeinfo: command not found
Checking config.log, I see that indeed makeinfo has not been found:
MAKEINFO='${SHELL} /home/hinsen/Development/guix/build-aux/missing makeinfo'
However, it is available in my environment:
~/Development/guix [dev]$ which makeinfo /gnu/store/2kgp5d4wh40b49gp4qwqh2b4il29gq6g-profile/bin/makeinfo
There are a few other executables marked as missing: aclocal autoconf autoheader automake dot help2man
I started from scratch again, but added the paths for these executables manually to the generated Makefile, right after configure. That got me back to the error message that I got before:
/bin/bash: line 5: gawk: command not found sed: couldn't write 47 items to stdout: Broken pipe /bin/bash: line 5: echo: write error: Broken pipe ...
However, config.log says:
configure:2900: checking for gawk configure:2916: found /gnu/store/2kgp5d4wh40b49gp4qwqh2b4il29gq6g-profile/bin/gawk configure:2927: result: gawk
and Makefile contains
AWK = gawk
Next, I replaced this line by
AWK = /gnu/store/2kgp5d4wh40b49gp4qwqh2b4il29gq6g-profile/bin/gawk
and re-ran "make install". Success!
Conclusion: something is going wrong in configure.
Konrad.
R
R
Ricardo Wurmus wrote on 26 May 2017 16:56
Re: bug#27080: ¨make install" fails because of missing gawk
(name . Konrad Hinsen)(address . konrad.hinsen@fastmail.net)(address . 27080@debbugs.gnu.org)
8737brfyzq.fsf@elephly.net
Konrad Hinsen <konrad.hinsen@fastmail.net> writes:
Toggle quote (12 lines)> Hi Ricardo,>> Thanks for your reply!>>> You did not run “./configure --localstatedir=/var”.>> I did, in an earlier cycle. More precisely, I did>> ./configure --prefix=/opt/guix --localstatedir=/var>> in order to prevent Guix from overwriting some of Ubuntu's system files.
Guix will not overwrite any system files. It only writes to /gnu,/var/guix, and /etc/guix.
Toggle quote (9 lines)> In order to start from a clean slate, I now did>> guix environment guix> make distclean> ./bootstrap> ./configure --prefix=/opt/guix --localstatedir=/var> make check> sudo make install
[…]
Toggle quote (2 lines)> Conclusion: something is going wrong in configure.
No, the configure script is probably okay. Maybe something’s up withyour environment. Have you tried “guix environment --pure guix”?
-- Ricardo GPG: BCA6 89B6 3655 3801 C3C6 2150 197A 5888 235F ACAC https://elephly.net
K
K
Konrad Hinsen wrote on 26 May 2017 18:01
Re: bug#27080: ¨make install" fails because of mis sing gawk
(name . Ricardo Wurmus)(address . rekado@elephly.net)(address . 27080@debbugs.gnu.org)
9a1ca3b7-2eeb-15a2-6af7-a218a5de3292@fastmail.net
On 26/05/2017 16:56, Ricardo Wurmus wrote:
Toggle quote (5 lines)>> in order to prevent Guix from overwriting some of Ubuntu's system files.>> Guix will not overwrite any system files. It only writes to /gnu,> /var/guix, and /etc/guix.
It did when I first tried install-from-source a few months ago, and it took me a while to clean up the mess. More precisely, it put a lot of stuff into /usr/local, overwriting files in /usr/local/share that Ubuntu-installed software depended on. If that has changed in the meantime, that's great.
Toggle quote (3 lines)> No, the configure script is probably okay. Maybe something’s up with> your environment. Have you tried “guix environment --pure guix”?
I just did. No difference. Same config.log, same Makefile, same error messages.
Konrad.
R
R
Ricardo Wurmus wrote on 26 May 2017 18:44
Re: bug#27080: ¨make install" fails because of missing gawk
(name . Konrad Hinsen)(address . konrad.hinsen@fastmail.net)(address . 27080@debbugs.gnu.org)
87zidzefej.fsf@elephly.net
Konrad Hinsen <konrad.hinsen@fastmail.net> writes:
Toggle quote (13 lines)> On 26/05/2017 16:56, Ricardo Wurmus wrote:>>>> in order to prevent Guix from overwriting some of Ubuntu's system files.>>>> Guix will not overwrite any system files. It only writes to /gnu,>> /var/guix, and /etc/guix.>> It did when I first tried install-from-source a few months ago, and it> took me a while to clean up the mess. More precisely, it put a lot of> stuff into /usr/local, overwriting files in /usr/local/share that> Ubuntu-installed software depended on. If that has changed in the> meantime, that's great.
I don’t think it ever behaved like that, because it hardly has anythingto install. Hence I don’t think there have been any changes. Withoutadditional details it’s not very productive to talk about this, though.
Toggle quote (6 lines)>> No, the configure script is probably okay. Maybe something’s up with>> your environment. Have you tried “guix environment --pure guix”?>> I just did. No difference. Same config.log, same Makefile, same error> messages.
Could you share the output of “env” within the pure guix environment?
--Ricardo
GPG: BCA6 89B6 3655 3801 C3C6 2150 197A 5888 235F ACAChttps://elephly.net
K
K
Konrad Hinsen wrote on 26 May 2017 20:38
Re: bug#27080: ¨make install" fails because of mis sing gawk
(name . Ricardo Wurmus)(address . rekado@elephly.net)(address . 27080@debbugs.gnu.org)
8bc7e899-2b74-5b27-e9ff-4a49736ba946@fastmail.net
On 26/05/2017 18:44, Ricardo Wurmus wrote:
Toggle quote (4 lines)> I don’t think it ever behaved like that, because it hardly has anything> to install. Hence I don’t think there have been any changes. Without> additional details it’s not very productive to talk about this, though.
I am beginning to wonder if this is part of the anomalies I observe, because I agree that guix shouldn´t need to install anything beyond its entry point, the executable /usr/local/bin/guix. But on my system, it installs 1877 files under /opt/guix, and all those would probably go to /usr/local by default.
Proof:
> find /opt/guix -type f | wc -l1877
1273 of these files are under share:
> find /opt/guix/share -type f | wc -l1273 > ls /opt/guix/share/guile guix info locale man zsh

Toggle quote (8 lines)>>> No, the configure script is probably okay. Maybe something’s up with>>> your environment. Have you tried “guix environment --pure guix”?>>>> I just did. No difference. Same config.log, same Makefile, same error>> messages.> > Could you share the output of “env” within the pure guix environment?
Sure:
CPLUS_INCLUDE_PATH=/gnu/store/2kgp5d4wh40b49gp4qwqh2b4il29gq6g-profile/includeGUIX_LOCPATH=/gnu/store/2kgp5d4wh40b49gp4qwqh2b4il29gq6g-profile/lib/localeTERM=dumbLIBRARY_PATH=/gnu/store/2kgp5d4wh40b49gp4qwqh2b4il29gq6g-profile/libUSER=hinsenLS_COLORS=GUILE_LOAD_PATH=/gnu/store/2kgp5d4wh40b49gp4qwqh2b4il29gq6g-profile/share/guile/site/2.2GUIX_ENVIRONMENT=/gnu/store/2kgp5d4wh40b49gp4qwqh2b4il29gq6g-profileGUILE_LOAD_COMPILED_PATH=/gnu/store/2kgp5d4wh40b49gp4qwqh2b4il29gq6g-profile/lib/guile/2.2/site-ccache:/gnu/store/2kgp5d4wh40b49gp4qwqh2b4il29gq6g-profile/share/guile/site/2.2PATH=/gnu/store/2kgp5d4wh40b49gp4qwqh2b4il29gq6g-profile/bin:/gnu/store/2kgp5d4wh40b49gp4qwqh2b4il29gq6g-profile/sbinC_INCLUDE_PATH=/gnu/store/2kgp5d4wh40b49gp4qwqh2b4il29gq6g-profile/includePWD=/home/hinsen/Development/guixSHLVL=1HOME=/home/hinsenBASH_LOADABLES_PATH=/gnu/store/2kgp5d4wh40b49gp4qwqh2b4il29gq6g-profile/lib/bashLOGNAME=hinsenPKG_CONFIG_PATH=/gnu/store/2kgp5d4wh40b49gp4qwqh2b4il29gq6g-profile/lib/pkgconfigINFOPATH=/gnu/store/2kgp5d4wh40b49gp4qwqh2b4il29gq6g-profile/share/infoACLOCAL_PATH=/gnu/store/2kgp5d4wh40b49gp4qwqh2b4il29gq6g-profile/share/aclocalDISPLAY=:0_=/gnu/store/2kgp5d4wh40b49gp4qwqh2b4il29gq6g-profile/bin/env

Konrad.
R
R
Ricardo Wurmus wrote on 26 May 2017 22:27
Re: bug#27080: ¨make install" fails because of missing gawk
(name . Konrad Hinsen)(address . konrad.hinsen@fastmail.net)(address . 27080@debbugs.gnu.org)
87shjre53a.fsf@elephly.net
Konrad Hinsen <konrad.hinsen@fastmail.net> writes:
Toggle quote (24 lines)> On 26/05/2017 18:44, Ricardo Wurmus wrote:>>> I don’t think it ever behaved like that, because it hardly has anything>> to install. Hence I don’t think there have been any changes. Without>> additional details it’s not very productive to talk about this, though.>> I am beginning to wonder if this is part of the anomalies I observe,> because I agree that guix shouldn´t need to install anything beyond its> entry point, the executable /usr/local/bin/guix. But on my system, it> installs 1877 files under /opt/guix, and all those would probably go to> /usr/local by default.>> Proof:>> > find /opt/guix -type f | wc -l> 1877>> 1273 of these files are under share:>> > find /opt/guix/share -type f | wc -l> 1273> > ls /opt/guix/share/> guile guix info locale man zsh
Ah, you are, of course, completely right about this! I misspoke. Guixconsists of a growing number of Guile modules. These modules go to$prefix/share/guile/…, because that’s where Guile would read them from.
What I was referring to was installing Guix using the binary deploymentmethod. It essentially is a pre-filled /gnu/store directory, whichcontains all of Guix in its own prefix. Beyond that it doesn’t spillanything into the global namespace.
You are correct, however, that building from source and running “makeinstall” *will* install Guix to the specified prefix. What I’m prettysure does *not* happen, though, is that this *overwrites* any files thatUbuntu (or any other system) uses. It is well-behaved in that itinstalls things into the expected directories under the given prefix.
(With the “pre-inst-env” script it’s possible to run Guix withoutinstalling it, so you don’t even have to run “make install” at all ifyou just want to bootstrap Guix.)
It would be interesting to know which files it seemingly overwrote. Ifind it hard to guess.

Toggle quote (6 lines)>>>> No, the configure script is probably okay. Maybe something’s up with>>>> your environment. Have you tried “guix environment --pure guix”?>>>>>> I just did. No difference. Same config.log, same Makefile, same error>>> messages.
That’s very odd and I cannot reproduce it :(
Toggle quote (4 lines)>> Could you share the output of “env” within the pure guix environment?>> Sure: […]
This actually looks okay. The configure script looks for tools on thePATH, which appears to be correct. I don’t understand what’s going onhere. Maybe someone else has some ideas.
--Ricardo
GPG: BCA6 89B6 3655 3801 C3C6 2150 197A 5888 235F ACAChttps://elephly.net
K
K
Konrad Hinsen wrote on 28 May 2017 11:22
(name . Ricardo Wurmus)(address . rekado@elephly.net)(address . 27080@debbugs.gnu.org)
m1y3thcp4t.fsf@ddl.home
Ricardo Wurmus <rekado@elephly.net> writes:
Toggle quote (6 lines)> You are correct, however, that building from source and running “make> install” *will* install Guix to the specified prefix. What I’m pretty> sure does *not* happen, though, is that this *overwrites* any files that> Ubuntu (or any other system) uses. It is well-behaved in that it> installs things into the expected directories under the given prefix.
It does put everything into the correct directories, but that doesn'tprevent version conflicts with my Ubuntu installation. If I remembercorrectly it was the locale definitions that were not compatible.
Toggle quote (4 lines)> (With the “pre-inst-env” script it’s possible to run Guix without> installing it, so you don’t even have to run “make install” at all if> you just want to bootstrap Guix.)
That's a useful suggestion, thanks! All I want to do is develop my ownpackage definitions, and eventually contribute them to the officialdistribution. All I need is a way to run Guix-from-source under my useraccount.
Konrad.
L
L
Ludovic Courtès wrote on 28 May 2017 22:24
(name . Konrad Hinsen)(address . konrad.hinsen@fastmail.net)
878tlgpw5c.fsf@gnu.org
Hi Konrad,
Konrad Hinsen <konrad.hinsen@fastmail.net> skribis:
Toggle quote (2 lines)> Ricardo Wurmus <rekado@elephly.net> writes:
[...]
Toggle quote (9 lines)>> (With the “pre-inst-env” script it’s possible to run Guix without>> installing it, so you don’t even have to run “make install” at all if>> you just want to bootstrap Guix.)>> That's a useful suggestion, thanks! All I want to do is develop my own> package definitions, and eventually contribute them to the official> distribution. All I need is a way to run Guix-from-source under my user> account.
In that casehttps://gnu.org/software/guix/manual/html_node/Running-Guix-Before-It-Is-Installed.htmlshould be helpful if you haven’t seen it already!
HTH,Ludo’.
L
L
Ludovic Courtès wrote on 28 May 2017 22:28
(name . Konrad Hinsen)(address . konrad.hinsen@fastmail.net)
8737bopvye.fsf@gnu.org
Konrad Hinsen <konrad.hinsen@fastmail.net> skribis:
Toggle quote (21 lines)> In order to start from a clean slate, I now did>> guix environment guix> make distclean> ./bootstrap> ./configure --prefix=/opt/guix --localstatedir=/var> make check> sudo make install>> This fails even earlier, complaining about a missing makeinfo:>> make[2]: Entering directory '/home/hinsen/Development/guix'> MAKEINFO doc/guix.info> /home/hinsen/Development/guix/build-aux/missing: line 81: makeinfo:> command not found>> Checking config.log, I see that indeed makeinfo has not been found:>> MAKEINFO='${SHELL} /home/hinsen/Development/guix/build-aux/missing> makeinfo'
[...]
Toggle quote (17 lines)> However, config.log says:>> configure:2900: checking for gawk> configure:2916: found> /gnu/store/2kgp5d4wh40b49gp4qwqh2b4il29gq6g-profile/bin/gawk> configure:2927: result: gawk>> and Makefile contains>> AWK = gawk>> Next, I replaced this line by>> AWK = /gnu/store/2kgp5d4wh40b49gp4qwqh2b4il29gq6g-profile/bin/gawk>> and re-ran "make install". Success!
Could it be that there was a cache file here (‘config.cache’, as createdby “./configure -C”)?
Ludo’.
K
K
Konrad Hinsen wrote on 29 May 2017 16:47
Re: bug#27080: ¨make install" fails because of mis sing gawk
(name . Ludovic Courtès)(address . ludo@gnu.org)
d7a109d9-ac84-0e4e-bf76-fb33e3fb8caa@fastmail.net
Hi Ludo,
Toggle quote (9 lines)>> Next, I replaced this line by>>>> AWK = /gnu/store/2kgp5d4wh40b49gp4qwqh2b4il29gq6g-profile/bin/gawk>>>> and re-ran "make install". Success!> > Could it be that there was a cache file here (‘config.cache’, as created> by “./configure -C”)?
There is no config.cache, and I never used -C. Plus I do "make distclean" all the time.
> In that case > https://gnu.org/software/guix/manual/html_node/Running-Guix-Before-It-Is-Installed.html > should be helpful if you haven’t seen it already!
Just did. Looks like what I need.
Thanks, Konrad.
L
L
Ludovic Courtès wrote on 3 Aug 2017 00:26
control message for bug #27080
(address . control@debbugs.gnu.org)
87vam5r4hs.fsf@gnu.org
tags 27080 unreproducibleclose 27080
?
Your comment

This issue is archived.

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