diff --git a/.cvsignore b/.cvsignore index 51e94d1..3bb2e73 100644 --- a/.cvsignore +++ b/.cvsignore @@ -1,2 +1,3 @@ kdegraphics-3.5.7.tar.bz2 kdegraphics-3.5.8.tar.bz2 +kdegraphics-3.97.0.tar.bz2 diff --git a/kdegraphics-3.3.0-misc.patch b/kdegraphics-3.3.0-misc.patch deleted file mode 100644 index 7d8135d..0000000 --- a/kdegraphics-3.3.0-misc.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- kdegraphics-3.3.0/kmrml/kmrml/lib/watcher_stub.cpp.orig 2004-09-23 19:40:34.340040080 +0200 -+++ kdegraphics-3.3.0/kmrml/kmrml/lib/watcher_stub.cpp 2004-09-23 19:40:47.247130973 +0200 -@@ -23,7 +23,7 @@ - - bool Watcher_stub::requireDaemon( const QCString& arg0, const QString& arg1, const QString& arg2, uint arg3, int arg4 ) - { -- bool result; -+ bool result = false; - if ( !dcopClient() ) { - setStatus( CallFailed ); - return result; diff --git a/kdegraphics-3.3.1-xorg.patch b/kdegraphics-3.3.1-xorg.patch deleted file mode 100644 index 6488e3f..0000000 --- a/kdegraphics-3.3.1-xorg.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- kdegraphics-3.3.1/kgamma/xf86gammacfg/xf86gammacfg.cpp.orig 2004-10-03 03:14:01.000000000 -0400 -+++ kdegraphics-3.3.1/kgamma/xf86gammacfg/xf86gammacfg.cpp 2004-11-18 06:23:30.000000000 -0500 -@@ -55,6 +55,8 @@ - searchPaths.push_back("/usr/X11R6/etc/X11/XF86Config"); - searchPaths.push_back("/usr/X11R6/lib/X11/XF86Config-4"); - searchPaths.push_back("/usr/X11R6/lib/X11/XF86Config"); -+ searchPaths.push_back("/usr/X11R6/lib/X11/xorg.conf"); -+ searchPaths.push_back("/etc/X11/xorg.conf"); - - std::vector::iterator it = searchPaths.begin(); - for (; it != searchPaths.end(); ++it ) { diff --git a/kdegraphics-3.5.1-warning.patch b/kdegraphics-3.5.1-warning.patch deleted file mode 100644 index 0bb0727..0000000 --- a/kdegraphics-3.5.1-warning.patch +++ /dev/null @@ -1,12 +0,0 @@ ---- kdegraphics-3.5.1/kolourpaint/cursors/kpcursorlightcross.cpp.orig 2006-02-07 12:10:45.000000000 +0100 -+++ kdegraphics-3.5.1/kolourpaint/cursors/kpcursorlightcross.cpp 2006-02-07 12:10:52.000000000 +0100 -@@ -52,7 +52,8 @@ - const int MaskOpaque = 1; - const int MaskTransparent = 0; - -- int colorValue, maskValue; -+ int colorValue = ColorWhite; -+ int maskValue = MaskTransparent; - - switch (pv) - { diff --git a/kdegraphics.spec b/kdegraphics.spec index 384f256..f770363 100644 --- a/kdegraphics.spec +++ b/kdegraphics.spec @@ -1,716 +1,319 @@ - -%define debug 0 -%define final 1 -%define make_cvs 0 - -%if 0%{?fedora} > 7 -# make -libs subpkg -%define libs 1 -%endif - -Name: kdegraphics -Summary: K Desktop Environment - Graphics Applications -Epoch: 7 -Version: 3.5.8 -Release: 7%{?dist} - -License: GPLv2 -Group: Applications/Multimedia -BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) -Url: http://www.kde.org -Source: ftp://ftp.kde.org/pub/kde/stable/%{version}/src/%{name}-%{version}.tar.bz2 - -Patch1: kdegraphics-3.3.0-misc.patch -Patch2: kdegraphics-3.3.1-xorg.patch -Patch3: kdegraphics-3.5.1-warning.patch -# http://www.kde.org/info/security/advisory-20071107-1.txt -Patch4: ftp://ftp.kde.org/pub/kde/security_patches/post-3.5.8-kdegraphics-kpdf.diff - -Provides: kdegraphics3 = %{version}-%{release} - -Requires: ghostscript - -%if 0%{?libs} -Requires: %{name}-libs = %{?epoch:%{epoch}:}%{version}-%{release} +# force fedora version here for testing +# should be removed for normal inclusion in fedora +# fedora > 9: also include conflicting files +# fedora <= 9: don't include conflicting files +%define fedora 10 + +# FIXME/TODO: Check if printing works in okular in the F7/F8 version +# atm it is non-functional and without printing providing this package is useless. + +Summary: K Desktop Environment - Graphics Applications +Epoch: 7 +Version: 3.97.0 +Release: 1%{?dist} + +%if 0%{?fedora} > 9 +Name: kdegraphics +Obsoletes: kdegraphics4 < %{version}-%{release} +Provides: kdegraphics4 = %{version}-%{release} +# kdegraphics now includes gwenview(2) +Obsoletes: gwenview < 2 +Provides: gwenview >= 2 %else -Obsoletes: %{name}-libs < %{?epoch:%{epoch}:}%{version}-%{release} -Provides: %{name}-libs = %{?epoch:%{epoch}:}%{version}-%{release} -Requires(post): /sbin/ldconfig -Requires(postun): /sbin/ldconfig +Name: kdegraphics4 %endif -BuildRequires: gettext -BuildRequires: kdelibs3-devel >= %{version} -BuildRequires: libmng-devel -BuildRequires: libpng-devel -BuildRequires: libtiff-devel -BuildRequires: libungif-devel - -%ifnarch s390 s390x -%define kamera 1 -BuildRequires: gphoto2-devel -%define kooka 1 -BuildRequires: sane-backends-devel -BuildRequires: libusb-devel -%endif - -# kgamma -%if 0%{?fedora} > 4 || 0%{?rhel} > 4 -BuildRequires: libXxf86vm-devel -%endif -# kuickshow -BuildRequires: imlib-devel -#kfile-plugin -BuildRequires: OpenEXR-devel -# kpdf -BuildRequires: freetype-devel -%if 0%{?fedora} > 5 || 0%{?rhel} > 4 -BuildRequires: poppler-qt-devel -BuildRequires: libpaper-devel -%endif -# ksvg -BuildRequires: fontconfig-devel -BuildRequires: fribidi-devel -BuildRequires: lcms-devel -BuildRequires: libart_lgpl-devel -BuildRequires: libXmu-devel -# kpovmodeler -%if 0%{!?rhel:1} -BuildRequires: libGL-devel -BuildRequires: libGLU-devel -BuildRequires: libXi-devel -%endif +Group: Applications/Multimedia +License: GPLv2+ +URL: http://www.kde.org/ +Source0: ftp://ftp.kde.org/pub/kde/unstable/%{version}/src/kdegraphics-%{version}.tar.bz2 +BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) + +BuildRequires: kde-filesystem >= 4 +BuildRequires: kdelibs4-devel >= %{version} +BuildRequires: cmake +BuildRequires: chmlib-devel +BuildRequires: djvulibre-devel +BuildRequires: exiv2-devel +BuildRequires: giflib-devel +BuildRequires: ghostscript-devel +BuildRequires: gphoto2-devel +BuildRequires: libtiff-devel +BuildRequires: pcre-devel +BuildRequires: poppler-qt4-devel +BuildRequires: qimageblitz-devel +BuildRequires: sane-backends-devel +# FIXME/TODO: These ones could be removed when they will be required by kdelibs4-devel (which happens soon) +BuildRequires: libXcomposite-devel +BuildRequires: libXdamage-devel +BuildRequires: libxkbfile-devel +BuildRequires: libXv-devel +BuildRequires: libXxf86misc-devel +BuildRequires: libXScrnSaver-devel +BuildRequires: libXpm-devel +BuildRequires: libXtst-devel + +# FIXME/TODO: are there other explicit Requires? +%{?_kde4_macros_api:Requires: kde4-macros(api) = %{_kde4_macros_api} } +Requires: kdelibs4 >= %{version} +Requires: %{name}-libs = %{?epoch:%{epoch}:}%{version}-%{release} +Requires: oxygen-icon-theme +Requires(post): /sbin/ldconfig xdg-utils +Requires(postun): /sbin/ldconfig xdg-utils -%if 0%{?make_cvs} -BuildRequires: automake libtool -%endif +%if "%{name}" == "kdegraphics" %description Graphics applications for the K Desktop Environment, including -%{?kamera:* kamera (digital camera support)} -* kcoloredit (palette editor and color chooser) -* kdvi (displays TeX .dvi files) -* kghostview (displays postscript files) -* kiconedit (icon editor) -%{?kooka:* kooka (scanner application)} -* kpdf (displays PDF files) +* gwenview (an image viewer) +* kamera (digital camera support) +* kcolorchooser (a color chooser) +* kolourpaint4 (an easy-to-use paint program) * kruler (screen ruler and color measurement tool) * ksnapshot (screen capture utility) -* kview (image viewer for GIF, JPEG, TIFF, etc.) +* okular (a document viewer) -%package devel -Summary: Development files for %{name} -Provides: kdegraphics3-devel = %{version}-%{release} -Requires: %{name}-libs = %{?epoch:%{epoch}:}%{version}-%{release} -Group: Development/Libraries -%description devel -%{summary}. +%else -## FIXME: move more stuff to -extras -%package extras -Summary: Extra applications from %{name} -Group: Applications/Multimedia -Requires: %{name}-libs = %{?epoch:%{epoch}:}%{version}-%{release} -%description extras -%{summary}, including: -* kfax -* kfaxview -* kpovmodler +%description +Graphics applications for the K Desktop Environment 4, including +* okular (a document viewer) + +This applications is supposed to run in a normal KDE 3 installation. + +%endif -%if 0%{?libs} %package libs -Summary: %{name} runtime libraries +Summary: Runtime libraries for %{name} Group: System Environment/Libraries -Requires: kdelibs3 >= %{version} -# helps multilib upgrades -Obsoletes: %{name} < %{?epoch:%{epoch}:}%{version}-%{release} -# include to be paranoid, installing libs-only is still mostly untested -- Rex -Requires: %{name} = %{?epoch:%{epoch}:}%{version}-%{release} %description libs %{summary}. -%endif -%prep -%setup -q -%patch1 -p1 -b .misc -%patch2 -p1 -b .xorg -%patch3 -p1 -b .gcc-warning -%patch4 -p0 -b .CVE-2007-4352-5392-5393 - - -%if 0%{!?rhel:1} - DO_NOT_COMPILE="" - export DO_NOT_COMPILE="$DO_NOT_COMPILE kfax" - export DO_NOT_COMPILE="$DO_NOT_COMPILE kfaxview" - export DO_NOT_COMPILE="$DO_NOT_COMPILE kpovmodeler" +%package devel +Group: Development/Libraries +Summary: Header files for %{name} +Requires: %{name}-libs = %{?epoch:%{epoch}:}%{version}-%{release} +%if "%{name}" != "kdegraphics4" +Obsoletes: kdegraphics4-devel < %{version}-%{release} +Provides: kdegraphics4-devel = %{version}-%{release} %endif +Requires: kdelibs4-devel +%description devel +Header files for developing applications using %{name}. -%if %{make_cvs} - make -f admin/Makefile.common cvs -%endif +%prep +%setup -q -n kdegraphics-%{version} %build -unset QTDIR || : ; . /etc/profile.d/qt.sh - -%configure \ - --enable-new-ldflags \ - --disable-dependency-tracking \ - --disable-rpath \ -%if "%{?debug}" != "1" - --disable-debug \ - --disable-warnings \ -%endif% -%if 0%{?final} - --enable-final \ -%endif - --includedir=%{_includedir}/kde \ - %{!?kamera:--without-kamera} \ - --with-xinerama -make %{?_smp_mflags} +mkdir -p %{_target_platform} +pushd %{_target_platform} +%{cmake_kde4} .. +popd + + +make %{?_smp_mflags} -C %{_target_platform} + %install rm -rf %{buildroot} - -make install DESTDIR=%{buildroot} - -# locale's -%find_lang %{name} || touch %{name}.lang -HTML_DIR=$(kde-config --expandvars --install html) -if [ -d %{buildroot}$HTML_DIR ]; then -for lang_dir in %{buildroot}$HTML_DIR/* ; do - if [ -d $lang_dir ]; then - lang=$(basename $lang_dir) - echo "%lang($lang) $HTML_DIR/$lang/*" >> %{name}.lang - # replace absolute symlinks with relative ones - pushd $lang_dir - for i in *; do - [ -d $i -a -L $i/common ] && ln -nsf ../common $i/common - done - popd - fi +mkdir %{buildroot} +make install DESTDIR=%{buildroot} -C %{_target_platform} + +mkdir -p %{buildroot}%{_kde4_libdir}/kde4/devel +pushd %{buildroot}%{_kde4_libdir} +for i in lib*.so +do + case "$i" in + libkdeinit4_*.so) + ;; + # libspectreOkular.so is no symlink + libspectreOkular.so) + ;; + *) + linktarget=`readlink "$i"` + rm -f "$i" + ln -sf "../../$linktarget" "kde4/devel/$i" + ;; + esac done -fi - -# rpmdocs -for dir in k* ; do - for file in AUTHORS ChangeLog README TODO ; do - if test -s "$dir/$file" ; then - install -p -m644 -D "$dir/$file" "rpmdocs/$dir/$file" - # exclude for RHEL -%if 0%{!?rhel:1} - [ $dir != kfax -a $dir != kfaxview -a $dir != kpovmodeler ] && \ +popd + +%if "%{name}" != "kdegraphics" +# remove files which conflict with KDE 3 +rm -rf %{buildroot}%{_kde4_bindir}/gwenview +rm -rf %{buildroot}%{_kde4_bindir}/kbackgroundsnapshot +rm -rf %{buildroot}%{_kde4_bindir}/kcolorchooser +rm -rf %{buildroot}%{_kde4_bindir}/kolourpaint4 +rm -rf %{buildroot}%{_kde4_bindir}/kruler +rm -rf %{buildroot}%{_kde4_bindir}/ksnapshot +rm -rf %{buildroot}%{_kde4_libdir}/kde4/gsthumbnail.so +rm -rf %{buildroot}%{_kde4_libdir}/kde4/gvpart.so +rm -rf %{buildroot}%{_kde4_libdir}/kde4/kcm_kamera.so +rm -rf %{buildroot}%{_kde4_libdir}/kde4/kio_kamera.so +rm -rf %{buildroot}%{_kde4_libdir}/kde4/kio_msits.so +rm -rf %{buildroot}%{_kde4_libdir}/kde4/kscanplugin.so +rm -rf %{buildroot}%{_kde4_libdir}/libgwenviewlib.so.* +rm -rf %{buildroot}%{_kde4_libdir}/libkolourpaint4_lgpl.so.* +rm -rf %{buildroot}%{_kde4_libdir}/strigi/strigita_dvi.so +rm -rf %{buildroot}%{_kde4_libdir}/strigi/strigita_ico.so +rm -rf %{buildroot}%{_kde4_datadir}/applications/kde4/gwenview.desktop +rm -rf %{buildroot}%{_kde4_datadir}/applications/kde4/kcolorchooser.desktop +rm -rf %{buildroot}%{_kde4_datadir}/applications/kde4/kolourpaint4.desktop +rm -rf %{buildroot}%{_kde4_datadir}/applications/kde4/kruler.desktop +rm -rf %{buildroot}%{_kde4_datadir}/applications/kde4/ksnapshot.desktop +rm -rf %{buildroot}%{_kde4_datadir}/dbus-1/interfaces/org.kde.ksnapshot.xml +rm -rf %{buildroot}%{_kde4_datadir}/doc/HTML/en/kamera/ +rm -rf %{buildroot}%{_kde4_datadir}/doc/HTML/en/kolourpaint4/ +rm -rf %{buildroot}%{_kde4_datadir}/doc/HTML/en/kruler/ +rm -rf %{buildroot}%{_kde4_datadir}/doc/HTML/en/ksnapshot/ +rm -rf %{buildroot}%{_kde4_datadir}/icons/hicolor/*/apps/kcolorchooser.png +rm -rf %{buildroot}%{_kde4_datadir}/icons/hicolor/*/apps/kolourpaint4.png +rm -rf %{buildroot}%{_kde4_datadir}/icons/hicolor/*/apps/kruler.png +rm -rf %{buildroot}%{_kde4_datadir}/icons/hicolor/*/apps/ksnapshot.png +rm -rf %{buildroot}%{_kde4_datadir}/icons/hicolor/scalable/apps/kolourpaint4.svgz +rm -rf %{buildroot}%{_kde4_datadir}/icons/hicolor/scalable/apps/ksnapshot.svgz +rm -rf %{buildroot}%{_kde4_datadir}/icons/oxygen/16x16/actions/palette_color.png +rm -rf %{buildroot}%{_kde4_datadir}/icons/oxygen/16x16/actions/palette_gray.png +rm -rf %{buildroot}%{_kde4_datadir}/icons/oxygen/16x16/actions/palette_halftone.png +rm -rf %{buildroot}%{_kde4_datadir}/icons/oxygen/16x16/actions/palette_lineart.png +rm -rf %{buildroot}%{_kde4_appsdir}/gvpart +rm -rf %{buildroot}%{_kde4_appsdir}/gvpart/gvpart.rc +rm -rf %{buildroot}%{_kde4_appsdir}/gwenview +rm -rf %{buildroot}%{_kde4_appsdir}/gwenview/gwenviewui.rc +rm -rf %{buildroot}%{_kde4_appsdir}/kolourpaint4/ +rm -rf %{buildroot}%{_kde4_appsdir}/kruler/ +rm -rf %{buildroot}%{_kde4_appsdir}/svgpart/ +rm -rf %{buildroot}%{_kde4_datadir}/kde4/services/camera.protocol +rm -rf %{buildroot}%{_kde4_datadir}/kde4/services/gsthumbnail.desktop +rm -rf %{buildroot}%{_kde4_datadir}/kde4/services/gvpart.desktop +rm -rf %{buildroot}%{_kde4_datadir}/kde4/services/kamera.desktop +rm -rf %{buildroot}%{_kde4_datadir}/kde4/services/msits.protocol +rm -rf %{buildroot}%{_kde4_datadir}/kde4/services/scanservice.desktop +# devel files +rm -rf %{buildroot}%{_kde4_libdir}/kde4/devel/libgwenviewlib.so +rm -rf %{buildroot}%{_kde4_libdir}/kde4/devel/libkolourpaint4_lgpl.so %endif - echo "%doc rpmdocs/$dir/" >> %{name}.lang - fi - done -done -# unpackaged files -# omit kpovmodeler-devel files (for now) -- Rex -rm -f %{buildroot}/libkpovmodeler.so %clean rm -rf %{buildroot} - %post -%{!?libs:/sbin/ldconfig} -for f in crystalsvg hicolor ; do - touch --no-create %{_datadir}/icons/${f} 2> /dev/null ||: - gtk-update-icon-cache -q %{_datadir}/icons/${f} 2> /dev/null ||: -done -update-desktop-database %{_datadir}/applications > /dev/null 2>&1 || : +%{_bindir}/xdg-icon-resource forceupdate --theme hicolor 2> /dev/null || : +%if "%{name}" == "kdegraphics" +%{_bindir}/xdg-icon-resource forceupdate --theme oxygen 2> /dev/null || : +%endif +%{_bindir}/xdg-desktop-menu forceupdate 2> /dev/null || : %postun -%{!?libs:/sbin/ldconfig} -for f in crystalsvg hicolor ; do - touch --no-create %{_datadir}/icons/${f} 2> /dev/null ||: - gtk-update-icon-cache -q %{_datadir}/icons/${f} 2> /dev/null ||: -done -update-desktop-database %{_datadir}/applications > /dev/null 2>&1 || : +%{_bindir}/xdg-icon-resource forceupdate --theme hicolor 2> /dev/null || : +%if "%{name}" == "kdegraphics" +%{_bindir}/xdg-icon-resource forceupdate --theme oxygen 2> /dev/null || : +%endif +%{_bindir}/xdg-desktop-menu forceupdate 2> /dev/null || : -%if 0%{?libs} %post libs -p /sbin/ldconfig %postun libs -p /sbin/ldconfig -%endif -%if 0%{!?rhel:1} -%post extras -/sbin/ldconfig ||: -for f in crystalsvg hicolor ; do - touch --no-create %{_datadir}/icons/${f} 2> /dev/null ||: - gtk-update-icon-cache -q %{_datadir}/icons/${f} 2> /dev/null ||: -done -update-desktop-database %{_datadir}/applications > /dev/null 2>&1 || : - -%postun extras -/sbin/ldconfig ||: -for f in crystalsvg hicolor ; do - touch --no-create %{_datadir}/icons/${f} 2> /dev/null ||: - gtk-update-icon-cache -q %{_datadir}/icons/${f} 2> /dev/null ||: -done -update-desktop-database %{_datadir}/applications > /dev/null 2>&1 || : - - -%files extras +%files %defattr(-,root,root,-) - -# kfax -%doc rpmdocs/kfax/ -%{_bindir}/kfax -%{_datadir}/applications/kde/kfax.desktop -%{_datadir}/apps/kfax/ -%{_datadir}/icons/hicolor/??x??/apps/kfax.png -%{_datadir}/icons/hicolor/scalable/apps/kfax.svgz - -# kfaxview -%{_bindir}/kfaxview -%{_libdir}/libkfaximage.so -%{_libdir}/libkfaximage.la -%{_libdir}/kde3/kfaxviewpart.* -%{_datadir}/applications/kde/kfaxview.desktop -%{_datadir}/apps/kfaxview/ -%{_datadir}/icons/hicolor/??x??/apps/kfaxview.png -%{_datadir}/icons/hicolor/scalable/apps/kfaxview.svgz -%{_datadir}/services/kfaxmultipage.desktop -%{_datadir}/services/kfaxmultipage_tiff.desktop - -# kpovmodeler -%doc rpmdocs/kpovmodeler/ -%doc %{_docdir}/HTML/en/kpovmodeler/ -%{_bindir}/kpovmodeler -%{_libdir}/libkpovmodeler.so.* -%{_libdir}/libkpovmodeler.la -%{_libdir}/kde3/libkpovmodelerpart.* -%{_datadir}/applications/kde/kpovmodeler.desktop -%{_datadir}/apps/kpovmodeler/ -%{_datadir}/icons/crystalsvg/*/mimetypes/kpovmodeler_doc.* -%{_datadir}/icons/hicolor/*/apps/kpovmodeler.* +%doc COPYING COPYING-DOCS README +%{_kde4_bindir}/* +%{_kde4_appsdir}/okular/ +%{_kde4_configdir}/* +%{_kde4_datadir}/applications/kde4/* +%{_kde4_datadir}/config.kcfg/* +%{_kde4_datadir}/kde4/services/* +%{_kde4_datadir}/kde4/servicetypes/* +%{_kde4_docdir}/HTML/en/okular/ +%{_kde4_iconsdir}/hicolor/*/*/* +%if "%{name}" == "kdegraphics" +%{_kde4_appsdir}/gvpart/ +%{_kde4_appsdir}/gwenview/ +%{_kde4_appsdir}/kolourpaint4/ +%{_kde4_appsdir}/kruler/ +%{_kde4_appsdir}/svgpart/* +%{_kde4_datadir}/dbus-1/interfaces/* +%{_kde4_docdir}/HTML/en/kamera/ +%{_kde4_docdir}/HTML/en/ksnapshot/ +%{_kde4_docdir}/HTML/en/kolourpaint4/ +%{_kde4_docdir}/HTML/en/kruler/ +%{_kde4_iconsdir}/oxygen/*/*/* %endif -%files -f %{name}.lang +%files libs %defattr(-,root,root,-) -%doc AUTHORS COPYING README -%doc rpmdocs/* - -%if 0%{!?rhel:1} -# kfax -%exclude %{_bindir}/kfax -%exclude %{_datadir}/applications/kde/kfax.desktop -%exclude %{_datadir}/apps/kfax/ -%exclude %{_datadir}/icons/hicolor/*/apps/kfax.* - -# kfaxview -%exclude %{_bindir}/kfaxview -%exclude %{_libdir}/libkfaximage.so -%exclude %{_libdir}/libkfaximage.la -%exclude %{_libdir}/kde3/kfaxviewpart.* -%exclude %{_datadir}/applications/kde/kfaxview.desktop -%exclude %{_datadir}/apps/kfaxview/ -%exclude %{_datadir}/icons/hicolor/*/apps/kfaxview.* -%exclude %{_datadir}/services/kfaxmultipage.desktop -%exclude %{_datadir}/services/kfaxmultipage_tiff.desktop - -# kpovmodeler -%exclude %{_docdir}/HTML/en/kpovmodeler/ -%exclude %{_bindir}/kpovmodeler -%exclude %{_libdir}/libkpovmodeler.* -%exclude %{_libdir}/kde3/libkpovmodelerpart.* -%exclude %{_datadir}/applications/kde/kpovmodeler.desktop -%exclude %{_datadir}/apps/kpovmodeler/ -%exclude %{_datadir}/icons/crystalsvg/*/mimetypes/kpovmodeler_doc.* -%exclude %{_datadir}/icons/hicolor/*/apps/kpovmodeler.* +%doc COPYING +%{_kde4_libdir}/lib*.so.* +%{_kde4_libdir}/libspectreOkular.so +%{_kde4_libdir}/kde4/* +%exclude %{_kde4_libdir}/kde4/devel/ +%if "%{name}" == "kdegraphics" +%{_kde4_libdir}/strigi/* %endif -%{_bindir}/* -%{_datadir}/applications/kde/*.desktop -%{_datadir}/applnk/Graphics/*kruler.desktop -%{_datadir}/apps/* -%{_datadir}/icons/crystalsvg/*/*/* -%{_datadir}/icons/hicolor/*/*/* -%{_datadir}/config*/* -%{_datadir}/service*/* -%{_datadir}/mimelnk/*/* -%{_libdir}/libkdeinit_*.so -%{_libdir}/kde3/* - -%if 0%{?libs} -%files libs -%defattr(-,root,root,-) -%exclude %{_libdir}/libkfaximage.la -%exclude %{_libdir}/libkpovmodeler.la -%exclude %{_libdir}/libkpovmodeler.so.* -%endif -%{_libdir}/lib*.so.* -%{_libdir}/lib*.la %files devel %defattr(-,root,root,-) -%{_includedir}/kde/* -%{_libdir}/lib*.so -#exclude %{_libdir}/libkpovmodeler.so -%exclude %{_libdir}/libkfaximage.so -%exclude %{_libdir}/libkdeinit_*.so - +%{_kde4_includedir}/okular/ +%if "%{name}" == "kdegraphics" +%{_kde4_libdir}/kde4/devel/* +%endif %changelog -* Fri Nov 09 2007 Rex Dieter - 7:3.5.8-7 -- CVE-2007-4352 CVE-2007-5392 CVE-2007-5393 (#372581) - -* Mon Oct 30 2007 Rex Dieter - 7:3.5.8-5 -- -libs; Requires: %%name (multilib upgrades again) -- scriptlets fixes - -* Tue Oct 25 2007 Rex Dieter - 7:3.5.8-4 -- -libs: Obsoletes: %%name ... to help out multilib upgrades - -* Tue Oct 16 2007 Rex Dieter - 7:3.5.8-3 -- -libs: exclude libkpovmodeler -- -libs conditional (f8+) - -* Mon Oct 15 2007 Rex Dieter - 7:3.5.8-2 -- respin (for openexr-1.6.0) -- -libs: %%post/%%postun -p /sbin/ldconfig - -* Sat Oct 13 2007 Rex Dieter - 7:3.5.8-1 -- kde-3.5.8 -- libs subpkg (more multilib friendly) - -* Wed Sep 05 2007 Rex Dieter - 7:3.5.7-4 -- respin (for poppler) - -* Mon Aug 20 2007 Rex Dieter - 7:3.5.7-3 -- (Build)Requires: kdelibs3(-devel) -- Provides: kdegraphics3(-devel) - -* Mon Aug 13 2007 Rex Dieter - 7:3.5.7-2 -- CVE-2007-3387 (#251509, #251511) -- License: GPLv2 - -* Mon Jun 11 2007 Rex Dieter - 7:3.5.7-1 -- 3.5.7 - -* Fri May 04 2007 Rex Dieter - 7:3.5.6-3 -- integrate former kdegraphics-extras bits (kuickshow, OpenEXR kfile plugin) -- drop unecessary/upstreamed kpdf-xft patch4 (kde bug #123417) -- prune pre-3.0 changelog - -* Mon Mar 12 2007 Than Ngo - 7:3.5.6-2.fc7 -- cleanup - -* Tue Feb 07 2007 Than Ngo 7:3.5.6-1.fc7 -- 3.5.6 - -* Tue Sep 12 2006 Than Ngo 7:3.5.4-2 -- apply upstream patches - fix #113635, kpdf crash - fix #133910, Don't crash when trying to open a DVI file that has been only partially written - -* Thu Aug 10 2006 Than Ngo 7:3.5.4-1 -- rebuild - -* Mon Jul 24 2006 Tim Powers - 7:3.5.4-0.pre2 -- rebuild - -* Mon Jul 24 2006 Petr Rockai - 7:3.5.4-0.pre1 -- prerelease of 3.5.4 (from the first-cut tag) - -* Mon Jul 17 2006 Than Ngo 7:3.5.3-3 -- rebuild - -* Wed Jul 12 2006 Jesse Keating - 7:3.5.3-2.1 -- rebuild - -* Fri Jun 23 2006 Than Ngo 7:3.5.3-2 -- add missing kuickshow, printnodetest, svgdisplay, xf86gammacfg #196067 - -* Sat Jun 03 2006 Than Ngo 7:3.5.3-1 -- update to 3.5.3 - -* Wed Apr 05 2006 Than Ngo 7:3.5.2-1 -- update to 3.5.2 - -* Tue Mar 14 2006 Than Ngo 7:3.5.1-4 -- fix build problem with gphoto2 - -* Thu Feb 16 2006 Than Ngo 7:3.5.1-3 -- apply patch to fix kpdf build with modular-X again #173836 - -* Fri Feb 10 2006 Jesse Keating - 7:3.5.1-2.1 -- bump again for double-long bug on ppc(64) - -* Tue Feb 07 2006 Than Ngo 7:3.5.1-2 -- apply patch to fix buffer overflow in kpdf, CVE-2006-0301 (#179425) -- apply patch to fix gcc warning (#169189) - -* Sat Feb 04 2006 Than Ngo 7:3.5.1-1 -- 3.5.1 - -* Mon Jan 16 2006 Than Ngo 7:3.5.0-3 -- apply patch to fix CAN-2005-3193, #177908 - -* Mon Dec 12 2005 Than Ngo 7:3.5.0-2 -- apply patch to fix modula-X problem - -* Fri Dec 09 2005 Jesse Keating -- rebuilt - -* Wed Nov 30 2005 Than Ngo 7:3.5.0-1 -- 3.5 - -* Tue Oct 25 2005 Than Ngo 7:3.4.92-1 -- update to 3.5 Beta 2 - -* Thu Oct 13 2005 Matthias Clasen 7:3.4.91-2 -- don't use freetype internals - -* Wed Oct 05 2005 Than Ngo 7:3.4.91-1 -- update to 3.5 Beta1 - -* Wed Sep 21 2005 Than Ngo 7:3.4.2-5 -- fix uic build problem - -* Thu Sep 15 2005 Than Ngo 7:3.4.2-4 -- add BuldRequires: libieee1284 #168356 - -* Mon Sep 05 2005 Than Ngo 7:3.4.2-3 -- backport CVS patch to fix kpdf crash when trying to - expand sub-bookmarks in the bookmark tree #167390 - -* Wed Aug 31 2005 Than Ngo 7:3.4.2-2 -- backport CVS patch to fix rendering problem in kpdf -- backport CVS patch to fix bug #kde110171 -- backport CVS patch to fix bug #kde110034, #kde110000 -- backport CVS patch to fix crash in kpdf - -* Thu Aug 11 2005 Than Ngo 7:3.4.2-1 -- update to 3.4.2 - -* Mon Jul 04 2005 Than Ngo 7:3.4.1-2 -- apply gcc4 workaround to fix #162430 - -* Tue Jun 28 2005 Than Ngo 7:3.4.1-1 -- 3.4.1 -- fix gcc4 build problem - -* Wed Mar 30 2005 Florian La Roche -- try rebuilding - -* Fri Mar 18 2005 Than Ngo 7:3.4.0-1 -- 3.4.0 - -* Fri Mar 04 2005 Than Ngo 7:3.4.0-0.rc1.2 -- rebuilt against gcc-4.0.0-0.31 - -* Tue Mar 01 2005 Than Ngo 7:3.4.0-0.rc1.1 -- rebuilt with gcc-4 - -* Sat Feb 26 2005 Than Ngo 3.4.0-0.rc1.0 -- KDE-3.4.0 rc1 - -* Tue Feb 22 2005 Than Ngo 7:3.3.92-0.1 -- KDE-3.4 beta2 - -* Sat Feb 12 2005 Than Ngo 7:3.3.2-0.4 -- backport from CVS for working with qt-immodule - -* Thu Feb 10 2005 Than Ngo 7:3.3.2-0.3 -- Applied patch to fix CAN-2005-0064 -- Applied Steve cleanup patch file - -* Thu Dec 23 2004 Than Ngo 7:3.3.2-0.2 -- Applied patch to fix CAN-2004-112 - -* Fri Dec 03 2004 Than Ngo 7:3.3.2-0.1 -- update to 3.3.2 -- remove kdegraphics-3.3.1-tiff.patch, it's included in 3.3.2 - -* Fri Nov 19 2004 Than Ngo 7:3.3.1-4 -- fix xf86gammacfg to work with xorg.conf - -* Mon Nov 01 2004 Than Ngo 7:3.3.1-3 -- rebuilt - -* Thu Oct 28 2004 Than Ngo 7:3.3.1-2.1 -- add patch from 3_3_BRANCH - -* Fri Oct 15 2004 Than Ngo 7:3.3.1-2 -- fix kfax to use system libtiff - -* Wed Oct 13 2004 Than Ngo 7:3.3.1-1 -- update to 3.3.1 - -* Fri Oct 08 2004 Than Ngo 7:3.3.0-3 -- fix typo in buildrequires #135007 - -* Thu Sep 23 2004 Than Ngo 7:3.3.0-2 -- only show kcmkmrml in KDE -- set variables before use - -* Mon Aug 23 2004 Than Ngo 3.3.0-1 -- update to 3.3.0 - -* Tue Aug 10 2004 Than Ngo 3.3.0-0.1.rc2 -- update to 3.3.0 rc2 - -* Mon Jun 21 2004 Than Ngo 7:3.2.3-1 -- update to 3.2.3 - -* Wed Apr 14 2004 Than Ngo 7:3.2.2-1 -- update to 3.2.2 - -* Sun Mar 07 2004 Than Ngo 7:3.2.1-1 -- 3.2.1 release - -* Tue Mar 02 2004 Elliot Lee -- rebuilt - -* Tue Feb 17 2004 Than Ngo 7:3.2.0-1.4 -- fix typo bug, _smp_mflags instead smp_mflags - -* Fri Feb 13 2004 Elliot Lee -- rebuilt - -* Thu Feb 05 2004 Than Ngo 7:3.2.0-0.3 -- 3.2.0 release -- built against qt 3.3.0 -- add prereq /sbin/ldconfig - -* Mon Jan 19 2004 Than Ngo 7:3.1.95-0.1 -- KDE 3.2 RC1 - -* Mon Dec 01 2003 Than Ngo 7:3.1.94-0.1 -- KDE 3.2 Beta2 - -* Thu Nov 27 2003 Than Ngo 7:3.1.93-0.2 -- get rid of rpath - -* Wed Nov 12 2003 Than Ngo 7:3.1.93-0.1 -- KDE 3.2 Beta1 -- cleanup - -* Tue Sep 30 2003 Than Ngo 7:3.1.4-1 -- 3.1.4 - -* Thu Sep 04 2003 Than Ngo 7:3.1.3-4 -- disable kpovmodeler temporary. waiting for freeglut - -* Thu Aug 21 2003 Than Ngo 7:3.1.3-3 -- fixed build problem with new gcc - -* Mon Aug 04 2003 Than Ngo 7:3.1.3-2 -- rebuilt - -* Mon Aug 04 2003 Than Ngo 7:3.1.3-1 -- 3.1.3 - -* Wed Jun 25 2003 Than Ngo 3.1.2-4 -- disable kpovmodeler temporary. waiting for freeglut -- built with gcc-3.3-12 -- remove excludearch s390/s390x - -* Sun Jun 8 2003 Tim Powers 7:3.1.2-3.1 -- added epoch for versioned requires where needed -- built for RHEL - -* Wed Jun 04 2003 Elliot Lee -- rebuilt - -* Tue May 20 2003 Than Ngo 3.1.2-2 -- 3.1.2 - -* Tue Apr 22 2003 Than Ngo 3.1.1-2 -- PS/PDF file handling vulnerability - -* Thu Mar 20 2003 Than Ngo 3.1.1-1 -- 3.1.1 - -* Mon Feb 24 2003 Elliot Lee -- debuginfo rebuild - -* Fri Feb 21 2003 Than Ngo 3.1-3 -- get rid of gcc path from dependency_libs - -* Wed Feb 19 2003 Elliot Lee -- BuildRequires: glut-devel if kpovmodeler - -* Tue Jan 28 2003 Than Ngo 3.1-1 -- 3.1 release -- remove excludearch ia64 -- remove some unneeded macros - -* Wed Jan 22 2003 Tim Powers -- rebuilt - -* Mon Jan 13 2003 Thomas Woerner 3.1-0.3 -- rc6 -- exclude ia64 - -* Thu Nov 28 2002 Than Ngo 3.1-0.2 -- fix desktop file issues -- get rid of su packages - -* Sun Nov 24 2002 Than Ngo 3.1-0.1 -- update to 3.1 rc4 - -* Sun Nov 10 2002 Than Ngo 3.0.5-1 -- update to 3.0.5 - -* Tue Oct 15 2002 Than Ngo 3.0.4-1 -- 3.0.4 - -* Sun Aug 25 2002 Florian La Roche -- compile on mainframe - -* Wed Aug 14 2002 Florian La Roche -- change spec file to work for more archs - -* Mon Aug 12 2002 Than Ngo 3.0.3-1 -- 3.0.3 -- build using gcc-3.2-0.3 - -* Fri Aug 9 2002 Than Ngo 3.0.2-4 -- desktop files issues (bug #71018) - -* Tue Jul 23 2002 Tim Powers 3.0.2-3 -- build using gcc-3.2-0.1 - -* Sat Jul 20 2002 Than Ngo 3.0.2-2 -- fix desktop files issue - -* Tue Jul 09 2002 Than Ngo 3.0.2-1 -- 3.0.2 -- use desktop-file-install - -* Fri Jun 21 2002 Tim Powers -- automated rebuild - -* Sun May 26 2002 Tim Powers -- automated rebuild - -* Tue May 14 2002 Bernhard Rosenkraenzer 3.0.1-1 -- 3.0.1 - -* Tue Apr 16 2002 Bernhard Rosenkraenzer 3.0.0-5 -- rename libraries - -* Mon Apr 8 2002 Bernhard Rosenkraenzer 3.0.0-4 -- Fix libkviewpart.* duplication (kview and kviewshell, #62749) -- Shut up rpmlint - -* Fri Mar 29 2002 Bernhard Rosenkraenzer 3.0.0-3 -- Obsolete the old monolithic package -- Fix build with gcc 3.1 - -* Thu Mar 28 2002 Than Ngo 3.0.0-2 -- fix deps problem - -* Wed Mar 27 2002 Bernhard Rosenkraenzer 3.0.0-1 -- 3.0.0 final - +* Thu Dec 06 2007 Than Ngo 3.97.0-1 +- 3.97.0 + +* Fri Nov 30 2007 Sebastian Vahl 7:3.96.2-1 +- kde-3.96.2 + +* Wed Nov 21 2007 Sebastian Vahl 7:3.96.1-1 +- kde-3.96.1 +- also use epoch in changelog (also backwards) + +* Wed Nov 21 2007 Sebastian Vahl 7:3.96.0-9 +- libs subpkg + +* Wed Nov 21 2007 Sebastian Vahl 7:3.96.0-8 +- %%description updated +- sorted %%BuildRequires +- sorted %%files + +* Mon Nov 19 2007 Sebastian Vahl 7:3.96.0-7 +- BR: kde-filesystem >= 4 +- License is GPLv2+ + +* Mon Nov 19 2007 Sebastian Vahl 7:3.96.0-6 +- re-work the "%%if's" + +* Mon Nov 19 2007 Sebastian Vahl 7:3.96.0-5 +- BR: libXcomposite-devel +- BR: libXdamage-devel +- BR: libxkbfile-devel +- BR: libXv-devel +- BR: libXxf86misc-devel +- BR: libXScrnSaver-devel + +* Sun Nov 18 2007 Sebastian Vahl 7:3.96.0-4 +- explicit require on kdebase-runtime (for icons) +- fix copy&paste errors in devel package + +* Sat Nov 17 2007 Sebastian Vahl 7:3.96.0-3 +- name kdegraphics4 on fedora <= 9 +- remove all but okular on fedora <= 9 +- +BR: kde4-macros(api) +- remove unneeded require for kdepimlibs +- add defattr to devel package + +* Thu Nov 15 2007 Sebastian Vahl 7:3.96.0-2 +- re-added epoch (from kdegraphics3) +- move libspectreOkular.so from devel to normal package + +* Thu Nov 15 2007 Sebastian Vahl 7:3.96.0-1 +- Initial version for Fedora diff --git a/post-3.5.8-kdegraphics-kpdf.diff b/post-3.5.8-kdegraphics-kpdf.diff deleted file mode 100644 index 94e44a0..0000000 --- a/post-3.5.8-kdegraphics-kpdf.diff +++ /dev/null @@ -1,643 +0,0 @@ ---- kpdf/xpdf/xpdf/Stream.cc -+++ kpdf/xpdf/xpdf/Stream.cc -@@ -1245,23 +1245,26 @@ CCITTFaxStream::CCITTFaxStream(Stream *s - columns = columnsA; - if (columns < 1) { - columns = 1; -- } -- if (columns + 4 <= 0) { -- columns = INT_MAX - 4; -+ } else if (columns > INT_MAX - 2) { -+ columns = INT_MAX - 2; - } - rows = rowsA; - endOfBlock = endOfBlockA; - black = blackA; -- refLine = (short *)gmallocn(columns + 3, sizeof(short)); -- codingLine = (short *)gmallocn(columns + 2, sizeof(short)); -+ // 0 <= codingLine[0] < codingLine[1] < ... < codingLine[n] = columns -+ // ---> max codingLine size = columns + 1 -+ // refLine has one extra guard entry at the end -+ // ---> max refLine size = columns + 2 -+ codingLine = (int *)gmallocn(columns + 1, sizeof(int)); -+ refLine = (int *)gmallocn(columns + 2, sizeof(int)); - - eof = gFalse; - row = 0; - nextLine2D = encoding < 0; - inputBits = 0; -- codingLine[0] = 0; -- codingLine[1] = refLine[2] = columns; -- a0 = 1; -+ codingLine[0] = columns; -+ a0i = 0; -+ outputBits = 0; - - buf = EOF; - } -@@ -1280,9 +1283,9 @@ void CCITTFaxStream::reset() { - row = 0; - nextLine2D = encoding < 0; - inputBits = 0; -- codingLine[0] = 0; -- codingLine[1] = columns; -- a0 = 1; -+ codingLine[0] = columns; -+ a0i = 0; -+ outputBits = 0; - buf = EOF; - - // skip any initial zero bits and end-of-line marker, and get the 2D -@@ -1299,211 +1302,230 @@ void CCITTFaxStream::reset() { - } - } - -+inline void CCITTFaxStream::addPixels(int a1, int blackPixels) { -+ if (a1 > codingLine[a0i]) { -+ if (a1 > columns) { -+ error(getPos(), "CCITTFax row is wrong length (%d)", a1); -+ err = gTrue; -+ a1 = columns; -+ } -+ if ((a0i & 1) ^ blackPixels) { -+ ++a0i; -+ } -+ codingLine[a0i] = a1; -+ } -+} -+ -+inline void CCITTFaxStream::addPixelsNeg(int a1, int blackPixels) { -+ if (a1 > codingLine[a0i]) { -+ if (a1 > columns) { -+ error(getPos(), "CCITTFax row is wrong length (%d)", a1); -+ err = gTrue; -+ a1 = columns; -+ } -+ if ((a0i & 1) ^ blackPixels) { -+ ++a0i; -+ } -+ codingLine[a0i] = a1; -+ } else if (a1 < codingLine[a0i]) { -+ if (a1 < 0) { -+ error(getPos(), "Invalid CCITTFax code"); -+ err = gTrue; -+ a1 = 0; -+ } -+ while (a0i > 0 && a1 <= codingLine[a0i - 1]) { -+ --a0i; -+ } -+ codingLine[a0i] = a1; -+ } -+} -+ - int CCITTFaxStream::lookChar() { - short code1, code2, code3; -- int a0New; -- GBool err, gotEOL; -- int ret; -- int bits, i; -+ int b1i, blackPixels, i, bits; -+ GBool gotEOL; - -- // if at eof just return EOF -- if (eof && codingLine[a0] >= columns) { -- return EOF; -+ if (buf != EOF) { -+ return buf; - } - - // read the next row -- err = gFalse; -- if (codingLine[a0] >= columns) { -+ if (outputBits == 0) { -+ -+ // if at eof just return EOF -+ if (eof) { -+ return EOF; -+ } -+ -+ err = gFalse; - - // 2-D encoding - if (nextLine2D) { -- // state: -- // a0New = current position in coding line (0 <= a0New <= columns) -- // codingLine[a0] = last change in coding line -- // (black-to-white if a0 is even, -- // white-to-black if a0 is odd) -- // refLine[b1] = next change in reference line of opposite color -- // to a0 -- // invariants: -- // 0 <= codingLine[a0] <= a0New -- // <= refLine[b1] <= refLine[b1+1] <= columns -- // 0 <= a0 <= columns+1 -- // refLine[0] = 0 -- // refLine[n] = refLine[n+1] = columns -- // -- for some 1 <= n <= columns+1 -- // end condition: -- // 0 = codingLine[0] <= codingLine[1] < codingLine[2] < ... -- // < codingLine[n-1] < codingLine[n] = columns -- // -- where 1 <= n <= columns+1 - for (i = 0; codingLine[i] < columns; ++i) { - refLine[i] = codingLine[i]; - } -- refLine[i] = refLine[i + 1] = columns; -- b1 = 1; -- a0New = codingLine[a0 = 0] = 0; -- do { -+ refLine[i++] = columns; -+ refLine[i] = columns; -+ codingLine[0] = 0; -+ a0i = 0; -+ b1i = 0; -+ blackPixels = 0; -+ // invariant: -+ // refLine[b1i-1] <= codingLine[a0i] < refLine[b1i] < refLine[b1i+1] -+ // <= columns -+ // exception at left edge: -+ // codingLine[a0i = 0] = refLine[b1i = 0] = 0 is possible -+ // exception at right edge: -+ // refLine[b1i] = refLine[b1i+1] = columns is possible -+ while (codingLine[a0i] < columns) { - code1 = getTwoDimCode(); - switch (code1) { - case twoDimPass: -- if (refLine[b1] < columns) { -- a0New = refLine[b1 + 1]; -- b1 += 2; -+ addPixels(refLine[b1i + 1], blackPixels); -+ if (refLine[b1i + 1] < columns) { -+ b1i += 2; - } - break; - case twoDimHoriz: -- if ((a0 & 1) == 0) { -- code1 = code2 = 0; -+ code1 = code2 = 0; -+ if (blackPixels) { - do { -- code1 += code3 = getWhiteCode(); -+ code1 += code3 = getBlackCode(); - } while (code3 >= 64); - do { -- code2 += code3 = getBlackCode(); -+ code2 += code3 = getWhiteCode(); - } while (code3 >= 64); - } else { -- code1 = code2 = 0; - do { -- code1 += code3 = getBlackCode(); -+ code1 += code3 = getWhiteCode(); - } while (code3 >= 64); - do { -- code2 += code3 = getWhiteCode(); -+ code2 += code3 = getBlackCode(); - } while (code3 >= 64); - } -- if (code1 > 0 || code2 > 0) { -- if (a0New + code1 <= columns) { -- codingLine[a0 + 1] = a0New + code1; -- } else { -- codingLine[a0 + 1] = columns; -- } -- ++a0; -- if (codingLine[a0] + code2 <= columns) { -- codingLine[a0 + 1] = codingLine[a0] + code2; -- } else { -- codingLine[a0 + 1] = columns; -- } -- ++a0; -- a0New = codingLine[a0]; -- while (refLine[b1] <= a0New && refLine[b1] < columns) { -- b1 += 2; -+ addPixels(codingLine[a0i] + code1, blackPixels); -+ if (codingLine[a0i] < columns) { -+ addPixels(codingLine[a0i] + code2, blackPixels ^ 1); -+ } -+ while (refLine[b1i] <= codingLine[a0i] && refLine[b1i] < columns) { -+ b1i += 2; -+ } -+ break; -+ case twoDimVertR3: -+ addPixels(refLine[b1i] + 3, blackPixels); -+ blackPixels ^= 1; -+ if (codingLine[a0i] < columns) { -+ ++b1i; -+ while (refLine[b1i] <= codingLine[a0i] && refLine[b1i] < columns) { -+ b1i += 2; - } - } - break; -- case twoDimVert0: -- if (refLine[b1] < columns) { -- a0New = codingLine[++a0] = refLine[b1]; -- ++b1; -- while (refLine[b1] <= a0New && refLine[b1] < columns) { -- b1 += 2; -+ case twoDimVertR2: -+ addPixels(refLine[b1i] + 2, blackPixels); -+ blackPixels ^= 1; -+ if (codingLine[a0i] < columns) { -+ ++b1i; -+ while (refLine[b1i] <= codingLine[a0i] && refLine[b1i] < columns) { -+ b1i += 2; - } -- } else { -- a0New = codingLine[++a0] = columns; - } - break; - case twoDimVertR1: -- if (refLine[b1] + 1 < columns) { -- a0New = codingLine[++a0] = refLine[b1] + 1; -- ++b1; -- while (refLine[b1] <= a0New && refLine[b1] < columns) { -- b1 += 2; -+ addPixels(refLine[b1i] + 1, blackPixels); -+ blackPixels ^= 1; -+ if (codingLine[a0i] < columns) { -+ ++b1i; -+ while (refLine[b1i] <= codingLine[a0i] && refLine[b1i] < columns) { -+ b1i += 2; - } -- } else { -- a0New = codingLine[++a0] = columns; - } - break; -- case twoDimVertL1: -- if (refLine[b1] - 1 > a0New || (a0 == 0 && refLine[b1] == 1)) { -- a0New = codingLine[++a0] = refLine[b1] - 1; -- --b1; -- while (refLine[b1] <= a0New && refLine[b1] < columns) { -- b1 += 2; -+ case twoDimVert0: -+ addPixels(refLine[b1i], blackPixels); -+ blackPixels ^= 1; -+ if (codingLine[a0i] < columns) { -+ ++b1i; -+ while (refLine[b1i] <= codingLine[a0i] && refLine[b1i] < columns) { -+ b1i += 2; - } - } - break; -- case twoDimVertR2: -- if (refLine[b1] + 2 < columns) { -- a0New = codingLine[++a0] = refLine[b1] + 2; -- ++b1; -- while (refLine[b1] <= a0New && refLine[b1] < columns) { -- b1 += 2; -+ case twoDimVertL3: -+ addPixelsNeg(refLine[b1i] - 3, blackPixels); -+ blackPixels ^= 1; -+ if (codingLine[a0i] < columns) { -+ if (b1i > 0) { -+ --b1i; -+ } else { -+ ++b1i; -+ } -+ while (refLine[b1i] <= codingLine[a0i] && refLine[b1i] < columns) { -+ b1i += 2; - } -- } else { -- a0New = codingLine[++a0] = columns; - } - break; - case twoDimVertL2: -- if (refLine[b1] - 2 > a0New || (a0 == 0 && refLine[b1] == 2)) { -- a0New = codingLine[++a0] = refLine[b1] - 2; -- --b1; -- while (refLine[b1] <= a0New && refLine[b1] < columns) { -- b1 += 2; -+ addPixelsNeg(refLine[b1i] - 2, blackPixels); -+ blackPixels ^= 1; -+ if (codingLine[a0i] < columns) { -+ if (b1i > 0) { -+ --b1i; -+ } else { -+ ++b1i; - } -- } -- break; -- case twoDimVertR3: -- if (refLine[b1] + 3 < columns) { -- a0New = codingLine[++a0] = refLine[b1] + 3; -- ++b1; -- while (refLine[b1] <= a0New && refLine[b1] < columns) { -- b1 += 2; -+ while (refLine[b1i] <= codingLine[a0i] && refLine[b1i] < columns) { -+ b1i += 2; - } -- } else { -- a0New = codingLine[++a0] = columns; - } - break; -- case twoDimVertL3: -- if (refLine[b1] - 3 > a0New || (a0 == 0 && refLine[b1] == 3)) { -- a0New = codingLine[++a0] = refLine[b1] - 3; -- --b1; -- while (refLine[b1] <= a0New && refLine[b1] < columns) { -- b1 += 2; -+ case twoDimVertL1: -+ addPixelsNeg(refLine[b1i] - 1, blackPixels); -+ blackPixels ^= 1; -+ if (codingLine[a0i] < columns) { -+ if (b1i > 0) { -+ --b1i; -+ } else { -+ ++b1i; -+ } -+ while (refLine[b1i] <= codingLine[a0i] && refLine[b1i] < columns) { -+ b1i += 2; - } - } - break; - case EOF: -+ addPixels(columns, 0); - eof = gTrue; -- codingLine[a0 = 0] = columns; -- return EOF; -+ break; - default: - error(getPos(), "Bad 2D code %04x in CCITTFax stream", code1); -+ addPixels(columns, 0); - err = gTrue; - break; - } -- } while (codingLine[a0] < columns); -+ } - - // 1-D encoding - } else { -- codingLine[a0 = 0] = 0; -- while (1) { -+ codingLine[0] = 0; -+ a0i = 0; -+ blackPixels = 0; -+ while (codingLine[a0i] < columns) { - code1 = 0; -- do { -- code1 += code3 = getWhiteCode(); -- } while (code3 >= 64); -- codingLine[a0+1] = codingLine[a0] + code1; -- ++a0; -- if (codingLine[a0] >= columns) { -- break; -- } -- code2 = 0; -- do { -- code2 += code3 = getBlackCode(); -- } while (code3 >= 64); -- codingLine[a0+1] = codingLine[a0] + code2; -- ++a0; -- if (codingLine[a0] >= columns) { -- break; -+ if (blackPixels) { -+ do { -+ code1 += code3 = getBlackCode(); -+ } while (code3 >= 64); -+ } else { -+ do { -+ code1 += code3 = getWhiteCode(); -+ } while (code3 >= 64); - } -+ addPixels(codingLine[a0i] + code1, blackPixels); -+ blackPixels ^= 1; - } - } - -- if (codingLine[a0] != columns) { -- error(getPos(), "CCITTFax row is wrong length (%d)", codingLine[a0]); -- // force the row to be the correct length -- while (codingLine[a0] > columns) { -- --a0; -- } -- codingLine[++a0] = columns; -- err = gTrue; -- } -- - // byte-align the row - if (byteAlign) { - inputBits &= ~7; -@@ -1562,14 +1584,17 @@ int CCITTFaxStream::lookChar() { - // this if we know the stream contains end-of-line markers because - // the "just plow on" technique tends to work better otherwise - } else if (err && endOfLine) { -- do { -+ while (1) { -+ code1 = lookBits(13); - if (code1 == EOF) { - eof = gTrue; - return EOF; - } -+ if ((code1 >> 1) == 0x001) { -+ break; -+ } - eatBits(1); -- code1 = lookBits(13); -- } while ((code1 >> 1) != 0x001); -+ } - eatBits(12); - if (encoding > 0) { - eatBits(1); -@@ -1577,11 +1602,11 @@ int CCITTFaxStream::lookChar() { - } - } - -- a0 = 0; -- outputBits = codingLine[1] - codingLine[0]; -- if (outputBits == 0) { -- a0 = 1; -- outputBits = codingLine[2] - codingLine[1]; -+ // set up for output -+ if (codingLine[0] > 0) { -+ outputBits = codingLine[a0i = 0]; -+ } else { -+ outputBits = codingLine[a0i = 1]; - } - - ++row; -@@ -1589,39 +1614,43 @@ int CCITTFaxStream::lookChar() { - - // get a byte - if (outputBits >= 8) { -- ret = ((a0 & 1) == 0) ? 0xff : 0x00; -- if ((outputBits -= 8) == 0) { -- ++a0; -- if (codingLine[a0] < columns) { -- outputBits = codingLine[a0 + 1] - codingLine[a0]; -- } -+ buf = (a0i & 1) ? 0x00 : 0xff; -+ outputBits -= 8; -+ if (outputBits == 0 && codingLine[a0i] < columns) { -+ ++a0i; -+ outputBits = codingLine[a0i] - codingLine[a0i - 1]; - } - } else { - bits = 8; -- ret = 0; -+ buf = 0; - do { - if (outputBits > bits) { -- i = bits; -- bits = 0; -- if ((a0 & 1) == 0) { -- ret |= 0xff >> (8 - i); -+ buf <<= bits; -+ if (!(a0i & 1)) { -+ buf |= 0xff >> (8 - bits); - } -- outputBits -= i; -+ outputBits -= bits; -+ bits = 0; - } else { -- i = outputBits; -- bits -= outputBits; -- if ((a0 & 1) == 0) { -- ret |= (0xff >> (8 - i)) << bits; -+ buf <<= outputBits; -+ if (!(a0i & 1)) { -+ buf |= 0xff >> (8 - outputBits); - } -+ bits -= outputBits; - outputBits = 0; -- ++a0; -- if (codingLine[a0] < columns) { -- outputBits = codingLine[a0 + 1] - codingLine[a0]; -+ if (codingLine[a0i] < columns) { -+ ++a0i; -+ outputBits = codingLine[a0i] - codingLine[a0i - 1]; -+ } else if (bits > 0) { -+ buf <<= bits; -+ bits = 0; - } - } -- } while (bits > 0 && codingLine[a0] < columns); -+ } while (bits); -+ } -+ if (black) { -+ buf ^= 0xff; - } -- buf = black ? (ret ^ 0xff) : ret; - return buf; - } - -@@ -1663,6 +1692,9 @@ short CCITTFaxStream::getWhiteCode() { - code = 0; // make gcc happy - if (endOfBlock) { - code = lookBits(12); -+ if (code == EOF) { -+ return 1; -+ } - if ((code >> 5) == 0) { - p = &whiteTab1[code]; - } else { -@@ -1675,6 +1707,9 @@ short CCITTFaxStream::getWhiteCode() { - } else { - for (n = 1; n <= 9; ++n) { - code = lookBits(n); -+ if (code == EOF) { -+ return 1; -+ } - if (n < 9) { - code <<= 9 - n; - } -@@ -1686,6 +1721,9 @@ short CCITTFaxStream::getWhiteCode() { - } - for (n = 11; n <= 12; ++n) { - code = lookBits(n); -+ if (code == EOF) { -+ return 1; -+ } - if (n < 12) { - code <<= 12 - n; - } -@@ -1711,9 +1749,12 @@ short CCITTFaxStream::getBlackCode() { - code = 0; // make gcc happy - if (endOfBlock) { - code = lookBits(13); -+ if (code == EOF) { -+ return 1; -+ } - if ((code >> 7) == 0) { - p = &blackTab1[code]; -- } else if ((code >> 9) == 0) { -+ } else if ((code >> 9) == 0 && (code >> 7) != 0) { - p = &blackTab2[(code >> 1) - 64]; - } else { - p = &blackTab3[code >> 7]; -@@ -1725,6 +1766,9 @@ short CCITTFaxStream::getBlackCode() { - } else { - for (n = 2; n <= 6; ++n) { - code = lookBits(n); -+ if (code == EOF) { -+ return 1; -+ } - if (n < 6) { - code <<= 6 - n; - } -@@ -1736,6 +1780,9 @@ short CCITTFaxStream::getBlackCode() { - } - for (n = 7; n <= 12; ++n) { - code = lookBits(n); -+ if (code == EOF) { -+ return 1; -+ } - if (n < 12) { - code <<= 12 - n; - } -@@ -1749,6 +1796,9 @@ short CCITTFaxStream::getBlackCode() { - } - for (n = 10; n <= 13; ++n) { - code = lookBits(n); -+ if (code == EOF) { -+ return 1; -+ } - if (n < 13) { - code <<= 13 - n; - } -@@ -1963,6 +2013,12 @@ void DCTStream::reset() { - // allocate a buffer for the whole image - bufWidth = ((width + mcuWidth - 1) / mcuWidth) * mcuWidth; - bufHeight = ((height + mcuHeight - 1) / mcuHeight) * mcuHeight; -+ if (bufWidth <= 0 || bufHeight <= 0 || -+ bufWidth > INT_MAX / bufWidth / (int)sizeof(int)) { -+ error(getPos(), "Invalid image size in DCT stream"); -+ y = height; -+ return; -+ } - for (i = 0; i < numComps; ++i) { - frameBuf[i] = (int *)gmallocn(bufWidth * bufHeight, sizeof(int)); - memset(frameBuf[i], 0, bufWidth * bufHeight * sizeof(int)); -@@ -3038,6 +3094,11 @@ GBool DCTStream::readScanInfo() { - } - scanInfo.firstCoeff = str->getChar(); - scanInfo.lastCoeff = str->getChar(); -+ if (scanInfo.firstCoeff < 0 || scanInfo.lastCoeff > 63 || -+ scanInfo.firstCoeff > scanInfo.lastCoeff) { -+ error(getPos(), "Bad DCT coefficient numbers in scan info block"); -+ return gFalse; -+ } - c = str->getChar(); - scanInfo.ah = (c >> 4) & 0x0f; - scanInfo.al = c & 0x0f; ---- kpdf/xpdf/xpdf/Stream.h -+++ kpdf/xpdf/xpdf/Stream.h -@@ -528,13 +528,15 @@ private: - int row; // current row - int inputBuf; // input buffer - int inputBits; // number of bits in input buffer -- short *refLine; // reference line changing elements -- int b1; // index into refLine -- short *codingLine; // coding line changing elements -- int a0; // index into codingLine -+ int *codingLine; // coding line changing elements -+ int *refLine; // reference line changing elements -+ int a0i; // index into codingLine -+ GBool err; // error on current line - int outputBits; // remaining ouput bits - int buf; // character buffer - -+ void addPixels(int a1, int black); -+ void addPixelsNeg(int a1, int black); - short getTwoDimCode(); - short getWhiteCode(); - short getBlackCode(); diff --git a/sources b/sources index 06c2723..9055e75 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -a3a31fc0e5b791ef330dd0627095d90f kdegraphics-3.5.8.tar.bz2 +a2980aea280da3fd52c44bbe6537a09f kdegraphics-3.97.0.tar.bz2