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+.