<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.inkscape.org/wiki/index.php?action=history&amp;feed=atom&amp;title=DirectoryReorgProposal</id>
	<title>DirectoryReorgProposal - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.inkscape.org/wiki/index.php?action=history&amp;feed=atom&amp;title=DirectoryReorgProposal"/>
	<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=DirectoryReorgProposal&amp;action=history"/>
	<updated>2026-04-13T15:47:55Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.36.1</generator>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=DirectoryReorgProposal&amp;diff=88682&amp;oldid=prev</id>
		<title>Romain2Boss at 11:03, 25 May 2013</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=DirectoryReorgProposal&amp;diff=88682&amp;oldid=prev"/>
		<updated>2013-05-25T11:03:25Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Directory Reorganization Proposal ==&lt;br /&gt;
&lt;br /&gt;
[Iniitally proposed Feb 11, 2004 by B. Harrington on inkscape-devel@]&lt;br /&gt;
&lt;br /&gt;
=== Distribution / Packaging Files ===&lt;br /&gt;
&lt;br /&gt;
Presently, we have a number of files in the codebase related to&lt;br /&gt;
generation of distribution packages.  Some of these files are in the&lt;br /&gt;
root inkscape/ directory, others are in subdirs like inkscape/debian/.&lt;br /&gt;
                                                                                      &lt;br /&gt;
To head off potential clutter as Inkscape becomes supported on a wider&lt;br /&gt;
variety of systems, we should collect as many of these packaging files&lt;br /&gt;
as feasible into a subdir called inkscape/packaging/.&lt;br /&gt;
                                                                                      &lt;br /&gt;
Inside that directory would be distro-specific subdirs, plus a common&lt;br /&gt;
directory for shared scripts and collateral:&lt;br /&gt;
                                                                                      &lt;br /&gt;
    inkscape/packaging/&lt;br /&gt;
                       common/&lt;br /&gt;
                       debian/&lt;br /&gt;
                       fedora/&lt;br /&gt;
                       fink/&lt;br /&gt;
                       mandrake/&lt;br /&gt;
                       suse/&lt;br /&gt;
                                                                                      &lt;br /&gt;
&lt;br /&gt;
=== Config Files ===&lt;br /&gt;
&lt;br /&gt;
Currently we do not have global config files, but instead put the config&lt;br /&gt;
file in the user's home dir in ~/.inkscape/.  These are generated at&lt;br /&gt;
run-time by Inkscape itself, so the defaults are hard-coded into the&lt;br /&gt;
application, and can't be customized by the sysadmin except by editing&lt;br /&gt;
the appropriate header file and recompiling/repackaging the app.&lt;br /&gt;
                                                                                      &lt;br /&gt;
The correct approach for Linux apps is to have both user and global&lt;br /&gt;
configs, and to use the global as the default if the user does not yet&lt;br /&gt;
have a config file.  This way, site customizations are known (such as&lt;br /&gt;
the fact that its shared files are in /usr/share, vs. /usr/local/share,&lt;br /&gt;
vs. /opt/inkscape/share, etc.)&lt;br /&gt;
                                                                                      &lt;br /&gt;
The proposal is for Inkscape to establish its config file location in&lt;br /&gt;
/etc/inkscape/, and to place a global preferences.xml file there, as&lt;br /&gt;
well as any other config files we need later, like extensions.xml, etc.&lt;br /&gt;
                                                                                      &lt;br /&gt;
Ideally, the global config file would be loaded first, and then the user&lt;br /&gt;
config file &amp;quot;override&amp;quot; any portion of the global options.  This way the&lt;br /&gt;
user config file only needs to contain customizations, so that if we&lt;br /&gt;
choose to change the defaults in a future install, the user's config&lt;br /&gt;
files do not necessarily become invalid.&lt;br /&gt;
                                                                                      &lt;br /&gt;
Inside the CVS codebase, the default etc. files would be stored in&lt;br /&gt;
inkscape/etc/, instead of being produced by the application at runtime.&lt;br /&gt;
During installation, installation-specific parameters (such as alternate&lt;br /&gt;
paths for various files) will be substituted in appropriately.&lt;br /&gt;
&lt;br /&gt;
[Note:  There is a proposal to use GConf in favor of flat config files,&lt;br /&gt;
which would make this section of the proposal unnecessary.  -- Bryce]&lt;br /&gt;
&lt;br /&gt;
=== &amp;quot;Share&amp;quot; Collateral ===&lt;br /&gt;
&lt;br /&gt;
Inkscape currently generates a /usr/local/share/inkscape/ directory&lt;br /&gt;
during install, and copies the contents of the codebase's icons/&lt;br /&gt;
directory to that location.&lt;br /&gt;
                                                                                      &lt;br /&gt;
We need more pieces of collateral installed, and need to do so in a more&lt;br /&gt;
organized manner.  The recommendation is to establish a set of subdirs&lt;br /&gt;
in /usr/local/share/inkscape/, as follows:&lt;br /&gt;
                                                                                      &lt;br /&gt;
    AUTHORS&lt;br /&gt;
    NEWS&lt;br /&gt;
    clipart/&lt;br /&gt;
    examples/&lt;br /&gt;
    extensions/&lt;br /&gt;
    fonts/&lt;br /&gt;
    gradients/&lt;br /&gt;
    icons/&lt;br /&gt;
    keyboards/&lt;br /&gt;
    markers/&lt;br /&gt;
    palettes/&lt;br /&gt;
    patterns/&lt;br /&gt;
    screens/&lt;br /&gt;
        about.svg&lt;br /&gt;
    templates/&lt;br /&gt;
    tutorials/&lt;br /&gt;
                                                                                      &lt;br /&gt;
This uses a flat hierarchy for the sake of simplicity.&lt;br /&gt;
                                                                                      &lt;br /&gt;
In the CVS codebase, all of these would be placed in inkscape/share/ (except AUTHORS and NEWS which will be copied to share).&lt;br /&gt;
This way, the installation script could be set up to recursively copy&lt;br /&gt;
everything in that directory to the target share directory, and we won't&lt;br /&gt;
need to specify each of the subdirs in that script, which will make&lt;br /&gt;
maintenance less hassle.&lt;br /&gt;
                                                                                      &lt;br /&gt;
For clipart, I think we definitely want to consider being able to tie in&lt;br /&gt;
with &amp;quot;external&amp;quot; clipart collections.  One way would be to simply put&lt;br /&gt;
symlinks in the clipart dir to those collections.  This way, if the&lt;br /&gt;
flags package were to install into /usr/share/flags-svg/, we'd just&lt;br /&gt;
symlink there.&lt;br /&gt;
                                                                                      &lt;br /&gt;
Possibly similarly for extensions.&lt;br /&gt;
                                                                                      &lt;br /&gt;
I think an argument could be made that the tutorials ought to be placed&lt;br /&gt;
somewhere under the /usr/doc/ or /usr/local/doc/ path, so I'm not 100%&lt;br /&gt;
certain of having the tutorials located here.&lt;br /&gt;
&lt;br /&gt;
[[Category:Proposals]]&lt;/div&gt;</summary>
		<author><name>Romain2Boss</name></author>
	</entry>
</feed>