Gentoo Archives: gentoo-dev

From: "Anthony G. Basile" <blueness@g.o>
To: gentoo-dev@l.g.o
Subject: Re: [gentoo-dev] College Course in Gentoo Development
Date: Tue, 18 Dec 2012 00:47:46
Message-Id: 50CFBCF8.9080203@gentoo.org
In Reply to: Re: [gentoo-dev] College Course in Gentoo Development by Maxim Kammerer
1 On 12/17/2012 01:11 PM, Maxim Kammerer wrote:
2 > On Mon, Dec 17, 2012 at 5:32 PM, Anthony G. Basile<blueness@g.o> wrote:
3 >> Please comment. If it gets systematized enough, it can be a guide to future
4 >> devs too.
5 > Hi, what is the level of the students, what are the prerequisites
6 > (i.e., have they already seen some systems programming using C?), and
7 > how many weekly hours? Have you already designed some assignments? I
8 > can think of the following:
9 >
10 > 1. Create a small makefile-based project with a separate shared
11 > library, an executable, and a man page. Determine run-time and
12 > build-time dependencies. Then convert to autotools, update
13 > dependencies. Do it all on GitHub, with a separate branch for
14 > converting to autotools.
15
16 Its a second year course so they've had some programming in Java but no
17 serious C. It meets 3 hours a week but I expect about 6 hours more per
18 week in assignments.
19
20 There is some overlap with other stuff I've taught: Makefiles,
21 autotools, git and shared objects. I did my lecture materials in git
22 and then ran a git rebase -i in class and redid the commits showing them
23 what happened on each point. You can see some of that stuff here ->
24
25 practice with git ->
26 http://tweedledum.dyc.edu/gitweb/?p=model-git.git;a=summary
27
28 how autotools works ->
29 http://tweedledum.dyc.edu/gitweb/?p=autotools.git;a=summary
30
31 how Makefiles work ->
32 http://tweedledum.dyc.edu/gitweb/?p=makefile.git;a=summary
33
34 how shared objects work ->
35 http://tweedledum.dyc.edu/gitweb/?p=shared-objects.git;a=summary
36
37 >
38 > 2. Write an ebuild for the project above, maintained in an overlay
39 > (also on GitHub), with sources fetched from GitHub. Add some small
40 > patch to configure.ac in the ebuild. Add USE flags. Add "make check"
41 > support to the build system, test with FEATURES=test. Many
42 > ebuild-related tasks can be easily added (e.g. installing init.d
43 > scripts).
44
45 This would be totally new to them but I agree that's a good idea. I
46 don't know about GitHub. Can you delete projects from it when you're
47 done because I don't want to polute GitHub with lots of unpolished stuff.
48
49 >
50 > 3. Take an old-version ebuild for a project with a known bug, fetch
51 > the relevant git tag, and bisect to find the bug. Prepare a patch,
52 > describe patch submission process.
53 Hmm ... I didn't think of this but I could do that with the kernel on
54 virtual machines.
55
56 >
57 > Wrt. subjects covered, will you cover sandboxing, installing to image
58 > vs. merging to live system, etc.? I would expect students to like such
59 > stuff.
60 >
61 At some point I would have to cover that. Like when I got over the
62 phases of emerging, stepping through them with ebuild.
63
64 --
65 Anthony G. Basile, Ph.D.
66 Gentoo Linux Developer [Hardened]
67 E-Mail : blueness@g.o
68 GnuPG FP : 8040 5A4D 8709 21B1 1A88 33CE 979C AF40 D045 5535
69 GnuPG ID : D0455535

Replies

Subject Author
Re: [gentoo-dev] College Course in Gentoo Development Richard Yao <ryao@g.o>