diff mbox

[ovs-dev] Debian: Install libraries in Multi-Arch format

Message ID 20170518234946.56708-1-ben@skyportsystems.com
State Deferred
Headers show

Commit Message

Li,Rongqing via dev May 18, 2017, 11:49 p.m. UTC
From: Ben Warren <ben@skyportsystems.com>

The Debian 'Multi-Arch' feature moves all library files (*.a, *.so) to
an architecture-specific directory.  This allows libraries for multiple
architectures to co-exist on a host and simplifies cross-compilation.

For example, issuing the following command:

apt-get install openvswitch-dev:amd64 openvswitch-dev:mips64el

will place libraries as follows:

$ find /usr/lib/ -name libopenvswitch*
/usr/lib/mips64el-linux-gnuabi64/pkgconfig/libopenvswitch.pc
/usr/lib/mips64el-linux-gnuabi64/libopenvswitch.a
/usr/lib/mips64el-linux-gnuabi64/libopenvswitch.so
/usr/lib/x86_64-linux-gnu/pkgconfig/libopenvswitch.pc
/usr/lib/x86_64-linux-gnu/libopenvswitch.a
/usr/lib/x86_64-linux-gnu/libopenvswitch.so

Signed-off-by: Ben Warren <ben@skyportsystems.com>
---
 debian/compat                     | 2 +-
 debian/control                    | 8 +++++---
 debian/openvswitch-common.install | 2 +-
 debian/openvswitch-dev.install    | 6 +++---
 4 files changed, 10 insertions(+), 8 deletions(-)

Comments

Li,Rongqing via dev May 22, 2017, 4:25 p.m. UTC | #1
Pleas don’t apply this.  It turns out more work is required.

—Ben
> On May 18, 2017, at 4:49 PM, ben@skyportsystems.com wrote:
> 
> From: Ben Warren <ben@skyportsystems.com>
> 
> The Debian 'Multi-Arch' feature moves all library files (*.a, *.so) to
> an architecture-specific directory.  This allows libraries for multiple
> architectures to co-exist on a host and simplifies cross-compilation.
> 
> For example, issuing the following command:
> 
> apt-get install openvswitch-dev:amd64 openvswitch-dev:mips64el
> 
> will place libraries as follows:
> 
> $ find /usr/lib/ -name libopenvswitch*
> /usr/lib/mips64el-linux-gnuabi64/pkgconfig/libopenvswitch.pc
> /usr/lib/mips64el-linux-gnuabi64/libopenvswitch.a
> /usr/lib/mips64el-linux-gnuabi64/libopenvswitch.so
> /usr/lib/x86_64-linux-gnu/pkgconfig/libopenvswitch.pc
> /usr/lib/x86_64-linux-gnu/libopenvswitch.a
> /usr/lib/x86_64-linux-gnu/libopenvswitch.so
> 
> Signed-off-by: Ben Warren <ben@skyportsystems.com>
> ---
> debian/compat                     | 2 +-
> debian/control                    | 8 +++++---
> debian/openvswitch-common.install | 2 +-
> debian/openvswitch-dev.install    | 6 +++---
> 4 files changed, 10 insertions(+), 8 deletions(-)
> 
> diff --git a/debian/compat b/debian/compat
> index 45a4fb7..ec63514 100644
> --- a/debian/compat
> +++ b/debian/compat
> @@ -1 +1 @@
> -8
> +9
> diff --git a/debian/control b/debian/control
> index 0b75f2b..b8b14bc 100644
> --- a/debian/control
> +++ b/debian/control
> @@ -56,6 +56,7 @@ Description: Open vSwitch datapath module source - DKMS version
> 
> Package: openvswitch-common
> Architecture: linux-any
> +Multi-Arch: foreign
> Depends: openssl,
>          python (>= 2.7),
>          python-six,
> @@ -285,9 +286,10 @@ Description: Open vSwitch VTEP utilities
> 
> Package: openvswitch-dev
> Architecture: linux-any
> -Depends:
> - openvswitch-common (>= ${binary:Version}),
> - ${misc:Depends}
> +Multi-Arch: same
> +Depends: openvswitch-common (= ${binary:Version}),
> +         ${misc:Depends},
> +         ${shlibs: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
> diff --git a/debian/openvswitch-common.install b/debian/openvswitch-common.install
> index ebb7d5c..aa41204 100644
> --- a/debian/openvswitch-common.install
> +++ b/debian/openvswitch-common.install
> @@ -9,4 +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.*
> +usr/lib/*/lib*.so.*
> diff --git a/debian/openvswitch-dev.install b/debian/openvswitch-dev.install
> index 11791e4..ca3d22c 100644
> --- a/debian/openvswitch-dev.install
> +++ b/debian/openvswitch-dev.install
> @@ -1,6 +1,6 @@
> -usr/lib/lib*.so
> -usr/lib/lib*.a
> -usr/lib/pkgconfig
> +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
> -- 
> 2.6.4
>
diff mbox

Patch

diff --git a/debian/compat b/debian/compat
index 45a4fb7..ec63514 100644
--- a/debian/compat
+++ b/debian/compat
@@ -1 +1 @@ 
-8
+9
diff --git a/debian/control b/debian/control
index 0b75f2b..b8b14bc 100644
--- a/debian/control
+++ b/debian/control
@@ -56,6 +56,7 @@  Description: Open vSwitch datapath module source - DKMS version
 
 Package: openvswitch-common
 Architecture: linux-any
+Multi-Arch: foreign
 Depends: openssl,
          python (>= 2.7),
          python-six,
@@ -285,9 +286,10 @@  Description: Open vSwitch VTEP utilities
 
 Package: openvswitch-dev
 Architecture: linux-any
-Depends:
- openvswitch-common (>= ${binary:Version}),
- ${misc:Depends}
+Multi-Arch: same
+Depends: openvswitch-common (= ${binary:Version}),
+         ${misc:Depends},
+         ${shlibs: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
diff --git a/debian/openvswitch-common.install b/debian/openvswitch-common.install
index ebb7d5c..aa41204 100644
--- a/debian/openvswitch-common.install
+++ b/debian/openvswitch-common.install
@@ -9,4 +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.*
+usr/lib/*/lib*.so.*
diff --git a/debian/openvswitch-dev.install b/debian/openvswitch-dev.install
index 11791e4..ca3d22c 100644
--- a/debian/openvswitch-dev.install
+++ b/debian/openvswitch-dev.install
@@ -1,6 +1,6 @@ 
-usr/lib/lib*.so
-usr/lib/lib*.a
-usr/lib/pkgconfig
+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