Bug 1183392

Summary: Update yum-utils Requires for python-dateutil
Product: [Fedora] Fedora Reporter: Pete Travis <me>
Component: yum-utilsAssignee: Packaging Maintenance Team <packaging-team-maint>
Status: CLOSED NOTABUG QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: rawhideCC: admiller, packaging-team-maint, tim.lauridsen, zbyszek
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
URL: https://lists.fedoraproject.org/pipermail/devel/2014-December/205006.html
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2015-01-21 22:28:36 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 1126521    

Description Pete Travis 2015-01-18 21:19:33 UTC
python-dateutil will be updated to version 2.x and there may be changes that affect this package.  

If yum-utils will work with the newer python-dateutil, you can safely close this bug.  If yum-utils really does require python-dateutil 1.5, please use Requires: python-dateutil15 for Fedora versions of the package until it can be updated.

Comment 1 Pete Travis 2015-01-21 05:57:46 UTC
Only the `yum-plugin-changelog` package is using python-dateutil. I have pyton-dateutil 2.2 installed, and passing valid strings still works, but passing semi-invalid strings ie "yum changelog 2012-junk tmux" dumps the following instead of the exception message:

```
$ yum changelog 2012-junk tmux
Loaded plugins: changelog, fastestmirror, langpacks
Traceback (most recent call last):
  File "/bin/yum", line 29, in <module>
    yummain.user_main(sys.argv[1:], exit_code=True)
  File "/usr/share/yum-cli/yummain.py", line 371, in user_main
    errcode = main(args)
  File "/usr/share/yum-cli/yummain.py", line 174, in main
    result, resultmsgs = base.doCommands()
  File "/usr/share/yum-cli/cli.py", line 584, in doCommands
    return self.yum_cli_commands[self.basecmd].doCommand(self, self.basecmd, self.extcmds)
  File "/usr/lib/yum-plugins/changelog.py", line 204, in doCommand
    self._since_dto = dateutil_parser.parse(since, fuzzy=True)
  File "/usr/lib/python2.7/site-packages/dateutil/parser.py", line 748, in parse
    return DEFAULTPARSER.parse(timestr, **kwargs)
  File "/usr/lib/python2.7/site-packages/dateutil/parser.py", line 310, in parse
    res, skipped_tokens = self._parse(timestr, **kwargs)
TypeError: 'NoneType' object is not iterable
```

Also note that there is no such thing as python3-dateutil-1.5 :)

Comment 2 Zbigniew Jędrzejewski-Szmek 2015-01-21 16:01:55 UTC
This fixed upstream. ValueError is raised properly. 

>>> from dateutil import parser
>>> parser.parse('2012-junk', fuzzy=True)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "dateutil/parser.py", line 743, in parse
    return DEFAULTPARSER.parse(timestr, **kwargs)
  File "dateutil/parser.py", line 303, in parse
    raise ValueError("unknown string format")
ValueError: unknown string format
>>> dateutil.__version__
'2.4.0'

Comment 3 Zbigniew Jędrzejewski-Szmek 2015-01-21 22:28:36 UTC
OK, since we'll going straight to dateutils 2.4, everything should work.