From 107772583a39cc9532aab0bd859a913af92e8cad Mon Sep 17 00:00:00 2001 From: Lokesh Mandvekar Date: Mon, 24 Jul 2023 08:34:58 -0400 Subject: [PATCH] gvproxy removed for rawhide and copr builds Ref: (WIP) https://bugzilla.redhat.com/show_bug.cgi?id=2224434 This might cause breakage in rawhide, but can't be worse than what it already is. --- podman.spec | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/podman.spec b/podman.spec index afbb6fc..44691da 100644 --- a/podman.spec +++ b/podman.spec @@ -25,6 +25,15 @@ %define build_with_btrfs 1 %endif +# gvproxy can be included as a standalone package on copr. +# It is currently open for review on bugzilla until which fedora releases can't +# include it. Official rawhide should be able to fetch the last active build of +# gvproxy, the min version requirement has been removed to allow it. +# Ref: https://bugzilla.redhat.com/show_bug.cgi?id=2224434 +%if !%{defined copr_username} && 0%{?fedora} <= 38 +%define gvproxy_subpackage 1 +%endif + %global container_base_path github.com/containers %global container_base_url https://%{container_base_path} @@ -71,7 +80,9 @@ URL: https://%{name}.io/ # All SourceN files fetched from upstream Source0: %{git0}/archive/v%{version}.tar.gz Source1: %{git_plugins}/archive/%{commit_plugins}/%{repo_plugins}-%{commit_plugins}.tar.gz +%if %{defined gvproxy_subpackage} Source2: %{git_gvproxy}/archive/%{commit_gvproxy}/%{repo_gvproxy}-%{commit_gvproxy}.tar.gz +%endif Provides: %{name}-manpages = %{epoch}:%{version}-%{release} BuildRequires: %{_bindir}/envsubst BuildRequires: %{_bindir}/go-md2man @@ -104,7 +115,11 @@ BuildRequires: python3 Requires: catatonit Requires: conmon >= 2:2.1.7-2 Requires: containers-common-extra +%if %{defined gvproxy_subpackage} Recommends: %{name}-gvproxy = %{epoch}:%{version}-%{release} +%else +Recommends: %{name}-gvproxy +%endif Provides: %{name}-quadlet Obsoletes: %{name}-quadlet <= 5:4.4.0-1 Provides: %{name}-quadlet = %{epoch}:%{version}-%{release} @@ -174,7 +189,11 @@ connections as well. %package plugins Summary: Plugins for %{name} Requires: dnsmasq +%if %{defined gvproxy_subpackage} Recommends: %{name}-gvproxy = %{epoch}:%{version}-%{release} +%else +Recommends: %{name}-gvproxy +%endif %description plugins This plugin sets up the use of dnsmasq on a given CNI network so @@ -184,6 +203,7 @@ that dnsmasq will read in. Similarly, when a pod is removed from the network, it will remove the entry from the hosts file. Each CNI network will have its own dnsmasq instance. +%if %{defined gvproxy_subpackage} %package gvproxy Summary: Go replacement for libslirp and VPNKit @@ -192,6 +212,7 @@ A replacement for libslirp and VPNKit, written in pure Go. It is based on the network stack of gVisor. Compared to libslirp, gvisor-tap-vsock brings a configurable DNS server and dynamic port forwarding. +%endif %package -n %{name}sh Summary: Confined login and user shell using %{name} @@ -213,8 +234,10 @@ sed -i 's;@@PODMAN@@\;$(BINDIR);@@PODMAN@@\;%{_bindir};' Makefile # untar dnsname tar zxf %{SOURCE1} +%if %{defined gvproxy_subpackage} # untar %%{name}-gvproxy tar zxf %{SOURCE2} +%endif %build %set_build_flags @@ -254,11 +277,13 @@ export BUILDTAGS="$BASEBUILDTAGS $(hack/btrfs_installed_tag.sh) $(hack/btrfs_tag # reset LDFLAGS for plugins and gvisor binaries LDFLAGS='' +%if %{defined gvproxy_subpackage} # build gvisor-tap-vsock binaries cd %{repo_gvproxy}-%{commit_gvproxy} %gobuild -o bin/gvproxy ./cmd/gvproxy %gobuild -o bin/gvforwarder ./cmd/vm cd .. +%endif %{__make} docs docker-docs @@ -296,12 +321,14 @@ cd %{repo_plugins}-%{commit_plugins} %{__make} PREFIX=%{_prefix} DESTDIR=%{buildroot} install cd .. +%if %{defined gvproxy_subpackage} # install gvproxy cd %{repo_gvproxy}-%{commit_gvproxy} install -dp %{buildroot}%{_libexecdir}/%{name} install -p -m0755 bin/gvproxy %{buildroot}%{_libexecdir}/%{name} install -p -m0755 bin/gvforwarder %{buildroot}%{_libexecdir}/%{name} cd .. +%endif # do not include docker and podman-remote man pages in main package for file in `find %{buildroot}%{_mandir}/man[15] -type f | sed "s,%{buildroot},," | grep -v -e remote -e docker`; do @@ -364,12 +391,14 @@ cp -pav test/system %{buildroot}/%{_datadir}/%{name}/test/ %dir %{_libexecdir}/cni %{_libexecdir}/cni/dnsname +%if %{defined gvproxy_subpackage} %files gvproxy %license %{repo_gvproxy}-%{commit_gvproxy}/LICENSE %doc %{repo_gvproxy}-%{commit_gvproxy}/README.md %dir %{_libexecdir}/%{name} %{_libexecdir}/%{name}/gvproxy %{_libexecdir}/%{name}/gvforwarder +%endif %files -n %{name}sh %license LICENSE