diff --git a/0001-Fix-Bytes-String-for-OCaml-4.06.patch b/0001-Fix-Bytes-String-for-OCaml-4.06.patch new file mode 100644 index 0000000..4d1408a --- /dev/null +++ b/0001-Fix-Bytes-String-for-OCaml-4.06.patch @@ -0,0 +1,58 @@ +From 5c5eff66dfaccb212b8906e769e40633d8b8f5e4 Mon Sep 17 00:00:00 2001 +From: "Richard W.M. Jones" +Date: Tue, 13 Feb 2018 08:20:52 +0000 +Subject: [PATCH] Fix Bytes/String for OCaml 4.06. + +--- + src/format_ext2_kernel.ml | 4 ++-- + src/mode_build.ml | 10 ++++++---- + 2 files changed, 8 insertions(+), 6 deletions(-) + +diff --git a/src/format_ext2_kernel.ml b/src/format_ext2_kernel.ml +index d5d529d..98bff3a 100644 +--- a/src/format_ext2_kernel.ml ++++ b/src/format_ext2_kernel.ml +@@ -290,9 +290,9 @@ and read_leshort chan offset = + + and read_string chan offset len = + seek_in chan offset; +- let buf = String.create len in ++ let buf = Bytes.create len in + really_input chan buf 0 len; +- buf ++ Bytes.to_string buf + + and copy_or_symlink_file copy_kernel src dest = + if not copy_kernel then +diff --git a/src/mode_build.ml b/src/mode_build.ml +index 95869cb..b5f5fa6 100644 +--- a/src/mode_build.ml ++++ b/src/mode_build.ml +@@ -299,9 +299,10 @@ and update_appliance appliance lines = function + (* Determine the [file_type] of [file], or exit with an error. *) + and get_file_type file = + let chan = open_in file in +- let buf = String.create 512 in +- let len = input chan buf 0 (String.length buf) in ++ let buf = Bytes.create 512 in ++ let len = input chan buf 0 (Bytes.length buf) in + close_in chan; ++ let buf = Bytes.to_string buf in + + if len >= 3 && buf.[0] = '\x1f' && buf.[1] = '\x8b' && buf.[2] = '\x08' + then (* gzip-compressed file *) +@@ -335,8 +336,9 @@ and get_file_content file buf len = + and get_compressed_file_content zcat file = + let cmd = sprintf "%s %s" zcat (quote file) in + let chan_out, chan_in, chan_err = open_process_full cmd [||] in +- let buf = String.create 512 in +- let len = input chan_out buf 0 (String.length buf) in ++ let buf = Bytes.create 512 in ++ let len = input chan_out buf 0 (Bytes.length buf) in ++ let buf = Bytes.to_string buf in + (* We're expecting the subprocess to fail because we close the pipe + * early, so: + *) +-- +2.15.1 + diff --git a/9000-fix-cannot-detect-package-manager-on-openeuler.patch b/9000-fix-cannot-detect-package-manager-on-openeuler.patch new file mode 100644 index 0000000..90604c1 --- /dev/null +++ b/9000-fix-cannot-detect-package-manager-on-openeuler.patch @@ -0,0 +1,29 @@ +From 21d7bb90cbcb1ab71c3d7e660948b92bbf85e5f6 Mon Sep 17 00:00:00 2001 +From: zhanghaibo +Date: Wed, 11 Dec 2019 03:02:27 +0000 +Subject: [PATCH] supermin:fix cannot detect package manager on openeuler + +--- + src/ph_rpm.ml | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +diff --git a/src/ph_rpm.ml b/src/ph_rpm.ml +index b0a5eb2..61537ce 100644 +--- a/src/ph_rpm.ml ++++ b/src/ph_rpm.ml +@@ -31,10 +31,11 @@ let stringset_of_list pkgs = + let fedora_detect () = + Config.rpm <> "no" && Config.rpm2cpio <> "no" && rpm_is_available () && + (Config.yumdownloader <> "no" || Config.dnf <> "no") && +- (List.mem (Os_release.get_id ()) [ "fedora"; "rhel"; "centos" ] || ++ (List.mem (Os_release.get_id ()) [ "fedora"; "rhel"; "centos"; "openEuler" ] || + try + (stat "/etc/redhat-release").st_kind = S_REG || +- (stat "/etc/fedora-release").st_kind = S_REG ++ (stat "/etc/fedora-release").st_kind = S_REG || ++ (stat "/etc/openEuler-release").st_kind = S_REG + with Unix_error _ -> false) + + let opensuse_detect () = +-- +2.23.0 diff --git a/README.en.md b/README.en.md deleted file mode 100644 index 3776342..0000000 --- a/README.en.md +++ /dev/null @@ -1,36 +0,0 @@ -# supermin - -#### Description -{**When you're done, you can delete the content in this README and update the file with details for others getting started with your repository**} - -#### 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 64e2a26..0000000 --- a/README.md +++ /dev/null @@ -1,39 +0,0 @@ -# supermin - -#### 介绍 -{**以下是码云平台说明,您可以替换此简介** -码云是 OSCHINA 推出的基于 Git 的代码托管平台(同时支持 SVN)。专为开发者提供稳定、高效、安全的云端软件开发协作平台 -无论是个人、团队、或是企业,都能够用码云实现代码托管、项目管理、协作开发。企业项目请看 [https://gitee.com/enterprises](https://gitee.com/enterprises)} - -#### 软件架构 -软件架构说明 - - -#### 安装教程 - -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. 码云官方博客 [blog.gitee.com](https://blog.gitee.com) -3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解码云上的优秀开源项目 -4. [GVP](https://gitee.com/gvp) 全称是码云最有价值开源项目,是码云综合评定出的优秀开源项目 -5. 码云官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help) -6. 码云封面人物是一档用来展示码云会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/) diff --git a/supermin-5.1.19.tar.gz b/supermin-5.1.19.tar.gz new file mode 100644 index 0000000..3e4597d Binary files /dev/null and b/supermin-5.1.19.tar.gz differ diff --git a/supermin.spec b/supermin.spec new file mode 100644 index 0000000..6814fb1 --- /dev/null +++ b/supermin.spec @@ -0,0 +1,62 @@ +Name: supermin +Version: 5.1.19 +Release: 9 +Summary: A tool for building supermin appliances, required by libguestfs +License: GPLv2+ +URL: http://libguestfs.org/ +Source0: http://libguestfs.org/download/supermin/%{name}-%{version}.tar.gz +Patch0001: 0001-Fix-Bytes-String-for-OCaml-4.06.patch +Patch9000: 9000-fix-cannot-detect-package-manager-on-openeuler.patch +BuildRequires: augeas dietlibc-devel dnf dnf-plugins-core e2fsprogs-devel +BuildRequires: findutils gnupg2 grubby hivex kernel ocaml ocaml-findlib-devel +BuildRequires: rpm rpm-devel systemd-udev tar +BuildRequires: /usr/bin/pod2man /usr/bin/pod2html /usr/sbin/mke2fs +Requires: cpio dnf dnf-plugins-core e2fsprogs-libs >= 1.42 findutils +Requires: rpm tar util-linux-ng /usr/sbin/mke2fs + +%description +Supermin is a tool for building supermin appliances. These are tiny +appliances (similar to virtual machines), usually around 100KB in +size, which get fully instantiated on-the-fly in a fraction of a +second when you need to boot one of them. + +%package help +Summary: Man files for supermin +Requires: man +BuildArch: noarch + +%description help +This contains man files for the using of supermin. + +%prep +%autosetup -p1 + +%build +%configure --disable-network-tests +make -C init CC="diet gcc" +%make_build + +%install +%make_install + +%check +#%ifarch aarch64 +#export SKIP_TEST_EXECSTACK=1 +#%endif + +#make check || { +# cat tests/test-suite.log +# exit 1 +#} + +%files +%doc examples/build-basic-vm.sh README +%license COPYING +%{_bindir}/* + +%files help +%{_mandir}/man1/* + +%changelog +* Fri Feb 14 2020 Ling Yang - 5.1.19-9 +- Package Initialization