News:

Simutrans.com Portal
Our Simutrans site. You can find everything about Simutrans from here.

[PROYECTO] Instalador/Actualizador de simutrans

Started by Aglezabad, March 30, 2009, 05:43:04 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

vilvoh

¡Suena genial! sería perfecto que se pudiera actualizar el ejecutable a partir de las compilaciones nocturnas. A ver si te podemos hechar una mano con el código para que eso sea posible.

Escala Real...a blog about Simutrans in Spanish...

Aglezabad

Pues cuando tenga el código reconstruido y fusionado, a partir del mismo haré el actualizador. Sólo necesitaré dos servidores y alguien que se encargue de actualizar los nightly builds, XD.

Una curiosidad: ¿Sabes que mi instalador tiene 103 líneas de código y el de Frank tiene unas 443? Ambas cumplen el objetivo principal pero el suyo tiene mensajes en bastantes idiomas y múltiples opciones varias.

vilvoh

Quote from: Aglezabad on June 06, 2009, 09:03:31 PM
[..] Sólo necesitaré dos servidores y alguien que se encargue de actualizar los nightly builds, XD.

Los nightlies se actualizan cada noche, y la denominación de los ficheros sigue un patrón lógico. Los enlaces de descarga contienen al final un indicador (numero entero) que se corresponde con el identificador de la descarga. Echa un vistazo

http://simutrans-germany.com/~nightly/simutrans/Download.php?d=1092

El parametro d tiene como valor el id de la descarga. Y siempre siguen la misma secuencia para numerar: fichero para Linux/gcc 3.3.6, fichero para Linux/gcc 4.1.6 , Windows/GDI, Windows/SDL, Mac Intel y Mac PPC. Es decir que si la primera (Linux/gcc 3.3.6) tiene el id 1099, los enlaces de descarga de las siguiente serán:

http://simutrans-germany.com/~nightly/simutrans/Download.php?d=1100 >> Linux/gcc 4.1.6
http://simutrans-germany.com/~nightly/simutrans/Download.php?d=1101 >> Windows/GDI
http://simutrans-germany.com/~nightly/simutrans/Download.php?d=1102 >> Windows/SDL
http://simutrans-germany.com/~nightly/simutrans/Download.php?d=1103 >> Mac Intel
http://simutrans-germany.com/~nightly/simutrans/Download.php?d=1104 >> Mac PPC


Y así cada día hasta que se agote el rango, y vuelta a empezar. Así que localizando el id más alto, puedes saber donde estarán las descarga correspondientes a los nightlies para Windows.

Para las versiones estables es "más fácil" ya que puedes tirar directamente de los enlaces de SourceForge que son estáticos. Los podrías leer de un archivo de texto, que sería facilmente actualizable.

Quote from: Aglezabad on June 06, 2009, 09:03:31 PM
[..] Ambas cumplen el objetivo principal pero el suyo tiene mensajes en bastantes idiomas [..]
Lo del soporte para otros idiomas no es mala idea, sobre todo considerando casi seguro que no solo los jugadores hispanos lo van a descargar.

Escala Real...a blog about Simutrans in Spanish...

Aglezabad

He estado pensando que, al incorporar a Frank en lo de los instaladores, presente el proyecto en el foro general. A ver si hay más gente que sepa de inno setup o scripting pascal que ayude.

He estado en mis últimos días de clase revisando y comparando mi código y el de Frank, y ya llevo bastante código nuevo escrito, siguiendo una nueva estructura de código. A ver si sale bien, si no, pues tengo mi código actualizado por si acaso.

vilvoh

Me parece una idea excelente. Cuanta más gente se una al proyecto, más oportunidades de que salga adelante.

Escala Real...a blog about Simutrans in Spanish...

Aglezabad

Pues lo prepararé cuando tenga tiempo, tengo un monton de cosas por hacer.

He visto un fallo en la teoría del actualizador, si sólo se pone la dirección de sourceforge, sólo baja un zip. Hay que instalar el juego en un servidor, que cada carpeta tenga una dirección para actualizar cada parte del juego, si no, hay que plantearlo de otra manera.

P.D: Al principio voy a construir un actualizador en base a versión estable, más fácil de hacer.

Aglezabad

He empezado a construir el actualizador y hay unas dudas:
-Debe haber espacio para una copia del juego instalada en servidor externo, con ella se puede descargar los archivos desde el programa.
-Tendré que hacer un selector de lo que quieres actualizar, para tardar menos.

Tengo algunos problemas con el instalador:
Necesito gente que sepa de los idiomas que aparecen en el instalador original. Para que los mensajes aparezcan en el idioma de cada uno.

vilvoh

Yo dejaría el tema del soporte multi-idioma para el final, porque no es lo más dificil del proyecto

Quote from: Aglezabad on June 25, 2009, 10:07:22 AM
-Debe haber espacio para una copia del juego instalada en servidor externo, con ella se puede descargar los archivos desde el programa.

No entiendo bien a que te refieres con esto ¿podrías explicarlo de otra forma?

Quote from: Aglezabad on June 25, 2009, 10:07:22 AM
-Tendré que hacer un selector de lo que quieres actualizar, para tardar menos.

¿Y que posibles elementos estarían incluidos? ¿te refieres por ejemplo a permitir que solo se actualice el pakset o el ejecutable? En el tema del pakset, puede que debas considerar el supuesto en que el usuario tiene objetos extra instalados.

Escala Real...a blog about Simutrans in Spanish...

Aglezabad

Lo que digo es que los archivos del programa (paks, programas, dll), tienen que estar descomprimidos en una carpeta web. El actualizador no `puede descomprimir el archivo zip de sourceforge. Tiene que coger los archivos descomprimidos de internet, así que debe haber una carpeta web con Simutrans instalado. Como en el dico duro. EJ: C:\Archivos de programa\Simutrans
En la carpeta web sería igual:
EJ: #http://sitioweb.net/Simutrans ---> archivos del juego------>actualizador----->Carpeta del disco duro

En cuanto al selector, es así mi intención. Elegir actualizar los pakset o el programa. En lo referente a los addons, el actualizador actualiza los archivos oficiales del pak, no los addons. De momento.

vilvoh

Quote from: Aglezabad on June 26, 2009, 10:14:12 AM
Lo que digo es que los archivos del programa (paks, programas, dll), tienen que estar descomprimidos en una carpeta web. El actualizador no `puede descomprimir el archivo zip de sourceforge. Tiene que coger los archivos descomprimidos de internet, así que debe haber una carpeta web con Simutrans instalado.

Uhmm.. algo complicado de conseguir. De todas formas ¿por qué exactamente el instalador no puede descomprimir el zip? ¿es dificil programar esa parte? Te lo digo sobretodo porque no sé si la versión windows se genera desde algún tipo de repositorio en SourceForge o similar. Voy a investigar un poco ese tema.

De todas formas, como último recurso siempre podríamos mantener nosotros esa carpeta aparte disponible desde files.simutrans.com, por ejemplo.

Escala Real...a blog about Simutrans in Spanish...

Aglezabad

El problema de no poder descomprimir el zip  es porque ya se requiere otro programa, que puede ser el rundll.exe sobre zipfdl.dll(carpetas ZIP de Windows), WinRAR o WinZIP, y poner todas las variables puede ser un problema, además quiero que el actualizador sea modular, y actualize determinadas partes del programa y no todas. También yo, en el actualizador no voy a usar solo el inno setup, sino también su plugin ISPCC o como se llame, que permite instalar desde red y permite insertar variables como las que tiene el instalador de Frank.

Si se puede poner en files.simutrans.com, por mí bien.

vilvoh

Como el tema está empezando, podemos optar por la solución de files, y después intentar los de las librerías para descomprimir el zip, más adelante.

Escala Real...a blog about Simutrans in Spanish...

Aglezabad

NOVEDADES: (buenas y malas,  ??? ??? ??? )

-He finalizado de fusionar los códigos de frank y míos. Lo bueno es que será más fácil modificar el código ya que una variable modifica n partes del código. Lo malo es que se han reducido las opciones de instalación (se ha eliminado citylists e idiomas en el selector de componentes, ahora sólo están acceso directo , programa y pak).

-Pronto, en esta o en otras versiones, se implementará la opción de descarga de addons y mapas (para jugar con ellos en el momento).
Para esta tarea, requiero del cargo en el proyecto denominado "loader", su tarea es buscar addons para el pak 64 y el 128 e indicarme la dirección de descarga y una descripción (opcional). Los interesados, por favor, lo indiquen aquí, gracias.

-El desarrollo del actualizador se encuentra muy atascado, tengo unas dudas por ahí y creo que voy a hacer una versión beta con el pak 64, así que intentaré preparar mi espacio web.

Insisto, si alguien más se quiere apuntar a este proyecto, MP.Gracias.

vilvoh

¿Estás manteniendo algún contacto con Frank, para intercambiar ideas y posibles soluciones? Su ayuda te puede venir de perlas.

Escala Real...a blog about Simutrans in Spanish...

Aglezabad

Cual es su nick, porque en el blog has puesto FrankP, pero en el foro pone solo Frank?

vilvoh


Escala Real...a blog about Simutrans in Spanish...

Aglezabad


Frank

artículos de la actual instalación Simutranslator

en, de, es, pl


Otros artículos se pueden añadir en caso necesario

Aglezabad

 ??? ??? No hay nada en el fichero.

Bueno, cambiando de tema:

Tengo problemas para poder poner una sección de descarga de addons desde el instalador. Como los enlaces son archivos zip, lo veo muy complicado de poner.

vilvoh

Cierto, lo descargué y no me había dado cuenta de que ocupaba 0 KB.. ???

En cuanto al otro tema, ¿podrías dar más detalles acerca del problema? ¿por qué exactamente no se pueden enlazar archivos zip?

Escala Real...a blog about Simutrans in Spanish...

Aglezabad

Por la misma historia que el actualizador: no sé cómo hacer que el instalador descomprima los archivos zip. He mandado un privado a Frank preguntándole eso y le he mandado el código entero. Hasta que me responda, nada. A ver si puedo hacer que pueda bajarse mapas...


Aglezabad

@Vilvoh:

Ya hablé con Frank y me dice de usar Winzip selfextractor (programa externo). Pero, winzip es de pago, así que voy a buscar alguno gratuito o intentar implementar el de windows.

@Frank:

Sube el archivo a mediafire, funciona muy bien.

Frank

Quote from: Aglezabad on August 14, 2009, 08:24:37 PM
...
@Frank:

Sube el archivo a mediafire, funciona muy bien.

I reupload el archivo en el Servicio de Correos

Tengo 2 y servidor

Aglezabad

#94
Pues tengo problemas con la descarga de archivos (en el instalador), me dice el instalador cuando está compilado que no encuentra el archivo a descargar, pero si lo tiene que descargar!!!!! ??? ???

EDITO: Ya arreglé el error: Si no existe el destino completo, no descarga el archivo, es decir:

Si {app}\tmp\test.zip no existe ---> ERROR (no se baja el archivo)
En cambio si existe {app}\tmp\test.zip (0kb)----> OK (baja test.zip (6kb))

Conclusión, antes de que empiece la instalación del juego, hay que crear un sistema de rutas para marcar los destinos, es decir, crear las carpetas y los archivos marca (de 0 kb) para que el instalador baje los addons.

Así también se corrige el error de updater para actualizar (al tener instalado simutrans, ya existe las marcas para actualizar), pero, para llevar esto adelante, necesito espacio en files.simutrans.com para poner los archivos.

También hablando de updater, se puede encontar la manera de mantener seguro el repositorio: se cambia la extensión de todos los archivos por la extensión .sim,.trm,.ins o .upd a elegir, de esta manera:

Updater:
Descargar: simutrans.upd----------> Renombrar simutrans.upd->simutrans.exe en {app} (directorio del programa)

P.D: Necesito espacio en files.simutrans.com porque el servidor de prueba nreloaded.iespana.es no concede permisos públicos. Vamos, que no baja los archivos debido a un error 403 en el servidor.

vilvoh

Te voy a mandar un privado con los datos de acceso al servidor files.simutrans.com, concretamente a la carpeta que contiene los instaladores, para que puedas subir lo que necesites.

Escala Real...a blog about Simutrans in Spanish...

Aglezabad

Gracias por ello.




Hoy ya estoy en la subida al servidor. La copia es la versión 102 para realizar las pruebas. Al final, para acelerar la incorporación de las nuevas versiones, no voy a renombrar los archivos,sólo he cambiado la estructura, idéntica a la estructura source del instalador.

EDITO: Repositorio completado. Simutrans GDI/SDL Win32 102

EDITO II: (en menos de 24 horas del anterior,@vilvoh: no sé si esto se puede hacer): He corregido un error del actualizador, para acceder a los archivos tenía que poner una carpeta que no había puesto, ahora ya solo es enlazar todos lo archivos con el repositorio y ya termino la RC de updater.

Silver

Quote from: Aglezabad on August 14, 2009, 08:24:37 PM
usar Winzip selfextractor (programa externo). Pero, winzip es de pago, así que voy a buscar alguno gratuito o intentar implementar el de windows.

Prueba con el IZArc, descomprime todas estas extensiones 7-ZIP, A, ACE, ARC, ARJ, B64, BH,  BIN, BZ2, BZA, C2D, CAB, CDI, CPIO, DEB, ENC, GCA, GZ, GZA, HA, IMG, ISO, JAR, LHA, LIB, LZH, MDF, MBF,  MIM, NRG, PAK, PDI, PK3, RAR, RPM, TAR, TAZ, TBZ, TGZ, TZ, UUE, WAR, XXE, YZ1, Z, ZIP, ZOO y hasta donde yo se es gratuito, checalo en su pagina: Aquí

Aglezabad

@Silver:
Yo tengo el 7zip y va genial, además, inno setup creo que tiene extractor zip propio (lo ví en la web del desarrollador). Lo que yo no sé es cómo usar su extractor incorporado después de descargar los addons. Porque me parece que hacer extraciones por programa externo puede ser muy engorroso, tiene que ser un extractor instalado en todos los windows (pero cada windows es un mundo distinto, unos tienen 7zip, otros Izarc, otros WinRAR...). Un montón de suposiciones. Gracias por la alternativa IZarc.

De momento, la parte de addons del instalador la dejo un poco en espera. Después de subir el repositorio de updater, voy a estar trabajando exclusivamente el actualizador. Creo que pueden ser 2000 líneas de código. Una por cada archivo presente en el repositorio.

@Vilvoh:
Había pensado en actualizar el repositorio a una versión nightly, a modo de prueba, para ver si el actualizador es capaz de actualizar.

@Frank:
Gracias por las traducciones.

Aglezabad

2-9-09
Hola de nuevo, tengo novedades:
-Progreso del actualizador:12% (Binarios,configuraciones y pak 128 escritos como source, sin configurar.)
-Correción de código del instalador: La última versión de Frank escribía una marca de la versión instalada en el sistema. Debido a que hay incompatibilidades con el actualizador, se ha eliminado las ramas que añadía. Por lo que la instalación /actualización ya no toca el sistema excepto para el acceso de desinstalación.(Por cierto, esas ramas se podían prescindir de ellas.
-Instalador: Listo para distribuir (falta la versión de simutrans estable).

@Vilvoh:
El archivo con la lista de archivos del repositorio, se podría hacer con cada nueva versión estable por si se ha añadido/eliminado archivos (como algunos addons son integrados en los pak con cada versión, se tendría que saber para añadir ese enlace o eliminarlo).
Otra cosa, ¿Se podría cambiar el título del tema? Porque ya este tema no es una pregunta, sino un proyecto de desarrollo.  :D

En el actualizador empezaré a ir despacio porque tengo otras obligaciones, así que me parece que el actualizador no sale con el instalador. Pero mejor un programa hecho lento y seguro que rápido y con fallos.  ;D ;D

vilvoh

Quote from: Aglezabad on September 02, 2009, 02:22:14 PM
El archivo con la lista de archivos del repositorio, se podría hacer con cada nueva versión estable por si se ha añadido/eliminado archivos (como algunos addons son integrados en los pak con cada versión, se tendría que saber para añadir ese enlace o eliminarlo).

El fichero se genera mediante un script php que vuelca el listado recursivo de archivos a un fichero. Por tanto basta con ejecutar ese script cada vez que salga una nueva versión del juego, a fin de actualizar el fichero que usará el actualizador o se puede poner una tarea que ejecute el script de forma periódica, pongamos que cada día, y así no haya que estar pendiente de si hay versión estable o no. La ventaja de esta última es que siempre se puede forma la ejecución de forma manual, de manera que si la nueva versión no sale en la fecha correspondiente al inicio del ciclo, se ejecuta manualmente y listo.

Quote from: Aglezabad on September 02, 2009, 02:22:14 PM
Otra cosa, ¿Se podría cambiar el título del tema? Porque ya este tema no es una pregunta, sino un proyecto de desarrollo.  :D

De pregunta pasó a declaración de intenciones, y de ahí proyecto en firme... ;) .. Voy a cambiar el título y a poner la etiqueta.

EDIT: título cambiado.

Escala Real...a blog about Simutrans in Spanish...

Aglezabad

Quote from: vilvoh on September 02, 2009, 02:37:06 PM
se puede poner una tarea que ejecute el script de forma periódica, pongamos que cada día,

Yo refiero que fuera cada semana, si esa tarea consume recursos. Si se va reescribiendo, mejor.
Yo te pido la lista cuando suba la versión siguiente al servidor para hacer comparación entre la antigua y nueva lista, con un programa, y añadir los archivos restantes.

También dije hace unos meses de incorporar un desinstalador para eliminar las partes de simutrans que no queremos o Simutrans completo,o en caso extremo de no volver a jugar nunca, que borre las partidas guardadas. Esto sería mediante opciones, para no meter la pata.  ;D ;D
Hablaré con Frank si él sabe cómo hacerlo.

El desinstalador incorporado sólo desinstala los archivos que instala (los addons quedan intactos).

vilvoh

Quote from: Aglezabad on September 02, 2009, 02:49:09 PM
Yo refiero que fuera cada semana, si esa tarea consume recursos. Si se va reescribiendo, mejor.
Yo te pido la lista cuando suba la versión siguiente al servidor para hacer comparación entre la antigua y nueva lista, con un programa, y añadir los archivos restantes.

La ejecución del script apenas lleva medio segundo o menos, así que no hay problema de consumo de recursos. En cuanto a listar todo o añadir solo los ficheros nuevos a la listas, ambas soluciones son correctas. La segunda es más fina pero requiere más trabajo. En este caso me inclino por poner el automático, y que liste cada vez, todo el contenido del directorio, machacando lo que haya previamente en el fichero.

Quote from: Aglezabad on September 02, 2009, 02:49:09 PM
[..] El desinstalador incorporado sólo desinstala los archivos que instala (los addons quedan intactos).

Si vas a meter todas esas opciones, este proyecto pasará de instalador/actualizador a panel de control de Simutrans.... :D

Escala Real...a blog about Simutrans in Spanish...

Aglezabad

Quote from: vilvoh on September 02, 2009, 03:17:01 PM
Si vas a meter todas esas opciones, este proyecto pasará de instalador/actualizador a panel de control de Simutrans.... :D

;D ;D No sería un panel de control todo junto. El instalador instala simutrans; el actualizador, actualiza; y el desinstalador, desinstala.
Son tres programas independientes, pero juntos también. En el instalador irá incluido el desinstalador y el actualizador.
Madre mía, si hiciéramos un panel de control, ya sería mucho. Pero sería así:

Una ventana simple con dos secciones, perdón, tres:
-Ejecutar paks
   -Pak 64
   -Pak 96
   -Pak 128
   -Pak xyz
-Configuración ----> Si son participantes del foro los desarrolladores de Simuconfig, colaborar con ellos para implementar el programa.
-Desinstalar/Actualizar ----> Aquí, dos botones que enlazan a sus respectivos programas.


Tendría que ser escrito en lenguaje C, el cual no tengo ni idea. Así que esta idea, es ultraimaginaria porque yo no puedo ni empezar. ;D ;D (esto último no lo haga nadie,es simplemente una idea de como sería un panel de control.)

Aglezabad

Hola de nuevo, vengo a añadir una cosa al proyecto.
Ya se puede descargar el último código del instalador desde esta carpeta en mediafire:

Carpeta SDK Simutrans Installer

En el SDK viene incluido el código, los archivos sources, y los programas necesarios para editar el código, añadir funciones y demás.
Aviso que el código está protegido por contraseña, por lo que sólo la gente del foro que quiera participar pueden acceder. Para ello, avisar por MP.

Última versión: Installer 102 0609.2009 (Simutrans 102)