Re: Proposal to deprecate Xlib backend

2006-12-26 Thread Fred Kiefer
Yen-Ju Chen schrieb:
  I guess this is the reason why transparency does not work in Cairo
 backend:
  cairo backend draw everything directly on xwindow.
  In -gui, an image is often draw on a hidden window, then composite
 on the destination.
  Because cairo backend draw directly on xwindow first,
  it loses the alpha value.
  Then when it is composited to the destination,
  the transparent part becomes the background of the hidden window.
 
  I have a copy of cairo backend in Etoile project:
  http://svn.gna.org/viewcvs/etoile/branches/yjchen/etoile_back/
  It basically draw on the x11/XWindowBuffer first as what art backend does.
  Therefore, it keeps the alpha value for composition.
  The modification is very little.
  You can check out README.etoile_back.
  A simple diff is sufficient to see the difference of source code.
  There are some minor issues here and there, though.
 

Great, this resolves the transparency issue! I added your changes for
this to the official GNUstep cairo backend. I did not take over your
changes to x11, on which I need to take another look.

You also have a change to add the freetype2 libraries and settings to
the configuration. This should not be needed if cairo is configured
correctly. Could you please type in pkg-config --libs cairo at a
command prompt to see if this includes freetype or not?

I also added you endianess change, hope I did get it correct.

As you have the unbuffered code commented out yourself, I did not take
it over. And the NSClipView change is clearly a hack. We need to resolve
the actual issue behind it.

With images now drawn transparent you will see that many images get
flipped. I will have to take another look into the horrible
compositeGState:... method to sort this out. If we are lucky the clip
view issue will get resolved by that as well.

The next thing to investigate will than be the text drawing, as the
metrics seem to be wrong here.

Cheers,
Fred



___
Gnustep-dev mailing list
Gnustep-dev@gnu.org
http://lists.gnu.org/mailman/listinfo/gnustep-dev


Re: GNUmakefile and a strange case

2006-12-26 Thread José Pablo Fernández
On Tuesday 19 December 2006 21:44, Christopher Armstrong wrote:
 Hi

  gcc -o account.so -shared Account.os cli.os man.os User.os Group.os
  LoggedUser.os -L/usr/lib/GNUstep/System/Library/Libraries -lobjc
  -lgnustep-base
  scons: done building targets.

 Note with this you're linking against the gnustep-base library, which
 includes the NSString class (the missing export in your error messages).
 I guess you are making use of NSString somehow (either in the constant
 (@) or non-constant form).

Yes, I am using NSString directly ([NSString ...]) and indirectly (@...) 
many times as well as other GNUstep classes. And since it is a library I am 
using I am liking with it... anything wrong there ?

  On Monday 18 December 2006 19:49, José Pablo Fernández wrote:
   User.m:108: warning: ‘_OBJC_INSTANCE_0’ defined but not used
   User.m:185: warning: ‘_OBJC_INSTANCE_1’ defined but not used
   User.m:194: warning: ‘_OBJC_INSTANCE_2’ defined but not used

 These warnings come with gnustep-base when you use constant strings in
 the form

 @something here

 They seem to be harmless, and its a bug in gcc that should be fixed when
 the gcc guys get round to it (ask them; check their bug reporting system
 first).

Ok, thank you.

   ?
  
   Any help in any of these problems is appreciated.

 You said you were compiling a c library.

It used to be a c-only library... now it is a obj-c library.

 This form of a GNUmakefile 
 with GNUstep does not link in gnustep-base.

I am not sure what we are talking about really, because...

 You will want to compile as 
 a normal library ($(GNUSTEP_MAKEFILES)/library.make). 

... that is what I included in my GNUmakefile. My current GNUmakefile looks 
like this:

include $(GNUSTEP_MAKEFILES)/common.make

LIBRARY_NAME = account

account_OBJC_FILES = Account.m cli.m Group.m LoggedUser.m man.m User.m
account_OBJCFLAGS = -D_GNU_SOURCE -std=gnu99 -pipe -Wall -ggdb

-include GNUmakefile.preamble

include $(GNUSTEP_MAKEFILES)/library.make

-include GNUmakefile.postamble

 Please note that 
 what you are doing by putting the library in a different directory is
 likely to cause problems. The gnustep-base library and the objective-c
 runtime will somehow need to be in your library export path (ldconfig
 and friends) for libaccount.so to load properly.

I can't avoid this. This library is dloaded by another program which loads all 
the libraries (modules/plugins) in a certain directory, I have to install my 
library there and even name it in a special way (no lib).
-- 
José Pablo Fernández
[EMAIL PROTECTED]


___
Gnustep-dev mailing list
Gnustep-dev@gnu.org
http://lists.gnu.org/mailman/listinfo/gnustep-dev


GNUstep packaging by TWW tools

2006-12-26 Thread T.J. Yang
I am not a software engineer so I can't help on  swapping  out xlib with 
cairo type of projects.


but I want to have a FreeBSD type of packaging build system to maintain 
GNUstep.


make gnustep-core-1.10 will unpack,patch,configure and build gnustep 
software components.


It is very wasteful of compute/time resources to require everyone to compile 
gcc(with objc) if one is interested about running gnustep. GNUStep LiveCD is 
good but an easy way to install gnustep onto existing installed OS is even 
better.


For now, I am using Solaris 10 intel for packaging gnustep by TWW tools 
(R1).

The goal is to make installation of gnustep very easy across OS platform.

My plan
1. prepare gcc-4.1.1 for Solaris 10 intel (U2, 06/2006 version) first and 
down port lower version solaris and sparc cpu.


bash-3.00# /opt/gcc411/bin/gcc -v
Using built-in specs.
Target: i386-pc-solaris2.10
Configured with: /opt/build/gcc-4.1.1/configure --enable-nls 
--enable-threads --disable-maintainer-mode --enable-shared --enable-libgcj 
--enable-languages=c,c++,objc --datadir=/opt/gcc411/share --with-gnu-as 
--with-as=/opt/gcc411/i386-pc-solaris2.10/bin/as 
--with-local-prefix=/opt/gcc411 --prefix=/opt/gcc411

Thread model: posix
gcc version 4.1.1
bash-3.00# uname -a
SunOS b-solx86-10 5.10 Generic_118855-14 i86pc i386 i86pc
bash-3.00#

2. package the gnustep core software(make,base,gui).

3. release package sources

4. Lobby gnustep development community to use TWW tool so
  TWW CPAM tool can help GNUstep's CPAD.
  This will be hard because asking people to switch to different tools 
using

  different processes.


Goal:

/opt/bin/pkg-inst gnustep-2.0, will install gnustep-core and gnustep apps 
automatically.


will install gnustep and its depended software clusters.

This is a hobby project and subject to my free time.


References:
R1. http://en.wikibooks.org/wiki/CPAM_with_TWW/User_Guide

T.J. Yang

_
Experience the magic of the holidays. Talk to Santa on Messenger. 
http://clk.atdmt.com/MSN/go/msnnkwme008001msn/direct/01/?href=http://imagine-windowslive.com/minisites/santabot/default.aspx?locale=en-us




___
Gnustep-dev mailing list
Gnustep-dev@gnu.org
http://lists.gnu.org/mailman/listinfo/gnustep-dev


Re: GNUmakefile and a strange case

2006-12-26 Thread Richard Frith-Macdonald


On 18 Dec 2006, at 22:49, José Pablo Fernández wrote:


Hello,
I have a strange situation here, it used to be a C library compiled  
with
SCons, but now I am using ObjC and GNUstep and I was recommended to  
use

GNUmakefiles because of the added goodies.
Now, I need to create a library, the library should be called  
account.so

(note, not libaccount.so, account.so) and it should be installed
on /usr/lib/account/modules/ not on /whatever/Library/whatever. How  
can I do

this ?


I think you need an extra rule in the makefile to rename/install the  
library.
The standard makefile will build libaccount.so in the obj  
subdirectory, so your extra install rule needs to copy that to /usr/ 
lib/account/modules/account.so


Now, this library is dlopened, when I compile it with SCons it is  
loaded
succesfully, when I compile it with GNUmakefile (and copy the file  
by hand

renaming it in the process) I get this error:

Error loading module 'account.so': /usr/lib/asterisk/modules/ 
account.so:

undefined symbol: __objc_class_name_NSString

Evidently there's something different in how it was linked with the  
gnustep

libraries.


Quite possibly, but we would need to see the gnustep make file to  
know what the problem might be.
It should look something like (no promise that this is correct ...  
just a quick, rough idea from memory):


include $(GNUSTEP_MAKEFILES)/common.make
LIBRARY_NAME=account
account_OBJC_FILES = source.m
include $(GNUSTEP_MAKEFILES)/library.make
after-install:
cp obj/libaccount.so /usr/lib/account/modules/account.so



And as a last detail, I get this warnings, what do they mean:

User.m:108: warning: ‘_OBJC_INSTANCE_0’ defined but not used
User.m:185: warning: ‘_OBJC_INSTANCE_1’ defined but not used
User.m:194: warning: ‘_OBJC_INSTANCE_2’ defined but not used


That's a harmless compiler bug in some versions of gcc ... best ignored.

___
Gnustep-dev mailing list
Gnustep-dev@gnu.org
http://lists.gnu.org/mailman/listinfo/gnustep-dev