File vde2.spec of Package vde2

# spec file for package vde2
# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.

# Please submit bugfixes or comments via

Name:           vde2
Version:        2.3.2+svn587
Release:        0
Summary:        Virtual Distributed Ethernet
License:        GPL-2.0
Group:          Productivity/Networking/Other
Source0:        %{name}-%{version}.tar.xz
# PATCH-FIX-UPSTREAM: always overflows destination buffer
Patch0:         vde2-buffer-overflow.patch
# PATCH-FIX-UPSTREAM: openssl 1.1 compatibility
Patch1:         vde2-openssl_1.1_compatibility.patch
BuildRequires:  autoconf
BuildRequires:  automake
BuildRequires:  gcc-c++
BuildRequires:  libpcap-devel
BuildRequires:  libtool
BuildRequires:  pkgconfig
BuildRequires:  pkgconfig(openssl)
Recommends:     %{name}-cryptcab = %{version}
Recommends:     %{name}-slirp = %{version}
Recommends:     kvm
Recommends:     qemu

VDE is a virtual network that can be spawned over a set of physical
computer over the Internet

VDE connects together:
  (1) real GNU-linux boxes (tuntap)
  (2) virtual machines: UML-User Mode Linux, qemu, bochs, MPS.

VDE can be used:
  (i) to create a general purpose tunnel (every protocol that runs
    on a Ethernet can be put into the tunnel)
  (ii) to connect a set of virtual machine to the Internet with no
    need of free access of tuntap
  (iii) to support mobility: a VDE can stay interconnected despite
    of the change of virtual cables, i.e. the change of IP addresses
    and interface in the real world

%package cryptcab
Summary:        VDE ecryption module
License:        GPL-2.0
Group:          Productivity/Networking/Other

%description cryptcab
This package contains CryptCab, which can be used
to send encrypted data over an UDP link.

%package slirp
Summary:        VDE ecryption module
License:        BSD-4-Clause AND MIT
Group:          Productivity/Networking/Other

%description slirp
slirpvde is a slirp interface for a VDE network.
Slirpvde  connects  all  the units (virtual or real machines) to the network
of the host where slirpvde runs as it were a NAT/Masquerading router.
The default route is the node 2 ( in the default  network  configuration)
and DNS is re-mapped in node 3 (

Slirpvde  runs  using  standard user privileges (no need for root access):
all the connections are re-generated by slirpvde itself.

IPv4 only. IPv6 is still unsupported (will be supported when slirpvde
will be rewritten using the  LWIPv6  network stack).

%package -n libvdehist0
Summary:        VDE history library
License:        GPL-2.0
Group:          System/Libraries

%description -n libvdehist0
This package contains VDE history library
A library to manage history and command completion for vde mgmt protocol

%package -n libvdemgmt0
Summary:        VDE management library
License:        GPL-2.0
Group:          System/Libraries

%description -n libvdemgmt0
This package contains a library to interact with vde_switch
management console using pre-made unattended scripts.

%package -n libvdeplug3
Summary:        VDE plug library
License:        GPL-2.0
Group:          System/Libraries

%description -n libvdeplug3
This package contains a library that makes programs able to connect
to a local VDE switch. The simplest one is vde_plug, contained in the vde2 package.

%package -n libvdesnmp0
Summary:        VDE snmp library
License:        GPL-2.0
Group:          System/Libraries

%description -n libvdesnmp0
This package contains VDE snmp library
SNMP library for Virtual Distributed Ethernet

%package -n libvdehist-devel
Summary:        VDE hist header files
License:        GPL-2.0
Group:          Development/Libraries/C and C++
Requires:       %{name} = %{version}
Requires:       libvdehist0 = %{version}
Obsoletes:      libvdehist0-devel < %{version}-%{release}
Provides:       libvdehist0-devel = %{version}-%{release}

%description -n libvdehist-devel
This package contains VDE hist header files

%package -n libvdemgmt-devel
Summary:        VDE management files
License:        GPL-2.0
Group:          Development/Libraries/C and C++
Requires:       %{name} = %{version}
Requires:       libvdemgmt0 = %{version}
Obsoletes:      libvdemgmt0-devel < %{version}-%{release}
Provides:       libvdemgmt0-devel = %{version}-%{release}

%description -n libvdemgmt-devel
This package contains VDE management files

%package -n libvdeplug-devel
Summary:        VDE plug header files
License:        GPL-2.0
Group:          Development/Libraries/C and C++
Requires:       %{name} = %{version}
Requires:       libvdeplug3 = %{version}
Obsoletes:      libvdeplug3-devel < %{version}-%{release}
Provides:       libvdeplug3-devel = %{version}-%{release}

%description -n libvdeplug-devel
This package contains VDE plug header files

%package -n libvdesnmp-devel
Summary:        VDE SNMP header files
License:        GPL-2.0
Group:          Development/Libraries/C and C++
Requires:       %{name} = %{version}
Requires:       libvdesnmp0 = %{version}
Obsoletes:      libvdesnmp0-devel < %{version}-%{release}
Provides:       libvdesnmp0-devel = %{version}-%{release}

%description -n libvdesnmp-devel
This package contains VDE SNMP header files.

%setup -q
%patch0 -p1
%patch1 -p1

autoreconf -fvi
# --enable-experimental even tho weird it has useful features and
#   vde2 on its own is no longer developed
%configure \
  --disable-silent-rules \
  --enable-kernel-switch \
  --disable-static \
  --enable-experimental \
# Not thread safe makefiles
make -j1

find %{buildroot} -type f -name "*.la" -delete -print

%post -n libvdehist0 -p /sbin/ldconfig
%postun -n libvdehist0 -p /sbin/ldconfig
%post -n libvdemgmt0 -p /sbin/ldconfig
%postun -n libvdemgmt0 -p /sbin/ldconfig
%post -n libvdeplug3 -p /sbin/ldconfig
%postun -n libvdeplug3 -p /sbin/ldconfig
%post -n libvdesnmp0 -p /sbin/ldconfig
%postun -n libvdesnmp0 -p /sbin/ldconfig

%doc Changelog README COPYING
%doc doc/README.VirtualBox doc/README.qemu doc/vde_autolink-HOWTO
%doc doc/README.UML doc/vdeqemu-HOWTO doc/README.vde_over_ns
%dir %{_libdir}/vde2
%dir %{_libdir}/vde2/vde_l3
%dir %{_sysconfdir}/vde2
%dir %{_libdir}/vde2/plugins
%config %{_sysconfdir}/vde2/vdecmd
%exclude %{_mandir}/man1/vde_cryptcab.*
%exclude %{_mandir}/man1/slirpvde.*

%files cryptcab
%doc Changelog README COPYING

%files slirp
%doc Changelog README COPYING doc/README.slirpvde

%files -n libvdehist0
%doc Changelog README COPYING

%files -n libvdemgmt0
%doc Changelog README COPYING
%dir %{_sysconfdir}/vde2/libvdemgmt
%config %{_sysconfdir}/vde2/libvdemgmt/asyncrecv.rc
%config %{_sysconfdir}/vde2/libvdemgmt/closemachine.rc
%config %{_sysconfdir}/vde2/libvdemgmt/openmachine.rc
%config %{_sysconfdir}/vde2/libvdemgmt/sendcmd.rc

%files -n libvdeplug3
%doc Changelog README COPYING COPYING.libvdeplug

%files -n libvdesnmp0
%doc Changelog README COPYING

%files -n libvdehist-devel
%doc Changelog README COPYING

%files -n libvdemgmt-devel
%doc Changelog README COPYING

%files -n libvdeplug-devel
%doc Changelog README COPYING

%files -n libvdesnmp-devel
%doc Changelog README COPYING

openSUSE Build Service is sponsored by