[SCM] jenkins packaging branch, master, updated. debian/1.447.2+dfsg-2-4-g3bd9721
James Page
james.page at ubuntu.com
Wed Nov 21 09:54:35 UTC 2012
The following commit has been merged in the master branch:
commit adc37068868d534723c0a1557252ef004e69dd04
Merge: bd0313647ba8244c73fdc595725cab6c2f5d39e1 8597f5883423cd0c74d8b8fbe46b190f3478a486
Author: James Page <james.page at ubuntu.com>
Date: Wed Sep 19 13:00:20 2012 +0100
Imported Debian patch 1.466.2+dfsg-0ubuntu1
diff --combined debian/README.source
index e3c6a87,0000000..6d8f091
mode 100644,000000..100644
--- a/debian/README.source
+++ b/debian/README.source
@@@ -1,27 -1,0 +1,37 @@@
+Information about jenkins
+-------------------------
+
+This package was debianized using the mh_make command
+from the maven-debian-helper package.
+
+The build system uses Maven but prevents it from downloading
+anything from the Internet, making the build compliant with
+the Debian policy.
+
+Upstream Plugin Compatiblity
+----------------------------
+
+Jenkins for Debian retains compatibility with plugins distributed by
+Jenkins upstream through the Jenkins Updates Site. These plugins are
+signed to allow them to be verified by Jenkins prior to installation.
+
+This signature is verified through the use of the a root Certificate
+that is distributed as part of the source code and resulting binary
+package:
+
+ war/src/main/webapp/WEB-INF/update-center-rootCAs/hudson-community
+
+This file is generated from the Private key held by Jenkins upstream and
+as a result cannot be re-created from the source tree.
+
+Note that it is superceeded with a new key in later versions of jenkins.
++
++stapler-adjunct-zeroclipboard
++-----------------------------
++
++This dependency is currently ignored during the build of jenkins.
++
++This library provides a flash based way on copying text to the clipboard.
++
++The supporting code in Jenkins has been left in place as it appears to
++be unused in 1.466.1.
diff --combined debian/changelog
index be948da,0000000..71749eb
mode 100644,000000..100644
--- a/debian/changelog
+++ b/debian/changelog
@@@ -1,199 -1,0 +1,218 @@@
- jenkins (1.447.2+dfsg-2) unstable; urgency=low
++jenkins (1.466.2+dfsg-0ubuntu1) quantal; urgency=low
+
- * Fix multiple security issues in Jenkins core (Closes: #688298):
- - d/p/security/CVE-2012-4438_CVE-2012-4439.patch: Cherry picked
- fixes from 1.466.2 release to resolve remote code execution
- and XSS security vulnerabilities.
- - d/rules: Tweaked handling of groovy -> java source file copy to
- accommodate the file created by the above patch.
- - Fixes: CVE-2012-4438, CVE-2012-4439
++ * New upstream bug fix release.
++ * d/rules: Updated handling of java files in groovy source folder.
+
- -- James Page <james.page at ubuntu.com> Tue, 25 Sep 2012 11:01:53 +0100
++ -- James Page <james.page at ubuntu.com> Wed, 19 Sep 2012 13:00:20 +0100
++
++jenkins (1.466.1+dfsg-0ubuntu2) quantal; urgency=low
++
++ * Fix maven based builds in slave mode (LP: #1045795):
++ - d/rules: Copy all java files incorrectly located in groovy src
++ folder to the correct location to fixup problem with missing
++ class MarkFindingOutputStream.
++
++ -- James Page <james.page at ubuntu.com> Wed, 05 Sep 2012 09:41:33 +0100
++
++jenkins (1.466.1+dfsg-0ubuntu1) quantal; urgency=low
++
++ * New upstream release:
++ - d/p/dependency-upgrades/asm3-upgrade.patch,
++ d/p/animal-sniffer-upgrade.patch: Dropped - upgrades now in upstream.
++ - d/maven.ignoreRules: Ignore new stapler-adjunct-zeroclipboard and
++ windows-package-checker dependencies; not required for Debian.
++ - d/maven.rules,d/p/use-stock-asm3.patch: Don't use Jenkins jarjar of
++ asm3; we have a consistent asm3 dependency chain in Debian/Ubuntu.
++ - d/p/remove-findbugs.patch: Updated with new annotations to remove.
++ - d/control: Bumped minimum versions of libjenkins-remoting-java and
++ libstapler-java inline with upstream.
++
++ -- James Page <james.page at ubuntu.com> Fri, 27 Jul 2012 15:53:57 +0100
+
+jenkins (1.447.2+dfsg-1) unstable; urgency=low
+
+ * New upstream release.
+ * Ensure jenkins keeps logging after log rotation (LP: #993065).
+ - d/*.logrotate: Switch to copytruncate so jenkins does not lose
+ the original file handle.
+
+ -- James Page <james.page at ubuntu.com> Thu, 21 Jun 2012 09:47:58 +0100
+
+jenkins (1.447.1+dfsg-1) unstable; urgency=low
+
+ * New upstream release:
+ - d/patches/dependency-upgrade/groovy-upgrade.patch: Dropped - now
+ aligned to upstream version.
+ - d/patches/build/jenkins-version-number.patch: Patch in small version
+ handling library from Jenkins project rather than package separately.
+ - d/patches/build/use-stock-jmdns.patch, d/maven.rules: Revert upstream
+ use of minor fork of JmDNS.
+ - d/patches/build/build.patch: Allow building with Maven 2, this works
+ OK for this package as Maven 3 features are not used by the package
+ build process at the moment.
+ - d/patches/build/remove-findbugs.patch: Drop findbugs annotations from
+ the codebase as this tool is not packaged for Debian.
+ - Refreshed all other patches.
+ - d/maven.ignoreRules, d/maven.properties: Disable unit testing and ignore
+ powermock dependencies until powermock is packaged.
+ - d/maven.ignoreRules, d/NEWS: Ignore jenkins sshd module until it gets
+ packaged and let users know this feature is missing.
+ - d/control: Added new dependencies on libsisu-guice-java, libmockito-java.
+
+ -- James Page <james.page at ubuntu.com> Wed, 02 May 2012 15:12:45 +0100
+
+jenkins (1.424.6+dfsg-1) unstable; urgency=low
+
+ * New upstream release, fixing XSS security vulnerability (Closes: #664057):
+ - d/control: Add new dependency on libowasp-java-html-sanitizer-java.
+ - d/maven.rules: Add new rule to use artifacts
+ from libowasp-java-html-sanitizer-java.
+ * Switch upstart configurations to use start-stop-daemon to allow
+ desktop systems to shutdown.
+ * d/jenkins-slave.upstart.in: Ensure /var/run/jenkins exists before
+ trying to download the jenkins slave.jar file to it.
+ Thanks to Al Stone for providing this fix.
+
+ -- James Page <james.page at ubuntu.com> Tue, 27 Mar 2012 09:17:51 +0100
+
+jenkins (1.424.3+dfsg-1) unstable; urgency=low
+
+ * New upstream bugfix release.
+ * Refreshed patches:
+ - Dropped disable-avalon-frawework.patch - no longer required.
+ * Bumped Standards-Version: 3.9.3; no changes required.
+ * Enable use of jenkins-instance-identity and jenkins-ssh-cli-auth to
+ support use of public/private keypairs when using the jenkins remote
+ cli tool.
+ * Dropped jcaptcha-slf4j.patch; no longer required as library not used.
+ * Updated plugin parent pom file to specifiy default source/target for
+ maven-compiler-plugin as Java 1.5.
+ * Ensure that jenkins group exists and that its the primary group for
+ the jenkins user to help deal with transition from upstream packaging
+ (Closes: #661203).
+
+ -- James Page <james.page at ubuntu.com> Tue, 28 Feb 2012 16:51:50 +0000
+
+jenkins (1.424.2+dfsg-2) unstable; urgency=low
+
+ * Enable Jenkins plugin components to support building plugins and
+ modules (Closes: #658071):
+ - d/control: Enabled libjenkins-plugin-parent-java, updated dependencies.
+ - d/plugin-debian.pom.in,rules: Install pom file to act as parent POM for
+ plugin development based on upstream plugin pom file.
+ - d/libjenkins-plugin-parent-java.poms: Dropped - no longer required.
+ - d/patches/build/plugin.patch: Dropped - no longer required.
+ * Switch to using libservlet2.5-java (Closes: #658805)
+
+ -- James Page <james.page at ubuntu.com> Fri, 10 Feb 2012 14:20:19 +0000
+
+jenkins (1.424.2+dfsg-1) unstable; urgency=low
+
+ [ Miguel Landaeta ]
+ * Replace dependencies on Spring Framework 2.5 libraries with 3.0 ones.
+ (Closes: #655906).
+
+ [ James Page ]
+ * New upstream release.
+ - d/control: Add new dependencies on libjenkins-remoting-java,
+ libstapler-adjunct-codemirror-java and libmaven-hpi-plugin-java.
+ - d/control: Dropped libjcaptcha-java; no longer needed.
+ * d/control: Switch to using packaged animal-sniffer.
+ * Refreshed patches:
+ - d/patches/build/{debianize-antrun-war,animal-sniffer-annotation}.patch:
+ dropped as no longer required.
+
+ -- James Page <james.page at ubuntu.com> Tue, 31 Jan 2012 10:33:56 +0000
+
+jenkins (1.409.3+dfsg-2) unstable; urgency=low
+
+ [ James Page ]
+ * http://www.cloudbees.com/jenkins-advisory/jenkins-security-advisory-2012-01-10.cb
+ - Rebuild to pickup new versions of jenkins-winstone (>= 0.9.10-jenkins-31)
+ and jenkins-executable-war (>= 1.25) to fix Hash DoS vulnerability in
+ jenkins when running standalone.
+
+ [ Damien Raude-Morvan ]
+ * Add DM-Upload-Allowed flag for James Page.
+
+ -- James Page <james.page at ubuntu.com> Sat, 14 Jan 2012 18:41:37 +0100
+
+jenkins (1.409.3+dfsg-1) unstable; urgency=low
+
+ * Initial Debian release (Closes: #561963):
+ - Repack for DFSG compliance.
+ * Disabled build of libjenkins-plugin-parent-java as not currently
+ installable due to broken upstream maven-hpi-plugin.
+ * Added Debian init scripts and default configuration for jenkins
+ and jenkins-slave packages and updated rules to switch in upstart
+ configuration for Ubuntu builds.
+ * d/bin/dowload-slave.sh: Updated to use parameter rather than
+ environment variable when locating Jenkins master server.
+
+ -- James Page <james.page at ubuntu.com> Fri, 09 Dec 2011 12:04:59 +0000
+
+jenkins (1.409.3-0ubuntu1) precise; urgency=low
+
+ * New upstream release:
+ - Refreshed patches.
+ - d/maven.rules: Updated jenkins version to 1.409.3.
+ * Pickup new version of jenkins-winstone resolving XSS security
+ vulnerability (LP: #889181).
+ * d/patches/build/apt-stapler-processing.patch: Temporary patch to fix
+ build when using later versions of stapler which use standard
+ Java annotation processing.
+
+ -- James Page <james.page at ubuntu.com> Tue, 22 Nov 2011 08:31:53 +0000
+
+jenkins (1.409.2-0ubuntu1) precise; urgency=low
+
+ * New upstream release:
+ - d/control: Added new BDI's - libjtidy-java, libjenkins-htmlunit-java
+ - Refreshed patches.
+ - d/maven.rules: Updated jenkins version to 1.409.2.
+ * Updated upstart configuration to start on runlevel [2345].
+ * Revised patches to filter on compile/test surplus native integrations
+ rather than patchout complete files.
+ * Re-organised patches by type.
+ * Fixed issue with projects with spaces in names with jenkins-monitor-job
+ (LP: #880786).
+
+ -- James Page <james.page at ubuntu.com> Sat, 22 Oct 2011 11:57:35 +0100
+
+jenkins (1.409.1-0ubuntu4) oneiric; urgency=low
+
+ * Resolve conflict between winstone and libservlet2.5-java (LP: #862272):
+ - debian/jenkins.upstart: Use java.net.URLClassLoader instead of
+ standard WebAppClassloader to ensure the winstone classes are used.
+
+ -- James Page <james.page at ubuntu.com> Tue, 11 Oct 2011 08:53:33 +0100
+
+jenkins (1.409.1-0ubuntu3) oneiric; urgency=low
+
+ * Fix FTBFS with asm3 >= 3.3 (LP: #851659):
+ - d/maven.rules: Use asm-all instead of asm to align to restructure
+ of jar files.
+
+ -- James Page <james.page at ubuntu.com> Fri, 16 Sep 2011 09:32:28 +0100
+
+jenkins (1.409.1-0ubuntu2) oneiric; urgency=low
+
+ * Resolved issue with specific group being set in upstart
+ configuration (LP: #820938).
+ * Rebuild to pickup new versions of jenkins-xstream to enable ARM
+ compatibility (LP: #827463).
+ * Rebuild to pickup new versions of jcaptcha and jenkins-winstone to
+ resolve compatibiltiy issues with libservlet2.5-java (LP: #827651).
+ * Fix FTBFS due to missing fonts causing test failure in Jenkins core:
+ - debian/control: added ttf-dejavu-core to Build-Depends-Indep.
+ * Fix FTBFS due to change in location of jtidy maven artifact:
+ - debian/maven.rules: switch jtidy -> net.sf.jtidy to pickup new
+ location.
+
+ -- James Page <james.page at ubuntu.com> Tue, 06 Sep 2011 16:53:57 +0100
+
+jenkins (1.409.1-0ubuntu1) oneiric; urgency=low
+
+ * Initial release.
+
+ -- James Page <james.page at ubuntu.com> Wed, 20 Jul 2011 11:11:18 +0100
diff --combined debian/control
index c2ee29d,0000000..61e4107
mode 100644,000000..100644
--- a/debian/control
+++ b/debian/control
@@@ -1,339 -1,0 +1,340 @@@
+Source: jenkins
+Section: java
+Priority: optional
- Maintainer: Debian Java Maintainers <pkg-java-maintainers at lists.alioth.debian.org>
++Maintainer: Ubuntu Developers <ubuntu-devel-discuss at lists.ubuntu.com>
++XSBC-Original-Maintainer: Debian Java Maintainers <pkg-java-maintainers at lists.alioth.debian.org>
+Uploaders: James Page <james.page at ubuntu.com>
+Build-Depends:
+ cdbs,
+ debhelper (>= 7),
+ default-jdk (>= 1:1.6),
+ javahelper,
+ maven-debian-helper,
+ unzip
+Build-Depends-Indep:
+ ant,
+ ant-optional,
+ glassfish-activation,
+ glassfish-mail,
+ groovy,
+ jenkins-crypto-util,
+ jenkins-executable-war (>= 1.25),
+ jenkins-instance-identity,
+ jenkins-memory-monitor,
+ jenkins-ssh-cli-auth,
+ jenkins-task-reactor,
+ jenkins-test-annotations,
+ junit (>= 3.8.2),
+ junit4,
+ libaccess-modifier-checker-java,
+ libacegi-security-java,
+ libakuma-java (>= 1.8),
+ libanimal-sniffer-java,
+ libannotation-indexer-java,
+ libantlr-java,
+ libantlr-maven-plugin-java,
+ libaopalliance-java,
+ libargs4j-java,
+ libasm3-java,
+ libbridge-method-injector-java,
+ libclassworlds-java,
+ libcommons-beanutils-java,
+ libcommons-codec-java,
+ libcommons-collections3-java,
+ libcommons-digester-java,
+ libcommons-httpclient-java,
+ libcommons-io-java,
+ libcommons-lang-java,
+ libcommons-logging-java,
+ libjaxen-java,
+ libjellydoc-java,
+ libjenkins-plugin-parent-java,
+ libjenkins-commons-jelly-java,
+ libjenkins-commons-jexl-java (>= 1.1-jenkins-20111212),
+ libjenkins-htmlunit-java,
+ libjenkins-json-java (>= 2.1-rev7),
- libjenkins-remoting-java (>= 2.11),
++ libjenkins-remoting-java (>= 2.16),
+ libjenkins-trilead-ssh2-java,
+ libjenkins-winstone-java (>= 0.9.10-jenkins-35),
+ libjenkins-xstream-java,
+ libjetty-java,
+ libjffi-java,
+ libjfreechart-java,
+ libjmdns-java,
+ libjna-java,
+ libjnr-posix-java,
+ libjson-java,
+ libjstl1.1-java,
+ libjtidy-java,
+ liblocalizer-java,
+ libmaven-antrun-extended-plugin-java,
+ libmaven-assembly-plugin-java,
+ libmaven-dependency-plugin-java,
+ libmaven-embedder-java,
+ libmaven-enforcer-plugin-java,
+ libmaven-hpi-plugin-java,
+ libmaven-install-plugin-java,
+ libmaven-javadoc-plugin-java,
+ libmaven-stapler-plugin-java,
+ libmaven-war-plugin-java,
+ libmaven2-core-java,
+ libmetainf-services-java,
+ libmockito-java,
+ libowasp-java-html-sanitizer-java,
+ libpam4j-java,
+ librobust-http-client-java,
+ libsisu-guice-java,
+ libservlet2.5-java,
+ libsezpoz-java,
+ libspring-aop-java,
+ libspring-core-java,
+ libspring-ldap-java,
+ libspring-web-java,
+ libstapler-adjunct-codemirror-java,
+ libstapler-adjunct-timeline-java,
- libstapler-java (>= 1.182),
++ libstapler-java (>= 1.189),
+ libtrilead-putty-extension-java,
+ libtxw2-java,
+ libxpp3-java,
+ ttf-dejavu-core
+Standards-Version: 3.9.3
+Homepage: http://jenkins-ci.org/
+Vcs-Git: git://git.debian.org/git/pkg-java/jenkins.git
+Vcs-Browser: http://git.debian.org/?p=pkg-java/jenkins.git
+DM-Upload-Allowed: yes
+
+Package: libjenkins-java
+Architecture: all
+Depends: ${maven:Depends}, ${misc:Depends}
+Recommends: ${maven:OptionalDepends}
+Description: Jenkins CI core Java libraries
+ Jenkins monitors executions of repeated jobs, such as building a software
+ project or jobs run by cron. Among those things, current Jenkins focuses
+ on the following two jobs:
+ .
+ * Building/testing software projects continuously, just like CruiseControl
+ or DamageControl. In a nutshell, Jenkins provides an easy-to-use
+ so-called continuous integration system, making it easier for developers
+ to integrate changes to the project, and making it easier for users to
+ obtain a fresh build. The automated, continuous build increases
+ productivity.
+ * Monitoring executions of externally-run jobs, such as cron jobs and
+ procmail jobs, even those that are run on a remote machine. For example,
+ with cron, all you receive is regular e-mails that capture the output,
+ and it is up to you to look at them diligently and notice when it broke.
+ Jenkins keeps those outputs and makes it easy for you to notice when
+ something is wrong.
+ .
+ This package contains the core libraries that are used by Jenkins.
+ These are useful when building other components such as plugins.
+
+Package: libjenkins-plugin-parent-java
+Architecture: all
+Depends:
+ junit4,
+ libjenkins-java,
+ libmaven-hpi-plugin-java,
+ libmaven-javadoc-plugin-java,
+ libmaven-stapler-plugin-java,
+ libservlet2.5-java,
+ libsurefire-java,
+ ${misc:Depends}
+Description: Jenkins Plugin Parent Maven POM
+ Jenkins monitors executions of repeated jobs, such as building a software
+ project or jobs run by cron. Among those things, current Jenkins focuses
+ on the following two jobs:
+ .
+ * Building/testing software projects continuously, just like CruiseControl
+ or DamageControl. In a nutshell, Jenkins provides an easy-to-use
+ so-called continuous integration system, making it easier for developers
+ to integrate changes to the project, and making it easier for users to
+ obtain a fresh build. The automated, continuous build increases
+ productivity.
+ * Monitoring executions of externally-run jobs, such as cron jobs and
+ procmail jobs, even those that are run on a remote machine. For example,
+ with cron, all you receive is regular e-mails that capture the output,
+ and it is up to you to look at them diligently and notice when it broke.
+ Jenkins keeps those outputs and makes it easy for you to notice when
+ something is wrong.
+ .
+ This package contains the parent POM file that all Jenkins plugins and modules
+ should be built against.
+
+Package: jenkins-common
+Architecture: all
+Depends:
+ libjenkins-remoting-java,
+ libjffi-java,
+ libjna-java,
+ libjnr-posix-java,
+ ${misc:Depends}
+Recommends: jenkins-cli
+Description: Jenkins common Java components and web application
+ Jenkins monitors executions of repeated jobs, such as building a software
+ project or jobs run by cron. Among those things, current Jenkins focuses
+ on the following two jobs:
+ .
+ * Building/testing software projects continuously, just like CruiseControl
+ or DamageControl. In a nutshell, Jenkins provides an easy-to-use
+ so-called continuous integration system, making it easier for developers
+ to integrate changes to the project, and making it easier for users to
+ obtain a fresh build. The automated, continuous build increases
+ productivity.
+ * Monitoring executions of externally-run jobs, such as cron jobs and
+ procmail jobs, even those that are run on a remote machine. For example,
+ with cron, all you receive is regular e-mails that capture the output,
+ and it is up to you to look at them diligently and notice when it broke.
+ Jenkins keeps those outputs and makes it easy for you to notice when
+ something is wrong.
+ .
+ This package contains the main Jenkin Web Application and supporting
+ Java libraries.
+
+Package: jenkins
+Architecture: all
+Depends:
+ adduser,
+ default-jre-headless | java6-runtime-headless,
+ jenkins-common,
+ ${jenkins-daemon-deps},
+ ${misc:Depends}
+Conflicts: jenkins-tomcat, tomcat6
+Description: Continuous Integration and Job Scheduling Server
+ Jenkins monitors executions of repeated jobs, such as building a software
+ project or jobs run by cron. Among those things, current Jenkins focuses
+ on the following two jobs:
+ .
+ * Building/testing software projects continuously, just like CruiseControl
+ or DamageControl. In a nutshell, Jenkins provides an easy-to-use
+ so-called continuous integration system, making it easier for developers
+ to integrate changes to the project, and making it easier for users to
+ obtain a fresh build. The automated, continuous build increases
+ productivity.
+ * Monitoring executions of externally-run jobs, such as cron jobs and
+ procmail jobs, even those that are run on a remote machine. For example,
+ with cron, all you receive is regular e-mails that capture the output,
+ and it is up to you to look at them diligently and notice when it broke.
+ Jenkins keeps those outputs and makes it easy for you to notice when
+ something is wrong.
+ .
+ This package supports using Jenkins in standalone mode utilising the
+ embedded winstone servlet container.
+
+Package: jenkins-slave
+Architecture: all
+Depends:
+ adduser,
+ default-jre-headless | java6-runtime-headless,
+ ${jenkins-daemon-deps},
+ ${misc:Depends}
+Recommends: jenkins-cli, ssh-server | openssh-server
+Description: Jenkins slave node helper
+ Jenkins monitors executions of repeated jobs, such as building a software
+ project or jobs run by cron. Among those things, current Jenkins focuses
+ on the following two jobs:
+ .
+ * Building/testing software projects continuously, just like CruiseControl
+ or DamageControl. In a nutshell, Jenkins provides an easy-to-use
+ so-called continuous integration system, making it easier for developers
+ to integrate changes to the project, and making it easier for users to
+ obtain a fresh build. The automated, continuous build increases
+ productivity.
+ * Monitoring executions of externally-run jobs, such as cron jobs and
+ procmail jobs, even those that are run on a remote machine. For example,
+ with cron, all you receive is regular e-mails that capture the output,
+ and it is up to you to look at them diligently and notice when it broke.
+ Jenkins keeps those outputs and makes it easy for you to notice when
+ something is wrong.
+ .
+ This package provides a metapackage to install the dependencies required
+ to support running jenkins slave nodes.
+ .
+ It also includes an upstart configuration and helper script to start a
+ Jenkins Slave locally (where direct network access to the slave might not
+ be possible).
+
+Package: jenkins-external-job-monitor
+Architecture: all
+Depends:
+ ant,
+ default-jre-headless | java6-runtime-headless,
+ libcommons-io-java,
+ libcommons-lang-java,
+ libjenkins-remoting-java,
+ libjenkins-xstream-java,
+ libjffi-java,
+ libjnr-posix-java,
+ ${misc:Depends}
+Description: Jenkins CI external job monitoring
+ Jenkins monitors executions of repeated jobs, such as building a software
+ project or jobs run by cron. Among those things, current Jenkins focuses
+ on the following two jobs:
+ .
+ * Building/testing software projects continuously, just like CruiseControl
+ or DamageControl. In a nutshell, Jenkins provides an easy-to-use
+ so-called continuous integration system, making it easier for developers
+ to integrate changes to the project, and making it easier for users to
+ obtain a fresh build. The automated, continuous build increases
+ productivity.
+ * Monitoring executions of externally-run jobs, such as cron jobs and
+ procmail jobs, even those that are run on a remote machine. For example,
+ with cron, all you receive is regular e-mails that capture the output,
+ and it is up to you to look at them diligently and notice when it broke.
+ Jenkins keeps those outputs and makes it easy for you to notice when
+ something is wrong.
+ .
+ This package provides the Java dependencies and a helper script for
+ running external jobs which are monitored by Jenkins.
+
+Package: jenkins-cli
+Architecture: all
+Depends:
+ default-jre-headless | java6-runtime-headless,
+ libjffi-java,
+ libjnr-posix-java,
+ ${misc:Depends}
+Description: Jenkins CI Command Line Interface
+ Jenkins monitors executions of repeated jobs, such as building a software
+ project or jobs run by cron. Among those things, current Jenkins focuses
+ on the following two jobs:
+ .
+ * Building/testing software projects continuously, just like CruiseControl
+ or DamageControl. In a nutshell, Jenkins provides an easy-to-use
+ so-called continuous integration system, making it easier for developers
+ to integrate changes to the project, and making it easier for users to
+ obtain a fresh build. The automated, continuous build increases
+ productivity.
+ * Monitoring executions of externally-run jobs, such as cron jobs and
+ procmail jobs, even those that are run on a remote machine. For example,
+ with cron, all you receive is regular e-mails that capture the output,
+ and it is up to you to look at them diligently and notice when it broke.
+ Jenkins keeps those outputs and makes it easy for you to notice when
+ something is wrong.
+ .
+ This package provies the Jenkins Command Line Interface that supports a
+ wide range of remote interaction with a Jenkins instance.
+
+Package: jenkins-tomcat
+Architecture: all
+Depends: jenkins-common, tomcat6, ${misc:Depends}
+Conflicts: jenkins
+Provides: jenkins
+Description: Jenkins CI on Tomcat 6
+ Jenkins monitors executions of repeated jobs, such as building a software
+ project or jobs run by cron. Among those things, current Jenkins focuses
+ on the following two jobs:
+ .
+ * Building/testing software projects continuously, just like CruiseControl
+ or DamageControl. In a nutshell, Jenkins provides an easy-to-use
+ so-called continuous integration system, making it easier for developers
+ to integrate changes to the project, and making it easier for users to
+ obtain a fresh build. The automated, continuous build increases
+ productivity.
+ * Monitoring executions of externally-run jobs, such as cron jobs and
+ procmail jobs, even those that are run on a remote machine. For example,
+ with cron, all you receive is regular e-mails that capture the output,
+ and it is up to you to look at them diligently and notice when it broke.
+ Jenkins keeps those outputs and makes it easy for you to notice when
+ something is wrong.
+ .
+ This package provides a Jenkins CI instance deployed on Apache Tomcat 6.
diff --combined debian/jenkins.README.Debian
index 7f72ea8,0000000..2a69355
mode 100644,000000..100644
--- a/debian/jenkins.README.Debian
+++ b/debian/jenkins.README.Debian
@@@ -1,38 -1,0 +1,35 @@@
+jenkins for Debian
+------------------
+
+This package differs in the following ways from the upstream distribution of
+jenkins:
+
+ * Plugins are not bundled by default:
+ - SSH Slaves Plugin
+ - Maven Integration Plugin
+ - Subversion Plugin
+ Note that jenkins for Debian retains binary compatibility with upstream
+ plugins so these can be installed through the 'Manage Plugins' option
+ with Jenkins.
+
+ * Native OS integration features that are disabled:
+ - Solaris: support for libzfs and libembeddedsu4j.
+ - Windows: native control of remote windows slaves, native integration
+ with Windows process management, windows service deployment of
+ Jenkins.
+ Note that it is possible to use Windows slaves; however they will need
+ to be launched using JNLP from the slave itself.
+
+ * Miscellanous dependency changes that Developers should be aware of:
- - asm v2 -> v3
- - jcaptcha 1.x -> 2.x
+ - jna-posix -> jnr-posix (inline with upstream project renaming)
- - groovy 1.6.x -> 1.7.x
+
+ * Branding: if available on the client, the Web UI will use the Ubuntu
+ font.
+
+ * Packages + wrapper scripts are provided for:
+ - Monitoring of arbitrary jobs: jenkins-external-job-monitor
+ + see man jenkins-monitor-job for more details.
+ - Jenkins CLI: jenkins-cli
+ + see man jenkins-cli for more details.
+
+ -- James Page <james.page at ubuntu.com> Wed, 20 Jul 2011 11:34:02 +0100
diff --combined debian/maven.ignoreRules
index 0da7643,0000000..013cda6
mode 100644,000000..100644
--- a/debian/maven.ignoreRules
+++ b/debian/maven.ignoreRules
@@@ -1,82 -1,0 +1,84 @@@
+# Maven ignore rules - ignore some Maven dependencies and plugins
+# Format of this file is:
+# [group] [artifact] [type] [version] [classifier] [scope]
+# where each element can be either
+# - the exact string, for example org.apache for the group, or 3.1
+# for the version. In this case, the element is simply matched
+# and left as it is
+# - * (the star character, alone). In this case, anything will
+# match and be left as it is. For example, using * on the
+# position of the artifact field will match any artifact id
+# All elements much match before a rule can be applied
+# Example rule: match jar with groupid= junit, artifactid= junit
+# and version starting with 3., this dependency is then removed
+# from the POM
+# junit junit jar s/3\\..*/3.x/
+
+# OK: Don't need native stuff for Debian/Ubuntu
+com.sun.winsw winsw * * * *
+# OK: Bits of the build which don't add value for Debian
+org.apache.maven.plugins maven-pmd-plugin * * * *
+org.apache.maven.plugins maven-project-info-reports-plugin * * * *
+org.apache.maven.plugins maven-release-plugin * * * *
+org.apache.maven.plugins maven-remote-resources-plugin * * * *
+# OK: Used for generating the wiki - not required for Debian
+org.codehaus.mojo apt-maven-plugin * * * *
+org.jvnet.maven-jellydoc-plugin maven-jellydoc-plugin * * * *
+# OK: Bugs should be found upstream, not in Debian!
+org.codehaus.mojo findbugs-maven-plugin * * * *
+# FIXME: Used by test module - not currently enabled
+com.sun.maven maven-junit-plugin * * * *
+# OK: Only required for Java 1.5 which we don't support in Debia
+org.codehaus.woodstox wstx-asl * * * *
+# FIXME: Testing - when we get to it
+org.easymock easymock * * * *
+org.jvnet.hudson netx * * * *
+# FIXME: Something todo with embedding - don't think its required.
+org.jvnet.hudson wagon-webdav * * * *
+# FIXME: Once building from source get this.
+org.jvnet.hudson.plugins subversion * * * *
+# OK: Used for documentation generation - not required
+org.jvnet.hudson.tools extension-point-lister * * * *
+org.jvnet.hudson.tools maven-encoding-plugin * * * *
+# OK: used for debugging (basically jetty)
+org.jenkins-ci.tools maven-jenkins-dev-plugin * * * *
+# FIXME: Used by core and tests for unit testing groovy
+org.kohsuke.gmaven gmaven-plugin * * * *
+org.codehaus.groovy.maven gmaven-plugin * * * *
+# FIXME: for testing
+org.kohsuke.stapler stapler-adjunct-timeline * * tests *
+# FIXME: currently the maven plugin built in this project is disabled.
+# this tells the war module to ignore it.
+org.jenkins-ci.main maven-plugin * * * *
+# OK: Modules not current built as part of jenkins core on Ubuntu
+org.jenkins-ci.main jenkins-test-harness * * * *
+org.jenkins-ci.main ui-samples-plugin * * * *
+# OK: Cloudbees License Plugin - disable for Debian build
+com.cloudbees maven-license-plugin * * * *
+# OK: Platform Specific Libraries not relevant for Debian
+com.sun.solaris embedded_su4j * * * *
+org.jvnet.libzfs libzfs * * * *
+org.jvnet.winp winp * * * *
+org.jenkins-ci jinterop-wmi * * * *
+org.jenkins-ci windows-remote-command * * * *
+# OK: Ignore asm2 components not present in asm3
+#asm asm-attrs * * * *
+# New deps to ignore for 1.424.1
+org.codehaus.mojo build-helper-maven-plugin * * * *
+# Ignore JRebel - does not appear to by used
+org.kohsuke.stapler stapler-jrebel * * * *
+# Ignore core annotation processors - this is a dummy pakcage
+org.jenkins-ci core-annotation-processors * * * *
+# New suff for 1.447.1
+org.codehaus.gmaven gmaven-plugin * * * *
+# FIXME - package powermock and re-enable testing
+org.powermock * * * * *
+# Ignore
+findbugs annotations * * * *
+# This is a single Java file - patching into jenkins for the time being
+org.jenkins-ci version-number * * * *
+# FIXME - ignore sshd module until its packaged
+org.jenkins-ci.modules sshd * * * *
-
++# New stuff for 1.466.1
++org.kohsuke.stapler stapler-adjunct-zeroclipboard * * * *
++org.kohsuke windows-package-checker * * * *
diff --combined debian/maven.rules
index 1faa250,0000000..ab20ada
mode 100644,000000..100644
--- a/debian/maven.rules
+++ b/debian/maven.rules
@@@ -1,66 -1,0 +1,69 @@@
+# Maven rules - transform Maven dependencies and plugins
+# Forma of this file is:
+# [group] [artifact] [type] [version] [classifier] [scope]
+# where each element can be either
+# - the exact string, for example org.apache for the group, or 3.1
+# for the version. In this case, the element is simply matched
+# and left as it is
+# - * (the star character, alone). In this case, anything will
+# match and be left as it is. For example, using * on the
+# position of the artifact field will match any artifact id
+# - a regular expression of the form s/match/replace/
+# in this case, elements that match are transformed using
+# the regex rule.
+# All elements much match before a rule can be applied
+# Example rule: match jar with groupid= junit, artifactid= junit
+# and version starting with 3., replacing the version with 3.x
+# junit junit jar s/3\\..*/3.x/
+
+antlr antlr jar s/2\..*/2.x/ * *
+commons-collections commons-collections jar s/3\..*/3.x/ * *
+commons-httpclient commons-httpclient jar s/3\..*/3.x/ * *
+junit s/junit-dep/junit/ * s/.*/4.x/ * *
+# Map onto exact version during build process
- org.jenkins-ci.main * * s/1\..*/1.447.2/ * *
++org.jenkins-ci.main * * s/1\..*/1.466.2/ * *
+# Handle plugin package
+org.kohsuke access-modifier-annotation jar s/.*/1.0/ * *
+org.kohsuke access-modifier-checker * s/.*/1.0/ * *
+# 3.x is needed due to later versions of some deps in Debian
+# Patch to be submitted back upstream.
+asm * * s/2\..*/3.x/ * *
+com.octo.captcha s/jcaptcha-all/jcaptcha/ * s/.*/debian/ * *
+commons-collections commons-collections * s/3\..*/3.x/ * *
+commons-httpclient commons-httpclient * s/3\..*/3.x/ * *
+commons-logging s/commons-logging-api/commons-logging/ * s/.*/debian/ * *
+s/groovy/org.codehaus.groovy/ groovy * s/.*/debian/ * *
+org.kohsuke.stapler maven-stapler-plugin * s/.*/1.16/ * *
+s/ant/org.apache.ant/ * * s/.*/debian/ * *
+s/groovy/org.codehaus.groovy/ groovy* * s/.*/debian/ * *
+org.mortbay.jetty * * s/6\..*/6.x/ * *
+org.springframework * * s/2\..*/3.x/ * *
+s/javax.servlet/javax.servlet.jsp/ jsp-api jar s/2\..*/2.1/ * *
+# Remap hudson forks back to standard versions
+s/org.jvnet.hudson/javax.activation/ activation * s/.*/debian/ * *
+s/org.jenkins-ci/javax.jmdns/ jmdns * s/.*/debian/ * *
+s/org.jvnet.hudson/net.sf.jtidy/ jtidy * s/.*/debian/ * *
+s/org.jvnet.hudson/org.apache.maven/ maven-embedder * s/.*/debian/ * *
+org.springframework.security * * s/2\..*/2.x/ * *
+org.jenkins-ci.tools maven-hpi-plugin * s/.*/1.79/ * *
+# Remap of jellys to jenkins variant
+s/commons-jelly/org.jenkins-ci/ * * s/.*/debian/ * *
+s/org.jvnet.hudson/org.jenkins-ci/ commons-jelly-tags-define * s/.*/debian/ * *
+# Later version of task-reactor
+s/org.jvnet.hudson/org.jenkins-ci/ task-reactor * s/.*/debian/ * *
+# JSTL 1.1
+javax.servlet jstl * s/1\.1\..*/1.1/ * *
+# Remap for rename jna->jnr in Debian
+org.jruby.ext.posix s/jna-posix/jnr-posix/ * s/.*/debian/ * *
+# Remap for later version of animal sniffer
+s/org.jvnet/org.codehaus.mojo/ s/animal-sniffer-annotation/animal-sniffer-annotations/ jar s/.*/debian/ * *
+# Update to servlet2.5
+javax.servlet servlet-api * s/.*/2.5/ * *
+# Updates for 1.424.6
+s/org.kohsuke/owasp-java-html-sanitizer/ s/owasp-html-sanitizer/owasp-java-html-sanitizer/ * s/.*/debian/ * *
+# Updates for 1.447.1
+s/org.jvnet.hudson/org.jenkins-ci/ commons-jexl * s/.*/debian/ * *
+s/org.jvnet.hudson/org.jenkins-ci/ annotation-indexer * s/.*/debian/ * *
++# Updates for 1.446.1
++# FIXME: resolve once libpam4j has been upgraded.
++s/org.kohsuke/org.jvnet.libpam4j/ libpam4j * s/.*/debian/ * *
diff --combined debian/patches/build/apt-stapler-processing.patch
index 9c9879e,0000000..8200f4f
mode 100644,000000..100644
--- a/debian/patches/build/apt-stapler-processing.patch
+++ b/debian/patches/build/apt-stapler-processing.patch
@@@ -1,39 -1,0 +1,39 @@@
+Description: Jenkins 1.409.x upstream uses an older version of stapler and
+ the maven-stapler-plugin that those present in Debian and Ubuntu. As a result
+ the packaging for Jenkins core needs to be updated to be a straight jar as the
+ newer version of stapler uses JSR-269 for annotation processing and hooks into
+ the standard compile phase of maven.
+ .
+ This patch can be dropped when Jenkins release their next LTS release.
+Author: James Page <james.page at ubuntu.com>
+Forwarded: not-needed
+
+Index: jenkins/core/pom.xml
+===================================================================
- --- jenkins.orig/core/pom.xml 2012-04-26 14:11:30.000000000 +0100
- +++ jenkins/core/pom.xml 2012-04-26 14:15:07.100640255 +0100
- @@ -617,6 +617,24 @@
++--- jenkins.orig/core/pom.xml 2012-07-24 16:33:04.738053812 +0100
+++++ jenkins/core/pom.xml 2012-07-24 16:33:05.898057949 +0100
++@@ -638,6 +638,24 @@
+ </executions>
+ </plugin>
+ <plugin>
++ <groupId>org.apache.maven.plugins</groupId>
++ <artifactId>maven-compiler-plugin</artifactId>
++ <version>2.3.2</version>
++ <configuration>
++ <excludes>
++ <exclude>**/os/solaris/*</exclude>
++ <exclude>**/os/windows/*</exclude>
++ <exclude>**/DCOMSandbox.java</exclude>
++ <exclude>**/DotNet.java</exclude>
++ <exclude>**/WindowsSlaveInstaller.java</exclude>
++ <exclude>**/WindowsInstallerLink.java</exclude>
++ </excludes>
++ <testExcludes>
++ <exclude>**/DCOMSandbox.java</exclude>
++ </testExcludes>
++ </configuration>
++ </plugin>
++ <plugin>
+ <groupId>org.kohsuke.stapler</groupId>
+ <artifactId>maven-stapler-plugin</artifactId>
+ <version>1.16</version>
diff --combined debian/patches/build/build.patch
index c349924,0000000..e2a3562
mode 100644,000000..100644
--- a/debian/patches/build/build.patch
+++ b/debian/patches/build/build.patch
@@@ -1,50 -1,0 +1,50 @@@
+Description: Misc patches to main POM file to disable some modules
+Author: James Page <james.page at ubuntu.com>
+Forwarded: not-needed
+
+Index: jenkins/pom.xml
+===================================================================
- --- jenkins.orig/pom.xml 2012-04-26 14:29:34.000000000 +0100
- +++ jenkins/pom.xml 2012-04-26 14:35:33.009556068 +0100
++--- jenkins.orig/pom.xml 2012-07-24 16:32:51.990008351 +0100
+++++ jenkins/pom.xml 2012-07-24 16:33:04.738053812 +0100
+@@ -48,10 +48,7 @@
+
+ <modules>
+ <module>core</module>
+- <module>maven-plugin</module>
+- <module>ui-samples-plugin</module>
+ <module>war</module>
+- <module>test</module>
+ <module>cli</module>
+ </modules>
+
- @@ -574,9 +571,6 @@
++@@ -575,9 +572,6 @@
+ <requireJavaVersion>
+ <version>1.6.0-18</version>
+ </requireJavaVersion>
+- <requireMavenVersion>
+- <version>3.0</version>
+- </requireMavenVersion>
+ </rules>
+ </configuration>
+ </execution>
+Index: jenkins/core/pom.xml
+===================================================================
- --- jenkins.orig/core/pom.xml 2012-04-26 14:29:34.000000000 +0100
- +++ jenkins/core/pom.xml 2012-04-26 14:35:16.893548264 +0100
- @@ -297,6 +297,16 @@
++--- jenkins.orig/core/pom.xml 2012-07-24 16:32:51.990008351 +0100
+++++ jenkins/core/pom.xml 2012-07-24 16:33:04.738053812 +0100
++@@ -319,6 +319,16 @@
+ <groupId>commons-jelly</groupId>
+ <artifactId>commons-jelly-tags-fmt</artifactId>
+ <version>1.0</version>
++ <exclusions>
++ <exclusion>
++ <groupId>commons-jelly</groupId>
++ <artifactId>commons-jelly</artifactId>
++ </exclusion>
++ <exclusion>
++ <groupId>commons-jexl</groupId>
++ <artifactId>commons-jexl</artifactId>
++ </exclusion>
++ </exclusions>
+ </dependency>
+ <dependency>
+ <groupId>commons-jelly</groupId>
diff --combined debian/patches/build/disable-plugins.patch
index 6a7d7c9,0000000..65316e3
mode 100644,000000..100644
--- a/debian/patches/build/disable-plugins.patch
+++ b/debian/patches/build/disable-plugins.patch
@@@ -1,69 -1,0 +1,69 @@@
+Description: Disables packagaging of plugins with core Jenkins
+Author: James Page <james.page at ubuntu.com>
+Forwarded: not-needed
+
+Index: jenkins/war/pom.xml
+===================================================================
- --- jenkins.orig/war/pom.xml 2012-04-26 14:09:39.411340903 +0100
- +++ jenkins/war/pom.xml 2012-04-26 14:15:02.484642064 +0100
++--- jenkins.orig/war/pom.xml 2012-07-24 16:32:51.758007525 +0100
+++++ jenkins/war/pom.xml 2012-07-24 16:33:05.618056952 +0100
+@@ -149,6 +149,11 @@
+ <scope>system</scope>
+ <systemPath>/usr/local/yjp/lib/yjp.jar</systemPath>
+ </dependency-->
++ <dependency>
++ <groupId>commons-httpclient</groupId>
++ <artifactId>commons-httpclient</artifactId>
++ <version>3.1-rc1</version>
++ </dependency>
+ </dependencies>
+
+ <build>
+@@ -236,48 +241,6 @@
+ <outputDirectory>${project.build.directory}/${project.build.finalName}</outputDirectory>
+ <destFileName>winstone.jar</destFileName>
+ </artifactItem>
+- <!-- bundled plugins -->
+- <artifactItem>
+- <groupId>${project.groupId}</groupId>
+- <artifactId>maven-plugin</artifactId>
+- <type>hpi</type>
+- </artifactItem>
+- <artifactItem>
+- <groupId>org.jenkins-ci.plugins</groupId>
+- <artifactId>ssh-slaves</artifactId>
+- <version>0.21</version>
+- <type>hpi</type>
+- </artifactItem>
+- <artifactItem>
+- <groupId>org.jenkins-ci.plugins</groupId>
+- <artifactId>subversion</artifactId>
+- <version>1.34</version>
+- <type>hpi</type>
+- </artifactItem>
+- <artifactItem>
+- <groupId>org.jenkins-ci.plugins</groupId>
+- <artifactId>cvs</artifactId>
+- <version>1.6</version>
+- <type>hpi</type>
+- </artifactItem>
+- <artifactItem>
+- <groupId>org.jenkins-ci.plugins</groupId>
+- <artifactId>ant</artifactId>
+- <version>1.1</version>
+- <type>hpi</type>
+- </artifactItem>
+- <artifactItem>
+- <groupId>org.jenkins-ci.plugins</groupId>
+- <artifactId>javadoc</artifactId>
+- <version>1.0</version>
+- <type>hpi</type>
+- </artifactItem>
+- <artifactItem>
+- <groupId>org.jenkins-ci.plugins</groupId>
+- <artifactId>translation</artifactId>
+- <version>1.8</version>
+- <type>hpi</type>
+- </artifactItem>
+ </artifactItems>
+ <outputDirectory>${project.build.directory}/${project.build.finalName}/WEB-INF/plugins</outputDirectory>
+ <stripVersion>true</stripVersion>
diff --combined debian/patches/build/jenkins-version-number.patch
index 70a8fb9,0000000..f7b40c2
mode 100644,000000..100644
--- a/debian/patches/build/jenkins-version-number.patch
+++ b/debian/patches/build/jenkins-version-number.patch
@@@ -1,501 -1,0 +1,501 @@@
+Description: This is provided by upstream as a separate package.
+ As it is actually just a single Java file and has limited re-use
+ outside of Jenkins providing as a patch instead.
+ .
+ Might package this later if a) it changes alot or b) something else
+ needs it outside of Jenkins core.
+Author: James Page <james.page at ubuntu.com>
+Origin: https://github.com/jenkinsci/lib-version-number
+Forwarded: not-needed
+
+Index: jenkins/core/src/main/java/hudson/util/VersionNumber.java
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
- +++ jenkins/core/src/main/java/hudson/util/VersionNumber.java 2012-04-26 15:18:40.597958728 +0100
+++++ jenkins/core/src/main/java/hudson/util/VersionNumber.java 2012-07-24 16:33:06.170058918 +0100
+@@ -0,0 +1,486 @@
++package hudson.util;
++
++/*
++ * Licensed to the Apache Software Foundation (ASF) under one
++ * or more contributor license agreements. See the NOTICE file
++ * distributed with this work for additional information
++ * regarding copyright ownership. The ASF licenses this file
++ * to you under the Apache License, Version 2.0 (the
++ * "License"); you may not use this file except in compliance
++ * with the License. You may obtain a copy of the License at
++ *
++ * http://www.apache.org/licenses/LICENSE-2.0
++ *
++ * Unless required by applicable law or agreed to in writing,
++ * software distributed under the License is distributed on an
++ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
++ * KIND, either express or implied. See the License for the
++ * specific language governing permissions and limitations
++ * under the License.
++ */
++
++import java.math.BigInteger;
++import java.util.ArrayList;
++import java.util.Arrays;
++import java.util.Comparator;
++import java.util.Iterator;
++import java.util.List;
++import java.util.ListIterator;
++import java.util.Locale;
++import java.util.Properties;
++import java.util.Stack;
++
++/**
++ * Immutable representation of a version number based on the Mercury version numbering scheme.
++ *
++ * {@link VersionNumber}s are {@link Comparable}.
++ *
++ * <h2>Special tokens</h2>
++ * <p>
++ * We allow a component to be not just a number, but also "ea", "ea1", "ea2".
++ * "ea" is treated as "ea0", and eaN < M for any M > 0.
++ *
++ * <p>
++ * '*' is also allowed as a component, and '*' > M for any M > 0.
++ *
++ * <p>
++ * 'SNAPSHOT' is also allowed as a component, and "N.SNAPSHOT" is interpreted as "N-1.*"
++ *
++ * <pre>
++ * 2.0.* > 2.0.1 > 2.0.1-SNAPSHOT > 2.0.0.99 > 2.0.0 > 2.0.ea > 2.0
++ * </pre>
++ *
++ * This class is re-implemented in 1.415. The class was originally introduced in 1.139
++ *
++ * @since 1.139
++ * @author Stephen Connolly (stephenc at apache.org)
++ * @author Kenney Westerhof (kenney at apache.org)
++ * @author Hervé Boutemy (hboutemy at apache.org)
++ */
++public class VersionNumber implements Comparable<VersionNumber> {
++ private String value;
++
++ private String canonical;
++
++ private ListItem items;
++
++ private interface Item {
++ public static final int INTEGER_ITEM = 0;
++
++ public static final int STRING_ITEM = 1;
++
++ public static final int LIST_ITEM = 2;
++
++ public static final int WILDCARD_ITEM = 3;
++
++ public int compareTo(Item item);
++
++ public int getType();
++
++ public boolean isNull();
++ }
++
++ /**
++ * Represents a wild-card item in the version item list.
++ */
++ private static class WildCardItem implements Item {
++
++ public int compareTo(Item item) {
++ if (item==null) // 1.* ( > 1.99) > 1
++ return 1;
++ switch (item.getType()) {
++ case INTEGER_ITEM:
++ case LIST_ITEM:
++ case STRING_ITEM:
++ return 1;
++ case WILDCARD_ITEM:
++ return 0;
++ default:
++ return 1;
++ }
++ }
++
++ public int getType() {
++ return WILDCARD_ITEM;
++ }
++
++ public boolean isNull() {
++ return false;
++ }
++
++ @Override
++ public String toString() {
++ return "*";
++ }
++ }
++
++ /**
++ * Represents a numeric item in the version item list.
++ */
++ private static class IntegerItem
++ implements Item {
++ private static final BigInteger BigInteger_ZERO = new BigInteger("0");
++
++ private final BigInteger value;
++
++ public static final IntegerItem ZERO = new IntegerItem();
++
++ private IntegerItem() {
++ this.value = BigInteger_ZERO;
++ }
++
++ public IntegerItem(String str) {
++ this.value = new BigInteger(str);
++ }
++
++ public int getType() {
++ return INTEGER_ITEM;
++ }
++
++ public boolean isNull() {
++ return BigInteger_ZERO.equals(value);
++ }
++
++ public int compareTo(Item item) {
++ if (item == null) {
++ return BigInteger_ZERO.equals(value) ? 0 : 1; // 1.0 == 1, 1.1 > 1
++ }
++
++ switch (item.getType()) {
++ case INTEGER_ITEM:
++ return value.compareTo(((IntegerItem) item).value);
++
++ case STRING_ITEM:
++ return 1; // 1.1 > 1-sp
++
++ case LIST_ITEM:
++ return 1; // 1.1 > 1-1
++
++ case WILDCARD_ITEM:
++ return 0;
++
++ default:
++ throw new RuntimeException("invalid item: " + item.getClass());
++ }
++ }
++
++ public String toString() {
++ return value.toString();
++ }
++ }
++
++ /**
++ * Represents a string in the version item list, usually a qualifier.
++ */
++ private static class StringItem implements Item {
++ private final static String[] QUALIFIERS = {"snapshot", "alpha", "beta", "milestone", "rc", "", "sp"};
++
++ private final static List<String> _QUALIFIERS = Arrays.asList(QUALIFIERS);
++
++ private final static Properties ALIASES = new Properties();
++
++ static {
++ ALIASES.put("ga", "");
++ ALIASES.put("final", "");
++ ALIASES.put("cr", "rc");
++ ALIASES.put("ea", "rc");
++ }
++
++ /**
++ * A comparable for the empty-string qualifier. This one is used to determine if a given qualifier makes the
++ * version older than one without a qualifier, or more recent.
++ */
++ private static String RELEASE_VERSION_INDEX = String.valueOf(_QUALIFIERS.indexOf(""));
++
++ private String value;
++
++ public StringItem(String value, boolean followedByDigit) {
++ if (followedByDigit && value.length() == 1) {
++ // a1 = alpha-1, b1 = beta-1, m1 = milestone-1
++ switch (value.charAt(0)) {
++ case 'a':
++ value = "alpha";
++ break;
++ case 'b':
++ value = "beta";
++ break;
++ case 'm':
++ value = "milestone";
++ break;
++ }
++ }
++ this.value = ALIASES.getProperty(value, value);
++ }
++
++ public int getType() {
++ return STRING_ITEM;
++ }
++
++ public boolean isNull() {
++ return (comparableQualifier(value).compareTo(RELEASE_VERSION_INDEX) == 0);
++ }
++
++ /**
++ * Returns a comparable for a qualifier.
++ * <p/>
++ * This method both takes into account the ordering of known qualifiers as well as lexical ordering for unknown
++ * qualifiers.
++ * <p/>
++ * just returning an Integer with the index here is faster, but requires a lot of if/then/else to check for -1
++ * or QUALIFIERS.size and then resort to lexical ordering. Most comparisons are decided by the first character,
++ * so this is still fast. If more characters are needed then it requires a lexical sort anyway.
++ *
++ * @param qualifier
++ * @return
++ */
++ public static String comparableQualifier(String qualifier) {
++ int i = _QUALIFIERS.indexOf(qualifier);
++
++ return i == -1 ? _QUALIFIERS.size() + "-" + qualifier : String.valueOf(i);
++ }
++
++ public int compareTo(Item item) {
++ if (item == null) {
++ // 1-rc < 1, 1-ga > 1
++ return comparableQualifier(value).compareTo(RELEASE_VERSION_INDEX);
++ }
++ switch (item.getType()) {
++ case INTEGER_ITEM:
++ return -1; // 1.any < 1.1 ?
++
++ case STRING_ITEM:
++ return comparableQualifier(value).compareTo(comparableQualifier(((StringItem) item).value));
++
++ case LIST_ITEM:
++ return -1; // 1.any < 1-1
++
++ case WILDCARD_ITEM:
++ return -1;
++
++ default:
++ throw new RuntimeException("invalid item: " + item.getClass());
++ }
++ }
++
++ public String toString() {
++ return value;
++ }
++ }
++
++ /**
++ * Represents a version list item. This class is used both for the global item list and for sub-lists (which start
++ * with '-(number)' in the version specification).
++ */
++ private static class ListItem extends ArrayList<Item> implements Item {
++ public int getType() {
++ return LIST_ITEM;
++ }
++
++ public boolean isNull() {
++ return (size() == 0);
++ }
++
++ void normalize() {
++ for (ListIterator iterator = listIterator(size()); iterator.hasPrevious(); ) {
++ Item item = (Item) iterator.previous();
++ if (item.isNull()) {
++ iterator.remove(); // remove null trailing items: 0, "", empty list
++ } else {
++ break;
++ }
++ }
++ }
++
++ public int compareTo(Item item) {
++ if (item == null) {
++ if (size() == 0) {
++ return 0; // 1-0 = 1- (normalize) = 1
++ }
++ Item first = (Item) get(0);
++ return first.compareTo(null);
++ }
++
++ switch (item.getType()) {
++ case INTEGER_ITEM:
++ return -1; // 1-1 < 1.0.x
++
++ case STRING_ITEM:
++ return 1; // 1-1 > 1-sp
++
++ case LIST_ITEM:
++ Iterator left = iterator();
++ Iterator right = ((ListItem) item).iterator();
++
++ while (left.hasNext() || right.hasNext()) {
++ Item l = left.hasNext() ? (Item) left.next() : null;
++ Item r = right.hasNext() ? (Item) right.next() : null;
++
++ // if this is shorter, then invert the compare and mul with -1
++ int result = l == null ? -1 * r.compareTo(l) : l.compareTo(r);
++
++ if (result != 0) {
++ return result;
++ }
++ }
++
++ return 0;
++
++ case WILDCARD_ITEM:
++ return -1;
++
++ default:
++ throw new RuntimeException("invalid item: " + item.getClass());
++ }
++ }
++
++ public String toString() {
++ StringBuilder buffer = new StringBuilder("(");
++ for (Iterator<Item> iter = iterator(); iter.hasNext(); ) {
++ buffer.append(iter.next());
++ if (iter.hasNext()) {
++ buffer.append(',');
++ }
++ }
++ buffer.append(')');
++ return buffer.toString();
++ }
++ }
++
++ public VersionNumber(String version) {
++ parseVersion(version);
++ }
++
++ private void parseVersion(String version) {
++ this.value = version;
++
++ items = new ListItem();
++
++ version = version.toLowerCase(Locale.ENGLISH);
++
++ ListItem list = items;
++
++ Stack<Item> stack = new Stack<Item>();
++ stack.push(list);
++
++ boolean isDigit = false;
++
++ int startIndex = 0;
++
++ for (int i = 0; i < version.length(); i++) {
++ char c = version.charAt(i);
++
++ if (c == '.') {
++ if (i == startIndex) {
++ list.add(IntegerItem.ZERO);
++ } else {
++ list.add(parseItem(isDigit, version.substring(startIndex, i)));
++ }
++ startIndex = i + 1;
++ } else if (c == '-') {
++ if (i == startIndex) {
++ list.add(IntegerItem.ZERO);
++ } else {
++ list.add(parseItem(isDigit, version.substring(startIndex, i)));
++ }
++ startIndex = i + 1;
++
++ if (isDigit) {
++ list.normalize(); // 1.0-* = 1-*
++
++ if ((i + 1 < version.length()) && Character.isDigit(version.charAt(i + 1))) {
++ // new ListItem only if previous were digits and new char is a digit,
++ // ie need to differentiate only 1.1 from 1-1
++ list.add(list = new ListItem());
++
++ stack.push(list);
++ }
++ }
++ } else if (c == '*') {
++ list.add(new WildCardItem());
++ startIndex = i + 1;
++ } else if (Character.isDigit(c)) {
++ if (!isDigit && i > startIndex) {
++ list.add(new StringItem(version.substring(startIndex, i), true));
++ startIndex = i;
++ }
++
++ isDigit = true;
++ } else if (Character.isWhitespace(c)) {
++ if (i > startIndex) {
++ if (isDigit) {
++ list.add(parseItem(true, version.substring(startIndex, i)));
++ } else {
++ list.add(new StringItem(version.substring(startIndex, i), true));
++ }
++ startIndex = i;
++ }
++
++ isDigit = false;
++ } else {
++ if (isDigit && i > startIndex) {
++ list.add(parseItem(true, version.substring(startIndex, i)));
++ startIndex = i;
++ }
++
++ isDigit = false;
++ }
++ }
++
++ if (version.length() > startIndex) {
++ list.add(parseItem(isDigit, version.substring(startIndex)));
++ }
++
++ while (!stack.isEmpty()) {
++ list = (ListItem) stack.pop();
++ list.normalize();
++ }
++
++ canonical = items.toString();
++ }
++
++ private static Item parseItem(boolean isDigit, String buf) {
++ return isDigit ? (Item) new IntegerItem(buf) : (Item) new StringItem(buf, false);
++ }
++
++ public int compareTo(VersionNumber o) {
++ return items.compareTo(o.items);
++ }
++
++ public String toString() {
++ return value;
++ }
++
++ public boolean equals(Object o) {
++ return (o instanceof VersionNumber) && canonical.equals(((VersionNumber) o).canonical);
++ }
++
++ public int hashCode() {
++ return canonical.hashCode();
++ }
++
++ public boolean isOlderThan(VersionNumber rhs) {
++ return compareTo(rhs) < 0;
++ }
++
++ public boolean isNewerThan(VersionNumber rhs) {
++ return compareTo(rhs) > 0;
++ }
++
++ public int digit(int idx) {
++ Iterator i = items.iterator();
++ Item item = (Item) i.next();
++ while (idx > 0 && i.hasNext()) {
++ if (item instanceof IntegerItem) {
++ idx--;
++ }
++ i.next();
++ }
++ return ((IntegerItem) item).value.intValue();
++ }
++
++ public static final Comparator<VersionNumber> DESCENDING = new Comparator<VersionNumber>() {
++ public int compare(VersionNumber o1, VersionNumber o2) {
++ return o2.compareTo(o1);
++ }
++ };
++}
diff --combined debian/patches/build/openjdk6.patch
index fbb0c45,0000000..ee2dbed
mode 100644,000000..100644
--- a/debian/patches/build/openjdk6.patch
+++ b/debian/patches/build/openjdk6.patch
@@@ -1,54 -1,0 +1,42 @@@
+Description: Misc patches to get Jenkins to compile using OpenJDK 6. This
+ should not be required and points to an issue with generics compilation in
+ OpenJDK - reported as such.
+Author: James Page <james.page at ubuntu.com>
+Forwarded: https://bugs.launchpad.net/ubuntu/+source/openjdk-6/+bug/716959
+
+Index: jenkins/core/src/main/java/hudson/model/AbstractBuild.java
+===================================================================
- --- jenkins.orig/core/src/main/java/hudson/model/AbstractBuild.java 2012-05-02 14:12:34.000000000 +0100
- +++ jenkins/core/src/main/java/hudson/model/AbstractBuild.java 2012-05-02 14:16:24.006955598 +0100
- @@ -1243,6 +1243,15 @@
++--- jenkins.orig/core/src/main/java/hudson/model/AbstractBuild.java 2012-07-24 16:32:51.874007937 +0100
+++++ jenkins/core/src/main/java/hudson/model/AbstractBuild.java 2012-07-24 16:33:05.018054811 +0100
++@@ -1267,6 +1267,15 @@
+ }
+
+ private static final Logger LOGGER = Logger.getLogger(AbstractBuild.class.getName());
++
++ /**
++ * The project this build is for.
++ */
++ public P getParent() {
++ return (P)super.getParent();
++ }
++
++
+ }
+
+
+Index: jenkins/core/src/main/java/hudson/DescriptorExtensionList.java
+===================================================================
- --- jenkins.orig/core/src/main/java/hudson/DescriptorExtensionList.java 2012-05-02 14:12:34.000000000 +0100
- +++ jenkins/core/src/main/java/hudson/DescriptorExtensionList.java 2012-05-02 14:16:24.006955598 +0100
++--- jenkins.orig/core/src/main/java/hudson/DescriptorExtensionList.java 2012-07-24 16:32:51.874007937 +0100
+++++ jenkins/core/src/main/java/hudson/DescriptorExtensionList.java 2012-07-24 16:33:05.018054811 +0100
+@@ -81,8 +81,9 @@
+ * @deprecated as of 1.416
+ * Use {@link #create(Jenkins, Class)}
+ */
+- public static <T extends Describable<T>,D extends Descriptor<T>>
+- DescriptorExtensionList<T,D> createDescriptorList(Hudson hudson, Class<T> describableType) {
++ @SuppressWarnings({"unchecked", "rawtypes"})
++ public static /*<T extends Describable<T>,D extends Descriptor<T>>*/
++ DescriptorExtensionList/*<T,D>*/ createDescriptorList(Hudson hudson, Class/*<T>*/ describableType) {
+ return createDescriptorList((Jenkins)hudson,describableType);
+ }
+
- Index: jenkins/core/src/main/java/jenkins/model/GlobalConfiguration.java
- ===================================================================
- --- jenkins.orig/core/src/main/java/jenkins/model/GlobalConfiguration.java 2012-05-02 14:12:34.000000000 +0100
- +++ jenkins/core/src/main/java/jenkins/model/GlobalConfiguration.java 2012-05-02 14:20:43.095765584 +0100
- @@ -48,6 +48,6 @@
- * Returns all the registered {@link GlobalConfiguration} descriptors.
- */
- public static ExtensionList<GlobalConfiguration> all() {
- - return Jenkins.getInstance().getDescriptorList(GlobalConfiguration.class);
- + return Jenkins.getInstance().<GlobalConfiguration,GlobalConfiguration>getDescriptorList(GlobalConfiguration.class);
- }
- }
diff --combined debian/patches/build/remove-findbugs.patch
index 6aa27b0,0000000..723edc5
mode 100644,000000..100644
--- a/debian/patches/build/remove-findbugs.patch
+++ b/debian/patches/build/remove-findbugs.patch
@@@ -1,96 -1,0 +1,116 @@@
+Description: The Debian build process does not run findbugs as
+ this is not packaged for Debian.
+ .
+ This patch removes all calls to the findbugs annotations package
+ as this is not packaged either.
+Author: James Page <james.page at ubuntu.com>
+Forwarded: not-needed
+
+Index: jenkins/core/src/main/java/hudson/logging/LogRecorderManager.java
+===================================================================
- --- jenkins.orig/core/src/main/java/hudson/logging/LogRecorderManager.java 2012-04-26 14:09:39.199341012 +0100
- +++ jenkins/core/src/main/java/hudson/logging/LogRecorderManager.java 2012-04-30 12:26:52.355201214 +0100
++--- jenkins.orig/core/src/main/java/hudson/logging/LogRecorderManager.java 2012-07-24 17:48:11.807867241 +0100
+++++ jenkins/core/src/main/java/hudson/logging/LogRecorderManager.java 2012-07-24 17:48:22.495901489 +0100
+@@ -112,7 +112,6 @@
+ /**
+ * Configure the logging level.
+ */
+- @edu.umd.cs.findbugs.annotations.SuppressWarnings("LG_LOST_LOGGER_DUE_TO_WEAK_REFERENCE")
+ public HttpResponse doConfigLogger(@QueryParameter String name, @QueryParameter String level) {
+ Jenkins.getInstance().checkPermission(Jenkins.ADMINISTER);
+ Level lv;
+Index: jenkins/core/src/main/java/hudson/util/PluginServletFilter.java
+===================================================================
- --- jenkins.orig/core/src/main/java/hudson/util/PluginServletFilter.java 2012-04-26 14:09:39.215341004 +0100
- +++ jenkins/core/src/main/java/hudson/util/PluginServletFilter.java 2012-04-30 12:27:25.555306327 +0100
++--- jenkins.orig/core/src/main/java/hudson/util/PluginServletFilter.java 2012-07-24 17:48:11.807867241 +0100
+++++ jenkins/core/src/main/java/hudson/util/PluginServletFilter.java 2012-07-24 17:48:22.495901489 +0100
+@@ -58,7 +58,6 @@
+ public PluginServletFilter() {
+ }
+
+- @edu.umd.cs.findbugs.annotations.SuppressWarnings("ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD")
+ public void init(FilterConfig filterConfig) throws ServletException {
+ PluginServletFilter.filterConfig = filterConfig;
+ synchronized (LIST) {
+Index: jenkins/core/src/main/java/hudson/WebAppMain.java
+===================================================================
- --- jenkins.orig/core/src/main/java/hudson/WebAppMain.java 2012-04-26 14:09:39.195341014 +0100
- +++ jenkins/core/src/main/java/hudson/WebAppMain.java 2012-04-30 12:27:08.699252835 +0100
- @@ -260,7 +260,6 @@
++--- jenkins.orig/core/src/main/java/hudson/WebAppMain.java 2012-07-24 17:48:11.807867241 +0100
+++++ jenkins/core/src/main/java/hudson/WebAppMain.java 2012-07-24 17:48:22.495901489 +0100
++@@ -251,7 +251,6 @@
+ /**
+ * Installs log handler to monitor all Hudson logs.
+ */
+- @edu.umd.cs.findbugs.annotations.SuppressWarnings("LG_LOST_LOGGER_DUE_TO_WEAK_REFERENCE")
+ private void installLogger() {
+ Jenkins.logRecords = handler.getView();
+ Logger.getLogger("hudson").addHandler(handler);
+Index: jenkins/core/src/main/java/jenkins/model/Jenkins.java
+===================================================================
- --- jenkins.orig/core/src/main/java/jenkins/model/Jenkins.java 2012-04-26 14:09:39.219341002 +0100
- +++ jenkins/core/src/main/java/jenkins/model/Jenkins.java 2012-04-30 12:26:58.503220606 +0100
- @@ -670,7 +670,6 @@
++--- jenkins.orig/core/src/main/java/jenkins/model/Jenkins.java 2012-07-24 17:48:11.807867241 +0100
+++++ jenkins/core/src/main/java/jenkins/model/Jenkins.java 2012-07-24 17:48:22.499901502 +0100
++@@ -699,7 +699,6 @@
+ * @param pluginManager
+ * If non-null, use existing plugin manager. create a new one.
+ */
+- @edu.umd.cs.findbugs.annotations.SuppressWarnings("SC_START_IN_CTOR") // bug in FindBugs. It flags UDPBroadcastThread.start() call but that's for another class
+ protected Jenkins(File root, ServletContext context, PluginManager pluginManager) throws IOException, InterruptedException, ReactorException {
- // As hudson is starting, grant this process full control
- SecurityContextHolder.getContext().setAuthentication(ACL.SYSTEM);
- @@ -2871,7 +2870,6 @@
++ long start = System.currentTimeMillis();
++
++@@ -2963,7 +2962,6 @@
+ /**
+ * For debugging. Expose URL to perform GC.
+ */
+- @edu.umd.cs.findbugs.annotations.SuppressWarnings("DM_GC")
+ public void doGc(StaplerResponse rsp) throws IOException {
+ checkPermission(Jenkins.ADMINISTER);
+ System.gc();
+Index: jenkins/maven-plugin/src/main/java/hudson/maven/MavenUtil.java
+===================================================================
- --- jenkins.orig/maven-plugin/src/main/java/hudson/maven/MavenUtil.java 2012-04-26 14:09:39.399340909 +0100
- +++ jenkins/maven-plugin/src/main/java/hudson/maven/MavenUtil.java 2012-04-30 12:26:17.835092970 +0100
- @@ -52,7 +52,6 @@
++--- jenkins.orig/maven-plugin/src/main/java/hudson/maven/MavenUtil.java 2012-07-24 17:48:11.803867228 +0100
+++++ jenkins/maven-plugin/src/main/java/hudson/maven/MavenUtil.java 2012-07-24 17:48:22.499901502 +0100
++@@ -53,7 +53,6 @@
+ import org.apache.maven.project.MavenProject;
+ import org.apache.maven.project.ProjectBuildingException;
+
+-import edu.umd.cs.findbugs.annotations.SuppressWarnings;
+
+ /**
+ * @author Kohsuke Kawaguchi
- @@ -138,7 +137,6 @@
++@@ -140,7 +139,6 @@
+ * Creates a fresh {@link MavenEmbedder} instance.
+ *
+ */
+- @SuppressWarnings("RV_RETURN_VALUE_IGNORED_BAD_PRACTICE")
+ public static MavenEmbedder createEmbedder(MavenEmbedderRequest mavenEmbedderRequest) throws MavenEmbedderException, IOException {
+
+
+Index: jenkins/maven-plugin/src/main/java/hudson/maven/reporters/SurefireArchiver.java
+===================================================================
- --- jenkins.orig/maven-plugin/src/main/java/hudson/maven/reporters/SurefireArchiver.java 2012-04-26 14:09:39.403340907 +0100
- +++ jenkins/maven-plugin/src/main/java/hudson/maven/reporters/SurefireArchiver.java 2012-04-30 12:26:32.387138474 +0100
- @@ -168,7 +168,6 @@
++--- jenkins.orig/maven-plugin/src/main/java/hudson/maven/reporters/SurefireArchiver.java 2012-07-24 17:48:11.803867228 +0100
+++++ jenkins/maven-plugin/src/main/java/hudson/maven/reporters/SurefireArchiver.java 2012-07-24 17:48:22.499901502 +0100
++@@ -170,7 +170,6 @@
+ return true;
+ }
+
+- @edu.umd.cs.findbugs.annotations.SuppressWarnings(value="ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD", justification="It's okay to write to static fields here, as each Maven build is started in its own VM")
+ private void markBuildAsSuccess(Throwable mojoError, MavenBuildInformation buildInfo) {
+ if(mojoError == null // in the success case we don't get any exception in Maven 3.0.2+; Maven < 3.0.2 returns no exception anyway
+ || mojoError instanceof MojoFailureException) {
++Index: jenkins/core/src/main/java/hudson/cli/GroovyshCommand.java
++===================================================================
++--- jenkins.orig/core/src/main/java/hudson/cli/GroovyshCommand.java 2012-07-24 16:27:16.102613000 +0100
+++++ jenkins/core/src/main/java/hudson/cli/GroovyshCommand.java 2012-07-24 17:49:02.640030167 +0100
++@@ -87,7 +87,6 @@
++ private static final long serialVersionUID = 1L;
++
++ @SuppressWarnings("unused")
++- @edu.umd.cs.findbugs.annotations.SuppressWarnings(value="UMAC_UNCALLABLE_METHOD_OF_ANONYMOUS_CLASS",justification="Closure invokes this via reflection")
++ public Object doCall(Object[] args) {
++ assert(args.length == 1);
++ assert(args[0] instanceof Shell);
++@@ -110,7 +109,6 @@
++ private static final long serialVersionUID = 1L;
++
++ @SuppressWarnings("unused")
++- @edu.umd.cs.findbugs.annotations.SuppressWarnings(value="UMAC_UNCALLABLE_METHOD_OF_ANONYMOUS_CLASS",justification="Closure invokes this via reflection")
++ public Object doCall(Object[] args) throws ChannelClosedException {
++ if (args.length == 1 && args[0] instanceof ChannelClosedException) {
++ throw (ChannelClosedException)args[0];
diff --combined debian/patches/build/remove-licensing-report.patch
index 8c41b59,0000000..44dc18c
mode 100644,000000..100644
--- a/debian/patches/build/remove-licensing-report.patch
+++ b/debian/patches/build/remove-licensing-report.patch
@@@ -1,38 -1,0 +1,38 @@@
+Description: Upstream generates a licensing report for Jenkins deps.
+ Not generated during debian build so excluding from About Jenkins page.
+Author: James Page <james.page at ubuntu.com>
+Forwarded: not-needed
+
+Index: jenkins/core/src/main/resources/hudson/AboutJenkins/index.jelly
+===================================================================
- --- jenkins.orig/core/src/main/resources/hudson/AboutJenkins/index.jelly 2012-02-10 15:39:22.749867338 +0000
- +++ jenkins/core/src/main/resources/hudson/AboutJenkins/index.jelly 2012-02-28 16:48:45.517724331 +0000
++--- jenkins.orig/core/src/main/resources/hudson/AboutJenkins/index.jelly 2012-07-24 16:32:51.818007739 +0100
+++++ jenkins/core/src/main/resources/hudson/AboutJenkins/index.jelly 2012-07-24 16:33:05.318055881 +0100
+@@ -31,13 +31,6 @@
+ <p>
+ ${%blurb}
+ </p>
+-
+- <p>
+- ${%dependencies}
+- </p>
+- <t:thirdPartyLicenses>
+- <st:include page="/META-INF/licenses.xml" optional="true" />
+- </t:thirdPartyLicenses>
+ </l:main-panel>
+ </l:layout>
+ </j:jelly>
+Index: jenkins/core/src/main/resources/hudson/AboutJenkins/index.properties
+===================================================================
- --- jenkins.orig/core/src/main/resources/hudson/AboutJenkins/index.properties 2012-02-10 15:39:22.749867338 +0000
- +++ jenkins/core/src/main/resources/hudson/AboutJenkins/index.properties 2012-02-28 16:48:45.517724331 +0000
++--- jenkins.orig/core/src/main/resources/hudson/AboutJenkins/index.properties 2012-07-24 16:32:51.818007739 +0100
+++++ jenkins/core/src/main/resources/hudson/AboutJenkins/index.properties 2012-07-24 16:33:05.318055881 +0100
+@@ -20,7 +20,7 @@
+ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ # THE SOFTWARE.
+
+-about=About Jenkins {0}
++about=About Jenkins {0} (Debian/Ubuntu distribution)
+ blurb=<a href="http://jenkins-ci.org/">Jenkins</a> is a community-developed open-source continuous integration server.
+
+-dependencies=Jenkins depends on the following 3rd party libraries.
+\ No newline at end of file
++dependencies=Jenkins depends on the following 3rd party libraries.
diff --combined debian/patches/build/use-stock-asm3.patch
index 0000000,0000000..595e70d
new file mode 100644
--- /dev/null
+++ b/debian/patches/build/use-stock-asm3.patch
@@@ -1,0 -1,0 +1,49 @@@
++Description: Upstream use a remapped version of asm3 to ensure
++ that it does not conflict with asm2 elsewhere in the Jenkins
++ dependency tree.
++ .
++ In Debian/Ubuntu we have a consistent version in the tree (unlike
++ upstream) so we don't need todo this.
++Author: James Page <james.page at ubuntu.com>
++Forwarded: not-needed
++
++Index: jenkins/core/src/main/java/hudson/util/SubClassGenerator.java
++===================================================================
++--- jenkins.orig/core/src/main/java/hudson/util/SubClassGenerator.java 2012-07-24 16:27:16.000000000 +0100
+++++ jenkins/core/src/main/java/hudson/util/SubClassGenerator.java 2012-07-24 17:12:02.125151475 +0100
++@@ -25,13 +25,13 @@
++
++ import hudson.PluginManager.UberClassLoader;
++ import jenkins.model.Jenkins;
++-import org.kohsuke.asm3.ClassWriter;
++-import org.kohsuke.asm3.MethodVisitor;
++-import org.kohsuke.asm3.Type;
+++import org.objectweb.asm.ClassWriter;
+++import org.objectweb.asm.MethodVisitor;
+++import org.objectweb.asm.Type;
++
++ import java.lang.reflect.Constructor;
++
++-import static org.kohsuke.asm3.Opcodes.*;
+++import static org.objectweb.asm.Opcodes.*;
++
++ /**
++ * Generates a new class that just defines constructors into the super types.
++Index: jenkins/core/pom.xml
++===================================================================
++--- jenkins.orig/core/pom.xml 2012-07-24 16:33:21.826114780 +0100
+++++ jenkins/core/pom.xml 2012-07-24 17:16:17.865891211 +0100
++@@ -577,6 +577,13 @@
++ </dependency>
++
++ <dependency>
+++ <!-- with this, stapler can load parameter names from the debug info -->
+++ <groupId>asm</groupId>
+++ <artifactId>asm-commons</artifactId>
+++ <version>2.2.3</version>
+++ </dependency>
+++
+++ <dependency>
++ <groupId>org.kohsuke</groupId>
++ <artifactId>access-modifier-annotation</artifactId>
++ <version>1.0</version>
diff --combined debian/patches/build/use-stock-jmdns.patch
index 77bdf5c,0000000..beaca59
mode 100644,000000..100644
--- a/debian/patches/build/use-stock-jmdns.patch
+++ b/debian/patches/build/use-stock-jmdns.patch
@@@ -1,31 -1,0 +1,31 @@@
+Description: Jenkins upstream ships with a forked version of
+ JmDNS which has a patched in abort method with shuts down
+ uncleanly without blocking.
+ .
+ Unit this feature ships in JmDNS upstream we will live with a
+ blocking shutdown in Debian and Ubuntu.
+Author: James Page <james.page at ubuntu.com>
+Forwarded: not-needed
+
+Index: jenkins/core/src/main/java/hudson/DNSMultiCast.java
+===================================================================
- --- jenkins.orig/core/src/main/java/hudson/DNSMultiCast.java 2012-05-02 14:34:03.000000000 +0100
- +++ jenkins/core/src/main/java/hudson/DNSMultiCast.java 2012-05-02 14:37:53.066974670 +0100
- @@ -52,12 +52,12 @@
++--- jenkins.orig/core/src/main/java/hudson/DNSMultiCast.java 2012-07-24 16:32:51.194005512 +0100
+++++ jenkins/core/src/main/java/hudson/DNSMultiCast.java 2012-07-24 16:33:08.474067138 +0100
++@@ -67,12 +67,12 @@
+
+ public void close() {
+ if (jmdns!=null) {
+-// try {
+- jmdns.abort();
++ try {
++ jmdns.close();
+ jmdns = null;
+-// } catch (final IOException e) {
+-// LOGGER.log(Level.WARNING,"Failed to close down JmDNS instance!",e);
+-// }
++ } catch (final IOException e) {
++ LOGGER.log(Level.WARNING,"Failed to close down JmDNS instance!",e);
++ }
+ }
+ }
+
diff --combined debian/patches/dependency-upgrades/jnr-posix-upgrade.patch
index b72c685,0000000..cf436c2
mode 100644,000000..100644
--- a/debian/patches/dependency-upgrades/jnr-posix-upgrade.patch
+++ b/debian/patches/dependency-upgrades/jnr-posix-upgrade.patch
@@@ -1,90 -1,0 +1,81 @@@
+Description: Transitional patch from jna-posix to jnr-posix as
+ currently packaged in Debian and Ubuntu.
+Author: James Page <james.page at ubuntu.com>
+Forwarded: not-needed
+
+Index: jenkins/core/src/main/java/hudson/os/PosixAPI.java
+===================================================================
- --- jenkins.orig/core/src/main/java/hudson/os/PosixAPI.java 2012-02-28 16:49:30.869862404 +0000
- +++ jenkins/core/src/main/java/hudson/os/PosixAPI.java 2012-04-26 14:15:30.844630973 +0100
++--- jenkins.orig/core/src/main/java/hudson/os/PosixAPI.java 2012-07-24 16:32:51.226005626 +0100
+++++ jenkins/core/src/main/java/hudson/os/PosixAPI.java 2012-07-24 16:33:08.182066097 +0100
+@@ -1,10 +1,9 @@
+ package hudson.os;
+
+-import org.jruby.ext.posix.JavaPOSIX;
+ import org.jruby.ext.posix.POSIX;
+ import org.jruby.ext.posix.POSIXFactory;
+ import org.jruby.ext.posix.POSIXHandler;
+-import org.jruby.ext.posix.POSIX.ERRORS;
++import com.kenai.constantine.platform.Errno;
+
+ import java.io.File;
+ import java.io.InputStream;
- @@ -26,11 +25,11 @@
++@@ -34,11 +33,11 @@
+ * used a fallback java implementation which does not support many operations.
+ */
- public boolean isNative() {
++ public static boolean supportsNative() {
+- return !(posix instanceof JavaPOSIX);
++ return posix.isNative();
+ }
-
++
+ private static final POSIX posix = POSIXFactory.getPOSIX(new POSIXHandler() {
+- public void error(ERRORS errors, String s) {
++ public void error(Errno errors, String s) {
+ throw new PosixException(s,errors);
+ }
+
- @@ -43,7 +42,7 @@
- }
-
- public boolean isVerbose() {
- - return false;
- + return true;
- }
-
- public File getCurrentWorkingDirectory() {
+Index: jenkins/core/src/main/java/hudson/os/PosixException.java
+===================================================================
- --- jenkins.orig/core/src/main/java/hudson/os/PosixException.java 2012-02-28 16:49:30.885862453 +0000
- +++ jenkins/core/src/main/java/hudson/os/PosixException.java 2012-04-26 14:15:30.844630973 +0100
++--- jenkins.orig/core/src/main/java/hudson/os/PosixException.java 2012-07-24 16:32:51.226005626 +0100
+++++ jenkins/core/src/main/java/hudson/os/PosixException.java 2012-07-24 16:33:08.182066097 +0100
+@@ -1,6 +1,6 @@
+ package hudson.os;
+
+-import org.jruby.ext.posix.POSIX.ERRORS;
++import com.kenai.constantine.platform.Errno;
+
+ /**
+ * Indicates an error during POSIX API call.
+@@ -8,14 +8,14 @@
+ * @author Kohsuke Kawaguchi
+ */
+ public class PosixException extends RuntimeException {
+- private final ERRORS errors;
++ private final Errno errors;
+
+- public PosixException(String message, ERRORS errors) {
++ public PosixException(String message, Errno errors) {
+ super(message);
+ this.errors = errors;
+ }
+
+- public ERRORS getErrorCode() {
++ public Errno getErrorCode() {
+ return errors;
+ }
+
+Index: jenkins/core/pom.xml
+===================================================================
- --- jenkins.orig/core/pom.xml 2012-04-26 14:15:28.072632057 +0100
- +++ jenkins/core/pom.xml 2012-04-26 14:15:30.844630973 +0100
- @@ -105,6 +105,11 @@
++--- jenkins.orig/core/pom.xml 2012-07-24 16:33:07.086062188 +0100
+++++ jenkins/core/pom.xml 2012-07-24 16:33:08.182066097 +0100
++@@ -117,6 +117,11 @@
+ <version>1.0.3</version>
+ </dependency>
+ <dependency>
++ <groupId>org.jruby.extras</groupId>
++ <artifactId>jffi</artifactId>
++ <version>0.6.5</version>
++ </dependency>
++ <dependency>
+ <groupId>org.kohsuke</groupId>
+ <artifactId>trilead-putty-extension</artifactId>
+ <version>1.0</version>
diff --combined debian/patches/native-integration/filter-native-integrations.patch
index bce7a6c,0000000..2ef11b2
mode 100644,000000..100644
--- a/debian/patches/native-integration/filter-native-integrations.patch
+++ b/debian/patches/native-integration/filter-native-integrations.patch
@@@ -1,27 -1,0 +1,27 @@@
+Description: Filter non-Linux based native integrations from
+ compliation using stapler.
+Author: James Page <james.page at ubuntu.com>
+Forwarded: not-needed
+
+Index: jenkins/core/pom.xml
+===================================================================
- --- jenkins.orig/core/pom.xml 2012-04-26 14:15:12.796638028 +0100
- +++ jenkins/core/pom.xml 2012-04-26 14:15:16.100636735 +0100
- @@ -642,6 +642,17 @@
++--- jenkins.orig/core/pom.xml 2012-07-24 16:33:06.810061201 +0100
+++++ jenkins/core/pom.xml 2012-07-24 16:33:07.086062188 +0100
++@@ -663,6 +663,17 @@
+ <configuration>
+ <fork>${staplerFork}</fork><!-- the source code is big enough now that otherwise it fails with OutOfMemoryError -->
+ <maxmem>128m</maxmem>
++ <excludes>
++ <exclude>**/os/solaris/*</exclude>
++ <exclude>**/os/windows/*</exclude>
++ <exclude>**/DCOMSandbox.java</exclude>
++ <exclude>**/DotNet.java</exclude>
++ <exclude>**/WindowsSlaveInstaller.java</exclude>
++ <exclude>**/WindowsInstallerLink.java</exclude>
++ </excludes>
++ <testExcludes>
++ <exclude>**/DCOMSandbox.java</exclude>
++ </testExcludes>
+ </configuration>
+ </plugin>
+ <plugin>
diff --combined debian/patches/native-integration/purge-embedded-su4j.patch
index 5f9ce8b,0000000..0f3874c
mode 100644,000000..100644
--- a/debian/patches/native-integration/purge-embedded-su4j.patch
+++ b/debian/patches/native-integration/purge-embedded-su4j.patch
@@@ -1,38 -1,0 +1,38 @@@
+Description: Purge embeddedsu4j from Jenkins - only required for Solaris
+Author: James Page <james.page at ubuntu.com>
+Forwarded: not-needed
+
+Index: jenkins/core/src/main/java/hudson/os/SU.java
+===================================================================
- --- jenkins.orig/core/src/main/java/hudson/os/SU.java 2012-02-28 16:49:31.061862988 +0000
- +++ jenkins/core/src/main/java/hudson/os/SU.java 2012-04-26 14:15:19.288635490 +0100
++--- jenkins.orig/core/src/main/java/hudson/os/SU.java 2012-07-24 16:32:51.310005927 +0100
+++++ jenkins/core/src/main/java/hudson/os/SU.java 2012-07-24 16:33:07.354063144 +0100
+@@ -23,7 +23,6 @@
+ */
+ package hudson.os;
+
+-import com.sun.solaris.EmbeddedSu;
+ import hudson.Launcher.LocalLauncher;
+ import hudson.Util;
+ import hudson.model.Computer;
+@@ -92,21 +91,6 @@
+ }
+ }.start(listener,rootPassword);
+
+- if(os.equals("SunOS"))
+- return new UnixSu() {
+- protected String sudoExe() {
+- return "/usr/bin/pfexec";
+- }
+-
+- protected Process sudoWithPass(ArgumentListBuilder args) throws IOException {
+- listener.getLogger().println("Running with embedded_su");
+- ProcessBuilder pb = new ProcessBuilder(args.prepend(sudoExe()).toCommandArray());
+- return EmbeddedSu.startWithSu(rootUsername, rootPassword, pb);
+- }
+- // in solaris, pfexec never asks for a password, so username==null means
+- // we won't be using password. this helps disambiguate empty password
+- }.start(listener,rootUsername==null?null:rootPassword);
+-
+ // TODO: Mac?
+
+ // unsupported platform, take a chance
diff --combined debian/patches/native-integration/purge-windows-support.patch
index 8b12e43,0000000..c07210d
mode 100644,000000..100644
--- a/debian/patches/native-integration/purge-windows-support.patch
+++ b/debian/patches/native-integration/purge-windows-support.patch
@@@ -1,26 -1,0 +1,26 @@@
+Description: Purges native windows integration for slave from Jenkins.
+ Although this may be useful in some deployments the requirements in terms
+ of additional packages are not insignificant and contain a number of forks.
+Author: James Page <james.page at ubuntu.com>
+Forwarded: not-needed
+
+Index: jenkins/core/src/main/java/hudson/slaves/SlaveComputer.java
+===================================================================
- --- jenkins.orig/core/src/main/java/hudson/slaves/SlaveComputer.java 2012-04-26 14:09:39.211341006 +0100
- +++ jenkins/core/src/main/java/hudson/slaves/SlaveComputer.java 2012-04-26 14:15:25.276633148 +0100
++--- jenkins.orig/core/src/main/java/hudson/slaves/SlaveComputer.java 2012-07-24 16:32:51.254005727 +0100
+++++ jenkins/core/src/main/java/hudson/slaves/SlaveComputer.java 2012-07-24 16:33:07.914065141 +0100
+@@ -35,7 +35,6 @@
+ import hudson.util.RingBufferLogHandler;
+ import hudson.util.Futures;
+ import hudson.FilePath;
+-import hudson.lifecycle.WindowsSlaveInstaller;
+ import hudson.Util;
+ import hudson.AbortException;
+ import hudson.remoting.Launcher;
- @@ -362,7 +361,6 @@
++@@ -365,7 +364,6 @@
+ channel.pinClassLoader(getClass().getClassLoader());
+
+ channel.call(new SlaveInitializer());
+- channel.call(new WindowsSlaveInstaller(remoteFs));
+ for (ComputerListener cl : ComputerListener.all())
+ cl.preOnline(this,channel,root,taskListener);
+
diff --combined debian/patches/native-integration/purge-winp.patch
index 8ded88b,0000000..feb1988
mode 100644,000000..100644
--- a/debian/patches/native-integration/purge-winp.patch
+++ b/debian/patches/native-integration/purge-winp.patch
@@@ -1,117 -1,0 +1,117 @@@
+Description: Purges windows process integration from Jenkins
+ not needed on Debian based systems
+Author: James Page <james.page at ubuntu.com>
+Forwarded: not-needed
+
+Index: jenkins/core/src/main/java/hudson/util/ProcessTree.java
+===================================================================
- --- jenkins.orig/core/src/main/java/hudson/util/ProcessTree.java 2012-04-26 14:09:39.215341004 +0100
- +++ jenkins/core/src/main/java/hudson/util/ProcessTree.java 2012-04-26 14:15:22.328634299 +0100
++--- jenkins.orig/core/src/main/java/hudson/util/ProcessTree.java 2012-07-24 16:32:51.282005826 +0100
+++++ jenkins/core/src/main/java/hudson/util/ProcessTree.java 2012-07-24 16:33:07.630064127 +0100
+@@ -37,8 +37,6 @@
+ import hudson.util.ProcessTreeRemoting.IOSProcess;
+ import hudson.util.ProcessTreeRemoting.IProcessTree;
+ import org.apache.commons.io.FileUtils;
+-import org.jvnet.winp.WinProcess;
+-import org.jvnet.winp.WinpException;
+
+ import java.io.BufferedReader;
+ import java.io.ByteArrayOutputStream;
+@@ -331,9 +329,6 @@
+ return DEFAULT;
+
+ try {
+- if(File.pathSeparatorChar==';')
+- return new Windows();
+-
+ String os = Util.fixNull(System.getProperty("os.name"));
+ if(os.equals("Linux"))
+ return new Linux();
+@@ -390,81 +385,6 @@
+ }
+ };
+
+-
+- private static final class Windows extends Local {
+- Windows() {
+- for (final WinProcess p : WinProcess.all()) {
+- int pid = p.getPid();
+- super.processes.put(pid,new OSProcess(pid) {
+- private EnvVars env;
+- private List<String> args;
+-
+- public OSProcess getParent() {
+- // windows process doesn't have parent/child relationship
+- return null;
+- }
+-
+- public void killRecursively() {
+- LOGGER.finer("Killing recursively "+getPid());
+- p.killRecursively();
+- }
+-
+- public void kill() throws InterruptedException {
+- LOGGER.finer("Killing "+getPid());
+- p.kill();
+- killByKiller();
+- }
+-
+- @Override
+- public synchronized List<String> getArguments() {
+- if(args==null) args = Arrays.asList(QuotedStringTokenizer.tokenize(p.getCommandLine()));
+- return args;
+- }
+-
+- @Override
+- public synchronized EnvVars getEnvironmentVariables() {
+- if(env==null) env = new EnvVars(p.getEnvironmentVariables());
+- return env;
+- }
+- });
+-
+- }
+- }
+-
+- @Override
+- public OSProcess get(Process proc) {
+- return get(new WinProcess(proc).getPid());
+- }
+-
+- public void killAll(Map<String, String> modelEnvVars) throws InterruptedException {
+- for( OSProcess p : this) {
+- if(p.getPid()<10)
+- continue; // ignore system processes like "idle process"
+-
+- LOGGER.finest("Considering to kill "+p.getPid());
+-
+- boolean matched;
+- try {
+- matched = p.hasMatchingEnvVars(modelEnvVars);
+- } catch (WinpException e) {
+- // likely a missing privilege
+- LOGGER.log(FINEST," Failed to check environment variable match",e);
+- continue;
+- }
+-
+- if(matched)
+- p.killRecursively();
+- else
+- LOGGER.finest("Environment variable didn't match");
+-
+- }
+- }
+-
+- static {
+- WinProcess.enableDebugPrivilege();
+- }
+- }
+-
+ static abstract class Unix extends Local {
+ @Override
+ public OSProcess get(Process proc) {
+@@ -1227,4 +1147,4 @@
+ */
+ public static boolean enabled = !Boolean.getBoolean(ProcessTreeKiller.class.getName()+".disable")
+ && !Boolean.getBoolean(ProcessTree.class.getName()+".disable");
+-}
+\ No newline at end of file
++}
diff --combined debian/patches/native-integration/windows-service-disable.patch
index 2a25993,0000000..e096dc8
mode 100644,000000..100644
--- a/debian/patches/native-integration/windows-service-disable.patch
+++ b/debian/patches/native-integration/windows-service-disable.patch
@@@ -1,41 -1,0 +1,41 @@@
+Description: Removes depenedency on windows specific components for Linux build
+Author: James Page <james.page at ubuntu.com>
+Forwarded: not-needed
+
+Index: jenkins/core/pom.xml
+===================================================================
- --- jenkins.orig/core/pom.xml 2012-04-26 14:15:07.100640255 +0100
- +++ jenkins/core/pom.xml 2012-04-26 14:15:12.796638028 +0100
- @@ -699,32 +699,6 @@
++--- jenkins.orig/core/pom.xml 2012-07-24 16:33:05.898057949 +0100
+++++ jenkins/core/pom.xml 2012-07-24 16:33:06.810061201 +0100
++@@ -720,32 +720,6 @@
+ </execution>
+ </executions>
+ </plugin>
+- <plugin>
+- <artifactId>maven-dependency-plugin</artifactId>
+- <executions>
+- <execution>
+- <id>winsw</id>
+- <phase>generate-resources</phase>
+- <goals>
+- <!-- we use copy as this is a dependency from outside the reactor -->
+- <goal>copy</goal>
+- </goals>
+- <configuration>
+- <artifactItems>
+- <artifactItem>
+- <groupId>com.sun.winsw</groupId>
+- <artifactId>winsw</artifactId>
+- <version>1.10</version>
+- <classifier>bin</classifier>
+- <type>exe</type>
+- <outputDirectory>${project.build.outputDirectory}/windows-service</outputDirectory>
+- <destFileName>jenkins.exe</destFileName>
+- </artifactItem>
+- </artifactItems>
+- </configuration>
+- </execution>
+- </executions>
+- </plugin>
+ <plugin><!-- set main class -->
+ <artifactId>maven-jar-plugin</artifactId>
+ <!-- version specified in grandparent pom -->
diff --combined debian/patches/series
index 6ffa150,0000000..5d3c296
mode 100644,000000..100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@@ -1,19 -1,0 +1,16 @@@
+build/build.patch
+build/openjdk6.patch
+build/remove-licensing-report.patch
+build/disable-plugins.patch
+build/apt-stapler-processing.patch
+build/jenkins-version-number.patch
+build/remove-findbugs.patch
+native-integration/windows-service-disable.patch
+native-integration/filter-native-integrations.patch
+native-integration/purge-embedded-su4j.patch
+native-integration/purge-winp.patch
+native-integration/purge-windows-support.patch
- #dependency-upgrades/groovy-upgrade.patch
+dependency-upgrades/jnr-posix-upgrade.patch
- dependency-upgrades/asm3-upgrade.patch
- dependency-upgrades/animal-sniffer-upgrade.patch
+build/use-stock-jmdns.patch
+ubuntu/ubuntu-font.patch
- security/CVE-2012-4438_CVE-2012-4439.patch
++build/use-stock-asm3.patch
diff --combined debian/patches/ubuntu/ubuntu-font.patch
index dfadd42,0000000..19f7f20
mode 100644,000000..100644
--- a/debian/patches/ubuntu/ubuntu-font.patch
+++ b/debian/patches/ubuntu/ubuntu-font.patch
@@@ -1,26 -1,0 +1,26 @@@
+Description: Add 'Ubuntu' font to styling for Jenkins
+Author: James Page <james.page at ubuntu.com>
+Forwarded: not-needed
+
+Index: jenkins/war/src/main/webapp/css/style.css
+===================================================================
- --- jenkins.orig/war/src/main/webapp/css/style.css 2012-04-26 14:09:39.411340903 +0100
- +++ jenkins/war/src/main/webapp/css/style.css 2012-04-26 14:15:40.692627130 +0100
++--- jenkins.orig/war/src/main/webapp/css/style.css 2012-07-24 16:32:51.166005413 +0100
+++++ jenkins/war/src/main/webapp/css/style.css 2012-07-24 16:33:08.642067737 +0100
+@@ -29,7 +29,7 @@
+
+ body, table, form, input, td, th, p, textarea, select
+ {
+- font-family: Verdana, Helvetica, sans serif;
++ font-family: Ubuntu, Verdana, Helvetica, sans serif;
+ font-size: 11px;
+ }
+
- @@ -376,7 +376,7 @@
++@@ -357,7 +357,7 @@
+ padding: 4px 0;
+ margin-left: 0;
+ border-bottom: 1px solid #090;
+- font: bold 12px Verdana, sans-serif;
++ font: bold 12px Ubuntu, Verdana, sans-serif;
+ }
+
+ #foldertab li {
diff --combined debian/rules
index 278b6a8,0000000..0b8ed00
mode 100755,000000..100755
--- a/debian/rules
+++ b/debian/rules
@@@ -1,81 -1,0 +1,83 @@@
+#!/usr/bin/make -f
+
+include /usr/share/cdbs/1/rules/debhelper.mk
+include /usr/share/cdbs/1/class/maven.mk
+
+JAVA_HOME := /usr/lib/jvm/default-java
+# Parse upstream version without +dfsg for source download+
+DEB_UPSTREAM_VERSION=$(shell dpkg-parsechangelog | sed -rne 's,^Version: ([^+]+).*,\1,p')
+DEB_MAVEN_BUILD_TARGET := install
+DEB_MAVEN_ARGS := -e -Dbuild.version="$(DEB_UPSTREAM_VERSION)"
+DEB_MAVEN_INSTALL_TO_USJ := false
+
+# Debian package version use daemon to control jenkins processes
+# Ubuntu does not need this - managed by upstart
+ifeq ($(shell dpkg-vendor --derives-from ubuntu || echo debian ),debian)
+DEB_DH_GENCONTROL_ARGS:= -- -Tdebian/debian_control_vars
+endif
+
+# Generate POM file for plugins
+debian/plugin-debian.pom: debian/plugin-debian.pom.in
+ sed -e "s|__VERSION__|$(DEB_UPSTREAM_VERSION)|g" $< > debian/plugin-debian.pom
+
+# Install the POM for plugin-parent manually as not part
+# of main build - manually installed as not managed by
+# m-d-h as breaks build elements for re-use.
+binary-post-install/libjenkins-plugin-parent-java:: debian/plugin-debian.pom
+ dh_install -plibjenkins-plugin-parent-java debian/plugin-debian.pom \
+ usr/share/maven-repo/org/jenkins-ci/plugins/plugin/debian
+
+# Sort out MANIFEST.MF entries in jenkins cli .jar files
+# and create handy links for script wrapper
+binary-post-install/jenkins-cli::
+ dh_link -pjenkins-cli usr/share/jenkins/cli/java/cli-$(DEB_UPSTREAM_VERSION)-jar-with-dependencies.jar \
+ usr/share/jenkins/cli/java/cli.jar
+ jh_classpath -pjenkins-cli
+ jh_manifest -pjenkins-cli
+
+# Create handy links for script wrapper
+binary-post-install/jenkins-external-job-monitor::
+ dh_link -pjenkins-external-job-monitor usr/share/jenkins/external-job-monitor/java/jenkins-core-$(DEB_UPSTREAM_VERSION).jar \
+ usr/share/jenkins/external-job-monitor/java/jenkins-core.jar
+
+# Switch in upstart configuration if building on Ubuntu
+# and generate control with/without daemon.
+build/jenkins::
+ if dpkg-vendor --derives-from ubuntu ; then \
+ cp debian/jenkins.upstart.in debian/jenkins.upstart ; \
+ fi
+
+build/jenkins-slave::
+ if dpkg-vendor --derives-from ubuntu ; then \
+ cp debian/jenkins-slave.upstart.in debian/jenkins-slave.upstart ; \
+ fi
+
+# Tidy up any upstart configuration files lying around
+clean::
+ [ ! -f dummy.keystore ] || rm dummy.keystore
+ rm -rf debian/*.upstart
+ rm -rf debian/plugin-debian.pom
- rm -rf core/src/main/java/jenkins/util/ServerTcpPort.java
++ rm -f core/src/main/java/jenkins/util/MarkFindingOutputStream.java \
++ core/src/main/java/jenkins/util/ServerTcpPort.java
+
+get-orig-source:
+ uscan --download-version $(DEB_UPSTREAM_VERSION) --force-download --rename
+ mv ../jenkins_$(DEB_UPSTREAM_VERSION).orig.tar.gz \
+ ../jenkins_$(DEB_UPSTREAM_VERSION)+dfsg.orig.tar.gz
+
+before-mvn-build:: dummy.keystore
+ # Purge out links relating to jenkins from the copy of the maven repo
+ # fixes issue with circular dependency and the need to use the install
+ # maven target
+ for module in jenkins-core cli pom jenkins-war; do \
+ find debian/maven-repo/org/jenkins-ci/main/$${module} -type l -delete || true ;\
+ done
+ # Hack in java files from groovy source folder - no idea why they are there
+ # might be maven3 related.
++ cp core/src/main/groovy/jenkins/util/MarkFindingOutputStream.java core/src/main/java/jenkins/util
+ cp core/src/main/groovy/jenkins/util/ServerTcpPort.java core/src/main/java/jenkins/util
+
+dummy.keystore:
+ keytool -genkeypair -dname "cn=Jenkins, ou=Jenkins Project, o=Debian, c=US" \
+ -alias jenkins -keypass jenkins -keystore dummy.keystore \
+ -storepass jenkins -validity 3650
--
jenkins packaging
More information about the pkg-java-commits
mailing list