1,885
edits
Changes
→Release Dates, Presentations, and Quizzes
Previous semester: [[Fall 2010 SBR600 Weekly Schedule]]
= Week 1 (Jan 10) - Introduction , Building from Source, and Creating RPM Packages =
== Tuesday ==
=== Welcome ===* WelcomeAbout this course
* Introductions
* Introduction to Free Software and Open Source
** The [http://fsf.org Free Software Foundation]
** 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]]* How this Course Works** [[SBR600 Communication Tools]]** How coursework is submitted in SBR600* [[FUDCon Tempe 2011]] trip** Selection of attendees* Visit to the [[CDOTArea]] Area
=== To Do ===
'''By Wednesday, January 12:'''
# [[SBR600 Communication Lab|Communication Lab]]# [[SBR600 Fedora Installation|Fedora Installation]]# [[SBR600 Build-from-Source Lab|Build-from-Source Lab]]
== Thursday ==
=== Using ''make'' ===
=== RPM Packages ===
* Differences between managing RPMS and Installing from Source
** RPMS provide a database of installed software
*** Let you determine what's installed
*** Automatic management of dependencies
*** Identify the origin of files
*** Permit easy update or removal
*** Enable you to verify installation (useful for spotting file corruption and intrusions)
* [[RPM Package Contents|Contents of an RPM Package]]
=== Creating Packages ===
* [[RPM Packaging scenarios* Setting up a Packaging Environment** Needed packages*** rpm-build*** rpmdevtools*** rpmlint*** yum-utils** Setting up the RPM tree*** run <code>rpmdev-setuptree</code>* Taking a look at existing source RPMS (useful as examples)** Installing *** <code>yumdownloader --source <i>nameofpackage</i></code>*** <code>rpm -i <i>nameofpackage</i>.src.rpm</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> === Writing a specfile === * Run <code>rpmdev-newspec ''packagename''</code> in ~/rpmbuild/SPECS* Edit the skeleton specfile.* Test it: <code>rpmbuild -ba ''packagename''.spec</code>** If successful, output will be binary RPM(s) in ~/rpmbuild/RPMS and source RPM in ~/rpmbuild/SRPMS*** Can install binary RPM with: <code>rpm -i ''rpmname''</code>** If unsuccessful, read the error messages carefully.* Check it with rpmlint: <code>rpmlint ''packagename''*</code>** Remember to check the spec file as well as the binary and source RPMs.** Correct any errors found.Process]]
=== Layout of Demo: Creating a specfile Simple Package ===
* Writing the specfile
* Testing the specfile
** Using rpmlint
=== Resources ===
* Two simple [http://matrix.senecac.on.ca/~chris.tyler/osd600/makefile-examples.tgz makefile examples]
* [[:fedora:PackageMaintainers|Fedora Package Maintainers page]]
** [[:fedora:PackageMaintainers/CreatingPackageHowTo|Packaging How-To]]
* ''Fedora Linux'' chapter 5 (see Seneca Library website > eBooks > View All > Safari > Fedora Linux).
* rpmlint
** [[:fedora:Common Rpmlint issues|Fedora Common Rpmlint issues]]
= Week 3 2 (January 2417) - Using Mock and Koji =
== rpmlint: Checking for a clean spec file, SRPM, and RPM Tuesday ==
== mock: Testing BuildRequires = ToDo ===
=== koji: Testing multiple architectures ===
<code>koji</code> is a client-server system which allows you to queue builds within the Fedora build farm. This permits you to test whether your package builds on several different architectures, which is especially useful when you don't otherwise have access to the machines of that architecture.
= Week 5 (February 7) - Repositories/Distributing =
# Create a GPG key: <code>gpg --gen-key</code>
# Add the e-mail address associated with your gpg key to the <code>%_gpg_name</code> macro in <code>~/.rpmmacros</code> -- the line will look like this: <code>%_gpg_name "<i>e-mail-address</i>"</code>
# Find (or make) some packages to put in your repository. Make sure that the epoch-version-release is higher than that of any package with the same name in the Fedora repositories.
# Sign those packages with: <code>rpm --addsign <i>packagefile</i></code>
== ToDo ==
Lab
* Project work
= Release Dates, Presentations, and Quizzes =* March 7 - '''Release 0.1'''* March 15/17 - Pre-0.2 presentations* March 24 - Written Quiz* April 4 - '''Release 0.2'''* April 5/7 - Pre-0.3 presentations* April 11/13 (To Be Confirmed) - OCE Presentations* April 14 - Practical Quiz* April 22 - '''Release 0.3''' - DO NOT BE LATE! <!-- = Week 8 =
* Git
** See http://git-scm.org for basic notes and tutorials
git pull origin $SomeoneElsesBranch
git checkout $SomeoneElsesBranch
-->
= Exam Week =