Commit 25369e03 authored by Julien Muchembled's avatar Julien Muchembled

Drop multiarch support

It was redundant with conditional configuration sections.
SlapOS fork of zc.buildout has 'multiarch' value since 2.7.1+slapos015
parent ab661f01
......@@ -24,18 +24,15 @@ Example that installs software::
dynlib:bin/foo,, rpath:${bar:location}/lib,!/lib
i386-linux-gnu = http://host/path/i386.tar.gz [md5sum]
x86_64-linux-gnu = http://host/path/amd64.tar.gz [md5sum]
url = http://host/path/foo.tar.gz
md5sum = ...
install =
url, md5sum = options[multiarch()].split()
extract_dir = self.extract(, md5sum))
extract_dir = self.extract(['url'], options['md5sum']))
self.copyTree(guessworkdir(extract_dir), location)
update =
See also the ``download-unpacked`` recipe, which has options to install multiarch specific archives.
Using the init option::
......@@ -509,23 +506,6 @@ Example::
Uninstalling download.
Installing download.
`url` (optionally combined with `md5sum` and `alternate-url`) is actually a
default option to specify what to download. It can be overridden with machine
specific value, like in the example of the default recipe::
parts =
recipe =
i386-linux-gnu = http://host/path/i386.tar.gz [alternate-url] md5sum]
x86_64-linux-gnu = http://host/path/amd64.tar.gz [[alternate-url] md5sum]
Values can be separated with newlines.
......@@ -5,7 +5,7 @@ except ImportError:
from pkgutil import extend_path
__path__ = extend_path(__path__, __name__)
import errno, json, logging, os, shutil, stat, subprocess
import errno, json, logging, os, shutil, stat
from hashlib import md5
from zc.buildout import UserError
from zc.buildout.rmtree import rmtree as buildout_rmtree
......@@ -31,22 +31,6 @@ def make_read_only_recursively(path):
for file_ in file_list:
make_read_only(os.path.join(root, file_))
def multiarch():
m = multiarch.cache
except AttributeError:
m = subprocess.check_output(
('gcc', '-dumpmachine'), universal_newlines=True).rstrip()
except Exception as e:
m = e
multiarch.cache = m
if type(m) is str:
if m:
return m
raise Exception("empty multiarch value")
raise m
def rmtree(path):
......@@ -35,7 +35,7 @@ import sys
import tempfile
from setuptools import archive_util
import zc.buildout
from .. import is_true, multiarch, rmtree, EnvironMixin, Shared
from .. import is_true, rmtree, EnvironMixin, Shared
from ..downloadunpacked import extraction_drivers, patched_extraction_drivers
def readElfAsDict(f):
......@@ -80,7 +80,7 @@ def guessworkdir(path):
return os.path.join(path, *x) if len(x) == 1 else path
GLOBALS = (lambda *x: {x.__name__: x for x in x})(
call, guessworkdir, is_true, multiarch)
call, guessworkdir, is_true)
class Script(EnvironMixin):
"""Free script building system"""
......@@ -31,8 +31,7 @@ import tarfile
import tempfile
from hashlib import md5
from setuptools import archive_util
from zc.buildout import UserError
from . import is_true, multiarch, EnvironMixin, Shared
from . import is_true, EnvironMixin, Shared
from . import make_read_only_recursively # for slapos.recipe.cmmi
class Recipe(EnvironMixin):
......@@ -42,25 +41,8 @@ class Recipe(EnvironMixin): = name
self.options = options
self._strip = is_true(options.get('strip-top-level-dir'), None)
self._alternate = options.get('alternate-url')
self._md5sum = options.get('md5sum')
url = options.get('url')
m = multiarch()
except Exception as e:
if not url:
raise UserError(
"option 'url' missing; could not fallback on multiarch (%s)" % e)
x = options.get(m)
if x:
x = x.split()
url = x.pop(0)
self._md5sum = x.pop() if x else None
self._alternate, = x or (None,)
elif not url:
raise UserError("missing option: 'url' or %r" % m)
self._url = url
self._url = options['url']
shared = Shared(buildout, name, options)
destination = options.get('destination')
if destination:
......@@ -81,9 +63,9 @@ class Recipe(EnvironMixin):
# inside slapos.buildout (see networkcache support)
from zc.buildout import download
location = self._shared.location
alternate = self._alternate
alternate = self.options.get('alternate-url')
path, is_temp = download.Download(self.buildout['buildout'],
hash_name=True)(self._url, self._md5sum or None,
hash_name=True)(self._url, self.options.get('md5sum') or None,
**({'alternate_url': alternate} if alternate else {}))
archive_util.extraction_drivers = patched_extraction_drivers
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