From 55aa1e634dae1ab53f50329ee44c1259d709fd66 Mon Sep 17 00:00:00 2001 From: Brian Anderson Date: Fri, 21 Nov 2014 14:45:45 -0800 Subject: [PATCH] Use rust-installer for installation This is just a refactoring of the current installer so that Rust and Cargo use the same codebase. cc #16456 --- .gitmodules | 3 +++ mk/dist.mk | 21 ++++++++++++++------- mk/install.mk | 4 ++-- src/rust-installer | 1 + 4 files changed, 20 insertions(+), 9 deletions(-) create mode 160000 src/rust-installer diff --git a/.gitmodules b/.gitmodules index 987791ac9db5f..6cd704b370376 100644 --- a/.gitmodules +++ b/.gitmodules @@ -11,3 +11,6 @@ [submodule "src/jemalloc"] path = src/jemalloc url = https://github.com/rust-lang/jemalloc.git +[submodule "src/rust-installer"] + path = src/rust-installer + url = https://github.com/rust-lang/rust-installer diff --git a/mk/dist.mk b/mk/dist.mk index 00f6e8617391d..b47b08a5f997a 100644 --- a/mk/dist.mk +++ b/mk/dist.mk @@ -209,33 +209,40 @@ distcheck-osx: dist-osx # Unix binary installer tarballs ###################################################################### +NON_INSTALLED_PREFIXES=COPYRIGHT,LICENSE-APACHE,LICENSE-MIT,README.md,doc + define DEF_INSTALLER $$(eval $$(call DEF_PREPARE,dir-$(1))) dist-install-dir-$(1): PREPARE_HOST=$(1) dist-install-dir-$(1): PREPARE_TARGETS=$(2) -dist-install-dir-$(1): PREPARE_DEST_DIR=tmp/dist/$$(PKG_NAME)-$(1) +dist-install-dir-$(1): PREPARE_DEST_DIR=tmp/dist/$$(PKG_NAME)-$(1)-image dist-install-dir-$(1): PREPARE_DIR_CMD=$(DEFAULT_PREPARE_DIR_CMD) dist-install-dir-$(1): PREPARE_BIN_CMD=$(DEFAULT_PREPARE_BIN_CMD) dist-install-dir-$(1): PREPARE_LIB_CMD=$(DEFAULT_PREPARE_LIB_CMD) dist-install-dir-$(1): PREPARE_MAN_CMD=$(DEFAULT_PREPARE_MAN_CMD) dist-install-dir-$(1): PREPARE_CLEAN=true dist-install-dir-$(1): prepare-base-dir-$(1) docs compiler-docs - $$(Q)(cd $$(PREPARE_DEST_DIR)/ && find . -type f | sed 's/^\.\///') \ - > tmp/dist/manifest-$(1).in - $$(Q)mv tmp/dist/manifest-$(1).in $$(PREPARE_DEST_DIR)/$$(CFG_LIBDIR_RELATIVE)/rustlib/manifest.in -# Add remaining non-installed files $$(Q)$$(PREPARE_MAN_CMD) $$(S)COPYRIGHT $$(PREPARE_DEST_DIR) $$(Q)$$(PREPARE_MAN_CMD) $$(S)LICENSE-APACHE $$(PREPARE_DEST_DIR) $$(Q)$$(PREPARE_MAN_CMD) $$(S)LICENSE-MIT $$(PREPARE_DEST_DIR) $$(Q)$$(PREPARE_MAN_CMD) $$(S)README.md $$(PREPARE_DEST_DIR) $$(Q)cp -r doc $$(PREPARE_DEST_DIR) - $$(Q)$$(PREPARE_BIN_CMD) $$(S)src/etc/install.sh $$(PREPARE_DEST_DIR) dist/$$(PKG_NAME)-$(1).tar.gz: dist-install-dir-$(1) @$(call E, build: $$@) - $$(Q)tar -czf dist/$$(PKG_NAME)-$(1).tar.gz -C tmp/dist $$(PKG_NAME)-$(1) + $$(Q)$$(S)src/rust-installer/gen-installer.sh \ + --product-name=Rust \ + --verify-bin=rustc \ + --rel-manifest-dir=rustlib \ + --success-message=Rust-is-ready-to-roll. \ + --image-dir=tmp/dist/$$(PKG_NAME)-$(1)-image \ + --work-dir=tmp/dist \ + --output-dir=dist \ + --non-installed-prefixes=$$(NON_INSTALLED_PREFIXES) \ + --package-name=$$(PKG_NAME)-$(1) + $$(Q)rm -R tmp/dist/$$(PKG_NAME)-$(1)-image endef diff --git a/mk/install.mk b/mk/install.mk index 88b451f661af2..632df3c754b8d 100644 --- a/mk/install.mk +++ b/mk/install.mk @@ -25,7 +25,7 @@ endif # Remove tmp files because it's a decent amount of disk space $(Q)rm -R tmp/dist -prepare_install: dist-install-dir-$(CFG_BUILD) | tmp/empty_dir +prepare_install: dist/$(PKG_NAME)-$(CFG_BUILD).tar.gz | tmp/empty_dir uninstall: ifeq (root user, $(USER) $(patsubst %,user,$(SUDO_USER))) @@ -38,7 +38,7 @@ endif # Remove tmp files because it's a decent amount of disk space $(Q)rm -R tmp/dist -prepare_uninstall: dist-install-dir-$(CFG_BUILD) | tmp/empty_dir +prepare_uninstall: dist/$(PKG_NAME)-$(CFG_BUILD).tar.gz | tmp/empty_dir .PHONY: install prepare_install uninstall prepare_uninstall diff --git a/src/rust-installer b/src/rust-installer new file mode 160000 index 0000000000000..26ee1572c38f4 --- /dev/null +++ b/src/rust-installer @@ -0,0 +1 @@ +Subproject commit 26ee1572c38f4b263903c61e959083029d028348