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.
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.
Edite el fichero access
para que
sólo contenga su nombre de usuario.
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"
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.
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.
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.
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>.