fixup! version up : LibreOffice 5.0.0.5.
[slapos.git] / component / libreoffice-bin / buildout.cfg
1 [buildout]
2 extends =
3   ../cpio/buildout.cfg
4   ../rpm2cpio/buildout.cfg
5
6 parts =
7   libreoffice-bin
8
9 [libreoffice-bin]
10 recipe = slapos.recipe.build
11 # here, two %s are used, first one is for directory name (eg. x86_64), and second one is for filename (eg. x86-64).
12 version = 5.0.0.5
13 url = http://downloadarchive.documentfoundation.org/libreoffice/old/${:version}/rpm/%s/LibreOffice_${:version}_Linux_%s_rpm.tar.gz
14 # supported architectures md5sums
15 md5sum_x86 = d54ebe17b34f39446762e73fc3d31277
16 md5sum_x86-64 = 6e1c97eaa221748e328c80470d296583
17
18 # where office code can be found?
19 officedir = libreoffice5.0
20
21 # script to install
22 script =
23   location = %(location)r
24   self.failIfPathExists(location)
25   import sys
26   ARCH_DIR_MAP = { 'x86': 'x86', 'x86-64': 'x86_64' }
27   platform = guessPlatform()
28   url = self.options['url'] %% (ARCH_DIR_MAP[platform], platform)
29   md5sum = self.options['md5sum_' + platform]
30   extract_dir = self.extract(self.download(url, md5sum))
31   workdir = guessworkdir(extract_dir)
32   storagedir = os.path.join(workdir, 'storage')
33   os.mkdir(storagedir)
34   rpmsdir = os.path.join(workdir, [q for q in os.listdir(workdir) if q == 'RPMS'][0])
35   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]
36   [self.pipeCommand([[sys.executable, '${:rpm2cpio}', rpm], ['${:cpio}', '-idum']], cwd=storagedir) for rpm in rpmlist]
37   self.copyTree(os.path.join(storagedir, 'opt', '${:officedir}'), location, ['ure-link'])
38   os.symlink('ure', os.path.join(location, 'ure-link'))
39   # backward compatibility for cloudooo configuration
40   os.mkdir(os.path.join(location, 'basis-link'))
41   os.symlink(os.path.join('..', 'program'), os.path.join(location, 'basis-link', 'program'))
42
43 # helper binaries
44 cpio = ${cpio:location}/bin/cpio
45 rpm2cpio = ${rpm2cpio:target}