AIX Open Source

AIX Open Source

Share your experiences and connect with fellow developers to discover how to build and manage open source software for the AIX operating system

 View Only
  • 1.  Yum update of python from 2.7.10 to 2.7.13 breaks yum

    Posted Mon February 19, 2018 11:49 AM

    Originally posted by: KiloBravo


     

    Updating python on a working yum server/client from 2.7.10-1 to 2.7.13-1 breaks Yum.

    The current workaround to fix yum is to downgrade python via:

    # rpm -Uvh --oldpackage python-2.7.10-1.aix6.1.ppc.rpm python-devel-2.7.10-1.aix6.1.ppc.rpm python-tools-2.7.10-1.aix6.1.ppc.rpm

     

    Failure log:

    # yum update python
    Setting up Update Process
    Resolving Dependencies
    --> Running transaction check
    ---> Package python.ppc 0:2.7.10-1 will be updated
    --> Processing Dependency: python = 2.7.10 for package: python-tools-2.7.10-1.ppc
    --> Processing Dependency: python = 2.7.10 for package: python-devel-2.7.10-1.ppc
    ---> Package python.ppc 0:2.7.13-1 will be an update
    --> Running transaction check
    ---> Package python-devel.ppc 0:2.7.10-1 will be updated
    ---> Package python-devel.ppc 0:2.7.13-1 will be an update
    ---> Package python-tools.ppc 0:2.7.10-1 will be updated
    ---> Package python-tools.ppc 0:2.7.13-1 will be an update
    --> Finished Dependency Resolution

    Dependencies Resolved

    ====================================================================================================================================
     Package                          Arch                    Version                         Repository                           Size
    ====================================================================================================================================
    Updating:
     python                           ppc                     2.7.13-1                        PHS_AIX_Toolbox                      20 M
    Updating for dependencies:
     python-devel                     ppc                     2.7.13-1                        PHS_AIX_Toolbox                      11 k
     python-tools                     ppc                     2.7.13-1                        PHS_AIX_Toolbox                      12 k

    Transaction Summary
    ====================================================================================================================================
    Upgrade       3 Packages

    Total download size: 20 M
    Is this ok [y/N]: y
    Downloading Packages:
    (1/3): python-2.7.13-1.aix6.1.ppc.rpm                                                                        |  20 MB  00:00:01     
    (2/3): python-devel-2.7.13-1.aix6.1.ppc.rpm                                                                  |  11 kB  00:00:00     
    (3/3): python-tools-2.7.13-1.aix6.1.ppc.rpm                                                                  |  12 kB  00:00:00     
    ------------------------------------------------------------------------------------------------------------------------------------
    Total                                                                                                11 MB/s |  20 MB     00:01     
    Running Transaction Check
    Running Transaction Test
    Transaction Test Succeeded
    Running Transaction
      Updating   : python-2.7.13-1.ppc                                                                                              1/6
      Updating   : python-devel-2.7.13-1.ppc                                                                                        2/6
      Updating   : python-tools-2.7.13-1.ppc                                                                                        3/6
      Cleanup    : python-tools-2.7.10-1.ppc                                                                                        4/6
      Cleanup    : python-devel-2.7.10-1.ppc                                                                                        5/6
      Cleanup    : python-2.7.10-1.ppc                                                                                              6/6

    Updated:
      python.ppc 0:2.7.13-1                                                                                                             

    Dependency Updated:
      python-devel.ppc 0:2.7.13-1                                      python-tools.ppc 0:2.7.13-1                                     

    Complete!

    # yum search python
    Traceback (most recent call last):
      File "/usr/bin/yum", line 29, in <module>
        yummain.user_main(sys.argv[1:], exit_code=True)
      File "/opt/freeware/share/yum-cli/yummain.py", line 288, in user_main
        errcode = main(args)
      File "/opt/freeware/share/yum-cli/yummain.py", line 140, in main
        result, resultmsgs = base.doCommands()
      File "/opt/freeware/share/yum-cli/cli.py", line 440, in doCommands
        return self.yum_cli_commands[self.basecmd].doCommand(self, self.basecmd, self.extcmds)
      File "/opt/freeware/share/yum-cli/yumcommands.py", line 699, in doCommand
        return base.search(extcmds)
      File "/opt/freeware/share/yum-cli/cli.py", line 1048, in search
        for (po, keys, matched_value) in matching:
      File "/opt/freeware/lib/python2.7/site-packages/yum/__init__.py", line 2532, in searchGenerator
        for sack in self.pkgSack.sacks.values():
      File "/opt/freeware/lib/python2.7/site-packages/yum/__init__.py", line 900, in <lambda>
        pkgSack = property(fget=lambda self: self._getSacks(),
      File "/opt/freeware/lib/python2.7/site-packages/yum/__init__.py", line 681, in _getSacks
        self.repos.populateSack(which=repos)
      File "/opt/freeware/lib/python2.7/site-packages/yum/repos.py", line 294, in populateSack
        sack.populate(repo, mdtype, callback, cacheonly)
      File "/opt/freeware/lib/python2.7/site-packages/yum/yumRepo.py", line 164, in populate
        if self._check_db_version(repo, mydbtype):
      File "/opt/freeware/lib/python2.7/site-packages/yum/yumRepo.py", line 222, in _check_db_version
        return repo._check_db_version(mdtype)
      File "/opt/freeware/lib/python2.7/site-packages/yum/yumRepo.py", line 1264, in _check_db_version
        repoXML = self.repoXML
      File "/opt/freeware/lib/python2.7/site-packages/yum/yumRepo.py", line 1463, in <lambda>
        repoXML = property(fget=lambda self: self._getRepoXML(),
      File "/opt/freeware/lib/python2.7/site-packages/yum/yumRepo.py", line 1455, in _getRepoXML
        self._loadRepoXML(text=self)
      File "/opt/freeware/lib/python2.7/site-packages/yum/yumRepo.py", line 1445, in _loadRepoXML
        return self._groupLoadRepoXML(text, self._mdpolicy2mdtypes())
      File "/opt/freeware/lib/python2.7/site-packages/yum/yumRepo.py", line 1420, in _groupLoadRepoXML
        if self._commonLoadRepoXML(text):
      File "/opt/freeware/lib/python2.7/site-packages/yum/yumRepo.py", line 1248, in _commonLoadRepoXML
        self._repoXML = self._parseRepoXML(result)
      File "/opt/freeware/lib/python2.7/site-packages/yum/yumRepo.py", line 1044, in _parseRepoXML
        return repoMDObject.RepoMD(self.id, local)
      File "/opt/freeware/lib/python2.7/site-packages/yum/repoMDObject.py", line 124, in __init__
        self.parse(srcfile)
      File "/opt/freeware/lib/python2.7/site-packages/yum/repoMDObject.py", line 140, in parse
        parser = iterparse(infile)
      File "/opt/freeware/lib/python2.7/site-packages/yum/misc.py", line 1188, in cElementTree_iterparse
        _cElementTree_import()
      File "/opt/freeware/lib/python2.7/site-packages/yum/misc.py", line 1183, in _cElementTree_import
        import cElementTree
    ImportError: No module named cElementTree

    # yum info python
    Traceback (most recent call last):
      File "/usr/bin/yum", line 29, in <module>
        yummain.user_main(sys.argv[1:], exit_code=True)
      File "/opt/freeware/share/yum-cli/yummain.py", line 288, in user_main
        errcode = main(args)
      File "/opt/freeware/share/yum-cli/yummain.py", line 140, in main
        result, resultmsgs = base.doCommands()
      File "/opt/freeware/share/yum-cli/cli.py", line 436, in doCommands
        self._getTs(needTsRemove)
      File "/opt/freeware/lib/python2.7/site-packages/yum/depsolve.py", line 101, in _getTs
        self._getTsInfo(remove_only)
      File "/opt/freeware/lib/python2.7/site-packages/yum/depsolve.py", line 112, in _getTsInfo
        pkgSack = self.pkgSack
      File "/opt/freeware/lib/python2.7/site-packages/yum/__init__.py", line 900, in <lambda>
        pkgSack = property(fget=lambda self: self._getSacks(),
      File "/opt/freeware/lib/python2.7/site-packages/yum/__init__.py", line 681, in _getSacks
        self.repos.populateSack(which=repos)
      File "/opt/freeware/lib/python2.7/site-packages/yum/repos.py", line 294, in populateSack
        sack.populate(repo, mdtype, callback, cacheonly)
      File "/opt/freeware/lib/python2.7/site-packages/yum/yumRepo.py", line 164, in populate
        if self._check_db_version(repo, mydbtype):
      File "/opt/freeware/lib/python2.7/site-packages/yum/yumRepo.py", line 222, in _check_db_version
        return repo._check_db_version(mdtype)
      File "/opt/freeware/lib/python2.7/site-packages/yum/yumRepo.py", line 1264, in _check_db_version
        repoXML = self.repoXML
      File "/opt/freeware/lib/python2.7/site-packages/yum/yumRepo.py", line 1463, in <lambda>
        repoXML = property(fget=lambda self: self._getRepoXML(),
      File "/opt/freeware/lib/python2.7/site-packages/yum/yumRepo.py", line 1455, in _getRepoXML
        self._loadRepoXML(text=self)
      File "/opt/freeware/lib/python2.7/site-packages/yum/yumRepo.py", line 1445, in _loadRepoXML
        return self._groupLoadRepoXML(text, self._mdpolicy2mdtypes())
      File "/opt/freeware/lib/python2.7/site-packages/yum/yumRepo.py", line 1420, in _groupLoadRepoXML
        if self._commonLoadRepoXML(text):
      File "/opt/freeware/lib/python2.7/site-packages/yum/yumRepo.py", line 1248, in _commonLoadRepoXML
        self._repoXML = self._parseRepoXML(result)
      File "/opt/freeware/lib/python2.7/site-packages/yum/yumRepo.py", line 1044, in _parseRepoXML
        return repoMDObject.RepoMD(self.id, local)
      File "/opt/freeware/lib/python2.7/site-packages/yum/repoMDObject.py", line 124, in __init__
        self.parse(srcfile)
      File "/opt/freeware/lib/python2.7/site-packages/yum/repoMDObject.py", line 140, in parse
        parser = iterparse(infile)
      File "/opt/freeware/lib/python2.7/site-packages/yum/misc.py", line 1188, in cElementTree_iterparse
        _cElementTree_import()
      File "/opt/freeware/lib/python2.7/site-packages/yum/misc.py", line 1183, in _cElementTree_import
        import cElementTree
    ImportError: No module named cElementTree

     



  • 2.  Re: Yum update of python from 2.7.10 to 2.7.13 breaks yum

    Posted Mon February 19, 2018 12:17 PM

    Originally posted by: KiloBravo


    Additional info:

      yum-3.4.3-6.noarch

      yum-metadata-parser-1.1.4-2.ppc

    Did some additional testing.  Upgrading python with yum to any version above 2.7.10-1breaks yum.  Downgrading back to 2.7.10-1 is the only current fix.

    Fails on AIX 7.1 and AIX 7.2

     



  • 3.  Re: Yum update of python from 2.7.10 to 2.7.13 breaks yum

    Posted Mon February 26, 2018 03:49 AM

    Originally posted by: sangameshm


    Looks like import of xml.etree is failing in your case. You can try these commands to verify.

    This is what we seen in our environment.

     

    # python -c 'import xml.etree'
    # python -c 'import xml.etree.cElementTree'
    # python -c 'import cElementTree'
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
    ImportError: No module named cElementTree     

     

    Thanks,

    Sangamesh 

     



  • 4.  Re: Yum update of python from 2.7.10 to 2.7.13 breaks yum

    Posted Mon February 26, 2018 11:30 AM

    Originally posted by: KiloBravo


    Yes - with the working python 2.7.10 - I get the same output:

    $ python -c 'import xml.etree'
    $ python -c 'import xml.etree.cElementTree'
    $ python -c 'import cElementTree'
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
    ImportError: No module named cElementTree

     

    After upgrading to 2.7.13 I get this:

    $ python -c 'import xml.etree'
    $ python -c 'import xml.etree.cElementTree'
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/opt/freeware/lib/python2.7/xml/etree/cElementTree.py", line 3, in <module>
        from _elementtree import *
    ImportError: PyCapsule_Import could not import module "pyexpat"
    $ python -c 'import cElementTree'
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
    ImportError: No module named cElementTree

     



  • 5.  Re: Yum update of python from 2.7.10 to 2.7.13 breaks yum

    Posted Mon February 26, 2018 12:02 PM

    Originally posted by: KiloBravo


     

    And there we go - there's an undeclared dependency on "expat" being installed for python 2.7.13 to work properly with yum.

    If I install expat via yum and then upgrade python - yum continues function afterwards.

    Missing Requires statements when packaging python?

     



  • 6.  Re: Yum update of python from 2.7.10 to 2.7.13 breaks yum

    Posted Tue February 27, 2018 07:52 AM

    Originally posted by: sanket


    Thank you Kevin. We will look into it.

     



  • 7.  Re: Yum update of python from 2.7.10 to 2.7.13 breaks yum

    Posted Tue February 27, 2018 10:35 AM

    Originally posted by: AyappanP


    Expat is a dynamic dependency for python 2.7.13 so rpm/yum would have automatically figured out this dependency. Not sure what went wrong in your case. 

    We will check into this more.



  • 8.  Re: Yum update of python from 2.7.10 to 2.7.13 breaks yum

    Posted Tue February 20, 2018 01:02 PM

    Originally posted by: Dave_A


    FWIW, all but two of my yum clients have python-2.7.12-2.  The other two have python-2.7.13-1 and all are working fine.  All of them have yum-3.4.3-4, -5, or -6.  It may be a conflict with something else installed.



  • 9.  Re: Yum update of python from 2.7.10 to 2.7.13 breaks yum

    Posted Tue February 27, 2018 11:18 AM

    Originally posted by: AyappanP


    Just simulated what you tried. Updating from python 2.7.10-1 to python 2.7.13-1 through yum. It actually figures out the expat dependency.

    # yum update python
    Setting up Update Process
    Resolving Dependencies
    There are unfinished transactions remaining. You might consider running yum-complete-transaction first to finish them.
    --> Running transaction check
    ---> Package python.ppc 0:2.7.10-1 will be updated
    --> Processing Dependency: python = 2.7.10 for package: python-tools-2.7.10-1.ppc
    --> Processing Dependency: python = 2.7.10 for package: python-devel-2.7.10-1.ppc
    ---> Package python.ppc 0:2.7.13-1 will be an update
    --> Processing Dependency: libexpat.a(libexpat.so.1) for package: python-2.7.13-1.ppc
    --> Running transaction check
    ---> Package expat.ppc 0:2.2.0-1 will be installed
    ---> Package python-devel.ppc 0:2.7.10-1 will be updated
    ---> Package python-devel.ppc 0:2.7.13-1 will be an update
    ---> Package python-tools.ppc 0:2.7.10-1 will be updated
    ---> Package python-tools.ppc 0:2.7.13-1 will be an update
    --> Finished Dependency Resolution

    Dependencies Resolved

    =======================================================================================================================================
     Package                            Arch                      Version                          Repository                         Size
    =======================================================================================================================================
    Updating:
     python                             ppc                       2.7.13-1                         AIX_Toolbox                        20 M
    Installing for dependencies:
     expat                              ppc                       2.2.0-1                          AIX_Toolbox                       478 k
    Updating for dependencies:
     python-devel                       ppc                       2.7.13-1                         AIX_Toolbox                        11 k
     python-tools                       ppc                       2.7.13-1                         AIX_Toolbox                        12 k

    Transaction Summary
    =======================================================================================================================================
    Install       1 Package
    Upgrade       3 Packages

    Total size: 20 M
    Total download size: 478 k
    Is this ok [y/N]: y
    Downloading Packages:
    expat-2.2.0-1.aix6.1.ppc.rpm                                                                                    | 478 kB  00:00:01
    Running Transaction Check
    Running Transaction Test
    Transaction Test Succeeded
    Running Transaction

      Installing : expat-2.2.0-1.ppc                                                                                                   1/7
      Updating   : python-2.7.13-1.ppc                                                                                                 2/7
      Updating   : python-devel-2.7.13-1.ppc                                                                                           3/7
      Updating   : python-tools-2.7.13-1.ppc                                                                                           4/7
      Cleanup    : python-tools-2.7.10-1.ppc                                                                                           5/7
      Cleanup    : python-devel-2.7.10-1.ppc                                                                                           6/7
      Cleanup    : python-2.7.10-1.ppc                                                                                                 7/7

    Dependency Installed:
      expat.ppc 0:2.2.0-1

    Updated:
      python.ppc 0:2.7.13-1

    Dependency Updated:
      python-devel.ppc 0:2.7.13-1                                        python-tools.ppc 0:2.7.13-1

    Complete!

     



  • 10.  Re: Yum update of python from 2.7.10 to 2.7.13 breaks yum

    Posted Tue February 27, 2018 01:29 PM

    Originally posted by: KiloBravo


     

    Testing on yet another a system that did have expat already installed ....

     

    # yum update python                                          
    Setting up Update Process
    Resolving Dependencies
    --> Running transaction check
    ---> Package python.ppc 0:2.7.10-1 will be updated
    --> Processing Dependency: python = 2.7.10 for package: python-tools-2.7.10-1.ppc
    --> Processing Dependency: python = 2.7.10 for package: python-devel-2.7.10-1.ppc
    ---> Package python.ppc 0:2.7.13-1 will be an update
    --> Running transaction check
    ---> Package python-devel.ppc 0:2.7.10-1 will be updated
    ---> Package python-devel.ppc 0:2.7.13-1 will be an update
    ---> Package python-tools.ppc 0:2.7.10-1 will be updated
    ---> Package python-tools.ppc 0:2.7.13-1 will be an update
    --> Finished Dependency Resolution

    Dependencies Resolved

    ====================================================================================================================================
     Package                          Arch                    Version                         Repository                           Size
    ====================================================================================================================================
    Updating:
     python                           ppc                     2.7.13-1                        PHS_AIX_Toolbox                      20 M
    Updating for dependencies:
     python-devel                     ppc                     2.7.13-1                        PHS_AIX_Toolbox                      11 k
     python-tools                     ppc                     2.7.13-1                        PHS_AIX_Toolbox                      12 k

    Transaction Summary
    ====================================================================================================================================
    Upgrade       3 Packages

    Total download size: 20 M
    Is this ok [y/N]: y
    Downloading Packages:
    (1/3): python-2.7.13-1.aix6.1.ppc.rpm                                                                        |  20 MB  00:00:01     
    (2/3): python-devel-2.7.13-1.aix6.1.ppc.rpm                                                                  |  11 kB  00:00:00     
    (3/3): python-tools-2.7.13-1.aix6.1.ppc.rpm                                                                  |  12 kB  00:00:00     
    ------------------------------------------------------------------------------------------------------------------------------------
    Total                                                                                                13 MB/s |  20 MB     00:01     
    Running Transaction Check
    Running Transaction Test
    Transaction Test Succeeded
    Running Transaction
      Updating   : python-2.7.13-1.ppc                                                                                              1/6
      Updating   : python-devel-2.7.13-1.ppc                                                                                        2/6
      Updating   : python-tools-2.7.13-1.ppc                                                                                        3/6
      Cleanup    : python-tools-2.7.10-1.ppc                                                                                        4/6
      Cleanup    : python-devel-2.7.10-1.ppc                                                                                        5/6
      Cleanup    : python-2.7.10-1.ppc                                                                                              6/6

    Updated:
      python.ppc 0:2.7.13-1                                                                                                             

    Dependency Updated:
      python-devel.ppc 0:2.7.13-1                                      python-tools.ppc 0:2.7.13-1                                     

    Complete!

    # yum update
    Traceback (most recent call last):  ### BROKEN ###

      File "/usr/bin/yum", line 29, in <module>
        yummain.user_main(sys.argv[1:], exit_code=True)
      File "/opt/freeware/share/yum-cli/yummain.py", line 288, in user_main
        errcode = main(args)
      File "/opt/freeware/share/yum-cli/yummain.py", line 140, in main
        result, resultmsgs = base.doCommands()
      File "/opt/freeware/share/yum-cli/cli.py", line 436, in doCommands
        self._getTs(needTsRemove)
      File "/opt/freeware/lib/python2.7/site-packages/yum/depsolve.py", line 101, in _getTs
        self._getTsInfo(remove_only)
      File "/opt/freeware/lib/python2.7/site-packages/yum/depsolve.py", line 112, in _getTsInfo
        pkgSack = self.pkgSack
      File "/opt/freeware/lib/python2.7/site-packages/yum/__init__.py", line 892, in <lambda>
        pkgSack = property(fget=lambda self: self._getSacks(),
      File "/opt/freeware/lib/python2.7/site-packages/yum/__init__.py", line 673, in _getSacks
        self.repos.populateSack(which=repos)
      File "/opt/freeware/lib/python2.7/site-packages/yum/repos.py", line 294, in populateSack
        sack.populate(repo, mdtype, callback, cacheonly)
      File "/opt/freeware/lib/python2.7/site-packages/yum/yumRepo.py", line 164, in populate
        if self._check_db_version(repo, mydbtype):
      File "/opt/freeware/lib/python2.7/site-packages/yum/yumRepo.py", line 222, in _check_db_version
        return repo._check_db_version(mdtype)
      File "/opt/freeware/lib/python2.7/site-packages/yum/yumRepo.py", line 1264, in _check_db_version
        repoXML = self.repoXML
      File "/opt/freeware/lib/python2.7/site-packages/yum/yumRepo.py", line 1463, in <lambda>
        repoXML = property(fget=lambda self: self._getRepoXML(),
      File "/opt/freeware/lib/python2.7/site-packages/yum/yumRepo.py", line 1455, in _getRepoXML
        self._loadRepoXML(text=self)
      File "/opt/freeware/lib/python2.7/site-packages/yum/yumRepo.py", line 1445, in _loadRepoXML
        return self._groupLoadRepoXML(text, self._mdpolicy2mdtypes())
      File "/opt/freeware/lib/python2.7/site-packages/yum/yumRepo.py", line 1420, in _groupLoadRepoXML
        if self._commonLoadRepoXML(text):
      File "/opt/freeware/lib/python2.7/site-packages/yum/yumRepo.py", line 1248, in _commonLoadRepoXML
        self._repoXML = self._parseRepoXML(result)
      File "/opt/freeware/lib/python2.7/site-packages/yum/yumRepo.py", line 1044, in _parseRepoXML
        return repoMDObject.RepoMD(self.id, local)
      File "/opt/freeware/lib/python2.7/site-packages/yum/repoMDObject.py", line 124, in __init__
        self.parse(srcfile)
      File "/opt/freeware/lib/python2.7/site-packages/yum/repoMDObject.py", line 140, in parse
        parser = iterparse(infile)
      File "/opt/freeware/lib/python2.7/site-packages/yum/misc.py", line 1171, in cElementTree_iterparse
        _cElementTree_import()
      File "/opt/freeware/lib/python2.7/site-packages/yum/misc.py", line 1166, in _cElementTree_import
        import cElementTree
    ImportError: No module named cElementTree

     

    # rpm -qa|grep expat
    expat-2.0.1-2.ppc

     

    # rpm -Uh /var/tmp/expat-2.2.0-1.aix6.1.ppc.rpm <== installing current version of expat from rpm copied from YUM server - since yum is now broken

     

    # yum update
    Setting up Update Process    ### WORKING ###
    Resolving Dependencies

    --> Running transaction check
    ---> Package bash.ppc 0:4.3.30-1 will be updated
    ---> Package bash.ppc 0:4.4-3 will be an update
    ---> Package bzip2.ppc 0:1.0.5-3 will be updated
    ---> Package bzip2.ppc 0:1.0.6-2 will be an update

     

    The "dynamic dependency" doesn't seem to cut it - 2.7.13 seems to explicitly require the 2.2.0 version of expat to work.  And as you'll see from my original post - that expat dependency isn't coming through on any of the systems I've tried upgrading python on so far.  Now just maybe there's something funky with the repo that I'm using - but given that it's working for everything but this one issue, I'm not so sure.

     

     

     



  • 11.  Re: Yum update of python from 2.7.10 to 2.7.13 breaks yum

    Posted Wed February 28, 2018 11:04 AM

    Originally posted by: AyappanP


    Verified this problem. This is due to the older expat 2.0.1 not compatible with the latest python 2.7.13 available from AIX Toolbox. 

    One symbol (XML_SetHashSalt) is missing in the older expat library which the pyexpat library shipping with python also depends on. 

    Library versioning is the same in expat 2.0.1 & 2.2.0 ( libexpat.so.1 ) which makes this a rare scenario that easily skips our testing.