On Wed, Apr 01, 2020 at 04:14:18PM -0600, Tracey Emery wrote: > On Wed, Apr 01, 2020 at 09:58:32PM +0200, Klemens Nanni wrote: > > What Stuart said, plus comments in the patches would do fine explaining > > what is being patched/why. > > > > Rest looks good to me. > > Here we are again, with changes. > > OK? >
One more time with comments in the right spot and git added as build dep for now. Problems pointed out by kn@, thanks. -- Tracey Emery Index: cad/kicad/Makefile =================================================================== RCS file: /cvs/ports/cad/kicad/Makefile,v retrieving revision 1.39 diff -u -p -r1.39 Makefile --- cad/kicad/Makefile 28 Dec 2019 15:53:54 -0000 1.39 +++ cad/kicad/Makefile 1 Apr 2020 22:52:33 -0000 @@ -4,6 +4,7 @@ V = 5.1.5 COMMENT = schematic and PCB editing software DISTNAME = kicad-${V} EPOCH = 0 +REVISION = 0 SHARED_LIBS += kicad_3dsg 0.0 # 2.0 @@ -22,10 +23,10 @@ WANTLIB += TKSTEP TKSTEP209 TKSTEPAttr T WANTLIB += TKTopAlgo TKV3d TKXCAF TKXDEIGES TKXDESTEP TKXSBase WANTLIB += TKernel X11 Xext boost_atomic-mt boost_chrono-mt boost_context-mt WANTLIB += boost_date_time-mt boost_system-mt boost_thread-mt -WANTLIB += c cairo crypto curl freetype m ngspice pixman-1 ssl -WANTLIB += wx_baseu-3.0 wx_baseu_net-3.0 wx_baseu_xml-3.0 wx_gtk3u_adv-3.0 -WANTLIB += wx_gtk3u_aui-3.0 wx_gtk3u_core-3.0 wx_gtk3u_gl-3.0 -WANTLIB += wx_gtk3u_html-3.0 wx_gtk3u_stc-3.0 +WANTLIB += c cairo crypto curl freetype m ngspice pixman-1 ${MODPY_WANTLIB} +WANTLIB += ssl wx_baseu-3.0 wx_baseu_net-3.0 wx_baseu_xml-3.0 +WANTLIB += wx_gtk3u_adv-3.0 wx_gtk3u_aui-3.0 wx_gtk3u_core-3.0 +WANTLIB += wx_gtk3u_gl-3.0 wx_gtk3u_html-3.0 wx_gtk3u_stc-3.0 MASTER_SITES = https://launchpad.net/kicad/5.0/${V}/+download/ @@ -33,10 +34,13 @@ EXTRACT_SUFX = .tar.xz COMPILER = base-clang ports-gcc +MODPY_VERSION = ${MODPY_DEFAULT_VERSION_3} + MODULES = devel/cmake \ lang/python BUILD_DEPENDS = devel/doxygen \ + devel/git \ devel/re2c \ devel/swig \ graphics/freeglut \ @@ -66,7 +70,8 @@ CONFIGURE_ARGS += -DCMAKE_BUILD_TYPE=Rel -DwxWidgets_LIBRARIES="${LOCALBASE}/lib" \ -DwxWidgets_INCLUDE_DIRS="${LOCALBASE}/include/wx-3.0" \ -DOCE_DIR="${LOCALBASE}/include/oce" \ - -DKICAD_SCRIPTING=OFF + -DKICAD_SCRIPTING_PYTHON3=ON \ + -DKICAD_SCRIPTING_WXPYTHON=OFF NO_TEST = Yes @@ -74,6 +79,10 @@ post-install: ${MODPY_BIN} ${MODPY_LIBDIR}/compileall.py \ ${PREFIX}/share/kicad/demos/python_scripts_examples/ ${MODPY_BIN} ${MODPY_LIBDIR}/compileall.py \ + ${PREFIX}/lib/python${MODPY_VERSION}/site-packages/ + ${MODPY_BIN} ${MODPY_LIBDIR}/compileall.py \ ${PREFIX}/share/kicad/plugins/ + ${MODPY_BIN} ${MODPY_LIBDIR}/compileall.py \ + ${PREFIX}/share/kicad/scripting/plugins/ .include <bsd.port.mk> Index: cad/kicad/patches/patch-CMakeLists_txt =================================================================== RCS file: /cvs/ports/cad/kicad/patches/patch-CMakeLists_txt,v retrieving revision 1.3 diff -u -p -r1.3 patch-CMakeLists_txt --- cad/kicad/patches/patch-CMakeLists_txt 8 Nov 2019 14:43:53 -0000 1.3 +++ cad/kicad/patches/patch-CMakeLists_txt 1 Apr 2020 22:52:33 -0000 @@ -1,5 +1,5 @@ $OpenBSD: patch-CMakeLists_txt,v 1.3 2019/11/08 14:43:53 sthen Exp $ - +# assign proper lib name and add boost check Index: CMakeLists.txt --- CMakeLists.txt.orig +++ CMakeLists.txt Index: cad/kicad/patches/patch-common_CMakeLists_txt =================================================================== RCS file: /cvs/ports/cad/kicad/patches/patch-common_CMakeLists_txt,v retrieving revision 1.1 diff -u -p -r1.1 patch-common_CMakeLists_txt --- cad/kicad/patches/patch-common_CMakeLists_txt 8 Nov 2019 14:43:53 -0000 1.1 +++ cad/kicad/patches/patch-common_CMakeLists_txt 1 Apr 2020 22:52:33 -0000 @@ -1,5 +1,5 @@ $OpenBSD: patch-common_CMakeLists_txt,v 1.1 2019/11/08 14:43:53 sthen Exp $ - +# get rid of -lrt linker Index: common/CMakeLists.txt --- common/CMakeLists.txt.orig +++ common/CMakeLists.txt Index: cad/kicad/patches/patch-demos_python_scripts_examples_gen_gerber_and_drill_files_board_py =================================================================== RCS file: cad/kicad/patches/patch-demos_python_scripts_examples_gen_gerber_and_drill_files_board_py diff -N cad/kicad/patches/patch-demos_python_scripts_examples_gen_gerber_and_drill_files_board_py --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ cad/kicad/patches/patch-demos_python_scripts_examples_gen_gerber_and_drill_files_board_py 1 Apr 2020 22:52:33 -0000 @@ -0,0 +1,53 @@ +$OpenBSD$ +# fix print for python3+ +Index: demos/python_scripts_examples/gen_gerber_and_drill_files_board.py +--- demos/python_scripts_examples/gen_gerber_and_drill_files_board.py.orig ++++ demos/python_scripts_examples/gen_gerber_and_drill_files_board.py +@@ -92,11 +92,11 @@ for layer_info in plot_plan: + + pctl.SetLayer(layer_info[1]) + pctl.OpenPlotfile(layer_info[0], PLOT_FORMAT_GERBER, layer_info[2]) +- print 'plot %s' % pctl.GetPlotFileName() ++ print('plot %s' % pctl.GetPlotFileName()); + if gen_job_file == True: + jobfile_writer.AddGbrFile( layer_info[1], os.path.basename(pctl.GetPlotFileName()) ); + if pctl.PlotLayer() == False: +- print "plot error" ++ print("plot error"); + + #generate internal copper layers, if any + lyrcnt = board.GetCopperLayerCount(); +@@ -106,9 +106,9 @@ for innerlyr in range ( 1, lyrcnt-1 ): + pctl.SetLayer(innerlyr) + lyrname = 'inner%s' % innerlyr + pctl.OpenPlotfile(lyrname, PLOT_FORMAT_GERBER, "inner") +- print 'plot %s' % pctl.GetPlotFileName() ++ print('plot %s' % pctl.GetPlotFileName()); + if pctl.PlotLayer() == False: +- print "plot error" ++ print("plot error"); + + + # At the end you have to close the last plot, otherwise you don't know when +@@ -133,18 +133,18 @@ drlwriter.SetFormat( metricFmt ) + + genDrl = True + genMap = True +-print 'create drill and map files in %s' % pctl.GetPlotDirName() ++print('create drill and map files in %s' % pctl.GetPlotDirName()); + drlwriter.CreateDrillandMapFilesSet( pctl.GetPlotDirName(), genDrl, genMap ); + + # One can create a text file to report drill statistics + rptfn = pctl.GetPlotDirName() + 'drill_report.rpt' +-print 'report: %s' % rptfn ++print('report: %s' % rptfn); + drlwriter.GenDrillReportFile( rptfn ); + + if gen_job_file == True: + #job_fn=os.path.splitext(pctl.GetPlotFileName())[0] + '.gbrjob' + job_fn=os.path.dirname(pctl.GetPlotFileName()) + '/' + os.path.basename(filename) + job_fn=os.path.splitext(job_fn)[0] + '.gbrjob' +- print 'create job file %s' % job_fn ++ print('create job file %s' % job_fn); + jobfile_writer.CreateJobFile( job_fn ) + Index: cad/kicad/patches/patch-demos_python_scripts_examples_plot_board_py =================================================================== RCS file: cad/kicad/patches/patch-demos_python_scripts_examples_plot_board_py diff -N cad/kicad/patches/patch-demos_python_scripts_examples_plot_board_py --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ cad/kicad/patches/patch-demos_python_scripts_examples_plot_board_py 1 Apr 2020 22:52:33 -0000 @@ -0,0 +1,14 @@ +$OpenBSD$ +# fix print for python3+ +Index: demos/python_scripts_examples/plot_board.py +--- demos/python_scripts_examples/plot_board.py.orig ++++ demos/python_scripts_examples/plot_board.py +@@ -72,7 +72,7 @@ plot_plan = [ + for layer_info in plot_plan: + pctl.SetLayer(layer_info[1]) + pctl.OpenPlotfile(layer_info[0], PLOT_FORMAT_GERBER, layer_info[2]) +- print layer_info[0] ++ print(layer_info[0]); + pctl.PlotLayer() + + # Our fabricators want two additional gerbers: Index: cad/kicad/patches/patch-include_tool_coroutine_h =================================================================== RCS file: /cvs/ports/cad/kicad/patches/patch-include_tool_coroutine_h,v retrieving revision 1.1 diff -u -p -r1.1 patch-include_tool_coroutine_h --- cad/kicad/patches/patch-include_tool_coroutine_h 8 Nov 2019 14:43:53 -0000 1.1 +++ cad/kicad/patches/patch-include_tool_coroutine_h 1 Apr 2020 22:52:33 -0000 @@ -1,5 +1,5 @@ $OpenBSD: patch-include_tool_coroutine_h,v 1.1 2019/11/08 14:43:53 sthen Exp $ - +# otto@ patch for building proper stack Index: include/tool/coroutine.h --- include/tool/coroutine.h.orig +++ include/tool/coroutine.h Index: cad/kicad/patches/patch-pcbnew_CMakeLists_txt =================================================================== RCS file: /cvs/ports/cad/kicad/patches/patch-pcbnew_CMakeLists_txt,v retrieving revision 1.2 diff -u -p -r1.2 patch-pcbnew_CMakeLists_txt --- cad/kicad/patches/patch-pcbnew_CMakeLists_txt 8 Nov 2019 14:43:53 -0000 1.2 +++ cad/kicad/patches/patch-pcbnew_CMakeLists_txt 1 Apr 2020 22:52:33 -0000 @@ -1,5 +1,5 @@ $OpenBSD: patch-pcbnew_CMakeLists_txt,v 1.2 2019/11/08 14:43:53 sthen Exp $ - +# multiple cmake changes to build, prevent multiple rules for _pcbnew.so Index: pcbnew/CMakeLists.txt --- pcbnew/CMakeLists.txt.orig +++ pcbnew/CMakeLists.txt @@ -12,3 +12,45 @@ Index: pcbnew/CMakeLists.txt endif() +@@ -808,11 +808,7 @@ if( KICAD_SCRIPTING_MODULES ) + add_dependencies( ScriptingModulesPcbnewSoCopy ScriptingWxpythonCopy ) + set( PYMOD_EXT "so" ) + else() # only linux remains among supported platforms +- add_library( pcbnew_python MODULE $<TARGET_OBJECTS:pcbnew_kiface_objects> ) +- target_link_libraries( pcbnew_python ${PCBNEW_KIFACE_LIBRARIES} ) +- set_target_properties( pcbnew_python PROPERTIES OUTPUT_NAME pcbnew PREFIX "_" SUFFIX ".so" ) +- install( TARGETS pcbnew_python DESTINATION ${PYTHON_DEST} COMPONENT binary ) +- ++ install( FILES ${CMAKE_CURRENT_BINARY_DIR}/libpcbnew.a DESTINATION ${PYTHON_DEST} COMPONENT binary RENAME "_pcbnew.so" ) + set( PYMOD_EXT "so" ) + endif() + +@@ -827,18 +823,16 @@ if( KICAD_SCRIPTING_MODULES ) + DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/_pcbnew.${PYMOD_EXT} + ) + else() +- +- +- # For phase 1, copy _pcbnew.kiface to the python module. +- add_custom_command( OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/_pcbnew.${PYMOD_EXT} +- DEPENDS pcbnew_kiface +- COMMAND ${CMAKE_COMMAND} -E copy _pcbnew.kiface _pcbnew.${PYMOD_EXT} +- COMMENT "Creating python's pcbnew native module _pcbnew.${PYMOD_EXT} for command line use." +- ) +- add_custom_target( +- pcbnew_python_module ALL +- DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/_pcbnew.${PYMOD_EXT} +- ) ++ # For phase 1, copy _pcbnew.kiface to the python module. ++ add_custom_command( OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/_pcbnew.${PYMOD_EXT} ++ DEPENDS pcbnew_kiface ++ COMMAND ${CMAKE_COMMAND} -E copy libpcbnew.a _pcbnew.${PYMOD_EXT} ++ COMMENT "Creating python's pcbnew native module _pcbnew.${PYMOD_EXT} for command line use." ++ ) ++ add_custom_target( ++ pcbnew_python_module ALL ++ DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/_pcbnew.${PYMOD_EXT} ++ ) + endif() + + endif() Index: cad/kicad/pkg/PLIST =================================================================== RCS file: /cvs/ports/cad/kicad/pkg/PLIST,v retrieving revision 1.2 diff -u -p -r1.2 PLIST --- cad/kicad/pkg/PLIST 10 Dec 2019 23:09:48 -0000 1.2 +++ cad/kicad/pkg/PLIST 1 Apr 2020 22:52:33 -0000 @@ -27,6 +27,10 @@ lib/kicad/plugins/3d/ @so lib/kicad/plugins/3d/libs3d_plugin_oce.so @so lib/kicad/plugins/3d/libs3d_plugin_vrml.so @lib lib/libkicad_3dsg.so.${LIBkicad_3dsg_VERSION} +lib/python${MODPY_VERSION}/site-packages/${MODPY_PYCACHE}/ +lib/python${MODPY_VERSION}/site-packages/${MODPY_PYCACHE}pcbnew.${MODPY_PYC_MAGIC_TAG}pyc +@so lib/python${MODPY_VERSION}/site-packages/_pcbnew.so +lib/python${MODPY_VERSION}/site-packages/pcbnew.py share/appdata/ share/appdata/kicad.appdata.xml share/applications/bitmap2component.desktop @@ -224,16 +228,17 @@ share/kicad/demos/pic_programmer/pic_pro share/kicad/demos/pic_programmer/pic_sockets.sch share/kicad/demos/pic_programmer/sym-lib-table share/kicad/demos/python_scripts_examples/ +${MODPY_COMMENT}share/kicad/demos/python_scripts_examples/${MODPY_PYCACHE}/ +share/kicad/demos/python_scripts_examples/${MODPY_PYCACHE}action_menu_add_automatic_border.${MODPY_PYC_MAGIC_TAG}pyc +share/kicad/demos/python_scripts_examples/${MODPY_PYCACHE}action_menu_text_by_date.${MODPY_PYC_MAGIC_TAG}pyc +share/kicad/demos/python_scripts_examples/${MODPY_PYCACHE}action_plugin_test_undoredo.${MODPY_PYC_MAGIC_TAG}pyc +share/kicad/demos/python_scripts_examples/${MODPY_PYCACHE}gen_gerber_and_drill_files_board.${MODPY_PYC_MAGIC_TAG}pyc +share/kicad/demos/python_scripts_examples/${MODPY_PYCACHE}plot_board.${MODPY_PYC_MAGIC_TAG}pyc share/kicad/demos/python_scripts_examples/action_menu_add_automatic_border.py -share/kicad/demos/python_scripts_examples/action_menu_add_automatic_border.pyc share/kicad/demos/python_scripts_examples/action_menu_text_by_date.py -share/kicad/demos/python_scripts_examples/action_menu_text_by_date.pyc share/kicad/demos/python_scripts_examples/action_plugin_test_undoredo.py -share/kicad/demos/python_scripts_examples/action_plugin_test_undoredo.pyc share/kicad/demos/python_scripts_examples/gen_gerber_and_drill_files_board.py -share/kicad/demos/python_scripts_examples/gen_gerber_and_drill_files_board.pyc share/kicad/demos/python_scripts_examples/plot_board.py -share/kicad/demos/python_scripts_examples/plot_board.pyc share/kicad/demos/simulation/ share/kicad/demos/simulation/laser_driver/ share/kicad/demos/simulation/laser_driver/ad8009.lib @@ -316,27 +321,61 @@ share/kicad/demos/video/video.pro share/kicad/demos/video/video.sch share/kicad/plugins/ share/kicad/plugins/README-bom.txt +${MODPY_COMMENT}share/kicad/plugins/${MODPY_PYCACHE}/ +share/kicad/plugins/${MODPY_PYCACHE}bom_csv_grouped_by_value.${MODPY_PYC_MAGIC_TAG}pyc +share/kicad/plugins/${MODPY_PYCACHE}bom_csv_grouped_by_value_with_fp.${MODPY_PYC_MAGIC_TAG}pyc +share/kicad/plugins/${MODPY_PYCACHE}bom_csv_sorted_by_ref.${MODPY_PYC_MAGIC_TAG}pyc +share/kicad/plugins/${MODPY_PYCACHE}bom_html_grouped_by_value.${MODPY_PYC_MAGIC_TAG}pyc +share/kicad/plugins/${MODPY_PYCACHE}bom_html_with_advanced_grouping.${MODPY_PYC_MAGIC_TAG}pyc +share/kicad/plugins/${MODPY_PYCACHE}bom_sorted_by_ref.${MODPY_PYC_MAGIC_TAG}pyc +share/kicad/plugins/${MODPY_PYCACHE}kicad_netlist_reader.${MODPY_PYC_MAGIC_TAG}pyc share/kicad/plugins/bom2csv.xsl share/kicad/plugins/bom2grouped_csv.xsl share/kicad/plugins/bom_csv_grouped_by_value.py -share/kicad/plugins/bom_csv_grouped_by_value.pyc share/kicad/plugins/bom_csv_grouped_by_value_with_fp.py -share/kicad/plugins/bom_csv_grouped_by_value_with_fp.pyc share/kicad/plugins/bom_csv_sorted_by_ref.py -share/kicad/plugins/bom_csv_sorted_by_ref.pyc share/kicad/plugins/bom_html_grouped_by_value.py -share/kicad/plugins/bom_html_grouped_by_value.pyc share/kicad/plugins/bom_html_with_advanced_grouping.py -share/kicad/plugins/bom_html_with_advanced_grouping.pyc share/kicad/plugins/bom_sorted_by_ref.py -share/kicad/plugins/bom_sorted_by_ref.pyc share/kicad/plugins/bom_with_title_block_2_csv.xsl share/kicad/plugins/kicad_netlist_reader.py -share/kicad/plugins/kicad_netlist_reader.pyc share/kicad/plugins/netlist_form_OrcadPcb2.xsl share/kicad/plugins/netlist_form_cadstar-RINF.xsl share/kicad/plugins/netlist_form_cadstar.xsl share/kicad/plugins/netlist_form_pads-pcb.asc.xsl +share/kicad/scripting/ +share/kicad/scripting/plugins/ +share/kicad/scripting/plugins/FPC_wizard.py +share/kicad/scripting/plugins/FootprintWizardBase.py +share/kicad/scripting/plugins/PadArray.py +share/kicad/scripting/plugins/__init__.py +${MODPY_COMMENT}share/kicad/scripting/plugins/${MODPY_PYCACHE}/ +share/kicad/scripting/plugins/${MODPY_PYCACHE}FPC_wizard.${MODPY_PYC_MAGIC_TAG}pyc +share/kicad/scripting/plugins/${MODPY_PYCACHE}FootprintWizardBase.${MODPY_PYC_MAGIC_TAG}pyc +share/kicad/scripting/plugins/${MODPY_PYCACHE}PadArray.${MODPY_PYC_MAGIC_TAG}pyc +share/kicad/scripting/plugins/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}pyc +share/kicad/scripting/plugins/${MODPY_PYCACHE}bga_wizard.${MODPY_PYC_MAGIC_TAG}pyc +share/kicad/scripting/plugins/${MODPY_PYCACHE}circular_pad_array_wizard.${MODPY_PYC_MAGIC_TAG}pyc +share/kicad/scripting/plugins/${MODPY_PYCACHE}kicad_qrcode.${MODPY_PYC_MAGIC_TAG}pyc +share/kicad/scripting/plugins/${MODPY_PYCACHE}microMatch_connectors.${MODPY_PYC_MAGIC_TAG}pyc +share/kicad/scripting/plugins/${MODPY_PYCACHE}qfn_wizard.${MODPY_PYC_MAGIC_TAG}pyc +share/kicad/scripting/plugins/${MODPY_PYCACHE}qfp_wizard.${MODPY_PYC_MAGIC_TAG}pyc +share/kicad/scripting/plugins/${MODPY_PYCACHE}qrcode_footprint_wizard.${MODPY_PYC_MAGIC_TAG}pyc +share/kicad/scripting/plugins/${MODPY_PYCACHE}sdip_wizard.${MODPY_PYC_MAGIC_TAG}pyc +share/kicad/scripting/plugins/${MODPY_PYCACHE}touch_slider_wizard.${MODPY_PYC_MAGIC_TAG}pyc +share/kicad/scripting/plugins/${MODPY_PYCACHE}uss39_barcode.${MODPY_PYC_MAGIC_TAG}pyc +share/kicad/scripting/plugins/${MODPY_PYCACHE}zip_wizard.${MODPY_PYC_MAGIC_TAG}pyc +share/kicad/scripting/plugins/bga_wizard.py +share/kicad/scripting/plugins/circular_pad_array_wizard.py +share/kicad/scripting/plugins/kicad_qrcode.py +share/kicad/scripting/plugins/microMatch_connectors.py +share/kicad/scripting/plugins/qfn_wizard.py +share/kicad/scripting/plugins/qfp_wizard.py +share/kicad/scripting/plugins/qrcode_footprint_wizard.py +share/kicad/scripting/plugins/sdip_wizard.py +share/kicad/scripting/plugins/touch_slider_wizard.py +share/kicad/scripting/plugins/uss39_barcode.py +share/kicad/scripting/plugins/zip_wizard.py share/kicad/template/kicad.pro share/mime/packages/kicad-gerbers.xml share/mime/packages/kicad-kicad.xml