镜像站点 · 本页由第三方 GitHub 只读镜像提供,非 GitHub 官方站点,不接受任何登录或凭据输入。前往 github.com
Skip to content

AIX builds fail with "curl: not found" #2536

Closed

Description

@richardlau

Some jobs on AIX are failing with:
e.g. https://ci.nodejs.org/job/node-test-node-addon-api-new/3549/nodes=aix71-ppc64/console

+ + curl https://nodejs.org/download/release/
/tmp/jenkins2489275197070297311.sh[21]: curl:  not found

Activity

  1. richardlau commented on Feb 3, 2021

    @richardlau
    MemberAuthor

    This has started occurring after yesterday's package updates (#2531 (comment)) to update sudo. It looks like the curl package was also updated;

    bash-5.0# grep curl /var/log/yum.log
    Oct 06 07:13:17 Updated: curl-7.71.1-1.ppc
    Oct 06 07:13:18 Updated: python-pycurl-7.43.0-1.ppc
    Feb 02 06:08:48 Updated: curl-7.74.0-1.ppc
    bash-5.0#
    

    curl-7.71.1-1.ppc used to create symlinks in /usr/bin:

    $ rpm -ql curl
    /opt/freeware/bin/curl
    /opt/freeware/bin/curl_32
    /opt/freeware/bin/curl_64
    /opt/freeware/doc/curl-7.71.1
    /opt/freeware/doc/curl-7.71.1/BUGS
    /opt/freeware/doc/curl-7.71.1/CHANGES
    /opt/freeware/doc/curl-7.71.1/COPYING
    /opt/freeware/doc/curl-7.71.1/FAQ
    /opt/freeware/doc/curl-7.71.1/FEATURES
    /opt/freeware/doc/curl-7.71.1/README
    /opt/freeware/doc/curl-7.71.1/RESOURCES
    /opt/freeware/doc/curl-7.71.1/SSLCERTS.md
    /opt/freeware/doc/curl-7.71.1/TODO
    /opt/freeware/doc/curl-7.71.1/TheArtOfHttpScripting
    /opt/freeware/lib/libcurl.a
    /opt/freeware/lib64/libcurl.a
    /opt/freeware/man/man1/curl.1
    /usr/bin/curl
    /usr/bin/curl_32
    /usr/bin/curl_64
    $
    

    but curl-7.74.0-1.ppc does not:

    # rpm -ql curl
    /opt/freeware/bin/curl
    /opt/freeware/bin/curl_32
    /opt/freeware/bin/curl_64
    /opt/freeware/doc/curl-7.74.0
    /opt/freeware/doc/curl-7.74.0/BUGS.md
    /opt/freeware/doc/curl-7.74.0/CHANGES
    /opt/freeware/doc/curl-7.74.0/COPYING
    /opt/freeware/doc/curl-7.74.0/FAQ
    /opt/freeware/doc/curl-7.74.0/FEATURES.md
    /opt/freeware/doc/curl-7.74.0/README
    /opt/freeware/doc/curl-7.74.0/SSLCERTS.md
    /opt/freeware/doc/curl-7.74.0/TODO
    /opt/freeware/doc/curl-7.74.0/TheArtOfHttpScripting.md
    /opt/freeware/lib/libcurl.a
    /opt/freeware/lib64/libcurl.a
    /opt/freeware/man/man1/curl.1
    #
    

    This was a deliberate change for packages from the AIX Toolbox: https://community.ibm.com/community/user/power/communities/community-home/digestviewer/viewthread?MessageKey=396d1fc1-ecb6-45f4-ad80-22ffe3e4c88c&CommunityKey=10c1d831-47ee-4d92-a138-b03f7896f7c9&tab=digestviewer#bm396d1fc1-ecb6-45f4-ad80-22ffe3e4c88c

    /opt/freeware/bin isn't on the default PATH so curl is no longer found.

  2. richardlau commented on Feb 3, 2021

    @richardlau
    MemberAuthor

    @AshCripps has run into a similar issue setting up the new AIX 7.2 hosts:

    TASK [baselayout : ccache : fetch tarball - aix] **************************************************************************************************************************************************************************************
    task path: /Users/ash/github/build/ansible/roles/baselayout/tasks/ccache.yml:15
    [WARNING]: Consider using the get_url or uri module rather than running 'curl'.  If you need to use command because get_url or uri is insufficient you can add 'warn: false' to this command task or set 'command_warnings=False' in
    ansible.cfg to get rid of this message.
    fatal: [test-osuosl-aix72-ppc64_be-3]: FAILED! => {"changed": true, "cmd": "curl -L -o ccache-3.7.4.tar.gz https://github.com/ccache/ccache/releases/download/v3.7.4/ccache-3.7.4.tar.gz", "delta": "0:00:00.033092", "end": "2021-02-03 16:37:32.181141", "msg": "non-zero return code", "rc": 127, "start": "2021-02-03 16:37:32.148049", "stderr": "/bin/sh: curl:  not found", "stderr_lines": ["/bin/sh: curl:  not found"], "stdout": "", "stdout_lines": []}
    

    which is coming from

    - name: "ccache : fetch tarball - aix"
    when: os|startswith("aix")
    shell:
    chdir: "/tmp"
    cmd: "curl -L -o ccache-3.7.4.tar.gz https://github.com/ccache/ccache/releases/download/v3.7.4/ccache-3.7.4.tar.gz"

    which means we'll have to set up links after

    - name: install packages
    when: not os|startswith("zos") and not os|startswith("macos")
    package:
    name: "{{ package }}"
    state: present
    use: "{{ os|startswith(\"ibmi\")|ternary(\"yum\", omit) }}"
    loop_control:
    loop_var: package
    with_items:
    # ansible doesn't like empty lists
    - "{{ packages[os+'_'+arch]|default('[]') }}"
    - "{{ packages[os]|default('[]') }}"
    - "{{ packages[os|stripversion]|default('[]') }}"
    - "{{ common_packages|default('[]') }}"
    but before
    - name: run ccache installer
    when: os|startswith("aix") and not has_ccache.stat.exists
    include: ccache.yml
    static: false
    vars:
    - version: 3.7.4

    We're also not explicitly installing curl:

    aix: [
    'bash,cmake,gcc-c++,gcc6-c++,tar,unzip,git,make,sudo',
    ],

    and instead are getting it as a dependency (of git):

    bash-5.0# rpm -q --whatrequires curl
    python-pycurl-7.43.0-1.ppc
    git-2.20.4-1.ppc
    bash-5.0#
    
  3. self-assigned this
    on Feb 3, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions