# 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
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.
Yep, I'll be pushing the fix later. I was working on tests for the sync side.
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(-)
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(+)