Ebuild development quiz Revision 1.10 - 05 August 2004 Answer in whatever length necessary for completeness. Review documentation. Consult your mentor if you're unable to locate answers. *** Organizational structure questions 1. When is it appropriate to post to gentoo-core rather than gentoo-dev? only for confidential things, complaints about policy, or in general 2. Who should be contacted with complaints about specific developers or projects? try to solve the problem w/ the developer himself if not possible, approach the team leads/managers, then approach ombudsman@gentoo.org, after that if still unsolved, then bring it to Developer Relations 3. What is the proper method for suggesting a wide-ranging feature or enhancement to Gentoo? file a GLEP (glep.gentoo.org) 4. What is the purpose of the Gentoo management team? the management team defines the goals and visions for their subprojects and for distribution 5. What is the purpose of the Gentoo Top Level Project (TLP) structure? to solve chronic management, coordination and communication issues in the Gentoo project 6. What is the purpose of herds? to maintain a set of related ebuilds *** Ebuild technical/policy questions 1. You change a package's ebuild to install an init script. Previously, the package had no init script at all. Is a revision bump necessary? Why? What about when adding a patch? Bump it for init script, because it adds new functionality Bump it for a patch, if it affects almost every user, if only a few are affected don't bump. 2. A user submits a "live" CVS ebuild. What would be a preferable alternative to such an ebuild? 3. (a) What is repoman? How would you check for QA problems with repoman? replacement for cvs commit, check for QA: repoman --pretend scan (b) A user submits a brand-new ebuild for a new package. What are the proper steps (including repoman/cvs commands) to take to add this ebuild to the tree? answered ... 4. A user submits an ebuild that has numerous technical problems and violates policy. How would you handle that situation? answered ... 5. You have a set of new ebuilds that could potentially benefit from a global USE flag. What steps should be taken before a new USE flag is implemented? What should be done if the USE flag only applies to a single package? answered ... 6. You're creating an ebuild. Unfortunately, the ebuild's 'make install' target causes numerous access violations. What is the best course of action to take to have a clean, straightforward ebuild? answered ... 7. You're creating an ebuild that needs a patch. The patch is nontrivially large - bigger than 20kbytes. Where should the patch be kept? answered ... 8. You're creating an ebuild that has its own license - one that doesn't exist in /usr/portage/licenses/. What is the proper course of action? answered ... 9. (a) You wish to mark an ebuild "stable," taking it out of ~ARCH KEYWORDS. It's a library. What steps should be taken to do so? answered ... (b) You wish to mark an ebuild "testing," putting it into ~ARCH KEYWORDS. It was previously hard-masked in package.mask. What should be done prior to doing so? answered ... (c) You wish to mark an ebuild "stable." It is a popular application, but no other ebuilds depend on it. What should be done first? answered ... 10. You're committing a user-submitted ebuild. What should be in the initial ChangeLog? answered ... 11. What is the difference between DEPEND and RDEPEND? build dependency, runtime dependency 12. You wish to make a change to an ebuild, but you checked ChangeLogs and metadata.xml and it appears to be maintained by someone else. How should you proceed? forward the change to the maintainer, file a bug, use IRC to communicate w/ the developer 13. You find a situation in which an eclass may be useful. What should you do before implementing such an eclass? see if there is no other, mention it on appropiate list, implement and post for comments 14. You find a package that will not build on some architectures without PIC (-fPIC) code in the shared libraries. What is the proper way to handle this situation? patch it so that only the libs are built w/ PIC 15. What do you do when you'd like to have a package you maintain tested or marked stable on other architectures? file a bug and cc each arch@gentoo.org on it 16. How can you verify an ebuild has correct run time dependencies (RDEPEND) for all installed binaries? ldd, also configure testing for specific installed versions 17. How do you deal with a situation in which an ebuild wishes to install a file already installed by another package? a. packages may block each other (using DEPEND/RDEPEND) b. common parts can be moved into a 3. package and make them both REDEPEND on the 3. package c. rename the binaries and install a configurator to switch between them d. rename one of them if they do not have the same functionality (look in other distros what they've done) 18. Most configure scripts attempt to automatically determine settings based on the host system. When should the ebuild specifically override settings? if target is not the same as build host (cross-compiling for sure) and USE flags *** Please also submit the following information: * GPG public key ID (if you do not have one, please create one) 0xA5F059F2 * Date of birth 1962.02.08 * What are your programming/scripting skills, if applicable? none * What other areas are you experienced in? answered ... * What other projects have you contributed to, if any? uclibc, gentoo-hardened, gentoo-uclibc * Tell us about yourself. This doesn't need to be strictly computer-relevant; things like where you're from, hobbies, job, family, interests... music(guitar,piano), electronics, playing bridge