The following commit has been merged in the master branch: commit f2a1b556fb8c568f7cee19464d577a810e0cbc9e Author: Jakub Adam <jakub.a...@ktknet.cz> Date: Sat Mar 10 23:14:59 2012 +0100
Add bundle-info-helper.patch and find-org-apache-ant.patch diff --git a/debian/changelog b/debian/changelog index fc9c47b..b077489 100644 --- a/debian/changelog +++ b/debian/changelog @@ -7,6 +7,8 @@ eclipse (3.7.2-1) UNRELEASED; urgency=low * Make extended description of eclipse binary package more accurate (Closes: #655945). * Bump Standards-Version to 3.9.3 (no changes required). + * Fix broken installaton after some package Eclipse core platform + depends on is upgraded (Closes: #662153, #663335). -- Jakub Adam <jakub.a...@ktknet.cz> Wed, 07 Mar 2012 01:07:05 +0100 diff --git a/debian/patches/bundle-info-helper.patch b/debian/patches/bundle-info-helper.patch new file mode 100644 index 0000000..c817c6c --- /dev/null +++ b/debian/patches/bundle-info-helper.patch @@ -0,0 +1,318 @@ +From: Jakub Adam <jakub.a...@ktknet.cz> +Date: Sat, 10 Mar 2012 18:06:03 +0100 +Subject: bundle-info-helper + +In bundles.info there is a list of bundles load by Equinox simple configurator +on startup. This file is generated when Eclipse is built from sources and its +contents are fixed thereafter. This patch tries to solve a situation when some +of orbit dependencies are upgraded by operating system's package manager. + +The bundle's record in bundles.info contains a version number it had at the +time of compilation. When this number becomes different from the version of +bundle that is actually installed in the system, Eclipse rejects to load the +bundle which leads to missing plugins or even inability to start the workbench. + +When bundles.info is loaded by simpleconfigurator, the BundleInfoHelper class +inspects OSGi metadata of the installed bundles and replaces the version +number from bundles.info with the real one. It does this only to the runtime +data structures, bundles file is kept read only. After that, simpleconfigurator +is able to load the upgraded bundles. +--- + .../src/org/debian/BundleInfoHelper.java | 261 ++++++++++++++++++++ + .../utils/SimpleConfiguratorUtils.java | 8 +- + 2 files changed, 268 insertions(+), 1 deletions(-) + create mode 100644 eclipse/plugins/org.eclipse.equinox.simpleconfigurator/src/org/debian/BundleInfoHelper.java + +diff --git a/eclipse/plugins/org.eclipse.equinox.simpleconfigurator/src/org/debian/BundleInfoHelper.java b/eclipse/plugins/org.eclipse.equinox.simpleconfigurator/src/org/debian/BundleInfoHelper.java +new file mode 100644 +index 0000000..0888047 +--- /dev/null ++++ b/eclipse/plugins/org.eclipse.equinox.simpleconfigurator/src/org/debian/BundleInfoHelper.java +@@ -0,0 +1,261 @@ ++/******************************************************************************* ++ * Copyright (c) 2012 Jakub Adam. ++ * All rights reserved. This program and the accompanying materials ++ * are made available under the terms of the Eclipse Public License v1.0 ++ * which accompanies this distribution, and is available at ++ * http://www.eclipse.org/legal/epl-v10.html ++ * ++ * The code is based on getOSGiManifest() method from ++ * org.eclipse.equinox.internal.frameworkadmin.utils.Utils and ++ * org.eclipse.osgi.util.ManifestElement classes. The original code copyright ++ * holder is IBM Corporation. ++ *******************************************************************************/ ++ ++package org.debian; ++ ++import java.io.*; ++import java.net.*; ++import java.util.*; ++import java.util.jar.JarFile; ++import java.util.zip.ZipEntry; ++import java.util.zip.ZipFile; ++import org.eclipse.equinox.internal.simpleconfigurator.utils.BundleInfo; ++import org.eclipse.equinox.internal.simpleconfigurator.utils.URIUtil; ++import org.osgi.framework.Constants; ++import org.osgi.framework.Version; ++ ++/** ++ * In bundles.info there is a list of bundles load by Equinox simple configurator ++ * on startup. This file is generated when Eclipse is built from sources and its ++ * contents are fixed thereafter. This class tries to solve a situation when some ++ * of orbit dependencies are upgraded by operating system's package manager. ++ * ++ * The bundle's record in bundles.info contains a version number it had at the ++ * time of compilation. When this number becomes different from the version of ++ * that is actually installed in the system, Eclipse rejects to load the bundle ++ * which leads to missing plugins or even inability to start the workbench. ++ * ++ * When bundles.info is loaded by simpleconfigurator, the BundleInfoHelper class ++ * inspects OSGi metadata of the installed bundles and replaces the version ++ * number from bundles.info with the real one. It does this only to the runtime ++ * data structures, bundles file is kept read only. After that, simpleconfigurator ++ * can load the upgraded bundles. ++ */ ++public class BundleInfoHelper { ++ ++ public static List useDebianBundleVersions(List bundles) { ++ List newBundles = new ArrayList(); ++ ++ ListIterator it = bundles.listIterator(); ++ while (it.hasNext()) { ++ BundleInfo bundle = (BundleInfo) it.next(); ++ ++ try { ++ URI fullUri; ++ if (bundle.getBaseLocation() != null) ++ fullUri = new URI(bundle.getBaseLocation().toString() + bundle.getLocation().toString()); ++ else ++ fullUri = bundle.getLocation(); ++ ++ Dictionary manifest = getOSGiManifest(fullUri); ++ ++ if (manifest != null) { ++ String debianVersion = (String) manifest.get(Constants.BUNDLE_VERSION); ++ debianVersion = Version.parseVersion(debianVersion).toString(); ++ BundleInfo newBundle = new BundleInfo(bundle.getSymbolicName(), debianVersion, bundle.getLocation(), bundle.getStartLevel(), bundle.isMarkedAsStarted()); ++ newBundle.setBaseLocation(bundle.getBaseLocation()); ++ bundle = newBundle; ++ } ++ } catch (URISyntaxException e) { ++ // Use original bundle ++ } ++ ++ newBundles.add(bundle); ++ } ++ ++ return newBundles; ++ } ++ ++ /* Following code is copied from org.eclipse.equinox.internal.frameworkadmin.utils.Utils ++ * with some minor changes. It is here because required bundle may not be ++ * loaded yet at the early time when useDebianBundleVersions() is run. */ ++ ++ private static final String FILE_SCHEME = "file"; //$NON-NLS-1$ ++ ++ private static Dictionary getOSGiManifest(URI location) { ++ if (location == null) ++ return null; ++ // if we have a file-based URL that doesn't end in ".jar" then... ++ if (FILE_SCHEME.equals(location.getScheme())) ++ return basicLoadManifest(URIUtil.toFile(location)); ++ ++ try { ++ URL url = new URL("jar:" + location.toString() + "!/"); //$NON-NLS-1$//$NON-NLS-2$ ++ JarURLConnection jarConnection = (JarURLConnection) url.openConnection(); ++ ZipFile jar = jarConnection.getJarFile(); ++ ++ try { ++ ZipEntry entry = jar.getEntry(JarFile.MANIFEST_NAME); ++ if (entry == null) ++ return null; ++ ++ Map manifest = parseBundleManifest(jar.getInputStream(entry), null); ++ if (manifest.get(Constants.BUNDLE_SYMBOLICNAME) == null) { ++ return null; ++ } ++ return manifestToProperties(manifest); ++ } catch (Exception e) { ++ return null; ++ } finally { ++ jar.close(); ++ } ++ } catch (IOException e) { ++ if (System.getProperty("osgi.debug") != null) { ++ System.err.println("location=" + location); ++ e.printStackTrace(); ++ } ++ } ++ return null; ++ } ++ ++ //Return a dictionary representing a manifest. The data may result from plugin.xml conversion ++ private static Dictionary basicLoadManifest(File bundleLocation) { ++ InputStream manifestStream = null; ++ ZipFile jarFile = null; ++ try { ++ try { ++ // Handle a JAR'd bundle ++ if (bundleLocation.isFile()) { ++ jarFile = new ZipFile(bundleLocation, ZipFile.OPEN_READ); ++ ZipEntry manifestEntry = jarFile.getEntry(JarFile.MANIFEST_NAME); ++ if (manifestEntry != null) { ++ manifestStream = jarFile.getInputStream(manifestEntry); ++ } ++ } else { ++ // we have a directory-based bundle ++ File bundleManifestFile = new File(bundleLocation, JarFile.MANIFEST_NAME); ++ if (bundleManifestFile.exists()) ++ manifestStream = new BufferedInputStream(new FileInputStream(new File(bundleLocation, JarFile.MANIFEST_NAME))); ++ } ++ } catch (IOException e) { ++ //ignore ++ } ++ try { ++ Map manifest = parseBundleManifest(manifestStream, null); ++ // add this check to handle the case were we read a non-OSGi manifest ++ if (manifest.get(Constants.BUNDLE_SYMBOLICNAME) == null) ++ return null; ++ return manifestToProperties(manifest); ++ } catch (IOException ioe) { ++ return null; ++ } catch (Exception e) { ++ return null; ++ } ++ } finally { ++ try { ++ if (manifestStream != null) ++ manifestStream.close(); ++ } catch (IOException e1) { ++ //Ignore ++ } ++ try { ++ if (jarFile != null) ++ jarFile.close(); ++ } catch (IOException e2) { ++ //Ignore ++ } ++ } ++ } ++ ++ private static Properties manifestToProperties(Map d) { ++ Iterator iter = d.keySet().iterator(); ++ Properties result = new Properties(); ++ while (iter.hasNext()) { ++ String key = (String) iter.next(); ++ result.put(key, d.get(key)); ++ } ++ return result; ++ } ++ ++ // Copied from org.eclipse.osgi.util.ManifestElement ++ ++ /** ++ * Parses a bundle manifest and puts the header/value pairs into the supplied Map. ++ * Only the main section of the manifest is parsed (up to the first blank line). All ++ * other sections are ignored. If a header is duplicated then only the last ++ * value is stored in the map. ++ * <p> ++ * The supplied input stream is consumed by this method and will be closed. ++ * If the supplied Map is null then a Map is created to put the header/value pairs into. ++ * </p> ++ * @param manifest an input stream for a bundle manifest. ++ * @param headers a map used to put the header/value pairs from the bundle manifest. This value may be null. ++ * @throws Exception if the manifest has an invalid syntax ++ * @throws IOException if an error occurs while reading the manifest ++ * @return the map with the header/value pairs from the bundle manifest ++ */ ++ public static Map parseBundleManifest(InputStream manifest, Map headers) throws IOException, Exception { ++ if (headers == null) ++ headers = new HashMap(); ++ BufferedReader br; ++ try { ++ br = new BufferedReader(new InputStreamReader(manifest, "UTF8")); //$NON-NLS-1$ ++ } catch (UnsupportedEncodingException e) { ++ br = new BufferedReader(new InputStreamReader(manifest)); ++ } ++ try { ++ String header = null; ++ StringBuffer value = new StringBuffer(256); ++ boolean firstLine = true; ++ ++ while (true) { ++ String line = br.readLine(); ++ /* The java.util.jar classes in JDK 1.3 use the value of the last ++ * encountered manifest header. So we do the same to emulate ++ * this behavior. We no longer throw a BundleException ++ * for duplicate manifest headers. ++ */ ++ ++ if ((line == null) || (line.length() == 0)) /* EOF or empty line */ ++ { ++ if (!firstLine) /* flush last line */ ++ { ++ headers.put(header, value.toString().trim()); ++ } ++ break; /* done processing main attributes */ ++ } ++ ++ if (line.charAt(0) == ' ') /* continuation */ ++ { ++ if (firstLine) /* if no previous line */ ++ { ++ throw new Exception("The manifest line has an invalid leading space"); ++ } ++ value.append(line.substring(1)); ++ continue; ++ } ++ ++ if (!firstLine) { ++ headers.put(header, value.toString().trim()); ++ value.setLength(0); /* clear StringBuffer */ ++ } ++ ++ int colon = line.indexOf(':'); ++ if (colon == -1) /* no colon */ ++ { ++ throw new Exception("The manifest line is invalid; it has no colon '':'' character after the header key"); ++ } ++ header = line.substring(0, colon).trim(); ++ value.append(line.substring(colon + 1)); ++ firstLine = false; ++ } ++ } finally { ++ try { ++ br.close(); ++ } catch (IOException ee) { ++ // do nothing ++ } ++ } ++ return headers; ++ } ++} +diff --git a/eclipse/plugins/org.eclipse.equinox.simpleconfigurator/src/org/eclipse/equinox/internal/simpleconfigurator/utils/SimpleConfiguratorUtils.java b/eclipse/plugins/org.eclipse.equinox.simpleconfigurator/src/org/eclipse/equinox/internal/simpleconfigurator/utils/SimpleConfiguratorUtils.java +index 0ab0582..eb6146c 100644 +--- a/eclipse/plugins/org.eclipse.equinox.simpleconfigurator/src/org/eclipse/equinox/internal/simpleconfigurator/utils/SimpleConfiguratorUtils.java ++++ b/eclipse/plugins/org.eclipse.equinox.simpleconfigurator/src/org/eclipse/equinox/internal/simpleconfigurator/utils/SimpleConfiguratorUtils.java +@@ -11,6 +11,7 @@ package org.eclipse.equinox.internal.simpleconfigurator.utils; + import java.io.*; + import java.net.*; + import java.util.*; ++import org.debian.BundleInfoHelper; + import org.eclipse.osgi.service.resolver.VersionRange; + import org.osgi.framework.Version; + +@@ -40,7 +41,12 @@ public class SimpleConfiguratorUtils { + } + + try { +- return readConfiguration(stream, base); ++ List result = readConfiguration(stream, base); ++ ++ if (url.toString().startsWith("file:/usr/lib/eclipse/configuration")) ++ result = BundleInfoHelper.useDebianBundleVersions(result); ++ ++ return result; + } finally { + stream.close(); + } diff --git a/debian/patches/find-org-apache-ant.patch b/debian/patches/find-org-apache-ant.patch new file mode 100644 index 0000000..50a6985 --- /dev/null +++ b/debian/patches/find-org-apache-ant.patch @@ -0,0 +1,86 @@ +From: Jakub Adam <jakub.a...@ktknet.cz> +Date: Wed, 7 Mar 2012 19:52:48 +0100 +Subject: find-org-apache-ant + +--- + build.xml | 4 +- + nonosgidependencies.properties | 54 ++++++++++++++++++++-------------------- + 2 files changed, 29 insertions(+), 29 deletions(-) + +diff --git a/build.xml b/build.xml +index e5633ea..45a250f 100644 +--- a/build.xml ++++ b/build.xml +@@ -368,11 +368,11 @@ + <symlinkOSGiJars dependencies="${basedir}/jdtdependencies.properties" topLevelDir="${buildDirectory}/plugins" manifests="${basedir}/dependencyManifests" copyFiles="${copyFiles}"/> + <symlinkNonOSGiJars dependencies="${basedir}/jdtnonosgidependencies.properties" topLevelDir="${buildDirectory}/plugins" copyFiles="${copyFiles}"/> + <symlinkOSGiJars dependencies="${basedir}/sdkdependencies.properties" topLevelDir="${buildDirectory}/plugins" manifests="${basedir}/dependencyManifests" copyFiles="${copyFiles}"/> +- <replaceregexp file="${buildDirectory}/plugins/org.apache.ant_1.8.2.v20110505-1300/META-INF/MANIFEST.MF" flags="m,g,s"> ++ <replaceregexp file="${buildDirectory}/plugins/org.apache.ant_1.8.2.v20120109-1030/META-INF/MANIFEST.MF" flags="m,g,s"> + <regexp pattern="^Name.*" /> + <substitution expression="" /> + </replaceregexp> +- <replaceregexp file="${buildDirectory}/plugins/org.apache.ant_1.8.2.v20110505-1300/META-INF/MANIFEST.MF" flags="m,g,s"> ++ <replaceregexp file="${buildDirectory}/plugins/org.apache.ant_1.8.2.v20120109-1030/META-INF/MANIFEST.MF" flags="m,g,s"> + <regexp pattern="^SHA1-Digest.*" /> + <substitution expression="" /> + </replaceregexp> +diff --git a/nonosgidependencies.properties b/nonosgidependencies.properties +index a47fc48..ed3c044 100644 +--- a/nonosgidependencies.properties ++++ b/nonosgidependencies.properties +@@ -1,27 +1,27 @@ +-org.apache.ant_1.8.2.v20110505-1300/bin/ant=/usr/share/ant/bin/ant +-org.apache.ant_1.8.2.v20110505-1300/bin/antRun=/usr/share/ant/bin/antRun +-org.apache.ant_1.8.2.v20110505-1300/bin/antRun.pl=/usr/share/ant/bin/antRun.pl +-org.apache.ant_1.8.2.v20110505-1300/bin/complete-ant-cmd.pl=/usr/share/ant/bin/complete-ant-cmd.pl +-org.apache.ant_1.8.2.v20110505-1300/bin/runant.pl=/usr/share/ant/bin/runant.pl +-org.apache.ant_1.8.2.v20110505-1300/lib/ant-antlr.jar=/usr/share/java/ant/ant-antlr.jar:/usr/share/java/ant-antlr.jar +-org.apache.ant_1.8.2.v20110505-1300/lib/ant-apache-bcel.jar=/usr/share/java/ant/ant-apache-bcel.jar:/usr/share/java/ant-apache-bcel.jar +-org.apache.ant_1.8.2.v20110505-1300/lib/ant-apache-bsf.jar=/usr/share/java/ant/ant-apache-bsf.jar:/usr/share/java/ant-apache-bsf.jar +-org.apache.ant_1.8.2.v20110505-1300/lib/ant-apache-log4j.jar=/usr/share/java/ant/ant-apache-log4j.jar:/usr/share/java/ant-apache-log4j.jar +-org.apache.ant_1.8.2.v20110505-1300/lib/ant-apache-oro.jar=/usr/share/java/ant/ant-apache-oro.jar:/usr/share/java/ant-apache-oro.jar +-org.apache.ant_1.8.2.v20110505-1300/lib/ant-apache-regexp.jar=/usr/share/java/ant/ant-apache-regexp.jar:/usr/share/java/ant-apache-regexp.jar +-org.apache.ant_1.8.2.v20110505-1300/lib/ant-apache-resolver.jar=/usr/share/java/ant/ant-apache-resolver.jar:/usr/share/java/ant-apache-resolver.jar +-org.apache.ant_1.8.2.v20110505-1300/lib/ant-apache-xalan2.jar=/usr/share/java/ant/ant-apache-xalan2.jar:/usr/share/java/ant-apache-xalan2.jar +-org.apache.ant_1.8.2.v20110505-1300/lib/ant-commons-logging.jar=/usr/share/java/ant/ant-commons-logging.jar:/usr/share/java/ant-commons-logging.jar +-org.apache.ant_1.8.2.v20110505-1300/lib/ant-commons-net.jar=/usr/share/java/ant/ant-commons-net.jar:/usr/share/java/ant-commons-net.jar +-#org.apache.ant_1.8.2.v20110505-1300/lib/ant-jai.jar=/usr/share/java/ant/ant-jai.jar:/usr/share/java/ant-jai.jar +-org.apache.ant_1.8.2.v20110505-1300/lib/ant-javamail.jar=/usr/share/java/ant/ant-javamail.jar:/usr/share/java/ant-javamail.jar +-org.apache.ant_1.8.2.v20110505-1300/lib/ant-jdepend.jar=/usr/share/java/ant/ant-jdepend.jar:/usr/share/java/ant-jdepend.jar +-org.apache.ant_1.8.2.v20110505-1300/lib/ant-jmf.jar=/usr/share/java/ant/ant-jmf.jar:/usr/share/java/ant-jmf.jar +-org.apache.ant_1.8.2.v20110505-1300/lib/ant-jsch.jar=/usr/share/java/ant/ant-jsch.jar:/usr/share/java/ant-jsch.jar +-org.apache.ant_1.8.2.v20110505-1300/lib/ant-junit.jar=/usr/share/java/ant/ant-junit.jar:/usr/share/java/ant-junit.jar +-org.apache.ant_1.8.2.v20110505-1300/lib/ant-junit4.jar=/usr/share/java/ant/ant-junit.jar:/usr/share/java/ant-junit.jar +-org.apache.ant_1.8.2.v20110505-1300/lib/ant-launcher.jar=/usr/share/java/ant-launcher.jar:/usr/share/java/ant-launcher.jar +-#org.apache.ant_1.8.2.v20110505-1300/lib/ant-netrexx.jar=/usr/share/java/ant-netrexx.jar:/usr/share/java/ant-netrexx.jar +-org.apache.ant_1.8.2.v20110505-1300/lib/ant-swing.jar=/usr/share/java/ant/ant-swing.jar:/usr/share/java/ant-swing.jar +-#org.apache.ant_1.8.2.v20110505-1300/lib/ant-testutil.jar=/usr/share/java/ant/ant-testutil.jar:/usr/share/java/ant-testutil.jar +-org.apache.ant_1.8.2.v20110505-1300/lib/ant.jar=/usr/share/java/ant.jar ++org.apache.ant_1.8.2.v20120109-1030/bin/ant=/usr/share/ant/bin/ant ++org.apache.ant_1.8.2.v20120109-1030/bin/antRun=/usr/share/ant/bin/antRun ++org.apache.ant_1.8.2.v20120109-1030/bin/antRun.pl=/usr/share/ant/bin/antRun.pl ++org.apache.ant_1.8.2.v20120109-1030/bin/complete-ant-cmd.pl=/usr/share/ant/bin/complete-ant-cmd.pl ++org.apache.ant_1.8.2.v20120109-1030/bin/runant.pl=/usr/share/ant/bin/runant.pl ++org.apache.ant_1.8.2.v20120109-1030/lib/ant-antlr.jar=/usr/share/java/ant/ant-antlr.jar:/usr/share/java/ant-antlr.jar ++org.apache.ant_1.8.2.v20120109-1030/lib/ant-apache-bcel.jar=/usr/share/java/ant/ant-apache-bcel.jar:/usr/share/java/ant-apache-bcel.jar ++org.apache.ant_1.8.2.v20120109-1030/lib/ant-apache-bsf.jar=/usr/share/java/ant/ant-apache-bsf.jar:/usr/share/java/ant-apache-bsf.jar ++org.apache.ant_1.8.2.v20120109-1030/lib/ant-apache-log4j.jar=/usr/share/java/ant/ant-apache-log4j.jar:/usr/share/java/ant-apache-log4j.jar ++org.apache.ant_1.8.2.v20120109-1030/lib/ant-apache-oro.jar=/usr/share/java/ant/ant-apache-oro.jar:/usr/share/java/ant-apache-oro.jar ++org.apache.ant_1.8.2.v20120109-1030/lib/ant-apache-regexp.jar=/usr/share/java/ant/ant-apache-regexp.jar:/usr/share/java/ant-apache-regexp.jar ++org.apache.ant_1.8.2.v20120109-1030/lib/ant-apache-resolver.jar=/usr/share/java/ant/ant-apache-resolver.jar:/usr/share/java/ant-apache-resolver.jar ++org.apache.ant_1.8.2.v20120109-1030/lib/ant-apache-xalan2.jar=/usr/share/java/ant/ant-apache-xalan2.jar:/usr/share/java/ant-apache-xalan2.jar ++org.apache.ant_1.8.2.v20120109-1030/lib/ant-commons-logging.jar=/usr/share/java/ant/ant-commons-logging.jar:/usr/share/java/ant-commons-logging.jar ++org.apache.ant_1.8.2.v20120109-1030/lib/ant-commons-net.jar=/usr/share/java/ant/ant-commons-net.jar:/usr/share/java/ant-commons-net.jar ++#org.apache.ant_1.8.2.v20120109-1030/lib/ant-jai.jar=/usr/share/java/ant/ant-jai.jar:/usr/share/java/ant-jai.jar ++org.apache.ant_1.8.2.v20120109-1030/lib/ant-javamail.jar=/usr/share/java/ant/ant-javamail.jar:/usr/share/java/ant-javamail.jar ++org.apache.ant_1.8.2.v20120109-1030/lib/ant-jdepend.jar=/usr/share/java/ant/ant-jdepend.jar:/usr/share/java/ant-jdepend.jar ++org.apache.ant_1.8.2.v20120109-1030/lib/ant-jmf.jar=/usr/share/java/ant/ant-jmf.jar:/usr/share/java/ant-jmf.jar ++org.apache.ant_1.8.2.v20120109-1030/lib/ant-jsch.jar=/usr/share/java/ant/ant-jsch.jar:/usr/share/java/ant-jsch.jar ++org.apache.ant_1.8.2.v20120109-1030/lib/ant-junit.jar=/usr/share/java/ant/ant-junit.jar:/usr/share/java/ant-junit.jar ++org.apache.ant_1.8.2.v20120109-1030/lib/ant-junit4.jar=/usr/share/java/ant/ant-junit.jar:/usr/share/java/ant-junit.jar ++org.apache.ant_1.8.2.v20120109-1030/lib/ant-launcher.jar=/usr/share/java/ant-launcher.jar:/usr/share/java/ant-launcher.jar ++#org.apache.ant_1.8.2.v20120109-1030/lib/ant-netrexx.jar=/usr/share/java/ant-netrexx.jar:/usr/share/java/ant-netrexx.jar ++org.apache.ant_1.8.2.v20120109-1030/lib/ant-swing.jar=/usr/share/java/ant/ant-swing.jar:/usr/share/java/ant-swing.jar ++#org.apache.ant_1.8.2.v20120109-1030/lib/ant-testutil.jar=/usr/share/java/ant/ant-testutil.jar:/usr/share/java/ant-testutil.jar ++org.apache.ant_1.8.2.v20120109-1030/lib/ant.jar=/usr/share/java/ant.jar diff --git a/debian/patches/series b/debian/patches/series index bff28be..80d1019 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -21,3 +21,5 @@ set-shared-config-dir.patch use-distribution-swt.patch add-o.e.equinox.log.patch relabel-to-3-7-2.patch +find-org-apache-ant.patch +bundle-info-helper.patch -- eclipse - Powerful IDE written in java - Debian package. _______________________________________________ pkg-java-commits mailing list pkg-java-comm...@lists.alioth.debian.org http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-java-commits