aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorstefson <herrtimson@yahoo.de>2019-10-29 20:34:33 +0100
committerMikhail Pukhlikov <cynede@gentoo.org>2019-10-31 13:44:23 +0400
commit324b8f073cf290eb2f227aee92b3368e8046d199 (patch)
tree2d17d6441b47479e0d2a206c5405b02fb15e3dd7 /dev-lang
parentReadme update (diff)
downloadrust-324b8f073cf290eb2f227aee92b3368e8046d199.tar.gz
rust-324b8f073cf290eb2f227aee92b3368e8046d199.tar.bz2
rust-324b8f073cf290eb2f227aee92b3368e8046d199.zip
dev-lang/rust: add upstream fix from pr65932
the bootstrap script uses python to extract the stage0, and given that someone out there's still using python2 for that, it will fail, as there's no built in support for lzma prior to python-3.4 the updated patch solves this problem, as it detects the used python version and chooses tar.gz for users of python2 and tar.xz for those of python3 Signed-off-by: Steffen Kuhn <nielson2@yandex.com> Signed-off-by: Mikhail Pukhlikov <cynede@gentoo.org>
Diffstat (limited to 'dev-lang')
-rw-r--r--dev-lang/rust/files/37c5cb8118b6de04dd5d4e5e43787c8b83339472.patch46
-rw-r--r--dev-lang/rust/files/pr65932.patch79
-rw-r--r--dev-lang/rust/rust-999.ebuild2
-rw-r--r--dev-lang/rust/rust-9999.ebuild2
4 files changed, 81 insertions, 48 deletions
diff --git a/dev-lang/rust/files/37c5cb8118b6de04dd5d4e5e43787c8b83339472.patch b/dev-lang/rust/files/37c5cb8118b6de04dd5d4e5e43787c8b83339472.patch
deleted file mode 100644
index 6504fbe..0000000
--- a/dev-lang/rust/files/37c5cb8118b6de04dd5d4e5e43787c8b83339472.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-From 37c5cb8118b6de04dd5d4e5e43787c8b83339472 Mon Sep 17 00:00:00 2001
-From: stefson <hidden@yahoo.de>
-Date: Fri, 25 Oct 2019 13:20:03 +0200
-Subject: [PATCH] rust/src/bootstrap.py: change src url from tar.gz to tar.xz
-
----
- src/bootstrap/bootstrap.py | 8 ++++----
- 1 file changed, 4 insertions(+), 4 deletions(-)
-
-diff --git a/src/bootstrap/bootstrap.py b/src/bootstrap/bootstrap.py
-index 4caf36a6f2a5..6c2f522f50d6 100644
---- a/src/bootstrap/bootstrap.py
-+++ b/src/bootstrap/bootstrap.py
-@@ -105,7 +105,7 @@ def verify(path, sha_path, verbose):
- def unpack(tarball, dst, verbose=False, match=None):
- """Unpack the given tarball file"""
- print("extracting", tarball)
-- fname = os.path.basename(tarball).replace(".tar.gz", "")
-+ fname = os.path.basename(tarball).replace(".tar.xz", "")
- with contextlib.closing(tarfile.open(tarball)) as tar:
- for member in tar.getnames():
- if "/" not in member:
-@@ -349,12 +349,12 @@ def download_stage0(self):
- self.program_out_of_date(self.rustc_stamp())):
- if os.path.exists(self.bin_root()):
- shutil.rmtree(self.bin_root())
-- filename = "rust-std-{}-{}.tar.gz".format(
-+ filename = "rust-std-{}-{}.tar.xz".format(
- rustc_channel, self.build)
- pattern = "rust-std-{}".format(self.build)
- self._download_stage0_helper(filename, pattern)
-
-- filename = "rustc-{}-{}.tar.gz".format(rustc_channel, self.build)
-+ filename = "rustc-{}-{}.tar.xz".format(rustc_channel, self.build)
- self._download_stage0_helper(filename, "rustc")
- self.fix_executable("{}/bin/rustc".format(self.bin_root()))
- self.fix_executable("{}/bin/rustdoc".format(self.bin_root()))
-@@ -372,7 +372,7 @@ def download_stage0(self):
- if self.cargo().startswith(self.bin_root()) and \
- (not os.path.exists(self.cargo()) or
- self.program_out_of_date(self.cargo_stamp())):
-- filename = "cargo-{}-{}.tar.gz".format(cargo_channel, self.build)
-+ filename = "cargo-{}-{}.tar.xz".format(cargo_channel, self.build)
- self._download_stage0_helper(filename, "cargo")
- self.fix_executable("{}/bin/cargo".format(self.bin_root()))
- with output(self.cargo_stamp()) as cargo_stamp:
diff --git a/dev-lang/rust/files/pr65932.patch b/dev-lang/rust/files/pr65932.patch
new file mode 100644
index 0000000..8d8497a
--- /dev/null
+++ b/dev-lang/rust/files/pr65932.patch
@@ -0,0 +1,79 @@
+From f59c3fdc0906d2af60b52e9d5782f2e3cf39ad03 Mon Sep 17 00:00:00 2001
+From: Guanqun Lu <guanqun.lu@gmail.com>
+Date: Tue, 29 Oct 2019 16:48:05 +0800
+Subject: [PATCH] download .tar.xz if python3 is used
+
+---
+ src/bootstrap/bootstrap.py | 21 ++++++++++++---------
+ 1 file changed, 12 insertions(+), 9 deletions(-)
+
+diff --git a/src/bootstrap/bootstrap.py b/src/bootstrap/bootstrap.py
+index 4caf36a6f2a5..efde8bd6ce10 100644
+--- a/src/bootstrap/bootstrap.py
++++ b/src/bootstrap/bootstrap.py
+@@ -102,10 +102,10 @@ def verify(path, sha_path, verbose):
+ return verified
+
+
+-def unpack(tarball, dst, verbose=False, match=None):
++def unpack(tarball, tarball_suffix, dst, verbose=False, match=None):
+ """Unpack the given tarball file"""
+ print("extracting", tarball)
+- fname = os.path.basename(tarball).replace(".tar.gz", "")
++ fname = os.path.basename(tarball).replace(tarball_suffix, "")
+ with contextlib.closing(tarfile.open(tarball)) as tar:
+ for member in tar.getnames():
+ if "/" not in member:
+@@ -329,6 +329,7 @@ def __init__(self):
+ self.rust_root = ''
+ self.use_locked_deps = ''
+ self.use_vendored_sources = ''
++ self.tarball_suffix = '.tar.gz' if sys.version_info[0] == 2 else '.tar.xz'
+ self.verbose = False
+
+ def download_stage0(self):
+@@ -349,12 +350,13 @@ def download_stage0(self):
+ self.program_out_of_date(self.rustc_stamp())):
+ if os.path.exists(self.bin_root()):
+ shutil.rmtree(self.bin_root())
+- filename = "rust-std-{}-{}.tar.gz".format(
+- rustc_channel, self.build)
++ filename = "rust-std-{}-{}{}".format(
++ rustc_channel, self.build, self.tarball_suffix)
+ pattern = "rust-std-{}".format(self.build)
+ self._download_stage0_helper(filename, pattern)
+
+- filename = "rustc-{}-{}.tar.gz".format(rustc_channel, self.build)
++ filename = "rustc-{}-{}{}".format(rustc_channel, self.build,
++ self.tarball_suffix)
+ self._download_stage0_helper(filename, "rustc")
+ self.fix_executable("{}/bin/rustc".format(self.bin_root()))
+ self.fix_executable("{}/bin/rustdoc".format(self.bin_root()))
+@@ -365,14 +367,15 @@ def download_stage0(self):
+ # libraries/binaries that are included in rust-std with
+ # the system MinGW ones.
+ if "pc-windows-gnu" in self.build:
+- filename = "rust-mingw-{}-{}.tar.gz".format(
+- rustc_channel, self.build)
++ filename = "rust-mingw-{}-{}{}".format(
++ rustc_channel, self.build, self.tarball_suffix)
+ self._download_stage0_helper(filename, "rust-mingw")
+
+ if self.cargo().startswith(self.bin_root()) and \
+ (not os.path.exists(self.cargo()) or
+ self.program_out_of_date(self.cargo_stamp())):
+- filename = "cargo-{}-{}.tar.gz".format(cargo_channel, self.build)
++ filename = "cargo-{}-{}{}".format(cargo_channel, self.build,
++ self.tarball_suffix)
+ self._download_stage0_helper(filename, "cargo")
+ self.fix_executable("{}/bin/cargo".format(self.bin_root()))
+ with output(self.cargo_stamp()) as cargo_stamp:
+@@ -388,7 +391,7 @@ def _download_stage0_helper(self, filename, pattern):
+ tarball = os.path.join(rustc_cache, filename)
+ if not os.path.exists(tarball):
+ get("{}/{}".format(url, filename), tarball, verbose=self.verbose)
+- unpack(tarball, self.bin_root(), match=pattern, verbose=self.verbose)
++ unpack(tarball, self.tarball_suffix, self.bin_root(), match=pattern, verbose=self.verbose)
+
+ @staticmethod
+ def fix_executable(fname):
diff --git a/dev-lang/rust/rust-999.ebuild b/dev-lang/rust/rust-999.ebuild
index ebb8421..0430773 100644
--- a/dev-lang/rust/rust-999.ebuild
+++ b/dev-lang/rust/rust-999.ebuild
@@ -92,7 +92,7 @@ PATCHES=(
"${FILESDIR}"/pr65474.patch
# upstream issue: https://github.com/rust-lang/rust/issues/65757
- "${FILESDIR}"/37c5cb8118b6de04dd5d4e5e43787c8b83339472.patch
+ "${FILESDIR}"/pr65932.patch
)
S="${WORKDIR}/${MY_P}-src"
diff --git a/dev-lang/rust/rust-9999.ebuild b/dev-lang/rust/rust-9999.ebuild
index d149a29..6b601e8 100644
--- a/dev-lang/rust/rust-9999.ebuild
+++ b/dev-lang/rust/rust-9999.ebuild
@@ -88,7 +88,7 @@ REQUIRED_USE="|| ( ${ALL_LLVM_TARGETS[*]} )
PATCHES=(
# upstream issue: https://github.com/rust-lang/rust/issues/65757
- "${FILESDIR}"/37c5cb8118b6de04dd5d4e5e43787c8b83339472.patch
+ "${FILESDIR}"/pr65932.patch
)
S="${WORKDIR}/${MY_P}-src"