Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9543d19b authored by PODISHETTY KUMAR (xWF)'s avatar PODISHETTY KUMAR (xWF) Committed by Gerrit Code Review
Browse files

Revert "Clean environment variables to account for sandbox work directory."

This reverts commit 0af8ea14.

Reason for revert: <Droidmonitor created revert due to b/363848580. Will be verifying through ABTD before submission.>

Change-Id: Iafba28897ad27df67ef8ae8904454196c482216d
parent 0af8ea14
Loading
Loading
Loading
Loading
+15 −40
Original line number Diff line number Diff line
@@ -214,10 +214,6 @@ func NewConfig(ctx Context, args ...string) Config {
		sandboxConfig:         &SandboxConfig{},
		ninjaWeightListSource: DEFAULT,
	}
	wd, err := os.Getwd()
	if err != nil {
		ctx.Fatalln("Failed to get working directory:", err)
	}

	// Skip soong tests by default on Linux
	if runtime.GOOS == "linux" {
@@ -249,13 +245,17 @@ func NewConfig(ctx Context, args ...string) Config {

	// Make sure OUT_DIR is set appropriately
	if outDir, ok := ret.environ.Get("OUT_DIR"); ok {
		ret.environ.Set("OUT_DIR", ret.sandboxPath(wd, filepath.Clean(outDir)))
		ret.environ.Set("OUT_DIR", filepath.Clean(outDir))
	} else {
		outDir := "out"
		if baseDir, ok := ret.environ.Get("OUT_DIR_COMMON_BASE"); ok {
			if wd, err := os.Getwd(); err != nil {
				ctx.Fatalln("Failed to get working directory:", err)
			} else {
				outDir = filepath.Join(baseDir, filepath.Base(wd))
			}
		ret.environ.Set("OUT_DIR", ret.sandboxPath(wd, outDir))
		}
		ret.environ.Set("OUT_DIR", outDir)
	}

	// loadEnvConfig needs to know what the OUT_DIR is, so it should
@@ -350,9 +350,6 @@ func NewConfig(ctx Context, args ...string) Config {

		// Use config.useN2 instead.
		"SOONG_USE_N2",

		// Leaks usernames into environment.
		"HOME",
	)

	if ret.UseGoma() || ret.ForceUseGoma() {
@@ -364,12 +361,12 @@ func NewConfig(ctx Context, args ...string) Config {
	ret.environ.Set("PYTHONDONTWRITEBYTECODE", "1")

	tmpDir := absPath(ctx, ret.TempDir())
	ret.environ.Set("TMPDIR", ret.sandboxPath(wd, tmpDir))
	ret.environ.Set("TMPDIR", tmpDir)

	// Always set ASAN_SYMBOLIZER_PATH so that ASAN-based tools can symbolize any crashes
	symbolizerPath := filepath.Join("prebuilts/clang/host", ret.HostPrebuiltTag(),
		"llvm-binutils-stable/llvm-symbolizer")
	ret.environ.Set("ASAN_SYMBOLIZER_PATH", ret.sandboxPath(wd, absPath(ctx, symbolizerPath)))
	ret.environ.Set("ASAN_SYMBOLIZER_PATH", absPath(ctx, symbolizerPath))

	// Precondition: the current directory is the top of the source tree
	checkTopDir(ctx)
@@ -423,18 +420,15 @@ func NewConfig(ctx Context, args ...string) Config {

	ret.configureLocale(ctx)

	newPath := []string{ret.sandboxPath(wd, filepath.Join(absJavaHome, "bin"))}
	newPath := []string{filepath.Join(absJavaHome, "bin")}
	if path, ok := ret.environ.Get("PATH"); ok && path != "" {
		entries := strings.Split(path, string(filepath.ListSeparator))
		for _, ent := range entries {
			newPath = append(newPath, ret.sandboxPath(wd, ent))
		}
		newPath = append(newPath, path)
	}

	ret.environ.Unset("OVERRIDE_ANDROID_JAVA_HOME")
	ret.environ.Set("JAVA_HOME", ret.sandboxPath(wd, absJavaHome))
	ret.environ.Set("ANDROID_JAVA_HOME", ret.sandboxPath(wd, javaHome))
	ret.environ.Set("ANDROID_JAVA8_HOME", ret.sandboxPath(wd, java8Home))
	ret.environ.Set("JAVA_HOME", absJavaHome)
	ret.environ.Set("ANDROID_JAVA_HOME", javaHome)
	ret.environ.Set("ANDROID_JAVA8_HOME", java8Home)
	ret.environ.Set("PATH", strings.Join(newPath, string(filepath.ListSeparator)))

	// b/286885495, https://bugzilla.redhat.com/show_bug.cgi?id=2227130: some versions of Fedora include patches
@@ -450,7 +444,7 @@ func NewConfig(ctx Context, args ...string) Config {
		ret.buildDateTime = strconv.FormatInt(time.Now().Unix(), 10)
	}

	ret.environ.Set("BUILD_DATETIME_FILE", ret.sandboxPath(wd, buildDateTimeFile))
	ret.environ.Set("BUILD_DATETIME_FILE", buildDateTimeFile)

	if _, ok := ret.environ.Get("BUILD_USERNAME"); !ok {
		username := "unknown"
@@ -461,7 +455,6 @@ func NewConfig(ctx Context, args ...string) Config {
		}
		ret.environ.Set("BUILD_USERNAME", username)
	}
	ret.environ.Set("PWD", ret.sandboxPath(wd, wd))

	if ret.UseRBE() {
		for k, v := range getRBEVars(ctx, Config{ret}) {
@@ -1303,19 +1296,6 @@ func (c *configImpl) UseABFS() bool {
	return err == nil
}

func (c *configImpl) sandboxPath(base, in string) string {
	if !c.UseABFS() {
		return in
	}

	rel, err := filepath.Rel(base, in)
	if err != nil {
		return in
	}

	return filepath.Join(abfsSrcDir, rel)
}

func (c *configImpl) UseRBE() bool {
	// These alternate modes of running Soong do not use RBE / reclient.
	if c.Queryview() || c.JsonModuleGraph() {
@@ -1736,11 +1716,6 @@ func (c *configImpl) EmptyNinjaFile() bool {
}

func (c *configImpl) SkipMetricsUpload() bool {
	// b/362625275 - Metrics upload sometimes prevents abfs unmount
	if c.UseABFS() {
		return true
	}

	return c.skipMetricsUpload
}

+0 −18
Original line number Diff line number Diff line
@@ -57,22 +57,6 @@ func parsePathDir(dir string) []string {
	return ret
}

func updatePathForSandbox(config Config) {
	wd, err := os.Getwd()
	if err != nil {
		return
	}

	var newPath []string
	if path, ok := config.Environment().Get("PATH"); ok && path != "" {
		entries := strings.Split(path, string(filepath.ListSeparator))
		for _, ent := range entries {
			newPath = append(newPath, config.sandboxPath(wd, ent))
		}
	}
	config.Environment().Set("PATH", strings.Join(newPath, string(filepath.ListSeparator)))
}

// SetupLitePath is the "lite" version of SetupPath used for dumpvars, or other
// places that does not need the full logging capabilities of path_interposer,
// wants the minimal performance overhead, and still get the benefits of $PATH
@@ -137,7 +121,6 @@ func SetupLitePath(ctx Context, config Config, tmpDir string) {
	// Set $PATH to be the directories containing the host tool symlinks, and
	// the prebuilts directory for the current host OS.
	config.Environment().Set("PATH", myPath)
	updatePathForSandbox(config)
	config.pathReplaced = true
}

@@ -282,6 +265,5 @@ func SetupPath(ctx Context, config Config) {
	// Replace the $PATH variable with the path_interposer symlinks, and
	// checked-in prebuilts.
	config.Environment().Set("PATH", myPath)
	updatePathForSandbox(config)
	config.pathReplaced = true
}
+2 −11
Original line number Diff line number Diff line
@@ -187,17 +187,8 @@ func (c *Cmd) readMountArgs() []string {
	return args
}

func (c *Cmd) workDir() string {
	if !c.config.UseABFS() {
		wd, _ := os.Getwd()
		return wd
	}

	return abfsSrcDir
}

func (c *Cmd) wrapSandbox() {
	wd := c.workDir()
	wd, _ := os.Getwd()

	var sandboxArgs []string
	sandboxArgs = append(sandboxArgs,
@@ -235,7 +226,7 @@ func (c *Cmd) wrapSandbox() {
	)

	sandboxArgs = append(sandboxArgs,
		c.readMountArgs()...,
		c.readMountArgs()...
	)

	sandboxArgs = append(sandboxArgs,