From c16033e99a7f9bf1df74420beb6916129d95b811 Mon Sep 17 00:00:00 2001 From: wangchong1995924 <15229716099@163.com> Date: Fri, 29 Jul 2022 16:08:03 +0800 Subject: [PATCH] support Desktop iso --- 0011-support-desktop-iso.patch | 120 +++++++++++++++++++++++++++++++++ desktop_normal_aarch64.xml | 0 desktop_normal_x86_64.xml | 0 oemaker.spec | 14 +++- 4 files changed, 133 insertions(+), 1 deletion(-) create mode 100644 0011-support-desktop-iso.patch create mode 100644 desktop_normal_aarch64.xml create mode 100644 desktop_normal_x86_64.xml diff --git a/0011-support-desktop-iso.patch b/0011-support-desktop-iso.patch new file mode 100644 index 0000000..87f1b84 --- /dev/null +++ b/0011-support-desktop-iso.patch @@ -0,0 +1,120 @@ +From 6476093453615673dc20611bc7812def55294fb6 Mon Sep 17 00:00:00 2001 +From: wangchong1995924 <15229716099@163.com> +Date: Thu, 28 Jul 2022 14:23:11 +0800 +Subject: [PATCH] support Desktop iso + + +diff --git a/isomaker/init.sh b/isomaker/init.sh +index ca39d48..bb958b2 100644 +--- a/isomaker/init.sh ++++ b/isomaker/init.sh +@@ -78,7 +78,7 @@ function parse_cmd_line() + esac + done + +- for typename in standard source debug everything_debug everything everything_src netinst edge ++ for typename in standard source debug everything_debug everything everything_src netinst edge desktop + do + if [ "${typename}" == "${ISO_TYPE}" ];then + return 0 +@@ -115,6 +115,7 @@ function global_var_init() + EVE_SRC_ISO_NAME="${PRODUCT}-${VERSION}-${RELEASE}-source-dvd.iso" + NETINST_ISO_NAME="${PRODUCT}-${VERSION}-${RELEASE}-netinst-${ARCH}-dvd.iso" + EDGE_ISO_NAME="${PRODUCT}-${VERSION}-${RELEASE}-edge-${ARCH}-dvd.iso" ++ DESKTOP_ISO_NAME="${PRODUCT}-Desktop-${VERSION}-${RELEASE}-${ARCH}-dvd.iso" + else + RELEASE_NAME="${PRODUCT}-${VERSION}-${ARCH}" + STANDARD_ISO_NAME="${PRODUCT}-${VERSION}-${ARCH}-dvd.iso" +@@ -125,6 +126,7 @@ function global_var_init() + EVE_SRC_ISO_NAME="${PRODUCT}-${VERSION}-source-dvd.iso" + NETINST_ISO_NAME="${PRODUCT}-${VERSION}-netinst-${ARCH}-dvd.iso" + EDGE_ISO_NAME="${PRODUCT}-${VERSION}-edge-${ARCH}-dvd.iso" ++ DESKTOP_ISO_NAME="${PRODUCT}-Desktop-${VERSION}-${ARCH}-dvd.iso" + fi + + [ ! -d "${BUILD}" ] && mkdir -p "${BUILD}" +diff --git a/isomaker/iso.sh b/isomaker/iso.sh +index d728aaf..43b4dc0 100644 +--- a/isomaker/iso.sh ++++ b/isomaker/iso.sh +@@ -65,6 +65,23 @@ function gen_edge_iso() + return 0 + } + ++function gen_desktop_iso() ++{ ++ set +e ++ mkdir -p "${BUILD}"/iso/repodata/ ++ cp "config/${ARCH}/desktop_normal.xml" "${BUILD}"/iso/repodata/ ++ createrepo -g "${BUILD}"/iso/repodata/*.xml "${BUILD}"/iso ++ if [ "$ARCH" == "x86_64" ]; then ++ mkisofs -R -J -T -r -l -d -joliet-long -allow-multidot -allow-leading-dots -no-bak -V "${RELEASE_NAME}" -o "${OUTPUT_DIR}/${DESKTOP_ISO_NAME}" -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -eltorito-alt-boot -e images/efiboot.img -no-emul-boot "${BUILD}"/iso ++ [ $? != 0 ] && return 1 ++ elif [ "$ARCH" == "aarch64" ]; then ++ mkisofs -R -J -T -r -l -d -joliet-long -allow-multidot -allow-leading-dots -no-bak -V "${RELEASE_NAME}" -o "${OUTPUT_DIR}/${DESKTOP_ISO_NAME}" -e images/efiboot.img -no-emul-boot "${BUILD}"/iso ++ [ $? != 0 ] && return 1 ++ fi ++ implantisomd5 "${OUTPUT_DIR}/${DESKTOP_ISO_NAME}" ++ return 0 ++} ++ + function gen_src_iso() + { + set +e +diff --git a/isomaker/oemaker.sh b/isomaker/oemaker.sh +index 9fa8e08..3d6b419 100644 +--- a/isomaker/oemaker.sh ++++ b/isomaker/oemaker.sh +@@ -152,6 +152,13 @@ function mk_oe_main() + return 1 + fi + ls "${OUTPUT_DIR}/${EDGE_ISO_NAME}" ++ elif [ "${ISO_TYPE}" == "desktop" ]; then ++ gen_desktop_iso ++ if [ $? -ne 0 ]; then ++ echo "create desktop iso failed" ++ return 1 ++ fi ++ ls "${OUTPUT_DIR}/${DESKTOP_ISO_NAME}" + fi + mkclean + return 0 +diff --git a/isomaker/rpm.sh b/isomaker/rpm.sh +index 0f77b34..287a2a6 100644 +--- a/isomaker/rpm.sh ++++ b/isomaker/rpm.sh +@@ -29,6 +29,9 @@ function download_rpms() + if [ "${ISO_TYPE}" == "edge" ]; then + get_edge_rpms + return 0 ++ elif [ "${ISO_TYPE}" == "desktop" ]; then ++ get_desktop_rpms ++ return 0 + fi + cat "${CONFIG}" | grep packagereq | cut -d ">" -f 2 | cut -d "<" -f 1 > _all_rpms.lst + parse_rpmlist_xml "${ARCH}" +@@ -165,6 +168,21 @@ function get_edge_rpms() + fi + } + ++function get_desktop_rpms() ++{ ++ parse_rpmlist_xml "desktop_${ARCH}" ++ cat parsed_rpmlist_desktop_${ARCH} > _desktop_rpms.lst ++ parse_rpmlist_xml "desktop_common" ++ cat parsed_rpmlist_desktop_common >> _desktop_rpms.lst ++ cat "config/${ARCH}/desktop_normal.xml" | grep packagereq | cut -d ">" -f 2 | cut -d "<" -f 1 >> _desktop_rpms.lst ++ sort -r -u _desktop_rpms.lst -o _desktop_rpms.lst ++ yumdownloader --resolve --installroot="${BUILD}"/tmp --destdir="${BUILD}"/iso/Packages/ $(cat _desktop_rpms.lst | tr '\n' ' ') ++ if [ $? != 0 ] || [ $(ls "${BUILD}"/iso/Packages/ | wc -l) == 0 ]; then ++ echo "Download rpms failed!" ++ exit 133 ++ fi ++} ++ + function get_everything_rpms() + { + yum list --installroot="${BUILD}"/tmp --available | awk '{print $1}' | grep -E "\.noarch|\.${ARCH}" | grep -v "debuginfo" | grep -v "debugsource" > ava_every_lst +-- +2.27.0 + diff --git a/desktop_normal_aarch64.xml b/desktop_normal_aarch64.xml new file mode 100644 index 0000000..e69de29 diff --git a/desktop_normal_x86_64.xml b/desktop_normal_x86_64.xml new file mode 100644 index 0000000..e69de29 diff --git a/oemaker.spec b/oemaker.spec index edfa4ee..a901ce6 100644 --- a/oemaker.spec +++ b/oemaker.spec @@ -11,7 +11,7 @@ Summary: a duilding tool for DVD ISO making and ISO cutting License: Mulan PSL v2 Group: System/Management Version: 2.0.3 -Release: 16 +Release: 17 BuildRoot: %{_tmppath}/%{name} Source: https://gitee.com/openeuler/oemaker/repository/archive/v%{version}.tar.gz#/%{name}-%{version}.tar.gz @@ -20,6 +20,8 @@ Source2: normal_x86_64.xml Source3: rpmlist.xml Source4: edge_normal_aarch64.xml Source5: edge_normal_x86_64.xml +Source6: desktop_normal_aarch64.xml +Source7: desktop_normal_x86_64.xml Requires: createrepo dnf-plugins-core genisoimage isomd5sum grep bash libselinux-utils libxml2 Requires: lorax >= 19.6.78-1 @@ -34,6 +36,7 @@ Patch0007: 0007-restore-env-after-selinux-status-changes.patch Patch0008: 0008-add-parse_everything_deb_exclude.patch Patch0009: 0009-automated-kickstart-function.patch Patch0010: 0010-do-not-cleanup-pkg.patch +Patch0011: 0011-support-desktop-iso.patch %description a building tool for DVD ISO making and ISO cutting @@ -58,6 +61,10 @@ rm -rf %{_builddir}/%{name}-%{version}/%{name}/isomaker/config/aarch64/edge_norm cp %{SOURCE4} %{_builddir}/%{name}-%{version}/%{name}/isomaker/config/aarch64/edge_normal.xml rm -rf %{_builddir}/%{name}-%{version}/%{name}/isomaker/config/x86_64/edge_normal.xml cp %{SOURCE5} %{_builddir}/%{name}-%{version}/%{name}/isomaker/config/x86_64/edge_normal.xml +rm -rf %{_builddir}/%{name}-%{version}/%{name}/isomaker/config/aarch64/desktop_normal.xml +cp %{SOURCE6} %{_builddir}/%{name}-%{version}/%{name}/isomaker/config/aarch64/desktop_normal.xml +rm -rf %{_builddir}/%{name}-%{version}/%{name}/isomaker/config/x86_64/desktop_normal.xml +cp %{SOURCE7} %{_builddir}/%{name}-%{version}/%{name}/isomaker/config/x86_64/desktop_normal.xml cd %{_builddir}/%{name}-%{version}/%{name} %autopatch -p1 @@ -137,6 +144,11 @@ rm -rf %{buildroot} rm -rf $RPM_BUILD_DIR/%{name} %changelog +* Fri Jul 29 2022 wangchong - 2.0.3-17 +- ID:NA +- SUG:NA +- DESC: support Desktop iso + * Fri Jul 15 2022 caodongxia - 2.0.3-16 - ID:NA - SUG:NA