Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 907816 - sys-apps/portage-3.0.48 emerge --sync: AttributeError: 'RepoConfig' object has no attribute 'sync_openpgp_key_server'
Summary: sys-apps/portage-3.0.48 emerge --sync: AttributeError: 'RepoConfig' object ha...
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal major (vote)
Assignee: Portage team
URL:
Whiteboard:
Keywords: PullRequest
Depends on: 907502
Blocks:
  Show dependency tree
 
Reported: 2023-06-04 00:22 UTC by Hank Leininger
Modified: 2023-06-06 10:58 UTC (History)
2 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Hank Leininger 2023-06-04 00:22:54 UTC
# emerge --sync
>>> Syncing repository 'gentoo' into '/usr/portage'...
Traceback (most recent call last):
  File "/usr/lib/python3.10/site-packages/portage/util/_async/AsyncFunction.py", line 45, in _run
    result = self.target(*(self.args or []), **(self.kwargs or {}))
  File "/usr/lib/python3.10/site-packages/portage/sync/controller.py", line 165, in sync
    taskmaster.run_tasks(tasks, func, status, options=task_opts)
  File "/usr/lib/python3.10/site-packages/portage/sync/controller.py", line 65, in run_tasks
    result = getattr(inst, func)(**kwargs)
  File "/usr/lib/python3.10/site-packages/portage/sync/modules/webrsync/webrsync.py", line 106, in sync
    ] = self.repo.sync_openpgp_key_server
AttributeError: 'RepoConfig' object has no attribute 'sync_openpgp_key_server'

This is on a box with:

# cat /etc/portage/repos.conf/gentoo.conf 
[DEFAULT]
main-repo = gentoo

[gentoo]
location = /usr/portage
sync-type = webrsync
sync-webrsync-verify-signature = true
sync-uri = rsync://rsync.us.gentoo.org/gentoo-portage

And:

sys-apps/portage-3.0.48::gentoo was built with the following:
USE="(ipc) native-extensions rsync-verify (xattr) -apidoc -build -debug -doc -gentoo-dev (-selinux) -test" ABI_X86="(64)" PYTHON_TARGETS="python3_10 -pypy3 -python3_11 -python3_12"
FEATURES="network-sandbox pid-sandbox buildpkg-live ebuild-locks strict config-protect-if-modified userfetch assume-digests binpkg-multi-instance binpkg-docompress multilib-strict merge-sync splitdebug preserve-libs news unknown-features-warn binpkg-logs usersandbox sfperms usersync unmerge-orphans userpriv protect-owned qa-unresolved-soname-deps xattr unmerge-logs binpkg-dostrip ipc-sandbox sandbox distlocks fixlafiles parallel-fetch"


# equery l portage python gemato gentoolkit pax-utils
 * Searching for portage ...
[IP-] [  ] sys-apps/portage-3.0.48:0

 * Searching for python ...
[IP-] [  ] dev-lang/python-3.10.11:3.10

 * Searching for gemato ...
[IP-] [  ] app-portage/gemato-20.4:0

 * Searching for gentoolkit ...
[IP-] [  ] app-portage/gentoolkit-0.6.1-r3:0

 * Searching for pax-utils ...
[IP-] [  ] app-misc/pax-utils-1.3.7:0

If I downgrade to sys-apps/portage-3.0.47-r1, emerge --sync succeeds.

If I downgrade to app-portage/gemato-20.1, it still fails.

I've tried setting PORTAGE_GPG_KEY_SERVER=hkps://keys.gentoo.org in make.conf and sync-openpgp-keyserver = hkps://keys.gentoo.org in /etc/portage/repos.conf/gentoo.conf, no change.

The first mention I see of sync_openpgp_key_server in portage's source is from
https://gitweb.gentoo.org/proj/portage.git/commit/?id=e1f8478c666de6c2310381457e846b4fe8fa8b39

There is an sync_openpgp_keyserver, so I thought it might be a simple typo, but locally s/sync_openpgp_key_server/sync_openpgp_keyserver/ in .../webrsync/webrsync.py results in a different error:

# emerge --sync
>>> Syncing repository 'gentoo' into '/usr/portage'...
expected str, bytes or os.PathLike object, not bool:
   /usr/bin/emerge-webrsync
Traceback (most recent call last):
  File "/usr/lib/python3.10/site-packages/portage/process.py", line 464, in spawn
    _exec(
  File "/usr/lib/python3.10/site-packages/portage/process.py", line 922, in _exec
    os.execve(binary, myargs, env)
  File "/usr/lib/python3.10/site-packages/portage/__init__.py", line 280, in __call__
    rval = self._func(*wrapped_args, **wrapped_kwargs)
TypeError: expected str, bytes or os.PathLike object, not bool
!!! emerge-webrsync error in /usr/portage
Comment 1 John Bowler 2023-06-05 16:03:27 UTC
I webrsync overnight every day (via cron):

sync-type = webrsync
sync-uri = rsync://rsync.gentoo.org/gentoo-portage
auto-sync = yes
sync-webrsync-verify-signature = true

Yesterday there were no updates (I'm using ~).  On investigation today (manual emerge --sync) I have the error reported in this bug.  I put this in /etc/portage/package.mask/portage:

#https://bugs.gentoo.org/907816
=sys-apps/portage-3.0.48

emerge --sync now works.

This is a particularly bad bug because it seems that it will require a change to be made by every gentoo user who encounters it.  It's not a difficult change (masking 3.0.48) but it's going to be hard to find.
Comment 2 Sam James archtester Gentoo Infrastructure gentoo-dev Security 2023-06-05 16:05:41 UTC
Yep, I'll be pushing the fix later. I was working on tests for the sync side.
Comment 3 Larry the Git Cow gentoo-dev 2023-06-06 10:32:24 UTC
The bug has been referenced in the following commit(s):

https://gitweb.gentoo.org/proj/portage.git/commit/?id=2660f630e18ea5893c3463972516b174c2e8443c

commit 2660f630e18ea5893c3463972516b174c2e8443c
Author:     Sam James <sam@gentoo.org>
AuthorDate: 2023-06-06 10:18:44 +0000
Commit:     Sam James <sam@gentoo.org>
CommitDate: 2023-06-06 10:30:55 +0000

    sync: webrsync: fix passing down PORTAGE_SYNC_WEBRSYNC_GPG
    
    This needs to be a string, not an int, because an int doesn't
    mean anything when we're passing it as an argument to an external
    process by shelling out.
    
    Bug: https://bugs.gentoo.org/907816
    Signed-off-by: Sam James <sam@gentoo.org>
    Closes: https://github.com/gentoo/portage/pull/1050

 lib/portage/sync/modules/webrsync/webrsync.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

https://gitweb.gentoo.org/proj/portage.git/commit/?id=3dc119d927916e75d380a692bd9bca32fd9d42fe

commit 3dc119d927916e75d380a692bd9bca32fd9d42fe
Author:     Sam James <sam@gentoo.org>
AuthorDate: 2023-06-06 10:12:29 +0000
Commit:     Sam James <sam@gentoo.org>
CommitDate: 2023-06-06 10:30:16 +0000

    sync: webrsync: fix keyserver variable typo
    
    Much like with the news item issues, I think we need some full
    end-to-end tests for sync.
    
    Bug: https://bugs.gentoo.org/907816
    Signed-off-by: Sam James <sam@gentoo.org>

 NEWS                                          | 6 ++++++
 lib/portage/sync/modules/webrsync/webrsync.py | 2 +-
 2 files changed, 7 insertions(+), 1 deletion(-)
Comment 4 Larry the Git Cow gentoo-dev 2023-06-06 10:58:22 UTC
The bug has been closed via the following commit(s):

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=997d11dbaeb7a031f8020522a41b8c319d449005

commit 997d11dbaeb7a031f8020522a41b8c319d449005
Author:     Sam James <sam@gentoo.org>
AuthorDate: 2023-06-06 10:58:07 +0000
Commit:     Sam James <sam@gentoo.org>
CommitDate: 2023-06-06 10:58:07 +0000

    sys-apps/portage: add 3.0.48.1
    
    Closes: https://bugs.gentoo.org/907502
    Closes: https://bugs.gentoo.org/907816
    Signed-off-by: Sam James <sam@gentoo.org>

 sys-apps/portage/Manifest                |   1 +
 sys-apps/portage/portage-3.0.48.1.ebuild | 296 +++++++++++++++++++++++++++++++
 2 files changed, 297 insertions(+)