rpms/koffice/devel koffice-1.6.3-gcc43.patch, 1.2, 1.3 koffice-1.6.3-xpdf2-CVE-2007-4352-5392-5393.diff, 1.2, 1.3 koffice-xpdf-CVE-2007-3387.diff, 1.2, 1.3 .cvsignore, 1.19, 1.20 koffice.spec, 1.76, 1.77 sources, 1.19, 1.20

Rex Dieter rdieter at fedoraproject.org
Thu Sep 18 19:00:48 UTC 2008


Author: rdieter

Update of /cvs/pkgs/rpms/koffice/devel
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv23204

Modified Files:
	.cvsignore koffice.spec sources 
Added Files:
	koffice-1.6.3-gcc43.patch 
	koffice-1.6.3-xpdf2-CVE-2007-4352-5392-5393.diff 
	koffice-xpdf-CVE-2007-3387.diff 
Log Message:
revert koffice2 -> koffice1, requested by upstream
koffice2 won't be ready for F10

* Thu Sep 18 2008 Rex Dieter <rdieter at fedoraproject.org> 1:1.6.3-16
- revert koffice2->koffice1, introduce Epoch
- fix pkg interdependencies (#394101), multilib issues
- -krita: drop Requires: %name-filters (#394101)
- cleanup scriptlets


koffice-1.6.3-gcc43.patch:

Index: koffice-1.6.3-gcc43.patch
===================================================================
RCS file: koffice-1.6.3-gcc43.patch
diff -N koffice-1.6.3-gcc43.patch
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ koffice-1.6.3-gcc43.patch	18 Sep 2008 19:00:48 -0000	1.3
@@ -0,0 +1,126 @@
+# svn diff -c 729276 svn://anonsvn.kde.org/home/kde/branches/koffice/1.6/
+# svn diff -c 738929 svn://anonsvn.kde.org/home/kde/branches/koffice/1.6/
+
+Index: koffice/krita/core/kis_perspective_math.cpp
+===================================================================
+--- koffice/krita/core/kis_perspective_math.cpp	(revision 738928)
++++ koffice/krita/core/kis_perspective_math.cpp	(revision 738929)
+@@ -24,7 +24,7 @@
+ 
+ #if 1
+ 
+-#include <iostream.h>
++#include <iostream>
+ #include <stdlib.h>
+ #include <math.h>
+ //#define NDEBUG // uncomment to remove checking of assert()
+@@ -57,9 +57,9 @@
+         void  rprint()const;  //print entries on a single line
+         void resize(int n);
+         int operator==(const vector<ElType>& v)const;
+-        friend   vector<ElType> operator*(ElType c,vector<ElType>& v );
+-        friend   vector<ElType> operator*(vector<ElType>& v,ElType c );
+-        friend ostream& operator<<(ostream& s,vector<ElType>& v);
++        friend vector<ElType> operator* (ElType c,vector<ElType>& v );
++        friend vector<ElType> operator*(vector<ElType>& v,ElType c );
++        friend std::ostream& operator<<(std::ostream& s,vector<ElType>& v);
+ };
+ template <class ElType>
+         void vector<ElType>::zero()
+@@ -129,10 +129,10 @@
+         void  vector<ElType>::rprint()const  //print entries on a single line
+ {
+     int i;
+-    cout << "VECTOR: ";
+-    cout << "(";
+-    for(i=0;i<len-1;i++) cout << data[i] << ",";
+-    cout << data[len-1] << ")" << endl;
++    std::cout << "VECTOR: ";
++    std::cout << "(";
++    for(i=0;i<len-1;i++) std::cout << data[i] << ",";
++    std::cout << data[len-1] << ")" << std::endl;
+     return;
+ }
+ template <class ElType>
+@@ -164,7 +164,7 @@
+     return ans;
+ }
+ template <class ElType>
+-        ostream& operator<<(ostream& s,vector<ElType>& v)
++        std::ostream& operator<<(std::ostream& s,vector<ElType>& v)
+ {
+     s << "(";
+     for(int i=0;i<v.len-1;i++) s << v.data[i] << ", ";
+@@ -192,7 +192,7 @@
+         matrix<ElType> operator-(const matrix<ElType>& a);
+         matrix<ElType> transpose();
+     //matrix<ElType> inverse();
+-        friend ostream& operator<<(ostream& s,matrix<ElType>& m);
++        friend std::ostream& operator<<(std::ostream& s,matrix<ElType>& m);
+         friend void ludcmp(matrix<ElType>& a,vector<int>& indx,double &d);
+         friend void lubksb(matrix<ElType>&a,vector<int>& indx,vector<ElType>&b);
+ };
+@@ -357,7 +357,7 @@
+     return ans;
+ }
+ template <class ElType>
+-        ostream& operator<<(ostream& s,matrix<ElType>& m)
++        std::ostream& operator<<(std::ostream& s,matrix<ElType>& m)
+ {
+     for(int i=0; i<m.rows;i++) s << m[i];
+     return s;
+@@ -381,7 +381,7 @@
+ //         kdDebug() << "new search" << endl;
+         for (j=0;j<n;j++) { if ((temp=fabs(a[i][j])) > big) big=temp;
+ /*            kdDebug() << temp << " " << fabs(a[i][j]) << " "<< big <<endl; */}
+-            if (big == 0.0) { cerr << "Singular matrix in routine LUDCMP" << endl; big = TINY;}
++            if (big == 0.0) { std::cerr << "Singular matrix in routine LUDCMP" << std::endl; big = TINY;}
+             vv[i]=1.0/big;
+     }
+     for (j=0;j<n;j++)
+Index: koffice/kspread/plugins/scripting/kspreadcore/krs_cell.cpp
+===================================================================
+--- koffice/kspread/plugins/scripting/kspreadcore/krs_cell.cpp	(revision 729275)
++++ koffice/kspread/plugins/scripting/kspreadcore/krs_cell.cpp	(revision 729276)
+@@ -174,12 +174,7 @@
+ 	return m_cell->text();
+ }
+ 
+-bool Cell::setText(const QString& text, bool asString) {
+-
+-	//FIXME: there is some problem with asString parameter, when it's set
+-	//to true KSpread says: ASSERT: "f" in Dependencies.cpp (621)
+-	//kspread: Cell at row 6, col 1 marked as formula, but formula is NULL
+-
++bool Cell::setText(const QString& text) {
+ 	KSpread::ProtectedCheck prot;
+ 	prot.setSheet (m_sheet);
+ 	prot.add (QPoint (m_col, m_row));
+@@ -189,7 +184,7 @@
+ 	KSpread::DataManipulator *dm = new KSpread::DataManipulator ();
+ 	dm->setSheet (m_sheet);
+ 	dm->setValue (text);
+-	dm->setParsing (!asString);
++	dm->setParsing (true);
+ 	dm->add (QPoint (m_col, m_row));
+ 	dm->execute ();
+ 
+Index: koffice/kspread/plugins/scripting/kspreadcore/krs_cell.h
+===================================================================
+--- koffice/kspread/plugins/scripting/kspreadcore/krs_cell.h	(revision 729275)
++++ koffice/kspread/plugins/scripting/kspreadcore/krs_cell.h	(revision 729276)
+@@ -131,11 +131,10 @@
+ 		*/
+ 		const QString text() const;
+ 		/**
+-		* Set the text of the cell. If asString is true, the text
+-		* will be handled as string else we try to parse the
+-		* string to the expected value.
++		* Set the text of the cell. the text
++		* will be handled as string
+ 		*/
+-		bool setText(const QString& text, bool asString = false);
++		bool setText(const QString& text);
+ 
+ 		/**
+ 		* Return the textcolor as RGB-value in the format "#RRGGBB".

koffice-1.6.3-xpdf2-CVE-2007-4352-5392-5393.diff:

Index: koffice-1.6.3-xpdf2-CVE-2007-4352-5392-5393.diff
===================================================================
RCS file: koffice-1.6.3-xpdf2-CVE-2007-4352-5392-5393.diff
diff -N koffice-1.6.3-xpdf2-CVE-2007-4352-5392-5393.diff
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ koffice-1.6.3-xpdf2-CVE-2007-4352-5392-5393.diff	18 Sep 2008 19:00:48 -0000	1.3
@@ -0,0 +1,669 @@
+--- filters/kword/pdf/xpdf/xpdf/Stream.cc
++++ filters/kword/pdf/xpdf/xpdf/Stream.cc
+@@ -1239,6 +1239,7 @@
+ // CCITTFaxStream
+ //------------------------------------------------------------------------
+ 
++#if 0
+ CCITTFaxStream::CCITTFaxStream(Stream *strA, int encodingA, GBool endOfLineA,
+ 			       GBool byteAlignA, int columnsA, int rowsA,
+ 			       GBool endOfBlockA, GBool blackA):
+@@ -1748,6 +1749,609 @@
+   }
+   return (inputBuf >> (inputBits - n)) & (0xffff >> (16 - n));
+ }
++#else // secfix
++CCITTFaxStream::CCITTFaxStream(Stream *strA, int encodingA, GBool endOfLineA,
++			       GBool byteAlignA, int columnsA, int rowsA,
++			       GBool endOfBlockA, GBool blackA):
++    FilterStream(strA) {
++  encoding = encodingA;
++  endOfLine = endOfLineA;
++  byteAlign = byteAlignA;
++  columns = columnsA;
++  if (columns < 1) {
++    columns = 1;
++  } else if (columns > (INT_MAX - 2)/sizeof(int)) {
++    columns = (INT_MAX - 2)/sizeof(int);
++  }
++  rows = rowsA;
++  endOfBlock = endOfBlockA;
++  black = blackA;
++  // 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 *)gmalloc((columns + 1) * sizeof(int));
++  refLine = (int *)gmalloc((columns + 2) * sizeof(int));
++
++  eof = gFalse;
++  row = 0;
++  nextLine2D = encoding < 0;
++  inputBits = 0;
++  codingLine[0] = columns;
++  a0i = 0;
++  outputBits = 0;
++
++  buf = EOF;
++}
++
++CCITTFaxStream::~CCITTFaxStream() {
++  delete str;
++  gfree(refLine);
++  gfree(codingLine);
++}
++
++void CCITTFaxStream::reset() {
++  short code1;
++
++  str->reset();
++  eof = gFalse;
++  row = 0;
++  nextLine2D = encoding < 0;
++  inputBits = 0;
++  codingLine[0] = columns;
++  a0i = 0;
++  outputBits = 0;
++  buf = EOF;
++
++  // skip any initial zero bits and end-of-line marker, and get the 2D
++  // encoding tag
++  while ((code1 = lookBits(12)) == 0) {
++    eatBits(1);
++  }
++  if (code1 == 0x001) {
++    eatBits(12);
++  }
++  if (encoding > 0) {
++    nextLine2D = !lookBits(1);
++    eatBits(1);
++  }
++}
++
++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 b1i, blackPixels, i, bits;
++  GBool gotEOL;
++
++  if (buf != EOF) {
++    return buf;
++  }
++
++  // read the next row
++  if (outputBits == 0) {
++
++    // if at eof just return EOF
++    if (eof) {
++      return EOF;
++    }
++
++    err = gFalse;
++
++    // 2-D encoding
++    if (nextLine2D) {
++      for (i = 0; codingLine[i] < columns; ++i) {
++	refLine[i] = codingLine[i];
++      }
++      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:
++	  addPixels(refLine[b1i + 1], blackPixels);
++	  if (refLine[b1i + 1] < columns) {
++	    b1i += 2;
++	  }
++	  break;
++	case twoDimHoriz:
++	  code1 = code2 = 0;
++	  if (blackPixels) {
++	    do {
++	      code1 += code3 = getBlackCode();
++	    } while (code3 >= 64);
++	    do {
++	      code2 += code3 = getWhiteCode();
++	    } while (code3 >= 64);
++	  } else {
++	    do {
++	      code1 += code3 = getWhiteCode();
++	    } while (code3 >= 64);
++	    do {
++	      code2 += code3 = getBlackCode();
++	    } while (code3 >= 64);
++	  }
++	  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 twoDimVertR2:
++	  addPixels(refLine[b1i] + 2, blackPixels);
++	  blackPixels ^= 1;
++	  if (codingLine[a0i] < columns) {
++	    ++b1i;
++	    while (refLine[b1i] <= codingLine[a0i] && refLine[b1i] < columns) {
++	      b1i += 2;
++	    }
++	  }
++	  break;
++	case twoDimVertR1:
++	  addPixels(refLine[b1i] + 1, blackPixels);
++	  blackPixels ^= 1;
++	  if (codingLine[a0i] < columns) {
++	    ++b1i;
++	    while (refLine[b1i] <= codingLine[a0i] && refLine[b1i] < columns) {
++	      b1i += 2;
++	    }
++	  }
++	  break;
++	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 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;
++	    }
++	  }
++	  break;
++	case twoDimVertL2:
++	  addPixelsNeg(refLine[b1i] - 2, 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 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;
++	  break;
++	default:
++	  error(getPos(), "Bad 2D code %04x in CCITTFax stream", code1);
++	  addPixels(columns, 0);
++	  err = gTrue;
++	  break;
++	}
++      }
++
++    // 1-D encoding
++    } else {
++      codingLine[0] = 0;
++      a0i = 0;
++      blackPixels = 0;
++      while (codingLine[a0i] < columns) {
++	code1 = 0;
++	if (blackPixels) {
++	  do {
++	    code1 += code3 = getBlackCode();
++	  } while (code3 >= 64);
++	} else {
++	  do {
++	    code1 += code3 = getWhiteCode();
++	  } while (code3 >= 64);
++	}
++	addPixels(codingLine[a0i] + code1, blackPixels);
++	blackPixels ^= 1;
++      }
++    }
++
++    // byte-align the row
++    if (byteAlign) {
++      inputBits &= ~7;
++    }
++
++    // check for end-of-line marker, skipping over any extra zero bits
++    gotEOL = gFalse;
++    if (!endOfBlock && row == rows - 1) {
++      eof = gTrue;
++    } else {
++      code1 = lookBits(12);
++      while (code1 == 0) {
++	eatBits(1);
++	code1 = lookBits(12);
++      }
++      if (code1 == 0x001) {
++	eatBits(12);
++	gotEOL = gTrue;
++      } else if (code1 == EOF) {
++	eof = gTrue;
++      }
++    }
++
++    // get 2D encoding tag
++    if (!eof && encoding > 0) {
++      nextLine2D = !lookBits(1);
++      eatBits(1);
++    }
++
++    // check for end-of-block marker
++    if (endOfBlock && gotEOL) {
++      code1 = lookBits(12);
++      if (code1 == 0x001) {
++	eatBits(12);
++	if (encoding > 0) {
++	  lookBits(1);
++	  eatBits(1);
++	}
++	if (encoding >= 0) {
++	  for (i = 0; i < 4; ++i) {
++	    code1 = lookBits(12);
++	    if (code1 != 0x001) {
++	      error(getPos(), "Bad RTC code in CCITTFax stream");
++	    }
++	    eatBits(12);
++	    if (encoding > 0) {
++	      lookBits(1);
++	      eatBits(1);
++	    }
++	  }
++	}
++	eof = gTrue;
++      }
++
++    // look for an end-of-line marker after an error -- we only do
++    // 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) {
++      while (1) {
++	code1 = lookBits(13);
++	if (code1 == EOF) {
++	  eof = gTrue;
++	  return EOF;
++	}
++	if ((code1 >> 1) == 0x001) {
++	  break;
++	}
++	eatBits(1);
++      }
++      eatBits(12); 
++      if (encoding > 0) {
++	eatBits(1);
++	nextLine2D = !(code1 & 1);
++      }
++    }
++
++    // set up for output
++    if (codingLine[0] > 0) {
++      outputBits = codingLine[a0i = 0];
++    } else {
++      outputBits = codingLine[a0i = 1];
++    }
++
++    ++row;
++  }
++
++  // get a byte
++  if (outputBits >= 8) {
++    buf = (a0i & 1) ? 0x00 : 0xff;
++    outputBits -= 8;
++    if (outputBits == 0 && codingLine[a0i] < columns) {
++      ++a0i;
++      outputBits = codingLine[a0i] - codingLine[a0i - 1];
++    }
++  } else {
++    bits = 8;
++    buf = 0;
++    do {
++      if (outputBits > bits) {
++	buf <<= bits;
++	if (!(a0i & 1)) {
++	  buf |= 0xff >> (8 - bits);
++	}
++	outputBits -= bits;
++	bits = 0;
++      } else {
++	buf <<= outputBits;
++	if (!(a0i & 1)) {
++	  buf |= 0xff >> (8 - outputBits);
++	}
++	bits -= outputBits;
++	outputBits = 0;
++	if (codingLine[a0i] < columns) {
++	  ++a0i;
++	  outputBits = codingLine[a0i] - codingLine[a0i - 1];
++	} else if (bits > 0) {
++	  buf <<= bits;
++	  bits = 0;
++	}
++      }
++    } while (bits);
++  }
++  if (black) {
++    buf ^= 0xff;
++  }
++  return buf;
++}
++
++short CCITTFaxStream::getTwoDimCode() {
++  short code;
++  CCITTCode *p;
++  int n;
++
++  code = 0; // make gcc happy
++  if (endOfBlock) {
++    code = lookBits(7);
++    p = &twoDimTab1[code];
++    if (p->bits > 0) {
++      eatBits(p->bits);
++      return p->n;
++    }
++  } else {
++    for (n = 1; n <= 7; ++n) {
++      code = lookBits(n);
++      if (n < 7) {
++	code <<= 7 - n;
++      }
++      p = &twoDimTab1[code];
++      if (p->bits == n) {
++	eatBits(n);
++	return p->n;
++      }
++    }
++  }
++  error(getPos(), "Bad two dim code (%04x) in CCITTFax stream", code);
++  return EOF;
++}
++
++short CCITTFaxStream::getWhiteCode() {
++  short code;
++  CCITTCode *p;
++  int n;
++
++  code = 0; // make gcc happy
++  if (endOfBlock) {
++    code = lookBits(12);
++    if (code == EOF) {
++      return 1;
++    }
++    if ((code >> 5) == 0) {
++      p = &whiteTab1[code];
++    } else {
++      p = &whiteTab2[code >> 3];
++    }
++    if (p->bits > 0) {
++      eatBits(p->bits);
++      return p->n;
++    }
++  } else {
++    for (n = 1; n <= 9; ++n) {
++      code = lookBits(n);
++      if (code == EOF) {
++	return 1;
++      }
++      if (n < 9) {
++	code <<= 9 - n;
++      }
++      p = &whiteTab2[code];
++      if (p->bits == n) {
++	eatBits(n);
++	return p->n;
++      }
++    }
++    for (n = 11; n <= 12; ++n) {
++      code = lookBits(n);
++      if (code == EOF) {
++	return 1;
++      }
++      if (n < 12) {
++	code <<= 12 - n;
++      }
++      p = &whiteTab1[code];
++      if (p->bits == n) {
++	eatBits(n);
++	return p->n;
++      }
++    }
++  }
++  error(getPos(), "Bad white code (%04x) in CCITTFax stream", code);
++  // eat a bit and return a positive number so that the caller doesn't
++  // go into an infinite loop
++  eatBits(1);
++  return 1;
++}
++
++short CCITTFaxStream::getBlackCode() {
++  short code;
++  CCITTCode *p;
++  int n;
++
++  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 && (code >> 7) != 0) {
++      p = &blackTab2[(code >> 1) - 64];
++    } else {
++      p = &blackTab3[code >> 7];
++    }
++    if (p->bits > 0) {
++      eatBits(p->bits);
++      return p->n;
++    }
++  } else {
++    for (n = 2; n <= 6; ++n) {
++      code = lookBits(n);
++      if (code == EOF) {
++	return 1;
++      }
++      if (n < 6) {
++	code <<= 6 - n;
++      }
++      p = &blackTab3[code];
++      if (p->bits == n) {
++	eatBits(n);
++	return p->n;
++      }
++    }
++    for (n = 7; n <= 12; ++n) {
++      code = lookBits(n);
++      if (code == EOF) {
++	return 1;
++      }
++      if (n < 12) {
++	code <<= 12 - n;
++      }
++      if (code >= 64) {
++	p = &blackTab2[code - 64];
++	if (p->bits == n) {
++	  eatBits(n);
++	  return p->n;
++	}
++      }
++    }
++    for (n = 10; n <= 13; ++n) {
++      code = lookBits(n);
++      if (code == EOF) {
++	return 1;
++      }
++      if (n < 13) {
++	code <<= 13 - n;
++      }
++      p = &blackTab1[code];
++      if (p->bits == n) {
++	eatBits(n);
++	return p->n;
++      }
++    }
++  }
++  error(getPos(), "Bad black code (%04x) in CCITTFax stream", code);
++  // eat a bit and return a positive number so that the caller doesn't
++  // go into an infinite loop
++  eatBits(1);
++  return 1;
++}
++
++short CCITTFaxStream::lookBits(int n) {
++  int c;
++
++  while (inputBits < n) {
++    if ((c = str->getChar()) == EOF) {
++      if (inputBits == 0) {
++	return EOF;
++      }
++      // near the end of the stream, the caller may ask for more bits
++      // than are available, but there may still be a valid code in
++      // however many bits are available -- we need to return correct
++      // data in this case
++      return (inputBuf << (n - inputBits)) & (0xffff >> (16 - n));
++    }
++    inputBuf = (inputBuf << 8) + c;
++    inputBits += 8;
++  }
++  return (inputBuf >> (inputBits - n)) & (0xffff >> (16 - n));
++}
++
++#endif
+ 
+ GString *CCITTFaxStream::getPSFilter(const char *indent) {
+   GString *s;
+@@ -1929,6 +2533,12 @@
+     // 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 *)gmalloc(bufWidth * bufHeight * sizeof(int));
+       memset(frameBuf[i], 0, bufWidth * bufHeight * sizeof(int));
+@@ -2975,6 +3585,11 @@
+   }
+   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;
+--- filters/kword/pdf/xpdf/xpdf/Stream.h
++++ filters/kword/pdf/xpdf/xpdf/Stream.h
+@@ -513,13 +513,17 @@
+   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 output bits
+   int buf;			// character buffer
+ 
++  void addPixels(int a1, int black);
++  void addPixelsNeg(int a1, int black);
++
+   short getTwoDimCode();
+   short getWhiteCode();
+   short getBlackCode();

koffice-xpdf-CVE-2007-3387.diff:

Index: koffice-xpdf-CVE-2007-3387.diff
===================================================================
RCS file: koffice-xpdf-CVE-2007-3387.diff
diff -N koffice-xpdf-CVE-2007-3387.diff
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ koffice-xpdf-CVE-2007-3387.diff	18 Sep 2008 19:00:48 -0000	1.3
@@ -0,0 +1,20 @@
+--- filters/kword/pdf/xpdf/xpdf/Stream.cc
++++ filters/kword/pdf/xpdf/xpdf/Stream.cc
+@@ -413,13 +413,11 @@ StreamPredictor::StreamPredictor(Stream 
+   predLine = NULL;
+   ok = gFalse;
+ 
+-  if (width <= 0 || nComps <= 0 || nBits <= 0 ||
+-     nComps >= INT_MAX / nBits ||
+-      width >= INT_MAX / nComps / nBits)
+-    return;
+-
+   nVals = width * nComps;
+-  if (nVals * nBits + 7 <= 0)
++  if (width <= 0 || nComps <= 0 || nBits <= 0 ||
++     nComps >= 4 || nBits > 16 ||
++      width >= INT_MAX / nComps ||
++      nVals >= (INT_MAX - 7) / nBits)
+     return;
+ 
+   pixBytes = (nComps * nBits + 7) >> 3;


Index: .cvsignore
===================================================================
RCS file: /cvs/pkgs/rpms/koffice/devel/.cvsignore,v
retrieving revision 1.19
retrieving revision 1.20
diff -u -r1.19 -r1.20
--- .cvsignore	12 Sep 2008 16:55:03 -0000	1.19
+++ .cvsignore	18 Sep 2008 19:00:48 -0000	1.20
@@ -1 +1,5 @@
-koffice-1.9.95.10.tar.bz2
+koffice-1.6.0.tar.bz2
+koffice-1.6.1.tar.bz2
+koshell.png
+koffice-1.6.2.tar.bz2
+koffice-1.6.3.tar.bz2


Index: koffice.spec
===================================================================
RCS file: /cvs/pkgs/rpms/koffice/devel/koffice.spec,v
retrieving revision 1.76
retrieving revision 1.77
diff -u -r1.76 -r1.77
--- koffice.spec	12 Sep 2008 16:55:03 -0000	1.76
+++ koffice.spec	18 Sep 2008 19:00:48 -0000	1.77
@@ -1,63 +1,72 @@
 
 Name:           koffice
-Version:        1.9.95.10
-Release:        1%{?dist}
+Epoch:          1
+Version:        1.6.3
+Release:        16%{?dist}
 Summary:        An integrated office suite
 
 Group:          Applications/Productivity
-# apps GPLv2+, libs LGPLv2+
 License:        GPLv2+
 URL:            http://www.koffice.org/
-Source0:        http://download.kde.org/unstable/koffice-%{version}/src/koffice-%{version}.tar.bz2
+Source0:        ftp://ftp.kde.org/pub/kde/stable/koffice-%{version}/src/koffice-%{version}.tar.bz2
 BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
 
-#-- The following OPTIONAL packages could NOT be located on your system.
-#-- Consider installing them to enable more features from this software.
-#+ OpenCTL, 0.9.2: OpenCTL is needed for some color spaces (High Dynamic Range Color Spaces, YCbCr and LMS) <http://www.openctl.org>
-#+ FreeTDS library: Kexi Sybase Migration driver requires FreeTDS library. The driver will not be built <http://www.freetds.org>
-#+ XBase library: Kexi XBase Migration driver requires XBase library. The driver will not be built <http://linux.techass.com/projects/xdb/>
-#+ GMM: The Krita Panorama plugin will not be built. <http://home.gna.org/getfem/download.html>
-#+ Spnav: Spnav is the library which is required by the space navigator device plugin <http://spacenav.sourceforge.net/>
-
-BuildRequires: boost-devel
-BuildRequires: bzip2-devel
-BuildRequires: cmake
-BuildRequires: desktop-file-utils
-BuildRequires: doxygen
-BuildRequires: eigen2-devel
-BuildRequires: exiv2-devel
-BuildRequires: fontconfig-devel
-BuildRequires: freeglut-devel
-BuildRequires: freetype-devel
-BuildRequires: gettext-devel
-BuildRequires: giflib-devel
-BuildRequires: glew-devel
-BuildRequires: GraphicsMagick-devel
-BuildRequires: gsl-devel
-# BR: libkdcraw-devel >= 0.2.0 
-BuildRequires: kdegraphics4-devel
-BuildRequires: kdelibs4-devel
-BuildRequires: kdepimlibs-devel
-BuildRequires: lcms-devel
-BuildRequires: libGL-devel libGLU-devel
-BuildRequires: libjpeg-devel
-BuildRequires: libpng-devel
-BuildRequires: libpqxx-devel
-BuildRequires: libtiff-devel
-BuildRequires: libwpd-devel
-BuildRequires: libxslt-devel
-BuildRequires: mysql-devel
-BuildRequires: OpenEXR-devel
-BuildRequires: openldap-devel
-BuildRequires: pcre-devel
-BuildRequires: perl
-BuildRequires: poppler-qt4-devel
-BuildRequires: python-devel
-BuildRequires: qca2-devel
-BuildRequires: qimageblitz-devel
-BuildRequires: readline-devel
-BuildRequires: ruby-devel ruby
-BuildRequires: wv2-devel
+Source100:      koshell.png
+
+# http://www.kde.org/info/security/advisory-20070730-1.txt
+Patch1: ftp://ftp.kde.org/pub/kde/security_patches/koffice-xpdf-CVE-2007-3387.diff
+
+# http://www.kde.org/info/security/advisory-20071107-1.txt
+Patch2: ftp://ftp.kde.org/pub/kde/security_patches/koffice-1.6.3-xpdf2-CVE-2007-4352-5392-5393.diff
+
+# upstream patch pulled via: svn diff -c 738929 
+# svn diff -c 729276 svn://anonsvn.kde.org/home/kde/branches/koffice/1.6/
+# svn diff -c 738929 svn://anonsvn.kde.org/home/kde/branches/koffice/1.6/
+Patch3: koffice-1.6.3-gcc43.patch
+
+# BuildRequires: world-devel ;)
+BuildRequires:  kdelibs3-devel
+# See http://bugzilla.redhat.com/244091
+%global kdelibs_ver %((kde-config --version 2>/dev/null || echo KDE 3.5.8) | grep '^KDE' | cut -d' ' -f2 | cut -d'-' -f1)
+## kjsembed bits, afaict, not really used (yet) -- Rex
+#BuildRequires:  kdebindings-devel
+BuildRequires:  freetype-devel
+BuildRequires:  fontconfig-devel
+BuildRequires:  libart_lgpl-devel
+BuildRequires:  libpng-devel
+BuildRequires:  libtiff-devel
+BuildRequires:  libjpeg-devel
+BuildRequires:  GraphicsMagick-devel
+BuildRequires:  ImageMagick-devel
+BuildRequires:  bzip2-devel
+BuildRequires:  zlib-devel
+BuildRequires:  openssl-devel
+BuildRequires:  python-devel
+BuildRequires:  pcre-devel
+BuildRequires:  libwpd-devel
+BuildRequires:  lcms-devel
+BuildRequires:  gettext-devel
+BuildRequires:  mysql-devel
+BuildRequires:  desktop-file-utils
+BuildRequires:  perl
+BuildRequires:  wv2-devel
+BuildRequires:  libpqxx-devel
+BuildRequires:  doxygen
+BuildRequires:  aspell-devel
+BuildRequires:  libxslt-devel
+BuildRequires:  OpenEXR-devel
+BuildRequires:  libexif-devel
+BuildRequires:  libGL-devel libGLU-devel
+BuildRequires:  readline-devel
+%if 0%{?fedora} > 4 || 0%{?rhel} > 4
+%define ruby 1
+BuildRequires:  ruby ruby-devel >= 1.8.2
+%endif
+BuildRequires:  poppler-qt-devel
+%if 0%{?fedora} > 4 || 0%{?rhel} > 4
+BuildRequires:  libpaper-devel
+BuildRequires:  libXi-devel
+%endif
 
 %description
 KOffice is an integrated office suite.
@@ -67,233 +76,288 @@
 Group:          Applications/Productivity
 Obsoletes:      koffice <= 4:%{version}-%{release}
 Obsoletes:      koffice-i18n < 4:%{version}
-Requires:       koffice-core = %{version}-%{release} 
-Requires:       koffice-kword = %{version}-%{release} 
-Requires:       koffice-kspread = %{version}-%{release} 
-Requires:       koffice-kpresenter = %{version}-%{release}
-Requires:       koffice-kivio = %{version}-%{release}
-Requires:       koffice-karbon = %{version}-%{release}
-Requires:       koffice-krita = %{version}-%{release}
-Requires:       koffice-kugar = %{version}-%{release}
-Requires:       koffice-kexi = %{version}-%{release}
-Requires:       koffice-kexi-driver-mysql = %{version}-%{release}
-Requires:       koffice-kexi-driver-pgsql = %{version}-%{release}
-Requires:       koffice-kchart = %{version}-%{release}
-Requires:       koffice-kformula = %{version}-%{release}
-Requires:       koffice-filters = %{version}-%{release}
-Requires:       koffice-kplato = %{version}-%{release}
+Requires:       koffice-core = %{epoch}:%{version}-%{release} 
+Requires:       koffice-kword = %{epoch}:%{version}-%{release} 
+Requires:       koffice-kspread = %{epoch}:%{version}-%{release} 
+Requires:       koffice-kpresenter = %{epoch}:%{version}-%{release}
+Requires:       koffice-kivio = %{epoch}:%{version}-%{release}
+Requires:       koffice-karbon = %{epoch}:%{version}-%{release}
+Requires:       koffice-krita = %{epoch}:%{version}-%{release}
+Requires:       koffice-kugar = %{epoch}:%{version}-%{release}
+Requires:       koffice-kexi = %{epoch}:%{version}-%{release}
+Requires:       koffice-kexi-driver-mysql = %{epoch}:%{version}-%{release}
+Requires:       koffice-kexi-driver-pgsql = %{epoch}:%{version}-%{release}
+Requires:       koffice-kchart = %{epoch}:%{version}-%{release}
+Requires:       koffice-kformula = %{epoch}:%{version}-%{release}
+Requires:       koffice-filters = %{epoch}:%{version}-%{release}
+Requires:       koffice-kplato = %{epoch}:%{version}-%{release}
 
 %description suite
 KOffice is an integrated office suite.
 
 %package core
-Summary:        Core support files for koffice
+Summary:        Core support files for %{name} 
 Group:          Applications/Productivity
-Requires:	%{name}-libs = %{version}-%{release}
-#Conflicts:      koffice-i18n < 4:%{version}
+Requires:	%{name}-libs = %{epoch}:%{version}-%{release}
 Requires(post): xdg-utils
 Requires(postun): xdg-utils
-
+Requires:       perl
+Conflicts:      koffice-i18n < 4:%{version}
 %description core
 %{summary}.
 
 %package libs
-Summary:        Runtime libraries for koffice
+Summary:        Runtime libraries for %{name} 
 Group:          System Environment/Libraries
-#Conflicts:      koffice <= 4:%{version}-%{release}
+Conflicts:      koffice <= 4:%{version}-%{release}
+Requires:       kdelibs3 >= %{kdelibs_ver}
+License:        LGPLv2+
 %description libs
 %{summary}.
 
 %package devel
-Summary:        Libraries needed for koffice development
+Summary:        Development files for %{name} 
 Group:          Development/Libraries
-Requires:       %{name}-libs = %{version}-%{release}
-Requires:       kdelibs4-devel
-
+Requires:       %{name}-libs = %{epoch}:%{version}-%{release}
+License:        LGPLv2+
 %description devel
-%{summary}
+%{summary}.
 
 %package kword
-Summary:A frame-based word processor capable of professional standard documents
+Summary:	A frame-based word processor capable of professional standard documents
 Group:          Applications/Productivity
-Requires:       %{name}-core = %{version}-%{release}
-
+Requires:       %{name}-core = %{epoch}:%{version}-%{release}
 %description kword
-%{summary}
+%{summary}.
 
 %package kspread
 Summary:        A powerful spreadsheet application
 Group:          Applications/Productivity
-Requires:       %{name}-core = %{version}-%{release}
-
+Requires:       %{name}-core = %{epoch}:%{version}-%{release}
 %description kspread
-%{summary}
+%{summary}.
 
 %package kpresenter
 Summary:        A full-featured presentation program
 Group:          Applications/Productivity
-Requires:       %{name}-core = %{version}-%{release}
-
+Requires:       %{name}-core = %{epoch}:%{version}-%{release}
 %description kpresenter
-%{summary}
+%{summary}.
 
 %package kivio
 Summary:        A flowcharting application
 Group:          Applications/Productivity
-Requires:       %{name}-core = %{version}-%{release}
+Requires:       %{name}-core = %{epoch}:%{version}-%{release}
 Obsoletes:      kivio < %{version}-%{release}
-
 %description kivio
-%{summary}
+%{summary}.
 
 %package karbon
 Summary:        A vector drawing application
 Group:          Applications/Productivity
-Requires:       %{name}-core = %{version}-%{release}
-
+Requires:       %{name}-core = %{epoch}:%{version}-%{release}
 %description karbon
-%{summary}
+%{summary}.
 
 %package krita
 Summary:        A pixel-based image manipulation program 
 Group:          Applications/Productivity
-Requires:       %{name}-core = %{version}-%{release}
-Requires:	%{name}-filters
-
+Requires:       %{name}-core = %{epoch}:%{version}-%{release}
 %description krita
-%{summary}
+%{summary}.
 
 %package kugar
 Summary:        A tool for generating business quality reports
 Group:          Applications/Productivity
-Requires:       %{name}-core = %{version}-%{release}
-
+Requires:       %{name}-core = %{epoch}:%{version}-%{release}
 %description kugar
-%{summary}
+%{summary}.
 
 %package kexi
 Summary:        An integrated environment for managing data
 Group:          Applications/Productivity
-Requires:       %{name}-core = %{version}-%{release}
-
+Requires:       %{name}-core = %{epoch}:%{version}-%{release}
 %description kexi
-%{summary}
+%{summary}.
 For additional database drivers take a look at %{name}-kexi-driver-*
 
 %package kexi-driver-mysql
-Summary:        mysql-driver for kexi
+Summary:        Mysql-driver for kexi
 Group:          Applications/Productivity
-Requires:       %{name}-kexi = %{version}-%{release}
-
+Requires:       %{name}-kexi = %{epoch}:%{version}-%{release}
 %description kexi-driver-mysql
-%{summary}
+%{summary}.
 
 %package kexi-driver-pgsql
-Summary:        pgsql-driver for kexi
+Summary:        Postresql driver for kexi
 Group:          Applications/Productivity
-Requires:       %{name}-kexi = %{version}-%{release}
-
+Requires:       %{name}-kexi = %{epoch}:%{version}-%{release}
 %description kexi-driver-pgsql
-%{summary}
+%{summary}.
 
 %package kchart
 Summary:        An integrated graph and chart drawing tool
 Group:          Applications/Productivity
-Requires:       %{name}-core = %{version}-%{release}
-
+Requires:       %{name}-core = %{epoch}:%{version}-%{release}
 %description kchart
-%{summary}
+%{summary}.
 
 %package kformula
 Summary:        A powerful formula editor
 Group:          Applications/Productivity
-Requires:       %{name}-core = %{version}-%{release}
+Requires:       %{name}-core = %{epoch}:%{version}-%{release}
 Requires:       mathml-fonts
-
 %description kformula
-%{summary}
+%{summary}.
 
 %package filters
 Summary:        Import and Export Filters for KOffice
 Group:          Applications/Productivity
-Requires:       %{name}-core = %{version}-%{release}
-
+Requires:       %{name}-core = %{epoch}:%{version}-%{release}
 %description filters
-%{summary}
+%{summary}.
 
 %package kplato
 Summary:         An integrated project management and planning tool
 Group:           Applications/Productivity
-Requires:        %{name}-core = %{version}-%{release}
-
+Requires:        %{name}-core = %{epoch}:%{version}-%{release}
 %description kplato
-%{summary}
+%{summary}.
 
 
 %prep
 %setup -q
 
+%patch1 -p0 -b .CVE-2007-3387
+%patch2 -p0 -b .CVE-2007-4352-5392-5393
+%patch3 -p1 -b .gcc43
+
 
 %build
+unset QTDIR || : ; . /etc/profile.d/qt.sh
 
-mkdir -p %{_target_platform}
-pushd %{_target_platform}
-# SET EIGEN2_INCLUDE_DIR since our kde4_incdir != eigen2_incdir
-%{cmake_kde4} \
-  -DEIGEN2_INCLUDE_DIR=%{_includedir}/eigen2 \
-  ..
-popd
+%configure \
+  --disable-rpath --disable-dependency-tracking \
+  --enable-new-ldflags \
+  --disable-debug --disable-warnings \
+  --with-pic --enable-shared --disable-static \
+  --with-extra-libs=%{_libdir} \
+  --with-pgsqllibdir=%{_libdir} --with-pgsqlincdir=%{_includedir} \
+  --with-pqxxlibdir=%{_libdir} --with-pqxxincdir=%{_includedir} \
+  --enable-final
 
-make %{?_smp_mflags} -C %{_target_platform}
+make %{?_smp_mflags}
 
 
 %install
 rm -rf %{buildroot}
+make install DESTDIR=%{buildroot}
+
+[ ! -f %{buildroot}%{_datadir}/icons/hicolor/48x48/apps/koshell.png ] && \
+install -p -D -m644 %{SOURCE100} %{buildroot}%{_datadir}/icons/hicolor/48x48/apps/koshell.png
 
-make install DESTDIR=%{buildroot} -C %{_target_platform}
+# Replace absolute symlinks with relative ones
+pushd %{buildroot}%{_docdir}/HTML
+for lang in *; do
+  if [ -d $lang ]; then
+    pushd $lang
+    for i in */*; do
+      [ -d $i -a -L $i/common ] && rm -f $i/common && ln -sf ../../common $i/common
+    done
+    popd
+  fi
+done
+popd
 
-# unpackaged files
-rm -f %{buildroot}%{_kde4_libdir}/lib*common.so
-rm -f %{buildroot}%{_kde4_libdir}/lib*filters.so
-rm -f %{buildroot}%{_kde4_libdir}/lib*private.so
-rm -f %{buildroot}%{_kde4_libdir}/libkarbon*.so
-rm -f %{buildroot}%{_kde4_libdir}/libkexi*.so
-rm -f %{buildroot}%{_kde4_libdir}/libkisexiv2.so
-rm -f %{buildroot}%{_kde4_libdir}/libkformdesigner.so
-rm -f %{buildroot}%{_kde4_libdir}/libkplato*.so
-rm -f %{buildroot}%{_kde4_libdir}/libkword*.so
-rm -f %{buildroot}%{_kde4_libdir}/libkrita*.so
-rm -f %{buildroot}%{_kde4_libdir}/libkross*.so
+desktop-file-install \
+  --dir=%{buildroot}%{_datadir}/applications/kde \
+  --vendor="" \
+  --delete-original \
+  %{buildroot}%{_datadir}/applnk/Office/*.desktop
+
+## Hack-in NoDisplay=True (http://bugzilla.redhat.com/245061)
+## until http://bugzilla.redhat.com/245190 is fixed
+for desktop_file in %{buildroot}%{_datadir}/applnk/.hidden/*.desktop ; do
+  grep "^NoDisplay=" ${desktop_file} || \
+    echo "NoDisplay=True" >> ${desktop_file}
+done
+
+## unpackaged files
+rm -f %{buildroot}%{_libdir}/lib*.la
+# shouldn't these be in koffice-l10n? 
+rm -f %{buildroot}%{_datadir}/locale/pl/LC_MESSAGES/kexi_{add,delete}_column_gui_transl_pl.sh
+# -devel symlinks to nuke
+rm -f %{buildroot}%{_libdir}/lib*common.so
+rm -f %{buildroot}%{_libdir}/lib*filters.so
+rm -f %{buildroot}%{_libdir}/lib*private.so
+rm -f %{buildroot}%{_libdir}/libkarbon*.so
+rm -f %{buildroot}%{_libdir}/libkchart*.so
+rm -f %{buildroot}%{_libdir}/libkexi*.so
+rm -f %{buildroot}%{_libdir}/libkisexiv2.so
+rm -f %{buildroot}%{_libdir}/libkformdesigner.so
+rm -f %{buildroot}%{_libdir}/libkplato*.so
+rm -f %{buildroot}%{_libdir}/libkpresenter*.so
+rm -f %{buildroot}%{_libdir}/libkword*.so
+rm -f %{buildroot}%{_libdir}/libkrita*.so
+rm -f %{buildroot}%{_libdir}/libkross*.so
+rm -f %{buildroot}%{_libdir}/libkugar*.so
 
 
 %clean
-rm -rf %{buildroot} 
+rm -rf %{buildroot}
 
 
 %post core
+xdg-icon-resource forceupdate --theme crystalsvg 2> /dev/null || :
 xdg-icon-resource forceupdate --theme hicolor 2> /dev/null || :
-xdg-icon-resource forceupdate --theme oxygen 2> /dev/null || :
+xdg-icon-resource forceupdate --theme locolor 2> /dev/null || :
 xdg-desktop-menu forceupdate 2> /dev/null || :
 
 %postun core
+xdg-icon-resource forceupdate --theme crystalsvg 2> /dev/null || :
 xdg-icon-resource forceupdate --theme hicolor 2> /dev/null || :
-xdg-icon-resource forceupdate --theme oxygen 2> /dev/null || :
+xdg-icon-resource forceupdate --theme locolor 2> /dev/null || :
 xdg-desktop-menu forceupdate 2> /dev/null || :
 
-%post kword -p /sbin/ldconfig
-%postun kword -p /sbin/ldconfig
+%post kword
+/sbin/ldconfig
+xdg-desktop-menu forceupdate 2> /dev/null || :
+
+%postun kword
+/sbin/ldconfig
+xdg-desktop-menu forceupdate 2> /dev/null || :
 
-%post kpresenter -p /sbin/ldconfig
-%postun kpresenter -p /sbin/ldconfig
+%post kpresenter
+/sbin/ldconfig
+xdg-desktop-menu forceupdate 2> /dev/null || :
 
-%post kugar -p /sbin/ldconfig
-%postun kugar -p /sbin/ldconfig
+%postun kpresenter 
+/sbin/ldconfig
+xdg-desktop-menu forceupdate 2> /dev/null || :
 
-%post kexi -p /sbin/ldconfig
-%postun kexi -p /sbin/ldconfig
+%post kugar
+/sbin/ldconfig
+xdg-desktop-menu forceupdate 2> /dev/null || :
 
-%post kchart -p /sbin/ldconfig
-%postun kchart -p /sbin/ldconfig
+%postun kugar
+/sbin/ldconfig
+xdg-desktop-menu forceupdate 2> /dev/null || :
+
+%post kexi
+/sbin/ldconfig
+xdg-desktop-menu forceupdate 2> /dev/null || :
+
+%postun kexi
+/sbin/ldconfig
+xdg-desktop-menu forceupdate 2> /dev/null || :
+
+%post kchart
+/sbin/ldconfig
+xdg-desktop-menu forceupdate 2> /dev/null || :
+
+%postun kchart
+/sbin/ldconfig
+xdg-desktop-menu forceupdate 2> /dev/null || :
 
 %post filters -p /sbin/ldconfig
 %postun filters -p /sbin/ldconfig 
@@ -306,350 +370,343 @@
 
 %files core
 %defattr(-,root,root,-)
-%doc AUTHORS COPYING COPYING.LIB README
-%{_kde4_bindir}/kthesaurus
-%{_kde4_bindir}/koconverter
-%{_kde4_libdir}/libkdeinit4_kthesaurus.so
-%{_kde4_libdir}/kde4/autocorrect.so
-%{_kde4_libdir}/kde4/changecase.so
-%{_kde4_libdir}/kde4/defaulttools.so
-%{_kde4_libdir}/kde4/kodocinfopropspage.*
-%{_kde4_libdir}/kde4/kofficescan.*
-%{_kde4_libdir}/kde4/kofficethumbnail.*
-%{_kde4_libdir}/kde4/libkounavailpart.*
-%{_kde4_libdir}/kde4/clipartthumbnail.*
-%{_kde4_libdir}/kde4/thesaurustool.so
-%{_kde4_libdir}/kde4/koffice_graya_u16_plugin.so
-%{_kde4_libdir}/kde4/kofficegrayau8plugin.so
-%{_kde4_libdir}/kde4/kofficedockers.so
-%{_kde4_libdir}/kde4/kofficesimpletextedit.so
-%{_kde4_libdir}/kde4/spellcheck.so
-%{_kde4_libdir}/kde4/textvariables.so
-%{_kde4_appsdir}/koffice/
-%{_kde4_docdir}/HTML/en/koffice/
-%{_kde4_docdir}/HTML/en/koshell/
-%{_kde4_docdir}/HTML/en/thesaurus/
-%{_kde4_datadir}/applications/kde4/KThesaurus.desktop
-%{_kde4_datadir}/icons/hicolor/*/*/*
-%{_kde4_datadir}/icons/oxygen/*/*/*
-%{_kde4_datadir}/kde4/services/autocorrect.desktop
-%{_kde4_datadir}/kde4/services/changecase.desktop
-%{_kde4_datadir}/kde4/services/clipartthumbnail.desktop
-%{_kde4_datadir}/kde4/services/defaulttools.desktop
-%{_kde4_datadir}/kde4/services/kodocinfopropspage.desktop
-%{_kde4_datadir}/kde4/services/kofficethumbnail.desktop
-%{_kde4_datadir}/kde4/services/koffice_graya_u16_plugin.desktop
-%{_kde4_datadir}/kde4/services/kofficegrayaplugin.desktop
-%{_kde4_datadir}/kde4/services/kofficedockers.desktop
-%{_kde4_datadir}/kde4/services/kounavail.desktop
-%{_kde4_datadir}/kde4/services/thesaurustool.desktop
-%{_kde4_datadir}/kde4/services/kofficesimpletextedit.desktop
-%{_kde4_datadir}/kde4/services/spellcheck.desktop
-%{_kde4_datadir}/kde4/services/textvariables.desktop
-%{_kde4_datadir}/kde4/servicetypes/kochart.desktop
-%{_kde4_datadir}/kde4/servicetypes/kofficedocker.desktop
-%{_kde4_datadir}/kde4/servicetypes/kofficepart.desktop
-%{_kde4_datadir}/kde4/servicetypes/koplugin.desktop
-%{_kde4_datadir}/kde4/servicetypes/inlinetextobject.desktop
-%{_kde4_datadir}/kde4/servicetypes/kwmailmerge.desktop
-%{_kde4_datadir}/kde4/servicetypes/texteditingplugin.desktop
-%{_kde4_datadir}/kde4/servicetypes/textvariableplugin.desktop
-%{_kde4_datadir}/kde4/servicetypes/widgetfactory.desktop
-%{_kde4_datadir}/applications/kde4/*koffice.desktop
-%{_kde4_datadir}/kde4/services/*shape.desktop
-%{_kde4_appsdir}/formulashape/
-%{_kde4_appsdir}/musicshape/
-%dir %{_datadir}/color/
-%dir %{_datadir}/color/icc/
-%{_datadir}/color/icc/pigment/
-%{_kde4_datadir}/kde4/servicetypes/pigment*.desktop
-%{_kde4_libdir}/kde4/pathshapes.so
-%{_kde4_datadir}/kde4/services/pathshapes.desktop
+%doc AUTHORS COPYING README
+%{_bindir}/koshell
+%{_bindir}/kthesaurus
+%{_bindir}/koconverter
+%{_libdir}/libkdeinit_koshell.so
+%{_libdir}/libkdeinit_kthesaurus.so
+%{_libdir}/kde3/kfile_koffice.*
+%{_libdir}/kde3/kfile_ooo.*
+%{_libdir}/kde3/kfile_abiword.*
+%{_libdir}/kde3/kfile_gnumeric.*
+%{_libdir}/kde3/kodocinfopropspage.*
+%{_libdir}/kde3/kofficescan.*
+%{_libdir}/kde3/kofficethumbnail.*
+%{_libdir}/kde3/koshell.*
+%{_libdir}/kde3/kthesaurus.*
+%{_libdir}/kde3/kwmailmerge_classic.*
+%{_libdir}/kde3/kwmailmerge_kabc.*
+%{_libdir}/kde3/kwmailmerge_qtsqldb_power.*
+%{_libdir}/kde3/kwmailmerge_qtsqldb.*
+%{_libdir}/kde3/libkounavailpart.*
+%{_libdir}/kde3/libkprkword.*
+%{_libdir}/kde3/libthesaurustool.*
+%{_libdir}/kde3/clipartthumbnail.*
+%{_datadir}/apps/koffice/
+%{_datadir}/apps/konqueror/servicemenus/*
+%{_datadir}/apps/koshell/
+%{_datadir}/apps/thesaurus/
+%{_datadir}/config.kcfg/koshell.kcfg
+%{_datadir}/doc/HTML/en/koffice/
+%{_datadir}/doc/HTML/en/koshell/
+%{_datadir}/doc/HTML/en/thesaurus/
+%{_datadir}/icons/crystalsvg/*/*/*
+%{_datadir}/icons/hicolor/*/*/*
+%{_datadir}/icons/locolor/*/*/*
+%{_datadir}/services/clipartthumbnail.desktop
+%{_datadir}/services/kfile*.desktop
+%{_datadir}/services/kwmailmerge*.desktop
+%{_datadir}/services/kodocinfopropspage.desktop
+%{_datadir}/services/kofficethumbnail.desktop
+%{_datadir}/services/kounavail.desktop
+%{_datadir}/services/kprkword.desktop
+%{_datadir}/services/thesaurustool.desktop
+%{_datadir}/servicetypes/kochart.desktop
+%{_datadir}/servicetypes/kofficepart.desktop
+%{_datadir}/servicetypes/koplugin.desktop
+%{_datadir}/servicetypes/kwmailmerge.desktop
+%{_datadir}/servicetypes/widgetfactory.desktop
+%{_datadir}/applications/kde/*koffice.desktop
+%{_datadir}/applications/kde/*KThesaurus.desktop
+%{_datadir}/applications/kde/*koshell.desktop
+%{_datadir}/apps/kofficewidgets/
+%{_datadir}/apps/kross/
+%{_libdir}/kde3/krosspython.*
+%{?ruby:%{_libdir}/kde3/krossruby.*}
 
 %files libs
 %defattr(-,root,root,-)
-%{_kde4_datadir}/kde4/servicetypes/flake*.desktop
-%{_kde4_libdir}/libflake.so.*
-%{_kde4_libdir}/kde4/*shape.so
-%exclude %{_kde4_libdir}/kde4/formulashape.*
-%exclude %{_kde4_libdir}/kde4/kritashape.*
-%{_kde4_libdir}/libchartshapelib.so.*
-%{_kde4_libdir}/libkdchart.so.*
-%{_kde4_libdir}/libkochart.so.*
-%{_kde4_libdir}/libkotext.so.*
-%{_kde4_libdir}/libkowmf.so.*
-%{_kde4_libdir}/libkokross.so.*
-%{_kde4_libdir}/libkoguiutils.so.*
-%{_kde4_libdir}/libkomain.so.*
-%{_kde4_libdir}/libkoodf.so.*
-%{_kde4_libdir}/libkopageapp.so.*
-%{_kde4_libdir}/libkoproperty2.so.*
-%{_kde4_libdir}/libkoresources.so.*
-%{_kde4_libdir}/libkoffice_graya_u16.so.*
-%{_kde4_libdir}/libkofficegrayau8colorspace.so.*
-%{_kde4_libdir}/libkspreadcommon.so.*
-%{_kde4_libdir}/libkstore.so.*
-%{_kde4_libdir}/libkwmf.so.*
-%{_kde4_libdir}/libkformulalib.so.*
-%{_kde4_libdir}/libkoproperty.so.*
-%{_kde4_libdir}/libpigmentcms.so.*
+%doc COPYING.LIB
+#_libdir/libk*common.so.*
+%{_libdir}/libkarboncommon.so.*
+%{_libdir}/libkiviocommon.so.*
+%{_libdir}/libkspreadcommon.so.*
+%{_libdir}/libkdchart.so.*
+%{_libdir}/libkochart.so.*
+%{_libdir}/libkofficecore.so.*
+%{_libdir}/libkofficeui.so.*
+%{_libdir}/libkotext.so.*
+%{_libdir}/libkowmf.so.*
+%{_libdir}/libkopainter.so.*
+%{_libdir}/libkstore.so.*
+%{_libdir}/libkwmailmerge_interface.so.*
+%{_libdir}/libkwmf.so.*
+%{_libdir}/libkformulalib.so.*
+%{_libdir}/libkopalette.so.*
+%{_libdir}/libkoproperty.so.*
+%{_libdir}/libkrossapi.so.*
+%{_libdir}/libkrossmain.so.*
 
 %files devel
 %defattr(-,root,root,-)
+%lang(en) %{_docdir}/HTML/en/koffice-apidocs/
 %{_includedir}/*
 # FIXME: include only shlib symlinks we know/want to export
-%{_kde4_libdir}/lib*.so
-%exclude %{_kde4_libdir}/libkdeinit4_*.so
-%{_kde4_appsdir}/cmake/modules/FindKOfficeLibs.cmake
+%{_libdir}/lib*.so
+%exclude %{_libdir}/libkdeinit_*.so
+%exclude %{_libdir}/libkudesignercore.so
+
+%files kword
+%defattr(-,root,root,-)
+%lang(en) %{_docdir}/HTML/en/kword/
+%{_bindir}/kword
+%{_libdir}/libkdeinit_kword.so
+%{_libdir}/libkwordprivate.so.*
+%{_libdir}/kde3/libkwordpart.*
+%{_libdir}/kde3/kword.*
+%{_datadir}/apps/kword/
+%{_datadir}/services/kword*.desktop
+%{_datadir}/services/kwserial*.desktop
+%{_datadir}/templates/TextDocument.desktop
+%{_datadir}/templates/.source/TextDocument.kwt
+%{_datadir}/applications/kde/*kword.desktop
 
 %files kspread
 %defattr(-,root,root,-)
-%{_kde4_bindir}/kspread
-%{_kde4_libdir}/libkdeinit4_kspread.so
-%{_kde4_libdir}/kde4/krossmodulekspread.so
-%{_kde4_libdir}/kde4/kspread*.so
-%{_kde4_libdir}/kde4/libkspreadpart.*
-%{_kde4_libdir}/kde4/libcsvexport.*
-%{_kde4_libdir}/kde4/libcsvimport.*
-%{_kde4_libdir}/kde4/libgnumericexport.*
-%{_kde4_libdir}/kde4/libgnumericimport.*
-%{_kde4_libdir}/kde4/libkspreadhtmlexport.*
-%{_kde4_libdir}/kde4/libkspreadsolver.so
-%{_kde4_libdir}/kde4/libopencalcexport.*
-%{_kde4_libdir}/kde4/libopencalcimport.*
-%{_kde4_libdir}/kde4/libpowerpointimport.*
-%{_kde4_libdir}/kde4/libqproimport.*
-%{_kde4_appsdir}/kspread/
-%{_kde4_docdir}/HTML/en/kspread/
-%{_kde4_datadir}/config.kcfg/kspread.kcfg
-%{_kde4_datadir}/kde4/services/kspread*.desktop
-%{_kde4_datadir}/templates/SpreadSheet.desktop
-%{_kde4_datadir}/templates/.source/SpreadSheet.kst
-%{_kde4_datadir}/applications/kde4/*kspread.desktop
-%{_kde4_datadir}/kde4/services/ServiceMenus/kspread_konqi.desktop
-%{_kde4_datadir}/kde4/services/krossmodulekspread.desktop
-%{_kde4_datadir}/kde4/servicetypes/kspread_plugin.desktop
+%lang(en) %{_docdir}/HTML/en/kspread/
+%{_bindir}/kspread
+%{_libdir}/libkdeinit_kspread.so
+%{_libdir}/kde3/kspread.*
+%{_libdir}/kde3/libkspreadpart.*
+%{_libdir}/kde3/kwmailmerge_kspread.*
+%{_libdir}/kde3/libcsvexport.*
+%{_libdir}/kde3/libcsvimport.*
+%{_libdir}/kde3/libgnumericexport.*
+%{_libdir}/kde3/libgnumericimport.*
+%{_libdir}/kde3/libkspreadhtmlexport.*
+%{_libdir}/kde3/libkspreadinsertcalendar.*
+%{_libdir}/kde3/libopencalcexport.*
+%{_libdir}/kde3/libopencalcimport.*
+%{_libdir}/kde3/libqproimport.*
+%{_libdir}/kde3/kspreadscripting.*
+%{_libdir}/kde3/krosskspreadcore.*
+%{_datadir}/apps/kspread/
+%{_datadir}/services/kspread*.desktop
+%{_datadir}/templates/SpreadSheet.desktop
+%{_datadir}/templates/.source/SpreadSheet.kst
+%{_datadir}/applications/kde/*kspread.desktop
 
 %files kpresenter
 %defattr(-,root,root,-)
-%{_kde4_bindir}/kpresenter
-%{_kde4_libdir}/libkdeinit4_kpresenter.so
-%{_kde4_libdir}/libkpresenterprivate.so.*
-%{_kde4_libdir}/kde4/*kpresenter*.*
-%{_kde4_libdir}/kde4/kpr_*.*
-%{_kde4_libdir}/kde4/libFilterkpr2odf.so
-%{_kde4_appsdir}/kpresenter/
-%{_kde4_docdir}/HTML/en/kpresenter/
-%{_kde4_datadir}/kde4/services/kpr*.desktop
-%{_kde4_datadir}/kde4/servicetypes/kpr*.desktop
-%{_kde4_datadir}/kde4/servicetypes/presentationeventaction.desktop
-%{_kde4_datadir}/kde4/servicetypes/scripteventaction.desktop
-%{_kde4_datadir}/templates/Presentation.desktop
-%{_kde4_datadir}/templates/.source/Presentation.kpt
-%{_kde4_datadir}/applications/kde4/*kpresenter.desktop
-%{_kde4_datadir}/kde4/services/Filterkpr2odf.desktop
-%{_kde4_datadir}/kde4/services/ServiceMenus/kpresenter_konqi.desktop
+%lang(en) %{_docdir}/HTML/en/kpresenter/
+%{_bindir}/kpresenter
+%{_bindir}/kprconverter.pl
+%{_libdir}/libkdeinit_kpresenter.so
+%{_libdir}/libkpresenterimageexport.so.*
+%{_libdir}/libkpresenterprivate.so.*
+%{_libdir}/kde3/*kpresenter*.*
+%{_datadir}/apps/kpresenter/
+%{_datadir}/services/kpresenter*.desktop
+%{_datadir}/templates/Presentation.desktop
+%{_datadir}/templates/.source/Presentation.kpt
+%{_datadir}/applications/kde/*kpresenter.desktop
 
 %files karbon
 %defattr(-,root,root,-)
-%{_kde4_bindir}/karbon
-%{_kde4_libdir}/libkdeinit4_karbon.so
-%{_kde4_libdir}/libkarboncommon.so.*
-%{_kde4_libdir}/libkarbonui.so.*
-%{_kde4_libdir}/kde4/*karbon*.*
-%{_kde4_libdir}/kde4/libwmfexport.*
-%{_kde4_libdir}/kde4/libwmfimport.*
-%{_kde4_appsdir}/karbon/
-%{_kde4_datadir}/kde4/services/karbon*
-%{_kde4_datadir}/kde4/servicetypes/karbon_module.desktop
-%{_kde4_datadir}/templates/Illustration.desktop
-%{_kde4_datadir}/templates/.source/Illustration.karbon
-%{_kde4_datadir}/applications/kde4/*karbon.desktop
-%{_kde4_docdir}/HTML/en/karbon/
-%{_kde4_datadir}/kde4/services/ServiceMenus/karbon_konqi.desktop
+%lang(en) %{_docdir}/HTML/en/karbon/
+%{_bindir}/karbon
+%{_libdir}/libkdeinit_karbon.so
+%{_libdir}/kde3/*karbon*.*
+%{_libdir}/kde3/libwmfexport.*
+%{_libdir}/kde3/libwmfimport.*
+%{_datadir}/apps/karbon/
+%{_datadir}/services/karbon*
+%{_datadir}/servicetypes/karbon_module.desktop
+%{_datadir}/templates/Illustration.desktop
+%{_datadir}/templates/.source/Illustration.karbon
+%{_datadir}/applications/kde/*karbon.desktop
 
 %files krita
 %defattr(-,root,root,-)
-%{_kde4_bindir}/krita
-%{_kde4_libdir}/libkdeinit4_krita.so
-%{_kde4_libdir}/libkrita*.so.*
-%{_kde4_libdir}/libkisexiv2.so.*
-%{_kde4_libdir}/kde4/*krita*.*
-%{_kde4_libdir}/libkrossmodulekrita.so.*
-%{_kde4_appsdir}/krita/
-%{_kde4_datadir}/kde4/services/krita*.desktop
-%{_kde4_datadir}/kde4/servicetypes/krita*.desktop
-%{_kde4_datadir}/applications/kde4/*krita*.desktop
-# FIXME: add scriptlet
-%{_datadir}/mime/packages/krita_ora.xml
-%{_kde4_appsdir}/kritaplugins/
-%{_kde4_docdir}/HTML/en/krita/
-%{_datadir}/color/icc/krita/
-%{_kde4_datadir}/kde4/services/ServiceMenus/krita_konqi.desktop
+%lang(en) %{_docdir}/HTML/en/krita/
+%{_bindir}/krita
+%{_libdir}/libkdeinit_krita.so
+%{_libdir}/libkrita*.so.*
+%{_libdir}/kde3/*krita*.*
+%{_datadir}/apps/krita/
+%{_datadir}/services/krita*.desktop
+%{_datadir}/servicetypes/krita*.desktop
+%{_datadir}/applications/kde/*krita*.desktop
+%{_datadir}/applnk/.hidden/*krita*.desktop
+%{_datadir}/apps/kritaplugins/
 
 %files kugar
 %defattr(-,root,root,-)
-%{_kde4_docdir}/HTML/en/kugar/
+%lang(en) %{_docdir}/HTML/en/kugar/
+%{_bindir}/kugar
+%{_bindir}/kudesigner
+%{_libdir}/libkdeinit_kugar.so
+%{_libdir}/libkdeinit_kudesigner.so
+%{_libdir}/libkugarlib.so.*
+%{_libdir}/libkudesignercore.so
+%{_libdir}/kde3/kudesigner.*
+%{_libdir}/kde3/kugar.*
+%{_libdir}/kde3/libkudesignerpart.*
+%{_libdir}/kde3/libkugarpart.*
+%{_datadir}/apps/kudesigner/
+%{_datadir}/apps/kugar/
+%{_datadir}/services/kugar*.desktop
+%{_datadir}/applications/kde/*kugar.desktop
+%{_datadir}/applications/kde/*kudesigner.desktop
 
 %files kexi
 %defattr(-,root,root,-)
-%{_kde4_bindir}/kexi*
-%{_kde4_bindir}/ksqlite*
-%{_kde4_libdir}/libkexi*.so.*
-%{_kde4_libdir}/libkformdesigner.so.*
-%{_kde4_libdir}/kde4/kformdesigner_*.*
-%{_kde4_libdir}/kde4/kexidb_sqlite3driver.*
-%{_kde4_libdir}/kde4/kexihandler_*.*
-%{_kde4_libdir}/kde4/krossmodulekexidb.so
-%{_kde4_libdir}/kde4/pgzkexireportpart2.so
-%{_kde4_datadir}/config/kexirc
-%{_kde4_datadir}/kde4/servicetypes/kexi*.desktop
-%{_kde4_datadir}/kde4/services/kexi
-%{_kde4_appsdir}/kexi/
-%{_kde4_datadir}/kde4/services/kformdesigner/*
-%{_kde4_docdir}/HTML/en/kexi/
-%{_kde4_datadir}/applications/kde4/*kexi.desktop
-%{_kde4_datadir}/kde4/services/kexidb_sqlite*driver.desktop
-%{_kde4_datadir}/kde4/services/ServiceMenus/kexi_konqi.desktop
+%lang(en) %{_docdir}/HTML/en/kexi/
+%{_bindir}/kexi*
+%{_bindir}/ksqlite*
+%{_bindir}/krossrunner
+%{_libdir}/libkdeinit_kexi.so
+%{_libdir}/libkexi*.so.*
+%{_libdir}/libkformdesigner.so.*
+%{_libdir}/kde3/kformdesigner_*.*
+%{_libdir}/kde3/kexidb_sqlite2driver.*
+%{_libdir}/kde3/kexidb_sqlite3driver.*
+%{_libdir}/kde3/kexihandler_*.*
+%{_libdir}/kde3/kexi.*
+%{_libdir}/kde3/krosskexiapp.*
+%{_libdir}/kde3/krosskexidb.*
+# moved here to workaround bug #394101, alternative is to move libkexi(db|dbparser|utils) to -libs)
+%{_libdir}/kde3/libkspreadkexiimport.*
+%{_datadir}/config/kexirc
+%{_datadir}/config/magic/kexi.magic
+%{_datadir}/mimelnk/application/*
+%{_datadir}/servicetypes/kexi*.desktop
+%{_datadir}/services/kexi/
+%{_datadir}/apps/kexi/
+%{_datadir}/services/kformdesigner/*
+%{_datadir}/applications/kde/*kexi.desktop
+%{_datadir}/services/kexidb_sqlite*driver.desktop
 
 %files kexi-driver-mysql
 %defattr(-,root,root,-)
-%{_kde4_libdir}/kde4/kexidb_mysqldriver.*
-%{_kde4_libdir}/kde4/keximigrate_mysql.*
-%{_kde4_datadir}/kde4/services/keximigrate_mysql.desktop
-%{_kde4_datadir}/kde4/services/kexidb_mysqldriver.desktop
+%{_libdir}/kde3/kexidb_mysqldriver.*
+%{_libdir}/kde3/keximigrate_mysql.*
+%{_datadir}/services/keximigrate_mysql.desktop
+%{_datadir}/services/kexidb_mysqldriver.desktop
 
 %files kexi-driver-pgsql
 %defattr(-,root,root,-)
-%{_kde4_libdir}/kde4/kexidb_pqxxsqldriver.*
-%{_kde4_libdir}/kde4/keximigrate_pqxx.*
-%{_kde4_datadir}/kde4/services/kexidb_pqxxsqldriver.desktop
-%{_kde4_datadir}/kde4/services/keximigrate_pqxx.desktop
+%{_libdir}/kde3/kexidb_pqxxsqldriver.*
+%{_libdir}/kde3/keximigrate_pqxx.*
+%{_datadir}/services/kexidb_pqxxsqldriver.desktop
+%{_datadir}/services/keximigrate_pqxx.desktop
 
 %files kchart
 %defattr(-,root,root,-)
-%{_kde4_bindir}/kchart
-%{_kde4_libdir}/libkchartcommon.so.*
-%{_kde4_libdir}/libkdeinit4_kchart.so
-%{_kde4_libdir}/kde4/*kchart*.*
-%{_kde4_appsdir}/kchart/
-%{_kde4_datadir}/config.kcfg/kchart.kcfg
-%{_kde4_datadir}/kde4/services/kchart*.desktop
-%{_kde4_docdir}/HTML/en/kchart/
-%{_kde4_datadir}/applications/kde4/*kchart.desktop
-%{_kde4_datadir}/kde4/services/ServiceMenus/kchart_konqi.desktop
+%lang(en) %{_docdir}/HTML/en/kchart/
+%{_bindir}/kchart
+%{_libdir}/libkchart*.so.*
+%{_libdir}/libkdeinit_kchart.so
+%{_libdir}/kde3/*kchart*.*
+%{_datadir}/apps/kchart/
+%{_datadir}/services/kchart*.desktop
+%{_datadir}/applications/kde/*kchart.desktop
 
 %files kformula
 %defattr(-,root,root,-)
-%{_kde4_bindir}/kformula
-%{_kde4_libdir}/libkdeinit4_kformula.so
-%{_kde4_libdir}/libkformulaprivate.so.*
-%{_kde4_libdir}/kde4/*kformula*.*
-%{_kde4_libdir}/kde4/formulashape.*
-%{_kde4_appsdir}/kformula/
-%{_kde4_docdir}/HTML/en/kformula/
-%{_kde4_datadir}/kde4/services/kformula*.desktop
-%{_kde4_datadir}/applications/kde4/*kformula.desktop
-%{_kde4_datadir}/kde4/services/ServiceMenus/kformula_konqi.desktop
+%lang(en) %{_docdir}/HTML/en/kformula/
+%{_bindir}/kformula
+%{_libdir}/libkdeinit_kformula.so
+%{_libdir}/kde3/*kformula*.*
+%{_datadir}/apps/kformula/
+%{_datadir}/services/kformula*.desktop
+%{_datadir}/applications/kde/*kformula.desktop
 
 %files kivio
 %defattr(-,root,root,-)
-%{_kde4_bindir}/kivio
-%{_kde4_libdir}/libkdeinit4_kivio.so
-%{_kde4_libdir}/libkivioprivate.so.*
-%{_kde4_libdir}/kde4/*kivio*.*
-%{_kde4_appsdir}/kivio/
-%{_kde4_docdir}/HTML/en/kivio/
-%{_kde4_datadir}/kde4/services/kivio*.desktop
-%{_kde4_datadir}/applications/kde4/kivio.desktop
-%{_kde4_datadir}/kde4/services/ServiceMenus/kivio_konqi.desktop
+%lang(en) %{_docdir}/HTML/en/kivio/
+%{_bindir}/kivio
+%{_libdir}/libkdeinit_kivio.so
+%{_libdir}/kde3/*kivio*.*
+%{_libdir}/kde3/straight_connector.*
+%{_datadir}/apps/kivio/
+%{_datadir}/config.kcfg/kivio.kcfg
+%{_datadir}/services/kivio*.desktop
+%{_datadir}/applications/kde/*kivio.desktop
 
 %files filters
 %defattr(-,root,root,-)
-%{_kde4_libdir}/libkwordexportfilters.so.*
-%{_kde4_libdir}/kde4/libabiwordexport.*
-%{_kde4_libdir}/kde4/libabiwordimport.*
-%{_kde4_libdir}/kde4/libamiproexport.*
-%{_kde4_libdir}/kde4/libamiproimport.*
-%{_kde4_libdir}/kde4/libapplixspreadimport.*
-%{_kde4_libdir}/kde4/libapplixwordimport.*
-%{_kde4_libdir}/kde4/libdbaseimport.*
-%{_kde4_libdir}/kde4/libdocbookexport.*
-%{_kde4_libdir}/kde4/libexcelimport.*
-%{_kde4_libdir}/kde4/libgenerickofilter.*
-%{_kde4_libdir}/kde4/libhtmlexport.*
-%{_kde4_libdir}/kde4/libhtmlimport.*
-%{_kde4_libdir}/kde4/libkspreadlatexexport.*
-%{_kde4_libdir}/kde4/libkwordkword1dot3import.*
-%{_kde4_libdir}/kde4/libmswriteexport.*
-%{_kde4_libdir}/kde4/libmswriteimport.*
-%{_kde4_libdir}/kde4/liboowriterexport.*
-%{_kde4_libdir}/kde4/liboowriterimport.*
-%{_kde4_libdir}/kde4/libpalmdocexport.*
-%{_kde4_libdir}/kde4/libpalmdocimport.*
-%{_kde4_libdir}/kde4/librtfexport.*
-%{_kde4_libdir}/kde4/librtfimport.*
-%{_kde4_libdir}/kde4/libwmlexport.*
-%{_kde4_libdir}/kde4/libwmlimport.*
-%{_kde4_libdir}/kde4/libwpexport.*
-%{_kde4_libdir}/kde4/libwpimport.*
-%{_kde4_libdir}/kde4/libmswordimport.*
-%{_kde4_libdir}/kde4/libmswordodf_import.*
-%{_kde4_libdir}/kde4/libxsltimport.*
-%{_kde4_libdir}/kde4/libxsltexport.*
-%{_kde4_libdir}/kde4/libhancomwordimport.*
-%{_kde4_appsdir}/xsltfilter/
-%{_kde4_datadir}/kde4/services/generic_filter.desktop
-%{_kde4_datadir}/kde4/services/xslt*.desktop
-%{_kde4_datadir}/kde4/servicetypes/kofilter*.desktop
+%{_libdir}/libkwordexportfilters.so.*
+%{_libdir}/kde3/libabiwordexport.*
+%{_libdir}/kde3/libabiwordimport.*
+%{_libdir}/kde3/libamiproexport.*
+%{_libdir}/kde3/libamiproimport.*
+%{_libdir}/kde3/libapplixspreadimport.*
+%{_libdir}/kde3/libapplixwordimport.*
+%{_libdir}/kde3/libasciiexport.*
+%{_libdir}/kde3/libasciiimport.*
+%{_libdir}/kde3/libdbaseimport.*
+%{_libdir}/kde3/libdocbookexport.*
+%{_libdir}/kde3/libexcelimport.*
+%{_libdir}/kde3/libgenerickofilter.*
+%{_libdir}/kde3/libhtmlexport.*
+%{_libdir}/kde3/libhtmlimport.*
+%{_libdir}/kde3/libkarbonepsimport.*
+%{_libdir}/kde3/libkfolatexexport.*
+%{_libdir}/kde3/libkfomathmlexport.*
+%{_libdir}/kde3/libkfomathmlimport.*
+%{_libdir}/kde3/libkfopngexport.*
+%{_libdir}/kde3/libkspreadlatexexport.*
+%{_libdir}/kde3/libkugarnopimport.*
+%{_libdir}/kde3/libkwordkword1dot3import.*
+%{_libdir}/kde3/libkwordlatexexport.*
+%{_libdir}/kde3/libmswriteexport.*
+%{_libdir}/kde3/libmswriteimport.*
+%{_libdir}/kde3/libooimpressexport.*
+%{_libdir}/kde3/libooimpressimport.*
+%{_libdir}/kde3/liboowriterexport.*
+%{_libdir}/kde3/liboowriterimport.*
+%{_libdir}/kde3/libpalmdocexport.*
+%{_libdir}/kde3/libpalmdocimport.*
+%{_libdir}/kde3/libpdfimport.*
+%{_libdir}/kde3/librtfexport.*
+%{_libdir}/kde3/librtfimport.*
+%{_libdir}/kde3/libwmlexport.*
+%{_libdir}/kde3/libwmlimport.*
+%{_libdir}/kde3/libwpexport.*
+%{_libdir}/kde3/libwpimport.*
+%{_libdir}/kde3/libmswordimport.*
+%{_libdir}/kde3/libxsltimport.*
+%{_libdir}/kde3/libxsltexport.*
+%{_libdir}/kde3/libhancomwordimport.*
+%{_libdir}/kde3/libkfosvgexport.*
+%{_libdir}/kde3/liboodrawimport.*
+%{_libdir}/kde3/libolefilter.*
+%{_datadir}/apps/xsltfilter/
+%{_datadir}/services/generic_filter.desktop
+%{_datadir}/services/ole_powerpoint97_import.desktop
+%{_datadir}/services/xslt*.desktop
+%{_datadir}/servicetypes/kofilter*.desktop
 
 %files kplato
 %defattr(-,root,root,-)
-%{_kde4_bindir}/kplato
-%{_kde4_bindir}/kplatowork
-%{_kde4_configdir}/kplatorc
-%{_kde4_libdir}/libkdeinit4_kplato.so
-%{_kde4_libdir}/libkdeinit4_kplatowork.so
-%{_kde4_libdir}/kde4/libkplatopart.*
-%{_kde4_libdir}/kde4/libkplatoworkpart.so
-%{_kde4_libdir}/libkplato*.so.*
-%{_kde4_libdir}/kde4/krossmodulekplato.so
-%{_kde4_datadir}/kde4/services/krossmodulekplato.desktop
-%{_kde4_appsdir}/kplato/
-%{_kde4_appsdir}/kplatowork
-%{_kde4_docdir}/HTML/en/kplato/
-%{_kde4_datadir}/kde4/services/kplato*.desktop
-%{_kde4_datadir}/applications/kde4/kplato.desktop
-%{_kde4_datadir}/applications/kde4/kplatowork.desktop
-
-%files kword
-%defattr(-,root,root,-)
-%{_kde4_bindir}/kword
-%{_kde4_libdir}/libkdeinit4_kword.so
-%{_kde4_libdir}/libkwordprivate.so.*
-%{_kde4_libdir}/kde4/krossmodulekword.so
-%{_kde4_libdir}/kde4/libkwordpart.*
-%{_kde4_appsdir}/kword/
-%{_kde4_docdir}/HTML/en/kword/
-%{_kde4_datadir}/kde4/services/*kword*.desktop
-%{_kde4_datadir}/templates/TextDocument.desktop
-%{_kde4_datadir}/templates/.source/TextDocument.kwt
-%{_kde4_datadir}/applications/kde4/*kword.desktop
-%{_kde4_datadir}/kde4/services/ServiceMenus/kword_konqi.desktop
-
-%changelog
-* Wed Aug 20 2008 Rex Dieter <rdieter at fedoraproject.org> 1.9.95.10-1
-- koffice-1.9.95.10
-
-* Thu Jul 17 2008 Rex Dieter <rdieter at fedoraproject.org> 1.9.95.9-1
-- koffice-1.9.95.9
-- fix pkg interdependencies, multilib issues
-
-* Fri Jun 27 2008 Rex Dieter <rdieter at fedoraproject.org> 1.9.95.8.2
-- respin (eviv2)
-
-* Tue May 27 2008 Rex Dieter <rdieter at fedoraproject.org> 1.9.95.8-1
-- koffice-1.9.95.8
+%lang(en) %{_docdir}/HTML/en/kplato/
+%{_bindir}/kplato
+%{_libdir}/libkdeinit_kplato.so
+%{_libdir}/kde3/kplato.*
+%{_libdir}/kde3/libkplatopart.*
+%{_datadir}/apps/kplato/
+%{_datadir}/services/kplatopart.desktop
+%{_datadir}/applications/kde/*kplato.desktop
+
+
+%changelog 
+* Thu Sep 18 2008 Rex Dieter <rdieter at fedoraproject.org> 1:1.6.3-16
+- revert koffice2->koffice1, introduce Epoch
+- fix pkg interdependencies (#394101), multilib issues
+- -krita: drop Requires: %%name-filters (#394101)
+- cleanup scriptlets
 
 * Fri Feb 22 2008 Rex Dieter <rdieter at fedoraproject.org> 1.6.3-15
 - upstream gcc43 patch (#433994)


Index: sources
===================================================================
RCS file: /cvs/pkgs/rpms/koffice/devel/sources,v
retrieving revision 1.19
retrieving revision 1.20
diff -u -r1.19 -r1.20
--- sources	12 Sep 2008 16:55:03 -0000	1.19
+++ sources	18 Sep 2008 19:00:48 -0000	1.20
@@ -1 +1,2 @@
-06d7b0feedb0801dce098f26fe7f3e7e  koffice-1.9.95.10.tar.bz2
+03382edf62db9913b57ad8760c7d5f52  koshell.png
+386d388094734f9759977c3267098e30  koffice-1.6.3.tar.bz2




More information about the fedora-extras-commits mailing list