                              Contribuir a FreeBSD

  Jordan Hubbard

  Sam Lawrance

  Mark Linimon

   Revision: 31a4630754

   FreeBSD is a registered trademark of the FreeBSD Foundation.

   IEEE, POSIX, and 802 are registered trademarks of Institute of Electrical
   and Electronics Engineers, Inc. in the United States.

   Many of the designations used by manufacturers and sellers to distinguish
   their products are claimed as trademarks. Where those designations appear
   in this document, and the FreeBSD Project was aware of the trademark
   claim, the designations have been followed by the "(TM)" or the "(R)"
   symbol.

   2020-03-06 22:46:38 +0000 por Sergio Carlavilla Delgado.
   Resumen

   Este articulo describe las diferentes formas en que una persona u
   organizacion puede contribuir al proyecto FreeBSD.

   [ Split HTML / Single HTML ]

     ----------------------------------------------------------------------

   Tabla de contenidos

   1. Que se necesita

   2. Como colaborar

   3. Contribuyendo a la coleccion de ports

   4. Empezar en otras areas

   Indice

   ?Asi que quiere contribuir a FreeBSD? !Genial! FreeBSD depende de las
   contribuciones de su base de usuarios para sobrevivir. Sus contribuciones
   no solo son gratamente apreciadas, son vitales para que FreeBSD continue
   creciendo.

   El grupo de desarrolladores de FreeBSD lo componen un grupo grande y
   siempre creciente de gente de todas partes del mundo, de edades y areas de
   experiencia tecnica muy diversas. Siempre hay mas trabajo pendiente que
   manos disponibles y siempre se agradece ayuda adicional.

   El unico limite que ponemos a los voluntarios es el que su disponibilidad
   misma dicte. Por otra parte le pedimos que este al tanto de lo que otros
   miembros de la comunidad de FreeBSD esperan de usted. Tener esto en cuenta
   es importante antes de decidir ser voluntario.

   El proyecto FreeBSD es responsable de mantener un sistema operativo
   completo, en lugar de un solo kernel o unas pocas utilidades sueltas. Por
   lo tanto nuestra lista de tareas pendientes TODO incluye una gran variedad
   de tareas: desde la documentacion, realizacion de pruebas en las versiones
   beta, hasta el desarrollo del instalador del sistema y tareas de
   desarrollo del kernel altamente especializadas. Todo el mundo puede
   ayudar, independientemente del nivel nivel de habilidad, en un area u otra
   del proyecto.

   Invitamos a las empresas que tengan proyectos relacionados con FreeBSD a
   que se pongan en contacto con nosotros. ?Necesitan de un desarrollo
   concreto para hacer que su producto funcione? Estaremos encantados de
   escuchar sus peticiones, siempre y cuando que no sean demasiado raras.
   ?Esta trabajando en un producto de alto valor anadido? !Por favor,
   haganoslo saber! Podemos trabajar conjuntamente en algunos aspectos del
   mismo. El mundo del software libre esta desafiando muchas de las
   suposiciones existentes sobre como se desarrolla, vende y mantiene el
   software y le instamos encarecidamente a que al menos considere seriamente
   su uso.

1. Que se necesita

   La lista de tareas y subproyectos que se muestra a continuacion es una
   amalgama de varias listas de TODO y solicitudes de los usuarios.

  1.1. Tareas en curso para personas que no son programadores

   Muchas de las personas que estan involucradas en FreeBSD no son
   programadores. El proyecto incluye a escritores de documentacion,
   disenadores web y personas que dan soporte. Todo lo que estas personas
   necesitan para contribuir es invertir tiempo y la voluntad de aprender.

    1. Lea cada cierto tiempo las FAQ y el Handbook. Si algo esta mal
       explicado, es ambiguo, esta desactualizado o es incorrecto, avisenos.
       Aun mejor, envienos una solucion (Docbook no es dificil de aprender,
       pero no hay ningun problema si lo envia en ASCII).

    2. Ayude a traducir la documentacion de FreeBSD a su lengua materna. Si
       ya existe documentacion en su idioma, puede ayudar a traducir otros
       documentos o comprobar si las traducciones estan actualizadas y son
       correctas. Antes de nada, consulte las FAQ de las traducciones en el
       FreeBSD Documentation Project Primer. El hecho de traducir algo no
       implica la obligacion de traducir todo; como voluntario, puede tanto o
       tan poco como desee. Una vez que alguien empieza a traducir, casi
       siempre se apunta alguien mas. Si solo tiene tiempo o energia para
       traducir una parte de la documentacion, por favor, traduzca las
       instrucciones de instalacion.

    3. Lea la lista de correo de preguntas generales de FreeBSD de vez en
       cuando (o regularmente, si es posible). Puede ser muy satisfactorio
       compartir su experiencia y ayudar a las personas a resolver sus
       problemas !A veces incluso puede aprender algo nuevo! Estos foros
       tambien pueden ser una fuente de ideas de cosas que puede ser
       mejoradas.

  1.2. Tareas en curso para personas que son programadores

   La mayoria de las tareas aqui expuestas requieren de una considerable
   cantidad de tiempo, o un conocimiento profundo del kernel de FreeBSD, o
   ambas cosas. Sin embargo, tambien hay muchas tareas utiles que son ideales
   para "hackers de fin de semana".

    1. Si usa FreeBSD-CURRENT y tiene una buena conexion a Internet, existe
       una maquina en current.FreeBSD.org que genera una release completa una
       vez al dia-de vez en cuando, intente instalar una de estas releases e
       informe de cualquier problema en el proceso.

    2. Lea la lista de correo de informes de problemas de FreeBSD. Puede
       encontrar algun problema sobre el que hacer un comentario constructivo
       o sobre el que probar parches. O quizas pueda solucionar uno de los
       problemas usted mismo.

    3. Si sabe de alguna correccion que ha sido aplicada con exito en
       -CURRENT y cuya solucion no ha sido aplicada aun en -STABLE despues de
       un periodo de tiempo razonable (normalmente, un par de semanas) envie,
       de forma educada, un mensaje al committer responsable del cambio.

    4. Mueva el software de terceros a src/contrib en el arbol del codigo
       fuente.

    5. Asegurese de que el codigo de src/contrib esta actualizado.

    6. Compile el arbol del codigo fuente (o solo una parte del mismo) con un
       nivel de depuracion adicional habilitado y corrija los warnings.

    7. Corrija los warnings en los ports que aun utilizan recursos obsoletos
       como gets() o que incluyan malloc.h.

    8. Si ha contribuido con algun port y tuvo que hacer cambios especificos
       para FreeBSD, envie sus parches a los autores originales (esto les
       hara la vida mas facil cuando lancen la proxima version).

    9. Hagase con copias de estandares formales como POSIX(R). Compare el
       comportamiento de FreeBSD con el requerido por el estandar. Si el
       comportamiento difiere, particularmente en areas sutiles u oscuras de
       la especificacion, envienos un PR al respecto. Si puede, averigu:e
       como solucionarlo e incluya un parche en el PR. Si cree que el
       estandar es incorrecto, pidale al organismo de estandares que
       considere su propuesta.

   10. !Sugiera nuevas tareas para esta lista!

  1.3. Trabaje en la base de datos de PR

   La lista de PR de FreeBSD muestra todos los informes de problemas activos
   y las solicitudes de mejora que los usuarios de FreeBSD han enviado. La
   base de datos de PR incluye tanto tareas para programadores como para no
   programadores. Eche un vistazo a los PR abiertos y mire si alguno de ellos
   le interesa. Algunos pueden ser tareas muy sencillas que solo necesitan
   una revision adicional para confirmar que la solucion adjunta al PR es la
   adecuada. Otros pueden ser mucho mas complejos, o incluso no incluir una
   solucion.

   Comience con los PRs que no han sido asignados a nadie. Si el PR ya ha
   sido asignado a otra persona, pero cree que puede ayudar, envie un correo
   electronico a la persona que lo tiene asignado y preguntele si puede
   colaborar; quizas ya tenga un parche listo para pruebas, o ideas
   adicionales que proponer.

  1.4. Tareas en curso relacionadas con la coleccion de ports

   La coleccion de ports es un trabajo que esta siempre activo. Queremos
   ofrecer a nuestros usuarios un repositorio de software de terceros facil
   de usar, actualizado y de gran calidad. Necesitamos que las personas den
   parte de su tiempo y esfuerzo para ayudarnos a lograr este objetivo.

   Cualquiera puede participar y hay muchas formas diferentes de hacerlo.
   Contribuir a la coleccion de ports es una forma excelente de "devolver"
   algo al proyecto. Si esta buscando un trabajo para realizar de forma
   continua o un desafio divertido para un dia lluvioso estariamos encantados
   de que nos ayude.

   Existen varias formas de ayudar a mantener la coleccion de ports
   actualizada y en buen funcionamiento:

     * Encuentre algun software interesante o util y cree un port.

     * Hay una gran cantidad de ports que no tienen un maintainer.
       Conviertase en un maintainer y adopte un port.

     * Si ha creado o adoptado un port tenga en cuenta lo que debe hacer como
       maintainer.

     * Si busca un desafio rapido, puede corregir un error o un port roto.

  1.5. Escoja uno de los elementos de la pagina de ideas

   La lista de proyectos e ideas de FreeBSD para voluntarios tambien esta
   disponible para las personas que deseen contribuir al proyecto FreeBSD.
   Esta lista se actualiza regularmente y contiene elementos para
   programadores y no programadores, asi como informacion sobre cada
   proyecto.

2. Como colaborar

   Las contribuciones al sistema generalmente pueden catalogarse en las
   siguientes 5 categorias:

  2.1. Informes de errores y comentarios generales

   Una idea o sugerencia tecnica de interes general debe enviarse a la lista
   de correo de discusiones tecnicas de FreeBSD. Del mismo modo, las personas
   interesadas en estas cosas (!y una tolerancia para un gran volumen de
   correo!) pueden subscribirse a la lista de correo de discusiones tecnicas
   de FreeBSD. Consulte el Handbook de FreeBSD para obtener mas informacion
   sobre esta y otras listas de correo.

   Si encuentra un error o quiere enviar un cambio concreto puede informar
   sobre el utilizando el formulario de envio de errores. Trate de rellenar
   cada campo del informe. Incluya el parche directamente en el informe salvo
   que exceda los 65KB. Si el parche es adecuado para ser anadido al arbol
   del codigo fuente incluya [PATCH] en la sinopsis del informe. Cuando
   incluya parches no utilice copiar y pegar, porque copiar y pegar
   transforma las tabulaciones en espacios, haciendo el parche inutil. Cuando
   el parche exceda los 20KB por favor comprimalo (por ejemplo, con gzip(1) o
   bzip2(1)) antes de enviarlo.

   Tras rellenar el informe deberia recibir un mensaje de confirmacion junto
   con un numero de seguimiento. Conserve este numero de seguimiento para que
   pueda informarnos con nuevos detalles sobre el problema.

   Consulte tambien este articulo sobre como escribir buenos informes de
   problemas.

  2.2. Cambios en la documentacion

   Los cambios en la documentacion son revisados por los miembros de la lista
   de correo del proyecto de documentacion de FreeBSD. Por favor, consulte el
   FreeBSD Documentation Project Primer si quiere informacion detallada.
   Envie contribuciones y cambios (!incluso los mas pequenos son
   bienvenidos!) utilizando el mismo metodo que cualquier otro informe de
   errores.

  2.3. Cambios en el codigo fuente ya existente

   Anadir o modificar el codigo fuente existente es un tema delicado y
   depende en gran medida de lo obsoleto que este el desarrollo actual de
   FreeBSD. Hay una release especial de FreeBSD conocida como
   "FreeBSD-CURRENT" que esta disponible de varias formas para mayor
   comodidad de los desarrolladores que trabajan activamente en el sistema.
   Consulte el Handbook de FreeBSD para obtener mas informacion sobre como
   obtener y usar FreeBSD-CURRENT.

   Por desgracia trabajar con codigo fuente antiguo significa que a veces sus
   cambios podrian resultar obsoletos o diferir demasiado para hacer una
   reintegracion en FreeBSD. Esta posibilidad puede minimizarse
   suscribiendose a la lista de anuncios de FreeBSD y a la lista de correo
   FreeBSD-CURRENT, donde tienen lugar los debates sobre el estado actual del
   sistema.

   Suponiendo que pueda obtener acceso a una version lo suficientemente
   actualizada del codigo fuente del sistema sobre el que realizar sus
   cambios, el siguiente paso es generar los diffs para enviar a los
   maintainers de FreeBSD. Esto se realiza con el comando diff(1).

   El formato diff(1) recomendado para enviar parches es el formato de salida
   unificado generado por el comando diff -u.

 % diff -u fichero-antiguo fichero-nuevo

   o

 % diff -u -r -N directorio-antiguo directorio-nuevo

   deberia generar un conjunto de diffs unificados para el archivo de origen
   o la jerarquia de directorios.

   Consulte el manual de diff(1) para obtener mas informacion.

   Una vez que tenga el conjunto de diffs (que deberia probar con el comando
   patch(1)), debe enviarlos para que sean incluidos en FreeBSD a traves de
   un informe de error. !No envie los diffs a la lista de correo de
   discusiones tecnicas de FreeBSD o se perderan! Agradecemos inmensamente su
   colaboracion (!este es un proyecto voluntario!). Estamos muy ocupados por
   la gran carga de trabajo, por lo tanto, es posible que no podamos
   abordarlo de inmediato, pero permaneceran en la base de datos de PR hasta
   que lo hagamos. Etiquete sus envios incluyendo [PATCH] en la sinopsis del
   informe.

   Si lo considera oportuno (por ejemplo si ha agregado, eliminado o
   renombrado archivos) empaquete sus cambios en un archivo tar. Tambien
   aceptamos los archivos creados con shar(1).

   Si sus cambios son delicados, por ejemplo, si no esta seguro acerca de los
   problemas de derechos de autor que regiran su distribucion en el futuro,
   envielos directamente al Core Team <core@FreeBSD.org> en lugar de enviarlo
   como un informe de error. El Core Team <core@FreeBSD.org> es un grupo
   mucho mas pequeno de gente que se encarga de muchas de las tareas diarias
   de administracion del proyecto FreeBSD. Tenga en cuenta que este grupo
   tambien esta muy ocupado y, por lo tanto, solo debe enviarles correos
   cuando realmente sea necesario.

   Consulte los manuales de intro(9) y style(9) para obtener mas informacion
   sobre el estilo de programacion requerido. Agradeceriamos que tuviera esa
   informacion en cuenta antes de enviar el codigo.

  2.4. Codigo nuevo o paquetes de gran valor anadido

   En el caso de una contribucion significativa o de gran impacto, o si se
   trata de anadir una nueva caracteristica importante a FreeBSD es necesario
   enviar los cambios comprimidos en un archivo tar o subirlos a un sitio web
   o FTP para que otras personas puedan acceder a ellos. Si no tiene acceso a
   un sitio web o FTP solicitelo en la lista de correo de FreeBSD mas
   adecuada para que alguien busque un sitio para alojar los cambios.

   Cuando se trabaja con grandes cantidades de codigo, siempre surge el
   delicado tema del copyright. FreeBSD prefiere licencias de software libre
   como BSD o ISC. Las licencias de Copyleft como la GPLv2, a veces estan
   permitidas. La lista completa se puede encontrar en la pagina de policita
   de licencias del core team.

  2.5. Dinero o hardware

   Estamos encantados de aceptar donaciones economicas para ayudar a impulsar
   el proyecto FreeBSD y, como en cualquier proyecto mantenido por
   voluntarios, !un poco puede significar mucho! Tambien son importantes las
   donaciones de hardware para poder ampliar nuestra lista de hardware
   soportado, ya que generalmente no podemos permitirnos comprar estos
   articulos nosotros mismos.

    2.5.1. Donar dinero

   La FreeBSD Foundation es una fundacion sin animo de lucro, libre de
   impuestos, creada para impulsar los objetivos del proyecto FreeBSD. Como
   entidad 501(c)3, la FreeBSD Foundation esta exenta del impuesto federal de
   la renta de los EEUU asi como del Estado de Colorado. Las donaciones a una
   entidad exenta de impuestos suelen ser deducibles (en los EEUU).

   Las donaciones pueden enviarse mediante cheque a:

       The FreeBSD Foundation
       P.O. Box 20247,
       Boulder,
       CO 80308
       USA
     

   La FreeBSD Foundation tambien puede aceptar donaciones via web mediante
   PayPal. Para hacer una donacion, visite la pagina web. de la FreeBSD
   Foundation.

   Puede encontrar mas informacion sobre la FreeBSD Foundation en The FreeBSD
   Foundation -- an Introduction. Para contactar con la FreeBSD Foundation
   por correo electronico, escriba a <info@FreeBSDFoundation.org>.

    2.5.2. Donar hardware

   El proyecto FreeBSD acepta encantado donaciones de hardware que le
   resulten utiles. Si desea donar componentes de hardware por favor pongase
   en contacto con la Donations Liaison Office.

3. Contribuyendo a la coleccion de ports

  3.1. Adoptar un port que no esta mantenido

    3.1.1. Elegir un port que no este mantenido

   Asumir el mantenimiento de ports que no estan matenidos es una forma
   excelente de involucrarse. Los ports que no estan mantenidos solo se
   actualizan y arreglan cuando alguien se ofrece como voluntario para
   trabajar en ellos. Hay una gran cantidad de ports sin mantenimiento. Es
   una buena idea empezar adoptando un port que use de forma regular.

   Los ports que no estan mantenidos tiene como MAINTAINER asignado
   ports@FreeBSD.org. Puede ver un listado de todos los ports sin
   mantenimiento, asi como sus errores actuales e informes de problemas en el
   FreeBSD Ports Monitoring System.

   Algunos ports afectan a muchos otros debido a las dependencias y las
   relaciones con los ports que dependan de ellos. En general, esperamos que
   las personas tengan algo de experiencia antes de ofrecerse voluntariamente
   para mantener dichos ports.

   Puede comprobar si un port tiene o no dependencias o si otros puertos
   depende de el consultando el indice maestro de ports, INDEX. (El nombre
   del archivo varia segun la version de FreeBSD; por ejemplo, INDEX-8)
   Algunos ports tienen dependencias condicionales que no estan incluidas en
   la compilacion predeterminada de INDEX. Esperamos que pueda reconocer
   dichos ports analizando el archivo Makefile de otros ports.

    3.1.2. Como adoptar un port

   Primero, asegurese de de comprender cuales seran sus responsabilidades
   como maintainer. Lea tambien el Handbook del Porter. Por favor, no se
   comprometa con mas de lo que crea que puede manejar comodamente.

   Puede solicitar el mantenimiento de cualquier port que este sin
   mantenimiento cuando lo desee. Simplemente configure el parametro
   MAINTAINER con su propia direccion de correo electronico y envie un PR
   (informe de problemas) con el cambio. Si el port tiene errores de
   compilacion o necesita actualizarse, es posible que desee aprovechar la
   oportunidad para incluir cualquier otro cambio que se requiera en ese
   mismo PR. Esto acelerara el proceso, ya que muchos committers no estan
   dispuestos a asignar la responsabilidad del mantenimiento del port a
   alguien que no tenga un historial de trabajo con FreeBSD. La mejor forma
   de crear un historial de trabajo es enviando PRs corrigiendo errores de
   compilacion o actualizando ports.

   Envie su PR a la categoria ports y utilice la clase change-request. Un
   committer revisara su PR, commiteara los cambios y finalmente cerrara el
   PR. En algunas ocasiones, este proceso puede llevar cierto tiempo (los
   committers tambien son voluntarios :).

  3.2. El desafio para los maintainers de un port

   Esta seccion le dara una vision general de por que los ports deben
   mantenerse y describira las responsabilidades de un maintainer de port.

    3.2.1. Por que los ports requieren mantenimiento

   Crear un port es una tarea que se realiza una vez. Pero asegurar que un
   port este siempre actualizado y continue compilandose y ejecutandose
   correctamente requiere de un esfuerzo de mantenimiento continuo. Los
   Maintainers son las personas que dedican parte de su tiempo a cumplir
   estos objetivos.

   La razon principal por la que los ports necesitan mantenimiento es para
   disponga de las versiones mas actualizadas y mejor software de terceros a
   la comunidad de FreeBSD. Un desafio adicional es mantener los ports para
   que continuen funcionando dentro del framework de la coleccion de ports a
   medida que este evoluciona.

   Como maintainer debera enfrentarse a los siguientes desafios:

     * Nuevas versiones y actualizaciones de software. Las nuevas versiones y
       actualizaciones de software estan disponibles todo el tiempo para las
       aplicaciones que ya han sido portadas, y deben incorporarse a la
       coleccion de ports para proporcionar un software actualizado.

     * Cambios en las dependencias. Si se realizan cambios significativos en
       las dependencias de su port es posible que deba actualizarlas para que
       continue funcionando correctamente.

     * Cambios que afectan a los ports que dependen de los suyos. Si otros
       ports depende de un port que mantiene, los cambios en su port pueden
       requerir que se coordine con otros maintainers.

     * Interaccion con otros usuarios, maintainers y desarrolladores. Parte
       de ser maintainer es asumir el rol de proporcionar soporte. No
       esperamos que de soporte a nivel general (pero aceptaremos gustosos si
       decide hacerlo). Lo que debe proporcionar es un punto de apoyo para
       los problemas especificos de FreeBSD que esten relacionados con sus
       ports.

     * Caza de bugs. Un port puede verse afectado por errores especificos de
       FreeBSD. Debera investigar, encontrar y corregir estos errores cuando
       sean reportados. Es mucho mejor probar meticulosamente un port para
       identificar todos sus potenciales problemas antes de anadirlo a la
       coleccion de ports.

     * Cambios en la infraestructura y politica de ports. Ocasionalmente, los
       sistemas que se utilizan para compilar los ports y paquetes se
       actualizan o se hace una nueva recomendacion que afecta a la
       infraestructura. Debe tener en cuenta estos cambios en caso de que sus
       ports se vean afectados y requieran de una actualizacion.

     * Cambios en el sistema base. FreeBSD esta en constante desarrollo. Los
       cambios en el software, en las bibliotecas, en el kernel o incluso los
       cambios en las politicas pueden hacer necesarios ciertos de cambios en
       los ports.

    3.2.2. Responsabilidades del maintainer

      3.2.2.1. Mantenga sus ports actualizados

   Esta seccion describe el proceso a seguir para mantener sus ports
   actualizados.

   Esto es un resumen. Dispone de mas informacion sobre la actualizacion de
   un port en el Handbook del Porter.

    1. Este atento a las actualizaciones

       Monitorice el desarrollo para estar al tanto de nuevas versiones,
       actualizaciones y correcciones de seguridad. Las listas de correo de
       anuncios o las paginas web de noticias son utiles para este proposito.
       En ocasiones los usuarios se pondran en contacto con usted para
       preguntarle cuando se actualizara su port. Si esta ocupado con otras
       cosas o simplemente no puede actualizarlo por alguna razon pregunte al
       usuario si puede ayudarlo enviandole una actualizacion.

       Tambien puede recibir un correo electronico automatizado de FreeBSD
       Ports Version Check informandole que ya hay una nueva version
       disponible del distfile de su port. En el mensaje se incluira mas
       informacion (incluido el como dejar de recibir los correos
       electronicos en el futuro).

    2. Incorporar cambios

       Una vez que esten disponibles incorpore los cambios en el port. Es
       necesario generar un parche con las diferencias entre el port original
       y el port actualizado.

    3. Revisar y probar

       Revise y pruebe a fondo sus cambios:

          * Compile, instale y pruebe su port en tantas plataformas y
            arquitecturas como pueda. Es comun que un port funcione en una
            rama o plataforma y falle en otra.

          * Asegurese de que las dependencias de su port esten completas. La
            forma recomendada de hacerlo es instalando su propio tinderbox de
            ports. Tiene mas informacion en la seccion de recursos.

          * Compruebe que la lista de componentes del paquete este
            actualizada. Esto implica anadir nuevos archivos y directorios,
            asi como eliminar entradas no utilizadas.

          * Compruebe su port utilizando portlint(1) como guia. Consulte los
            recursos para obtener informacion importante sobre el uso de
            portlint.

          * Tenga presente la posilidad de que los cambios en su port puedan
            causar que otros ports dejen de funcionar (se rompan). Si este es
            el caso coordine los cambios con los maintainers de esos ports.
            Esto cobra especial importancia si su actualizacion cambia la
            version de la libreria compartida; en este caso, como minimo, los
            ports que dependan del suyo deberan aumentar de version su
            PORTREVISION para que puedan actualizarse de forma automatica con
            herramientas como portmaster o portupgrade(1).

    4. Enviar los cambios

       Envie su actualizacion enviando un PR con una explicacion de los
       cambios y un parque que contenga las diferencias entre el port
       original y el actualizado. Consulte el articulo Como enviar informes
       de problemas de FreeBSD para obtener mas informacion sobre como
       escribir un PR correctamente.

  Nota:

       No envie un archivo shar(1) de todo el port; en su lugar, utilice el
       comando diff(1) -ruN. De esta forma, los committers pueden ver mas
       facilmente de forma exacta que cambios se estan estan realizando.
       Consulte la seccion de actualizacion del Handbook del Porter para mas
       informacion.

    5. Esperar

       Llegado el momento un committer se encargara de su PR. Esto puede
       llevar entre unos minutos y varias semanas, asi que tenga paciencia.

    6. Proporcione feedback

       Si un committer encuentra algun problema en sus cambios lo mas
       probable es que se los devuelva. Una respuesta rapida ayudara a que se
       haga mas rapido el commit. Es muy importante mantener abierto el canal
       de comunicacion para acelerar la resolucion de cualquier problema.

    7. Y para concluir

       Se hara el commit con sus cambios y el port habra sido actualizado.
       Despues se cerrara el PR. !Eso es todo!

      3.2.2.2. Asegurese de que sus ports continuan compilando correctamente.

   Esta seccion trata sobre descubrir y solucionar problemas que impiden que
   sus ports se compilen correctamente.

   El proyecto FreeBSD solo garantiza que la coleccion de ports funcione en
   la rama -STABLE. En teoria deberia poder ejecutarse la ultima version de
   cada rama estable (ya que se espera que las ABIs no cambien) pero si
   funciona tambien en las demas ramas es aun mejor.

   Dado que la mayor parte de las instalaciones de FreeBSD se ejecutan en
   ordenadores comunes (arquitectura i386), esperamos que mantenga el port
   funcionando en esta arquitectura. Tambien preferimos que los ports
   funcionen de forma nativa en la arquitectura amd64. No dude en pedir ayuda
   si no dispone de una de estas maquinas.

  Nota:

   Los fallos habituales para ordenadores que no son x86 se producen porque
   los programadores originales asumieron que, por ejemplo, los punteros son
   ints, o que se utilizaria una version mas antigua del compilador gcc. Cada
   vez mas, los autores de las aplicaciones estan reescribiendo su codigo
   para eliminar estos fallos - pero si el autor no mantiene activamente su
   codigo, es posible que deba hacerlo usted mismo.

   Estas son las tareas que debe realizar para garantizar que su port pueda
   compilarse:

    1. Este atento a los fallos en la compilacion

       Revise su correo y busque mensajes de pkg-fallout@FreeBSD.org y revise
       el distfiles scanner para ver si alguno de los ports que mantiene y
       que no se esta compilando esta desactualizado.

    2. Recopile informacion

       Cuando encuentre algun problema recopile informacion para ayudar a
       solucionarlo. Los errores de compilacion reportados por pkg-fallout
       incluyen registros que le mostraran donde fallo la compilacion. Si un
       usuario le informo sobre el fallo pidale que le envie informacion que
       pueda ayudar a identificar el problema, como por ejemplo:

          * Logs de la compilacion

          * Los comandos y opciones utilizados para compilar el port
            (incluidas las opciones establecidas en /etc/make.conf)

          * Un listado de los paquetes instalados en su sistema, por ejemplo
            la salida del comando pkg-info(8)

          * La version de FreeBSD que esta ejecutando, es decir, la salida
            del comando uname(1) -a

          * Cuando se actualizo por ultima vez su coleccion de ports

          * Cuando se actualizo por ultima vez su arbol de ports e INDEX

    3. Investigue y encuentre una solucion

       Lamentablemente no hay un proceso a seguir que sea sencillo. Sin
       embargo, recuerde que si esta atascado puede pedir ayuda. La lista de
       correo de los ports de FreeBSD es un buen sitio para encontrarla, asi
       como los desarrolladores originales del programa.

    4. Enviar los cambios

       Al igual que con la actualizacion de un port, ahora debe incorporar
       los cambios, revisar, probar y enviar sus cambios en eun PR y
       proporcionar feedback si es necesario.

    5. Enviar parches a los autores originales

       En algunos casos necesitara aplicar parches un port para que se
       ejecute en FreeBSD. Algunos autores originales (aunque no todos)
       aceptaran incorporar dichos parches en su codigo en la proxima
       version. Si lo hacen esto podria ayudar a los usuarios de otros
       sistemas BSD y tal vez evitar duplicar esfuerzos. Como cortesia,
       recomendamos enviar los parches de este tipo a los autores originales.

      3.2.2.3. Investigue los informes de errores y PRs relacionados con su port

   Esta seccion trata sobre encontrar y corregir errores.

   Los errores especificos de FreeBSD son causados generalmente por
   suposiciones sobre los entornos de compilacion y ejecucion que no afectan
   a FreeBSD. Es poco probable que encuentre este tipo de problemas, pero
   pueden ser sutiles y dificiles de diagnosticar.

   Estas son las tareas que debe realizar para garantizar que su port
   continue funcionando segun lo previsto:

    1. Responda a los informes de errores

       Los errores le pueden llegar por correo electronico a traves del
       sistema de informe de problemas. Los usuarios tambien le pueden
       informar de los errores directamente.

       Debe responder a los PRs y otros reportes en maximo 14 dias, pero
       trate de no demorarse tanto. Intente responder lo antes posible,
       incluso si es solo para decir que necesita mas tiempo antes de empezar
       a trabajar en el PR.

       Si no ha respondido despues de 14 dias, cualquier committer puede
       realizar el commit de un PR al que no ha respondido utilizando la
       regla maintainer-timeout.

    2. Recopile informacion

       Si la persona que informo del error no ha proporcionado una solucion
       es su obligacion recopilar la suficiente informacion para proporcionar
       una.

       Si puede reproducir el error podra recoger la mayor parte de la
       informacion que necesita. Si esto no es posible solicite a la persona
       que reporto el error que le proporcione la siguiente informacion:

          * Una descripcion detallada de sus acciones, comportamiento
            esperado del programa y comportamiento real.

          * Una copia de los datos de entrada que producen el error

          * Informacion sobre su entorno de compilacion y ejecucion, por
            ejemplo, una lista de los paquetes instalados y la salida del
            comando env(1)

          * Core dumps

          * Stack traces

    3. Eliminar informes incorrectos

       Algunos informes de errores pueden ser incorrectos. Por ejemplo el
       usuario podria simplemente haber usado mal el programa, o los paquetes
       que tiene instalados pueden estar desactualizados y necesitan
       actualizarse. Algunas veces un error reportado no es especifico de
       FreeBSD. En este caso informe del error a los desarrolladores
       originales del software. Si puede corregir el error tambien puede
       aplicar el parche al port para que se aplique antes de la proxima
       version original.

    4. Encontrar una solucion

       Al igual que sucede con los errores de compilacion su tarea es
       encontrar una solucion para el problema. Una vez mas, tenga presente
       que si se atasca puede (y debe) pedir ayuda.

    5. Enviar o aprobar cambios

       Al igual que sucede con la actualizacion de un port debe incorporar
       los cambios, revisar, probar y enviar sus cambios en un PR (o hacer un
       seguimiento si ya existe un PR para el problema). Si otro usuario ha
       enviado cambios en el PR tambien puede enviar un seguimiento diciendo
       si aprueba o no los cambios.

      3.2.2.4. Proporcionar ayuda

   Parte de las funciones de un maintainer es proporcionar soporte, no para
   el software en general sino para el port y las peculiaridades y problemas
   especificos de FreeBSD. Los usuarios pueden contactarle con preguntas,
   sugerencias, problemas y parches. La mayoria de las veces seran para
   asuntos especificos de FreeBSD.

   Puede que ocasionalmente tenga que usar sus habilidades diplomaticas y
   dirigir amablemente a los usuarios que buscan asistencia tecnica hacia los
   recursos apropiados. Alguna que otra vez se encontrara con que alguien le
   preguntara que por que los RPMs no estan actualizados o que hay que hacer
   para ejecutar tal software en tal o cual distribucion de Linux. Aproveche
   la oportunidad para decirle que su port esta actualizado (si ese es el
   caso, claro). Y sugierale que pruebe FreeBSD.

   A veces, los usuarios y desarrolladores decidiran que usted es una persona
   icupada cuyo tiempo es valioso y haran parte del trabajo por usted. Por
   ejemplo, podrian:

     * enviar un PR o enviarle parches para actualizar su port

     * investigar y tal vez proporcionar una solucion a un PR o

     * incluso enviar cambios para su port.

   En estos casos su obligacion principal es responder rapidamente. Una vez
   mas, el tiempo de espera para los maintainers es de 14 dias. Despues de
   este periodo se puede realizar el commit sin aprobacion. Se han tomado la
   molestia de hacerlo por usted, asi que por lo menos intente responder lo
   mas rapido posible. Hecho esto, revise, apruebe, modifique o discuta los
   cambios con ellos lo antes posible.

   Si puede hacerles saber que su contribucion no cae en saco roto (y asi
   deberia ser) sera posible que le ayuden en otras ocasiones mas adelante
   :-).

  3.3. Encontrar y arreglar un port roto

   Hay dos lugares realmente buenos para encontrar un port que necesite
   atencion.

   Puede usar la interfaz web de la base de datos de informes de problemas
   para buscar PRs que no estan resueltos. La mayoria de los PRs relacionados
   con ports son actualizaciones, pero con un poco de investigacion y
   hojeando las sinopsis deberia encontrar algo interesante en lo que
   trabajar (la clase sw-bug es un buen lugar para empezar).

   El otro sitio es el FreeBSD Ports Monitoring System. En particular busque
   ports que no estan mantenidos, con errores de compilacion y marcados como
   BROKEN. Es totalmente correcto enviar cambios para un port que esta
   mantenido, pero recuerde preguntar al maintainer para asi saber si ya
   estan trabajando en el problema.

   Una vez que haya encontrado un error o problema recopile informacion,
   investigue y arreglelo. Si ya existe un PR haga seguimiento del PR. Si no
   existe un PR creelo. Sus cambios seran revisados. Si son correctos seran
   aceptados y se hara el commit.

  3.4. Cuando dejarlo

   En cualquier caso el Ports Management Team (portmgr) se reserva el derecho
   a revocar su estatus de maintainer si no ha mantenido activamente su port
   durante un cierto periodo de tiempo. Actualmente este periodo se establece
   en 3 meses. Es decir, que transcurran tres meses durante los que haya
   problemas no resueltos o actualizaciones pendientes que no hayan sido
   abordadas en tiempo y forma.

   En cualquier caso, el Ports Management Team (portmgr) se reserva el
   derecho a revocar su estatus de maintainer si no ha mantenido activamente
   su port durante un cierto periodo de tiempo. (Actualmente, este periodo se
   establece en 3 meses). Con esto, queremos decir que haya problemas no
   resueltos o actualizaciones pendientes que no hayan sido abordadas durante
   este periodo.

  3.5. Recursos para maintainers y colaboradores de los ports

   El Handbook del Porter es su guia de referencia para el sistema de ports.
   !Tengala a mano!

   El articulo Como enviar informes de problemas de FreeBSD describe la mejor
   forma de formular y enviar un PR. !En 2005, se enviaron mas de once mil PR
   relacionados con los ports! Seguir este articulo nos ayudara enormemente a
   reducir el tiempo necesario para lidiar con sus PRs.

   La base de datos de informes de problemas.

   El FreeBSD Ports Monitoring System puede mostrarle informacion con
   referencias cruzadas sobre los ports, como errores de compilacion e
   informes de problemas. Si es un maintainer, puede usarlo para verificar el
   estado de la compilacion de sus ports. Como colaborador, puede usarlo para
   encontrar ports rotos y sin mantenimiento que deban ser reparados.

   El FreeBSD Ports distfile scanner puede mostrarle los ports para los
   cuales los archivos distfiles no estan disponibles. Puede usarlo para
   verificar sus propios ports o para encontrar ports que necesiten
   actualizar sus MASTER_SITES.

   ports-mgmt/poudriere es la forma mas completa de probar un port a traves
   de todo el ciclo de instalacion, empaquetado y desinstalacion. La
   documentacion se encuentra en el repositorio de poudriere en github.

   portlint(1) es una aplicacion que permite verificar que su port cumple con
   muchas pautas importantes de estilo y funcionamiento. portlint es una
   aplicacion heuristica simple, por lo que solo debe utilizarla como guia.
   Si portlint sugiere cambios que parecen no tener sentido, consulte el
   Handbook del Porter o pida consejo.

   La lista de correo de ports de FreeBSD esta destinada a discusiones
   generales relacionadas con los ports. Es un buen lugar para pedir ayuda.
   Puede suscribirse, leer y buscar en los archivos historicos de la lista.
   Tambien puede ser de su interes leer los archivos de la lista de correo de
   errores en los ports de FreeBSD y los mensajes de commit en el arbol del
   codigo fuente de los ports de la rama head/.

4. Empezar en otras areas

   ?Busca algo interesante para empezar que no haya sido mencionado en el
   articulo? El proyecto FreeBSD tiene varias paginas en la wiki que
   contienen areas dentro de las cuales las nuevas personas que tengan
   interes en contribuir pueden obtener ideas sobre como empezar.

   La pagina Junior Jobs tiene una lista de proyectos que pueden ser de
   interes para las personas que acaban de empezar a usar FreeBSD y desean
   trabajar en cosas interesantes por primera vez.

   La Ideas Page contiene propuestas sobre cosas que "seria bueno tener" o
   son "interesantes" para trabajar en el proyecto.

Indice

  C

   contributing, Contribuir a FreeBSD

  D

   diff, Cambios en el codigo fuente ya existente

   documentation submissions, Cambios en la documentacion

   donations, Donar hardware

  F

   FreeBSD-CURRENT, Cambios en el codigo fuente ya existente

  P

   problem reports database, Trabaje en la base de datos de PR
