]> git.proxmox.com Git - rustc.git/commitdiff
don't allow upstream's bootstrap.py to delete .cargo/ directory.
authorAndres Salomon <dilinger@queued.net>
Sat, 10 Feb 2024 04:44:12 +0000 (23:44 -0500)
committerAndres Salomon <dilinger@queued.net>
Sat, 10 Feb 2024 04:44:12 +0000 (23:44 -0500)
When we call bootstrap.bootstrap(args), the check_vendored_status()
upstream function will happily delete .cargo/. This is a problem
because the quilt source package wants .cargo/config.toml to not be
modified without a patch. Without this, after running
'debian/rules source_orig-stage0', further builds will fail with:

dpkg-source: warning: ignoring deletion of directory .cargo
dpkg-source: info: local changes detected, the modified files are:
 rustc-1.70.0+dfsg1/.cargo/config.toml
dpkg-source: info: Hint: make sure the version in debian/changelog matches the unpacked source tree
dpkg-source: info: you can integrate the local changes with dpkg-source --commit
dpkg-source: error: aborting due to unexpected upstream changes, see /tmp/rustc_1.70.0+dfsg1-6.diff.nkvdQ1

Rather than patching the upstream bootstrap.py, we just move .cargo out
of the way temporarily and move it back after the bootstrap() function
finishes.

debian/changelog
debian/get-stage0.py

index 0dc0fb35333b8d8474626d9fd160db6fbf40db16..daa9edc808d80bc3db8155bc793936b5fb8d2640 100644 (file)
@@ -5,6 +5,7 @@ rustc (1.70.0+dfsg1-6) UNRELEASED; urgency=medium
     architectures (closes: #1021711).
   * Run 'd/rules clean' after running make_orig-stage0_tarball.sh so that the
     suggestion to rebuild the .dsc actually works.
+  * Don't allow upstream's bootstrap.py to delete .cargo/ directory.
 
  -- Fabian Grünbichler <debian@fabian.gruenbichler.email>  Mon, 15 Jan 2024 08:16:35 +0100
 
index 499f841938999ddaa371aa7d81b8ffce1f0beaaf..49f8066ca0d3e4d5df985d79581e8c0f7fa5cfbd 100755 (executable)
@@ -3,6 +3,7 @@
 # In that case, you probably just need to override the failing step in our
 # DownloadOnlyRustBuild class below.
 
+import shutil
 import sys
 
 import bootstrap
@@ -26,7 +27,12 @@ def main(argv):
     DownloadOnlyRustBuild.triple = triple
     bootstrap.RustBuild = DownloadOnlyRustBuild
     args = bootstrap.parse_args()
-    bootstrap.bootstrap(args)
+    # bootstrap.py likes to delete our .cargo directory out from under us
+    shutil.move(".cargo", ".cargo-bak")
+    try:
+        bootstrap.bootstrap(args)
+    finally:
+        shutil.move(".cargo-bak", ".cargo")
 
 if __name__ == '__main__':
     main(sys.argv)