[OpenBSD]

CVS Anónimo


Qué es CVS Anónimo?

CVS Anónimo es un método para mantener una copia local del árbol de fuentes de OpenBSD actualizada con respecto a los cambios hechos al código fuente existente en OpenBSD-current. Además de poder seguir el filo del desarrollo, también se puede hacer un seguimiento de los parches para los errores de una versión.

La mayor ventaja de CVS Anónimo sobre otras técnicas de actualización de código fuente es que funciona directamente contra un repositorio o réplica central de código fuente. Esto quiere decir que Vd. puede usar todas las órdenes disponibles de CVS para controlar la fusión y actualizar los cambios que aplique con otros cambios en los fuentes, y para obtener ficheros diff, cambiar historiales y otras acciones contra el repositorio central.

El Proyecto OpenBSD dispone en la actualidad de tres repositorios principales de fuentes:

Resumiendo, el poder real de usar CVS Anónimo es que éste es un sistema de control de código fuente «tolerante»; respeta los cambios que el usuario ha llevado a cabo en sus fuentes locales y se esfuerza en actualizar el árbol completo de fuentes del usuario, en lugar de dejar una lista de problemas arcanos que deberán ser resueltos antes de continuar.

¿Qué es CVS?

CVS es el sistema de control de código fuente que se usa para gestionar el árbol de fuentes de OpenBSD. Implementa un repositorio central para todas las revisiones oficiales y cambios del código fuente, mientras permite que los desarrolladores mantengan copias locales del código fuente con los cambios que éstos hayan aplicado. Los desarrolladores con «permiso de acceso con escritura» pueden entregar los cambios realizados directamente al árbol de fuentes de OpenBSD, mientras que los usuarios de «CVS Anónimo» disponen de «permiso de acceso con lectura» y pueden mantener sus copias locales de los fuentes actualizadas y realizar búsquedas y consultas en el repositorio central.

La mayor ventaja de CVS es la de ser capaz de llevar a cabo fusiones inteligentes de los cambios que haya habido en el repositorio central con los cambios que haya hecho el usuario en su copia local. Esto significa que si Vd. efectúa un cambio en un módulo y lleva a cabo una actualización, sus cambios no son rechazados, sino que CVS se esforzaría en fusionarlos con los del repositorio central.

En el supuesto caso en que los cambios no pudieran ser completamente fusionados, entonces CVS le enviaría los cambios a su copia local con comentarios sobre éstos, perservando un copia intacta de su versión y continuando con la actualización del resto de módulos que Vd. hubiera requerido.

Cómo Empezar a Usar CVS Anónimo.

La última versión de CVS está disponible en Cyclic. Se recomienda no usar versiones anteriores a la 1.6, ya que pueden no funcionar. Si ya tiene OpenBSD instalado, CVS va incluido.

Aquellas personas que posean un CD de OpenBSD puede que hayan visto los directorios CVS en él. Hay una razón para esto; el CD tiene una parte del módulo src de OpenBSD que sirve para continuar la actualización desde ella. Si usa este árbol la actualización inicial de CVS será más rápida que si actualiza todo el árbol de fuentes de OpenBSD partiendo desde cero. Hay dos modos de usar el CD:

Quienes no tengan un CD a mano pueden usar cvs(1) para «descargar» el repositorio de fuentes. Este método se discute en la próxima sección.

Después de esto, /usr/src será una buena área de descarga en donde todas las órdenes de cvs(1) funcionarán sin problemas.

Usar CVS para Bajar y Actualizar el Árbol de Fuentes.

CVS se diseñó para que fuera un modo sencillo de bajarse y actualizar los fuentes, y por tanto no es difícil usarlo. Primero debe decidir si va a llevar un seguimiento de current o de una rama parcheada. El árbol current contiene todos los cambios hechos hasta el último minuto, mientras que una rama parcheada contiene una versión oficial más los parches aplicados de errata.

Una vez que haya decidido qué árbol seguir, debe escoger qué servidor de CVS anónimo va a usar. Hay una lista de estos servidores en estas páginas. Sin embargo, note que hay 3 modos de acceder a estos servidores.

NOTA: Los usuarios que deseen usar ssh, primero deben configurar la variable CVS_RSH para ssh.

Una vez que haya escogido qué Servidor de CVS Anónimo va a usar y qué método utilizará, puede empezar a usar cvs. Quienes dispongan de los CDs pueden empezar con la descarga de CVS existente en el CD usando el método antes mencionado para bajar los fuentes a su sistema. Este método pone el árbol de fuentes de OpenBSD en /usr/src.

La línea de órdenes anterior descargará el código fuente del árbol de current. Muchos sólo querrán los fuentes de una rama parcheada. Para obtener una rama parcheada, debe especificarlo con una etiqueta en la orden de cvs. Por ejemplo:

Ó OPENBSD_2_7 para 2.7, etc...

En este momento sólo la etiqueta OPENBSD_2_8 contiene el código fuente de la versió con los parche de errata aplicados.

Servidores Anónimos de CVS Disponibles.

Existe dos niveles de acceso al árbol de fuentes:

Acceso de lectura/escritura para desarrolladores:
Los desarrolladores que necesiten enviar cambios al árbol de fuentes deben tener una cuenta en las máquinas de OpenBSD. La obtención de este acceso es el resultado de su trabajo sobre los fuentes con otros desarrolladores de OpenBSD. Si alguien hace un buen trabajo y muestra que puede trabajar con el equipo, entonces obtendrá una cuenta.
Acceso de sólo-lectura para todos:
Cualquiera puede acceder con permiso de sólo lectura a los repositorios de CVS. Las copias del repositorio principal de CVS de sólo lectura se replican con frecuencia. Para poder usarlas, configure su variable de entorno CVSROOT con uno de los siguientes valores:

¡Por favor, lea la nota sobre el uso de ssh vs. rsh!

Nota: Si su servidor se encuentra en esta lista con información inexacta o desconocida, por favor contacte con beck@openbsd.org

Para saber qué servidor se encuentra geográficamente más cerca de Vd. puede usar traceroute(8). Para los problemas que puedan surgirle con algún servidor debe dirigirse al mantenedor del servidor en cuestión.

Obtener Código Criptográfico por CVS

NOTA IMPORTANTE: Hay algunos temas relacionados con el software criptográfico que todos deberían conocer:

Ejemplo de Utilización de CVS.

Un ejemplo del uso de anoncvs en un servidor de CVS sería:

Para usar un cvs ``pserver'' (una conexión tcp directa en lugar de usar ssh o rsh) debe hacer un ingreso (login) una sola vez:

Un ejemplo de cómo alguien que usara anoncvs con regularidad actualizaría su árbol de fuentes:

El uso de los portes es parecido al de src:

En el ejemplo anterior, -q es opcional, sólo sirve para minimizar los mensajes en pantalla de cvs. Aquéllos que quieran ver pantallas llenas de mensajes lo pueden omitir.

o para hacer un diff de un módulo local parcheado (en el ejemplo siguiente cd.c) para incluirlo con un informe de error:

La página de manual de CVS(1) (incluida con los fuentes de CVS) tiene mucha más información sobre cómo se puede usar CVS.

Árbol de fuentes de X11
Las réplicas de anoncvs también disponen del árbol de fuentes de X11 de OpenBSD. Puede adaptar las órdenes anteriores para actualizar su árbol de fuentes de X11 desde el segundo CD. Puede hacer esto copiándolo, o usando un montaje "union" para obtener los fuentes de X11 en /usr/X11:

Después de esto, /usr/X11 estará preparado para ser usado por cvs. Por ejemplo, puede actualizarlo con los fuentes de "-current" (se asume que ya ha configurado la variable de entorno CVSROOT):

Aviso: Cuando use cvs debe tomar la precaución de que su directorio actual sea el directorio raíz del árbol que tome como referencia, o que sea en un sitio aparte como /tmp. Algunas órdenes como "get" pueden crear un «sub-árbol» en el directorio actual y una actualización posterior producirá, de modo recursivo, información sobre este «sub-árbol».

El servicio anoncvs ofrece la oportunidad a desarrolladores de aprender a operar con CVS y a meterse de lleno en el proceso de desarrollo antes de obtener acceso absoluto; como resultado de buenas habilidades y resultados de alta calidad, se les otorgará en su momento acceso de desarrollador. También aquéllos que entreguen parches pueden crear sus ficheros diff relativos al árbol de CVS, lo que facilitará la integración.

¿Usar rsh(1) o ssh(1)?

Anoncvs: rsh vs. ssh
El cliente de CVS usa rsh para comunicarse con el servidor de CVS por definición. Muchos de los sitios CVS han dejado de ofrecer soporte para rsh por razones de seguridad; otros problemas como un cortafuegos o un emulador de protocolo imperfecto como slirp pueden evitar que se pueda usar rsh. La alternativa es usar una conexión de «shell segura»:
OpenSSH (*Libre y Gratis*) o ssh (versión comercial y no comercial).

Los repositorios anoncvs de OpenBSD tienen implementado soporte para el protocolo SSH1, no el protocolo SSH2 debido a su aplicación de una «política de licencia para uso estrictamente no comercial».

Una vez que ssh está instalado, hay que configurar la variable de entorno CVS_RSH para que señale a ssh (generalmente /usr/bin/ssh). Si su servidor no le permite conectar por el puerto 22 (predefinido en ssh), use el puerto 2022.

No intente activar la compresión ya que CVS comprime de por sí. Use algo como lo que sigue en su fichero $HOME/.ssh/config. Nota: No todos los sevidores anoncvs permiten conexiones ssh por el puerto 2022. La mayoría de servidores han dejado de aceptar el cifrado none, ya que éste está desactivado en las versiones más recientes de ssh por razones de seguridad.

	Host anoncvs.ca.openbsd.org
	    Port 2022

El inicio de CVS es un poco ruidoso; para silenciarlo un poco puede hacer lo siguiente:

Si desea cambiar de un servidor de CVS a otro (si el que usa normalmente está caído, o por cualquier otra razón), la variable de entorno que le permitirá hacerlo es:

También necesitará usar la opción -d como se menciona anteriormente.

Replicar el Repositorio de CVS mediante SUP(1).

Los usuarios que quieran replicar el árbol de CVS de OpenBSD, pueden hacerlo desde anoncvs.usa.openbsd.org. Éste es el árbol de CVS, no una copia del árbol de fuentes. Sólo le será útil para poder llevar a cabo operaciones rápidas de cvs (diff, annotate, etc...), o si tiene múltiples árboles de fuentes y sólo quiere transferir nuevos datos una vez (entonces puede obtener una copia del árbol desde su réplica local de cvs).

Un fichero sup (supfile) de ejemplo sería:

       cvs host=anoncvs.usa.openbsd.org hostbase=/ base=/home delete

que replicaría el árbol de cvs en /home/cvs con los ficheros de datos de sup en /home/sup. El árbol de cvs completo de OpenBSD es algo menos de un gigabyte de tamaño.

Configurar una nueva réplica de anoncvs.

Si desea que su servidor sea un réplica nueva de anoncvs, por favor contacte con el mantenedor de anoncvs. Las réplicas de anoncvs requieren alrededor de 1GB de espacio en disco, y hacen uso de hasta 4MB de memoria de swap por cada usuario de anoncvs (suponiendo que el usuario haga una operación grande; aunque las operaciones más pequeñas usan menos recursos, el impacto de las operaciones de cvs sigue siendo mayor que las de ftp o sup). Por tanto, las máquinas para anoncvs deberían estar dotadas de una excelente conexión de red para el área que van a servir. Se encuentra disponible un documento que describe la configuración de servidores anoncvs.

Notas finales:

Después de actualizar el árbol de fuentes, es necesario leer los comentarios al principio de /usr/src/Makefile antes de intentar compilar. También se debe compilar un nuevo núcleo antes de hacer un make build si es posible. En algunos casos puede ser necesario recompilar e instalar la utilidad config antes de compilar el núcleo. Si config GENERIC falla, probablemente se deba a esto último.

Es importante saber que actualizar desde una revisión al árbol actual recompilando los fuentes puede ser bastante difícil debido a las dependencias que a menudo no son claras. Por tanto, sugerimos que instale primero el último "snapshot" antes de intentar compilar un árbol desde los fuentes.


OpenBSD www@openbsd.org
Originally [OpenBSD: anoncvs.html,v 1.130 2000/12/16 15:03:54 beck Exp ]
$Translation: anoncvs.html,v 1.21 2000/12/17 21:21:01 horacio Exp $
$OpenBSD: anoncvs.html,v 1.19 2000/12/18 20:18:37 jufi Exp $