Open main menu

CDOT Wiki β

Fall 2008 SPR720 Weekly Schedule

Revision as of 21:21, 5 October 2008 by Chris Tyler (talk | contribs) (Guest speaker: Andrew Overholt)

The tentative weekly schedule shown here is subject to change.

Week 1 (Sept 1) - Intro to Open Source / Command-line Basics

  • Course introduction
  • Introduction to Open Source and Linux
  • Introduction to/Review of the command line
    • Why use the command line?
    • Accessing the command line locally and remotely
      • terminal programs
      • ssh
    • Command recall and editing
  • Linux Commands
    • Builtin vs. external
    • Types of arguments
      • Option
      • Positional
      • Option with value
  • Filesystem hierarchy
  • Accessing Documentation
    • manpages
    • info
    • Documentation viewers
  • TODO

Week 2 (Sept 8) - Bash Scripting Basics I

Announcements/discussion/review:

  • Blogging guidelines
  • Louis Suarez-Potts - Thursday Sept 11 2:15 pm
  • Paul Frields - IRC chat Sept 11 5-6 pm
  • Review: shell, commands, arguments

The Fedora Project

  • What is a distribution?
  • Main functions of a distribution
    • Packaging
    • Integration
    • Testing/QA
    • Distributing (mirrors, media)
  • The Fedora Distribution
    • History
    • Community structure
    • Participating in the Fedora community
      • FAS2, mailing lists, wiki

Bash Scripting Basics

  • Filesystem hierarchy
    • Absolute paths: start with / indicating the root directory
    • Relative-to-home paths: start with ~ indicating a home directory
    • Relative paths: start with anything else, relative to "current" directory
  • Why script?

TODO

  • Create a FAS2 account, subscribe to Fedora mailing lists.
  • Narrow down your project search to 2-4 of the Potential Projects
  • Make sure you know how to use Vi -- if not, research its use.

IRC Session: Paul Frields

Paul Frields is the Fedora Project Leader. He will be meeting with us in freenode:#seneca from 5-6 pm on Thursday (Sept 11) during the SPR720 lab time.

Week 3 (Sept 15) - Bash Scripting Basics II

TODO

  • Narrow your project selection to one project by September 22.
  • Complete the SPR720 BASH Scripting Lab and blog your reflections on the experience. Include a link to one of your scripts in the blog.

Week 4 (Sept 22) - Makefiles

BASH Scripting -- Conclusion

  • Examine solutions to last week's lab

Makefiles

TODO

  • Download at least one software package in source form (sourceforge.net or fedorahosted.org are good sources), unpack it (usually 'tar xvf'), and build it (check the notes included in the tarball; in most cases './configure', 'make', and 'make install'). Make notes on the steps involved, and blog about the process, including any additional software that you had to install to get it to build. Please complete this lab before next Tuesday's class.
  • Complete this week's Project blogging assignment.

Week 5 (Sept 29) - Creating SPEC files and RPMs

RPM Packages

  • Purpose
  • What's in an RPM package file
    • Metadata
      • What the package provides
      • Dependencies
      • Packager, date, license, summary, description, ...
    • Digital signature
    • Software
    • Data
      • Fonts
      • Icons
      • Sample data
    • Documentation
    • Configuration files
    • Setup scripts
      • Pre-install
      • Post-install
      • Pre-uninstall
      • Post-uninstall

The RPM Database

  • Purpose of the database
  • Querying the RPM database
    • rpm -q

Creating Packages

  • Packaging scenarios
  • Setting up a Packaging Environment
    • Needed packages
      • rpm-build
      • rpmdevtools
      • rpmlint
    • Setting up the RPM tree
      • rpmdev-setuptree
  • Source RPMS
    • Installing
    • Examining the contents
    • Rebuilding
      • rpmbuild --rebuild *.src.rpm
    • Building from the spec file

Writing a specfile

  • rpmdev-newspec packagename
  • Basic Sections
  1. preamble - basic metadata
  2.  %prep - commands to prepare the package for building
  3.  %build - commands to build the package
  4.  %install - commands to install the built files
  5.  %check - commands to check/test the built files (optional, often not included)
  6.  %clean - commands to clean up the disk space
  7.  %files - list of files to be included in the pacakge
  8.  %changelog - record of the package's change-history
  • Scriptlets
    •  %pre
    •  %post
    •  %preun
    •  %postun
  • Macros
    •  %{_tmppath}
    •  %{buildroot}
    •  %{_bindir}
    •  %{_datadir}
    •  %{_mandir}
    •  %{_smp_flags}
    •  %setup
    •  %configure
    •  %makeinstall

Creating a Simple Package

  • NLED
  • Writing the specfile
  • Testing the specfile
  • Using rpmlint

Resources

See also "Fedora Linux" chapter 5 (see Seneca Library website > eBooks > View All > Safari > Fedora Linux).

TODO:

  • Take the software you compiled last week and package it. Blog about the experience. Include a link to your source RPM (and optionally your binary RPM) from your blog.
  • Remember to blog about your project work this week.

Week 6 (Oct 6) - RPM Scripts

Guest speaker: Andrew Overholt

Andrew Overholt works at Red Hat's Toronto office, primarily focusing on Eclipse; he'll be speaking about packaging issues. This session will be videotaped for the web.

Week 7 (Oct 13) - Creating a Repository

FSOSS and Break Week (Oct 20)

Week 8 (Oct 27) - Using Mock

Week 9 (Nov 3) - Python Scripting Basics I

Week 10 (Nov 10) - Python Scripting Basics II

Week 11 (Nov 17) - Using Libvirt

Week 12 (Nov 24) - Project presentations

Week 13 (Dec 1) - Exam review

Exam Week (Dec 8)