$Id$ $Revision$ Nice, we finished with the first half of the T&S Question set. Let's go on with the second half, which contains additional stuff I want to know from you. All questions are solveable with a bit of thinking mixed with google, so I simply expect you can answer all of them. But before you die over one of it - come back and talk with me, I can give you some hints. After all, the process should enhance your knowledge and should not make your life to tough? 1. Why does a foo-dev package depends on foo? Why is it fooX-dev and not foo-dev in some cases? 2. When would you use the alternatives system, and how? 3. How can you minimize the downtime of a service during upgrade? Be specific about how you'd use the maintainer scripts. 4. What are FTBFS bugs? How would you avoid them? 5. What would you do if a package has no sane default configuration? (There is *no* default configuration that works on most systems!) 6. What would you do if your package contains an Emacs major mode? If you don't use/know Emacs then this: What would you do if your package contains a perl module? Or if it is python? No Emacs, no Perl, no Python? Go away. Or tell me what to do if you package something Java related. :) 7. How does Debian maintain consistency between different Windowmanager menus? 8. What are base, standard, optional and extra? Why are they useful? What is Essential: yes? Why isn't libc Essential? Why isn't the kernel? Why can't libc be essential? Why does libc not need to be essential? 9. What does the "urgency" field in changelog affect? When would you use which urgency? A. a. Have you ever written a man page? If so, please tell me which. If not, please take a look at http://qa.debian.org/man-pages.html and choose a package listed there. Then please write a man page for it, submit it to the BTS and tell me the bug number for it please. b. Please look at http://bugs.debian.org/release-critical/debian/all.html, choose a bug listed there (please try to find one older than a few days), try to create a patch to fix it and submit this patch to the BTS. If you can't fix the bug, you should document what you've found out about the bug in the BTS. Then prepare, if possible, a NMU and send me a pointer to your NMU patch. Do the same thing again for 2 other bugs with severity Important or higher again. If you couldn't fix a bug, you should send me the bug number of the one you tried to fix. B. What are maintainer scripts? What arguments does each get? What is the meaning of the arguments? What can each of them assume about the system? C. Write a small shell script which does the following two things: a. prints whether a Debian package archive file has a copyright file in the appropriate location. b. prints out the package version from the control file which is inside the .deb. You may use tar, ar, grep, etc., but not any middle or high-level dpkg tools. D. How does a porter handle a rebuild? E. What is the difference between experimental and unstable? F. What would you do if you had a package which includes a mix of Architecture-dependent and architecture-independent files? G. Dpkg does not support versioned provides. Explain what that means, and list common workarounds. H. There is a minimal set of packages you never need to Build-Depend on. Tell me which and why. I. What build target would you use in debian/rules to build a package which includes only Non-architecture-dependent files? What is the "Architecture:" section for this package? J. Fundamental runtime linker knowledge: J0. What are library sonames, and what are they used for? What is the "ELF" format? J1. How does the utility "fakeroot" work? How is that tied to LD_PRELOAD, and the runtime linker? J2. What is a symbol-versioned library? Why are libdb2, libdb3 and libc6 compiled using symbol versioning? What problems does symbol-versioning solve? J3. What is the -Bsymbolic ld flag, exactly what does it do, and how that differs from library symbol versioning? What problems do -Bsymbolic linking solve? Why is libc6 not compiled with -Bsymbolic? K. What is endianess and why does it matter when supporting multiple architectures? You are finished with the questions. As I already announced with my first T&S mail, I will check your package after you answered the questions above. So please upload the latest and greatest version to the archive at dak.ganneff.de and tell me the names of your packages.