Hi Here is the log from a conversation between Petter and me on IRC (#debian-edu). Please read it and see if you can follow Petter's explanations as they are needed for working with the debian-edu CD. If somebody has some spare time we could also start to write a wiki page explaining the details. Thanks Petter for the good explanation, it gave me some more hints though I have to try it for myself first :) If you have any questions please answer to that thread. Cheers Steffen 10:59 < pere> white: do you find the cd build commit emails useful? do you understand the content? 10:59 < white> pere: what about the mutltiseat packages? 11:00 < pere> multiseat need testing before I want it on the stable CD. 11:00 < white> you added a spacelist 11:00 < white> ok leaving multiseat in etch-test 11:01 < pere> a spacelist? 11:02 < white> yeah like showing the size of the packages or am i wrong? 11:02 < pere> ah, th cdspacelist files. yes. it shows sizes reserved on the CD for a package in the wishlist/task. 11:03 < white> ok 11:03 < pere> I've used it to remove non-vital packages. 11:03 < white> was that what you mean by the commit emails? 11:03 < pere> Combined with the sort-by-popcon lists, it tell us what is actually needed and in use. 11:03 < pere> white: yes. 11:04 < pere> one need to understand the cdspacelist to be able to add new packages to the CD. it shows the consequences. 11:05 < white> which is the sort-by-popcon list? 11:06 < white> i don't really know if i am able to interprate the list in the right way, maybe a small description to the commits@ list would be useful 11:07 < pere> the sort-by-popcon list is in svn, and not commited with an email. the changes were too large every day. 11:07 < pere> I'm not sure either, which is why I ask. 11:07 < pere> I should perhaps start a wiki page to explain it. 11:08 < white> like i see the space and i can see that the size is increasing, but i don't really understand the connection between adding a new package and this list 11:08 < white> of course if we are running out of space the packages doesn't fit on the cd 11:08 < white> but how can i read the list in the right way to get the needed information? 11:08 < pere> let me try to explain 11:09 < white> sure 11:09 < pere> there are three things affecting the packages going onto the CD. the hintfile (in build/CD-administraotr/, the tasks (in debian-ed/tasks/), and the exclude file (in b/CD-a/debian-cd.patch. 11:10 < pere> the first two are combined to make a ordered list of packages to put on the CD, in that order. 11:11 < pere> the packages listed in the hintfile is placed first on the Cd, and next the tasks are added, ordered by task and priority (depends first, then recommends and finally suggests). the tasks are added in order too, so first all depends for common, networked, main-server, etc are inserted, then the recommends for the same tasks. 11:12 < pere> finally all the "other" tasks are added, like astronomy and math. 11:13 < pere> so to get a package on the CD, one can add a depends in one of the tasks, as long as that depend is added before the CD cutoff point, aka when no more packages make it into the Cd because it is full. 11:13 < pere> thus moving packages up in the standalone task will increase the chance of getting them on the CD, because the current cutoff point is just after quanta in that task. 11:15 < white> ah ok 11:15 < pere> but if the package is too big, like for example emacs21 (check out cdspacelist-etch-test.txt), it will not help to put it as a dependency ahead of quanta. 11:15 < pere> quanta is 5605 KiB, and the next package sane is 4970 KiB, while emacs21 needs 13151 KiB on the CD. 11:16 < pere> so to get emacs21 on the first CD, it would have to be placed ahead of kino (2907+6820+5605 > 13151) to fit. 11:17 < pere> and it would push kino, stopmotion and quanta into the second Cd. 11:17 < white> ah ok 11:18 < white> ah i found it 11:18 < white> like sane vim and so on are currently on cd2 11:18 < pere> to get sane and xsane on the first CD, we would have to throw out something using 6755 KiB on the CD. So redusing the priority of stopmotion (for example by moving it behind xsane in the standalone task) would get sane on the Cd. 11:18 < pere> white: yes, everything after the CD 2 marker is on the second cd. 11:19 < white> hmm we just have to calculate :) 11:19 < pere> the predictions get complicated because of dependencies. the first package using a dependency is assigned the cost of that dependency. 11:20 < white> ok i understand 11:20 < pere> so if two packages A and B depend on libC and placed on the C din that order, and you want to drop package A to save the space spent by it on the Cd, the real saving will be reduced because package B will still depend on libC and get the cost of that library assigned to it. 11:21 < pere> also, I have not mentioned the exclude file yet. 11:21 < white> these information should probably be stored in a wiki file 11:21 < pere> the exclude file include a list of packages we do not want on the first CD. all those packages and their reverse-dependencies are kept out of the CD. so inorwegian is kept out because ispell is excluded. 11:22 < pere> white: yes. do you have time to edit it together? 11:22 < white> not before tomorrow 11:23 < white> maybe tomorrow afternoon (= tomorrow morning), because i have to finish an assignment :( 11:23 < pere> the exclude list is very important to get correct, because there is one mechanism at work we can not tune that well. all packages with standard or higher priority in the debian archive are placed on the CD automatically. 11:23 < pere> white: ok. 11:23 < pere> perhaps post this conversation to the mailing list? 11:23 < white> good idea 11:23 < white> do you have a log or shall i send it? 11:23 < pere> all kernel packages have priority standard or higher, so if we are not careful, the CD will fill up with multiple kernel versions. 11:24 < pere> I do not have a log. 11:24 < white> ok 11:24 < pere> when I started looking at the CD build last weekend, the first thing I did was to look at the cdspacelist, find all the kernel packages we do not want (this include kernel module udebs), and put them on the exclude list. this gave us ~200 MiB of space to use on the CD. 11:25 < pere> each kernel is ~15 MiB, and we had 2.4.27, 2.6.15 and 2.6.16 packages for i386, i686, k7, etc. :) 11:25 < pere> the Cd only have i686-smp kernel on the CD now. 11:25 < white> yeah i didn't really payed attention to that 11:26 < pere> every new kernel version propagating into etch will imediately occupy a large percentage of the CD until we exclude it or update to use the new version and exclude the old kernel. 11:27 < white> hmm installer freeze will fix that for us 11:27 < pere> I found that all 2.4 kernels depend on initrd-tools, so by excluding that package we are sure no 2.4 kernel make it to the CD. before, I had to list each version independently. 11:28 < pere> there is also a bug in the debian-cd version we use (no idea if it is fixed in a later version). If an udeb provides a normal package needed by one of our wanted packages, the normal package is not included on the CD. 11:29 < pere> debian-cd do not know the difference between udebs and normal debs, and assume the udeb can be used instead of the normal deb and thus skip the normal deb. I've added a few packages to the hintfile to work around this. libsysfs2 and libdiscover1 had this problem. 11:31 < pere> any questions? 11:32 < white> i have to read it again and tryit when i want to hint a package 11:32 < white> i am sending the mail now
Attachment:
pgpPsvjauf9v4.pgp
Description: PGP signature