Re: [gentoo-dev] Find apps not ported to modular X

2006-03-16 Thread Caleb Tennis

 Latest list:
 http://dev.gentoo.org/~spyderous/broken_modular/broken_modular_maintainers.
txt.20060315

What's the search criteria?  I fixed dev-ruby/ruby-gd yesterday, but it's 
still on the list.  Perhaps, though, I didn't fix it correctly for the search 
script to pick up?

Caleb
-- 
gentoo-dev@gentoo.org mailing list



[gentoo-dev] Council Meeting logs 20060309

2006-03-16 Thread Seemant Kulleen

Dear All,

I've attached the council meeting logs thanks to my proxy dsd.  I have
updated the council project page to add them there and to add a summary
of the events.  I suppose when that thar www refreshes itself on the
internets, the new content will show up.

Meanwhile...enjoy :)

Thanks,

Seemant
--- Log opened Thu Mar 09 18:22:56 2006
18:22 -!- dsd_ [EMAIL PROTECTED]/developer/dsd] has joined #gentoo-council
18:22 -!- Irssi: #gentoo-council: Total of 9 nicks [3 ops, 0 halfops, 0 voices, 
6 normal]
18:22 -!- Irssi: Join to #gentoo-council was synced in 1 secs
18:23 -!- Halcyon [EMAIL PROTECTED]/supporter/active/Halcy0n-gentoo] has joined 
#gentoo-council
18:32 -!- cshields [EMAIL PROTECTED]/staff/cshields] has joined #gentoo-council
18:53  dsd_ which gleps are voted on tonight?
18:53  dsd_ 42 and 44?
18:55 @Koon tyhat's what I have
18:55 @Koon but I didn't read all gentoo-dev so I might have missed some vote 
requests
18:55 @Koon back in 10 minutes
18:57 @SwifT damned, 42 has been improved since I last read it
19:00 -!- vapier [EMAIL PROTECTED] has joined #gentoo-council
19:00 -!- mode/#gentoo-council [+o vapier] by ChanServ
19:00 -!- Netsplit adams.freenode.net - irc.freenode.net quits: Lejban
19:01 -!- Netsplit over, joins: Lejban
19:02 -!- seemant [EMAIL PROTECTED]/developer/seemant] has joined 
#gentoo-council
19:02 -!- mode/#gentoo-council [+o seemant] by ChanServ
19:02 @seemant hi all, dsd_ is my proxy
19:02 -!- mode/#gentoo-council [+o dsd_] by seemant
19:02 -!- mode/#gentoo-council [-o seemant] by seemant
19:03  * vapier touches seemant's proxy
19:03 @Koon vapier: proxies are not toys
19:04 -!- agriffis [EMAIL PROTECTED]/developer/agriffis] has joined 
#gentoo-council
19:04 -!- mode/#gentoo-council [+o agriffis] by ChanServ
19:05 @dsd_ abuse!
19:06  cshields greetings all!  I'll be standing in for solar
19:06 -!- mode/#gentoo-council [+o cshields] by Koon
19:06 @SwifT 'evening both of you
19:07 @cshields or morning..  ;)
19:07 @vapier dsd_: it's only abuse if you didnt like it
19:07 @Koon who wants to chair ? I may have to leave early so I prefer not to
19:08 @vapier i may have to jet, work has meetings on me today
19:08 @vapier but i think we only have the manifest2 glep today correct ?
19:08 @SwifT and news thingie
19:08 @vapier the news thing wasnt requested i thought
19:08 @Koon well it all depends if we consider we should vote on glep 42 too
19:08 -!- mode/#gentoo-council [+m] by Koon
19:08 @SwifT if I can believe Koon and dsd
19:09 @dsd_ SwifT: dont listen to me
19:09 @vapier lets do GLEP 44 first :P
19:09 @Koon easy cake: yes
19:09 @SwifT 1
19:09 @vapier i think all our maybes and such were covered sufficiently on 
the list
19:09 @cshields solar votes yes
19:09 @Koon anyone covering up azarah's ass ?
19:09 @vapier any last questions ? (and if you have one i kill you for not 
asking it on the dev list)
19:10 @SwifT that's blackmail
19:10 @dsd_ i vote yes (on seemant's behalf)
19:10 @agriffis yes to 42
19:10 @vapier ok, i'll just poke you, i wont kill you :p
19:10 @Koon agriffis: current itam is 44
19:11 @vapier i'm for 42 as well
19:11 @agriffis I meant 44, sorry
19:11 @vapier adsflkajsdfl 44
19:11  * vapier blames agriffis
19:11 @Koon ok then we have a winner
19:12 @Koon up to GLEP 42, wit the traditional question: should we really 
vote on it given it's not been properly submitted
19:12 @SwifT oh well, no then
19:12 @Koon I propose that we emit an opinion and raise any question we may 
have, and pompously vote on it next month
19:13 @cshields solar touched on this in an email, but to me it seems to be 
missing an implementation plan.   If it is voted on (and approved) it may end 
up sitting for a while without any action.  We made a similar mistake with the 
webiste redesign vote long ago
19:13 @Koon cshields: unfortunately we cannot really enforce implementation 
plan
19:13 @vapier we can
19:13 @Koon it needs someone to pick it up
19:13 -!- Netsplit adams.freenode.net - irc.freenode.net quits: Lejban
19:13 @vapier we dont approve it w/out an implementation plan :P
19:13 -!- Netsplit over, joins: Lejban
19:14 @cshields Koon: you don't need to -enforce- one..  but some kind of a 
plan would be nice  :)
19:14 @Koon then we can emit a favorable opinion on the content but require 
some implementation details to accept it
19:14 @cshields I could glep that we all get $100k/yr for doing gentoo, and 
it may sound good and have rationale behind it, but without a plan to implement 
it will probably never happen  :)
19:14 @Koon I vote yes on that one
19:14 @SwifT who knows
19:14 @vapier details that the portage team is cool with ... but from 
genone's e-mails, seems they wont have much trouble with it
19:15 -!- spb [EMAIL PROTECTED]/developer/spb] has quit [Client Quit]
19:15 -!- spb [EMAIL PROTECTED]/developer/spb] has joined #gentoo-council
19:15 @vapier has infra weighed in on it ?
19:15 @Koon cshields ^
19:16 @cshields vapier: most of us are in favor of the concept (cause we get 
bit in 

Re: [gentoo-dev] Council Meeting logs 20060309

2006-03-16 Thread Ciaran McCreesh
On Thu, 16 Mar 2006 10:54:34 -0500 Seemant Kulleen [EMAIL PROTECTED]
wrote:
| I've attached the council meeting logs thanks to my proxy dsd.  I have
| updated the council project page to add them there and to add a
| summary of the events.  I suppose when that thar www refreshes itself
| on the internets, the new content will show up.

So, uh, was 42 approved or not then? I was under the impression that
the final draft was too late to make the March deadline...

-- 
Ciaran McCreesh : Gentoo Developer (Wearer of the shiny hat)
Mail: ciaranm at gentoo.org
Web : http://dev.gentoo.org/~ciaranm



signature.asc
Description: PGP signature


Re: [gentoo-dev] Council Meeting logs 20060309

2006-03-16 Thread Mike Frysinger
On Thursday 16 March 2006 11:12, Ciaran McCreesh wrote:
 On Thu, 16 Mar 2006 10:54:34 -0500 Seemant Kulleen [EMAIL PROTECTED]

 wrote:
 | I've attached the council meeting logs thanks to my proxy dsd.  I have
 | updated the council project page to add them there and to add a
 | summary of the events.  I suppose when that thar www refreshes itself
 | on the internets, the new content will show up.

 So, uh, was 42 approved or not then? 

no, it was not, as it wasnt voted on, we just chatted about it ... here's a 
tidbit:

19:17 @agriffis anyway, it should be enough for now to say that we're in 
favor but where is the implementation plan, who is going to do the work, etc?
-mike
-- 
gentoo-dev@gentoo.org mailing list



Re: [gentoo-dev] Find apps not ported to modular X

2006-03-16 Thread Donnie Berkholz
Caleb Tennis wrote:
 Latest list:
 http://dev.gentoo.org/~spyderous/broken_modular/broken_modular_maintainers.
 txt.20060315
 
 What's the search criteria?  I fixed dev-ruby/ruby-gd yesterday, but it's 
 still on the list.  Perhaps, though, I didn't fix it correctly for the search 
 script to pick up?

You probably fixed it after I synced. That particular list was from a
sync the night before I sent it out (so 3/14).

HTH,
Donnie



signature.asc
Description: OpenPGP digital signature


Re: [gentoo-portage-dev] [PATCH] Manifest2 reloaded

2006-03-16 Thread tvali
Just in case ...what i have to do to test those results


...ps. should i send it here if i have a working c++ class for forking
-- it evolved from that python thought here, which evolved into
general interest to those pipes and interacting with other apps in my
case (which is, as i have understood, important in unix-like
operating systems) ..therefore i encapsulate it into some generic c++
class to do piping and add some error checking, which would give
simple way to use scripting languages, too. i have still not installed
that c++ ide i like, but anyway, Kate is not so bad :) I have it
almost ready but it seems that i have to do some work now for a while
...do i send it here, too, when done or noone needs such thing
anymore? it just runs some command and gives a simple way to send
messages to its stdin and read its stdout so that interacting with
things like python could be simple, too.

2006/3/16, Brian Harring [EMAIL PROTECTED]:
 On Wed, Mar 15, 2006 at 11:14:04PM -0800, Donnie Berkholz wrote:
  Brian Harring wrote:
   python -m timeit -s 's=asdf*400;s+=fdsa.ebuild' 
   's.endswith(.ebuild)'
   100 loops, best of 3: 0.88 usec per loop
 
   python -m timeit -s 's=asdf*400;s+=fdsa.ebuild' 's[-7:] == .ebuild'
   100 loops, best of 3: 0.564 usec per loop
 
   Use endswith
 
   oddly, worth noting that startswith differs in this behaviour...
   python -m timeit -s 's=asdf*400;s+=fdsa.ebuild' 's[:7] == .ebuild'
   100 loops, best of 3: 0.592 usec per loop
 
   python -m timeit -s 's=asdf*400;s+=fdsa.ebuild' 
   's.startswith(.ebuild)'
   100 loops, best of 3: 0.842 usec per loop
 
  Um, those both read the same way to me. You just switched the ordering
  around, so the (starts|ends)with is on the bottom instead of the top,
  but both times (starts|ends)with is longer.

 This is why crack is bad, mm'kay.

 /me lights the pipe and goes back to his corner.

 Pardon, just did a quick test and screwed the results ;)
 ~harring






--
tvali
(e-mail: [EMAIL PROTECTED]; msn: [EMAIL PROTECTED];
icq: 317-492-912)

Ühe eesti internetifirma lehel kohtasin tsitaati:
If you don't do it excellently, dont do it at all. Because if it's not
excellent, it won't be profitable or fun, and if you're not in
business for fun or profit, what the hell are you doing here?
Robert Townsend

-- 
gentoo-portage-dev@gentoo.org mailing list



Re: [gentoo-portage-dev] Wildcards in package.keywords

2006-03-16 Thread Brian Harring
On Thu, Mar 16, 2006 at 11:57:06AM +0100, Simon Stelling wrote:
 Pingveno wrote:
 kde-base/* ~x86
 
 or, to apply it to a single version, this:
 
 =kde-base/*-3.5.1 ~x86
 
 Regular expressions would, of course, work too. They might be a little
 bit of overkill, though.
 
 Bug 57153, was RESOLVED LATER
 
 http://bugs.gentoo.org/show_bug.cgi?id=57153

If anyone is bored, I'd be interested in an implementation of that for 
pkgcore (formerly bcportage, formerly saviour, formerly savior, 
formerly the portage rewrite)...

Implementation of it would require modification to 
pkgcore/config/domain.py , namely changing the package_keywords 
splitter to use 

from pkgcore.restrictions import values, packages
from pkgcore.package.atom import VersionMatch
packages.BooleanRestriction(
   packages.PackageRestriction(category, values.StrExactmatch(cat)),
   Versionmatch(ver_component, rev_component)
)

instead of just passing the str to atom, and change the DictBased 
filter used for keywords adjustment.

Bit wordy, but it's actually minor to do- 20 lines or so, just not top 
priority for me (eg I'll get it someday down the line if I remember) :)

~harring


pgpPclLxHWDYE.pgp
Description: PGP signature


[gentoo-portage-dev] Portage sqlite support

2006-03-16 Thread tvali
Brian told that portage already has sqlite support.

Where i can find it or how i can turn it on? Is there any bugs or
other reasons to not use it? I would like to support it's code as this
is nr. 1 priority for me right now :)

--
tvali
(e-mail: [EMAIL PROTECTED]; msn: [EMAIL PROTECTED];
icq: 317-492-912)

I like net more than life, cause if i do something wrong, then people
in net will tell me that i do, so that i can fix it -- people in life
will tell others that i do.

-- 
gentoo-portage-dev@gentoo.org mailing list



Re: [gentoo-portage-dev] DB and binary dependency

2006-03-16 Thread Paul de Vrieze
On Wednesday 15 March 2006 16:13, Gustavo Sverzut Barbieri wrote:
 Hello,

 There is any provision for binary dependency on Gentoo/Portage? The
 way it works now is quite messy with things like revdep-rebuild.

 I have an idea to solve this problem: after software is build, you
 check which files it links (ldd binaries libraries) and check the used
 against installed packages. If a library is not provided by  an
 installed package we could have a policy to inform user or just abort
 installation.

 Also, if we implement these dependencies in rpm-generator, we could
 just generate RPM packages and install it in the RPM-DB and let it
 handle these kind of things.

 With these in place emerge would handle the build stage (where it
 excels), but rpm would handle the binary installation and dependencies
 (where it excels).

Solving this is not trivial. Basically suppose application X depends on 
sys-libs/db-4.*

This can be resolved by differently slotted libraries. We need to record 
which one was actually used (not easy by itself, but more an issue of the 
ebuild itself, if more than 1 candidate is available). But suppose that 
we know that the application was compiled to use db-4.3.29. We must then 
know that it is ok to replace the db-4.3.29 package with 4.3.30, but that 
it isn't ok to replace it by 4.3.28 or 4.4.20.

To make this things worse, the above example assumes that within a slot, 
the libraries are binary compatible. There are examples of libraries that 
are not. And what about a library whose interface is dependent on a third 
library: B uses A, C uses B, but B exports A. So B is dependent on A, and 
the binary package of C must record that B was compiled with A.

In short, welcome to binary package hell. This is the reason that binary 
distributions must use versions. Even debian. It is just very very hard 
to fix these kinds of indirect dependencies.

Paul

-- 
Paul de Vrieze
Gentoo Developer
Mail: [EMAIL PROTECTED]
Homepage: http://www.devrieze.net


pgpqRcIBYHhbT.pgp
Description: PGP signature


Re: [gentoo-portage-dev] DB and binary dependency

2006-03-16 Thread tvali
 To make this things worse, the above example assumes that within a slot,
 the libraries are binary compatible. There are examples of libraries that
 are not. And what about a library whose interface is dependent on a third
 library: B uses A, C uses B, but B exports A. So B is dependent on A, and
 the binary package of C must record that B was compiled with A.

 In short, welcome to binary package hell. This is the reason that binary
 distributions must use versions. Even debian. It is just very very hard
 to fix these kinds of indirect dependencies.

I think that there are many reasons, why such kind of important thing
should not be automatically generated. Starting from the fact that one
thing is dependency in binary, another thing is knowledge if this
combination actually works, has no bugs, should not be masked.

Anyway, if such binary dependancyes should ever be used, then it would
be best to:
1. register version number of interfaces
2. register interface groups

I mean:
If some lib supports commands turnon() and turnoff(), but one version
supports additionally command int checkifturnedon() and another
supports char checkifturnedon(), then there should be:
* Interface group, which states only that there are turnon and turnoff
functions -- as many apps use only most standard and minimalistic set
of commands from one lib, there is no need to know if some advanced
features are 0.9.80 or 0.9.64 compatible.
* Two interface versions, 0.9.80a and 0.9.80b, for example

All those interfaces and groups could be file links --
lib_interfacegroup_interface1.a would link to libinterface1.a.

If there is 1 library with 2 sets of minimal functionality, then it's
questionable, how to implement both (there would be linker error in
some cases) -- which makes this conception weaker.

Anyway, when standard interfaces are used and linked, that would help a bit.

Anyway -- why should i check dependencies *after* building of a big
pack, maybe hours of building, when i can check it without even
downloading it, when there is nice portage tree? And, i think that
making it binary would allow too much bad style -- there are imho
things, which should not be automated without very-very careful
thinking even if one can only win with automating them in theory and
portage tree is most definitely one of them.

 Paul

 --
 Paul de Vrieze
 Gentoo Developer
 Mail: [EMAIL PROTECTED]
 Homepage: http://www.devrieze.net





--
tvali
(e-mail: [EMAIL PROTECTED]; msn: [EMAIL PROTECTED];
icq: 317-492-912)

I like net more than life, cause if i do something wrong, then people
in net will tell me that i do, so that i can fix it -- people in life
will tell others that i do.

-- 
gentoo-portage-dev@gentoo.org mailing list



Re: [gentoo-portage-dev] DB and binary dependency

2006-03-16 Thread Brian Harring
On Thu, Mar 16, 2006 at 02:58:00PM +0100, Paul de Vrieze wrote:
 On Wednesday 15 March 2006 16:13, Gustavo Sverzut Barbieri wrote:
  Hello,
 
  There is any provision for binary dependency on Gentoo/Portage? The
  way it works now is quite messy with things like revdep-rebuild.

 Solving this is not trivial. Basically suppose application X depends on 
 sys-libs/db-4.*
 
 This can be resolved by differently slotted libraries. We need to record 
 which one was actually used (not easy by itself, but more an issue of the 
 ebuild itself, if more than 1 candidate is available). But suppose that 
 we know that the application was compiled to use db-4.3.29. We must then 
 know that it is ok to replace the db-4.3.29 package with 4.3.30, but that 
 it isn't ok to replace it by 4.3.28 or 4.4.20.
 
 To make this things worse, the above example assumes that within a slot, 
 the libraries are binary compatible. There are examples of libraries that 
 are not. And what about a library whose interface is dependent on a third 
 library: B uses A, C uses B, but B exports A. So B is dependent on A, and 
 the binary package of C must record that B was compiled with A.
 
 In short, welcome to binary package hell. This is the reason that binary 
 distributions must use versions. Even debian. It is just very very hard 
 to fix these kinds of indirect dependencies.

You're forgetting we're equally screwed when upstream (*cough* 
openssl) goes and changes the soname while preserving abi.

Old solution to it was to add another metadata key to ebuilds, 
bincompat that is compared within slotting to see if a rebuild of 
rdepend consumers needs to occur.

fex...
alsa-lib-0.90
slot=0
bincompat=0

alsa-lib-1.0
slot=0
bincompat=1

The pkg manager does it's little dance to figure out what should be 
installed where (and what versions can coexist), while doing it if 
it's going to replace a pkg and bincompat differs, pull in the subset 
of the state graph at that point (including vdb) that rdeps on that 
package/slot and force a rebuild of them.

As per the norm, requires a smart resolver; for c++ would expect 
cycles to occur where the only solution is to pull in libstdc++ (fex) 
to sidestep horkage while doing the rebuilds...

Also note that (like all general solutions) it's not going to be able 
to cover all insane stuff; if the api breaks in transitioning 
bincompat is going to cause a minor explossion that is only resolvable 
by packages specifying exact dependencies (read: version ranges).
~harring


pgpFDZuONXCnW.pgp
Description: PGP signature


Re: [gentoo-portage-dev] DB and binary dependency

2006-03-16 Thread Paul de Vrieze
On Thursday 16 March 2006 15:18, tvali wrote:
  To make this things worse, the above example assumes that within a
  slot, the libraries are binary compatible. There are examples of
  libraries that are not. And what about a library whose interface is
  dependent on a third library: B uses A, C uses B, but B exports A. So
  B is dependent on A, and the binary package of C must record that B
  was compiled with A.
 
  In short, welcome to binary package hell. This is the reason that
  binary distributions must use versions. Even debian. It is just very
  very hard to fix these kinds of indirect dependencies.

 I think that there are many reasons, why such kind of important thing
 should not be automatically generated. Starting from the fact that one
 thing is dependency in binary, another thing is knowledge if this
 combination actually works, has no bugs, should not be masked.

 Anyway, if such binary dependancyes should ever be used, then it would
 be best to:
 1. register version number of interfaces
 2. register interface groups

 I mean:
 If some lib supports commands turnon() and turnoff(), but one version
 supports additionally command int checkifturnedon() and another
 supports char checkifturnedon(), then there should be:
 * Interface group, which states only that there are turnon and turnoff
 functions -- as many apps use only most standard and minimalistic set
 of commands from one lib, there is no need to know if some advanced
 features are 0.9.80 or 0.9.64 compatible.
 * Two interface versions, 0.9.80a and 0.9.80b, for example

While theoretically one can't even know that the semantics are correct, we 
know from experience that hell will not break through. Downgrading 
libraries is always problematic though. It's not desirable enough to try 
to support it.


 All those interfaces and groups could be file links --
 lib_interfacegroup_interface1.a would link to libinterface1.a.

Looking at a sub-package level is going to make things way too complex. I 
don't think that doing so is going to help gentoo/portage in any way.

 If there is 1 library with 2 sets of minimal functionality, then it's
 questionable, how to implement both (there would be linker error in
 some cases) -- which makes this conception weaker.

 Anyway, when standard interfaces are used and linked, that would help a
 bit.

IMHO we need to know from every binary or installed package which 
package version and slot was used to satisfy it. We also need to know 
which of those dependencies must be exported to packages which use this 
one.

All this must also take useflags into account ;-) of course.


 Anyway -- why should i check dependencies *after* building of a big
 pack, maybe hours of building, when i can check it without even
 downloading it, when there is nice portage tree? And, i think that
 making it binary would allow too much bad style -- there are imho
 things, which should not be automated without very-very careful
 thinking even if one can only win with automating them in theory and
 portage tree is most definitely one of them.

The difference between binary packages and tracking what is installed with 
which relations are very small. Basically once compiled, the candidates 
that may resolve a dependency are fewer. While a BINSLOT variable could 
be an option (Although I'm not sure whether this would be needed), we 
still need to know the minimal version of the package within the slot.

It's not about checking dependencies after building. It's about seeing 
whether one should rebuild package B because it depends on package A that 
has been rebuilt. Perhaps package A is slotted, so I don't need to 
rebuilt. But then when I want to remove the old version, portage should 
realise that while the source dependencies are still met, the binary 
dependencies have not been met, so a rebuild is needed.

Revdep-rebuild is not going to solve this. It is a hack because it does 
not work on portage/package level. It tries to understand the elf 
(executable) format and as a result it tries to find libraries and 
executables (can't find all though, if they are installed at the wrong 
place) that depend on a particular library. Then it tries to find the 
package that the dependant library/executable comes from. As however 
libraries may have unresolved symbols, some libraries (e.g. libapr-util) 
do not actually state their dependencies.

Further revdep-rebuild does not work with downgrades, or with scripts or 
other things that are not in the elf format. Finally revdep-rebuild needs 
to scour the filesystem too much.

Recording binary dependencies can be used to resolve this. It is however 
not easy to do.

Paul

-- 
Paul de Vrieze
Gentoo Developer
Mail: [EMAIL PROTECTED]
Homepage: http://www.devrieze.net


pgp9RhC4YUuuN.pgp
Description: PGP signature


Re: [gentoo-portage-dev] DB and binary dependency

2006-03-16 Thread Paul de Vrieze
On Thursday 16 March 2006 15:24, Brian Harring wrote:
I would have called bincompat BINSLOT, but the idea is the same.

 As per the norm, requires a smart resolver; for c++ would expect
 cycles to occur where the only solution is to pull in libstdc++ (fex)
 to sidestep horkage while doing the rebuilds...

Don't start about c++. Suppose you have a library A that is build against 
libstdc++ 5, It contains a class B with a toString method that returns an 
std::string instance. Next we have application C that extends class B in 
class D. It (also) redefines the toString method. This application is 
binary and we don't have (or don't want to use) the source. It was 
however linked against libstdc++ 6.

Question:
Which std::string should class D return in it's toString method? The one 
from libstdc++5 or from libstdc++6 ?

(And for a moment disregard the fact that actually the string classes are 
binary compatible so it doesn't matter).


-- answer follows after some lines ---













Answer:
There is no right answer. We have hit a situation whose solution is 
undefined. In reality this is solved by the fact that the dynamic 
linker does not look at which library a particular symbol (read name) is 
from.

With linker symbol versions, what happens is that the types are silently 
cast. This however breaks runtime type information. We can namely now get 
the situation where two std::string instances do not actually have the 
same runtime type. This breaks casting. Fun isn't it.

Paul

-- 
Paul de Vrieze
Gentoo Developer
Mail: [EMAIL PROTECTED]
Homepage: http://www.devrieze.net


pgpTksQAd6Qop.pgp
Description: PGP signature