diff --git a/.gitignore b/.gitignore index c894000..039a846 100644 --- a/.gitignore +++ b/.gitignore @@ -61,3 +61,22 @@ crun-0.1.1.tar.gz /crun-1.4.5.tar.xz /crun-1.5.tar.xz /crun-1.6.tar.xz +/crun-1.7.tar.xz +/crun-1.7.1.tar.xz +/crun-1.7.2.tar.xz +/crun-1.8.tar.xz +/crun-1.8.1.tar.xz +/crun-1.8.2.tar.xz +/crun-1.8.3.tar.xz +/crun-1.8.4.tar.xz +/crun-1.8.5.tar.xz +/crun-1.8.6.tar.xz +/crun-1.8.7.tar.xz +/crun-1.9.tar.xz +/crun-1.9.1.tar.xz +/crun-1.9.2.tar.xz +/crun-1.10.tar.xz +/crun-1.11.tar.xz +/crun-1.11.1.tar.xz +/crun-1.11.2.tar.xz +/crun-1.12.tar.xz diff --git a/.packit.yaml b/.packit.yaml new file mode 100644 index 0000000..2cb0456 --- /dev/null +++ b/.packit.yaml @@ -0,0 +1,57 @@ +--- +# See the documentation for more information: +# https://packit.dev/docs/configuration/ + +specfile_path: rpm/crun.spec + +srpm_build_deps: + - git-archive-all + - make +actions: + create-archive: + - "git-archive-all -v --force-submodules rpm/crun-HEAD.tar.xz" + - bash -c "ls -1 rpm/crun-HEAD.tar.xz" + +jobs: + - job: copr_build + trigger: pull_request + notifications: + failure_comment: + message: "Ephemeral COPR build failed. @containers/packit-build please check." + targets: + - fedora-all-x86_64 + - fedora-all-aarch64 + - fedora-eln-x86_64 + - fedora-eln-aarch64 + - centos-stream+epel-next-8-x86_64 + - centos-stream+epel-next-8-aarch64 + - centos-stream+epel-next-9-x86_64 + - centos-stream+epel-next-9-aarch64 + additional_repos: + - "copr://rhcontainerbot/podman-next" + + # Run on commit to main branch + - job: copr_build + trigger: commit + notifications: + failure_comment: + message: "podman-next COPR build failed. @containers/packit-build please check." + branch: main + owner: rhcontainerbot + project: podman-next + + - job: propose_downstream + trigger: release + update_release: false + dist_git_branches: + - fedora-all + + - job: koji_build + trigger: commit + dist_git_branches: + - fedora-all + + - job: bodhi_update + trigger: commit + dist_git_branches: + - fedora-branched # rawhide updates are created automatically diff --git a/README.packit b/README.packit new file mode 100644 index 0000000..d778d97 --- /dev/null +++ b/README.packit @@ -0,0 +1,3 @@ +This repository is maintained by packit. +https://packit.dev/ +The file was generated using packit 0.86.2.post1.dev2+g209847d1. diff --git a/crun.spec b/crun.spec index d57b4a2..11589d5 100644 --- a/crun.spec +++ b/crun.spec @@ -1,91 +1,145 @@ %global krun_opts %{nil} +%global wasmedge_opts %{nil} +%global wasmtime_opts %{nil} -%if 0%{?fedora} >= 37 +# krun and wasm[edge,time] support only on aarch64 and x86_64 %ifarch aarch64 || x86_64 -%global krun_support enabled +%global wasm_support 1 + +# wasmedge not present on Fedora ELN environments +%if !0%{?eln} +%global wasmedge_support 1 +%global wasmedge_opts --with-wasmedge +%endif + +# krun only exists on fedora +%if %{defined fedora} +%global krun_support 1 %global krun_opts --with-libkrun %endif + +# wasmtime exists only on podman-next copr for now +%if %{defined copr_project} && "%{?copr_project}" == "podman-next" +%global wasmtime_support 1 +%global wasmtime_opts --with-wasmtime %endif -%global built_tag_strip 1.6 +%endif Summary: OCI runtime written in C Name: crun -Version: 1.6 +%if %{defined copr_username} +Epoch: 102 +%endif +# DO NOT TOUCH the Version string! +# The TRUE source of this specfile is: +# https://github.com/containers/crun/blob/main/rpm/crun.spec +# If that's what you're reading, Version must be 0, and will be updated by Packit for +# copr and koji builds. +# If you're reading this on dist-git, the version is automatically filled in by Packit. +Version: 1.12 +Release: %autorelease URL: https://github.com/containers/%{name} Source0: %{url}/releases/download/%{version}/%{name}-%{version}.tar.xz -%if "%{_vendor}" == "debbuild" -Packager: Podman Debbuild Maintainers -License: GPL-2.0+ -Release: 0%{?dist} +License: GPL-2.0-only +%if %{defined golang_arches_future} +ExclusiveArch: %{golang_arches_future} %else -License: GPLv2+ -Release: %autorelease +ExclusiveArch: aarch64 ppc64le riscv64 s390x x86_64 %endif BuildRequires: autoconf BuildRequires: automake -BuildRequires: go-md2man -BuildRequires: libtool -%if "%{_vendor}" == "debbuild" -BuildRequires: git -BuildRequires: libcap-dev -BuildRequires: libseccomp-dev -BuildRequires: libsystemd-dev -BuildRequires: libyajl-dev -BuildRequires: pkg-config -Requires: criu -%else BuildRequires: gcc BuildRequires: git-core -BuildRequires: python3 +BuildRequires: gperf BuildRequires: libcap-devel +%if %{defined krun_support} +BuildRequires: libkrun-devel +%endif BuildRequires: systemd-devel BuildRequires: yajl-devel -%if "%{krun_support}" == "enabled" -BuildRequires: libkrun-devel -Provides: krun -%endif BuildRequires: libseccomp-devel -BuildRequires: libselinux-devel BuildRequires: python3-libmount -BuildRequires: make -BuildRequires: glibc-static +BuildRequires: libtool BuildRequires: protobuf-c-devel -%ifnarch %ix86 BuildRequires: criu-devel >= 3.17.1-2 +Recommends: criu >= 3.17.1 +Recommends: criu-libs +%if %{defined wasmedge_support} +BuildRequires: wasmedge-devel %endif -Requires: criu >= 3.17.1 +%if %{defined wasmtime_support} +BuildRequires: wasmtime-c-api-devel +%endif +%if %{defined rhel} && 0%{?rhel} == 8 +BuildRequires: python3 +%else +BuildRequires: python %endif Provides: oci-runtime %description -%{name} is a runtime for running OCI containers +%{name} is a OCI runtime + +%if %{defined krun_support} +%package krun +Summary: %{name} with libkrun support +Requires: libkrun +Requires: %{name} = %{?epoch:%{epoch}:}%{version}-%{release} +Provides: krun = %{?epoch:%{epoch}:}%{version}-%{release} + +%description krun +krun is a symlink to the %{name} binary, with libkrun as an additional dependency. +%endif + +%if %{defined wasm_support} +%package wasm +Summary: %{name} with wasm support +Requires: %{name} = %{?epoch:%{epoch}:}%{version}-%{release} +Requires: wasm-library +Recommends: wasmedge + +%description wasm +%{name}-wasm is a symlink to the %{name} binary, with wasm as an additional dependency. +%endif %prep -%autosetup -Sgit %{name}-%{built_tag_strip} +%autosetup -Sgit -n %{name}-%{version} %build ./autogen.sh -%configure --disable-silent-rules %{krun_opts} +./configure --disable-silent-rules %{krun_opts} %{wasmedge_opts} %{wasmtime_opts} %make_build %install -%make_install +%make_install prefix=%{_prefix} rm -rf %{buildroot}%{_prefix}/lib* -%if "%{krun_support}" == "enabled" +%if %{defined krun_support} ln -s %{_bindir}/%{name} %{buildroot}%{_bindir}/krun %endif +%if %{defined wasm_support} +ln -s %{_bindir}/%{name} %{buildroot}%{_bindir}/%{name}-wasm +%endif + %files %license COPYING %{_bindir}/%{name} -%if "%{krun_support}" == "enabled" +%{_mandir}/man1/%{name}.1.gz + +%if %{defined krun_support} +%files krun +%license COPYING %{_bindir}/krun +%{_mandir}/man1/krun.1.gz +%endif + +%if %{defined wasm_support} +%files wasm +%license COPYING +%{_bindir}/%{name}-wasm %endif -%{_mandir}/man1/* %changelog -%if "%{_vendor}" != "debbuild" %autochangelog -%endif diff --git a/sources b/sources index 223c0de..a810830 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (crun-1.6.tar.xz) = cb0464792df6167719fd21c3e1117dc0d89cf91c60d02b478774d14b73bdf49b0d138578b48803ff5af28f50740f5022b043fdf3198833d4a9b69e40974ced00 +SHA512 (crun-1.12.tar.xz) = 3ed4d2c2b27ea1b9c0c68762e2eff0f18ee9efcd401a9f7fc984459f1b593def2a353484c8c0c5967fb2aae11df446aca4353346f843e3a0298d2400721ee488