commit: 3b46180f871d49d8624b2140b5e29565f7e80b18
Author: Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Sun Sep 14 09:41:25 2025 +0000
Commit: Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Sun Sep 14 09:41:25 2025 +0000
URL: https://gitweb.gentoo.org/proj/portage.git/commit/?id=3b46180f
_urlopen: partly revert earlier change
In 4b57307865cf4bcde8ef5150303eb48465a43689, I also made a speculative
fix to timestamp_to_http but that turns out to be wrong (though I thought
I'd tested that too):
```
$ emerge -G hello -v --jobs=1
Traceback (most recent call last):
File "/usr/lib/python-exec/python3.13/emerge", line 57, in main
retval = emerge_main()
File "/usr/lib/python3.13/site-packages/_emerge/main.py", line 1314, in
emerge_main
return run_action(emerge_config)
File "/usr/lib/python3.13/site-packages/_emerge/actions.py", line 3521, in
run_action
mytrees["bintree"].populate(
~~~~~~~~~~~~~~~~~~~~~~~~~~~^
getbinpkgs="--getbinpkg" in emerge_config.opts,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
...<2 lines>...
**kwargs,
^^^^^^^^^
)
^
File "/usr/lib/python3.13/site-packages/portage/dbapi/bintree.py", line 964,
in populate
self._populate_remote(
~~~~~~~~~~~~~~~~~~~~~^
getbinpkg_refresh=getbinpkg_refresh,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
pretend=pretend,
^^^^^^^^^^^^^^^^
verbose=verbose,
^^^^^^^^^^^^^^^^
)
^
File "/usr/lib/python3.13/site-packages/portage/dbapi/bintree.py", line 1463,
in _populate_remote
f = _urlopen(
url,
if_modified_since=local_timestamp,
proxies=proxies,
)
File "/usr/lib/python3.13/site-packages/portage/util/_urlopen.py", line 50,
in urlopen
request.add_header("If-Modified-Since",
timestamp_to_http(if_modified_since))
~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.13/site-packages/portage/util/_urlopen.py", line 70,
in timestamp_to_http
stamp = mktime_tz(dt.timetuple())
File "/usr/lib/python3.13/email/_parseaddr.py", line 193, in mktime_tz
if data[9] is None:
~~~~^^^
IndexError: tuple index out of range
```
Revert that part. I think it's unnecessary anyway because of the formatdate
call.
Bug: https://bugs.gentoo.org/962832
Fixes: 4b57307865cf4bcde8ef5150303eb48465a43689
Signed-off-by: Sam James <sam <AT> gentoo.org>
lib/portage/util/_urlopen.py | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/lib/portage/util/_urlopen.py b/lib/portage/util/_urlopen.py
index 68403037ce..b390ec3296 100644
--- a/lib/portage/util/_urlopen.py
+++ b/lib/portage/util/_urlopen.py
@@ -3,6 +3,7 @@
import io
from datetime import datetime
+from time import mktime
from email.utils import formatdate, parsedate_tz, mktime_tz
from urllib.request import urlopen as _urlopen
import urllib.parse as urllib_parse
@@ -67,7 +68,7 @@ def urlopen(url, timeout=10, if_modified_since=None,
headers={}, proxies=None):
def timestamp_to_http(timestamp):
dt = datetime.fromtimestamp(float(int(timestamp) + TIMESTAMP_TOLERANCE))
- stamp = mktime_tz(dt.timetuple())
+ stamp = mktime(dt.timetuple())
return formatdate(timeval=stamp, localtime=False, usegmt=True)