From Fedora Project Wiki
(use longer 'install methods' template)
(83 intermediate revisions by 24 users not shown)
Line 1: Line 1:
<!-- page was renamed from Rawhide
{{autolang|base=yes}}
-->
Rawhide is the name given to the current development head of Fedora. It consists of a daily snapshot of latest built version of all Fedora packages.


== Rawhide mirrors ==
Rawhide is the name given to the current development version of Fedora. It consists of a [[Repositories|package repository]] called "rawhide" and contains the latest build of all Fedora packages updated on a daily basis. Each day, an attempt is made to create a full set of 'deliverables' (installation images and so on), and all that compose successfully are included in the Rawhide tree for that day.


Rawhide goes by the name of "development" on the mirrors. You can find a local mirror here: <BR>
Rawhide is sometimes called "development" or "master" (as it's the "master" branch in package git repositories).  
http://mirrors.fedoraproject.org/publiclist/Fedora/development/


== Who should use Rawhide? ==
== Goals ==


No-one should use Rawhide as their main day-to-day workstation. As Rawhide is a development branch, many changes are not heavily tested (or tested at all) before being released to Rawhide, and packages in Rawhide can and do break without warning. It is even possible that bugs in Rawhide could cause data loss. However, testing Rawhide is a very valuable activity which helps to direct Fedora development and ensure the quality of stable releases is high. It's also a fun way to try out the latest software almost as soon as it comes out. Testing Rawhide is a great way to contribute to Fedora development. You can try out Rawhide from the [http://alt.fedoraproject.org/pub/alt/nightly-composes/ nightly live builds] without needing to install it at all. Otherwise, you can install it if you have a spare system, or are willing to install Rawhide to spare space on an existing system and dual boot, or use a virtual machine.
Rawhide has the following Goals:  


== Nightly live builds ==
* To allow package maintainers to integrate the newest '''usable''' versions of their packages into Fedora.
* To allow advanced users access to the newest '''usable''' packages in a rolling manner.
* To allow incremental changes to packages that are either too minor or major to go to stable Fedora releases.
* To identify and fix issues with packages before they reach a stable release of Fedora.


Since August 2009, [http://alt.fedoraproject.org/pub/alt/nightly-composes/ nightly builds of all approved live spins of Rawhide] are available. These are built automatically without manual tweaking or testing, so they will sometimes be beyond the size of a single CD, and sometimes may not work at all. If there is a bug in the generation toolchain, the images may not be built on a given night; in this case, the last built image will remain available. Using these nightly builds is an ideal way to test Rawhide if you have no spare machine or partition available, or simply do not have the time to maintain a Rawhide installation. It's a very safe way to test, since it will make no changes to your installed system.  You can also later install Rawhide to your hard drive from the Live desktop if the Live image is working well for you.
== Audience ==


== Installing Rawhide ==
Rawhide is targeted at advanced users, testers and package maintainers.


Rawhide is meant to be installable, however, a particular Rawhide tree may not be installable due to bugs in the installer or other packages. There are many ways to install Rawhide.
As a Rawhide consumer, you should:


=== How to avoid disturbing an existing system ===
* Be willing to update on an almost daily basis. Rawhide gets hundreds of updates a day, and applying those updates on a regular basis allows you to more easily isolate when a bug appeared and what package(s) are responsible.


There are a few methods to test Rawhide on a machine without disturbing an existing installation:
* Be willing and able to troubleshoot problems. From time to time there are problems with Rawhide packages, and you will need strong troubleshooting skills and the ability to gather information for bug reports. You need a good understanding of dnf and how to downgrade packages, as well as boot time troubleshooting.
# Test a Live version from CD, DVD, or USB drive.
#* See http://fedoraproject.org/get-prerelease to download a (milestone, not daily) prerelease ISO.
#* See http://alt.fedoraproject.org/pub/alt/nightly-composes/ if you want a prerelease ISO from the latest daily build.  Various daily spins are available, but "desktop" is the one that is distributed most widely.
#* To burn to CD or DVD, see the [http://docs.fedoraproject.org/readme-burning-isos/ burning ISOs readme].
#* To write to USB, see [[How to create and use Live USB]].
#* If you use a LiveUSB with data persistence, you can use the "yum update" method described below to get the latest daily Rawhide RPMs ([https://bugzilla.redhat.com/show_bug.cgi?id=446935 except for the kernel]). Note that you may also need to install the 'fedora-release-rawhide' package and enable the rawhide repository. However, downloading daily ISOs is recommended instead of this method.
# Use a virtual machine.  See [[Testing/qemu]].
# Install to a separate partition.


=== Direct Rawhide install via standalone Anaconda ===
* Have time and desire to always be able to learn new interfaces and changes. Rawhide packages stick closely to upstream projects, so interfaces and command-line options are subject to frequent changes.


Anaconda is the Fedora installer. It can be booted directly, rather than run from a Live desktop.
* Be willing to reboot frequently to test new kernel versions and confirm functionality of the boot process. If you can't reboot often, consider using a stable release instead.


==== Using a general release Anaconda ISO ====
* Be willing and able to report bugs to bugzilla as you find them and help maintainers gather information to fix them.


You can use the version of Anaconda distributed with a final public release (the latest being Fedora {{FedoraVersion}}).  Using this method, you will be using an older but known-to-be-working installer to install the latest content in the Rawhide repository.
If the above doesn't match you, you may wish to instead follow the [[Releases/Branched|Branched]] release (depending on the point in the [[Releases/{{FedoraVersion||next}}/Schedule|release cycle]]) or use regular stable Fedora releases.


;Option 1 - Use a copy you've already downloaded
{{Rawhide_branched_install_methods|release=Rawhide}}
If you already have a bootable CD, DVD, USB stick, or hard drive partition containing the *-DVD.iso or *-disc1.iso you can use that to install Rawhide.  However, if you need to download new boot media, these files are not recommended because they contain general release versions of Fedora RPMs, and you wish to install Rawhide RPMs.  (See [http://docs.fedoraproject.org/install-guide/f12/en-US/html/ch-new-users.html#sn-howto-download installation guide download page] for instructions if you want to download these files anyway.)  A general release ''Live'' image cannot be used to install Rawhide, only the general release version of Fedora which it contains. 


;Option 2 - Download the minimal installer
== Discussing Rawhide ==
If you need to make a bootable CD, DVD, USB stick, or hard drive partition, the best way is to download the minimal boot.iso installer, and load RPMs over the network.  This is the same as the *-netinst.iso (e.g. Fedora-12-i386-netinst.iso) which you may find elsewhere.  These files are not available by BitTorrent.


To get and use a boot.iso file:
There are a number of ways to communicate with other Rawhide users:  
* Go to http://download.fedoraproject.org/ - you will be redirected to a nearby mirror.
* Go to releases/{{FedoraVersion}}/Fedora.
* Choose the directory for your architecture (i386, x86_64, or ppc - [http://docs.fedoraproject.org/install-guide/f{{FedoraVersion}}/en-US/html/sn-which-arch.html help available]), then find os/images/boot.iso and download it.
* Create a bootable CD, DVD, USB media, or hard drive partition following the instructions at [http://docs.fedoraproject.org/install-guide/f12/en-US/html/ch-new-users.html#sn-making-media] and using your newly downloaded boot.iso file.  You can use the livecd-iso-to-disk method described there even though boot.iso is not a Live image, and it should also work on hard drive partitions, not just USB media.


;Option 3 - Pure network install with no boot media
=== IRC ===


The Installation Guide documents how to [http://docs.fedoraproject.org/install-guide/f{{FedoraVersion}}/en-US/html/ap-medialess-install.html boot the installer directly from the network], in case you cannot or choose not to create local boot media.
Rawhide discussion is on topic and welcome in both the {{fpchat|#fedora-devel}} and {{fpchat|#fedora-qa}} IRC channels.


;What to do after booting Option 1, 2 or 3
=== Mailing Lists ===


Follow the on-screen instructions from Anaconda, the graphical installer.  The installation is very straightforward. You should do a HTTP/FTP install.  To get Rawhide instead of a supported release, for the URL of your 'install tree', use "<mirrorroot>/development/<arch>/os/" where <mirrorroot> is the mirror site URL you got from [http://mirrors.fedoraproject.org/publiclist/Fedora/development/ the mirror list] and <arch> is your architecture (i386, x86_64, or ppc).
Rawhide discussion is on topic and welcome in both the {{fplist|test}} and {{fplist|devel}} lists.


;Option 4 - With no network access at install time
=== Bugzilla ===


If you have no network access during the install process, you will need to download the Rawhide (development) repository from a [http://mirrors.fedoraproject.org/publiclist/Fedora/development/ Rawhide mirror] and use the hard drive installation method described in the [http://docs.fedoraproject.org/install-guide/ Installation Guide], or it might be easier to choose a different method to install Rawhide from another section of this page.
Rawhide bugs should be reported against the ''Fedora'' product, ''rawhide'' version and the affected component.  Please do follow [[BugsAndFeatureRequests|best practices]] when filing. Remember that IRC and mailing lists are useful to help narrow down if some behavior is a bug or where to report it, but are themselves not bug reporting channels. Always file bugs in [http://bugzilla.redhat.com Bugzilla].


==== Using daily Rawhide Anaconda build ====
Note that broken dependencies are mailed to maintainers for each daily Rawhide compose where a package has such broken dependencies. Therefore, it's usually not worth filing a bug for broken dependencies unless they don't appear in the daily report, or you have a fix or improvement to suggest.


'''Please note that as part of the [[No Frozen Rawhide Proposal]], this method will not be available early in the Rawhide development cycle (before the Alpha Feature Freeze).  These ''installer'' images (e.g. boot.iso) will not be available during this period because the code is in flux and external testing will not produce useful feedback for the Anaconda team.  However, installer images can be provided on demand for test days, and will routinely be available later in the development cycle.  All other Rawhide installation methods will continue to be available throughout the development cycle.'''
=== Blogs ===


Using this method, you will be testing not only the contents of Rawhide, but also the Rawhide version of the installer which will become the installer for the next version of Fedora.
The following blogs are not official communication, but are useful to follow if you are running Rawhide.


Follow the same steps as in "Using a supported Anaconda release" above, but get your boot.iso from one of the mirrors listed at: http://mirrors.fedoraproject.org/publiclist/Fedora/development/
* [http://rawhidewatch.wordpress.com/ Rawhide Watch]
* [http://www.scrye.com/wordpress/nirik/category/rawhide/ Kevin's musings / Rawhide]


=== Direct Rawhide install via Live installer ===
== Producing Rawhide ==


* Download a daily Live image (.iso) from http://alt.fedoraproject.org/pub/alt/nightly-composes/
Package owners must build for rawhide using koji just like you would any other build; you do not go through the bodhi process and the build becomes available almost immediately.
* Follow the steps at [[How to create and use Live USB]] or [[How to create and use a Live CD]] to prepare and boot from the image you select.
* Log in and double click on the "Install to Hard Drive" icon on the desktop.
* Follow the on-screen instructions.


=== Yum update from a test release ===
The Rawhide repository is composed every day starting at 05:15UTC. All rawhide builds in the buildsystem at that time are composed and pushed out to mirrors. The compose process also attempts to build all the standard Fedora 'deliverables' (live and install images, ARM and Cloud disk images, Docker images and so on). Rawhide is under "development/rawhide" on the mirrors. You can find a local "development" mirror [http://mirrors.fedoraproject.org/publiclist/Fedora/development/ on the public mirror list]. Compose time varies depending on number of changes but is typically between 5 and 8 hours.


If a test release or "pre-release" (Alpha or Beta) is currently available, you can download it from: http://fedoraproject.org/get-prerelease
Composes are done in a rawhide chroot using the 'pungi' tool called from [https://pagure.io/pungi-fedora/blob/master/f/nightly.sh a script maintained by Fedora Release engineering]. If the base set of packages in Rawhide needed to compose Rawhide are broken, the daily compose may fail.


Test releases are not configured to update via Rawhide by default (They follow the "Branched" version for their release), so you need to first install the 'fedora-release-rawhide' package and enable the rawhide repo. You can then run "yum update" or wait for desktop notification of updates.
A report for each Rawhide compose is sent to to the {{fplist|test}} and the {{fplist|devel}} lists. This report contains output from the 'repodiff' tool from the previous compose as well as a broken dependency report for packages with broken dependencies. Additionally, private email is sent to maintainers with packages containing broken dependencies.  


If you later want to switch from Rawhide to the final general release, see: https://fedoraproject.org/wiki/Upgrading_from_pre-release_to_final
Package maintainers should read and follow the [[Updates_Policy#Rawhide_.2F_devel_.2F_master|Rawhide updates policy]] for building any packages in Rawhide.


=== Yum update from official release ===
If needed and approved by [[Fedora_Engineering_Steering_Committee|FESCo]], Mass Rebuilds are done by release-engineering in Rawhide a month or so before the next release branches from it. Typically these are done for a global change over all packages such as a new gcc release, or rpm package format.


For details and information on installing a Fedora release please see the [http://docs.fedoraproject.org/install-guide/ Installation Guide] for the appropriate release.
== Questions and Answers ==


Once your system is installed, you can upgrade to the rawhide repository one of two ways.  Using graphical applications:
'''Q:''' Doesn't rawhide eat babies / kill pets / burn down houses / break constantly?


# First, Install the 'fedora-release-rawhide' package.  
A: No. Please stop telling everyone that.  
# Next, modify your software sources using: <code>gpk-repo</code>
#* Leave '''only''' the ''Fedora - Rawhide'' software source enabled
# Next, update your system using: <code>gpk-update-viewer</code>


Alternatively, you may upgrade using the command-line:  
'''Q:''' So Rawhide is very stable and we can all use it?


# Type: <pre># yum install fedora-release-rawhide</pre>
A: No. See audience above. There are things that break from time to time, but if you are able to downgrade or troubleshoot such issues aren't too severe. Most users should still stick to stable Fedora releases, but Rawhide is a viable option for enthusiasts to experiment with.
# Then Type: <pre># yum --disablerepo=* --enablerepo=rawhide update</pre>


You may want to enable/disable repositories in /etc/yum.repos.d/ so that only the "Fedora Development" repository is enabled.  This will allow daily Rawhide updates to appear by default in desktop notifications and "yum update".
'''Q:''' I'm using a Stable Fedora release, but I want a newer package version that's only available in Rawhide. Can I just {{command|dnf install}} it?


===From any release via Preupgrade and Anaconda===
A: No. Mixing releases like this is a very bad idea. Better options are:


A faster Anaconda installation can be performed with PreUpgrade. See [[How to use PreUpgrade]] for instructions; just select "Rawhide" when choosing the version of Fedora you wish to install.
* Ask the Fedora maintainer in a bug report to update the stable version if permitted by policy.
* If not, there may be a [http://copr.fedoraproject.org/ COPR] that provides the updated version. See the COPR page for more details.
* Obtain the src.rpm for the package you wish and try and rpmbuild --rebuild it (which may or may not work depending on dependencies).


== Testing Rawhide ==
'''Q:''' I want to run the Rawhide kernel on my stable Fedora machine. Can I do that?


There are two important things all Rawhide testers should do. First, read the [https://admin.fedoraproject.org/mailman/listinfo/test test] mailing list, where Rawhide users discuss the latest changes. You'll find discussion of significant changes and warnings of severe breakages here. Reading test-list daily is key to staying on top of Rawhide. Secondly, report all the bugs you find in Rawhide to [http://bugzilla.redhat.com Bugzilla]. Remember to file bugs according to these [[BugsAndFeatureRequests|best practices]]. Please remember that bugs should always be filed in Bugzilla. Reporting bugs on the mailing list or IRC is not sufficient, as these reports rapidly become lost in history. Only on Bugzilla will they always be accessible to other testers and to the developers.
A: Sometimes yes. The kernel is more self contained than other Rawhide packages and you also can easily boot your older kernel if the Rawhide kernel goes wrong. Simply download and dnf install the package. However, note that Rawhide kernels often have debugging code enabled, which results in them performing noticeably worse than 'release' kernels (they will be slower and consume more memory).


Beyond that, here is some general advice which may be of use in using Rawhide:
'''Q:''' Is Rawhide a "rolling release" ?


* Approach the test release as a valuable chance to learn more about your system. There is a good chance you will run into some bugs in subsystems or components that you are very unfamiliar with as part of the testing process. Use this an opportunity to learn more about that particular subsystem and get familiar with its documentation. Even documentation has bugs, by following up and trying to learn from the documentation you might be able to help clean up badly worded or out of date documentation as well. The more you learn, the more effective you will be in the future if you participate in the development process again. Be as proactive as you can about reading up on how things work and you will have a much more valuable experience overall.
A: It depends on how you define that, but yes.
* When using yum, take the time to review the list of package actions before you proceed. Don't disable the review step.
* Get familiar with the ''/var/log/rpmpkgs'' and ''/var/log/yum.log'' log files.
* Get a notebook and make notes about system configuration changes you make. Many problems can be traced to simple configuration errors, but can appear as package update bugs. When working with other testers to confirm the problem, notes as to the other changes you have made since last update/reboot can be invaluable in tracing the problem down accurately.
* Keep at least one older kernel around that you are confident works as expected.
* Reboot daily, to test to see if any of your updates have affected startup. Its much more difficult to track down a boot up problem that was caused by an old update, if you are updating daily but have not rebooted.
* Get familiar with useful grub features for troubleshooting boot up failures.
* Don't force or nodeps any package to work around dependency problems. Instead, report them as bugs or to test-list. If no-one reports these problems, they will never get fixed, and will persist into stable releases.
* Because the development tree is not guaranteed to be internally consistent every day, you will frequently see ''yum update'' fail with errors. Don't Panic. Most dependency problems will be fixed by the developers in one or two days, sometimes simply by requesting more package rebuilds. If you see a dependency problem with ''yum update'' on your system for several days in a row, and see no discussion of it on test-list, see below to decide whether and how you should report it.
* If there is one error (such as a package depending on an old library major) holding you back from a full Rawhide update, you can use ''yum update --skip-broken'' to update all other packages. However, make sure the error has been reported to the maintainer of the offending package.
* You might need to disable GPG check in /etc/yum.conf or the fedora-devel repository in /etc/yum.repos.d if packages are incorrectly signed.


=== When to Report Update Problems ===
'''Q:''' How can I tell when the Rawhide compose for the day has finished?


There is a daily build report of the development tree sent to the fedora-test-list every morning as part of the automated push of packages out to the publicly accessible trees. The daily report contains information about new, removed and updated packages. It also contains a summary of known dependency problems for each arch for which the development tree is built for. Please, if you experience any problem updating against the development tree the first thing you should review is the last two or three build reports. If you are seeing a dependency problem summarized in the latest build report, you can be sure the developers are aware of the problem. Package maintainers receive daily emails when their packages are on this list.
A: Check the for the reports sent to the {{fplist|test}} and the {{fplist|devel}} lists, or watch fedmsg for the {{code|org.fedoraproject.prod.pungi.compose.status.change}} topic.


Note that the broken dependency list which is part of the daily rawhide reports only provides the first layer of dependencies and not the entire list to save build time.  Unlisted packages might also be affected, but fixed when one or more of the listed packages are rebuilt.
'''Q:''' How do I get out of Rawhide again? I want to switch to the [[Branched]] release or a stable release.


If however the problem lingers longer than a few days on your system, and the problem package is not listed in the daily report, that could be an indication that you have run into a situational bug that not everyone is seeing. This is when you can spring into action as a tester and make a difference. But, before you file a new bug report there is a short recipe you can follow to avoid filing unnecessarily. Please remember that test releases exist primarily to help the developers identify problems so they can be fixed in time for release. Unfortunately, reactionary bug filing of duplicate or well known issues can take developer time away from actually fixing issues.
A: Remove the {{package|fedora-repos-rawhide}} package and/or disable the 'rawhide' repository ({{command|su -c 'dnf config-manager --disable rawhide'}}), enable the 'fedora' and optionally 'updates' and 'updates-testing' repositories ({{command|su -c 'dnf config-manager --enable fedora(,updates,updates-testing)'}}) and perhaps run {{command|su -c 'dnf --releasever<nowiki>=</nowiki>(version) distro-sync'}}. The farther the branch to which you want to switch is behind Rawhide, the more trouble you might have with this.


# Read fedora-test-list: Go back into your archives or the web archives for fedora-test-list and read over the threads in the last 48 hours and see if there has been any discussion about the specific update errors you have been seeing. Generally, these sorts of errors are seen by most everyone with similar hardware, so its a very good chance that other testers are already discussing it. Please don't just post a new post to fedora-test-list until after you have reviewed the last 48 hours worth of posts. Having multiple discussions about the same issue is a drain on the time of other testers and developers.
A possible problem is that you might miss the branching point, and your system has already a bunch of post-branch Rawhide packages installed. In that case, the dnf distro-sync will help you to get everything back on the right track.
# Search http://bugzilla.redhat.com: Search to see if there are any reports about the update issue you have seen
# Drop a note into fedora-test-list: Please only start a new thread only after you attempted to find previous discussion of this problem in the test-list or in bugzilla. Other testers can help you confirm the problem, or if they can't confirm it they can help you determine if its a configuration problem or user error on your part. The test-list is a great way to assistance from other more experienced testers, but please do what you can to use the archives responsibility to avoid duplication of information and discussion.
# File a new bug report: If the exact nature of the dependency problem during updating is lingering for several days or if the problem seems specialized to your situation and it doesn't appear that the developer is aware of this problem.... file a new bug. If you are unsure how to file, experienced testers in fedora-test-list can make suggestions. Please don't assume its a yum bug. Most dependency issues are packaging bugs in one of the packages detailed in the error messages.


=== What does it mean when something "hits Rawhide"? ===
'''Q:''' As a package maintainer do I have to build rawhide packages or does the nightly compose take care of that?


Rawhide is automatically generated once daily from the latest packages that are built. Packages that are built one day are generally in the next days rawhide.
A: No. You must build for Rawhide using koji. The nightly compose only collects packages already built and marked with the appropriate target (rawhide) in koji.


(For the curious, the compose is done at Midnight US Eastern, 0400/0500 UTC.)
'''Q:''' Why aren't Rawhide packages signed?


=== What is a rawhide "push"? ===
A: Rawhide signing is currently in development. At present many Rawhide packages get signed, but we still cannot guarantee that every package in any given Rawhide compose is signed. Check [https://fedorahosted.org/rel-eng/ticket/5870 Release Engineering ticket 5870] for status updates.


A rawhide push is simply the rawhide spin for that day. Occasionally, if the push is extremely broken, it may be regenerated more than once.
== Hints and Tips ==


=== Where do I communicate issues in Rawhide ? ===
* Your package management system can be of great help in diagnosing and working around issues you find. Do read up and understand:
** {{command|dnf downgrade}}
** {{command|dnf history}}
** {{command|dnf update --skip-broken}}
** {{command|koji download-build}}


Use the fedora-test list or #fedora-qa IRC channel in Freenode. For bugs, report them to http://bugzilla.redhat.com
* You should update frequently (preferably every day). This allows you to more easily narrow down when a problem or issue appeared. If you apply a week of Rawhide updates at once you have many more packages to examine to narrow down issues.  


=== How can I know what is changing in Rawhide? ===
* Reboot often (preferably whenever new kernels arrive). This allows you to test the boot up process and packages related to it, as well as newer kernels. Read and understand the Dracut troubleshooting steps.


Nightly reports are sent to fedora-test-list and fedora-devel-list, with the subject 'rawhide report: <date> changes'.
* Follow the {{fplist|test}} and the {{fplist|devel}} lists for rawhide issues, try and at least skim them before doing your daily Rawhide updates. Look for '[rawhide]' subjects or reports of issues. Additionally if you find a problem and are not sure what to file bugs against you can open a discussion there.  
Included in these reports are what packages have been added, removed, or updated (with short changelog snippets), along with a list of any broken dependencies.


http://git.fedoraproject.org/ and http://hg.fedoraproject.org/ and https://fedorahosted.org/ are good places to look at
* Rawhide kernels are often built with varying degrees of debugging code enabled, which will result in worse performance and increased resource usage. See [[KernelDebugStrategy]] for details on exactly what debugging code is enabled for which kernel builds. You can disable SLUB debugging for those builds for which it is enabled by passing "slub_debug=-" to your kernel command line in {{filename|/etc/default/grub}} (and re-generating your grub config, or just adding it directly). Additionally, you can run kernels in the [[RawhideKernelNodebug|Rawhide Kernel Nodebug]] repo that have all debugging disabled.
the upstream state of many Fedora projects.
 
* If you are using a graphical desktop environment in your Rawhide install, you may wish to install several of them. This allows you to still login and troubleshoot when your primary desktop environment is not working for some reason.
 
* Have a rescue media handy of the current stable Fedora release for emergencies.
 
== History ==
 
Red Hat Linux "Raw Hide" announcement: [http://lwn.net/1998/0820/rawhide.html on lwn]
 
The name might come from [http://en.wikipedia.org/wiki/Rawhide_%28song%29 the song with the same name] that starts with "Rolling, rolling, rolling, ..."
 
At one time, Rawhide would freeze before release milestones. This was changed with the [[No_Frozen_Rawhide_Proposal]] and Branched process which we now follow.

Revision as of 23:45, 25 April 2016

Rawhide is the name given to the current development version of Fedora. It consists of a package repository called "rawhide" and contains the latest build of all Fedora packages updated on a daily basis. Each day, an attempt is made to create a full set of 'deliverables' (installation images and so on), and all that compose successfully are included in the Rawhide tree for that day.

Rawhide is sometimes called "development" or "master" (as it's the "master" branch in package git repositories).

Goals

Rawhide has the following Goals:

  • To allow package maintainers to integrate the newest usable versions of their packages into Fedora.
  • To allow advanced users access to the newest usable packages in a rolling manner.
  • To allow incremental changes to packages that are either too minor or major to go to stable Fedora releases.
  • To identify and fix issues with packages before they reach a stable release of Fedora.

Audience

Rawhide is targeted at advanced users, testers and package maintainers.

As a Rawhide consumer, you should:

  • Be willing to update on an almost daily basis. Rawhide gets hundreds of updates a day, and applying those updates on a regular basis allows you to more easily isolate when a bug appeared and what package(s) are responsible.
  • Be willing and able to troubleshoot problems. From time to time there are problems with Rawhide packages, and you will need strong troubleshooting skills and the ability to gather information for bug reports. You need a good understanding of dnf and how to downgrade packages, as well as boot time troubleshooting.
  • Have time and desire to always be able to learn new interfaces and changes. Rawhide packages stick closely to upstream projects, so interfaces and command-line options are subject to frequent changes.
  • Be willing to reboot frequently to test new kernel versions and confirm functionality of the boot process. If you can't reboot often, consider using a stable release instead.
  • Be willing and able to report bugs to bugzilla as you find them and help maintainers gather information to fix them.

If the above doesn't match you, you may wish to instead follow the Branched release (depending on the point in the release cycle) or use regular stable Fedora releases.

Using Rawhide

This section discusses how to use Rawhide, as a live system or permanently installed.

Using a test system

If you are not able or wanting to run Rawhide as your primary system you could instead run it:

  • As a live environment only
  • In a virtual machine (VM) instance
  • On a secondary system
  • On a multiboot system, alongside a stable release of Fedora or another operating system

This allows you to test Rawhide without any impact to your day-to-day workflow.

Install from nightly composes

Each day (or sometimes more than once per day) , a full 'compose' of the tree is attempted. This will usually result in the creation of all or most of the usual install, live and disk images, installer trees and so forth. Successful composes are synced to the /fedora/linux/development/ directory on the mirrors, and you can find the images there.

Each successful compose is tested by openQA and a mail summarizing the results is sent to the devel and test mailing lists, so you can check the openQA interface or the 'compose check report' emails to check whether that day's compose is installable. You may also use the nightly image finder tool maintained and hosted by a Fedora QA team member, which conveniently offers the last completed build for each image and the last that passed all tests, for openQA or Autocloud-tested images.

At least the Server and Everything network install images should always be present, as composes are considered to have failed if creation of those images fails. However, at present they are not guaranteed to be working every day.

Follow the normal installation procedure to install Rawhide.

For PXE installations, the relevant files can be found in the pub/fedora/linux/development/rawhide/Everything/(arch)/os/images/pxeboot directory.

Using nightlies in the past was a fragile way to install Rawhide, but with improved compose processes since Fedora 24 and automated testing since Fedora 23, their quality has improved substantially and this will often result in the best experience.


Point installer to Rawhide

You can sometimes install Rawhide by using a stable install media and pointing it to the Rawhide repositories for packages to install. In the past this was sometimes considered a more reliable method than using a Rawhide compose, but with improvements to the compose and test process in the last few years this is rarely likely to be a good choice any longer. If you wish to try it, however, you can:

  1. Download the latest stable or branched install media (network install or offline ("DVD") installer image)
  2. Copy to local media (USB or DVD or CD)
  3. Boot media and go to the 'Installation Source' screen and manually enter: https://download.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/ (or i386 for 32-bit)
  4. Finish the install as normal.

For this method to work, there should be no major changes in Rawhide that the installer is not ready for, such as packages it depends on being retired or other similar situations.

Upgrade from existing stable install

You may use DNF_system_upgrade to upgrade from the most recent stable release. You will need to have such an install in place and should definitely update to the newest updates before starting. As an exception, if you are using a immutable variant like Silverblue, you may use rpm-ostree rebase to perform the upgrade, see Fedora Docs for more details.

This method may fail if there are upgrade path issues (newer packages in stable or than Rawhide), or broken dependencies.

Depending on the release schedule, it might happen that your system doesn't yet have updated GPG keys for Rawhide. Then the upgrade process might exit with an error regarding missing/unknown GPG keys (right after the download phase). If that's the case, look for updates in updates-testing:

sudo dnf update fedora-release\* fedora-repos\* fedora-gpg-keys --enablerepo=updates-testing

If that doesn't help, run the upgrade with --releasever=NN (where NN is the release number of current Rawhide) instead of --releasever=rawhide. As the last option (which really shouldn't be needed, and puts your system at risk), you can upgrade insecurely by appending --nogpgcheck.

Discussing Rawhide

There are a number of ways to communicate with other Rawhide users:

IRC

Rawhide discussion is on topic and welcome in both the #fedora-devel[?] and #fedora-qa[?] IRC channels.

Mailing Lists

Rawhide discussion is on topic and welcome in both the test and devel lists.

Bugzilla

Rawhide bugs should be reported against the Fedora product, rawhide version and the affected component. Please do follow best practices when filing. Remember that IRC and mailing lists are useful to help narrow down if some behavior is a bug or where to report it, but are themselves not bug reporting channels. Always file bugs in Bugzilla.

Note that broken dependencies are mailed to maintainers for each daily Rawhide compose where a package has such broken dependencies. Therefore, it's usually not worth filing a bug for broken dependencies unless they don't appear in the daily report, or you have a fix or improvement to suggest.

Blogs

The following blogs are not official communication, but are useful to follow if you are running Rawhide.

Producing Rawhide

Package owners must build for rawhide using koji just like you would any other build; you do not go through the bodhi process and the build becomes available almost immediately.

The Rawhide repository is composed every day starting at 05:15UTC. All rawhide builds in the buildsystem at that time are composed and pushed out to mirrors. The compose process also attempts to build all the standard Fedora 'deliverables' (live and install images, ARM and Cloud disk images, Docker images and so on). Rawhide is under "development/rawhide" on the mirrors. You can find a local "development" mirror on the public mirror list. Compose time varies depending on number of changes but is typically between 5 and 8 hours.

Composes are done in a rawhide chroot using the 'pungi' tool called from a script maintained by Fedora Release engineering. If the base set of packages in Rawhide needed to compose Rawhide are broken, the daily compose may fail.

A report for each Rawhide compose is sent to to the test and the devel lists. This report contains output from the 'repodiff' tool from the previous compose as well as a broken dependency report for packages with broken dependencies. Additionally, private email is sent to maintainers with packages containing broken dependencies.

Package maintainers should read and follow the Rawhide updates policy for building any packages in Rawhide.

If needed and approved by FESCo, Mass Rebuilds are done by release-engineering in Rawhide a month or so before the next release branches from it. Typically these are done for a global change over all packages such as a new gcc release, or rpm package format.

Questions and Answers

Q: Doesn't rawhide eat babies / kill pets / burn down houses / break constantly?

A: No. Please stop telling everyone that.

Q: So Rawhide is very stable and we can all use it?

A: No. See audience above. There are things that break from time to time, but if you are able to downgrade or troubleshoot such issues aren't too severe. Most users should still stick to stable Fedora releases, but Rawhide is a viable option for enthusiasts to experiment with.

Q: I'm using a Stable Fedora release, but I want a newer package version that's only available in Rawhide. Can I just dnf install it?

A: No. Mixing releases like this is a very bad idea. Better options are:

  • Ask the Fedora maintainer in a bug report to update the stable version if permitted by policy.
  • If not, there may be a COPR that provides the updated version. See the COPR page for more details.
  • Obtain the src.rpm for the package you wish and try and rpmbuild --rebuild it (which may or may not work depending on dependencies).

Q: I want to run the Rawhide kernel on my stable Fedora machine. Can I do that?

A: Sometimes yes. The kernel is more self contained than other Rawhide packages and you also can easily boot your older kernel if the Rawhide kernel goes wrong. Simply download and dnf install the package. However, note that Rawhide kernels often have debugging code enabled, which results in them performing noticeably worse than 'release' kernels (they will be slower and consume more memory).

Q: Is Rawhide a "rolling release" ?

A: It depends on how you define that, but yes.

Q: How can I tell when the Rawhide compose for the day has finished?

A: Check the for the reports sent to the test and the devel lists, or watch fedmsg for the org.fedoraproject.prod.pungi.compose.status.change topic.

Q: How do I get out of Rawhide again? I want to switch to the Branched release or a stable release.

A: Remove the Package-x-generic-16.pngfedora-repos-rawhide package and/or disable the 'rawhide' repository (su -c 'dnf config-manager --disable rawhide'), enable the 'fedora' and optionally 'updates' and 'updates-testing' repositories (su -c 'dnf config-manager --enable fedora(,updates,updates-testing)') and perhaps run su -c 'dnf --releasever=(version) distro-sync'. The farther the branch to which you want to switch is behind Rawhide, the more trouble you might have with this.

A possible problem is that you might miss the branching point, and your system has already a bunch of post-branch Rawhide packages installed. In that case, the dnf distro-sync will help you to get everything back on the right track.

Q: As a package maintainer do I have to build rawhide packages or does the nightly compose take care of that?

A: No. You must build for Rawhide using koji. The nightly compose only collects packages already built and marked with the appropriate target (rawhide) in koji.

Q: Why aren't Rawhide packages signed?

A: Rawhide signing is currently in development. At present many Rawhide packages get signed, but we still cannot guarantee that every package in any given Rawhide compose is signed. Check Release Engineering ticket 5870 for status updates.

Hints and Tips

  • Your package management system can be of great help in diagnosing and working around issues you find. Do read up and understand:
    • dnf downgrade
    • dnf history
    • dnf update --skip-broken
    • koji download-build
  • You should update frequently (preferably every day). This allows you to more easily narrow down when a problem or issue appeared. If you apply a week of Rawhide updates at once you have many more packages to examine to narrow down issues.
  • Reboot often (preferably whenever new kernels arrive). This allows you to test the boot up process and packages related to it, as well as newer kernels. Read and understand the Dracut troubleshooting steps.
  • Follow the test and the devel lists for rawhide issues, try and at least skim them before doing your daily Rawhide updates. Look for '[rawhide]' subjects or reports of issues. Additionally if you find a problem and are not sure what to file bugs against you can open a discussion there.
  • Rawhide kernels are often built with varying degrees of debugging code enabled, which will result in worse performance and increased resource usage. See KernelDebugStrategy for details on exactly what debugging code is enabled for which kernel builds. You can disable SLUB debugging for those builds for which it is enabled by passing "slub_debug=-" to your kernel command line in /etc/default/grub (and re-generating your grub config, or just adding it directly). Additionally, you can run kernels in the Rawhide Kernel Nodebug repo that have all debugging disabled.
  • If you are using a graphical desktop environment in your Rawhide install, you may wish to install several of them. This allows you to still login and troubleshoot when your primary desktop environment is not working for some reason.
  • Have a rescue media handy of the current stable Fedora release for emergencies.

History

Red Hat Linux "Raw Hide" announcement: on lwn

The name might come from the song with the same name that starts with "Rolling, rolling, rolling, ..."

At one time, Rawhide would freeze before release milestones. This was changed with the No_Frozen_Rawhide_Proposal and Branched process which we now follow.