CBL-Mariner/SPECS/supermin/supermin-mariner.patch

118 строки
3.7 KiB
Diff

From f4a3020f202d67ad5682304e7710bfc14f1320eb Mon Sep 17 00:00:00 2001
From: Thomas Crain <thcrain@microsoft.com>
Date: Wed, 19 Jan 2022 21:36:29 -0800
Subject: [PATCH] Add Mariner support to supermin
---
src/ph_rpm.ml | 18 +++++++++++++++++-
tests/test-harder.sh | 32 ++++++++++++++++++++++++++++++++
2 files changed, 49 insertions(+), 1 deletion(-)
diff --git a/src/ph_rpm.ml b/src/ph_rpm.ml
index 549bd9a..760c815 100644
--- a/src/ph_rpm.ml
+++ b/src/ph_rpm.ml
@@ -65,6 +65,12 @@ let ibm_powerkvm_detect () =
(stat "/etc/ibm_powerkvm-release").st_kind = S_REG
with Unix_error _ -> false
+let mariner_detect () =
+ Config.rpm <> "no" && Config.rpm2cpio <> "no" && rpm_is_available () &&
+ Config.dnf <> "no" &&
+ Os_release.get_id () = "mariner" ||
+ try (stat "/etc/mariner-release").st_kind = S_REG with Unix_error _ -> false
+
let settings = ref no_settings
let rpm_major, rpm_minor, rpm_arch = ref 0, ref 0, ref ""
let zypper_major, zypper_minor, zypper_patch = ref 0, ref 0, ref 0
@@ -450,6 +456,10 @@ and mageia_download_all_packages pkgs dir =
rpm_unpack tdir dir
+and mariner_download_all_packages pkgs dir =
+ let tdir = !settings.tmpdir // string_random8 () in
+ download_all_packages_with_dnf pkgs dir tdir
+
and download_all_packages_with_urpmi pkgs dir tdir =
let rpms = List.map rpm_package_name (PackageSet.elements pkgs) in
@@ -544,4 +554,10 @@ let () =
ph_detect = openmandriva_detect;
ph_download_package = PHDownloadAllPackages openmandriva_download_all_packages;
} in
- register_package_handler "openmandriva" "rpm" openmandriva
+ register_package_handler "openmandriva" "rpm" openmandriva;
+ let mariner = {
+ fedora with
+ ph_detect = mariner_detect;
+ ph_download_package = PHDownloadAllPackages mariner_download_all_packages;
+ } in
+ register_package_handler "mariner" "rpm" mariner
diff --git a/tests/test-harder.sh b/tests/test-harder.sh
index aceef21..223cae9 100755
--- a/tests/test-harder.sh
+++ b/tests/test-harder.sh
@@ -32,6 +32,7 @@ if [ -f /etc/os-release ]; then
opensuse*|sled|sles) distro=suse ;;
ubuntu) distro=debian ;;
openmandriva) distro=openmandriva ;;
+ mariner) distro=mariner ;;
esac
elif [ -f /etc/arch-release ]; then
distro=arch
@@ -45,6 +46,8 @@ elif [ -f /etc/SuSE-release ]; then
distro=suse
elif [ -f /etc/ibm_powerkvm-release ]; then
distro=ibm-powerkvm
+elif [ -f /etc/mariner-release ]; then
+ distro=mariner
else
exit 77
fi
@@ -67,6 +70,8 @@ case $distro in
# installed. (See commit fb40baade8e3441b73ce6fd10a32fbbfe49cc4da)
pkgs="augeas hivex rpm"
;;
+ mariner)
+ pkgs="augeas hivex tar"
redhat)
# Choose tar because it has an epoch > 0 and is commonly
# installed. (See commit fb40baade8e3441b73ce6fd10a32fbbfe49cc4da)
@@ -157,6 +162,33 @@ case $distro in
exit 1
fi
;;
+ mariner)
+ if [ ! -x $d2/usr/bin/augtool ]; then
+ echo "$0: $distro: augtool binary not installed in chroot"
+ ls -lR $d2
+ exit 1
+ fi
+ if [ "$(find $d2/usr/lib* -name libaugeas.so.0 | wc -l)" -lt 1 ]; then
+ echo "$0: $distro: augeas library not installed in chroot"
+ ls -lR $d2
+ exit 1
+ fi
+ if [ ! -x $d2/usr/bin/hivexget ]; then
+ echo "$0: $distro: hivexget binary not installed in chroot"
+ ls -lR $d2
+ exit 1
+ fi
+ if [ "$(find $d2/usr/lib* -name libhivex.so.0 | wc -l)" -lt 1 ]; then
+ echo "$0: $distro: hivex library not installed in chroot"
+ ls -lR $d2
+ exit 1
+ fi
+ if [ ! -x $d2/bin/tar ]; then
+ echo "$0: $distro: tar binary not installed in chroot"
+ ls -lR $d2
+ exit 1
+ fi
+ ;;
openmandriva)
if [ ! -x $d2/usr/bin/augtool ]; then
echo "$0: $distro: augtool binary not installed in chroot"
--
2.25.1