diff --git a/build.xml b/build.xml index 62f2027d937c5d4bf34bcc562cf31867f2ec6957..b56d25cbb5f9a89691a9657fceed8708045d0374 100644 --- a/build.xml +++ b/build.xml @@ -473,12 +473,27 @@ <tar destfile="i2pupdate.tbz" basedir="pkg-temp" compression="bzip2" /> --> </target> + <target name="pack200"> - <exec executable="sh" failifexecutionfails="true"> +<!-- *nix here --> + <exec executable="sh" osfamily="unix" failifexecutionfails="true"> + <arg value="-c" /> + <arg value="for i in pkg-temp/lib/*.jar pkg-temp/webapps/*war; do echo pack200 $i; mv $i $i.jar; pack200 -g $i.pack $i.jar; rm -f $i.jar; done" /> + </exec> + <exec executable="sh" osfamily="mac" failifexecutionfails="true"> <arg value="-c" /> <!-- pack200 will only pack to a .pack file, and only from a .jar file, so we put another .jar on the end --> <arg value="for i in pkg-temp/lib/*.jar pkg-temp/webapps/*war; do echo pack200 $i; mv $i $i.jar; pack200 -g $i.pack $i.jar; rm -f $i.jar; done" /> </exec> +<!-- windoz here : i admit, i hate escaped symbols in xml, indeed = =! --> + <exec executable="cmd" osfamily="windows" failifexecutionfails="true"> + <arg value="/c" /> + <arg value="for %i in (pkg-temp\webapps\*.war) do move %i %i.jar && pack200 -g pkg-temp\webapps\%~ni.war.pack %i.jar && del %i.jar" /> + </exec> + <exec executable="cmd" osfamily="windows" failifexecutionfails="true"> + <arg value="/c" /> + <arg value="for %i in (pkg-temp\lib\*.jar) do move %i %i.jar && pack200 -g pkg-temp\lib\%~ni.jar.pack %i.jar && del %i.jar" /> + </exec> </target> <target name="updateTest" depends="prepupdate"> @@ -523,7 +538,7 @@ <copy file="build/routerconsole.war" todir="pkg-temp/webapps/" /> <copy file="build/addressbook.war" todir="pkg-temp/webapps/" /> <!-- decapitalized the file in 0.7.8 --> - <copy file="installer/resources/countries.txt" todir="pkg-temp/geoip/" /> + <copy file="installer/resources/countries.txt" todir="pkg-temp/geoip/" /> </target> <target name="prepupdateRouter" depends="buildrouter, deletepkg-temp"> <copy file="build/i2p.jar" todir="pkg-temp/lib/" /> @@ -843,43 +858,19 @@ none of the above is modified for this purpose --> <target name = "pkg-portable-clean"> <delete dir="build/" /> - <delete dir="portable/" /> + <delete dir="pkg-temp/" /> <delete> <fileset dir="." includes="portable-**.zip**" /> </delete> </target> <!-- build a portable archive --> -<!-- command for windows only packing --> - <target name = "pkg-portable-win32" depends="check-built-jars, preppkg-portable-windows-only, preppkg-portable-basic, preppkg-portable-win" > - <!-- i need the portable\ folder in .zip so basedir is set to . --> - <zip destfile="portable-win32.zip" basedir="." includes="portable\**" /> - <checksum file="portable-win32.zip" forceOverwrite="yes"/> - </target> -<!-- *0* check libs --> - <target name = "check-built-jars"> - <fail message="Please run 'ant buildSmall' first"> - <condition> - <or> - <not> - <available file="build/" type="dir" /> - </not> - <!-- we cant accept more files or they will be bundled into the package during 'for x in y do'--> - <not> - <resourcecount count="14"> - <fileset id="fs" dir="build/" includes="**.jar"/> - </resourcecount> - </not> - <not> - <resourcecount count="3"> - <fileset id="fs" dir="build/" includes="**.war"/> - </resourcecount> - </not> - </or> - </condition> - </fail> - </target> + +<!-- *0* Since we simply pack all files in folder "build/" into our archieve, + we need to make sure its small, with NO redundent jars or wars. + thus cleaning is required before each build--> + <target name="buildSmallOnly" depends="pkg-portable-clean,buildSmall"/> <!-- *1* preparing the jars by OS dependent de-bloating --> - <target name="preppkg-portable-windows-only" depends="chk-bigi-size" if="bloated-jbigi"> + <target name="preppkg-portable-win32-jbigi" depends="buildSmallOnly"> <!-- rip the non-windows stuff out of jbigi.jar --> <mkdir dir="tmpextract" /> <unjar src="build/jbigi.jar" dest="tmpextract/" /> @@ -888,102 +879,85 @@ </jar> <delete dir="tmpextract/" /> </target> - <target name="preppkg-portable-linux-only" depends="chk-bigi-size" if="bloated-jbigi"> + <target name="preppkg-portable-linux-jbigi" depends="buildSmallOnly"> <!-- rip the non-linux stuff out of jbigi.jar --> <mkdir dir="tmpextract" /> <unjar src="build/jbigi.jar" dest="tmpextract/" /> - <jar destfile="pkg-temp/lib/jbigi.jar" > + <jar destfile="build/jbigi.jar" > <fileset dir="tmpextract/" includes="*linux*" /> </jar> <delete dir="tmpextract/" /> </target> - <target name="chk-bigi-size"> - <condition property="bloated-jbigi"> - <length file="build/jbigi.jar" length="900000" when="gt" /> - </condition> - </target> -<!-- *2* os independent procedure --> + +<!-- *2* os independent procedure --> <target name="preppkg-portable-basic" > - <mkdir dir="portable" /> + <mkdir dir="pkg-temp" /> <!-- non OS dependent configurations only, dont add *nux/win stuff here --> - <copy todir="portable"> + <copy todir="pkg-temp"> <fileset dir="installer/resources/portable/configs/" /> </copy> - <copy file="installer/resources/blocklist.txt" todir="portable/" /> - <copy file="installer/resources/hosts.txt" todir="portable/" /> - <copy file="installer/resources/readme.license.txt" todir="portable/" /> - <mkdir dir="portable/addressbook" /> - <copy file="apps/addressbook/subscriptions.txt" todir="portable/addressbook/" /> - <copy file="apps/addressbook/myhosts.txt" todir="portable/addressbook/" /> + <copy file="installer/resources/blocklist.txt" todir="pkg-temp/" /> + <copy file="installer/resources/hosts.txt" todir="pkg-temp/" /> + <copy file="installer/resources/readme.license.txt" todir="pkg-temp/" /> + <mkdir dir="pkg-temp/addressbook" /> + <copy file="apps/addressbook/subscriptions.txt" todir="pkg-temp/addressbook/" /> + <copy file="apps/addressbook/myhosts.txt" todir="pkg-temp/addressbook/" /> <!-- config.txt is in installer/resources/portable --> - <mkdir dir="portable/docs" /> - <copy file="installer/resources/initialNews.xml" tofile="portable/docs/news.xml" overwrite="true" /> - <copy file="installer/resources/readme/readme.html" tofile="portable/docs/readme.html" /> - <copy file="installer/resources/startconsole.html" todir="portable/docs/" /> - <copy file="installer/resources/start.ico" todir="portable/docs/" /> - <copy file="installer/resources/console.ico" todir="portable/docs/" /> - <!-- http error respond, english only, + <mkdir dir="pkg-temp/docs" /> + <copy file="installer/resources/initialNews.xml" tofile="pkg-temp/docs/news.xml" overwrite="true" /> + <copy file="installer/resources/readme/readme.html" tofile="pkg-temp/docs/readme.html" /> + <copy file="installer/resources/startconsole.html" todir="pkg-temp/docs/" /> + <copy file="installer/resources/start.ico" todir="pkg-temp/docs/" /> + <copy file="installer/resources/console.ico" todir="pkg-temp/docs/" /> + <!-- HTTP Header files, english only, if you need a different lang do it in a sepreate target --> - <copy todir="portable/docs/" > + <copy todir="pkg-temp/docs/" > <fileset dir="installer/resources/proxy/" includes="**-header.ht" /> </copy> - <!-- here we choose light theme only --> - <copy todir="portable/docs/themes/console/light/" overwrite="true" > + <!-- Theme light only --> + <copy todir="pkg-temp/docs/themes/console/light/" overwrite="true" > <fileset dir="installer/resources/themes/console/light/" includes="**.css" /> </copy> <!-- @dr.zed where is your CJK fix for the default theme ?? put it here <copy file="installer/resources/themes/console/classic/console_big.css" todir="portable/docs/themes/console/light/" / --> - <copy todir="portable/docs/themes/console/images/" > + <copy todir="pkg-temp/docs/themes/console/images/" > <fileset dir="installer/resources/themes/console/images/" /> </copy> - <!-- flags for language icon (not for ip)--> - <copy todir="portable/docs/icons/flags" > + <!-- FLAGs for language icon (not for ip)--> + <copy todir="pkg-temp/docs/icons/flags" > <fileset dir="installer/resources/icons/flags/" includes="cn.png,de.png,fr.png,nl.png,ru.png,se.png,us.png" /> </copy> - <mkdir dir="portable/lib" /> - <mkdir dir="portable/webapps" /> - <copy todir="portable/webapps/"> + <mkdir dir="pkg-temp/webapps" /> + <copy todir="pkg-temp/webapps/"> <fileset dir="build/" includes="**.war" /> </copy> + <mkdir dir="pkg-temp/lib" /> + <copy todir ="pkg-temp/lib/" > + <fileset dir="build/" includes="**.jar" /> + </copy> + <!-- 3rd party jars from apps/ --> + <!-- jrobin - without jobin , you lost graph and get a lot error entry in logs --> + <copy file="apps/jrobin/jrobin-1.4.0.jar" tofile="pkg-temp/lib/jrobin.jar" /> </target> <!-- *3* os dependent procedure/commands --> - <target name = "preppkg-portable-win"> - <!-- *a* all jar in build/ --> - <!-- the following will not be pack200ed - since they got bloated rather than slimer after compression 00d --> - <move file="build\jasper-runtime.jar" todir ="portable\lib\" /> - <move file="build\javax.servlet.jar" todir ="portable\lib\" /> - <move file="build\jbigi.jar" todir ="portable\lib\" /> - <exec executable="cmd" failifexecutionfails="true"> - <arg value="/c" /> - <arg value="for %i in (build\*.jar) do pack200 -g -G portable\lib\%~ni.pack %i" /> - </exec> - <copy todir ="build\" > - <fileset dir = "portable\lib\" includes = "**.jar" /> - </copy> - <!-- *b* 3rd party jars from apps/ --> - <!-- jrobin - without jobin , you lost graph and get a lot error entry in logs --> - <exec executable="cmd" failifexecutionfails="true"> - <arg value="/c"/> - <arg value="pack200 -g -G portable\lib\jrobin.pack apps\jrobin\jrobin-1.4.0.jar" /> - </exec> -<!----> + <target name = "preppkg-portable-win32" depends="preppkg-portable-win32-jbigi,preppkg-portable-basic"> <!-- systray4.j - why do we need trayicons for portable version ? dependency hardcoded in console --> - <copy file="apps/systray/java/lib/systray4j.dll" todir="portable/lib" /> - <exec executable="cmd" failifexecutionfails="true"> - <arg value="/c"/> - <arg value="pack200 -g -G portable\lib\systray4j.pack apps\systray\java\lib\systray4j.jar" /> - </exec> -<!----> + <copy file="apps/systray/java/lib/systray4j.dll" todir="pkg-temp/lib" /> + <copy file="apps/systray/java/lib/systray4j.jar" todir="pkg-temp/lib" /> <!--wrapper - dont even think about it. i2p cosumes appreantly more mem without it on win32--> - <copy file="installer/lib/wrapper/win32/wrapper.dll" todir="portable/lib" /> - <copy file="installer/lib/wrapper/win32/I2Psvc.exe" tofile="portable/i2psvc.ex_" /> - <exec executable="cmd" failifexecutionfails="true"> - <arg value="/c"/> - <arg value="pack200 -g -G portable\lib\wrapper.pack installer\lib\wrapper\win32\wrapper.jar" /> - </exec> - <!-- *c* copy the unpack/start batchfiles --> - <copy todir="portable"> + <copy file="installer/lib/wrapper/win32/wrapper.dll" todir="pkg-temp/lib" /> + <copy file="installer/lib/wrapper/win32/wrapper.jar" todir="pkg-temp/lib" /> + <copy file="installer/lib/wrapper/win32/I2Psvc.exe" tofile="pkg-temp/i2psvc.ex_" /> + <!-- copy the unpack/start batchfiles --> + <copy todir="pkg-temp"> <fileset dir="installer/resources/portable/win32/" /> </copy> </target> +<!-- *4* command for windows package --> + <target name = "pkg-portable-win32" depends="preppkg-portable-win32, pack200" > + <!-- i need the portable\ folder in .zip so basedir is set to . --> + <move file="pkg-temp" tofile="portable"/> + <zip destfile="portable-win32.zip" basedir="." level="9" includes="portable\**" /> + <checksum file="portable-win32.zip" forceOverwrite="yes"/> + <move file="portable" tofile="pkg-temp"/> + </target> </project>