Commit f101b03b authored by Jérome Perrin's avatar Jérome Perrin

Don't set TMP environment variable

It was inconsistent to only set TMP and not TEMP / TEMPDIR. In the case
of slapos, it should be set by slapos node software

Most installation seem to cleanup tmp properly, so the use case cleaning
up seem not critical.

This TMP was also used to know what new files have been created, by
considering files newer that the creation date of this directory.
Compare the file dates with the creation of the source directory instead
( xxx__compile__ )
parent 17ec5a57
......@@ -269,10 +269,6 @@ will add it to environmet variables as the following:
CXXFLAGS=-I${buildout:prefix} $CXXFLAGS
LDFLAGS=-L${buildout:prefix}/lib
Besides, the recipe changes environment variable ``TMP`` when building
and installing, and make a corresponding directory 'tmp' in the
``location``. This temporary directory will be removed after
installing finished.
Example usage
=============
......@@ -308,7 +304,6 @@ default build options.
>>> print(system(buildout)) #doctest: +ELLIPSIS +NORMALIZE_WHITESPACE
Installing package.
package: [ENV] TMP = /sample_buildout/parts/package/tmp
configure --prefix=/sample_buildout/parts/package
building package
installing package
......@@ -334,7 +329,6 @@ default build options.
>>> print system(buildout)
Uninstalling package.
Installing packagex.
packagex: [ENV] TMP = /sample_buildout/parts/packagex/tmp
configure --prefix=/sample_buildout/parts/packagex
building package
installing package
......@@ -371,7 +365,6 @@ a custom location within the buildout::
>>> print(system(buildout))
Uninstalling packagex.
Installing foobar.
foobar: [ENV] TMP = /sample_buildout/parts/foobar/tmp
building package
installing package
......@@ -410,7 +403,6 @@ Makefile and using explicit ``make`` options to control the build process.
>>> print(system(buildout))
Uninstalling foobar.
Installing haproxy.
haproxy: [ENV] TMP = /sample_buildout/parts/haproxy/tmp
Building HAProxy 1.4.8 (dummy package)
TARGET: linux26
CPU: i686
......@@ -451,7 +443,6 @@ and building that.
>>> print(system(buildout))
Uninstalling haproxy.
Installing package.
package: [ENV] TMP = /sample_buildout/parts/package/tmp
package: Using local source directory: /checkout/package-0.0.0
configure --prefix=/sample_buildout/parts/package
building package
......@@ -511,7 +502,6 @@ targets and also patches the source code before the scripts are run.
Installing package.
package: [ENV] CFLAGS = -I/sw/include
package: [ENV] LDFLAGS = -L/sw/lib -L/some/extra/lib
package: [ENV] TMP = /sample_buildout/parts/package/tmp
package: Applying patches
patching file configure
patching file Makefile.dist
......@@ -594,7 +584,6 @@ and a new buildout to try it out
>>> print(system(buildout))
Uninstalling package.
Installing package.
package: [ENV] TMP = /sample_buildout/parts/package/tmp
package: Executing pre-configure-hook
hook: This is pre-configure-hook!
configure --prefix=/sample_buildout/parts/package
......@@ -634,7 +623,6 @@ shell command in the corresponding stage.
>>> print system(buildout)
Uninstalling package.
Installing package.
package: [ENV] TMP = /sample_buildout/parts/package/tmp
package: Executing pre-configure
Configure part: package
configure --prefix=/sample_buildout/parts/package
......@@ -675,7 +663,6 @@ are only ``pre-configure`` and ``post-install``. the output will be
#>>> print system(buildout)
Uninstalling package.
Installing package.
package: [ENV] TMP = /sample_buildout/parts/package/tmp
package: Executing pre-configure
Configure part: Configure in common platform
configure --prefix=/sample_buildout/parts/package
......@@ -719,7 +706,6 @@ Let's see what happens when set prefix in the buildout section:
>>> print system(buildout)
Uninstalling package.
Installing package.
package: [ENV] TMP = /sample_buildout/parts/package/tmp
package: Executing pre-configure
configure --prefix=/sample_buildout/mylocal
building package
......@@ -750,7 +736,6 @@ example,
>>> print system(buildout)
Uninstalling package.
Installing package.
package: [ENV] TMP = /sample_buildout/parts/package/tmp
package: Executing pre-configure
configure --prefix=/sample_buildout/parts/package
building package
......@@ -784,13 +769,11 @@ prefix:
>>> print system(buildout)
Uninstalling package.
Installing package.
package: [ENV] TMP = /sample_buildout/parts/package/tmp
configure --prefix=/sample_buildout/mylocal
building package
package: Executing pre-install
installing package
Installing package-2.
package-2: [ENV] TMP = /sample_buildout/parts/package-2/tmp
configure --prefix=/sample_buildout/mylocal
building package
package-2: Executing pre-install
......@@ -874,9 +857,7 @@ value in the part section. For example,
>>> print system(buildout)
Uninstalling package.
Installing package.
package: [ENV] TMP = /sample_buildout/parts/package/tmp
Installing package-2.
package-2: [ENV] TMP = /sample_buildout/parts/package-2/tmp
package-2: Executing post-install
package magic prefix is /mytemp
<BLANKLINE>
......@@ -901,7 +882,6 @@ can display "prefix" value in the stdout.
Uninstalling package-2.
Uninstalling package.
Installing package.
package: [ENV] TMP = /sample_buildout/parts/package/tmp
configure
building package
package: Executing pre-install
......@@ -927,7 +907,6 @@ replaced with the recipe final prefix.
>>> print system(buildout)
Uninstalling package.
Installing package.
package: [ENV] TMP = /sample_buildout/parts/package/tmp
configure
building package
package: Executing pre-install
......@@ -962,12 +941,10 @@ of "package":
>>> print system(buildout)
Uninstalling package.
Installing package-2.
package-2: [ENV] TMP = /sample_buildout/parts/package-2/tmp
configure --prefix=/sample_buildout/parts/package-2
building package
installing package
Installing package.
package: [ENV] TMP = /sample_buildout/parts/package/tmp
configure --prefix=/sample_buildout/parts/package
building package
installing package
......@@ -997,12 +974,10 @@ Look, "package" is reinstalled either:
Uninstalling package.
Uninstalling package-2.
Installing package-2.
package-2: [ENV] TMP = /sample_buildout/parts/package-2/tmp
configure
building package
installing package
Installing package.
package: [ENV] TMP = /sample_buildout/parts/package/tmp
configure --prefix=/sample_buildout/parts/package
building package
installing package
......@@ -1034,7 +1009,6 @@ If no shared-parts is set, and shared is True, shared feature is not used:
Uninstalling package.
Uninstalling package-2.
Installing package.
package: [ENV] TMP = /sample_buildout/parts/package/tmp
configure --prefix=/sample_buildout/parts/package
building package
installing package
......@@ -1074,7 +1048,6 @@ process as the recipe tried.
Installing package.
package: Checking whether package is installed at shared path: .../slapos.recipe.cmmi/slapos/recipe/cmmi/shared/package/...
package: [ENV] FOO = bar
package: [ENV] TMP = .../slapos.recipe.cmmi/slapos/recipe/cmmi/shared/package/.../tmp
package: Command failed with exit code 127: ./configure --prefix=".../slapos.recipe.cmmi/slapos/recipe/cmmi/shared/package/..."
package: Compilation error. The package is left as is at .../slapos.recipe.cmmi/slapos/recipe/cmmi/shared/package/...__compile__ where you can inspect what went wrong.
A shell script slapos.recipe.build.env.sh has been generated. You can source it in your shell to reproduce build environment.
......@@ -1093,7 +1066,6 @@ If shared-parts is set and shared is True, package will be installed in shared_p
package: shared directory .../slapos.recipe.cmmi/slapos/recipe/cmmi/shared/package/... set for package
Installing package.
package: Checking whether package is installed at shared path: .../slapos.recipe.cmmi/slapos/recipe/cmmi/shared/package/...
package: [ENV] TMP = .../slapos.recipe.cmmi/slapos/recipe/cmmi/shared/package/.../tmp
package: Removing already existing directory .../slapos.recipe.cmmi/slapos/recipe/cmmi/shared/package/...__compile__
configure --prefix=.../slapos.recipe.cmmi/slapos/recipe/cmmi/shared/package/...
building package
......@@ -1141,7 +1113,6 @@ If options change, reinstall in different location:
Uninstalling package.
Installing package.
package: Checking whether package is installed at shared path: .../slapos.recipe.cmmi/slapos/recipe/cmmi/shared/package/...
package: [ENV] TMP = .../slapos.recipe.cmmi/slapos/recipe/cmmi/shared/package/.../tmp
configure --prefix=.../slapos.recipe.cmmi/slapos/recipe/cmmi/shared/package/...
building package
installing package
......
......@@ -143,7 +143,6 @@ class Recipe(object):
# environment.
for key in self.environ:
self.environ[key] = self.environ[key] % os.environ
self.environ['TMP'] = os.path.join(options['default-location'], 'tmp')
def augmented_environment(self):
"""Returns a dictionary containing the current environment variables
......@@ -152,6 +151,10 @@ class Recipe(object):
The dictionary is an independent copy of ``os.environ`` and
modifications will not be reflected in back in ``os.environ``.
"""
# Note that we don't set TMPDIR or TMP here as we use to do, because
# this path might be too deep and this will cause problem with some
# software (for example golang) who runs a test suite after build and
# use this TMPDIR to create unix sockets.
env = os.environ.copy()
env.update(self.environ)
return env
......@@ -338,9 +341,6 @@ class Recipe(object):
if e.errno == errno.EEXIST:
pass
os.chdir(compile_dir)
tmp_path = self.environ['TMP']
shutil.rmtree(tmp_path, True)
os.mkdir(tmp_path)
if self.options['shared']:
self._signature.save(self.options["shared"])
......@@ -403,7 +403,7 @@ class Recipe(object):
and self.options['shared'] == ''
and os.path.exists(self.buildout_prefix)):
log.info('Getting installed file lists')
parts.extend(self.get_installed_files(tmp_path))
parts.extend(self.get_installed_files(compile_dir))
except:
with open('slapos.recipe.build.env.sh', 'w') as env_script:
......@@ -429,9 +429,6 @@ class Recipe(object):
raise
finally:
os.chdir(current_dir)
# If in shared mode and have error during installed, tmp_path was already deleted
if os.path.isdir(tmp_path):
shutil.rmtree(tmp_path)
# Check promises
self.check_promises(log)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment