pkgsrc-Changes archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

CVS commit: pkgsrc/cad/kicad



Module Name:    pkgsrc
Committed By:   bouyer
Date:           Tue Sep 29 16:11:57 UTC 2026

Modified Files:
        pkgsrc/cad/kicad: Makefile PLIST distinfo
        pkgsrc/cad/kicad/patches: patch-CMakeLists.txt
            patch-eeschema_sim_kibis_ibis__parser.cpp
            patch-eeschema_sim_sim_model_tline.cpp patch-pcbnew_CMakeLists.txt
Added Files:
        pkgsrc/cad/kicad/patches:
            patch-3d-viewer_3d__rendering_opengl_3d__spheres__gizmo.cpp
            patch-3d-viewer_3d__viewer_eda__3d__viewer__frame.cpp
            patch-3d-viewer_3d__viewer_eda__3d__viewer__frame.h
            patch-3d-viewer_dialogs_panel__preview__3d__model.cpp
            patch-3d-viewer_dialogs_panel__preview__3d__model.h
            patch-api_CMakeLists.txt
            patch-api_proto_common_types_base__types.proto
            patch-common_api_api__handler__common.cpp
            patch-common_eda__base__frame.cpp
            patch-common_spacenav_libspnav__driver.h
            patch-include_pcb__base__frame.h patch-pcbnew_pcb__base__frame.cpp
            patch-qa_qa__utils_error__handlers.cpp
            patch-thirdparty_thread-pool_bs__thread__pool.hpp

Log Message:
cad/kicad: Update to 10.0.6. Packaged in pkgsrc-wip by Atsushi Toyokura.

important changes since 8.0.6:
see https://www.kicad.org/blog/2025/02/Version-9.0.0-Released/
and https://www.kicad.org/blog/2026/03/Version-10.0.0-Released/
for details, with screen captures and videos

Global:
  Jobsets (predefined output jobs)
  Embedded files
  Bezier curve tool in all editors
  Multi-channel design support
  Component classes
  Table editing in schematic, symbol, and footprint editors
  Custom ERC/DRC errors, warnings, and exclusion comments
  Mouse scroll wheel actions
  Customizable toolbars
  Undo/redo support in dialogs
  Lasso selection
  New importers

Schematic and Symbol Editors
  Selection filtering
  Sheet pin/hierarchical label synchronization tool
  Net class rule areas
  Design blocks
  Net class color highlighting
  Variants
  Hop-over display
  Jumper support
  Grouping support
  Pin table CSV support

PCB and Footprint Editors
  IPC API
  Zone manager
  Improved via tenting control
  Layer pair presets
  Shape modification tool
  Pad stacks
  Interactive positioning tool
  Multiple track drag
  Creepage design rule check
  3D model export improvements
  Time-domain tuning
  PCB Design Blocks
  inner-layer objects in footprints
  Pin and gate swap
  Graphical DRC Rule editor


To generate a diff of this commit:
cvs rdiff -u -r1.127 -r1.128 pkgsrc/cad/kicad/Makefile
cvs rdiff -u -r1.10 -r1.11 pkgsrc/cad/kicad/PLIST
cvs rdiff -u -r1.30 -r1.31 pkgsrc/cad/kicad/distinfo
cvs rdiff -u -r0 -r1.1 \
    pkgsrc/cad/kicad/patches/patch-3d-viewer_3d__rendering_opengl_3d__spheres__gizmo.cpp \
    pkgsrc/cad/kicad/patches/patch-3d-viewer_3d__viewer_eda__3d__viewer__frame.cpp \
    pkgsrc/cad/kicad/patches/patch-3d-viewer_3d__viewer_eda__3d__viewer__frame.h \
    pkgsrc/cad/kicad/patches/patch-3d-viewer_dialogs_panel__preview__3d__model.cpp \
    pkgsrc/cad/kicad/patches/patch-3d-viewer_dialogs_panel__preview__3d__model.h \
    pkgsrc/cad/kicad/patches/patch-api_CMakeLists.txt \
    pkgsrc/cad/kicad/patches/patch-api_proto_common_types_base__types.proto \
    pkgsrc/cad/kicad/patches/patch-common_api_api__handler__common.cpp \
    pkgsrc/cad/kicad/patches/patch-common_eda__base__frame.cpp \
    pkgsrc/cad/kicad/patches/patch-common_spacenav_libspnav__driver.h \
    pkgsrc/cad/kicad/patches/patch-include_pcb__base__frame.h \
    pkgsrc/cad/kicad/patches/patch-pcbnew_pcb__base__frame.cpp \
    pkgsrc/cad/kicad/patches/patch-qa_qa__utils_error__handlers.cpp \
    pkgsrc/cad/kicad/patches/patch-thirdparty_thread-pool_bs__thread__pool.hpp
cvs rdiff -u -r1.8 -r1.9 pkgsrc/cad/kicad/patches/patch-CMakeLists.txt
cvs rdiff -u -r1.1 -r1.2 \
    pkgsrc/cad/kicad/patches/patch-eeschema_sim_kibis_ibis__parser.cpp \
    pkgsrc/cad/kicad/patches/patch-eeschema_sim_sim_model_tline.cpp
cvs rdiff -u -r1.7 -r1.8 pkgsrc/cad/kicad/patches/patch-pcbnew_CMakeLists.txt

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: pkgsrc/cad/kicad/Makefile
diff -u pkgsrc/cad/kicad/Makefile:1.127 pkgsrc/cad/kicad/Makefile:1.128
--- pkgsrc/cad/kicad/Makefile:1.127     Tue Sep 29 06:04:01 2026
+++ pkgsrc/cad/kicad/Makefile   Tue Sep 29 16:11:56 2026
@@ -1,8 +1,7 @@
-# $NetBSD: Makefile,v 1.127 2026/09/29 06:04:01 wiz Exp $
+# $NetBSD: Makefile,v 1.128 2026/09/29 16:11:56 bouyer Exp $
 
-V=             8.0.9
+V=             10.0.6
 DISTNAME=      kicad-${V}
-PKGREVISION=   11
 CATEGORIES=    cad
 MASTER_SITES=  ${MASTER_SITE_GITLAB:=kicad/code/}
 GITLAB_PROJECT=        kicad
@@ -17,9 +16,9 @@ LICENSE=      gnu-gpl-v3
 TOOL_DEPENDS+= swig4-[0-9]*:../../devel/swig4
 DEPENDS+=      git-base-[0-9]*:../../devel/git-base
 
-USE_CXX_FEATURES=      charconv filesystem c++17
 USE_PKGLOCALEDIR=      yes
 USE_LANGUAGES=         c c++
+USE_CXX_FEATURES+=     charconv filesystem c++17
 USE_TOOLS+=            pkg-config msgfmt msgmerge xgettext
 
 CMAKE_CONFIGURE_ARGS+=         -DCMAKE_BUILD_TYPE=Release
@@ -36,8 +35,6 @@ CMAKE_CONFIGURE_ARGS+=                -DKICAD_USE_EGL=
 
 PY_PATCHPLIST=         yes
 
-PYTHON_VERSIONS_INCOMPATIBLE=  314 # Fails to find Python libs
-
 # The package tries to build a native .app bundle. This doesn't work
 # in pkgsrc context because they don't support DESTDIR installation,
 # which is a requirement in pkgsrc. It also tries to use native Python
@@ -48,25 +45,30 @@ NOT_FOR_PLATFORM+=  Darwin-*-*
 
 .include "options.mk"
 
+# needs 64-bit CAS for std::atomic<size_t>
+.include "../../mk/atomic64.mk"
+.include "../../archivers/zstd/buildlink3.mk"
 .include "../../cad/occt/buildlink3.mk"
 .include "../../databases/unixodbc/buildlink3.mk"
 .include "../../devel/boost-libs/buildlink3.mk"
 .include "../../devel/cmake/build.mk"
 .include "../../devel/gettext-tools/msgfmt-desktop.mk"
 .include "../../devel/libgit2/buildlink3.mk"
+.include "../../devel/protobuf/buildlink3.mk"
 .include "../../devel/zlib/buildlink3.mk"
 .include "../../graphics/MesaLib/buildlink3.mk"
-.include "../../graphics/cairo/buildlink3.mk"
 .include "../../graphics/glew/buildlink3.mk"
 BUILDLINK_API_DEPENDS.glm+=    glm>=0.9.9.8
 .include "../../graphics/glm/buildlink3.mk"
 .include "../../graphics/glu/buildlink3.mk"
-.include "../../graphics/hicolor-icon-theme/buildlink3.mk"
+.include "../../graphics/cairo/buildlink3.mk"
 .include "../../lang/python/extension.mk"
+.include "../../net/nng/buildlink3.mk"
 .include "../../security/libsecret/buildlink3.mk"
-.include "../../sysutils/desktop-file-utils/desktopdb.mk"
 .include "../../www/curl/buildlink3.mk"
 .include "../../x11/wxGTK32/buildlink3.mk"
-# needs 64-bit CAS for std::atomic<size_t>
-.include "../../mk/atomic64.mk"
+.include "../../sysutils/desktop-file-utils/desktopdb.mk"
+.include "../../graphics/hicolor-icon-theme/buildlink3.mk"
+.include "../../print/poppler/buildlink3.mk"
+.include "../../devel/libspnav/buildlink3.mk"
 .include "../../mk/bsd.pkg.mk"

Index: pkgsrc/cad/kicad/PLIST
diff -u pkgsrc/cad/kicad/PLIST:1.10 pkgsrc/cad/kicad/PLIST:1.11
--- pkgsrc/cad/kicad/PLIST:1.10 Fri Apr 26 16:46:29 2024
+++ pkgsrc/cad/kicad/PLIST      Tue Sep 29 16:11:56 2026
@@ -1,4 +1,4 @@
-@comment $NetBSD: PLIST,v 1.10 2024/04/26 16:46:29 tnn Exp $
+@comment $NetBSD: PLIST,v 1.11 2026/09/29 16:11:56 bouyer Exp $
 bin/_cvpcb.kiface
 bin/_eeschema.kiface
 bin/_gerbview.kiface
@@ -21,6 +21,8 @@ bin/pl_editor
 lib/kicad/plugins/3d/libs3d_plugin_idf.so
 lib/kicad/plugins/3d/libs3d_plugin_oce.so
 lib/kicad/plugins/3d/libs3d_plugin_vrml.so
+lib/libkiapi.so
+lib/libkiapi.so.${PKGVERSION}
 lib/libkicad_3dsg.so
 lib/libkicad_3dsg.so.2.0.0
 lib/libkicommon.so
@@ -35,6 +37,7 @@ share/applications/org.kicad.gerbview.de
 share/applications/org.kicad.kicad.desktop
 share/applications/org.kicad.pcbcalculator.desktop
 share/applications/org.kicad.pcbnew.desktop
+share/bash-completion/completions/kicad-cli
 share/icons/hicolor/128x128/apps/bitmap2component.png
 share/icons/hicolor/128x128/apps/eeschema.png
 share/icons/hicolor/128x128/apps/gerbview.png
@@ -149,79 +152,241 @@ share/icons/hicolor/scalable/mimetypes/a
 share/icons/hicolor/scalable/mimetypes/application-x-kicad-worksheet-48.svg
 share/icons/hicolor/scalable/mimetypes/application-x-kicad-worksheet-64.svg
 share/icons/hicolor/scalable/mimetypes/application-x-kicad-worksheet.svg
+share/kicad/demos/cm5_minima/3d_lib/2230-M.2-B-KEY.kicad_mod
+share/kicad/demos/cm5_minima/3d_lib/2230-key-E.kicad_mod
+share/kicad/demos/cm5_minima/3d_lib/3x4x2 tact button.step
+share/kicad/demos/cm5_minima/3d_lib/BM4B-SRSS-TB.step
+share/kicad/demos/cm5_minima/3d_lib/BM6B-SRSS-TB.step
+share/kicad/demos/cm5_minima/3d_lib/LIB_B3U-3000PM-B/B3U-3000PM-B/3D/B3U-3000PM-B.stp
+share/kicad/demos/cm5_minima/3d_lib/LIB_B3U-3000PM-B/license.txt
+share/kicad/demos/cm5_minima/3d_lib/LIB_B3U-3000PM-B/version.bin
+share/kicad/demos/cm5_minima/3d_lib/M.2-B.step
+share/kicad/demos/cm5_minima/3d_lib/SHTC3-TR-10KS.stp
+share/kicad/demos/cm5_minima/3d_lib/WE-RJ45LAN-7498111120AR (rev1).stp
+share/kicad/demos/cm5_minima/3d_lib/hailo8_m.2_key_m_2242_et_m2b_3d_model_2.1.STEP
+share/kicad/demos/cm5_minima/CM5.kicad_sch
+share/kicad/demos/cm5_minima/CM5IO.3dshapes/10164227-1001a1rlf.stp
+share/kicad/demos/cm5_minima/CM5IO.3dshapes/471511051.stp
+share/kicad/demos/cm5_minima/CM5IO.3dshapes/BM04B-SRSS-TB.STEP
+share/kicad/demos/cm5_minima/CM5IO.3dshapes/FH12-22S-0.5SH.stp
+share/kicad/demos/cm5_minima/CM5IO.3dshapes/MTSSD03-67MSW337.STEP
+share/kicad/demos/cm5_minima/CM5IO.3dshapes/SRP5030CC.stp
+share/kicad/demos/cm5_minima/CM5IO.3dshapes/TRJG0926HENL .stp
+share/kicad/demos/cm5_minima/CM5IO.3dshapes/USB3stacked.STEP
+share/kicad/demos/cm5_minima/CM5IO.kicad_sym
+share/kicad/demos/cm5_minima/CM5IO.pretty/BatteryHolder_Keystone_3034_1x20mm.kicad_mod
+share/kicad/demos/cm5_minima/CM5IO.pretty/CM5_IO.kicad_sym
+share/kicad/demos/cm5_minima/CM5IO.pretty/CONN-SMD_2P-P1.00_SM02B-SRSS-TB-LF-SN.kicad_mod
+share/kicad/demos/cm5_minima/CM5IO.pretty/CP_EIA-3528-21_Kemet-B.kicad_mod
+share/kicad/demos/cm5_minima/CM5IO.pretty/C_0402_1005Metric.kicad_mod
+share/kicad/demos/cm5_minima/CM5IO.pretty/C_0805_2012Metric.kicad_mod
+share/kicad/demos/cm5_minima/CM5IO.pretty/Crystal_SMD_3225-4Pin_3.2x2.5mm.kicad_mod
+share/kicad/demos/cm5_minima/CM5IO.pretty/DFN-8-1EP_2x2mm_P0.5mm_EP1.05x1.75mm.kicad_mod
+share/kicad/demos/cm5_minima/CM5IO.pretty/DFN2510A-10_L2.5-W1.0-P0.50-BL.kicad_mod
+share/kicad/demos/cm5_minima/CM5IO.pretty/EDAC 690-019-298-412.kicad_mod
+share/kicad/demos/cm5_minima/CM5IO.pretty/GLPLXSMT188S7QQYG.kicad_mod
+share/kicad/demos/cm5_minima/CM5IO.pretty/Hirose_FH12-22S-0.5SH_1x22-1MP_P0.50mm_Horizontal.kicad_mod
+share/kicad/demos/cm5_minima/CM5IO.pretty/JST_SH_BM04B-SRSS-TB_1x04-1MP_P1.00mm_Vertical.kicad_mod
+share/kicad/demos/cm5_minima/CM5IO.pretty/JST_SUR_BM10B-SURS-TF_1x10-1MP_P0.80mm_Vertical.kicad_mod
+share/kicad/demos/cm5_minima/CM5IO.pretty/KiCad-Logo2_5mm_SilkScreen.kicad_mod
+share/kicad/demos/cm5_minima/CM5IO.pretty/LED-SMD_L1.7-W0.6-RD.kicad_mod
+share/kicad/demos/cm5_minima/CM5IO.pretty/LGA-16_3x3mm_P0.5mm_LayoutBorder3x5y.kicad_mod
+share/kicad/demos/cm5_minima/CM5IO.pretty/L_Bourns_SRP5030CC.kicad_mod
+share/kicad/demos/cm5_minima/CM5IO.pretty/L_Coilcraft_XAL5030-XXX.kicad_mod
+share/kicad/demos/cm5_minima/CM5IO.pretty/M.2 M Key socket 2230.kicad_mod
+share/kicad/demos/cm5_minima/CM5IO.pretty/M.2 M Key socket.kicad_mod
+share/kicad/demos/cm5_minima/CM5IO.pretty/M.2 M Key socket_2230_2242.kicad_mod
+share/kicad/demos/cm5_minima/CM5IO.pretty/MTCONN_UBAF30-D2011.kicad_mod
+share/kicad/demos/cm5_minima/CM5IO.pretty/MountingHole_2.2mm_M2_DIN965_Pad_TopBottom.kicad_mod
+share/kicad/demos/cm5_minima/CM5IO.pretty/MountingHole_2.7mm_M2.5_DIN965.kicad_mod
+share/kicad/demos/cm5_minima/CM5IO.pretty/MountingHole_2.7mm_Pad.kicad_mod
+share/kicad/demos/cm5_minima/CM5IO.pretty/MountingHole_3mm_Pad.kicad_mod
+share/kicad/demos/cm5_minima/CM5IO.pretty/New_Library.kicad_sym
+share/kicad/demos/cm5_minima/CM5IO.pretty/R_0402_1005Metric.kicad_mod
+share/kicad/demos/cm5_minima/CM5IO.pretty/Raspberry-Pi-5-Compute-Module.kicad_mod
+share/kicad/demos/cm5_minima/CM5IO.pretty/Raspberry-Pi-5-Compute-Module_GPIO.kicad_mod
+share/kicad/demos/cm5_minima/CM5IO.pretty/Raspberry-Pi-5-Compute-Module_HSS.kicad_mod
+share/kicad/demos/cm5_minima/CM5IO.pretty/SDCARD_MOLEX_503398-1892.kicad_mod
+share/kicad/demos/cm5_minima/CM5IO.pretty/SOT-23-5.kicad_mod
+share/kicad/demos/cm5_minima/CM5IO.pretty/SOT-23-6.kicad_mod
+share/kicad/demos/cm5_minima/CM5IO.pretty/SOT-353_SC-70-5.kicad_mod
+share/kicad/demos/cm5_minima/CM5IO.pretty/SOT-416.kicad_mod
+share/kicad/demos/cm5_minima/CM5IO.pretty/SW-SMD_MK-11C04-G013.kicad_mod
+share/kicad/demos/cm5_minima/CM5IO.pretty/SW-SMD_TS-1010A-B.kicad_mod
+share/kicad/demos/cm5_minima/CM5IO.pretty/TRJG0926HENL.kicad_mod
+share/kicad/demos/cm5_minima/CM5IO.pretty/TestPoint_Pad_D1.0mm.kicad_mod
+share/kicad/demos/cm5_minima/CM5IO.pretty/TestPoint_THTPad_D1.0mm_Drill0.5mm.kicad_mod
+share/kicad/demos/cm5_minima/CM5IO.pretty/USB-C-SMD_TYPEC-305-ACP16H458.kicad_mod
+share/kicad/demos/cm5_minima/CM5IO.pretty/USON-10_2.5x1.0mm_P0.5mm.kicad_mod
+share/kicad/demos/cm5_minima/CM5IO.pretty/kibuzzard-675DA838.kicad_mod
+share/kicad/demos/cm5_minima/CM5IO.pretty/kibuzzard-675DA850.kicad_mod
+share/kicad/demos/cm5_minima/CM5IO.pretty/kibuzzard-675DA866.kicad_mod
+share/kicad/demos/cm5_minima/CM5IO.pretty/kibuzzard-675EDCA4.kicad_mod
+share/kicad/demos/cm5_minima/CM5IO.pretty/kibuzzard-675EDCB9.kicad_mod
+share/kicad/demos/cm5_minima/CM5IO.pretty/kibuzzard-6772D327.kicad_mod
+share/kicad/demos/cm5_minima/CM5IO.pretty/kibuzzard-6772DA33.kicad_mod
+share/kicad/demos/cm5_minima/CM5IO.pretty/kibuzzard-6773B9CA.kicad_mod
+share/kicad/demos/cm5_minima/CM5IO.pretty/kibuzzard-6773B9F7.kicad_mod
+share/kicad/demos/cm5_minima/CM5IO.pretty/kibuzzard-6773BA89.kicad_mod
+share/kicad/demos/cm5_minima/CM5IO.pretty/kibuzzard-6773C222.kicad_mod
+share/kicad/demos/cm5_minima/CM5IO.pretty/kibuzzard-6773C2D7.kicad_mod
+share/kicad/demos/cm5_minima/CM5IO.pretty/kibuzzard-6773C376.kicad_mod
+share/kicad/demos/cm5_minima/CM5IO.pretty/kibuzzard-67795592.kicad_mod
+share/kicad/demos/cm5_minima/CM5IO.pretty/kibuzzard-67CC6BA6.kicad_mod
+share/kicad/demos/cm5_minima/CM5IO.pretty/kibuzzard-67CC6BD3.kicad_mod
+share/kicad/demos/cm5_minima/CM5IO.pretty/kibuzzard-67CC6D94.kicad_mod
+share/kicad/demos/cm5_minima/CM5IO.pretty/kibuzzard-67CC6D9E.kicad_mod
+share/kicad/demos/cm5_minima/CM5IO.pretty/kibuzzard-67CC7445.kicad_mod
+share/kicad/demos/cm5_minima/CM5IO.pretty/kibuzzard-67EBAC4C.kicad_mod
+share/kicad/demos/cm5_minima/CM5IO.pretty/kibuzzard-67EBB9C1.kicad_mod
+share/kicad/demos/cm5_minima/CM5IO.pretty/kibuzzard-67EBD21C.kicad_mod
+share/kicad/demos/cm5_minima/CM5IO.pretty/kibuzzard-67EBD221.kicad_mod
+share/kicad/demos/cm5_minima/CM5IO.pretty/kibuzzard-67EBEF55.kicad_mod
+share/kicad/demos/cm5_minima/CM5IO.pretty/kibuzzard-67EBF015.kicad_mod
+share/kicad/demos/cm5_minima/CM5IO.pretty/kibuzzard-67EBF0A0.kicad_mod
+share/kicad/demos/cm5_minima/CM5IO.pretty/kibuzzard-67EBF14E.kicad_mod
+share/kicad/demos/cm5_minima/CM5_MINIMA_3.kicad_pcb
+share/kicad/demos/cm5_minima/CM5_MINIMA_3.kicad_pro
+share/kicad/demos/cm5_minima/CM5_MINIMA_3.kicad_sch
+share/kicad/demos/cm5_minima/CM5_MINIMA_3.pdf
+share/kicad/demos/cm5_minima/DSI_CSI.kicad_sch
+share/kicad/demos/cm5_minima/Ethernet.kicad_sch
+share/kicad/demos/cm5_minima/HDMI.kicad_sch
+share/kicad/demos/cm5_minima/IO.kicad_sch
+share/kicad/demos/cm5_minima/LICENSE.txt
+share/kicad/demos/cm5_minima/PCIe-M2.kicad_sch
+share/kicad/demos/cm5_minima/README.md
+share/kicad/demos/cm5_minima/USB.kicad_sch
+share/kicad/demos/cm5_minima/fp-lib-table
+share/kicad/demos/cm5_minima/sym-lib-table
 share/kicad/demos/complex_hierarchy/ampli_ht.kicad_sch
 share/kicad/demos/complex_hierarchy/complex_hierarchy.kicad_pcb
 share/kicad/demos/complex_hierarchy/complex_hierarchy.kicad_pro
 share/kicad/demos/complex_hierarchy/complex_hierarchy.kicad_sch
-share/kicad/demos/complex_hierarchy/complex_hierarchy_schlib.kicad_sym
+share/kicad/demos/complex_hierarchy/complex_hierarchy.kicad_sym
+share/kicad/demos/complex_hierarchy/complex_hierarchy.pretty/Altech_AK300_1x02_P5.00mm_45-Degree.kicad_mod
+share/kicad/demos/complex_hierarchy/complex_hierarchy.pretty/CP_Axial_L10.0mm_D4.5mm_P15.00mm_Horizontal.kicad_mod
+share/kicad/demos/complex_hierarchy/complex_hierarchy.pretty/CP_Axial_L11.0mm_D6.0mm_P18.00mm_Horizontal.kicad_mod
+share/kicad/demos/complex_hierarchy/complex_hierarchy.pretty/C_Disc_D5.0mm_W2.5mm_P5.00mm.kicad_mod
+share/kicad/demos/complex_hierarchy/complex_hierarchy.pretty/DIP-8_W7.62mm_LongPads.kicad_mod
+share/kicad/demos/complex_hierarchy/complex_hierarchy.pretty/D_DO-35_SOD27_P7.62mm_Horizontal.kicad_mod
+share/kicad/demos/complex_hierarchy/complex_hierarchy.pretty/D_DO-41_SOD81_P12.70mm_Horizontal.kicad_mod
+share/kicad/demos/complex_hierarchy/complex_hierarchy.pretty/Potentiometer_Bourns_3266W_Vertical.kicad_mod
+share/kicad/demos/complex_hierarchy/complex_hierarchy.pretty/R_Axial_DIN0204_L3.6mm_D1.6mm_P7.62mm_Horizontal.kicad_mod
+share/kicad/demos/complex_hierarchy/complex_hierarchy.pretty/TO-92_HandSolder.kicad_mod
 share/kicad/demos/complex_hierarchy/fp-lib-table
 share/kicad/demos/complex_hierarchy/sym-lib-table
-share/kicad/demos/custom_pads_test/custom_pads_schlib.kicad_sym
-share/kicad/demos/custom_pads_test/custom_pads_test.kicad_pcb
-share/kicad/demos/custom_pads_test/custom_pads_test.kicad_pro
-share/kicad/demos/custom_pads_test/custom_pads_test.kicad_sch
-share/kicad/demos/custom_pads_test/sym-lib-table
 share/kicad/demos/ecc83/3d_shapes/ecc83.wrl
 share/kicad/demos/ecc83/ecc83-pp.kicad_pcb
 share/kicad/demos/ecc83/ecc83-pp.kicad_pro
 share/kicad/demos/ecc83/ecc83-pp.kicad_sch
+share/kicad/demos/ecc83/ecc83-pp.kicad_sym
 share/kicad/demos/ecc83/ecc83-pp_v2.kicad_pcb
 share/kicad/demos/ecc83/ecc83-pp_v2.kicad_pro
 share/kicad/demos/ecc83/ecc83-pp_v2.kicad_sch
-share/kicad/demos/ecc83/ecc83_schlib.kicad_sym
 share/kicad/demos/ecc83/footprints.pretty/Altech_AK300_1x02_P5.00mm_45-Degree.kicad_mod
+share/kicad/demos/ecc83/footprints.pretty/CP_Radial_D10.0mm_P5.00mm.kicad_mod
+share/kicad/demos/ecc83/footprints.pretty/CP_Radial_D12.5mm_P7.50mm.kicad_mod
+share/kicad/demos/ecc83/footprints.pretty/C_Axial_L12.0mm_D6.5mm_P20.00mm_Horizontal.kicad_mod
+share/kicad/demos/ecc83/footprints.pretty/C_Disc_D4.7mm_W2.5mm_P5.00mm.kicad_mod
 share/kicad/demos/ecc83/footprints.pretty/MountingHole_3.2mm_M3_DIN965_Pad.kicad_mod
+share/kicad/demos/ecc83/footprints.pretty/PinHeader_1x02_P2.54mm_Vertical.kicad_mod
+share/kicad/demos/ecc83/footprints.pretty/R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_Horizontal.kicad_mod
 share/kicad/demos/ecc83/footprints.pretty/Valve_ECC-83-1.kicad_mod
 share/kicad/demos/ecc83/footprints.pretty/Valve_ECC-83-2.kicad_mod
 share/kicad/demos/ecc83/fp-lib-table
 share/kicad/demos/ecc83/sym-lib-table
-share/kicad/demos/flat_hierarchy/flat_hierarchy.kicad_pcb
-share/kicad/demos/flat_hierarchy/flat_hierarchy.kicad_pro
-share/kicad/demos/flat_hierarchy/flat_hierarchy.kicad_sch
-share/kicad/demos/flat_hierarchy/fp-lib-table
-share/kicad/demos/flat_hierarchy/libs/3d_shapes/adjustable_rx2v4.wrl
-share/kicad/demos/flat_hierarchy/libs/flat_hierarchy_schlib.kicad_sym
-share/kicad/demos/flat_hierarchy/libs/pic_programmer_fp.pretty/D_DO-35_SOD27_P7.62mm_Horizontal.kicad_mod
-share/kicad/demos/flat_hierarchy/libs/pic_programmer_fp.pretty/INDUCTOR_V.kicad_mod
-share/kicad/demos/flat_hierarchy/libs/pic_programmer_fp.pretty/MountingHole_4.3mm_M4_DIN965.kicad_mod
-share/kicad/demos/flat_hierarchy/libs/pic_programmer_fp.pretty/RV2X4.kicad_mod
-share/kicad/demos/flat_hierarchy/libs/pic_programmer_fp.pretty/R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_Horizontal.kicad_mod
-share/kicad/demos/flat_hierarchy/libs/pic_programmer_fp.pretty/TO-220-3_Horizontal_TabDown.kicad_mod
-share/kicad/demos/flat_hierarchy/libs/pic_programmer_fp.pretty/TO-92.kicad_mod
-share/kicad/demos/flat_hierarchy/pic_programmer.kicad_sch
-share/kicad/demos/flat_hierarchy/pic_sockets.kicad_sch
-share/kicad/demos/flat_hierarchy/sym-lib-table
 share/kicad/demos/interf_u/fp-lib-table
 share/kicad/demos/interf_u/interf_u.kicad_pcb
 share/kicad/demos/interf_u/interf_u.kicad_pro
 share/kicad/demos/interf_u/interf_u.kicad_sch
+share/kicad/demos/interf_u/interf_u.kicad_sym
 share/kicad/demos/interf_u/interf_u.pretty/BUS_PC.kicad_mod
+share/kicad/demos/interf_u/interf_u.pretty/CP_Axial_L10.0mm_D4.5mm_P15.00mm_Horizontal.kicad_mod
+share/kicad/demos/interf_u/interf_u.pretty/C_Disc_D3.0mm_W2.0mm_P2.50mm.kicad_mod
+share/kicad/demos/interf_u/interf_u.pretty/Crystal_HC18-U_Horizontal.kicad_mod
+share/kicad/demos/interf_u/interf_u.pretty/DIP-20_W7.62mm.kicad_mod
+share/kicad/demos/interf_u/interf_u.pretty/DIP-24_W7.62mm.kicad_mod
+share/kicad/demos/interf_u/interf_u.pretty/DIP-32_W15.24mm.kicad_mod
+share/kicad/demos/interf_u/interf_u.pretty/DSUB-25_Female_Horizontal_P2.77x2.84mm_EdgePinOffset9.90mm_Housed_MountingHolesOffset11.32mm.kicad_mod
+share/kicad/demos/interf_u/interf_u.pretty/LED_D5.0mm.kicad_mod
 share/kicad/demos/interf_u/interf_u.pretty/PGA120.kicad_mod
+share/kicad/demos/interf_u/interf_u.pretty/PinHeader_2x08_P2.54mm_Vertical.kicad_mod
+share/kicad/demos/interf_u/interf_u.pretty/R_Array_SIP10.kicad_mod
+share/kicad/demos/interf_u/interf_u.pretty/R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_Horizontal.kicad_mod
 share/kicad/demos/interf_u/interf_u.pretty/tux.kicad_mod
-share/kicad/demos/interf_u/interf_u_schlib.kicad_sym
 share/kicad/demos/interf_u/pagelayout_logo.kicad_wks
 share/kicad/demos/interf_u/sym-lib-table
 share/kicad/demos/interf_u/tux.bmp
 share/kicad/demos/interf_u/tux.kicad_sym
+share/kicad/demos/jetson-agx-thor-baseboard/LICENSE
+share/kicad/demos/jetson-agx-thor-baseboard/README.md
+share/kicad/demos/jetson-agx-thor-baseboard/csi.kicad_sch
+share/kicad/demos/jetson-agx-thor-baseboard/dcdc.kicad_sch
+share/kicad/demos/jetson-agx-thor-baseboard/expansion_connector.kicad_sch
+share/kicad/demos/jetson-agx-thor-baseboard/jetson-agx-thor-baseboard.kicad_dru
+share/kicad/demos/jetson-agx-thor-baseboard/jetson-agx-thor-baseboard.kicad_pcb
+share/kicad/demos/jetson-agx-thor-baseboard/jetson-agx-thor-baseboard.kicad_pro
+share/kicad/demos/jetson-agx-thor-baseboard/jetson-agx-thor-baseboard.kicad_sch
+share/kicad/demos/jetson-agx-thor-baseboard/level_shifter_x8.kicad_sch
+share/kicad/demos/jetson-agx-thor-baseboard/m2.kicad_sch
+share/kicad/demos/jetson-agx-thor-baseboard/peripherals.kicad_sch
+share/kicad/demos/jetson-agx-thor-baseboard/power.kicad_sch
+share/kicad/demos/jetson-agx-thor-baseboard/recovery_usb.kicad_sch
+share/kicad/demos/jetson-agx-thor-baseboard/sfp.kicad_sch
+share/kicad/demos/jetson-agx-thor-baseboard/som_io.kicad_sch
+share/kicad/demos/jetson-agx-thor-baseboard/som_io2.kicad_sch
+share/kicad/demos/jetson-agx-thor-baseboard/som_power.kicad_sch
+share/kicad/demos/jetson-agx-thor-baseboard/usb.kicad_sch
+share/kicad/demos/jetson-agx-thor-baseboard/usb_debug_pd.kicad_sch
+share/kicad/demos/jetson-agx-thor-baseboard/usb_dp.kicad_sch
+share/kicad/demos/jetson-agx-thor-baseboard/usb_hub.kicad_sch
 share/kicad/demos/kit-dev-coldfire-xilinx_5213/fp-lib-table
 share/kicad/demos/kit-dev-coldfire-xilinx_5213/in_out_conn.kicad_sch
 share/kicad/demos/kit-dev-coldfire-xilinx_5213/kit-coldfire_schlib.kicad_sym
 share/kicad/demos/kit-dev-coldfire-xilinx_5213/kit-dev-coldfire-xilinx_5213.kicad_pcb
 share/kicad/demos/kit-dev-coldfire-xilinx_5213/kit-dev-coldfire-xilinx_5213.kicad_pro
 share/kicad/demos/kit-dev-coldfire-xilinx_5213/kit-dev-coldfire-xilinx_5213.kicad_sch
+share/kicad/demos/kit-dev-coldfire-xilinx_5213/kit-dev-coldfire-xilinx_5213.kicad_sym
+share/kicad/demos/kit-dev-coldfire-xilinx_5213/kit-dev-coldfire.pretty/Altech_AK300_1x02_P5.00mm_45-Degree.kicad_mod
+share/kicad/demos/kit-dev-coldfire-xilinx_5213/kit-dev-coldfire.pretty/CP_Radial_D8.0mm_P5.00mm.kicad_mod
+share/kicad/demos/kit-dev-coldfire-xilinx_5213/kit-dev-coldfire.pretty/C_0805_2012Metric.kicad_mod
+share/kicad/demos/kit-dev-coldfire-xilinx_5213/kit-dev-coldfire.pretty/Crystal_HC18-U_Horizontal.kicad_mod
+share/kicad/demos/kit-dev-coldfire-xilinx_5213/kit-dev-coldfire.pretty/DSUB-9_Female_Horizontal_P2.77x2.84mm_EdgePinOffset7.70mm_Housed_MountingHolesOffset9.12mm.kicad_mod
+share/kicad/demos/kit-dev-coldfire-xilinx_5213/kit-dev-coldfire.pretty/D_DO-15_P12.70mm_Horizontal.kicad_mod
 share/kicad/demos/kit-dev-coldfire-xilinx_5213/kit-dev-coldfire.pretty/D_SOT-23_ANK.kicad_mod
 share/kicad/demos/kit-dev-coldfire-xilinx_5213/kit-dev-coldfire.pretty/FSUPCMS.kicad_mod
 share/kicad/demos/kit-dev-coldfire-xilinx_5213/kit-dev-coldfire.pretty/JACK_ALIM.kicad_mod
+share/kicad/demos/kit-dev-coldfire-xilinx_5213/kit-dev-coldfire.pretty/LED_1206_3216Metric.kicad_mod
+share/kicad/demos/kit-dev-coldfire-xilinx_5213/kit-dev-coldfire.pretty/LQFP-100_14x14mm_P0.5mm.kicad_mod
+share/kicad/demos/kit-dev-coldfire-xilinx_5213/kit-dev-coldfire.pretty/PinHeader_1x01_P2.54mm_Vertical.kicad_mod
+share/kicad/demos/kit-dev-coldfire-xilinx_5213/kit-dev-coldfire.pretty/PinHeader_1x02_P2.54mm_Vertical.kicad_mod
+share/kicad/demos/kit-dev-coldfire-xilinx_5213/kit-dev-coldfire.pretty/PinHeader_1x03_P2.54mm_Vertical.kicad_mod
+share/kicad/demos/kit-dev-coldfire-xilinx_5213/kit-dev-coldfire.pretty/PinHeader_1x06_P2.54mm_Vertical.kicad_mod
+share/kicad/demos/kit-dev-coldfire-xilinx_5213/kit-dev-coldfire.pretty/PinHeader_2x02_P2.54mm_Vertical.kicad_mod
+share/kicad/demos/kit-dev-coldfire-xilinx_5213/kit-dev-coldfire.pretty/PinHeader_2x03_P2.54mm_Vertical.kicad_mod
+share/kicad/demos/kit-dev-coldfire-xilinx_5213/kit-dev-coldfire.pretty/PinHeader_2x04_P2.54mm_Vertical.kicad_mod
+share/kicad/demos/kit-dev-coldfire-xilinx_5213/kit-dev-coldfire.pretty/PinHeader_2x13_P2.54mm_Vertical.kicad_mod
+share/kicad/demos/kit-dev-coldfire-xilinx_5213/kit-dev-coldfire.pretty/PinHeader_2x20_P2.54mm_Vertical.kicad_mod
+share/kicad/demos/kit-dev-coldfire-xilinx_5213/kit-dev-coldfire.pretty/PinHeader_2x30_P2.54mm_Vertical.kicad_mod
+share/kicad/demos/kit-dev-coldfire-xilinx_5213/kit-dev-coldfire.pretty/R_0805_2012Metric.kicad_mod
+share/kicad/demos/kit-dev-coldfire-xilinx_5213/kit-dev-coldfire.pretty/R_1206_3216Metric_Pad1.30x1.75mm_HandSolder.kicad_mod
+share/kicad/demos/kit-dev-coldfire-xilinx_5213/kit-dev-coldfire.pretty/R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_Horizontal.kicad_mod
 share/kicad/demos/kit-dev-coldfire-xilinx_5213/kit-dev-coldfire.pretty/SM1206POL.kicad_mod
+share/kicad/demos/kit-dev-coldfire-xilinx_5213/kit-dev-coldfire.pretty/SOIC-14_3.9x8.7mm_P1.27mm.kicad_mod
+share/kicad/demos/kit-dev-coldfire-xilinx_5213/kit-dev-coldfire.pretty/SOIC-16_3.9x9.9mm_P1.27mm.kicad_mod
+share/kicad/demos/kit-dev-coldfire-xilinx_5213/kit-dev-coldfire.pretty/SOIC-8_3.9x4.9mm_P1.27mm.kicad_mod
 share/kicad/demos/kit-dev-coldfire-xilinx_5213/kit-dev-coldfire.pretty/SOT23EBC.kicad_mod
 share/kicad/demos/kit-dev-coldfire-xilinx_5213/kit-dev-coldfire.pretty/SOT353.kicad_mod
 share/kicad/demos/kit-dev-coldfire-xilinx_5213/kit-dev-coldfire.pretty/SW_PUSH_SMALL.kicad_mod
 share/kicad/demos/kit-dev-coldfire-xilinx_5213/kit-dev-coldfire.pretty/SW_SPDT.kicad_mod
+share/kicad/demos/kit-dev-coldfire-xilinx_5213/kit-dev-coldfire.pretty/TO-263-5_TabPin3.kicad_mod
+share/kicad/demos/kit-dev-coldfire-xilinx_5213/kit-dev-coldfire.pretty/TO-92.kicad_mod
+share/kicad/demos/kit-dev-coldfire-xilinx_5213/kit-dev-coldfire.pretty/TQFP-144_20x20mm_P0.5mm.kicad_mod
 share/kicad/demos/kit-dev-coldfire-xilinx_5213/prj.3dshapes/Device.switch_toggle_horizontal_right_angle_PC_terminal.wings
 share/kicad/demos/kit-dev-coldfire-xilinx_5213/prj.3dshapes/Device.switch_toggle_horizontal_right_angle_PC_terminal.wrl
 share/kicad/demos/kit-dev-coldfire-xilinx_5213/prj.3dshapes/Jack.wings
 share/kicad/demos/kit-dev-coldfire-xilinx_5213/prj.3dshapes/Jack.wrl
-share/kicad/demos/kit-dev-coldfire-xilinx_5213/prj.3dshapes/db9_female_pin90deg.wrl
 share/kicad/demos/kit-dev-coldfire-xilinx_5213/prj.3dshapes/push_butt_4pads.wings
 share/kicad/demos/kit-dev-coldfire-xilinx_5213/prj.3dshapes/push_butt_4pads.wrl
 share/kicad/demos/kit-dev-coldfire-xilinx_5213/sym-lib-table
@@ -229,15 +394,43 @@ share/kicad/demos/kit-dev-coldfire-xilin
 share/kicad/demos/microwave/microwave.kicad_pcb
 share/kicad/demos/microwave/microwave.kicad_pro
 share/kicad/demos/microwave/shape1.txt
+share/kicad/demos/multichannel/channel_strip.kicad_sch
+share/kicad/demos/multichannel/fp-lib-table
+share/kicad/demos/multichannel/multichannel_mixer-unrouted.kicad_pcb
+share/kicad/demos/multichannel/multichannel_mixer.kicad_pcb
+share/kicad/demos/multichannel/multichannel_mixer.kicad_pro
+share/kicad/demos/multichannel/multichannel_mixer.kicad_sch
+share/kicad/demos/multichannel/multichannel_mixer.kicad_sym
+share/kicad/demos/multichannel/multichannel_mixer.pretty/CAPC3216X140N.kicad_mod
+share/kicad/demos/multichannel/multichannel_mixer.pretty/CAPPRB254-500X840.kicad_mod
+share/kicad/demos/multichannel/multichannel_mixer.pretty/CLIFF_FC68148(DC-10A).kicad_mod
+share/kicad/demos/multichannel/multichannel_mixer.pretty/Jack_6.35mm_Neutrik_NMJ6HCD2_Horizontal.kicad_mod
+share/kicad/demos/multichannel/multichannel_mixer.pretty/Potentiometer_Alps_RK09K_Single_Vertical.kicad_mod
+share/kicad/demos/multichannel/multichannel_mixer.pretty/RESC3216X65N.kicad_mod
+share/kicad/demos/multichannel/multichannel_mixer.pretty/SOIC127P600X175-8N.kicad_mod
+share/kicad/demos/multichannel/sym-lib-table
+share/kicad/demos/openair-max/Battery-Holder.kicad_sch
+share/kicad/demos/openair-max/LICENSE.txt
+share/kicad/demos/openair-max/Libraries/ESP32-C6-WROOM v3.step
+share/kicad/demos/openair-max/Libraries/HRO_TYPE-C-31-M-12.step
+share/kicad/demos/openair-max/Libraries/Hold_18650-3p_smd.stp
+share/kicad/demos/openair-max/Libraries/type-c-31-m-12-1.snapshot.5.zip
+share/kicad/demos/openair-max/One-Air-Max.kicad_pcb
+share/kicad/demos/openair-max/One-Air-Max.kicad_pro
+share/kicad/demos/openair-max/One-Air-Max.kicad_sch
+share/kicad/demos/openair-max/Solar-Module.kicad_sch
+share/kicad/demos/openair-max/fabrication-toolkit-options.json
 share/kicad/demos/pic_programmer/fp-lib-table
 share/kicad/demos/pic_programmer/libs/3d_shapes/adjustable_rx2v4.wrl
 share/kicad/demos/pic_programmer/libs/3d_shapes/textool_40.wrl
 share/kicad/demos/pic_programmer/libs/pic_programmer_fp.pretty/40tex-Ell600.kicad_mod
 share/kicad/demos/pic_programmer/libs/pic_programmer_fp.pretty/RV2X4.kicad_mod
-share/kicad/demos/pic_programmer/libs/pic_programmer_schlib.kicad_sym
+share/kicad/demos/pic_programmer/libs/pic_programmer_fp.pretty/SolderJumper-2_P1.3mm_Open_TrianglePad1.0x1.5mm.kicad_mod
+share/kicad/demos/pic_programmer/libs/pic_programmer_fp.pretty/TO-92.kicad_mod
 share/kicad/demos/pic_programmer/pic_programmer.kicad_pcb
 share/kicad/demos/pic_programmer/pic_programmer.kicad_pro
 share/kicad/demos/pic_programmer/pic_programmer.kicad_sch
+share/kicad/demos/pic_programmer/pic_programmer.kicad_sym
 share/kicad/demos/pic_programmer/pic_sockets.kicad_sch
 share/kicad/demos/pic_programmer/sym-lib-table
 share/kicad/demos/python_scripts_examples/action_menu_add_automatic_border.py
@@ -245,6 +438,60 @@ share/kicad/demos/python_scripts_example
 share/kicad/demos/python_scripts_examples/action_plugin_test_undoredo.py
 share/kicad/demos/python_scripts_examples/gen_gerber_and_drill_files_board.py
 share/kicad/demos/python_scripts_examples/plot_board.py
+share/kicad/demos/royalblue54L_feather/.gitignore
+share/kicad/demos/royalblue54L_feather/.gitmodules
+share/kicad/demos/royalblue54L_feather/LICENSE
+share/kicad/demos/royalblue54L_feather/README.md
+share/kicad/demos/royalblue54L_feather/RoyalBlue54L-Feather.kicad_pcb
+share/kicad/demos/royalblue54L_feather/RoyalBlue54L-Feather.kicad_pro
+share/kicad/demos/royalblue54L_feather/RoyalBlue54L-Feather.kicad_sch
+share/kicad/demos/royalblue54L_feather/fp-lib-table
+share/kicad/demos/royalblue54L_feather/img/RoyalBlue54L-Feather-Pinout.svg
+share/kicad/demos/royalblue54L_feather/img/board.jpg
+share/kicad/demos/royalblue54L_feather/lib/3dmodels/Button_Switch_SMD.3dshapes/SW_Push_1P1T_NO_Vertical_Wuerth_434133025816.STEP
+share/kicad/demos/royalblue54L_feather/lib/3dmodels/Connector_USB.3dshapes/USB_C_Receptacle_HRO_TYPE-C-31-M-12.STEP
+share/kicad/demos/royalblue54L_feather/lib/3dmodels/Package_DFN_QFN.3dshapes/Texas_RGY_R-PVQFN-N16_EP2.05x2.55mm.STEP
+share/kicad/demos/royalblue54L_feather/lib/3dmodels/Package_SON.3dshapes/Winbond_USON-8-1EP_3x2mm_P0.5mm_EP0.2x1.6mm.STEP
+share/kicad/demos/royalblue54L_feather/lib/footprints/LordsBoards-Symbol.pretty/LordsBoardsLogo_Small_Silk.kicad_mod
+share/kicad/demos/royalblue54L_feather/lib/footprints/RoyalBlue54L-Feather-Connector_FFC-FPC.pretty/CONN-SMD_5P-P0.50_HCTL_HC-FPC-05-09-5RLTAG.kicad_mod
+share/kicad/demos/royalblue54L_feather/lib/footprints/RoyalBlue54L-Feather-Connector_PinHeader_2.54mm.pretty/PinHeader_1x12_P2.54mm_Vertical.kicad_mod
+share/kicad/demos/royalblue54L_feather/lib/footprints/RoyalBlue54L-Feather-Connector_PinHeader_2.54mm.pretty/PinHeader_1x16_P2.54mm_Vertical.kicad_mod
+share/kicad/demos/royalblue54L_feather/lib/footprints/RoyalBlue54L-Feather-Connector_USB.pretty/USB_C_Receptacle_HRO_TYPE-C-31-M-12.kicad_mod
+share/kicad/demos/royalblue54L_feather/lib/footprints/RoyalBlue54L-Feather-MountingHole.pretty/MountingHole_2.5mm.kicad_mod
+share/kicad/demos/royalblue54L_feather/lib/footprints/RoyalBlue54L-Feather-Symbol.pretty/RoyalBlue54L_QRCode.kicad_mod
+share/kicad/demos/royalblue54L_feather/lib/footprints/RoyalBlue54L-Module.pretty/SparkFun_ThingPlus.kicad_mod
+share/kicad/demos/royalblue54L_feather/lib/symbols/LordsBoards-Graphic.kicad_sym
+share/kicad/demos/royalblue54L_feather/nfc_antenna/RoyalBlue54L-NFC-Antenna/RoyalBlue54L-NFC-Antenna.kicad_pcb
+share/kicad/demos/royalblue54L_feather/nfc_antenna/RoyalBlue54L-NFC-Antenna/RoyalBlue54L-NFC-Antenna.kicad_pro
+share/kicad/demos/royalblue54L_feather/nfc_antenna/RoyalBlue54L-NFC-Antenna/RoyalBlue54L-NFC-Antenna.kicad_sch
+share/kicad/demos/royalblue54L_feather/nfc_antenna/RoyalBlue54L-NFC-Antenna/RoyalBlue54L-NFC-Antenna_Connector_FPC.pretty/0.5mm-2p.kicad_mod
+share/kicad/demos/royalblue54L_feather/nfc_antenna/RoyalBlue54L-NFC-Antenna/RoyalBlue54L-NFC-Antenna_Connector_FPC.pretty/Untitled.kicad_mod
+share/kicad/demos/royalblue54L_feather/nfc_antenna/RoyalBlue54L-NFC-Antenna/fp-lib-table
+share/kicad/demos/royalblue54L_feather/nfc_antenna/RoyalBlue54L-NFC-Antenna/jlcpcb/gerber/RoyalBlue54L-NFC-Antenna-CuBottom.gbr
+share/kicad/demos/royalblue54L_feather/nfc_antenna/RoyalBlue54L-NFC-Antenna/jlcpcb/gerber/RoyalBlue54L-NFC-Antenna-CuTop.gbr
+share/kicad/demos/royalblue54L_feather/nfc_antenna/RoyalBlue54L-NFC-Antenna/jlcpcb/gerber/RoyalBlue54L-NFC-Antenna-EdgeCuts.gbr
+share/kicad/demos/royalblue54L_feather/nfc_antenna/RoyalBlue54L-NFC-Antenna/jlcpcb/gerber/RoyalBlue54L-NFC-Antenna-MaskBottom.gbr
+share/kicad/demos/royalblue54L_feather/nfc_antenna/RoyalBlue54L-NFC-Antenna/jlcpcb/gerber/RoyalBlue54L-NFC-Antenna-MaskTop.gbr
+share/kicad/demos/royalblue54L_feather/nfc_antenna/RoyalBlue54L-NFC-Antenna/jlcpcb/gerber/RoyalBlue54L-NFC-Antenna-NPTH-drl_map.pdf
+share/kicad/demos/royalblue54L_feather/nfc_antenna/RoyalBlue54L-NFC-Antenna/jlcpcb/gerber/RoyalBlue54L-NFC-Antenna-NPTH.drl
+share/kicad/demos/royalblue54L_feather/nfc_antenna/RoyalBlue54L-NFC-Antenna/jlcpcb/gerber/RoyalBlue54L-NFC-Antenna-PTH-drl_map.pdf
+share/kicad/demos/royalblue54L_feather/nfc_antenna/RoyalBlue54L-NFC-Antenna/jlcpcb/gerber/RoyalBlue54L-NFC-Antenna-PTH.drl
+share/kicad/demos/royalblue54L_feather/nfc_antenna/RoyalBlue54L-NFC-Antenna/jlcpcb/gerber/RoyalBlue54L-NFC-Antenna-PasteBottom.gbr
+share/kicad/demos/royalblue54L_feather/nfc_antenna/RoyalBlue54L-NFC-Antenna/jlcpcb/gerber/RoyalBlue54L-NFC-Antenna-PasteTop.gbr
+share/kicad/demos/royalblue54L_feather/nfc_antenna/RoyalBlue54L-NFC-Antenna/jlcpcb/gerber/RoyalBlue54L-NFC-Antenna-SilkBottom.gbr
+share/kicad/demos/royalblue54L_feather/nfc_antenna/RoyalBlue54L-NFC-Antenna/jlcpcb/gerber/RoyalBlue54L-NFC-Antenna-SilkTop.gbr
+share/kicad/demos/royalblue54L_feather/nfc_antenna/RoyalBlue54L-NFC-Antenna/jlcpcb/gerber/RoyalBlue54L-NFC-Antenna-VScore.gbr
+share/kicad/demos/royalblue54L_feather/nfc_antenna/RoyalBlue54L-NFC-Antenna/jlcpcb/production_files/GERBER-RoyalBlue54L-NFC-Antenna.zip
+share/kicad/demos/royalblue54L_feather/nfc_antenna/RoyalBlue54L-NFC-Antenna/jlcpcb/project.db
+share/kicad/demos/royalblue54L_feather/sch/Connectors.kicad_sch
+share/kicad/demos/royalblue54L_feather/sch/Debugger.kicad_sch
+share/kicad/demos/royalblue54L_feather/sch/nPM1300.kicad_sch
+share/kicad/demos/royalblue54L_feather/sch/nRF54L15.kicad_sch
+share/kicad/demos/royalblue54L_feather/sym-lib-table
+share/kicad/demos/simulation/amplifier-ac/2n2222.model
+share/kicad/demos/simulation/amplifier-ac/amplifier-ac.kicad_pro
+share/kicad/demos/simulation/amplifier-ac/amplifier-ac.kicad_sch
+share/kicad/demos/simulation/amplifier-ac/sym-lib-table
 share/kicad/demos/simulation/analog-multiplier/a-multi.kicad_pro
 share/kicad/demos/simulation/analog-multiplier/a-multi.kicad_sch
 share/kicad/demos/simulation/analog-multiplier/a-multi.wbk
@@ -263,6 +510,8 @@ share/kicad/demos/simulation/gain_contro
 share/kicad/demos/simulation/gain_control/sym-lib-table
 share/kicad/demos/simulation/gain_control/vca810.lib
 share/kicad/demos/simulation/generic_models/generic_opamp_bip.kicad_pro
+share/kicad/demos/simulation/generic_models/generic_opamp_bip.kicad_sch
+share/kicad/demos/simulation/generic_models/generic_opamp_bip.wbk
 share/kicad/demos/simulation/ibis/ibis.kicad_pro
 share/kicad/demos/simulation/ibis/ibis.kicad_sch
 share/kicad/demos/simulation/ibis/ibis.wbk
@@ -303,11 +552,6 @@ share/kicad/demos/simulation/power_suppl
 share/kicad/demos/simulation/power_supplies/royer/royer1.kicad_pro
 share/kicad/demos/simulation/power_supplies/royer/royer1.kicad_sch
 share/kicad/demos/simulation/power_supplies/royer/royer1.wbk
-share/kicad/demos/simulation/pspice/2n2222.model
-share/kicad/demos/simulation/pspice/pspice.kicad_pro
-share/kicad/demos/simulation/pspice/pspice.kicad_sch
-share/kicad/demos/simulation/pspice/schematic_libspice.kicad_sym
-share/kicad/demos/simulation/pspice/sym-lib-table
 share/kicad/demos/simulation/q17/BA4558R_Rev002.lib
 share/kicad/demos/simulation/q17/OPA1641.LIB
 share/kicad/demos/simulation/q17/Q17ng.kicad_pro
@@ -317,6 +561,7 @@ share/kicad/demos/simulation/q17/all_dev
 share/kicad/demos/simulation/rectifier/diode.mod
 share/kicad/demos/simulation/rectifier/rectifier.kicad_pro
 share/kicad/demos/simulation/rectifier/rectifier.kicad_sch
+share/kicad/demos/simulation/rectifier/rectifier.wbk
 share/kicad/demos/simulation/rectifier/rectifier_schlib.kicad_sym
 share/kicad/demos/simulation/rectifier/sym-lib-table
 share/kicad/demos/simulation/sallen_key/ad8051.lib
@@ -324,9 +569,12 @@ share/kicad/demos/simulation/sallen_key/
 share/kicad/demos/simulation/sallen_key/sallen_key.kicad_sch
 share/kicad/demos/simulation/sallen_key/sallen_key_schlib.kicad_sym
 share/kicad/demos/simulation/sallen_key/sym-lib-table
+share/kicad/demos/simulation/subsheets/mainsheet.kicad_pro
+share/kicad/demos/simulation/subsheets/mainsheet.kicad_sch
+share/kicad/demos/simulation/subsheets/project.kicad_sym
 share/kicad/demos/simulation/subsheets/subsheet1.kicad_sch
 share/kicad/demos/simulation/subsheets/subsheet2.kicad_sch
-share/kicad/demos/simulation/subsheets/subsheets.kicad_sch
+share/kicad/demos/simulation/subsheets/sym-lib-table
 share/kicad/demos/simulation/up-down-counter/README
 share/kicad/demos/simulation/up-down-counter/state-3bit-count.in
 share/kicad/demos/simulation/up-down-counter/state-machine-3b-count.lib
@@ -342,7 +590,15 @@ share/kicad/demos/sonde xilinx/fp-lib-ta
 share/kicad/demos/sonde xilinx/sonde xilinx.kicad_pcb
 share/kicad/demos/sonde xilinx/sonde xilinx.kicad_pro
 share/kicad/demos/sonde xilinx/sonde xilinx.kicad_sch
-share/kicad/demos/sonde xilinx/sonde_xilinx_schlib.kicad_sym
+share/kicad/demos/sonde xilinx/sonde-xilinx.pretty/C_Axial_L5.1mm_D3.1mm_P12.50mm_Horizontal.kicad_mod
+share/kicad/demos/sonde xilinx/sonde-xilinx.pretty/C_Disc_D5.1mm_W3.2mm_P5.00mm.kicad_mod
+share/kicad/demos/sonde xilinx/sonde-xilinx.pretty/DIP-14_W7.62mm_LongPads.kicad_mod
+share/kicad/demos/sonde xilinx/sonde-xilinx.pretty/DSUB-25_Male_EdgeMount_P2.77mm.kicad_mod
+share/kicad/demos/sonde xilinx/sonde-xilinx.pretty/DSUB-9_Male_EdgeMount_P2.77mm.kicad_mod
+share/kicad/demos/sonde xilinx/sonde-xilinx.pretty/D_A-405_P7.62mm_Horizontal.kicad_mod
+share/kicad/demos/sonde xilinx/sonde-xilinx.pretty/PinHeader_1x06_P2.54mm_Vertical.kicad_mod
+share/kicad/demos/sonde xilinx/sonde-xilinx.pretty/R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_Horizontal.kicad_mod
+share/kicad/demos/sonde xilinx/sonde_xilinx.kicad_sym
 share/kicad/demos/sonde xilinx/sym-lib-table
 share/kicad/demos/stickhub/3dmodels/APHB1608.step
 share/kicad/demos/stickhub/3dmodels/Crystal_SMD_4P_2520.step
@@ -365,31 +621,17 @@ share/kicad/demos/stickhub/footprints.pr
 share/kicad/demos/stickhub/footprints.pretty/Creative_Commons_NC_Mask.kicad_mod
 share/kicad/demos/stickhub/footprints.pretty/Creative_Commons_SA_Mask.kicad_mod
 share/kicad/demos/stickhub/footprints.pretty/Crystal_4-SMD_2.5x2mm.kicad_mod
+share/kicad/demos/stickhub/footprints.pretty/D_0402.kicad_mod
 share/kicad/demos/stickhub/footprints.pretty/Duo_LED_1.6x0.8_Kingbright_APHB1608LZGKSURKC.kicad_mod
 share/kicad/demos/stickhub/footprints.pretty/JP-2_1.5x1.5.kicad_mod
 share/kicad/demos/stickhub/footprints.pretty/JST_SH_SM04B-SRSS-TB_1x04-1MP_P1.00mm_Horizontal.kicad_mod
 share/kicad/demos/stickhub/footprints.pretty/LQFP-48_7x7mm_P0.5mm.kicad_mod
 share/kicad/demos/stickhub/footprints.pretty/Plain_Hole_3mm.kicad_mod
+share/kicad/demos/stickhub/footprints.pretty/R_1005_C.kicad_mod
 share/kicad/demos/stickhub/footprints.pretty/TDFN-8_1.5x2mm_Fused-Lead_JEDEC_MO-252_W2015D.kicad_mod
 share/kicad/demos/stickhub/footprints.pretty/USB_A_PCB_traces_small.kicad_mod
 share/kicad/demos/stickhub/fp-lib-table
 share/kicad/demos/stickhub/sym-lib-table
-share/kicad/demos/test_pads_inside_pads/connect.pretty/1pin.kicad_mod
-share/kicad/demos/test_pads_inside_pads/connect.pretty/1pin_thermal.kicad_mod
-share/kicad/demos/test_pads_inside_pads/fp-lib-table
-share/kicad/demos/test_pads_inside_pads/sym-lib-table
-share/kicad/demos/test_pads_inside_pads/test_pads_inside_pads.kicad_pcb
-share/kicad/demos/test_pads_inside_pads/test_pads_inside_pads.kicad_pro
-share/kicad/demos/test_pads_inside_pads/test_pads_inside_pads.kicad_sch
-share/kicad/demos/test_pads_inside_pads/test_pads_inside_pads_schlib.kicad_sym
-share/kicad/demos/test_xil_95108/carte_test.kicad_pcb
-share/kicad/demos/test_xil_95108/carte_test.kicad_pro
-share/kicad/demos/test_xil_95108/carte_test.kicad_sch
-share/kicad/demos/test_xil_95108/carte_test_schlib.kicad_sym
-share/kicad/demos/test_xil_95108/footprints.pretty/DIP-28__300__600_ELL.kicad_mod
-share/kicad/demos/test_xil_95108/footprints.pretty/PLCC84.kicad_mod
-share/kicad/demos/test_xil_95108/fp-lib-table
-share/kicad/demos/test_xil_95108/sym-lib-table
 share/kicad/demos/tiny_tapeout/LICENSE.txt
 share/kicad/demos/tiny_tapeout/doc/demoboard-prelim-v1-0-3.pdf
 share/kicad/demos/tiny_tapeout/fp-lib-table
@@ -450,14 +692,35 @@ share/kicad/demos/video/esvideo.kicad_sc
 share/kicad/demos/video/fp-lib-table
 share/kicad/demos/video/graphic.kicad_sch
 share/kicad/demos/video/libs/footprints.pretty/BUSPCI.kicad_mod
+share/kicad/demos/video/libs/footprints.pretty/CP_EIA-3528-21_Kemet-B_Pad1.50x2.35mm_HandSolder.kicad_mod
 share/kicad/demos/video/libs/footprints.pretty/CV3-30PF.kicad_mod
+share/kicad/demos/video/libs/footprints.pretty/C_Disc_D3.0mm_W2.0mm_P2.50mm.kicad_mod
+share/kicad/demos/video/libs/footprints.pretty/Crystal_HC18-U_Horizontal.kicad_mod
+share/kicad/demos/video/libs/footprints.pretty/Crystal_HC18-U_Vertical.kicad_mod
+share/kicad/demos/video/libs/footprints.pretty/DIP-8_W7.62mm.kicad_mod
+share/kicad/demos/video/libs/footprints.pretty/DSUB-9_Female_Horizontal_P2.77x2.84mm_EdgePinOffset14.56mm_Housed_MountingHolesOffset15.98mm.kicad_mod
 share/kicad/demos/video/libs/footprints.pretty/D_DO-34_SOD68_P7.62mm_Horizontal.kicad_mod
 share/kicad/demos/video/libs/footprints.pretty/LED_D3.0mm.kicad_mod
 share/kicad/demos/video/libs/footprints.pretty/LRTDK.kicad_mod
 share/kicad/demos/video/libs/footprints.pretty/PLCC68.kicad_mod
 share/kicad/demos/video/libs/footprints.pretty/PLCC84.kicad_mod
+share/kicad/demos/video/libs/footprints.pretty/PQFP-100_14x20mm_P0.65mm.kicad_mod
+share/kicad/demos/video/libs/footprints.pretty/PQFP-160_28x28mm_P0.65mm.kicad_mod
+share/kicad/demos/video/libs/footprints.pretty/PinHeader_1x01_P2.54mm_Vertical.kicad_mod
+share/kicad/demos/video/libs/footprints.pretty/PinHeader_1x02_P2.54mm_Vertical.kicad_mod
+share/kicad/demos/video/libs/footprints.pretty/PinHeader_1x05_P2.54mm_Vertical.kicad_mod
+share/kicad/demos/video/libs/footprints.pretty/Potentiometer_Bourns_3314G_Vertical.kicad_mod
+share/kicad/demos/video/libs/footprints.pretty/R_1206_3216Metric_Pad1.30x1.75mm_HandSolder.kicad_mod
+share/kicad/demos/video/libs/footprints.pretty/R_1210_3225Metric_Pad1.30x2.65mm_HandSolder.kicad_mod
+share/kicad/demos/video/libs/footprints.pretty/R_1812_4532Metric_Pad1.30x3.40mm_HandSolder.kicad_mod
+share/kicad/demos/video/libs/footprints.pretty/R_Array_SIP9.kicad_mod
+share/kicad/demos/video/libs/footprints.pretty/SOIC-20W_7.5x12.8mm_P1.27mm.kicad_mod
+share/kicad/demos/video/libs/footprints.pretty/SOIC-24W_7.5x15.4mm_P1.27mm.kicad_mod
+share/kicad/demos/video/libs/footprints.pretty/SOIC-28W_7.5x17.9mm_P1.27mm.kicad_mod
 share/kicad/demos/video/libs/footprints.pretty/SOT23EBC.kicad_mod
+share/kicad/demos/video/libs/footprints.pretty/SSOP-8_3.95x5.21x3.27mm_P1.27mm.kicad_mod
 share/kicad/demos/video/libs/footprints.pretty/SolderJumper-2_P1.3mm_Open_Pad1.0x1.5mm.kicad_mod
+share/kicad/demos/video/libs/footprints.pretty/TQFP-100_14x14mm_P0.5mm.kicad_mod
 share/kicad/demos/video/libs/footprints.pretty/sim72.kicad_mod
 share/kicad/demos/video/libs/footprints.pretty/subclick.kicad_mod
 share/kicad/demos/video/libs/fp.3dshapes/subclick_horiz.wings
@@ -471,6 +734,134 @@ share/kicad/demos/video/sym-lib-table
 share/kicad/demos/video/video.kicad_pcb
 share/kicad/demos/video/video.kicad_pro
 share/kicad/demos/video/video.kicad_sch
+share/kicad/demos/vme-wren/cern-ohl-left.kicad_wks
+share/kicad/demos/vme-wren/clocks.kicad_sch
+share/kicad/demos/vme-wren/ddr4-ps.kicad_sch
+share/kicad/demos/vme-wren/flash.kicad_sch
+share/kicad/demos/vme-wren/fp-lib-table
+share/kicad/demos/vme-wren/fp_connectors.kicad_sch
+share/kicad/demos/vme-wren/fpga-config.kicad_sch
+share/kicad/demos/vme-wren/fpga-hd-banks.kicad_sch
+share/kicad/demos/vme-wren/fpga-hp-banks.kicad_sch
+share/kicad/demos/vme-wren/fpga-mgts-power.kicad_sch
+share/kicad/demos/vme-wren/fpga-mgts.kicad_sch
+share/kicad/demos/vme-wren/fpga-mio.kicad_sch
+share/kicad/demos/vme-wren/fpga-power-gnd.kicad_sch
+share/kicad/demos/vme-wren/fpga-power.kicad_sch
+share/kicad/demos/vme-wren/fpga-ps-ddr.kicad_sch
+share/kicad/demos/vme-wren/fpga.kicad_sch
+share/kicad/demos/vme-wren/front-panel-io.kicad_sch
+share/kicad/demos/vme-wren/io_driver.kicad_sch
+share/kicad/demos/vme-wren/io_driver_32x.kicad_sch
+share/kicad/demos/vme-wren/io_driver_8x.kicad_sch
+share/kicad/demos/vme-wren/lib/vme-wren.pretty/BIVAR_VLP-350-F.kicad_mod
+share/kicad/demos/vme-wren/lib/vme-wren.pretty/HARWIN_M22-2511046.kicad_mod
+share/kicad/demos/vme-wren/lib/vme-wren.pretty/HARWIN_M22-6541042R.kicad_mod
+share/kicad/demos/vme-wren/lib/vme-wren.pretty/LED_EVERLIGHT_19-C47_RSGHBHC-5V01_2T.kicad_mod
+share/kicad/demos/vme-wren/pcie_connector.kicad_sch
+share/kicad/demos/vme-wren/power-supply-1.kicad_sch
+share/kicad/demos/vme-wren/power-supply-2.kicad_sch
+share/kicad/demos/vme-wren/power-supply-3.kicad_sch
+share/kicad/demos/vme-wren/pp_driver_2x.kicad_sch
+share/kicad/demos/vme-wren/pp_driver_32x.kicad_sch
+share/kicad/demos/vme-wren/pp_driver_8x.kicad_sch
+share/kicad/demos/vme-wren/sfp+.kicad_sch
+share/kicad/demos/vme-wren/slow_gpio.kicad_sch
+share/kicad/demos/vme-wren/sym-lib-table
+share/kicad/demos/vme-wren/user_interface.kicad_sch
+share/kicad/demos/vme-wren/vme-wren.kicad_dru
+share/kicad/demos/vme-wren/vme-wren.kicad_pcb
+share/kicad/demos/vme-wren/vme-wren.kicad_pro
+share/kicad/demos/vme-wren/vme-wren.kicad_sch
+share/kicad/demos/vme-wren/vme-wren.kicad_sym
+share/kicad/demos/vme-wren/vme-wren.pdf
+share/kicad/demos/vme-wren/vme_buffers_addr.kicad_sch
+share/kicad/demos/vme-wren/vme_buffers_aux.kicad_sch
+share/kicad/demos/vme-wren/vme_buffers_data.kicad_sch
+share/kicad/demos/vme-wren/vme_buffers_p0_hwbyte.kicad_sch
+share/kicad/demos/vme-wren/vme_buffers_userio_p2.kicad_sch
+share/kicad/demos/vme-wren/vme_interface.kicad_sch
+share/kicad/demos/vme-wren/vme_p0.kicad_sch
+share/kicad/demos/vme-wren/vme_p1_p2.kicad_sch
+share/kicad/demos/vme-wren/wren.pretty/BGA784C80P28X28_2300X2300X332.kicad_mod
+share/kicad/demos/vme-wren/wren.pretty/BGA96C80P9X16_750X1350X120.kicad_mod
+share/kicad/demos/vme-wren/wren.pretty/BOSSARD_BN5687-3061600_v.kicad_mod
+share/kicad/demos/vme-wren/wren.pretty/BOSSARD_BN628-1241427_v.kicad_mod
+share/kicad/demos/vme-wren/wren.pretty/BOSSARD_BN678-8303525_v.kicad_mod
+share/kicad/demos/vme-wren/wren.pretty/CAPC1005X55N.kicad_mod
+share/kicad/demos/vme-wren/wren.pretty/CAPC1005X70N.kicad_mod
+share/kicad/demos/vme-wren/wren.pretty/CAPC1608X100N.kicad_mod
+share/kicad/demos/vme-wren/wren.pretty/CAPC1608X90N.kicad_mod
+share/kicad/demos/vme-wren/wren.pretty/CAPC2013X145N.kicad_mod
+share/kicad/demos/vme-wren/wren.pretty/CAPC3216X180N.kicad_mod
+share/kicad/demos/vme-wren/wren.pretty/CAPC3225X280N.kicad_mod
+share/kicad/demos/vme-wren/wren.pretty/CAPMP7343X200N.kicad_mod
+share/kicad/demos/vme-wren/wren.pretty/CAPPR350-850X700_A.kicad_mod
+share/kicad/demos/vme-wren/wren.pretty/EATON_0402ESDA-MLP.kicad_mod
+share/kicad/demos/vme-wren/wren.pretty/FIDUCIAL_TOP_C100-200.kicad_mod
+share/kicad/demos/vme-wren/wren.pretty/FUSR_LITTELFUSE_0603L.kicad_mod
+share/kicad/demos/vme-wren/wren.pretty/HARTING_02 01 160 2101.kicad_mod
+share/kicad/demos/vme-wren/wren.pretty/HARTING_17 25 095 2102.kicad_mod
+share/kicad/demos/vme-wren/wren.pretty/HARWIN_M22-6541042R.kicad_mod
+share/kicad/demos/vme-wren/wren.pretty/HIROSE_U.FL-R-SMT-1(10).kicad_mod
+share/kicad/demos/vme-wren/wren.pretty/INDC1608X95N.kicad_mod
+share/kicad/demos/vme-wren/wren.pretty/INDC2012X105N.kicad_mod
+share/kicad/demos/vme-wren/wren.pretty/INDC2012X110N.kicad_mod
+share/kicad/demos/vme-wren/wren.pretty/IND_COILCRAFT_XAL4020.kicad_mod
+share/kicad/demos/vme-wren/wren.pretty/IND_COILCRAFT_XAL4030.kicad_mod
+share/kicad/demos/vme-wren/wren.pretty/IND_MURATA_BLM31PG.kicad_mod
+share/kicad/demos/vme-wren/wren.pretty/IND_PULSE_PA2607.kicad_mod
+share/kicad/demos/vme-wren/wren.pretty/IND_TDK_VLCF5020-1.kicad_mod
+share/kicad/demos/vme-wren/wren.pretty/INFINEON_PG-VQFN-56-900 (IRPS5401M).kicad_mod
+share/kicad/demos/vme-wren/wren.pretty/INFINEON_TDA21535.kicad_mod
+share/kicad/demos/vme-wren/wren.pretty/KiCad-Logo_8mm_SilkScreen.kicad_mod
+share/kicad/demos/vme-wren/wren.pretty/LED_KINGBRIGHT_KPH-1608CGCK.kicad_mod
+share/kicad/demos/vme-wren/wren.pretty/MOLEX_500075-1517.kicad_mod
+share/kicad/demos/vme-wren/wren.pretty/MOLEX_74737-0009.kicad_mod
+share/kicad/demos/vme-wren/wren.pretty/MOLEX_87832-1420.kicad_mod
+share/kicad/demos/vme-wren/wren.pretty/MTG270_500.kicad_mod
+share/kicad/demos/vme-wren/wren.pretty/OSC_CONNOR-WINFIELD_DOT050V.kicad_mod
+share/kicad/demos/vme-wren/wren.pretty/OSC_EPSON_SG-8018CE.kicad_mod
+share/kicad/demos/vme-wren/wren.pretty/OSC_KYOCERA_KV7050B-C3.kicad_mod
+share/kicad/demos/vme-wren/wren.pretty/PB_OMRON_B3U-1100P.kicad_mod
+share/kicad/demos/vme-wren/wren.pretty/QFN50P400X400X80-25N-S280.kicad_mod
+share/kicad/demos/vme-wren/wren.pretty/QFN50P700X700X90-45N-S530.kicad_mod
+share/kicad/demos/vme-wren/wren.pretty/RESC1005X40N.kicad_mod
+share/kicad/demos/vme-wren/wren.pretty/RESC1106X84N.kicad_mod
+share/kicad/demos/vme-wren/wren.pretty/RESC1608X55N.kicad_mod
+share/kicad/demos/vme-wren/wren.pretty/RESC2012X60N.kicad_mod
+share/kicad/demos/vme-wren/wren.pretty/RESC3216X65N.kicad_mod
+share/kicad/demos/vme-wren/wren.pretty/SAMTEC_LSHM-120-02.5-X-DV-A-S.kicad_mod
+share/kicad/demos/vme-wren/wren.pretty/SAMTEC_MTLW-102-07-L-S-250.kicad_mod
+share/kicad/demos/vme-wren/wren.pretty/SAMTEC_MTLW-103-07-L-S-250.kicad_mod
+share/kicad/demos/vme-wren/wren.pretty/SODFL1608X65N.kicad_mod
+share/kicad/demos/vme-wren/wren.pretty/SOIC127P1030X265-16N.kicad_mod
+share/kicad/demos/vme-wren/wren.pretty/SOIC127P600X175-8N.kicad_mod
+share/kicad/demos/vme-wren/wren.pretty/SOIC127P780X200-16N.kicad_mod
+share/kicad/demos/vme-wren/wren.pretty/SON45P300X300X80-13N-R175X248.kicad_mod
+share/kicad/demos/vme-wren/wren.pretty/SON50P200X200X80-9N-R100X170.kicad_mod
+share/kicad/demos/vme-wren/wren.pretty/SOP50P810X120-48N.kicad_mod
+share/kicad/demos/vme-wren/wren.pretty/SOP65P400X130-8N.kicad_mod
+share/kicad/demos/vme-wren/wren.pretty/SOP65P490X110-8N.kicad_mod
+share/kicad/demos/vme-wren/wren.pretty/SOP65P640X120-24N.kicad_mod
+share/kicad/demos/vme-wren/wren.pretty/SOT190P230X110-4N.kicad_mod
+share/kicad/demos/vme-wren/wren.pretty/SOT65P210X110-6N.kicad_mod
+share/kicad/demos/vme-wren/wren.pretty/SOT95P237X112-3N.kicad_mod
+share/kicad/demos/vme-wren/wren.pretty/SOT95P240X110-3N.kicad_mod
+share/kicad/demos/vme-wren/wren.pretty/SOT95P240X130-3N.kicad_mod
+share/kicad/demos/vme-wren/wren.pretty/SOT95P280X145-6N.kicad_mod
+share/kicad/demos/vme-wren/wren.pretty/SW_TYCO_1-1571983-0.kicad_mod
+share/kicad/demos/vme-wren/wren.pretty/SW_TYCO_1571983-4.kicad_mod
+share/kicad/demos/vme-wren/wren.pretty/TEXAS_DRC (S-PVSON-N10).kicad_mod
+share/kicad/demos/vme-wren/wren.pretty/TEXAS_DSC (S-PWSON-N10).kicad_mod
+share/kicad/demos/vme-wren/wren.pretty/TEXAS_RGY (R-PVQFN-N16).kicad_mod
+share/kicad/demos/vme-wren/wren.pretty/TEXAS_RGY (S-PVQFN-N14).kicad_mod
+share/kicad/demos/vme-wren/wren.pretty/TEXAS_RVQ (S-PB3QFN-N42).kicad_mod
+share/kicad/demos/vme-wren/wren.pretty/TPS127.kicad_mod
+share/kicad/demos/vme-wren/wren.pretty/TYCO_1761014-3.kicad_mod
+share/kicad/demos/vme-wren/wren.pretty/TYCO_1888247-1.kicad_mod
+share/kicad/demos/vme-wren/wren.pretty/TYCO_2149027-1.kicad_mod
+share/kicad/demos/vme-wren/wren.pretty/XFMR_MINI-CIRCUITS_CD542.kicad_mod
 share/kicad/internat/ar/kicad.mo
 share/kicad/internat/bg/kicad.mo
 share/kicad/internat/ca/kicad.mo
@@ -482,8 +873,12 @@ share/kicad/internat/en/kicad.mo
 share/kicad/internat/es/kicad.mo
 share/kicad/internat/es_MX/kicad.mo
 share/kicad/internat/et/kicad.mo
+share/kicad/internat/fa/kicad.mo
 share/kicad/internat/fi/kicad.mo
 share/kicad/internat/fr/kicad.mo
+share/kicad/internat/he/kicad.mo
+share/kicad/internat/hi/kicad.mo
+share/kicad/internat/hr/kicad.mo
 share/kicad/internat/hu/kicad.mo
 share/kicad/internat/id/kicad.mo
 share/kicad/internat/it/kicad.mo
@@ -504,6 +899,7 @@ share/kicad/internat/sl/kicad.mo
 share/kicad/internat/sr/kicad.mo
 share/kicad/internat/sv/kicad.mo
 share/kicad/internat/ta/kicad.mo
+share/kicad/internat/te/kicad.mo
 share/kicad/internat/th/kicad.mo
 share/kicad/internat/tr/kicad.mo
 share/kicad/internat/uk/kicad.mo
@@ -521,7 +917,11 @@ share/kicad/plugins/bom_txt_sorted_by_re
 share/kicad/plugins/kicad_netlist_reader.py
 share/kicad/plugins/kicad_utils.py
 share/kicad/resources/images.tar.gz
+share/kicad/schemas/api.v1.schema.json
+share/kicad/schemas/kicad-remote-provider-metadata-v1.schema.json
+share/kicad/schemas/kicad-remote-symbol-manifest-v1.schema.json
 share/kicad/schemas/pcm.v1.schema.json
+share/kicad/schemas/pcm.v2.schema.json
 share/kicad/scripting/kicad_pyshell/__init__.py
 share/kicad/scripting/kicad_pyshell/kicad_pyeditor.py
 share/kicad/scripting/plugins/FPC_wizard.py
@@ -537,6 +937,7 @@ share/kicad/scripting/plugins/mutualcap_
 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/scrollwheel_wizard.py
 share/kicad/scripting/plugins/sdip_wizard.py
 share/kicad/scripting/plugins/touch_slider_wizard.py
 share/kicad/scripting/plugins/uss39_barcode.py
@@ -545,3 +946,4 @@ share/kicad/template/kicad.kicad_pro
 share/metainfo/org.kicad.kicad.metainfo.xml
 share/mime/packages/kicad-gerbers.xml
 share/mime/packages/kicad-kicad.xml
+share/zsh/site-functions/_kicad-cli

Index: pkgsrc/cad/kicad/distinfo
diff -u pkgsrc/cad/kicad/distinfo:1.30 pkgsrc/cad/kicad/distinfo:1.31
--- pkgsrc/cad/kicad/distinfo:1.30      Mon Dec 22 15:33:09 2025
+++ pkgsrc/cad/kicad/distinfo   Tue Sep 29 16:11:56 2026
@@ -1,23 +1,37 @@
-$NetBSD: distinfo,v 1.30 2025/12/22 15:33:09 adam Exp $
+$NetBSD: distinfo,v 1.31 2026/09/29 16:11:56 bouyer Exp $
 
-BLAKE2s (kicad-8.0.9.tar.bz2) = f28dc729590c55aad9b7e84d595d97082a7857cd5c9dddf2dd5c6bffe90d6c31
-SHA512 (kicad-8.0.9.tar.bz2) = cc822c46adea5a3dab3fd6c383c9cc1efebb3e9d1e88a0237caf6e9ef1fd0c249328e9afbf4a138cc19eda1aad864e2854fabd3bf17763109dce57e335be38b2
-Size (kicad-8.0.9.tar.bz2) = 73236341 bytes
+BLAKE2s (kicad-10.0.6.tar.bz2) = 3724d0ea4490077a06219cc5b603cf05fe3aeab5a11b9d0f03080f06301095ea
+SHA512 (kicad-10.0.6.tar.bz2) = 5fd23c26c36d39ce7b58ba224bbce843b708e945806e3c303707a4216b644a8993a6d956078b5f4edb029bcb70e5489411daee23ae471386109cf631ce1d8201
+Size (kicad-10.0.6.tar.bz2) = 232821863 bytes
+SHA1 (patch-3d-viewer_3d__rendering_opengl_3d__spheres__gizmo.cpp) = c78959f9f10de3f9884ab64bf26f4c4f5f813cde
+SHA1 (patch-3d-viewer_3d__viewer_eda__3d__viewer__frame.cpp) = ec756e9952b2e3614384b86782e28c5bc8c42c1b
+SHA1 (patch-3d-viewer_3d__viewer_eda__3d__viewer__frame.h) = 41dfce6f955d6af543ae3536f3105727db86c7bf
 SHA1 (patch-3d-viewer_3d_cache_sg_CMakeLists.txt) = c6e55d62646e890ba02b2a56dc3481f75ffba8a0
-SHA1 (patch-CMakeLists.txt) = c0d017d3b8b202004dff71386da451fd81ede969
+SHA1 (patch-3d-viewer_dialogs_panel__preview__3d__model.cpp) = 9c856e16ed4fd89ac9a1c9c9273101ec1792fae6
+SHA1 (patch-3d-viewer_dialogs_panel__preview__3d__model.h) = 47fd811b1c89a066b08ed3899dcd6e6d40bf8a1c
+SHA1 (patch-CMakeLists.txt) = 5a3869f50675de2b19ea20dfabe56b8ed40fbee6
+SHA1 (patch-api_CMakeLists.txt) = 23b2b74ab15dd64da83bda39293c32da1bb67f5e
+SHA1 (patch-api_proto_common_types_base__types.proto) = 63de1236017bc8d92dbb5ed5affc026f1585e8f9
 SHA1 (patch-cmake_config.h.cmake) = 325b9c81e90477152b778e04c4fabe41548aa51d
+SHA1 (patch-common_api_api__handler__common.cpp) = 9c907cc0e155a759ac41e71317b601f678777e09
+SHA1 (patch-common_eda__base__frame.cpp) = 748e4d4887546fd1cb177c81c4f1845f2d13a4c4
 SHA1 (patch-common_import__gfx_dxf__import__plugin.cpp) = 9ba67a398f9d9c0bd487b0cc5a8954be9cf8e274
+SHA1 (patch-common_spacenav_libspnav__driver.h) = da398b3c5f0c9411b906d8184db6da84fa79138d
 SHA1 (patch-cvpcb_CMakeLists.txt) = a839b465f73727786495dace80c1706d457b33e4
 SHA1 (patch-eeschema_CMakeLists.txt) = 89d5b25822f6d5856f827823e0646be80cbbfcb4
-SHA1 (patch-eeschema_sim_kibis_ibis__parser.cpp) = e173ccb32679174033540395e321abaee9eb2200
+SHA1 (patch-eeschema_sim_kibis_ibis__parser.cpp) = bc9f98f5db6d4fc5efd3a565ded3071e448a8180
 SHA1 (patch-eeschema_sim_kibis_kibis.cpp) = 18d804db727498cffef4dffc36b30dbe2c608bcb
-SHA1 (patch-eeschema_sim_sim_model_tline.cpp) = 901488c10a8a2c558a4bebe15dc1339d1bbce066
+SHA1 (patch-eeschema_sim_sim_model_tline.cpp) = 6bfa244b2b7b4b370f825dde653f075de36d311d
 SHA1 (patch-eeschema_sim_sim_property.cpp) = 3edb3ba6d1ac3f15d7562cb5b6c11815ee77d7d2
 SHA1 (patch-gerbview_CMakeLists.txt) = ae4d813f4247b46546ef0945785ae99114d2d68d
 SHA1 (patch-include_kiway.h) = 7208f474e895ea07ba5e5f56bab46d4d529b9e57
+SHA1 (patch-include_pcb__base__frame.h) = 4e73d0dc21ed88598a37c912e2793568b77565c5
 SHA1 (patch-pagelayout__editor_CMakeLists.txt) = d6ee568713ce666f2ece34974a922698d9479c8e
 SHA1 (patch-pcb__calculator_CMakeLists.txt) = 4b496498c6bef100f2eca99209e3efa521a3c653
-SHA1 (patch-pcbnew_CMakeLists.txt) = 671cc75cabbc0f3f73241a3d6db6ce41730465bf
+SHA1 (patch-pcbnew_CMakeLists.txt) = 532c5d41873f2189d4bb133994409b42e74ea983
+SHA1 (patch-pcbnew_pcb__base__frame.cpp) = 3937e71f803790cc438d5ee058ca777dda796c0d
 SHA1 (patch-plugins_3d_idf_CMakeLists.txt) = 9061c5c5eac3311625ba93e541d557007c83eddc
 SHA1 (patch-plugins_3d_vrml_CMakeLists.txt) = ea6942a953432c5c0124c57e9afb01f8a5c5325d
+SHA1 (patch-qa_qa__utils_error__handlers.cpp) = 0b9af4170c940507d4e008183093233ed3783cab
 SHA1 (patch-thirdparty_libcontext_libcontext.h) = cde252b7ee114f88527d953aa0c3ebcdd905c4a9
+SHA1 (patch-thirdparty_thread-pool_bs__thread__pool.hpp) = 48593c9946240c5881d96c626fc5448f9498ac20

Index: pkgsrc/cad/kicad/patches/patch-CMakeLists.txt
diff -u pkgsrc/cad/kicad/patches/patch-CMakeLists.txt:1.8 pkgsrc/cad/kicad/patches/patch-CMakeLists.txt:1.9
--- pkgsrc/cad/kicad/patches/patch-CMakeLists.txt:1.8   Fri Apr 26 16:46:29 2024
+++ pkgsrc/cad/kicad/patches/patch-CMakeLists.txt       Tue Sep 29 16:11:56 2026
@@ -1,22 +1,15 @@
-$NetBSD: patch-CMakeLists.txt,v 1.8 2024/04/26 16:46:29 tnn Exp $
+$NetBSD: patch-CMakeLists.txt,v 1.9 2026/09/29 16:11:56 bouyer Exp $
 
-Something is wrong with find_package. If EGL is found it complains
-that OpenGL is not found. Just disable the check for now.
+export Protobuf_INCLUDE_DIR from protobuf::libprotobuf, for use in
+api/CMakeLists.txt
 
---- CMakeLists.txt.orig        2024-03-13 15:55:00.000000000 +0000
-+++ CMakeLists.txt
-@@ -728,7 +728,13 @@ endif()
- # Find OpenGL library, required
- #
- if( KICAD_USE_EGL )
--    find_package( OpenGL REQUIRED COMPONENTS OpenGL EGL )
-+#    find_package( OpenGL REQUIRED COMPONENTS OpenGL EGL )
-+    find_package( OpenGL REQUIRED COMPONENTS OpenGL )
-+    if (OpenGL_EGL_FOUND)
-+        message("Found OpenGL with EGL as expected")
-+    else()
-+        message(FATAL_ERROR "Found OpenGL without EGL")
-+    endif()
- else()
-     set( OpenGL_GL_PREFERENCE "LEGACY" )     # CMake 3.11+ setting; see 'cmake --help-policy CMP0072'
-     find_package( OpenGL REQUIRED )
+--- CMakeLists.txt.orig        2026-08-28 20:01:37.000000000 +0200
++++ CMakeLists.txt     2026-09-26 11:17:30.991741798 +0200
+@@ -906,6 +906,7 @@
+     find_package( Protobuf QUIET CONFIG )
+     if( Protobuf_FOUND )
+         set( Protobuf_LIBRARY "protobuf::libprotobuf" )
++        get_target_property(Protobuf_INCLUDE_DIR protobuf::libprotobuf INTERFACE_INCLUDE_DIRECTORIES)
+         set( _protobuf_found TRUE )
+         message( STATUS "Found Protobuf using CONFIG mode" )
+     else()

Index: pkgsrc/cad/kicad/patches/patch-eeschema_sim_kibis_ibis__parser.cpp
diff -u pkgsrc/cad/kicad/patches/patch-eeschema_sim_kibis_ibis__parser.cpp:1.1 pkgsrc/cad/kicad/patches/patch-eeschema_sim_kibis_ibis__parser.cpp:1.2
--- pkgsrc/cad/kicad/patches/patch-eeschema_sim_kibis_ibis__parser.cpp:1.1      Mon Feb 13 07:59:01 2023
+++ pkgsrc/cad/kicad/patches/patch-eeschema_sim_kibis_ibis__parser.cpp  Tue Sep 29 16:11:56 2026
@@ -1,12 +1,12 @@
-$NetBSD: patch-eeschema_sim_kibis_ibis__parser.cpp,v 1.1 2023/02/13 07:59:01 tnn Exp $
+$NetBSD: patch-eeschema_sim_kibis_ibis__parser.cpp,v 1.2 2026/09/29 16:11:56 bouyer Exp $
 
 Needs isnan in scope on NetBSD.
 
---- eeschema/sim/kibis/ibis_parser.cpp.orig    2023-02-11 16:03:39.000000000 +0000
+--- eeschema/sim/kibis/ibis_parser.cpp.orig    2026-04-15 15:36:56.000000000 +0000
 +++ eeschema/sim/kibis/ibis_parser.cpp
-@@ -37,6 +37,8 @@
- #include <iterator>
+@@ -38,6 +38,8 @@
  #include <locale_io.h> // KiCad header
+ #include <wx/log.h>
  
 +using std::isnan;
 +
Index: pkgsrc/cad/kicad/patches/patch-eeschema_sim_sim_model_tline.cpp
diff -u pkgsrc/cad/kicad/patches/patch-eeschema_sim_sim_model_tline.cpp:1.1 pkgsrc/cad/kicad/patches/patch-eeschema_sim_sim_model_tline.cpp:1.2
--- pkgsrc/cad/kicad/patches/patch-eeschema_sim_sim_model_tline.cpp:1.1 Tue Jun  6 10:20:58 2023
+++ pkgsrc/cad/kicad/patches/patch-eeschema_sim_sim_model_tline.cpp     Tue Sep 29 16:11:56 2026
@@ -1,15 +1,15 @@
-$NetBSD: patch-eeschema_sim_sim_model_tline.cpp,v 1.1 2023/06/06 10:20:58 bouyer Exp $
+$NetBSD: patch-eeschema_sim_sim_model_tline.cpp,v 1.2 2026/09/29 16:11:56 bouyer Exp $
 
 Needs isnan in scope on NetBSD.
 
---- eeschema/sim/sim_model_tline.cpp.orig      2023-06-03 11:47:42.920032391 +0200
-+++ eeschema/sim/sim_model_tline.cpp   2023-06-03 11:48:46.124305265 +0200
+--- eeschema/sim/sim_model_tline.cpp.orig      2026-04-15 15:36:56.000000000 +0000
++++ eeschema/sim/sim_model_tline.cpp
 @@ -26,6 +26,8 @@
  
  #include <fmt/core.h>
  
 +using std::isnan;
 +
- using PARAM = SIM_MODEL::PARAM;
+ using SIMPARAM = SIM_MODEL::PARAM;
  
  

Index: pkgsrc/cad/kicad/patches/patch-pcbnew_CMakeLists.txt
diff -u pkgsrc/cad/kicad/patches/patch-pcbnew_CMakeLists.txt:1.7 pkgsrc/cad/kicad/patches/patch-pcbnew_CMakeLists.txt:1.8
--- pkgsrc/cad/kicad/patches/patch-pcbnew_CMakeLists.txt:1.7    Fri Apr 26 16:46:29 2024
+++ pkgsrc/cad/kicad/patches/patch-pcbnew_CMakeLists.txt        Tue Sep 29 16:11:56 2026
@@ -1,16 +1,16 @@
-$NetBSD: patch-pcbnew_CMakeLists.txt,v 1.7 2024/04/26 16:46:29 tnn Exp $
+$NetBSD: patch-pcbnew_CMakeLists.txt,v 1.8 2026/09/29 16:11:56 bouyer Exp $
 
 Force proper LDFLAGS for MODULE, as cmake doesn't set rpath for these
 
---- pcbnew/CMakeLists.txt.orig 2024-03-13 15:55:00.000000000 +0000
+--- pcbnew/CMakeLists.txt.orig 2026-07-21 19:13:55.000000000 +0000
 +++ pcbnew/CMakeLists.txt
-@@ -714,6 +714,9 @@ target_link_options( pcbnew_kiface PRIVA
+@@ -910,6 +910,9 @@ target_link_options( pcbnew_kiface PRIVATE
      $<$<BOOL:${KICAD_MAKE_LINK_MAPS}>:-Wl,--cref,-Map=_pcbnew.kiface.map>
      )
  
 +set_property(TARGET pcbnew_kiface APPEND_STRING
 +      PROPERTY LINK_FLAGS " $ENV{LDFLAGS}")
 +
- # if building pcbnew, then also build pcbnew_kiface if out of date.
+ #if building pcbnew, then also build pcbnew_kiface if out of date.
  add_dependencies( pcbnew pcbnew_kiface )
  

Added files:

Index: pkgsrc/cad/kicad/patches/patch-3d-viewer_3d__rendering_opengl_3d__spheres__gizmo.cpp
diff -u /dev/null pkgsrc/cad/kicad/patches/patch-3d-viewer_3d__rendering_opengl_3d__spheres__gizmo.cpp:1.1
--- /dev/null   Tue Sep 29 16:11:57 2026
+++ pkgsrc/cad/kicad/patches/patch-3d-viewer_3d__rendering_opengl_3d__spheres__gizmo.cpp        Tue Sep 29 16:11:56 2026
@@ -0,0 +1,16 @@
+$NetBSD: patch-3d-viewer_3d__rendering_opengl_3d__spheres__gizmo.cpp,v 1.1 2026/09/29 16:11:56 bouyer Exp $
+
+no match for 'operator*' (operand types are 'double' and 'const glm::vec3'
+{aka 'const glm::vec<3, float, glm::packed_highp>'})
+
+--- 3d-viewer/3d_rendering/opengl/3d_spheres_gizmo.cpp.orig    2026-05-05 13:32:50.313638521 +0000
++++ 3d-viewer/3d_rendering/opengl/3d_spheres_gizmo.cpp
+@@ -145,7 +145,7 @@ void SPHERES_GIZMO::render3dSpheresGizmo
+                 for( int i = 0; i <= aSegments; ++i )
+                 {
+                     float     angle = 2.0f * glm::pi<float>() * i / aSegments;
+-                    glm::vec3 dir = cos( angle ) * aCamRight + sin( angle ) * aCamUp;
++                    glm::vec3 dir = cosf( angle ) * aCamRight + sinf( angle ) * aCamUp;
+ 
+                     glm::vec3 outer = aCenter + dir * ( aRadius + thickness * 0.5f );
+                     glm::vec3 inner = aCenter + dir * ( aRadius - thickness * 0.5f );
Index: pkgsrc/cad/kicad/patches/patch-3d-viewer_3d__viewer_eda__3d__viewer__frame.cpp
diff -u /dev/null pkgsrc/cad/kicad/patches/patch-3d-viewer_3d__viewer_eda__3d__viewer__frame.cpp:1.1
--- /dev/null   Tue Sep 29 16:11:57 2026
+++ pkgsrc/cad/kicad/patches/patch-3d-viewer_3d__viewer_eda__3d__viewer__frame.cpp      Tue Sep 29 16:11:56 2026
@@ -0,0 +1,24 @@
+$NetBSD: patch-3d-viewer_3d__viewer_eda__3d__viewer__frame.cpp,v 1.1 2026/09/29 16:11:56 bouyer Exp $
+
+Add NetBSD support.
+
+--- 3d-viewer/3d_viewer/eda_3d_viewer_frame.cpp.orig   2026-05-05 16:08:02.643784359 +0000
++++ 3d-viewer/3d_viewer/eda_3d_viewer_frame.cpp
+@@ -62,7 +62,7 @@
+ #include <project_pcb.h>
+ #include <toolbars_3d.h>
+ 
+-#if defined(__linux__) || defined(__FreeBSD__)
++#if defined(__linux__) || defined(__FreeBSD__) || defined(__NetBSD__)
+ #include <spacenav/libspnav_driver.h>
+ #include <3d_spacenav/spnav_viewer_plugin.h>
+ #else
+@@ -198,7 +198,7 @@ EDA_3D_VIEWER_FRAME::EDA_3D_VIEWER_FRAME
+ 
+     try
+     {
+-#if defined(__linux__) || defined(__FreeBSD__)
++#if defined(__linux__) || defined(__FreeBSD__) || defined(__NetBSD__)
+         m_spaceMouse = std::make_unique<SPNAV_VIEWER_PLUGIN>( m_canvas );
+ #else
+         m_spaceMouse = std::make_unique<NL_3D_VIEWER_PLUGIN>( m_canvas );
Index: pkgsrc/cad/kicad/patches/patch-3d-viewer_3d__viewer_eda__3d__viewer__frame.h
diff -u /dev/null pkgsrc/cad/kicad/patches/patch-3d-viewer_3d__viewer_eda__3d__viewer__frame.h:1.1
--- /dev/null   Tue Sep 29 16:11:57 2026
+++ pkgsrc/cad/kicad/patches/patch-3d-viewer_3d__viewer_eda__3d__viewer__frame.h        Tue Sep 29 16:11:56 2026
@@ -0,0 +1,24 @@
+$NetBSD: patch-3d-viewer_3d__viewer_eda__3d__viewer__frame.h,v 1.1 2026/09/29 16:11:56 bouyer Exp $
+
+Add NetBSD support.
+
+--- 3d-viewer/3d_viewer/eda_3d_viewer_frame.h.orig     2026-05-05 16:09:40.080833685 +0000
++++ 3d-viewer/3d_viewer/eda_3d_viewer_frame.h
+@@ -44,7 +44,7 @@
+ #define KICAD_DEFAULT_3D_DRAWFRAME_STYLE    (wxDEFAULT_FRAME_STYLE | wxWANTS_CHARS)
+ 
+ // Forward declarations
+-#if defined(__linux__) || defined(__FreeBSD__)
++#if defined(__linux__) || defined(__FreeBSD__) || defined(__NetBSD__)
+ class SPNAV_VIEWER_PLUGIN;
+ #else
+ class NL_3D_VIEWER_PLUGIN;
+@@ -280,7 +280,7 @@ private:
+ 
+     bool                           m_disable_ray_tracing;
+ 
+-#if defined(__linux__) || defined(__FreeBSD__)
++#if defined(__linux__) || defined(__FreeBSD__) || defined(__NetBSD__)
+     std::unique_ptr<SPNAV_VIEWER_PLUGIN> m_spaceMouse;
+ #else
+     std::unique_ptr<NL_3D_VIEWER_PLUGIN> m_spaceMouse;
Index: pkgsrc/cad/kicad/patches/patch-3d-viewer_dialogs_panel__preview__3d__model.cpp
diff -u /dev/null pkgsrc/cad/kicad/patches/patch-3d-viewer_dialogs_panel__preview__3d__model.cpp:1.1
--- /dev/null   Tue Sep 29 16:11:57 2026
+++ pkgsrc/cad/kicad/patches/patch-3d-viewer_dialogs_panel__preview__3d__model.cpp      Tue Sep 29 16:11:56 2026
@@ -0,0 +1,24 @@
+$NetBSD: patch-3d-viewer_dialogs_panel__preview__3d__model.cpp,v 1.1 2026/09/29 16:11:56 bouyer Exp $
+
+Add NetBSD support.
+
+--- 3d-viewer/dialogs/panel_preview_3d_model.cpp.orig  2026-05-05 16:27:04.244600413 +0000
++++ 3d-viewer/dialogs/panel_preview_3d_model.cpp
+@@ -50,7 +50,7 @@
+ #include <eda_3d_viewer_settings.h>
+ #include <board_design_settings.h>
+ 
+-#if defined(__linux__) || defined(__FreeBSD__)
++#if defined(__linux__) || defined(__FreeBSD__) || defined(__NetBSD__)
+ #include <3d_spacenav/spnav_viewer_plugin.h>
+ #else
+ #include <3d_navlib/nl_footprint_properties_plugin.h>
+@@ -201,7 +201,7 @@ PANEL_PREVIEW_3D_MODEL::PANEL_PREVIEW_3D
+ 
+     try
+     {
+-#if defined(__linux__) || defined(__FreeBSD__)
++#if defined(__linux__) || defined(__FreeBSD__) || defined(__NetBSD__)
+         m_spaceMouse = std::make_unique<SPNAV_VIEWER_PLUGIN>( m_previewPane );
+ #else
+         m_spaceMouse = std::make_unique<NL_FOOTPRINT_PROPERTIES_PLUGIN>( m_previewPane );
Index: pkgsrc/cad/kicad/patches/patch-3d-viewer_dialogs_panel__preview__3d__model.h
diff -u /dev/null pkgsrc/cad/kicad/patches/patch-3d-viewer_dialogs_panel__preview__3d__model.h:1.1
--- /dev/null   Tue Sep 29 16:11:57 2026
+++ pkgsrc/cad/kicad/patches/patch-3d-viewer_dialogs_panel__preview__3d__model.h        Tue Sep 29 16:11:56 2026
@@ -0,0 +1,24 @@
+$NetBSD: patch-3d-viewer_dialogs_panel__preview__3d__model.h,v 1.1 2026/09/29 16:11:56 bouyer Exp $
+
+Add NetBSD support.
+
+--- 3d-viewer/dialogs/panel_preview_3d_model.h.orig    2026-05-05 16:27:07.594181393 +0000
++++ 3d-viewer/dialogs/panel_preview_3d_model.h
+@@ -63,7 +63,7 @@ class EMBEDDED_FILES;
+ class BOARD;
+ class BOARD_ADAPTER;
+ class FOOTPRINT;
+-#if defined(__linux__) || defined(__FreeBSD__)
++#if defined(__linux__) || defined(__FreeBSD__) || defined(__NetBSD__)
+ class SPNAV_VIEWER_PLUGIN;
+ #else
+ class NL_FOOTPRINT_PROPERTIES_PLUGIN;
+@@ -235,7 +235,7 @@ private:
+     /// The 3d viewer Render initial settings (must be saved and restored)
+     EDA_3D_VIEWER_SETTINGS::RENDER_SETTINGS          m_initialRender;
+ 
+-#if defined(__linux__) || defined(__FreeBSD__)
++#if defined(__linux__) || defined(__FreeBSD__) || defined(__NetBSD__)
+     std::unique_ptr<SPNAV_VIEWER_PLUGIN> m_spaceMouse;
+ #else
+     std::unique_ptr<NL_FOOTPRINT_PROPERTIES_PLUGIN>  m_spaceMouse;
Index: pkgsrc/cad/kicad/patches/patch-api_CMakeLists.txt
diff -u /dev/null pkgsrc/cad/kicad/patches/patch-api_CMakeLists.txt:1.1
--- /dev/null   Tue Sep 29 16:11:57 2026
+++ pkgsrc/cad/kicad/patches/patch-api_CMakeLists.txt   Tue Sep 29 16:11:56 2026
@@ -0,0 +1,14 @@
+$NetBSD: patch-api_CMakeLists.txt,v 1.1 2026/09/29 16:11:56 bouyer Exp $
+
+Make sure protoc will find system includes
+
+--- api/CMakeLists.txt.orig    2026-08-28 20:01:37.000000000 +0200
++++ api/CMakeLists.txt 2026-09-26 11:15:22.451740568 +0200
+@@ -52,6 +52,7 @@
+     COMMAND ${Protobuf_PROTOC_EXECUTABLE}
+     --cpp_out=dllexport_decl=KIAPI_IMPORTEXPORT:${KIAPI_CPP_BASEPATH}
+     --proto_path=${CMAKE_CURRENT_SOURCE_DIR}/proto
++    --proto_path=${Protobuf_INCLUDE_DIR}
+     --experimental_allow_proto3_optional
+     ${KIAPI_PROTO_SRCS}
+     COMMENT "Generating API protobuf source files from proto definitions..."
Index: pkgsrc/cad/kicad/patches/patch-api_proto_common_types_base__types.proto
diff -u /dev/null pkgsrc/cad/kicad/patches/patch-api_proto_common_types_base__types.proto:1.1
--- /dev/null   Tue Sep 29 16:11:57 2026
+++ pkgsrc/cad/kicad/patches/patch-api_proto_common_types_base__types.proto     Tue Sep 29 16:11:56 2026
@@ -0,0 +1,17 @@
+$NetBSD: patch-api_proto_common_types_base__types.proto,v 1.1 2026/09/29 16:11:56 bouyer Exp $
+
+Avoid conflict with major()/minor() macro from sys/types.h.
+
+--- api/proto/common/types/base_types.proto.orig       2025-03-15 02:08:08.496675423 +0000
++++ api/proto/common/types/base_types.proto
+@@ -46,8 +46,8 @@ message CommandStatusResponse
+  */
+ message KiCadVersion
+ {
+-  uint32 major = 1;
+-  uint32 minor = 2;
++  uint32 k_major = 1;
++  uint32 k_minor = 2;
+   uint32 patch = 3;
+ 
+   // Full identifier string, potentially containing git hashes, packager-added info, etc.
Index: pkgsrc/cad/kicad/patches/patch-common_api_api__handler__common.cpp
diff -u /dev/null pkgsrc/cad/kicad/patches/patch-common_api_api__handler__common.cpp:1.1
--- /dev/null   Tue Sep 29 16:11:57 2026
+++ pkgsrc/cad/kicad/patches/patch-common_api_api__handler__common.cpp  Tue Sep 29 16:11:56 2026
@@ -0,0 +1,17 @@
+$NetBSD: patch-common_api_api__handler__common.cpp,v 1.1 2026/09/29 16:11:56 bouyer Exp $
+
+Avoid conflict with major()/minor() macro from sys/types.h.
+
+--- common/api/api_handler_common.cpp.orig     2025-03-15 02:15:24.615413380 +0000
++++ common/api/api_handler_common.cpp
+@@ -73,8 +73,8 @@ HANDLER_RESULT<GetVersionResponse> API_H
+     reply.mutable_version()->set_full_version( GetBuildVersion().ToStdString() );
+ 
+     std::tuple<int, int, int> version = GetMajorMinorPatchTuple();
+-    reply.mutable_version()->set_major( std::get<0>( version ) );
+-    reply.mutable_version()->set_minor( std::get<1>( version ) );
++    reply.mutable_version()->set_k_major( std::get<0>( version ) );
++    reply.mutable_version()->set_k_minor( std::get<1>( version ) );
+     reply.mutable_version()->set_patch( std::get<2>( version ) );
+ 
+     return reply;
Index: pkgsrc/cad/kicad/patches/patch-common_eda__base__frame.cpp
diff -u /dev/null pkgsrc/cad/kicad/patches/patch-common_eda__base__frame.cpp:1.1
--- /dev/null   Tue Sep 29 16:11:57 2026
+++ pkgsrc/cad/kicad/patches/patch-common_eda__base__frame.cpp  Tue Sep 29 16:11:56 2026
@@ -0,0 +1,15 @@
+$NetBSD: patch-common_eda__base__frame.cpp,v 1.1 2026/09/29 16:11:56 bouyer Exp $
+
+Add NetBSD support.
+
+--- common/eda_base_frame.cpp.orig     2026-05-05 16:34:51.211225353 +0000
++++ common/eda_base_frame.cpp
+@@ -1405,7 +1405,7 @@ void EDA_BASE_FRAME::ShowPreferences( wx
+                     return new PANEL_MOUSE_SETTINGS( aParent );
+                 }, _( "Mouse and Touchpad" ) );
+ 
+-#if defined(__linux__) || defined(__FreeBSD__)
++#if defined(__linux__) || defined(__FreeBSD__) || defined(__NetBSD__)
+         book->AddLazyPage(
+                 [] ( wxWindow* aParent ) -> wxWindow*
+                 {
Index: pkgsrc/cad/kicad/patches/patch-common_spacenav_libspnav__driver.h
diff -u /dev/null pkgsrc/cad/kicad/patches/patch-common_spacenav_libspnav__driver.h:1.1
--- /dev/null   Tue Sep 29 16:11:57 2026
+++ pkgsrc/cad/kicad/patches/patch-common_spacenav_libspnav__driver.h   Tue Sep 29 16:11:56 2026
@@ -0,0 +1,15 @@
+$NetBSD: patch-common_spacenav_libspnav__driver.h,v 1.1 2026/09/29 16:11:56 bouyer Exp $
+
+Add NetBSD support.
+
+--- common/spacenav/libspnav_driver.h.orig     2026-05-05 12:57:05.286145561 +0000
++++ common/spacenav/libspnav_driver.h
+@@ -24,7 +24,7 @@
+ #ifndef KICAD_LIBSPNAV_DRIVER_H
+ #define KICAD_LIBSPNAV_DRIVER_H
+ 
+-#if defined(__linux__) || defined(__FreeBSD__)
++#if defined(__linux__) || defined(__FreeBSD__) || defined(__NetBSD__)
+ #include <spnav.h>
+ #endif
+ 
Index: pkgsrc/cad/kicad/patches/patch-include_pcb__base__frame.h
diff -u /dev/null pkgsrc/cad/kicad/patches/patch-include_pcb__base__frame.h:1.1
--- /dev/null   Tue Sep 29 16:11:57 2026
+++ pkgsrc/cad/kicad/patches/patch-include_pcb__base__frame.h   Tue Sep 29 16:11:56 2026
@@ -0,0 +1,24 @@
+$NetBSD: patch-include_pcb__base__frame.h,v 1.1 2026/09/29 16:11:56 bouyer Exp $
+
+Add NetBSD support.
+
+--- include/pcb_base_frame.h.orig      2026-05-05 16:40:29.125456392 +0000
++++ include/pcb_base_frame.h
+@@ -63,7 +63,7 @@ struct MAGNETIC_SETTINGS;
+ class PROGRESS_REPORTER;
+ class PCB_LAYER_BOX_SELECTOR;
+ 
+-#if defined(__linux__) || defined(__FreeBSD__)
++#if defined(__linux__) || defined(__FreeBSD__) || defined(__NetBSD__)
+ class SPNAV_2D_PLUGIN;
+ #else
+ class NL_PCBNEW_PLUGIN;
+@@ -437,7 +437,7 @@ protected:
+     PCB_ORIGIN_TRANSFORMS   m_originTransforms;
+ 
+ private:
+-#if defined(__linux__) || defined(__FreeBSD__)
++#if defined(__linux__) || defined(__FreeBSD__) || defined(__NetBSD__)
+     std::unique_ptr<SPNAV_2D_PLUGIN>    m_spaceMouse;
+ #else
+     std::unique_ptr<NL_PCBNEW_PLUGIN>    m_spaceMouse;
Index: pkgsrc/cad/kicad/patches/patch-pcbnew_pcb__base__frame.cpp
diff -u /dev/null pkgsrc/cad/kicad/patches/patch-pcbnew_pcb__base__frame.cpp:1.1
--- /dev/null   Tue Sep 29 16:11:57 2026
+++ pkgsrc/cad/kicad/patches/patch-pcbnew_pcb__base__frame.cpp  Tue Sep 29 16:11:57 2026
@@ -0,0 +1,24 @@
+$NetBSD: patch-pcbnew_pcb__base__frame.cpp,v 1.1 2026/09/29 16:11:57 bouyer Exp $
+
+Add NetBSD support.
+
+--- pcbnew/pcb_base_frame.cpp.orig     2026-05-05 16:38:44.932301106 +0000
++++ pcbnew/pcb_base_frame.cpp
+@@ -71,7 +71,7 @@
+ #include <tool/grid_menu.h>
+ #include <ratsnest/ratsnest_view_item.h>
+ 
+-#if defined(__linux__) || defined(__FreeBSD__)
++#if defined(__linux__) || defined(__FreeBSD__) || defined(__NetBSD__)
+ #include <spacenav/spnav_2d_plugin.h>
+ #else
+ #include <navlib/nl_pcbnew_plugin.h>
+@@ -1044,7 +1044,7 @@ void PCB_BASE_FRAME::ActivateGalCanvas()
+     {
+         if( !m_spaceMouse )
+         {
+-#if defined(__linux__) || defined(__FreeBSD__)
++#if defined(__linux__) || defined(__FreeBSD__) || defined(__NetBSD__)
+             m_spaceMouse = std::make_unique<SPNAV_2D_PLUGIN>( GetCanvas() );
+             m_spaceMouse->SetScale( 0.01 );
+ #else
Index: pkgsrc/cad/kicad/patches/patch-qa_qa__utils_error__handlers.cpp
diff -u /dev/null pkgsrc/cad/kicad/patches/patch-qa_qa__utils_error__handlers.cpp:1.1
--- /dev/null   Tue Sep 29 16:11:57 2026
+++ pkgsrc/cad/kicad/patches/patch-qa_qa__utils_error__handlers.cpp     Tue Sep 29 16:11:57 2026
@@ -0,0 +1,15 @@
+$NetBSD: patch-qa_qa__utils_error__handlers.cpp,v 1.1 2026/09/29 16:11:57 bouyer Exp $
+
+Add NetBSD support.
+
+--- qa/qa_utils/error_handlers.cpp.orig        2026-05-05 13:14:12.564189526 +0000
++++ qa/qa_utils/error_handlers.cpp
+@@ -25,7 +25,7 @@
+ #include <string>
+ #include <iostream>
+ #include <qa_utils/error_handlers.h>
+-#if defined(__APPLE__) || defined(__FreeBSD__)
++#if defined(__APPLE__) || defined(__FreeBSD__) || defined(__NetBSD__)
+ #define BOOST_STACKTRACE_GNU_SOURCE_NOT_REQUIRED
+ #endif
+ #ifdef __linux__
Index: pkgsrc/cad/kicad/patches/patch-thirdparty_thread-pool_bs__thread__pool.hpp
diff -u /dev/null pkgsrc/cad/kicad/patches/patch-thirdparty_thread-pool_bs__thread__pool.hpp:1.1
--- /dev/null   Tue Sep 29 16:11:57 2026
+++ pkgsrc/cad/kicad/patches/patch-thirdparty_thread-pool_bs__thread__pool.hpp  Tue Sep 29 16:11:57 2026
@@ -0,0 +1,222 @@
+$NetBSD: patch-thirdparty_thread-pool_bs__thread__pool.hpp,v 1.1 2026/09/29 16:11:57 bouyer Exp $
+
+Add NetBSD support.
+
+--- thirdparty/thread-pool/bs_thread_pool.hpp.orig     2026-07-21 19:13:55.000000000 +0000
++++ thirdparty/thread-pool/bs_thread_pool.hpp
+@@ -82,7 +82,7 @@ import std;
+         #include <windows.h>
+         #undef min
+         #undef max
+-    #elif defined(__linux__) || defined(__APPLE__)
++    #elif defined(__linux__) || defined(__APPLE__) || defined(__NetBSD__)
+         #include <pthread.h>
+         #include <sched.h>
+         #include <sys/resource.h>
+@@ -90,13 +90,15 @@ import std;
+         #if defined(__linux__)
+             #include <sys/syscall.h>
+             #include <sys/sysinfo.h>
++        #elif defined(__NetBSD__)
++            #include <sys/syscall.h>
+         #endif
+     #else
+         #undef BS_THREAD_POOL_NATIVE_EXTENSIONS
+     #endif
+ #endif
+ 
+-#if defined(__linux__)
++#if defined(__linux__) || defined(__NetBSD__)
+     // On Linux, <sys/sysmacros.h> defines macros called `major` and `minor`. We undefine them here so the `version` struct can work.
+     #ifdef major
+         #undef major
+@@ -577,7 +579,7 @@ enum class os_thread_priority
+     highest = THREAD_PRIORITY_HIGHEST,
+     realtime = THREAD_PRIORITY_TIME_CRITICAL
+ };
+-    #elif defined(__linux__) || defined(__APPLE__)
++    #elif defined(__linux__) || defined(__APPLE__) || defined(__NetBSD__)
+ /**
+  * @brief An enum containing pre-defined OS-specific process priority values for portability.
+  */
+@@ -645,6 +647,25 @@ enum class os_thread_priority
+     for (std::size_t i = 0; i < affinity.size(); ++i)
+         affinity[i] = CPU_ISSET(i, &cpu_set);
+     return affinity;
++    #elif defined(__NetBSD__)
++    cpuset_t *cpuset = cpuset_create();
++    cpuset_zero(cpuset);
++    if (sched_getaffinity_np(getpid(), cpuset_size(cpuset), cpuset) != 0)
++    {
++        cpuset_destroy(cpuset);
++        return std::nullopt;
++    }
++    const long num_cpus = sysconf(_SC_NPROCESSORS_ONLN);
++    if (num_cpus < 1)
++    {
++        cpuset_destroy(cpuset);
++        return std::nullopt;
++    }
++    std::vector<bool> affinity(static_cast<std::size_t>(num_cpus));
++    for (std::size_t i = 0; i < affinity.size(); ++i)
++        affinity[i] = cpuset_isset(i, cpuset);
++    cpuset_destroy(cpuset);
++    return affinity;
+     #elif defined(__APPLE__)
+     return std::nullopt;
+     #endif
+@@ -672,6 +693,15 @@ inline bool set_os_process_affinity(const std::vector<
+             CPU_SET(i, &cpu_set);
+     }
+     return sched_setaffinity(getpid(), sizeof(cpu_set_t), &cpu_set) == 0;
++    #elif defined(__NetBSD__)
++    cpuset_t *cpuset = cpuset_create();
++    cpuset_zero(cpuset);
++    for (std::size_t i = 0; i < std::min<std::size_t>(affinity.size(), cpuset_size(cpuset)); ++i)
++    {
++        if (affinity[i])
++            cpuset_set(i, cpuset);
++    }
++    return sched_setaffinity_np(getpid(), cpuset_size(cpuset), cpuset) == 0;
+     #elif defined(__APPLE__)
+     return affinity[0] && false; // NOLINT(readability-simplify-boolean-expr) // Using `affinity` to suppress unused parameter warning.
+     #endif
+@@ -690,7 +720,7 @@ inline bool set_os_process_affinity(const std::vector<
+     if (priority == 0)
+         return std::nullopt;
+     return static_cast<os_process_priority>(priority);
+-    #elif defined(__linux__) || defined(__APPLE__)
++    #elif defined(__linux__) || defined(__APPLE__) || defined(__NetBSD__)
+     // On Linux/macOS there is no direct analogue of `GetPriorityClass()` on Windows, so instead we get the "nice" value. The usual range is -20 to 19 or 20, with higher values corresponding to 
lower priorities. However, we are only using 6 pre-defined values for portability, so if the value was set via any means other than `BS::set_os_process_priority()`, it may not match one of our 
pre-defined values. Note that `getpriority()` returns -1 on error, but since this does not correspond to any of our pre-defined values, this function will return `std::nullopt` anyway.
+     const int nice_val = getpriority(PRIO_PROCESS, static_cast<id_t>(getpid()));
+     switch (nice_val)
+@@ -724,7 +754,7 @@ inline bool set_os_process_priority(const os_process_p
+     #if defined(_WIN32)
+     // On Windows, this is straightforward.
+     return SetPriorityClass(GetCurrentProcess(), static_cast<DWORD>(priority)) != 0;
+-    #elif defined(__linux__) || defined(__APPLE__)
++    #elif defined(__linux__) || defined(__APPLE__) || defined(__NetBSD__)
+     // On Linux/macOS there is no direct analogue of `SetPriorityClass()` on Windows, so instead we set the "nice" value. The usual range is -20 to 19 or 20, with higher values corresponding to 
lower priorities. However, we are only using 6 pre-defined values for portability. Note that the "nice" values are only relevant for the `SCHED_OTHER` policy, but we do not set that policy here, as 
it is per-thread rather than per-process.
+     // Also, it's important to note that a non-root user cannot decrease the nice value (i.e. increase the process priority), only increase it. This can cause confusing behavior. For example, if 
the current priority is `BS::os_process_priority::normal` and the user sets it to `BS::os_process_priority::idle`, they cannot change it back `BS::os_process_priority::normal`.
+     return setpriority(PRIO_PROCESS, static_cast<id_t>(getpid()), static_cast<int>(priority)) == 0;
+@@ -806,6 +836,25 @@ class [[nodiscard]] this_thread (public)
+         for (std::size_t i = 0; i < affinity.size(); ++i)
+             affinity[i] = CPU_ISSET(i, &cpu_set);
+         return affinity;
++    #elif defined(__NetBSD__)
++      cpuset_t *cpuset = cpuset_create();;
++      cpuset_zero(cpuset);
++      if (pthread_getaffinity_np(pthread_self(), cpuset_size(cpuset), cpuset) != 0)
++        {
++            cpuset_destroy(cpuset);
++            return std::nullopt;
++        }
++        const long num_cpus = sysconf(_SC_NPROCESSORS_ONLN);
++        if (num_cpus < 1)
++        {
++            cpuset_destroy(cpuset);
++            return std::nullopt;
++        }
++        std::vector<bool> affinity(static_cast<std::size_t>(num_cpus));
++        for (std::size_t i = 0; i < affinity.size(); ++i)
++            affinity[i] = cpuset_isset(i, cpuset);
++      cpuset_destroy(cpuset);
++        return affinity;
+     #elif defined(__APPLE__)
+         return std::nullopt;
+     #endif
+@@ -833,6 +882,17 @@ class [[nodiscard]] this_thread (public)
+                 CPU_SET(i, &cpu_set);
+         }
+         return pthread_setaffinity_np(pthread_self(), sizeof(cpu_set_t), &cpu_set) == 0;
++    #elif defined(__NetBSD__)
++        cpuset_t *cpuset = cpuset_create();
++        cpuset_zero(cpuset);
++        for (std::size_t i = 0; i < std::min<std::size_t>(affinity.size(), cpuset_size(cpuset)); ++i)
++        {
++            if (affinity[i])
++                cpuset_set(i, cpuset);
++        }
++      bool rc = pthread_setaffinity_np(pthread_self(), cpuset_size(cpuset), cpuset) == 0;
++      cpuset_destroy(cpuset);
++        return rc;
+     #elif defined(__APPLE__)
+         return affinity[0] && false; // NOLINT(readability-simplify-boolean-expr) // Using `affinity` to suppress unused parameter warning.
+     #endif
+@@ -865,10 +925,12 @@ class [[nodiscard]] this_thread (public)
+         if (result == 0)
+             return std::nullopt;
+         return name;
+-    #elif defined(__linux__) || defined(__APPLE__)
++#elif defined(__linux__) || defined(__NetBSD__) || defined(__APPLE__)
+         #ifdef __linux__
+         // On Linux thread names are limited to 16 characters, including the null terminator.
+         constexpr std::size_t buffer_size = 16;
++      #elif __NetBSD__
++        constexpr std::size_t buffer_size = PTHREAD_MAX_NAMELEN_NP;
+         #else
+         // On macOS thread names are limited to 64 characters, including the null terminator.
+         constexpr std::size_t buffer_size = 64;
+@@ -901,6 +963,8 @@ class [[nodiscard]] this_thread (public)
+     #elif defined(__linux__)
+         // On Linux this is straightforward.
+         return pthread_setname_np(pthread_self(), name.data()) == 0;
++    #elif defined(__NetBSD__)
++        return pthread_setname_np(pthread_self(), "%s", (void*)name.data()) == 0;
+     #elif defined(__APPLE__)
+         // On macOS, unlike Linux, a thread can only set a name for itself, so the signature is different.
+         return pthread_setname_np(name.data()) == 0;
+@@ -920,7 +984,7 @@ class [[nodiscard]] this_thread (public)
+         if (priority == THREAD_PRIORITY_ERROR_RETURN)
+             return std::nullopt;
+         return static_cast<os_thread_priority>(priority);
+-    #elif defined(__linux__)
++    #elif defined(__linux__) || defined(__NetBSD__)
+         // On Linux, we distill the choices of scheduling policy, priority, and "nice" value into 7 pre-defined levels, for simplicity and portability. The total number of possible combinations of 
policies and priorities is much larger, so if the value was set via any means other than `BS::this_thread::set_os_thread_priority()`, it may not match one of our pre-defined values.
+         int policy = 0;
+         struct sched_param param = {};
+@@ -946,7 +1010,11 @@ class [[nodiscard]] this_thread (public)
+         if (policy == SCHED_OTHER)
+         {
+             // For SCHED_OTHER, the result depends on the "nice" value. The usual range is -20 to 19 or 20, with higher values corresponding to lower priorities. Note that `getpriority()` returns 
-1 on error, but since this does not correspond to any of our pre-defined values, this function will return `std::nullopt` anyway.
++        #ifdef __NetBSD__
++            const int nice_val = getpriority(PRIO_PROCESS, static_cast<id_t>(syscall(SYS__lwp_self)));
++        #else
+             const int nice_val = getpriority(PRIO_PROCESS, static_cast<id_t>(syscall(SYS_gettid)));
++        #endif
+             switch (nice_val)
+             {
+             case PRIO_MIN + 2:
+@@ -1013,7 +1081,7 @@ class [[nodiscard]] this_thread (public)
+     #if defined(_WIN32)
+         // On Windows, this is straightforward.
+         return SetThreadPriority(GetCurrentThread(), static_cast<int>(priority)) != 0;
+-    #elif defined(__linux__)
++    #elif defined(__linux__) || defined(__NetBSD__)
+         // On Linux, we distill the choices of scheduling policy, priority, and "nice" value into 7 pre-defined levels, for simplicity and portability. The total number of possible combinations of 
policies and priorities is much larger, but allowing more fine-grained control would not be portable.
+         int policy = 0;
+         struct sched_param param = {};
+@@ -1054,17 +1122,23 @@ class [[nodiscard]] this_thread (public)
+             param.sched_priority = 0;
+             nice_val = PRIO_MAX - 3;
+             break;
++      #ifdef __linux__
+         case os_thread_priority::idle:
+             // "Idle" pre-defined priority on Linux: We use the policy `SCHED_IDLE`, priority must be 0, and we don't touch the "nice" value.
+             policy = SCHED_IDLE;
+             param.sched_priority = 0;
+             break;
++        #endif
+         default:
+             return false;
+         }
+         bool success = (pthread_setschedparam(pthread_self(), policy, &param) == 0);
+         if (nice_val.has_value())
++        #ifdef __NetBSD__
++            success = success && (setpriority(PRIO_PROCESS, static_cast<id_t>(syscall(SYS__lwp_self)), nice_val.value()) == 0);
++        #else
+             success = success && (setpriority(PRIO_PROCESS, static_cast<id_t>(syscall(SYS_gettid)), nice_val.value()) == 0);
++        #endif
+         return success;
+     #elif defined(__APPLE__)
+         // On macOS, unlike Linux, the "nice" value is per-process, not per-thread (in compliance with the POSIX standard). However, unlike Linux, `SCHED_OTHER` on macOS does have a range of 
priorities. So for `realtime` and `highest` priorities we use `SCHED_FIFO` and `SCHED_RR` respectively as for Linux, but for the other priorities we use `SCHED_OTHER` with a priority in the range 
given by `sched_get_priority_min(SCHED_OTHER)` to `sched_get_priority_max(SCHED_OTHER)`.



Home | Main Index | Thread Index | Old Index