<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.inkscape.org/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Tavmjong</id>
	<title>Inkscape Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.inkscape.org/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Tavmjong"/>
	<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/Special:Contributions/Tavmjong"/>
	<updated>2026-04-24T21:34:24Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.36.1</generator>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Tracking_Dependencies&amp;diff=123289</id>
		<title>Tracking Dependencies</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Tracking_Dependencies&amp;diff=123289"/>
		<updated>2025-11-15T08:51:42Z</updated>

		<summary type="html">&lt;p&gt;Tavmjong: /* Libs */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Compilers ==&lt;br /&gt;
&lt;br /&gt;
* Version 1.0 requires a C++11 compiler.&lt;br /&gt;
* Version 1.1 requires a C++17 compiler.&lt;br /&gt;
* Version 1.4 requires a C++20 compiler.&lt;br /&gt;
&lt;br /&gt;
See [[c++11]], [[c++17]], and [[C++20]].&lt;br /&gt;
&lt;br /&gt;
== Libs ==&lt;br /&gt;
&lt;br /&gt;
C++ bindings are not included, since their required versions match those of the C counterparts.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Library&lt;br /&gt;
! v 0.92&lt;br /&gt;
! v 1.0&lt;br /&gt;
! v 1.1&lt;br /&gt;
! v 1.2&lt;br /&gt;
! v 1.3&lt;br /&gt;
! v 1.4&lt;br /&gt;
! master/gtk4&lt;br /&gt;
|-&lt;br /&gt;
| Boehm-GC&lt;br /&gt;
| 7.2&lt;br /&gt;
| 7.2&lt;br /&gt;
| 7.2&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Cairo&lt;br /&gt;
| 1.14&lt;br /&gt;
| 1.14 (1.15.4 required for PDF links)&lt;br /&gt;
| 1.16*&lt;br /&gt;
| 1.16&lt;br /&gt;
| 1.16&lt;br /&gt;
|&lt;br /&gt;
| 1.18.5* ** ***&lt;br /&gt;
|-&lt;br /&gt;
| double-conversion [https://github.com/google/double-conversion]&amp;lt;br/&amp;gt;''(lib2geom dependency)''&lt;br /&gt;
| ''(not required)''&lt;br /&gt;
| any&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| FreeType&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 2.9* (Required for Variable fonts)&lt;br /&gt;
| 2.9&lt;br /&gt;
| 2.9&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| GDL&lt;br /&gt;
| N/A&amp;lt;br /&amp;gt;(3.4)&lt;br /&gt;
| 3.4&lt;br /&gt;
| Not Used&lt;br /&gt;
| Not Used&lt;br /&gt;
| Not Used&lt;br /&gt;
| Not Used&lt;br /&gt;
|-&lt;br /&gt;
| Glib&lt;br /&gt;
| 2.28&lt;br /&gt;
| 2.48&lt;br /&gt;
| 2.56 or 2.62*&lt;br /&gt;
| 2.64&lt;br /&gt;
| 2.64&lt;br /&gt;
|&lt;br /&gt;
| 2.68**&lt;br /&gt;
|-&lt;br /&gt;
| GTK+&lt;br /&gt;
| 2.24&amp;lt;br /&amp;gt;(3.8)&lt;br /&gt;
| 3.22&lt;br /&gt;
| 3.24*&lt;br /&gt;
| 3.24&lt;br /&gt;
| 3.24&lt;br /&gt;
|&lt;br /&gt;
| 4.12&amp;lt;sup&amp;gt;+&amp;lt;/sup&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| GNU Scientific Library&lt;br /&gt;
| ?&lt;br /&gt;
| ?&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| HarfBuzz&lt;br /&gt;
| ?&lt;br /&gt;
| ?&lt;br /&gt;
| 2.2*&lt;br /&gt;
| 2.6&lt;br /&gt;
| 2.6&lt;br /&gt;
| 2.6.5*&lt;br /&gt;
| 8.0&lt;br /&gt;
|-&lt;br /&gt;
| libsigc++&lt;br /&gt;
| ''2.0.12*''&lt;br /&gt;
| ''2.0.12*''&lt;br /&gt;
| ''2.0.12*''&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 3.0**&lt;br /&gt;
|-&lt;br /&gt;
| libSoup&lt;br /&gt;
| ''(not required)''&lt;br /&gt;
| (any)&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| libpotrace&lt;br /&gt;
| ''(not required)''&lt;br /&gt;
| (any)&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| libxml&lt;br /&gt;
| ''2.6.11*''&lt;br /&gt;
| ''2.6.11*''&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| libxslt&lt;br /&gt;
| ''1.0.15*''&lt;br /&gt;
| ''1.0.15*''&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| lcms&lt;br /&gt;
| 1.13&lt;br /&gt;
| 2.2&lt;br /&gt;
| 2.2 (2.9*)&lt;br /&gt;
| 2.9*&lt;br /&gt;
| 2.9*&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Pango&lt;br /&gt;
| 1.24&lt;br /&gt;
| 1.24 (1.41.1 required for variable fonts)&lt;br /&gt;
| 1.42*&lt;br /&gt;
| 1.44&lt;br /&gt;
| 1.44 (HarfBuzz shaping)&lt;br /&gt;
|&lt;br /&gt;
| 2.48**&lt;br /&gt;
|-&lt;br /&gt;
| Poppler&lt;br /&gt;
| 0.20.0&lt;br /&gt;
| 0.20.0&lt;br /&gt;
| 0.29 (0.71*)&lt;br /&gt;
| 0.29 (0.71*)&lt;br /&gt;
| 0.71*&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [https://formulae.brew.sh/formula/gtk-mac-integration gtk-mac-integration]&amp;lt;br&amp;gt;[https://www.macports.org/ports.php?by=library&amp;amp;substr=gtk-osx-application-gtk3 gtk-osx-application-gtk3]&lt;br /&gt;
| N/A&lt;br /&gt;
| 2.0.8 ([[CompilingMacOsX|macOS only]])&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
''* Tentative dependency''&lt;br /&gt;
&lt;br /&gt;
* Pango 1.42.2 requires Harfbuzz 1.4.2&lt;br /&gt;
* Pango 1.44.0 requires Glib 2.59.2 and Harfbuzz 2.0. 1.44 exposes hb_font directly.&lt;br /&gt;
* Pango 1.45.1 requires Glib 2.60&lt;br /&gt;
* Pango 1.48.4 has vertical upright marks fix.&lt;br /&gt;
* Harfbuzz 4.1 changes glyph positioning for upright vertical text when font does not have vertical metrics (from glyph touching to of cell to being centered in cell).&lt;br /&gt;
* Cairo 1.18 supports various color font formats include export to PDF.&lt;br /&gt;
&lt;br /&gt;
''** Gtkmm4 requires API changed Glibmm, Cairomm, and Pangomm. In particular, enums use child namespaces in newer libraries (Cairo::FORMAT_ARGB32 -&amp;gt; Cairo::Surface::Format::ARGB32).''&lt;br /&gt;
&lt;br /&gt;
''*** Cairo 1.18.5 has fix for clipping bug that causes crashes when zooming in and out.'' '''Not released yet (15 Nov 2025).'''&lt;br /&gt;
&lt;br /&gt;
''&amp;lt;sup&amp;gt;+&amp;lt;/sup&amp;gt; Decision at 5 Nov 2023 developer's meeting. Gtk4 4.10.1 has an important scrolling bug fix.''&lt;br /&gt;
&lt;br /&gt;
== Distros ==&lt;br /&gt;
&lt;br /&gt;
Note: This table is not relevant to (non-fink) MacOS X, where we ship the desired version with Inkscape.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Inkscape&amp;quot; column is default or distro version / oldest that builds - latest that builds. If no latest is given then that means trunk is expected to build on the given platform.&lt;br /&gt;
&lt;br /&gt;
e.g. for a distro that ships with 0.48 but should support building of trunk you might get:&lt;br /&gt;
 0.48 / 0.47-&lt;br /&gt;
&lt;br /&gt;
'''General rules:'''&lt;br /&gt;
* Support latest Debian Stable (as of feature freeze) [https://www.debian.org/distrib/packages Debian packages]&lt;br /&gt;
* Support latest Ubuntu LTS (as of feature freeze) [https://packages.ubuntu.com/ Ubuntu packages]&lt;br /&gt;
**e.g. Considering Inkscape 1.2, the latest Ubuntu LTS at '''feature freeze time''' (around February 2022) would have been Ubuntu 20.04. The latest LTS at release time (around May 2022), though, will be Ubuntu 22.04.  Therefore, according to the rule, we should support Ubuntu 20.04 LTS as the minimum version.&lt;br /&gt;
&lt;br /&gt;
* Support last two Fedora releases (as of feature freeze) [https://packages.fedoraproject.org/ Fedora packages]&lt;br /&gt;
* Don't break ''point'' releases.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Distro&lt;br /&gt;
! Inkscape&lt;br /&gt;
! gcc&amp;lt;sup&amp;gt;#&amp;lt;/sup&amp;gt;&lt;br /&gt;
! clang&amp;lt;sup&amp;gt;#&amp;lt;/sup&amp;gt;&lt;br /&gt;
! cairo&lt;br /&gt;
! cairomm&lt;br /&gt;
! freetype&lt;br /&gt;
! glib&lt;br /&gt;
! glibmm&lt;br /&gt;
! gtk+&lt;br /&gt;
! gtkmm&lt;br /&gt;
! harfbuzz&lt;br /&gt;
! pango&lt;br /&gt;
! poppler&lt;br /&gt;
! gdl&lt;br /&gt;
! lcms2&lt;br /&gt;
! libsigc++&lt;br /&gt;
! libgc &amp;lt;!-- Fedora rpm: gc --&amp;gt;&lt;br /&gt;
! libsoup&lt;br /&gt;
|-&lt;br /&gt;
| Windows MSYS2 (2021-04-14)&amp;lt;br/&amp;gt;([https://github.com/Alexpux/MINGW-packages mingw-w64 packages] from MSYS2 project)&lt;br /&gt;
  &amp;lt;!-- see http://quodlibet.duckdns.org/msys2/base for list of latest package versions --&amp;gt;&lt;br /&gt;
| 1.0.2&lt;br /&gt;
| 10.2.0&lt;br /&gt;
| 11.0.0&lt;br /&gt;
| 1.17.4&lt;br /&gt;
| 1.12.2&lt;br /&gt;
| 2.10.4&lt;br /&gt;
| 2.68.1&lt;br /&gt;
| 2.66.0&lt;br /&gt;
| 3.24.27&lt;br /&gt;
| 3.24.3&lt;br /&gt;
| 2.8.0&lt;br /&gt;
| 1.48.4&lt;br /&gt;
| 20.12.1&lt;br /&gt;
| 3.34.0&lt;br /&gt;
| 2.12&lt;br /&gt;
| 2.10.6&lt;br /&gt;
| 8.0.4 &amp;lt;!-- mingw-w64-gc --&amp;gt;&lt;br /&gt;
| 2.72.0&lt;br /&gt;
|-&lt;br /&gt;
| Debian 11 (Bullseye, oldstable 21.08) &amp;lt;small&amp;gt;EOL 2026&amp;lt;/small&amp;gt;&lt;br /&gt;
| 1.0.2&lt;br /&gt;
| 10.2.1&lt;br /&gt;
| 13.0.1&lt;br /&gt;
| 1.16&lt;br /&gt;
| 1.12.2&lt;br /&gt;
| 2.10.4&lt;br /&gt;
| 2.66.8&lt;br /&gt;
| 2.64.2&lt;br /&gt;
| 3.24.24&lt;br /&gt;
| 3.24.2&lt;br /&gt;
| 2.7.4&lt;br /&gt;
| 1.46.2&lt;br /&gt;
| 20.09.0&lt;br /&gt;
| 3.34.0&lt;br /&gt;
| 2.12&lt;br /&gt;
| 2.10.4&lt;br /&gt;
| 8.0.4&lt;br /&gt;
| 2.72.0&lt;br /&gt;
|-&lt;br /&gt;
| Debian 12 (Bookworm, stable, 23.10) &amp;lt;small&amp;gt;EOL 2028?&amp;lt;/small&amp;gt;&lt;br /&gt;
| 1.2.2&lt;br /&gt;
| 12.2.0&lt;br /&gt;
| 15.0.6&lt;br /&gt;
| 1.16.0&lt;br /&gt;
| 1.12.1&lt;br /&gt;
| 2.10.4&lt;br /&gt;
| 2.74.5&lt;br /&gt;
| 2.74.0&lt;br /&gt;
| 3.24.36&amp;lt;br /&amp;gt;4.8.3&lt;br /&gt;
| 3.24.7&amp;lt;br /&amp;gt;4.8.0&lt;br /&gt;
| 6.0.0&lt;br /&gt;
| 1.50.12&lt;br /&gt;
| 22.12.0&lt;br /&gt;
| 3.40.0&lt;br /&gt;
| 2.14.1&lt;br /&gt;
| 2.12.0&amp;lt;br /&amp;gt;3.4.0&lt;br /&gt;
| 8.2.2&lt;br /&gt;
| 2.74.03&amp;lt;br /&amp;gt;3.2.2&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu 22.04 LTS (Jammy Jellyfish) &amp;lt;small&amp;gt;EOL 2027-04&amp;lt;/small&amp;gt;&lt;br /&gt;
| 1.1.2&lt;br /&gt;
| 12.3.0&lt;br /&gt;
| 15.0.7&lt;br /&gt;
| 1.16.0&lt;br /&gt;
| 1.12.2&lt;br /&gt;
| 2.11.1&lt;br /&gt;
| 2.72.1&lt;br /&gt;
| 2.66.2&lt;br /&gt;
| 3.24.33&amp;lt;br /&amp;gt;4.6.2&lt;br /&gt;
| 3.24.5&amp;lt;br /&amp;gt;no libgtkmm-4.0&lt;br /&gt;
| 2.7.4&lt;br /&gt;
| 1.50.6&lt;br /&gt;
| 22.02.0&lt;br /&gt;
| 3.40.0&lt;br /&gt;
| 2.12-rc1&lt;br /&gt;
| 2.10.4&lt;br /&gt;
| 8.0.6&lt;br /&gt;
| 2.74.2&amp;lt;br /&amp;gt;3.0.5&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu 24.04 LTS (Noble) &amp;lt;small&amp;gt;EOL 2029-04&amp;lt;/small&amp;gt;&lt;br /&gt;
| 1.2.2&lt;br /&gt;
| 13.2.0&lt;br /&gt;
| 18.0.0&amp;lt;br /&amp;gt;(18.1.3)&lt;br /&gt;
| 1.18.0&lt;br /&gt;
| 1.14.5&amp;lt;br /&amp;gt;1.18.0&lt;br /&gt;
| 2.13.2&lt;br /&gt;
| 2.80.0&lt;br /&gt;
| 2.66.7&amp;lt;br /&amp;gt;2.78.1&lt;br /&gt;
| 3.24.41&amp;lt;br /&amp;gt;4.14.2&lt;br /&gt;
| 3.24.9&amp;lt;br /&amp;gt;4.10.0&lt;br /&gt;
| 8.3.0&lt;br /&gt;
| 1.52.1&amp;lt;br /&amp;gt;2.52.0&lt;br /&gt;
| 24.02.0&lt;br /&gt;
| 3.40.0&lt;br /&gt;
| 2.14.2&lt;br /&gt;
| 2.12.1&amp;lt;br /&amp;gt;3.6.0&lt;br /&gt;
| 8.2.6&lt;br /&gt;
| 2.74.3&amp;lt;br /&amp;gt;3.4.4&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|| Ubuntu 25.4 (Plucky) &amp;lt;small&amp;gt;EOL 2026-01&amp;lt;/small&amp;gt;&lt;br /&gt;
| 1.2.2&lt;br /&gt;
| 20.1.2&lt;br /&gt;
| 12.0&lt;br /&gt;
| 1.18.4&lt;br /&gt;
| 1.14.5&amp;lt;br /&amp;gt;1.18.0&lt;br /&gt;
| 2.13.3&lt;br /&gt;
| 2.80.1&lt;br /&gt;
| 2.66.8&amp;lt;br /&amp;gt;2.84.0&lt;br /&gt;
| 3.24.49&amp;lt;br /&amp;gt;4.18.4&lt;br /&gt;
| 3.24.10&amp;lt;br /&amp;gt;4.18.0&lt;br /&gt;
| 10.2.0&lt;br /&gt;
| 1.56.3&amp;lt;br /&amp;gt;2.56.1&lt;br /&gt;
| 25.03.0&lt;br /&gt;
| &lt;br /&gt;
| 2.16.2&lt;br /&gt;
| 2.12.1&amp;lt;br /&amp;gt;3.6.0&lt;br /&gt;
| 8.2.8&lt;br /&gt;
| 2.74.3&amp;lt;br /&amp;gt;3.6.5&lt;br /&gt;
|-&lt;br /&gt;
|| Ubuntu 25.10 (Questing) &amp;lt;small&amp;gt;EOL 2026-07&amp;lt;/small&amp;gt;&lt;br /&gt;
| 1.4.2&lt;br /&gt;
| 20.1.8&lt;br /&gt;
| 12.0&lt;br /&gt;
| 1.18.4&lt;br /&gt;
| 1.14.5&amp;lt;br /&amp;gt;1.18.0&lt;br /&gt;
| 2.13.3&lt;br /&gt;
| 2.86.0&lt;br /&gt;
| 2.66.8&amp;lt;br /&amp;gt;2.84.0&lt;br /&gt;
| 3.24.50&amp;lt;br /&amp;gt;4.20.1&lt;br /&gt;
| 3.24.10&amp;lt;br /&amp;gt;4.20.0&lt;br /&gt;
| 10.2.0&lt;br /&gt;
| 1.56.3&amp;lt;br /&amp;gt;2.56.1&lt;br /&gt;
| 25.03.0&lt;br /&gt;
| &lt;br /&gt;
| 2.16.2&lt;br /&gt;
| 2.12.1&amp;lt;br /&amp;gt;3.6.0&lt;br /&gt;
| 8.2.8&lt;br /&gt;
| 2.74.3&amp;lt;br /&amp;gt;3.6.5&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;sup&amp;gt;#&amp;lt;/sup&amp;gt;Debian and Ubuntu offer multiple gcc and clang versions, latest available version listed.&lt;br /&gt;
&lt;br /&gt;
* Agreed to at Saarbrücken hackfest.&lt;br /&gt;
&lt;br /&gt;
== Getting and Installing Source packages ==&lt;br /&gt;
&lt;br /&gt;
See [https://inkscape.org/develop/getting-started/ Getting Started]&lt;br /&gt;
&lt;br /&gt;
== Optional Dependencies ==&lt;br /&gt;
&lt;br /&gt;
Inkscape will still compile without these, but some features may be missing if they are absent during compilation:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Library&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Needed for&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Default&lt;br /&gt;
|-&lt;br /&gt;
|aspell&lt;br /&gt;
|Dictionaries for spell checking&lt;br /&gt;
|On&lt;br /&gt;
|-&lt;br /&gt;
|libcdr&lt;br /&gt;
|Open Corel Draw files&lt;br /&gt;
|On&lt;br /&gt;
|-&lt;br /&gt;
|gettext/msgformat&lt;br /&gt;
|Translation support&lt;br /&gt;
|On&lt;br /&gt;
|-&lt;br /&gt;
|gtest/gmock&lt;br /&gt;
|Automatted testing&lt;br /&gt;
|Off&lt;br /&gt;
|-&lt;br /&gt;
|gspell&lt;br /&gt;
|Spell checking&lt;br /&gt;
|On&lt;br /&gt;
|-&lt;br /&gt;
|imagemagick&lt;br /&gt;
|Bitmap editing extensions, bitmap import resolution&lt;br /&gt;
|On&lt;br /&gt;
|-&lt;br /&gt;
|jpeg&lt;br /&gt;
|jpeg import?&lt;br /&gt;
|On&lt;br /&gt;
|-&lt;br /&gt;
|OpenMP&lt;br /&gt;
|Multi-threaded filter rendering&lt;br /&gt;
|On&lt;br /&gt;
|-&lt;br /&gt;
|scour&lt;br /&gt;
|Save as Optimized SVG&lt;br /&gt;
|(not needed during compiling, Python)&lt;br /&gt;
|-&lt;br /&gt;
|libvisio&lt;br /&gt;
|Open Visio Files, use Visio stencils&lt;br /&gt;
|On&lt;br /&gt;
|-&lt;br /&gt;
|libwpg&lt;br /&gt;
|Open WordPerfect Graphics&lt;br /&gt;
|On&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:About Inkscape]]&lt;br /&gt;
[[Category:Developer Documentation]]&lt;/div&gt;</summary>
		<author><name>Tavmjong</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Tracking_Dependencies&amp;diff=123288</id>
		<title>Tracking Dependencies</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Tracking_Dependencies&amp;diff=123288"/>
		<updated>2025-11-05T16:40:50Z</updated>

		<summary type="html">&lt;p&gt;Tavmjong: /* Distros */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Compilers ==&lt;br /&gt;
&lt;br /&gt;
* Version 1.0 requires a C++11 compiler.&lt;br /&gt;
* Version 1.1 requires a C++17 compiler.&lt;br /&gt;
* Version 1.4 requires a C++20 compiler.&lt;br /&gt;
&lt;br /&gt;
See [[c++11]], [[c++17]], and [[C++20]].&lt;br /&gt;
&lt;br /&gt;
== Libs ==&lt;br /&gt;
&lt;br /&gt;
C++ bindings are not included, since their required versions match those of the C counterparts.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Library&lt;br /&gt;
! v 0.92&lt;br /&gt;
! v 1.0&lt;br /&gt;
! v 1.1&lt;br /&gt;
! v 1.2&lt;br /&gt;
! v 1.3&lt;br /&gt;
! v 1.4&lt;br /&gt;
! master/gtk4&lt;br /&gt;
|-&lt;br /&gt;
| Boehm-GC&lt;br /&gt;
| 7.2&lt;br /&gt;
| 7.2&lt;br /&gt;
| 7.2&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Cairo&lt;br /&gt;
| 1.14&lt;br /&gt;
| 1.14 (1.15.4 required for PDF links)&lt;br /&gt;
| 1.16*&lt;br /&gt;
| 1.16&lt;br /&gt;
| 1.16&lt;br /&gt;
|&lt;br /&gt;
| 1.18* **&lt;br /&gt;
|-&lt;br /&gt;
| double-conversion [https://github.com/google/double-conversion]&amp;lt;br/&amp;gt;''(lib2geom dependency)''&lt;br /&gt;
| ''(not required)''&lt;br /&gt;
| any&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| FreeType&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 2.9* (Required for Variable fonts)&lt;br /&gt;
| 2.9&lt;br /&gt;
| 2.9&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| GDL&lt;br /&gt;
| N/A&amp;lt;br /&amp;gt;(3.4)&lt;br /&gt;
| 3.4&lt;br /&gt;
| Not Used&lt;br /&gt;
| Not Used&lt;br /&gt;
| Not Used&lt;br /&gt;
| Not Used&lt;br /&gt;
|-&lt;br /&gt;
| Glib&lt;br /&gt;
| 2.28&lt;br /&gt;
| 2.48&lt;br /&gt;
| 2.56 or 2.62*&lt;br /&gt;
| 2.64&lt;br /&gt;
| 2.64&lt;br /&gt;
|&lt;br /&gt;
| 2.68**&lt;br /&gt;
|-&lt;br /&gt;
| GTK+&lt;br /&gt;
| 2.24&amp;lt;br /&amp;gt;(3.8)&lt;br /&gt;
| 3.22&lt;br /&gt;
| 3.24*&lt;br /&gt;
| 3.24&lt;br /&gt;
| 3.24&lt;br /&gt;
|&lt;br /&gt;
| 4.12&amp;lt;sup&amp;gt;+&amp;lt;/sup&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| GNU Scientific Library&lt;br /&gt;
| ?&lt;br /&gt;
| ?&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| HarfBuzz&lt;br /&gt;
| ?&lt;br /&gt;
| ?&lt;br /&gt;
| 2.2*&lt;br /&gt;
| 2.6&lt;br /&gt;
| 2.6&lt;br /&gt;
| 2.6.5*&lt;br /&gt;
| 8.0&lt;br /&gt;
|-&lt;br /&gt;
| libsigc++&lt;br /&gt;
| ''2.0.12*''&lt;br /&gt;
| ''2.0.12*''&lt;br /&gt;
| ''2.0.12*''&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 3.0**&lt;br /&gt;
|-&lt;br /&gt;
| libSoup&lt;br /&gt;
| ''(not required)''&lt;br /&gt;
| (any)&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| libpotrace&lt;br /&gt;
| ''(not required)''&lt;br /&gt;
| (any)&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| libxml&lt;br /&gt;
| ''2.6.11*''&lt;br /&gt;
| ''2.6.11*''&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| libxslt&lt;br /&gt;
| ''1.0.15*''&lt;br /&gt;
| ''1.0.15*''&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| lcms&lt;br /&gt;
| 1.13&lt;br /&gt;
| 2.2&lt;br /&gt;
| 2.2 (2.9*)&lt;br /&gt;
| 2.9*&lt;br /&gt;
| 2.9*&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Pango&lt;br /&gt;
| 1.24&lt;br /&gt;
| 1.24 (1.41.1 required for variable fonts)&lt;br /&gt;
| 1.42*&lt;br /&gt;
| 1.44&lt;br /&gt;
| 1.44 (HarfBuzz shaping)&lt;br /&gt;
|&lt;br /&gt;
| 2.48**&lt;br /&gt;
|-&lt;br /&gt;
| Poppler&lt;br /&gt;
| 0.20.0&lt;br /&gt;
| 0.20.0&lt;br /&gt;
| 0.29 (0.71*)&lt;br /&gt;
| 0.29 (0.71*)&lt;br /&gt;
| 0.71*&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [https://formulae.brew.sh/formula/gtk-mac-integration gtk-mac-integration]&amp;lt;br&amp;gt;[https://www.macports.org/ports.php?by=library&amp;amp;substr=gtk-osx-application-gtk3 gtk-osx-application-gtk3]&lt;br /&gt;
| N/A&lt;br /&gt;
| 2.0.8 ([[CompilingMacOsX|macOS only]])&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
''* Tentative dependency''&lt;br /&gt;
&lt;br /&gt;
* Pango 1.42.2 requires Harfbuzz 1.4.2&lt;br /&gt;
* Pango 1.44.0 requires Glib 2.59.2 and Harfbuzz 2.0. 1.44 exposes hb_font directly.&lt;br /&gt;
* Pango 1.45.1 requires Glib 2.60&lt;br /&gt;
* Pango 1.48.4 has vertical upright marks fix.&lt;br /&gt;
* Harfbuzz 4.1 changes glyph positioning for upright vertical text when font does not have vertical metrics (from glyph touching to of cell to being centered in cell).&lt;br /&gt;
* Cairo 1.18 supports various color font formats include export to PDF.&lt;br /&gt;
&lt;br /&gt;
''** Gtkmm4 requires API changed Glibmm, Cairomm, and Pangomm. In particular, enums use child namespaces in newer libraries (Cairo::FORMAT_ARGB32 -&amp;gt; Cairo::Surface::Format::ARGB32).''&lt;br /&gt;
&lt;br /&gt;
''&amp;lt;sup&amp;gt;+&amp;lt;/sup&amp;gt; Decision at 5 Nov 2023 developer's meeting. Gtk4 4.10.1 has an important scrolling bug fix.''&lt;br /&gt;
&lt;br /&gt;
== Distros ==&lt;br /&gt;
&lt;br /&gt;
Note: This table is not relevant to (non-fink) MacOS X, where we ship the desired version with Inkscape.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Inkscape&amp;quot; column is default or distro version / oldest that builds - latest that builds. If no latest is given then that means trunk is expected to build on the given platform.&lt;br /&gt;
&lt;br /&gt;
e.g. for a distro that ships with 0.48 but should support building of trunk you might get:&lt;br /&gt;
 0.48 / 0.47-&lt;br /&gt;
&lt;br /&gt;
'''General rules:'''&lt;br /&gt;
* Support latest Debian Stable (as of feature freeze) [https://www.debian.org/distrib/packages Debian packages]&lt;br /&gt;
* Support latest Ubuntu LTS (as of feature freeze) [https://packages.ubuntu.com/ Ubuntu packages]&lt;br /&gt;
**e.g. Considering Inkscape 1.2, the latest Ubuntu LTS at '''feature freeze time''' (around February 2022) would have been Ubuntu 20.04. The latest LTS at release time (around May 2022), though, will be Ubuntu 22.04.  Therefore, according to the rule, we should support Ubuntu 20.04 LTS as the minimum version.&lt;br /&gt;
&lt;br /&gt;
* Support last two Fedora releases (as of feature freeze) [https://packages.fedoraproject.org/ Fedora packages]&lt;br /&gt;
* Don't break ''point'' releases.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Distro&lt;br /&gt;
! Inkscape&lt;br /&gt;
! gcc&amp;lt;sup&amp;gt;#&amp;lt;/sup&amp;gt;&lt;br /&gt;
! clang&amp;lt;sup&amp;gt;#&amp;lt;/sup&amp;gt;&lt;br /&gt;
! cairo&lt;br /&gt;
! cairomm&lt;br /&gt;
! freetype&lt;br /&gt;
! glib&lt;br /&gt;
! glibmm&lt;br /&gt;
! gtk+&lt;br /&gt;
! gtkmm&lt;br /&gt;
! harfbuzz&lt;br /&gt;
! pango&lt;br /&gt;
! poppler&lt;br /&gt;
! gdl&lt;br /&gt;
! lcms2&lt;br /&gt;
! libsigc++&lt;br /&gt;
! libgc &amp;lt;!-- Fedora rpm: gc --&amp;gt;&lt;br /&gt;
! libsoup&lt;br /&gt;
|-&lt;br /&gt;
| Windows MSYS2 (2021-04-14)&amp;lt;br/&amp;gt;([https://github.com/Alexpux/MINGW-packages mingw-w64 packages] from MSYS2 project)&lt;br /&gt;
  &amp;lt;!-- see http://quodlibet.duckdns.org/msys2/base for list of latest package versions --&amp;gt;&lt;br /&gt;
| 1.0.2&lt;br /&gt;
| 10.2.0&lt;br /&gt;
| 11.0.0&lt;br /&gt;
| 1.17.4&lt;br /&gt;
| 1.12.2&lt;br /&gt;
| 2.10.4&lt;br /&gt;
| 2.68.1&lt;br /&gt;
| 2.66.0&lt;br /&gt;
| 3.24.27&lt;br /&gt;
| 3.24.3&lt;br /&gt;
| 2.8.0&lt;br /&gt;
| 1.48.4&lt;br /&gt;
| 20.12.1&lt;br /&gt;
| 3.34.0&lt;br /&gt;
| 2.12&lt;br /&gt;
| 2.10.6&lt;br /&gt;
| 8.0.4 &amp;lt;!-- mingw-w64-gc --&amp;gt;&lt;br /&gt;
| 2.72.0&lt;br /&gt;
|-&lt;br /&gt;
| Debian 11 (Bullseye, oldstable 21.08) &amp;lt;small&amp;gt;EOL 2026&amp;lt;/small&amp;gt;&lt;br /&gt;
| 1.0.2&lt;br /&gt;
| 10.2.1&lt;br /&gt;
| 13.0.1&lt;br /&gt;
| 1.16&lt;br /&gt;
| 1.12.2&lt;br /&gt;
| 2.10.4&lt;br /&gt;
| 2.66.8&lt;br /&gt;
| 2.64.2&lt;br /&gt;
| 3.24.24&lt;br /&gt;
| 3.24.2&lt;br /&gt;
| 2.7.4&lt;br /&gt;
| 1.46.2&lt;br /&gt;
| 20.09.0&lt;br /&gt;
| 3.34.0&lt;br /&gt;
| 2.12&lt;br /&gt;
| 2.10.4&lt;br /&gt;
| 8.0.4&lt;br /&gt;
| 2.72.0&lt;br /&gt;
|-&lt;br /&gt;
| Debian 12 (Bookworm, stable, 23.10) &amp;lt;small&amp;gt;EOL 2028?&amp;lt;/small&amp;gt;&lt;br /&gt;
| 1.2.2&lt;br /&gt;
| 12.2.0&lt;br /&gt;
| 15.0.6&lt;br /&gt;
| 1.16.0&lt;br /&gt;
| 1.12.1&lt;br /&gt;
| 2.10.4&lt;br /&gt;
| 2.74.5&lt;br /&gt;
| 2.74.0&lt;br /&gt;
| 3.24.36&amp;lt;br /&amp;gt;4.8.3&lt;br /&gt;
| 3.24.7&amp;lt;br /&amp;gt;4.8.0&lt;br /&gt;
| 6.0.0&lt;br /&gt;
| 1.50.12&lt;br /&gt;
| 22.12.0&lt;br /&gt;
| 3.40.0&lt;br /&gt;
| 2.14.1&lt;br /&gt;
| 2.12.0&amp;lt;br /&amp;gt;3.4.0&lt;br /&gt;
| 8.2.2&lt;br /&gt;
| 2.74.03&amp;lt;br /&amp;gt;3.2.2&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu 22.04 LTS (Jammy Jellyfish) &amp;lt;small&amp;gt;EOL 2027-04&amp;lt;/small&amp;gt;&lt;br /&gt;
| 1.1.2&lt;br /&gt;
| 12.3.0&lt;br /&gt;
| 15.0.7&lt;br /&gt;
| 1.16.0&lt;br /&gt;
| 1.12.2&lt;br /&gt;
| 2.11.1&lt;br /&gt;
| 2.72.1&lt;br /&gt;
| 2.66.2&lt;br /&gt;
| 3.24.33&amp;lt;br /&amp;gt;4.6.2&lt;br /&gt;
| 3.24.5&amp;lt;br /&amp;gt;no libgtkmm-4.0&lt;br /&gt;
| 2.7.4&lt;br /&gt;
| 1.50.6&lt;br /&gt;
| 22.02.0&lt;br /&gt;
| 3.40.0&lt;br /&gt;
| 2.12-rc1&lt;br /&gt;
| 2.10.4&lt;br /&gt;
| 8.0.6&lt;br /&gt;
| 2.74.2&amp;lt;br /&amp;gt;3.0.5&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu 24.04 LTS (Noble) &amp;lt;small&amp;gt;EOL 2029-04&amp;lt;/small&amp;gt;&lt;br /&gt;
| 1.2.2&lt;br /&gt;
| 13.2.0&lt;br /&gt;
| 18.0.0&amp;lt;br /&amp;gt;(18.1.3)&lt;br /&gt;
| 1.18.0&lt;br /&gt;
| 1.14.5&amp;lt;br /&amp;gt;1.18.0&lt;br /&gt;
| 2.13.2&lt;br /&gt;
| 2.80.0&lt;br /&gt;
| 2.66.7&amp;lt;br /&amp;gt;2.78.1&lt;br /&gt;
| 3.24.41&amp;lt;br /&amp;gt;4.14.2&lt;br /&gt;
| 3.24.9&amp;lt;br /&amp;gt;4.10.0&lt;br /&gt;
| 8.3.0&lt;br /&gt;
| 1.52.1&amp;lt;br /&amp;gt;2.52.0&lt;br /&gt;
| 24.02.0&lt;br /&gt;
| 3.40.0&lt;br /&gt;
| 2.14.2&lt;br /&gt;
| 2.12.1&amp;lt;br /&amp;gt;3.6.0&lt;br /&gt;
| 8.2.6&lt;br /&gt;
| 2.74.3&amp;lt;br /&amp;gt;3.4.4&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|| Ubuntu 25.4 (Plucky) &amp;lt;small&amp;gt;EOL 2026-01&amp;lt;/small&amp;gt;&lt;br /&gt;
| 1.2.2&lt;br /&gt;
| 20.1.2&lt;br /&gt;
| 12.0&lt;br /&gt;
| 1.18.4&lt;br /&gt;
| 1.14.5&amp;lt;br /&amp;gt;1.18.0&lt;br /&gt;
| 2.13.3&lt;br /&gt;
| 2.80.1&lt;br /&gt;
| 2.66.8&amp;lt;br /&amp;gt;2.84.0&lt;br /&gt;
| 3.24.49&amp;lt;br /&amp;gt;4.18.4&lt;br /&gt;
| 3.24.10&amp;lt;br /&amp;gt;4.18.0&lt;br /&gt;
| 10.2.0&lt;br /&gt;
| 1.56.3&amp;lt;br /&amp;gt;2.56.1&lt;br /&gt;
| 25.03.0&lt;br /&gt;
| &lt;br /&gt;
| 2.16.2&lt;br /&gt;
| 2.12.1&amp;lt;br /&amp;gt;3.6.0&lt;br /&gt;
| 8.2.8&lt;br /&gt;
| 2.74.3&amp;lt;br /&amp;gt;3.6.5&lt;br /&gt;
|-&lt;br /&gt;
|| Ubuntu 25.10 (Questing) &amp;lt;small&amp;gt;EOL 2026-07&amp;lt;/small&amp;gt;&lt;br /&gt;
| 1.4.2&lt;br /&gt;
| 20.1.8&lt;br /&gt;
| 12.0&lt;br /&gt;
| 1.18.4&lt;br /&gt;
| 1.14.5&amp;lt;br /&amp;gt;1.18.0&lt;br /&gt;
| 2.13.3&lt;br /&gt;
| 2.86.0&lt;br /&gt;
| 2.66.8&amp;lt;br /&amp;gt;2.84.0&lt;br /&gt;
| 3.24.50&amp;lt;br /&amp;gt;4.20.1&lt;br /&gt;
| 3.24.10&amp;lt;br /&amp;gt;4.20.0&lt;br /&gt;
| 10.2.0&lt;br /&gt;
| 1.56.3&amp;lt;br /&amp;gt;2.56.1&lt;br /&gt;
| 25.03.0&lt;br /&gt;
| &lt;br /&gt;
| 2.16.2&lt;br /&gt;
| 2.12.1&amp;lt;br /&amp;gt;3.6.0&lt;br /&gt;
| 8.2.8&lt;br /&gt;
| 2.74.3&amp;lt;br /&amp;gt;3.6.5&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;sup&amp;gt;#&amp;lt;/sup&amp;gt;Debian and Ubuntu offer multiple gcc and clang versions, latest available version listed.&lt;br /&gt;
&lt;br /&gt;
* Agreed to at Saarbrücken hackfest.&lt;br /&gt;
&lt;br /&gt;
== Getting and Installing Source packages ==&lt;br /&gt;
&lt;br /&gt;
See [https://inkscape.org/develop/getting-started/ Getting Started]&lt;br /&gt;
&lt;br /&gt;
== Optional Dependencies ==&lt;br /&gt;
&lt;br /&gt;
Inkscape will still compile without these, but some features may be missing if they are absent during compilation:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Library&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Needed for&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Default&lt;br /&gt;
|-&lt;br /&gt;
|aspell&lt;br /&gt;
|Dictionaries for spell checking&lt;br /&gt;
|On&lt;br /&gt;
|-&lt;br /&gt;
|libcdr&lt;br /&gt;
|Open Corel Draw files&lt;br /&gt;
|On&lt;br /&gt;
|-&lt;br /&gt;
|gettext/msgformat&lt;br /&gt;
|Translation support&lt;br /&gt;
|On&lt;br /&gt;
|-&lt;br /&gt;
|gtest/gmock&lt;br /&gt;
|Automatted testing&lt;br /&gt;
|Off&lt;br /&gt;
|-&lt;br /&gt;
|gspell&lt;br /&gt;
|Spell checking&lt;br /&gt;
|On&lt;br /&gt;
|-&lt;br /&gt;
|imagemagick&lt;br /&gt;
|Bitmap editing extensions, bitmap import resolution&lt;br /&gt;
|On&lt;br /&gt;
|-&lt;br /&gt;
|jpeg&lt;br /&gt;
|jpeg import?&lt;br /&gt;
|On&lt;br /&gt;
|-&lt;br /&gt;
|OpenMP&lt;br /&gt;
|Multi-threaded filter rendering&lt;br /&gt;
|On&lt;br /&gt;
|-&lt;br /&gt;
|scour&lt;br /&gt;
|Save as Optimized SVG&lt;br /&gt;
|(not needed during compiling, Python)&lt;br /&gt;
|-&lt;br /&gt;
|libvisio&lt;br /&gt;
|Open Visio Files, use Visio stencils&lt;br /&gt;
|On&lt;br /&gt;
|-&lt;br /&gt;
|libwpg&lt;br /&gt;
|Open WordPerfect Graphics&lt;br /&gt;
|On&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:About Inkscape]]&lt;br /&gt;
[[Category:Developer Documentation]]&lt;/div&gt;</summary>
		<author><name>Tavmjong</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Architectural_overview&amp;diff=123286</id>
		<title>Architectural overview</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Architectural_overview&amp;diff=123286"/>
		<updated>2025-10-22T08:06:22Z</updated>

		<summary type="html">&lt;p&gt;Tavmjong: /* How Inkscape starts */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a high-level overview of how Inkscape works.&lt;br /&gt;
&lt;br /&gt;
See doc/architecture.txt in the code repository for another (dated) overview.&lt;br /&gt;
&lt;br /&gt;
==Main subsystems==&lt;br /&gt;
Inkscape can be roughly subdivided into these subsystems:&lt;br /&gt;
&lt;br /&gt;
;[[XML subsystem]]&lt;br /&gt;
:Classes to store the parsed XML of an SVG document. Fairly generic, and doesn't contain significant SVG-specific functionality. The main distinguishing features (from something like &amp;lt;code&amp;gt;libxml++&amp;lt;/code&amp;gt;) are notifications about XML changes and undo functionality. This subsystem is garbage-collected. Because XML nodes were formerly C structures called &amp;lt;code&amp;gt;SPRepr&amp;lt;/code&amp;gt;, the XML tree is sometimes called the &amp;quot;repr tree&amp;quot;, and XML nodes &amp;quot;reprs&amp;quot; (short for &amp;quot;representation&amp;quot;).&lt;br /&gt;
;[[Object tree]]&lt;br /&gt;
:This is where the bulk of Inkscape's functionality is contained.  Implements an XML-to-display primitive mapping, and provides an object hierarchy that can be modified using the tools.  Based on &amp;lt;code&amp;gt;GObject&amp;lt;/code&amp;gt;. Each document has an object tree and an XML tree. Changes in the XML tree are automatically propagated to the object tree via observers, but ''not'' the other way around—a function called &amp;lt;code&amp;gt;updateRepr()&amp;lt;/code&amp;gt; must be explicitly called.&lt;br /&gt;
;[[Display subsystem]]&lt;br /&gt;
:Responsible for rendering graphic primitives, displaying things onscreen, and providing the main canvas widget. Also dispatches events to tools.  Contained in the &amp;lt;code&amp;gt;src/display/&amp;lt;/code&amp;gt; directory of the source tree. &lt;br /&gt;
;[[Tools subsystem]]&lt;br /&gt;
:Processes input events on the canvas and translates them into document changes. Tools are called ''event contexts'' internally.  This subsystem is based on &amp;lt;code&amp;gt;GObject&amp;lt;/code&amp;gt;, dispersed in the &amp;lt;code&amp;gt;src/&amp;lt;/code&amp;gt; directory (and several subdirectories). Files with event handling code end with &amp;lt;code&amp;gt;-context.cpp&amp;lt;/code&amp;gt;.&lt;br /&gt;
;[[Extension subsystem]]&lt;br /&gt;
:Allows third-party extensions without modifying Inkscape's code. Currently, extensions may provide additional I/O formats, effects, path effects, and printing backends.&lt;br /&gt;
;[[Preferences subsystem]]&lt;br /&gt;
:Provides a shared storage for all of Inkscape's user settings.  Small but relatively self-contained. Keeps the parsed XML tree of the preferences file (but it's not directly accessible).  The intent is to separate preference ''implementation'' (which might not be based on an XML file in the future) from the ''API'' used to access them. Contained in &amp;lt;code&amp;gt;preferences.cpp&amp;lt;/code&amp;gt;&lt;br /&gt;
;[[User Interface Modules]]&lt;br /&gt;
:Dialogs, widgets, tools, and more.&lt;br /&gt;
&lt;br /&gt;
==How Inkscape starts==&lt;br /&gt;
OUT OF DATE&lt;br /&gt;
&lt;br /&gt;
# &amp;lt;tt&amp;gt;main()&amp;lt;/tt&amp;gt; is called, and determines whether Inkscape was run in graphical mode or command-line mode.&lt;br /&gt;
## '''On Windows:''' A &amp;lt;tt&amp;gt;WinMain()&amp;lt;/tt&amp;gt; stub calls &amp;lt;tt&amp;gt;main()&amp;lt;/tt&amp;gt; so that the command prompt is not displayed.&lt;br /&gt;
# Based on the decision, either &amp;lt;tt&amp;gt;sp_main_gui()&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;sp_main_console()&amp;lt;/tt&amp;gt;is called.  &lt;br /&gt;
## Both call &amp;lt;tt&amp;gt;sp_common_main()&amp;lt;/tt&amp;gt;, which handles parameter parsing. Parameters are parsed into several global variables.  (Yes, this needs to be heavily refactored!)&lt;br /&gt;
# An instance of &amp;lt;tt&amp;gt;Inkscape::NSApplication::Application&amp;lt;/tt&amp;gt; is created. &lt;br /&gt;
## This object is an unfinished attempt at converting top-level Inkscape structures to C++ classes. It creates the legacy &amp;lt;tt&amp;gt;Inkscape::Application&amp;lt;/tt&amp;gt; structure and creates an instance of &amp;lt;tt&amp;gt;SPDesktop&amp;lt;/tt&amp;gt; for each open document. (&amp;lt;tt&amp;gt;SPDesktop&amp;lt;/tt&amp;gt; is a window used to edit a document—the main window you see when you start Inkscape.  Sometimes simply called “desktop” for short.)&lt;br /&gt;
# The created desktops are shown.  &lt;br /&gt;
&lt;br /&gt;
Ta-Da!&lt;br /&gt;
&lt;br /&gt;
==Historical note==&lt;br /&gt;
Inkscape is derived from an earlier vector drawing program called Sodipodi. &lt;br /&gt;
&lt;br /&gt;
Sodipodi was written entirely in plain C using &amp;lt;code&amp;gt;GObject&amp;lt;/code&amp;gt;.  GObject is the C object system used by GTK+. &lt;br /&gt;
&lt;br /&gt;
Writing and maintaining &amp;lt;code&amp;gt;GObject&amp;lt;/code&amp;gt; code is cumbersome, because C lacks any syntax support for this system. There are still many places that use old &amp;lt;code&amp;gt;GObject&amp;lt;/code&amp;gt;-based code (notably the tools and the &amp;lt;code&amp;gt;SPObject&amp;lt;/code&amp;gt; tree). &lt;br /&gt;
&lt;br /&gt;
An important long-term goal is to convert all &amp;lt;code&amp;gt;GObject&amp;lt;/code&amp;gt; code to regular C++ objects. This goal has been addressed for the most part with 0.91.&lt;/div&gt;</summary>
		<author><name>Tavmjong</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Tracking_Dependencies&amp;diff=123281</id>
		<title>Tracking Dependencies</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Tracking_Dependencies&amp;diff=123281"/>
		<updated>2025-07-30T15:40:07Z</updated>

		<summary type="html">&lt;p&gt;Tavmjong: /* Distros */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Compilers ==&lt;br /&gt;
&lt;br /&gt;
* Version 1.0 requires a C++11 compiler.&lt;br /&gt;
* Version 1.1 requires a C++17 compiler.&lt;br /&gt;
* Version 1.4 requires a C++20 compiler.&lt;br /&gt;
&lt;br /&gt;
See [[c++11]], [[c++17]], and [[C++20]].&lt;br /&gt;
&lt;br /&gt;
== Libs ==&lt;br /&gt;
&lt;br /&gt;
C++ bindings are not included, since their required versions match those of the C counterparts.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Library&lt;br /&gt;
! v 0.92&lt;br /&gt;
! v 1.0&lt;br /&gt;
! v 1.1&lt;br /&gt;
! v 1.2&lt;br /&gt;
! v 1.3&lt;br /&gt;
! v 1.4&lt;br /&gt;
! master/gtk4&lt;br /&gt;
|-&lt;br /&gt;
| Boehm-GC&lt;br /&gt;
| 7.2&lt;br /&gt;
| 7.2&lt;br /&gt;
| 7.2&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Cairo&lt;br /&gt;
| 1.14&lt;br /&gt;
| 1.14 (1.15.4 required for PDF links)&lt;br /&gt;
| 1.16*&lt;br /&gt;
| 1.16&lt;br /&gt;
| 1.16&lt;br /&gt;
|&lt;br /&gt;
| 1.18* **&lt;br /&gt;
|-&lt;br /&gt;
| double-conversion [https://github.com/google/double-conversion]&amp;lt;br/&amp;gt;''(lib2geom dependency)''&lt;br /&gt;
| ''(not required)''&lt;br /&gt;
| any&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| FreeType&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 2.9* (Required for Variable fonts)&lt;br /&gt;
| 2.9&lt;br /&gt;
| 2.9&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| GDL&lt;br /&gt;
| N/A&amp;lt;br /&amp;gt;(3.4)&lt;br /&gt;
| 3.4&lt;br /&gt;
| Not Used&lt;br /&gt;
| Not Used&lt;br /&gt;
| Not Used&lt;br /&gt;
| Not Used&lt;br /&gt;
|-&lt;br /&gt;
| Glib&lt;br /&gt;
| 2.28&lt;br /&gt;
| 2.48&lt;br /&gt;
| 2.56 or 2.62*&lt;br /&gt;
| 2.64&lt;br /&gt;
| 2.64&lt;br /&gt;
|&lt;br /&gt;
| 2.68**&lt;br /&gt;
|-&lt;br /&gt;
| GTK+&lt;br /&gt;
| 2.24&amp;lt;br /&amp;gt;(3.8)&lt;br /&gt;
| 3.22&lt;br /&gt;
| 3.24*&lt;br /&gt;
| 3.24&lt;br /&gt;
| 3.24&lt;br /&gt;
|&lt;br /&gt;
| 4.12&amp;lt;sup&amp;gt;+&amp;lt;/sup&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| GNU Scientific Library&lt;br /&gt;
| ?&lt;br /&gt;
| ?&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| HarfBuzz&lt;br /&gt;
| ?&lt;br /&gt;
| ?&lt;br /&gt;
| 2.2*&lt;br /&gt;
| 2.6&lt;br /&gt;
| 2.6&lt;br /&gt;
| 2.6.5*&lt;br /&gt;
| 8.0&lt;br /&gt;
|-&lt;br /&gt;
| libsigc++&lt;br /&gt;
| ''2.0.12*''&lt;br /&gt;
| ''2.0.12*''&lt;br /&gt;
| ''2.0.12*''&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 3.0**&lt;br /&gt;
|-&lt;br /&gt;
| libSoup&lt;br /&gt;
| ''(not required)''&lt;br /&gt;
| (any)&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| libpotrace&lt;br /&gt;
| ''(not required)''&lt;br /&gt;
| (any)&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| libxml&lt;br /&gt;
| ''2.6.11*''&lt;br /&gt;
| ''2.6.11*''&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| libxslt&lt;br /&gt;
| ''1.0.15*''&lt;br /&gt;
| ''1.0.15*''&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| lcms&lt;br /&gt;
| 1.13&lt;br /&gt;
| 2.2&lt;br /&gt;
| 2.2 (2.9*)&lt;br /&gt;
| 2.9*&lt;br /&gt;
| 2.9*&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Pango&lt;br /&gt;
| 1.24&lt;br /&gt;
| 1.24 (1.41.1 required for variable fonts)&lt;br /&gt;
| 1.42*&lt;br /&gt;
| 1.44&lt;br /&gt;
| 1.44 (HarfBuzz shaping)&lt;br /&gt;
|&lt;br /&gt;
| 2.48**&lt;br /&gt;
|-&lt;br /&gt;
| Poppler&lt;br /&gt;
| 0.20.0&lt;br /&gt;
| 0.20.0&lt;br /&gt;
| 0.29 (0.71*)&lt;br /&gt;
| 0.29 (0.71*)&lt;br /&gt;
| 0.71*&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [https://formulae.brew.sh/formula/gtk-mac-integration gtk-mac-integration]&amp;lt;br&amp;gt;[https://www.macports.org/ports.php?by=library&amp;amp;substr=gtk-osx-application-gtk3 gtk-osx-application-gtk3]&lt;br /&gt;
| N/A&lt;br /&gt;
| 2.0.8 ([[CompilingMacOsX|macOS only]])&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
''* Tentative dependency''&lt;br /&gt;
&lt;br /&gt;
* Pango 1.42.2 requires Harfbuzz 1.4.2&lt;br /&gt;
* Pango 1.44.0 requires Glib 2.59.2 and Harfbuzz 2.0. 1.44 exposes hb_font directly.&lt;br /&gt;
* Pango 1.45.1 requires Glib 2.60&lt;br /&gt;
* Pango 1.48.4 has vertical upright marks fix.&lt;br /&gt;
* Harfbuzz 4.1 changes glyph positioning for upright vertical text when font does not have vertical metrics (from glyph touching to of cell to being centered in cell).&lt;br /&gt;
* Cairo 1.18 supports various color font formats include export to PDF.&lt;br /&gt;
&lt;br /&gt;
''** Gtkmm4 requires API changed Glibmm, Cairomm, and Pangomm. In particular, enums use child namespaces in newer libraries (Cairo::FORMAT_ARGB32 -&amp;gt; Cairo::Surface::Format::ARGB32).''&lt;br /&gt;
&lt;br /&gt;
''&amp;lt;sup&amp;gt;+&amp;lt;/sup&amp;gt; Decision at 5 Nov 2023 developer's meeting. Gtk4 4.10.1 has an important scrolling bug fix.''&lt;br /&gt;
&lt;br /&gt;
== Distros ==&lt;br /&gt;
&lt;br /&gt;
Note: This table is not relevant to (non-fink) MacOS X, where we ship the desired version with Inkscape.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Inkscape&amp;quot; column is default or distro version / oldest that builds - latest that builds. If no latest is given then that means trunk is expected to build on the given platform.&lt;br /&gt;
&lt;br /&gt;
e.g. for a distro that ships with 0.48 but should support building of trunk you might get:&lt;br /&gt;
 0.48 / 0.47-&lt;br /&gt;
&lt;br /&gt;
'''General rules:'''&lt;br /&gt;
* Support latest Debian Stable (as of feature freeze) [https://www.debian.org/distrib/packages Debian packages]&lt;br /&gt;
* Support latest Ubuntu LTS (as of feature freeze) [https://packages.ubuntu.com/ Ubuntu packages]&lt;br /&gt;
**e.g. Considering Inkscape 1.2, the latest Ubuntu LTS at '''feature freeze time''' (around February 2022) would have been Ubuntu 20.04. The latest LTS at release time (around May 2022), though, will be Ubuntu 22.04.  Therefore, according to the rule, we should support Ubuntu 20.04 LTS as the minimum version.&lt;br /&gt;
&lt;br /&gt;
* Support last two Fedora releases (as of feature freeze) [https://packages.fedoraproject.org/ Fedora packages]&lt;br /&gt;
* Don't break ''point'' releases.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Distro&lt;br /&gt;
! Inkscape&lt;br /&gt;
! gcc&amp;lt;sup&amp;gt;#&amp;lt;/sup&amp;gt;&lt;br /&gt;
! clang&amp;lt;sup&amp;gt;#&amp;lt;/sup&amp;gt;&lt;br /&gt;
! cairo&lt;br /&gt;
! cairomm&lt;br /&gt;
! freetype&lt;br /&gt;
! glib&lt;br /&gt;
! glibmm&lt;br /&gt;
! gtk+&lt;br /&gt;
! gtkmm&lt;br /&gt;
! harfbuzz&lt;br /&gt;
! pango&lt;br /&gt;
! poppler&lt;br /&gt;
! gdl&lt;br /&gt;
! lcms2&lt;br /&gt;
! libsigc++&lt;br /&gt;
! libgc &amp;lt;!-- Fedora rpm: gc --&amp;gt;&lt;br /&gt;
! libsoup&lt;br /&gt;
|-&lt;br /&gt;
| Windows MSYS2 (2021-04-14)&amp;lt;br/&amp;gt;([https://github.com/Alexpux/MINGW-packages mingw-w64 packages] from MSYS2 project)&lt;br /&gt;
  &amp;lt;!-- see http://quodlibet.duckdns.org/msys2/base for list of latest package versions --&amp;gt;&lt;br /&gt;
| 1.0.2&lt;br /&gt;
| 10.2.0&lt;br /&gt;
| 11.0.0&lt;br /&gt;
| 1.17.4&lt;br /&gt;
| 1.12.2&lt;br /&gt;
| 2.10.4&lt;br /&gt;
| 2.68.1&lt;br /&gt;
| 2.66.0&lt;br /&gt;
| 3.24.27&lt;br /&gt;
| 3.24.3&lt;br /&gt;
| 2.8.0&lt;br /&gt;
| 1.48.4&lt;br /&gt;
| 20.12.1&lt;br /&gt;
| 3.34.0&lt;br /&gt;
| 2.12&lt;br /&gt;
| 2.10.6&lt;br /&gt;
| 8.0.4 &amp;lt;!-- mingw-w64-gc --&amp;gt;&lt;br /&gt;
| 2.72.0&lt;br /&gt;
|-&lt;br /&gt;
| Debian 11 (Bullseye, oldstable 21.08) &amp;lt;small&amp;gt;EOL 2026&amp;lt;/small&amp;gt;&lt;br /&gt;
| 1.0.2&lt;br /&gt;
| 10.2.1&lt;br /&gt;
| 13.0.1&lt;br /&gt;
| 1.16&lt;br /&gt;
| 1.12.2&lt;br /&gt;
| 2.10.4&lt;br /&gt;
| 2.66.8&lt;br /&gt;
| 2.64.2&lt;br /&gt;
| 3.24.24&lt;br /&gt;
| 3.24.2&lt;br /&gt;
| 2.7.4&lt;br /&gt;
| 1.46.2&lt;br /&gt;
| 20.09.0&lt;br /&gt;
| 3.34.0&lt;br /&gt;
| 2.12&lt;br /&gt;
| 2.10.4&lt;br /&gt;
| 8.0.4&lt;br /&gt;
| 2.72.0&lt;br /&gt;
|-&lt;br /&gt;
| Debian 12 (Bookworm, stable, 23.10) &amp;lt;small&amp;gt;EOL 2028?&amp;lt;/small&amp;gt;&lt;br /&gt;
| 1.2.2&lt;br /&gt;
| 12.2.0&lt;br /&gt;
| 15.0.6&lt;br /&gt;
| 1.16.0&lt;br /&gt;
| 1.12.1&lt;br /&gt;
| 2.10.4&lt;br /&gt;
| 2.74.5&lt;br /&gt;
| 2.74.0&lt;br /&gt;
| 3.24.36&amp;lt;br /&amp;gt;4.8.3&lt;br /&gt;
| 3.24.7&amp;lt;br /&amp;gt;4.8.0&lt;br /&gt;
| 6.0.0&lt;br /&gt;
| 1.50.12&lt;br /&gt;
| 22.12.0&lt;br /&gt;
| 3.40.0&lt;br /&gt;
| 2.14.1&lt;br /&gt;
| 2.12.0&amp;lt;br /&amp;gt;3.4.0&lt;br /&gt;
| 8.2.2&lt;br /&gt;
| 2.74.03&amp;lt;br /&amp;gt;3.2.2&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu 22.04 LTS (Jammy Jellyfish) &amp;lt;small&amp;gt;EOL 2027-04&amp;lt;/small&amp;gt;&lt;br /&gt;
| 1.1.2&lt;br /&gt;
| 12.3.0&lt;br /&gt;
| 15.0.7&lt;br /&gt;
| 1.16.0&lt;br /&gt;
| 1.12.2&lt;br /&gt;
| 2.11.1&lt;br /&gt;
| 2.72.1&lt;br /&gt;
| 2.66.2&lt;br /&gt;
| 3.24.33&amp;lt;br /&amp;gt;4.6.2&lt;br /&gt;
| 3.24.5&amp;lt;br /&amp;gt;no libgtkmm-4.0&lt;br /&gt;
| 2.7.4&lt;br /&gt;
| 1.50.6&lt;br /&gt;
| 22.02.0&lt;br /&gt;
| 3.40.0&lt;br /&gt;
| 2.12-rc1&lt;br /&gt;
| 2.10.4&lt;br /&gt;
| 8.0.6&lt;br /&gt;
| 2.74.2&amp;lt;br /&amp;gt;3.0.5&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu 24.04 LTS (Noble) &amp;lt;small&amp;gt;EOL 2029-04&amp;lt;/small&amp;gt;&lt;br /&gt;
| 1.2.2&lt;br /&gt;
| 13.2.0&lt;br /&gt;
| 18.0.0&amp;lt;br /&amp;gt;(18.1.3)&lt;br /&gt;
| 1.18.0&lt;br /&gt;
| 1.14.5&amp;lt;br /&amp;gt;1.18.0&lt;br /&gt;
| 2.13.2&lt;br /&gt;
| 2.80.0&lt;br /&gt;
| 2.66.7&amp;lt;br /&amp;gt;2.78.1&lt;br /&gt;
| 3.24.41&amp;lt;br /&amp;gt;4.14.2&lt;br /&gt;
| 3.24.9&amp;lt;br /&amp;gt;4.10.0&lt;br /&gt;
| 8.3.0&lt;br /&gt;
| 1.52.1&amp;lt;br /&amp;gt;2.52.0&lt;br /&gt;
| 24.02.0&lt;br /&gt;
| 3.40.0&lt;br /&gt;
| 2.14.2&lt;br /&gt;
| 2.12.1&amp;lt;br /&amp;gt;3.6.0&lt;br /&gt;
| 8.2.6&lt;br /&gt;
| 2.74.3&amp;lt;br /&amp;gt;3.4.4&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu 24.10 (Oracular) &amp;lt;small&amp;gt;EOL 2025-07&amp;lt;/small&amp;gt;&lt;br /&gt;
| 1.2.2&lt;br /&gt;
| 14.1.0&lt;br /&gt;
| 19.0&amp;lt;br /&amp;gt;(19.0)&lt;br /&gt;
| 1.18.2&lt;br /&gt;
| 1.14.5&amp;lt;br /&amp;gt;1.18.0&lt;br /&gt;
| 2.13.3&lt;br /&gt;
| 2.80.0&lt;br /&gt;
| 2.66.7&amp;lt;br /&amp;gt;2.82.0&lt;br /&gt;
| 3.24.43&amp;lt;br /&amp;gt;4.16.1&lt;br /&gt;
| 3.24.9&amp;lt;br /&amp;gt;4.16.0&lt;br /&gt;
| 9.0.0&lt;br /&gt;
| 1.54.0&amp;lt;br /&amp;gt;2.54.0&lt;br /&gt;
| 24.08.0&lt;br /&gt;
| 3.40.0&lt;br /&gt;
| 2.14.2&lt;br /&gt;
| 2.12.1&amp;lt;br /&amp;gt;3.6.0&lt;br /&gt;
| 8.2.6&lt;br /&gt;
| 2.74.3&amp;lt;br /&amp;gt;3.6.0|-&lt;br /&gt;
|-&lt;br /&gt;
|| Ubuntu 25.4 (Plucky) &amp;lt;small&amp;gt;EOL 2026-01&amp;lt;/small&amp;gt;&lt;br /&gt;
| 1.2.2&lt;br /&gt;
| 14.2.0&lt;br /&gt;
| 12.0&lt;br /&gt;
| 1.18.4&lt;br /&gt;
| 1.14.5&amp;lt;br /&amp;gt;1.18.0&lt;br /&gt;
| 2.13.3&lt;br /&gt;
| 2.80.1&lt;br /&gt;
| 2.66.8&amp;lt;br /&amp;gt;2.84.0&lt;br /&gt;
| 3.24.49&amp;lt;br /&amp;gt;4.18.4&lt;br /&gt;
| 3.24.10&amp;lt;br /&amp;gt;4.18.0&lt;br /&gt;
| 10.2.0&lt;br /&gt;
| 1.56.3&amp;lt;br /&amp;gt;2.56.1&lt;br /&gt;
| 25.03.0&lt;br /&gt;
| &lt;br /&gt;
| 2.16.2&lt;br /&gt;
| 2.12.1&amp;lt;br /&amp;gt;3.6.0&lt;br /&gt;
| 8.2.8&lt;br /&gt;
| 2.74.3&amp;lt;br /&amp;gt;3.6.5&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;sup&amp;gt;#&amp;lt;/sup&amp;gt;Debian and Ubuntu offer multiple gcc and clang versions, latest available version listed.&lt;br /&gt;
&lt;br /&gt;
* Agreed to at Saarbrücken hackfest.&lt;br /&gt;
&lt;br /&gt;
== Getting and Installing Source packages ==&lt;br /&gt;
&lt;br /&gt;
See [https://inkscape.org/develop/getting-started/ Getting Started]&lt;br /&gt;
&lt;br /&gt;
== Optional Dependencies ==&lt;br /&gt;
&lt;br /&gt;
Inkscape will still compile without these, but some features may be missing if they are absent during compilation:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Library&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Needed for&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Default&lt;br /&gt;
|-&lt;br /&gt;
|aspell&lt;br /&gt;
|Dictionaries for spell checking&lt;br /&gt;
|On&lt;br /&gt;
|-&lt;br /&gt;
|libcdr&lt;br /&gt;
|Open Corel Draw files&lt;br /&gt;
|On&lt;br /&gt;
|-&lt;br /&gt;
|gettext/msgformat&lt;br /&gt;
|Translation support&lt;br /&gt;
|On&lt;br /&gt;
|-&lt;br /&gt;
|gtest/gmock&lt;br /&gt;
|Automatted testing&lt;br /&gt;
|Off&lt;br /&gt;
|-&lt;br /&gt;
|gspell&lt;br /&gt;
|Spell checking&lt;br /&gt;
|On&lt;br /&gt;
|-&lt;br /&gt;
|imagemagick&lt;br /&gt;
|Bitmap editing extensions, bitmap import resolution&lt;br /&gt;
|On&lt;br /&gt;
|-&lt;br /&gt;
|jpeg&lt;br /&gt;
|jpeg import?&lt;br /&gt;
|On&lt;br /&gt;
|-&lt;br /&gt;
|OpenMP&lt;br /&gt;
|Multi-threaded filter rendering&lt;br /&gt;
|On&lt;br /&gt;
|-&lt;br /&gt;
|scour&lt;br /&gt;
|Save as Optimized SVG&lt;br /&gt;
|(not needed during compiling, Python)&lt;br /&gt;
|-&lt;br /&gt;
|libvisio&lt;br /&gt;
|Open Visio Files, use Visio stencils&lt;br /&gt;
|On&lt;br /&gt;
|-&lt;br /&gt;
|libwpg&lt;br /&gt;
|Open WordPerfect Graphics&lt;br /&gt;
|On&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:About Inkscape]]&lt;br /&gt;
[[Category:Developer Documentation]]&lt;/div&gt;</summary>
		<author><name>Tavmjong</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Inkscape_Summit_2025_Nuremberg&amp;diff=123152</id>
		<title>Inkscape Summit 2025 Nuremberg</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Inkscape_Summit_2025_Nuremberg&amp;diff=123152"/>
		<updated>2025-03-10T16:30:19Z</updated>

		<summary type="html">&lt;p&gt;Tavmjong: /* Add your ideas here! */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Inksummit2025.png|left|thumb|150x150px]]&lt;br /&gt;
This page details the planning of Inkscape's 2025 summit in Nuremberg, Germany. The hackfest will take place on '''May 24–28, 2025'''. We are looking to bring together a group of '''17 attendees'''.  We are fully booked and the number of participants is final now.&lt;br /&gt;
&lt;br /&gt;
This summit takes place directly before the 2025 Libre Graphics Meeting.&lt;br /&gt;
&lt;br /&gt;
Previous events: [[Hackfest2023 Bensberg]], [[Hackfest2019 Saarbrücken]], [[Hackfest2019 SCALE]], [[Hackfest2018 Kiel]], [[Hackfest2018 LGM]], [[Hackfest2018]], [[Hackfest2017]], [[Hackfest2016]], [[Hackfest2015]].&lt;br /&gt;
[[Category:Hackfest]]&lt;br /&gt;
&lt;br /&gt;
= Agenda =&lt;br /&gt;
&lt;br /&gt;
=== Add your ideas here! ===&lt;br /&gt;
&lt;br /&gt;
* Bug triaging&lt;br /&gt;
**  Issue filtering (useful application for AI?)&lt;br /&gt;
** Feature requests: how to collect into actionable projects&lt;br /&gt;
* Development&lt;br /&gt;
** LPE refactoring&lt;br /&gt;
** 1.5&lt;br /&gt;
*** Selection cues&lt;br /&gt;
*** Status bar&lt;br /&gt;
** 1.4.1 (1.4.2?)&lt;br /&gt;
*** Add Interface test cases (replay certain steps to create an artwork) to check for feature breakage&lt;br /&gt;
*** Canvas performance&lt;br /&gt;
* Documentation&lt;br /&gt;
** Cleaning up documentation (wiki, dev docs, user docs, extension docs)&lt;br /&gt;
* Extensions&lt;br /&gt;
** &amp;quot;Using Inkscape to make physical things&amp;quot;&lt;br /&gt;
*** Have a look at Hatch Embroidery (paid software that has a cool preview feature and thousands of advanced options that are hard to understand)&lt;br /&gt;
** svgpie and inkex&lt;br /&gt;
*** Separation of concerns? (svgpie for SVG wrangling, inkex for an API to the Inkscape interface)&lt;br /&gt;
** async extensions (new extension type in development, enables extensions to receive updated info from the document while running)&lt;br /&gt;
* Organization&lt;br /&gt;
** Foundation/organization setup (what needs actions/help?)&lt;br /&gt;
**Relationship between Inkscape and commercial actors (e.g. advertising companies / developers available for contract work, support contracts)&lt;br /&gt;
**Grants program&lt;br /&gt;
* UX&lt;br /&gt;
** Charter &amp;amp; policy&lt;br /&gt;
** Design discussion&lt;br /&gt;
*** Object properties (for text, for multi-selection)&lt;br /&gt;
*** new settings (we have tools, but need all other categories)&lt;br /&gt;
*** LPEs and their panels&lt;br /&gt;
*** CMYK export workflow&lt;br /&gt;
*** Swatches dialog&lt;br /&gt;
*** Text tab of Text and Font dialog. What is it's purpose? Can spell-checking be moved completely on-canvas? (There is on-canvas spell checking via the Check Spelling dialog but misspelled words aren't shown unless this dialog is called.)&lt;br /&gt;
* Website&lt;br /&gt;
** Infrastructure update (less 502s)&lt;br /&gt;
** Library update (django 5)&lt;br /&gt;
** Design/UX overhaul&lt;br /&gt;
** Separate funding page? (Blender, Krita, Thunderbird and KDE have it)&lt;/div&gt;</summary>
		<author><name>Tavmjong</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Inkscape_Summit_2025_Nuremberg&amp;diff=123151</id>
		<title>Inkscape Summit 2025 Nuremberg</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Inkscape_Summit_2025_Nuremberg&amp;diff=123151"/>
		<updated>2025-03-10T16:25:43Z</updated>

		<summary type="html">&lt;p&gt;Tavmjong: /* Add your ideas here! */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Inksummit2025.png|left|thumb|150x150px]]&lt;br /&gt;
This page details the planning of Inkscape's 2025 summit in Nuremberg, Germany. The hackfest will take place on '''May 24–28, 2025'''. We are looking to bring together a group of '''17 attendees'''.  We are fully booked and the number of participants is final now.&lt;br /&gt;
&lt;br /&gt;
This summit takes place directly before the 2025 Libre Graphics Meeting.&lt;br /&gt;
&lt;br /&gt;
Previous events: [[Hackfest2023 Bensberg]], [[Hackfest2019 Saarbrücken]], [[Hackfest2019 SCALE]], [[Hackfest2018 Kiel]], [[Hackfest2018 LGM]], [[Hackfest2018]], [[Hackfest2017]], [[Hackfest2016]], [[Hackfest2015]].&lt;br /&gt;
[[Category:Hackfest]]&lt;br /&gt;
&lt;br /&gt;
= Agenda =&lt;br /&gt;
&lt;br /&gt;
=== Add your ideas here! ===&lt;br /&gt;
&lt;br /&gt;
* Bug triaging&lt;br /&gt;
**  Issue filtering (useful application for AI?)&lt;br /&gt;
** Feature requests: how to collect into actionable projects&lt;br /&gt;
* Development&lt;br /&gt;
** LPE refactoring&lt;br /&gt;
** 1.5&lt;br /&gt;
*** Selection cues&lt;br /&gt;
*** Status bar&lt;br /&gt;
** 1.4.1 (1.4.2?)&lt;br /&gt;
*** Add Interface test cases (replay certain steps to create an artwork) to check for feature breakage&lt;br /&gt;
*** Canvas performance&lt;br /&gt;
* Documentation&lt;br /&gt;
** Cleaning up documentation (wiki, dev docs, user docs, extension docs)&lt;br /&gt;
* Extensions&lt;br /&gt;
** &amp;quot;Using Inkscape to make physical things&amp;quot;&lt;br /&gt;
*** Have a look at Hatch Embroidery (paid software that has a cool preview feature and thousands of advanced options that are hard to understand)&lt;br /&gt;
** svgpie and inkex&lt;br /&gt;
*** Separation of concerns? (svgpie for SVG wrangling, inkex for an API to the Inkscape interface)&lt;br /&gt;
** async extensions (new extension type in development, enables extensions to receive updated info from the document while running)&lt;br /&gt;
* Organization&lt;br /&gt;
** Foundation/organization setup (what needs actions/help?)&lt;br /&gt;
**Relationship between Inkscape and commercial actors (e.g. advertising companies / developers available for contract work, support contracts)&lt;br /&gt;
**Grants program&lt;br /&gt;
* UX&lt;br /&gt;
** Charter &amp;amp; policy&lt;br /&gt;
** Design discussion&lt;br /&gt;
*** Object properties (for text, for multi-selection)&lt;br /&gt;
*** new settings (we have tools, but need all other categories)&lt;br /&gt;
*** LPEs and their panels&lt;br /&gt;
*** CMYK export workflow&lt;br /&gt;
*** Swatches dialog&lt;br /&gt;
*** Text tab of Text and Font dialog. What is it's purpose? Can spell-checking be moved on-canvas?&lt;br /&gt;
* Website&lt;br /&gt;
** Infrastructure update (less 502s)&lt;br /&gt;
** Library update (django 5)&lt;br /&gt;
** Design/UX overhaul&lt;br /&gt;
** Separate funding page? (Blender, Krita, Thunderbird and KDE have it)&lt;/div&gt;</summary>
		<author><name>Tavmjong</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Tracking_Dependencies&amp;diff=123091</id>
		<title>Tracking Dependencies</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Tracking_Dependencies&amp;diff=123091"/>
		<updated>2025-02-05T08:50:36Z</updated>

		<summary type="html">&lt;p&gt;Tavmjong: /* Libs */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Compilers ==&lt;br /&gt;
&lt;br /&gt;
* Version 1.0 requires a C++11 compiler.&lt;br /&gt;
* Version 1.1 requires a C++17 compiler.&lt;br /&gt;
* Version 1.4 requires a C++20 compiler.&lt;br /&gt;
&lt;br /&gt;
See [[c++11]], [[c++17]], and [[C++20]].&lt;br /&gt;
&lt;br /&gt;
== Libs ==&lt;br /&gt;
&lt;br /&gt;
C++ bindings are not included, since their required versions match those of the C counterparts.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Library&lt;br /&gt;
! v 0.92&lt;br /&gt;
! v 1.0&lt;br /&gt;
! v 1.1&lt;br /&gt;
! v 1.2&lt;br /&gt;
! v 1.3&lt;br /&gt;
! v 1.4&lt;br /&gt;
! master/gtk4&lt;br /&gt;
|-&lt;br /&gt;
| Boehm-GC&lt;br /&gt;
| 7.2&lt;br /&gt;
| 7.2&lt;br /&gt;
| 7.2&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Cairo&lt;br /&gt;
| 1.14&lt;br /&gt;
| 1.14 (1.15.4 required for PDF links)&lt;br /&gt;
| 1.16*&lt;br /&gt;
| 1.16&lt;br /&gt;
| 1.16&lt;br /&gt;
|&lt;br /&gt;
| 1.18* **&lt;br /&gt;
|-&lt;br /&gt;
| double-conversion [https://github.com/google/double-conversion]&amp;lt;br/&amp;gt;''(lib2geom dependency)''&lt;br /&gt;
| ''(not required)''&lt;br /&gt;
| any&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| FreeType&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 2.9* (Required for Variable fonts)&lt;br /&gt;
| 2.9&lt;br /&gt;
| 2.9&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| GDL&lt;br /&gt;
| N/A&amp;lt;br /&amp;gt;(3.4)&lt;br /&gt;
| 3.4&lt;br /&gt;
| Not Used&lt;br /&gt;
| Not Used&lt;br /&gt;
| Not Used&lt;br /&gt;
| Not Used&lt;br /&gt;
|-&lt;br /&gt;
| Glib&lt;br /&gt;
| 2.28&lt;br /&gt;
| 2.48&lt;br /&gt;
| 2.56 or 2.62*&lt;br /&gt;
| 2.64&lt;br /&gt;
| 2.64&lt;br /&gt;
|&lt;br /&gt;
| 2.68**&lt;br /&gt;
|-&lt;br /&gt;
| GTK+&lt;br /&gt;
| 2.24&amp;lt;br /&amp;gt;(3.8)&lt;br /&gt;
| 3.22&lt;br /&gt;
| 3.24*&lt;br /&gt;
| 3.24&lt;br /&gt;
| 3.24&lt;br /&gt;
|&lt;br /&gt;
| 4.12&amp;lt;sup&amp;gt;+&amp;lt;/sup&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| GNU Scientific Library&lt;br /&gt;
| ?&lt;br /&gt;
| ?&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| HarfBuzz&lt;br /&gt;
| ?&lt;br /&gt;
| ?&lt;br /&gt;
| 2.2*&lt;br /&gt;
| 2.6&lt;br /&gt;
| 2.6&lt;br /&gt;
| 2.6.5*&lt;br /&gt;
| 8.0&lt;br /&gt;
|-&lt;br /&gt;
| libsigc++&lt;br /&gt;
| ''2.0.12*''&lt;br /&gt;
| ''2.0.12*''&lt;br /&gt;
| ''2.0.12*''&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 3.0**&lt;br /&gt;
|-&lt;br /&gt;
| libSoup&lt;br /&gt;
| ''(not required)''&lt;br /&gt;
| (any)&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| libpotrace&lt;br /&gt;
| ''(not required)''&lt;br /&gt;
| (any)&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| libxml&lt;br /&gt;
| ''2.6.11*''&lt;br /&gt;
| ''2.6.11*''&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| libxslt&lt;br /&gt;
| ''1.0.15*''&lt;br /&gt;
| ''1.0.15*''&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| lcms&lt;br /&gt;
| 1.13&lt;br /&gt;
| 2.2&lt;br /&gt;
| 2.2 (2.9*)&lt;br /&gt;
| 2.9*&lt;br /&gt;
| 2.9*&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Pango&lt;br /&gt;
| 1.24&lt;br /&gt;
| 1.24 (1.41.1 required for variable fonts)&lt;br /&gt;
| 1.42*&lt;br /&gt;
| 1.44&lt;br /&gt;
| 1.44 (HarfBuzz shaping)&lt;br /&gt;
|&lt;br /&gt;
| 2.48**&lt;br /&gt;
|-&lt;br /&gt;
| Poppler&lt;br /&gt;
| 0.20.0&lt;br /&gt;
| 0.20.0&lt;br /&gt;
| 0.29 (0.71*)&lt;br /&gt;
| 0.29 (0.71*)&lt;br /&gt;
| 0.71*&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [https://formulae.brew.sh/formula/gtk-mac-integration gtk-mac-integration]&amp;lt;br&amp;gt;[https://www.macports.org/ports.php?by=library&amp;amp;substr=gtk-osx-application-gtk3 gtk-osx-application-gtk3]&lt;br /&gt;
| N/A&lt;br /&gt;
| 2.0.8 ([[CompilingMacOsX|macOS only]])&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
''* Tentative dependency''&lt;br /&gt;
&lt;br /&gt;
* Pango 1.42.2 requires Harfbuzz 1.4.2&lt;br /&gt;
* Pango 1.44.0 requires Glib 2.59.2 and Harfbuzz 2.0. 1.44 exposes hb_font directly.&lt;br /&gt;
* Pango 1.45.1 requires Glib 2.60&lt;br /&gt;
* Pango 1.48.4 has vertical upright marks fix.&lt;br /&gt;
* Harfbuzz 4.1 changes glyph positioning for upright vertical text when font does not have vertical metrics (from glyph touching to of cell to being centered in cell).&lt;br /&gt;
* Cairo 1.18 supports various color font formats include export to PDF.&lt;br /&gt;
&lt;br /&gt;
''** Gtkmm4 requires API changed Glibmm, Cairomm, and Pangomm. In particular, enums use child namespaces in newer libraries (Cairo::FORMAT_ARGB32 -&amp;gt; Cairo::Surface::Format::ARGB32).''&lt;br /&gt;
&lt;br /&gt;
''&amp;lt;sup&amp;gt;+&amp;lt;/sup&amp;gt; Decision at 5 Nov 2023 developer's meeting. Gtk4 4.10.1 has an important scrolling bug fix.''&lt;br /&gt;
&lt;br /&gt;
== Distros ==&lt;br /&gt;
&lt;br /&gt;
Note: This table is not relevant to (non-fink) MacOS X, where we ship the desired version with Inkscape.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Inkscape&amp;quot; column is default or distro version / oldest that builds - latest that builds. If no latest is given then that means trunk is expected to build on the given platform.&lt;br /&gt;
&lt;br /&gt;
e.g. for a distro that ships with 0.48 but should support building of trunk you might get:&lt;br /&gt;
 0.48 / 0.47-&lt;br /&gt;
&lt;br /&gt;
'''General rules:'''&lt;br /&gt;
* Support latest Debian Stable (as of feature freeze) [https://www.debian.org/distrib/packages Debian packages]&lt;br /&gt;
* Support latest Ubuntu LTS (as of feature freeze) [https://packages.ubuntu.com/ Ubuntu packages]&lt;br /&gt;
**e.g. Considering Inkscape 1.2, the latest Ubuntu LTS at '''feature freeze time''' (around February 2022) would have been Ubuntu 20.04. The latest LTS at release time (around May 2022), though, will be Ubuntu 22.04.  Therefore, according to the rule, we should support Ubuntu 20.04 LTS as the minimum version.&lt;br /&gt;
&lt;br /&gt;
* Support last two Fedora releases (as of feature freeze) [https://packages.fedoraproject.org/ Fedora packages]&lt;br /&gt;
* Don't break ''point'' releases.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Distro&lt;br /&gt;
! Inkscape&lt;br /&gt;
! gcc&amp;lt;sup&amp;gt;#&amp;lt;/sup&amp;gt;&lt;br /&gt;
! clang&amp;lt;sup&amp;gt;#&amp;lt;/sup&amp;gt;&lt;br /&gt;
! cairo&lt;br /&gt;
! cairomm&lt;br /&gt;
! freetype&lt;br /&gt;
! glib&lt;br /&gt;
! glibmm&lt;br /&gt;
! gtk+&lt;br /&gt;
! gtkmm&lt;br /&gt;
! harfbuzz&lt;br /&gt;
! pango&lt;br /&gt;
! poppler&lt;br /&gt;
! gdl&lt;br /&gt;
! lcms2&lt;br /&gt;
! libsigc++&lt;br /&gt;
! libgc &amp;lt;!-- Fedora rpm: gc --&amp;gt;&lt;br /&gt;
! libsoup&lt;br /&gt;
|-&lt;br /&gt;
| Windows MSYS2 (2021-04-14)&amp;lt;br/&amp;gt;([https://github.com/Alexpux/MINGW-packages mingw-w64 packages] from MSYS2 project)&lt;br /&gt;
  &amp;lt;!-- see http://quodlibet.duckdns.org/msys2/base for list of latest package versions --&amp;gt;&lt;br /&gt;
| 1.0.2&lt;br /&gt;
| 10.2.0&lt;br /&gt;
| 11.0.0&lt;br /&gt;
| 1.17.4&lt;br /&gt;
| 1.12.2&lt;br /&gt;
| 2.10.4&lt;br /&gt;
| 2.68.1&lt;br /&gt;
| 2.66.0&lt;br /&gt;
| 3.24.27&lt;br /&gt;
| 3.24.3&lt;br /&gt;
| 2.8.0&lt;br /&gt;
| 1.48.4&lt;br /&gt;
| 20.12.1&lt;br /&gt;
| 3.34.0&lt;br /&gt;
| 2.12&lt;br /&gt;
| 2.10.6&lt;br /&gt;
| 8.0.4 &amp;lt;!-- mingw-w64-gc --&amp;gt;&lt;br /&gt;
| 2.72.0&lt;br /&gt;
|-&lt;br /&gt;
| Debian 11 (Bullseye, oldstable 21.08) &amp;lt;small&amp;gt;EOL 2026&amp;lt;/small&amp;gt;&lt;br /&gt;
| 1.0.2&lt;br /&gt;
| 10.2.1&lt;br /&gt;
| 13.0.1&lt;br /&gt;
| 1.16&lt;br /&gt;
| 1.12.2&lt;br /&gt;
| 2.10.4&lt;br /&gt;
| 2.66.8&lt;br /&gt;
| 2.64.2&lt;br /&gt;
| 3.24.24&lt;br /&gt;
| 3.24.2&lt;br /&gt;
| 2.7.4&lt;br /&gt;
| 1.46.2&lt;br /&gt;
| 20.09.0&lt;br /&gt;
| 3.34.0&lt;br /&gt;
| 2.12&lt;br /&gt;
| 2.10.4&lt;br /&gt;
| 8.0.4&lt;br /&gt;
| 2.72.0&lt;br /&gt;
|-&lt;br /&gt;
| Debian 12 (Bookworm, stable, 23.10) &amp;lt;small&amp;gt;EOL 2028?&amp;lt;/small&amp;gt;&lt;br /&gt;
| 1.2.2&lt;br /&gt;
| 12.2.0&lt;br /&gt;
| 15.0.6&lt;br /&gt;
| 1.16.0&lt;br /&gt;
| 1.12.1&lt;br /&gt;
| 2.10.4&lt;br /&gt;
| 2.74.5&lt;br /&gt;
| 2.74.0&lt;br /&gt;
| 3.24.36&amp;lt;br /&amp;gt;4.8.3&lt;br /&gt;
| 3.24.7&amp;lt;br /&amp;gt;4.8.0&lt;br /&gt;
| 6.0.0&lt;br /&gt;
| 1.50.12&lt;br /&gt;
| 22.12.0&lt;br /&gt;
| 3.40.0&lt;br /&gt;
| 2.14.1&lt;br /&gt;
| 2.12.0&amp;lt;br /&amp;gt;3.4.0&lt;br /&gt;
| 8.2.2&lt;br /&gt;
| 2.74.03&amp;lt;br /&amp;gt;3.2.2&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu 22.04 LTS (Jammy Jellyfish) &amp;lt;small&amp;gt;EOL 2027-04&amp;lt;/small&amp;gt;&lt;br /&gt;
| 1.1.2&lt;br /&gt;
| 12.3.0&lt;br /&gt;
| 15.0.7&lt;br /&gt;
| 1.16.0&lt;br /&gt;
| 1.12.2&lt;br /&gt;
| 2.11.1&lt;br /&gt;
| 2.72.1&lt;br /&gt;
| 2.66.2&lt;br /&gt;
| 3.24.33&amp;lt;br /&amp;gt;4.6.2&lt;br /&gt;
| 3.24.5&amp;lt;br /&amp;gt;no libgtkmm-4.0&lt;br /&gt;
| 2.7.4&lt;br /&gt;
| 1.50.6&lt;br /&gt;
| 22.02.0&lt;br /&gt;
| 3.40.0&lt;br /&gt;
| 2.12-rc1&lt;br /&gt;
| 2.10.4&lt;br /&gt;
| 8.0.6&lt;br /&gt;
| 2.74.2&amp;lt;br /&amp;gt;3.0.5&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu 24.04 LTS (Noble) &amp;lt;small&amp;gt;EOL 2029-04&amp;lt;/small&amp;gt;&lt;br /&gt;
| 1.2.2&lt;br /&gt;
| 13.2.0&lt;br /&gt;
| 18.0.0&amp;lt;br /&amp;gt;(18.1.3)&lt;br /&gt;
| 1.18.0&lt;br /&gt;
| 1.14.5&amp;lt;br /&amp;gt;1.18.0&lt;br /&gt;
| 2.13.2&lt;br /&gt;
| 2.80.0&lt;br /&gt;
| 2.66.7&amp;lt;br /&amp;gt;2.78.1&lt;br /&gt;
| 3.24.41&amp;lt;br /&amp;gt;4.14.2&lt;br /&gt;
| 3.24.9&amp;lt;br /&amp;gt;4.10.0&lt;br /&gt;
| 8.3.0&lt;br /&gt;
| 1.52.1&amp;lt;br /&amp;gt;2.52.0&lt;br /&gt;
| 24.02.0&lt;br /&gt;
| 3.40.0&lt;br /&gt;
| 2.14.2&lt;br /&gt;
| 2.12.1&amp;lt;br /&amp;gt;3.6.0&lt;br /&gt;
| 8.2.6&lt;br /&gt;
| 2.74.3&amp;lt;br /&amp;gt;3.4.4&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu 24.10 (Oracular) &amp;lt;small&amp;gt;EOL 2025-06&amp;lt;/small&amp;gt;&lt;br /&gt;
| 1.2.2&lt;br /&gt;
| 14.1.0&lt;br /&gt;
| 19.0&amp;lt;br /&amp;gt;(19.0)&lt;br /&gt;
| 1.18.2&lt;br /&gt;
| 1.14.5&amp;lt;br /&amp;gt;1.18.0&lt;br /&gt;
| 2.13.3&lt;br /&gt;
| 2.80.0&lt;br /&gt;
| 2.66.7&amp;lt;br /&amp;gt;2.82.0&lt;br /&gt;
| 3.24.43&amp;lt;br /&amp;gt;4.16.1&lt;br /&gt;
| 3.24.9&amp;lt;br /&amp;gt;4.16.0&lt;br /&gt;
| 9.0.0&lt;br /&gt;
| 1.54.0&amp;lt;br /&amp;gt;2.54.0&lt;br /&gt;
| 24.08.0&lt;br /&gt;
| 3.40.0&lt;br /&gt;
| 2.14.2&lt;br /&gt;
| 2.12.1&amp;lt;br /&amp;gt;3.6.0&lt;br /&gt;
| 8.2.6&lt;br /&gt;
| 2.74.3&amp;lt;br /&amp;gt;3.6.0&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;sup&amp;gt;#&amp;lt;/sup&amp;gt;Debian and Ubuntu offer multiple gcc and clang versions, latest available version listed.&lt;br /&gt;
&lt;br /&gt;
* Agreed to at Saarbrücken hackfest.&lt;br /&gt;
&lt;br /&gt;
== Getting and Installing Source packages ==&lt;br /&gt;
&lt;br /&gt;
See [https://inkscape.org/develop/getting-started/ Getting Started]&lt;br /&gt;
&lt;br /&gt;
== Optional Dependencies ==&lt;br /&gt;
&lt;br /&gt;
Inkscape will still compile without these, but some features may be missing if they are absent during compilation:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Library&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Needed for&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Default&lt;br /&gt;
|-&lt;br /&gt;
|aspell&lt;br /&gt;
|Dictionaries for spell checking&lt;br /&gt;
|On&lt;br /&gt;
|-&lt;br /&gt;
|libcdr&lt;br /&gt;
|Open Corel Draw files&lt;br /&gt;
|On&lt;br /&gt;
|-&lt;br /&gt;
|gettext/msgformat&lt;br /&gt;
|Translation support&lt;br /&gt;
|On&lt;br /&gt;
|-&lt;br /&gt;
|gtest/gmock&lt;br /&gt;
|Automatted testing&lt;br /&gt;
|Off&lt;br /&gt;
|-&lt;br /&gt;
|gspell&lt;br /&gt;
|Spell checking&lt;br /&gt;
|On&lt;br /&gt;
|-&lt;br /&gt;
|imagemagick&lt;br /&gt;
|Bitmap editing extensions, bitmap import resolution&lt;br /&gt;
|On&lt;br /&gt;
|-&lt;br /&gt;
|jpeg&lt;br /&gt;
|jpeg import?&lt;br /&gt;
|On&lt;br /&gt;
|-&lt;br /&gt;
|OpenMP&lt;br /&gt;
|Multi-threaded filter rendering&lt;br /&gt;
|On&lt;br /&gt;
|-&lt;br /&gt;
|scour&lt;br /&gt;
|Save as Optimized SVG&lt;br /&gt;
|(not needed during compiling, Python)&lt;br /&gt;
|-&lt;br /&gt;
|libvisio&lt;br /&gt;
|Open Visio Files, use Visio stencils&lt;br /&gt;
|On&lt;br /&gt;
|-&lt;br /&gt;
|libwpg&lt;br /&gt;
|Open WordPerfect Graphics&lt;br /&gt;
|On&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:About Inkscape]]&lt;br /&gt;
[[Category:Developer Documentation]]&lt;/div&gt;</summary>
		<author><name>Tavmjong</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Tracking_Dependencies&amp;diff=123080</id>
		<title>Tracking Dependencies</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Tracking_Dependencies&amp;diff=123080"/>
		<updated>2024-11-24T09:14:07Z</updated>

		<summary type="html">&lt;p&gt;Tavmjong: /* Distros */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Compilers ==&lt;br /&gt;
&lt;br /&gt;
* Version 1.0 requires a C++11 compiler.&lt;br /&gt;
* Version 1.1 requires a C++17 compiler.&lt;br /&gt;
* Version 1.4 requires a C++20 compiler.&lt;br /&gt;
&lt;br /&gt;
See [[c++11]], [[c++17]], and [[C++20]].&lt;br /&gt;
&lt;br /&gt;
== Libs ==&lt;br /&gt;
&lt;br /&gt;
C++ bindings are not included, since their required versions match those of the C counterparts.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Library&lt;br /&gt;
! v 0.92&lt;br /&gt;
! v 1.0&lt;br /&gt;
! v 1.1&lt;br /&gt;
! v 1.2&lt;br /&gt;
! v 1.3&lt;br /&gt;
! v 1.4&lt;br /&gt;
! master/gtk4&lt;br /&gt;
|-&lt;br /&gt;
| Boehm-GC&lt;br /&gt;
| 7.2&lt;br /&gt;
| 7.2&lt;br /&gt;
| 7.2&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Cairo&lt;br /&gt;
| 1.14&lt;br /&gt;
| 1.14 (1.15.4 required for PDF links)&lt;br /&gt;
| 1.16*&lt;br /&gt;
| 1.16&lt;br /&gt;
| 1.16&lt;br /&gt;
|&lt;br /&gt;
| 1.18* **&lt;br /&gt;
|-&lt;br /&gt;
| double-conversion [https://github.com/google/double-conversion]&amp;lt;br/&amp;gt;''(lib2geom dependency)''&lt;br /&gt;
| ''(not required)''&lt;br /&gt;
| any&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| FreeType&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 2.9* (Required for Variable fonts)&lt;br /&gt;
| 2.9&lt;br /&gt;
| 2.9&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| GDL&lt;br /&gt;
| N/A&amp;lt;br /&amp;gt;(3.4)&lt;br /&gt;
| 3.4&lt;br /&gt;
| Not Used&lt;br /&gt;
| Not Used&lt;br /&gt;
| Not Used&lt;br /&gt;
| Not Used&lt;br /&gt;
|-&lt;br /&gt;
| Glib&lt;br /&gt;
| 2.28&lt;br /&gt;
| 2.48&lt;br /&gt;
| 2.56 or 2.62*&lt;br /&gt;
| 2.64&lt;br /&gt;
| 2.64&lt;br /&gt;
|&lt;br /&gt;
| 2.68**&lt;br /&gt;
|-&lt;br /&gt;
| GTK+&lt;br /&gt;
| 2.24&amp;lt;br /&amp;gt;(3.8)&lt;br /&gt;
| 3.22&lt;br /&gt;
| 3.24*&lt;br /&gt;
| 3.24&lt;br /&gt;
| 3.24&lt;br /&gt;
|&lt;br /&gt;
| 4.12&amp;lt;sup&amp;gt;+&amp;lt;/sup&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| GNU Scientific Library&lt;br /&gt;
| ?&lt;br /&gt;
| ?&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| HarfBuzz&lt;br /&gt;
| ?&lt;br /&gt;
| ?&lt;br /&gt;
| 2.2*&lt;br /&gt;
| 2.6&lt;br /&gt;
| 2.6&lt;br /&gt;
| 2.6.5*&lt;br /&gt;
| 7.0*&lt;br /&gt;
|-&lt;br /&gt;
| libsigc++&lt;br /&gt;
| ''2.0.12*''&lt;br /&gt;
| ''2.0.12*''&lt;br /&gt;
| ''2.0.12*''&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 3.0**&lt;br /&gt;
|-&lt;br /&gt;
| libSoup&lt;br /&gt;
| ''(not required)''&lt;br /&gt;
| (any)&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| libpotrace&lt;br /&gt;
| ''(not required)''&lt;br /&gt;
| (any)&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| libxml&lt;br /&gt;
| ''2.6.11*''&lt;br /&gt;
| ''2.6.11*''&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| libxslt&lt;br /&gt;
| ''1.0.15*''&lt;br /&gt;
| ''1.0.15*''&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| lcms&lt;br /&gt;
| 1.13&lt;br /&gt;
| 2.2&lt;br /&gt;
| 2.2 (2.9*)&lt;br /&gt;
| 2.9*&lt;br /&gt;
| 2.9*&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Pango&lt;br /&gt;
| 1.24&lt;br /&gt;
| 1.24 (1.41.1 required for variable fonts)&lt;br /&gt;
| 1.42*&lt;br /&gt;
| 1.44&lt;br /&gt;
| 1.44 (HarfBuzz shaping)&lt;br /&gt;
|&lt;br /&gt;
| 2.48**&lt;br /&gt;
|-&lt;br /&gt;
| Poppler&lt;br /&gt;
| 0.20.0&lt;br /&gt;
| 0.20.0&lt;br /&gt;
| 0.29 (0.71*)&lt;br /&gt;
| 0.29 (0.71*)&lt;br /&gt;
| 0.71*&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [https://formulae.brew.sh/formula/gtk-mac-integration gtk-mac-integration]&amp;lt;br&amp;gt;[https://www.macports.org/ports.php?by=library&amp;amp;substr=gtk-osx-application-gtk3 gtk-osx-application-gtk3]&lt;br /&gt;
| N/A&lt;br /&gt;
| 2.0.8 ([[CompilingMacOsX|macOS only]])&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
''* Tentative dependency''&lt;br /&gt;
&lt;br /&gt;
* Pango 1.42.2 requires Harfbuzz 1.4.2&lt;br /&gt;
* Pango 1.44.0 requires Glib 2.59.2 and Harfbuzz 2.0. 1.44 exposes hb_font directly.&lt;br /&gt;
* Pango 1.45.1 requires Glib 2.60&lt;br /&gt;
* Pango 1.48.4 has vertical upright marks fix.&lt;br /&gt;
* Harfbuzz 4.1 changes glyph positioning for upright vertical text when font does not have vertical metrics (from glyph touching to of cell to being centered in cell).&lt;br /&gt;
* Cairo 1.18 supports various color font formats include export to PDF.&lt;br /&gt;
&lt;br /&gt;
''** Gtkmm4 requires API changed Glibmm, Cairomm, and Pangomm. In particular, enums use child namespaces in newer libraries (Cairo::FORMAT_ARGB32 -&amp;gt; Cairo::Surface::Format::ARGB32).''&lt;br /&gt;
&lt;br /&gt;
''&amp;lt;sup&amp;gt;+&amp;lt;/sup&amp;gt; Decision at 5 Nov 2023 developer's meeting. Gtk4 4.10.1 has an important scrolling bug fix.''&lt;br /&gt;
&lt;br /&gt;
== Distros ==&lt;br /&gt;
&lt;br /&gt;
Note: This table is not relevant to (non-fink) MacOS X, where we ship the desired version with Inkscape.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Inkscape&amp;quot; column is default or distro version / oldest that builds - latest that builds. If no latest is given then that means trunk is expected to build on the given platform.&lt;br /&gt;
&lt;br /&gt;
e.g. for a distro that ships with 0.48 but should support building of trunk you might get:&lt;br /&gt;
 0.48 / 0.47-&lt;br /&gt;
&lt;br /&gt;
'''General rules:'''&lt;br /&gt;
* Support latest Debian Stable (as of feature freeze) [https://www.debian.org/distrib/packages Debian packages]&lt;br /&gt;
* Support latest Ubuntu LTS (as of feature freeze) [https://packages.ubuntu.com/ Ubuntu packages]&lt;br /&gt;
**e.g. Considering Inkscape 1.2, the latest Ubuntu LTS at '''feature freeze time''' (around February 2022) would have been Ubuntu 20.04. The latest LTS at release time (around May 2022), though, will be Ubuntu 22.04.  Therefore, according to the rule, we should support Ubuntu 20.04 LTS as the minimum version.&lt;br /&gt;
&lt;br /&gt;
* Support last two Fedora releases (as of feature freeze) [https://packages.fedoraproject.org/ Fedora packages]&lt;br /&gt;
* Don't break ''point'' releases.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Distro&lt;br /&gt;
! Inkscape&lt;br /&gt;
! gcc&amp;lt;sup&amp;gt;#&amp;lt;/sup&amp;gt;&lt;br /&gt;
! clang&amp;lt;sup&amp;gt;#&amp;lt;/sup&amp;gt;&lt;br /&gt;
! cairo&lt;br /&gt;
! cairomm&lt;br /&gt;
! freetype&lt;br /&gt;
! glib&lt;br /&gt;
! glibmm&lt;br /&gt;
! gtk+&lt;br /&gt;
! gtkmm&lt;br /&gt;
! harfbuzz&lt;br /&gt;
! pango&lt;br /&gt;
! poppler&lt;br /&gt;
! gdl&lt;br /&gt;
! lcms2&lt;br /&gt;
! libsigc++&lt;br /&gt;
! libgc &amp;lt;!-- Fedora rpm: gc --&amp;gt;&lt;br /&gt;
! libsoup&lt;br /&gt;
|-&lt;br /&gt;
| Windows MSYS2 (2021-04-14)&amp;lt;br/&amp;gt;([https://github.com/Alexpux/MINGW-packages mingw-w64 packages] from MSYS2 project)&lt;br /&gt;
  &amp;lt;!-- see http://quodlibet.duckdns.org/msys2/base for list of latest package versions --&amp;gt;&lt;br /&gt;
| 1.0.2&lt;br /&gt;
| 10.2.0&lt;br /&gt;
| 11.0.0&lt;br /&gt;
| 1.17.4&lt;br /&gt;
| 1.12.2&lt;br /&gt;
| 2.10.4&lt;br /&gt;
| 2.68.1&lt;br /&gt;
| 2.66.0&lt;br /&gt;
| 3.24.27&lt;br /&gt;
| 3.24.3&lt;br /&gt;
| 2.8.0&lt;br /&gt;
| 1.48.4&lt;br /&gt;
| 20.12.1&lt;br /&gt;
| 3.34.0&lt;br /&gt;
| 2.12&lt;br /&gt;
| 2.10.6&lt;br /&gt;
| 8.0.4 &amp;lt;!-- mingw-w64-gc --&amp;gt;&lt;br /&gt;
| 2.72.0&lt;br /&gt;
|-&lt;br /&gt;
| Debian 11 (Bullseye, oldstable 21.08) &amp;lt;small&amp;gt;EOL 2026&amp;lt;/small&amp;gt;&lt;br /&gt;
| 1.0.2&lt;br /&gt;
| 10.2.1&lt;br /&gt;
| 13.0.1&lt;br /&gt;
| 1.16&lt;br /&gt;
| 1.12.2&lt;br /&gt;
| 2.10.4&lt;br /&gt;
| 2.66.8&lt;br /&gt;
| 2.64.2&lt;br /&gt;
| 3.24.24&lt;br /&gt;
| 3.24.2&lt;br /&gt;
| 2.7.4&lt;br /&gt;
| 1.46.2&lt;br /&gt;
| 20.09.0&lt;br /&gt;
| 3.34.0&lt;br /&gt;
| 2.12&lt;br /&gt;
| 2.10.4&lt;br /&gt;
| 8.0.4&lt;br /&gt;
| 2.72.0&lt;br /&gt;
|-&lt;br /&gt;
| Debian 12 (Bookworm, stable, 23.10) &amp;lt;small&amp;gt;EOL 2028?&amp;lt;/small&amp;gt;&lt;br /&gt;
| 1.2.2&lt;br /&gt;
| 12.2.0&lt;br /&gt;
| 15.0.6&lt;br /&gt;
| 1.16.0&lt;br /&gt;
| 1.12.1&lt;br /&gt;
| 2.10.4&lt;br /&gt;
| 2.74.5&lt;br /&gt;
| 2.74.0&lt;br /&gt;
| 3.24.36&amp;lt;br /&amp;gt;4.8.3&lt;br /&gt;
| 3.24.7&amp;lt;br /&amp;gt;4.8.0&lt;br /&gt;
| 6.0.0&lt;br /&gt;
| 1.50.12&lt;br /&gt;
| 22.12.0&lt;br /&gt;
| 3.40.0&lt;br /&gt;
| 2.14.1&lt;br /&gt;
| 2.12.0&amp;lt;br /&amp;gt;3.4.0&lt;br /&gt;
| 8.2.2&lt;br /&gt;
| 2.74.03&amp;lt;br /&amp;gt;3.2.2&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu 22.04 LTS (Jammy Jellyfish) &amp;lt;small&amp;gt;EOL 2027-04&amp;lt;/small&amp;gt;&lt;br /&gt;
| 1.1.2&lt;br /&gt;
| 12.3.0&lt;br /&gt;
| 15.0.7&lt;br /&gt;
| 1.16.0&lt;br /&gt;
| 1.12.2&lt;br /&gt;
| 2.11.1&lt;br /&gt;
| 2.72.1&lt;br /&gt;
| 2.66.2&lt;br /&gt;
| 3.24.33&amp;lt;br /&amp;gt;4.6.2&lt;br /&gt;
| 3.24.5&amp;lt;br /&amp;gt;no libgtkmm-4.0&lt;br /&gt;
| 2.7.4&lt;br /&gt;
| 1.50.6&lt;br /&gt;
| 22.02.0&lt;br /&gt;
| 3.40.0&lt;br /&gt;
| 2.12-rc1&lt;br /&gt;
| 2.10.4&lt;br /&gt;
| 8.0.6&lt;br /&gt;
| 2.74.2&amp;lt;br /&amp;gt;3.0.5&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu 24.04 LTS (Noble) &amp;lt;small&amp;gt;EOL 2029-04&amp;lt;/small&amp;gt;&lt;br /&gt;
| 1.2.2&lt;br /&gt;
| 13.2.0&lt;br /&gt;
| 18.0.0&amp;lt;br /&amp;gt;(18.1.3)&lt;br /&gt;
| 1.18.0&lt;br /&gt;
| 1.14.5&amp;lt;br /&amp;gt;1.18.0&lt;br /&gt;
| 2.13.2&lt;br /&gt;
| 2.80.0&lt;br /&gt;
| 2.66.7&amp;lt;br /&amp;gt;2.78.1&lt;br /&gt;
| 3.24.41&amp;lt;br /&amp;gt;4.14.2&lt;br /&gt;
| 3.24.9&amp;lt;br /&amp;gt;4.10.0&lt;br /&gt;
| 8.3.0&lt;br /&gt;
| 1.52.1&amp;lt;br /&amp;gt;2.52.0&lt;br /&gt;
| 24.02.0&lt;br /&gt;
| 3.40.0&lt;br /&gt;
| 2.14.2&lt;br /&gt;
| 2.12.1&amp;lt;br /&amp;gt;3.6.0&lt;br /&gt;
| 8.2.6&lt;br /&gt;
| 2.74.3&amp;lt;br /&amp;gt;3.4.4&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu 24.10 (Oracular) &amp;lt;small&amp;gt;EOL 2025-06&amp;lt;/small&amp;gt;&lt;br /&gt;
| 1.2.2&lt;br /&gt;
| 14.1.0&lt;br /&gt;
| 19.0&amp;lt;br /&amp;gt;(19.0)&lt;br /&gt;
| 1.18.2&lt;br /&gt;
| 1.14.5&amp;lt;br /&amp;gt;1.18.0&lt;br /&gt;
| 2.13.3&lt;br /&gt;
| 2.80.0&lt;br /&gt;
| 2.66.7&amp;lt;br /&amp;gt;2.82.0&lt;br /&gt;
| 3.24.43&amp;lt;br /&amp;gt;4.16.1&lt;br /&gt;
| 3.24.9&amp;lt;br /&amp;gt;4.16.0&lt;br /&gt;
| 9.0.0&lt;br /&gt;
| 1.54.0&amp;lt;br /&amp;gt;2.54.0&lt;br /&gt;
| 24.08.0&lt;br /&gt;
| 3.40.0&lt;br /&gt;
| 2.14.2&lt;br /&gt;
| 2.12.1&amp;lt;br /&amp;gt;3.6.0&lt;br /&gt;
| 8.2.6&lt;br /&gt;
| 2.74.3&amp;lt;br /&amp;gt;3.6.0&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;sup&amp;gt;#&amp;lt;/sup&amp;gt;Debian and Ubuntu offer multiple gcc and clang versions, latest available version listed.&lt;br /&gt;
&lt;br /&gt;
* Agreed to at Saarbrücken hackfest.&lt;br /&gt;
&lt;br /&gt;
== Getting and Installing Source packages ==&lt;br /&gt;
&lt;br /&gt;
See [https://inkscape.org/develop/getting-started/ Getting Started]&lt;br /&gt;
&lt;br /&gt;
== Optional Dependencies ==&lt;br /&gt;
&lt;br /&gt;
Inkscape will still compile without these, but some features may be missing if they are absent during compilation:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Library&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Needed for&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Default&lt;br /&gt;
|-&lt;br /&gt;
|aspell&lt;br /&gt;
|Dictionaries for spell checking&lt;br /&gt;
|On&lt;br /&gt;
|-&lt;br /&gt;
|libcdr&lt;br /&gt;
|Open Corel Draw files&lt;br /&gt;
|On&lt;br /&gt;
|-&lt;br /&gt;
|gettext/msgformat&lt;br /&gt;
|Translation support&lt;br /&gt;
|On&lt;br /&gt;
|-&lt;br /&gt;
|gtest/gmock&lt;br /&gt;
|Automatted testing&lt;br /&gt;
|Off&lt;br /&gt;
|-&lt;br /&gt;
|gspell&lt;br /&gt;
|Spell checking&lt;br /&gt;
|On&lt;br /&gt;
|-&lt;br /&gt;
|imagemagick&lt;br /&gt;
|Bitmap editing extensions, bitmap import resolution&lt;br /&gt;
|On&lt;br /&gt;
|-&lt;br /&gt;
|jpeg&lt;br /&gt;
|jpeg import?&lt;br /&gt;
|On&lt;br /&gt;
|-&lt;br /&gt;
|OpenMP&lt;br /&gt;
|Multi-threaded filter rendering&lt;br /&gt;
|On&lt;br /&gt;
|-&lt;br /&gt;
|scour&lt;br /&gt;
|Save as Optimized SVG&lt;br /&gt;
|(not needed during compiling, Python)&lt;br /&gt;
|-&lt;br /&gt;
|libvisio&lt;br /&gt;
|Open Visio Files, use Visio stencils&lt;br /&gt;
|On&lt;br /&gt;
|-&lt;br /&gt;
|libwpg&lt;br /&gt;
|Open WordPerfect Graphics&lt;br /&gt;
|On&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:About Inkscape]]&lt;br /&gt;
[[Category:Developer Documentation]]&lt;/div&gt;</summary>
		<author><name>Tavmjong</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Tracking_Dependencies&amp;diff=123079</id>
		<title>Tracking Dependencies</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Tracking_Dependencies&amp;diff=123079"/>
		<updated>2024-11-18T19:13:07Z</updated>

		<summary type="html">&lt;p&gt;Tavmjong: /* Distros */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Compilers ==&lt;br /&gt;
&lt;br /&gt;
* Version 1.0 requires a C++11 compiler.&lt;br /&gt;
* Version 1.1 requires a C++17 compiler.&lt;br /&gt;
* Version 1.4 requires a C++20 compiler.&lt;br /&gt;
&lt;br /&gt;
See [[c++11]], [[c++17]], and [[C++20]].&lt;br /&gt;
&lt;br /&gt;
== Libs ==&lt;br /&gt;
&lt;br /&gt;
C++ bindings are not included, since their required versions match those of the C counterparts.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Library&lt;br /&gt;
! v 0.92&lt;br /&gt;
! v 1.0&lt;br /&gt;
! v 1.1&lt;br /&gt;
! v 1.2&lt;br /&gt;
! v 1.3&lt;br /&gt;
! v 1.4&lt;br /&gt;
! master/gtk4&lt;br /&gt;
|-&lt;br /&gt;
| Boehm-GC&lt;br /&gt;
| 7.2&lt;br /&gt;
| 7.2&lt;br /&gt;
| 7.2&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Cairo&lt;br /&gt;
| 1.14&lt;br /&gt;
| 1.14 (1.15.4 required for PDF links)&lt;br /&gt;
| 1.16*&lt;br /&gt;
| 1.16&lt;br /&gt;
| 1.16&lt;br /&gt;
|&lt;br /&gt;
| 1.18* **&lt;br /&gt;
|-&lt;br /&gt;
| double-conversion [https://github.com/google/double-conversion]&amp;lt;br/&amp;gt;''(lib2geom dependency)''&lt;br /&gt;
| ''(not required)''&lt;br /&gt;
| any&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| FreeType&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 2.9* (Required for Variable fonts)&lt;br /&gt;
| 2.9&lt;br /&gt;
| 2.9&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| GDL&lt;br /&gt;
| N/A&amp;lt;br /&amp;gt;(3.4)&lt;br /&gt;
| 3.4&lt;br /&gt;
| Not Used&lt;br /&gt;
| Not Used&lt;br /&gt;
| Not Used&lt;br /&gt;
| Not Used&lt;br /&gt;
|-&lt;br /&gt;
| Glib&lt;br /&gt;
| 2.28&lt;br /&gt;
| 2.48&lt;br /&gt;
| 2.56 or 2.62*&lt;br /&gt;
| 2.64&lt;br /&gt;
| 2.64&lt;br /&gt;
|&lt;br /&gt;
| 2.68**&lt;br /&gt;
|-&lt;br /&gt;
| GTK+&lt;br /&gt;
| 2.24&amp;lt;br /&amp;gt;(3.8)&lt;br /&gt;
| 3.22&lt;br /&gt;
| 3.24*&lt;br /&gt;
| 3.24&lt;br /&gt;
| 3.24&lt;br /&gt;
|&lt;br /&gt;
| 4.12&amp;lt;sup&amp;gt;+&amp;lt;/sup&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| GNU Scientific Library&lt;br /&gt;
| ?&lt;br /&gt;
| ?&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| HarfBuzz&lt;br /&gt;
| ?&lt;br /&gt;
| ?&lt;br /&gt;
| 2.2*&lt;br /&gt;
| 2.6&lt;br /&gt;
| 2.6&lt;br /&gt;
| 2.6.5*&lt;br /&gt;
| 7.0*&lt;br /&gt;
|-&lt;br /&gt;
| libsigc++&lt;br /&gt;
| ''2.0.12*''&lt;br /&gt;
| ''2.0.12*''&lt;br /&gt;
| ''2.0.12*''&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 3.0**&lt;br /&gt;
|-&lt;br /&gt;
| libSoup&lt;br /&gt;
| ''(not required)''&lt;br /&gt;
| (any)&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| libpotrace&lt;br /&gt;
| ''(not required)''&lt;br /&gt;
| (any)&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| libxml&lt;br /&gt;
| ''2.6.11*''&lt;br /&gt;
| ''2.6.11*''&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| libxslt&lt;br /&gt;
| ''1.0.15*''&lt;br /&gt;
| ''1.0.15*''&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| lcms&lt;br /&gt;
| 1.13&lt;br /&gt;
| 2.2&lt;br /&gt;
| 2.2 (2.9*)&lt;br /&gt;
| 2.9*&lt;br /&gt;
| 2.9*&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Pango&lt;br /&gt;
| 1.24&lt;br /&gt;
| 1.24 (1.41.1 required for variable fonts)&lt;br /&gt;
| 1.42*&lt;br /&gt;
| 1.44&lt;br /&gt;
| 1.44 (HarfBuzz shaping)&lt;br /&gt;
|&lt;br /&gt;
| 2.48**&lt;br /&gt;
|-&lt;br /&gt;
| Poppler&lt;br /&gt;
| 0.20.0&lt;br /&gt;
| 0.20.0&lt;br /&gt;
| 0.29 (0.71*)&lt;br /&gt;
| 0.29 (0.71*)&lt;br /&gt;
| 0.71*&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [https://formulae.brew.sh/formula/gtk-mac-integration gtk-mac-integration]&amp;lt;br&amp;gt;[https://www.macports.org/ports.php?by=library&amp;amp;substr=gtk-osx-application-gtk3 gtk-osx-application-gtk3]&lt;br /&gt;
| N/A&lt;br /&gt;
| 2.0.8 ([[CompilingMacOsX|macOS only]])&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
''* Tentative dependency''&lt;br /&gt;
&lt;br /&gt;
* Pango 1.42.2 requires Harfbuzz 1.4.2&lt;br /&gt;
* Pango 1.44.0 requires Glib 2.59.2 and Harfbuzz 2.0. 1.44 exposes hb_font directly.&lt;br /&gt;
* Pango 1.45.1 requires Glib 2.60&lt;br /&gt;
* Pango 1.48.4 has vertical upright marks fix.&lt;br /&gt;
* Harfbuzz 4.1 changes glyph positioning for upright vertical text when font does not have vertical metrics (from glyph touching to of cell to being centered in cell).&lt;br /&gt;
* Cairo 1.18 supports various color font formats include export to PDF.&lt;br /&gt;
&lt;br /&gt;
''** Gtkmm4 requires API changed Glibmm, Cairomm, and Pangomm. In particular, enums use child namespaces in newer libraries (Cairo::FORMAT_ARGB32 -&amp;gt; Cairo::Surface::Format::ARGB32).''&lt;br /&gt;
&lt;br /&gt;
''&amp;lt;sup&amp;gt;+&amp;lt;/sup&amp;gt; Decision at 5 Nov 2023 developer's meeting. Gtk4 4.10.1 has an important scrolling bug fix.''&lt;br /&gt;
&lt;br /&gt;
== Distros ==&lt;br /&gt;
&lt;br /&gt;
Note: This table is not relevant to (non-fink) MacOS X, where we ship the desired version with Inkscape.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Inkscape&amp;quot; column is default or distro version / oldest that builds - latest that builds. If no latest is given then that means trunk is expected to build on the given platform.&lt;br /&gt;
&lt;br /&gt;
e.g. for a distro that ships with 0.48 but should support building of trunk you might get:&lt;br /&gt;
 0.48 / 0.47-&lt;br /&gt;
&lt;br /&gt;
'''General rules:'''&lt;br /&gt;
* Support latest Debian Stable (as of feature freeze) [https://www.debian.org/distrib/packages Debian packages]&lt;br /&gt;
* Support latest Ubuntu LTS (as of feature freeze) [https://packages.ubuntu.com/ Ubuntu packages]&lt;br /&gt;
**e.g. Considering Inkscape 1.2, the latest Ubuntu LTS at '''feature freeze time''' (around February 2022) would have been Ubuntu 20.04. The latest LTS at release time (around May 2022), though, will be Ubuntu 22.04.  Therefore, according to the rule, we should support Ubuntu 20.04 LTS as the minimum version.&lt;br /&gt;
&lt;br /&gt;
* Support last two Fedora releases (as of feature freeze) [https://packages.fedoraproject.org/ Fedora packages]&lt;br /&gt;
* Don't break ''point'' releases.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Distro&lt;br /&gt;
! Inkscape&lt;br /&gt;
! gcc&amp;lt;sup&amp;gt;#&amp;lt;/sup&amp;gt;&lt;br /&gt;
! clang&amp;lt;sup&amp;gt;#&amp;lt;/sup&amp;gt;&lt;br /&gt;
! cairo&lt;br /&gt;
! cairomm&lt;br /&gt;
! freetype&lt;br /&gt;
! glib&lt;br /&gt;
! glibmm&lt;br /&gt;
! gtk+&lt;br /&gt;
! gtkmm&lt;br /&gt;
! harfbuzz&lt;br /&gt;
! pango&lt;br /&gt;
! poppler&lt;br /&gt;
! gdl&lt;br /&gt;
! lcms2&lt;br /&gt;
! libsigc++&lt;br /&gt;
! libgc &amp;lt;!-- Fedora rpm: gc --&amp;gt;&lt;br /&gt;
! libsoup&lt;br /&gt;
|-&lt;br /&gt;
| Windows MSYS2 (2021-04-14)&amp;lt;br/&amp;gt;([https://github.com/Alexpux/MINGW-packages mingw-w64 packages] from MSYS2 project)&lt;br /&gt;
  &amp;lt;!-- see http://quodlibet.duckdns.org/msys2/base for list of latest package versions --&amp;gt;&lt;br /&gt;
| 1.0.2&lt;br /&gt;
| 10.2.0&lt;br /&gt;
| 11.0.0&lt;br /&gt;
| 1.17.4&lt;br /&gt;
| 1.12.2&lt;br /&gt;
| 2.10.4&lt;br /&gt;
| 2.68.1&lt;br /&gt;
| 2.66.0&lt;br /&gt;
| 3.24.27&lt;br /&gt;
| 3.24.3&lt;br /&gt;
| 2.8.0&lt;br /&gt;
| 1.48.4&lt;br /&gt;
| 20.12.1&lt;br /&gt;
| 3.34.0&lt;br /&gt;
| 2.12&lt;br /&gt;
| 2.10.6&lt;br /&gt;
| 8.0.4 &amp;lt;!-- mingw-w64-gc --&amp;gt;&lt;br /&gt;
| 2.72.0&lt;br /&gt;
|-&lt;br /&gt;
| Debian 11 (Bullseye, oldstable) &amp;lt;small&amp;gt;EOL 2026&amp;lt;/small&amp;gt;&lt;br /&gt;
| 1.0.2&lt;br /&gt;
| 10.2.1&lt;br /&gt;
| 13.0.1&lt;br /&gt;
| 1.16&lt;br /&gt;
| 1.12.2&lt;br /&gt;
| 2.10.4&lt;br /&gt;
| 2.66.8&lt;br /&gt;
| 2.64.2&lt;br /&gt;
| 3.24.24&lt;br /&gt;
| 3.24.2&lt;br /&gt;
| 2.7.4&lt;br /&gt;
| 1.46.2&lt;br /&gt;
| 20.09.0&lt;br /&gt;
| 3.34.0&lt;br /&gt;
| 2.12&lt;br /&gt;
| 2.10.4&lt;br /&gt;
| 8.0.4&lt;br /&gt;
| 2.72.0&lt;br /&gt;
|-&lt;br /&gt;
| Debian 12 (Bookworm, stable) &amp;lt;small&amp;gt;EOL 2028?&amp;lt;/small&amp;gt;&lt;br /&gt;
| 1.2.2&lt;br /&gt;
| 12.2.0&lt;br /&gt;
| 15.0.6&lt;br /&gt;
| 1.16.0&lt;br /&gt;
| 1.12.1&lt;br /&gt;
| 2.10.4&lt;br /&gt;
| 2.74.5&lt;br /&gt;
| 2.74.0&lt;br /&gt;
| 3.24.36&amp;lt;br /&amp;gt;4.8.3&lt;br /&gt;
| 3.24.7&amp;lt;br /&amp;gt;4.8.0&lt;br /&gt;
| 6.0.0&lt;br /&gt;
| 1.50.12&lt;br /&gt;
| 22.12.0&lt;br /&gt;
| 3.40.0&lt;br /&gt;
| 2.14.1&lt;br /&gt;
| 2.12.0&amp;lt;br /&amp;gt;3.4.0&lt;br /&gt;
| 8.2.2&lt;br /&gt;
| 2.74.03&amp;lt;br /&amp;gt;3.2.2&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu 22.04 LTS (Jammy Jellyfish) &amp;lt;small&amp;gt;EOL 2027-04&amp;lt;/small&amp;gt;&lt;br /&gt;
| 1.1.2&lt;br /&gt;
| 12.3.0&lt;br /&gt;
| 15.0.7&lt;br /&gt;
| 1.16.0&lt;br /&gt;
| 1.12.2&lt;br /&gt;
| 2.11.1&lt;br /&gt;
| 2.72.1&lt;br /&gt;
| 2.66.2&lt;br /&gt;
| 3.24.33&amp;lt;br /&amp;gt;4.6.2&lt;br /&gt;
| 3.24.5&amp;lt;br /&amp;gt;no libgtkmm-4.0&lt;br /&gt;
| 2.7.4&lt;br /&gt;
| 1.50.6&lt;br /&gt;
| 22.02.0&lt;br /&gt;
| 3.40.0&lt;br /&gt;
| 2.12-rc1&lt;br /&gt;
| 2.10.4&lt;br /&gt;
| 8.0.6&lt;br /&gt;
| 2.74.2&amp;lt;br /&amp;gt;3.0.5&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu 24.04 LTS (Noble) &amp;lt;small&amp;gt;EOL 2029-04&amp;lt;/small&amp;gt;&lt;br /&gt;
| 1.2.2&lt;br /&gt;
| 13.2.0&lt;br /&gt;
| 18.0.0&amp;lt;br /&amp;gt;(18.1.3)&lt;br /&gt;
| 1.18.0&lt;br /&gt;
| 1.14.5&amp;lt;br /&amp;gt;1.18.0&lt;br /&gt;
| 2.13.2&lt;br /&gt;
| 2.80.0&lt;br /&gt;
| 2.66.7&amp;lt;br /&amp;gt;2.78.1&lt;br /&gt;
| 3.24.41&amp;lt;br /&amp;gt;4.14.2&lt;br /&gt;
| 3.24.9&amp;lt;br /&amp;gt;4.10.0&lt;br /&gt;
| 8.3.0&lt;br /&gt;
| 1.52.1&amp;lt;br /&amp;gt;2.52.0&lt;br /&gt;
| 24.02.0&lt;br /&gt;
| 3.40.0&lt;br /&gt;
| 2.14.2&lt;br /&gt;
| 2.12.1&amp;lt;br /&amp;gt;3.6.0&lt;br /&gt;
| 8.2.6&lt;br /&gt;
| 2.74.3&amp;lt;br /&amp;gt;3.4.4&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu 24.10 (Oracular) &amp;lt;small&amp;gt;EOL 2025-06&amp;lt;/small&amp;gt;&lt;br /&gt;
| 1.2.2&lt;br /&gt;
| 14.1.0&lt;br /&gt;
| 19.0&amp;lt;br /&amp;gt;(19.0)&lt;br /&gt;
| 1.18.2&lt;br /&gt;
| 1.14.5&amp;lt;br /&amp;gt;1.18.0&lt;br /&gt;
| 2.13.3&lt;br /&gt;
| 2.80.0&lt;br /&gt;
| 2.66.7&amp;lt;br /&amp;gt;2.82.0&lt;br /&gt;
| 3.24.43&amp;lt;br /&amp;gt;4.16.1&lt;br /&gt;
| 3.24.9&amp;lt;br /&amp;gt;4.16.0&lt;br /&gt;
| 9.0.0&lt;br /&gt;
| 1.54.0&amp;lt;br /&amp;gt;2.54.0&lt;br /&gt;
| 24.08.0&lt;br /&gt;
| 3.40.0&lt;br /&gt;
| 2.14.2&lt;br /&gt;
| 2.12.1&amp;lt;br /&amp;gt;3.6.0&lt;br /&gt;
| 8.2.6&lt;br /&gt;
| 2.74.3&amp;lt;br /&amp;gt;3.6.0&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;sup&amp;gt;#&amp;lt;/sup&amp;gt;Debian and Ubuntu offer multiple gcc and clang versions, latest available version listed.&lt;br /&gt;
&lt;br /&gt;
* Agreed to at Saarbrücken hackfest.&lt;br /&gt;
&lt;br /&gt;
== Getting and Installing Source packages ==&lt;br /&gt;
&lt;br /&gt;
See [https://inkscape.org/develop/getting-started/ Getting Started]&lt;br /&gt;
&lt;br /&gt;
== Optional Dependencies ==&lt;br /&gt;
&lt;br /&gt;
Inkscape will still compile without these, but some features may be missing if they are absent during compilation:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Library&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Needed for&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Default&lt;br /&gt;
|-&lt;br /&gt;
|aspell&lt;br /&gt;
|Dictionaries for spell checking&lt;br /&gt;
|On&lt;br /&gt;
|-&lt;br /&gt;
|libcdr&lt;br /&gt;
|Open Corel Draw files&lt;br /&gt;
|On&lt;br /&gt;
|-&lt;br /&gt;
|gettext/msgformat&lt;br /&gt;
|Translation support&lt;br /&gt;
|On&lt;br /&gt;
|-&lt;br /&gt;
|gtest/gmock&lt;br /&gt;
|Automatted testing&lt;br /&gt;
|Off&lt;br /&gt;
|-&lt;br /&gt;
|gspell&lt;br /&gt;
|Spell checking&lt;br /&gt;
|On&lt;br /&gt;
|-&lt;br /&gt;
|imagemagick&lt;br /&gt;
|Bitmap editing extensions, bitmap import resolution&lt;br /&gt;
|On&lt;br /&gt;
|-&lt;br /&gt;
|jpeg&lt;br /&gt;
|jpeg import?&lt;br /&gt;
|On&lt;br /&gt;
|-&lt;br /&gt;
|OpenMP&lt;br /&gt;
|Multi-threaded filter rendering&lt;br /&gt;
|On&lt;br /&gt;
|-&lt;br /&gt;
|scour&lt;br /&gt;
|Save as Optimized SVG&lt;br /&gt;
|(not needed during compiling, Python)&lt;br /&gt;
|-&lt;br /&gt;
|libvisio&lt;br /&gt;
|Open Visio Files, use Visio stencils&lt;br /&gt;
|On&lt;br /&gt;
|-&lt;br /&gt;
|libwpg&lt;br /&gt;
|Open WordPerfect Graphics&lt;br /&gt;
|On&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:About Inkscape]]&lt;br /&gt;
[[Category:Developer Documentation]]&lt;/div&gt;</summary>
		<author><name>Tavmjong</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Tracking_Dependencies&amp;diff=123078</id>
		<title>Tracking Dependencies</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Tracking_Dependencies&amp;diff=123078"/>
		<updated>2024-11-18T19:07:50Z</updated>

		<summary type="html">&lt;p&gt;Tavmjong: /* Libs */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Compilers ==&lt;br /&gt;
&lt;br /&gt;
* Version 1.0 requires a C++11 compiler.&lt;br /&gt;
* Version 1.1 requires a C++17 compiler.&lt;br /&gt;
* Version 1.4 requires a C++20 compiler.&lt;br /&gt;
&lt;br /&gt;
See [[c++11]], [[c++17]], and [[C++20]].&lt;br /&gt;
&lt;br /&gt;
== Libs ==&lt;br /&gt;
&lt;br /&gt;
C++ bindings are not included, since their required versions match those of the C counterparts.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Library&lt;br /&gt;
! v 0.92&lt;br /&gt;
! v 1.0&lt;br /&gt;
! v 1.1&lt;br /&gt;
! v 1.2&lt;br /&gt;
! v 1.3&lt;br /&gt;
! v 1.4&lt;br /&gt;
! master/gtk4&lt;br /&gt;
|-&lt;br /&gt;
| Boehm-GC&lt;br /&gt;
| 7.2&lt;br /&gt;
| 7.2&lt;br /&gt;
| 7.2&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Cairo&lt;br /&gt;
| 1.14&lt;br /&gt;
| 1.14 (1.15.4 required for PDF links)&lt;br /&gt;
| 1.16*&lt;br /&gt;
| 1.16&lt;br /&gt;
| 1.16&lt;br /&gt;
|&lt;br /&gt;
| 1.18* **&lt;br /&gt;
|-&lt;br /&gt;
| double-conversion [https://github.com/google/double-conversion]&amp;lt;br/&amp;gt;''(lib2geom dependency)''&lt;br /&gt;
| ''(not required)''&lt;br /&gt;
| any&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| FreeType&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 2.9* (Required for Variable fonts)&lt;br /&gt;
| 2.9&lt;br /&gt;
| 2.9&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| GDL&lt;br /&gt;
| N/A&amp;lt;br /&amp;gt;(3.4)&lt;br /&gt;
| 3.4&lt;br /&gt;
| Not Used&lt;br /&gt;
| Not Used&lt;br /&gt;
| Not Used&lt;br /&gt;
| Not Used&lt;br /&gt;
|-&lt;br /&gt;
| Glib&lt;br /&gt;
| 2.28&lt;br /&gt;
| 2.48&lt;br /&gt;
| 2.56 or 2.62*&lt;br /&gt;
| 2.64&lt;br /&gt;
| 2.64&lt;br /&gt;
|&lt;br /&gt;
| 2.68**&lt;br /&gt;
|-&lt;br /&gt;
| GTK+&lt;br /&gt;
| 2.24&amp;lt;br /&amp;gt;(3.8)&lt;br /&gt;
| 3.22&lt;br /&gt;
| 3.24*&lt;br /&gt;
| 3.24&lt;br /&gt;
| 3.24&lt;br /&gt;
|&lt;br /&gt;
| 4.12&amp;lt;sup&amp;gt;+&amp;lt;/sup&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| GNU Scientific Library&lt;br /&gt;
| ?&lt;br /&gt;
| ?&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| HarfBuzz&lt;br /&gt;
| ?&lt;br /&gt;
| ?&lt;br /&gt;
| 2.2*&lt;br /&gt;
| 2.6&lt;br /&gt;
| 2.6&lt;br /&gt;
| 2.6.5*&lt;br /&gt;
| 7.0*&lt;br /&gt;
|-&lt;br /&gt;
| libsigc++&lt;br /&gt;
| ''2.0.12*''&lt;br /&gt;
| ''2.0.12*''&lt;br /&gt;
| ''2.0.12*''&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 3.0**&lt;br /&gt;
|-&lt;br /&gt;
| libSoup&lt;br /&gt;
| ''(not required)''&lt;br /&gt;
| (any)&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| libpotrace&lt;br /&gt;
| ''(not required)''&lt;br /&gt;
| (any)&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| libxml&lt;br /&gt;
| ''2.6.11*''&lt;br /&gt;
| ''2.6.11*''&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| libxslt&lt;br /&gt;
| ''1.0.15*''&lt;br /&gt;
| ''1.0.15*''&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| lcms&lt;br /&gt;
| 1.13&lt;br /&gt;
| 2.2&lt;br /&gt;
| 2.2 (2.9*)&lt;br /&gt;
| 2.9*&lt;br /&gt;
| 2.9*&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Pango&lt;br /&gt;
| 1.24&lt;br /&gt;
| 1.24 (1.41.1 required for variable fonts)&lt;br /&gt;
| 1.42*&lt;br /&gt;
| 1.44&lt;br /&gt;
| 1.44 (HarfBuzz shaping)&lt;br /&gt;
|&lt;br /&gt;
| 2.48**&lt;br /&gt;
|-&lt;br /&gt;
| Poppler&lt;br /&gt;
| 0.20.0&lt;br /&gt;
| 0.20.0&lt;br /&gt;
| 0.29 (0.71*)&lt;br /&gt;
| 0.29 (0.71*)&lt;br /&gt;
| 0.71*&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [https://formulae.brew.sh/formula/gtk-mac-integration gtk-mac-integration]&amp;lt;br&amp;gt;[https://www.macports.org/ports.php?by=library&amp;amp;substr=gtk-osx-application-gtk3 gtk-osx-application-gtk3]&lt;br /&gt;
| N/A&lt;br /&gt;
| 2.0.8 ([[CompilingMacOsX|macOS only]])&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
''* Tentative dependency''&lt;br /&gt;
&lt;br /&gt;
* Pango 1.42.2 requires Harfbuzz 1.4.2&lt;br /&gt;
* Pango 1.44.0 requires Glib 2.59.2 and Harfbuzz 2.0. 1.44 exposes hb_font directly.&lt;br /&gt;
* Pango 1.45.1 requires Glib 2.60&lt;br /&gt;
* Pango 1.48.4 has vertical upright marks fix.&lt;br /&gt;
* Harfbuzz 4.1 changes glyph positioning for upright vertical text when font does not have vertical metrics (from glyph touching to of cell to being centered in cell).&lt;br /&gt;
* Cairo 1.18 supports various color font formats include export to PDF.&lt;br /&gt;
&lt;br /&gt;
''** Gtkmm4 requires API changed Glibmm, Cairomm, and Pangomm. In particular, enums use child namespaces in newer libraries (Cairo::FORMAT_ARGB32 -&amp;gt; Cairo::Surface::Format::ARGB32).''&lt;br /&gt;
&lt;br /&gt;
''&amp;lt;sup&amp;gt;+&amp;lt;/sup&amp;gt; Decision at 5 Nov 2023 developer's meeting. Gtk4 4.10.1 has an important scrolling bug fix.''&lt;br /&gt;
&lt;br /&gt;
== Distros ==&lt;br /&gt;
&lt;br /&gt;
Note: This table is not relevant to (non-fink) MacOS X, where we ship the desired version with Inkscape.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Inkscape&amp;quot; column is default or distro version / oldest that builds - latest that builds. If no latest is given then that means trunk is expected to build on the given platform.&lt;br /&gt;
&lt;br /&gt;
e.g. for a distro that ships with 0.48 but should support building of trunk you might get:&lt;br /&gt;
 0.48 / 0.47-&lt;br /&gt;
&lt;br /&gt;
'''General rules:'''&lt;br /&gt;
* Support latest Debian Stable (as of feature freeze) [https://www.debian.org/distrib/packages Debian packages]&lt;br /&gt;
* Support latest Ubuntu LTS (as of feature freeze) [https://packages.ubuntu.com/ Ubuntu packages]&lt;br /&gt;
**e.g. Considering Inkscape 1.2, the latest Ubuntu LTS at '''feature freeze time''' (around February 2022) would have been Ubuntu 20.04. The latest LTS at release time (around May 2022), though, will be Ubuntu 22.04.  Therefore, according to the rule, we should support Ubuntu 20.04 LTS as the minimum version.&lt;br /&gt;
&lt;br /&gt;
* Support last two Fedora releases (as of feature freeze) [https://packages.fedoraproject.org/ Fedora packages]&lt;br /&gt;
* Don't break ''point'' releases.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Distro&lt;br /&gt;
! Inkscape&lt;br /&gt;
! gcc&amp;lt;sup&amp;gt;#&amp;lt;/sup&amp;gt;&lt;br /&gt;
! clang&amp;lt;sup&amp;gt;#&amp;lt;/sup&amp;gt;&lt;br /&gt;
! cairo&lt;br /&gt;
! cairomm&lt;br /&gt;
! freetype&lt;br /&gt;
! glib&lt;br /&gt;
! glibmm&lt;br /&gt;
! gtk+&lt;br /&gt;
! gtkmm&lt;br /&gt;
! harfbuzz&lt;br /&gt;
! pango&lt;br /&gt;
! poppler&lt;br /&gt;
! gdl&lt;br /&gt;
! lcms2&lt;br /&gt;
! libsigc++&lt;br /&gt;
! libgc &amp;lt;!-- Fedora rpm: gc --&amp;gt;&lt;br /&gt;
! libsoup&lt;br /&gt;
|-&lt;br /&gt;
| Windows MSYS2 (2021-04-14)&amp;lt;br/&amp;gt;([https://github.com/Alexpux/MINGW-packages mingw-w64 packages] from MSYS2 project)&lt;br /&gt;
  &amp;lt;!-- see http://quodlibet.duckdns.org/msys2/base for list of latest package versions --&amp;gt;&lt;br /&gt;
| 1.0.2&lt;br /&gt;
| 10.2.0&lt;br /&gt;
| 11.0.0&lt;br /&gt;
| 1.17.4&lt;br /&gt;
| 1.12.2&lt;br /&gt;
| 2.10.4&lt;br /&gt;
| 2.68.1&lt;br /&gt;
| 2.66.0&lt;br /&gt;
| 3.24.27&lt;br /&gt;
| 3.24.3&lt;br /&gt;
| 2.8.0&lt;br /&gt;
| 1.48.4&lt;br /&gt;
| 20.12.1&lt;br /&gt;
| 3.34.0&lt;br /&gt;
| 2.12&lt;br /&gt;
| 2.10.6&lt;br /&gt;
| 8.0.4 &amp;lt;!-- mingw-w64-gc --&amp;gt;&lt;br /&gt;
| 2.72.0&lt;br /&gt;
|-&lt;br /&gt;
| Debian 11 (Bullseye, oldstable) &amp;lt;small&amp;gt;EOL 2026&amp;lt;/small&amp;gt;&lt;br /&gt;
| 1.0.2&lt;br /&gt;
| 10.2.1&lt;br /&gt;
| 13.0.1&lt;br /&gt;
| 1.16&lt;br /&gt;
| 1.12.2&lt;br /&gt;
| 2.10.4&lt;br /&gt;
| 2.66.8&lt;br /&gt;
| 2.64.2&lt;br /&gt;
| 3.24.24&lt;br /&gt;
| 3.24.2&lt;br /&gt;
| 2.7.4&lt;br /&gt;
| 1.46.2&lt;br /&gt;
| 20.09.0&lt;br /&gt;
| 3.34.0&lt;br /&gt;
| 2.12&lt;br /&gt;
| 2.10.4&lt;br /&gt;
| 8.0.4&lt;br /&gt;
| 2.72.0&lt;br /&gt;
|-&lt;br /&gt;
| Debian 12 (Bookworm, stable) &amp;lt;small&amp;gt;EOL 2028?&amp;lt;/small&amp;gt;&lt;br /&gt;
| 1.2.2&lt;br /&gt;
| 12.2.0&lt;br /&gt;
| 15.0.6&lt;br /&gt;
| 1.16.0&lt;br /&gt;
| 1.12.1&lt;br /&gt;
| 2.10.4&lt;br /&gt;
| 2.74.5&lt;br /&gt;
| 2.74.0&lt;br /&gt;
| 3.24.36&amp;lt;br /&amp;gt;4.8.3&lt;br /&gt;
| 3.24.7&amp;lt;br /&amp;gt;4.8.0&lt;br /&gt;
| 6.0.0&lt;br /&gt;
| 1.50.12&lt;br /&gt;
| 22.12.0&lt;br /&gt;
| 3.40.0&lt;br /&gt;
| 2.14.1&lt;br /&gt;
| 2.12.0&amp;lt;br /&amp;gt;3.4.0&lt;br /&gt;
| 8.2.2&lt;br /&gt;
| 2.74.03&amp;lt;br /&amp;gt;3.2.2&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu 22.04 LTS (Jammy Jellyfish) &amp;lt;small&amp;gt;EOL 2027-04&amp;lt;/small&amp;gt;&lt;br /&gt;
| 1.1.2&lt;br /&gt;
| 12.3.0&lt;br /&gt;
| 15.0.7&lt;br /&gt;
| 1.16.0&lt;br /&gt;
| 1.12.2&lt;br /&gt;
| 2.11.1&lt;br /&gt;
| 2.72.1&lt;br /&gt;
| 2.66.2&lt;br /&gt;
| 3.24.33&amp;lt;br /&amp;gt;4.6.2&lt;br /&gt;
| 3.24.5&amp;lt;br /&amp;gt;no libgtkmm-4.0&lt;br /&gt;
| 2.7.4&lt;br /&gt;
| 1.50.6&lt;br /&gt;
| 22.02.0&lt;br /&gt;
| 3.40.0&lt;br /&gt;
| 2.12-rc1&lt;br /&gt;
| 2.10.4&lt;br /&gt;
| 8.0.6&lt;br /&gt;
| 2.74.2&amp;lt;br /&amp;gt;3.0.5&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu 23.10 (Mantic)&lt;br /&gt;
| 1.2.2&lt;br /&gt;
| 13.2.0&lt;br /&gt;
| 16.0.0&amp;lt;br /&amp;gt;(17.0.2)&lt;br /&gt;
| 1.14.4&amp;lt;br /&amp;gt;1.16.0&lt;br /&gt;
| 1.14.4&amp;lt;br /&amp;gt;1.16.2&lt;br /&gt;
| 2.13.1&lt;br /&gt;
| 2.78.0&lt;br /&gt;
| 2.66.6&amp;lt;br /&amp;gt;2.78.0&lt;br /&gt;
| 3.24.38&amp;lt;br /&amp;gt;4.12.2&lt;br /&gt;
| 3.24.8&amp;lt;br /&amp;gt;4.10.0&lt;br /&gt;
| 8.0.1&lt;br /&gt;
| 1.51.0&amp;lt;br /&amp;gt;2.50.1&lt;br /&gt;
| 23.08.0&lt;br /&gt;
| 3.40.0&lt;br /&gt;
| 2.14.2&lt;br /&gt;
| 2.12.0&amp;lt;br /&amp;gt;3.4.0&lt;br /&gt;
| 8.2.4&lt;br /&gt;
| 2.74.3&amp;lt;br /&amp;gt;3.4.2&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu 24.04 LTS (Noble) &amp;lt;small&amp;gt;EOL 2029-04&amp;lt;/small&amp;gt;&lt;br /&gt;
| 1.2.2&lt;br /&gt;
| 13.2.0&lt;br /&gt;
| 18.0.0&amp;lt;br /&amp;gt;(18.1.3)&lt;br /&gt;
| 1.18.0&lt;br /&gt;
| 1.14.5&amp;lt;br /&amp;gt;1.18.0&lt;br /&gt;
| 2.13.2&lt;br /&gt;
| 2.80.0&lt;br /&gt;
| 2.66.7&amp;lt;br /&amp;gt;2.78.1&lt;br /&gt;
| 3.24.41&amp;lt;br /&amp;gt;4.14.2&lt;br /&gt;
| 3.24.9&amp;lt;br /&amp;gt;4.10.0&lt;br /&gt;
| 8.3.0&lt;br /&gt;
| 1.52.1&amp;lt;br /&amp;gt;2.52.0&lt;br /&gt;
| 24.02.0&lt;br /&gt;
| 3.40.0&lt;br /&gt;
| 2.14.2&lt;br /&gt;
| 2.12.1&amp;lt;br /&amp;gt;3.6.0&lt;br /&gt;
| 8.2.6&lt;br /&gt;
| 2.74.3&amp;lt;br /&amp;gt;3.4.4&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu 24.10 (Oracular)&lt;br /&gt;
| 1.2.2&lt;br /&gt;
| 14.1.0&lt;br /&gt;
| 19.0&amp;lt;br /&amp;gt;(19.0)&lt;br /&gt;
| 1.18.2&lt;br /&gt;
| 1.14.5&amp;lt;br /&amp;gt;1.18.0&lt;br /&gt;
| 2.13.3&lt;br /&gt;
| 2.80.0&lt;br /&gt;
| 2.66.7&amp;lt;br /&amp;gt;2.82.0&lt;br /&gt;
| 3.24.43&amp;lt;br /&amp;gt;4.16.1&lt;br /&gt;
| 3.24.9&amp;lt;br /&amp;gt;4.16.0&lt;br /&gt;
| 9.0.0&lt;br /&gt;
| 1.54.0&amp;lt;br /&amp;gt;2.54.0&lt;br /&gt;
| 24.08.0&lt;br /&gt;
| 3.40.0&lt;br /&gt;
| 2.14.2&lt;br /&gt;
| 2.12.1&amp;lt;br /&amp;gt;3.6.0&lt;br /&gt;
| 8.2.6&lt;br /&gt;
| 2.74.3&amp;lt;br /&amp;gt;3.6.0&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;sup&amp;gt;#&amp;lt;/sup&amp;gt;Debian and Ubuntu offer multiple gcc and clang versions, latest available version listed.&lt;br /&gt;
&lt;br /&gt;
* Agreed to at Saarbrücken hackfest.&lt;br /&gt;
&lt;br /&gt;
== Getting and Installing Source packages ==&lt;br /&gt;
&lt;br /&gt;
See [https://inkscape.org/develop/getting-started/ Getting Started]&lt;br /&gt;
&lt;br /&gt;
== Optional Dependencies ==&lt;br /&gt;
&lt;br /&gt;
Inkscape will still compile without these, but some features may be missing if they are absent during compilation:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Library&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Needed for&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Default&lt;br /&gt;
|-&lt;br /&gt;
|aspell&lt;br /&gt;
|Dictionaries for spell checking&lt;br /&gt;
|On&lt;br /&gt;
|-&lt;br /&gt;
|libcdr&lt;br /&gt;
|Open Corel Draw files&lt;br /&gt;
|On&lt;br /&gt;
|-&lt;br /&gt;
|gettext/msgformat&lt;br /&gt;
|Translation support&lt;br /&gt;
|On&lt;br /&gt;
|-&lt;br /&gt;
|gtest/gmock&lt;br /&gt;
|Automatted testing&lt;br /&gt;
|Off&lt;br /&gt;
|-&lt;br /&gt;
|gspell&lt;br /&gt;
|Spell checking&lt;br /&gt;
|On&lt;br /&gt;
|-&lt;br /&gt;
|imagemagick&lt;br /&gt;
|Bitmap editing extensions, bitmap import resolution&lt;br /&gt;
|On&lt;br /&gt;
|-&lt;br /&gt;
|jpeg&lt;br /&gt;
|jpeg import?&lt;br /&gt;
|On&lt;br /&gt;
|-&lt;br /&gt;
|OpenMP&lt;br /&gt;
|Multi-threaded filter rendering&lt;br /&gt;
|On&lt;br /&gt;
|-&lt;br /&gt;
|scour&lt;br /&gt;
|Save as Optimized SVG&lt;br /&gt;
|(not needed during compiling, Python)&lt;br /&gt;
|-&lt;br /&gt;
|libvisio&lt;br /&gt;
|Open Visio Files, use Visio stencils&lt;br /&gt;
|On&lt;br /&gt;
|-&lt;br /&gt;
|libwpg&lt;br /&gt;
|Open WordPerfect Graphics&lt;br /&gt;
|On&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:About Inkscape]]&lt;br /&gt;
[[Category:Developer Documentation]]&lt;/div&gt;</summary>
		<author><name>Tavmjong</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Tracking_Dependencies&amp;diff=123077</id>
		<title>Tracking Dependencies</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Tracking_Dependencies&amp;diff=123077"/>
		<updated>2024-11-12T09:05:56Z</updated>

		<summary type="html">&lt;p&gt;Tavmjong: /* Libs */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Compilers ==&lt;br /&gt;
&lt;br /&gt;
* Version 1.0 requires a C++11 compiler.&lt;br /&gt;
* Version 1.1 requires a C++17 compiler.&lt;br /&gt;
* Version 1.4 requires a C++20 compiler.&lt;br /&gt;
&lt;br /&gt;
See [[c++11]], [[c++17]], and [[C++20]].&lt;br /&gt;
&lt;br /&gt;
== Libs ==&lt;br /&gt;
&lt;br /&gt;
C++ bindings are not included, since their required versions match those of the C counterparts.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Library&lt;br /&gt;
! v 0.92&lt;br /&gt;
! v 1.0&lt;br /&gt;
! v 1.1&lt;br /&gt;
! v 1.2&lt;br /&gt;
! v 1.3&lt;br /&gt;
! v 1.4&lt;br /&gt;
! master/gtk4&lt;br /&gt;
|-&lt;br /&gt;
| Boehm-GC&lt;br /&gt;
| 7.2&lt;br /&gt;
| 7.2&lt;br /&gt;
| 7.2&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Cairo&lt;br /&gt;
| 1.14&lt;br /&gt;
| 1.14 (1.15.4 required for PDF links)&lt;br /&gt;
| 1.16*&lt;br /&gt;
| 1.16&lt;br /&gt;
| 1.16&lt;br /&gt;
|&lt;br /&gt;
| 1.16**&lt;br /&gt;
|-&lt;br /&gt;
| double-conversion [https://github.com/google/double-conversion]&amp;lt;br/&amp;gt;''(lib2geom dependency)''&lt;br /&gt;
| ''(not required)''&lt;br /&gt;
| any&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| FreeType&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 2.9* (Required for Variable fonts)&lt;br /&gt;
| 2.9&lt;br /&gt;
| 2.9&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| GDL&lt;br /&gt;
| N/A&amp;lt;br /&amp;gt;(3.4)&lt;br /&gt;
| 3.4&lt;br /&gt;
| Not Used&lt;br /&gt;
| Not Used&lt;br /&gt;
| Not Used&lt;br /&gt;
| Not Used&lt;br /&gt;
|-&lt;br /&gt;
| Glib&lt;br /&gt;
| 2.28&lt;br /&gt;
| 2.48&lt;br /&gt;
| 2.56 or 2.62*&lt;br /&gt;
| 2.64&lt;br /&gt;
| 2.64&lt;br /&gt;
|&lt;br /&gt;
| 2.68**&lt;br /&gt;
|-&lt;br /&gt;
| GTK+&lt;br /&gt;
| 2.24&amp;lt;br /&amp;gt;(3.8)&lt;br /&gt;
| 3.22&lt;br /&gt;
| 3.24*&lt;br /&gt;
| 3.24&lt;br /&gt;
| 3.24&lt;br /&gt;
|&lt;br /&gt;
| 4.12&amp;lt;sup&amp;gt;+&amp;lt;/sup&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| GNU Scientific Library&lt;br /&gt;
| ?&lt;br /&gt;
| ?&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| HarfBuzz&lt;br /&gt;
| ?&lt;br /&gt;
| ?&lt;br /&gt;
| 2.2*&lt;br /&gt;
| 2.6&lt;br /&gt;
| 2.6&lt;br /&gt;
| 2.6.5*&lt;br /&gt;
| 7.0*&lt;br /&gt;
|-&lt;br /&gt;
| libsigc++&lt;br /&gt;
| ''2.0.12*''&lt;br /&gt;
| ''2.0.12*''&lt;br /&gt;
| ''2.0.12*''&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 3.0**&lt;br /&gt;
|-&lt;br /&gt;
| libSoup&lt;br /&gt;
| ''(not required)''&lt;br /&gt;
| (any)&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| libpotrace&lt;br /&gt;
| ''(not required)''&lt;br /&gt;
| (any)&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| libxml&lt;br /&gt;
| ''2.6.11*''&lt;br /&gt;
| ''2.6.11*''&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| libxslt&lt;br /&gt;
| ''1.0.15*''&lt;br /&gt;
| ''1.0.15*''&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| lcms&lt;br /&gt;
| 1.13&lt;br /&gt;
| 2.2&lt;br /&gt;
| 2.2 (2.9*)&lt;br /&gt;
| 2.9*&lt;br /&gt;
| 2.9*&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Pango&lt;br /&gt;
| 1.24&lt;br /&gt;
| 1.24 (1.41.1 required for variable fonts)&lt;br /&gt;
| 1.42*&lt;br /&gt;
| 1.44&lt;br /&gt;
| 1.44 (HarfBuzz shaping)&lt;br /&gt;
|&lt;br /&gt;
| 2.48**&lt;br /&gt;
|-&lt;br /&gt;
| Poppler&lt;br /&gt;
| 0.20.0&lt;br /&gt;
| 0.20.0&lt;br /&gt;
| 0.29 (0.71*)&lt;br /&gt;
| 0.29 (0.71*)&lt;br /&gt;
| 0.71*&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [https://formulae.brew.sh/formula/gtk-mac-integration gtk-mac-integration]&amp;lt;br&amp;gt;[https://www.macports.org/ports.php?by=library&amp;amp;substr=gtk-osx-application-gtk3 gtk-osx-application-gtk3]&lt;br /&gt;
| N/A&lt;br /&gt;
| 2.0.8 ([[CompilingMacOsX|macOS only]])&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
''* Tentative dependency''&lt;br /&gt;
&lt;br /&gt;
* Pango 1.42.2 requires Harfbuzz 1.4.2&lt;br /&gt;
* Pango 1.44.0 requires Glib 2.59.2 and Harfbuzz 2.0. 1.44 exposes hb_font directly.&lt;br /&gt;
* Pango 1.45.1 requires Glib 2.60&lt;br /&gt;
* Pango 1.48.4 has vertical upright marks fix.&lt;br /&gt;
* Harfbuzz 4.1 changes glyph positioning for upright vertical text when font does not have vertical metrics (from glyph touching to of cell to being centered in cell).&lt;br /&gt;
&lt;br /&gt;
''** Gtkmm4 requires API changed Glibmm, Cairomm, and Pangomm. In particular, enums use child namespaces in newer libraries (Cairo::FORMAT_ARGB32 -&amp;gt; Cairo::Surface::Format::ARGB32).''&lt;br /&gt;
&lt;br /&gt;
''&amp;lt;sup&amp;gt;+&amp;lt;/sup&amp;gt; Decision at 5 Nov 2023 developer's meeting. Gtk4 4.10.1 has an important scrolling bug fix.''&lt;br /&gt;
&lt;br /&gt;
== Distros ==&lt;br /&gt;
&lt;br /&gt;
Note: This table is not relevant to (non-fink) MacOS X, where we ship the desired version with Inkscape.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Inkscape&amp;quot; column is default or distro version / oldest that builds - latest that builds. If no latest is given then that means trunk is expected to build on the given platform.&lt;br /&gt;
&lt;br /&gt;
e.g. for a distro that ships with 0.48 but should support building of trunk you might get:&lt;br /&gt;
 0.48 / 0.47-&lt;br /&gt;
&lt;br /&gt;
'''General rules:'''&lt;br /&gt;
* Support latest Debian Stable (as of feature freeze) [https://www.debian.org/distrib/packages Debian packages]&lt;br /&gt;
* Support latest Ubuntu LTS (as of feature freeze) [https://packages.ubuntu.com/ Ubuntu packages]&lt;br /&gt;
**e.g. Considering Inkscape 1.2, the latest Ubuntu LTS at '''feature freeze time''' (around February 2022) would have been Ubuntu 20.04. The latest LTS at release time (around May 2022), though, will be Ubuntu 22.04.  Therefore, according to the rule, we should support Ubuntu 20.04 LTS as the minimum version.&lt;br /&gt;
&lt;br /&gt;
* Support last two Fedora releases (as of feature freeze) [https://packages.fedoraproject.org/ Fedora packages]&lt;br /&gt;
* Don't break ''point'' releases.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Distro&lt;br /&gt;
! Inkscape&lt;br /&gt;
! gcc&amp;lt;sup&amp;gt;#&amp;lt;/sup&amp;gt;&lt;br /&gt;
! clang&amp;lt;sup&amp;gt;#&amp;lt;/sup&amp;gt;&lt;br /&gt;
! cairo&lt;br /&gt;
! cairomm&lt;br /&gt;
! freetype&lt;br /&gt;
! glib&lt;br /&gt;
! glibmm&lt;br /&gt;
! gtk+&lt;br /&gt;
! gtkmm&lt;br /&gt;
! harfbuzz&lt;br /&gt;
! pango&lt;br /&gt;
! poppler&lt;br /&gt;
! gdl&lt;br /&gt;
! lcms2&lt;br /&gt;
! libsigc++&lt;br /&gt;
! libgc &amp;lt;!-- Fedora rpm: gc --&amp;gt;&lt;br /&gt;
! libsoup&lt;br /&gt;
|-&lt;br /&gt;
| Windows MSYS2 (2021-04-14)&amp;lt;br/&amp;gt;([https://github.com/Alexpux/MINGW-packages mingw-w64 packages] from MSYS2 project)&lt;br /&gt;
  &amp;lt;!-- see http://quodlibet.duckdns.org/msys2/base for list of latest package versions --&amp;gt;&lt;br /&gt;
| 1.0.2&lt;br /&gt;
| 10.2.0&lt;br /&gt;
| 11.0.0&lt;br /&gt;
| 1.17.4&lt;br /&gt;
| 1.12.2&lt;br /&gt;
| 2.10.4&lt;br /&gt;
| 2.68.1&lt;br /&gt;
| 2.66.0&lt;br /&gt;
| 3.24.27&lt;br /&gt;
| 3.24.3&lt;br /&gt;
| 2.8.0&lt;br /&gt;
| 1.48.4&lt;br /&gt;
| 20.12.1&lt;br /&gt;
| 3.34.0&lt;br /&gt;
| 2.12&lt;br /&gt;
| 2.10.6&lt;br /&gt;
| 8.0.4 &amp;lt;!-- mingw-w64-gc --&amp;gt;&lt;br /&gt;
| 2.72.0&lt;br /&gt;
|-&lt;br /&gt;
| Debian 11 (Bullseye, oldstable) &amp;lt;small&amp;gt;EOL 2026&amp;lt;/small&amp;gt;&lt;br /&gt;
| 1.0.2&lt;br /&gt;
| 10.2.1&lt;br /&gt;
| 13.0.1&lt;br /&gt;
| 1.16&lt;br /&gt;
| 1.12.2&lt;br /&gt;
| 2.10.4&lt;br /&gt;
| 2.66.8&lt;br /&gt;
| 2.64.2&lt;br /&gt;
| 3.24.24&lt;br /&gt;
| 3.24.2&lt;br /&gt;
| 2.7.4&lt;br /&gt;
| 1.46.2&lt;br /&gt;
| 20.09.0&lt;br /&gt;
| 3.34.0&lt;br /&gt;
| 2.12&lt;br /&gt;
| 2.10.4&lt;br /&gt;
| 8.0.4&lt;br /&gt;
| 2.72.0&lt;br /&gt;
|-&lt;br /&gt;
| Debian 12 (Bookworm, stable) &amp;lt;small&amp;gt;EOL 2028?&amp;lt;/small&amp;gt;&lt;br /&gt;
| 1.2.2&lt;br /&gt;
| 12.2.0&lt;br /&gt;
| 15.0.6&lt;br /&gt;
| 1.16.0&lt;br /&gt;
| 1.12.1&lt;br /&gt;
| 2.10.4&lt;br /&gt;
| 2.74.5&lt;br /&gt;
| 2.74.0&lt;br /&gt;
| 3.24.36&amp;lt;br /&amp;gt;4.8.3&lt;br /&gt;
| 3.24.7&amp;lt;br /&amp;gt;4.8.0&lt;br /&gt;
| 6.0.0&lt;br /&gt;
| 1.50.12&lt;br /&gt;
| 22.12.0&lt;br /&gt;
| 3.40.0&lt;br /&gt;
| 2.14.1&lt;br /&gt;
| 2.12.0&amp;lt;br /&amp;gt;3.4.0&lt;br /&gt;
| 8.2.2&lt;br /&gt;
| 2.74.03&amp;lt;br /&amp;gt;3.2.2&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu 22.04 LTS (Jammy Jellyfish) &amp;lt;small&amp;gt;EOL 2027-04&amp;lt;/small&amp;gt;&lt;br /&gt;
| 1.1.2&lt;br /&gt;
| 12.3.0&lt;br /&gt;
| 15.0.7&lt;br /&gt;
| 1.16.0&lt;br /&gt;
| 1.12.2&lt;br /&gt;
| 2.11.1&lt;br /&gt;
| 2.72.1&lt;br /&gt;
| 2.66.2&lt;br /&gt;
| 3.24.33&amp;lt;br /&amp;gt;4.6.2&lt;br /&gt;
| 3.24.5&amp;lt;br /&amp;gt;no libgtkmm-4.0&lt;br /&gt;
| 2.7.4&lt;br /&gt;
| 1.50.6&lt;br /&gt;
| 22.02.0&lt;br /&gt;
| 3.40.0&lt;br /&gt;
| 2.12-rc1&lt;br /&gt;
| 2.10.4&lt;br /&gt;
| 8.0.6&lt;br /&gt;
| 2.74.2&amp;lt;br /&amp;gt;3.0.5&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu 23.10 (Mantic)&lt;br /&gt;
| 1.2.2&lt;br /&gt;
| 13.2.0&lt;br /&gt;
| 16.0.0&amp;lt;br /&amp;gt;(17.0.2)&lt;br /&gt;
| 1.14.4&amp;lt;br /&amp;gt;1.16.0&lt;br /&gt;
| 1.14.4&amp;lt;br /&amp;gt;1.16.2&lt;br /&gt;
| 2.13.1&lt;br /&gt;
| 2.78.0&lt;br /&gt;
| 2.66.6&amp;lt;br /&amp;gt;2.78.0&lt;br /&gt;
| 3.24.38&amp;lt;br /&amp;gt;4.12.2&lt;br /&gt;
| 3.24.8&amp;lt;br /&amp;gt;4.10.0&lt;br /&gt;
| 8.0.1&lt;br /&gt;
| 1.51.0&amp;lt;br /&amp;gt;2.50.1&lt;br /&gt;
| 23.08.0&lt;br /&gt;
| 3.40.0&lt;br /&gt;
| 2.14.2&lt;br /&gt;
| 2.12.0&amp;lt;br /&amp;gt;3.4.0&lt;br /&gt;
| 8.2.4&lt;br /&gt;
| 2.74.3&amp;lt;br /&amp;gt;3.4.2&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu 24.04 LTS (Noble) &amp;lt;small&amp;gt;EOL 2029-04&amp;lt;/small&amp;gt;&lt;br /&gt;
| 1.2.2&lt;br /&gt;
| 13.2.0&lt;br /&gt;
| 18.0.0&amp;lt;br /&amp;gt;(18.1.3)&lt;br /&gt;
| 1.18.0&lt;br /&gt;
| 1.14.5&amp;lt;br /&amp;gt;1.18.0&lt;br /&gt;
| 2.13.2&lt;br /&gt;
| 2.80.0&lt;br /&gt;
| 2.66.7&amp;lt;br /&amp;gt;2.78.1&lt;br /&gt;
| 3.24.41&amp;lt;br /&amp;gt;4.14.2&lt;br /&gt;
| 3.24.9&amp;lt;br /&amp;gt;4.10.0&lt;br /&gt;
| 8.3.0&lt;br /&gt;
| 1.52.1&amp;lt;br /&amp;gt;2.52.0&lt;br /&gt;
| 24.02.0&lt;br /&gt;
| 3.40.0&lt;br /&gt;
| 2.14.2&lt;br /&gt;
| 2.12.1&amp;lt;br /&amp;gt;3.6.0&lt;br /&gt;
| 8.2.6&lt;br /&gt;
| 2.74.3&amp;lt;br /&amp;gt;3.4.4&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu 24.10 (Oracular)&lt;br /&gt;
| 1.2.2&lt;br /&gt;
| 14.1.0&lt;br /&gt;
| 19.0&amp;lt;br /&amp;gt;(19.0)&lt;br /&gt;
| 1.18.2&lt;br /&gt;
| 1.14.5&amp;lt;br /&amp;gt;1.18.0&lt;br /&gt;
| 2.13.3&lt;br /&gt;
| 2.80.0&lt;br /&gt;
| 2.66.7&amp;lt;br /&amp;gt;2.82.0&lt;br /&gt;
| 3.24.43&amp;lt;br /&amp;gt;4.16.1&lt;br /&gt;
| 3.24.9&amp;lt;br /&amp;gt;4.16.0&lt;br /&gt;
| 9.0.0&lt;br /&gt;
| 1.54.0&amp;lt;br /&amp;gt;2.54.0&lt;br /&gt;
| 24.08.0&lt;br /&gt;
| 3.40.0&lt;br /&gt;
| 2.14.2&lt;br /&gt;
| 2.12.1&amp;lt;br /&amp;gt;3.6.0&lt;br /&gt;
| 8.2.6&lt;br /&gt;
| 2.74.3&amp;lt;br /&amp;gt;3.6.0&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;sup&amp;gt;#&amp;lt;/sup&amp;gt;Debian and Ubuntu offer multiple gcc and clang versions, latest available version listed.&lt;br /&gt;
&lt;br /&gt;
* Agreed to at Saarbrücken hackfest.&lt;br /&gt;
&lt;br /&gt;
== Getting and Installing Source packages ==&lt;br /&gt;
&lt;br /&gt;
See [https://inkscape.org/develop/getting-started/ Getting Started]&lt;br /&gt;
&lt;br /&gt;
== Optional Dependencies ==&lt;br /&gt;
&lt;br /&gt;
Inkscape will still compile without these, but some features may be missing if they are absent during compilation:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Library&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Needed for&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Default&lt;br /&gt;
|-&lt;br /&gt;
|aspell&lt;br /&gt;
|Dictionaries for spell checking&lt;br /&gt;
|On&lt;br /&gt;
|-&lt;br /&gt;
|libcdr&lt;br /&gt;
|Open Corel Draw files&lt;br /&gt;
|On&lt;br /&gt;
|-&lt;br /&gt;
|gettext/msgformat&lt;br /&gt;
|Translation support&lt;br /&gt;
|On&lt;br /&gt;
|-&lt;br /&gt;
|gtest/gmock&lt;br /&gt;
|Automatted testing&lt;br /&gt;
|Off&lt;br /&gt;
|-&lt;br /&gt;
|gspell&lt;br /&gt;
|Spell checking&lt;br /&gt;
|On&lt;br /&gt;
|-&lt;br /&gt;
|imagemagick&lt;br /&gt;
|Bitmap editing extensions, bitmap import resolution&lt;br /&gt;
|On&lt;br /&gt;
|-&lt;br /&gt;
|jpeg&lt;br /&gt;
|jpeg import?&lt;br /&gt;
|On&lt;br /&gt;
|-&lt;br /&gt;
|OpenMP&lt;br /&gt;
|Multi-threaded filter rendering&lt;br /&gt;
|On&lt;br /&gt;
|-&lt;br /&gt;
|scour&lt;br /&gt;
|Save as Optimized SVG&lt;br /&gt;
|(not needed during compiling, Python)&lt;br /&gt;
|-&lt;br /&gt;
|libvisio&lt;br /&gt;
|Open Visio Files, use Visio stencils&lt;br /&gt;
|On&lt;br /&gt;
|-&lt;br /&gt;
|libwpg&lt;br /&gt;
|Open WordPerfect Graphics&lt;br /&gt;
|On&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:About Inkscape]]&lt;br /&gt;
[[Category:Developer Documentation]]&lt;/div&gt;</summary>
		<author><name>Tavmjong</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Tracking_Dependencies&amp;diff=123076</id>
		<title>Tracking Dependencies</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Tracking_Dependencies&amp;diff=123076"/>
		<updated>2024-11-12T08:58:09Z</updated>

		<summary type="html">&lt;p&gt;Tavmjong: /* Libs */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Compilers ==&lt;br /&gt;
&lt;br /&gt;
* Version 1.0 requires a C++11 compiler.&lt;br /&gt;
* Version 1.1 requires a C++17 compiler.&lt;br /&gt;
* Version 1.4 requires a C++20 compiler.&lt;br /&gt;
&lt;br /&gt;
See [[c++11]], [[c++17]], and [[C++20]].&lt;br /&gt;
&lt;br /&gt;
== Libs ==&lt;br /&gt;
&lt;br /&gt;
C++ bindings are not included, since their required versions match those of the C counterparts.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Library&lt;br /&gt;
! v 0.92&lt;br /&gt;
! v 1.0&lt;br /&gt;
! v 1.1&lt;br /&gt;
! v 1.2&lt;br /&gt;
! v 1.3&lt;br /&gt;
! v 1.4&lt;br /&gt;
! master/gtk4&lt;br /&gt;
|-&lt;br /&gt;
| Boehm-GC&lt;br /&gt;
| 7.2&lt;br /&gt;
| 7.2&lt;br /&gt;
| 7.2&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Cairo&lt;br /&gt;
| 1.14&lt;br /&gt;
| 1.14 (1.15.4 required for PDF links)&lt;br /&gt;
| 1.16*&lt;br /&gt;
| 1.16&lt;br /&gt;
| 1.16&lt;br /&gt;
|&lt;br /&gt;
| 1.16**&lt;br /&gt;
|-&lt;br /&gt;
| double-conversion [https://github.com/google/double-conversion]&amp;lt;br/&amp;gt;''(lib2geom dependency)''&lt;br /&gt;
| ''(not required)''&lt;br /&gt;
| any&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| FreeType&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 2.9* (Required for Variable fonts)&lt;br /&gt;
| 2.9&lt;br /&gt;
| 2.9&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| GDL&lt;br /&gt;
| N/A&amp;lt;br /&amp;gt;(3.4)&lt;br /&gt;
| 3.4&lt;br /&gt;
| Not Used&lt;br /&gt;
| Not Used&lt;br /&gt;
| Not Used&lt;br /&gt;
| Not Used&lt;br /&gt;
|-&lt;br /&gt;
| Glib&lt;br /&gt;
| 2.28&lt;br /&gt;
| 2.48&lt;br /&gt;
| 2.56 or 2.62*&lt;br /&gt;
| 2.64&lt;br /&gt;
| 2.64&lt;br /&gt;
|&lt;br /&gt;
| 2.68**&lt;br /&gt;
|-&lt;br /&gt;
| GTK+&lt;br /&gt;
| 2.24&amp;lt;br /&amp;gt;(3.8)&lt;br /&gt;
| 3.22&lt;br /&gt;
| 3.24*&lt;br /&gt;
| 3.24&lt;br /&gt;
| 3.24&lt;br /&gt;
|&lt;br /&gt;
| 4.12&amp;lt;sup&amp;gt;+&amp;lt;/sup&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| GNU Scientific Library&lt;br /&gt;
| ?&lt;br /&gt;
| ?&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| HarfBuzz&lt;br /&gt;
| ?&lt;br /&gt;
| ?&lt;br /&gt;
| 2.2*&lt;br /&gt;
| 2.6&lt;br /&gt;
| 2.6&lt;br /&gt;
| 2.6.5*&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| libsigc++&lt;br /&gt;
| ''2.0.12*''&lt;br /&gt;
| ''2.0.12*''&lt;br /&gt;
| ''2.0.12*''&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 3.0**&lt;br /&gt;
|-&lt;br /&gt;
| libSoup&lt;br /&gt;
| ''(not required)''&lt;br /&gt;
| (any)&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| libpotrace&lt;br /&gt;
| ''(not required)''&lt;br /&gt;
| (any)&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| libxml&lt;br /&gt;
| ''2.6.11*''&lt;br /&gt;
| ''2.6.11*''&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| libxslt&lt;br /&gt;
| ''1.0.15*''&lt;br /&gt;
| ''1.0.15*''&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| lcms&lt;br /&gt;
| 1.13&lt;br /&gt;
| 2.2&lt;br /&gt;
| 2.2 (2.9*)&lt;br /&gt;
| 2.9*&lt;br /&gt;
| 2.9*&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Pango&lt;br /&gt;
| 1.24&lt;br /&gt;
| 1.24 (1.41.1 required for variable fonts)&lt;br /&gt;
| 1.42*&lt;br /&gt;
| 1.44&lt;br /&gt;
| 1.44 (HarfBuzz shaping)&lt;br /&gt;
|&lt;br /&gt;
| 2.48**&lt;br /&gt;
|-&lt;br /&gt;
| Poppler&lt;br /&gt;
| 0.20.0&lt;br /&gt;
| 0.20.0&lt;br /&gt;
| 0.29 (0.71*)&lt;br /&gt;
| 0.29 (0.71*)&lt;br /&gt;
| 0.71*&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [https://formulae.brew.sh/formula/gtk-mac-integration gtk-mac-integration]&amp;lt;br&amp;gt;[https://www.macports.org/ports.php?by=library&amp;amp;substr=gtk-osx-application-gtk3 gtk-osx-application-gtk3]&lt;br /&gt;
| N/A&lt;br /&gt;
| 2.0.8 ([[CompilingMacOsX|macOS only]])&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
''* Tentative dependency''&lt;br /&gt;
&lt;br /&gt;
* Pango 1.42.2 requires Harfbuzz 1.4.2&lt;br /&gt;
* Pango 1.44.0 requires Glib 2.59.2 and Harfbuzz 2.0. 1.44 exposes hb_font directly.&lt;br /&gt;
* Pango 1.45.1 requires Glib 2.60&lt;br /&gt;
* Pango 1.48.4 has vertical upright marks fix.&lt;br /&gt;
* Harfbuzz 4.1 changes glyph positioning for upright vertical text when font does not have vertical metrics (from glyph touching to of cell to being centered in cell).&lt;br /&gt;
&lt;br /&gt;
''** Gtkmm4 requires API changed Glibmm, Cairomm, and Pangomm. In particular, enums use child namespaces in newer libraries (Cairo::FORMAT_ARGB32 -&amp;gt; Cairo::Surface::Format::ARGB32).''&lt;br /&gt;
&lt;br /&gt;
''&amp;lt;sup&amp;gt;+&amp;lt;/sup&amp;gt; Decision at 5 Nov 2023 developer's meeting. Gtk4 4.10.1 has an important scrolling bug fix.''&lt;br /&gt;
&lt;br /&gt;
== Distros ==&lt;br /&gt;
&lt;br /&gt;
Note: This table is not relevant to (non-fink) MacOS X, where we ship the desired version with Inkscape.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Inkscape&amp;quot; column is default or distro version / oldest that builds - latest that builds. If no latest is given then that means trunk is expected to build on the given platform.&lt;br /&gt;
&lt;br /&gt;
e.g. for a distro that ships with 0.48 but should support building of trunk you might get:&lt;br /&gt;
 0.48 / 0.47-&lt;br /&gt;
&lt;br /&gt;
'''General rules:'''&lt;br /&gt;
* Support latest Debian Stable (as of feature freeze) [https://www.debian.org/distrib/packages Debian packages]&lt;br /&gt;
* Support latest Ubuntu LTS (as of feature freeze) [https://packages.ubuntu.com/ Ubuntu packages]&lt;br /&gt;
**e.g. Considering Inkscape 1.2, the latest Ubuntu LTS at '''feature freeze time''' (around February 2022) would have been Ubuntu 20.04. The latest LTS at release time (around May 2022), though, will be Ubuntu 22.04.  Therefore, according to the rule, we should support Ubuntu 20.04 LTS as the minimum version.&lt;br /&gt;
&lt;br /&gt;
* Support last two Fedora releases (as of feature freeze) [https://packages.fedoraproject.org/ Fedora packages]&lt;br /&gt;
* Don't break ''point'' releases.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Distro&lt;br /&gt;
! Inkscape&lt;br /&gt;
! gcc&amp;lt;sup&amp;gt;#&amp;lt;/sup&amp;gt;&lt;br /&gt;
! clang&amp;lt;sup&amp;gt;#&amp;lt;/sup&amp;gt;&lt;br /&gt;
! cairo&lt;br /&gt;
! cairomm&lt;br /&gt;
! freetype&lt;br /&gt;
! glib&lt;br /&gt;
! glibmm&lt;br /&gt;
! gtk+&lt;br /&gt;
! gtkmm&lt;br /&gt;
! harfbuzz&lt;br /&gt;
! pango&lt;br /&gt;
! poppler&lt;br /&gt;
! gdl&lt;br /&gt;
! lcms2&lt;br /&gt;
! libsigc++&lt;br /&gt;
! libgc &amp;lt;!-- Fedora rpm: gc --&amp;gt;&lt;br /&gt;
! libsoup&lt;br /&gt;
|-&lt;br /&gt;
| Windows MSYS2 (2021-04-14)&amp;lt;br/&amp;gt;([https://github.com/Alexpux/MINGW-packages mingw-w64 packages] from MSYS2 project)&lt;br /&gt;
  &amp;lt;!-- see http://quodlibet.duckdns.org/msys2/base for list of latest package versions --&amp;gt;&lt;br /&gt;
| 1.0.2&lt;br /&gt;
| 10.2.0&lt;br /&gt;
| 11.0.0&lt;br /&gt;
| 1.17.4&lt;br /&gt;
| 1.12.2&lt;br /&gt;
| 2.10.4&lt;br /&gt;
| 2.68.1&lt;br /&gt;
| 2.66.0&lt;br /&gt;
| 3.24.27&lt;br /&gt;
| 3.24.3&lt;br /&gt;
| 2.8.0&lt;br /&gt;
| 1.48.4&lt;br /&gt;
| 20.12.1&lt;br /&gt;
| 3.34.0&lt;br /&gt;
| 2.12&lt;br /&gt;
| 2.10.6&lt;br /&gt;
| 8.0.4 &amp;lt;!-- mingw-w64-gc --&amp;gt;&lt;br /&gt;
| 2.72.0&lt;br /&gt;
|-&lt;br /&gt;
| Debian 11 (Bullseye, oldstable) &amp;lt;small&amp;gt;EOL 2026&amp;lt;/small&amp;gt;&lt;br /&gt;
| 1.0.2&lt;br /&gt;
| 10.2.1&lt;br /&gt;
| 13.0.1&lt;br /&gt;
| 1.16&lt;br /&gt;
| 1.12.2&lt;br /&gt;
| 2.10.4&lt;br /&gt;
| 2.66.8&lt;br /&gt;
| 2.64.2&lt;br /&gt;
| 3.24.24&lt;br /&gt;
| 3.24.2&lt;br /&gt;
| 2.7.4&lt;br /&gt;
| 1.46.2&lt;br /&gt;
| 20.09.0&lt;br /&gt;
| 3.34.0&lt;br /&gt;
| 2.12&lt;br /&gt;
| 2.10.4&lt;br /&gt;
| 8.0.4&lt;br /&gt;
| 2.72.0&lt;br /&gt;
|-&lt;br /&gt;
| Debian 12 (Bookworm, stable) &amp;lt;small&amp;gt;EOL 2028?&amp;lt;/small&amp;gt;&lt;br /&gt;
| 1.2.2&lt;br /&gt;
| 12.2.0&lt;br /&gt;
| 15.0.6&lt;br /&gt;
| 1.16.0&lt;br /&gt;
| 1.12.1&lt;br /&gt;
| 2.10.4&lt;br /&gt;
| 2.74.5&lt;br /&gt;
| 2.74.0&lt;br /&gt;
| 3.24.36&amp;lt;br /&amp;gt;4.8.3&lt;br /&gt;
| 3.24.7&amp;lt;br /&amp;gt;4.8.0&lt;br /&gt;
| 6.0.0&lt;br /&gt;
| 1.50.12&lt;br /&gt;
| 22.12.0&lt;br /&gt;
| 3.40.0&lt;br /&gt;
| 2.14.1&lt;br /&gt;
| 2.12.0&amp;lt;br /&amp;gt;3.4.0&lt;br /&gt;
| 8.2.2&lt;br /&gt;
| 2.74.03&amp;lt;br /&amp;gt;3.2.2&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu 22.04 LTS (Jammy Jellyfish) &amp;lt;small&amp;gt;EOL 2027-04&amp;lt;/small&amp;gt;&lt;br /&gt;
| 1.1.2&lt;br /&gt;
| 12.3.0&lt;br /&gt;
| 15.0.7&lt;br /&gt;
| 1.16.0&lt;br /&gt;
| 1.12.2&lt;br /&gt;
| 2.11.1&lt;br /&gt;
| 2.72.1&lt;br /&gt;
| 2.66.2&lt;br /&gt;
| 3.24.33&amp;lt;br /&amp;gt;4.6.2&lt;br /&gt;
| 3.24.5&amp;lt;br /&amp;gt;no libgtkmm-4.0&lt;br /&gt;
| 2.7.4&lt;br /&gt;
| 1.50.6&lt;br /&gt;
| 22.02.0&lt;br /&gt;
| 3.40.0&lt;br /&gt;
| 2.12-rc1&lt;br /&gt;
| 2.10.4&lt;br /&gt;
| 8.0.6&lt;br /&gt;
| 2.74.2&amp;lt;br /&amp;gt;3.0.5&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu 23.10 (Mantic)&lt;br /&gt;
| 1.2.2&lt;br /&gt;
| 13.2.0&lt;br /&gt;
| 16.0.0&amp;lt;br /&amp;gt;(17.0.2)&lt;br /&gt;
| 1.14.4&amp;lt;br /&amp;gt;1.16.0&lt;br /&gt;
| 1.14.4&amp;lt;br /&amp;gt;1.16.2&lt;br /&gt;
| 2.13.1&lt;br /&gt;
| 2.78.0&lt;br /&gt;
| 2.66.6&amp;lt;br /&amp;gt;2.78.0&lt;br /&gt;
| 3.24.38&amp;lt;br /&amp;gt;4.12.2&lt;br /&gt;
| 3.24.8&amp;lt;br /&amp;gt;4.10.0&lt;br /&gt;
| 8.0.1&lt;br /&gt;
| 1.51.0&amp;lt;br /&amp;gt;2.50.1&lt;br /&gt;
| 23.08.0&lt;br /&gt;
| 3.40.0&lt;br /&gt;
| 2.14.2&lt;br /&gt;
| 2.12.0&amp;lt;br /&amp;gt;3.4.0&lt;br /&gt;
| 8.2.4&lt;br /&gt;
| 2.74.3&amp;lt;br /&amp;gt;3.4.2&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu 24.04 LTS (Noble) &amp;lt;small&amp;gt;EOL 2029-04&amp;lt;/small&amp;gt;&lt;br /&gt;
| 1.2.2&lt;br /&gt;
| 13.2.0&lt;br /&gt;
| 18.0.0&amp;lt;br /&amp;gt;(18.1.3)&lt;br /&gt;
| 1.18.0&lt;br /&gt;
| 1.14.5&amp;lt;br /&amp;gt;1.18.0&lt;br /&gt;
| 2.13.2&lt;br /&gt;
| 2.80.0&lt;br /&gt;
| 2.66.7&amp;lt;br /&amp;gt;2.78.1&lt;br /&gt;
| 3.24.41&amp;lt;br /&amp;gt;4.14.2&lt;br /&gt;
| 3.24.9&amp;lt;br /&amp;gt;4.10.0&lt;br /&gt;
| 8.3.0&lt;br /&gt;
| 1.52.1&amp;lt;br /&amp;gt;2.52.0&lt;br /&gt;
| 24.02.0&lt;br /&gt;
| 3.40.0&lt;br /&gt;
| 2.14.2&lt;br /&gt;
| 2.12.1&amp;lt;br /&amp;gt;3.6.0&lt;br /&gt;
| 8.2.6&lt;br /&gt;
| 2.74.3&amp;lt;br /&amp;gt;3.4.4&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu 24.10 (Oracular)&lt;br /&gt;
| 1.2.2&lt;br /&gt;
| 14.1.0&lt;br /&gt;
| 19.0&amp;lt;br /&amp;gt;(19.0)&lt;br /&gt;
| 1.18.2&lt;br /&gt;
| 1.14.5&amp;lt;br /&amp;gt;1.18.0&lt;br /&gt;
| 2.13.3&lt;br /&gt;
| 2.80.0&lt;br /&gt;
| 2.66.7&amp;lt;br /&amp;gt;2.82.0&lt;br /&gt;
| 3.24.43&amp;lt;br /&amp;gt;4.16.1&lt;br /&gt;
| 3.24.9&amp;lt;br /&amp;gt;4.16.0&lt;br /&gt;
| 9.0.0&lt;br /&gt;
| 1.54.0&amp;lt;br /&amp;gt;2.54.0&lt;br /&gt;
| 24.08.0&lt;br /&gt;
| 3.40.0&lt;br /&gt;
| 2.14.2&lt;br /&gt;
| 2.12.1&amp;lt;br /&amp;gt;3.6.0&lt;br /&gt;
| 8.2.6&lt;br /&gt;
| 2.74.3&amp;lt;br /&amp;gt;3.6.0&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;sup&amp;gt;#&amp;lt;/sup&amp;gt;Debian and Ubuntu offer multiple gcc and clang versions, latest available version listed.&lt;br /&gt;
&lt;br /&gt;
* Agreed to at Saarbrücken hackfest.&lt;br /&gt;
&lt;br /&gt;
== Getting and Installing Source packages ==&lt;br /&gt;
&lt;br /&gt;
See [https://inkscape.org/develop/getting-started/ Getting Started]&lt;br /&gt;
&lt;br /&gt;
== Optional Dependencies ==&lt;br /&gt;
&lt;br /&gt;
Inkscape will still compile without these, but some features may be missing if they are absent during compilation:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Library&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Needed for&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Default&lt;br /&gt;
|-&lt;br /&gt;
|aspell&lt;br /&gt;
|Dictionaries for spell checking&lt;br /&gt;
|On&lt;br /&gt;
|-&lt;br /&gt;
|libcdr&lt;br /&gt;
|Open Corel Draw files&lt;br /&gt;
|On&lt;br /&gt;
|-&lt;br /&gt;
|gettext/msgformat&lt;br /&gt;
|Translation support&lt;br /&gt;
|On&lt;br /&gt;
|-&lt;br /&gt;
|gtest/gmock&lt;br /&gt;
|Automatted testing&lt;br /&gt;
|Off&lt;br /&gt;
|-&lt;br /&gt;
|gspell&lt;br /&gt;
|Spell checking&lt;br /&gt;
|On&lt;br /&gt;
|-&lt;br /&gt;
|imagemagick&lt;br /&gt;
|Bitmap editing extensions, bitmap import resolution&lt;br /&gt;
|On&lt;br /&gt;
|-&lt;br /&gt;
|jpeg&lt;br /&gt;
|jpeg import?&lt;br /&gt;
|On&lt;br /&gt;
|-&lt;br /&gt;
|OpenMP&lt;br /&gt;
|Multi-threaded filter rendering&lt;br /&gt;
|On&lt;br /&gt;
|-&lt;br /&gt;
|scour&lt;br /&gt;
|Save as Optimized SVG&lt;br /&gt;
|(not needed during compiling, Python)&lt;br /&gt;
|-&lt;br /&gt;
|libvisio&lt;br /&gt;
|Open Visio Files, use Visio stencils&lt;br /&gt;
|On&lt;br /&gt;
|-&lt;br /&gt;
|libwpg&lt;br /&gt;
|Open WordPerfect Graphics&lt;br /&gt;
|On&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:About Inkscape]]&lt;br /&gt;
[[Category:Developer Documentation]]&lt;/div&gt;</summary>
		<author><name>Tavmjong</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Files:_Save&amp;diff=123075</id>
		<title>Files: Save</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Files:_Save&amp;diff=123075"/>
		<updated>2024-11-05T10:03:10Z</updated>

		<summary type="html">&lt;p&gt;Tavmjong: /* MacOS */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''Italic text''&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
With native file dialogs, we cannot add features such as check boxes for options (&amp;quot;Choices&amp;quot;). We also cannot obtain information about which file filter is selected. We can only use the file extension to determin file type. This breaks are current method for using file dialogs to influence how files are saved. In particular:&lt;br /&gt;
* We cannot have a checkbox to &amp;quot;Save as 1.1 SVG&amp;quot;.&lt;br /&gt;
* We cannot use the file filter setting to distinguish between saving as:&lt;br /&gt;
    * &amp;quot;Inkscape SVG&amp;quot;, &amp;quot;Plain SVG&amp;quot; or &amp;quot;Optimized SVG&amp;quot; (''.svg'').&lt;br /&gt;
    * &amp;quot;Compressed Inkscape SVG&amp;quot; and &amp;quot;Compressed Plain SVG&amp;quot; (''.svgz'').&lt;br /&gt;
    * &amp;quot;DXF 12&amp;quot; or &amp;quot;DXF 14&amp;quot; (''.dxf'').&lt;br /&gt;
    * &amp;quot;Compressed Inkscape with media&amp;quot; or &amp;quot;JessyInk&amp;quot; (''.zip'').&lt;br /&gt;
Native file dialogs are simply useful for choosing file names, nothing more, nothing less.&lt;br /&gt;
&lt;br /&gt;
It's important to recognize that the Gtk::FileDialog class is NOT derived from a widget thus we cannot not change the insides. This is a necessity born from using native dialogs.&lt;br /&gt;
&lt;br /&gt;
Our current (Inkscape 1.4) situation spreads options for how SVG's are saved across several places. Choosing Inkscape or Plain SVG's is done in the File menu, selecting to save to SVG 2 or SVG 1.1 is done in the File dialog, selecting which SVG 2 features are converted to SVG 1.1 fallbacks is done in the Preferences dialog. It would be better to have all of this in one place.&lt;br /&gt;
&lt;br /&gt;
The Export dialog has received a lot of love over the past few years. However, it currently can handle only a subset of the file types that Inkscape can export to.&lt;br /&gt;
&lt;br /&gt;
See also [[Files: Output|2018 proposal]].&lt;br /&gt;
&lt;br /&gt;
== Current Behavior ==&lt;br /&gt;
&lt;br /&gt;
=== Save ===&lt;br /&gt;
&lt;br /&gt;
New document:&lt;br /&gt;
* Opens file dialog (drawing.svg, set to Inkscape SVG).&lt;br /&gt;
If opened as:&lt;br /&gt;
* SVG: Saves as Inkscape SVG. (If write-protected, opens file dialog.)&lt;br /&gt;
* PDF: Saves as PDF after popping open dialog. On quitting, warns about data loss.&lt;br /&gt;
* EPS: Saves as EPS after popping open dialog. On quitting, warns about data loss.&lt;br /&gt;
* EMF: Saves as EMF after popping open dialog. On quitting, warns about data loss.&lt;br /&gt;
* DXF: Saves as DXF 12 (even if opened as DXF 14). without popping open dialog. On quitting, warns about data loss.&lt;br /&gt;
* PNG: Opens PNG settings then fails silently&lt;br /&gt;
* JPG: Opens JPG settings then fails, opening Save dialog.&lt;br /&gt;
&lt;br /&gt;
=== Save as ===&lt;br /&gt;
&lt;br /&gt;
Opens file dialog. Preset to last saved file type (can be bitmap!).&lt;br /&gt;
Can save to any vector format in file filter list.&lt;br /&gt;
* &amp;quot;Guess from extension&amp;quot; will fail if trying to save bitmap (may or may not be silently). (Will open PNG settings.)&lt;br /&gt;
* &amp;quot;Append filename extension automatically&amp;quot; fails.(Bug)&lt;br /&gt;
&lt;br /&gt;
=== Save a copy ===&lt;br /&gt;
&lt;br /&gt;
Same as &amp;quot;Save as&amp;quot; but doesn't update internal file data (e.g. file name).&lt;br /&gt;
&lt;br /&gt;
== Proposal ==&lt;br /&gt;
&lt;br /&gt;
With GTK4 Inkscape, all &amp;quot;Export&amp;quot; is done through the Export dialog, where &amp;quot;Export&amp;quot; is defined as saving a document to any form other than Inkscape SVG.&lt;br /&gt;
&lt;br /&gt;
''The File menu will contain these options:''&lt;br /&gt;
&lt;br /&gt;
=== Save ===&lt;br /&gt;
&lt;br /&gt;
Save a document to Inkscape SVG.&lt;br /&gt;
* If a document does not contain a stored filename, open up File dialog to choose a filename.&lt;br /&gt;
* Update internal Inkscape version and filename. Clear modified flag.&lt;br /&gt;
* Save.&lt;br /&gt;
* If save fails, revert internal Inkcape version and filename. Restore modified flag.&lt;br /&gt;
&lt;br /&gt;
=== Save as... ===&lt;br /&gt;
&lt;br /&gt;
Save a document as Inkscape SVG with a new different filename.&lt;br /&gt;
* Open up File dialog to choose a filename.&lt;br /&gt;
* Update internal Inkscape version and filename. Clear modified flag.&lt;br /&gt;
* Save.&lt;br /&gt;
* If save fails, revert internal Inkcape version and filename. Restore modified flag.&lt;br /&gt;
&lt;br /&gt;
=== Save a copy... ===&lt;br /&gt;
Save a document as Inkscape SVG with a new different filename, not updating internals.&lt;br /&gt;
&lt;br /&gt;
* Open up File dialog to choose a filename.&lt;br /&gt;
* Update internal Inkscape version and filename.&lt;br /&gt;
* Save.&lt;br /&gt;
* Revert internal Inkcape version and filename. Restore modified flag.&lt;br /&gt;
&lt;br /&gt;
=== Save Template... ===&lt;br /&gt;
Save a document as an Inkscape template.&lt;br /&gt;
&lt;br /&gt;
=== Export ===&lt;br /&gt;
[[File:Save File Types 1.4.x.png|thumb|File types from the 1.4.x Save dialog.]]&lt;br /&gt;
&lt;br /&gt;
Export document to a non Inkscape SVG format.&lt;br /&gt;
&lt;br /&gt;
* Open up Export dialog to choose export file type and options..&lt;br /&gt;
&lt;br /&gt;
Options shown are based on selected file type.&lt;br /&gt;
&lt;br /&gt;
The 1.4.x Export dialog currently handles: PNG, Inkscape SVG (no SVG specific options), Plain SVG, JPEG (with a big warning), TIFF, and WebP. The types the 1.4.x Save dialog handles are shown in the figure.&lt;br /&gt;
&lt;br /&gt;
I'm wondering about which file types we should still support. For example, AutoCAD R12 is from 1992 and R14 is from 1997. Flash is long deprecated, with any kind of support ending in 2020.&lt;br /&gt;
&lt;br /&gt;
Note: Bitmap formats are only available from the Export dialog.&lt;br /&gt;
&lt;br /&gt;
=== Export Overwrite ===&lt;br /&gt;
''New (needs some thought)'' Export document, overwriting.&lt;br /&gt;
&lt;br /&gt;
* Export to same format as import or to the previously used export filetype.&lt;br /&gt;
* No File dialog used.&lt;br /&gt;
&lt;br /&gt;
== Unification ==&lt;br /&gt;
&lt;br /&gt;
We have export from the command line and we have export from the Export dialog. These should be unified. It should be possible to set any values from the command line that you can set within the Export dialog. This can be done either of two ways:&lt;br /&gt;
&lt;br /&gt;
# Adapt the file export class used to track export options to handle more options.&lt;br /&gt;
# Rely completely on setting preferences as is done by the Export dialog.&lt;br /&gt;
&lt;br /&gt;
The first means that options are temporary, the second means options are stored in the Preferences file. The second method is probably easier.&lt;br /&gt;
&lt;br /&gt;
== Notes on File dialogs ==&lt;br /&gt;
&lt;br /&gt;
We don't need to check on overwriting files ourselves. The file dialogs on all there platforms already have overwrite protection (verify for Windows).&lt;br /&gt;
&lt;br /&gt;
=== Linux ===&lt;br /&gt;
&lt;br /&gt;
=== MacOS ===&lt;br /&gt;
&lt;br /&gt;
The MacOS dialog will add a file extension if it doesn't already exist based on the File type filter setting (if the filter setting is set to a single file type).&lt;br /&gt;
&lt;br /&gt;
''Gio::FileInfo::get_content_type()'' returns a '''UTI''' (''public.tiff'') rather than a '''mime-type''' (''image/tiff'').&lt;br /&gt;
&lt;br /&gt;
=== Windows ===&lt;br /&gt;
&lt;br /&gt;
== Questions ==&lt;br /&gt;
&lt;br /&gt;
=== Directories ===&lt;br /&gt;
We keep track of the last directories for various file dialogues in preferences. A couple dialogs will fallback to the Windows' Document directory if a preference is not set. Is this desired behavior? Should it be that way on all platforms? Should it be that way for all file dialogs? If the Document directory does not exist, should we fallback to the Home directory? Glib makes it easy to find these directories (we don't need the complicated Windows code that is in ''get_start_directory()'' at the moment).&lt;br /&gt;
&lt;br /&gt;
== Supported Formats ==&lt;br /&gt;
From src/extension/internal:&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|+ File formats supported by Inkscape&lt;br /&gt;
|-&lt;br /&gt;
! File Extension !! Format/Software     !! Type   !! Input       !! Output      !! Module&amp;lt;sup&amp;gt;*&amp;lt;/sup&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| AI             || Adobe Illustrator   || Vector || ✔           ||             || pdf-input.cpp&lt;br /&gt;
|-&lt;br /&gt;
| CDR, CDT, CCX, CMX || CorelDraw       || Vector || ✔           ||             || cdr-input.cpp, libcdr&lt;br /&gt;
|-&lt;br /&gt;
| DHW            || ACECAD DigiMemo     || Vector || ✔           ||             || dhw_input.py&lt;br /&gt;
|-&lt;br /&gt;
| DXF            || AutoCAD             || Vector || ✔ (13, 14?) || ✔ (12, 14)  || dxf_input.py, dxf12_outlines.py, dxf_outlines.py&lt;br /&gt;
|-&lt;br /&gt;
| EMF            || MS Enhanced Metafile|| Vector || ✔           || ✔           || emf-inout.cpp, emf-print.cpp&lt;br /&gt;
|-&lt;br /&gt;
| EPS            || Encapsulated PS     || Vector || ✔           || ✔           || eps_input.py&lt;br /&gt;
|-&lt;br /&gt;
| FIG            || XFig                || Vector || ✔           ||             || fig_input.py&lt;br /&gt;
|-&lt;br /&gt;
| FXG            || Flash               || Vector ||             || ✔           || svg2fxg.py&lt;br /&gt;
|-&lt;br /&gt;
| GGR            || Gimp Gradient       || Other  || ✔           ||             || gimpgrad.cpp&lt;br /&gt;
|-&lt;br /&gt;
| GPL            || Gimp Palette        || Other  || ✔           || ✔           || Swatch dialog&lt;br /&gt;
|-&lt;br /&gt;
| HPGL           || HP Graphics Language|| Vector || ✔           || ✔           || hpgl_input_sm.py, hpgl2_input.py, hpgl_output.py, (plotter.py)&lt;br /&gt;
|-&lt;br /&gt;
| HTML5          || HTML Canvas         || Other  ||             || ✔           || ink2canvas.py&lt;br /&gt;
|-&lt;br /&gt;
| JPEG           || JPEG                || Raster || ✔           || ✔           || libpixbuf, raster_output_jpg.py&lt;br /&gt;
|-&lt;br /&gt;
| SIF            || Synfig Annimation   || Vector ||             || ✔           || sinfig_output.py, sinfig_prepare.py&lt;br /&gt;
|-&lt;br /&gt;
| TAR            || SVG (Separate layers)|| Vector||             || ✔           || tar_layers.py&lt;br /&gt;
|-&lt;br /&gt;
| TEX            || Latex-PSTricks      || Vector ||             || ✔           || pdflatex.py?, latex-pstricks.cpp&lt;br /&gt;
|-&lt;br /&gt;
| TEX            || Latex               || Vector ||             || ✔?          || latex-text-renderer.cpp&lt;br /&gt;
|-&lt;br /&gt;
| ODG            || OpenDocument Drawing|| Vector ||             || ✔           || odf.cpp&lt;br /&gt;
|-&lt;br /&gt;
| PDF            || Portable Document Format || Vector || ✔ Internal, Cairo     || ✔ Cairo, Scribus  || scribus_export_pdf.py, cairo-renderer-pdf-out.cpp, pdfinput/&lt;br /&gt;
|-&lt;br /&gt;
| PNG            || PNG                 || Raster || ✔           || ✔           || libpixbuf, raster_output_png.py&lt;br /&gt;
|-&lt;br /&gt;
| POV            || POV-Ray             || Vector ||             || ✔           || pov-out.cpp&lt;br /&gt;
|-&lt;br /&gt;
| PS             || PostScript          || Vector || ✔           || ✔ Cairo     || ps_input.py, cairo-ps-out.cpp&lt;br /&gt;
|-&lt;br /&gt;
| SVG            || SVG                 || Vector || ✔ (Inkscape, Adobe) || ✔ (Inkscape, Plain, Optimized) || output_scour.py; svg.cpp, xml/repr-io.cpp, aisvg.inx, doc_ai_convert.py&lt;br /&gt;
|-&lt;br /&gt;
| SVGZ           || SVG Compressed      || Vector || ✔           || ✔ (Inkscape, Plain) || svgz.cpp&lt;br /&gt;
|-&lt;br /&gt;
| TIFF           || Tagged Image Format || Raster || ✔           || ✔           || libpixbuf, raster_output_tiff.py&lt;br /&gt;
|-&lt;br /&gt;
| VSDM, VSDX, VSD, VDX || MS Visio      || Vector || ✔           ||             || vsd-input.cpp&lt;br /&gt;
|-&lt;br /&gt;
| WEBP           || WEBP (Google)       || Raster || ✔           || ✔           || libpixbuf, raster_output_webp.py&lt;br /&gt;
|-&lt;br /&gt;
| WMF            || MS Windows Metafile || Vector || ✔           || ✔           || wmf-inout.cpp, wmf-print.cpp&lt;br /&gt;
|-&lt;br /&gt;
| WPG            || WordPerfect Graphics|| Vector || ✔           ||             || wpg-input.cpp&lt;br /&gt;
|-&lt;br /&gt;
| XAML           || MS XAML             || Vector || ✔           || ✔           || other/extension-xaml/inkxaml/&lt;br /&gt;
|-&lt;br /&gt;
| XCF            || Gimp XCF w/ Layers  || Vector ||             || ✔           || gimp_xcf.py&lt;br /&gt;
|-&lt;br /&gt;
| ZIP            || JessyInk PNG/PDF    || Other  ||             || ✔           || jessyink_export.py&lt;br /&gt;
|-&lt;br /&gt;
| ZIP            || SVG Compressed w/ Media || Other  ||         || ✔           || media_zip.py&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;sup&amp;gt;*&amp;lt;/sup&amp;gt;Python files are mostly in share/extensions, C++ files are mostly in src/extensions/internal.&lt;br /&gt;
&lt;br /&gt;
Input formats supported by GTK (via '''libpixbuf'''): ani, avif, bmp, gif, icns, ico, jpeg, jxl, png, pnm, qtif, svg, tga, tiff, wmf, xbm (SEI/gdkpixbut-input.cpp). (SVG and WMF are imported by our own vector code.)&lt;br /&gt;
&lt;br /&gt;
There are also several export methods available under the '''Extensions''' menu.&lt;/div&gt;</summary>
		<author><name>Tavmjong</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Files:_Save&amp;diff=123068</id>
		<title>Files: Save</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Files:_Save&amp;diff=123068"/>
		<updated>2024-10-24T13:38:04Z</updated>

		<summary type="html">&lt;p&gt;Tavmjong: /* Save */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''Italic text''&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
With native file dialogs, we cannot add features such as check boxes for options (&amp;quot;Choices&amp;quot;). We also cannot obtain information about which file filter is selected. We can only use the file extension to determin file type. This breaks are current method for using file dialogs to influence how files are saved. In particular:&lt;br /&gt;
* We cannot have a checkbox to &amp;quot;Save as 1.1 SVG&amp;quot;.&lt;br /&gt;
* We cannot use the file filter setting to distinguish between saving as:&lt;br /&gt;
    * &amp;quot;Inkscape SVG&amp;quot;, &amp;quot;Plain SVG&amp;quot; or &amp;quot;Optimized SVG&amp;quot; (''.svg'').&lt;br /&gt;
    * &amp;quot;Compressed Inkscape SVG&amp;quot; and &amp;quot;Compressed Plain SVG&amp;quot; (''.svgz'').&lt;br /&gt;
    * &amp;quot;DXF 12&amp;quot; or &amp;quot;DXF 14&amp;quot; (''.dxf'').&lt;br /&gt;
    * &amp;quot;Compressed Inkscape with media&amp;quot; or &amp;quot;JessyInk&amp;quot; (''.zip'').&lt;br /&gt;
Native file dialogs are simply useful for choosing file names, nothing more, nothing less.&lt;br /&gt;
&lt;br /&gt;
It's important to recognize that the Gtk::FileDialog class is NOT derived from a widget thus we cannot not change the insides. This is a necessity born from using native dialogs.&lt;br /&gt;
&lt;br /&gt;
Our current (Inkscape 1.4) situation spreads options for how SVG's are saved across several places. Choosing Inkscape or Plain SVG's is done in the File menu, selecting to save to SVG 2 or SVG 1.1 is done in the File dialog, selecting which SVG 2 features are converted to SVG 1.1 fallbacks is done in the Preferences dialog. It would be better to have all of this in one place.&lt;br /&gt;
&lt;br /&gt;
The Export dialog has received a lot of love over the past few years. However, it currently can handle only a subset of the file types that Inkscape can export to.&lt;br /&gt;
&lt;br /&gt;
See also [[Files: Output|2018 proposal]].&lt;br /&gt;
&lt;br /&gt;
== Current Behavior ==&lt;br /&gt;
&lt;br /&gt;
=== Save ===&lt;br /&gt;
&lt;br /&gt;
New document:&lt;br /&gt;
* Opens file dialog (drawing.svg, set to Inkscape SVG).&lt;br /&gt;
If opened as:&lt;br /&gt;
* SVG: Saves as Inkscape SVG. (If write-protected, opens file dialog.)&lt;br /&gt;
* PDF: Saves as PDF after popping open dialog. On quitting, warns about data loss.&lt;br /&gt;
* EPS: Saves as EPS after popping open dialog. On quitting, warns about data loss.&lt;br /&gt;
* EMF: Saves as EMF after popping open dialog. On quitting, warns about data loss.&lt;br /&gt;
* DXF: Saves as DXF 12 (even if opened as DXF 14). without popping open dialog. On quitting, warns about data loss.&lt;br /&gt;
* PNG: Opens PNG settings then fails silently&lt;br /&gt;
* JPG: Opens JPG settings then fails, opening Save dialog.&lt;br /&gt;
&lt;br /&gt;
=== Save as ===&lt;br /&gt;
&lt;br /&gt;
Opens file dialog. Preset to last saved file type (can be bitmap!).&lt;br /&gt;
Can save to any vector format in file filter list.&lt;br /&gt;
* &amp;quot;Guess from extension&amp;quot; will fail if trying to save bitmap (may or may not be silently). (Will open PNG settings.)&lt;br /&gt;
* &amp;quot;Append filename extension automatically&amp;quot; fails.(Bug)&lt;br /&gt;
&lt;br /&gt;
=== Save a copy ===&lt;br /&gt;
&lt;br /&gt;
Same as &amp;quot;Save as&amp;quot; but doesn't update internal file data (e.g. file name).&lt;br /&gt;
&lt;br /&gt;
== Proposal ==&lt;br /&gt;
&lt;br /&gt;
With GTK4 Inkscape, all &amp;quot;Export&amp;quot; is done through the Export dialog, where &amp;quot;Export&amp;quot; is defined as saving a document to any form other than Inkscape SVG.&lt;br /&gt;
&lt;br /&gt;
''The File menu will contain these options:''&lt;br /&gt;
&lt;br /&gt;
=== Save ===&lt;br /&gt;
&lt;br /&gt;
Save a document to Inkscape SVG.&lt;br /&gt;
* If a document does not contain a stored filename, open up File dialog to choose a filename.&lt;br /&gt;
* Update internal Inkscape version and filename. Clear modified flag.&lt;br /&gt;
* Save.&lt;br /&gt;
* If save fails, revert internal Inkcape version and filename. Restore modified flag.&lt;br /&gt;
&lt;br /&gt;
=== Save as... ===&lt;br /&gt;
&lt;br /&gt;
Save a document as Inkscape SVG with a new different filename.&lt;br /&gt;
* Open up File dialog to choose a filename.&lt;br /&gt;
* Update internal Inkscape version and filename. Clear modified flag.&lt;br /&gt;
* Save.&lt;br /&gt;
* If save fails, revert internal Inkcape version and filename. Restore modified flag.&lt;br /&gt;
&lt;br /&gt;
=== Save a copy... ===&lt;br /&gt;
Save a document as Inkscape SVG with a new different filename, not updating internals.&lt;br /&gt;
&lt;br /&gt;
* Open up File dialog to choose a filename.&lt;br /&gt;
* Update internal Inkscape version and filename.&lt;br /&gt;
* Save.&lt;br /&gt;
* Revert internal Inkcape version and filename. Restore modified flag.&lt;br /&gt;
&lt;br /&gt;
=== Save Template... ===&lt;br /&gt;
Save a document as an Inkscape template.&lt;br /&gt;
&lt;br /&gt;
=== Export ===&lt;br /&gt;
[[File:Save File Types 1.4.x.png|thumb|File types from the 1.4.x Save dialog.]]&lt;br /&gt;
&lt;br /&gt;
Export document to a non Inkscape SVG format.&lt;br /&gt;
&lt;br /&gt;
* Open up Export dialog to choose export file type and options..&lt;br /&gt;
&lt;br /&gt;
Options shown are based on selected file type.&lt;br /&gt;
&lt;br /&gt;
The 1.4.x Export dialog currently handles: PNG, Inkscape SVG (no SVG specific options), Plain SVG, JPEG (with a big warning), TIFF, and WebP. The types the 1.4.x Save dialog handles are shown in the figure.&lt;br /&gt;
&lt;br /&gt;
I'm wondering about which file types we should still support. For example, AutoCAD R12 is from 1992 and R14 is from 1997. Flash is long deprecated, with any kind of support ending in 2020.&lt;br /&gt;
&lt;br /&gt;
Note: Bitmap formats are only available from the Export dialog.&lt;br /&gt;
&lt;br /&gt;
=== Export Overwrite ===&lt;br /&gt;
''New (needs some thought)'' Export document, overwriting.&lt;br /&gt;
&lt;br /&gt;
* Export to same format as import or to the previously used export filetype.&lt;br /&gt;
* No File dialog used.&lt;br /&gt;
&lt;br /&gt;
== Unification ==&lt;br /&gt;
&lt;br /&gt;
We have export from the command line and we have export from the Export dialog. These should be unified. It should be possible to set any values from the command line that you can set within the Export dialog. This can be done either of two ways:&lt;br /&gt;
&lt;br /&gt;
# Adapt the file export class used to track export options to handle more options.&lt;br /&gt;
# Rely completely on setting preferences as is done by the Export dialog.&lt;br /&gt;
&lt;br /&gt;
The first means that options are temporary, the second means options are stored in the Preferences file. The second method is probably easier.&lt;br /&gt;
&lt;br /&gt;
== Notes on File dialogs ==&lt;br /&gt;
&lt;br /&gt;
We don't need to check on overwriting files ourselves. The file dialogs on all there platforms already have overwrite protection (verify for Windows).&lt;br /&gt;
&lt;br /&gt;
=== Linux ===&lt;br /&gt;
&lt;br /&gt;
=== MacOS ===&lt;br /&gt;
&lt;br /&gt;
The MacOS dialog will add a file extension if it doesn't already exist based on the File type filter setting (if the filter setting is set to a single file type).&lt;br /&gt;
&lt;br /&gt;
=== Windows ===&lt;br /&gt;
&lt;br /&gt;
== Questions ==&lt;br /&gt;
&lt;br /&gt;
=== Directories ===&lt;br /&gt;
We keep track of the last directories for various file dialogues in preferences. A couple dialogs will fallback to the Windows' Document directory if a preference is not set. Is this desired behavior? Should it be that way on all platforms? Should it be that way for all file dialogs? If the Document directory does not exist, should we fallback to the Home directory? Glib makes it easy to find these directories (we don't need the complicated Windows code that is in ''get_start_directory()'' at the moment).&lt;br /&gt;
&lt;br /&gt;
== Supported Formats ==&lt;br /&gt;
From src/extension/internal:&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|+ File formats supported by Inkscape&lt;br /&gt;
|-&lt;br /&gt;
! File Extension !! Format/Software     !! Type   !! Input       !! Output      !! Module&amp;lt;sup&amp;gt;*&amp;lt;/sup&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| AI             || Adobe Illustrator   || Vector || ✔           ||             || pdf-input.cpp&lt;br /&gt;
|-&lt;br /&gt;
| CDR, CDT, CCX, CMX || CorelDraw       || Vector || ✔           ||             || cdr-input.cpp, libcdr&lt;br /&gt;
|-&lt;br /&gt;
| DHW            || ACECAD DigiMemo     || Vector || ✔           ||             || dhw_input.py&lt;br /&gt;
|-&lt;br /&gt;
| DXF            || AutoCAD             || Vector || ✔ (13, 14?) || ✔ (12, 14)  || dxf_input.py, dxf12_outlines.py, dxf_outlines.py&lt;br /&gt;
|-&lt;br /&gt;
| EMF            || MS Enhanced Metafile|| Vector || ✔           || ✔           || emf-inout.cpp, emf-print.cpp&lt;br /&gt;
|-&lt;br /&gt;
| EPS            || Encapsulated PS     || Vector || ✔           || ✔           || eps_input.py&lt;br /&gt;
|-&lt;br /&gt;
| FIG            || XFig                || Vector || ✔           ||             || fig_input.py&lt;br /&gt;
|-&lt;br /&gt;
| FXG            || Flash               || Vector ||             || ✔           || svg2fxg.py&lt;br /&gt;
|-&lt;br /&gt;
| GGR            || Gimp Gradient       || Other  || ✔           ||             || gimpgrad.cpp&lt;br /&gt;
|-&lt;br /&gt;
| GPL            || Gimp Palette        || Other  || ✔           || ✔           || Swatch dialog&lt;br /&gt;
|-&lt;br /&gt;
| HPGL           || HP Graphics Language|| Vector || ✔           || ✔           || hpgl_input_sm.py, hpgl2_input.py, hpgl_output.py, (plotter.py)&lt;br /&gt;
|-&lt;br /&gt;
| HTML5          || HTML Canvas         || Other  ||             || ✔           || ink2canvas.py&lt;br /&gt;
|-&lt;br /&gt;
| JPEG           || JPEG                || Raster || ✔           || ✔           || libpixbuf, raster_output_jpg.py&lt;br /&gt;
|-&lt;br /&gt;
| SIF            || Synfig Annimation   || Vector ||             || ✔           || sinfig_output.py, sinfig_prepare.py&lt;br /&gt;
|-&lt;br /&gt;
| TAR            || SVG (Separate layers)|| Vector||             || ✔           || tar_layers.py&lt;br /&gt;
|-&lt;br /&gt;
| TEX            || Latex-PSTricks      || Vector ||             || ✔           || pdflatex.py?, latex-pstricks.cpp&lt;br /&gt;
|-&lt;br /&gt;
| TEX            || Latex               || Vector ||             || ✔?          || latex-text-renderer.cpp&lt;br /&gt;
|-&lt;br /&gt;
| ODG            || OpenDocument Drawing|| Vector ||             || ✔           || odf.cpp&lt;br /&gt;
|-&lt;br /&gt;
| PDF            || Portable Document Format || Vector || ✔ Internal, Cairo     || ✔ Cairo, Scribus  || scribus_export_pdf.py, cairo-renderer-pdf-out.cpp, pdfinput/&lt;br /&gt;
|-&lt;br /&gt;
| PNG            || PNG                 || Raster || ✔           || ✔           || libpixbuf, raster_output_png.py&lt;br /&gt;
|-&lt;br /&gt;
| POV            || POV-Ray             || Vector ||             || ✔           || pov-out.cpp&lt;br /&gt;
|-&lt;br /&gt;
| PS             || PostScript          || Vector || ✔           || ✔ Cairo     || ps_input.py, cairo-ps-out.cpp&lt;br /&gt;
|-&lt;br /&gt;
| SVG            || SVG                 || Vector || ✔ (Inkscape, Adobe) || ✔ (Inkscape, Plain, Optimized) || output_scour.py; svg.cpp, xml/repr-io.cpp, aisvg.inx, doc_ai_convert.py&lt;br /&gt;
|-&lt;br /&gt;
| SVGZ           || SVG Compressed      || Vector || ✔           || ✔ (Inkscape, Plain) || svgz.cpp&lt;br /&gt;
|-&lt;br /&gt;
| TIFF           || Tagged Image Format || Raster || ✔           || ✔           || libpixbuf, raster_output_tiff.py&lt;br /&gt;
|-&lt;br /&gt;
| VSDM, VSDX, VSD, VDX || MS Visio      || Vector || ✔           ||             || vsd-input.cpp&lt;br /&gt;
|-&lt;br /&gt;
| WEBP           || WEBP (Google)       || Raster || ✔           || ✔           || libpixbuf, raster_output_webp.py&lt;br /&gt;
|-&lt;br /&gt;
| WMF            || MS Windows Metafile || Vector || ✔           || ✔           || wmf-inout.cpp, wmf-print.cpp&lt;br /&gt;
|-&lt;br /&gt;
| WPG            || WordPerfect Graphics|| Vector || ✔           ||             || wpg-input.cpp&lt;br /&gt;
|-&lt;br /&gt;
| XAML           || MS XAML             || Vector || ✔           || ✔           || other/extension-xaml/inkxaml/&lt;br /&gt;
|-&lt;br /&gt;
| XCF            || Gimp XCF w/ Layers  || Vector ||             || ✔           || gimp_xcf.py&lt;br /&gt;
|-&lt;br /&gt;
| ZIP            || JessyInk PNG/PDF    || Other  ||             || ✔           || jessyink_export.py&lt;br /&gt;
|-&lt;br /&gt;
| ZIP            || SVG Compressed w/ Media || Other  ||         || ✔           || media_zip.py&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;sup&amp;gt;*&amp;lt;/sup&amp;gt;Python files are mostly in share/extensions, C++ files are mostly in src/extensions/internal.&lt;br /&gt;
&lt;br /&gt;
Input formats supported by GTK (via '''libpixbuf'''): ani, avif, bmp, gif, icns, ico, jpeg, jxl, png, pnm, qtif, svg, tga, tiff, wmf, xbm (SEI/gdkpixbut-input.cpp). (SVG and WMF are imported by our own vector code.)&lt;br /&gt;
&lt;br /&gt;
There are also several export methods available under the '''Extensions''' menu.&lt;/div&gt;</summary>
		<author><name>Tavmjong</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Files:_Save&amp;diff=123067</id>
		<title>Files: Save</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Files:_Save&amp;diff=123067"/>
		<updated>2024-10-24T13:34:21Z</updated>

		<summary type="html">&lt;p&gt;Tavmjong: /* Save */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''Italic text''&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
With native file dialogs, we cannot add features such as check boxes for options (&amp;quot;Choices&amp;quot;). We also cannot obtain information about which file filter is selected. We can only use the file extension to determin file type. This breaks are current method for using file dialogs to influence how files are saved. In particular:&lt;br /&gt;
* We cannot have a checkbox to &amp;quot;Save as 1.1 SVG&amp;quot;.&lt;br /&gt;
* We cannot use the file filter setting to distinguish between saving as:&lt;br /&gt;
    * &amp;quot;Inkscape SVG&amp;quot;, &amp;quot;Plain SVG&amp;quot; or &amp;quot;Optimized SVG&amp;quot; (''.svg'').&lt;br /&gt;
    * &amp;quot;Compressed Inkscape SVG&amp;quot; and &amp;quot;Compressed Plain SVG&amp;quot; (''.svgz'').&lt;br /&gt;
    * &amp;quot;DXF 12&amp;quot; or &amp;quot;DXF 14&amp;quot; (''.dxf'').&lt;br /&gt;
    * &amp;quot;Compressed Inkscape with media&amp;quot; or &amp;quot;JessyInk&amp;quot; (''.zip'').&lt;br /&gt;
Native file dialogs are simply useful for choosing file names, nothing more, nothing less.&lt;br /&gt;
&lt;br /&gt;
It's important to recognize that the Gtk::FileDialog class is NOT derived from a widget thus we cannot not change the insides. This is a necessity born from using native dialogs.&lt;br /&gt;
&lt;br /&gt;
Our current (Inkscape 1.4) situation spreads options for how SVG's are saved across several places. Choosing Inkscape or Plain SVG's is done in the File menu, selecting to save to SVG 2 or SVG 1.1 is done in the File dialog, selecting which SVG 2 features are converted to SVG 1.1 fallbacks is done in the Preferences dialog. It would be better to have all of this in one place.&lt;br /&gt;
&lt;br /&gt;
The Export dialog has received a lot of love over the past few years. However, it currently can handle only a subset of the file types that Inkscape can export to.&lt;br /&gt;
&lt;br /&gt;
See also [[Files: Output|2018 proposal]].&lt;br /&gt;
&lt;br /&gt;
== Current Behavior ==&lt;br /&gt;
&lt;br /&gt;
=== Save ===&lt;br /&gt;
&lt;br /&gt;
New document:&lt;br /&gt;
* Opens file dialog (drawing.svg, set to Inkscape SVG).&lt;br /&gt;
If opened as:&lt;br /&gt;
* SVG: Saves as Inkscape SVG. (If write-protected, opens file dialog.)&lt;br /&gt;
* PDF: Saves as PDF after popping open dialog. On quitting, warns about data loss.&lt;br /&gt;
* EMF: Saves as EMF after popping open dialog. On quitting, warns about data loss.&lt;br /&gt;
* DXF: Saves as DXF 12 (even if opened as DXF 14). without popping open dialog. On quitting, warns about data loss.&lt;br /&gt;
* PNG: Opens PNG settings then fails silently&lt;br /&gt;
* JPG: Opens JPG settings then fails, opening Save dialog.&lt;br /&gt;
&lt;br /&gt;
=== Save as ===&lt;br /&gt;
&lt;br /&gt;
Opens file dialog. Preset to last saved file type (can be bitmap!).&lt;br /&gt;
Can save to any vector format in file filter list.&lt;br /&gt;
* &amp;quot;Guess from extension&amp;quot; will fail if trying to save bitmap (may or may not be silently). (Will open PNG settings.)&lt;br /&gt;
* &amp;quot;Append filename extension automatically&amp;quot; fails.(Bug)&lt;br /&gt;
&lt;br /&gt;
=== Save a copy ===&lt;br /&gt;
&lt;br /&gt;
Same as &amp;quot;Save as&amp;quot; but doesn't update internal file data (e.g. file name).&lt;br /&gt;
&lt;br /&gt;
== Proposal ==&lt;br /&gt;
&lt;br /&gt;
With GTK4 Inkscape, all &amp;quot;Export&amp;quot; is done through the Export dialog, where &amp;quot;Export&amp;quot; is defined as saving a document to any form other than Inkscape SVG.&lt;br /&gt;
&lt;br /&gt;
''The File menu will contain these options:''&lt;br /&gt;
&lt;br /&gt;
=== Save ===&lt;br /&gt;
&lt;br /&gt;
Save a document to Inkscape SVG.&lt;br /&gt;
* If a document does not contain a stored filename, open up File dialog to choose a filename.&lt;br /&gt;
* Update internal Inkscape version and filename. Clear modified flag.&lt;br /&gt;
* Save.&lt;br /&gt;
* If save fails, revert internal Inkcape version and filename. Restore modified flag.&lt;br /&gt;
&lt;br /&gt;
=== Save as... ===&lt;br /&gt;
&lt;br /&gt;
Save a document as Inkscape SVG with a new different filename.&lt;br /&gt;
* Open up File dialog to choose a filename.&lt;br /&gt;
* Update internal Inkscape version and filename. Clear modified flag.&lt;br /&gt;
* Save.&lt;br /&gt;
* If save fails, revert internal Inkcape version and filename. Restore modified flag.&lt;br /&gt;
&lt;br /&gt;
=== Save a copy... ===&lt;br /&gt;
Save a document as Inkscape SVG with a new different filename, not updating internals.&lt;br /&gt;
&lt;br /&gt;
* Open up File dialog to choose a filename.&lt;br /&gt;
* Update internal Inkscape version and filename.&lt;br /&gt;
* Save.&lt;br /&gt;
* Revert internal Inkcape version and filename. Restore modified flag.&lt;br /&gt;
&lt;br /&gt;
=== Save Template... ===&lt;br /&gt;
Save a document as an Inkscape template.&lt;br /&gt;
&lt;br /&gt;
=== Export ===&lt;br /&gt;
[[File:Save File Types 1.4.x.png|thumb|File types from the 1.4.x Save dialog.]]&lt;br /&gt;
&lt;br /&gt;
Export document to a non Inkscape SVG format.&lt;br /&gt;
&lt;br /&gt;
* Open up Export dialog to choose export file type and options..&lt;br /&gt;
&lt;br /&gt;
Options shown are based on selected file type.&lt;br /&gt;
&lt;br /&gt;
The 1.4.x Export dialog currently handles: PNG, Inkscape SVG (no SVG specific options), Plain SVG, JPEG (with a big warning), TIFF, and WebP. The types the 1.4.x Save dialog handles are shown in the figure.&lt;br /&gt;
&lt;br /&gt;
I'm wondering about which file types we should still support. For example, AutoCAD R12 is from 1992 and R14 is from 1997. Flash is long deprecated, with any kind of support ending in 2020.&lt;br /&gt;
&lt;br /&gt;
Note: Bitmap formats are only available from the Export dialog.&lt;br /&gt;
&lt;br /&gt;
=== Export Overwrite ===&lt;br /&gt;
''New (needs some thought)'' Export document, overwriting.&lt;br /&gt;
&lt;br /&gt;
* Export to same format as import or to the previously used export filetype.&lt;br /&gt;
* No File dialog used.&lt;br /&gt;
&lt;br /&gt;
== Unification ==&lt;br /&gt;
&lt;br /&gt;
We have export from the command line and we have export from the Export dialog. These should be unified. It should be possible to set any values from the command line that you can set within the Export dialog. This can be done either of two ways:&lt;br /&gt;
&lt;br /&gt;
# Adapt the file export class used to track export options to handle more options.&lt;br /&gt;
# Rely completely on setting preferences as is done by the Export dialog.&lt;br /&gt;
&lt;br /&gt;
The first means that options are temporary, the second means options are stored in the Preferences file. The second method is probably easier.&lt;br /&gt;
&lt;br /&gt;
== Notes on File dialogs ==&lt;br /&gt;
&lt;br /&gt;
We don't need to check on overwriting files ourselves. The file dialogs on all there platforms already have overwrite protection (verify for Windows).&lt;br /&gt;
&lt;br /&gt;
=== Linux ===&lt;br /&gt;
&lt;br /&gt;
=== MacOS ===&lt;br /&gt;
&lt;br /&gt;
The MacOS dialog will add a file extension if it doesn't already exist based on the File type filter setting (if the filter setting is set to a single file type).&lt;br /&gt;
&lt;br /&gt;
=== Windows ===&lt;br /&gt;
&lt;br /&gt;
== Questions ==&lt;br /&gt;
&lt;br /&gt;
=== Directories ===&lt;br /&gt;
We keep track of the last directories for various file dialogues in preferences. A couple dialogs will fallback to the Windows' Document directory if a preference is not set. Is this desired behavior? Should it be that way on all platforms? Should it be that way for all file dialogs? If the Document directory does not exist, should we fallback to the Home directory? Glib makes it easy to find these directories (we don't need the complicated Windows code that is in ''get_start_directory()'' at the moment).&lt;br /&gt;
&lt;br /&gt;
== Supported Formats ==&lt;br /&gt;
From src/extension/internal:&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|+ File formats supported by Inkscape&lt;br /&gt;
|-&lt;br /&gt;
! File Extension !! Format/Software     !! Type   !! Input       !! Output      !! Module&amp;lt;sup&amp;gt;*&amp;lt;/sup&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| AI             || Adobe Illustrator   || Vector || ✔           ||             || pdf-input.cpp&lt;br /&gt;
|-&lt;br /&gt;
| CDR, CDT, CCX, CMX || CorelDraw       || Vector || ✔           ||             || cdr-input.cpp, libcdr&lt;br /&gt;
|-&lt;br /&gt;
| DHW            || ACECAD DigiMemo     || Vector || ✔           ||             || dhw_input.py&lt;br /&gt;
|-&lt;br /&gt;
| DXF            || AutoCAD             || Vector || ✔ (13, 14?) || ✔ (12, 14)  || dxf_input.py, dxf12_outlines.py, dxf_outlines.py&lt;br /&gt;
|-&lt;br /&gt;
| EMF            || MS Enhanced Metafile|| Vector || ✔           || ✔           || emf-inout.cpp, emf-print.cpp&lt;br /&gt;
|-&lt;br /&gt;
| EPS            || Encapsulated PS     || Vector || ✔           || ✔           || eps_input.py&lt;br /&gt;
|-&lt;br /&gt;
| FIG            || XFig                || Vector || ✔           ||             || fig_input.py&lt;br /&gt;
|-&lt;br /&gt;
| FXG            || Flash               || Vector ||             || ✔           || svg2fxg.py&lt;br /&gt;
|-&lt;br /&gt;
| GGR            || Gimp Gradient       || Other  || ✔           ||             || gimpgrad.cpp&lt;br /&gt;
|-&lt;br /&gt;
| GPL            || Gimp Palette        || Other  || ✔           || ✔           || Swatch dialog&lt;br /&gt;
|-&lt;br /&gt;
| HPGL           || HP Graphics Language|| Vector || ✔           || ✔           || hpgl_input_sm.py, hpgl2_input.py, hpgl_output.py, (plotter.py)&lt;br /&gt;
|-&lt;br /&gt;
| HTML5          || HTML Canvas         || Other  ||             || ✔           || ink2canvas.py&lt;br /&gt;
|-&lt;br /&gt;
| JPEG           || JPEG                || Raster || ✔           || ✔           || libpixbuf, raster_output_jpg.py&lt;br /&gt;
|-&lt;br /&gt;
| SIF            || Synfig Annimation   || Vector ||             || ✔           || sinfig_output.py, sinfig_prepare.py&lt;br /&gt;
|-&lt;br /&gt;
| TAR            || SVG (Separate layers)|| Vector||             || ✔           || tar_layers.py&lt;br /&gt;
|-&lt;br /&gt;
| TEX            || Latex-PSTricks      || Vector ||             || ✔           || pdflatex.py?, latex-pstricks.cpp&lt;br /&gt;
|-&lt;br /&gt;
| TEX            || Latex               || Vector ||             || ✔?          || latex-text-renderer.cpp&lt;br /&gt;
|-&lt;br /&gt;
| ODG            || OpenDocument Drawing|| Vector ||             || ✔           || odf.cpp&lt;br /&gt;
|-&lt;br /&gt;
| PDF            || Portable Document Format || Vector || ✔ Internal, Cairo     || ✔ Cairo, Scribus  || scribus_export_pdf.py, cairo-renderer-pdf-out.cpp, pdfinput/&lt;br /&gt;
|-&lt;br /&gt;
| PNG            || PNG                 || Raster || ✔           || ✔           || libpixbuf, raster_output_png.py&lt;br /&gt;
|-&lt;br /&gt;
| POV            || POV-Ray             || Vector ||             || ✔           || pov-out.cpp&lt;br /&gt;
|-&lt;br /&gt;
| PS             || PostScript          || Vector || ✔           || ✔ Cairo     || ps_input.py, cairo-ps-out.cpp&lt;br /&gt;
|-&lt;br /&gt;
| SVG            || SVG                 || Vector || ✔ (Inkscape, Adobe) || ✔ (Inkscape, Plain, Optimized) || output_scour.py; svg.cpp, xml/repr-io.cpp, aisvg.inx, doc_ai_convert.py&lt;br /&gt;
|-&lt;br /&gt;
| SVGZ           || SVG Compressed      || Vector || ✔           || ✔ (Inkscape, Plain) || svgz.cpp&lt;br /&gt;
|-&lt;br /&gt;
| TIFF           || Tagged Image Format || Raster || ✔           || ✔           || libpixbuf, raster_output_tiff.py&lt;br /&gt;
|-&lt;br /&gt;
| VSDM, VSDX, VSD, VDX || MS Visio      || Vector || ✔           ||             || vsd-input.cpp&lt;br /&gt;
|-&lt;br /&gt;
| WEBP           || WEBP (Google)       || Raster || ✔           || ✔           || libpixbuf, raster_output_webp.py&lt;br /&gt;
|-&lt;br /&gt;
| WMF            || MS Windows Metafile || Vector || ✔           || ✔           || wmf-inout.cpp, wmf-print.cpp&lt;br /&gt;
|-&lt;br /&gt;
| WPG            || WordPerfect Graphics|| Vector || ✔           ||             || wpg-input.cpp&lt;br /&gt;
|-&lt;br /&gt;
| XAML           || MS XAML             || Vector || ✔           || ✔           || other/extension-xaml/inkxaml/&lt;br /&gt;
|-&lt;br /&gt;
| XCF            || Gimp XCF w/ Layers  || Vector ||             || ✔           || gimp_xcf.py&lt;br /&gt;
|-&lt;br /&gt;
| ZIP            || JessyInk PNG/PDF    || Other  ||             || ✔           || jessyink_export.py&lt;br /&gt;
|-&lt;br /&gt;
| ZIP            || SVG Compressed w/ Media || Other  ||         || ✔           || media_zip.py&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;sup&amp;gt;*&amp;lt;/sup&amp;gt;Python files are mostly in share/extensions, C++ files are mostly in src/extensions/internal.&lt;br /&gt;
&lt;br /&gt;
Input formats supported by GTK (via '''libpixbuf'''): ani, avif, bmp, gif, icns, ico, jpeg, jxl, png, pnm, qtif, svg, tga, tiff, wmf, xbm (SEI/gdkpixbut-input.cpp). (SVG and WMF are imported by our own vector code.)&lt;br /&gt;
&lt;br /&gt;
There are also several export methods available under the '''Extensions''' menu.&lt;/div&gt;</summary>
		<author><name>Tavmjong</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Files:_Save&amp;diff=123066</id>
		<title>Files: Save</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Files:_Save&amp;diff=123066"/>
		<updated>2024-10-24T13:33:35Z</updated>

		<summary type="html">&lt;p&gt;Tavmjong: /* Questions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''Italic text''&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
With native file dialogs, we cannot add features such as check boxes for options (&amp;quot;Choices&amp;quot;). We also cannot obtain information about which file filter is selected. We can only use the file extension to determin file type. This breaks are current method for using file dialogs to influence how files are saved. In particular:&lt;br /&gt;
* We cannot have a checkbox to &amp;quot;Save as 1.1 SVG&amp;quot;.&lt;br /&gt;
* We cannot use the file filter setting to distinguish between saving as:&lt;br /&gt;
    * &amp;quot;Inkscape SVG&amp;quot;, &amp;quot;Plain SVG&amp;quot; or &amp;quot;Optimized SVG&amp;quot; (''.svg'').&lt;br /&gt;
    * &amp;quot;Compressed Inkscape SVG&amp;quot; and &amp;quot;Compressed Plain SVG&amp;quot; (''.svgz'').&lt;br /&gt;
    * &amp;quot;DXF 12&amp;quot; or &amp;quot;DXF 14&amp;quot; (''.dxf'').&lt;br /&gt;
    * &amp;quot;Compressed Inkscape with media&amp;quot; or &amp;quot;JessyInk&amp;quot; (''.zip'').&lt;br /&gt;
Native file dialogs are simply useful for choosing file names, nothing more, nothing less.&lt;br /&gt;
&lt;br /&gt;
It's important to recognize that the Gtk::FileDialog class is NOT derived from a widget thus we cannot not change the insides. This is a necessity born from using native dialogs.&lt;br /&gt;
&lt;br /&gt;
Our current (Inkscape 1.4) situation spreads options for how SVG's are saved across several places. Choosing Inkscape or Plain SVG's is done in the File menu, selecting to save to SVG 2 or SVG 1.1 is done in the File dialog, selecting which SVG 2 features are converted to SVG 1.1 fallbacks is done in the Preferences dialog. It would be better to have all of this in one place.&lt;br /&gt;
&lt;br /&gt;
The Export dialog has received a lot of love over the past few years. However, it currently can handle only a subset of the file types that Inkscape can export to.&lt;br /&gt;
&lt;br /&gt;
See also [[Files: Output|2018 proposal]].&lt;br /&gt;
&lt;br /&gt;
== Current Behavior ==&lt;br /&gt;
&lt;br /&gt;
=== Save ===&lt;br /&gt;
&lt;br /&gt;
New document:&lt;br /&gt;
* Opens file dialog (drawing.svg, set to Inkscape SVG).&lt;br /&gt;
Opened as:&lt;br /&gt;
* SVG: Saves as Inkscape SVG. (If write-protected, opens file dialog.)&lt;br /&gt;
* PDF: Saves as PDF after popping open dialog. On quitting, warns about data loss.&lt;br /&gt;
* EMF: Saves as EMF after popping open dialog. On quitting, warns about data loss.&lt;br /&gt;
* DXF: Saves as DXF 12 (even if opened as DXF 14). without popping open dialog. On quitting, warns about data loss.&lt;br /&gt;
* PNG: Opens PNG settings then fails silently&lt;br /&gt;
* JPG: Opens JPG settings then fails, opening Save dialog.&lt;br /&gt;
&lt;br /&gt;
=== Save as ===&lt;br /&gt;
&lt;br /&gt;
Opens file dialog. Preset to last saved file type (can be bitmap!).&lt;br /&gt;
Can save to any vector format in file filter list.&lt;br /&gt;
* &amp;quot;Guess from extension&amp;quot; will fail if trying to save bitmap (may or may not be silently). (Will open PNG settings.)&lt;br /&gt;
* &amp;quot;Append filename extension automatically&amp;quot; fails.(Bug)&lt;br /&gt;
&lt;br /&gt;
=== Save a copy ===&lt;br /&gt;
&lt;br /&gt;
Same as &amp;quot;Save as&amp;quot; but doesn't update internal file data (e.g. file name).&lt;br /&gt;
&lt;br /&gt;
== Proposal ==&lt;br /&gt;
&lt;br /&gt;
With GTK4 Inkscape, all &amp;quot;Export&amp;quot; is done through the Export dialog, where &amp;quot;Export&amp;quot; is defined as saving a document to any form other than Inkscape SVG.&lt;br /&gt;
&lt;br /&gt;
''The File menu will contain these options:''&lt;br /&gt;
&lt;br /&gt;
=== Save ===&lt;br /&gt;
&lt;br /&gt;
Save a document to Inkscape SVG.&lt;br /&gt;
* If a document does not contain a stored filename, open up File dialog to choose a filename.&lt;br /&gt;
* Update internal Inkscape version and filename. Clear modified flag.&lt;br /&gt;
* Save.&lt;br /&gt;
* If save fails, revert internal Inkcape version and filename. Restore modified flag.&lt;br /&gt;
&lt;br /&gt;
=== Save as... ===&lt;br /&gt;
&lt;br /&gt;
Save a document as Inkscape SVG with a new different filename.&lt;br /&gt;
* Open up File dialog to choose a filename.&lt;br /&gt;
* Update internal Inkscape version and filename. Clear modified flag.&lt;br /&gt;
* Save.&lt;br /&gt;
* If save fails, revert internal Inkcape version and filename. Restore modified flag.&lt;br /&gt;
&lt;br /&gt;
=== Save a copy... ===&lt;br /&gt;
Save a document as Inkscape SVG with a new different filename, not updating internals.&lt;br /&gt;
&lt;br /&gt;
* Open up File dialog to choose a filename.&lt;br /&gt;
* Update internal Inkscape version and filename.&lt;br /&gt;
* Save.&lt;br /&gt;
* Revert internal Inkcape version and filename. Restore modified flag.&lt;br /&gt;
&lt;br /&gt;
=== Save Template... ===&lt;br /&gt;
Save a document as an Inkscape template.&lt;br /&gt;
&lt;br /&gt;
=== Export ===&lt;br /&gt;
[[File:Save File Types 1.4.x.png|thumb|File types from the 1.4.x Save dialog.]]&lt;br /&gt;
&lt;br /&gt;
Export document to a non Inkscape SVG format.&lt;br /&gt;
&lt;br /&gt;
* Open up Export dialog to choose export file type and options..&lt;br /&gt;
&lt;br /&gt;
Options shown are based on selected file type.&lt;br /&gt;
&lt;br /&gt;
The 1.4.x Export dialog currently handles: PNG, Inkscape SVG (no SVG specific options), Plain SVG, JPEG (with a big warning), TIFF, and WebP. The types the 1.4.x Save dialog handles are shown in the figure.&lt;br /&gt;
&lt;br /&gt;
I'm wondering about which file types we should still support. For example, AutoCAD R12 is from 1992 and R14 is from 1997. Flash is long deprecated, with any kind of support ending in 2020.&lt;br /&gt;
&lt;br /&gt;
Note: Bitmap formats are only available from the Export dialog.&lt;br /&gt;
&lt;br /&gt;
=== Export Overwrite ===&lt;br /&gt;
''New (needs some thought)'' Export document, overwriting.&lt;br /&gt;
&lt;br /&gt;
* Export to same format as import or to the previously used export filetype.&lt;br /&gt;
* No File dialog used.&lt;br /&gt;
&lt;br /&gt;
== Unification ==&lt;br /&gt;
&lt;br /&gt;
We have export from the command line and we have export from the Export dialog. These should be unified. It should be possible to set any values from the command line that you can set within the Export dialog. This can be done either of two ways:&lt;br /&gt;
&lt;br /&gt;
# Adapt the file export class used to track export options to handle more options.&lt;br /&gt;
# Rely completely on setting preferences as is done by the Export dialog.&lt;br /&gt;
&lt;br /&gt;
The first means that options are temporary, the second means options are stored in the Preferences file. The second method is probably easier.&lt;br /&gt;
&lt;br /&gt;
== Notes on File dialogs ==&lt;br /&gt;
&lt;br /&gt;
We don't need to check on overwriting files ourselves. The file dialogs on all there platforms already have overwrite protection (verify for Windows).&lt;br /&gt;
&lt;br /&gt;
=== Linux ===&lt;br /&gt;
&lt;br /&gt;
=== MacOS ===&lt;br /&gt;
&lt;br /&gt;
The MacOS dialog will add a file extension if it doesn't already exist based on the File type filter setting (if the filter setting is set to a single file type).&lt;br /&gt;
&lt;br /&gt;
=== Windows ===&lt;br /&gt;
&lt;br /&gt;
== Questions ==&lt;br /&gt;
&lt;br /&gt;
=== Directories ===&lt;br /&gt;
We keep track of the last directories for various file dialogues in preferences. A couple dialogs will fallback to the Windows' Document directory if a preference is not set. Is this desired behavior? Should it be that way on all platforms? Should it be that way for all file dialogs? If the Document directory does not exist, should we fallback to the Home directory? Glib makes it easy to find these directories (we don't need the complicated Windows code that is in ''get_start_directory()'' at the moment).&lt;br /&gt;
&lt;br /&gt;
== Supported Formats ==&lt;br /&gt;
From src/extension/internal:&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|+ File formats supported by Inkscape&lt;br /&gt;
|-&lt;br /&gt;
! File Extension !! Format/Software     !! Type   !! Input       !! Output      !! Module&amp;lt;sup&amp;gt;*&amp;lt;/sup&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| AI             || Adobe Illustrator   || Vector || ✔           ||             || pdf-input.cpp&lt;br /&gt;
|-&lt;br /&gt;
| CDR, CDT, CCX, CMX || CorelDraw       || Vector || ✔           ||             || cdr-input.cpp, libcdr&lt;br /&gt;
|-&lt;br /&gt;
| DHW            || ACECAD DigiMemo     || Vector || ✔           ||             || dhw_input.py&lt;br /&gt;
|-&lt;br /&gt;
| DXF            || AutoCAD             || Vector || ✔ (13, 14?) || ✔ (12, 14)  || dxf_input.py, dxf12_outlines.py, dxf_outlines.py&lt;br /&gt;
|-&lt;br /&gt;
| EMF            || MS Enhanced Metafile|| Vector || ✔           || ✔           || emf-inout.cpp, emf-print.cpp&lt;br /&gt;
|-&lt;br /&gt;
| EPS            || Encapsulated PS     || Vector || ✔           || ✔           || eps_input.py&lt;br /&gt;
|-&lt;br /&gt;
| FIG            || XFig                || Vector || ✔           ||             || fig_input.py&lt;br /&gt;
|-&lt;br /&gt;
| FXG            || Flash               || Vector ||             || ✔           || svg2fxg.py&lt;br /&gt;
|-&lt;br /&gt;
| GGR            || Gimp Gradient       || Other  || ✔           ||             || gimpgrad.cpp&lt;br /&gt;
|-&lt;br /&gt;
| GPL            || Gimp Palette        || Other  || ✔           || ✔           || Swatch dialog&lt;br /&gt;
|-&lt;br /&gt;
| HPGL           || HP Graphics Language|| Vector || ✔           || ✔           || hpgl_input_sm.py, hpgl2_input.py, hpgl_output.py, (plotter.py)&lt;br /&gt;
|-&lt;br /&gt;
| HTML5          || HTML Canvas         || Other  ||             || ✔           || ink2canvas.py&lt;br /&gt;
|-&lt;br /&gt;
| JPEG           || JPEG                || Raster || ✔           || ✔           || libpixbuf, raster_output_jpg.py&lt;br /&gt;
|-&lt;br /&gt;
| SIF            || Synfig Annimation   || Vector ||             || ✔           || sinfig_output.py, sinfig_prepare.py&lt;br /&gt;
|-&lt;br /&gt;
| TAR            || SVG (Separate layers)|| Vector||             || ✔           || tar_layers.py&lt;br /&gt;
|-&lt;br /&gt;
| TEX            || Latex-PSTricks      || Vector ||             || ✔           || pdflatex.py?, latex-pstricks.cpp&lt;br /&gt;
|-&lt;br /&gt;
| TEX            || Latex               || Vector ||             || ✔?          || latex-text-renderer.cpp&lt;br /&gt;
|-&lt;br /&gt;
| ODG            || OpenDocument Drawing|| Vector ||             || ✔           || odf.cpp&lt;br /&gt;
|-&lt;br /&gt;
| PDF            || Portable Document Format || Vector || ✔ Internal, Cairo     || ✔ Cairo, Scribus  || scribus_export_pdf.py, cairo-renderer-pdf-out.cpp, pdfinput/&lt;br /&gt;
|-&lt;br /&gt;
| PNG            || PNG                 || Raster || ✔           || ✔           || libpixbuf, raster_output_png.py&lt;br /&gt;
|-&lt;br /&gt;
| POV            || POV-Ray             || Vector ||             || ✔           || pov-out.cpp&lt;br /&gt;
|-&lt;br /&gt;
| PS             || PostScript          || Vector || ✔           || ✔ Cairo     || ps_input.py, cairo-ps-out.cpp&lt;br /&gt;
|-&lt;br /&gt;
| SVG            || SVG                 || Vector || ✔ (Inkscape, Adobe) || ✔ (Inkscape, Plain, Optimized) || output_scour.py; svg.cpp, xml/repr-io.cpp, aisvg.inx, doc_ai_convert.py&lt;br /&gt;
|-&lt;br /&gt;
| SVGZ           || SVG Compressed      || Vector || ✔           || ✔ (Inkscape, Plain) || svgz.cpp&lt;br /&gt;
|-&lt;br /&gt;
| TIFF           || Tagged Image Format || Raster || ✔           || ✔           || libpixbuf, raster_output_tiff.py&lt;br /&gt;
|-&lt;br /&gt;
| VSDM, VSDX, VSD, VDX || MS Visio      || Vector || ✔           ||             || vsd-input.cpp&lt;br /&gt;
|-&lt;br /&gt;
| WEBP           || WEBP (Google)       || Raster || ✔           || ✔           || libpixbuf, raster_output_webp.py&lt;br /&gt;
|-&lt;br /&gt;
| WMF            || MS Windows Metafile || Vector || ✔           || ✔           || wmf-inout.cpp, wmf-print.cpp&lt;br /&gt;
|-&lt;br /&gt;
| WPG            || WordPerfect Graphics|| Vector || ✔           ||             || wpg-input.cpp&lt;br /&gt;
|-&lt;br /&gt;
| XAML           || MS XAML             || Vector || ✔           || ✔           || other/extension-xaml/inkxaml/&lt;br /&gt;
|-&lt;br /&gt;
| XCF            || Gimp XCF w/ Layers  || Vector ||             || ✔           || gimp_xcf.py&lt;br /&gt;
|-&lt;br /&gt;
| ZIP            || JessyInk PNG/PDF    || Other  ||             || ✔           || jessyink_export.py&lt;br /&gt;
|-&lt;br /&gt;
| ZIP            || SVG Compressed w/ Media || Other  ||         || ✔           || media_zip.py&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;sup&amp;gt;*&amp;lt;/sup&amp;gt;Python files are mostly in share/extensions, C++ files are mostly in src/extensions/internal.&lt;br /&gt;
&lt;br /&gt;
Input formats supported by GTK (via '''libpixbuf'''): ani, avif, bmp, gif, icns, ico, jpeg, jxl, png, pnm, qtif, svg, tga, tiff, wmf, xbm (SEI/gdkpixbut-input.cpp). (SVG and WMF are imported by our own vector code.)&lt;br /&gt;
&lt;br /&gt;
There are also several export methods available under the '''Extensions''' menu.&lt;/div&gt;</summary>
		<author><name>Tavmjong</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Files:_Save&amp;diff=123065</id>
		<title>Files: Save</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Files:_Save&amp;diff=123065"/>
		<updated>2024-10-24T13:30:36Z</updated>

		<summary type="html">&lt;p&gt;Tavmjong: /* Directories */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''Italic text''&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
With native file dialogs, we cannot add features such as check boxes for options (&amp;quot;Choices&amp;quot;). We also cannot obtain information about which file filter is selected. We can only use the file extension to determin file type. This breaks are current method for using file dialogs to influence how files are saved. In particular:&lt;br /&gt;
* We cannot have a checkbox to &amp;quot;Save as 1.1 SVG&amp;quot;.&lt;br /&gt;
* We cannot use the file filter setting to distinguish between saving as:&lt;br /&gt;
    * &amp;quot;Inkscape SVG&amp;quot;, &amp;quot;Plain SVG&amp;quot; or &amp;quot;Optimized SVG&amp;quot; (''.svg'').&lt;br /&gt;
    * &amp;quot;Compressed Inkscape SVG&amp;quot; and &amp;quot;Compressed Plain SVG&amp;quot; (''.svgz'').&lt;br /&gt;
    * &amp;quot;DXF 12&amp;quot; or &amp;quot;DXF 14&amp;quot; (''.dxf'').&lt;br /&gt;
    * &amp;quot;Compressed Inkscape with media&amp;quot; or &amp;quot;JessyInk&amp;quot; (''.zip'').&lt;br /&gt;
Native file dialogs are simply useful for choosing file names, nothing more, nothing less.&lt;br /&gt;
&lt;br /&gt;
It's important to recognize that the Gtk::FileDialog class is NOT derived from a widget thus we cannot not change the insides. This is a necessity born from using native dialogs.&lt;br /&gt;
&lt;br /&gt;
Our current (Inkscape 1.4) situation spreads options for how SVG's are saved across several places. Choosing Inkscape or Plain SVG's is done in the File menu, selecting to save to SVG 2 or SVG 1.1 is done in the File dialog, selecting which SVG 2 features are converted to SVG 1.1 fallbacks is done in the Preferences dialog. It would be better to have all of this in one place.&lt;br /&gt;
&lt;br /&gt;
The Export dialog has received a lot of love over the past few years. However, it currently can handle only a subset of the file types that Inkscape can export to.&lt;br /&gt;
&lt;br /&gt;
See also [[Files: Output|2018 proposal]].&lt;br /&gt;
&lt;br /&gt;
== Current Behavior ==&lt;br /&gt;
&lt;br /&gt;
=== Save ===&lt;br /&gt;
&lt;br /&gt;
New document:&lt;br /&gt;
* Opens file dialog (drawing.svg, set to Inkscape SVG).&lt;br /&gt;
Opened as:&lt;br /&gt;
* SVG: Saves as Inkscape SVG. (If write-protected, opens file dialog.)&lt;br /&gt;
* PDF: Saves as PDF after popping open dialog. On quitting, warns about data loss.&lt;br /&gt;
* EMF: Saves as EMF after popping open dialog. On quitting, warns about data loss.&lt;br /&gt;
* DXF: Saves as DXF 12 (even if opened as DXF 14). without popping open dialog. On quitting, warns about data loss.&lt;br /&gt;
* PNG: Opens PNG settings then fails silently&lt;br /&gt;
* JPG: Opens JPG settings then fails, opening Save dialog.&lt;br /&gt;
&lt;br /&gt;
=== Save as ===&lt;br /&gt;
&lt;br /&gt;
Opens file dialog. Preset to last saved file type (can be bitmap!).&lt;br /&gt;
Can save to any vector format in file filter list.&lt;br /&gt;
* &amp;quot;Guess from extension&amp;quot; will fail if trying to save bitmap (may or may not be silently). (Will open PNG settings.)&lt;br /&gt;
* &amp;quot;Append filename extension automatically&amp;quot; fails.(Bug)&lt;br /&gt;
&lt;br /&gt;
=== Save a copy ===&lt;br /&gt;
&lt;br /&gt;
Same as &amp;quot;Save as&amp;quot; but doesn't update internal file data (e.g. file name).&lt;br /&gt;
&lt;br /&gt;
== Proposal ==&lt;br /&gt;
&lt;br /&gt;
With GTK4 Inkscape, all &amp;quot;Export&amp;quot; is done through the Export dialog, where &amp;quot;Export&amp;quot; is defined as saving a document to any form other than Inkscape SVG.&lt;br /&gt;
&lt;br /&gt;
''The File menu will contain these options:''&lt;br /&gt;
&lt;br /&gt;
=== Save ===&lt;br /&gt;
&lt;br /&gt;
Save a document to Inkscape SVG.&lt;br /&gt;
* If a document does not contain a stored filename, open up File dialog to choose a filename.&lt;br /&gt;
* Update internal Inkscape version and filename. Clear modified flag.&lt;br /&gt;
* Save.&lt;br /&gt;
* If save fails, revert internal Inkcape version and filename. Restore modified flag.&lt;br /&gt;
&lt;br /&gt;
=== Save as... ===&lt;br /&gt;
&lt;br /&gt;
Save a document as Inkscape SVG with a new different filename.&lt;br /&gt;
* Open up File dialog to choose a filename.&lt;br /&gt;
* Update internal Inkscape version and filename. Clear modified flag.&lt;br /&gt;
* Save.&lt;br /&gt;
* If save fails, revert internal Inkcape version and filename. Restore modified flag.&lt;br /&gt;
&lt;br /&gt;
=== Save a copy... ===&lt;br /&gt;
Save a document as Inkscape SVG with a new different filename, not updating internals.&lt;br /&gt;
&lt;br /&gt;
* Open up File dialog to choose a filename.&lt;br /&gt;
* Update internal Inkscape version and filename.&lt;br /&gt;
* Save.&lt;br /&gt;
* Revert internal Inkcape version and filename. Restore modified flag.&lt;br /&gt;
&lt;br /&gt;
=== Save Template... ===&lt;br /&gt;
Save a document as an Inkscape template.&lt;br /&gt;
&lt;br /&gt;
=== Export ===&lt;br /&gt;
[[File:Save File Types 1.4.x.png|thumb|File types from the 1.4.x Save dialog.]]&lt;br /&gt;
&lt;br /&gt;
Export document to a non Inkscape SVG format.&lt;br /&gt;
&lt;br /&gt;
* Open up Export dialog to choose export file type and options..&lt;br /&gt;
&lt;br /&gt;
Options shown are based on selected file type.&lt;br /&gt;
&lt;br /&gt;
The 1.4.x Export dialog currently handles: PNG, Inkscape SVG (no SVG specific options), Plain SVG, JPEG (with a big warning), TIFF, and WebP. The types the 1.4.x Save dialog handles are shown in the figure.&lt;br /&gt;
&lt;br /&gt;
I'm wondering about which file types we should still support. For example, AutoCAD R12 is from 1992 and R14 is from 1997. Flash is long deprecated, with any kind of support ending in 2020.&lt;br /&gt;
&lt;br /&gt;
Note: Bitmap formats are only available from the Export dialog.&lt;br /&gt;
&lt;br /&gt;
=== Export Overwrite ===&lt;br /&gt;
''New (needs some thought)'' Export document, overwriting.&lt;br /&gt;
&lt;br /&gt;
* Export to same format as import or to the previously used export filetype.&lt;br /&gt;
* No File dialog used.&lt;br /&gt;
&lt;br /&gt;
== Unification ==&lt;br /&gt;
&lt;br /&gt;
We have export from the command line and we have export from the Export dialog. These should be unified. It should be possible to set any values from the command line that you can set within the Export dialog. This can be done either of two ways:&lt;br /&gt;
&lt;br /&gt;
# Adapt the file export class used to track export options to handle more options.&lt;br /&gt;
# Rely completely on setting preferences as is done by the Export dialog.&lt;br /&gt;
&lt;br /&gt;
The first means that options are temporary, the second means options are stored in the Preferences file. The second method is probably easier.&lt;br /&gt;
&lt;br /&gt;
== Notes on File dialogs ==&lt;br /&gt;
&lt;br /&gt;
We don't need to check on overwriting files ourselves. The file dialogs on all there platforms already have overwrite protection (verify for Windows).&lt;br /&gt;
&lt;br /&gt;
=== Linux ===&lt;br /&gt;
&lt;br /&gt;
=== MacOS ===&lt;br /&gt;
&lt;br /&gt;
The MacOS dialog will add a file extension if it doesn't already exist based on the File type filter setting (if the filter setting is set to a single file type).&lt;br /&gt;
&lt;br /&gt;
=== Windows ===&lt;br /&gt;
&lt;br /&gt;
== Questions ==&lt;br /&gt;
&lt;br /&gt;
=== Directories ===&lt;br /&gt;
We keep track of the last directories for various file dialogues in preferences. A couple dialogs will fallback to the Windows' Document directory if a preference is not set. Is this desired behavior? Should it be that way on all platforms? Should it be that way for all file dialogs? If the Document directory does not exist, should we fallback to the Home directory? Glib makes it easy to find these directories (we don't need the complicated Windows code that is in ''get_start_directory()'' at the moment).&lt;br /&gt;
&lt;br /&gt;
=== Supported Formats ===&lt;br /&gt;
From src/extension/internal:&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|+ File formats supported by Inkscape&lt;br /&gt;
|-&lt;br /&gt;
! File Extension !! Format/Software     !! Type   !! Input       !! Output      !! Module&amp;lt;sup&amp;gt;*&amp;lt;/sup&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| AI             || Adobe Illustrator   || Vector || ✔           ||             || pdf-input.cpp&lt;br /&gt;
|-&lt;br /&gt;
| CDR, CDT, CCX, CMX || CorelDraw       || Vector || ✔           ||             || cdr-input.cpp, libcdr&lt;br /&gt;
|-&lt;br /&gt;
| DHW            || ACECAD DigiMemo     || Vector || ✔           ||             || dhw_input.py&lt;br /&gt;
|-&lt;br /&gt;
| DXF            || AutoCAD             || Vector || ✔ (13, 14?) || ✔ (12, 14)  || dxf_input.py, dxf12_outlines.py, dxf_outlines.py&lt;br /&gt;
|-&lt;br /&gt;
| EMF            || MS Enhanced Metafile|| Vector || ✔           || ✔           || emf-inout.cpp, emf-print.cpp&lt;br /&gt;
|-&lt;br /&gt;
| EPS            || Encapsulated PS     || Vector || ✔           || ✔           || eps_input.py&lt;br /&gt;
|-&lt;br /&gt;
| FIG            || XFig                || Vector || ✔           ||             || fig_input.py&lt;br /&gt;
|-&lt;br /&gt;
| FXG            || Flash               || Vector ||             || ✔           || svg2fxg.py&lt;br /&gt;
|-&lt;br /&gt;
| GGR            || Gimp Gradient       || Other  || ✔           ||             || gimpgrad.cpp&lt;br /&gt;
|-&lt;br /&gt;
| GPL            || Gimp Palette        || Other  || ✔           || ✔           || Swatch dialog&lt;br /&gt;
|-&lt;br /&gt;
| HPGL           || HP Graphics Language|| Vector || ✔           || ✔           || hpgl_input_sm.py, hpgl2_input.py, hpgl_output.py, (plotter.py)&lt;br /&gt;
|-&lt;br /&gt;
| HTML5          || HTML Canvas         || Other  ||             || ✔           || ink2canvas.py&lt;br /&gt;
|-&lt;br /&gt;
| JPEG           || JPEG                || Raster || ✔           || ✔           || libpixbuf, raster_output_jpg.py&lt;br /&gt;
|-&lt;br /&gt;
| SIF            || Synfig Annimation   || Vector ||             || ✔           || sinfig_output.py, sinfig_prepare.py&lt;br /&gt;
|-&lt;br /&gt;
| TAR            || SVG (Separate layers)|| Vector||             || ✔           || tar_layers.py&lt;br /&gt;
|-&lt;br /&gt;
| TEX            || Latex-PSTricks      || Vector ||             || ✔           || pdflatex.py?, latex-pstricks.cpp&lt;br /&gt;
|-&lt;br /&gt;
| TEX            || Latex               || Vector ||             || ✔?          || latex-text-renderer.cpp&lt;br /&gt;
|-&lt;br /&gt;
| ODG            || OpenDocument Drawing|| Vector ||             || ✔           || odf.cpp&lt;br /&gt;
|-&lt;br /&gt;
| PDF            || Portable Document Format || Vector || ✔      || ✔ Cairo, Internal, Scribus  || scribus_export_pdf.py, cairo-renderer-pdf-out.cpp, pdfinput/&lt;br /&gt;
|-&lt;br /&gt;
| PNG            || PNG                 || Raster || ✔           || ✔           || libpixbuf, raster_output_png.py&lt;br /&gt;
|-&lt;br /&gt;
| POV            || POV-Ray             || Vector ||             || ✔           || pov-out.cpp&lt;br /&gt;
|-&lt;br /&gt;
| PS             || PostScript          || Vector || ✔           || ✔ Cairo     || ps_input.py, cairo-ps-out.cpp&lt;br /&gt;
|-&lt;br /&gt;
| SVG            || SVG                 || Vector || ✔ (Inkscape, Adobe) || ✔ (Inkscape, Plain, Optimized) || output_scour.py; svg.cpp, xml/repr-io.cpp, aisvg.inx, doc_ai_convert.py&lt;br /&gt;
|-&lt;br /&gt;
| SVGZ           || SVG Compressed      || Vector || ✔           || ✔ (Inkscape, Plain) || svgz.cpp&lt;br /&gt;
|-&lt;br /&gt;
| TIFF           || Tagged Image Format || Raster || ✔           || ✔           || libpixbuf, raster_output_tiff.py&lt;br /&gt;
|-&lt;br /&gt;
| VSDM, VSDX, VSD, VDX || MS Visio      || Vector || ✔           ||             || vsd-input.cpp&lt;br /&gt;
|-&lt;br /&gt;
| WEBP           || WEBP (Google)       || Raster || ✔           || ✔           || libpixbuf, raster_output_webp.py&lt;br /&gt;
|-&lt;br /&gt;
| WMF            || MS Windows Metafile || Vector || ✔           || ✔           || wmf-inout.cpp, wmf-print.cpp&lt;br /&gt;
|-&lt;br /&gt;
| WPG            || WordPerfect Graphics|| Vector || ✔           ||             || wpg-input.cpp&lt;br /&gt;
|-&lt;br /&gt;
| XAML           || MS XAML             || Vector || ✔           || ✔           || other/extension-xaml/inkxaml/&lt;br /&gt;
|-&lt;br /&gt;
| XCF            || Gimp XCF w/ Layers  || Vector ||             || ✔           || gimp_xcf.py&lt;br /&gt;
|-&lt;br /&gt;
| ZIP            || JessyInk PNG/PDF    || Other  ||             || ✔           || jessyink_export.py&lt;br /&gt;
|-&lt;br /&gt;
| ZIP            || SVG Compressed w/ Media || Other  ||         || ✔           || media_zip.py&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;sup&amp;gt;*&amp;lt;/sup&amp;gt;Python files are mostly in share/extensions, C++ files are mostly in src/extensions/internal.&lt;br /&gt;
&lt;br /&gt;
Input formats supported by GTK (via '''libpixbuf'''): ani, avif, bmp, gif, icns, ico, jpeg, jxl, png, pnm, qtif, svg, tga, tiff, wmf, xbm (SEI/gdkpixbut-input.cpp). (SVG and WMF are imported by our own vector code.)&lt;br /&gt;
&lt;br /&gt;
There are also several export methods available under the '''Extensions''' menu.&lt;/div&gt;</summary>
		<author><name>Tavmjong</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Files:_Save&amp;diff=123064</id>
		<title>Files: Save</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Files:_Save&amp;diff=123064"/>
		<updated>2024-10-22T11:54:59Z</updated>

		<summary type="html">&lt;p&gt;Tavmjong: /* Save as */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''Italic text''&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
With native file dialogs, we cannot add features such as check boxes for options (&amp;quot;Choices&amp;quot;). We also cannot obtain information about which file filter is selected. We can only use the file extension to determin file type. This breaks are current method for using file dialogs to influence how files are saved. In particular:&lt;br /&gt;
* We cannot have a checkbox to &amp;quot;Save as 1.1 SVG&amp;quot;.&lt;br /&gt;
* We cannot use the file filter setting to distinguish between saving as:&lt;br /&gt;
    * &amp;quot;Inkscape SVG&amp;quot;, &amp;quot;Plain SVG&amp;quot; or &amp;quot;Optimized SVG&amp;quot; (''.svg'').&lt;br /&gt;
    * &amp;quot;Compressed Inkscape SVG&amp;quot; and &amp;quot;Compressed Plain SVG&amp;quot; (''.svgz'').&lt;br /&gt;
    * &amp;quot;DXF 12&amp;quot; or &amp;quot;DXF 14&amp;quot; (''.dxf'').&lt;br /&gt;
    * &amp;quot;Compressed Inkscape with media&amp;quot; or &amp;quot;JessyInk&amp;quot; (''.zip'').&lt;br /&gt;
Native file dialogs are simply useful for choosing file names, nothing more, nothing less.&lt;br /&gt;
&lt;br /&gt;
It's important to recognize that the Gtk::FileDialog class is NOT derived from a widget thus we cannot not change the insides. This is a necessity born from using native dialogs.&lt;br /&gt;
&lt;br /&gt;
Our current (Inkscape 1.4) situation spreads options for how SVG's are saved across several places. Choosing Inkscape or Plain SVG's is done in the File menu, selecting to save to SVG 2 or SVG 1.1 is done in the File dialog, selecting which SVG 2 features are converted to SVG 1.1 fallbacks is done in the Preferences dialog. It would be better to have all of this in one place.&lt;br /&gt;
&lt;br /&gt;
The Export dialog has received a lot of love over the past few years. However, it currently can handle only a subset of the file types that Inkscape can export to.&lt;br /&gt;
&lt;br /&gt;
See also [[Files: Output|2018 proposal]].&lt;br /&gt;
&lt;br /&gt;
== Current Behavior ==&lt;br /&gt;
&lt;br /&gt;
=== Save ===&lt;br /&gt;
&lt;br /&gt;
New document:&lt;br /&gt;
* Opens file dialog (drawing.svg, set to Inkscape SVG).&lt;br /&gt;
Opened as:&lt;br /&gt;
* SVG: Saves as Inkscape SVG. (If write-protected, opens file dialog.)&lt;br /&gt;
* PDF: Saves as PDF after popping open dialog. On quitting, warns about data loss.&lt;br /&gt;
* EMF: Saves as EMF after popping open dialog. On quitting, warns about data loss.&lt;br /&gt;
* DXF: Saves as DXF 12 (even if opened as DXF 14). without popping open dialog. On quitting, warns about data loss.&lt;br /&gt;
* PNG: Opens PNG settings then fails silently&lt;br /&gt;
* JPG: Opens JPG settings then fails, opening Save dialog.&lt;br /&gt;
&lt;br /&gt;
=== Save as ===&lt;br /&gt;
&lt;br /&gt;
Opens file dialog. Preset to last saved file type (can be bitmap!).&lt;br /&gt;
Can save to any vector format in file filter list.&lt;br /&gt;
* &amp;quot;Guess from extension&amp;quot; will fail if trying to save bitmap (may or may not be silently). (Will open PNG settings.)&lt;br /&gt;
* &amp;quot;Append filename extension automatically&amp;quot; fails.(Bug)&lt;br /&gt;
&lt;br /&gt;
=== Save a copy ===&lt;br /&gt;
&lt;br /&gt;
Same as &amp;quot;Save as&amp;quot; but doesn't update internal file data (e.g. file name).&lt;br /&gt;
&lt;br /&gt;
== Proposal ==&lt;br /&gt;
&lt;br /&gt;
With GTK4 Inkscape, all &amp;quot;Export&amp;quot; is done through the Export dialog, where &amp;quot;Export&amp;quot; is defined as saving a document to any form other than Inkscape SVG.&lt;br /&gt;
&lt;br /&gt;
''The File menu will contain these options:''&lt;br /&gt;
&lt;br /&gt;
=== Save ===&lt;br /&gt;
&lt;br /&gt;
Save a document to Inkscape SVG.&lt;br /&gt;
* If a document does not contain a stored filename, open up File dialog to choose a filename.&lt;br /&gt;
* Update internal Inkscape version and filename. Clear modified flag.&lt;br /&gt;
* Save.&lt;br /&gt;
* If save fails, revert internal Inkcape version and filename. Restore modified flag.&lt;br /&gt;
&lt;br /&gt;
=== Save as... ===&lt;br /&gt;
&lt;br /&gt;
Save a document as Inkscape SVG with a new different filename.&lt;br /&gt;
* Open up File dialog to choose a filename.&lt;br /&gt;
* Update internal Inkscape version and filename. Clear modified flag.&lt;br /&gt;
* Save.&lt;br /&gt;
* If save fails, revert internal Inkcape version and filename. Restore modified flag.&lt;br /&gt;
&lt;br /&gt;
=== Save a copy... ===&lt;br /&gt;
Save a document as Inkscape SVG with a new different filename, not updating internals.&lt;br /&gt;
&lt;br /&gt;
* Open up File dialog to choose a filename.&lt;br /&gt;
* Update internal Inkscape version and filename.&lt;br /&gt;
* Save.&lt;br /&gt;
* Revert internal Inkcape version and filename. Restore modified flag.&lt;br /&gt;
&lt;br /&gt;
=== Save Template... ===&lt;br /&gt;
Save a document as an Inkscape template.&lt;br /&gt;
&lt;br /&gt;
=== Export ===&lt;br /&gt;
[[File:Save File Types 1.4.x.png|thumb|File types from the 1.4.x Save dialog.]]&lt;br /&gt;
&lt;br /&gt;
Export document to a non Inkscape SVG format.&lt;br /&gt;
&lt;br /&gt;
* Open up Export dialog to choose export file type and options..&lt;br /&gt;
&lt;br /&gt;
Options shown are based on selected file type.&lt;br /&gt;
&lt;br /&gt;
The 1.4.x Export dialog currently handles: PNG, Inkscape SVG (no SVG specific options), Plain SVG, JPEG (with a big warning), TIFF, and WebP. The types the 1.4.x Save dialog handles are shown in the figure.&lt;br /&gt;
&lt;br /&gt;
I'm wondering about which file types we should still support. For example, AutoCAD R12 is from 1992 and R14 is from 1997. Flash is long deprecated, with any kind of support ending in 2020.&lt;br /&gt;
&lt;br /&gt;
Note: Bitmap formats are only available from the Export dialog.&lt;br /&gt;
&lt;br /&gt;
=== Export Overwrite ===&lt;br /&gt;
''New (needs some thought)'' Export document, overwriting.&lt;br /&gt;
&lt;br /&gt;
* Export to same format as import or to the previously used export filetype.&lt;br /&gt;
* No File dialog used.&lt;br /&gt;
&lt;br /&gt;
== Unification ==&lt;br /&gt;
&lt;br /&gt;
We have export from the command line and we have export from the Export dialog. These should be unified. It should be possible to set any values from the command line that you can set within the Export dialog. This can be done either of two ways:&lt;br /&gt;
&lt;br /&gt;
# Adapt the file export class used to track export options to handle more options.&lt;br /&gt;
# Rely completely on setting preferences as is done by the Export dialog.&lt;br /&gt;
&lt;br /&gt;
The first means that options are temporary, the second means options are stored in the Preferences file. The second method is probably easier.&lt;br /&gt;
&lt;br /&gt;
== Notes on File dialogs ==&lt;br /&gt;
&lt;br /&gt;
We don't need to check on overwriting files ourselves. The file dialogs on all there platforms already have overwrite protection (verify for Windows).&lt;br /&gt;
&lt;br /&gt;
=== Linux ===&lt;br /&gt;
&lt;br /&gt;
=== MacOS ===&lt;br /&gt;
&lt;br /&gt;
The MacOS dialog will add a file extension if it doesn't already exist based on the File type filter setting (if the filter setting is set to a single file type).&lt;br /&gt;
&lt;br /&gt;
=== Windows ===&lt;br /&gt;
&lt;br /&gt;
== Questions ==&lt;br /&gt;
&lt;br /&gt;
=== Directories ===&lt;br /&gt;
We keep track of the last directories for various file dialogues in preferences. A couple dialogs will fallback to the Windows' Document directory if a preference is not set. Is this desired behavior? Should it be that way on all platforms? Should it be that way for all file dialogs? If the Document directory does not exist, should we fallback to the Home directory? Glib makes it easy to find these directories (we don't need the complicated Windows code that is in ''get_start_directory()'' at the moment).&lt;/div&gt;</summary>
		<author><name>Tavmjong</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Files:_Save&amp;diff=123063</id>
		<title>Files: Save</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Files:_Save&amp;diff=123063"/>
		<updated>2024-10-22T11:54:26Z</updated>

		<summary type="html">&lt;p&gt;Tavmjong: /* Save */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''Italic text''&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
With native file dialogs, we cannot add features such as check boxes for options (&amp;quot;Choices&amp;quot;). We also cannot obtain information about which file filter is selected. We can only use the file extension to determin file type. This breaks are current method for using file dialogs to influence how files are saved. In particular:&lt;br /&gt;
* We cannot have a checkbox to &amp;quot;Save as 1.1 SVG&amp;quot;.&lt;br /&gt;
* We cannot use the file filter setting to distinguish between saving as:&lt;br /&gt;
    * &amp;quot;Inkscape SVG&amp;quot;, &amp;quot;Plain SVG&amp;quot; or &amp;quot;Optimized SVG&amp;quot; (''.svg'').&lt;br /&gt;
    * &amp;quot;Compressed Inkscape SVG&amp;quot; and &amp;quot;Compressed Plain SVG&amp;quot; (''.svgz'').&lt;br /&gt;
    * &amp;quot;DXF 12&amp;quot; or &amp;quot;DXF 14&amp;quot; (''.dxf'').&lt;br /&gt;
    * &amp;quot;Compressed Inkscape with media&amp;quot; or &amp;quot;JessyInk&amp;quot; (''.zip'').&lt;br /&gt;
Native file dialogs are simply useful for choosing file names, nothing more, nothing less.&lt;br /&gt;
&lt;br /&gt;
It's important to recognize that the Gtk::FileDialog class is NOT derived from a widget thus we cannot not change the insides. This is a necessity born from using native dialogs.&lt;br /&gt;
&lt;br /&gt;
Our current (Inkscape 1.4) situation spreads options for how SVG's are saved across several places. Choosing Inkscape or Plain SVG's is done in the File menu, selecting to save to SVG 2 or SVG 1.1 is done in the File dialog, selecting which SVG 2 features are converted to SVG 1.1 fallbacks is done in the Preferences dialog. It would be better to have all of this in one place.&lt;br /&gt;
&lt;br /&gt;
The Export dialog has received a lot of love over the past few years. However, it currently can handle only a subset of the file types that Inkscape can export to.&lt;br /&gt;
&lt;br /&gt;
See also [[Files: Output|2018 proposal]].&lt;br /&gt;
&lt;br /&gt;
== Current Behavior ==&lt;br /&gt;
&lt;br /&gt;
=== Save ===&lt;br /&gt;
&lt;br /&gt;
New document:&lt;br /&gt;
* Opens file dialog (drawing.svg, set to Inkscape SVG).&lt;br /&gt;
Opened as:&lt;br /&gt;
* SVG: Saves as Inkscape SVG. (If write-protected, opens file dialog.)&lt;br /&gt;
* PDF: Saves as PDF after popping open dialog. On quitting, warns about data loss.&lt;br /&gt;
* EMF: Saves as EMF after popping open dialog. On quitting, warns about data loss.&lt;br /&gt;
* DXF: Saves as DXF 12 (even if opened as DXF 14). without popping open dialog. On quitting, warns about data loss.&lt;br /&gt;
* PNG: Opens PNG settings then fails silently&lt;br /&gt;
* JPG: Opens JPG settings then fails, opening Save dialog.&lt;br /&gt;
&lt;br /&gt;
=== Save as ===&lt;br /&gt;
&lt;br /&gt;
Opens file dialog. Preset to last saved file type (can be bitmap!).&lt;br /&gt;
Can save to any vector format in file filter list.&lt;br /&gt;
* &amp;quot;Guess from extension&amp;quot; will fail if trying to save bitmap (may or may not be silently). (Will open PNG settings.)&lt;br /&gt;
* &amp;quot;Append filename extension automatically&amp;quot; fails.&lt;br /&gt;
&lt;br /&gt;
=== Save a copy ===&lt;br /&gt;
&lt;br /&gt;
Same as &amp;quot;Save as&amp;quot; but doesn't update internal file data (e.g. file name).&lt;br /&gt;
&lt;br /&gt;
== Proposal ==&lt;br /&gt;
&lt;br /&gt;
With GTK4 Inkscape, all &amp;quot;Export&amp;quot; is done through the Export dialog, where &amp;quot;Export&amp;quot; is defined as saving a document to any form other than Inkscape SVG.&lt;br /&gt;
&lt;br /&gt;
''The File menu will contain these options:''&lt;br /&gt;
&lt;br /&gt;
=== Save ===&lt;br /&gt;
&lt;br /&gt;
Save a document to Inkscape SVG.&lt;br /&gt;
* If a document does not contain a stored filename, open up File dialog to choose a filename.&lt;br /&gt;
* Update internal Inkscape version and filename. Clear modified flag.&lt;br /&gt;
* Save.&lt;br /&gt;
* If save fails, revert internal Inkcape version and filename. Restore modified flag.&lt;br /&gt;
&lt;br /&gt;
=== Save as... ===&lt;br /&gt;
&lt;br /&gt;
Save a document as Inkscape SVG with a new different filename.&lt;br /&gt;
* Open up File dialog to choose a filename.&lt;br /&gt;
* Update internal Inkscape version and filename. Clear modified flag.&lt;br /&gt;
* Save.&lt;br /&gt;
* If save fails, revert internal Inkcape version and filename. Restore modified flag.&lt;br /&gt;
&lt;br /&gt;
=== Save a copy... ===&lt;br /&gt;
Save a document as Inkscape SVG with a new different filename, not updating internals.&lt;br /&gt;
&lt;br /&gt;
* Open up File dialog to choose a filename.&lt;br /&gt;
* Update internal Inkscape version and filename.&lt;br /&gt;
* Save.&lt;br /&gt;
* Revert internal Inkcape version and filename. Restore modified flag.&lt;br /&gt;
&lt;br /&gt;
=== Save Template... ===&lt;br /&gt;
Save a document as an Inkscape template.&lt;br /&gt;
&lt;br /&gt;
=== Export ===&lt;br /&gt;
[[File:Save File Types 1.4.x.png|thumb|File types from the 1.4.x Save dialog.]]&lt;br /&gt;
&lt;br /&gt;
Export document to a non Inkscape SVG format.&lt;br /&gt;
&lt;br /&gt;
* Open up Export dialog to choose export file type and options..&lt;br /&gt;
&lt;br /&gt;
Options shown are based on selected file type.&lt;br /&gt;
&lt;br /&gt;
The 1.4.x Export dialog currently handles: PNG, Inkscape SVG (no SVG specific options), Plain SVG, JPEG (with a big warning), TIFF, and WebP. The types the 1.4.x Save dialog handles are shown in the figure.&lt;br /&gt;
&lt;br /&gt;
I'm wondering about which file types we should still support. For example, AutoCAD R12 is from 1992 and R14 is from 1997. Flash is long deprecated, with any kind of support ending in 2020.&lt;br /&gt;
&lt;br /&gt;
Note: Bitmap formats are only available from the Export dialog.&lt;br /&gt;
&lt;br /&gt;
=== Export Overwrite ===&lt;br /&gt;
''New (needs some thought)'' Export document, overwriting.&lt;br /&gt;
&lt;br /&gt;
* Export to same format as import or to the previously used export filetype.&lt;br /&gt;
* No File dialog used.&lt;br /&gt;
&lt;br /&gt;
== Unification ==&lt;br /&gt;
&lt;br /&gt;
We have export from the command line and we have export from the Export dialog. These should be unified. It should be possible to set any values from the command line that you can set within the Export dialog. This can be done either of two ways:&lt;br /&gt;
&lt;br /&gt;
# Adapt the file export class used to track export options to handle more options.&lt;br /&gt;
# Rely completely on setting preferences as is done by the Export dialog.&lt;br /&gt;
&lt;br /&gt;
The first means that options are temporary, the second means options are stored in the Preferences file. The second method is probably easier.&lt;br /&gt;
&lt;br /&gt;
== Notes on File dialogs ==&lt;br /&gt;
&lt;br /&gt;
We don't need to check on overwriting files ourselves. The file dialogs on all there platforms already have overwrite protection (verify for Windows).&lt;br /&gt;
&lt;br /&gt;
=== Linux ===&lt;br /&gt;
&lt;br /&gt;
=== MacOS ===&lt;br /&gt;
&lt;br /&gt;
The MacOS dialog will add a file extension if it doesn't already exist based on the File type filter setting (if the filter setting is set to a single file type).&lt;br /&gt;
&lt;br /&gt;
=== Windows ===&lt;br /&gt;
&lt;br /&gt;
== Questions ==&lt;br /&gt;
&lt;br /&gt;
=== Directories ===&lt;br /&gt;
We keep track of the last directories for various file dialogues in preferences. A couple dialogs will fallback to the Windows' Document directory if a preference is not set. Is this desired behavior? Should it be that way on all platforms? Should it be that way for all file dialogs? If the Document directory does not exist, should we fallback to the Home directory? Glib makes it easy to find these directories (we don't need the complicated Windows code that is in ''get_start_directory()'' at the moment).&lt;/div&gt;</summary>
		<author><name>Tavmjong</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Files:_Save&amp;diff=123062</id>
		<title>Files: Save</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Files:_Save&amp;diff=123062"/>
		<updated>2024-10-22T11:42:29Z</updated>

		<summary type="html">&lt;p&gt;Tavmjong: /* Save */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''Italic text''&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
With native file dialogs, we cannot add features such as check boxes for options (&amp;quot;Choices&amp;quot;). We also cannot obtain information about which file filter is selected. We can only use the file extension to determin file type. This breaks are current method for using file dialogs to influence how files are saved. In particular:&lt;br /&gt;
* We cannot have a checkbox to &amp;quot;Save as 1.1 SVG&amp;quot;.&lt;br /&gt;
* We cannot use the file filter setting to distinguish between saving as:&lt;br /&gt;
    * &amp;quot;Inkscape SVG&amp;quot;, &amp;quot;Plain SVG&amp;quot; or &amp;quot;Optimized SVG&amp;quot; (''.svg'').&lt;br /&gt;
    * &amp;quot;Compressed Inkscape SVG&amp;quot; and &amp;quot;Compressed Plain SVG&amp;quot; (''.svgz'').&lt;br /&gt;
    * &amp;quot;DXF 12&amp;quot; or &amp;quot;DXF 14&amp;quot; (''.dxf'').&lt;br /&gt;
    * &amp;quot;Compressed Inkscape with media&amp;quot; or &amp;quot;JessyInk&amp;quot; (''.zip'').&lt;br /&gt;
Native file dialogs are simply useful for choosing file names, nothing more, nothing less.&lt;br /&gt;
&lt;br /&gt;
It's important to recognize that the Gtk::FileDialog class is NOT derived from a widget thus we cannot not change the insides. This is a necessity born from using native dialogs.&lt;br /&gt;
&lt;br /&gt;
Our current (Inkscape 1.4) situation spreads options for how SVG's are saved across several places. Choosing Inkscape or Plain SVG's is done in the File menu, selecting to save to SVG 2 or SVG 1.1 is done in the File dialog, selecting which SVG 2 features are converted to SVG 1.1 fallbacks is done in the Preferences dialog. It would be better to have all of this in one place.&lt;br /&gt;
&lt;br /&gt;
The Export dialog has received a lot of love over the past few years. However, it currently can handle only a subset of the file types that Inkscape can export to.&lt;br /&gt;
&lt;br /&gt;
See also [[Files: Output|2018 proposal]].&lt;br /&gt;
&lt;br /&gt;
== Current Behavior ==&lt;br /&gt;
&lt;br /&gt;
=== Save ===&lt;br /&gt;
&lt;br /&gt;
* New document: Opens file dialog (drawing.svg, set to Inkscape SVG).&lt;br /&gt;
* SVG: Saves as Inkscape SVG. (If write-protected, opens file dialog.)&lt;br /&gt;
* Opened as PDF: Saves as PDF after popping open dialog. On quitting, warns about data loss.&lt;br /&gt;
* Opened as EMF: Saves as EMF after popping open dialog. On quitting, warns about data loss.&lt;br /&gt;
* DXF: Saves as DXF 12 (even if opened as DXF 14). without popping open dialog. On quitting, warns about data loss.&lt;br /&gt;
* PNG: Opens PNG settings then fails silently&lt;br /&gt;
* JPG: Opens JPG settings then fails, opening Save dialog.&lt;br /&gt;
&lt;br /&gt;
=== Save as ===&lt;br /&gt;
&lt;br /&gt;
Opens file dialog. Preset to last saved file type (can be bitmap!).&lt;br /&gt;
Can save to any vector format in file filter list.&lt;br /&gt;
* &amp;quot;Guess from extension&amp;quot; will fail if trying to save bitmap (may or may not be silently). (Will open PNG settings.)&lt;br /&gt;
* &amp;quot;Append filename extension automatically&amp;quot; fails.&lt;br /&gt;
&lt;br /&gt;
=== Save a copy ===&lt;br /&gt;
&lt;br /&gt;
Same as &amp;quot;Save as&amp;quot; but doesn't update internal file data (e.g. file name).&lt;br /&gt;
&lt;br /&gt;
== Proposal ==&lt;br /&gt;
&lt;br /&gt;
With GTK4 Inkscape, all &amp;quot;Export&amp;quot; is done through the Export dialog, where &amp;quot;Export&amp;quot; is defined as saving a document to any form other than Inkscape SVG.&lt;br /&gt;
&lt;br /&gt;
''The File menu will contain these options:''&lt;br /&gt;
&lt;br /&gt;
=== Save ===&lt;br /&gt;
&lt;br /&gt;
Save a document to Inkscape SVG.&lt;br /&gt;
* If a document does not contain a stored filename, open up File dialog to choose a filename.&lt;br /&gt;
* Update internal Inkscape version and filename. Clear modified flag.&lt;br /&gt;
* Save.&lt;br /&gt;
* If save fails, revert internal Inkcape version and filename. Restore modified flag.&lt;br /&gt;
&lt;br /&gt;
=== Save as... ===&lt;br /&gt;
&lt;br /&gt;
Save a document as Inkscape SVG with a new different filename.&lt;br /&gt;
* Open up File dialog to choose a filename.&lt;br /&gt;
* Update internal Inkscape version and filename. Clear modified flag.&lt;br /&gt;
* Save.&lt;br /&gt;
* If save fails, revert internal Inkcape version and filename. Restore modified flag.&lt;br /&gt;
&lt;br /&gt;
=== Save a copy... ===&lt;br /&gt;
Save a document as Inkscape SVG with a new different filename, not updating internals.&lt;br /&gt;
&lt;br /&gt;
* Open up File dialog to choose a filename.&lt;br /&gt;
* Update internal Inkscape version and filename.&lt;br /&gt;
* Save.&lt;br /&gt;
* Revert internal Inkcape version and filename. Restore modified flag.&lt;br /&gt;
&lt;br /&gt;
=== Save Template... ===&lt;br /&gt;
Save a document as an Inkscape template.&lt;br /&gt;
&lt;br /&gt;
=== Export ===&lt;br /&gt;
[[File:Save File Types 1.4.x.png|thumb|File types from the 1.4.x Save dialog.]]&lt;br /&gt;
&lt;br /&gt;
Export document to a non Inkscape SVG format.&lt;br /&gt;
&lt;br /&gt;
* Open up Export dialog to choose export file type and options..&lt;br /&gt;
&lt;br /&gt;
Options shown are based on selected file type.&lt;br /&gt;
&lt;br /&gt;
The 1.4.x Export dialog currently handles: PNG, Inkscape SVG (no SVG specific options), Plain SVG, JPEG (with a big warning), TIFF, and WebP. The types the 1.4.x Save dialog handles are shown in the figure.&lt;br /&gt;
&lt;br /&gt;
I'm wondering about which file types we should still support. For example, AutoCAD R12 is from 1992 and R14 is from 1997. Flash is long deprecated, with any kind of support ending in 2020.&lt;br /&gt;
&lt;br /&gt;
Note: Bitmap formats are only available from the Export dialog.&lt;br /&gt;
&lt;br /&gt;
=== Export Overwrite ===&lt;br /&gt;
''New (needs some thought)'' Export document, overwriting.&lt;br /&gt;
&lt;br /&gt;
* Export to same format as import or to the previously used export filetype.&lt;br /&gt;
* No File dialog used.&lt;br /&gt;
&lt;br /&gt;
== Unification ==&lt;br /&gt;
&lt;br /&gt;
We have export from the command line and we have export from the Export dialog. These should be unified. It should be possible to set any values from the command line that you can set within the Export dialog. This can be done either of two ways:&lt;br /&gt;
&lt;br /&gt;
# Adapt the file export class used to track export options to handle more options.&lt;br /&gt;
# Rely completely on setting preferences as is done by the Export dialog.&lt;br /&gt;
&lt;br /&gt;
The first means that options are temporary, the second means options are stored in the Preferences file. The second method is probably easier.&lt;br /&gt;
&lt;br /&gt;
== Notes on File dialogs ==&lt;br /&gt;
&lt;br /&gt;
We don't need to check on overwriting files ourselves. The file dialogs on all there platforms already have overwrite protection (verify for Windows).&lt;br /&gt;
&lt;br /&gt;
=== Linux ===&lt;br /&gt;
&lt;br /&gt;
=== MacOS ===&lt;br /&gt;
&lt;br /&gt;
The MacOS dialog will add a file extension if it doesn't already exist based on the File type filter setting (if the filter setting is set to a single file type).&lt;br /&gt;
&lt;br /&gt;
=== Windows ===&lt;br /&gt;
&lt;br /&gt;
== Questions ==&lt;br /&gt;
&lt;br /&gt;
=== Directories ===&lt;br /&gt;
We keep track of the last directories for various file dialogues in preferences. A couple dialogs will fallback to the Windows' Document directory if a preference is not set. Is this desired behavior? Should it be that way on all platforms? Should it be that way for all file dialogs? If the Document directory does not exist, should we fallback to the Home directory? Glib makes it easy to find these directories (we don't need the complicated Windows code that is in ''get_start_directory()'' at the moment).&lt;/div&gt;</summary>
		<author><name>Tavmjong</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Files:_Save&amp;diff=123056</id>
		<title>Files: Save</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Files:_Save&amp;diff=123056"/>
		<updated>2024-10-10T19:47:28Z</updated>

		<summary type="html">&lt;p&gt;Tavmjong: /* Save */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''Italic text''&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
With native file dialogs, we cannot add features such as check boxes for options (&amp;quot;Choices&amp;quot;). We also cannot obtain information about which file filter is selected. We can only use the file extension to determin file type. This breaks are current method for using file dialogs to influence how files are saved. In particular:&lt;br /&gt;
* We cannot have a checkbox to &amp;quot;Save as 1.1 SVG&amp;quot;.&lt;br /&gt;
* We cannot use the file filter setting to distinguish between saving as:&lt;br /&gt;
    * &amp;quot;Inkscape SVG&amp;quot;, &amp;quot;Plain SVG&amp;quot; or &amp;quot;Optimized SVG&amp;quot; (''.svg'').&lt;br /&gt;
    * &amp;quot;Compressed Inkscape SVG&amp;quot; and &amp;quot;Compressed Plain SVG&amp;quot; (''.svgz'').&lt;br /&gt;
    * &amp;quot;DXF 12&amp;quot; or &amp;quot;DXF 14&amp;quot; (''.dxf'').&lt;br /&gt;
    * &amp;quot;Compressed Inkscape with media&amp;quot; or &amp;quot;JessyInk&amp;quot; (''.zip'').&lt;br /&gt;
Native file dialogs are simply useful for choosing file names, nothing more, nothing less.&lt;br /&gt;
&lt;br /&gt;
It's important to recognize that the Gtk::FileDialog class is NOT derived from a widget thus we cannot not change the insides. This is a necessity born from using native dialogs.&lt;br /&gt;
&lt;br /&gt;
Our current (Inkscape 1.4) situation spreads options for how SVG's are saved across several places. Choosing Inkscape or Plain SVG's is done in the File menu, selecting to save to SVG 2 or SVG 1.1 is done in the File dialog, selecting which SVG 2 features are converted to SVG 1.1 fallbacks is done in the Preferences dialog. It would be better to have all of this in one place.&lt;br /&gt;
&lt;br /&gt;
The Export dialog has received a lot of love over the past few years. However, it currently can handle only a subset of the file types that Inkscape can export to.&lt;br /&gt;
&lt;br /&gt;
See also [[Files: Output|2018 proposal]].&lt;br /&gt;
&lt;br /&gt;
== Current Behavior ==&lt;br /&gt;
&lt;br /&gt;
=== Save ===&lt;br /&gt;
&lt;br /&gt;
* New document: Opens file dialog (drawing.svg, set to Inkscape SVG).&lt;br /&gt;
* SVG: Saves as Inkscape SVG. (If write-protected, opens file dialog.)&lt;br /&gt;
* PDF: Saves as PDF.&lt;br /&gt;
* EMF: Saves as EMF&lt;br /&gt;
* DXF: Saves as DXF 12 (even if opened as DXF 14)&lt;br /&gt;
* PNG: Opens PNG settings then fails silently&lt;br /&gt;
* JPG: Opens JPG settings then fails, opening Save dialog.&lt;br /&gt;
&lt;br /&gt;
=== Save as ===&lt;br /&gt;
&lt;br /&gt;
Opens file dialog. Preset to last saved file type (can be bitmap!).&lt;br /&gt;
Can save to any vector format in file filter list.&lt;br /&gt;
* &amp;quot;Guess from extension&amp;quot; will fail if trying to save bitmap (may or may not be silently). (Will open PNG settings.)&lt;br /&gt;
* &amp;quot;Append filename extension automatically&amp;quot; fails.&lt;br /&gt;
&lt;br /&gt;
=== Save a copy ===&lt;br /&gt;
&lt;br /&gt;
Same as &amp;quot;Save as&amp;quot; but doesn't update internal file data (e.g. file name).&lt;br /&gt;
&lt;br /&gt;
== Proposal ==&lt;br /&gt;
&lt;br /&gt;
With GTK4 Inkscape, all &amp;quot;Export&amp;quot; is done through the Export dialog, where &amp;quot;Export&amp;quot; is defined as saving a document to any form other than Inkscape SVG.&lt;br /&gt;
&lt;br /&gt;
''The File menu will contain these options:''&lt;br /&gt;
&lt;br /&gt;
=== Save ===&lt;br /&gt;
&lt;br /&gt;
Save a document to Inkscape SVG.&lt;br /&gt;
* If a document does not contain a stored filename, open up File dialog to choose a filename.&lt;br /&gt;
* Update internal Inkscape version and filename. Clear modified flag.&lt;br /&gt;
* Save.&lt;br /&gt;
* If save fails, revert internal Inkcape version and filename. Restore modified flag.&lt;br /&gt;
&lt;br /&gt;
=== Save as... ===&lt;br /&gt;
&lt;br /&gt;
Save a document as Inkscape SVG with a new different filename.&lt;br /&gt;
* Open up File dialog to choose a filename.&lt;br /&gt;
* Update internal Inkscape version and filename. Clear modified flag.&lt;br /&gt;
* Save.&lt;br /&gt;
* If save fails, revert internal Inkcape version and filename. Restore modified flag.&lt;br /&gt;
&lt;br /&gt;
=== Save a copy... ===&lt;br /&gt;
Save a document as Inkscape SVG with a new different filename, not updating internals.&lt;br /&gt;
&lt;br /&gt;
* Open up File dialog to choose a filename.&lt;br /&gt;
* Update internal Inkscape version and filename.&lt;br /&gt;
* Save.&lt;br /&gt;
* Revert internal Inkcape version and filename. Restore modified flag.&lt;br /&gt;
&lt;br /&gt;
=== Save Template... ===&lt;br /&gt;
Save a document as an Inkscape template.&lt;br /&gt;
&lt;br /&gt;
=== Export ===&lt;br /&gt;
[[File:Save File Types 1.4.x.png|thumb|File types from the 1.4.x Save dialog.]]&lt;br /&gt;
&lt;br /&gt;
Export document to a non Inkscape SVG format.&lt;br /&gt;
&lt;br /&gt;
* Open up Export dialog to choose export file type and options..&lt;br /&gt;
&lt;br /&gt;
Options shown are based on selected file type.&lt;br /&gt;
&lt;br /&gt;
The 1.4.x Export dialog currently handles: PNG, Inkscape SVG (no SVG specific options), Plain SVG, JPEG (with a big warning), TIFF, and WebP. The types the 1.4.x Save dialog handles are shown in the figure.&lt;br /&gt;
&lt;br /&gt;
I'm wondering about which file types we should still support. For example, AutoCAD R12 is from 1992 and R14 is from 1997. Flash is long deprecated, with any kind of support ending in 2020.&lt;br /&gt;
&lt;br /&gt;
Note: Bitmap formats are only available from the Export dialog.&lt;br /&gt;
&lt;br /&gt;
=== Export Overwrite ===&lt;br /&gt;
''New (needs some thought)'' Export document, overwriting.&lt;br /&gt;
&lt;br /&gt;
* Export to same format as import or to the previously used export filetype.&lt;br /&gt;
* No File dialog used.&lt;br /&gt;
&lt;br /&gt;
== Unification ==&lt;br /&gt;
&lt;br /&gt;
We have export from the command line and we have export from the Export dialog. These should be unified. It should be possible to set any values from the command line that you can set within the Export dialog. This can be done either of two ways:&lt;br /&gt;
&lt;br /&gt;
# Adapt the file export class used to track export options to handle more options.&lt;br /&gt;
# Rely completely on setting preferences as is done by the Export dialog.&lt;br /&gt;
&lt;br /&gt;
The first means that options are temporary, the second means options are stored in the Preferences file. The second method is probably easier.&lt;br /&gt;
&lt;br /&gt;
== Notes on File dialogs ==&lt;br /&gt;
&lt;br /&gt;
We don't need to check on overwriting files ourselves. The file dialogs on all there platforms already have overwrite protection (verify for Windows).&lt;br /&gt;
&lt;br /&gt;
=== Linux ===&lt;br /&gt;
&lt;br /&gt;
=== MacOS ===&lt;br /&gt;
&lt;br /&gt;
The MacOS dialog will add a file extension if it doesn't already exist based on the File type filter setting (if the filter setting is set to a single file type).&lt;br /&gt;
&lt;br /&gt;
=== Windows ===&lt;br /&gt;
&lt;br /&gt;
== Questions ==&lt;br /&gt;
&lt;br /&gt;
=== Directories ===&lt;br /&gt;
We keep track of the last directories for various file dialogues in preferences. A couple dialogs will fallback to the Windows' Document directory if a preference is not set. Is this desired behavior? Should it be that way on all platforms? Should it be that way for all file dialogs? If the Document directory does not exist, should we fallback to the Home directory? Glib makes it easy to find these directories (we don't need the complicated Windows code that is in ''get_start_directory()'' at the moment).&lt;/div&gt;</summary>
		<author><name>Tavmjong</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Files:_Save&amp;diff=123055</id>
		<title>Files: Save</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Files:_Save&amp;diff=123055"/>
		<updated>2024-10-10T14:24:42Z</updated>

		<summary type="html">&lt;p&gt;Tavmjong: /* Introduction */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''Italic text''&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
With native file dialogs, we cannot add features such as check boxes for options (&amp;quot;Choices&amp;quot;). We also cannot obtain information about which file filter is selected. We can only use the file extension to determin file type. This breaks are current method for using file dialogs to influence how files are saved. In particular:&lt;br /&gt;
* We cannot have a checkbox to &amp;quot;Save as 1.1 SVG&amp;quot;.&lt;br /&gt;
* We cannot use the file filter setting to distinguish between saving as:&lt;br /&gt;
    * &amp;quot;Inkscape SVG&amp;quot;, &amp;quot;Plain SVG&amp;quot; or &amp;quot;Optimized SVG&amp;quot; (''.svg'').&lt;br /&gt;
    * &amp;quot;Compressed Inkscape SVG&amp;quot; and &amp;quot;Compressed Plain SVG&amp;quot; (''.svgz'').&lt;br /&gt;
    * &amp;quot;DXF 12&amp;quot; or &amp;quot;DXF 14&amp;quot; (''.dxf'').&lt;br /&gt;
    * &amp;quot;Compressed Inkscape with media&amp;quot; or &amp;quot;JessyInk&amp;quot; (''.zip'').&lt;br /&gt;
Native file dialogs are simply useful for choosing file names, nothing more, nothing less.&lt;br /&gt;
&lt;br /&gt;
It's important to recognize that the Gtk::FileDialog class is NOT derived from a widget thus we cannot not change the insides. This is a necessity born from using native dialogs.&lt;br /&gt;
&lt;br /&gt;
Our current (Inkscape 1.4) situation spreads options for how SVG's are saved across several places. Choosing Inkscape or Plain SVG's is done in the File menu, selecting to save to SVG 2 or SVG 1.1 is done in the File dialog, selecting which SVG 2 features are converted to SVG 1.1 fallbacks is done in the Preferences dialog. It would be better to have all of this in one place.&lt;br /&gt;
&lt;br /&gt;
The Export dialog has received a lot of love over the past few years. However, it currently can handle only a subset of the file types that Inkscape can export to.&lt;br /&gt;
&lt;br /&gt;
See also [[Files: Output|2018 proposal]].&lt;br /&gt;
&lt;br /&gt;
== Current Behavior ==&lt;br /&gt;
&lt;br /&gt;
=== Save ===&lt;br /&gt;
&lt;br /&gt;
* New document: Opens file dialog (drawing.svg, set to Inkscape SVG).&lt;br /&gt;
* SVG: Saves as Inkscape SVG. (If write-protected, opens file dialog.)&lt;br /&gt;
* PDF: Saves as PDF.&lt;br /&gt;
* EMF: Saves as EMF&lt;br /&gt;
* DXF: Saves as DXF 12 (even if opened as DXF 14)&lt;br /&gt;
* PNG: Opens PNG settings then fails silently&lt;br /&gt;
* JPG: Opens JPG settings then fails, opening Save dialog.&lt;br /&gt;
&lt;br /&gt;
== Proposal ==&lt;br /&gt;
&lt;br /&gt;
With GTK4 Inkscape, all &amp;quot;Export&amp;quot; is done through the Export dialog, where &amp;quot;Export&amp;quot; is defined as saving a document to any form other than Inkscape SVG.&lt;br /&gt;
&lt;br /&gt;
''The File menu will contain these options:''&lt;br /&gt;
&lt;br /&gt;
=== Save ===&lt;br /&gt;
&lt;br /&gt;
Save a document to Inkscape SVG.&lt;br /&gt;
* If a document does not contain a stored filename, open up File dialog to choose a filename.&lt;br /&gt;
* Update internal Inkscape version and filename. Clear modified flag.&lt;br /&gt;
* Save.&lt;br /&gt;
* If save fails, revert internal Inkcape version and filename. Restore modified flag.&lt;br /&gt;
&lt;br /&gt;
=== Save as... ===&lt;br /&gt;
&lt;br /&gt;
Save a document as Inkscape SVG with a new different filename.&lt;br /&gt;
* Open up File dialog to choose a filename.&lt;br /&gt;
* Update internal Inkscape version and filename. Clear modified flag.&lt;br /&gt;
* Save.&lt;br /&gt;
* If save fails, revert internal Inkcape version and filename. Restore modified flag.&lt;br /&gt;
&lt;br /&gt;
=== Save a copy... ===&lt;br /&gt;
Save a document as Inkscape SVG with a new different filename, not updating internals.&lt;br /&gt;
&lt;br /&gt;
* Open up File dialog to choose a filename.&lt;br /&gt;
* Update internal Inkscape version and filename.&lt;br /&gt;
* Save.&lt;br /&gt;
* Revert internal Inkcape version and filename. Restore modified flag.&lt;br /&gt;
&lt;br /&gt;
=== Save Template... ===&lt;br /&gt;
Save a document as an Inkscape template.&lt;br /&gt;
&lt;br /&gt;
=== Export ===&lt;br /&gt;
[[File:Save File Types 1.4.x.png|thumb|File types from the 1.4.x Save dialog.]]&lt;br /&gt;
&lt;br /&gt;
Export document to a non Inkscape SVG format.&lt;br /&gt;
&lt;br /&gt;
* Open up Export dialog to choose export file type and options..&lt;br /&gt;
&lt;br /&gt;
Options shown are based on selected file type.&lt;br /&gt;
&lt;br /&gt;
The 1.4.x Export dialog currently handles: PNG, Inkscape SVG (no SVG specific options), Plain SVG, JPEG (with a big warning), TIFF, and WebP. The types the 1.4.x Save dialog handles are shown in the figure.&lt;br /&gt;
&lt;br /&gt;
I'm wondering about which file types we should still support. For example, AutoCAD R12 is from 1992 and R14 is from 1997. Flash is long deprecated, with any kind of support ending in 2020.&lt;br /&gt;
&lt;br /&gt;
Note: Bitmap formats are only available from the Export dialog.&lt;br /&gt;
&lt;br /&gt;
=== Export Overwrite ===&lt;br /&gt;
''New (needs some thought)'' Export document, overwriting.&lt;br /&gt;
&lt;br /&gt;
* Export to same format as import or to the previously used export filetype.&lt;br /&gt;
* No File dialog used.&lt;br /&gt;
&lt;br /&gt;
== Unification ==&lt;br /&gt;
&lt;br /&gt;
We have export from the command line and we have export from the Export dialog. These should be unified. It should be possible to set any values from the command line that you can set within the Export dialog. This can be done either of two ways:&lt;br /&gt;
&lt;br /&gt;
# Adapt the file export class used to track export options to handle more options.&lt;br /&gt;
# Rely completely on setting preferences as is done by the Export dialog.&lt;br /&gt;
&lt;br /&gt;
The first means that options are temporary, the second means options are stored in the Preferences file. The second method is probably easier.&lt;br /&gt;
&lt;br /&gt;
== Notes on File dialogs ==&lt;br /&gt;
&lt;br /&gt;
We don't need to check on overwriting files ourselves. The file dialogs on all there platforms already have overwrite protection (verify for Windows).&lt;br /&gt;
&lt;br /&gt;
=== Linux ===&lt;br /&gt;
&lt;br /&gt;
=== MacOS ===&lt;br /&gt;
&lt;br /&gt;
The MacOS dialog will add a file extension if it doesn't already exist based on the File type filter setting (if the filter setting is set to a single file type).&lt;br /&gt;
&lt;br /&gt;
=== Windows ===&lt;br /&gt;
&lt;br /&gt;
== Questions ==&lt;br /&gt;
&lt;br /&gt;
=== Directories ===&lt;br /&gt;
We keep track of the last directories for various file dialogues in preferences. A couple dialogs will fallback to the Windows' Document directory if a preference is not set. Is this desired behavior? Should it be that way on all platforms? Should it be that way for all file dialogs? If the Document directory does not exist, should we fallback to the Home directory? Glib makes it easy to find these directories (we don't need the complicated Windows code that is in ''get_start_directory()'' at the moment).&lt;/div&gt;</summary>
		<author><name>Tavmjong</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Files:_Save&amp;diff=123054</id>
		<title>Files: Save</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Files:_Save&amp;diff=123054"/>
		<updated>2024-10-10T14:17:37Z</updated>

		<summary type="html">&lt;p&gt;Tavmjong: /* Proposal */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''Italic text''&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
With native file dialogs, we cannot add features such as check boxes for options (&amp;quot;Choices&amp;quot;). We also cannot obtain information about which file filter is selected. This breaks are current method for using file dialogs to influence how files are saved. In particular, we cannot have a checkbox to &amp;quot;Save as 1.1 SVG&amp;quot;, nor can we use the file filter setting to distinguish between saving as &amp;quot;Inkscape SVG&amp;quot; or &amp;quot;Plain SVG&amp;quot;. Native file dialogs are simply useful for choosing file names, nothing more, nothing less.&lt;br /&gt;
&lt;br /&gt;
It's important to recognize that the Gtk::FileDialog class is NOT derived from a widget thus we cannot not change the insides. This is a necessity born from using native dialogs.&lt;br /&gt;
&lt;br /&gt;
Our current (Inkscape 1.4) situation spreads options for how SVG's are saved across several places. Choosing Inkscape or Plain SVG's is done in the File menu, selecting to save to SVG 2 or SVG 1.1 is done in the File dialog, selecting which SVG 2 features are converted to SVG 1.1 fallbacks is done in the Preferences dialog. It would be better to have all of this in one place.&lt;br /&gt;
&lt;br /&gt;
The Export dialog has received a lot of love over the past few years. However, it currently can handle only a subset of the file types that Inkscape can export to.&lt;br /&gt;
&lt;br /&gt;
See also [[Files: Output|2018 proposal]].&lt;br /&gt;
&lt;br /&gt;
== Current Behavior ==&lt;br /&gt;
&lt;br /&gt;
=== Save ===&lt;br /&gt;
&lt;br /&gt;
* New document: Opens file dialog (drawing.svg, set to Inkscape SVG).&lt;br /&gt;
* SVG: Saves as Inkscape SVG. (If write-protected, opens file dialog.)&lt;br /&gt;
* PDF: Saves as PDF.&lt;br /&gt;
* EMF: Saves as EMF&lt;br /&gt;
* DXF: Saves as DXF 12 (even if opened as DXF 14)&lt;br /&gt;
* PNG: Opens PNG settings then fails silently&lt;br /&gt;
* JPG: Opens JPG settings then fails, opening Save dialog.&lt;br /&gt;
&lt;br /&gt;
== Proposal ==&lt;br /&gt;
&lt;br /&gt;
With GTK4 Inkscape, all &amp;quot;Export&amp;quot; is done through the Export dialog, where &amp;quot;Export&amp;quot; is defined as saving a document to any form other than Inkscape SVG.&lt;br /&gt;
&lt;br /&gt;
''The File menu will contain these options:''&lt;br /&gt;
&lt;br /&gt;
=== Save ===&lt;br /&gt;
&lt;br /&gt;
Save a document to Inkscape SVG.&lt;br /&gt;
* If a document does not contain a stored filename, open up File dialog to choose a filename.&lt;br /&gt;
* Update internal Inkscape version and filename. Clear modified flag.&lt;br /&gt;
* Save.&lt;br /&gt;
* If save fails, revert internal Inkcape version and filename. Restore modified flag.&lt;br /&gt;
&lt;br /&gt;
=== Save as... ===&lt;br /&gt;
&lt;br /&gt;
Save a document as Inkscape SVG with a new different filename.&lt;br /&gt;
* Open up File dialog to choose a filename.&lt;br /&gt;
* Update internal Inkscape version and filename. Clear modified flag.&lt;br /&gt;
* Save.&lt;br /&gt;
* If save fails, revert internal Inkcape version and filename. Restore modified flag.&lt;br /&gt;
&lt;br /&gt;
=== Save a copy... ===&lt;br /&gt;
Save a document as Inkscape SVG with a new different filename, not updating internals.&lt;br /&gt;
&lt;br /&gt;
* Open up File dialog to choose a filename.&lt;br /&gt;
* Update internal Inkscape version and filename.&lt;br /&gt;
* Save.&lt;br /&gt;
* Revert internal Inkcape version and filename. Restore modified flag.&lt;br /&gt;
&lt;br /&gt;
=== Save Template... ===&lt;br /&gt;
Save a document as an Inkscape template.&lt;br /&gt;
&lt;br /&gt;
=== Export ===&lt;br /&gt;
[[File:Save File Types 1.4.x.png|thumb|File types from the 1.4.x Save dialog.]]&lt;br /&gt;
&lt;br /&gt;
Export document to a non Inkscape SVG format.&lt;br /&gt;
&lt;br /&gt;
* Open up Export dialog to choose export file type and options..&lt;br /&gt;
&lt;br /&gt;
Options shown are based on selected file type.&lt;br /&gt;
&lt;br /&gt;
The 1.4.x Export dialog currently handles: PNG, Inkscape SVG (no SVG specific options), Plain SVG, JPEG (with a big warning), TIFF, and WebP. The types the 1.4.x Save dialog handles are shown in the figure.&lt;br /&gt;
&lt;br /&gt;
I'm wondering about which file types we should still support. For example, AutoCAD R12 is from 1992 and R14 is from 1997. Flash is long deprecated, with any kind of support ending in 2020.&lt;br /&gt;
&lt;br /&gt;
Note: Bitmap formats are only available from the Export dialog.&lt;br /&gt;
&lt;br /&gt;
=== Export Overwrite ===&lt;br /&gt;
''New (needs some thought)'' Export document, overwriting.&lt;br /&gt;
&lt;br /&gt;
* Export to same format as import or to the previously used export filetype.&lt;br /&gt;
* No File dialog used.&lt;br /&gt;
&lt;br /&gt;
== Unification ==&lt;br /&gt;
&lt;br /&gt;
We have export from the command line and we have export from the Export dialog. These should be unified. It should be possible to set any values from the command line that you can set within the Export dialog. This can be done either of two ways:&lt;br /&gt;
&lt;br /&gt;
# Adapt the file export class used to track export options to handle more options.&lt;br /&gt;
# Rely completely on setting preferences as is done by the Export dialog.&lt;br /&gt;
&lt;br /&gt;
The first means that options are temporary, the second means options are stored in the Preferences file. The second method is probably easier.&lt;br /&gt;
&lt;br /&gt;
== Notes on File dialogs ==&lt;br /&gt;
&lt;br /&gt;
We don't need to check on overwriting files ourselves. The file dialogs on all there platforms already have overwrite protection (verify for Windows).&lt;br /&gt;
&lt;br /&gt;
=== Linux ===&lt;br /&gt;
&lt;br /&gt;
=== MacOS ===&lt;br /&gt;
&lt;br /&gt;
The MacOS dialog will add a file extension if it doesn't already exist based on the File type filter setting (if the filter setting is set to a single file type).&lt;br /&gt;
&lt;br /&gt;
=== Windows ===&lt;br /&gt;
&lt;br /&gt;
== Questions ==&lt;br /&gt;
&lt;br /&gt;
=== Directories ===&lt;br /&gt;
We keep track of the last directories for various file dialogues in preferences. A couple dialogs will fallback to the Windows' Document directory if a preference is not set. Is this desired behavior? Should it be that way on all platforms? Should it be that way for all file dialogs? If the Document directory does not exist, should we fallback to the Home directory? Glib makes it easy to find these directories (we don't need the complicated Windows code that is in ''get_start_directory()'' at the moment).&lt;/div&gt;</summary>
		<author><name>Tavmjong</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Files:_Save&amp;diff=123038</id>
		<title>Files: Save</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Files:_Save&amp;diff=123038"/>
		<updated>2024-09-30T14:47:28Z</updated>

		<summary type="html">&lt;p&gt;Tavmjong: /* Export */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''Italic text''&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
With native file dialogs, we cannot add features such as check boxes for options (&amp;quot;Choices&amp;quot;). We also cannot obtain information about which file filter is selected. This breaks are current method for using file dialogs to influence how files are saved. In particular, we cannot have a checkbox to &amp;quot;Save as 1.1 SVG&amp;quot;, nor can we use the file filter setting to distinguish between saving as &amp;quot;Inkscape SVG&amp;quot; or &amp;quot;Plain SVG&amp;quot;. Native file dialogs are simply useful for choosing file names, nothing more, nothing less.&lt;br /&gt;
&lt;br /&gt;
It's important to recognize that the Gtk::FileDialog class is NOT derived from a widget thus we cannot not change the insides. This is a necessity born from using native dialogs.&lt;br /&gt;
&lt;br /&gt;
Our current (Inkscape 1.4) situation spreads options for how SVG's are saved across several places. Choosing Inkscape or Plain SVG's is done in the File menu, selecting to save to SVG 2 or SVG 1.1 is done in the File dialog, selecting which SVG 2 features are converted to SVG 1.1 fallbacks is done in the Preferences dialog. It would be better to have all of this in one place.&lt;br /&gt;
&lt;br /&gt;
The Export dialog has received a lot of love over the past few years. However, it currently can handle only a subset of the file types that Inkscape can export to.&lt;br /&gt;
&lt;br /&gt;
See also [[Files: Output|2018 proposal]].&lt;br /&gt;
&lt;br /&gt;
== Proposal ==&lt;br /&gt;
&lt;br /&gt;
With GTK4 Inkscape, all &amp;quot;Export&amp;quot; is done through the Export dialog, where &amp;quot;Export&amp;quot; is defined as saving a document to any form other than Inkscape SVG.&lt;br /&gt;
&lt;br /&gt;
''The File menu will contain these options:''&lt;br /&gt;
&lt;br /&gt;
=== Save ===&lt;br /&gt;
&lt;br /&gt;
Save a document to Inkscape SVG.&lt;br /&gt;
* If a document does not contain a stored filename, open up File dialog to choose a filename.&lt;br /&gt;
* Update internal Inkscape version and filename. Clear modified flag.&lt;br /&gt;
* Save.&lt;br /&gt;
* If save fails, revert internal Inkcape version and filename. Restore modified flag.&lt;br /&gt;
&lt;br /&gt;
=== Save as... ===&lt;br /&gt;
&lt;br /&gt;
Save a document as Inkscape SVG with a new different filename.&lt;br /&gt;
* Open up File dialog to choose a filename.&lt;br /&gt;
* Update internal Inkscape version and filename. Clear modified flag.&lt;br /&gt;
* Save.&lt;br /&gt;
* If save fails, revert internal Inkcape version and filename. Restore modified flag.&lt;br /&gt;
&lt;br /&gt;
=== Save a copy... ===&lt;br /&gt;
Save a document as Inkscape SVG with a new different filename, not updating internals.&lt;br /&gt;
&lt;br /&gt;
* Open up File dialog to choose a filename.&lt;br /&gt;
* Update internal Inkscape version and filename.&lt;br /&gt;
* Save.&lt;br /&gt;
* Revert internal Inkcape version and filename. Restore modified flag.&lt;br /&gt;
&lt;br /&gt;
=== Save Template... ===&lt;br /&gt;
Save a document as an Inkscape template.&lt;br /&gt;
&lt;br /&gt;
=== Export ===&lt;br /&gt;
[[File:Save File Types 1.4.x.png|thumb|File types from the 1.4.x Save dialog.]]&lt;br /&gt;
&lt;br /&gt;
Export document to a non Inkscape SVG format.&lt;br /&gt;
&lt;br /&gt;
* Open up Export dialog to choose export file type and options..&lt;br /&gt;
&lt;br /&gt;
Options shown are based on selected file type.&lt;br /&gt;
&lt;br /&gt;
The 1.4.x Export dialog currently handles: PNG, Inkscape SVG (no SVG specific options), Plain SVG, JPEG (with a big warning), TIFF, and WebP. The types the 1.4.x Save dialog handles are shown in the figure.&lt;br /&gt;
&lt;br /&gt;
I'm wondering about which file types we should still support. For example, AutoCAD R12 is from 1992 and R14 is from 1997. Flash is long deprecated, with any kind of support ending in 2020.&lt;br /&gt;
&lt;br /&gt;
Note: Bitmap formats are only available from the Export dialog.&lt;br /&gt;
&lt;br /&gt;
=== Export Overwrite ===&lt;br /&gt;
''New (needs some thought)'' Export document, overwriting.&lt;br /&gt;
&lt;br /&gt;
* Export to same format as import or to the previously used export filetype.&lt;br /&gt;
* No File dialog used.&lt;br /&gt;
&lt;br /&gt;
== Unification ==&lt;br /&gt;
&lt;br /&gt;
We have export from the command line and we have export from the Export dialog. These should be unified. It should be possible to set any values from the command line that you can set within the Export dialog. This can be done either of two ways:&lt;br /&gt;
&lt;br /&gt;
# Adapt the file export class used to track export options to handle more options.&lt;br /&gt;
# Rely completely on setting preferences as is done by the Export dialog.&lt;br /&gt;
&lt;br /&gt;
The first means that options are temporary, the second means options are stored in the Preferences file. The second method is probably easier.&lt;br /&gt;
&lt;br /&gt;
== Notes on File dialogs ==&lt;br /&gt;
&lt;br /&gt;
We don't need to check on overwriting files ourselves. The file dialogs on all there platforms already have overwrite protection (verify for Windows).&lt;br /&gt;
&lt;br /&gt;
=== Linux ===&lt;br /&gt;
&lt;br /&gt;
=== MacOS ===&lt;br /&gt;
&lt;br /&gt;
The MacOS dialog will add a file extension if it doesn't already exist based on the File type filter setting (if the filter setting is set to a single file type).&lt;br /&gt;
&lt;br /&gt;
=== Windows ===&lt;br /&gt;
&lt;br /&gt;
== Questions ==&lt;br /&gt;
&lt;br /&gt;
=== Directories ===&lt;br /&gt;
We keep track of the last directories for various file dialogues in preferences. A couple dialogs will fallback to the Windows' Document directory if a preference is not set. Is this desired behavior? Should it be that way on all platforms? Should it be that way for all file dialogs? If the Document directory does not exist, should we fallback to the Home directory? Glib makes it easy to find these directories (we don't need the complicated Windows code that is in ''get_start_directory()'' at the moment).&lt;/div&gt;</summary>
		<author><name>Tavmjong</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Files:_Save&amp;diff=123037</id>
		<title>Files: Save</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Files:_Save&amp;diff=123037"/>
		<updated>2024-09-30T14:42:54Z</updated>

		<summary type="html">&lt;p&gt;Tavmjong: /* Export */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''Italic text''&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
With native file dialogs, we cannot add features such as check boxes for options (&amp;quot;Choices&amp;quot;). We also cannot obtain information about which file filter is selected. This breaks are current method for using file dialogs to influence how files are saved. In particular, we cannot have a checkbox to &amp;quot;Save as 1.1 SVG&amp;quot;, nor can we use the file filter setting to distinguish between saving as &amp;quot;Inkscape SVG&amp;quot; or &amp;quot;Plain SVG&amp;quot;. Native file dialogs are simply useful for choosing file names, nothing more, nothing less.&lt;br /&gt;
&lt;br /&gt;
It's important to recognize that the Gtk::FileDialog class is NOT derived from a widget thus we cannot not change the insides. This is a necessity born from using native dialogs.&lt;br /&gt;
&lt;br /&gt;
Our current (Inkscape 1.4) situation spreads options for how SVG's are saved across several places. Choosing Inkscape or Plain SVG's is done in the File menu, selecting to save to SVG 2 or SVG 1.1 is done in the File dialog, selecting which SVG 2 features are converted to SVG 1.1 fallbacks is done in the Preferences dialog. It would be better to have all of this in one place.&lt;br /&gt;
&lt;br /&gt;
The Export dialog has received a lot of love over the past few years. However, it currently can handle only a subset of the file types that Inkscape can export to.&lt;br /&gt;
&lt;br /&gt;
See also [[Files: Output|2018 proposal]].&lt;br /&gt;
&lt;br /&gt;
== Proposal ==&lt;br /&gt;
&lt;br /&gt;
With GTK4 Inkscape, all &amp;quot;Export&amp;quot; is done through the Export dialog, where &amp;quot;Export&amp;quot; is defined as saving a document to any form other than Inkscape SVG.&lt;br /&gt;
&lt;br /&gt;
''The File menu will contain these options:''&lt;br /&gt;
&lt;br /&gt;
=== Save ===&lt;br /&gt;
&lt;br /&gt;
Save a document to Inkscape SVG.&lt;br /&gt;
* If a document does not contain a stored filename, open up File dialog to choose a filename.&lt;br /&gt;
* Update internal Inkscape version and filename. Clear modified flag.&lt;br /&gt;
* Save.&lt;br /&gt;
* If save fails, revert internal Inkcape version and filename. Restore modified flag.&lt;br /&gt;
&lt;br /&gt;
=== Save as... ===&lt;br /&gt;
&lt;br /&gt;
Save a document as Inkscape SVG with a new different filename.&lt;br /&gt;
* Open up File dialog to choose a filename.&lt;br /&gt;
* Update internal Inkscape version and filename. Clear modified flag.&lt;br /&gt;
* Save.&lt;br /&gt;
* If save fails, revert internal Inkcape version and filename. Restore modified flag.&lt;br /&gt;
&lt;br /&gt;
=== Save a copy... ===&lt;br /&gt;
Save a document as Inkscape SVG with a new different filename, not updating internals.&lt;br /&gt;
&lt;br /&gt;
* Open up File dialog to choose a filename.&lt;br /&gt;
* Update internal Inkscape version and filename.&lt;br /&gt;
* Save.&lt;br /&gt;
* Revert internal Inkcape version and filename. Restore modified flag.&lt;br /&gt;
&lt;br /&gt;
=== Save Template... ===&lt;br /&gt;
Save a document as an Inkscape template.&lt;br /&gt;
&lt;br /&gt;
=== Export ===&lt;br /&gt;
[[File:Save File Types 1.4.x.png|thumb|File types from the 1.4.x Save dialog.]]&lt;br /&gt;
&lt;br /&gt;
Export document to a non Inkscape SVG format.&lt;br /&gt;
&lt;br /&gt;
* Open up Export dialog to choose export file type and options..&lt;br /&gt;
&lt;br /&gt;
Options shown are based on selected file type.&lt;br /&gt;
&lt;br /&gt;
The 1.4.x Export dialog currently handles: PNG, Inkscape SVG (no SVG specific options), Plain SVG, JPEG (with a big warning), TIFF, and WebP. The types the 1.4.x Save dialog handles are shown in the figure.&lt;br /&gt;
&lt;br /&gt;
I'm wondering about which file types we should still support. For example, AutoCAD R12 is from 1992 and R14 is from 1997. Flash is long deprecated, with any kind of support ending in 2020.&lt;br /&gt;
&lt;br /&gt;
Note ''WebP'' is only available from the Export dialog.&lt;br /&gt;
&lt;br /&gt;
=== Export Overwrite ===&lt;br /&gt;
''New (needs some thought)'' Export document, overwriting.&lt;br /&gt;
&lt;br /&gt;
* Export to same format as import or to the previously used export filetype.&lt;br /&gt;
* No File dialog used.&lt;br /&gt;
&lt;br /&gt;
== Unification ==&lt;br /&gt;
&lt;br /&gt;
We have export from the command line and we have export from the Export dialog. These should be unified. It should be possible to set any values from the command line that you can set within the Export dialog. This can be done either of two ways:&lt;br /&gt;
&lt;br /&gt;
# Adapt the file export class used to track export options to handle more options.&lt;br /&gt;
# Rely completely on setting preferences as is done by the Export dialog.&lt;br /&gt;
&lt;br /&gt;
The first means that options are temporary, the second means options are stored in the Preferences file. The second method is probably easier.&lt;br /&gt;
&lt;br /&gt;
== Notes on File dialogs ==&lt;br /&gt;
&lt;br /&gt;
We don't need to check on overwriting files ourselves. The file dialogs on all there platforms already have overwrite protection (verify for Windows).&lt;br /&gt;
&lt;br /&gt;
=== Linux ===&lt;br /&gt;
&lt;br /&gt;
=== MacOS ===&lt;br /&gt;
&lt;br /&gt;
The MacOS dialog will add a file extension if it doesn't already exist based on the File type filter setting (if the filter setting is set to a single file type).&lt;br /&gt;
&lt;br /&gt;
=== Windows ===&lt;br /&gt;
&lt;br /&gt;
== Questions ==&lt;br /&gt;
&lt;br /&gt;
=== Directories ===&lt;br /&gt;
We keep track of the last directories for various file dialogues in preferences. A couple dialogs will fallback to the Windows' Document directory if a preference is not set. Is this desired behavior? Should it be that way on all platforms? Should it be that way for all file dialogs? If the Document directory does not exist, should we fallback to the Home directory? Glib makes it easy to find these directories (we don't need the complicated Windows code that is in ''get_start_directory()'' at the moment).&lt;/div&gt;</summary>
		<author><name>Tavmjong</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Files:_Save&amp;diff=123036</id>
		<title>Files: Save</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Files:_Save&amp;diff=123036"/>
		<updated>2024-09-30T14:32:31Z</updated>

		<summary type="html">&lt;p&gt;Tavmjong: /* Export */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''Italic text''&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
With native file dialogs, we cannot add features such as check boxes for options (&amp;quot;Choices&amp;quot;). We also cannot obtain information about which file filter is selected. This breaks are current method for using file dialogs to influence how files are saved. In particular, we cannot have a checkbox to &amp;quot;Save as 1.1 SVG&amp;quot;, nor can we use the file filter setting to distinguish between saving as &amp;quot;Inkscape SVG&amp;quot; or &amp;quot;Plain SVG&amp;quot;. Native file dialogs are simply useful for choosing file names, nothing more, nothing less.&lt;br /&gt;
&lt;br /&gt;
It's important to recognize that the Gtk::FileDialog class is NOT derived from a widget thus we cannot not change the insides. This is a necessity born from using native dialogs.&lt;br /&gt;
&lt;br /&gt;
Our current (Inkscape 1.4) situation spreads options for how SVG's are saved across several places. Choosing Inkscape or Plain SVG's is done in the File menu, selecting to save to SVG 2 or SVG 1.1 is done in the File dialog, selecting which SVG 2 features are converted to SVG 1.1 fallbacks is done in the Preferences dialog. It would be better to have all of this in one place.&lt;br /&gt;
&lt;br /&gt;
The Export dialog has received a lot of love over the past few years. However, it currently can handle only a subset of the file types that Inkscape can export to.&lt;br /&gt;
&lt;br /&gt;
See also [[Files: Output|2018 proposal]].&lt;br /&gt;
&lt;br /&gt;
== Proposal ==&lt;br /&gt;
&lt;br /&gt;
With GTK4 Inkscape, all &amp;quot;Export&amp;quot; is done through the Export dialog, where &amp;quot;Export&amp;quot; is defined as saving a document to any form other than Inkscape SVG.&lt;br /&gt;
&lt;br /&gt;
''The File menu will contain these options:''&lt;br /&gt;
&lt;br /&gt;
=== Save ===&lt;br /&gt;
&lt;br /&gt;
Save a document to Inkscape SVG.&lt;br /&gt;
* If a document does not contain a stored filename, open up File dialog to choose a filename.&lt;br /&gt;
* Update internal Inkscape version and filename. Clear modified flag.&lt;br /&gt;
* Save.&lt;br /&gt;
* If save fails, revert internal Inkcape version and filename. Restore modified flag.&lt;br /&gt;
&lt;br /&gt;
=== Save as... ===&lt;br /&gt;
&lt;br /&gt;
Save a document as Inkscape SVG with a new different filename.&lt;br /&gt;
* Open up File dialog to choose a filename.&lt;br /&gt;
* Update internal Inkscape version and filename. Clear modified flag.&lt;br /&gt;
* Save.&lt;br /&gt;
* If save fails, revert internal Inkcape version and filename. Restore modified flag.&lt;br /&gt;
&lt;br /&gt;
=== Save a copy... ===&lt;br /&gt;
Save a document as Inkscape SVG with a new different filename, not updating internals.&lt;br /&gt;
&lt;br /&gt;
* Open up File dialog to choose a filename.&lt;br /&gt;
* Update internal Inkscape version and filename.&lt;br /&gt;
* Save.&lt;br /&gt;
* Revert internal Inkcape version and filename. Restore modified flag.&lt;br /&gt;
&lt;br /&gt;
=== Save Template... ===&lt;br /&gt;
Save a document as an Inkscape template.&lt;br /&gt;
&lt;br /&gt;
=== Export ===&lt;br /&gt;
[[File:Save File Types 1.4.x.png|thumb|File types from the 1.4.x Save dialog.]]&lt;br /&gt;
&lt;br /&gt;
Export document to a non Inkscape SVG format.&lt;br /&gt;
&lt;br /&gt;
* Open up Export dialog to choose export file type and options..&lt;br /&gt;
&lt;br /&gt;
Options shown are based on selected file type.&lt;br /&gt;
&lt;br /&gt;
The 1.4.x Export dialog currently handles: PNG, Inkscape SVG (no SVG specific options), Plain SVG, JPEG (with a big warning), TIFF, and WebP. The types the 1.4.x Save dialog handles are shown in the figure.&lt;br /&gt;
&lt;br /&gt;
I'm wondering about which file types we should still support. For example, AutoCAD R12 is from 1992 and R14 is from 1997. Flash is long deprecated, with any kind of support ending in 2020.&lt;br /&gt;
&lt;br /&gt;
=== Export Overwrite ===&lt;br /&gt;
''New (needs some thought)'' Export document, overwriting.&lt;br /&gt;
&lt;br /&gt;
* Export to same format as import or to the previously used export filetype.&lt;br /&gt;
* No File dialog used.&lt;br /&gt;
&lt;br /&gt;
== Unification ==&lt;br /&gt;
&lt;br /&gt;
We have export from the command line and we have export from the Export dialog. These should be unified. It should be possible to set any values from the command line that you can set within the Export dialog. This can be done either of two ways:&lt;br /&gt;
&lt;br /&gt;
# Adapt the file export class used to track export options to handle more options.&lt;br /&gt;
# Rely completely on setting preferences as is done by the Export dialog.&lt;br /&gt;
&lt;br /&gt;
The first means that options are temporary, the second means options are stored in the Preferences file. The second method is probably easier.&lt;br /&gt;
&lt;br /&gt;
== Notes on File dialogs ==&lt;br /&gt;
&lt;br /&gt;
We don't need to check on overwriting files ourselves. The file dialogs on all there platforms already have overwrite protection (verify for Windows).&lt;br /&gt;
&lt;br /&gt;
=== Linux ===&lt;br /&gt;
&lt;br /&gt;
=== MacOS ===&lt;br /&gt;
&lt;br /&gt;
The MacOS dialog will add a file extension if it doesn't already exist based on the File type filter setting (if the filter setting is set to a single file type).&lt;br /&gt;
&lt;br /&gt;
=== Windows ===&lt;br /&gt;
&lt;br /&gt;
== Questions ==&lt;br /&gt;
&lt;br /&gt;
=== Directories ===&lt;br /&gt;
We keep track of the last directories for various file dialogues in preferences. A couple dialogs will fallback to the Windows' Document directory if a preference is not set. Is this desired behavior? Should it be that way on all platforms? Should it be that way for all file dialogs? If the Document directory does not exist, should we fallback to the Home directory? Glib makes it easy to find these directories (we don't need the complicated Windows code that is in ''get_start_directory()'' at the moment).&lt;/div&gt;</summary>
		<author><name>Tavmjong</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Files:_Save&amp;diff=123035</id>
		<title>Files: Save</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Files:_Save&amp;diff=123035"/>
		<updated>2024-09-30T14:31:04Z</updated>

		<summary type="html">&lt;p&gt;Tavmjong: /* Export */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''Italic text''&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
With native file dialogs, we cannot add features such as check boxes for options (&amp;quot;Choices&amp;quot;). We also cannot obtain information about which file filter is selected. This breaks are current method for using file dialogs to influence how files are saved. In particular, we cannot have a checkbox to &amp;quot;Save as 1.1 SVG&amp;quot;, nor can we use the file filter setting to distinguish between saving as &amp;quot;Inkscape SVG&amp;quot; or &amp;quot;Plain SVG&amp;quot;. Native file dialogs are simply useful for choosing file names, nothing more, nothing less.&lt;br /&gt;
&lt;br /&gt;
It's important to recognize that the Gtk::FileDialog class is NOT derived from a widget thus we cannot not change the insides. This is a necessity born from using native dialogs.&lt;br /&gt;
&lt;br /&gt;
Our current (Inkscape 1.4) situation spreads options for how SVG's are saved across several places. Choosing Inkscape or Plain SVG's is done in the File menu, selecting to save to SVG 2 or SVG 1.1 is done in the File dialog, selecting which SVG 2 features are converted to SVG 1.1 fallbacks is done in the Preferences dialog. It would be better to have all of this in one place.&lt;br /&gt;
&lt;br /&gt;
The Export dialog has received a lot of love over the past few years. However, it currently can handle only a subset of the file types that Inkscape can export to.&lt;br /&gt;
&lt;br /&gt;
See also [[Files: Output|2018 proposal]].&lt;br /&gt;
&lt;br /&gt;
== Proposal ==&lt;br /&gt;
&lt;br /&gt;
With GTK4 Inkscape, all &amp;quot;Export&amp;quot; is done through the Export dialog, where &amp;quot;Export&amp;quot; is defined as saving a document to any form other than Inkscape SVG.&lt;br /&gt;
&lt;br /&gt;
''The File menu will contain these options:''&lt;br /&gt;
&lt;br /&gt;
=== Save ===&lt;br /&gt;
&lt;br /&gt;
Save a document to Inkscape SVG.&lt;br /&gt;
* If a document does not contain a stored filename, open up File dialog to choose a filename.&lt;br /&gt;
* Update internal Inkscape version and filename. Clear modified flag.&lt;br /&gt;
* Save.&lt;br /&gt;
* If save fails, revert internal Inkcape version and filename. Restore modified flag.&lt;br /&gt;
&lt;br /&gt;
=== Save as... ===&lt;br /&gt;
&lt;br /&gt;
Save a document as Inkscape SVG with a new different filename.&lt;br /&gt;
* Open up File dialog to choose a filename.&lt;br /&gt;
* Update internal Inkscape version and filename. Clear modified flag.&lt;br /&gt;
* Save.&lt;br /&gt;
* If save fails, revert internal Inkcape version and filename. Restore modified flag.&lt;br /&gt;
&lt;br /&gt;
=== Save a copy... ===&lt;br /&gt;
Save a document as Inkscape SVG with a new different filename, not updating internals.&lt;br /&gt;
&lt;br /&gt;
* Open up File dialog to choose a filename.&lt;br /&gt;
* Update internal Inkscape version and filename.&lt;br /&gt;
* Save.&lt;br /&gt;
* Revert internal Inkcape version and filename. Restore modified flag.&lt;br /&gt;
&lt;br /&gt;
=== Save Template... ===&lt;br /&gt;
Save a document as an Inkscape template.&lt;br /&gt;
&lt;br /&gt;
=== Export ===&lt;br /&gt;
Export document to a non Inkscape SVG format.&lt;br /&gt;
&lt;br /&gt;
* Open up Export dialog to choose export file type and options..&lt;br /&gt;
&lt;br /&gt;
Options shown are based on selected file type.&lt;br /&gt;
&lt;br /&gt;
The 1.4.x Export dialog currently handles: PNG, Inkscape SVG (no SVG specific options), Plain SVG, JPEG (with a big warning), TIFF, and WebP. The types the 1.4.x Save dialog handles are shown in the figure.&lt;br /&gt;
&lt;br /&gt;
I'm wondering about which file types we should still support. For example, AutoCAD R12 is from 1992 and R14 is from 1997. Flash is long deprecated, with any kind of support ending in 2020.&lt;br /&gt;
[[File:Save File Types 1.4.x.png|thumb|File types from the 1.4.x Save dialog.]]&lt;br /&gt;
&lt;br /&gt;
=== Export Overwrite ===&lt;br /&gt;
''New (needs some thought)'' Export document, overwriting.&lt;br /&gt;
&lt;br /&gt;
* Export to same format as import or to the previously used export filetype.&lt;br /&gt;
* No File dialog used.&lt;br /&gt;
&lt;br /&gt;
== Unification ==&lt;br /&gt;
&lt;br /&gt;
We have export from the command line and we have export from the Export dialog. These should be unified. It should be possible to set any values from the command line that you can set within the Export dialog. This can be done either of two ways:&lt;br /&gt;
&lt;br /&gt;
# Adapt the file export class used to track export options to handle more options.&lt;br /&gt;
# Rely completely on setting preferences as is done by the Export dialog.&lt;br /&gt;
&lt;br /&gt;
The first means that options are temporary, the second means options are stored in the Preferences file. The second method is probably easier.&lt;br /&gt;
&lt;br /&gt;
== Notes on File dialogs ==&lt;br /&gt;
&lt;br /&gt;
We don't need to check on overwriting files ourselves. The file dialogs on all there platforms already have overwrite protection (verify for Windows).&lt;br /&gt;
&lt;br /&gt;
=== Linux ===&lt;br /&gt;
&lt;br /&gt;
=== MacOS ===&lt;br /&gt;
&lt;br /&gt;
The MacOS dialog will add a file extension if it doesn't already exist based on the File type filter setting (if the filter setting is set to a single file type).&lt;br /&gt;
&lt;br /&gt;
=== Windows ===&lt;br /&gt;
&lt;br /&gt;
== Questions ==&lt;br /&gt;
&lt;br /&gt;
=== Directories ===&lt;br /&gt;
We keep track of the last directories for various file dialogues in preferences. A couple dialogs will fallback to the Windows' Document directory if a preference is not set. Is this desired behavior? Should it be that way on all platforms? Should it be that way for all file dialogs? If the Document directory does not exist, should we fallback to the Home directory? Glib makes it easy to find these directories (we don't need the complicated Windows code that is in ''get_start_directory()'' at the moment).&lt;/div&gt;</summary>
		<author><name>Tavmjong</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=File:Save_File_Types_1.4.x.png&amp;diff=123034</id>
		<title>File:Save File Types 1.4.x.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=File:Save_File_Types_1.4.x.png&amp;diff=123034"/>
		<updated>2024-09-30T14:12:19Z</updated>

		<summary type="html">&lt;p&gt;Tavmjong: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A list of file types from the File Save dialog filter drop-down.&lt;/div&gt;</summary>
		<author><name>Tavmjong</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Files:_Save&amp;diff=123033</id>
		<title>Files: Save</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Files:_Save&amp;diff=123033"/>
		<updated>2024-09-30T14:06:10Z</updated>

		<summary type="html">&lt;p&gt;Tavmjong: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''Italic text''&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
With native file dialogs, we cannot add features such as check boxes for options (&amp;quot;Choices&amp;quot;). We also cannot obtain information about which file filter is selected. This breaks are current method for using file dialogs to influence how files are saved. In particular, we cannot have a checkbox to &amp;quot;Save as 1.1 SVG&amp;quot;, nor can we use the file filter setting to distinguish between saving as &amp;quot;Inkscape SVG&amp;quot; or &amp;quot;Plain SVG&amp;quot;. Native file dialogs are simply useful for choosing file names, nothing more, nothing less.&lt;br /&gt;
&lt;br /&gt;
It's important to recognize that the Gtk::FileDialog class is NOT derived from a widget thus we cannot not change the insides. This is a necessity born from using native dialogs.&lt;br /&gt;
&lt;br /&gt;
Our current (Inkscape 1.4) situation spreads options for how SVG's are saved across several places. Choosing Inkscape or Plain SVG's is done in the File menu, selecting to save to SVG 2 or SVG 1.1 is done in the File dialog, selecting which SVG 2 features are converted to SVG 1.1 fallbacks is done in the Preferences dialog. It would be better to have all of this in one place.&lt;br /&gt;
&lt;br /&gt;
The Export dialog has received a lot of love over the past few years. However, it currently can handle only a subset of the file types that Inkscape can export to.&lt;br /&gt;
&lt;br /&gt;
See also [[Files: Output|2018 proposal]].&lt;br /&gt;
&lt;br /&gt;
== Proposal ==&lt;br /&gt;
&lt;br /&gt;
With GTK4 Inkscape, all &amp;quot;Export&amp;quot; is done through the Export dialog, where &amp;quot;Export&amp;quot; is defined as saving a document to any form other than Inkscape SVG.&lt;br /&gt;
&lt;br /&gt;
''The File menu will contain these options:''&lt;br /&gt;
&lt;br /&gt;
=== Save ===&lt;br /&gt;
&lt;br /&gt;
Save a document to Inkscape SVG.&lt;br /&gt;
* If a document does not contain a stored filename, open up File dialog to choose a filename.&lt;br /&gt;
* Update internal Inkscape version and filename. Clear modified flag.&lt;br /&gt;
* Save.&lt;br /&gt;
* If save fails, revert internal Inkcape version and filename. Restore modified flag.&lt;br /&gt;
&lt;br /&gt;
=== Save as... ===&lt;br /&gt;
&lt;br /&gt;
Save a document as Inkscape SVG with a new different filename.&lt;br /&gt;
* Open up File dialog to choose a filename.&lt;br /&gt;
* Update internal Inkscape version and filename. Clear modified flag.&lt;br /&gt;
* Save.&lt;br /&gt;
* If save fails, revert internal Inkcape version and filename. Restore modified flag.&lt;br /&gt;
&lt;br /&gt;
=== Save a copy... ===&lt;br /&gt;
Save a document as Inkscape SVG with a new different filename, not updating internals.&lt;br /&gt;
&lt;br /&gt;
* Open up File dialog to choose a filename.&lt;br /&gt;
* Update internal Inkscape version and filename.&lt;br /&gt;
* Save.&lt;br /&gt;
* Revert internal Inkcape version and filename. Restore modified flag.&lt;br /&gt;
&lt;br /&gt;
=== Save Template... ===&lt;br /&gt;
Save a document as an Inkscape template.&lt;br /&gt;
&lt;br /&gt;
=== Export ===&lt;br /&gt;
Export document to a non Inkscape SVG format.&lt;br /&gt;
&lt;br /&gt;
* Open up Export dialog to choose export file type and options..&lt;br /&gt;
&lt;br /&gt;
Options shown are based on selected file type.&lt;br /&gt;
&lt;br /&gt;
=== Export Overwrite ===&lt;br /&gt;
''New (needs some thought)'' Export document, overwriting.&lt;br /&gt;
&lt;br /&gt;
* Export to same format as import or to the previously used export filetype.&lt;br /&gt;
* No File dialog used.&lt;br /&gt;
&lt;br /&gt;
== Unification ==&lt;br /&gt;
&lt;br /&gt;
We have export from the command line and we have export from the Export dialog. These should be unified. It should be possible to set any values from the command line that you can set within the Export dialog. This can be done either of two ways:&lt;br /&gt;
&lt;br /&gt;
# Adapt the file export class used to track export options to handle more options.&lt;br /&gt;
# Rely completely on setting preferences as is done by the Export dialog.&lt;br /&gt;
&lt;br /&gt;
The first means that options are temporary, the second means options are stored in the Preferences file. The second method is probably easier.&lt;br /&gt;
&lt;br /&gt;
== Notes on File dialogs ==&lt;br /&gt;
&lt;br /&gt;
We don't need to check on overwriting files ourselves. The file dialogs on all there platforms already have overwrite protection (verify for Windows).&lt;br /&gt;
&lt;br /&gt;
=== Linux ===&lt;br /&gt;
&lt;br /&gt;
=== MacOS ===&lt;br /&gt;
&lt;br /&gt;
The MacOS dialog will add a file extension if it doesn't already exist based on the File type filter setting (if the filter setting is set to a single file type).&lt;br /&gt;
&lt;br /&gt;
=== Windows ===&lt;br /&gt;
&lt;br /&gt;
== Questions ==&lt;br /&gt;
&lt;br /&gt;
=== Directories ===&lt;br /&gt;
We keep track of the last directories for various file dialogues in preferences. A couple dialogs will fallback to the Windows' Document directory if a preference is not set. Is this desired behavior? Should it be that way on all platforms? Should it be that way for all file dialogs? If the Document directory does not exist, should we fallback to the Home directory? Glib makes it easy to find these directories (we don't need the complicated Windows code that is in ''get_start_directory()'' at the moment).&lt;/div&gt;</summary>
		<author><name>Tavmjong</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Files:_Save&amp;diff=123032</id>
		<title>Files: Save</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Files:_Save&amp;diff=123032"/>
		<updated>2024-09-30T11:42:30Z</updated>

		<summary type="html">&lt;p&gt;Tavmjong: Created page with &amp;quot; == Introduction ==  With native file dialogs, we cannot add features such as check boxes for options (&amp;quot;Choices&amp;quot;). We also cannot obtain information about which file filter is...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
With native file dialogs, we cannot add features such as check boxes for options (&amp;quot;Choices&amp;quot;). We also cannot obtain information about which file filter is selected. This breaks are current method for using file dialogs to influence how files are saved. In particular, we cannot have a checkbox to &amp;quot;Save as 1.1 SVG&amp;quot;, nor can we use the file filter setting to distinguish between saving as &amp;quot;Inkscape SVG&amp;quot; or &amp;quot;Plain SVG&amp;quot;. Native file dialogs are simply useful for choosing file names, nothing more, nothing less.&lt;br /&gt;
&lt;br /&gt;
It's important to recognize that the Gtk::FileDialog class is NOT derived from a widget thus we cannot not change the insides. This is a necessity born from using native dialogs.&lt;br /&gt;
&lt;br /&gt;
Our current (Inkscape 1.4) situation spreads options for how SVG's are saved across several places. Choosing Inkscape or Plain SVG's is done in the File menu, selecting to save to SVG 2 or SVG 1.1 is done in the File dialog, selecting which SVG 2 features are converted to SVG 1.1 fallbacks is done in the Preferences dialog. It would be better to have all of this in one place.&lt;br /&gt;
&lt;br /&gt;
The Export dialog has received a lot of love over the past few years. However, it currently can handle only a subset of the file types that Inkscape can export to.&lt;br /&gt;
&lt;br /&gt;
See also [[Files: Output|2018 proposal]].&lt;br /&gt;
&lt;br /&gt;
== Proposal ==&lt;br /&gt;
&lt;br /&gt;
With GTK4 Inkscape, all &amp;quot;Export&amp;quot; is done through the Export dialog, where &amp;quot;Export&amp;quot; is defined as saving a document to any form other than Inkscape SVG.&lt;br /&gt;
&lt;br /&gt;
''The File menu will contain these options:''&lt;br /&gt;
&lt;br /&gt;
=== Save ===&lt;br /&gt;
&lt;br /&gt;
Save a document to Inkscape SVG.&lt;br /&gt;
* If a document does not contain a stored filename, open up File dialog to choose a filename.&lt;br /&gt;
* Update internal Inkscape version and filename. Clear modified flag.&lt;br /&gt;
* Save.&lt;br /&gt;
* If save fails, revert internal Inkcape version and filename. Restore modified flag.&lt;br /&gt;
&lt;br /&gt;
=== Save as... ===&lt;br /&gt;
&lt;br /&gt;
Save a document as Inkscape SVG with a new different filename.&lt;br /&gt;
* Open up File dialog to choose a filename.&lt;br /&gt;
* Update internal Inkscape version and filename. Clear modified flag.&lt;br /&gt;
* Save.&lt;br /&gt;
* If save fails, revert internal Inkcape version and filename. Restore modified flag.&lt;br /&gt;
&lt;br /&gt;
=== Save a copy... ===&lt;br /&gt;
Save a document as Inkscape SVG with a new different filename, not updating internals.&lt;br /&gt;
&lt;br /&gt;
* Open up File dialog to choose a filename.&lt;br /&gt;
* Update internal Inkscape version and filename.&lt;br /&gt;
* Save.&lt;br /&gt;
* Revert internal Inkcape version and filename. Restore modified flag.&lt;br /&gt;
&lt;br /&gt;
=== Save Template... ===&lt;br /&gt;
Save a document as an Inkscape template.&lt;br /&gt;
&lt;br /&gt;
=== Export ===&lt;br /&gt;
Export document to a non Inkscape SVG format.&lt;br /&gt;
&lt;br /&gt;
* Open up Export dialog to choose export file type and options..&lt;br /&gt;
&lt;br /&gt;
Options shown are based on selected file type.&lt;br /&gt;
&lt;br /&gt;
=== Export Overwrite ===&lt;br /&gt;
''New (needs some thought)'' Export document, overwriting.&lt;br /&gt;
&lt;br /&gt;
* Export to same format as import or to the previously used export filetype.&lt;br /&gt;
* No File dialog used.&lt;/div&gt;</summary>
		<author><name>Tavmjong</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Tracking_Dependencies&amp;diff=123031</id>
		<title>Tracking Dependencies</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Tracking_Dependencies&amp;diff=123031"/>
		<updated>2024-09-25T09:10:25Z</updated>

		<summary type="html">&lt;p&gt;Tavmjong: /* Distros */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Compilers ==&lt;br /&gt;
&lt;br /&gt;
* Version 1.0 requires a C++11 compiler.&lt;br /&gt;
* Version 1.1 requires a C++17 compiler.&lt;br /&gt;
* Version 1.4 requires a C++20 compiler.&lt;br /&gt;
&lt;br /&gt;
See [[c++11]], [[c++17]], and [[C++20]].&lt;br /&gt;
&lt;br /&gt;
== Libs ==&lt;br /&gt;
&lt;br /&gt;
C++ bindings are not included, since their required versions match those of the C counterparts.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Library&lt;br /&gt;
! v 0.92&lt;br /&gt;
! v 1.0&lt;br /&gt;
! v 1.1&lt;br /&gt;
! v 1.2&lt;br /&gt;
! v 1.3&lt;br /&gt;
! master&lt;br /&gt;
! gtk4&lt;br /&gt;
|-&lt;br /&gt;
| Boehm-GC&lt;br /&gt;
| 7.2&lt;br /&gt;
| 7.2&lt;br /&gt;
| 7.2&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Cairo&lt;br /&gt;
| 1.14&lt;br /&gt;
| 1.14 (1.15.4 required for PDF links)&lt;br /&gt;
| 1.16*&lt;br /&gt;
| 1.16&lt;br /&gt;
| 1.16&lt;br /&gt;
|&lt;br /&gt;
| 1.16**&lt;br /&gt;
|-&lt;br /&gt;
| double-conversion [https://github.com/google/double-conversion]&amp;lt;br/&amp;gt;''(lib2geom dependency)''&lt;br /&gt;
| ''(not required)''&lt;br /&gt;
| any&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| FreeType&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 2.9* (Required for Variable fonts)&lt;br /&gt;
| 2.9&lt;br /&gt;
| 2.9&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| GDL&lt;br /&gt;
| N/A&amp;lt;br /&amp;gt;(3.4)&lt;br /&gt;
| 3.4&lt;br /&gt;
| Not Used&lt;br /&gt;
| Not Used&lt;br /&gt;
| Not Used&lt;br /&gt;
| Not Used&lt;br /&gt;
|-&lt;br /&gt;
| Glib&lt;br /&gt;
| 2.28&lt;br /&gt;
| 2.48&lt;br /&gt;
| 2.56 or 2.62*&lt;br /&gt;
| 2.64&lt;br /&gt;
| 2.64&lt;br /&gt;
|&lt;br /&gt;
| 2.68**&lt;br /&gt;
|-&lt;br /&gt;
| GTK+&lt;br /&gt;
| 2.24&amp;lt;br /&amp;gt;(3.8)&lt;br /&gt;
| 3.22&lt;br /&gt;
| 3.24*&lt;br /&gt;
| 3.24&lt;br /&gt;
| 3.24&lt;br /&gt;
|&lt;br /&gt;
| 4.12&amp;lt;sup&amp;gt;+&amp;lt;/sup&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| GNU Scientific Library&lt;br /&gt;
| ?&lt;br /&gt;
| ?&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| HarfBuzz&lt;br /&gt;
| ?&lt;br /&gt;
| ?&lt;br /&gt;
| 2.2*&lt;br /&gt;
| 2.6&lt;br /&gt;
| 2.6&lt;br /&gt;
| 2.6.5*&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| libsigc++&lt;br /&gt;
| ''2.0.12*''&lt;br /&gt;
| ''2.0.12*''&lt;br /&gt;
| ''2.0.12*''&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 3.0**&lt;br /&gt;
|-&lt;br /&gt;
| libSoup&lt;br /&gt;
| ''(not required)''&lt;br /&gt;
| (any)&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| libpotrace&lt;br /&gt;
| ''(not required)''&lt;br /&gt;
| (any)&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| libxml&lt;br /&gt;
| ''2.6.11*''&lt;br /&gt;
| ''2.6.11*''&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| libxslt&lt;br /&gt;
| ''1.0.15*''&lt;br /&gt;
| ''1.0.15*''&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| lcms&lt;br /&gt;
| 1.13&lt;br /&gt;
| 2.2&lt;br /&gt;
| 2.2 (2.9*)&lt;br /&gt;
| 2.9*&lt;br /&gt;
| 2.9*&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Pango&lt;br /&gt;
| 1.24&lt;br /&gt;
| 1.24 (1.41.1 required for variable fonts)&lt;br /&gt;
| 1.42*&lt;br /&gt;
| 1.44&lt;br /&gt;
| 1.44 (HarfBuzz shaping)&lt;br /&gt;
|&lt;br /&gt;
| 2.48**&lt;br /&gt;
|-&lt;br /&gt;
| Poppler&lt;br /&gt;
| 0.20.0&lt;br /&gt;
| 0.20.0&lt;br /&gt;
| 0.29 (0.71*)&lt;br /&gt;
| 0.29 (0.71*)&lt;br /&gt;
| 0.71*&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [https://formulae.brew.sh/formula/gtk-mac-integration gtk-mac-integration]&amp;lt;br&amp;gt;[https://www.macports.org/ports.php?by=library&amp;amp;substr=gtk-osx-application-gtk3 gtk-osx-application-gtk3]&lt;br /&gt;
| N/A&lt;br /&gt;
| 2.0.8 ([[CompilingMacOsX|macOS only]])&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
''* Tentative dependency''&lt;br /&gt;
&lt;br /&gt;
* Pango 1.42.2 requires Harfbuzz 1.4.2&lt;br /&gt;
* Pango 1.44.0 requires Glib 2.59.2 and Harfbuzz 2.0. 1.44 exposes hb_font directly.&lt;br /&gt;
* Pango 1.45.1 requires Glib 2.60&lt;br /&gt;
* Pango 1.48.4 has vertical upright marks fix.&lt;br /&gt;
* Harfbuzz 4.1 changes glyph positioning for upright vertical text when font does not have vertical metrics (from glyph touching to of cell to being centered in cell).&lt;br /&gt;
&lt;br /&gt;
''** Gtkmm4 requires API changed Glibmm, Cairomm, and Pangomm. In particular, enums use child namespaces in newer libraries (Cairo::FORMAT_ARGB32 -&amp;gt; Cairo::Surface::Format::ARGB32).''&lt;br /&gt;
&lt;br /&gt;
''&amp;lt;sup&amp;gt;+&amp;lt;/sup&amp;gt; Decision at 5 Nov 2023 developer's meeting. Gtk4 4.10.1 has an important scrolling bug fix.''&lt;br /&gt;
&lt;br /&gt;
== Distros ==&lt;br /&gt;
&lt;br /&gt;
Note: This table is not relevant to (non-fink) MacOS X, where we ship the desired version with Inkscape.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Inkscape&amp;quot; column is default or distro version / oldest that builds - latest that builds. If no latest is given then that means trunk is expected to build on the given platform.&lt;br /&gt;
&lt;br /&gt;
e.g. for a distro that ships with 0.48 but should support building of trunk you might get:&lt;br /&gt;
 0.48 / 0.47-&lt;br /&gt;
&lt;br /&gt;
'''General rules:'''&lt;br /&gt;
* Support latest Debian Stable (as of feature freeze) [https://www.debian.org/distrib/packages Debian packages]&lt;br /&gt;
* Support latest Ubuntu LTS (as of feature freeze) [https://packages.ubuntu.com/ Ubuntu packages]&lt;br /&gt;
**e.g. Considering Inkscape 1.2, the latest Ubuntu LTS at '''feature freeze time''' (around February 2022) would have been Ubuntu 20.04. The latest LTS at release time (around May 2022), though, will be Ubuntu 22.04.  Therefore, according to the rule, we should support Ubuntu 20.04 LTS as the minimum version.&lt;br /&gt;
&lt;br /&gt;
* Support last two Fedora releases (as of feature freeze) [https://packages.fedoraproject.org/ Fedora packages]&lt;br /&gt;
* Don't break ''point'' releases.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Distro&lt;br /&gt;
! Inkscape&lt;br /&gt;
! gcc&amp;lt;sup&amp;gt;#&amp;lt;/sup&amp;gt;&lt;br /&gt;
! clang&amp;lt;sup&amp;gt;#&amp;lt;/sup&amp;gt;&lt;br /&gt;
! cairo&lt;br /&gt;
! cairomm&lt;br /&gt;
! freetype&lt;br /&gt;
! glib&lt;br /&gt;
! glibmm&lt;br /&gt;
! gtk+&lt;br /&gt;
! gtkmm&lt;br /&gt;
! harfbuzz&lt;br /&gt;
! pango&lt;br /&gt;
! poppler&lt;br /&gt;
! gdl&lt;br /&gt;
! lcms2&lt;br /&gt;
! libsigc++&lt;br /&gt;
! libgc &amp;lt;!-- Fedora rpm: gc --&amp;gt;&lt;br /&gt;
! libsoup&lt;br /&gt;
|-&lt;br /&gt;
| Windows MSYS2 (2021-04-14)&amp;lt;br/&amp;gt;([https://github.com/Alexpux/MINGW-packages mingw-w64 packages] from MSYS2 project)&lt;br /&gt;
  &amp;lt;!-- see http://quodlibet.duckdns.org/msys2/base for list of latest package versions --&amp;gt;&lt;br /&gt;
| 1.0.2&lt;br /&gt;
| 10.2.0&lt;br /&gt;
| 11.0.0&lt;br /&gt;
| 1.17.4&lt;br /&gt;
| 1.12.2&lt;br /&gt;
| 2.10.4&lt;br /&gt;
| 2.68.1&lt;br /&gt;
| 2.66.0&lt;br /&gt;
| 3.24.27&lt;br /&gt;
| 3.24.3&lt;br /&gt;
| 2.8.0&lt;br /&gt;
| 1.48.4&lt;br /&gt;
| 20.12.1&lt;br /&gt;
| 3.34.0&lt;br /&gt;
| 2.12&lt;br /&gt;
| 2.10.6&lt;br /&gt;
| 8.0.4 &amp;lt;!-- mingw-w64-gc --&amp;gt;&lt;br /&gt;
| 2.72.0&lt;br /&gt;
|-&lt;br /&gt;
| Debian 11 (Bullseye, oldstable) &amp;lt;small&amp;gt;EOL 2026&amp;lt;/small&amp;gt;&lt;br /&gt;
| 1.0.2&lt;br /&gt;
| 10.2.1&lt;br /&gt;
| 13.0.1&lt;br /&gt;
| 1.16&lt;br /&gt;
| 1.12.2&lt;br /&gt;
| 2.10.4&lt;br /&gt;
| 2.66.8&lt;br /&gt;
| 2.64.2&lt;br /&gt;
| 3.24.24&lt;br /&gt;
| 3.24.2&lt;br /&gt;
| 2.7.4&lt;br /&gt;
| 1.46.2&lt;br /&gt;
| 20.09.0&lt;br /&gt;
| 3.34.0&lt;br /&gt;
| 2.12&lt;br /&gt;
| 2.10.4&lt;br /&gt;
| 8.0.4&lt;br /&gt;
| 2.72.0&lt;br /&gt;
|-&lt;br /&gt;
| Debian 12 (Bookworm, stable) &amp;lt;small&amp;gt;EOL 2028?&amp;lt;/small&amp;gt;&lt;br /&gt;
| 1.2.2&lt;br /&gt;
| 12.2.0&lt;br /&gt;
| 15.0.6&lt;br /&gt;
| 1.16.0&lt;br /&gt;
| 1.12.1&lt;br /&gt;
| 2.10.4&lt;br /&gt;
| 2.74.5&lt;br /&gt;
| 2.74.0&lt;br /&gt;
| 3.24.36&amp;lt;br /&amp;gt;4.8.3&lt;br /&gt;
| 3.24.7&amp;lt;br /&amp;gt;4.8.0&lt;br /&gt;
| 6.0.0&lt;br /&gt;
| 1.50.12&lt;br /&gt;
| 22.12.0&lt;br /&gt;
| 3.40.0&lt;br /&gt;
| 2.14.1&lt;br /&gt;
| 2.12.0&amp;lt;br /&amp;gt;3.4.0&lt;br /&gt;
| 8.2.2&lt;br /&gt;
| 2.74.03&amp;lt;br /&amp;gt;3.2.2&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu 22.04 LTS (Jammy Jellyfish) &amp;lt;small&amp;gt;EOL 2027-04&amp;lt;/small&amp;gt;&lt;br /&gt;
| 1.1.2&lt;br /&gt;
| 12.3.0&lt;br /&gt;
| 15.0.7&lt;br /&gt;
| 1.16.0&lt;br /&gt;
| 1.12.2&lt;br /&gt;
| 2.11.1&lt;br /&gt;
| 2.72.1&lt;br /&gt;
| 2.66.2&lt;br /&gt;
| 3.24.33&amp;lt;br /&amp;gt;4.6.2&lt;br /&gt;
| 3.24.5&amp;lt;br /&amp;gt;no libgtkmm-4.0&lt;br /&gt;
| 2.7.4&lt;br /&gt;
| 1.50.6&lt;br /&gt;
| 22.02.0&lt;br /&gt;
| 3.40.0&lt;br /&gt;
| 2.12-rc1&lt;br /&gt;
| 2.10.4&lt;br /&gt;
| 8.0.6&lt;br /&gt;
| 2.74.2&amp;lt;br /&amp;gt;3.0.5&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu 23.10 (Mantic)&lt;br /&gt;
| 1.2.2&lt;br /&gt;
| 13.2.0&lt;br /&gt;
| 16.0.0&amp;lt;br /&amp;gt;(17.0.2)&lt;br /&gt;
| 1.14.4&amp;lt;br /&amp;gt;1.16.0&lt;br /&gt;
| 1.14.4&amp;lt;br /&amp;gt;1.16.2&lt;br /&gt;
| 2.13.1&lt;br /&gt;
| 2.78.0&lt;br /&gt;
| 2.66.6&amp;lt;br /&amp;gt;2.78.0&lt;br /&gt;
| 3.24.38&amp;lt;br /&amp;gt;4.12.2&lt;br /&gt;
| 3.24.8&amp;lt;br /&amp;gt;4.10.0&lt;br /&gt;
| 8.0.1&lt;br /&gt;
| 1.51.0&amp;lt;br /&amp;gt;2.50.1&lt;br /&gt;
| 23.08.0&lt;br /&gt;
| 3.40.0&lt;br /&gt;
| 2.14.2&lt;br /&gt;
| 2.12.0&amp;lt;br /&amp;gt;3.4.0&lt;br /&gt;
| 8.2.4&lt;br /&gt;
| 2.74.3&amp;lt;br /&amp;gt;3.4.2&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu 24.04 LTS (Noble) &amp;lt;small&amp;gt;EOL 2029-04&amp;lt;/small&amp;gt;&lt;br /&gt;
| 1.2.2&lt;br /&gt;
| 13.2.0&lt;br /&gt;
| 18.0.0&amp;lt;br /&amp;gt;(18.1.3)&lt;br /&gt;
| 1.18.0&lt;br /&gt;
| 1.14.5&amp;lt;br /&amp;gt;1.18.0&lt;br /&gt;
| 2.13.2&lt;br /&gt;
| 2.80.0&lt;br /&gt;
| 2.66.7&amp;lt;br /&amp;gt;2.78.1&lt;br /&gt;
| 3.24.41&amp;lt;br /&amp;gt;4.14.2&lt;br /&gt;
| 3.24.9&amp;lt;br /&amp;gt;4.10.0&lt;br /&gt;
| 8.3.0&lt;br /&gt;
| 1.52.1&amp;lt;br /&amp;gt;2.52.0&lt;br /&gt;
| 24.02.0&lt;br /&gt;
| 3.40.0&lt;br /&gt;
| 2.14.2&lt;br /&gt;
| 2.12.1&amp;lt;br /&amp;gt;3.6.0&lt;br /&gt;
| 8.2.6&lt;br /&gt;
| 2.74.3&amp;lt;br /&amp;gt;3.4.4&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu 24.10 (Oracular)&lt;br /&gt;
| 1.2.2&lt;br /&gt;
| 14.1.0&lt;br /&gt;
| 19.0&amp;lt;br /&amp;gt;(19.0)&lt;br /&gt;
| 1.18.2&lt;br /&gt;
| 1.14.5&amp;lt;br /&amp;gt;1.18.0&lt;br /&gt;
| 2.13.3&lt;br /&gt;
| 2.80.0&lt;br /&gt;
| 2.66.7&amp;lt;br /&amp;gt;2.82.0&lt;br /&gt;
| 3.24.43&amp;lt;br /&amp;gt;4.16.1&lt;br /&gt;
| 3.24.9&amp;lt;br /&amp;gt;4.16.0&lt;br /&gt;
| 9.0.0&lt;br /&gt;
| 1.54.0&amp;lt;br /&amp;gt;2.54.0&lt;br /&gt;
| 24.08.0&lt;br /&gt;
| 3.40.0&lt;br /&gt;
| 2.14.2&lt;br /&gt;
| 2.12.1&amp;lt;br /&amp;gt;3.6.0&lt;br /&gt;
| 8.2.6&lt;br /&gt;
| 2.74.3&amp;lt;br /&amp;gt;3.6.0&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;sup&amp;gt;#&amp;lt;/sup&amp;gt;Debian and Ubuntu offer multiple gcc and clang versions, latest available version listed.&lt;br /&gt;
&lt;br /&gt;
* Agreed to at Saarbrücken hackfest.&lt;br /&gt;
&lt;br /&gt;
== Getting and Installing Source packages ==&lt;br /&gt;
&lt;br /&gt;
See [https://inkscape.org/develop/getting-started/ Getting Started]&lt;br /&gt;
&lt;br /&gt;
== Optional Dependencies ==&lt;br /&gt;
&lt;br /&gt;
Inkscape will still compile without these, but some features may be missing if they are absent during compilation:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Library&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Needed for&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Default&lt;br /&gt;
|-&lt;br /&gt;
|aspell&lt;br /&gt;
|Dictionaries for spell checking&lt;br /&gt;
|On&lt;br /&gt;
|-&lt;br /&gt;
|libcdr&lt;br /&gt;
|Open Corel Draw files&lt;br /&gt;
|On&lt;br /&gt;
|-&lt;br /&gt;
|gettext/msgformat&lt;br /&gt;
|Translation support&lt;br /&gt;
|On&lt;br /&gt;
|-&lt;br /&gt;
|gtest/gmock&lt;br /&gt;
|Automatted testing&lt;br /&gt;
|Off&lt;br /&gt;
|-&lt;br /&gt;
|gspell&lt;br /&gt;
|Spell checking&lt;br /&gt;
|On&lt;br /&gt;
|-&lt;br /&gt;
|imagemagick&lt;br /&gt;
|Bitmap editing extensions, bitmap import resolution&lt;br /&gt;
|On&lt;br /&gt;
|-&lt;br /&gt;
|jpeg&lt;br /&gt;
|jpeg import?&lt;br /&gt;
|On&lt;br /&gt;
|-&lt;br /&gt;
|OpenMP&lt;br /&gt;
|Multi-threaded filter rendering&lt;br /&gt;
|On&lt;br /&gt;
|-&lt;br /&gt;
|scour&lt;br /&gt;
|Save as Optimized SVG&lt;br /&gt;
|(not needed during compiling, Python)&lt;br /&gt;
|-&lt;br /&gt;
|libvisio&lt;br /&gt;
|Open Visio Files, use Visio stencils&lt;br /&gt;
|On&lt;br /&gt;
|-&lt;br /&gt;
|libwpg&lt;br /&gt;
|Open WordPerfect Graphics&lt;br /&gt;
|On&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:About Inkscape]]&lt;br /&gt;
[[Category:Developer Documentation]]&lt;/div&gt;</summary>
		<author><name>Tavmjong</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=C%2B%2B17&amp;diff=123030</id>
		<title>C++17</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=C%2B%2B17&amp;diff=123030"/>
		<updated>2024-09-25T08:44:19Z</updated>

		<summary type="html">&lt;p&gt;Tavmjong: /* Platform status */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Usage status ==&lt;br /&gt;
This table lists C++14 and C++17 features and whether they can be used in Inkscape or not (yet).&lt;br /&gt;
Add C++14 or C++17 features that you would like to use to the table, so that we know what to test for to increase the C++17 &amp;quot;allowance&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
See also [[C++11]], [[C++20]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Feature !! Since !! Can use? !! Comment&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;std::move&amp;lt;/code&amp;gt; and rvalues || C++11 ||  style=&amp;quot;background: lightgreen;&amp;quot; | from 1.0 || Allows passing ownership of internal resources between objects&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;enum class&amp;lt;/code&amp;gt; || C++11 ||  style=&amp;quot;background: lightgreen;&amp;quot; | from 1.1 || Strong enum constants (take the name of the enum, can't be implicitly converted to &amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;std::make_unique&amp;lt;Foo&amp;gt;(…)&amp;lt;/code&amp;gt; || C++14 ||  style=&amp;quot;background: lightgreen;&amp;quot; | from 1.1 || Replaces &amp;lt;code&amp;gt;std::unique_ptr&amp;lt;Foo&amp;gt;(new Foo(…))&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;constexpr&amp;lt;/code&amp;gt; || C++14 ||  style=&amp;quot;background: lightgreen;&amp;quot; | from 1.1 || Declares a variable as usable in a const expression&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;if constexpr&amp;lt;/code&amp;gt; || C++17 ||  style=&amp;quot;background: lightgreen;&amp;quot; | from 1.1 || Guarantees the branches will be decided at compile-time&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;std::variant&amp;lt;…&amp;gt;&amp;lt;/code&amp;gt; || C++17 ||  style=&amp;quot;background: lightgreen;&amp;quot; | from 1.1 || Type-safe union, where the contained type is known at runtime&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;std::optional&amp;lt;…&amp;gt;&amp;lt;/code&amp;gt; || C++17 ||  style=&amp;quot;background: lightgreen;&amp;quot; | from 1.1 || Object type (not a pointer or reference) which can either exist or be &amp;lt;code&amp;gt;std::nullopt&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;auto [x, y] = foo();&amp;lt;/code&amp;gt; || C++17 ||  style=&amp;quot;background: lightgreen;&amp;quot; | from 1.1 || Structured binding, for returning more than a single value&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;namespace A::B::C&amp;lt;/code&amp;gt; || C++17 ||  style=&amp;quot;background: lightgreen;&amp;quot; | from 1.1 || Nested namespaces&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;inline static const int&amp;lt;/code&amp;gt; || C++17 ||  style=&amp;quot;background: lightgreen;&amp;quot; | from 1.1 || Inline variables (inside header files)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;std::filesystem&amp;lt;code&amp;gt; || C++17 || not yet || Filesystem library (may not be useful as we are using Gio::File).  Also only supported from gcc 8, and Ubuntu 18.04 only has gcc 7. MacOS also doesn't support this.&lt;br /&gt;
|-&lt;br /&gt;
| toxic feature of doom || || style=&amp;quot;background: red;&amp;quot; | NO || Never use this (in case we stumble upon C++14/C++17 features that we really don't like)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Platform status ==&lt;br /&gt;
&lt;br /&gt;
We need to keep coordinated with the section on [[Tracking_Dependencies#Distros|Distro Dependencies]].&lt;br /&gt;
&lt;br /&gt;
Also see this page:&lt;br /&gt;
* http://en.cppreference.com/w/cpp/compiler_support&lt;br /&gt;
&lt;br /&gt;
Note that &amp;lt;code&amp;gt;__cplusplus&amp;lt;/code&amp;gt; is always &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; for GCC 4.6 that is used on Windows. So &amp;lt;code&amp;gt;#if __cplusplus &amp;lt; 201103L&amp;lt;/code&amp;gt; or variants does not work to choose between C++03 or C++11 code.&lt;br /&gt;
&lt;br /&gt;
C++17 is well supported by all major compilers.&lt;br /&gt;
&lt;br /&gt;
Compiler version when feature complete:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!         !! GCC        !! Clang                                              !! MSVC                                        &lt;br /&gt;
|-&lt;br /&gt;
|C++17    || 7 (2017)   || 4   (2017) (5 for constexpr lambda expressions)    || 19.14 (2017)&lt;br /&gt;
|-&lt;br /&gt;
|C++20    || 10* (2020) || 10* (2020)                                         || 19.25*&lt;br /&gt;
|-&lt;br /&gt;
|C++23    || 14* (2024) || 14# (2022)                                         || 19.32#&lt;br /&gt;
|}&lt;br /&gt;
'*' Mostly complete&lt;br /&gt;
'#' About half complete&lt;/div&gt;</summary>
		<author><name>Tavmjong</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=CompilingMacOsX&amp;diff=122937</id>
		<title>CompilingMacOsX</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=CompilingMacOsX&amp;diff=122937"/>
		<updated>2024-06-24T15:16:53Z</updated>

		<summary type="html">&lt;p&gt;Tavmjong: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
= Using MacPorts =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:darkred;font-weight:bold&amp;quot;&amp;gt;OUT OF DATE&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you can build successfully with MacPorts, please update this file and remove above comment.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Download and install [http://www.macports.org/ MacPorts]&lt;br /&gt;
&amp;lt;li&amp;gt;Edit the MacPorts variants config (optional).&lt;br /&gt;
&amp;lt;br&amp;gt;Add this line to &amp;lt;code&amp;gt;/opt/local/etc/macports/variants.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;-x11 +quartz&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;In Terminal (Applications&amp;gt;Utilities&amp;gt;Terminal) type&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;sudo port install \&lt;br /&gt;
     adwaita-icon-theme \&lt;br /&gt;
     boehmgc \&lt;br /&gt;
     boost \&lt;br /&gt;
     cairo \&lt;br /&gt;
     ccache \&lt;br /&gt;
     cmake \&lt;br /&gt;
     double-conversion \&lt;br /&gt;
     gdl3 \&lt;br /&gt;
     gettext \&lt;br /&gt;
     gsl \&lt;br /&gt;
     gtkmm3 \&lt;br /&gt;
     gtk-osx-application-gtk3 \&lt;br /&gt;
     lcms2 \&lt;br /&gt;
     libsoup \&lt;br /&gt;
     libxslt \&lt;br /&gt;
     ninja \&lt;br /&gt;
     poppler \&lt;br /&gt;
     potrace \&lt;br /&gt;
     py-lxml \&lt;br /&gt;
     py-numpy \&lt;br /&gt;
     -x11 +quartz&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;In Terminal, get Inkscape&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;git clone --recurse-submodules https://gitlab.com/inkscape/inkscape.git&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;And build inkscape&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# use a clean MacPorts environment (optional)&lt;br /&gt;
LIBPREFIX=&amp;quot;/opt/local&amp;quot;&lt;br /&gt;
export PATH=&amp;quot;$LIBPREFIX/bin:/usr/bin:/bin:/usr/sbin:/sbin&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# where to install&lt;br /&gt;
PREFIX=&amp;quot;$PWD/install-prefix&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# where to build&lt;br /&gt;
mkdir build&lt;br /&gt;
cd build&lt;br /&gt;
&lt;br /&gt;
cmake \&lt;br /&gt;
    -G Ninja \&lt;br /&gt;
    -DCMAKE_PREFIX_PATH=&amp;quot;$LIBPREFIX&amp;quot; \&lt;br /&gt;
    -DCMAKE_INSTALL_PREFIX=&amp;quot;$PREFIX&amp;quot; \&lt;br /&gt;
    -DCMAKE_C_COMPILER_LAUNCHER=ccache \&lt;br /&gt;
    -DCMAKE_CXX_COMPILER_LAUNCHER=ccache \&lt;br /&gt;
    -DWITH_OPENMP=OFF \&lt;br /&gt;
    ../inkscape&lt;br /&gt;
&lt;br /&gt;
ninja&lt;br /&gt;
ninja install&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
''Note: Using [https://en.wikipedia.org/wiki/Ccache ccache] and [https://ninja-build.org/ ninja] is not required, but very common because it speeds up compilation.''&lt;br /&gt;
&amp;lt;li&amp;gt;Run Inkscape&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$PREFIX/bin/inkscape&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Using Homebrew =&lt;br /&gt;
&lt;br /&gt;
If you are using [https://brew.sh/ Homebrew] instead, you can still use the above guidelines with small modifications.&lt;br /&gt;
(Make sure you don't have any MacPorts stuff in your PATH.)&lt;br /&gt;
&lt;br /&gt;
List of '''packages''' to install with brew&lt;br /&gt;
(for Inkscape 1.4):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
brew install \&lt;br /&gt;
    adwaita-icon-theme \&lt;br /&gt;
    bdw-gc \&lt;br /&gt;
    boost \&lt;br /&gt;
    cairomm \&lt;br /&gt;
    ccache \&lt;br /&gt;
    cmake \&lt;br /&gt;
    double-conversion \&lt;br /&gt;
    gettext \&lt;br /&gt;
    gsl \&lt;br /&gt;
    gspell \&lt;br /&gt;
    gtk-mac-integration \&lt;br /&gt;
    gtkmm3 \&lt;br /&gt;
    imagemagick \&lt;br /&gt;
    intltool \&lt;br /&gt;
    lcms2 \&lt;br /&gt;
    libomp \&lt;br /&gt;
    libsoup@2 \&lt;br /&gt;
    libxslt \&lt;br /&gt;
    ninja \&lt;br /&gt;
    pkg-config \&lt;br /&gt;
    poppler \&lt;br /&gt;
    potrace&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You may substitute &amp;lt;code&amp;gt;imagemagick&amp;lt;/code&amp;gt; with &amp;lt;code&amp;gt;graphicsmagick&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;gtk-mac-integration&amp;lt;/code&amp;gt; is not needed with latest &amp;lt;code&amp;gt;1.2-dev&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Some keg-only libraries need to be added to &amp;lt;code&amp;gt;$PKG_CONFIG_PATH&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Some libraries can cause trouble if they are picked up from the SDK instead of Homebrew (observed with &amp;lt;code&amp;gt;libxslt&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;libxml2&amp;lt;/code&amp;gt;). Adding them to &amp;lt;code&amp;gt;$PKG_CONFIG_PATH&amp;lt;/code&amp;gt; should fix this.&lt;br /&gt;
&lt;br /&gt;
Check out the source if you haven't already:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;git clone --recurse-submodules https://gitlab.com/inkscape/inkscape.git&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then &amp;lt;code&amp;gt;cd inkscape&amp;lt;/code&amp;gt; and follow the steps below.&lt;br /&gt;
&lt;br /&gt;
Tested with:&lt;br /&gt;
* M1 MacBook Air with macOS 11.6 and Inkscape 1.2-dev&lt;br /&gt;
* M2 MacBook Air with macOS 13.0.1 and Inkscape 1.2.1, 1.2.x from git.&lt;br /&gt;
* M2 Mac Mini with macOS 14.2 and Inkscape 1.4-dev. (After adding pkg-config.)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# use a clean Homebrew environment (optional)&lt;br /&gt;
LIBPREFIX=&amp;quot;/opt/homebrew&amp;quot;&lt;br /&gt;
export PATH=&amp;quot;$LIBPREFIX/bin:/usr/bin:/bin:/usr/sbin:/sbin&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# keg-only libraries&lt;br /&gt;
export PKG_CONFIG_PATH=&amp;quot;$LIBPREFIX/opt/icu4c/lib/pkgconfig&amp;quot;&lt;br /&gt;
export PKG_CONFIG_PATH=&amp;quot;$PKG_CONFIG_PATH:$LIBPREFIX/opt/libsoup@2/lib/pkgconfig&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# prevent picking up libxslt and libxml2 from the (wrong) SDK&lt;br /&gt;
export PKG_CONFIG_PATH=&amp;quot;$PKG_CONFIG_PATH:$LIBPREFIX/opt/libxslt/lib/pkgconfig&amp;quot;&lt;br /&gt;
export PKG_CONFIG_PATH=&amp;quot;$PKG_CONFIG_PATH:$LIBPREFIX/opt/libxml2/lib/pkgconfig&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# where to install&lt;br /&gt;
PREFIX=&amp;quot;$PWD/install-prefix&amp;quot;&lt;br /&gt;
&lt;br /&gt;
mkdir -p build&lt;br /&gt;
cd build&lt;br /&gt;
&lt;br /&gt;
cmake \&lt;br /&gt;
    -G Ninja \&lt;br /&gt;
    -DCMAKE_SHARED_LINKER_FLAGS=&amp;quot;-L$LIBPREFIX/lib&amp;quot; \&lt;br /&gt;
    -DCMAKE_EXE_LINKER_FLAGS=&amp;quot;-L$LIBPREFIX/lib&amp;quot; \&lt;br /&gt;
    -DCMAKE_INSTALL_PREFIX=$PREFIX \&lt;br /&gt;
    -DCMAKE_C_COMPILER_LAUNCHER=ccache \&lt;br /&gt;
    -DCMAKE_CXX_COMPILER_LAUNCHER=ccache \&lt;br /&gt;
    -DWITH_DBUS=OFF \&lt;br /&gt;
    ..&lt;br /&gt;
&lt;br /&gt;
ninja&lt;br /&gt;
ninja install&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Packaging=&lt;br /&gt;
&lt;br /&gt;
If &amp;lt;code&amp;gt;$PREFIX/bin/inkscape&amp;lt;/code&amp;gt; works when executed and you want to turn it into an app or a DMG, have a look at the files inside the &amp;lt;code&amp;gt;inkscape/packaging/macos&amp;lt;/code&amp;gt; directory. More info can be found on upstream mibap:&lt;br /&gt;
&lt;br /&gt;
* https://github.com/dehesselle/mibap&lt;br /&gt;
&lt;br /&gt;
Follow the steps to install the toolset, package the app, and create a DMG. In case you use upstream mibap, you will get the app under &amp;lt;code&amp;gt;/Users/Shared/work/mibap-*/&amp;lt;/code&amp;gt; and you will get a DMG file in the same place you ran &amp;lt;code&amp;gt;./build_inkscape.sh&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=See also=&lt;br /&gt;
* [[Tracking Dependencies]]&lt;br /&gt;
* [[Extension requirements]]&lt;br /&gt;
*[[Compiling Inkscape]]&lt;br /&gt;
*[[Notes on Packaging for OS X]]&lt;br /&gt;
* https://github.com/valerioa/Inkscape-MacOS-Curated-Build&lt;br /&gt;
* [https://github.com/ipatch/homebrew-us-05/blob/master/inkscape/inkscape-building-for-macOS.md ipatch's collection of notes] about building Inkscape using Homebrew&lt;br /&gt;
&lt;br /&gt;
[[Category:Developer Documentation]]&lt;/div&gt;</summary>
		<author><name>Tavmjong</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=CompilingMacOsX&amp;diff=122936</id>
		<title>CompilingMacOsX</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=CompilingMacOsX&amp;diff=122936"/>
		<updated>2024-06-24T12:45:03Z</updated>

		<summary type="html">&lt;p&gt;Tavmjong: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:darkred;font-weight:bold&amp;quot;&amp;gt;OUT OF DATE&amp;lt;/span&amp;gt; See: https://gitlab.com/inkscape/deps/macos/-/tree/master&lt;br /&gt;
&lt;br /&gt;
If you can get MacPorts/Homebrew working, please update this file and remove above comment.&lt;br /&gt;
&lt;br /&gt;
= Using MacPorts =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Download and install [http://www.macports.org/ MacPorts]&lt;br /&gt;
&amp;lt;li&amp;gt;Edit the MacPorts variants config (optional).&lt;br /&gt;
&amp;lt;br&amp;gt;Add this line to &amp;lt;code&amp;gt;/opt/local/etc/macports/variants.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;-x11 +quartz&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;In Terminal (Applications&amp;gt;Utilities&amp;gt;Terminal) type&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;sudo port install \&lt;br /&gt;
     adwaita-icon-theme \&lt;br /&gt;
     boehmgc \&lt;br /&gt;
     boost \&lt;br /&gt;
     cairo \&lt;br /&gt;
     ccache \&lt;br /&gt;
     cmake \&lt;br /&gt;
     double-conversion \&lt;br /&gt;
     gdl3 \&lt;br /&gt;
     gettext \&lt;br /&gt;
     gsl \&lt;br /&gt;
     gtkmm3 \&lt;br /&gt;
     gtk-osx-application-gtk3 \&lt;br /&gt;
     lcms2 \&lt;br /&gt;
     libsoup \&lt;br /&gt;
     libxslt \&lt;br /&gt;
     ninja \&lt;br /&gt;
     poppler \&lt;br /&gt;
     potrace \&lt;br /&gt;
     py-lxml \&lt;br /&gt;
     py-numpy \&lt;br /&gt;
     -x11 +quartz&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;In Terminal, get Inkscape&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;git clone --recurse-submodules https://gitlab.com/inkscape/inkscape.git&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;And build inkscape&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# use a clean MacPorts environment (optional)&lt;br /&gt;
LIBPREFIX=&amp;quot;/opt/local&amp;quot;&lt;br /&gt;
export PATH=&amp;quot;$LIBPREFIX/bin:/usr/bin:/bin:/usr/sbin:/sbin&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# where to install&lt;br /&gt;
PREFIX=&amp;quot;$PWD/install-prefix&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# where to build&lt;br /&gt;
mkdir build&lt;br /&gt;
cd build&lt;br /&gt;
&lt;br /&gt;
cmake \&lt;br /&gt;
    -G Ninja \&lt;br /&gt;
    -DCMAKE_PREFIX_PATH=&amp;quot;$LIBPREFIX&amp;quot; \&lt;br /&gt;
    -DCMAKE_INSTALL_PREFIX=&amp;quot;$PREFIX&amp;quot; \&lt;br /&gt;
    -DCMAKE_C_COMPILER_LAUNCHER=ccache \&lt;br /&gt;
    -DCMAKE_CXX_COMPILER_LAUNCHER=ccache \&lt;br /&gt;
    -DWITH_OPENMP=OFF \&lt;br /&gt;
    ../inkscape&lt;br /&gt;
&lt;br /&gt;
ninja&lt;br /&gt;
ninja install&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
''Note: Using [https://en.wikipedia.org/wiki/Ccache ccache] and [https://ninja-build.org/ ninja] is not required, but very common because it speeds up compilation.''&lt;br /&gt;
&amp;lt;li&amp;gt;Run Inkscape&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$PREFIX/bin/inkscape&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Using Homebrew =&lt;br /&gt;
&lt;br /&gt;
If you are using [https://brew.sh/ Homebrew] instead, you can still use the above guidelines with small modifications.&lt;br /&gt;
&lt;br /&gt;
List of '''packages''' to install with brew&lt;br /&gt;
(for Inkscape 1.1):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
brew install \&lt;br /&gt;
    adwaita-icon-theme \&lt;br /&gt;
    bdw-gc \&lt;br /&gt;
    boost \&lt;br /&gt;
    cairomm \&lt;br /&gt;
    ccache \&lt;br /&gt;
    cmake \&lt;br /&gt;
    double-conversion \&lt;br /&gt;
    gettext \&lt;br /&gt;
    gsl \&lt;br /&gt;
    gspell \&lt;br /&gt;
    gtk-mac-integration \&lt;br /&gt;
    gtkmm3 \&lt;br /&gt;
    imagemagick \&lt;br /&gt;
    intltool \&lt;br /&gt;
    lcms2 \&lt;br /&gt;
    libomp \&lt;br /&gt;
    libsoup@2 \&lt;br /&gt;
    libxslt \&lt;br /&gt;
    ninja \&lt;br /&gt;
    poppler \&lt;br /&gt;
    potrace&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You may substitute &amp;lt;code&amp;gt;imagemagick&amp;lt;/code&amp;gt; with &amp;lt;code&amp;gt;graphicsmagick&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;gtk-mac-integration&amp;lt;/code&amp;gt; is not needed with latest &amp;lt;code&amp;gt;1.2-dev&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Some keg-only libraries need to be added to &amp;lt;code&amp;gt;$PKG_CONFIG_PATH&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Some libraries can cause trouble if they are picked up from the SDK instead of Homebrew (observed with &amp;lt;code&amp;gt;libxslt&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;libxml2&amp;lt;/code&amp;gt;). Adding them to &amp;lt;code&amp;gt;$PKG_CONFIG_PATH&amp;lt;/code&amp;gt; should fix this.&lt;br /&gt;
&lt;br /&gt;
Check out the source if you haven't already:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;git clone --recurse-submodules https://gitlab.com/inkscape/inkscape.git&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then &amp;lt;code&amp;gt;cd inkscape&amp;lt;/code&amp;gt; and follow the steps below.&lt;br /&gt;
&lt;br /&gt;
This was tested on an M1 MacBook Air with macOS 11.6 and Inkscape 1.2-dev, and an M2 MacBook Air with macOS 13.0.1 and Inkscape 1.2.1, 1.2.x from git.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# use a clean Homebrew environment (optional)&lt;br /&gt;
LIBPREFIX=&amp;quot;/opt/homebrew&amp;quot;&lt;br /&gt;
export PATH=&amp;quot;$LIBPREFIX/bin:/usr/bin:/bin:/usr/sbin:/sbin&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# keg-only libraries&lt;br /&gt;
export PKG_CONFIG_PATH=&amp;quot;$LIBPREFIX/opt/icu4c/lib/pkgconfig&amp;quot;&lt;br /&gt;
export PKG_CONFIG_PATH=&amp;quot;$PKG_CONFIG_PATH:$LIBPREFIX/opt/libsoup@2/lib/pkgconfig&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# prevent picking up libxslt and libxml2 from the (wrong) SDK&lt;br /&gt;
export PKG_CONFIG_PATH=&amp;quot;$PKG_CONFIG_PATH:$LIBPREFIX/opt/libxslt/lib/pkgconfig&amp;quot;&lt;br /&gt;
export PKG_CONFIG_PATH=&amp;quot;$PKG_CONFIG_PATH:$LIBPREFIX/opt/libxml2/lib/pkgconfig&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# where to install&lt;br /&gt;
PREFIX=&amp;quot;$PWD/install-prefix&amp;quot;&lt;br /&gt;
&lt;br /&gt;
mkdir -p build&lt;br /&gt;
cd build&lt;br /&gt;
&lt;br /&gt;
cmake \&lt;br /&gt;
    -G Ninja \&lt;br /&gt;
    -DCMAKE_SHARED_LINKER_FLAGS=&amp;quot;-L$LIBPREFIX/lib&amp;quot; \&lt;br /&gt;
    -DCMAKE_EXE_LINKER_FLAGS=&amp;quot;-L$LIBPREFIX/lib&amp;quot; \&lt;br /&gt;
    -DCMAKE_INSTALL_PREFIX=$PREFIX \&lt;br /&gt;
    -DCMAKE_C_COMPILER_LAUNCHER=ccache \&lt;br /&gt;
    -DCMAKE_CXX_COMPILER_LAUNCHER=ccache \&lt;br /&gt;
    -DWITH_DBUS=OFF \&lt;br /&gt;
    ..&lt;br /&gt;
&lt;br /&gt;
ninja&lt;br /&gt;
ninja install&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Packaging=&lt;br /&gt;
&lt;br /&gt;
If &amp;lt;code&amp;gt;$PREFIX/bin/inkscape&amp;lt;/code&amp;gt; works when executed and you want to turn it into an app or a DMG, have a look at the files inside the &amp;lt;code&amp;gt;inkscape/packaging/macos&amp;lt;/code&amp;gt; directory. More info can be found on upstream mibap:&lt;br /&gt;
&lt;br /&gt;
* https://github.com/dehesselle/mibap&lt;br /&gt;
&lt;br /&gt;
Follow the steps to install the toolset, package the app, and create a DMG. In case you use upstream mibap, you will get the app under &amp;lt;code&amp;gt;/Users/Shared/work/mibap-*/&amp;lt;/code&amp;gt; and you will get a DMG file in the same place you ran &amp;lt;code&amp;gt;./build_inkscape.sh&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=See also=&lt;br /&gt;
* [[Tracking Dependencies]]&lt;br /&gt;
* [[Extension requirements]]&lt;br /&gt;
*[[Compiling Inkscape]]&lt;br /&gt;
*[[Notes on Packaging for OS X]]&lt;br /&gt;
* https://github.com/valerioa/Inkscape-MacOS-Curated-Build&lt;br /&gt;
* [https://github.com/ipatch/homebrew-us-05/blob/master/inkscape/inkscape-building-for-macOS.md ipatch's collection of notes] about building Inkscape using Homebrew&lt;br /&gt;
&lt;br /&gt;
[[Category:Developer Documentation]]&lt;/div&gt;</summary>
		<author><name>Tavmjong</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Summit2024_Rennes_Attendees&amp;diff=122828</id>
		<title>Summit2024 Rennes Attendees</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Summit2024_Rennes_Attendees&amp;diff=122828"/>
		<updated>2024-04-30T18:51:43Z</updated>

		<summary type="html">&lt;p&gt;Tavmjong: /* Who is Attending? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Travel Support ==&lt;br /&gt;
&lt;br /&gt;
The Inkscape Project Leadership Committee has allocated $25,000 to support Inkscape community members travel expenses. This includes transportation, lodging, meals, and miscellaneous expenses.&lt;br /&gt;
&lt;br /&gt;
To ask for travel support, add your name below, and then contact Tavmjong (tavmjong@free.fr or via RocketChat) with a (very) short statement on what you have contributed to Inkscape in the past year and with what you plan to work on during the summit and LGM. It can be anything from promoting Inkscape via social media to software development.&lt;br /&gt;
&lt;br /&gt;
For planning purposes, include an estimate of expenses.&lt;br /&gt;
&lt;br /&gt;
All travel reimbursements &amp;lt;b&amp;gt;MUST&amp;lt;/b&amp;gt; follow the [https://sfconservancy.org/projects/policies/conservancy-travel-policy.html SFC Travel Policy].&lt;br /&gt;
&lt;br /&gt;
== Who is Attending? ==&lt;br /&gt;
&lt;br /&gt;
Please add yourself to the list and then contact Tav about travel support.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|+ List of Attendees&lt;br /&gt;
|-&lt;br /&gt;
! rowspan=&amp;quot;2&amp;quot; | Who&lt;br /&gt;
! rowspan=&amp;quot;2&amp;quot; | Dates&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; | Arrival&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; | Departure&lt;br /&gt;
! rowspan=&amp;quot;2&amp;quot; | Hotel&lt;br /&gt;
|-&lt;br /&gt;
! Date/Time&lt;br /&gt;
! Detail&lt;br /&gt;
! Date/Time&lt;br /&gt;
! Detail&lt;br /&gt;
|-&lt;br /&gt;
| Tavmjong Bah &lt;br /&gt;
| 6 May - 11 May&lt;br /&gt;
|&lt;br /&gt;
| By car&lt;br /&gt;
|&lt;br /&gt;
| By car&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Marc Jeanmougin&lt;br /&gt;
| 6 May - 11 May&lt;br /&gt;
| &amp;lt;!-- arrival date + time --&amp;gt;&lt;br /&gt;
| By car&lt;br /&gt;
| &amp;lt;!-- departure date + time --&amp;gt;&lt;br /&gt;
| By car&lt;br /&gt;
| &amp;lt;!-- hotel --&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Rafał Siejakowski&lt;br /&gt;
|6 May – 10 May&lt;br /&gt;
|5 May 16:55&lt;br /&gt;
|By air&lt;br /&gt;
|10 May 16:05&lt;br /&gt;
|By air&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Adam Belis&lt;br /&gt;
|5 May - 11 May&lt;br /&gt;
|&lt;br /&gt;
|Air&lt;br /&gt;
|&lt;br /&gt;
|Air&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Mike Kowalski&lt;br /&gt;
|6 May - 10 May&lt;br /&gt;
|&lt;br /&gt;
|air + train&lt;br /&gt;
|&lt;br /&gt;
|train + air&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Sample Person&lt;br /&gt;
| &amp;lt;!-- dates --&amp;gt;&lt;br /&gt;
| &amp;lt;!-- arrival date + time --&amp;gt;&lt;br /&gt;
| &amp;lt;!-- arrival details, e.g. flight number --&amp;gt;&lt;br /&gt;
| &amp;lt;!-- departure date + time --&amp;gt;&lt;br /&gt;
| &amp;lt;!-- departure details, e.g. flight number --&amp;gt;&lt;br /&gt;
| &amp;lt;!-- hotel --&amp;gt;&lt;br /&gt;
|-! Total&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
TBD: &amp;quot;To Be Determined&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The Inkscape board has approved travel reimbursements of up to $2500 per person (subject to a $25,000 cap). Requests for reimbursements are subject to the SFC travel policy. Pay attention, especially, to the requirements for documenting fare searches and buying tickets in advance.&lt;br /&gt;
&lt;br /&gt;
== Other ==&lt;br /&gt;
&lt;br /&gt;
Separate allocations for:&lt;br /&gt;
* Inkscape dinner, participants and guests (500€).&lt;br /&gt;
* Snacks, etc. (200€).&lt;br /&gt;
* Venue: Free.&lt;/div&gt;</summary>
		<author><name>Tavmjong</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Summit2024_Rennes_Attendees&amp;diff=122826</id>
		<title>Summit2024 Rennes Attendees</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Summit2024_Rennes_Attendees&amp;diff=122826"/>
		<updated>2024-04-28T19:57:15Z</updated>

		<summary type="html">&lt;p&gt;Tavmjong: /* Who is Attending? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Travel Support ==&lt;br /&gt;
&lt;br /&gt;
The Inkscape Project Leadership Committee has allocated $25,000 to support Inkscape community members travel expenses. This includes transportation, lodging, meals, and miscellaneous expenses.&lt;br /&gt;
&lt;br /&gt;
To ask for travel support, add your name below, and then contact Tavmjong (tavmjong@free.fr or via RocketChat) with a (very) short statement on what you have contributed to Inkscape in the past year and with what you plan to work on during the summit and LGM. It can be anything from promoting Inkscape via social media to software development.&lt;br /&gt;
&lt;br /&gt;
For planning purposes, include an estimate of expenses.&lt;br /&gt;
&lt;br /&gt;
All travel reimbursements &amp;lt;b&amp;gt;MUST&amp;lt;/b&amp;gt; follow the [https://sfconservancy.org/projects/policies/conservancy-travel-policy.html SFC Travel Policy].&lt;br /&gt;
&lt;br /&gt;
== Who is Attending? ==&lt;br /&gt;
&lt;br /&gt;
Please add yourself to the list and then contact Tav about travel support.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|+ List of Attendees&lt;br /&gt;
|-&lt;br /&gt;
! rowspan=&amp;quot;2&amp;quot; | Who&lt;br /&gt;
! rowspan=&amp;quot;2&amp;quot; | Dates&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; | Arrival&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; | Departure&lt;br /&gt;
! rowspan=&amp;quot;2&amp;quot; | Hotel&lt;br /&gt;
|-&lt;br /&gt;
! Date/Time&lt;br /&gt;
! Detail&lt;br /&gt;
! Date/Time&lt;br /&gt;
! Detail&lt;br /&gt;
|-&lt;br /&gt;
| Tavmjong Bah &lt;br /&gt;
| 6 May - 11 May&lt;br /&gt;
|&lt;br /&gt;
| By car&lt;br /&gt;
|&lt;br /&gt;
| By car&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Marc Jeanmougin&lt;br /&gt;
| TBD&lt;br /&gt;
| &amp;lt;!-- arrival date + time --&amp;gt;&lt;br /&gt;
| Train&lt;br /&gt;
| &amp;lt;!-- departure date + time --&amp;gt;&lt;br /&gt;
| Train&lt;br /&gt;
| &amp;lt;!-- hotel --&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Rafał Siejakowski&lt;br /&gt;
|6 May – 10 May&lt;br /&gt;
|5 May 16:55&lt;br /&gt;
|By air&lt;br /&gt;
|10 May 16:05&lt;br /&gt;
|By air&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Adam Belis&lt;br /&gt;
|5 May - 11 May&lt;br /&gt;
|&lt;br /&gt;
|Air&lt;br /&gt;
|&lt;br /&gt;
|Air&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Mike Kowalski&lt;br /&gt;
|6 May - 10 May&lt;br /&gt;
|&lt;br /&gt;
|air + train&lt;br /&gt;
|&lt;br /&gt;
|train + air&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Sample Person&lt;br /&gt;
| &amp;lt;!-- dates --&amp;gt;&lt;br /&gt;
| &amp;lt;!-- arrival date + time --&amp;gt;&lt;br /&gt;
| &amp;lt;!-- arrival details, e.g. flight number --&amp;gt;&lt;br /&gt;
| &amp;lt;!-- departure date + time --&amp;gt;&lt;br /&gt;
| &amp;lt;!-- departure details, e.g. flight number --&amp;gt;&lt;br /&gt;
| &amp;lt;!-- hotel --&amp;gt;&lt;br /&gt;
|-! Total&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
TBD: &amp;quot;To Be Determined&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The Inkscape board has approved travel reimbursements of up to $2500 per person (subject to a $25,000 cap). Requests for reimbursements are subject to the SFC travel policy. Pay attention, especially, to the requirements for documenting fare searches and buying tickets in advance.&lt;br /&gt;
&lt;br /&gt;
== Other ==&lt;br /&gt;
&lt;br /&gt;
Separate allocations for:&lt;br /&gt;
* Inkscape dinner, participants and guests (500€).&lt;br /&gt;
* Snacks, etc. (200€).&lt;br /&gt;
* Venue: Free.&lt;/div&gt;</summary>
		<author><name>Tavmjong</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=C%2B%2B23&amp;diff=122755</id>
		<title>C++23</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=C%2B%2B23&amp;diff=122755"/>
		<updated>2024-04-17T22:37:53Z</updated>

		<summary type="html">&lt;p&gt;Tavmjong: Created page with &amp;quot;See also C++11, C++17, C++20.  Some things that will be interesting to use once C++23 is common:  {| class=&amp;quot;wikitable&amp;quot; |- ! Feature                           !! Si...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;See also [[C++11]], [[C++17]], [[C++20]].&lt;br /&gt;
&lt;br /&gt;
Some things that will be interesting to use once C++23 is common:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Feature                           !! Since !! Can use?                                    !! GCC    !! Apple Clang !! Comment&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;std::print&amp;lt;br/&amp;gt;std::println&amp;lt;/code&amp;gt;           || C++23 || style=&amp;quot;background: pink;&amp;quot;       |   not yet || 14     || 15.2 (partial) || Better and more efficient printing of strings. [https://en.cppreference.com/w/cpp/header/print Printing]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Tavmjong</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=C%2B%2B20&amp;diff=122754</id>
		<title>C++20</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=C%2B%2B20&amp;diff=122754"/>
		<updated>2024-04-17T22:31:36Z</updated>

		<summary type="html">&lt;p&gt;Tavmjong: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
See also [[C++11]], [[C++17]], [[C++23]].&lt;br /&gt;
&lt;br /&gt;
Some things that will be interesting to use once C++20 is common:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Feature                           !! Since !! Can use?                                    !! GCC    !! Apple Clang !! Comment&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;std::span&amp;lt;/code&amp;gt;            || C++20 || style=&amp;quot;background: lightgreen;&amp;quot; | from 1.4  || 10     || 11.0.3 || Handle buffers like standard library containers without risk of overflow.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;std::format&amp;lt;/code&amp;gt;          || C++20 || style=&amp;quot;background: pink;&amp;quot;       |   not yet || 13     || 15.3   || Better and more efficient formatting of strings. [https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p0645r10.html Text Formatting]&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;std::lerp&amp;lt;/code&amp;gt;            || C++20 || style=&amp;quot;background: lightgreen;&amp;quot; | from 1.4  ||  9     || 11.0.3 || Linear interpolation. (ui/tools/pencil-tool.cpp)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;std::bit_floor&amp;lt;/code&amp;gt;       || C++20 || style=&amp;quot;background: lightgreen;&amp;quot; | from 1.4  || 9/10   || 11.0.3/13.0.0 || Compute floor(log2(x)). (helper/mathfns.h)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;Concepts&amp;lt;/code&amp;gt;             || C++20 ||                                   from 1.4? || 6/10   || 12.0.0 Partial || Safer templating. (ui/controller.h)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;Coroutines&amp;lt;/code&amp;gt;           || C++20 || style=&amp;quot;background: pink;&amp;quot; |         not yet || 10     || 10.0.1 Partial,&amp;lt;br/&amp;gt; 15.3 Full || Simpler asynchronous code. (trace/trace.cpp)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;std::make_unique_for_overwrite&amp;lt;/code&amp;gt;&lt;br /&gt;
                                    || C++20 || style=&amp;quot;background: pink;&amp;quot; |         not yet || 11     || 15.0.0 || Don't zero arrays allocated using std::make_unique. (util/pool.cpp)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;Ranges&amp;lt;/code&amp;gt;               || C++20 || style=&amp;quot;background: pink;&amp;quot; |         not yet ||        || ? || for (init; decl : expr). (ui/dialog/swatches.cpp)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;[https://stackoverflow.com/a/60244416/5075760 Structural templates]&amp;lt;/code&amp;gt;&lt;br /&gt;
                                    || C++20 ||                                   from 1.4? ||        || Partial || Allow instances of arbitrary literal classes as template parameters. (display/drawing.cpp)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;Mathematical Constants&amp;lt;/code&amp;gt;&lt;br /&gt;
                                    || C++20 ||                                             || 10     || 12.0.5 || Constants like std::numbers::pi.     &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
References:&lt;br /&gt;
&lt;br /&gt;
* General: https://en.cppreference.com/w/Template:cpp/compiler_support/20&lt;br /&gt;
* Apple Clang: https://developer.apple.com/documentation/xcode-release-notes&lt;br /&gt;
&lt;br /&gt;
As of 27 March 2024, the CI runners for the various supported platforms are&lt;br /&gt;
* Linux:&lt;br /&gt;
** appimage:linux: GNU 13.2.0 (building on Ubuntu 23.10)&lt;br /&gt;
** inkscape:linux: Same as above&lt;br /&gt;
* Windows&lt;br /&gt;
** inkscape:windows:build: GNU 13.2.0 (temporarily disabled since GTK4 port)&lt;br /&gt;
** inkscape:windows:dist: Same as above&lt;br /&gt;
* macOS:&lt;br /&gt;
** inkscape::macos:arm: Apple Clang 15.0.0&lt;br /&gt;
** inkscape:macos:x64: Apple Clang 13.0.0 (temporarily disabled since GTK4 port)&lt;br /&gt;
&lt;br /&gt;
We strive to support latest Debian stable and latest Ubuntu LTS. However, we had to break that promise since the GTK4 port, which requires gtkmm4 &amp;gt;= 4.14:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Distro                         || gcc    || clang  || gtkmm4&lt;br /&gt;
|-&lt;br /&gt;
| Debian 12 (Bookworm, stable)   || 12.2.0 || 15.0.6 || 4.8.3&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu 22.04 (Jammy Jellyfish) || 12.3.0 || 15.0.7 || Not packaged!&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu 23.04 (Lunar)           || 13.1.0 || 16.0.0 || 4.10.1&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu 24.04 (Noble)           || 13.2.0 || 18.1.0 || 4.10.1 (???)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Ubuntu users therefore have the following options:&lt;br /&gt;
&lt;br /&gt;
* Wait for Ubuntu 24.04, expected around 25 April 2024.&lt;br /&gt;
* Upgrade to Ubuntu 24.04 now.&lt;br /&gt;
* Upgrade to Ubuntu 23.10 and build gtkmm4 from source, as is currently done by CI.&lt;br /&gt;
* ???&lt;br /&gt;
&lt;br /&gt;
Deprecated items that we still use:&lt;br /&gt;
* warning: implicit capture of ‘this’ via ‘[=]’ is deprecated in C++20 [-Wdeprecated] https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0806r2.html&lt;br /&gt;
* warning: bitwise operation between different enumeration types ‘Box3D::Axis’ and ‘Box3D::FrontOrRear’ is deprecated [-Wdeprecated-enum-enum-conversion]&lt;/div&gt;</summary>
		<author><name>Tavmjong</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=C%2B%2B20&amp;diff=122720</id>
		<title>C++20</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=C%2B%2B20&amp;diff=122720"/>
		<updated>2024-03-27T10:15:45Z</updated>

		<summary type="html">&lt;p&gt;Tavmjong: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
See also [[C++11]], [[C++17]].&lt;br /&gt;
&lt;br /&gt;
Some things that will be interesting to use once C++20 is common:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Feature                           !! Since !! Can use?                                    !! GCC    !! Apple Clang !! Comment&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;std::span&amp;lt;/code&amp;gt;            || C++20 || style=&amp;quot;background: lightgreen;&amp;quot; | from 1.4  || 10     || 11.0.3 || Handle buffers like standard library containers without risk of overflow.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;std::format&amp;lt;/code&amp;gt;          || C++20 || style=&amp;quot;background: pink;&amp;quot;       |   not yet || 13     || 15.3   || Better and more efficient formatting of strings. [https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p0645r10.html Text Formatting]&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;std::lerp&amp;lt;/code&amp;gt;            || C++20 || style=&amp;quot;background: lightgreen;&amp;quot; | from 1.4  ||  9     || 11.0.3 || Linear interpolation. (ui/tools/pencil-tool.cpp)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;std::bit_floor&amp;lt;/code&amp;gt;       || C++20 || style=&amp;quot;background: lightgreen;&amp;quot; | from 1.4  || 9/10   || 11.0.3/13.0.0 || Compute floor(log2(x)). (helper/mathfns.h)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;Concepts&amp;lt;/code&amp;gt;             || C++20 ||                                   from 1.4? || 6/10   || 12.0.0 Partial || Safer templating. (ui/controller.h)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;Coroutines&amp;lt;/code&amp;gt;           || C++20 || style=&amp;quot;background: pink;&amp;quot; |         not yet || 10     || 10.0.1 Partial,&amp;lt;br/&amp;gt; 15.3 Full || Simpler asynchronous code. (trace/trace.cpp)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;std::make_unique_for_overwrite&amp;lt;/code&amp;gt;&lt;br /&gt;
                                    || C++20 || style=&amp;quot;background: pink;&amp;quot; |         not yet || 11     || 15.0.0 || Don't zero arrays allocated using std::make_unique. (util/pool.cpp)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;Ranges&amp;lt;/code&amp;gt;               || C++20 || style=&amp;quot;background: pink;&amp;quot; |         not yet ||        || ? || for (init; decl : expr). (ui/dialog/swatches.cpp)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;[https://stackoverflow.com/a/60244416/5075760 Structural templates]&amp;lt;/code&amp;gt;&lt;br /&gt;
                                    || C++20 ||                                   from 1.4? ||        || Partial || Allow instances of arbitrary literal classes as template parameters. (display/drawing.cpp)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;Mathematical Constants&amp;lt;/code&amp;gt;&lt;br /&gt;
                                    || C++20 ||                                             || 10     || 12.0.5 || Constants like std::numbers::pi.     &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
References:&lt;br /&gt;
&lt;br /&gt;
* General: https://en.cppreference.com/w/Template:cpp/compiler_support/20&lt;br /&gt;
* Apple Clang: https://developer.apple.com/documentation/xcode-release-notes&lt;br /&gt;
&lt;br /&gt;
As of 27 March 2024, the CI runners for the various supported platforms are&lt;br /&gt;
* Linux:&lt;br /&gt;
** appimage:linux: GNU 13.2.0 (building on Ubuntu 23.10)&lt;br /&gt;
** inkscape:linux: Same as above&lt;br /&gt;
* Windows&lt;br /&gt;
** inkscape:windows:build: GNU 13.2.0 (temporarily disabled since GTK4 port)&lt;br /&gt;
** inkscape:windows:dist: Same as above&lt;br /&gt;
* macOS:&lt;br /&gt;
** inkscape::macos:arm: Apple Clang 15.0.0&lt;br /&gt;
** inkscape:macos:x64: Apple Clang 13.0.0 (temporarily disabled since GTK4 port)&lt;br /&gt;
&lt;br /&gt;
We strive to support latest Debian stable and latest Ubuntu LTS. However, we had to break that promise since the GTK4 port, which requires gtkmm4 &amp;gt;= 4.14:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Distro                         || gcc    || clang  || gtkmm4&lt;br /&gt;
|-&lt;br /&gt;
| Debian 12 (Bookworm, stable)   || 12.2.0 || 15.0.6 || 4.8.3&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu 22.04 (Jammy Jellyfish) || 12.3.0 || 15.0.7 || Not packaged!&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu 23.04 (Lunar)           || 13.1.0 || 16.0.0 || 4.10.1&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu 24.04 (Noble)           || 13.2.0 || 18.1.0 || 4.10.1 (???)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Ubuntu users therefore have the following options:&lt;br /&gt;
&lt;br /&gt;
* Wait for Ubuntu 24.04, expected around 25 April 2024.&lt;br /&gt;
* Upgrade to Ubuntu 24.04 now.&lt;br /&gt;
* Upgrade to Ubuntu 23.10 and build gtkmm4 from source, as is currently done by CI.&lt;br /&gt;
* ???&lt;br /&gt;
&lt;br /&gt;
Deprecated items that we still use:&lt;br /&gt;
* warning: implicit capture of ‘this’ via ‘[=]’ is deprecated in C++20 [-Wdeprecated] https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0806r2.html&lt;br /&gt;
* warning: bitwise operation between different enumeration types ‘Box3D::Axis’ and ‘Box3D::FrontOrRear’ is deprecated [-Wdeprecated-enum-enum-conversion]&lt;/div&gt;</summary>
		<author><name>Tavmjong</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=C%2B%2B20&amp;diff=122719</id>
		<title>C++20</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=C%2B%2B20&amp;diff=122719"/>
		<updated>2024-03-27T10:05:31Z</updated>

		<summary type="html">&lt;p&gt;Tavmjong: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
See also [[C++11]], [[C++17]].&lt;br /&gt;
&lt;br /&gt;
Some things that will be interesting to use once C++20 is common:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Feature                           !! Since !! Can use?                                    !! GCC    !! Apple Clang !! Comment&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;std::span&amp;lt;/code&amp;gt;            || C++20 || style=&amp;quot;background: lightgreen;&amp;quot; | from 1.4  || 10     || 11.0.3 || Handle buffers like standard library containers without risk of overflow.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;std::format&amp;lt;/code&amp;gt;          || C++20 || style=&amp;quot;background: pink;&amp;quot;       |   not yet || 13     || 15.3   || Better and more efficient formatting of strings. [https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p0645r10.html Text Formatting]&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;std::lerp&amp;lt;/code&amp;gt;            || C++20 || style=&amp;quot;background: lightgreen;&amp;quot; | from 1.4  ||  9     || 11.0.3 || Linear interpolation. (ui/tools/pencil-tool.cpp)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;std::bit_floor&amp;lt;/code&amp;gt;       || C++20 || style=&amp;quot;background: lightgreen;&amp;quot; | from 1.4  || 9/10   || 11.0.3/13.0.0 || Compute floor(log2(x)). (helper/mathfns.h)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;Concepts&amp;lt;/code&amp;gt;             || C++20 ||                                   from 1.4? || 6/10   || 12.0.0 Partial || Safer templating. (ui/controller.h)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;Coroutines&amp;lt;/code&amp;gt;           || C++20 || style=&amp;quot;background: pink;&amp;quot; |         not yet || 10     || 10.0.1 Partial,&amp;lt;br/&amp;gt; 15.3 Full || Simpler asynchronous code. (trace/trace.cpp)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;std::make_unique_for_overwrite&amp;lt;/code&amp;gt;&lt;br /&gt;
                                    || C++20 || style=&amp;quot;background: pink;&amp;quot; |         not yet || 11     || 15.0.0 || Don't zero arrays allocated using std::make_unique. (util/pool.cpp)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;Ranges&amp;lt;/code&amp;gt;               || C++20 || style=&amp;quot;background: pink;&amp;quot; |         not yet ||        || ? || for (init; decl : expr). (ui/dialog/swatches.cpp)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;[https://stackoverflow.com/a/60244416/5075760 Structural templates]&amp;lt;/code&amp;gt;&lt;br /&gt;
                                    || C++20 ||                                   from 1.4? ||        || Partial || Allow instances of arbitrary literal classes as template parameters. (display/drawing.cpp)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;Mathematical Constants&amp;lt;/code&amp;gt;&lt;br /&gt;
                                    || C++20 ||                                             || 10     || 12.0.5 || Constants like std::numbers::pi.     &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
References:&lt;br /&gt;
&lt;br /&gt;
* General: https://en.cppreference.com/w/Template:cpp/compiler_support/20&lt;br /&gt;
* Apple Clang: https://developer.apple.com/documentation/xcode-release-notes&lt;br /&gt;
&lt;br /&gt;
As of 27 March 2024, the CI runners for the various supported platforms are&lt;br /&gt;
* Linux:&lt;br /&gt;
** appimage:linux: GNU 13.2.0 (building on Ubuntu 23.10)&lt;br /&gt;
** inkscape:linux: Same as above&lt;br /&gt;
* Windows&lt;br /&gt;
** inkscape:windows:build: GNU 13.2.0 (temporarily disabled since GTK4 port)&lt;br /&gt;
** inkscape:windows:dist: Same as above&lt;br /&gt;
* macOS:&lt;br /&gt;
** inkscape::macos:arm: Apple Clang 15.0.0&lt;br /&gt;
** inkscape:macos:x64: Apple Clang 13.0.0 (temporarily disabled since GTK4 port)&lt;br /&gt;
&lt;br /&gt;
We strive to support latest Debian stable and latest Ubuntu LTS. However, we had to break that promise since the GTK4 port, which requires gtkmm4 &amp;gt;= 4.14:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Distro                         || gcc    || clang  || gtkmm4&lt;br /&gt;
|-&lt;br /&gt;
| Debian 12 (Bookworm, stable)   || 12.2.0 || 15.0.6 || 4.8.3&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu 22.04 (Jammy Jellyfish) || 12.3.0 || 15.0.7 || Not packaged!&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu 23.04 (Lunar)           || 13.1.0 || 16.0.0 || 4.10.1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Ubuntu users therefore have the following options:&lt;br /&gt;
&lt;br /&gt;
* Wait for Ubuntu 24.04, expected around 25 April 2024.&lt;br /&gt;
* Upgrade to Ubuntu 24.04 now.&lt;br /&gt;
* Upgrade to Ubuntu 23.10 and build gtkmm4 from source, as is currently done by CI.&lt;br /&gt;
* ???&lt;br /&gt;
&lt;br /&gt;
Deprecated items that we still use:&lt;br /&gt;
* warning: implicit capture of ‘this’ via ‘[=]’ is deprecated in C++20 [-Wdeprecated] https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0806r2.html&lt;br /&gt;
* warning: bitwise operation between different enumeration types ‘Box3D::Axis’ and ‘Box3D::FrontOrRear’ is deprecated [-Wdeprecated-enum-enum-conversion]&lt;/div&gt;</summary>
		<author><name>Tavmjong</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Summit2024_Rennes_Attendees&amp;diff=122700</id>
		<title>Summit2024 Rennes Attendees</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Summit2024_Rennes_Attendees&amp;diff=122700"/>
		<updated>2024-03-13T21:16:41Z</updated>

		<summary type="html">&lt;p&gt;Tavmjong: /* Who is Attending? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Travel Support ==&lt;br /&gt;
&lt;br /&gt;
The Inkscape Project Leadership Committee has allocated $25,000 to support Inkscape community members travel expenses. This includes transportation, lodging, meals, and miscellaneous expenses.&lt;br /&gt;
&lt;br /&gt;
To ask for travel support, add your name below, and then contact Tavmjong (tavmjong@free.fr or via RocketChat) with a (very) short statement on what you have contributed to Inkscape in the past year and with what you plan to work on during the summit and LGM. It can be anything from promoting Inkscape via social media to software development.&lt;br /&gt;
&lt;br /&gt;
For planning purposes, include an estimate of expenses.&lt;br /&gt;
&lt;br /&gt;
All travel reimbursements &amp;lt;b&amp;gt;MUST&amp;lt;/b&amp;gt; follow the [https://sfconservancy.org/projects/policies/conservancy-travel-policy.html SFC Travel Policy].&lt;br /&gt;
&lt;br /&gt;
== Who is Attending? ==&lt;br /&gt;
&lt;br /&gt;
Please add yourself to the list and then contact Tav about travel support.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|+ List of Attendees&lt;br /&gt;
|-&lt;br /&gt;
! rowspan=&amp;quot;2&amp;quot; | Who&lt;br /&gt;
! rowspan=&amp;quot;2&amp;quot; | Dates&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; | Arrival&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; | Departure&lt;br /&gt;
! rowspan=&amp;quot;2&amp;quot; | Hotel&lt;br /&gt;
|-&lt;br /&gt;
! Date/Time&lt;br /&gt;
! Detail&lt;br /&gt;
! Date/Time&lt;br /&gt;
! Detail&lt;br /&gt;
|-&lt;br /&gt;
| Tavmjong Bah &lt;br /&gt;
| 6 May - 12 May&lt;br /&gt;
|&lt;br /&gt;
| By car&lt;br /&gt;
|&lt;br /&gt;
| By car&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Marc Jeanmougin&lt;br /&gt;
| TBD&lt;br /&gt;
| &amp;lt;!-- arrival date + time --&amp;gt;&lt;br /&gt;
| Train&lt;br /&gt;
| &amp;lt;!-- departure date + time --&amp;gt;&lt;br /&gt;
| Train&lt;br /&gt;
| &amp;lt;!-- hotel --&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Rafał Siejakowski&lt;br /&gt;
|6 May – 9 May&lt;br /&gt;
|&lt;br /&gt;
|By air&lt;br /&gt;
|&lt;br /&gt;
|By air&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Sample Person&lt;br /&gt;
| &amp;lt;!-- dates --&amp;gt;&lt;br /&gt;
| &amp;lt;!-- arrival date + time --&amp;gt;&lt;br /&gt;
| &amp;lt;!-- arrival details, e.g. flight number --&amp;gt;&lt;br /&gt;
| &amp;lt;!-- departure date + time --&amp;gt;&lt;br /&gt;
| &amp;lt;!-- departure details, e.g. flight number --&amp;gt;&lt;br /&gt;
| &amp;lt;!-- hotel --&amp;gt;&lt;br /&gt;
|-! Total&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
TBD: &amp;quot;To Be Determined&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The Inkscape board has approved travel reimbursements of up to $2500 per person (subject to a $25,000 cap). Requests for reimbursements are subject to the SFC travel policy. Pay attention, especially, to the requirements for documenting fare searches and buying tickets in advance.&lt;br /&gt;
&lt;br /&gt;
== Other ==&lt;br /&gt;
&lt;br /&gt;
Separate allocations for:&lt;br /&gt;
* Inkscape dinner, participants and guests (500€).&lt;br /&gt;
* Snacks, etc. (200€).&lt;br /&gt;
* Venue: Free.&lt;/div&gt;</summary>
		<author><name>Tavmjong</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Summit2024_Rennes_Attendees&amp;diff=122699</id>
		<title>Summit2024 Rennes Attendees</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Summit2024_Rennes_Attendees&amp;diff=122699"/>
		<updated>2024-03-13T21:15:50Z</updated>

		<summary type="html">&lt;p&gt;Tavmjong: /* Who is Attending? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Travel Support ==&lt;br /&gt;
&lt;br /&gt;
The Inkscape Project Leadership Committee has allocated $25,000 to support Inkscape community members travel expenses. This includes transportation, lodging, meals, and miscellaneous expenses.&lt;br /&gt;
&lt;br /&gt;
To ask for travel support, add your name below, and then contact Tavmjong (tavmjong@free.fr or via RocketChat) with a (very) short statement on what you have contributed to Inkscape in the past year and with what you plan to work on during the summit and LGM. It can be anything from promoting Inkscape via social media to software development.&lt;br /&gt;
&lt;br /&gt;
For planning purposes, include an estimate of expenses.&lt;br /&gt;
&lt;br /&gt;
All travel reimbursements &amp;lt;b&amp;gt;MUST&amp;lt;/b&amp;gt; follow the [https://sfconservancy.org/projects/policies/conservancy-travel-policy.html SFC Travel Policy].&lt;br /&gt;
&lt;br /&gt;
== Who is Attending? ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|+ List of Attendees&lt;br /&gt;
|-&lt;br /&gt;
! rowspan=&amp;quot;2&amp;quot; | Who&lt;br /&gt;
! rowspan=&amp;quot;2&amp;quot; | Dates&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; | Arrival&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; | Departure&lt;br /&gt;
! rowspan=&amp;quot;2&amp;quot; | Hotel&lt;br /&gt;
|-&lt;br /&gt;
! Date/Time&lt;br /&gt;
! Detail&lt;br /&gt;
! Date/Time&lt;br /&gt;
! Detail&lt;br /&gt;
|-&lt;br /&gt;
| Tavmjong Bah &lt;br /&gt;
| 6 May - 12 May&lt;br /&gt;
|&lt;br /&gt;
| By car&lt;br /&gt;
|&lt;br /&gt;
| By car&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Marc Jeanmougin&lt;br /&gt;
| TBD&lt;br /&gt;
| &amp;lt;!-- arrival date + time --&amp;gt;&lt;br /&gt;
| Train&lt;br /&gt;
| &amp;lt;!-- departure date + time --&amp;gt;&lt;br /&gt;
| Train&lt;br /&gt;
| &amp;lt;!-- hotel --&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Rafał Siejakowski&lt;br /&gt;
|6 May – 9 May&lt;br /&gt;
|&lt;br /&gt;
|By air&lt;br /&gt;
|&lt;br /&gt;
|By air&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Sample Person&lt;br /&gt;
| &amp;lt;!-- dates --&amp;gt;&lt;br /&gt;
| &amp;lt;!-- arrival date + time --&amp;gt;&lt;br /&gt;
| &amp;lt;!-- arrival details, e.g. flight number --&amp;gt;&lt;br /&gt;
| &amp;lt;!-- departure date + time --&amp;gt;&lt;br /&gt;
| &amp;lt;!-- departure details, e.g. flight number --&amp;gt;&lt;br /&gt;
| &amp;lt;!-- hotel --&amp;gt;&lt;br /&gt;
|-! Total&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
TBD: &amp;quot;To Be Determined&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The Inkscape board has approved travel reimbursements of up to $2500 per person (subject to a $25,000 cap). Requests for reimbursements are subject to the SFC travel policy. Pay attention, especially, to the requirements for documenting fare searches and buying tickets in advance.&lt;br /&gt;
&lt;br /&gt;
== Other ==&lt;br /&gt;
&lt;br /&gt;
Separate allocations for:&lt;br /&gt;
* Inkscape dinner, participants and guests (500€).&lt;br /&gt;
* Snacks, etc. (200€).&lt;br /&gt;
* Venue: Free.&lt;/div&gt;</summary>
		<author><name>Tavmjong</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Summit2024_Rennes_Attendees&amp;diff=122683</id>
		<title>Summit2024 Rennes Attendees</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Summit2024_Rennes_Attendees&amp;diff=122683"/>
		<updated>2024-03-10T11:33:48Z</updated>

		<summary type="html">&lt;p&gt;Tavmjong: /* Travel Support */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Travel Support ==&lt;br /&gt;
&lt;br /&gt;
The Inkscape Project Leadership Committee has allocated $25,000 to support Inkscape community members travel expenses. This includes transportation, lodging, meals, and miscellaneous expenses.&lt;br /&gt;
&lt;br /&gt;
To ask for travel support, add your name below, and then contact Tavmjong (tavmjong@free.fr or via RocketChat) with a (very) short statement on what you have contributed to Inkscape in the past year and with what you plan to work on during the summit and LGM. It can be anything from promoting Inkscape via social media to software development.&lt;br /&gt;
&lt;br /&gt;
For planning purposes, include an estimate of expenses.&lt;br /&gt;
&lt;br /&gt;
All travel reimbursements &amp;lt;b&amp;gt;MUST&amp;lt;/b&amp;gt; follow the [https://sfconservancy.org/projects/policies/conservancy-travel-policy.html SFC Travel Policy].&lt;br /&gt;
&lt;br /&gt;
== Who is Attending? ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|+ List of Attendees&lt;br /&gt;
|-&lt;br /&gt;
! rowspan=&amp;quot;2&amp;quot; | Who&lt;br /&gt;
! rowspan=&amp;quot;2&amp;quot; | Dates&lt;br /&gt;
! rowspan=&amp;quot;2&amp;quot; | Maximum Allocation&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; | Arrival&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; | Departure&lt;br /&gt;
! rowspan=&amp;quot;2&amp;quot; | Hotel&lt;br /&gt;
|-&lt;br /&gt;
! Date/Time&lt;br /&gt;
! Detail&lt;br /&gt;
! Date/Time&lt;br /&gt;
! Detail&lt;br /&gt;
|-&lt;br /&gt;
| Tavmjong Bah &lt;br /&gt;
| TBD&lt;br /&gt;
| Per SFC Rules&lt;br /&gt;
|&lt;br /&gt;
| By car&lt;br /&gt;
|&lt;br /&gt;
| By car&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Marc Jeanmougin&lt;br /&gt;
| TBD&lt;br /&gt;
| TBD&lt;br /&gt;
| &amp;lt;!-- arrival date + time --&amp;gt;&lt;br /&gt;
| Train&lt;br /&gt;
| &amp;lt;!-- departure date + time --&amp;gt;&lt;br /&gt;
| Train&lt;br /&gt;
| &amp;lt;!-- hotel --&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Sample Person&lt;br /&gt;
| &amp;lt;!-- dates --&amp;gt;&lt;br /&gt;
| TBD&lt;br /&gt;
| &amp;lt;!-- arrival date + time --&amp;gt;&lt;br /&gt;
| &amp;lt;!-- arrival details, e.g. flight number --&amp;gt;&lt;br /&gt;
| &amp;lt;!-- departure date + time --&amp;gt;&lt;br /&gt;
| &amp;lt;!-- departure details, e.g. flight number --&amp;gt;&lt;br /&gt;
| &amp;lt;!-- hotel --&amp;gt;&lt;br /&gt;
|-! Total&lt;br /&gt;
!&lt;br /&gt;
!&lt;br /&gt;
! $ TBD&lt;br /&gt;
!&lt;br /&gt;
!&lt;br /&gt;
!&lt;br /&gt;
!&lt;br /&gt;
!&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
TBD: &amp;quot;To Be Determined&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- The Inkscape board has approved travel reimbursements of up to $2000 per person. Note: participants require the formality of a board vote. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Other ==&lt;br /&gt;
&lt;br /&gt;
Separate allocations for:&lt;br /&gt;
* Inkscape dinner, participants and guests (500€).&lt;br /&gt;
* Snacks, etc. (200€).&lt;br /&gt;
* Venue: Free.&lt;/div&gt;</summary>
		<author><name>Tavmjong</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Summit2024_Rennes_Attendees&amp;diff=122682</id>
		<title>Summit2024 Rennes Attendees</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Summit2024_Rennes_Attendees&amp;diff=122682"/>
		<updated>2024-03-10T11:29:06Z</updated>

		<summary type="html">&lt;p&gt;Tavmjong: /* Who is Attending? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Travel Support ==&lt;br /&gt;
&lt;br /&gt;
The Inkscape Project Leadership Committee has allocated $25,000 to support Inkscape community members travel expenses. To ask for travel support, add your name below, and send an email to .... with a (very) short statement on what you have contributed to Inkscape in the past year and with what you plan to work on during the summit and LGM. It can be anything from promoting Inkscape via social media to software development. For planning purposes, include an estimate of expenses. All travel reimburesments must follow the [https://sfconservancy.org/projects/policies/conservancy-travel-policy.html SFC Travel Policy].&lt;br /&gt;
&lt;br /&gt;
== Who is Attending? ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|+ List of Attendees&lt;br /&gt;
|-&lt;br /&gt;
! rowspan=&amp;quot;2&amp;quot; | Who&lt;br /&gt;
! rowspan=&amp;quot;2&amp;quot; | Dates&lt;br /&gt;
! rowspan=&amp;quot;2&amp;quot; | Maximum Allocation&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; | Arrival&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; | Departure&lt;br /&gt;
! rowspan=&amp;quot;2&amp;quot; | Hotel&lt;br /&gt;
|-&lt;br /&gt;
! Date/Time&lt;br /&gt;
! Detail&lt;br /&gt;
! Date/Time&lt;br /&gt;
! Detail&lt;br /&gt;
|-&lt;br /&gt;
| Tavmjong Bah &lt;br /&gt;
| TBD&lt;br /&gt;
| Per SFC Rules&lt;br /&gt;
|&lt;br /&gt;
| By car&lt;br /&gt;
|&lt;br /&gt;
| By car&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Marc Jeanmougin&lt;br /&gt;
| TBD&lt;br /&gt;
| TBD&lt;br /&gt;
| &amp;lt;!-- arrival date + time --&amp;gt;&lt;br /&gt;
| Train&lt;br /&gt;
| &amp;lt;!-- departure date + time --&amp;gt;&lt;br /&gt;
| Train&lt;br /&gt;
| &amp;lt;!-- hotel --&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Sample Person&lt;br /&gt;
| &amp;lt;!-- dates --&amp;gt;&lt;br /&gt;
| TBD&lt;br /&gt;
| &amp;lt;!-- arrival date + time --&amp;gt;&lt;br /&gt;
| &amp;lt;!-- arrival details, e.g. flight number --&amp;gt;&lt;br /&gt;
| &amp;lt;!-- departure date + time --&amp;gt;&lt;br /&gt;
| &amp;lt;!-- departure details, e.g. flight number --&amp;gt;&lt;br /&gt;
| &amp;lt;!-- hotel --&amp;gt;&lt;br /&gt;
|-! Total&lt;br /&gt;
!&lt;br /&gt;
!&lt;br /&gt;
! $ TBD&lt;br /&gt;
!&lt;br /&gt;
!&lt;br /&gt;
!&lt;br /&gt;
!&lt;br /&gt;
!&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
TBD: &amp;quot;To Be Determined&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- The Inkscape board has approved travel reimbursements of up to $2000 per person. Note: participants require the formality of a board vote. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Other ==&lt;br /&gt;
&lt;br /&gt;
Separate allocations for:&lt;br /&gt;
* Inkscape dinner, participants and guests (500€).&lt;br /&gt;
* Snacks, etc. (200€).&lt;br /&gt;
* Venue: Free.&lt;/div&gt;</summary>
		<author><name>Tavmjong</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Inkscape_Summit_2024_Rennes&amp;diff=122681</id>
		<title>Inkscape Summit 2024 Rennes</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Inkscape_Summit_2024_Rennes&amp;diff=122681"/>
		<updated>2024-03-10T11:26:00Z</updated>

		<summary type="html">&lt;p&gt;Tavmjong: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
This page details the planning of Inkscape's 2024 Summit in Rennes, France, May 6th to May 8th. It is just prior to LGM which is from May 9 to May 12th.&lt;br /&gt;
&lt;br /&gt;
Old: [[Hackfest2023 Bensberg]] [[Hackfest2019 Saarbrücken]], [[Hackfest2019 SCALE]], [[Hackfest2018 Kiel]], [[Hackfest2018 LGM]], [[Hackfest2018]], [[Hackfest2017]], [[Hackfest2016]], [[Hackfest2015]].&lt;br /&gt;
&lt;br /&gt;
= Inkscape Summit: Rennes, France =&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
A gathering of Inkscapers! We will work on Inkscape, website, outreach, bugs, new features, and packaging; in fact anything that can benefit from Inkscapers being physically in the same space.&lt;br /&gt;
&lt;br /&gt;
The summit will take place before (and continue informally through) the [https://libregraphicsmeeting.org/2024/ 2024 LGM (Libre Graphics Meeting)].&lt;br /&gt;
&lt;br /&gt;
==Rennes==&lt;br /&gt;
&lt;br /&gt;
Rennes is a city about two hours by train west of Paris.&lt;br /&gt;
&lt;br /&gt;
* [https://en.wikipedia.org/wiki/Rennes Rennes on Wikipedia]&lt;br /&gt;
* [https://www.tourisme-rennes.com/en Tourism (official)]&lt;br /&gt;
&lt;br /&gt;
==Venue==&lt;br /&gt;
&lt;br /&gt;
The Summit will take place at Activdesign, 4A rue du Bignon (yes). It's an art school that teaches Inkscape, Krita, Blender, and Godot.&lt;br /&gt;
&lt;br /&gt;
==LGM==&lt;br /&gt;
&lt;br /&gt;
Thursday, 9th of May through Sunday, 12th of May. [https://libregraphicsmeeting.org/2024/program.html Program]&lt;br /&gt;
&lt;br /&gt;
==Catering==&lt;br /&gt;
&lt;br /&gt;
Around Activdesign there is one bakery and supermarket.&lt;br /&gt;
&lt;br /&gt;
Activdesign have a little kitchen with microwave, fridge, coffee machine, tea, and few dishes.&lt;br /&gt;
&lt;br /&gt;
==Facilities==&lt;br /&gt;
&lt;br /&gt;
TO BE UPDATED&lt;br /&gt;
* Wireless (yes)&lt;br /&gt;
* Europlug type C and F.&lt;br /&gt;
* LCD projector (no more, it's more TV or second monitor)&lt;br /&gt;
* White board (yes)&lt;br /&gt;
* Café, Tea, micro-waves, water (yes)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Nearby Amenities==&lt;br /&gt;
&lt;br /&gt;
The center is at 20 min in bus.&lt;br /&gt;
&lt;br /&gt;
==Accommodations==&lt;br /&gt;
&lt;br /&gt;
In the center of the city you have some hostels with ** or *****.&lt;br /&gt;
Near Activdesign there is an ibis budget. Maybe a one or two shared AirBnB's.&lt;br /&gt;
&lt;br /&gt;
Hostels :&lt;br /&gt;
&lt;br /&gt;
Near LGM place (S-E of Rennes) :&lt;br /&gt;
&lt;br /&gt;
F1Hotel : about 40€ / night, up to 3 guests per room : &amp;lt;nowiki&amp;gt;https://all.accor.com/hotel/2312/index.en.shtml&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hotel Kyriad : about 45€/ night : &amp;lt;nowiki&amp;gt;https://rennes-sud-chantepie.kyriad.com/en-us/&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
B&amp;amp;B hotel : about 60€ / night, up to 2 guests per room : &amp;lt;nowiki&amp;gt;https://www.hotel-bb.com/en/hotel/rennes-sud-chantepie?arrival_date=05/09/2024&amp;amp;departure_date=05/12/2024&amp;amp;r1_ad=2&amp;amp;testClick=false&amp;amp;Gclic=B&amp;amp;wh_token=2975e487-5673-4565-ad74-2cd9f01b0143-178703-4406&amp;amp;utm_source=hotelfinder&amp;amp;utm_medium=metasearch&amp;amp;utm_campaign=fr_conversion_gha_paid_rennes-sud-chantepie&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Brit hotel : about 70-80€ / night, up to 2 guests per room : &amp;lt;nowiki&amp;gt;https://hotel-rennes-castel.brithotel.com/rooms-hotel?action=moteur_resa&amp;amp;checkindate=09%2F05%2F2024&amp;amp;checkoutdate=12%2F05%2F2024&amp;amp;partid=88&amp;amp;nb_adt=2&amp;amp;curcode=EUR&amp;amp;desktop=&amp;amp;ghftotalprice=263.92&amp;amp;ghfusercountry=FR&amp;amp;googlesite=localuniversal&amp;amp;isrobot=false&amp;amp;bookingSource=GoogleCPC&amp;amp;utm_campaign=Google_360&amp;amp;campaignid=19409624839&amp;amp;utm_source=GoogleHotel&amp;amp;utm_medium=cpc&amp;amp;utm_content=11542&amp;amp;nb_adt=2&amp;amp;isHotelCampaign=true&amp;amp;gclid=CjwKCAiA3JCvBhA8EiwA4kujZs9qda8muPvTU1xEceiri-x319k_NAIfrujCXTYTv_OPlIjLhWpBkBoCrxAQAvD_BwE#resa&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
We are just near Chantepie city, which have some available hotels too&lt;br /&gt;
&lt;br /&gt;
Downtown :&lt;br /&gt;
&lt;br /&gt;
Youth Hostel, might be collective rooms, but really cheap : &amp;lt;nowiki&amp;gt;https://book.octorate.com/octobook/site/reservation/result.xhtml?checkin=2024-05-09&amp;amp;pax=2&amp;amp;codice=424789&amp;amp;checkout=2024-05-12&amp;amp;referer=freebookinglinks#&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Adagio Access ApartHotel, about 50€ / night, have kitchen included : &amp;lt;nowiki&amp;gt;https://www.adagio-city.com/gb/hotel-8398-aparthotel-adagio-access-rennes-centre/index.shtml&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Appart Hôtel - Séjours &amp;amp; Affaires Rennes de Bretagne, about 60€/night : &amp;lt;nowiki&amp;gt;https://www.sejours-affaires.com/uk/hotel-residence-aparthotel-rennes-29.html&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le victoria - about 60-70€ / night : &amp;lt;nowiki&amp;gt;https://www.hotel-levictoria.com/en/&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Be aware that since covid-time, breakfast are not included in prices anymore and that they might be quite expensive. We will try to make coffee available as soon as possible in the morning for those who would like to share with other LGMers.&lt;br /&gt;
&lt;br /&gt;
==Summit Dinner==&lt;br /&gt;
&lt;br /&gt;
An informal dinner will be held on ?.&lt;br /&gt;
Lot of choice of restaurant : japonese, breton, italian. All are very good. Maybe is depending on the number. Japonese restaurant is quite little and the marocco is bigger and also very good. The breton are plenty but the good one have to be booked.&lt;br /&gt;
&lt;br /&gt;
==Attendance==&lt;br /&gt;
&lt;br /&gt;
Anybody interested in Inkscape is welcome to attend. Funding support for travel expenses is based active participation on the Inkscape community. See the [[Summit2024 Rennes Attendees]] page for more details.&lt;br /&gt;
&lt;br /&gt;
==Summit Topics and Schedule==&lt;br /&gt;
&lt;br /&gt;
A schedule will be developed based on input from attendees and the Inkscape community. See the [[Summit2024 Rennes Topics]] page for further details.&lt;br /&gt;
&lt;br /&gt;
==Helpers==&lt;br /&gt;
&lt;br /&gt;
The following folk have offered to assist with organization work, in limited capacities:&lt;br /&gt;
&lt;br /&gt;
* You&lt;br /&gt;
* And you?&lt;br /&gt;
* Tav&lt;br /&gt;
* Elisa&lt;br /&gt;
&lt;br /&gt;
[[Category:Hackfest]]&lt;/div&gt;</summary>
		<author><name>Tavmjong</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Inkscape_Summit_2024_Rennes&amp;diff=122678</id>
		<title>Inkscape Summit 2024 Rennes</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Inkscape_Summit_2024_Rennes&amp;diff=122678"/>
		<updated>2024-03-05T17:21:18Z</updated>

		<summary type="html">&lt;p&gt;Tavmjong: /* Accomidations */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
This page details the planning of Inkscape's &amp;lt;span style=&amp;quot;color:darkred&amp;quot;&amp;gt;PROPOSED&amp;lt;/span&amp;gt; 2024 Summit in Rennes, France, May 6th to May 8th. It is just prior to LGM which is from May 9 to May 12th.&lt;br /&gt;
&lt;br /&gt;
Old: [[Hackfest2023 Bensberg]] [[Hackfest2019 Saarbrücken]], [[Hackfest2019 SCALE]], [[Hackfest2018 Kiel]], [[Hackfest2018 LGM]], [[Hackfest2018]], [[Hackfest2017]], [[Hackfest2016]], [[Hackfest2015]].&lt;br /&gt;
&lt;br /&gt;
= Inkscape Summit: Rennes, France =&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
A gathering of Inkscapers! We will work on Inkscape, website, outreach, bugs, new features, and packaging; in fact anything that can benefit from Inkscapers being physically in the same space.&lt;br /&gt;
&lt;br /&gt;
The summit will take place before (and continue informally through) the [https://libregraphicsmeeting.org/2024/ 2024 LGM conference].&lt;br /&gt;
&lt;br /&gt;
==Rennes==&lt;br /&gt;
&lt;br /&gt;
Rennes is a city about two hours by train west of Paris.&lt;br /&gt;
&lt;br /&gt;
* [https://en.wikipedia.org/wiki/Rennes Rennes on Wikipedia]&lt;br /&gt;
* [https://www.tourisme-rennes.com/en Tourism (official)]&lt;br /&gt;
&lt;br /&gt;
==Venue==&lt;br /&gt;
&lt;br /&gt;
TO BE VERIFIED&lt;br /&gt;
&lt;br /&gt;
The Summit will take place at Activdesign, 4A rue du Bignon. It's an art school who teach Inkscape, Krita, Blender and Godot.&lt;br /&gt;
&lt;br /&gt;
==LGM==&lt;br /&gt;
&lt;br /&gt;
Thursday, 9th of May through Sunday, 12th of May. [https://libregraphicsmeeting.org/2024/program.html Program]&lt;br /&gt;
&lt;br /&gt;
==Catering==&lt;br /&gt;
&lt;br /&gt;
?&lt;br /&gt;
&lt;br /&gt;
==Facilities==&lt;br /&gt;
&lt;br /&gt;
TO BE UPDATED&lt;br /&gt;
* Wireless&lt;br /&gt;
* Europlug type C and F.&lt;br /&gt;
* LCD projector&lt;br /&gt;
* White board&lt;br /&gt;
* Café, Tea, micro-waves, water&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Nearby Amenities==&lt;br /&gt;
&lt;br /&gt;
The center is at 20 min in bus.&lt;br /&gt;
&lt;br /&gt;
==Accommodations==&lt;br /&gt;
&lt;br /&gt;
In the center of the city you have some hostels with ** or *****.&lt;br /&gt;
Near Activdesign there is an ibis budget. Maybe a one or two shared AirBnB's.&lt;br /&gt;
&lt;br /&gt;
==Summit Dinner==&lt;br /&gt;
&lt;br /&gt;
An informal dinner will be held on ?.&lt;br /&gt;
Lot of choice of restaurant : japonese, breton, italian, marocco. All are very good. Maybe is depending on the number. Japonese restaurant is quite little and the marocco is bigger and also very good. The breton are plenty but the good one have to be booked.&lt;br /&gt;
&lt;br /&gt;
==Attendance==&lt;br /&gt;
&lt;br /&gt;
Anybody interested in Inkscape is welcome to attend. Funding support for travel expenses is based active participation on the Inkscape community. See the [[Summit2024 Rennes Attendees]] page for more details.&lt;br /&gt;
&lt;br /&gt;
==Summit Topics and Schedule==&lt;br /&gt;
&lt;br /&gt;
A schedule will be developed based on input from attendees and the Inkscape community. See the [[Summit2024 Rennes Topics]] page for further details.&lt;br /&gt;
&lt;br /&gt;
==Helpers==&lt;br /&gt;
&lt;br /&gt;
The following folk have offered to assist with organization work, in limited capacities:&lt;br /&gt;
&lt;br /&gt;
* You&lt;br /&gt;
* And you?&lt;br /&gt;
* Tav&lt;br /&gt;
&lt;br /&gt;
[[Category:Hackfest]]&lt;/div&gt;</summary>
		<author><name>Tavmjong</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Inkscape_Summit_2024_Rennes&amp;diff=122677</id>
		<title>Inkscape Summit 2024 Rennes</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Inkscape_Summit_2024_Rennes&amp;diff=122677"/>
		<updated>2024-03-05T16:52:46Z</updated>

		<summary type="html">&lt;p&gt;Tavmjong: /* Venue */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
This page details the planning of Inkscape's &amp;lt;span style=&amp;quot;color:darkred&amp;quot;&amp;gt;PROPOSED&amp;lt;/span&amp;gt; 2024 Summit in Rennes, France, May 6th to May 8th. It is just prior to LGM which is from May 9 to May 12th.&lt;br /&gt;
&lt;br /&gt;
Old: [[Hackfest2023 Bensberg]] [[Hackfest2019 Saarbrücken]], [[Hackfest2019 SCALE]], [[Hackfest2018 Kiel]], [[Hackfest2018 LGM]], [[Hackfest2018]], [[Hackfest2017]], [[Hackfest2016]], [[Hackfest2015]].&lt;br /&gt;
&lt;br /&gt;
= Inkscape Summit: Rennes, France =&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
A gathering of Inkscapers! We will work on Inkscape, website, outreach, bugs, new features, and packaging; in fact anything that can benefit from Inkscapers being physically in the same space.&lt;br /&gt;
&lt;br /&gt;
The summit will take place before (and continue informally through) the [https://libregraphicsmeeting.org/2024/ 2024 LGM conference].&lt;br /&gt;
&lt;br /&gt;
==Rennes==&lt;br /&gt;
&lt;br /&gt;
Rennes is a city about two hours by train west of Paris.&lt;br /&gt;
&lt;br /&gt;
* [https://en.wikipedia.org/wiki/Rennes Rennes on Wikipedia]&lt;br /&gt;
* [https://www.tourisme-rennes.com/en Tourism (official)]&lt;br /&gt;
&lt;br /&gt;
==Venue==&lt;br /&gt;
&lt;br /&gt;
TO BE VERIFIED&lt;br /&gt;
&lt;br /&gt;
The Summit will take place at Activdesign, 4A rue du Bignon. It's an art school who teach Inkscape, Krita, Blender and Godot.&lt;br /&gt;
&lt;br /&gt;
==LGM==&lt;br /&gt;
&lt;br /&gt;
Thursday, 9th of May through Sunday, 12th of May. [https://libregraphicsmeeting.org/2024/program.html Program]&lt;br /&gt;
&lt;br /&gt;
==Catering==&lt;br /&gt;
&lt;br /&gt;
?&lt;br /&gt;
&lt;br /&gt;
==Facilities==&lt;br /&gt;
&lt;br /&gt;
TO BE UPDATED&lt;br /&gt;
* Wireless&lt;br /&gt;
* Europlug type C and F.&lt;br /&gt;
* LCD projector&lt;br /&gt;
* White board&lt;br /&gt;
* Café, Tea, micro-waves, water&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Nearby Amenities==&lt;br /&gt;
&lt;br /&gt;
The center is at 20 min in bus.&lt;br /&gt;
&lt;br /&gt;
==Accomidations==&lt;br /&gt;
&lt;br /&gt;
In the center of the city you have some hostels with ** or *****.&lt;br /&gt;
Near Activdesign there is an ibis budget. Maybe a one or two shared AirBnB's.&lt;br /&gt;
&lt;br /&gt;
==Summit Dinner==&lt;br /&gt;
&lt;br /&gt;
An informal dinner will be held on ?.&lt;br /&gt;
Lot of choice of restaurant : japonese, breton, italian, marocco. All are very good. Maybe is depending on the number. Japonese restaurant is quite little and the marocco is bigger and also very good. The breton are plenty but the good one have to be booked.&lt;br /&gt;
&lt;br /&gt;
==Attendance==&lt;br /&gt;
&lt;br /&gt;
Anybody interested in Inkscape is welcome to attend. Funding support for travel expenses is based active participation on the Inkscape community. See the [[Summit2024 Rennes Attendees]] page for more details.&lt;br /&gt;
&lt;br /&gt;
==Summit Topics and Schedule==&lt;br /&gt;
&lt;br /&gt;
A schedule will be developed based on input from attendees and the Inkscape community. See the [[Summit2024 Rennes Topics]] page for further details.&lt;br /&gt;
&lt;br /&gt;
==Helpers==&lt;br /&gt;
&lt;br /&gt;
The following folk have offered to assist with organization work, in limited capacities:&lt;br /&gt;
&lt;br /&gt;
* You&lt;br /&gt;
* And you?&lt;br /&gt;
* Tav&lt;br /&gt;
&lt;br /&gt;
[[Category:Hackfest]]&lt;/div&gt;</summary>
		<author><name>Tavmjong</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Inkscape_Summit_2024_Rennes&amp;diff=122676</id>
		<title>Inkscape Summit 2024 Rennes</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Inkscape_Summit_2024_Rennes&amp;diff=122676"/>
		<updated>2024-03-05T16:52:30Z</updated>

		<summary type="html">&lt;p&gt;Tavmjong: /* LGM */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
This page details the planning of Inkscape's &amp;lt;span style=&amp;quot;color:darkred&amp;quot;&amp;gt;PROPOSED&amp;lt;/span&amp;gt; 2024 Summit in Rennes, France, May 6th to May 8th. It is just prior to LGM which is from May 9 to May 12th.&lt;br /&gt;
&lt;br /&gt;
Old: [[Hackfest2023 Bensberg]] [[Hackfest2019 Saarbrücken]], [[Hackfest2019 SCALE]], [[Hackfest2018 Kiel]], [[Hackfest2018 LGM]], [[Hackfest2018]], [[Hackfest2017]], [[Hackfest2016]], [[Hackfest2015]].&lt;br /&gt;
&lt;br /&gt;
= Inkscape Summit: Rennes, France =&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
A gathering of Inkscapers! We will work on Inkscape, website, outreach, bugs, new features, and packaging; in fact anything that can benefit from Inkscapers being physically in the same space.&lt;br /&gt;
&lt;br /&gt;
The summit will take place before (and continue informally through) the [https://libregraphicsmeeting.org/2024/ 2024 LGM conference].&lt;br /&gt;
&lt;br /&gt;
==Rennes==&lt;br /&gt;
&lt;br /&gt;
Rennes is a city about two hours by train west of Paris.&lt;br /&gt;
&lt;br /&gt;
* [https://en.wikipedia.org/wiki/Rennes Rennes on Wikipedia]&lt;br /&gt;
* [https://www.tourisme-rennes.com/en Tourism (official)]&lt;br /&gt;
&lt;br /&gt;
==Venue==&lt;br /&gt;
&lt;br /&gt;
TO BE VERIFIED&lt;br /&gt;
&lt;br /&gt;
The hackfest will take place at Activdesign, 4A rue du Bignon. It's an art school who teach Inkscape, Krita, Blender and Godot.&lt;br /&gt;
&lt;br /&gt;
==LGM==&lt;br /&gt;
&lt;br /&gt;
Thursday, 9th of May through Sunday, 12th of May. [https://libregraphicsmeeting.org/2024/program.html Program]&lt;br /&gt;
&lt;br /&gt;
==Catering==&lt;br /&gt;
&lt;br /&gt;
?&lt;br /&gt;
&lt;br /&gt;
==Facilities==&lt;br /&gt;
&lt;br /&gt;
TO BE UPDATED&lt;br /&gt;
* Wireless&lt;br /&gt;
* Europlug type C and F.&lt;br /&gt;
* LCD projector&lt;br /&gt;
* White board&lt;br /&gt;
* Café, Tea, micro-waves, water&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Nearby Amenities==&lt;br /&gt;
&lt;br /&gt;
The center is at 20 min in bus.&lt;br /&gt;
&lt;br /&gt;
==Accomidations==&lt;br /&gt;
&lt;br /&gt;
In the center of the city you have some hostels with ** or *****.&lt;br /&gt;
Near Activdesign there is an ibis budget. Maybe a one or two shared AirBnB's.&lt;br /&gt;
&lt;br /&gt;
==Summit Dinner==&lt;br /&gt;
&lt;br /&gt;
An informal dinner will be held on ?.&lt;br /&gt;
Lot of choice of restaurant : japonese, breton, italian, marocco. All are very good. Maybe is depending on the number. Japonese restaurant is quite little and the marocco is bigger and also very good. The breton are plenty but the good one have to be booked.&lt;br /&gt;
&lt;br /&gt;
==Attendance==&lt;br /&gt;
&lt;br /&gt;
Anybody interested in Inkscape is welcome to attend. Funding support for travel expenses is based active participation on the Inkscape community. See the [[Summit2024 Rennes Attendees]] page for more details.&lt;br /&gt;
&lt;br /&gt;
==Summit Topics and Schedule==&lt;br /&gt;
&lt;br /&gt;
A schedule will be developed based on input from attendees and the Inkscape community. See the [[Summit2024 Rennes Topics]] page for further details.&lt;br /&gt;
&lt;br /&gt;
==Helpers==&lt;br /&gt;
&lt;br /&gt;
The following folk have offered to assist with organization work, in limited capacities:&lt;br /&gt;
&lt;br /&gt;
* You&lt;br /&gt;
* And you?&lt;br /&gt;
* Tav&lt;br /&gt;
&lt;br /&gt;
[[Category:Hackfest]]&lt;/div&gt;</summary>
		<author><name>Tavmjong</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Inkscape_Summit_2024_Rennes&amp;diff=122675</id>
		<title>Inkscape Summit 2024 Rennes</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Inkscape_Summit_2024_Rennes&amp;diff=122675"/>
		<updated>2024-03-05T16:51:06Z</updated>

		<summary type="html">&lt;p&gt;Tavmjong: /* Hackfest Dinner */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
This page details the planning of Inkscape's &amp;lt;span style=&amp;quot;color:darkred&amp;quot;&amp;gt;PROPOSED&amp;lt;/span&amp;gt; 2024 Summit in Rennes, France, May 6th to May 8th. It is just prior to LGM which is from May 9 to May 12th.&lt;br /&gt;
&lt;br /&gt;
Old: [[Hackfest2023 Bensberg]] [[Hackfest2019 Saarbrücken]], [[Hackfest2019 SCALE]], [[Hackfest2018 Kiel]], [[Hackfest2018 LGM]], [[Hackfest2018]], [[Hackfest2017]], [[Hackfest2016]], [[Hackfest2015]].&lt;br /&gt;
&lt;br /&gt;
= Inkscape Summit: Rennes, France =&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
A gathering of Inkscapers! We will work on Inkscape, website, outreach, bugs, new features, and packaging; in fact anything that can benefit from Inkscapers being physically in the same space.&lt;br /&gt;
&lt;br /&gt;
The summit will take place before (and continue informally through) the [https://libregraphicsmeeting.org/2024/ 2024 LGM conference].&lt;br /&gt;
&lt;br /&gt;
==Rennes==&lt;br /&gt;
&lt;br /&gt;
Rennes is a city about two hours by train west of Paris.&lt;br /&gt;
&lt;br /&gt;
* [https://en.wikipedia.org/wiki/Rennes Rennes on Wikipedia]&lt;br /&gt;
* [https://www.tourisme-rennes.com/en Tourism (official)]&lt;br /&gt;
&lt;br /&gt;
==Venue==&lt;br /&gt;
&lt;br /&gt;
TO BE VERIFIED&lt;br /&gt;
&lt;br /&gt;
The hackfest will take place at Activdesign, 4A rue du Bignon. It's an art school who teach Inkscape, Krita, Blender and Godot.&lt;br /&gt;
&lt;br /&gt;
==LGM==&lt;br /&gt;
&lt;br /&gt;
Tuesday, 9th of May through Friday, 12th of May.&lt;br /&gt;
&lt;br /&gt;
==Catering==&lt;br /&gt;
&lt;br /&gt;
?&lt;br /&gt;
&lt;br /&gt;
==Facilities==&lt;br /&gt;
&lt;br /&gt;
TO BE UPDATED&lt;br /&gt;
* Wireless&lt;br /&gt;
* Europlug type C and F.&lt;br /&gt;
* LCD projector&lt;br /&gt;
* White board&lt;br /&gt;
* Café, Tea, micro-waves, water&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Nearby Amenities==&lt;br /&gt;
&lt;br /&gt;
The center is at 20 min in bus.&lt;br /&gt;
&lt;br /&gt;
==Accomidations==&lt;br /&gt;
&lt;br /&gt;
In the center of the city you have some hostels with ** or *****.&lt;br /&gt;
Near Activdesign there is an ibis budget. Maybe a one or two shared AirBnB's.&lt;br /&gt;
&lt;br /&gt;
==Summit Dinner==&lt;br /&gt;
&lt;br /&gt;
An informal dinner will be held on ?.&lt;br /&gt;
Lot of choice of restaurant : japonese, breton, italian, marocco. All are very good. Maybe is depending on the number. Japonese restaurant is quite little and the marocco is bigger and also very good. The breton are plenty but the good one have to be booked.&lt;br /&gt;
&lt;br /&gt;
==Attendance==&lt;br /&gt;
&lt;br /&gt;
Anybody interested in Inkscape is welcome to attend. Funding support for travel expenses is based active participation on the Inkscape community. See the [[Summit2024 Rennes Attendees]] page for more details.&lt;br /&gt;
&lt;br /&gt;
==Summit Topics and Schedule==&lt;br /&gt;
&lt;br /&gt;
A schedule will be developed based on input from attendees and the Inkscape community. See the [[Summit2024 Rennes Topics]] page for further details.&lt;br /&gt;
&lt;br /&gt;
==Helpers==&lt;br /&gt;
&lt;br /&gt;
The following folk have offered to assist with organization work, in limited capacities:&lt;br /&gt;
&lt;br /&gt;
* You&lt;br /&gt;
* And you?&lt;br /&gt;
* Tav&lt;br /&gt;
&lt;br /&gt;
[[Category:Hackfest]]&lt;/div&gt;</summary>
		<author><name>Tavmjong</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Inkscape_Summit_2024_Rennes&amp;diff=122674</id>
		<title>Inkscape Summit 2024 Rennes</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Inkscape_Summit_2024_Rennes&amp;diff=122674"/>
		<updated>2024-03-05T16:50:51Z</updated>

		<summary type="html">&lt;p&gt;Tavmjong: /* Hackfest Topics and Schedule */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
This page details the planning of Inkscape's &amp;lt;span style=&amp;quot;color:darkred&amp;quot;&amp;gt;PROPOSED&amp;lt;/span&amp;gt; 2024 Summit in Rennes, France, May 6th to May 8th. It is just prior to LGM which is from May 9 to May 12th.&lt;br /&gt;
&lt;br /&gt;
Old: [[Hackfest2023 Bensberg]] [[Hackfest2019 Saarbrücken]], [[Hackfest2019 SCALE]], [[Hackfest2018 Kiel]], [[Hackfest2018 LGM]], [[Hackfest2018]], [[Hackfest2017]], [[Hackfest2016]], [[Hackfest2015]].&lt;br /&gt;
&lt;br /&gt;
= Inkscape Summit: Rennes, France =&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
A gathering of Inkscapers! We will work on Inkscape, website, outreach, bugs, new features, and packaging; in fact anything that can benefit from Inkscapers being physically in the same space.&lt;br /&gt;
&lt;br /&gt;
The summit will take place before (and continue informally through) the [https://libregraphicsmeeting.org/2024/ 2024 LGM conference].&lt;br /&gt;
&lt;br /&gt;
==Rennes==&lt;br /&gt;
&lt;br /&gt;
Rennes is a city about two hours by train west of Paris.&lt;br /&gt;
&lt;br /&gt;
* [https://en.wikipedia.org/wiki/Rennes Rennes on Wikipedia]&lt;br /&gt;
* [https://www.tourisme-rennes.com/en Tourism (official)]&lt;br /&gt;
&lt;br /&gt;
==Venue==&lt;br /&gt;
&lt;br /&gt;
TO BE VERIFIED&lt;br /&gt;
&lt;br /&gt;
The hackfest will take place at Activdesign, 4A rue du Bignon. It's an art school who teach Inkscape, Krita, Blender and Godot.&lt;br /&gt;
&lt;br /&gt;
==LGM==&lt;br /&gt;
&lt;br /&gt;
Tuesday, 9th of May through Friday, 12th of May.&lt;br /&gt;
&lt;br /&gt;
==Catering==&lt;br /&gt;
&lt;br /&gt;
?&lt;br /&gt;
&lt;br /&gt;
==Facilities==&lt;br /&gt;
&lt;br /&gt;
TO BE UPDATED&lt;br /&gt;
* Wireless&lt;br /&gt;
* Europlug type C and F.&lt;br /&gt;
* LCD projector&lt;br /&gt;
* White board&lt;br /&gt;
* Café, Tea, micro-waves, water&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Nearby Amenities==&lt;br /&gt;
&lt;br /&gt;
The center is at 20 min in bus.&lt;br /&gt;
&lt;br /&gt;
==Accomidations==&lt;br /&gt;
&lt;br /&gt;
In the center of the city you have some hostels with ** or *****.&lt;br /&gt;
Near Activdesign there is an ibis budget. Maybe a one or two shared AirBnB's.&lt;br /&gt;
&lt;br /&gt;
==Hackfest Dinner==&lt;br /&gt;
&lt;br /&gt;
An informal dinner will be held on ?.&lt;br /&gt;
Lot of choice of restaurant : japonese, breton, italian, marocco. All are very good. Maybe is depending on the number. Japonese restaurant is quite little and the marocco is bigger and also very good. The breton are plenty but the good one have to be booked.&lt;br /&gt;
&lt;br /&gt;
==Attendance==&lt;br /&gt;
&lt;br /&gt;
Anybody interested in Inkscape is welcome to attend. Funding support for travel expenses is based active participation on the Inkscape community. See the [[Summit2024 Rennes Attendees]] page for more details.&lt;br /&gt;
&lt;br /&gt;
==Summit Topics and Schedule==&lt;br /&gt;
&lt;br /&gt;
A schedule will be developed based on input from attendees and the Inkscape community. See the [[Summit2024 Rennes Topics]] page for further details.&lt;br /&gt;
&lt;br /&gt;
==Helpers==&lt;br /&gt;
&lt;br /&gt;
The following folk have offered to assist with organization work, in limited capacities:&lt;br /&gt;
&lt;br /&gt;
* You&lt;br /&gt;
* And you?&lt;br /&gt;
* Tav&lt;br /&gt;
&lt;br /&gt;
[[Category:Hackfest]]&lt;/div&gt;</summary>
		<author><name>Tavmjong</name></author>
	</entry>
</feed>