Summary: | Using emerge behind proxied firewall fails to access packages | ||
---|---|---|---|
Product: | Portage Development | Reporter: | paul.drews |
Component: | Core | Assignee: | Portage team <dev-portage> |
Status: | RESOLVED WORKSFORME | ||
Severity: | normal | CC: | paul.drews |
Priority: | Normal | ||
Version: | 2.1 | ||
Hardware: | All | ||
OS: | All | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- | |
Bug Depends on: | |||
Bug Blocks: | 377365, 431026 | ||
Attachments: | Version 1 patch to port getbinpkg to use urllib2 for proxy-awareness |
Description
paul.drews
2012-10-16 23:48:04 UTC
For cross-reference, the original report/patch regarding this topic in chromeos is: https://gerrit.chromium.org/gerrit/#/c/34294/ (In reply to comment #1) > For cross-reference, the original report/patch regarding this topic in > chromeos is: > > https://gerrit.chromium.org/gerrit/#/c/34294/ As mentioned in my comment there, none of the functions that your patch modifies (in the getbinpkg module) should be called unless it falls back to the deprecated protocol inside bintree.py. I would really like to avoid making any modifications to the deprecated code, since it should be entirely irrelevant these days. In fact, I'd like to remove the deprecated code. Removing the deprecated code (in dbapi/bintree?) would actually be wonderful. All the new-protocol code is based ultimately on getbinpkg.file_get, which uses wget and curl, which are proxy-capable, so there is no problem. The actual symptom I observe is that the new-protocol code, when it encounters a not-there binpkg, falls back to the old-protocol code. The old-protocol code is doomed to fail also because the binpkg is not-there. But it takes outrageously long to do so, since it times-out due to not being proxy-capable. Has the old-protocol code been deprecated long enough that it is time to remove it and let legacy projects that have neglected to upgrade die of their own neglect? This would be MUCH simpler and less-invasive than my current patch. And would solve my problem neatly. Say the word, I'll re-work this patch as that approach instead. Basically boils down to deleting a big chunk of dbapi.bintree.binarytree.populate(), probably lines 1492-1090. Which would leave some dead-code in getbinpkg that could also be removed. (In reply to comment #3) > Has the old-protocol code been deprecated long enough that it is time to > remove it and let legacy projects that have neglected to upgrade die of > their own neglect? Yes, I've gone ahead and removed it: http://git.overlays.gentoo.org/gitweb/?p=proj/portage.git;a=commit;h=d159be545ecb431addc3e7bb31a8ed8cfd9984af Is there anything else needed? (In reply to comment #4) > (In reply to comment #3) > > Has the old-protocol code been deprecated long enough that it is time to > > remove it and let legacy projects that have neglected to upgrade die of > > their own neglect? > > Yes, I've gone ahead and removed it: > > http://git.overlays.gentoo.org/gitweb/?p=proj/portage.git;a=commit; > h=d159be545ecb431addc3e7bb31a8ed8cfd9984af > > Is there anything else needed? This is released in portage-2.1.11.30 and 2.2.0_alpha141. Excellent! I will try this out in the context of chromeos builds and confirm the fix here. Thanks for the prompt attention on this. I back-ported Zac's patch to the 2.1.10.11-r9 version of portage that the chromeos build uses, and am happy to report that it works like a charm. I'll mark this as "resolved - worksforme" |