Package Details: freecad-git 0.19.r421.gfafff351aa-1

Git Clone URL: (read-only, click to copy)
Package Base: freecad-git
Description: A general purpose 3D CAD modeler - git checkout
Upstream URL:
Licenses: LGPL
Conflicts: freecad, freecad-appimage, freecad-appimage-git
Provides: freecad
Submitter: gborzi
Maintainer: greyltc
Last Packager: greyltc
Votes: 96
Popularity: 0.96
First Submitted: 2012-03-03 13:46
Last Updated: 2021-04-08 10:34

Latest Comments

« First ‹ Previous 1 2 3 4 5 6 7 8 9 ... Next › Last »

Deewiant commented on 2020-12-23 08:22

Doesn't build with both ccache and distcc enabled. The CMakeLists.txt has some custom logic to use ccache in front of every compilation command if it's found, which combined with makepkg's logic to set up the PATH for ccache results in invocations like /usr/bin/ccache /usr/lib/ccache/bin/c++. With distcc also enabled, both the "outer" and "inner" ccache programs trigger distcc which causes it to bail out with "CRITICAL! distcc seems to have invoked itself recursively!".

This seems like FreeCAD's bug, but here's a patch:

diff --git CMakeLists.txt CMakeLists.txt
index f4dabf7657..ded1023532 100644
--- CMakeLists.txt
+++ CMakeLists.txt
@@ -8,11 +8,6 @@ if (POLICY CMP0072)
     cmake_policy(SET CMP0072 OLD)
 endif(POLICY CMP0072)

-find_program(CCACHE_PROGRAM ccache)  #This check should occur before project()


moham_96 commented on 2020-12-22 07:37

I'm getting the following error while compiling

greyltc commented on 2020-12-20 17:24

@bartus Thanks very much for the tips!

  • I've added the python-ply dep
  • I never knew the environment was manipulated differently between prepare() and build() with respect to how rules in the options array are handled! (this honestly feels like a build system design flaw to me) I've moved the build preparation stuff from prepare() to build() now. Seems like I've been wrong to do that kind of preparation in prepare().
  • Yeah, I should put my patches in the source array and not fetch anything in prepare(), sometimes I'm just too lazy to do it correctly
  • Not sure I agree with what you've done with MAKEFLAGS and ninja there. I think I won't do that.

vipqualitypost commented on 2020-12-20 08:39

I patched my PKGBUILD with the patch posted by @bartus; it helped with building (set makeflags correctly, much slower build because of this I assume) but it still was failing the self tests so I think maybe this is an issue with FreeCAD. I commented out check() and then it just skips to package() which runs fine and the program is installed. I can open it and there are no obvious issues (I checked for the features that were failing test, all related to helix patterning). Maybe we should remove the self test until it's known to pass? Otherwise it's impossible to install, unless it's just a problem with my machine. Also, during check() we should remove the directory change; it enters the correct one at the end of Ninja build anyway.

To patch the makefile you can do like this, for anyone reading before it gets pushed:
curl >> freecad.patch
patch -ruN < freecad.patch

bartus commented on 2020-12-19 19:38

@greyltc; few things:

  • missing python-ply dependency ##

  • cmake should be called form build() function as prepare() is called in sanitized environment (no flags defined in /etc/makepkg.conf present) ##

  • to recreate make behaviour with options=(!makeflags) using ninja you should add ${MAKEFLAGS:--j1} to ninja call ##

  • since cmake:3.12 you can used cmake -S source_dir -B build_dir call creplacing all mkdir build, cd build, cmake ../ ##

  • and as bonus, instead of calling curl to get patch you can add one to source list with filename::url syntax ## also you can combine multiple python packages using bash bracket expansions ##


# merge with:
git am -s < <(curl -s

btw. gendesktop is pretty neat - will try to use it in my PKGBUILDs (ღ˘⌣˘ღ)

alex.forencich commented on 2020-12-17 22:44

I think python-yaml needs to be a dependency of some sort

kvkoskin commented on 2020-12-17 13:20

From Arch freecad package: Adding -D BUILD_ENABLE_CXX_STD=C++14 to cmake changes the std as needed.

devilholk commented on 2020-12-16 05:53

@khumarahn, I was able to make it build by replacing all occurrences of -std=gnu++11 in build/ with -std=gnu++14 after prepare() have been run. I could not figure out how to get CMake to spit out a correct

khumarahn commented on 2020-12-15 23:15

Installing python-netcdf4 I could start the compilation, but it fails with

[2379/3992] Building CXX object src/Mod/Path/App/CMakeFiles/Path.dir/Area.cpp.o
FAILED: src/Mod/Path/App/CMakeFiles/Path.dir/Area.cpp.o 
/usr/bin/c++ -DBOOST_ALL_NO_LIB -DBOOST_FILESYSTEM_DYN_LINK -DBOOST_PROGRAM_OPTIONS_DYN_LINK -DBOOST_REGEX_DYN_LINK -DBOOST_SYSTEM_DYN_LINK -DBOOST_THREAD_DYN_LINK -DHAVE_CONFIG_H -DHAVE_FFMPEG -DHAVE_FREEIMAGE -DHAVE_LIMITS_H -DHAVE_RAPIDJSON -DHAVE_TBB -DHAVE_VTK -DOCC_CONVERT_SIGNALS -DPath_EXPORTS -DQT_CORE_LIB -DQT_NO_DEBUG -DQT_XML_LIB -DVTK_OPENGL2_BACKEND -D_OCC64 -DvtkDomainsChemistry_AUTOINIT="2(vtkDomainsChemistryOpenGL2,vtkDomainsParallelChemistry)" -DvtkFiltersCore_AUTOINIT="1(vtkFiltersParallelDIY2)" -DvtkFiltersFlowPaths_AUTOINIT="1(vtkFiltersParallelFlowPaths)" -DvtkFiltersParallel_AUTOINIT="2(vtkFiltersParallelDIY2,vtkFiltersParallelGeometry)" -DvtkIOExodus_AUTOINIT="1(vtkIOParallelExodus)" -DvtkIOExport_AUTOINIT="2(vtkIOExportOpenGL2,vtkIOExportPDF)" -DvtkIOGeometry_AUTOINIT="1(vtkIOMPIParallel)" -DvtkIOImage_AUTOINIT="1(vtkIOMPIImage)" -DvtkIOParallel_AUTOINIT="1(vtkIOMPIParallel)" -DvtkIOSQL_AUTOINIT="2(vtkIOMySQL,vtkIOPostgreSQL)" -DvtkIOXdmf3_AUTOINIT="1(vtkIOParallelXdmf3)" -DvtkRenderingContext2D_AUTOINIT="1(vtkRenderingContextOpenGL2)" -DvtkRenderingCore_AUTOINIT="3(vtkInteractionStyle,vtkRenderingFreeType,vtkRenderingOpenGL2)" -DvtkRenderingFreeType_AUTOINIT="2(vtkRenderingFreeTypeFontConfig,vtkRenderingMatplotlib)" -DvtkRenderingLICOpenGL2_AUTOINIT="1(vtkRenderingParallelLIC)" -DvtkRenderingOpenGL2_AUTOINIT="1(vtkRenderingGL2PSOpenGL2)" -DvtkRenderingVolume_AUTOINIT="1(vtkRenderingVolumeOpenGL2)" -I. -Isrc -I../src -Isrc/Mod/Path/App -I/usr/include/opencascade -I/usr/include/eigen3 -I/usr/include/python3.9 -isystem /usr/include/qt -isystem /usr/include/qt/QtCore -isystem /usr/lib/qt/mkspecs/linux-g++ -isystem /usr/include/qt/QtXml -Wall -Wextra -Wno-write-strings -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fPIC -w -O3 -DNDEBUG -fPIC   -fext-numeric-literals -pthread -fPIC -std=gnu++11 -MD -MT src/Mod/Path/App/CMakeFiles/Path.dir/Area.cpp.o -MF src/Mod/Path/App/CMakeFiles/Path.dir/Area.cpp.o.d -o src/Mod/Path/App/CMakeFiles/Path.dir/Area.cpp.o -c ../src/Mod/Path/App/Area.cpp
In file included from /usr/include/boost/geometry/core/tag.hpp:23,
                 from /usr/include/boost/geometry/core/ring_type.hpp:28,
                 from /usr/include/boost/geometry/core/closure.hpp:24,
                 from /usr/include/boost/geometry/geometry.hpp:34,
                 from /usr/include/boost/geometry.hpp:17,
                 from ../src/Mod/Path/App/Area.cpp:38:
/usr/include/boost/geometry/util/type_traits_std.hpp:54:25: error: expected template-name before ‘<’ token
   54 |     : std::conditional_t<Trait::value, conjunction<Traits...>, Trait>
      |                         ^

khumarahn commented on 2020-12-15 22:38

It seems, the dependency python-netcdf4 is missing.