Changes

Jump to: navigation, search

Fall 2010 SBR600 Weekly Schedule

2,429 bytes added, 09:53, 12 November 2010
Weeks 6 - 13
*** Mirroring
** These steps vary according to the particular project/product. For example, when distributing software physically, "Release" means performing a release-to-manufacturing (RTM), where the final "gold disk" is sent to the duplicating house to be mass-produced; but when distributing software electronically, "Release" means sending the software to the online distribution system. The sequence of steps also varies between projects/products.
* Introduction to Free Software and Open Source
** The [http://fsf.org Free Software Foundation]
** The [http://opensource.org Open Source Initiative]
* Introduction to the Fedora Project
** [[:fedora:Main Page|Fedora Project]]
** Fedora ARM Secondary Architecture project at [[Fedora ARM Secondary Architecture|Seneca]] and at the [[:fedora:Architectures/ARM|Fedora Project]]
* Course Layout
** Project-based course
** Working with Open Source
** Working with the Fedora Project
* <span style="background: #ffff00">[[SBR600 Communication Tools|Communication Tools]]</span> - '''Resource page for setting up wiki, IRC, and FAS2 accounts'''
* [[SBR600|Course Outline]]
* Visit the [[CDOT]] Area
== ToDo ==
'''Communication Lab: By Friday, September 10, :'''#'''Communication Lab'''#* Set up your accounts (wiki, IRC, FAS2).'''#* Create a blog post which will appear on the OpenSource@Seneca Planet which introduces yourself. Include:#*# An introduction. Tell us a bit about yourself.#*# A portion of an IRC conversation you've had with someone on a Fedora or Seneca IRC channel.#*# A link to your User page on the Seneca wikis#*# A link to your User page on the Fedora wiki#** Note: don't just dump this stuff in a blog post, add some introductory text as well!#* Add an entry to the [[Fall 2010 SBR600 Participants]] page#'''Fedora Set-Up'''#* Ensure you have a working, currently-supported (F12 or F13) Fedora system (on a laptop, on a SATA disk pack for use in the Seneca labs, or on a desktop machine at home)
'''Lab 1: By Monday, September 13:'''
# '''Lab 1'''#* Build 2 packages from Source#*# The NLED editor from [http://cdot.senecac.on.ca http://cdot.senecac.on.ca]#*# Any package that uses a configure script -- SourceForge might be a good place to look for such packages.#* Blog about the experience.
= Week 2 (September 13) - RPM Packages I =
*** rpmdevtools
*** rpmlint
*** yum-utils
** Setting up the RPM tree
*** run <code>rpmdev-setuptree</code>
*** Source will be in ~/rpmbuild/SOURCES and specfile will be in ~/rpmbuild/SPECS
** Examine the specfile
** Rebuild on the local machine-- takes a source RPM (SRPM) as input, produces binary and source RPMs as output
*** <code>rpmbuild --rebuild <i>nameofpackage</i>.src.rpm</code>
** Building from the spec file-- takes a specfile and source code as input, produces binary and source RPMs as output
*** <code>cd ~/rpmbuild/SPECS; rpmbuild -ba <i>nameofpackage</i>.spec</code>
** Remember, marking in this course is done on the basis of blog posts which appear on the planet.
** You should have two blog posts on the planet by now: One with a link to your Seneca and Fedora user pages plus a snippet of IRC conversation, and one with a reflection on your experience compiling software from source code.
 * Find out what Rebuild an existing Fedora SRPM. The <code>-j</code> value in your ~/.rpmbuild config file controls how many simultaneous jobs <code>make</code> starts. Experiment to see which value results in the fastest build time for the software you have chosenon your particular hardware. Blog about your experience -- don't bog down your blog with technical output, but instead focus on the process and results. * Listen , and your reflections (for example: did you get the value you expected? was it a fast or slow process? did you automate it with a script or do it manually? what seems to affect the [http://cdot.senecacresults?).on.ca/audio/sbr600/ audio recording] of last semester's conference call with Jesse Keating, Fedora Release Engineer <!-- * Take the software you compiled last week and package it (not Nled!). Blog about the experience. Include a link to your source RPM (and optionally your binary RPM) from your blog. Do ''not'' use the Fedora spec file. '''Please complete this by Monday, January 20.'''-->* Listen to the [http://cdot.senecac.on.ca/audio/sbr600/ audio recording] of last Fall's conference call with Jesse Keating, Fedora Release Engineer* Start considering the projects on the [[SBR600 Potential Projects|potential projects]] list.
= Week 3 (September 20) - Using Mock and Koji =
It's often difficult to get the BuildRequires in a spec file exactly right, because it's easy to overlook packages that are coincidentally installed on the machine. <code>mock</code> is a tool that uses the chroot system call to create a "cleanroom" environment for the build, so that any missing BuildRequires cause the build to fail.
{{Admon/note|The '''mock''' Group|To use mock, you will need to add yourself to the '''mock''' group.: <code>usermod -G mock ''yourUserName''</code>}}
To build with mock:
mock -r ''fedora-1213-x86_64'' --rebuild ''foo*.src.rpm''
The value ''fedora-1213-x86_64'' may be changed to any of the config files found in <code>/etc/mock</code> in order to test building based on the libraries and available packages for a specific architecture and Fedora release. If errors are reported, review the log files (see the mock output to determine the directory containing the log files).
== koji: Testing multiple architectures ==
To queue a build for all four Fedora-supported architectures (currently i386, x86_64, ppc, and ppc64):
koji build ''dist-f12'' --scratch '''foo*.src.rpm''
In this example, ''dist-f12'' selects the package repository (similar to the <code>-r</code> option for mock, except that the build arch is not specified); <code>--scratch</code> specifies that this is a scratch build (the results are not kept or fed to Bodhi).
To perform a build that will be passed to Bodhi for distribution, substitute <code>--rebuild</code> for <code>--scratch</code> (do not do this until you have passed the package review and sponsor procedures).
 
{{Admon/note|ARM Build|You can queue an ARM build by specifying the server "arm.koji.fedoraproject.org" on the Koji command line (or in <code>/etc/koji.conf</code>).}}
== Resources ==
== ToDo ==
Project
# Make sure your entry in the [[Fall 2010 SBR600 Project Table]] is complete, and that your project plan on your project page is filled in (including 0.1, 0.2, and 0.3 targets).
 
Lab
# Create an RPM package that will install your repository configuration file and the key.
# Test it.
= Weeks 6 - 13 =
* Project work
 
= Week 8 =
* Git
** See http://git-scm.org for basic notes and tutorials
* Using a Git repository
 
== ToDo ==
=== Simple Remote Repository Exercise ===
* Clone the repository:
git clone git://england.proximity.on.ca/play
cd play
* Add a branch for your stuff:
git checkout -b $YourName
(add and commit some stuff:)
* Push the branch to the server:
git push --all
* Verify that the branch is on the server:
git ls-remote
* Pull someone else's branch:
git pull origin $SomeoneElsesBranch
git checkout $SomeoneElsesBranch
= Exam Week =

Navigation menu