rpms/kdelibs/FC-5 kdelibs-3.5.3-kde#118277.patch, NONE, 1.1 kdelibs-3.5.3-kde#123315.patch, NONE, 1.1 kdelibs-3.5.3-kde#128760.patch, NONE, 1.1 kdelibs-3.5.3-kde#128842.patch, NONE, 1.1 kdelibs-3.5.3-kde#128902.patch, NONE, 1.1 kdelibs-3.5.3-kde#57159.patch, NONE, 1.1 kdelibs-3.5.3-kde#65546.patch, NONE, 1.1 kdelibs-3.5.3-kde#67849.patch, NONE, 1.1 kdelibs-3.5.3-kde#81806.patch, NONE, 1.1 kdelibs-3.5.3-khtml-regression.patch, NONE, 1.1 kdelibs-3.5.3.diff, NONE, 1.1 kdelibs.spec, 1.133, 1.134
fedora-cvs-commits at redhat.com
fedora-cvs-commits at redhat.com
Tue Jul 4 21:56:05 UTC 2006
Author: than
Update of /cvs/dist/rpms/kdelibs/FC-5
In directory cvs.devel.redhat.com:/tmp/cvs-serv13988
Modified Files:
kdelibs.spec
Added Files:
kdelibs-3.5.3-kde#118277.patch kdelibs-3.5.3-kde#123315.patch
kdelibs-3.5.3-kde#128760.patch kdelibs-3.5.3-kde#128842.patch
kdelibs-3.5.3-kde#128902.patch kdelibs-3.5.3-kde#57159.patch
kdelibs-3.5.3-kde#65546.patch kdelibs-3.5.3-kde#67849.patch
kdelibs-3.5.3-kde#81806.patch
kdelibs-3.5.3-khtml-regression.patch kdelibs-3.5.3.diff
Log Message:
- apply upstream patches,
fix #128940/#81806/#57159/#118277/#123315/#65546/#128842/#128902/#67849/#81806
- fix #196013, mark kde.sh/kde.csh as config file
- fix #178323 #196225, typo in kde.sh
kdelibs-3.5.3-kde#118277.patch:
html/html_baseimpl.cpp | 25 +++++++++++++++++++++++++
html/html_baseimpl.h | 4 ++++
khtmlview.cpp | 14 +++++++++-----
rendering/render_form.h | 5 -----
rendering/render_frames.h | 8 ++++++++
rendering/render_object.cpp | 10 +++++++---
rendering/render_replaced.h | 5 +++++
7 files changed, 58 insertions(+), 13 deletions(-)
--- NEW FILE kdelibs-3.5.3-kde#118277.patch ---
Index: khtml/khtmlview.cpp
===================================================================
--- khtml/khtmlview.cpp (Revision 555344)
+++ khtml/khtmlview.cpp (Revision 555345)
@@ -660,7 +660,14 @@
QWidget *w = it.current();
RenderWidget* rw = static_cast<RenderWidget*>( it.currentKey() );
if (w && rw && !rw->isKHTMLWidget()) {
- QRect g = w->geometry();
+ int x, y;
+ rw->absolutePosition(x, y);
+ contentsToViewport(x, y, x, y);
+ int pbx = rw->borderLeft()+rw->paddingLeft();
+ int pby = rw->borderTop()+rw->paddingTop();
+ QRect g = QRect(x+pbx, y+pby,
+ rw->width()-pbx-rw->borderRight()-rw->paddingRight(),
+ rw->height()-pby-rw->borderBottom()-rw->paddingBottom());
if ( !rw->isFrame() && ((g.top() > pt.y()+eh) || (g.bottom() <= pt.y()) ||
(g.right() <= pt.x()) || (g.left() > pt.x()+ew) ))
continue;
@@ -673,10 +680,7 @@
mask = mask.intersect( QRect(g.x(),g.y(),g.width(),g.height()) );
cr -= mask;
} else {
- int x, y;
- rw->absolutePosition(x,y);
- contentsToViewport(x,y,x,y);
- cr -= QRect(x,y,rw->width(),rw->height());
+ cr -= g;
}
}
}
Index: khtml/html/html_baseimpl.cpp
===================================================================
--- khtml/html/html_baseimpl.cpp (Revision 555344)
+++ khtml/html/html_baseimpl.cpp (Revision 555345)
@@ -584,6 +584,7 @@
marginWidth = 0;
marginHeight = 0;
needWidgetUpdate = false;
+ m_frame = true;
}
HTMLIFrameElementImpl::~HTMLIFrameElementImpl()
@@ -615,17 +616,41 @@
needWidgetUpdate = true; // ### do this for scrolling, margins etc?
HTMLFrameElementImpl::parseAttribute( attr );
break;
+ case ATTR_FRAMEBORDER:
+ {
+ m_frame = (!attr->val() || attr->value().toInt() > 0);
+ if (attached()) updateFrame();
+ }
default:
HTMLFrameElementImpl::parseAttribute( attr );
}
}
+void HTMLIFrameElementImpl::updateFrame()
+{
+ if (m_frame) {
+ addCSSProperty(CSS_PROP_BORDER_TOP_STYLE, CSS_VAL_OUTSET);
+ addCSSProperty(CSS_PROP_BORDER_BOTTOM_STYLE, CSS_VAL_OUTSET);
+ addCSSProperty(CSS_PROP_BORDER_LEFT_STYLE, CSS_VAL_OUTSET);
+ addCSSProperty(CSS_PROP_BORDER_RIGHT_STYLE, CSS_VAL_OUTSET);
+ addCSSLength(CSS_PROP_BORDER_WIDTH, "2");
+ } else {
+ addCSSProperty(CSS_PROP_BORDER_TOP_STYLE, CSS_VAL_NONE);
+ addCSSProperty(CSS_PROP_BORDER_BOTTOM_STYLE, CSS_VAL_NONE);
+ addCSSProperty(CSS_PROP_BORDER_LEFT_STYLE, CSS_VAL_NONE);
+ addCSSProperty(CSS_PROP_BORDER_RIGHT_STYLE, CSS_VAL_NONE);
+ removeCSSProperty(CSS_PROP_BORDER_WIDTH);
+ }
+
+}
+
void HTMLIFrameElementImpl::attach()
{
assert(!attached());
assert(!m_render);
assert(parentNode());
+ updateFrame();
name = getAttribute(ATTR_NAME);
if (name.isNull())
name = getAttribute(ATTR_ID);
Index: khtml/html/html_baseimpl.h
===================================================================
--- khtml/html/html_baseimpl.h (Revision 555344)
+++ khtml/html/html_baseimpl.h (Revision 555345)
@@ -190,7 +190,11 @@
virtual void recalcStyle( StyleChange ch );
protected:
+
+ void updateFrame();
+
bool needWidgetUpdate;
+ bool m_frame;
};
Index: khtml/rendering/render_form.h
===================================================================
--- khtml/rendering/render_form.h (Revision 555344)
+++ khtml/rendering/render_form.h (Revision 555345)
@@ -78,11 +78,6 @@
virtual bool isFormElement() const { return true; }
- virtual int borderTop() const { return canHaveBorder() ? RenderWidget::borderTop() : 0; }
- virtual int borderBottom() const { return canHaveBorder() ? RenderWidget::borderBottom() : 0; }
- virtual int borderLeft() const { return canHaveBorder() ? RenderWidget::borderLeft() : 0; }
- virtual int borderRight() const { return canHaveBorder() ? RenderWidget::borderRight() : 0; }
-
// form elements never have padding
virtual int paddingTop() const { return 0; }
virtual int paddingBottom() const { return 0; }
Index: khtml/rendering/render_frames.h
===================================================================
--- khtml/rendering/render_frames.h (Revision 555344)
+++ khtml/rendering/render_frames.h (Revision 555345)
@@ -130,6 +130,12 @@
virtual const char *renderName() const { return "RenderFrame"; }
virtual bool isFrame() const { return true; }
+ // frames never have padding
+ virtual int paddingTop() const { return 0; }
+ virtual int paddingBottom() const { return 0; }
+ virtual int paddingLeft() const { return 0; }
+ virtual int paddingRight() const { return 0; }
+
DOM::HTMLFrameElementImpl *element() const
{ return static_cast<DOM::HTMLFrameElementImpl*>(RenderObject::element()); }
@@ -150,6 +156,8 @@
virtual void layout( );
virtual void updateWidget();
+
+ virtual bool canHaveBorder() const { return true; }
virtual bool partLoadingErrorNotify( khtml::ChildFrame *childFrame, const KURL& url, const QString& serviceType );
Index: khtml/rendering/render_replaced.h
===================================================================
--- khtml/rendering/render_replaced.h (Revision 555344)
+++ khtml/rendering/render_replaced.h (Revision 555345)
@@ -146,6 +146,11 @@
bool m_needsMask;
public:
+ virtual int borderTop() const { return canHaveBorder() ? RenderReplaced::borderTop() : 0; }
+ virtual int borderBottom() const { return canHaveBorder() ? RenderReplaced::borderBottom() : 0; }
+ virtual int borderLeft() const { return canHaveBorder() ? RenderReplaced::borderLeft() : 0; }
+ virtual int borderRight() const { return canHaveBorder() ? RenderReplaced::borderRight() : 0; }
+
class EventPropagator : public QWidget {
public:
void sendEvent(QEvent *e);
Index: khtml/rendering/render_object.cpp
===================================================================
--- khtml/rendering/render_object.cpp (Revision 555344)
+++ khtml/rendering/render_object.cpp (Revision 555345)
@@ -2182,9 +2182,13 @@
QRegion r = l ? l->getMask() : QRegion();
int x,y;
if (!r.isNull() && curr->absolutePosition(x,y)) {
- x+= curr->borderLeft()+curr->paddingLeft();
- y+= curr->borderBottom()+curr->paddingBottom();
- r = r.intersect(QRect(x,y,curr->width(),curr->height()));
+ int pbx = curr->borderLeft()+curr->paddingLeft();
+ int pby = curr->borderTop()+curr->paddingTop();
+ x+= pbx;
+ y+= pby;
+ r = r.intersect(QRect(x,y,
+ curr->width()-pbx-curr->borderRight()-curr->paddingRight(),
+ curr->height()-pby-curr->borderBottom()-curr->paddingBottom()));
#ifdef MASK_DEBUG
QMemArray<QRect> ar = r.rects();
kdDebug(6040) << "|| Setting widget mask for " << curr->information() << endl;
kdelibs-3.5.3-kde#123315.patch:
kdirwatch.cpp | 75 ++++++++++++++++++++++++++++++++++++++++------------------
1 files changed, 52 insertions(+), 23 deletions(-)
--- NEW FILE kdelibs-3.5.3-kde#123315.patch ---
--- kio/kio/kdirwatch.cpp.kde#123315 2006-05-22 20:14:17.000000000 +0200
+++ kio/kio/kdirwatch.cpp 2006-07-03 08:40:04.000000000 +0200
@@ -340,7 +340,7 @@
kdDebug(7001) << "Available methods: " << available << endl;
}
-/* This should never be called, but doesn't harm */
+/* This is called on app exit (KStaticDeleter) */
KDirWatchPrivate::~KDirWatchPrivate()
{
timer->stop();
@@ -407,9 +407,6 @@
if ( event->len )
path = QFile::decodeName( QCString( event->name, event->len ) );
- if ( event->mask & IN_IGNORED )
- continue;
-
if ( path.length() && isNoisyFile( path.latin1() ) )
continue;
@@ -428,12 +425,15 @@
if( event->mask & IN_DELETE_SELF) {
kdDebug(7001) << "-->got deleteself signal for " << e->path << endl;
e->m_status = NonExistent;
- //(void) inotify_rm_watch( m_inotify_fd, e->wd );
- addEntry(0, QDir::cleanDirPath(e->path+"/.."), e, true);
+ if (e->isDir)
+ addEntry(0, QDir::cleanDirPath(e->path+"/.."), e, true);
+ else
+ addEntry(0, QFileInfo(e->path).dirPath(true), e, true);
+ }
+ if ( event->mask & IN_IGNORED ) {
+ e->wd = 0;
}
if ( event->mask & (IN_CREATE|IN_MOVED_TO) ) {
- kdDebug(7001) << "-->got new subfile " << path << " in " << e->path << endl;
-
Entry *sub_entry = e->m_entries.first();
for(;sub_entry; sub_entry = e->m_entries.next())
if (sub_entry->path == e->path + "/" + path) break;
@@ -727,7 +727,10 @@
return true;
if ( e->m_status == NonExistent ) {
- addEntry(0, QDir::cleanDirPath(e->path+"/.."), e, true);
+ if (e->isDir)
+ addEntry(0, QDir::cleanDirPath(e->path+"/.."), e, true);
+ else
+ addEntry(0, QFileInfo(e->path).dirPath(true), e, true);
return true;
}
@@ -782,7 +785,9 @@
(*it).m_entries.append(sub_entry);
kdDebug(7001) << "Added already watched Entry " << path
<< " (for " << sub_entry->path << ")" << endl;
+
#ifdef HAVE_DNOTIFY
+ {
Entry* e = &(*it);
if( (e->m_mode == DNotifyMode) && (e->dn_fd > 0) ) {
int mask = DN_DELETE|DN_CREATE|DN_RENAME|DN_MULTISHOT;
@@ -797,7 +802,25 @@
useStat( e );
}
}
+ }
+#endif
+
+#ifdef HAVE_INOTIFY
+ {
+ Entry* e = &(*it);
+ if( (e->m_mode == INotifyMode) && (e->wd > 0) ) {
+ int mask = IN_DELETE|IN_DELETE_SELF|IN_CREATE|IN_MOVE|IN_MOVE_SELF|IN_DONT_FOLLOW;
+ if(!e->isDir)
+ mask |= IN_MODIFY|IN_ATTRIB;
+ else
+ mask |= IN_ONLYDIR;
+
+ inotify_rm_watch (m_inotify_fd, e->wd);
+ e->wd = inotify_add_watch( m_inotify_fd, QFile::encodeName( e->path ), mask);
+ }
+ }
#endif
+
}
else {
(*it).addClient(instance);
@@ -928,8 +951,12 @@
m_inotify_fd << ", " << e->wd <<
") for " << e->path << endl;
}
- else
- removeEntry( 0, QDir::cleanDirPath( e->path+"/.." ), e );
+ else {
+ if (e->isDir)
+ removeEntry(0, QDir::cleanDirPath(e->path+"/.."), e);
+ else
+ removeEntry(0, QFileInfo(e->path).dirPath(true), e);
+ }
}
#endif
@@ -1167,15 +1194,6 @@
return Changed;
}
-#ifdef HAVE_INOTIFY
- // for inotify we delay the initial stating till the first event in it
- if ( e->m_status == Normal && e->m_ctime == invalid_ctime )
- {
- e->m_ctime = stat_buf.st_ctime;
- e->m_nlink = stat_buf.st_nlink;
- }
-#endif
-
return NoChange;
}
@@ -1278,7 +1296,7 @@
// removeDir(), when called in slotDirty(), can cause a crash otherwise
delayRemove = true;
-#ifdef HAVE_DNOTIFY
+#if defined(HAVE_DNOTIFY) || defined(HAVE_INOTIFY)
QPtrList<Entry> dList, cList;
#endif
@@ -1306,6 +1324,16 @@
int ev = scanEntry( &(*it) );
+
+#ifdef HAVE_INOTIFY
+ if ((*it).m_mode == INotifyMode && ev == Created && (*it).wd == 0) {
+ cList.append( &(*it) );
+ if (! useINotify( &(*it) )) {
+ useStat( &(*it) );
+ }
+ }
+#endif
+
#ifdef HAVE_DNOTIFY
if ((*it).m_mode == DNotifyMode) {
if ((*it).isDir && (ev == Deleted)) {
@@ -1337,7 +1365,7 @@
}
-#ifdef HAVE_DNOTIFY
+#if defined(HAVE_DNOTIFY) || defined(HAVE_INOTIFY)
// Scan parent of deleted directories for new creation
Entry* e;
for(e=dList.first();e;e=dList.next())
@@ -1542,7 +1570,8 @@
kdDebug(7001) << " dependent entries:" << endl;
Entry* d = e->m_entries.first();
for(;d; d = e->m_entries.next()) {
- kdDebug(7001) << " " << d->path << endl;
+ kdDebug(7001) << " " << d << endl;
+ kdDebug(7001) << " " << d->path << " (" << d << ") " << endl;
}
}
}
kdelibs-3.5.3-kde#128760.patch:
dom_textimpl.cpp | 2 ++
1 files changed, 2 insertions(+)
--- NEW FILE kdelibs-3.5.3-kde#128760.patch ---
Index: khtml/xml/dom_textimpl.cpp
===================================================================
--- khtml/xml/dom_textimpl.cpp (Revision 557103)
+++ khtml/xml/dom_textimpl.cpp (Revision 557104)
@@ -389,6 +389,8 @@
}
RenderObject *first = par->firstChild();
+ while (first && first->isFloatingOrPositioned())
+ first = first->nextSibling();
RenderObject *next = nextRenderer();
if (!first || next == first) {
// Whitespace at the start of a block just goes away. Don't even
kdelibs-3.5.3-kde#128842.patch:
ustring.cpp | 10 ++++++----
1 files changed, 6 insertions(+), 4 deletions(-)
--- NEW FILE kdelibs-3.5.3-kde#128842.patch ---
Index: kjs/ustring.cpp
===================================================================
--- kjs/ustring.cpp (Revision 549505)
+++ kjs/ustring.cpp (Revision 549506)
@@ -131,18 +131,20 @@
UChar UChar::toLower() const
{
// ### properly support unicode tolower
- if (uc >= 256 || islower(uc))
+ if (uc >= 256)
return *this;
- return (unsigned char)tolower(uc);
+ // tolower is locale-dependent, don't use it.
+ return static_cast<unsigned char>( ( ( uc >= 'A' ) && ( uc <= 'Z' ) ) ? ( (int)uc + 'a' - 'A' ) : uc );
}
UChar UChar::toUpper() const
{
- if (uc >= 256 || isupper(uc))
+ if (uc >= 256)
return *this;
- return (unsigned char)toupper(uc);
+ // toupper is locale-dependent, don't use it.
+ return static_cast<unsigned char>( ( ( uc >= 'a' ) && ( uc <= 'z' ) ) ? ( (int)uc + 'A' - 'a' ) : uc );
}
UCharReference& UCharReference::operator=(UChar c)
kdelibs-3.5.3-kde#128902.patch:
kjs_window.cpp | 4 +++-
1 files changed, 3 insertions(+), 1 deletion(-)
--- NEW FILE kdelibs-3.5.3-kde#128902.patch ---
Index: khtml/ecma/kjs_window.cpp
===================================================================
--- khtml/ecma/kjs_window.cpp (Revision 549887)
+++ khtml/ecma/kjs_window.cpp (Revision 549888)
@@ -2464,8 +2464,10 @@
break;
case Location::Reload: {
KHTMLPart *khtmlpart = ::qt_cast<KHTMLPart *>(part);
- if (part)
+ if (khtmlpart)
khtmlpart->scheduleRedirection(-1, part->url().url(), true/*lock history*/);
+ else
+ part->openURL(part->url());
break;
}
case Location::ToString:
kdelibs-3.5.3-kde#57159.patch:
css/css_stylesheetimpl.cpp | 4 ++++
xml/dom_docimpl.cpp | 12 ++++++++++--
xml/dom_docimpl.h | 6 +++++-
3 files changed, 19 insertions(+), 3 deletions(-)
--- NEW FILE kdelibs-3.5.3-kde#57159.patch ---
Index: khtml/css/css_stylesheetimpl.cpp
===================================================================
--- khtml/css/css_stylesheetimpl.cpp (Revision 555956)
+++ khtml/css/css_stylesheetimpl.cpp (Revision 555957)
@@ -194,6 +194,8 @@
// HIERARCHY_REQUEST_ERR: Raised if the rule cannot be inserted at the specified index e.g. if an
//@import rule is inserted after a standard rule set or other at-rule.
m_lstChildren->insert(index, r);
+ if (m_doc)
+ m_doc->updateStyleSelector(true /*shallow*/);
return index;
}
@@ -211,6 +213,8 @@
return;
}
b->deref();
+ if (m_doc)
+ m_doc->updateStyleSelector(true /*shallow*/);
}
void CSSStyleSheetImpl::addNamespace(CSSParser* p, const DOM::DOMString& prefix, const DOM::DOMString& uri)
Index: khtml/xml/dom_docimpl.cpp
===================================================================
--- khtml/xml/dom_docimpl.cpp (Revision 555956)
+++ khtml/xml/dom_docimpl.cpp (Revision 555957)
@@ -1976,7 +1976,7 @@
if (exceptioncode) *exceptioncode = excode;
}
-void DocumentImpl::updateStyleSelector()
+void DocumentImpl::updateStyleSelector(bool shallow)
{
// kdDebug() << "PENDING " << m_pendingStylesheets << endl;
@@ -1984,7 +1984,10 @@
if (m_pendingStylesheets > 0)
return;
- recalcStyleSelector();
+ if (shallow)
+ rebuildStyleSelector();
+ else
+ recalcStyleSelector();
recalcStyle(Force);
#if 0
@@ -2134,6 +2137,11 @@
for (; it.current(); ++it)
it.current()->deref();
+ rebuildStyleSelector();
+}
+
+void DocumentImpl::rebuildStyleSelector()
+{
// Create a new style selector
delete m_styleSelector;
QString usersheet = m_usersheet;
Index: khtml/xml/dom_docimpl.h
===================================================================
--- khtml/xml/dom_docimpl.h (Revision 555956)
+++ khtml/xml/dom_docimpl.h (Revision 555957)
@@ -258,10 +258,14 @@
* <LINK>, <STYLE> or <BODY> elements, as well as processing instructions (XML documents only). A list is
* constructed from these which is used to create the a new style selector which collates all of the stylesheets
* found and is used to calculate the derived styles for all rendering objects.
+ *
+ * @param shallow If the stylesheet list for the document is unchanged, with only added or removed rules
+ * in existing sheets, then set this argument to true for efficiency.
*/
- void updateStyleSelector();
+ void updateStyleSelector(bool shallow=false);
void recalcStyleSelector();
+ void rebuildStyleSelector();
QString nextState();
kdelibs-3.5.3-kde#65546.patch:
dtd.cpp | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
--- NEW FILE kdelibs-3.5.3-kde#65546.patch ---
Index: khtml/html/dtd.cpp
===================================================================
--- khtml/html/dtd.cpp (Revision 549400)
+++ khtml/html/dtd.cpp (Revision 549401)
@@ -599,8 +599,8 @@
// _1 *
return check_array(childID, tag_list_1) || check_array(childID, tag_list_6);
case ID_P:
- // P: ( _0 | TABLE ) *
- return check_array(childID, tag_list_0) || (!strict && childID == ID_TABLE);
+ // P: ( _0 | TABLE | NOSCRIPT) *
+ return check_array(childID, tag_list_0) || (!strict && (childID == ID_TABLE || childID == ID_NOSCRIPT));
case ID_H1:
case ID_H2:
case ID_H3:
kdelibs-3.5.3-kde#67849.patch:
table_layout.cpp | 2 --
1 files changed, 2 deletions(-)
--- NEW FILE kdelibs-3.5.3-kde#67849.patch ---
Index: khtml/rendering/table_layout.cpp
===================================================================
--- khtml/rendering/table_layout.cpp (Revision 552381)
+++ khtml/rendering/table_layout.cpp (Revision 552382)
@@ -288,8 +288,6 @@
int base = tableWidth * totalPercent / 100;
if ( base > available )
base = available;
- else
- totalPercent = 100;
#ifdef DEBUG_LAYOUT
qDebug("FixedTableLayout::layout: assigning percent width, base=%d, totalPercent=%d", base, totalPercent);
kdelibs-3.5.3-kde#81806.patch:
dtd.cpp | 352 ++++++++++++++++++---------------------------------------
htmlparser.cpp | 5
2 files changed, 115 insertions(+), 242 deletions(-)
--- NEW FILE kdelibs-3.5.3-kde#81806.patch ---
Index: khtml/html/dtd.cpp
===================================================================
--- khtml/html/dtd.cpp (Revision 552024)
+++ khtml/html/dtd.cpp (Revision 552025)
@@ -259,261 +259,111 @@
REQUIRED // ID_TEXT
};
-
-static const ushort tag_list_0[] = {
+// This a combination of HTML4.dtd XHTML11.dtd and various extensions
+// and deprecated elements
+static const ushort tag_list_inline[] = {
ID_TEXT,
+ // %fontstyle
ID_TT,
ID_I,
ID_B,
- ID_U,
- ID_S,
- ID_STRIKE,
ID_BIG,
ID_SMALL,
+ ID_U, // legacy
+ ID_S, // legacy
+ ID_STRIKE, // legacy
+ ID_FONT, // legacy
+ ID_BASEFONT, // legacy
+ // %phrase
ID_EM,
ID_STRONG,
ID_DFN,
ID_CODE,
+ ID_Q,
ID_SAMP,
ID_KBD,
ID_VAR,
ID_CITE,
ID_ABBR,
ID_ACRONYM,
- ID_A,
- ID_IMG,
- ID_APPLET,
- ID_OBJECT,
- ID_EMBED,
- ID_FONT,
- ID_BASEFONT,
- ID_BR,
- ID_SCRIPT,
- ID_MAP,
- ID_Q,
ID_SUB,
ID_SUP,
- ID_SPAN,
- ID_BDO,
- ID_IFRAME,
+ // %inline.forms
ID_INPUT,
ID_SELECT,
ID_TEXTAREA,
ID_LABEL,
ID_BUTTON,
- ID_INS,
- ID_DEL,
- ID_COMMENT,
- ID_NOBR,
- ID_WBR,
- 0
-};
-
-static const ushort tag_list_1[] = {
- ID_TEXT,
- ID_P,
- ID_H1,
- ID_H2,
- ID_H3,
- ID_H4,
- ID_H5,
- ID_H6,
- ID_UL,
- ID_OL,
- ID_DIR,
- ID_MENU,
- ID_PRE,
- ID_PLAINTEXT,
- ID_DL,
- ID_DIV,
- ID_ILAYER,
- ID_LAYER,
- ID_CENTER,
- ID_NOSCRIPT,
- ID_NOFRAMES,
- ID_BLOCKQUOTE,
- ID_FORM,
- ID_ISINDEX,
- ID_HR,
- ID_TABLE,
- ID_FIELDSET,
- ID_ADDRESS,
- ID_TT,
- ID_I,
- ID_B,
- ID_U,
- ID_S,
- ID_STRIKE,
- ID_BIG,
- ID_SMALL,
- ID_EM,
- ID_STRONG,
- ID_DFN,
- ID_CODE,
- ID_SAMP,
- ID_KBD,
- ID_VAR,
- ID_CITE,
- ID_ABBR,
- ID_ACRONYM,
+ // %special
ID_A,
+ ID_OBJECT,
ID_IMG,
ID_APPLET,
- ID_OBJECT,
- ID_EMBED,
- ID_FONT,
- ID_BASEFONT,
+ ID_IFRAME,
+ ID_EMBED, // ?
+ // %special.pre
ID_BR,
- ID_SCRIPT,
- ID_MAP,
- ID_Q,
- ID_SUB,
- ID_SUP,
ID_SPAN,
ID_BDO,
- ID_IFRAME,
- ID_INPUT,
- ID_KEYGEN,
- ID_SELECT,
- ID_TEXTAREA,
- ID_LABEL,
- ID_BUTTON,
- ID_COMMENT,
- ID_LI,
- ID_DD,
- ID_XMP,
+ ID_MAP,
+ // %misc.inline
+ ID_SCRIPT,
ID_INS,
ID_DEL,
- ID_NOBR,
- ID_WBR,
- ID_MARQUEE,
+ // non-standard:
+ ID_ILAYER, // deprecated
+ ID_NOBR, // ?
+ ID_WBR, // ?
0
};
-static const ushort tag_list_2[] = {
- ID_COMMENT,
+static const ushort tag_list_quirk_inline[] = {
+ ID_NOSCRIPT, // block, but parsed as inline in Mozilla and MSIE
0
};
-static const ushort tag_list_3[] = {
- ID_TEXT,
+static const ushort tag_list_block[] = {
+ ID_TEXT, // white-space is allowed
ID_P,
+ // %headings
ID_H1,
ID_H2,
ID_H3,
ID_H4,
ID_H5,
ID_H6,
+ // %lists
ID_UL,
ID_OL,
- ID_DIR,
- ID_MENU,
- ID_PRE,
- ID_PLAINTEXT,
ID_DL,
- ID_DIV,
- ID_ILAYER,
- ID_LAYER,
- ID_CENTER,
- ID_NOSCRIPT,
- ID_NOFRAMES,
- ID_BLOCKQUOTE,
- ID_FORM,
- ID_ISINDEX,
+ ID_DIR, // legacy
+ ID_MENU, // legacy
+ // %blocktext
+ ID_PRE,
ID_HR,
- ID_TABLE,
- ID_FIELDSET,
+ ID_BLOCKQUOTE,
ID_ADDRESS,
- ID_COMMENT,
- ID_LI,
- ID_DD,
- ID_XMP,
- ID_MARQUEE,
- 0
-};
-
-static const ushort tag_list_4[] = {
- ID_TEXT,
- ID_PARAM,
- ID_P,
- ID_H1,
- ID_H2,
- ID_H3,
- ID_H4,
- ID_H5,
- ID_H6,
- ID_UL,
- ID_OL,
- ID_DIR,
- ID_MENU,
- ID_PRE,
- ID_PLAINTEXT,
- ID_DL,
+ ID_PLAINTEXT, // ?
+ ID_XMP, // ?
+ ID_CENTER, // legacy
+ // other
ID_DIV,
- ID_ILAYER,
- ID_LAYER,
- ID_CENTER,
+ ID_FIELDSET,
+ ID_TABLE,
ID_NOSCRIPT,
ID_NOFRAMES,
- ID_BLOCKQUOTE,
ID_FORM,
- ID_ISINDEX,
- ID_HR,
- ID_TABLE,
- ID_FIELDSET,
- ID_ADDRESS,
- ID_TEXT,
- ID_TT,
- ID_I,
- ID_B,
- ID_U,
- ID_S,
- ID_STRIKE,
- ID_BIG,
- ID_SMALL,
- ID_EM,
- ID_STRONG,
- ID_DFN,
- ID_CODE,
- ID_SAMP,
- ID_KBD,
- ID_VAR,
- ID_CITE,
- ID_ABBR,
- ID_ACRONYM,
- ID_A,
- ID_IMG,
- ID_APPLET,
- ID_OBJECT,
- ID_EMBED,
- ID_FONT,
- ID_BASEFONT,
- ID_BR,
- ID_SCRIPT,
- ID_MAP,
- ID_Q,
- ID_SUB,
- ID_SUP,
- ID_SPAN,
- ID_BDO,
- ID_IFRAME,
- ID_INPUT,
- ID_SELECT,
- ID_TEXTAREA,
- ID_LABEL,
- ID_BUTTON,
- ID_COMMENT,
- ID_LI,
- ID_DD,
- ID_XMP,
- ID_MARQUEE,
+ ID_ISINDEX, // legacy
+ // non-standard:
+ ID_LAYER, // deprecated
+ ID_MARQUEE, // extension
0
};
-static const ushort tag_list_6[] = {
- ID_DT,
+// block elements allowed for quirky error recovery
+static const ushort tag_list_quirk_block[] = {
+ ID_LI,
ID_DD,
- ID_COMMENT,
0
};
@@ -521,7 +371,6 @@
ID_TEXT,
ID_OPTGROUP,
ID_OPTION,
- ID_COMMENT,
ID_SCRIPT,
0
};
@@ -530,19 +379,19 @@
ID_FRAMESET,
ID_FRAME,
ID_NOFRAMES,
- ID_COMMENT,
0
};
+// %head.content
static const ushort tag_list_11[] = {
ID_SCRIPT,
ID_STYLE,
ID_META,
ID_LINK,
+ ID_OBJECT,
ID_TITLE,
- ID_ISINDEX,
ID_BASE,
- ID_COMMENT,
+ ID_ISINDEX,
0
};
@@ -557,7 +406,23 @@
return false;
}
+static bool check_block(ushort childID, bool strict)
+{
+ return check_array(childID, tag_list_block) ||
+ (!strict && check_array(childID, tag_list_quirk_block));
+}
+static bool check_inline(ushort childID, bool strict)
+{
+ return check_array(childID, tag_list_inline) ||
+ (!strict && check_array(childID, tag_list_quirk_inline));
+}
+
+static bool check_flow(ushort childID, bool strict)
+{
+ return check_block(childID, strict) || check_inline(childID, strict);
+}
+
bool DOM::checkChild(ushort tagID, ushort childID, bool strict)
{
//kdDebug( 6030 ) << "checkChild: " << tagID << "/" << childID << endl;
@@ -567,6 +432,8 @@
if (tagID >= 1000 || childID >= 1000)
return true; // one or both of the elements in an XML element; just allow for now
+ if (childID == ID_COMMENT) return true;
+
switch(tagID)
{
case ID_TT:
@@ -593,23 +460,27 @@
case ID_FONT:
case ID_LEGEND:
case ID_Q:
- case ID_A:
case ID_NOBR:
case ID_WBR:
- // _1 *
- return check_array(childID, tag_list_1) || check_array(childID, tag_list_6);
+ // %inline *
+ return check_inline(childID, strict) ||
+ (!strict && check_block(childID, true));
+ case ID_A:
+ // A: %inline * (but even strict sites expect %flow)
+ return check_flow(childID, true);
case ID_P:
- // P: ( _0 | TABLE | NOSCRIPT) *
- return check_array(childID, tag_list_0) || (!strict && (childID == ID_TABLE || childID == ID_NOSCRIPT));
+ // P: %inline *
+ return check_inline(childID, strict) ||
+ (!strict && childID == ID_TABLE );
case ID_H1:
case ID_H2:
case ID_H3:
case ID_H4:
case ID_H5:
case ID_H6:
- // _0 *
- return check_array(childID, tag_list_0) ||
- (!strict && check_array(childID, tag_list_3) && (childID < ID_H1 || childID > ID_H6));
+ // %inline *
+ return check_inline(childID, strict) ||
+ (!strict && check_block(childID, true) && (childID < ID_H1 || childID > ID_H6));
case ID_BASEFONT:
case ID_BR:
case ID_AREA:
@@ -627,13 +498,16 @@
// BASEFONT: EMPTY
return false;
case ID_BODY:
- // BODY: _1 * + _2
- return check_array(childID, tag_list_1) || check_array(childID, tag_list_2);
+ // BODY: %block | SCRIPT (but even strict sites expect %flow)
+ return check_flow(childID, strict);
case ID_ADDRESS:
- // ADDRESS: ( _0 | P ) *
- return check_array(childID, tag_list_0) || childID == ID_P;
+ // ADDRESS: %inline *
+ return check_inline(childID, strict) ||
+ (!strict && childID == ID_P);
case ID_DT:
- if ( childID == ID_DL ) return false;
+ // DT: %inline *
+ return check_inline(childID, strict) ||
+ (!strict && check_block(childID, true) && childID != ID_DL);
case ID_LI:
case ID_DIV:
case ID_SPAN:
@@ -651,47 +525,48 @@
case ID_NOSCRIPT:
case ID_CAPTION:
case ID_MARQUEE:
- // DIV: _1 *
- return check_array(childID, tag_list_1);
+ // DIV: %flow *
+ return check_flow(childID, strict);
case ID_MAP:
- // We accept SCRIPT in client-side image maps as an extension to the DTD.
- // MAP: ( _3 + | AREA + | SCRIPT + )
- return check_array(childID, tag_list_3) ||
- childID == ID_AREA ||
- childID == ID_SCRIPT;
+ // MAP: ( %block | AREA ) +
+ return check_block(childID, true) || childID == ID_AREA ||
+ (!strict && childID == ID_SCRIPT);
case ID_OBJECT:
case ID_EMBED:
case ID_APPLET:
- // OBJECT: _4 *
- return check_array(childID, tag_list_4);
+ // OBJECT: %flow | PARAM *
+ return check_flow(childID, true) || childID == ID_PARAM;
case ID_PRE:
case ID_XMP:
case ID_PLAINTEXT:
- // PRE: _0 * - _5
- return check_array(childID, tag_list_1);
+ // PRE: %flow * - _5
+ return check_flow(childID, true);
case ID_DL:
- // DL: _6 +
- return check_array(childID, tag_list_6) || check_array(childID, tag_list_1);
+ // DL: DT | DD +
+ return (childID == ID_DT || childID == ID_DD || childID == ID_TEXT) ||
+ (!strict && check_flow(childID, true));
case ID_OL:
case ID_UL:
// OL: LI +
- return check_array(childID, tag_list_1);
+ return (childID == ID_LI || childID == ID_TEXT) ||
+ (!strict && check_flow(childID, true));
case ID_DIR:
case ID_MENU:
// (DIR|MENU): LI + - _3
if(childID == ID_LI) return true;
return false;
case ID_FORM:
- // FORM: _1 * - FORM
- return check_array(childID, tag_list_1);
+ // FORM: %flow * - FORM
+ return check_flow(childID, strict);
case ID_LABEL:
- // LABEL: _1 * - LABEL
- return check_array(childID, tag_list_1);
+ // LABEL: %inline * - LABEL
+ return check_inline(childID, strict) ||
+ (!strict && check_block(childID, true));
+ case ID_KEYGEN:
// KEYGEN does not really allow any children
// from outside, just need this to be able
// to add the keylengths ourself
// Yes, consider it a hack (Dirk)
- case ID_KEYGEN:
case ID_SELECT:
// SELECT: _7 +
return check_array(childID, tag_list_7);
@@ -708,13 +583,13 @@
if(childID == ID_TEXT) return true;
return false;
case ID_FIELDSET:
- // FIELDSET: ( TEXT , LEGEND , _1 * )
+ // FIELDSET: ( TEXT , LEGEND , %flow * )
if(childID == ID_TEXT) return true;
if(childID == ID_LEGEND) return true;
- return check_array(childID, tag_list_1);
+ return check_flow(childID, strict);
case ID_BUTTON:
- // BUTTON: _1 * - _8
- return check_array(childID, tag_list_1);
+ // BUTTON: %flow * - _8
+ return check_flow(childID, strict);
case ID_TABLE:
// TABLE: ( CAPTION ? , ( COL * | COLGROUP * ) , THEAD ? , TFOOT ? , TBODY + )
switch(childID)
@@ -755,7 +630,6 @@
switch(childID)
{
case ID_HEAD:
- case ID_COMMENT:
case ID_BODY:
case ID_FRAMESET:
case ID_NOFRAMES:
Index: khtml/html/htmlparser.cpp
===================================================================
--- khtml/html/htmlparser.cpp (Revision 552024)
+++ khtml/html/htmlparser.cpp (Revision 552025)
@@ -371,12 +371,11 @@
HTMLElementImpl *e;
bool handled = false;
- // first switch on current element for a elements with optional end-tag
+ // first switch on current element for elements with optional end-tag and inline-only content
switch(current->id())
{
case ID_P:
- case ID_DD:
- case ID_LI:
+ case ID_DT:
if(!n->isInline())
{
popBlock(current->id());
kdelibs-3.5.3-khtml-regression.patch:
htmltokenizer.cpp | 5 +++--
1 files changed, 3 insertions(+), 2 deletions(-)
--- NEW FILE kdelibs-3.5.3-khtml-regression.patch ---
--- kdelibs-3.5.3/khtml/html/htmltokenizer.cpp.orig 2006-06-24 15:12:38.000000000 +0200
+++ kdelibs-3.5.3/khtml/html/htmltokenizer.cpp 2006-06-24 15:14:08.000000000 +0200
@@ -388,9 +388,10 @@
// Scripts following a frameset element should not be executed or even loaded in the case of extern scripts.
bool followingFrameset = (parser->doc()->body() && parser->doc()->body()->id() == ID_FRAMESET);
+ bool effectiveScript = !parser->skipMode() && !followingFrameset;
bool deferredScript = false;
- if ( !parser->skipMode() && !followingFrameset) {
+ if ( effectiveScript ) {
CachedScript* cs = 0;
// forget what we just got, load from src url instead
@@ -419,7 +420,7 @@
script = false;
scriptCodeSize = scriptCodeResync = 0;
- if (parser->skipMode() || followingFrameset)
+ if ( !effectiveScript )
return;
if ( !m_executingScript && cachedScript.isEmpty() ) {
kdelibs-3.5.3.diff:
kcrash.cpp | 7 +++++--
kprocess.cpp | 5 ++++-
2 files changed, 9 insertions(+), 3 deletions(-)
--- NEW FILE kdelibs-3.5.3.diff ---
Patch102: kdelibs-3.5.3.diff
------------------------------------------------------------------------
r549079 | mueller | 2006-06-07 13:18:16 +0200 (Wed, 07 Jun 2006) | 2 lines
add safety checks for set*uid return values
------------------------------------------------------------------------
Index: kdecore/kprocess.cpp
===================================================================
--- kdecore/kprocess.cpp (revision 549078)
+++ kdecore/kprocess.cpp (revision 549079)
@@ -387,7 +387,10 @@ bool KProcess::start(RunMode runmode, Co
if (pw)
initgroups(pw->pw_name, pw->pw_gid);
#endif
- setuid(getuid());
+ if (geteuid() != getuid())
+ setuid(getuid());
+ if (geteuid() != getuid())
+ _exit(1);
}
setupEnvironment();
Index: kdecore/kcrash.cpp
===================================================================
--- kdecore/kcrash.cpp (revision 549078)
+++ kdecore/kcrash.cpp (revision 549079)
com
iapply upstream patches
kdlel .s
pid_t pid = fork();
- apply upstream patches
if (pid <= 0)
{
- setgid(getgid());
- setuid(getuid());
+ if(!geteuid() && setgid(getgid()) < 0)
+ _exit(253);
+ if(!geteuid() && setuid(getuid()) < 0)
+ _exit(253);
execvp("drkonqi", const_cast< char** >( argv ));
+ _exit(errno);
}
else
{ireturn-check
Index: kdelibs.spec
===================================================================
RCS file: /cvs/dist/rpms/kdelibs/FC-5/kdelibs.spec,v
retrieving revision 1.133
retrieving revision 1.134
diff -u -r1.133 -r1.134
--- kdelibs.spec 14 Jun 2006 10:08:35 -0000 1.133
+++ kdelibs.spec 4 Jul 2006 21:56:02 -0000 1.134
@@ -1,4 +1,4 @@
-%define redhatify 1
+%define distname "Fedora-Core"
%define debug 0
%define final 1
@@ -7,7 +7,7 @@
%define arts_epoch 8
%define cups_epoch 1
-%define qt_version 3.3.5
+%define qt_version 3.3.6
%define arts_version 1.5.3
%define kde_major_version 3
@@ -16,22 +16,17 @@
%define make_cvs 0
%define fam 1
%define dnotify 1
-%define pcre 1
-%define alsa 1
-%define pie 1
%define arts 1
-%define disable_gcc_check_and_hidden_visibility 1
-
Version: 3.5.3
-Release: 0.2.fc5
+Release: 0.3.fc5
Summary: K Desktop Environment - Libraries
Name: kdelibs
Url: http://www.kde.org/
Epoch: 6
Group: System Environment/Libraries
License: LGPL
-BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-buildroot
+BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
Source0: ftp://ftp.kde.org/pub/kde/stable/%{version}/src/%{name}-%{version}.tar.bz2
Source1: kde.sh
@@ -56,6 +51,16 @@
# upstream patches
Patch100: kdelibs-3.5.3-konqueror-khtml.patch
+Patch101: kdelibs-3.5.3-khtml-regression.patch
+Patch102: kdelibs-3.5.3.diff
+Patch103: kdelibs-3.5.3-kde#57159.patch
+Patch104: kdelibs-3.5.3-kde#118277.patch
+Patch105: kdelibs-3.5.3-kde#123315.patch
+Patch106: kdelibs-3.5.3-kde#65546.patch
+Patch107: kdelibs-3.5.3-kde#128842.patch
+Patch108: kdelibs-3.5.3-kde#128902.patch
+Patch109: kdelibs-3.5.3-kde#67849.patch
+Patch110: kdelibs-3.5.3-kde#81806.patch
%if %{arts}
Requires: arts >= %{arts_epoch}:%{arts_version}
@@ -63,28 +68,22 @@
Requires: qt >= %{qt_epoch}:%{qt_version}
Requires: cups-libs >= %{cups_epoch}:1.1.12
Requires: iceauth
-
-%if %{redhatify}
Requires: desktop-backgrounds-basic
Requires: redhat-artwork >= 0.239-2
Requires: hicolor-icon-theme
Requires: redhat-menus >= 5.0.4
-%endif
-
-Requires(post,postun): /sbin/ldconfig
-Requires(post,postun): desktop-file-utils
-Requires: fileutils
+Requires(pre): coreutils
+Requires(post): /sbin/ldconfig
+Requires(post): desktop-file-utils
+Requires(postun): /sbin/ldconfig
+Requires(postun): desktop-file-utils
Requires: shadow-utils
-Requires: dev
%if %{fam}
BuildRequires: fam-devel
%endif
-%if %{pcre}
BuildRequires: pcre-devel
-%endif
-
BuildRequires: cups-devel >= %{cups_epoch}:1.1.20
BuildRequires: qt-devel >= %{qt_epoch}:%{qt_version}
BuildRequires: flex >= 2.5.4a-13
@@ -109,14 +108,18 @@
BuildRequires: byacc
BuildRequires: libart_lgpl-devel >= 2.3.8
BuildRequires: bzip2-devel
-BuildRequires: libjpeg-devel
-BuildRequires: libpng-devel
BuildRequires: libtiff-devel
-BuildRequires: pkgconfig
-BuildRequires: autoconf automake
+BuildRequires: autoconf
+BuildRequires: automake
BuildRequires: libacl-devel
BuildRequires: libattr-devel
BuildRequires: aspell-devel
+BuildRequires: krb5-devel
+BuildRequires: openldap-devel
+BuildRequires: db4-devel
+BuildRequires: alsa-lib-devel
+BuildRequires: pkgconfig
+
Obsoletes: %{name}2
Obsoletes: kdesupport
Obsoletes: kdoc
@@ -148,9 +151,8 @@
%if %{fam}
Requires: fam-devel
%endif
-%if %{pcre}
Requires: pcre-devel
-%endif
+
Obsoletes: kdesupport-devel
%description devel
@@ -161,7 +163,7 @@
Group: Development/Documentation
Summary: KDE API documentation.
Requires: %{name} = %{epoch}:%{version}-%{release}
-Obsoletes: kdelibs-docs
+Obsoletes: kdelibs-docs < %{epoch}:%{version}-%{release}
%description apidocs
This package includes the KDE API documentation in HTML
@@ -190,54 +192,31 @@
# upstream patches
%patch100 -p1 -b .konqueror-khtml
+%patch101 -p1 -b .khtml-regression
+%patch102 -p0 -b .return-check
+%patch103 -p0 -b .kde#57159
+%patch104 -p0 -b .kde#118277
+%patch105 -p0 -b .kde#123315
+%patch106 -p0 -b .kde#65546
+%patch107 -p0 -b .kde#128842
+%patch108 -p0 -b .kde#128902
+%patch109 -p0 -b .kde#67849
+%patch110 -p0 -b .kde#81806
-# add redhat into KDE_VERSION_STRING
-%if %{redhatify}
- perl -pi -e "s,^#define KDE_VERSION_STRING .*,#define KDE_VERSION_STRING \"%{version}-%{release} Red Hat\"," kdecore/kdeversion.h
-%endif
+perl -pi -e "s,^#define KDE_VERSION_STRING .*,#define KDE_VERSION_STRING \"%{version}-%{release} %{distname}\"," kdecore/kdeversion.h
%build
-export QTDOC=%{qtdocdir}
unset QTDIR && . /etc/profile.d/qt.sh
+
+export QTDOC=%{qtdocdir}
export libltdl_cv_shlibext=".so"
+export PATH=/usr/kerberos/bin:${PATH}
%if %{make_cvs}
make -f admin/Makefile.common cvs
%endif
-# set some default FLAGS
-FLAGS="$RPM_OPT_FLAGS"
-
-%if %{debug}
- FLAGS="-O0"
-%endif
-
-# workaround for compiler bug on ia64, will be removed later
-%ifarch ia64
-export CFLAGS="$RPM_OPT_FLAGS -O0"
-export CXXFLAGS="$RPM_OPT_FLAGS -O0"
-%endif
-
-export CXXFLAGS="$FLAGS"
-export CFLAGS="$FLAGS"
-export QTLIB=$QTDIR/lib
-
-if pkg-config openssl ; then
- export CFLAGS="$CFLAGS `pkg-config --cflags openssl`"
- export CXXFLAGS="$CXXFLAGS `pkg-config --cflags openssl`"
- export CPPFLAGS="$CPPFLAGS `pkg-config --cflags-only-I openssl`"
- export LDFLAGS="$LDFLAGS `pkg-config --libs-only-L openssl`"
-fi
-
-# Check which version/distribution we are...
-%if %{redhatify}
- VERSION=`cat /etc/redhat-release 2>/dev/null |awk '{ print $5; }'`
- if [ -z "$VERSION" -o -z "echo $VERSION |sed -e 's,[0-9]*,,g;s,\.,,g'" ]; then
- VERSION="A Red Hat Linux-based distribution"
- else
- VERSION="Red Hat Linux $VERSION"
- fi
-%endif
+VERSION=`cat /etc/redhat-release 2>/dev/null`
suffix=""
if [ "%{_lib}" == "lib64" ] ; then
@@ -252,21 +231,13 @@
--enable-cups \
--enable-mitshm \
--with-xinerama \
-%if %{disable_gcc_check_and_hidden_visibility}
--disable-gcc-hidden-visibility \
-%endif
-%if %{pie}
--enable-pie \
-%endif
%if %{arts} == 0
--without-arts \
%endif
-%if %{redhatify}
--with-distribution="$VERSION" \
-%endif
-%if %{alsa}
--with-alsa \
-%endif
--includedir=%{_includedir}/kde \
%if %{debug} == 0
--disable-debug \
@@ -281,9 +252,6 @@
%if %{dnotify}
--enable-dnotify \
%endif
-%if %{pcre} == 0
- --disable-pcre \
-%endif
--disable-rpath \
--with-rgbfile=%{_datadir}/X11/rgb.txt
@@ -297,22 +265,22 @@
make apidox
%install
-rm -rf $RPM_BUILD_ROOT
+rm -rf %{buildroot}
-make DESTDIR=$RPM_BUILD_ROOT install
+make DESTDIR=%{buildroot} install
-chmod a+x $RPM_BUILD_ROOT%{_libdir}/*
-install -m 644 %{SOURCE3} $RPM_BUILD_ROOT%{_datadir}/services/
+chmod a+x %{buildroot}%{_libdir}/*
+install -m 644 %{SOURCE3} %{buildroot}%{_datadir}/services/
-pushd $RPM_BUILD_ROOT%{_docdir}
+pushd %{buildroot}%{_docdir}
ln -sf HTML/en/kdelibs-apidocs %{name}-devel-%{kde_major_version}
popd
-mkdir -p $RPM_BUILD_ROOT/etc/profile.d
-install -m 755 %{SOURCE1} %{SOURCE2} $RPM_BUILD_ROOT/etc/profile.d/
+mkdir -p %{buildroot}%{_sysconfdir}/profile.d
+install -m 755 %{SOURCE1} %{SOURCE2} %{buildroot}%{_sysconfdir}/profile.d/
# Make symlinks relative
-pushd $RPM_BUILD_ROOT%{_docdir}/HTML/en
+pushd %{buildroot}%{_docdir}/HTML/en
for i in *; do
if [ -d $i -a -L $i/common ]; then
rm -f $i/common
@@ -321,17 +289,16 @@
done
popd
-%if %{redhatify}
- pushd $RPM_BUILD_ROOT/etc/xdg/menus/
- mv applications.menu kde-applications.menu
- ln -s applications-merged kde-applications-merged
- popd
- echo "OnlyShowIn=KDE;" >> $RPM_BUILD_ROOT%{_datadir}/applications/kde/kresources.desktop
- rm -f $RPM_BUILD_ROOT%{_datadir}/icons/hicolor/index.theme
-%endif
+mkdir -p %{buildroot}%{_sysconfdir}/xdg.d/kde/menus
+pushd %{buildroot}%{_sysconfdir}/xdg/menus/
+ mv applications.menu %{buildroot}%{_sysconfdir}/xdg.d/kde/menus
+ ln -s applications-merged kde-applications-merged
+popd
+echo "OnlyShowIn=KDE;" >> %{buildroot}%{_datadir}/applications/kde/kresources.desktop
+rm -f %{buildroot}%{_datadir}/icons/hicolor/index.theme
%clean
-rm -rf $RPM_BUILD_ROOT
+rm -rf %{buildroot}
%pre
if [ -d /etc/skel/Desktop/Autostart ]; then
@@ -345,7 +312,7 @@
/sbin/ldconfig
touch --no-create %{_datadir}/icons/crystalsvg || :
if [ -x %{_bindir}/gtk-update-icon-cache ]; then
- %{_bindir}/gtk-update-icon-cache --quiet %{_datadir}/icons/crystalsvg || :
+ %{_bindir}/gtk-update-icon-cache --quiet %{_datadir}/icons/crystalsvg 2> /dev/null || :
fi
%{_bindir}/update-desktop-database > /dev/null 2>&1 || :
@@ -353,19 +320,78 @@
/sbin/ldconfig
touch --no-create %{_datadir}/icons/crystalsvg || :
if [ -x %{_bindir}/gtk-update-icon-cache ]; then
- %{_bindir}/gtk-update-icon-cache --quiet %{_datadir}/icons/crystalsvg || :
+ %{_bindir}/gtk-update-icon-cache --quiet %{_datadir}/icons/crystalsvg 2> /dev/null || :
fi
%{_bindir}/update-desktop-database > /dev/null 2>&1 || :
%files
%defattr(-,root,root)
-/etc/profile.d/*
-/etc/xdg/menus/*
-%{_bindir}/*
+%dir %{_sysconfdir}/xdg.d
+%dir %{_sysconfdir}/xdg.d/kde
+%dir %{_sysconfdir}/xdg.d/kde/menus
+%config(noreplace) %{_sysconfdir}/profile.d/*
+%{_sysconfdir}/xdg/menus/*
+%{_sysconfdir}/xdg.d/kde/menus/*
+%{_bindir}/artsmessage
+%{_bindir}/checkXML
+%{_bindir}/cupsdconf
+%{_bindir}/cupsdoprint
+%{_bindir}/dcop
+%{_bindir}/dcopclient
+%{_bindir}/dcopfind
+%{_bindir}/dcopobject
+%{_bindir}/dcopquit
+%{_bindir}/dcopref
+%{_bindir}/dcopserver
+%{_bindir}/dcopserver_shutdown
+%{_bindir}/dcopstart
+%{_bindir}/filesharelist
+%{_bindir}/fileshareset
+%{_bindir}/imagetops
+%{_bindir}/kab2kabc
+%{_bindir}/kaddprinterwizard
+%{_bindir}/kbuildsycoca
+%{_bindir}/kcmshell
+%{_bindir}/kconf_update
+%{_bindir}/kconfig_compiler
+%{_bindir}/kcookiejar
+%{_bindir}/kde-config
+%{_bindir}/kde-menu
+%{_bindir}/kded
+%{_bindir}/kdeinit
+%{_bindir}/kdeinit_shutdown
+%{_bindir}/kdeinit_wrapper
+%{_bindir}/kdesu_stub
+%{_bindir}/kdontchangethehostname
+%{_bindir}/kdostartupconfig
+%{_bindir}/kfile
+%{_bindir}/kfmexec
+%{_bindir}/khotnewstuff
+%{_bindir}/kinstalltheme
+%{_bindir}/kio_http_cache_cleaner
+%{_bindir}/kio_uiserver
+%{_bindir}/kioexec
+%{_bindir}/kioslave
+%{_bindir}/klauncher
+%{_bindir}/kmailservice
+%{_bindir}/ksendbugmail
+%{_bindir}/kshell
+%{_bindir}/kstartupconfig
+%{_bindir}/ksvgtopng
+%{_bindir}/ktelnetservice
+%{_bindir}/ktradertest
+%{_bindir}/kunittestmodrunner
+%{_bindir}/kwrapper
+%{_bindir}/lnusertemp
+%{_bindir}/make_driver_db_cups
+%{_bindir}/make_driver_db_lpr
+%{_bindir}/makekdewidgets
+%{_bindir}/meinproc
+%{_bindir}/preparetips
%attr(4755,root,root) %{_bindir}/kpac_dhcp_helper
%attr(4755,root,root) %{_bindir}/kgrantpty
-%exclude %{_bindir}/dcopidl*
-%{_libdir}/lib*
+%{_libdir}/lib*.so*
+%{_libdir}/lib*.la
%{_libdir}/kde3
%{_datadir}/applications
%{_datadir}/apps
@@ -388,6 +414,7 @@
%defattr(-,root,root)
%{_bindir}/dcopidl*
%{_includedir}/kde
+%{_libdir}/lib*.a
%files apidocs
%defattr(-,root,root)
@@ -395,6 +422,12 @@
%doc %{_docdir}/HTML/en/kdelibs*
%changelog
+* Tue Jul 04 2006 Than Ngo <than at redhat.com> 6:3.5.3-0.3.fc5
+- apply upstream patches,
+ fix #128940/#81806/#57159/#118277/#123315/#65546/#128842/#128902/#67849/#81806
+- fix #196013, mark kde.sh/kde.csh as config file
+- fix #178323 #196225, typo in kde.sh
+
* Wed Jun 14 2006 Than Ngo <than at redhat.com> 6:3.5.3-0.2.fc5
- apply patch to fix crash in konqueror
More information about the fedora-cvs-commits
mailing list