Bug 250574

Summary: cad/kicad: wxPython/Phoenix does not appear to be installed on the system
Product: Ports & Packages Reporter: Marcin Cieślak <saper>
Component: Individual Port(s)Assignee: Christoph Moench-Tegeder <cmt>
Status: Closed Not Accepted    
Severity: Affects Only Me Flags: bugzilla: maintainer-feedback? (cmt)
Priority: ---    
Version: Latest   
Hardware: Any   
OS: Any   
Attachments:
Description Flags
CMakeOutput.log
none
CMakeError.log none

Description Marcin Cieślak 2020-10-24 09:37:06 UTC
Created attachment 219030 [details]
CMakeOutput.log

11.4-STABLE #0 r366859

# $FreeBSD: head/cad/kicad/Makefile 550696 2020-09-30 12:47:33Z cmt $

The system has python3.7, some leftovers from python3.6 installed and the build of kicad fails with:

radziecki> sudo make        
===>   kicad-5.1.7,2 depends on file: /usr/local/include/glm/glm.hpp - found
===>   kicad-5.1.7,2 depends on executable: swig - found
===>   kicad-5.1.7,2 depends on file: /usr/local/bin/cmake - found
===>   kicad-5.1.7,2 depends on executable: update-desktop-database - found
===>   kicad-5.1.7,2 depends on executable: gtk-update-icon-cache - found
===>   kicad-5.1.7,2 depends on package: pkgconf>=1.3.0_1 - found
===>   kicad-5.1.7,2 depends on file: /usr/local/bin/python3.7 - found
===>   kicad-5.1.7,2 depends on executable: update-mime-database - found
===>   kicad-5.1.7,2 depends on file: /usr/local/lib/python3.7/site-packages/wx/__init__.py - found
===>   kicad-5.1.7,2 depends on package: xorgproto>=0 - found
===>   kicad-5.1.7,2 depends on package: xorgproto>=0 - found
===>   kicad-5.1.7,2 depends on file: /usr/local/libdata/pkgconfig/ice.pc - found
===>   kicad-5.1.7,2 depends on file: /usr/local/libdata/pkgconfig/x11.pc - found
===>   kicad-5.1.7,2 depends on file: /usr/local/libdata/pkgconfig/xext.pc - found
===>   kicad-5.1.7,2 depends on shared library: libboost_thread.so - found (/usr/local/lib/libboost_thread.so)
===>   kicad-5.1.7,2 depends on shared library: libngspice.so - found (/usr/local/lib/libngspice.so)
===>   kicad-5.1.7,2 depends on shared library: libTKernel.so - found (/usr/local/lib/libTKernel.so)
===>   kicad-5.1.7,2 depends on shared library: libpixman-1.so - found (/usr/local/lib/libpixman-1.so)
===>   kicad-5.1.7,2 depends on shared library: libpng.so - found (/usr/local/lib/libpng.so)
===>   kicad-5.1.7,2 depends on shared library: libcurl.so - found (/usr/local/lib/libcurl.so)
===>   kicad-5.1.7,2 depends on shared library: libGL.so - found (/usr/local/lib/libGL.so)
===>   kicad-5.1.7,2 depends on shared library: libGLEW.so - found (/usr/local/lib/libGLEW.so)
===>   kicad-5.1.7,2 depends on shared library: libGLU.so - found (/usr/local/lib/libGLU.so)
===>   kicad-5.1.7,2 depends on shared library: libglut.so - found (/usr/local/lib/libglut.so)
===>   kicad-5.1.7,2 depends on shared library: libatk-1.0.so - found (/usr/local/lib/libatk-1.0.so)
===>   kicad-5.1.7,2 depends on shared library: libcairo.so - found (/usr/local/lib/libcairo.so)
===>   kicad-5.1.7,2 depends on shared library: libgdk_pixbuf-2.0.so - found (/usr/local/lib/libgdk_pixbuf-2.0.so)
===>   kicad-5.1.7,2 depends on shared library: libglib-2.0.so - found (/usr/local/lib/libglib-2.0.so)
===>   kicad-5.1.7,2 depends on shared library: libintl.so - found (/usr/local/lib/libintl.so)
===>   kicad-5.1.7,2 depends on shared library: libpango-1.0.so - found (/usr/local/lib/libpango-1.0.so)
===>   kicad-5.1.7,2 depends on shared library: libwx_baseu-3.0.so - found (/usr/local/lib/libwx_baseu-3.0.so)
===>  Configuring for kicad-5.1.7,2
/usr/bin/sed -i.bak -e 's|/usr/share/kicad|/usr/local/share/kicad|'		 -e 's|/usr/local|/usr/local|'				 /usr/ports/cad/kicad/work/kicad-source-mirror-5.1.7/common/gestfich.cpp
/usr/bin/sed -i.bak -e 's|/usr/bin/xdg-open|/usr/local/bin/xdg-open|'  /usr/ports/cad/kicad/work/kicad-source-mirror-5.1.7/common/pgm_base.cpp
===>  Performing out-of-source build
/bin/mkdir -p /usr/ports/cad/kicad/work/.build
-- KiCad install dir: </usr/local>
-- Check for installed GLEW -- found
CMake Warning (dev) at /usr/local/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:273 (message):
  The package name passed to `find_package_handle_standard_args` (OCC) does
  not match the name of the calling package (OpenCASCADE).  This can lead to
  problems in calling code that expects `find_package` result variables
  (e.g., `_FOUND`) to follow a certain pattern.
Call Stack (most recent call first):
  CMakeModules/FindOpenCASCADE.cmake:164 (FIND_PACKAGE_HANDLE_STANDARD_ARGS)
  CMakeLists.txt:614 (find_package)
This warning is for project developers.  Use -Wno-dev to suppress it.

-- Found OpenCASCADE Standard Edition version: 7.4.0
--  ++ OpenCASCADE Standard Edition include directory: /usr/local/include/OpenCASCADE
--  ++ OpenCASCADE Standard Edition shared libraries directory: /usr/local/lib
-- Check for installed Python Interpreter -- found
-- Python module install path: lib/python3.6/site-packages
Traceback (most recent call last):
  File "<string>", line 1, in <module>
ModuleNotFoundError: No module named 'wx'
CMake Error at CMakeModules/FindwxPython.cmake:52 (message):
  wxPython/Phoenix does not appear to be installed on the system
Call Stack (most recent call first):
  CMakeLists.txt:716 (find_package)


-- Configuring incomplete, errors occurred!
See also "/usr/ports/cad/kicad/work/.build/CMakeFiles/CMakeOutput.log".
See also "/usr/ports/cad/kicad/work/.build/CMakeFiles/CMakeError.log".
*** Error code 1

Stop.
make[1]: stopped in /usr/ports/cad/kicad
*** Error code 1

Stop.
make: stopped in /usr/ports/cad/kicad
Comment 1 Marcin Cieślak 2020-10-24 09:37:35 UTC
Created attachment 219031 [details]
CMakeError.log
Comment 2 Marcin Cieślak 2020-10-24 09:43:49 UTC
The problem seem to be that ports dependencies seemed to check deps against python3.7 (wx was there among others), but python3.6 has been picked up as the default Python with cmake.

I have uninstalled python3.6 and friends completely and rebuild python3 port with DEFAULT_VERSIONS+=python=3.7 set in /etc/make.conf and then it took off.

Maybe this problem is not kicad-specific, just our dependency management?
Comment 3 Christoph Moench-Tegeder freebsd_committer freebsd_triage 2020-10-26 21:57:15 UTC
When you mix packages with conflicting dependencies (e.g. python 3.6 and python 3.7 - the packages by themselves don't conflict, but any package can only depend on one of them (max), never on multiple python versions at once). On a default version switch or other dependency-changing events, you'll have to keep an eye on that and rebuild dependency chains as neccessary. When using poudriere to build
proper repositories, the software (poudriere and pkg) will take care of those problems for you.
If you miss this kind of dependency problems, you might find yourself in a world of hurt some time later: failing builds, crashing software, ...