Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
Can't force emerge to build media-gfx/freecad-0.21.2-r3
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index Portage & Programming
View previous topic :: View next topic  
Author Message
madyogi
n00b
n00b


Joined: 10 Jun 2016
Posts: 13

PostPosted: Sat Jun 15, 2024 9:49 am    Post subject: Can't force emerge to build media-gfx/freecad-0.21.2-r3 Reply with quote

[Administrator note: this post, and the first response, were originally attached to the unrelated topic media-gfx/freecad-0.21.2-r2: useless rebuild for USE=qt5. That topic was a complaint about Qt5 versus Qt6. This topic is about some package features not being usable with Python 3.12. -Hu]

Here is my gentoo adventure, where I got stuck and it might be subject related.

Code:
!!! The ebuild selected to satisfy "media-gfx/freecad" has unmet requirements.
- media-gfx/freecad-0.21.2-r3::gentoo USE="addonmgr fem gui idf image inspection material openscad part-design path points raytracing robot show surface techdraw tux -cloud -debug -designer -netgen -pcl (-qt6) -test" ABI_X86="(64)" PYTHON_SINGLE_TARGET="python3_12 -python3_10 -python3_11"

  The following REQUIRED_USE flag constraints are unsatisfied:
    python_single_target_python3_12? ( gui? ( qt6 ) )

  The above constraints are a subset of the following complete expression:
    exactly-one-of ( python_single_target_python3_10 python_single_target_python3_11 python_single_target_python3_12 ) designer? ( gui ) inspection? ( points ) path? ( robot ) python_single_target_python3_12? ( gui? ( qt6 ) )

Entire system got upgraded, then I run emerge with "--depclean", to remove any oldies. No errors, so I went for the media-gfx/freecad. Portage make.conf shows
Code:
grep -r "PYTHON" /etc/portage/*
/etc/portage/make.conf:#PYTHON_TARGETS="python3_7"
/etc/portage/make.conf:#PYTHON_TARGETS="python3_12"
/etc/portage/make.conf:PYTHON_SINGLE_TARGET="python3_12"

Also, emerge --info lists

Code:
dev-lang/python:           3.10.14_p1-r1::gentoo, 3.11.9-r1::gentoo, 3.12.3-r1::gentoo
...
PYTHON_SINGLE_TARGET="python3_12" PYTHON_TARGETS="python3_12"

Yes, I still see older python-3.x versions are present in the system. And I bet(?), I can't remove these because something else depend on them.
What am I missing? How to push it through (not necessarily with a bat)?
Back to top
View user's profile Send private message
paulusbrand
Tux's lil' helper
Tux's lil' helper


Joined: 20 May 2009
Posts: 112

PostPosted: Sat Jun 15, 2024 10:52 am    Post subject: Reply with quote

I'm running into the same problem.

When using python 3.12 qt6 use flag needs to be enabled. Probably (comment in ebuiild) it's because pyside2 will not get python 3.12 support.
But I can't enable the qt6 flag, so building with python3.12 is impossible now.

When trying to build without the gui flag. The next problem is vtk, it does not support python 3.12

I'm trying to build with python 3.11 now:
USE="python_single_target_python3_11 -python_single_target_python3_12" emerge freecad

with this in make.conf:
PYTHON_TARGETS="python3_11 python3_12"
Back to top
View user's profile Send private message
logrusx
Veteran
Veteran


Joined: 22 Feb 2018
Posts: 1833

PostPosted: Sat Jun 15, 2024 6:36 pm    Post subject: Reply with quote

madyogi wrote:


Here is my gentoo adventure, where I got stuck and it might be subject related.

Code:
!!! The ebuild selected to satisfy "media-gfx/freecad" has unmet requirements.
- media-gfx/freecad-0.21.2-r3::gentoo USE="addonmgr fem gui idf image inspection material openscad part-design path points raytracing robot show surface techdraw tux -cloud -debug -designer -netgen -pcl (-qt6) -test" ABI_X86="(64)" PYTHON_SINGLE_TARGET="python3_12 -python3_10 -python3_11"

  The following REQUIRED_USE flag constraints are unsatisfied:
    python_single_target_python3_12? ( gui? ( qt6 ) )

  The above constraints are a subset of the following complete expression:
    exactly-one-of ( python_single_target_python3_10 python_single_target_python3_11 python_single_target_python3_12 ) designer? ( gui ) inspection? ( points ) path? ( robot ) python_single_target_python3_12? ( gui? ( qt6 ) )

Entire system got upgraded, then I run emerge with "--depclean", to remove any oldies. No errors, so I went for the media-gfx/freecad. Portage make.conf shows
madyogi wrote:
Code:
grep -r "PYTHON" /etc/portage/*
/etc/portage/make.conf:#PYTHON_TARGETS="python3_7"
/etc/portage/make.conf:#PYTHON_TARGETS="python3_12"
/etc/portage/make.conf:PYTHON_SINGLE_TARGET="python3_12"


Putting python related stuff in make.conf is discouraged. Instead use the syntax:

Code:
*/* PYTHON_SINGLE_TARGET -* python3_12


in package.use and similarly for PYTHON_TARGETS.

I still find it more concise for individual packages, but ultimately for individual packages or, if you're using emerge autounmask output, expanded use flags are OK too.

madyogi wrote:
Also, emerge --info lists

Code:
dev-lang/python:           3.10.14_p1-r1::gentoo, 3.11.9-r1::gentoo, 3.12.3-r1::gentoo
...
PYTHON_SINGLE_TARGET="python3_12" PYTHON_TARGETS="python3_12"

Yes, I still see older python-3.x versions are present in the system. And I bet(?), I can't remove these because something else depend on them.
What am I missing? How to push it through (not necessarily with a bat)?


What you're missing is clearly stated in the output you've got, you need qt6 for python 3.12 support, as paulusbrand already wrote.

But you're missing something else too:

Gentoo Python Guide wrote:
A single-impl package is a package requiring the user to choose exactly one Python implementation to be built against. This means that the scripts installed by that package will be run via specified Python interpreter, and that the modules and extensions will be importable from it only. The package’s Python reverse dependencies will also have to use the same implementation. Since the package can’t support having more than one implementation enabled, its reverse dependencies have to be simple-impl as well.


I hope that fills the picture for you.

Best Regards,
Georgi
Back to top
View user's profile Send private message
Hu
Administrator
Administrator


Joined: 06 Mar 2007
Posts: 21985

PostPosted: Sat Jun 15, 2024 6:56 pm    Post subject: Reply with quote

As paulusbrand alluded to though, USE=qt6 is masked for this package, so it is not possible to enable it. Thus, this package cannot presently be built with both PYTHON_SINGLE_TARGET=python3_12 and USE=gui, because enabling both of those requires setting USE=qt6, but the use mask forces USE=-qt6.
Back to top
View user's profile Send private message
madyogi
n00b
n00b


Joined: 10 Jun 2016
Posts: 13

PostPosted: Sun Jun 16, 2024 7:03 am    Post subject: Reply with quote

Hu wrote:
As paulusbrand alluded to though, USE=qt6 is masked for this package, so it is not possible to enable it. Thus, this package cannot presently be built with both PYTHON_SINGLE_TARGET=python3_12 and USE=gui, because enabling both of those requires setting USE=qt6, but the use mask forces USE=-qt6.


You'er right. I did a complete @world update, then played with all of the USE flags. qt5, qt6, gui, python3_12. With or without b-deps. Nothing forces the build process to start.
Back to top
View user's profile Send private message
Hu
Administrator
Administrator


Joined: 06 Mar 2007
Posts: 21985

PostPosted: Sun Jun 16, 2024 2:37 pm    Post subject: Reply with quote

As I read the output, either setting USE=-gui or switching to PYTHON_SINGLE_TARGET=python3_11 should work. I cannot comment on whether either of these removes functionality you want.
Back to top
View user's profile Send private message
madyogi
n00b
n00b


Joined: 10 Jun 2016
Posts: 13

PostPosted: Mon Jun 17, 2024 4:30 pm    Post subject: Nope Reply with quote

Hu wrote:
As I read the output, either setting USE=-gui or switching to PYTHON_SINGLE_TARGET=python3_11 should work. I cannot comment on whether either of these removes functionality you want.

Well, switching off gui should lead to server-side scripting version being built (headless mode). At lest that's what equery uses media-gfx/freecad claims.
This one:
Code:
USE="python_single_target_python3_11 -python_single_target_python3_12" emerge -a media-gfx/freecad

spits out that
Quote:
The following REQUIRED_USE flag constraints are unsatisfied:
webchannel? ( qml ) webengine? ( positioning quick qml )

So I went with:
Code:
USE="python_single_target_python3_11 -python_single_target_python3_12 -webchannel" emerge -a media-gfx/freecad

to switch webchannel off and that brought:

Quote:
The following USE changes are necessary to proceed:
(see "package.use" in the portage(5) man page for more details)
# required by media-gfx/freecad-0.21.2-r3::gentoo[gui,python_single_target_python3_11]
# required by media-gfx/freecad (argument)
>=dev-python/pyside2-5.15.14 webchannel


Since it can't be switched off, adding positioning quick qml (flags for dev-python/pyside2 and dev-qt/qtwebchannell)
Code:
USE="-python_single_target_python3_12 python_single_target_python3_11 positioning quick qml" emerge -aD --with-bdeps=y media-gfx/freecad

made the build process to go. Hope this one helps someone...
Back to top
View user's profile Send private message
user7719
n00b
n00b


Joined: 19 Feb 2021
Posts: 64

PostPosted: Thu Jun 27, 2024 5:56 pm    Post subject: Re: Nope Reply with quote

madyogi wrote:
Hu wrote:
As I read the output, either setting USE=-gui or switching to PYTHON_SINGLE_TARGET=python3_11 should work. I cannot comment on whether either of these removes functionality you want.

Well, switching off gui should lead to server-side scripting version being built (headless mode). At lest that's what equery uses media-gfx/freecad claims.
This one:
Code:
USE="python_single_target_python3_11 -python_single_target_python3_12" emerge -a media-gfx/freecad

spits out that
Quote:
The following REQUIRED_USE flag constraints are unsatisfied:
webchannel? ( qml ) webengine? ( positioning quick qml )

So I went with:
Code:
USE="python_single_target_python3_11 -python_single_target_python3_12 -webchannel" emerge -a media-gfx/freecad

to switch webchannel off and that brought:

Quote:
The following USE changes are necessary to proceed:
(see "package.use" in the portage(5) man page for more details)
# required by media-gfx/freecad-0.21.2-r3::gentoo[gui,python_single_target_python3_11]
# required by media-gfx/freecad (argument)
>=dev-python/pyside2-5.15.14 webchannel


Since it can't be switched off, adding positioning quick qml (flags for dev-python/pyside2 and dev-qt/qtwebchannell)
Code:
USE="-python_single_target_python3_12 python_single_target_python3_11 positioning quick qml" emerge -aD --with-bdeps=y media-gfx/freecad

made the build process to go. Hope this one helps someone...


This did help me. Is there a way to set the use flags permanently for this package?
Back to top
View user's profile Send private message
asturm
Developer
Developer


Joined: 05 Apr 2007
Posts: 8995

PostPosted: Fri Jun 28, 2024 9:18 am    Post subject: Reply with quote

Yes, just read through your own quote. (Hint: Portage comments)
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Portage & Programming All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum