-
Damian Minkov authored
Conflicts: resources/install/build-debian.xml resources/install/debian/copyright resources/install/debian/patches/sdes4j.patch
Damian Minkov authoredConflicts: resources/install/build-debian.xml resources/install/debian/copyright resources/install/debian/patches/sdes4j.patch
build-debian.xml 24.96 KiB
<project name="libjitsi-debian" basedir=".">
<property name="tmp" value="tmp"/>
<!-- The target that is called just after clean and before building. Will
prepare all sources in ${tmp} folder. Expects ../fmj, ../ice4j,
../jitsi-lgpl-dependencies, and ../libsrc to exist.
-->
<target name="deb-src" depends="deb-copy-libjitsi">
<!-- pack as original sources -->
<tar destfile="${dist}/libjitsi_${build.label}.orig.tar.gz"
compression="gzip"
basedir="${tmp}"/>
<delete failonerror="false" includeemptydirs="true">
<fileset dir="${tmp}"/>
</delete>
</target>
<target name="deb-copy-libjitsi">
<mkdir dir="${tmp}/libjitsi/lib/src"/>
<!-- First copy libjitsi itself -->
<copy todir="${tmp}/libjitsi">
<fileset dir=".">
<include name="src/**"/>
<exclude name="src/**/g729/**"/>
<include name="build.xml"/>
<include name="resources/install/build-debian.xml"/>
<exclude name="**/macosx/**"/>
<exclude name="**/windows/**"/>
<exclude name="**/gsm/**"/>
</fileset>
</copy>
<copy todir="${tmp}/libjitsi">
<fileset dir="resources/install/">
<include name="debian/**"/>
<exclude name="debian/control.binary.pkg"/>
</fileset>
</copy>
<tstamp>
<format property="date"
pattern="EEE, d MMM yyyy HH:mm:ss Z"
locale="en,US"/>
</tstamp>
<replace file="${tmp}/libjitsi/debian/changelog">
<replacefilter token="_VER_" value="${build.label}"/>
<replacefilter token="_DATE_" value="${date}"/>
</replace>
<!-- jitsi-lgpl-dependencies
https://github.com/jitsi/jitsi-lgpl-dependencies.git
-->
<copy todir="${tmp}/libjitsi/lib/src/jitsi-lgpl-dependencies">
<fileset dir="../jitsi-lgpl-dependencies">
<include name="build.xml"/>
<include name="src/**"/>
</fileset>
</copy>
<mkdir dir="${tmp}/libjitsi/lib/src/jitsi-lgpl-dependencies/lib/installer-exclude"/>
<!-- ice4j
svn checkout http://ice4j.googlecode.com/svn/trunk/ ice4j
-->
<copy todir="${tmp}/libjitsi/lib/src/ice4j">
<fileset dir="../ice4j">
<include name="src/**"/>
<include name="build.xml"/>
</fileset>
</copy>
<!-- jsip -->
<unzip src="../libsrc/jsip.zip"
dest="${tmp}/libjitsi/lib/src/">
<patternset>
<exclude name="**/.svn/**"/>
<exclude name="**/*.jar"/>
</patternset>
</unzip>
<!-- sdes -->
<unzip src="../libsrc/sdes4j.zip"
dest="${tmp}/libjitsi/lib/src/"/>
<path id="sdes_name">
<dirset dir="${tmp}/libjitsi/lib/src/">
<include name="sdes4j-*"/>
</dirset>
</path>
<property name="sdes-pkg-name" refid="sdes_name" />
<echo message="renaming ${sdes-pkg-name} to ${tmp}/libjitsi/lib/src/sdes4j" />
<move file="${sdes-pkg-name}" tofile="${tmp}/libjitsi/lib/src/sdes4j" />
<!-- fmj
svn checkout http://svn.code.sf.net/p/fmj/code/fmj fmj
-->
<copy todir="${tmp}/libjitsi/lib/src/fmj">
<fileset dir="../fmj">
<exclude name="**/.svn"/>
<include name="build.xml"/>
<include name="src/**"/>
<include name="src.capture/**"/>
<include name="src.ejmf/**"/>
<include name="src.rtp/**"/>
<include name="src.stubs/**"/>
<include name="src.sunibm.base/**"/>
<include name="src.sunibm.replace/**"/>
<include name="src.t4l/**"/>
<include name="src.utils/**"/>
<exclude name="**/macosx/**"/>
<exclude name="**/windows/**"/>
<exclude name="**/lib/**"/>
<exclude name="**/*.so"/>
<exclude name="**/*.dll"/>
<exclude name="**/src.examples.jmf/**"/>
<exclude name="**/civil/**" />
<exclude name="**/net/sf/fmj/media/cdp/GlobalCaptureDevicePlugger.java" />
<exclude name="**/net/sf/fmj/ejmf/toolkit/gui/**"/>
<exclude name="**/net/java/**" />
<exclude name="**/net/sf/fmj/capture/**" />
<exclude name="**/net/sf/fmj/ds/**" />
<exclude name="**/net/sf/fmj/gui/**" />
<exclude name="**/net/sf/fmj/test/**" />
<exclude name="**/net/sf/fmj/qt/**" />
<exclude name="**/net/sf/jdshow/**" />
<exclude name="**/gsm/**" />
<exclude name="**/rubycoder/**" />
<exclude name="**/fi/iki/elonen/nanohttpd/**" />
</fileset>
</copy>
<mkdir dir="${tmp}/libjitsi/lib/src/fmj/src.apps"/>
<mkdir dir="${tmp}/libjitsi/lib/src/fmj/src.ffmpeg-java"/>
<mkdir dir="${tmp}/libjitsi/lib/src/fmj/src.fmjstudio"/>
<mkdir dir="${tmp}/libjitsi/lib/src/fmj/src.gst"/>
<mkdir dir="${tmp}/libjitsi/lib/src/fmj/src.sip-communicator"/>
<mkdir dir="${tmp}/libjitsi/lib/src/fmj/src.theora-java"/>
<!-- zrtp4j -->
<unzip src="../libsrc/zrtp4j-src-3.2.0.zip"
dest="${tmp}/libjitsi/lib/src">
<patternset>
<exclude name="**/demo/**"/>
</patternset>
</unzip>
<!-- bccontrib -->
<unzip src="../libsrc/bccontrib.zip"
dest="${tmp}/libjitsi/lib/src/">
<patternset>
<exclude name="**/*.jar"/>
<exclude name="**/*.class"/>
</patternset>
</unzip>
<!-- portaudio -->
<unzip src="../libsrc/portaudio.zip"
dest="${tmp}/libjitsi/lib/src/">
<patternset>
<exclude name="**/*.o"/>
<exclude name="**/*.log"/>
<exclude name="**/*.orig"/>
<exclude name="**/bindings/**"/>
<exclude name="**/macosx/**"/>
<exclude name="**/windows/**"/>
</patternset>
</unzip>
<exec dir="${tmp}/libjitsi/lib/src/portaudio/"
executable="make"
failonerror="true">
<arg value="distclean" />
</exec>
<!-- usrsctp -->
<unzip src="../libsrc/usrsctp.zip"
dest="${tmp}/libjitsi/lib/src">
<patternset>
<exclude name="**/.svn"/>
</patternset>
</unzip>
<!-- libmkv -->
<unzip src="../libsrc/libmkv.zip"
dest="${tmp}/libjitsi/lib/src"/>
</target>
<target name="clean-debuild">
<delete failonerror="false">
<fileset dir="lib">
<include name="*.jar"/>
</fileset>
<fileset dir="lib/installer-exclude">
<include name="*.jar"/>
</fileset>
<fileset dir="lib/src/ice4j/lib">
<include name="*"/>
</fileset>
<fileset dir="lib/src/zrtp4j/lib">
<include name="*"/>
</fileset>
<fileset dir="lib/src/sdes4j/lib">
<include name="*"/>
</fileset>
<fileset dir="lib/src/jsip/lib">
<include name="*"/>
</fileset>
<fileset dir="lib/native/linux-64">
<include name="*"/>
</fileset>
<fileset dir="lib/native/linux">
<include name="*"/>
</fileset>
<fileset dir="lib/src/fmj">
<include name="fmj.jar"/>
</fileset>
</delete>
<delete dir="lib/src/bccontrib/target" failonerror="false"/>
<ant dir="lib/src/jitsi-lgpl-dependencies"
inheritAll="false"
target="clean" />
<ant dir="lib/src/ice4j"
inheritAll="false"
target="clean"/>
<exec dir="lib/src/sdes4j"
executable="mvn-debian"
resolveexecutable="true"
failonerror="true">
<arg value="-f" />
<arg value="pom.xml" />
<arg value="-Dmaven.test.skip=true" />
<arg value="clean" />
</exec>
<ant dir="lib/src/jsip"
inheritAll="false"
target="clean"/>
<ant dir="lib/src/fmj"
inheritAll="false"
target="clean"/>
<ant dir="lib/src/zrtp4j"
inheritAll="false"
target="clean"/>
<exec dir="lib/src/usrsctp" failonerror="false"
executable="make">
<arg value="distclean"/>
</exec>
<delete failonerror="false">
<fileset dir="lib/src/usrsctp/m4">
<include name="*"/>
</fileset>
<fileset dir="lib/src/usrsctp">
<include name="AUTHORS"/>
<include name="COPYING"/>
<include name="ChangeLog"/>
<include name="INSTALL"/>
<include name="**/Makefile.in"/>
<include name="NEWS"/>
<include name="README"/>
<include name="aclocal.m4"/>
<include name="compile"/>
<include name="config.*"/>
<include name="configure"/>
<include name="d*"/>
<include name="i*"/>
<include name="l*"/>
<include name="m*"/>
</fileset>
</delete>
<delete dir="lib/src/usrsctp/m4"/>
<ant target="clean-native"/>
</target>
<!-- used to build sources for debuilding deb package
invoked from rules
-->
<target name="deb-src-rebuild">
<!--depends="make"-->
<mkdir dir="lib/src/ice4j/lib"/>
<symlink resource="/usr/share/java/weupnp.jar"
overwrite="true"
link="lib/src/ice4j/lib/weupnp-0.1.2-SNAPSHOT.jar"/>
<!-- sdes -->
<exec dir="lib/src/sdes4j"
executable="mvn-debian"
resolveexecutable="true"
failonerror="true">
<arg value="-f" />
<arg value="pom.xml" />
<arg value="-Dmaven.test.skip=true" />
<arg value="package" />
</exec>
<copy tofile="lib/sdes4j.jar"
file="lib/src/sdes4j/target/sdes4j-1.1.3.jar"/>
<symlink resource="/usr/share/java/org.apache.felix.framework.jar"
overwrite="true"
link="lib/felix.jar"/>
<symlink resource="/usr/share/java/json-simple.jar"
overwrite="true"
link="lib"/>
<!-- jsip -->
<symlink resource="/usr/share/java/log4j-1.2.jar"
overwrite="true"
link="lib/src/jsip/lib/log4j-1.2.15.jar"/>
<ant dir="lib/src/jsip"
inheritAll="false"
target="dist">
</ant>
<copy tofile="lib/jain-sdp.jar"
file="lib/src/jsip/jain-sip-sdp-1.2.159.jar"/>
<copy tofile="lib/jain-sip-api.jar"
file="lib/src/jsip/jain-sip-api-1.2.jar"/>
<copy tofile="lib/jain-sip-ri.jar"
file="lib/src/jsip/jain-sip-sdp-1.2.159.jar"/>
<symlink resource="../../jsip/jain-sip-sdp-1.2.159.jar"
overwrite="true"
link="lib/src/ice4j/lib/jain-sdp.jar"/>
<!-- jitsi-lgpl-dependencies -->
<symlink resource="/usr/share/java/ant-contrib-cpptasks.jar"
overwrite="true"
link="lib/src/jitsi-lgpl-dependencies/lib/installer-exclude/cpptasks.jar"/>
<ant dir="lib/src/jitsi-lgpl-dependencies"
inheritAll="false"
target="jar" />
<copy todir="lib"
file="lib/src/jitsi-lgpl-dependencies/jitsi-lgpl-dependencies.jar"/>
<!-- ice4j -->
<ant dir="lib/src/ice4j"
inheritAll="false"
target="jar">
<property name="src2" value="src"/>
</ant>
<copy todir="lib"
file="lib/src/ice4j/ice4j.jar"/>
<!-- compile and pack bccontrib -->
<mkdir dir="lib/src/bccontrib/target/classes"/>
<javac debug="false" optimize="true"
destdir="lib/src/bccontrib/target/classes"
nowarn="false"
source="1.5" target="1.5" fork="true">
<src path="lib/src/bccontrib/src/main/java"/>
<classpath>
<pathelement location="/usr/share/java/bcprov.jar"/>
</classpath>
</javac>
<jar compress="true"
destfile="lib/src/bccontrib/target/bccontrib-1.0-SNAPSHOT.jar">
<fileset dir="lib/src/bccontrib/target/classes"/>
<manifest>
<attribute name="Bundle-Name" value="bccontrib"/>
<attribute name="Bundle-SymbolicName"
value="org.jitsi.bccontrib"/>
<attribute name="Bundle-Version" value="1.0.5.SNAPSHOT"/>
<attribute name="Import-Package"
value="org.bouncycastle.crypto,
org.bouncycastle.crypto.digests,
org.bouncycastle.crypto.engines,
org.bouncycastle.crypto.params,
org.bouncycastle.crypto.prng"/>
<attribute name="Export-Package"
value="org.jitsi.bccontrib.digests,
org.jitsi.bccontrib.engines,
org.jitsi.bccontrib.macs,
org.jitsi.bccontrib.params,
org.jitsi.bccontrib.prng,
org.jitsi.bccontrib.util"/>
</manifest>
</jar>
<copy tofile="lib/bccontrib.jar"
file="lib/src/bccontrib/target/bccontrib-1.0-SNAPSHOT.jar"/>
<!-- compile and pack fmj -->
<property name="fmj.src.folder" value="lib/src/fmj"/>
<mkdir dir="${fmj.src.folder}/build/classes" />
<javac debug="false" optimize="true"
destdir="${fmj.src.folder}/build/classes"
nowarn="false"
source="1.5" target="1.5" fork="true">
<src path="${fmj.src.folder}/src"/>
<src path="${fmj.src.folder}/src.capture"/>
<src path="${fmj.src.folder}/src.ejmf"/>
<src path="${fmj.src.folder}/src.apps"/>
<src path="${fmj.src.folder}/src.ffmpeg-java"/>
<src path="${fmj.src.folder}/src.fmjstudio"/>
<src path="${fmj.src.folder}/src.gst"/>
<src path="${fmj.src.folder}/src.rtp"/>
<src path="${fmj.src.folder}/src.sip-communicator"/>
<src path="${fmj.src.folder}/src.stubs"/>
<src path="${fmj.src.folder}/src.sunibm.base"/>
<src path="${fmj.src.folder}/src.sunibm.replace"/>
<src path="${fmj.src.folder}/src.t4l"/>
<src path="${fmj.src.folder}/src.theora-java"/>
<src path="${fmj.src.folder}/src.utils"/>
<exclude name="**/civil/**" />
<exclude name="net/sf/fmj/media/cdp/GlobalCaptureDevicePlugger.java" />
<exclude name="net/sf/fmj/ejmf/toolkit/gui/**"/>
<exclude name="net/java/**" />
<exclude name="net/sf/fmj/apps/**" />
<exclude name="net/sf/fmj/capture/**" />
<exclude name="net/sf/fmj/ds/**" />
<exclude name="net/sf/fmj/ffmpeg_java/**" />
<exclude name="net/sf/fmj/gst/**" />
<exclude name="net/sf/fmj/gui/**" />
<exclude name="net/sf/fmj/test/**" />
<exclude name="net/sf/fmj/theora_java/**" />
<exclude name="net/sf/fmj/qt/**" />
<exclude name="net/sf/fmj/ui/**" />
<exclude name="net/sf/jdshow/**" />
<exclude name="fi/iki/elonen/nanohttpd/**" />
</javac>
<jar compress="true" destfile="${fmj.src.folder}/fmj.jar">
<fileset dir="${fmj.src.folder}/build/classes">
<exclude name="net/sf/fmj/test/*" />
</fileset>
</jar>
<copy todir="lib"
file="lib/src/fmj/fmj.jar"/>
<!-- zrtp -->
<mkdir dir="lib/src/zrtp4j/lib"/>
<symlink resource="../../bccontrib/target/bccontrib-1.0-SNAPSHOT.jar"
overwrite="true"
link="lib/src/zrtp4j/lib"/>
<symlink resource="/usr/share/java/bcprov.jar"
overwrite="true"
link="lib/src/zrtp4j/lib/bcprov-jdk15on-148.jar"/>
<!-- It's not an error - zrtp build expects jmf.jar. -->
<symlink resource="../../fmj/fmj.jar"
overwrite="true"
link="lib/src/zrtp4j/lib/jmf.jar"/>
<symlink resource="/usr/share/java/junit.jar"
overwrite="true"
link="lib/src/zrtp4j/lib/junit.jar"/>
<ant dir="lib/src/zrtp4j"
inheritAll="false"
target="jar">
</ant>
<copy todir="lib"
file="lib/src/zrtp4j/dist/zrtp4j-light.jar"/>
<!-- libjitsi -->
<symlink resource="/usr/share/java/bcprov.jar"
overwrite="true"
link="lib"/>
<symlink resource="/usr/share/java/bcpkix.jar"
overwrite="true"
link="lib"/>
<symlink resource="/usr/share/java/jna.jar"
link="lib"/>
<ant inheritAll="false"
target="jar">
</ant>
<!-- will build native libs -->
<mkdir dir="lib/installer-exclude"/>
<mkdir dir="lib/native/linux"/>
<mkdir dir="lib/native/linux-64"/>
<symlink resource="/usr/share/java/ant-contrib-cpptasks.jar"
overwrite="true"
link="lib/installer-exclude/cpptasks.jar"/>
<!-- opus -->
<ant target="opus">
<property name="opus" value=""/>
</ant>
<ant target="screencapture"/>
<chmod file="lib/src/portaudio/configure" perm="+x"/>
<exec dir="lib/src/portaudio"
executable="configure"
resolveexecutable="true"
failonerror="true">
<arg value="--disable-shared" />
<arg value="--enable-static" />
<arg value="--with-pic" />
<arg value="--with-jack=no" />
</exec>
<exec dir="lib/src/portaudio"
executable="make"
failonerror="true"/>
<dirname property="current.basedir" file="${ant.file.libjitsi}"/>
<ant target="portaudio">
<property name="portaudio" value="${current.basedir}/lib/src/portaudio"/>
<property name="speex.dynamic" value="true"/>
</ant>
<exec dir="lib/src/usrsctp" failonerror="true"
executable="libtoolize" />
<exec dir="lib/src/usrsctp" failonerror="true"
executable="aclocal" />
<exec dir="lib/src/usrsctp" failonerror="true"
executable="autoconf" />
<exec dir="lib/src/usrsctp" failonerror="true"
executable="touch">
<arg value="AUTHORS"/>
<arg value="NEWS"/>
<arg value="README"/>
<arg value="ChangeLog"/>
</exec>
<exec dir="lib/src/usrsctp" failonerror="true"
executable="automake">
<arg value="--add-missing"/>
</exec>
<exec dir="lib/src/usrsctp"
executable="configure"
resolveexecutable="true"
failonerror="true">
<arg value="--prefix=/usr" />
<arg value="--with-pic" />
</exec>
<exec dir="lib/src/usrsctp"
executable="make"
failonerror="true"/>
<!-- sctp -->
<ant target="sctp">
<property name="usrsctp" value="${current.basedir}/lib/src/usrsctp"/>
</ant>
<!-- ffmpeg -->
<ant dir="lib/src/jitsi-lgpl-dependencies"
inheritAll="false"
target="ffmpeg">
<property name="ffmpeg" value=""/>
<property name="lame" value=""/>
<property name="libvpx" value=""/>
<property name="voamrwbenc" value=""/>
<property name="x264" value=""/>
<property name="LIBAV" value=""/>
<property name="arch" value="${arch}" />
<property name="native.libs" location="${native.libs}" />
<property name="obj" location="${obj}" />
<property name="os.name" value="${os.name}" />
</ant>
<!-- g722 -->
<ant dir="lib/src/jitsi-lgpl-dependencies"
inheritAll="false"
target="g722">
<property name="arch" value="${arch}" />
<property name="native.libs" location="${native.libs}" />
<property name="obj" location="${obj}" />
<property name="os.name" value="${os.name}" />
</ant>
<!-- video4linux -->
<ant target="video4linux2"/>
<!-- awtrenderer -->
<ant target="jawtrenderer"/>
<!--pulseaudio-->
<ant target="pulseaudio"/>
<!-- jnspeex -->
<ant target="speex">
<property name="speex.dynamic" value="true"/>
</ant>
<!--libvpx-->
<ant target="libvpx-debian">
<property name="libmkv" value="${current.basedir}/lib/src/libmkv"/>
</ant>
<!-- clean portaudio configure logs give warnings -->
<exec dir="${current.basedir}/lib/src/portaudio"
executable="make"
failonerror="true">
<arg value="distclean" />
</exec>
</target>
<target name="deb" depends="-init-deb,deb-32,deb-64">
<delete failonerror="false" includeemptydirs="true">
<fileset dir="${tmp}"/>
</delete>
</target>
<target name="deb-32">
<antcall target="-make-deb-package">
<param name="deb-arch" value="i386"/>
</antcall>
</target>
<target name="deb-64">
<antcall target="-make-deb-package">
<param name="deb-arch" value="amd64"/>
</antcall>
</target>
<target name="-init-deb" depends="jar">
<!-- First copy libjitsi itself -->
<copy todir="${tmp}/libjitsi">
<fileset dir=".">
<include name="src/native/build.xml"/>
<include name="lib/**"/>
<include name="libjitsi.jar"/>
<include name="build.xml"/>
<include name="resources/install/build-debian.xml"/>
<exclude name="**/macosx/**"/>
<exclude name="**/windows*/**"/>
<exclude name="**/freebsd*/**"/>
<exclude name="**/mac/**"/>
<exclude name="**/test/**"/>
<exclude name="**/installer-exclude/**"/>
</fileset>
</copy>
<copy todir="${tmp}/libjitsi">
<fileset dir="resources/install/">
<include name="debian/**"/>
</fileset>
</copy>
<tstamp>
<format property="date"
pattern="EEE, d MMM yyyy HH:mm:ss Z"
locale="en,US"/>
</tstamp>
<replace file="${tmp}/libjitsi/debian/changelog">
<replacefilter token="_VER_" value="${build.label}"/>
<replacefilter token="_DATE_" value="${date}"/>
</replace>
<replace file="${tmp}/libjitsi/debian/rules"
token="override_dh_auto_build:">
<replacevalue>#override_dh_auto_build:</replacevalue>
</replace>
<replace file="${tmp}/libjitsi/debian/rules"
token="	dh_auto_build -- deb-src-rebuild">
<replacevalue>#dh_auto_build -- deb-src-rebuild</replacevalue>
</replace>
<replace file="${tmp}/libjitsi/debian/rules"
token="dh_install -plibjitsi-jni">
<replacevalue>dh_install -plibjitsi</replacevalue>
</replace>
<replace file="${tmp}/libjitsi/debian/rules"
token="dh_auto_clean -- clean-debuild">
<replacevalue># do nothing</replacevalue>
</replace>
<delete failonerror="true">
<fileset dir="${tmp}/libjitsi/debian">
<include name="libjitsi.links"/>
</fileset>
</delete>
<move file="${tmp}/libjitsi/debian/control.binary.pkg"
tofile="${tmp}/libjitsi/debian/control"/>
</target>
<target name="-make-deb-package">
<!-- Build binary .deb package -->
<exec executable="${dpkg-buildpackage}" dir="${tmp}/libjitsi">
<arg value="-tc"/>
<arg value="-us"/>
<arg value="-uc"/>
<arg value="-b"/>
<arg value="-d"/>
<arg value="-a${deb-arch}"/>
</exec>
<move todir="${dist}">
<fileset dir="${tmp}">
<include name="*.deb"/>
<include name="*.changes"/>
</fileset>
</move>
</target>
</project>