svn co https://emu.freenetproject.org/svn/trunk/freenet/ svn co https://emu.freenetproject.org/svn/trunk/contrib/ # For contrib/lib/linux/x86/libfec16.so wget http://onionnetworks.com/downloads/fec-1.0.3.zip unzip fec-1.0.3.zip cd fec-1.0.3 && ant cd src/csrc && make && cd ../.. cd .. cp fec-1.0.3/lib/fec-linux-x86/lib/linux/x86/*.so contrib/lib/linux/x86/ # For contrib/jcpuid/lib/freenet/support/CPUInformation/libjcpuid-x86-linux.so cd contrib/jcpuid && JAVA_HOME=/usr/lib/jvm/java-gcj ./build.sh && cd ../.. # For contrib/onion-common.jar cd fec-1.0.3 && unzip common-20020926.zip && cd common-20020926 ant && cd .. && cd .. cp fec-1.0.3/common-20020926/lib/onion-common.jar contrib/onion-common.jar # For contrib/je-2.0.90.jar wget http://downloads.sleepycat.com/je-2.0.90.tar.gz tar xzf je-2.0.90.tar.gz cd je-2.0.90 && ant && cd .. cp je-2.0.90/build/lib/je.jar contrib/je-2.0.90.jar # For contrib/NativeBigInteger/lib/net/i2p/util/libjbigi-linux-pentium2.so cd contrib/NativeBigInteger && sh build.sh && cd ../.. # For freenet/lib/freenet-ext.jar cd contrib/freenet_ext && ant && cd ../.. mkdir freenet/lib && cp contrib/freenet_ext/freenet-ext.jar freenet/lib # For freenet/lib/freenet-cvs-snapshot.jar cd freenet && ant && cd .. TODO: (ignore these, just for my notes) ## rm -fr contrib/NativeBigInteger rm fec-1.0.3/src/com/onionnetworks/fec/Native8Code.java rm fec-1.0.3/src/com/onionnetworks/fec/Native16Code.java sed -i 's@^com.onionnetworks.fec.keys=.*$@com.onionnetworks.fec.keys=pure8,pure16@' fec-1.0.3/bin/lib/fec.properties sed -i 's@depends="fec,jcpuid,bigint"@depends="fec"@' contrib/freenet_ext/build.xml rm freenet/src/freenet/support/CPUInformation/CPUID.java freenet/src/freenet/support/CPUInformation/CPUID.java freenet/src/net/i2p/util/NativeBigInteger.java gcj /usr/share/java/javax-security.jar /usr/share/java/javax-crypto.jar /usr/share/java/gnu-crypto.jar freenet-ext.jar freenet-cvs-snapshot.jar -o freenet --main=freenet.node.Node -g find -name "*.so" -or -name "*.jar" | xargs rm find -type f | grep -v "\.svn"|grep -Ev "\.(ico|css|png|java|txt|jflex|classpath|xml|properties|h|c|sh)$" mkdir legacy && cd legacy svn co https://emu.freenetproject.org/svn/branches/legacy/stable/ freenet svn co https://emu.freenetproject.org/svn/branches/legacy/contrib/ Contrib cd freenet && ant && cd .. cd Contrib/fecimpl/onion/ && make jar && cd ../../.. cd .. ./freenet_ext/build_dir/lib/linux/x86/libfec16.so onion-common.jar bdb from http://www.sleepycat.com/products/bdbje.html https://emu.freenetproject.org/svn/branches/legacy/contrib/ for the sources Steps to reproduce: 1) svn co https://emu.freenetproject.org/svn/trunk/freenet/ 2) cd freenet && ant Expected results: 2) freenet should build correctly. Actual results: 2) Build fails with the message /home/lindi/local/freenet07-svn/freenet/build.xml:31: java.lang.StringIndexOutOfBoundsException lrwxrwxrwx 1 root root 30 Apr 8 00:01 /etc/alternatives/java -> /usr/lib/jvm/java-gcj/bin/java lrwxrwxrwx 1 root root 19 Jan 23 19:43 /usr/lib/jvm/java-gcj/bin/javac -> ../../../../bin/ecj lrwxrwxrwx 1 root root 22 Apr 8 00:01 /etc/alternatives/ecj -> /usr/bin/ecj-bootstrap ii ant 1.6.5-5 Java based build tool like make ii ecj-bootstrap 3.1.2-4 bootstrap version of the Eclipse Java compiler ii gij 4.0.3-3 The GNU Java bytecode interpreter lindi@sauna:~/local/freenet07-svn/freenet$ ant -d WARNING: Error loading security provider gnu.crypto.jce.GnuCrypto: java.lang.ClassNotFoundException: gnu.crypto.jce.GnuCrypto not found in gnu.gcj.runtime.SystemClassLoader{urls=[file:/usr/share/ant/lib/ant-launcher.jar,file:/usr/share/java/xmlParserAPIs.jar,file:/usr/share/java/xercesImpl.jar], parent=gnu.gcj.runtime.ExtensionClassLoader{urls=[], parent=null}} WARNING: Error loading security provider gnu.javax.crypto.jce.GnuSecurity: java.lang.ClassNotFoundException: gnu.javax.crypto.jce.GnuSecurity not found in gnu.gcj.runtime.SystemClassLoader{urls=[file:/usr/share/ant/lib/ant-launcher.jar,file:/usr/share/java/xmlParserAPIs.jar,file:/usr/share/java/xercesImpl.jar], parent=gnu.gcj.runtime.ExtensionClassLoader{urls=[], parent=null}} Apache Ant version 1.6.5 compiled on February 1 2006 Buildfile: build.xml Adding reference: ant.PropertyHelper Detected Java version: 1.4 in: /usr/lib/jvm/java-1.4.2-gcj-4.0-1.4.2.0/jre Detected OS: Linux Adding reference: ant.ComponentHelper Setting ro project property: ant.version -> Apache Ant version 1.6.5 compiled on February 1 2006 Setting ro project property: ant.file -> /home/lindi/local/freenet07-svn/freenet/build.xml Adding reference: ant.projectHelper Adding reference: ant.parsing.context Adding reference: ant.targets parsing buildfile /home/lindi/local/freenet07-svn/freenet/build.xml with URI = file:///home/lindi/local/freenet07-svn/freenet/build.xml Setting ro project property: ant.project.name -> Freenet Adding reference: Freenet Setting ro project property: ant.file.Freenet -> /home/lindi/local/freenet07-svn/freenet/build.xml Project base dir set to: /home/lindi/local/freenet07-svn/freenet +Target: +Target: mkdir +Target: env +Target: get-extjar +Target: compile +Target: dist +Target: clean +Target: distclean Setting project property: src -> /home/lindi/local/freenet07-svn/freenet/src Setting project property: build -> /home/lindi/local/freenet07-svn/freenet/build Setting project property: lib -> /home/lindi/local/freenet07-svn/freenet/lib Setting project property: freenet-ext.location -> /home/lindi/local/freenet07-svn/freenet/lib/freenet-ext.jar Attempting to create object of type org.apache.tools.ant.helper.DefaultExecutor Adding reference: ant.executor Build sequence for target(s) `dist' is [mkdir, env, get-extjar, compile, dist] Complete build sequence is [mkdir, env, get-extjar, compile, dist, clean, distclean, ] mkdir: env: [available] Unable to find lib/freenet-ext.jar to set property freenet-ext.present get-extjar: [get] Getting: http://downloads.freenetproject.org/alpha/freenet-ext.jar [get] To: /home/lindi/local/freenet07-svn/freenet/lib/freenet-ext.jar BUILD FAILED /home/lindi/local/freenet07-svn/freenet/build.xml:31: java.lang.StringIndexOutOfBoundsException at org.apache.tools.ant.Task.perform() (Unknown Source) at org.apache.tools.ant.Target.execute() (Unknown Source) at org.apache.tools.ant.Target.performTasks() (Unknown Source) at org.apache.tools.ant.Project.executeSortedTargets(java.util.Vector) (Unknown Source) at org.apache.tools.ant.Project.executeTarget(java.lang.String) (Unknown Source) at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(org.apache.tools.ant.Project, java.lang.String[]) (Unknown Source) at org.apache.tools.ant.Project.executeTargets(java.util.Vector) (Unknown Source) at org.apache.tools.ant.Main.runBuild(java.lang.ClassLoader) (Unknown Source) at org.apache.tools.ant.Main.startAnt(java.lang.String[], java.util.Properties, java.lang.ClassLoader) (Unknown Source) at org.apache.tools.ant.launch.Launcher.run(java.lang.String[]) (Unknown Source) at org.apache.tools.ant.launch.Launcher.main(java.lang.String[]) (Unknown Source) at gnu.java.lang.MainThread.call_main() (/usr/lib/libgcj.so.6.0.0) at gnu.java.lang.MainThread.run() (/usr/lib/libgcj.so.6.0.0) Caused by: java.lang.StringIndexOutOfBoundsException at java.lang.String.substring(int, int) (/usr/lib/libgcj.so.6.0.0) at gnu.java.net.protocol.http.Request.readResponse(gnu.java.net.LineInputStream) (/usr/lib/libgcj.so.6.0.0) at gnu.java.net.protocol.http.Request.dispatch() (/usr/lib/libgcj.so.6.0.0) at gnu.java.net.protocol.http.HTTPURLConnection.connect() (/usr/lib/libgcj.so.6.0.0) at org.apache.tools.ant.taskdefs.Get.doGet(int, org.apache.tools.ant.taskdefs.Get$DownloadProgress) (Unknown Source) at org.apache.tools.ant.taskdefs.Get.execute() (Unknown Source) at org.apache.tools.ant.UnknownElement.execute() (Unknown Source) at org.apache.tools.ant.Task.perform() (Unknown Source) ...12 more --- Nested Exception --- java.lang.StringIndexOutOfBoundsException at java.lang.String.substring(int, int) (/usr/lib/libgcj.so.6.0.0) at gnu.java.net.protocol.http.Request.readResponse(gnu.java.net.LineInputStream) (/usr/lib/libgcj.so.6.0.0) at gnu.java.net.protocol.http.Request.dispatch() (/usr/lib/libgcj.so.6.0.0) at gnu.java.net.protocol.http.HTTPURLConnection.connect() (/usr/lib/libgcj.so.6.0.0) at org.apache.tools.ant.taskdefs.Get.doGet(int, org.apache.tools.ant.taskdefs.Get$DownloadProgress) (Unknown Source) at org.apache.tools.ant.taskdefs.Get.execute() (Unknown Source) at org.apache.tools.ant.UnknownElement.execute() (Unknown Source) at org.apache.tools.ant.Task.perform() (Unknown Source) at org.apache.tools.ant.Target.execute() (Unknown Source) at org.apache.tools.ant.Target.performTasks() (Unknown Source) at org.apache.tools.ant.Project.executeSortedTargets(java.util.Vector) (Unknown Source) at org.apache.tools.ant.Project.executeTarget(java.lang.String) (Unknown Source) at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(org.apache.tools.ant.Project, java.lang.String[]) (Unknown Source) at org.apache.tools.ant.Project.executeTargets(java.util.Vector) (Unknown Source) at org.apache.tools.ant.Main.runBuild(java.lang.ClassLoader) (Unknown Source) at org.apache.tools.ant.Main.startAnt(java.lang.String[], java.util.Properties, java.lang.ClassLoader) (Unknown Source) at org.apache.tools.ant.launch.Launcher.run(java.lang.String[]) (Unknown Source) at org.apache.tools.ant.launch.Launcher.main(java.lang.String[]) (Unknown Source) at gnu.java.lang.MainThread.call_main() (/usr/lib/libgcj.so.6.0.0) at gnu.java.lang.MainThread.run() (/usr/lib/libgcj.so.6.0.0) Total time: 4 seconds Seems it fails while trying to get freenet-ext.jar over HTTP. Fortunately this is not very important feature since we want to build freenet-ext.jar anyway. $ echo -en "GET /get/get.php?location=/alpha/freenet-ext.jar HTTP/1.1\r\nHost: get.freenetproject.org\r\nUser-Agent: gnu-classpath/null (libgcj/4.0.3 (Debian 4.0.3-1))\r\nConnection: keep-alive\r\nAccept-Encoding: chunked;q=1.0, gzip;q=0.9, deflate;q=0.8, identity;q=0.6, *;q=0\r\n\r\n" | nc get.freenetproject.org 80 -vv emu.freenetproject.org [80.68.80.201] 80 (www) open HTTP/1.1 302 Date: Thu, 13 Apr 2006 22:56:31 GMT Server: Apache X-Powered-By: PHP/4.3.10-16 Location: http://sleon.dyndns.org/~mirror//alpha/freenet-ext.jar Keep-Alive: timeout=15, max=100 Connection: Keep-Alive Transfer-Encoding: chunked Content-Type: text/html; charset=UTF-8 0