Summary: | Evolution 1.4.5 filters die from filtertypes.xml parse error | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | Austin Theen <austin> |
Component: | [OLD] GNOME | Assignee: | Gentoo Linux Gnome Desktop Team <gnome> |
Status: | RESOLVED WORKSFORME | ||
Severity: | major | ||
Priority: | High | ||
Version: | unspecified | ||
Hardware: | x86 | ||
OS: | Linux | ||
URL: | http://austintheen.com/bugs/evo-bug.png | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- |
Description
Austin Theen
2003-10-17 12:29:47 UTC
austin@bender austin $ evolution --debug=evolution-debug austin@bender austin $ cat evolution-debug /usr/share/evolution/1.4/vfoldertypes.xml:213: error: Entity 'lt' not defined (match-all (< (get-sent-date) ${versus})) ^ /usr/share/evolution/1.4/vfoldertypes.xml:244: error: Entity 'lt' not defined (match-all (< (get-received-date) ${versus})) ^ /usr/share/evolution/1.4/vfoldertypes.xml:300: error: Entity 'lt' not defined (match-all (< (cast-int (user-tag "score")) ${versus})) ^ /usr/share/evolution/1.4/vfoldertypes.xml:319: error: Entity 'lt' not defined (match-all (< (get-size) ${versus})) ^ (evolution:16451): evolution-mail-WARNING **: cannot load vfolders: Unable to load system rules '/usr/share/evolution/1.4/vfoldertypes.xml': Success /usr/share/evolution/1.4/vfoldertypes.xml:213: error: Entity 'lt' not defined (match-all (< (get-sent-date) ${versus})) ^ /usr/share/evolution/1.4/vfoldertypes.xml:244: error: Entity 'lt' not defined (match-all (< (get-received-date) ${versus})) ^ /usr/share/evolution/1.4/vfoldertypes.xml:300: error: Entity 'lt' not defined (match-all (< (cast-int (user-tag "score")) ${versus})) ^ /usr/share/evolution/1.4/vfoldertypes.xml:319: error: Entity 'lt' not defined (match-all (< (get-size) ${versus})) ^ /usr/share/evolution/1.4/filtertypes.xml:342: error: Entity 'lt' not defined (match-all (< (get-sent-date) ${versus})) ^ /usr/share/evolution/1.4/filtertypes.xml:373: error: Entity 'lt' not defined (match-all (< (get-received-date) ${versus})) ^ /usr/share/evolution/1.4/filtertypes.xml:429: error: Entity 'lt' not defined (match-all (< (cast-int (user-tag "score")) ${versus})) ^ /usr/share/evolution/1.4/filtertypes.xml:448: error: Entity 'lt' not defined (match-all (< (get-size) ${versus})) ^ /usr/share/evolution/1.4/filtertypes.xml:609: error: Entity 'lt' not defined (match-all (< (pipe-message "/bin/sh" "-c" ${command}) ${retval})) ^ /usr/share/evolution/1.4/filtertypes.xml:342: error: Entity 'lt' not defined (match-all (< (get-sent-date) ${versus})) ^ /usr/share/evolution/1.4/filtertypes.xml:373: error: Entity 'lt' not defined (match-all (< (get-received-date) ${versus})) ^ /usr/share/evolution/1.4/filtertypes.xml:429: error: Entity 'lt' not defined (match-all (< (cast-int (user-tag "score")) ${versus})) ^ /usr/share/evolution/1.4/filtertypes.xml:448: error: Entity 'lt' not defined (match-all (< (get-size) ${versus})) ^ /usr/share/evolution/1.4/filtertypes.xml:609: error: Entity 'lt' not defined (match-all (< (pipe-message "/bin/sh" "-c" ${command}) ${retval})) ^ /usr/share/evolution/1.4/filtertypes.xml:342: error: Entity 'lt' not defined (match-all (< (get-sent-date) ${versus})) ^ /usr/share/evolution/1.4/filtertypes.xml:373: error: Entity 'lt' not defined (match-all (< (get-received-date) ${versus})) ^ /usr/share/evolution/1.4/filtertypes.xml:429: error: Entity 'lt' not defined (match-all (< (cast-int (user-tag "score")) ${versus})) ^ /usr/share/evolution/1.4/filtertypes.xml:448: error: Entity 'lt' not defined (match-all (< (get-size) ${versus})) ^ /usr/share/evolution/1.4/filtertypes.xml:609: error: Entity 'lt' not defined (match-all (< (pipe-message "/bin/sh" "-c" ${command}) ${retval})) ^ %egrep -nC1 "<|>" /usr/share/evolution/1.4/filtertypes.xml 341- <code> 342: (match-all (< (get-sent-date) ${versus})) 343- </code> -- 347- <code> 348: (match-all (> (get-sent-date) ${versus})) 349- </code> -- 372- <code> 373: (match-all (< (get-received-date) ${versus})) 374- </code> -- 378- <code> 379: (match-all (> (get-received-date) ${versus})) 380- </code> -- 422- <code> 423: (match-all (> (cast-int (user-tag "score")) ${versus})) 424- </code> -- 428- <code> 429: (match-all (< (cast-int (user-tag "score")) ${versus})) 430- </code> -- 441- <code> 442: (match-all (> (get-size) ${versus})) 443- </code> -- 447- <code> 448: (match-all (< (get-size) ${versus})) 449- </code> -- 602- <code> 603: (match-all (> (pipe-message "/bin/sh" "-c" ${command}) ${retval})) 604- </code> -- 608- <code> 609: (match-all (< (pipe-message "/bin/sh" "-c" ${command}) ${retval})) 610- </code> can you attach the filtertypes.xml? xmllint runs fine on the one i've got installed. This is the installed copy of filtertypes.xml from the emerge evolution which gives me the error msg. ---/usr/share/evolution/1.4/filtertypes.xml--- <?xml version="1.0"?> <filterdescription> <partset> <part name="sender"> <title>Sender</title> <input type="optionlist" name="sender-type"> <option value="contains"> <title>contains</title> <code> (match-all (header-contains "From" ${sender})) </code> </option> <option value="not contains"> <title>does not contain</title> <code> (match-all (not (header-contains "From" ${sender}))) </code> </option> <option value="is"> <title>is</title> <code> (match-all (header-matches "From" ${sender})) </code> </option> <option value="is not"> <title>is not</title> <code> (match-all (not (header-matches "From" ${sender}))) </code> </option> <option value="starts with"> <title>starts with</title> <code> (match-all (header-starts-with "From" ${sender})) </code> </option> <option value="not starts with"> <title>does not start with</title> <code> (match-all (not (header-starts-with "From" ${sender}))) </code> </option> <option value="ends with"> <title>ends with</title> <code> (match-all (header-ends-with "From" ${sender})) </code> </option> <option value="not ends with"> <title>does not end with</title> <code> (match-all (not (header-ends-with "From" ${sender}))) </code> </option> <option value="matches soundex"> <title>sounds like</title> <code> (match-all (header-soundex "From" ${sender})) </code> </option> <option value="not match soundex"> <title>does not sound like</title> <code> (match-all (not (header-soundex "From" ${sender}))) </code> </option> </input> <input type="string" name="sender"/> </part> <part name="to"> <title>Recipients</title> <input type="optionlist" name="recipient-type"> <option value="contains"> <title>contains</title> <code> (match-all (or (header-contains "To" ${recipient}) (header-contains "Cc" ${recipient}))) </code> </option> <option value="not contains"> <title>does not contain</title> <code> (match-all (not (or (header-contains "To" ${recipient}) (header-contains "Cc" ${recipient})))) </code> </option> <option value="is"> <title>is</title> <code> (match-all (or (header-matches "To" ${recipient}) (header-matches "Cc" ${recipient}))) </code> </option> <option value="is not"> <title>is not</title> <code> (match-all (not (or (header-matches "To" ${recipient}) (header-matches "Cc" ${recipient})))) </code> </option> <option value="starts with"> <title>starts with</title> <code> (match-all (or (header-starts-with "To" ${recipient}) (header-starts-with "Cc" ${recipient}))) </code> </option> <option value="not starts with"> <title>does not start with</title> <code> (match-all (not (or (header-starts-with "To" ${recipient}) (header-starts-with "Cc" ${recipient})))) </code> </option> <option value="ends with"> <title>ends with</title> <code> (match-all (or (header-ends-with "To" ${recipient}) (header-ends-with "Cc" ${recipient}))) </code> </option> <option value="not ends with"> <title>does not end with</title> <code> (match-all (not (or (header-ends-with "To" ${recipient}) (header-ends-with "Cc" ${recipient})))) </code> </option> <option value="matches soundex"> <title>sounds like</title> <code> (match-all (or (header-soundex "To" ${recipient}) (header-soundex "Cc" ${recipient}))) </code> </option> <option value="not match soundex"> <title>does not sound like</title> <code> (match-all (not (or (header-soundex "To" ${recipient}) (header-soundex "Cc" ${recipient})))) </code> </option> </input> <input type="address" name="recipient"/> </part> <part name="subject"> <title>Subject</title> <input type="optionlist" name="subject-type"> <option value="contains"> <title>contains</title> <code> (match-all (header-contains "Subject" ${subject})) </code> </option> <option value="not contains"> <title>does not contain</title> <code> (match-all (not (header-contains "Subject" ${subject}))) </code> </option> <option value="is"> <title>is</title> <code> (match-all (header-matches "Subject" ${subject})) </code> </option> <option value="is not"> <title>is not</title> <code> (match-all (not (header-matches "Subject" ${subject}))) </code> </option> <option value="starts with"> <title>starts with</title> <code> (match-all (header-starts-with "Subject" ${subject})) </code> </option> <option value="not starts with"> <title>does not start with</title> <code> (match-all (not (header-starts-with "Subject" ${subject}))) </code> </option> <option value="ends with"> <title>ends with</title> <code> (match-all (header-ends-with "Subject" ${subject})) </code> </option> <option value="not ends with"> <title>does not end with</title> <code> (match-all (not (header-ends-with "Subject" ${subject}))) </code> </option> <option value="matches soundex"> <title>sounds like</title> <code> (match-all (header-soundex "Subject" ${subject})) </code> </option> <option value="not match soundex"> <title>does not sound like</title> <code> (match-all (not (header-soundex "Subject" ${subject}))) </code> </option> </input> <input type="string" name="subject"/> </part> <part name="header"> <title>Specific header</title> <input type="string" name="header-field"/> <input type="optionlist" name="header-type"> <option value="contains"> <title>contains</title> <code> (match-all (header-contains ${header-field} ${word})) </code> </option> <option value="not contains"> <title>does not contain</title> <code> (match-all (not (header-contains ${header-field} ${word}))) </code> </option> <option value="is"> <title>is</title> <code> (match-all (header-matches ${header-field} ${word})) </code> </option> <option value="is not"> <title>is not</title> <code> (match-all (not (header-matches ${header-field} ${word}))) </code> </option> <option value="starts with"> <title>starts with</title> <code> (match-all (header-starts-with ${header-field} ${word})) </code> </option> <option value="not starts with"> <title>does not start with</title> <code> (match-all (not (header-starts-with ${header-field} ${word}))) </code> </option> <option value="ends with"> <title>ends with</title> <code> (match-all (header-ends-with ${header-field} ${word})) </code> </option> <option value="not ends with"> <title>does not end with</title> <code> (match-all (not (header-ends-with ${header-field} ${word}))) </code> </option> <option value="exists"> <title>exists</title> <code> (match-all (header-exists ${header-field})) </code> </option> <option value="not exists"> <title>does not exist</title> <code> (match-all (not (header-exists ${header-field}))) </code> </option> <option value="matches soundex"> <title>sounds like</title> <code> (match-all (header-soundex ${header-field} ${word})) </code> </option> <option value="not match soundex"> <title>does not sound like</title> <code> (match-all (not (header-soundex ${header-field} ${word}))) </code> </option> </input> <input type="string" name="word"/> </part> <part name="body"> <title>Message Body</title> <input type="optionlist" name="body-type"> <option value="contains"> <title>contains</title> <code> (body-contains ${word}) </code> </option> <option value="not contains"> <title>does not contain</title> <code> (match-all (not (body-contains ${word}))) </code> </option> </input> <input type="string" name="word"/> </part> <part name="sexp"> <title>Expression</title> <input type="code" name="code"/> </part> <part name="sent-date"> <title>Date sent</title> <input type="optionlist" name="date-spec-type"> <option value="is"> <title>is</title> <code> (match-all (= (get-sent-date) ${versus})) </code> </option> <option value="is-not"> <title>is not</title> <code> (match-all (not (= (get-sent-date) ${versus}))) </code> </option> <option value="before"> <title>is before</title> <code> (match-all (< (get-sent-date) ${versus})) </code> </option> <option value="after"> <title>is after</title> <code> (match-all (> (get-sent-date) ${versus})) </code> </option> </input> <input type="datespec" name="versus"/> </part> <part name="recv-date"> <title>Date received</title> <input type="optionlist" name="date-spec-type"> <option value="is"> <title>is</title> <code> (match-all (= (get-received-date) ${versus})) </code> </option> <option value="is-not"> <title>is not</title> <code> (match-all (not (= (get-received-date) ${versus}))) </code> </option> <option value="before"> <title>is before</title> <code> (match-all (< (get-received-date) ${versus})) </code> </option> <option value="after"> <title>is after</title> <code> (match-all (> (get-received-date) ${versus})) </code> </option> </input> <input type="datespec" name="versus"/> </part> <part name="label"> <title>Label</title> <input type="optionlist" name="label-type"> <option value="is"> <title>is</title> <code> (match-all (= (user-tag "label") ${versus})) </code> </option> <option value="is-not"> <title>is not</title> <code> (match-all (not (= (user-tag "label") ${versus}))) </code> </option> </input> <input type="label" name="versus"/> </part> <part name="score"> <title>Score</title> <input type="optionlist" name="score-type"> <option value="is"> <title>is</title> <code> (match-all (= (cast-int (user-tag "score")) ${versus})) </code> </option> <option value="is-not"> <title>is not</title> <code> (match-all (not (= (cast-int (user-tag "score")) ${versus}))) </code> </option> <option value="greater-than"> <title>is greater than</title> <code> (match-all (> (cast-int (user-tag "score")) ${versus})) </code> </option> <option value="less-than"> <title>is less than</title> <code> (match-all (< (cast-int (user-tag "score")) ${versus})) </code> </option> </input> <input type="score" name="versus"/> </part> <part name="size"> <title>Size (kB)</title> <input type="optionlist" name="size-type"> <option value="greater-than"> <title>is greater than</title> <code> (match-all (> (get-size) ${versus})) </code> </option> <option value="less-than"> <title>is less than</title> <code> (match-all (< (get-size) ${versus})) </code> </option> </input> <input type="integer" name="versus"/> </part> <part name="status"> <title>Status</title> <input type="optionlist" name="match-type"> <option value="is"> <title>is</title> <code> (match-all (system-flag ${flag})) </code> </option> <option value="is not"> <title>is not</title> <code> (match-all (not (system-flag ${flag}))) </code> </option> </input> <input type="optionlist" name="flag"> <option value="Answered"> <title>Replied to</title> </option> <option value="Draft"> <title>Draft</title> </option> <option value="Flagged"> <title>Important</title> </option> <option value="Seen"> <title>Read</title> </option> </input> </part> <part name="follow-up"> <title>Follow Up</title> <input type="optionlist" name="match-type"> <option value="is"> <title>is Flagged</title> <code> (match-all (not (= (user-tag "follow-up") ""))) </code> </option> <option value="is not"> <title>is not Flagged</title> <code> (match-all (= (user-tag "follow-up") "")) </code> </option> </input> </part> <part name="attachments"> <title>Attachments</title> <input type="optionlist" name="match-type"> <option value="exist"> <title>Exist</title> <code> (match-all (system-flag "Attachments")) </code> </option> <option value="not exist"> <title>Do Not Exist</title> <code> (match-all (not (system-flag "Attachments"))) </code> </option> </input> </part> <part name="mlist"> <title>Mailing list</title> <input type="optionlist" name="mlist-type"> <option value="is"> <title>is</title> <code>(match-all (header-matches "x-camel-mlist" ${mlist}))</code> </option> <option value="is not"> <title>is not</title> <code>(match-all (not (header-matches "x-camel-mlist" ${mlist})))</code> </option> <option value="contains"> <title>contains</title> <code>(match-all (header-contains "x-camel-mlist" ${mlist}))</code> </option> <option value="not contains"> <title>does not contain</title> <code>(match-all (not (header-contains "x-camel-mlist" ${mlist})))</code> </option> </input> <input type="string" name="mlist"/> </part> <part name="regex"> <title>Regex Match</title> <input type="optionlist" name="match-type"> <option value="header"> <title>Message Header</title> <code> (match-all (header-full-regex ${expression})) </code> </option> <option value="body"> <title>Message Body</title> <code> (match-all (body-regex ${expression})) </code> </option> </input> <input type="regex" name="expression"/> </part> <part name="source"> <title>Source Account</title> <input type="optionlist" name="srcmatch-type"> <option value="is"> <title>is</title> <code> (match-all (header-source ${source})) </code> </option> <option value="is-not"> <title>is not</title> <code> (match-all (not (header-source ${source}))) </code> </option> </input> <input type="source" name="source"/> </part> <part name="pipe"> <title>Pipe Message to Shell Command</title> <input type="command" name="command"/> <input type="optionlist" name="retval-type"> <option value="is"> <title>returns</title> <code> (match-all (= (pipe-message "/bin/sh" "-c" ${command}) ${retval})) </code> </option> <option value="is-not"> <title>does not return</title> <code> (match-all (not (= (pipe-message "/bin/sh" "-c" ${command}) ${retval}))) </code> </option> <option value="greater-than"> <title>returns greater than</title> <code> (match-all (> (pipe-message "/bin/sh" "-c" ${command}) ${retval})) </code> </option> <option value="less-than"> <title>returns less than</title> <code> (match-all (< (pipe-message "/bin/sh" "-c" ${command}) ${retval})) </code> </option> </input> <input type="integer" name="retval"/> </part> </partset> <actionset> <part name="move-to-folder"> <title>Move to Folder</title> <code>(move-to ${folder})</code> <input type="folder" name="folder"/> </part> <part name="copy-to-folder"> <title>Copy to Folder</title> <code>(copy-to ${folder})</code> <input type="folder" name="folder"/> </part> <part name="delete"> <title>Delete</title> <code>(delete)</code> </part> <part name="stop"> <title>Stop Processing</title> <code>(stop)</code> </part> <part name="colour"> <title>Assign Color</title> <code>(set-colour ${colour})</code> <input type="colour" name="colour"/> </part> <part name="score"> <title>Assign Score</title> <code>(set-score ${score})</code> <input type="score" name="score"/> </part> <part name="adj-score"> <title>Adjust Score</title> <code>(adjust-score ${score})</code> <input type="score" name="score"/> </part> <part name="set-status"> <title>Set Status</title> <code> (set-system-flag ${flag}) </code> <input type="optionlist" name="flag"> <option value="Answered"> <title>Replied to</title> </option> <option value="Deleted"> <title>Deleted</title> </option> <option value="Draft"> <title>Draft</title> </option> <option value="Flagged"> <title>Important</title> </option> <option value="Seen"> <title>Read</title> </option> </input> </part> <part name="unset-status"> <title>Unset Status</title> <code> (unset-system-flag ${flag}) </code> <input type="optionlist" name="flag"> <option value="Answered"> <title>Replied to</title> </option> <option value="Deleted"> <title>Deleted</title> </option> <option value="Draft"> <title>Draft</title> </option> <option value="Flagged"> <title>Important</title> </option> <option value="Seen"> <title>Read</title> </option> </input> </part> <part name="beep"> <title>Beep</title> <code>(beep)</code> </part> <part name="play-sound"> <title>Play Sound</title> <code>(play-sound ${sound})</code> <input type="file" name="sound"/> </part> <part name="shell"> <title>Shell Command</title> <code>(shell "/bin/sh" "-c" ${command})</code> <input type="command" name="command"/> </part> <part name="pipe"> <title>Pipe Message to Shell Command</title> <code>(pipe-message "/bin/sh" "-c" ${command})</code> <input type="command" name="command"/> </part> </actionset> </filterdescription> I just ran xmllint on /usr/share/evolution/1.4/filtertypes.xml and it returns ok. but evolution still gives the same error "Unable to load system rules '/usr/share/evolution/1.4/filtertypes.xml': Success" It's the success part that throws me. Did it succeed in loading with errors, or did it fail loading because of errors. ?? reemerge evolution 1.4.5 with the following emerge info and it works now. Don't know why just yet. I just happened to try compiling under 2.6 with distcc disabled and the new gcc and glibc. so I'm happy. Portage 2.0.49-r13-2 (default-x86-1.4, gcc-3.3.1, glibc-2.3.2-r6, 2.6.0-test6-mm4) ================================================================= System uname: 2.6.0-test6-mm4 i686 AMD Athlon(tm) MP 1600+ Gentoo Base System version 1.4.3.11 distcc 2.11.1 i686-pc-linux-gnu (protocols 1 and 2) (default port 3632) [disabled] ACCEPT_KEYWORDS="x86 ~x86" AUTOCLEAN="yes" CFLAGS="-O3 -march=athlon-mp -funroll-loops -fprefetch-loop-arrays -pipe" CHOST="i686-pc-linux-gnu" COMPILER="gcc3" CONFIG_PROTECT="/etc /var/qmail/control /usr/kde/2/share/config /usr/kde/3/share/config /var/bind /usr/X11R6/lib/X11/xkb /usr/kde/3.1/share/config /usr/share/config" CONFIG_PROTECT_MASK="/etc/gconf /etc/env.d" CXXFLAGS="-O3 -march=athlon-mp -funroll-loops -fprefetch-loop-arrays -pipe" DISTDIR="/usr/portage/distfiles" FEATURES="ccache buildpkg sandbox userpriv usersandbox fixpackages digest cvs autoaddcvs" GENTOO_MIRRORS="ftp://gentoo.mirrors.pair.com/ http://gentoo.mirrors.pair.com/ http://adelie.polymtl.ca/ ftp://mirrors.tds.net/gentoo http://gentoo.seren.com/gentoo ftp://ftp.ussg.iu.edu/pub/linux/gentoo ftp://gentoo.ccccom.com http://gentoo.noved.org/ http://www.ibiblio.org/gentoo ftp://gentoo.linux.no/pub/gentoo/" MAKEOPTS="-j3" PKGDIR="/usr/portage/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="" SYNC="rsync://rsync.gentoo.org/gentoo-portage" USE="x86 apm avi crypt cups encode foomaticdb gif jpeg libg++ mad mikmod mpeg ncurses nls pdflib png quicktime spell truetype xml2 xmms xv zlib gtkhtml alsa gdbm berkdb slang readline bonobo svga tcltk java guile mysql X sdl gpm tcpd pam libwww ssl perl python esd imlib oggvorbis gnome gtk qt opengl mozilla gphoto2 cdr scanner 3dnow acpi acpi4linux apache2 autofs curl dv dvd ethereal evms2 evo fastcgi ffmpeg gb gd gd-external gnomedb gstreamer gtk2 imagemagick imap ipalias lmtp ltsp maildir mbox md5sum mdb memlimit nowin oav offensive pda php pnp prelude samba sasl src sse threads transcode X509 xfs xine xvid -oss -arts -kde -motif" as I just posted, it works for me now, after some serious massaging. Now if I can just figure out how I fixed it, i'll post it here. ;) |