Skip to content

Instantly share code, notes, and snippets.

@chewi
Created December 5, 2014 23:06
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save chewi/5fa9fcd265e458e5fa0e to your computer and use it in GitHub Desktop.
Save chewi/5fa9fcd265e458e5fa0e to your computer and use it in GitHub Desktop.
The Gentoo Java quiz
= Ant fun =
Q1. build.sysclasspath
Q1.1. What effect does the property build.sysclasspath=ignore have?
Q1.2. Why would we want to use it?
Q1.3. How would it 'break' packages?
Q1.4. How do you fix these breakages?
Q2. An ant build has a 'get-deps' target that always gets called to
download the dependencies.
Q2.1. Why is this bad?
Q2.2. How can it be fixed?
Q3. What should be done if a build.xml has targets that are always
executed and you either don't want to execute or want to control
that behavior via use flag or other means?
Q4. How should you handle a build.xml file that uses the available
task to decide what features to turn on?
= Classpath =
Q1. You have a launcher that does `java
-classpath /usr/share/foo/lib/foo.jar
-jar /usr/share/bar/lib/bar.jar`. When this is launched, it fails
to find some classes from foo.jar.
Q1.1. Why is this happening?
Q1.2. What is one way to fix it?
Q2. User/system classpath
Q2.1. Why is using java-config ability to set a user / system classpath
deprecated?
Q2.2. How do you manually set a global classpath without using
java-config?
= Ebuilds =
Q1. How do you add optional Java support to an ebuild?
Q2. Why is it important to use the Java eclasses for anything that has
anything to do with Java?
Q3. How would you test a package using a specific virtual machine?
Q4. Are you allowed to turn off build.xml rewriting if so, when?
Q5. You have a package that needs to build some JNI stuff. How do you
get the appropriate CFLAGS?
Q6. You want your package to have a script to launch the foo.Bar
class. How would you create this?
Q7. How should you handle unit tests?
Q8. How would you provide jars to packages that have them bundled in
their sources or have ant download them?
Q9. What should be done if a package can't be compiled as 1.4
source/target.
Q10. You want to package something new and the package users maven as
the build system. How will you handle this?
Q11. How do you install the following:
Q11.1. foobar-3.0.jar
Q11.2. docs/javadoc
Q11.3. jnilibrary.so
Q11.4. docs/index.html docs/foobar.html
Q11.5. examples/*
Q12. Why is JAVA_PKG_IUSE used?
= The Java system =
Q1. What's the difference between java-ant-2, java-pkg-2,
java-pkg-opt-2, and java-utils-2? When would it be appropriate to
use each?
Q2. What was the big deal about Java 1.5? Why did it take so long to
become unmasked?
Q3. Will the new Java system support Java 1.6 when it is released?
Java 1.7?
= Java Policies =
Q1. Describe our policy regarding bundled jars.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment