You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mynewt.apache.org by ut...@apache.org on 2020/03/05 21:51:26 UTC

[mynewt-newt] 01/02: Remove mcuboot submodule hack

This is an automated email from the ASF dual-hosted git repository.

utzig pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/mynewt-newt.git

commit 403de363933b868c7d959567720cb0b0fd6441b2
Author: Fabio Utzig <ut...@apache.org>
AuthorDate: Thu Mar 5 08:49:07 2020 -0300

    Remove mcuboot submodule hack
    
    After the conditional submodule feature added with
    905c71ce407f94da1f6812dd6b24cda885336548, the mcuboot repo was updated
    to inform that Mynewt does not required cloning of submodules; the hack
    is not required anymore.
    
    Signed-off-by: Fabio Utzig <ut...@apache.org>
---
 newt/downloader/downloader.go | 68 ++-----------------------------------------
 1 file changed, 2 insertions(+), 66 deletions(-)

diff --git a/newt/downloader/downloader.go b/newt/downloader/downloader.go
index 43f1f02..474309d 100644
--- a/newt/downloader/downloader.go
+++ b/newt/downloader/downloader.go
@@ -372,58 +372,6 @@ func untrackedFilesFromCheckoutErr(err error) []string {
 	return files
 }
 
-// applyMcubootPreHack attempts to clean up the mcuboot repo so that the
-// subsequent checkout operation will succeed.  This hack is required because a
-// directory in the mcuboot repo was replaced with a submodule.  Git is unable
-// to transition from a post-replace commit to a pre-replace commit because
-// some files in the submodule used to exist in the mcuboot repo itself.  If
-// this issue is detected, this function deletes the submodule directory so
-// that the checkout operation can be attempted again.
-func applyMcubootPreHack(repoDir string, err error) error {
-	if !strings.HasSuffix(repoDir, "repos/mcuboot") {
-		// Not the mcuboot repo.
-		return err
-	}
-
-	// Check for an "untracked files" error.
-	files := untrackedFilesFromCheckoutErr(err)
-	if len(files) == 0 {
-		// Not a hackable error.
-		return err
-	}
-
-	for _, file := range files {
-		if !strings.HasPrefix(file, "ext/mbedtls") {
-			return err
-		}
-	}
-
-	path := repoDir + "/ext/mbedtls"
-	log.Debugf("applying mcuboot hack: removing %s", path)
-	os.RemoveAll(path)
-	return nil
-}
-
-// applyMcubootPostHack attempts to clean up the mcuboot repo so that the
-// subsequent checkout operation will succeed.  This hack is required because a
-// directory in the mcuboot repo was replaced with a submodule.  This hack
-// should be applied after a successful checkout from a pre-replace commit to a
-// post-replace commit.  This function deletes an orphan directory left behind
-// by the checkout operation.
-func applyMcubootPostHack(repoDir string, output string) {
-	if !strings.HasSuffix(repoDir, "repos/mcuboot") {
-		// Not the mcuboot repo.
-		return
-	}
-
-	// Check for a "unable to rmdir" warning (pre- to post- submodule move).
-	if strings.Contains(output, "unable to rmdir 'sim/mcuboot-sys/mbedtls'") {
-		path := repoDir + "/sim/mcuboot-sys/mbedtls"
-		log.Debugf("applying mcuboot hack: removing %s", path)
-		os.RemoveAll(path)
-	}
-}
-
 func (gd *GenericDownloader) Checkout(repoDir string, commit string) error {
 	// Get the hash corresponding to the commit in case the caller specified a
 	// branch or tag.  We always want to check out a hash and end up in a
@@ -439,20 +387,8 @@ func (gd *GenericDownloader) Checkout(repoDir string, commit string) error {
 		hash,
 	}
 
-	o, err := executeGitCommand(repoDir, cmd, true)
-	if err != nil {
-		if err := applyMcubootPreHack(repoDir, err); err != nil {
-			return err
-		}
-
-		if _, err := executeGitCommand(repoDir, cmd, true); err != nil {
-			return err
-		}
-	} else {
-		applyMcubootPostHack(repoDir, string(o))
-	}
-
-	return nil
+	_, err = executeGitCommand(repoDir, cmd, true)
+	return err
 }
 
 // Update one submodule tree in a repo (under path)