Fedora Account System
Red Hat Associate
Red Hat Customer
python-dateutil will be updated to version 2.x and there may be changes that affect this package. If subscription-manager will work with the newer python-dateutil, you can safely close this bug. If subscription-manager really does require python-dateutil 1.5, please use Requires: python-dateutil15 for Fedora versions of the package until it can be updated.
A few interesting things here: - The spec cites an upstream URL and SCM of https://git.fedorahosted.org/cgit/subscription-manager.git/ . That repo hasn't been touched in more than two years, where are the updates coming from? - The package source is a manually assembled tarball. If you *are* using fedorahosted, you don't have to do that. "http://git/fedorahosted.org/cgit/%{name}/snapshot/${name}-%{version}" works nicely if you `git tag` the version. In any case, publicly available sources would be nice. - dateutil.tz.tzutc and dateutil.parser.parse should not have changed at all. Usage of dateutil.tz.tzlocal is probably fine, but I'd suggest focusing any testing there. - I don't have RHEL subscriptions for any of my Fedora boxes, so I did no direct testing. On a personal note, I don't understand why this package exists for Fedora...
Should this package be retired?
Subscription-manager is actively used and developed and shouldn't be retired. We moved to github several years ago, looks like the spec updates were missed, I will fix this in the upstream spec today and it will appear in Fedora on our next build cycle. Package exists for Fedora for Katello/Satellite users who wish to register Fedora/CentOS systems to their servers and have them consume content. We control upstream as well as do the Fedora builds so any changes necessary can be made. I'll get someone on the team looking into that this sprint.
This should be doable, but I do see a couple unexpected unittest failures, if I use upstream python-dateutil 2.4.0 from pip ====================================================================== ERROR: test_system_dst (test.test_format_time.TestFormatTime) ---------------------------------------------------------------------- Traceback (most recent call last): File "/usr/lib/python2.7/site-packages/freezegun/api.py", line 244, in wrapper result = func(*args, **kwargs) File "/usr/lib/python2.7/site-packages/mock.py", line 1201, in patched return func(*args, **keywargs) File "/home/adrian/src/subscription-manager/test/test_format_time.py", line 30, in test_system_dst mock_tz.return_value = tzstr('EST5EDT') File "/usr/lib/python2.7/site-packages/dateutil/tz.py", line 595, in __init__ res = parser._parsetz(s) File "/usr/lib/python2.7/site-packages/dateutil/parser.py", line 923, in _parsetz return DEFAULTTZPARSER.parse(tzstr) File "/usr/lib/python2.7/site-packages/dateutil/parser.py", line 767, in parse l = _timelex.split(tzstr) File "/usr/lib/python2.7/site-packages/dateutil/parser.py", line 139, in split return list(cls(s)) File "/usr/lib/python2.7/site-packages/dateutil/parser.py", line 136, in next return self.__next__() # Python 2.x support File "/usr/lib/python2.7/site-packages/dateutil/parser.py", line 130, in __next__ token = self.get_token() File "/usr/lib/python2.7/site-packages/dateutil/parser.py", line 61, in get_token nextchar = self.instream.read(1) AttributeError: 'str' object has no attribute 'read' ====================================================================== ERROR: test_system_est (test.test_format_time.TestFormatTime) ---------------------------------------------------------------------- Traceback (most recent call last): File "/usr/lib/python2.7/site-packages/freezegun/api.py", line 244, in wrapper result = func(*args, **kwargs) File "/usr/lib/python2.7/site-packages/mock.py", line 1201, in patched return func(*args, **keywargs) File "/home/adrian/src/subscription-manager/test/test_format_time.py", line 60, in test_system_est mock_tz.return_value = tzstr('EST5EDT') File "/usr/lib/python2.7/site-packages/dateutil/tz.py", line 595, in __init__ res = parser._parsetz(s) File "/usr/lib/python2.7/site-packages/dateutil/parser.py", line 923, in _parsetz return DEFAULTTZPARSER.parse(tzstr) File "/usr/lib/python2.7/site-packages/dateutil/parser.py", line 767, in parse l = _timelex.split(tzstr) File "/usr/lib/python2.7/site-packages/dateutil/parser.py", line 139, in split return list(cls(s)) File "/usr/lib/python2.7/site-packages/dateutil/parser.py", line 136, in next return self.__next__() # Python 2.x support File "/usr/lib/python2.7/site-packages/dateutil/parser.py", line 130, in __next__ token = self.get_token() File "/usr/lib/python2.7/site-packages/dateutil/parser.py", line 61, in get_token nextchar = self.instream.read(1) AttributeError: 'str' object has no attribute 'read' This looks to be a bug in python-dateutil: https://bugs.launchpad.net/dateutil/+bug/1331576 I'll test on recent fedora and see if the fedora patches to dateutil fixes this (The fedora patch to use system tzinfo may work around it). Either way, it's an error in test code, we could work around it.
pr for a workaround at https://github.com/candlepin/subscription-manager/pull/1149 That fixes the test case for dateutil 1.5 and 2.4. Otherwise we seem to be okay with dateutil2.
This bug appears to have been reported against 'rawhide' during the Fedora 22 development cycle. Changing version to '22'. More information and reason for this action is here: https://fedoraproject.org/wiki/Fedora_Program_Management/HouseKeeping/Fedora22