From: Edwin Chiu <ec...@vmware.com>

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 <ec...@vmware.com>
Co-authored-by: Harold Lim <haro...@vmware.com>
---
 debian/automake.mk                |    1 +
 debian/control                    |   16 ++++++++++++++++
 debian/openvswitch-common.install |    1 +
 debian/openvswitch-dev.install    |   11 +++++++++++
 debian/rules                      |    4 +++-
 rhel/openvswitch.spec.in          |   38 +++++++++++++++++++++++++++++++++++--
 6 files changed, 68 insertions(+), 3 deletions(-)
 create mode 100644 debian/openvswitch-dev.install

diff --git a/debian/automake.mk b/debian/automake.mk
index de2350c..7b5b3aa 100644
--- a/debian/automake.mk
+++ b/debian/automake.mk
@@ -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 \
diff --git a/debian/control b/debian/control
index 2918d06..2c07a73 100644
--- a/debian/control
+++ b/debian/control
@@ -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.
diff --git a/debian/openvswitch-common.install 
b/debian/openvswitch-common.install
index 3264ea5..ebb7d5c 100644
--- a/debian/openvswitch-common.install
+++ b/debian/openvswitch-common.install
@@ -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
index 0000000..7a34765
--- /dev/null
+++ b/debian/openvswitch-dev.install
@@ -0,0 +1,11 @@
+usr/lib/lib*.so
+usr/lib/lib*.a
+usr/lib/pkgconfig
+include/*.h usr/local/include/openvswitch
+include/openflow/*.h usr/local/include/openvswitch/openflow
+include/openvswitch/*.h usr/local/include/openvswitch/openvswitch
+include/sparse/*.h usr/local/include/openvswitch/sparse
+include/sparse/arpa/*.h usr/local/include/openvswitch/sparse/arpa
+include/sparse/netinet/*.h usr/local/include/openvswitch/sparse/netinet
+include/sparse/sys/*.h usr/local/include/openvswitch/sparse/sys
+lib/*.h usr/local/include/openvswitch/lib
diff --git a/debian/rules b/debian/rules
index 2a70bd6..64bc779 100755
--- a/debian/rules
+++ b/debian/rules
@@ -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:
diff --git a/rhel/openvswitch.spec.in b/rhel/openvswitch.spec.in
index b86f5db..8a47367 100644
--- a/rhel/openvswitch.spec.in
+++ b/rhel/openvswitch.spec.in
@@ -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,30 @@ 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
+}
+LOCAL_INCLUDE=usr/local/include
+copy_headers include $LOCAL_INCLUDE/openvswitch
+copy_headers include/openflow $LOCAL_INCLUDE/openvswitch/openflow
+copy_headers include/openvswitch $LOCAL_INCLUDE/openvswitch/openvswitch
+copy_headers include/sparse $LOCAL_INCLUDE/openvswitch/sparse
+copy_headers include/sparse/arpa $LOCAL_INCLUDE/openvswitch/sparse/arpa
+copy_headers include/sparse/netinet $LOCAL_INCLUDE/openvswitch/sparse/netinet
+copy_headers include/sparse/sys $LOCAL_INCLUDE/openvswitch/sparse/sys
+copy_headers lib $LOCAL_INCLUDE/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 +171,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 +209,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
+/usr/local/include/openvswitch/*
-- 
1.7.9.5

_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to