Configurar un repositorio CVS - a la manera de FreeBSD
Prev |  |

# 3 Configuración específica de FreeBSD

El proyecto FreeBSD utliza una configuración ligeramente diferente de la descrita; se usan los ficheros de configuración del subdirectorio `freebsd` en `CVSROOT`. El proyecto lo hace de esta manera debido al gran número de committers y a que todos y todas han de estar en el mismo grupo. Un wrapper simple fué escrito para poder asegurar que los usuarios tengan permisos correctos para poder hacer hacer commits; este wrapper establece el id del grupo al que el repositorio tiene.

Si su repositorio lo necesita también los pasos para hacerlo están documentados más adelante. Pero antes de nada veamos una descripción de los ficheros involucrados.

## 3.1 Ficheros usados en la configuración de FreeBSD

- `access` - este fichero controla la información de acceso. Se debe editar este fichero e incluir a todos los miembros del proyecto.

- `freebsd/cvswrap.c` - este es el código de CVS wrapper que va a ser necesario instalar para hacer que todos los chequeos de acceso funcionen. Mas información sobre él más adelante en el texto. Debería editar las rutas de las macros `ACCESS` y `REALCVS` para que se correspondan con su configuración.

- `freebsd/mailsend.c` - este fichero es necesario para la configuración de la lista de correo de FreeBSD. No deberá tocar este fichero.

## 3.2 El procedimiento

1. Edite el fichero `access` para que sólo contenga su nombre de usuario.

2. Edite el fichero `cvswrap.c` para que contenga la ruta correcta de su configuración. Se define con una macro llamada `ACCESS`. Deberá cambiar también el lugar del binario de `cvs` si no coincide con el de su sistema. `cvswrap.c` está pensado para sustituir al comando cvs del sistema, que pasará a ser `/usr/bin/ncvs` .

   Mi copia de `cvswrap.c` tiene lo siguiente:

       #define ACCESS "/local/cvsroot/CVSROOT/access"
       #define REALCVS "/usr/bin/ncvs"

3. Instalaremos después wrapper para asegurarnos de que se haya convertido en el grupo correcto al hacer el commit. Tiene el código fuente en `cvswrap.c` en su `CVSROOT`.

   Tendrá que compilar el código una vez haya incluido en el las rutas correctas:

       % cc -o cvs cvswrap.c

   E instálelos (necesitará ejecutar este paso como root):

       # mv /usr/bin/cvs /usr/bin/ncvs

                   # mv cvs /usr/bin/cvs
                   # chown root:ncvs
                   /usr/bin/cvs /usr/bin/ncvs
                   # chmod o-rw /usr/bin/ncvs
                   #  chmod u-w,g+s /usr/bin/cvs

   Esto instala wrapper como el comando `cvs` por defecto; así nos aseguramos de que cualquiera que quiera usar el repositorio necesita tener los niveles de acceso correctos.

4. Ahora ya puede eliminar a todos los usuarios del grupo del repositorio. Todo control de acceso lo hará a partir de ahora wrapper y este wrapper establecerá el grupo de acceso correcto.

## 3.3 Prueba de la configuración

Su wrapper debería estar listo. Debería probarlo, claro está, haciendo un commit forzado al fichero `access`:

    % cvs commit -f -m 'Commit
            forzado para probar los nuevos scripts en CVSROOT'
            access

Si algo falla asegúrese de que todos los pasos arriba descritos se han realizado correctamente.

Prev | Home |
Comienzo de la configuración |  |

Puede descargar éste y muchos otros documentos desde ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.

Si tiene dudas sobre FreeBSD consulte la documentación antes de escribir a la lista <questions@FreeBSD.org>.
Envíe sus preguntas sobre la documentación a <doc@FreeBSD.org>.