SlideShare uma empresa Scribd logo
1 de 31
Baixar para ler offline
What is Sabayon
         Cook your own Sabayon
                 Final thoughts




                        Recipes for




cook your own Linux distro within two hours

                 Danilo Pianini
           danilo.pianini@unibo.it

                   Linux Day 2012, Cesena


                    October 27, 2012

                  Danilo Pianini   Recipes for Sabayon
What is Sabayon
                  Cook your own Sabayon
                          Final thoughts




1   What is Sabayon
     Current status
     Brief history

2   Cook your own Sabayon
      Molecule
      Let’s create a distro!
      Who else used it?

3   Final thoughts
      Final thoughts




                           Danilo Pianini   Recipes for Sabayon
What is Sabayon
                                             Current status
                   Cook your own Sabayon
                                             Brief history
                           Final thoughts


Main features

      Built upon Gentoo
      100% Gentoo compatible
      Rolling release
      Proprietary drivers out of the box
      Short release circle
      Two package managers
      Weekly updates for everybody
      Daily updates for the skilled
      Experimental hourly updates for the advanced
      New applications hit the repo in short time
      Daily releases!

                            Danilo Pianini   Recipes for Sabayon
What is Sabayon
                                        Current status
              Cook your own Sabayon
                                        Brief history
                      Final thoughts


Desktop side (KDE)




                       Danilo Pianini   Recipes for Sabayon
What is Sabayon
                                        Current status
              Cook your own Sabayon
                                        Brief history
                      Final thoughts


Desktop side (Gnome)




                       Danilo Pianini   Recipes for Sabayon
What is Sabayon
                                        Current status
              Cook your own Sabayon
                                        Brief history
                      Final thoughts


Desktop side (MATE)




                       Danilo Pianini   Recipes for Sabayon
What is Sabayon
                                        Current status
              Cook your own Sabayon
                                        Brief history
                      Final thoughts


Desktop side (XFCE)




                       Danilo Pianini   Recipes for Sabayon
What is Sabayon
                                             Current status
                   Cook your own Sabayon
                                             Brief history
                           Final thoughts


Server side

  Server Base
      Base system, optimized for server load
      No support for graphics
      Most of the Sabayon Project infrastructure runs on Sabayon
      Server
      A simulation server in APICe runs Server Base
      The Maven webserver in APICe runs Server Base

  Hardened Server
      Built upon the Gentoo Hardened patch set
      Same as above, with strong focus on security


                            Danilo Pianini   Recipes for Sabayon
What is Sabayon
                                               Current status
                     Cook your own Sabayon
                                               Brief history
                             Final thoughts


Distro developer side


  Spin Base
       Base system
      Desktop optimized kernel
      Ready for graphical support
      Base for all the other releases

  LXDE
     Similar to XFCE
      Not officially released, but fully usable




                              Danilo Pianini   Recipes for Sabayon
What is Sabayon
                                           Current status
                 Cook your own Sabayon
                                           Brief history
                         Final thoughts


Multimedia
  KDE and GNOME editions integrate XBMC, the system can be
  booted in mediacenter mode




                          Danilo Pianini   Recipes for Sabayon
What is Sabayon
                                            Current status
                  Cook your own Sabayon
                                            Brief history
                          Final thoughts


ARM




 ARMv7a support
      BeagleBoard xM (4GB and 8GB)
      BeagleBone (2GB, 4GB, 8GB, 16GB)
      Efika MX (4GB)
      Pandaboard (4GB, 8GB)



                           Danilo Pianini   Recipes for Sabayon
What is Sabayon
                                                 Current status
                       Cook your own Sabayon
                                                 Brief history
                               Final thoughts


Why Gentoo?

  Of thousands distros out there, only few are based on Gentoo
  Pros
         Modularity
         Portability
         Extreme flexibility
         Comprehensive documentation

  Cons
      Every package must be compiled
         Complex
         Remarkable skill level required to keep the system up to date


                                Danilo Pianini   Recipes for Sabayon
What is Sabayon
                                             Current status
                   Cook your own Sabayon
                                             Brief history
                           Final thoughts


Early times




      A ready-to-use Gentoo
      Huge DVD (more than 4GB)
      Tons of pre-installed software
      Pre-configured drivers
  Notably: first distro to provide Compiz support out of the box




                            Danilo Pianini   Recipes for Sabayon
What is Sabayon
                                             Current status
                   Cook your own Sabayon
                                             Brief history
                           Final thoughts


A binary package manager


  Problem: upgrading was a hell
  Entropy
       Relies on a source package manager (Portage)
       Builds binary packages
       Fast
       Potentially, same packages of the SPM
       Upgrades become easy!

  Rolling!



                            Danilo Pianini   Recipes for Sabayon
What is Sabayon
                                             Current status
                   Cook your own Sabayon
                                             Brief history
                           Final thoughts


Automatization!




  Now that a new package manager is on the way...
      Automated upgrades of non-critical packages
      Automated generation of Sabayon ISOs (daily builds)
      Multiple repositories in order to improve reliability
      Most work is completely automatic




                            Danilo Pianini   Recipes for Sabayon
What is Sabayon     Molecule
                   Cook your own Sabayon     Let’s create a distro!
                           Final thoughts    Who else used it?


What is Molecule?


  Release metatool used for creating Sabayon (and Gentoo) releases
      Basically an automation tool
      Multiple profiles built-in
           Use a Sabayon ISO as base for a new distro
           Build a new distro from scratch
      Easy addition and removal of software
      Entry point for configuration
      Documentation is poor...
      ...but all the scripts used by the Sabayon team are available
      online



                            Danilo Pianini   Recipes for Sabayon
What is Sabayon     Molecule
                   Cook your own Sabayon     Let’s create a distro!
                           Final thoughts    Who else used it?


Getting started




      Install molecule
          equo install molecule
      Download the examples
          git://git.sabayon.org/projects/molecules.git




                            Danilo Pianini   Recipes for Sabayon
What is Sabayon     Molecule
                   Cook your own Sabayon     Let’s create a distro!
                           Final thoughts    Who else used it?


Photoyon Linux
  Let’s build a photographers oriented distro upon the normal
  Sabayon KDE!
      KDE environment
      Digikam
      GQView
      RAW Therapee
      Hugin
      GIMP
      Inkscape
      Kdenlive
      Google Picasa
  Note: it would make more sense to start from Spin Base, but the
  files end up being a bit too long for being presented here!
                            Danilo Pianini   Recipes for Sabayon
What is Sabayon     Molecule
                   Cook your own Sabayon     Let’s create a distro!
                           Final thoughts    Who else used it?


Spec file


  Let’s take clue from the amd64 KDE spec file
  %env %import PATH/TO/kde.common

  release_version: 1.0

  release_desc: amd64

  %env source_iso: /PATH/TO/Sabayon_Linux_DAILY_amd64_K.iso

  destination_iso_image_name: Photoyon_1.0_amd64.iso




                            Danilo Pianini   Recipes for Sabayon
What is Sabayon     Molecule
                   Cook your own Sabayon     Let’s create a distro!
                           Final thoughts    Who else used it?


kde.common
  execution_strategy: iso_remaster

  release_string: Photoyon Linux
  release_file: /etc/sabayon-edition
  iso_title: Photoyon 1.0
  extra_mksquashfs_parameters: -comp xz -Xbcj x86

  # Outer chroot script command - BEFORE
  %env outer_chroot_script: /PATH/TO/scripts/remaster_pre.sh
  # Inner chroot script - BEFORE
  %env inner_chroot_script: /PATH/TO/scripts/remaster_generic_inner_chroot
  # Inner chroot script command - AFTER
  %env inner_chroot_script_after: /PATH/TO/scripts/remaster_generic_inner_
  # Outer chroot script command -AFTER
  %env outer_chroot_script_after: /PATH/TO/scripts/remaster_post.sh

  destination_iso_directory: /PATH/TO/OUTPUT/FOLDER/

  ...
                            Danilo Pianini   Recipes for Sabayon
What is Sabayon     Molecule
                   Cook your own Sabayon     Let’s create a distro!
                           Final thoughts    Who else used it?


kde.common


  ...
  # List of packages that would be removed from chrooted system
  packages_to_remove:
  app-misc/sabayon-mce,
  kde-base/libkdegames,
  kde-base/kontact
  kde-base/kopete,
  kde-base/klipper,
  kde-base/korganizer,
  media-sound/clementine,
  media-tv/xbmc,
  net-irc/konversation,
  net-libs/libktorrent
  ...



                            Danilo Pianini   Recipes for Sabayon
What is Sabayon     Molecule
                   Cook your own Sabayon     Let’s create a distro!
                           Final thoughts    Who else used it?


kde.common


  ...
  # List of packages that would be added to chrooted system
  packages_to_add:
  media-gfx/digikam
  media-gfx/gimp,
  media-gfx/gqview,
  media-gfx/hugin,
  media-gfx/inkscape,
  media-gfx/picasa,
  media-gfx/rawtherapee,
  media-video/kdenlive
  ...




                            Danilo Pianini   Recipes for Sabayon
What is Sabayon     Molecule
                   Cook your own Sabayon     Let’s create a distro!
                           Final thoughts    Who else used it?


remaster pre


  #!/bin/sh
  PKGS_DIR="/var/lib/entropy/client/packages"
  CHROOT_PKGS_DIR="${CHROOT_DIR}/var/lib/entropy/client/packages"

  [[ ! -d "${PKGS_DIR}" ]] && mkdir -p "${PKGS_DIR}"
  [[ ! -d "${CHROOT_PKGS_DIR}" ]] && mkdir -p "${CHROOT_PKGS_DIR}"

  echo "Mounting packages over"
  rm -rf "${CHROOT_PKGS_DIR}"/*
  echo "Mounting bind to ${CHROOT_PKGS_DIR}"
  mount --bind "${PKGS_DIR}" "${CHROOT_PKGS_DIR}" || exit 1
  mount -t proc proc "${CHROOT_DIR}/proc"

  exit 0



                            Danilo Pianini   Recipes for Sabayon
What is Sabayon     Molecule
                   Cook your own Sabayon     Let’s create a distro!
                           Final thoughts    Who else used it?


inner scripts




  Inner scripts configure the various services
  Modify them only if you need something different in your rc




                            Danilo Pianini   Recipes for Sabayon
What is Sabayon     Molecule
                    Cook your own Sabayon     Let’s create a distro!
                            Final thoughts    Who else used it?


Edit a skel

      The defaults for a new user are stored in /etc/skel
      You can copy them, then add new configurations, or modify
      the existing.
      New users will inherit your defaults, if you pull them within
      the ISO (use the remaster post script to do it!)

  Raw but effective way
      Create a first revision of your distro with the default skel
      Start the applications whose defaults are not satisfying
      Set them up as you wish
      Close the applications
      Copy the configuration within your personalised skel

                             Danilo Pianini   Recipes for Sabayon
What is Sabayon     Molecule
                     Cook your own Sabayon     Let’s create a distro!
                             Final thoughts    Who else used it?


remaster post
  #!/bin/sh
  PKGS_DIR="/var/lib/entropy/client/packages"
  CHROOT_PKGS_DIR="${CHROOT_DIR}/var/lib/entropy/client/packages"
  CHROOT_SKEL_DIR="${CHROOT_DIR}/etc/skel"
  SKEL_DIR="/PATH/TO/YOUR/skel"

  rm -rf CHROOT_SKEL_DIR
  cp -r SKEL_DIR CHROOT_SKEL_DIR

  # make   sure to not leak /proc
  umount   "${CHROOT_DIR}/proc" &> /dev/null
  umount   "${CHROOT_DIR}/proc" &> /dev/null
  umount   "${CHROOT_DIR}/proc" &> /dev/null

  echo "Umounting bind to ${CHROOT_PKGS_DIR}"
  umount "${CHROOT_PKGS_DIR}" || exit 1

  exit 0
                              Danilo Pianini   Recipes for Sabayon
What is Sabayon     Molecule
               Cook your own Sabayon     Let’s create a distro!
                       Final thoughts    Who else used it?


Sabayon Forensics




                        Danilo Pianini   Recipes for Sabayon
What is Sabayon     Molecule
               Cook your own Sabayon     Let’s create a distro!
                       Final thoughts    Who else used it?


Grusha Linux




                        Danilo Pianini   Recipes for Sabayon
What is Sabayon
                      Cook your own Sabayon     Final thoughts
                              Final thoughts


Final thoughts
  Sabayon
      Rolling release
      Wide spectrum of applications
      Daily relases
      Wide repositories
      Many flavors
      Gentoo compatibility

  Molecule
      Allows to create a new distro in a couple of hours
      Automatizes the creation process
      Little scripting skills required
      Ideal for small-team distro development
                               Danilo Pianini   Recipes for Sabayon
What is Sabayon
                   Cook your own Sabayon     Final thoughts
                           Final thoughts


Join the team!


      The team counts about twenty people
      Different nationalities (English is a requirement)
      They normally hang on IRC (#sabayon and #sabayon-dev)
      Very collaborative environment
      If you want to improve the distribution:
          Learn: ssh, screen, rsync, Portage, layman
          Ask for joining the team
          You will receive serverside-Entropy training
          You will be among those who forge Sabayon




                            Danilo Pianini   Recipes for Sabayon
What is Sabayon
         Cook your own Sabayon     Final thoughts
                 Final thoughts




                        Recipes for




cook your own Linux distro within two hours

                 Danilo Pianini
           danilo.pianini@unibo.it

                   Linux Day 2012, Cesena


                    October 27, 2012

                  Danilo Pianini   Recipes for Sabayon

Mais conteúdo relacionado

Destaque

From Engineer to Alchemist, There and Back Again: An Alchemist Tale
From Engineer to Alchemist, There and Back Again: An Alchemist TaleFrom Engineer to Alchemist, There and Back Again: An Alchemist Tale
From Engineer to Alchemist, There and Back Again: An Alchemist TaleDanilo Pianini
 
Software development made serious
Software development made seriousSoftware development made serious
Software development made seriousDanilo Pianini
 
SAPERE WP1 Alchemist status at 02/2013
SAPERE WP1 Alchemist status at 02/2013SAPERE WP1 Alchemist status at 02/2013
SAPERE WP1 Alchemist status at 02/2013Danilo Pianini
 
Protelis: Practical Aggregate Programming - Symposium on Applied Computing (S...
Protelis: Practical Aggregate Programming - Symposium on Applied Computing (S...Protelis: Practical Aggregate Programming - Symposium on Applied Computing (S...
Protelis: Practical Aggregate Programming - Symposium on Applied Computing (S...Danilo Pianini
 
Engineering Complex Computational Ecosystems (PhD defense)
Engineering Complex Computational Ecosystems (PhD defense)Engineering Complex Computational Ecosystems (PhD defense)
Engineering Complex Computational Ecosystems (PhD defense)Danilo Pianini
 
Extending the Gillespie's Stochastic Simulation Algorithm for Integrating Dis...
Extending the Gillespie's Stochastic Simulation Algorithm for Integrating Dis...Extending the Gillespie's Stochastic Simulation Algorithm for Integrating Dis...
Extending the Gillespie's Stochastic Simulation Algorithm for Integrating Dis...Danilo Pianini
 

Destaque (6)

From Engineer to Alchemist, There and Back Again: An Alchemist Tale
From Engineer to Alchemist, There and Back Again: An Alchemist TaleFrom Engineer to Alchemist, There and Back Again: An Alchemist Tale
From Engineer to Alchemist, There and Back Again: An Alchemist Tale
 
Software development made serious
Software development made seriousSoftware development made serious
Software development made serious
 
SAPERE WP1 Alchemist status at 02/2013
SAPERE WP1 Alchemist status at 02/2013SAPERE WP1 Alchemist status at 02/2013
SAPERE WP1 Alchemist status at 02/2013
 
Protelis: Practical Aggregate Programming - Symposium on Applied Computing (S...
Protelis: Practical Aggregate Programming - Symposium on Applied Computing (S...Protelis: Practical Aggregate Programming - Symposium on Applied Computing (S...
Protelis: Practical Aggregate Programming - Symposium on Applied Computing (S...
 
Engineering Complex Computational Ecosystems (PhD defense)
Engineering Complex Computational Ecosystems (PhD defense)Engineering Complex Computational Ecosystems (PhD defense)
Engineering Complex Computational Ecosystems (PhD defense)
 
Extending the Gillespie's Stochastic Simulation Algorithm for Integrating Dis...
Extending the Gillespie's Stochastic Simulation Algorithm for Integrating Dis...Extending the Gillespie's Stochastic Simulation Algorithm for Integrating Dis...
Extending the Gillespie's Stochastic Simulation Algorithm for Integrating Dis...
 

Mais de Danilo Pianini

Time fluid field-based Coordination
Time fluid field-based CoordinationTime fluid field-based Coordination
Time fluid field-based CoordinationDanilo Pianini
 
Engineering the Aggregate - Talk at Software Engineering for Intelligent and ...
Engineering the Aggregate - Talk at Software Engineering for Intelligent and ...Engineering the Aggregate - Talk at Software Engineering for Intelligent and ...
Engineering the Aggregate - Talk at Software Engineering for Intelligent and ...Danilo Pianini
 
Versioning and License selection
Versioning and License selectionVersioning and License selection
Versioning and License selectionDanilo Pianini
 
Continuous Integration
Continuous IntegrationContinuous Integration
Continuous IntegrationDanilo Pianini
 
Enforce reproducibility: dependency management and build automation
Enforce reproducibility: dependency management and build automationEnforce reproducibility: dependency management and build automation
Enforce reproducibility: dependency management and build automationDanilo Pianini
 
Productive parallel teamwork: Decentralized Version Control Systems
Productive parallel teamwork: Decentralized Version Control SystemsProductive parallel teamwork: Decentralized Version Control Systems
Productive parallel teamwork: Decentralized Version Control SystemsDanilo Pianini
 
Computational Fields meet Augmented Reality: Perspectives and Challenges
Computational Fields meet Augmented Reality: Perspectives and ChallengesComputational Fields meet Augmented Reality: Perspectives and Challenges
Computational Fields meet Augmented Reality: Perspectives and ChallengesDanilo Pianini
 
Practical Aggregate Programming with Protelis @ SASO2017
Practical Aggregate Programming with Protelis @ SASO2017Practical Aggregate Programming with Protelis @ SASO2017
Practical Aggregate Programming with Protelis @ SASO2017Danilo Pianini
 
Towards a Foundational API for Resilient Distributed Systems Design
Towards a Foundational API for Resilient Distributed Systems DesignTowards a Foundational API for Resilient Distributed Systems Design
Towards a Foundational API for Resilient Distributed Systems DesignDanilo Pianini
 
Continuous integration and delivery
Continuous integration and deliveryContinuous integration and delivery
Continuous integration and deliveryDanilo Pianini
 

Mais de Danilo Pianini (10)

Time fluid field-based Coordination
Time fluid field-based CoordinationTime fluid field-based Coordination
Time fluid field-based Coordination
 
Engineering the Aggregate - Talk at Software Engineering for Intelligent and ...
Engineering the Aggregate - Talk at Software Engineering for Intelligent and ...Engineering the Aggregate - Talk at Software Engineering for Intelligent and ...
Engineering the Aggregate - Talk at Software Engineering for Intelligent and ...
 
Versioning and License selection
Versioning and License selectionVersioning and License selection
Versioning and License selection
 
Continuous Integration
Continuous IntegrationContinuous Integration
Continuous Integration
 
Enforce reproducibility: dependency management and build automation
Enforce reproducibility: dependency management and build automationEnforce reproducibility: dependency management and build automation
Enforce reproducibility: dependency management and build automation
 
Productive parallel teamwork: Decentralized Version Control Systems
Productive parallel teamwork: Decentralized Version Control SystemsProductive parallel teamwork: Decentralized Version Control Systems
Productive parallel teamwork: Decentralized Version Control Systems
 
Computational Fields meet Augmented Reality: Perspectives and Challenges
Computational Fields meet Augmented Reality: Perspectives and ChallengesComputational Fields meet Augmented Reality: Perspectives and Challenges
Computational Fields meet Augmented Reality: Perspectives and Challenges
 
Practical Aggregate Programming with Protelis @ SASO2017
Practical Aggregate Programming with Protelis @ SASO2017Practical Aggregate Programming with Protelis @ SASO2017
Practical Aggregate Programming with Protelis @ SASO2017
 
Towards a Foundational API for Resilient Distributed Systems Design
Towards a Foundational API for Resilient Distributed Systems DesignTowards a Foundational API for Resilient Distributed Systems Design
Towards a Foundational API for Resilient Distributed Systems Design
 
Continuous integration and delivery
Continuous integration and deliveryContinuous integration and delivery
Continuous integration and delivery
 

Recipes for Sabayon: cook your own Linux distro within two hours

  • 1. What is Sabayon Cook your own Sabayon Final thoughts Recipes for cook your own Linux distro within two hours Danilo Pianini danilo.pianini@unibo.it Linux Day 2012, Cesena October 27, 2012 Danilo Pianini Recipes for Sabayon
  • 2. What is Sabayon Cook your own Sabayon Final thoughts 1 What is Sabayon Current status Brief history 2 Cook your own Sabayon Molecule Let’s create a distro! Who else used it? 3 Final thoughts Final thoughts Danilo Pianini Recipes for Sabayon
  • 3. What is Sabayon Current status Cook your own Sabayon Brief history Final thoughts Main features Built upon Gentoo 100% Gentoo compatible Rolling release Proprietary drivers out of the box Short release circle Two package managers Weekly updates for everybody Daily updates for the skilled Experimental hourly updates for the advanced New applications hit the repo in short time Daily releases! Danilo Pianini Recipes for Sabayon
  • 4. What is Sabayon Current status Cook your own Sabayon Brief history Final thoughts Desktop side (KDE) Danilo Pianini Recipes for Sabayon
  • 5. What is Sabayon Current status Cook your own Sabayon Brief history Final thoughts Desktop side (Gnome) Danilo Pianini Recipes for Sabayon
  • 6. What is Sabayon Current status Cook your own Sabayon Brief history Final thoughts Desktop side (MATE) Danilo Pianini Recipes for Sabayon
  • 7. What is Sabayon Current status Cook your own Sabayon Brief history Final thoughts Desktop side (XFCE) Danilo Pianini Recipes for Sabayon
  • 8. What is Sabayon Current status Cook your own Sabayon Brief history Final thoughts Server side Server Base Base system, optimized for server load No support for graphics Most of the Sabayon Project infrastructure runs on Sabayon Server A simulation server in APICe runs Server Base The Maven webserver in APICe runs Server Base Hardened Server Built upon the Gentoo Hardened patch set Same as above, with strong focus on security Danilo Pianini Recipes for Sabayon
  • 9. What is Sabayon Current status Cook your own Sabayon Brief history Final thoughts Distro developer side Spin Base Base system Desktop optimized kernel Ready for graphical support Base for all the other releases LXDE Similar to XFCE Not officially released, but fully usable Danilo Pianini Recipes for Sabayon
  • 10. What is Sabayon Current status Cook your own Sabayon Brief history Final thoughts Multimedia KDE and GNOME editions integrate XBMC, the system can be booted in mediacenter mode Danilo Pianini Recipes for Sabayon
  • 11. What is Sabayon Current status Cook your own Sabayon Brief history Final thoughts ARM ARMv7a support BeagleBoard xM (4GB and 8GB) BeagleBone (2GB, 4GB, 8GB, 16GB) Efika MX (4GB) Pandaboard (4GB, 8GB) Danilo Pianini Recipes for Sabayon
  • 12. What is Sabayon Current status Cook your own Sabayon Brief history Final thoughts Why Gentoo? Of thousands distros out there, only few are based on Gentoo Pros Modularity Portability Extreme flexibility Comprehensive documentation Cons Every package must be compiled Complex Remarkable skill level required to keep the system up to date Danilo Pianini Recipes for Sabayon
  • 13. What is Sabayon Current status Cook your own Sabayon Brief history Final thoughts Early times A ready-to-use Gentoo Huge DVD (more than 4GB) Tons of pre-installed software Pre-configured drivers Notably: first distro to provide Compiz support out of the box Danilo Pianini Recipes for Sabayon
  • 14. What is Sabayon Current status Cook your own Sabayon Brief history Final thoughts A binary package manager Problem: upgrading was a hell Entropy Relies on a source package manager (Portage) Builds binary packages Fast Potentially, same packages of the SPM Upgrades become easy! Rolling! Danilo Pianini Recipes for Sabayon
  • 15. What is Sabayon Current status Cook your own Sabayon Brief history Final thoughts Automatization! Now that a new package manager is on the way... Automated upgrades of non-critical packages Automated generation of Sabayon ISOs (daily builds) Multiple repositories in order to improve reliability Most work is completely automatic Danilo Pianini Recipes for Sabayon
  • 16. What is Sabayon Molecule Cook your own Sabayon Let’s create a distro! Final thoughts Who else used it? What is Molecule? Release metatool used for creating Sabayon (and Gentoo) releases Basically an automation tool Multiple profiles built-in Use a Sabayon ISO as base for a new distro Build a new distro from scratch Easy addition and removal of software Entry point for configuration Documentation is poor... ...but all the scripts used by the Sabayon team are available online Danilo Pianini Recipes for Sabayon
  • 17. What is Sabayon Molecule Cook your own Sabayon Let’s create a distro! Final thoughts Who else used it? Getting started Install molecule equo install molecule Download the examples git://git.sabayon.org/projects/molecules.git Danilo Pianini Recipes for Sabayon
  • 18. What is Sabayon Molecule Cook your own Sabayon Let’s create a distro! Final thoughts Who else used it? Photoyon Linux Let’s build a photographers oriented distro upon the normal Sabayon KDE! KDE environment Digikam GQView RAW Therapee Hugin GIMP Inkscape Kdenlive Google Picasa Note: it would make more sense to start from Spin Base, but the files end up being a bit too long for being presented here! Danilo Pianini Recipes for Sabayon
  • 19. What is Sabayon Molecule Cook your own Sabayon Let’s create a distro! Final thoughts Who else used it? Spec file Let’s take clue from the amd64 KDE spec file %env %import PATH/TO/kde.common release_version: 1.0 release_desc: amd64 %env source_iso: /PATH/TO/Sabayon_Linux_DAILY_amd64_K.iso destination_iso_image_name: Photoyon_1.0_amd64.iso Danilo Pianini Recipes for Sabayon
  • 20. What is Sabayon Molecule Cook your own Sabayon Let’s create a distro! Final thoughts Who else used it? kde.common execution_strategy: iso_remaster release_string: Photoyon Linux release_file: /etc/sabayon-edition iso_title: Photoyon 1.0 extra_mksquashfs_parameters: -comp xz -Xbcj x86 # Outer chroot script command - BEFORE %env outer_chroot_script: /PATH/TO/scripts/remaster_pre.sh # Inner chroot script - BEFORE %env inner_chroot_script: /PATH/TO/scripts/remaster_generic_inner_chroot # Inner chroot script command - AFTER %env inner_chroot_script_after: /PATH/TO/scripts/remaster_generic_inner_ # Outer chroot script command -AFTER %env outer_chroot_script_after: /PATH/TO/scripts/remaster_post.sh destination_iso_directory: /PATH/TO/OUTPUT/FOLDER/ ... Danilo Pianini Recipes for Sabayon
  • 21. What is Sabayon Molecule Cook your own Sabayon Let’s create a distro! Final thoughts Who else used it? kde.common ... # List of packages that would be removed from chrooted system packages_to_remove: app-misc/sabayon-mce, kde-base/libkdegames, kde-base/kontact kde-base/kopete, kde-base/klipper, kde-base/korganizer, media-sound/clementine, media-tv/xbmc, net-irc/konversation, net-libs/libktorrent ... Danilo Pianini Recipes for Sabayon
  • 22. What is Sabayon Molecule Cook your own Sabayon Let’s create a distro! Final thoughts Who else used it? kde.common ... # List of packages that would be added to chrooted system packages_to_add: media-gfx/digikam media-gfx/gimp, media-gfx/gqview, media-gfx/hugin, media-gfx/inkscape, media-gfx/picasa, media-gfx/rawtherapee, media-video/kdenlive ... Danilo Pianini Recipes for Sabayon
  • 23. What is Sabayon Molecule Cook your own Sabayon Let’s create a distro! Final thoughts Who else used it? remaster pre #!/bin/sh PKGS_DIR="/var/lib/entropy/client/packages" CHROOT_PKGS_DIR="${CHROOT_DIR}/var/lib/entropy/client/packages" [[ ! -d "${PKGS_DIR}" ]] && mkdir -p "${PKGS_DIR}" [[ ! -d "${CHROOT_PKGS_DIR}" ]] && mkdir -p "${CHROOT_PKGS_DIR}" echo "Mounting packages over" rm -rf "${CHROOT_PKGS_DIR}"/* echo "Mounting bind to ${CHROOT_PKGS_DIR}" mount --bind "${PKGS_DIR}" "${CHROOT_PKGS_DIR}" || exit 1 mount -t proc proc "${CHROOT_DIR}/proc" exit 0 Danilo Pianini Recipes for Sabayon
  • 24. What is Sabayon Molecule Cook your own Sabayon Let’s create a distro! Final thoughts Who else used it? inner scripts Inner scripts configure the various services Modify them only if you need something different in your rc Danilo Pianini Recipes for Sabayon
  • 25. What is Sabayon Molecule Cook your own Sabayon Let’s create a distro! Final thoughts Who else used it? Edit a skel The defaults for a new user are stored in /etc/skel You can copy them, then add new configurations, or modify the existing. New users will inherit your defaults, if you pull them within the ISO (use the remaster post script to do it!) Raw but effective way Create a first revision of your distro with the default skel Start the applications whose defaults are not satisfying Set them up as you wish Close the applications Copy the configuration within your personalised skel Danilo Pianini Recipes for Sabayon
  • 26. What is Sabayon Molecule Cook your own Sabayon Let’s create a distro! Final thoughts Who else used it? remaster post #!/bin/sh PKGS_DIR="/var/lib/entropy/client/packages" CHROOT_PKGS_DIR="${CHROOT_DIR}/var/lib/entropy/client/packages" CHROOT_SKEL_DIR="${CHROOT_DIR}/etc/skel" SKEL_DIR="/PATH/TO/YOUR/skel" rm -rf CHROOT_SKEL_DIR cp -r SKEL_DIR CHROOT_SKEL_DIR # make sure to not leak /proc umount "${CHROOT_DIR}/proc" &> /dev/null umount "${CHROOT_DIR}/proc" &> /dev/null umount "${CHROOT_DIR}/proc" &> /dev/null echo "Umounting bind to ${CHROOT_PKGS_DIR}" umount "${CHROOT_PKGS_DIR}" || exit 1 exit 0 Danilo Pianini Recipes for Sabayon
  • 27. What is Sabayon Molecule Cook your own Sabayon Let’s create a distro! Final thoughts Who else used it? Sabayon Forensics Danilo Pianini Recipes for Sabayon
  • 28. What is Sabayon Molecule Cook your own Sabayon Let’s create a distro! Final thoughts Who else used it? Grusha Linux Danilo Pianini Recipes for Sabayon
  • 29. What is Sabayon Cook your own Sabayon Final thoughts Final thoughts Final thoughts Sabayon Rolling release Wide spectrum of applications Daily relases Wide repositories Many flavors Gentoo compatibility Molecule Allows to create a new distro in a couple of hours Automatizes the creation process Little scripting skills required Ideal for small-team distro development Danilo Pianini Recipes for Sabayon
  • 30. What is Sabayon Cook your own Sabayon Final thoughts Final thoughts Join the team! The team counts about twenty people Different nationalities (English is a requirement) They normally hang on IRC (#sabayon and #sabayon-dev) Very collaborative environment If you want to improve the distribution: Learn: ssh, screen, rsync, Portage, layman Ask for joining the team You will receive serverside-Entropy training You will be among those who forge Sabayon Danilo Pianini Recipes for Sabayon
  • 31. What is Sabayon Cook your own Sabayon Final thoughts Final thoughts Recipes for cook your own Linux distro within two hours Danilo Pianini danilo.pianini@unibo.it Linux Day 2012, Cesena October 27, 2012 Danilo Pianini Recipes for Sabayon