Diff freecad-1.0.2-r2 with a freecad-9999

/usr/portage/media-gfx/freecad/freecad-9999.ebuild 2026-09-28 20:03:05.423777296 +0300
9 9
# The added asserts break on mem leaks, so tests fail.
10 10
# PYTHON_REQ_USE="-debug"
11 11

  
12
inherit check-reqs cmake cuda edo flag-o-matic optfeature python-single-r1 qt-utils toolchain-funcs xdg virtualx
12
# pyNastran missing
13

  
14
inherit branding check-reqs cmake cuda edo flag-o-matic optfeature python-single-r1 toolchain-funcs xdg virtualx
13 15

  
14 16
DESCRIPTION="Qt based Computer Aided Design application"
15 17
HOMEPAGE="https://www.freecad.org/ https://github.com/FreeCAD/FreeCAD"
......
19 21
if [[ ${PV} == *9999* ]]; then
20 22
	inherit git-r3
21 23
	EGIT_REPO_URI="https://github.com/${MY_PN}/${MY_PN}.git"
22
	EGIT_SUBMODULES=( 'src/Mod/AddonManager' )
23
	S="${WORKDIR}/freecad-${PV}"
24
	EGIT_SUBMODULES=( '-*' )
24 25
else
25 26
	SRC_URI="
26
		https://github.com/${MY_PN}/${MY_PN}/archive/refs/tags/${PV}.tar.gz -> ${P}.tar.gz
27
		https://github.com/FreeCAD/FreeCAD/commit/d91b3e051789623f0bc1eff65947c361e7a661d0.patch -> ${PN}-20710.patch
28
		https://github.com/FreeCAD/FreeCAD/commit/9ea0f32692e13eee85b1e74bd42514942d357906.patch -> ${PN}-21433.patch
27
		https://github.com/${MY_PN}/${MY_PN}/releases/download/${PV}/freecad_source_${PV}.tar.gz
29 28
	"
30
	KEYWORDS="amd64"
31
	S="${WORKDIR}/FreeCAD-${PV}"
29
	KEYWORDS="~amd64"
32 30
fi
33 31

  
34 32
# code is licensed LGPL-2
35 33
# examples are licensed CC-BY-SA (without note of specific version)
36 34
LICENSE="LGPL-2 CC-BY-SA-4.0"
37 35
SLOT="0"
38
IUSE="debug designer +gui netgen pcl +smesh spacenav test X"
36
IUSE="debug designer +gui netgen pcl +smesh spacenav tbb test X"
39 37
# Modules are found in src/Mod/ and their options defined in:
40 38
# cMake/FreeCAD_Helpers/InitializeFreeCADBuildOptions.cmake
41 39
# To get their dependencies:
42 40
# 'grep REQUIRES_MODS cMake/FreeCAD_Helpers/CheckInterModuleDependencies.cmake'
43
IUSE+=" addonmgr assembly +bim cam cloud fem idf inspection +mesh openscad points reverse robot surface +techdraw"
41
IUSE+=" addonmgr assembly +bim cam fem idf inspection +mesh openscad points reverse robot surface +techdraw"
44 42

  
45 43
REQUIRED_USE="
46 44
	${PYTHON_REQUIRED_USE}
47 45
	bim? ( mesh )
48 46
	cam? ( mesh )
49
	gui? ( bim )
50 47
	designer? ( gui )
51 48
	fem? ( smesh )
52 49
	inspection? ( points )
......
55 52
	reverse? ( mesh points )
56 53
	test? ( techdraw )
57 54
"
58
# Draft Workbench needs BIM
59 55

  
60 56
RESTRICT="!test? ( test )"
61 57

  
......
63 59
# if vtk[cuda], we use cuda
64 60
RDEPEND="
65 61
	${PYTHON_DEPS}
66
	dev-cpp/tbb:=
67 62
	dev-cpp/yaml-cpp:=
68 63
	dev-libs/boost:=
69 64
	dev-libs/libfmt:=
70 65
	dev-libs/xerces-c:=[icu]
71 66
	dev-qt/qtbase:6[concurrent,network,xml]
72 67
	media-libs/freetype
73
	sci-libs/opencascade:=[json]
68
	sci-libs/opencascade:=[json,tbb?]
69
	tbb? (
70
		dev-cpp/tbb:=
71
	)
74 72
	virtual/zlib:=
75 73
	$(python_gen_cond_dep '
74
		dev-python/lark[${PYTHON_USEDEP}]
76 75
		dev-python/numpy[${PYTHON_USEDEP}]
77
		dev-python/pybind11[${PYTHON_USEDEP}]
76
		>=dev-python/pybind11-3.0.1[${PYTHON_USEDEP}]
78 77
		dev-python/pycxx[${PYTHON_USEDEP}]
79 78
		dev-python/pyyaml[${PYTHON_USEDEP}]
80 79
	')
81
	assembly? ( sci-libs/ondselsolver )
82
	cloud? (
83
		dev-libs/openssl:=
84
		net-misc/curl
85
	)
80
	assembly? ( >=sci-libs/ondselsolver-1.0.1_p20260211 )
86 81
	fem? (
87 82
		sci-libs/vtk:=
88 83
		$(python_gen_cond_dep 'dev-python/ply[${PYTHON_USEDEP}]')
......
95 90
		$(python_gen_cond_dep '
96 91
			dev-python/matplotlib[${PYTHON_USEDEP}]
97 92
			>=dev-python/pivy-0.6.5[${PYTHON_USEDEP}]
98
			>=dev-python/pyside-6.10.1-r5:6=[uitools(-),gui,svg,${PYTHON_USEDEP}]
93
			dev-python/pyside:6=[uitools(-),gui,svg,${PYTHON_USEDEP}]
99 94
		' )
100 95
		virtual/opengl
101 96
		spacenav? ( dev-libs/libspnav[X?] )
102 97
	)
103
	netgen? ( media-gfx/netgen[opencascade] )
98
	netgen? ( <media-gfx/netgen-6.2.2605[opencascade] )
104 99
	openscad? ( $(python_gen_cond_dep 'dev-python/ply[${PYTHON_USEDEP}]') )
105 100
	pcl? ( sci-libs/pcl:= )
106 101
	smesh? (
......
108 103
		sci-libs/vtk:=
109 104
	)
110 105
"
106
# TODO why?
107
RDEPEND+="
108
	dev-libs/icu:=
109
"
111 110
DEPEND="${RDEPEND}
112
	<dev-cpp/eigen-5:=
111
	dev-cpp/eigen:=
113 112
	dev-cpp/ms-gsl
114 113
	test? (
115 114
		$(python_gen_impl_dep '-debug')
116 115
		$(python_gen_cond_dep '
117 116
			sci-libs/vtk[python,${PYTHON_SINGLE_USEDEP}]
118 117
		' )
118
		fem? (
119
			sci-libs/calculix-ccx
120
			$(python_gen_cond_dep '
121
				sci-libs/gmsh[${PYTHON_USEDEP}]
122
			' )
123
		)
119 124
		gui? (
120 125
			$(python_gen_cond_dep '
121 126
				dev-python/pyside:6[tools(-),${PYTHON_USEDEP}]
......
137 142
"
138 143

  
139 144
PATCHES=(
140
	"${FILESDIR}"/${PN}-1.0.0-r1-Gentoo-specific-don-t-check-vcs.patch
141
	"${FILESDIR}"/${PN}-1.0.1-tests-src-Qt-only-build-test-for-BUILD_GUI-ON.patch
142
	"${FILESDIR}/${PN}-1.0.2-pybind11-latent-slots-macro-conflicts-with-Qt.patch" # fixed in pybind-3.0.1
143
	"${DISTDIR}/${PN}-20710.patch" # DESTDIR in env
144
	"${DISTDIR}/${PN}-21433.patch" # FindHDF5 fails to find HDF5 after a failing pkg_search_module
145
	"${FILESDIR}"/${P}-boost-1.89.patch # bug 969041
145
	"${FILESDIR}/${PN}-9999-Gentoo-specific-don-t-check-vcs.patch"
146
	"${FILESDIR}/${PN}-9999-tests-src-Qt-only-build-test-for-BUILD_GUI-ON.patch"
147
	"${FILESDIR}/${PN}-1.1.0-boost_system.patch"
148
	"${FILESDIR}/${PN}-1.1.3-gcc-17-fstream.patch"
149
	"${FILESDIR}/${PN}-1.1.3-skip-unicode-test.patch"
146 150
)
147 151

  
148 152
DOCS=( CODE_OF_CONDUCT.md README.md )
......
258 262
	python-single-r1_pkg_setup
259 263
}
260 264

  
265
src_unpack() {
266
	if [[ ${PV} == *9999* ]]; then
267
		# only fetch/unpack if used
268
		if use addonmgr; then
269
			EGIT_SUBMODULES+=( 'src/Mod/AddonManager' )
270
		fi
271

  
272
		git-r3_src_unpack
273
	else
274
		# release archive does not contain a top-level directory...
275
		mkdir -p "${S}" || die
276
		cd "${S}" || die
277
		unpack ${A}
278
	fi
279
}
280

  
261 281
src_prepare() {
262
	# deprecated in python-3.11 removed in python-3.13
263
	sed -e '/import imghdr/d' -i src/Mod/CAM/CAMTests/TestCAMSanity.py || die
282
	sed \
283
		-e '/include( ccache )/s/^/# /g' \
284
		-e '/include( ClangFormat )/s/^/# /g' \
285
		-i src/3rdParty/libE57Format/CMakeLists.txt || die
264 286

  
265
	# The PCL point_traits.h header was renamed (and deprecated) since 1.11.0 and removed in 1.15.0.
266
	# d9e731ca94abc14808ebeed208617116f6d5ea4a
267
	sed -e 's#pcl/point_traits.h#pcl/type_traits.h#g' -i src/Mod/ReverseEngineering/App/SurfaceTriangulation.cpp || die
287
	# TODO
288
	sed -e '/TestExternalFacePreselection/d' -i src/Mod/Sketcher/TestSketcherGui.py || die
268 289

  
269 290
	# removed bundled pycxx
270 291
	if [[ ${PV} != *9999* ]]; then
271
		rm -r src/CXX || die "remove bundled pycxx"
292
		rm -r src/3rdParty/PyCXX || die "remove bundled pycxx"
272 293
	fi
273 294

  
274 295
	cmake_src_prepare
......
287 308
	fi
288 309

  
289 310
	local mycmakeargs=(
290
		-DFREECAD_USE_CCACHE="no" # Do not use CCache
291

  
292
		-DCMAKE_POLICY_DEFAULT_CMP0144="OLD" # FLANN_ROOT
293
		-DCMAKE_POLICY_DEFAULT_CMP0167="OLD" # FindBoost
294
		-DCMAKE_POLICY_DEFAULT_CMP0175="OLD" # add_custom_command
295
		-DCMAKE_POLICY_DEFAULT_CMP0153="OLD" # exec_program
311
		"$(cmake_use_find_package "spacenav" "Spnav")"
296 312

  
297
		-DPYCXX_INCLUDE_DIR="${ESYSROOT}/usr/include/${PYTHON_SINGLE_TARGET/_/.}"
313
		-DPYCXX_INCLUDE_DIRS="${ESYSROOT}/usr/include/${PYTHON_SINGLE_TARGET/_/.}"
298 314
		-DPYCXX_SOURCE_DIR="${ESYSROOT}/usr/share/${PYTHON_SINGLE_TARGET/_/.}/CXX"
299 315

  
300 316
		-DBUILD_DESIGNER_PLUGIN=$(usex designer)
......
309 325
		-DBUILD_ASSEMBLY=$(usex assembly)
310 326
		-DBUILD_BIM=$(usex bim)
311 327
		-DBUILD_CAM=$(usex cam)
312
		-DBUILD_CLOUD=$(usex cloud)
313 328
		-DBUILD_DRAFT=ON
314 329
		# see below for DRAWING
315 330
		-DBUILD_FEM=$(usex fem)
......
352 367

  
353 368
		-DFREECAD_BUILD_DEBIAN=OFF
354 369

  
370
		-DE57_ENABLE_DIAGNOSTIC_OUTPUT="no"
371
		-DE57_VALIDATION_LEVEL=0
372

  
373
		# -DFREECAD_PARALLEL_COMPILE_JOBS=""
374
		# -DFREECAD_PARALLEL_LINK_JOBS=""
375

  
376
		-DFREECAD_USE_3DCONNEXION_LEGACY="no"
377
		-DFREECAD_USE_CCACHE="no" # Do not use CCache
378

  
379
		-DFREECAD_USE_EXTERNAL_CLIPPER2="yes"
380
		-DFREECAD_USE_EXTERNAL_COIN_PIVY="yes"
355 381
		-DFREECAD_USE_EXTERNAL_E57FORMAT="no"
356 382
		-DFREECAD_USE_EXTERNAL_GTEST="$(usex test)"
383
		-DFREECAD_USE_EXTERNAL_JSON="yes"
384
		-DFREECAD_USE_EXTERNAL_KDL=OFF # https://github.com/FreeCAD/FreeCAD/commit/9f98866
385
		-DFREECAD_USE_EXTERNAL_KDTREE=OFF
357 386
		-DFREECAD_USE_EXTERNAL_ONDSELSOLVER=$(usex assembly)
387
		-DFREECAD_USE_EXTERNAL_PYCXX="no"
358 388
		-DFREECAD_USE_EXTERNAL_SMESH=OFF		# no package in Gentoo
359 389
		-DFREECAD_USE_EXTERNAL_ZIPIOS=OFF		# doesn't work yet, also no package in Gentoo tree
360
		-DFREECAD_USE_EXTERNAL_FMT="yes"
361
		-DFREECAD_USE_EXTERNAL_KDL=OFF # https://github.com/FreeCAD/FreeCAD/commit/9f98866
390

  
362 391
		-DFREECAD_USE_FREETYPE=ON
392
		-Dfreetype_DIR="${ESYSROOT}/usr"
363 393
		-DFREECAD_USE_OCC_VARIANT:STRING="Official Version"
364 394
		-DFREECAD_USE_PCL=$(usex pcl)
365
		-DFREECAD_USE_PYBIND11=ON
366
		-DFREECAD_USE_QT_FILEDIALOG=ON
395
		# -DFREECAD_USE_PYBIND11=ON
396
		-DFREECAD_USE_PYSIDE="yes"
397
		-DFREECAD_USE_QT_DIALOGS="yes"
398
		# -DFREECAD_USE_QT_FILEDIALOG=ON
399
		-DFREECAD_USE_SHIBOKEN="yes"
367 400

  
368 401
		# install python modules to site-packages' dir. True only for the main package,
369 402
		# sub-packages will still be installed inside /usr/lib64/freecad
......
385 418
		mycmakeargs+=(
386 419
			-DENABLE_DEVELOPER_TESTS=OFF
387 420

  
388
			-DPACKAGE_WCREF="${PVR} (gentoo)"
421
			-DPACKAGE_WCREF="${PVR} (${BRANDING_OS_NAME})"
389 422
			-DPACKAGE_WCURL="git://github.com/FreeCAD/FreeCAD.git ${PV}"
390 423
		)
391 424
	fi
......
419 452
			-DFREECAD_QT_MAJOR_VERSION=6
420 453
			-DFREECAD_QT_VERSION=6
421 454
			-DQT_DEFAULT_MAJOR_VERSION=6
422
			-DQt6Core_MOC_EXECUTABLE="$(qt_get_broot_binary 6 moc)"
423
			-DQt6Core_RCC_EXECUTABLE="$(qt_get_broot_binary 6 rcc)"
424 455
			-DBUILD_QT5=OFF
425 456
			# Drawing module unmaintained and not ported to qt6
426 457
			-DBUILD_DRAWING=OFF
......
434 465
# for two reasons:
435 466
# 1. It works out of the box with USE=-gui as well, not needing a guard
436 467
# 2. We don't need virtualx.eclass and its dependencies
437
# The environment variables are needed, so that FreeCAD knows
438
# where to save its temporary files, and where to look and write its
439
# configuration. Without those, there is a sandbox violation, when it
440
# tries to create /var/lib/portage/home/.FreeCAD directory.
441 468
src_test() {
442
	cd "${BUILD_DIR}" || die
469
	# Fails because translated names are used otherwise
470
	local -x LANG="en_US.UTF-8"
471

  
472
	# The environment variables are needed, so that FreeCAD knows
473
	# where to save its temporary files, and where to look and write its
474
	# configuration. Without those, there is a sandbox violation, when it
475
	# tries to create /var/lib/portage/home/.FreeCAD directory.
476
	local -x FREECAD_USER_HOME="${T}/home"
477
	local -x FREECAD_USER_DATA="${T}/data"
478
	local -x FREECAD_USER_TEMP="${T}/temp"
443 479

  
444
	[[ -c "/dev/udmabuf" ]] && addwrite "/dev/udmabuf"
480
	mkdir -p "${FREECAD_USER_HOME}" "${FREECAD_USER_DATA}" "${FREECAD_USER_TEMP}" || die
481

  
482
	cd "${BUILD_DIR}" || die
445 483

  
446 484
	if use bim; then
447 485
		# No module named 'ifcopenshell' #940465
448
		rm "${BUILD_DIR}/Mod/BIM/nativeifc/ifc_performance_test.py" || die
486
		rm "Mod/BIM/nativeifc/ifc_performance_test.py" || die
449 487
	fi
450 488

  
451 489
	if use cam; then
......
454 492
		sed -e '/test47/a \        return' -i "Mod/CAM/CAMTests/TestPathOpUtil.py" || die
455 493
	fi
456 494

  
457
	local -x EPYTEST_IGNORE=(
458
		"Mod/BIM/nativeifc/ifc_performance_test.py"
459
	)
460

  
461 495
	if ! use openscad ; then
462 496
		EPYTEST_IGNORE+=(
463 497
			"Mod/OpenSCAD/OpenSCADTest/app/test_importCSG.py"
......
465 499
		)
466 500
	fi
467 501

  
468
	local -x CMAKE_SKIP_TESTS=(
469
		"^ConstraintPointsAccess."
470
	)
502
	# # TODO coin? pivy?
503
	# sed \
504
	# 	-e '/self.assertTrue(pc.getTriangleCount/i \        print(pc.getTriangleCount())' \
505
	# 	-e '/self.assertTrue(pc.getTriangleCount/s/self/# /' \
506
	# 	-i Mod/Mesh/MeshTestsApp.py || die
471 507

  
472
	local -x FREECAD_USER_HOME="${HOME}"
473
	local -x FREECAD_USER_DATA="${T}/data"
474
	local -x FREECAD_USER_TEMP="${T}/temp"
508
	local -x EPYTEST_IGNORE=(
509
		"Mod/BIM/nativeifc/ifc_performance_test.py"
510
	)
475 511

  
476
	mkdir -p "${FREECAD_USER_DATA}" "${FREECAD_USER_TEMP}" || die
512
	local CMAKE_SKIP_TESTS=(
513
		"^AttachExtensionTest.testEmptyLegacySupportDoesNotClearAttachmentSupport$"
514
		"^AttachExtensionTest.testNonEmptyLegacySupportReplacesAttachmentSupport$"
515
		"^LinkArrayPolarTest.expandedElementsFollowPatternPlacementChanges$"
516
		"^LinkArrayPolarTest.suppressedExpandedElementIsOmittedFromSubObjects$"
517
		"^TestLineFormat.setQColorKeepsOpaqueColorsOpaque$"
518
		"^TestLineFormat.setQColorPreservesAlphaValue$"
519
	)
477 520

  
478 521
	local failed=()
479
	local run
480 522

  
481
	if \
482
		! nonfatal \
483
		edo \
484
		"${BUILD_DIR}/bin/FreeCADCmd" \
485
			--run-test 0 \
486
			--set-config AppHomePath="${BUILD_DIR}/" \
487
			--log-file "${T}/FreeCADCmd.log"; then
488
		ret=$?
489
		eerror "FreeCADCmd failed $ret"
490
		failed+=( "FreeCADCmd" )
491
	fi
492

  
493
	if use gui; then
494
		addpredict "/dev/char/"
495
		addwrite "/dev/dri/renderD128"
496
		addwrite "/dev/dri/card0"
523
	run_freecad() {
524
		if [[ $# -ne 1 && $# -ne 2  ]]; then
525
			eerror "$0: usage <cmd> [<runner>]"
526
			die "$0: usage <cmd> <runner>"
527
		fi
497 528

  
498
		[[ -c "/dev/nvidiactl" ]] && addwrite "/dev/nvidiactl"
499
		[[ -c "/dev/nvidia-uvm" ]] && addwrite "/dev/nvidia-uvm"
500
		[[ -c "/dev/nvidia-uvm-tools" ]] && addwrite "/dev/nvidia-uvm-tools"
501
		[[ -c "/dev/nvidia0" ]] && addwrite "/dev/nvidia0"
529
		local cmd="${1}"
530
		local run="${2}"
502 531

  
503
		[[ -c "/dev/udmabuf" ]] && addwrite "/dev/udmabuf"
532
		if use debug; then
533
			nonfatal \
534
			${run} \
535
			edo \
536
			"${BUILD_DIR}/bin/${cmd}" \
537
				--set-config AppHomePath="${BUILD_DIR}/" \
538
				--dump-config &> "${T}/${cmd}_config.log"
539
		fi
504 540

  
505 541
		if \
506 542
			! nonfatal \
507
			virtx \
543
			${run} \
508 544
			edo \
509
			"${BUILD_DIR}/bin/FreeCAD" \
545
			"${BUILD_DIR}/bin/${cmd}" \
510 546
				--run-test 0 \
511 547
				--set-config AppHomePath="${BUILD_DIR}/" \
512
				--log-file "${T}/FreeCAD.log" ; then
548
				--log-file "${T}/${cmd}.log"
549
		then
513 550
			ret=$?
514
			eerror "FreeCAD failed $ret"
515
			failed+=( "FreeCAD" )
551
			eerror "${cmd} failed ${ret}"
552
			die "${cmd} failed ${ret}"
553
			failed+=( "${cmd}" )
516 554
		fi
555
	}
517 556

  
557
	if ! use gui; then
558
		run_freecad "FreeCADCmd"
559
	else
518 560
		run="virtx"
561

  
562
		addwrite "/dev/dri/renderD128"
563
		addwrite "/dev/dri/card0"
564

  
565
		[[ -c "/dev/udmabuf" ]] && addwrite "/dev/udmabuf"
566

  
567
		if [[ -c "/dev/nvidiactl" ]]; then
568
			addwrite "/dev/nvidiactl"
569
			addpredict "/dev/char/"
570
			[[ -c "/dev/nvidia-uvm" ]] && addwrite "/dev/nvidia-uvm"
571
			[[ -c "/dev/nvidia-uvm-tools" ]] && addwrite "/dev/nvidia-uvm-tools"
572
			[[ -c "/dev/nvidia0" ]] && addwrite "/dev/nvidia0"
573
		fi
574

  
575
		# run_freecad "FreeCAD" virtx
576

  
577
		# this runs only the gui tests
578
		if \
579
			! nonfatal \
580
				virtx \
581
				${PYTHON} "${S}/.github/scripts/run_gui_tests.py" "${BUILD_DIR}"
582
		then
583
			ret=$?
584
			eerror "$run_gui_tests.py failed ${ret}"
585
			die "run_gui_tests.py failed ${ret}"
586
			failed+=( "run_gui_tests.py" )
587
		fi
519 588
	fi
520 589

  
521 590
	if [[ ${PV} == *9999* ]]; then
591
		local myctestargs=(
592
			# for YamlParameterSourceTest
593
			-j1
594
		)
522 595
		if ! nonfatal \
523
			"${run}" \
524
			cmake_src_test; then
525
			eerror "cmake failed $?"
526
			failed+=( "cmake" )
596
			${run} \
597
			cmake_src_test
598
		then
599
			ret=$?
600
			eerror "cmake_src_test failed ${ret}"
601
			die "cmake_src_test failed ${ret}"
602
			failed+=( "cmake_src_test" )
527 603
		fi
528 604
	fi
529 605

  
530 606
	if [[ "${#failed[@]}" -gt 0 ]]; then
531 607
		eerror "Tests ${failed[*]} failed"
532
		if ! use debug && [[ ${PV} != *9999* ]]; then
608
		# Tests _will_ fail with USE=debug as the reference values change
609
		# We want test failures to be fatal for keyworded versions
610
		if ! use debug || [[ ${PV} != *9999* ]]; then
533 611
			die "${failed[@]}"
534 612
		fi
535 613
	fi
......
540 618

  
541 619
	if use gui; then
542 620
		newbin - FreeCAD <<- _EOF_
543
			#!/bin/sh
621
			#!/usr/bin/env sh
544 622
			# https://github.com/coin3d/coin/issues/451
545 623
			: "\${QT_QPA_PLATFORM:=xcb}"
546 624
			export QT_QPA_PLATFORM
......
551 629

  
552 630
	if [[ -f src/Tools/freecad-thumbnailer ]]; then
553 631
		dobin src/Tools/freecad-thumbnailer
632
	else
633
		dosym -r "/usr/$(get_libdir)/${PN}/bin/freecad-thumbnailer" "/usr/bin/freecad-thumbnailer"
554 634
	fi
555 635

  
556 636
	for dir in share/{applications,icons,metainfo,mime,pixmaps,thumbnailers}; do
......
568 648
pkg_postinst() {
569 649
	xdg_pkg_postinst
570 650

  
571
	einfo "You can load a lot of additional workbenches using the integrated"
572
	einfo "AddonManager."
651
	einfo ""
652
	einfo "You can load a lot of additional workbenches using the integrated AddonManager."
653
	einfo ""
654
	einfo "There are a lot of additional tools, for which FreeCAD has builtin support."
655
	einfo "Some of them are available in Gentoo."
656
	einfo "Take a look at:"
657
	einfo "  https://wiki.freecad.org/Installing_additional_components"
658
	einfo ""
573 659

  
574
	einfo "There are a lot of additional tools, for which FreeCAD has builtin"
575
	einfo "support. Some of them are available in Gentoo. Take a look at"
576
	einfo "https://wiki.freecad.org/Installing_additional_components"
577 660
	optfeature_header "External programs used by FreeCAD"
578 661
	optfeature "dependency graphs" media-gfx/graphviz
579 662
	optfeature "importing and exporting 2D AutoCAD DWG files" media-gfx/libredwg
580 663
	optfeature "importing OpenSCAD files, Mesh booleans" media-gfx/openscad
581
	use bim && optfeature "working with COLLADA documents" dev-python/pycollada
664
	if use bim; then
665
		optfeature "working with COLLADA documents" dev-python/pycollada
666
	fi
582 667
	if use fem || use mesh; then
583 668
		optfeature "mesh generation" sci-libs/gmsh
669
		optfeature "mesh solver" sci-libs/calculix-ccx
584 670
	fi
585 671

  
586 672
	if use python_single_target_python3_13; then
Thank you!