From 91aaf03b7d426a13bdcb6f60a0deaf0be480211b Mon Sep 17 00:00:00 2001 From: ramon Date: Sun, 26 Feb 2012 10:43:47 +0000 Subject: Versión 1.0.3, #499: Integrar versión 1.0.3 en rama principal. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: https://opengnsys.es/svn/trunk@2695 a21b9725-9963-47de-94b9-378ad31fedc9 --- admin/Database/ogAdmBD-1.0-1.0.2a.sql | 2 - admin/Database/ogAdmBD-1.0-1.0.3.sql | 4 + admin/Database/ogAdmBD-1.0.1-1.0.3.sql | 4 + admin/Database/ogAdmBD-1.0.2-1.0.2a.sql | 2 - admin/Database/ogAdmBD-1.0.2-1.0.3.sql | 5 + admin/Database/ogAdmBD-1.0.2a-1.0.3.sql | 4 + admin/Database/ogAdmBD-1.0pre-1.0.2a.sql | 24 - admin/Database/ogAdmBD.sql | 9 +- admin/Interface/CrearImagen | 43 +- admin/Interface/EjecutarScript | 32 +- admin/Interface/RestaurarImagen | 167 +++-- admin/Interface/getConfiguration | 14 +- admin/LICENSE | 674 --------------------- admin/LICENSE.en.txt | 674 +++++++++++++++++++++ admin/Sources/Services/opengnsys.init | 2 +- admin/WebConsole/acceso.php | 27 +- admin/WebConsole/acceso_esp.php | 124 ---- .../asistentes/AsistenteCloneRemotePartition.php | 8 +- .../WebConsole/asistentes/AsistenteDeployImage.php | 9 +- .../asistentes/AsistenteParticionado.php | 1 + .../includes/asistentes/AyudanteFormularios.php | 25 +- .../asistentes/formCloneRemotePartition.php | 14 +- .../includes/asistentes/formDeployImage.php | 16 +- .../asistentes/includes/opcionesacciones.php | 27 +- admin/WebConsole/asistentes/jscripts/asistentes.js | 30 +- admin/WebConsole/asistentes/xajax.server.php | 6 +- admin/WebConsole/barramenu.php | 7 + admin/WebConsole/clases/ArbolVistaXML.php | 2 +- admin/WebConsole/comandos/Apagar.php | 2 + admin/WebConsole/comandos/Arrancar.php | 2 + admin/WebConsole/comandos/Comando.php | 2 + admin/WebConsole/comandos/Configurar.php | 2 + admin/WebConsole/comandos/CrearImagen.php | 2 + admin/WebConsole/comandos/EjecutarScripts.php | 5 +- admin/WebConsole/comandos/IniciarSesion.php | 2 + admin/WebConsole/comandos/InventarioHardware.php | 2 + admin/WebConsole/comandos/InventarioSoftware.php | 2 + admin/WebConsole/comandos/Reiniciar.php | 2 + admin/WebConsole/comandos/RestaurarImagen.php | 20 +- .../comandos/includes/opcionesacciones.php | 27 +- .../comandos/jscripts/comunescomandos.js | 24 +- admin/WebConsole/controlacceso.php | 2 +- admin/WebConsole/controlpostacceso.php | 30 +- admin/WebConsole/estilos.css | 103 +++- admin/WebConsole/frames.php | 7 +- admin/WebConsole/gestores/gestor_pxe.php | 21 +- admin/WebConsole/gestores/gestor_pxe_grub4dos.php | 20 +- .../cat/comandos/comunescomandos_cat.js | 14 + .../cat/comandos/comunescomandos_esp.js | 14 - .../javascripts/cat/comandos/configurar_cat.js | 12 + .../javascripts/cat/comandos/configurar_esp.js | 12 - .../javascripts/cat/comandos/crearimagen_cat.js | 8 + .../javascripts/cat/comandos/crearimagen_esp.js | 8 - .../cat/comandos/crearperfilsoftware_cat.js | 8 + .../cat/comandos/crearperfilsoftware_esp.js | 8 - .../cat/comandos/crearsoftincremental_cat.js | 8 + .../cat/comandos/crearsoftincremental_esp.js | 8 - .../cat/comandos/ejecutarscripts_cat.js | 8 + .../cat/comandos/ejecutarscripts_esp.js | 8 - .../javascripts/cat/comandos/iniciarsesion_cat.js | 8 + .../javascripts/cat/comandos/iniciarsesion_esp.js | 8 - .../cat/comandos/inventariosoftware_cat.js | 8 + .../cat/comandos/inventariosoftware_esp.js | 8 - .../cat/comandos/particionaryformatear_cat.js | 15 + .../cat/comandos/particionaryformatear_esp.js | 15 - .../cat/comandos/restaurarimagen_cat.js | 13 + .../cat/comandos/restaurarimagen_esp.js | 13 - .../javascripts/eng/administradores_centros_eng.js | 8 +- .../eng/administradores_usuarios_eng.js | 8 +- .../idiomas/javascripts/eng/aulas_eng.js | 17 +- .../eng/comandos/comunescomandos_eng.js | 18 +- .../javascripts/eng/comandos/crearimagen_eng.js | 8 + .../javascripts/eng/comandos/iniciarsesion_eng.js | 8 + .../eng/comandos/inventariosoftware_eng.js | 8 + .../eng/comandos/restaurarimagen_eng.js | 5 +- .../idiomas/javascripts/eng/consolaremota_eng.js | 8 +- .../esp/comandos/comunescomandos_esp.js | 9 + admin/WebConsole/idiomas/php/cat/acceso_cat.php | 34 ++ admin/WebConsole/idiomas/php/cat/aulas_cat.php | 30 +- admin/WebConsole/idiomas/php/cat/barramenu_cat.php | 15 +- admin/WebConsole/idiomas/php/cat/buscar_cat.php | 19 + .../idiomas/php/cat/comandos/mensajes_cat.php | 22 + .../php/cat/comandos/opcionesacciones_cat.php | 21 + admin/WebConsole/idiomas/php/cat/hardwares_cat.php | 10 +- .../php/cat/informacion_repositorio_cat.php | 3 +- .../php/cat/propiedades_ordenadores_cat.php | 6 +- .../idiomas/php/cat/propiedades_tareas_cat.php | 12 +- admin/WebConsole/idiomas/php/eng/acceso_eng.php | 34 ++ admin/WebConsole/idiomas/php/eng/acciones_eng.php | 21 +- .../idiomas/php/eng/administracion_eng.php | 16 +- .../php/eng/administradores_centros_eng.php | 14 +- .../php/eng/administradores_usuarios_eng.php | 16 +- admin/WebConsole/idiomas/php/eng/aulas_eng.php | 30 +- admin/WebConsole/idiomas/php/eng/barramenu_eng.php | 7 +- admin/WebConsole/idiomas/php/eng/buscar_eng.php | 19 + .../idiomas/php/eng/colasacciones_eng.php | 30 +- .../idiomas/php/eng/comandos/crearimagen_eng.php | 24 + .../php/eng/comandos/ejecutarscripts_eng.php | 39 +- .../idiomas/php/eng/comandos/iniciarsesion_eng.php | 19 + .../idiomas/php/eng/comandos/mensajes_eng.php | 22 + .../php/eng/comandos/opcionesacciones_eng.php | 21 + .../php/eng/comandos/restaurarimagen_eng.php | 38 +- .../idiomas/php/eng/configuraciones_eng.php | 50 +- .../idiomas/php/eng/consolaremota_eng.php | 36 +- .../idiomas/php/eng/ejecutaracciones_eng.php | 29 +- admin/WebConsole/idiomas/php/eng/hardwares_eng.php | 21 +- admin/WebConsole/idiomas/php/eng/imagenes_eng.php | 6 +- .../idiomas/php/eng/informacion_imagenes_eng.php | 9 +- .../idiomas/php/eng/informacion_menus_eng.php | 13 +- .../php/eng/informacion_repositorio_eng.php | 19 +- .../idiomas/php/eng/propiedades_aulas_eng.php | 15 +- .../idiomas/php/eng/propiedades_entornos_eng.php | 16 +- .../idiomas/php/eng/propiedades_imagenes_eng.php | 9 +- .../idiomas/php/eng/propiedades_menus_eng.php | 10 +- .../php/eng/propiedades_ordenadores_eng.php | 10 +- .../php/eng/propiedades_repositorios_eng.php | 26 +- .../idiomas/php/eng/propiedades_tareas_eng.php | 13 +- .../idiomas/php/eng/propiedades_usuarios_eng.php | 8 +- .../idiomas/php/eng/repositorios_eng.php | 30 +- .../idiomas/php/eng/tiposhardwares_eng.php | 24 + admin/WebConsole/idiomas/php/esp/acceso_esp.php | 34 ++ admin/WebConsole/idiomas/php/esp/aulas_esp.php | 12 + admin/WebConsole/idiomas/php/esp/barramenu_esp.php | 4 +- admin/WebConsole/idiomas/php/esp/buscar_esp.php | 19 + .../idiomas/php/esp/colasacciones_esp.php | 8 +- .../php/esp/comandos/ejecutarscripts_esp.php | 35 +- .../idiomas/php/esp/comandos/mensajes_esp.php | 22 + .../php/esp/comandos/opcionesacciones_esp.php | 21 + admin/WebConsole/idiomas/php/esp/hardwares_esp.php | 10 +- .../php/esp/informacion_repositorio_esp.php | 3 +- .../php/esp/propiedades_ordenadores_esp.php | 4 +- admin/WebConsole/images/login.jpg | Bin 0 -> 40168 bytes admin/WebConsole/index.php | 144 +++++ admin/WebConsole/principal/aula.php | 35 +- admin/WebConsole/principal/aulas.php | 87 +-- admin/WebConsole/principal/boot_grub4dos.php | 10 +- admin/WebConsole/principal/boot_pxelinux.php | 6 +- admin/WebConsole/principal/colasacciones.php | 3 +- admin/WebConsole/principal/hardwares.php | 13 +- admin/WebConsole/principal/ubicarordenadores.php | 10 +- admin/WebConsole/principal/verlog.php | 2 +- .../propiedades/propiedades_ordenadores.php | 20 +- admin/WebConsole/varios/buscar.php | 199 ++++++ client/boot-tools/INSTALL.es.txt | 6 +- client/boot-tools/boottoolsfunctions.lib | 5 +- client/boot-tools/boottoolsgenerator.sh | 76 +-- .../includes/etc/apt/sources.list.ubuntu | 4 +- .../includes/etc/initramfs-tools/hooks/oghooks | 3 + .../etc/initramfs-tools/scripts/ogfunctions | 13 +- .../includes/etc/initramfs-tools/scripts/oginit | 2 +- .../usr/bin/boot-tools/boottoolsSoftwareCompile.sh | 13 +- .../usr/bin/boot-tools/boottoolsSoftwareInstall.sh | 29 +- .../usr/bin/boot-tools/listpackages/sw.Xwindow | 3 +- .../usr/bin/boot-tools/listpackages/sw.basic | 3 +- .../usr/bin/boot-tools/listpackages/sw.testing | 72 ++- .../busybox-static_1.17.1-10ubuntu1_i386.deb | Bin 0 -> 747212 bytes .../archivesOG/busybox_1.17.1-10ubuntu1_i386.deb | Bin 0 -> 290464 bytes .../cache/apt/archivesOG/partclone_0.2.38_i386.deb | Bin 0 -> 6319500 bytes client/engine/Boot.lib | 3 +- client/engine/Cache.lib | 8 +- client/engine/Disk.lib | 61 +- client/engine/FileSystem.lib | 68 +-- client/engine/Inventory.lib | 3 +- client/engine/PostConfEAC.lib | 86 ++- client/shared/etc/engine.cfg | 22 + client/shared/etc/init/default.sh | 39 +- client/shared/etc/lang.ca_ES.UTF-8.conf | 1 + client/shared/etc/lang.ca_ES.conf | 199 ++++++ client/shared/etc/lang.en_GB.UTF-8.conf | 1 + client/shared/etc/lang.en_GB.conf | 200 ++++++ client/shared/etc/lang.en_UK.conf | 161 ----- client/shared/etc/lang.es_ES.conf | 39 ++ client/shared/etc/preinit/default.sh | 3 +- client/shared/etc/preinit/fileslinks.sh | 4 +- client/shared/etc/preinit/loadenviron.sh | 52 +- client/shared/etc/preinit/loadmodules.sh | 9 +- client/shared/etc/preinit/mountrepo.sh | 6 +- client/shared/etc/preinit/otherservices.sh | 35 ++ client/shared/lib/httpd/httpd-log.sh | 3 +- client/shared/lib/httpd/httpd-runengine.sh | 9 + client/shared/scripts/cloneRemoteFromMaster | 59 +- client/shared/scripts/configureOs | 7 +- client/shared/scripts/createImage | 78 ++- client/shared/scripts/deployImage | 49 +- client/shared/scripts/updateBootCache | 14 +- client/shared/scripts/updateCache | 79 ++- doc/CHANGELOG.es.txt | 38 ++ doc/INSTALL.en.txt | 100 +++ doc/INSTALL.es.txt | 23 +- doc/README.en.txt | 67 ++ doc/VERSION.txt | 2 +- installer/INSTALL.en.txt | 45 ++ installer/INSTALL.es.txt | 47 +- installer/opengnsys_installer.sh | 212 +++++-- installer/opengnsys_update.sh | 18 +- repoman/bin/sendFileMcast | 5 +- server/LICENSE | 674 --------------------- server/LICENSE.en.txt | 674 +++++++++++++++++++++ server/bin/setserveraddr | 75 +++ server/etc/apache.conf.tmpl | 9 + server/etc/smb-og.conf.tmpl | 2 +- 201 files changed, 4873 insertions(+), 2746 deletions(-) delete mode 100644 admin/Database/ogAdmBD-1.0-1.0.2a.sql create mode 100644 admin/Database/ogAdmBD-1.0-1.0.3.sql create mode 100644 admin/Database/ogAdmBD-1.0.1-1.0.3.sql delete mode 100644 admin/Database/ogAdmBD-1.0.2-1.0.2a.sql create mode 100644 admin/Database/ogAdmBD-1.0.2-1.0.3.sql create mode 100644 admin/Database/ogAdmBD-1.0.2a-1.0.3.sql delete mode 100644 admin/Database/ogAdmBD-1.0pre-1.0.2a.sql delete mode 100644 admin/LICENSE create mode 100644 admin/LICENSE.en.txt mode change 100644 => 120000 admin/WebConsole/acceso.php delete mode 100644 admin/WebConsole/acceso_esp.php create mode 100644 admin/WebConsole/idiomas/javascripts/cat/comandos/comunescomandos_cat.js delete mode 100644 admin/WebConsole/idiomas/javascripts/cat/comandos/comunescomandos_esp.js create mode 100644 admin/WebConsole/idiomas/javascripts/cat/comandos/configurar_cat.js delete mode 100644 admin/WebConsole/idiomas/javascripts/cat/comandos/configurar_esp.js create mode 100644 admin/WebConsole/idiomas/javascripts/cat/comandos/crearimagen_cat.js delete mode 100644 admin/WebConsole/idiomas/javascripts/cat/comandos/crearimagen_esp.js create mode 100644 admin/WebConsole/idiomas/javascripts/cat/comandos/crearperfilsoftware_cat.js delete mode 100644 admin/WebConsole/idiomas/javascripts/cat/comandos/crearperfilsoftware_esp.js create mode 100644 admin/WebConsole/idiomas/javascripts/cat/comandos/crearsoftincremental_cat.js delete mode 100644 admin/WebConsole/idiomas/javascripts/cat/comandos/crearsoftincremental_esp.js create mode 100644 admin/WebConsole/idiomas/javascripts/cat/comandos/ejecutarscripts_cat.js delete mode 100644 admin/WebConsole/idiomas/javascripts/cat/comandos/ejecutarscripts_esp.js create mode 100644 admin/WebConsole/idiomas/javascripts/cat/comandos/iniciarsesion_cat.js delete mode 100644 admin/WebConsole/idiomas/javascripts/cat/comandos/iniciarsesion_esp.js create mode 100644 admin/WebConsole/idiomas/javascripts/cat/comandos/inventariosoftware_cat.js delete mode 100644 admin/WebConsole/idiomas/javascripts/cat/comandos/inventariosoftware_esp.js create mode 100644 admin/WebConsole/idiomas/javascripts/cat/comandos/particionaryformatear_cat.js delete mode 100644 admin/WebConsole/idiomas/javascripts/cat/comandos/particionaryformatear_esp.js create mode 100644 admin/WebConsole/idiomas/javascripts/cat/comandos/restaurarimagen_cat.js delete mode 100644 admin/WebConsole/idiomas/javascripts/cat/comandos/restaurarimagen_esp.js create mode 100644 admin/WebConsole/idiomas/javascripts/eng/comandos/crearimagen_eng.js create mode 100644 admin/WebConsole/idiomas/javascripts/eng/comandos/iniciarsesion_eng.js create mode 100644 admin/WebConsole/idiomas/javascripts/eng/comandos/inventariosoftware_eng.js create mode 100644 admin/WebConsole/idiomas/php/cat/acceso_cat.php create mode 100644 admin/WebConsole/idiomas/php/cat/buscar_cat.php create mode 100644 admin/WebConsole/idiomas/php/cat/comandos/mensajes_cat.php create mode 100644 admin/WebConsole/idiomas/php/cat/comandos/opcionesacciones_cat.php create mode 100644 admin/WebConsole/idiomas/php/eng/acceso_eng.php create mode 100644 admin/WebConsole/idiomas/php/eng/buscar_eng.php create mode 100644 admin/WebConsole/idiomas/php/eng/comandos/crearimagen_eng.php create mode 100644 admin/WebConsole/idiomas/php/eng/comandos/iniciarsesion_eng.php create mode 100644 admin/WebConsole/idiomas/php/eng/comandos/mensajes_eng.php create mode 100644 admin/WebConsole/idiomas/php/eng/comandos/opcionesacciones_eng.php create mode 100644 admin/WebConsole/idiomas/php/eng/tiposhardwares_eng.php create mode 100644 admin/WebConsole/idiomas/php/esp/acceso_esp.php create mode 100644 admin/WebConsole/idiomas/php/esp/buscar_esp.php create mode 100644 admin/WebConsole/idiomas/php/esp/comandos/mensajes_esp.php create mode 100644 admin/WebConsole/idiomas/php/esp/comandos/opcionesacciones_esp.php create mode 100644 admin/WebConsole/images/login.jpg create mode 100644 admin/WebConsole/index.php create mode 100644 admin/WebConsole/varios/buscar.php create mode 100644 client/boot-tools/includes/var/cache/apt/archivesOG/busybox-static_1.17.1-10ubuntu1_i386.deb create mode 100644 client/boot-tools/includes/var/cache/apt/archivesOG/busybox_1.17.1-10ubuntu1_i386.deb create mode 100644 client/boot-tools/includes/var/cache/apt/archivesOG/partclone_0.2.38_i386.deb create mode 100644 client/shared/etc/engine.cfg create mode 120000 client/shared/etc/lang.ca_ES.UTF-8.conf create mode 100644 client/shared/etc/lang.ca_ES.conf create mode 120000 client/shared/etc/lang.en_GB.UTF-8.conf create mode 100644 client/shared/etc/lang.en_GB.conf delete mode 100644 client/shared/etc/lang.en_UK.conf create mode 100755 client/shared/etc/preinit/otherservices.sh create mode 100755 client/shared/lib/httpd/httpd-runengine.sh create mode 100644 doc/INSTALL.en.txt create mode 100644 doc/README.en.txt create mode 100644 installer/INSTALL.en.txt delete mode 100644 server/LICENSE create mode 100644 server/LICENSE.en.txt create mode 100755 server/bin/setserveraddr create mode 100644 server/etc/apache.conf.tmpl diff --git a/admin/Database/ogAdmBD-1.0-1.0.2a.sql b/admin/Database/ogAdmBD-1.0-1.0.2a.sql deleted file mode 100644 index 30798763..00000000 --- a/admin/Database/ogAdmBD-1.0-1.0.2a.sql +++ /dev/null @@ -1,2 +0,0 @@ -UPDATE `ogAdmBD`.`parametros` SET `tipopa` = '4', -`visual` = '1' WHERE `parametros`.`idparametro` =30; \ No newline at end of file diff --git a/admin/Database/ogAdmBD-1.0-1.0.3.sql b/admin/Database/ogAdmBD-1.0-1.0.3.sql new file mode 100644 index 00000000..9748b229 --- /dev/null +++ b/admin/Database/ogAdmBD-1.0-1.0.3.sql @@ -0,0 +1,4 @@ +UPDATE ogAdmBD.parametros SET tipopa = '1', visual = '1' WHERE idparametro = 30; +UPDATE ogAdmBD.idiomas SET descripcion = 'English' WHERE ididioma = 2; +UPDATE ogAdmBD.idiomas SET descripcion = 'Català' WHERE ididioma = 3; + diff --git a/admin/Database/ogAdmBD-1.0.1-1.0.3.sql b/admin/Database/ogAdmBD-1.0.1-1.0.3.sql new file mode 100644 index 00000000..9748b229 --- /dev/null +++ b/admin/Database/ogAdmBD-1.0.1-1.0.3.sql @@ -0,0 +1,4 @@ +UPDATE ogAdmBD.parametros SET tipopa = '1', visual = '1' WHERE idparametro = 30; +UPDATE ogAdmBD.idiomas SET descripcion = 'English' WHERE ididioma = 2; +UPDATE ogAdmBD.idiomas SET descripcion = 'Català' WHERE ididioma = 3; + diff --git a/admin/Database/ogAdmBD-1.0.2-1.0.2a.sql b/admin/Database/ogAdmBD-1.0.2-1.0.2a.sql deleted file mode 100644 index 14009064..00000000 --- a/admin/Database/ogAdmBD-1.0.2-1.0.2a.sql +++ /dev/null @@ -1,2 +0,0 @@ -UPDATE ogAdmBD.entornos SET ipserveradm = 'SERVERIP' WHERE ipserveradm = '' LIMIT 1; - diff --git a/admin/Database/ogAdmBD-1.0.2-1.0.3.sql b/admin/Database/ogAdmBD-1.0.2-1.0.3.sql new file mode 100644 index 00000000..b0403a6e --- /dev/null +++ b/admin/Database/ogAdmBD-1.0.2-1.0.3.sql @@ -0,0 +1,5 @@ +UPDATE ogAdmBD.entornos SET ipserveradm = 'SERVERIP' WHERE ipserveradm = '' LIMIT 1; +UPDATE ogAdmBD.parametros SET tipopa = '1' WHERE idparametro = 30; +UPDATE ogAdmBD.idiomas SET descripcion = 'English' WHERE ididioma = 2; +UPDATE ogAdmBD.idiomas SET descripcion = 'Català' WHERE ididioma = 3; + diff --git a/admin/Database/ogAdmBD-1.0.2a-1.0.3.sql b/admin/Database/ogAdmBD-1.0.2a-1.0.3.sql new file mode 100644 index 00000000..0ea740a3 --- /dev/null +++ b/admin/Database/ogAdmBD-1.0.2a-1.0.3.sql @@ -0,0 +1,4 @@ +UPDATE ogAdmBD.parametros SET tipopa = '1' WHERE idparametro = 30; +UPDATE ogAdmBD.idiomas SET descripcion = 'English' WHERE ididioma = 2; +UPDATE ogAdmBD.idiomas SET descripcion = 'Català' WHERE ididioma = 3; + diff --git a/admin/Database/ogAdmBD-1.0pre-1.0.2a.sql b/admin/Database/ogAdmBD-1.0pre-1.0.2a.sql deleted file mode 100644 index 523c1ecf..00000000 --- a/admin/Database/ogAdmBD-1.0pre-1.0.2a.sql +++ /dev/null @@ -1,24 +0,0 @@ -SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO"; - --- --- Base de datos: `ogAdmBD` --- - - -ALTER TABLE `aulas` CHANGE `modp2p` `modp2p` ENUM( 'seeder', 'peer', 'leecher' ) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT 'peer'; - -ALTER TABLE `aulas` CHANGE `velmul` `velmul` SMALLINT( 6 ) NOT NULL DEFAULT '70'; - - -ALTER TABLE `asistentes` DROP PRIMARY KEY , -ADD PRIMARY KEY ( `idcomando` , `descripcion` ) ; - -UPDATE `ogAdmBD`.`comandos` SET `activo` = '0' WHERE `comandos`.`idcomando` =10; - -UPDATE `ogAdmBD`.`asistentes` SET `idcomando` = '8' ; - - -UPDATE `ogAdmBD`.`itemboot` SET `append` = 'APPEND initrd=ogclient/oginitrd.img ro boot=oginit vga=788 irqpoll acpi=on og2nd=sqfs ogprotocol=smb ogactiveadmin=true ogdebug=true' WHERE `itemboot`.`label` = 'ogClientAdmin'; - -UPDATE `ogAdmBD`.`parametros` SET `tipopa` = '4', `visual` = '1' WHERE `parametros`.`idparametro` = 30; - diff --git a/admin/Database/ogAdmBD.sql b/admin/Database/ogAdmBD.sql index e4639471..3491688b 100644 --- a/admin/Database/ogAdmBD.sql +++ b/admin/Database/ogAdmBD.sql @@ -75,6 +75,9 @@ CREATE TABLE IF NOT EXISTS `administradores_centros` ( PRIMARY KEY (`idadministradorcentro`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; +INSERT INTO `administradores_centros` (`idadministradorcentro`, `idusuario`, `idcentro`) VALUES +(1, 1, 1); + -- -------------------------------------------------------- -- @@ -388,8 +391,8 @@ CREATE TABLE IF NOT EXISTS `idiomas` ( INSERT INTO `idiomas` (`ididioma`, `descripcion`, `nemonico`) VALUES (1, 'Español', 'esp'), -(2, 'Ingles', 'eng'), -(3, 'Catalan', 'cat'); +(2, 'English', 'eng'), +(3, 'Català', 'cat'); -- -------------------------------------------------------- @@ -547,7 +550,7 @@ INSERT INTO `parametros` (`idparametro`, `nemonico`, `descripcion`, `nomidentifi (26, 'sft', 'Nombre del archivo de inventario software enviado por la red', '', '', '', 0, 0), (27, 'tpc', 'Tipo de cliente', '', '', '', 0, 0), (28, 'scp', 'Código script', '', '', '', 4, 1), -(30, 'ptc', 'Protocolo de clonación', ';', '', ';Unicast;Multicast;Torrent', 3, 1); +(30, 'ptc', 'Protocolo de clonación', ';', '', ';Unicast;Multicast;Torrent', 1, 1); -- -------------------------------------------------------- diff --git a/admin/Interface/CrearImagen b/admin/Interface/CrearImagen index 1d59da29..89391ed3 100755 --- a/admin/Interface/CrearImagen +++ b/admin/Interface/CrearImagen @@ -28,23 +28,20 @@ #Códigos de error de la funcion ogCreateImage -TIME1=$SECONDS - -#TODO: revisar las variables. -OGLOGSESSION="${OGLOGSESSION=:-/tmp/session.log}" -OGLOGCOMMAND="${OGLOGCOMMAND=:-/tmp/command.log}" -OGLOGSESSION="/tmp/session.log" -OGLOGCOMMAND="/tmp/command.log" -echo " " > $OGLOGSESSION -echo " " > $OGLOGCOMMAND -echo " " > ${OGLOGCOMMAND}.tmp +TIME1=$SECONDS -# Registro de ejecución -echo $* >> $OGLOGFILE +#Load engine configurator from engine.cfg file. +#Carga el configurador del engine desde el fichero engine.cfg +[ -z $OGENGINECONFIGURATE ] && source /opt/opengnsys/etc/engine.cfg -echo "$*" &>> $OGLOGSESSION | $(tail -n 1 $OGLOGSESSION >> $OGLOGFILE) +# Clear temporary file used as log track by httpdlog +# Limpia los ficheros temporales usados como log de seguimiento para httpdlog +echo " " > $OGLOGSESSION; echo " " > $OGLOGCOMMAND; echo " " > ${OGLOGCOMMAND}.tmp +# Registro de inicio de ejecución +#echo "[START Interface ] Run this command: $0 $*" | tee -a $OGLOGSESSION $OGLOGFILE +echo "$MSG_INTERFACE_START $0 $*" | tee -a $OGLOGSESSION $OGLOGFILE # Solo ejecutable por OpenGnSys Client. PATH=$PATH:$(dirname $0) @@ -80,7 +77,7 @@ fi if [ -f createImage$ogengine ]; then - createImage$ogengine "$1" "$2" "$REPO" /"$3" &>> $OGLOGFILE + createImage$ogengine "$1" "$2" "$REPO" /"$3" &>> $OGLOGCOMMAND else createImage "$1" "$2" "$REPO" /"$3" &>> $OGLOGCOMMAND fi @@ -88,13 +85,17 @@ RETVAL=$? [ "$REPO" == "REPO" -a "$boot" != "admin" ] && CambiarAcceso user -if [ $RETVAL == 0 ] -then - rm $OGLOGFILE - touch $OGLOGFILE -else - echo $RETVAL &>> $OGLOGFILE -fi +#if [ $RETVAL == 0 ] +#then +#rm $OGLOGFILE +# touch $OGLOGFILE +#else +# echo $RETVAL &>> $OGLOGFILE +#fi + +# Registro de fin de ejecución +#echo "[END Interface] Command finished with this code: $RETVAL" | tee -a $OGLOGSESSION $OGLOGFILE +echo "$MSG_INTERFACE_END $RETVAL" | tee -a $OGLOGSESSION $OGLOGFILE exit $RETVAL diff --git a/admin/Interface/EjecutarScript b/admin/Interface/EjecutarScript index 431164b9..1295885c 100755 --- a/admin/Interface/EjecutarScript +++ b/admin/Interface/EjecutarScript @@ -1,27 +1,30 @@ #!/bin/bash TIME1=$SECONDS -OGLOGSESSION="${OGLOGSESSION=:-/tmp/session.log}" -OGLOGCOMMAND="${OGLOGCOMMAND=:-/tmp/command.log}" -OGLOGSESSION="/tmp/session.log" -OGLOGCOMMAND="/tmp/command.log" +#Load engine configurator from engine.cfg file. +#Carga el configurador del engine desde el fichero engine.cfg +[ -z $OGENGINECONFIGURATE ] && source /opt/opengnsys/etc/engine.cfg -echo " " > $OGLOGSESSION -echo " " > $OGLOGCOMMAND -echo " " > ${OGLOGCOMMAND}.tmp +# Clear temporary file used as log track by httpdlog +# Limpia los ficheros temporales usados como log de seguimiento para httpdlog +echo " " > $OGLOGSESSION; echo " " > $OGLOGCOMMAND; echo " " > ${OGLOGCOMMAND}.tmp - -echo "START JOBS ***************************** " | tee -a $OGLOGSESSION $OGLOGFILE +# Registro de inicio de ejecución +#echo "[START Interface ] Run this command: $0 $*" | tee -a $OGLOGSESSION $OGLOGFILE +echo "$MSG_INTERFACE_START $0 $*" | tee -a $OGLOGSESSION $OGLOGFILE echo "Instrucciones a ejecutar: *****************************" >> $OGLOGFILE cat $1 >> $OGLOGFILE + echo "Salida de las instrucciones: *****************************" >> $OGLOGFILE chmod +x $1 $1 &>> $OGLOGCOMMAND RETVAL=$? -echo $RETVAL &>> $OGLOGFILE + + + TIME=$[SECONDS-TIME1] if [ $RETVAL == 0 ] then @@ -29,5 +32,12 @@ then else echo "ERROR no operacion no realizada" | tee -a $OGLOGSESSION $OGLOGFILE fi -echo "END JOBS ***************************** " | tee -a $OGLOGSESSION $OGLOGFILE + + +# Registro de fin de ejecución +#echo "[END Interface] Command finished with this code: $RETVAL" | tee -a $OGLOGSESSION $OGLOGFILE +echo "$MSG_INTERFACE_END $RETVAL" | tee -a $OGLOGSESSION $OGLOGFILE + + + exit $RETVAL \ No newline at end of file diff --git a/admin/Interface/RestaurarImagen b/admin/Interface/RestaurarImagen index 2b20d054..1ee08bee 100755 --- a/admin/Interface/RestaurarImagen +++ b/admin/Interface/RestaurarImagen @@ -30,28 +30,30 @@ #@version 1.0.1 - Separación de los ficheros-log para ser gestionado por el httpd-log #@author Antonio J. Doblas Viso. Universidad de Málaga #@date 2011-05-11 +#@version 1.0.2 - Logica basada en fichero de configuracion engine.cfg +#@author Antonio J. Doblas Viso. Universidad de Málaga +#@date 2012-01-11 +PROTO=$5 +PROTOOPT=$6 TIME1=$SECONDS -OGLOGSESSION="${OGLOGSESSION=:-/tmp/session.log}" -OGLOGCOMMAND="${OGLOGCOMMAND=:-/tmp/command.log}" +#Load engine configurator from engine.cfg file. +#Carga el configurador del engine desde el fichero engine.cfg +[ -z $OGENGINECONFIGURATE ] && source /opt/opengnsys/etc/engine.cfg -OGLOGSESSION="/tmp/session.log" -OGLOGCOMMAND="/tmp/command.log" +# Clear temporary file used as log track by httpdlog +# Limpia los ficheros temporales usados como log de seguimiento para httpdlog +echo " " > $OGLOGSESSION; echo " " > $OGLOGCOMMAND; echo " " > ${OGLOGCOMMAND}.tmp -echo " " > $OGLOGSESSION -echo " " > $OGLOGCOMMAND -echo " " > ${OGLOGCOMMAND}.tmp -# Registro de ejecución -echo $* >> $OGLOGSESSION -echo "$*" &>> $OGLOGSESSION | $(tail -n 1 $OGLOGSESSION >> $OGLOGFILE) +# Registro de inicio de ejecución +#echo "[START Interface ] Run this command: $0 $*" | tee -a $OGLOGSESSION $OGLOGFILE +echo "$MSG_INTERFACE_START $0 $*" | tee -a $OGLOGSESSION $OGLOGFILE -echo "[1] Iniciando $0 $*" | tee -a $OGLOGSESSION $OGLOGFILE # Si el origen(pariticion) esta bloqueada salir. - echo "TODO comprobando si esta bloqueado el $1 $2" | tee -a $OGLOGSESSION $OGLOGFILE #if ogIsLocked $1 $2; then # ogRaiseError $OG_ERR_LOCKED "$MSG_PARTITION, $1 $2" @@ -64,61 +66,132 @@ REPO=${4:-"REPO"} [ "$REPO" == "$(ogGetIpAddress)" ] && REPO="CACHE" [ "$REPO" == "CACHE" ] && REPO="CACHE" +#Informacioin previa de la imagen +IMGSIZE=$(ls -s `ogGetPath $REPO $3.img`| cut -f1 -d" ") +IMGOS=$(ogGetImageInfo `ogGetPath $REPO $3.img`) + +echo "[1] IMG-FILE=$3 SIZE=$IMGSIZE (KB) METADATA=$IMGOS" | tee -a $OGLOGSESSION $OGLOGFILE if [ "$REPO" == "CACHE" ] then - echo "[2] Iniciando un ogRestoreImage CACHE $3 $1 $2" | tee -a $OGLOGSESSION $OGLOGFILE + echo "[2] $MSG_HELP_ogRestoreImage : ogRestoreImage CACHE $3 $1 $2" | tee -a $OGLOGSESSION $OGLOGFILE ogRestoreImage CACHE "$3" "$1" "$2" &>> $OGLOGCOMMAND RETVAL=$? + RESUMERESTOREIMAGE=$(cat $OGLOGCOMMAND | grep "Total Time:") fi if [ "$REPO" == "REPO" ] then - echo "[2] updateCache REPO \"/$3.img\" $5 $6" | tee -a $OGLOGSESSION $OGLOGFILE - TIME2=$SECONDS - updateCache REPO "/$3.img" "$5" "$6" &>> $OGLOGCOMMAND - RETVAL=$? - TIME2=$[SECONDS-TIME2] - echo " [ ] Duracion del subproceso updateCache $[TIME2/60]m $[TIME2%60]s" | tee -a $OGLOGSESSION $OGLOGFILE - case $RETVAL in - 0) - echo "[50] updateCache (correcto)" | tee -a $OGLOGSESSION $OGLOGFILE - echo "[55] Restaurando la imagen desde la cache con comando: ogRestoreImage CACHE $3 $1 $2 UNICAST" | tee -a $OGLOGSESSION $OGLOGFILE - TIME3=$SECONDS - ogRestoreImage CACHE "$3" "$1" "$2" &> $OGLOGCOMMAND - RETVAL=$? - TIME3=$[SECONDS-TIME3] - echo " [ ] Duracion del subproceso ogRestoreImage CACHE $[TIME3/60]m $[TIME3%60]s" | tee -a $OGLOGSESSION $OGLOGFILE + case "$5" in + MULTICAST-DIRECT) + NEXTOPERATION=MULTICAST ;; - 15) - echo "[50] updateCache(no hay CACHE); se realiza ogRestoreImage REPO $3 $1 $2 UNICAST" | tee -a $OGLOGSESSION $OGLOGFILE - echo "[55] Se restaura la imagen directamente desde el REPO: ogRestoreImage REPO $3 $1 $2 UNICAST" | tee -a $OGLOGSESSION $OGLOGFILE - TIME3=$SECONDS - ogRestoreImage REPO "$3" "$1" "$2" &> $OGLOGCOMMAND - RETVAL=$? + UNICAST-DIRECT) + NEXTOPERATION=UNICAST ;; - 16) - echo "[50] updateCache(no hay espacio sufiente en la CACHE), Se realiza ogRestoreImage REPO $3 $1 $2 UNICAST" | tee -a $OGLOGSESSION $OGLOGFILE - TIME3=$SECONDS - ogRestoreImage REPO "$3" "$1" "$2" &> $OGLOGCOMMAND - RETVAL=$? - TIME3=$[SECONDS-TIME3] - echo " [ ] Duracion del subproceso ogRestoreImage REPO $[TIME3/60]m $[TIME3%60]s" | tee -a $OGLOGSESSION $OGLOGFILE + *) + echo "[2] updateCache REPO \"/$3.img\" $5 $6" | tee -a $OGLOGSESSION $OGLOGFILE + TIME2=$SECONDS + updateCache REPO "/$3.img" "$5" "$6" &>> $OGLOGCOMMAND + RETVAL=$? + TIME2=$[SECONDS-TIME2] + echo " [ ] $MSG_SCRIPTS_TIME_PARTIAL updateCache $[TIME2/60]m $[TIME2%60]s" | tee -a $OGLOGSESSION $OGLOGFILE + case $RETVAL in + 0) + echo "[50] updateCache (OK)" | tee -a $OGLOGSESSION $OGLOGFILE + NEXTOPERATION=CACHE + ;; + 15|16) + echo "[50] $MSG_ERR_NOTCACHE ; $MSG_ERR_CACHESIZE " | tee -a $OGLOGSESSION $OGLOGFILE + echo "[50] $MSG_SCRIPTS_CHECK_ENGINE " | tee -a $OGLOGSESSION $OGLOGFILE + case "$RESTOREPROTOCOLNOCACHE" in + MULTICAST|multicast) + [ "$5" == "MULTICAST" ] && NEXTOPERATION=MULTICAST + [ "$5" == "TORRENT" ] && NEXTOPERATION=UNICAST + [ "$5" == "UNICAST" ] && NEXTOPERATION=UNICAST + ;; + UNICAST|unicast) + NEXTOPERATION=UNICAST + ;; + esac + ;; + esac ;; - esac + esac fi -if [ $RETVAL == 0 ] -then - echo "[90] Iniciando la Configuracion del Sistema Restaurado" | tee -a $OGLOGSESSION $OGLOGFILE + +TIME3=$SECONDS + + +case $NEXTOPERATION in + CACHE) + echo "[55] CACHE $MSG_HELP_ogRestoreImage : ogRestoreImage CACHE $3 $1 $2 UNICAST" | tee -a $OGLOGSESSION $OGLOGFILE + ogRestoreImage CACHE "$3" "$1" "$2" &> $OGLOGCOMMAND + RETVAL=$? + RESUMERESTOREIMAGE=$(cat $OGLOGCOMMAND | grep "Total Time:") + ;; + UNICAST) + echo "[55] $5 $MSG_HELP_ogRestoreImage : ogRestoreImage REPO $3 $1 $2 UNICAST" | tee -a $OGLOGSESSION $OGLOGFILE + ogRestoreImage REPO "$3" "$1" "$2" &> $OGLOGCOMMAND + RETVAL=$? + RESUMERESTOREIMAGE=$(cat $OGLOGCOMMAND | grep "Total Time:") + ;; + MULTICAST) + echo "[55] $PROTO $PROTOOPT $MSG_HELP_ogRestoreImage " | tee -a $OGLOGSESSION $OGLOGFILE + OPTPROTOCOLO=$6 + REPOIP=$(ogGetRepoIp) + echo " $MSG_SCRIPTS_MULTICAST_PRECHECK_PORT " | tee -a $OGLOGSESSION + PORT=$(echo $OPTPROTOCOLO | cut -f1 -d":") + let PORTAUX=$PORT+1 + #TODO: ticket 379 + NUMBER=$[ ( $RANDOM % 30 ) + 1 ] + sleep $NUMBER + #FIN TODO + tools=$(ogGetImageProgram REPO $3) + compressor=$(ogGetImageCompressor REPO $3) + echo " $MSG_SCRIPTS_MULTICAST_CHECK_PORT $REPOIP:$PORTAUX $REPOIP:$PORT" | tee -a $OGLOGSESSION + if (nmap -n -sU -p $PORTAUX $REPOIP | grep open) + then + ogMcastReceiverPartition $1 $2 $PORT $tools $compressor &> $OGLOGCOMMAND + else + # TODO ticket 379 Realizar la petición basada en identificador de operacion + echo " $MSG_SCRIPTS_MULTICAST_REQUEST_PORT : hose $REPOIP 2009 --out sh -c echo -ne START_MULTICAST /$3.img $OPTPROTOCOLO" | tee -a $OGLOGSESSION $OGLOGFILE + hose $REPOIP 2009 --out sh -c "echo -ne START_MULTICAST /$3.img $OPTPROTOCOLO" + #echo "espero y llamo a: ogMcastReceiverFile $PORT CACHE $2" + sleep 20 + if (nmap -n -sU -p $PORTAUX $REPOIP | grep open) + then + ogMcastReceiverPartition $1 $2 $PORT $tools $compressor &> $OGLOGCOMMAND + RETVAL=$? + fi + fi + RESUMERESTOREIMAGE=$(cat $OGLOGCOMMAND | grep "Total Time:") + ;; + REPEAT) + $0 $* + ;; +esac + +echo " [ ] $RESUMERESTOREIMAGE " | tee -a $OGLOGSESSION $OGLOGFILE +TIME3=$[SECONDS-TIME3] +echo " [ ] $MSG_SCRIPTS_TIME_PARTIAL : $[TIME3/60]m $[TIME3%60]s" | tee -a $OGLOGSESSION $OGLOGFILE + + +#if [ $RETVAL == 0 ] +#then + echo "[90] $MSG_SCRIPTS_OS_CONFIGURE " | tee -a $OGLOGSESSION $OGLOGFILE configureOs "$1" "$2" -fi +#fi TIME=$[SECONDS-TIME1] -echo "[100] Duracion de la operacion $[TIME/60]m $[TIME%60]s" | tee -a $OGLOGSESSION $OGLOGFILE +echo "[100] $MSG_SCRIPTS_TIME_TOTAL $[TIME/60]m $[TIME%60]s" | tee -a $OGLOGSESSION $OGLOGFILE +# Registro de fin de ejecución +#echo "[END Interface] Command finished with this code: $RETVAL" | tee -a $OGLOGSESSION $OGLOGFILE +echo "$MSG_INTERFACE_END $RETVAL" | tee -a $OGLOGSESSION $OGLOGFILE exit $RETVAL diff --git a/admin/Interface/getConfiguration b/admin/Interface/getConfiguration index 1161e056..e8ef70c2 100755 --- a/admin/Interface/getConfiguration +++ b/admin/Interface/getConfiguration @@ -9,13 +9,12 @@ particiones=$(ogGetPartitionsNumber 1) # Incluir todas las particiones cfg="0::::$(ogGetDiskSize 1);" # e información de disco (partición 0) -for ((par=1;par<=$particiones;par++)); -do +for ((par=1;par<=$particiones;par++)); do + # Código del identificador de tipo de partición + cod=$(ogGetPartitionId 1 $par) # Tipo de partición o sistema de fichero fsi=$(getFsType 1 $par 2>/dev/null) fsi=${fsi:-"EMPTY"} - # Código de la partición - cod=$(ogFsToId $fsi) # Tamaño de la particón tam=$(ogGetPartitionSize 1 $par 2>/dev/null) tam=${tam:-"0"} @@ -31,9 +30,10 @@ done echo $cfg | awk '{ n=split($0,sep,";"); - for(i=1;i - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The GNU General Public License is a free, copyleft license for -software and other kinds of works. - - The licenses for most software and other practical works are designed -to take away your freedom to share and change the works. By contrast, -the GNU General Public License is intended to guarantee your freedom to -share and change all versions of a program--to make sure it remains free -software for all its users. We, the Free Software Foundation, use the -GNU General Public License for most of our software; it applies also to -any other work released this way by its authors. You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -them if you wish), that you receive source code or can get it if you -want it, that you can change the software or use pieces of it in new -free programs, and that you know you can do these things. - - To protect your rights, we need to prevent others from denying you -these rights or asking you to surrender the rights. Therefore, you have -certain responsibilities if you distribute copies of the software, or if -you modify it: responsibilities to respect the freedom of others. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must pass on to the recipients the same -freedoms that you received. You must make sure that they, too, receive -or can get the source code. And you must show them these terms so they -know their rights. - - Developers that use the GNU GPL protect your rights with two steps: -(1) assert copyright on the software, and (2) offer you this License -giving you legal permission to copy, distribute and/or modify it. - - For the developers' and authors' protection, the GPL clearly explains -that there is no warranty for this free software. For both users' and -authors' sake, the GPL requires that modified versions be marked as -changed, so that their problems will not be attributed erroneously to -authors of previous versions. - - Some devices are designed to deny users access to install or run -modified versions of the software inside them, although the manufacturer -can do so. This is fundamentally incompatible with the aim of -protecting users' freedom to change the software. The systematic -pattern of such abuse occurs in the area of products for individuals to -use, which is precisely where it is most unacceptable. Therefore, we -have designed this version of the GPL to prohibit the practice for those -products. If such problems arise substantially in other domains, we -stand ready to extend this provision to those domains in future versions -of the GPL, as needed to protect the freedom of users. - - Finally, every program is threatened constantly by software patents. -States should not allow patents to restrict development and use of -software on general-purpose computers, but in those that do, we wish to -avoid the special danger that patents applied to a free program could -make it effectively proprietary. To prevent this, the GPL assures that -patents cannot be used to render the program non-free. - - The precise terms and conditions for copying, distribution and -modification follow. - - TERMS AND CONDITIONS - - 0. Definitions. - - "This License" refers to version 3 of the GNU General Public License. - - "Copyright" also means copyright-like laws that apply to other kinds of -works, such as semiconductor masks. - - "The Program" refers to any copyrightable work licensed under this -License. Each licensee is addressed as "you". "Licensees" and -"recipients" may be individuals or organizations. - - To "modify" a work means to copy from or adapt all or part of the work -in a fashion requiring copyright permission, other than the making of an -exact copy. The resulting work is called a "modified version" of the -earlier work or a work "based on" the earlier work. - - A "covered work" means either the unmodified Program or a work based -on the Program. - - To "propagate" a work means to do anything with it that, without -permission, would make you directly or secondarily liable for -infringement under applicable copyright law, except executing it on a -computer or modifying a private copy. Propagation includes copying, -distribution (with or without modification), making available to the -public, and in some countries other activities as well. - - To "convey" a work means any kind of propagation that enables other -parties to make or receive copies. Mere interaction with a user through -a computer network, with no transfer of a copy, is not conveying. - - An interactive user interface displays "Appropriate Legal Notices" -to the extent that it includes a convenient and prominently visible -feature that (1) displays an appropriate copyright notice, and (2) -tells the user that there is no warranty for the work (except to the -extent that warranties are provided), that licensees may convey the -work under this License, and how to view a copy of this License. If -the interface presents a list of user commands or options, such as a -menu, a prominent item in the list meets this criterion. - - 1. Source Code. - - The "source code" for a work means the preferred form of the work -for making modifications to it. "Object code" means any non-source -form of a work. - - A "Standard Interface" means an interface that either is an official -standard defined by a recognized standards body, or, in the case of -interfaces specified for a particular programming language, one that -is widely used among developers working in that language. - - The "System Libraries" of an executable work include anything, other -than the work as a whole, that (a) is included in the normal form of -packaging a Major Component, but which is not part of that Major -Component, and (b) serves only to enable use of the work with that -Major Component, or to implement a Standard Interface for which an -implementation is available to the public in source code form. A -"Major Component", in this context, means a major essential component -(kernel, window system, and so on) of the specific operating system -(if any) on which the executable work runs, or a compiler used to -produce the work, or an object code interpreter used to run it. - - The "Corresponding Source" for a work in object code form means all -the source code needed to generate, install, and (for an executable -work) run the object code and to modify the work, including scripts to -control those activities. However, it does not include the work's -System Libraries, or general-purpose tools or generally available free -programs which are used unmodified in performing those activities but -which are not part of the work. For example, Corresponding Source -includes interface definition files associated with source files for -the work, and the source code for shared libraries and dynamically -linked subprograms that the work is specifically designed to require, -such as by intimate data communication or control flow between those -subprograms and other parts of the work. - - The Corresponding Source need not include anything that users -can regenerate automatically from other parts of the Corresponding -Source. - - The Corresponding Source for a work in source code form is that -same work. - - 2. Basic Permissions. - - All rights granted under this License are granted for the term of -copyright on the Program, and are irrevocable provided the stated -conditions are met. This License explicitly affirms your unlimited -permission to run the unmodified Program. The output from running a -covered work is covered by this License only if the output, given its -content, constitutes a covered work. This License acknowledges your -rights of fair use or other equivalent, as provided by copyright law. - - You may make, run and propagate covered works that you do not -convey, without conditions so long as your license otherwise remains -in force. You may convey covered works to others for the sole purpose -of having them make modifications exclusively for you, or provide you -with facilities for running those works, provided that you comply with -the terms of this License in conveying all material for which you do -not control copyright. Those thus making or running the covered works -for you must do so exclusively on your behalf, under your direction -and control, on terms that prohibit them from making any copies of -your copyrighted material outside their relationship with you. - - Conveying under any other circumstances is permitted solely under -the conditions stated below. Sublicensing is not allowed; section 10 -makes it unnecessary. - - 3. Protecting Users' Legal Rights From Anti-Circumvention Law. - - No covered work shall be deemed part of an effective technological -measure under any applicable law fulfilling obligations under article -11 of the WIPO copyright treaty adopted on 20 December 1996, or -similar laws prohibiting or restricting circumvention of such -measures. - - When you convey a covered work, you waive any legal power to forbid -circumvention of technological measures to the extent such circumvention -is effected by exercising rights under this License with respect to -the covered work, and you disclaim any intention to limit operation or -modification of the work as a means of enforcing, against the work's -users, your or third parties' legal rights to forbid circumvention of -technological measures. - - 4. Conveying Verbatim Copies. - - You may convey verbatim copies of the Program's source code as you -receive it, in any medium, provided that you conspicuously and -appropriately publish on each copy an appropriate copyright notice; -keep intact all notices stating that this License and any -non-permissive terms added in accord with section 7 apply to the code; -keep intact all notices of the absence of any warranty; and give all -recipients a copy of this License along with the Program. - - You may charge any price or no price for each copy that you convey, -and you may offer support or warranty protection for a fee. - - 5. Conveying Modified Source Versions. - - You may convey a work based on the Program, or the modifications to -produce it from the Program, in the form of source code under the -terms of section 4, provided that you also meet all of these conditions: - - a) The work must carry prominent notices stating that you modified - it, and giving a relevant date. - - b) The work must carry prominent notices stating that it is - released under this License and any conditions added under section - 7. This requirement modifies the requirement in section 4 to - "keep intact all notices". - - c) You must license the entire work, as a whole, under this - License to anyone who comes into possession of a copy. This - License will therefore apply, along with any applicable section 7 - additional terms, to the whole of the work, and all its parts, - regardless of how they are packaged. This License gives no - permission to license the work in any other way, but it does not - invalidate such permission if you have separately received it. - - d) If the work has interactive user interfaces, each must display - Appropriate Legal Notices; however, if the Program has interactive - interfaces that do not display Appropriate Legal Notices, your - work need not make them do so. - - A compilation of a covered work with other separate and independent -works, which are not by their nature extensions of the covered work, -and which are not combined with it such as to form a larger program, -in or on a volume of a storage or distribution medium, is called an -"aggregate" if the compilation and its resulting copyright are not -used to limit the access or legal rights of the compilation's users -beyond what the individual works permit. Inclusion of a covered work -in an aggregate does not cause this License to apply to the other -parts of the aggregate. - - 6. Conveying Non-Source Forms. - - You may convey a covered work in object code form under the terms -of sections 4 and 5, provided that you also convey the -machine-readable Corresponding Source under the terms of this License, -in one of these ways: - - a) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by the - Corresponding Source fixed on a durable physical medium - customarily used for software interchange. - - b) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by a - written offer, valid for at least three years and valid for as - long as you offer spare parts or customer support for that product - model, to give anyone who possesses the object code either (1) a - copy of the Corresponding Source for all the software in the - product that is covered by this License, on a durable physical - medium customarily used for software interchange, for a price no - more than your reasonable cost of physically performing this - conveying of source, or (2) access to copy the - Corresponding Source from a network server at no charge. - - c) Convey individual copies of the object code with a copy of the - written offer to provide the Corresponding Source. This - alternative is allowed only occasionally and noncommercially, and - only if you received the object code with such an offer, in accord - with subsection 6b. - - d) Convey the object code by offering access from a designated - place (gratis or for a charge), and offer equivalent access to the - Corresponding Source in the same way through the same place at no - further charge. You need not require recipients to copy the - Corresponding Source along with the object code. If the place to - copy the object code is a network server, the Corresponding Source - may be on a different server (operated by you or a third party) - that supports equivalent copying facilities, provided you maintain - clear directions next to the object code saying where to find the - Corresponding Source. Regardless of what server hosts the - Corresponding Source, you remain obligated to ensure that it is - available for as long as needed to satisfy these requirements. - - e) Convey the object code using peer-to-peer transmission, provided - you inform other peers where the object code and Corresponding - Source of the work are being offered to the general public at no - charge under subsection 6d. - - A separable portion of the object code, whose source code is excluded -from the Corresponding Source as a System Library, need not be -included in conveying the object code work. - - A "User Product" is either (1) a "consumer product", which means any -tangible personal property which is normally used for personal, family, -or household purposes, or (2) anything designed or sold for incorporation -into a dwelling. In determining whether a product is a consumer product, -doubtful cases shall be resolved in favor of coverage. For a particular -product received by a particular user, "normally used" refers to a -typical or common use of that class of product, regardless of the status -of the particular user or of the way in which the particular user -actually uses, or expects or is expected to use, the product. A product -is a consumer product regardless of whether the product has substantial -commercial, industrial or non-consumer uses, unless such uses represent -the only significant mode of use of the product. - - "Installation Information" for a User Product means any methods, -procedures, authorization keys, or other information required to install -and execute modified versions of a covered work in that User Product from -a modified version of its Corresponding Source. The information must -suffice to ensure that the continued functioning of the modified object -code is in no case prevented or interfered with solely because -modification has been made. - - If you convey an object code work under this section in, or with, or -specifically for use in, a User Product, and the conveying occurs as -part of a transaction in which the right of possession and use of the -User Product is transferred to the recipient in perpetuity or for a -fixed term (regardless of how the transaction is characterized), the -Corresponding Source conveyed under this section must be accompanied -by the Installation Information. But this requirement does not apply -if neither you nor any third party retains the ability to install -modified object code on the User Product (for example, the work has -been installed in ROM). - - The requirement to provide Installation Information does not include a -requirement to continue to provide support service, warranty, or updates -for a work that has been modified or installed by the recipient, or for -the User Product in which it has been modified or installed. Access to a -network may be denied when the modification itself materially and -adversely affects the operation of the network or violates the rules and -protocols for communication across the network. - - Corresponding Source conveyed, and Installation Information provided, -in accord with this section must be in a format that is publicly -documented (and with an implementation available to the public in -source code form), and must require no special password or key for -unpacking, reading or copying. - - 7. Additional Terms. - - "Additional permissions" are terms that supplement the terms of this -License by making exceptions from one or more of its conditions. -Additional permissions that are applicable to the entire Program shall -be treated as though they were included in this License, to the extent -that they are valid under applicable law. If additional permissions -apply only to part of the Program, that part may be used separately -under those permissions, but the entire Program remains governed by -this License without regard to the additional permissions. - - When you convey a copy of a covered work, you may at your option -remove any additional permissions from that copy, or from any part of -it. (Additional permissions may be written to require their own -removal in certain cases when you modify the work.) You may place -additional permissions on material, added by you to a covered work, -for which you have or can give appropriate copyright permission. - - Notwithstanding any other provision of this License, for material you -add to a covered work, you may (if authorized by the copyright holders of -that material) supplement the terms of this License with terms: - - a) Disclaiming warranty or limiting liability differently from the - terms of sections 15 and 16 of this License; or - - b) Requiring preservation of specified reasonable legal notices or - author attributions in that material or in the Appropriate Legal - Notices displayed by works containing it; or - - c) Prohibiting misrepresentation of the origin of that material, or - requiring that modified versions of such material be marked in - reasonable ways as different from the original version; or - - d) Limiting the use for publicity purposes of names of licensors or - authors of the material; or - - e) Declining to grant rights under trademark law for use of some - trade names, trademarks, or service marks; or - - f) Requiring indemnification of licensors and authors of that - material by anyone who conveys the material (or modified versions of - it) with contractual assumptions of liability to the recipient, for - any liability that these contractual assumptions directly impose on - those licensors and authors. - - All other non-permissive additional terms are considered "further -restrictions" within the meaning of section 10. If the Program as you -received it, or any part of it, contains a notice stating that it is -governed by this License along with a term that is a further -restriction, you may remove that term. If a license document contains -a further restriction but permits relicensing or conveying under this -License, you may add to a covered work material governed by the terms -of that license document, provided that the further restriction does -not survive such relicensing or conveying. - - If you add terms to a covered work in accord with this section, you -must place, in the relevant source files, a statement of the -additional terms that apply to those files, or a notice indicating -where to find the applicable terms. - - Additional terms, permissive or non-permissive, may be stated in the -form of a separately written license, or stated as exceptions; -the above requirements apply either way. - - 8. Termination. - - You may not propagate or modify a covered work except as expressly -provided under this License. Any attempt otherwise to propagate or -modify it is void, and will automatically terminate your rights under -this License (including any patent licenses granted under the third -paragraph of section 11). - - However, if you cease all violation of this License, then your -license from a particular copyright holder is reinstated (a) -provisionally, unless and until the copyright holder explicitly and -finally terminates your license, and (b) permanently, if the copyright -holder fails to notify you of the violation by some reasonable means -prior to 60 days after the cessation. - - Moreover, your license from a particular copyright holder is -reinstated permanently if the copyright holder notifies you of the -violation by some reasonable means, this is the first time you have -received notice of violation of this License (for any work) from that -copyright holder, and you cure the violation prior to 30 days after -your receipt of the notice. - - Termination of your rights under this section does not terminate the -licenses of parties who have received copies or rights from you under -this License. If your rights have been terminated and not permanently -reinstated, you do not qualify to receive new licenses for the same -material under section 10. - - 9. Acceptance Not Required for Having Copies. - - You are not required to accept this License in order to receive or -run a copy of the Program. Ancillary propagation of a covered work -occurring solely as a consequence of using peer-to-peer transmission -to receive a copy likewise does not require acceptance. However, -nothing other than this License grants you permission to propagate or -modify any covered work. These actions infringe copyright if you do -not accept this License. Therefore, by modifying or propagating a -covered work, you indicate your acceptance of this License to do so. - - 10. Automatic Licensing of Downstream Recipients. - - Each time you convey a covered work, the recipient automatically -receives a license from the original licensors, to run, modify and -propagate that work, subject to this License. You are not responsible -for enforcing compliance by third parties with this License. - - An "entity transaction" is a transaction transferring control of an -organization, or substantially all assets of one, or subdividing an -organization, or merging organizations. If propagation of a covered -work results from an entity transaction, each party to that -transaction who receives a copy of the work also receives whatever -licenses to the work the party's predecessor in interest had or could -give under the previous paragraph, plus a right to possession of the -Corresponding Source of the work from the predecessor in interest, if -the predecessor has it or can get it with reasonable efforts. - - You may not impose any further restrictions on the exercise of the -rights granted or affirmed under this License. For example, you may -not impose a license fee, royalty, or other charge for exercise of -rights granted under this License, and you may not initiate litigation -(including a cross-claim or counterclaim in a lawsuit) alleging that -any patent claim is infringed by making, using, selling, offering for -sale, or importing the Program or any portion of it. - - 11. Patents. - - A "contributor" is a copyright holder who authorizes use under this -License of the Program or a work on which the Program is based. The -work thus licensed is called the contributor's "contributor version". - - A contributor's "essential patent claims" are all patent claims -owned or controlled by the contributor, whether already acquired or -hereafter acquired, that would be infringed by some manner, permitted -by this License, of making, using, or selling its contributor version, -but do not include claims that would be infringed only as a -consequence of further modification of the contributor version. For -purposes of this definition, "control" includes the right to grant -patent sublicenses in a manner consistent with the requirements of -this License. - - Each contributor grants you a non-exclusive, worldwide, royalty-free -patent license under the contributor's essential patent claims, to -make, use, sell, offer for sale, import and otherwise run, modify and -propagate the contents of its contributor version. - - In the following three paragraphs, a "patent license" is any express -agreement or commitment, however denominated, not to enforce a patent -(such as an express permission to practice a patent or covenant not to -sue for patent infringement). To "grant" such a patent license to a -party means to make such an agreement or commitment not to enforce a -patent against the party. - - If you convey a covered work, knowingly relying on a patent license, -and the Corresponding Source of the work is not available for anyone -to copy, free of charge and under the terms of this License, through a -publicly available network server or other readily accessible means, -then you must either (1) cause the Corresponding Source to be so -available, or (2) arrange to deprive yourself of the benefit of the -patent license for this particular work, or (3) arrange, in a manner -consistent with the requirements of this License, to extend the patent -license to downstream recipients. "Knowingly relying" means you have -actual knowledge that, but for the patent license, your conveying the -covered work in a country, or your recipient's use of the covered work -in a country, would infringe one or more identifiable patents in that -country that you have reason to believe are valid. - - If, pursuant to or in connection with a single transaction or -arrangement, you convey, or propagate by procuring conveyance of, a -covered work, and grant a patent license to some of the parties -receiving the covered work authorizing them to use, propagate, modify -or convey a specific copy of the covered work, then the patent license -you grant is automatically extended to all recipients of the covered -work and works based on it. - - A patent license is "discriminatory" if it does not include within -the scope of its coverage, prohibits the exercise of, or is -conditioned on the non-exercise of one or more of the rights that are -specifically granted under this License. You may not convey a covered -work if you are a party to an arrangement with a third party that is -in the business of distributing software, under which you make payment -to the third party based on the extent of your activity of conveying -the work, and under which the third party grants, to any of the -parties who would receive the covered work from you, a discriminatory -patent license (a) in connection with copies of the covered work -conveyed by you (or copies made from those copies), or (b) primarily -for and in connection with specific products or compilations that -contain the covered work, unless you entered into that arrangement, -or that patent license was granted, prior to 28 March 2007. - - Nothing in this License shall be construed as excluding or limiting -any implied license or other defenses to infringement that may -otherwise be available to you under applicable patent law. - - 12. No Surrender of Others' Freedom. - - If conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot convey a -covered work so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you may -not convey it at all. For example, if you agree to terms that obligate you -to collect a royalty for further conveying from those to whom you convey -the Program, the only way you could satisfy both those terms and this -License would be to refrain entirely from conveying the Program. - - 13. Use with the GNU Affero General Public License. - - Notwithstanding any other provision of this License, you have -permission to link or combine any covered work with a work licensed -under version 3 of the GNU Affero General Public License into a single -combined work, and to convey the resulting work. The terms of this -License will continue to apply to the part which is the covered work, -but the special requirements of the GNU Affero General Public License, -section 13, concerning interaction through a network will apply to the -combination as such. - - 14. Revised Versions of this License. - - The Free Software Foundation may publish revised and/or new versions of -the GNU General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - - Each version is given a distinguishing version number. If the -Program specifies that a certain numbered version of the GNU General -Public License "or any later version" applies to it, you have the -option of following the terms and conditions either of that numbered -version or of any later version published by the Free Software -Foundation. If the Program does not specify a version number of the -GNU General Public License, you may choose any version ever published -by the Free Software Foundation. - - If the Program specifies that a proxy can decide which future -versions of the GNU General Public License can be used, that proxy's -public statement of acceptance of a version permanently authorizes you -to choose that version for the Program. - - Later license versions may give you additional or different -permissions. However, no additional obligations are imposed on any -author or copyright holder as a result of your choosing to follow a -later version. - - 15. Disclaimer of Warranty. - - THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY -APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT -HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY -OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, -THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM -IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF -ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - - 16. Limitation of Liability. - - IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS -THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY -GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE -USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF -DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD -PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), -EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF -SUCH DAMAGES. - - 17. Interpretation of Sections 15 and 16. - - If the disclaimer of warranty and limitation of liability provided -above cannot be given local legal effect according to their terms, -reviewing courts shall apply local law that most closely approximates -an absolute waiver of all civil liability in connection with the -Program, unless a warranty or assumption of liability accompanies a -copy of the Program in return for a fee. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -state the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - - Copyright (C) - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . - -Also add information on how to contact you by electronic and paper mail. - - If the program does terminal interaction, make it output a short -notice like this when it starts in an interactive mode: - - Copyright (C) - This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, your program's commands -might be different; for a GUI interface, you would use an "about box". - - You should also get your employer (if you work as a programmer) or school, -if any, to sign a "copyright disclaimer" for the program, if necessary. -For more information on this, and how to apply and follow the GNU GPL, see -. - - The GNU General Public License does not permit incorporating your program -into proprietary programs. If your program is a subroutine library, you -may consider it more useful to permit linking proprietary applications with -the library. If this is what you want to do, use the GNU Lesser General -Public License instead of this License. But first, please read -. diff --git a/admin/LICENSE.en.txt b/admin/LICENSE.en.txt new file mode 100644 index 00000000..94a9ed02 --- /dev/null +++ b/admin/LICENSE.en.txt @@ -0,0 +1,674 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + Copyright (C) + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. diff --git a/admin/Sources/Services/opengnsys.init b/admin/Sources/Services/opengnsys.init index 6dca623c..477cc99b 100755 --- a/admin/Sources/Services/opengnsys.init +++ b/admin/Sources/Services/opengnsys.init @@ -76,7 +76,7 @@ fi config() { OSDISTRIB=$(lsb_release -is 2>/dev/null) case "$OSDISTRIB" in - Ubuntu) + Ubuntu|Debian|LinuxMint) INITFUNCTIONS=/lib/lsb/init-functions DAEMONSTART="start-stop-daemon --start --quiet --background --exec" EXTRAOPTS="--" diff --git a/admin/WebConsole/acceso.php b/admin/WebConsole/acceso.php deleted file mode 100644 index 3dd2bcb3..00000000 --- a/admin/WebConsole/acceso.php +++ /dev/null @@ -1,26 +0,0 @@ - diff --git a/admin/WebConsole/acceso.php b/admin/WebConsole/acceso.php new file mode 120000 index 00000000..0012f7d2 --- /dev/null +++ b/admin/WebConsole/acceso.php @@ -0,0 +1 @@ +index.php \ No newline at end of file diff --git a/admin/WebConsole/acceso_esp.php b/admin/WebConsole/acceso_esp.php deleted file mode 100644 index 20146a85..00000000 --- a/admin/WebConsole/acceso_esp.php +++ /dev/null @@ -1,124 +0,0 @@ - - -Administración web de aulas - - - - - - - -
-
-
- - - - -
-

Unidad Organizativa
- -

- - -
-
-
-'; -echo ''; -echo ''; -//________________________________________________________________________________________________________ -// Posiciona cursor en campo usuario y muestra mensaje de error si lo hubiera -echo ''; -//________________________________________________________________________________________________________ -?> - - diff --git a/admin/WebConsole/asistentes/AsistenteCloneRemotePartition.php b/admin/WebConsole/asistentes/AsistenteCloneRemotePartition.php index 6966d9d7..15362ff8 100644 --- a/admin/WebConsole/asistentes/AsistenteCloneRemotePartition.php +++ b/admin/WebConsole/asistentes/AsistenteCloneRemotePartition.php @@ -20,6 +20,7 @@ include_once("../includes/comunes.php"); include_once("../includes/CreaComando.php"); include_once("../includes/HTMLSELECT.php"); include_once("../idiomas/php/".$idioma."/comandos/ejecutarscripts_".$idioma.".php"); +include_once("../idiomas/php/".$idioma."/comandos/opcionesacciones_".$idioma.".php"); //________________________________________________________________________________________________________ include_once("./includes/capturaacciones.php"); //________________________________________________________________________________________________________ @@ -73,7 +74,7 @@ switch($ambito){ $textambito=$TbMsg[4]; break; } - echo '

'.$descricomando.' 
'; + echo '

'.$TbMsg["WCRP31"].' 
'; echo '   '.$TbMsg[6].': '.$textambito.','.$nombreambito.'  

'; ?> @@ -92,7 +93,7 @@ switch($ambito){ - + " onClick="codeCloneRemotePartition(this.form)"> @@ -109,4 +110,5 @@ switch($ambito){ - \ No newline at end of file + + diff --git a/admin/WebConsole/asistentes/AsistenteDeployImage.php b/admin/WebConsole/asistentes/AsistenteDeployImage.php index d7dfc695..129a4d3b 100644 --- a/admin/WebConsole/asistentes/AsistenteDeployImage.php +++ b/admin/WebConsole/asistentes/AsistenteDeployImage.php @@ -20,6 +20,8 @@ include_once("../includes/comunes.php"); include_once("../includes/CreaComando.php"); include_once("../includes/HTMLSELECT.php"); include_once("../idiomas/php/".$idioma."/comandos/ejecutarscripts_".$idioma.".php"); +include_once("../idiomas/php/".$idioma."/comandos/opcionesacciones_".$idioma.".php"); + @@ -93,7 +95,8 @@ switch($ambito){ if (isset($_GET["litambito"])) $litambito=$_GET["litambito"]; break; } - echo '

'.$descricomando.' 
'; + //echo '

'.$descricomando.' 
'; + echo '

'.$TbMsg["WDI11"].' 
'; echo '   '.$TbMsg[6].': '.$textambito.','.$nombreambito.'  

'; @@ -113,7 +116,7 @@ switch($ambito){ ?> - + " onClick="codeDeployImage(this.form)"> @@ -135,4 +138,4 @@ switch($ambito){ - \ No newline at end of file + diff --git a/admin/WebConsole/asistentes/AsistenteParticionado.php b/admin/WebConsole/asistentes/AsistenteParticionado.php index 3483ab9b..3a5f581e 100644 --- a/admin/WebConsole/asistentes/AsistenteParticionado.php +++ b/admin/WebConsole/asistentes/AsistenteParticionado.php @@ -21,6 +21,7 @@ include_once("../includes/CreaComando.php"); include_once("../includes/HTMLSELECT.php"); include_once("../idiomas/php/".$idioma."/comandos/ejecutarscripts_".$idioma.".php"); include_once("../idiomas/php/".$idioma."/configuraciones_".$idioma.".php"); +include_once("../idiomas/php/".$idioma."/comandos/opcionesacciones_".$idioma.".php"); include_once("../includes/HTMLCTESELECT.php"); include_once("../includes/TomaDato.php"); include_once("../includes/ConfiguracionesParticiones.php"); diff --git a/admin/WebConsole/asistentes/includes/asistentes/AyudanteFormularios.php b/admin/WebConsole/asistentes/includes/asistentes/AyudanteFormularios.php index ff06b3b7..0f59bfd5 100644 --- a/admin/WebConsole/asistentes/includes/asistentes/AyudanteFormularios.php +++ b/admin/WebConsole/asistentes/includes/asistentes/AyudanteFormularios.php @@ -5,6 +5,8 @@ #$ambito (aula=4 y ordenadores=16) function htmlForm_mcast($cmd,$ambito,$idambito) { +global $TbMsg; + //if (isset($_GET["idambito"])) $idambito=$_GET["idambito"]; if ($ambito == 4) { @@ -25,9 +27,9 @@ $cmd->texto='SELECT aulas.pormul,aulas.ipmul,aulas.modomul,aulas.velmul,aulas.mo $rs->Comando=&$cmd; if ($rs->Abrir()){ $rs->Primero(); - $SelectHtml.='puerto :
'; + $SelectHtml.= $TbMsg["WDI24"] . ':
'; $rs->Siguiente(); - $SelectHtml.='direccion Mcast :
'; + $SelectHtml.= $TbMsg["WDI25"] . ':
'; $rs->Siguiente(); switch ($rs->campos["modomul"]) { @@ -38,14 +40,14 @@ if ($rs->Abrir()){ $modomulticast="full-duplex"; break; } - $SelectHtml.='modo :
'; + $SelectHtml.= $TbMsg["WDI26"] . ':
'; $rs->Siguiente(); - $SelectHtml.='velocidad :
'; + $SelectHtml.= $TbMsg["WDI27"] . ':
'; $rs->Cerrar(); } - $SelectHtml.='nº Max. clientes :
'; - $SelectHtml.='Tiempo(seg) Max. Espera :
'; + $SelectHtml.= $TbMsg["WDI28"] . ':
'; + $SelectHtml.= $TbMsg["WDI29"] . ' :
'; return($SelectHtml); } @@ -55,6 +57,7 @@ if ($rs->Abrir()){ #$ambito (aula=4 y ordenadores=16) function htmlForm_p2p($cmd,$ambito,$idambito) { +global $TbMsg; //if (isset($_GET["idambito"])) $idambito=$_GET["idambito"]; if ($ambito == 4) { @@ -75,9 +78,9 @@ $cmd->texto='SELECT aulas.modp2p,aulas.timep2p FROM aulas JOIN ordenadores ON o $rs->Comando=&$cmd; if ($rs->Abrir()){ $rs->Primero(); - $SelectHtml.='modo :
'; + $SelectHtml.= $TbMsg["WDI26"] . ' :
'; $rs->Siguiente(); - $SelectHtml.='tiempo de semilla :
'; + $SelectHtml.= $TbMsg["WDI30"] . ' :
'; $rs->Siguiente(); $rs->Cerrar(); } @@ -88,7 +91,7 @@ return($SelectHtml); function htmlForm_unicast($cmd,$ambito,$idambito) { - +global $TbMsg; //if (isset($_GET["idambito"])) $idambito=$_GET["idambito"]; if ($ambito == 4) { @@ -116,8 +119,8 @@ $cmd->texto='SELECT nombreordenador,idordenador,ip FROM ordenadores where idaul } $rs->Cerrar(); } - $SelectHtml.='Puerto Unicast :
'; - $SelectHtml.='Clientes Posibles :
'; + $SelectHtml.= $TbMsg["WDI24"] . ' :
'; + $SelectHtml.= $TbMsg["WDI28"] . ' :
'; return($SelectHtml); } diff --git a/admin/WebConsole/asistentes/includes/asistentes/formCloneRemotePartition.php b/admin/WebConsole/asistentes/includes/asistentes/formCloneRemotePartition.php index 2cd0b7c1..0d968874 100644 --- a/admin/WebConsole/asistentes/includes/asistentes/formCloneRemotePartition.php +++ b/admin/WebConsole/asistentes/includes/asistentes/formCloneRemotePartition.php @@ -3,17 +3,17 @@ - Elige equipo MASTER: +
- Elige desde el Master la imagen o particion a enviar +

- Elige la identificacion de la partición destino de los clientes: +
- Elige el metodo de transferencia +
- Elige herramienta de clonacion: +
- Elige compresor para la herramienta de clonacion: + deployImage (update+restore)
- updateCache (solo descarga)
+
+
+
- opciones basicas opciones multicast opciones torrent opciones unicast + - Elige la particion del disco donde se restaurar la imagen: +
- Elige la imagen a distribuir: +
+
- Elige el metodo de transferencia - Ejecutar inmediatamente +     - Ejecutar con seguimiento  +     - Sin seguimiento  +  
- Programar comando +  
- Guardar como procedimiento +     - Guardar como nuevo procedimiento  +     - Incluir en un procedimiento existente  +       - Orden de ejecución  +    
- Guardar como tarea +     - Guardar como una tarea nueva  +     - Incluir en una tarea existente  +       - Orden de ejecución  +   diff --git a/admin/WebConsole/asistentes/jscripts/asistentes.js b/admin/WebConsole/asistentes/jscripts/asistentes.js index f1a296ec..7c760053 100644 --- a/admin/WebConsole/asistentes/jscripts/asistentes.js +++ b/admin/WebConsole/asistentes/jscripts/asistentes.js @@ -21,7 +21,7 @@ switch (form.idmetodo.value) //form.codigo.value="cloneRemoteFromMaster " + form.ipMaster.value + " 1 " + form.PartOrigen.value + " " + form.mcastpuerto.value + ":" + form.mcastmodo.value + ":" + form.mcastdireccion.value + ":" + form.mcastvelocidad.value + "M:" + form.mcastnclien.value + ":" + form.mcastseg.value + " 1 " + form.PartOrigen.value + " " + form.tool.value + " " + form.compresor.value; command="cloneRemoteFromMaster " + form.ipMaster.value + " " + form.source.value + " " + protocol + " " + form.targetpart.value + " " + form.tool.value + " " + form.compresor.value; form.codigo.value="\ -echo \"[0] iniciando " + command + " \" | tee -a $OGLOGFILE $OGLOGSESSION \n " + +echo \"[0] $MSG_SCRIPTS_TASK_START " + command + " \" | tee -a $OGLOGFILE $OGLOGSESSION \n " + command + " | tee -a $OGLOGCOMMAND \n "; //cloneRemoteFromMaster " + form.ipMaster.value + " " + form.source.value + " " + protocol + " " + form.targetpart.value + " " + form.tool.value + " " + form.compresor.value + " | tee -a $OGLOGCOMMAND \n"; //form.codigo.value="cloneRemoteFromMaster " + form.ipMaster.value + " " + form.source.value + " " + protocol + " " + form.targetpart.value + " " + form.tool.value + " " + form.compresor.value; @@ -45,7 +45,7 @@ if (form.modo[0].checked) { command="deployImage REPO /" + form.idimagen.value + " 1 " + form.idparticion.value + " " + protocol ; form.codigo.value="\ -echo [0] iniciando " + command +" | tee -a $OGLOGSESSION \n \ " + +echo [0] $MSG_SCRIPTS_TASK_START " + command +" | tee -a $OGLOGSESSION \n \ " + command + " | tee -a $OGLOGCOMMAND"; //form.codigo.value="deployImage REPO /" + form.idimagen.value + " 1 " + form.idparticion.value + " " + protocol ; } @@ -53,7 +53,7 @@ else { command="updateCache REPO /" + form.idimagen.value + ".img" + " " + protocol ; form.codigo.value="\ -echo [0] iniciando " + command +" | tee -a $OGLOGSESSION \n \ " + +echo [0] $MSG_SCRIPTS_TASK_START " + command +" | tee -a $OGLOGSESSION \n \ " + command + " | tee -a $OGLOGCOMMAND"; //form.codigo.value="updateCache REPO /" + form.idimagen.value + ".img" + " " + protocol ; } @@ -98,12 +98,12 @@ function codeParticionado (form) { if (form.size4.value == "0") { //cacheCode = " ogUnmountCache \n ogUnmountAll 1 \n sizecache=`ogGetPartitionSize 1 4` \n ogDeletePartitionTable 1 \n ogUpdatePartitionTable 1 \n initCache $sizecache "; cacheCode="\ - echo \"[20] detectando tamaño de la cache\" | tee -a $OGLOGSESSION \n \ + echo \"[20] $MSG_HELP_ogGetPartitionSize CACHE\" | tee -a $OGLOGSESSION \n \ sizecache=`ogGetPartitionSize 1 4` \n \ - echo \"[30] borrando y actualizando tabla particiones disco 1\" | tee -a $OGLOGSESSION \n \ + echo \"[30] $MSG_HELP_ogDeletePartitionTable - $MSG_HELP_ogUpdatePartitionTable 1\" | tee -a $OGLOGSESSION \n \ ogDeletePartitionTable 1 \n \ ogUpdatePartitionTable 1 | tee -a $OGLOGCOMMAND \n \ - echo \"[50] Activando cache\" | tee -a $OGLOGSESSION \n \ + echo \"[50] $MSG_HELP_ogCreateCache \" | tee -a $OGLOGSESSION \n \ initCache $sizecache &>/dev/null | tee -a $OGLOGCOMMAND \n "; } else { if (form.size4.value == "CUSTOM") { @@ -113,16 +113,16 @@ function codeParticionado (form) { } //cacheCode = " ogUnmountCache \n ogUnmountAll 1 \n ogDeletePartitionTable 1 \n ogUpdatePartitionTable 1 \n initCache " + cacheSize; cacheCode="\ - echo \"[30] borrando y actualizando tabla particiones disco 1\" | tee -a $OGLOGSESSION \n \ + echo \"[30] $MSG_HELP_ogDeletePartitionTable - $MSG_HELP_ogUpdatePartitionTable 1\" | tee -a $OGLOGSESSION \n \ ogDeletePartitionTable 1 \n \ ogUpdatePartitionTable 1 \n \ - echo \"[50] Activando cache\" | tee -a $OGLOGSESSION \n \ + echo \"[50] $MSG_HELP_ogCreateCache \" | tee -a $OGLOGSESSION \n \ initCache " + cacheSize + " &>/dev/null | tee -a $OGLOGCOMMAND"; } } else { //cacheCode = " ogUnmountCache \n ogUnmountAll 1 \n ogDeletePartitionTable 1 \n ogUpdatePartitionTable 1 "; cacheCode="\ - echo \"[30] borrando y actualizando tabla particiones disco 1\" | tee -a $OGLOGSESSION \n \ + echo \"[30] $MSG_HELP_ogDeletePartitionTable - $MSG_HELP_ogUpdatePartitionTable 1\" | tee -a $OGLOGSESSION \n \ ogDeletePartitionTable 1 \n \ ogUpdatePartitionTable 1 \n"; partCode += " EMPTY:0"; @@ -167,18 +167,18 @@ function codeParticionado (form) { //ogUpdatePartitionTable 1 \n \ //ogListPartitions 1 \n"; form.codigo.value="\ -echo \"[0] iniciando particionado\" | tee -a $OGLOGSESSION $OGLOGFILE \n \ -echo \"[10] desmontando cache y particiones del disco 1\" | tee -a $OGLOGSESSION \n \ +echo \"[0] $MSG_HELP_ogCreatePartitions \" | tee -a $OGLOGSESSION $OGLOGFILE \n \ +echo \"[10] $MSG_HELP_ogUnmountAll 1\" | tee -a $OGLOGSESSION \n \ ogUnmountCache \n \ ogUnmountAll 1 \n \ " + cacheCode + " \n \ -echo \"[60] Listando tabla particiones 1\" | tee -a $OGLOGSESSION \n \ +echo \"[60] $MSG_HELP_ogListPartitions 1\" | tee -a $OGLOGSESSION \n \ ogListPartitions 1 | tee -a $OGLOGCOMMAND $OGLOGSESSION \n \ -echo \"[70] Creando tabla particiones " + partCode + " \" | tee -a $OGLOGSESSION \n \ +echo \"[70] $MSG_HELP_ogCreatePartitions " + partCode + " \" | tee -a $OGLOGSESSION \n \ ogCreatePartitions 1 " + partCode + " | tee -a $OGLOGCOMMAND \n \ -echo \"[80] Activando primera particion del disco 1\" | tee -a $OGLOGSESSION \n \ +echo \"[80] $MSG_HELP_ogSetPartitionActive 1 1\" | tee -a $OGLOGSESSION \n \ ogSetPartitionActive 1 1 \n \ -echo \"[100] Listando la nueva tabla particiones 1\" | tee -a $OGLOGSESSION $OGLOGFILE \n \ +echo \"[100] $MSG_HELP_ogListPartitions 1\" | tee -a $OGLOGSESSION $OGLOGFILE \n \ ogUpdatePartitionTable 1 \n \ ms-sys /dev/sda | grep unknow && ms-sys /dev/sda \n \ ogListPartitions 1 | tee -a $OGLOGCOMMAND $OGLOGSESSION $OGLOGFILE \n"; diff --git a/admin/WebConsole/asistentes/xajax.server.php b/admin/WebConsole/asistentes/xajax.server.php index f7efb0c7..9d4e1bd7 100644 --- a/admin/WebConsole/asistentes/xajax.server.php +++ b/admin/WebConsole/asistentes/xajax.server.php @@ -48,7 +48,7 @@ function ListarOrigenMaster($ip){ } else { - $objResponse->alert("Este equipo No tiene particiones clonables."); + $objResponse->alert("No partion found in this host for use it to cloning other computers."); } $rs->Cerrar(); } @@ -73,7 +73,7 @@ where repositorios.ip="' .$ip .'"'; } else { - $objResponse->alert("Este equipo No tiene imagenes registradas en la cache."); + $objResponse->alert("No image found in CACHE in this host for use it to cloning other compuers."); } $rs->Cerrar(); } @@ -99,7 +99,7 @@ where repositorios.idrepositorio=(select idrepositorio from ordenadores where or } else { - $objResponse->alert("Este equipo No tiene acceso a ninguna imagen del REPO asignado."); + $objResponse->alert("No image found in REPO from this host for use it to cloning other computers."); } $rs->Cerrar(); } diff --git a/admin/WebConsole/barramenu.php b/admin/WebConsole/barramenu.php index ae237427..ea4cbd8b 100644 --- a/admin/WebConsole/barramenu.php +++ b/admin/WebConsole/barramenu.php @@ -81,6 +81,10 @@ include_once("./idiomas/php/".$idioma."/barramenu_".$idioma.".php"); case 13: href="./principal/usuarios.php" break; + case 14: + href="./principal/aulas.php" + href2="./varios/buscar.php" + break; } var oldOp=currentOp currentOp=o; @@ -137,6 +141,9 @@ include_once("./idiomas/php/".$idioma."/barramenu_".$idioma.".php");     + +     +
- Programar comando +  
- Guardar como procedimiento +     - Guardar como nuevo procedimiento  +     - Incluir en un procedimiento existente  +       - Orden de ejecución  +    
- Guardar como tarea +     - Guardar como una tarea nueva  +     - Incluir en una tarea existente  +       - Orden de ejecución  +   diff --git a/admin/WebConsole/comandos/jscripts/comunescomandos.js b/admin/WebConsole/comandos/jscripts/comunescomandos.js index b82bfa29..36bc6a38 100644 --- a/admin/WebConsole/comandos/jscripts/comunescomandos.js +++ b/admin/WebConsole/comandos/jscripts/comunescomandos.js @@ -29,7 +29,8 @@ var ptarea=document.fdatosejecucion.idtarea.selectedIndex if(!sw_ejya && !sw_ejprg && !sw_mkprocedimiento && !sw_mktarea ){ - alert("ATENCIÓN.- Debe elegir al menos un modo de ejecución"); + //alert("ATENCIÓN.- Debe elegir al menos un modo de ejecución"); + alert(CTbMsg[8]); return(false); } @@ -37,23 +38,27 @@ if(sw_ejya){ if(!sw_seguimientocon && !sw_seguimientosin){ - alert("ATENCIÓN.- Debe elegir un modo de ejecución inmediata"); + //alert("ATENCIÓN.- Debe elegir un modo de ejecución inmediata"); + alert(CTbMsg[9]); return(false); } } // Cuestión procedimiento ----------------------------------------------------------------------- if(sw_mkprocedimiento){ if(!sw_nuevaprocedimiento && !sw_procedimientoexistente){ - alert("ATENCIÓN.- Debe elegir un modo de inclusión en procedimiento de este comando"); + //alert("ATENCIÓN.- Debe elegir un modo de inclusión en procedimiento de este comando"); + alert(CTbMsg[10]); return(false); } if(sw_nuevaprocedimiento && descripcion_nuevaprocedimiento==""){ - alert("ATENCIÓN.- Debe especificar el nombre del nuevo procedimiento que se creará y al que se añadirá este comando"); + //alert("ATENCIÓN.- Debe especificar el nombre del nuevo procedimiento que se creará y al que se añadirá este comando"); + alert(CTbMsg[11]); document.fdatosejecucion.nombreprocedimiento.focus(); return(false); } if(sw_procedimientoexistente && pprocedimiento==0){ - alert("ATENCIÓN.- Debe elegir el procedimiento al que se añadirá este comando"); + //alert("ATENCIÓN.- Debe elegir el procedimiento al que se añadirá este comando"); + alert(CTbMsg[12]); document.fdatosejecucion.idprocedimiento.focus(); return(false); } @@ -62,16 +67,19 @@ // Cuestión tarea ------------------------------------------------------------------------------------------------------------------------------ if(sw_mktarea){ if(!sw_nuevatarea && !sw_tareaexistente){ - alert("ATENCIÓN.- Debe elegir un modo de inclusión en tarea ejecutable, de este comando"); + //alert("ATENCIÓN.- Debe elegir un modo de inclusión en tarea ejecutable, de este comando"); + alert(CTbMsg[13]); return(false); } if(sw_nuevatarea && descripcion_nuevatarea==""){ - alert("ATENCIÓN.- Debe especificar el nombre de la nueva tarea ejecutable que se creará y a la que se añadirá este comando"); + //alert("ATENCIÓN.- Debe especificar el nombre de la nueva tarea ejecutable que se creará y a la que se añadirá este comando"); + alert(CTbMsg[14]); document.fdatosejecucion.nombretarea.focus(); return(false); } if(sw_tareaexistente && ptarea==0){ - alert("ATENCIÓN.- Debe elegir la tarea a la que se añadirá este comando"); + //alert("ATENCIÓN.- Debe elegir la tarea a la que se añadirá este comando"); + alert(CTbMsg[15]); document.fdatosejecucion.idtarea.focus(); return(false); } diff --git a/admin/WebConsole/controlacceso.php b/admin/WebConsole/controlacceso.php index 29b62f35..7fa41b67 100644 --- a/admin/WebConsole/controlacceso.php +++ b/admin/WebConsole/controlacceso.php @@ -13,7 +13,7 @@ // Variables de sessión de configuración de servidor y base de datos( Modificar aquípara cambio global) $cnx="localhost;DBUSER;DBPASSWORD;DATABASE;mysql"; // Cadena de conexión a la base de datos $wer="OPENGNSYSURL/pagerror.php"; // Página de redireccionamiento de errores - $wac="OPENGNSYSURL/acceso.php"; // Página de login de la aplicación + $wac="OPENGNSYSURL/"; // Página de login de la aplicación $idi="esp"; // Idioma por defecto //======================================================================================================== ?> diff --git a/admin/WebConsole/controlpostacceso.php b/admin/WebConsole/controlpostacceso.php index 777a038c..f6d3e66d 100644 --- a/admin/WebConsole/controlpostacceso.php +++ b/admin/WebConsole/controlpostacceso.php @@ -10,6 +10,7 @@ include_once("controlacceso.php"); include_once("./includes/CreaComando.php"); include_once("./clases/AdoPhp.php"); +include_once("idiomas/php/$idi/acceso_$idi.php"); //________________________________________________________________________________________________________ $usu=""; $pss=""; @@ -24,7 +25,7 @@ include_once("./clases/AdoPhp.php"); //________________________________________________________________________________________________________ $cmd=CreaComando($cnx); // Crea objeto comando if (!$cmd) - die("Error de acceso"); + die($TbMsg["ACCESS_ERROR"]); //________________________________________________________________________________________________________ $nmc=""; @@ -154,16 +155,18 @@ echo "
idtipousuario=".$_SESSION["widtipousuario"]; } //_______________________________________________________________________________________________________ ?> - - Administración web de aulas - + + + <?php echo $TbMsg["ACCESS_TITLE"] ?> - - - -
- Acceso permitido. Espere por favor ...

- - - + + + + diff --git a/admin/WebConsole/estilos.css b/admin/WebConsole/estilos.css index fe836968..6e60d6a9 100644 --- a/admin/WebConsole/estilos.css +++ b/admin/WebConsole/estilos.css @@ -1,4 +1,61 @@ -.textos{ +.acceso { + font: normal normal 12px sans-serif; +} +.acceso h1 { + margin: 50px auto 0px auto; + padding-left: 20px; + width: 580px; + background: #bfb39b; + font-size: 24px; + color: #ddd6c6; +} +.acceso h2 { + margin: 0px auto; + padding-left: 20px; + width: 580px; + background: #bfb39b; + font-size: 20px; + color: white; +} +.acceso form { + margin: 0px auto; + width: 600px; + height: 327px; + background-image: url('./images/login.jpg'); +} +.acceso fieldset { + padding-top: 60px; + margin-left: 350px; + border: none; +} +.acceso label { + margin-top: 20px; + height: 20px; + float: left; +} +.acceso input { + margin-top: 20px; + margin-right: 50px; + width: 100px; + height: 20px; + float: right; +} +.acceso button { + margin-left: 100px; +} +.pie { + margin: 0px auto; + padding: 0px 10px; + width: 580px; + font: normal normal 10px sans-serif; +} +.pie button { + font-size: 10px; +} +.pie span { + float: right; +} +.textos{ COLOR: #A53B2D; FONT-FAMILY:MS Sans Serif; FONT-SIZE: 8pt; @@ -155,29 +212,30 @@ FONT-FAMILY: Arial, Helvetica, sans-serif; FONT-SIZE: 11px } - -.tabla_listados{ -} - -.tabla_listados TH{ - BACKGROUND-COLOR: #63676b; - COLOR: #ffffff; - FONT-FAMILY: Arial, Helvetica, sans-serif; - FONT-SIZE: 12px; - FONT-WEIGHT: 500; - BORDER-BOTTOM:#999999 1px solid ; -} -.tabla_listados TD{ - BACKGROUND-COLOR: #EEEECC; - COLOR: #003300; - FONT-FAMILY: Arial, Helvetica, sans-serif; - FONT-SIZE: 11px; - BORDER-BOTTOM:#999999 1px solid; -} - + +.tabla_listados { + font-family: Arial, Helvetica, sans-serif; +} +.tabla_listados caption { + font-size: 14px; + font-weight: 500; +} +.tabla_listados th { + background-color: #63676b; + color: #ffffff; + font-size: 12px; + font-weight: 500; + border-bottom: #999999 1px solid; +} +.tabla_listados td { + background-color: #EEEECC; + color: #003300; + font-size: 11px; + border-bottom: #999999 1px solid; +} + .tabla_listados_sin { } - .tabla_listados_sin TH{ BACKGROUND-COLOR: #63676b; COLOR: #ffffff; @@ -194,7 +252,6 @@ FONT-FAMILY: Arial, Helvetica, sans-serif; FONT-SIZE: 11; } - A.tabla_listados_sin:visited{ COLOR: #000000; FONT-FAMILY: sans-serif; diff --git a/admin/WebConsole/frames.php b/admin/WebConsole/frames.php index ebcaad57..165a8341 100644 --- a/admin/WebConsole/frames.php +++ b/admin/WebConsole/frames.php @@ -6,6 +6,7 @@ // Fecha Última modificación: Agosto-2010 // Nombre del fichero: frames.php // Descripción :Este fichero implementa la distribución en frames de la aplicación +// Cambio en la línea 22 22% (antes 30) // ******************************************************************************************************* include_once("./includes/ctrlacc.php"); include_once("./includes/constantes.php"); @@ -17,8 +18,8 @@ include_once("./includes/constantes.php"); Administración web de aulas - - + + '; @@ -27,7 +28,7 @@ include_once("./includes/constantes.php"); echo ''; } ?> - + diff --git a/admin/WebConsole/gestores/gestor_pxe.php b/admin/WebConsole/gestores/gestor_pxe.php index 949ab5d7..04d5343d 100644 --- a/admin/WebConsole/gestores/gestor_pxe.php +++ b/admin/WebConsole/gestores/gestor_pxe.php @@ -34,12 +34,12 @@ foreach ($lista as $sublista) { $elementos = explode("|",$sublista); $hostname=$elementos[1]; $optboot=$elementos[0]; - ogBootServer($cmd,$optboot,$hostname); + ogBootServer($cmd,$optboot,$hostname,$idioma); } echo " "; echo " "; -function ogBootServer($cmd,$optboot,$hostname) +function ogBootServer($cmd,$optboot,$hostname,$idioma) { global $cmd; global $hostname; @@ -76,7 +76,20 @@ $rs->Primero(); $server=$rs->campos["ipserveradm"]; $rs->Cerrar(); -$infohost=" ip=" +switch ($idioma) { + case eng: + $idioma=en_GB; + break; + case esp: + $idioma=es_ES; + break; + case cat: + $idioma=ca_ES; + break; +} + + +$infohost="LANG=" .$idioma . " ip=" . $ip . ":" . $server .":" . $router . ":" @@ -189,4 +202,4 @@ function netmask2cidr($netmask) { return $cidr; } -?> \ No newline at end of file +?> diff --git a/admin/WebConsole/gestores/gestor_pxe_grub4dos.php b/admin/WebConsole/gestores/gestor_pxe_grub4dos.php index b293ee7d..f248f986 100644 --- a/admin/WebConsole/gestores/gestor_pxe_grub4dos.php +++ b/admin/WebConsole/gestores/gestor_pxe_grub4dos.php @@ -34,12 +34,12 @@ foreach ($lista as $sublista) { $elementos = explode("|",$sublista); $hostname=$elementos[1]; $optboot=$elementos[0]; - ogBootServer($cmd,$optboot,$hostname); + ogBootServer($cmd,$optboot,$hostname,$idioma); } echo " "; echo " "; -function ogBootServer($cmd,$optboot,$hostname) +function ogBootServer($cmd,$optboot,$hostname,$idioma) { global $cmd; global $hostname; @@ -81,7 +81,21 @@ $rs->Primero(); $server=$rs->campos["ipserveradm"]; $rs->Cerrar(); -$infohost="'ip=$ip:$server:$router:$netmask:$hostname:$netiface:none" . + +switch ($idioma) { + case eng: + $idioma=en_GB; + break; + case esp: + $idioma=es_ES; + break; + case cat: + $idioma=ca_ES; + break; +} + + +$infohost="'LANG=$idioma ip=$ip:$server:$router:$netmask:$hostname:$netiface:none" . " group=$group" . " ogrepo=$repo" . " oglive=$repo" . diff --git a/admin/WebConsole/idiomas/javascripts/cat/comandos/comunescomandos_cat.js b/admin/WebConsole/idiomas/javascripts/cat/comandos/comunescomandos_cat.js new file mode 100644 index 00000000..0c7c5904 --- /dev/null +++ b/admin/WebConsole/idiomas/javascripts/cat/comandos/comunescomandos_cat.js @@ -0,0 +1,14 @@ +//________________________________________________________________________________________________________ +// +// Fichero de idiomas javascripts: comunescomandos_esp.js (Común a todos los comandos) +// Idioma: Español +//________________________________________________________________________________________________________ +CTbMsg=new Array; +CTbMsg[0]="ATENCIÓN.- Acción cancelada, puede volver en cualquier momento a esta pantalla para ejecutar este Comando"; +CTbMsg[1]="ATENCIÓN: Ha ocurrido un error al intentar enviar este Comando"; +CTbMsg[2]="El comando se ha enviado correctamente"; +CTbMsg[3]="ATENCIÓN: Ha ocurrido un error al intentar registrar este Comando como un Procedimiento"; +CTbMsg[4]="El comando se ha registrado correctamente como un Procedimineto"; +CTbMsg[5]="ATENCIÓN: Ha ocurrido un error al intentar registrar este Comando como una Tarea"; +CTbMsg[6]="El comando se ha registrado correctamente como una Tarea"; +CTbMsg[7]="ATENCIÓN: Ha ocurrido un error al intentar registrar la acción de Comando"; diff --git a/admin/WebConsole/idiomas/javascripts/cat/comandos/comunescomandos_esp.js b/admin/WebConsole/idiomas/javascripts/cat/comandos/comunescomandos_esp.js deleted file mode 100644 index 0c7c5904..00000000 --- a/admin/WebConsole/idiomas/javascripts/cat/comandos/comunescomandos_esp.js +++ /dev/null @@ -1,14 +0,0 @@ -//________________________________________________________________________________________________________ -// -// Fichero de idiomas javascripts: comunescomandos_esp.js (Común a todos los comandos) -// Idioma: Español -//________________________________________________________________________________________________________ -CTbMsg=new Array; -CTbMsg[0]="ATENCIÓN.- Acción cancelada, puede volver en cualquier momento a esta pantalla para ejecutar este Comando"; -CTbMsg[1]="ATENCIÓN: Ha ocurrido un error al intentar enviar este Comando"; -CTbMsg[2]="El comando se ha enviado correctamente"; -CTbMsg[3]="ATENCIÓN: Ha ocurrido un error al intentar registrar este Comando como un Procedimiento"; -CTbMsg[4]="El comando se ha registrado correctamente como un Procedimineto"; -CTbMsg[5]="ATENCIÓN: Ha ocurrido un error al intentar registrar este Comando como una Tarea"; -CTbMsg[6]="El comando se ha registrado correctamente como una Tarea"; -CTbMsg[7]="ATENCIÓN: Ha ocurrido un error al intentar registrar la acción de Comando"; diff --git a/admin/WebConsole/idiomas/javascripts/cat/comandos/configurar_cat.js b/admin/WebConsole/idiomas/javascripts/cat/comandos/configurar_cat.js new file mode 100644 index 00000000..b4b05984 --- /dev/null +++ b/admin/WebConsole/idiomas/javascripts/cat/comandos/configurar_cat.js @@ -0,0 +1,12 @@ +//________________________________________________________________________________________________________ +// +// Fichero de idiomas javascripts: configurar_esp.js +// Idioma: Español +//________________________________________________________________________________________________________ +TbMsg=new Array; +TbMsg[0]="ATENCIÓN: Partición duplicada, ya existe una partición con ese número"; +TbMsg[1]="El número de la partición debe ser mayor de 0"; +TbMsg[2]="El tipo de partición no se ha especificado"; +TbMsg[3]="El tamaño de la partición debe ser mayor que cero"; +TbMsg[4]="ATENCIÓN: Se va a eliminar esta partición ¿ Está seguro ?"; + diff --git a/admin/WebConsole/idiomas/javascripts/cat/comandos/configurar_esp.js b/admin/WebConsole/idiomas/javascripts/cat/comandos/configurar_esp.js deleted file mode 100644 index b4b05984..00000000 --- a/admin/WebConsole/idiomas/javascripts/cat/comandos/configurar_esp.js +++ /dev/null @@ -1,12 +0,0 @@ -//________________________________________________________________________________________________________ -// -// Fichero de idiomas javascripts: configurar_esp.js -// Idioma: Español -//________________________________________________________________________________________________________ -TbMsg=new Array; -TbMsg[0]="ATENCIÓN: Partición duplicada, ya existe una partición con ese número"; -TbMsg[1]="El número de la partición debe ser mayor de 0"; -TbMsg[2]="El tipo de partición no se ha especificado"; -TbMsg[3]="El tamaño de la partición debe ser mayor que cero"; -TbMsg[4]="ATENCIÓN: Se va a eliminar esta partición ¿ Está seguro ?"; - diff --git a/admin/WebConsole/idiomas/javascripts/cat/comandos/crearimagen_cat.js b/admin/WebConsole/idiomas/javascripts/cat/comandos/crearimagen_cat.js new file mode 100644 index 00000000..f1124410 --- /dev/null +++ b/admin/WebConsole/idiomas/javascripts/cat/comandos/crearimagen_cat.js @@ -0,0 +1,8 @@ +//________________________________________________________________________________________________________ +// +// Fichero de idiomas javascripts: crearperfilsoftware_esp.js +// Idioma: Español +//________________________________________________________________________________________________________ +TbMsg=new Array; +TbMsg[0]="Debe elegir una imagen para esta partición"; +TbMsg[1]="Debe elegir al menos una partición y una imagen"; diff --git a/admin/WebConsole/idiomas/javascripts/cat/comandos/crearimagen_esp.js b/admin/WebConsole/idiomas/javascripts/cat/comandos/crearimagen_esp.js deleted file mode 100644 index f1124410..00000000 --- a/admin/WebConsole/idiomas/javascripts/cat/comandos/crearimagen_esp.js +++ /dev/null @@ -1,8 +0,0 @@ -//________________________________________________________________________________________________________ -// -// Fichero de idiomas javascripts: crearperfilsoftware_esp.js -// Idioma: Español -//________________________________________________________________________________________________________ -TbMsg=new Array; -TbMsg[0]="Debe elegir una imagen para esta partición"; -TbMsg[1]="Debe elegir al menos una partición y una imagen"; diff --git a/admin/WebConsole/idiomas/javascripts/cat/comandos/crearperfilsoftware_cat.js b/admin/WebConsole/idiomas/javascripts/cat/comandos/crearperfilsoftware_cat.js new file mode 100644 index 00000000..48d4a7f1 --- /dev/null +++ b/admin/WebConsole/idiomas/javascripts/cat/comandos/crearperfilsoftware_cat.js @@ -0,0 +1,8 @@ +//________________________________________________________________________________________________________ +// +// Fichero de idiomas javascripts: crearperfilsoftware_esp.js +// Idioma: Español +//________________________________________________________________________________________________________ +TbMsg=new Array; +TbMsg[0]="Debe elegir un perfil software para esta partición"; +TbMsg[1]="Debe elegir al menos una partición y un perfil software"; diff --git a/admin/WebConsole/idiomas/javascripts/cat/comandos/crearperfilsoftware_esp.js b/admin/WebConsole/idiomas/javascripts/cat/comandos/crearperfilsoftware_esp.js deleted file mode 100644 index 48d4a7f1..00000000 --- a/admin/WebConsole/idiomas/javascripts/cat/comandos/crearperfilsoftware_esp.js +++ /dev/null @@ -1,8 +0,0 @@ -//________________________________________________________________________________________________________ -// -// Fichero de idiomas javascripts: crearperfilsoftware_esp.js -// Idioma: Español -//________________________________________________________________________________________________________ -TbMsg=new Array; -TbMsg[0]="Debe elegir un perfil software para esta partición"; -TbMsg[1]="Debe elegir al menos una partición y un perfil software"; diff --git a/admin/WebConsole/idiomas/javascripts/cat/comandos/crearsoftincremental_cat.js b/admin/WebConsole/idiomas/javascripts/cat/comandos/crearsoftincremental_cat.js new file mode 100644 index 00000000..bfcbf99a --- /dev/null +++ b/admin/WebConsole/idiomas/javascripts/cat/comandos/crearsoftincremental_cat.js @@ -0,0 +1,8 @@ +//________________________________________________________________________________________________________ +// +// Fichero de idiomas javascripts: crearsoftincremental_esp.js +// Idioma: Español +//________________________________________________________________________________________________________ +TbMsg=new Array; +TbMsg[0]="Debe elegir un software incremental para esta partición"; +TbMsg[1]="Debe elegir al menos una partición y un software incremental"; diff --git a/admin/WebConsole/idiomas/javascripts/cat/comandos/crearsoftincremental_esp.js b/admin/WebConsole/idiomas/javascripts/cat/comandos/crearsoftincremental_esp.js deleted file mode 100644 index bfcbf99a..00000000 --- a/admin/WebConsole/idiomas/javascripts/cat/comandos/crearsoftincremental_esp.js +++ /dev/null @@ -1,8 +0,0 @@ -//________________________________________________________________________________________________________ -// -// Fichero de idiomas javascripts: crearsoftincremental_esp.js -// Idioma: Español -//________________________________________________________________________________________________________ -TbMsg=new Array; -TbMsg[0]="Debe elegir un software incremental para esta partición"; -TbMsg[1]="Debe elegir al menos una partición y un software incremental"; diff --git a/admin/WebConsole/idiomas/javascripts/cat/comandos/ejecutarscripts_cat.js b/admin/WebConsole/idiomas/javascripts/cat/comandos/ejecutarscripts_cat.js new file mode 100644 index 00000000..80da1b67 --- /dev/null +++ b/admin/WebConsole/idiomas/javascripts/cat/comandos/ejecutarscripts_cat.js @@ -0,0 +1,8 @@ +//________________________________________________________________________________________________________ +// +// Fichero de idiomas javascripts: ejecutarscripts_esp.js +// Idioma: Español +//________________________________________________________________________________________________________ +TbMsg=new Array; +TbMsg[0]=""; +TbMsg[1]="El script debe tener alguna linea de código"; diff --git a/admin/WebConsole/idiomas/javascripts/cat/comandos/ejecutarscripts_esp.js b/admin/WebConsole/idiomas/javascripts/cat/comandos/ejecutarscripts_esp.js deleted file mode 100644 index 80da1b67..00000000 --- a/admin/WebConsole/idiomas/javascripts/cat/comandos/ejecutarscripts_esp.js +++ /dev/null @@ -1,8 +0,0 @@ -//________________________________________________________________________________________________________ -// -// Fichero de idiomas javascripts: ejecutarscripts_esp.js -// Idioma: Español -//________________________________________________________________________________________________________ -TbMsg=new Array; -TbMsg[0]=""; -TbMsg[1]="El script debe tener alguna linea de código"; diff --git a/admin/WebConsole/idiomas/javascripts/cat/comandos/iniciarsesion_cat.js b/admin/WebConsole/idiomas/javascripts/cat/comandos/iniciarsesion_cat.js new file mode 100644 index 00000000..2708a5fe --- /dev/null +++ b/admin/WebConsole/idiomas/javascripts/cat/comandos/iniciarsesion_cat.js @@ -0,0 +1,8 @@ +//________________________________________________________________________________________________________ +// +// Fichero de idiomas javascripts: iniciarsesion_esp.js +// Idioma: Español +//________________________________________________________________________________________________________ +TbMsg=new Array; +TbMsg[0]=""; +TbMsg[1]="Debe elegir al menos una partición"; diff --git a/admin/WebConsole/idiomas/javascripts/cat/comandos/iniciarsesion_esp.js b/admin/WebConsole/idiomas/javascripts/cat/comandos/iniciarsesion_esp.js deleted file mode 100644 index 2708a5fe..00000000 --- a/admin/WebConsole/idiomas/javascripts/cat/comandos/iniciarsesion_esp.js +++ /dev/null @@ -1,8 +0,0 @@ -//________________________________________________________________________________________________________ -// -// Fichero de idiomas javascripts: iniciarsesion_esp.js -// Idioma: Español -//________________________________________________________________________________________________________ -TbMsg=new Array; -TbMsg[0]=""; -TbMsg[1]="Debe elegir al menos una partición"; diff --git a/admin/WebConsole/idiomas/javascripts/cat/comandos/inventariosoftware_cat.js b/admin/WebConsole/idiomas/javascripts/cat/comandos/inventariosoftware_cat.js new file mode 100644 index 00000000..2708a5fe --- /dev/null +++ b/admin/WebConsole/idiomas/javascripts/cat/comandos/inventariosoftware_cat.js @@ -0,0 +1,8 @@ +//________________________________________________________________________________________________________ +// +// Fichero de idiomas javascripts: iniciarsesion_esp.js +// Idioma: Español +//________________________________________________________________________________________________________ +TbMsg=new Array; +TbMsg[0]=""; +TbMsg[1]="Debe elegir al menos una partición"; diff --git a/admin/WebConsole/idiomas/javascripts/cat/comandos/inventariosoftware_esp.js b/admin/WebConsole/idiomas/javascripts/cat/comandos/inventariosoftware_esp.js deleted file mode 100644 index 2708a5fe..00000000 --- a/admin/WebConsole/idiomas/javascripts/cat/comandos/inventariosoftware_esp.js +++ /dev/null @@ -1,8 +0,0 @@ -//________________________________________________________________________________________________________ -// -// Fichero de idiomas javascripts: iniciarsesion_esp.js -// Idioma: Español -//________________________________________________________________________________________________________ -TbMsg=new Array; -TbMsg[0]=""; -TbMsg[1]="Debe elegir al menos una partición"; diff --git a/admin/WebConsole/idiomas/javascripts/cat/comandos/particionaryformatear_cat.js b/admin/WebConsole/idiomas/javascripts/cat/comandos/particionaryformatear_cat.js new file mode 100644 index 00000000..7f3f529c --- /dev/null +++ b/admin/WebConsole/idiomas/javascripts/cat/comandos/particionaryformatear_cat.js @@ -0,0 +1,15 @@ +//________________________________________________________________________________________________________ +// +// Fichero de idiomas javascripts: particionaryformatear_esp.js +// Idioma: Español +//________________________________________________________________________________________________________ +TbMsg=new Array; +TbMsg[0]="ATENCIÓN: No ha efectuado ningún cambio en la tabla de particiones, por tanto, no se ejecutará ninguna acción"; +TbMsg[1]="ATENCIÓN: Hay particiones con el mismo número, debe seleccionar otra o eliminarla haciendo click en la última columna"; +TbMsg[2]="ATENCIÓN: El tamaño de la partición debe ser mayor que cero"; +TbMsg[3]="ATENCIÓN: Las particiones deben ser correlativas y no debe haber espacios entre ellas"; +TbMsg[4]="ATENCIÓN: La partición está vacia , por tanto, no se ejecutará ninguna acción sobre ella"; +TbMsg[5]="ATENCIÓN: Esta partición debe ser formateada porque ha cambiado su sistema operativo o el tamaño de alguna partición"; +TbMsg[6]="ATENCIÓN: No tiene sentido ocultar una partición que no sea un sistema Windows"; +TbMsg[7]="ATENCIÓN: No tiene sentido mostrar una partición que no sea un sistema Windows"; +TbMsg[8]="No se pueden añadir más particiones"; \ No newline at end of file diff --git a/admin/WebConsole/idiomas/javascripts/cat/comandos/particionaryformatear_esp.js b/admin/WebConsole/idiomas/javascripts/cat/comandos/particionaryformatear_esp.js deleted file mode 100644 index 7f3f529c..00000000 --- a/admin/WebConsole/idiomas/javascripts/cat/comandos/particionaryformatear_esp.js +++ /dev/null @@ -1,15 +0,0 @@ -//________________________________________________________________________________________________________ -// -// Fichero de idiomas javascripts: particionaryformatear_esp.js -// Idioma: Español -//________________________________________________________________________________________________________ -TbMsg=new Array; -TbMsg[0]="ATENCIÓN: No ha efectuado ningún cambio en la tabla de particiones, por tanto, no se ejecutará ninguna acción"; -TbMsg[1]="ATENCIÓN: Hay particiones con el mismo número, debe seleccionar otra o eliminarla haciendo click en la última columna"; -TbMsg[2]="ATENCIÓN: El tamaño de la partición debe ser mayor que cero"; -TbMsg[3]="ATENCIÓN: Las particiones deben ser correlativas y no debe haber espacios entre ellas"; -TbMsg[4]="ATENCIÓN: La partición está vacia , por tanto, no se ejecutará ninguna acción sobre ella"; -TbMsg[5]="ATENCIÓN: Esta partición debe ser formateada porque ha cambiado su sistema operativo o el tamaño de alguna partición"; -TbMsg[6]="ATENCIÓN: No tiene sentido ocultar una partición que no sea un sistema Windows"; -TbMsg[7]="ATENCIÓN: No tiene sentido mostrar una partición que no sea un sistema Windows"; -TbMsg[8]="No se pueden añadir más particiones"; \ No newline at end of file diff --git a/admin/WebConsole/idiomas/javascripts/cat/comandos/restaurarimagen_cat.js b/admin/WebConsole/idiomas/javascripts/cat/comandos/restaurarimagen_cat.js new file mode 100644 index 00000000..ec7ef847 --- /dev/null +++ b/admin/WebConsole/idiomas/javascripts/cat/comandos/restaurarimagen_cat.js @@ -0,0 +1,13 @@ +//________________________________________________________________________________________________________ +// +// Fichero de idiomas javascripts: configurar_esp.js +// Idioma: Español +//________________________________________________________________________________________________________ +TbMsg=new Array; +TbMsg[0]="Debe elegir una imagen para esta partición"; +TbMsg[1]="Debe elegir al menos una partición y una imagen"; +TbMsg[2]="ATENCIÓN: Ha selecccionado una imagen de Sistema Operativo distinto al que tiene instalado la actual partición "; +TbMsg[3]="¿ Está seguro ?" +TbMsg[4]="Debe elegir al menos una imagen para la partición" +TbMsg[5]="Debe elegir al menos un path de imagen para la partición "; +TbMsg[6]="Debe elegir la imagen de uno sólo de los desplegables" diff --git a/admin/WebConsole/idiomas/javascripts/cat/comandos/restaurarimagen_esp.js b/admin/WebConsole/idiomas/javascripts/cat/comandos/restaurarimagen_esp.js deleted file mode 100644 index ec7ef847..00000000 --- a/admin/WebConsole/idiomas/javascripts/cat/comandos/restaurarimagen_esp.js +++ /dev/null @@ -1,13 +0,0 @@ -//________________________________________________________________________________________________________ -// -// Fichero de idiomas javascripts: configurar_esp.js -// Idioma: Español -//________________________________________________________________________________________________________ -TbMsg=new Array; -TbMsg[0]="Debe elegir una imagen para esta partición"; -TbMsg[1]="Debe elegir al menos una partición y una imagen"; -TbMsg[2]="ATENCIÓN: Ha selecccionado una imagen de Sistema Operativo distinto al que tiene instalado la actual partición "; -TbMsg[3]="¿ Está seguro ?" -TbMsg[4]="Debe elegir al menos una imagen para la partición" -TbMsg[5]="Debe elegir al menos un path de imagen para la partición "; -TbMsg[6]="Debe elegir la imagen de uno sólo de los desplegables" diff --git a/admin/WebConsole/idiomas/javascripts/eng/administradores_centros_eng.js b/admin/WebConsole/idiomas/javascripts/eng/administradores_centros_eng.js index d1c004c4..5271887d 100644 --- a/admin/WebConsole/idiomas/javascripts/eng/administradores_centros_eng.js +++ b/admin/WebConsole/idiomas/javascripts/eng/administradores_centros_eng.js @@ -1,8 +1,8 @@ //____________________________________________________________________________ // -// Fichero de idiomas javascript: perfilcomponente_soft_esp.js -// Idioma: Español +// Fichero de idiomas javascript: administradores_centros_eng.js +// Idioma: Ingles //____________________________________________________________________________ TbMsg=new Array; -TbMsg[0]="Este Administrador ha sido incluido en esta Unidad Organizativa correctamente"; -TbMsg[1]="Este Administrador ha sido excluido correctamente de esta Unidad Organizativa"; +TbMsg[0]="The Administrator has been included in this Organizational Unit correctly"; +TbMsg[1]="This Administrator has properly been excluded from this Organizational Unit"; diff --git a/admin/WebConsole/idiomas/javascripts/eng/administradores_usuarios_eng.js b/admin/WebConsole/idiomas/javascripts/eng/administradores_usuarios_eng.js index ae2cbd50..793df1b7 100644 --- a/admin/WebConsole/idiomas/javascripts/eng/administradores_usuarios_eng.js +++ b/admin/WebConsole/idiomas/javascripts/eng/administradores_usuarios_eng.js @@ -1,8 +1,8 @@ //____________________________________________________________________________ // -// Fichero de idiomas javascript: perfilcomponente_soft_esp.js -// Idioma: Español +// Fichero de idiomas javascript: administradores_usuarios_eng.js +// Idioma: Ingles //____________________________________________________________________________ TbMsg=new Array; -TbMsg[0]="Esta Unidad Organizativa ha sido asignado al Usuario correctamente"; -TbMsg[1]="Esta Unidad Organizativa ha sido excluido correctamente de este Usuario"; +TbMsg[0]="The Organizational Unit has been properly assigned to User"; +TbMsg[1]="The Organizational Unit has been properly excluded from this User"; diff --git a/admin/WebConsole/idiomas/javascripts/eng/aulas_eng.js b/admin/WebConsole/idiomas/javascripts/eng/aulas_eng.js index 320a894d..1b45152b 100644 --- a/admin/WebConsole/idiomas/javascripts/eng/aulas_eng.js +++ b/admin/WebConsole/idiomas/javascripts/eng/aulas_eng.js @@ -5,6 +5,17 @@ //________________________________________________________________________________________________________ TbMsg=new Array; TbMsg[0]="Computer template have been successfully registered and all the computers of this lab have been updated using this configuration"; -TbMsg[1]="WARNING: This environment will be refresh. Are you sure ?"; -TbMsg[2]="WARNING: This environment will be purge. Are you sure ?"; -TbMsg[3]="WARNING: the items of menus from this environment will be refresh. Are you sure ?"; +TbMsg[1]="WARNING: This environment will be refresh. Are you sure ?"; +TbMsg[2]="WARNING: This environment will be purge. Are you sure ?"; +TbMsg[3]="WARNING: The items of menus from this environment will be refresh. Are you sure ?"; +TbMsg[4]="WARNING: This environment will be switched: Are you sure?"; +TbMsg[5]="WARNING: Remote Console is already enabled for this environment. Follow up on the screen of Commands / Scripts"; +TbMsg[6]="WARNING: You must select the 'Remote Console' previously"; +TbMsg[7]="The update request is send with success"; +TbMsg[8]="There is something wrong with the requested update"; +TbMsg[9]="The switch request is send with success"; +TbMsg[10]="There is something wrong with the requested switch"; +TbMsg[11]="The scan request is send with success"; +TbMsg[12]="There is something wrong with requested scan"; + + diff --git a/admin/WebConsole/idiomas/javascripts/eng/comandos/comunescomandos_eng.js b/admin/WebConsole/idiomas/javascripts/eng/comandos/comunescomandos_eng.js index 85b89539..645666e0 100644 --- a/admin/WebConsole/idiomas/javascripts/eng/comandos/comunescomandos_eng.js +++ b/admin/WebConsole/idiomas/javascripts/eng/comandos/comunescomandos_eng.js @@ -1,9 +1,23 @@ //________________________________________________________________________________________________________ // -// Fichero de idiomas javascripts: comunescomandos_eng.js (Comn a todos los comandos) -// Idioma: Ings +// Fichero de idiomas javascripts: comunescomandos_eng.js (Com�n a todos los comandos) +// Idioma: Ing�s //________________________________________________________________________________________________________ CTbMsg=new Array; CTbMsg[0]="WARNING.- Cancelled operation, you will might come back this screen in another moment to perform this command"; CTbMsg[1]="WARNING: An error occurs when attempt to register command"; CTbMsg[2]="The command has been successfully registered"; +CTbMsg[3]="WARNING: An error occurred while trying to register this Command as a Procedure"; +CTbMsg[4]="The command has been successfully registered as a Procedure"; +CTbMsg[5]="WARNING: An error occurred while trying to register this Command as a Task"; +CTbMsg[6]="The command has been successfully registered as a Task"; +CTbMsg[7]="WARNING: An error occurs when attempt to register command"; + +CTbMsg[8]="WARNING: Choose one mode of execution at least"; +CTbMsg[9]="WARNING: You must choose a way of immediate execution"; +CTbMsg[10]="WARNING: You must choose a way of inclusion this command on procedure"; +CTbMsg[11]="WARNING: You must specify the name of the new procedure where this command will be added"; +CTbMsg[12]="WARNING: You should choose the procedure that will add this command"; +CTbMsg[13]="WARNING: You must choose a way of inclusion this command on task executable"; +CTbMsg[14]="WARNING: You must specify the name of the new task where this command will be added"; +CTbMsg[15]="WARNING: You must choose the task that will add this command"; \ No newline at end of file diff --git a/admin/WebConsole/idiomas/javascripts/eng/comandos/crearimagen_eng.js b/admin/WebConsole/idiomas/javascripts/eng/comandos/crearimagen_eng.js new file mode 100644 index 00000000..6525d89b --- /dev/null +++ b/admin/WebConsole/idiomas/javascripts/eng/comandos/crearimagen_eng.js @@ -0,0 +1,8 @@ +//________________________________________________________________________________________________________ +// +// Fichero de idiomas javascripts: crearperfilsoftware_eng.js +// Idioma: Español +//________________________________________________________________________________________________________ +TbMsg=new Array; +TbMsg[0]="You must choose a image for this partition"; +TbMsg[1]="You must choose at least one partition and an image"; diff --git a/admin/WebConsole/idiomas/javascripts/eng/comandos/iniciarsesion_eng.js b/admin/WebConsole/idiomas/javascripts/eng/comandos/iniciarsesion_eng.js new file mode 100644 index 00000000..9af3afc2 --- /dev/null +++ b/admin/WebConsole/idiomas/javascripts/eng/comandos/iniciarsesion_eng.js @@ -0,0 +1,8 @@ +//________________________________________________________________________________________________________ +// +// Fichero de idiomas javascripts: iniciarsesion_eng.js +// Idioma: Ingles +//________________________________________________________________________________________________________ +TbMsg=new Array; +TbMsg[0]=""; +TbMsg[1]="You must choose at least one partition"; diff --git a/admin/WebConsole/idiomas/javascripts/eng/comandos/inventariosoftware_eng.js b/admin/WebConsole/idiomas/javascripts/eng/comandos/inventariosoftware_eng.js new file mode 100644 index 00000000..faf6091e --- /dev/null +++ b/admin/WebConsole/idiomas/javascripts/eng/comandos/inventariosoftware_eng.js @@ -0,0 +1,8 @@ +//________________________________________________________________________________________________________ +// +// Fichero de idiomas javascripts: iniciarsesion_eng.js +// Idioma: English +//________________________________________________________________________________________________________ +TbMsg=new Array; +TbMsg[0]=""; +TbMsg[1]="You must choose at least one partition"; diff --git a/admin/WebConsole/idiomas/javascripts/eng/comandos/restaurarimagen_eng.js b/admin/WebConsole/idiomas/javascripts/eng/comandos/restaurarimagen_eng.js index c1fe1d21..dbe7a4df 100644 --- a/admin/WebConsole/idiomas/javascripts/eng/comandos/restaurarimagen_eng.js +++ b/admin/WebConsole/idiomas/javascripts/eng/comandos/restaurarimagen_eng.js @@ -1,12 +1,13 @@ //________________________________________________________________________________________________________ // // Fichero de idiomas javascripts: configurar_eng.js -// Idioma: Ings +// Idioma: Ing�s //________________________________________________________________________________________________________ TbMsg=new Array; TbMsg[0]="You must select at least an Image for partition "; TbMsg[1]="You can only select an Image for partition "; TbMsg[2]="WARNING: You have selected an Image from other operating system for current partition "; -TbMsg[3]=" Are you sure ?" +TbMsg[3]="Are you sure ?" TbMsg[4]="You must select at least a partition and an Image" TbMsg[5]="You must select at least a image path for partition "; +TbMsg[6]="You must choose only one image of the down" \ No newline at end of file diff --git a/admin/WebConsole/idiomas/javascripts/eng/consolaremota_eng.js b/admin/WebConsole/idiomas/javascripts/eng/consolaremota_eng.js index c80c8236..f693216a 100644 --- a/admin/WebConsole/idiomas/javascripts/eng/consolaremota_eng.js +++ b/admin/WebConsole/idiomas/javascripts/eng/consolaremota_eng.js @@ -1,8 +1,8 @@ //________________________________________________________________________________________________________ // -// Fichero de idiomas javascript: consolaremota_esp.js -// Idioma: Español +// Fichero de idiomas javascript: consolaremota_eng.js +// Idioma: English //________________________________________________________________________________________________________ TbMsg=new Array; -TbMsg[0]="ATENCIÓN.-Ha ocurrido algún error en la petición de consola remota"; -TbMsg[1]="La petición de consola remota se ha enviado con éxito"; +TbMsg[0]="Attention.-Has there been any error in the Remote Console application"; +TbMsg[1]="The Remote Console request was sent successfully"; diff --git a/admin/WebConsole/idiomas/javascripts/esp/comandos/comunescomandos_esp.js b/admin/WebConsole/idiomas/javascripts/esp/comandos/comunescomandos_esp.js index 0c7c5904..f9ef7ac9 100644 --- a/admin/WebConsole/idiomas/javascripts/esp/comandos/comunescomandos_esp.js +++ b/admin/WebConsole/idiomas/javascripts/esp/comandos/comunescomandos_esp.js @@ -12,3 +12,12 @@ CTbMsg[4]="El comando se ha registrado correctamente como un Procedimineto"; CTbMsg[5]="ATENCIÓN: Ha ocurrido un error al intentar registrar este Comando como una Tarea"; CTbMsg[6]="El comando se ha registrado correctamente como una Tarea"; CTbMsg[7]="ATENCIÓN: Ha ocurrido un error al intentar registrar la acción de Comando"; + +CTbMsg[8]="ATENCIÓN.- Debe elegir al menos un modo de ejecución "; +CTbMsg[9]="ATENCIÓN.- Debe elegir un modo de ejecución inmediata"; +CTbMsg[10]="ATENCIÓN.- Debe elegir un modo de inclusión en procedimiento de este comando "; +CTbMsg[11]="ATENCIÓN.- Debe especificar el nombre del nuevo procedimiento que se creará y al que se añadirá este comando "; +CTbMsg[12]="ATENCIÓN.- Debe elegir el procedimiento al que se añadirá este comando"; +CTbMsg[13]="ATENCIÓN.- Debe elegir un modo de inclusión en tarea ejecutable, de este comando"; +CTbMsg[14]="ATENCIÓN.- Debe especificar el nombre de la nueva tarea ejecutable que se creará y a la que se añadirá este comando"; +CTbMsg[15]="ATENCIÓN.- Debe elegir la tarea a la que se añadirá este comando "; diff --git a/admin/WebConsole/idiomas/php/cat/acceso_cat.php b/admin/WebConsole/idiomas/php/cat/acceso_cat.php new file mode 100644 index 00000000..1f3b3094 --- /dev/null +++ b/admin/WebConsole/idiomas/php/cat/acceso_cat.php @@ -0,0 +1,34 @@ + + diff --git a/admin/WebConsole/idiomas/php/cat/aulas_cat.php b/admin/WebConsole/idiomas/php/cat/aulas_cat.php index 73e1e157..00e15d1e 100644 --- a/admin/WebConsole/idiomas/php/cat/aulas_cat.php +++ b/admin/WebConsole/idiomas/php/cat/aulas_cat.php @@ -2,7 +2,7 @@ //________________________________________________________________________________________________________ // // Fitxer d'idiomes php: aules_cat.php -// Idioma: Catal +// Idioma: Catal� //________________________________________________________________________________________________________ $TbMsg=array(); $TbMsg[0]='"Nou grup d\'aules"'; @@ -15,7 +15,7 @@ $TbMsg[7]='"Eliminar grup d\'aules"'; $TbMsg[8]='"Nou grup d\'ordinadors"'; $TbMsg[9]='"Afegir nou ordinador"'; - $TbMsg[10]='"Configuraci"'; + $TbMsg[10]='"Configuraci�"'; $TbMsg[11]='"Col.locar ordinador"'; $TbMsg[12]='"Ordinador Plantilla"'; $TbMsg[13]='"Propietats"'; @@ -29,18 +29,30 @@ $TbMsg[21]='"Totes"'; $TbMsg[22]='Estatus ordinadors'; $TbMsg[23]='Aula d\'ordinadors'; - $TbMsg[24]='mbit: Centres'; - $TbMsg[25]='mbit: Grup d\'aules'; - $TbMsg[26]='mbito: Grup d\'ordinadors'; - $TbMsg[27]='"Incorporar ordinadores"'; + $TbMsg[24]='�mbit: Centres'; + $TbMsg[25]='�mbit: Grup d\'aules'; + $TbMsg[26]='�mbito: Grup d\'ordinadors'; + $TbMsg[27]='"Incorporar ordinadors"'; $TbMsg[28]='"Procedimentss"'; $TbMsg[29]='"Reserves d\'aules"'; - $TbMsg[30]='"Confirmadas"'; + $TbMsg[30]='"Confirmades"'; $TbMsg[31]='"Pendents"'; $TbMsg[32]='"Denegades"'; $TbMsg[33]='"Commutar"'; - $TbMsg[34]='"Programaci reserves"'; + $TbMsg[34]='"Programaci� reserves"'; $TbMsg[35]='"Operadors"'; $TbMsg[36]='"Eliminar Operador"'; $TbMsg[37]='"Afegir nou Operador"'; -?> \ No newline at end of file + $TbMsg[38]='"Assistents"'; + $TbMsg[39]='"Eco de consola"'; + $TbMsg[40]='"NetBoot avan�at"'; + $TbMsg[41]='"Reubicar ordinadors"'; + $TbMsg[42]='Gesti� Arrancada Avan�at'; + $TbMsg[43]='"Guardar"'; + $TbMsg[44]='Ubicador Ordenadores'; + $TbMsg[45]='Nombre ámbito'; + $TbMsg[46]='Identificador ámbito'; + $TbMsg[47]='"Log historico"'; + $TbMsg[48]='"Log en tiempo real"'; +?> + diff --git a/admin/WebConsole/idiomas/php/cat/barramenu_cat.php b/admin/WebConsole/idiomas/php/cat/barramenu_cat.php index 74d103d5..87167bca 100644 --- a/admin/WebConsole/idiomas/php/cat/barramenu_cat.php +++ b/admin/WebConsole/idiomas/php/cat/barramenu_cat.php @@ -2,17 +2,22 @@ //________________________________________________________________________________________________________ // // Fitxer d'idiomes php: barramenu_cat.php -// Idioma: Catal +// Idioma: Català //________________________________________________________________________________________________________ $TbMsg=array(); $TbMsg[0]='Aules'; $TbMsg[1]='Accions'; - $TbMsg[2]='Imtges'; + $TbMsg[2]='Imátges'; $TbMsg[3]='Hardware'; $TbMsg[4]='Software'; $TbMsg[5]='Servidors'; - $TbMsg[6]='Mens'; + $TbMsg[6]='Menús'; $TbMsg[7]='Reserves'; - $TbMsg[8]='Administraci'; + $TbMsg[8]='Administració'; $TbMsg[9]='Iconos'; -?> \ No newline at end of file + $TbMsg[10]='Sortida'; + $TbMsg[11]='Ajuda'; + $TbMsg[12]='Administradors'; + $TbMsg[14]='Cercar'; +?> + diff --git a/admin/WebConsole/idiomas/php/cat/buscar_cat.php b/admin/WebConsole/idiomas/php/cat/buscar_cat.php new file mode 100644 index 00000000..63436a60 --- /dev/null +++ b/admin/WebConsole/idiomas/php/cat/buscar_cat.php @@ -0,0 +1,19 @@ + + diff --git a/admin/WebConsole/idiomas/php/cat/comandos/mensajes_cat.php b/admin/WebConsole/idiomas/php/cat/comandos/mensajes_cat.php new file mode 100644 index 00000000..ae41ac2d --- /dev/null +++ b/admin/WebConsole/idiomas/php/cat/comandos/mensajes_cat.php @@ -0,0 +1,22 @@ + + diff --git a/admin/WebConsole/idiomas/php/cat/comandos/opcionesacciones_cat.php b/admin/WebConsole/idiomas/php/cat/comandos/opcionesacciones_cat.php new file mode 100644 index 00000000..a25d6c18 --- /dev/null +++ b/admin/WebConsole/idiomas/php/cat/comandos/opcionesacciones_cat.php @@ -0,0 +1,21 @@ + \ No newline at end of file diff --git a/admin/WebConsole/idiomas/php/cat/hardwares_cat.php b/admin/WebConsole/idiomas/php/cat/hardwares_cat.php index 2395dea3..62fabd65 100644 --- a/admin/WebConsole/idiomas/php/cat/hardwares_cat.php +++ b/admin/WebConsole/idiomas/php/cat/hardwares_cat.php @@ -5,9 +5,9 @@ // Idioma: Catal //________________________________________________________________________________________________________ $TbMsg=array(); - $TbMsg[0]='"Definir nou tipus hardware"'; + $TbMsg[0]='"Definir nou tipus de hardware"'; $TbMsg[1]='"Propietats"'; - $TbMsg[2]='"Eliminar tipus de hardware"'; + $TbMsg[2]='"Eliminar tipus de hardware"'; $TbMsg[3]='"Nou grup de components"'; $TbMsg[4]='"Definir nou component"'; $TbMsg[5]='"Col.locar component"'; @@ -24,7 +24,7 @@ $TbMsg[16]='"Moure perfil"'; $TbMsg[17]='"Eliminar perfil hardware"'; $TbMsg[18]='"Tipus de hardware"'; - $TbMsg[19]='"Components hardwares"'; - $TbMsg[20]='"Perfils hardwares"'; + $TbMsg[19]='"Components hardware"'; + $TbMsg[20]='"Perfils hardware"'; +?> -?> \ No newline at end of file diff --git a/admin/WebConsole/idiomas/php/cat/informacion_repositorio_cat.php b/admin/WebConsole/idiomas/php/cat/informacion_repositorio_cat.php index cd74df5f..a05dca48 100644 --- a/admin/WebConsole/idiomas/php/cat/informacion_repositorio_cat.php +++ b/admin/WebConsole/idiomas/php/cat/informacion_repositorio_cat.php @@ -6,10 +6,11 @@ //________________________________________________________________________________________________________ $TbMsg=array(); $TbMsg[0]='Repositorios'; - $TbMsg[1]='Information sobre Repositorios'; + $TbMsg[1]='Información sobre Repositorios'; $TbMsg[2]='Repositorio'; $TbMsg[3]='Información Repositorio'; $TbMsg[4]='Comentarios'; $TbMsg[5]='Imágenes alojadas'; $TbMsg[6]='Ordenadores asigandos'; ?> + diff --git a/admin/WebConsole/idiomas/php/cat/propiedades_ordenadores_cat.php b/admin/WebConsole/idiomas/php/cat/propiedades_ordenadores_cat.php index e4faad18..26218f8c 100644 --- a/admin/WebConsole/idiomas/php/cat/propiedades_ordenadores_cat.php +++ b/admin/WebConsole/idiomas/php/cat/propiedades_ordenadores_cat.php @@ -14,8 +14,10 @@ $TbMsg[5]="Nom"; $TbMsg[6]="Direcci IP"; $TbMsg[7]="Direcci MAC"; $TbMsg[8]="Perfil Hardware"; -$TbMsg[9]="Servidor Dhcp"; -$TbMsg[10]="Servidor Rembo "; +$TbMsg[9]="Autoexec"; +$TbMsg[10]="Repositori"; $TbMsg[11]="Menu"; $TbMsg[12]="Tamany Cach"; +$TbMsg[13]="Interfice de Xarxa"; +$TbMsg[14]="Driver de Xarxa"; ?> diff --git a/admin/WebConsole/idiomas/php/cat/propiedades_tareas_cat.php b/admin/WebConsole/idiomas/php/cat/propiedades_tareas_cat.php index a4a1de56..98f47efd 100644 --- a/admin/WebConsole/idiomas/php/cat/propiedades_tareas_cat.php +++ b/admin/WebConsole/idiomas/php/cat/propiedades_tareas_cat.php @@ -1,7 +1,7 @@ \ No newline at end of file +$TbMsg[7]="Tipo mbito"; +$TbMsg[8]="mbito de aplicacin"; +$TbMsg[9]=""; +$TbMsg[10]="Centros"; +$TbMsg[11]="Grupos de Aulas"; +$TbMsg[12]="Aulas"; +$TbMsg[13]="Grupos de Ordenadores"; +$TbMsg[14]="Ordenadores"; +?> diff --git a/admin/WebConsole/idiomas/php/eng/acceso_eng.php b/admin/WebConsole/idiomas/php/eng/acceso_eng.php new file mode 100644 index 00000000..bcb2a2b3 --- /dev/null +++ b/admin/WebConsole/idiomas/php/eng/acceso_eng.php @@ -0,0 +1,34 @@ + + diff --git a/admin/WebConsole/idiomas/php/eng/acciones_eng.php b/admin/WebConsole/idiomas/php/eng/acciones_eng.php index 92a72113..c2ea5689 100644 --- a/admin/WebConsole/idiomas/php/eng/acciones_eng.php +++ b/admin/WebConsole/idiomas/php/eng/acciones_eng.php @@ -2,40 +2,41 @@ //________________________________________________________________________________________________________ // // Fichero de idiomas php: acciones_eng.php -// Idioma: Ings +// Idioma: English //________________________________________________________________________________________________________ $TbMsg=array(); - $TbMsg[0]='"New procedures group"'; + $TbMsg[0]='"New group of procedures"'; $TbMsg[1]='"Define new procedure"'; $TbMsg[2]='"To put procedure"'; $TbMsg[3]='"Rename"'; - $TbMsg[4]='"Remove procedure group"'; + $TbMsg[4]='"Remove group of procedures"'; $TbMsg[5]='"Commands management"'; $TbMsg[6]='"Procedure information"'; $TbMsg[7]='"To move procedure"'; $TbMsg[8]='"Properties"'; $TbMsg[9]='"Remove Procedure"'; $TbMsg[10]='"Menus management"'; - $TbMsg[11]='"New tasks group"'; + $TbMsg[11]='"New group of tasks"'; $TbMsg[12]='"Define new task"'; $TbMsg[13]='"To put task"'; - $TbMsg[14]='"Remove task group"'; + $TbMsg[14]='"Remove group of tasks"'; $TbMsg[15]='"Perform task"'; $TbMsg[16]='"Schedules"'; $TbMsg[17]='"Task information"'; $TbMsg[18]='"To move task"'; $TbMsg[19]='"Remove task"'; - $TbMsg[20]='"New jobs group"'; + $TbMsg[20]='"New group of jobs"'; $TbMsg[21]='"Define new job"'; $TbMsg[22]='"To put job"'; - $TbMsg[23]='"Remove jobs group"'; - $TbMsg[24]='"Perform job"'; + $TbMsg[23]='"Remove group of jobs"'; + $TbMsg[24]='"Perform job"'; $TbMsg[25]='"Tasks management"'; $TbMsg[26]='"Job information"'; $TbMsg[27]='"To move job"'; $TbMsg[28]='"Remove job"'; $TbMsg[29]='Procedures'; $TbMsg[30]='Commands'; - $TbMsg[31]='Task'; + $TbMsg[31]='Tasks'; $TbMsg[32]='Jobs'; -?> \ No newline at end of file + $TbMsg[33]='Actions'; +?> diff --git a/admin/WebConsole/idiomas/php/eng/administracion_eng.php b/admin/WebConsole/idiomas/php/eng/administracion_eng.php index 023af70c..dcd15ade 100644 --- a/admin/WebConsole/idiomas/php/eng/administracion_eng.php +++ b/admin/WebConsole/idiomas/php/eng/administracion_eng.php @@ -2,18 +2,22 @@ //________________________________________________________________________________________________________ // // Fichero de idiomas php: administracion_eng.php -// Idioma: Ings +// Idioma: Ingles //________________________________________________________________________________________________________ $TbMsg=array(); - $TbMsg[0]='"Administracin"'; - $TbMsg[1]='"New entity group"'; - $TbMsg[2]='"New entity entidad"'; + $TbMsg[0]='"Administration"'; + $TbMsg[1]='"New Entity Group"'; + $TbMsg[2]='"New Entity"'; $TbMsg[3]='"New Superadministrator"'; $TbMsg[4]='"Properties"'; $TbMsg[5]='"Remove"'; $TbMsg[6]='"Rename"'; - $TbMsg[7]='"Remove Entity group"'; - $TbMsg[8]='"New organizing unit"'; + $TbMsg[7]='"Remove Entity Group"'; + $TbMsg[8]='"New Organizing Unit"'; $TbMsg[9]='"New Administrator"'; + $TbMsg[10]='"Environment Variables"'; + $TbMsg[11]='"Users"'; + $TbMsg[12]='"Assing Administrator"'; + $TbMsg[13]='"Assign Organizational Units"'; ?> \ No newline at end of file diff --git a/admin/WebConsole/idiomas/php/eng/administradores_centros_eng.php b/admin/WebConsole/idiomas/php/eng/administradores_centros_eng.php index c3fa398a..ac202f0f 100644 --- a/admin/WebConsole/idiomas/php/eng/administradores_centros_eng.php +++ b/admin/WebConsole/idiomas/php/eng/administradores_centros_eng.php @@ -1,14 +1,14 @@ diff --git a/admin/WebConsole/idiomas/php/eng/administradores_usuarios_eng.php b/admin/WebConsole/idiomas/php/eng/administradores_usuarios_eng.php index 56bb1caa..8c5de145 100644 --- a/admin/WebConsole/idiomas/php/eng/administradores_usuarios_eng.php +++ b/admin/WebConsole/idiomas/php/eng/administradores_usuarios_eng.php @@ -1,14 +1,14 @@ diff --git a/admin/WebConsole/idiomas/php/eng/aulas_eng.php b/admin/WebConsole/idiomas/php/eng/aulas_eng.php index a4aeb2f5..6f27779c 100644 --- a/admin/WebConsole/idiomas/php/eng/aulas_eng.php +++ b/admin/WebConsole/idiomas/php/eng/aulas_eng.php @@ -2,7 +2,7 @@ //________________________________________________________________________________________________________ // // Fichero de idiomas php: aulas_eng.php -// Idioma: Ings +// Idioma: English //________________________________________________________________________________________________________ $TbMsg=array(); $TbMsg[0]='"New labs group"'; @@ -29,19 +29,31 @@ $TbMsg[21]='"All actions"'; $TbMsg[22]='Computers Status'; $TbMsg[23]='Lab Computer'; - $TbMsg[24]='Environment: Centers'; - $TbMsg[25]='Environment: Group of labs'; - $TbMsg[26]='Environment: Group of computers'; + $TbMsg[24]='Scope: Centers'; + $TbMsg[25]='Scope: Group of labs'; + $TbMsg[26]='Scope: Group of computers'; $TbMsg[27]='"Incorpore computers"'; $TbMsg[28]='"Procedures"'; $TbMsg[29]='"Labs Reserves"'; - $TbMsg[30]='"Confirmeds"'; - $TbMsg[31]='"Refuses"'; - $TbMsg[32]='"Pendings"'; - $TbMsg[33]='"Swtiching"'; + $TbMsg[30]='"Confirmed"'; + $TbMsg[31]='"Pending"'; + $TbMsg[32]='"Denied"'; + $TbMsg[33]='"Remote console"'; $TbMsg[34]='"Reserve schedules"'; $TbMsg[35]='"Operators"'; $TbMsg[36]='"Remove operator"'; $TbMsg[37]='"Add a new operator"'; + $TbMsg[38]='"Wizards"'; + $TbMsg[39]='"Console echo"'; + $TbMsg[40]='"Advanced NetBoot"'; + $TbMsg[41]='"Relocate computers"'; + $TbMsg[42]='Advanced Boot Management'; + $TbMsg[43]='"Save"'; + $TbMsg[44]='Computers locator'; + $TbMsg[45]='Scope name'; + $TbMsg[46]='Scope id'; + $TbMsg[47]='"Historical log"'; + $TbMsg[48]='"Real time log"'; + +?> -?> \ No newline at end of file diff --git a/admin/WebConsole/idiomas/php/eng/barramenu_eng.php b/admin/WebConsole/idiomas/php/eng/barramenu_eng.php index d5d44eaf..aa4d10b3 100644 --- a/admin/WebConsole/idiomas/php/eng/barramenu_eng.php +++ b/admin/WebConsole/idiomas/php/eng/barramenu_eng.php @@ -15,4 +15,9 @@ $TbMsg[7]='Reserves'; $TbMsg[8]='Administration'; $TbMsg[9]='Icons'; -?> \ No newline at end of file + $TbMsg[10]='Exit'; + $TbMsg[11]='Help'; + $TbMsg[12]='Administrators'; + $TbMsg[14]='Search'; +?> + diff --git a/admin/WebConsole/idiomas/php/eng/buscar_eng.php b/admin/WebConsole/idiomas/php/eng/buscar_eng.php new file mode 100644 index 00000000..f187a66b --- /dev/null +++ b/admin/WebConsole/idiomas/php/eng/buscar_eng.php @@ -0,0 +1,19 @@ + + diff --git a/admin/WebConsole/idiomas/php/eng/colasacciones_eng.php b/admin/WebConsole/idiomas/php/eng/colasacciones_eng.php index af5c7aa2..9683c242 100644 --- a/admin/WebConsole/idiomas/php/eng/colasacciones_eng.php +++ b/admin/WebConsole/idiomas/php/eng/colasacciones_eng.php @@ -9,10 +9,11 @@ $LITEJECUCION_COMANDO="Commands"; $LITEJECUCION_PROCEDIMIENTO="Procedures"; $LITEJECUCION_TAREA="Tasks"; -$LITEJECUCION_TRABAJO="Jobs"; +//$LITEJECUCION_TRABAJO="Jobs"; $LITACCION_EXITOSA='Finished successfully'; // Literal Finalizada con exito $LITACCION_FALLIDA='Finished with errors'; // Literal Finalizada con errores +//$LITACCION_SINRESULTADO='Without final result' $LITACCION_TERMINADA='Finished manualy'; //Literal Finalizada manualmente con indicacion de exito $LITACCION_ABORTADA='Canceled manualy'; // Literal Finalizada manualmente con indicacion de errores $LITACCION_SINERRORES='Active without errors'; // Literal Activa y sin ningn error @@ -21,10 +22,11 @@ $LITACCION_CONERRORES='Active with errors'; // Literal Activa y con alg $LITACCION_DETENIDA='Stopped'; // Literal accin momentanemente parada $LITACCION_INICIADA='Active'; // Literal accin activa $LITACCION_FINALIZADA='Finished'; // Literal accin finalizada +$LITACCION_PROGRAMADA="Scheduled"; $TbMsg=array(); $TbMsg[0]='Actions queue'; - $TbMsg[1]='Searches filters'; + $TbMsg[1]='Search filters'; $TbMsg[2]='Actions'; $TbMsg[3]='Results'; $TbMsg[4]='Status'; @@ -34,7 +36,7 @@ $TbMsg=array(); $TbMsg[8]='Finish date'; $TbMsg[9]='Start our'; $TbMsg[10]='Finish our'; - $TbMsg[11]='Environment'; + $TbMsg[11]='Scope'; $TbMsg[12]='Remove'; $TbMsg[13]='Reinitialize'; $TbMsg[14]='Stop'; @@ -44,9 +46,9 @@ $TbMsg=array(); $TbMsg[18]='Action'; $TbMsg[19]='Finish date'; - $TbMsg[20]='Finish our'; + $TbMsg[20]='Finish hour'; $TbMsg[21]='Start date'; - $TbMsg[22]='Start our'; + $TbMsg[22]='Start hour'; $TbMsg[23]='Name'; $TbMsg[24]='Centers'; @@ -65,15 +67,19 @@ $TbMsg=array(); $TbMsg[44]='"Modify Accin"'; $TbMsg[45]='"Reinitialize"'; $TbMsg[46]='"Remove"'; - $TbMsg[47]='"Parent Task"'; - $TbMsg[48]='"Parent Job"'; - $TbMsg[49]='"See commands"'; - $TbMsg[50]='"See task"'; + $TbMsg[47]='Parent Task'; + $TbMsg[48]='Parent Job'; + $TbMsg[49]='See commands'; + $TbMsg[50]='See task'; $TbMsg[51]='"Stop"'; $TbMsg[52]='"Go"'; $TbMsg[53]='"Cancel"'; $TbMsg[54]='"Finish"'; - $TbMsg[55]='"Finish without errors"'; - $TbMsg[56]='"Finish with errors"'; + $TbMsg[55]='Finish without errors'; + $TbMsg[56]='Finish with errors'; $TbMsg[57]='Information'; -?> \ No newline at end of file + $TbMsg[58]='Final result:'; + $TbMsg[59]='Scope'; + $TbMsg[60]='All'; + $TbMsg[61]='All'; +?> diff --git a/admin/WebConsole/idiomas/php/eng/comandos/crearimagen_eng.php b/admin/WebConsole/idiomas/php/eng/comandos/crearimagen_eng.php new file mode 100644 index 00000000..14d79b44 --- /dev/null +++ b/admin/WebConsole/idiomas/php/eng/comandos/crearimagen_eng.php @@ -0,0 +1,24 @@ + diff --git a/admin/WebConsole/idiomas/php/eng/comandos/ejecutarscripts_eng.php b/admin/WebConsole/idiomas/php/eng/comandos/ejecutarscripts_eng.php index 454c9a7c..06aee25e 100644 --- a/admin/WebConsole/idiomas/php/eng/comandos/ejecutarscripts_eng.php +++ b/admin/WebConsole/idiomas/php/eng/comandos/ejecutarscripts_eng.php @@ -14,6 +14,41 @@ $TbMsg[6]='Environment'; $TbMsg[7]='Title'; $TbMsg[8]='Description'; - $TbMsg[9]='Rembo-C code'; + $TbMsg[9]='Opengnsys code'; $TbMsg[10]='Code file'; -?> \ No newline at end of file + + + $TbMsg["WDI11"]='Wizard Deploy Image'; + $TbMsg["WDI12"]='Generate OG Code'; + + $TbMsg["WDI13"]='Choose whether you just want to store the image on the Cache - UpdateCache'; + $TbMsg["WDI14"]='deployImage (update+restore)'; + $TbMsg["WDI15"]='updateCache (only download)'; + + $TbMsg["WDI16"]='basic options'; + $TbMsg["WDI17"]='opciones multicast options'; + $TbMsg["WDI18"]='torrent options'; + $TbMsg["WDI19"]='unicast options'; + $TbMsg["WDI20"]='Select the partition where the restore disk image:'; + $TbMsg["WDI20"]='Select the disk partition where to restore the image:'; + $TbMsg["WDI21"]='Select the image to distribute:'; + $TbMsg["WDI22"]='--Select image --'; + $TbMsg["WDI23"]='Select the transfer mode '; + $TbMsg["WDI24"]='port : '; + $TbMsg["WDI25"]='Mcast address : '; + $TbMsg["WDI26"]='mode : '; + $TbMsg["WDI27"]='speed : '; + $TbMsg["WDI28"]='Max. client number'; + $TbMsg["WDI29"]='Max. waiting time (sec)'; + + $TbMsg["WDI30"]='Seed time'; + + + $TbMsg["WCRP31"]='Wizard to Clone Remote Partitions'; + $TbMsg["WCRP32"]='Select MASTER PC:'; + $TbMsg["WCRP33"]='Select the image or partition to send from Master PC'; + $TbMsg["WCRP34"]='Select the destine partition in the clients'; + $TbMsg["WCRP35"]='Select the transfer mode'; + $TbMsg["WCRP36"]='Select cloning tool'; + $TbMsg["WCRP37"]='Select compressor for cloning tool:'; +?> diff --git a/admin/WebConsole/idiomas/php/eng/comandos/iniciarsesion_eng.php b/admin/WebConsole/idiomas/php/eng/comandos/iniciarsesion_eng.php new file mode 100644 index 00000000..e2b3ede7 --- /dev/null +++ b/admin/WebConsole/idiomas/php/eng/comandos/iniciarsesion_eng.php @@ -0,0 +1,19 @@ + diff --git a/admin/WebConsole/idiomas/php/eng/comandos/mensajes_eng.php b/admin/WebConsole/idiomas/php/eng/comandos/mensajes_eng.php new file mode 100644 index 00000000..f50593e5 --- /dev/null +++ b/admin/WebConsole/idiomas/php/eng/comandos/mensajes_eng.php @@ -0,0 +1,22 @@ + + diff --git a/admin/WebConsole/idiomas/php/eng/comandos/opcionesacciones_eng.php b/admin/WebConsole/idiomas/php/eng/comandos/opcionesacciones_eng.php new file mode 100644 index 00000000..ecf72642 --- /dev/null +++ b/admin/WebConsole/idiomas/php/eng/comandos/opcionesacciones_eng.php @@ -0,0 +1,21 @@ + \ No newline at end of file diff --git a/admin/WebConsole/idiomas/php/eng/comandos/restaurarimagen_eng.php b/admin/WebConsole/idiomas/php/eng/comandos/restaurarimagen_eng.php index b7633d09..b7010381 100644 --- a/admin/WebConsole/idiomas/php/eng/comandos/restaurarimagen_eng.php +++ b/admin/WebConsole/idiomas/php/eng/comandos/restaurarimagen_eng.php @@ -2,7 +2,7 @@ //________________________________________________________________________________________________________ // // Fichero de idiomas php: restaurarimagen_eng.php (Comandos) -// Idioma: Ings +// Idioma: English //________________________________________________________________________________________________________ $TbMsg=array(); $TbMsg[0]='Centers'; @@ -11,11 +11,37 @@ $TbMsg[3]='Group of computers'; $TbMsg[4]='Computers'; $TbMsg[5]='Restore Image'; - $TbMsg[6]='Environment'; + $TbMsg[6]='Scope'; $TbMsg[7]='Data to provide'; - $TbMsg[8]='System name'; - $TbMsg[9]='Image to restore'; + $TbMsg[8]='Partition'; + $TbMsg[9]='Protocol'; $TbMsg[10]='Restore (Same partition type)'; - $TbMsg[11]='Restore (Others partition type)'; + $TbMsg[11]='Restore (Other partition type)'; + $TbMsg[12]='Unknown'; + $TbMsg[13]=''; + $TbMsg[14]='Scope'; + $TbMsg[15]='Computers'; + $TbMsg[16]=''; + $TbMsg[17]=''; + $TbMsg[18]="UNGROUP COMPUTERS ACCORDING TO DIFFERENT VALUES OF:"; + $TbMsg[19]="Providing data"; + // Cabeceras de tabla de configuración + $TbMsg[20]='Partition'; + $TbMsg[21]='Installed O.S.'; + $TbMsg[22]='Size'; + $TbMsg[23]='Configuration data'; + $TbMsg[24]='Type'; + $TbMsg[25]='Image'; + $TbMsg[26]='Software profile'; + $TbMsg[27]='Filesystem'; + $TbMsg[28]='None'; + $TbMsg[29]='Unknown'; + // Desagrupamiento + $TbMsg[30]='FileSystem'; + $TbMsg[31]='O.S. type'; + $TbMsg[32]='Partition Size'; + $TbMsg[33]='Name of image'; + $TbMsg[34]='Software Profile'; -?> \ No newline at end of file +?> + diff --git a/admin/WebConsole/idiomas/php/eng/configuraciones_eng.php b/admin/WebConsole/idiomas/php/eng/configuraciones_eng.php index 2238666f..34120d7f 100644 --- a/admin/WebConsole/idiomas/php/eng/configuraciones_eng.php +++ b/admin/WebConsole/idiomas/php/eng/configuraciones_eng.php @@ -1,33 +1,33 @@ diff --git a/admin/WebConsole/idiomas/php/eng/consolaremota_eng.php b/admin/WebConsole/idiomas/php/eng/consolaremota_eng.php index 0210a511..022747d0 100644 --- a/admin/WebConsole/idiomas/php/eng/consolaremota_eng.php +++ b/admin/WebConsole/idiomas/php/eng/consolaremota_eng.php @@ -1,24 +1,24 @@ Para visulizar el eco de cualquier cliente pulse sobre él con el botón secundario y elija "Eco de consola";
Se abrirá una ventana que se referescará automáticamente donde podrá hacer un seguiento del comando/script introducido'; - $TbMsg[14]='...Espere por favor, se está enviando el código del script'; - $TbMsg[15]='...El código del script se ha enviado, para ver la salida de cualquier ordenador elija "Eco de Consola"'; + $TbMsg[0]='Centers'; + $TbMsg[1]='Classrooms group'; + $TbMsg[2]='Classrooms'; + $TbMsg[3]='Computer group'; + $TbMsg[4]='Computers'; + $TbMsg[5]='Turn off computers'; + $TbMsg[6]='Environment'; + $TbMsg[7]='Remote console'; + $TbMsg[8]='WARNING: To execute a command, type the syntax in the textarea and press enter'; + $TbMsg[9]='The remote console request is send to this environment, you can write command into textarea to receive the echo in the output window'; + $TbMsg[10]='WARNING: There is something wrong with the remote console request to this environment'; + $TbMsg[11]='Script code'; + $TbMsg[12]='Remote echo '; + $TbMsg[13]='WARNING: You select a remote console environment distinct of "computer".
To view the client echo, press over pc with right boton and select "Console echo".
This opens a window that automatically refreshes where you can track the command / script entered.'; + $TbMsg[14]="...Wait, please. It's sending the script code"; + $TbMsg[15]='...It has sent the script code. To view the client echo, press over pc with right boton and select "Console echo".'; ?> diff --git a/admin/WebConsole/idiomas/php/eng/ejecutaracciones_eng.php b/admin/WebConsole/idiomas/php/eng/ejecutaracciones_eng.php index 54109068..ff3c9b7f 100644 --- a/admin/WebConsole/idiomas/php/eng/ejecutaracciones_eng.php +++ b/admin/WebConsole/idiomas/php/eng/ejecutaracciones_eng.php @@ -1,19 +1,20 @@ + $TbMsg[0]='Centers'; + $TbMsg[1]='Group of labs'; + $TbMsg[2]='Lab'; + $TbMsg[3]='Group of computers'; + $TbMsg[4]='Computers'; + $TbMsg[5]='Implementation of procedures'; + $TbMsg[6]='Scope'; + $TbMsg[7]='Procedures'; + $TbMsg[8]='Procedures'; + $TbMsg[9]='"Execute procedures"'; + $TbMsg[10]='"Include as autoexec"'; +?> + diff --git a/admin/WebConsole/idiomas/php/eng/hardwares_eng.php b/admin/WebConsole/idiomas/php/eng/hardwares_eng.php index 826e00d3..eba4f609 100644 --- a/admin/WebConsole/idiomas/php/eng/hardwares_eng.php +++ b/admin/WebConsole/idiomas/php/eng/hardwares_eng.php @@ -2,28 +2,29 @@ //________________________________________________________________________________________________________ // // Fichero de idiomas php: hardwares_eng.php -// Idioma: Ings +// Idioma: English //________________________________________________________________________________________________________ $TbMsg=array(); $TbMsg[0]='"Define new hardware type"'; $TbMsg[1]='"Properties"'; $TbMsg[2]='"Remove hardware type"'; - $TbMsg[3]='"New components group"'; + $TbMsg[3]='"New group of components"'; $TbMsg[4]='"Define new component"'; $TbMsg[5]='"To put component"'; $TbMsg[6]='"Rename"'; - $TbMsg[7]='"Remove components group"'; + $TbMsg[7]='"Remove group of components"'; $TbMsg[8]='"Move component"'; $TbMsg[9]='"Remove component"'; - $TbMsg[10]='"New profiles group"'; + $TbMsg[10]='"New group of profiles"'; $TbMsg[11]='"Define new profile"'; $TbMsg[12]='"To put profile"'; - $TbMsg[13]='"Remove profiles group"'; + $TbMsg[13]='"Remove group of profiles"'; $TbMsg[14]='"Components management"'; - $TbMsg[15]='"Perfil information"'; + $TbMsg[15]='"Profile information"'; $TbMsg[16]='"To move profile"'; $TbMsg[17]='"Remove profile"'; - $TbMsg[18]='"Hardwares types"'; - $TbMsg[19]='"Hardwares components"'; - $TbMsg[20]='"Hardwares profiles"'; -?> \ No newline at end of file + $TbMsg[18]='"Hardware types"'; + $TbMsg[19]='"Hardware components"'; + $TbMsg[20]='"Hardware profiles"'; +?> + diff --git a/admin/WebConsole/idiomas/php/eng/imagenes_eng.php b/admin/WebConsole/idiomas/php/eng/imagenes_eng.php index 015be0ba..a3211bdc 100644 --- a/admin/WebConsole/idiomas/php/eng/imagenes_eng.php +++ b/admin/WebConsole/idiomas/php/eng/imagenes_eng.php @@ -2,14 +2,14 @@ //________________________________________________________________________________________________________ // // Fichero de idiomas php: imagenes_eng.php -// Idioma: Ings +// Idioma: English //________________________________________________________________________________________________________ $TbMsg=array(); - $TbMsg[0]='"New images group"'; + $TbMsg[0]='"New group of images"'; $TbMsg[1]='"Define new image"'; $TbMsg[2]='"To put image"'; $TbMsg[3]='"Rename"'; - $TbMsg[4]='"Remove images group"'; + $TbMsg[4]='"Remove group of images"'; $TbMsg[5]='"Image information"'; $TbMsg[6]='"To move image"'; $TbMsg[7]='"Properties"'; diff --git a/admin/WebConsole/idiomas/php/eng/informacion_imagenes_eng.php b/admin/WebConsole/idiomas/php/eng/informacion_imagenes_eng.php index f83b4715..e0c6063e 100644 --- a/admin/WebConsole/idiomas/php/eng/informacion_imagenes_eng.php +++ b/admin/WebConsole/idiomas/php/eng/informacion_imagenes_eng.php @@ -2,17 +2,18 @@ //________________________________________________________________________________________________________ // // Fichero de idiomas php: informacion_imagenes_eng.php -// Idioma: Ings +// Idioma: Inglés //________________________________________________________________________________________________________ $TbMsg=array(); $TbMsg[0]='Images'; $TbMsg[1]='Information about images'; $TbMsg[2]='Image'; $TbMsg[3]='Images information'; - $TbMsg[4]='S software components'; + $TbMsg[4]='Software components'; $TbMsg[5]='Diferential software'; $TbMsg[6]='Software Profile'; $TbMsg[7]='Computers with this image'; $TbMsg[8]='Partition'; - $TbMsg[9]='Coments'; -?> \ No newline at end of file + $TbMsg[9]='Comments'; +?> + diff --git a/admin/WebConsole/idiomas/php/eng/informacion_menus_eng.php b/admin/WebConsole/idiomas/php/eng/informacion_menus_eng.php index 9b414a2f..4e680017 100644 --- a/admin/WebConsole/idiomas/php/eng/informacion_menus_eng.php +++ b/admin/WebConsole/idiomas/php/eng/informacion_menus_eng.php @@ -2,7 +2,7 @@ //________________________________________________________________________________________________________ // // Fichero de idiomas php: informacion_menus_eng.php -// Idioma: Ings +// Idioma: Inglés //________________________________________________________________________________________________________ $TbMsg=array(); $TbMsg[0]='Items of the Menus'; @@ -17,13 +17,16 @@ $TbMsg[9]='Coordinate x'; $TbMsg[10]='Coordinate y'; $TbMsg[11]='Modality'; - $TbMsg[12]='Privates Items Menu properties'; - $TbMsg[13]='Publics items'; - $TbMsg[14]='Privates items'; + $TbMsg[12]='Private Items Menu properties'; + $TbMsg[13]='Public items'; + $TbMsg[14]='Private items'; $TbMsg[15]='Item order'; $TbMsg[16]='Item literal'; $TbMsg[17]='Image name'; $TbMsg[18]='Simple menu'; $TbMsg[19]='Double menu'; $TbMsg[20]='Item key'; -?> \ No newline at end of file + $TbMsg[21]='Computers with this menu'; + $TbMsg[22]='Items'; +?> + diff --git a/admin/WebConsole/idiomas/php/eng/informacion_repositorio_eng.php b/admin/WebConsole/idiomas/php/eng/informacion_repositorio_eng.php index cd74df5f..04db56b7 100644 --- a/admin/WebConsole/idiomas/php/eng/informacion_repositorio_eng.php +++ b/admin/WebConsole/idiomas/php/eng/informacion_repositorio_eng.php @@ -1,15 +1,16 @@ + diff --git a/admin/WebConsole/idiomas/php/eng/propiedades_aulas_eng.php b/admin/WebConsole/idiomas/php/eng/propiedades_aulas_eng.php index 1a82032c..337da11f 100644 --- a/admin/WebConsole/idiomas/php/eng/propiedades_aulas_eng.php +++ b/admin/WebConsole/idiomas/php/eng/propiedades_aulas_eng.php @@ -2,7 +2,7 @@ //________________________________________________________________________________________________________ // // Fichero de idiomas php: propiedades_aulas_eng.php -// Idioma: Ing�s +// Idioma: Inglés //________________________________________________________________________________________________________ $TbMsg=array(); $TbMsg[0]="No Option"; @@ -10,12 +10,12 @@ $TbMsg[1]="Insert"; $TbMsg[2]="Modify"; $TbMsg[3]="Remove"; $TbMsg[4]="Labs Management"; -$TbMsg[5]="Lab Name"; -$TbMsg[6]="Ubication"; -$TbMsg[7]="Cagnon"; +$TbMsg[5]="Lab. name"; +$TbMsg[6]="Location"; +$TbMsg[7]="Projector"; $TbMsg[8]="Blackboard"; $TbMsg[9]="Places"; -$TbMsg[10]="Image Url"; +$TbMsg[10]="Image URL"; $TbMsg[11]="Menu"; $TbMsg[12]="Comments"; $TbMsg[13]="Intervals"; @@ -24,7 +24,7 @@ $TbMsg[15]="End reserves"; $TbMsg[16]="Repository"; $TbMsg[17]="Hardware profile"; $TbMsg[18]="Properties for all computers in this class"; -$TbMsg[19]="Cache Size (KB)"; +$TbMsg[19]="Cache size (KB)"; $TbMsg[20]="Autoexec"; $TbMsg[21]=""; $TbMsg[22]="Multicast mode"; @@ -36,4 +36,5 @@ $TbMsg[27]="P2P time -seeder time(s) after download-"; $TbMsg[28]="Gateway"; $TbMsg[29]="Netmask"; -?> \ No newline at end of file +?> + diff --git a/admin/WebConsole/idiomas/php/eng/propiedades_entornos_eng.php b/admin/WebConsole/idiomas/php/eng/propiedades_entornos_eng.php index dd7bbb53..65819325 100644 --- a/admin/WebConsole/idiomas/php/eng/propiedades_entornos_eng.php +++ b/admin/WebConsole/idiomas/php/eng/propiedades_entornos_eng.php @@ -5,14 +5,14 @@ // Idioma: Español //________________________________________________________________________________________________________ $TbMsg=array(); -$TbMsg[0]="Sin Opción"; -$TbMsg[1]="Insertar"; -$TbMsg[2]="Modificar"; -$TbMsg[3]="Eliminar"; -$TbMsg[4]="Gestión de Variables de Entorno"; -$TbMsg[5]="IP Servidor de administración"; -$TbMsg[6]="Puerto Servidor de administración"; -$TbMsg[7]="Método de clonación preferido"; +$TbMsg[0]="No Option"; +$TbMsg[1]="Insert"; +$TbMsg[2]="Modify"; +$TbMsg[3]="Remove"; +$TbMsg[4]="Environment Variables Management"; +$TbMsg[5]="OpenGnSys Server IP address"; +$TbMsg[6]="OpenGnSys Server port"; +$TbMsg[7]="Default clonation method"; $TbMsg[8]=""; $TbMsg[9]=""; $TbMsg[10]=""; diff --git a/admin/WebConsole/idiomas/php/eng/propiedades_imagenes_eng.php b/admin/WebConsole/idiomas/php/eng/propiedades_imagenes_eng.php index 830d6248..4bae91af 100644 --- a/admin/WebConsole/idiomas/php/eng/propiedades_imagenes_eng.php +++ b/admin/WebConsole/idiomas/php/eng/propiedades_imagenes_eng.php @@ -2,7 +2,7 @@ //________________________________________________________________________________________________________ // // Fichero de idiomas php: propiedades_imagenes_eng.php -// Idioma: Ings +// Idioma: Inglés //________________________________________________________________________________________________________ $TbMsg=array(); $TbMsg[0]="No Option"; @@ -13,4 +13,9 @@ $TbMsg[4]="Images Management"; $TbMsg[5]="Image Name"; $TbMsg[6]="Software Profile"; $TbMsg[7]="Comments"; -?> \ No newline at end of file +$TbMsg[8]="Partition"; +$TbMsg[9]="Partition Type"; +$TbMsg[10]="Repository"; +$TbMsg[11]="Canonical Name"; +?> + diff --git a/admin/WebConsole/idiomas/php/eng/propiedades_menus_eng.php b/admin/WebConsole/idiomas/php/eng/propiedades_menus_eng.php index 7193b389..81fec455 100644 --- a/admin/WebConsole/idiomas/php/eng/propiedades_menus_eng.php +++ b/admin/WebConsole/idiomas/php/eng/propiedades_menus_eng.php @@ -2,7 +2,7 @@ //________________________________________________________________________________________________________ // // Fichero de idiomas php: propiedades_menus_eng.php -// Idioma: Ings +// Idioma: Inglés //________________________________________________________________________________________________________ $TbMsg=array(); $TbMsg[0]="No Option"; @@ -13,14 +13,16 @@ $TbMsg[4]="Menus Management"; $TbMsg[5]="Menu name"; $TbMsg[6]="Title"; $TbMsg[7]="Comments"; -$TbMsg[8]="Publics Items Menu"; +$TbMsg[8]="Public Items Menu"; $TbMsg[9]="Coordinate x"; $TbMsg[10]="Coordinate y"; $TbMsg[11]="Modality"; -$TbMsg[12]="Privates Items Menu"; +$TbMsg[12]="Private Items Menu"; $TbMsg[13]="Simple menu"; $TbMsg[14]="Double menu"; $TbMsg[15]="Html public menu"; $TbMsg[16]="Html private menu"; $TbMsg[17]="Screen resolution"; -?> \ No newline at end of file +$TbMsg[18]="Background image"; +?> + diff --git a/admin/WebConsole/idiomas/php/eng/propiedades_ordenadores_eng.php b/admin/WebConsole/idiomas/php/eng/propiedades_ordenadores_eng.php index 32fb7ab4..00c76d42 100644 --- a/admin/WebConsole/idiomas/php/eng/propiedades_ordenadores_eng.php +++ b/admin/WebConsole/idiomas/php/eng/propiedades_ordenadores_eng.php @@ -11,12 +11,14 @@ $TbMsg[2]="Modify"; $TbMsg[3]="Remove"; $TbMsg[4]="Computers Management"; $TbMsg[5]="Computer name"; -$TbMsg[6]="IP Address"; -$TbMsg[7]="MAC Address"; +$TbMsg[6]="IP address"; +$TbMsg[7]="MAC address"; $TbMsg[8]="Hardware profile"; -$TbMsg[9]="Dhcp Server"; -$TbMsg[10]="OpenGnsys Server"; +$TbMsg[9]="Autoexec"; +$TbMsg[10]="Repository"; $TbMsg[11]="Menu"; $TbMsg[12]="Cache size"; +$TbMsg[13]="Network interface"; +$TbMsg[14]="Network driver"; ?> diff --git a/admin/WebConsole/idiomas/php/eng/propiedades_repositorios_eng.php b/admin/WebConsole/idiomas/php/eng/propiedades_repositorios_eng.php index 7c3223c4..4020f5ec 100644 --- a/admin/WebConsole/idiomas/php/eng/propiedades_repositorios_eng.php +++ b/admin/WebConsole/idiomas/php/eng/propiedades_repositorios_eng.php @@ -1,19 +1,19 @@ diff --git a/admin/WebConsole/idiomas/php/eng/propiedades_tareas_eng.php b/admin/WebConsole/idiomas/php/eng/propiedades_tareas_eng.php index fa5f105b..2880f66d 100644 --- a/admin/WebConsole/idiomas/php/eng/propiedades_tareas_eng.php +++ b/admin/WebConsole/idiomas/php/eng/propiedades_tareas_eng.php @@ -2,7 +2,7 @@ //________________________________________________________________________________________________________ // // Fichero de idiomas php: propiedades_tareas_eng.php -// Idioma: Ings +// Idioma: English //________________________________________________________________________________________________________ $TbMsg=array(); $TbMsg[0]="No Option"; @@ -12,4 +12,13 @@ $TbMsg[3]="Remove"; $TbMsg[4]="Task Management"; $TbMsg[5]="Task Name"; $TbMsg[6]="Comments"; -?> \ No newline at end of file +$TbMsg[7]="Scope Type"; +$TbMsg[8]="Scope"; +$TbMsg[9]=""; +$TbMsg[10]="Centers"; +$TbMsg[11]="Group of Labs"; +$TbMsg[12]="Labs"; +$TbMsg[13]="Group of Computes"; +$TbMsg[14]="Computer"; +?> + diff --git a/admin/WebConsole/idiomas/php/eng/propiedades_usuarios_eng.php b/admin/WebConsole/idiomas/php/eng/propiedades_usuarios_eng.php index dd6fb44f..f8d3bfeb 100644 --- a/admin/WebConsole/idiomas/php/eng/propiedades_usuarios_eng.php +++ b/admin/WebConsole/idiomas/php/eng/propiedades_usuarios_eng.php @@ -2,7 +2,7 @@ //________________________________________________________________________________________________________ // // Fichero de idiomas php: propiedades_ordenadores_eng.php -// Idioma: Ings +// Idioma: Inglés //________________________________________________________________________________________________________ $TbMsg=array(); $TbMsg[0]="No Option"; @@ -14,6 +14,10 @@ $TbMsg[5]="User"; $TbMsg[6]="Password"; $TbMsg[7]="Name"; $TbMsg[8]="E-mail"; -$TbMsg[9]="Organizing Unit"; +$TbMsg[9]="Organitative Unit"; $TbMsg[10]="Language "; +$TbMsg[11]="Super-Administrator"; +$TbMsg[12]="Administrator"; +$TbMsg[13]="Operator"; ?> + diff --git a/admin/WebConsole/idiomas/php/eng/repositorios_eng.php b/admin/WebConsole/idiomas/php/eng/repositorios_eng.php index 481b0c03..f5889ff1 100644 --- a/admin/WebConsole/idiomas/php/eng/repositorios_eng.php +++ b/admin/WebConsole/idiomas/php/eng/repositorios_eng.php @@ -1,24 +1,24 @@ diff --git a/admin/WebConsole/idiomas/php/eng/tiposhardwares_eng.php b/admin/WebConsole/idiomas/php/eng/tiposhardwares_eng.php new file mode 100644 index 00000000..294b9c07 --- /dev/null +++ b/admin/WebConsole/idiomas/php/eng/tiposhardwares_eng.php @@ -0,0 +1,24 @@ + + diff --git a/admin/WebConsole/idiomas/php/esp/acceso_esp.php b/admin/WebConsole/idiomas/php/esp/acceso_esp.php new file mode 100644 index 00000000..1f3b3094 --- /dev/null +++ b/admin/WebConsole/idiomas/php/esp/acceso_esp.php @@ -0,0 +1,34 @@ + + diff --git a/admin/WebConsole/idiomas/php/esp/aulas_esp.php b/admin/WebConsole/idiomas/php/esp/aulas_esp.php index c077c022..d5a8368f 100644 --- a/admin/WebConsole/idiomas/php/esp/aulas_esp.php +++ b/admin/WebConsole/idiomas/php/esp/aulas_esp.php @@ -43,6 +43,18 @@ $TbMsg[35]='"Operadores"'; $TbMsg[36]='"Eliminar Operador"'; $TbMsg[37]='"Añadir nuevo Operador"'; + $TbMsg[38]='"Asistentes"'; $TbMsg[39]='"Eco de Consola"'; + $TbMsg[40]='"NetBoot avanzado"'; + $TbMsg[41]='"Reubicar ordenadores"'; + $TbMsg[42]='Gestión Arranque Avanzado'; + $TbMsg[43]='"Guardar"'; + $TbMsg[44]='Ubicador Ordenadores'; + $TbMsg[45]='Nombre ámbito'; + $TbMsg[46]='Identificador ámbito'; + $TbMsg[47]='"Log historico"'; + $TbMsg[48]='"Log en tiempo real"'; + ?> + diff --git a/admin/WebConsole/idiomas/php/esp/barramenu_esp.php b/admin/WebConsole/idiomas/php/esp/barramenu_esp.php index 476704a4..c25cf429 100644 --- a/admin/WebConsole/idiomas/php/esp/barramenu_esp.php +++ b/admin/WebConsole/idiomas/php/esp/barramenu_esp.php @@ -2,7 +2,7 @@ //________________________________________________________________________________________________________ // // Fichero de idiomas php: barramenu_esp.php -// Idioma: Espaol +// Idioma: Español //________________________________________________________________________________________________________ $TbMsg=array(); $TbMsg[0]='Aulas'; @@ -18,4 +18,6 @@ $TbMsg[10]='Salir'; $TbMsg[11]='Ayuda'; $TbMsg[12]='Administradores'; + $TbMsg[14]='Buscar'; ?> + diff --git a/admin/WebConsole/idiomas/php/esp/buscar_esp.php b/admin/WebConsole/idiomas/php/esp/buscar_esp.php new file mode 100644 index 00000000..8866dd91 --- /dev/null +++ b/admin/WebConsole/idiomas/php/esp/buscar_esp.php @@ -0,0 +1,19 @@ + + diff --git a/admin/WebConsole/idiomas/php/esp/colasacciones_esp.php b/admin/WebConsole/idiomas/php/esp/colasacciones_esp.php index ed0ee0e8..e0d8bd33 100644 --- a/admin/WebConsole/idiomas/php/esp/colasacciones_esp.php +++ b/admin/WebConsole/idiomas/php/esp/colasacciones_esp.php @@ -9,10 +9,16 @@ $LITEJECUCION_COMANDO="Comandos"; $LITEJECUCION_PROCEDIMIENTO="Procedimientos"; $LITEJECUCION_TAREA="Tareas"; +//$LITEJECUCION_TRABAJO="Trabajo"; $LITACCION_EXITOSA='Finalizada correctamente'; // Literal Finalizada con exito $LITACCION_FALLIDA='Finalizada con errores'; // Literal Finalizada con errores -$LITACCION_SINRESULTADO='Sin resultado final'; //Literal Sin resultado +//$LITACCION_SINRESULTADO='Sin resultado final'; //Literal Sin resultado +$LITACCION_TERMINADA='Finalizada manualmente'; //Literal Finalizada manualmente con indicacion de exito +$LITACCION_ABORTADA='Cancelada manualmente'; // Literal Finalizada manualmente con indicacion de errores +$LITACCION_SINERRORES='Active without errors'; // Literal Activa y sin ningún error +$LITACCION_CONERRORES='Active with errors'; // Literal Activa y con algún error + $LITACCION_DETENIDA='Parada'; // Literal acción momentanemente parada $LITACCION_INICIADA='Activa'; // Literal acción activa diff --git a/admin/WebConsole/idiomas/php/esp/comandos/ejecutarscripts_esp.php b/admin/WebConsole/idiomas/php/esp/comandos/ejecutarscripts_esp.php index 1bf0730e..ad7b05b6 100644 --- a/admin/WebConsole/idiomas/php/esp/comandos/ejecutarscripts_esp.php +++ b/admin/WebConsole/idiomas/php/esp/comandos/ejecutarscripts_esp.php @@ -16,4 +16,37 @@ $TbMsg[8]='Description'; $TbMsg[9]='Código del script'; $TbMsg[10]='Fichero de código'; -?> \ No newline at end of file + + $TbMsg["WDI11"]='Asistente de Despliegue de la imagen'; + $TbMsg["WDI12"]='Generar InstruccionOG'; + $TbMsg["WDI13"]='Elige si solo quieres almacenar la imagen en la Cache - UpdateCache '; + $TbMsg["WDI14"]='deployImage (update+restore)'; + $TbMsg["WDI15"]='updateCache (solo descarga)'; + $TbMsg["WDI16"]='opciones basicas'; + $TbMsg["WDI17"]='opciones multicast'; + $TbMsg["WDI18"]='opciones torrent'; + $TbMsg["WDI19"]='opciones unicast'; + $TbMsg["WDI20"]='Elige la particion del disco donde se restaurar la imagen:'; + $TbMsg["WDI21"]='Elige la imagen a distribuir:'; + $TbMsg["WDI22"]='--Selecciona imagen --'; + $TbMsg["WDI23"]='Elige el metodo de transferencia'; + + $TbMsg["WDI24"]='puerto : '; + $TbMsg["WDI25"]='direccion Mcast : '; + $TbMsg["WDI26"]='modo : '; + $TbMsg["WDI27"]='velocidad : '; + $TbMsg["WDI28"]='nº Max. clientes : '; + $TbMsg["WDI29"]='Tiempo(seg) Max. Espera : '; + + $TbMsg["WDI30"]='tiempo de semilla :'; + + $TbMsg["WCRP31"]='Asistente Clonacion Particiones Remotas'; + $TbMsg["WCRP32"]='Elige equipo MASTER:'; + $TbMsg["WCRP33"]='Elige desde el Master la imagen o particion a enviar'; + $TbMsg["WCRP34"]='Elige la identificacion de la particion destino de los clientes:'; + $TbMsg["WCRP35"]='Elige el metodo de transferencia'; + $TbMsg["WCRP36"]='Elige herramienta de clonacion:'; + $TbMsg["WCRP37"]='Elige compresor para la herramienta de clonacion:'; + + +?> diff --git a/admin/WebConsole/idiomas/php/esp/comandos/mensajes_esp.php b/admin/WebConsole/idiomas/php/esp/comandos/mensajes_esp.php new file mode 100644 index 00000000..55cbaace --- /dev/null +++ b/admin/WebConsole/idiomas/php/esp/comandos/mensajes_esp.php @@ -0,0 +1,22 @@ + + diff --git a/admin/WebConsole/idiomas/php/esp/comandos/opcionesacciones_esp.php b/admin/WebConsole/idiomas/php/esp/comandos/opcionesacciones_esp.php new file mode 100644 index 00000000..a25d6c18 --- /dev/null +++ b/admin/WebConsole/idiomas/php/esp/comandos/opcionesacciones_esp.php @@ -0,0 +1,21 @@ + \ No newline at end of file diff --git a/admin/WebConsole/idiomas/php/esp/hardwares_esp.php b/admin/WebConsole/idiomas/php/esp/hardwares_esp.php index 96b508e2..be3ae563 100644 --- a/admin/WebConsole/idiomas/php/esp/hardwares_esp.php +++ b/admin/WebConsole/idiomas/php/esp/hardwares_esp.php @@ -5,9 +5,9 @@ // Idioma: Español //________________________________________________________________________________________________________ $TbMsg=array(); - $TbMsg[0]='"Definir nuevo tipo hardware"'; + $TbMsg[0]='"Definir nuevo tipo de hardware"'; $TbMsg[1]='"Propiedades"'; - $TbMsg[2]='"Eliminar tipo de hardware"'; + $TbMsg[2]='"Eliminar tipo de hardware"'; $TbMsg[3]='"Nuevo grupo de componentes"'; $TbMsg[4]='"Definir nuevo componente"'; $TbMsg[5]='"Colocar componente"'; @@ -24,7 +24,7 @@ $TbMsg[16]='"Mover perfil"'; $TbMsg[17]='"Eliminar perfil hardware"'; $TbMsg[18]='"Tipos de hardware"'; - $TbMsg[19]='"Componentes hardwares"'; - $TbMsg[20]='"Perfiles hardwares"'; + $TbMsg[19]='"Componentes hardware"'; + $TbMsg[20]='"Perfiles hardware"'; +?> -?> \ No newline at end of file diff --git a/admin/WebConsole/idiomas/php/esp/informacion_repositorio_esp.php b/admin/WebConsole/idiomas/php/esp/informacion_repositorio_esp.php index cd74df5f..a05dca48 100644 --- a/admin/WebConsole/idiomas/php/esp/informacion_repositorio_esp.php +++ b/admin/WebConsole/idiomas/php/esp/informacion_repositorio_esp.php @@ -6,10 +6,11 @@ //________________________________________________________________________________________________________ $TbMsg=array(); $TbMsg[0]='Repositorios'; - $TbMsg[1]='Information sobre Repositorios'; + $TbMsg[1]='Información sobre Repositorios'; $TbMsg[2]='Repositorio'; $TbMsg[3]='Información Repositorio'; $TbMsg[4]='Comentarios'; $TbMsg[5]='Imágenes alojadas'; $TbMsg[6]='Ordenadores asigandos'; ?> + diff --git a/admin/WebConsole/idiomas/php/esp/propiedades_ordenadores_esp.php b/admin/WebConsole/idiomas/php/esp/propiedades_ordenadores_esp.php index f93586f2..baa235b0 100644 --- a/admin/WebConsole/idiomas/php/esp/propiedades_ordenadores_esp.php +++ b/admin/WebConsole/idiomas/php/esp/propiedades_ordenadores_esp.php @@ -17,5 +17,7 @@ $TbMsg[8]="Perfil Hardware"; $TbMsg[9]="Autoexec"; $TbMsg[10]="Repositorio"; $TbMsg[11]="Menú"; -$TbMsg[12]="Tamaño Caché (KB)"; +$TbMsg[12]="Tamaño Caché (KB)"; +$TbMsg[13]="Interfaz de red"; +$TbMsg[14]="Driver de red"; ?> diff --git a/admin/WebConsole/images/login.jpg b/admin/WebConsole/images/login.jpg new file mode 100644 index 00000000..d71fe0b4 Binary files /dev/null and b/admin/WebConsole/images/login.jpg differ diff --git a/admin/WebConsole/index.php b/admin/WebConsole/index.php new file mode 100644 index 00000000..f1884e70 --- /dev/null +++ b/admin/WebConsole/index.php @@ -0,0 +1,144 @@ + + +<?php echo $TbMsg["ACCESS_TITLE"];?> + + + + + + + +
+

+

+
+
+

+

+

+

+

+

+ +
+
+
+ +'; +if (!empty($herror)) { + if (!empty($TbErr[$herror])) { + echo " alert('".$TbErr[$herror]."');"; + } else { + echo " alert('".$TbMsg["ACCESS_UNKNOWNERROR"]."');"; + } +} +echo ' document.fdatos.usu.focus()'; +echo ''; +//______________________________________________________________________________ +?> + + + diff --git a/admin/WebConsole/principal/aula.php b/admin/WebConsole/principal/aula.php index 4f62e9c8..e92f8367 100644 --- a/admin/WebConsole/principal/aula.php +++ b/admin/WebConsole/principal/aula.php @@ -17,6 +17,7 @@ include_once("../includes/constantes.php"); include_once("../includes/comunes.php"); include_once("../includes/CreaComando.php"); include_once("../idiomas/php/".$idioma."/aulas_".$idioma.".php"); +include_once("../idiomas/php/".$idioma."/comandos/mensajes_".$idioma.".php"); //________________________________________________________________________________________________________ $litambito=0; $idambito=0; @@ -343,7 +344,7 @@ function ContextualXMLAulas(){ $layerXML.='texto="SELECT idcomando,descripcion,pagina,gestor,funcion @@ -541,9 +543,13 @@ function ContextualXMLComandos($litambito,$ambito){ $layerXML=""; $rs->Primero(); while (!$rs->EOF){ + $descrip=$TbMsg["COMMAND_".$rs->campos["funcion"]]; + if (empty ($descrip)) { + $descrip=$rs->campos["funcion"]; + } $layerXML.='campos["idcomando"].',\''.$rs->campos["descripcion"].'\',\''.$rs->campos["pagina"]. '\',\''.$rs->campos["gestor"]. '\',\''.$rs->campos["funcion"]. '\')"'; - $layerXML.=' textoitem="'.$rs->campos["descripcion"].'"'; + $layerXML.=' textoitem="'.$descrip.'"'; $layerXML.='>'; if($maxlongdescricampos["descripcion"])) // Toma la Descripción de mayor longitud $maxlongdescri=strlen($rs->campos["descripcion"]); @@ -563,23 +569,28 @@ function ContextualXMLComandos($litambito,$ambito){ function ContextualXMLAsistentes($litambito,$ambito){ global $cmd; + global $TbMsg; $maxlongdescri=0; $rs=new Recordset; - $cmd->texto="SELECT idcomando,descripcion,pagina,gestor,funcion - FROM asistentes - WHERE activo=1 AND aplicambito & ".$ambito.">0 - ORDER BY descripcion"; + $cmd->texto="SELECT idcomando,descripcion,pagina,gestor,funcion + FROM asistentes + WHERE activo=1 AND aplicambito & ".$ambito.">0 + ORDER BY descripcion"; $rs->Comando=&$cmd; if ($rs->Abrir()){ $layerXML=""; $rs->Primero(); while (!$rs->EOF){ + $descrip=$TbMsg["WIZARD_".$rs->campos["descripcion"]]; + if (empty ($descrip)) { + $descrip=$rs->campos["descripcion"]; + } $layerXML.='campos["idcomando"].',\''.$rs->campos["descripcion"].'\',\''.$rs->campos["pagina"]. '\',\''.$rs->campos["gestor"]. '\',\''.$rs->campos["funcion"]. '\')"'; - $layerXML.=' textoitem="'.$rs->campos["descripcion"].'"'; + $layerXML.=' textoitem="'.$descrip.'"'; $layerXML.='>'; - if($maxlongdescricampos["descripcion"])) // Toma la Descripción de mayor longitud - $maxlongdescri=strlen($rs->campos["descripcion"]); + if($maxlongdescriSiguiente(); } $layerXML.=''; diff --git a/admin/WebConsole/principal/aulas.php b/admin/WebConsole/principal/aulas.php index b8fee010..5109f585 100644 --- a/admin/WebConsole/principal/aulas.php +++ b/admin/WebConsole/principal/aulas.php @@ -16,6 +16,7 @@ include_once("../clases/MenuContextual.php"); include_once("../includes/constantes.php"); include_once("../includes/CreaComando.php"); include_once("../idiomas/php/".$idioma."/aulas_".$idioma.".php"); +include_once("../idiomas/php/".$idioma."/comandos/mensajes_".$idioma.".php"); //________________________________________________________________________________________________________ $cmd=CreaComando($cadenaconexion); if (!$cmd) @@ -478,21 +479,22 @@ function ContextualXMLAulas(){ $layerXML.=' clase="menu_contextual"'; $layerXML.='>'; - $layerXML.='texto="SELECT idcomando,descripcion,pagina,gestor,funcion - FROM comandos - WHERE activo=1 AND aplicambito & ".$ambito.">0 - ORDER BY descripcion"; + $cmd->texto="SELECT idcomando,descripcion,pagina,gestor,funcion + FROM comandos + WHERE activo=1 AND aplicambito & ".$ambito.">0 + ORDER BY descripcion"; $rs->Comando=&$cmd; if ($rs->Abrir()){ $layerXML=""; $rs->Primero(); while (!$rs->EOF){ + $descrip=$TbMsg["COMMAND_".$rs->campos["funcion"]]; + if (empty ($descrip)) { + $descrip=$rs->campos["funcion"]; + } $layerXML.='campos["idcomando"].',\''.$rs->campos["descripcion"].'\',\''.$rs->campos["pagina"]. '\',\''.$rs->campos["gestor"]. '\',\''.$rs->campos["funcion"]. '\')"'; - $layerXML.=' textoitem="'.$rs->campos["descripcion"].'"'; + $layerXML.=' textoitem="'.$descrip.'"'; $layerXML.='>'; - if($maxlongdescricampos["descripcion"])) // Toma la Descripción de mayor longitud - $maxlongdescri=strlen($rs->campos["descripcion"]); + if ($maxlongdescri < strlen($descrip)) // Toma la Descripción de mayor longitud + $maxlongdescri=strlen($descrip); $rs->Siguiente(); } $layerXML.=''; @@ -968,23 +980,28 @@ function ContextualXMLComandos($litambito,$ambito){ //________________________________________________________________________________________________________ function ContextualXMLAsistentes($litambito,$ambito){ global $cmd; + global $TbMsg; $maxlongdescri=0; $rs=new Recordset; - $cmd->texto="SELECT idcomando,descripcion,pagina,gestor,funcion - FROM asistentes - WHERE activo=1 AND aplicambito & ".$ambito.">0 - ORDER BY descripcion"; + $cmd->texto="SELECT idcomando,descripcion,pagina,gestor,funcion + FROM asistentes + WHERE activo=1 AND aplicambito & ".$ambito.">0 + ORDER BY descripcion"; $rs->Comando=&$cmd; if ($rs->Abrir()){ $layerXML=""; $rs->Primero(); while (!$rs->EOF){ + $descrip=$TbMsg["WIZARD_".$rs->campos["descripcion"]]; + if (empty ($descrip)) { + $descrip=$rs->campos["descripcion"]; + } $layerXML.='campos["idcomando"].',\''.$rs->campos["descripcion"].'\',\''.$rs->campos["pagina"]. '\',\''.$rs->campos["gestor"]. '\',\''.$rs->campos["funcion"]. '\')"'; - $layerXML.=' textoitem="'.$rs->campos["descripcion"].'"'; + $layerXML.=' textoitem="'.$descrip.'"'; $layerXML.='>'; - if($maxlongdescricampos["descripcion"])) // Toma la Descripción de mayor longitud - $maxlongdescri=strlen($rs->campos["descripcion"]); + if($maxlongdescriSiguiente(); } $layerXML.=''; diff --git a/admin/WebConsole/principal/boot_grub4dos.php b/admin/WebConsole/principal/boot_grub4dos.php index 14e9f1f9..1525f995 100644 --- a/admin/WebConsole/principal/boot_grub4dos.php +++ b/admin/WebConsole/principal/boot_grub4dos.php @@ -121,9 +121,9 @@ switch($litambito){
-

Gestión Arranque Avanzado
+


-

+ name="saveButton" onclick="allSelect()">

@@ -140,8 +140,8 @@ echo ""; -OGclient
- EOF) echo ""; echo ""; echo "
"; - echo ""; $listadopxe=""; $listadopxe=listaequipos($cmd,$rsmenu->campos['label'],$seleccion); echo $listadopxe; diff --git a/admin/WebConsole/principal/boot_pxelinux.php b/admin/WebConsole/principal/boot_pxelinux.php index 8fda145d..babd2bfe 100644 --- a/admin/WebConsole/principal/boot_pxelinux.php +++ b/admin/WebConsole/principal/boot_pxelinux.php @@ -140,8 +140,8 @@ echo ""; -OGclient
- EOF) echo ""; echo ""; echo "
"; - echo ""; $listadopxe=""; $listadopxe=listaequipos($cmd,$rsmenu->campos['label'],$seleccion); echo $listadopxe; diff --git a/admin/WebConsole/principal/colasacciones.php b/admin/WebConsole/principal/colasacciones.php index 955d9bfd..76fbad69 100644 --- a/admin/WebConsole/principal/colasacciones.php +++ b/admin/WebConsole/principal/colasacciones.php @@ -7,6 +7,7 @@ // Nombre del fichero: colasacciones.php // Descripción : // Visualiza las acciones pendientes y finalizadas con los resultados de estatus y horas de inicio y finalización +// Cambio en la linea 73 la cantidad de días predeterminado por 180 (antes 3) // ************************************************************************************************************************************************* include_once("../includes/ctrlacc.php"); include_once("../clases/AdoPhp.php"); @@ -70,7 +71,7 @@ if (isset($_POST["sesion"])) $sesion=$_POST["sesion"]; if(empty($swPOST)){ // Valores por defecto - $wfechainicio=mktime(0, 0, 0, date("m") , date("d")-3, date("Y")); // Acciones desde tres días antes + $wfechainicio=mktime(0, 0, 0, date("m") , date("d")-180, date("Y")); // Acciones desde tres días antes $wfechafin=mktime(0, 0, 0, date("m") , date("d")+1, date("Y")); $fechainicio=date("d/m/Y",$wfechainicio); $fechafin=date("d/m/Y ",$wfechafin); diff --git a/admin/WebConsole/principal/hardwares.php b/admin/WebConsole/principal/hardwares.php index 734d282f..4ba10d9a 100644 --- a/admin/WebConsole/principal/hardwares.php +++ b/admin/WebConsole/principal/hardwares.php @@ -16,6 +16,7 @@ include_once("../clases/MenuContextual.php"); include_once("../includes/constantes.php"); include_once("../includes/CreaComando.php"); include_once("../idiomas/php/".$idioma."/hardwares_".$idioma.".php"); +include_once("../idiomas/php/".$idioma."/tiposhardwares_".$idioma.".php"); //________________________________________________________________________________________________________ $cmd=CreaComando($cadenaconexion); if (!$cmd) @@ -120,10 +121,12 @@ function CreaArbol($cmd,$idcentro){ } //________________________________________________________________________________________________________ function SubarbolXML_TiposHardwares($cmd){ - global $LITAMBITO_TIPOHARDWARES; + global $LITAMBITO_TIPOHARDWARES; + global $TbMsg; $cadenaXML=""; $rs=new Recordset; - $cmd->texto="SELECT idtipohardware,descripcion,urlimg FROM tipohardwares order by descripcion"; + $cmd->texto="SELECT idtipohardware, descripcion, urlimg, nemonico + FROM tipohardwares ORDER BY descripcion"; $rs->Comando=&$cmd; if (!$rs->Abrir()) return($cadenaXML); // Error al abrir recordset $rs->Primero(); @@ -134,7 +137,11 @@ function SubarbolXML_TiposHardwares($cmd){ $cadenaXML.=' imagenodo="'.$rs->campos["urlimg"].'"'; else $cadenaXML.=' imagenodo="../images/iconos/confihard.gif"'; - $cadenaXML.=' infonodo="'.$rs->campos["descripcion"].'"'; + $descrip = $TbMsg["HARDWARE_".$rs->campos["nemonico"]]; + if (empty ($descrip)) { + $descrip = $rs->campos["descripcion"]; + } + $cadenaXML.=' infonodo="'.$descrip.'"'; $cadenaXML.=' clickcontextualnodo="menu_contextual(this,' ."'flo_".$LITAMBITO_TIPOHARDWARES."'" .')"'; $cadenaXML.=' nodoid='.$LITAMBITO_TIPOHARDWARES.'-'.$rs->campos["idtipohardware"]; diff --git a/admin/WebConsole/principal/ubicarordenadores.php b/admin/WebConsole/principal/ubicarordenadores.php index e3facc7d..d43fb712 100644 --- a/admin/WebConsole/principal/ubicarordenadores.php +++ b/admin/WebConsole/principal/ubicarordenadores.php @@ -146,9 +146,9 @@ switch($ambito){ -

Ubicador Ordenadores
- -

+


+ + name="saveButton" onclick="allSelect()">

@@ -165,7 +165,7 @@ echo "";
- EOF) echo ""; echo ""; echo "
"; - echo ""; $listadogrupo=""; #$listadogrupo=listaequipos($cmd,$rsmenu->campos['idgrupo'],$seleccion); $listadogrupo=ListaEquiposGrupo($cmd,$rsmenu->campos['idaula'],$rsmenu->campos['idgrupo']); diff --git a/admin/WebConsole/principal/verlog.php b/admin/WebConsole/principal/verlog.php index f971afff..7626171b 100644 --- a/admin/WebConsole/principal/verlog.php +++ b/admin/WebConsole/principal/verlog.php @@ -62,7 +62,7 @@ else Log del equipo ". $nombreordenador ." con ip " . $ip ." "; + echo " Log host ". $nombreordenador ." ip " . $ip ." "; ?> diff --git a/admin/WebConsole/propiedades/propiedades_ordenadores.php b/admin/WebConsole/propiedades/propiedades_ordenadores.php index dd166637..ecc353b1 100644 --- a/admin/WebConsole/propiedades/propiedades_ordenadores.php +++ b/admin/WebConsole/propiedades/propiedades_ordenadores.php @@ -154,26 +154,26 @@ if ($opcion!=$op_alta){ - - Interfaz de Red:   + +    '; + echo ''; $iface="eth0=eth0".chr(13); $iface.="eth1=eth1".chr(13); $iface.="eth2=eth2"; - echo HTMLCTESELECT($iface,"netiface","estilodesple","",$netiface,100).''; + echo HTMLCTESELECT($iface,"netiface","estilodesple","",$netiface,100).''; ?> - + - - Driver de Red:   + +    '; + echo ''; $driver="generic=generic"; - echo HTMLCTESELECT($driver,"netdriver","estilodesple","",$netdriver,100).''; + echo HTMLCTESELECT($driver,"netdriver","estilodesple","",$netdriver,100).''; ?> - + diff --git a/admin/WebConsole/varios/buscar.php b/admin/WebConsole/varios/buscar.php new file mode 100644 index 00000000..46278e41 --- /dev/null +++ b/admin/WebConsole/varios/buscar.php @@ -0,0 +1,199 @@ +texto="SELECT grupos.nombregrupo AS grupo, + aulas.nombreaula AS aula, + ordenadores.idordenador AS id, + ordenadores.nombreordenador AS nombre, + ordenadores.ip AS ip, + ordenadores.mac AS mac + FROM ordenadores + JOIN aulas ON aulas.idaula=ordenadores.idaula + LEFT JOIN grupos ON grupos.idgrupo=aulas.grupoid + WHERE ordenadores.nombreordenador='$valor' + AND aulas.idcentro='$idcentro' + ORDER BY ordenadores.nombreordenador"; + break; + case "ip": + $cmd->texto="SELECT grupos.nombregrupo AS grupo, + aulas.nombreaula AS aula, + ordenadores.idordenador AS id, + ordenadores.nombreordenador AS nombre, + ordenadores.ip AS ip, + ordenadores.mac AS mac + FROM ordenadores + JOIN aulas ON aulas.idaula=ordenadores.idaula + LEFT JOIN grupos ON grupos.idgrupo=aulas.grupoid + WHERE ordenadores.ip='$valor' + AND aulas.idcentro='$idcentro' + ORDER BY ordenadores.nombreordenador"; + break; + case "mac": + $cmd->texto="SELECT grupos.nombregrupo AS grupo, + aulas.nombreaula AS aula, + ordenadores.idordenador AS id, + ordenadores.nombreordenador AS nombre, + ordenadores.ip AS ip, + ordenadores.mac AS mac + FROM ordenadores + JOIN aulas ON aulas.idaula=ordenadores.idaula + LEFT JOIN grupos ON grupos.idgrupo=aulas.grupoid + WHERE ordenadores.mac='".strtoupper($valor)."' + AND aulas.idcentro='$idcentro' + ORDER BY ordenadores.nombreordenador"; + break; + case "duplic": + $cmd->texto="SELECT grupos.nombregrupo AS grupo, + aulas.nombreaula AS aula, + ordenadores.idordenador AS id, + ordenadores.nombreordenador AS nombre, + ordenadores.ip AS ip, + ordenadores.mac AS mac + FROM ordenadores + JOIN aulas ON aulas.idaula=ordenadores.idaula + LEFT JOIN grupos ON grupos.idgrupo=aulas.grupoid + WHERE nombreordenador IN + (SELECT nombreordenador + FROM ordenadores + GROUP BY nombreordenador + HAVING count(*) > 1) + OR ip in + (SELECT ip FROM ordenadores + GROUP BY ip HAVING count(*) > 1) + OR mac in + (SELECT mac FROM ordenadores + GROUP BY mac HAVING count(*) > 1) + AND aulas.idcentro='$idcentro'"; + break; + } + $rs->Comando=&$cmd; + if ($rs->Abrir()) { + while (!$rs->EOF) { + if (empty ($rs->campos["grupo"])) { + $aula[]=$rs->campos["aula"]; + } else { + $aula[]=$rs->campos["grupo"]." / ".$rs->campos["aula"]; + } + $id[]=$rs->campos["id"]; + $nombre[]=$rs->campos["nombre"]; + $ip[]=$rs->campos["ip"]; + $mac[]=$rs->campos["mac"]; + $rs->Siguiente(); + } + } + } +} +//_________________________________ +?> + +Administración web de aulas + + + + + + +

+ +'.$TbMsg["SEARCH_NOMATCHES"].'

'; + } else { +?> +
+ + + + + + + + +\n \n"; + echo " \n"; + echo " \n"; + echo " \n"; + echo " \n \n"; + } + } +?> +
\"PC\"".$aula[$i]."".$nombre[$i]."".$ip[$i]."".$mac[$i]."
+
+
+ + +
+ + : + + +
+ +
+ +
+ + + diff --git a/client/boot-tools/INSTALL.es.txt b/client/boot-tools/INSTALL.es.txt index 7c580934..c65f5a27 100644 --- a/client/boot-tools/INSTALL.es.txt +++ b/client/boot-tools/INSTALL.es.txt @@ -43,5 +43,7 @@ Descripción de la estrucutra de boot-tools - - +NOTA: + boottollsfuncions.lib -> btogSetfsBase + bootsoftwareinstall -> + packages ->sw.testing diff --git a/client/boot-tools/boottoolsfunctions.lib b/client/boot-tools/boottoolsfunctions.lib index 2f7aff65..c8fef78c 100644 --- a/client/boot-tools/boottoolsfunctions.lib +++ b/client/boot-tools/boottoolsfunctions.lib @@ -126,6 +126,7 @@ echo -e "n\np\n1\n\n\nt\n83\nw" | fdisk $DISKLOOP #echoAndLog "$FUNCNAME(): Liberamos Desmontando $DISKLOOP despues del particionado " +sleep 10 losetup -d $DISKLOOP if [ $? -ne 0 ] then @@ -143,6 +144,7 @@ then return 2 fi #echoAndLog "$FUNCNAME(): Desmontando $PARTLOOP despues del formateo " +sleep 10 losetup -d $PARTLOOP if [ $? -ne 0 ] then @@ -174,7 +176,8 @@ echoAndLog "$FUNCNAME: Iniciando la generación del sistema de archivos " mount | grep $BTROOTFSMNT || mount $BTROOTFSIMG $BTROOTFSMNT -o loop,offset=32256 mount | grep $BTROOTFSMNT && echoAndLog "$FUNCNAME: mount $BTROOTFSIMG $BTROOTFSMNT -o loop,offset=32256 OK " || errorAndLog "$FUNCNAME: mount $BTROOTFSIMG $BTROOTFSMNT -o loop,offset=32256 : FAILURE " -debootstrap --arch=$OSARCH --components=main,universe ${OSCODENAME} ${BTROOTFSMNT} ${OSHTTP} +debootstrap --components=main,universe ${OSCODENAME} ${BTROOTFSMNT} ${OSHTTP} +#debootstrap --arch=$OSARCH ${OSCODENAME} ${BTROOTFSMNT} http://archive.ubuntu.com/ubuntu/ if [ $? -ne 0 ]; then diff --git a/client/boot-tools/boottoolsgenerator.sh b/client/boot-tools/boottoolsgenerator.sh index 70a77355..de289106 100755 --- a/client/boot-tools/boottoolsgenerator.sh +++ b/client/boot-tools/boottoolsgenerator.sh @@ -35,31 +35,28 @@ for i in `mount | grep IMGogclient | grep /var | cut -f3 -d" "`; do echo $i; umo for i in `mount | grep IMGogclient | grep /var | cut -f3 -d" "`; do echo $i; umount $i; done - #funciones especificas del cliente. source $PROGRAMDIR/boottoolsfunctions.lib - echoAndLog "OpenGnSys CLIENT installation begins at $(date)" ########################################################################## -## FASE 1 - Instalación de software adicional. +echo "FASE 1 - Instalación de software adicional." cat /etc/apt/sources.list | grep "http://free.nchc.org.tw/drbl-core" || echo "deb http://free.nchc.org.tw/drbl-core drbl stable " >> /etc/apt/sources.list -apt-get update -apt-get -y --force-yes install debootstrap subversion schroot squashfs-tools syslinux genisoimage gpxe qemu - -##### FASE 2 - Asignación de variables +apt-get update; apt-get -y --force-yes install debootstrap subversion schroot squashfs-tools syslinux genisoimage gpxe qemu +####################################################################3 +echo "FASE 2 - Asignación de variables" #obtenemos las variables necesarias y la información del host. btogGetVar && btogGetOsInfo - -############# FASE 3: Creación del Sistema raiz RootFS (Segundo Sistema archivos (img)) -##3.1 creación y formateo del disco virtual. generamos el dispositivo loop. +###################################################################3 +echo " FASE 3: Creación del Sistema raiz RootFS (Segundo Sistema archivos (img)) " +echo "Fase 3.1 Generar y Formatear el disco virtual. generamos el dispositivo loop." file $BTROOTFSIMG | grep "partition 1: ID=0x83" if [ $? == 1 ] then btogSetFsVirtual || exit 2 fi -#3.2 generamos el Sistema de archivos con debootstrap +echo "Fase 3.2 gener sistema de archivos con debootstrap" schroot -p -c IMGogclient -- touch /tmp/ogclientOK if [ -f /tmp/ogclientOK ] then @@ -67,67 +64,54 @@ then else btogSetFsBase || exit 3 fi - -# FASE 4: Configuración el acceso al Segundo Sistema de archivos (img), para schroot +###################################################################3 +echo "FASE 4: Configurar acceso schroot al Segundo Sistema de archivos (img)" cat /etc/schroot/schroot.conf | grep $BTROOTFSIMG || btogSetFsAccess - -# FASE 5: Incorporando con ficheros OG el sistema raiz rootfs +########################################################################### +echo "FASE 5: Incorporando con ficheros OpenGnsys el sistema raiz rootfs " cp -prv ${BTSVNBOOTTOOLS}/includes/usr/bin/* /tmp/ chmod 777 /tmp/boot-tools/*.sh schroot -p -c IMGogclient -- /tmp/boot-tools/boottoolsFsOpengnsys.sh - -# FASE6: Instalacion de software -# 6.1 instalacion de software con apt-get -#cp /etc/apt/sources.list /tmp +############################################################################################ +echo "FASE6: Instalar software" +echo "Fase 6.1 instalar paquetes deb con apt-get" schroot -p -c IMGogclient -- /usr/bin/boot-tools/boottoolsSoftwareInstall.sh - - -# 6.2 compilación de software. +echo "Fase 6.2 compilar software." cd / schroot -p -c IMGogclient -- /usr/bin/boot-tools/boottoolsSoftwareCompile.sh schroot -p -c IMGogclient -- /usr/bin/boot-tools/boottoolsSoftwareCompile.sh - cd - -#Fase 7. Personalizando - -schroot -p -c IMGogclient -- /usr/bin/boot-tools/boottoolsFsLocales.sh - - -### 7.1 incorporamos la clave publica del servidor +echo "Fase 7. Personalizar el sistema creado" +echo "Fase 7.1 incorporamos la clave publica del servidor" cd / ssh-keygen -q -f /root/.ssh/id_rsa -N "" cp /root/.ssh/id_rsa.pub /tmp schroot -p -c IMGogclient -- /usr/bin/boot-tools/boottoolsSshServer.sh cd - -### 7.2 y la del propio cliente. -schroot -c IMGogclient -- /usr/bin/boot-tools/boottoolsSshClient.sh +echo "Fase 7.2. incorpoar la clave publica del propio cliente" +schroot -p -c IMGogclient -- /usr/bin/boot-tools/boottoolsSshClient.sh + +echo "Fase 7.1. configurando las locales" +schroot -p -c IMGogclient -- /usr/bin/boot-tools/boottoolsFsLocales.sh -## 7.3 configuramos los locales. -schroot -c IMGogclient -- /usr/bin/boot-tools/boottoolsFsLocales.sh for i in `mount | grep IMGogclient | grep /var | cut -f3 -d" "`; do echo $i; umount $i; done for i in `mount | grep IMGogclient | grep /var | cut -f3 -d" "`; do echo $i; umount $i; done for i in `mount | grep IMGogclient | grep /var | cut -f3 -d" "`; do echo $i; umount $i; done - - - - -#Fase 7. Generando la ISO. -#7.1 el initrd +######################################################################### +echo "Fase 8 . Generar distribucion " +echo "Fase 8.1 generar el initrd" btogFsInitrd - - -#7.2 Convertivos el sistema raiz img en formato sqfs +echo "8.2. Generar fichero sqfs a partir del fichero img" btogFsSqfs -#7.3 Generamos la iso +echo "8.3. Generar la ISO" btogIsoGenerator - - +######################################################################3 +######################################################################## # Mostrar sumario de la instalación e instrucciones de post-instalación. installationSummary - echoAndLog "OpenGnSys installation finished at $(date)" diff --git a/client/boot-tools/includes/etc/apt/sources.list.ubuntu b/client/boot-tools/includes/etc/apt/sources.list.ubuntu index 29348ccc..1487573b 100644 --- a/client/boot-tools/includes/etc/apt/sources.list.ubuntu +++ b/client/boot-tools/includes/etc/apt/sources.list.ubuntu @@ -29,8 +29,8 @@ deb-src http://es.archive.ubuntu.com/ubuntu/ OSCODENAME-updates multiverse ## newer versions of some applications which may provide useful features. ## Also, please note that software in backports WILL NOT receive any review ## or updates from the Ubuntu security team. -# deb http://es.archive.ubuntu.com/ubuntu/ OSCODENAME-backports main restricted universe multiverse -# deb-src http://es.archive.ubuntu.com/ubuntu/ OSCODENAME-backports main restricted universe multiverse +deb http://es.archive.ubuntu.com/ubuntu/ OSCODENAME-backports main restricted universe multiverse +deb-src http://es.archive.ubuntu.com/ubuntu/ OSCODENAME-backports main restricted universe multiverse ## Uncomment the following two lines to add software from Canonical's ## 'partner' repository. diff --git a/client/boot-tools/includes/etc/initramfs-tools/hooks/oghooks b/client/boot-tools/includes/etc/initramfs-tools/hooks/oghooks index 67f807ab..afe21be6 100755 --- a/client/boot-tools/includes/etc/initramfs-tools/hooks/oghooks +++ b/client/boot-tools/includes/etc/initramfs-tools/hooks/oghooks @@ -57,6 +57,9 @@ manual_add_modules smbfs manual_add_modules atl1e manual_add_modules squashfs manual_add_modules md4 +manual_add_modules des_generic +manual_add_modules nls_utf8 + diff --git a/client/boot-tools/includes/etc/initramfs-tools/scripts/ogfunctions b/client/boot-tools/includes/etc/initramfs-tools/scripts/ogfunctions index 773e4137..35b24f9b 100644 --- a/client/boot-tools/includes/etc/initramfs-tools/scripts/ogfunctions +++ b/client/boot-tools/includes/etc/initramfs-tools/scripts/ogfunctions @@ -108,6 +108,8 @@ ogConfigureRamfs () mkdir -p $OGLIVERAMFS mkdir -p $OGLIVEROOTFS mkdir -p $OGLIVEUNIONFS + + touch /etc/fstab } @@ -248,7 +250,8 @@ ogUpdateInitrd () { cd /tmp mkdir /tmp/cache - mount -t reiserfs LABEL=CACHE /tmp/cache || return + TYPE=$(blkid | grep CACHE | awk -F"TYPE=" '{print $2}' | tr -d \") + mount -t $TYPE LABEL=CACHE /tmp/cache || return mkdir /tmp/cache/boot @@ -314,7 +317,7 @@ ogConnect () case "$PROTOCOL" in nfs) - nfsmount -o nolock${READONLY} ${SERVER}:${SRC} ${DST} + nfsmount ${SERVER}:${SRC} ${DST} -o nolock${READONLY} 2> /dev/null || mount.nfs ${SERVER}:${SRC} ${DST} -o nolock${READONLY} ;; smb) mount.cifs //${SERVER}/${SRC} ${DST} ${OPTIONS}${READONLY} @@ -339,10 +342,12 @@ ogConnectOgLive () then echo "Montar imagen del sistema root desde dispositivo local" for i in $(blkid /dev/s* | grep $OGLIVELABEL | awk -F: '{print $2}' | tr -d \"); do export $i; done - mount -t $TYPE LABEL=$LABEL $DSTOGLIVE + # si local usb| cd con partcion es identificada como label $OGLIVELABEL + mount -t $TYPE LABEL=$OGLIVELABEL $DSTOGLIVE if [ $? != 0 ] then - mount -t reiserfs LABEL=CACHE $DSTOGLIVE + # Si local es particion CACHE es identificada como CACHE + mount LABEL=CACHE $DSTOGLIVE export LOCALMEDIA=CACHE fi else diff --git a/client/boot-tools/includes/etc/initramfs-tools/scripts/oginit b/client/boot-tools/includes/etc/initramfs-tools/scripts/oginit index cc179f9f..95efe282 100755 --- a/client/boot-tools/includes/etc/initramfs-tools/scripts/oginit +++ b/client/boot-tools/includes/etc/initramfs-tools/scripts/oginit @@ -102,7 +102,7 @@ mountroot () [ "$ogdebug" == "true" ] && ogYesNo --timeout 5 --default no "Stop before connect with REPOSITORY STORAGE on $OGSERVERIMAGES : y/N " [ $? == 0 ] && sh || echo " " - ogConnect $OGSERVERIMAGES $OGPROTOCOL $SRCOGIMAGES $DSTOGIMAGES + ogConnect $OGSERVERIMAGES $OGPROTOCOL $SRCOGIMAGES $DSTOGIMAGES ,ro [ "$ogdebug" == "true" ] && ogYesNo --timeout 5 --default no "Stop before doing the postconfiguration: y/N " diff --git a/client/boot-tools/includes/usr/bin/boot-tools/boottoolsSoftwareCompile.sh b/client/boot-tools/includes/usr/bin/boot-tools/boottoolsSoftwareCompile.sh index 568548f2..8d0cede9 100755 --- a/client/boot-tools/includes/usr/bin/boot-tools/boottoolsSoftwareCompile.sh +++ b/client/boot-tools/includes/usr/bin/boot-tools/boottoolsSoftwareCompile.sh @@ -19,9 +19,6 @@ which udp-sender || udpcast install &>/dev/null echo "ms-sys " which ms-sys || ms-sys install &>/dev/null -echo "echo partclone " -#which partclone.ntfs || $(wget -O partclone_0.2.16_i386.deb http://downloads.sourceforge.net/project/partclone/stable/0.2.16/partclone_0.2.16_i386.deb?use_mirror=ovh &>/dev/null; gdebi -n partclone_0.2.16_i386.deb &>/dev/null) -which partclone.ntfs || gdebi -n /var/cache/apt/archivesOG/partclone_0.2.8_i386.deb echo "spartlnx" which spartlnx.run || $(wget http://damien.guibouret.free.fr/savepart.zip &>/dev/null; unzip -o savepart.zip -d /sbin/) @@ -29,4 +26,14 @@ which spartlnx.run || $(wget http://damien.guibouret.free.fr/savepart.zip &>/dev echo "xvesa" gdebi -n /var/cache/apt/archivesOG/xvesa.deb +echo "partclone" +gdebi -n /var/cache/apt/archivesOG/partclone_0.2.38_i386.deb + +#echo "busybox" +#gdebi -n /var/cache/apt/archivesOG/busybox_1.17.1-10ubuntu1_i386.deb + +echo "busybox-static" +gdebi -n /var/cache/apt/archivesOG/busybox-static_1.17.1-10ubuntu1_i386.deb + + history -c \ No newline at end of file diff --git a/client/boot-tools/includes/usr/bin/boot-tools/boottoolsSoftwareInstall.sh b/client/boot-tools/includes/usr/bin/boot-tools/boottoolsSoftwareInstall.sh index 9af72199..738c5368 100755 --- a/client/boot-tools/includes/usr/bin/boot-tools/boottoolsSoftwareInstall.sh +++ b/client/boot-tools/includes/usr/bin/boot-tools/boottoolsSoftwareInstall.sh @@ -4,46 +4,56 @@ export LC_ALL=C export LANG=C #LOG_FILE=/tmp/boot-tools-software.txt +#ADV #Desactivamos upstart dpkg-divert --local --rename --add /sbin/initctl ln -s /bin/true /sbin/initctl +#TEST desactivamos upstart +#apt-get update; apt-get install --no-install-recommends dbus; dbus-uuidgen > /var/lib/dbus/machine-id; dpkg-divert --local --rename --add /sbin/initctl; ln -s /bin/true /sbin/initctl #cp /tmp/sources.list /etc/apt/sources.list #Limpiamos y actualizamos los repositorios apt apt-get clean apt-get update -#Desactivamos el hook del oginitrd.img para evitar problemas. +#Desactivamos el hook del oginitrd.img para evitar problemas, al final de este escripts se activará mv /etc/initramfs-tools/hooks/oghooks /etc/initramfs-tools/ +# Preparamos el mtab necesario para la instalacion correcta de paquetes. echo " /dev/sda1 / ext4 rw,errors=remount-ro 0 0 " > /etc/mtab #Instalamos el kernel. +#Deteccion de la versión y kernel a usar export OSDISTRIB=$(lsb_release -i | awk -F: '{sub(/\t/,""); print $2}') 2>/dev/null export OSCODENAME=$(cat /etc/lsb-release | grep CODENAME | awk -F= '{print $NF}') export OSRELEASE=$(uname -a | awk '{print $3}') uname -a | grep x86_64 > /dev/null && export OSARCH=amd64 || export OSARCH=i386 export OSHTTP="http://es.archive.ubuntu.com/ubuntu/" -# software Kernel +# inicio de la instalacion apt-get -y --force-yes install linux-image-${OSRELEASE} linux-headers-${OSRELEASE} linux-image-$RELEASE -#Eliminamos cualquier busybox previo: antes del busybox. + +#Eliminamos cualquier busybox previo: antes del busybox apt-get -y --force-yes remove busybox +apt-get -y --force-yes remove busybox-static #estos paquetes ofrecen interaccion. # si es actualización, ya existe el fichero /etc/ssh/ssh_config apt-get -y install sshfs - apt-get -y install console-data +#comenzamos con la instalación de los paquetes a instalar. for group in `find /usr/bin/boot-tools/listpackages/ -name sw.*` do echo "Instalando el grupo de paquetes almacenados en $group" for package in ` awk /^install/'{print $2}' $group ` do echo -n $package - apt-get -y --force-yes install $package &>/dev/null + #ADV + #TEST + #apt-get -y --force-yes install --no-install-recommends $package &>/dev/null + apt-get -y --force-yes install $package &>/dev/null RETVAL=$? if [ $RETVAL == 0 ] then @@ -60,10 +70,19 @@ done #Activamos el hook del oginitrd.img mv /etc/initramfs-tools/oghooks /etc/initramfs-tools/hooks/ +# Dejamos el mtab como al principio echo " " > /etc/mtab + +#ADV +#TEST +#apt-get install localepurge +#localepurge +#rm /var/lib/dbus/machine-id; rm /sbin/initctl; dpkg-divert --rename --remove /sbin/initctl; +#FIN ADV apt-get clean apt-get autoclean apt-get autoremove history -c + diff --git a/client/boot-tools/includes/usr/bin/boot-tools/listpackages/sw.Xwindow b/client/boot-tools/includes/usr/bin/boot-tools/listpackages/sw.Xwindow index 25356820..68ea963d 100644 --- a/client/boot-tools/includes/usr/bin/boot-tools/listpackages/sw.Xwindow +++ b/client/boot-tools/includes/usr/bin/boot-tools/listpackages/sw.Xwindow @@ -7,4 +7,5 @@ install roxterm install gparted #xvesa en compilacion -install openbox \ No newline at end of file +install openbox +install midori \ No newline at end of file diff --git a/client/boot-tools/includes/usr/bin/boot-tools/listpackages/sw.basic b/client/boot-tools/includes/usr/bin/boot-tools/listpackages/sw.basic index 4286d652..e65da70e 100644 --- a/client/boot-tools/includes/usr/bin/boot-tools/listpackages/sw.basic +++ b/client/boot-tools/includes/usr/bin/boot-tools/listpackages/sw.basic @@ -3,7 +3,8 @@ install dialog install man-db install fbset install gdebi-core -install busybox-static +install bash-static +#install busybox-static #la version en oneiric no incluye el reboot y poweroff -> ver compilacion software install console-data install locales install lshw diff --git a/client/boot-tools/includes/usr/bin/boot-tools/listpackages/sw.testing b/client/boot-tools/includes/usr/bin/boot-tools/listpackages/sw.testing index 282de9e8..7414c4f4 100644 --- a/client/boot-tools/includes/usr/bin/boot-tools/listpackages/sw.testing +++ b/client/boot-tools/includes/usr/bin/boot-tools/listpackages/sw.testing @@ -1,4 +1,74 @@ #sw.other install screen install schroot -install grub \ No newline at end of file +#install grub +############## +#install discover +#install laptop-detect +#install os-prober +#install casper +#install lupin-casper +#install xinit +#install openbox +#install obconf +#install xserver-xorg +#install x11-xserver-utils +#install xterm network-manager-gnome +#install plymouth-x11 +#install plymouth-label +#install plymouth-theme-ubuntu-logo +#install pcmanfm +#install chromium-browser +#install gtk-theme-switch +#install gtk2-engines +#install murrine-themes +####################################3 +#install gnome-icon-theme +#install gnome-brave-icon-theme +#install dmz-cursor-theme +#install python-wnck +#install python-xlib +#install python-pyinotify +#install python-alsaaudio +#install python-vte maximus +#install gpicview +#install leafpad +#install lxappearance +#install lxmenu-data +#install lxrandr +#install lxterminal +#install nitrogen +#install ttf-ubuntu-font-family +#install time +#install hdparm +#install openssh-client +#install synaptic +#install libglib-perl +#install libgtk2-perl +#install libxml-simple-perl +#install rsync +#install smartmontools +#install gnome-disk-utility +#install policykit-1-gnome +#install policykit-desktop-privileges +#install baobab +#install gparted +#install lshw-gtk +#install testdisk +#install usb-creator-gtk +#install wodim +#install curlftpfs +#install nmap +#install cifs-utils +#install libnotify-bin +#install cryptsetup +#install reiserfsprogs +#install dosfstools +#install ntfsprogs +#install ntfs-3g +#install hfsutils +#install reiser4progs +#install jfsutils +#install smbclient +#install wget +#install system-config-lvm diff --git a/client/boot-tools/includes/var/cache/apt/archivesOG/busybox-static_1.17.1-10ubuntu1_i386.deb b/client/boot-tools/includes/var/cache/apt/archivesOG/busybox-static_1.17.1-10ubuntu1_i386.deb new file mode 100644 index 00000000..c72adfba Binary files /dev/null and b/client/boot-tools/includes/var/cache/apt/archivesOG/busybox-static_1.17.1-10ubuntu1_i386.deb differ diff --git a/client/boot-tools/includes/var/cache/apt/archivesOG/busybox_1.17.1-10ubuntu1_i386.deb b/client/boot-tools/includes/var/cache/apt/archivesOG/busybox_1.17.1-10ubuntu1_i386.deb new file mode 100644 index 00000000..53679b05 Binary files /dev/null and b/client/boot-tools/includes/var/cache/apt/archivesOG/busybox_1.17.1-10ubuntu1_i386.deb differ diff --git a/client/boot-tools/includes/var/cache/apt/archivesOG/partclone_0.2.38_i386.deb b/client/boot-tools/includes/var/cache/apt/archivesOG/partclone_0.2.38_i386.deb new file mode 100644 index 00000000..6159c766 Binary files /dev/null and b/client/boot-tools/includes/var/cache/apt/archivesOG/partclone_0.2.38_i386.deb differ diff --git a/client/engine/Boot.lib b/client/engine/Boot.lib index e21935ca..2b8e1a3a 100755 --- a/client/engine/Boot.lib +++ b/client/engine/Boot.lib @@ -88,7 +88,8 @@ case "$TYPE" in esac # Arrancar. -kexec -e +kexec -e & +pkill browser } diff --git a/client/engine/Cache.lib b/client/engine/Cache.lib index 341525e2..50cd01de 100755 --- a/client/engine/Cache.lib +++ b/client/engine/Cache.lib @@ -160,11 +160,11 @@ DEV=$(ogDiskToDev $DEV) || return $? # Formatear sistema de ficheros. ogUnmountCache 2>/dev/null + # Orden para formateo Ext4 +mkfs.ext4 -q -F $DEV -L "CACHE" -O extent,large_file 2>/dev/null || ogRaiseError $OG_ERR_PARTITION "CACHE" || return $? # Orden para formateo Reiser 3 -mkfs.reiserfs -f $DEV -l "CACHE" 2>/dev/null || ogRaiseError $OG_ERR_PARTITION "CACHE" || return $? - # Orden para formateo XFS - #mkfs.xfs $DEV -L "CACHE" || ogRaiseError $OG_ERR_PARTITION "CACHE" || return $? -# Crear estructura básica + #mkfs.reiserfs -f $DEV -l "CACHE" 2>/dev/null || ogRaiseError $OG_ERR_PARTITION "CACHE" || return $? +# Crear estructura básica. MNTDIR=$(ogMountCache) mkdir -p $MNTDIR/$OGIMG } diff --git a/client/engine/Disk.lib b/client/engine/Disk.lib index cbf44bbc..fbedc66d 100755 --- a/client/engine/Disk.lib +++ b/client/engine/Disk.lib @@ -288,7 +288,7 @@ case "$1" in HNTFS) ID=17 ;; HFAT32) ID=1b ;; LINUX-SWAP) ID=82 ;; - EXT[234]|REISERFS|REISER4|XFS|JFS) + LINUX|EXT[234]|REISERFS|REISER4|XFS|JFS) ID=83 ;; LINUX-LVM) ID=8e ;; SOLARIS) ID=bf ;; @@ -471,12 +471,63 @@ esac #/** # ogGetPartitionType int_ndisk int_npartition -#@brief Muestra el tipo de una particion determinada. -#@see ogGetFsType +#@brief Devuelve el mnemonico con el tipo de partición. +#@param int_ndisk nº de orden del disco +#@param int_npartition nº de orden de la partición +#@return Mnemonico +#@note Mnemonico: { EXT2, EXT3, EXT4, REISERFS, XFS, JFS, LINUX-SWAP, LINUX-LVM, LINUX-RAID, SOLARIS, FAT16, HFAT16, FAT32, HFAT32, NTFS, HNTFS, WIN-DYNAMIC, CACHE, EMPTY, EXTENDED, UNKNOWN } +#@exception OG_ERR_FORMAT Formato incorrecto. +#@exception OG_ERR_NOTFOUND Disco o particion no corresponden con un dispositivo. +#@version 0.1 - Integracion para Opengnsys - EAC: TypeFS() en ATA.lib +#@author Antonio J. Doblas Viso. Universidad de Malaga +#@date 2008-10-27 +#@version 0.9 - Primera adaptacion para OpenGnSys. +#@author Ramon Gomez, ETSII Universidad de Sevilla +#@date 2009-07-21 +#@version 1.0.3 - Código trasladado de antigua función ogGetFsType. +#@author Ramon Gomez, ETSII Universidad de Sevilla +#@date 2011-12-01 #*/ ## function ogGetPartitionType () { -ogGetFsType "$@" +# Variables locales. +local ID TYPE + +# Si se solicita, mostrar ayuda. +if [ "$*" == "help" ]; then + ogHelp "$FUNCNAME" "$FUNCNAME int_ndisk int_npartition" \ + "$FUNCNAME 1 1 => NTFS" + return +fi +# Error si no se reciben 2 parámetros. +[ $# == 2 ] || ogRaiseError $OG_ERR_FORMAT || return $? + +# Detectar id. de tipo de partición y codificar al mnemonico. +ID=$(ogGetPartitionId "$1" "$2") || return $? +case "$ID" in + 0) TYPE="EMPTY" ;; + 1) TYPE="FAT12" ;; + 5|f) TYPE="EXTENDED" ;; + 6|e) TYPE="FAT16" ;; + 7) TYPE="NTFS" ;; + b|c) TYPE="FAT32" ;; + 11) TYPE="HFAT12" ;; + 12) TYPE="COMPAQDIAG" ;; + 16|1e) TYPE="HFAT16" ;; + 17) TYPE="HNTFS" ;; + 1b|1c) TYPE="HFAT32" ;; + 42) TYPE="WIN-DYNAMIC" ;; + 82) TYPE="LINUX-SWAP" ;; + 83) TYPE="LINUX" ;; + 8e) TYPE="LINUX-LVM" ;; + a7) TYPE="CACHE" ;; # (compatibilidad con Brutalix) + af) TYPE="HFS" ;; + bf) TYPE="SOLARIS" ;; + ca) TYPE="CACHE" ;; + fd) TYPE="LINUX-RAID" ;; + *) TYPE="UNKNOWN" ;; +esac +echo "$TYPE" } @@ -554,7 +605,7 @@ fi DISK="$(ogDiskToDev $1)" || return $? NPARTS=$(ogGetPartitionsNumber $1) for (( PART = 1; PART <= NPARTS; PART++ )); do - TYPE=$(ogGetFsType $1 $PART 2>/dev/null) + TYPE=$(ogGetPartitionType $1 $PART 2>/dev/null) if [ $? -eq 0 ]; then SIZE=$(ogGetPartitionSize $1 $PART 2>/dev/null) echo -n "$TYPE:$SIZE " diff --git a/client/engine/FileSystem.lib b/client/engine/FileSystem.lib index 5c69e089..1af06de8 100755 --- a/client/engine/FileSystem.lib +++ b/client/engine/FileSystem.lib @@ -51,10 +51,10 @@ case "$TYPE" in REISER4) PROG="fsck.reiser4"; PARAMS="-ay" ;; JFS) PROG="fsck.jfs"; CODES=(1 2) ;; XFS) PROG="fsck.xfs" ;; - NTFS|HNTFS) PROG="ntfsfix" ;; - FAT32|HFAT32) PROG="dosfsck"; PARAMS="-a"; CODES=1 ;; - FAT16|HFAT16) PROG="dosfsck"; PARAMS="-a"; CODES=1 ;; - FAT12|HFAT12) PROG="dosfsck"; PARAMS="-a"; CODES=1 ;; + NTFS) PROG="ntfsfix" ;; + FAT32) PROG="dosfsck"; PARAMS="-a"; CODES=1 ;; + FAT16) PROG="dosfsck"; PARAMS="-a"; CODES=1 ;; + FAT12) PROG="dosfsck"; PARAMS="-a"; CODES=1 ;; *) ogRaiseError $OG_ERR_PARTITION "$1, $2, $TYPE" return $? ;; esac @@ -124,7 +124,7 @@ TYPE=$(ogGetFsType $1 $2) case "$TYPE" in EXT[234]) PROG="resize2fs"; PARAMS="-f" ;; REISERFS) PROG="resize_reiserfs"; PARAMS="-f" ;; - NTFS|HNTFS) PROG="ntfsresize"; PARAMS="<<<\"y\" -f" ;; + NTFS) PROG="ntfsresize"; PARAMS="<<<\"y\" -f" ;; *) ogRaiseError $OG_ERR_PARTITION "$1 $2 $TYPE" return $? ;; esac @@ -284,15 +284,18 @@ return $ERRCODE #@param int_ndisk nº de orden del disco #@param int_npartition nº de orden de la partición #@return Mnemonico -#@note Mnemonico: { EXT2, EXT3, EXT4, REISERFS, XFS, JFS, LINUX-SWAP, LINUX-LVM, LINUX-RAID, SOLARIS, FAT16, HFAT16, FAT32, HFAT32, NTFS, HNTFS, WIN-DYNAMIC, CACHE, EMPTY, EXTENDED, UNKNOWN } +#@note Mnemonico: { EXT2, EXT3, EXT4, REISERFS, XFS, JFS, FAT16, FAT32, NTFS, CACHE } #@exception OG_ERR_FORMAT Formato incorrecto. #@exception OG_ERR_NOTFOUND Disco o particion no corresponden con un dispositivo. #@version 0.1 - Integracion para Opengnsys - EAC: TypeFS() en ATA.lib #@author Antonio J. Doblas Viso. Universidad de Malaga #@date 2008-10-27 -#@version 0.9 - Primera adaptacion para OpenGNSys. +#@version 0.9 - Primera adaptacion para OpenGnSys. #@author Ramon Gomez, ETSII Universidad de Sevilla #@date 2009-07-21 +#@version 1.0.2 - Obtención de datos reales de sistemas de ficheros. +#@author Ramon Gomez, ETSII Universidad de Sevilla +#@date 2011-12-02 #*/ ## function ogGetFsType () { @@ -310,38 +313,23 @@ fi # Detectar id. de tipo de partición y codificar al mnemonico. DISK=$(ogDiskToDev "$1") || return $? ID=$(ogGetPartitionId "$1" "$2") || return $? +TYPE="" case "$ID" in - 0) TYPE="EMPTY" ;; - 1) TYPE="FAT12" ;; - 5|f) TYPE="EXTENDED" ;; - [6e]) TYPE="FAT16" ;; - 7) TYPE="NTFS" ;; # Nota: también puede ser EXFAT - [bc]) TYPE="FAT32" ;; - 11) TYPE="HFAT12" ;; - 12) TYPE="COMPAQDIAG" ;; - 1[6e]) TYPE="HFAT16" ;; - 17) TYPE="HNTFS" ;; - 1[bc]) TYPE="HFAT32" ;; - 42) TYPE="WIN-DYNAMIC" ;; - 82) TYPE="LINUX-SWAP" ;; - 83) TYPE="$(parted -sm $DISK print 2>/dev/null | \ - awk -F: -v fs=$2 '{if ($1==fs) {print toupper($5)}}')" - # Si el tipo no es válido para partición Linux, Ext3 por defecto. - case "$TYPE" in - EXT[234]|REISERFS|REISER4|BTRFS|JFS|XFS) - ;; - *) TYPE="EXT3" ;; - esac - ;; - 8e) TYPE="LINUX-LVM" ;; - a7) TYPE="CACHE" ;; # (compatibilidad con Brutalix) - af) TYPE="HFS" ;; - bf) TYPE="SOLARIS" ;; - ca) TYPE="CACHE" ;; - fd) TYPE="LINUX-RAID" ;; - *) TYPE="UNKNOWN" ;; + ca|a7) # Detectar Caché local. + ogIsFormated $1 $2 2>/dev/null && TYPE="CACHE" + ;; + *) # Detectar sistema de ficheros. + if ogIsFormated $1 $2 2>/dev/null; then + TYPE=$(parted -ms $DISK print | \ + awk -F: -v p=$2 '{if ($1==p) { + sub (/\(.*\)/, ""); + print toupper($5); + } }') + fi + ;; esac -echo "$TYPE" + +[ -n "$TYPE" ] && echo "$TYPE" } @@ -889,10 +877,8 @@ fi DISK="$(ogDiskToDev $1)" || return $? for ((PART=1; PART<=$(ogGetPartitionsNumber $1); PART++)); do case "$(ogGetFsType $1 $PART)" in - CACHE|LINUX-SWAP) - ;; - *) - ogUnmount $1 $PART ;; + CACHE) ;; + *) ogUnmount $1 $PART ;; esac done } diff --git a/client/engine/Inventory.lib b/client/engine/Inventory.lib index b610639e..b1173dd7 100755 --- a/client/engine/Inventory.lib +++ b/client/engine/Inventory.lib @@ -76,12 +76,13 @@ case "$(ogGetFsType $1 $2)" in FILE="$MNTDIR/etc/arch-release" [ -r $FILE ] && VERSION="Arch Linux" fi - [ -e $MNTDIR/lib64 ] && VERSION="$VERSION 64 bits" + [ -e $MNTDIR/lib64 ] && VERSION="$VERSION $MSG_64BIT" ;; NTFS | HNTFS | FAT32 | HFAT32) TYPE="Windows" # Para Windows: leer la version del registro. VERSION=$(ogGetRegistryValue $MNTDIR software '\Microsoft\Windows NT\CurrentVersion\ProductName') + [ -n "$(ogGetRegistryValue $MNTDIR software '\Microsoft\Windows\CurrentVersion\ProgramW6432Dir' 2>/dev/null)" ] && VERSION="$VERSION $MSG_64BIT" ;; esac diff --git a/client/engine/PostConfEAC.lib b/client/engine/PostConfEAC.lib index f2487919..33667f47 100755 --- a/client/engine/PostConfEAC.lib +++ b/client/engine/PostConfEAC.lib @@ -35,6 +35,8 @@ DISK=$1; PART=$2; #VERSION=$(ogGetOsVersion $DISK $PART) #Fin Comprobaciones redundantes: borrar" + +# primera fase, carga de los hive del sistema if ogGetPath $DISK $PART WINDOWS then SYSTEMROOT="Windows" @@ -50,37 +52,17 @@ hiveSYSTEM=$(ogGetPath $DISK $PART /${SYSTEMROOT}/system32/config/system) && exp hiveSOFTWARE=$(ogGetPath $DISK $PART /${SYSTEMROOT}/system32/config/software) && export hiveSOFTWARE || return $(ogRaiseError $OG_ERR_NOTOS "hive SOFTWARE no detectada"; echo $?) export TEMPhive=/tmp/tmpregistry -## borrar elementos de la primera integracion -#export particion=`ogMount $DISK $PART` -#mkfifo pipe 2>/dev/null -#declare -i count -#declare -A HivePathUser -#count=3 -# fin borrar elementos de la primera integracion - +# segunda fase, carga de los hive de usuarios windows. declare -i COUNT COUNT=3 -BASEHOMEDIR=$(ogGetPath 1 1 /"Documents and Settings") +#TODO WINDOWS XP WINDOWS7 +BASEHOMEDIR=$(ogGetPath $DISK $PART /"Documents and Settings") TMPUSERFILE="/tmp/WuserRegAndDAT.tmp" find "$BASEHOMEDIR/" -type f -name NTUSER.DAT > $TMPUSERFILE LISTUSERS=$(drbl-chntpw -l $hiveSAM | grep RID | awk -F"<" '{print $2}' | awk -F">" '{print $1}') #echo "$BASEHOMEDIR" $LISTUSERS for user in $LISTUSERS -do - # borrar elementos de la primera integracion. - #if find ${particion}/ -type f -name NTUSER.DAT > pipe| cat pipe | grep $user > /tmp/path.txt.$count - #then - #echo pefil de $user encontrado, para utilizar este usuario con funciones utilizar id_hive= $count o \$usuario - #read camino < /tmp/path.txt.$count - #echo $camino | sed -e 's/ /\\ /g' > /tmp/path.txt.$count - #camino2=$(echo $camino | sed -e 's/ /\\ /g') - #echo $camino2 | sed -e 's/\\/\\\\/g' > /tmp/path.txt.$count - #export `echo $user=hiveUSER$count` - #export `echo hiveUSER$count`="$camino2" - #count=${count}+1 - #fiecho $user - # Fin borrar elementos de la primera integracion. - +do # Comprobamos que el usuario registrado tiene .DAT if HOMEDIR=$(cat $TMPUSERFILE | grep -w $user) then @@ -501,16 +483,23 @@ EOF } -function NTStatusBootChk () { +function ogSetWindowsChkdisk() { if [ $# = 0 ] then -echo sintaxis: Int-Status +echo sintaxis: true|TRUE|0 false|false|1 echo ejemplos: int=0 desactivado int=1 activado return 2 fi -[ $1 = 0 ] && valor="none" -[ $1 = 1 ] && valor="autocheck autochk *" -cat >> $temporal << EOF +case $1 in + 0|true|TRUE) + valor="autocheck autochk *";; + 1|false|FALSE) + valor="none";; + *) + return 0 ;; +esac + +cat >> $TEMPhive << EOF hive 1 cd \ControlSet001\Control\Session Manager ed BootExecute @@ -520,6 +509,45 @@ EOF } + +### FASE DE PRUEBAS NO FUNCIONA +function NTStartRecovery () { +if [ $# = 0 ] +then + echo sintaxis: Int-Status + echo ejemplos: int=0 desactivado int=1 activado + return 2 +fi + +[ $1 = 0 ] && valor="none" +[ $1 = 1 ] && valor="00000000" + + +cat >> $TEMPhive << EOF +hive 2 +#cd \Policies\Microsoft\Windows\WinRE +#ed DisableSetup +cd \Policies\Microsoft\Windows +nk WinRE +nv 4 DisableSetup +ed DisableSetup +$valor +--n +EOF + + +#Activado +#[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WinRE] +#"DisableSetup"=- + +# Desactivado +#[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WinRE] +#"DisableSetup"=dword:00000000 + + +} + + function ogSchrootLinux () { # Variables locales. diff --git a/client/shared/etc/engine.cfg b/client/shared/etc/engine.cfg new file mode 100644 index 00000000..1bf98b5d --- /dev/null +++ b/client/shared/etc/engine.cfg @@ -0,0 +1,22 @@ +## Definicion general +OGENGINECONFIGURATE="TRUE" +OGLOGSESSION="/tmp/session.log" +OGLOGCOMMAND="/tmp/command.log" + +#Definicion PostConfiguracion OS WIndows +OGWINCHKDISK=TRUE + +#interface restauracion +#Que hacer cuando la cache no tenga espacio libre. [ NONE] -- en desarrollo -> |DELETE|FORMAT] +ACTIONCACHEFULL=NONE +# Definimos el protocolo a usar en el caso de que no exita cache o no haya espacio sufiencie. +RESTOREPROTOCOLNOCACHE=UNICAST + +#script Creacion imagen +IMGPROG="partclone" +IMGCOMP="lzop" +IMGEXT="img" +IMGREDUCE="TRUE" + +#scripts Clonacion remota usando master +OGWINREDUCE=TRUE \ No newline at end of file diff --git a/client/shared/etc/init/default.sh b/client/shared/etc/init/default.sh index d1fea1c9..7b443e23 100755 --- a/client/shared/etc/init/default.sh +++ b/client/shared/etc/init/default.sh @@ -1,47 +1,18 @@ #!/bin/bash +# Proceso general de arranque de OpenGnSys Client. -# TODO Separar esta sección en otro script - - -# Lanzar servicios complementarios del cliente. -PASS=$(grep "^[ ]*\(export \)\?OPTIONS=" /scripts/ogfunctions 2>&1 | \ - sed 's/\(.*\)pass=\(\w*\)\(.*\)/\2/') -PASS=${PASS:-"og"} -echo -ne "$PASS\n$PASS\n" | passwd root 2>/dev/null - -# Inicio del servidor sshd -/usr/sbin/sshd - -# Desactivado apagado de monitor -#setterm -blank 0 -powersave off -powerdown 0 < /dev/console > /dev/console 2>&1 - -# Activado WOL en la interfaz usada en arranque pxe -ethtool -s $DEVICE wol g 2>/dev/null # Fichero de registro de incidencias (en el servidor; si no, en local). OPENGNSYS=${OPENGNSYS:-/opt/opengnsys} -OGLOGFILE=${OGLOGFILE:-$OPENGNSYS/log/${ogGetIpAdderss},log} +OGLOGFILE=${OGLOGFILE:-$OPENGNSYS/log/$(ogGetIpAdderss).log} if ! touch $OGLOGFILE 2>/dev/null; then OGLOGFILE=/var/log/opengnsys.log fi LOGLEVEL=5 -#Facilitando el entorno Og desde ssh -cp $OPENGNSYS/etc/preinit/loadenviron.sh /etc/profile.d/ - - - -########## PRUEBAS -# Crear menú por defecto para el cliente -generateMenuDefault - # Matando plymount para inicir browser o shell pkill -9 plymouthd -[ -f /opt/opengnsys/scripts/runhttplog.sh ] && /opt/opengnsys/scripts/runhttplog.sh - -########## FIN PRUEBAS - # Arranque de OpenGnSys Client daemon (web services). if [ -x $OPENGNSYS/job_executer/init.d/job_executer ]; then echo "Running Opengnsys client daemon (web services)" @@ -50,8 +21,8 @@ fi # Arranque de OpenGnSys Client daemon (socket). if [ -x "$OPENGNSYS/bin/ogAdmClient" ]; then - echo "$MSG_LAUNCHCLIENT" - [ $ogactiveadmin == "true" ] && boot=admin + echo "${MSG_LAUNCHCLIENT:-.}" + [ $ogactiveadmin == "true" ] && boot="admin" $OPENGNSYS/bin/ogAdmClient -f $OPENGNSYS/etc/ogAdmClient.cfg -l $OGLOGFILE -d $LOGLEVEL fi @@ -59,3 +30,5 @@ fi if [ "$boot" == "admin" ]; then bash fi + + diff --git a/client/shared/etc/lang.ca_ES.UTF-8.conf b/client/shared/etc/lang.ca_ES.UTF-8.conf new file mode 120000 index 00000000..db97a007 --- /dev/null +++ b/client/shared/etc/lang.ca_ES.UTF-8.conf @@ -0,0 +1 @@ +lang.ca_ES.conf \ No newline at end of file diff --git a/client/shared/etc/lang.ca_ES.conf b/client/shared/etc/lang.ca_ES.conf new file mode 100644 index 00000000..bcea34b4 --- /dev/null +++ b/client/shared/etc/lang.ca_ES.conf @@ -0,0 +1,199 @@ +# Idioma español. + +# Mensajes de error. +MSG_ERR_GENERIC="Error imprevisto no definido" +MSG_ERR_FORMAT="Formato de ejecución incorrecto" +MSG_ERR_OUTOFLIMIT="Valor fuera de rango o no válido" +MSG_ERR_NOTFOUND="Fichero o dispositivo no encontrado" +MSG_ERR_PARTITION="Partición errónea o desconocida" +MSG_ERR_LOCKED="Recurso bloqueado por operación de uso exclusivo" +MSG_ERR_CACHE="Error en partición de caché local" +MSG_ERR_FILESYS="Sistema de archivos desconocido o no se puede montar" +MSG_ERR_NOTOS="Sistema operativo no instalado o no detectado" +MSG_ERR_IMAGE="No se puede crear o restaurar una image de sistema" +MSG_ERR_NOTEXEC="Programa o función no ejecutable" +MSG_ERR_NOTWRITE="No hay acceso de escritura" +MSG_ERR_NOTCACHE="No existe particion Cache en el cliente" +MSG_ERR_CACHESIZE="El espacio de la cache local o remota no es suficiente" +MSG_ERR_REDUCEFS="Error al reducir el sistema de archivos" +MSG_ERR_EXTENDFS="Error al expandir el sistema de archivos" +MSG_ERR_IMGSIZEPARTITION="Error al restaurar: Particion mas pequeña que la imagen" +MSG_ERR_UCASTSYNTAXT="Error en la generación de sintaxis de transferenica unicast" +MSG_ERR_UCASTSENDPARTITION="Error en envio UNICAST de una particion" +MSG_ERR_UCASTSENDFILE="Error en envio UNICAST de un fichero" +MSG_ERR_UCASTRECEIVERPARTITION="Error en la recepcion UNICAST de una particion" +MSG_ERR_UCASTRECEIVERFILE="Error en la recepcion UNICAST de un fichero" +MSG_ERR_MCASTSYNTAXT="Error en la generación de sintaxis de transferenica multicast" +MSG_ERR_MCASTSENDFILE="Error en envio MULTICAST de un fichero" +MSG_ERR_MCASTRECEIVERFILE="Error en la recepcion MULTICAST de un fichero" +MSG_ERR_MCASTSENDPARTITION="Error en envio MULTICAST de una particion" +MSG_ERR_MCASTRECEIVERPARTITION="Error en la recepcion MULTICAST de un fichero" +MSG_ERR_PROTOCOLJOINMASTER="Error en la conexion de una sesion UNICAST|MULTICAST con el MASTER" + + +# Mensajes de avisos. +MSG_DONTMOUNT="Sistema de archivos no montado" +MSG_DONTUNMOUNT="El sistema de archivos no se puede desmontar o no está montado" + +# Mensajes complementarios para las ayudas. +MSG_64BIT="64 bits" +MSG_ERROR="Error" +MSG_EXAMPLE="Ejemplo" +MSG_FORMAT="Formato" +MSG_FUNCTION="Función" +MSG_HARDWAREINVENTORY="Inventario de hardware de la máquina" +MSG_IMAGE="imagen" +MSG_INSTALLED="instalado" +MSG_NOCACHE="sin caché local" +MSG_NOEXTENDED="sin partición extendida" +MSG_NOFORMAT="sin formato" +MSG_PARTITION="partición" +MSG_PROTOCOL="protocolo" +MSG_RESERVEDVALUE="Valor reservado" +MSG_UNKNOWN="Desconocido" + +# Mensajes del proceso de arranque. +MSG_DETECTLVMRAID="Detectar metadispositivos LVM y RAID." +MSG_ERRBOOTMODE="$MSG_ERROR: Modo de arranque desconocido." +MSG_LAUNCHCLIENT="Ejecutar cliente." +MSG_LOADAPI="Cargar funciones del motor de clonación." +MSG_LOADMODULES="Cargar módulos del kernel." +MSG_MAKELINKS="Crear enlaces simbólicos." +MSG_MOUNTREPO="Montar repositorio por %s en modo %s." +MSG_OFFLINEMODE="Modo de arranque sin conexión." +MSG_OTHERSERVICES="Iniciar servicios complementarios del cliente." +MSG_POWEROFFCONF="Definir parámetros de ahorro de energía." +# Mensajes en desuso +MSG_ERRLOADUDEB="$MSG_ERROR: No se puede cargar el paquete udeb %s." +MSG_LOADUDEBS="Cargar paquetes udeb." + +# Mensajes de descripción breve de las funciones de la API. +MSG_HELP_ogAddRegistryKey="Añade una nueva clave al registro de Windows." +MSG_HELP_ogAddRegistryValue="Añade un nuevo valor al registro de Windows." +MSG_HELP_ogBoot="Arranca un sistema operativo instalado." +MSG_HELP_ogCalculateChecksum="Calcula la suma de comprobación (checksum) de un fichero." +MSG_HELP_ogCheckFs="Comprueba la consistencia de un sistema de archivos." +MSG_HELP_ogCompareChecksumFiles="Compara si coinciden las sumas de comprobación almacenadas de 2 ficheros." +MSG_HELP_ogCopyFile="Copia un fichero a otro almacenamiento." +MSG_HELP_ogCreateCache="Reserva espacio para la partición de caché al final del disco 1." +MSG_HELP_ogCreateImage="Genera una imagen exacta de un sistema operativo instalado localmente." +MSG_HELP_ogCreateMbrImage="Genera una imagen del sector de arranque (MBR)." +MSG_HELP_ogCreatePartitions="Define la estructura de particiones de un disco." +MSG_HELP_ogDeleteFile="Borra un fichero de un espacio de almacenamiento." +MSG_HELP_ogDeletePartitionTable="Elimina la tabla de particiones del disco" +MSG_HELP_ogDeleteRegistryKey="Borra una clave vacía del registro de Windows." +MSG_HELP_ogDeleteRegistryValue="Borra un valor del registro de Windows." +MSG_HELP_ogDeleteTree="Borra un árbol de directorios de un espacio de almacenamiento." +MSG_HELP_ogDevToDisk="Devuelve el nº de orden de disco o de partición correspondiente al camino del fichero de dispositivo." +MSG_HELP_ogDiskToDev="Devuelve el camino del fichero de dispositivo correspondiente al nº de orden de disco o de partición." +MSG_HELP_ogEcho="" +MSG_HELP_ogExtendFs="Extiende el tamaño de un sistema de archivo al máximo de su partición." +MSG_HELP_ogFindCache="Indica la partición reservada para caché local." +MSG_HELP_ogFormat="Formatea o reformatea un sistema de archivos." +MSG_HELP_ogFormatCache="Formatea (inicia) el sistema de caché local." +MSG_HELP_ogFormatFs=$MSG_HELP_ogFormat +MSG_HELP_ogGetArch="Devuelve el tipo de arquitectura del cliente." +MSG_HELP_ogGetCacheSize="Devuelve el tamaño de la partición de caché local." +MSG_HELP_ogGetCacheSpace="Devuelve el espacio máximo disponible que puede ser reservado para la partición de caché local." +MSG_HELP_ogGetFsSize="Devuelve el tamaño de un sistema de archivos." +MSG_HELP_ogGetFsType="Devuelve el mnemónico de tipo de sistema de archivos." +MSG_HELP_ogGetHivePath="Devuelve el camino completo del fichero de una sección del registro de Windows." +MSG_HELP_ogGetHostname="Devuelve el nombre de la máquina local." +MSG_HELP_ogGetIpAddress="Devuelve la dirección IP del cliente." +MSG_HELP_ogGetImageSize="Devuelve el tamaño de una imagen de sistema." +MSG_HELP_ogGetMacAddress="Devuelve la dirección Ethernet del cliente." +MSG_HELP_ogGetMountPoint="Devuelve el directorio donde está montado un sistema de archivos local." +MSG_HELP_ogGetOsType="Devuelve el tipo de un sistema operativo instalado." +MSG_HELP_ogGetOsVersion="Devuelve el tipo y la versión de un sistema operativo instalado." +MSG_HELP_ogGetParentPath=$"Devuelve el camino completo del directorio padre de un fichero de sistema OpenGnSys." +MSG_HELP_ogGetPartitionActive="Indica cual es la partición marcada como activa en un disco." +MSG_HELP_ogGetPartitionId="Devuelve el identificador de tipo de una partición." +MSG_HELP_ogGetPartitionSize="Devuelve el tamaño de una partición." +MSG_HELP_ogGetPartitionType="Devuelve el mnemónico de tipo de una partición." +MSG_HELP_ogGetPath="Devuelve el camino completo de un fichero de sistema OpenGnSys." +MSG_HELP_ogGetRegistryValue="Devuelve el dato de un valor del registro de Windows." +MSG_HELP_ogGetRepoIp="Devuelve la dirección IP del repositorio de datos." +MSG_HELP_ogGetServerIp="Devuelve la dirección IP del servidor principal." +MSG_HELP_ogGetWindowsName="Devuelve el nombre del cliente guardado en el registro de Windows." +MSG_HELP_ogHelp="Muestra mensajes de ayudas para las funciones." +MSG_HELP_ogHidePartition="Oculta una partición de Windows." +MSG_HELP_ogIdToType="Devuelve el mnemónico asociado al identificador de tipo de partición." +MSG_HELP_ogIsFormated="Comprueba si un sistema de archivos está formateado." +MSG_HELP_ogIsLocked="Comprueba si una partición está bloqueada por una operación de uso exclusivo." +MSG_HELP_ogIsImageLocked="Comprueba si una imagen está bloqueada por una operación de uso exclusivo." +MSG_HELP_ogIsPartitionLocked=$MSG_HELP_ogIsLocked +MSG_HELP_ogIsMounted="Comprueba si un sistema de archivos está montado." +MSG_HELP_ogIsNewerFile="Comprueba si un fichero es más nuevo (se ha modificado después) que otro." +MSG_HELP_ogIsValidType="Comprueba si el tipo de sistema de archivos es válido para un identificador de partición." +MSG_HELP_ogLinuxBootParameters="Devuelve los parámetros de arranque de un sistema operativo Linux instalado." +MSG_HELP_ogListHardwareInfo="Lista el inventario de dispositivos del cliente." +MSG_HELP_ogListPartitions="Lista la estructura de particiones de un disco." +MSG_HELP_ogListRegistryKeys="Lista los nombres de las subclaves incluidas en una clave del registro de Windows." +MSG_HELP_ogListRegistryValues="Lista los nombres de los valores incluidos en una clave del registro de Windows." +MSG_HELP_ogListSoftware="Lista el inventario de programas instalados en un sistema operativo." +MSG_HELP_ogLock="Bloquea una partición para operación de uso exclusivo." +MSG_HELP_ogLockImage="Bloquea una imagen para operación de uso exclusivo." +MSG_HELP_ogLockPartition=$MSG_HELP_ogLock +MSG_HELP_ogMakeChecksumFile="Almacena la suma de comprobación de un fichero." +MSG_HELP_ogMakeDir="Crea un directorio para OpenGnSys." +MSG_HELP_ogMount="Monta un sistema de archivos y devuelve el punto de montaje." +MSG_HELP_ogMountCache="Monta el sistema de archivos dedicado a caché local." +MSG_HELP_ogMountCdrom="" +MSG_HELP_ogMountFs=$MSG_HELP_ogMount +MSG_HELP_ogRaiseError="Muestra y registra mensajes de error y devuelve el código correspondiente." +MSG_HELP_ogReduceFs="Reduce el tamaño del sistema de archivos al mínimo ocupado por sus datos." +MSG_HELP_ogRestoreImage="Restaura una imagen de sistema operativo." +MSG_HELP_ogRestoreMbrImage="Restaura una imagen del sector de arranque (MBR)." +MSG_HELP_ogSetPartitionActive="Establece el número de partición activa de un disco." +MSG_HELP_ogSetPartitionId="Modifica el identificador de tipo de una partición física." +MSG_HELP_ogSetPartitionSize="Establece el tamaño de una partición." +MSG_HELP_ogSetRegistryValue="Asigna un dato a un valor del registro de Windows." +MSG_HELP_ogSetWindowsName="Asigna el nombre del cliente en el registro de Windows." +MSG_HELP_ogSetWinlogonUser="Asigna el nombre de usuario por defecto para el gestor de entrada de Windows." +MSG_HELP_ogTypeToId="Devuelve el identificador asociado al mnemónico de tipo de partición." +MSG_HELP_ogUnhidePartition="Hace visible una partición de Windows." +MSG_HELP_ogUnlock="Desbloquea una partición tras finalizar una operación de uso exclusivo." +MSG_HELP_ogUnlockImage="Desbloquea una imagen tras finalizar una operación de uso exclusivo." +MSG_HELP_ogUnlockPartition=$MSG_HELP_ogUnlock +MSG_HELP_ogUnmount="Desmonta un sistema de archivos." +MSG_HELP_ogUnmountCache="Desmonta el sistema de archivos de caché local." +MSG_HELP_ogUnmountFs=$MSG_HELP_ogUnmount +MSG_HELP_ogUnmountAll="Desmonta todos los sistemas de archivos." +MSG_HELP_ogUpdatePartitionTable="Actualiza informacion tabla particiones del disco" + +# Mensajes de descripción breve de la interfaz. +MSG_INTERFACE_START="[START Interface ] Ejecutar comando: " +MSG_INTERFACE_END="[END Interface] Comando terminado con este código: " + +# SCRIPTS messages. +MSG_SCRIPTS_START=" INICIO scripts : " +MSG_SCRIPTS_END=" FIN scripts: " + +MSG_SCRIPTS_TASK_SLEEP="Esperando para iniciar" +MSG_SCRIPTS_TASK_START="Iniciando" +MSG_SCRIPTS_TASK_ERR="Error" + +# scripts createImage +MSG_SCRIPTS_FILE_RENAME=" Renombrar fichero-imagen previo: " +MSG_SCRIPTS_CREATE_SIZE=" Calcular espacio (KB) requerido para almacenarlo y el disponible: " + +#scripts updateCache +MSG_SCRIPTS_UPDATECACHE_DOUPDATE="Comprobamos si Actualizacion - existe una imagen con igual nombre pero distinto sum-" +MSG_SCRIPTS_UPDATECACHE_CHECKSIZECACHE="Comprobar que el tamaño de la cache es mayor que el fichero a descargar." +MSG_SCRIPTS_UPDATECACHE_IFNOTCACHEDO="Comprobar el espacio libre de la cache y actuar según engine.cfg" + +MSG_SCRIPTS_UPDATECACHE_CHECKMCASTSESSION="Comprobando sesion multicast: ServidorMcast:PuertoSession:PuertoDatos" + +# interface sustituye temporalmente al scritp restore +MSG_SCRIPTS_CHECK_ENGINE="Analizar proceso a realizar según engine.cfg" +MSG_SCRIPTS_MULTICAST_PRECHECK_PORT="Determinar puerto principal y auxiliar multicast." +MSG_SCRIPTS_MULTICAST_CHECK_PORT="Comprobar puertos de sesion y datos" +MSG_SCRIPTS_MULTICAST_REQUEST_PORT="Solicitar la apertura: " +MSG_SCRIPTS_OS_CONFIGURE="Iniciar la configuracion del sistema restaurado" + +# TIME MESSAGES +MSG_SCRIPTS_TIME_TOTAL="tiempo total del proceso" +MSG_SCRIPTS_TIME_PARTIAL="tiempo parcial del subproceso" + +#HTTPLOG +MSG_HTTPLOG_NOUSE="No apague este ordenador por favor" \ No newline at end of file diff --git a/client/shared/etc/lang.en_GB.UTF-8.conf b/client/shared/etc/lang.en_GB.UTF-8.conf new file mode 120000 index 00000000..3e5cc899 --- /dev/null +++ b/client/shared/etc/lang.en_GB.UTF-8.conf @@ -0,0 +1 @@ +lang.en_GB.conf \ No newline at end of file diff --git a/client/shared/etc/lang.en_GB.conf b/client/shared/etc/lang.en_GB.conf new file mode 100644 index 00000000..e21e71ab --- /dev/null +++ b/client/shared/etc/lang.en_GB.conf @@ -0,0 +1,200 @@ +# English language file. + +# Error messages. +MSG_ERR_GENERIC="Undefined or unknown error" +MSG_ERR_FORMAT="Unrecognized execution format" +MSG_ERR_OUTOFLIMIT="Out of limit value" +MSG_ERR_NOTFOUND="No such file or device" +MSG_ERR_PARTITION="Unknown or missing partition" +MSG_ERR_LOCKED="Resource locked by an operation" +MSG_ERR_CACHE="Local cache error" +MSG_ERR_FILESYS="Unknown or unmounted filesystem" +MSG_ERR_NOTOS="Undetected operating system" +MSG_ERR_IMAGE="Cannot create or cannot restore an image" +MSG_ERR_NOTEXEC="The function or binary is not executable" +MSG_ERR_NOTWRITE="Write permission denied" +MSG_ERR_NOTCACHE="No cache partition" +MSG_ERR_CACHESIZE="Not enough space in cache" +MSG_ERR_REDUCEFS="Error reducing the filesystem" +MSG_ERR_EXTENDFS="Error expanding the filesystem" +MSG_ERR_IMGSIZEPARTITION="Restauration error: the partition is smaller than the image" +MSG_ERR_UCASTSYNTAXT="Error in the generation of Unicast transfer syntax" +MSG_ERR_UCASTSENDPARTITION="Error in sending an Unicast partition" +MSG_ERR_UCASTSENDFILE="Error in sending an Unicast file" +MSG_ERR_UCASTRECEIVERPARTITION="Error in receiving an Unicast partition" +MSG_ERR_UCASTRECEIVERFILE="Error in receiving an Unicast file" +MSG_ERR_MCASTSYNTAXT="Error en la generación de sintaxis de transferenica multicast" +MSG_ERR_MCASTSENDFILE="Error en envio MULTICAST de un fichero" +MSG_ERR_MCASTRECEIVERFILE="Error en la recepcion MULTICAST de un fichero" +MSG_ERR_MCASTSENDPARTITION="Error en envio MULTICAST de una particion" +MSG_ERR_MCASTRECEIVERPARTITION="Error en la recepcion MULTICAST de un fichero" +MSG_ERR_PROTOCOLJOINMASTER="Error en la conexion de una sesion UNICAST|MULTICAST con el MASTER" + + +# Warning messages. +MSG_DONTMOUNT="Unmounted filesystem" +MSG_DONTUNMOUNT="Cannot unmount the filesystem" + +# Help auxiliary menssages. +MSG_64BIT="64 bit" +MSG_ERROR="Error" +MSG_EXAMPLE="Example" +MSG_FORMAT="Format" +MSG_FUNCTION="Function" +MSG_HARDWAREINVENTORY="Hardware inventory" +MSG_IMAGE="image" +MSG_INSTALLED="installed" +MSG_NOCACHE="no lacal cache" +MSG_NOEXTENDED="no extended partition" +MSG_NOFORMAT="no formatted" +MSG_PARTITION="partition" +MSG_PROTOCOL="protocol" +MSG_RESERVEDVALUE="Reserved value" +MSG_UNKNOWN="Unknown" + +# Mensajes del proceso de arranque. +MSG_DETECTLVMRAID="Detecting LVM and RAID meta-devices." +MSG_ERRBOOTMODE="$MSG_ERROR: unknown boot mode." +MSG_LAUNCHCLIENT="Launching client browser." +MSG_LOADAPI="Loading clonning engine functions." +MSG_LOADMODULES="Loaging kernel modules." +MSG_MAKELINKS="Making symbolic links." +MSG_MOUNTREPO="Mounting repository using %s, %s mode." +MSG_OFFLINEMODE="Off-line boot mode." +MSG_OTHERSERVICES="Starting other services." +MSG_POWEROFFCONF="Setting power saving parameters." +# Old messages. +MSG_ERRLOADUDEB="$MSG_ERROR: No se puede cargar el paquete udeb %s." +MSG_LOADUDEBS="Cargar paquetes udeb." + +# API functions menssages. +MSG_HELP_ogAddRegistryKey="Add a new Windows registry key." +MSG_HELP_ogAddRegistryValue="Add a new Windows registry value." +MSG_HELP_ogBoot="Boot a installed operating system." +MSG_HELP_ogCalculateChecksum="Calculate file checksum." +MSG_HELP_ogCheckFs="Check a filesystem." +MSG_HELP_ogCompareChecksumFiles="Compare if the checksums match." +MSG_HELP_ogCopyFile="Copy a file to other storage." +MSG_HELP_ogCreateCache="Reserve space for the cache partition at the end of disc 1." +MSG_HELP_ogCreateImage="Create an exact image from a local filesystem." +MSG_HELP_ogCreateMbrImage="Create an MBR image." +MSG_HELP_ogCreatePartitions="Create the disc partition table." +MSG_HELP_ogDeleteFile="Delete a file." +MSG_HELP_ogDeletePartitionTable="Delete disk table partition" +MSG_HELP_ogDeleteRegistryKey="Delete an empty Windows registry key." +MSG_HELP_ogDeleteRegistryValue="Delete a Windows registry value." +MSG_HELP_ogDeleteTree="Delete a directory tree." +MSG_HELP_ogDevToDisk="Display the order number of disk or partition for the device file path." +MSG_HELP_ogDiskToDev="Display the device file path for the order number of disk or partition." +MSG_HELP_ogEcho="Display and log messages." +MSG_HELP_ogExtendFs="Extiende el tamaño de un sistema de archivo al máximo de su partición." +MSG_HELP_ogFindCache="Indica la partición reservada para caché local." +MSG_HELP_ogFormat="Format a filesystem." +MSG_HELP_ogFormatCache="Format (purge) the local cache." +MSG_HELP_ogFormatFs=$MSG_HELP_ogFormat +MSG_HELP_ogGetArch="Return the client architecture." +MSG_HELP_ogGetCacheSize="Return the cache partition size." +MSG_HELP_ogGetCacheSpace="Devuelve el espacio máximo disponible que puede ser reservado para la partición de caché local." +MSG_HELP_ogGetFsSize="Return the filesystem size." +MSG_HELP_ogGetFsType="Return the filesystem type." +MSG_HELP_ogGetHivePath="Devuelve el camino completo del fichero de una sección del registro de Windows." +MSG_HELP_ogGetHostname="Return the client's hostname." +MSG_HELP_ogGetIpAddress="Return the client's IP address." +MSG_HELP_ogGetImageSize="Return the system image size." +MSG_HELP_ogGetMacAddress="Return the client Ethernet address." +MSG_HELP_ogGetMountPoint="Return the local filesystem mount point." +MSG_HELP_ogGetOsType="Return the operating system type." +MSG_HELP_ogGetOsVersion="Return the operating system version." +MSG_HELP_ogGetParentPath=$"Devuelve el camino completo del directorio padre de un fichero de sistema OpenGnSys." +MSG_HELP_ogGetPartitionActive="Return the active partitión of the disk." +MSG_HELP_ogGetPartitionId="Devuelve el identificador de tipo de una partición." +MSG_HELP_ogGetPartitionSize="Devuelve el tamaño de una partición." +MSG_HELP_ogGetPartitionType="Devuelve el mnemónico de tipo de una partición." +MSG_HELP_ogGetPath="Devuelve el camino completo de un fichero de sistema OpenGnSys." +MSG_HELP_ogGetRegistryValue="Devuelve el dato de un valor del registro de Windows." +MSG_HELP_ogGetRepoIp="Devuelve la dirección IP del repositorio de datos." +MSG_HELP_ogGetServerIp="Devuelve la dirección IP del servidor principal." +MSG_HELP_ogGetWindowsName="Devuelve el nombre del cliente guardado en el registro de Windows." +MSG_HELP_ogHelp="Show the help menssages for functions." +MSG_HELP_ogHidePartition="hide a Windows partition." +MSG_HELP_ogIdToType="Devuelve el mnemónico asociado al identificador de tipo de partición." +MSG_HELP_ogIsFormated="Comprueba si un sistema de archivos está formateado." +MSG_HELP_ogIsLocked="Comprueba si una partición está bloqueada por una operación de uso exclusivo." +MSG_HELP_ogIsImageLocked="Comprueba si una imagen está bloqueada por una operación de uso exclusivo." +MSG_HELP_ogIsPartitionLocked=$MSG_HELP_ogIsLocked +MSG_HELP_ogIsMounted="Comprueba si un sistema de archivos está montado." +MSG_HELP_ogIsNewerFile="Comprueba si un fichero es más nuevo (se ha modificado después) que otro." +MSG_HELP_ogIsValidType="Comprueba si el tipo de sistema de archivos es válido para un identificador de partición." +MSG_HELP_ogLinuxBootParameters="Devuelve los parámetros de arranque de un sistema operativo Linux instalado." +MSG_HELP_ogListHardwareInfo="List the cleint hardware inventory." +MSG_HELP_ogListPartitions="List the disk partitions table." +MSG_HELP_ogListRegistryKeys="Lista los nombres de las subclaves incluidas en una clave del registro de Windows." +MSG_HELP_ogListRegistryValues="Lista los nombres de los valores incluidos en una clave del registro de Windows." +MSG_HELP_ogListSoftware="Lista el inventario de programas instalados en un sistema operativo." +MSG_HELP_ogLock="Bloquea una partición para operación de uso exclusivo." +MSG_HELP_ogLockImage="Bloquea una imagen para operación de uso exclusivo." +MSG_HELP_ogLockPartition=$MSG_HELP_ogLock +MSG_HELP_ogMakeChecksumFile="Store the file checksum." +MSG_HELP_ogMakeDir="Make a directory." +MSG_HELP_ogMount="Mount a filesystem and display its mount point." +MSG_HELP_ogMountCache="Mount the cache filesystem." +MSG_HELP_ogMountCdrom="" +MSG_HELP_ogMountFs=$MSG_HELP_ogMount +MSG_HELP_ogRaiseError="Muestra y registra mensajes de error y devuelve el código correspondiente." +MSG_HELP_ogReduceFs="Reduce el tamaño del sistema de archivos al mínimo ocupado por sus datos." +MSG_HELP_ogRestoreImage="Restore a filesystem image." +MSG_HELP_ogRestoreMbrImage="Restore the boot sector image (MBR)." +MSG_HELP_ogSetPartitionActive="Establece el número de partición activa de un disco." +MSG_HELP_ogSetPartitionId="Change de partition identification." +MSG_HELP_ogSetPartitionSize="Set the partition size." +MSG_HELP_ogSetRegistryValue="Asigna un dato a un valor del registro de Windows." +MSG_HELP_ogSetWindowsName="Asign the Windows hostname." +MSG_HELP_ogSetWinlogonUser="Asign the Windows default username." +MSG_HELP_ogTypeToId="Devuelve el identificador asociado al mnemónico de tipo de partición." +MSG_HELP_ogUnhidePartition="Unhide a Windows partition." +MSG_HELP_ogUnlock="Desbloquea una partición tras finalizar una operación de uso exclusivo." +MSG_HELP_ogUnlockImage="Desbloquea una imagen tras finalizar una operación de uso exclusivo." +MSG_HELP_ogUnlockPartition=$MSG_HELP_ogUnlock +MSG_HELP_ogUnmount="Unmount a filesystem." +MSG_HELP_ogUnmountCache="Unmount the cache filesystem." +MSG_HELP_ogUnmountFs=$MSG_HELP_ogUnmount +MSG_HELP_ogUnmountAll="Unmount all filesystems." +MSG_HELP_ogUpdatePartitionTable="Update info about disk partition table " + +# INTERFACE functions menssages. +MSG_INTERFACE_START="[START Interface] Run this command: " +MSG_INTERFACE_END="[END Interface] Command finished with this code: " + + +# SCRIPTS messages. +MSG_SCRIPTS_START=" START scripts: " +MSG_SCRIPTS_END=" END scripts: " + +MSG_SCRIPTS_TASK_SLEEP="Waiting for starting" +MSG_SCRIPTS_TASK_START="Starting" +MSG_SCRIPTS_TASK_ERR="Error" + +# scripts createImage +MSG_SCRIPTS_FILE_RENAME=" Rename image-file previous: " +MSG_SCRIPTS_CREATE_SIZE=" Check size (KB) required to store and the size available: " + +#scripts updateCache +MSG_SCRIPTS_UPDATECACHE_DOUPDATE="Checking if is necesary to do update image file" +MSG_SCRIPTS_UPDATECACHE_CHECKSIZECACHE="Checking CACHE size is greater than image file." +MSG_SCRIPTS_UPDATECACHE_IFNOTCACHEDO="Checking CACHE size free and get alternativae by engine.cfg" + +MSG_SCRIPTS_UPDATECACHE_CHECKMCASTSESSION="Checking Multicast Session McastServer:SessionPort:DataPort" + +# interface sustituye temporalmente al scritp restore +MSG_SCRIPTS_CHECK_ENGINE="Check next command depend on engine.cfg" +MSG_SCRIPTS_MULTICAST_PRECHECK_PORT="Check multicast main and auxiliar port." +MSG_SCRIPTS_MULTICAST_CHECK_PORT="Check multicast session port and data port" +MSG_SCRIPTS_MULTICAST_REQUEST_PORT="Request opening multicast port: " +MSG_SCRIPTS_OS_CONFIGURE="Sarting restores operating system restored" + +# TIME MESSAGES +MSG_SCRIPTS_TIME_TOTAL="Total process time" +MSG_SCRIPTS_TIME_PARTIAL="Part-time process" + +#HTTPLOG +MSG_HTTPLOG_NOUSE="NOT POWEROFF THIS COMPUTER" \ No newline at end of file diff --git a/client/shared/etc/lang.en_UK.conf b/client/shared/etc/lang.en_UK.conf deleted file mode 100644 index a6b2876a..00000000 --- a/client/shared/etc/lang.en_UK.conf +++ /dev/null @@ -1,161 +0,0 @@ -# English language file. - -# Error messages. -MSG_ERR_GENERIC="Undefined or unknown error" -MSG_ERR_FORMAT="Unrecognized execution format" -MSG_ERR_OUTOFLIMIT="Out of limit value" -MSG_ERR_NOTFOUND="No such file or device" -MSG_ERR_PARTITION="Unknown or missing partition" -MSG_ERR_LOCKED="Resource locked by an operation" -MSG_ERR_CACHE="Local cache error" -MSG_ERR_FILESYS="Unknown or unmounted filesystem" -MSG_ERR_NOTOS="Undetected operating system" -MSG_ERR_IMAGE="Cannot create or cannot restore an image" -MSG_ERR_NOTEXEC="The function or binary is not executable" -MSG_ERR_NOTWRITE="Write permission denied" -MSG_ERR_NOTCACHE="No cache partition" -MSG_ERR_CACHESIZE="Not enough space in cache" -MSG_ERR_REDUCEFS="Error reducing the filesystem" -MSG_ERR_EXTENDFS="Error expanding the filesystem" -MSG_ERR_IMGSIZEPARTITION="Error al restaurar: Particion mas pequeña que la imagen" -MSG_ERR_UCASTSYNTAXT="Error en la generación de sintaxis de transferenica unicast" -MSG_ERR_UCASTSENDPARTITION="Error en envio UNICAST de una particion" -MSG_ERR_UCASTSENDFILE="Error en envio UNICAST de un fichero" -MSG_ERR_UCASTRECEIVERPARTITION="Error en la recepcion UNICAST de una particion" -MSG_ERR_UCASTRECEIVERFILE="Error en la recepcion UNICAST de un fichero" -MSG_ERR_MCASTSYNTAXT="Error en la generación de sintaxis de transferenica multicast" -MSG_ERR_MCASTSENDFILE="Error en envio MULTICAST de un fichero" -MSG_ERR_MCASTRECEIVERFILE="Error en la recepcion MULTICAST de un fichero" -MSG_ERR_MCASTSENDPARTITION="Error en envio MULTICAST de una particion" -MSG_ERR_MCASTRECEIVERPARTITION="Error en la recepcion MULTICAST de un fichero" -MSG_ERR_PROTOCOLJOINMASTER="Error en la conexion de una sesion UNICAST|MULTICAST con el MASTER" - - -# Warning messages. -MSG_DONTMOUNT="Unmounted filesystem" -MSG_DONTUNMOUNT="Cannot unmount the filesystem" - -# Help auxiliary menssages. -MSG_64BIT="64 bit" -MSG_ERROR="Error" -MSG_EXAMPLE="Example" -MSG_FORMAT="Format" -MSG_FUNCTION="Function" -MSG_HARDWAREINVENTORY="Hardware inventory" -MSG_IMAGE="image" -MSG_INSTALLED="installed" -MSG_NOCACHE="no lacal cache" -MSG_NOEXTENDED="no extended partition" -MSG_NOFORMAT="no formatted" -MSG_PARTITION="partition" -MSG_PROTOCOL="protocol" -MSG_RESERVEDVALUE="Reserved value" -MSG_UNKNOWN="Unknown" - -# Mensajes del proceso de arranque. -MSG_DETECTLVMRAID="Detecting LVM and RAID meta-devices." -MSG_ERRBOOTMODE="$MSG_ERROR: unknown boot mode." -MSG_LAUNCHCLIENT="Launching client browser." -MSG_LOADAPI="Loading clonning engine functions." -MSG_LOADMODULES="Loaging kernel modules." -MSG_MAKELINKS="Making symbolic links." -MSG_MOUNTREPO="Mounting repository using %s, %s mode." -MSG_OFFLINEMODE="Off-line boot mode." -MSG_OTHERSERVICES="Starting other services." -MSG_POWEROFFCONF="Setting power saving parameters." -# Old messages. -MSG_ERRLOADUDEB="$MSG_ERROR: No se puede cargar el paquete udeb %s." -MSG_LOADUDEBS="Cargar paquetes udeb." - -# API functions menssages. -MSG_HELP_ogAddRegistryKey="Add a new Windows registry key." -MSG_HELP_ogAddRegistryValue="Add a new Windows registry value." -MSG_HELP_ogBoot="Boot a installed operating system." -MSG_HELP_ogCalculateChecksum="Calculate file checksum." -MSG_HELP_ogCheckFs="Check a filesystem." -MSG_HELP_ogCompareChecksumFiles="Compare if the checksums match." -MSG_HELP_ogCopyFile="Copy a file to other storage." -MSG_HELP_ogCreateCache="Reserve space for the cache partition at the end of disc 1." -MSG_HELP_ogCreateImage="Create an exact image from a local filesystem." -MSG_HELP_ogCreateMbrImage="Create an MBR image." -MSG_HELP_ogCreatePartitions="Create the disc partition table." -MSG_HELP_ogDeleteFile="Delete a file." -MSG_HELP_ogDeleteRegistryKey="Delete an empty Windows registry key." -MSG_HELP_ogDeleteRegistryValue="Deleta a Windows registry value." -MSG_HELP_ogDeleteTree="Delete a directory tree." -MSG_HELP_ogDevToDisk="Display the order number of disk or partition for the device file path." -MSG_HELP_ogDiskToDev="Display the device file path for the order number of disk or partition." -MSG_HELP_ogEcho="Display and log messages." -MSG_HELP_ogExtendFs="Extiende el tamaño de un sistema de archivo al máximo de su partición." -MSG_HELP_ogFindCache="Indica la partición reservada para caché local." -MSG_HELP_ogFormat="Format a filesystem." -MSG_HELP_ogFormatCache="Format (purge) the local cache." -MSG_HELP_ogFormatFs=$MSG_HELP_ogFormat -MSG_HELP_ogGetArch="Return the client architecture." -MSG_HELP_ogGetCacheSize="Return the cache partition size." -MSG_HELP_ogGetCacheSpace="Devuelve el espacio máximo disponible que puede ser reservado para la partición de caché local." -MSG_HELP_ogGetFsSize="Return the filesystem size." -MSG_HELP_ogGetFsType="Return the filesystem type." -MSG_HELP_ogGetHivePath="Devuelve el camino completo del fichero de una sección del registro de Windows." -MSG_HELP_ogGetHostname="Return the client's hostname." -MSG_HELP_ogGetIpAddress="Return the client's IP address." -MSG_HELP_ogGetImageSize="Devuelve el tamaño de una imagen de sistema." -MSG_HELP_ogGetMacAddress="Devuelve la dirección Ethernet del cliente." -MSG_HELP_ogGetMountPoint="Devuelve el directorio donde está montado un sistema de archivos local." -MSG_HELP_ogGetOsType="Devuelve el tipo de un sistema operativo instalado." -MSG_HELP_ogGetOsVersion="Devuelve el tipo y la versión de un sistema operativo instalado." -MSG_HELP_ogGetParentPath=$"Devuelve el camino completo del directorio padre de un fichero de sistema OpenGnSys." -MSG_HELP_ogGetPartitionActive="Indica cual es la partición marcada como activa en un disco." -MSG_HELP_ogGetPartitionId="Devuelve el identificador de tipo de una partición." -MSG_HELP_ogGetPartitionSize="Devuelve el tamaño de una partición." -MSG_HELP_ogGetPartitionType="Devuelve el mnemónico de tipo de una partición." -MSG_HELP_ogGetPath="Devuelve el camino completo de un fichero de sistema OpenGnSys." -MSG_HELP_ogGetRegistryValue="Devuelve el dato de un valor del registro de Windows." -MSG_HELP_ogGetRepoIp="Devuelve la dirección IP del repositorio de datos." -MSG_HELP_ogGetServerIp="Devuelve la dirección IP del servidor principal." -MSG_HELP_ogGetWindowsName="Devuelve el nombre del cliente guardado en el registro de Windows." -MSG_HELP_ogHelp="Muestra mensajes de ayudas para las funciones." -MSG_HELP_ogHidePartition="Oculta una partición de Windows." -MSG_HELP_ogIdToType="Devuelve el mnemónico asociado al identificador de tipo de partición." -MSG_HELP_ogIsFormated="Comprueba si un sistema de archivos está formateado." -MSG_HELP_ogIsLocked="Comprueba si una partición está bloqueada por una operación de uso exclusivo." -MSG_HELP_ogIsImageLocked="Comprueba si una imagen está bloqueada por una operación de uso exclusivo." -MSG_HELP_ogIsPartitionLocked=$MSG_HELP_ogIsLocked -MSG_HELP_ogIsMounted="Comprueba si un sistema de archivos está montado." -MSG_HELP_ogIsNewerFile="Comprueba si un fichero es más nuevo (se ha modificado después) que otro." -MSG_HELP_ogIsValidType="Comprueba si el tipo de sistema de archivos es válido para un identificador de partición." -MSG_HELP_ogLinuxBootParameters="Devuelve los parámetros de arranque de un sistema operativo Linux instalado." -MSG_HELP_ogListHardwareInfo="Lista el inventario de dispositivos del cliente." -MSG_HELP_ogListPartitions="Lista la estructura de particiones de un disco." -MSG_HELP_ogListRegistryKeys="Lista los nombres de las subclaves incluidas en una clave del registro de Windows." -MSG_HELP_ogListRegistryValues="Lista los nombres de los valores incluidos en una clave del registro de Windows." -MSG_HELP_ogListSoftware="Lista el inventario de programas instalados en un sistema operativo." -MSG_HELP_ogLock="Bloquea una partición para operación de uso exclusivo." -MSG_HELP_ogLockImage="Bloquea una imagen para operación de uso exclusivo." -MSG_HELP_ogLockPartition=$MSG_HELP_ogLock -MSG_HELP_ogMakeChecksumFile="Store the file checksum." -MSG_HELP_ogMakeDir="Make a directory." -MSG_HELP_ogMount="Mount a filesystem and display its mount point." -MSG_HELP_ogMountCache="Mount the cache filesystem." -MSG_HELP_ogMountCdrom="" -MSG_HELP_ogMountFs=$MSG_HELP_ogMount -MSG_HELP_ogRaiseError="Muestra y registra mensajes de error y devuelve el código correspondiente." -MSG_HELP_ogReduceFs="Reduce el tamaño del sistema de archivos al mínimo ocupado por sus datos." -MSG_HELP_ogRestoreImage="Restaura una imagen de sistema operativo." -MSG_HELP_ogRestoreMbrImage="Restaura una imagen del sector de arranque (MBR)." -MSG_HELP_ogSetPartitionActive="Establece el número de partición activa de un disco." -MSG_HELP_ogSetPartitionId="Change de partition identification." -MSG_HELP_ogSetPartitionSize="Set the partition size." -MSG_HELP_ogSetRegistryValue="Asigna un dato a un valor del registro de Windows." -MSG_HELP_ogSetWindowsName="Asign the Windows hostname." -MSG_HELP_ogSetWinlogonUser="Asign the Windows default username." -MSG_HELP_ogTypeToId="Devuelve el identificador asociado al mnemónico de tipo de partición." -MSG_HELP_ogUnhidePartition="Unhide a Windows partition." -MSG_HELP_ogUnlock="Desbloquea una partición tras finalizar una operación de uso exclusivo." -MSG_HELP_ogUnlockImage="Desbloquea una imagen tras finalizar una operación de uso exclusivo." -MSG_HELP_ogUnlockPartition=$MSG_HELP_ogUnlock -MSG_HELP_ogUnmount="Unmount a filesystem." -MSG_HELP_ogUnmountCache="Unmount the cache filesystem." -MSG_HELP_ogUnmountFs=$MSG_HELP_ogUnmount -MSG_HELP_ogUnmountAll="Unmount all filesystems." - diff --git a/client/shared/etc/lang.es_ES.conf b/client/shared/etc/lang.es_ES.conf index 5256ce4f..93e2503c 100644 --- a/client/shared/etc/lang.es_ES.conf +++ b/client/shared/etc/lang.es_ES.conf @@ -80,6 +80,7 @@ MSG_HELP_ogCreateImage="Genera una imagen exacta de un sistema operativo instala MSG_HELP_ogCreateMbrImage="Genera una imagen del sector de arranque (MBR)." MSG_HELP_ogCreatePartitions="Define la estructura de particiones de un disco." MSG_HELP_ogDeleteFile="Borra un fichero de un espacio de almacenamiento." +MSG_HELP_ogDeletePartitionTable="Elimina la tabla de particiones del disco" MSG_HELP_ogDeleteRegistryKey="Borra una clave vacía del registro de Windows." MSG_HELP_ogDeleteRegistryValue="Borra un valor del registro de Windows." MSG_HELP_ogDeleteTree="Borra un árbol de directorios de un espacio de almacenamiento." @@ -158,4 +159,42 @@ MSG_HELP_ogUnmount="Desmonta un sistema de archivos." MSG_HELP_ogUnmountCache="Desmonta el sistema de archivos de caché local." MSG_HELP_ogUnmountFs=$MSG_HELP_ogUnmount MSG_HELP_ogUnmountAll="Desmonta todos los sistemas de archivos." +MSG_HELP_ogUpdatePartitionTable="Actualiza informacion tabla particiones del disco" + +# Mensajes de descripción breve de la interfaz. +MSG_INTERFACE_START="[START Interface ] Ejecutar comando: " +MSG_INTERFACE_END="[END Interface] Comando terminado con este código: " + +# SCRIPTS messages. +MSG_SCRIPTS_START=" INICIO scripts : " +MSG_SCRIPTS_END=" FIN scripts: " + +MSG_SCRIPTS_TASK_SLEEP="Esperando para iniciar" +MSG_SCRIPTS_TASK_START="Iniciando" +MSG_SCRIPTS_TASK_ERR="Error" + +# scripts createImage +MSG_SCRIPTS_FILE_RENAME=" Renombrar fichero-imagen previo: " +MSG_SCRIPTS_CREATE_SIZE=" Calcular espacio (KB) requerido para almacenarlo y el disponible: " + +#scripts updateCache +MSG_SCRIPTS_UPDATECACHE_DOUPDATE="Comprobamos si Actualizacion - existe una imagen con igual nombre pero distinto sum-" +MSG_SCRIPTS_UPDATECACHE_CHECKSIZECACHE="Comprobar que el tamaño de la cache es mayor que el fichero a descargar." +MSG_SCRIPTS_UPDATECACHE_IFNOTCACHEDO="Comprobar el espacio libre de la cache y actuar según engine.cfg" + +MSG_SCRIPTS_UPDATECACHE_CHECKMCASTSESSION="Comprobando sesion multicast: ServidorMcast:PuertoSession:PuertoDatos" + +# interface sustituye temporalmente al scritp restore +MSG_SCRIPTS_CHECK_ENGINE="Analizar proceso a realizar según engine.cfg" +MSG_SCRIPTS_MULTICAST_PRECHECK_PORT="Determinar puerto principal y auxiliar multicast." +MSG_SCRIPTS_MULTICAST_CHECK_PORT="Comprobar puertos de sesion y datos" +MSG_SCRIPTS_MULTICAST_REQUEST_PORT="Solicitar la apertura: " +MSG_SCRIPTS_OS_CONFIGURE="Iniciar la configuracion del sistema restaurado" + +# TIME MESSAGES +MSG_SCRIPTS_TIME_TOTAL="tiempo total del proceso" +MSG_SCRIPTS_TIME_PARTIAL="tiempo parcial del subproceso" + +#HTTPLOG +MSG_HTTPLOG_NOUSE="No apague este ordenador por favor" \ No newline at end of file diff --git a/client/shared/etc/preinit/default.sh b/client/shared/etc/preinit/default.sh index addab9aa..0c697b65 100755 --- a/client/shared/etc/preinit/default.sh +++ b/client/shared/etc/preinit/default.sh @@ -5,10 +5,9 @@ set -a source /opt/opengnsys/etc/preinit/loadenviron.sh # Scripts de inicio. -for f in fileslinks loadmodules mountrepo poweroff; do +for f in fileslinks loadmodules mountrepo poweroff otherservices; do $OGETC/preinit/$f.sh done - unset f if [ -f $OGETC/init/$OG_IP.sh ]; then diff --git a/client/shared/etc/preinit/fileslinks.sh b/client/shared/etc/preinit/fileslinks.sh index b1a6aeb2..7089ce46 100755 --- a/client/shared/etc/preinit/fileslinks.sh +++ b/client/shared/etc/preinit/fileslinks.sh @@ -14,13 +14,13 @@ # Si está configurado OpenGnSys ... if [ -n "$OPENGNSYS" ]; then - echo "$MSG_MAKELINKS" + echo "${MSG_MAKELINKS:-.}" # Shell BASH por defecto (para usar "runtest") ln -fs /bin/bash /bin/sh # Crear directorio de bloqueos - mkdir -p /var/lock + mkdir -p /var/lock || mkdir -p /run/lock # # Directorio de tipos de letras para el browser. QTDIR="/usr/local" diff --git a/client/shared/etc/preinit/loadenviron.sh b/client/shared/etc/preinit/loadenviron.sh index c23fcc80..1260c973 100755 --- a/client/shared/etc/preinit/loadenviron.sh +++ b/client/shared/etc/preinit/loadenviron.sh @@ -6,6 +6,9 @@ #@version 0.9 #@author Ramon Gomez, ETSII Universidad de Sevilla #@date 2009-10-10 +#@version 1.0.3 - Limpiar código y configuración modo off-line +#@author Ramon Gomez, ETSII Universidad de Sevilla +#@date 2012-01-12 #*/ # Idioma por defecto. @@ -40,7 +43,8 @@ if [ -d $OPENGNSYS ]; then export $i done fi - echo "$MSG_LOADAPI" + # Mensaje de carga del entorno. + echo "${MSG_LOADAPI:-.}" # Cargar mapa de teclado. loadkeys ${LANG%_*} >/dev/null @@ -54,26 +58,30 @@ if [ -d $OPENGNSYS ]; then export -f $i done - # Carga de las API segun engine - if [ -n "$ogengine" ] - then + # Cargar configuración del engine. + [ -f ${OGETC}/engine.cfg ] && source ${OGETC}/engine.cfg + + # Cargar las APIs según engine. + if [ -n "$ogengine" ]; then for i in $OGAPI/*.$ogengine; do [ -f $i ] && source $i done fi - - # Fichero de registros. - export OGLOGFILE="$OGLOG/$(ogGetIpAddress).log" - # Configuracion de la red (valido offline) - cat /tmp/initrd.cfg | grep DEVICECFG && export $(cat /tmp/initrd.cfg | grep DEVICECFG) - source $DEVICECFG 2>/dev/null + # Configuración de la red (modo offline). + eval $(grep "^DEVICECFG=" /tmp/initrd.cfg 2>/dev/null) + if [ -n "$DEVICECFG" ]; then + export DEVICECFG + [ -f $DEVICECFG ] && source $DEVICECFG + fi # FIXME Pruebas para grupos de ordenadores - #export OGGROUP=$(ogGetGroup) export OGGROUP="$group" ROOTREPO=${ROOTREPO:-"$OGSERVERIMAGES"} + + # Fichero de registros. + export OGLOGFILE="$OGLOG/$(ogGetIpAddress).log" fi # Declaración de códigos de error. @@ -84,27 +92,25 @@ export OG_ERR_LOCKED=4 # Partición o fichero bloqueado. export OG_ERR_IMAGE=5 # Error al crear o restaurar una imagen. export OG_ERR_NOTOS=6 # Sin sistema operativo. export OG_ERR_NOTEXEC=7 # Programa o función no ejecutable. -#codigo 8-13 reservados por ogAdmClient.h +# Códigos 8-13 reservados por ogAdmClient.h export OG_ERR_NOTWRITE=14 # No hay acceso de escritura export OG_ERR_NOTCACHE=15 # No hay particion cache en cliente export OG_ERR_CACHESIZE=16 # No hay espacio en la cache para almacenar fichero-imagen export OG_ERR_REDUCEFS=17 # Error al reducir sistema archivos export OG_ERR_EXTENDFS=18 # Error al expandir el sistema de archivos -export OG_ERR_IMGSIZEPARTITION=30 #Error al restaurar: Particion mas pequeña que la imagen. +export OG_ERR_IMGSIZEPARTITION=30 # Error al restaurar partición más pequeña que la imagen -export OG_ERR_UCASTSYNTAXT=50 # Error en la generación de sintaxis de transferenica unicast -export OG_ERR_UCASTSENDPARTITION=51 # Error en envio UNICAST de una particion -export OG_ERR_UCASTSENDFILE=52 # Error en envio UNICAST de un fichero -export OG_ERR_UCASTRECEIVERPARTITION=53 #Error en la recepcion UNICAST de una particion -export OG_ERR_UCASTRECEIVERFILE=54 #Error en la recepcion UNICAST de un fichero -export OG_ERR_MCASTSYNTAXT=55 # Error en la generacion de sintaxis de transferenica Multicast. +export OG_ERR_UCASTSYNTAXT=50 # Error en la generación de sintaxis de transferenica UNICAST +export OG_ERR_UCASTSENDPARTITION=51 # Error en envío UNICAST de partición +export OG_ERR_UCASTSENDFILE=52 # Error en envío UNICAST de un fichero +export OG_ERR_UCASTRECEIVERPARTITION=53 # Error en la recepcion UNICAST de una particion +export OG_ERR_UCASTRECEIVERFILE=54 # Error en la recepcion UNICAST de un fichero +export OG_ERR_MCASTSYNTAXT=55 # Error en la generacion de sintaxis de transferenica Multicast. export OG_ERR_MCASTSENDFILE=56 # Error en envio MULTICAST de un fichero -export OG_ERR_MCASTRECEIVERFILE=57 #Error en la recepcion MULTICAST de un fichero +export OG_ERR_MCASTRECEIVERFILE=57 # Error en la recepcion MULTICAST de un fichero export OG_ERR_MCASTSENDPARTITION=58 # Error en envio MULTICAST de una particion export OG_ERR_MCASTRECEIVERPARTITION=59 # Error en la recepcion MULTICAST de una particion -export OG_ERR_PROTOCOLJOINMASTER=60 # Error en la conexion de una sesion UNICAST|MULTICAST con el MASTER - - +export OG_ERR_PROTOCOLJOINMASTER=60 # Error en la conexion de una sesion UNICAST|MULTICAST con el MASTER diff --git a/client/shared/etc/preinit/loadmodules.sh b/client/shared/etc/preinit/loadmodules.sh index d72cb6fb..3d03b247 100755 --- a/client/shared/etc/preinit/loadmodules.sh +++ b/client/shared/etc/preinit/loadmodules.sh @@ -8,14 +8,9 @@ #*/ -MSG_LOADMODULES=${MSG_LOADMODULES:-"."} -echo "$MSG_LOADMODULES" - -# Directorio principal de módulos del kernel. -MODULESDIR=/lib/modules/$(uname -r)/kernel +echo "${MSG_LOADMODULES:-.}" # Módulo del ratón. -insmod $MODULESDIR/drivers/input/mouse/psmouse.ko 2>/dev/null - +modprobe psmouse 2>/dev/null diff --git a/client/shared/etc/preinit/mountrepo.sh b/client/shared/etc/preinit/mountrepo.sh index 5c20499a..9b0aebaa 100755 --- a/client/shared/etc/preinit/mountrepo.sh +++ b/client/shared/etc/preinit/mountrepo.sh @@ -13,12 +13,12 @@ ROOTREPO=${ROOTREPO:-"$ROOTSERVER"} # TODO Revisar proceso de arranque para no montar 2 veces el repositorio. if [ $ogactiveadmin == "true" ]; then - export boot=admin + export boot=admin # ATENCIÓN: siempre en modo "admin". umount $OGIMG 2>/dev/null - protocol=${potocol:-"smb"} + protocol=${ogprotocol:-"smb"} printf "$MSG_MOUNTREPO\n" "$protocol" "$boot" - case "$protocol" in + case "$ogprotocol" in nfs) mount.nfs ${ROOTREPO}:$OGIMG $OGIMG -o rw,nolock ;; smb) PASS=$(grep "^[ ]*\(export \)\?OPTIONS=" /scripts/ogfunctions 2>&1 | \ sed 's/\(.*\)pass=\(\w*\)\(.*\)/\2/') diff --git a/client/shared/etc/preinit/otherservices.sh b/client/shared/etc/preinit/otherservices.sh new file mode 100755 index 00000000..67b28f71 --- /dev/null +++ b/client/shared/etc/preinit/otherservices.sh @@ -0,0 +1,35 @@ +#!/bin/bash +#/** +#@file otherservices.sh +#@brief Script de inicio para cargar otros servicios complementarios. +#@version 1.0.3 +#@author Ramon Gomez, ETSII Universidad de Sevilla +#@date 2012-01-12 +#*/ + + +# Lanzar servicios complementarios del cliente. +echo "${MSG_OTHERSERVICES:-.}" + +# Adpatar la clave de "root" para acceso SSH. +PASS=$(grep "^[ ]*\(export \)\?OPTIONS=" /scripts/ogfunctions 2>&1 | \ + sed 's/\(.*\)pass=\(\w*\)\(.*\)/\2/') +PASS=${PASS:-"og"} +echo -ne "$PASS\n$PASS\n" | passwd root 2>/dev/null +# Cargar el entorno OpenGnSys en conexión SSH. +cp -a $OPENGNSYS/etc/preinit/loadenviron.sh /etc/profile.d/ +# Arrancar SSH. +/usr/sbin/sshd 2>/dev/null + +# Desactivado apagado de monitor. +#setterm -blank 0 -powersave off -powerdown 0 < /dev/console > /dev/console 2>&1 + +# Activado WOL en la interfaz usada en arranque PXE. +ethtool -s $DEVICE wol g 2>/dev/null + +# Crear menú por defecto para el cliente y arrancar lighttpd. +generateMenuDefault +# TODO Localizar correctamente el script de arranque. +[ -f /opt/opengnsys/scripts/runhttplog.sh ] && /opt/opengnsys/scripts/runhttplog.sh 2>/dev/null + + diff --git a/client/shared/lib/httpd/httpd-log.sh b/client/shared/lib/httpd/httpd-log.sh index 12e6823c..ae76b5fe 100644 --- a/client/shared/lib/httpd/httpd-log.sh +++ b/client/shared/lib/httpd/httpd-log.sh @@ -5,7 +5,8 @@ echo "" #echo "Bash as CGI" echo "<html><head><title>OpenGnsys Client" -echo "

NO APAGAR POR FAVOR. host $(hostname -s)

" +echo "

$(./httpd-runengine.sh 'ogEcho $MSG_HTTPLOG_NOUSE' ) . host $(hostname -s)

" + echo " " diff --git a/client/shared/lib/httpd/httpd-runengine.sh b/client/shared/lib/httpd/httpd-runengine.sh new file mode 100755 index 00000000..aa145078 --- /dev/null +++ b/client/shared/lib/httpd/httpd-runengine.sh @@ -0,0 +1,9 @@ +# Exportar parámetros del kernel. + +for i in $(cat /proc/cmdline); do + echo $i | grep -q "=" && export $i +done + + +. /opt/opengnsys/etc/preinit/loadenviron.sh > /dev/null +eval $1 diff --git a/client/shared/scripts/cloneRemoteFromMaster b/client/shared/scripts/cloneRemoteFromMaster index cc0a936b..ee7a82da 100755 --- a/client/shared/scripts/cloneRemoteFromMaster +++ b/client/shared/scripts/cloneRemoteFromMaster @@ -50,6 +50,10 @@ #@version 1.0.1 - Se elimina la operación de reducir la particion. #@author Antonio J. Doblas Viso. Universidad de Malaga. #@date 2011/05/16 +#@version 1.0.3 - se integra con httpd-log. +#@version 1.0.3 - Habilita el uso de la variable OGWINREDUCE=TRUE|TRUE para reducir el sistema de archivos a enviar +#@author Antonio J. Doblas Viso. Universidad de Malaga. +#@date 2011/12/22 #*/ ## @@ -60,6 +64,8 @@ #test 5. master sin origen particion. #test 6. master sin origen fichero. +#Carga del configurador del engine +[ -z $OGENGINECONFIGURATE ] && source /opt/opengnsys/etc/engine.cfg trap "pkill faucet; exit 1" 0 1 2 3 6 9 14 15 @@ -125,26 +131,35 @@ case $MASTERIP in # Preparando instrucción del Master segun $MODEMASTER{SENDPARTITION SENDFILE} case "$MODEMASTER" in SENDPARTITION) - echo "[5] Master en modo $MODEMASTER: informacion inicial a los clientes-slaves" + echo "[5] Master en modo $MODEMASTER: informacion inicial a los clientes-slaves" | tee -a $OGLOGSESSION $OGLOGFILE if ps aux | grep -v grep | grep "faucet 4000" then ogRaiseError $OG_ERR_NOTFOUND "MASTER: puerto en uso: 118"; exit $? else faucet 4000 --out echo "WORKING" & fi - echo "[10]: Desmontando DISK:$DISKSOURCE PARTITION:$PARTSOURCE" + echo "[10]: Desmontando DISK:$DISKSOURCE PARTITION:$PARTSOURCE" | tee -a $OGLOGSESSION $OGLOGFILE ogUnmount $2 $3 || exit $(ogRaiseError $OG_ERR_LOCKED "no se puede desmontar $2 $3 l124"; echo $?) #Obtener tamaño de la partición. SIZE=$(ogGetPartitionSize $2 $3) || exit $(ogRaiseError $OG_ERR_REDUCEFS "Error al detectar tamaño partcion $2 $3 l127"; echo $?) - echo "[15]: Calculando la reduccion del sistema de archivos DISK:$DISKSOURCE PARTITION:$PARTSOURCE SIZE:$SIZE" - ogReduceFs $2 $3 || exit $(ogRaiseError $OG_ERR_REDUCEFS "Error al reducir el FS $2 $3 l129"; echo $?) + + if [ "$OGWINREDUCE" == "TRUE" ] + then + echo "[15]: Calculando la reduccion del sistema de archivos DISK:$DISKSOURCE PARTITION:$PARTSOURCE SIZE:$SIZE" | tee -a $OGLOGSESSION $OGLOGFILE + ogReduceFs $2 $3 || exit $(ogRaiseError $OG_ERR_REDUCEFS "Error al reducir el FS $2 $3 l129"; echo $?) + fi + REDSIZE=$(ogGetFsSize $2 $3) || exit $(ogRaiseError $OG_ERR_REDUCEFS "Error al detectar el nuevo FS $2 $3 l130"; echo $?) - echo "[20]: Reducido el sistema de archivos a $REDSIZE $DISKSOURCE $PARTSOURCE" + TIMEAUX=$[SECONDS-TIME1] + echo "[20]: Preparada para enviar el sistema de archivos: Tamaño datos: $REDSIZE origne: $DISKSOURCE $PARTSOURCE" | tee -a $OGLOGSESSION $OGLOGFILE + echo " tiempo de reducción del sistema de archivos: $[TIMEAUX/60]m $[TIMEAUX%60]s" | tee -a $OGLOGSESSION $OGLOGFILE + #if [ $REDSIZE -lt $SIZE ]; then # echo "[24] Redimensionar partición a $REDSIZE KB." # ogSetPartitionSize $2 $3 $REDSIZE #fi - echo "[25] Master en Modo $MODEMASTER: informacion de transferencia a los clientes-slaves $PROTOCOL $TOOLCLONE $COMPRESOR $REDSIZE" + + echo "[25] Master en Modo $MODEMASTER: informacion de transferencia a los clientes-slaves $PROTOCOL $TOOLCLONE $COMPRESOR $REDSIZE" | tee -a $OGLOGSESSION $OGLOGFILE pkill faucet if ps aux | grep -v grep | grep "faucet 4000" then @@ -154,12 +169,12 @@ case $MASTERIP in fi case $PROTOCOL in MULTICAST|multicast) - echo "[29] ogMcastSendPartition $DISKSOURCE $PARTSOURCE $SESSIONMCASTSERVER $TOOLCLONE $COMPRESOR" + echo "[29] ogMcastSendPartition $DISKSOURCE $PARTSOURCE $SESSIONMCASTSERVER $TOOLCLONE $COMPRESOR" | tee -a $OGLOGSESSION $OGLOGFILE ogMcastSendPartition $DISKSOURCE $PARTSOURCE $SESSIONMCASTSERVER $TOOLCLONE $COMPRESOR || RETVAL=$? ;; UNICAST|unicast) sleep 60 - echo "[29] ogUcastSendPartition $DISKSOURCE $PARTSOURCE $SESSIONUCASTSERVER $TOOLCLONE $COMPRESOR" + echo "[29] ogUcastSendPartition $DISKSOURCE $PARTSOURCE $SESSIONUCASTSERVER $TOOLCLONE $COMPRESOR" | tee -a $OGLOGSESSION $OGLOGFILE ogUcastSendPartition $DISKSOURCE $PARTSOURCE $SESSIONUCASTSERVER $TOOLCLONE $COMPRESOR || RETVAL=$? ;; esac @@ -167,7 +182,7 @@ case $MASTERIP in #if [ $REDSIZE -lt $SIZE ]; then # echo "[85] Redimensionar partición a $SIZE KB." # ogSetPartitionSize $2 $3 $SIZE - echo "[90] Extender sistema de archivos." + echo "[90] Extender sistema de archivos." | tee -a $OGLOGSESSION $OGLOGFILE ogExtendFs $2 $3 #fi pkill faucet @@ -214,8 +229,8 @@ case $MASTERIP in esac # FIN Preparando instrucción del Master segun $MODEMASTER{SENDPARTITION SENDFILE} ;; - *) - echo "[1] Equipo -Client- preparando para recibir datos $PROTOCOL" + *) + echo "[1] Equipo -Client- preparando para recibir datos $PROTOCOL" | tee -a $OGLOGSESSION $OGLOGFILE ogDiskToDev $DISKTARGET $PARTTARGET &>/dev/null || exit $(ogRaiseError $OG_ERR_LOCKED "El cliente no tiene esas particiones $DISKTARGET $PARTTARGET l211"; echo $?) # TODO: si el cliente no está en la lista de clientes UNICAST salir. case $PROTOCOL in @@ -223,9 +238,9 @@ case $MASTERIP in echo "$SESSIONUCASTSERVER" | grep $HOSTIP || exit $(ogRaiseError $OG_ERR_PROTOCOLJOINMASTER "Este cliente no pertence a la sesion UNICAST l214"; echo $?) ;; esac - echo "[2] Desmontando particion destino" + echo "[2] Desmontando particion destino" | tee -a $OGLOGSESSION $OGLOGFILE ogUnmount $DISKTARGET $PARTTARGET || exit $(ogRaiseError $OG_ERR_LOCKED "no se puede desmontar la particion destino $2 $3 l218"; echo $?) - echo -n "[25] Buscando informacion extra sobre la clonacion con el master $MASTERIP: " + echo -n "[25] Buscando informacion extra sobre la clonacion con el master $MASTERIP: " | tee -a $OGLOGSESSION $OGLOGFILE sleep 10 TIMEWAITMASTER=120 TIMEWAITING=0 @@ -234,7 +249,7 @@ case $MASTERIP in do INFOEXTRA=`hose $MASTERIP 4000 --in cat 2>/dev/null` sleep 10; echo -n "." - echo comienza el timeout $TIMEWAITMASTER para abortar + #echo comienza el timeout $TIMEWAITMASTER para abortar [ -z "$INFOEXTRA" ] && let TIMEWAITMASTER=$TIMEWAITMASTER-10 [ "$TIMEWAITMASTER" -gt "0" ] || exit $(ogRaiseError $OG_ERR_PROTOCOLJOINMASTER " l230 "; echo $?) #Si primer parametro desde el server es READY, salimos del bucle @@ -245,27 +260,27 @@ case $MASTERIP in TOOLCLONE=$(echo $INFOEXTRA | awk '{print $2}') COMPRESOR=$(echo $INFOEXTRA | awk '{print $3}') SIZEIMAGE=$(echo $INFOEXTRA | awk '{print $4}') - echo -n "[26] $INFOEXTRA = herramienta= $TOOLCLONE compresor= $COMPRESOR size= $SIZEIMAGE " + echo "[26] $INFOEXTRA = herramienta= $TOOLCLONE compresor= $COMPRESOR size= $SIZEIMAGE " | tee -a $OGLOGSESSION $OGLOGFILE ogMount $DISKTARGET $PARTTARGET || ogFormat $DISKTARGET $PARTTARGET #SIZEPARTTARGET=$(parted `ogDiskToDev $DISKTARGET $PARTTARGET` unit kB print | awk '{y=x; x=$4};END{print y}' | tr -d kB) SIZEPARTTARGET=$(parted `ogDiskToDev $DISKTARGET $PARTTARGET` unit kB print | grep Disk | awk -F" " '{print $3}' | tr -d kB); - echo "[29] comprobando que el tamaño de la imagen $SIZEIMAGE es menor que el de la particion destino $SIZEPARTTARGET" + echo "[28] comprobando que el tamaño de la imagen $SIZEIMAGE es menor que el de la particion destino $SIZEPARTTARGET" | tee -a $OGLOGSESSION $OGLOGFILE # comprobamos que el tamaño de a imagen es menor que la del cliente. if [ "$SIZEIMAGE" -lt "$SIZEPARTTARGET" ] - then - echo "[30] Iniciando Cliente $PROTOCOL " + then + echo "[30] Iniciando Cliente $PROTOCOL " | tee -a $OGLOGSESSION $OGLOGFILE case $PROTOCOL in MULTICAST|multicast) - echo ogMcastReceiverPartition $DISKTARGET $PARTTARGET $SESSIONMCASTCLIENT $TOOLCLONE $COMPRESOR + echo "ogMcastReceiverPartition $DISKTARGET $PARTTARGET $SESSIONMCASTCLIENT $TOOLCLONE $COMPRESOR" | tee -a $OGLOGSESSION $OGLOGFILE ogMcastReceiverPartition "$DISKTARGET" "$PARTTARGET" "$SESSIONMCASTCLIENT" "$TOOLCLONE" "$COMPRESOR" || exit $(ogRaiseError $OG_ERR_MCASTRECEIVERPARTITION " l251 "; echo $?) ;; UNICAST|unicast) - echo ogUcastReceiverPartition $DISKTARGET $PARTTARGET $SESSIONUCASTCLIENT $TOOLCLONE $COMPRESOR + echo "ogUcastReceiverPartition $DISKTARGET $PARTTARGET $SESSIONUCASTCLIENT $TOOLCLONE $COMPRESOR" | tee -a $OGLOGSESSION $OGLOGFILE ogUcastReceiverPartition $DISKTARGET $PARTTARGET $SESSIONUCASTCLIENT $TOOLCLONE $COMPRESOR || exit $(ogRaiseError $OG_ERR_UCASTRECEIVERPARTITION " l230 "; echo $?) ;; esac - echo "[90] llamando a configureOS $DISKTARGET $PARTTARGET" + echo "[90] llamando a configureOS $DISKTARGET $PARTTARGET" | tee -a $OGLOGSESSION $OGLOGFILE configureOs $DISKTARGET $PARTTARGET else # Si el tamaño de los datos recibidos es más grande que la particion destino @@ -274,6 +289,6 @@ case $MASTERIP in ;; esac TIME=$[SECONDS-TIME1] -echo "[100] Duración de la operación $[TIME/60]m $[TIME%60]s" +echo "[100] Duración de la operación $[TIME/60]m $[TIME%60]s" | tee -a $OGLOGSESSION $OGLOGFILE diff --git a/client/shared/scripts/configureOs b/client/shared/scripts/configureOs index c9660d4d..06745748 100755 --- a/client/shared/scripts/configureOs +++ b/client/shared/scripts/configureOs @@ -18,8 +18,12 @@ #@version 1.0.2 - Configura el sector de la particion y el gestor de linux para iniciarse desde cualquier particion. #@author Antonio J. Doblas Viso. Universidad de Malaga. #@date 2011-11-22 +#@version 1.0.3 - Configura el chkdisk en el arranque de windows, segun variable OGWINCHKDISK del engine.cfg. +#@author Antonio J. Doblas Viso. Universidad de Malaga. +#@date 2011-12-23 - +#Carga del configurador del engine +[ -z $OGENGINECONFIGURATE ] && source /opt/opengnsys/etc/engine.cfg # Si el sistema de archivos no esta extendido. Realizar. PARTSIZE=$(ogGetPartitionSize $1 $2) @@ -47,6 +51,7 @@ if [ "$(ogGetOsType $1 $2)" = "Windows" ]; then ogWindowsBootParameters $1 $2 # Registrar en Windows que la partición indicada es su nueva unidad C:\ ogWindowsRegisterPartition $1 $2 C $1 $2 + ogLoadHiveWindows $1 $2; ogSetWindowsChkdisk $OGWINCHKDISK; ogUpdateHiveWindows fi if [ "$(ogGetOsType $1 $2)" = "Linux" ]; then diff --git a/client/shared/scripts/createImage b/client/shared/scripts/createImage index 3bba9d36..52dabf8d 100755 --- a/client/shared/scripts/createImage +++ b/client/shared/scripts/createImage @@ -38,9 +38,10 @@ # test 5. intentar crear una imagen, en la que no se puede reducir el FS. TIME1=$SECONDS -OGLOGSESSION="/tmp/session.log" -OGLOGCOMMAND="/tmp/command.log" +#Load engine configurator from engine.cfg file. +#Carga el configurador del engine desde el fichero engine.cfg +[ -z $OGENGINECONFIGURATE ] && source /opt/opengnsys/etc/engine.cfg @@ -50,12 +51,13 @@ if [ $# -ne 4 ]; then exit $? fi -# Valores por defecto -IMGPROG="partclone" -IMGCOMP="lzop" -IMGEXT="img" +# Valores por defecto en etc/engine.cfg +#IMGPROG="partclone" +#IMGCOMP="lzop" +#IMGEXT="img" +#IMGREDUCE="TRUE" -echo "[1] Iniciando $0 $*" | tee -a $OGLOGSESSION $OGLOGFILE +echo "[1] $MSG_SCRIPTS_START $0 $*" | tee -a $OGLOGSESSION $OGLOGFILE # Si el repositorio es CACHE comprobamos que exista @@ -79,19 +81,20 @@ echo " " > $OGLOGCOMMAND IMGDIR=$(ogGetParentPath "$3" "/$4") # Si no existe, crear subdirectorio de la imagen. if [ $? != 0 ]; then - echo "[5] Crear subdirectorio de la imagen \"$3 $(dirname "$4")." | tee -a $OGLOGSESSION $OGLOGFILE + echo "[5] $MSG_HELP_ogMakeDir \"$3 $(dirname "$4")." | tee -a $OGLOGSESSION $OGLOGFILE ogMakeDir "$3" $(dirname "/$4") || exit $(ogRaiseError $OG_ERR_NOTWRITE "$3 /$4"; echo $?) IMGDIR=$(ogGetParentPath "$3" "/$4") || exit $(ogRaiseError $OG_ERR_NOTWRITE "$3 /$4"; echo $?) fi IMGFILE=$IMGDIR/$(basename "/$4").$IMGEXT # Renombrar el fichero de imagen si ya existe. if [ -f "$IMGFILE" ]; then - echo "[10] Renombrar \"$IMGFILE\" por \"$IMGFILE.ant\"." | tee -a $OGLOGSESSION $OGLOGFILE - mv "$IMGFILE" "$IMGFILE.ant" + echo "[10] $MSG_SCRIPTS_FILE_RENAME \"$IMGFILE\" -> \"$IMGFILE.ant\"." | tee -a $OGLOGSESSION $OGLOGFILE + mv "$IMGFILE" "$IMGFILE.ant" mv "$IMGFILE.torrent" "$IMGFILE.torrent.ant" 2>/dev/null fi #Comprobar espacio que requerira la imagen para ser almacenada +echo " " > $OGLOGCOMMAND if ogMount $1 $2 &>/dev/null then SIZEDATA=$(df -k | grep $PART | awk '{print $3}') @@ -106,38 +109,63 @@ else ogRaiseError $OG_ERR_PARTITION "$1 $2" exit $? fi - -echo " " > $OGLOGCOMMAND - -# Mostrar información. -echo "[15] $PROG: Origen=$PART, Destino=$IMGFILE" | tee -a $OGLOGSESSION $OGLOGFILE -echo "[16] $PROG: TamañoRequerido=$SIZEREQUIRED EspacioDisponible=$SIZEFREE" | tee -a $OGLOGSESSION $OGLOGFILE - +echo "[16] $PROG: $MSG_SCRIPTS_CREATE_SIZE $SIZEREQUIRED $SIZEFREE" | tee -a $OGLOGSESSION $OGLOGFILE [ "$SIZEREQUIRED" -gt "$SIZEFREE" ] && exit $(ogRaiseError $OG_ERR_CACHESIZE "$3" || echo $?) # TODO: que hacer si la cache no tiene espacio libre. + # Comprobar consistencia del sistema de archivos. -echo "[20] Comprobar sistema de archivos." | tee -a $OGLOGSESSION $OGLOGFILE +echo " " > $OGLOGCOMMAND +SIZEFS=$(ogGetFsSize $1 $2) +echo "[20] $MSG_HELP_ogCheckFs $PART $SIZEFS (KB) " | tee -a $OGLOGSESSION $OGLOGFILE ogUnmount $1 $2 ogCheckFs $1 $2 || exit $(ogRaiseError $OG_ERR_PARTITION "ogCheckFs $1 $2" && echo $?) -echo " " > $OGLOGCOMMAND -echo "[30]: Reducir sistema de archivos." | tee -a $OGLOGSESSION $OGLOGFILE -ogReduceFs $1 $2 || exit $(ogRaiseError $OG_ERR_REDUCEFS "$1 $2"; echo $?) -echo " " > $OGLOGCOMMAND +if [ "$IMGREDUCE" == "TRUE" ] +then + echo "[30]: $MSG_HELP_ogReduceFs " | tee -a $OGLOGSESSION $OGLOGFILE + ogReduceFs $1 $2 || exit $(ogRaiseError $OG_ERR_REDUCEFS "$1 $2"; echo $?) + NEWSIZEFS=$(ogGetFsSize $1 $2) + TIMEAUX=$[SECONDS-TIME1] + echo " $MSG_SCRIPTS_TIME_PARTIAL ( $NEWSIZEFS KB ) : $[TIMEAUX/60]m $[TIMEAUX%60]s" | tee -a $OGLOGSESSION $OGLOGFILE +fi + + # Crear la imagen. -echo "[40] Crear imagen con: ogCreateImage $1 $2 $3 $4 $IMGPROG $IMGCOMP" | tee -a $OGLOGSESSION $OGLOGFILE +echo " " > $OGLOGCOMMAND +TIME2=$SECONDS +echo "[40] $MSG_HELP_ogCreateImage : ogCreateImage $1 $2 $3 $4 $IMGPROG $IMGCOMP" | tee -a $OGLOGSESSION $OGLOGFILE ogCreateImage $1 "$2" $3 $4 "$IMGPROG" "$IMGCOMP" || exit $(ogRaiseError $OG_ERR_IMAGE "ogCreteImage"; echo $?) +RESUMECREATEIMAGE=$(cat $OGLOGCOMMAND | grep "Total Time:") +TIMEAUX2=$[SECONDS-TIME2] +echo " $RESUMECREATEIMAGE " | tee -a $OGLOGSESSION $OGLOGFILE +echo " $MSG_SCRIPTS_TIME_PARTIAL : $[TIMEAUX2/60]m $[TIMEAUX2%60]s" | tee -a $OGLOGSESSION $OGLOGFILE + + +#Extender sistema de archivos +TIME3=$SECONDS echo "[90] Extender sistema de archivos." | tee -a $OGLOGSESSION $OGLOGFILE ogExtendFs $1 $2 || exit $(ogRaiseError $OG_ERR_EXTENDFS "$1 $2"; echo $?) +SIZEFS2=$(ogGetFsSize $1 $2) +TIMEAUX3=$[SECONDS-TIME3] +echo " $MSG_HELP_ogExtendFs $NEWSIZEFS -> $SIZEFS = $SIZEFS2: $[TIMEAUX3/60]m $[TIMEAUX3%60]s" | tee -a $OGLOGSESSION $OGLOGFILE + + +#TODO que hacer si error al extender sistemade archivos -TIME=$[SECONDS-TIME1] -echo "[100] Duracion de la operacion $[TIME/60]m $[TIME%60]s" | tee -a $OGLOGSESSION $OGLOGFILE +#resumen de la operacion +IMGSIZE=$(ls -s `ogGetPath $3 $4.img`| cut -f1 -d" ") +IMGOS=$(ogGetImageInfo `ogGetPath $3 $4.img`) + +TIME=$[SECONDS-TIME1] +echo "[100] $MSG_SCRIPTS_TIME_TOTAL $[TIME/60]m $[TIME%60]s" | tee -a $OGLOGSESSION $OGLOGFILE +echo " FileSystem $PART with $NEWSIZEFS KB data created onto file-image as $4 and used $IMGSIZE KB acros DFS $ogprotocol " | tee -a $OGLOGSESSION $OGLOGFILE +echo " Image-file $4 metada: $IMGOS " | tee -a $OGLOGSESSION $OGLOGFILE diff --git a/client/shared/scripts/deployImage b/client/shared/scripts/deployImage index e5a2bec3..1969a9ab 100755 --- a/client/shared/scripts/deployImage +++ b/client/shared/scripts/deployImage @@ -22,8 +22,8 @@ TIME1=$SECONDS -OGLOGSESSION="/tmp/session.log" -OGLOGCOMMAND="/tmp/command.log" +#Carga del configurador del engine +[ -z $OGENGINECONFIGURATE ] && source /opt/opengnsys/etc/engine.cfg PROG="$(basename $0)" @@ -33,20 +33,43 @@ if [ $# -lt 4 ]; then fi #controlar param1 REPO -echo "[1] Realizando un updateCache REPO $2.img $5 $6" | tee -a $OGLOGSESSION $OGLOGFILE +echo "[1] $MSG_SCRIPTS_TASK_START updateCache REPO $2.img $5 $6" | tee -a $OGLOGSESSION $OGLOGFILE updateCache REPO $2.img $5 $6 | tee -a $OGLOGCOMMAND RETVAL=$? + +TIME2=$[SECONDS-TIME1] +echo " [ ] $MSG_SCRIPTS_TIME_PARTIAL updateCache $[TIME2/60]m $[TIME2%60]s" | tee -a $OGLOGSESSION $OGLOGFILE + + + if [ "$RETVAL" != "0" ] then - echo "[49] Fin del updateCache REPO $2.img $5 $6 con error $RETVAL" | tee -a $OGLOGSESSION $OGLOGFILE + echo "[100] $MSG_SCRIPTS_TASK_ERR = $RETVAL ; updateCache REPO $2.img $5 $6 " | tee -a $OGLOGSESSION $OGLOGFILE # RC=15 No hay cache # RC=16 no hay espacio sufiente - exit $RETVAL - -else - echo "[50] Iniciando un ogRestore CACHE desde deployImage" | tee -a $OGLOGSESSION $OGLOGFILE - ogRestoreImage CACHE /$2 $3 $4 &>> $OGLOGCOMMAND - RETVAL=$? - [ "$RETVAL" == "0" ] && configureOs $3 $4 | tee -a $OGLOGCOMMAND - exit $RETVAL -fi \ No newline at end of file + exit $RETVAL +fi + + + + +TIME2=$SECONDS +echo "[50] $MSG_SCRIPTS_TASK_START ogRestore CACHE /$2 $3 $4" | tee -a $OGLOGSESSION $OGLOGFILE +ogRestoreImage CACHE /$2 $3 $4 &>> $OGLOGCOMMAND +RETVAL=$? +if [ "$RETVAL" == "0" ] +then + RESUMERESTOREIMAGE=$(cat $OGLOGCOMMAND | grep "Total Time:") + echo " [ ] $RESUMERESTOREIMAGE " | tee -a $OGLOGSESSION $OGLOGFILE + echo " [ ] $MSG_SCRIPTS_TIME_PARTIAL : $[TIME2/60]m $[TIME2%60]s" | tee -a $OGLOGSESSION $OGLOGFILE + TIME2=$[SECONDS-TIME2] + echo "[90] $MSG_SCRIPTS_OS_CONFIGURE " | tee -a $OGLOGSESSION $OGLOGFILE + configureOs $3 $4 | tee -a $OGLOGCOMMAND +fi + +TIME=$[SECONDS-TIME1] +echo "[100] $MSG_SCRIPTS_TIME_TOTAL $[TIME/60]m $[TIME%60]s" | tee -a $OGLOGSESSION $OGLOGFILE + + + +exit $RETVAL \ No newline at end of file diff --git a/client/shared/scripts/updateBootCache b/client/shared/scripts/updateBootCache index f3edae7c..e866474d 100755 --- a/client/shared/scripts/updateBootCache +++ b/client/shared/scripts/updateBootCache @@ -36,19 +36,25 @@ ogMountCache || exit 1 if [ "$CACHEVMLINUZ" != "$SERVERVMLINUZ" ] then echo "ogvmlinuz updating" - cp ${OGBTFTP}ogvmlinuz ${OGCAC}/boot/ogvmlinuz - cp ${OGBTFTP}ogvmlinuz.sum ${OGCAC}/boot/ogvmlinuz.sum + cp ${OGBTFTP}/ogvmlinuz ${OGCAC}/boot/ogvmlinuz + cp ${OGBTFTP}/ogvmlinuz.sum ${OGCAC}/boot/ogvmlinuz.sum DOREBOOT=true fi if [ "$CACHEINITRD" != "$SERVERINITRD" ] then echo "oginitrd updating" - cp ${OGBTFTP}oginitrd.img ${OGCAC}/boot/oginitrd.img - cp ${OGBTFTP}oginitrd.img.sum ${OGCAC}/boot/oginitrd.img.sum + cp ${OGBTFTP}/oginitrd.img ${OGCAC}/boot/oginitrd.img + cp ${OGBTFTP}/oginitrd.img.sum ${OGCAC}/boot/oginitrd.img.sum DOREBOOT=true fi echo $DOREBOOT # [ "$DOREBOOT" == "true" ] && busybox reboot -f +#TODO: Comprobar si es necesario +#cp -prv cp ${OGBTFTP}/ ${OGCAC}/boot/ + +#TODO +#/opt/opengnsys/lib/grub4dos/bootlace.com /dev/sda + diff --git a/client/shared/scripts/updateCache b/client/shared/scripts/updateCache index 2b7f2c3f..c30dab2b 100755 --- a/client/shared/scripts/updateCache +++ b/client/shared/scripts/updateCache @@ -11,7 +11,9 @@ #@param 4 str_opcionesupdatecache #@ejemplo: oneRemoteFromMaster 172.17.36.11 CACHE /imagen1 9000:full-duplex:239.194.17.36:70M:50:100 1 1 partclone lzop #@return -#@exception OG_ERR_FORMAT formato incorrecto. +#@exception OG_ERR_FORMAT formato incorrecto. +#@exception OG_ERR_NOTCACHE No existe cache -15- +#@exception $OG_ERR_CACHESIZE Tamaño de la paticion menor al archivo a descargar -16- #@note #@todo: #@version 0.9.1 - integracion EAC @@ -31,35 +33,71 @@ if [ $# -lt 3 ]; then exit $? fi +#Carga del configurador del engine +[ -z $OGENGINECONFIGURATE ] && source /opt/opengnsys/etc/engine.cfg + REPOSITORIO="$1" PROTOCOLO="$3" OPTPROTOCOLO="$4" REPOIP=$(ogGetRepoIp) echo $REPOSITORIO $REPOIP $PROTOCOLO $OPTPROTOCOLO -# Si el repositorio local CACHE no existe salimos. + +# Si el repositorio local CACHE no existe error 15. if ! $(ogFindCache >/dev/null); then ogRaiseError $OG_ERR_NOTCACHE "CACHE" exit $? fi -#Comprobamos si Actualizacion - existe una imagen con igual nombre pero distinto sum- +echo "$MSG_SCRIPTS_UPDATECACHE_DOUPDATE " #TODO: ogUpdateCacheIsNecesary debe borrar la imagen que tenga igual nombre pero distinto sum- ogUpdateCacheIsNecesary $1 $2; RETVAL=$? # si RETVAL=0 => actualizamos si RETVAL=1 no actaulizasmo-exit 0 || si RETVAL>2 exit 1 [ "$RETVAL" == "1" ] && exit 0 [ "$RETVAL" -gt "1" ] && exit 1 - +CACHESIZE=$(ogGetCacheSize) CACHESIZEFREE=$(ogGetFreeSize `ogFindCache`) FILESIZE=$(ls -sk $(ogGetPath $REPOSITORIO "$2") | cut -f1 -d" ") -if [ "$FILESIZE" -ge "$CACHESIZEFREE" ] + +echo "$MSG_SCRIPTS_UPDATECACHE_CHECKSIZECACHE" +#ERROR CACHESIZE 16 +if [ "$FILESIZE" -ge "$CACHESIZE" ] then - echo "el tamanio del fichero $2 = $FILESIZE es mayor que el espacio dispinible en la cache = $CACHESIZEFREE" + echo "WARNING: $MSG_ERR_CACHESIZE: $2 = $FILESIZE > CACHE = $CACHESIZE" | tee -a $OGLOGSESSION $OGLOGFILE ogRaiseError $OG_ERR_CACHESIZE "CACHE" exit $? fi +echo "$MSG_SCRIPTS_UPDATECACHE_IFNOTCACHEDO" +#ERROR CACHESIZE 16 +if [ "$FILESIZE" -ge "$CACHESIZEFREE" ] +then + # echo "[ ] No hay espacio sufiente en la CACHE, detectar que hacer con engine.cfg" | tee -a $OGLOGSESSION $OGLOGFILE + case $ACTIONCACHEFULL in + NONE) + NEXTOPERATION=UNICAST + ;; + FORMAT) + echo "[51] $MSG_HELP_ogFormatCache " | tee -a $OGLOGSESSION $OGLOGFILE + ogUnmountCache + ogFormatCache + ogMountCache + NEXTOPERATION=REPEAT + ;; + DELETE) + echo "[51] #MSG_HELP_ogDeleteTree $OGCAC$OGIMG/* " | tee -a $OGLOGSESSION $OGLOGFILE + rm -fr $OGCAC$OGIMG/* + NEXOPERATION=REPEAT + ;; + *) + echo "WARNING: $MSG_ERR_CACHESIZE: $2 = $FILESIZE > CACHE = $CACHESIZEFREE" | tee -a $OGLOGSESSION $OGLOGFILE + ogRaiseError $OG_ERR_CACHESIZE "CACHE" + exit $? + ;; + esac +fi + ogUpdateCacheIsNecesary $REPOSITORIO "$2"; RETVAL=$? # si RETVAL=0 => actualizamos si RETVAL=1 no actaulizasmo-exit 0 || si RETVAL>2 exit 1 [ "$RETVAL" == "1" ] && exit 0 @@ -70,11 +108,12 @@ ogMountCache >/dev/null ## Si no existe, crear subdirectorio para el fichero en la cache. IMGDIR=$(ogGetParentPath CACHE "/$2") if [ $? != 0 ]; then - echo "[5] Crear subdirectorio del fichero \"$2 $(dirname "$2")." + echo "[5] $MSG_HELP_ogMakeDir \"$2 $(dirname "$2")." ogMakeDir CACHE $(dirname "/$2") IMGDIR=$(ogGetParentPath CACHE "/$2") || exit $? fi +TIME1=$SECONDS case "$PROTOCOLO" in torrent | TORRENT ) @@ -86,25 +125,26 @@ case "$PROTOCOLO" in #TODO comprobar que el fichero torrent está en cache # retardamos el inicio -aleatorio de 0 a 120 segundos- al tracker para gestionar mas de +-40 equipos P2PWAIT=$[ ( $RANDOM % 120 ) + 1 ] - echo "Esperando $P2PWAIT segundos para iniciar ogTorrentStart CACHE $2.torrent $4" + echo " [ ] $MSG_SCRIPTS_TASK_SLEEP : $P2PWAIT seconds ogTorrentStart CACHE $2.torrent $4" | tee -a $OGLOGSESSION $OGLOGFILE sleep $P2PWAIT + echo " [ ] $MSG_SCRIPTS_TASK_START: ogTorrentStart CACHE $2.torrent $4" | tee -a $OGLOGSESSION $OGLOGFILE ogTorrentStart CACHE "$2.torrent" $4 + RESUMEUPDATECACHE=$(cat $OGLOGCOMMAND | grep -B1 "Download") ;; multicast | MULTICAST ) - echo "determinando puerto principal y auxiliar." PORT=$(echo $OPTPROTOCOLO | cut -f1 -d":") let PORTAUX=$PORT+1 + echo "$MSG_SCRIPTS_UPDATECACHE_CHECKMCASTSESSION : $REPOIP:$PORTAUX:$PORT" #TODO: ticket 379 NUMBER=$[ ( $RANDOM % 30 ) + 1 ] sleep $NUMBER #FIN TODO - echo "comprobando puerto $PORTAUX en $REPOIP (sesion multicast en puerto $PORT) " if (nmap -n -sU -p $PORTAUX $REPOIP | grep open) then ogMcastReceiverFile $PORT CACHE "$2" else # TODO ticket 379 Realizar la petición basada en identificador de operacion - echo "solicita la apertura: hose $REPOIP 2009 --out sh -c "echo -ne START_MULTICAST $2 $OPTPROTOCOLO"" + echo "$MSG_SCRIPTS_TASK_START : hose $REPOIP 2009 --out sh -c "echo -ne START_MULTICAST $2 $OPTPROTOCOLO"" hose $REPOIP 2009 --out sh -c "echo -ne START_MULTICAST $2 $OPTPROTOCOLO" #echo "espero y llamo a: ogMcastReceiverFile $PORT CACHE $2" sleep 10 @@ -112,10 +152,14 @@ case "$PROTOCOLO" in then ogMcastReceiverFile $PORT CACHE "$2" else - echo "la peticion ha fallado: hose $REPOIP 2009 --out sh -c echo -ne START_MULTICAST $2 $OPTPROTOCOLO" + echo "$MSG_SCRIPTS_TASK_ERR : hose $REPOIP 2009 --out sh -c echo -ne START_MULTICAST $2 $OPTPROTOCOLO" exit 1 fi - fi + fi + #cat $OGLOGCOMMAND.tmp | grep -B1 "Transfer complete" + sleep 5 + #cat $OGLOGCOMMAND.tmp | grep -B1 "Transfer complete" + RESUMEUPDATECACHE=$(cat $OGLOGCOMMAND.tmp | grep -B1 "Transfer complete") ;; unicast | UNICAST ) echo "unicast" @@ -123,8 +167,15 @@ case "$PROTOCOLO" in ;; esac - +TIME1=$[SECONDS-TIME1] +echo " [ ] $RESUMEUPDATECACHE " | tee -a $OGLOGSESSION $OGLOGFILE +echo " [ ] $MSG_SCRIPTS_TIME_PARTIAL updateCache $[TIME1/60]m $[TIME1%60]s" | tee -a $OGLOGSESSION $OGLOGFILE +echo " [ ] $MSG_SCRIPTS_TASK_START $MSG_HELP_ogCalculateChecksum " | tee -a $OGLOGSESSION $OGLOGFILE +TIME2=$SECONDS ogUpdateCacheIsNecesary $REPOSITORIO "$2"; RETVAL=$? +TIME2=$[SECONDS-TIME2] +echo " [ ] $MSG_SCRIPTS_TIME_PARTIAL $MSG_HELP_ogCalculateChecksum $[TIME2/60]m $[TIME2%60]s" | tee -a $OGLOGSESSION $OGLOGFILE + # si RETVAL=0 => actualizamos si RETVAL=1 no actaulizasmo-exit 0 || si RETVAL>2 exit 1 [ "$RETVAL" == "0" ] && exit 1 [ "$RETVAL" == "1" ] && exit 0 diff --git a/doc/CHANGELOG.es.txt b/doc/CHANGELOG.es.txt index 6054a8af..8b1e6525 100644 --- a/doc/CHANGELOG.es.txt +++ b/doc/CHANGELOG.es.txt @@ -2,6 +2,44 @@ LISTA DE CAMBIOS CHANGELOG.es.ext ======================================== +Lista de cambios incluidos en OpenGnSys 1.0.3 +--------------------------------------------- + +Tickets resueltos en módulo OpenGnSys Cloning Engine: +#92 ogGetFsType detecta identificador de partición no sistema de archivos +#469 Definir fichero de configuración para el motor de clonación +#470 Implementar mejoras en script updateCache +#471 Test de rendimiento de sistemas de archivos en contenedor de imágenes local y remoto (duplicado de #468) +#472 Librería PostConf permite habilitar la desactivación del chkdisk tras clonación en Windows +#481 Script sendFileMcast del repositorio sin mbuffer +#482 Script de inicio mountrepo.sh no reconoce variable "ogprotocol" + +Tickets resueltos en módulo OpenGnSys Client: +#440 Restauración con Partclone muy lenta +#456 Seguridad: ogclient en modo usuario monta el repositorio con permisos de escritura +#460 Cliente ogLive 11.10 (tarea) +#466 Comando iniciar sobre sistema Linux bloqueado por Browswer +#468 Sistema de archivos de la caché en Ext4 +#477 Mejorar la internacionalización del cliente (inglés, en especial) + +Tickets resueltos en módulo OpenGnSys Web Admin Console: +#376 Menú para el Browser en equipos sin menú asignados con valores por defecto (se solucionará en #411) +#454 Buscador de equipos para la interfaz de administración web (mejora) +#475 Consola web comando->restaurar habilitar restauración directa (sin cache) por Multicast y Unicast (mejora) +#483 Completar la internacionalización de la consola web (los 3 idiomas iniciales) +#485 Cambio en la cantidad de registros a mostrar en colas de acciones +#486 Frames dinámicos en el interfaz Web +#487 Tamaño de select dinámico en Gestión Avanzada Arranque y Reubicador de equipos +#492 Mejoras en páginas principal de acceso (mejora) + +Tickets resueltos en módulo OpenGnSys Installer: +#504 instalador: error al instalar servidor DHCP en Ubuntu 10.04.4 + +Tickets genéricos resueltos: +#498 Traducción al inglés de ficheros de documentación +#499 Integración de OpenGnSys 1.0.3 en rama principal + + Lista de cambios incluidos en OpenGnSys 1.0.2a (versión de mantenimiento) ---------------------------------------------- diff --git a/doc/INSTALL.en.txt b/doc/INSTALL.en.txt new file mode 100644 index 00000000..3bf0b26f --- /dev/null +++ b/doc/INSTALL.en.txt @@ -0,0 +1,100 @@ + +OpenGnSys Server Installation v. 1.0.3 +====================================== + + +Notes +----- + +It is assumed OpenGnSys Server will be installed in a GNU/Linux distro, Ubuntu 10.04 Server LTS or later, Linux Mint 12 or later, Debian 6 or later. + + +Installation Methods +-------------------- + +There are three basic ways OpenGnSys installation: + + Installation script. Which uses Subversion to download the application. + Starting from a tar.gz This application is now complete. + Installation step by step manual. It is obvious the installation script and install each component. + + +1. Download the Installation Script + +OpenGnSys installation is done by running the installation script opengnsys_installer.sh, which can be downloaded directly from http://www.opengnsys.es/svn/trunk/installer/opengnsys_installer.sh + +1.1. Download the script. Examples with various tools: + + Download with wget. + wget http://www.opengnsys.es/svn/trunk/installer/opengnsys_installer.sh + Download with curl. + curl http://www.opengnsys.es/svn/trunk/installer/opengnsys_installer.sh > opengnsys_installer.sh + Download with a web browser. Click on the link http://www.opengnsys.es/svn/trunk/installer/opengnsys_installer.sh and save the file as opengnsys_installer.sh + +1.2. Or, installation from tar.gz. + + If we do not have access to Subversion, we will have to download the package tgz from the web. Access to http://www.opengnsys.es/browser/tags and load it on a server temporary directory. + + Descompress the file: + tar xvzf opengnsys-version.tar.gz + + Change to the installer directory: + cd opengnsys/installer + + +2. Basic Configuration + + For security reasons, it is very important modify defaults users and passwords to access to the system. For this, edit the installation file opengnsys_installer.sh and change the values of configuration variables: + MYSQL_ROOT_PASSWORD - MySQL root user password. + OPENGNSYS_DB_USER - OpenGnSys access user and OpenGnSys super-user. + OPENGNSYS_DB_PASSWD - User password. + OPENGNSYS_CLIENT_PASSWD - Password for client access to remote services. + + +3. Installation process. + +The installation script must be run as root: + + sudo bash opengnsys_installer.sh + + +4. Check the configuration files. + +Init Configuration + /opt/opengnsys/etc/ogAdmServer.cfg - OpenGnSys Server config file + /opt/opengnsys/etc/ogAdmRepo.cfg - OpenGnSys Repository config file + /opt/opengnsys/etc/ogAdmAgent.cfg - OpenGnSys Agent config file + /opt/opengnsys/client/etc/ogAdmClient.cfg - OpenGnSys Client config file + /opt/opengnsys/www/controlacceso.php - OpenGnSys Web Admin Console config file + +Configure DHCP server, insert clients data and restart the service. + +Access as Administrador in Web Admin Console. + Use the user and password set in the installer to access to database (variables OPENGNSYS_DB_USER and OPENGNSYS_DB_PASSWD). + Check the default organizaed configuration and default user. + Access as user in Web Admin Console. + Use the user and password configured as administrador in the Organizational Unit. + Check the server IP in section "Servidores->Servidor OpenGnSys (Default)". + If you change the configuration, you must to restart the server: sudo /etc/init.d/opengnsys restart + + +Updating OpenGnSys +------------------ + +Run opengnsys_update.sh script as "root" to update all OpenGnSys components from the Subversion repository: + + sudo bash /opt/opengnsys/lib/opengnsys_update.sh + +Follow the instructions. + + +Uninstalling OpenGnSys +---------------------- + +Run opengnsys_uninstall.sh script as "root" to uninstall all OpenGnSys components: + + sudo bash /opt/opengnsys/lib/opengnsys_uninstall.sh + +Follow the instructions. + + diff --git a/doc/INSTALL.es.txt b/doc/INSTALL.es.txt index 52ed63b8..3d8a05f1 100644 --- a/doc/INSTALL.es.txt +++ b/doc/INSTALL.es.txt @@ -1,16 +1,16 @@ -Instalación de OpenGnSys Server v 1.0.1 +Instalación de OpenGnSys Server v 1.0.3 ======================================= Notas iniciales --------------- -Se presupone que el servidor de OpenGnSys va a ser instalado en una distribución del sistema operativo Ubuntu Linux a partir de la versión 9.04. +Se presupone que el servidor de OpenGnSys va a ser instalado en una distribución del sistema operativo Ubuntu Linux a partir de la versión 9.04 (también ha sido probado en sistemas Debian 6 y Linux Mint 12). El serividor debe tener acceso a Internet para descargar los paquetes necesarios, el rpositorio código y el cliente preconfigurado. Requisitos mínimos de almacenamiento: - 350 MB en el directorio /tmp (solo durante la instalación) -- 300 MB en el directorio /var/lib/tftpboot +- 300 MB en el directorio /var/lib/tftpboot (o /srv en sistemas Debian) - 50 MB en el directorio de instalación /opt/opengnsys - Estimar la capacidad necesaria para el repositorio de imágenes en /opt/opengnsys/images @@ -18,27 +18,31 @@ Requisitos mínimos de almacenamiento: Instalación ----------- -La instalación de OpenGnSys se realiza ejecutando el script de instalación opengnsys_installer.sh, el cual puede obtenerse descomprimiendo el fichero de la versión opengnsys-Version.tar.gz o descargándolo directamente de la dirección: http://www.opengnsys.es/browser/trunk/installer/opengnsys_installer.sh?format=txt +La instalación de OpenGnSys se realiza ejecutando el script de instalación opengnsys_installer.sh, el cual puede obtenerse descomprimiendo el fichero de la versión opengnsys-Version.tar.gz o descargándolo directamente de la dirección: http://www.opengnsys.es/svn/trunk/installer/opengnsys_installer.sh Ejemplos de descompresión del programa: - tar xvzf opengnsys-1.0.1.tar.gz + tar xvzf opengnsys-1.0.3.tar.gz cd opengnsys/installer - Ejemplos de descarga con varias herramientas: * Descargar con wget. - wget http://www.opengnsys.es/browser/trunk/installer/opengnsys_installer.sh?format=txt -O opengnsys_installer.sh + wget http://www.opengnsys.es/svn/trunk/installer/opengnsys_installer.sh -O opengnsys_installer.sh * Descargar con curl. - curl http://www.opengnsys.es/browser/trunk/installer/opengnsys_installer.sh?format=txt > opengnsys_installer.sh + curl http://www.opengnsys.es/svn/trunk/installer/opengnsys_installer.sh > opengnsys_installer.sh + +Como medida de seguridad, resulta muy importante modificar los usuarios y claves por defecto de acceso al sistema. Para ello, editar el fichero de instalación opengnsys_installer.sh y modificar los valores de las variables de configuración: + MYSQL_ROOT_PASSWORD - clave del usuario root de MySQL. + OPENGNSYS_DB_USER - usuario de acceso y super-administrador de OpenGnSys. + OPENGNSYS_DB_PASSWD - clave del usuario. + OPENGNSYS_CLIENT_PASSWD - clave de acceso del cliente a servicios remotos. El script debe ser ejecutado como usuario root: sudo bash opengnsys_installer.sh - Se realizan los siguientes procesos: * Obtenener los parámetros básicos de la red. * Comprobar los paquetes instalados. @@ -54,7 +58,6 @@ Se realizan los siguientes procesos: * Descargar la imagen inicial de OpenGnSys Client. * Configuración básica de los serviciios de OpenGnSys a partir de los parámetros de red. - Una vez finalizada la ejecución del instalador, puede empezarse a trabajar con el sistema: * Configurar DHCP. * Añadir datos en la consola de administración. diff --git a/doc/README.en.txt b/doc/README.en.txt new file mode 100644 index 00000000..149b600f --- /dev/null +++ b/doc/README.en.txt @@ -0,0 +1,67 @@ + +The OpenGnSys Project README +================================ + +OpenGnSys (pronounced Open Genesis) is based on a modular architecture separated in different service layers which allows its implementation in several educational and organizational IT environments, both in a centralized or distributed way. The main system management is carried out by means of a simple web interface which supports delegated administration. OpenGnSys is also suitable for isolated environments, being able to work under network failure conditions (offline mode). + + +Architecture +------------ + +From the point of view of clients, OpenGnSys Project is constituted by a set of separate modules in different layers of services. + + * The bottom layer is responsible for direct access to client devices and motor functions of cloning. + * An intermediate layer consisting of a set of tools to perform complex tasks and environment customization. + * Management module consists of a simple and intuitive web interface that allows common tasks to manage software distribution to clients. + +Overall, OpenGnSys is a modular system that integrates a set of interrelated components and can be adapted to a variety of work settings possible. These components consist of standard services (file servers, web, database, DHCP, PXE, ...) and custom-developed tools for the project (cloning engine, console web, browser ad hoc, management demons repository and server, ...) which in combination offer everything OpenGnSys system. + + * OpenGnSys Server + Basic service cloning system (DHCP, NFS/Samba, PXE, database, etc..) Necessary for the boot process and initial configuration of the clients. + + * OpenGnSys Administrator + Centralized management web console (web pages, web services, etc.) with support for delegated administration, allowing control of all system components. + + * OpenGnSys Repository Manager + Manager repository of images for each of the administrative units defined in the module OpenGnSys Administrator. There may be one or more modules depending on the model of the organization defined. + + * OpenGnSys Client Agent + Executing agent of orders in the client, which integrates the following features: + - Graphical interface to select options predefined by the administrator. + - Interactive execution of Cloning Engine functions in administrator mode. + - Execution of the tasks sent from the OpenGnSys Administrator module. + + * OpenGnSys Clonning Engine + Motor function libraries cloning, installation and startup of the client operating systems. + + * OpenGnSys Installer + Software installation, upgrade and removal system which includes the settings generator, the clients boot generator, the component package builder, etc. + + +Scenarios +--------- + +OpenGnSys is a modular system that can be used in different scenarios within an Institution, both educational and organizational. + + * Educational Scenarios: OpenGnSys can lend support to some of the educational settings defined by the Working Group-Net Teaching RedIRIS. + + - Classroom teaching: allowing the management and implementation of software installation on the computers of teachers, with ability to customize the settings according to user requirements. + - Classroom teaching ICT Classrooms: implementing methods independent support for PCs of students and teachers. + - Self-learning ICT Classrooms: methods of deployment computers for students, grouped according to the needs identified for each position or for each user profile. + + * Organizational Scenarios: The project can be implemented to provide support in other settings defined in an Institution, such as: + + - Information Services. + - Helpdesk for employment computers. + - Servers Deployment in Data Center. + + +Origins + +OpenGnSys born in May 2009 after the Working Groups RedIRIS held in Malaga as an effort to integrate several projects in development: + + * Brutalix, University of Zaragoza + * Entorno Avanzado de Clonación (EAC), University of Málaga. + * Web Hidra Interface, University of Seville. + + diff --git a/doc/VERSION.txt b/doc/VERSION.txt index 1ccdeba1..a0448f42 100644 --- a/doc/VERSION.txt +++ b/doc/VERSION.txt @@ -1 +1 @@ -OpenGnSys 1.0.2a +OpenGnSys 1.0.3 diff --git a/installer/INSTALL.en.txt b/installer/INSTALL.en.txt new file mode 100644 index 00000000..cfff05c5 --- /dev/null +++ b/installer/INSTALL.en.txt @@ -0,0 +1,45 @@ + +Installing and updating OpenGnSys +================================= + + + +Installing OpenGnsys +-------------------- + + +For security reasons, it is very important modify defaults users and passwords to access to the system. For this, edit the installation file opengnsys_installer.sh and change the values of configuration variables: + + MYSQL_ROOT_PASSWORD - MySQL root user password. + OPENGNSYS_DB_USER - OpenGnSys access user and OpenGnSys super-user. + OPENGNSYS_DB_PASSWD - User password. + OPENGNSYS_CLIENT_PASSWD - Password for client access to remote services. + + +Run opengnsys_installer.sh script as "root" to install all its dependencies, to install the OpenGnSys components, and to make the initial configuration. + + sudo bash opengnsys_installer.sh + +Follow the post-installation instructions. + + +Updating OpenGnSys +------------------ + +Run opengnsys_update.sh script as "root" to update all OpenGnSys components from the Subversion repository: + + sudo bash /opt/opengnsys/lib/opengnsys_update.sh + +Follow the instructions. + + +Uninstalling OpenGnSys +---------------------- + +Run opengnsys_uninstall.sh script as "root" to uninstall all OpenGnSys components: + + sudo bash /opt/opengnsys/lib/opengnsys_uninstall.sh + +Follow the instructions. + + diff --git a/installer/INSTALL.es.txt b/installer/INSTALL.es.txt index 1961137d..7291d677 100644 --- a/installer/INSTALL.es.txt +++ b/installer/INSTALL.es.txt @@ -1,47 +1,52 @@ -Instalación y Actualización de OpenGnSys -======================================== +Instalación y Actualización de OpenGnSys 1.0.3 +============================================== Instalación inicial ------------------- +1. Obtener el instalador. + Descargar una versión completa y desccomprimir el fichero "opengnsys-version.tar.gz": tar xvzf opengnsys-version.tar.gz - cd opengnsys-version/installer + cd opengnsys/installer O bien, descargar el instalador desde la última reversión del repositorio: svn export http://www.opengnsys.es/svn/trunk/installer/opengnsys_installer.sh -Ejecutar el instalador como root: - sudo bash opengnsys_installer.sh +2. Configuración básica. +Como medida de seguridad, debe modificarse los usuarios y claves por defecto de acceso al sistema. Para ello, editar el fichero de instalación opengnsys_installer.sh y modificar los valores de las variables de configuración: -Actaulización de ficheros -------------------------- + MYSQL_ROOT_PASSWORD - clave del usuario root de MySQL. + OPENGNSYS_DB_USER - usuario de acceso y super-administrador de OpenGnSys. + OPENGNSYS_DB_PASSWD - clave del usuario. + OPENGNSYS_CLIENT_PASSWD - clave de acceso del cliente a servicios remotos. -AVISO: es recomendable hacer copia de seguridad del servidor antes de actualizar. +3. Ejecutar el instalador como root: + sudo bash opengnsys_installer.sh -Descargar el fichero opengnsys-version.tar.gz y descomprimirlo: - tar xvzf opengnsys-version.tar.gz - cd opengnsys-version/installer -O bien, descargar el actualizador desde la última revisión del repositorio: - svn export http://www.opengnsys.es/svn/trunk/installer/opengnsys_update.sh +Actaulización de ficheros +------------------------- -Ejecutar el programa de actualización como root: - sudo bash opengnsys_installer.sh +Ejecutar el script de actualización como usuario root: + sudo /opt/opengnsys/lib/opengnsys_update.sh -NOTA: el programa de actualización no modifica ficheros de configuración, no actualiza la bases de datos, no modifica ficheros de imágenes, ni recompila los servicios principales de OpenGnSys. +Notas importantes. +1. Es necesario conexión a Internet para obtener las últimas actualizaciones. +2. Si el script se actualiza a sí mismo, pedirá automáticamente que vuelva a ser ejecutado para terminar de actualizar todo el sistema. +3. El programa de actualización no modifica ficheros de configuración, no actualiza la bases de datos y no modifica ficheros de imágenes. Desinstalar OpenGnSys --------------------- -AVISO: Para poder conservar la información, es recomendable hacer copia de seguridad del servidor antes de desinstalar. - -Ejecutar como root el programa de desinstalación, bien disponible en el fichero comprimido o bien descargado directamente del servidor: +Ejecutar el script de actualización como usuario root: + sudo /opt/opengnsys/lib/opengnsys_uninstall.sh - sudo bash opengnsys_uninstall.sh +Notas importantes. +1. Para poder conservar la información, es recomendable hacer copia de seguridad del servidor antes de desinstalar. +2. El programa de desinstalación no elimina los ficheros de imágenes, no desinstala ningún paquete del sistema operativo incluido en el proceso de instalación y no detiene, ni desconfigura ningún otro servicio auxiliar a OpenGnSys. -NOTA: el programa de desinstalación no elimina los ficheros de imágenes, no desinstala ningún paquete del sistema operativo incluido en el proceso de instalación y no detiene, ni desconfigura ningún otro servicio auxiliar a OpenGnSys. diff --git a/installer/opengnsys_installer.sh b/installer/opengnsys_installer.sh index e98ac9cc..1781eda9 100755 --- a/installer/opengnsys_installer.sh +++ b/installer/opengnsys_installer.sh @@ -68,7 +68,8 @@ OSCODENAME=$(lsb_release -cs 2>/dev/null) # Configuración según la distribución de Linux. case "$OSDISTRIB" in - Ubuntu) DEPENDENCIES=( subversion apache2 php5 libapache2-mod-php5 mysql-server php5-mysql isc-dhcp-server bittorrent tftp-hpa tftpd-hpa syslinux openbsd-inetd update-inetd build-essential g++-multilib libmysqlclient15-dev wget doxygen graphviz bittornado ctorrent samba unzip netpipes debootstrap schroot squashfs-tools ) + Ubuntu|Debian|LinuxMint) + DEPENDENCIES=( subversion apache2 php5 libapache2-mod-php5 mysql-server php5-mysql isc-dhcp-server bittorrent tftp-hpa tftpd-hpa syslinux openbsd-inetd update-inetd build-essential g++-multilib libmysqlclient15-dev wget doxygen graphviz bittornado ctorrent samba unzip netpipes debootstrap schroot squashfs-tools ) UPDATEPKGLIST="apt-get update" INSTALLPKG="apt-get -y install --force-yes" CHECKPKG="dpkg -s \$package 2>/dev/null | grep Status | grep -qw install" @@ -80,9 +81,14 @@ case "$OSDISTRIB" in ENABLESITE="a2ensite" DHCPINIT=/etc/init.d/isc-dhcp-server DHCPCFGDIR=/etc/dhcp - SAMBAINIT=/etc/init.d/smbd + if [ "$OSDISTRIB" == "Debian" ]; then + SAMBAINIT=/etc/init.d/samba + else + SAMBAINIT=/etc/init.d/smbd + fi SAMBACFGDIR=/etc/samba TFTPCFGDIR=/var/lib/tftpboot + [ -d $TFTPCFGDIR ] || TFTPCFGDIR=/srv/tftp # Debian 6 ;; "") echo "ERROR: Unknown Linux distribution, please install \"lsb_release\" command." exit 1 ;; @@ -102,9 +108,9 @@ local DHCPVERSION # Configuración personallizada de algunos paquetes. case "$OSDISTRIB" in - Ubuntu) # Postconfiguación personalizada para Ubuntu. + Ubuntu|LinuxMint) # Postconfiguación personalizada para Ubuntu. # Configuración para DHCP v3. - DHCPVERSION=$(apt-cache --full search dhcp.?-server$ | \ + DHCPVERSION=$(apt-cache show $(apt-cache pkgnames|egrep "dhcp.?-server$") | \ awk '/Version/ {print substr($2,1,1);}' | \ sort -n | tail -1) if [ $DHCPVERSION = 3 ]; then @@ -129,19 +135,20 @@ function getDateTime() # Escribe a fichero y muestra por pantalla function echoAndLog() { - echo "$1" local DATETIME=`getDateTime` + echo "$1" echo "$DATETIME;$SSH_CLIENT;$1" >> $LOG_FILE } +# Escribe a fichero y muestra mensaje de error function errorAndLog() { - echo "ERROR: $1" local DATETIME=`getDateTime` + echo "ERROR: $1" echo "$DATETIME;$SSH_CLIENT;ERROR: $1" >> $LOG_FILE } -# comprueba si el elemento pasado en $2 esta en el array $1 +# Comprueba si el elemento pasado en $2 está en el array $1 function isInArray() { if [ $# -ne 2 ]; then @@ -149,29 +156,29 @@ function isInArray() exit 1 fi - echoAndLog "${FUNCNAME}(): checking if $2 is in $1" local deps + local is_in_array=1 + local element="$2" + + echoAndLog "${FUNCNAME}(): checking if $2 is in $1" eval "deps=( \"\${$1[@]}\" )" - elemento=$2 - local is_in_array=1 - # copia local del array del parametro 1 - for (( i = 0 ; i < ${#deps[@]} ; i++ )) - do - if [ "${deps[$i]}" = "${elemento}" ]; then - echoAndLog "isInArray(): $elemento found in array" + # Copia local del array del parámetro 1. + for (( i = 0 ; i < ${#deps[@]} ; i++ )); do + if [ "${deps[$i]}" = "${element}" ]; then + echoAndLog "isInArray(): $element found in array" is_in_array=0 fi done if [ $is_in_array -ne 0 ]; then - echoAndLog "${FUNCNAME}(): $elemento NOT found in array" + echoAndLog "${FUNCNAME}(): $element NOT found in array" fi return $is_in_array - } + ##################################################################### ####### Funciones de manejo de paquetes Debian ##################################################################### @@ -194,7 +201,7 @@ function checkPackage() fi } -# recibe array con dependencias +# Recibe array con dependencias # por referencia deja un array con las dependencias no resueltas # devuelve 1 si hay alguna dependencia no resuelta function checkDependencies() @@ -638,7 +645,7 @@ function tftpConfigure() /etc/init.d/openbsd-inetd start # preparacion contenedor tftpboot - cp -ar /usr/lib/syslinux/ $TFTPCFGDIR/syslinux + cp -a /usr/lib/syslinux/ $TFTPCFGDIR/syslinux cp -a /usr/lib/syslinux/pxelinux.0 $TFTPCFGDIR # prepamos el directorio de la configuracion de pxe mkdir -p $TFTPCFGDIR/pxelinux.cfg @@ -668,9 +675,109 @@ function testPxe () } +######################################################################## +## Configuracion servicio NFS +######################################################################## + +# Configurar servicio NFS. +# ADVERTENCIA: usa variables globales NETIP y NETMASK! +function nfsConfigure() +{ + echoAndLog "${FUNCNAME}(): Config nfs server." + backupFile /etc/exports + + nfsAddExport $INSTALL_TARGET/client ${NETIP}/${NETMASK}:ro,no_subtree_check,no_root_squash,sync + if [ $? -ne 0 ]; then + errorAndLog "${FUNCNAME}(): error while adding NFS client config" + return 1 + fi + + nfsAddExport $INSTALL_TARGET/images ${NETIP}/${NETMASK}:rw,no_subtree_check,no_root_squash,sync,crossmnt + if [ $? -ne 0 ]; then + errorAndLog "${FUNCNAME}(): error while adding NFS images config" + return 1 + fi + + nfsAddExport $INSTALL_TARGET/log/clients ${NETIP}/${NETMASK}:rw,no_subtree_check,no_root_squash,sync + if [ $? -ne 0 ]; then + errorAndLog "${FUNCNAME}(): error while adding logging client config" + return 1 + fi + + nfsAddExport $INSTALL_TARGET/tftpboot ${NETIP}/${NETMASK}:ro,no_subtree_check,no_root_squash,sync + if [ $? -ne 0 ]; then + errorAndLog "${FUNCNAME}(): error while adding second filesystem for the PXE ogclient" + return 1 + fi + + /etc/init.d/nfs-kernel-server restart + exportfs -va + if [ $? -ne 0 ]; then + errorAndLog "${FUNCNAME}(): error while configure exports" + return 1 + fi + + echoAndLog "${FUNCNAME}(): Added NFS configuration to file \"/etc/exports\"." + return 0 +} + + +# Añadir entrada en fichero de configuración del servidor NFS. +# Ejemplos: +#nfsAddExport /opt/opengnsys 192.168.0.0/255.255.255.0:ro,no_subtree_check,no_root_squash,sync +#nfsAddExport /opt/opengnsys 192.168.0.0/255.255.255.0 +#nfsAddExport /opt/opengnsys 80.20.2.1:ro 192.123.32.2:rw +function nfsAddExport() +{ + if [ $# -lt 2 ]; then + errorAndLog "${FUNCNAME}(): invalid number of parameters" + exit 1 + fi + if [ ! -f /etc/exports ]; then + errorAndLog "${FUNCNAME}(): /etc/exports don't exists" + return 1 + fi + + local export="$1" + local contador=0 + local cadenaexport + + grep "^$export" /etc/exports > /dev/null + if [ $? -eq 0 ]; then + echoAndLog "${FUNCNAME}(): $export exists in /etc/exports, omiting" + return 0 + fi + + cadenaexport="${export}" + for parametro in $*; do + if [ $contador -gt 0 ]; then + host=`echo $parametro | awk -F: '{print $1}'` + options=`echo $parametro | awk -F: '{print $2}'` + if [ "${host}" == "" ]; then + errorAndLog "${FUNCNAME}(): host can't be empty" + return 1 + fi + cadenaexport="${cadenaexport}\t${host}" + + if [ "${options}" != "" ]; then + cadenaexport="${cadenaexport}(${options})" + fi + fi + let contador=contador+1 + done + + echo -en "$cadenaexport\n" >> /etc/exports + + echoAndLog "${FUNCNAME}(): add $export to /etc/exports" + return 0 +} + + ######################################################################## ## Configuracion servicio Samba ######################################################################## + +# Configurar servicios Samba. function smbConfigure() { echoAndLog "${FUNCNAME}(): Configuring Samba service." @@ -681,7 +788,7 @@ function smbConfigure() sed -e "s/OPENGNSYSDIR/${INSTALL_TARGET//\//\\/}/g" \ $WORKDIR/opengnsys/server/etc/smb-og.conf.tmpl > $SAMBACFGDIR/smb-og.conf # Configurar y recargar Samba" - perl -pi -e "s/WORKGROUP/OPENGNSYS/; s/server string \=.*/server string \= OpenGnSys Samba Server/; s/^\; *include \=.*$/ include \= \/etc\/samba\/smb-og.conf/" $SAMBACFGDIR/smb.conf + perl -pi -e "s/WORKGROUP/OPENGNSYS/; s/server string \=.*/server string \= OpenGnSys Samba Server/; s/^\; *include \=.*$/ include \= ${SAMBACFGDIR//\//\\/}\/smb-og.conf/" $SAMBACFGDIR/smb.conf $SAMBAINIT restart if [ $? -ne 0 ]; then errorAndLog "${FUNCNAME}(): error while configure Samba" @@ -699,6 +806,7 @@ function smbConfigure() ## Configuracion servicio DHCP ######################################################################## +# Configurar servicios DHCP. function dhcpConfigure() { echoAndLog "${FUNCNAME}(): Sample DHCP configuration." @@ -711,11 +819,11 @@ function dhcpConfigure() for dev in ${DEVICE[*]}; do if [ -n "${SERVERIP[i]}" ]; then backupFile $DHCPCFGDIR/dhcpd-$dev.conf - sed -e "s/SERVERIP/${SERVERIP[$i]}/g" \ - -e "s/NETIP/${NETIP[$i]}/g" \ - -e "s/NETMASK/${NETMASK[$i]}/g" \ - -e "s/NETBROAD/${NETBROAD[$i]}/g" \ - -e "s/ROUTERIP/${ROUTERIP[$i]}/g" \ + sed -e "s/SERVERIP/${SERVERIP[i]}/g" \ + -e "s/NETIP/${NETIP[i]}/g" \ + -e "s/NETMASK/${NETMASK[i]}/g" \ + -e "s/NETBROAD/${NETBROAD[i]}/g" \ + -e "s/ROUTERIP/${ROUTERIP[i]}/g" \ -e "s/DNSIP/$DNSIP/g" \ $WORKDIR/opengnsys/server/etc/dhcpd.conf.tmpl > $DHCPCFGDIR/dhcpd-$dev.conf || errcode=1 fi @@ -740,7 +848,7 @@ function dhcpConfigure() function installWebFiles() { echoAndLog "${FUNCNAME}(): Installing web files..." - cp -ar $WORKDIR/opengnsys/admin/WebConsole/* $INSTALL_TARGET/www #*/ comentario para doxigen + cp -a $WORKDIR/opengnsys/admin/WebConsole/* $INSTALL_TARGET/www #*/ comentario para doxigen if [ $? != 0 ]; then errorAndLog "${FUNCNAME}(): Error copying web files." exit 1 @@ -754,7 +862,7 @@ function installWebFiles() } # Configuración específica de Apache. -function openGnsysInstallWebConsoleApacheConf() +function installWebConsoleApacheConf() { if [ $# -ne 2 ]; then errorAndLog "${FUNCNAME}(): invalid number of parameters" @@ -763,7 +871,7 @@ function openGnsysInstallWebConsoleApacheConf() local path_opengnsys_base=$1 local path_apache2_confd=$2 - local path_web_console=${path_opengnsys_base}/www + local CONSOLEDIR=${path_opengnsys_base}/www if [ ! -d $path_apache2_confd ]; then errorAndLog "${FUNCNAME}(): path to apache2 conf.d can not found, verify your server installation" @@ -779,17 +887,9 @@ function openGnsysInstallWebConsoleApacheConf() $ENABLEMOD ssl make-ssl-cert generate-default-snakeoil --force-overwrite - # Genera configuración de consola web. - cat > $path_opengnsys_base/etc/apache.conf < - Options -Indexes FollowSymLinks - DirectoryIndex acceso.php - -EOF + # Genera configuración de consola web a partir del fichero plantilla. + sed -e "s/CONSOLEDIR/${CONSOLEDIR//\//\\/}/g" \ + $WORKDIR/opengnsys/server/etc/apache.conf.tmpl > $path_opengnsys_base/etc/apache.conf ln -fs $path_opengnsys_base/etc/apache.conf $path_apache2_confd/sites-available/opengnsys $ENABLESITE opengnsys @@ -843,7 +943,8 @@ function createDirs() mkdir -p $path_opengnsys_base/sbin mkdir -p $path_opengnsys_base/www mkdir -p $path_opengnsys_base/images - ln -fs /var/lib/tftpboot $path_opengnsys_base + mkdir -p $TFTPCFGDIR + ln -fs $TFTPCFGDIR $path_opengnsys_base/tftpboot mkdir -p $path_opengnsys_base/tftpboot/pxelinux.cfg mkdir -p $path_opengnsys_base/tftpboot/menu.lst if [ $? -ne 0 ]; then @@ -877,7 +978,7 @@ function createDirs() } # Copia ficheros de configuración y ejecutables genéricos del servidor. -function openGnsysCopyServerFiles () +function copyServerFiles () { if [ $# -ne 1 ]; then errorAndLog "${FUNCNAME}(): invalid number of parameters" @@ -997,12 +1098,12 @@ function copyInterfaceAdm () ### Funciones instalacion cliente opengnsys #################################################################### -function openGnsysCopyClientFiles() +function copyClientFiles() { local errstatus=0 echoAndLog "${FUNCNAME}(): Copying OpenGnSys Client files." - cp -ar $WORKDIR/opengnsys/client/shared/* $INSTALL_TARGET/client + cp -a $WORKDIR/opengnsys/client/shared/* $INSTALL_TARGET/client if [ $? -ne 0 ]; then errorAndLog "${FUNCNAME}(): error while copying client estructure" errstatus=1 @@ -1011,7 +1112,7 @@ function openGnsysCopyClientFiles() echoAndLog "${FUNCNAME}(): Copying OpenGnSys Cloning Engine files." mkdir -p $INSTALL_TARGET/client/lib/engine/bin - cp -ar $WORKDIR/opengnsys/client/engine/*.lib $INSTALL_TARGET/client/lib/engine/bin + cp -a $WORKDIR/opengnsys/client/engine/*.lib $INSTALL_TARGET/client/lib/engine/bin if [ $? -ne 0 ]; then errorAndLog "${FUNCNAME}(): error while copying engine files" errstatus=1 @@ -1031,7 +1132,7 @@ function openGnsysCopyClientFiles() function clientCreate() { local DOWNLOADURL="http://$OPENGNSYS_SERVER/downloads" - local FILENAME=ogLive-natty-2.6.38-8-generic-pae-r2303.iso + local FILENAME=ogLive-oneiric-3.0.0-14-generic-r2439.iso local TARGETFILE=$INSTALL_TARGET/lib/$FILENAME local TMPDIR=/tmp/${FILENAME%.iso} @@ -1045,7 +1146,7 @@ function clientCreate() echoAndLog "${FUNCNAME}(): Copying Client files" mkdir -p $TMPDIR mount -o loop,ro $TARGETFILE $TMPDIR - cp -avr $TMPDIR/ogclient $INSTALL_TARGET/tftpboot + cp -av $TMPDIR/ogclient $INSTALL_TARGET/tftpboot umount $TMPDIR rmdir $TMPDIR # Asignar la clave cliente para acceso a Samba. @@ -1060,8 +1161,8 @@ function clientCreate() chown -R $APACHE_RUN_USER:$APACHE_RUN_GROUP $INSTALL_TARGET/tftpboot/{menu.lst,pxelinux.cfg} # Ofrecer md5 del kernel y vmlinuz para ogupdateinitrd en cache - cp -arv $INSTALL_TARGET/tftpboot/ogclient/ogvmlinuz* $INSTALL_TARGET/tftpboot - cp -arv $INSTALL_TARGET/tftpboot/ogclient/oginitrd.img* $INSTALL_TARGET/tftpboot + cp -av $INSTALL_TARGET/tftpboot/ogclient/ogvmlinuz* $INSTALL_TARGET/tftpboot + cp -av $INSTALL_TARGET/tftpboot/ogclient/oginitrd.img* $INSTALL_TARGET/tftpboot echoAndLog "${FUNCNAME}(): Client generation success" } @@ -1153,8 +1254,8 @@ function installationSummary() echoAndLog "Installation directory: $INSTALL_TARGET" echoAndLog "Repository directory: $INSTALL_TARGET/images" echoAndLog "DHCP configuration directory: $DHCPCFGDIR" - echoAndLog "TFTP configuration directory: /var/lib/tftpboot" - echoAndLog "Samba configuration directory: /etc/samba" + echoAndLog "TFTP configuration directory: $TFTPCFGDIR" + echoAndLog "Samba configuration directory: $SAMBACFGDIR" echoAndLog "Web Console URL: $OPENGNSYS_CONSOLEURL" echoAndLog "Web Console admin user: $OPENGNSYS_DB_USER" echoAndLog "Web Console admin password: $OPENGNSYS_DB_PASSWD" @@ -1166,7 +1267,7 @@ function installationSummary() echoAndLog "Log-in as Web Console admin user." echoAndLog " - Review default Organization data and assign default user." echoAndLog "Log-in as Web Console organization user." - echoAndLog " - Insert OpenGnSys data (rooms, computers, menus, etc)." + echoAndLog " - Insert OpenGnSys data (labs, computers, menus, etc)." echo } @@ -1264,7 +1365,7 @@ if [ $? -ne 0 ]; then fi # Copiar ficheros de servicios OpenGnSys Server. -openGnsysCopyServerFiles ${INSTALL_TARGET} +copyServerFiles ${INSTALL_TARGET} if [ $? -ne 0 ]; then errorAndLog "Error while copying the server files!" exit 1 @@ -1334,9 +1435,9 @@ installWebFiles makeDoxygenFiles # creando configuracion de apache2 -openGnsysInstallWebConsoleApacheConf $INSTALL_TARGET /etc/apache2 +installWebConsoleApacheConf $INSTALL_TARGET /etc/apache2 if [ $? -ne 0 ]; then - errorAndLog "Error configuring Apache for OpenGnSYS Admin" + errorAndLog "Error configuring Apache for OpenGnSys Admin" exit 1 fi @@ -1344,7 +1445,7 @@ popd # Crear la estructura de los accesos al servidor desde el cliente (shared) -openGnsysCopyClientFiles +copyClientFiles if [ $? -ne 0 ]; then errorAndLog "Error creating client structure" fi @@ -1364,4 +1465,5 @@ installationSummary #rm -rf $WORKDIR echoAndLog "OpenGnSys installation finished at $(date)" +exit 0 diff --git a/installer/opengnsys_update.sh b/installer/opengnsys_update.sh index 0d891a2a..aeb4172c 100755 --- a/installer/opengnsys_update.sh +++ b/installer/opengnsys_update.sh @@ -15,6 +15,9 @@ #@version 1.0.2a - obtiene valor de dirección IP por defecto #@author Ramón Gómez - ETSII Univ. Sevilla #@date 2012/01/18 +#@version 1.0.3 - Compatibilidad con Debian. +#@author Ramón Gómez - ETSII Univ. Sevilla +#@date 2012/02/01 #*/ @@ -395,11 +398,18 @@ function createDirs() { # Crear estructura de directorios. echoAndLog "${FUNCNAME}(): creating directory paths in ${INSTALL_TARGET}" + local dir + mkdir -p ${INSTALL_TARGET}/{bin,doc,etc,lib,sbin,www} mkdir -p ${INSTALL_TARGET}/{client,images} mkdir -p ${INSTALL_TARGET}/log/clients ln -fs ${INSTALL_TARGET}/log /var/log/opengnsys - ln -fs /var/lib/tftpboot ${INSTALL_TARGET} + # Detectar directorio de instalación de TFTP. + if [ ! -L ${INSTALL_TARGET}/tftpboot ]; then + for dir in /var/lib/tftpboot /srv/tftp; do + [ -d $dir ] && ln -fs $dir ${INSTALL_TARGET}/tftpboot + done + fi mkdir -p ${INSTALL_TARGET}/tftpboot/{pxelinux.cfg,menu.lst} if [ $? -ne 0 ]; then errorAndLog "${FUNCNAME}(): error while creating dirs. Do you have write permissions?" @@ -548,7 +558,7 @@ function compileServices() function updateClient() { local DOWNLOADURL="http://$OPENGNSYS_SERVER/downloads" - local FILENAME=ogLive-natty-2.6.38-8-generic-pae-r2303.iso + local FILENAME=ogLive-oneiric-3.0.0-14-generic-r2439.iso local SOURCEFILE=$DOWNLOADURL/$FILENAME local TARGETFILE=$INSTALL_TARGET/lib/$FILENAME local SOURCELENGTH @@ -595,8 +605,8 @@ function updateClient() chown -R $APACHE_RUN_USER:$APACHE_RUN_GROUP $INSTALL_TARGET/tftpboot/{menu.lst,pxelinux.cfg} # Ofrecer md5 del kernel y vmlinuz para ogupdateinitrd en cache - cp -arv $INSTALL_TARGET/tftpboot/ogclient/ogvmlinuz* $INSTALL_TARGET/tftpboot - cp -arv $INSTALL_TARGET/tftpboot/ogclient/oginitrd.img* $INSTALL_TARGET/tftpboot + cp -av $INSTALL_TARGET/tftpboot/ogclient/ogvmlinuz* $INSTALL_TARGET/tftpboot + cp -av $INSTALL_TARGET/tftpboot/ogclient/oginitrd.img* $INSTALL_TARGET/tftpboot echoAndLog "${FUNCNAME}(): Client update successfully" else diff --git a/repoman/bin/sendFileMcast b/repoman/bin/sendFileMcast index bf7091e0..ec4d7aa6 100755 --- a/repoman/bin/sendFileMcast +++ b/repoman/bin/sendFileMcast @@ -25,7 +25,7 @@ fi # Fichero a enviar (camino completo o relativo al directorio del repositorio). FICH="$1" -if [ "${FICH:0:1}" != "/" ]; then +if [ "${FICH:0:15}" != "$OPENGNSYS" ]; then FICHIMG="$OGIMG/$FICH" else FICHIMG="$FICH" @@ -55,6 +55,7 @@ fi CERROR="8x8/128" # Envío de fichero por Multicast. -which mbuffer &> /dev/null && MBUFFER="--pipe 'mbuffer -m 20M'" +# Se desabilita el uso de mbuffer: eesta versión del upd-sender no la admite. +#which mbuffer &> /dev/null && MBUFFER="--pipe 'mbuffer -m 20M'" $OGBIN/udp-sender $MBUFFER --nokbd --retries-until-drop 65 --portbase $PORTBASE --$METHOD --mcast-data-address $ADDRESS --fec $CERROR --max-bitrate $BITRATE --ttl 1 --min-clients $NCLIENTS --max-wait $MAXTIME --file "$FICHIMG" diff --git a/server/LICENSE b/server/LICENSE deleted file mode 100644 index 94a9ed02..00000000 --- a/server/LICENSE +++ /dev/null @@ -1,674 +0,0 @@ - GNU GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The GNU General Public License is a free, copyleft license for -software and other kinds of works. - - The licenses for most software and other practical works are designed -to take away your freedom to share and change the works. By contrast, -the GNU General Public License is intended to guarantee your freedom to -share and change all versions of a program--to make sure it remains free -software for all its users. We, the Free Software Foundation, use the -GNU General Public License for most of our software; it applies also to -any other work released this way by its authors. You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -them if you wish), that you receive source code or can get it if you -want it, that you can change the software or use pieces of it in new -free programs, and that you know you can do these things. - - To protect your rights, we need to prevent others from denying you -these rights or asking you to surrender the rights. Therefore, you have -certain responsibilities if you distribute copies of the software, or if -you modify it: responsibilities to respect the freedom of others. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must pass on to the recipients the same -freedoms that you received. You must make sure that they, too, receive -or can get the source code. And you must show them these terms so they -know their rights. - - Developers that use the GNU GPL protect your rights with two steps: -(1) assert copyright on the software, and (2) offer you this License -giving you legal permission to copy, distribute and/or modify it. - - For the developers' and authors' protection, the GPL clearly explains -that there is no warranty for this free software. For both users' and -authors' sake, the GPL requires that modified versions be marked as -changed, so that their problems will not be attributed erroneously to -authors of previous versions. - - Some devices are designed to deny users access to install or run -modified versions of the software inside them, although the manufacturer -can do so. This is fundamentally incompatible with the aim of -protecting users' freedom to change the software. The systematic -pattern of such abuse occurs in the area of products for individuals to -use, which is precisely where it is most unacceptable. Therefore, we -have designed this version of the GPL to prohibit the practice for those -products. If such problems arise substantially in other domains, we -stand ready to extend this provision to those domains in future versions -of the GPL, as needed to protect the freedom of users. - - Finally, every program is threatened constantly by software patents. -States should not allow patents to restrict development and use of -software on general-purpose computers, but in those that do, we wish to -avoid the special danger that patents applied to a free program could -make it effectively proprietary. To prevent this, the GPL assures that -patents cannot be used to render the program non-free. - - The precise terms and conditions for copying, distribution and -modification follow. - - TERMS AND CONDITIONS - - 0. Definitions. - - "This License" refers to version 3 of the GNU General Public License. - - "Copyright" also means copyright-like laws that apply to other kinds of -works, such as semiconductor masks. - - "The Program" refers to any copyrightable work licensed under this -License. Each licensee is addressed as "you". "Licensees" and -"recipients" may be individuals or organizations. - - To "modify" a work means to copy from or adapt all or part of the work -in a fashion requiring copyright permission, other than the making of an -exact copy. The resulting work is called a "modified version" of the -earlier work or a work "based on" the earlier work. - - A "covered work" means either the unmodified Program or a work based -on the Program. - - To "propagate" a work means to do anything with it that, without -permission, would make you directly or secondarily liable for -infringement under applicable copyright law, except executing it on a -computer or modifying a private copy. Propagation includes copying, -distribution (with or without modification), making available to the -public, and in some countries other activities as well. - - To "convey" a work means any kind of propagation that enables other -parties to make or receive copies. Mere interaction with a user through -a computer network, with no transfer of a copy, is not conveying. - - An interactive user interface displays "Appropriate Legal Notices" -to the extent that it includes a convenient and prominently visible -feature that (1) displays an appropriate copyright notice, and (2) -tells the user that there is no warranty for the work (except to the -extent that warranties are provided), that licensees may convey the -work under this License, and how to view a copy of this License. If -the interface presents a list of user commands or options, such as a -menu, a prominent item in the list meets this criterion. - - 1. Source Code. - - The "source code" for a work means the preferred form of the work -for making modifications to it. "Object code" means any non-source -form of a work. - - A "Standard Interface" means an interface that either is an official -standard defined by a recognized standards body, or, in the case of -interfaces specified for a particular programming language, one that -is widely used among developers working in that language. - - The "System Libraries" of an executable work include anything, other -than the work as a whole, that (a) is included in the normal form of -packaging a Major Component, but which is not part of that Major -Component, and (b) serves only to enable use of the work with that -Major Component, or to implement a Standard Interface for which an -implementation is available to the public in source code form. A -"Major Component", in this context, means a major essential component -(kernel, window system, and so on) of the specific operating system -(if any) on which the executable work runs, or a compiler used to -produce the work, or an object code interpreter used to run it. - - The "Corresponding Source" for a work in object code form means all -the source code needed to generate, install, and (for an executable -work) run the object code and to modify the work, including scripts to -control those activities. However, it does not include the work's -System Libraries, or general-purpose tools or generally available free -programs which are used unmodified in performing those activities but -which are not part of the work. For example, Corresponding Source -includes interface definition files associated with source files for -the work, and the source code for shared libraries and dynamically -linked subprograms that the work is specifically designed to require, -such as by intimate data communication or control flow between those -subprograms and other parts of the work. - - The Corresponding Source need not include anything that users -can regenerate automatically from other parts of the Corresponding -Source. - - The Corresponding Source for a work in source code form is that -same work. - - 2. Basic Permissions. - - All rights granted under this License are granted for the term of -copyright on the Program, and are irrevocable provided the stated -conditions are met. This License explicitly affirms your unlimited -permission to run the unmodified Program. The output from running a -covered work is covered by this License only if the output, given its -content, constitutes a covered work. This License acknowledges your -rights of fair use or other equivalent, as provided by copyright law. - - You may make, run and propagate covered works that you do not -convey, without conditions so long as your license otherwise remains -in force. You may convey covered works to others for the sole purpose -of having them make modifications exclusively for you, or provide you -with facilities for running those works, provided that you comply with -the terms of this License in conveying all material for which you do -not control copyright. Those thus making or running the covered works -for you must do so exclusively on your behalf, under your direction -and control, on terms that prohibit them from making any copies of -your copyrighted material outside their relationship with you. - - Conveying under any other circumstances is permitted solely under -the conditions stated below. Sublicensing is not allowed; section 10 -makes it unnecessary. - - 3. Protecting Users' Legal Rights From Anti-Circumvention Law. - - No covered work shall be deemed part of an effective technological -measure under any applicable law fulfilling obligations under article -11 of the WIPO copyright treaty adopted on 20 December 1996, or -similar laws prohibiting or restricting circumvention of such -measures. - - When you convey a covered work, you waive any legal power to forbid -circumvention of technological measures to the extent such circumvention -is effected by exercising rights under this License with respect to -the covered work, and you disclaim any intention to limit operation or -modification of the work as a means of enforcing, against the work's -users, your or third parties' legal rights to forbid circumvention of -technological measures. - - 4. Conveying Verbatim Copies. - - You may convey verbatim copies of the Program's source code as you -receive it, in any medium, provided that you conspicuously and -appropriately publish on each copy an appropriate copyright notice; -keep intact all notices stating that this License and any -non-permissive terms added in accord with section 7 apply to the code; -keep intact all notices of the absence of any warranty; and give all -recipients a copy of this License along with the Program. - - You may charge any price or no price for each copy that you convey, -and you may offer support or warranty protection for a fee. - - 5. Conveying Modified Source Versions. - - You may convey a work based on the Program, or the modifications to -produce it from the Program, in the form of source code under the -terms of section 4, provided that you also meet all of these conditions: - - a) The work must carry prominent notices stating that you modified - it, and giving a relevant date. - - b) The work must carry prominent notices stating that it is - released under this License and any conditions added under section - 7. This requirement modifies the requirement in section 4 to - "keep intact all notices". - - c) You must license the entire work, as a whole, under this - License to anyone who comes into possession of a copy. This - License will therefore apply, along with any applicable section 7 - additional terms, to the whole of the work, and all its parts, - regardless of how they are packaged. This License gives no - permission to license the work in any other way, but it does not - invalidate such permission if you have separately received it. - - d) If the work has interactive user interfaces, each must display - Appropriate Legal Notices; however, if the Program has interactive - interfaces that do not display Appropriate Legal Notices, your - work need not make them do so. - - A compilation of a covered work with other separate and independent -works, which are not by their nature extensions of the covered work, -and which are not combined with it such as to form a larger program, -in or on a volume of a storage or distribution medium, is called an -"aggregate" if the compilation and its resulting copyright are not -used to limit the access or legal rights of the compilation's users -beyond what the individual works permit. Inclusion of a covered work -in an aggregate does not cause this License to apply to the other -parts of the aggregate. - - 6. Conveying Non-Source Forms. - - You may convey a covered work in object code form under the terms -of sections 4 and 5, provided that you also convey the -machine-readable Corresponding Source under the terms of this License, -in one of these ways: - - a) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by the - Corresponding Source fixed on a durable physical medium - customarily used for software interchange. - - b) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by a - written offer, valid for at least three years and valid for as - long as you offer spare parts or customer support for that product - model, to give anyone who possesses the object code either (1) a - copy of the Corresponding Source for all the software in the - product that is covered by this License, on a durable physical - medium customarily used for software interchange, for a price no - more than your reasonable cost of physically performing this - conveying of source, or (2) access to copy the - Corresponding Source from a network server at no charge. - - c) Convey individual copies of the object code with a copy of the - written offer to provide the Corresponding Source. This - alternative is allowed only occasionally and noncommercially, and - only if you received the object code with such an offer, in accord - with subsection 6b. - - d) Convey the object code by offering access from a designated - place (gratis or for a charge), and offer equivalent access to the - Corresponding Source in the same way through the same place at no - further charge. You need not require recipients to copy the - Corresponding Source along with the object code. If the place to - copy the object code is a network server, the Corresponding Source - may be on a different server (operated by you or a third party) - that supports equivalent copying facilities, provided you maintain - clear directions next to the object code saying where to find the - Corresponding Source. Regardless of what server hosts the - Corresponding Source, you remain obligated to ensure that it is - available for as long as needed to satisfy these requirements. - - e) Convey the object code using peer-to-peer transmission, provided - you inform other peers where the object code and Corresponding - Source of the work are being offered to the general public at no - charge under subsection 6d. - - A separable portion of the object code, whose source code is excluded -from the Corresponding Source as a System Library, need not be -included in conveying the object code work. - - A "User Product" is either (1) a "consumer product", which means any -tangible personal property which is normally used for personal, family, -or household purposes, or (2) anything designed or sold for incorporation -into a dwelling. In determining whether a product is a consumer product, -doubtful cases shall be resolved in favor of coverage. For a particular -product received by a particular user, "normally used" refers to a -typical or common use of that class of product, regardless of the status -of the particular user or of the way in which the particular user -actually uses, or expects or is expected to use, the product. A product -is a consumer product regardless of whether the product has substantial -commercial, industrial or non-consumer uses, unless such uses represent -the only significant mode of use of the product. - - "Installation Information" for a User Product means any methods, -procedures, authorization keys, or other information required to install -and execute modified versions of a covered work in that User Product from -a modified version of its Corresponding Source. The information must -suffice to ensure that the continued functioning of the modified object -code is in no case prevented or interfered with solely because -modification has been made. - - If you convey an object code work under this section in, or with, or -specifically for use in, a User Product, and the conveying occurs as -part of a transaction in which the right of possession and use of the -User Product is transferred to the recipient in perpetuity or for a -fixed term (regardless of how the transaction is characterized), the -Corresponding Source conveyed under this section must be accompanied -by the Installation Information. But this requirement does not apply -if neither you nor any third party retains the ability to install -modified object code on the User Product (for example, the work has -been installed in ROM). - - The requirement to provide Installation Information does not include a -requirement to continue to provide support service, warranty, or updates -for a work that has been modified or installed by the recipient, or for -the User Product in which it has been modified or installed. Access to a -network may be denied when the modification itself materially and -adversely affects the operation of the network or violates the rules and -protocols for communication across the network. - - Corresponding Source conveyed, and Installation Information provided, -in accord with this section must be in a format that is publicly -documented (and with an implementation available to the public in -source code form), and must require no special password or key for -unpacking, reading or copying. - - 7. Additional Terms. - - "Additional permissions" are terms that supplement the terms of this -License by making exceptions from one or more of its conditions. -Additional permissions that are applicable to the entire Program shall -be treated as though they were included in this License, to the extent -that they are valid under applicable law. If additional permissions -apply only to part of the Program, that part may be used separately -under those permissions, but the entire Program remains governed by -this License without regard to the additional permissions. - - When you convey a copy of a covered work, you may at your option -remove any additional permissions from that copy, or from any part of -it. (Additional permissions may be written to require their own -removal in certain cases when you modify the work.) You may place -additional permissions on material, added by you to a covered work, -for which you have or can give appropriate copyright permission. - - Notwithstanding any other provision of this License, for material you -add to a covered work, you may (if authorized by the copyright holders of -that material) supplement the terms of this License with terms: - - a) Disclaiming warranty or limiting liability differently from the - terms of sections 15 and 16 of this License; or - - b) Requiring preservation of specified reasonable legal notices or - author attributions in that material or in the Appropriate Legal - Notices displayed by works containing it; or - - c) Prohibiting misrepresentation of the origin of that material, or - requiring that modified versions of such material be marked in - reasonable ways as different from the original version; or - - d) Limiting the use for publicity purposes of names of licensors or - authors of the material; or - - e) Declining to grant rights under trademark law for use of some - trade names, trademarks, or service marks; or - - f) Requiring indemnification of licensors and authors of that - material by anyone who conveys the material (or modified versions of - it) with contractual assumptions of liability to the recipient, for - any liability that these contractual assumptions directly impose on - those licensors and authors. - - All other non-permissive additional terms are considered "further -restrictions" within the meaning of section 10. If the Program as you -received it, or any part of it, contains a notice stating that it is -governed by this License along with a term that is a further -restriction, you may remove that term. If a license document contains -a further restriction but permits relicensing or conveying under this -License, you may add to a covered work material governed by the terms -of that license document, provided that the further restriction does -not survive such relicensing or conveying. - - If you add terms to a covered work in accord with this section, you -must place, in the relevant source files, a statement of the -additional terms that apply to those files, or a notice indicating -where to find the applicable terms. - - Additional terms, permissive or non-permissive, may be stated in the -form of a separately written license, or stated as exceptions; -the above requirements apply either way. - - 8. Termination. - - You may not propagate or modify a covered work except as expressly -provided under this License. Any attempt otherwise to propagate or -modify it is void, and will automatically terminate your rights under -this License (including any patent licenses granted under the third -paragraph of section 11). - - However, if you cease all violation of this License, then your -license from a particular copyright holder is reinstated (a) -provisionally, unless and until the copyright holder explicitly and -finally terminates your license, and (b) permanently, if the copyright -holder fails to notify you of the violation by some reasonable means -prior to 60 days after the cessation. - - Moreover, your license from a particular copyright holder is -reinstated permanently if the copyright holder notifies you of the -violation by some reasonable means, this is the first time you have -received notice of violation of this License (for any work) from that -copyright holder, and you cure the violation prior to 30 days after -your receipt of the notice. - - Termination of your rights under this section does not terminate the -licenses of parties who have received copies or rights from you under -this License. If your rights have been terminated and not permanently -reinstated, you do not qualify to receive new licenses for the same -material under section 10. - - 9. Acceptance Not Required for Having Copies. - - You are not required to accept this License in order to receive or -run a copy of the Program. Ancillary propagation of a covered work -occurring solely as a consequence of using peer-to-peer transmission -to receive a copy likewise does not require acceptance. However, -nothing other than this License grants you permission to propagate or -modify any covered work. These actions infringe copyright if you do -not accept this License. Therefore, by modifying or propagating a -covered work, you indicate your acceptance of this License to do so. - - 10. Automatic Licensing of Downstream Recipients. - - Each time you convey a covered work, the recipient automatically -receives a license from the original licensors, to run, modify and -propagate that work, subject to this License. You are not responsible -for enforcing compliance by third parties with this License. - - An "entity transaction" is a transaction transferring control of an -organization, or substantially all assets of one, or subdividing an -organization, or merging organizations. If propagation of a covered -work results from an entity transaction, each party to that -transaction who receives a copy of the work also receives whatever -licenses to the work the party's predecessor in interest had or could -give under the previous paragraph, plus a right to possession of the -Corresponding Source of the work from the predecessor in interest, if -the predecessor has it or can get it with reasonable efforts. - - You may not impose any further restrictions on the exercise of the -rights granted or affirmed under this License. For example, you may -not impose a license fee, royalty, or other charge for exercise of -rights granted under this License, and you may not initiate litigation -(including a cross-claim or counterclaim in a lawsuit) alleging that -any patent claim is infringed by making, using, selling, offering for -sale, or importing the Program or any portion of it. - - 11. Patents. - - A "contributor" is a copyright holder who authorizes use under this -License of the Program or a work on which the Program is based. The -work thus licensed is called the contributor's "contributor version". - - A contributor's "essential patent claims" are all patent claims -owned or controlled by the contributor, whether already acquired or -hereafter acquired, that would be infringed by some manner, permitted -by this License, of making, using, or selling its contributor version, -but do not include claims that would be infringed only as a -consequence of further modification of the contributor version. For -purposes of this definition, "control" includes the right to grant -patent sublicenses in a manner consistent with the requirements of -this License. - - Each contributor grants you a non-exclusive, worldwide, royalty-free -patent license under the contributor's essential patent claims, to -make, use, sell, offer for sale, import and otherwise run, modify and -propagate the contents of its contributor version. - - In the following three paragraphs, a "patent license" is any express -agreement or commitment, however denominated, not to enforce a patent -(such as an express permission to practice a patent or covenant not to -sue for patent infringement). To "grant" such a patent license to a -party means to make such an agreement or commitment not to enforce a -patent against the party. - - If you convey a covered work, knowingly relying on a patent license, -and the Corresponding Source of the work is not available for anyone -to copy, free of charge and under the terms of this License, through a -publicly available network server or other readily accessible means, -then you must either (1) cause the Corresponding Source to be so -available, or (2) arrange to deprive yourself of the benefit of the -patent license for this particular work, or (3) arrange, in a manner -consistent with the requirements of this License, to extend the patent -license to downstream recipients. "Knowingly relying" means you have -actual knowledge that, but for the patent license, your conveying the -covered work in a country, or your recipient's use of the covered work -in a country, would infringe one or more identifiable patents in that -country that you have reason to believe are valid. - - If, pursuant to or in connection with a single transaction or -arrangement, you convey, or propagate by procuring conveyance of, a -covered work, and grant a patent license to some of the parties -receiving the covered work authorizing them to use, propagate, modify -or convey a specific copy of the covered work, then the patent license -you grant is automatically extended to all recipients of the covered -work and works based on it. - - A patent license is "discriminatory" if it does not include within -the scope of its coverage, prohibits the exercise of, or is -conditioned on the non-exercise of one or more of the rights that are -specifically granted under this License. You may not convey a covered -work if you are a party to an arrangement with a third party that is -in the business of distributing software, under which you make payment -to the third party based on the extent of your activity of conveying -the work, and under which the third party grants, to any of the -parties who would receive the covered work from you, a discriminatory -patent license (a) in connection with copies of the covered work -conveyed by you (or copies made from those copies), or (b) primarily -for and in connection with specific products or compilations that -contain the covered work, unless you entered into that arrangement, -or that patent license was granted, prior to 28 March 2007. - - Nothing in this License shall be construed as excluding or limiting -any implied license or other defenses to infringement that may -otherwise be available to you under applicable patent law. - - 12. No Surrender of Others' Freedom. - - If conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot convey a -covered work so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you may -not convey it at all. For example, if you agree to terms that obligate you -to collect a royalty for further conveying from those to whom you convey -the Program, the only way you could satisfy both those terms and this -License would be to refrain entirely from conveying the Program. - - 13. Use with the GNU Affero General Public License. - - Notwithstanding any other provision of this License, you have -permission to link or combine any covered work with a work licensed -under version 3 of the GNU Affero General Public License into a single -combined work, and to convey the resulting work. The terms of this -License will continue to apply to the part which is the covered work, -but the special requirements of the GNU Affero General Public License, -section 13, concerning interaction through a network will apply to the -combination as such. - - 14. Revised Versions of this License. - - The Free Software Foundation may publish revised and/or new versions of -the GNU General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - - Each version is given a distinguishing version number. If the -Program specifies that a certain numbered version of the GNU General -Public License "or any later version" applies to it, you have the -option of following the terms and conditions either of that numbered -version or of any later version published by the Free Software -Foundation. If the Program does not specify a version number of the -GNU General Public License, you may choose any version ever published -by the Free Software Foundation. - - If the Program specifies that a proxy can decide which future -versions of the GNU General Public License can be used, that proxy's -public statement of acceptance of a version permanently authorizes you -to choose that version for the Program. - - Later license versions may give you additional or different -permissions. However, no additional obligations are imposed on any -author or copyright holder as a result of your choosing to follow a -later version. - - 15. Disclaimer of Warranty. - - THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY -APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT -HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY -OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, -THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM -IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF -ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - - 16. Limitation of Liability. - - IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS -THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY -GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE -USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF -DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD -PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), -EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF -SUCH DAMAGES. - - 17. Interpretation of Sections 15 and 16. - - If the disclaimer of warranty and limitation of liability provided -above cannot be given local legal effect according to their terms, -reviewing courts shall apply local law that most closely approximates -an absolute waiver of all civil liability in connection with the -Program, unless a warranty or assumption of liability accompanies a -copy of the Program in return for a fee. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -state the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - - Copyright (C) - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . - -Also add information on how to contact you by electronic and paper mail. - - If the program does terminal interaction, make it output a short -notice like this when it starts in an interactive mode: - - Copyright (C) - This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, your program's commands -might be different; for a GUI interface, you would use an "about box". - - You should also get your employer (if you work as a programmer) or school, -if any, to sign a "copyright disclaimer" for the program, if necessary. -For more information on this, and how to apply and follow the GNU GPL, see -. - - The GNU General Public License does not permit incorporating your program -into proprietary programs. If your program is a subroutine library, you -may consider it more useful to permit linking proprietary applications with -the library. If this is what you want to do, use the GNU Lesser General -Public License instead of this License. But first, please read -. diff --git a/server/LICENSE.en.txt b/server/LICENSE.en.txt new file mode 100644 index 00000000..94a9ed02 --- /dev/null +++ b/server/LICENSE.en.txt @@ -0,0 +1,674 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + Copyright (C) + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. diff --git a/server/bin/setserveraddr b/server/bin/setserveraddr new file mode 100755 index 00000000..44da0c7b --- /dev/null +++ b/server/bin/setserveraddr @@ -0,0 +1,75 @@ +#!/bin/bash +# setserveraddr: modifica los ficheros de configuración para asignar los valores +# de la interfaz de red solicitada. +# Nota: se enlazan los ficheros a los predefinidos detectados para la interfaz. +# Uso: setserveraddr iface +# Autor: Ramon Gomez - Univ. Sevilla +# Fecha: 2011-01-25 + + +# Comprobar parámetros. +PROG="$(basename $0)" +if [ $# -ne 1 ]; then + echo "$PROG: Incorrect operand. Format: $PROG device" >&2 + exit 1 +fi +if [ "$USER" != "root" ]; then + echo "$PROG: Need to be root." >&2 + exit 1 +fi + +# Detectar la interfaz de red. +DEVICES=$(ip -o link show up|awk -F: '$2!~/lo/ {print $2}') +FOUND=0 +for dev in $DEVICES; do + [ "$dev" == "$1" ] && FOUND=1; +done + +if [ $FOUND == 1 ]; then + # Comprobar si hay que modificar la configuración de DHCP. + CHANGE=0 + for f in /etc/{dhcp,dhcp3}/dhcpd.conf; do + file="${f/./-$1.}" + if [ -f $file -a ! $f -ef $file ]; then + ln -f $file $f + CHANGE=1 + fi + done + # Si ha cambiado la configuración, reiniciar DHCP. + if [ $CHANGE == 1 ]; then + for f in /etc/init.d/{isc-dhcp-server,dhcp3-server,dhcpd}; do + [ -x $f ] && $f restart + done + else + echo "Don't change the DHCP configuration." + fi + # Comprobar si hay que modificar la configuración de OpenGnsys. + OPENGNSYS=/opt/opengnsys + CHANGE=0 + for f in etc/{ogAdmServer,ogAdmRepo,ogAdmAgent}.cfg www/controlacceso.php client/etc/ogAdmClient.cfg; do + file="$OPENGNSYS/${f/./-$1.}" + if [ ! -f $file ]; then + echo "$PROG: File $file does not exist." >&2 + exit 2 + fi + cfg=$OPENGNSYS/$f + if [ ! $cfg -ef $file ]; then + ln -f $file $cfg + CHANGE=1 + fi + done + # Si ha cambiado la configuración, reiniciar OpenGnSys y actualizar la BD. + if [ $CHANGE == 1 ]; then + /etc/init.d/opengnsys restart + source $OPENGNSYS/etc/ogAdmServer.cfg + mysql -u "$USUARIO" -p"$PASSWORD" -D "$CATALOG" -N -e \ + "UPDATE entornos SET ipserveradm='$ServidorAdm' WHERE identorno=1" + echo "Default server interface set to: $1 ($ServidorAdm)" + else + echo "Don't change the default interface: $1" + fi +else + echo "$PROG: Network device not found. Format: $PROG device" >&2 + exit 1 +fi + diff --git a/server/etc/apache.conf.tmpl b/server/etc/apache.conf.tmpl new file mode 100644 index 00000000..57ffb94e --- /dev/null +++ b/server/etc/apache.conf.tmpl @@ -0,0 +1,9 @@ +# OpenGnSys Web Console template configuration for Apache. + +Alias /opengnsys CONSOLEDIR + + + Options -Indexes FollowSymLinks + DirectoryIndex index.php + + diff --git a/server/etc/smb-og.conf.tmpl b/server/etc/smb-og.conf.tmpl index 894bbc72..76022639 100644 --- a/server/etc/smb-og.conf.tmpl +++ b/server/etc/smb-og.conf.tmpl @@ -2,7 +2,7 @@ comment = el directorio fisico ogclient debe estar como escritura browseable = no writeable = no - path = /var/lib/tftpboot + path = OPENGNSYSDIR/tftpboot guest ok = no [ogclient] -- cgit v1.2.3-18-g5258