From d1ea871316a0f8bd3745e09832acb5b3311a5a3e Mon Sep 17 00:00:00 2001 From: overweight Date: Tue, 7 Nov 2023 21:33:36 +0800 Subject: [PATCH 1/2] docs: mv devmaster conf to factory for rpmbuild and and mockbuild docs --- .gitignore | 2 +- docs/cicd/build_rpm_with_mock/build_rpm.sh | 91 +++++++++++++++++++ .../build_rpm_with_mock/openeuler-22.03.tpl | 45 +++++++++ .../openeuler-22.03LTS_SP1-aarch64.cfg | 5 + .../openeuler-22.03LTS_SP1-x86_64.cfg | 5 + docs/cicd/build_rpm_with_mock/readme.md | 42 +++++++++ .../cicd/build_rpm_with_mock/sysmaster.spec | 76 ++-------------- .../cicd/build_xz_with_vendor/readme.md | 0 .../cicd/build_xz_with_vendor/vendor.sh | 12 ++- factory/etc/devmaster/config.toml | 19 ++++ .../etc/devmaster/network.d/99-default.link | 5 + .../etc/devmaster/rules.d/99-default.rules | 1 + factory/usr/lib/udev/config.toml | 19 ++++ 13 files changed, 248 insertions(+), 74 deletions(-) create mode 100644 docs/cicd/build_rpm_with_mock/build_rpm.sh create mode 100644 docs/cicd/build_rpm_with_mock/openeuler-22.03.tpl create mode 100644 docs/cicd/build_rpm_with_mock/openeuler-22.03LTS_SP1-aarch64.cfg create mode 100644 docs/cicd/build_rpm_with_mock/openeuler-22.03LTS_SP1-x86_64.cfg create mode 100644 docs/cicd/build_rpm_with_mock/readme.md rename sysmaster.spec => docs/cicd/build_rpm_with_mock/sysmaster.spec (55%) rename "docs/cicd/\344\275\277\347\224\250Vendor\345\217\221\345\270\203\346\272\220\347\240\201/readme.md" => docs/cicd/build_xz_with_vendor/readme.md (100%) rename "docs/cicd/\344\275\277\347\224\250Vendor\345\217\221\345\270\203\346\272\220\347\240\201/vendor.sh" => docs/cicd/build_xz_with_vendor/vendor.sh (89%) create mode 100644 factory/etc/devmaster/config.toml create mode 100644 factory/etc/devmaster/network.d/99-default.link create mode 100644 factory/etc/devmaster/rules.d/99-default.rules create mode 100644 factory/usr/lib/udev/config.toml diff --git a/.gitignore b/.gitignore index df390a34..9270c862 100644 --- a/.gitignore +++ b/.gitignore @@ -9,4 +9,4 @@ libs/blkid_rs/src/libblkid.rs tests/test_units/*.toml libs/input_event_codes_rs/src/get_input_event_key.rs libs/input_event_codes_rs/src/input_event_codes.rs -next/target/ +*/target/ diff --git a/docs/cicd/build_rpm_with_mock/build_rpm.sh b/docs/cicd/build_rpm_with_mock/build_rpm.sh new file mode 100644 index 00000000..9213779d --- /dev/null +++ b/docs/cicd/build_rpm_with_mock/build_rpm.sh @@ -0,0 +1,91 @@ +#!/usr/bin/env bash + +arch=$(uname -m) +vendor="openeuler-22.03LTS_SP1" +if [ $# -ne 1 ]; then + echo "More than one argument supplied, not supported" + echo "./build_rpm.sh [openeuler-22.03LTS_SP1]" +else + vendor=$1 +fi + +# 获取当前脚本的目录 +SCRIPT_DIR=$(cd "$(dirname "$0")" && pwd) +ROOTDIR=$SCRIPT_DIR + +# 递归向上查找包含 Cargo.toml 文件的目录 +while [ ! -f "$ROOTDIR/Cargo.lock" ] && [ "$ROOTDIR" != "/" ]; do + ROOTDIR=$(dirname "$ROOTDIR") +done + +TARGETDIR=$ROOTDIR/target/rpms +rm -rf $TARGETDIR +mkdir -p $TARGETDIR + +pushd $ROOTDIR +# 利用cargo vendor创建源码压缩包 +rustup override set stable +rm -rf vendor +cargo vendor +rustup override unset + +# delete large and unused files +for lib in `find vendor/windows* | grep \\.a$` +do + rm -rf $lib +done +for lib in `find vendor/winapi* | grep \\.a$` +do + rm -rf $lib +done +for lib in `find vendor/windows* | grep \\.lib$` +do + rm -rf $lib +done + +rm -rf petgraph/tests + +for crate in `ls -d vendor/win*` +do + pushd $crate/src + if [ $? -ne 0 ] ;then + continue; + fi + for pathToDelete in `ls` + do + if [ -d "$pathToDelete" ]; then + echo "Deleting files in $pathToDelete..." + rm -rf "$pathToDelete" + else + echo "$pathToDelete is not dir." + fi + done + popd +done + +echo "Create a compressed archive of tar.gz ..." +version_line=$(grep -Eo '^version = "[0-9]+\.[0-9]+\.[0-9]+"' ./Cargo.toml) +version=$(echo "$version_line" | awk -F'"' '{print $2}') + +# compress sysmaster +pushd $ROOTDIR/../ + rm -rf sysmaster-$version + cp -a sysmaster sysmaster-$version + pushd sysmaster-$version + cargo clean + rm -rf .git next docs tools patch target + sed -i '/\[patch.crates-io.loopdev\]/{N;N;d}' Cargo.toml + popd > /dev/null 2>&1 + tar -cJvf $TARGETDIR/sysmaster-$version.tar.xz sysmaster-$version + rm -rf sysmaster-$version +popd > /dev/null 2>&1 + +# 构建srpm +sudo dnf install -y mock rpm-build +sudo usermod -a -G mock $(who | awk '{print $1}' | sort -u) +cp -a $SCRIPT_DIR/* $TARGETDIR +mock -r $vendor-$arch --configdir $TARGETDIR --no-clean --isolation simple --buildsrpm --spec $TARGETDIR/sysmaster.spec --sources=$TARGETDIR/sysmaster-$version.tar.xz --resultdir $TARGETDIR + +# rebuild构建rpms, 结果输出到target/rpms目录下 +srpms=$(ls $TARGETDIR/sysmaster-*.src.rpm) +mock -r $vendor-$arch --configdir $TARGETDIR --no-clean --isolation simple --rebuild $srpms --resultdir $TARGETDIR diff --git a/docs/cicd/build_rpm_with_mock/openeuler-22.03.tpl b/docs/cicd/build_rpm_with_mock/openeuler-22.03.tpl new file mode 100644 index 00000000..e7334092 --- /dev/null +++ b/docs/cicd/build_rpm_with_mock/openeuler-22.03.tpl @@ -0,0 +1,45 @@ +config_opts['chroot_setup_cmd'] = 'install tar gcc-c++ openEuler-rpm-config openEuler-release which xz sed make bzip2 gzip gcc coreutils unzip diffutils cpio bash gawk rpm-build info patch util-linux findutils grep' +config_opts['dist'] = 'oe2203' # only useful for --resultdir variable subst +config_opts['releasever'] = '22.03LTS_SP1' +config_opts['package_manager'] = 'dnf' +config_opts['description'] = 'openEuler 22.03 LTS SP1' +config_opts['extra_chroot_dirs'] = [ '/run/lock', ] +config_opts['bootstrap_image'] = 'docker.io/openeuler/openeuler:22.03-lts' + +config_opts['dnf.conf'] = """ +[main] +keepcache=1 +debuglevel=2 +reposdir=/dev/null +logfile=/var/log/yum.log +retries=20 +obsoletes=1 +gpgcheck=0 +assumeyes=1 +syslog_ident=mock +syslog_device= +metadata_expire=0 +mdpolicy=group:primary +best=1 +install_weak_deps=0 +protected_packages= +module_platform_id=platform:oe2203 +user_agent={{ user_agent }} + +# all openEuler LTS release will continue developing and releasing SPx version +# such as 22.03-LTS -> 22.03-LTS-SP1 -> 22.03-LTS-SP2 ... +# all LTS-SPx is compatible with its LTS release +[everything] +name=everything +metalink=https://mirrors.openeuler.org/metalink?repo=$releasever/everything&arch=$basearch +enabled=1 +gpgcheck=0 +gpgkey=file:///usr/share/distribution-gpg-keys/openeuler/RPM-GPG-KEY-openEuler-EulerMaker + +[update] +name=update +metalink=https://mirrors.openeuler.org/metalink?repo=$releasever/update&arch=$basearch +enabled=1 +gpgcheck=0 +gpgkey=file:///usr/share/distribution-gpg-keys/openeuler/RPM-GPG-KEY-openEuler-EulerMaker +""" diff --git a/docs/cicd/build_rpm_with_mock/openeuler-22.03LTS_SP1-aarch64.cfg b/docs/cicd/build_rpm_with_mock/openeuler-22.03LTS_SP1-aarch64.cfg new file mode 100644 index 00000000..d030b98a --- /dev/null +++ b/docs/cicd/build_rpm_with_mock/openeuler-22.03LTS_SP1-aarch64.cfg @@ -0,0 +1,5 @@ +include('openeuler-22.03.tpl') + +config_opts['root'] = 'openeuler-22.03-aarch64' +config_opts['target_arch'] = 'aarch64' +config_opts['legal_host_arches'] = ('aarch64',) diff --git a/docs/cicd/build_rpm_with_mock/openeuler-22.03LTS_SP1-x86_64.cfg b/docs/cicd/build_rpm_with_mock/openeuler-22.03LTS_SP1-x86_64.cfg new file mode 100644 index 00000000..2260400a --- /dev/null +++ b/docs/cicd/build_rpm_with_mock/openeuler-22.03LTS_SP1-x86_64.cfg @@ -0,0 +1,5 @@ +include('openeuler-22.03.tpl') + +config_opts['root'] = 'openeuler-22.03-x86_64' +config_opts['target_arch'] = 'x86_64' +config_opts['legal_host_arches'] = ('x86_64',) diff --git a/docs/cicd/build_rpm_with_mock/readme.md b/docs/cicd/build_rpm_with_mock/readme.md new file mode 100644 index 00000000..dbdcfe9a --- /dev/null +++ b/docs/cicd/build_rpm_with_mock/readme.md @@ -0,0 +1,42 @@ +# 使用Mock工具构建RPM包 + +Mock工具是一个用于构建RPM包的强大工具,它可以帮助你在隔离的环境中构建RPM包,以确保包的依赖关系和构建过程的一致性。这里将介绍如何使用Mock工具从源码构建RPM包。 + +## 步骤 1: 安装Mock + +首先,确保你的系统上已经安装了Mock工具。你可以使用包管理工具(如`yum`或`dnf`)来安装Mock,例如: + +```shell +sudo dnf install mock rpm-build +``` + +## 步骤 2: 配置Mock +Mock使用配置文件来定义构建环境,你需要创建一个配置文件以指定构建的目标(目标发行版、架构等)以及其他配置选项。配置文件通常存放在/etc/mock/目录中。你可以复制一个现有的配置文件并根据需要进行调整。 +``` +sudo cp /etc/mock/default.cfg /etc/mock/myconfig.cfg +``` +然后,编辑myconfig.cfg文件以设置正确的目标和其他选项。sysMaster已经提供一份openeuler的配置. + +## 步骤 3: 准备源代码, 可以使用vendor来打包压缩一份源码包. +将你的源代码和spec文件(RPM包的描述文件)准备好,并确保它们位于合适的目录中。通常,你需要创建一个目录结构,包括SOURCES和SPECS目录。 + +## 步骤 4: 使用Mock构建 +使用以下命令来使用Mock工具构建RPM包: + +```shell +TARGETDIR="target/rpms" +mock -r $vendor-$arch --configdir $TARGETDIR --no-clean --isolation simple --buildsrpm --spec $TARGETDIR/sysmaster.spec --sources=$TARGETDIR/sysmaster-$version.tar.xz --resultdir $TARGETDIR + + +-r $vendor-$arch:指定Mock配置文件的名称。 +--rebuild:告诉Mock工具要重新构建RPM包。 +$TARGETDIR/sysmaster-$version.tar.xz:你的RPM包的sources文件的路径。 +``` + +Mock将在指定的构建环境中自动解决依赖关系、下载构建所需的源代码,并执行构建操作。构建过程完成后,你将在Mock工具的输出目录中找到生成的RPM包。 + +## 步骤 5: 获取生成的RPM包 +Mock工具的输出目录通常为/var/lib/mock//result/,你可以在该目录中找到构建成功的RPM包。 + +!!! note + sysmaster提供[自动化脚本](./build_rpm.sh)来帮助生成rpms,sysmaster提供的脚本输出到target/rpms diff --git a/sysmaster.spec b/docs/cicd/build_rpm_with_mock/sysmaster.spec similarity index 55% rename from sysmaster.spec rename to docs/cicd/build_rpm_with_mock/sysmaster.spec index 22c976e5..fcb02580 100644 --- a/sysmaster.spec +++ b/docs/cicd/build_rpm_with_mock/sysmaster.spec @@ -5,32 +5,20 @@ %define _unpackaged_files_terminate_build 0 %global sysmaster_install_source target/release %global sysmaster_install_target %{buildroot}/usr/lib/sysmaster -%global unit_install_source units -%global unit_install_target %{sysmaster_install_target}/system -%global conf_install_source config/conf -%global devmaster_install_source target/release -%global devmaster_install_target %{buildroot}/usr/lib/devmaster -%global devmaster_conf_install_source exts/devmaster/config -%global devmaster_conf_install_target %{buildroot}/etc/devmaster +%global factory_install_source factory +%global factory_install_target %{buildroot} %global __cargo_common_opts %{?__cargo_common_opts} --all %global _cargo_build /usr/bin/env CARGO_HOME=.cargo RUSTC_BOOTSTRAP=1 %{_bindir}/cargo build %__cargo_common_opts Name: sysmaster -Version: 0.5.0 -Release: 3 +Version: 0.5.1 +Release: 1 Summary: redesign and reimplement process1. License: Mulan PSL v2 URL: https://gitee.com/openeuler/sysmaster Source0: %{name}-%{version}.tar.xz -Patch0: backport-fix-input_event_codes_rs-compatible-with-rustc-1.71..patch -Patch1: backport-fix-Fixed-parsing-single-quotes-error.patch -Patch2: backport-fix-devmaster-avoid-coredump-when-rules-directory-is.patch -Patch3: backport-fix-device-avoid-inserting-empty-tag.patch -Patch4: backport-fix-devmaster-append-trailing-white-line-in-99-defau.patch -Patch5: backport-fix-disable-User-Group-feature-for-hongmeng.patch -Patch6: backport-fix-enable-subtree_control-for-sub-cgroup-on-hongmen.patch ExclusiveArch: x86_64 aarch64 @@ -55,8 +43,6 @@ This package provides the infrastructure of device management in userspace. %cargo_generate_buildrequires %build -for i in $(seq 1 4); do sed -i '$d' ./Cargo.toml; done; - cat << EOF >> ./.cargo/config [source.crates-io] @@ -66,7 +52,6 @@ replace-with = "vendored-sources" directory = "vendor" EOF - %{_cargo_build} --profile release -vvvv %install @@ -79,20 +64,13 @@ install -Dm0750 -t %{sysmaster_install_target} %{sysmaster_install_source}/rando install -Dm0750 -t %{sysmaster_install_target} %{sysmaster_install_source}/rc-local-generator install -Dm0750 -t %{sysmaster_install_target} %{sysmaster_install_source}/hostname_setup -install -Dm0640 -t %{unit_install_target} %{unit_install_source}/* +cp -a %{factory_install_source}/* %{factory_install_target} -install -Dm0640 -t %{buildroot}/etc/sysmaster %{conf_install_source}/system.conf - -install -Dm0750 -t %{buildroot}/usr/bin %{devmaster_install_source}/devctl -install -Dm0750 -t %{devmaster_install_target} %{devmaster_install_source}/devmaster -install -Dm0640 -t %{devmaster_conf_install_target} %{devmaster_conf_install_source}/config.toml -install -Dm0640 -t %{devmaster_conf_install_target}/rules.d %{devmaster_conf_install_source}/rules.d/* -install -Dm0640 -t %{devmaster_conf_install_target}/network.d %{devmaster_conf_install_source}/network.d/* +install -Dm0750 -t %{buildroot}/usr/bin %{sysmaster_install_source}/devctl mkdir -p %{buildroot}/etc/sysmaster/system/multi-user.target.wants for unit in NetworkManager.service dbus.service dbus.socket fstab.service getty-tty1.service hostname-setup.service lvm-activate-openeuler.service udev-trigger.service udevd-control.socket udevd-kernel.socket udevd.service; do - install -Dm0640 -t %{unit_install_target} tools/run_with_vm/$unit # enable service for booting if [[ "$unit" == *".service" ]]; then ln -s /usr/lib/sysmaster/system/$unit %{buildroot}/etc/sysmaster/system/multi-user.target.wants/$unit @@ -119,9 +97,9 @@ ln -s /usr/lib/sysmaster/system/sshd.service %{buildroot}/etc/sysmaster/system/m %dir %attr(0750,-,-) /etc/sysmaster/system/multi-user.target.wants /etc/sysmaster/system/multi-user.target.wants/* /etc/sysmaster/system.conf +/usr/lib/udev/rules.d/99-sysmaster.rules %files -n devmaster -%dir %attr(0550,-,-) /usr/lib/devmaster %dir %attr(0750,-,-) /etc/devmaster /etc/devmaster/config.toml %dir %attr(0750,-,-) /etc/devmaster/rules.d @@ -129,47 +107,7 @@ ln -s /usr/lib/sysmaster/system/sshd.service %{buildroot}/etc/sysmaster/system/m %dir %attr(0750,-,-) /etc/devmaster/network.d /etc/devmaster/network.d/99-default.link %attr(0550,-,-) /usr/bin/devctl -%attr(0550,-,-) /usr/lib/devmaster/devmaster %changelog -* Fri Aug 25 2023 licunlong - 0.5.0-3 -- enable subtree_control for sub cgroup on hongmeng - -* Wed Aug 23 2023 licunlong - 0.5.0-2 -- disable User/Group on hongmeng - -* Mon Aug 14 2023 shenyangyang - 0.5.0-1 -- bump version to 0.5.0 to suppourt virtual machine - -* Thu Jul 06 2023 xujing - 0.2.4-3 -- fix objcopy permission denied when rpmbuild - -* Tue Jun 27 2023 shenyangyang - 0.2.4-2 -- modify the sshd units - -* Tue Jun 20 2023 shenyangyang - 0.2.4-1 -- update version to 0.2.4 for docker use - -* Mon Jun 19 2023 huyubiao - 0.2.3-4 -- sync patches from upstream - -* Fri Jun 16 2023 licunlong - 0.2.3-3 -- sync patches from upstream - -* Tue May 30 2023 shenyangyang - 0.2.3-2 -- Support compatible compile with rust 1.60 - -* Sat May 6 2023 shenyangyang - 0.2.3-1 -- update version to 0.2.3 - -* Tue Sep 20 2022 licunlong - 0.2.1-2 -- rename process1 to sysmaster, and remove pctrl to /usr/bin - -* Tue Sep 13 2022 licunlong - 0.2.1-1 -- sync patches from upstream - -* Mon Aug 22 2022 He Xiaowen - 0.2.0-2 -- strip the libraries - * Mon Aug 22 2022 He Xiaowen - 0.2.0-1 - initial package diff --git "a/docs/cicd/\344\275\277\347\224\250Vendor\345\217\221\345\270\203\346\272\220\347\240\201/readme.md" b/docs/cicd/build_xz_with_vendor/readme.md similarity index 100% rename from "docs/cicd/\344\275\277\347\224\250Vendor\345\217\221\345\270\203\346\272\220\347\240\201/readme.md" rename to docs/cicd/build_xz_with_vendor/readme.md diff --git "a/docs/cicd/\344\275\277\347\224\250Vendor\345\217\221\345\270\203\346\272\220\347\240\201/vendor.sh" b/docs/cicd/build_xz_with_vendor/vendor.sh similarity index 89% rename from "docs/cicd/\344\275\277\347\224\250Vendor\345\217\221\345\270\203\346\272\220\347\240\201/vendor.sh" rename to docs/cicd/build_xz_with_vendor/vendor.sh index 709820db..61d4638a 100755 --- "a/docs/cicd/\344\275\277\347\224\250Vendor\345\217\221\345\270\203\346\272\220\347\240\201/vendor.sh" +++ b/docs/cicd/build_xz_with_vendor/vendor.sh @@ -71,10 +71,12 @@ do done echo "Cargo build ..." +set -e for i in `ls ci/*.sh | sort -u -d | grep -v "00-pre.sh" ` do date; sh -x $i; done +set +e # cleanup temporary cargo clean @@ -92,12 +94,14 @@ popd # compress sysmaster pushd $SCRIPT_DIR/../ + rm -rf sysmaster-$version cp -a sysmaster sysmaster-$version pushd sysmaster-$version cargo clean - rm -rf .git - popd + rm -rf .git next docs tools patch target + sed -i '/\[patch.crates-io.loopdev\]/{N;N;d}' Cargo.toml + popd > /dev/null 2>&1 tar -cJvf sysmaster-$version.tar.xz sysmaster-$version - echo "You can find sysmaster-$version.tar.xz in the $(PWD)." + echo "You can find sysmaster-$version.tar.xz in the ${PWD}." rm -rf sysmaster-$version -popd +popd > /dev/null 2>&1 diff --git a/factory/etc/devmaster/config.toml b/factory/etc/devmaster/config.toml new file mode 100644 index 00000000..8685e072 --- /dev/null +++ b/factory/etc/devmaster/config.toml @@ -0,0 +1,19 @@ +# Default configuration of devmaster daemon. + +# Support "error", "info" and "debug". +# If not set, use "info" by default. +log_level = "error" + +# Support multiple rules directories. +rules_d = ["/etc/devmaster/rules.d", "/lib/devmaster/rules.d"] + +# Support multiple network interface configuration directories. +network_d = ["/etc/devmaster/network.d"] + +# The default value is 3. +max_workers = 3 + +# Define the location where log message outputs. +# Include: "file", "console", "syslog". +# If not set, use "console" by default. +log_targets = ["syslog"] diff --git a/factory/etc/devmaster/network.d/99-default.link b/factory/etc/devmaster/network.d/99-default.link new file mode 100644 index 00000000..831f33ed --- /dev/null +++ b/factory/etc/devmaster/network.d/99-default.link @@ -0,0 +1,5 @@ +[Match] +OriginalName = "*" + +[Link] +NamePolicy = ["database", "onboard", "slot", "path"] diff --git a/factory/etc/devmaster/rules.d/99-default.rules b/factory/etc/devmaster/rules.d/99-default.rules new file mode 100644 index 00000000..47bb738a --- /dev/null +++ b/factory/etc/devmaster/rules.d/99-default.rules @@ -0,0 +1 @@ +TAG+="devmaster" diff --git a/factory/usr/lib/udev/config.toml b/factory/usr/lib/udev/config.toml new file mode 100644 index 00000000..8685e072 --- /dev/null +++ b/factory/usr/lib/udev/config.toml @@ -0,0 +1,19 @@ +# Default configuration of devmaster daemon. + +# Support "error", "info" and "debug". +# If not set, use "info" by default. +log_level = "error" + +# Support multiple rules directories. +rules_d = ["/etc/devmaster/rules.d", "/lib/devmaster/rules.d"] + +# Support multiple network interface configuration directories. +network_d = ["/etc/devmaster/network.d"] + +# The default value is 3. +max_workers = 3 + +# Define the location where log message outputs. +# Include: "file", "console", "syslog". +# If not set, use "console" by default. +log_targets = ["syslog"] -- Gitee From ba2707b94ca99b2bad7b4ff73335cd446a4d007a Mon Sep 17 00:00:00 2001 From: overweight Date: Wed, 8 Nov 2023 17:30:15 +0800 Subject: [PATCH 2/2] docs: minor fix --- ci/00-pre.sh | 2 +- docs/cicd/build_rpm_with_mock/build_rpm.sh | 7 +- docs/cicd/build_rpm_with_mock/logging.ini | 83 ++++++++++++++++++++++ docs/cicd/build_xz_with_vendor/vendor.sh | 2 +- 4 files changed, 89 insertions(+), 5 deletions(-) create mode 100644 docs/cicd/build_rpm_with_mock/logging.ini diff --git a/ci/00-pre.sh b/ci/00-pre.sh index 2ad0d5ee..62304e54 100755 --- a/ci/00-pre.sh +++ b/ci/00-pre.sh @@ -27,7 +27,7 @@ if [ $? -ne 0 ]; then export RUSTUP_DIST_SERVER=https://mirrors.ustc.edu.cn/rust-static export RUSTUP_UPDATE_ROOT=https://mirrors.ustc.edu.cn/rust-static/rustup curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs -o rustlang.sh -sh rustlang.sh -y --default-toolchain none +sh rustlang.sh -y --default-toolchain none && sh rustlang.sh -y --default-toolchain none rm -rf rustlang.sh fi diff --git a/docs/cicd/build_rpm_with_mock/build_rpm.sh b/docs/cicd/build_rpm_with_mock/build_rpm.sh index 9213779d..56d530fc 100644 --- a/docs/cicd/build_rpm_with_mock/build_rpm.sh +++ b/docs/cicd/build_rpm_with_mock/build_rpm.sh @@ -1,5 +1,5 @@ #!/usr/bin/env bash - +set -e arch=$(uname -m) vendor="openeuler-22.03LTS_SP1" if [ $# -ne 1 ]; then @@ -70,7 +70,7 @@ version=$(echo "$version_line" | awk -F'"' '{print $2}') # compress sysmaster pushd $ROOTDIR/../ rm -rf sysmaster-$version - cp -a sysmaster sysmaster-$version + cp -a $(basename $ROOTDIR) sysmaster-$version pushd sysmaster-$version cargo clean rm -rf .git next docs tools patch target @@ -79,9 +79,10 @@ pushd $ROOTDIR/../ tar -cJvf $TARGETDIR/sysmaster-$version.tar.xz sysmaster-$version rm -rf sysmaster-$version popd > /dev/null 2>&1 - +set +e # 构建srpm sudo dnf install -y mock rpm-build +sudo groupadd mock sudo usermod -a -G mock $(who | awk '{print $1}' | sort -u) cp -a $SCRIPT_DIR/* $TARGETDIR mock -r $vendor-$arch --configdir $TARGETDIR --no-clean --isolation simple --buildsrpm --spec $TARGETDIR/sysmaster.spec --sources=$TARGETDIR/sysmaster-$version.tar.xz --resultdir $TARGETDIR diff --git a/docs/cicd/build_rpm_with_mock/logging.ini b/docs/cicd/build_rpm_with_mock/logging.ini new file mode 100644 index 00000000..536d75aa --- /dev/null +++ b/docs/cicd/build_rpm_with_mock/logging.ini @@ -0,0 +1,83 @@ +[formatters] +keys: detailed,simple,unadorned,state + +[handlers] +keys: simple_console,detailed_console,unadorned_console,simple_console_warnings_only + +[loggers] +keys: root,build,state,mockbuild + +[formatter_state] +format: %(asctime)s - %(message)s + +[formatter_unadorned] +format: %(message)s + +[formatter_simple] +format: %(levelname)s: %(message)s + +;useful for debugging: +[formatter_detailed] +format: %(levelname)s %(filename)s:%(lineno)d: %(message)s + +[handler_unadorned_console] +class: StreamHandler +args: [] +formatter: unadorned +level: INFO + +[handler_simple_console] +class: StreamHandler +args: [] +formatter: simple +level: INFO + +[handler_simple_console_warnings_only] +class: StreamHandler +args: [] +formatter: simple +level: WARNING + +[handler_detailed_console] +class: StreamHandler +args: [] +formatter: detailed +level: WARNING + +; usually dont want to set a level for loggers +; this way all handlers get all messages, and messages can be filtered +; at the handler level +; +; all these loggers default to a console output handler +; +[logger_root] +level: NOTSET +handlers: simple_console + +; mockbuild logger normally has no output +; catches stuff like mockbuild.trace_decorator and mockbuild.util +; dont normally want to propagate to root logger, either +[logger_mockbuild] +level: NOTSET +handlers: +qualname: mockbuild +propagate: 1 + +[logger_state] +level: NOTSET +; unadorned_console only outputs INFO or above +handlers: unadorned_console +qualname: mockbuild.Root.state +propagate: 0 + +[logger_build] +level: NOTSET +handlers: simple_console_warnings_only +qualname: mockbuild.Root.build +propagate: 0 + +; the following is a list mock logger qualnames used within the code: +; +; qualname: mockbuild.util +; qualname: mockbuild.uid +; qualname: mockbuild.trace_decorator diff --git a/docs/cicd/build_xz_with_vendor/vendor.sh b/docs/cicd/build_xz_with_vendor/vendor.sh index 61d4638a..c507862a 100755 --- a/docs/cicd/build_xz_with_vendor/vendor.sh +++ b/docs/cicd/build_xz_with_vendor/vendor.sh @@ -95,7 +95,7 @@ popd # compress sysmaster pushd $SCRIPT_DIR/../ rm -rf sysmaster-$version - cp -a sysmaster sysmaster-$version + cp -a $(basename $(pwd)) sysmaster-$version pushd sysmaster-$version cargo clean rm -rf .git next docs tools patch target -- Gitee