¡No a las patentes de Software!

stopsoftwarepatents.eu petition banner

martes, 27 de noviembre de 2007

MoinMoin restringido

Situación:
  • Sólo pueden crear y modificar documentos los usuarios autorizados.
  • Usuarios anónimos solo pueden leer (no modificar).
  • Se debe deshabilitar que cualquier usuario se pueda dar de alta.
Solución admitida:
  • En el fichero wikiconfig.py de la instancia debe estar esta línea:
    • acl_rights_default = u"+Known:read,write All:read"
  • Modificar el acl de la pagina "UserPreferences" (y las respectivas traducciones) poniendo:
    • #acl MoinPagesEditorGroup:read,write,delete,revert Known:read,write (quita los permisos a "All" y se los da a "Known").
  • Obtener el script de creación de usuarios moin_useradd.py. Editarlo y configurarle la variable con la instancia (moin_instance_dir).
  • Ejecutar el script como el usuario que ejecuta la wiki (por defecto, apache). Los parámetros son código de usuario y dirección de correo, preguntará por la contraseña.
bash-2.03$ ./moin_useradd.py Usuario usuario@dominio.com
MoinMoin user creator
=====================

username: Usuario
email: usuario@dominio.com
password: xxxxxxxx
password (again): xxxxxxxx

En resumen, se quitan los permisos para dar de alta. Al no poder acceder a esta opción, lo tiene que hacer un administrador manualmente con el script indicado.

jueves, 22 de noviembre de 2007

Eliminación de publicidad en Windows Messenger

Para que no aparezca publicidad en el Windows Messenger (tanto las pestañas laterales como el banner que está al pie) basta con poner lo siguiente en el fichero hosts:
127.0.0.1 config.messenger.msn.com
El fichero hosts está ubicado en %WINDIR%\system32\drivers\etc.

martes, 13 de noviembre de 2007

Instalación de un nuevo tema en MoinMoin

El tema por defecto de MoinMoin ("modern"), en mi opinión, no me resulta agradable a la vista principalmente por el tamaño de las letras. Se podrían retocar las hojas de estilo para que aparezcan mas pequeñas, pero he revisado http://moinmo.in/ThemeMarket y he encontrado uno que me ha gustado mucho, el sinorca4moin.

Se puede instalar el tema de forma global o en la instancia. Recomiendo hacerlo de forma global para facilitar actualizaciones, porque ocupa poco y estaría disponible para futuros wikis.

Una vez descargado el zip con el tema, hay que descomprimirlo. La instalación consta de la copia del fichero tema.py en el directorio del software MoinMoin y las imágenes y hojas de estilo a lo denominado "share". El siguiente ejemplo tiene las rutas de la instalación en Solaris (ver entrada "Instalación de MoinMoin en Solaris")
unzip sinorca4moin-0.4.5.zip
cd sinorca4moin-0.4.5
cp -p sinorca4moin.py /usr/local/lib/python2.5/site-packages/MoinMoin/theme
mkdir /opt/sfw/share/moin/htdocs/sinorca4moin
cp -pr css img /opt/sfw/share/moin/htdocs/sinoca4moin/
Es recomendable reiniciar el web por si quedara algo cacheado. En las preferencias del usuario aparecerá una opción mas en "Tema preferido".

Si se quisiera que este tema se utilice por defecto, se debe poner en wikiconfig.cfg:
theme_default = 'sinorca4moin'

Configuración de MoinMoin

Una vez instalado el software y creada la instancia wiki (por ejemplo "MiWiki") hay que realizar la configuración de esta última. Esto se hace en dos sitios: editando el fichero wikiconfig.py ubicado en el directorio de la instancia, y a través de la propia interfaz web.

(Esto no es del todo cierto, si se ha instalado en un directorio "no estándar" hay que modificar el path de moin.cgi).

Los pasos para la configuración son:
  • Dar de alta algún/os usuario/s y definir cuál/es será/n el/los administrador/es.
  • Editar wikiconfig.py para dar permisos de administración al usuario escogido:
    • superuser = [u"NombreUsuario", ]
    • acl_rights_before = u"NombreUsuario:read,write,delete,revert,admin"
  • En la página SystemPageSetup, instalar el paquete de idoma deseado.
  • Crear una página inicial ("Portada", por ejemplo).
  • Volver a editar wikiconfig.py para terminar de configurar.
    • sitename (descripción de la instancia, aparece en la cabecera),
    • logo_string (ubicación del logo)
    • page_front_page (nombre de la página a utilizar como Portada)
    • show_interwiki (para que tenga un enlace a la portada en el logo)
    • mail_smarthost y mail_from (para habilitar el envío de correos)
    • language_default = 'es' y language_ignore_browser = True (para forzar el idioma)
    • editor_default = u'gui' (para forzar que inicialmente se abra el editor gráfico)
  • Agregar las macros que generan las Tablas de Contenido (EnhancedTableOfContents.py y TocOf.py), disponibles en http://moinmo.in/MacroMarket
    • Copiar los ficheros a /path/to/MiWiki/data/plugin/macro (cambiando el propietario y los permisos para que puedan ser accedidos por apache).
  • Si fuera necesario personalizar el menú de navegación (para añadir enlaces a sitios externos, por ejemplo), se debe modificar la variable navi_bar de wikiconfig.py.
  • Para que funcione la Corrección de Ortografía, hay que crear el directiorio dict dentro de la instalación de MoinMoin y copiarle un "wordlist" del idioma correspondiente con el nombre es_ES.dictionary (por ejemplo, para el español).

lunes, 12 de noviembre de 2007

Instalación de MoinMoin en Solaris

Siguiendo con el tema de software Wiki, ahora le toca a MoinMoin (http://moinmo.in). Se recomienda visitar esta web para revisar las diferencias con otros wikis (http://moinmo.in/MoinMoinFeatures y http://moinmo.in/WikiEngineComparison).

Software requerido:
Nota: Python 2.5.1 tiene como requisito OpenSSL 0.9.8. Si no, falla al importar el módulo "md5".

Software opcional:
  • Apache 2.0.x. MoinMoin puede ejecutarse como demonio, pero su rendimiento es superior si es llamado por Apache (o IIS en plataformas Win32).
  • mod_python. Por defecto, se puede ejecutar como cgi, pero mod_python da mayor rendimiento (a costa de consumir un poco mas de memoria).
Pasos a seguir:
  • Instalar Python y Apache. (¡Atención a la posibles dependencias de OpenSSL!).
  • Leer http://moinmo.in/HelpOnInstalling/BasicInstallation
  • Crear la instancia de Apache y asegurarse que funciona con la página por defecto.
  • Probar que funciona Python con cgi moviendo el fichero pythontest.cgi al directorio cgi-bin del web y llamándolo desde un navegador.
  • Instalar el software MoinMoin. Para ello hay que ir al directorio donde se ha descomprimido el software y ejecutar el comando (da menos problemas si se instala en la ubicación por defecto)
    • python setup.py --quiet install --record=install.log
  • Probar que funciona ejecutando python e importando MoinMoin (no debe dar error)
# python
Python 2.5.1 (r251:54863, May 16 2007, 20:12:18)
[GCC 3.4.6] on sunos5
Type "help", "copyright", "credits" or "license" for more information.
>>> import MoinMoin
>>>
  • Crear la instancia Wiki según sale en http://moinmo.in/HelpOnInstalling/WikiInstanceCreation
  • Modificar el script /path/sw/descomprimido/wiki/underlay/pages/HelpOnInstalling\(2f\)WikiInsta
    nceCreation/attachments/createinstance.sh con los parámetros (reemplazar en caso necesario):
    • SHARE=/opt/sfw/share/moin (ubicación shares de MoinMoin, según sale en el install.log)
    • USER=apache (usuario Apache)
    • GROUP=apache (grupo de Apache)
  • Cambiar la línea chown -R $USER.$GROUP $INSTANCE por chown -R $USER:$GROUP $INSTANCE (el '.' por ':')
  • Darle permisos de ejecución al script anterior y ejecutarlo:
    • ./createinstance.sh /path/to/mywiki (donde mywiki es el nombre de la instancia wiki a crear)
  • Seguir con http://moinmo.in/HelpOnInstalling/ApacheOnLinux (aunque sea Solaris...)
  • Dentro del directorio de la instancia (donde está wikiconfig.py) copiarle $SHARE/server/moin.cgi
    • cd /path/to/mywiki
    • cp /opt/sfw/share/moin/server/moin.cgi .
    • chown -R apache:apache moin.cgi
    • chmod -R ug+rx moin.cgi
    • chmod -R o-rwx moin.cgi
  • Configurar apache con el directorio htdocs que está dentro del SHARE de MoinMoin y con la ubicación de la instancia.
    • Alias /wiki/ "/opt/sfw/share/moin/htdocs/"
    • ScriptAlias /mywiki "/path/to/mywiki/moin.cgi"
  • Editar /path/to/mywiki/wikiconfig.py y poner path absoluto en los parámetros
    • data_dir = '/path/to/mywiki/data/'
    • data_underlay_dir = '/path/to/mywiki/underlay/'
  • Reiniciar apache y probar acceder con un navegador a http://maquina:puerto/mywiki.
  • Si no funciona, revisar los logs de apache.