[commit: ghc] master: build system: Ensure there are no duplicate files in bindist list (fefcbfa)

git at git.haskell.org git at git.haskell.org
Fri Jul 21 02:17:08 UTC 2017


Repository : ssh://git@git.haskell.org/ghc

On branch  : master
Link       : http://ghc.haskell.org/trac/ghc/changeset/fefcbfa86b73517d5002366d0703ce694c6d228d/ghc

>---------------------------------------------------------------

commit fefcbfa86b73517d5002366d0703ce694c6d228d
Author: Ben Gamari <bgamari.foss at gmail.com>
Date:   Thu Jul 20 21:39:27 2017 -0400

    build system: Ensure there are no duplicate files in bindist list
    
    Several executables inexplicably appear twice in bindist.list, which
    ends up producing multiple tar file entries, consequently breaking BSD
    tar during extraction. I spent a fair amount of time trying to work out
    where these duplicates were coming from to no avail. Since Hadrian is
    right around the corner I'm satisfied with a terrible hack: just uniq
    bindist.list before producing the bindist tarball.
    
    Test Plan: Validate
    
    Reviewers: austin
    
    Subscribers: rwbarton, thomie
    
    GHC Trac Issues: #13979, #13974
    
    Differential Revision: https://phabricator.haskell.org/D3767


>---------------------------------------------------------------

fefcbfa86b73517d5002366d0703ce694c6d228d
 ghc.mk | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/ghc.mk b/ghc.mk
index cdab331..4eb1658 100644
--- a/ghc.mk
+++ b/ghc.mk
@@ -1125,7 +1125,8 @@ unix-binary-dist-prep:
 	$(call removeFiles,$(BIN_DIST_PREP_TAR))
 # h means "follow symlinks", e.g. if aclocal.m4 is a symlink to a source
 # tree then we want to include the real file, not a symlink to it
-	cd bindistprep && "$(TAR_CMD)" hcf - -T ../bindist-list | $(TAR_COMP_CMD) -c > ../$(BIN_DIST_PREP_TAR_COMP)
+	sort bindist-list | uniq > bindist-list.uniq
+	cd bindistprep && "$(TAR_CMD)" hcf - -T ../bindist-list.uniq | $(TAR_COMP_CMD) -c > ../$(BIN_DIST_PREP_TAR_COMP)
 
 windows-binary-dist-prep:
 	$(call removeTrees,bindistprep/)
@@ -1436,6 +1437,7 @@ distclean : clean
 
 # We make these when making or testing bindists
 	$(call removeFiles,bindist-list)
+	$(call removeFiles,bindist-list.uniq)
 	$(call removeTrees,bindisttest/a)
 
 # Not sure why this is being cleaned here.



More information about the ghc-commits mailing list