diff --git a/README.en.md b/README.en.md deleted file mode 100644 index 3cc651fb7b2a8588a97233c9ebd2b70972e36564..0000000000000000000000000000000000000000 --- a/README.en.md +++ /dev/null @@ -1,36 +0,0 @@ -# yocto-pseudo - -#### Description -The pseudo tool of Yocto project - -#### Software Architecture -Software architecture description - -#### Installation - -1. xxxx -2. xxxx -3. xxxx - -#### Instructions - -1. xxxx -2. xxxx -3. xxxx - -#### Contribution - -1. Fork the repository -2. Create Feat_xxx branch -3. Commit your code -4. Create Pull Request - - -#### Gitee Feature - -1. You can use Readme\_XXX.md to support different languages, such as Readme\_en.md, Readme\_zh.md -2. Gitee blog [blog.gitee.com](https://blog.gitee.com) -3. Explore open source project [https://gitee.com/explore](https://gitee.com/explore) -4. The most valuable open source project [GVP](https://gitee.com/gvp) -5. The manual of Gitee [https://gitee.com/help](https://gitee.com/help) -6. The most popular members [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/) diff --git a/README.md b/README.md deleted file mode 100644 index 1d892dd3340aacb707dbe8e0193a7a915ac9160f..0000000000000000000000000000000000000000 --- a/README.md +++ /dev/null @@ -1,37 +0,0 @@ -# yocto-pseudo - -#### 介绍 -The pseudo tool of Yocto project - -#### 软件架构 -软件架构说明 - - -#### 安装教程 - -1. xxxx -2. xxxx -3. xxxx - -#### 使用说明 - -1. xxxx -2. xxxx -3. xxxx - -#### 参与贡献 - -1. Fork 本仓库 -2. 新建 Feat_xxx 分支 -3. 提交代码 -4. 新建 Pull Request - - -#### 特技 - -1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md -2. Gitee 官方博客 [blog.gitee.com](https://blog.gitee.com) -3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解 Gitee 上的优秀开源项目 -4. [GVP](https://gitee.com/gvp) 全称是 Gitee 最有价值开源项目,是综合评定出的优秀开源项目 -5. Gitee 官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help) -6. Gitee 封面人物是一档用来展示 Gitee 会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/) diff --git a/pseudo-060058bb29f70b244e685b3c704eb0641b736f73.tar.gz b/pseudo-060058bb29f70b244e685b3c704eb0641b736f73.tar.gz deleted file mode 100644 index 715f81c5a7d363dd74efc33aafd21c3cc2f85d20..0000000000000000000000000000000000000000 Binary files a/pseudo-060058bb29f70b244e685b3c704eb0641b736f73.tar.gz and /dev/null differ diff --git a/scripts/build.sh b/scripts/build.sh new file mode 100755 index 0000000000000000000000000000000000000000..f283d752929634b067ff19cacd2cced4bb602858 --- /dev/null +++ b/scripts/build.sh @@ -0,0 +1,173 @@ +#!/bin/bash +set -x + +SRC_DIR="/usr1/openeuler/src" +BUILD_DIR="${SRC_DIR}/build" +STRIP="/usr1/openeuler/gcc/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-strip" +MACHINE="qemu-arm" +#MACHINE="qemu-aarch64" +ROOTFS_DIR="/usr1/openeuler/rootfs/${MACHINE}" +OUTPUT_DIR="/usr1/output/${MACHINE}" +#compile +#sudo -E -u huawei sh ./compile.sh "${SRC_DIR}" "${MACHINE}" +#make image +if [ -d ${ROOTFS_DIR} ]; then rm -rf ${ROOTFS_DIR}; fi +mkdir -p ${ROOTFS_DIR} ${OUTPUT_DIR} +cp -a "${BUILD_DIR}"/tmp/work/*/linux-openeuler/*/image/boot/zImage-* "${OUTPUT_DIR}"/zImage + +#build tiny rootfs +pushd "${ROOTFS_DIR}" +mkdir -p ./lib ./usr/lib ./etc ./proc ./sys ./root ./etc/init.d ./run ./dev ./lib/modules ./sys/fs/cgroup +cp -a "${BUILD_DIR}"/tmp/work/*/busybox/*/image/* ./ +mv ./linuxrc ./init +if [[ "${MACHINE}" == "qemu-arm" ]];then + cp -a "${BUILD_DIR}"/tmp/sysroots-components/*/gcc-bin-toolchain-cross*/usr/*/libc/lib/ld-linux.so.3 ./lib +else + cp -a "${BUILD_DIR}"/tmp/sysroots-components/*/gcc-bin-toolchain-cross*/usr/*/libc/lib/ld-linux-aarch64.so.1 ./lib +fi +cp -a "${BUILD_DIR}"/tmp/sysroots-components/*/gcc-bin-toolchain-cross*/usr/*/libc/lib/libc-2.25.so ./lib +cp -a "${BUILD_DIR}"/tmp/sysroots-components/*/gcc-bin-toolchain-cross*/usr/*/libc/lib/libm-2.25.so ./lib +cp -a "${BUILD_DIR}"/tmp/sysroots-components/*/gcc-bin-toolchain-cross*/usr/*/libc/lib/libc.so.6 ./lib +cp -a "${BUILD_DIR}"/tmp/sysroots-components/*/gcc-bin-toolchain-cross*/usr/*/libc/usr/lib/libc.so ./usr/lib +cp -a "${BUILD_DIR}"/tmp/sysroots-components/*/gcc-bin-toolchain-cross*/usr/*/libc/lib/libm.so.6 ./lib +cp -a "${BUILD_DIR}"/tmp/sysroots-components/*/gcc-bin-toolchain-cross*/usr/*/libc/usr/lib/libm.so ./usr/lib +cp -a "${BUILD_DIR}"/tmp/sysroots-components/*/gcc-bin-toolchain-cross*/usr/*/libc/lib/ld-2.25.so ./lib +cp -a "${BUILD_DIR}"/tmp/sysroots-components/*/gcc-bin-toolchain-cross*/usr/*/libc/usr/lib/libcrypt.so ./usr/lib +cp -a "${BUILD_DIR}"/tmp/sysroots-components/*/gcc-bin-toolchain-cross*/usr/*/libc/lib/libcrypt.so.1 ./lib +cp -a "${BUILD_DIR}"/tmp/sysroots-components/*/gcc-bin-toolchain-cross*/usr/*/libc/lib/libcrypt-2.25.so ./lib +echo "::sysinit:/etc/init.d/rcS" > ./etc/inittab +echo "::respawn:-/bin/sh" >> ./etc/inittab +echo "#!/bin/sh" >./etc/init.d/rcS +echo "/bin/mount -a" >>./etc/init.d/rcS +chmod +x ./etc/init.d/rcS +echo "proc /proc proc defaults 0 0" >./etc/fstab +echo "sysfs /sys sysfs defaults 0 0" >>./etc/fstab +"${STRIP}" ./lib/* || echo "ignore File format not recognized" +"${STRIP}" ./bin/* +"${STRIP}" ./usr/lib/* || echo "ignore File format not recognized" +mkdir -p "${OUTPUT_DIR}"/ +find . | cpio -H newc -o | gzip -c > "${OUTPUT_DIR}"/initrd_tiny + +#build normal rootfs +TMP_DIR=${BUILD_DIR}/worktmp +#local TMP_ROOTFS=${TMP_DIR}/rootfs +TMP_ROOTFS=${ROOTFS_DIR} +PKGS="audit audispd cracklib libcap-ng libpwquality openssh libpam pam shadow libz os-base" +if [ ${MACHINE} == "qemu-arm" ];then + PKGS="$PKGS kernel-module-unix" +fi + +rm -rf $TMP_DIR +mkdir -p $TMP_DIR ${TMP_ROOTFS} + +# copy rpms +for i in $PKGS +do + TMPFILE=`find ${BUILD_DIR}/tmp -name $i*.rpm` + cp ${TMPFILE} ${TMP_DIR} +done +# remove rpms +cd $TMP_DIR +rm -rf *-locale-*.rpm *-dbg-* *-dev-* *-doc-* *-staticdev-* +cd - + +cd ${TMP_ROOTFS} +TMP_RPMS=`find ${TMP_DIR} -name *.rpm` +for i in ${TMP_RPMS} +do + rpm2cpio $i | cpio -diu +done +cd - + +cd ${TMP_ROOTFS} +#rm -rf usr/share +mkdir -p usr/lib lib etc/rc.d tmp proc sys var/log/audit var/run/sshd + +cp -a ${BUILD_DIR}/tmp/sysroots-components/*/gcc-bin-toolchain-cross*/usr/*/libc/lib/libdl-2.25.so ./lib +cp -a ${BUILD_DIR}/tmp/sysroots-components/*/gcc-bin-toolchain-cross*/usr/*/libc/lib/libdl.so.2 ./lib +cp -a ${BUILD_DIR}/tmp/sysroots-components/*/gcc-bin-toolchain-cross*/usr/*/libc/lib/libnss_compat-2.25.so ./lib +cp -a ${BUILD_DIR}/tmp/sysroots-components/*/gcc-bin-toolchain-cross*/usr/*/libc/lib/libnss_compat-2.25.so ./lib +cp -a ${BUILD_DIR}/tmp/sysroots-components/*/gcc-bin-toolchain-cross*/usr/*/libc/lib/libnsl-2.25.so ./lib +cp -a ${BUILD_DIR}/tmp/sysroots-components/*/gcc-bin-toolchain-cross*/usr/*/libc/lib/libnsl.so.1 ./lib +cp -a ${BUILD_DIR}/tmp/sysroots-components/*/gcc-bin-toolchain-cross*/usr/*/libc/lib/libnss_nis-2.25.so ./lib +cp -a ${BUILD_DIR}/tmp/sysroots-components/*/gcc-bin-toolchain-cross*/usr/*/libc/lib/libnss_nis.so.2 ./lib +cp -a ${BUILD_DIR}/tmp/sysroots-components/*/gcc-bin-toolchain-cross*/usr/*/libc/lib/libnss_files-2.25.so ./lib +cp -a ${BUILD_DIR}/tmp/sysroots-components/*/gcc-bin-toolchain-cross*/usr/*/libc/lib/libnss_files.so.2 ./lib +cp -a ${BUILD_DIR}/tmp/sysroots-components/*/gcc-bin-toolchain-cross*/usr/*/libc/lib/libpthread-2.25.so ./lib +cp -a ${BUILD_DIR}/tmp/sysroots-components/*/gcc-bin-toolchain-cross*/usr/*/libc/lib/libpthread.so.0 ./lib +cp -a ${BUILD_DIR}/tmp/sysroots-components/*/gcc-bin-toolchain-cross*/usr/*/libc/lib/libutil-2.25.so ./lib +cp -a ${BUILD_DIR}/tmp/sysroots-components/*/gcc-bin-toolchain-cross*/usr/*/libc/lib/libutil.so.1 ./lib +cp -a ${BUILD_DIR}/tmp/sysroots-components/*/gcc-bin-toolchain-cross*/usr/*/libc/lib/libresolv-2.25.so ./lib +cp -a ${BUILD_DIR}/tmp/sysroots-components/*/gcc-bin-toolchain-cross*/usr/*/libc/lib/libresolv.so.2 ./lib +if [ ${MACHINE} == "qemu-arm" ]; then + cp -a ${BUILD_DIR}/tmp/sysroots-components/*/gcc-bin-toolchain-cross*/usr/*/libc/lib/librt-2.25.so ./lib + cp -a ${BUILD_DIR}/tmp/sysroots-components/*/gcc-bin-toolchain-cross*/usr/*/libc/lib/librt.so.1 ./lib +fi + +${STRIP} `find . -executable -type f ` +chown root:root ./ -R +if [ ${MACHINE} == "qemu-arm" ]; then + echo "insmod /lib/modules/*/kernel/net/unix/unix.ko" >> etc/rc.d/rc.local +fi +chmod +x etc/rc.d/* +echo "openeuler" > etc/hostname +echo > etc/modules +cd ${ROOTFS_DIR} +find . | cpio -H newc -o |gzip -c > ${OUTPUT_DIR}/initrd_normal + +#build pro rootfs +echo "#!/bin/sh" >./etc/init.d/iSulad.sh +echo "insmod /lib/modules/overlay.ko " >> ./etc/init.d/iSulad.sh +echo "mount -t tmpfs tmpfs /sys/fs/cgroup " >> ./etc/init.d/iSulad.sh +echo "mkdir -p /sys/fs/cgroup/cpu /sys/fs/cgroup/devices /sys/fs/cgroup/cpuset /sys/fs/cgroup/hugetlb /sys/fs/cgroup/blkio /sys/fs/cgroup/memory /sys/fs/cgroup/systemd" >> ./etc/init.d/iSulad.sh +echo "mount -t cgroup -o cpu cpu /sys/fs/cgroup/cpu " >> ./etc/init.d/iSulad.sh +echo "mount -t cgroup -o devices devices /sys/fs/cgroup/devices " >> ./etc/init.d/iSulad.sh +echo "mount -t cgroup -o cpuset cpuset /sys/fs/cgroup/cpuset " >> ./etc/init.d/iSulad.sh +echo "mount -t cgroup -o memory memory /sys/fs/cgroup/memory " >> ./etc/init.d/iSulad.sh +echo "echo 1 > /sys/fs/cgroup/memory/memory.use_hierarchy" >> ./etc/init.d/iSulad.sh +echo "mount -t cgroup -o hugetlb hugetlb /sys/fs/cgroup/hugetlb " >> ./etc/init.d/iSulad.sh +echo "mount -t cgroup -o blkio blkio /sys/fs/cgroup/blkio " >> ./etc/init.d/iSulad.sh +echo "mount -t cgroup -o none,name=systemd systemd /sys/fs/cgroup/systemd " >> ./etc/init.d/iSulad.sh +echo "mount -t devtmpfs devtmpfs /dev " >> ./etc/init.d/iSulad.sh +echo "mkdir -p /dev/pts" >> ./etc/init.d/iSulad.sh +echo "mount -t devpts devpts /dev/pts" >> ./etc/init.d/iSulad.sh +chmod +x ./etc/init.d/iSulad.sh +echo "/etc/init.d/iSulad.sh" >>./etc/init.d/rcS + +cp -a "${BUILD_DIR}"/tmp/work/*/zlib/*/image/usr/lib/libz.so* ./usr/lib +cp -a "${BUILD_DIR}"/tmp/work/*/libcap/*/image/lib/libcap* ./lib/ +cp -a "${BUILD_DIR}"/tmp/work/*/libarchive/*/image/usr/lib/libarchive.so* ./usr/lib +cp -a "${BUILD_DIR}"/tmp/work/*/curl/*/image/usr/lib/libcurl.so* ./usr/lib +cp -a "${BUILD_DIR}"/tmp/work/*/libevent/*/image/usr/lib/libevent* ./usr/lib +rm -rf ./usr/lib/libevent*.a +cp -a "${BUILD_DIR}"/tmp/work/*/libevhtp/*/image/usr/lib/libevhtp.so ./usr/lib +cp -a "${BUILD_DIR}"/tmp/work/*/http-parser/*/image/usr/lib/libhttp_parser.so* ./usr/lib +cp -a "${BUILD_DIR}"/tmp/work/*/lcr/*/image/usr/lib/lib* ./usr/lib +cp -a "${BUILD_DIR}"/tmp/work/*/lxc/*/image/usr/lib/liblxc.so* ./usr/lib +cp -a "${BUILD_DIR}"/tmp/work/*/lxc/*/image/usr/bin/lxc-start ./usr/bin +cp -a "${BUILD_DIR}"/tmp/work/*/lxc/*/image/usr/bin/lxc-attach ./usr/bin +cp -a "${BUILD_DIR}"/tmp/work/*/libseccomp/*/image/usr/lib/libseccomp.so* ./usr/lib +cp -a "${BUILD_DIR}"/tmp/work/*/libwebsockets/*/image/usr/lib/libwebsockets.so* ./usr/lib +cp -a "${BUILD_DIR}"/tmp/work/*/yajl/*/image/usr/lib/libyajl.so* ./usr/lib +cp -a "${BUILD_DIR}"/tmp/work/*/openssl/*/image/usr/lib/libcrypto.so* ./usr/lib +cp -a "${BUILD_DIR}"/tmp/work/*/openssl/*/image/usr/lib/libssl.so* ./usr/lib +cp -a "${BUILD_DIR}"/tmp/work/*/iSulad/*/image/usr/lib/lib* ./usr/lib +cp -a "${BUILD_DIR}"/tmp/work/*/iSulad/*/image/usr/bin/* ./usr/bin +cp -a "${BUILD_DIR}"/tmp/work/*/iSulad/*/image/etc/* ./etc/ +cp -a "${BUILD_DIR}"/tmp/work/*/iSulad/*/image/usr/lib/lib* ./usr/lib +cp -a "${BUILD_DIR}"/tmp/sysroots-components/*/gcc-bin-toolchain-cross*/usr/*/libc/lib/libdl* ./lib +cp -a "${BUILD_DIR}"/tmp/sysroots-components/*/gcc-bin-toolchain-cross*/usr/*/libc/lib/libpthread* ./lib +cp -a "${BUILD_DIR}"/tmp/sysroots-components/*/gcc-bin-toolchain-cross*/usr/*/libc/lib/libutil* ./lib +cp -a "${BUILD_DIR}"/tmp/sysroots-components/*/gcc-bin-toolchain-cross*/usr/*/libc/lib/libgcc_s.so.1 ./lib +cp -a "${BUILD_DIR}"/tmp/work/*/linux-openeuler/*/image/lib/modules/*/kernel/fs/overlayfs/overlay.ko ./lib/modules/ +cp -a "${BUILD_DIR}"/tmp/work/*/zlib/*/image/lib/* ./lib + +"${STRIP}" ./lib/* || echo "ignore File format not recognized" +"${STRIP}" ./bin/* +"${STRIP}" ./usr/bin/* +"${STRIP}" ./usr/lib/* || echo "ignore File format not recognized" +find . | cpio -H newc -o | gzip -c > "${OUTPUT_DIR}"/initrd_pro + +popd + + diff --git a/scripts/compile.sh b/scripts/compile.sh new file mode 100644 index 0000000000000000000000000000000000000000..54ff43d113533417c1fb7445af85a6fdc71767e7 --- /dev/null +++ b/scripts/compile.sh @@ -0,0 +1,16 @@ +#!/bin/bash +set -x +SRC_DIR="$1" +MACHINE="$2" + +[[ -z "${SRC_DIR}" ]] && SRC_DIR="/usr1/openeuler/src/" +[[ -z "${MACHINE}" ]] && MACHINE="qemu-arm" +#MACHINE="qemu-aarch64" +TEMPLATECONF="${SRC_DIR}/yocto-meta-embedded/meta-openeuler/conf" +source "${SRC_DIR}"/yocto-poky/oe-init-build-env build +sed -i "s|^MACHINE.*|MACHINE = \"${MACHINE}\"|g" conf/local.conf +AUTOMAKE_V=`ls /usr/bin/automake-1.* |awk -F "/" '{print $4}'` +grep "AUTOMAKE_V" conf/local.conf; +if [ $? -ne 0 ];then echo "HOSTTOOLS += \"$AUTOMAKE_V\"" >> conf/local.conf;fi +bitbake openeuler-image +bitbake iSuald diff --git a/scripts/download.sh b/scripts/download.sh new file mode 100644 index 0000000000000000000000000000000000000000..f02ec80329432dedcbfcc938a554c9b2fc4f5060 --- /dev/null +++ b/scripts/download.sh @@ -0,0 +1,115 @@ +#!/bin/bash +set -xe + +download_gcc() +{ + local url="https://releases.linaro.org/components/toolchain/binaries/7.3-2018.05/aarch64-linux-gnu/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu.tar.xz" + test -f "${TOOLS_DIR}/$(basename ${url})" || wget "${url}" -P "${TOOLS_DIR}" + url="https://releases.linaro.org/components/toolchain/binaries/7.3-2018.05/aarch64-linux-gnu/sysroot-glibc-linaro-2.25-2018.05-aarch64-linux-gnu.tar.xz" + test -f "${TOOLS_DIR}/$(basename ${url})" || wget "${url}" -P "${TOOLS_DIR}" + url="https://releases.linaro.org/components/toolchain/binaries/7.3-2018.05/arm-linux-gnueabi/sysroot-glibc-linaro-2.25-2018.05-arm-linux-gnueabi.tar.xz" + test -f "${TOOLS_DIR}/$(basename ${url})" || wget "${url}" -P "${TOOLS_DIR}" + url="https://releases.linaro.org/components/toolchain/binaries/7.3-2018.05/arm-linux-gnueabi/gcc-linaro-7.3.1-2018.05-x86_64_arm-linux-gnueabi.tar.xz" + test -f "${TOOLS_DIR}/$(basename ${url})" || wget "${url}" -P "${TOOLS_DIR}" +} + +install_gcc_tar() +{ + local install_dir="$1" + [[ -z "${install_dir}" ]] && install_dir="/usr1/openeuler/gcc" + test -d "${install_dir}" || mkdir -p "${install_dir}" + pushd "${install_dir}" + for i in $(ls "${TOOLS_DIR}"/*.tar.*) + do + local unpackdir="$(tar -tf "$i" | awk -F/ '{print $1}' | uniq)" + test -d ./"${unpackdir}" || tar -xf "$i" + done + popd +} + +update_code_repo() +{ + local repo="$1" + local branch="-b $2" + local realdir="$3" + local pkg="$(basename ${repo})" + [[ -z "${realdir}" ]] || pkg="$(basename ${realdir})" + [[ "${pkg}" == "kernel-5.10" ]] && local git_param="--depth 1" + pushd "${SRC_DIR}" + test -d ./"${pkg}" || git clone "${URL_PREFIX}/${repo}" ${branch} ${git_param} -v "${pkg}" + pushd ./"${pkg}" + local newest_commitid="$(git log --pretty=oneline -n1 | awk '{print $1}')" + git status | grep "is up to date with" && return 0 + git reset --hard HEAD + git pull + #local newest_commitid="$(git log --pretty=oneline -n1 | awk '{print $1}')" + popd + popd +} + +download_code() +{ + update_code_repo openeuler/kernel openEuler-21.09 kernel-5.10 + update_code_repo src-openeuler/busybox openEuler-21.09 + update_code_repo openeuler/yocto-meta-embedded openEuler-21.09 + update_code_repo openeuler/yocto-embedded-tools openEuler-21.09 + update_code_repo openeuler/yocto-poky openEuler-21.09 + update_code_repo src-openeuler/yocto-pseudo openEuler-21.09 +} + +download_iSulad_code() +{ + update_code_repo src-openeuler/zlib openEuler-21.09 + update_code_repo src-openeuler/libcap openEuler-21.09 + update_code_repo src-openeuler/yajl openEuler-21.09 + update_code_repo src-openeuler/libseccomp openEuler-21.09 + update_code_repo src-openeuler/curl openEuler-21.09 + update_code_repo src-openeuler/lxc openEuler-21.09 + update_code_repo src-openeuler/lcr openEuler-21.09 + update_code_repo src-openeuler/clibcni openEuler-21.09 + update_code_repo src-openeuler/libarchive openEuler-21.09 + update_code_repo src-openeuler/libevent openEuler-21.09 + update_code_repo src-openeuler/libevhtp openEuler-21.09 + update_code_repo src-openeuler/http-parser openEuler-21.09 + update_code_repo src-openeuler/libwebsockets openEuler-21.09 + update_code_repo src-openeuler/iSuald openEuler-21.09 +} +#git clone --depth 1 https://gitee.com/openeuler/kernel -b openEuler-21.09 -v kernel-5.10 +#git clone https://gitee.com/src-openeuler/busybox +#git clone https://gitee.com/openeuler/yocto-meta-embedded +#git clone https://gitee.com/openeuler/yocto-embedded-tools +#git clone https://gitee.com/openeuler/yocto-poky +#git clone https://gitee.com/src-openeuler/yocto-pseudo + +install_python() +{ +wget https://www.python.org/ftp/python/3.9.2/Python-3.9.2.tgz +tar -xf Python-3.9.2.tgz +install_dir="/opt/buildtools/python-3.9.2/" +rm -rf "${install_dir}" +rm /usr/local/bin/python3 /usr/local/bin/python +cd Python-3.9.2 +./configure --prefix=/opt/buildtools/python-3.9.2 --enable-loadable-sqlite-extensions +make -j 8 && make install +ln -s /opt/buildtools/python-3.9.2/bin/python3 /usr/local/bin/python3 +ln -s /opt/buildtools/python-3.9.2/bin/python3 /usr/local/bin/python +#ModuleNotFoundError: No module named '_socket' +#export PYTHON_HOME="/opt/buildtools/python-3.9.2/" +export PYTHONPATH=/opt/buildtools/python-3.9.2/lib64/python3.9/lib-dynload/ +export PYTHONPATH="/opt/buildtools/python-3.9.2/lib/python3.9/site-packages/:/opt/buildtools/python-3.9.2/:/opt/buildtools/python-3.9.2/lib64/python3.9/lib-dynload/" +} + + +#zypper install autoconf automake chrpath patch +TOOLS_DIR="/usr1/openeuler/src/tools" +SRC_DIR="/usr1/openeuler/src/" +GCC_INSTALL_DIR="/usr1/openeuler/gcc" +URL_PREFIX="https://gitee.com/" +download_gcc +yum -y install tar +install_gcc_tar "${GCC_INSTALL_DIR}" +#zypper --non-interactive install rpmbuild libtool patchelf autoconf automake chrpath patch +###depends by python +#zypper --non-interactive install libffi-devel sqlite-devel xz-devel +download_code +download_iSulad_code