From 3325e3c0aca3dcf51dfc72b63c7d077c6b6e5017 Mon Sep 17 00:00:00 2001 From: Tom Clegg Date: Mon, 11 Jul 2022 09:51:21 -0400 Subject: [PATCH] 17344: Silence misleading warning during gem install. Arvados-DCO-1.1-Signed-off-by: Tom Clegg --- cmd/arvados-package/fpm.go | 21 ++++++++++++--------- lib/install/deps.go | 6 +++--- 2 files changed, 15 insertions(+), 12 deletions(-) diff --git a/cmd/arvados-package/fpm.go b/cmd/arvados-package/fpm.go index c58450d86a..c337d8563b 100644 --- a/cmd/arvados-package/fpm.go +++ b/cmd/arvados-package/fpm.go @@ -34,15 +34,7 @@ func fpm(ctx context.Context, opts opts, stdin io.Reader, stdout, stderr io.Writ return fmt.Errorf("arvados-server install failed: exit code %d", exitcode) } - cmd := exec.Command("/var/lib/arvados/bin/gem", "install", "--user", "--no-document", "fpm") - cmd.Stdout = stdout - cmd.Stderr = stderr - err := cmd.Run() - if err != nil { - return fmt.Errorf("gem install fpm: %w", err) - } - - cmd = exec.Command("/var/lib/arvados/bin/gem", "env", "gempath") + cmd := exec.Command("/var/lib/arvados/bin/gem", "env", "gempath") cmd.Stderr = stderr buf, err := cmd.Output() // /root/.gem/ruby/2.7.0:... if err != nil || len(buf) == 0 { @@ -50,6 +42,17 @@ func fpm(ctx context.Context, opts opts, stdin io.Reader, stdout, stderr io.Writ } gempath := string(bytes.TrimRight(bytes.Split(buf, []byte{':'})[0], "\n")) + cmd = exec.Command("/var/lib/arvados/bin/gem", "install", "--user", "--no-document", "fpm") + cmd.Stdout = stdout + cmd.Stderr = stderr + // Avoid "WARNING: You don't have [...] in your PATH, gem + // executables will not run" + cmd.Env = append(os.Environ(), "PATH="+os.Getenv("PATH")+":"+gempath) + err = cmd.Run() + if err != nil { + return fmt.Errorf("gem install fpm: %w", err) + } + if _, err := os.Stat(gempath + "/gems/fpm-1.11.0/lib/fpm/package/deb.rb"); err == nil { // Workaround for fpm bug https://github.com/jordansissel/fpm/issues/1739 cmd = exec.Command("sed", "-i", `/require "digest"/a require "zlib"`, gempath+"/gems/fpm-1.11.0/lib/fpm/package/deb.rb") diff --git a/lib/install/deps.go b/lib/install/deps.go index a8e95edea6..11ce0f188f 100644 --- a/lib/install/deps.go +++ b/lib/install/deps.go @@ -614,9 +614,9 @@ yarn install {"touch", "log/production.log"}, {"chown", "-R", "--from=root", "www-data:www-data", "/var/www/.bundle", "/var/www/.gem", "/var/www/.npm", "/var/www/.passenger", "log", "tmp", "vendor", ".bundle", "Gemfile.lock", "config.ru", "config/environment.rb"}, {"sudo", "-u", "www-data", "/var/lib/arvados/bin/gem", "install", "--user", "--conservative", "--no-document", "bundler:" + bundlerversion}, - {"sudo", "-u", "www-data", "/var/lib/arvados/bin/bundle", "config", "--set", "--local", "deployment", "true"}, - {"sudo", "-u", "www-data", "/var/lib/arvados/bin/bundle", "config", "--set", "--local", "path", "/var/www/.gem"}, - {"sudo", "-u", "www-data", "/var/lib/arvados/bin/bundle", "config", "--set", "--local", "without", "development test diagnostics performance"}, + {"sudo", "-u", "www-data", "/var/lib/arvados/bin/bundle", "config", "set", "--local", "deployment", "true"}, + {"sudo", "-u", "www-data", "/var/lib/arvados/bin/bundle", "config", "set", "--local", "path", "/var/www/.gem"}, + {"sudo", "-u", "www-data", "/var/lib/arvados/bin/bundle", "config", "set", "--local", "without", "development test diagnostics performance"}, {"sudo", "-u", "www-data", "/var/lib/arvados/bin/bundle", "install", "--jobs", "8"}, {"chown", "www-data:www-data", ".", "public/assets"}, -- 2.30.2