debian, rhel: Ship ovs shared libraries and header files
authorEdwin Chiu <echiu@vmware.com>
Tue, 31 May 2016 21:32:59 +0000 (14:32 -0700)
committerBen Pfaff <blp@ovn.org>
Tue, 7 Jun 2016 15:22:33 +0000 (08:22 -0700)
Compile and package ovs shared libraries and create new header
package for debian (openvswitch-dev) and rhel (openvswitch-devel).

VMware-BZ: #1556299
Signed-off-by: Edwin Chiu <echiu@vmware.com>
Co-authored-by: Harold Lim <haroldl@vmware.com>
Signed-off-by: Ben Pfaff <blp@ovn.org>
debian/automake.mk
debian/control
debian/openvswitch-common.install
debian/openvswitch-dev.install [new file with mode: 0644]
debian/rules
lib/libopenvswitch.pc.in
lib/libsflow.pc.in
ofproto/libofproto.pc.in
ovsdb/libovsdb.pc.in
rhel/openvswitch.spec.in

index de2350c..7b5b3aa 100644 (file)
@@ -18,6 +18,7 @@ EXTRA_DIST += \
        debian/openvswitch-datapath-source.copyright \
        debian/openvswitch-datapath-source.dirs \
        debian/openvswitch-datapath-source.install \
+       debian/openvswitch-dev.install \
        debian/openvswitch-ipsec.dirs \
        debian/openvswitch-ipsec.init \
        debian/openvswitch-ipsec.install \
index 2918d06..2c07a73 100644 (file)
@@ -288,3 +288,19 @@ Description: Open vSwitch VTEP utilities
  .
  This package provides utilities that are useful to interact with a
  VTEP-configured database and a VTEP emulator.
+
+Package: openvswitch-dev
+Architecture: linux-any
+Depends:
+ openvswitch-common (>= ${binary:Version}),
+ ${misc:Depends}
+Description: Open vSwitch development package
+ Open vSwitch is a production quality, multilayer, software-based, Ethernet
+ virtual switch. It is designed to enable massive network automation through
+ programmatic extension, while still supporting standard management interfaces
+ and protocols (e.g. NetFlow, sFlow, SPAN, RSPAN, CLI, LACP, 802.1ag). In
+ addition, it is designed to support distribution across multiple physical
+ servers similar to VMware's vNetwork distributed vswitch or Cisco's Nexus
+ 1000V.
+ .
+ This package provides openvswitch headers and libopenvswitch for developers.
index 3264ea5..ebb7d5c 100644 (file)
@@ -9,3 +9,4 @@ usr/sbin/ovs-bugtool
 usr/share/openvswitch/bugtool-plugins
 usr/share/openvswitch/scripts/ovs-bugtool-*
 usr/share/openvswitch/scripts/ovs-lib
+usr/lib/lib*.so.*
diff --git a/debian/openvswitch-dev.install b/debian/openvswitch-dev.install
new file mode 100644 (file)
index 0000000..11791e4
--- /dev/null
@@ -0,0 +1,11 @@
+usr/lib/lib*.so
+usr/lib/lib*.a
+usr/lib/pkgconfig
+include/*.h usr/include/openvswitch
+include/openflow/*.h usr/include/openvswitch/openflow
+include/openvswitch/*.h usr/include/openvswitch/openvswitch
+include/sparse/*.h usr/include/openvswitch/sparse
+include/sparse/arpa/*.h usr/include/openvswitch/sparse/arpa
+include/sparse/netinet/*.h usr/include/openvswitch/sparse/netinet
+include/sparse/sys/*.h usr/include/openvswitch/sparse/sys
+lib/*.h usr/include/openvswitch/lib
index 7110851..4c34b07 100755 (executable)
@@ -30,7 +30,7 @@ override_dh_autoreconf:
        dh_autoreconf $(DH_AS_NEEDED)
 
 override_dh_auto_configure:
-       dh_auto_configure -- --enable-ssl $(DATAPATH_CONFIGURE_OPTS)
+       dh_auto_configure -- --enable-ssl --enable-shared $(DATAPATH_CONFIGURE_OPTS)
 
 override_dh_auto_test:
 ifeq (,$(filter nocheck,$(DEB_BUILD_OPTIONS)))
@@ -91,3 +91,5 @@ override_dh_installinit:
 
 override_dh_strip:
        dh_strip --dbg-package=openvswitch-dbg
+
+override_dh_usrlocal:
index 4c40a4c..2a3f2ca 100644 (file)
@@ -8,4 +8,4 @@ Description: Open vSwitch library
 Version: @VERSION@
 Libs: -L${libdir} -lopenvswitch
 Libs.private: @LIBS@
-Cflags: -I${includedir}
+Cflags: -I${includedir}/openvswitch
index 34bb7e3..e70a2b7 100644 (file)
@@ -8,4 +8,4 @@ Description: sFlow library of Open vSwitch
 Version: @VERSION@
 Libs: -L${libdir} -lsflow
 Libs.private: @LIBS@
-Cflags: -I${includedir}
+Cflags: -I${includedir}/openvswitch
index 49894fb..2740712 100644 (file)
@@ -8,4 +8,4 @@ Description: OpenFlow library of Open vSwitch
 Version: @VERSION@
 Libs: -L${libdir} -lofproto
 Libs.private: @LIBS@
-Cflags: -I${includedir}
+Cflags: -I${includedir}/openvswitch
index 54c9039..fe367ea 100644 (file)
@@ -8,4 +8,4 @@ Description: OVSDB library of Open vSwitch
 Version: @VERSION@
 Libs: -L${libdir} -lovsdb
 Libs.private: @LIBS@
-Cflags: -I${includedir}
+Cflags: -I${includedir}/openvswitch
index b86f5db..b1e9fd0 100644 (file)
@@ -32,11 +32,19 @@ Open vSwitch provides standard network bridging functions and
 support for the OpenFlow protocol for remote per-flow control of
 traffic.
 
+%package devel
+Summary:        Open vSwitch development package
+Group:          Development/Libraries
+
+%description devel
+This package provides openvswitch headers and libopenvswitch for developers.
+
 %prep
 %setup -q
 
 %build
-./configure --prefix=/usr --sysconfdir=/etc --localstatedir=%{_localstatedir} --enable-ssl
+./configure --prefix=/usr --sysconfdir=/etc --localstatedir=%{_localstatedir} \
+    --libdir=%{_libdir} --enable-ssl --enable-shared
 make %{_smp_mflags}
 
 %install
@@ -69,11 +77,29 @@ rm \
     $RPM_BUILD_ROOT/usr/share/man/man?/ovn-* \
     $RPM_BUILD_ROOT/usr/share/openvswitch/ovn-* \
     $RPM_BUILD_ROOT/usr/share/openvswitch/scripts/ovn-*
-(cd "$RPM_BUILD_ROOT" && rm -rf usr/lib)
+(cd "$RPM_BUILD_ROOT" && rm -rf usr/%{_lib}/*.la)
 (cd "$RPM_BUILD_ROOT" && rm -rf usr/include)
 
 install -d -m 755 $RPM_BUILD_ROOT/var/lib/openvswitch
 
+copy_headers() {
+    src=$1
+    dst=$RPM_BUILD_ROOT/$2
+    install -d -m 0755 $dst
+    install -m 0644 $src/*.h $dst
+}
+copy_headers include %{_includedir}/openvswitch
+copy_headers include/openflow %{_includedir}/openvswitch/openflow
+copy_headers include/openvswitch %{_includedir}/openvswitch/openvswitch
+copy_headers include/sparse %{_includedir}/openvswitch/sparse
+copy_headers include/sparse/arpa %{_includedir}/openvswitch/sparse/arpa
+copy_headers include/sparse/netinet %{_includedir}/openvswitch/sparse/netinet
+copy_headers include/sparse/sys %{_includedir}/openvswitch/sparse/sys
+copy_headers lib %{_includedir}/openvswitch/lib
+
+install -D -m 0644 lib/.libs/libopenvswitch.a \
+    $RPM_BUILD_ROOT/%{_libdir}/libopenvswitch.a
+
 %check
 %if %{with check}
     if make check TESTSUITEFLAGS='%{_smp_mflags}' RECHECK=yes; then :;
@@ -144,6 +170,7 @@ exit 0
 /usr/bin/ovsdb-client
 /usr/bin/ovsdb-tool
 /usr/bin/vtep-ctl
+%{_libdir}/lib*.so.*
 /usr/sbin/ovs-bugtool
 /usr/sbin/ovs-vswitchd
 /usr/sbin/ovsdb-server
@@ -181,3 +208,9 @@ exit 0
 %doc INSTALL.DPDK.md rhel/README.RHEL README-native-tunneling.md
 /var/lib/openvswitch
 /var/log/openvswitch
+
+%files devel
+%{_libdir}/lib*.so
+%{_libdir}/lib*.a
+%{_libdir}/pkgconfig
+%{_includedir}/openvswitch/*