Re: URGENT: 3rd Party jar's in apache CVS need immediate action.

2002-02-04 Thread Guillaume Rousse

Ainsi parlait Kimbro Staken :
 On Thursday, January 31, 2002, at 08:46 AM, Guillaume Rousse wrote:
  I don't think this is really a *benefit* of Java software. Nothing
  prevent a
  native software to provide staticaly-linked binaries of make for every
  existing platforms in CVS. The fact that one only ant binary for Java
  software is enough doesn't make it an acceptable practice.

 This is absolutely a benefit of Java software. While it was technically
 possible to do this for C projects it was practically infeasible. In Java
 it is entirely feasible and works just fine in the majority of cases.
Perl is also multi-platforms, and doesn't rely on blind code duplication 
everyhwere, AFAK. Instead, they use dependencies.

  Keeping track of dependencies is the task of a package management system,
  which only exist for Unix AFAK, while Java is multi-platform. But when
  this
  means 'propagating nasty platforms-specific constraints everywhere', i
  think
  we reach limits of cross-platform possibilities :-)

 The issue raised was not a technical one, it was legal. Trying to put in a
 complex technical solution for it is overkill. The current mechanism works
 just fine in almost all cases. It may not be ideal, but so what; It still
 removes a lot more headaches then it creates.
The current system is simple and functionnal, right, but it is ugly. And it 
is *really* a nightmare for people wanting to have a proper packaging policy, 
as Linux distribution for instance.

  Users relying on packaged software just have to use apt-get (for debian
  packages) or uprmi (for rpms packages) to have automated dependencies
  resolution, remote package fetching, and so on.

 What about the 99% of the world that uses a platform that isn't Linux?
In open-source world this is usually *a bit* more. And there have been 
proposition recently of extending rpm use to any Unix. See 
http://www.openpkg.org

  Ensuring a consistent set of jars is not the task of developpers IHMO,
  but of
  packagers and distributers. Moreover, unless you are strictly
  self-dependant,

 So how is an Apache project not a packager and distributer? The
 perspective that open source should only be concerned with the perspective
 of the developer is not a good one.
Apache project is only a distributer for apache project software. Java world 
is not limited to ASF :-)

 Plus, developers are not the only people who pull the code from CVS. I
 cringe at the thought of having to ensure that everybody who uses our CVS
 tree also needs to manually update dependencies as the software evolves.
Why manually ? You have ant task for this...

 In the current mechanism the system always works. If the source changes
 such that it depends on an updated jar a simple CVS update will bring not
 only the source change but the updated jar as well. You always know that
 the software is supposed to build out of the box and that if it doesn't
 then someone is on the hook for breaking the build. To say that this isn't
 a unique benefit of Java is  simply not true.
The current mechanism also force you sometimes to use out-dated software, 
just because developpers were not aware of compatibility breaks. It happened 
recently with ArgoUML, which could not work with xerces-j  1.2., which was a 
nightmare to figure.
This is clearly a developper task, not a user task. Projects as gump try to 
achieve the same result.

  If a dependency becomes unavailable, i think there is a reason behind
  (obsolescence, upgrade, security hole, etc). By short-circuiting the
  effect,
  you prevent normal evolution to takes place.

 Or it could simply be a network failure or server crash or maybe the
 software moved or maybe the person who made it available changed their
 mind and pulled it. Regardless of the reason you still have the dependency
 and the software is now useless to the user trying to install it.

  Jpackage project (http://package.org) try to provide such a consistent
  set of
  java software for rpm world. Debian java project

 Heh heh, as I write this, this site is down. :-)
My fault, it's http://www.jpackage.org, or http://jpackage.sourceforge.net

  (http://people.debian.org/~tora/java/packagelist.html) provide the same
  service for debian world. Both try also to enforce nomal Unix conventions
  (FHS, etc...) and establish cross-project packaging policies. We all know
  this only adress a subset of java realm, so we don't ask for dropping
  other
  platforms support. We just ask to make it an optional additional layer,
  not
  make it mandatory as it is currently...

 I'm kind of disappointed. You suggested that we break all of our software
 by removing all the jars from CVS and then offer a solution that will only
 work for an extremely small percentage of the user population. Very
 disappointing.
My proposition was rather: as we are currently cleaning the CVS, why not jump 
on the event to look for better solutions.

 BTW, -1 to the whole idea. The issue raised was legal and 

Re: URGENT: 3rd Party jar's in apache CVS need immediate action.

2002-01-31 Thread Guillaume Rousse

Ainsi parlait Kimbro Staken :
 On Tuesday, January 29, 2002, at 01:36 PM, Guillaume Rousse wrote:
  Don't import any jar back into the cvs, but fills a complete and exact
  dependency list -)
 
  Ok, not exactly what you're looking for, but at least it could open the
  debate. Outside of java world, i never saw any binary in CVS. Instead
  there
  are README files telling: you need libfoo-x.y.z and libbar-x.y.z to build
  this soft.

 And this is one of the great benefits of Java software. Having to track
 down all the dependencies is a major PITA for the user of the software. A
 lot of this stuff is hard enough to get going, why introduce more pain.
 This just seems like the wrong solution for a problem that is primarily a
 legal rather then technical issue.
I don't think this is really a *benefit* of Java software. Nothing prevent a 
native software to provide staticaly-linked binaries of make for every 
existing platforms in CVS. The fact that one only ant binary for Java 
software is enough doesn't make it an acceptable practice.
Keeping track of dependencies is the task of a package management system, 
which only exist for Unix AFAK, while Java is multi-platform. But when this 
means 'propagating nasty platforms-specific constraints everywhere', i think 
we reach limits of cross-platform possibilities :-)

  Putting dependencies in CVS is nasty because:
  - you make release tarballs biggers
  - you end up with lots of duplicated files on your box
  - you give headache to external people wanting to package the soft
  properly
  for computing exact dependencies (but what version of foobar is this
  foobar.jar exactly ?)
  - you can't follow external dependencies evolutions, as you use a static
  one

 Some arguments against it.
 - You increase the pain for users significantly, it might be ok for
 developers who are going to have lots of jars and know where they are, but
 an end user won't want to deal with that. Java enables the problem to be
 solved in a way that was very difficult to accomplish with C.
Users relying on packaged software just have to use apt-get (for debian 
packages) or uprmi (for rpms packages) to have automated dependencies 
resolution, remote package fetching, and so on.

 - Increased pain for users means decreased usage of the software.
 - Since many developers start out as users, fewer users means fewer
 developers.
 - Not shipping a consistent set of jars increases the support headache
 significantly.
Ensuring a consistent set of jars is not the task of developpers IHMO, but of 
packagers and distributers. Moreover, unless you are strictly self-dependant, 
as some peoples propose it, this consistency will concern only other software 
 part of the same project, unless you want to duplicate everything outside of 
ASF.

 - You run the risk of a required dependency becoming unavailable which
 makes the software unusable.
If a dependency becomes unavailable, i think there is a reason behind 
(obsolescence, upgrade, security hole, etc). By short-circuiting the effect, 
you prevent normal evolution to takes place.

Jpackage project (http://package.org) try to provide such a consistent set of 
java software for rpm world. Debian java project 
(http://people.debian.org/~tora/java/packagelist.html) provide the same 
service for debian world. Both try also to enforce nomal Unix conventions 
(FHS, etc...) and establish cross-project packaging policies. We all know 
this only adress a subset of java realm, so we don't ask for dropping other 
platforms support. We just ask to make it an optional additional layer, not 
make it mandatory as it is currently...
-- 
Guillaume Rousse [EMAIL PROTECTED]
GPG key http://lis.snv.jussieu.fr/~rousse/gpgkey.html

--
To unsubscribe, e-mail:   mailto:[EMAIL PROTECTED]
For additional commands, e-mail: mailto:[EMAIL PROTECTED]




Re: URGENT: 3rd Party jar's in apache CVS need immediate action.

2002-01-31 Thread Guillaume Rousse

Ainsi parlait Guillaume Rousse :
[..]
 Jpackage project (http://package.org) try to provide such a consistent set
 of java software for rpm world. Debian java project
 (http://people.debian.org/~tora/java/packagelist.html) provide the same
 service for debian world. Both try also to enforce nomal Unix conventions
 (FHS, etc...) and establish cross-project packaging policies. We all know
 this only adress a subset of java realm, so we don't ask for dropping other
 platforms support. We just ask to make it an optional additional layer, not
 make it mandatory as it is currently...

Something i forgot to say: all package provided at 
http://jpackage.sourceforge.net/packages.php are build by first deleting all 
jar present in the archive, and relying on other packages which are build 
from source also. Yes, it is a lot of work, but it is possible...
-- 
Guillaume Rousse [EMAIL PROTECTED]
GPG key http://lis.snv.jussieu.fr/~rousse/gpgkey.html

--
To unsubscribe, e-mail:   mailto:[EMAIL PROTECTED]
For additional commands, e-mail: mailto:[EMAIL PROTECTED]




Re: URGENT: 3rd Party jar's in apache CVS need immediate action.

2002-01-31 Thread Guillaume Rousse

Ainsi parlait Stefano Mazzocchi :
[..]
 Don't get me wrong, I'm not against this. But the above are words, I
 need something that works and jars in CVS (with the license and
 description of where they were from attached) work best for me.
As a kind of shamefuly self-publicity, jpackage project used initially 
package-management-system independent xml software descriptors, that you 
could find in project CVS here: 
http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/jpackage/xml-spec

As we produced initially different rpms for different Linux distributions, we 
produced them from the same stem. This could easily have been extended to 
other packaging system, with something as
soft
 description
  [.. system independant software description .. ]
 /description

  rpm
  [.. instruction for building rpm for this software .. ]
  /rpm

  deb
  [.. instruction for building deb for this software.. ]
  /deb

 autoinst
 [ .. instruction for building an auto-installable archive.. ]
 /autoinst
/soft
-- 
Guillaume Rousse [EMAIL PROTECTED]
GPG key http://lis.snv.jussieu.fr/~rousse/gpgkey.html

--
To unsubscribe, e-mail:   mailto:[EMAIL PROTECTED]
For additional commands, e-mail: mailto:[EMAIL PROTECTED]




Re: URGENT: 3rd Party jar's in apache CVS need immediate action.

2002-01-29 Thread Dirk-Willem van Gulik



On Tue, 29 Jan 2002, Guillaume Rousse wrote:

So we now have three proposed ways forward:

  Option 1.1
  Each project put's their jar's back in - but
  according to the guidelines below.
 
  Option 2.2
  We create a 'xml-third-party' repository for
  all the third party jar's. Following the
  guide lines below.
 
  So we keep all 3rd party and alien code in
  one place.

   Option 2.3:
  Don't import any jar back into the cvs, but fills a
   complete and exact dependency list -)

Opinions ?

Dw.


--
To unsubscribe, e-mail:   mailto:[EMAIL PROTECTED]
For additional commands, e-mail: mailto:[EMAIL PROTECTED]




RE: URGENT: 3rd Party jar's in apache CVS need immediate action.

2002-01-29 Thread GOMEZ Henri

So we now have three proposed ways forward:

 Option 1.1
 Each project put's their jar's back in - but
 according to the guidelines below.
 
 Option 2.2
 We create a 'xml-third-party' repository for
 all the third party jar's. Following the
 guide lines below.
 
 So we keep all 3rd party and alien code in
 one place.

   Option 2.3:
  Don't import any jar back into the cvs, but fills a
   complete and exact dependency list -)


I agree with Guillaume, 2.3 is the cleanest way and the easiest
to give coherent dependencies. And It raise another question, 
that you could require different versions of the same API
and so could have to introduce a jar renaming, as does
jakarta-regexp, ie jakarta-regexp-1.2.jar.

And when you have solved that, you're ready to have all jars
in the same location, ie /usr/share/java/ as used in jpackage
project (I'm involved in it with Guillaume) and debian-java.

Regards

--
To unsubscribe, e-mail:   mailto:[EMAIL PROTECTED]
For additional commands, e-mail: mailto:[EMAIL PROTECTED]