diff --git a/component/libreoffice-bin/buildout.cfg b/component/libreoffice-bin/buildout.cfg index ada1e601a7e128950f2a929f743273dc84d67eba..b5604c2e0b7920a1864e8d0ba52fe3b68afd7c7e 100644 --- a/component/libreoffice-bin/buildout.cfg +++ b/component/libreoffice-bin/buildout.cfg @@ -1,24 +1,45 @@ [buildout] -extends = ../cpio/buildout.cfg +extends = + ../cpio/buildout.cfg + ../rpm2cpio/buildout.cfg + parts = libreoffice-bin find-links = http://www.nexedi.org/static/packages/source/ -versions = versions - -[versions] -# special version of z3c.recipe.openoffice with architecture autodetection -z3c.recipe.openoffice = 0.3.1dev8 - [libreoffice-bin] -recipe = z3c.recipe.openoffice -install-javafilter = no -install-pyuno-egg = no -hack-openoffice-python = no -flavour = libreoffice +recipe = slapos.recipe.build # here, two %s are used, first one is for directory name (eg. x86_64), and second one is for filename (eg. x86-64). -# base-url = http://download.documentfoundation.org/libreoffice/stable/3.3.2/rpm/%s/LibO_3.3.2_Linux_%s_install-rpm_en-US.tar.gz +version = 3.4.5 +url = http://download.documentfoundation.org/libreoffice/stable/${:version}/rpm/%s/LibO_${:version}_Linux_%s_install-rpm_en-US.tar.gz + +# supported architectures md5sums +md5sum_x86 = 34786e6aa570782abac551ab092f3fb3 +md5sum_x86-64 = 2159a50daab707c02b669a83f635ff0c + +# where office code can be found? +officedir = libreoffice3.4 + +# script to install +script = + location = %(location)r + self.failIfPathExists(location) + import sys + ARCH_DIR_MAP = { 'x86': 'x86', 'x86-64': 'x86_64' } + platform = guessPlatform() + url = self.options['url'] %% (ARCH_DIR_MAP[platform], platform) + md5sum = self.options['md5sum_' + platform] + extract_dir = self.extract(self.download(url, md5sum)) + workdir = guessworkdir(extract_dir) + storagedir = os.path.join(workdir, 'storage') + os.mkdir(storagedir) + rpmsdir = os.path.join(workdir, [q for q in os.listdir(workdir) if q == 'RPMS'][0]) + rpmlist = [os.path.join(rpmsdir, q) for q in os.listdir(rpmsdir) if q.endswith('.rpm') and 'javafilter' not in q and 'xsltfilter' not in q] + [self.pipeCommand([[sys.executable, '${:rpm2cpio}', rpm], ['${:cpio}', '-idum']], cwd=storagedir) for rpm in rpmlist] + self.copyTree(os.path.join(storagedir, 'opt', '${:officedir}'), location, ['basis3.4', 'ure']) +# helper binaries cpio = ${cpio:location}/bin/cpio +rpm2cpio = ${rpm2cpio:target}