commit
cbcd4cf7f8
@ -0,0 +1 @@
|
||||
SOURCES/icedtea-web-1.8.4.tar.gz
|
@ -0,0 +1 @@
|
||||
08f339753946626f5f46d11120dce44d5e6f6540 SOURCES/icedtea-web-1.8.4.tar.gz
|
@ -0,0 +1,40 @@
|
||||
--- IcedTea-Web-icedtea-web-1.8.4/shell-launcher/launchers.sh.in
|
||||
+++ iIcedTea-Web-cedtea-web-1.8.4/shell-launcher/launchers.sh.in
|
||||
@@ -193,6 +193,12 @@
|
||||
shift
|
||||
done
|
||||
|
||||
+java_dir="`dirname ${JAVA}`"
|
||||
+alt_java="alt-java"
|
||||
+if [ -e "$java_dir/$alt_java" ] ; then
|
||||
+ JAVA="`dirname ${JAVA}`/$alt_java"
|
||||
+fi
|
||||
+
|
||||
# TODO: inline args without using COMMAND[array] to unify linux/windows scripts
|
||||
k=0
|
||||
COMMAND[k]="${JAVA}"
|
||||
--- IcedTea-Web-icedtea-web-1.8.4/rust-launcher/src/os_access.rs
|
||||
+++ IcedTea-Web-icedtea-web-1.8.4/rust-launcher/src/os_access.rs
|
||||
@@ -5,9 +5,19 @@
|
||||
use log_helper;
|
||||
|
||||
pub fn create_java_cmd(os: &Os,jre_dir: &std::path::PathBuf, args: &Vec<String>) -> std::process::Command {
|
||||
- let mut bin_java = jre_dir.clone();
|
||||
- bin_java.push("bin");
|
||||
- bin_java.push("java");
|
||||
+ let mut alt_bin_java = jre_dir.clone();
|
||||
+ alt_bin_java.push("bin");
|
||||
+ alt_bin_java.push("alt-java");
|
||||
+ let mut bin_java;
|
||||
+ if alt_bin_java.exists() {
|
||||
+ os.log("itw-rust-debug: alt-java found");
|
||||
+ bin_java = alt_bin_java;
|
||||
+ } else {
|
||||
+ os.log("itw-rust-debug: alt-java NOT found");
|
||||
+ bin_java = jre_dir.clone();
|
||||
+ bin_java.push("bin");
|
||||
+ bin_java.push("java");
|
||||
+ }
|
||||
let mut cmd = std::process::Command::new(&bin_java);
|
||||
for ar in args.into_iter() {
|
||||
cmd.arg(ar);
|
@ -0,0 +1,735 @@
|
||||
diff --git a/Makefile.am b/Makefile.am
|
||||
index 3f73cff7..1112bf49 100644
|
||||
--- a/Makefile.am
|
||||
+++ b/Makefile.am
|
||||
@@ -956,10 +956,10 @@ if ENABLE_NATIVE_LAUNCHERS
|
||||
# there is curently harecoded sh, so it can somehow basically work
|
||||
# see the DESKTOP_SUFFIX for final tuning
|
||||
launcher.build/$(javaws) launcher.build/$(itweb_settings) launcher.build/$(policyeditor): rust-launcher/src/main.rs rust-launcher/Cargo.toml
|
||||
- export ITW_TMP_REPLACEMENT=$(TESTS_DIR)/rust_tests_tmp ; \
|
||||
- mkdir -p $$ITW_TMP_REPLACEMENT; \
|
||||
filename=`basename $@` ; \
|
||||
type=$${filename%.*} ; \
|
||||
+ export ITW_TMP_REPLACEMENT=$(TESTS_DIR)/rust_tests_tmp/$$type ; \
|
||||
+ mkdir -p $$ITW_TMP_REPLACEMENT; \
|
||||
srcs=$(TOP_SRC_DIR)/rust-launcher ; \
|
||||
outs=$(TOP_BUILD_DIR)/launcher.in.$$type ; \
|
||||
mkdir -p launcher.build ; \
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index 5bcb1046..03796e39 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -71,7 +71,7 @@ AM_CONDITIONAL([ENABLE_NATIVE_LAUNCHERS], [test ! x"$RUSTC" = x -a ! x"$CARGO" =
|
||||
build_linux=no
|
||||
build_windows=no
|
||||
case "${host_os}" in
|
||||
- linux*)
|
||||
+ linux*|freebsd*)
|
||||
build_linux=yes
|
||||
;;
|
||||
cygwin*)
|
||||
diff --git a/netx/net/sourceforge/jnlp/Launcher.java b/netx/net/sourceforge/jnlp/Launcher.java
|
||||
index bcfd7b34..1ff42421 100644
|
||||
--- a/netx/net/sourceforge/jnlp/Launcher.java
|
||||
+++ b/netx/net/sourceforge/jnlp/Launcher.java
|
||||
@@ -552,7 +552,7 @@ public class Launcher {
|
||||
}
|
||||
|
||||
OutputController.getLogger().log(OutputController.Level.ERROR_ALL, "Starting application [" + mainName + "] ...");
|
||||
-
|
||||
+
|
||||
Class<?> mainClass = app.getClassLoader().loadClass(mainName);
|
||||
|
||||
Method main = mainClass.getMethod("main", new Class<?>[] { String[].class });
|
||||
@@ -572,6 +572,7 @@ public class Launcher {
|
||||
|
||||
main.setAccessible(true);
|
||||
|
||||
+ JNLPRuntime.addStartupTrackingEntry("invoking main()");
|
||||
OutputController.getLogger().log("Invoking main() with args: " + Arrays.toString(args));
|
||||
main.invoke(null, new Object[] { args });
|
||||
|
||||
diff --git a/netx/net/sourceforge/jnlp/OptionsDefinitions.java b/netx/net/sourceforge/jnlp/OptionsDefinitions.java
|
||||
index c87b4a79..16ef46d3 100644
|
||||
--- a/netx/net/sourceforge/jnlp/OptionsDefinitions.java
|
||||
+++ b/netx/net/sourceforge/jnlp/OptionsDefinitions.java
|
||||
@@ -78,6 +78,7 @@ public class OptionsDefinitions {
|
||||
JNLP("-jnlp","BOJnlp", NumberOfArguments.ONE),
|
||||
HTML("-html","BOHtml", NumberOfArguments.ONE_OR_MORE),
|
||||
BROWSER("-browser", "BrowserArg", NumberOfArguments.ONE_OR_MORE),
|
||||
+ STARTUP_TRACKER("-startuptracker","BOStartupTracker"),
|
||||
//itweb settings
|
||||
LIST("-list", "IBOList"),
|
||||
GET("-get", "name", "IBOGet", NumberOfArguments.ONE_OR_MORE),
|
||||
@@ -222,7 +223,8 @@ public class OptionsDefinitions {
|
||||
OPTIONS.TRUSTNONE,
|
||||
OPTIONS.JNLP,
|
||||
OPTIONS.HTML,
|
||||
- OPTIONS.BROWSER
|
||||
+ OPTIONS.BROWSER,
|
||||
+ OPTIONS.STARTUP_TRACKER
|
||||
});
|
||||
}
|
||||
|
||||
diff --git a/netx/net/sourceforge/jnlp/cache/CacheEntry.java b/netx/net/sourceforge/jnlp/cache/CacheEntry.java
|
||||
index 3a241acb..c5f1f329 100644
|
||||
--- a/netx/net/sourceforge/jnlp/cache/CacheEntry.java
|
||||
+++ b/netx/net/sourceforge/jnlp/cache/CacheEntry.java
|
||||
@@ -47,6 +47,8 @@ public class CacheEntry {
|
||||
/** info about the cached file */
|
||||
private final PropertiesFile properties;
|
||||
|
||||
+ private File localFile;
|
||||
+
|
||||
/**
|
||||
* Create a CacheEntry for the resources specified as a remote
|
||||
* URL.
|
||||
@@ -58,8 +60,8 @@ public class CacheEntry {
|
||||
this.location = location;
|
||||
this.version = version;
|
||||
|
||||
- File infoFile = CacheUtil.getCacheFile(location, version);
|
||||
- infoFile = new File(infoFile.getPath() + CacheDirectory.INFO_SUFFIX); // replace with something that can't be clobbered
|
||||
+ this.localFile = CacheUtil.getCacheFile(location, version);
|
||||
+ File infoFile = new File(localFile.getPath() + CacheDirectory.INFO_SUFFIX); // replace with something that can't be clobbered
|
||||
|
||||
properties = new PropertiesFile(infoFile, R("CAutoGen"));
|
||||
}
|
||||
@@ -130,7 +132,11 @@ public class CacheEntry {
|
||||
* @return whether the cache contains the version
|
||||
*/
|
||||
public boolean isCurrent(long lastModified) {
|
||||
- boolean cached = isCached();
|
||||
+ return isCurrent(lastModified, null);
|
||||
+ }
|
||||
+
|
||||
+ public boolean isCurrent(long lastModified, File cachedFile) {
|
||||
+ boolean cached = isCached(cachedFile);
|
||||
OutputController.getLogger().log("isCurrent:isCached " + cached);
|
||||
|
||||
if (!cached) {
|
||||
@@ -153,7 +159,16 @@ public class CacheEntry {
|
||||
* @return true if the resource is in the cache
|
||||
*/
|
||||
public boolean isCached() {
|
||||
- File localFile = getCacheFile();
|
||||
+ return isCached(null);
|
||||
+ }
|
||||
+
|
||||
+ public boolean isCached(File cachedFile) {
|
||||
+ final File localFile;
|
||||
+ if (null == version && null != cachedFile) {
|
||||
+ localFile = cachedFile;
|
||||
+ } else {
|
||||
+ localFile = getCacheFile();
|
||||
+ }
|
||||
if (!localFile.exists())
|
||||
return false;
|
||||
|
||||
@@ -224,4 +239,7 @@ public class CacheEntry {
|
||||
return properties.isHeldByCurrentThread();
|
||||
}
|
||||
|
||||
+ public File getLocalFile() {
|
||||
+ return localFile;
|
||||
+ }
|
||||
}
|
||||
diff --git a/netx/net/sourceforge/jnlp/cache/CacheUtil.java b/netx/net/sourceforge/jnlp/cache/CacheUtil.java
|
||||
index 486421b9..d298d203 100644
|
||||
--- a/netx/net/sourceforge/jnlp/cache/CacheUtil.java
|
||||
+++ b/netx/net/sourceforge/jnlp/cache/CacheUtil.java
|
||||
@@ -422,14 +422,13 @@ public class CacheUtil {
|
||||
* @return whether the cache contains the version
|
||||
* @throws IllegalArgumentException if the source is not cacheable
|
||||
*/
|
||||
- public static boolean isCurrent(URL source, Version version, long lastModifed) {
|
||||
+ public static boolean isCurrent(URL source, Version version, long lastModifed, CacheEntry entry, File cachedFile) {
|
||||
|
||||
if (!isCacheable(source, version))
|
||||
throw new IllegalArgumentException(R("CNotCacheable", source));
|
||||
|
||||
try {
|
||||
- CacheEntry entry = new CacheEntry(source, version); // could pool this
|
||||
- boolean result = entry.isCurrent(lastModifed);
|
||||
+ boolean result = entry.isCurrent(lastModifed, cachedFile);
|
||||
|
||||
OutputController.getLogger().log("isCurrent: " + source + " = " + result);
|
||||
|
||||
@@ -796,6 +795,8 @@ public class CacheUtil {
|
||||
}
|
||||
URL undownloaded[] = urlList.toArray(new URL[urlList.size()]);
|
||||
|
||||
+ final int maxUrls = Integer.parseInt(JNLPRuntime.getConfiguration().getProperty(DeploymentConfiguration.KEY_MAX_URLS_DOWNLOAD_INDICATOR));
|
||||
+
|
||||
listener = indicator.getListener(app, title, undownloaded);
|
||||
|
||||
do {
|
||||
@@ -810,20 +811,30 @@ public class CacheUtil {
|
||||
|
||||
int percent = (int) ((100 * read) / Math.max(1, total));
|
||||
|
||||
+ int urlCounter = 0;
|
||||
for (URL url : undownloaded) {
|
||||
+ if (urlCounter > maxUrls) {
|
||||
+ break;
|
||||
+ }
|
||||
listener.progress(url, "version",
|
||||
tracker.getAmountRead(url),
|
||||
tracker.getTotalSize(url),
|
||||
percent);
|
||||
+ urlCounter += 1;
|
||||
}
|
||||
} while (!tracker.waitForResources(resources, indicator.getUpdateRate()));
|
||||
|
||||
// make sure they read 100% until indicator closes
|
||||
+ int urlCounter = 0;
|
||||
for (URL url : undownloaded) {
|
||||
+ if (urlCounter > maxUrls) {
|
||||
+ break;
|
||||
+ }
|
||||
listener.progress(url, "version",
|
||||
tracker.getTotalSize(url),
|
||||
tracker.getTotalSize(url),
|
||||
100);
|
||||
+ urlCounter += 1;
|
||||
}
|
||||
} catch (InterruptedException ex) {
|
||||
OutputController.getLogger().log(ex);
|
||||
diff --git a/netx/net/sourceforge/jnlp/cache/CachedDaemonThreadPoolProvider.java b/netx/net/sourceforge/jnlp/cache/CachedDaemonThreadPoolProvider.java
|
||||
index 1cd4df23..ff48662d 100644
|
||||
--- a/netx/net/sourceforge/jnlp/cache/CachedDaemonThreadPoolProvider.java
|
||||
+++ b/netx/net/sourceforge/jnlp/cache/CachedDaemonThreadPoolProvider.java
|
||||
@@ -36,9 +36,14 @@
|
||||
exception statement from your version. */
|
||||
package net.sourceforge.jnlp.cache;
|
||||
|
||||
+import net.sourceforge.jnlp.config.DeploymentConfiguration;
|
||||
+import net.sourceforge.jnlp.runtime.JNLPRuntime;
|
||||
+
|
||||
import java.util.concurrent.ExecutorService;
|
||||
-import java.util.concurrent.Executors;
|
||||
+import java.util.concurrent.LinkedBlockingQueue;
|
||||
import java.util.concurrent.ThreadFactory;
|
||||
+import java.util.concurrent.ThreadPoolExecutor;
|
||||
+import java.util.concurrent.TimeUnit;
|
||||
import java.util.concurrent.atomic.AtomicInteger;
|
||||
|
||||
public class CachedDaemonThreadPoolProvider {
|
||||
@@ -81,6 +86,19 @@ public class CachedDaemonThreadPoolProvider {
|
||||
}
|
||||
}
|
||||
|
||||
- public static final ExecutorService DAEMON_THREAD_POOL = Executors.newCachedThreadPool(new DaemonThreadFactory());
|
||||
+ public static synchronized ExecutorService getThreadPool() {
|
||||
+ if (null == DAEMON_THREAD_POOL) {
|
||||
+ final int nThreads = Integer.parseInt(JNLPRuntime.getConfiguration().getProperty(DeploymentConfiguration.KEY_BACKGROUND_THREADS_COUNT));
|
||||
+ ThreadPoolExecutor pool = new ThreadPoolExecutor(nThreads, nThreads,
|
||||
+ 60L, TimeUnit.SECONDS,
|
||||
+ new LinkedBlockingQueue<Runnable>(),
|
||||
+ new DaemonThreadFactory());
|
||||
+ pool.allowCoreThreadTimeOut(true);
|
||||
+ DAEMON_THREAD_POOL = pool;
|
||||
+ }
|
||||
+ return DAEMON_THREAD_POOL;
|
||||
+ }
|
||||
+
|
||||
+ private static ExecutorService DAEMON_THREAD_POOL = null;
|
||||
|
||||
}
|
||||
diff --git a/netx/net/sourceforge/jnlp/cache/ResourceDownloader.java b/netx/net/sourceforge/jnlp/cache/ResourceDownloader.java
|
||||
index 643b46fd..e0a123bb 100644
|
||||
--- a/netx/net/sourceforge/jnlp/cache/ResourceDownloader.java
|
||||
+++ b/netx/net/sourceforge/jnlp/cache/ResourceDownloader.java
|
||||
@@ -153,7 +153,12 @@ public class ResourceDownloader implements Runnable {
|
||||
URLConnection connection = ConnectionFactory.getConnectionFactory().openConnection(location.URL); // this won't change so should be okay not-synchronized
|
||||
connection.addRequestProperty("Accept-Encoding", "pack200-gzip, gzip");
|
||||
|
||||
- File localFile = CacheUtil.getCacheFile(resource.getLocation(), resource.getDownloadVersion());
|
||||
+ File localFile = null;
|
||||
+ if (resource.getRequestVersion() == resource.getDownloadVersion()) {
|
||||
+ localFile = entry.getLocalFile();
|
||||
+ } else {
|
||||
+ localFile = CacheUtil.getCacheFile(resource.getLocation(), resource.getDownloadVersion());
|
||||
+ }
|
||||
Long size = location.length;
|
||||
if (size == null) {
|
||||
size = connection.getContentLengthLong();
|
||||
@@ -162,7 +167,7 @@ public class ResourceDownloader implements Runnable {
|
||||
if (lm == null) {
|
||||
lm = connection.getLastModified();
|
||||
}
|
||||
- boolean current = CacheUtil.isCurrent(resource.getLocation(), resource.getRequestVersion(), lm) && resource.getUpdatePolicy() != UpdatePolicy.FORCE;
|
||||
+ boolean current = CacheUtil.isCurrent(resource.getLocation(), resource.getRequestVersion(), lm, entry, localFile) && resource.getUpdatePolicy() != UpdatePolicy.FORCE;
|
||||
if (!current) {
|
||||
if (entry.isCached()) {
|
||||
entry.markForDelete();
|
||||
diff --git a/netx/net/sourceforge/jnlp/cache/ResourceTracker.java b/netx/net/sourceforge/jnlp/cache/ResourceTracker.java
|
||||
index f4ad69be..972a10cf 100644
|
||||
--- a/netx/net/sourceforge/jnlp/cache/ResourceTracker.java
|
||||
+++ b/netx/net/sourceforge/jnlp/cache/ResourceTracker.java
|
||||
@@ -28,10 +28,7 @@ import static net.sourceforge.jnlp.cache.Resource.Status.PROCESSING;
|
||||
import java.io.File;
|
||||
import java.net.MalformedURLException;
|
||||
import java.net.URL;
|
||||
-import java.util.ArrayList;
|
||||
-import java.util.Collection;
|
||||
-import java.util.EnumSet;
|
||||
-import java.util.List;
|
||||
+import java.util.*;
|
||||
|
||||
import net.sourceforge.jnlp.DownloadOptions;
|
||||
import net.sourceforge.jnlp.Version;
|
||||
@@ -105,6 +102,7 @@ public class ResourceTracker {
|
||||
|
||||
/** the resources known about by this resource tracker */
|
||||
private final List<Resource> resources = new ArrayList<>();
|
||||
+ private final HashMap<String, Resource> resourcesMap = new HashMap<>();
|
||||
|
||||
/** download listeners for this tracker */
|
||||
private final List<DownloadListener> listeners = new ArrayList<>();
|
||||
@@ -155,6 +153,7 @@ public class ResourceTracker {
|
||||
return;
|
||||
resource.addTracker(this);
|
||||
resources.add(resource);
|
||||
+ resourcesMap.put(location.toString(), resource);
|
||||
}
|
||||
|
||||
if (options == null) {
|
||||
@@ -190,6 +189,7 @@ public class ResourceTracker {
|
||||
|
||||
if (resource != null) {
|
||||
resources.remove(resource);
|
||||
+ resourcesMap.remove(location.toString());
|
||||
resource.removeTracker(this);
|
||||
}
|
||||
|
||||
@@ -508,7 +508,7 @@ public class ResourceTracker {
|
||||
* @param resource resource to be download
|
||||
*/
|
||||
protected void startDownloadThread(Resource resource) {
|
||||
- CachedDaemonThreadPoolProvider.DAEMON_THREAD_POOL.execute(new ResourceDownloader(resource, lock));
|
||||
+ CachedDaemonThreadPoolProvider.getThreadPool().execute(new ResourceDownloader(resource, lock));
|
||||
}
|
||||
|
||||
static Resource selectByFilter(Collection<Resource> source, Filter<Resource> filter) {
|
||||
@@ -569,6 +569,12 @@ public class ResourceTracker {
|
||||
*/
|
||||
private Resource getResource(URL location) {
|
||||
synchronized (resources) {
|
||||
+ if (null != location) {
|
||||
+ Resource res = resourcesMap.get(location.toString());
|
||||
+ if (null != res && UrlUtils.urlEquals(res.getLocation(), location)) {
|
||||
+ return res;
|
||||
+ }
|
||||
+ }
|
||||
for (Resource resource : resources) {
|
||||
if (UrlUtils.urlEquals(resource.getLocation(), location))
|
||||
return resource;
|
||||
diff --git a/netx/net/sourceforge/jnlp/config/Defaults.java b/netx/net/sourceforge/jnlp/config/Defaults.java
|
||||
index 8e316e4f..78f9b3e6 100644
|
||||
--- a/netx/net/sourceforge/jnlp/config/Defaults.java
|
||||
+++ b/netx/net/sourceforge/jnlp/config/Defaults.java
|
||||
@@ -466,6 +466,21 @@ public class Defaults {
|
||||
BasicValueValidators.getRangedIntegerValidator(0, 1000),
|
||||
String.valueOf(10)// treshold when applet is considered as too small
|
||||
},
|
||||
+ {
|
||||
+ DeploymentConfiguration.KEY_ENABLE_CACHE_FSYNC,
|
||||
+ BasicValueValidators.getBooleanValidator(),
|
||||
+ String.valueOf(false)
|
||||
+ },
|
||||
+ {
|
||||
+ DeploymentConfiguration.KEY_BACKGROUND_THREADS_COUNT,
|
||||
+ BasicValueValidators.getRangedIntegerValidator(1, 16),
|
||||
+ String.valueOf(3)
|
||||
+ },
|
||||
+ {
|
||||
+ DeploymentConfiguration.KEY_MAX_URLS_DOWNLOAD_INDICATOR,
|
||||
+ BasicValueValidators.getRangedIntegerValidator(1, 1024),
|
||||
+ String.valueOf(16)
|
||||
+ },
|
||||
//**************
|
||||
//* Native (rust) only - beggin
|
||||
//**************
|
||||
diff --git a/netx/net/sourceforge/jnlp/config/DeploymentConfiguration.java b/netx/net/sourceforge/jnlp/config/DeploymentConfiguration.java
|
||||
index de7425e3..84f77075 100644
|
||||
--- a/netx/net/sourceforge/jnlp/config/DeploymentConfiguration.java
|
||||
+++ b/netx/net/sourceforge/jnlp/config/DeploymentConfiguration.java
|
||||
@@ -250,7 +250,10 @@ public final class DeploymentConfiguration {
|
||||
public static final String KEY_SMALL_SIZE_OVERRIDE_TRESHOLD = "deployment.small.size.treshold";
|
||||
public static final String KEY_SMALL_SIZE_OVERRIDE_WIDTH = "deployment.small.size.override.width";
|
||||
public static final String KEY_SMALL_SIZE_OVERRIDE_HEIGHT = "deployment.small.size.override.height";
|
||||
-
|
||||
+ public static final String KEY_ENABLE_CACHE_FSYNC = "deployment.enable.cache.fsync";
|
||||
+ public static final String KEY_BACKGROUND_THREADS_COUNT = "deployment.background.threads.count";
|
||||
+ public static final String KEY_MAX_URLS_DOWNLOAD_INDICATOR = "deployment.max.urls.download.indicator";
|
||||
+
|
||||
public static final String TRANSFER_TITLE = "Legacy configuration and cache found. Those will be now transported to new locations";
|
||||
|
||||
private ConfigurationException loadingException = null;
|
||||
diff --git a/netx/net/sourceforge/jnlp/resources/Messages.properties b/netx/net/sourceforge/jnlp/resources/Messages.properties
|
||||
index 773f134b..0e87bce3 100644
|
||||
--- a/netx/net/sourceforge/jnlp/resources/Messages.properties
|
||||
+++ b/netx/net/sourceforge/jnlp/resources/Messages.properties
|
||||
@@ -357,6 +357,7 @@ BXoffline = Prevent ITW network connection. Only cache will be used. Applicati
|
||||
BOHelp1 = Prints out information about supported command and basic usage.
|
||||
BOHelp2 = Prints out information about supported command and basic usage. Can also take an parameter, and then it prints detailed help for this command.
|
||||
BOTrustnone = Instead of asking user, will foretold all answers as no.
|
||||
+BOStartupTracker = Enable startup time tracker
|
||||
|
||||
# Itweb-settings boot commands
|
||||
IBOList=Shows a list of all the IcedTea-Web settings and their current values.
|
||||
diff --git a/netx/net/sourceforge/jnlp/runtime/Boot.java b/netx/net/sourceforge/jnlp/runtime/Boot.java
|
||||
index 7317b989..a9990909 100644
|
||||
--- a/netx/net/sourceforge/jnlp/runtime/Boot.java
|
||||
+++ b/netx/net/sourceforge/jnlp/runtime/Boot.java
|
||||
@@ -107,6 +107,10 @@ public final class Boot implements PrivilegedAction<Void> {
|
||||
|
||||
optionParser = new OptionParser(argsIn, OptionsDefinitions.getJavaWsOptions());
|
||||
|
||||
+ if (optionParser.hasOption(OptionsDefinitions.OPTIONS.STARTUP_TRACKER)) {
|
||||
+ JNLPRuntime.initStartupTracker();
|
||||
+ }
|
||||
+
|
||||
if (optionParser.hasOption(OptionsDefinitions.OPTIONS.VERBOSE)) {
|
||||
JNLPRuntime.setDebug(true);
|
||||
}
|
||||
diff --git a/netx/net/sourceforge/jnlp/runtime/CachedJarFileCallback.java b/netx/net/sourceforge/jnlp/runtime/CachedJarFileCallback.java
|
||||
index 9746f5d0..811d132e 100644
|
||||
--- a/netx/net/sourceforge/jnlp/runtime/CachedJarFileCallback.java
|
||||
+++ b/netx/net/sourceforge/jnlp/runtime/CachedJarFileCallback.java
|
||||
@@ -43,6 +43,7 @@ import java.io.FileOutputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.io.OutputStream;
|
||||
+import java.net.URISyntaxException;
|
||||
import java.net.URL;
|
||||
import java.net.URLConnection;
|
||||
import java.security.AccessController;
|
||||
@@ -103,9 +104,11 @@ final class CachedJarFileCallback implements URLJarFileCallBack {
|
||||
|
||||
if (UrlUtils.isLocalFile(localUrl)) {
|
||||
// if it is known to us, just return the cached file
|
||||
- JarFile returnFile = new JarFile(localUrl.getPath());
|
||||
+ JarFile returnFile=null;
|
||||
|
||||
try {
|
||||
+ localUrl.toURI().getPath();
|
||||
+ returnFile = new JarFile(localUrl.toURI().getPath());
|
||||
|
||||
// Blank out the class-path because:
|
||||
// 1) Web Start does not support it
|
||||
@@ -117,6 +120,8 @@ final class CachedJarFileCallback implements URLJarFileCallBack {
|
||||
|
||||
} catch (NullPointerException npe) {
|
||||
// Discard NPE here. Maybe there was no manifest, maybe there were no attributes, etc.
|
||||
+ } catch (URISyntaxException e) {
|
||||
+ // should not happen as localUrl was built using localFile.toURI().toURL(), see JNLPClassLoader.activateJars(List<JARDesc>)
|
||||
}
|
||||
|
||||
return returnFile;
|
||||
diff --git a/netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java b/netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java
|
||||
index 3785707a..77576fdd 100644
|
||||
--- a/netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java
|
||||
+++ b/netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java
|
||||
@@ -709,7 +709,9 @@ public class JNLPClassLoader extends URLClassLoader {
|
||||
fillInPartJars(initialJars); // add in each initial part's lazy jars
|
||||
}
|
||||
|
||||
+ JNLPRuntime.addStartupTrackingEntry("JARs download enter");
|
||||
waitForJars(initialJars); //download the jars first.
|
||||
+ JNLPRuntime.addStartupTrackingEntry("JARs download complete");
|
||||
|
||||
//A ZipException will propagate later on if the jar is invalid and not checked here
|
||||
if (shouldFilterInvalidJars()) {
|
||||
diff --git a/netx/net/sourceforge/jnlp/runtime/JNLPRuntime.java b/netx/net/sourceforge/jnlp/runtime/JNLPRuntime.java
|
||||
index 295744db..919f78fd 100644
|
||||
--- a/netx/net/sourceforge/jnlp/runtime/JNLPRuntime.java
|
||||
+++ b/netx/net/sourceforge/jnlp/runtime/JNLPRuntime.java
|
||||
@@ -170,6 +170,7 @@ public class JNLPRuntime {
|
||||
|
||||
private static Boolean onlineDetected = null;
|
||||
|
||||
+ private static long startupTrackerMoment = 0;
|
||||
|
||||
/**
|
||||
* Header is not checked and so eg
|
||||
@@ -891,6 +892,19 @@ public class JNLPRuntime {
|
||||
JNLPRuntime.ignoreHeaders = ignoreHeaders;
|
||||
}
|
||||
|
||||
+ // may only be called from Boot
|
||||
+ public static void initStartupTracker() {
|
||||
+ startupTrackerMoment = System.currentTimeMillis();
|
||||
+ }
|
||||
+
|
||||
+ public static void addStartupTrackingEntry(String message) {
|
||||
+ if (startupTrackerMoment > 0) {
|
||||
+ long time = (System.currentTimeMillis() - startupTrackerMoment)/1000;
|
||||
+ String msg = "Startup tracker: seconds elapsed: [" + time + "], message: [" + message + "]";
|
||||
+ OutputController.getLogger().log(OutputController.Level.ERROR_ALL, msg);
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
private static boolean isPluginDebug() {
|
||||
if (pluginDebug == null) {
|
||||
try {
|
||||
diff --git a/netx/net/sourceforge/jnlp/tools/JarCertVerifier.java b/netx/net/sourceforge/jnlp/tools/JarCertVerifier.java
|
||||
index eb26dc69..7fd5d92f 100644
|
||||
--- a/netx/net/sourceforge/jnlp/tools/JarCertVerifier.java
|
||||
+++ b/netx/net/sourceforge/jnlp/tools/JarCertVerifier.java
|
||||
@@ -39,15 +39,18 @@ import java.util.Enumeration;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
-import java.util.Vector;
|
||||
+import java.util.concurrent.Callable;
|
||||
+import java.util.concurrent.Future;
|
||||
import java.util.jar.JarEntry;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
import net.sourceforge.jnlp.JARDesc;
|
||||
import net.sourceforge.jnlp.JNLPFile;
|
||||
import net.sourceforge.jnlp.LaunchException;
|
||||
+import net.sourceforge.jnlp.cache.CachedDaemonThreadPoolProvider;
|
||||
import net.sourceforge.jnlp.cache.ResourceTracker;
|
||||
import net.sourceforge.jnlp.runtime.JNLPClassLoader.SecurityDelegate;
|
||||
+import net.sourceforge.jnlp.runtime.JNLPRuntime;
|
||||
import net.sourceforge.jnlp.security.AppVerifier;
|
||||
import net.sourceforge.jnlp.security.CertVerifier;
|
||||
import net.sourceforge.jnlp.security.CertificateUtils;
|
||||
@@ -226,37 +229,36 @@ public class JarCertVerifier implements CertVerifier {
|
||||
private void verifyJars(List<JARDesc> jars, ResourceTracker tracker)
|
||||
throws Exception {
|
||||
|
||||
+ List<String> filesToVerify = new ArrayList<>();
|
||||
for (JARDesc jar : jars) {
|
||||
+ File jarFile = tracker.getCacheFile(jar.getLocation());
|
||||
|
||||
- try {
|
||||
-
|
||||
- File jarFile = tracker.getCacheFile(jar.getLocation());
|
||||
-
|
||||
- // some sort of resource download/cache error. Nothing to add
|
||||
- // in that case ... but don't fail here
|
||||
- if (jarFile == null) {
|
||||
- continue;
|
||||
- }
|
||||
+ // some sort of resource download/cache error. Nothing to add
|
||||
+ // in that case ... but don't fail here
|
||||
+ if (jarFile == null) {
|
||||
+ continue;
|
||||
+ }
|
||||
|
||||
- String localFile = jarFile.getAbsolutePath();
|
||||
- if (verifiedJars.contains(localFile)
|
||||
- || unverifiedJars.contains(localFile)) {
|
||||
- continue;
|
||||
- }
|
||||
+ String localFile = jarFile.getAbsolutePath();
|
||||
+ if (verifiedJars.contains(localFile)
|
||||
+ || unverifiedJars.contains(localFile)) {
|
||||
+ continue;
|
||||
+ }
|
||||
|
||||
- VerifyResult result = verifyJar(localFile);
|
||||
+ filesToVerify.add(localFile);
|
||||
+ }
|
||||
|
||||
- if (result == VerifyResult.UNSIGNED) {
|
||||
- unverifiedJars.add(localFile);
|
||||
- } else if (result == VerifyResult.SIGNED_NOT_OK) {
|
||||
- verifiedJars.add(localFile);
|
||||
- } else if (result == VerifyResult.SIGNED_OK) {
|
||||
- verifiedJars.add(localFile);
|
||||
- }
|
||||
- } catch (Exception e) {
|
||||
- // We may catch exceptions from using verifyJar()
|
||||
- // or from checkTrustedCerts
|
||||
- throw e;
|
||||
+ List<VerifiedJarFile> verified = verifyJarsParallel(filesToVerify);
|
||||
+
|
||||
+ for (VerifiedJarFile vjf : verified) {
|
||||
+ VerifyResult result = verifyJarEntryCerts(vjf.file, vjf.hasManifest, vjf.entriesVec);
|
||||
+ String localFile = vjf.file;
|
||||
+ if (result == VerifyResult.UNSIGNED) {
|
||||
+ unverifiedJars.add(localFile);
|
||||
+ } else if (result == VerifyResult.SIGNED_NOT_OK) {
|
||||
+ verifiedJars.add(localFile);
|
||||
+ } else if (result == VerifyResult.SIGNED_OK) {
|
||||
+ verifiedJars.add(localFile);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -264,6 +266,31 @@ public class JarCertVerifier implements CertVerifier {
|
||||
checkTrustedCerts(certPath);
|
||||
}
|
||||
|
||||
+ private List<VerifiedJarFile> verifyJarsParallel(List<String> files) throws Exception {
|
||||
+ JNLPRuntime.addStartupTrackingEntry("JARs verification enter");
|
||||
+ List<Callable<VerifiedJarFile>> callables = new ArrayList<>(files.size());
|
||||
+ for (final String fi : files) {
|
||||
+ callables.add(new Callable<VerifiedJarFile>() {
|
||||
+ @Override
|
||||
+ public VerifiedJarFile call() throws Exception {
|
||||
+ return verifyJar(fi);
|
||||
+ }
|
||||
+ });
|
||||
+ }
|
||||
+ List<Future<VerifiedJarFile>> futures = CachedDaemonThreadPoolProvider.getThreadPool().invokeAll(callables);
|
||||
+ List<VerifiedJarFile> results = new ArrayList<>(files.size());
|
||||
+ try {
|
||||
+ for (Future<VerifiedJarFile> fu : futures) {
|
||||
+ results.add(fu.get());
|
||||
+ }
|
||||
+ } catch (Exception e) {
|
||||
+ OutputController.getLogger().log(OutputController.Level.ERROR_ALL, e);
|
||||
+ throw e;
|
||||
+ }
|
||||
+ JNLPRuntime.addStartupTrackingEntry("JARs verification complete");
|
||||
+ return results;
|
||||
+ }
|
||||
+
|
||||
/**
|
||||
* Checks through all the jar entries of jarName for signers, storing all the common ones in the certs hash map.
|
||||
*
|
||||
@@ -273,15 +300,15 @@ public class JarCertVerifier implements CertVerifier {
|
||||
* @throws Exception
|
||||
* Will be thrown if there are any problems with the jar.
|
||||
*/
|
||||
- private VerifyResult verifyJar(String jarName) throws Exception {
|
||||
+ private VerifiedJarFile verifyJar(String jarName) throws Exception {
|
||||
try (JarFile jarFile = new JarFile(jarName, true)) {
|
||||
- Vector<JarEntry> entriesVec = new Vector<JarEntry>();
|
||||
+ List<JarEntry> entriesVec = new ArrayList<>();
|
||||
byte[] buffer = new byte[8192];
|
||||
|
||||
Enumeration<JarEntry> entries = jarFile.entries();
|
||||
while (entries.hasMoreElements()) {
|
||||
JarEntry je = entries.nextElement();
|
||||
- entriesVec.addElement(je);
|
||||
+ entriesVec.add(je);
|
||||
|
||||
InputStream is = jarFile.getInputStream(je);
|
||||
try {
|
||||
@@ -295,8 +322,7 @@ public class JarCertVerifier implements CertVerifier {
|
||||
}
|
||||
}
|
||||
}
|
||||
- return verifyJarEntryCerts(jarName, jarFile.getManifest() != null,
|
||||
- entriesVec);
|
||||
+ return new VerifiedJarFile(jarName, null != jarFile.getManifest(), entriesVec);
|
||||
|
||||
} catch (Exception e) {
|
||||
OutputController.getLogger().log(OutputController.Level.ERROR_ALL, e);
|
||||
@@ -318,7 +344,7 @@ public class JarCertVerifier implements CertVerifier {
|
||||
* Will be thrown if there are issues with entries.
|
||||
*/
|
||||
VerifyResult verifyJarEntryCerts(String jarName, boolean jarHasManifest,
|
||||
- Vector<JarEntry> entries) throws Exception {
|
||||
+ List<JarEntry> entries) throws Exception {
|
||||
// Contains number of entries the cert with this CertPath has signed.
|
||||
Map<CertPath, Integer> jarSignCount = new HashMap<>();
|
||||
int numSignableEntriesInJar = 0;
|
||||
@@ -629,4 +655,16 @@ public class JarCertVerifier implements CertVerifier {
|
||||
}
|
||||
return sum;
|
||||
}
|
||||
+
|
||||
+ private static class VerifiedJarFile {
|
||||
+ final String file;
|
||||
+ final boolean hasManifest;
|
||||
+ private final List<JarEntry> entriesVec;
|
||||
+
|
||||
+ private VerifiedJarFile(String file, boolean hasManifest, List<JarEntry> entriesVec) {
|
||||
+ this.file = file;
|
||||
+ this.hasManifest = hasManifest;
|
||||
+ this.entriesVec = entriesVec;
|
||||
+ }
|
||||
+ }
|
||||
}
|
||||
diff --git a/netx/net/sourceforge/jnlp/util/PropertiesFile.java b/netx/net/sourceforge/jnlp/util/PropertiesFile.java
|
||||
index 2f0918f6..c399ef20 100644
|
||||
--- a/netx/net/sourceforge/jnlp/util/PropertiesFile.java
|
||||
+++ b/netx/net/sourceforge/jnlp/util/PropertiesFile.java
|
||||
@@ -23,6 +23,8 @@ import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.util.Properties;
|
||||
|
||||
+import net.sourceforge.jnlp.config.DeploymentConfiguration;
|
||||
+import net.sourceforge.jnlp.runtime.JNLPRuntime;
|
||||
import net.sourceforge.jnlp.util.lockingfile.LockedFile;
|
||||
import net.sourceforge.jnlp.util.logging.OutputController;
|
||||
|
||||
@@ -168,7 +170,9 @@ public class PropertiesFile extends Properties {
|
||||
store(s, header);
|
||||
|
||||
// fsync()
|
||||
- s.getChannel().force(true);
|
||||
+ if (Boolean.parseBoolean(JNLPRuntime.getConfiguration().getProperty(DeploymentConfiguration.KEY_ENABLE_CACHE_FSYNC))) {
|
||||
+ s.getChannel().force(true);
|
||||
+ }
|
||||
lastStore = file.lastModified();
|
||||
} finally {
|
||||
if (s != null) s.close();
|
||||
diff --git a/tests/netx/unit/net/sourceforge/jnlp/runtime/CachedJarFileCallbackTest.java b/tests/netx/unit/net/sourceforge/jnlp/runtime/CachedJarFileCallbackTest.java
|
||||
new file mode 100644
|
||||
index 00000000..bc564db5
|
||||
--- /dev/null
|
||||
+++ b/tests/netx/unit/net/sourceforge/jnlp/runtime/CachedJarFileCallbackTest.java
|
||||
@@ -0,0 +1,55 @@
|
||||
+package net.sourceforge.jnlp.runtime;
|
||||
+
|
||||
+import java.io.File;
|
||||
+import java.io.IOException;
|
||||
+import java.net.URL;
|
||||
+import java.net.URLEncoder;
|
||||
+import java.nio.charset.StandardCharsets;
|
||||
+import java.util.Arrays;
|
||||
+import java.util.List;
|
||||
+import java.util.jar.JarFile;
|
||||
+
|
||||
+import org.junit.After;
|
||||
+import org.junit.Before;
|
||||
+import org.junit.Test;
|
||||
+
|
||||
+import net.sourceforge.jnlp.util.FileTestUtils;
|
||||
+import net.sourceforge.jnlp.util.FileUtils;
|
||||
+
|
||||
+public class CachedJarFileCallbackTest {
|
||||
+ private File tempDirectory;
|
||||
+
|
||||
+ @Before
|
||||
+ public void before() throws IOException {
|
||||
+ tempDirectory = FileTestUtils.createTempDirectory();
|
||||
+ }
|
||||
+
|
||||
+ @After
|
||||
+ public void after() throws IOException {
|
||||
+ FileUtils.recursiveDelete(tempDirectory, tempDirectory.getParentFile());
|
||||
+ }
|
||||
+
|
||||
+ @Test
|
||||
+ public void testRetrieve() throws Exception {
|
||||
+ List<String> names = Arrays.asList("test1.0.jar", "test@1.0.jar");
|
||||
+
|
||||
+ for (String name: names) {
|
||||
+ // URL-encode the filename
|
||||
+ name = URLEncoder.encode(name, StandardCharsets.UTF_8.name());
|
||||
+ // create temp jar file
|
||||
+ File jarFile = new File(tempDirectory, name);
|
||||
+ FileTestUtils.createJarWithContents(jarFile /* no contents */);
|
||||
+
|
||||
+ // JNLPClassLoader.activateJars uses toUri().toURL() to get the local file URL
|
||||
+ URL localUrl = jarFile.toURI().toURL();
|
||||
+ URL remoteUrl = new URL("http://localhost/" + name);
|
||||
+ // add jar to cache
|
||||
+ CachedJarFileCallback cachedJarFileCallback = CachedJarFileCallback.getInstance();
|
||||
+ cachedJarFileCallback.addMapping(remoteUrl, localUrl);
|
||||
+ // retrieve from cache (throws exception if file not found)
|
||||
+ try (JarFile fromCacheJarFile = cachedJarFileCallback.retrieve(remoteUrl)) {
|
||||
+ // nothing to do, we just wanted to make sure that the local file existed
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+}
|
@ -0,0 +1,11 @@
|
||||
--- a/rust-launcher/cc.toml
|
||||
+++ b/rust-launcher/Cargo.toml
|
||||
@@ -2,7 +2,3 @@
|
||||
name = "launcher"
|
||||
version = "1.8.0"
|
||||
authors = ["https://icedtea.classpath.org/wiki/IcedTea-Web"]
|
||||
-
|
||||
-[dependencies]
|
||||
-[target.'cfg(windows)'.dependencies]
|
||||
-dunce = "0.1.1"
|
||||
|
@ -0,0 +1,665 @@
|
||||
#can rust have debuginfo? Verify and fix! Likely issue in Makefile of itw.
|
||||
%global debug_package %{nil}
|
||||
|
||||
# Version of java
|
||||
%define javaver 1.8.0
|
||||
|
||||
# Alternatives priority
|
||||
%define priority 18000
|
||||
# jnlp prorocol gnome registry keys
|
||||
%define gurlhandler /desktop/gnome/url-handlers
|
||||
%define jnlphandler %{gurlhandler}/jnlp
|
||||
%define jnlpshandler %{gurlhandler}/jnlps
|
||||
|
||||
%define javadir %{_jvmdir}/java-%{javaver}-openjdk
|
||||
%define jredir %{_jvmdir}/jre-%{javaver}-openjdk
|
||||
|
||||
%define binsuffix .itweb
|
||||
|
||||
%define preffered_java java-%{javaver}-openjdk
|
||||
|
||||
Name: icedtea-web
|
||||
Version: 1.8.4
|
||||
Release: 4%{?dist}
|
||||
Summary: Additional Java components for OpenJDK - Java browser plug-in and Web Start implementation
|
||||
|
||||
Group: Applications/Internet
|
||||
License: LGPLv2+ and GPLv2 with exceptions
|
||||
URL: http://icedtea.classpath.org/wiki/IcedTea-Web
|
||||
Source0: http://icedtea.classpath.org/download/source/%{name}-%{version}.tar.gz
|
||||
Patch0: patchOutDunce.patch
|
||||
Patch1: altjava.patch
|
||||
Patch2: fed2f5b-22402bb.patch
|
||||
|
||||
BuildRequires: javapackages-tools
|
||||
#for deprecated add_maven_depmap, see https://www.spinics.net/lists/fedora-devel/msg233211.html
|
||||
BuildRequires: javapackages-local
|
||||
BuildRequires: %{preffered_java}-devel
|
||||
BuildRequires: desktop-file-utils
|
||||
BuildRequires: glib2-devel
|
||||
BuildRequires: autoconf
|
||||
BuildRequires: automake
|
||||
BuildRequires: cargo
|
||||
BuildRequires: junit
|
||||
BuildRequires: hamcrest
|
||||
BuildRequires: libappstream-glib
|
||||
# new in 1.5 to have clean up for malformed XMLs
|
||||
BuildRequires: tagsoup
|
||||
# to apply binary tests for CVEs
|
||||
BuildRequires: git
|
||||
|
||||
# For functionality and the OpenJDK dirs
|
||||
Requires: %{preffered_java}
|
||||
Requires: javapackages-tools
|
||||
Recommends: bash-completion
|
||||
#maven fragments
|
||||
Requires(post): javapackages-tools
|
||||
Requires(postun): javapackages-tools
|
||||
|
||||
# When itw builds against it, it have to be also in runtime
|
||||
Requires: tagsoup
|
||||
|
||||
# Post requires alternatives to install tool alternatives.
|
||||
Requires(post): %{_sbindir}/alternatives
|
||||
# jnlp protocols support
|
||||
Requires(post): GConf2
|
||||
# Postun requires alternatives to uninstall tool alternatives.
|
||||
Requires(postun): %{_sbindir}/alternatives
|
||||
# jnlp protocols support
|
||||
Requires(postun): GConf2
|
||||
|
||||
# Standard JPackage plugin provides.
|
||||
Provides: java-plugin = 1:%{javaver}
|
||||
Provides: javaws = 1:%{javaver}
|
||||
Provides: %{preffered_java}-javaws = 1:%{version}
|
||||
|
||||
Provides: %{preffered_java}-plugin = 1:%{version}
|
||||
|
||||
%description
|
||||
The IcedTea-Web project provides a an implementation of Java Web Start
|
||||
(originally based on the Netx project) and a settings tool to
|
||||
manage deployment settings for the aforementioned plugin and Web Start
|
||||
implementations.
|
||||
|
||||
%package javadoc
|
||||
Summary: API documentation for IcedTea-Web
|
||||
Group: Documentation
|
||||
Requires: %{name} = %{version}-%{release}
|
||||
BuildArch: noarch
|
||||
|
||||
%description javadoc
|
||||
This package contains Javadocs for the IcedTea-Web project.
|
||||
|
||||
|
||||
%package devel
|
||||
Summary: pure sources for debugging IcedTea-Web
|
||||
Group: devel
|
||||
Requires: %{name} = %{version}-%{release}
|
||||
BuildArch: noarch
|
||||
|
||||
%description devel
|
||||
This package contains ziped sources of the IcedTea-Web project.
|
||||
|
||||
%package nativelaunchers
|
||||
Summary: native launchers of icedtea-web
|
||||
Group: Applications/Internet
|
||||
Requires: %{name} = %{version}-%{release}
|
||||
|
||||
%description nativelaunchers
|
||||
This package contains native launchers for faster starup
|
||||
|
||||
%prep
|
||||
%setup -q -n IcedTea-Web-%{name}-%{version}
|
||||
%patch0 -p1
|
||||
%patch1 -p1
|
||||
%patch2 -p1
|
||||
|
||||
%build
|
||||
autoreconf -vfi
|
||||
CXXFLAGS="$RPM_OPT_FLAGS $RPM_LD_FLAGS" \
|
||||
%configure \
|
||||
--with-pkgversion=fedora-%{release}-%{_arch} \
|
||||
--docdir=%{_datadir}/javadoc/%{name} \
|
||||
--with-jdk-home=%{javadir} \
|
||||
--with-jre-home=%{jredir} \
|
||||
--libdir=%{_libdir} \
|
||||
--program-suffix=%{binsuffix} \
|
||||
--disable-native-plugin \
|
||||
--with-itw-libs=DISTRIBUTION \
|
||||
--with-modularjdk-file=%{_sysconfdir}/java/%{name} \
|
||||
--enable-shell-launchers \
|
||||
--prefix=%{_prefix}
|
||||
|
||||
make %{?_smp_mflags}
|
||||
|
||||
%install
|
||||
rm -rf $RPM_BUILD_ROOT
|
||||
make install DESTDIR=$RPM_BUILD_ROOT
|
||||
|
||||
# icedteaweb-completion is currently not handled by make nor make install
|
||||
mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/bash_completion.d/
|
||||
mv completion/policyeditor.bash $RPM_BUILD_ROOT%{_sysconfdir}/bash_completion.d/
|
||||
mv completion/javaws.bash $RPM_BUILD_ROOT%{_sysconfdir}/bash_completion.d/
|
||||
mv completion/itweb-settings.bash $RPM_BUILD_ROOT%{_sysconfdir}/bash_completion.d/
|
||||
|
||||
# Move javaws man page to a more specific name
|
||||
mv $RPM_BUILD_ROOT/%{_mandir}/man1/javaws.1 $RPM_BUILD_ROOT/%{_mandir}/man1/javaws.itweb.1
|
||||
|
||||
# Install desktop files.
|
||||
install -d -m 755 $RPM_BUILD_ROOT%{_datadir}/{applications,pixmaps}
|
||||
|
||||
# patch desktops to use the legacy sh laucnhers
|
||||
sed "s/.itweb /.itweb.sh /" -i javaws.desktop #there is javaws... %u
|
||||
sed "s/.itweb$/.itweb.sh/" -i itweb-settings.desktop
|
||||
sed "s/.itweb$/.itweb.sh/" -i policyeditor.desktop
|
||||
|
||||
desktop-file-install --vendor ''\
|
||||
--dir $RPM_BUILD_ROOT%{_datadir}/applications javaws.desktop
|
||||
desktop-file-install --vendor ''\
|
||||
--dir $RPM_BUILD_ROOT%{_datadir}/applications itweb-settings.desktop
|
||||
desktop-file-install --vendor ''\
|
||||
--dir $RPM_BUILD_ROOT%{_datadir}/applications policyeditor.desktop
|
||||
|
||||
# install MetaInfo file for firefox
|
||||
DESTDIR=%{buildroot} appstream-util install metadata/%{name}.metainfo.xml
|
||||
# install MetaInfo file for javaws
|
||||
DESTDIR=%{buildroot} appstream-util install metadata/%{name}-javaws.appdata.xml
|
||||
|
||||
# maven fragments generation
|
||||
mkdir -p $RPM_BUILD_ROOT%{_javadir}
|
||||
pushd $RPM_BUILD_ROOT%{_javadir}
|
||||
ln -s ../%{name}/javaws.jar ../%{name}/netx.jar # backward copatinlity needed?
|
||||
ln -s ../%{name}/javaws.jar %{name}.jar
|
||||
ln -s ../%{name}/plugin.jar %{name}-plugin.jar
|
||||
popd
|
||||
mkdir -p $RPM_BUILD_ROOT/%{_mavenpomdir}
|
||||
cp metadata/%{name}.pom $RPM_BUILD_ROOT/%{_mavenpomdir}/%{name}.pom
|
||||
cp metadata/%{name}-plugin.pom $RPM_BUILD_ROOT/%{_mavenpomdir}/%{name}-plugin.pom
|
||||
|
||||
%add_maven_depmap %{name}.pom %{name}.jar
|
||||
%add_maven_depmap %{name}-plugin.pom %{name}-plugin.jar
|
||||
|
||||
cp netx.build/lib/src.zip $RPM_BUILD_ROOT%{_datadir}/%{name}/netx.src.zip # backward copatinlity needed?
|
||||
cp netx.build/lib/src.zip $RPM_BUILD_ROOT%{_datadir}/%{name}/javaws.src.zip
|
||||
cp liveconnect/lib/src.zip $RPM_BUILD_ROOT%{_datadir}/%{name}/plugin.src.zip
|
||||
|
||||
%find_lang %{name} --all-name --with-man
|
||||
|
||||
%check
|
||||
#make check
|
||||
#appstream-util validate $RPM_BUILD_ROOT/%{_datadir}/appdata/*.xml || :
|
||||
|
||||
%post nativelaunchers
|
||||
PRIORITY=%{priority}
|
||||
let PRIORITY=PRIORITY-1
|
||||
alternatives \
|
||||
--install %{_bindir}/javaws javaws.%{_arch} %{_prefix}/bin/javaws%{binsuffix} $PRIORITY --family %{preffered_java}.%{_arch} \
|
||||
--slave %{_bindir}/itweb-settings itweb-settings %{_prefix}/bin/itweb-settings%{binsuffix} \
|
||||
--slave %{_bindir}/policyeditor policyeditor %{_prefix}/bin/policyeditor%{binsuffix} \
|
||||
--slave %{_bindir}/ControlPanel ControlPanel %{_prefix}/bin/itweb-settings%{binsuffix} \
|
||||
--slave %{_mandir}/man1/javaws.1.gz javaws.1.gz %{_mandir}/man1/javaws%{binsuffix}.1.gz \
|
||||
--slave %{_mandir}/man1/ControlPanel.1.gz ControlPanel.1.gz %{_mandir}/man1/itweb-settings.1.gz
|
||||
%post
|
||||
PRIORITY=%{priority}
|
||||
alternatives \
|
||||
--install %{_bindir}/javaws javaws.%{_arch} %{_prefix}/bin/javaws%{binsuffix}.sh $PRIORITY --family %{preffered_java}.%{_arch} \
|
||||
--slave %{_bindir}/itweb-settings itweb-settings %{_prefix}/bin/itweb-settings%{binsuffix}.sh \
|
||||
--slave %{_bindir}/policyeditor policyeditor %{_prefix}/bin/policyeditor%{binsuffix}.sh \
|
||||
--slave %{_bindir}/ControlPanel ControlPanel %{_prefix}/bin/itweb-settings%{binsuffix}.sh \
|
||||
--slave %{_mandir}/man1/javaws.1.gz javaws.1.gz %{_mandir}/man1/javaws%{binsuffix}.1.gz \
|
||||
--slave %{_mandir}/man1/ControlPanel.1.gz ControlPanel.1.gz %{_mandir}/man1/itweb-settings.1.gz
|
||||
|
||||
gconftool-2 -s %{jnlphandler}/command '%{_bindir}/javaws %s' --type String &> /dev/null || :
|
||||
gconftool-2 -s %{jnlphandler}/enabled --type Boolean true &> /dev/null || :
|
||||
gconftool-2 -s %{jnlpshandler}/command '%{_bindir}/javaws %s' --type String &> /dev/null || :
|
||||
gconftool-2 -s %{jnlpshandler}/enabled --type Boolean true &> /dev/null || :
|
||||
|
||||
%posttrans
|
||||
update-desktop-database &> /dev/null || :
|
||||
exit 0
|
||||
|
||||
%postun nativelaunchers
|
||||
if [ $1 -eq 0 ]
|
||||
then
|
||||
alternatives --remove javaws.%{_arch} %{_prefix}/bin/javaws%{binsuffix}
|
||||
fi
|
||||
exit 0
|
||||
|
||||
%postun
|
||||
update-desktop-database &> /dev/null || :
|
||||
if [ $1 -eq 0 ]
|
||||
then
|
||||
alternatives --remove javaws.%{_arch} %{_prefix}/bin/javaws%{binsuffix}.sh
|
||||
gconftool-2 -u %{jnlphandler}/command &> /dev/null || :
|
||||
gconftool-2 -u %{jnlphandler}/enabled &> /dev/null || :
|
||||
gconftool-2 -u %{jnlpshandler}/command &> /dev/null || :
|
||||
gconftool-2 -u %{jnlpshandler}/enabled &> /dev/null || :
|
||||
fi
|
||||
exit 0
|
||||
|
||||
%files nativelaunchers
|
||||
%{_prefix}/bin/javaws.itweb
|
||||
%{_prefix}/bin/itweb-settings.itweb
|
||||
%{_prefix}/bin/policyeditor.itweb
|
||||
%license COPYING
|
||||
|
||||
%files -f .mfiles -f %{name}.lang
|
||||
%{_sysconfdir}/bash_completion.d/*
|
||||
%config(noreplace) %{_sysconfdir}/java/%{name}/itw-modularjdk.args
|
||||
%{_prefix}/bin/javaws.itweb.sh
|
||||
%{_prefix}/bin/itweb-settings.itweb.sh
|
||||
%{_prefix}/bin/policyeditor.itweb.sh
|
||||
%{_datadir}/applications/*
|
||||
%dir %{_datadir}/%{name}
|
||||
%{_datadir}/%{name}/*.jar
|
||||
%{_datadir}/%{name}/*.png
|
||||
%{_datadir}/man/man1/*
|
||||
%{_datadir}/pixmaps/*
|
||||
%{_datadir}/appdata/*.xml
|
||||
%doc NEWS README
|
||||
%license COPYING
|
||||
|
||||
%files javadoc
|
||||
%{_datadir}/javadoc/%{name}
|
||||
%license COPYING
|
||||
|
||||
%files devel
|
||||
%{_datadir}/%{name}/*.zip
|
||||
%license COPYING
|
||||
|
||||
%changelog
|
||||
* Mon Nov 30 2020 - Jiri Vanek <jvanek@redhat.com> -1.8.4-4
|
||||
- added patch2, fed2f5b-22402bb.patch containing important fixes from future 1.8.5
|
||||
- Resolves: rhbz#1900043
|
||||
|
||||
* Fri Nov 27 2020 - Jiri Vanek <jvanek@redhat.com> -1.8.4-2
|
||||
- added native launchers, via separate subpackage, but efectively changed main package to arched one
|
||||
- removed policyeditor man page, it was link to itself
|
||||
- Resolves: rhbz#1900043
|
||||
|
||||
* Fri Nov 27 2020 - Jiri Vanek <jvanek@redhat.com> -1.8.4-1
|
||||
- rebased to itw 1.8, ommiting native launchers
|
||||
- Resolves: rhbz#1900043
|
||||
|
||||
* Fri Nov 20 2020 Jiri Vanek <jvanek@redhat.com> 1.7.1-18
|
||||
- patched to use alt-java if available
|
||||
- Added Patch6, altjava.patch
|
||||
- Resolves: rhbz#1888633
|
||||
|
||||
* Thu Jul 18 2019 Jiri Vanek <jvanek@redhat.com> 1.7.1-16
|
||||
- Added Patch5, testTuning.patch to make tests pass inclean envirnment
|
||||
- Resolves: rhbz#1724958
|
||||
|
||||
* Thu Jul 18 2019 Jiri Vanek <jvanek@redhat.com> 1.7.1-16
|
||||
- added patch1, patch4 and patch11 to fix CVE-2019-10182
|
||||
- added patch2 to fix CVE-2019-10181
|
||||
- added patch3 and patch33 to fix CVE-2019-10185
|
||||
- Resolves: rhbz#1724958
|
||||
- Resolves: rhbz#1725928
|
||||
- Resolves: rhbz#1724989
|
||||
|
||||
* Fri Mar 22 2019 - Jiri Vanek <jvanek@redhat.com> -1.7.1-10
|
||||
- added gating
|
||||
|
||||
* Mon Jul 16 2018 - Jiri Vanek <jvanek@redhat.com> -1.7.1-8
|
||||
- removed rhino
|
||||
|
||||
* Thu May 24 2018 - Jiri Vanek <jvanek@redhat.com> -1.7.1-6
|
||||
- removed clang
|
||||
|
||||
* Mon May 14 2018 - Jiri Vanek <jvanek@redhat.com> -1.7.1-6
|
||||
- added an applied patch1, oracleForms.patch to make oracle forms working
|
||||
|
||||
* Fri Mar 02 2018 - Jiri Vanek <jvanek@redhat.com> -1.7.1-5
|
||||
- added 1473-1480.patch
|
||||
- added support for javafx-desc and so allwong run of pure-javafx only applications
|
||||
- --nosecurity enhanced for possibility to skip invalid signatures
|
||||
- enhanced to allow resources to be read also from j2se/java element (OmegaT)
|
||||
|
||||
* Tue Feb 20 2018 - Jiri Vanek <jvanek@redhat.com> -1.7.1-3
|
||||
- added buildrequires on gcc/gcc-c++
|
||||
- to follow new packaging guidelines which no longer automatically pulls gcc/c++ to build root
|
||||
|
||||
* Wed Feb 07 2018 Fedora Release Engineering <releng@fedoraproject.org> - 1.7.1-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
|
||||
|
||||
* Mon Dec 18 2017 Jiri Vanek <jvanek@redhat.com> 1.7.1-1
|
||||
* bump to 1.7.1
|
||||
|
||||
* Fri Nov 03 2017 Jiri Vanek <jvanek@redhat.com> 1.7-6
|
||||
- javaws specific manpage renmed from -suffix to .suffix
|
||||
|
||||
* Wed Oct 18 2017 Jiri Vanek <jvanek@redhat.com> 1.7-5
|
||||
- gathered various patches from usptream
|
||||
|
||||
* Wed Aug 23 2017 Jiri Vanek <jvanek@redhat.com> 1.7-4
|
||||
- removed natie plugin, no longer can build (removed xullruner and gecko devel packages)
|
||||
- added forgotten slaves of itweb-settings policyeditor
|
||||
- Own %%{_datadir}/%%{name} dir
|
||||
- Mark non-English man pages with %%lang
|
||||
- Install COPYING as %%license
|
||||
- last three by Ville Skytta <ville.skytta@iki.fi> via 1481270
|
||||
- added BuildRequires: javapackages-local to introduce deprecated add_maven_depmap macro
|
||||
|
||||
* Wed Aug 02 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1.7-3
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild
|
||||
|
||||
* Wed Jul 26 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1.7-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
|
||||
|
||||
* Wed Jul 19 2017 Jiri Vanek <jvanek@redhat.com> 1.7-1
|
||||
- updated to itw 1.7
|
||||
|
||||
* Wed Jul 19 2017 Jiri Vanek <jvanek@redhat.com> 1.7-0.5
|
||||
- updated to RC7
|
||||
|
||||
* Mon May 15 2017 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.7-0.4.pre06
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_27_Mass_Rebuild
|
||||
|
||||
* Fri May 12 2017 Jiri Vanek <jvanek@redhat.com> 1.7-0.3.pre06
|
||||
- updated to RC6
|
||||
- split bash-copletion
|
||||
- added sources (to align with upstream binary release)
|
||||
|
||||
* Tue May 02 2017 Jiri Vanek <jvanek@redhat.com> 1.7-0.3.pre05
|
||||
- gconf calls silenced by "&> /dev/null || :"
|
||||
- see rhbz1446932
|
||||
|
||||
* Fri Apr 28 2017 Jiri Vanek <jvanek@redhat.com> 1.7-0.2.pre05
|
||||
- updated to rc5
|
||||
- added support for jnlp://, jnlps:// and jnlp: protocols
|
||||
|
||||
* Fri Feb 10 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1.7-0.2.pre04
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
|
||||
|
||||
* Thu Jan 12 2017 Jiri Vanek <jvanek@redhat.com> 1.7-0.1.pre04
|
||||
- updated to rc4
|
||||
- fixed RHBZ#1412544
|
||||
|
||||
* Wed Jan 11 2017 Jiri Vanek <jvanek@redhat.com> 1.7-0.1.pre03
|
||||
- updated ro RC3 of 1.7
|
||||
|
||||
* Wed Jan 04 2017 Jiri Vanek <jvanek@redhat.com> 1.7-0.1.pre01
|
||||
- updated ro RC1 of 1.7
|
||||
- added recommends on vash completion
|
||||
|
||||
* Wed Jul 13 2016 Jiri Vanek <jvanek@redhat.com> 1.6.2-3
|
||||
- minor fix to javadir and jre dir
|
||||
|
||||
* Wed Jul 13 2016 Jiri Vanek <jvanek@redhat.com> 1.6.2-2
|
||||
- added --family to make it part of javas alternatives alignment
|
||||
- java-javaver-openjdk collected into preffered_java
|
||||
|
||||
* Wed Feb 03 2016 Jiri Vanek <jvanek@redhat.com> 1.6.2-1
|
||||
- updated to 1.6.2
|
||||
- fixed also rhbz#1303437 - package owns /etc/bash_completion.d but it should not own it
|
||||
|
||||
* Thu Jan 28 2016 Jiri Vanek <jvanek@redhat.com> 1.6.1-66
|
||||
- moved to 1.6.2pre
|
||||
|
||||
* Tue Dec 22 2015 Jiri Vanek <jvanek@redhat.com> 1.6.1-5
|
||||
- generated maven metadata
|
||||
|
||||
* Thu Nov 19 2015 Jiri Vanek <jvanek@redhat.com> 1.6.1-4
|
||||
- installed also javaws metadata
|
||||
|
||||
* Wed Oct 14 2015 Jiri Vanek <jvanek@redhat.com> 1.6.1-3
|
||||
- added and applied three patches scheduled for 1.6.2
|
||||
- patch2 fileLogInitializationError-1.6.patch to prevent consequences 1268909
|
||||
- patch1 donLogToFileBeforeFileLogsInitiate.patch
|
||||
- patch0 javadocFixes.patch
|
||||
|
||||
* Mon Sep 21 2015 Jiri Vanek <jvanek@redhat.com> 1.6.1-2
|
||||
- added and applied patch0 javadocFixes.patch
|
||||
|
||||
* Fri Sep 11 2015 Jiri Vanek <jvanek@redhat.com> 1.6.1-1
|
||||
- updated to upstream release 1.6.1
|
||||
- metadata xml files enhanced for javaws
|
||||
|
||||
* Mon Jun 22 2015 Omair Majid <omajid@redhat.com> - 1.6-5
|
||||
- Comply with newer java packaging guidelines
|
||||
- Require javapackages-tools in main package
|
||||
- Don't require jpackage-utils in -javadoc subpackage, since subpackage
|
||||
requires the main package
|
||||
|
||||
* Wed Jun 17 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.6-4
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
|
||||
|
||||
* Mon May 04 2015 Jiri Vanek <jvanek@redhat.com> 1.6-3
|
||||
- added depndence on hamcrest - no longer part of junit
|
||||
|
||||
* Wed Apr 29 2015 Jiri Vanek <jvanek@redhat.com> 1.6-2
|
||||
- enabled check
|
||||
|
||||
* Tue Apr 28 2015 Jiri Vanek <jvanek@redhat.com> 1.6-1
|
||||
- updated to limited audience final release
|
||||
|
||||
* Fri Apr 24 2015 Jiri Vanek <jvanek@redhat.com> 1.6-0.1.pre05
|
||||
- updated to pre06
|
||||
- handled "Add Tab Completion for icedtea-web" change
|
||||
- this release contains numers, not yet upstreamed, but going to release features:
|
||||
- summary: Fixed resource test to pass for CZ localization
|
||||
- summary: Added Czech translation for 1.6.
|
||||
- summary: Messages from TextsProvider moved to properties
|
||||
- summary: various improvements to default set of properties
|
||||
- summary: Added MultipleDeploymentPropertiesModifier improvement to testsuite
|
||||
|
||||
* Fri Apr 17 2015 Jiri Vanek <jvanek@redhat.com> 1.6-0.1.pre05
|
||||
- updated to pre05
|
||||
|
||||
* Tue Apr 14 2015 Jiri Vanek <jvanek@redhat.com> 1.6-0.1.pre04
|
||||
- updated to pre04
|
||||
|
||||
* Mon Mar 16 2015 Jiri Vanek <jvanek@redhat.com> 1.6-0.1.pre03
|
||||
- updated to pre03
|
||||
- removed cp javaws.png. Handled by upstream now
|
||||
|
||||
* Mon Dec 22 2014 Jiri Vanek <jvanek@redhat.com> 1.6-0.1.pre02
|
||||
- updated to pre02
|
||||
- upstreamed patch1, quoteDocsPaths.patch
|
||||
- temprarily disabled unittests
|
||||
- fixed nlp apps shortcut
|
||||
|
||||
* Mon Dec 22 2014 Jiri Vanek <jvanek@redhat.com> 1.6-0.1.pre01
|
||||
- update future 1.6 alpha pre01
|
||||
- added localised man pages
|
||||
- removed link to icedtea-web man page (now provided by upstream)
|
||||
|
||||
* Thu Nov 27 2014 Jiri Vanek <jvanek@redhat.com> 1.5.2-0
|
||||
- update to upstream 1.5.2
|
||||
|
||||
* Sat Aug 16 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.5.1-1
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild
|
||||
|
||||
* Fri Aug 15 2014 Jiri Vanek <jvanek@redhat.com> 1.5.1-0
|
||||
- update to upstream 1.5.1
|
||||
- removed all patches (all upstreamed)
|
||||
|
||||
* Thu Aug 14 2014 Richard Hughes <richard@hughsie.com> - 1.5-4
|
||||
- Add MetaInfo file to show an addon in GNOME Software.
|
||||
- See http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1907 for upstream.
|
||||
|
||||
* Mon Jun 09 2014 Omair Majid <omajid@redhat.com> - 1.5-3
|
||||
- Require junit instead of juni4
|
||||
- Build against OpenJDK 7 explicitly
|
||||
|
||||
* Sat Jun 07 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.5-3
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
|
||||
|
||||
* Mon Apr 07 2014 Jiri Vanek <jvanek@redhat.com> 1.5-2
|
||||
- add not yet upstreamed DE localisation of 1.5
|
||||
- patch0 DElocalizationforIcedTea-Web1.5-0001.patch
|
||||
- autoreconf gog -vfi, see RH1077898
|
||||
- ./configure changed to %%configure,see RH1077287
|
||||
|
||||
* Mon Apr 07 2014 Jiri Vanek <jvanek@redhat.com> 1.5-1
|
||||
- updated to icedtea-web-1.5
|
||||
|
||||
* Mon Mar 10 2014 Jiri Vanek <jvanek@redhat.com> 1.5-0.8.pre05
|
||||
- updated to pre05
|
||||
- based on revision 925
|
||||
|
||||
* Mon Mar 10 2014 Jiri Vanek <jvanek@redhat.com> 1.5-0.4.pre04
|
||||
- updated to pre04
|
||||
- based on revision 917
|
||||
|
||||
* Wed Mar 05 2014 Jiri Vanek <jvanek@redhat.com> 1.5-0.3.pre03
|
||||
- updated to pre03
|
||||
- based on revision 910:0a36108ce4b9
|
||||
|
||||
* Wed Feb 26 2014 Jiri Vanek <jvanek@redhat.com> 1.5-0.2.pre02
|
||||
- added supported tagsoup dependence
|
||||
|
||||
* Wed Feb 26 2014 Jiri Vanek <jvanek@redhat.com> 1.5-0.1.pre02
|
||||
- updated to bleeding edge as tracker before 1.5 actual release
|
||||
- based on revision 899
|
||||
- added policyeditor.desktop
|
||||
- removed -std=c++11 flag
|
||||
|
||||
* Wed Feb 12 2014 Jiri Vanek <jvanek@redhat.com> 1.5-0.1.pre01
|
||||
- updated to bleeding edge as tracker before 1.5 actual release
|
||||
- named by https://fedoraproject.org/wiki/Packaging:NamingGuidelines#Pre-Release_packages
|
||||
- see commented original source0 line and setup line reusing versions
|
||||
- the source tarball is based on revision 892
|
||||
|
||||
* Tue Feb 04 2014 Jiri Vanek <jvanek@redhat.com> 1.4.2-0
|
||||
- updated to 1.4.2
|
||||
- removed upstreamed patches
|
||||
- added std=c++11 flag to CXXFLAGS (thanx omajid!)
|
||||
- removed autoreconf
|
||||
|
||||
* Tue Dec 17 2013 Jiri Vanek <jvanek@redhat.com> 1.4.1-1
|
||||
- added and applied patch0, christmasSplash3.diff. Will be upstreamed
|
||||
- Christmas release for Fedora !-)
|
||||
|
||||
* Tue Sep 17 2013 Jiri Vanek <jvanek@redhat.com> 1.4.1-0
|
||||
- updated to 1.4.1
|
||||
- add icedtea-web man page
|
||||
- removed upstreamed patch1 b25-appContextFix.patch
|
||||
- removed upstreamed patch2 rhino-pac-permissions.patch
|
||||
- make check enabled again
|
||||
- should be build for non-standart archs !-)
|
||||
- removed unused multilib arches (yupii!)
|
||||
|
||||
* Sat Aug 03 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.4-4
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
|
||||
|
||||
* Tue Jul 23 2013 Omair Majid <jvanek@redhat.com> 1.4.0-3
|
||||
- Added upstream fix for RH982558
|
||||
|
||||
* Wed Jun 19 2013 Jiri Vanek <jvanek@redhat.com> 1.4.0-2
|
||||
- added patch1 b25-appContextFix.patch to make it run with future openjdk
|
||||
|
||||
* Fri Jun 07 2013 Jiri Vanek <jvanek@redhat.com> 1.4-1
|
||||
- Adapted to latest openjdk changes
|
||||
- added build requires for autoconf and automake
|
||||
- minor clean up
|
||||
- Updated to 1.4
|
||||
- See announcement for detail
|
||||
- http://mail.openjdk.java.net/pipermail/distro-pkg-dev/2013-May/023195.html
|
||||
- commented out check - some junit4 incompatibility
|
||||
|
||||
* Wed Apr 17 2013 Jiri Vanek <jvanek@redhat.com> 1.3.2-0
|
||||
- Updated to latest ustream release of 1.3 branch - 1.3.2
|
||||
- Security Updates
|
||||
- CVE-2013-1927, RH884705: fixed gifar vulnerability
|
||||
- CVE-2013-1926, RH916774: Class-loader incorrectly shared for applets with same relative-path.
|
||||
- Common
|
||||
- Added new option in itw-settings which allows users to set JVM arguments when plugin is initialized.
|
||||
- NetX
|
||||
- PR580: http://www.horaoficial.cl/ loads improperly
|
||||
- Plugin
|
||||
PR1260: IcedTea-Web should not rely on GTK
|
||||
PR1157: Applets can hang browser after fatal exception
|
||||
- Removed upstreamed patch to remove GTK dependency
|
||||
- icedtea-web-pr1260-remove-gtk-dep.patch
|
||||
|
||||
* Wed Feb 20 2013 Ville Skyttä <ville.skytta@iki.fi> - 1.3.1-5
|
||||
- Resolves: rhbz#875496
|
||||
- Build with $RPM_LD_FLAGS and %%{_smp_mflags}.
|
||||
- Run unit tests during build.
|
||||
|
||||
* Thu Feb 14 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.3.1-4
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild
|
||||
|
||||
* Wed Jan 16 2013 Deepak Bhole <dbhole@redhat.com> 1.3.1-3
|
||||
- Resolves: rhbz#889644, rhbz#895197
|
||||
- Added patch to remove GTK dependency
|
||||
|
||||
* Thu Dec 20 2012 Jiri Vanek <jvanek@redhat.com> 1.3.1-2
|
||||
- Moved to be build with GTK3
|
||||
|
||||
* Wed Nov 07 2012 Deepak Bhole <dbhole@redhat.com> 1.3.1-1
|
||||
- Resolves: RH869040/CVE-2012-4540
|
||||
|
||||
* Mon Sep 17 2012 Deepak Bhole <dbhole@redhat.com> 1.3-1
|
||||
- Updated to 1.3
|
||||
- Resolves: rhbz#720836: Epiphany fails to execute Java applets
|
||||
|
||||
* Tue Jul 31 2012 Deepak Bhole <dbhole@redhat.com> 1.2.1-1
|
||||
- Updated to 1.2.1
|
||||
- Resolves: RH840592/CVE-2012-3422
|
||||
- Resolves: RH841345/CVE-2012-3423
|
||||
|
||||
* Thu Jul 19 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.2-5
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
|
||||
|
||||
* Thu May 03 2012 Deepak Bhole <dbhole@redhat.com> 1.2-4
|
||||
- Resolves rhbz#814585
|
||||
- Fixed java-plugin provides and added one for javaws
|
||||
|
||||
* Tue Apr 17 2012 Deepak Bhole <dbhole@redhat.com> 1.2-3
|
||||
- Updated summary
|
||||
- Fixed virtual provide
|
||||
|
||||
* Tue Mar 13 2012 Peter Robinson <pbrobinson@fedoraproject.org> - 1.2-2
|
||||
- Enable building on ARM platforms
|
||||
|
||||
* Mon Mar 05 2012 Deepak Bhole <dbhole@redhat.com> 1.2-1
|
||||
- Updated to 1.2
|
||||
|
||||
* Fri Jan 13 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.1.4-4
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild
|
||||
|
||||
* Fri Nov 25 2011 Deepak Bhole <dbhole@redhat.com> 1.1.4-3
|
||||
- Resolves rhbz#757191
|
||||
- Bumped min_openjdk_version to -60 (latest)
|
||||
|
||||
* Thu Nov 24 2011 Deepak Bhole <dbhole@redhat.com> 1.1.4-2
|
||||
- Resolves: rhbz#742887. Do not own directories not created by the package.
|
||||
|
||||
* Tue Nov 08 2011 Deepak Bhole <dbhole@redhat.com> 1.1.4-1
|
||||
- Updated to 1.1.4
|
||||
- Added npapi-fix patch so that the plug-in compiles with xulrunner 8
|
||||
|
||||
* Thu Sep 01 2011 Deepak Bhole <dbhole@redhat.com> 1.1.2-1
|
||||
- Updated to 1.1.2
|
||||
- Removed all patches (now upstream)
|
||||
- Resolves: rhbz# 734890
|
||||
|
||||
* Tue Aug 23 2011 Deepak Bhole <dbhole@redhat.com> 1.1.1-3
|
||||
- Added patch to allow install to jre dir
|
||||
- Fixed requirement for java-1.7.0-openjdk
|
||||
|
||||
* Tue Aug 09 2011 Deepak Bhole <dbhole@redhat.com> 1.1.1-2
|
||||
- Fixed file ownership so that debuginfo is not in main package
|
||||
|
||||
* Wed Aug 03 2011 Deepak Bhole <dbhole@redhat.com> 1.1.1-1
|
||||
- Bump to 1.1.1
|
||||
- Added patch for PR768 and PR769
|
||||
|
||||
* Wed Jul 20 2011 Deepak Bhole <dbhole@redhat.com> 1.0.4-1
|
||||
- Bump to 1.0.4
|
||||
- Fixed rhbz#718164: Home directory path disclosure to untrusted applications
|
||||
- Fixed rhbz#718170: Java Web Start security warning dialog manipulation
|
||||
|
||||
* Mon Jun 13 2011 Deepak Bhole <dbhole@redhat.com> 1.0.3-1
|
||||
- Update to 1.0.3
|
||||
- Resolves: rhbz#691259
|
||||
|
||||
* Mon Apr 04 2011 Deepak Bhole <dbhole@redhat.com> 1.0.2-2
|
||||
- Fixed incorrect macro value for min_openjdk_version
|
||||
- Use posttrans instead of post, so that upgrade from old plugin works
|
||||
|
||||
* Mon Apr 04 2011 Deepak Bhole <dbhole@redhat.com> 1.0.2-1
|
||||
- Initial build
|
Loading…
Reference in new issue