You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ant.apache.org by Jon Stevens <jo...@latchkey.com> on 2000/12/05 02:22:34 UTC

A Users Experience

Hi All,

I checked the head of Ant out of CVS, I typed:

cd jakarta-ant
./bootstrap.sh

I then got a bazillion build errors. Watching the errors fly by, it appears
as though it was a result of not having some .jar file or another. I don't
understand why the bootstrap process is looking for Regexp.jar, but that is
a whole different issue.

So, I looked at the docs/index.html document to see what is required for
bootstrapping Ant. There is absolutely no documentation in there.

So, would someone like to please explain to me what contortions I need to go
through in order to build Ant from CVS?

I have a patch for the Delete.java task that I would like to contribute, but
I can't because I can't even build the system so that I can test it before
committing it. Now, this is a simple little patch that adds the -f
functionality commonly found in the unix "rm" command.

I'm going to rant once more that any simple user should be able to check Ant
out of CVS and build it. If the documentation at least showed me the .jar
files that I needed, I would be up for downloading all of them and
installing them into whatever classpath I need to setup, but of course there
isn't any documentation, so this stuff should just go into CVS and make all
of our lives easier.

Sigh,

-jon


Re: A Users Experience

Posted by "Simeon H.K. Fitch" <si...@fitch.net>.
On Mon, Dec 04, 2000 at 07:22:37PM -0800, Jon Stevens wrote:
> 
> > At which part of the above instructions did your attempt die?
> 
> I ALREADY STATED WHAT HAPPENED!
> 
> -jon
> 
> -- 
> Honk if you love peace and quiet.

Honk Honk.

Re: A Users Experience

Posted by Jon Stevens <jo...@latchkey.com>.
on 12/4/2000 5:46 PM, "Simeon H.K. Fitch" <si...@fitch.net> wrote:


> The jakarta-ant/README that I have has the entry:
> 
> For building see docs/index.html#buildingant.
> 
> When I go to that section I get the following directions (bare with me here):
> 
> Go to the directory jakarta-ant.
> 
> Make sure the JDK is in you path.
> 
> Set the JAVA_HOME environment variable. This should be set to the
> directory where the JDK is installed. See Installing Ant for examples
> on how to do this for your operating system.

go back and read my posting where i said that there were compile errors
because of missing .jar files.

There is NOTHING in that documentation that states the dependencies of Ant
on other .jar files.

> At which part of the above instructions did your attempt die?

I ALREADY STATED WHAT HAPPENED!

> Can you
> offer some recommendations on how the instructions and/or the
> bootstrap.sh script can be improved? It is important to get specific
> recommendations, especially from non-regular submitters, as it is
> often hard to see the forest for the trees when you have been using it
> for a while.

Include documentation on all the dependencies of Ant. Also add those
dependency .jar files into CVS so that people can download it from CVS and
build it without having to jump through hoops.

-jon

-- 
Honk if you love peace and quiet.



Re: A Users Experience

Posted by "Simeon H.K. Fitch" <si...@fitch.net>.
On Mon, Dec 04, 2000 at 05:22:34PM -0800, Jon Stevens wrote:

<snip>

> 
> cd jakarta-ant
> ./bootstrap.sh
> 
> I then got a bazillion build errors. 

<snip>

> I'm going to rant once more that any simple user should be able to check Ant
> out of CVS and build it. If the documentation at least showed me the .jar
> files that I needed, I would be up for downloading all of them and
> installing them into whatever classpath I need to setup, but of course there
> isn't any documentation, so this stuff should just go into CVS and make all
> of our lives easier.
> 

The jakarta-ant/README that I have has the entry:

	For building see docs/index.html#buildingant.

When I go to that section I get the following directions (bare with me here):

   Go to the directory jakarta-ant.

   Make sure the JDK is in you path.

   Set the JAVA_HOME environment variable. This should be set to the
   directory where the JDK is installed. See Installing Ant for examples
   on how to do this for your operating system.

   Run bootstrap.bat (Windows) or bootstrap.sh (UNIX) to build a
   bootstrap version of Ant.

   When finished, use

     build.bat -Dant.dist.dir=<directory to install Ant> dist

   for Windows, and

     build.sh -Dant.dist.dir=<directory to install Ant> dist

   for UNIX, to create a binary distribution of Ant. This distribution
   can be found in the directory you specified.

<snip>

   There are lots of variants that can be used to run Ant. What you need
   is at least the following:

   The classpath for Ant must contain ant.jar and any jars/classes needed
   for your chosen JAXP compliant XML parser.

   When you need JDK functionality (like a javac task, or a rmic task),
   then for JDK 1.1, the classes.zip file of the JDK must be added to the
   classpath; for JDK 1.2 or JDK 1.3, tools.jar must be added. The
   scripts supplied with ant, in the bin directory, will add tools.jar
   automatically if the JAVA_HOME environment variable is set.

-----

At which part of the above instructions did your attempt die? Can you
offer some recommendations on how the instructions and/or the
bootstrap.sh script can be improved? It is important to get specific
recommendations, especially from non-regular submitters, as it is
often hard to see the forest for the trees when you have been using it
for a while.

thx,

sim

-- 
Mustard Seed Software
mailto:simeon@fitch.net

RE: A Users Experience

Posted by Peter Donald <do...@apache.org>.
At 01:20  5/12/00 +1100, Conor MacNeill wrote:
>> From: Peter Donald [mailto:donaldp@apache.org]
>> Sent: Tuesday, 5 December 2000 12:41
>> To: ant-dev@jakarta.apache.org
>> Subject: Re: A Users Experience
>>
>> It is not pretty if you are on win32 but hopefully that will be fixed in a
>> days. Basically all I do is drop xerces.jar, regexp.jar into lib directory
>> as well as any other things I need during build (junit/stylebook/other).
>> Then I hack the build scripts to hardwire a heap of junk. The scripts make
>> too many assumptions that are correct for my build environment (ie win98
>> with no CLASSPATH set) so I have modded versions sitting about.
>
>What assumptions?

That you set CLASSPATH and haven't set ANT_HOME to incompatable dir nor
JAVA_HOME to different JVMs. As I run a lot of different things from one
shell environment (by virtue of Emacs) this is not always appropriate. I
remember that at one stage it also used NT spcific 

>
>>
>> give me a little time ;)
>> It is perfectly doable in *nix but the problem is that win32 scripting
>> leaves a little to be desired. It doesn't even have a basic command like
>> "dirname" ! arg. There are two basic solutions I have come to see. We can
>> bootstrap using an old version of ant or we can write native code
>> (yuck!).
>>
>> I remember a while back bootstrapping from an old ant was -1'ed
>> but is that
>> still considered a bad thing? What it would involve doing is the
>> following.
>> Changing destination of jars/scripts/whatever to another directory
>>
>> ie
>> dist/bin/*
>> dist/lib/ant.jar
>>
>> It would also simplify build process and allow inclusion/exclusion of
>> libraries  so you could magically include correct versions of
>> junit/whatever.
>>
>> Would anyone hate this?
>
>Yes. -1. If you need ant to build ant, then it is not a bootstrap. Will we
>include an ant.jar in ant CVS to build ant. Ugh.
>
>> I know it involves another jar in CVS but this
>> shouldn't be an issue as it will never be seen outside the ant build
>> process and thus will not effect any other thing using ant or being
>> developed with ant.
>
>Will you be adding bsf.jar, xalan.jar, regexp.jar, jakarata-oro.jar,
>netcomponents.jar, etc, etc.
>
>Hey, soon you'll only need to download/checkout ant as it will include every
>other open source tool around too.
>
Cheers,

Pete

*-----------------------------------------------------*
| "Faced with the choice between changing one's mind, |
| and proving that there is no need to do so - almost |
| everyone gets busy on the proof."                   |
|              - John Kenneth Galbraith               |
*-----------------------------------------------------*


Re: A Users Experience

Posted by Jon Stevens <jo...@latchkey.com>.
I'm on Win98 running things under bash and cygwin. So, effectively, assume
that I'm on Unix like the rest of you.

on 12/4/2000 5:41 PM, "Peter Donald" <do...@apache.org> wrote:

> It is not pretty if you are on win32 but hopefully that will be fixed in a
> days. Basically all I do is drop xerces.jar, regexp.jar into lib directory
> as well as any other things I need during build (junit/stylebook/other).
> Then I hack the build scripts to hardwire a heap of junk. The scripts make
> too many assumptions that are correct for my build environment (ie win98
> with no CLASSPATH set) so I have modded versions sitting about.

HACK the build scripts?????????????????????? WTF?

> give me a little time ;)
> It is perfectly doable in *nix but the problem is that win32 scripting
> leaves a little to be desired. It doesn't even have a basic command like

Under unix it sucks as well.

I'm really really surprised that a tool to making building software easy is
so hard to build itself.

This is exactly why I check .jar files into CVS.

-jon

-- 
Honk if you love peace and quiet.



Re: A Users Experience

Posted by James Duncan Davidson <du...@x180.net>.
On 12/4/00 5:41 PM, "Peter Donald" <do...@apache.org> wrote:

> give me a little time ;)
> It is perfectly doable in *nix but the problem is that win32 scripting
> leaves a little to be desired. It doesn't even have a basic command like
> "dirname" ! arg. There are two basic solutions I have come to see. We can
> bootstrap using an old version of ant or we can write native code (yuck!).

3rd solution -- bootstrap it using Java. This is what AntEater does. Build
process is:

    javac Bootstrap.java
    java Bootstrap

That's it. Yeah, it's not user friendly yet if you don't have xml-crimson
checked out right beside it, but it's still not even dogfood quality yet.

.duncan

-- 
James Duncan Davidson                                        duncan@x180.net
                                                                  !try; do()


RE: A Users Experience

Posted by Conor MacNeill <co...@ebinteractive.com.au>.
> From: Peter Donald [mailto:donaldp@apache.org]
> Sent: Tuesday, 5 December 2000 12:41
> To: ant-dev@jakarta.apache.org
> Subject: Re: A Users Experience
>
> It is not pretty if you are on win32 but hopefully that will be fixed in a
> days. Basically all I do is drop xerces.jar, regexp.jar into lib directory
> as well as any other things I need during build (junit/stylebook/other).
> Then I hack the build scripts to hardwire a heap of junk. The scripts make
> too many assumptions that are correct for my build environment (ie win98
> with no CLASSPATH set) so I have modded versions sitting about.

What assumptions?

>
> give me a little time ;)
> It is perfectly doable in *nix but the problem is that win32 scripting
> leaves a little to be desired. It doesn't even have a basic command like
> "dirname" ! arg. There are two basic solutions I have come to see. We can
> bootstrap using an old version of ant or we can write native code
> (yuck!).
>
> I remember a while back bootstrapping from an old ant was -1'ed
> but is that
> still considered a bad thing? What it would involve doing is the
> following.
> Changing destination of jars/scripts/whatever to another directory
>
> ie
> dist/bin/*
> dist/lib/ant.jar
>
> It would also simplify build process and allow inclusion/exclusion of
> libraries  so you could magically include correct versions of
> junit/whatever.
>
> Would anyone hate this?

Yes. -1. If you need ant to build ant, then it is not a bootstrap. Will we
include an ant.jar in ant CVS to build ant. Ugh.

> I know it involves another jar in CVS but this
> shouldn't be an issue as it will never be seen outside the ant build
> process and thus will not effect any other thing using ant or being
> developed with ant.

Will you be adding bsf.jar, xalan.jar, regexp.jar, jakarata-oro.jar,
netcomponents.jar, etc, etc.

Hey, soon you'll only need to download/checkout ant as it will include every
other open source tool around too.


Re: A Users Experience

Posted by Peter Donald <do...@apache.org>.
At 05:22  4/12/00 -0800, you wrote:
>I then got a bazillion build errors. Watching the errors fly by, it appears
>as though it was a result of not having some .jar file or another. I don't
>understand why the bootstrap process is looking for Regexp.jar, but that is
>a whole different issue.

>So, would someone like to please explain to me what contortions I need to go
>through in order to build Ant from CVS?

It is not pretty if you are on win32 but hopefully that will be fixed in a
days. Basically all I do is drop xerces.jar, regexp.jar into lib directory
as well as any other things I need during build (junit/stylebook/other).
Then I hack the build scripts to hardwire a heap of junk. The scripts make
too many assumptions that are correct for my build environment (ie win98
with no CLASSPATH set) so I have modded versions sitting about.

>I'm going to rant once more that any simple user should be able to check Ant
>out of CVS and build it. If the documentation at least showed me the .jar
>files that I needed, I would be up for downloading all of them and
>installing them into whatever classpath I need to setup, but of course there
>isn't any documentation, so this stuff should just go into CVS and make all
>of our lives easier.

give me a little time ;)
It is perfectly doable in *nix but the problem is that win32 scripting
leaves a little to be desired. It doesn't even have a basic command like
"dirname" ! arg. There are two basic solutions I have come to see. We can
bootstrap using an old version of ant or we can write native code (yuck!). 

I remember a while back bootstrapping from an old ant was -1'ed but is that
still considered a bad thing? What it would involve doing is the following.
Changing destination of jars/scripts/whatever to another directory

ie
dist/bin/*
dist/lib/ant.jar

It would also simplify build process and allow inclusion/exclusion of
libraries  so you could magically include correct versions of junit/whatever. 

Would anyone hate this? I know it involves another jar in CVS but this
shouldn't be an issue as it will never be seen outside the ant build
process and thus will not effect any other thing using ant or being
developed with ant.

Cheers,

Pete

*-----------------------------------------------------*
| "Faced with the choice between changing one's mind, |
| and proving that there is no need to do so - almost |
| everyone gets busy on the proof."                   |
|              - John Kenneth Galbraith               |
*-----------------------------------------------------*


Re: A Users Experience

Posted by James Duncan Davidson <du...@x180.net>.
On 12/4/00 8:28 PM, "Conor MacNeill" <co...@ebinteractive.com.au> wrote:

> Because cygwin passes a unix classpath (colon separated) to a win32 tool
> (javac) which doesn't like it (it want semi-colon separated). That is why
> the compile cannot find the BuildException class which is part of the ant
> source.

Which is why we shouldn't rely upon *any* scripting tool... And why I took
the bootstrap approach I took for AntEater.

-- 
James Duncan Davidson                                        duncan@x180.net
                                                                  !try; do()


Re: A Users Experience

Posted by "Craig R. McClanahan" <Cr...@eng.sun.com>.
James Duncan Davidson wrote:

> On 12/6/00 1:48 AM, "Stefan Bodewig" <bo...@apache.org> wrote:
>
> > Search in your mail backlog for Jon's CJAN proposal, Subject was
> > "[PROPOSAL] jar distribution system" 8-).
>
> Oh, I'm +1 for a CJAN. In fact, Pier and I talked for a  couple of hours one
> day about how to make it work well.
>
> But until CJAN is implemented, we need a workaround solution (iow, a hack)
> that we can use now, not later. At least it would be nice. Of course, I
> don't mind having the bootstrapper go off and suck in the xml classes -- it
> works quite well really. :)
>

There's one potential use case where doing it this way might bite:
* Connect my laptop to the network
* Do my "cvs update" of the Ant space but forget to bootstrap
* Disconnect from the network and get on a plane
* ./bootstrap.sh
* oops ... no parser :-(

Of course, it's shame on me for not remembering to bootstrap when I was
connected, but it's gonna happen.

>
> --
> James Duncan Davidson                                        duncan@x180.net
>                                                                   !try; do()

Craig McClanahan

Re: A Users Experience

Posted by James Duncan Davidson <du...@x180.net>.
On 12/6/00 10:43 AM, "Jon Stevens" <jo...@latchkey.com> wrote:

> -1 on any more "temporary" hacks.

Ok. I'm all ears and eyes for a solution.. :) Till then, are you +/- just
grabbing the sources from a parallel workspace?

-- 
James Duncan Davidson                                        duncan@x180.net
                                                                  !try; do()


Re: A Users Experience

Posted by Jon Stevens <jo...@latchkey.com>.
on 12/6/2000 2:03 AM, "James Duncan Davidson" <du...@x180.net> wrote:

> Oh, I'm +1 for a CJAN. In fact, Pier and I talked for a  couple of hours one
> day about how to make it work well.
> 
> But until CJAN is implemented, we need a workaround solution (iow, a hack)
> that we can use now, not later. At least it would be nice. Of course, I
> don't mind having the bootstrapper go off and suck in the xml classes -- it
> works quite well really. :)
> 
> -- 
> James Duncan Davidson                                        duncan@x180.net
> !try; do()

-1 on any more "temporary" hacks.

-jon


Re: A Users Experience

Posted by James Duncan Davidson <du...@x180.net>.
On 12/6/00 1:48 AM, "Stefan Bodewig" <bo...@apache.org> wrote:

> Search in your mail backlog for Jon's CJAN proposal, Subject was
> "[PROPOSAL] jar distribution system" 8-).

Oh, I'm +1 for a CJAN. In fact, Pier and I talked for a  couple of hours one
day about how to make it work well.

But until CJAN is implemented, we need a workaround solution (iow, a hack)
that we can use now, not later. At least it would be nice. Of course, I
don't mind having the bootstrapper go off and suck in the xml classes -- it
works quite well really. :)

-- 
James Duncan Davidson                                        duncan@x180.net
                                                                  !try; do()


Re: A Users Experience

Posted by Stefan Bodewig <bo...@apache.org>.
James Duncan Davidson <du...@x180.net> wrote:

> Another option is to have a /lib area on the website and use ftp
> sync of jars with version numbers (crimson-2000-12-05.jar for
> example) and let each tool use what's most recent.

Search in your mail backlog for Jon's CJAN proposal, Subject was
"[PROPOSAL] jar distribution system" 8-).

Stefan

Re: A Users Experience

Posted by James Duncan Davidson <du...@x180.net>.
On 12/6/00 1:27 AM, "Peter Donald" <do...@apache.org> wrote:

>> So -- how about lets have a jars-promoted workspace that contains the latest
>> mostly stable jars from the various projects in one co-locate space that we
>> can all use?
>> 
>> (the name chosen to allow jars-stable as well!).
> 
> Because they don't all interoperate. Some uses jaxp1.0, others jaxp1.1.
> Some use conflicting stylebook, xalan, xerces versions. Jetspeed often is a
> few months behind cocoon1/turbine jars etc.

Yes.. And part of the reason we have this mess is that we don't have a /lib
like thing to hold what we need.

Another option is to have a /lib area on the website and use ftp sync of
jars with version numbers (crimson-2000-12-05.jar for example) and let each
tool use what's most recent. Of course this means that the lib/ directory on
your machine will bloat, but it's no worse than all the .jars sprinkled
throughout the source trees.

.duncan

-- 
James Duncan Davidson                                        duncan@x180.net
                                                                  !try; do()


Re: A Users Experience

Posted by Peter Donald <do...@apache.org>.
At 01:18  6/12/00 -0800, you wrote:
>On 12/5/00 12:28 PM, "Jon Stevens" <jo...@latchkey.com> wrote:
>
>> on 12/5/2000 1:08 AM, "Peter Donald" <do...@apache.org> wrote:
>> 
>>>> You have championed jars in CVS and used Turbine as an example. Turbine,
>>>> however, chooses to assume a colocated checkout for servlet.jar. (I
>>>> couldn't find anything in the readme about that, though). Would you
>>>> support such an approach for ant too?
>>> 
>>> I think that was an oversite ... about 10 minutes after you wrote about it
>>> on Ant-dev I saw a commit go by on turbine than added it in ;)
>> 
>> Bingo.
>
>So -- how about lets have a jars-promoted workspace that contains the latest
>mostly stable jars from the various projects in one co-locate space that we
>can all use?
>
>(the name chosen to allow jars-stable as well!).

Because they don't all interoperate. Some uses jaxp1.0, others jaxp1.1.
Some use conflicting stylebook, xalan, xerces versions. Jetspeed often is a
few months behind cocoon1/turbine jars etc.

Cheers,

Pete

*-----------------------------------------------------*
| "Faced with the choice between changing one's mind, |
| and proving that there is no need to do so - almost |
| everyone gets busy on the proof."                   |
|              - John Kenneth Galbraith               |
*-----------------------------------------------------*


Re: A Users Experience

Posted by James Duncan Davidson <du...@x180.net>.
On 12/5/00 12:28 PM, "Jon Stevens" <jo...@latchkey.com> wrote:

> on 12/5/2000 1:08 AM, "Peter Donald" <do...@apache.org> wrote:
> 
>>> You have championed jars in CVS and used Turbine as an example. Turbine,
>>> however, chooses to assume a colocated checkout for servlet.jar. (I
>>> couldn't find anything in the readme about that, though). Would you
>>> support such an approach for ant too?
>> 
>> I think that was an oversite ... about 10 minutes after you wrote about it
>> on Ant-dev I saw a commit go by on turbine than added it in ;)
> 
> Bingo.

So -- how about lets have a jars-promoted workspace that contains the latest
mostly stable jars from the various projects in one co-locate space that we
can all use?

(the name chosen to allow jars-stable as well!).

-- 
James Duncan Davidson                                        duncan@x180.net
                                                                  !try; do()


Re: A Users Experience

Posted by Jon Stevens <jo...@latchkey.com>.
on 12/5/2000 1:08 AM, "Peter Donald" <do...@apache.org> wrote:

>> You have championed jars in CVS and used Turbine as an example. Turbine,
>> however, chooses to assume a colocated checkout for servlet.jar. (I
>> couldn't find anything in the readme about that, though). Would you
>> support such an approach for ant too?
> 
> I think that was an oversite ... about 10 minutes after you wrote about it
> on Ant-dev I saw a commit go by on turbine than added it in ;)

Bingo.

-jon


RE: A Users Experience

Posted by Peter Donald <do...@apache.org>.
At 08:08  5/12/00 +1100, you wrote:
>> Oh wait...I actually care about the fact that novice
>> developers want to
>> compile from source code.
>>
>
>I care too :-)
>
>You have championed jars in CVS and used Turbine as an example. Turbine,
>however, chooses to assume a colocated checkout for servlet.jar. (I
>couldn't find anything in the readme about that, though). Would you
>support such an approach for ant too?

I think that was an oversite ... about 10 minutes after you wrote about it
on Ant-dev I saw a commit go by on turbine than added it in ;)

Cheers,

Pete

*-----------------------------------------------------*
| "Faced with the choice between changing one's mind, |
| and proving that there is no need to do so - almost |
| everyone gets busy on the proof."                   |
|              - John Kenneth Galbraith               |
*-----------------------------------------------------*


Re: A Users Experience

Posted by Stefan Bodewig <bo...@apache.org>.
Conor MacNeill <co...@m64.com> wrote:

> I think being able to bootstrap from source is an important
> capability which should be retained. (i.e. no need for ant.jar to
> build ant.jar)

+1

Stefan

Re: A Users Experience

Posted by James Duncan Davidson <du...@x180.net>.
On 12/5/00 1:08 AM, "Conor MacNeill" <co...@m64.com> wrote:

> By bootstrapping, here I mean bulding ant purely from its source. We
> always use ant to build ant (once it has been bootstrapped).  By Peter's
> definition therefore, ant always bootstraps itself :-)
> 
> I think being able to bootstrap from source is an important capability
> which should be retained. (i.e. no need for ant.jar to build ant.jar)

It *is* important to be able to bootstrap. The *only* reason though that the
xml jars are checked into the AntEater space is that it's moved around a bit
-- and hopefully will move again shortly. The Bootstrap.java could easily
just reach out and compile the xml-crimson workspace into a temporary area
and use that for bootstrapping. In fact, I'm going to go off and do that
right now... But it seems that I've got to fix the crimson build first.

   Compiling 127 files to ../bootstrap/temp/crimson
../../../../xml-crimson/src/org/apache/crimson/tree/DomImpl.java:69: class
org.apache.crimson.tree.DomImpl must be declared abstract. It does not
define org.w3c.dom.DocumentType createDocumentType(java.lang.String,
java.lang.String, java.lang.String) from interface
org.w3c.dom.DOMImplementation.
public class DomImpl implements DOMImplementation
             ^
1 error


.duncan

-- 
James Duncan Davidson                                        duncan@x180.net
                                                                  !try; do()


RE: A Users Experience

Posted by Conor MacNeill <co...@m64.com>.
Jon,

> -----Original Message-----
> From: Jon Stevens [mailto:jon@latchkey.com]
>
> > Because cygwin passes a unix classpath (colon separated) to
> a win32 tool
> > (javac) which doesn't like it (it want semi-colon
> separated). That is why
> > the compile cannot find the BuildException class which is
> part of the ant
> > source.
> >
> > Conor
>
> Works fine for me with Turbine (note that by default it will
> attempt to find
> the servlet.jar within
> ../jakarta-servletapi/lib/servlet.jar), Regexp, ECS,
> Velocity, Village...
>

Interestingly, this is because they use ant :-) Ant translates the path
given to it into something reasonable for the JVM under which it is
running. When Ant is being bootstrapped, it does not have yet have that
facility available.

By bootstrapping, here I mean bulding ant purely from its source. We
always use ant to build ant (once it has been bootstrapped).  By Peter's
definition therefore, ant always bootstraps itself :-)

I think being able to bootstrap from source is an important capability
which should be retained. (i.e. no need for ant.jar to build ant.jar)

> Oh wait...I actually care about the fact that novice
> developers want to
> compile from source code.
>

I care too :-)

You have championed jars in CVS and used Turbine as an example. Turbine,
however, chooses to assume a colocated checkout for servlet.jar. (I
couldn't find anything in the readme about that, though). Would you
support such an approach for ant too?

Conor


Re: A Users Experience

Posted by Jon Stevens <jo...@latchkey.com>.
on 12/4/2000 8:28 PM, "Conor MacNeill" <co...@ebinteractive.com.au> wrote:

> Because cygwin passes a unix classpath (colon separated) to a win32 tool
> (javac) which doesn't like it (it want semi-colon separated). That is why
> the compile cannot find the BuildException class which is part of the ant
> source.
> 
> Conor

Works fine for me with Turbine (note that by default it will attempt to find
the servlet.jar within ../jakarta-servletapi/lib/servlet.jar), Regexp, ECS,
Velocity, Village...

Oh wait...I actually care about the fact that novice developers want to
compile from source code.

-jon

-- 
Honk if you love peace and quiet.



RE: A Users Experience

Posted by Conor MacNeill <co...@ebinteractive.com.au>.
> -----Original Message-----
> From: Jon Stevens [mailto:jon@latchkey.com]
> Sent: Tuesday, 5 December 2000 15:22
> To: ant-dev@jakarta.apache.org
> Subject: Re: A Users Experience
>
>
> on 12/4/2000 8:14 PM, "Conor MacNeill" <co...@ebinteractive.com.au> wrote:
>
> > You have another problem (I assume it is related to cygwin). Have a look
> > here for some pointers
> >
> > http://marc.theaimsgroup.com/?l=ant-dev&m=97270138604695&w=2
>
> How come I can't just check it out out CVS and build it?
>

Because cygwin passes a unix classpath (colon separated) to a win32 tool
(javac) which doesn't like it (it want semi-colon separated). That is why
the compile cannot find the BuildException class which is part of the ant
source.

Conor


Re: A Users Experience

Posted by Jon Stevens <jo...@latchkey.com>.
on 12/4/2000 8:14 PM, "Conor MacNeill" <co...@ebinteractive.com.au> wrote:

> You have another problem (I assume it is related to cygwin). Have a look
> here for some pointers
> 
> http://marc.theaimsgroup.com/?l=ant-dev&m=97270138604695&w=2

How come I can't just check it out out CVS and build it?

> I will try a cygwin setup tonight to see if I can reproduce your issue.

It isn't real hard.

cvs co jakarta-ant
cd jakarta-ant
./bootstrap.sh

My point here is that I'm not a novice user and I'm still having
difficulties trying to get things to build properly. I feel for the novices
right now.

-jon


RE: A Users Experience

Posted by Conor MacNeill <co...@ebinteractive.com.au>.
> on 12/4/2000 6:06 PM, "Conor MacNeill" <co...@ebinteractive.com.au> wrote:
>
> > Do you have a JAXP compliant parser in your classpath? Did you read the
> > "System Requirements" section of the documentation? It states
> >
> > System Requirements
> > To build and use ant you must have a JAXP compliant XML parser
> installed and
> > available on your classpath.
> >
> > If you do not have a JAXP compliant XML parse installed, you may use the
> > reference implementation available from Sun. It is available from
> > http://java.sun.com/xml. Once installed make sure the "jaxp.jar" and
> > "parser.jar" files are in your classpath.
> >
> > You will also need the JDK installed on your system, version
> 1.1 or later.
>
> Yes, I have all of that.
>
> > You didn't include the error messages here so I can't be sure what your
> > problem is.
>
> The output is included.
>
> I used the following commands to generate it on my Win98 box
> running cygwin
> and bash.
>
> echo $CLASSPATH >> output
> ./bootstrap.sh 2>> output
>
> > Did you read the system requirements section?
>
> Of course I did.

Sorry - you were going on about there being no documentation about which
jars ant requires. It seems reasonably clear to me. Anyway, you can add jars
till you are blue in the face and it wont solve the problems you are having

src/main/org/apache/tools/ant/util/regexp/RegexpMatcher.java:57: cannot
resolve symbol
symbol  : class BuildException
location: package ant
import org.apache.tools.ant.BuildException;
                           ^
This class does NOT require the regexp.jar. It is not looking for
regexp.jar. I am not sure why you assumed that?

You have another problem (I assume it is related to cygwin). Have a look
here for some pointers

http://marc.theaimsgroup.com/?l=ant-dev&m=97270138604695&w=2

I will try a cygwin setup tonight to see if I can reproduce your issue.

>
> > I have a number of OSS projects on my system. Many of them have
> xerces.jar
> > in them. Lots of different versions, and many have the same version but
> > different names. Is this really the solution you want?
>
> Until someone comes up with a CJAN, the answer is a strong yes.
>

Fair enough.

> --
> Honk if you love peace and quiet.

HONK, HONK, HONK


Re: A Users Experience

Posted by Jon Stevens <jo...@latchkey.com>.
on 12/4/2000 6:06 PM, "Conor MacNeill" <co...@ebinteractive.com.au> wrote:

> Do you have a JAXP compliant parser in your classpath? Did you read the
> "System Requirements" section of the documentation? It states
> 
> System Requirements
> To build and use ant you must have a JAXP compliant XML parser installed and
> available on your classpath.
> 
> If you do not have a JAXP compliant XML parse installed, you may use the
> reference implementation available from Sun. It is available from
> http://java.sun.com/xml. Once installed make sure the "jaxp.jar" and
> "parser.jar" files are in your classpath.
> 
> You will also need the JDK installed on your system, version 1.1 or later.

Yes, I have all of that.

> You didn't include the error messages here so I can't be sure what your
> problem is.

The output is included.

I used the following commands to generate it on my Win98 box running cygwin
and bash.

echo $CLASSPATH >> output
./bootstrap.sh 2>> output

> Did you read the system requirements section?

Of course I did.

> I have a number of OSS projects on my system. Many of them have xerces.jar
> in them. Lots of different versions, and many have the same version but
> different names. Is this really the solution you want?

Until someone comes up with a CJAN, the answer is a strong yes.

-jon


-- 
Honk if you love peace and quiet.



RE: A Users Experience

Posted by Conor MacNeill <co...@ebinteractive.com.au>.
Jon,

> -----Original Message-----
> From: Jon Stevens [mailto:jon@latchkey.com]
> Sent: Tuesday, 5 December 2000 12:23
> To: ant-dev@jakarta.apache.org
> Subject: A Users Experience
>
> Hi All,
>
> I checked the head of Ant out of CVS, I typed:
>
> cd jakarta-ant
> ./bootstrap.sh
>
> I then got a bazillion build errors. Watching the errors fly by,
> it appears
> as though it was a result of not having some .jar file or another. I don't
> understand why the bootstrap process is looking for Regexp.jar,
> but that is
> a whole different issue.

Do you have a JAXP compliant parser in your classpath? Did you read the
"System Requirements" section of the documentation? It states

System Requirements
To build and use ant you must have a JAXP compliant XML parser installed and
available on your classpath.

If you do not have a JAXP compliant XML parse installed, you may use the
reference implementation available from Sun. It is available from
http://java.sun.com/xml. Once installed make sure the "jaxp.jar" and
"parser.jar" files are in your classpath.

You will also need the JDK installed on your system, version 1.1 or later.

>
> So, I looked at the docs/index.html document to see what is required for
> bootstrapping Ant. There is absolutely no documentation in there.
>

Probably needs to be updated but there is sufficient info in there to build
ant. All patches welcome.

You didn't include the error messages here so I can't be sure what your
problem is.


> So, would someone like to please explain to me what contortions I
> need to go
> through in order to build Ant from CVS?
>

checkout from CVS
set up your classpath with your favourite JAXP parser
set up JAVA_HOME
./bootstrap.sh

works for me. as the following shows:


chunky%
CLASSPATH=/home/conor/Jaxp1.0/jaxp.jar:/home/conor/Jaxp1.0/parser.jar
chunky% export CLASSPATH
chunky% cd oss/jakarta-ant/
chunky% JAVA_HOME=/usr/java
chunky% export JAVA_HOME

chunky% ./bootstrap.sh
... Bootstrapping Ant Distribution
... Compiling Ant Classes
... Copying Required Files
... Building Ant Distribution
Buildfile: build.xml

clean:

prepare:
    [mkdir] Created dir: /home/conor/oss/build/ant

check_for_optional_packages:

compile:
    [mkdir] Created dir: /home/conor/oss/build/ant/classes
    [javac] Compiling 161 source files to /home/conor/oss/build/ant/classes
    [javac] Note:
/home/conor/oss/jakarta-ant/src/main/org/apache/tools/ant/taskdefs/optional/
PropertyFile.java uses or overrides a deprecated API.  Recompile with
"-deprecation" for details.
    [javac] 1 warning
     [copy] Copying 2 files to /home/conor/oss/build/ant/classes
     [copy] Copying 2 files to /home/conor/oss/build/ant/classes

jar:
    [mkdir] Created dir: /home/conor/oss/build/ant/lib
      [jar] Building jar: /home/conor/oss/build/ant/lib/ant.jar

main:
    [mkdir] Created dir: /home/conor/oss/build/ant/bin
     [copy] Copying 6 files to /home/conor/oss/build/ant/bin

prepare:

check_for_optional_packages:

compile:
     [copy] Copying 2 files to /home/conor/oss/build/ant/classes
     [copy] Copying 2 files to /home/conor/oss/build/ant/classes

jar:
      [jar] Building jar: /home/conor/oss/build/ant/lib/ant.jar

main:
     [copy] Copying 6 files to /home/conor/oss/build/ant/bin

bootstrap:
     [echo] copying bootstrapped files into bin and lib
     [copy] Copying 1 file to /home/conor/oss/jakarta-ant/lib
     [copy] Copying 6 files to /home/conor/oss/jakarta-ant/bin

BUILD SUCCESSFUL

Total time: 15 seconds
... Cleaning Up Build Directories
... Done Bootstrapping Ant Distribution
chunky%

> I have a patch for the Delete.java task that I would like to
> contribute, but
> I can't because I can't even build the system so that I can test it before
> committing it. Now, this is a simple little patch that adds the -f
> functionality commonly found in the unix "rm" command.
>
> I'm going to rant once more

Why? We have had the rant. We have agreed (many of us reluctantly) that we
will go this way. We are waiting for you or Peter or whoever to patch.

> that any simple user should be able
> to check Ant
> out of CVS and build it. If the documentation at least showed me the .jar
> files that I needed, I would be up for downloading all of them and
> installing them into whatever classpath I need to setup, but of
> course there
> isn't any documentation,

Did you read the system requirements section?

> so this stuff should just go into CVS
> and make all
> of our lives easier.

I have a number of OSS projects on my system. Many of them have xerces.jar
in them. Lots of different versions, and many have the same version but
different names. Is this really the solution you want?

BTW, I checked out out turbine. It didn't build because it doesn't include
the servlet API   :-(

Conor