<?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=Theadib</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=Theadib"/>
	<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/Special:Contributions/Theadib"/>
	<updated>2026-05-01T04:38:31Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.36.1</generator>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Creating_Inkscape_distributions&amp;diff=90914</id>
		<title>Creating Inkscape distributions</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Creating_Inkscape_distributions&amp;diff=90914"/>
		<updated>2014-06-22T21:54:13Z</updated>

		<summary type="html">&lt;p&gt;Theadib: update information for building and packaging for win32 platform&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Other languages|en=Creating Inkscape distributions}}&lt;br /&gt;
&lt;br /&gt;
== Creating Dists of Inkscape ==&lt;br /&gt;
&lt;br /&gt;
Those who wish to produce packaged releases of inkscape are welcome to do so.&lt;br /&gt;
If it is packages changes that you've made to the official release, please select a version name that distinguishes it from the official version, to avoid confusion.  For example, “inkscape-0.35-johndoe.tar.gz”.  Please consider distributing your changes as a patch rather than as a full distribution, as patches tend to be easier to  maintain.&lt;br /&gt;
&lt;br /&gt;
Inkscape's release process works like this:&lt;br /&gt;
&lt;br /&gt;
# Chill - Wrap up development work&lt;br /&gt;
# Frost - Feature work should be complete.  Bug Hunt&lt;br /&gt;
# Feature Freeze - Critical bug fixing&lt;br /&gt;
# Hard Freeze - Two freeze wardens are named.  All development must be done as patches submitted to the freeze wardens for review and integration.&lt;br /&gt;
# Branch - The codebase is tagged and branched.  Final release tarball is posted.  The codebase is returned to regular open development.&lt;br /&gt;
# Packaging - Three days are allowed for creating release dists (rpm's, deb's, exe's, and autopackages).&lt;br /&gt;
# Release Announcement - A Release Announcement and a Press Release are written and circulated to relevant online news sites.  Our Freshmeat record is updated.  &lt;br /&gt;
&lt;br /&gt;
=== Feature Freeze Mode ===&lt;br /&gt;
&lt;br /&gt;
In the run-up to [[CreatingDists]], for a short time preceding the tagging of the release it's a good idea to hold off on adding new features or doing other major changes like architectural changes to the code that might decrease its stability.  Whether a change is minor enough to be “ok” is left to the developer's judgement, and they're trusted to be conservative and careful.&lt;br /&gt;
&lt;br /&gt;
The most useful activity to do during a feature freeze is to locate and/or fix bugs that produce crashes, and to do so with the smallest amount of change to the codebase possible.  If a “proper” fix requires architectural changes or redesign of the code, consider writing that up as a post-release task.&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
It might be useful to branch off a release branch a week before making the release.  Hopefully most people using CVS would switch to this branch at this time.  Then only bug fixes can go into that branch.  --[[Ted]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Branching the release candidate ===&lt;br /&gt;
&lt;br /&gt;
Before release, a branch should have been be created for that release in the form RELEASE_&amp;lt;major&amp;gt;_&amp;lt;minor&amp;gt;_BRANCH.  For example, 0.38 should have a branch called RELEASE_0_38_BRANCH.&lt;br /&gt;
&lt;br /&gt;
Minor fixes and code review can then be performed on that branch before the final release; it also permits making future point releases easily (if necessary).&lt;br /&gt;
&lt;br /&gt;
To create the release branch, do the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;svn copy https://inkscape.svn.sourceforge.net/svnroot/inkscape/inkscape/trunk https://inkscape.svn.sourceforge.net/svnroot/inkscape/inkscape/branches/RELEASE_0_38_BRANCH&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To check out this branch:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;svn checkout https://inkscape.svn.sourceforge.net/svnroot/inkscape/inkscape/branches/RELEASE_0_38_BRANCH inkscape-0.38-branch&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once the release is deemed ready a distribution tarball should be created as below.&lt;br /&gt;
&lt;br /&gt;
=== Creating a distribution source tarball package ===&lt;br /&gt;
&lt;br /&gt;
On the release branch (NOT ON HEAD):&lt;br /&gt;
&lt;br /&gt;
* Set the version name via the file configure.ac in the AC_INIT() macro, CMakeList.txt, packaging/win32/inkscape.nsi, src/inkscape.rc, src/inkview.rc, src/inkscape-x64.rc, src/inkview-x64.rc build-lx.xml, build-x64.xml and build.xml&lt;br /&gt;
* Run `perl packaging/mkNEWS 0.91 &amp;gt; NEWS` to add the release notes into the NEWS file in the release branch. This command requires perl and w3m. Don't forget to replace 0.91 with the correct version number.  The NEWS file may need some manual cleanup, so do a quick review of it.&lt;br /&gt;
* Run ./autogen.sh --no-configure &amp;amp;&amp;amp; ./configure (with any flags, e.g. CXXFLAGS=).&lt;br /&gt;
* Run “cd src &amp;amp;&amp;amp; make helper/sp-marshal.h helper/sp-marshal.cpp”, then do “bzr status” to check for anything strange (e.g. source files accidentally added or removed)&lt;br /&gt;
* Run “bzr commit -m 'update for release'” to commit the changed configure.ac and other files to the branch.&lt;br /&gt;
* Run &amp;quot;cd po &amp;amp;&amp;amp; make update-po&amp;quot; to update the translation files.  This especially must be done when declaring string freeze.  Then &amp;quot;bzr commit -m'update translations'&amp;quot; for these changes as well.&lt;br /&gt;
* Run &amp;quot;make dist&amp;quot;&lt;br /&gt;
* This should produce inkscape-VERSION.tar.gz, inkscape-VERSION.tar.bz2, and inkscape-VERSION.zip&lt;br /&gt;
* In SourceForge's admin interface create a VERSION folder, and then upload these three packages.&lt;br /&gt;
* Tag the release in bzr.  Release tags should be in the form INKSCAPE_&amp;lt;major&amp;gt;_&amp;lt;minor&amp;gt;_&amp;lt;point&amp;gt;. A non-point-release like 0.91 would get the tag INKSCAPE_0_91_0, 0.91.1 would get the tag INKSCAPE_0_91_1, and so on.  Pre-releases are tagged like INKSCAPE_0_91_PRE0.&lt;br /&gt;
&lt;br /&gt;
On HEAD:&lt;br /&gt;
&lt;br /&gt;
* After establishing the release branch, change the master trunk's configure.ac, inkscape.rc, inkview.rc to reflect the new future version, 0.91+devel.&lt;br /&gt;
&lt;br /&gt;
=== GPG signing Tarballs === &lt;br /&gt;
&lt;br /&gt;
Downstream packagers are asking for and may soon demand gpg signed tarballs. For Fedora, this is not a requirement, but does ease acceptance of packages. It also shows we are doing “The Right Thing”. md5sums are not foolproof.&lt;br /&gt;
 &lt;br /&gt;
* To create a gpg signed tarball:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;$gpg -u packager@foo.net --armor --output tarball.sig --detach-sig tarball.tar.gz&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* To verify :  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;$gpg --verify ./tarball.asc ./tarball.tar.gz&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Of course, this step doesn't mean much in practice unless people have a trust path to your key.  Packagers are encouraged to attend key signing parties and take other measures to establish important trust paths to their keys (particularly with downstream packagers).&lt;br /&gt;
&lt;br /&gt;
:Where are the public keys matching these sig's posted?&lt;br /&gt;
&lt;br /&gt;
=== Creating a Windows Distro ===&lt;br /&gt;
Inkscape/sodipodi has always been&lt;br /&gt;
buildable on Win32.  The problem with the sodipodi and original inkscape build, though,&lt;br /&gt;
was that the Win32 builder had to download and configure&lt;br /&gt;
a lot of things to make it to work.    Mingw, MSYS, automake,&lt;br /&gt;
autoconf, pkg-config, the codepages, etc.  He would spend more&lt;br /&gt;
time on THAT than the actual code.&lt;br /&gt;
&lt;br /&gt;
What a pain for the average developer/user who merely wants&lt;br /&gt;
to make Inkscape do what he wants it to do.  Why waste&lt;br /&gt;
days and days getting it to compile, when the developer&lt;br /&gt;
would rather be working on the program itself?&lt;br /&gt;
&lt;br /&gt;
So we spent several weeks collecting libraries, building others,&lt;br /&gt;
installing the codepages into the source (which we can delete soon&lt;br /&gt;
because of Pango) and creating a set of clean makefiles&lt;br /&gt;
that work on Win9x, NT, XP, and the cross-compiler.&lt;br /&gt;
It is a bit more work for people like me, but hopefully it&lt;br /&gt;
attains its goal of saving a lot of work for other people.&lt;br /&gt;
&lt;br /&gt;
Also, remember that on Unix/Linux,  $PREFIX is commonly&lt;br /&gt;
/usr/local  or  /usr  or something like that. In windows, all of&lt;br /&gt;
a program's files are typically located in their own directory.  So all&lt;br /&gt;
of the files are located relative to “.”.  Actually, relative to&lt;br /&gt;
the .exe that is currently running.&lt;br /&gt;
&lt;br /&gt;
.....anyway, just wanted to explain that there is a reason&lt;br /&gt;
for the Win32 build to be constructed in such a manner,&lt;br /&gt;
and that we haven't just been arbitrary.&lt;br /&gt;
&lt;br /&gt;
The version numbers in the FILEVERSION and PRODUCTVERSION fields within inkscape.rc and inkview.rc need to be updated to reflect the current version number of the release.&lt;br /&gt;
&lt;br /&gt;
Once the tree is built ('''mingwenv''', '''g++ buildtool.cpp -O3 -g0 -fopenmp -o btool''' and '''btool''') into the “inkscape” directory, the [http://nsis.sourceforge.net/ NSIS] installer script “inkscape.nsi” can be run to create the self-extracting win32 installer.&lt;br /&gt;
&lt;br /&gt;
The Windows download package should be named according to the following scheme:&lt;br /&gt;
&lt;br /&gt;
    inkscape-$RELEASE-$PKG.$WINVER.exe&lt;br /&gt;
&lt;br /&gt;
Where $WINVER is the required Windows version, e.g. “win32”.  For example:&lt;br /&gt;
&lt;br /&gt;
    inkscape-0.37-1.win32.exe&lt;br /&gt;
&lt;br /&gt;
The new wix installer in the packaging/wix directory creates msi packages. Follow the instructions in the README file. The installer scripts parse version information from the src/inkscape.rc and inkscape/inkscape.exe file. Depending on the architecture build the generated packed is named as:&lt;br /&gt;
&lt;br /&gt;
    inkscape-$RELEASE.msi or&lt;br /&gt;
    inkscape-$RELEASE-x64.msi&lt;br /&gt;
&lt;br /&gt;
=== Creating a Debian .deb ===&lt;br /&gt;
&lt;br /&gt;
The article [[CompilingDebian]] provides a makefile to download a tarball and build a debian package therefrom.&lt;br /&gt;
&lt;br /&gt;
=== Creating a distribution RPM ===&lt;br /&gt;
&lt;br /&gt;
Method A:&lt;br /&gt;
# do as above for tarball, or download the release tarball&lt;br /&gt;
# login as root&lt;br /&gt;
# rpmbuild -tb inkscape-x.x.tar.gz&lt;br /&gt;
# Your RPMs will be in /usr/src/rpm[[/RPMS]] (/usr/src/redhat on RH systems)&lt;br /&gt;
# RPMs should be GPG signed&lt;br /&gt;
&lt;br /&gt;
Method B:&lt;br /&gt;
# do as above for tarball, or download the release tarball&lt;br /&gt;
# mkdir ~/rpm&lt;br /&gt;
# Copy the tarball to ~/rpm/SOURCES/&lt;br /&gt;
# Copy the inkscape.spec from the tarball to ~/rpm/SPECS/inkscape.spec&lt;br /&gt;
# rpmbuild -ba ~/rpm/SPECS/inkscape.spec&lt;br /&gt;
# Your RPMs will be in ~/rpm/RPMS and ~/rpm/SRPMS&lt;br /&gt;
# RPMs should be GPG signed&lt;br /&gt;
&lt;br /&gt;
The rpm should be named according to the following pattern:&lt;br /&gt;
&lt;br /&gt;
   inkscape-$RELEASE-$PKG.$DISTRO.$ARCH.rpm&lt;br /&gt;
&lt;br /&gt;
Where:&lt;br /&gt;
&lt;br /&gt;
$RELEASE: the Inkscape release number, such as “0.37”, “0.36.2”, etc.  &lt;br /&gt;
The third number should be omitted if it is 0.  (I.e., 0.37 instead of 0.37.0)&lt;br /&gt;
&lt;br /&gt;
$PKG:  A version number for your package.  Use a value of 1 for your package, and increment it if you&lt;br /&gt;
need to update the released package for some reason.&lt;br /&gt;
&lt;br /&gt;
$DISTRO:  The name and an indicator of the version number for the distro.  E.g.,&lt;br /&gt;
rh71, rh90, mdk91, suse90, fc1, etc.  No need to be too exhaustive with the distro versions;&lt;br /&gt;
for a given brand of distro it's probably enough to have a reasonably “modern” release&lt;br /&gt;
and an older one for legacy support.  For instance, rh71 and rh90.&lt;br /&gt;
&lt;br /&gt;
$ARCH:  The architecture that the package was built on.  E.g., i686, i386, athlon, ppc, etc.&lt;br /&gt;
Don't bother with i586 - either i386 or i686 is preferred.  The i386 packages will run on Cyrix &lt;br /&gt;
and K-6.&lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
&lt;br /&gt;
   inkscape-0.37-1.mdk80.i386.rpm&lt;br /&gt;
   inkscape-0.37-1.mdk80.i686.rpm&lt;br /&gt;
   inkscape-0.37-1.mdk91.i386.rpm&lt;br /&gt;
   inkscape-0.37-1.mdk91.i686.rpm&lt;br /&gt;
&lt;br /&gt;
   inkscape-0.37-1.fc1.i386.rpm&lt;br /&gt;
   inkscape-0.37-1.fc1.i686.rpm&lt;br /&gt;
   inkscape-0.37-1.fc1.athlon.rpm&lt;br /&gt;
   inkscape-0.37-1.fc1.ppc.rpm&lt;br /&gt;
&lt;br /&gt;
For creating spec files, feel free to list yourself as the packager, but please use &lt;br /&gt;
inkscape-devel@lists.sourceforge.net as the contact email address, to ensure that&lt;br /&gt;
questions/complaints about the RPM go to the official support channel.&lt;br /&gt;
&lt;br /&gt;
==== Patching RPMs ====&lt;br /&gt;
&lt;br /&gt;
Occasionally, the RPM will not build without some modifications.  If the problem is serious enough that it affects every packaging format, this could signal a need to do a point release, but usually you can just add a patch specifically for the RPM.  This is what RPM is for, after all.  :-)&lt;br /&gt;
&lt;br /&gt;
Here's how to do it:&lt;br /&gt;
&lt;br /&gt;
1.  Create a copy of the source tree, with the modifications needed to correct the issue.&lt;br /&gt;
2.  Generate a patch like this:&lt;br /&gt;
&lt;br /&gt;
   $ diff -uNr package-1.0/ package-1.0p/ &amp;gt; ../SOURCES/package-1.0-my.patch&lt;br /&gt;
&lt;br /&gt;
3.  Next add the patch to the RPM.  In the specfile at %_topdir/SPECS/package.spec, add a line like this at the top of the file:&lt;br /&gt;
&lt;br /&gt;
   Patch0: package-1.0-my.patch&lt;br /&gt;
&lt;br /&gt;
Then further down add a line after the %setup section, like this:&lt;br /&gt;
&lt;br /&gt;
   %prep&lt;br /&gt;
   %setup ...&lt;br /&gt;
   %patch0 -p1&lt;br /&gt;
&lt;br /&gt;
It's a very good idea to split up changes into discrete patches, giving each a different number (they don't have to be consecutively numbered).  Also, be sure to upload the patch(es) to the patch tracker so they'll get into the codebase for the next release.&lt;br /&gt;
&lt;br /&gt;
Then rebuild the package like this:&lt;br /&gt;
&lt;br /&gt;
   rpmbuild -ba SPECS/package.spec&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Signing your package ===&lt;br /&gt;
&lt;br /&gt;
First, you need to have a public/private keypair. This can be generated with gpg using 'gpg --gen-key'.&lt;br /&gt;
&lt;br /&gt;
To add a signature to an extisting package, use the command rpm --addsign /path/to/package.rpm To sign in the process of building a package, use rpmbuild -bb --sign&lt;br /&gt;
&lt;br /&gt;
To check the signature on a package, use rpm --checksig.&lt;br /&gt;
&lt;br /&gt;
=== Releasing Dists on the [[SourceForge]] File Release Tool ===&lt;br /&gt;
&lt;br /&gt;
To release a file:  (You need Release Tech permission for your Inkscape account)&lt;br /&gt;
&lt;br /&gt;
* ftp upload.sf.net  (anonymous/anonymous)&lt;br /&gt;
* cd incoming&lt;br /&gt;
* mput filename&lt;br /&gt;
* go to Admin -&amp;gt; File Releases&lt;br /&gt;
* scroll to the bottom and click [Add Release] to the inkscape item&lt;br /&gt;
* Enter 0.35 in the box &amp;amp; click “Create this Release”&lt;br /&gt;
* Fill in the form, checkbox the file you uploaded in (c)&lt;br /&gt;
* It won't give you a clear “success” message, but you can check it got in right by going to the Files list.  You can then edit any of the info you entered, to make it more correct.&lt;br /&gt;
&lt;br /&gt;
Also see [[CVSNamingConventions]] if you are making a release. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Announcing Releases ===&lt;br /&gt;
&lt;br /&gt;
When you cut a release, send a copy of the release notes as an announcement to inkscape-announce@lists.sourceforge.net.&lt;br /&gt;
If you find other mailing lists or websites that should receive the announcements, add their email address to the inkscape-announce list.  This is done by a list admin such as Bryce Harrington.&lt;br /&gt;
&lt;br /&gt;
'''[[AnnouncingReleases]]''' - Keep an eye out for other places we could announce such as distros or graphics-related sites (not only Linux-centric!).&lt;br /&gt;
&lt;br /&gt;
=== Updating Website Collateral ===&lt;br /&gt;
&lt;br /&gt;
When a new release is cut, there are several pieces of info that need to be added to the website:&lt;br /&gt;
&lt;br /&gt;
* Add a news item on front page&lt;br /&gt;
* Review/revise FAQ&lt;br /&gt;
* Review/revise Roadmap&lt;br /&gt;
* Add or revise Screenshots (if appropriate)&lt;br /&gt;
* doc directory: Add the manpage for the release, update doc/keys.html file, and change the corresponding version number(s) in doc/index.php.&lt;br /&gt;
** From the shell on inkscape.org, cd to /home/inkscape/inkscape_web and run the command “(cd ../inkscape; svn update; chmod g+w -R * 2&amp;gt;/dev/null); pod2html --cachedir=/tmp --infile=../inkscape/inkscape.pod --outfile=doc/inkscape-man.html”.&lt;br /&gt;
&lt;br /&gt;
[[Category:Help Wanted]]&lt;/div&gt;</summary>
		<author><name>Theadib</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Creating_Inkscape_distributions&amp;diff=90908</id>
		<title>Creating Inkscape distributions</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Creating_Inkscape_distributions&amp;diff=90908"/>
		<updated>2014-06-22T21:46:03Z</updated>

		<summary type="html">&lt;p&gt;Theadib: review the files to be changed for updating version number&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Other languages|en=Creating Inkscape distributions}}&lt;br /&gt;
&lt;br /&gt;
== Creating Dists of Inkscape ==&lt;br /&gt;
&lt;br /&gt;
Those who wish to produce packaged releases of inkscape are welcome to do so.&lt;br /&gt;
If it is packages changes that you've made to the official release, please select a version name that distinguishes it from the official version, to avoid confusion.  For example, “inkscape-0.35-johndoe.tar.gz”.  Please consider distributing your changes as a patch rather than as a full distribution, as patches tend to be easier to  maintain.&lt;br /&gt;
&lt;br /&gt;
Inkscape's release process works like this:&lt;br /&gt;
&lt;br /&gt;
# Chill - Wrap up development work&lt;br /&gt;
# Frost - Feature work should be complete.  Bug Hunt&lt;br /&gt;
# Feature Freeze - Critical bug fixing&lt;br /&gt;
# Hard Freeze - Two freeze wardens are named.  All development must be done as patches submitted to the freeze wardens for review and integration.&lt;br /&gt;
# Branch - The codebase is tagged and branched.  Final release tarball is posted.  The codebase is returned to regular open development.&lt;br /&gt;
# Packaging - Three days are allowed for creating release dists (rpm's, deb's, exe's, and autopackages).&lt;br /&gt;
# Release Announcement - A Release Announcement and a Press Release are written and circulated to relevant online news sites.  Our Freshmeat record is updated.  &lt;br /&gt;
&lt;br /&gt;
=== Feature Freeze Mode ===&lt;br /&gt;
&lt;br /&gt;
In the run-up to [[CreatingDists]], for a short time preceding the tagging of the release it's a good idea to hold off on adding new features or doing other major changes like architectural changes to the code that might decrease its stability.  Whether a change is minor enough to be “ok” is left to the developer's judgement, and they're trusted to be conservative and careful.&lt;br /&gt;
&lt;br /&gt;
The most useful activity to do during a feature freeze is to locate and/or fix bugs that produce crashes, and to do so with the smallest amount of change to the codebase possible.  If a “proper” fix requires architectural changes or redesign of the code, consider writing that up as a post-release task.&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
It might be useful to branch off a release branch a week before making the release.  Hopefully most people using CVS would switch to this branch at this time.  Then only bug fixes can go into that branch.  --[[Ted]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Branching the release candidate ===&lt;br /&gt;
&lt;br /&gt;
Before release, a branch should have been be created for that release in the form RELEASE_&amp;lt;major&amp;gt;_&amp;lt;minor&amp;gt;_BRANCH.  For example, 0.38 should have a branch called RELEASE_0_38_BRANCH.&lt;br /&gt;
&lt;br /&gt;
Minor fixes and code review can then be performed on that branch before the final release; it also permits making future point releases easily (if necessary).&lt;br /&gt;
&lt;br /&gt;
To create the release branch, do the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;svn copy https://inkscape.svn.sourceforge.net/svnroot/inkscape/inkscape/trunk https://inkscape.svn.sourceforge.net/svnroot/inkscape/inkscape/branches/RELEASE_0_38_BRANCH&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To check out this branch:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;svn checkout https://inkscape.svn.sourceforge.net/svnroot/inkscape/inkscape/branches/RELEASE_0_38_BRANCH inkscape-0.38-branch&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once the release is deemed ready a distribution tarball should be created as below.&lt;br /&gt;
&lt;br /&gt;
=== Creating a distribution source tarball package ===&lt;br /&gt;
&lt;br /&gt;
On the release branch (NOT ON HEAD):&lt;br /&gt;
&lt;br /&gt;
* Set the version name via the file configure.ac in the AC_INIT() macro, CMakeList.txt, packaging/win32/inkscape.nsi, src/inkscape.rc, src/inkview.rc, src/inkscape-x64.rc, src/inkview-x64.rc build-lx.xml, build-x64.xml and build.xml&lt;br /&gt;
* Run `perl packaging/mkNEWS 0.91 &amp;gt; NEWS` to add the release notes into the NEWS file in the release branch. This command requires perl and w3m. Don't forget to replace 0.91 with the correct version number.  The NEWS file may need some manual cleanup, so do a quick review of it.&lt;br /&gt;
* Run ./autogen.sh --no-configure &amp;amp;&amp;amp; ./configure (with any flags, e.g. CXXFLAGS=).&lt;br /&gt;
* Run “cd src &amp;amp;&amp;amp; make helper/sp-marshal.h helper/sp-marshal.cpp”, then do “bzr status” to check for anything strange (e.g. source files accidentally added or removed)&lt;br /&gt;
* Run “bzr commit -m 'update for release'” to commit the changed configure.ac and other files to the branch.&lt;br /&gt;
* Run &amp;quot;cd po &amp;amp;&amp;amp; make update-po&amp;quot; to update the translation files.  This especially must be done when declaring string freeze.  Then &amp;quot;bzr commit -m'update translations'&amp;quot; for these changes as well.&lt;br /&gt;
* Run &amp;quot;make dist&amp;quot;&lt;br /&gt;
* This should produce inkscape-VERSION.tar.gz, inkscape-VERSION.tar.bz2, and inkscape-VERSION.zip&lt;br /&gt;
* In SourceForge's admin interface create a VERSION folder, and then upload these three packages.&lt;br /&gt;
* Tag the release in bzr.  Release tags should be in the form INKSCAPE_&amp;lt;major&amp;gt;_&amp;lt;minor&amp;gt;_&amp;lt;point&amp;gt;. A non-point-release like 0.91 would get the tag INKSCAPE_0_91_0, 0.91.1 would get the tag INKSCAPE_0_91_1, and so on.  Pre-releases are tagged like INKSCAPE_0_91_PRE0.&lt;br /&gt;
&lt;br /&gt;
On HEAD:&lt;br /&gt;
&lt;br /&gt;
* After establishing the release branch, change the master trunk's configure.ac, inkscape.rc, inkview.rc to reflect the new future version, 0.91+devel.&lt;br /&gt;
&lt;br /&gt;
=== GPG signing Tarballs === &lt;br /&gt;
&lt;br /&gt;
Downstream packagers are asking for and may soon demand gpg signed tarballs. For Fedora, this is not a requirement, but does ease acceptance of packages. It also shows we are doing “The Right Thing”. md5sums are not foolproof.&lt;br /&gt;
 &lt;br /&gt;
* To create a gpg signed tarball:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;$gpg -u packager@foo.net --armor --output tarball.sig --detach-sig tarball.tar.gz&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* To verify :  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;$gpg --verify ./tarball.asc ./tarball.tar.gz&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Of course, this step doesn't mean much in practice unless people have a trust path to your key.  Packagers are encouraged to attend key signing parties and take other measures to establish important trust paths to their keys (particularly with downstream packagers).&lt;br /&gt;
&lt;br /&gt;
:Where are the public keys matching these sig's posted?&lt;br /&gt;
&lt;br /&gt;
=== Creating a Windows Distro ===&lt;br /&gt;
Inkscape/sodipodi has always been&lt;br /&gt;
buildable on Win32.  The problem with the sodipodi and original inkscape build, though,&lt;br /&gt;
was that the Win32 builder had to download and configure&lt;br /&gt;
a lot of things to make it to work.    Mingw, MSYS, automake,&lt;br /&gt;
autoconf, pkg-config, the codepages, etc.  He would spend more&lt;br /&gt;
time on THAT than the actual code.&lt;br /&gt;
&lt;br /&gt;
What a pain for the average developer/user who merely wants&lt;br /&gt;
to make Inkscape do what he wants it to do.  Why waste&lt;br /&gt;
days and days getting it to compile, when the developer&lt;br /&gt;
would rather be working on the program itself?&lt;br /&gt;
&lt;br /&gt;
So we spent several weeks collecting libraries, building others,&lt;br /&gt;
installing the codepages into the source (which we can delete soon&lt;br /&gt;
because of Pango) and creating a set of clean makefiles&lt;br /&gt;
that work on Win9x, NT, XP, and the cross-compiler.&lt;br /&gt;
It is a bit more work for people like me, but hopefully it&lt;br /&gt;
attains its goal of saving a lot of work for other people.&lt;br /&gt;
&lt;br /&gt;
Also, remember that on Unix/Linux,  $PREFIX is commonly&lt;br /&gt;
/usr/local  or  /usr  or something like that. In windows, all of&lt;br /&gt;
a program's files are typically located in their own directory.  So all&lt;br /&gt;
of the files are located relative to “.”.  Actually, relative to&lt;br /&gt;
the .exe that is currently running.&lt;br /&gt;
&lt;br /&gt;
.....anyway, just wanted to explain that there is a reason&lt;br /&gt;
for the Win32 build to be constructed in such a manner,&lt;br /&gt;
and that we haven't just been arbitrary.&lt;br /&gt;
&lt;br /&gt;
The version numbers in the FILEVERSION and PRODUCTVERSION fields within inkscape.rc and inkview.rc need to be updated to reflect the current version number of the release.&lt;br /&gt;
&lt;br /&gt;
Once the tree is built (“make -f Makefile.mingw” and “make -f Makefile.mingw dist-strip”) into the “inkscape” directory, the [http://nsis.sourceforge.net/ NSIS] installer script “inkscape.nsi” can be run to create the self-extracting win32 installer.&lt;br /&gt;
&lt;br /&gt;
The Windows download package should be named according to the following scheme:&lt;br /&gt;
&lt;br /&gt;
    inkscape-$RELEASE-$PKG.$WINVER.exe&lt;br /&gt;
&lt;br /&gt;
Where $WINVER is the required Windows version, e.g. “win32”.  For example:&lt;br /&gt;
&lt;br /&gt;
    inkscape-0.37-1.win32.exe&lt;br /&gt;
&lt;br /&gt;
The new wix installer in the packaging/wix directory creates msi packages. Follow the instructions in the README file. The installer scripts parse version information from the inkscape.rc file. The generated packed is named as:&lt;br /&gt;
&lt;br /&gt;
    inkscape-$RELEASE.msi&lt;br /&gt;
&lt;br /&gt;
=== Creating a Debian .deb ===&lt;br /&gt;
&lt;br /&gt;
The article [[CompilingDebian]] provides a makefile to download a tarball and build a debian package therefrom.&lt;br /&gt;
&lt;br /&gt;
=== Creating a distribution RPM ===&lt;br /&gt;
&lt;br /&gt;
Method A:&lt;br /&gt;
# do as above for tarball, or download the release tarball&lt;br /&gt;
# login as root&lt;br /&gt;
# rpmbuild -tb inkscape-x.x.tar.gz&lt;br /&gt;
# Your RPMs will be in /usr/src/rpm[[/RPMS]] (/usr/src/redhat on RH systems)&lt;br /&gt;
# RPMs should be GPG signed&lt;br /&gt;
&lt;br /&gt;
Method B:&lt;br /&gt;
# do as above for tarball, or download the release tarball&lt;br /&gt;
# mkdir ~/rpm&lt;br /&gt;
# Copy the tarball to ~/rpm/SOURCES/&lt;br /&gt;
# Copy the inkscape.spec from the tarball to ~/rpm/SPECS/inkscape.spec&lt;br /&gt;
# rpmbuild -ba ~/rpm/SPECS/inkscape.spec&lt;br /&gt;
# Your RPMs will be in ~/rpm/RPMS and ~/rpm/SRPMS&lt;br /&gt;
# RPMs should be GPG signed&lt;br /&gt;
&lt;br /&gt;
The rpm should be named according to the following pattern:&lt;br /&gt;
&lt;br /&gt;
   inkscape-$RELEASE-$PKG.$DISTRO.$ARCH.rpm&lt;br /&gt;
&lt;br /&gt;
Where:&lt;br /&gt;
&lt;br /&gt;
$RELEASE: the Inkscape release number, such as “0.37”, “0.36.2”, etc.  &lt;br /&gt;
The third number should be omitted if it is 0.  (I.e., 0.37 instead of 0.37.0)&lt;br /&gt;
&lt;br /&gt;
$PKG:  A version number for your package.  Use a value of 1 for your package, and increment it if you&lt;br /&gt;
need to update the released package for some reason.&lt;br /&gt;
&lt;br /&gt;
$DISTRO:  The name and an indicator of the version number for the distro.  E.g.,&lt;br /&gt;
rh71, rh90, mdk91, suse90, fc1, etc.  No need to be too exhaustive with the distro versions;&lt;br /&gt;
for a given brand of distro it's probably enough to have a reasonably “modern” release&lt;br /&gt;
and an older one for legacy support.  For instance, rh71 and rh90.&lt;br /&gt;
&lt;br /&gt;
$ARCH:  The architecture that the package was built on.  E.g., i686, i386, athlon, ppc, etc.&lt;br /&gt;
Don't bother with i586 - either i386 or i686 is preferred.  The i386 packages will run on Cyrix &lt;br /&gt;
and K-6.&lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
&lt;br /&gt;
   inkscape-0.37-1.mdk80.i386.rpm&lt;br /&gt;
   inkscape-0.37-1.mdk80.i686.rpm&lt;br /&gt;
   inkscape-0.37-1.mdk91.i386.rpm&lt;br /&gt;
   inkscape-0.37-1.mdk91.i686.rpm&lt;br /&gt;
&lt;br /&gt;
   inkscape-0.37-1.fc1.i386.rpm&lt;br /&gt;
   inkscape-0.37-1.fc1.i686.rpm&lt;br /&gt;
   inkscape-0.37-1.fc1.athlon.rpm&lt;br /&gt;
   inkscape-0.37-1.fc1.ppc.rpm&lt;br /&gt;
&lt;br /&gt;
For creating spec files, feel free to list yourself as the packager, but please use &lt;br /&gt;
inkscape-devel@lists.sourceforge.net as the contact email address, to ensure that&lt;br /&gt;
questions/complaints about the RPM go to the official support channel.&lt;br /&gt;
&lt;br /&gt;
==== Patching RPMs ====&lt;br /&gt;
&lt;br /&gt;
Occasionally, the RPM will not build without some modifications.  If the problem is serious enough that it affects every packaging format, this could signal a need to do a point release, but usually you can just add a patch specifically for the RPM.  This is what RPM is for, after all.  :-)&lt;br /&gt;
&lt;br /&gt;
Here's how to do it:&lt;br /&gt;
&lt;br /&gt;
1.  Create a copy of the source tree, with the modifications needed to correct the issue.&lt;br /&gt;
2.  Generate a patch like this:&lt;br /&gt;
&lt;br /&gt;
   $ diff -uNr package-1.0/ package-1.0p/ &amp;gt; ../SOURCES/package-1.0-my.patch&lt;br /&gt;
&lt;br /&gt;
3.  Next add the patch to the RPM.  In the specfile at %_topdir/SPECS/package.spec, add a line like this at the top of the file:&lt;br /&gt;
&lt;br /&gt;
   Patch0: package-1.0-my.patch&lt;br /&gt;
&lt;br /&gt;
Then further down add a line after the %setup section, like this:&lt;br /&gt;
&lt;br /&gt;
   %prep&lt;br /&gt;
   %setup ...&lt;br /&gt;
   %patch0 -p1&lt;br /&gt;
&lt;br /&gt;
It's a very good idea to split up changes into discrete patches, giving each a different number (they don't have to be consecutively numbered).  Also, be sure to upload the patch(es) to the patch tracker so they'll get into the codebase for the next release.&lt;br /&gt;
&lt;br /&gt;
Then rebuild the package like this:&lt;br /&gt;
&lt;br /&gt;
   rpmbuild -ba SPECS/package.spec&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Signing your package ===&lt;br /&gt;
&lt;br /&gt;
First, you need to have a public/private keypair. This can be generated with gpg using 'gpg --gen-key'.&lt;br /&gt;
&lt;br /&gt;
To add a signature to an extisting package, use the command rpm --addsign /path/to/package.rpm To sign in the process of building a package, use rpmbuild -bb --sign&lt;br /&gt;
&lt;br /&gt;
To check the signature on a package, use rpm --checksig.&lt;br /&gt;
&lt;br /&gt;
=== Releasing Dists on the [[SourceForge]] File Release Tool ===&lt;br /&gt;
&lt;br /&gt;
To release a file:  (You need Release Tech permission for your Inkscape account)&lt;br /&gt;
&lt;br /&gt;
* ftp upload.sf.net  (anonymous/anonymous)&lt;br /&gt;
* cd incoming&lt;br /&gt;
* mput filename&lt;br /&gt;
* go to Admin -&amp;gt; File Releases&lt;br /&gt;
* scroll to the bottom and click [Add Release] to the inkscape item&lt;br /&gt;
* Enter 0.35 in the box &amp;amp; click “Create this Release”&lt;br /&gt;
* Fill in the form, checkbox the file you uploaded in (c)&lt;br /&gt;
* It won't give you a clear “success” message, but you can check it got in right by going to the Files list.  You can then edit any of the info you entered, to make it more correct.&lt;br /&gt;
&lt;br /&gt;
Also see [[CVSNamingConventions]] if you are making a release. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Announcing Releases ===&lt;br /&gt;
&lt;br /&gt;
When you cut a release, send a copy of the release notes as an announcement to inkscape-announce@lists.sourceforge.net.&lt;br /&gt;
If you find other mailing lists or websites that should receive the announcements, add their email address to the inkscape-announce list.  This is done by a list admin such as Bryce Harrington.&lt;br /&gt;
&lt;br /&gt;
'''[[AnnouncingReleases]]''' - Keep an eye out for other places we could announce such as distros or graphics-related sites (not only Linux-centric!).&lt;br /&gt;
&lt;br /&gt;
=== Updating Website Collateral ===&lt;br /&gt;
&lt;br /&gt;
When a new release is cut, there are several pieces of info that need to be added to the website:&lt;br /&gt;
&lt;br /&gt;
* Add a news item on front page&lt;br /&gt;
* Review/revise FAQ&lt;br /&gt;
* Review/revise Roadmap&lt;br /&gt;
* Add or revise Screenshots (if appropriate)&lt;br /&gt;
* doc directory: Add the manpage for the release, update doc/keys.html file, and change the corresponding version number(s) in doc/index.php.&lt;br /&gt;
** From the shell on inkscape.org, cd to /home/inkscape/inkscape_web and run the command “(cd ../inkscape; svn update; chmod g+w -R * 2&amp;gt;/dev/null); pod2html --cachedir=/tmp --infile=../inkscape/inkscape.pod --outfile=doc/inkscape-man.html”.&lt;br /&gt;
&lt;br /&gt;
[[Category:Help Wanted]]&lt;/div&gt;</summary>
		<author><name>Theadib</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Compiling_Inkscape_on_Windows_32-bit&amp;diff=66979</id>
		<title>Compiling Inkscape on Windows 32-bit</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Compiling_Inkscape_on_Windows_32-bit&amp;diff=66979"/>
		<updated>2011-01-20T20:14:55Z</updated>

		<summary type="html">&lt;p&gt;Theadib: /* Setting up the build environment */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Inkscape was originally written for Linux, but it has been ported to other platforms, including Windows. Since Windows is not POSIX compliant and doesn't have several features useful to developers (like package management), compiling Inkscape on Windows is more tedious than on Linux, but perfectly possible.&lt;br /&gt;
&lt;br /&gt;
==Setting up the build environment==&lt;br /&gt;
&lt;br /&gt;
To develop Inkscape, you will need the following things:&lt;br /&gt;
&lt;br /&gt;
* [http://wiki.bazaar.canonical.com/WindowsDownloads Bazaar]&lt;br /&gt;
* [http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html PuTTY] programs: puttygen.exe and pageant.exe&lt;br /&gt;
* [http://sourceforge.net/projects/tdm-gcc/files/TDM-GCC%20Installer/tdm-gcc-4.5.1.exe/download TDM-MinGW 4.5.1]&lt;br /&gt;
* [http://sourceforge.net/projects/nsis/files/NSIS%202/2.46/nsis-2.46-setup.exe/download NSIS 2.46]&lt;br /&gt;
* Launchpad account&lt;br /&gt;
&lt;br /&gt;
===Install the compiler===&lt;br /&gt;
Run the TDM-MinGW installer and install it in a path that doesn't contain spaces, preferably C:\mingw. If you install it into another path, set the environment variable MINGW_PATH to the TDM-MinGW installation directory, e.g. the one containing &amp;lt;tt&amp;gt;README-tdm-gcc.txt&amp;lt;/tt&amp;gt; (right click My Computer -&amp;gt; Properties -&amp;gt; Advanced -&amp;gt; Environment Variables). During the installation,  enable the &amp;quot;openmp support&amp;quot; checkbox from the components list or choose to install all packages (option &amp;quot;TDM-GCC recommended, All Packages&amp;quot; in the TDM-GCC 4.5.1 installer).&lt;br /&gt;
&lt;br /&gt;
If you have TDM-GCC 4.5.1, copy the file &amp;quot;\bin\libgomp-1.dll&amp;quot; &amp;quot;\lib\gcc\mingw32\bin\libgomp-1.dll&amp;quot; (paths relative to your installation directory).&lt;br /&gt;
&lt;br /&gt;
===Create your Launchpad account===&lt;br /&gt;
If you do not have an SSH public/private key pair to identify yourself:&lt;br /&gt;
*run the program puttygen.exe to generate an SSH key&lt;br /&gt;
*save both its parts.&lt;br /&gt;
Log into your Launchpad account, go to your profile page and add the public part of the generated key to the list of SSH keys. Run the program pageant.exe (you can add it to Autorun). A tray icon should appear. Right click it, select &amp;quot;Add Key&amp;quot; and pick the private key file you have just generated from the dialog. Note that you need to repeat this after every login whenever you want to access Launchpad.&lt;br /&gt;
&lt;br /&gt;
Now set up Bazaar. First tell it who you are, then associate with your Launchpad account. You need to use the account name (e.g. johnq), not the display name.(John Q. Public).&lt;br /&gt;
&lt;br /&gt;
 C:\&amp;gt; bzr whoami &amp;quot;''Your Name'' &amp;lt;''your_real_email@example.com''&amp;gt;&amp;quot;&lt;br /&gt;
 C:\&amp;gt; bzr launchpad-login ''your_launchpad_account''&lt;br /&gt;
&lt;br /&gt;
===Install the developer libraries===&lt;br /&gt;
Check out Inkscape Devlibs into C:\devlibs. If you check them out elsewhere, set the environment variable DEVLIBS_PATH to the path where they are. Devlibs are a bundle of all the libraries needed to compile Inkscape. If you experience any problems, make sure you have an up to date copy of those libraries and an up to date checkout of Inkscape source. To reduce the size of the download, pass the &amp;lt;tt&amp;gt;--lightweight&amp;lt;/tt&amp;gt; parameter.&lt;br /&gt;
&lt;br /&gt;
 C:\&amp;gt; bzr checkout --lightweight lp:inkscape-devlibs devlibs&lt;br /&gt;
&lt;br /&gt;
To update devlibs:&lt;br /&gt;
&lt;br /&gt;
 C:\devlibs&amp;gt; bzr update&lt;br /&gt;
&lt;br /&gt;
All Inkscape developers can commit to the devlibs trunk. Advanced information about Devlibs, mainy useful when you want to update them to newly released versions of upstream libraries, is available here: [[Inkscape Devlibs]].&lt;br /&gt;
You can see some infomation from [https://launchpad.net/inkscape-devlibs launchpad:inkscape-devlibs] and [http://bazaar.launchpad.net/~inkscape.dev/inkscape-devlibs/trunk/files trunk/files].&lt;br /&gt;
&lt;br /&gt;
== Obtaining Inkscape source code ==&lt;br /&gt;
&lt;br /&gt;
You can obtain released Inkscape source from a tarball. Since version 0.47 they are hosted on [https://launchpad.net/inkscape Inkscape's Launchpad page]. There are ready-made installers provided, so there's usually little reason to compile the stable version yourself.&lt;br /&gt;
&lt;br /&gt;
To obtain cutting edge code, check out Inkscape source from the Bazaar repository. You can also use the TortoiseBZR shell extensions to do this. The recommended way is to first create a shared repository, then check out the Inkscape branch into that shared repository. Using this setup, branching will be a lot faster.&lt;br /&gt;
&lt;br /&gt;
 C:\src\inkscape&amp;gt; bzr init-repo --rich-root&lt;br /&gt;
 C:\src\inkscape&amp;gt; bzr checkout lp:inkscape trunk&lt;br /&gt;
&lt;br /&gt;
If you don't want to create any branches, you can skip the shared repository step.&lt;br /&gt;
&lt;br /&gt;
 C:\src&amp;gt; bzr checkout lp:inkscape&lt;br /&gt;
&lt;br /&gt;
'''IMPORTANT:''' make sure that the path to your Inkscape source checkout does not contain spaces. Unix tools do not like them and you will end up with a lot of error messages about missing files.&lt;br /&gt;
&lt;br /&gt;
== Building Inkscape ==&lt;br /&gt;
&lt;br /&gt;
Open the command prompt, navigate to the directory with Inkscape sources. First set up some environmental variables. You only need to do this once per console session.&lt;br /&gt;
&lt;br /&gt;
 C:\src\inkscape\trunk&amp;gt; mingwenv&lt;br /&gt;
&lt;br /&gt;
Now compile the build tool. Try the second command if the first one fails.&lt;br /&gt;
&lt;br /&gt;
 C:\src\inkscape\trunk&amp;gt; g++ buildtool.cpp -o btool&lt;br /&gt;
 C:\src\inkscape\trunk&amp;gt; g++ -DNEED_GETTIMEOFDAY buildtool.cpp -o btool&lt;br /&gt;
&lt;br /&gt;
Finally initiate the compilation. Get a coffee or take your dog out for a walk, because it will take a rather long time.&lt;br /&gt;
&lt;br /&gt;
 C:\src\inkscape\trunk&amp;gt; btool&lt;br /&gt;
&lt;br /&gt;
Once everything is done, there should be an &amp;lt;tt&amp;gt;inkscape&amp;lt;/tt&amp;gt; directory that contains the Inkscape executable and libraries needed to run it.&lt;br /&gt;
&lt;br /&gt;
== Rebuilding ==&lt;br /&gt;
&lt;br /&gt;
If you have only changed a few files and want to rebuild, delete the &amp;lt;tt&amp;gt;inkscape&amp;lt;/tt&amp;gt; directory and run &amp;lt;tt&amp;gt;btool&amp;lt;/tt&amp;gt; again.&lt;br /&gt;
&lt;br /&gt;
To rebuild from scratch, execute the following sequence of commands:&lt;br /&gt;
 C:\src\inkscape\trunk&amp;gt; btool clean&lt;br /&gt;
 C:\src\inkscape\trunk&amp;gt; btool&lt;br /&gt;
&lt;br /&gt;
== Dealing With Build Errors ==&lt;br /&gt;
Feel free to add any questions or answers you have in here;&lt;br /&gt;
&lt;br /&gt;
'''Q''' - My firewall software (Comodo's Defense+ component or similar) stopped the process continuing to the next step in the build, because I wasn't there to permit an action and it timed out. What can I do?&lt;br /&gt;
&lt;br /&gt;
'''A1''' - The best thing is to disable stuff like Defense+ (put it in learning mode works) because it will stop any process that is not approved, and building makes new files which can't be approved before they're built. Disabling Comodo's Defense+ does not disable your firewall, either inbound or outbound, but just the part that scans every application for suspicious operations. Other firewalls etc may vary.&lt;br /&gt;
&lt;br /&gt;
'''A2''' - If that doesn't suit, often you can simply run btool again and wait for Defense+ (or similar) to ask for approval for the process, and it will then continue as normal with the build. But remember that approving all the processes involved in the build process once doesn't mean they will all slip through next time.&lt;br /&gt;
&lt;br /&gt;
'''A3''' - This is the more complex way to continue, but may help if you have problems with A2. If you know the stage the process was meant to be up to (look at the output in the command windows and compare to the stages in the ''build.xml'' file), you can start again from there.&lt;br /&gt;
&lt;br /&gt;
You may see something like this in the command window;&lt;br /&gt;
     =============================&lt;br /&gt;
     ## Target : link : link objects and library to create executable&lt;br /&gt;
     ---- task : rc&lt;br /&gt;
     ============ cmd ============&lt;br /&gt;
     windres -o build/inkres.o --include-dir=src src/inkscape.rc&lt;br /&gt;
     =============================&lt;br /&gt;
     ---- task : link&lt;br /&gt;
This will likely be followed by an error message. This means you were at the ''link'' stage&lt;br /&gt;
&lt;br /&gt;
Now simply type;&lt;br /&gt;
     ...&amp;gt;btool ''stage''&lt;br /&gt;
Or in this case&lt;br /&gt;
     ...&amp;gt;btool link&lt;br /&gt;
And the build will continue from there.&lt;br /&gt;
&lt;br /&gt;
After this, you will probably have to step through the remaining stages manually, one by one. The stages can include (see build.xml, where each stage is labelled 'target name=&amp;quot;''target''&amp;quot;') ''init'', ''touchabout'', ''compile'', ''java'', ''lib'', ''i18n'', ''link'', ''linkinkview'', ''dist'', ''dist-all'', ''clean''. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Q''' - How do I rebuild just one ''file.o'' file? For instance if one particular file has gone wrong, or I want to try patching just one part of the code.&lt;br /&gt;
&lt;br /&gt;
'''A''' - To find the right command for building any particular file in Inkscape, just look in the compile.lst after you have used btool once. Search for the name of the particular file (eg: print.cpp) and you will find the command used to compile it. You'll need to paste this into a text file, remove any carriage reurns and then paste that onto the command line.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Q''' - After I patched a file, I left a backup of the old file in the same directory called Copy of{filename}.cpp. The compiler complains about this file when building and stops.&lt;br /&gt;
&lt;br /&gt;
'''A''' - Do not leave anything with a suffix .cpp in the source directories, apart from the original (or patched) source files. The build tool will try to compile everything ending in .cpp and will complain. If you backup an old file in the same directory before patching, call it {filename}.cpp.old or similar.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Q''' - I think I followed the instruction above. What could have caused the compiling error like this for src/extension/internal/pdfinput/pdf-parser.cpp?&lt;br /&gt;
&lt;br /&gt;
     src/extension/internal/pdfinput/pdf-parser.cpp:2248: error: no matching function for call to 'GfxFont::getNextChar(char*&amp;amp;, int&amp;amp;, CharCode*, Unicode [8], int, int*, double*, double*, double*, double*)'&lt;br /&gt;
&lt;br /&gt;
Same error for line 2297 as well.&lt;br /&gt;
&lt;br /&gt;
=== For more information ===&lt;br /&gt;
There is some old information on building Inkscape with either Mingw on Windows, or a cross-compiler on Linux, at http://inkscape.modevia.com/win32_inkscape_org/win32buildnotes.html&lt;br /&gt;
and old files mey be&lt;br /&gt;
http://inkscape.modevia.com/win32libs/&lt;br /&gt;
== Creating an installer ==&lt;br /&gt;
&lt;br /&gt;
To create the setup package you need the NSIS installer on your PC. Get that from http://nsis.sf.net .&lt;br /&gt;
You have successfully built Inkscape and everything is in the ...\inkscape\ directory.&lt;br /&gt;
Open the ...\packaging\win32\inkscape.nsi using the NSIS program and compile the package. Sooo easy :-)&lt;br /&gt;
&lt;br /&gt;
== Note about Unicode ==&lt;br /&gt;
&lt;br /&gt;
The GTK stack depends on functions only present in NT-based Windows (2000 and later). Therefore, Inkscape code can assume that Unicode functions from the Windows API (like GetCommandLineW) are always present. Note however that you should use the GLib/GTK functions rather the Windows API whenever possible.&lt;br /&gt;
&lt;br /&gt;
=See also=&lt;br /&gt;
*[[Compiling Inkscape]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Developer Documentation]]&lt;/div&gt;</summary>
		<author><name>Theadib</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=PerformanceMeasures&amp;diff=53985</id>
		<title>PerformanceMeasures</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=PerformanceMeasures&amp;diff=53985"/>
		<updated>2009-09-30T20:00:57Z</updated>

		<summary type="html">&lt;p&gt;Theadib: /* build times for Inkscape-0.47pre3.tar.gz */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Developer Documentation]]&lt;br /&gt;
&lt;br /&gt;
== Performance Measures ==&lt;br /&gt;
&lt;br /&gt;
=== build times ===&lt;br /&gt;
&lt;br /&gt;
==== build times for Inkscape-0.47pre3.tar.gz ====&lt;br /&gt;
* my machine: Laptop DELL latitude D520 - E5500 Dualcore@1.6GHz 3329 bogomips 2GBRAM&lt;br /&gt;
** Linux Ubuntu9.04: &amp;quot;time make -j2&amp;quot; '''real 22m38 user36m21 sys 2m57'''&lt;br /&gt;
** Windows XP: &amp;quot;g++ buildtool.cpp -O2 -g0 -mtune=prescott&amp;quot; -o btool&amp;quot; &amp;quot;btool clean&amp;quot; &amp;quot;btool&amp;quot; '''46m57'''&lt;br /&gt;
&lt;br /&gt;
* uwesch's machine: Laptop HP nx9420 T7400 Dualcore@2.16GHz 2GB RAM&lt;br /&gt;
** Windows 7: &amp;quot;g++ buildtool.cpp -O2 -g0 -mtune=prescott&amp;quot; -o btool&amp;quot; &amp;quot;btool clean&amp;quot; &amp;quot;btool&amp;quot; '''48m52'''&lt;br /&gt;
&lt;br /&gt;
* my machine: Destop - E7200 Dualcore@2.5GHz 5066 bogomips 2GBRAM&lt;br /&gt;
** Linux Ubuntu9.04: &amp;quot;time make -j2&amp;quot; '''real 13m7 user 23m15 sys 1m53'''&lt;/div&gt;</summary>
		<author><name>Theadib</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Multipage&amp;diff=51174</id>
		<title>Multipage</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Multipage&amp;diff=51174"/>
		<updated>2009-04-23T13:05:28Z</updated>

		<summary type="html">&lt;p&gt;Theadib: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Multipage support ==&lt;br /&gt;
* this feature is currently not implemented&lt;br /&gt;
* this page describes how the feature should be implemented&lt;br /&gt;
* there should be multiple pages within a document&lt;br /&gt;
* problem arises when saving to singlepage file formats (jpg, png, etc)&lt;br /&gt;
* SVG does not support multipage per se, but upcomming SVG will do [[http://www.w3.org/TR/2004/WD-SVG12-20041027/multipage.html see W3.org]]&lt;br /&gt;
* There are two contrary implementattions in the real world:&lt;br /&gt;
** distribute pages around the graphics elements - the Adobe way&lt;br /&gt;
** distribute graphics elements around the pages - how Corel does it and how SVG propose it&lt;br /&gt;
&lt;br /&gt;
== multipage in the SVG standard ==&lt;br /&gt;
* All pages are contained within a single pageSet element. A pageSet may contain any number of page elements. Each page element defines a single container of graphical objects. &lt;br /&gt;
* In a screen-based user agent, only one page element is displayed at any time on the main canvas.&lt;br /&gt;
* The SVG content typically defines a page dimension or aspect ratio in the topmost svg element and its viewBox. The viewBox transformation applies to printed SVG in the same way as screen display.&lt;br /&gt;
* The orientation of each page element can be controlled by the page-orientation property. This enables the content to define whether a portrait or landscape mode is used for display and printing.&lt;br /&gt;
&lt;br /&gt;
== multipage ala Corel ==&lt;br /&gt;
* there is a list of pages as tabs on the lower side of the drawing window&lt;br /&gt;
* all pages share the same page properties&lt;br /&gt;
* a '''master page''' contains elements that are visible on all other pages: drawings, markers&lt;br /&gt;
* in an object browser pages and layers are integrated&lt;br /&gt;
* see a screenshot [[http://wiki.inkscape.org/wiki/images/Corel_pages.PNG here]]&lt;br /&gt;
&lt;br /&gt;
== Multi-page tool(similar to Artboard tool on adobe illustrator cs4). ==&lt;br /&gt;
* see this adobe tutorial [[http://www.adobe.com/designcenter/illustrator/articles/lrvid4016_ai.html here]]&lt;br /&gt;
* there is an [[http://www.vimeo.com/2503097 video]] by Valessio Brito presenting an UI mockup how multipage can be handled in inkscape&lt;br /&gt;
== implementation ==&lt;br /&gt;
* see this [http://www.nabble.com/Multipage-plan-td16394431.html thread]&lt;br /&gt;
* all export dialogues must becom extra properties to handle multiple pages, in order to specify not only the elements but also the pages to be exported&lt;/div&gt;</summary>
		<author><name>Theadib</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Multipage&amp;diff=51164</id>
		<title>Multipage</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Multipage&amp;diff=51164"/>
		<updated>2009-04-23T13:04:47Z</updated>

		<summary type="html">&lt;p&gt;Theadib: /* multipage in the SVG standard */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Multipage support ==&lt;br /&gt;
* this feature is currently not implemented&lt;br /&gt;
* this page describes how the feature should be implemented&lt;br /&gt;
* there should be multiple pages within a document&lt;br /&gt;
* problem arises when saving to singlepage file formats (jpg, png, etc)&lt;br /&gt;
* SVG does not support multipage per se, but upcomming SVG will do [[http://www.w3.org/TR/2004/WD-SVG12-20041027/multipage.html see W3.org]]&lt;br /&gt;
&lt;br /&gt;
== multipage in the SVG standard ==&lt;br /&gt;
* All pages are contained within a single pageSet element. A pageSet may contain any number of page elements. Each page element defines a single container of graphical objects. &lt;br /&gt;
* In a screen-based user agent, only one page element is displayed at any time on the main canvas.&lt;br /&gt;
* The SVG content typically defines a page dimension or aspect ratio in the topmost svg element and its viewBox. The viewBox transformation applies to printed SVG in the same way as screen display.&lt;br /&gt;
* The orientation of each page element can be controlled by the page-orientation property. This enables the content to define whether a portrait or landscape mode is used for display and printing.&lt;br /&gt;
* There are two contrary implementattions in the real world:&lt;br /&gt;
** distribute pages around the graphics elements - the Adobe way&lt;br /&gt;
** distribute graphics elements around the pages - how Corel does it and how SVG propose it&lt;br /&gt;
&lt;br /&gt;
== multipage ala Corel ==&lt;br /&gt;
* there is a list of pages as tabs on the lower side of the drawing window&lt;br /&gt;
* all pages share the same page properties&lt;br /&gt;
* a '''master page''' contains elements that are visible on all other pages: drawings, markers&lt;br /&gt;
* in an object browser pages and layers are integrated&lt;br /&gt;
* see a screenshot [[http://wiki.inkscape.org/wiki/images/Corel_pages.PNG here]]&lt;br /&gt;
&lt;br /&gt;
== Multi-page tool(similar to Artboard tool on adobe illustrator cs4). ==&lt;br /&gt;
* see this adobe tutorial [[http://www.adobe.com/designcenter/illustrator/articles/lrvid4016_ai.html here]]&lt;br /&gt;
* there is an [[http://www.vimeo.com/2503097 video]] by Valessio Brito presenting an UI mockup how multipage can be handled in inkscape&lt;br /&gt;
== implementation ==&lt;br /&gt;
* see this [http://www.nabble.com/Multipage-plan-td16394431.html thread]&lt;br /&gt;
* all export dialogues must becom extra properties to handle multiple pages, in order to specify not only the elements but also the pages to be exported&lt;/div&gt;</summary>
		<author><name>Theadib</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Multipage&amp;diff=51154</id>
		<title>Multipage</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Multipage&amp;diff=51154"/>
		<updated>2009-04-23T13:02:40Z</updated>

		<summary type="html">&lt;p&gt;Theadib: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Multipage support ==&lt;br /&gt;
* this feature is currently not implemented&lt;br /&gt;
* this page describes how the feature should be implemented&lt;br /&gt;
* there should be multiple pages within a document&lt;br /&gt;
* problem arises when saving to singlepage file formats (jpg, png, etc)&lt;br /&gt;
* SVG does not support multipage per se, but upcomming SVG will do [[http://www.w3.org/TR/2004/WD-SVG12-20041027/multipage.html see W3.org]]&lt;br /&gt;
&lt;br /&gt;
== multipage in the SVG standard ==&lt;br /&gt;
* All pages are contained within a single pageSet element. A pageSet may contain any number of page elements. Each page element defines a single container of graphical objects. &lt;br /&gt;
* In a screen-based user agent, only one page element is displayed at any time on the main canvas.&lt;br /&gt;
* The SVG content typically defines a page dimension or aspect ratio in the topmost svg element and its viewBox. The viewBox transformation applies to printed SVG in the same way as screen display.&lt;br /&gt;
* The orientation of each page element can be controlled by the page-orientation property. This enables the content to define whether a portrait or landscape mode is used for display and printing.&lt;br /&gt;
* There are two contrary implementattions in the real world:&lt;br /&gt;
  * distribute pages around the graphics elements - the Adobe way&lt;br /&gt;
  * distribute graphics elements around the pages - how Corel does it and how SVG propose it&lt;br /&gt;
&lt;br /&gt;
== multipage ala Corel ==&lt;br /&gt;
* there is a list of pages as tabs on the lower side of the drawing window&lt;br /&gt;
* all pages share the same page properties&lt;br /&gt;
* a '''master page''' contains elements that are visible on all other pages: drawings, markers&lt;br /&gt;
* in an object browser pages and layers are integrated&lt;br /&gt;
* see a screenshot [[http://wiki.inkscape.org/wiki/images/Corel_pages.PNG here]]&lt;br /&gt;
&lt;br /&gt;
== Multi-page tool(similar to Artboard tool on adobe illustrator cs4). ==&lt;br /&gt;
* see this adobe tutorial [[http://www.adobe.com/designcenter/illustrator/articles/lrvid4016_ai.html here]]&lt;br /&gt;
* there is an [[http://www.vimeo.com/2503097 video]] by Valessio Brito presenting an UI mockup how multipage can be handled in inkscape&lt;br /&gt;
== implementation ==&lt;br /&gt;
* see this [http://www.nabble.com/Multipage-plan-td16394431.html thread]&lt;br /&gt;
* all export dialogues must becom extra properties to handle multiple pages, in order to specify not only the elements but also the pages to be exported&lt;/div&gt;</summary>
		<author><name>Theadib</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=MultiplePages&amp;diff=51134</id>
		<title>MultiplePages</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=MultiplePages&amp;diff=51134"/>
		<updated>2009-04-23T12:43:32Z</updated>

		<summary type="html">&lt;p&gt;Theadib: /* Multiple Pages support */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Developer Discussion]]&lt;br /&gt;
&lt;br /&gt;
== Multiple Pages support ==&lt;br /&gt;
&lt;br /&gt;
there is a big demand in supporting multiple pages&lt;br /&gt;
&lt;br /&gt;
Multiple Pages are known from CorelDraw, Visio, ...&lt;br /&gt;
&lt;br /&gt;
This page is how to implement this feature.&lt;br /&gt;
&lt;br /&gt;
PLease go to [[Multipage]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
see also [http://www.nabble.com/Multipage-plan-td16394431.html Multiple pages plan by bulia byak]&lt;/div&gt;</summary>
		<author><name>Theadib</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=MultiplePages&amp;diff=51124</id>
		<title>MultiplePages</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=MultiplePages&amp;diff=51124"/>
		<updated>2009-04-23T12:41:51Z</updated>

		<summary type="html">&lt;p&gt;Theadib: /* Multiple Pages support */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Developer Discussion]]&lt;br /&gt;
&lt;br /&gt;
== Multiple Pages support ==&lt;br /&gt;
&lt;br /&gt;
there is a big demand in supporting multiple pages&lt;br /&gt;
&lt;br /&gt;
Multiple Pages are known from CorelDraw, Visio, ...&lt;br /&gt;
&lt;br /&gt;
This page is how to implement this feature.&lt;br /&gt;
&lt;br /&gt;
PLease go to [[Multipage this page]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
see also [http://www.nabble.com/Multipage-plan-td16394431.html Multiple pages plan by bulia byak]&lt;/div&gt;</summary>
		<author><name>Theadib</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=MultiplePages&amp;diff=51114</id>
		<title>MultiplePages</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=MultiplePages&amp;diff=51114"/>
		<updated>2009-04-23T12:41:36Z</updated>

		<summary type="html">&lt;p&gt;Theadib: /* Multiple Pages support */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Developer Discussion]]&lt;br /&gt;
&lt;br /&gt;
== Multiple Pages support ==&lt;br /&gt;
&lt;br /&gt;
there is a big demand in supporting multiple pages&lt;br /&gt;
&lt;br /&gt;
Multiple Pages are known from CorelDraw, Visio, ...&lt;br /&gt;
&lt;br /&gt;
This page is how to implement this feature.&lt;br /&gt;
&lt;br /&gt;
PLease go to [Multipage this page]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
see also [http://www.nabble.com/Multipage-plan-td16394431.html Multiple pages plan by bulia byak]&lt;/div&gt;</summary>
		<author><name>Theadib</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=MultiplePages&amp;diff=51104</id>
		<title>MultiplePages</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=MultiplePages&amp;diff=51104"/>
		<updated>2009-04-23T12:41:07Z</updated>

		<summary type="html">&lt;p&gt;Theadib: /* Multiple Pages support */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Developer Discussion]]&lt;br /&gt;
&lt;br /&gt;
== Multiple Pages support ==&lt;br /&gt;
&lt;br /&gt;
there is a big demand in supporting multiple pages&lt;br /&gt;
&lt;br /&gt;
Multiple Pages are known from CorelDraw, Visio, ...&lt;br /&gt;
&lt;br /&gt;
This page is how to implement this feature.&lt;br /&gt;
&lt;br /&gt;
PLease go to [Multipage]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
see also [http://www.nabble.com/Multipage-plan-td16394431.html Multiple pages plan by bulia byak]&lt;/div&gt;</summary>
		<author><name>Theadib</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=MultiplePages&amp;diff=51094</id>
		<title>MultiplePages</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=MultiplePages&amp;diff=51094"/>
		<updated>2009-04-23T12:40:41Z</updated>

		<summary type="html">&lt;p&gt;Theadib: /* Multiple Pages support */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Developer Discussion]]&lt;br /&gt;
&lt;br /&gt;
== Multiple Pages support ==&lt;br /&gt;
&lt;br /&gt;
there is a big demand in supporting multiple pages&lt;br /&gt;
&lt;br /&gt;
Multiple Pages are known from CorelDraw, Visio, ...&lt;br /&gt;
&lt;br /&gt;
This page is how to implement this feature.&lt;br /&gt;
&lt;br /&gt;
PLease go to [MultiplePages]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
see also [http://www.nabble.com/Multipage-plan-td16394431.html Multiple pages plan by bulia byak]&lt;/div&gt;</summary>
		<author><name>Theadib</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=MultiplePages&amp;diff=51084</id>
		<title>MultiplePages</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=MultiplePages&amp;diff=51084"/>
		<updated>2009-04-23T12:40:21Z</updated>

		<summary type="html">&lt;p&gt;Theadib: /* Multiple Pages support */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Developer Discussion]]&lt;br /&gt;
&lt;br /&gt;
== Multiple Pages support ==&lt;br /&gt;
&lt;br /&gt;
there is a big demand in supporting multiple pages&lt;br /&gt;
&lt;br /&gt;
Multiple Pages are known from CorelDraw, Visio, ...&lt;br /&gt;
&lt;br /&gt;
This page is how to implement this feature.&lt;br /&gt;
&lt;br /&gt;
PLease go to MultiplePages&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
see also [http://www.nabble.com/Multipage-plan-td16394431.html Multiple pages plan by bulia byak]&lt;/div&gt;</summary>
		<author><name>Theadib</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Multipage&amp;diff=51074</id>
		<title>Multipage</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Multipage&amp;diff=51074"/>
		<updated>2009-04-23T12:38:40Z</updated>

		<summary type="html">&lt;p&gt;Theadib: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Multipage support ==&lt;br /&gt;
* this feature is currently not implemented&lt;br /&gt;
* this page describes how the feature should be implemented&lt;br /&gt;
* there should be multiple pages within a document&lt;br /&gt;
* problem arises when saving to singlepage file formats (jpg, png, etc)&lt;br /&gt;
* SVG does not support multipage per se, but upcomming SVG will do [[http://www.w3.org/TR/2004/WD-SVG12-20041027/multipage.html see W3.org]]&lt;br /&gt;
&lt;br /&gt;
== multipage in the SVG standard ==&lt;br /&gt;
* All pages are contained within a single pageSet element. A pageSet may contain any number of page elements. Each page element defines a single container of graphical objects. &lt;br /&gt;
* In a screen-based user agent, only one page element is displayed at any time on the main canvas.&lt;br /&gt;
* The SVG content typically defines a page dimension or aspect ratio in the topmost svg element and its viewBox. The viewBox transformation applies to printed SVG in the same way as screen display.&lt;br /&gt;
* The orientation of each page element can be controlled by the page-orientation property. This enables the content to define whether a portrait or landscape mode is used for display and printing. &lt;br /&gt;
&lt;br /&gt;
== multipage ala Corel ==&lt;br /&gt;
* there is a list of pages as tabs on the lower side of the drawing window&lt;br /&gt;
* all pages share the same page properties&lt;br /&gt;
* a '''master page''' contains elements that are visible on all other pages: drawings, markers&lt;br /&gt;
* in an object browser pages and layers are integrated&lt;br /&gt;
* see a screenshot [[http://wiki.inkscape.org/wiki/images/Corel_pages.PNG here]]&lt;br /&gt;
&lt;br /&gt;
== Multi-page tool(similar to Artboard tool on adobe illustrator cs4). ==&lt;br /&gt;
* see this adobe tutorial [[http://www.adobe.com/designcenter/illustrator/articles/lrvid4016_ai.html here]]&lt;br /&gt;
* there is an [[http://www.vimeo.com/2503097 video]] by Valessio Brito presenting an UI mockup how multipage can be handled in inkscape&lt;br /&gt;
== implementation ==&lt;br /&gt;
* see this [http://www.nabble.com/Multipage-plan-td16394431.html thread]&lt;br /&gt;
* all export dialogues must becom extra properties to handle multiple pages, in order to specify not only the elements but also the pages to be exported&lt;/div&gt;</summary>
		<author><name>Theadib</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=MultiplePages&amp;diff=40494</id>
		<title>MultiplePages</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=MultiplePages&amp;diff=40494"/>
		<updated>2008-12-14T21:08:11Z</updated>

		<summary type="html">&lt;p&gt;Theadib: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Developer Discussion]]&lt;br /&gt;
&lt;br /&gt;
== Multiple Pages support ==&lt;br /&gt;
&lt;br /&gt;
there is a big demand in supporting multiple pages&lt;br /&gt;
&lt;br /&gt;
Multiple Pages are known from CorelDraw, Visio, ...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This page is how to implement this feature.&lt;br /&gt;
&lt;br /&gt;
see also [http://www.nabble.com/Multipage-plan-td16394431.html Multiple pages plan by bulia byak]&lt;/div&gt;</summary>
		<author><name>Theadib</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=MultiplePages&amp;diff=40484</id>
		<title>MultiplePages</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=MultiplePages&amp;diff=40484"/>
		<updated>2008-12-14T21:05:44Z</updated>

		<summary type="html">&lt;p&gt;Theadib: /* Multiple Pages support */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Multiple Pages support ==&lt;br /&gt;
&lt;br /&gt;
there is a big demand in supporting multiple pages&lt;br /&gt;
&lt;br /&gt;
Multiple Pages are known from CorelDraw, Visio, ...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This page is how to implement this feature.&lt;br /&gt;
&lt;br /&gt;
see also [http://www.nabble.com/Multipage-plan-td16394431.html Multiple pages plan by bulia byak]&lt;/div&gt;</summary>
		<author><name>Theadib</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=MultiplePages&amp;diff=40474</id>
		<title>MultiplePages</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=MultiplePages&amp;diff=40474"/>
		<updated>2008-12-14T21:03:41Z</updated>

		<summary type="html">&lt;p&gt;Theadib: /* Multiple Pages support */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Multiple Pages support ==&lt;br /&gt;
&lt;br /&gt;
there is a big demand in supporting multiple pages&lt;br /&gt;
&lt;br /&gt;
Multiple Pages are known from CorelDraw, Visio, ...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This page is how to implement this feature.&lt;br /&gt;
&lt;br /&gt;
see also http://www.nabble.com/Multipage-plan-td16394431.html&lt;/div&gt;</summary>
		<author><name>Theadib</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=MultiplePages&amp;diff=40464</id>
		<title>MultiplePages</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=MultiplePages&amp;diff=40464"/>
		<updated>2008-12-14T21:02:32Z</updated>

		<summary type="html">&lt;p&gt;Theadib: /* Multiple Pages support */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Multiple Pages support ==&lt;br /&gt;
&lt;br /&gt;
there is a big demand in supporting multiple pages&lt;br /&gt;
&lt;br /&gt;
Multiple Pages are known from CorelDraw, Visio, ...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This page is how to implement this feature.&lt;br /&gt;
&lt;br /&gt;
see also [[http://www.nabble.com/Multipage-plan-td16394431.html]]&lt;/div&gt;</summary>
		<author><name>Theadib</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=MultiplePages&amp;diff=40454</id>
		<title>MultiplePages</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=MultiplePages&amp;diff=40454"/>
		<updated>2008-12-14T20:56:14Z</updated>

		<summary type="html">&lt;p&gt;Theadib: new discussion Multiple pages support as reference to blueprint in launchpad&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Multiple Pages support ==&lt;br /&gt;
&lt;br /&gt;
there is a big demand in supporting multiple pages&lt;br /&gt;
&lt;br /&gt;
Multiple Pages are known from CorelDraw, Visio, ...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This page is how to implement this feature.&lt;br /&gt;
&lt;br /&gt;
see also [http://www.nabble.com/Multipage-plan-td16394431.html]&lt;/div&gt;</summary>
		<author><name>Theadib</name></author>
	</entry>
</feed>