tomcat-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Fred Janon <fja...@gmail.com>
Subject Re: Issue building the Unix daemon (jsvc) with the "configure" script in Tomcat7
Date Sat, 25 Aug 2012 07:20:06 GMT
Thanks for the suggestions Martin, I'll give them a try in a couple of
hours, I've got to do something now.

I tried the same daemon script at boot time from init.d and I get the same
issue, it runs under root. Does that mean that my setting for the tomcat
user for jsvc is not working? I assumed that jsvc would take that identity
to do everything, including creating the dirs and files.

Thanks

Fred

On Sat, Aug 25, 2012 at 3:40 AM, Martin Gainty <mgainty@hotmail.com> wrote:

>  save yourself a ton of permission-errors grief
>
> login tomcat
> mkdir /datadisk1/tomcat/conf/Catalina/localhost
> BTW when you do a
> ls -al /datadisk1/tomcat/conf/Catalina/localhost
> you should have god rights rwd pretty much everything
>
> sudo is tricky because you'll need to add tomcat user to run the tomcat
> daemon(sh) to
>
> /etc/sudoers
>
> but then you'll only have permission to run daemon(.sh)
> access to temp, work and log folders have not been granted
>
> cd $CATALINA_BASE
> chown tomcat work
> chown tomcat logs
> chown tomcat temp
>
> Your clock is 6 hours ahead of me so you will receive this email very
> early am..i assume you're in CET
> I'll check back SAT roughly 8am CST
> Martin Gainty
> ______________________________________________
> Verzicht und Vertraulichkeitanmerkung/Note de déni et de confidentialité
>
> Diese Nachricht ist vertraulich. Sollten Sie nicht der vorgesehene
> Empfaenger sein, so bitten wir hoeflich um eine Mitteilung. Jede unbefugte
> Weiterleitung oder Fertigung einer Kopie ist unzulaessig. Diese Nachricht
> dient lediglich dem Austausch von Informationen und entfaltet keine
> rechtliche Bindungswirkung. Aufgrund der leichten Manipulierbarkeit von
> E-Mails koennen wir keine Haftung fuer den Inhalt uebernehmen.
>
> Ce message est confidentiel et peut être privilégié. Si vous n'êtes pas le destinataire
prévu, nous te demandons avec bonté que pour satisfaire informez l'expéditeur. N'importe
quelle diffusion non autorisée ou la copie de ceci est interdite. Ce message sert à l'information
seulement et n'aura pas n'importe quel effet légalement obligatoire. Étant donné que les
email peuvent facilement être sujets à la manipulation, nous ne pouvons accepter aucune
responsabilité pour le contenu fourni.
>
>
>
>
> > From: fjanon@gmail.com
> > Date: Sat, 25 Aug 2012 00:22:50 +0200
> > Subject: Re: Issue building the Unix daemon (jsvc) with the "configure"
> script in Tomcat7
> > To: users@tomcat.apache.org
>
> >
> > Hi Jeff,
> >
> > I tried both:
> >
> > [ec2-user@ip-10-34-89-185 bin]$ ./daemon.sh start
> > Cannot set group id for user 'tomcat'
> > Error validating user 'tomcat'
> >
> > With sudo, I get the permissions issue. ec2-user is a sudoer.
> >
> > sudo ./daemon.sh start
> >
> > *SEVERE: Unable to create directory for deployment:
> > /datadisk1/tomcat/conf/Catalina/localhost*
> > Aug 24, 2012 1:29:12 PM org.apache.catalina.startup.HostConfig
> > deployDirectory
> > INFO: Deploying web application directory
> /datadisk1/tomcat/webapps/examples
> > Aug 24, 2012 1:29:12 PM org.apache.catalina.core.StandardContext
> > postWorkDirectory
> > *WARNING: Failed to create work directory
> > [/datadisk1/tomcat/work/Catalina/localhost/examples] for context
> [/examples]
> > *
> > Aug 24, 2012 1:29:13 PM org.apache.jasper.EmbeddedServletOptions <init>
> > *SEVERE: The scratchDir you specified:
> > /datadisk1/tomcat/work/Catalina/localhost/examples is unusable.*
> >
> > I am trying to see the whole command passed to jsvc but I am not fluent
> in
> > shell scripts and I can't get to echo it yet.
> >
> > Fred
> >
> > On Fri, Aug 24, 2012 at 10:45 PM, Jeff MAURY <jeffmaury@jeffmaury.com
> >wrote:
> >
> > > It probably means your current user (ec2-user) has not the rights to
> run as
> > > tomcat user.
> > > Try the same command with sudo in front, if ec2-user is part of the
> sudoers
> > >
> > > Jeff
> > >
> > >
> > > On Fri, Aug 24, 2012 at 4:09 PM, Fred Janon <fjanon@gmail.com> wrote:
> > >
> > > > Ah! Thanks Jeff, you are right, thanks. I checked and the OpenJDK
> > > installed
> > > > is not the full JDK (??? confusing). I had to install the
> OpenJDK-dev to
> > > > get the full JDK.
> > > >
> > > > I managed to build the jsvc (yeah!), now I am getting an error after
> > > > starting tomcat using daemon.sh, it seems that it runs a root, not
> tomcat
> > > > as I configured setenv.sh. tomcat cannot create some dirs, reported
> in
> > > > catalina-daemon.out.
> > > >
> > > > If I launch tomcat without being root, I get this error:
> > > >
> > > > [ec2-user@ip-10-34-89-185 bin]$ ./daemon.sh start
> > > > Cannot set group id for user 'tomcat'
> > > > Error validating user 'tomcat'
> > > >
> > > > Not sure what this means, I have a tomcat user in the tomcat group.
> > > >
> > > > If I launch tomcat using that command:
> > > >
> > > > sudo ./daemon.sh start
> > > >
> > > > with setenv.sh:
> > > >
> > > > export CATALINA_HOME=/datadisk1/tomcat
> > > > export CATALINA_OPTS="-server -Xms128M -Xmx512M"
> > > > export JAVA_HOME=/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre
> > > > export TOMCAT_USER=tomcat
> > > >
> > > > then catalina-daemon.out shows:
> > > >
> > > > Aug 24, 2012 1:29:11 PM org.apache.catalina.core.AprLifecycleListener
> > > init
> > > > SEVERE: An incompatible version 1.1.22 of the APR based Apache Tomcat
> > > > Native library is installed, while Tomcat requires version 1.1.24
> > > > Aug 24, 2012 1:29:11 PM org.apache.catalina.core.AprLifecycleListener
> > > init
> > > > SEVERE: An incompatible version 1.1.22 of the APR based Apache Tomcat
> > > > Native library is installed, while Tomcat requires version 1.1.24
> > > > Aug 24, 2012 1:29:11 PM org.apache.catalina.core.AprLifecycleListener
> > > init
> > > > SEVERE: An incompatible version 1.1.22 of the APR based Apache Tomcat
> > > > Native library is installed, while Tomcat requires version 1.1.24
> > > > Aug 24, 2012 1:29:11 PM org.apache.catalina.core.AprLifecycleListener
> > > init
> > > > SEVERE: An incompatible version 1.1.22 of the APR based Apache Tomcat
> > > > Native library is installed, while Tomcat requires version 1.1.24
> > > > Aug 24, 2012 1:29:11 PM org.apache.catalina.core.AprLifecycleListener
> > > init
> > > > SEVERE: An incompatible version 1.1.22 of the APR based Apache Tomcat
> > > > Native library is installed, while Tomcat requires version 1.1.24
> > > > Aug 24, 2012 1:29:11 PM org.apache.coyote.AbstractProtocol init
> > > > INFO: Initializing ProtocolHandler ["http-bio-8080"]
> > > > Aug 24, 2012 1:29:11 PM org.apache.coyote.AbstractProtocol init
> > > > INFO: Initializing ProtocolHandler ["ajp-bio-8009"]
> > > > Aug 24, 2012 1:29:11 PM org.apache.catalina.startup.Catalina load
> > > > INFO: Initialization processed in 1316 ms
> > > > Aug 24, 2012 1:29:12 PM org.apache.catalina.core.StandardService
> > > > startInternal
> > > > INFO: Starting service Catalina
> > > > Aug 24, 2012 1:29:12 PM org.apache.catalina.core.StandardEngine
> > > > startInternal
> > > > INFO: Starting Servlet Engine: Apache Tomcat/7.0.29
> > > > Aug 24, 2012 1:29:12 PM org.apache.catalina.startup.HostConfig start
> > > > *SEVERE: Unable to create directory for deployment:
> > > > /datadisk1/tomcat/conf/Catalina/localhost*
> > > > Aug 24, 2012 1:29:12 PM org.apache.catalina.startup.HostConfig
> > > > deployDirectory
> > > > INFO: Deploying web application directory
> > > > /datadisk1/tomcat/webapps/examples
> > > > Aug 24, 2012 1:29:12 PM org.apache.catalina.core.StandardContext
> > > > postWorkDirectory
> > > > *WARNING: Failed to create work directory
> > > > [/datadisk1/tomcat/work/Catalina/localhost/examples] for context
> > > > [/examples]
> > > > *
> > > > Aug 24, 2012 1:29:13 PM org.apache.jasper.EmbeddedServletOptions
> <init>
> > > > *SEVERE: The scratchDir you specified:
> > > > /datadisk1/tomcat/work/Catalina/localhost/examples is unusable.*
> > > > Aug 24, 2012 1:29:13 PM org.apache.catalina.startup.HostConfig
> > > > deployDirectory
> > > > INFO: Deploying web application directory
> /datadisk1/tomcat/webapps/ROOT
> > > > Aug 24, 2012 1:29:13 PM org.apache.catalina.core.StandardContext
> > > > postWorkDirectory
> > > > WARNING: Failed to create work directory
> > > > [/datadisk1/tomcat/work/Catalina/localhost/_] for context []
> > > > Aug 24, 2012 1:29:13 PM org.apache.jasper.EmbeddedServletOptions
> <init>
> > > > SEVERE: The scratchDir you specified:
> > > > /datadisk1/tomcat/work/Catalina/localhost/_ is unusable.
> > > > Aug 24, 2012 1:29:13 PM org.apache.catalina.startup.HostConfig
> > > > deployDirectory
> > > > INFO: Deploying web application directory
> /datadisk1/tomcat/webapps/docs
> > > > Aug 24, 2012 1:29:13 PM org.apache.catalina.core.StandardContext
> > > > postWorkDirectory
> > > > WARNING: Failed to create work directory
> > > > [/datadisk1/tomcat/work/Catalina/localhost/docs] for context [/docs]
> > > > Aug 24, 2012 1:29:13 PM org.apache.jasper.EmbeddedServletOptions
> <init>
> > > > SEVERE: The scratchDir you specified:
> > > > /datadisk1/tomcat/work/Catalina/localhost/docs is unusable.
> > > > Aug 24, 2012 1:29:13 PM org.apache.catalina.startup.HostConfig
> > > > deployDirectory
> > > > INFO: Deploying web application directory
> > > /datadisk1/tomcat/webapps/manager
> > > > Aug 24, 2012 1:29:13 PM org.apache.catalina.core.StandardContext
> > > > postWorkDirectory
> > > > WARNING: Failed to create work directory
> > > > [/datadisk1/tomcat/work/Catalina/localhost/manager] for context
> > > [/manager]
> > > > Aug 24, 2012 1:29:13 PM org.apache.jasper.EmbeddedServletOptions
> <init>
> > > > SEVERE: The scratchDir you specified:
> > > > /datadisk1/tomcat/work/Catalina/localhost/manager is unusable.
> > > > Aug 24, 2012 1:29:13 PM org.apache.catalina.startup.HostConfig
> > > > deployDirectory
> > > > INFO: Deploying web application directory
> > > > /datadisk1/tomcat/webapps/host-manager
> > > > Aug 24, 2012 1:29:13 PM org.apache.catalina.core.StandardContext
> > > > postWorkDirectory
> > > > WARNING: Failed to create work directory
> > > > [/datadisk1/tomcat/work/Catalina/localhost/host-manager] for context
> > > > [/host-manager]
> > > > Aug 24, 2012 1:29:13 PM org.apache.jasper.EmbeddedServletOptions
> <init>
> > > > SEVERE: The scratchDir you specified:
> > > > /datadisk1/tomcat/work/Catalina/localhost/host-manager is unusable.
> > > > Aug 24, 2012 1:29:13 PM org.apache.coyote.AbstractProtocol start
> > > > INFO: Starting ProtocolHandler ["http-bio-8080"]
> > > > Aug 24, 2012 1:29:13 PM org.apache.coyote.AbstractProtocol start
> > > > INFO: Starting ProtocolHandler ["ajp-bio-8009"]
> > > > Aug 24, 2012 1:29:13 PM org.apache.catalina.startup.Catalina start
> > > > INFO: Server startup in 1613 ms
> > > >
> > > > I am not sure my "export TOMCAT_USER=tomcat" is right, or if I am
> missing
> > > > something.
> > > >
> > > > Regards,
> > > >
> > > > Fred
> > > >
> > > > On Fri, Aug 24, 2012 at 12:01 PM, Jeff MAURY <
> jeffmaury@jeffmaury.com
> > > > >wrote:
> > > >
> > > > > Fred,
> > > > >
> > > > > you are getting confused by the term OpenJDK. It comes in two
> flavor,
> > > JRE
> > > > > and JDK. I have some .h files on my Ubuntu server, but not under
> > > > > /usr/lib/jvm/java-1.6.0-openjdk but under
> /usr/lib/jvm/java-6-openjdk
> > > > >
> > > > > Regards
> > > > > Jeff
> > > > >
> > > > >
> > > > > On Fri, Aug 24, 2012 at 8:52 AM, Fred Janon <fjanon@gmail.com>
> wrote:
> > > > >
> > > > > > Hi Jeff,
> > > > > >
> > > > > > Thanks, but I read the instructions and requirements for a C
> compiler
> > > > an
> > > > > > the JDK. As shown in my original message there is a JDK
> > > > > >
> > > > > > > /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/*
> > > > > >
> > > > > > but no "jni_md.h" in the Open JDK. As I said the "jni_md.h"
> seems to
> > > be
> > > > > in
> > > > > > the Windows JDK, but not in the Linux one.
> > > > > >
> > > > > > Cheers,
> > > > > >
> > > > > > Fred
> > > > > >
> > > > > > On Fri, Aug 24, 2012 at 7:51 AM, Jeff MAURY <
> jeffmaury@jeffmaury.com
> > > >
> > > > > > wrote:
> > > > > >
> > > > > > > You need a JDK to be installed on your machine and it seems
> you've
> > > > > only a
> > > > > > > JRE
> > > > > > >
> > > > > > > Jeff
> > > > > > >
> > > > > > >
> > > > > > > On Thu, Aug 23, 2012 at 10:12 PM, Fred Janon <fjanon@gmail.com
> >
> > > > wrote:
> > > > > > >
> > > > > > > > Hi,
> > > > > > > >
> > > > > > > > I am trying to build the Unix deamon jsvc in AWS EC2
Linux.
> I did
> > > > not
> > > > > > > > install Tomcat7 that comes with the AWS Linux, I downloaded
> > > Tomcat7
> > > > > > from
> > > > > > > > the Apache Tomcat website, I installed it and ran
Tomcat7
> > > > > successfully.
> > > > > > > Now
> > > > > > > > I am trying to build the daemon to run Tomcat7 as
a daemon.
> I get
> > > > an
> > > > > > > error
> > > > > > > > running the "configure" script as indicated in the
Tomcat
> > > > > > documentation.
> > > > > > > I
> > > > > > > > did a lot of searching on the web and cannot find
a solution
> to
> > > > this
> > > > > > > issue.
> > > > > > > > I am not fluent in shell scripting, so my understanding
of
> > > > > "configure"
> > > > > > is
> > > > > > > > very limited.
> > > > > > > >
> > > > > > > > Do I need to regenerate the "configure" script or
do I need
> to
> > > > modify
> > > > > > the
> > > > > > > > script?
> > > > > > > >
> > > > > > > > The error is:
> > > > > > > > *checking for JDK os include directory... Cannot find
> jni_md.h in
> > > > > > > > /usr/lib/jvm/jre/*
> > > > > > > > *configure: error: You should retry --with-os-type=SUBDIR*
> > > > > > > > *
> > > > > > > > *
> > > > > > > > It looks like *"jni_md.h"* is part of the Windows
JDK, *but
> it's
> > > > not
> > > > > in
> > > > > > > the
> > > > > > > > Linux OpenJDK on CentOS.*
> > > > > > > >
> > > > > > > > I don't really understand why the message says
> "*with-os-type*"
> > > > where
> > > > > > it
> > > > > > > > seems to mean JDK?
> > > > > > > >
> > > > > > > > As indicated in the INSTALL.txt below, I am reporting
the
> issue,
> > > > > hoping
> > > > > > > > that someone can give me a solution or a patch for
the
> script...
> > > > > > > >
> > > > > > > > "Depending on your JDK layout, configure might fail
to find
> the
> > > JNI
> > > > > > > > machine dependant include file (jni_md.h). If that's
the
> case use
> > > > the
> > > > > > > > --with-os-type=<subdir> parameter where subdir
points to the
> > > > > directory
> > > > > > > > within JDK include directory containing jni_md.h file.
> > > > > > > > If your operating system is supported, configure will
go thru
> > > > > cleanly,
> > > > > > > > otherwise it will report an error (please send us
the
> details of
> > > > your
> > > > > > > > OS/JDK, or a patch against the sources)."
> > > > > > > >
> > > > > > > > Below is the console output running configure and
some
> > > information
> > > > > > about
> > > > > > > > the jdk installed.
> > > > > > > >
> > > > > > > > [ec2-user@ip-10-244-162-78 unix]$ *./configure*
> > > > > > > > *** Current host ***
> > > > > > > > checking build system type... i686-pc-linux-gnu
> > > > > > > > checking host system type... i686-pc-linux-gnu
> > > > > > > > checking cached host system type... ok
> > > > > > > > *** C-Language compilation tools ***
> > > > > > > > checking for gcc... gcc
> > > > > > > > checking for C compiler default output file name...
a.out
> > > > > > > > checking whether the C compiler works... yes
> > > > > > > > checking whether we are cross compiling... no
> > > > > > > > checking for suffix of executables...
> > > > > > > > checking for suffix of object files... o
> > > > > > > > checking whether we are using the GNU C compiler...
yes
> > > > > > > > checking whether gcc accepts -g... yes
> > > > > > > > checking for gcc option to accept ANSI C... none needed
> > > > > > > > checking for ranlib... ranlib
> > > > > > > > checking for strip... strip
> > > > > > > > *** Host support ***
> > > > > > > > checking C flags dependant on host system type...
ok
> > > > > > > > *** Java compilation tools ***
> > > > > > > > *checking for JDK os include directory... Cannot find
> jni_md.h in
> > > > > > > > /usr/lib/jvm/jre/*
> > > > > > > > *configure: error: You should retry --with-os-type=SUBDIR*
> > > > > > > >
> > > > > > > > [ec2-user@ip-10-244-162-78 unix]$ find / -name 'jni_md.h'
> > > > > 2>/dev/null
> > > > > > > >
> > > > > > > > [ec2-user@ip-10-244-162-78 unix]$ find / -name '*jni*'
> > > 2>/dev/null
> > > > > > > > /usr/share/java-jni
> > > > > > > >
> > > > > > > >
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> /datadisk1/tomcat/bin/commons-daemon-1.0.10-native-src/windows/src/javajni.c
> > > > > > > >
> > > > > > > >
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> /datadisk1/tomcat/bin/commons-daemon-1.0.10-native-src/windows/include/javajni.h
> > > > > > > >
> > > > > > > > Installed Packages
> > > > > > > > java-1.6.0-openjdk.i686
> > > installed
> > > > > > > >
> > > > > > > > ----------------------------------------
> > > > > > > > [ec2-user@ip-10-244-162-78 unix]$ *./configure
> > > > > > > > -with-java=/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre*
> > > > > > > > *** Current host ***
> > > > > > > > checking build system type... i686-pc-linux-gnu
> > > > > > > > checking host system type... i686-pc-linux-gnu
> > > > > > > > checking cached host system type... ok
> > > > > > > > *** C-Language compilation tools ***
> > > > > > > > checking for gcc... gcc
> > > > > > > > checking for C compiler default output file name...
a.out
> > > > > > > > checking whether the C compiler works... yes
> > > > > > > > checking whether we are cross compiling... no
> > > > > > > > checking for suffix of executables...
> > > > > > > > checking for suffix of object files... o
> > > > > > > > checking whether we are using the GNU C compiler...
yes
> > > > > > > > checking whether gcc accepts -g... yes
> > > > > > > > checking for gcc option to accept ANSI C... none needed
> > > > > > > > checking for ranlib... ranlib
> > > > > > > > checking for strip... strip
> > > > > > > > *** Host support ***
> > > > > > > > checking C flags dependant on host system type...
ok
> > > > > > > > *** Java compilation tools ***
> > > > > > > > checking JAVA_HOME...
> /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre
> > > > > > > > *checking for JDK os include directory... Cannot find
> jni_md.h in
> > > > > > > > /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre/*
> > > > > > > > *configure: error: You should retry --with-os-type=SUBDIR*
> > > > > > > >
> > > > > > > > -----------------------------------------
> > > > > > > > configure script excerpt:
> > > > > > > >
> > > > > > > > echo "$as_me:$LINENO: checking for JDK os include
directory"
> > > > >&5
> > > > > > > > echo $ECHO_N "checking for JDK os include directory...
> $ECHO_C"
> > > >&6
> > > > > > > > JAVA_OS=NONE
> > > > > > > > if test -f $JAVA_HOME/$JAVA_INC/jni_md.h
> > > > > > > > then
> > > > > > > > JAVA_OS=""
> > > > > > > > else
> > > > > > > > for f in $JAVA_HOME/$JAVA_INC/*/jni_md.h
> > > > > > > > do
> > > > > > > > if test -f $f; then
> > > > > > > > JAVA_OS=`dirname $f`
> > > > > > > > JAVA_OS=`basename $JAVA_OS`
> > > > > > > > echo " $JAVA_OS"
> > > > > > > > break
> > > > > > > > fi
> > > > > > > > done
> > > > > > > > if test "x$JAVA_OS" = "xNONE"; then
> > > > > > > > echo "$as_me:$LINENO: result: Cannot find jni_md.h
in
> > > > > > > > ${JAVA_HOME}/${OS}" >&5
> > > > > > > > echo "${ECHO_T}Cannot find jni_md.h in ${JAVA_HOME}/${OS}"
> >&6
> > > > > > > > { { echo "$as_me:$LINENO: error: You should retry
> > > > > > > > --with-os-type=SUBDIR" >&5
> > > > > > > > echo "$as_me: error: You should retry --with-os-type=SUBDIR"
> > > >&2;}
> > > > > > > > { (exit 1); exit 1; }; }
> > > > > > > > fi
> > > > > > > > fi
> > > > > > > >
> > > > > > > > -----------------------------------------
> > > > > > > >
> > > > > > > > Thanks
> > > > > > > >
> > > > > > > > Fred
> > > > > > > >
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > > --
> > > > > > > Jeff MAURY
> > > > > > >
> > > > > > >
> > > > > > > "Legacy code" often differs from its suggested alternative
by
> > > > actually
> > > > > > > working and scaling.
> > > > > > > - Bjarne Stroustrup
> > > > > > >
> > > > > > > http://www.jeffmaury.com
> > > > > > > http://riadiscuss.jeffmaury.com
> > > > > > > http://www.twitter.com/jeffmaury
> > > > > > >
> > > > > >
> > > > >
> > > > >
> > > > >
> > > > > --
> > > > > Jeff MAURY
> > > > >
> > > > >
> > > > > "Legacy code" often differs from its suggested alternative by
> actually
> > > > > working and scaling.
> > > > > - Bjarne Stroustrup
> > > > >
> > > > > http://www.jeffmaury.com
> > > > > http://riadiscuss.jeffmaury.com
> > > > > http://www.twitter.com/jeffmaury
> > > > >
> > > >
> > >
> > >
> > >
> > > --
> > > Jeff MAURY
> > >
> > >
> > > "Legacy code" often differs from its suggested alternative by actually
> > > working and scaling.
> > > - Bjarne Stroustrup
> > >
> > > http://www.jeffmaury.com
> > > http://riadiscuss.jeffmaury.com
> > > http://www.twitter.com/jeffmaury
> > >
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message