Don't use $SHELL in wrapper scripts
authorJoachim Breitner <nomeata@debian.org>
Tue, 1 Aug 2017 19:30:09 +0000 (19:30 +0000)
committerBen Gamari <ben@smart-cactus.org>
Thu, 26 Oct 2017 23:12:54 +0000 (19:12 -0400)
Do not use $SHELL as $SHELL is the user's preferred interactive shell.
We do not want this to leak into the wrapper scripts.

driver/ghci/ghc.mk
rules/shell-wrapper.mk
utils/mkdirhier/ghc.mk

index 0f31884..0e18a5f 100644 (file)
@@ -21,7 +21,7 @@ install_driver_ghci:
        $(INSTALL_DIR) "$(DESTDIR)$(bindir)"
        $(call removeFiles,                                "$(WRAPPER)")
        $(CREATE_SCRIPT)                                   "$(WRAPPER)"
-       echo '#!$(SHELL)'                               >> "$(WRAPPER)"
+       echo '#!/bin/sh'                                   >> "$(WRAPPER)"
        echo 'exec "$(bindir)/$(CrossCompilePrefix)ghc-$(ProjectVersion)" --interactive "$$@"' >> "$(WRAPPER)"
        $(EXECUTABLE_FILE)                                 "$(WRAPPER)"
        $(call removeFiles,"$(DESTDIR)$(bindir)/$(CrossCompilePrefix)ghci")
@@ -56,7 +56,7 @@ install_driver_ghcii: GHCII_SCRIPT_VERSIONED = $(DESTDIR)$(bindir)/ghcii-$(Proje
 install_driver_ghcii:
        $(INSTALL_DIR) "$(DESTDIR)$(bindir)"
        $(call removeFiles,"$(GHCII_SCRIPT)")
-       echo "#!$(SHELL)"                                  >> $(GHCII_SCRIPT)
+       echo "#!/bin/sh"                                        >> $(GHCII_SCRIPT)
        echo 'exec "$$(dirname "$$0")"/ghc --interactive "$$@"' >> $(GHCII_SCRIPT)
        $(EXECUTABLE_FILE) $(GHCII_SCRIPT)
        cp $(GHCII_SCRIPT) $(GHCII_SCRIPT_VERSIONED)
index eb7d8f1..bdab6e2 100644 (file)
@@ -41,7 +41,7 @@ $$($1_$2_INPLACE_WRAPPER): $$($1_$2_SHELL_WRAPPER_NAME)
 endif
 $$($1_$2_INPLACE_WRAPPER): $$($1_$2_INPLACE)
        $$(call removeFiles,                                                    $$@)
-       echo '#!$$(SHELL)'                                                   >> $$@
+       echo '#!/bin/sh'                                                     >> $$@
        echo 'executablename="$$(TOP)/$$<"'                                  >> $$@
        echo 'datadir="$$(TOP)/$$(INPLACE_LIB)"'                             >> $$@
        echo 'bindir="$$(TOP)/$$(INPLACE_BIN)"'                              >> $$@
@@ -80,7 +80,7 @@ install_$1_$2_wrapper:
        $$(INSTALL_DIR) "$$(DESTDIR)$$(bindir)"
        $$(call removeFiles,                                        "$$(WRAPPER)")
        $$(CREATE_SCRIPT)                                           "$$(WRAPPER)"
-       echo '#!$$(SHELL)'                                       >> "$$(WRAPPER)"
+       echo '#!/bin/sh'                                         >> "$$(WRAPPER)"
        echo 'exedir="$$(ghclibexecdir)/bin"'                    >> "$$(WRAPPER)"
        echo 'exeprog="$$($1_$2_PROG)"'                          >> "$$(WRAPPER)"
        echo 'executablename="$$$$exedir/$$$$exeprog"'           >> "$$(WRAPPER)"
@@ -106,7 +106,7 @@ BINDIST_EXTRAS += $$($1_$2_BINDIST_WRAPPER)
 
 $$($1_$2_BINDIST_WRAPPER): $1/$2/build/tmp/$$($1_$2_PROG)
        $$(call removeFiles,                                                  $$@)
-       echo '#!$$(SHELL)'                                                 >> $$@
+       echo '#!/bin/sh'                                                   >> $$@
 ifeq "$$(DYNAMIC_GHC_PROGRAMS)" "YES"
        echo '$$(call prependLibraryPath,$$($1_$2_DEP_LIB_REL_DIRS_SEARCHPATH))' >> $$@
 endif
index 55803f0..2e3a301 100644 (file)
@@ -14,7 +14,7 @@ $(MKDIRHIER) : utils/mkdirhier/mkdirhier.sh
        mkdir -p $(INPLACE_BIN)
        mkdir -p $(INPLACE_LIB)
        $(call removeFiles,$@)
-       echo '#!$(SHELL)'                >> $@
+       echo '#!/bin/sh'                 >> $@
        cat utils/mkdirhier/mkdirhier.sh >> $@
        $(EXECUTABLE_FILE) $@