Ejemplo n.º 1
0
    def builder_action_build(self, called_as, log):

        self.check_deprecated_methods(called_as, log)

        envs = {}
        if hasattr(self, 'builder_action_build_define_environment'):
            envs = self.builder_action_build_define_environment(
                called_as,
                log
                )

        opts = self.builder_action_build_collect_options(called_as, log)

        args = []
        if hasattr(self, 'builder_action_build_define_args'):
            args = self.builder_action_build_define_args(
                called_as,
                log
                )

        ret = autotools.make_high(
            self.buildingsite_path,
            log=log,
            options=opts,
            arguments=args,
            environment=envs,
            environment_mode='copy',
            use_separate_buildding_dir=self.separate_build_dir,
            source_configure_reldir=self.source_configure_reldir
            )
        return ret
Ejemplo n.º 2
0
    def builder_action_build(self, called_as, log):

        if self.get_host_from_pkgi() != 'x86_64-pc-linux-gnu':
            raise Exception("fix for others is required")

        ret = autotools.make_high(
            self.buildingsite_path,
            log=log,
            options=[],
            arguments=[
                'PREFIX={}'.format(self.calculate_install_prefix()),
                'CFLAGS=  -fpic -fPIC -Wall -Winline -O2 -g '
                '-D_FILE_OFFSET_BITS=64',
                'libbz2.a',
                'bzip2',
                'bzip2recover'
                ] + [self.custom_data['thr']['CC']] +
            [self.custom_data['thr']['AR']] +
            [self.custom_data['thr']['RANLIB']],
            environment={},
            environment_mode='copy',
            use_separate_buildding_dir=self.separate_build_dir,
            source_configure_reldir=self.source_configure_reldir
            )

        return ret
 def builder_action_distribute(self, called_as, log):
     ret = autotools.make_high(
         self.buildingsite_path,
         log=log,
         options=[],
         arguments=[
             'all',
             'install',
             'LIBDIR={}'.format(
                 wayround_org.utils.path.join(
                     self.calculate_install_prefix(),
                     'lib'
                     )
                 ),
             'BINDIR={}'.format(
                 wayround_org.utils.path.join(
                     self.calculate_install_prefix(), 'bin'
                     )
                 ),
             'PN531_PATH={}'.format(
                 wayround_org.utils.path.join(
                     self.calculate_install_prefix(), 'src', 'nfc'
                     )
                 ),
             'DESTDIR={}'.format(self.get_dst_dir())
             ],
         environment={},
         environment_mode='copy',
         use_separate_buildding_dir=self.separate_build_dir,
         source_configure_reldir=self.source_configure_reldir
         )
     return ret
Ejemplo n.º 4
0
    def builder_action_distr_modules(self, called_as, log):
        ret = autotools.make_high(
            self.buildingsite_path,
            log=log,
            options=[],
            arguments=[
                'modules_install',
                'INSTALL_MOD_PATH=' + self.get_dst_dir()
                ] + self.custom_data['crossbuild_arch_params'],
            environment={},
            environment_mode='copy',
            use_separate_buildding_dir=self.separate_build_dir,
            source_configure_reldir=self.source_configure_reldir
            )

        if ret == 0:

            modules_dir = wayround_org.utils.path.join(
                self.get_dst_dir(), 'lib', 'modules'
                )

            files = os.listdir(modules_dir)

            if len(files) != 1:
                log.error(
                    "Can't find directory in {}".format(modules_dir)
                    )
                ret = 1
            else:
                modules_dir = \
                    wayround_org.utils.path.join(modules_dir, files[0])

                for i in ['build', 'source']:

                    new_link = wayround_org.utils.path.join(
                        modules_dir,
                        i
                        )

                    wayround_org.utils.file.remove_if_exists(new_link)

                    os.symlink(
                        wayround_org.utils.path.join(
                            os.path.sep + self.usr_list_item[0],
                            'src',
                            'linux-{}'.format(
                                self.get_package_info()['pkg_nameinfo'][
                                    'groups']['version']
                                )
                            ),
                        new_link
                        )

        return ret
Ejemplo n.º 5
0
    def _builder_action_distr_headers_001(self, called_as, log, h_all=False):

        ret = 0

        command = 'headers_install'
        if h_all:
            command = 'headers_install_all'

        if self.get_is_only_other_arch():

            install_hdr_path = wayround_org.utils.path.join(
                self.get_dst_dir(), 'usr', 'multiarch',
                self.get_arch_from_pkgi()
                )

        elif self.get_is_crossbuilder():

            install_hdr_path = wayround_org.utils.path.join(
                self.get_dst_dir(), 'usr', 'crossbuilders',
                self.get_target_from_pkgi()
                )

        else:

            install_hdr_path = wayround_org.utils.path.join(
                self.get_dst_dir(), 'usr'
                )

        if ret == 0:

            ret = autotools.make_high(
                self.buildingsite_path,
                log=log,
                options=[],
                arguments=[command] +
                ['INSTALL_HDR_PATH=' + install_hdr_path] +
                self.custom_data['crossbuild_arch_params'],
                environment={},
                environment_mode='copy',
                use_separate_buildding_dir=self.separate_build_dir,
                source_configure_reldir=self.source_configure_reldir
                )

        print('-----------------')
        print("Now You need to create asm symlink in include dir")
        if self.get_is_crossbuilder() or self.get_is_only_other_arch():
            print("and pack this building site")
            ret = 0
        else:
            print("and continue with 'distr_man+' action")
            ret = 1
        print('-----------------')

        return ret
Ejemplo n.º 6
0
def main(buildingsite, action=None):

    ret = 0

    r = wayround_org.aipsetup.build.build_script_wrap(
        buildingsite,
        ['extract', 'distribute'],
        action,
        "help"
        )

    if not isinstance(r, tuple):
        logging.error("Error")
        ret = r

    else:

        pkg_info, actions = r

        src_dir = wayround_org.aipsetup.build.getDIR_SOURCE(buildingsite)

        dst_dir = wayround_org.aipsetup.build.getDIR_DESTDIR(buildingsite)

        separate_build_dir = False

        source_configure_reldir = '.'

        if 'extract' in actions:
            if os.path.isdir(src_dir):
                logging.info("cleaningup source dir")
                wayround_org.utils.file.cleanup_dir(src_dir)
            ret = autotools.extract_high(
                buildingsite,
                pkg_info['pkg_info']['basename'],
                unwrap_dir=True,
                rename_dir=False
                )

        if 'distribute' in actions and ret == 0:
            ret = autotools.make_high(
                buildingsite,
                options=[],
                arguments=[
                    'install',
                    'DESTDIR=' + dst_dir,
                    'PREFIX=/usr'
                    ],
                environment={},
                environment_mode='copy',
                use_separate_buildding_dir=separate_build_dir,
                source_configure_reldir=source_configure_reldir
                )

    return ret
Ejemplo n.º 7
0
 def builder_action_build(self, called_as, log):
     ret = autotools.make_high(
         self.buildingsite_path,
         log=log,
         options=[],
         arguments=[] + self.custom_data['crossbuild_arch_params'],
         environment={},
         environment_mode='copy',
         use_separate_buildding_dir=self.separate_build_dir,
         source_configure_reldir=self.source_configure_reldir
         )
     return ret
Ejemplo n.º 8
0
 def builder_action_distribute(self, called_as, log):
     ret = autotools.make_high(
         self.buildingsite_path,
         log=log,
         options=[],
         arguments=[
             'install',
             'INSTROOT={}'.format(self.get_dst_dir())
             ],
         environment={},
         environment_mode='copy',
         use_separate_buildding_dir=self.separate_build_dir,
         source_configure_reldir=self.source_configure_reldir
         )
     return ret
Ejemplo n.º 9
0
 def builder_action_distr_firmware(self, called_as, log):
     ret = autotools.make_high(
         self.buildingsite_path,
         log=log,
         options=[],
         arguments=[
             'firmware_install',
             'INSTALL_MOD_PATH=' + self.get_dst_dir()
             ] + self.custom_data['crossbuild_arch_params'],
         environment={},
         environment_mode='copy',
         use_separate_buildding_dir=self.separate_build_dir,
         source_configure_reldir=self.source_configure_reldir
         )
     return ret
Ejemplo n.º 10
0
    def builder_action_distribute(self, called_as, log):
        ret = super().builder_action_distribute(called_as, log)

        if ret == 0:
            ret = autotools.make_high(
                self.buildingsite_path,
                log=log,
                options=[],
                arguments=["install-private-headers", "DESTDIR={}".format(self.get_dst_dir())],
                environment={},
                environment_mode="copy",
                use_separate_buildding_dir=self.separate_build_dir,
                source_configure_reldir=self.source_configure_reldir,
            )
        return ret
Ejemplo n.º 11
0
 def builder_action_distribute(self, called_as, log):
     ret = autotools.make_high(
         self.buildingsite_path,
         log=log,
         options=[],
         arguments=[
             'install',
             'prefix={}'.format(self.calculate_install_prefix()),
             'DESTDIR={}'.format(self.get_dst_dir()),
             ] + self.all_automatic_flags_as_list(),
         environment={},
         environment_mode='copy',
         use_separate_buildding_dir=self.separate_build_dir,
         source_configure_reldir=self.source_configure_reldir
         )
     return ret
Ejemplo n.º 12
0
 def builder_action_build(self, called_as, log):
     ret = autotools.make_high(
         self.buildingsite_path,
         log=log,
         options=[],
         arguments=[
             'CHAPMS=1',
             'USE_CRYPT=1',
             'INCLUDE_DIRS+= -I../include '
             ] + self.all_automatic_flags_as_list(),
         environment={},
         environment_mode='copy',
         use_separate_buildding_dir=self.separate_build_dir,
         source_configure_reldir=self.source_configure_reldir
         )
     return ret
Ejemplo n.º 13
0
 def builder_action_distribute(self, called_as, log):
     ret = autotools.make_high(
         self.buildingsite_path,
         log=log,
         options=[],
         arguments=[
             'install',
             # FIXME: fix path join
             'MANDIR={}/share/man'.format(self.calculate_install_prefix()),
             # 'MANSUFFIX=ssl',
             'INSTALL_PREFIX=' + self.get_dst_dir()
             ],
         environment={},
         environment_mode='copy',
         use_separate_buildding_dir=self.separate_build_dir,
         source_configure_reldir=self.source_configure_reldir
         )
     return ret
Ejemplo n.º 14
0
    def builder_action_distribute(self, called_as, log):

        ret = autotools.make_high(
            self.buildingsite,
            log=log,
            options=[],
            arguments=[
                'install', 'install-dev', 'install-lib',
                'DESTDIR={}'.format(self.dst_dir)
                ],
            environment=self.builder_action_make_define_environment(
                called_as,
                log
                ),
            environment_mode='copy',
            use_separate_buildding_dir=self.separate_build_dir,
            source_configure_reldir=self.source_configure_reldir
            )
        return ret
Ejemplo n.º 15
0
 def builder_action_after_distribute(self, called_as, log):
     ret = autotools.make_high(
         self.buildingsite_path,
         log=log,
         options=[],
         arguments=[
             "all",
             "install",
             "PWD={}".format(self.get_src_dir()),
             "KERNELRELEASE={}".format(self.custom_data["kern_rel"]),
             "DESTDIR={}".format(self.get_dst_dir()),
         ]
         + self.all_automatic_flags_as_list(),
         environment={},
         environment_mode="copy",
         use_separate_buildding_dir=self.separate_build_dir,
         source_configure_reldir=self.source_configure_reldir,
     )
     return ret
Ejemplo n.º 16
0
    def builder_action_distribute(self, called_as, log):
        arch_dir = self.get_dst_host_dir()
        for i in [
            self.calculate_dst_install_libdir(),
            wayround_org.utils.path.join(self.calculate_dst_install_prefix(), "include"),
        ]:
            os.makedirs(i, exist_ok=True)

        ret = autotools.make_high(
            self.buildingsite_path,
            log=log,
            options=[],
            arguments=["install", "PREFIX={}".format(self.calculate_dst_install_prefix())],
            environment={},
            environment_mode="copy",
            use_separate_buildding_dir=self.separate_build_dir,
            source_configure_reldir=self.source_configure_reldir,
        )
        return ret
Ejemplo n.º 17
0
    def builder_action_distr_man(self, called_as, log):
        ret = autotools.make_high(
            self.buildingsite_path,
            log=log,
            options=[],
            arguments=[
                'mandocs'
                ] + self.custom_data['crossbuild_arch_params'],
            environment={},
            environment_mode='copy',
            use_separate_buildding_dir=self.separate_build_dir,
            source_configure_reldir=self.source_configure_reldir
            )

        if ret == 0:

            if not os.path.isdir(self.custom_data['dst_man_dir']):
                os.makedirs(self.custom_data['dst_man_dir'])

            man_files = glob.glob(
                wayround_org.utils.path.join(
                    self.get_src_dir(
                        ), 'Documentation', 'DocBook', 'man', '*.9.gz'
                    )
                )

            man_files.sort()

            log.info("Copying {} man file(s)".format(len(man_files)))

            for i in man_files:
                base = os.path.basename(i)
                log.info("copying {}".format(base))
                shutil.copy(
                    wayround_org.utils.path.join(i),
                    wayround_org.utils.path.join(
                        self.custom_data['dst_man_dir'],
                        base
                        )
                    )
        return ret
Ejemplo n.º 18
0
    def builder_action_so(self, called_as, log):

        ret = autotools.make_high(
            self.buildingsite_path,
            log=log,
            options=[],
            arguments=[
                'CFLAGS= -fpic -fPIC -Wall -Winline -O2 -g '
                '-D_FILE_OFFSET_BITS=64',
                'PREFIX={}'.format(self.calculate_dst_install_prefix())
                ] + [self.custom_data['thr']['CC']] +
            [self.custom_data['thr']['AR']] +
            [self.custom_data['thr']['RANLIB']],
            environment={},
            environment_mode='copy',
            use_separate_buildding_dir=self.separate_build_dir,
            source_configure_reldir=self.source_configure_reldir,
            make_filename='Makefile-libbz2_so'
            )

        return ret
Ejemplo n.º 19
0
    def builder_action_distr_kernel(self, called_as, log):
        if not os.path.exists(self.custom_data['dst_boot_dir']):
            os.makedirs(self.custom_data['dst_boot_dir'])

        ret = autotools.make_high(
            self.buildingsite_path,
            log=log,
            options=[],
            arguments=[
                'install',
                'INSTALL_PATH=' + self.custom_data['dst_boot_dir']
                ] + self.custom_data['crossbuild_arch_params'],
            environment={},
            environment_mode='copy',
            use_separate_buildding_dir=self.separate_build_dir,
            source_configure_reldir=self.source_configure_reldir
            )

        if ret == 0:

            p1 = wayround_org.utils.path.join(
                self.custom_data['dst_boot_dir'],
                'vmlinuz'
                )

            p2 = wayround_org.utils.path.join(
                self.custom_data['dst_boot_dir'],
                'vmlinuz-{}-{}'.format(
                    self.get_package_info()['pkg_nameinfo'][
                        'groups']['version'],
                    self.get_host_from_pkgi()
                    )
                )

            log.info("Renaming: `{}' to `{}'".format(p1, p2))

            os.rename(p1, p2)
        return ret
Ejemplo n.º 20
0
    def builder_action_distribute(self, called_as, log):

        doc_dir = wayround_org.utils.path.join(
            self.calculate_dst_install_prefix(),
            'share',
            'doc',
            'db'
            )

        os.makedirs(
            doc_dir,
            exist_ok=True
            )

        ret = autotools.make_high(
            self.buildingsite_path,
            log=log,
            options=[],
            arguments=[
                'install',
                'DESTDIR={}'.format(self.get_dst_dir()),
                'docdir={}'.format(
                    wayround_org.utils.path.join(
                        self.calculate_install_prefix(), 'share', 'doc', 'db'
                        )
                    )
                # it's not a mistake docdir
                # must be eq to self.calculate_install_prefix() + /share/doc/db
                # with leading slash
                ],
            environment={},
            environment_mode='copy',
            use_separate_buildding_dir=self.separate_build_dir,
            source_configure_reldir=self.source_configure_reldir
            )

        return ret
Ejemplo n.º 21
0
def main(buildingsite, action=None):

    ret = 0

    r = wayround_org.aipsetup.build.build_script_wrap(
        buildingsite,
        ['extract', 'configure', 'build', 'distribute'],
        action,
        "help"
        )

    if not isinstance(r, tuple):
        logging.error("Error")
        ret = r

    else:

        pkg_info, actions = r

        src_dir = wayround_org.aipsetup.build.getDIR_SOURCE(buildingsite)

        dst_dir = wayround_org.aipsetup.build.getDIR_DESTDIR(buildingsite)

        separate_build_dir = False

        source_configure_reldir = '.'

        if 'extract' in actions:
            if os.path.isdir(src_dir):
                logging.info("cleaningup source dir")
                wayround_org.utils.file.cleanup_dir(src_dir)
            ret = autotools.extract_high(
                buildingsite,
                pkg_info['pkg_info']['basename'],
                unwrap_dir=True,
                rename_dir=False
                )

        if 'configure' in actions and ret == 0:
            ret = autotools.configure_high(
                buildingsite,
                options=[],
                arguments=[],
                environment={},
                environment_mode='copy',
                source_configure_reldir=source_configure_reldir,
                use_separate_buildding_dir=separate_build_dir,
                script_name='configure',
                run_script_not_bash=False,
                relative_call=False
                )

        if 'build' in actions and ret == 0:
            ret = autotools.make_high(
                buildingsite,
                options=[],
                arguments=[],
                environment={},
                environment_mode='copy',
                use_separate_buildding_dir=separate_build_dir,
                source_configure_reldir=source_configure_reldir
                )

            if ret == 0:
                ret = autotools.make_high(
                    buildingsite,
                    options=[],
                    arguments=['shared'],
                    environment={},
                    environment_mode='copy',
                    use_separate_buildding_dir=separate_build_dir,
                    source_configure_reldir=source_configure_reldir
                    )

            if ret == 0:
                ret = autotools.make_high(
                    buildingsite,
                    options=[],
                    arguments=['static'],
                    environment={},
                    environment_mode='copy',
                    use_separate_buildding_dir=separate_build_dir,
                    source_configure_reldir=source_configure_reldir
                    )

        if 'distribute' in actions and ret == 0:

            dst_bin = wayround_org.utils.path.join(dst_dir, 'usr', 'bin')
            dst_lib = wayround_org.utils.path.join(dst_dir, 'usr', 'lib')
            dst_inc = wayround_org.utils.path.join(dst_dir, 'usr', 'include')
            dst_man1 = wayround_org.utils.path.join(dst_dir, 'usr', 'share', 'man', 'man1')
            dst_man3 = wayround_org.utils.path.join(dst_dir, 'usr', 'share', 'man', 'man3')

            for i in [dst_bin, dst_lib, dst_inc, dst_man1, dst_man3]:
                if not os.path.isdir(i):
                    os.makedirs(i)

            for i in ['dnsget', 'ex-rdns', 'rblcheck']:
                for j in ['', '_s']:
                    shutil.copy(
                        wayround_org.utils.path.join(src_dir, '{}{}'.format(i, j)),
                        dst_bin,
                        )

            for i in (
                glob.glob(wayround_org.utils.path.join(src_dir, '*.so*')) +
                glob.glob(wayround_org.utils.path.join(src_dir, '*.a'))
                ):

                b = os.path.basename(i)

                shutil.copy(
                    wayround_org.utils.path.join(src_dir, b),
                    dst_lib
                    )

            shutil.copy(
                wayround_org.utils.path.join(src_dir, 'udns.h'),
                dst_inc
                )

            for i in ['dnsget.1', 'rblcheck.1']:
                shutil.copy(
                    wayround_org.utils.path.join(src_dir, i),
                    dst_man1,
                    )

            for i in ['udns.3']:
                shutil.copy(
                    wayround_org.utils.path.join(src_dir, i),
                    dst_man3,
                    )

    return ret
Ejemplo n.º 22
0
def main(buildingsite, action=None):

    ret = 0

    r = wayround_org.aipsetup.build.build_script_wrap(
        buildingsite,
        ['extract', 'configure', 'build', 'distribute'],
        action,
        "help"
        )

    if not isinstance(r, tuple):
        logging.error("Error")
        ret = r

    else:

        pkg_info, actions = r

        tar_dir = wayround_org.aipsetup.build.getDIR_TARBALL(buildingsite)

        src_dir = wayround_org.aipsetup.build.getDIR_SOURCE(buildingsite)

        dst_dir = wayround_org.aipsetup.build.getDIR_DESTDIR(buildingsite)

        src_jdk_dir = wayround_org.utils.path.join(src_dir, 'openjdk.build', 'j2sdk-image')

        java_exec = wayround_org.utils.path.join(src_jdk_dir, 'bin', 'java')

        java_dir = wayround_org.utils.path.join(dst_dir, 'usr', 'lib', 'java')

        etc_dir = wayround_org.utils.path.join(dst_dir, 'etc', 'profile.d', 'SET')

        java009 = wayround_org.utils.path.join(etc_dir, '009.java')

        classpath000 = wayround_org.utils.path.join(etc_dir, '000.classpath')

        separate_build_dir = False

        source_configure_reldir = '.'

        envi = copy.deepcopy(os.environ)
        if 'JAVA_HOME' in envi:
            del envi['JAVA_HOME']

        if 'extract' in actions:
            if os.path.isdir(src_dir):
                logging.info("cleaningup source dir")
                wayround_org.utils.file.cleanup_dir(src_dir)
            ret = autotools.extract_high(
                buildingsite,
                pkg_info['pkg_info']['basename'],
                unwrap_dir=True,
                rename_dir=False
                )

        if 'configure' in actions and ret == 0:

            ret = autotools.configure_high(
                buildingsite,
                options=[
                    # '--disable-tests',
                    # '--disable-jdk-tests',
                    # '--disable-langtools-tests',
                    # '--disable-hotspot-tests',
                    # '--disable-bootstrap',
                    # '--with-jdk-home=/home/agu/_sda3/_UNICORN/b2/java/jdk1.7.0_55',
                    '--enable-system-zlib',
                    '--enable-system-jpeg',
                    '--enable-system-png',
                    '--enable-system-gif',
                    '--enable-system-lcms',
                    '--enable-system-gtk',
                    '--enable-system-gio',
                    '--enable-system-fontconfig',

                    '--with-jdk-home=/usr/lib/java/jdk',
                    '--prefix=' + pkg_info['constitution']['paths']['usr'],
                    '--mandir=' + pkg_info['constitution']['paths']['man'],
                    '--sysconfdir=' +
                    pkg_info['constitution']['paths']['config'],
                    '--localstatedir=' +
                    pkg_info['constitution']['paths']['var'],
                    '--enable-shared',
                    '--host=' + pkg_info['constitution']['host'],
                    '--build=' + pkg_info['constitution']['build'],
                    # '--target=' + pkg_info['constitution']['target']
                    ],
                arguments=[],
                environment=envi,
                environment_mode='copy',
                source_configure_reldir=source_configure_reldir,
                use_separate_buildding_dir=separate_build_dir,
                script_name='configure',
                run_script_not_bash=False,
                relative_call=False
                )

        if 'build' in actions and ret == 0:
            ret = autotools.make_high(
                buildingsite,
                options=[],
                arguments=[],
                environment=envi,
                environment_mode='copy',
                use_separate_buildding_dir=separate_build_dir,
                source_configure_reldir=source_configure_reldir
                )

        if 'distribute' in actions and ret == 0:

            ver = ''

            p = subprocess.Popen(
                [java_exec, '-version'],
                stdout=subprocess.PIPE,
                stderr=subprocess.STDOUT
                )

            comm = p.communicate()

            stdou = comm[0]

            ver_str = str(stdou.splitlines()[0], encoding='utf-8')

            m = re.match('java version "(.*)"', ver_str)
            if not m:
                logging.error("Error getting version")
                ret = 10
            else:
                ver = m.group(1)

            teaname = 'icedtea-' + ver
            print(teaname)

            jdk_dir = wayround_org.utils.path.join(java_dir, teaname)

            os.makedirs(java_dir, exist_ok=True)

            wayround_org.utils.file.copytree(
                src_jdk_dir,
                jdk_dir,
                clear_before_copy=True,
                overwrite_files=True,
                dst_must_be_empty=False
                )

            for i in [
                    wayround_org.utils.path.join(java_dir, 'jre'),
                    wayround_org.utils.path.join(java_dir, 'jdk'),
                    wayround_org.utils.path.join(java_dir, 'java')
                    ]:

                if os.path.islink(i):
                    os.unlink(i)

                os.symlink(teaname, i)

            os.makedirs(etc_dir, exist_ok=True)

            fi = open(java009, 'w')

            fi.write(
                """\
#!/bin/bash
export JAVA_HOME=/usr/lib/java/jdk
export PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin
export MANPATH=$MANPATH:$JAVA_HOME/man
if [ "${#LD_LIBRARY_PATH}" -ne "0" ]; then
    LD_LIBRARY_PATH+=":"
fi
export LD_LIBRARY_PATH+="$JAVA_HOME/jre/lib/i386:$JAVA_HOME/jre/lib/i386/client"
"""
                )

            fi.close()

            fi = open(classpath000, 'w')
            fi.write(
                """\
#!/bin/bash
export CLASSPATH='/usr/lib/java/classpath/*'
"""
                )

            src_downs = glob.glob(src_dir + os.path.sep + '*.tar*')

            for i in src_downs:
                logging.info("Copying source {}".format(os.path.basename(i)))
                shutil.copyfile(i, tar_dir + os.path.sep + os.path.basename(i))

    return ret
Ejemplo n.º 23
0
def main(buildingsite, action=None):

    ret = 0

    r = wayround_org.aipsetup.build.build_script_wrap(
        buildingsite,
        # ['extract', 'exctract_install-tl', 'configure',
        #  'build', 'distribute', 'install-tl'],
        ['extract', 'configure', 'build', 'distribute'],
        action,
        "help"
        )

    if not isinstance(r, tuple):
        logging.error("Error")
        ret = r

    else:

        pkg_info, actions = r

        src_dir = wayround_org.aipsetup.build.getDIR_SOURCE(buildingsite)

        tar_dir = wayround_org.aipsetup.build.getDIR_TARBALL(buildingsite)

        dst_dir = wayround_org.aipsetup.build.getDIR_DESTDIR(buildingsite)

        install_tl_dir = wayround_org.utils.path.join(buildingsite, 'install-tl')

        script = wayround_org.utils.path.join(install_tl_dir, 'install-tl')

        separate_build_dir = True

        source_configure_reldir = '.'

        usr = pkg_info['constitution']['paths']['usr']

        tex_live_dir = wayround_org.utils.path.join(usr, 'lib', 'texlive')

        dst_tex_live_dir = wayround_org.utils.path.join(dst_dir, 'usr', 'lib', 'texlive')

        dst_tex_live_bin = wayround_org.utils.path.join(dst_tex_live_dir, 'bin')

        if 'extract' in actions:
            if os.path.isdir(src_dir):
                logging.info("cleaningup source dir")
                wayround_org.utils.file.cleanup_dir(src_dir)

            ret = autotools.extract_high(
                buildingsite,
                pkg_info['pkg_info']['basename'],
                unwrap_dir=True,
                rename_dir=False
                )

        if 'exctract_install-tl' in actions and ret == 0:
            tl_install = None
            lst = os.listdir(tar_dir)

            for i in lst:
                if i.startswith('install-tl'):
                    tl_install = i

            if not tl_install:
                logging.error("install-tl archive not found")

            log = wayround_org.utils.log.Log(
                wayround_org.aipsetup.build.getDIR_BUILD_LOGS(buildingsite),
                'extract'
                )

            tmpdir = tempfile.mkdtemp(
                dir=wayround_org.aipsetup.build.getDIR_TEMP(buildingsite)
                )

            ret = wayround_org.utils.archive.extract_low(
                log,
                tmpdir,
                wayround_org.utils.path.join(tar_dir, tl_install),
                outdir=install_tl_dir,
                unwrap_dir=True,
                rename_dir=False
                )

            log.close()

        if 'configure' in actions and ret == 0:

            ret = autotools.configure_high(
                buildingsite,
                options=[
                    '--prefix=' + tex_live_dir,
                    '--sysconfdir=' +
                        pkg_info['constitution']['paths']['config'],
                    '--localstatedir=' +
                        pkg_info['constitution']['paths']['var'],
                    '--enable-shared',
                    '--disable-native-texlive-build',
                    '--host=' + pkg_info['constitution']['host'],
                    '--build=' + pkg_info['constitution']['build'],
#                    '--target=' + pkg_info['constitution']['target']
                    ],
                arguments=[],
                environment={},
                environment_mode='copy',
                source_configure_reldir=source_configure_reldir,
                use_separate_buildding_dir=separate_build_dir,
                script_name='configure',
                run_script_not_bash=False,
                relative_call=False
                )

        if 'build' in actions and ret == 0:
            ret = autotools.make_high(
                buildingsite,
                options=[],
                arguments=[],
                environment={},
                environment_mode='copy',
                use_separate_buildding_dir=separate_build_dir,
                source_configure_reldir=source_configure_reldir
                )

        if 'distribute' in actions and ret == 0:
            ret = autotools.make_high(
                buildingsite,
                options=[],
                arguments=[
                    'install',
                    'DESTDIR=' + dst_dir
                    ],
                environment={},
                environment_mode='copy',
                use_separate_buildding_dir=separate_build_dir,
                source_configure_reldir=source_configure_reldir
                )

            p_dir = wayround_org.utils.path.join(dst_dir, 'etc', 'profile.d', 'SET')

            if not os.path.exists(p_dir):
                os.makedirs(p_dir)

            p_file = wayround_org.utils.path.join(p_dir, '009.texlive')
            f = open(p_file, 'w')
            f.write(
                """\
#!/bin/bash

TEXPATH={prefix}

export PATH="$PATH:$TEXPATH/bin"

if [ -n "$LD_LIBRARY_PATH" ]
then
    export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$TEXPATH/lib"
else
    export LD_LIBRARY_PATH="$TEXPATH/lib"
fi

""".format(host=pkg_info['constitution']['host'], prefix=tex_live_dir)
                )
            f.close()

        if 'install-tl' in actions and ret == 0:
            logging.info(
                "Starting start-tl script in dir `{}'".format(install_tl_dir)
                )
            p = subprocess.Popen(
                [
                    script,
                    '-repository='
                    'http://mirrors.wayround.org/www.ctan.org'
                    '/tex/systems/texlive/tlnet/tlpkg',
                    '-custom-bin={dst_tex_live_bin}'.format(
                        host=pkg_info['constitution']['paths']['usr'],
                        dst_tex_live_bin=dst_tex_live_bin
                        )
                    ],
                env={
                        'TEXLIVE_INSTALL_PREFIX': dst_tex_live_dir,
                        'TEXLIVE_INSTALL_TEXDIR': dst_tex_live_dir
                        },
                cwd=install_tl_dir
                )

            ret = p.wait()

    return ret
Ejemplo n.º 24
0
def main(buildingsite, action=None):

    ret = 0

    r = wayround_org.aipsetup.build.build_script_wrap(
        buildingsite,
        ['extract', 'configure', 'build', 'distribute'],
        action,
        "help"
        )

    if not isinstance(r, tuple):
        logging.error("Error")
        ret = r

    else:

        pkg_info, actions = r

        src_dir = wayround_org.aipsetup.build.getDIR_SOURCE(buildingsite)

        dst_dir = wayround_org.aipsetup.build.getDIR_DESTDIR(buildingsite)

        separate_build_dir = False

        source_configure_reldir = '.'

        if 'extract' in actions:
            if os.path.isdir(src_dir):
                logging.info("cleaningup source dir")
                wayround_org.utils.file.cleanup_dir(src_dir)
            ret = autotools.extract_high(
                buildingsite,
                pkg_info['pkg_info']['basename'],
                unwrap_dir=True,
                rename_dir=False
                )

        if 'configure' in actions and ret == 0:
            ret = autotools.configure_high(
                buildingsite,
                options=[
                    '--with-botan-config=/usr/bin/botan-config-1.10',
                    '--prefix=' + pkg_info['constitution']['paths']['usr'],
                    '--mandir=' + pkg_info['constitution']['paths']['man'],
                    '--sysconfdir=' +
                        pkg_info['constitution']['paths']['config'],
                    '--localstatedir=' +
                        pkg_info['constitution']['paths']['var'],
                    '--enable-shared',
                    '--host=' + pkg_info['constitution']['host'],
                    '--build=' + pkg_info['constitution']['build'],
#                    '--target=' + pkg_info['constitution']['target']
                    ],
                arguments=[],
                environment={},
                environment_mode='copy',
                source_configure_reldir=source_configure_reldir,
                use_separate_buildding_dir=separate_build_dir,
                script_name='configure',
                run_script_not_bash=False,
                relative_call=False
                )

        if 'build' in actions and ret == 0:
            ret = autotools.make_high(
                buildingsite,
                options=[],
                arguments=[],
                environment={},
                environment_mode='copy',
                use_separate_buildding_dir=separate_build_dir,
                source_configure_reldir=source_configure_reldir
                )

        if 'distribute' in actions and ret == 0:
            ret = autotools.make_high(
                buildingsite,
                options=[],
                arguments=[
                    'install',
                    'DESTDIR=' + dst_dir
                    ],
                environment={},
                environment_mode='copy',
                use_separate_buildding_dir=separate_build_dir,
                source_configure_reldir=source_configure_reldir
                )

    return ret