../FormacionPorProyectos

Voy a dejar de poner cosas aqui, porque ... SI

Escribire aqui: http://nonroot.blogspot.com/ o en el mejor blog del mundo: http://nadied.blogspot.com/

Links de interes

Script pa trac y subversion, hayq ue mejorarlo pa lo que necesito http://www.pc-cito.com/modules/news/article.php?storyid=58

Ya cree mi propio script, si les sirve esta en: http://dev.red-sena.net/

Información Personal

Nombre:: Fernando Quintero

Email:: fernando . a . quintero @ gmail . com

URL:: http://www.openbsdcolombia.org/ Blog

Temas de interes:

-Servidores (linux, solaris, bsd)

-Seguridad en redes (pen testing, ethical hacking, etc)

-Redes inalambricas (802.11X, 802.16X)

-Instructor con experiencia en cualquier área técnica relacionada con Software libre

-Asesorias, consultorias, etc.

-Pregunte por lo que no vea ;)

Cosas de nonroot

Categorías: CategoryBlogPost

Odio los blogs por naturaleza, entonces usare este espacio como lo que es, un wiki. ;)

Tratando de montar OpenGrok en OpenSolaris

OpenGrok is a fast and usable source code search and cross reference engine. It helps you search, cross-reference and navigate your source tree. It can understand various program file formats and version control histories like SCCS, RCS, CVS, Subversion and Mercurial. In other words it lets you grok (profoundly understand) the open source, hence the name OpenGrok. It is written in Java. http://www.opensolaris.org/os/project/opengrok/

Nov 5-2007 De la pagina leo que requiero tener tomcat, ctags, subversion para que todo funcione. Bueno ahi voy. Primero lo que intento es bajar el paquete de opengrok para solaris, haber que pasa. http://www.opensolaris.org/os/project/opengrok/files/OSOLopengrok-0.5.pkg como se dan cuenta el paquete es un datastream, pero se instala igual.

Catalina se encuentra en esta ruta: /usr/apache/tomcat/bin/catalina.sh pero al ejecutarlo no hace nada. no sube ningun servicio, aclaro que el apache2 esta corriendo normal.

# ps -ef | grep tomcat
#

paila nada.

Leyendo me dicen que vaya a blastwave por el paquete, pero no quiero romper nada, ya que tomcat esta instalado by default. "Tomcat is packaged by blastwave.org and is working fine under solaris 10." (http://www.opensubscriber.com/message/tomcat-user@jakarta.apache.org/1556370.html)

bueno quite el comentario para que incluyera apache2 al tomcat y renombre el archivo de configuracion server.xml-example a server.xml y listo, al parecer esta corriendo. Lo verifico con un telnet al puerto 8080. Logs de comandos:

359  ps -ef | grep tomcat
  360  vi /etc/apache2/httpd.conf
  361  cat  /etc/apache2/httpd.conf
  362  grep tomcat  /etc/apache2/httpd.conf
  363  cd /etc/apache2
  364  ls
  365  cd ..
  366  cd apache
  367  ls
  368  svcadm
  369  svcadm disable http:apache2
  370  svcs apache2
  371  ps -fe | grep apache2
  372  ps -fe | grep apache
  373  netstat -an | grep 8080
  374  svcadm enable http:apache2
  375  netstat -an | grep 8080
  376  svcadm  restart apache2

Segun lo que veo el problema es que el solaris 10 con los paquetes de companion 9 y 10 monta los dos apaches.

# netstat -an | grep 8080
      *.8080               *.*                0      0 49152      0 LISTEN
      *.8080                            *.*                             0      0 49152      0 LISTEN
# ps -fe | grep apache
    root  3216     1   0 18:35:01 ?           0:01 /usr/apache2/bin/httpd -k start
  daemon  3220  3216   0 18:35:02 ?           0:00 /usr/apache2/bin/httpd -k start
  daemon  3221  3216   0 18:35:02 ?           0:00 /usr/apache2/bin/httpd -k start
  daemon  3217  3216   0 18:35:02 ?           0:00 /usr/apache2/bin/httpd -k start
  nobody  2876   621   0 17:50:46 ?           0:00 /usr/apache/bin/httpd
    root   621     1   0   nov 02 ?           0:09 /usr/apache/bin/httpd
  daemon  3218  3216   0 18:35:02 ?           0:00 /usr/apache2/bin/httpd -k start
  daemon  3219  3216   0 18:35:02 ?           0:00 /usr/apache2/bin/httpd -k start
  nobody  2878   621   0 17:50:46 ?           0:00 /usr/apache/bin/httpd
    root  3088     1   0 18:22:41 pts/2       0:08 /usr/java/bin/java -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogMa
  nobody  2880   621   0 17:50:46 ?           0:00 /usr/apache/bin/httpd
  nobody  2879   621   0 17:50:46 ?           0:00 /usr/apache/bin/httpd
  nobody  2877   621   0 17:50:46 ?           0:00 /usr/apache/bin/httpd
#

El apache normal tiene las cosas para correr con el tomcat, pero el apache2 no. entonces corren los dos, pero el apache normal sube el tomcat y el otro me sirve las webs, despues cuadro eso.

Al instalar el paquete, me instala normal, pero no se como ponerlo a correr, ademas no tengo ni ctags ni subversion corriendo.

# pkgadd -d OSOLopengrok-0.5.pkg

The following packages are available:
  1  OSOLopengrok     OpenGrok
                      (generic) 0.5

Select package(s) you wish to process (or 'all' to process
all packages). (default: all) [?,??,q]: all

Processing package instance <OSOLopengrok> from </export/home/luisa/OSOLopengrok-0.5.pkg>

OpenGrok(generic) 0.5
http://www.opensolaris.org/os/project/opengrok/
Using </> as the package base directory.
## Processing package information.
## Processing system information.
   1 package pathname is already properly installed.
## Verifying disk space requirements.
## Checking for conflicts with packages already installed.
## Checking for setuid/setgid programs.

Installing OpenGrok as <OSOLopengrok>

## Installing part 1 of 1.
/opt/OSOLopengrok/lib/ant-tools.jar
/opt/OSOLopengrok/lib/bcel-5.1.jar
/opt/OSOLopengrok/lib/jakarta-oro-2.0.8.jar
/opt/OSOLopengrok/lib/lucene-core-2.1.0.jar
/opt/OSOLopengrok/lib/lucene-spellchecker-2.1.0.jar
/opt/OSOLopengrok/lib/org.apache.commons.jrcs.diff.jar
/opt/OSOLopengrok/lib/org.apache.commons.jrcs.rcs.jar
/opt/OSOLopengrok/lib/svn-javahl.jar
/opt/OSOLopengrok/lib/swing-layout-0.9.jar
/opt/OSOLopengrok/opengrok.jar
/opt/OSOLopengrok/source.war
[ verifying class <none> ]
/usr/local/bin/opengrok <symbolic link>
[ verifying class <local> ]

Installation of <OSOLopengrok> was successful.
#

Bueno ya encontre los dos servicios, apache uno es legacy y el otro se administra por SFM.

# ./apache
Usage: ./apache {start|stop|restart}
# ./apache stop
httpd stopping.
# /usr/apache/bin/apachectl stop: httpd stopped

# pgrep apache
# ps -fea | grep apache
    root  3216     1   0 18:35:01 ?           0:01 /usr/apache2/bin/httpd -k start
  daemon  3220  3216   0 18:35:02 ?           0:00 /usr/apache2/bin/httpd -k start
  daemon  3221  3216   0 18:35:02 ?           0:00 /usr/apache2/bin/httpd -k start
  daemon  3217  3216   0 18:35:02 ?           0:00 /usr/apache2/bin/httpd -k start
    root  3310  2956   0 18:49:07 pts/2       0:00 grep apache
  daemon  3218  3216   0 18:35:02 ?           0:00 /usr/apache2/bin/httpd -k start
  daemon  3219  3216   0 18:35:02 ?           0:00 /usr/apache2/bin/httpd -k start
  daemon  3307  3216   0 18:48:52 ?           0:00 /usr/apache2/bin/httpd -k start
# svcadm disable http:apache2
# ps -fea | grep apache
# ps -fea | grep apache
#

La cuestion es decidir cual apache correr, por ahora hare pruebas con apache solo, para cargar el tomcat.

La unica razon pa tenr apache y tomcat es si quiero usar el conector, como aun no configuro nada de eso,entonces puedo dejar corriendo solo tomcat para pruebas.

para subirlo:

# /usr/apache/tomcat/bin/catalina.sh start
Using CATALINA_BASE:   /var/apache/tomcat
Using CATALINA_HOME:   /usr/apache/tomcat
Using CATALINA_TMPDIR: /var/apache/tomcat/temp
Using JRE_HOME:       /usr/java
# ps -fea | grep java
    root  3439     1   7 18:52:27 pts/2       0:02 /usr/java/bin/java -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogMa

Dandole al CTAGS probe haber si el ctags esta instalado y al parecer si.

# ctags
Usage:  ctags [-aBFtuvw] [-f tagsfile] file ...
OR:     ctags [-x] file ...
#

Pasare al subversion En la pagina de www.blastwave.org donde se descarga muchas apps para solaris encuentro una version reciente:

subversion       1.4.5,REV=2007.10.25   Version control rethought

En agosto en sunfreeware.com tambien pusieron el software:

August 16, 2007
subversion-1.4.4 (for Apache 2.2.4, no Solaris 2.5 version) 

Como pueden ver dicen que subversion funciona con la version 2.2.4 de apache y no la tengo:

# pwd
/usr/apache2/bin
# ./apachectl -v
Server version: Apache/2.2.3
Server built:   Oct  2 2007 00:41:16
#

de todos modos voy a probar a ver que pasa.

***************************

Si estamos usando alguna version reciente de OpenSolaris, el cual se instala con 6 CD's, podremos encontrar mucho software by default ahi disponible.

# pwd
/usr/sfw/bin
# uname -a
SunOS solaris 5.11 snv_75 i86pc i386 i86pc
#

Por ejemplo el wget que nos permite bajar el maravilloso pkg-get para luego poder descargar mas software:

# wget http://www.blastwave.org/pkg_get-3.8.1-all-CSW.pkg
--19:20:22--  http://www.blastwave.org/pkg_get-3.8.1-all-CSW.pkg
           => `pkg_get-3.8.1-all-CSW.pkg'
Resolving www.blastwave.org... ^C
# export http_proxy="http://10.0.0.2:3128"
# export ftp_proxy="http://10.0.0.2:3128"
# wget http://www.blastwave.org/pkg_get-3.8.1-all-CSW.pkg
--19:20:38--  http://www.blastwave.org/pkg_get-3.8.1-all-CSW.pkg
           => `pkg_get-3.8.1-all-CSW.pkg'
Connecting to 10.0.0.2:3128... connected.
Proxy request sent, awaiting response... 200 OK
Length: 68.608 (67K) [text/plain]

100%[==================================================================================================>] 68.608        86.99K/s

19:20:39 (86.67 KB/s) - `pkg_get-3.8.1-all-CSW.pkg' saved [68608/68608]

#

ver: http://www.blastwave.org/pkg-get.php

Ahi explican la configuracion para algun mirror disponible de pkg-get: http://www.blastwave.org/mirrors.php

Despues de bajar los catalogos me dispongo a instalar subversion

Magia, magia, debianitas ;)

# pkg-get -i swig
/opt/csw/bin/pkg-get[1828]: http://mirrors.usc.edu/pub/blastwave/unstable:  not found
WARNING: gpg not found
No existing install of CSWswig found. Installing...
Trying http://mirrors.sunsite.dk/csw/unstable/i386/5.11/swig-1.3.21-SunOS5.8-i386-CSW.pkg.gz
--19:26:41--  http://mirrors.sunsite.dk/csw/unstable/i386/5.11/swig-1.3.21-SunOS5.8-i386-CSW.pkg.gz
           => `swig-1.3.21-SunOS5.8-i386-CSW.pkg.gz'
Connecting to 10.0.0.2:3128... connected.
Proxy request sent, awaiting response... 200 OK
Length: 494.586 (483K) [text/plain]

75% [=========================================================================>                         ] 374.232       42.00K/s    ETA 00:02

Instalando las dependencias del subversion: http://www.sunfreeware.com/subversion.html

Aveces hay que buscar como se llama el paquete, por ejemplo db-4.2.x es:

# pkg-get -i berkeleydb4
/opt/csw/bin/pkg-get[1828]: http://mirrors.usc.edu/pub/blastwave/unstable:  not found
WARNING: gpg not found
No existing install of CSWbdb4 found. Installing...
Trying http://mirrors.sunsite.dk/csw/unstable/i386/5.11/berkeleydb4-4.2.52,REV=2005.04.28_rev=p4-SunOS5.8-i386-CSW.pkg.gz
--19:36:22--  http://mirrors.sunsite.dk/csw/unstable/i386/5.11/berkeleydb4-4.2.52,REV=2005.04.28_rev=p4-SunOS5.8-i386-CSW.pkg.gz
           => `berkeleydb4-4.2.52,REV=2005.04.28_rev=p4-SunOS5.8-i386-CSW.pkg.gz'
Connecting to 10.0.0.2:3128... connected.
Proxy request sent, awaiting response... 200 OK
Length: 9.319.990 (8.9M) [text/plain]

 1% [>                                                                                                  ] 169.416       83.39K/s

eso lo averiguo con el pkg-get -a

Ejecute un

#pkg-get -i subversion

y bajo de todo durante media hora, no se que paso, pero al parecer estoy descargando de la rama inestable y lo que tengo esta en estable, un upgrade, espero que no rompa nada. ahi voy ...

me voy pa la guia de subversion para intentar poner un repositorio de prueba: http://www.wikilearning.com/crear_un_repositorio-wkccp-169-8.htm

# mkdir /repositorio
# svnadmin create /repositorio/
# ls /repositorio/
conf        dav         db          format      hooks       locks       README.txt
# chown webservd:webservd /repositorio
#

Bueno, primero que todo debo poner a trabajar el subversion para visualizar el opengrok

Dandole al subversion

ya esta instalado, ahora para que funcione con el apache le agrego las lineas de LoadModule, pero al intentar subir el servicio saca un error. Con el comando svcs -x apache2 visualizo el error:

[ nov  5 20:30:47 Executing start method ("/lib/svc/method/http-apache2 start") ]
httpd: Syntax error on line 116 of /etc/apache2/httpd.conf: Cannot load /usr/apache2/modules/mod_dav_svn.so into server: ld.so.1: httpd: fatal: /usr/apache2/modules/mod_dav_svn.so: open failed: No such file or directory
[ nov  5 20:30:47 Method "start" exited with status 1 ]

Los modulos del subversion no estan en la ruta indicada. Entonces los busco, hago el cambio y recargo

-bash-3.2# find  / -name mod_dav_svn.so  -print
/usr/apache2/libexec/mod_dav_svn.so
-bash-3.2#

Listo, agrego eso y sube el servicio:

#Ojo, agregado los modulos para el subversion
LoadModule dav_svn_module libexec/mod_dav_svn.so
LoadModule authz_svn_module libexec/mod_authz_svn.so

-bash-3.2# svcadm clear apache2
-bash-3.2# svcadm restart apache2
-bash-3.2# svcs apache2
STATE          STIME    FMRI
online         20:35:00 svc:/network/http:apache2

tratando de montarle el soporte DAV pa subversion me encuentro con que no tengo el htdigest para auth basic, entonces en otra makina.

[root@tanenbaum ~]$ htdigest -c "./user.passwd" DAV-upload admin
Adding password for admin in realm DAV-upload.
New password:
Re-type new password:
[root@tanenbaum ~]$ ls -la ./user.passwd
-rw-r--r-- 1 root root 50 2007-11-05 20:51 ./user.passwd
[root@tanenbaum ~]$ cat ./user.passwd
admin:DAV-upload:259133497bb9b2c1853497a466157e79
[root@tanenbaum ~]$

No funciono, ahora kenada funciona me voy pal manual oficial. http://svnbook.red-bean.com/nightly/en/svn-book.html#svn.tour.importing ;)

************** Vuelvo y pruebo , creo un directorio /repositorio luego hago un svnadmin create y luego un import, parece que funciona.

# svn import /test file:///repositorio/test -m "i"
Adding         /test/hosts
Adding         /test/hola.txt

Committed revision 1.
# ls /test
hola.txt  hosts
# pwd
/repositorio/test/conf
# cd ..
# ls
conf        dav         db          format      hooks       locks       README.txt
#

Ya puedo bajar una copia de trabajo:

# su - nando
Sun Microsystems Inc.   SunOS 5.11      snv_75  October 2007
-bash-3.2$ mkdir test
-bash-3.2$ cd test/
-bash-3.2$ svn checkout file:///repositorio/test/ testing
A    testing/hosts
A    testing/hola.txt
Checked out revision 1.
-bash-3.2$ ls -l testing/
total 4
-rw-r--r--   1 nando    admins        20 nov  5 21:13 hola.txt
-rw-r--r--   1 nando    admins       988 nov  5 21:13 hosts
-bash-3.2$

con eso queda probado el subversion, falta darle el acceso por web o ssh y listo.

Y de aqui bajamos el cliente para subversion para windows: (si, windows, son coders de .NET) http://tortoisesvn.net/downloads

Corriendo OpenGrok, primero hay que buscar donde quedo el .jar, para luego correrlo con java.

# find / -name opengrok -print
/var/apache2/htdocs/opengrok
/usr/local/bin/opengrok
#

Luego ejecutamos el demonio paraver si funciona.

Me dice que no hay ctags

# java -jar /usr/local/bin/opengrok -s /repositorio/ /var/apache2/htdocs/opengrok
Error: No Exuberant Ctags found in PATH!
(tried running ctags)
Please use option -c to specify path to a good Exuberant Ctags program

Voy a intentar instalar ctags desde las fuentes ./configure ; make ; make install para eso hay que tener los compiladores, headers y binutils montados

Lo que hice despues de compilar fue poner la ruta del nuevo ctags antes

# export PATH=/usr/local/bin:$PATH

Y luego volvi a ejecutar :

java -jar /usr/local/bin/opengrok -s /repositorio/ /var/apache2/htdocs/opengrok

Ahi se generaron unas cosas, pero no era lo ke keria ver :(

# ls /var/apache2/htdocs/opengrok/
index       spellIndex  SRC_ROOT    tags        xref
#

Que pasaaaaaaaaa?????????

Uhm ya veo, la apunte al repositorio no a la copia de trabajo, entonces ahora lo ke hago es tirarlo a mi copia de trabajo creada en nando:

# java -jar /usr/local/bin/opengrok -s /export/home/nando/testing/ /var/apache2/htdocs/opengrok
Failed to initialize Subversion library:
java.lang.UnsatisfiedLinkError: no svnjavahl in java.library.path
        at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1682)
        at java.lang.Runtime.loadLibrary0(Runtime.java:823)
        at java.lang.System.loadLibrary(System.java:1030)
        at org.tigris.subversion.javahl.NativeResources.loadNativeLibrary(Unknown Source)
        at org.tigris.subversion.javahl.SVNClient.<clinit>(Unknown Source)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:169)
        at org.opensolaris.opengrok.history.HistoryGuru.isSvnAvailable(HistoryGuru.java:68)
        at org.opensolaris.opengrok.history.HistoryGuru.guessHistoryParser(HistoryGuru.java:128)
        at org.opensolaris.opengrok.history.HistoryGuru.getHistoryParser(HistoryGuru.java:176)
        at org.opensolaris.opengrok.history.HistoryGuru.getHistoryReader(HistoryGuru.java:214)
        at org.opensolaris.opengrok.analysis.AnalyzerGuru.getDocument(AnalyzerGuru.java:184)
        at org.opensolaris.opengrok.index.Index.indexDown(Index.java:404)
        at org.opensolaris.opengrok.index.Index.startIndexing(Index.java:327)
        at org.opensolaris.opengrok.index.Index.runIndexer(Index.java:253)
        at org.opensolaris.opengrok.index.Indexer.main(Indexer.java:345)

Al parecer el error es porke opengrok intenta cargar la libreria de SVN pero no la encuentra... Entonces configuro la variable de la que me hablaban por ahi y ejecuto nuevamente:

# cd /usr/lib/svn/
# ls
libsvn_client-1.so           libsvn_fs-1.so               libsvn_ra-1.so               libsvn_swig_py-1.so
libsvn_client-1.so.0         libsvn_fs-1.so.0             libsvn_ra-1.so.0             libsvn_swig_py-1.so.0
libsvn_client-1.so.0.0.0     libsvn_fs-1.so.0.0.0         libsvn_ra-1.so.0.0.0         libsvn_swig_py-1.so.0.0.0
libsvn_delta-1.so            libsvn_ra_dav-1.so           libsvn_repos-1.so            libsvn_wc-1.so
libsvn_delta-1.so.0          libsvn_ra_dav-1.so.0         libsvn_repos-1.so.0          libsvn_wc-1.so.0
libsvn_delta-1.so.0.0.0      libsvn_ra_dav-1.so.0.0.0     libsvn_repos-1.so.0.0.0      libsvn_wc-1.so.0.0.0
libsvn_diff-1.so             libsvn_ra_local-1.so         libsvn_subr-1.so             libsvnjavahl-1.so
libsvn_diff-1.so.0           libsvn_ra_local-1.so.0       libsvn_subr-1.so.0           libsvnjavahl-1.so.0
libsvn_diff-1.so.0.0.0       libsvn_ra_local-1.so.0.0.0   libsvn_subr-1.so.0.0.0       libsvnjavahl-1.so.0.0.0
libsvn_fs_fs-1.so            libsvn_ra_svn-1.so           libsvn_swig_perl-1.so
libsvn_fs_fs-1.so.0          libsvn_ra_svn-1.so.0         libsvn_swig_perl-1.so.0
libsvn_fs_fs-1.so.0.0.0      libsvn_ra_svn-1.so.0.0.0     libsvn_swig_perl-1.so.0.0.0
# export LD_LIBRARY_PATH=/usr/lib/svn/

Y nada................

# rm -rf /var/apache2/htdocs/opengrok/*
# export LD_LIBRARY_PATH=/usr/lib/svn/
# java -jar /usr/local/bin/opengrok -s /export/home/nando/testing/ /var/apache2/htdocs/opengrok
Failed to initialize Subversion library:
java.lang.UnsatisfiedLinkError: no svnjavahl in java.library.path
        at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1682)
        at java.lang.Runtime.loadLibrary0(Runtime.java:823)
        at java.lang.System.loadLibrary(System.java:1030)
        at org.tigris.subversion.javahl.NativeResources.loadNativeLibrary(Unknown Source)
        at org.tigris.subversion.javahl.SVNClient.<clinit>(Unknown Source)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:169)
        at org.opensolaris.opengrok.history.HistoryGuru.isSvnAvailable(HistoryGuru.java:68)
        at org.opensolaris.opengrok.history.HistoryGuru.guessHistoryParser(HistoryGuru.java:128)
        at org.opensolaris.opengrok.history.HistoryGuru.getHistoryParser(HistoryGuru.java:176)
        at org.opensolaris.opengrok.history.HistoryGuru.getHistoryReader(HistoryGuru.java:214)
        at org.opensolaris.opengrok.analysis.AnalyzerGuru.getDocument(AnalyzerGuru.java:184)
        at org.opensolaris.opengrok.index.Index.indexDown(Index.java:425)
        at org.opensolaris.opengrok.index.Index.startIndexing(Index.java:343)
        at org.opensolaris.opengrok.index.Index.runIndexer(Index.java:253)
        at org.opensolaris.opengrok.index.Indexer.main(Indexer.java:345)

Otro intento ...

# find / -name svn -print
/usr/bin/svn
/usr/lib/python2.4/vendor-packages/svn
/usr/lib/svn
/usr/include/svn
/opt/csw/bin/svn
/opt/csw/lib/svn
# export LD_LIBRARY_PATH=/usr/lib/svn/:/opt/csw/lib/svn/:/usr/include/svn:/opt/csw/bin/svn
# java -jar /usr/local/bin/opengrok -s /export/home/nando/testing/ /var/apache2/htdocs/opengrok
# rm -rf /var/apache2/htdocs/opengrok/*
# export LD_LIBRARY_PATH=/usr/lib/svn/:/opt/csw/lib/svn/:/usr/include/svn:/opt/csw/bin/svn
# java -jar /usr/local/bin/opengrok -s /export/home/nando/testing/ /var/apache2/htdocs/opengrok
Failed to initialize Subversion library:
java.lang.UnsatisfiedLinkError: no svnjavahl in java.library.path
        at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1682)
        at java.lang.Runtime.loadLibrary0(Runtime.java:823)
        at java.lang.System.loadLibrary(System.java:1030)
        at org.tigris.subversion.javahl.NativeResources.loadNativeLibrary(Unknown Source)
        at org.tigris.subversion.javahl.SVNClient.<clinit>(Unknown Source)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:169)
        at org.opensolaris.opengrok.history.HistoryGuru.isSvnAvailable(HistoryGuru.java:68)
        at org.opensolaris.opengrok.history.HistoryGuru.guessHistoryParser(HistoryGuru.java:128)
        at org.opensolaris.opengrok.history.HistoryGuru.getHistoryParser(HistoryGuru.java:176)
        at org.opensolaris.opengrok.history.HistoryGuru.getHistoryReader(HistoryGuru.java:214)
        at org.opensolaris.opengrok.analysis.AnalyzerGuru.getDocument(AnalyzerGuru.java:184)
        at org.opensolaris.opengrok.index.Index.indexDown(Index.java:425)
        at org.opensolaris.opengrok.index.Index.startIndexing(Index.java:343)
        at org.opensolaris.opengrok.index.Index.runIndexer(Index.java:253)
        at org.opensolaris.opengrok.index.Indexer.main(Indexer.java:345)

Y nadaaaaaaaaaaaaaaaaaaaa

Bueno, encontre lo que queria, estan aqui:

/opt/OSOLopengrok

Era mas fácil investigar donde se almacenaba el paquete que instale. vuelve y juega.

Bueno, no funciona y no funciono, lo ke hize fue pasar al punto dos de montar el source.war al tomcat y listo, al parecer me funciono, sin embargo quedo con la duda de organizar lo de la libreria.

Para el tomcat tuve que modificar el archivo de usuarios para agregar un usuario con el role de admin, con ese usuario pude entrar a la parte administrativa.

Y tambien para que pudiera funcionar el opengrok tuve que modificar el web.xml para que apuntara a los archivos fuentes y al DATA_ROOT.

seguire...

NOV 6 / 2007

Para lograr que el subversion se pueda acceder por web, lo que hacemos es cargar los modulos de subversion en el apache (httpd.conf)

#Agregando la ruta para subversion

<Location /svn>
  DAV svn
  SVNPath /repositorio/test
</Location>

De esa forma podemos acceder al repositorio navegando a: http://server/svn

Para crearle seguridad al apache, usamos la herramienta htpasswd

-bash-3.2# find / -name htpasswd -print
/usr/apache/bin/htpasswd
/usr/apache2/bin/htpasswd
-bash-3.2#

Funciono el acceso seguro por WEB, el svn desde consola me pide una clave para auth basic.

Pero otra forma de autenticarse es usando ssh asi>

svn svn+ssh://server/repositorio

/home/nando/svn
sh-3.1$ svn checkout svn+ssh://10.0.0.5/repositorio/test
Password:

Faltaria definir quien tiene acceso a que parte y crear varios repositorios pro proyectos.

NOV 23 DE 2007

Volvi y retome el tema, en el foro me regañaron con el asunto de las librerias:

http://www.opensolaris.org/jive/thread.jspa?threadID=43989&tstart=0

No se si ya funciona, pero no saco errores...

# ./opengrok.jar -c /usr/local/bin/ctags -s /export/home/nando/test/ /var/apache2/htdocs/opengrok/
# env
LC_MONETARY=es_CO.ISO8859-1
SHELL=/bin/bash
TERM=xterm
SSH_CLIENT=10.0.0.4 56490 22
LC_NUMERIC=es_CO.ISO8859-1
OLDPWD=/var/apache/tomcat/webapps/source
SSH_TTY=/dev/pts/4
USER=nando
LD_LIBRARY_PATH=/opt/csw/lib/svn
PATH=/usr/sbin:/usr/bin:/usr/local/bin:/usr/sfw/bin:/opt/csw/bin
MAIL=/var/mail/nando
LC_MESSAGES=es
LC_COLLATE=es_CO.ISO8859-1
PWD=/opt/OSOLopengrok
LANG=es_CO.UTF-8
TZ=America/Bogota
PS1=#
HOME=/export/home/nando
SHLVL=2
LOGNAME=nando
LC_CTYPE=es_CO.ISO8859-1
SSH_CONNECTION=10.0.0.4 56490 10.0.0.5 22
LC_TIME=es_CO.ISO8859-1
_=/usr/bin/env
#

Opengrok montado y funcionando,

[TEMA CERRADO OPENGROK - OK]

Jugando con las zonas en Solaris

Bueno, para practicar en los cursos de solaris que oriento en el sena requiero crear zonas para que los aprendices del SENA practiquen libremente. Aqui algo de las experiencias>

CReacion de zona basica, con directorios compartidos>

-bash-3.2# zonecfg -z test
test: No such zone configured
Use 'create' to begin configuring a new zone.
zonecfg:test> create
zonecfg:test> set autoboot=true
zonecfg:test> set zonepath=/zonas/test
zonecfg:test> add net
zonecfg:test:net> set address=10.0.0.1
zonecfg:test:net> set physical=pcn1
zonecfg:test:net> end
zonecfg:test> info
zonename: test
zonepath: /zonas/test
brand: native
autoboot: true
bootargs:
pool:
limitpriv:
scheduling-class:
ip-type: shared
inherit-pkg-dir:
        dir: /lib
inherit-pkg-dir:
        dir: /platform
inherit-pkg-dir:
        dir: /sbin
inherit-pkg-dir:
        dir: /usr
net:
        address: 10.0.0.1
        physical: pcn1
zonecfg:test> verify
zonecfg:test> commit
zonecfg:test> exit

DOc> es.opensolaris.org/files/zonas.pdf Por ahora no voy a trabajar mas con zonas. tema cerrado

[TEMA CERRADO ZONAS - OK]

Montando VIEWVC para Subversion

Como el opengrok esta parado hasta que algun desarrollador me ayude, intentare montar el viewvc con el repositorio de subversion.

En la instalacion me piden que instale http://www.codento.com/people/mtr/genscript/ como requerimiento. Lo bajo, descomprimo, extraigo los contenidos y compilo de manera tradicional> ./configure ; make ; make install

Ahora me habla de otro soft.

Highlight, code colorizer, 2.2.10 or later required, 2.4.5 or
        later recommended for reliable line numbering
          (http://www.andre-simon.de/)

Al intentar instalarlo recibo un error.

-bash-3.2# make
make -C ./src -f ./makefile HL_DATA_DIR=/usr/share/highlight/ HL_CONFIG_DIR=/usr/etc/highlight/
Usage : make [ -f makefile ][ -K statefile ]... [ -d ][ -dd ][ -D ][ -DD ]             [ -e ][ -i ][ -k ][ -n ][ -p ][ -P ][ -q ][ -r ][ -s ][ -S ][ -t ]
             [ -u ][ -w ][ -V ][ target... ][ macro=value... ][ "macro +=value"... ]
make: Fatal error: Unknown option `-C'
*** Error code 1
make: Fatal error: Command failed for target `all'

Se me ocurre buscar otro make {{{-bash-3.2# find / -name make -print /usr/bin/make /usr/ccs/bin/make /usr/share/lib/make /usr/xpg4/bin/make /usr/gnu/bin/make }}}

Con gnu/make funciona bien:

-bash-3.2# /usr/gnu/bin/make
/usr/gnu/bin/make -C ./src -f ./makefile HL_DATA_DIR=/usr/share/highlight/ HL_CONFIG_DIR=/usr/etc/highlight/
make[1]: Entering directory `/viewvc-1.0.4/highlight-2.6.5/src'
c++ -O2 -c configurationreader.cpp
c++ -O2 -c stylecolour.cpp
c++ -O2 -c stringtools.cpp
c++ -O2 -c xhtmlgenerator.cpp
c++ -O2 -c latexgenerator.cpp
c++ -O2 -c texgenerator.cpp
c++ -O2 -c rtfgenerator.cpp
c++ -O2 -c htmlgenerator.cpp
c++ -O2 -c ansigenerator.cpp
c++ -O2 -c xmlgenerator.cpp
...

Cuando intento hacer el make install sale un error>

install: -m644 was not found anywhere!
make: *** [install] Error 2

Seguire e intentare instalar el resto puesto que no es un rekisito indispensable tener este paquete. Seguimos con este:

 CvsGraph 1.5.0 or later, graphical CVS revision tree generator
          (http://www.akhphd.au.dk/~bertho/cvsgraph/)

Cuando intento compilar, tengo el siguiente problema:

** The GD library is required for CvsGraph to function.
   Get it from http://www.boutell.com, compile it and
   use either --with-gd-lib=DIR and --with-gd-inc=DIR to specify
   its location. You might also have to use --with-z-inc, --with-z-lib

el configure sale bien. Pero el make saca un error

Makefile.am:18:
Makefile.am:18: The usual way to define `LIBTOOL' is to add `AC_PROG_LIBTOOL'
Makefile.am:18: to `configure.ac' and run `aclocal' and `autoconf' again.
make: *** [Makefile.in] Error 1

-bash-3.2# nano configure.ac
-bash-3.2# aclocal-1.
aclocal-1.10  aclocal-1.9
-bash-3.2# aclocal-1.
aclocal-1.10  aclocal-1.9
-bash-3.2# aclocal-1.10
/usr/share/aclocal/audiofile.m4:12: warning: underquoted definition of AM_PATH_AUDIOFILE
/usr/share/aclocal/audiofile.m4:12:   run info '(automake)Extending aclocal'
/usr/share/aclocal/audiofile.m4:12:   or see http://sources.redhat.com/automake/automake.html#Extending-aclocal
configure.ac:65: warning: macro `AM_ICONV' not found in library
-bash-3.2# autoconf

sigue el error, continuo despues.

nov 25. 2007

Ya monte el TRAC + OpenGrok, no creo que necesite el viewvc, excepto por el viewcgraph o algo similar, pero creo que existen plugines para el TRAC, entonces abandono el tema de viewVC.

[TEMA CERRADO VIEWVC - FAILED]

Creando un subversion para varios proyectos con multiples usuarios

Noviembre 23 de 2007 - 11:00PM

Bueno, por fin el opengrok funcionó. ahora sigue el trabajo con los posibles proyectos para los aprendices de analisis y desarrollo.

La sintaxis para el commit inicial o el import que llaman, es la siguiente., para este ejemplo nandux2 es el repositorio y la ruta en el home es donde se encuentran los archivos que quiero incorporar.

-bash-3.2$ svnadmin create nandux2
-bash-3.2$ svn import nandux2 file:///export/home/nando/svn/  -m "inicio"
Adding         nandux2/hooks
Adding         nandux2/hooks/pre-revprop-change.tmpl
Adding         nandux2/hooks/post-commit.tmpl
Adding         nandux2/hooks/post-lock.tmpl
Adding         nandux2/hooks/pre-commit.tmpl
Adding         nandux2/hooks/pre-lock.tmpl
Adding         nandux2/hooks/post-unlock.tmpl
Adding         nandux2/hooks/pre-unlock.tmpl
Adding         nandux2/hooks/start-commit.tmpl
Adding         nandux2/hooks/post-revprop-change.tmpl
Adding         nandux2/conf
Adding         nandux2/conf/svnserve.conf
Adding         nandux2/conf/passwd
Adding         nandux2/conf/authz
Adding         nandux2/db
Adding         nandux2/db/revs
Adding         nandux2/db/revs/0
Adding         nandux2/db/revprops
Adding         nandux2/db/revprops/0
Adding         nandux2/db/write-lock
Adding         nandux2/db/current
Adding         nandux2/db/uuid
Adding         nandux2/db/fs-type
Adding         nandux2/db/transactions
Adding         nandux2/db/format
Adding         nandux2/format
Adding         nandux2/dav
Adding         nandux2/locks
Adding         nandux2/locks/db.lock
Adding         nandux2/locks/db-logs.lock
Adding         nandux2/README.txt

Committed revision 2.
-bash-3.2$

-bash-3.2$ svn import file:///export/home/nando/prueba file:///proyecto/prueba/ -m "tales"~
svn: 'file:///export/home/nando/prueba' does not exist
-bash-3.2$ svn import /export/home/nando/prueba file:///proyecto/prueba/ -m "tales"~
Adding         /export/home/nando/prueba/ipf.conf
Adding         /export/home/nando/prueba/prueba2.doc
Adding         /export/home/nando/prueba/svn-commit.tmp
Adding         /export/home/nando/prueba/prueba.txt

Committed revision 1.
-bash-3.2$ svn import [RUTA A LOS ARCHIVOS QUE QUIERO IMPORTAR]  [URL, FILE O LO QUE SEA DONDE ESTA EL REPOSITORIO]

Hay que averiguar lo de los permisos y como automatizar el checkout del cliente y el opengrok desde ese lugar.

sigue ...

Montando TRAC en OpenSolaris

Nov 24. de 2007 11:38PM

Tratando de montar TRAC en solaris, primero que todo bajemos el codigo que esta en el repositorio:

pkg-get -i trac

Para usar trac necesito python, swig, sqlite, pysqlite, clearsilver, subversion y sus correspondientes dependencias, con el comando ejecutado se asume que las dependencias bajaron.

Ubicamos donde queda instalado el trac

-bash-3.2# cd /opt/csw/
-bash-3.2# find . -name trac -print
./share/doc/trac
./share/trac
./lib/python/site-packages/trac
-bash-3.2# cd share/trac/
-bash-3.2# ls
cgi-bin       htdocs        templates     wiki-macros
conf          plugins       wiki-default
-bash-3.2# cd templates/
-bash-3.2# pwd
/opt/csw/share/trac/templates
-bash-3.2# ls
about.cs                log_rss.cs              roadmap.cs
anydiff.cs              log.cs                  search.cs
attachment.cs           macros.cs               settings.cs
browser.cs              milestone.cs            ticket_notify_email.cs
changeset.cs            newticket.cs            ticket_rss.cs
error.cs                query_rss.cs            ticket.cs
footer.cs               query.cs                timeline_rss.cs
header.cs               README                  timeline.cs
index.cs                report_rss.cs           wiki.cs
log_changelog.cs        report.cs
-bash-3.2#

Bueno, pense que iba a ser mas complicado.

solo tome un repositorio de prueba, para crear la info de trac debe haber un directorio vacio y luego responder a 4 o 5 preguntas que nos hace el sistema.

-bash-3.2# trac-admin /export/home/nando/trac initenv
Creating a new Trac environment at /export/home/nando/trac

Despues subimos el demonio trac (tracd) para probarlo, se debe tener en cuenta que por defecto el tracd carga en el localhost, como estoy conectado al servidor remotamente entonces le paso un parametro para indicarle sobre cual interfaz debe correr.

-bash-3.2# tracd --hostname=10.0.0.5 --port 8000 /export/home/nando/trac

Luego navego al sitio : 10.0.0.5:8000/trac y listo

***************************************************************

Ahora sigue montarlo como server web permanente.

Leyendo la documentación en wiki del trac, veo que maneja plugines, entonces hago la prueba, para lo que primero requiero montar:

-bash-3.2# python2.4 ez_setup.py
Downloading http://pypi.python.org/packages/2.4/s/setuptools/setuptools-0.6c7-py2.4.egg
Processing setuptools-0.6c7-py2.4.egg
creating /usr/lib/python2.4/site-packages/setuptools-0.6c7-py2.4.egg
Extracting setuptools-0.6c7-py2.4.egg to /usr/lib/python2.4/site-packages
Adding setuptools 0.6c7 to easy-install.pth file
Installing easy_install script to /usr/bin
Installing easy_install-2.4 script to /usr/bin

Installed /usr/lib/python2.4/site-packages/setuptools-0.6c7-py2.4.egg
Processing dependencies for setuptools==0.6c7
Finished processing dependencies for setuptools==0.6c7
-bash-3.2#

Con setuptools montado ya puedo bajar los plugines.

Hago la prueba con un plugin para configurar el trac por web:

-bash-3.2# wget http://trac.edgewall.org/attachment/wiki/WebAdmin/TracWebAdmin-0.1.2dev_r4240-py2.4.egg.zip?format=raw

Lo renombro y lo instalo

-bash-3.2# mv Tracadmin.egg.zip Tracadmin.egg
-bash-3.2# easy_install Tracadmin.egg
Processing Tracadmin.egg
creating /usr/lib/python2.4/site-packages/Tracadmin.egg
Extracting Tracadmin.egg to /usr/lib/python2.4/site-packages
Adding Tracadmin 0.1.2dev-r4240 to easy-install.pth file

Installed /usr/lib/python2.4/site-packages/Tracadmin.egg
Processing dependencies for Tracadmin==0.1.2dev-r4240
Finished processing dependencies for Tracadmin==0.1.2dev-r4240
-bash-3.2#

mas info en: /trac/wiki/TracPlugins

Luego adicione el nuevo plugin a la conf

[components]
webadmin.* = enabled

Y lo ensayaré ahorita.

Continuo con el montaje del servidor web TRAC para multiples repositorios SVN

Bajo el mod_python desde las fuentes.

-bash-3.2# wget http://ftp.wayne.edu/apache/httpd/modpython/mod_python-3.3.1.tgz
--00:44:32--  http://ftp.wayne.edu/apache/httpd/modpython/mod_python-3.3.1.tgz
           => `mod_python-3.3.1.tgz'/apache/httpd/modpython/mod_python-3.3.1.tgz~
Connecting to 10.0.0.2:3128... connected.
Proxy request sent, awaiting response... 200 OK
Length: 447.954 (437K) [application/x-tar]

100%[==================================================================================================>] 447.954       47.19K/s    ETA 00:00

00:44:42 (47.15 KB/s) - `mod_python-3.3.1.tgz' saved [447954/447954]

-bash-3.2#

Al parecer es mas dificil desde las fuentes, pero por error encuentro el nombre del paquete en el repositorio:

-bash-3.2# pkg-get install ap2_modpython
/opt/csw/bin/pkg-get[1828]: http://mirrors.usc.edu/pub/blastwave/unstable:  not found
No existing install of CSWap2modpython found. Installing...
Trying http://mirrors.sunsite.dk/csw/unstable/i386/5.11/ap2_modpython-3.3.1,REV=2007.10.25-SunOS5.8-i386-CSW.pkg.gz
--00:49:22--  http://mirrors.sunsite.dk/csw/unstable/i386/5.11/ap2_modpython-3.3.1,REV=2007.10.25-SunOS5.8-i386-CSW.pkg.gz
           => `ap2_modpython-3.3.1,REV=2007.10.25-SunOS5.8-i386-CSW.pkg.gz'
Connecting to 10.0.0.2:3128... connected.
Proxy request sent, awaiting response... 200 OK

Al finalizar nos muestra lo siguiente:

[activating module `python' in /opt/csw/apache2/etc/httpd.conf]

NOTICE: mod_python is enabled in httpd.conf but the server was not restarted.
Please configure mod_python and restart apache.

osea que el modulo de python queda activo por defecto en el server apache2.

:)

Pero el problema es que lo hace en el apache del repositorio :s, ese es el problema de mezclar cosas

-bash-3.2# grep mod_python /etc/apache2/httpd.conf
-bash-3.2# grep python /opt/csw/apache2/etc/httpd.conf
LoadModule python_module      libexec/mod_python.so
-bash-3.2#

supongo que funcionara tambien con el otro.

Bueno, tampoco se habia copiado el modulo al libexec de los modulos del apache. entonces:

#cp /opt/csw/apache2/libexec/mod_python.so /usr/apache2/libexec/mod_python.so
#svcadm restart http:apache2
#./apachectl  -t -D DUMP_MODULES
Loaded Modules:
 core_module (static)
 mpm_prefork_module (static)
 http_module (static)
 so_module (static)
 authn_file_module (shared)
 authn_dbm_module (shared)
 authn_anon_module (shared)
 authn_dbd_module (shared)
 authn_default_module
...
 python_module (shared)
Syntax OK

Ahi tenemos nuestro modulo de python cargado. seguimos ... mas info en: http://XXX/trac/wiki/TracModPython

Cuando por fin logro cuadrar las 4 versiones de apache que tengo, hago la prueba con el modulo python y funciona.

FUNCIONA!

Lo unico que agrego es un locate y le doy permisos al directorio trac para que el usuario que corre el servidor apache pueda leer y hacer cambios.

-bash-3.2# chown -R nobody:nobody /export/home/nando/trac/

y agrego el codigo

<Location /proyecto/prueba>
   SetHandler mod_python
   PythonHandler trac.web.modpython_frontend
   PythonOption TracEnv /export/home/nando/trac
   PythonOption TracUriRoot /proyecto/prueba
</Location>

Luego recargo el servicio:

-bash-3.2# svcadm restart svc:/network/http:cswapache2

y listo, navego a: http://XXX/proyecto/prueba

***************************************************

Ahora lo que quiero es poder tener varios repositorios SVN bajo /proyecto/X y que los pueda acceder por trac y por opengrok. Lo de opengrok es mas complex, pero ahi vamos.

La configuracion para varios proyectos es facil, solo hay que apuntar a donde se encuentren todos los ambientes trac y nos saldra un enlace para cada uno de los proyectos que queremos. Hay que recordar que cada directorio debe tener permisos de escritura para el usuario que corre el servidor web.

-bash-3.2# pwd
/opt/csw/apache2/etc
-bash-3.2# cat extra/httpd-trac.conf
<Location /proyecto>
  SetHandler mod_python
  PythonHandler trac.web.modpython_frontend
  PythonOption TracEnvParentDir /export/home/nando
  PythonOption TracUriRoot /proyecto
</Location>
-bash-3.2#

Estoy asumiento que los ambientes trac estan en /export/home/nando

Nov 25, 2007

El trac ya funciona para uno y para varios proyectos, lo que sigue es trabajar con algunos plugines, automatizar la cracion de proyectos, tratar de ponerlo en español para los aprendices y listo. Por ahora se cierra el tema.

[TEMA CERRADO TRAC - OK]

Estadisticas para el SubVersion (statsvn)

Nov 28, 2007

Descargo el software

#wget http://superb-west.dl.sourceforge.net/sourceforge/statsvn/statsvn-0.3.1-source.zip

Lo descomprimo y lo trato de ejecutar segun el statsvn

# java -jar ./lib/statcvs-0.3.1-dev.jar ./logfile.log ./scripts/trunk/generator/
StatCVS - CVS statistics generation

Logfile parsing failed.
Expected '?' or empty line at line 1, but found '<?xml version="1.0"?>'
#

Grave, no funciona, como casi siempre. seguire despues.

-- nonroot 2007-11-05 18:13:20



:) :)) :( ;) :\ |) X-( B) Markup

FernandoQuintero (last edited 2008-04-20 14:39:49 by localhost)