Skip to content

Commit

Permalink
help2man: Make safe to use in bootstrap stdenv.
Browse files Browse the repository at this point in the history
  • Loading branch information
shlevy committed Feb 19, 2018
1 parent fae4caa commit c48fe8c
Showing 1 changed file with 16 additions and 8 deletions.
24 changes: 16 additions & 8 deletions pkgs/development/tools/misc/help2man/default.nix
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
{ stdenv, hostPlatform, fetchurl, perl, gettext, LocaleGettext, makeWrapper }:
{ stdenv, hostPlatform, fetchurl, perl, gettext, LocaleGettext }:

stdenv.mkDerivation rec {
name = "help2man-1.47.5";
Expand All @@ -8,19 +8,27 @@ stdenv.mkDerivation rec {
sha256 = "1cb14kp380jzk1yi4i7x9d8qplc8c5mgcbgycgs9ggpx34jhp9kw";
};

nativeBuildInputs = [ makeWrapper gettext LocaleGettext ];
nativeBuildInputs = [ gettext LocaleGettext ];
buildInputs = [ perl LocaleGettext ];

doCheck = false; # target `check' is missing

patches = if hostPlatform.isCygwin then [ ./1.40.4-cygwin-nls.patch ] else null;

postInstall =
'' wrapProgram "$out/bin/help2man" \
--prefix PERL5LIB : "$(echo ${LocaleGettext}/lib/perl*/site_perl)" \
${stdenv.lib.optionalString hostPlatform.isCygwin "--prefix PATH : ${gettext}/bin"}
'';

# We don't use makeWrapper here because it uses substitutions our
# bootstrap shell can't handle.
postInstall = ''
gettext_perl="$(echo ${LocaleGettext}/lib/perl*/site_perl)"
mv $out/bin/help2man $out/bin/.help2man-wrapped
cat > $out/bin/help2man <<EOF
#! $SHELL -e
export PERL5LIB=\''${PERL5LIB:+:}$gettext_perl
${stdenv.lib.optionalString hostPlatform.isCygwin
"export PATH=\''${PATH:+:}${gettext}/bin"}
exec -a \$0 $out/bin/.help2man-wrapped "\$@"
EOF
chmod +x $out/bin/help2man
'';

meta = with stdenv.lib; {
description = "Generate man pages from `--help' output";
Expand Down

6 comments on commit c48fe8c

@dezgeg
Copy link
Contributor

@dezgeg dezgeg commented on c48fe8c Feb 19, 2018

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@shlevy Are you sure it's an actual problem with the bootstrap shell but rather with #!/bin/sh on nixUnstable+#34628.

As a quick workaround, try reverting this + building with sandboxes off.

@shlevy
Copy link
Member Author

@shlevy shlevy commented on c48fe8c Feb 19, 2018

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@dezgeg I'm not certain, but why would #/bin/sh be used here?

@dezgeg
Copy link
Contributor

@dezgeg dezgeg commented on c48fe8c Feb 19, 2018

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I find it strange that it would start to suddenly break otherwise.

@shlevy
Copy link
Member Author

@shlevy shlevy commented on c48fe8c Feb 19, 2018

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@dezgeg It didn't suddenly break :) in the commit after this one, I update gnumake in such a way that it indirectly depends on help2man, so now we need a bootstrap help2man, before this we didn't.

@shlevy
Copy link
Member Author

@shlevy shlevy commented on c48fe8c Feb 19, 2018

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

(note that this is not on master)

@dezgeg
Copy link
Contributor

@dezgeg dezgeg commented on c48fe8c Feb 19, 2018

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah hmm, makes sense.

Please sign in to comment.