aboutsummaryrefslogtreecommitdiffstats
path: root/patches/fuel-plugin-opendaylight/0002-opnfv-quagga-Build-for-UBUNTU_ARCH.patch
blob: a44222ab8e16636cb4003e2628bd8efcf1f57f33 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
From: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
Date: Mon, 4 Jul 2016 20:44:49 +0200
Subject: [PATCH] opnfv-quagga: Build for UBUNTU_ARCH.

ODL itself is mostly arch-indep, but its deps (e.g. opnfv-quagga
and friends) are not.

Introduce opnfv-quagga building/packing for multiple archs, listed
in UBUNTU_ARCH, which holds a space-separated list of target
arch(s), represented in `dpkg --print-architecture` format.
Only applicable when "BUILD_FOR=ubuntu".

FIXME(armband): For now, only native building and prebuilt debs
are supported (no cross-building).

Due to the design of opnfv-packaging repo, it is easier to:
- patch upstream sources to support native arm64 builds (see [1]);
- add prebuilt arm64 binaries to output dir in git repo (like amd64),
submitted as pull request upstream [2];

Until above OPNFV-QUAGGA changes land upstream and/or are refactored,
rely on forked repository that contains above patches [3] on
branch "stable/colorado", including prebuilt binaries (DEBs) for:
- amd64 (also available in upstream repo);
- arm64 (submitted upstream in [3]);

[1] https://github.com/nikolas-hermanns/opnfv-quagga-packaging/pull/1
[2] https://github.com/nikolas-hermanns/opnfv-quagga-packaging/pull/2
[3] https://github.com/alexandruavadanii/opnfv-quagga-packaging

Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
---
 pre_build_hook | 16 ++++++++++++++--
 1 file changed, 14 insertions(+), 2 deletions(-)

diff --git a/pre_build_hook b/pre_build_hook
index f973826..953e66c 100755
--- a/pre_build_hook
+++ b/pre_build_hook
@@ -41,9 +41,17 @@ NETWORKING_ODL_BRANCH=${NETWORKING_ODL_BRANCH:-stable/mitaka}
 OPNFV_QUAGGE_PACKAGING_REPO=${OPNFV_QUAGGE_PACKAGING_REPO:-https://github.com/nikolas-hermanns/opnfv-quagga-packaging}
 OPNFV_QUAGGE_PACKAGING_BRANCH=stable/colorado
 
-# For which systems odl package should be build
+# For which systems odl package should be built
 BUILD_FOR=${BUILD_FOR:-ubuntu}
 
+# For which architecture(s) package should be built
+# Only applicable when "BUILD_FOR=ubuntu"
+# ODL itself is mostly arch-indep, but its deps are not
+# All archs should be represented in `dpkg --print-architecture` format
+# UBUNTU_ARCH holds a space-separated list of target arch(s)
+# FIXME(armband): For now, only native building is supported!
+UBUNTU_ARCH=${UBUNTU_ARCH:-$(dpkg --print-architecture)}
+
 DIR="$(dirname `readlink -f $0`)"
 TMP_DIR="${DIR}/tmp"
 MODULES="${DIR}/deployment_scripts/puppet/modules"
@@ -74,7 +82,10 @@ function add_opnfv_quagga {
                 sudo apt-get -y install `cat requirements.txt`
                 make -j6
             fi
-            cp debian_package/* $path
+            # Filter only requested archs, bail on missing DEBs
+            for ARCH in ${UBUNTU_ARCH}; do
+                cp debian_package/*_${ARCH}.deb $path
+            done
         popd
     popd
 
type: 'ssh-rsa' replace_private_key: nova::policy::policies: nova-os_compute_api:servers:show:host_status: key: 'os_compute_api:servers:show:host_status' value: 'rule:admin_or_owner' neutron::policy::policies: neutron-admin_or_data_plane_int: key: 'admin_or_data_plane_int' value: 'rule:context_is_admin or role:data_plane_integrator' neutron-update_port:data_plane_status: key: 'update_port:data_plane_status' value: 'rule:admin_or_data_plane_int' nova::api::default_floating_pool: 'external' # VPP routing node, used for odl-fdio only. # value updated via lib/overcloud-deploy-functions.sh # opendaylight::vpp_routing_node: overcloud-novacompute-0.opnfvlf.org ControllerServices: - OS::TripleO::Services::CACerts - OS::TripleO::Services::CephMon - OS::TripleO::Services::CephOSD - OS::TripleO::Services::CephExternal - OS::TripleO::Services::CephRgw - OS::TripleO::Services::CinderApi - OS::TripleO::Services::CinderBackup - OS::TripleO::Services::CinderScheduler - OS::TripleO::Services::CinderVolume - OS::TripleO::Services::Kernel - OS::TripleO::Services::Keystone - OS::TripleO::Services::GlanceApi - OS::TripleO::Services::GlanceRegistry - OS::TripleO::Services::HeatApi - OS::TripleO::Services::HeatApiCfn - OS::TripleO::Services::HeatApiCloudwatch - OS::TripleO::Services::HeatEngine - OS::TripleO::Services::MySQL - OS::TripleO::Services::NeutronDhcpAgent - OS::TripleO::Services::NeutronL3Agent - OS::TripleO::Services::NeutronMetadataAgent - OS::TripleO::Services::NeutronApi - OS::TripleO::Services::NeutronCorePlugin - OS::TripleO::Services::NeutronOvsAgent - OS::TripleO::Services::NeutronSfcApi - OS::TripleO::Services::RabbitMQ - OS::TripleO::Services::HAproxy - OS::TripleO::Services::Keepalived - OS::TripleO::Services::Memcached - OS::TripleO::Services::Pacemaker - OS::TripleO::Services::Redis - OS::TripleO::Services::NovaConductor - OS::TripleO::Services::MongoDb - OS::TripleO::Services::NovaApi - OS::TripleO::Services::NovaMetadata - OS::TripleO::Services::NovaPlacement - OS::TripleO::Services::NovaScheduler - OS::TripleO::Services::NovaConsoleauth - OS::TripleO::Services::NovaVncProxy - OS::TripleO::Services::Ntp - OS::TripleO::Services::Snmp - OS::TripleO::Services::Timezone - OS::TripleO::Services::CeilometerApi - OS::TripleO::Services::CeilometerCollector - OS::TripleO::Services::CeilometerExpirer - OS::TripleO::Services::CeilometerAgentCentral - OS::TripleO::Services::CeilometerAgentNotification - OS::TripleO::Services::Horizon - OS::TripleO::Services::GnocchiApi - OS::TripleO::Services::GnocchiMetricd - OS::TripleO::Services::GnocchiStatsd - OS::TripleO::Services::ManilaApi - OS::TripleO::Services::ManilaScheduler - OS::TripleO::Services::ManilaBackendGeneric - OS::TripleO::Services::ManilaBackendNetapp - OS::TripleO::Services::ManilaBackendCephFs - OS::TripleO::Services::ManilaShare - OS::TripleO::Services::AodhApi - OS::TripleO::Services::AodhEvaluator - OS::TripleO::Services::AodhNotifier - OS::TripleO::Services::AodhListener - OS::TripleO::Services::SaharaApi - OS::TripleO::Services::SaharaEngine - OS::TripleO::Services::IronicApi - OS::TripleO::Services::IronicConductor - OS::TripleO::Services::NovaIronic - OS::TripleO::Services::TripleoPackages - OS::TripleO::Services::TripleoFirewall - OS::TripleO::Services::OpenDaylightApi - OS::TripleO::Services::OpenDaylightOvs # - OS::TripleO::Services::ONOSApi # - OS::TripleO::Services::ONOSOvs - OS::TripleO::Services::SensuClient - OS::TripleO::Services::FluentdClient - OS::TripleO::Services::Etcd # - OS::TripleO::Services::Gluon - OS::TripleO::Services::Tacker - OS::TripleO::Services::NeutronHoneycombAgent - OS::TripleO::Services::Congress - OS::TripleO::Services::NeutronVppAgent - OS::TripleO::Services::OVNDBs - OS::TripleO::Services::Vpp - OS::TripleO::Services::NeutronBgpvpnApi ComputeServices: - OS::TripleO::Services::Barometer - OS::TripleO::Services::CACerts - OS::TripleO::Services::CephClient - OS::TripleO::Services::CephOSD - OS::TripleO::Services::CephExternal - OS::TripleO::Services::Timezone - OS::TripleO::Services::Ntp - OS::TripleO::Services::Snmp - OS::TripleO::Services::NovaCompute - OS::TripleO::Services::NovaLibvirt - OS::TripleO::Services::Kernel - OS::TripleO::Services::ComputeNeutronCorePlugin - OS::TripleO::Services::ComputeNeutronOvsAgent - OS::TripleO::Services::ComputeCeilometerAgent - OS::TripleO::Services::ComputeNeutronL3Agent - OS::TripleO::Services::ComputeNeutronMetadataAgent - OS::TripleO::Services::TripleoPackages - OS::TripleO::Services::TripleoFirewall - OS::TripleO::Services::NeutronSriovAgent - OS::TripleO::Services::OpenDaylightOvs # - OS::TripleO::Services::ONOSOvs - OS::TripleO::Services::SensuClient - OS::TripleO::Services::FluentdClient - OS::TripleO::Services::NeutronHoneycombAgent - OS::TripleO::Services::NeutronVppAgent - OS::TripleO::Services::Vpp