Difference between pages "Xfce Guide" and "FLOP:Release Engineering"

From Funtoo
(Difference between pages)
Jump to: navigation, search
 
m (removed all references of chinchilla)
 
Line 1: Line 1:
== Xfce Guide ==
+
{{FLOP
So after you have successfully set up Funtoo you might want to add a new desktop environment to the mix. This means installing Xorg and, in this case, XFCE.  
+
|Created on=2013/07/28
Set your <tt>VIDEO_CARD</tt> to what you have and your <tt>INPUT_DEVICES</tt> set as well in your <tt>make.conf</tt>.
+
|Author=Jonathan Vasquez
First thing to do is makes sure that the "udev" is in your USE flags. We're going to set these in <tt>/etc/portage/package.use</tt>. After that we're going to install <tt>xorg-server</tt>. Just emerge it.
+
|Maintainer=Jonathan Vasquez
 +
}}
 +
=== Introduction ===
 +
 
 +
This is a proposal to implement a strong release engineering infrastructure for Funtoo Linux. Funtoo is currently only a rolling-release distro and does not have the option to have another pace. In order to create a more stable, maintainable, and predictable Funtoo, this proposal will be offering a few things that can be done to make that happen.
 +
 
 +
This proposal will not change Funtoo from being a rolling release distro, but it will instead simply add the option to also run at another pace.
 +
 
 +
Funtoo will also not become a binary distro and will remain primarily a source based one. However, binaries do provide various advantages that allow users to have faster deployments or easier disaster recovery. For this reason Funtoo will make available binary packages for the most time consuming, and most commonly used applications.
 +
 
 +
This will make Funtoo a much more stable, maintainable, and predictable distro.
 +
 
 +
The following things are proposed:
 +
* Semi-Rolling Releases
 +
* A Complete OS
 +
* Funtoo Binary Platform
 +
 
 +
=== Semi-Rolling Releases ===
 +
 
 +
The semi-rolling release model is a hybrid between a rolling release and a non-rolling release. This means that instead of bring new packages in all the time (rolling release), and instead of just completely freezing everything and bringing new packages/features every X months, we can have a middle ground where we can quickly and easily branch our Portage Git Tree, and focus on stabilizing it. Once we stabilize it, people can use it without having to worry about major version upgrades. The user can then use this branch until a later branch is created, and can easily upgrade to the new branch by switching their profile to the new version.
 +
 
 +
==== New Funtoo Profiles for Releases ====
 +
 
 +
Since we want to provide users the ability to easily enter and exit into a semi-rolling state, new profiles will be added periodically.
 +
 
 +
The first and main branch for development is the “current” branch. This is the same branch that everyone is using and that is the traditional rolling release branch.
 +
 
 +
The second branch is the “stable” branch. This is the same stable branch that is available today, also using a rolling release approach and that uses ‘arch’ and other masks in order to provide stability.
 +
 
 +
The new branches are considered semi-rolling branches. These branches configure your system to follow the branch selected. This funtoo branch will not introduce any major version changes and will only include tree fixes (bugs or ebuild) and security updates.
 +
 
 +
Example:
 +
 
 +
Let's say we have a release called Funtoo 14.1 and that it was released in January 2014. In order to use this release you can select this it from the profile module:
 +
 
 
<console>
 
<console>
# ##i## echo "x11-base/xorg-sever udev" >> /etc/portage/package.use
+
# ##i##eselect profile set-build 5
# ##i## emerge x11-base/xorg-server
+
# ##i##eselect profile list
 +
Currently available arch profiles:
 +
[1] funtoo/1.0/linux-gnu/arch/x86-64bit *
 +
[2] funtoo/1.0/linux-gnu/arch/pure64
 +
Currently available build profiles:
 +
[3] funtoo/1.0/linux-gnu/build/stable
 +
[4] funtoo/1.0/linux-gnu/build/current
 +
[5] funtoo/1.0/linux-gnu/build/14.1 *
 +
Currently available flavor profiles:
 +
[6] funtoo/1.0/linux-gnu/flavor/minimal
 +
[7] funtoo/1.0/linux-gnu/flavor/core *
 +
[8] funtoo/1.0/linux-gnu/flavor/desktop
 +
[9] funtoo/1.0/linux-gnu/flavor/workstation
 +
[10] funtoo/1.0/linux-gnu/flavor/hardened
 
</console>
 
</console>
After that's done X should work out of the box. You can run this command though to make sure it works. This will configure X for you, and set a new <tt>/etc/X11/xorg.conf</tt> for you. Need to copy it in though.
+
 
<console>
+
Once a new semi-rolling branch is released, you can change your profile to point to it. Semi-rolling releases are made to freeze the distro for the short term, and upgrading to the next semi-rolling release is recommended. New semi-rolling branches act as "upgrade packs" since you will just be getting a new set of applications that won't be changing drastically for another 4 months. There will most likely be a “Long Term” semi-rolling releases as well for people that do not like to update every 4 months.
# ##i## X -configure
+
 
# ##i## cp /root/xorg.conf.new /etc/X11/xorg.conf
+
In the event that you do not update for various releases, a full system reinstall is recommended since a lot of things change over time including toolchain updates that have cascading effects.
</console>
+
 
Now, we will set our sights on installing XFCE.
+
==== Example of 4 Month Release Cycle ====
You're going to want to add some USE flags to your <tt>/etc/make.conf</tt>, I would reccomend <tt>USE="-gnome -kde -minimal -qt4 dbus jpeg lock session startup-notification thunar udev X"</tt>. Just add them to your <tt>make.conf</tt>. 
+
 
And now we are ready to install XFCE. In a recent change a dependency for <tt>Thunar</tt>, it wants to bring in <tt>sys-fs/udisks-1.99</tt> which is a dependency of <tt>sys-fs/udev-180</tt> which is not available. The fix is to emerge <tt>gnome-base/gvfs-1.10.*</tt> and mask anything above it and mask <tt>sys-fs/udisks-1.99</tt> in <tt>/etc/portage/package.mask</tt>. You also need to get a Terminal emulator as well, i.e <tt>x11-terms/terminal</tt>
+
* Funtoo 14.1 (January 2014)
<console>
+
* Funtoo 14.2 (May 2014)
# ##i## emerge xfce-base/xfce4-meta x11-terms/terminal
+
* Funtoo 14.3 (September 2014)
# ##i## env-update && source /etc/profile
+
* Funtoo 15.1 (January 2015)
</console>
+
 
There's a few ways to go about starting XFCE. You can either have it run with <tt>startx</tt> or install a display manager, or login manager, i.e LXDM, GDM, KDM, etc.  
+
==== Which branch is for what person? ====
If you want it to run with <tt>startx</tt>
+
The “current” branch is for people who want to be on the bleeding edge all the time. You will get the latest updates, and here is where all the development happens. Your system might not be fully stable all the time, and things might fail to compile. This is the traditional Funtoo rolling release model. If you want to continue using your system the way it has always been, this is the branch for you.
<console>
+
 
# ##i## echo "exec startxfce4" >> ~/.xinitrc
+
The “stable” branch is for people who still want to be using the rolling release model but want to depend on the traditional method of ebuild’s hiding newer versions based on “~”.
</console>
+
 
If you want XFCE to run at boot add xdm to rc-update. In which case you need a login manager.
+
The new frozen branches are for people who don’t want a lot of updates but would rather have a more stable version of the “current” tree that is audited for stability.
<console>
+
 
# ##i## rc-update add xdm default
+
=== A Complete OS ===
</console>
+
 
There's a few to go along with, but for a lightweight one either <tt>lxde-base/lxdm</tt> or <tt>x11-misc/slim</tt>
+
An operating system is not just a stage3 tarball. The stage3 is incomplete and requires the user to compile their own kernel and bootloader before being able to use their system. We should have a stage which includes a well tested kernel, bootloader, and other utilities necessary for an user to deploy their system. This will speed up deployments and will provide predictability for kernel modules, and other applications that rely on a kernel.
<console>
+
 
# ##i## emerge -av x11-misc/slim
+
The fundamental and primary contents of a stage3 is to have a full @system, and nothing more. A stage4 would be the next iteration which includes the stage3, a kernel, bootloader, and other utilities necessary for an user to deploy their system.
</console>
+
 
Or for <tt>lxde-base/lxdm</tt>
+
=== Funtoo Binary Platform ===
<console>
+
 
# ##i## emerge lxde-base/lxdm
+
The Funtoo Binary Platform is intended to provide binaries for the most time consuming and most commonly used applications in the Funtoo Community. There are applications that will not be provided in the the FBP. Examples of these applications are applications that require a kernel for compilation, applications that require explicit license acceptance, or applications that cannot be distributed due to certain patents/copyright issues.
</console>
+
 
Whichever you choose to use you need to add it to <tt>/etc/conf.d/xdm</tt>:
+
Example of some applications that can be in the FBP can be found at the link below:
<tt>DISPLAYMANAGER="slim"</tt>
+
 
<tt>DISPLAYMANAGER="lxdm"</tt>
+
https://docs.google.com/spreadsheet/ccc?key=0Aj4WbXLCgD5KdGd2Mm1VYlBzanVHMXVQU0RTN1RtX3c&usp=sharing
For <tt>SLiM</tt> you need to add XFCE to <tt>/etc/env.d/90xsession</tt>
+
 
<console>
+
[[Category:Internals]]
# ##i## echo XSESSION=\"Xfce4\" >> /etc/env.d/90xsession
+
[[Category:FLOP]]
# ##i## env-update && source /etc/profile
+
{{FLOPFooter}}
</console>
+
Either reboot or <tt>startx</tt>.
+
<br />There are a lot of plugins available for <tt>Thunar</tt> and XFCE. A simple <tt>emerge -s</tt> will do. Such as:
+
<br /><tt>*  xfce-extra/thunar-volman
+
<br />Description:  Daemon that enforces volume-related policies
+
<br />*  xfce-extra/thunar-vcs-plugin
+
<br />Description:  adds Subversion and GIT actions to the context menu of thunar
+
<br />*  xfce-extra/thunar-shares-plugin
+
<br />Description:  Thunar plugin to share files using Samba
+
<br />*  xfce-extra/thunar-archive-plugin
+
<br />Description:  Archive plug-in for the Thunar filemanager
+
<br />*  xfce-extra/xfce4-volumed
+
<br />Description:   Daemon to control volume up/down and mute keys
+
<br />*  xfce-extra/xfce4-screenshooter
+
<br />Description:   Xfce4 screenshooter application and panel plugin
+
<br />*  xfce-extra/xfce4-notifyd
+
<br />Description:  Notification daemon for the Xfce desktop environment
+
<br />*  xfce-extra/xfce4-mixer
+
<br />Description:  A volume control application (and panel plug-in) for the Xfce desktop environment
+
<br />*  xfce-extra/xfce4-mount-plugin
+
<br />Description:   An mount plug-in for the Xfce panel
+
<br />*  xfce-extra/xfce4-clipman-plugin
+
<br />Description:   A clipboard manager plug-in for the Xfce panel
+
<br />*  xfce-extra/xfce4-battery-plugin
+
<br />Description:  A battery monitor panel plugin for the Xfce desktop environment</tt>
+
<br /> Those are some plugins for XFCE and Thunar that I'd suggest.
+

Latest revision as of 01:20, 3 March 2014

Created on
2013/07/28
Original Author(s)
Jonathan Vasquez
Current Maintainer(s)
Jonathan Vasquez

Funtoo Linux Optimization Proposal: Release Engineering

Introduction

This is a proposal to implement a strong release engineering infrastructure for Funtoo Linux. Funtoo is currently only a rolling-release distro and does not have the option to have another pace. In order to create a more stable, maintainable, and predictable Funtoo, this proposal will be offering a few things that can be done to make that happen.

This proposal will not change Funtoo from being a rolling release distro, but it will instead simply add the option to also run at another pace.

Funtoo will also not become a binary distro and will remain primarily a source based one. However, binaries do provide various advantages that allow users to have faster deployments or easier disaster recovery. For this reason Funtoo will make available binary packages for the most time consuming, and most commonly used applications.

This will make Funtoo a much more stable, maintainable, and predictable distro.

The following things are proposed:

  • Semi-Rolling Releases
  • A Complete OS
  • Funtoo Binary Platform

Semi-Rolling Releases

The semi-rolling release model is a hybrid between a rolling release and a non-rolling release. This means that instead of bring new packages in all the time (rolling release), and instead of just completely freezing everything and bringing new packages/features every X months, we can have a middle ground where we can quickly and easily branch our Portage Git Tree, and focus on stabilizing it. Once we stabilize it, people can use it without having to worry about major version upgrades. The user can then use this branch until a later branch is created, and can easily upgrade to the new branch by switching their profile to the new version.

New Funtoo Profiles for Releases

Since we want to provide users the ability to easily enter and exit into a semi-rolling state, new profiles will be added periodically.

The first and main branch for development is the “current” branch. This is the same branch that everyone is using and that is the traditional rolling release branch.

The second branch is the “stable” branch. This is the same stable branch that is available today, also using a rolling release approach and that uses ‘arch’ and other masks in order to provide stability.

The new branches are considered semi-rolling branches. These branches configure your system to follow the branch selected. This funtoo branch will not introduce any major version changes and will only include tree fixes (bugs or ebuild) and security updates.

Example:

Let's say we have a release called Funtoo 14.1 and that it was released in January 2014. In order to use this release you can select this it from the profile module:

# eselect profile set-build 5
# eselect profile list
Currently available arch profiles:
[1] funtoo/1.0/linux-gnu/arch/x86-64bit *
[2] funtoo/1.0/linux-gnu/arch/pure64
Currently available build profiles:
[3] funtoo/1.0/linux-gnu/build/stable
[4] funtoo/1.0/linux-gnu/build/current
[5] funtoo/1.0/linux-gnu/build/14.1 *
Currently available flavor profiles:
[6] funtoo/1.0/linux-gnu/flavor/minimal
[7] funtoo/1.0/linux-gnu/flavor/core *
[8] funtoo/1.0/linux-gnu/flavor/desktop
[9] funtoo/1.0/linux-gnu/flavor/workstation
[10] funtoo/1.0/linux-gnu/flavor/hardened

Once a new semi-rolling branch is released, you can change your profile to point to it. Semi-rolling releases are made to freeze the distro for the short term, and upgrading to the next semi-rolling release is recommended. New semi-rolling branches act as "upgrade packs" since you will just be getting a new set of applications that won't be changing drastically for another 4 months. There will most likely be a “Long Term” semi-rolling releases as well for people that do not like to update every 4 months.

In the event that you do not update for various releases, a full system reinstall is recommended since a lot of things change over time including toolchain updates that have cascading effects.

Example of 4 Month Release Cycle

  • Funtoo 14.1 (January 2014)
  • Funtoo 14.2 (May 2014)
  • Funtoo 14.3 (September 2014)
  • Funtoo 15.1 (January 2015)

Which branch is for what person?

The “current” branch is for people who want to be on the bleeding edge all the time. You will get the latest updates, and here is where all the development happens. Your system might not be fully stable all the time, and things might fail to compile. This is the traditional Funtoo rolling release model. If you want to continue using your system the way it has always been, this is the branch for you.

The “stable” branch is for people who still want to be using the rolling release model but want to depend on the traditional method of ebuild’s hiding newer versions based on “~”.

The new frozen branches are for people who don’t want a lot of updates but would rather have a more stable version of the “current” tree that is audited for stability.

A Complete OS

An operating system is not just a stage3 tarball. The stage3 is incomplete and requires the user to compile their own kernel and bootloader before being able to use their system. We should have a stage which includes a well tested kernel, bootloader, and other utilities necessary for an user to deploy their system. This will speed up deployments and will provide predictability for kernel modules, and other applications that rely on a kernel.

The fundamental and primary contents of a stage3 is to have a full @system, and nothing more. A stage4 would be the next iteration which includes the stage3, a kernel, bootloader, and other utilities necessary for an user to deploy their system.

Funtoo Binary Platform

The Funtoo Binary Platform is intended to provide binaries for the most time consuming and most commonly used applications in the Funtoo Community. There are applications that will not be provided in the the FBP. Examples of these applications are applications that require a kernel for compilation, applications that require explicit license acceptance, or applications that cannot be distributed due to certain patents/copyright issues.

Example of some applications that can be in the FBP can be found at the link below:

https://docs.google.com/spreadsheet/ccc?key=0Aj4WbXLCgD5KdGd2Mm1VYlBzanVHMXVQU0RTN1RtX3c&usp=sharing