zsh-workers
 help / color / mirror / code / Atom feed
* mkmakemod.sh 2nd stage build failure
@ 2014-01-05  2:21 Kete
  2014-01-05 19:21 ` Bart Schaefer
  0 siblings, 1 reply; 4+ messages in thread
From: Kete @ 2014-01-05  2:21 UTC (permalink / raw)
  To: zsh-workers

Hello,
I am trying to build Zsh for an emerging package manager named Guix, but the build failed at the second stage of mkmakemod.sh when it tried to use /bin/sh. I see I can disable the 2nd stage with an -i option. What are the consequences of disabling the second stage? Here is my error (you might notice Guix is based on Nix):

starting phase `build'
make[1]: Entering directory '/tmp/nix-build-zsh-5.0.2.drv-1/zsh-5.0.4/Src'
cd .. && /nix/store/97vnvqq5daji73b71v4cnmyaa7r3hzk2-bash-4.2/bin/sh $top_srcdir/Src/mkmakemod.sh Src Makemod
creating Src/Makemod.in
Src/../Src/mkmakemod.sh: line 467: /bin/sh: No such file or directory
Makefile:299: recipe for target 'Makemod' failed
make[1]: *** [Makemod] Error 1

Here are lines 464-470 of mkmakemod.sh:

if $second_stage ; then
    trap "rm -f $the_subdir/${the_makefile}; exit 1" 1 2 15

    ${CONFIG_SHELL-/bin/sh} ./config.status \
	--file=$the_subdir/${the_makefile}:$the_subdir/${the_makefile}.in ||
    exit 1
fi


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: mkmakemod.sh 2nd stage build failure
  2014-01-05  2:21 mkmakemod.sh 2nd stage build failure Kete
@ 2014-01-05 19:21 ` Bart Schaefer
  2014-01-05 20:10   ` Peter Stephenson
  2014-01-05 23:35   ` Kete
  0 siblings, 2 replies; 4+ messages in thread
From: Bart Schaefer @ 2014-01-05 19:21 UTC (permalink / raw)
  To: Kete, zsh-workers

On Jan 4,  9:21pm, Kete wrote:
} Subject: mkmakemod.sh 2nd stage build failure
}
} Hello,
} I am trying to build Zsh for an emerging package manager named Guix,
} but the build failed at the second stage of mkmakemod.sh when it tried
} to use /bin/sh. I see I can disable the 2nd stage with an -i option.
} What are the consequences of disabling the second stage?

The -m and -i options of mkmakemod.sh are used by different parts of the
build process (see Src/Makemod.in.in) -- they aren't intended for the
caller of the build process to change it.

The second stage has to be done at least once during the build, it can't
be avoided entirely.

} creating Src/Makemod.in
} Src/../Src/mkmakemod.sh: line 467: /bin/sh: No such file or directory
} Makefile:299: recipe for target 'Makemod' failed
} make[1]: *** [Makemod] Error 1
} 
} Here are lines 464-470 of mkmakemod.sh:
} 
} if $second_stage ; then
}     trap "rm -f $the_subdir/${the_makefile}; exit 1" 1 2 15
} 
}     ${CONFIG_SHELL-/bin/sh} ./config.status \
} 	--file=$the_subdir/${the_makefile}:$the_subdir/${the_makefile}.in ||
}     exit 1
} fi

Your better option here is to export a value for CONFIG_SHELL into the
environment before starting the build.  There must be *some* shell 
that is executing mkmakemod.sh itself; you just need set CONFIG_SHELL
to that path.  (We can't guarantee that $SHELL is suitable.)


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: mkmakemod.sh 2nd stage build failure
  2014-01-05 19:21 ` Bart Schaefer
@ 2014-01-05 20:10   ` Peter Stephenson
  2014-01-05 23:35   ` Kete
  1 sibling, 0 replies; 4+ messages in thread
From: Peter Stephenson @ 2014-01-05 20:10 UTC (permalink / raw)
  To: Kete, zsh-workers

On Sun, 05 Jan 2014 11:21:41 -0800
Bart Schaefer <schaefer@brasslantern.com> wrote:
> Your better option here is to export a value for CONFIG_SHELL into the
> environment before starting the build.  There must be *some* shell 
> that is executing mkmakemod.sh itself; you just need set CONFIG_SHELL
> to that path.  (We can't guarantee that $SHELL is suitable.)

Even better, set it before running ./configure, as this looks like a standard
autoconf environment variable.  /bin/sh is standard enough
that if that's not available or appropriate exporting CONFIG_SHELL
permanently to whatever is makes sens.

pws


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: mkmakemod.sh 2nd stage build failure
  2014-01-05 19:21 ` Bart Schaefer
  2014-01-05 20:10   ` Peter Stephenson
@ 2014-01-05 23:35   ` Kete
  1 sibling, 0 replies; 4+ messages in thread
From: Kete @ 2014-01-05 23:35 UTC (permalink / raw)
  To: Bart Schaefer; +Cc: zsh-workers

On Sunday, January 05, 2014 11:21:41 AM Bart Schaefer wrote:
> The -m and -i options of mkmakemod.sh are used by different parts of the
> build process (see Src/Makemod.in.in) -- they aren't intended for the
> caller of the build process to change it.
> 
> The second stage has to be done at least once during the build, it can't
> be avoided entirely.
> 
Thanks for answering my questions about the second stage.
> 
> Your better option here is to export a value for CONFIG_SHELL into the
> environment before starting the build.  There must be *some* shell
> that is executing mkmakemod.sh itself; you just need set CONFIG_SHELL
> to that path.  (We can't guarantee that $SHELL is suitable.)

The package manager maintainer saw my question and taught me how to replace 
instances of '/bin/sh' with the shell name, e.g., bash, to just call the 
command found in $PATH. Kind regards


^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2014-01-05 23:35 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-01-05  2:21 mkmakemod.sh 2nd stage build failure Kete
2014-01-05 19:21 ` Bart Schaefer
2014-01-05 20:10   ` Peter Stephenson
2014-01-05 23:35   ` Kete

Code repositories for project(s) associated with this public inbox

	https://git.vuxu.org/mirror/zsh/

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).