diff --git a/inkscape-packages.patch b/inkscape-packages.patch
new file mode 100644
index 0000000..3f65dda
--- /dev/null
+++ b/inkscape-packages.patch
@@ -0,0 +1,22 @@
+--- share/extensions/export_gimp_palette.py
++++ share/extensions/export_gimp_palette.py
+@@ -11,7 +11,7 @@
+ try:
+ from xml.dom.minidom import parse
+ except:
+- sys.exit('The export_gpl.py module requires PyXML. Please download the latest version from .')
++ sys.exit('The export_gpl.py module requires PyXML. Please install pyxml package.')
+
+ colortags=(u'fill',u'stroke',u'stop-color',u'flood-color',u'lighting-color')
+ colors={}
+--- share/extensions/inkex.py
++++ share/extensions/inkex.py
+@@ -56,7 +56,7 @@
+ try:
+ from lxml import etree
+ except:
+- sys.exit('The fantastic lxml wrapper for libxml2 is required by inkex.py and therefore this extension. Please download and install the latest version from , or install it through your package manager by a command like: sudo apt-get install python-lxml')
++ sys.exit('The fantastic lxml wrapper for libxml2 is required by inkex.py and therefore this extension. Please install python-lxml package.')
+
+ def debug(what):
+ sys.stderr.write(str(what) + "\n")
diff --git a/inkscape-split-extensions-extra.sh b/inkscape-split-extensions-extra.sh
new file mode 100644
index 0000000..cf6ca58
--- /dev/null
+++ b/inkscape-split-extensions-extra.sh
@@ -0,0 +1,100 @@
+#!/bin/bash
+
+# List all files, that depend on NEXT_LIST_REGEXP, explicitly or implicitly
+
+cd $1
+
+# Search all py files importing one of the mentioned modules:
+make_extra_list() {
+ NEWLIST=( $(grep -rl '\(import\|from\).* '"$NEXT_LIST_REGEXP"'\(,\|\.\| \|$\)' .) )
+ EXTRA_LIST=( $(IFS=$'\n' ; echo "${EXTRA_LIST[*]}"$'\n'"${NEWLIST[*]}" | sed '/^$/d;s:^\./::' | sort -u) )
+ NEWLIST=( "${NEWLIST[@]##*/}" )
+ NEXT_LIST_REGEXP="\\(${NEWLIST[*]%.py}\\)"
+ NEXT_LIST_REGEXP=${NEXT_LIST_REGEXP// /\\|}
+}
+
+# Search all py files that are imported by mentioned modules:
+make_deplist() {
+ NEWLIST=( $( ( (IFS=$'\n' ; echo "${NEWLIST[*]}"$'\n') ; sed 2>/dev/null -n 's/^from \(.*\) import.*/\1/p;s/^import //p' ${NEWLIST[@]} | sed 's/, /\n/g' | sed 's/$/.py/;s/\.py\.py$/.py/') | sort -u) )
+}
+
+OLDLIST=( EMPTY )
+EXTRA_LIST=()
+NEXT_LIST_REGEXP='\(xml\|lxml\)'
+ITER=1
+
+until test "${EXTRA_LIST[*]}" = "${OLDLIST[*]}" ; do
+ OLDLIST=( "${EXTRA_LIST[@]}" )
+ make_extra_list
+ #echo "iter $ITER list: ${LIST[*]}"
+ let ITER++
+done
+
+# We have a complete list of py files dependent on xml or lxml.
+# Now we need a list of inx module descriptors.
+INX_REGEXP="${EXTRA_LIST[*]//./\\.}"
+INX_REGEXP="\\(>${INX_REGEXP// /<\\|>}<\\)"
+INX_EXTRA_LIST=( $(grep -l "$INX_REGEXP" *.inx) )
+
+# inx files that do not belong to INX_EXTRA_LIST will be a part of INX_STD_LIST
+INX_STD_LIST=()
+for FILE in *.inx ; do
+ eval 'case $FILE in '"$(IFS='|' ; echo "${INX_EXTRA_LIST[*]}")"') continue;; esac'
+ INX_STD_LIST[${#INX_STD_LIST[@]}]=$FILE
+done
+
+# Now create list of py files that should belong to std package:
+OLDLIST=( EMPTY )
+NEWLIST=( $(sed -n 's@.*\(.*\)\.py.*@\1.py@p' ${INX_STD_LIST[@]}) )
+ITER=1
+until test "${NEWLIST[*]}" = "${OLDLIST[*]}" ; do
+ OLDLIST=( "${NEWLIST[@]}" )
+ make_deplist
+ #echo "iter $ITER list: ${LIST[*]}"
+ let ITER++
+done
+STD_LIST=( "${NEWLIST[@]}" )
+
+# Now create list of py files that are required by extra modules:
+# (If no std module needs it, then they will belong to extra package.)
+OLDLIST=( EMPTY )
+NEWLIST=( $(sed -n 's@.*\(.*\)\.py.*@\1.py@p' ${INX_EXTRA_LIST[@]}) )
+ITER=1
+until test "${NEWLIST[*]}" = "${OLDLIST[*]}" ; do
+ OLDLIST=( "${NEWLIST[@]}" )
+ make_deplist
+ #echo "iter $ITER list: ${LIST[*]}"
+ let ITER++
+done
+EXTRADEP_LIST=( ${NEWLIST[@]} )
+
+# And now verify everything and generate final list:
+# Now its safe to ignore subdirectory issue - we know where they belong.
+RC=0
+IFS=$'\n'
+exec 3>$OLDPWD/inkscape.lst
+echo >&3 "%defattr(-,root,root)"
+for FILE in ${INX_STD_LIST[@]} ; do
+ echo >&3 $2$FILE
+done
+exec 4>$OLDPWD/inkscape-extensions-extra.lst
+echo >&4 "%defattr(-,root,root)"
+for FILE in ${INX_EXTRA_LIST[@]} ; do
+ echo >&4 $2$FILE
+done
+for FILE in *.py ; do
+ eval '
+ case $FILE in
+ cdr*|dia*|fig*|*gimp*|sk*) continue;;
+ '"$(IFS='|' ; echo "${EXTRA_LIST[*]}")"') echo >&4 $2$FILE; continue;;
+ '"$(IFS='|' ; echo "${STD_LIST[*]}")"') echo >&3 $2$FILE; continue;;
+ '"$(IFS='|' ; echo "${EXTRADEP_LIST[*]}")"') echo >&4 $2$FILE; continue;;
+ esac'
+ echo "ERROR: Undecided file $FILE"
+ RC=1
+done
+
+exec 3>&-
+exec 4>&-
+
+exit $RC
diff --git a/inkscape.changes b/inkscape.changes
index d8ee6f0..13ed3a2 100644
--- a/inkscape.changes
+++ b/inkscape.changes
@@ -1,3 +1,19 @@
+-------------------------------------------------------------------
+Tue Jul 1 11:15:28 CEST 2008 - sbrabec@suse.cz
+
+- Added missing dependencies: libMagick++-devel, libwpg-devel,
+ gimp, transfig, yudit.
+- Packaged extensions using pyxml, lxml and yudit as an extra
+ package to shrink mandatory dependencies and not break plugins.
+ Uses an extra script for evaluation.
+- Packaged optional dia, fig, gimp and skencil plugins as separate
+ packages with extra dependencies.
+- Removed dependency on skencil, no more needed for EPS import
+ (bnc#394748).
+- Removed dependency on libwmf, no more needed for WMF import.
+- Tell user about pyxml and lxml packages instead of suggestinng of
+ compilation from source (however the message should not appear).
+
-------------------------------------------------------------------
Sat Jun 28 01:29:17 CEST 2008 - maw@suse.de
diff --git a/inkscape.spec b/inkscape.spec
index 9eaac29..ed82351 100644
--- a/inkscape.spec
+++ b/inkscape.spec
@@ -12,21 +12,22 @@
Name: inkscape
-BuildRequires: boost-devel cairomm docbook-toys fdupes gcc-c++ gtkmm24-devel intltool libglade2-devel libgnomeprintui-devel libgnomeui-devel liblcms-devel libpoppler-glib-devel libwnck-devel libxslt-devel loudmouth-devel perl python-devel python-gtk-devel sgml-skel update-desktop-files
+BuildRequires: boost-devel docbook-toys fdupes gcc-c++ gtkmm24-devel intltool libMagick++-devel libglade2-devel libgnomeprintui-devel libgnomeui-devel liblcms-devel libpoppler-glib-devel libwnck-devel libwpg-devel libxslt-devel loudmouth-devel perl python-devel python-gtk-devel sgml-skel update-desktop-files
License: GPL v2 only; LGPL v2.1 only
Group: Productivity/Graphics/Vector Editors
-Requires: cairomm ghostscript-fonts-std python-gtk python-numeric pstoedit libwmf gzip skencil /usr/bin/gs
-AutoReqProv: on
+Requires: ghostscript-fonts-std python-gtk python-numeric pstoedit gzip /usr/bin/gs
Summary: Inkscape Vector Illustration Program
Version: 0.46
-Release: 34
+Release: 37
+# package in <= NLD9 and SuSE Linux <= 9.1
Provides: sodipodi
Obsoletes: sodipodi
-PreReq: /bin/rm /bin/ln /bin/sh /usr/bin/perl
-Recommends: pyxml
Source: %{name}-%{version}.tar.bz2
Source1: gc6.4.tar.bz2
+Source2: inkscape-split-extensions-extra.sh
Patch: %{name}-boehm-gc.patch
+#PATCH-FIX-OPENSUSE inkscape-packages.patch sbrabec@suse.cz -- Suggest packages instead of compilation from source.
+Patch1: %{name}-packages.patch
Patch4: %{name}-swigfix.patch
Patch7: %{name}-bug-189159.patch
Patch8: %{name}-configure.patch
@@ -47,6 +48,321 @@ Inkscape is a vector illustration program for the GNOME desktop.
+Authors:
+--------
+ Alexander Clausen
+ John Bintz
+ Arpad Biro
+ Daniel Borgmann
+ Hans Breuer
+ Bulia Byak
+ Chema Celorio
+ Johan Ceuppens
+ Zbigniew Chyla
+ John Cliff
+ Kees Cook
+ Robert Crosbie
+ Jon Cruz
+ Danilo Egan
+ Frank Felfe
+ Fred
+ Ted Gould
+ Bryce Harrington
+ Carl Hetherington
+ Nathan Hurst
+ Thomas Ingham
+ Bob Jamison
+ Lauris Kaplinski
+ Lynn Kerby
+ Petr Kovar
+ Raph Levien
+ Vitaly Lipatov
+ Dmitry G. Mastrukov
+ Michael Meeks
+ Federico Mena
+ MenTaLguY
+ Peter Moulder
+ Yukihiro Nakai
+ Christian Neumair
+ Mitsuru Oka
+ Jon Phillips
+ Christian Schaller
+ Tom von Schwerdtner
+ Pat Suwalski
+ Adib Taraben
+ Daniel Yacob
+ Masatake Yamato
+
+%package extensions-extra
+License: GPL v2 only; LGPL v2.1 only
+Summary: Inkscape Vector Illustration Program - Extra Extensions
+Group: Productivity/Graphics/Vector Editors
+Requires: %{name} = %{version} python-lxml pyxml
+# for cdr and wmf modules
+Requires: yudit
+# python-lxml requires pyxml => supplement installation, if all three are present
+Supplements: packageand(%{name}:python-lxml)
+Enhances: %{name}
+# Package in openSUSE <= 11.0 and SLED <= 10
+Provides: %{name}:%{_datadir}/inkscape/extensions/inkex.py
+
+%description extensions-extra
+Extra extensions for Inkscape. Recommended for everybody who wants to
+use Inkscape.
+
+Inkscape is a vector illustration program for the GNOME desktop.
+
+
+
+Authors:
+--------
+ Alexander Clausen
+ John Bintz
+ Arpad Biro
+ Daniel Borgmann
+ Hans Breuer
+ Bulia Byak
+ Chema Celorio
+ Johan Ceuppens
+ Zbigniew Chyla
+ John Cliff
+ Kees Cook
+ Robert Crosbie
+ Jon Cruz
+ Danilo Egan
+ Frank Felfe
+ Fred
+ Ted Gould
+ Bryce Harrington
+ Carl Hetherington
+ Nathan Hurst
+ Thomas Ingham
+ Bob Jamison
+ Lauris Kaplinski
+ Lynn Kerby
+ Petr Kovar
+ Raph Levien
+ Vitaly Lipatov
+ Dmitry G. Mastrukov
+ Michael Meeks
+ Federico Mena
+ MenTaLguY
+ Peter Moulder
+ Yukihiro Nakai
+ Christian Neumair
+ Mitsuru Oka
+ Jon Phillips
+ Christian Schaller
+ Tom von Schwerdtner
+ Pat Suwalski
+ Adib Taraben
+ Daniel Yacob
+ Masatake Yamato
+
+%package extensions-dia
+License: GPL v2 only; LGPL v2.1 only
+Summary: Inkscape Vector Illustration Program - Dia Import Extension
+Group: Productivity/Graphics/Vector Editors
+Requires: %{name} = %{version} dia
+Supplements: packageand(%{name}:dia)
+Enhances: %{name}
+# Package in openSUSE <= 11.0 and SLED <= 10
+Provides: %{name}:%{_datadir}/inkscape/extensions/dia.inx
+
+%description extensions-dia
+Dia import extension for Inkscape.
+
+Inkscape is a vector illustration program for the GNOME desktop.
+
+
+
+Authors:
+--------
+ Alexander Clausen
+ John Bintz
+ Arpad Biro
+ Daniel Borgmann
+ Hans Breuer
+ Bulia Byak
+ Chema Celorio
+ Johan Ceuppens
+ Zbigniew Chyla
+ John Cliff
+ Kees Cook
+ Robert Crosbie
+ Jon Cruz
+ Danilo Egan
+ Frank Felfe
+ Fred
+ Ted Gould
+ Bryce Harrington
+ Carl Hetherington
+ Nathan Hurst
+ Thomas Ingham
+ Bob Jamison
+ Lauris Kaplinski
+ Lynn Kerby
+ Petr Kovar
+ Raph Levien
+ Vitaly Lipatov
+ Dmitry G. Mastrukov
+ Michael Meeks
+ Federico Mena
+ MenTaLguY
+ Peter Moulder
+ Yukihiro Nakai
+ Christian Neumair
+ Mitsuru Oka
+ Jon Phillips
+ Christian Schaller
+ Tom von Schwerdtner
+ Pat Suwalski
+ Adib Taraben
+ Daniel Yacob
+ Masatake Yamato
+
+%package extensions-fig
+License: GPL v2 only; LGPL v2.1 only
+Summary: Inkscape Vector Illustration Program - Fig Import Extension
+Group: Productivity/Graphics/Vector Editors
+Requires: %{name} = %{version} transfig
+Supplements: packageand(%{name}:transfig)
+Enhances: %{name}
+# Package in openSUSE <= 11.0 and SLED <= 10
+Provides: %{name}:%{_datadir}/inkscape/extensions/fig_input.inx
+
+%description extensions-fig
+Fig family (XFig, Figurine, JFig, WinFig,...) import extension for
+Inkscape.
+
+Inkscape is a vector illustration program for the GNOME desktop.
+
+
+
+Authors:
+--------
+ Alexander Clausen
+ John Bintz
+ Arpad Biro
+ Daniel Borgmann
+ Hans Breuer
+ Bulia Byak
+ Chema Celorio
+ Johan Ceuppens
+ Zbigniew Chyla
+ John Cliff
+ Kees Cook
+ Robert Crosbie
+ Jon Cruz
+ Danilo Egan
+ Frank Felfe
+ Fred
+ Ted Gould
+ Bryce Harrington
+ Carl Hetherington
+ Nathan Hurst
+ Thomas Ingham
+ Bob Jamison
+ Lauris Kaplinski
+ Lynn Kerby
+ Petr Kovar
+ Raph Levien
+ Vitaly Lipatov
+ Dmitry G. Mastrukov
+ Michael Meeks
+ Federico Mena
+ MenTaLguY
+ Peter Moulder
+ Yukihiro Nakai
+ Christian Neumair
+ Mitsuru Oka
+ Jon Phillips
+ Christian Schaller
+ Tom von Schwerdtner
+ Pat Suwalski
+ Adib Taraben
+ Daniel Yacob
+ Masatake Yamato
+
+%package extensions-gimp
+License: GPL v2 only; LGPL v2.1 only
+Summary: Inkscape Vector Illustration Program - The GIMP Extensions
+Group: Productivity/Graphics/Vector Editors
+Requires: %{name} = %{version} gimp
+Supplements: packageand(%{name}:gimp)
+Enhances: %{name}
+# Package in openSUSE <= 11.0 and SLED <= 10
+Provides: %{name}:%{_datadir}/inkscape/extensions/gimp_xcf.inx
+
+%description extensions-gimp
+The GIMP import and export extensions for Inkscape.
+
+Inkscape is a vector illustration program for the GNOME desktop.
+
+
+
+Authors:
+--------
+ Alexander Clausen
+ John Bintz
+ Arpad Biro
+ Daniel Borgmann
+ Hans Breuer
+ Bulia Byak
+ Chema Celorio
+ Johan Ceuppens
+ Zbigniew Chyla
+ John Cliff
+ Kees Cook
+ Robert Crosbie
+ Jon Cruz
+ Danilo Egan
+ Frank Felfe
+ Fred
+ Ted Gould
+ Bryce Harrington
+ Carl Hetherington
+ Nathan Hurst
+ Thomas Ingham
+ Bob Jamison
+ Lauris Kaplinski
+ Lynn Kerby
+ Petr Kovar
+ Raph Levien
+ Vitaly Lipatov
+ Dmitry G. Mastrukov
+ Michael Meeks
+ Federico Mena
+ MenTaLguY
+ Peter Moulder
+ Yukihiro Nakai
+ Christian Neumair
+ Mitsuru Oka
+ Jon Phillips
+ Christian Schaller
+ Tom von Schwerdtner
+ Pat Suwalski
+ Adib Taraben
+ Daniel Yacob
+ Masatake Yamato
+
+%package extensions-skencil
+License: GPL v2 only; LGPL v2.1 only
+Summary: Inkscape Vector Illustration Program - Skencil Import Extension
+Group: Productivity/Graphics/Vector Editors
+Requires: %{name} = %{version} skencil
+Supplements: packageand(%{name}:skencil)
+Enhances: %{name}
+# Package in openSUSE <= 11.0 and SLED <= 10
+Provides: %{name}:%{_datadir}/inkscape/extensions/sk_input.inx
+
+%description extensions-skencil
+Skencil import extension for Inkscape.
+
+Inkscape is a vector illustration program for the GNOME desktop.
+
+
+
Authors:
--------
Alexander Clausen
@@ -96,6 +412,7 @@ Authors:
%prep
%setup -q -b 1
%patch
+%patch1
%patch4
%patch7
%patch8
@@ -122,6 +439,8 @@ chmod -x README.ca.txt
pushd ../gc*
autoreconf -f -i
export CFLAGS="$RPM_OPT_FLAGS -fno-strict-aliasing"
+# FIXME: It should be fixed in the package using pkg-config:
+export CPPFLAGS="$CPPFLAGS -I/usr/include/ImageMagick"
%configure\
--libdir=%{_prefix}/lib\
--disable-shared
@@ -148,47 +467,80 @@ make DESTDIR=$RPM_BUILD_ROOT install
rm -rf $RPM_BUILD_ROOT/%{_datadir}/locale/en_US@piglatin
%suse_update_desktop_file -N "Inkscape" -G "SVG Vector Illustrator" inkscape Office FlowChart
%find_lang %{name}
-mkdir -p $RPM_BUILD_ROOT%{_datadir}/inkscape/extensions-optional
-cp $RPM_BUILD_ROOT%{_datadir}/inkscape/extensions/dia.inx $RPM_BUILD_ROOT%{_datadir}/inkscape/extensions-optional
%fdupes $RPM_BUILD_ROOT
-
-%triggerin -- dia
-ln -f usr/share/inkscape/extensions-optional/dia.inx usr/share/inkscape/extensions/dia.inx
-
-%triggerpostun -- dia
-if [ ! -x usr/bin/dia ] ; then
- rm usr/share/inkscape/extensions/dia.inx
-fi
+rm $RPM_BUILD_ROOT%{_datadir}/inkscape/extensions/ps2pdf.cmd # Windows script
+bash %{S:2} $RPM_BUILD_ROOT%{_datadir}/inkscape/extensions "%%{_datadir}/inkscape/extensions/"
%clean
rm -rf $RPM_BUILD_ROOT
-%files
+%files -f inkscape.lst
%defattr(-,root,root)
%doc AUTHORS COPYING COPYING.LIB ChangeLog HACKING* INSTALL NEWS README* TRANSLATORS
%{_bindir}/*
%{_datadir}/applications/inkscape.desktop
%dir %{_datadir}/inkscape
-%{_datadir}/inkscape/[a-df-z]*
-%{_datadir}/inkscape/exa*
-%{_datadir}/inkscape/extensions-optional
+%{_datadir}/inkscape/[cf-z]*
+%{_datadir}/inkscape/examples
%dir %{_datadir}/inkscape/extensions
-%{_datadir}/inkscape/extensions/[a-ce-zA-Z]*
-%{_datadir}/inkscape/extensions/dia2*
-%{_datadir}/inkscape/extensions/dimension.*
-%{_datadir}/inkscape/extensions/dots*
-%{_datadir}/inkscape/extensions/dx*
-%ghost %{_datadir}/inkscape/extensions/dia.inx
+%{_datadir}/inkscape/extensions/xaml2svg
+%{_datadir}/inkscape/extensions/*.pl
+%{_datadir}/inkscape/extensions/*.xsl*
+%{_datadir}/inkscape/extensions/colors.xml
+%{_datadir}/inkscape/extensions/ps2*
+#BEGIN FIXME: What is purpose of these plugins? I see no references to them:
+%{_datadir}/inkscape/extensions/SpSVG.pm
+%{_datadir}/inkscape/extensions/inkscape-shadow*
+%{_datadir}/inkscape/extensions/simplepath.rb
+# *.txt contain inactive plugins
+%{_datadir}/inkscape/extensions/*.txt
+#END FIXME
%{_datadir}/pixmaps/inkscape.png
%doc %{_mandir}/man?/*.*
%doc %{_mandir}/??/man?/*.*
-# FIXME
+# FIXME: should be part of filesystem
%dir %{_mandir}/fr
%dir %{_mandir}/fr/man1
+%files extensions-extra -f inkscape-extensions-extra.lst
+%defattr(-,root,root)
+%{_datadir}/inkscape/extensions/Barcode
+%{_datadir}/inkscape/extensions/cdr*
+%{_datadir}/inkscape/extensions/wmf*
+
+%files extensions-dia
+%defattr(-,root,root)
+%{_datadir}/inkscape/extensions/dia*
+
+%files extensions-fig
+%defattr(-,root,root)
+%{_datadir}/inkscape/extensions/fig*
+
+%files extensions-gimp
+%defattr(-,root,root)
+# NOTE: export_gimp_palette* does not depend on gimp, but belongs here logically:
+%{_datadir}/inkscape/extensions/*gimp*
+
+%files extensions-skencil
+%defattr(-,root,root)
+%{_datadir}/inkscape/extensions/sk*
+
%files lang -f %{name}.lang
%changelog
+* Tue Jul 01 2008 sbrabec@suse.cz
+- Added missing dependencies: libMagick++-devel, libwpg-devel,
+ gimp, transfig, yudit.
+- Packaged extensions using pyxml, lxml and yudit as an extra
+ package to shrink mandatory dependencies and not break plugins.
+ Uses an extra script for evaluation.
+- Packaged optional dia, fig, gimp and skencil plugins as separate
+ packages with extra dependencies.
+- Removed dependency on skencil, no more needed for EPS import
+ (bnc#394748).
+- Removed dependency on libwmf, no more needed for WMF import.
+- Tell user about pyxml and lxml packages instead of suggestinng of
+ compilation from source (however the message should not appear).
* Sat Jun 28 2008 maw@suse.de
- Add inkscape-gtk-clist.patch, to enable building against
recent versions of gtk+.