Como las comunidades crean una distribución

Alberto Rodríguez Sánchez

Nota: Perdón si no es muy técnica la charla, pero me sentí inspirado por la charla de Mark Dowd en OffensiveCon 2022

https://www.slideshare.net/MarkDowd13/rules-to-hack-by-offensivecon-2022-keynote-251318003

El proyecto Fedora

El Proyecto Fedora es una comunidad de personas que trabajan juntas para construir una plataforma de software de código abierto y libre, y para colaborar y compartir soluciones centradas en el usuario basadas en esa plataforma. O, en corto, creamos un sistema operativo y te lo facilitamos para que hagas cosas útiles con él.

Acerca de mi

Beto

(a.k.a bt0dotninja)

  • @arsandtech en Twitter.
  • @bt0dotninja en Telegram.
  • bt0dotninja@fedoraproject.org
  • bt0@fedoraproject.org
  • bt0 en Libera Chat.

Mis grupos de Trabajo

  • CommOps
  • dotnet
  • Marketing
  • Fedora-Join
  • Fedora México
  • Infra apprentice
  • MindShare
  • Fedora Council
  • Ambassadors
  • Neuro Fedora

Mis grupos de Trabajo

  • CommOps
  • dotnet
  • Marketing
  • Fedora-Join
  • Fedora México
  • MindShare
  • Fedora Coincil (hasta el 10 de mayo)
  • Infra apprentice
  • Ambassadors
  • Neuro Fedora

Actividades

  • Métricas y análisis de datos (Commops)
  • Manejo de cuenta de Youtube (Marketing)
  • Manejo de cuenta de Twitter @fedoracommunity (Marketing)
  • Software testing (dotnet)
  • Mentor en GSoC, GCI y Outreachy (Mentor General y FHP)
  • Documentación (Infra, Fedora Docs)
  • Asignación de recursos (Mindshare)
  • Buscar nuevos colaboradores (Ambassadors)
  • Mantener el Grupo de advocates (Mindshare)
  • Spin Master (Neuro Fedora)

Yo siempre

Title Text

Title Text

Como se contruye una distribución de Linux

Lobo Solitario

Como se contruye una distribución de Linux

Seleccionar la plataforma y arquitectura

Como se contruye una distribución de Linux

  • Crear Toolchain (Linker, compiler, c libs)
  • Compilar Kernel
  • Compilar y probar init
  • Adicionar más herramientas

Método iterativo

 

Virtex 2 pro

Detalles

  • Arquitectura PowerPC
  • Hasta 2Gb de RAM
  • Gigabit Ethernet
  • Kernel de linux 2.32
  • uClibc
  • Busybox
  • 32Gb de almacenamiento

Aproximadamente un año de desarrollo

 

Hace 11 años

Limitaciones

  • Una sola arquitectura
  • Resultado artesanal
  • Difícilmente reproducible
  • Poco escalable

Si queremos hacer más, necesitamos hacer comunidad.

Todas las distribuciones son downstream

  • Tomamos el software libre creado por otros proyectos (Kernel, KDE, GNOME, etc).
  • Se empaqueta buscando que se pueda integrar al resto de la distribución y que su construcción sea reproducible.

  • Hacer pruebas para identificar bugs, reportarlos, y aplicar los parches.
  • Entregar un resultado unificado y usable

Nuestros amigos colaboradores son geniales

  • SysAdmins
  • Diseñadores gráficos
  • Desarrolladores
  • Embajadores
  • Testers
  • Empaquetadores
  • y muchos mas

Organizando el realase

Rawhide

Rawhide está en constante cambio y desarrollo. Aquí entran los nuevos paquetes y cambios.

Branched

Aproximadamente cada 10 semanas (según el calendario planeado), se realiza un branch de rawhide y se inicia el desarrollo para estabilizar esa rama antes de volverse un release.

Esto significa que se considera que el desarrollo de una versión de Fedora comienza en el momento en que su "predecesor" se deriva de Rawhide.

 

Por ejemplo, el desarrollo de Fedora Linux 37 comenzó el día después de que Fedora Linux 36 se bifurcó de Rawhide y entró en el proceso de estabilización.

La versión branched debe cumplir los requisitos para que las actualizaciones se marquen como "estables" según lo establecido en la Política de actualizaciones.

 

Los paquetes deben pasar por el repositorio ''updates-testing''  antes de ingresar a su repositorio ''estable'', de acuerdo con las reglas definidas en la política de actualizaciones.

Mantenimiento

Históricamente, el Proyecto Fedora soporta dos releases más Rawhide y el código en Branched previo al lanzamiento es una carga de trabajo manejable.

End of Life (EOL)

Se dejan de construir paquetes de versiones EOL

¿Como se decide que un release esta listo?

Fedora

Cree que el software tiene que ser utilizable para ser útil, por lo que, si bien sabemos que tener releases que se ajusten a algún cronograma es importante, también nos aseguramos de que cada lanzamiento cumpla con nuestros criterios.
 

Release-blocking desktops

El conjunto actual de escritorios en esta categoría son GNOME y KDE, y para aarch64 es GNOME. Ningún escritorio bloquea la versión para ARM de 32 bits.

release-blocking images

Incluye las imágenes definidas por los tres Productos principales (Server, Workstation y Cloud) en los documentos de requisitos del producto y/o especificaciones técnicas, y la imagen en vivo de KDE.

Consejos para ser un colaborador exitoso

Asigna tiempo

Ser consciente de que muchas veces no podemos dedicar mucho tiempo al proyecto, pero comprometer digamos 4 horas a la semana es un buen comienzo.

Explica a tu familia, compañeros de trabajo y amigos que no estas en una secta.

Observa primero

Aprende de la organización y actividades del grupo al que quieres pertenecer

Escoge algo en lo quieras trabajar

Nunca inicies haciendo cosas que no gustan.

No quieras comerte el pastel de un bocado

Tomar como primera tarea algo muy grande aumenta drásticamente las probabilidades de fallar.

Lo mismo que tomar muchas tareas al tiempo.

La clave es un crecimiento lento, constante y sostenible como colaborador.

No quieras volverte el FPL como primera actividad (Por ejemplo, mi plan esa 10 años).

Contribuir vale mucho la pena

¿En que puedo contribuir?

Fedora Join Team

Crear una cuenta

Gracias

Comunidades y disitribuciones

By Alberto Rodríguez Sánchez