[ovs-dev,v3] travis: support ppc64le builds
diff mbox series

Message ID 20191106192048.25039-1-dwilder@us.ibm.com
State New
Headers show
Series
  • [ovs-dev,v3] travis: support ppc64le builds
Related show

Commit Message

David Wilder Nov. 6, 2019, 7:20 p.m. UTC
Add support for travis-ci ppc64le builds.

- Updated matrix in .travis.yml to include an arch: ppc64le build.
- Move package install needed for 32bit builds to .travis/linux-prepare.sh.

To keep the total build time at an acceptable level only a single build
job is included in the matrix for ppc64le.

A build report example can be found here [1]
[0] http://travis-ci.org/
[1] https://travis-ci.org/djlwilder/ovs/builds/607851729

Signed-off-by: David Wilder <dwilder@us.ibm.com>
---
Addressed review comments:
- Cleaned up linux-prepare.sh (v2)
- Switch from os: linux-ppc64le to arch: ppc64le (v3)

 .travis.yml              | 5 +++--
 .travis/linux-prepare.sh | 5 ++++-
 2 files changed, 7 insertions(+), 3 deletions(-)

Comments

Yanqin Wei (Arm Technology China) Nov. 8, 2019, 10:02 a.m. UTC | #1
Hi David

> -----Original Message-----
> From: David Wilder <dwilder@us.ibm.com>
> Sent: Thursday, November 7, 2019 3:21 AM
> To: ovs-dev@openvswitch.org
> Cc: i.maximets@ovn.org; blp@ovn.org; Yanqin Wei (Arm Technology China)
> <Yanqin.Wei@arm.com>; wilder@us.ibm.com
> Subject: [PATCH v3] travis: support ppc64le builds
>
> Add support for travis-ci ppc64le builds.
>
> - Updated matrix in .travis.yml to include an arch: ppc64le build.
> - Move package install needed for 32bit builds to .travis/linux-prepare.sh.
>
> To keep the total build time at an acceptable level only a single build job is
> included in the matrix for ppc64le.
>
> A build report example can be found here [1] [0] http://travis-ci.org/ [1]
> https://travis-ci.org/djlwilder/ovs/builds/607851729
>
> Signed-off-by: David Wilder <dwilder@us.ibm.com>
> ---
> Addressed review comments:
> - Cleaned up linux-prepare.sh (v2)
> - Switch from os: linux-ppc64le to arch: ppc64le (v3)
>
>  .travis.yml              | 5 +++--
>  .travis/linux-prepare.sh | 5 ++++-
>  2 files changed, 7 insertions(+), 3 deletions(-)
>
> diff --git a/.travis.yml b/.travis.yml
> index 482efd2d1..308c09635 100644
> --- a/.travis.yml
> +++ b/.travis.yml
> @@ -14,7 +14,6 @@ addons:
>    apt:
>      packages:
>        - bc
> -      - gcc-multilib
>        - libssl-dev
>        - llvm-dev
>        - libjemalloc1
> @@ -26,7 +25,6 @@ addons:
>        - libelf-dev
>        - selinux-policy-dev
>        - libunbound-dev
> -      - libunbound-dev:i386
>        - libunwind-dev
>
>  before_install: ./.travis/${TRAVIS_OS_NAME}-prepare.sh
> @@ -52,6 +50,9 @@ matrix:
>      - os: osx
>        compiler: clang
>        env: OPTS="--disable-ssl"
> +    - arch: ppc64le
> +      compiler: gcc
> +      env: OPTS="--disable-ssl"
>
>  script: ./.travis/${TRAVIS_OS_NAME}-build.sh $OPTS
>
> diff --git a/.travis/linux-prepare.sh b/.travis/linux-prepare.sh index
> 9e3ac0df7..d66f480c6 100755
> --- a/.travis/linux-prepare.sh
> +++ b/.travis/linux-prepare.sh
> @@ -18,7 +18,10 @@ pip install --user --upgrade docutils  if [ "$M32" ]; then
>      # 32-bit and 64-bit libunwind can not be installed at the same time.
>      # This will remove the 64-bit libunwind and install 32-bit version.
> -    sudo apt-get install -y libunwind-dev:i386
> +    sudo apt-get install -y \
> +         gcc-multilib \
> +         libunwind-dev:i386 \
> +         libunbound-dev:i386
[Yanqin] They are x86 specific dependency. It is better to use  "$TRAVIS_ARCH" == "amd64" condition.
[Yanqin]  Is gcc-multilib only required for 32bits build?
>  fi
>
>  # IPv6 is supported by kernel but disabled in TravisCI images:
> --
> 2.23.0.162.gf1d4a28

IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Thank you.
David Wilder Nov. 8, 2019, 6:26 p.m. UTC | #2
Hi Wei

On 2019-11-08 02:02, Yanqin Wei (Arm Technology China) wrote:
> Hi David
> 
>> -----Original Message-----
>> From: David Wilder <dwilder@us.ibm.com>
>> Sent: Thursday, November 7, 2019 3:21 AM
>> To: ovs-dev@openvswitch.org
>> Cc: i.maximets@ovn.org; blp@ovn.org; Yanqin Wei (Arm Technology China)
>> <Yanqin.Wei@arm.com>; wilder@us.ibm.com
>> Subject: [PATCH v3] travis: support ppc64le builds
>> 
>> Add support for travis-ci ppc64le builds.
>> 
>> - Updated matrix in .travis.yml to include an arch: ppc64le build.
>> - Move package install needed for 32bit builds to 
>> .travis/linux-prepare.sh.
>> 
>> To keep the total build time at an acceptable level only a single 
>> build job is
>> included in the matrix for ppc64le.
>> 
>> A build report example can be found here [1] [0] 
>> https://urldefense.proofpoint.com/v2/url?u=http-3A__travis-2Dci.org_&d=DwIFAg&c=jf_iaSHvJObTbx-siA1ZOg&r=7ndxyKjH9UrBD68Us2WP1wI4BwEBQbeAyz8i_vwCCaI&m=6QTaKFSaP0A5SgshVJPuewRjtEH32pQD2AUjoEnZyTo&s=IILKkh0Orqnp1nKjHWWCkXSOMpBYjG9WKs8l34TyPts&e= 
>>  [1]
>> https://urldefense.proofpoint.com/v2/url?u=https-3A__travis-2Dci.org_djlwilder_ovs_builds_607851729&d=DwIFAg&c=jf_iaSHvJObTbx-siA1ZOg&r=7ndxyKjH9UrBD68Us2WP1wI4BwEBQbeAyz8i_vwCCaI&m=6QTaKFSaP0A5SgshVJPuewRjtEH32pQD2AUjoEnZyTo&s=mVCcGr-NWlZzQn2xSnackkm2Aawg7iyvYEyh4lMpjFw&e=
>> 
>> Signed-off-by: David Wilder <dwilder@us.ibm.com>
>> ---
>> Addressed review comments:
>> - Cleaned up linux-prepare.sh (v2)
>> - Switch from os: linux-ppc64le to arch: ppc64le (v3)
>> 
>>  .travis.yml              | 5 +++--
>>  .travis/linux-prepare.sh | 5 ++++-
>>  2 files changed, 7 insertions(+), 3 deletions(-)
>> 
>> diff --git a/.travis.yml b/.travis.yml
>> index 482efd2d1..308c09635 100644
>> --- a/.travis.yml
>> +++ b/.travis.yml
>> @@ -14,7 +14,6 @@ addons:
>>    apt:
>>      packages:
>>        - bc
>> -      - gcc-multilib
>>        - libssl-dev
>>        - llvm-dev
>>        - libjemalloc1
>> @@ -26,7 +25,6 @@ addons:
>>        - libelf-dev
>>        - selinux-policy-dev
>>        - libunbound-dev
>> -      - libunbound-dev:i386
>>        - libunwind-dev
>> 
>>  before_install: ./.travis/${TRAVIS_OS_NAME}-prepare.sh
>> @@ -52,6 +50,9 @@ matrix:
>>      - os: osx
>>        compiler: clang
>>        env: OPTS="--disable-ssl"
>> +    - arch: ppc64le
>> +      compiler: gcc
>> +      env: OPTS="--disable-ssl"
>> 
>>  script: ./.travis/${TRAVIS_OS_NAME}-build.sh $OPTS
>> 
>> diff --git a/.travis/linux-prepare.sh b/.travis/linux-prepare.sh index
>> 9e3ac0df7..d66f480c6 100755
>> --- a/.travis/linux-prepare.sh
>> +++ b/.travis/linux-prepare.sh
>> @@ -18,7 +18,10 @@ pip install --user --upgrade docutils  if [ "$M32" 
>> ]; then
>>      # 32-bit and 64-bit libunwind can not be installed at the same 
>> time.
>>      # This will remove the 64-bit libunwind and install 32-bit 
>> version.
>> -    sudo apt-get install -y libunwind-dev:i386
>> +    sudo apt-get install -y \
>> +         gcc-multilib \
>> +         libunwind-dev:i386 \
>> +         libunbound-dev:i386
> [Yanqin] They are x86 specific dependency. It is better to use
> "$TRAVIS_ARCH" == "amd64" condition.

[ wilder ] In this case it is not needed as ppc64le is not supporting 
32bit builds (not in the matrix).
If arm64 will support a 32bit build, then you will need to modify this 
section anyway,  to install arm packages.

> [Yanqin]  Is gcc-multilib only required for 32bits build?

[ wilder ] Yes.

>>  fi
>> 
>>  # IPv6 is supported by kernel but disabled in TravisCI images:
>> --
>> 2.23.0.162.gf1d4a28
> 
> IMPORTANT NOTICE: The contents of this email and any attachments are
> confidential and may also be privileged. If you are not the intended
> recipient, please notify the sender immediately and do not disclose
> the contents to any other person, use it for any purpose, or store or
> copy the information in any medium. Thank you.
William Tu Nov. 8, 2019, 10:40 p.m. UTC | #3
On Wed, Nov 06, 2019 at 11:20:48AM -0800, David Wilder wrote:
> Add support for travis-ci ppc64le builds.
> 
> - Updated matrix in .travis.yml to include an arch: ppc64le build.
> - Move package install needed for 32bit builds to .travis/linux-prepare.sh.
> 
> To keep the total build time at an acceptable level only a single build
> job is included in the matrix for ppc64le.
> 
> A build report example can be found here [1]
> [0] http://travis-ci.org/
> [1] https://travis-ci.org/djlwilder/ovs/builds/607851729
> 
> Signed-off-by: David Wilder <dwilder@us.ibm.com>
> ---
LGTM,
Acked-by: William Tu <u9012063@gmail.com>
Ilya Maximets Nov. 8, 2019, 10:52 p.m. UTC | #4
On 06.11.2019 20:20, David Wilder wrote:
> Add support for travis-ci ppc64le builds.
> 
> - Updated matrix in .travis.yml to include an arch: ppc64le build.
> - Move package install needed for 32bit builds to .travis/linux-prepare.sh.
> 
> To keep the total build time at an acceptable level only a single build
> job is included in the matrix for ppc64le.
> 
> A build report example can be found here [1]
> [0] http://travis-ci.org/
> [1] https://travis-ci.org/djlwilder/ovs/builds/607851729
> 
> Signed-off-by: David Wilder <dwilder@us.ibm.com>
> ---
> Addressed review comments:
> - Cleaned up linux-prepare.sh (v2)
> - Switch from os: linux-ppc64le to arch: ppc64le (v3)

What a wonderful world of undocumented features. :)

Anyway, I just tried this patch and it fails for me because of missing pip:

https://travis-ci.org/igsilya/ovs/jobs/609402867

pip install --disable-pip-version-check --user six flake8 hacking
./.travis/linux-prepare.sh: line 15: pip: command not found

Restarting the job doesn't help.

I'm wondering what is the base image and who controls preinstalled software?
Maybe it makes sense to hold on until travis will start supporting ppc64le
officially?

Best regards, Ilya Maximets.
David Wilder Nov. 9, 2019, midnight UTC | #5
On 2019-11-08 14:52, Ilya Maximets wrote:
> On 06.11.2019 20:20, David Wilder wrote:
>> Add support for travis-ci ppc64le builds.
>> 
>> - Updated matrix in .travis.yml to include an arch: ppc64le build.
>> - Move package install needed for 32bit builds to 
>> .travis/linux-prepare.sh.
>> 
>> To keep the total build time at an acceptable level only a single 
>> build
>> job is included in the matrix for ppc64le.
>> 
>> A build report example can be found here [1]
>> [0] 
>> https://urldefense.proofpoint.com/v2/url?u=http-3A__travis-2Dci.org_&d=DwICaQ&c=jf_iaSHvJObTbx-siA1ZOg&r=7ndxyKjH9UrBD68Us2WP1wI4BwEBQbeAyz8i_vwCCaI&m=_UtshYcJsj4Pt3b9hfgEiyaEIT3j9gPEIgmBatCEqCo&s=r0fBOs-21CKcV4kyZGnzh3fcjrpR8caYSl8K2i1St54&e= 
>> [1] 
>> https://urldefense.proofpoint.com/v2/url?u=https-3A__travis-2Dci.org_djlwilder_ovs_builds_607851729&d=DwICaQ&c=jf_iaSHvJObTbx-siA1ZOg&r=7ndxyKjH9UrBD68Us2WP1wI4BwEBQbeAyz8i_vwCCaI&m=_UtshYcJsj4Pt3b9hfgEiyaEIT3j9gPEIgmBatCEqCo&s=7t2rzVasH7Xq_R7jWkWZO9rkgm4KHMH-WavBzCRbF74&e= 
>> Signed-off-by: David Wilder <dwilder@us.ibm.com>
>> ---
>> Addressed review comments:
>> - Cleaned up linux-prepare.sh (v2)
>> - Switch from os: linux-ppc64le to arch: ppc64le (v3)
> 
> What a wonderful world of undocumented features. :)
> 
> Anyway, I just tried this patch and it fails for me because of missing 
> pip:
> 
> https://urldefense.proofpoint.com/v2/url?u=https-3A__travis-2Dci.org_igsilya_ovs_jobs_609402867&d=DwICaQ&c=jf_iaSHvJObTbx-siA1ZOg&r=7ndxyKjH9UrBD68Us2WP1wI4BwEBQbeAyz8i_vwCCaI&m=_UtshYcJsj4Pt3b9hfgEiyaEIT3j9gPEIgmBatCEqCo&s=PF1oO_KkZFd_RRKToj6UBN2t2YhvTVE5XnVD1GF9u60&e=
> 
> pip install --disable-pip-version-check --user six flake8 hacking
> ./.travis/linux-prepare.sh: line 15: pip: command not found
> 
> Restarting the job doesn't help.
> 
> I'm wondering what is the base image and who controls preinstalled 
> software?
> Maybe it makes sense to hold on until travis will start supporting 
> ppc64le
> officially?


That is a bummer, I am seeing that error now as well, it worked 
yesterday :(
I agree we should hold off.  I will let you know if I figure it out.

> 
> Best regards, Ilya Maximets.
David Wilder Nov. 12, 2019, 5:57 p.m. UTC | #6
On 2019-11-08 14:52, Ilya Maximets wrote:
> On 06.11.2019 20:20, David Wilder wrote:
>> Add support for travis-ci ppc64le builds.
>> 
>> - Updated matrix in .travis.yml to include an arch: ppc64le build.
>> - Move package install needed for 32bit builds to 
>> .travis/linux-prepare.sh.
>> 
>> To keep the total build time at an acceptable level only a single 
>> build
>> job is included in the matrix for ppc64le.
>> 
>> A build report example can be found here [1]
>> [0] 
>> https://urldefense.proofpoint.com/v2/url?u=http-3A__travis-2Dci.org_&d=DwICaQ&c=jf_iaSHvJObTbx-siA1ZOg&r=7ndxyKjH9UrBD68Us2WP1wI4BwEBQbeAyz8i_vwCCaI&m=_UtshYcJsj4Pt3b9hfgEiyaEIT3j9gPEIgmBatCEqCo&s=r0fBOs-21CKcV4kyZGnzh3fcjrpR8caYSl8K2i1St54&e= 
>> [1] 
>> https://urldefense.proofpoint.com/v2/url?u=https-3A__travis-2Dci.org_djlwilder_ovs_builds_607851729&d=DwICaQ&c=jf_iaSHvJObTbx-siA1ZOg&r=7ndxyKjH9UrBD68Us2WP1wI4BwEBQbeAyz8i_vwCCaI&m=_UtshYcJsj4Pt3b9hfgEiyaEIT3j9gPEIgmBatCEqCo&s=7t2rzVasH7Xq_R7jWkWZO9rkgm4KHMH-WavBzCRbF74&e= 
>> Signed-off-by: David Wilder <dwilder@us.ibm.com>
>> ---
>> Addressed review comments:
>> - Cleaned up linux-prepare.sh (v2)
>> - Switch from os: linux-ppc64le to arch: ppc64le (v3)
> 
> What a wonderful world of undocumented features. :)
> 
> Anyway, I just tried this patch and it fails for me because of missing 
> pip:
> 
> https://urldefense.proofpoint.com/v2/url?u=https-3A__travis-2Dci.org_igsilya_ovs_jobs_609402867&d=DwICaQ&c=jf_iaSHvJObTbx-siA1ZOg&r=7ndxyKjH9UrBD68Us2WP1wI4BwEBQbeAyz8i_vwCCaI&m=_UtshYcJsj4Pt3b9hfgEiyaEIT3j9gPEIgmBatCEqCo&s=PF1oO_KkZFd_RRKToj6UBN2t2YhvTVE5XnVD1GF9u60&e=
> 
> pip install --disable-pip-version-check --user six flake8 hacking
> ./.travis/linux-prepare.sh: line 15: pip: command not found
> 
> Restarting the job doesn't help.
> 
> I'm wondering what is the base image and who controls preinstalled 
> software?
> Maybe it makes sense to hold on until travis will start supporting 
> ppc64le
> officially?
> 
> Best regards, Ilya Maximets.

Unfortunately it not just ppc the arm64 image has the same issue :)  I 
added a arm64 build on this attempt.

https://travis-ci.org/djlwilder/ovs/builds/610517731

I will attempt to adjust the package list.
Ilya Maximets Nov. 12, 2019, 7:30 p.m. UTC | #7
On 12.11.2019 18:57, dwilder wrote:
> On 2019-11-08 14:52, Ilya Maximets wrote:
>> On 06.11.2019 20:20, David Wilder wrote:
>>> Add support for travis-ci ppc64le builds.
>>>
>>> - Updated matrix in .travis.yml to include an arch: ppc64le build.
>>> - Move package install needed for 32bit builds to .travis/linux-prepare.sh.
>>>
>>> To keep the total build time at an acceptable level only a single build
>>> job is included in the matrix for ppc64le.
>>>
>>> A build report example can be found here [1]
>>> [0] https://urldefense.proofpoint.com/v2/url?u=http-3A__travis-2Dci.org_&d=DwICaQ&c=jf_iaSHvJObTbx-siA1ZOg&r=7ndxyKjH9UrBD68Us2WP1wI4BwEBQbeAyz8i_vwCCaI&m=_UtshYcJsj4Pt3b9hfgEiyaEIT3j9gPEIgmBatCEqCo&s=r0fBOs-21CKcV4kyZGnzh3fcjrpR8caYSl8K2i1St54&e= [1] https://urldefense.proofpoint.com/v2/url?u=https-3A__travis-2Dci.org_djlwilder_ovs_builds_607851729&d=DwICaQ&c=jf_iaSHvJObTbx-siA1ZOg&r=7ndxyKjH9UrBD68Us2WP1wI4BwEBQbeAyz8i_vwCCaI&m=_UtshYcJsj4Pt3b9hfgEiyaEIT3j9gPEIgmBatCEqCo&s=7t2rzVasH7Xq_R7jWkWZO9rkgm4KHMH-WavBzCRbF74&e= Signed-off-by: David Wilder <dwilder@us.ibm.com>
>>> ---
>>> Addressed review comments:
>>> - Cleaned up linux-prepare.sh (v2)
>>> - Switch from os: linux-ppc64le to arch: ppc64le (v3)
>>
>> What a wonderful world of undocumented features. :)
>>
>> Anyway, I just tried this patch and it fails for me because of missing pip:
>>
>> https://urldefense.proofpoint.com/v2/url?u=https-3A__travis-2Dci.org_igsilya_ovs_jobs_609402867&d=DwICaQ&c=jf_iaSHvJObTbx-siA1ZOg&r=7ndxyKjH9UrBD68Us2WP1wI4BwEBQbeAyz8i_vwCCaI&m=_UtshYcJsj4Pt3b9hfgEiyaEIT3j9gPEIgmBatCEqCo&s=PF1oO_KkZFd_RRKToj6UBN2t2YhvTVE5XnVD1GF9u60&e=
>>
>> pip install --disable-pip-version-check --user six flake8 hacking
>> ./.travis/linux-prepare.sh: line 15: pip: command not found
>>
>> Restarting the job doesn't help.
>>
>> I'm wondering what is the base image and who controls preinstalled software?
>> Maybe it makes sense to hold on until travis will start supporting ppc64le
>> officially?
>>
>> Best regards, Ilya Maximets.
> 
> Unfortunately it not just ppc the arm64 image has the same issue :)  I added a arm64 build on this attempt.
> 
> https://travis-ci.org/djlwilder/ovs/builds/610517731
> 
> I will attempt to adjust the package list.

I think, you could just report this to TravisCI support and see what they
will answer.  It'll be much better if they will just update their images.

And the good news that ppc64le is officially supported now:
https://blog.travis-ci.com/2019-11-12-multi-cpu-architecture-ibm-power-ibm-z

Best regards, Ilya Maximets.
David Wilder Nov. 13, 2019, 12:28 a.m. UTC | #8
On 2019-11-12 11:30, Ilya Maximets wrote:
> On 12.11.2019 18:57, dwilder wrote:
>> On 2019-11-08 14:52, Ilya Maximets wrote:
>>> On 06.11.2019 20:20, David Wilder wrote:
>>>> Add support for travis-ci ppc64le builds.
>>>> 
>>>> - Updated matrix in .travis.yml to include an arch: ppc64le build.
>>>> - Move package install needed for 32bit builds to 
>>>> .travis/linux-prepare.sh.
>>>> 
>>>> To keep the total build time at an acceptable level only a single 
>>>> build
>>>> job is included in the matrix for ppc64le.
>>>> 
>>>> A build report example can be found here [1]
>>>> [0] 
>>>> https://urldefense.proofpoint.com/v2/url?u=http-3A__travis-2Dci.org_&d=DwICaQ&c=jf_iaSHvJObTbx-siA1ZOg&r=7ndxyKjH9UrBD68Us2WP1wI4BwEBQbeAyz8i_vwCCaI&m=_UtshYcJsj4Pt3b9hfgEiyaEIT3j9gPEIgmBatCEqCo&s=r0fBOs-21CKcV4kyZGnzh3fcjrpR8caYSl8K2i1St54&e= 
>>>> [1] 
>>>> https://urldefense.proofpoint.com/v2/url?u=https-3A__travis-2Dci.org_djlwilder_ovs_builds_607851729&d=DwICaQ&c=jf_iaSHvJObTbx-siA1ZOg&r=7ndxyKjH9UrBD68Us2WP1wI4BwEBQbeAyz8i_vwCCaI&m=_UtshYcJsj4Pt3b9hfgEiyaEIT3j9gPEIgmBatCEqCo&s=7t2rzVasH7Xq_R7jWkWZO9rkgm4KHMH-WavBzCRbF74&e= 
>>>> Signed-off-by: David Wilder <dwilder@us.ibm.com>
>>>> ---
>>>> Addressed review comments:
>>>> - Cleaned up linux-prepare.sh (v2)
>>>> - Switch from os: linux-ppc64le to arch: ppc64le (v3)
>>> 
>>> What a wonderful world of undocumented features. :)
>>> 
>>> Anyway, I just tried this patch and it fails for me because of 
>>> missing pip:
>>> 
>>> https://urldefense.proofpoint.com/v2/url?u=https-3A__travis-2Dci.org_igsilya_ovs_jobs_609402867&d=DwICaQ&c=jf_iaSHvJObTbx-siA1ZOg&r=7ndxyKjH9UrBD68Us2WP1wI4BwEBQbeAyz8i_vwCCaI&m=_UtshYcJsj4Pt3b9hfgEiyaEIT3j9gPEIgmBatCEqCo&s=PF1oO_KkZFd_RRKToj6UBN2t2YhvTVE5XnVD1GF9u60&e=
>>> 
>>> pip install --disable-pip-version-check --user six flake8 hacking
>>> ./.travis/linux-prepare.sh: line 15: pip: command not found
>>> 
>>> Restarting the job doesn't help.
>>> 
>>> I'm wondering what is the base image and who controls preinstalled 
>>> software?
>>> Maybe it makes sense to hold on until travis will start supporting 
>>> ppc64le
>>> officially?
>>> 
>>> Best regards, Ilya Maximets.
>> 
>> Unfortunately it not just ppc the arm64 image has the same issue :)  
>> I added a arm64 build on this attempt.
>> 
>> https://urldefense.proofpoint.com/v2/url?u=https-3A__travis-2Dci.org_djlwilder_ovs_builds_610517731&d=DwIDaQ&c=jf_iaSHvJObTbx-siA1ZOg&r=7ndxyKjH9UrBD68Us2WP1wI4BwEBQbeAyz8i_vwCCaI&m=rVTSRTh9jExG_mX8boqA-OQcZkWmbO2g7TjgtUe6jws&s=sCvTr8MwXrqa7AEOs60tuqnquBqbRKlp_7-WacGzJWc&e=
>> 
>> I will attempt to adjust the package list.
> 
> I think, you could just report this to TravisCI support and see what 
> they
> will answer.  It'll be much better if they will just update their 
> images.
> 
> And the good news that ppc64le is officially supported now:
> https://urldefense.proofpoint.com/v2/url?u=https-3A__blog.travis-2Dci.com_2019-2D11-2D12-2Dmulti-2Dcpu-2Darchitecture-2Dibm-2Dpower-2Dibm-2Dz&d=DwIDaQ&c=jf_iaSHvJObTbx-siA1ZOg&r=7ndxyKjH9UrBD68Us2WP1wI4BwEBQbeAyz8i_vwCCaI&m=rVTSRTh9jExG_mX8boqA-OQcZkWmbO2g7TjgtUe6jws&s=CRYw9o6At3rFT_gd_5r1Uw07mv_SEPvQ6LgBLfMyqgg&e=

That is great news!
I reported the issue to travis:
https://travis-ci.community/t/pip-is-not-installed-in-ppc64le-and-arm64-images/5902?u=djlwilder

I added a workaround if we need it. This is my latest travis run.
https://www.travis-ci.org/djlwilder/ovs/builds/611123734
Lance Yang (Arm Technology China) Nov. 13, 2019, 1:24 a.m. UTC | #9
Hi,

For pip missing issue, we have a workaround.  In .travis/linux-prepare.sh. You can install pip or something else with package management commands.

For arm64 on travis, we check the environment variables in the container and found a variable called "TRAVIS_ARCH". Thus we can use this variable to install specific software for a specific CPU architecture.

You can find a successful build here: https://travis-ci.org/yzyuestc/ovs/jobs/610716477

-----Original Message-----
From: ovs-dev-bounces@openvswitch.org <ovs-dev-bounces@openvswitch.org> On Behalf Of dwilder
Sent: Wednesday, November 13, 2019 8:29 AM
To: Ilya Maximets <i.maximets@ovn.org>
Cc: ovs-dev@openvswitch.org; wilder@us.ibm.com
Subject: Re: [ovs-dev] [PATCH v3] travis: support ppc64le builds

On 2019-11-12 11:30, Ilya Maximets wrote:
> On 12.11.2019 18:57, dwilder wrote:
>> On 2019-11-08 14:52, Ilya Maximets wrote:
>>> On 06.11.2019 20:20, David Wilder wrote:
>>>> Add support for travis-ci ppc64le builds.
>>>>
>>>> - Updated matrix in .travis.yml to include an arch: ppc64le build.
>>>> - Move package install needed for 32bit builds to
>>>> .travis/linux-prepare.sh.
>>>>
>>>> To keep the total build time at an acceptable level only a single
>>>> build job is included in the matrix for ppc64le.
>>>>
>>>> A build report example can be found here [1] [0]
>>>> https://urldefense.proofpoint.com/v2/url?u=http-3A__travis-2Dci.org
>>>> _&d=DwICaQ&c=jf_iaSHvJObTbx-siA1ZOg&r=7ndxyKjH9UrBD68Us2WP1wI4BwEBQ
>>>> beAyz8i_vwCCaI&m=_UtshYcJsj4Pt3b9hfgEiyaEIT3j9gPEIgmBatCEqCo&s=r0fB
>>>> Os-21CKcV4kyZGnzh3fcjrpR8caYSl8K2i1St54&e=
>>>> [1]
>>>> https://urldefense.proofpoint.com/v2/url?u=https-3A__travis-2Dci.or
>>>> g_djlwilder_ovs_builds_607851729&d=DwICaQ&c=jf_iaSHvJObTbx-siA1ZOg&
>>>> r=7ndxyKjH9UrBD68Us2WP1wI4BwEBQbeAyz8i_vwCCaI&m=_UtshYcJsj4Pt3b9hfg
>>>> EiyaEIT3j9gPEIgmBatCEqCo&s=7t2rzVasH7Xq_R7jWkWZO9rkgm4KHMH-WavBzCRb
>>>> F74&e=
>>>> Signed-off-by: David Wilder <dwilder@us.ibm.com>
>>>> ---
>>>> Addressed review comments:
>>>> - Cleaned up linux-prepare.sh (v2)
>>>> - Switch from os: linux-ppc64le to arch: ppc64le (v3)
>>>
>>> What a wonderful world of undocumented features. :)
>>>
>>> Anyway, I just tried this patch and it fails for me because of
>>> missing pip:
>>>
>>> https://urldefense.proofpoint.com/v2/url?u=https-3A__travis-2Dci.org
>>> _igsilya_ovs_jobs_609402867&d=DwICaQ&c=jf_iaSHvJObTbx-siA1ZOg&r=7ndx
>>> yKjH9UrBD68Us2WP1wI4BwEBQbeAyz8i_vwCCaI&m=_UtshYcJsj4Pt3b9hfgEiyaEIT
>>> 3j9gPEIgmBatCEqCo&s=PF1oO_KkZFd_RRKToj6UBN2t2YhvTVE5XnVD1GF9u60&e=
>>>
>>> pip install --disable-pip-version-check --user six flake8 hacking
>>> ./.travis/linux-prepare.sh: line 15: pip: command not found
>>>
>>> Restarting the job doesn't help.
>>>
>>> I'm wondering what is the base image and who controls preinstalled
>>> software?
>>> Maybe it makes sense to hold on until travis will start supporting
>>> ppc64le officially?
>>>
>>> Best regards, Ilya Maximets.
>>
>> Unfortunately it not just ppc the arm64 image has the same issue :) I
>> added a arm64 build on this attempt.
>>
>> https://urldefense.proofpoint.com/v2/url?u=https-3A__travis-2Dci.org_
>> djlwilder_ovs_builds_610517731&d=DwIDaQ&c=jf_iaSHvJObTbx-siA1ZOg&r=7n
>> dxyKjH9UrBD68Us2WP1wI4BwEBQbeAyz8i_vwCCaI&m=rVTSRTh9jExG_mX8boqA-OQcZ
>> kWmbO2g7TjgtUe6jws&s=sCvTr8MwXrqa7AEOs60tuqnquBqbRKlp_7-WacGzJWc&e=
>>
>> I will attempt to adjust the package list.
>
> I think, you could just report this to TravisCI support and see what
> they will answer.  It'll be much better if they will just update their
> images.
>
> And the good news that ppc64le is officially supported now:
> https://urldefense.proofpoint.com/v2/url?u=https-3A__blog.travis-2Dci.
> com_2019-2D11-2D12-2Dmulti-2Dcpu-2Darchitecture-2Dibm-2Dpower-2Dibm-2D
> z&d=DwIDaQ&c=jf_iaSHvJObTbx-siA1ZOg&r=7ndxyKjH9UrBD68Us2WP1wI4BwEBQbeA
> yz8i_vwCCaI&m=rVTSRTh9jExG_mX8boqA-OQcZkWmbO2g7TjgtUe6jws&s=CRYw9o6At3
> rFT_gd_5r1Uw07mv_SEPvQ6LgBLfMyqgg&e=

That is great news!
I reported the issue to travis:
https://travis-ci.community/t/pip-is-not-installed-in-ppc64le-and-arm64-images/5902?u=djlwilder

I added a workaround if we need it. This is my latest travis run.
https://www.travis-ci.org/djlwilder/ovs/builds/611123734
David Wilder Nov. 13, 2019, 6:16 p.m. UTC | #10
On 2019-11-12 17:24, Lance Yang (Arm Technology China) wrote:
> Hi,
> 
> For pip missing issue, we have a workaround.  In
> .travis/linux-prepare.sh. You can install pip or something else with
> package management commands.
> 
> For arm64 on travis, we check the environment variables in the
> container and found a variable called "TRAVIS_ARCH". Thus we can use
> this variable to install specific software for a specific CPU
> architecture.
> 
> You can find a successful build here:
> https://urldefense.proofpoint.com/v2/url?u=https-3A__travis-2Dci.org_yzyuestc_ovs_jobs_610716477&d=DwIGaQ&c=jf_iaSHvJObTbx-siA1ZOg&r=7ndxyKjH9UrBD68Us2WP1wI4BwEBQbeAyz8i_vwCCaI&m=WN9SDoyPaU_O5oa3DAKsM2wYQpKnc2bhF_O-3r50JVs&s=p5lQOFy_H4apDm3OJqyJFVo04orvtxDBtLgMzLs0cZ4&e=
> 

Thank you for your workaround Lance.  It would be best if the multi-arch 
images were congruent. I fear this may be an ongoing issue as distro's 
content can very between architectures. I am waiting for travis's 
response on the issue. I will submit an update to my ppc64le commit in a 
few days if travis cant resolve it.

> -----Original Message-----
> From: ovs-dev-bounces@openvswitch.org
> <ovs-dev-bounces@openvswitch.org> On Behalf Of dwilder
> Sent: Wednesday, November 13, 2019 8:29 AM
> To: Ilya Maximets <i.maximets@ovn.org>
> Cc: ovs-dev@openvswitch.org; wilder@us.ibm.com
> Subject: Re: [ovs-dev] [PATCH v3] travis: support ppc64le builds
> 
> On 2019-11-12 11:30, Ilya Maximets wrote:
>> On 12.11.2019 18:57, dwilder wrote:
>>> On 2019-11-08 14:52, Ilya Maximets wrote:
>>>> On 06.11.2019 20:20, David Wilder wrote:
>>>>> Add support for travis-ci ppc64le builds.
>>>>> 
>>>>> - Updated matrix in .travis.yml to include an arch: ppc64le build.
>>>>> - Move package install needed for 32bit builds to
>>>>> .travis/linux-prepare.sh.
>>>>> 
>>>>> To keep the total build time at an acceptable level only a single
>>>>> build job is included in the matrix for ppc64le.
>>>>> 
>>>>> A build report example can be found here [1] [0]
>>>>> https://urldefense.proofpoint.com/v2/url?u=http-3A__travis-2Dci.org
>>>>> _&d=DwICaQ&c=jf_iaSHvJObTbx-siA1ZOg&r=7ndxyKjH9UrBD68Us2WP1wI4BwEBQ
>>>>> beAyz8i_vwCCaI&m=_UtshYcJsj4Pt3b9hfgEiyaEIT3j9gPEIgmBatCEqCo&s=r0fB
>>>>> Os-21CKcV4kyZGnzh3fcjrpR8caYSl8K2i1St54&e=
>>>>> [1]
>>>>> https://urldefense.proofpoint.com/v2/url?u=https-3A__travis-2Dci.or
>>>>> g_djlwilder_ovs_builds_607851729&d=DwICaQ&c=jf_iaSHvJObTbx-siA1ZOg&
>>>>> r=7ndxyKjH9UrBD68Us2WP1wI4BwEBQbeAyz8i_vwCCaI&m=_UtshYcJsj4Pt3b9hfg
>>>>> EiyaEIT3j9gPEIgmBatCEqCo&s=7t2rzVasH7Xq_R7jWkWZO9rkgm4KHMH-WavBzCRb
>>>>> F74&e=
>>>>> Signed-off-by: David Wilder <dwilder@us.ibm.com>
>>>>> ---
>>>>> Addressed review comments:
>>>>> - Cleaned up linux-prepare.sh (v2)
>>>>> - Switch from os: linux-ppc64le to arch: ppc64le (v3)
>>>> 
>>>> What a wonderful world of undocumented features. :)
>>>> 
>>>> Anyway, I just tried this patch and it fails for me because of
>>>> missing pip:
>>>> 
>>>> https://urldefense.proofpoint.com/v2/url?u=https-3A__travis-2Dci.org
>>>> _igsilya_ovs_jobs_609402867&d=DwICaQ&c=jf_iaSHvJObTbx-siA1ZOg&r=7ndx
>>>> yKjH9UrBD68Us2WP1wI4BwEBQbeAyz8i_vwCCaI&m=_UtshYcJsj4Pt3b9hfgEiyaEIT
>>>> 3j9gPEIgmBatCEqCo&s=PF1oO_KkZFd_RRKToj6UBN2t2YhvTVE5XnVD1GF9u60&e=
>>>> 
>>>> pip install --disable-pip-version-check --user six flake8 hacking
>>>> ./.travis/linux-prepare.sh: line 15: pip: command not found
>>>> 
>>>> Restarting the job doesn't help.
>>>> 
>>>> I'm wondering what is the base image and who controls preinstalled
>>>> software?
>>>> Maybe it makes sense to hold on until travis will start supporting
>>>> ppc64le officially?
>>>> 
>>>> Best regards, Ilya Maximets.
>>> 
>>> Unfortunately it not just ppc the arm64 image has the same issue :) I
>>> added a arm64 build on this attempt.
>>> 
>>> https://urldefense.proofpoint.com/v2/url?u=https-3A__travis-2Dci.org_
>>> djlwilder_ovs_builds_610517731&d=DwIDaQ&c=jf_iaSHvJObTbx-siA1ZOg&r=7n
>>> dxyKjH9UrBD68Us2WP1wI4BwEBQbeAyz8i_vwCCaI&m=rVTSRTh9jExG_mX8boqA-OQcZ
>>> kWmbO2g7TjgtUe6jws&s=sCvTr8MwXrqa7AEOs60tuqnquBqbRKlp_7-WacGzJWc&e=
>>> 
>>> I will attempt to adjust the package list.
>> 
>> I think, you could just report this to TravisCI support and see what
>> they will answer.  It'll be much better if they will just update their
>> images.
>> 
>> And the good news that ppc64le is officially supported now:
>> https://urldefense.proofpoint.com/v2/url?u=https-3A__blog.travis-2Dci.
>> com_2019-2D11-2D12-2Dmulti-2Dcpu-2Darchitecture-2Dibm-2Dpower-2Dibm-2D
>> z&d=DwIDaQ&c=jf_iaSHvJObTbx-siA1ZOg&r=7ndxyKjH9UrBD68Us2WP1wI4BwEBQbeA
>> yz8i_vwCCaI&m=rVTSRTh9jExG_mX8boqA-OQcZkWmbO2g7TjgtUe6jws&s=CRYw9o6At3
>> rFT_gd_5r1Uw07mv_SEPvQ6LgBLfMyqgg&e=
> 
> That is great news!
> I reported the issue to travis:
> https://urldefense.proofpoint.com/v2/url?u=https-3A__travis-2Dci.community_t_pip-2Dis-2Dnot-2Dinstalled-2Din-2Dppc64le-2Dand-2Darm64-2Dimages_5902-3Fu-3Ddjlwilder&d=DwIGaQ&c=jf_iaSHvJObTbx-siA1ZOg&r=7ndxyKjH9UrBD68Us2WP1wI4BwEBQbeAyz8i_vwCCaI&m=WN9SDoyPaU_O5oa3DAKsM2wYQpKnc2bhF_O-3r50JVs&s=dIOPvVHVZcpNxq8BgX026yL8uhzxz19lOzjBJhB15xg&e=
> 
> I added a workaround if we need it. This is my latest travis run.
> https://urldefense.proofpoint.com/v2/url?u=https-3A__www.travis-2Dci.org_djlwilder_ovs_builds_611123734&d=DwIGaQ&c=jf_iaSHvJObTbx-siA1ZOg&r=7ndxyKjH9UrBD68Us2WP1wI4BwEBQbeAyz8i_vwCCaI&m=WN9SDoyPaU_O5oa3DAKsM2wYQpKnc2bhF_O-3r50JVs&s=QcFJcytLX5PkWH1FK5SZDaFwSijTPi01rCNT02pBsms&e=
> _______________________________________________
> dev mailing list
> dev@openvswitch.org
> https://urldefense.proofpoint.com/v2/url?u=https-3A__mail.openvswitch.org_mailman_listinfo_ovs-2Ddev&d=DwIGaQ&c=jf_iaSHvJObTbx-siA1ZOg&r=7ndxyKjH9UrBD68Us2WP1wI4BwEBQbeAyz8i_vwCCaI&m=WN9SDoyPaU_O5oa3DAKsM2wYQpKnc2bhF_O-3r50JVs&s=-7D2JckHdipRQOlruoQ4SoKf808HMZP3dXSHwEUZFfU&e=
> IMPORTANT NOTICE: The contents of this email and any attachments are
> confidential and may also be privileged. If you are not the intended
> recipient, please notify the sender immediately and do not disclose
> the contents to any other person, use it for any purpose, or store or
> copy the information in any medium. Thank you.
David Wilder Nov. 18, 2019, 7:42 p.m. UTC | #11
On 2019-11-12 11:30, Ilya Maximets wrote:
> On 12.11.2019 18:57, dwilder wrote:
>> On 2019-11-08 14:52, Ilya Maximets wrote:
>>> On 06.11.2019 20:20, David Wilder wrote:
>>>> Add support for travis-ci ppc64le builds.
>>>> 
>>>> - Updated matrix in .travis.yml to include an arch: ppc64le build.
>>>> - Move package install needed for 32bit builds to 
>>>> .travis/linux-prepare.sh.
>>>> 
>>>> To keep the total build time at an acceptable level only a single 
>>>> build
>>>> job is included in the matrix for ppc64le.
>>>> 
>>>> A build report example can be found here [1]
>>>> [0] 
>>>> https://urldefense.proofpoint.com/v2/url?u=http-3A__travis-2Dci.org_&d=DwICaQ&c=jf_iaSHvJObTbx-siA1ZOg&r=7ndxyKjH9UrBD68Us2WP1wI4BwEBQbeAyz8i_vwCCaI&m=_UtshYcJsj4Pt3b9hfgEiyaEIT3j9gPEIgmBatCEqCo&s=r0fBOs-21CKcV4kyZGnzh3fcjrpR8caYSl8K2i1St54&e= 
>>>> [1] 
>>>> https://urldefense.proofpoint.com/v2/url?u=https-3A__travis-2Dci.org_djlwilder_ovs_builds_607851729&d=DwICaQ&c=jf_iaSHvJObTbx-siA1ZOg&r=7ndxyKjH9UrBD68Us2WP1wI4BwEBQbeAyz8i_vwCCaI&m=_UtshYcJsj4Pt3b9hfgEiyaEIT3j9gPEIgmBatCEqCo&s=7t2rzVasH7Xq_R7jWkWZO9rkgm4KHMH-WavBzCRbF74&e= 
>>>> Signed-off-by: David Wilder <dwilder@us.ibm.com>
>>>> ---
>>>> Addressed review comments:
>>>> - Cleaned up linux-prepare.sh (v2)
>>>> - Switch from os: linux-ppc64le to arch: ppc64le (v3)
>>> 
>>> What a wonderful world of undocumented features. :)
>>> 
>>> Anyway, I just tried this patch and it fails for me because of 
>>> missing pip:
>>> 
>>> https://urldefense.proofpoint.com/v2/url?u=https-3A__travis-2Dci.org_igsilya_ovs_jobs_609402867&d=DwICaQ&c=jf_iaSHvJObTbx-siA1ZOg&r=7ndxyKjH9UrBD68Us2WP1wI4BwEBQbeAyz8i_vwCCaI&m=_UtshYcJsj4Pt3b9hfgEiyaEIT3j9gPEIgmBatCEqCo&s=PF1oO_KkZFd_RRKToj6UBN2t2YhvTVE5XnVD1GF9u60&e=
>>> 
>>> pip install --disable-pip-version-check --user six flake8 hacking
>>> ./.travis/linux-prepare.sh: line 15: pip: command not found
>>> 
>>> Restarting the job doesn't help.
>>> 
>>> I'm wondering what is the base image and who controls preinstalled 
>>> software?
>>> Maybe it makes sense to hold on until travis will start supporting 
>>> ppc64le
>>> officially?
>>> 
>>> Best regards, Ilya Maximets.
>> 
>> Unfortunately it not just ppc the arm64 image has the same issue :)  
>> I added a arm64 build on this attempt.
>> 
>> https://urldefense.proofpoint.com/v2/url?u=https-3A__travis-2Dci.org_djlwilder_ovs_builds_610517731&d=DwIDaQ&c=jf_iaSHvJObTbx-siA1ZOg&r=7ndxyKjH9UrBD68Us2WP1wI4BwEBQbeAyz8i_vwCCaI&m=rVTSRTh9jExG_mX8boqA-OQcZkWmbO2g7TjgtUe6jws&s=sCvTr8MwXrqa7AEOs60tuqnquBqbRKlp_7-WacGzJWc&e=
>> 
>> I will attempt to adjust the package list.
> 
> I think, you could just report this to TravisCI support and see what 
> they
> will answer.  It'll be much better if they will just update their 
> images.
> 
> And the good news that ppc64le is officially supported now:
> https://urldefense.proofpoint.com/v2/url?u=https-3A__blog.travis-2Dci.com_2019-2D11-2D12-2Dmulti-2Dcpu-2Darchitecture-2Dibm-2Dpower-2Dibm-2Dz&d=DwIDaQ&c=jf_iaSHvJObTbx-siA1ZOg&r=7ndxyKjH9UrBD68Us2WP1wI4BwEBQbeAyz8i_vwCCaI&m=rVTSRTh9jExG_mX8boqA-OQcZkWmbO2g7TjgtUe6jws&s=CRYw9o6At3rFT_gd_5r1Uw07mv_SEPvQ6LgBLfMyqgg&e=
> 
> Best regards, Ilya Maximets.

Travis-ci.org has resolved the issue with pip not installed in the 
ppc64le and arm64 images (1)
I re-tested my v3 patch against the head of master (2).  It is working 
well.

(1) 
https://travis-ci.community/t/pip-is-not-installed-in-ppc64le-and-arm64-images/5902
(2) https://travis-ci.org/djlwilder/ovs/builds/613638217

Regards, David Wilder

Patch
diff mbox series

diff --git a/.travis.yml b/.travis.yml
index 482efd2d1..308c09635 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -14,7 +14,6 @@  addons:
   apt:
     packages:
       - bc
-      - gcc-multilib
       - libssl-dev
       - llvm-dev
       - libjemalloc1
@@ -26,7 +25,6 @@  addons:
       - libelf-dev
       - selinux-policy-dev
       - libunbound-dev
-      - libunbound-dev:i386
       - libunwind-dev
 
 before_install: ./.travis/${TRAVIS_OS_NAME}-prepare.sh
@@ -52,6 +50,9 @@  matrix:
     - os: osx
       compiler: clang
       env: OPTS="--disable-ssl"
+    - arch: ppc64le
+      compiler: gcc
+      env: OPTS="--disable-ssl"
 
 script: ./.travis/${TRAVIS_OS_NAME}-build.sh $OPTS
 
diff --git a/.travis/linux-prepare.sh b/.travis/linux-prepare.sh
index 9e3ac0df7..d66f480c6 100755
--- a/.travis/linux-prepare.sh
+++ b/.travis/linux-prepare.sh
@@ -18,7 +18,10 @@  pip install --user --upgrade docutils
 if [ "$M32" ]; then
     # 32-bit and 64-bit libunwind can not be installed at the same time.
     # This will remove the 64-bit libunwind and install 32-bit version.
-    sudo apt-get install -y libunwind-dev:i386
+    sudo apt-get install -y \
+         gcc-multilib \
+         libunwind-dev:i386 \
+         libunbound-dev:i386
 fi
 
 # IPv6 is supported by kernel but disabled in TravisCI images: