Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
More FreeCAD pain. Sorry.
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
lars_the_bear
Guru
Guru


Joined: 05 Jun 2024
Posts: 439

PostPosted: Mon Sep 16, 2024 7:49 am    Post subject: More FreeCAD pain. Sorry. Reply with quote

Hi

I had a lot of trouble, not to mention four days of compilation, to install FreeCAD on one of my Gentoo systems. Now I want to install it on another and, ideally, use all the binary packages I created the first time around, which are now in a binhost.

On my first attempt to install FreeCAD, I raised a thread in this forum.

https://forums.gentoo.org/viewtopic-t-1169699-highlight-freecad+python.html

Essentially, the problem was:

Code:

!!! The ebuild selected to satisfy "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 ) )


To get past the point on my last installation, I had to add the 'qt6' USE flag to `media-gfx/freecad`. This was just the first step in a long journey, but it was at least a step.

On my new system, I'm getting almost the same error message when I `emerge freecad`.

Code:

!!! The ebuild selected to satisfy "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 only different I can see is that (-qt6) is now in parentheses. No amount of fiddling with USE flags now seems to get me past this point.

The FreeCAD .ebuild hasn't changed between this install attempt and the previous one, so far as I can tell. But I guess something has changed -- I just can't see what.

Can anybody help me get past this point?

BR, Lars.
Back to top
View user's profile Send private message
Ionen
Developer
Developer


Joined: 06 Dec 2018
Posts: 2800

PostPosted: Mon Sep 16, 2024 8:18 am    Post subject: Reply with quote

Edit: see post below, the qt6 USE was (just) un-stable-masked so this post is mostly no longer relevant, albeit may want to accept keywords the 1.0_rc due to the UI issues.

freecad with qt6 is still considered buggy/experimental, while the qt5 alternative needs the python3.11-only pyside2 (which is terrible, believe most would rather deal with a few potential UI bugs than pyside2).

Maintainers decided to keep USE=qt6 masked in stable for now because of the experimental status, thus why you are unable to set it. I'd personally think it'd be better off unmasked given the alternative though, esp. with the Gentoo default being python3.12 resulting in confusion when being asked to set qt6 to go with it. Not that I maintain/use freecad nor kept up with issues, so not something I'll change myself.

You can override this in two ways, either package.accept_keywords freecad (it can be the same version that's already stable, this just let portage not consider it "the stable version" anymore which lifts the stable-only USE masks), or override the mask itself by adding media-gfx/freecad -qt6 to /etc/portage/profile/package.use.stable.mask (the - in -qt6 is intentional, this is to 'unmask", also note that this is under the /profile/ directory and not at top level).

Alternative would be to enable python3.11 on freecad and dependencies so you can use qt5, but I think that's better avoided.

If building freecad yourself is not something you absolutely want if it's going to give headaches and long build times, using the upstream appimage or flatpak is another more simple alternative too.


Last edited by Ionen on Mon Sep 16, 2024 8:37 am; edited 1 time in total
Back to top
View user's profile Send private message
AndrewAmmerlaan
Developer
Developer


Joined: 25 Jun 2014
Posts: 376
Location: Nijmegen

PostPosted: Mon Sep 16, 2024 8:31 am    Post subject: Reply with quote

Quote:
freecad with qt6 is still considered buggy/experimental


The new (still testing) freecad 1.0_rc1 already works a lot better with qt6 (notably the addon manager and navcube work again, which I think were the major usability issues). I've also removed the stable mask of the qt6 flag and enabled it by default for the release candidate.

I recommend to try 1.0_rc1, it's still a release candidate but I think it will give you a smoother experience in terms of dependency resolution and usability with qt6.
_________________
OS: Gentoo 6.8.10-gentoo-dist, ~amd64, 23.0/desktop/plasma/systemd
MB: MSI Z370-A PRO
CPU: Intel Core i9-9900KS
GPU: Intel Arc A770 16GB & Intel UHD Graphics 630
SSD: Samsung 970 EVO Plus 2 TB
RAM: Crucial Ballistix 32GB DDR4-2400
Back to top
View user's profile Send private message
Ionen
Developer
Developer


Joined: 06 Dec 2018
Posts: 2800

PostPosted: Mon Sep 16, 2024 8:43 am    Post subject: Reply with quote

AndrewAmmerlaan wrote:
Quote:
freecad with qt6 is still considered buggy/experimental


The new (still testing) freecad 1.0_rc1 already works a lot better with qt6 (notably the addon manager and navcube work again, which I think were the major usability issues). I've also removed the stable mask of the qt6 flag and enabled it by default for the release candidate.

I recommend to try 1.0_rc1, it's still a release candidate but I think it will give you a smoother experience in terms of dependency resolution and usability with qt6.
Nice, I'd argue it probably wouldn't hurt to stabilize the rc after a bit of time (even if it's odd to stabilize a rc, but it's about what's better for users). I guess it's a tad too recent right now though.

On a side-reminder, plasma profile enables USE=qt6 by default (and some users also set it globally), now that the mask is gone it may get auto-flipped on the stable one for some users regardless of ebuild default. At least it'll make it more emerge'able, albeit if issues are really bad then I don't know what's better until we can stabilize 1.0.
Back to top
View user's profile Send private message
lars_the_bear
Guru
Guru


Joined: 05 Jun 2024
Posts: 439

PostPosted: Mon Sep 16, 2024 9:53 am    Post subject: Reply with quote

Ionen wrote:

You can override this in two ways, either package.accept_keywords freecad (it can be the same version that's already stable, this just let portage not consider it "the stable version" anymore which lifts the stable-only USE masks), or override the mask itself by adding media-gfx/freecad -qt6 to /etc/portage/profile/package.use.stable.mask (the - in -qt6 is intentional, this is to 'unmask", also note that this is under the /profile/ directory and not at top level).


Thank you. The first of these approaches seems to want to give me 1.0_rc1, while the second gets me 0.21.2-r3-3, which I already have binaries for. But, even though I have binaries, neither builds because:

Code:

 * There is NOT at least 80 GiB RAM


80 gigabytes? Really? Even when I'm getting a binary? Can this check be overridden? Or do I have to create a colossal swap file?

BR, Lars.
Back to top
View user's profile Send private message
AndrewAmmerlaan
Developer
Developer


Joined: 25 Jun 2014
Posts: 376
Location: Nijmegen

PostPosted: Mon Sep 16, 2024 10:03 am    Post subject: Reply with quote

Is that check-required failure from the freecad ebuild or from a different one? Freecad should check for only 2GB of disk space.

The usual culprit for a huge ram requirement is qtwebengine, you can reduce this by reducing the --jobs parameter for that build (RAM requirement there scales linearly with parallelism).

Note though that freecad needs to be rebuilt every time qt upgrades, so your pre-built gpkgs might force a downgrade of qt. I recommend upgrading to the rc instead, especially if the rest of your system is already (mostly) ported to qt6.
_________________
OS: Gentoo 6.8.10-gentoo-dist, ~amd64, 23.0/desktop/plasma/systemd
MB: MSI Z370-A PRO
CPU: Intel Core i9-9900KS
GPU: Intel Arc A770 16GB & Intel UHD Graphics 630
SSD: Samsung 970 EVO Plus 2 TB
RAM: Crucial Ballistix 32GB DDR4-2400
Back to top
View user's profile Send private message
lars_the_bear
Guru
Guru


Joined: 05 Jun 2024
Posts: 439

PostPosted: Mon Sep 16, 2024 11:21 am    Post subject: Reply with quote

AndrewAmmerlaan wrote:

Note though that freecad needs to be rebuilt every time qt upgrades, so your pre-built gpkgs might force a downgrade of qt. I recommend upgrading to the rc instead, especially if the rest of your system is already (mostly) ported to qt6.


Thank you. So far as I know, FreeCAD is the only thing I use that needs Qt, so I don't care what version I have. But... I know from experience that building FreeCAD is a 3-day process on this kind of hardware, so I'll have to put upgrading on the to-do list unless there's no alternative.

The problem was, indeed, qtwebengine, that emerge wanted to build from source. That was unexpected, since I have a binary of the same version in my binhost. But I'll raise that in a separate thread.

BR, Lars.
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