Skip to content

Commit

Permalink
Merge pull request #247 from lsm5/packit-update
Browse files Browse the repository at this point in the history
Packit: switch to rpm/gvisor-tap-vsock.spec
  • Loading branch information
openshift-merge-robot committed Aug 3, 2023
2 parents db60882 + 5cc1053 commit 62ec518
Show file tree
Hide file tree
Showing 4 changed files with 156 additions and 153 deletions.
31 changes: 0 additions & 31 deletions .packit.sh

This file was deleted.

66 changes: 44 additions & 22 deletions .packit.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,8 @@
# On PR: https://copr.fedorainfracloud.org/coprs/rhcontainerbot/packit-builds/
# On commit: https://copr.fedorainfracloud.org/coprs/rhcontainerbot/podman-next/

specfile_path: gvisor-tap-vsock.spec
specfile_path: rpm/gvisor-tap-vsock.spec
upstream_tag_template: v{version}

jobs:
- &copr
Expand All @@ -17,7 +18,6 @@ jobs:
enable_net: true
srpm_build_deps:
- make
- rpkg
targets:
- fedora-rawhide-aarch64
- fedora-rawhide-x86_64
Expand All @@ -29,25 +29,47 @@ jobs:
- centos-stream-9-x86_64
- centos-stream-8-aarch64
- centos-stream-8-x86_64
actions:
post-upstream-clone:
- "rpkg spec --outdir ./"
fix-spec-file:
- "bash .packit.sh"

#- <<: *copr
- <<: *copr
# Run on commit to main branch
#trigger: commit
#branch: main
#project: podman-next
#targets:
# - fedora-rawhide-aarch64
# - fedora-rawhide-x86_64
# - fedora-eln-aarch64
# - fedora-eln-x86_64
# - fedora-38-aarch64
# - fedora-38-x86_64
# - centos-stream-9-aarch64
# - centos-stream-9-x86_64
# - centos-stream-8-aarch64
# - centos-stream-8-x86_64
trigger: commit
branch: main
project: podman-next
targets:
- fedora-rawhide-aarch64
- fedora-rawhide-ppc64le
- fedora-rawhide-s390x
- fedora-rawhide-x86_64
- fedora-eln-aarch64
- fedora-eln-ppc64le
- fedora-eln-s390x
- fedora-eln-x86_64
- fedora-38-aarch64
- fedora-38-ppc64le
- fedora-38-s390x
- fedora-38-x86_64
- centos-stream+epel-next-9-aarch64
- centos-stream+epel-next-9-ppc64le
- centos-stream+epel-next-9-s390x
- centos-stream+epel-next-9-x86_64
- centos-stream+epel-next-8-aarch64
- centos-stream+epel-next-8-ppc64le
- centos-stream+epel-next-8-x86_64

- job: propose_downstream
trigger: release
update_release: false
dist_git_branches:
- fedora-rawhide
- fedora-38

- job: koji_build
trigger: commit
dist_git_branches:
- fedora-rawhide
- fedora-38

- job: bodhi_update
trigger: commit
dist_git_branches:
- fedora-38 # rawhide updates are created automatically
100 changes: 0 additions & 100 deletions gvisor-tap-vsock.spec.rpkg

This file was deleted.

112 changes: 112 additions & 0 deletions rpm/gvisor-tap-vsock.spec
Original file line number Diff line number Diff line change
@@ -0,0 +1,112 @@
%global with_debug 1

%if 0%{?with_debug}
%global _find_debuginfo_dwz_opts %{nil}
%global _dwz_low_mem_die_limit 0
%else
%global debug_package %{nil}
%endif

%global gomodulesmode GO111MODULE=on

%global _gvisor_installdir %{_libexecdir}/podman

Name: gvisor-tap-vsock
%if %{defined copr_username}
Epoch: 103
%else
Epoch: 6
%endif
# DO NOT TOUCH the Version string!
# The TRUE source of this specfile is:
# https://github.com/containers/podman/blob/main/rpm/podman.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: 0
License: Apache-2.0 AND BSD-2-Clause AND BSD-3-Clause AND MIT
%if %{defined autorelease}
Release: %autorelease
%else
Release: 1
%endif
%if %{defined golang_arches_future}
ExclusiveArch: %{golang_arches_future}
%else
ExclusiveArch: aarch64 ppc64le s390x x86_64
%endif
Summary: Go replacement for libslirp and VPNKit
URL: https://github.com/containers/%{name}
# All SourceN files fetched from upstream
Source0: %{url}/archive/refs/tags/v%{version}.tar.gz
BuildRequires: gcc
BuildRequires: glib2-devel
BuildRequires: glibc-devel
BuildRequires: glibc-static
BuildRequires: golang
BuildRequires: git-core
%if %{defined rhel} && 0%{?rhel} == 8
BuildRequires: go-srpm-macros
%else
BuildRequires: go-rpm-macros
%endif
BuildRequires: make
%if %{defined copr_username}
Obsoletes: podman-gvproxy < 102:4.7.0-1
%else
Obsoletes: podman-gvproxy < 5:4.7.0-1
%endif
Provides: podman-gvproxy = %{epoch}:%{version}-%{release}

%description
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.

%prep
%autosetup -Sgit -n %{name}-%{version}

%build
%set_build_flags
export CGO_CFLAGS=$CFLAGS

# These extra flags present in $CFLAGS have been skipped for now as they break the build
CGO_CFLAGS=$(echo $CGO_CFLAGS | sed 's/-flto=auto//g')
CGO_CFLAGS=$(echo $CGO_CFLAGS | sed 's/-Wp,D_GLIBCXX_ASSERTIONS//g')
CGO_CFLAGS=$(echo $CGO_CFLAGS | sed 's/-specs=\/usr\/lib\/rpm\/redhat\/redhat-annobin-cc1//g')

%ifarch x86_64
export CGO_CFLAGS+=" -m64 -mtune=generic -fcf-protection=full"
%endif

# reset LDFLAGS for plugins and gvisor binaries
LDFLAGS=''

# build gvisor-tap-vsock binaries
%gobuild -o bin/gvproxy ./cmd/gvproxy
%gobuild -o bin/gvforwarder ./cmd/vm

%install
# install gvproxy
install -dp %{buildroot}%{_gvisor_installdir}
install -p -m0755 bin/gvproxy %{buildroot}%{_gvisor_installdir}
install -p -m0755 bin/gvforwarder %{buildroot}%{_gvisor_installdir}

#define license tag if not already defined
%{!?_licensedir:%global license %doc}

%files
%license LICENSE
%doc README.md
%dir %{_gvisor_installdir}
%{_gvisor_installdir}/gvproxy
%{_gvisor_installdir}/gvforwarder

%changelog
%if %{defined autochangelog}
%autochangelog
%else
* Mon Jul 24 2023 RH Container Bot <[email protected]>
- Placeholder changelog for envs that are not autochangelog-ready
%endif

0 comments on commit 62ec518

Please sign in to comment.