[gentoo-portage-dev] [PATCH] emerge: use parse_intermixed_args when available (bug 784566)
The included unit test case previously failed with this error: emerge: error: unrecognized arguments: dev-libs/A Bug: https://bugs.gentoo.org/784566 Signed-off-by: Zac Medico --- lib/_emerge/main.py | 2 +- lib/portage/tests/emerge/test_simple.py | 10 +- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/lib/_emerge/main.py b/lib/_emerge/main.py index 31e690584..191be6479 100644 --- a/lib/_emerge/main.py +++ b/lib/_emerge/main.py @@ -834,7 +834,7 @@ def parse_opts(tmpcmdline, silent=False): tmpcmdline = insert_optional_args(tmpcmdline) - myoptions = parser.parse_args(args=tmpcmdline) + myoptions = getattr(parser, "parse_intermixed_args", parser.parse_args)(args=tmpcmdline) if myoptions.alert in true_y: myoptions.alert = True diff --git a/lib/portage/tests/emerge/test_simple.py b/lib/portage/tests/emerge/test_simple.py index 6e282337f..5b110407f 100644 --- a/lib/portage/tests/emerge/test_simple.py +++ b/lib/portage/tests/emerge/test_simple.py @@ -1,6 +1,7 @@ # Copyright 2011-2021 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 +import argparse import subprocess import portage @@ -289,7 +290,14 @@ call_has_and_best_version() { port=binhost_server.server_port, path=binhost_remote_path) - test_commands = ( + test_commands = () + + if hasattr(argparse.ArgumentParser, "parse_intermixed_args"): + test_commands += ( + emerge_cmd + ("--oneshot", "dev-libs/A", "-v", "dev-libs/A"), + ) + + test_commands += ( emerge_cmd + ("--usepkgonly", "--root", cross_root, "--quickpkg-direct=y", "--quickpkg-direct-root", "/", "dev-libs/A"), emerge_cmd + ("--usepkgonly", "--quickpkg-direct=y", "--quickpkg-direct-root", cross_root, "dev-libs/A"), env_update_cmd, -- 2.26.2
Re: [gentoo-portage-dev] profile-formats not respected ?
On 4/20/21 5:03 AM, Joakim Tjernlund wrote: > On Mon, 2021-04-19 at 14:10 -0700, Zac Medico wrote: >> On 4/19/21 6:36 AM, Joakim Tjernlund wrote: >>> I got an embedded ppc32 system which I build in a QEMU user chroot and I >>> cannot >>> make the profile-formats = portage-2 profile-bashrcs profile-set in my own >>> profiles layout.conf >>> work for me. >>> Seems like portage just ignores this setting and I cannot understand why. >>> Any pointers? >>> >>> Jocke >>> >> >> Hopefully this command will provide a clue: >> >> python -c 'import portage; >> print(portage.settings._locations_manager.profiles_complex)' > > Got some progress. I got a profile.bashrc: > .../my-overlay/profiles/cusfpv3/profile.bashrc > where I setup PKG_INSTALL_MASK/INSTALL_MASK and this does not work in > portage-3.0.18. I can echo the vars. and see them set but portage ignores > these settings. > This system was previously using a very old portage, 2.3.76 and that was fine. > > > Another strange thing is my own set, i need to keep that at > .../my-overlay/{sets, sets.conf} > In our amd64 DE profile I can have my sets at > .../my-overlay/profiles/infinera/sets , why is that? A setting like this in /etc/portage/sets.conf would do it: [my-overlay-profile-sets] class = portage.sets.files.StaticFileSet multiset = true directory = /my-overlay/profiles/infinera/sets world-candidate = true > Anyhow, here is my profile printout: > ./print-port.py > (_profile_node(location='/usr/portage/profiles/base', > portage1_directories=True, user_config=False, > profile_formats=('portage-1-compat',), eapi='5', allow_build_id=False, > show_deprecated_warning=False), > _profile_node(location='/usr/portage/profiles/default/linux', > portage1_directories=True, user_config=False, > profile_formats=('portage-1-compat',), > eapi='5', allow_build_id=False, show_deprecated_warning=False), > _profile_node(location='/usr/portage/profiles/arch/base', > portage1_directories=True, user_config=False, > profile_formats=('portage-1-compat',), eapi='5', allow_build_id=False, > show_deprecated_warning=False), > _profile_node(location='/usr/portage/profiles/arch/powerpc', > portage1_directories=True, user_config=False, > profile_formats=('portage-1-compat',), eapi='5', allow_build_id=False, > show_deprecated_warning=False), > _profile_node(location='/usr/portage/profiles/default/linux/powerpc', > portage1_directories=True, user_config=False, > profile_formats=('portage-1-compat',), eapi='5', > allow_build_id=False, show_deprecated_warning=False), > _profile_node(location='/usr/portage/profiles/arch/base', > portage1_directories=True, user_config=False, > profile_formats=('portage-1-compat',), eapi='5', allow_build_id=False, > show_deprecated_warning=False), > _profile_node(location='/usr/portage/profiles/arch/powerpc', > portage1_directories=True, user_config=False, > profile_formats=('portage-1-compat',), eapi='5', allow_build_id=False, > show_deprecated_warning=False), > _profile_node(location='/usr/portage/profiles/arch/powerpc/ppc32', > portage1_directories=True, user_config=False, > profile_formats=('portage-1-compat',), eapi='5', > allow_build_id=False, show_deprecated_warning=False), > _profile_node(location='/usr/portage/profiles/default/linux/powerpc/ppc32', > portage1_directories=True, user_config=False, > profile_formats=('portage-1-compat',), eapi='5', allow_build_id=False, > show_deprecated_warning=False), > _profile_node(location='/usr/portage/profiles/releases', > portage1_directories=True, user_config=False, > profile_formats=('portage-1-compat',), eapi='5', allow_build_id=False, > show_deprecated_warning=False), > _profile_node(location='/usr/portage/profiles/releases/17.0', > portage1_directories=True, user_config=False, > profile_formats=('portage-1-compat',), eapi='5', allow_build_id=False, > show_deprecated_warning=False), > _profile_node(location='/usr/portage/profiles/default/linux/powerpc/ppc32/17.0', > portage1_directories=True, user_config=False, > profile_formats=('portage-1-compat',), eapi='5', allow_build_id=False, > show_deprecated_warning=True), > _profile_node(location='/usr/local/portage/tmv3-target- > overlay/profiles/cusfpv3', portage1_directories=True, user_config=False, > profile_formats=('profile-bashrcs', 'portage-2', 'profile-set'), eapi='5', > allow_build_id=False, > show_deprecated_warning=True), _profile_node(location='/etc/portage/profile', > portage1_directories=True, user_config=True, > profile_formats=('profile-bashrcs', 'profile-set'), > eapi=None, allow_build_id=True, show_deprecated_warning=False)) > Are these effective profile_formats now consistent with your expectations, and do they now behave as you would expect? -- Thanks, Zac signature.asc Description: OpenPGP digital signature
Re: [gentoo-portage-dev] profile-formats not respected ?
On Mon, 2021-04-19 at 14:10 -0700, Zac Medico wrote: > On 4/19/21 6:36 AM, Joakim Tjernlund wrote: > > I got an embedded ppc32 system which I build in a QEMU user chroot and I > > cannot > > make the profile-formats = portage-2 profile-bashrcs profile-set in my own > > profiles layout.conf > > work for me. > > Seems like portage just ignores this setting and I cannot understand why. > > Any pointers? > > > > Jocke > > > > Hopefully this command will provide a clue: > > python -c 'import portage; > print(portage.settings._locations_manager.profiles_complex)' Got some progress. I got a profile.bashrc: .../my-overlay/profiles/cusfpv3/profile.bashrc where I setup PKG_INSTALL_MASK/INSTALL_MASK and this does not work in portage-3.0.18. I can echo the vars. and see them set but portage ignores these settings. This system was previously using a very old portage, 2.3.76 and that was fine. Another strange thing is my own set, i need to keep that at .../my-overlay/{sets, sets.conf} In our amd64 DE profile I can have my sets at .../my-overlay/profiles/infinera/sets , why is that? Anyhow, here is my profile printout: ./print-port.py (_profile_node(location='/usr/portage/profiles/base', portage1_directories=True, user_config=False, profile_formats=('portage-1-compat',), eapi='5', allow_build_id=False, show_deprecated_warning=False), _profile_node(location='/usr/portage/profiles/default/linux', portage1_directories=True, user_config=False, profile_formats=('portage-1-compat',), eapi='5', allow_build_id=False, show_deprecated_warning=False), _profile_node(location='/usr/portage/profiles/arch/base', portage1_directories=True, user_config=False, profile_formats=('portage-1-compat',), eapi='5', allow_build_id=False, show_deprecated_warning=False), _profile_node(location='/usr/portage/profiles/arch/powerpc', portage1_directories=True, user_config=False, profile_formats=('portage-1-compat',), eapi='5', allow_build_id=False, show_deprecated_warning=False), _profile_node(location='/usr/portage/profiles/default/linux/powerpc', portage1_directories=True, user_config=False, profile_formats=('portage-1-compat',), eapi='5', allow_build_id=False, show_deprecated_warning=False), _profile_node(location='/usr/portage/profiles/arch/base', portage1_directories=True, user_config=False, profile_formats=('portage-1-compat',), eapi='5', allow_build_id=False, show_deprecated_warning=False), _profile_node(location='/usr/portage/profiles/arch/powerpc', portage1_directories=True, user_config=False, profile_formats=('portage-1-compat',), eapi='5', allow_build_id=False, show_deprecated_warning=False), _profile_node(location='/usr/portage/profiles/arch/powerpc/ppc32', portage1_directories=True, user_config=False, profile_formats=('portage-1-compat',), eapi='5', allow_build_id=False, show_deprecated_warning=False), _profile_node(location='/usr/portage/profiles/default/linux/powerpc/ppc32', portage1_directories=True, user_config=False, profile_formats=('portage-1-compat',), eapi='5', allow_build_id=False, show_deprecated_warning=False), _profile_node(location='/usr/portage/profiles/releases', portage1_directories=True, user_config=False, profile_formats=('portage-1-compat',), eapi='5', allow_build_id=False, show_deprecated_warning=False), _profile_node(location='/usr/portage/profiles/releases/17.0', portage1_directories=True, user_config=False, profile_formats=('portage-1-compat',), eapi='5', allow_build_id=False, show_deprecated_warning=False), _profile_node(location='/usr/portage/profiles/default/linux/powerpc/ppc32/17.0', portage1_directories=True, user_config=False, profile_formats=('portage-1-compat',), eapi='5', allow_build_id=False, show_deprecated_warning=True), _profile_node(location='/usr/local/portage/tmv3-target- overlay/profiles/cusfpv3', portage1_directories=True, user_config=False, profile_formats=('profile-bashrcs', 'portage-2', 'profile-set'), eapi='5', allow_build_id=False, show_deprecated_warning=True), _profile_node(location='/etc/portage/profile', portage1_directories=True, user_config=True, profile_formats=('profile-bashrcs', 'profile-set'), eapi=None, allow_build_id=True, show_deprecated_warning=False))