@Metaphysix: Thanks a lot for your analysis! This will be fixed in 1.0.7-2.
Update: Installing ttf-droid does not fix the segfault for me. I think ggilestro is right and this is a Qt bug. We'll have to wait for the Qt update.
| Git Clone URL: | https://aur.archlinux.org/fritzing.git (read-only, click to copy) |
|---|---|
| Package Base: | fritzing |
| Description: | PCB layout prototyping application |
| Upstream URL: | http://fritzing.org |
| Licenses: | GPL-3.0-only AND CC-BY-SA-3.0 AND BSL-1.0 |
| Submitter: | phects |
| Maintainer: | Bevan |
| Last Packager: | Bevan |
| Votes: | 247 |
| Popularity: | 0.87 |
| First Submitted: | 2009-05-31 14:31 (UTC) |
| Last Updated: | 2026-04-26 16:54 (UTC) |
@Metaphysix: Thanks a lot for your analysis! This will be fixed in 1.0.7-2.
Update: Installing ttf-droid does not fix the segfault for me. I think ggilestro is right and this is a Qt bug. We'll have to wait for the Qt update.
Hi, on a clean Arch system without ttf-droid installed, Fritzing 1.0.7
from this package crashes (SIGSEGV in Qt6Svg/QFontEngineFT::loadGlyph) as soon as I hover a part in the Parts
bin — the Inspector tries to render an icon for an SVG that references
Droid Sans and the missing-font path crashes the renderer.
The fritzing-parts library references Droid Sans (and DroidSans,
Droid Sans Mono) in hundreds of SVGs. ttf-droid is in extra/, so
adding it as a hard depends (or at least optdepends=('ttf-droid: text
rendering in part SVGs')) would prevent this for everyone.
Reproducer on a system without the font:
pacman -Rns ttf-droid (if installed)Fritzing → hover any basic part → segfaultcoredumpctl info $(pidof Fritzing) → stack ends in
cachedIconFromSvg → QSvgText::draw_helper → QFontEngineFT::loadGlyphThanks for maintaining the package!
Re: SIGSEGV when hovering over certain parts (resistor, transistor, etc.)
This crash affects everyone on Qt 6.10.x and 6.11.0. It's a Qt bug, not a Fritzing bug.
Root cause: QFontEngineFT::loadGlyph() in qt6-base crashes when FT_Render_Glyph() fails (error 0x62 = raster overflow). The error is logged (render glyph failed err=62...) but execution continues to memcpy from slot->bitmap.buffer which is NULL after the render failure, causing a SIGSEGV. This is triggered by certain SVG tooltip previews containing text elements that cause FreeType to overflow.
Upstream fix: QTBUG-145310, fixed in Gerrit #724504. Picked to 6.8, 6.10, and 6.11 branches. Will ship in Qt 6.11.1 (expected end of April 2026).
Workaround until 6.11.1: Rebuild qt6-base from the Arch GitLab PKGBUILD, adding one line to prepare():
git -C $_pkgfn cherry-pick -n 1466f88633b2c29a6159a0c2eacd0c0d6601aa5e
Then makepkg -si and add qt6-base to IgnorePkg in /etc/pacman.conf until 6.11.1 lands.
Note on the build: The lrelease-pro path issue has already been fixed by Bevan in the upstream PKGBUILD — just update with yay -S fritzing.
same problem as @Abelkrijgtalles related:
lulzcasz@earth ~> Fritzing QFont::setPixelSize: Pixel size <= 0 (0) QFont::setPixelSize: Pixel size <= 0 (0) render glyph failed err=62 face=0x55e35e218a00, glyph=20 fish: Job 1, 'Fritzing' terminated by signal SIGSEGV (Address boundary error)
im running Arch with KDE.
Hi, I'm running Hyprland, and when I hover over the available core/simulator parts in the sidebar, Fritzing freezes up and crashes while presumably wanting to render some kind of tooltip. Is there any fix for this?
EDIT: This only happens on a very specific set of parts. I've seen it crash on a resistor and a transistor. I've seen it not crash on a standard LED. This is the console output:
QFont::setPixelSize: Pixel size <= 0 (0)
QFont::setPixelSize: Pixel size <= 0 (0)
render glyph failed err=62 face=0x5643593b4670, glyph=21
Segmentatiefout (geheugendump gemaakt) env QT_AUTO_SCREEN_SCALE_FACTOR=0 Fritzing %F Turns out it's a segmentation fault
EDIT: I've also made a GitHub issue
EDIT: They've now closed the issue because I won't pay
@Abelkrijgtalles: Thanks for your message. I updated the PKGBUILD to use the correct symlink to Qt6 release-pro in /usr/bin.
Hi, I don't have lrelease-pro installed, and because of that it won't build. Could you please add the needed package to build dependencies or remove this line? Thank you
EDIT: I see I have it in /usr/lib/qt6/bin/ instead of /usr/lib/qt6. qt6-tools is already added as a make-depend. Adding bin/ to the end works and installs fritzing.
@mozurin: I somehow totally missed your message. Thanks a lot for tracking this down and providing a fix! I included it in version 1.0.6-2.
A small patch was needed to build it correctly with Qt 6.10.1.
diff -ur a/src/commands.cpp b/src/commands.cpp
--- a/src/commands.cpp 2025-12-18 12:09:48.997210080 +0900
+++ b/src/commands.cpp 2025-12-18 11:55:07.500341673 +0900
@@ -509,7 +509,7 @@
+ BaseCommand::getParamString() +
QString(" id:%1 by:%2")
.arg(m_itemID)
- .arg(m_orientation);
+ .arg(static_cast<int>(m_orientation));
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
@@ -1830,7 +1830,8 @@
}
result += QString(" id:%1 degrees:%2 orientation:%3")
- .arg(m_itemID).arg(m_degrees).arg(m_orientation);
+ .arg(m_itemID).arg(m_degrees)
+ .arg(static_cast<int>(m_orientation));
return result;
}
diff -ur a/src/items/itembase.cpp b/src/items/itembase.cpp
--- a/src/items/itembase.cpp 2025-12-18 13:03:05.312347789 +0900
+++ b/src/items/itembase.cpp 2025-12-18 13:05:04.103320836 +0900
@@ -2006,7 +2006,7 @@
.arg(this->instanceTitle())
.arg(this->viewLayerID())
.arg(this->viewLayerPlacement())
- .arg(this->wireFlags())
+ .arg(static_cast<int>(this->wireFlags()))
.arg((long) dynamic_cast<const QGraphicsItem *>(this), 0, 16)
.arg(m_viewID)
.arg(this->zValue())
diff -ur a/src/sketch/sketchwidget.cpp b/src/sketch/sketchwidget.cpp
--- a/src/sketch/sketchwidget.cpp 2025-12-18 13:28:03.577838697 +0900
+++ b/src/sketch/sketchwidget.cpp 2025-12-18 13:28:42.241482017 +0900
@@ -1384,7 +1384,7 @@
.arg(newID)
.arg(fromPos.x()).arg(fromPos.y())
.arg(toPos.x()).arg(toPos.y())
- .arg(wireFlags)
+ .arg(static_cast<int>(wireFlags))
.arg(from->attachedToTitle()).arg(from->connectorSharedID())
.arg(to->attachedToTitle()).arg(to->connectorSharedID())
.arg(m_viewID)
I've encountered an issue where the build fails if the build/ directory already exists from a previous build. This happens when rebuilding without a clean build directory.
The fix is to use mkdir -p build instead of mkdir build, ensuring the directory exists without failing. Here's the patch:
diff --git a/PKGBUILD b/PKGBUILD
index 9cc4e4c..08f299a 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -80,7 +80,7 @@ build() {
# build translations
/usr/lib/qt6/lrelease-pro phoenix.pro
- mkdir build && cd build
+ mkdir -p build && cd build
qmake6 ..
make
}
Let me know if you need any more details. Thanks!
Pinned Comments
Bevan commented on 2023-09-25 08:41 (UTC) (edited on 2023-11-02 19:48 (UTC) by Bevan)
Please do not flag this package out of date unless there is source code available for a newer version than represented here. Unfortunately, upstream is very reluctant in releasing their GPL3 licensed code to the public.
See:
https://github.com/fritzing/fritzing-app/issues/3876
https://github.com/fritzing/fritzing-app/issues/3881
https://forum.fritzing.org/t/can-t-find-source-code/19723
https://github.com/fritzing/fritzing-app/issues/4070
Bevan commented on 2022-04-02 08:37 (UTC)
ericfont: No need to downgrade libgit2. You just need to rebuild Fritzing after the libgit2 update. This happens regularly.