Skip to content
This repository was archived by the owner on Oct 16, 2021. It is now read-only.

Commit 110aa7c

Browse files
rvaggjBarz
authored andcommitted
build: enable xz compressed tarballs where possible
PR-URL: nodejs/node#4894 Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: Johan Bergström <bugs@bergstroem.nu> Reviewed-By: James M Snell <jasnell@gmail.com>
1 parent 42afb84 commit 110aa7c

File tree

1 file changed

+31
-2
lines changed

1 file changed

+31
-2
lines changed

Makefile

Lines changed: 31 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -324,6 +324,9 @@ TARNAME=node-$(FULLVERSION)
324324
TARBALL=$(TARNAME).tar
325325
BINARYNAME=$(TARNAME)-$(OSTYPE)-$(ARCH)
326326
BINARYTAR=$(BINARYNAME).tar
327+
# OSX doesn't have xz installed by default, http://macpkg.sourceforge.net/
328+
XZ=$(shell which xz > /dev/null 2>&1; echo $$?)
329+
XZ_COMPRESSION ?= 9
327330
PKG=$(TARNAME).pkg
328331
PACKAGEMAKER ?= /Developer/Applications/Utilities/PackageMaker.app/Contents/MacOS/PackageMaker
329332
PKGDIR=out/dist-osx
@@ -397,7 +400,11 @@ $(TARBALL): release-only node doc
397400
find $(TARNAME)/ -type l | xargs rm # annoying on windows
398401
tar -cf $(TARNAME).tar $(TARNAME)
399402
rm -rf $(TARNAME)
400-
gzip -f -9 $(TARNAME).tar
403+
gzip -c -f -9 $(TARNAME).tar > $(TARNAME).tar.gz
404+
ifeq ($(XZ), 0)
405+
xz -c -f -$(XZ_COMPRESSION) $(TARNAME).tar > $(TARNAME).tar.xz
406+
endif
407+
rm $(TARNAME).tar
401408

402409
tar: $(TARBALL)
403410

@@ -406,6 +413,11 @@ tar-upload: tar
406413
chmod 664 node-$(FULLVERSION).tar.gz
407414
scp -p node-$(FULLVERSION).tar.gz $(STAGINGSERVER):nodejs/$(DISTTYPEDIR)/$(FULLVERSION)/node-$(FULLVERSION).tar.gz
408415
ssh $(STAGINGSERVER) "touch nodejs/$(DISTTYPEDIR)/$(FULLVERSION)/node-$(FULLVERSION).tar.gz.done"
416+
ifeq ($(XZ), 0)
417+
chmod 664 node-$(FULLVERSION).tar.xz
418+
scp -p node-$(FULLVERSION).tar.xz $(STAGINGSERVER):nodejs/$(DISTTYPEDIR)/$(FULLVERSION)/node-$(FULLVERSION).tar.xz
419+
ssh $(STAGINGSERVER) "touch nodejs/$(DISTTYPEDIR)/$(FULLVERSION)/node-$(FULLVERSION).tar.xz.done"
420+
endif
409421

410422
doc-upload: tar
411423
ssh $(STAGINGSERVER) "mkdir -p nodejs/$(DISTTYPEDIR)/$(FULLVERSION)"
@@ -424,6 +436,9 @@ $(TARBALL)-headers: config.gypi release-only
424436
tar -cf $(TARNAME)-headers.tar $(TARNAME)
425437
rm -rf $(TARNAME)
426438
gzip -c -f -9 $(TARNAME)-headers.tar > $(TARNAME)-headers.tar.gz
439+
ifeq ($(XZ), 0)
440+
xz -c -f -$(XZ_COMPRESSION) $(TARNAME)-headers.tar > $(TARNAME)-headers.tar.xz
441+
endif
427442
rm $(TARNAME)-headers.tar
428443

429444
tar-headers: $(TARBALL)-headers
@@ -433,6 +448,11 @@ tar-headers-upload: tar-headers
433448
chmod 664 $(TARNAME)-headers.tar.gz
434449
scp -p $(TARNAME)-headers.tar.gz $(STAGINGSERVER):nodejs/$(DISTTYPEDIR)/$(FULLVERSION)/$(TARNAME)-headers.tar.gz
435450
ssh $(STAGINGSERVER) "touch nodejs/$(DISTTYPEDIR)/$(FULLVERSION)/$(TARNAME)-headers.tar.gz.done"
451+
ifeq ($(XZ), 0)
452+
chmod 664 $(TARNAME)-headers.tar.xz
453+
scp -p $(TARNAME)-headers.tar.xz $(STAGINGSERVER):nodejs/$(DISTTYPEDIR)/$(FULLVERSION)/$(TARNAME)-headers.tar.xz
454+
ssh $(STAGINGSERVER) "touch nodejs/$(DISTTYPEDIR)/$(FULLVERSION)/$(TARNAME)-headers.tar.xz.done"
455+
endif
436456

437457
$(BINARYTAR): release-only
438458
rm -rf $(BINARYNAME)
@@ -445,7 +465,11 @@ $(BINARYTAR): release-only
445465
cp ChangeLog $(BINARYNAME)
446466
tar -cf $(BINARYNAME).tar $(BINARYNAME)
447467
rm -rf $(BINARYNAME)
448-
gzip -f -9 $(BINARYNAME).tar
468+
gzip -c -f -9 $(BINARYNAME).tar > $(BINARYNAME).tar.gz
469+
ifeq ($(XZ), 0)
470+
xz -c -f -$(XZ_COMPRESSION) $(BINARYNAME).tar > $(BINARYNAME).tar.xz
471+
endif
472+
rm $(BINARYNAME).tar
449473

450474
binary: $(BINARYTAR)
451475

@@ -454,6 +478,11 @@ binary-upload-arch: binary
454478
chmod 664 node-$(FULLVERSION)-$(OSTYPE)-$(ARCH).tar.gz
455479
scp -p node-$(FULLVERSION)-$(OSTYPE)-$(ARCH).tar.gz $(STAGINGSERVER):nodejs/$(DISTTYPEDIR)/$(FULLVERSION)/node-$(FULLVERSION)-$(OSTYPE)-$(ARCH).tar.gz
456480
ssh $(STAGINGSERVER) "touch nodejs/$(DISTTYPEDIR)/$(FULLVERSION)/node-$(FULLVERSION)-$(OSTYPE)-$(ARCH).tar.gz.done"
481+
ifeq ($(XZ), 0)
482+
chmod 664 node-$(FULLVERSION)-$(OSTYPE)-$(ARCH).tar.xz
483+
scp -p node-$(FULLVERSION)-$(OSTYPE)-$(ARCH).tar.xz $(STAGINGSERVER):nodejs/$(DISTTYPEDIR)/$(FULLVERSION)/node-$(FULLVERSION)-$(OSTYPE)-$(ARCH).tar.xz
484+
ssh $(STAGINGSERVER) "touch nodejs/$(DISTTYPEDIR)/$(FULLVERSION)/node-$(FULLVERSION)-$(OSTYPE)-$(ARCH).tar.xz.done"
485+
endif
457486

458487
ifeq ($(OSTYPE),darwin)
459488
binary-upload:

0 commit comments

Comments
 (0)