Revision 30535

View differences:

tags/tmp_build/install/HOWTO-BUILD.txt
1
 C?MO GENERAR EL INSTALADOR:
2
 ===========================
3
- gvSIG debe estar correctamente construido en ../_fwAndami/bin 
4
- En el fichero variables.sh hay algunas variables que nos pueden interesar, que permiten personalizar el nombre del plugin, la versi?n, el directorio destino, etc. La variable  APPNAME normalmente valdr? "gvSIG", pero puede tiener nombre si estamos empaquetando una extensi?n (por ejemplo,  "nomenclatorIGN").
5
- Definir los packs adecuados en el fichero XML de configuraci?n (install.xml), y revisar el fichero en general.
6
- Definir las extensiones a incluir en el directorio variables.sh.
7
- Lanzar el script distribucion.sh.
0 8

  
tags/tmp_build/install/instalador-gvSIG-mac/HOWTO-UPDATER,EXTS.txt
1

  
2
TENGO QUE GENERAR UN INSTALADOR DE UNA EXTENSI?N PARA GVSIG-MAC. COMO LO HAGO?
3
No hay un build.xml para ello, ya que no tendria sentido (el proceso es corto y habria que hacer cosas a mano de todas formas).
4
1.- Preparar los ficheros en su arbol de directorios, siendo el directorio de andami.jar el "raiz". 
5
Por ejemplo, supongamos una extensi?n que vaya a proveer estos ficheros a un gvSIG ya instalado:
6
<raiz>/andami.jar
7
<raiz>/gvSIG/extensiones/nuevoFichero1
8
<raiz>/NuevoDirectorio1/nuevoFichero2
9
2.- Hacer una copia de actualizador.app con un nuevo nombre (p. ej., "instalador de extension piloto de redes.app")
10
3.- Asegurarse de que tras la copia, los ficheros en <nuevo nombre>.app/Contents/MacOS/ tienen permisos de ejecuci?n. Una copia normal hecha con Ant suele perderlos!
11
4.- Copiar el arbol de directorios del paso 1 a <nuevo nombre>.app/Contents/Resources/updates/gvSIGbin/
12
5.- Revisar <nuevo nombre>.app/Contents/Resources/configfile para asegurarse de que las opciones configurables 
13
son correctas. Contiene ejemplos.
14
6.- Opcional: se puede a?adir un fichero Info.plist en <nuevo nombre>.app/Contents/Resources/updates/ si se quiere 
15
substituir el original del gvSIG instalado (para cambiar paths, par?ms de arranque de la JVM, etc)
16
7.- Comprimir <nuevo nombre>.app en un ZIP y distribuir.
17

  
18
-------------------------------------------------------------------
19
EXPLICACIONES: 
20

  
21
ACTUALIZACIONES, INSTALACIONES PARCIALES:
22
(y en general, para meter ficheros en un gvSIG ya instalado)
23
Para eso est? "actualizador.app". Es un bundle-aplicacion creado con AppleScript. Su prop?sito es copiar el contenido de uno de sus directorios internos al lugar adecuado de un bundle gvSIG.
24
Hay que poner en actualizador.app/Contents/Resources/updates/gvSIGbin/ el ?rbol de directorios de la actualizaci?n a instalar. Esos ficheros y directorios substituir?n a los que se encuentren en el gvSIG instalado, bas?ndose en la correspondencia entre el directorio mencionado y el directorio base del gvSIG ya existente en el mac del usuario (es decir, el directorio que contiene andami.jar; concretamente ser?a gvSIG.app/Contents/Resources/Java/).
25
Por ejemplo: si ponemos en actualizador.app/Contents/Resources/updates/gvSIGbin/ los siguientes ficheros:
26
andami.jar
27
gvSIG/extensiones/nuevoFichero1
28
NuevoDirectorio1/nuevoFichero2
29

  
30
Al usar ese actualizador, el gvSIG actualizado habr? recibido el andami.jar nuevo, habr? a?adido nuevoFichero1 a gvSIG/extensiones/, y habr? creado en el nivel de andami.jar el directorio NuevoDirectorio1 con nuevoFichero2 dentro.
31

  
32
El fichero actualizador.app/Contents/Resources/configfile permite configurar algunas cosas del actualizador:
33
--nombre que se pondr? a los bundles actualizados (opcional; se aplica al bundle autoinstalador y/o bundle sencillo de gvSIG);
34
--numero de version del bundle que se pide al usuario (opcional; solo se usa como cadena que se mostrar? junto a un mensaje del estilo de "Por favor, seleccione gvSIG versi?n...");
35
--MD5 de andami.jar de el/los gvSIG actualizables (opcional; permite limitar la instalaci?n a una versi?n definida de gvSIG)
36
--sufijo a agregar al nombre de los bundles actualizados (opcional; util para que un "gvSIG" pase a llamarse "gvSIG SEXTANTE", p. ej.)
37
Hay ejemplos y comentarios dentro del propio fichero configfile.
38

  
39
Si el actualizador encuentra un fichero actualizador.app/Contents/Resources/updates/Info.plist, lo pondr? en el lugar adecuado del bundle del gvSIG actualizado. Ser? ?til por ejemplo para cambiar el classpath de un nuevo gvSIG, su nombre tal como lo usa OS X, la versi?n de Java requerida, etc.
40

  
41
El actualizador copia los ficheros a su destino sobreescribiendo lo que encuentre. Los directorios son creados si no existen en destino; si existen, los ficheros que contiene son a?adidos. Es decir, un directorio existente con 10 ficheros no ser? machacado por un directorio con un s?lo fichero, sino que ser? a?adido. (este es el comportamiento intuitivamente esperable de un actualizador)
42
No hay opci?n implementada para borrar ficheros del destino; no parece necesario, y nos ahorramos riesgos.
43

  
44
Actualmente solo esta contemplada la posibilidad de copiar ficheros en el ?rbol de directorios a partir de donde esta andami.jar.
0 45

  
tags/tmp_build/install/instalador-gvSIG-mac/build-updater.xml
1
<project name="bundle-gvSIG" default="init" basedir=".">
2
	<property name="NOMBRE_BUNDLE" value="instalador de la extension XXX"/>
3
	<property name="DIR_DESTINO" value="${basedir}"/>
4

  
5
	<target name="init">
6
		<!-- copiamos el bundle actualizador ... -->
7
		<copy todir="${DIR_DESTINO}/${NOMBRE_BUNDLE}.app">
8
			<fileset dir="actualizador.app"/>
9
		</copy>
10
		<!-- (corregimos permisos de ejecucion que copy se ha cargado) -->
11
		<chmod dir="${DIR_DESTINO}/${NOMBRE_BUNDLE}.app/Contents/MacOS/" type="file" perm="+rwxrxrx"/>
12
		<!-- ...y copiamos cosas a su sitio dentro de autoinstalador
13
		MEJOR HACERLO A MANO?
14
		<copy todir="${NOMBRE_BUNDLE}.app/Contents/Resources/updates">
15
		LO QUE SEA; POR EJEMPLO,
16
			<fileset dir="../../binaries/mac/" includes="**/*.jar"/>
17
		</copy>
18
		-->
19
		<echo>ATENCION: SOLO SE HA HECHO UNA COPIA DEL ACTUALIZADOR VACIO, Y SE HAN CORREGIDO LOS PERMISOS. ESTAS EN EL PASO 4 DEL HOWTO-UPDATER,EXTS!</echo>
20
	</target>
21

  
22
</project>
0 23

  
tags/tmp_build/install/instalador-gvSIG-mac/.project
1
<?xml version="1.0" encoding="UTF-8"?>
2
<projectDescription>
3
	<name>instalador-gvSIG-mac_TRUNK</name>
4
	<comment></comment>
5
	<projects>
6
	</projects>
7
	<buildSpec>
8
	</buildSpec>
9
	<natures>
10
	</natures>
11
</projectDescription>
0 12

  
tags/tmp_build/install/instalador-gvSIG-mac/uninstallJAIIO.app/Contents/PkgInfo
1
APPLaplt
tags/tmp_build/install/instalador-gvSIG-mac/uninstallJAIIO.app/Contents/Script Debugger.list
1
<?xml version="1.0" encoding="UTF-8"?>
2
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3
<plist version="1.0">
4
<dict>
5
	<key>SD4Version</key>
6
	<string>4.0.8</string>
7
	<key>SDBundleVersion</key>
8
	<string>1.0b1</string>
9
	<key>SDWindowState</key>
10
	<dict>
11
		<key>chevronSyntax</key>
12
		<false/>
13
		<key>editorState</key>
14
		<dict>
15
			<key>showInvisibles</key>
16
			<false/>
17
			<key>showLineNumbers</key>
18
			<false/>
19
			<key>showSpaces</key>
20
			<false/>
21
			<key>showTabStops</key>
22
			<false/>
23
			<key>wrapLines</key>
24
			<false/>
25
		</dict>
26
		<key>errorsDividerPos</key>
27
		<real>0.0</real>
28
		<key>expressionsDividerPos</key>
29
		<real>117</real>
30
		<key>lineEndings</key>
31
		<integer>2</integer>
32
		<key>resultHeight</key>
33
		<real>134</real>
34
		<key>resultState</key>
35
		<dict>
36
			<key>browserDividerPos</key>
37
			<real>132</real>
38
			<key>desiredView</key>
39
			<integer>0</integer>
40
			<key>fsPathView</key>
41
			<integer>0</integer>
42
			<key>prettyPrint</key>
43
			<true/>
44
			<key>showInvisibles</key>
45
			<false/>
46
			<key>showSpaces</key>
47
			<false/>
48
			<key>showTabStops</key>
49
			<false/>
50
			<key>wrapLines</key>
51
			<true/>
52
		</dict>
53
		<key>resultsEdge</key>
54
		<integer>2</integer>
55
		<key>resultsOpen</key>
56
		<true/>
57
		<key>resultsWidth</key>
58
		<real>320</real>
59
		<key>selectionLength</key>
60
		<integer>0</integer>
61
		<key>selectionLocation</key>
62
		<integer>88</integer>
63
		<key>showDescriptionRulers</key>
64
		<true/>
65
		<key>showNavigationBar</key>
66
		<true/>
67
		<key>showStartup</key>
68
		<false/>
69
		<key>stackHeight</key>
70
		<real>137</real>
71
		<key>stayOpen</key>
72
		<false/>
73
		<key>toolbarVisible</key>
74
		<true/>
75
		<key>traceSpeed</key>
76
		<real>0.64999997615814209</real>
77
		<key>variablesDividerPos</key>
78
		<real>117</real>
79
		<key>variablesHeight</key>
80
		<real>218</real>
81
		<key>windowFrame</key>
82
		<string>44 125 1092 653 0 0 1280 778 </string>
83
		<key>windowSize</key>
84
		<string>{1092, 708}</string>
85
	</dict>
86
</dict>
87
</plist>
tags/tmp_build/install/instalador-gvSIG-mac/uninstallJAIIO.app/Contents/Info.plist
1
<?xml version="1.0" encoding="UTF-8"?>
2
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3
<plist version="1.0">
4
<dict>
5
	<key>CFBundleAllowMixedLocalizations</key>
6
	<true/>
7
	<key>CFBundleDevelopmentRegion</key>
8
	<string>English</string>
9
	<key>CFBundleExecutable</key>
10
	<string>applet</string>
11
	<key>CFBundleIconFile</key>
12
	<string>logo gvsig.icns</string>
13
	<key>CFBundleInfoDictionaryVersion</key>
14
	<string>6.0</string>
15
	<key>CFBundleName</key>
16
	<string>uninstallJAIIO</string>
17
	<key>CFBundlePackageType</key>
18
	<string>APPL</string>
19
	<key>CFBundleSignature</key>
20
	<string>aplt</string>
21
	<key>LSRequiresCarbon</key>
22
	<true/>
23
</dict>
24
</plist>
tags/tmp_build/install/instalador-gvSIG-mac/uninstallJAIIO.app/Contents/Resources/Scripts/main.recover.txt
1
--set JAIIO_installed to 
+--set better_uninstall to
+set but1 to localized string "Keep It"
+set but2 to localized string "Uninstall?"
+display alert (localized string "JAI-ImageIO is installed") message (localized string "Previous gvSIG versions needed it and offered to install it. But it has been found to cause problems with Java applets in web browsers like Firefox, Camino and Opera.
+
+Therefore, we recommend JAI-ImageIO to be uninstalled. Current and future versions of gvSIG do not need it.
+
+Do you want to uninstall it?") buttons {but1, but2} default button but2 as warning
+
+set theResult to result
+
+if button returned of theResult is but2 then
+	do shell script "rm ~/Library/Java/Extensions/jai_imageio.jar"
+	--display alert (localized string "Uninstalled correctly.") message (localized string "JAI-ImageIO has been uninstalled.") as informational
+else
+	set but1 to localized string "Launch gvSIG"
+	--set but2 to localized string "Ask Again Next Time"
+	display alert (localized string "JAI-ImageIO has not been uninstalled.") message ?
+		(localized string "If you want to uninstall it in a future, you can do so by hand.
+
+To uninstall, delete the file jai_imageio.jar contained in: your Home folder -> Library -> Java -> Extensions.") buttons {but1} default button but1 as warning
+	
+	--set theResult to result
+	--if button returned of theResult is but1 then
+	do shell script "defaults write ~/gvSIG/launcher \"Keep installed JAI-ImageIO\" -bool yes"
+	--end if
+end if
Index: tags/tmp_build/install/instalador-gvSIG-mac/uninstallJAIIO.app/Contents/Resources/en.lproj/Localizable.strings
tags/tmp_build/install/instalador-gvSIG-mac/uninstallJAIIO.app/Contents/Resources/description.rtfd/TXT.rtf
1
{\rtf1\ansi\ansicpg1252\cocoartf949\cocoasubrtf270
2
{\fonttbl}
3
{\colortbl;\red255\green255\blue255;}
4
}
tags/tmp_build/install/instalador-gvSIG-mac/build-bundle.xml
1
<project name="bundle-gvSIG" default="init" basedir=".">
2
	<dirname file="${ant.file.bundle-gvSIG}" property="DIR_ORIGEN"/>
3
	<property name="DIR_WORKSPACE" location="${DIR_ORIGEN}/../../"/>
4

  
5
	<property name="DIR_DESTINO" value="${DIR_ORIGEN}"/>
6
	<!-- Este script crea el bundle gvSIG con script previo (para ajustar variables de entorno, p.ej)
7
	y con librerias nativas -->
8

  
9
	<property name="JUNIT_HOME" location="${DIR_WORKSPACE}/binaries/ant/" />
10
	<taskdef name="jarbundler" classname="net.sourceforge.jarbundler.JarBundler">
11
		<classpath>
12
			<pathelement location="${DIR_WORKSPACE}/binaries/ant/jarbundler-1.9.jar"/>
13
			<pathelement location="${DIR_WORKSPACE}/_fwAndami/lib/xerces_2_5_0.jar"/>
14
		</classpath>
15
	</taskdef>
16

  
17
	<taskdef resource="net/sf/ant4eclipse/antlib.xml" >
18
			<classpath>
19
				<pathelement location="${DIR_WORKSPACE}/binaries/ant/ant4eclipse-0.5.0.rc1.jar"/>
20
			</classpath>
21
	</taskdef>
22

  
23
    <property name="jvmversion" value="1.5*"/>
24

  
25
	<target name="init">
26
	    <getEclipseClasspath
27
	    	property="tmp_andamiClasspath"
28
	        workspace="${DIR_WORKSPACE}"
29
	        projectName="_fwAndami"
30
	    	relative="yes"
31
	    	pathseparator=","
32
	    	runtime="true"
33
	   	/>
34
		<concat destfile="${DIR_ORIGEN}/tmp_andamiClasspath">andami.jar,${tmp_andamiClasspath}</concat>
35
		<replace file="${DIR_ORIGEN}/tmp_andamiClasspath"
36
			token="_fwAndami/"
37
			value=""
38
		/>
39
		<replace file="${DIR_ORIGEN}/tmp_andamiClasspath"
40
			token="bin,"
41
			value=""
42
		/>
43
		<replace file="${DIR_ORIGEN}/tmp_andamiClasspath"
44
			token="bin-test,"
45
			value=""
46
		/>
47
		<loadfile property="andamiClasspath" srcfile="${DIR_ORIGEN}/tmp_andamiClasspath"></loadfile>
48
		<delete file="${DIR_ORIGEN}/tmp_andamiClasspath"></delete>
49
		<echo>classPath=${andamiClasspath}</echo>
50
		<jarbundler
51
			dir="${DIR_DESTINO}"
52
			name="${NOMBRE_BUNDLE}"
53
			mainclass="com.iver.andami.Launcher"
54
			arguments="gvSIG gvSIG/extensiones"
55
			bundleid="com.iver.cit.gvsig"
56
			developmentregion = "Spanish"
57
			icon="logo gvsig.icns"
58
			shortname="gvSIG"
59
			signature="gvSI"
60
			stubfile="preJava"
61
			version="${FULLVERSION}"
62
			build="${build.number}"
63
			infostring="gvSIG ${FULLVERSION}"
64
			vmoptions ="-Xmx500M"
65
			jvmversion ="${jvmversion}"
66
			extraclasspath = "jai_imageio.jar,${andamiClasspath}"
67
			workingdirectory  = "$JAVAROOT"
68
			showplist="true"
69
			>
70

  
71
			<javaproperty name="apple.laf.useScreenMenuBar" value="true"/>
72
			<javaproperty name="java.library.path" value="$JAVAROOT/../NativeLibs"/>
73

  
74
			<!-- jarfileset no incluye nada, pero evita quejas de jarbundler -->
75
			<jarfileset dir="${DIR_ORIGEN}" includes="nothing!" excludes="*"/>
76
			<javafileset dir="${DIR_WORKSPACE}/_fwAndami/" excludes="bin/ src/ src-test/ bin-test/ cachedir/ config/ docs/ schemas/ build.xml/ *.bat"/>
77
		</jarbundler>
78

  
79
		<!-- tenemos ya un bundle con el script preJava, pero sin el "arrancador" de la JVM; hay que meterlo -->
80
		<copy file="${DIR_ORIGEN}/JavaApplicationStub" todir="${DIR_DESTINO}/${NOMBRE_BUNDLE}.app/Contents/MacOS"/>
81
		<!-- (corregimos permisos de ejecucion que copy se ha cargado) -->
82
		<chmod file="${DIR_DESTINO}/${NOMBRE_BUNDLE}.app/Contents/MacOS/*" perm="+rwxrxrx"/>
83

  
84
		<!-- ahora metemos las libs nativas...-->
85
		<!-- crear dir NativeLibs-->
86
		<mkdir dir="${DIR_DESTINO}/${NOMBRE_BUNDLE}.app/Contents/Resources/NativeLibs"/>
87
		<!-- copiar dentro dylibs, jnilibs-->
88
		<copy 	todir="${DIR_DESTINO}/${NOMBRE_BUNDLE}.app/Contents/Resources/NativeLibs"
89
				flatten="true"
90
			>
91
			<fileset dir="${DIR_WORKSPACE}/binaries/mac/raster/" includes="**/*.dylib **/*.jnilib"/>
92
			<fileset dir="${DIR_WORKSPACE}/binaries/mac/crs/" includes="**/*.dylib **/*.jnilib"/>
93
		</copy>
94
		<!-- copiar jars para JNI (jgdal, jmrsid) en gvSIG/extensiones/...-->
95
		<!-- (primero asegurarnos de que no hay jgdal o jmrsid duplicados, lo cual provocaría error en gvSIG) -->
96
		<delete>
97
		  	<fileset dir="${DIR_DESTINO}/${NOMBRE_BUNDLE}.app/Contents/Resources/Java/gvSIG/extensiones/com.iver.cit.gvsig/lib" includes="jgdal*.jar jmrsid*.jar"/>
98
		</delete>
99
		<copy 	todir="${DIR_DESTINO}/${NOMBRE_BUNDLE}.app/Contents/Resources/Java/gvSIG/extensiones/com.iver.cit.gvsig/lib"
100
				flatten="true"
101
			>
102
			<fileset dir="${DIR_WORKSPACE}/binaries/mac/raster/" includes="**/*.jar"/>
103
		</copy>
104
		
105
		<!-- copiar JAI-ImageIO junto a andami.jar, para ser usado en classpath en vez de como extensión de la JVM-->
106
		<copy file="jai_imageio.jar" todir="${DIR_DESTINO}/${NOMBRE_BUNDLE}.app/Contents/Resources/Java"/>
107
		
108
	</target>
109

  
110
</project>
0 111

  
tags/tmp_build/install/instalador-gvSIG-mac/preJava
1
#!/bin/sh
2
# This script offers a chance to fix the "unixy" stuff before the JVM starts
3
#(environment variables, etc)
4

  
5
thisDir="${0%/*}"
6

  
7
if [ -e ~/Library/Java/Extensions/jai_imageio.jar ]
8
then
9
	if [ "`defaults read ~/gvSIG/launcher "Keep installed JAI-ImageIO"`" != "1" ] 
10
	then
11
		open -W "$thisDir/uninstallJAIIO.app"
12
	fi
13
fi
14

  
15
export PROJ_LIB="$thisDir/../Resources/Java/gvSIG/extensiones/org.gvsig.crs/data"
16
exec "$thisDir/JavaApplicationStub" "$@"
tags/tmp_build/install/instalador-gvSIG-mac/HOWTO-BUILD.txt
1
INSTALACIONES COMPLETAS:
2
Para generar el bundle (.app) para Mac, se debe lanzar el script de Ant "build.xml".
3
Supone definida la variable build.number .
4
Dentro define FULLVERSION (habr? que cambiarlo para cada versi?n mayor, claro)
5
build.xml llama a build-bundle.xml para crear el bundle de gvSIG. 
6
build-bundle.xml usa un Ant Task llamado Jarbundler, que se puede obtener en http://jarbundler.sourceforge.net/. Hay que instalarlo en la librer?a del Ant que se use.
7
Si se desea usar con el Ant incluido en Eclipse, adem?s se debe a?adir xercesImpl.jar, que va incluido en los Ant "normales" pero no en el de Eclipse. (Tambi?n se puede redefinir el ANTHOME en las preferencias de Eclipse para apuntar a un Ant instalado aparte, en el se haya instalador el jarbundler). 
8

  
9
El classpath que usar? gvSIG est? hardcoded en linea "extraclasspath" de task jarbundler de build-bundle.xml. Ese classpath debe ser el mismo que se define en el gvSIG.sh de Linux, por ejemplo; pero con jai_imageio.jar a?adido.
10

  
11

  
12

  
13
EXPLICACION DETALLADA:
14
OS X puede ejecutar un fichero.jar con un doble click, pero eso es equivalente a "java fichero.jar", sin m?s par?metros.
15
Para que se ejecute con unos par?metros y un classpath, un icono propio y la metainformaci?n necesaria para parecer una aplicaci?n normal de mac, lo convertimos en un bundle.
16
Un bundle es un directorio con nombre *.app y una cierta estructura de directorios.
17
<miBundle.app>/Contents/Info.plist es un fichero XML con la metainfo necesaria para que OS X sepa ciertas cosas sobre la aplicaci?n: ficheros que puede abrir (extensiones, mimetypes, visor o editor, etc), icono, nombre/s que presentar al usuario, numeros de versi?n...
18
En el caso de aplicaciones java, tambi?n incluye el classpath, par?metros para la aplicaci?n y la JVM, etc.
19
Para el caso de gvSIG, en <miBundle.app>/Contents/Resources/Java/ ir? una copia del directorio gvsig/bin/ de un build normal.
20
De todo esto se encarga build-bundle.xml.
21

  
22
Hasta gvSIG 1.1.x inclusive se usaba adem?s un bundle auxiliar "autoinstalador" que se encargaba de instalar JAI-ImageIO (si no lo estaba ya). Dado que causaba problemas, hemos abandonado eso y ahora se usa JAI-ImageIO en el Classpath de gvSIG.
23

  
24
Nota: un usuario "normal" (no-desarrollador) de mac posiblemente no sepa qu? es un bundle. La forma normal de llamarlos es "aplicaci?n", y se suele considerar un item indivisible.
0 25

  
tags/tmp_build/install/instalador-gvSIG-mac/.cvsignore
1
gvSIG*autoinstalador.app
0 2

  
tags/tmp_build/install/instalador-gvSIG-mac/build.xml
1
<project name="bundle-gvSIG" default="init" basedir=".">
2
	<!-- Este script crea un bundle "simple" de gvSIG y lo envuelve en un bundle instalador de requisitos -->
3
	<property name="FULLVERSION" value="2.0"/>
4
	<property name="NOMBRE_BUNDLE" value="gvSIG ${FULLVERSION} build ${build.number}"/>
5
	<property name="NOMBRE_BUNDLE_AUTOINSTALADOR" value="${NOMBRE_BUNDLE} autoinstalador"/>
6
   	<property name="DIR_DESTINO" value="${basedir}"/>
7

  
8
    <property name="jvmversion" value="1.5*"/>
9
	<!-- para OS X 10.4 y 10.5 ==> jvmversion = "1.5*" 
10
			"1.4.1" significaría "usar JVM 1.4.1 estrictamente"
11
	     	"1.4*" significa "JVM 1.4.x, siendo x el máximo posible"
12
	     	"1.4+" significa "JVM 1.4 o superior" (p.ej., 1.5 si está instalado) -->
13

  
14
	<target name="init">
15
		<ant antfile="build-bundle.xml">
16
            <property name="jvmversion" value="${jvmversion}"/>
17
        </ant>
18

  
19

  
20
		<!-- Eliminada la creación del "autoinstaller" porque ya no hace falta instalar JAI-ImageIO en OS X, 
21
		sino que lo usamos en el Classpath -->
22

  
23

  
24
	</target>
25

  
26
</project>
0 27

  
tags/tmp_build/install/pluginInstallationTemplate/HOWTO-Extension.txt
1
{{{
2
#!rst
3
.. contents::
4

  
5
Cómo se genera un instalable para un Plugin de gvSIG
6
=======================================================
7

  
8
Número de  build
9
----------------
10

  
11
Un plugin debe añadir un panel (al que se accede en gvSIG por "ayuda->acerda de") con su correspondiente build.number para su seguimiento.
12
Para poder añadir dicho panel se seguirán los siguientes pasos:
13

  
14
+ En la carpeta config del plugin, se tiene que crear un fichero **"about.htm"**. Se puede ver un ejemplo de este fichero en el plugin **"extExpressionField"**. Lo más importante en este fichero es que debe tener la siguiente linea, que indica el build number: ::
15
   <p><br><br>
16
   <b> Build Number: #build.number#</b>
17
   </p>
18
 
19
+ Dentro de nuestro plugin, hay que crear dentro del build.xml un target **<buildNumber>**, que se encargará de aumentarlo: ::
20

  
21
	<target name="buildNumber">  
22
		<propertyfile	file="build.number"
23
				comment="Build Number for ANT. Do not edit!">
24
			<entry key="build.number" default="0" type="int" operation="+" />
25
		</propertyfile>
26
		<property file="build.number" />
27
	</target>
28

  
29
  **Nota**: Existe un *task* para el ant que hace una función parecida, el problema es que funciona de forma distinta
30
  a la que nosotros trabajamos (*Deja el siguiente número de build en el fichero, en vez de el actual*).
31

  
32
+ El fichero **"about.htm"** se tiene que copiar en una carpeta temporal y hacer el remplazo del #build.number# (el about.htm que se copiará al gvsig será el que está en dicha carpeta temporal). Aquí un ejemplo (extraído del *extExpressionField/build.xml*): ::
33
    
34
    <target name="copy-data-files">
35
		<copy file="config/config.xml" todir="${without_src}"/>
36
		<copy file="build.number" todir="${without_src}"/>
37
		<copy file="config/about.htm" todir="${without_src}"/>   <!-- AQUÍ SE HACE LA COPIA DEL about.htm A LA CARPETA TEMPORAL -->
38
		<loadproperties srcFile="build.number"/>
39
		<replace casesensitive="true"
40
  		file="${without_src}/about.htm"
41
  	  	token="#build.number#"
42
  		value="${build.number}"/>				<!-- AQUÍ SE HACE EL REMPLAZO DE #build.number# --> 
43
		<copy todir="${without_src}">
44
			<fileset dir="config" includes="text*.properties"/>
45
		</copy>
46
		<copy todir="${without_src}/images">
47
			<fileset dir="images/" includes="*"/>
48
		</copy>
49
    </target>
50

  
51
+ De nuevo en el build.xml de nuestro plugin, crear un target **<distribution>**, que llama al target *<buildNumber>* y luego al target por defecto. Este target por lo tanto hará lo mismo que el target por defecto, con la única diferencia de aumentar el buildnumber del plugin.
52

  
53
+ En los fuentes del plugin hay que crear una extensión (si ya la tenemos simplemente añadiremos dentro de ella) para registrar el panel de about.htm, un ejemplo (extraído nuevamente de *extExpressionField*) sería: ::
54

  
55
	public class AboutExpresionFieldExtension extends Extension {
56
	
57
		public void initialize() {
58
			// TODO Auto-generated method stub
59

  
60
		}
61

  
62
		public void postInitialize() {
63
			About about=(About)PluginServices.getExtension(About.class);
64
			FPanelAbout panelAbout=about.getAboutPanel();
65
			java.net.URL aboutURL = this.getClass().getResource(
66
		        "/about.htm");
67
		        panelAbout.addAboutUrl(PluginServices.getText(this,"calculate_expresion"),aboutURL);
68
		}
69
+ Para acabar, habrá que añadir en el fichero config/config.xml de nuestro plugin la extensión que acabamos de crear (en caso de que no existiera): ::
70
	
71
	<extension class-name="com.iver.cit.gvsig.AboutExpresionFieldExtension"
72
			description="Extension to add about panel."
73
			active="true"
74
			priority="1">
75
	</extension>    
76
  
77

  
78

  
79
Nombrado de los binarios
80
--------------------------
81

  
82
El nombre de los ficheros debe tener la siguiente estructura:
83

  
84
gvsig_[NOMBRE-EXT]-[VERSION_GVSIG]-[BUILD_NUMBER_GVSIG]-[BUILD_NUMBER_EXT]-[PLATAFORMA].[zip|exe|bin]
85

  
86
Donde:
87

  
88
* NOMBRE_EXT = Nombre de la extensión.
89

  
90
* VERSION_GVSIG = Número de versión de gvSIG sobre la que funciona el binario.
91

  
92
* BUILD_NUMBER_GVSIG = Número de build de gvSIG sobre el que funciona el binario.
93

  
94
* BUILD_NUMBER_EXT = Número de build propio de la extensión.
95

  
96
* PLATAFORMA = Sistema operativo (linux, windows, mac).
97

  
98
Por ejemplo: 
99

  
100
gvsig_sextante-1_1_0-1015-31-windows-i586.exe
101

  
102

  
103
Generación del instalable
104
-----------------------------
105

  
106
Vamos a describir los pasos que se siguen actualmente para generar una distribución de binarios de una extensíon para gvSIG.
107
Antes de empezar, hay que asegurarse de que en nuestro Workspace disponemos de la carpeta **"install"** y **"binaries"**, ya que estas dos carpetas son imprescindible para generar los binarios, y sin estas no se podría hacer.
108

  
109
Hay que descomprimir el fichero **"install/pluginInstallTemplate/install.zip**" dentro de nuestro proyecto. Este zip también se puede bajar de:
110

  
111
+ Si se está trabajando sobre el branch: `install_branch.zip <https://gvsig.org/svn/gvSIG/branches/v10/install/pluginInstallationTemplate/install.zip?format=raw>`_   
112
+ Si se está trabajando sobre el trunk: `install_trunk.zip <https://gvsig.org/svn/gvSIG/trunk/install/pluginInstallationTemplate/install.zip?format=raw>`_ 
113

  
114
Una vez descomprimido ya tenemos lo necesario (en forma de plantilla) para generar los binarios de cualquier extensión, y solo se deberán hacer algunos pequeños cambios para adaptarla a cada extensión...
115

  
116
Primero tenemos que modificar el fichero build.properties. Este fichero contiene el nombre de algunas variables y de la extensión. Tal y como está comentado en el propio fichero, hay que indicar el directorio de nuestra extensión en **MAIN_INSTALL_PLUGIN**, verificar que los números de versión sean los correctos, indicar el nombre del plugin (extensión) en **APPNAME**, y finalmente indicarle el directorio donde se dejaran caer los binarios en **OUTPUT_DIR**.
117

  
118
El siguiente fichero a modificar será el install.xml. Este fichero sirve de guía para el IzPAck a la hora de generar el instalable. Al principio del fichero se debe de indicar el nombre del plugin en **"<appname> </appname>"**.
119
Luego habrá que situarse en el final del fichero, en la zona de **<pack>**. En esta parte se definen qué ficheros tendrán que añadirse sobre la instalación de gvSIG ya existente. En **"name"** se indica el nombre del paquete tal y como se mostrará a la hora de la selección de paquetes durante la instalación, y en **"descripcion"** se indica la descripción que aparecerá al seleccionar dicha extensión. Posteriormente se definen los ficheros a añadir. Para ello disponemos de dos *tasks*:
120

  
121
**<file>**: copia un fichero o directorio. Tiene tres atributos a especificar:
122

  
123
- **targetdir**: Para especificar el destino de los ficheros que se copiarán.
124
- **src**: Para especificar el fichero/directorio que se copiará.
125
- **override**: Para especificar si se sobreescriben los ficheros a copiar en caso de que existan. Generalmente será **true**.
126

  
127
**<fileset>**: copia un conjunto de fichero o directorios. Tiene los siguientes campos:
128

  
129
- **targetdir**: Para especificar el destino, de igual manera que <file>.
130
- **dir**: El directorio de dónde se copiarán los ficheros.
131
- **includes**: Los ficheros a incluir en la copia. Lo interesante de este campo es que se pueden introducir patrones (como * o ?).
132
- **excludes**: Semejante a includes, sólo que aquí se especifican los ficheros que **no** se desean copiar.
133
- **override**: igual que en <file>.
134

  
135
*Para más información acerca de los tasks, hay un html de ayuda en la carpeta install del workspace: install/IzPack/doc/izpack/html/index.html*
136

  
137
Lo más normal será llevarse todo el directorio de nuestra extensión, y además, según que extensiones, se llevaran otros ficheros (ver ejemplos en el propio *install.xml*).
138

  
139
Ahora tendremos que modificar el **buildExt.xml** para prepara la instalación para **MAC OSX** cuyo proceso es distinto. Básicamente, en el *target* llamado **InstallMac** hay que copiar los fichero que hay que actualizar en la instalación (*igula que en el* **instal.xml** *pero usando los comando del* **ANT**). En el propio fichero hay comentados varios ejemplos. También existe el fichero **resources/configfile** que nos permite adaptar la configuración de la instalación de Mac (añadir un sufijo al nombre de la aplicación o comprobar el MD5 de andami), para mas información sobre este fichero se puede consultar el fichero **install/instalador-gvSIG-mac/HOWTO-UPDATER,EXTS.txt** (**CUIDADO CON LOS EL FORMATO DE LOS RETORNOS DE CARRO**).
140

  
141

  
142
Con esto ya tenemos todos los parámetros necesarios para generar los binarios, y simplemente habrá que lanzar el **buildExt.xml**, que en cuanto finalice, encontraremos los binarios de nuestro plugin en la ruta que indicamos en **OUTPUT_DIR** del fichero build.properties.
143

  
144
Dónde dejar los instalables
145
----------------------------
146

  
147
Los instalables de las versiones previas de gvSIG se dejan en el SVN asociado 
148
al TRAC de bugtracking, *https://gvsig.org/svn/bugtracking*, en *trunk/Versiones*.
149

  
150
En esa carpeta se crea para la extensión, algo como:
151

  
152
  [NOMBRE-EXT]-[MAJOR-VERSION]
153

  
154
Dentro de ésta se crearan dos carpetas, 
155
  
156
 * Documentacion-usuario
157
 * Versiones-previas
158

  
159
Y dentro de versiones previas se dejarán caer los instalables para todas las plataformas
160
soportadas.
161

  
162
En la carpeta de documentación de usuario, se dejarán caer las versiones en PDF de la
163
documentación que va a ser publicada como documentación de usuario junto con la extensión.
164

  
165

  
166
}}}
0 167

  
tags/tmp_build/install/instalador-gvSIG-lin/.cvsignore
1
extensions
2
*.jar
3
*.tar.gz
4
gvSIG_0.6_installer
5
bin
6

  
7
extensiones
0 8

  
tags/tmp_build/install/instalador-gvSIG-lin/build.xml
1
<project name="instalador-gvSIG" default="init" basedir=".">
2
	<!--
3
	<property name="dir_inst" location="C:\Archivos de programa"/>
4
	<property name="base_dir" location="./"/>		
5
	<property name="dir_libs" location="C:\Archivos de programa\IzPack\lib"/>
6
	<property name="vers" location="0.6"/>
7
	<property name="izpack_dir" location="C:\Archivos de programa\IzPack"/>
8
	-->
9
	
10
	<property name="dir_inst" location="/usr/local"/>
11
	<property name="base_dir" location="./"/>		
12
	<property name="izpack_dir" location="../../install/IzPack"/>
13
	<property name="dir_libs" location="${izpack_dir}/lib"/>
14
	<property name="INSTALL_FILE" location="install.xml"/>
15
	
16
	<taskdef name="izpack" classpath="${dir_libs}/compiler.jar" classname="com.izforge.izpack.ant.IzPackTask"/>
17
	
18
	<target name="init">
19
		<izpack input="${INSTALL_FILE}" 
20
				output="${JARNAME}" 
21
				installerType="standard" 
22
				basedir="${base_dir}" 
23
				izPackDir="${izpack_dir}/"/>
24
	</target>
25
	
26
	<target name="clean">
27
		<delete>
28
			<fileset dir=".">
29
			    <include name="**.zip"/>
30
			</fileset>
31
		</delete>
32
		<delete dir="bin" />
33
		<delete dir="extensions" />
34
	</target>
35
	
36
</project>
0 37

  
tags/tmp_build/install/instalador-gvSIG-lin/installer_files/README
1
gvSIG v1.9
2

  
3

  
4

  
5
Application Requirements:
6

  
7
    - System
8

  
9
        · At least: Pentium III / 256 MB RAM.
10

  
11
        · Recommended: Pentium 4 / 512 MB RAM.
12

  
13
        · OSes: platforms Windows and Linux.
14
        Tested in WinXP, Linux Kubuntu 7.10 and Linux Ubuntu 8.04/8.10.
15

  
16

  
17
    - Installed Software (available in http://www.gvsig.gva.es or in http://java.sun.com)
18

  
19
        · Java VM 1.4.2 (06 or above).
20

  
21
        · JAI (Java Advanced Imaging).
22

  
23
        · JAI Image I/O.
24

  
25
Note: The JAI and JAI Image I/O must be installed into the same Java VM that runs gvSIG.
26

  
27

  
28
Further information and support:
29

  
30
    Official web site:
31

  
32
        http://www.gvsig.gva.es
33

  
34
        http://www.gvsig.org
35

  
36
    Mailing lists:
37

  
38
        http://listserv.gva.es/cgi-bin/mailman/listinfo/gvsig_usuarios (users).
39

  
40
        http://listserv.gva.es/cgi-bin/mailman/listinfo/gvsig_desarrolladores (developers).
41

  
42
        http://listserv.gva.es/cgi-bin/mailman/listinfo/gvsig_internacional (non-spanish users and developers).
0 43

  
tags/tmp_build/install/instalador-gvSIG-lin/installer_files/install.sh
1
#!/bin/bash
2
[ -x /usr/bin/dirname ] && cd `/usr/bin/dirname $0`
3
java -jar JARNAME
4

  
0 5

  
tags/tmp_build/install/instalador-gvSIG-lin/installer_files/LLIG-ME
1
gvSIG v1.9
2

  
3

  
4
Requisits de l'aplicació:
5

  
6
    - Sistema
7

  
8
        · Mínims: Pentium III / 256 MB RAM.
9

  
10
        · Recomanables: Pentium 4 / 512 MB RAM.
11

  
12
        · Sistemes operatius: plataformes Windows i Linux.
13
        Provat en WinXP, Linux Kubuntu 7.10 i Linux Ubuntu 8.04/8.10.
14

  
15

  
16
    - Programari instal·lat (disponible en http://www.gvsig.gva.es o en http://java.sun.com)
17

  
18
        · Màquina Virtual Java 1.5.0 (12 o superior).
19

  
20
        · JAI (Java Advanced Imaging).
21

  
22
        · JAI Image I/O.
23

  
24

  
25
Nota: les libreries JAI i JAI Image I/O han d'estar instal·lades sobre la Màquina Virtual Java que gvSIG utilitze en l'execució.
26

  
27

  
28
Més informació í suport:
29

  
30
    Web oficial del projecte:
31

  
32
        http://www.gvsig.gva.es
33

  
34
        http://www.gvsig.org
35

  
36
    Llistes de distribució:
37

  
38
        http://listserv.gva.es/cgi-bin/mailman/listinfo/gvsig_usuarios (suport per a usuaris).
39

  
40
        http://listserv.gva.es/cgi-bin/mailman/listinfo/gvsig_desarrolladores (suport per a desenvolupadors).
41

  
42
        http://listserv.gva.es/cgi-bin/mailman/listinfo/gvsig_internacional (suport per a usuaris o desenvolupadors de parla no-hispana).
43

  
0 44

  
tags/tmp_build/install/instalador-gvSIG-lin/installer_files/LEEME
1
gvSIG v1.9
2

  
3

  
4
Requisitos de la aplicación:
5

  
6
    - Sistema
7

  
8
        · Mínimos: Pentium III / 256 MB RAM.
9

  
10
        · Recomendables: Pentium 4 / 512 MB RAM.
11

  
12
        · Sistemas operativos: plataformas Windows y Linux.
13
        Probado en WinXP, Linux Kubuntu 7.10 y Linux Ubuntu 8.04/8.10.
14

  
15

  
16
    - Software instalado (diponible en http://www.gvsig.gva.es o en http://java.sun.com)
17

  
18
        · Máquina Virtual Java 1.5.0 (12 o superior).
19

  
20
        · JAI (Java Advanced Imaging).
21

  
22
        · JAI Image I/O.
23

  
24

  
25
Nota: Las librerías JAI y JAI Image I/O deben estar instaladas sobre la Máquina Virtual Java que gvSIG utilice en su ejecución.
26

  
27

  
28
Más información y soporte:
29

  
30
    Web oficial del proyecto:
31

  
32
        http://www.gvsig.gva.es
33

  
34
        http://www.gvsig.org
35

  
36
    Listas de distribución:
37

  
38
        http://listserv.gva.es/cgi-bin/mailman/listinfo/gvsig_usuarios (soporte para usuarios).
39

  
40
        http://listserv.gva.es/cgi-bin/mailman/listinfo/gvsig_desarrolladores (soporte para desarrolladores).
41

  
42
        http://listserv.gva.es/cgi-bin/mailman/listinfo/gvsig_internacional (soporte para usuarios o desarrolladores de habla no hispana).
0 43

  
tags/tmp_build/install/instalador-gvSIG-lin/.classpath
1
<?xml version="1.0" encoding="UTF-8"?>
2
<classpath>
3
	<classpathentry kind="src" path=""/>
4
	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
5
	<classpathentry kind="lib" path="/home/nacho/IzPack/lib/ant.jar"/>
6
	<classpathentry kind="lib" path="/home/nacho/IzPack/lib/compiler.jar"/>
7
	<classpathentry kind="lib" path="/home/nacho/IzPack/lib/installer.jar"/>
8
	<classpathentry kind="lib" path="/home/nacho/IzPack/lib/izevent.jar"/>
9
	<classpathentry kind="lib" path="/home/nacho/IzPack/lib/jakarta-regexp-1.3.jar"/>
10
	<classpathentry kind="lib" path="/home/nacho/IzPack/lib/kunststoff.jar"/>
11
	<classpathentry kind="lib" path="/home/nacho/IzPack/lib/looks.jar"/>
12
	<classpathentry kind="lib" path="/home/nacho/IzPack/lib/metouia.jar"/>
13
	<classpathentry kind="lib" path="/home/nacho/IzPack/lib/standalone-compiler.jar"/>
14
	<classpathentry kind="lib" path="/home/nacho/IzPack/lib/uninstaller-ext.jar"/>
15
	<classpathentry kind="lib" path="/home/nacho/IzPack/lib/uninstaller.jar"/>
16
	<classpathentry kind="lib" path="/home/nacho/IzPack/lib/liquidlnf.jar"/>
17
	<classpathentry kind="output" path=""/>
18
</classpath>
0 19

  
tags/tmp_build/install/instalador-gvSIG-lin/.project
1
<?xml version="1.0" encoding="UTF-8"?>
2
<projectDescription>
3
	<name>instalador-gvSIG-lin</name>
4
	<comment></comment>
5
	<projects>
6
	</projects>
7
	<buildSpec>
8
	</buildSpec>
9
	<natures>
10
	</natures>
11
</projectDescription>
0 12

  
tags/tmp_build/install/instalador-gvSIG-lin/Notas_asociaciacion_archivos.txt
1
PARA KDE: dejar un fichero '.desktop' en el directorio $HOME/.kde/share/mimelnk/application
2
como este:
3

  
4
[Desktop Entry]
5
Comment=
6
Hidden=false
7
Icon=/x/apps/gvSIG_0.1_856/bin/ico-gvSIG.png
8
MimeType=application/gvSIG
9
Patterns=*.gvp;*.GVP
10
Type=MimeType
11

  
12

  
13
y apadir a fichero $HOME/.kde/share/config/profilerc algo asi:
14

  
15
[application/gvSIG - 1]
16
AllowAsDefault=true
17
Application=kde-gvSIG.sh-3.desktop
18
GenericServiceType=Application
19
Preference=1
20
ServiceType=application/gvSIG
21

  
22
y el el fichero de menu ($HOME/.kde/share/applnk/.../gvSIG*.desktop)
23
la entrada 'MimeType' debe estar 'IGUAL' que en el fichero que
24
hemos dejado en $HOME/.kde/share/mimelnk/application
25

  
26

  
27

  
28
Para GNOME:
29

  
30
POR Estudiar
31

  
32
Para FIREFOX:
33

  
34
POR Estudiar
35

  
36

  
37

  
38
Los archivos usados para la asociacion estan en ./resources/mime
39
y los scripts que los manejan son ./resources/postinstall.sh y
40
./resources/unistall.sh
41

  
42

  
43

  
44

  
45

  
46

  
47

  
48

  
49

  
50
**************************************************************
51
URL's y recortes:
52

  
53

  
54

  
55

  
56
http://www.ces.clemson.edu/linux/fc4_desktop.shtml
57
*********************************************************************
58
File Association. At the top of the context menu for a file in Nautilus is found the 'Open with "Preferred Application" menu item. Next, is found the 'Open with' menu item, which lists all other applications which can open the file. These menu items are controlled respectively by the following files:
59

  
60
  /usr/share/applications/defaults.list
61
  /usr/share/applications/mimeinfo.cache
62

  
63
Each line in defaults.list contains a desktop file followed by a mimetype. For example, the line
64

  
65
  application/postscript=evince.desktop
66

  
67
shows that Evince is the preferred application for opening postscript files. Each line in mimeinfo.cache contains a desktop file followed by a list of mimetypes. For example, the line
68

  
69
  image/gif=gthumb.desktop;gimp-2.2.desktop;
70
      gnome-eog.desktop;
71

  
72
shows the list of applications available for opening gif files. Gnome constructs the mimeinfo.cache file by processing the mimetypes recorded in the desktop files. Gnome comes with a pre-built system-wide defaults.list. At the user level there are parallel files
73

  
74
  ~/.local/applications/defaults.list
75
  ~/.local/applications/mimeinfo.cache
76

  
77
Users can add lines to these files as follows.
78

  
79
  In a Nautilus window, right click on a file
80
  Select Properties
81
  Select the 'Open With' tab
82
  To add to the current 'Open With' list
83
  Hit Add and select an application
84
  Hit Add again
85
  Select the preferred application radio button
86
   
87
************************
88

  
89
http://standards.freedesktop.org/shared-mime-info-spec/shared-mime-info-spec-latest.html
90
************************
91

  
92
<MIME> = /usr/local/share/mime
93
<MIME> = /usr/share/mime
94

  
95

  
96
Each application that wishes to contribute to the MIME database will install a single XML file, named after the application, into one of the three <MIME>/packages/ directories (depending on where the user requested the application be installed). After installing, uninstalling or modifying this file, the application MUST run the update-mime-database command, which is provided by the freedesktop.org shared database[SharedMIME].
97

  
98
update-mime-database is passed the mime directory containing the packages subdirectory which was modified as its only argument. It scans all the XML files in the packages subdirectory, combines the information in them, and creates a number of output files. 
... This diff was truncated because it exceeds the maximum size that can be displayed.

Also available in: Unified diff