diff --git a/cad/kicad-devel/Makefile b/cad/kicad-devel/Makefile index 05fe34753bad..296dc4e82ac4 100644 --- a/cad/kicad-devel/Makefile +++ b/cad/kicad-devel/Makefile @@ -1,183 +1,184 @@ PORTNAME= kicad DISTVERSION= r${GIT_SRC_DATE} PORTREVISION= 6 #PORTREVISION= 1 CATEGORIES= cad PKGNAMESUFFIX= -devel DIST_SUBDIR= ${PORTNAME} MAINTAINER= mr@FreeBSD.org COMMENT= Schematic and PCB editing software WWW= http://kicad-pcb.org/ LICENSE= GPLv3 BROKEN_aarch64= Fails to compile: use of undeclared identifier builtin_ia32_emms BROKEN_i386= doesn't buld on pkg builder BUILD_DEPENDS= ${LOCALBASE}/bin/git:devel/git \ ${LOCALBASE}/include/glm/glm.hpp:math/glm \ ${LOCALBASE}/bin/swig:devel/swig LIB_DEPENDS= libboost_thread.so:devel/boost-libs \ libfreetype.so:print/freetype2 \ libfontconfig.so:x11-fonts/fontconfig \ libgit2.so:devel/libgit2 \ libharfbuzz.so:print/harfbuzz \ libngspice.so:cad/ngspice_rework@shlib \ libTKernel.so:cad/opencascade \ libpixman-1.so:x11/pixman \ libpng.so:graphics/png \ libprotobuf.so:devel/protobuf \ libcurl.so:ftp/curl \ libGLEW-wayland.so:graphics/glew-wayland \ libnng.so:net/nng \ libpoppler-glib.so:graphics/poppler-glib \ libspnav.so:misc/libspnav \ libodbc.so:databases/unixODBC CONFLICTS_INSTALL= kicad # bin/_cvpcb.kiface OPTIONS_DEFINE= DOCS PLIST_SUB= OPSYS=${OPSYS} \ DESKTOPDIR=${DESKTOPDIR:S|^${PREFIX}/||} USES= cmake:noninja compiler:c++20-lang cpe desktop-file-utils gl \ gettext gnome pkgconfig python shared-mime-info shebangfix ssl \ tar:bzip2 xorg CPE_VENDOR= kicad CPE_PRODUCT= eda USE_GITLAB= yes GL_ACCOUNT= kicad/code GL_PROJECT= kicad GL_TAGNAME= ${GIT_SRC_HASH} USE_GL= egl gl glu glut opengl USE_WX= 3.2 WX_COMPS= wx python:lib USE_GNOME= atk cairo gtk30 gdkpixbuf pango USE_XORG+= ice pixman x11 xext BINS= cvpcb eeschema gerbview kicad pcbnew EXTRAS2RM= linux-non_unicode linux wings3d LINUX.README \ contrib_makefiles.txt running_kicad_under_W98.txt SHEBANG_FILES= pcbnew/python/wizards/qfp/qfp.py #CXXFLAGS+= --std=c++14 -I${WRKSRC} -I${WRKSRC}/include -I${LOCALBASE}/include -CXXFLAGS+= -g -DBOOST_STACKTRACE_GNU_SOURCE_NOT_REQUIRED # error: "Boost.Stacktrace requires `_Unwind_Backtrace` function. Define `_GNU_SOURCE` macro or `BOOST_STACKTRACE_GNU_SOURCE_NOT_REQUIRED` if _Unwind_Backtrace is available without `_GNU_SOURCE`." +CXXFLAGS+= -g -D_LIBCPP_ENABLE_EXPERIMENTAL -DBOOST_STACKTRACE_GNU_SOURCE_NOT_REQUIRED # error: "Boost.Stacktrace requires `_Unwind_Backtrace` function. Define `_GNU_SOURCE` macro or `BOOST_STACKTRACE_GNU_SOURCE_NOT_REQUIRED` if _Unwind_Backtrace is available without `_GNU_SOURCE`." # -undefined dynamic_lookup CXXFLAGS_powerpc= -O0 CMAKE_ARGS= -DLOCALBASE="${LOCALBASE}" \ -DCMAKE_BUILD_TYPE="Debug" \ -DKICAD_BUILD_I18N=ON \ -DKICAD_TESTING_VERSION=ON \ + -DKICAD_BUILD_QA_TESTS=OFF \ -DKICAD_VERSION=${DISTVERSION} \ -DCMAKE_INCLUDE_PATH="${WRKSRC}/include ${LOCALBASE}/include" \ -DwxWidgets_CONFIG_EXECUTABLE="${WX_CONFIG}" \ -DwxWidgets_USE_DEBUG=ON \ -DwxWidgets_USE_USE_UNICODE=ON \ -DwxWidgets_wxrc_EXECUTABLE=${WXRC_CMD} \ -DKICAD_SCRIPTING=ON \ -DKICAD_SCRIPTING_MODULES=ON \ -DKICAD_SCRIPTING_PYTHON3=ON \ -DKICAD_SCRIPTING_WXPYTHON=ON \ -DKICAD_SCRIPTING_WXPYTHON_PHOENIX=ON \ -DKICAD_SPICE=ON \ -DKICAD_USE_OCE=OFF \ -DKICAD_USE_OCC=ON \ -DKICAD_USE_EGL=ON \ -DKICAD_USE_BUNDLED_GLEW=ON \ -DNANODBC_ENABLE_BOOST=ON \ -DOCC_INCLUDE_DIR=${LOCALBASE}/include/OpenCASCADE USE_LDCONFIG= yes .include "Makefile.git_rev" showversions: @${ECHO} "GIT_SRC_HASH: ${GIT_SRC_HASH}" @${ECHO} "GIT_SRC_DATE: ${GIT_SRC_DATE}" @${ECHO} "DISTDIR: ${DISTDIR}" @${ECHO} "DIST_SUBDIR: ${DIST_SUBDIR}" @${ECHO} "DISTNAME: ${DISTNAME}" @${ECHO} "DISTVERSION: ${DISTVERSION}" # Updating to new rev: # sh files/newVersion.sh # make makesum && make clean # make install #breaks probably due to plist differences # make makeplist > pkg-plist #One has to edit/review the generated plist # make generate-plist && make check-plist # < Check PLIST_FILE_LIST below > tmp: echo "${DATADIR} ${DATADIR:H}" # The CheckCXXSymbolExists module has been shipped with CMake since 3.0 times. # The ancient implementation that this bundled module uses, no longer works # because it uses CMake internals that have gone away in 3.11. post-extract: ${RM} ${WRKSRC}/CMakeModules/CheckCXXSymbolExists.cmake pre-configure: ${REINPLACE_CMD} -e 's|/usr/share/kicad|${DATADIR}|' \ -e 's|/usr/local|${PREFIX}|' \ ${WRKSRC}/common/gestfich.cpp ${REINPLACE_CMD} -e 's|/usr/bin/xdg-open|${LOCALBASE}/bin/xdg-open|' \ ${WRKSRC}/common/pgm_base.cpp post-configure: # ${REINPLACE_CMD} -e 's|#define HAVE_ISO646_H|//#define HAVE_ISO646_H|' \ # ${WRKSRC}/config.h for f in `${FIND} ${WRKSRC} -name \*.make -o -name link.txt` ; do \ ${REINPLACE_CMD} \ -e 's|CC = gcc|#CC = gcc|' \ -e 's|LD = gcc|LD = ${CC}|' \ -e 's|LD = g++|LD = ${CXX}|' \ -e 's|wx-config|${WX_CONFIG}|' \ -e 's|CXX_FLAGS =|CXX_FLAGS = ${WRKSRC}/include -I${LOCALBASE}/include|' \ -e 's|C_FLAGS =|C_FLAGS = ${WRKSRC}/include -I${LOCALBASE}/include|' \ -e 's|LDFLAGS =|LDFLAGS += -L${LOCALBASE}/lib|' \ -e 's|gcc -D|${CC} -D|' \ -e 's/-pthread;-D_THREAD_SAFE/-pthread -D_THREAD_SAFE/g' \ $$f ; \ done ${REINPLACE_CMD} -e 's|/usr/local/bin/xdg-open|${LOCALBASE}/bin/xdg-open|' \ ${WRKSRC}/common/pgm_base.cpp pre-install: @echo "${DATADIR}, ${DOCSDIR}" #post-install: #.for subdir in library modules template # ${CP} -Rp ${WRKDIR}/kicad-library-master/${subdir} ${STAGEDIR}${DATADIR} #.endfor #.for subdir in internat # ${CP} -Rp ${WRKDIR}/kicad-doc/${subdir} ${STAGEDIR}${DOCSDIR} #.endfor PLIST_FILE_LIST= bin/freeroute.jnlp \ bin/cvpcb \ bin/eeschema \ bin/gerbview \ bin/kicad \ bin/pcbnew \ bin/pl_editor \ bin/bitmap2component \ bin/pcb_calculator \ share/mimelnk/application/x-kicad-schematic.desktop \ share/mimelnk/application/x-kicad-project.desktop \ share/icons/hicolor/24x24/mimetypes/application-x-kicad-project.png \ share/icons/hicolor/48x48/apps/kicad.png \ share/icons/hicolor/48x48/mimetypes/application-x-kicad-project.png \ share/icons/hicolor/scalable/apps/kicad.svg \ share/icons/hicolor/scalable/mimetypes/application-x-kicad-project.svg \ share/icons/hicolor/16x16/mimetypes/application-x-kicad-project.png \ share/icons/hicolor/32x32/mimetypes/application-x-kicad-project.png \ share/icons/hicolor/22x22/mimetypes/application-x-kicad-project.png \ share/mime/packages/kicad.xml \ share/applications/kicad.desktop \ share/applications/eeschema.desktop PLIST_DIR_LIST= lib/kicad PLIST_SHAREDDIR_LIST= share/mimelnk/application \ share/mimelnk .include diff --git a/cad/kicad-devel/Makefile.git_rev b/cad/kicad-devel/Makefile.git_rev index c24d462642ce..8025c526dcd6 100644 --- a/cad/kicad-devel/Makefile.git_rev +++ b/cad/kicad-devel/Makefile.git_rev @@ -1,3 +1,3 @@ -GIT_SRC_HASH= 30b893428cf0f68e6cb37d7218c8d02c7bd10cab -GIT_SRC_DATE= 20260806131654 -GIT_SRC_DATE2= 2026.08.06 +GIT_SRC_HASH= 43163107faf34399a0a96848c9190cc02428a51e +GIT_SRC_DATE= 20260821233549 +GIT_SRC_DATE2= 2026.08.21 diff --git a/cad/kicad-devel/distinfo b/cad/kicad-devel/distinfo index 2632aaf46361..91a6dd2f7b0c 100644 --- a/cad/kicad-devel/distinfo +++ b/cad/kicad-devel/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1786017502 -SHA256 (kicad/kicad/code-kicad-30b893428cf0f68e6cb37d7218c8d02c7bd10cab_GL0.tar.gz) = 74bead5df6797f9c7f994f5b3b9f1e59054f45240b0637b87f70cf7c0f024e6d -SIZE (kicad/kicad/code-kicad-30b893428cf0f68e6cb37d7218c8d02c7bd10cab_GL0.tar.gz) = 304598459 +TIMESTAMP = 1787353344 +SHA256 (kicad/kicad/code-kicad-43163107faf34399a0a96848c9190cc02428a51e_GL0.tar.gz) = e032785b89a840643708556219387404548234cef3b8f7a7b52cf96c09a012bd +SIZE (kicad/kicad/code-kicad-43163107faf34399a0a96848c9190cc02428a51e_GL0.tar.gz) = 305606876 diff --git a/cad/kicad-devel/files/patch-3d-viewer_3d__rendering_opengl_create__scene.cpp b/cad/kicad-devel/files/patch-3d-viewer_3d__rendering_opengl_create__scene.cpp new file mode 100644 index 000000000000..e1ca43bde75b --- /dev/null +++ b/cad/kicad-devel/files/patch-3d-viewer_3d__rendering_opengl_create__scene.cpp @@ -0,0 +1,12 @@ +--- 3d-viewer/3d_rendering/opengl/create_scene.cpp.orig 2026-08-22 14:48:47 UTC ++++ 3d-viewer/3d_rendering/opengl/create_scene.cpp +@@ -1155,7 +1155,9 @@ void RENDER_3D_OPENGL::startBgWorker() + [this]( std::stop_token aStopToken ) + { + // Avoid lag in main (UI) thread ++#ifdef BS_THREAD_POOL_NATIVE_EXTENSIONS + BS::this_thread::set_os_thread_priority( BS::os_thread_priority::below_normal ); ++#endif + + bgWorker( aStopToken ); + } ); diff --git a/cad/kicad-devel/files/patch-eeschema_sch__io_database_sch__io__database.cpp b/cad/kicad-devel/files/patch-eeschema_sch__io_database_sch__io__database.cpp new file mode 100644 index 000000000000..7e01f0de98bb --- /dev/null +++ b/cad/kicad-devel/files/patch-eeschema_sch__io_database_sch__io__database.cpp @@ -0,0 +1,13 @@ +--- eeschema/sch_io/database/sch_io_database.cpp.orig 2026-08-22 14:36:37 UTC ++++ eeschema/sch_io/database/sch_io_database.cpp +@@ -417,8 +417,9 @@ void SCH_IO_DATABASE::backgroundRefreshWorker() + + void SCH_IO_DATABASE::backgroundRefreshWorker() + { ++#ifdef BS_THREAD_POOL_NATIVE_EXTENSIONS + BS::this_thread::set_os_thread_name( "dblib bg" ); +- ++#endif + while( m_refreshRunning.load() ) + { + long long maxAge = 0; diff --git a/cad/kicad-devel/files/patch-thirdparty_compoundfilereader_compoundfilereader.h b/cad/kicad-devel/files/patch-thirdparty_compoundfilereader_compoundfilereader.h index 9106dd419720..3a3cad7e1c15 100644 --- a/cad/kicad-devel/files/patch-thirdparty_compoundfilereader_compoundfilereader.h +++ b/cad/kicad-devel/files/patch-thirdparty_compoundfilereader_compoundfilereader.h @@ -1,27 +1,27 @@ ---- thirdparty/compoundfilereader/compoundfilereader.h.orig 2026-03-05 18:35:46 UTC +--- thirdparty/compoundfilereader/compoundfilereader.h.orig 2026-08-21 21:35:49 UTC +++ thirdparty/compoundfilereader/compoundfilereader.h @@ -261,7 +261,7 @@ struct helper } }; -typedef std::basic_string utf16string; +typedef std::basic_string utf16string; typedef std::function EnumFilesCallback; -@@ -379,7 +379,7 @@ class CompoundFileReader (private) +@@ -398,7 +398,7 @@ class CompoundFileReader (private) utf16string newDir = dir; if (dir.length() != 0) newDir.append(1, '\n'); - newDir.append(entry->name, entry->nameLen / 2); + newDir.append(reinterpret_cast(entry->name), entry->nameLen / 2); EnumNodes(GetEntry(entry->childID), currentLevel + 1, maxLevel, newDir, callback); } -@@ -610,4 +610,4 @@ class PropertySetStream (private) +@@ -629,4 +629,4 @@ class PropertySetStream (private) const PROPERTY_SET_STREAM_HDR* m_hdr; }; -} \ No newline at end of file +} diff --git a/cad/kicad-devel/files/patch-thirdparty_thread-pool_bs__thread__pool.hpp b/cad/kicad-devel/files/patch-thirdparty_thread-pool_bs__thread__pool.hpp index 6b06c8ce0b2f..9a5a52285782 100644 --- a/cad/kicad-devel/files/patch-thirdparty_thread-pool_bs__thread__pool.hpp +++ b/cad/kicad-devel/files/patch-thirdparty_thread-pool_bs__thread__pool.hpp @@ -1,11 +1,38 @@ ---- thirdparty/thread-pool/bs_thread_pool.hpp.orig 2025-09-14 18:08:58 UTC +--- thirdparty/thread-pool/bs_thread_pool.hpp.orig 2026-08-21 21:35:49 UTC +++ thirdparty/thread-pool/bs_thread_pool.hpp +@@ -82,7 +82,7 @@ import std; + #include + #undef min + #undef max +- #elif defined(__linux__) || defined(__APPLE__) ++ #elif defined(__linux__) || defined(__APPLE__) || defined (__FreeBSD__) + #include + #include + #include @@ -96,7 +96,7 @@ import std; #endif #endif -#if defined(__linux__) +#if defined(__linux__) || defined (__FreeBSD__) // On Linux, defines macros called `major` and `minor`. We undefine them here so the `version` struct can work. #ifdef major #undef major +@@ -663,7 +663,7 @@ inline bool set_os_process_affinity(const std::vector< + for (std::size_t i = 0; i < std::min(affinity.size(), sizeof(DWORD_PTR) * 8); ++i) + process_mask |= (affinity[i] ? (1ULL << i) : 0ULL); + return SetProcessAffinityMask(GetCurrentProcess(), process_mask) != 0; +- #elif defined(__linux__) ++ #elif defined(__linux__) || defined (__FreeBSD__) + cpu_set_t cpu_set; + CPU_ZERO(&cpu_set); + for (std::size_t i = 0; i < std::min(affinity.size(), CPU_SETSIZE); ++i) +@@ -865,7 +865,7 @@ class [[nodiscard]] this_thread (public) + if (result == 0) + return std::nullopt; + return name; +- #elif defined(__linux__) || defined(__APPLE__) ++ #elif defined(__linux__) || defined(__APPLE__) || defined (__FreeBSD__) + #ifdef __linux__ + // On Linux thread names are limited to 16 characters, including the null terminator. + constexpr std::size_t buffer_size = 16;