pkgsrc-WIP-changes archive

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

kicad-*: Update to 10.0.5



Module Name:	pkgsrc-wip
Committed By:	Atsushi Toyokura <asteria.at%gmail.com@localhost>
Pushed By:	steleto
Date:		Wed Aug 5 01:08:16 2026 +0900
Changeset:	6f8f1c94de9a203802bacbca4440633c1be311a3

Modified Files:
	kicad-footprints/COMMIT_MSG
	kicad-footprints/Makefile
	kicad-footprints/PLIST
	kicad-footprints/distinfo
	kicad-packages3d/COMMIT_MSG
	kicad-packages3d/Makefile
	kicad-packages3d/PLIST
	kicad-packages3d/distinfo
	kicad-symbols/COMMIT_MSG
	kicad-symbols/Makefile
	kicad-symbols/PLIST
	kicad-symbols/distinfo
	kicad-templates/COMMIT_MSG
	kicad-templates/Makefile
	kicad-templates/distinfo
	kicad/COMMIT_MSG
	kicad/Makefile
	kicad/distinfo
	kicad/patches/patch-pcbnew_CMakeLists.txt
	kicad/patches/patch-thirdparty_thread-pool_bs__thread__pool.hpp

Log Message:
kicad-*: Update to 10.0.5

KiCad 10.0.5 (2026-07-22)

The 10.0.5 stable version contains critical bug fixes and other minor
improvements since the previous release.
A list of all of the fixed issues since the 10.0.5 release can be
found on the KiCad 10.0.5 milestone page.

KiCad 10.0.4 (2026-06-21)

The 10.0.4 stable version contains critical bug fixes and other minor
improvements since the previous release.
A list of all of the fixed issues since the 10.0.4 release can be
found on the KiCad 10.0.4 milestone page.

To see a diff of this commit:
https://wip.pkgsrc.org/cgi-bin/gitweb.cgi?p=pkgsrc-wip.git;a=commitdiff;h=6f8f1c94de9a203802bacbca4440633c1be311a3

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

diffstat:
 kicad-footprints/COMMIT_MSG                        |   2 +-
 kicad-footprints/Makefile                          |   2 +-
 kicad-footprints/PLIST                             |  22 ++-
 kicad-footprints/distinfo                          |   6 +-
 kicad-packages3d/COMMIT_MSG                        |   2 +-
 kicad-packages3d/Makefile                          |   2 +-
 kicad-packages3d/PLIST                             |   7 +
 kicad-packages3d/distinfo                          |   6 +-
 kicad-symbols/COMMIT_MSG                           |   2 +-
 kicad-symbols/Makefile                             |   2 +-
 kicad-symbols/PLIST                                |   1 +
 kicad-symbols/distinfo                             |   6 +-
 kicad-templates/COMMIT_MSG                         |   2 +-
 kicad-templates/Makefile                           |   2 +-
 kicad-templates/distinfo                           |   6 +-
 kicad/COMMIT_MSG                                   |  18 +-
 kicad/Makefile                                     |   2 +-
 kicad/distinfo                                     |  10 +-
 kicad/patches/patch-pcbnew_CMakeLists.txt          |   4 +-
 ...tch-thirdparty_thread-pool_bs__thread__pool.hpp | 211 ++++++++++++++++++++-
 20 files changed, 280 insertions(+), 35 deletions(-)

diffs:
diff --git a/kicad-footprints/COMMIT_MSG b/kicad-footprints/COMMIT_MSG
index 2caa2edf13..025b654b57 100644
--- a/kicad-footprints/COMMIT_MSG
+++ b/kicad-footprints/COMMIT_MSG
@@ -1,3 +1,3 @@
-cad/kicad-footprints: Update to 10.0.3
+cad/kicad-footprints: Update to 10.0.5
 
 No changelog available.
diff --git a/kicad-footprints/Makefile b/kicad-footprints/Makefile
index e038194ee5..90bdb1cca0 100644
--- a/kicad-footprints/Makefile
+++ b/kicad-footprints/Makefile
@@ -1,6 +1,6 @@
 # $NetBSD: Makefile,v 1.19 2024/11/23 09:42:38 mef Exp $
 
-DISTNAME=	kicad-footprints-10.0.3
+DISTNAME=	kicad-footprints-10.0.5
 CATEGORIES=	cad
 MASTER_SITES=	${MASTER_SITE_GITLAB:=kicad/libraries/}
 GITLAB_RELEASE=	${PKGVERSION_NOREV}
diff --git a/kicad-footprints/PLIST b/kicad-footprints/PLIST
index bb561e84ee..caa7b08c80 100644
--- a/kicad-footprints/PLIST
+++ b/kicad-footprints/PLIST
@@ -7731,6 +7731,15 @@ share/kicad/footprints/Connector_TE-Connectivity.pretty/TE_Micro-MaTch_2-215079-
 share/kicad/footprints/Connector_TE-Connectivity.pretty/TE_Micro-MaTch_215079-4_2x02_P1.27mm_Vertical.kicad_mod
 share/kicad/footprints/Connector_TE-Connectivity.pretty/TE_Micro-MaTch_215079-6_2x03_P1.27mm_Vertical.kicad_mod
 share/kicad/footprints/Connector_TE-Connectivity.pretty/TE_Micro-MaTch_215079-8_2x04_P1.27mm_Vertical.kicad_mod
+share/kicad/footprints/Connector_TE-Connectivity.pretty/TE_Micro-MaTch_7-188275-4_2x02_P1.27mm_Vertical.kicad_mod
+share/kicad/footprints/Connector_TE-Connectivity.pretty/TE_Micro-MaTch_7-188275-6_2x03_P1.27mm_Vertical.kicad_mod
+share/kicad/footprints/Connector_TE-Connectivity.pretty/TE_Micro-MaTch_7-188275-8_2x04_P1.27mm_Vertical.kicad_mod
+share/kicad/footprints/Connector_TE-Connectivity.pretty/TE_Micro-MaTch_8-188275-0_2x05_P1.27mm_Vertical.kicad_mod
+share/kicad/footprints/Connector_TE-Connectivity.pretty/TE_Micro-MaTch_8-188275-2_2x06_P1.27mm_Vertical.kicad_mod
+share/kicad/footprints/Connector_TE-Connectivity.pretty/TE_Micro-MaTch_8-188275-4_2x07_P1.27mm_Vertical.kicad_mod
+share/kicad/footprints/Connector_TE-Connectivity.pretty/TE_Micro-MaTch_8-188275-6_2x08_P1.27mm_Vertical.kicad_mod
+share/kicad/footprints/Connector_TE-Connectivity.pretty/TE_Micro-MaTch_8-188275-8_2x09_P1.27mm_Vertical.kicad_mod
+share/kicad/footprints/Connector_TE-Connectivity.pretty/TE_Micro-MaTch_9-188275-0_2x10_P1.27mm_Vertical.kicad_mod
 share/kicad/footprints/Connector_TE-Connectivity.pretty/TE_T4041037031-000_M8_03_Socket_Straight.kicad_mod
 share/kicad/footprints/Connector_TE-Connectivity.pretty/TE_T4041037041-000_M8_04_Socket_Straight.kicad_mod
 share/kicad/footprints/Connector_USB.pretty/USB3_A_Molex_48393-001.kicad_mod
@@ -8292,6 +8301,7 @@ share/kicad/footprints/Converter_DCDC.pretty/Converter_DCDC_Hamamatsu_C11204-1_T
 share/kicad/footprints/Converter_DCDC.pretty/Converter_DCDC_MeanWell_NID30_THT.kicad_mod
 share/kicad/footprints/Converter_DCDC.pretty/Converter_DCDC_MeanWell_NID60_THT.kicad_mod
 share/kicad/footprints/Converter_DCDC.pretty/Converter_DCDC_MeanWell_NSD10_THT.kicad_mod
+share/kicad/footprints/Converter_DCDC.pretty/Converter_DCDC_MeanWell_SMU02x-xxN_THT.kicad_mod
 share/kicad/footprints/Converter_DCDC.pretty/Converter_DCDC_Murata_CRE1xxxxxx3C_THT.kicad_mod
 share/kicad/footprints/Converter_DCDC.pretty/Converter_DCDC_Murata_CRE1xxxxxxDC_THT.kicad_mod
 share/kicad/footprints/Converter_DCDC.pretty/Converter_DCDC_Murata_CRE1xxxxxxSC_THT.kicad_mod
@@ -9148,6 +9158,7 @@ share/kicad/footprints/Inductor_SMD.pretty/L_APV_APH1770.kicad_mod
 share/kicad/footprints/Inductor_SMD.pretty/L_APV_APH2213.kicad_mod
 share/kicad/footprints/Inductor_SMD.pretty/L_AVX_LMLP07A7.kicad_mod
 share/kicad/footprints/Inductor_SMD.pretty/L_Abracon_ASPI-0425.kicad_mod
+share/kicad/footprints/Inductor_SMD.pretty/L_Abracon_ASPI-0628.kicad_mod
 share/kicad/footprints/Inductor_SMD.pretty/L_Abracon_ASPI-0630LR.kicad_mod
 share/kicad/footprints/Inductor_SMD.pretty/L_Abracon_ASPI-3012S.kicad_mod
 share/kicad/footprints/Inductor_SMD.pretty/L_Abracon_ASPI-4030S.kicad_mod
@@ -11882,6 +11893,8 @@ share/kicad/footprints/Package_DFN_QFN.pretty/Texas_VQFN-HR-20_3x2.5mm_P0.5mm_RQ
 share/kicad/footprints/Package_DFN_QFN.pretty/Texas_VQFN-RHL-20.kicad_mod
 share/kicad/footprints/Package_DFN_QFN.pretty/Texas_VQFN-RHL-20_ThermalVias.kicad_mod
 share/kicad/footprints/Package_DFN_QFN.pretty/Texas_VQFN-RNR0011A-11.kicad_mod
+share/kicad/footprints/Package_DFN_QFN.pretty/Texas_WQFN-40-1EP_3x6mm_P0.4mm_EP1.7x4.5mm.kicad_mod
+share/kicad/footprints/Package_DFN_QFN.pretty/Texas_WQFN-40-1EP_3x6mm_P0.4mm_EP1.7x4.5mm_ThermalVias.kicad_mod
 share/kicad/footprints/Package_DFN_QFN.pretty/Texas_WQFN-MR-100_3x3-DapStencil.kicad_mod
 share/kicad/footprints/Package_DFN_QFN.pretty/Texas_WQFN-MR-100_ThermalVias_3x3-DapStencil.kicad_mod
 share/kicad/footprints/Package_DFN_QFN.pretty/Texas_X2QFN-12_1.6x1.6mm_P0.4mm.kicad_mod
@@ -12009,7 +12022,6 @@ share/kicad/footprints/Package_DFN_QFN.pretty/WDFN-8-1EP_4x3mm_P0.65mm_EP2.4x1.8
 share/kicad/footprints/Package_DFN_QFN.pretty/WDFN-8-1EP_6x5mm_P1.27mm_EP3.4x4mm.kicad_mod
 share/kicad/footprints/Package_DFN_QFN.pretty/WDFN-8-1EP_8x6mm_P1.27mm_EP6x4.8mm.kicad_mod
 share/kicad/footprints/Package_DFN_QFN.pretty/WDFN-8-1EP_8x6mm_P1.27mm_EP6x4.8mm_ThermalVias.kicad_mod
-share/kicad/footprints/Package_DFN_QFN.pretty/WDFN-8_2x2mm_P0.5mm.kicad_mod
 share/kicad/footprints/Package_DFN_QFN.pretty/WFDFPN-8-1EP_3x2mm_P0.5mm_EP1.25x1.35mm.kicad_mod
 share/kicad/footprints/Package_DFN_QFN.pretty/WQFN-14-1EP_2.5x2.5mm_P0.5mm_EP1.45x1.45mm.kicad_mod
 share/kicad/footprints/Package_DFN_QFN.pretty/WQFN-14-1EP_2.5x2.5mm_P0.5mm_EP1.45x1.45mm_ThermalVias.kicad_mod
@@ -12355,7 +12367,6 @@ share/kicad/footprints/Package_DirectFET.pretty/DirectFET_SQ.kicad_mod
 share/kicad/footprints/Package_DirectFET.pretty/DirectFET_ST.kicad_mod
 share/kicad/footprints/Package_LCC.pretty/Analog_LCC-8_5x5mm_P1.27mm.kicad_mod
 share/kicad/footprints/Package_LCC.pretty/MO047AD_PLCC-52_19.1x19.1mm_P1.27mm.kicad_mod
-share/kicad/footprints/Package_LCC.pretty/PLCC-20.kicad_mod
 share/kicad/footprints/Package_LCC.pretty/PLCC-20_9.0x9.0mm_P1.27mm.kicad_mod
 share/kicad/footprints/Package_LCC.pretty/PLCC-20_SMD-Socket.kicad_mod
 share/kicad/footprints/Package_LCC.pretty/PLCC-20_THT-Socket.kicad_mod
@@ -12563,6 +12574,8 @@ share/kicad/footprints/Package_SO.pretty/HTSSOP-16-1EP_4.4x5mm_P0.65mm_EP3.4x5mm
 share/kicad/footprints/Package_SO.pretty/HTSSOP-16-1EP_4.4x5mm_P0.65mm_EP3.4x5mm_Mask2.46x2.31mm_ThermalVias.kicad_mod
 share/kicad/footprints/Package_SO.pretty/HTSSOP-16-1EP_4.4x5mm_P0.65mm_EP3.4x5mm_Mask2.66x2.46mm.kicad_mod
 share/kicad/footprints/Package_SO.pretty/HTSSOP-16-1EP_4.4x5mm_P0.65mm_EP3.4x5mm_Mask2.66x2.46mm_ThermalVias.kicad_mod
+share/kicad/footprints/Package_SO.pretty/HTSSOP-16-1EP_4.4x5mm_P0.65mm_EP3.4x5mm_Mask2.78x3.37mm.kicad_mod
+share/kicad/footprints/Package_SO.pretty/HTSSOP-16-1EP_4.4x5mm_P0.65mm_EP3.4x5mm_Mask2.78x3.37mm_ThermalVias.kicad_mod
 share/kicad/footprints/Package_SO.pretty/HTSSOP-16-1EP_4.4x5mm_P0.65mm_EP3.4x5mm_Mask3x3mm_ThermalVias.kicad_mod
 share/kicad/footprints/Package_SO.pretty/HTSSOP-16-1EP_4.4x5mm_P0.65mm_EP3x3mm.kicad_mod
 share/kicad/footprints/Package_SO.pretty/HTSSOP-20-1EP_4.4x6.5mm_P0.65mm_EP2.74x3.86mm.kicad_mod
@@ -12917,6 +12930,8 @@ share/kicad/footprints/Package_SO.pretty/Texas_DYY0016A_TSOT-23-16_2x4.2mm_P0.5m
 share/kicad/footprints/Package_SO.pretty/Texas_HSOP-8-1EP_3.9x4.9mm_P1.27mm.kicad_mod
 share/kicad/footprints/Package_SO.pretty/Texas_HSOP-8-1EP_3.9x4.9mm_P1.27mm_ThermalVias.kicad_mod
 share/kicad/footprints/Package_SO.pretty/Texas_HTSOP-8-1EP_3.9x4.9mm_P1.27mm_EP2.95x4.9mm_Mask2.4x3.1mm_ThermalVias.kicad_mod
+share/kicad/footprints/Package_SO.pretty/Texas_HTSSOP-14-1EP_4.4x5mm_P0.65mm_EP3.4x5mm_Mask2.94x3.34mm.kicad_mod
+share/kicad/footprints/Package_SO.pretty/Texas_HTSSOP-14-1EP_4.4x5mm_P0.65mm_EP3.4x5mm_Mask2.94x3.34mm_ThermalVias.kicad_mod
 share/kicad/footprints/Package_SO.pretty/Texas_HTSSOP-14-1EP_4.4x5mm_P0.65mm_EP3.4x5mm_Mask3.155x3.255mm.kicad_mod
 share/kicad/footprints/Package_SO.pretty/Texas_HTSSOP-14-1EP_4.4x5mm_P0.65mm_EP3.4x5mm_Mask3.155x3.255mm_ThermalVias.kicad_mod
 share/kicad/footprints/Package_SO.pretty/Texas_PW0020A_TSSOP-20_4.4x6.5mm_P0.65mm.kicad_mod
@@ -12955,6 +12970,7 @@ share/kicad/footprints/Package_SON.pretty/MPS_VSON-6_1x1.5mm_P0.5mm.kicad_mod
 share/kicad/footprints/Package_SON.pretty/MicroCrystal_C7_SON-8_1.5x3.2mm_P0.9mm.kicad_mod
 share/kicad/footprints/Package_SON.pretty/Microchip_USON-10-1EP_3x3mm_P0.5mm_EP1.8x2.5mm.kicad_mod
 share/kicad/footprints/Package_SON.pretty/Microchip_USON-10-1EP_3x3mm_P0.5mm_EP1.8x2.5mm_ThermalVias.kicad_mod
+share/kicad/footprints/Package_SON.pretty/NXP_LSON-16-1EP_3.5x4.5mm_P0.5mm_EP2x3.8mm.kicad_mod
 share/kicad/footprints/Package_SON.pretty/NXP_XSON-16.kicad_mod
 share/kicad/footprints/Package_SON.pretty/Nexperia_HUSON-12_USON-12-1EP_1.35x2.5mm_P0.4mm_EP0.4x2mm.kicad_mod
 share/kicad/footprints/Package_SON.pretty/Nexperia_HUSON-16_USON-16-1EP_1.35x3.3mm_P0.4mm_EP0.4x2.8mm.kicad_mod
@@ -13028,8 +13044,6 @@ share/kicad/footprints/Package_SON.pretty/WSON-6-1EP_2x2mm_P0.65mm_EP1x1.6mm.kic
 share/kicad/footprints/Package_SON.pretty/WSON-6-1EP_2x2mm_P0.65mm_EP1x1.6mm_ThermalVias.kicad_mod
 share/kicad/footprints/Package_SON.pretty/WSON-6-1EP_3x3mm_P0.95mm.kicad_mod
 share/kicad/footprints/Package_SON.pretty/WSON-6_1.5x1.5mm_P0.5mm.kicad_mod
-share/kicad/footprints/Package_SON.pretty/WSON-8-1EP_2x2mm_P0.5mm_EP0.9x1.6mm.kicad_mod
-share/kicad/footprints/Package_SON.pretty/WSON-8-1EP_2x2mm_P0.5mm_EP0.9x1.6mm_ThermalVias.kicad_mod
 share/kicad/footprints/Package_SON.pretty/WSON-8-1EP_3x2.5mm_P0.5mm_EP1.2x1.5mm_PullBack.kicad_mod
 share/kicad/footprints/Package_SON.pretty/WSON-8-1EP_3x2.5mm_P0.5mm_EP1.2x1.5mm_PullBack_ThermalVias.kicad_mod
 share/kicad/footprints/Package_SON.pretty/WSON-8-1EP_3x3mm_P0.5mm_EP1.2x2mm.kicad_mod
diff --git a/kicad-footprints/distinfo b/kicad-footprints/distinfo
index f19018b70d..2c81b4ce06 100644
--- a/kicad-footprints/distinfo
+++ b/kicad-footprints/distinfo
@@ -1,5 +1,5 @@
 $NetBSD: distinfo,v 1.18 2024/11/23 09:42:38 mef Exp $
 
-BLAKE2s (kicad-footprints-10.0.3.tar.bz2) = 095a12ab76b72c46013525dd072b89588b25ddf3117901b013f524c51d104fe8
-SHA512 (kicad-footprints-10.0.3.tar.bz2) = 98df039784190fe546b38a340cf11580616b81a98292c86c193b9b76a04dca2c8f3888be595440e8d61a83603dbcdbf682edb7967267771081f2cd7b57ab14e8
-Size (kicad-footprints-10.0.3.tar.bz2) = 7808461 bytes
+BLAKE2s (kicad-footprints-10.0.5.tar.bz2) = 9a17e98a3c9898c9c59daffbe46aa4cd43db4ae117270a458c2671ba1407cab6
+SHA512 (kicad-footprints-10.0.5.tar.bz2) = 2c7f471bebca01003b08ffce6a6ebc2a0b30b70785f8173b94664ba8a0f15ad318a630776f29d3736b31ac2e1fa6b679aba87ebc0cd7087dd1fe224441f4aab5
+Size (kicad-footprints-10.0.5.tar.bz2) = 7793111 bytes
diff --git a/kicad-packages3d/COMMIT_MSG b/kicad-packages3d/COMMIT_MSG
index 3b073e12c6..bd54982b7d 100644
--- a/kicad-packages3d/COMMIT_MSG
+++ b/kicad-packages3d/COMMIT_MSG
@@ -1,3 +1,3 @@
-cad/kicad-packages3d: Update to 10.0.3
+cad/kicad-packages3d: Update to 10.0.5
 
 No changelog available.
diff --git a/kicad-packages3d/Makefile b/kicad-packages3d/Makefile
index 3548395aad..de90542306 100644
--- a/kicad-packages3d/Makefile
+++ b/kicad-packages3d/Makefile
@@ -1,6 +1,6 @@
 # $NetBSD: Makefile,v 1.18 2024/11/20 01:22:44 mef Exp $
 
-DISTNAME=	kicad-packages3D-10.0.3
+DISTNAME=	kicad-packages3D-10.0.5
 PKGNAME=	${DISTNAME:tl}
 CATEGORIES=	cad
 MASTER_SITES=	${MASTER_SITE_GITLAB:=kicad/libraries/}
diff --git a/kicad-packages3d/PLIST b/kicad-packages3d/PLIST
index e4505d7071..10a804b725 100644
--- a/kicad-packages3d/PLIST
+++ b/kicad-packages3d/PLIST
@@ -4615,6 +4615,7 @@ share/kicad/3dmodels/Inductor_SMD.3dshapes/L_APV_APH1770.step
 share/kicad/3dmodels/Inductor_SMD.3dshapes/L_APV_APH2213.step
 share/kicad/3dmodels/Inductor_SMD.3dshapes/L_AVX_LMLP07A7.step
 share/kicad/3dmodels/Inductor_SMD.3dshapes/L_Abracon_ASPI-0425.step
+share/kicad/3dmodels/Inductor_SMD.3dshapes/L_Abracon_ASPI-0628.step
 share/kicad/3dmodels/Inductor_SMD.3dshapes/L_Abracon_ASPIAIG-F4020.step
 share/kicad/3dmodels/Inductor_SMD.3dshapes/L_Bourns-SRN4018.step
 share/kicad/3dmodels/Inductor_SMD.3dshapes/L_Bourns_SDR1806.step
@@ -5859,6 +5860,7 @@ share/kicad/3dmodels/Package_DFN_QFN.3dshapes/Texas_RGZ0048A_VQFN-48-1EP_7x7mm_P
 share/kicad/3dmodels/Package_DFN_QFN.3dshapes/Texas_RHB0032E_VQFN-32-1EP_5x5mm_P0.5mm_EP3.45x3.45mm.step
 share/kicad/3dmodels/Package_DFN_QFN.3dshapes/Texas_RHF0024A_VQFN-24-1EP_4x5mm_P0.5mm_EP2.65x3.65mm.step
 share/kicad/3dmodels/Package_DFN_QFN.3dshapes/Texas_RHH0036C_VQFN-36-1EP_6x6mm_P0.5mm_EP4.4x4.4mm.step
+share/kicad/3dmodels/Package_DFN_QFN.3dshapes/Texas_RNQ0040A_WQFN-40-1EP_6x4mm_P0.4mm_EP4.7x2.7mm.step
 share/kicad/3dmodels/Package_DFN_QFN.3dshapes/Texas_RRW0024A_WQFN-24-1EP_3x3mm_P0.4mm_EP1.9x1.9mm.step
 share/kicad/3dmodels/Package_DFN_QFN.3dshapes/Texas_RSA_VQFN-16-1EP_4x4mm_P0.65mm_EP2.7x2.7mm.step
 share/kicad/3dmodels/Package_DFN_QFN.3dshapes/Texas_RTW_WQFN-24-1EP_4x4mm_P0.5mm_EP2.7x2.7mm.step
@@ -5869,6 +5871,7 @@ share/kicad/3dmodels/Package_DFN_QFN.3dshapes/Texas_S-PVQFN-N14.step
 share/kicad/3dmodels/Package_DFN_QFN.3dshapes/Texas_S-PWQFN-N20.step
 share/kicad/3dmodels/Package_DFN_QFN.3dshapes/Texas_UQFN-8_1.5x1.5mm_P0.5mm.step
 share/kicad/3dmodels/Package_DFN_QFN.3dshapes/Texas_VQFN-RGR-20-1EP_3.5x3.5mm_Pitch0.5mm.step
+share/kicad/3dmodels/Package_DFN_QFN.3dshapes/Texas_WQFN-40-1EP_3x6mm_P0.4mm_EP1.7x4.5mm.step
 share/kicad/3dmodels/Package_DFN_QFN.3dshapes/Texas_WQFN-MR-100.step
 share/kicad/3dmodels/Package_DFN_QFN.3dshapes/UDFN-10_1.35x2.6mm_P0.5mm.step
 share/kicad/3dmodels/Package_DFN_QFN.3dshapes/UDFN-4-1EP_1x1mm_P0.65mm_EP0.48x0.48mm.step
@@ -5896,6 +5899,7 @@ share/kicad/3dmodels/Package_DFN_QFN.3dshapes/Vishay_PowerPAK_MLP55_27L_R.step
 share/kicad/3dmodels/Package_DFN_QFN.3dshapes/W-PDFN-8-1EP_6x5mm_P1.27mm_EP3x3mm.step
 share/kicad/3dmodels/Package_DFN_QFN.3dshapes/WDFN-8-1EP_4x3mm_P0.65mm_EP2.4x1.8mm.step
 share/kicad/3dmodels/Package_DFN_QFN.3dshapes/WDFN-8-1EP_6x5mm_P1.27mm_EP3.4x4mm.step
+share/kicad/3dmodels/Package_DFN_QFN.3dshapes/WQFN-16-1EP_3x3mm_P0.5mm_EP1.68x1.68mm.step
 share/kicad/3dmodels/Package_DFN_QFN.3dshapes/WQFN-16-1EP_3x3mm_P0.5mm_EP1.6x1.6mm.step
 share/kicad/3dmodels/Package_DFN_QFN.3dshapes/WQFN-20-1EP_2.5x4.5mm_P0.5mm_EP1x2.9mm.step
 share/kicad/3dmodels/Package_DFN_QFN.3dshapes/WQFN-20-1EP_4x4mm_P0.5mm_EP2.7x2.7mm.step
@@ -6223,6 +6227,7 @@ share/kicad/3dmodels/Package_SO.3dshapes/HTSOP-8-1EP_3.9x4.9mm_P1.27mm.step
 share/kicad/3dmodels/Package_SO.3dshapes/HTSOP-8-1EP_3.9x4.9mm_P1.27mm_EP2.4x3.2mm.step
 share/kicad/3dmodels/Package_SO.3dshapes/HTSSOP-16-1EP_4.4x5mm_P0.65mm_EP3.4x5mm.step
 share/kicad/3dmodels/Package_SO.3dshapes/HTSSOP-16-1EP_4.4x5mm_P0.65mm_EP3.4x5mm_Mask2.66x2.46mm.step
+share/kicad/3dmodels/Package_SO.3dshapes/HTSSOP-16-1EP_4.4x5mm_P0.65mm_EP3.4x5mm_Mask2.78x3.37mm.step
 share/kicad/3dmodels/Package_SO.3dshapes/HTSSOP-20-1EP_4.4x6.5mm_P0.65mm_EP3.4x6.5mm.step
 share/kicad/3dmodels/Package_SO.3dshapes/HTSSOP-20-1EP_4.4x6.5mm_P0.65mm_EP3.4x6.5mm_Mask2.75x3.43mm.step
 share/kicad/3dmodels/Package_SO.3dshapes/HTSSOP-24-1EP_4.4x7.8mm_P0.65mm_EP3.4x7.8mm_Mask2.4x4.68mm.step
@@ -6416,6 +6421,7 @@ share/kicad/3dmodels/Package_SO.3dshapes/TSSOP-8_3x3mm_P0.65mm.step
 share/kicad/3dmodels/Package_SO.3dshapes/TSSOP-8_4.4x3mm_P0.65mm.step
 share/kicad/3dmodels/Package_SO.3dshapes/Texas_HTSOP-8-1EP_3.9x4.9mm_P1.27mm_EP2.85x4.9mm_Mask2.4x3.1mm_ThermalVias.step
 share/kicad/3dmodels/Package_SO.3dshapes/Texas_HTSOP-8-1EP_3.9x4.9mm_P1.27mm_EP2.95x4.9mm_Mask2.4x3.1mm_ThermalVias.step
+share/kicad/3dmodels/Package_SO.3dshapes/Texas_HTSSOP-14-1EP_4.4x5mm_P0.65mm_EP3.4x5mm_Mask2.94x3.34mm.step
 share/kicad/3dmodels/Package_SO.3dshapes/Texas_HTSSOP-14-1EP_4.4x5mm_P0.65mm_EP3.4x5mm_Mask3.155x3.255mm.step
 share/kicad/3dmodels/Package_SO.3dshapes/Texas_PWP0020A.step
 share/kicad/3dmodels/Package_SO.3dshapes/Toshiba_SOIC-4-6_4.4x3.6mm_P1.27mm.step
@@ -6426,6 +6432,7 @@ share/kicad/3dmodels/Package_SO.3dshapes/VSSOP-8_2.3x2mm_P0.5mm.step
 share/kicad/3dmodels/Package_SO.3dshapes/VSSOP-8_3x3mm_P0.65mm.step
 share/kicad/3dmodels/Package_SON.3dshapes/Diodes_PowerDI3333-8.step
 share/kicad/3dmodels/Package_SON.3dshapes/Microchip_USON-10-1EP_3x3mm_P0.5mm_EP1.8x2.5mm.step
+share/kicad/3dmodels/Package_SON.3dshapes/NXP_LSON-16-1EP_3.5x4.5mm_P0.5mm_EP2x3.8mm.step
 share/kicad/3dmodels/Package_SON.3dshapes/NXP_XSON-16.step
 share/kicad/3dmodels/Package_SON.3dshapes/Nexperia_HUSON-12_USON-12-1EP_1.35x2.5mm_P0.4mm_EP0.4x2mm.step
 share/kicad/3dmodels/Package_SON.3dshapes/Nexperia_HUSON-16_USON-16-1EP_1.35x3.3mm_P0.4mm_EP0.4x2.8mm.step
diff --git a/kicad-packages3d/distinfo b/kicad-packages3d/distinfo
index 2d4988b092..df9ad12c39 100644
--- a/kicad-packages3d/distinfo
+++ b/kicad-packages3d/distinfo
@@ -1,5 +1,5 @@
 $NetBSD: distinfo,v 1.15 2024/11/20 01:22:44 mef Exp $
 
-BLAKE2s (kicad-packages3D-10.0.3.tar.bz2) = 42983cc229ea141bb3a0db748b31f72b4a0d49ae784aeb3670673a14f018d770
-SHA512 (kicad-packages3D-10.0.3.tar.bz2) = 6b3df3e36c4d0dbc011291532728672297f5f289bc63912e50866f04752f00b42d9829566d07e217a0853ad7dfd3c4d33f2801f99438a7a8ce815129e09505e9
-Size (kicad-packages3D-10.0.3.tar.bz2) = 521447157 bytes
+BLAKE2s (kicad-packages3D-10.0.5.tar.bz2) = 0732047cfd630ba4a2ca9dab82edd87cc90ccc5fc1bbb0f03fdef845b52b4388
+SHA512 (kicad-packages3D-10.0.5.tar.bz2) = c3559cd757b0f9f27d64c999acfd9aa5331cacdd6ec13e0d85b8e513dac22fb3b91457b990c83eb747f5391c5874939994863a2449a55aab7131bb21dda0af04
+Size (kicad-packages3D-10.0.5.tar.bz2) = 521680663 bytes
diff --git a/kicad-symbols/COMMIT_MSG b/kicad-symbols/COMMIT_MSG
index 6ca705e473..e772d9b670 100644
--- a/kicad-symbols/COMMIT_MSG
+++ b/kicad-symbols/COMMIT_MSG
@@ -1,3 +1,3 @@
-cad/kicad-symbols: Update to 10.0.3
+cad/kicad-symbols: Update to 10.0.5
 
 No changelog available.
diff --git a/kicad-symbols/Makefile b/kicad-symbols/Makefile
index e17e2162ef..caf45ea55d 100644
--- a/kicad-symbols/Makefile
+++ b/kicad-symbols/Makefile
@@ -1,6 +1,6 @@
 # $NetBSD: Makefile,v 1.16 2024/11/23 10:11:58 mef Exp $
 
-DISTNAME=	kicad-symbols-10.0.3
+DISTNAME=	kicad-symbols-10.0.5
 CATEGORIES=	cad
 MASTER_SITES=	${MASTER_SITE_GITLAB:=kicad/libraries/}
 GITLAB_RELEASE=	${PKGVERSION_NOREV}
diff --git a/kicad-symbols/PLIST b/kicad-symbols/PLIST
index defb64783a..0d09574601 100644
--- a/kicad-symbols/PLIST
+++ b/kicad-symbols/PLIST
@@ -36,6 +36,7 @@ share/kicad/symbols/Connector_Generic_MountingPin.kicad_sym
 share/kicad/symbols/Connector_Generic_Shielded.kicad_sym
 share/kicad/symbols/Converter_ACDC.kicad_sym
 share/kicad/symbols/Converter_DCDC.kicad_sym
+share/kicad/symbols/Converter_DCDC_Isolated.kicad_sym
 share/kicad/symbols/DSP_AnalogDevices.kicad_sym
 share/kicad/symbols/DSP_Freescale.kicad_sym
 share/kicad/symbols/DSP_Microchip_DSPIC33.kicad_sym
diff --git a/kicad-symbols/distinfo b/kicad-symbols/distinfo
index b08ffd0a93..6dec960aa3 100644
--- a/kicad-symbols/distinfo
+++ b/kicad-symbols/distinfo
@@ -1,5 +1,5 @@
 $NetBSD: distinfo,v 1.15 2024/11/23 10:11:58 mef Exp $
 
-BLAKE2s (kicad-symbols-10.0.3.tar.bz2) = 734c9f723f5684a2323b6cf1f65d8d4f75de041a1b44c5bd84c84c594bf2c860
-SHA512 (kicad-symbols-10.0.3.tar.bz2) = e31c5fa0d7e77f9218455f1f82bbfc9fcc6f8a2b79d324155314daecc86eb6f05ecb49a338a9ae4ad64d28708d5852a0a343d876bdbb6eb01da3c92f68ae3939
-Size (kicad-symbols-10.0.3.tar.bz2) = 4240023 bytes
+BLAKE2s (kicad-symbols-10.0.5.tar.bz2) = 4a6a715d139073dafa7fd8fd76afa3226b5836a8aa51382fdc5982dbfb7b12c4
+SHA512 (kicad-symbols-10.0.5.tar.bz2) = 42c1d0e4c7e6cbd1e9f120de67251af64ed7778eec40f64150b1cc4b2240e3599953916d2b59b66739b1795cb424e877313ce33f229bb7154a701bcb8e5740c6
+Size (kicad-symbols-10.0.5.tar.bz2) = 4260159 bytes
diff --git a/kicad-templates/COMMIT_MSG b/kicad-templates/COMMIT_MSG
index 1b6112e948..cda3813ce5 100644
--- a/kicad-templates/COMMIT_MSG
+++ b/kicad-templates/COMMIT_MSG
@@ -1,3 +1,3 @@
-cad/kicad-templates: Update to 10.0.3
+cad/kicad-templates: Update to 10.0.5
 
 No changelog available.
diff --git a/kicad-templates/Makefile b/kicad-templates/Makefile
index d1a4c85562..b45b88fed4 100644
--- a/kicad-templates/Makefile
+++ b/kicad-templates/Makefile
@@ -1,6 +1,6 @@
 # $NetBSD: Makefile,v 1.16 2024/11/23 11:11:38 mef Exp $
 
-DISTNAME=	kicad-templates-10.0.3
+DISTNAME=	kicad-templates-10.0.5
 CATEGORIES=	cad
 MASTER_SITES=	${MASTER_SITE_GITLAB:=kicad/libraries/}
 GITLAB_RELEASE=	${PKGVERSION_NOREV}
diff --git a/kicad-templates/distinfo b/kicad-templates/distinfo
index 5046292714..dd720a59f1 100644
--- a/kicad-templates/distinfo
+++ b/kicad-templates/distinfo
@@ -1,5 +1,5 @@
 $NetBSD: distinfo,v 1.15 2024/11/23 11:11:38 mef Exp $
 
-BLAKE2s (kicad-templates-10.0.3.tar.bz2) = b4d414d4defb34112a8257319d3fb7256d4aededea9d6ea9747b61c6b5d0b5e6
-SHA512 (kicad-templates-10.0.3.tar.bz2) = 81983f20949790b2d51e7c320dc87e210e1de8e508989fba90bf77bf09b5eff31def18e920eb0125e1c8421e0c9b353c6ab2e041484c1b21ba9178c52ea62356
-Size (kicad-templates-10.0.3.tar.bz2) = 2883087 bytes
+BLAKE2s (kicad-templates-10.0.5.tar.bz2) = 5f2225c0674382f40d52e4c10f621c60418e04b5e9101e7125b5810a3e59c28c
+SHA512 (kicad-templates-10.0.5.tar.bz2) = e5e1b1cc6232eee3c1abf226857f42370ec093949856a4ec5ebeb1d213bfc5afbf7cc3ea923011633b69a189e0bcf6714375f5187a52575881c82786bcd20ce6
+Size (kicad-templates-10.0.5.tar.bz2) = 2882509 bytes
diff --git a/kicad/COMMIT_MSG b/kicad/COMMIT_MSG
index bfe53bd841..580bd23b2f 100644
--- a/kicad/COMMIT_MSG
+++ b/kicad/COMMIT_MSG
@@ -1,4 +1,20 @@
-cad/kicad: Update to 10.0.3
+cad/kicad: Update to 10.0.5
+
+KiCad 10.0.5 (2026-07-22)
+
+The 10.0.5 stable version contains critical bug fixes and other minor
+improvements since the previous release.
+A list of all of the fixed issues since the 10.0.5 release can be
+found on the KiCad 10.0.5 milestone page.
+
+
+KiCad 10.0.4 (2026-06-21)
+
+The 10.0.4 stable version contains critical bug fixes and other minor
+improvements since the previous release.
+A list of all of the fixed issues since the 10.0.4 release can be
+found on the KiCad 10.0.4 milestone page.
+
 
 KiCad 10.0.3 (2026-05-15)
 
diff --git a/kicad/Makefile b/kicad/Makefile
index 6fa50d207b..9355a28874 100644
--- a/kicad/Makefile
+++ b/kicad/Makefile
@@ -1,6 +1,6 @@
 # $NetBSD: Makefile,v 1.108 2025/01/10 22:49:54 wiz Exp $
 
-V=		10.0.3
+V=		10.0.5
 DISTNAME=	kicad-${V}
 CATEGORIES=	cad
 MASTER_SITES=	${MASTER_SITE_GITLAB:=kicad/code/}
diff --git a/kicad/distinfo b/kicad/distinfo
index c1ff236532..5cbe335aaf 100644
--- a/kicad/distinfo
+++ b/kicad/distinfo
@@ -1,8 +1,8 @@
 $NetBSD: distinfo,v 1.29 2024/11/20 01:29:49 mef Exp $
 
-BLAKE2s (kicad-10.0.3.tar.bz2) = ec978b8cdfbd412857af5269204fdfdfa331c8214c49dcecbdc2f6f9f6780a14
-SHA512 (kicad-10.0.3.tar.bz2) = 784220e13637c32157daeeecb89f8db56861bc39f459d9add7e6e49e9cacd4503d486076fca35157cc58e7eb0ad0d365b6419bf7fe0fdfc55f2acb8a6f812925
-Size (kicad-10.0.3.tar.bz2) = 225465490 bytes
+BLAKE2s (kicad-10.0.5.tar.bz2) = e82880767f8bdf1d0af2a9498f0e8e7886dd445c789d5528b9e31881ad5849c9
+SHA512 (kicad-10.0.5.tar.bz2) = 58897802ba53585f09e7b7991028bcc8b8240a0917d9306f12a63242ce0fb8932cc229e99298b2addcc85486bdd48ac9bc09cde3162b90798538ae0dfe76bc87
+Size (kicad-10.0.5.tar.bz2) = 232792797 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
@@ -26,10 +26,10 @@ 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) = d250941aa5ef197d6cdc6e48dd4dab60d973f767
+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) = 4499b6f22f8fd13275cb97e30b1258cc71d8cdc7
+SHA1 (patch-thirdparty_thread-pool_bs__thread__pool.hpp) = 48593c9946240c5881d96c626fc5448f9498ac20
diff --git a/kicad/patches/patch-pcbnew_CMakeLists.txt b/kicad/patches/patch-pcbnew_CMakeLists.txt
index eb1de896a8..56239a8ca9 100644
--- a/kicad/patches/patch-pcbnew_CMakeLists.txt
+++ b/kicad/patches/patch-pcbnew_CMakeLists.txt
@@ -2,9 +2,9 @@ $NetBSD: patch-pcbnew_CMakeLists.txt,v 1.7 2024/04/26 16:46:29 tnn Exp $
 
 Force proper LDFLAGS for MODULE, as cmake doesn't set rpath for these
 
---- pcbnew/CMakeLists.txt.orig	2026-04-15 15:36:56.000000000 +0000
+--- pcbnew/CMakeLists.txt.orig	2026-07-21 19:13:55.000000000 +0000
 +++ pcbnew/CMakeLists.txt
-@@ -906,6 +906,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>
      )
  
diff --git a/kicad/patches/patch-thirdparty_thread-pool_bs__thread__pool.hpp b/kicad/patches/patch-thirdparty_thread-pool_bs__thread__pool.hpp
index 2eb64d3665..80a19f2f30 100644
--- a/kicad/patches/patch-thirdparty_thread-pool_bs__thread__pool.hpp
+++ b/kicad/patches/patch-thirdparty_thread-pool_bs__thread__pool.hpp
@@ -2,9 +2,26 @@ $NetBSD$
 
 Add NetBSD support.
 
---- thirdparty/thread-pool/bs_thread_pool.hpp.orig	2026-05-05 12:51:17.719894797 +0000
+--- thirdparty/thread-pool/bs_thread_pool.hpp.orig	2026-07-21 19:13:55.000000000 +0000
 +++ thirdparty/thread-pool/bs_thread_pool.hpp
-@@ -96,7 +96,7 @@ import std;
+@@ -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
  
@@ -13,3 +30,193 @@ Add NetBSD support.
      // 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