Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 699236

Summary: sci-electronics/kicad-5.1.4 with amd64/17.1 profile - No rule to make target '/usr/lib/libSM.so', needed by 'utils/kicad2step/kicad2step'
Product: Gentoo Linux Reporter: Roland Ramthun <bts>
Component: Current packagesAssignee: Zoltan Puskas <zoltan>
Status: RESOLVED CANTFIX    
Severity: normal CC: jstein, proxy-maint, sam
Priority: Normal    
Version: unspecified   
Hardware: All   
OS: Linux   
See Also: https://bugs.gentoo.org/show_bug.cgi?id=687686
Whiteboard:
Package list:
Runtime testing required: ---
Bug Depends on:    
Bug Blocks: 506276    
Attachments: build.log.bz2
emerge-info.log
Output of "emerge --info x11-libs/wxGTK"

Description Roland Ramthun 2019-11-03 15:39:59 UTC
Created attachment 594956 [details]
build.log.bz2

The Kicad build process seems to look in the wrong directories for its deps (/usr/lib/ instead of /usr/lib64/). 

1654-[ 30%] Building CXX object utils/kicad2step/CMakeFiles/kicad2step.dir/sexpr/sexpr.cpp.o
1655-cd /var/tmp/portage/sci-electronics/kicad-5.1.4/work/kicad-5.1.4_build/utils/kicad2step && /usr/bin/x86_64-pc-linux-gnu-g++ -DGLM_FORCE_CTOR_INIT -DHAVE_STDINT_H -DKICAD_SCRIPTING -DKICAD_SCRIPTING_ACTION_MENU -DKICAD_SCRIPTING_MODULES -DKICAD_SCRIPTING_PYTHON3 -DKICAD_SCRIPTING_WXPYTHON -DKICAD_SCRIPTING_WXPYTHON_PHOENIX -DKICAD_SPICE -DKICAD_USE_OCE -DUSE_WX_OVERLAY -DWXUSINGDLL -DWX_COMPATIBILITY -D_FILE_OFFSET_BITS=64 -D__WXGTK__ -I/var/tmp/portage/sci-electronics/kicad-5.1.4/work/kicad-5.1.4/include -I/var/tmp/portage/sci-electronics/kicad-5.1.4/work/kicad-5.1.4/utils/kicad2step -I/var/tmp/portage/sci-electronics/kicad-5.1.4/work/kicad-5.1.4/utils/kicad2step/pcb -isystem /usr/lib64/wx/include/gtk3-unicode-3.0-gtk3 -isystem /usr/include/wx-3.0-gtk3 -isystem /usr/lib64/oce-0.18/../../include/oce   -DNDEBUG -DNDEBUG -Wall -O2 -pipe -march=native -fomit-frame-pointer -Wsuggest-override -Werror=vla -pthread -Wshadow -fPIE -fvisibility=hidden -fvisibility-inlines-hidden   -std=gnu++11 -o CMakeFiles/kicad2step.dir/sexpr/sexpr.cpp.o -c /var/tmp/portage/sci-electronics/kicad-5.1.4/work/kicad-5.1.4/utils/kicad2step/sexpr/sexpr.cpp
1656:make[2]: *** No rule to make target '/usr/lib/libSM.so', needed by 'utils/kicad2step/kicad2step'.  Stop.
1657-make[2]: *** Waiting for unfinished jobs....
Comment 1 Roland Ramthun 2019-11-03 15:40:41 UTC
Created attachment 594958 [details]
emerge-info.log
Comment 2 Zoltan Puskas 2019-11-15 06:06:47 UTC
I could not repro the issue, though I've rebuilt KiCAD with multiple use flag combinations. Additionally KiCAD does not use libSM directly, but rather via wxGTK. Could you please post the output of `emerge --info x11-libs/wxGTK`?
Another question I have is if you have recently updated to the 17.1 profile?
Comment 3 Roland Ramthun 2019-11-16 11:10:18 UTC
Created attachment 596348 [details]
Output of "emerge --info x11-libs/wxGTK"
Comment 4 Roland Ramthun 2019-11-16 11:11:03 UTC
Zoltan, thanks for trying to reproduce the issue. I attached the output of `emerge --info x11-libs/wxGTK`.

I am using a stable amd64 system, the exception being kicad-meta and its deps. The 17.1 profile is in use here since it has been stabilized for amd64 (~5 months).

Prior to opening this report, I tried to rebuild sci-electronics/kicad-5.1.4 with an empty tree, but it did not help.
Comment 5 Micke Prag 2019-11-20 13:10:12 UTC
I am running into the same issue.

Looking into the build this path is written into
plugins/3d/oce/CMakeFiles/s3d_plugin_oce.dir/build.make

Not sure why though.

A temporary workaround for me it to build it disabeling the oce use flag.
Comment 6 Alex Orange 2020-09-07 16:22:47 UTC
I just ran into this problem and here's what I did to fix it:

Accepted the keyword for the new sci-libs/oce (0.18.3-r2 instead of -r1). I don't think the versioning mattered, I think it's just a matter of rebuilding it since switching to 17.1. This is sufficient to fix it for me.


As a note to anyone trying improve the automated process of catching things that need to be rebuilt on the 17.1 switch, here's some details on the old offending file.

Old sci-libs/oce install had in the file /usr/lib64/oce-0.18/OCE-libraries-gentoo.cmake. You can see TKService has the bad reference. I showed the others to show TKService is the only offender:

# Import target "TKOffset" for configuration "Gentoo"
set_property(TARGET TKOffset APPEND PROPERTY IMPORTED_CONFIGURATIONS GENTOO)
set_target_properties(TKOffset PROPERTIES
  IMPORTED_LINK_INTERFACE_LIBRARIES_GENTOO "TKFillet;TKBRep;TKTopAlgo;TKMath;TKernel;TKGeomBase;TKG2d;TKG3d;TKGeomAlgo;TKShHealing;TKBO;TKPrim;TKBool"
  IMPORTED_LOCATION_GENTOO "${_IMPORT_PREFIX}/lib64/libTKOffset.so.11.0.0"
  IMPORTED_SONAME_GENTOO "libTKOffset.so.11"
  )

list(APPEND _IMPORT_CHECK_TARGETS TKOffset )
list(APPEND _IMPORT_CHECK_FILES_FOR_TKOffset "${_IMPORT_PREFIX}/lib64/libTKOffset.so.11.0.0" )

# Import target "TKService" for configuration "Gentoo"
set_property(TARGET TKService APPEND PROPERTY IMPORTED_CONFIGURATIONS GENTOO)
set_target_properties(TKService PROPERTIES
  IMPORTED_LINK_INTERFACE_LIBRARIES_GENTOO "TKMath;TKernel;TKBRep;TKShHealing;TKGeomBase;TKGeomAlgo;TKG2d;TKG3d;TKTopAlgo;/usr/lib/libSM.so;/usr/lib/libICE.so;/usr/lib/libX11.so;/usr/lib/libXext.so;/usr/lib/libGLU.so;/usr/lib/libGL.so;/usr/lib/libGLU.so;/usr/lib/libGL.so;/usr/lib/libfreetype.so"
  IMPORTED_LOCATION_GENTOO "${_IMPORT_PREFIX}/lib64/libTKService.so.11.0.0"
  IMPORTED_SONAME_GENTOO "libTKService.so.11"
  )

list(APPEND _IMPORT_CHECK_TARGETS TKService )
list(APPEND _IMPORT_CHECK_FILES_FOR_TKService "${_IMPORT_PREFIX}/lib64/libTKService.so.11.0.0" )
Comment 7 Sam James archtester Gentoo Infrastructure gentoo-dev Security 2021-02-27 07:26:13 UTC
ping zoltan
Comment 8 Zoltan Puskas 2022-01-18 10:27:37 UTC
There seems to be no mechanism to force Gentoo to rebuild this dependency for KiCad on profile change, one has to manually rebuild OCE. Additionally with KiCad 6 series OCE is deprecated in favour of OCC, additionally opencascade has been deprecated, and 17.1 is also stable for quite some time. There is not much that can be done here.