It's going to vary, based on what container you're using. Tomcat6 requires more than a fully-compliant
JEE 5 container would.
Here's my JSF2 from a recent project:
This example includes both JSF2 and a compatible version of RichFaces. If you remove RichFaces, you may be able to also remove some of the non-JSF J3EE dependencies as well, but I don't have any definite rules on that.
Including Hibernate is fairly straightforward.
The secret of how to be miserable is to constantly expect things are going to happen the way that they are "supposed" to happen.
You can have faith, which carries the understanding that you may be disappointed. Then there's being a willfully-blind idiot, which virtually guarantees it.