Difference between revisions of "Winter 2009 SBR600 Weekly Schedule"
Chris Tyler (talk | contribs) m (→Week 3 (January 26) - Creating RPM Packages and Working with Open Source Communities) |
Chris Tyler (talk | contribs) m |
||
Line 157: | Line 157: | ||
* 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. | * 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. | ||
− | = Week 4 (February 2) - Project Release 0.0 = | + | = Week 4 (February 2) - Working with Open Source Communities and Project Release 0.0 = |
+ | |||
+ | * Free Software and Open Source | ||
+ | ** Origins | ||
+ | *** Early computing | ||
+ | *** Public domain software | ||
+ | *** Richard Stallman and the Free Software Foundation | ||
+ | *** The Open Source Initiative | ||
+ | ** Current state | ||
+ | *** Becoming a dominant model in the industry | ||
+ | *** Prominent projects: Linux, Apache, OpenOffice.org, Eclipse, ... | ||
+ | ** What Open Source Means | ||
+ | *** Working in Public | ||
+ | *** Collaborating | ||
+ | *** Thinking and working globally | ||
+ | *** Reusing code, thinking smart, being nimble | ||
+ | ** Open Source business models | ||
+ | *** Support | ||
+ | *** Customization | ||
+ | *** Sponsorship | ||
+ | |||
+ | * Release and Build on Open Source | ||
+ | ** Looks like release and build in proprietary projects | ||
+ | ** More developers | ||
+ | ** More casual contributors | ||
+ | ** Internet instead of private network | ||
+ | *** Security issues | ||
+ | |||
+ | * The Fedora Project | ||
+ | ** Red Hat Linux | ||
+ | ** Fedora Core and Fedora Extras | ||
+ | ** Fedora | ||
+ | ** "Dedicated to the rapid advancement of Open Source" | ||
+ | ** The 4 F's | ||
+ | *** Features | ||
+ | *** Friends | ||
+ | *** Freedom | ||
+ | *** First | ||
+ | |||
+ | * The Structure of Fedora | ||
+ | ** Communication tools | ||
+ | ** Funding | ||
+ | ** How software gets into Fedora | ||
+ | ** Face to face | ||
+ | *** FUDCons | ||
+ | *** FADs | ||
+ | |||
= Week 5 (February 9) - Basic Build I = | = Week 5 (February 9) - Basic Build I = | ||
= Week 6 (February 16) - Basic Build II = | = Week 6 (February 16) - Basic Build II = |
Revision as of 11:32, 3 February 2009
Please note:
- The schedule here is tentative.
- Week-by-week details will be filled in as the course progresses.
Contents
- 1 Week 1 (January 12) - Introduction
- 2 Week 2 (January 19) - Overview of the Build and Release Processs
- 3 Week 3 (January 26) - Creating RPM Packages
- 4 Week 4 (February 2) - Working with Open Source Communities and Project Release 0.0
- 5 Week 5 (February 9) - Basic Build I
- 6 Week 6 (February 16) - Basic Build II
- 7 Week 7 (February 23) - Basic Build III - Project Release 0.1
- 8 Study Week (March 2)
- 9 Week 8 (March 9) - Server Farms & Distributed Processing I
- 10 Week 9 (March 16) - Server Farms & Distributed Processing II
- 11 Week 10 (March 23) - Server Farms & Distributed Processing III - Project Release 0.2
- 12 Week 11 (March 30) - Supporting Technologies I
- 13 Week 12 (April 6) - Supporting Technologies II
- 14 Week 13 (April 13) - Project Release 0.3 & Presentations
- 15 Exam Week (April 20)
Week 1 (January 12) - Introduction
Tuesday
- Welcome
- Introductions
- Intro to Build & Release
- Brief overview of the process
- Versioning & repository systems
- Compilation
- Testing
- Packaging
- Compositing
- Release
- Distribution
- Mirroring
- These steps vary according to the particular project/product. For example, when distributing software physically, "Release" means performing a 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.
- Brief overview of the process
- Course Layout
- Project-based course
- Working with Open Source
- Working with the Fedora Project
- Communication Tools
- Course Outline
- Visit the CDOT Area
Thursday
- Makefile Basics
- Targets, Dependencies, and Commands
- Implied rules (e.g., .o files)
- Examples
Readings/Resources
- Two simple makefile examples
ToDo:
Communication Lab: By Thursday, January 15, Set up your accounts (wiki, IRC, FAS2).
- Create a blog post which will appear on the OpenSource@Seneca Planet, containing:
- 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 wiki
- A link to your User page on the Fedora wiki
- Add an entry to the Winter 2009 SBR600 Participants page
Lab 1: By Wednesday, January 21:
- Build 2 packages from Source
- The NLED editor from http://cdot.senecac.on.ca
- Any package that uses autoconf -- SourceForge might be a good place to look for such packages.
- Blog about the experience.
Week 2 (January 19) - Overview of the Build and Release Processs
(Classes cancelled due to professor's illness)
- Complete ToDo items from week 1 if not already done.
Week 3 (January 26) - Creating RPM Packages
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
- Triggers
- Metadata
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
- run
rpmdev-setuptree
- run
- Needed packages
- Taking a look at existing source RPMS (useful as examples)
- Installing
-
yumdownloader --source nameofpackage
-
rpm -i nameofpackage.src.rpm
- Source will be in ~/rpmbuild/SOURCES and specfile will be in ~/rpmbuild/SPECS
-
- Examine the specfile
- Rebuild on the local machine
-
rpmbuild --rebuild nameofpackage.src.rpm
-
- Building from the spec file
-
cd ~/rpmbuild/SPECS; rpmbuild -ba nameofpackage.spec
-
- Installing
Writing a specfile
- Run
rpmdev-newspec packagename
in ~/rpmbuild/SPECS - Edit the skeleton specfile.
- Test it:
rpmbuild -ba packagename.spec
Layout of a specfile
- Basic Sections
- preamble - basic metadata
- %prep - commands to prepare the package for building
- %build - commands to build the package
- %install - commands to install the built files
- %check - commands to check/test the built files (optional, often not included)
- %clean - commands to clean up the disk space
- %files - list of files to be included in the pacakge
- %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 (not Nled!). Blog about the experience. Include a link to your source RPM (and optionally your binary RPM) from your blog.
Week 4 (February 2) - Working with Open Source Communities and Project Release 0.0
- Free Software and Open Source
- Origins
- Early computing
- Public domain software
- Richard Stallman and the Free Software Foundation
- The Open Source Initiative
- Current state
- Becoming a dominant model in the industry
- Prominent projects: Linux, Apache, OpenOffice.org, Eclipse, ...
- What Open Source Means
- Working in Public
- Collaborating
- Thinking and working globally
- Reusing code, thinking smart, being nimble
- Open Source business models
- Support
- Customization
- Sponsorship
- Origins
- Release and Build on Open Source
- Looks like release and build in proprietary projects
- More developers
- More casual contributors
- Internet instead of private network
- Security issues
- The Fedora Project
- Red Hat Linux
- Fedora Core and Fedora Extras
- Fedora
- "Dedicated to the rapid advancement of Open Source"
- The 4 F's
- Features
- Friends
- Freedom
- First
- The Structure of Fedora
- Communication tools
- Funding
- How software gets into Fedora
- Face to face
- FUDCons
- FADs