Changes

Jump to: navigation, search

Fall 2010 SBR600 Weekly Schedule

2,374 bytes added, 09:53, 12 November 2010
Weeks 6 - 13
[[Category:SBR600]][[Category:Fall 2010 SBR600]]
'''{{Admon/important|Tentative Schedule|Please note:'''* The that the schedule here is tentative.* Week-by-week details will be filled in as the course progresses.}}
= Week 1 (September 6) - Introduction =
*** Distribution
*** 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 =
== Wednesday Tuesday ==
* Discussion of issues related to building
** Finding dependencies.
*** 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 TuesdayMonday, January 2620.'''-->* 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.
* Project work
= Break Week 8 =* Please plan to attend [Git** See http://fsossgit-scm.ca FSOSS 2010]. Consider attending other events during [httporg for basic notes and tutorials* Using a Git repository == ToDo ===== Simple Remote Repository Exercise ===* Clone the repository: git clone git://opensourceweekengland.proximity.on.ca Toronto Open Source Week]./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