MageSlayer / paludis-gentoo-patches

Unofficial Gentoo patches for Paludis package manager
GNU General Public License v2.0
14 stars 7 forks source link

Change in gentoo tree breaking paludis #23

Open hlandgarten opened 4 years ago

hlandgarten commented 4 years ago

Starting today I get this when updating:

Deciding: 6 restarts, 22112 steps, 1 metadata (1 gentoo)

Error:

MageSlayer commented 4 years ago

Do you have any idea about what portage feature might trigger that?

hlandgarten commented 4 years ago

looks like changes to:

/usr/portage/eclass/python-single-r1.eclass: PYTHON_USEDEP='%PYTHON_USEDEP-HAS-BEEN-REMOVED%'

MageSlayer commented 4 years ago

Which exactly package are you trying to update? Is paludis itself?

hlandgarten commented 4 years ago

/usr/portage/eclass/python-single-r1.eclass changed on Feb 10 and now cave resolve installed-packages no long works.

MageSlayer commented 4 years ago
cave resolve installed-packages 

that's too broad and depends on your installed packages. I have the same python-single-r1.eclass file. I don't think I can help unless your narrow down your paludis issue to something I can reproduce.

hlandgarten commented 4 years ago

This command causes the issue for me:

sudo cave resolve ${CAVE_RESUME_FILE_OPT} -c -km -Km -Cs -P "/" -Si -Rn installed-packages

hlandgarten commented 4 years ago

${CAVE_RESUME_FILE_OPT} is /tmp/resume_file

MageSlayer commented 4 years ago

Once again, "installed-packages" is a specification to re-install all your installed packages. Unless you avoid reinstall all your packages (unknown to me) there is nothing I help you.

Try resolving "boost" first.

hlandgarten commented 4 years ago

That command installs all packages if their ebuild has been changed. It does not rebuild world. I tried to reinstall boost and it built fine. The error is coming when the paludis ebuild is scanned for dependencies and it hits the boost dependencies. There is obviously a new prefix that paludis doesn't know about.

hlandgarten commented 4 years ago

BTW if get the same error with cave resolve world -c

hlandgarten commented 4 years ago

Same error trying to rebuild paludis: cave resolve paludis -1z Deciding: 2 steps

Error:

kdudka commented 4 years ago

I get a similar error from emerge when I have the compiz-reloaded overlay enabled:

!!! The following installed packages are masked:
- x11-apps/fusion-icon-0.2.4-r1::compiz-reloaded (masked by: invalid: DEPEND: Invalid atom (Invalid use dep: '%PYTHON_USEDEP-HAS-BEEN-REMOVED%'), token 11 in '/var/db/pkg/x11-apps/fusion-icon-0.2.4-r1/DEPEND', invalid: RDEPEND: Invalid atom (Invalid use dep: '%PYTHON_USEDEP-HAS-BEEN-REMOVED%'), token 11 in '/var/db/pkg/x11-apps/fusion-icon-0.2.4-r1/RDEPEND')
- x11-misc/ccsm-0.8.16::compiz-reloaded (masked by: invalid: RDEPEND: Invalid atom (Invalid use dep: '%PYTHON_USEDEP-HAS-BEEN-REMOVED%'), token 1 in '/var/db/pkg/x11-misc/ccsm-0.8.16/RDEPEND')

My guess is that this error is caused by metadata of the paludis-gentoo-overlay overlay, rather than the code of paludis. Unfortunately, I do not use paludis any more to reproduce this locally.

MageSlayer commented 4 years ago

This time it was much closer. resolving paludis via

# cave resolve --lazy paludis -x

... causes

>>> Writing VDB entry keys ...

!!! ERROR in sys-apps/paludis-9999::paludis-gentoo-overlay:
!!! In paludis_pipe_command at line 5467
!!! paludis_pipe_command returned error 'E' with text 'exception 'Name '%PYTHON_USEDEP-HAS-BEEN-REMOVED%' is not a valid choice name with prefix' (paludis::ChoiceNameWithPrefixError)'

!!! Call stack:
!!!    * paludis_pipe_command (/var/tmp/paludis/sys-apps-paludis-9999/temp/loadsaveenv:5467)
!!!    * paludis_rewrite_var (/var/tmp/paludis/sys-apps-paludis-9999/temp/loadsaveenv:5480)
!!!    * main (/usr/libexec/paludis/write_vdb_entry.bash:143)
!!!    * main (/usr/libexec/paludis/write_vdb_entry.bash:170)
MageSlayer commented 4 years ago

I managed to resolve the issue at least for paludis. It all boils down to ${PYTHON_USEDEP} dependency use flags in ebuilds. Changing them to ${PYTHON_SINGLE_USEDEP} as in https://github.com/MageSlayer/paludis-gentoo-overlay/commit/9b0ccddfd48d4e21e79cc5d2163e5ad2b2860ce8makes it starts to work right.

Thus, I believe it's not a bug in paludis, but in stale ebuilds. Please check and close if confirm.

hlandgarten commented 4 years ago

Changes fixed immediate issues but are now causing this error:

  * dev-libs/boost-1.72.0-r1:0::gentoo
    Did not meet >=dev-libs/boost-1.41.0:=[python,python_single_target_python2_7(-)?], use existing if same metadata, installing to / from sys-apps/paludis-9999:0::installed
        Flag 'python_single_target_python2_7' enabled if it is enabled for 'sys-apps/paludis-9999:0::installed', assuming disabled if missing

boost does not have python_single_target to enable

MageSlayer commented 4 years ago

Nice catch. Try https://github.com/MageSlayer/paludis-gentoo-overlay/commit/3448653761f22050890bfee8e44e4f88e2119588

hlandgarten commented 4 years ago

dependency issues fixed but now getting this error when building paludis:

-- Found PythonLibs: /usr/lib/libpython3.6m.so (found version "3.6.10") -- Found PythonInterp: /usr/bin/python (found version "3.6.10") CMake Error at CMakeLists.txt:321 (get_filename_component): get_filename_component called with incorrect number of arguments

hlandgarten commented 4 years ago

More info and a work-around: setting the default python to python27 with eselect allows paludis to build normally. If the default python is python36 then paludis will not build as shown above.

MageSlayer commented 4 years ago

Yes. Your are right. I need to check if paludis can actually be built with 3+ Python and if no, limit it to 2.7 only.

hlandgarten commented 4 years ago

Could be some help here: https://blogs.gentoo.org/mgorny/2020/02/10/no-more-python_targets-in-single-r1/