Details

    • Type: Improvement Improvement
    • Status: Open
    • Priority: Critical Critical
    • Resolution: Unresolved
    • Affects Version/s: 2.0-MS05
    • Fix Version/s: 2.4-build-unknown
    • Component/s: dependencies
    • Labels:
      None
    • Environment:

      Operating System: Linux
      Platform: Other

    • Issuezilla Id:
      537
    • Status Whiteboard:
      Hide

      2_3u7

      Show
      2_3u7

      Description

      We currently rely on 32bit compatibility libraries on Linux to run
      on a 64bit distribution. We should consider producing native 64 bit
      builds of our packages so that we can run without the 32 bit compat
      libraries.

      See also issue: 135

        Issue Links

          Activity

          Hide
          Tom Mueller added a comment -
              • Issue 1018 has been marked as a duplicate of this issue. ***
          Show
          Tom Mueller added a comment - Issue 1018 has been marked as a duplicate of this issue. ***
          Hide
          kohsuke added a comment -

          I could be wrong, but I thought the way x86 compatibility works in amd64 is that
          you need an ELF32 executable, plus all its dependencies in ELF32.

          I run Ubuntu, and since my python is ELF64, I thought that's why it failed to
          load _actions.so.

          > % file =python
          > /usr/bin/python: symbolic link to `python2.5'
          >
          [~/ws/ips/main/dependencies/ips-linux-i386/usr/lib/python2.4/vendor-packages/pkg/actions@bear]
          > % file =python2.5
          > /usr/bin/python2.5: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), for
          GNU/Linux 2.6.8, dynamically linked (uses shared libs), stripped

          Some additional info about my environment that may be relevant:

          % ldd _actions.so
          linux-gate.so.1 => (0xffffe000)
          libpthread.so.0 => /lib32/libpthread.so.0 (0xf7efb000)
          libc.so.6 => /lib32/libc.so.6 (0xf7dac000)
          /lib/ld-linux.so.2 (0xf7f2e000)

          % sudo apt-get install ia32-libs lib32nss-mdns
          Reading package lists... Done
          Building dependency tree
          Reading state information... Done
          ia32-libs is already the newest version.
          lib32nss-mdns is already the newest version.

          AFAICT, all the dependencies from _actions.so are met.

          But I still get the following error:

          % bash pkg.depotd
          Traceback (most recent call last):
          File
          "/home/kohsuke/ws/ips/project/dependencies/ips-linux-i386/usr/lib/depot.py",
          line 92, in <module>
          import pkg.server.config as config
          File
          "/home/kohsuke/ws/ips/project/dependencies/ips-linux-i386/usr/lib/python2.4/vendor-packages/pkg/server/config.py",
          line 32, in <module>
          import pkg.server.catalog as catalog
          File
          "/home/kohsuke/ws/ips/project/dependencies/ips-linux-i386/usr/lib/python2.4/vendor-packages/pkg/server/catalog.py",
          line 34, in <module>
          import pkg.indexer as indexer
          File
          "/home/kohsuke/ws/ips/project/dependencies/ips-linux-i386/usr/lib/python2.4/vendor-packages/pkg/indexer.py",
          line 98, in <module>
          import pkg.manifest as manifest
          File
          "/home/kohsuke/ws/ips/project/dependencies/ips-linux-i386/usr/lib/python2.4/vendor-packages/pkg/manifest.py",
          line 29, in <module>
          import pkg.actions as actions
          File
          "/home/kohsuke/ws/ips/project/dependencies/ips-linux-i386/usr/lib/python2.4/vendor-packages/pkg/actions/_init_.py",
          line 110, in <module>
          from _actions import _fromstr
          ImportError:
          /home/kohsuke/ws/ips/project/dependencies/ips-linux-i386/usr/lib/python2.4/vendor-packages/pkg/actions/_actions.so:
          wrong ELF class: ELFCLASS32

          Does anyone successfully manage to run the latest pkg.depotd on amd64 Linux? If
          so, what is it about my environment that's broken?

          Show
          kohsuke added a comment - I could be wrong, but I thought the way x86 compatibility works in amd64 is that you need an ELF32 executable, plus all its dependencies in ELF32. I run Ubuntu, and since my python is ELF64, I thought that's why it failed to load _actions.so. > % file =python > /usr/bin/python: symbolic link to `python2.5' > [~/ws/ips/main/dependencies/ips-linux-i386/usr/lib/python2.4/vendor-packages/pkg/actions@bear] > % file =python2.5 > /usr/bin/python2.5: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), for GNU/Linux 2.6.8, dynamically linked (uses shared libs), stripped Some additional info about my environment that may be relevant: % ldd _actions.so linux-gate.so.1 => (0xffffe000) libpthread.so.0 => /lib32/libpthread.so.0 (0xf7efb000) libc.so.6 => /lib32/libc.so.6 (0xf7dac000) /lib/ld-linux.so.2 (0xf7f2e000) % sudo apt-get install ia32-libs lib32nss-mdns Reading package lists... Done Building dependency tree Reading state information... Done ia32-libs is already the newest version. lib32nss-mdns is already the newest version. AFAICT, all the dependencies from _actions.so are met. But I still get the following error: % bash pkg.depotd Traceback (most recent call last): File "/home/kohsuke/ws/ips/project/dependencies/ips-linux-i386/usr/lib/depot.py", line 92, in <module> import pkg.server.config as config File "/home/kohsuke/ws/ips/project/dependencies/ips-linux-i386/usr/lib/python2.4/vendor-packages/pkg/server/config.py", line 32, in <module> import pkg.server.catalog as catalog File "/home/kohsuke/ws/ips/project/dependencies/ips-linux-i386/usr/lib/python2.4/vendor-packages/pkg/server/catalog.py", line 34, in <module> import pkg.indexer as indexer File "/home/kohsuke/ws/ips/project/dependencies/ips-linux-i386/usr/lib/python2.4/vendor-packages/pkg/indexer.py", line 98, in <module> import pkg.manifest as manifest File "/home/kohsuke/ws/ips/project/dependencies/ips-linux-i386/usr/lib/python2.4/vendor-packages/pkg/manifest.py", line 29, in <module> import pkg.actions as actions File "/home/kohsuke/ws/ips/project/dependencies/ips-linux-i386/usr/lib/python2.4/vendor-packages/pkg/actions/_ init _.py", line 110, in <module> from _actions import _fromstr ImportError: /home/kohsuke/ws/ips/project/dependencies/ips-linux-i386/usr/lib/python2.4/vendor-packages/pkg/actions/_actions.so: wrong ELF class: ELFCLASS32 Does anyone successfully manage to run the latest pkg.depotd on amd64 Linux? If so, what is it about my environment that's broken?
          Hide
          Joe Di Pol added a comment -

          You need to use a 32 bit python 2.4 runtime which is what we
          bundle with UC. If you download the Linux x386 bundle from here:

          http://wikis.sun.com/display/IpsBestPractices/Downloads

          and run pkg/bin/pkg.depotd from that bundle then it should run if the
          compat libraries are installed.

          Show
          Joe Di Pol added a comment - You need to use a 32 bit python 2.4 runtime which is what we bundle with UC. If you download the Linux x386 bundle from here: http://wikis.sun.com/display/IpsBestPractices/Downloads and run pkg/bin/pkg.depotd from that bundle then it should run if the compat libraries are installed.
          Hide
          ckamps added a comment -

          Bumping up the priority and setting to 2.4 build unknown based on the user
          observations in this thread:

          http://forums.java.net/jive/thread.jspa?messageID=371729

          With the advent or facets and variants in pkg(5), delivering 64-bit forms of the
          embedded native dependencies may be more viable than it was with earlier
          versions of pkg(5).

          Show
          ckamps added a comment - Bumping up the priority and setting to 2.4 build unknown based on the user observations in this thread: http://forums.java.net/jive/thread.jspa?messageID=371729 With the advent or facets and variants in pkg(5), delivering 64-bit forms of the embedded native dependencies may be more viable than it was with earlier versions of pkg(5).
          Hide
          Joe Di Pol added a comment -

          r2710: Checked in binary dependencies for 64 bit Linux. These were
          built on RH 4.

          Show
          Joe Di Pol added a comment - r2710: Checked in binary dependencies for 64 bit Linux. These were built on RH 4.
          Hide
          Joe Di Pol added a comment -

          If/when we need to rebuild the binary dependencies we need to look into including the fix used for UPDATECENTER2-1211 (allowing running on SELinux).

          Show
          Joe Di Pol added a comment - If/when we need to rebuild the binary dependencies we need to look into including the fix used for UPDATECENTER2-1211 (allowing running on SELinux).

            People

            • Assignee:
              Joe Di Pol
              Reporter:
              Joe Di Pol
            • Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

              • Created:
                Updated: