[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: On Akka Development
- To: Development Discussions <developer at arabeyes dot org>
- Subject: Re: On Akka Development
- From: Muhammad Alkarouri <karouri at uofk dot edu>
- Date: 08 Aug 2003 15:44:00 +0300
Salam, everyone
Attached is a patch for akka to make it run on ORBit2 instead of the
ORBit package, and an example configuration using python.
What is needed to compile is:
- akka source code (patch is against
akka_cvs_snapshot_20030802194700.tar.gz, current cvs snapshot will do).
- fribidi (tested with fribidi-0.10.4-3)
- ORBit2 (comes with GNOME,)
- ORBit2-devel
- pyorbit (tested with version pyorbit-1.99.3-5), needed at runtime.
Note that pyakka.py is a translation of akka-conf.pl,; similar files may
be done for other perl configurations.
I will be happy if the following questions are answered by akka
developers:
- Akka seems a little erratic at (most) times, is this from a change I
did in the code (the diff)
- to compile akka (after patching) I need to copy ltmain.sh manually, is
this the fault of libtool/automake or the redhat release (it's a beta;)
or something to do with akka
- most important, what do you think is the best policy for akka
configuration. I assume it's not writing a small python program for each
new config.
On ج, 2003-08-01 at 20:35, Chahine M. HAMILA wrote:
> Salaam Mohamed,
>
> > I am still trying the python approach. 'Trying' means some problems: I
> > have always used omniORB (not an option here - an additional
> > dependency), but tryig now to use ORBit. The python support for ORBit is
> > not that good (essentially unusable) in Red Hat 8+, but the support for
> > ORBit2 is good. I am thinking of upgrading akka to use ORBit2, and I
> > think it is simple with your help.
> > The text installer in Red Hat is python, so if distros have python
> > working, this will not be a problem. If any problems, I may switch to a
> > C client, but I will also prefer an upgrade to ORBit2.
> > I am also in support of using CORBA in this project.
>
> If memory serves, I don't think any orbit-specific code was used, so
> switching corba implementations should only be a problem of configuration
> (fiddling with the autotools/makefiles, which M. Elzubeir and Samy have
> written afaik, so here they might be quicker than I to locate any lines to
> fix though I suspect it should be pretty trivial anyway) and changing the
> inclusion headers in the concerned Akka files (not many of them). My choice
> of orbit was precisely because, at the time Akka was written, any machine
> running gnome had it so it could run "out of the box", i.e. without the need
> to install an additional corba library on most systems. If you are telling
> me the "standard" implemention is now orbit2, then like you I'm all for
> switching to it.
> Let me know if you have any specific problem or question.
>
> Regards,
> Chahine
>
> _______________________________________________
> Developer mailing list
> Developer at arabeyes dot org
> http://lists.arabeyes.org/mailman/listinfo/developer
diff -Naur akka/configure.in kakka/configure.in
--- akka/configure.in 2003-01-08 00:23:30.000000000 +0300
+++ kakka/configure.in 2003-08-04 14:26:03.000000000 +0300
@@ -39,8 +39,8 @@
dnl
AC_DEFUN([GNOME_ORBIT_HOOK],[
- AC_PATH_PROG(ORBIT_CONFIG,orbit-config,no)
- AC_PATH_PROG(ORBIT_IDL,orbit-idl,no)
+ AC_PATH_PROG(ORBIT_CONFIG,orbit2-config,no)
+ AC_PATH_PROG(ORBIT_IDL,orbit-idl-2,no)
AC_CACHE_CHECK([for working ORBit environment],gnome_cv_orbit_found,[
if test x$ORBIT_CONFIG = xno -o x$ORBIT_IDL = xno; then
gnome_cv_orbit_found=no
@@ -51,14 +51,14 @@
AM_CONDITIONAL(HAVE_ORBIT, test x$gnome_cv_orbit_found = xyes)
if test x$gnome_cv_orbit_found = xyes; then
$1
- ORBIT_CFLAGS=`orbit-config --cflags client server`
- ORBIT_LIBS=`orbit-config --use-service=name --libs client server`
+ ORBIT_CFLAGS=`orbit2-config --cflags client server`
+ ORBIT_LIBS='-pthread -Wl,--export-dynamic -lORBitCosNaming-2 -lORBit-2 -llinc -lgmodule-2.0 -ldl -lgobject-2.0 -lgthread-2.0 -lglib-2.0 -lm'
AC_SUBST(ORBIT_CFLAGS)
AC_SUBST(ORBIT_LIBS)
AC_SUBST(ORBIT_IDL)
else
if test x$2 = xfailure; then
- AC_MSG_ERROR(ORBit not installed or installation problem)
+ AC_MSG_ERROR(ORBit2 not installed or installation problem)
fi
fi
])
diff -Naur akka/src/akka-server.c kakka/src/akka-server.c
--- akka/src/akka-server.c 2002-08-19 03:15:10.000000000 +0300
+++ kakka/src/akka-server.c 2003-08-04 14:32:36.000000000 +0300
@@ -4,7 +4,7 @@
#include <stdlib.h>
#include <pthread.h>
-#include "orb/orbit.h"
+#include <orbit/orbit.h>
#include "akka.h"
#include "child.h"
@@ -139,7 +139,7 @@
*/
void corba_akka_thread ()
{
- PortableServer_ObjectId objid = {0, sizeof("MyAkkaLib"), "MyAkkaLib"};
+ PortableServer_ObjectId *objid = CORBA_OBJECT_NIL;
PortableServer_POA poa;
CORBA_Environment ev;
@@ -157,8 +157,7 @@
poa = (PortableServer_POA)CORBA_ORB_resolve_initial_references(orb, "RootPOA", &ev);
PortableServer_POAManager_activate(PortableServer_POA__get_the_POAManager(poa, &ev), &ev);
- PortableServer_POA_activate_object_with_id(poa,
- &objid, &poa_akka_servant, &ev);
+ objid = PortableServer_POA_activate_object(poa, &poa_akka_servant, &ev);
akka_client = PortableServer_POA_servant_to_reference(poa,
&poa_akka_servant,
diff -Naur akka/src/child.c kakka/src/child.c
--- akka/src/child.c 2002-12-25 20:10:54.000000000 +0300
+++ kakka/src/child.c 2003-08-08 15:13:51.000000000 +0300
@@ -284,6 +284,7 @@
return -1;
}
#endif
+ close(consolefd);
seteuid(user_id);
if(ingraphics) return -1; /*in graphics mode*/
diff -Naur akka/src/font.c kakka/src/font.c
--- akka/src/font.c 2002-12-23 16:18:14.000000000 +0300
+++ kakka/src/font.c 2003-08-04 15:59:09.000000000 +0300
@@ -96,11 +96,11 @@
return;
}
-struct unipair ufm[512];
+struct unipair ufm[512*2];
struct unimapdesc umapdesc;
void getsfm(int tty)
{
- umapdesc.entry_ct = 512;
+ umapdesc.entry_ct = 512*2;
umapdesc.entries = ufm;
seteuid(akka_id);
#!/usr/bin/python
import sys
import ORBit
import CORBA
orb=CORBA.ORB_init(sys.argv,'orbit-local-orb')
ior=file('/tmp/.akka.ior').read()
akka=orb.string_to_object(ior)
akka.addConsole(3)
import commands
akka.setDefaultKB("defkeymap.map.gz")
###############################
# Initialization of console 2 #
###############################
# monitor console number 2
akka.addConsole(2)
# console 2 will be English/Arabic Akka
akka.setKeyboards(2, "akka/keymaps/pc/us-latin1.map",
"akka/keymaps/pc/arabic.map");
# console 2 will not render glyphs, which is the default
# we will load the sample "square arabic" font
#commands.getoutput("consolechars --tty=/dev/tty2 -m straight-to-font akka/fonts/iso06b.fnt")
# We want console 2 to start as an RTL console
akka.setDirection(2, 1)