https://wiki.inkscape.org/wiki/api.php?action=feedcontributions&user=Tsal&feedformat=atomInkscape Wiki - User contributions [en]2024-03-28T14:05:31ZUser contributionsMediaWiki 1.36.1https://wiki.inkscape.org/wiki/index.php?title=CreatingDists&diff=13416CreatingDists2007-02-13T14:27:22Z<p>Tsal: CreatingDists moved to Creating dists: Main page discussion mentioned moving camel case to underscored names.</p>
<hr />
<div>#REDIRECT [[Creating dists]]</div>Tsalhttps://wiki.inkscape.org/wiki/index.php?title=Creating_Inkscape_distributions&diff=13414Creating Inkscape distributions2007-02-13T14:27:22Z<p>Tsal: CreatingDists moved to Creating dists: Main page discussion mentioned moving camel case to underscored names.</p>
<hr />
<div>== Creating Dists of Inkscape ==<br />
<br />
Those who wish to produce packaged releases of inkscape are welcome to do so.<br />
If it is packages changes that you've made to the official release, please select a<br />
version name that distinguishes it from the official version, to avoid confusion. For<br />
example, “inkscape-0.35-johndoe.tar.gz”. Please consider distributing your changes<br />
as a patch rather than as a full distribution, as patches tend to be easier to <br />
maintain.<br />
<br />
Inkscape's release process works like this:<br />
<br />
# Start of release process - Finish up work on features.<br />
# Feature Freeze Mode - Shift focus from feature implementation to bug fixing<br />
# Hard Freeze - Two freeze wardens are named. All development must be done as patches submitted to the freeze wardens for review and integration.<br />
# Branch - The codebase is tagged and branched. Final release tarball is posted. The codebase is returned to regular open development.<br />
# Packaging - Three days are allowed for creating release dists (rpm's, deb's, exe's, and autopackages).<br />
# Release Announcement - A Release Announcement and a Press Release are written and circulated to relevant online news sites. Our Freshmeat record is updated. <br />
<br />
=== Feature Freeze Mode ===<br />
<br />
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.<br />
<br />
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.<br />
<br />
-----<br />
<br />
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]]<br />
<br />
<br />
=== Branching the release candidate ===<br />
<br />
Before release, a branch should have been be created for that release in the form RELEASE_<major>_<minor>_BRANCH. For example, 0.38 should have a branch called RELEASE_0_38_BRANCH.<br />
<br />
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).<br />
<br />
To create the release branch, do the following:<br />
<br />
<pre>svn copy https://inkscape.svn.sourceforge.net/svnroot/inkscape/inkscape/trunk https://inkscape.svn.sourceforge.net/svnroot/inkscape/inkscape/branches/RELEASE_0_38_BRANCH</pre><br />
<br />
To check out this branch:<br />
<br />
<pre>svn checkout https://inkscape.svn.sourceforge.net/svnroot/inkscape/inkscape/branches/RELEASE_0_38_BRANCH inkscape-0.38-branch</pre><br />
<br />
Once the release is deemed ready a distribution tarball should be created as below.<br />
<br />
=== Creating a distribution source tarball package ===<br />
<br />
On the release branch (NOT ON HEAD):<br />
<br />
* Set the version name via the file configure.ac in the AC_INIT() macro, Makefile.mingw.common, packaging/win32/inkscape.nsi, src/inkscape_version.h.mingw, debian/changelog, build.xml, and in build28.xml<br />
* Run `packaging/mkNEWS > NEWS` to add the release notes into the NEWS file in the release branch<br />
* Run ./autogen.sh && ./configure (with any flags, e.g. CXXFLAGS=).<br />
* Run “cd src && make helper/sp-marshal.h helper/sp-marshal.cpp inkscape_version.h && perl mkfiles.pl && perl mkdep.pl”, then do “cvs -q diff -du make.*|less” to check for anything strange (e.g. source files accidentally added or removed), and finally “cvs commit -m '' make.*”.<br />
* Run "cd po && make update-po" to update the translation files. This especially must be done after string freeze.<br />
* Make sure the code passes a “make distcheck”<br />
* This should produce inkscape-VERSION.tar.gz<br />
* Commit the changed configure.ac and other files to the branch<br />
* Tag the release in CVS<br />
<br />
Release tags should be in the form RELEASE_<major>_<minor>_<point>. A non-point-release like 0.38 would get the tag RELEASE_0_38_0, 0.38.1 would get the tag RELEASE_0_38_1, and so on.<br />
<br />
On HEAD:<br />
<br />
* Add the release notes into the NEWS file in the release branch <br />
* Change configure.ac and inkscape_version.h.mingw to reflect the new future version<br />
<br />
=== GPG signing Tarballs === <br />
<br />
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.<br />
<br />
* To create a gpg signed tarball:<br />
<br />
<pre>$gpg -u packager@foo.net --armor --output tarball.sig --detach-sig tarball.tar.gz</pre><br />
<br />
* To verify : <br />
<br />
<pre>$gpg --verify ./tarball.asc ./tarball.tar.gz</pre><br />
<br />
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).<br />
<br />
:Where are the public keys matching these sig's posted?<br />
<br />
=== Creating a Windows Distro ===<br />
Inkscape/sodipodi has always been<br />
buildable on Win32. The problem with the sodipodi and original inkscape build, though,<br />
was that the Win32 builder had to download and configure<br />
a lot of things to make it to work. Mingw, MSYS, automake,<br />
autoconf, pkg-config, the codepages, etc. He would spend more<br />
time on THAT than the actual code.<br />
<br />
What a pain for the average developer/user who merely wants<br />
to make Inkscape do what he wants it to do. Why waste<br />
days and days getting it to compile, when the developer<br />
would rather be working on the program itself?<br />
<br />
So we spent several weeks collecting libraries, building others,<br />
installing the codepages into the source (which we can delete soon<br />
because of Pango) and creating a set of clean makefiles<br />
that work on Win9x, NT, XP, and the cross-compiler.<br />
It is a bit more work for people like me, but hopefully it<br />
attains its goal of saving a lot of work for other people.<br />
<br />
Also, remember that on Unix/Linux, $PREFIX is commonly<br />
/usr/local or /usr or something like that. On M$, all of<br />
a program's files are typically located in their own directory. So all<br />
of the files are located relative to “.”. Actually, relative to<br />
the .exe that is currently running.<br />
<br />
.....anyway, just wanted to explain that there is a reason<br />
for the Win32 build to be constructed in such a manner,<br />
and that we haven't just been arbitrary.<br />
<br />
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.<br />
<br />
The Windows download package should be named according to the following scheme:<br />
<br />
inkscape-$RELEASE-$PKG.$WINVER.exe<br />
<br />
Where $WINVER is the required Windows version, e.g. “win32”. For example:<br />
<br />
inkscape-0.37-1.win32.exe<br />
<br />
<br />
=== Creating a Debian .deb ===<br />
<br />
The article [[CompilingDebian]] provides a makefile to download a tarball and build a debian package therefrom.<br />
<br />
=== Creating a distribution RPM ===<br />
<br />
Method A:<br />
# do as above for tarball, or download the release tarball<br />
# login as root<br />
# rpmbuild -tb inkscape-x.x.tar.gz<br />
# Your RPMs will be in /usr/src/rpm[[/RPMS]] (/usr/src/redhat on RH systems)<br />
# RPMs should be GPG signed<br />
<br />
Method B:<br />
# do as above for tarball, or download the release tarball<br />
# mkdir ~/rpm<br />
# Copy the tarball to ~/rpm/SOURCES/<br />
# Copy the inkscape.spec from the tarball to ~/rpm/SPECS/inkscape.spec<br />
# rpmbuild -ba ~/rpm/SPECS/inkscape.spec<br />
# Your RPMs will be in ~/rpm/RPMS and ~/rpm/SRPMS<br />
# RPMs should be GPG signed<br />
<br />
The rpm should be named according to the following pattern:<br />
<br />
inkscape-$RELEASE-$PKG.$DISTRO.$ARCH.rpm<br />
<br />
Where:<br />
<br />
$RELEASE: the Inkscape release number, such as “0.37”, “0.36.2”, etc. <br />
The third number should be omitted if it is 0. (I.e., 0.37 instead of 0.37.0)<br />
<br />
$PKG: A version number for your package. Use a value of 1 for your package, and increment it if you<br />
need to update the released package for some reason.<br />
<br />
$DISTRO: The name and an indicator of the version number for the distro. E.g.,<br />
rh71, rh90, mdk91, suse90, fc1, etc. No need to be too exhaustive with the distro versions;<br />
for a given brand of distro it's probably enough to have a reasonably “modern” release<br />
and an older one for legacy support. For instance, rh71 and rh90.<br />
<br />
$ARCH: The architecture that the package was built on. E.g., i686, i386, athlon, ppc, etc.<br />
Don't bother with i586 - either i386 or i686 is preferred. The i386 packages will run on Cyrix <br />
and K-6.<br />
<br />
Examples:<br />
<br />
inkscape-0.37-1.mdk80.i386.rpm<br />
inkscape-0.37-1.mdk80.i686.rpm<br />
inkscape-0.37-1.mdk91.i386.rpm<br />
inkscape-0.37-1.mdk91.i686.rpm<br />
<br />
inkscape-0.37-1.fc1.i386.rpm<br />
inkscape-0.37-1.fc1.i686.rpm<br />
inkscape-0.37-1.fc1.athlon.rpm<br />
inkscape-0.37-1.fc1.ppc.rpm<br />
<br />
For creating spec files, feel free to list yourself as the packager, but please use <br />
inkscape-devel@lists.sourceforge.net as the contact email address, to ensure that<br />
questions/complaints about the RPM go to the official support channel.<br />
<br />
==== Patching RPMs ====<br />
<br />
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. :-)<br />
<br />
Here's how to do it:<br />
<br />
1. Create a copy of the source tree, with the modifications needed to correct the issue.<br />
2. Generate a patch like this:<br />
<br />
$ diff -uNr package-1.0/ package-1.0p/ > ../SOURCES/package-1.0-my.patch<br />
<br />
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:<br />
<br />
Patch0: package-1.0-my.patch<br />
<br />
Then further down add a line after the %setup section, like this:<br />
<br />
%prep<br />
%setup ...<br />
%patch0 -p1<br />
<br />
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.<br />
<br />
Then rebuild the package like this:<br />
<br />
rpmbuild -ba SPECS/package.spec<br />
<br />
<br />
=== Signing your package ===<br />
<br />
First, you need to have a public/private keypair. This can be generated with gpg using 'gpg --gen-key'.<br />
<br />
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<br />
<br />
To check the signature on a package, use rpm --checksig.<br />
<br />
=== Releasing Dists on the [[SourceForge]] File Release Tool ===<br />
<br />
To release a file: (You need Release Tech permission for your Inkscape account)<br />
<br />
* ftp upload.sf.net (anonymous/anonymous)<br />
* cd incoming<br />
* mput filename<br />
* go to Admin -> File Releases<br />
* scroll to the bottom and click [Add Release] to the inkscape item<br />
* Enter 0.35 in the box & click “Create this Release”<br />
* Fill in the form, checkbox the file you uploaded in (c)<br />
* 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.<br />
<br />
Also see [[CVSNamingConventions]] if you are making a release. <br />
<br />
<br />
=== Announcing Releases ===<br />
<br />
When you cut a release, send a copy of the release notes as an announcement to inkscape-announce@lists.sourceforge.net.<br />
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.<br />
<br />
'''[[AnnouncingReleases]]''' - Keep an eye out for other places we could announce such as distros or graphics-related sites (not only Linux-centric!).<br />
<br />
=== Updating Website Collateral ===<br />
<br />
When a new release is cut, there are several pieces of info that need to be added to the website:<br />
<br />
* Add a news item on front page<br />
* Review/revise FAQ<br />
* Review/revise Roadmap<br />
* Add or revise Screenshots (if appropriate)<br />
* doc directory: Add the manpage for the release, update doc/keys.html file, and change the corresponding version number(s) in doc/index.php.<br />
** 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>/dev/null); pod2html --cachedir=/tmp --infile=../inkscape/inkscape.pod --outfile=doc/inkscape-man.html”.<br />
<br />
[[Category:Help Wanted]]</div>Tsalhttps://wiki.inkscape.org/wiki/index.php?title=Extension_reference&diff=13412Extension reference2007-02-13T14:24:23Z<p>Tsal: /* Interpolate */</p>
<hr />
<div>''A page with info about the Effects and particularly some png's / screenshots. To learn more about effects and how to write new ones, check out this page : [http://www.ekips.org/comp/inkscape/ Inkscape Effects]<br />
''<br />
<br />
==Interpolate==<br />
<br />
This will transform one path to another path and optionally change the style too. It appears that you need to convert an object to a path first (Path > Object to path ; Shift-Ctrl-c). You can alter the number of steps used and choose one of two methods. <br />
<br />
[[Image:interpolate_blueSquare-redCircle.png]]<br />
<br />
==Kochify==<br />
To use, select one path consisting of only line segments and apply the effect. Kochify will replace the given path with a path that has a copy of the original path in between each two adjacent nodes in the original path. If the original path input has bezier curves, the effect will effectively replace them with lines and then apply the effect. For more information about Kochify from a developers perspective, look [http://www.ekips.org/comp/inkscape/koch.php here]. Requires: python.<br />
<br />
<br />
[[Category:Extensions]]</div>Tsalhttps://wiki.inkscape.org/wiki/index.php?title=Extension_reference&diff=13410Extension reference2007-02-13T14:23:13Z<p>Tsal: /* Interpolate */</p>
<hr />
<div>''A page with info about the Effects and particularly some png's / screenshots. To learn more about effects and how to write new ones, check out this page : [http://www.ekips.org/comp/inkscape/ Inkscape Effects]<br />
''<br />
<br />
==Interpolate==<br />
<br />
This will transform one path to another path and optionally change the style too. It appears that you need to convert an object to a path first (Path > Object to path ; Shift-Ctrl-c). You can alter the number of steps used and choose one of two methods. <br />
<br />
upload:interpolate_blueSquare-redCircle.png<br />
<br />
==Kochify==<br />
To use, select one path consisting of only line segments and apply the effect. Kochify will replace the given path with a path that has a copy of the original path in between each two adjacent nodes in the original path. If the original path input has bezier curves, the effect will effectively replace them with lines and then apply the effect. For more information about Kochify from a developers perspective, look [http://www.ekips.org/comp/inkscape/koch.php here]. Requires: python.<br />
<br />
<br />
[[Category:Extensions]]</div>Tsalhttps://wiki.inkscape.org/wiki/index.php?title=Extension_reference&diff=13408Extension reference2007-02-13T14:22:42Z<p>Tsal: /* Interpolate */</p>
<hr />
<div>''A page with info about the Effects and particularly some png's / screenshots. To learn more about effects and how to write new ones, check out this page : [http://www.ekips.org/comp/inkscape/ Inkscape Effects]<br />
''<br />
<br />
==Interpolate==<br />
<br />
This will transform one path to another path and optionally change the style too. It appears that you need to convert an object to a path first (Path > Object to path ; Shift-Ctrl-c). You can alter the number of steps used and choose one of two methods. <br />
<br />
[[upload:interpolate_blueSquare-redCircle.png]]<br />
<br />
==Kochify==<br />
To use, select one path consisting of only line segments and apply the effect. Kochify will replace the given path with a path that has a copy of the original path in between each two adjacent nodes in the original path. If the original path input has bezier curves, the effect will effectively replace them with lines and then apply the effect. For more information about Kochify from a developers perspective, look [http://www.ekips.org/comp/inkscape/koch.php here]. Requires: python.<br />
<br />
<br />
[[Category:Extensions]]</div>Tsalhttps://wiki.inkscape.org/wiki/index.php?title=Extension_requirements&diff=13406Extension requirements2007-02-13T13:46:40Z<p>Tsal: </p>
<hr />
<div><b>Setting Up Effects in Inkscape</b><br><br />
<i>For effects to work you need to be using inkscape .42 or later.</i><br><br />
<i>For info about what effects can do, screenshots, and how to make your own go to [http://www.ekips.org/comp/inkscape/ Aarons Site]</i><br><br />
<i>See also [[GettingExtensionsWorking]].</i><br><br />
<br />
<b>Unhide the Effects menu</b><Br><br />
- On the "Misc" tab of the "Inkscape Preferences" dialog check the box labeled "Enable script effects" (0.41+CVS onwards only)<br />
- Close and reopen Inkscape<br />
<br />
<b>Python Effects</b><Br><br />
<i>on Debian GNU / Linux</i><br />
- apt-get install python python-xml<br />
<br />
<i>on Microsoft Windows</i><br />
- [[GettingEffectsWorking/Windows]] Tutorial on Getting Effects to work on Windows<br />
<br />
<i>on Mac os X</i><br />
- See [http://wiki.inkscape.org/wiki/index.php/CompilingMacOsX Mac OS X compiling page] (at the bottom)<br />
<br />
<b>Perl Effects</b><br><br />
<i>on Debian GNU / Linux</i><br />
- apt-get install perl libxml-xql-perl<br />
<br />
<i>on Gentoo GNU / Linux</i><br />
- emerge -a XML-XQL<br />
<br />
<i>on Microsoft Windows</i><br />
- install [http://www.activestate.com/Products/Download/Download.plex?id=ActivePerl [[ActivePerl]]]<br />
- install XML::XQL::DOM (perhaps like this?)<br />
1: install prereqs with ppm:<br />
install xml-dom<br />
install parse-yapp<br />
install datemanip<br />
2: download xml-xql from:<br />
http://www.cpan.org/authors/id/T/TJ/TJMATHER/XML-XQL-0.68.tar.gz<br />
3: open command prompt and locate perl"s lib directory with:<br />
perl -e "print qq(@INC)" (mine was C:[[/Perl/site/lib]])<br />
4: unpack xml-xql archive<br />
5: copy contents of XML-XQL-*\lib\XML into C:\Perl\site\lib\XML<br />
6: copy XML-XQL-*\XQLParser\Parser.pm to C:\Perl\site\lib\XML\XQL<br />
<br />
<b>Plugin Effects</b><br><br />
- I have absolutely no idea. Please record your success here. :)<br />
<br />
<b>What if it doesn't work?</b><br><br />
- Run Inkscape from the console<br />
- Use the error messges printed to the console to diagnose the problem (very often missing dependencies)<br />
- On Windows you will have to redirect output to a text file like this: "inkscape > output.txt"<br />
<br />
<br />
[[Category:Extensions]]</div>Tsalhttps://wiki.inkscape.org/wiki/index.php?title=Extension_requirements&diff=13404Extension requirements2007-02-13T13:46:21Z<p>Tsal: fixed broken link to windows instructions</p>
<hr />
<div><b>Setting Up Effects in Inkscape</b><br><br />
<i>For effects to work you need to be using inkscape .42 or later.</i><br><br />
<i>For info about what effects can do, screenshots, and how to make your own go to [http://www.ekips.org/comp/inkscape/ Aarons Site]</i><br><br />
<i>See also [[GettingExtensionsWorking]].</i><br><br />
<br />
<b>Unhide the Effects menu</b><Br><br />
- On the "Misc" tab of the "Inkscape Preferences" dialog check the box labeled "Enable script effects" (0.41+CVS onwards only)<br />
- Close and reopen Inkscape<br />
<br />
<b>Python Effects</b><Br><br />
<i>on Debian GNU / Linux</i><br />
- apt-get install python python-xml<br />
<br />
<i>on Microsoft Windows</i><br />
- [[GettingEffectsWorking/Windows Tutorial on Getting Effects to work on Windows]]<br />
<br />
<i>on Mac os X</i><br />
- See [http://wiki.inkscape.org/wiki/index.php/CompilingMacOsX Mac OS X compiling page] (at the bottom)<br />
<br />
<b>Perl Effects</b><br><br />
<i>on Debian GNU / Linux</i><br />
- apt-get install perl libxml-xql-perl<br />
<br />
<i>on Gentoo GNU / Linux</i><br />
- emerge -a XML-XQL<br />
<br />
<i>on Microsoft Windows</i><br />
- install [http://www.activestate.com/Products/Download/Download.plex?id=ActivePerl [[ActivePerl]]]<br />
- install XML::XQL::DOM (perhaps like this?)<br />
1: install prereqs with ppm:<br />
install xml-dom<br />
install parse-yapp<br />
install datemanip<br />
2: download xml-xql from:<br />
http://www.cpan.org/authors/id/T/TJ/TJMATHER/XML-XQL-0.68.tar.gz<br />
3: open command prompt and locate perl"s lib directory with:<br />
perl -e "print qq(@INC)" (mine was C:[[/Perl/site/lib]])<br />
4: unpack xml-xql archive<br />
5: copy contents of XML-XQL-*\lib\XML into C:\Perl\site\lib\XML<br />
6: copy XML-XQL-*\XQLParser\Parser.pm to C:\Perl\site\lib\XML\XQL<br />
<br />
<b>Plugin Effects</b><br><br />
- I have absolutely no idea. Please record your success here. :)<br />
<br />
<b>What if it doesn't work?</b><br><br />
- Run Inkscape from the console<br />
- Use the error messges printed to the console to diagnose the problem (very often missing dependencies)<br />
- On Windows you will have to redirect output to a text file like this: "inkscape > output.txt"<br />
<br />
<br />
[[Category:Extensions]]</div>Tsal