It would be nice to have this extremely useful continual build checker as an ebuild.
Ok, here's an attempt. The dependencies could be better... Uses /var/cruisecontrol as default work directory.
Created attachment 41278 [details] cruisecontrol-2.1.6.ebuild
Created attachment 41279 [details] files/config.xml
Created attachment 41280 [details] files/build.xml Not really necessary, it just offers a sample skeleton to build your own from.
This ebuild fails for me. "virtual-java" fails, and I replace that with "dev-java/sun-jdk". I have Sun 1.4.2.05 set as my system JVM. Sun 1.5.0 is installed as well. Next, I get errors: bash-2.05b# emerge cruisecontrol Calculating dependencies ...done! >>> emerge (1 of 1) dev-util/cruisecontrol-2.1.6 to / >>> md5 src_uri ;-) cruisecontrol-2.1.6.zip >>> Unpacking source... >>> Unpacking cruisecontrol-2.1.6.zip to /var/tmp/portage/cruisecontrol-2.1.6/work >>> Source unpacked. * Building CruiseControl Could not find package xerces Could not find package ant Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/tools/ant/Main !!! ERROR: dev-util/cruisecontrol-2.1.6 failed. !!! Function src_compile, Line 41, Exitcode 1 !!! Compile of cruisecontrol failed !!! If you need support, post the topmost build error, NOT this status message. Next: bash-2.05b$ java-config --classpath=junit,xerces,commons-collections,ant,commons-logging Could not find package xerces Could not find package ant /usr/share/junit/lib/junit.jar:/usr/share/commons-collections/lib/commons-collections.jar:/usr/share/commons-logging/lib/commons-logging-api.jar:/usr/share/commons-logging/lib/commons-logging.jar I have unmerged and remerged Xerces and ant. Is the problem actually something in those ebuilds? I don't know what is registered so that they would be found.
For one thing cruisecontrol depends on the version 1 series of xerces, not the version 2 series, so you'll need to change the DEPEND on xerces to <=dev-java/xerces-2.0.0 (i.e. you want the 1.3.1 build).
Any interest in this?
Created attachment 58438 [details] cruisecontrol-2.1.6-r1.ebuild * Changed dependency from dev-java/ant to dev-java/ant-core * Changed dependency from virtual/java to virtual/jdk * Changed dependency from dev-java/xerces to =dev-java/xerces-1* * Added doc to IUSE * Added src_unpack, and a patch that disables checkstyle from being used for the webapp * Replaced "java -cp "$CLASSPATH" org.apache.tools.ant.Main" with calls to ant * No longers installs cruisecontrol.sh from FILESDIR (it's actually in ${S}/main/bin ) * Documentation is only made/installed when doc is in USEFLAGS * Variable in pkg_config made local
This package also would need a new license added to portage. It is available at http://confluence.public.thoughtworks.org/display/CCNET/License
Created attachment 58597 [details, diff] cruisecontrol-2.1.6-nocheckstyle.patch This patch prevents ${S}/reporting/jsp/build.xml's compile target from depending on checkstyle
Created attachment 58602 [details] cruisecontrol-2.1.6-r1.ebuild An improved ebuild. * I changed the way external jars are used, after talking to some folks on #gentoo-java. This time around, we'll use a build.properties file. Both build.xml files needed to be tweaked to accomplish this, and is done through ${P}-gentoo.patch * Now uses external jars for the webapp, and dependencies were added * Added jikes, junit, and checkstyle use flags * Tweaked the way ant is called in src_compile
Created attachment 58604 [details, diff] cruisecontrol-2.1.6-gentoo.patch Gentooifies the build.xml files to use a build.properties file, and some other tweaks.
Created attachment 58674 [details] dev-util/cruisecontrol/cruisecontrol-2.2.1.ebuild New version, improved from Josh's 2.1.6 ebuild with some fixes. * Added dependency: servletapi-2.4 (not used yet due to build problem) * Removed dependency: jfreechart (There is currently no ebuild for the required 0.9.8 version that is supplied with CruiseControl. The jfreechart API is very unstable and CruiseControl has not kept up to date with its changes.) * Fixed java-config line for jdom * In build.xml, use pathelement path=, not location= (java-config -p produces classpath-like results, not a single file) * Relocated configuration files to /etc * Added init script * Fixed installation process * Added cruise user and group * Moved log dir to /var/log * Removed redundant nocheckstyle patch * Tried to fix as best as I could the improper use of java-pkg_jar-from and java-config * Removed test-all target for war. test is called before building war. * Don't use jikes for war build. Jikes 1.21 and 1.22 both segfault over here. Please test. * Fixed dodoc for this version of CruiseControl * Do full installation without needing to run an ebuild config Problems (feel free to fix): * nscd caching helps generate unknown user messages * war packaging target is messed up due to the zipfileset target requirements of a directory or source file list, now packages with supplied jars instead of ones fetched from java-config, etc. * I don't think the system's batik libs are being used. The supplied ones work, though.
Created attachment 58675 [details, diff] dev-util/cruisecontrol/files/cruisecontrol-2.2.1-gentoo.patch
Created attachment 58677 [details] dev-util/cruisecontrol/files/cruisecontrol.init
Created attachment 58685 [details] dev-util/cruisecontrol/cruisecontrol-2.2.1.ebuild Keep build logs in /var/cruisecontrol/logs, but keep run logs in /var/log/cruisecontrol.
Created attachment 58686 [details] dev-util/cruisecontrol/files/cruisecontrol.init Fix startup with proper start-stop-daemon and coerce run logs to go to /var/log/cruisecontrol.
Created attachment 59411 [details] dev-util/cruisecontrol/cruisecontrol-2.2.1.ebuild Updated, added pmd patch, removed build.xml, etc.
Created attachment 59412 [details] dev-util/cruisecontrol/files/config-2.2.1.xml New config.xml with a much better example :)
Created attachment 59413 [details] dev-util/cruisecontrol/files/cruisecontrol.init Updated (I think)
Created attachment 59414 [details, diff] dev-util/cruisecontrol/files/cruisecontrol-2.2.1-pmd.patch Patch to display PMD XML reports in CC webapp. This hasn't been submitted upstream yet...
Created attachment 59416 [details, diff] dev-util/cruisecontrol/files/cruisecontrol-2.2.1-pmd.patch Gah! Fixed colspan; Sort columns numerically, not stringly; Reassigned severity colors (and in the proper order this time!)
Created attachment 59629 [details] dev-util/cruisecontrol/cruisecontrol-2.2.1.ebuild Added FindBugs reporting patch
Created attachment 59630 [details, diff] dev-util/cruisecontrol/files/cruisecontrol-2.2.1-findbugs.patch
Hi, I'm having problems in reaching the end of the compile process. It stops on the mx4j package (bug 95830 ?) missing the JMXDeserialiser library. I took a look at the Hessian code on the Caucho site and the jar does indeed contain various deserializers. It seems the mx4j ebuild has some wrong dependencies. Please check to add the Hessian ebuild and eventually correct the mx4j ebuild. This is anyway my error log. compile.tools: [mkdir] Created dir: /var/tmp/portage/mx4j-2.1.0/work/mx4j-2.1.0/classes/tools [javac] Compiling 308 source files to /var/tmp/portage/mx4j-2.1.0/work/mx4j-2.1.0/classes/tools [javac] /var/tmp/portage/mx4j-2.1.0/work/mx4j-2.1.0/src/tools/mx4j/tools/remote/caucho/serialization/JMXDeserializer.java:21: no interface expected here [javac] class JMXDeserializer extends Deserializer [javac] ^ [javac] /var/tmp/portage/mx4j-2.1.0/work/mx4j-2.1.0/src/tools/mx4j/tools/remote/caucho/serialization/JMXSerializer.java:21: no interface expected here [javac] class JMXSerializer extends Serializer [javac] ^ [javac] Note: Some input files use or override a deprecated API. [javac] Note: Recompile with -deprecation for details. [javac] 2 errors BUILD FAILED /var/tmp/portage/mx4j-2.1.0/work/mx4j-2.1.0/build/build.xml:298: Compile failed; see the compiler error output for details. Total time: 30 seconds !!! ERROR: dev-java/mx4j-2.1.0 failed. !!! Function src_compile, Line 51, Exitcode 1 !!! ant failed !!! If you need support, post the topmost build error, NOT this status message.
I haven't seen any update on the situation. Is there any progress? How about a 2.3 bump?
Created attachment 72708 [details] dev-util/cruisecontrol/cruisecontrol-2.3.1.ebuild
Created attachment 72709 [details, diff] dev-util/cruisecontrol/files/cruisecontrol-2.3.1-gentoo.patch
Created attachment 72711 [details, diff] dev-util/cruisecontrol/files/cruisecontrol-2.3.1-findbugs.patch
Created attachment 72712 [details] dev-util/cruisecontrol/files/cruisecontrol.init
I've added dev-util/cruisecontrol to the experimental java overlay (see http:// www.gentoo.org/proj/en/java/#doc_chap7) for details. It no longer depends on bundled dependencies. The most recent ebuild here still used bundled jars for fast-md5, cewolf, and an older release of jfreechart. I've added the necessary packages to the overlay to accomodate this. I've changed the init script to make use of /etc/conf.d/cruisecontrol. I've changed unit tests to be executed during src_test, and changed USE=junit to USE=test. I also had to change the sample config.xml, because there was a comment inside a comment, which XML parsers don't like. It works as far as I can tell, ie service starts and stops, and the webapp displays something, but I don't have a project ot test it on at the moment.
Created attachment 72972 [details] dev-util/cruisecontrol/cruisecontrol-2.3.1.ebuild * Added JSP 1.2 patch * Removed jdk1.4=true in override.properties
Created attachment 72973 [details, diff] dev-util/cruisecontrol/files/cruisecontrol-2.3.1-jsp12.patch
Created attachment 72974 [details, diff] dev-util/cruisecontrol/files/cruisecontrol-2.3.1-jsp12.patch Whoops. Wrong one.
(In reply to comment #32) > Created an attachment (id=72972) [edit] > dev-util/cruisecontrol/cruisecontrol-2.3.1.ebuild > > * Added JSP 1.2 patch > * Removed jdk1.4=true in override.properties > The depency "dev-java/checkstyle" doesnt exist no more (its now in category dev-util). Its only requested if setting USE="checkstyle" The initscript contains useless checks against a cygwin enviroment (we are on gentoo here...)
USE="checkstyle" fails for me... first of all ant doesnt find the checkstyle.jar (there is an symlink in the cc lib dir to the installed checkstyle.jar) but ant keeps looking for this file (static reference from build.xml) <property name="checkstyle.jar" value="${lib}/checkstyle-all-3.1.jar"/> should be: <property name="checkstyle.jar" value="${lib}/checkstyle.jar"/> and this leads to the following output: --- checkstyle: [taskdef] Could not load definitions from resource checkstyletask.properties. It could not be found. BUILD FAILED /var/tmp/portage/cruisecontrol-2.3.1/work/cruisecontrol-2.3.1/main/build.xml:187: Could not create task or type of type: checkstyle. ---- if ant is pointed to the correct checkstyle.jar (version 3.5) this leads to lots of ClassCastExceptions... BUILD FAILED /var/tmp/portage/cruisecontrol-2.3.1/work/cruisecontrol-2.3.1/main/build.xml:187: Got 271 errors and 0 warnings.
this is related to the 2.3.1 ebuild from the experimental java repository: if the metrics tab is included in the reporting app, i get the following error: org.apache.jasper.JasperException: /main.jsp(74,16) Unable to read TLD "META-INF/taglib.tld" from JAR file "file:/opt/tomcat5/webapps/cruisecontrol/WEB-INF/lib i figured out that it has something to do with the cewolf jar, but i were not able to fix it...
CruiseControl 1.4 is out, this might fix some of the hard dependencies which cause problems with Java 5. http://cruisecontrol.sourceforge.net/download.html
2.4.1 just came out. The previous release is not worth bothering with.
Created attachment 103707 [details] dev-util/cruisecontrol-2.5.ebuild i made an ebuild for 2.5. its far from perfect and i couldn't really get all theses strange dependencies to source packages resolved for example: http://opensymphony.com/xwork/ http://www.vasoftware.com/ maven-embedder jfreechart seems not to be api compatible between 0.9.8 and 0.9.20 there are probably a lot of unnecessary dependency packages i just wanted to get it done. depends on a lot of packages from the gentoo java-overlay http://overlays.gentoo.org/svn/proj/java/ needs these from bug.gentoo.org http://bugs.gentoo.org/show_bug.cgi?id=132858 (dev-java/xmlrpc) http://bugs.gentoo.org/show_bug.cgi?id=157478 (dev-java/emma) i didnt have the chance to actual try it yet, so it might be broken.
Created attachment 103708 [details] files/2.5/cruisecontrol.conf config file
Created attachment 103709 [details, diff] files/2.5/cruisecontrol-2.5-findbugs.patch adapted patch
Created attachment 103710 [details, diff] files/2.5/cruisecontrol-2.5-gentoo.patch adapted patch
Created attachment 103711 [details, diff] files/2.5/cruisecontrol-2.5-jsp12.patch adapted patch
(this is an automated message based on filtering criteria that matched this bug) Hello, The Gentoo Team would like to firstly thank you for your ebuild submission. We also apologize for not being able to accommodate you in a timely manner. There are simply too many new packages. Allow me to use this opportunity to introduce you to Gentoo Sunrise. The sunrise overlay[1] is a overlay for Gentoo which we allow trusted users to commit to and all users can have ebuilds reviewed by Gentoo devs for entry into the overlay. So, the sunrise team is suggesting that you look into this and submit your ebuild to the overlay where even *you* can commit to. =) Because this is a mass message, we are also asking you to be patient with us. We anticipate a large number of requests in a short time. Thanks, On behalf of the Gentoo Sunrise Team, Jeremy. [1]: http://www.gentoo.org/proj/en/sunrise/ [2]: http://overlays.gentoo.org/proj/sunrise/wiki/SunriseFaq
Honestly I don't think this ebuild will ever hit the tree. Last update dates back to 2010. I'm not sure this project is actively maintained. For those of you interested in CI, consider another alternative such as Jenkins. We have the -bin version of it already packaged for Gentoo. [1] Closing this bug. [1]: https://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/dev-util/jenkins-bin/