Instalar (Compilar) Inkscape 1.1 desde código fuente en MX Linux 19

Actualización 9 Septiembre 2021.- Ya está disponible la Beta 2 de MX Linux 21 (en Testing) (basado en Debian 11 Bullseye) la cual ahora mismo estoy usando y allí está disponible para instalar Inkscape 1.1 (pronto estará lista la versión estable y en la página de MX Linux la publicarán)

Nota: También antiX 21(a esta fecha 20210909 en Beta 2) pero no se si allí se pueda instalar Inkscape 1.1


El siguiente tutorial es para instalar Inkscape 1.1 en MX Linux 19 de 32 bits que está basado en Debian 10 Buster, porque no hay una AppImage de la versión 1.1 para 32 bits

Nota: Para los usuarios de 64 bits que quieran usar la versión 1.1 sólo deben descargar la AppImage desde https://inkscape.org/es/release/all/gnulinux/appimage/)


ESTAS INSTRUCCIONES DE COMPILACIÓN PODRÍAN FUNCIONAR EN OTROS LINUX

Como estoy haciendo este tutorial en MX Linux 19 de 32 bits que está basado en Debian 10 Buster, en otros sistemas operativos basados en éste podría funcionar, como son: Deepin, KaliSparkyParrotTailsQ4OSPureOSVoyager LiveVolumioRaspbianWhonixSlaxSteamOSAV Linux,  SolydXK,  PardusProxmoxAcademic GNU/LinuxUnivention Corporate ServerDebian Edu/Skolelinux, antiX 19, etc

INSTRUCCIONES

Si tenía instalado Inkscape desinstalarlo, ponga en una terminal:

sudo apt remove inkscape



DEPENDENCIAS PARA GCC 9.3.0 INKSCAPE 1.1

Copie las siguientes 18 líneas a una terminal y ejecútelas con ENTER:

sudo apt-get install build-essential cmake intltool pkg-config libtool ccache \
doxygen git clang-format clang-tidy jq clang-tools libpotrace-dev libcdr-dev \
liblcms2-dev libwpg-dev libvisio-dev cython libgtest-dev wget python3-dev \
libart-2.0-dev libaspell-dev libblas3 liblapack3 libcdr-dev libdouble-conversion-dev \
libgc-dev libgdl-3-dev libglib2.0-dev libgtk-3-dev libgtkmm-3.0-dev libgspell-1-dev \
libgtkspell3-3-dev libhunspell-dev libjemalloc-dev liblcms2-dev libmagick++-dev \
libpango1.0-dev libpng-dev libpotrace-dev libreadline-dev librevenge-dev \
libsigc++-2.0-dev libsoup2.4-dev libvisio-dev libwpg-dev libxslt1-dev python-lxml \
zlib1g-dev google-mock fonts-dejavu jq python-yaml clang-tools software-properties-common \
libart-2.0-dev libaspell-dev libblas3 liblapack3 libboost-dev libboost-filesystem-dev \
libboost-python-dev libcdr-dev libdouble-conversion-dev libgdl-3-dev libglib2.0-dev \
libgsl-dev libgtk-3-dev libgtkmm-3.0-dev libgtkspell3-3-dev libhunspell-dev \
libjemalloc-dev liblcms2-dev libmagick++-dev libpango1.0-dev libpng-dev libpoppler-glib-dev \
libpoppler-private-dev libpotrace-dev libreadline-dev librevenge-dev libsigc++-2.0-dev \
libsoup2.4-dev libvisio-dev libwpg-dev libxml-parser-perl libxml2-dev libxslt1-dev \
zlib1g-dev google-mock fonts-dejavu aspell imagemagick libwmf-bin perlmagick \
python3-pip python3-numpy python3-pil python3-lxml python3-serial python3-scour \
adwaita-icon-theme




INSTALAR GCC 9.3.0


1.) Es necesario para compilar Inkscape 1.1, descargar el código fuente desde:

http://ftp.mirrorservice.org/sites/sourceware.org/pub/gcc/releases/gcc-9.3.0/

Nota: Este 9.3.0 está en el mirror en github https://github.com/gcc-mirror/gcc/releases/tag/releases%2Fgcc-9.3.0

2.) PREREQUISITOS
luego descomprimir el archivo y entrar en el directorio en una terminal y poner:

./contrib/download_prerequisites



3.) COMPILAR
y después que se descarguen todos los prerequisitos poner:

./configure --disable-multilib --prefix=/usr
make -j 4
make install


Explicación.- Hay algo importante de explicar aquí acerca de por qué he configurado la instalación a /usr, eso es porque si no se pone esa línea "--prefix=/usr" la instalación se haría en /usr/local y allí el ejecutable se instalaría en /usr/local/bin y como en el sistema operativo tenemos por defecto instalado un gcc y este tiene su ejecutable en /usr/bin pues no funcionará el gcc 0.9.3 sino el que viene instalado en su sistema operativo, esa es la razón (eso porque no podemos desinstalar nunca el gcc que viene instalado). Al hacer la instalación así como la he configurado será reemplazado el ejecutable de gcc por el que estamos compilando.


Nota:
Esta compilación puede demorar 4,5,6,7,8,9 horas o más, depende del procesador de su ordenador. Les aconsejo que dejen toda la noche haciendo esto mejor para que al día siguiente ya esté compilado. También les comento que al poner el prefix en usr esta instalación borrará los archivos del gcc que viene instalado por defecto en el Sistema Operativo

4.) VER SI SE INSTALÓ
y para ver esta versión que desde ahora se debe estar usando en el sistema:

gcc --version


5.) EXPLICACIÓN DEL ENLACE SIMBÓLICO A LIBSTDC++.SO.6
 gcc 9.3.0 (específicamente esta versión) instala una librería que después de compilado e instalado necesita Inkscape 1.1 para poder ser lanzado, la instala en:

/usr/lib/libstdc++.so.6.0.28

En MX Linux 19 de 32 bits está instalada por defecto el enlace de librería:

/usr/lib/i386-linux-gnu/libstdc++.so.6

que lleva a:

/usr/lib/i386-linux-gnu/libstdc++.so.6.0.25

Esto pues en el Sistema Operativo MX Linux 19 basado en Debian 10 Buster de 32 bits el archivo: libstdc++.so.6 en realidad es un enlace que lleva a libstdc++.so.6.0.25


6.) SOLUCION A ENLACE SIMBÓLICO CORRECTO A LIBSTDC++.SO.6
Para resolver esto y que pueda funcionar Inkscape debemos desabilitar el enlace /usr/lib/i386-linux-gnu/libstdc++.so.6 creando un backup

sudo mv /usr/lib/i386-linux-gnu/libstdc++.so.6 /usr/lib/i386-linux-gnu/libstdc++.so.6.back


y luego enlazando la librería de gcc 9.3.0 libstdc++.so.6.0.28 al nombre que necesitamos de librería: libstdc++.so.6

poner en la terminal únicamente para gcc 9.3.0 lo siguiente:

sudo ln -s /usr/lib/libstdc++.so.6.0.28 /usr/lib/i386-linux-gnu/libstdc++.so.6


Nota para 64 bits: Si alguien quiere compilar esto en 64 bits allí la ruta es /usr/lib/x86_64-linux-gnu/ y para /usr/lib/ puede que deba usar /usr/lib64 eso debe testearlo,pues yo no lo he hecho.

Nota por un caso en el futuro: Si algún día enviaran una actualización para gcc y si al momento de actualizar su sistema operativo ésta se instalara, ella borrará la que hemos hecho nosotros, así que para solucionar eso hay que entrar desde una terminal donde está la carpeta build que creamos dentro del código fuente de gcc 0.9.3 y allí poner:
sudo make install
luego usar los pasos de la "6.) SOLUCION A ENLACE SIMBÓLICO CORRECTO A LIBSTDC++.SO.6"
e igual por un caso en algún momento no funcione Inkscape, arranquenlon desde la terminal con:
inkscape
y luego si no arranca pongan:
gcc -version
para ver qué versión está instalada y si no es la que instalamos la 0.9.3 repitan: "6.) SOLUCION A ENLACE SIMBÓLICO CORRECTO A LIBSTDC++.SO.6"


Desisnstalar gcc 0.3.9

Según leí en el archivo de ayuda que viene dentro del código fuente:

/gcc/gcc-9.3.0/INSTALL/index.html

"Please note that GCC does not support ‘make uninstall’ and probably won’t do so in the near future as this would open a can of worms. Instead, we suggest that you install GCC into a directory of its own and simply remove that directory when you do not need that specific version of GCC any longer, and, if shared libraries are installed there as well, no more binaries exist that use them. "

no tiene comando de desinstalación.


COMPILANDO INKSCAPE

Descargar el código fuente de Inkscape 1.1 desde:

https://inkscape.org/es/release/all/source/archive/xz/

el nombre del archivo es:

inkscape-1.1.tar.xz

descomprimirlo y queda:

inkscape-1.1_2021-05-24_c4e8f9ed74

Nota: Si desean pueden renombrar ese nombre pues es muy largo.

y desde una terminal entrar en esa carpeta y poner una por una las siguientes cinco líneas:

mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX:PATH=/usr ..
make -j 4
sudo make install


Tiempo de compilado aproximado dos horas más o menos, depende del procesador

Desinstalación

Se puede desinstalar poniendo:

sudo make uninstall

esto desde el directorio build que creamos dentro de la carpeta del código fuente de Inkscape.

APLICACIÓN FUNCIONANDO

Luego de instalado lo podemos buscar entre las aplicaciones o lanzar desde una terminal poniendo

inkscape

En la siguiente imagen está abierto:



y la siguiente imagen es de la versión:



ACERCA DEL INSTALADOR DEB

Traté de crear el deb de gcc 0.9.3 y de Inkscape 1.1 siguiendo estos pasos:

https://facilitarelsoftwarelibre.blogspot.com/2020/12/compilar-inkscape-1.0-deb-32-y-64-bits-mxlinux.html

pero no pude porque me pide un archivo rules que no se cómo crearlo, si alguno de ustedes sabe cómo hacerlo me avisan, o si hacen alguna publicación de cómo hacerlo


***********************************

CONSULTAS:


Solución: Error: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.20′ not found
https://omarcerecedo.wordpress.com/2018/10/12/solucion-error-lib64-libstdc-so-6-version-glibcxx_3-4-20-not-found/

Solve the problem of version GLIBCXX_3.4.26 not found when CentOS uses gmake
https://www.programmersought.com/article/94854139306/

libstdc++.so.6: version `GLIBCXX_3.4.20' not found
https://stackoverflow.com/questions/44773296/libstdc-so-6-version-glibcxx-3-4-20-not-found/45161307

Issue with libstdc++.so.6
https://www.mathworks.com/matlabcentral/answers/329796-issue-with-libstdc-so-6

GLIBCXX_3.4.26 not found running cross-complied program on BeagleBone
https://stackoverflow.com/questions/63190229/glibcxx-3-4-26-not-found-running-cross-complied-program-on-beaglebone
Solución para el mensaje de error al lanzar Inkscape desde la terminal:
/lib/i386-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.26' not found (required by /home/wachin/Developer/source/inkscape-1.1/build/lib/libinkscape_base.so)

No package 'bdw-gc' found
./configure: bdw-gc not found when building Inkscape from source - Super User
https://superuser.com/a/1063074/989620

Install dependencies Inkscape script
https://gitlab.com/inkscape/inkscape-ci-docker/-/raw/master/install_dependencies.sh

No package 'lcms2' found
package lcms2 was not found in the pkg-config search path
https://www.gimp-forum.net/Thread-package-lcms2-was-not-found-in-the-pkg-config-search-path?pid=15598#pid15598

Could NOT find DoubleConversion (missing: DoubleConversion_LIBRARY
cmake fails to find DoubleConversion when building on ChromeOS (#645) · Issues · Inkscape / inkscape · GitLab
https://gitlab.com/inkscape/inkscape/-/issues/645#note_267766355

Compiling Inkscape on Windows with MSYS2 - Inkscape Wiki
https://wiki.inkscape.org/wiki/Compiling_Inkscape_on_Windows_with_MSYS2

Comentarios