summaryrefslogtreecommitdiff
path: root/0001-adapt-to-openEuler.patch
diff options
context:
space:
mode:
Diffstat (limited to '0001-adapt-to-openEuler.patch')
-rw-r--r--0001-adapt-to-openEuler.patch173
1 files changed, 173 insertions, 0 deletions
diff --git a/0001-adapt-to-openEuler.patch b/0001-adapt-to-openEuler.patch
new file mode 100644
index 0000000..8bc392c
--- /dev/null
+++ b/0001-adapt-to-openEuler.patch
@@ -0,0 +1,173 @@
+From 06b74c082a2d031b31929403081c3bde242d98d8 Mon Sep 17 00:00:00 2001
+From: yanzhicong <mryanzhicong@163.com>
+Date: Tue, 18 Mar 2025 17:37:13 +0800
+Subject: [PATCH] adapt to openEuler
+
+---
+ cobbler/actions/check.py | 2 +-
+ cobbler/actions/reposync.py | 2 +-
+ cobbler/autoinstallgen.py | 2 +-
+ cobbler/tftpgen.py | 9 +++++----
+ cobbler/utils.py | 3 +++
+ config/cobbler/distro_signatures.json | 28 +++++++++++++++++++++++++++
+ distro_build_configs.sh | 5 ++++-
+ templates/etc/dhcp.template | 2 +-
+ 8 files changed, 44 insertions(+), 9 deletions(-)
+
+diff --git a/cobbler/actions/check.py b/cobbler/actions/check.py
+index b79706a..e35b53b 100644
+--- a/cobbler/actions/check.py
++++ b/cobbler/actions/check.py
+@@ -147,7 +147,7 @@ class CobblerCheck:
+ if return_code != 0:
+ status.append("service %s is not running%s" % (which, notes))
+ return
+- elif self.checked_family in ("redhat", "suse"):
++ elif self.checked_family in ("redhat", "suse", "generic_lower_os"):
+ if os.path.exists("/etc/rc.d/init.d/%s" % which):
+ return_code = utils.subprocess_call("/sbin/service %s status > /dev/null 2>/dev/null" % which,
+ shell=True)
+diff --git a/cobbler/actions/reposync.py b/cobbler/actions/reposync.py
+index c016335..f4f3d49 100644
+--- a/cobbler/actions/reposync.py
++++ b/cobbler/actions/reposync.py
+@@ -255,7 +255,7 @@ class RepoSync:
+ mdoptions.append("-g %s" % os.path.join(origin_path, groupmdfile))
+ if "prestodelta" in rd:
+ # need createrepo >= 0.9.7 to add deltas
+- if utils.get_family() in ("redhat", "suse"):
++ if utils.get_family() in ("redhat", "suse", "generic_lower_os"):
+ cmd = "/usr/bin/rpmquery --queryformat=%{VERSION} createrepo"
+ createrepo_ver = utils.subprocess_get(cmd)
+ if not createrepo_ver[0:1].isdigit():
+diff --git a/cobbler/autoinstallgen.py b/cobbler/autoinstallgen.py
+index 28187c5..d60be02 100644
+--- a/cobbler/autoinstallgen.py
++++ b/cobbler/autoinstallgen.py
+@@ -304,7 +304,7 @@ class AutoInstallationGen:
+ meta.update(autoinstall_meta)
+
+ # add package repositories metadata to autoinstall metavariables
+- if distro.breed == "redhat":
++ if distro.breed == "redhat" or distro.breed == "generic_lower_os":
+ meta["yum_repo_stanza"] = self.generate_repo_stanza(obj, (system is None))
+ meta["yum_config_stanza"] = self.generate_config_stanza(obj, (system is None))
+ # FIXME: implement something similar to zypper (SUSE based distros) and apt (Debian based distros)
+diff --git a/cobbler/tftpgen.py b/cobbler/tftpgen.py
+index d0b0dfc..6911d46 100644
+--- a/cobbler/tftpgen.py
++++ b/cobbler/tftpgen.py
+@@ -905,7 +905,7 @@ class TFTPGen:
+ autoinstall_path = "http://%s/cblr/svc/op/autoinstall/profile/%s" \
+ % (httpserveraddress, profile.name)
+
+- if distro.breed is None or distro.breed == "redhat":
++ if distro.breed is None or distro.breed == "redhat" or distro.breed == "generic_lower_os":
+
+ if distro.os_version in ["rhel4", "rhel5", "rhel6", "fedora16"]:
+ append_line += f" kssendmac ks={autoinstall_path}"
+@@ -914,9 +914,10 @@ class TFTPGen:
+ else:
+ append_line += f" inst.ks.sendmac inst.ks={autoinstall_path}"
+ if blended["autoinstall_meta"].get("tree"):
+- append_line += (
+- f" inst.repo={blended['autoinstall_meta']['tree']}"
+- )
++ #append_line += (
++ # f" inst.repo={blended['autoinstall_meta']['tree']}"
++ #)
++ append_line = append_line.replace("repo","inst.repo")
+ ipxe = blended["enable_ipxe"]
+ if ipxe:
+ append_line = append_line.replace('ksdevice=bootif', 'ksdevice=${net0/mac}')
+diff --git a/cobbler/utils.py b/cobbler/utils.py
+index 8586844..1a6ecbb 100644
+--- a/cobbler/utils.py
++++ b/cobbler/utils.py
+@@ -1097,6 +1097,9 @@ def os_release():
+ make = "unknown"
+ return make, float(distro_version)
+
++ elif family == "generic_lower_os":
++ return "generic_lower_os", float(distro_version)
++
+
+ def is_safe_to_hardlink(src: str, dst: str, api) -> bool:
+ """
+diff --git a/config/cobbler/distro_signatures.json b/config/cobbler/distro_signatures.json
+index 2c1ca82..90fd075 100644
+--- a/config/cobbler/distro_signatures.json
++++ b/config/cobbler/distro_signatures.json
+@@ -1,5 +1,33 @@
+ {
+ "breeds": {
++ "generic_lower_os": {
++ "generic_lower_os": {
++ "signatures": [
++ "Packages"
++ ],
++ "version_file": "generic_os-release-(.*).rpm",
++ "version_file_regex": null,
++ "kernel_arch": "kernel-(.*).rpm",
++ "kernel_arch_regex": null,
++ "supported_arches": [
++ "aarch64",
++ "x86_64"
++ ],
++ "supported_repo_breeds": [
++ "rsync",
++ "rhn",
++ "yum"
++ ],
++ "kernel_file": "vmlinuz(.*)",
++ "initrd_file": "initrd(.*)\\.img",
++ "isolinux_ok": true,
++ "default_autoinstall": "sample.ks",
++ "kernel_options": "repo=$tree",
++ "kernel_options_post": "",
++ "boot_files": [],
++ "boot_loaders": {}
++ }
++ },
+ "redhat": {
+ "rhel4": {
+ "signatures": [
+diff --git a/distro_build_configs.sh b/distro_build_configs.sh
+index 954e0f9..1de6ee0 100644
+--- a/distro_build_configs.sh
++++ b/distro_build_configs.sh
+@@ -38,6 +38,9 @@ if [ "$DISTRO" = "" ] && [ -r /etc/os-release ];then
+ ubuntu*|debian*)
+ DISTRO="UBUNTU"
+ ;;
++ generic_os*)
++ DISTRO=`echo 'generic_os'|tr 'a-z' 'A-Z'`
++ ;;
+ esac
+ fi
+
+@@ -59,7 +62,7 @@ elif [ "$DISTRO" = "UBUNTU" ];then
+ export MEMDISK_FOLDER="/usr/lib/syslinux/"
+ export SYSLINUX_DIR="/usr/lib/syslinux/modules/bios/"
+ export GRUB_MOD_FOLDER="/usr/lib/grub"
+-elif [ "$DISTRO" = "FEDORA" ];then
++elif [ "$DISTRO" = "FEDORA" ] || [ "$DISTRO" = `echo 'generic_os'|tr 'a-z' 'A-Z'` ];then
+ export APACHE_USER="apache"
+ export HTTP_USER=$APACHE_USER # overrule setup.py
+ export APACHE_GROUP="apache"
+diff --git a/templates/etc/dhcp.template b/templates/etc/dhcp.template
+index 9089439..698c826 100644
+--- a/templates/etc/dhcp.template
++++ b/templates/etc/dhcp.template
+@@ -31,7 +31,7 @@ subnet 192.168.1.0 netmask 255.255.255.0 {
+
+ # Legacy
+ if option system-arch = 00:00 {
+- filename "grub/grub.0";
++ filename "pxelinux.0";
+ }
+ # UEFI-32-1
+ if option system-arch = 00:06 {
+--
+2.33.0
+