{"id":1229,"date":"2026-08-18T12:34:29","date_gmt":"2026-08-18T10:34:29","guid":{"rendered":"https:\/\/www.pinguytaz.net\/?p=1229"},"modified":"2026-08-18T12:34:29","modified_gmt":"2026-08-18T10:34:29","slug":"compilando-fritzing-en-archlinux","status":"publish","type":"post","link":"https:\/\/www.pinguytaz.net\/index.php\/2026\/08\/18\/compilando-fritzing-en-archlinux\/","title":{"rendered":"Compilando Fritzing en ArchLinux"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Para instalar Fritzing en Archlinux no la tenemos en los repositorios oficiales as\u00ed que nos quedan las siguientes opciones una es AppImage, de pago, bajada de la propia pagina pero no me suelen gustar las AppImage otra opci\u00f3n es usar AUR ya sea con \u00abyay\u00bb o directamente pero despu\u00e9s de las ultimas noticias de malware no me siento seguro.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">As\u00ed que decid\u00ed volver a la compilaci\u00f3n directa de programas que no est\u00e1n en los repositorios oficiales y si estan en github perfecto pues los actualizo cuando deseo. La verdad es que me base un poco en que hacia AUR pero eso me obligo a comprobar por completo el AUR y ademas solucione algunos problemas que vi.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Sin mas empezamos con sus diferentes fases:<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">1.- Instalar las dependencias<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Lo primero que deberemos hacer es instalar los programas necesarios para compilar, as\u00ed como librer\u00edas y dependencias.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo pacman -S base-devel cmake \nsudo pacman -S qt6-5compat \nsudo pacman -S --asdeps boost git patchelf qt6-tools\nsudo pacman -S glibc libgcc libgit2 libstdc++ \nsudo pacman -S qt6-base qt6-serialport qt6-svg quazip-qt6 ngspice zlib<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Seria interesante tambi\u00e9n instalar polyclipping pero no se encuentra en los repositorios oficiales, as\u00ed que lo resolveremos descargando los ficheros de clipperV1, como veremos m\u00e1s adelante.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Con las dependencias instaladas crearemos un directorio de trabajo, que es donde descargaremos los ficheros fritzing y librer\u00edas necesarias que no est\u00e1n disponibles en los repositorios oficiales.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>mkdir -p ~\/Fritzing\ncd ~\/Fritzing<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">2.- Descarga de fuentes y librer\u00edas necesarias<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Lo primero es clonar los <strong>repositorios de fritzing<\/strong>, tanto del programa como componentes.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>git clone https:\/\/github.com\/fritzing\/fritzing-app.git\ngit clone https:\/\/github.com\/fritzing\/fritzing-parts.git<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">La primera librer\u00eda que necesitaremos, en realidad solo las cabeceras sera las de SVG++ ademas de descargarlas la desempaquetaremos y las instalaremos en un directorio dentro del nuestro de trabajo con un nombre especial que se utilizara en los ficheros de compilaci\u00f3n que tocaremos.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>wget https:\/\/github.com\/svgpp\/svgpp\/archive\/refs\/tags\/v1.3.1.tar.gz\nmv v1.3.1.tar.gz svgpp-1.3.1.tar.gz  \ntar -xvf svgpp-1.3.1.tar.gz<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Despu\u00e9s las cabeceras de clipper, y su fuente y se instalara en un directorio especial, que crearemos, de la aplicaci\u00f3n fritzing.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>mkdir -p fritzing-app\/src\/lib\/clipper\n\ncurl -sSL https:\/\/sourceforge.net\/p\/polyclipping\/code\/HEAD\/tree\/trunk\/cpp\/clipper.hpp?format=raw -o fritzing-app\/src\/lib\/clipper\/clipper.hpp\n\ncurl -sSL https:\/\/sourceforge.net\/p\/polyclipping\/code\/HEAD\/tree\/trunk\/cpp\/clipper.xpp?format=raw -o fritzing-app\/src\/lib\/clipper\/clipper.xpp<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">3.- Parcheo de c\u00f3digo y ficheros configuraci\u00f3n<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Lo primero sera situarnos en el directorio de aplicaci\u00f3n que se creo con git clone..<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>cd ~\/Fritzing\/fritzing-app<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Primer fichero a modificar phoenix.pro, que es el fichero principal de proyecto de QMake (QMake Project File). para saber qu\u00e9 y c\u00f3mo compilar. En el se definen las estructuras de archivos y gestiona los modulos Qt, que es lo que realmente nos importa pues a\u00f1adiremos el modulo \u00ab<strong>core5compat<\/strong>\u00bb para poder usar \u00ab<strong>quazip-qt6<\/strong>\u00ab.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code><strong>phoenix.pro<\/strong>\n   A\u00f1adir a QT core5compat para tener quazip-qt6\n\t\t\tQT += concurrent core gui network printsupport serialport sql svg widgets xml svgwidgets openglwidgets core5compat\n   Borrar las siguiente slineas para evitar el requerimiento de versi\u00f3n QT\n      QT_LEAST=6.5.3\n      QT_MOST=6.10.10\n      !versionAtLeast(QT_VERSION, $${QT_LEAST}):error(\"Use at least Qt version $${QT_LEAST}\")\n      !versionAtMost(QT_VERSION, $${QT_MOST}):error(\"Use at most Qt version $${QT_MOST}\")<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Ahora continuaremos con otros archivos que son auxiliares de <strong>phoenix.pro<\/strong>. El primer fichero es \u00ab<strong>pri\/quazipdetect.pri<\/strong>\u00bb antes de eso veremos el PATH de QuaZip-Qy6 con el comando \u00ab<strong><em>pacman -Ql quazip-qt6 | grep include<\/em><\/strong>\u00ab<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code><strong>pri\/quazipdetect.pri<\/strong>   (Dejamos solo este c\u00f3digo)\n   SOURCES += \\\n       src\/zlibdummy.c \\\n\t \n   message(\"including Arch's quazip library\")\n   INCLUDEPATH += \/usr\/include\/QuaZip-Qt6-1.7.2\/\n   LIBS += -lquazip1-qt6<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Continuamos con \u00ab<strong>pri\/spicedetect.pri<\/strong>\u00bb que nos permitir\u00e1 encontrar ngspice y debe quedar de la siguiente forma.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code><strong>pri\/spicedetect.pri<\/strong>     \n   message(\"Using customized ngspice detect script.\")\n   NGSPICEPATH = \"\/usr\/include\/ngspice\/\"\n\t \n   exists($$NGSPICEPATH) {\n      message(\"using $${NGSPICEPATH}\")\n      INCLUDEPATH += $$NGSPICEPATH\n   } else {\n       error(\"ngspice not found in $${NGSPICEPATH}\")\n   }<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">El siguiente archivo .pri a modificar es <strong>clipper1detect.pri <\/strong>que nos permitir\u00e1 encontrar los encabezados y fuentes de clipper.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>pri\/clipper1detect.pri    \n   # 1. Definir el m\u00f3dulo como presente para el proyecto\n   DEFINES += MINGW_CLIPPER\n   # 2. Agregar la carpeta local al include path para que encuentre clipper.hpp\n   INCLUDEPATH += $$PWD\/..\/src\/lib\/clipper\n   # 3. Incluir las fuentes de Clipper en el proceso de compilaci\u00f3n\n   HEADERS += $$PWD\/..\/src\/lib\/clipper\/clipper.hpp\n   SOURCES += $$PWD\/..\/src\/lib\/clipper\/clipper.cpp<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Ahora antes de compilar nos queda modificar un ultimo fichero que es \u00ab<strong>org.fritzing.Fritzing.desktop<\/strong>\u00bb que nos permitir\u00e1 lanzar Frtizing.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sed -i 's\/Exec=Fritzing\/Exec=env QT_AUTO_SCREEN_SCALE_FACTOR=0 Fritzing\/' org.fritzing.Fritzing.desktop<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">4.- Compilaci\u00f3n<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Ya empezamos con lo fuerte, pues tardara un ratito, que es la compilaci\u00f3n decir que en caso de que se aborte y queramos limpiar lo compilado porque modifiquemos algo en un fichero ejecutaremos \u00ab<strong>rm -rf build .qmake.stash<\/strong>\u00ab.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Las fases, siempre que estemos en \u00abfritzing-app\u00bb, seran:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Generar las traducciones<\/li>\n\n\n\n<li>Crear y situarnos en la carpeta de compilaci\u00f3n<\/li>\n\n\n\n<li>Generar Makefile QT6<\/li>\n\n\n\n<li>Compilar<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>\/usr\/bin\/lrelease-pro6 phoenix.pro\nmkdir build &amp;&amp; cd build\nqmake6  ..\nmake<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">5.- Instalaci\u00f3n<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Una vez llegado a este punto solo nos queda instalarlo y podremos borrar el directorio de trabajo, yo no lo borro pero todo depende del espacio que dispongamos en el disco as\u00ed si ejecuto \u00ab<strong>git pull<\/strong>\u00bb en \u00ab<strong>fritzing-app<\/strong>\u00bb y veo que lo han actualizado lo recompilo.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">En este caso nos situaremos en el directorio build que es donde se compilo el programa, seguramente todav\u00eda estemos en el. Las fases ser\u00e1n:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Instala los ficheros compilados.<\/li>\n\n\n\n<li>Copia la ruta de componentes a las rutas del sistema.<\/li>\n\n\n\n<li>Generamos la Base de Datos \u00abparts.db\u00bb<\/li>\n\n\n\n<li>Borramos temporales de las partes innecesarios.<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo make install \n\nsudo cp -dr ..\/..\/fritzing-parts \/usr\/share\/fritzing\/\n\nsudo Fritzing -db \/usr\/share\/fritzing\/fritzing-parts\/parts.db -pp \/usr\/share\/fritzing\/fritzing-parts -f  \/usr\/share\/fritzing -platform offscreen\n\nsudo rm -rf \/usr\/share\/fritzing\/fritzing-parts\/.git{,ignore}<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Esperemos que os sea \u00fatil, es cierto que es un poco m\u00e1s costoso en tiempo que un AUR directamente y que si se actualiza debemos de comprobarlo nosotros a mano con \u00abgit pull\u00bb pero la verdad es que se aprende mucho y me quita el miedo de AUR.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Para instalar Fritzing en Archlinux no la tenemos en los repositorios oficiales as\u00ed que nos quedan las siguientes opciones una es AppImage, de pago, bajada de la propia pagina pero no me suelen gustar las AppImage otra opci\u00f3n es usar AUR ya sea con \u00abyay\u00bb o directamente pero despu\u00e9s de las ultimas noticias de malware [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":1230,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"site-container-style":"default","site-container-layout":"default","site-sidebar-layout":"default","disable-article-header":"default","disable-site-header":"default","disable-site-footer":"default","disable-content-area-spacing":"default","footnotes":""},"categories":[84,7],"tags":[228,227,226,231,36,230,229],"class_list":["post-1229","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-lenguajes","category-linux","tag-aur","tag-compilacion","tag-fritzing","tag-github","tag-linux","tag-qt","tag-svg"],"_links":{"self":[{"href":"https:\/\/www.pinguytaz.net\/index.php\/wp-json\/wp\/v2\/posts\/1229","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.pinguytaz.net\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.pinguytaz.net\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.pinguytaz.net\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.pinguytaz.net\/index.php\/wp-json\/wp\/v2\/comments?post=1229"}],"version-history":[{"count":5,"href":"https:\/\/www.pinguytaz.net\/index.php\/wp-json\/wp\/v2\/posts\/1229\/revisions"}],"predecessor-version":[{"id":1235,"href":"https:\/\/www.pinguytaz.net\/index.php\/wp-json\/wp\/v2\/posts\/1229\/revisions\/1235"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.pinguytaz.net\/index.php\/wp-json\/wp\/v2\/media\/1230"}],"wp:attachment":[{"href":"https:\/\/www.pinguytaz.net\/index.php\/wp-json\/wp\/v2\/media?parent=1229"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.pinguytaz.net\/index.php\/wp-json\/wp\/v2\/categories?post=1229"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.pinguytaz.net\/index.php\/wp-json\/wp\/v2\/tags?post=1229"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}