[med-svn] [mauve] 09/11: Several changes to prepare Mauve. The plan is to move it to Git anyway

Andreas Tille tille at debian.org
Wed Apr 22 12:07:59 UTC 2015


This is an automated email from the git hooks/post-receive script.

tille pushed a commit to branch master
in repository mauve.

commit 200fb3e0dd0a590008cbd949c8bba82c07806d6e
Author: Andreas Tille <tille at debian.org>
Date:   Tue Apr 21 19:51:07 2015 +0000

    Several changes to prepare Mauve.  The plan is to move it to Git anyway
---
 debian/bin/mauve                    |   6 +
 debian/control                      |   9 +-
 debian/get-orig-source              |  39 +++++
 debian/install                      |   2 +
 debian/patches/build_xml.patch      | 279 ++++++++++++++++++++++++++++++++++++
 debian/patches/debian_classes.patch |  34 +++++
 debian/patches/series               |   2 +
 debian/rules                        |  42 ++++--
 debian/source/format                |   1 +
 9 files changed, 399 insertions(+), 15 deletions(-)

diff --git a/debian/bin/mauve b/debian/bin/mauve
new file mode 100644
index 0000000..90fd2e1
--- /dev/null
+++ b/debian/bin/mauve
@@ -0,0 +1,6 @@
+#!/bin/sh
+
+MAXMEM=3072
+
+DEBJAR="/usr/share/java"
+java -Xms64m -Xmx${MAXMEM}m  -classpath "${CLASSPATH}:${DEBJAR}/bytecode.jar:${DEBJAR}/commons-cli.jar:${DEBJAR}/jebl.jar" $(DEBJAR)/Mauve.jar $*
diff --git a/debian/control b/debian/control
index 608865c..909c8d4 100644
--- a/debian/control
+++ b/debian/control
@@ -5,7 +5,13 @@ Section: science
 Priority: optional
 Build-Depends: debhelper (>= 9),
                dh-autoreconf,
-               libmems-1.6-1-dev
+               javahelper,
+               default-jdk,
+               ant,
+               libbytecode-java,
+               libcommons-cli-java,
+               libdbus-java,
+               libjebl2-java
 Standards-Version: 3.9.6
 Vcs-Browser: http://anonscm.debian.org/viewvc/debian-med/trunk/packages/mauve/
 Vcs-Svn: svn://anonscm.debian.org/debian-med/trunk/packages/mauve/trunk/
@@ -13,7 +19,6 @@ Homepage: http://darlinglab.org/mauve/
 
 Package: mauve
 Architecture: any
-Section: science
 Depends: ${shlibs:Depends},
          ${misc:Depends}
 Description: multiple genome alignment
diff --git a/debian/get-orig-source b/debian/get-orig-source
new file mode 100755
index 0000000..dd75520
--- /dev/null
+++ b/debian/get-orig-source
@@ -0,0 +1,39 @@
+#!/bin/sh
+# get source for mauve from SVN because there is no source tarball distribution
+
+set -e
+NAME=`dpkg-parsechangelog | awk '/^Source/ { print $2 }'`
+
+if ! echo $@ | grep -q upstream-version ; then
+    VERSION=`dpkg-parsechangelog | awk '/^Version:/ { print $2 }' | sed 's/\([0-9\.]\+\)-[0-9]\+$/\1/'`
+else
+    VERSION=`echo $@ | sed "s?^.*--upstream-version \([0-9.]\+\) .*${NAME}.*?\1?"`
+    if echo "$VERSION" | grep -q "upstream-version" ; then
+        echo "Unable to parse version number"
+        exit
+    fi
+fi
+
+SVNURI="svn://svn.code.sf.net/p/mauve/code/mauve/trunk"
+revision=`LANG=C svn info ${SVNURI} | grep "^Last Changed Rev:" | sed 's/Last Changed Rev: *//'`
+VERSION=`echo ${VERSION}| sed "s/+[0-9]\+$//"`+${revision}
+
+TARDIR=${NAME}-${VERSION}
+
+mkdir -p ../tarballs
+cd ../tarballs
+# svn export conserves time stamps of the files, checkout does not
+LC_ALL=C svn export ${SVNURI} ${TARDIR} >/dev/null 2>/dev/null
+
+cd ${TARDIR}
+rm -rf osx win32 win64
+rm -rf linux-x64/* linux-x86/*
+find . -name "*ant*.jar" -delete
+find . -name "*bytecode*.jar" -delete
+find . -name "*commons-cli*.jar" -delete
+find . -name "*dbus*.jar" -delete
+find . -name "*jebl*.jar" -delete
+cd ..
+
+tar --owner=root --group=root --mode=a+rX -caf "$NAME"_"$VERSION".orig.tar.xz "${TARDIR}"
+rm -rf "${NAME}"-"$VERSION"
diff --git a/debian/install b/debian/install
new file mode 100644
index 0000000..0e291bb
--- /dev/null
+++ b/debian/install
@@ -0,0 +1,2 @@
+debian/bin	usr	
+Mauve.jar	/usr/share/java
diff --git a/debian/patches/build_xml.patch b/debian/patches/build_xml.patch
new file mode 100644
index 0000000..a7fbd35
--- /dev/null
+++ b/debian/patches/build_xml.patch
@@ -0,0 +1,279 @@
+Author: Andreas Tille <tille at debian.org>
+Last-Updated: Fri, 17 Apr 2015 15:38:22 +0200
+Description: Drop OSX specific things from build.xml,
+ Prevent build from calling home at build time
+
+--- a/build.xml
++++ b/build.xml
+@@ -19,7 +19,6 @@
+ 	-->
+ 	<!-- deployment locations for standalone releases -->
+ 	<property name="deploy.address" value="darlini8 at darlinglab.org" />
+-	<property name="deploy.bareaddress" value="darlinglab.org" />
+ 	<property name="deploy.username" value="darlini8" />
+ 	<property name="deploy.win32.keyfile" value="C:\Documents and Settings\koadman\plonk.ppk" />
+ 	<property name="deploy.serverdir" value="/home3/darlini8/www/mauve/downloads" />
+@@ -44,14 +43,6 @@
+ 	<!-- get any environment variables -->	
+ 	<property environment="env" />
+ 
+-	<!-- osxant.jar creates Mac OS X disk images -->
+-	<taskdef name="dmg" classname="com.amberarcher.ant.osx.DmgTask">
+-		<classpath>
+-			<pathelement path="${support}/osxant.jar"/>
+-		</classpath>
+-	</taskdef>
+-	<!-- maverick-ant.jar supports secure FTP for deployment -->
+-    <taskdef name="ssh" classname="com.sshtools.ant.Ssh" classpath="${support}/maverick-ant.jar"/>
+ 	<taskdef resource="net/sf/antcontrib/antcontrib.properties">
+ 		<classpath>
+ 			<pathelement path="${support}/ant-contrib-1.0b3.jar"/>
+@@ -189,7 +180,7 @@
+ 		<copy todir="C:\htdocs" file="./jws/mauve.jnlp" />
+ 	</target>
+ 		
+-	<target name="dist" depends="jar,getChangeLog" description="generate the distribution" >
++	<target name="dist" depends="jar" description="generate the distribution" >
+ 		<!-- Create the distribution directory -->
+ 		<mkdir dir="${dist}" />
+ 		
+@@ -225,141 +216,6 @@
+ 		classname="com.oracle.appbundler.AppBundlerTask"   
+ 		classpath="build_support/appbundler-1.0.jar" />
+ 
+-<!-- Create a DMG - This only works on MacOSX (requires hdiutil) -->
+-<target name="dmg" depends="macdist" description="Create a DMG package for MacOSX (only works on MacOSX)">
+-    
+-    <!-- Set this property value to your application name -->
+-    <property name="app.name" value="Mauve-${release.version}"/>
+-    
+-    <!-- Set this property value to a directory where you can
+-     mount temporarily your images, for example /tmp -->
+-    <property name="mountdir"  value="/tmp"/>
+-    
+-    <!-- Delete previously created DMG -->
+-    <delete file="${dist}/${app.name}.dmg" quiet="yes" failonerror="false"/>
+-    
+-    <!-- Create a temporary Disk Image -->
+-    <exec executable="/usr/bin/hdiutil" os="Mac OS X" failonerror="true">
+-        <arg value="create"/>
+-        <arg value="-srcfolder"/>
+-        <arg value="staging"/>
+-        <arg value="-volname"/>
+-        <arg value="${app.name}"/>
+-        <arg value="-ov"/>
+-        <arg value="${dist}/${app.name}-tmp.dmg"/>
+-        <arg value="-format"/>
+-        <arg value="UDRW"/>
+-    </exec>
+-    
+-    <!-- Attach the temporary image -->
+-    <exec executable="/usr/bin/hdiutil" os="Mac OS X" failonerror="true">
+-        <arg value="attach"/>
+-        <arg value="${dist}/${app.name}-tmp.dmg"/>
+-        <arg value="-mountroot"/>
+-        <arg value="${mountdir}/"/>
+-    </exec>
+-    
+-    <!-- Copy the background, the volume icon and DS_Store files -->
+-    <mkdir dir="${mountdir}/${app.name}/.background"/>
+-    <copy file="osx/background.png" tofile="${mountdir}/${app.name}/.background/background.png" overwrite="true"/>
+-    <copy file="osx/mauve.icns" tofile="${mountdir}/${app.name}/.VolumeIcon.icns" overwrite="true"/>
+-    <copy file="osx/DS_Store" tofile="${mountdir}/${app.name}/.DS_Store" overwrite="true"/>
+-
+-
+-    <!-- Indicate that we want a custom icon -->
+-    <exec executable="SetFile" os="Mac OS X">
+-        <arg value="-a"/>
+-        <arg value="C"/>
+-        <arg value="${mountdir}/${app.name}"/>
+-    </exec>
+-    
+-    <!-- Add a symbolic link to the Applications directory -->
+-    <symlink link="${mountdir}/${app.name}" resource="/Applications"/>
+-
+-
+-
+-    <!-- Detach the temporary image -->
+-    <exec executable="/usr/bin/hdiutil" os="Mac OS X" failonerror="true">
+-        <arg value="detach"/>
+-        <arg value="${mountdir}/${app.name}"/>
+-    </exec>
+-    
+-    <!-- Compress it to a new image -->
+-    <exec executable="/usr/bin/hdiutil" os="Mac OS X" failonerror="true">
+-        <arg value="convert"/>
+-        <arg value="${dist}/${app.name}-tmp.dmg"/>
+-        <arg value="-format"/>
+-        <arg value="UDZO"/>
+-        <arg value="-o"/>
+-        <arg value="${dist}/${app.name}.dmg"/>
+-    </exec>
+-    
+-    <!-- Delete the temporary image -->
+-    <delete file="${dist}/${app.name}-tmp.dmg" quiet="yes" failonerror="false"/>
+-</target>
+-
+-
+-	<!-- Create an OS X application and disk image -->
+-	<target name="macdist" depends="jar,getChangeLog" description="Generate a Mac OS X disk image" >
+-		<!-- Create the distribution directory -->
+-		<mkdir dir="${dist}" />
+-		<delete dir="${dist}/Mauve.app"/>
+-
+-        <!-- get the java home -->
+-        <exec executable="/usr/libexec/java_home" os="Mac OS X" failonerror="true" outputproperty="osx.java.home"/>
+-		<bundleapp outputdirectory="${dist}"
+-			name="Mauve"
+-			displayname="Mauve ${release.version}"
+-			identifier="components.Mauve"
+-			icon="osx/mauve.icns"
+-			shortversion="${release.version}"
+-			copyright="(c) 2003-2015  http://darlinglab.org/mauve"
+-			mainclassname="org.gel.mauve.gui.Mauve">
+-			<classpath file="Mauve.jar" />
+-			<classpath file="ext/*.jar" />
+-			<librarypath file="osx/progressiveMauve" />
+-			<librarypath file="osx/mauveAligner" />
+-            <runtime dir="${osx.java.home}" />
+-            <option value="-Dapple.laf.useScreenMenuBar=false"/>
+-            <option value="-Xmx500m"/>
+-		</bundleapp>
+-		
+-		<!-- Create a staging directory for the Disk Image filesystem -->
+-		<mkdir dir="staging"/>
+-        <exec executable="ditto" failonerror="true">
+-                <arg value="-v"/>
+-                <arg value="${dist}/Mauve.app"/>
+-                <arg value="staging/Mauve.app"/>
+-        </exec>
+-		<copy todir="staging">
+-			<fileset dir="${basedir}">
+-				<include name="ChangeLog.html"/>
+-			</fileset>
+-		</copy>
+-		
+-		<!-- copy text files to the staging directory, adding .txt
+-		     to their filename -->
+-		<copy todir="staging">
+-			<fileset dir="${basedir}">
+-				<include name="COPYING"/>
+-			</fileset>
+-			<mapper type="glob" from="*" to="*.txt"/>
+-		</copy>
+-		<chmod file="staging/Mauve.app/Contents/MacOS/JavaAppLauncher" perm="755"/>
+-		<chmod file="staging/Mauve.app/Contents/MacOS/mauveAligner" perm="755"/>
+-		<chmod file="staging/Mauve.app/Contents/MacOS/progressiveMauve" perm="755"/>
+-
+-<!-- sign the app -->
+-<exec executable="/usr/bin/codesign" os="Mac OS X" failonerror="true">
+-    <arg value="-s"/>
+-    <arg value="Developer ID Application: Aaron Darling"/>
+-    <arg value="--deep"/>
+-    <arg value="staging/Mauve.app"/>
+-</exec>
+-<!---->
+-
+-<!--        <dmg destfile="${dist}/Mauve-${release.version}.dmg" name="Mauve ${release.version}" srcdir="staging" compressed="true"/> -->
+-	</target>
+ 
+ 	<target name="srcdist" depends="init" description="package a source distribution">
+ 		<tar destfile="${dist}/mauve_source_${datestamp}.tar.gz" compression="gzip">
+@@ -384,27 +240,6 @@
+ 		</tar>
+ 	</target>
+ 
+-	<target name="getChangeLog" >
+-		<get src="http://darlinglab.org/mauve/user-guide/versions.html" dest="ChangeLog.html" usetimestamp="true"/>
+-		<copy file="ChangeLog.html" tofile="ChangeLog"/>
+-	</target>
+-
+-	<target name="nsicompile" depends="jar,getChangeLog" description="make windows installer" >
+-
+-		<!-- create output directory -->
+-		<mkdir dir="${dist}" />
+-
+-		<!-- Make timestamp and timestampdash for installer making -->
+-		<property environment="env" />
+-		<echo message="Program files: ${env.ProgramFiles}"/>
+-		<exec executable="C:\Program Files (x86)\NSIS\makensis.exe" dir=".">
+-			<arg line="/V2 /NOCD win32\mauve.nsi" />
+-			<env key="release_version" value="${release.version}" />
+-			<env key="datestamp" value="${datestamp}" />
+-		</exec>
+-	</target>
+-		
+-	
+ 	<target name="run" depends="jar" description="run Mauve">
+ 		<java jar="Mauve.jar" fork="true" />
+ 	</target>
+@@ -439,68 +274,8 @@
+ 			</filterset>
+ 		</copy>
+ 
+-		<!-- copy unmodified files to the server -->
+-		<ssh host="${deploy.bareaddress}"
+-			username="${deploy.username}"
+-			version="2"
+-			keyfile="${deploy.win32.keyfile}">
+-			<sftp action="put" remotedir="${deploy.asapdir}" verbose="true" newer="true">
+-				<fileset dir=".">
+-					<include name="Mauve.jar" />
+-					<include name="mauveApplet.jar" />
+-				</fileset>
+-				<fileset dir="./ext">
+-					<include name="*.jar"/>
+-				</fileset>
+-				<fileset dir="./src/images">
+-					<include name="mauve_icon.gif" />
+-					<include name="mauve_logo.png" />
+-				</fileset>
+-				<fileset dir="${dist}">
+-					<include name="mauve.jnlp"/>
+-				</fileset>
+-			</sftp>
+-			<!-- set the permissions so others in the group can modify them -->
+-			<exec cmd="chgrp annotation ${deploy.asapdir}/*"/>
+-			<exec cmd="chmod 664 ${deploy.asapdir}/*"/>
+-			<!-- jar files should have the execute bit set -->
+-			<exec cmd="chmod 775 ${deploy.asapdir}/*.jar"/>
+-		</ssh>
+-	</target>
+-	
+-	<!-- assumes that an ssh key has been registered with the web server -->
+-	<target name="deployWin32" depends="nsicompile">
+-		<echo file="${dist}\latest" message="${datestamp}"/>
+-		<echo file="${dist}\latest.windows" message="${datestamp}"/>
+-		<ssh host="${deploy.bareaddress}"
+-			username="${deploy.username}"
+-			version="2"
+-			keyfile="${deploy.win32.keyfile}">
+-
+-			<sftp action="put" remotedir="${deploy.serverdir}" verbose="true">
+-				<fileset dir="${dist}">
+-					<include name="mauve_installer_${release.version}.exe"/>
+-					<include name="${dist}\latest"/>
+-					<include name="${dist}\latest.windows"/>
+-				</fileset>
+-			</sftp>
+-			<exec cmd="cp ${deploy.serverdir}/mauve_installer_${release.version}.exe ${deploy.serverdir}/mauve_installer_${datestamp}.exe"/>
+-		</ssh>
+-	</target>
+-
+-	<!-- assumes that passwordless ssh authentication has been configured to the web server -->
+-	<target name="deployMacOSX" depends="dmg">
+-		<exec executable="scp">
+-			<arg value="${dist}/Mauve-${release.version}.dmg" />
+-			<arg value="${deploy.address}:${deploy.serverdir}" />
+-		</exec>
+-		<echo file="${dist}/latest.mac" message="${datestamp}"/>
+-		<exec executable="scp">
+-			<arg value="${dist}/latest.mac" />
+-			<arg value="${deploy.address}:${deploy.serverdir}" />
+-		</exec>
+ 	</target>
+-
++	
+ 	<!-- assumes that passwordless ssh authentication has been configured to the web server -->
+ 	<target name="deployLinux" depends="dist">
+ 		<exec executable="scp">
diff --git a/debian/patches/debian_classes.patch b/debian/patches/debian_classes.patch
new file mode 100644
index 0000000..2291120
--- /dev/null
+++ b/debian/patches/debian_classes.patch
@@ -0,0 +1,34 @@
+Author: Andreas Tille <tille at debian.org>
+Last-Updated: Fri, 17 Apr 2015 15:38:22 +0200
+Description: Use Debian packaged classes
+
+--- a/build.xml
++++ b/build.xml
+@@ -30,6 +30,7 @@
+ 	<property name="build" location="bin"/>
+ 	<property name="dist"  location="dist"/>
+ 	<property name="ext" location="ext"/>
++        <property name="deblib" location="/usr/share/java" />
+  	<property name="support" location="build_support"/>
+ 
+ 	<!-- Make datestamp for update checks -->
+@@ -78,15 +79,15 @@
+ 		<javac
+ 			classpath="
+ 				${ext}/core-1.9.2-SNAPSHOT.jar;
+-				${ext}/bytecode-1.9.2-SNAPSHOT.jar;
++				${deblib}/bytecode.jar;
+ 				${ext}/gui-1.9.2-SNAPSHOT.jar;
+-				${ext}/commons-cli-1.2.jar;
++				${deblib}/commons-cli.jar;
+ 				${support}/junit.jar;
+ 				${ext}/zeus-jscl.jar;
+ 				${ext}/goose.jar;
+ 				${ext}/ant-1.7.1.jar;
+-				${ext}/dbus-2.6.jar;
+-				${ext}/jebl-0.4.jar;
++				${deblib}/dbus.jar;
++				${deblib}/jebl.jar;
+ 				${ext}/unix-0.5.jar"
+ 			srcdir="${src}"
+ 			destdir="${build}"
diff --git a/debian/patches/series b/debian/patches/series
new file mode 100644
index 0000000..a204ff7
--- /dev/null
+++ b/debian/patches/series
@@ -0,0 +1,2 @@
+build_xml.patch
+debian_classes.patch
diff --git a/debian/rules b/debian/rules
index e96fdda..9e8409e 100755
--- a/debian/rules
+++ b/debian/rules
@@ -1,21 +1,37 @@
 #!/usr/bin/make -f
+# -*- makefile -*-
+# debian/rules file for mauve
+# Andreas Tille <tille at debian.org>
+# GPL
+
+#export DH_VERBOSE=1
+
+PACKAGE := $(shell dpkg-parsechangelog | sed -n 's/^Source: //p')
+
+JAVA_HOME  := /usr/lib/jvm/default-java
+
+DEBJAR    := /usr/share/java
+CLASS_PATH := $(DEBJAR)/bytecode.jar:$(DEBJAR)/commons-cli.jar:$(DEBJAR)/dbus.jar:$(DEBJAR)/jebl.jar
+
+# to run the test suite
+JAVA       := $(JAVA_HOME)/bin/java
+ANT_HOME   := /usr/share/ant
+ANT_BIN    := $(ANT_HOME)/bin/ant
+ANT_ARGS   := -Dcompile.debug=true -Dcompile.optimize=true
 
 %:
-	dh $@ --with autoreconf
+	dh $@ --with javahelper
 
-override_dh_install:
-	dh_install
-	d-shlibmove --commit \
-	            --multiarch \
-		    --devunversioned \
-		    --exclude-la \
-		    --movedev debian/tmp/usr/include/* usr/include \
-		    --movedev "debian/tmp/usr/lib/*/pkgconfig/*.pc" usr/lib/$(DEB_HOST_MULTIARCH)/pkgconfig \
-		    debian/tmp/usr/lib/*/*.so
+override_dh_auto_clean:
+	echo "Manual cleaning needed since build.xml has no clean target"
+	find . -name "*.class" -delete
+	rm -rf bin dist
+	rm -rf build.number src/version.properties
+	rm -rf Mauve.jar ChangeLog*
 
-#override_dh_auto_test:
-#	echo 'Disable test since some header (gnDNXSource.h) seems to be missing.'
+override_dh_auto_build:
+	# CLASSPATH=$(CLASS_PATH)
+	ant dist
 
 get-orig-source:
 	. debian/get-orig-source
-
diff --git a/debian/source/format b/debian/source/format
new file mode 100644
index 0000000..163aaf8
--- /dev/null
+++ b/debian/source/format
@@ -0,0 +1 @@
+3.0 (quilt)

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-med/mauve.git



More information about the debian-med-commit mailing list