Bug#334919: ant 1.6.5 fails on custom task, where ant 1.6.2 succeeded.

Eric Lavarde bugs.debian.nospam at zorglub.s.bawue.de
Thu Oct 20 19:02:50 UTC 2005


Package: ant
Version: 1.6.5-3
Severity: important


Hi,

I can't build anymore freemind 0.8.0 under unstable, if I try to
re-dpkg-buildpackage it, I get the following error:

make[1]: Entering directory `/home/ericl/freemind-0.8.0'
make[1]: Nothing to be done for `update-config'.
make[1]: Leaving directory `/home/ericl/freemind-0.8.0'
cd freemind && /usr/lib/j2sdk1.4-sun/bin/java -classpath /usr/share/ant/lib/ant.jar:/usr/share/ant/lib/ant-launcher.jar:/usr/share/java/xercesImpl.jar:/usr/lib/j2sdk1.4-sun/lib/tools.jar  -Dant.home=/usr/share/ant org.apache.tools.ant.Main-Dcompile.debug=true -Dcompile.optimize=true     dist userdoc browser
Buildfile: build.xml

gen:

xmlbind.checkStatusOfGeneration:

xmlbind:
    [mkdir] Created dir: /home/ericl/freemind-0.8.0/freemind/generated/actions
      [xjc] Compiling file:/home/ericl/freemind-0.8.0/freemind/freemind_actions.xsd

BUILD FAILED
/home/ericl/freemind-0.8.0/freemind/build.xml:71: The following error occurred while executing this line:
java.lang.NoClassDefFoundError: org/w3c/dom/ranges/DocumentRange

Total time: 1 second
make: *** [debian/stamp-ant-build] Error 1

I will attach rules and build.xml file, and you can get the package from
deb-src http://eric.lavar.de/comp/linux/debian/ experimental/
and try to rebuild it under unstable.

My first check tells me that it's actually within the instantiation of
the following taskdef that the problem appears:
        <taskdef name="xjc" classname="com.sun.tools.xjc.XJCTask"
	           classpath="${jaxb}" />

I'm happy about any help, Wolfgang is waiting for me to test his new
batik package... :->

Thanks, Eric

-- System Information:
Debian Release: testing/unstable
  APT prefers unstable
  APT policy: (500, 'unstable')
Architecture: i386 (i686)
Shell:  /bin/sh linked to /bin/bash
Kernel: Linux 2.6.12-5.99.sarge1
Locale: LANG=C, LC_CTYPE=C (charmap=ANSI_X3.4-1968)

Versions of packages ant depends on:
ii  kaffe                         2:1.1.6-3  A JVM to run Java bytecode
ii  kaffe-pthreads [kaffe]        2:1.1.6-3  A POSIX threads enabled version of
ii  libxerces2-java               2.6.2-3    Validating XML parser for Java wit
ii  sablevm [java1-runtime]       1.11.3-1.1 Free implementation of Java Virtua
ii  sun-j2sdk1.4 [java2-runtime]  1.4.2+08   Java(TM) 2 SDK, Standard Edition,

Versions of packages ant recommends:
pn  ant-optional                  <none>     (no description available)
ii  jikes                         1:1.22-3   Fast Java compiler adhering to lan
ii  jikes-sablevm [java-compiler] 1.11.3-1.1 Wrapper for jikes using classes fr
ii  kaffe-pthreads [java-compiler 2:1.1.6-3  A POSIX threads enabled version of
ii  sun-j2sdk1.4 [java-compiler]  1.4.2+08   Java(TM) 2 SDK, Standard Edition,

-- no debconf information
-------------- next part --------------
#!/usr/bin/make -f
# debian/rules for Commons Fileupload (uses CDBS)

include /usr/share/cdbs/1/rules/debhelper.mk
include /usr/share/cdbs/1/class/ant.mk
include /usr/share/cdbs/1/rules/simple-patchsys.mk

#FREE JAVA (aka free-java-sdk)
#JAVA_HOME_DIRS       := /usr/lib/fjsdk
#JAVACMD              := /usr/lib/fjsdk/bin/java
#DEB_ANT_COMPILER     := jikes

#NON-FREE JAVA (aka Sun)
JAVA_HOME_DIRS       := /usr/lib/j2sdk1.4-sun

ANT_HOME             := /usr/share/ant
DEB_JARS             := $(ANT_HOME)/lib/ant-launcher.jar xercesImpl gnujaxp
DEB_ANT_BUILD_TARGET := dist userdoc browser
DEB_BUILDDIR         := freemind
DEB_COMPRESS_EXCLUDE := .mm

build:
	/usr/bin/docbook-to-man debian/freemind.sgml > freemind.1
	/usr/bin/docbook-to-man debian/urlsee.sgml > urlsee.1
	# chmod +x bin/dist/freemind.sh # seems to be unnecessary
	convert freemind/images/FreeMindWindowIcon.png freemind/images/FreeMindWindowIcon.xpm

clean:: 
	-rm -f freemind/images/FreeMindWindowIcon.xpm
	-rm -f urlsee.1 freemind.1
	-rmdir bin

-------------- next part --------------
<project name="freemind" default="dist" basedir=".">
	<property name="ver" value="0_8_0" />
	<property name="src" value="." />
	<property name="src_base_for_post" value="../" />
	<property name="build" value="../bin/classes" />
	<property name="dist" value="../bin/dist" />
	<property name="dist.lib" value="${dist}/lib" />
	<property name="dist_macos_name" value="Mac_OS_X_Freemind-${ver}" />	
	<property name="dist_macos_base" value="../bin/dist_macos" />	
	<property name="dist_macos" value="${dist_macos_base}/${dist_macos_name}" />	
	<property name="dist_macos_info" value="${dist_macos}/FreeMind.app/Contents/Info.plist"></property>
    <property name="FM.jar" value="${dist.lib}/freemind.jar"/>
	<property name="post" value="../post" />
	<property name="debug" value="on" />
	<property name="java_source_version" value="1.2" />
	<property name="java_target_version" value="1.2" />
	<property name="build.compiler" value="modern" />
	<property name="ant.dir" value="lib/ant/lib"/>
	<property name="jarbundler.jar" value = "jarbundler-1.4.jar"/>


	
	
	<!-- begin generator part -->
 	<property name="jaxb" value="${ant.dir}/jaxb-xjc.jar:${ant.dir}/jaxb-api.jar:${ant.dir}/jaxb-impl.jar:${ant.dir}/jaxb-libs.jar:${ant.dir}/namespace.jar:/usr/share/java/relaxngDatatype.jar:${ant.dir}/xsdlib.jar:${ant.dir}/jax-qname.jar"/>
 	<property name="xml" value="/usr/share/java/jaxp-1.2.jar"/> 
 	<property name="classpath" value="${jaxb}:${xml}:/usr/share/java/commons-lang.jar:/usr/share/java/forms-1.0.5.jar"/>
	<property name="xsd.dir" value="." />
	<property name="gen.dir" value="generated" />
	<taskdef name="xjc" classname="com.sun.tools.xjc.XJCTask" 
	   classpath="${jaxb}" />

  <!-- uses property ${gen.file} as the directory name of the outputs. -->
  <target name="xmlbind.checkStatusOfGeneration">
    <uptodate property="xmlbind.isUpToDate"
              srcfile="${xsd.dir}/${xsd.file}"
              targetfile="${gen.dir}/${gen.file}/freemind/controller/${gen.file}/generated/instance/jaxb.properties"/>
  </target>

  <!-- uses property ${gen.file} as the directory name of the outputs. -->
  <target name="xmlbind" 
          unless="xmlbind.isUpToDate" 
          depends="xmlbind.checkStatusOfGeneration">
    <mkdir dir="${gen.dir}/${gen.file}" />
    <xjc schema="${xsd.dir}/${xsd.file}"
         target="${gen.dir}/${gen.file}" 
         package="freemind.controller.${gen.file}.generated.instance" />
  </target>

  <!-- uses property ${gen.file} as the directory name of the outputs. -->
  <target name="-buildgen">
    <javac srcdir="${gen.dir}/${gen.file}"
           destdir="${build}"
           debug="${debug}"
    	   source="${java_source_version}"
	       target="${java_target_version}"
    	>
      <classpath path="${classpath}" />
      <include name="**/*.java" />
    </javac>
    <copy todir="${build}/freemind/controller/${gen.file}/generated" >
      <fileset dir="${gen.dir}/${gen.file}/freemind/controller/${gen.file}/generated" >
        <include name="**/jaxb.properties" />
        <include name="**/*.ser" />
      </fileset>
    </copy>
  </target>


  <target name="gen">
    <antcall target="xmlbind">
      <param name="gen.file" value="actions"/>
      <param name="xsd.file" value="freemind_actions.xsd"/>
    </antcall>
  </target>

  <target name="build-generated">
    <antcall target="-buildgen">
      <param name="gen.file" value="actions"/>
      <param name="xsd.file" value="freemind_actions.xsd"/>
    </antcall>
  </target>
	<!-- end generator part -->

	<target name="build" depends="gen">
		<!-- Perform Mac Changes as a plugin. -->
		<exec dir="${src}/accessories/plugins" executable="ln" os="Mac OS X">
			<arg value="-s"/>
			<arg value="MacChanges.java.not_here"/>
			<arg value="MacChanges.java"/>
		</exec>
		<exec dir="${src}/accessories/plugins" executable="ln" os="Mac OS X">
			<arg value="-s"/>
			<arg value="MacChanges.xml.not_here"/>
			<arg value="MacChanges.xml"/>
		</exec>
		<!-- end mac changes. -->
		<mkdir dir="${build}"/>
	    <!-- build generated files -->
	    <antcall target="build-generated"/>
	    <!-- end build generated files -->
		<javac	srcdir="${src}"
			destdir="${build}"
			classpath="${classpath}"
			debug="${debug}"
    	   source="${java_source_version}"
	       target="${java_target_version}"
			> 
	      <exclude name="${gen.dir}/**" />
	      <exclude name="accessories/plugins/**" />
	      <exclude name="plugins/**" />
		</javac>
		<ant antfile="accessories/plugins/build.xml" target="build"/>
		<ant antfile="plugins/build.xml" target="build"/>
	</target>

	<target name="dist" depends="jar">

		<copy todir="${dist}"> 
			<fileset dir="${src}"
				includes="freemind.bat,freemind.sh,license,patterns.xml"
			/>
		</copy>
        <!-- user.properties are placed in the documents folder. To avoid trouble, make a short comment here.  -->
        <copy file="${src}/user_comment.properties" tofile="${dist}/user.properties"/>

        <chmod file="${dist}/freemind.sh" perm="u+rx"/>
		<mkdir dir="${dist}/accessories" />
		<mkdir dir="${dist}/plugins" />
		<copy todir="${dist}/accessories" > 
			<fileset dir="${src}/accessories" excludes="plugins" includes="*"/>
			<!-- exclude jars too!
			<fileset dir="${build}/accessories"/> -->
		</copy> 
		<!-- third party libs -->
		<mkdir dir="${dist.lib}" />
		<copy todir="${dist.lib}"> 
			<fileset dir="${src}/lib">
				<exclude name="**/jaxb-xjc.jar"/>
				<exclude name="${jarbundler.jar}"/>
			</fileset>
		</copy>
		<ant antfile="accessories/plugins/build.xml" target="dist"/>
		<ant antfile="plugins/build.xml" target="dist"/>
		<!-- Mac OS X -->
	    <condition property="isMacOs">
		  <os family="mac"/>
		</condition>
		<antcall target="dist_macos"/>
	</target>

	<target name="dist_macos" if="isMacOs">
		<delete dir="${dist_macos}"/>
		<mkdir dir="${dist_macos}"/>
		<!-- change freemind.properties -->
		<copy todir="${dist_macos}" file="${src}/freemind.properties"/>
		<replaceregexp byline="true" file="${dist_macos}/freemind.properties" match="^keystroke(.*)=(.*)\bcontrol\b" replace="keystroke\1=\2meta" flags="gim"></replaceregexp>
		<replaceregexp byline="true" file="${dist_macos}/freemind.properties" match="^keystroke(.*)=(.*)\binsert\b" replace="keystroke\1=\2TAB" flags="gim"></replaceregexp>
		<!-- update jar -->
		<jar file="${FM.jar}" update="true" basedir="${dist_macos}"><fileset dir="${dist_macos}"><include name="${dist_macos}/freemind.properties"/></fileset></jar>
		  <jarbundler dir="${dist_macos}"
		                    name="FreeMind"
		                    mainclass="freemind.main.FreeMind"
		                    icon="${src}/images/FreeMindWindowIcon.icns"
		                    version="${ver}"
		                    infostring="FreeMind ${ver} application (c) 2005"
		                    aboutmenuname="FreeMind"
		                    bundleid="freemind.main.FreeMind"
		                    signature="FM"
		                    jvmversion="1.4+"
		                    liveresize="true"
		                    screenmenu="true" 
		  				    > 
		  	<jarfileset dir="${dist}">
		            <include name="**/*.jar" />
		            <exclude name="**/CVS" />
		            <exclude name="accessories/**" />
		            <exclude name="plugins/**" />
          	</jarfileset>
        </jarbundler>
		<!-- Associate Freemind with mm -->
		<xslt style="mac_file_association.xslt" 
			in ="${dist_macos_info}" 
			out="${dist_macos_info}2"/>
		<move file="${dist_macos_info}2"
			  tofile="${dist_macos_info}"/>
		<!-- Done. -->
		<mkdir dir="${dist_macos}/accessories" />
		<copy todir="${dist_macos}/accessories"> 
			<fileset dir="${dist}/accessories"/>
		</copy> 
		<!-- link accessories in app -->
		<exec dir="${dist_macos}/FreeMind.app/Contents/Resources/Java" executable="ln" os="Mac OS X">
			<arg value="-s"/>
			<arg value="../../../../accessories/"/>
			<arg value="accessories"/>
		</exec>
		<mkdir dir="${dist_macos}/plugins" />
		<copy todir="${dist_macos}/plugins"> 
			<fileset dir="${dist}/plugins"/>
		</copy> 
	</target>

	<target name="post" depends="dist,browser,doc">
		<mkdir dir="${post}" />
		<tar tarfile="${post}/freemind-bin.tar"
			basedir="${dist}"
			longfile="gnu"
			excludes="browser/,doc/javadoc/,plugins/**" />
		<tar tarfile="${post}/freemind-src.tar"
			longfile="gnu"
			basedir="${src_base_for_post}"
			includes="freemind/**,.classpath,.project" />
		<tar tarfile="${post}/freemind-browser.tar"
			longfile="gnu"
			basedir="${dist}/browser" />
		<gzip src="${post}/freemind-bin.tar"
			zipfile="${post}/freemind-bin-${ver}.tar.gz" />
		<gzip src="${post}/freemind-src.tar"
			zipfile="${post}/freemind-src-${ver}.tar.gz" />
		<gzip src="${post}/freemind-browser.tar"
			zipfile="${post}/freemind-browser-${ver}.tar.gz" />
		<delete>
			<fileset dir="${post}" includes="*.tar" />
		</delete> 
		<zip destfile="${post}/freemind-bin-${ver}.zip"
			basedir="${dist}"
			excludes="browser/,doc/javadoc/,plugins/**" />
		<!-- fc, 14.2.2005: new max export -->
		<zip destfile="${post}/freemind-bin-max-${ver}.zip"
			basedir="${dist}"
			excludes="browser/,doc/javadoc/" />
		<zip destfile="${post}/freemind-src-${ver}.zip"
			basedir="${src_base_for_post}"
			includes="freemind/**,.classpath,.project" />
		<zip destfile="${post}/freemind-browser-${ver}.zip"
			basedir="${dist}/browser" />
		<ant antfile="plugins/build.xml" target="post"/>
		<antcall target="post_macos"></antcall>
	</target>

	<target name="post_macos">
		<!-- doc -->
		<mkdir dir="${dist_macos}/doc" />
		<copy todir="${dist_macos}/doc/" file="${dist}/doc/freemind.mm" />

		<exec dir="." executable="bash" os="Mac OS X">
			<arg value="./mkdmg.sh"/>
			<arg path="${dist_macos}"/>
		</exec>
		<exec dir="." executable="mv" os="Mac OS X">
			<arg path="/tmp/${dist_macos_name} Archive.dmg"/>
			<arg path="${post}/${dist_macos_name}.dmg"/>
		</exec>

	</target>
	
	<target name="jar" depends="build">
		<mkdir dir="${dist.lib}" />
		<jar jarfile="${FM.jar}"
		     manifest="${src}/MANIFEST.MF"
			update="true">
			<fileset dir="${build}">
				<exclude name="accessories/**"/> 
				<exclude name="plugins/**"/> 
			</fileset>
			<fileset dir="${src}">
				<include name="images/*"/>
				<include name="images/icons/*.png"/>
				<include name="freemind.properties"/>
				<include name="user.properties"/>
				<include name="patterns.xml"/>
				<include name="Resources*"/>
				<include name="mindmap_menus.xml"/>
				<include name="**/freemind_version_updater.xslt"/>
			</fileset>
		</jar>
	</target>

	<target name="browser" depends="build">
		<mkdir dir="${dist}/browser" />
		<jar jarfile="${dist}/browser/freemindbrowser.jar">
			<fileset dir="${build}">
				<include name="freemind/extensions/*"/>
				<include name="freemind/view/*"/>
				<include name="freemind/view/mindmapview/*"/>
				<include name="freemind/main/*"/>
				<include name="freemind/controller/*"/>	
				<include name="freemind/modes/*"/>
				<include name="freemind/modes/browsemode/*"/>
				<include name="accessories/plugins/**"/>
			</fileset>
			<fileset dir="${src}">
				<include name="images/*"/>
				<include name="images/icons/*.png"/>
				<include name="*.properties"/>
				<include name="accessories/plugins/**"/>
			</fileset>
		</jar>
                <copy file="${src}/freemind.properties" tofile="${src}/user.properties"/>
		<copy todir="${dist}/browser" >
			<fileset dir="${src}/html">
				<include name="*.*html"/>
			</fileset>
		</copy>
	</target>

	<target name="doc" depends="userdoc,devdoc" />
	<target name="userdoc">
		<mkdir dir="${dist}/doc" />
		<copy todir="${dist}/doc" file="${src}/doc/freemind.mm"/>
	</target>
	<target name="devdoc">
		<mkdir dir="${dist}/doc/javadoc" />
		<javadoc sourcepath="${src}"
		         destdir="${dist}/doc/javadoc"
		         packagenames="freemind.*" />
	</target>

	<target name="clean" depends="srcclean">
		<delete dir="${build}"  quiet="true"/>
		<delete dir="${dist}"  quiet="true"/>
		<delete dir="${dist_macos_base}"  quiet="true"/>
		<delete dir="${post}"  quiet="true"/>
	</target>
	<target name="srcclean">
		<delete dir="${gen.dir}"  quiet="true"/>
                <delete>
                  <fileset defaultexcludes="no" dir="${src}" includes="**/*~"/>
                </delete>
	</target>

  <target name="run" depends="dist">
    <java classname="freemind.main.FreeMind"
          fork="yes"
          dir="${dist}">
<!--    <jvmarg value="-Djava.util.logging.config.file=logging.properties" /> -->
    <classpath>
       <!--<pathelement location="${dist}"/>-->
       <pathelement location="${FM.jar}"/>
       <pathelement path="${xml}"/>
       <pathelement path="${jaxb}"/>
       <pathelement location="${FM.jar}"/>
    </classpath>
    </java>
  </target>

	<!-- does not work!! -->
	<target name="val">
		<xmlvalidate lenient="false"
		  failonerror="no" warn="true" classname="org.apache.xerces.parsers.SAXParser"
            classpath="plugins/svg/xerces_2_5_0.jar">
			<fileset dir="." includes="**/*.mm"/>
		  <attribute name="http://apache.org/xml/features/validation/schema"
		  value="true"/>
		  <attribute name="http://xml.org/sax/features/namespaces" value="true"/>
		  <property
		  name="http://apache.org/xml/properties/schema/external-schemaLocation"
		  value="freemind.xsd"/>
		</xmlvalidate>
	</target>
	
</project>



More information about the pkg-java-maintainers mailing list