You are not logged in.
Anjal is an email client designed for netbooks, although it looks like it could be nice even if you don't use a netbook. It's the only email client I have seen that implements gmail-style (conversation) threading, which is slightly different than the "normal" threading that exists in most clients. Instead of showing a tree of all the replies in each thread, there is only one listing for each thread with an indicator showing the number of replies it has. When you view a thread you see all the replies at once organized like an instant messaging conversation.
Screenshots/Features: http://blogs.gnome.org/sragavan/2009/05 … n-updates/
The problem is that it needs a patched evolution, evolution-data-server, and webkit to compile. I tried patching evolution myself but I couldn't get the patch to apply cleanly to the current evolution in abs.
All the patches are in the anjal git repo @ git://git.gnome.org/anjal
See http://live.gnome.org/Anjal/Installation for additional information.
Many thanks if you decide to help out!
Offline
Hi!!! I second this request. I'm a netbook user and i love Arch. I've tested Anjal working on Moblin and its really great, easy to use, simple and fast...
http://archlinux.me/aymara/ ----> Newbie forever... ¬¬
Offline
requires evolution 2.27.5. here is a draft to use those who are using gnome-unstable repo. i can't continue from this point as gnome-unstable doesn't have x86_64 packages. maybe later i will set up a chroot
pkgname=anjal-git
_pkgname=anjal
pkgver=20090909
pkgrel=1
pkgdesc="Anjal is a new mail UI created on top of Evolution."
arch=('i686' 'x86_64')
url="http://live.gnome.org/Anjal"
license=('GPL2')
depends=('evolution' 'libwebkit')
makedepends=('git' 'intltool')
options=('!libtool')
source=()
md5sum=()
_gitroot=git://git.gnome.org/anjal
_gitname=anjal
build() {
# Build and install
cd $srcdir
if [ -d ${_gitname} ]; then
cd ${_gitname} && git pull origin
msg "The local files are updated."
else
git clone ${_gitroot}
fi
msg "GIT checkout done or server timeout"
msg "Starting make..."
rm -rf "$srcdir/$_gitname-build"
git clone "$srcdir/$_gitname" "$srcdir/$_gitname-build"
cd "$srcdir/$_gitname-build"
./autogen.sh --prefix=/usr --sysconfdir=/etc
# make || return 1
# make GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1 DESTDIR=$pkgdir install || return 1
# Merge schemas file in a single file and remove trash
# gconf-merge-schema $pkgdir/usr/share/gconf/schemas/$pkgname.schemas \
# $pkgdir/etc/gconf/schemas/*.schemas
# rm -rf $pkgdir/etc/gconf
}Last edited by wonder (2009-09-08 22:31:02)
Give what you have. To someone, it may be better than you dare to think.
Offline
Alex_anthony created a package for it in his moblin-git repo
git clone git://gitorious.org/moblin-and-gnome-devel-packaging/moblin-git.git
there is an anjal PKGBUILD. I can't get it to build at the moment, it exits with this error:
mail-message-view.o: In function `mmv_finished_loading_webkit':
/home/rob/build/moblin-git/anjal/src/anjal-build/src/mail-message-view.c:655: undefined reference to `webkit_web_frame_get_height'
em-webkit-stream.o: In function `emws_sync_close':
/home/rob/build/moblin-git/anjal/src/anjal-build/src/em-webkit-stream.c:124: undefined reference to `webkit_web_frame_get_height'
/home/rob/build/moblin-git/anjal/src/anjal-build/src/em-webkit-stream.c:125: undefined reference to `webkit_web_frame_get_height'
collect2: ld returned 1 exit status
make[2]: *** [anjal] Error 1
make[2]: Leaving directory `/home/rob/build/moblin-git/anjal/src/anjal-build/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/rob/build/moblin-git/anjal/src/anjal-build'
make: *** [all] Error 2Offline
seems that the version of webkit is too old.
Give what you have. To someone, it may be better than you dare to think.
Offline
Aha! I didn't know there was a gnome-unstable repo, that simplifies things a bit. Unfortunately, I'm having trouble compiling the rest of the dependencies. First, nbtk fails with this error:
LINK nbtk-create-image-cache
Traceback (most recent call last):
File "/usr/bin/g-ir-scanner", line 38, in <module>
sys.exit(scanner_main(sys.argv))
File "/usr/lib/gobject-introspection/giscanner/scannermain.py", line 277, in scanner_main
transformer.register_include(include_obj)
File "/usr/lib/gobject-introspection/giscanner/transformer.py", line 111, in register_include
filename = self._find_include(include)
File "/usr/lib/gobject-introspection/giscanner/transformer.py", line 129, in _find_include
% (girname, searchdirs))
ValueError: Couldn't find include 'Clutter-1.0.gir' (search path: ['/usr/share/gir-1.0', '/usr/local/share/gir-1.0', '/usr/share/gir-1.0', '/usr/local/share/gir-1.0', '/opt/kde/share/gir-1.0', '/usr/share/gdm/gir-1.0', '/opt/kde/share/gir-1.0', '/usr/share/gir-1.0', '/usr/share/gir-1.0', '/usr/share/gir-1.0'])
make[3]: *** [Nbtk-1.0.gir] Error 1
make[2]: *** [all] Error 2
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2
Could this be because I'm using clutter from the arch repos and not clutter-git? I can't get clutter-git to compile either :-/. Does anyone have a repo or the i686 binaries up somewhere for these packages?
Offline
Aha! I didn't know there was a gnome-unstable repo, that simplifies things a bit. Unfortunately, I'm having trouble compiling the rest of the dependencies. First, nbtk fails with this error:
LINK nbtk-create-image-cache
Traceback (most recent call last):
File "/usr/bin/g-ir-scanner", line 38, in <module>
sys.exit(scanner_main(sys.argv))
File "/usr/lib/gobject-introspection/giscanner/scannermain.py", line 277, in scanner_main
transformer.register_include(include_obj)
File "/usr/lib/gobject-introspection/giscanner/transformer.py", line 111, in register_include
filename = self._find_include(include)
File "/usr/lib/gobject-introspection/giscanner/transformer.py", line 129, in _find_include
% (girname, searchdirs))
ValueError: Couldn't find include 'Clutter-1.0.gir' (search path: ['/usr/share/gir-1.0', '/usr/local/share/gir-1.0', '/usr/share/gir-1.0', '/usr/local/share/gir-1.0', '/opt/kde/share/gir-1.0', '/usr/share/gdm/gir-1.0', '/opt/kde/share/gir-1.0', '/usr/share/gir-1.0', '/usr/share/gir-1.0', '/usr/share/gir-1.0'])
make[3]: *** [Nbtk-1.0.gir] Error 1
make[2]: *** [all] Error 2
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2Could this be because I'm using clutter from the arch repos and not clutter-git? I can't get clutter-git to compile either :-/. Does anyone have a repo or the i686 binaries up somewhere for these packages?
Same problem here... thanks for trying!!!
http://archlinux.me/aymara/ ----> Newbie forever... ¬¬
Offline
seems that the version of webkit is too old.
It needs to be patched, I'm working on getting the patch to apply but it's not working at the moment.
I can't get clutter-git to compile either :-/.
Try using --disable-introspection on the ./autogen.sh or ./configure in the PKGBUILD
----
EDIT:
Here's a working pkgbuild and patch for webkit. I used webkit-newest, so I recommend that's what you try.
mkdir libwebkit-newest
cd libwebkit-newest
yaourt -G libwebkit-newest
(edit pkgbuild and put webkit.patch in the same directory as the pkgbuild)
makepkg -sif
PKGBUILD
# Contributer: Andreas Radke <andyrtr@archlinux.org>
# Maintainer: Nezmer <Nezmer@gmail.com>
pkgname=libwebkit-newest
_pkgname=webkit
pkgver=1.1.14
pkgrel=2
pkgdesc="an opensource web content engine, derived from KHTML and KJS from KDE"
arch=('i686' 'x86_64')
url="http://webkitgtk.org/"
license=('custom')
depends=('libxt' 'libxslt' 'icu' 'gstreamer0.10-base' 'libsoup>=2.27.90' 'enchant>=1.4.2')
makedepends=('gperf' 'gtk-doc>=1.11')
provides=('webkitgtk-svn' 'libwebkit=1.1.12')
conflicts=('webkitgtk-svn' 'libwebkit')
replaces=('webkitgtk-svn' 'libwebkit')
source=(http://webkitgtk.org/webkit-${pkgver}.tar.gz webkit.patch)
options=('!libtool')
md5sums=('bff87d1ddc562223cb99201950d7e138'
'f8fb155d2c8c81e92541a0102bbeadb2')
build() {
cp webkit.patch ${srcdir}/${_pkgname}-${pkgver}/
cd ${srcdir}/${_pkgname}-${pkgver}/
patch -p2 -i webkit.patch
cd ${srcdir}/webkit-${pkgver}
./configure --prefix=/usr \
--enable-video \
--with-font-backend=freetype --enable-gtk-doc \
--enable-jit --with-unicode-backend=icu
make || return 1
make DESTDIR="$pkgdir" install || return 1
install -Dm644 ${srcdir}/webkit-${pkgver}/WebKit/LICENSE $pkgdir/usr/share/licenses/libwebkit/LICENSE
}webkit.patch
--- /webkit-1.1.14/WebKit/gtk/webkit/webkitwebframe.cpp (revision 44495)
+++ /webkit-1.1.14/WebKit/gtk/webkit/webkitwebframe.cpp (working copy)
@@ -490,6 +490,31 @@
webkit_web_frame_load_data(frame, content, NULL, NULL, baseURL, unreachableURL);
}
+/*
+ * Detect whether a cursor is in a blockquote
+ */
+gboolean
+webkit_web_frame_is_cursor_at_blockquote (WebKitWebFrame *frame)
+{
+ Frame* coreFrame = core(frame);
+
+ return coreFrame->editor()->numEnclosedBlockquotes() != 0;
+}
+
+/*
+ * Execute arbitary commands in frame.
+ */
+void
+webkit_web_frame_execute_command (WebKitWebFrame *frame, const gchar* command)
+{
+ g_return_if_fail(WEBKIT_IS_WEB_FRAME(frame));
+
+ Frame* coreFrame = core(frame);
+ String commandString = String::fromUTF8(command);
+
+ coreFrame->editor()->command(commandString).execute();
+}
+
/**
* webkit_web_frame_load_request:
* @frame: a #WebKitWebFrame
@@ -828,3 +853,12 @@
WebKitWebFramePrivate* priv = frame->priv;
return priv->loadStatus;
}
+
+int
+webkit_web_frame_get_height (WebKitWebFrame *frame)
+{
+ Frame* coreFrame = core(frame);
+ FrameView* view = coreFrame->view();
+
+ return view->contentsHeight();
+}
--- /webkit-1.1.14/WebKit/gtk/webkit/webkitwebframe.h (revision 44495)
+++ /webkit-1.1.14/WebKit/gtk/webkit/webkitwebframe.h (working copy)
@@ -92,7 +92,20 @@
webkit_web_frame_load_uri (WebKitWebFrame *frame,
const gchar *uri);
+WEBKIT_API gchar*
+webkit_web_frame_get_inner_text (WebKitWebFrame *frame);
+
+WEBKIT_API gboolean
+webkit_web_frame_is_cursor_at_blockquote (WebKitWebFrame *frame);
+
WEBKIT_API void
+webkit_web_frame_execute_command (WebKitWebFrame *frame,
+ const gchar *command);
+
+#define webkit_web_frame_break_quote (frame) \
+webkit_web_frame_execute_command (frame, "InsertNewlineInQuotedContent")
+
+WEBKIT_API void
webkit_web_frame_load_string (WebKitWebFrame *frame,
const gchar *content,
const gchar *mime_type,
@@ -134,6 +147,9 @@
WEBKIT_API WebKitLoadStatus
webkit_web_frame_get_load_status (WebKitWebFrame *frame);
+WEBKIT_API int
+webkit_web_frame_get_height (WebKitWebFrame *frame);
+
G_END_DECLS
#endif
--- /webkit-1.1.14/WebCore/editing/Editor.cpp (revision 44495)
+++ /webkit-1.1.14/WebCore/editing/Editor.cpp (working copy)
@@ -223,6 +223,14 @@
return client() && client()->isSelectTrailingWhitespaceEnabled();
}
+int Editor::numEnclosedBlockquotes()
+{
+ SelectionController* sel = m_frame->selection();
+ Position start = sel->selection().start();
+
+ return WebCore::numEnclosingMailBlockquotes(start);
+}
+
bool Editor::deleteWithDirection(SelectionController::EDirection direction, TextGranularity granularity, bool killRing, bool isTypingAction)
{
if (!canEdit())
--- /webkit-1.1.14/WebCore/editing/Editor.h (revision 44495)
+++ /webkit-1.1.14/WebCore/editing/Editor.h (working copy)
@@ -291,6 +291,7 @@
PassRefPtr<Range> nextVisibleRange(Range*, const String&, bool forward, bool caseFlag, bool wrapFlag);
void addToKillRing(Range*, bool prepend);
+ int numEnclosedBlockquotes ();
private:
Frame* m_frame;
OwnPtr<DeleteButtonController> m_deleteButtonController;Last edited by illusionalsagacity (2009-09-09 18:19:40)
Offline
looks sexy! too bad it's not a standalone app/depends on evolution ![]()
in kde:
$ sudo pacman -S evolution
resolving dependencies...
looking for inter-conflicts...
Targets (27): gnome-keyring-2.26.3-1 [1.48 MB] libtirpc-0.2.0-1 [0.22 MB] rpcbind-0.2.0-1 [0.03 MB] fam-2.7.0-14 [0.09 MB]
gnome-mime-data-2.18.0-4 [0.69 MB] gnome-vfs-2.24.1-2 [1.22 MB] esound-0.2.41-1 [0.09 MB]
libbonobo-2.24.1-1 [1.00 MB] libgnome-2.26.0-2 [1.30 MB] libart-lgpl-2.3.20-1 [0.12 MB]
libgnomecanvas-2.26.0-1 [0.30 MB] libbonoboui-2.24.1-1 [0.56 MB] libgnomeui-2.24.1-1 [1.25 MB]
perlxml-2.36-2 [0.22 MB] perl-xml-simple-2.18-2 [0.06 MB] icon-naming-utils-0.8.90-1 [0.01 MB]
gnome-icon-theme-2.26.0-1 [3.50 MB] gtkhtml-3.26.3-1 [1.23 MB] libproxy-0.2.3-1 [0.05 MB]
libsoup-2.26.3-1 [0.34 MB] db4.1-4.1.25-3 [0.80 MB] libgweather-2.26.2.1-1 [6.47 MB]
evolution-data-server-2.26.3-1 [4.61 MB] gnome-pilot-2.0.17-1 [0.63 MB] libpst-0.6.37-1 [0.43 MB]
libytnef-1.5-2 [0.03 MB] evolution-2.26.3-1 [34.82 MB]
Total Download Size: 61.25 MB
Total Installed Size: 191.49 MB
Proceed with installation? [Y/n] N!!11!!1!Last edited by schuay (2009-09-09 18:46:53)
Offline
Try using --disable-introspection on the ./autogen.sh or ./configure in the PKGBUILD
That worked. Had to do that for both clutter-git and nbtk-git.
Your PKGBUILD and webkit.patch also worked nicely, but the md5sum for the patch was wrong (maybe the forum altered the whitespace a bit?).
I now have anjal working, thanks!
Offline
illusionalsagacity wrote:Try using --disable-introspection on the ./autogen.sh or ./configure in the PKGBUILD
That worked. Had to do that for both clutter-git and nbtk-git.
Your PKGBUILD and webkit.patch also worked nicely, but the md5sum for the patch was wrong (maybe the forum altered the whitespace a bit?).
I now have anjal working, thanks!
Awesome. Have fun!
Offline
Wow!!! You made it!!!
Thanks to all of you... Arch community rules!!!
Any chance to make an script to make the install more easy for me and all the newbies like me??? (or I should say... lazy like me??)
http://archlinux.me/aymara/ ----> Newbie forever... ¬¬
Offline
now you can try
yaourt -S anjal-gitif you have the new evolution and yaourt installed. For i686, new evolution is in [gnome-unstable]
Offline
now you can try
yaourt -S anjal-gitif you have the new evolution and yaourt installed. For i686, new evolution is in [gnome-unstable]
Thanks!!! great job!!
http://archlinux.me/aymara/ ----> Newbie forever... ¬¬
Offline