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 builder_action_configure(self, called_as, log): log.info( "crossbuild?: {}, crossbuilder?: {}".format( self.get_is_crossbuild(), self.get_is_crossbuilder() ) ) self.check_deprecated_methods(called_as, log) envs = {} if hasattr(self, 'builder_action_configure_define_environment'): envs = self.builder_action_configure_define_environment( called_as, log ) opts = [] if hasattr(self, 'builder_action_configure_define_opts'): opts = self.builder_action_configure_define_opts( called_as, log ) args = [] if hasattr(self, 'builder_action_configure_define_args'): args = self.builder_action_configure_define_args( called_as, log ) ret = autotools.configure_high( self.buildingsite_path, log=log, options=opts, arguments=args, environment=envs, environment_mode='copy', source_configure_reldir=self.source_configure_reldir, use_separate_buildding_dir=self.separate_build_dir, script_name=self.builder_action_configure_define_script_name( called_as, log ), run_script_not_bash=( self.builder_action_configure_define_run_script_not_bash( called_as, log ) ), relative_call=( self.builder_action_configure_define_relative_call( called_as, log ) ) ) #sleeptime = 5 #log.info("sleep: \033[0;1m{}\033[0m seconds".format(sleeptime)) # time.sleep(sleeptime) 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
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=[], 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