def builder_action_extract(self, called_as, log):

        ret = autotools.extract_high(
            self.buildingsite_path,
            self.get_package_info()['pkg_info']['basename'],
            log=log,
            unwrap_dir=True,
            rename_dir=False
            )

        tar = None

        for i in os.listdir(self.get_src_dir()):
            if i.endswith('.tar'):
                tar = i
                break

        if tar is None:
            log.error(".tar not found in 00.SOURCE")
            ret = 1
        else:

            tar_dir = tar[:-len('.tar')]

            log.info("Unpacking {}".format(tar))
            p = subprocess.Popen(
                ['tar', '-xf', tar],
                cwd=self.get_src_dir(),
                stdout=log.stdout,
                stderr=log.stderr
                )

            p_r = p.wait()

            if p_r != 0:
                log.error("Error `{}' while untarring".format(p_r))
                ret = 2
            else:
                if not tar_dir in os.listdir(self.get_src_dir()):
                    log.error("wrong tarball")
                    ret = 3
                else:
                    tar_dir = wayround_org.utils.path.join(
                        self.get_src_dir(),
                        tar_dir
                        )
                    lsof_file = wayround_org.utils.path.join(
                        tar_dir,
                        'lsof'
                        )
                    lsof_man_file = wayround_org.utils.path.join(
                        tar_dir,
                        'lsof.8'
                        )

                    self.custom_data['tar_dir'] = tar_dir
                    self.custom_data['lsof_file'] = lsof_file
                    self.custom_data['lsof_man_file'] = lsof_man_file

        return ret
 def builder_action_extract(self, called_as, log):
     ret = autotools.extract_high(
         self.buildingsite_path,
         self.get_package_info()['pkg_info']['basename'],
         log=log,
         unwrap_dir=False,
         rename_dir=False,
         more_when_one_extracted_ok=True
         )
     return ret
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
    def builder_action_extract(self, called_as, log):

        ret = autotools.extract_high(
            self.buildingsite_path,
            'tzdata',
            log=log,
            unwrap_dir=False,
            rename_dir=False,
            more_when_one_extracted_ok=True
            )

        return ret
def main(buildingsite, action=None):

    ret = 0

    r = wayround_org.aipsetup.build.build_script_wrap(
        buildingsite,
        [
            'extract', 'scons', '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)

        if 'extract' in actions:
            if os.path.isdir(src_dir):
                log.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 'scons' in actions and ret == 0:

            ret = subprocess.Popen(
                ['scons'],
                cwd=wayround_org.utils.path.join(src_dir, 'supportlib')
                ).wait()

        if 'distribute' in actions and ret == 0:
            ret = subprocess.Popen(
                ['python3', 'setup.py', 'install',
                 '--root={}'.format(wayround_org.utils.path.join(dst_dir))],
                cwd=src_dir
                ).wait()

    return ret
Example #6
0
    def builder_action_extract(self, called_as, log):
        """
        Standard sources extraction actions
        """

        ret = autotools.extract_high(
            self.buildingsite_path,
            self.get_package_info()['pkg_info']['basename'],
            log=log,
            unwrap_dir=True,
            rename_dir=False
            )

        return ret
    def builder_action_extract(self, called_as, log):

        ret = super().builder_action_extract(called_as, log)

        if ret == 0:

            for i in ['corba', 'hostspot', 'jaxp', 'jaxws',
                      'langtools', 'nashorn']:

                if autotools.extract_high(
                        self.buildingsite_path,
                        i,
                        log=log,
                        unwrap_dir=False,
                        rename_dir=i
                        ) != 0:

                    log.error("Can't extract component: {}".format(i))
                    ret = 2

        return ret
    def builder_action_extract(self, called_as, log):

        ret = super().builder_action_extract(called_as, log)

        if ret == 0:

            for i in [
                'gmp', 
                'mpc', 'mpfr', 'isl', 'cloog']:

                if autotools.extract_high(
                        self.buildingsite_path,
                        i,
                        log=log,
                        unwrap_dir=False,
                        rename_dir=i
                        ) != 0:

                    log.error("Can't extract component: {}".format(i))
                    ret = 2

        return ret
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
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
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
Example #12
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