From 3efd4a7e683e96a68da940c66f434cc36e775649 Mon Sep 17 00:00:00 2001 From: Jiri Date: Mar 04 2015 12:26:15 +0000 Subject: Sync with f22. u40b25 was released. --- diff --git a/.gitignore b/.gitignore index 36a09bd..0417c60 100644 --- a/.gitignore +++ b/.gitignore @@ -32,9 +32,7 @@ /aarch64-hotspot-jdk8u40-b02.tar.xz /aarch64-hotspot-jdk8u40-b02-c6375c27cbfa.tar.xz /aarch64-hotspot-jdk8u40-b04-a6df78e590bb.tar.xz -/jdk8u-jdk8u25-b18.tar.xz /jdk8-jdk8u40-b12-aarch64.tar.xz /jdk8u-jdk8u40-b12.tar.xz /jdk8-jdk8u40-b12-aarch64-1263.tar.xz -/jdk8u-jdk8u31-b13.tar.xz -/jdk8-jdk8u40-b12-aarch64-hs3135441ed942.tar.xz +/jdk8u40-jdk8u40-b25.tar.xz diff --git a/applet-hole.patch b/applet-hole.patch deleted file mode 100644 index 6f163e9..0000000 --- a/applet-hole.patch +++ /dev/null @@ -1,108 +0,0 @@ -diff --git jdk8/jdk/src/share/classes/sun/applet/AppletPanel.java jdk8/jdk/src/share/classes/sun/applet/AppletPanel.java ---- jdk8/jdk/src/share/classes/sun/applet/AppletPanel.java -+++ jdk8/jdk/src/share/classes/sun/applet/AppletPanel.java -@@ -68,7 +68,7 @@ - /** - * The applet (if loaded). - */ -- Applet applet; -+ protected Applet applet; - - /** - * Applet will allow initialization. Should be -@@ -162,7 +162,8 @@ - * Creates a thread to run the applet. This method is called - * each time an applet is loaded and reloaded. - */ -- synchronized void createAppletThread() { -+ //Overridden by NetxPanel. -+ protected synchronized void createAppletThread() { - // Create a thread group for the applet, and start a new - // thread to load the applet. - String nm = "applet-" + getCode(); -@@ -306,7 +307,7 @@ - /** - * Get an event from the queue. - */ -- synchronized AppletEvent getNextEvent() throws InterruptedException { -+ protected synchronized AppletEvent getNextEvent() throws InterruptedException { - while (queue == null || queue.isEmpty()) { - wait(); - } -@@ -692,7 +693,8 @@ - * applet event processing so that it can be gracefully interrupted from - * things like HotJava. - */ -- private void runLoader() { -+ //Overridden by NetxPanel. -+ protected void runLoader() { - if (status != APPLET_DISPOSE) { - showAppletStatus("notdisposed"); - return; -diff --git jdk8/jdk/src/share/classes/sun/applet/AppletViewerPanel.java jdk8/jdk/src/share/classes/sun/applet/AppletViewerPanel.java ---- jdk8/jdk/src/share/classes/sun/applet/AppletViewerPanel.java -+++ jdk8/jdk/src/share/classes/sun/applet/AppletViewerPanel.java -@@ -42,25 +42,25 @@ - * - * @author Arthur van Hoff - */ --class AppletViewerPanel extends AppletPanel { -+public class AppletViewerPanel extends AppletPanel { - - /* Are we debugging? */ -- static boolean debug = false; -+ protected static boolean debug = false; - - /** - * The document url. - */ -- URL documentURL; -+ protected URL documentURL; - - /** - * The base url. - */ -- URL baseURL; -+ protected URL baseURL; - - /** - * The attributes of the applet. - */ -- Hashtable atts; -+ protected Hashtable atts; - - /* - * JDK 1.1 serialVersionUID -@@ -70,7 +70,7 @@ - /** - * Construct an applet viewer and start the applet. - */ -- AppletViewerPanel(URL documentURL, Hashtable atts) { -+ protected AppletViewerPanel(URL documentURL, Hashtable atts) { - this.documentURL = documentURL; - this.atts = atts; - -@@ -106,7 +106,7 @@ - * Get an applet parameter. - */ - public String getParameter(String name) { -- return (String)atts.get(name.toLowerCase()); -+ return atts.get(name.toLowerCase()); - } - - /** -@@ -202,12 +202,12 @@ - return (AppletContext)getParent(); - } - -- static void debug(String s) { -+ protected static void debug(String s) { - if(debug) - System.err.println("AppletViewerPanel:::" + s); - } - -- static void debug(String s, Throwable t) { -+ protected static void debug(String s, Throwable t) { - if(debug) { - t.printStackTrace(); - debug(s); diff --git a/generate_source_tarball.sh b/generate_source_tarball.sh index 72914fe..6011bbd 100755 --- a/generate_source_tarball.sh +++ b/generate_source_tarball.sh @@ -5,6 +5,7 @@ # Usage: generate_source_tarball.sh project_name repo_name tag # # Examples: +# sh generate_source_tarball.sh jdk8u jdk8u40 jdk8u40-b25 # ./generate_source_tarball.sh jdk8 jdk8 jdk8-b79 # ./generate_source_tarball.sh jdk8u jdk8u jdk8u5-b13 # ./generate_source_tarball.sh aarch64-port jdk8 aarch64-${DATE} diff --git a/hotspot-build-j-directive.patch b/hotspot-build-j-directive.patch deleted file mode 100644 index 0ab9d60..0000000 --- a/hotspot-build-j-directive.patch +++ /dev/null @@ -1,19 +0,0 @@ -# HG changeset patch -# User andrew -# Date 1398183426 -3600 -# Node ID b4ea3a87f707e674a144e805084bda0f72ad4e38 -# Parent 00aa9f5a26b9e2c7bdca547201106f76e23a8c01 -Don't substitute 'j' for '-j' inside -I directives - ---- jdk8/hotspot/make/linux/makefiles/adjust-mflags.sh Tue Apr 22 17:15:43 2014 +0100 -+++ jdk8/hotspot/make/linux/makefiles/adjust-mflags.sh Tue Apr 22 17:17:06 2014 +0100 -@@ -64,7 +64,7 @@ - echo "$MFLAGS" \ - | sed ' - s/^-/ -/ -- s/ -\([^ ][^ ]*\)j/ -\1 -j/ -+ s/ -\([^ I][^ ]*\)j/ -\1 -j/ - s/ -j[0-9][0-9]*/ -j/ - s/ -j\([^ ]\)/ -j -\1/ - s/ -j/ -j'${HOTSPOT_BUILD_JOBS:-${default_build_jobs}}'/ - diff --git a/java-1.8.0-openjdk-s390-java-opts.patch b/java-1.8.0-openjdk-s390-java-opts.patch index af6063d..9e2b5b8 100644 --- a/java-1.8.0-openjdk-s390-java-opts.patch +++ b/java-1.8.0-openjdk-s390-java-opts.patch @@ -1,19 +1,27 @@ diff -up jdk8/common/autoconf/boot-jdk.m4.s390 jdk8/common/autoconf/boot-jdk.m4 ---- jdk8/common/autoconf/boot-jdk.m4.s390 2014-03-11 16:01:27.000000000 -0400 -+++ jdk8/common/autoconf/boot-jdk.m4 2014-05-21 11:50:36.507890197 -0400 -@@ -315,12 +315,12 @@ - fi +--- jdk8/common/autoconf/boot-jdk.m4.s390 2014-10-28 13:10:36.000000000 -0400 ++++ jdk8/common/autoconf/boot-jdk.m4 2015-01-09 15:49:45.443809100 -0500 +@@ -319,21 +319,12 @@ AC_DEFUN_ONCE([BOOTJDK_SETUP_BOOT_JDK_AR + AC_MSG_CHECKING([flags for boot jdk java command for big workloads]) - # Minimum amount of heap memory. -- ADD_JVM_ARG_IF_OK([-Xms64M],boot_jdk_jvmargs,[$JAVA]) -+ ADD_JVM_ARG_IF_OK([-Xms256M],boot_jdk_jvmargs,[$JAVA]) - if test "x$OPENJDK_TARGET_OS" = "xmacosx" || test "x$OPENJDK_TARGET_CPU" = "xppc64" ; then - # Why does macosx need more heap? Its the huge JDK batch. - ADD_JVM_ARG_IF_OK([-Xmx1600M],boot_jdk_jvmargs,[$JAVA]) - else -- ADD_JVM_ARG_IF_OK([-Xmx1100M],boot_jdk_jvmargs,[$JAVA]) -+ ADD_JVM_ARG_IF_OK([-Xmx768M],boot_jdk_jvmargs,[$JAVA]) - fi - # When is adding -client something that speeds up the JVM? - # ADD_JVM_ARG_IF_OK([-client],boot_jdk_jvmargs,[$JAVA]) - + # Starting amount of heap memory. +- ADD_JVM_ARG_IF_OK([-Xms64M],boot_jdk_jvmargs_big,[$JAVA]) ++ ADD_JVM_ARG_IF_OK([-Xms256M],boot_jdk_jvmargs_big,[$JAVA]) + + # Maximum amount of heap memory. + # Maximum stack size. +- if test "x$BUILD_NUM_BITS" = x32; then +- JVM_MAX_HEAP=1100M ++ JVM_MAX_HEAP=768M + STACK_SIZE=768 +- else +- # Running Javac on a JVM on a 64-bit machine, takes more space since 64-bit +- # pointers are used. Apparently, we need to increase the heap and stack +- # space for the jvm. More specifically, when running javac to build huge +- # jdk batch +- JVM_MAX_HEAP=1600M +- STACK_SIZE=1536 +- fi + ADD_JVM_ARG_IF_OK([-Xmx$JVM_MAX_HEAP],boot_jdk_jvmargs_big,[$JAVA]) + ADD_JVM_ARG_IF_OK([-XX:ThreadStackSize=$STACK_SIZE],boot_jdk_jvmargs_big,[$JAVA]) + ADD_JVM_ARG_IF_OK([-XX:PermSize=32m],boot_jdk_jvmargs_big,[$JAVA]) diff --git a/java-1.8.0-openjdk-size_t.patch b/java-1.8.0-openjdk-size_t.patch index 9ca29a9..6a24ccc 100644 --- a/java-1.8.0-openjdk-size_t.patch +++ b/java-1.8.0-openjdk-size_t.patch @@ -1,7 +1,7 @@ -diff -ruN jdk8/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.cpp jdk8/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.cpp ---- jdk8/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.cpp 2014-07-30 06:51:43.000000000 -0400 -+++ jdk8/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.cpp 2014-09-04 22:47:14.059845388 -0400 -@@ -2686,7 +2686,7 @@ +diff -up jdk8/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.cpp.s390 jdk8/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.cpp +--- jdk8/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.cpp.s390 2014-10-23 18:32:14.000000000 -0400 ++++ jdk8/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.cpp 2015-01-09 15:57:32.423809100 -0500 +@@ -2659,7 +2659,7 @@ void CFLS_LAB::get_from_global_pool(size if (ResizeOldPLAB && CMSOldPLABResizeQuicker) { size_t multiple = _num_blocks[word_sz]/(CMSOldPLABToleranceFactor*CMSOldPLABNumRefills*n_blks); n_blks += CMSOldPLABReactivityFactor*multiple*n_blks; @@ -10,10 +10,10 @@ diff -ruN jdk8/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/compac } assert(n_blks > 0, "Error"); _cfls->par_get_chunk_of_blocks(word_sz, n_blks, fl); -diff -ruN jdk8/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp jdk8/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp ---- jdk8/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp 2014-07-30 06:51:43.000000000 -0400 -+++ jdk8/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp 2014-09-04 22:47:14.061845394 -0400 -@@ -950,7 +950,7 @@ +diff -up jdk8/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp.s390 jdk8/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp +--- jdk8/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp.s390 2014-10-23 18:32:14.000000000 -0400 ++++ jdk8/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp 2015-01-09 15:57:32.423809100 -0500 +@@ -951,7 +951,7 @@ void ConcurrentMarkSweepGeneration::comp if (free_percentage < desired_free_percentage) { size_t desired_capacity = (size_t)(used() / ((double) 1 - desired_free_percentage)); assert(desired_capacity >= capacity(), "invalid expansion size"); @@ -22,7 +22,7 @@ diff -ruN jdk8/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concur if (PrintGCDetails && Verbose) { size_t desired_capacity = (size_t)(used() / ((double) 1 - desired_free_percentage)); gclog_or_tty->print_cr("\nFrom compute_new_size: "); -@@ -6559,7 +6559,7 @@ +@@ -6569,7 +6569,7 @@ void CMSCollector::reset(bool asynch) { HeapWord* curAddr = _markBitMap.startWord(); while (curAddr < _markBitMap.endWord()) { size_t remaining = pointer_delta(_markBitMap.endWord(), curAddr); @@ -31,7 +31,7 @@ diff -ruN jdk8/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concur _markBitMap.clear_large_range(chunk); if (ConcurrentMarkSweepThread::should_yield() && !foregroundGCIsActive() && -@@ -6858,7 +6858,7 @@ +@@ -6868,7 +6868,7 @@ void CMSMarkStack::expand() { return; } // Double capacity if possible @@ -40,10 +40,10 @@ diff -ruN jdk8/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concur // Do not give up existing stack until we have managed to // get the double capacity that we desired. ReservedSpace rs(ReservedSpace::allocation_align_size_up( -diff -ruN jdk8/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.cpp jdk8/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.cpp ---- jdk8/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.cpp 2014-07-30 06:51:43.000000000 -0400 -+++ jdk8/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.cpp 2014-09-04 22:47:14.063845410 -0400 -@@ -3767,7 +3767,7 @@ +diff -up jdk8/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.cpp.s390 jdk8/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.cpp +--- jdk8/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.cpp.s390 2014-10-23 18:32:14.000000000 -0400 ++++ jdk8/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.cpp 2015-01-09 15:57:32.423809100 -0500 +@@ -3891,7 +3891,7 @@ void CMTask::drain_local_queue(bool part // of things to do) or totally (at the very end). size_t target_size; if (partially) { @@ -52,7 +52,7 @@ diff -ruN jdk8/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.cpp jdk8 } else { target_size = 0; } -@@ -4605,7 +4605,7 @@ +@@ -4717,7 +4717,7 @@ size_t G1PrintRegionLivenessInfoClosure: // The > 0 check is to deal with the prev and next live bytes which // could be 0. if (*hum_bytes > 0) { @@ -61,10 +61,10 @@ diff -ruN jdk8/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.cpp jdk8 *hum_bytes -= bytes; } return bytes; -diff -ruN jdk8/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp jdk8/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp ---- jdk8/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp 2014-07-30 06:51:43.000000000 -0400 -+++ jdk8/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp 2014-09-04 22:47:14.065845427 -0400 -@@ -1730,7 +1730,7 @@ +diff -up jdk8/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp.s390 jdk8/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp +--- jdk8/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp.s390 2014-10-23 18:32:14.000000000 -0400 ++++ jdk8/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp 2015-01-09 15:57:32.423809100 -0500 +@@ -1737,7 +1737,7 @@ HeapWord* G1CollectedHeap::expand_and_al verify_region_sets_optional(); @@ -73,34 +73,58 @@ diff -ruN jdk8/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp jdk ergo_verbose1(ErgoHeapSizing, "attempt heap expansion", ergo_format_reason("allocation request failed") -diff -ruN jdk8/hotspot/src/share/vm/gc_implementation/g1/heapRegion.cpp jdk8/hotspot/src/share/vm/gc_implementation/g1/heapRegion.cpp ---- jdk8/hotspot/src/share/vm/gc_implementation/g1/heapRegion.cpp 2014-07-30 06:51:43.000000000 -0400 -+++ jdk8/hotspot/src/share/vm/gc_implementation/g1/heapRegion.cpp 2014-09-04 22:47:14.065845427 -0400 -@@ -160,7 +160,7 @@ +diff -up jdk8/hotspot/src/share/vm/gc_implementation/g1/g1StringDedupQueue.cpp.s390 jdk8/hotspot/src/share/vm/gc_implementation/g1/g1StringDedupQueue.cpp +--- jdk8/hotspot/src/share/vm/gc_implementation/g1/g1StringDedupQueue.cpp.s390 2015-01-09 16:12:23.063809100 -0500 ++++ jdk8/hotspot/src/share/vm/gc_implementation/g1/g1StringDedupQueue.cpp 2015-01-09 16:13:02.213809100 -0500 +@@ -38,7 +38,7 @@ G1StringDedupQueue::G1StringDedupQueue() + _cancel(false), + _empty(true), + _dropped(0) { +- _nqueues = MAX2(ParallelGCThreads, (size_t)1); ++ _nqueues = MAX2(ParallelGCThreads, (uintx)1); + _queues = NEW_C_HEAP_ARRAY(G1StringDedupWorkerQueue, _nqueues, mtGC); + for (size_t i = 0; i < _nqueues; i++) { + new (_queues + i) G1StringDedupWorkerQueue(G1StringDedupWorkerQueue::default_segment_size(), _max_cache_size, _max_size); +diff -up jdk8/hotspot/src/share/vm/gc_implementation/g1/g1StringDedupTable.cpp.s390 jdk8/hotspot/src/share/vm/gc_implementation/g1/g1StringDedupTable.cpp +--- jdk8/hotspot/src/share/vm/gc_implementation/g1/g1StringDedupTable.cpp.s390 2015-01-09 16:13:29.713809100 -0500 ++++ jdk8/hotspot/src/share/vm/gc_implementation/g1/g1StringDedupTable.cpp 2015-01-09 16:13:57.713809100 -0500 +@@ -110,7 +110,7 @@ public: + }; + + G1StringDedupEntryCache::G1StringDedupEntryCache() { +- _nlists = MAX2(ParallelGCThreads, (size_t)1); ++ _nlists = MAX2(ParallelGCThreads, (uintx)1); + _lists = PaddedArray::create_unfreeable((uint)_nlists); + } + +diff -up jdk8/hotspot/src/share/vm/gc_implementation/g1/heapRegion.cpp.s390 jdk8/hotspot/src/share/vm/gc_implementation/g1/heapRegion.cpp +--- jdk8/hotspot/src/share/vm/gc_implementation/g1/heapRegion.cpp.s390 2015-01-09 16:14:57.193809100 -0500 ++++ jdk8/hotspot/src/share/vm/gc_implementation/g1/heapRegion.cpp 2015-01-09 16:15:41.163809100 -0500 +@@ -147,7 +147,7 @@ void HeapRegion::setup_heap_region_size( if (FLAG_IS_DEFAULT(G1HeapRegionSize)) { size_t average_heap_size = (initial_heap_size + max_heap_size) / 2; - region_size = MAX2(average_heap_size / TARGET_REGION_NUMBER, -- (uintx) MIN_REGION_SIZE); -+ (size_t) MIN_REGION_SIZE); + region_size = MAX2(average_heap_size / HeapRegionBounds::target_number(), +- (uintx) HeapRegionBounds::min_size()); ++ HeapRegionBounds::min_size()); } int region_size_log = log2_long((jlong) region_size); -diff -ruN jdk8/hotspot/src/share/vm/gc_implementation/parallelScavenge/parMarkBitMap.cpp jdk8/hotspot/src/share/vm/gc_implementation/parallelScavenge/parMarkBitMap.cpp ---- jdk8/hotspot/src/share/vm/gc_implementation/parallelScavenge/parMarkBitMap.cpp 2014-07-30 06:51:43.000000000 -0400 -+++ jdk8/hotspot/src/share/vm/gc_implementation/parallelScavenge/parMarkBitMap.cpp 2014-09-04 22:47:14.067845443 -0400 -@@ -71,7 +71,7 @@ - if (_virtual_space != NULL && _virtual_space->expand_by(_reserved_byte_size)) { - _region_start = covered_region.start(); - _region_size = covered_region.word_size(); -- idx_t* map = (idx_t*)_virtual_space->reserved_low_addr(); -+ BitMap::bm_word_t* map = (BitMap::bm_word_t*)_virtual_space->reserved_low_addr(); - _beg_bits.set_map(map); - _beg_bits.set_size(bits / 2); - _end_bits.set_map(map + words / 2); -diff -ruN jdk8/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp jdk8/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp ---- jdk8/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp 2014-07-30 06:51:43.000000000 -0400 -+++ jdk8/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp 2014-09-04 22:47:14.068845451 -0400 -@@ -910,8 +910,8 @@ +diff -up jdk8/hotspot/src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp.s390 jdk8/hotspot/src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp +--- jdk8/hotspot/src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp.s390 2014-10-23 18:32:14.000000000 -0400 ++++ jdk8/hotspot/src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp 2015-01-09 16:16:27.533809100 -0500 +@@ -833,7 +833,7 @@ OtherRegionsTable::do_cleanup_work(HRRSC + // This can be done by either mutator threads together with the + // concurrent refinement threads or GC threads. + uint HeapRegionRemSet::num_par_rem_sets() { +- return MAX2(DirtyCardQueueSet::num_par_ids() + ConcurrentG1Refine::thread_num(), (uint)ParallelGCThreads); ++ return MAX2(DirtyCardQueueSet::num_par_ids() + ConcurrentG1Refine::thread_num(), ParallelGCThreads); + } + + HeapRegionRemSet::HeapRegionRemSet(G1BlockOffsetSharedArray* bosa, +diff -up jdk8/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp.s390 jdk8/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp +--- jdk8/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp.s390 2014-10-23 18:32:14.000000000 -0400 ++++ jdk8/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp 2015-01-09 15:57:32.423809100 -0500 +@@ -910,8 +910,8 @@ void PSParallelCompact::initialize_space void PSParallelCompact::initialize_dead_wood_limiter() { const size_t max = 100; @@ -111,10 +135,10 @@ diff -ruN jdk8/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParalle _dwl_first_term = 1.0 / (sqrt(2.0 * M_PI) * _dwl_std_dev); DEBUG_ONLY(_dwl_initialized = true;) _dwl_adjustment = normal_distribution(1.0); -diff -ruN jdk8/hotspot/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp jdk8/hotspot/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp ---- jdk8/hotspot/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp 2014-07-30 06:51:43.000000000 -0400 -+++ jdk8/hotspot/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp 2014-09-04 22:47:14.068845451 -0400 -@@ -194,7 +194,7 @@ +diff -up jdk8/hotspot/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp.s390 jdk8/hotspot/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp +--- jdk8/hotspot/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp.s390 2014-10-23 18:32:14.000000000 -0400 ++++ jdk8/hotspot/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp 2015-01-09 15:57:32.423809100 -0500 +@@ -194,7 +194,7 @@ bool ParScanThreadState::take_from_overf const size_t num_overflow_elems = of_stack->size(); const size_t space_available = queue->max_elems() - queue->size(); const size_t num_take_elems = MIN3(space_available / 4, @@ -123,10 +147,10 @@ diff -ruN jdk8/hotspot/src/share/vm/gc_implementation/parNew/parNewGeneration.cp num_overflow_elems); // Transfer the most recent num_take_elems from the overflow // stack to our work queue. -diff -ruN jdk8/hotspot/src/share/vm/memory/collectorPolicy.cpp jdk8/hotspot/src/share/vm/memory/collectorPolicy.cpp ---- jdk8/hotspot/src/share/vm/memory/collectorPolicy.cpp 2014-07-30 06:51:43.000000000 -0400 -+++ jdk8/hotspot/src/share/vm/memory/collectorPolicy.cpp 2014-09-04 22:55:49.271922585 -0400 -@@ -389,7 +389,7 @@ +diff -up jdk8/hotspot/src/share/vm/memory/collectorPolicy.cpp.s390 jdk8/hotspot/src/share/vm/memory/collectorPolicy.cpp +--- jdk8/hotspot/src/share/vm/memory/collectorPolicy.cpp.s390 2014-10-23 18:32:14.000000000 -0400 ++++ jdk8/hotspot/src/share/vm/memory/collectorPolicy.cpp 2015-01-09 16:05:36.093809100 -0500 +@@ -389,7 +389,7 @@ void TwoGenerationCollectorPolicy::initi uintx calculated_size = NewSize + OldSize; double shrink_factor = (double) MaxHeapSize / calculated_size; uintx smaller_new_size = align_size_down((uintx)(NewSize * shrink_factor), _gen_alignment); @@ -135,7 +159,7 @@ diff -ruN jdk8/hotspot/src/share/vm/memory/collectorPolicy.cpp jdk8/hotspot/src/ _initial_gen0_size = NewSize; // OldSize is already aligned because above we aligned MaxHeapSize to -@@ -437,7 +437,7 @@ +@@ -437,7 +437,7 @@ void GenCollectorPolicy::initialize_size // yield a size that is too small) and bound it by MaxNewSize above. // Ergonomics plays here by previously calculating the desired // NewSize and MaxNewSize. @@ -144,7 +168,7 @@ diff -ruN jdk8/hotspot/src/share/vm/memory/collectorPolicy.cpp jdk8/hotspot/src/ } assert(max_new_size > 0, "All paths should set max_new_size"); -@@ -459,23 +459,23 @@ +@@ -459,24 +459,23 @@ void GenCollectorPolicy::initialize_size // lower limit. _min_gen0_size = NewSize; desired_new_size = NewSize; @@ -169,11 +193,12 @@ diff -ruN jdk8/hotspot/src/share/vm/memory/collectorPolicy.cpp jdk8/hotspot/src/ + _min_gen0_size = MAX2(scale_by_NewRatio_aligned(_min_heap_byte_size), (size_t)NewSize); desired_new_size = - MAX2(scale_by_NewRatio_aligned(_initial_heap_byte_size), NewSize); -+ MAX2(scale_by_NewRatio_aligned(_initial_heap_byte_size), (size_t)NewSize); - } +- } ++ MAX2(scale_by_NewRatio_aligned(_initial_heap_byte_size), (size_t)NewSize); } assert(_min_gen0_size > 0, "Sanity check"); -@@ -577,7 +577,7 @@ + _initial_gen0_size = desired_new_size; +@@ -577,7 +576,7 @@ void TwoGenerationCollectorPolicy::initi } else { // It's been explicitly set on the command line. Use the // OldSize and then determine the consequences. @@ -182,10 +207,10 @@ diff -ruN jdk8/hotspot/src/share/vm/memory/collectorPolicy.cpp jdk8/hotspot/src/ _initial_gen1_size = OldSize; // If the user has explicitly set an OldSize that is inconsistent -diff -ruN jdk8/hotspot/src/share/vm/memory/metaspace.cpp jdk8/hotspot/src/share/vm/memory/metaspace.cpp ---- jdk8/hotspot/src/share/vm/memory/metaspace.cpp 2014-07-30 06:51:43.000000000 -0400 -+++ jdk8/hotspot/src/share/vm/memory/metaspace.cpp 2014-09-04 22:47:14.071845475 -0400 -@@ -1431,7 +1431,7 @@ +diff -up jdk8/hotspot/src/share/vm/memory/metaspace.cpp.s390 jdk8/hotspot/src/share/vm/memory/metaspace.cpp +--- jdk8/hotspot/src/share/vm/memory/metaspace.cpp.s390 2014-10-23 18:32:14.000000000 -0400 ++++ jdk8/hotspot/src/share/vm/memory/metaspace.cpp 2015-01-09 16:18:54.233809100 -0500 +@@ -1455,7 +1455,7 @@ void MetaspaceGC::initialize() { void MetaspaceGC::post_initialize() { // Reset the high-water mark once the VM initialization is done. @@ -194,7 +219,7 @@ diff -ruN jdk8/hotspot/src/share/vm/memory/metaspace.cpp jdk8/hotspot/src/share/ } bool MetaspaceGC::can_expand(size_t word_size, bool is_class) { -@@ -1491,7 +1491,7 @@ +@@ -1515,7 +1515,7 @@ void MetaspaceGC::compute_new_size() { (size_t)MIN2(min_tmp, double(max_uintx)); // Don't shrink less than the initial generation size minimum_desired_capacity = MAX2(minimum_desired_capacity, @@ -203,7 +228,7 @@ diff -ruN jdk8/hotspot/src/share/vm/memory/metaspace.cpp jdk8/hotspot/src/share/ if (PrintGCDetails && Verbose) { gclog_or_tty->print_cr("\nMetaspaceGC::compute_new_size: "); -@@ -1546,7 +1546,7 @@ +@@ -1573,7 +1573,7 @@ void MetaspaceGC::compute_new_size() { const double max_tmp = used_after_gc / minimum_used_percentage; size_t maximum_desired_capacity = (size_t)MIN2(max_tmp, double(max_uintx)); maximum_desired_capacity = MAX2(maximum_desired_capacity, @@ -212,7 +237,7 @@ diff -ruN jdk8/hotspot/src/share/vm/memory/metaspace.cpp jdk8/hotspot/src/share/ if (PrintGCDetails && Verbose) { gclog_or_tty->print_cr(" " " maximum_free_percentage: %6.2f" -@@ -3197,7 +3197,7 @@ +@@ -3235,7 +3235,7 @@ void Metaspace::global_initialize() { // on the medium chunk list. The next chunk will be small and progress // from there. This size calculated by -version. _first_class_chunk_word_size = MIN2((size_t)MediumChunk*6, @@ -221,10 +246,22 @@ diff -ruN jdk8/hotspot/src/share/vm/memory/metaspace.cpp jdk8/hotspot/src/share/ _first_class_chunk_word_size = align_word_size_up(_first_class_chunk_word_size); // Arbitrarily set the initial virtual space to a multiple // of the boot class loader size. -diff -ruN jdk8/hotspot/src/share/vm/oops/objArrayKlass.inline.hpp jdk8/hotspot/src/share/vm/oops/objArrayKlass.inline.hpp ---- jdk8/hotspot/src/share/vm/oops/objArrayKlass.inline.hpp 2014-07-30 06:51:43.000000000 -0400 -+++ jdk8/hotspot/src/share/vm/oops/objArrayKlass.inline.hpp 2014-09-04 22:47:14.071845475 -0400 -@@ -48,7 +48,7 @@ +diff -up jdk8/hotspot/src/share/vm/memory/threadLocalAllocBuffer.cpp.s390 jdk8/hotspot/src/share/vm/memory/threadLocalAllocBuffer.cpp +--- jdk8/hotspot/src/share/vm/memory/threadLocalAllocBuffer.cpp.s390 2014-10-23 18:32:14.000000000 -0400 ++++ jdk8/hotspot/src/share/vm/memory/threadLocalAllocBuffer.cpp 2015-01-09 15:57:32.423809100 -0500 +@@ -238,7 +238,7 @@ size_t ThreadLocalAllocBuffer::initial_d + size_t init_sz; + + if (TLABSize > 0) { +- init_sz = MIN2(TLABSize / HeapWordSize, max_size()); ++ init_sz = MIN2((size_t)(TLABSize / HeapWordSize), max_size()); + } else if (global_stats() == NULL) { + // Startup issue - main thread initialized before heap initialized. + init_sz = min_size(); +diff -up jdk8/hotspot/src/share/vm/oops/objArrayKlass.inline.hpp.s390 jdk8/hotspot/src/share/vm/oops/objArrayKlass.inline.hpp +--- jdk8/hotspot/src/share/vm/oops/objArrayKlass.inline.hpp.s390 2014-10-23 18:32:14.000000000 -0400 ++++ jdk8/hotspot/src/share/vm/oops/objArrayKlass.inline.hpp 2015-01-09 15:57:32.423809100 -0500 +@@ -48,7 +48,7 @@ void ObjArrayKlass::objarray_follow_cont const size_t beg_index = size_t(index); assert(beg_index < len || len == 0, "index too large"); @@ -233,7 +270,7 @@ diff -ruN jdk8/hotspot/src/share/vm/oops/objArrayKlass.inline.hpp jdk8/hotspot/s const size_t end_index = beg_index + stride; T* const base = (T*)a->base(); T* const beg = base + beg_index; -@@ -82,7 +82,7 @@ +@@ -82,7 +82,7 @@ void ObjArrayKlass::objarray_follow_cont const size_t beg_index = size_t(index); assert(beg_index < len || len == 0, "index too large"); @@ -242,10 +279,10 @@ diff -ruN jdk8/hotspot/src/share/vm/oops/objArrayKlass.inline.hpp jdk8/hotspot/s const size_t end_index = beg_index + stride; T* const base = (T*)a->base(); T* const beg = base + beg_index; -diff -ruN jdk8/hotspot/src/share/vm/runtime/arguments.cpp jdk8/hotspot/src/share/vm/runtime/arguments.cpp ---- jdk8/hotspot/src/share/vm/runtime/arguments.cpp 2014-07-30 06:51:43.000000000 -0400 -+++ jdk8/hotspot/src/share/vm/runtime/arguments.cpp 2014-09-04 22:47:14.072845483 -0400 -@@ -1244,7 +1244,7 @@ +diff -up jdk8/hotspot/src/share/vm/runtime/arguments.cpp.s390 jdk8/hotspot/src/share/vm/runtime/arguments.cpp +--- jdk8/hotspot/src/share/vm/runtime/arguments.cpp.s390 2014-10-23 18:32:14.000000000 -0400 ++++ jdk8/hotspot/src/share/vm/runtime/arguments.cpp 2015-01-09 15:57:32.423809100 -0500 +@@ -1250,7 +1250,7 @@ void Arguments::set_cms_and_parnew_gc_fl // NewSize was set on the command line and it is larger than // preferred_max_new_size. if (!FLAG_IS_DEFAULT(NewSize)) { // NewSize explicitly set at command-line @@ -254,7 +291,7 @@ diff -ruN jdk8/hotspot/src/share/vm/runtime/arguments.cpp jdk8/hotspot/src/share } else { FLAG_SET_ERGO(uintx, MaxNewSize, preferred_max_new_size); } -@@ -1269,8 +1269,8 @@ +@@ -1275,8 +1275,8 @@ void Arguments::set_cms_and_parnew_gc_fl // Unless explicitly requested otherwise, make young gen // at least min_new, and at most preferred_max_new_size. if (FLAG_IS_DEFAULT(NewSize)) { @@ -265,7 +302,7 @@ diff -ruN jdk8/hotspot/src/share/vm/runtime/arguments.cpp jdk8/hotspot/src/share if (PrintGCDetails && Verbose) { // Too early to use gclog_or_tty tty->print_cr("CMS ergo set NewSize: " SIZE_FORMAT, NewSize); -@@ -1280,7 +1280,7 @@ +@@ -1286,7 +1286,7 @@ void Arguments::set_cms_and_parnew_gc_fl // so it's NewRatio x of NewSize. if (FLAG_IS_DEFAULT(OldSize)) { if (max_heap > NewSize) { @@ -274,34 +311,3 @@ diff -ruN jdk8/hotspot/src/share/vm/runtime/arguments.cpp jdk8/hotspot/src/share if (PrintGCDetails && Verbose) { // Too early to use gclog_or_tty tty->print_cr("CMS ergo set OldSize: " SIZE_FORMAT, OldSize); -@@ -1401,7 +1401,7 @@ - return true; - } - --uintx Arguments::max_heap_for_compressed_oops() { -+size_t Arguments::max_heap_for_compressed_oops() { - // Avoid sign flip. - assert(OopEncodingHeapMax > (uint64_t)os::vm_page_size(), "Unusual page size"); - // We need to fit both the NULL page and the heap into the memory budget, while ---- jdk8/hotspot/src/share/vm/gc_implementation/g1/g1StringDedupQueue.cpp 2014-06-12 03:58:35.000000000 -0400 -+++ jdk8/hotspot/src/share/vm/gc_implementation/g1/g1StringDedupQueue.cpp 2014-06-12 03:58:35.000000000 -0400 -@@ -38,7 +38,7 @@ - _cancel(false), - _empty(true), - _dropped(0) { -- _nqueues = MAX2(ParallelGCThreads, (size_t)1); -+ _nqueues = MAX2(ParallelGCThreads, (uintx)1); - _queues = NEW_C_HEAP_ARRAY(G1StringDedupWorkerQueue, _nqueues, mtGC); - for (size_t i = 0; i < _nqueues; i++) { - new (_queues + i) G1StringDedupWorkerQueue(G1StringDedupWorkerQueue::default_segment_size(), _max_cache_size, _max_size); ---- jdk8/hotspot/src/share/vm/gc_implementation/g1/g1StringDedupTable.cpp 2014-06-12 03:58:35.000000000 -0400 -+++ jdk8/hotspot/src/share/vm/gc_implementation/g1/g1StringDedupTable.cpp 2014-06-12 03:58:35.000000000 -0400 -@@ -110,7 +110,7 @@ - }; - - G1StringDedupEntryCache::G1StringDedupEntryCache() { -- _nlists = MAX2(ParallelGCThreads, (size_t)1); -+ _nlists = MAX2(ParallelGCThreads, (uintx)1); - _lists = PaddedArray::create_unfreeable((uint)_nlists); - } - diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec index 0a25fe4..0c06e47 100644 --- a/java-1.8.0-openjdk.spec +++ b/java-1.8.0-openjdk.spec @@ -1,5 +1,43 @@ -# If debug is 1, OpenJDK is built with all debug info present. -%global debug 0 +# note, parametrised macros are order-senisitve (unlike not-parametrized) even with normal macros +# also necessary when passing it as parameter other macros. If not macro, then it is considered as switch +%global debug_suffix_unquoted -debug +# quoted one for shell operations +%global debug_suffix "%{debug_suffix_unquoted}" +%global normal_suffix "" + +#if you wont only debug build, but providing java, build only normal build, but set normalbuild_parameter +%global debugbuild_parameter slowdebug +%global normalbuild_parameter release +%global debug_warning This package have full debug on. Install only in need, and remove asap. +%global debug_on with full debug on +%global for_debug for packages with debug on + +# by default we build normal build always. +%global include_normal_build 1 +%if %{include_normal_build} +%global build_loop1 %{normal_suffix} +%else +%global build_loop1 %{nil} +%endif + +# by default we build debug build during main build only on intel arches +%ifarch %{ix86} x86_64 +%global include_debug_build 1 +%else +%global include_debug_build 0 +%endif + +%if %{include_debug_build} +%global build_loop2 %{debug_suffix} +%else +%global build_loop2 %{nil} +%endif + +# if you disable both builds, then build fails +%global build_loop %{build_loop1} %{build_loop2} +# note, that order normal_suffix debug_suffix, in case of both enabled, +# is expected in one single case at the end of build + %global aarch64 aarch64 arm64 armv8 # sometimes we need to distinguish big and little endian PPC64 @@ -14,7 +52,7 @@ # Always set this so the nss.cfg file is not broken %global NSS_LIBDIR %(pkg-config --variable=libdir nss) -#fix for https://bugzilla.redhat.com/show_bug.cgi?id=1111349 +# fix for https://bugzilla.redhat.com/show_bug.cgi?id=1111349 %global _privatelibs libmawt[.]so.* %global __provides_exclude ^(%{_privatelibs})$ %global __requires_exclude ^(%{_privatelibs})$ @@ -58,13 +96,7 @@ %global archinstall %{_arch} %endif -%if %{debug} -%global debugbuild slowdebug -%else -%global debugbuild release -%endif -%global buildoutputdir jdk8/build/jdk8.build %ifarch %{jit_arches} %global with_systemtap 1 @@ -81,29 +113,34 @@ # Standard JPackage naming and versioning defines. %global origin openjdk -%global updatever 31 -%global buildver b13 +%global updatever 40 +%global buildver b25 %global aarch64_updatever 40 %global aarch64_buildver b12 -%global aarch64_changesetid aarch64-hs3135441ed942 +%global aarch64_changesetid aarch64-1263 # priority must be 7 digits in total %global priority 18000%{updatever} %global javaver 1.8.0 -# Standard JPackage directories and symbolic links. -%global sdkdir %{uniquesuffix} -%global jrelnk jre-%{javaver}-%{origin}-%{version}-%{release}.%{_arch} - -%global jredir %{sdkdir}/jre -%global sdkbindir %{_jvmdir}/%{sdkdir}/bin -%global jrebindir %{_jvmdir}/%{jredir}/bin -%global jvmjardir %{_jvmjardir}/%{uniquesuffix} - +# parametrized macros are order-sensitive %global fullversion %{name}-%{version}-%{release} - -%global uniquesuffix %{fullversion}.%{_arch} +#images stub +%global j2sdkimage j2sdk-image +# output dir stub +%global buildoutputdir() %{expand:jdk8/build/jdk8.build%1} #we can copy the javadoc to not arched dir, or made it not noarch -%global uniquejavadocdir %{fullversion} +%global uniquejavadocdir() %{expand:%{fullversion}%1} +#main id and dir of this jdk +%global uniquesuffix() %{expand:%{fullversion}.%{_arch}%1} + +# Standard JPackage directories and symbolic links. +%global sdkdir() %{expand:%{uniquesuffix %%1}} +%global jrelnk() %{expand:jre-%{javaver}-%{origin}-%{version}-%{release}.%{_arch}%1} + +%global jredir() %{expand:%{sdkdir %%1}/jre} +%global sdkbindir() %{expand:%{_jvmdir}/%{sdkdir %%1}/bin} +%global jrebindir() %{expand:%{_jvmdir}/%{jredir %%1}/bin} +%global jvmjardir() %{expand:%{_jvmjardir}/%{uniquesuffix %%1}} %if %{with_systemtap} # Where to install systemtap tapset (links) @@ -118,12 +155,489 @@ %global tapsetdir %{tapsetroot}/tapset/%{_build_cpu} %endif +# not-duplicated scriplets for normal/debug packages +%global update_desktop_icons /usr/bin/gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : + +%global post_script() %{expand: +update-desktop-database %{_datadir}/applications &> /dev/null || : +/bin/touch --no-create %{_datadir}/icons/hicolor &>/dev/null || : +exit 0 +} + + +%global post_headless() %{expand: +# FIXME: identical binaries are copied, not linked. This needs to be +# fixed upstream. +%ifarch %{jit_arches} +%ifnarch %{ppc64le} +#see https://bugzilla.redhat.com/show_bug.cgi?id=513605 +%{jrebindir %%1}/java -Xshare:dump >/dev/null 2>/dev/null +%endif +%endif + +ext=.gz +alternatives \\ + --install %{_bindir}/java java %{jrebindir %%1}/java %{priority} \\ + --slave %{_jvmdir}/jre jre %{_jvmdir}/%{jredir %%1} \\ + --slave %{_jvmjardir}/jre jre_exports %{_jvmjardir}/%{jrelnk %%1} \\ + --slave %{_bindir}/jjs jjs %{jrebindir %%1}/jjs \\ + --slave %{_bindir}/keytool keytool %{jrebindir %%1}/keytool \\ + --slave %{_bindir}/orbd orbd %{jrebindir %%1}/orbd \\ + --slave %{_bindir}/pack200 pack200 %{jrebindir %%1}/pack200 \\ + --slave %{_bindir}/rmid rmid %{jrebindir %%1}/rmid \\ + --slave %{_bindir}/rmiregistry rmiregistry %{jrebindir %%1}/rmiregistry \\ + --slave %{_bindir}/servertool servertool %{jrebindir %%1}/servertool \\ + --slave %{_bindir}/tnameserv tnameserv %{jrebindir %%1}/tnameserv \\ + --slave %{_bindir}/unpack200 unpack200 %{jrebindir %%1}/unpack200 \\ + --slave %{_mandir}/man1/java.1$ext java.1$ext \\ + %{_mandir}/man1/java-%{uniquesuffix %%1}.1$ext \\ + --slave %{_mandir}/man1/jjs.1$ext jjs.1$ext \\ + %{_mandir}/man1/jjs-%{uniquesuffix %%1}.1$ext \\ + --slave %{_bindir}/policytool policytool %{jrebindir %%1}/policytool \\ + --slave %{_mandir}/man1/keytool.1$ext keytool.1$ext \\ + %{_mandir}/man1/keytool-%{uniquesuffix %%1}.1$ext \\ + --slave %{_mandir}/man1/orbd.1$ext orbd.1$ext \\ + %{_mandir}/man1/orbd-%{uniquesuffix %%1}.1$ext \\ + --slave %{_mandir}/man1/pack200.1$ext pack200.1$ext \\ + %{_mandir}/man1/pack200-%{uniquesuffix %%1}.1$ext \\ + --slave %{_mandir}/man1/rmid.1$ext rmid.1$ext \\ + %{_mandir}/man1/rmid-%{uniquesuffix %%1}.1$ext \\ + --slave %{_mandir}/man1/rmiregistry.1$ext rmiregistry.1$ext \\ + %{_mandir}/man1/rmiregistry-%{uniquesuffix %%1}.1$ext \\ + --slave %{_mandir}/man1/servertool.1$ext servertool.1$ext \\ + %{_mandir}/man1/servertool-%{uniquesuffix %%1}.1$ext \\ + --slave %{_mandir}/man1/tnameserv.1$ext tnameserv.1$ext \\ + %{_mandir}/man1/tnameserv-%{uniquesuffix %%1}.1$ext \\ + --slave %{_mandir}/man1/unpack200.1$ext unpack200.1$ext \\ + %{_mandir}/man1/unpack200-%{uniquesuffix %%1}.1$ext + +for X in %{origin} %{javaver} ; do + alternatives \\ + --install %{_jvmdir}/jre-"$X" \\ + jre_"$X" %{_jvmdir}/%{jredir %%1} %{priority} \\ + --slave %{_jvmjardir}/jre-"$X" \\ + jre_"$X"_exports %{_jvmdir}/%{jredir %%1} +done + +update-alternatives --install %{_jvmdir}/jre-%{javaver}-%{origin} jre_%{javaver}_%{origin} %{_jvmdir}/%{jrelnk %%1} %{priority} \\ +--slave %{_jvmjardir}/jre-%{javaver} jre_%{javaver}_%{origin}_exports %{jvmjardir %%1} + +update-desktop-database %{_datadir}/applications &> /dev/null || : +/bin/touch --no-create %{_datadir}/icons/hicolor &>/dev/null || : +exit 0 +} + +%global postun_script() %{expand: +update-desktop-database %{_datadir}/applications &> /dev/null || : +if [ $1 -eq 0 ] ; then + /bin/touch --no-create %{_datadir}/icons/hicolor &>/dev/null + %{update_desktop_icons} +fi +exit 0 +} + + +%global postun_headless() %{expand: + alternatives --remove java %{jrebindir %%1}/java + alternatives --remove jre_%{origin} %{_jvmdir}/%{jredir %%1} + alternatives --remove jre_%{javaver} %{_jvmdir}/%{jredir %%1} + alternatives --remove jre_%{javaver}_%{origin} %{_jvmdir}/%{jrelnk %%1} +} + +%global posttrans_script() %{expand: +%{update_desktop_icons} +} + +%global post_devel() %{expand: +ext=.gz +alternatives \\ + --install %{_bindir}/javac javac %{sdkbindir %%1}/javac %{priority} \\ + --slave %{_jvmdir}/java java_sdk %{_jvmdir}/%{sdkdir %%1} \\ + --slave %{_jvmjardir}/java java_sdk_exports %{_jvmjardir}/%{sdkdir %%1} \\ + --slave %{_bindir}/appletviewer appletviewer %{sdkbindir %%1}/appletviewer \\ + --slave %{_bindir}/extcheck extcheck %{sdkbindir %%1}/extcheck \\ + --slave %{_bindir}/idlj idlj %{sdkbindir %%1}/idlj \\ + --slave %{_bindir}/jar jar %{sdkbindir %%1}/jar \\ + --slave %{_bindir}/jarsigner jarsigner %{sdkbindir %%1}/jarsigner \\ + --slave %{_bindir}/javadoc javadoc %{sdkbindir %%1}/javadoc \\ + --slave %{_bindir}/javah javah %{sdkbindir %%1}/javah \\ + --slave %{_bindir}/javap javap %{sdkbindir %%1}/javap \\ + --slave %{_bindir}/jcmd jcmd %{sdkbindir %%1}/jcmd \\ + --slave %{_bindir}/jconsole jconsole %{sdkbindir %%1}/jconsole \\ + --slave %{_bindir}/jdb jdb %{sdkbindir %%1}/jdb \\ + --slave %{_bindir}/jdeps jdeps %{sdkbindir %%1}/jdeps \\ + --slave %{_bindir}/jhat jhat %{sdkbindir %%1}/jhat \\ + --slave %{_bindir}/jinfo jinfo %{sdkbindir %%1}/jinfo \\ + --slave %{_bindir}/jmap jmap %{sdkbindir %%1}/jmap \\ + --slave %{_bindir}/jps jps %{sdkbindir %%1}/jps \\ + --slave %{_bindir}/jrunscript jrunscript %{sdkbindir %%1}/jrunscript \\ + --slave %{_bindir}/jsadebugd jsadebugd %{sdkbindir %%1}/jsadebugd \\ + --slave %{_bindir}/jstack jstack %{sdkbindir %%1}/jstack \\ + --slave %{_bindir}/jstat jstat %{sdkbindir %%1}/jstat \\ + --slave %{_bindir}/jstatd jstatd %{sdkbindir %%1}/jstatd \\ + --slave %{_bindir}/native2ascii native2ascii %{sdkbindir %%1}/native2ascii \\ + --slave %{_bindir}/rmic rmic %{sdkbindir %%1}/rmic \\ + --slave %{_bindir}/schemagen schemagen %{sdkbindir %%1}/schemagen \\ + --slave %{_bindir}/serialver serialver %{sdkbindir %%1}/serialver \\ + --slave %{_bindir}/wsgen wsgen %{sdkbindir %%1}/wsgen \\ + --slave %{_bindir}/wsimport wsimport %{sdkbindir %%1}/wsimport \\ + --slave %{_bindir}/xjc xjc %{sdkbindir %%1}/xjc \\ + --slave %{_mandir}/man1/appletviewer.1$ext appletviewer.1$ext \\ + %{_mandir}/man1/appletviewer-%{uniquesuffix %%1}.1$ext \\ + --slave %{_mandir}/man1/extcheck.1$ext extcheck.1$ext \\ + %{_mandir}/man1/extcheck-%{uniquesuffix %%1}.1$ext \\ + --slave %{_mandir}/man1/idlj.1$ext idlj.1$ext \\ + %{_mandir}/man1/idlj-%{uniquesuffix %%1}.1$ext \\ + --slave %{_mandir}/man1/jar.1$ext jar.1$ext \\ + %{_mandir}/man1/jar-%{uniquesuffix %%1}.1$ext \\ + --slave %{_mandir}/man1/jarsigner.1$ext jarsigner.1$ext \\ + %{_mandir}/man1/jarsigner-%{uniquesuffix %%1}.1$ext \\ + --slave %{_mandir}/man1/javac.1$ext javac.1$ext \\ + %{_mandir}/man1/javac-%{uniquesuffix %%1}.1$ext \\ + --slave %{_mandir}/man1/javadoc.1$ext javadoc.1$ext \\ + %{_mandir}/man1/javadoc-%{uniquesuffix %%1}.1$ext \\ + --slave %{_mandir}/man1/javah.1$ext javah.1$ext \\ + %{_mandir}/man1/javah-%{uniquesuffix %%1}.1$ext \\ + --slave %{_mandir}/man1/javap.1$ext javap.1$ext \\ + %{_mandir}/man1/javap-%{uniquesuffix %%1}.1$ext \\ + --slave %{_mandir}/man1/jcmd.1$ext jcmd.1$ext \\ + %{_mandir}/man1/jcmd-%{uniquesuffix %%1}.1$ext \\ + --slave %{_mandir}/man1/jconsole.1$ext jconsole.1$ext \\ + %{_mandir}/man1/jconsole-%{uniquesuffix %%1}.1$ext \\ + --slave %{_mandir}/man1/jdb.1$ext jdb.1$ext \\ + %{_mandir}/man1/jdb-%{uniquesuffix %%1}.1$ext \\ + --slave %{_mandir}/man1/jdeps.1$ext jdeps.1$ext \\ + %{_mandir}/man1/jdeps-%{uniquesuffix %%1}.1$ext \\ + --slave %{_mandir}/man1/jhat.1$ext jhat.1$ext \\ + %{_mandir}/man1/jhat-%{uniquesuffix %%1}.1$ext \\ + --slave %{_mandir}/man1/jinfo.1$ext jinfo.1$ext \\ + %{_mandir}/man1/jinfo-%{uniquesuffix %%1}.1$ext \\ + --slave %{_mandir}/man1/jmap.1$ext jmap.1$ext \\ + %{_mandir}/man1/jmap-%{uniquesuffix %%1}.1$ext \\ + --slave %{_mandir}/man1/jps.1$ext jps.1$ext \\ + %{_mandir}/man1/jps-%{uniquesuffix %%1}.1$ext \\ + --slave %{_mandir}/man1/jrunscript.1$ext jrunscript.1$ext \\ + %{_mandir}/man1/jrunscript-%{uniquesuffix %%1}.1$ext \\ + --slave %{_mandir}/man1/jsadebugd.1$ext jsadebugd.1$ext \\ + %{_mandir}/man1/jsadebugd-%{uniquesuffix %%1}.1$ext \\ + --slave %{_mandir}/man1/jstack.1$ext jstack.1$ext \\ + %{_mandir}/man1/jstack-%{uniquesuffix %%1}.1$ext \\ + --slave %{_mandir}/man1/jstat.1$ext jstat.1$ext \\ + %{_mandir}/man1/jstat-%{uniquesuffix %%1}.1$ext \\ + --slave %{_mandir}/man1/jstatd.1$ext jstatd.1$ext \\ + %{_mandir}/man1/jstatd-%{uniquesuffix %%1}.1$ext \\ + --slave %{_mandir}/man1/native2ascii.1$ext native2ascii.1$ext \\ + %{_mandir}/man1/native2ascii-%{uniquesuffix %%1}.1$ext \\ + --slave %{_mandir}/man1/policytool.1$ext policytool.1$ext \\ + %{_mandir}/man1/policytool-%{uniquesuffix %%1}.1$ext \\ + --slave %{_mandir}/man1/rmic.1$ext rmic.1$ext \\ + %{_mandir}/man1/rmic-%{uniquesuffix %%1}.1$ext \\ + --slave %{_mandir}/man1/schemagen.1$ext schemagen.1$ext \\ + %{_mandir}/man1/schemagen-%{uniquesuffix %%1}.1$ext \\ + --slave %{_mandir}/man1/serialver.1$ext serialver.1$ext \\ + %{_mandir}/man1/serialver-%{uniquesuffix %%1}.1$ext \\ + --slave %{_mandir}/man1/wsgen.1$ext wsgen.1$ext \\ + %{_mandir}/man1/wsgen-%{uniquesuffix %%1}.1$ext \\ + --slave %{_mandir}/man1/wsimport.1$ext wsimport.1$ext \\ + %{_mandir}/man1/wsimport-%{uniquesuffix %%1}.1$ext \\ + --slave %{_mandir}/man1/xjc.1$ext xjc.1$ext \\ + %{_mandir}/man1/xjc-%{uniquesuffix %%1}.1$ext + +for X in %{origin} %{javaver} ; do + alternatives \\ + --install %{_jvmdir}/java-"$X" \\ + java_sdk_"$X" %{_jvmdir}/%{sdkdir %%1} %{priority} \\ + --slave %{_jvmjardir}/java-"$X" \\ + java_sdk_"$X"_exports %{_jvmjardir}/%{sdkdir %%1} +done + +update-alternatives --install %{_jvmdir}/java-%{javaver}-%{origin} java_sdk_%{javaver}_%{origin} %{_jvmdir}/%{sdkdir %%1} %{priority} \\ +--slave %{_jvmjardir}/java-%{javaver}-%{origin} java_sdk_%{javaver}_%{origin}_exports %{_jvmjardir}/%{sdkdir %%1} + +update-desktop-database %{_datadir}/applications &> /dev/null || : +/bin/touch --no-create %{_datadir}/icons/hicolor &>/dev/null || : + +exit 0 +} + +%global postun_devel() %{expand: + alternatives --remove javac %{sdkbindir %%1}/javac + alternatives --remove java_sdk_%{origin} %{_jvmdir}/%{sdkdir %%1} + alternatives --remove java_sdk_%{javaver} %{_jvmdir}/%{sdkdir %%1} + alternatives --remove java_sdk_%{javaver}_%{origin} %{_jvmdir}/%{sdkdir %%1} + +update-desktop-database %{_datadir}/applications &> /dev/null || : + +if [ $1 -eq 0 ] ; then + /bin/touch --no-create %{_datadir}/icons/hicolor &>/dev/null + %{update_desktop_icons} +fi +exit 0 +} + +%global posttrans_devel() %{expand: +%{update_desktop_icons} +} + +%global post_javadoc() %{expand: +alternatives \\ + --install %{_javadocdir}/java javadocdir %{_javadocdir}/%{uniquejavadocdir %%1}/api \\ + %{priority} +exit 0 +} + +%global postun_javadoc() %{expand: + alternatives --remove javadocdir %{_javadocdir}/%{uniquejavadocdir %%1}/api +exit 0 +} + +%global files_jre() %{expand: +%{_datadir}/icons/hicolor/*x*/apps/java-%{javaver}.png +%{_datadir}/applications/*policytool%1.desktop +} + + +%global files_jre_headless() %{expand: +%defattr(-,root,root,-) +%doc %{buildoutputdir %%1}/images/%{j2sdkimage}/jre/ASSEMBLY_EXCEPTION +%doc %{buildoutputdir %%1}/images/%{j2sdkimage}/jre/LICENSE +%doc %{buildoutputdir %%1}/images/%{j2sdkimage}/jre/THIRD_PARTY_README +%dir %{_jvmdir}/%{sdkdir %%1} +%{_jvmdir}/%{jrelnk %%1} +%{_jvmjardir}/%{jrelnk %%1} +%{_jvmprivdir}/* +%{jvmjardir %%1} +%dir %{_jvmdir}/%{jredir %%1}/lib/security +%{_jvmdir}/%{jredir %%1}/lib/security/cacerts +%config(noreplace) %{_jvmdir}/%{jredir %%1}/lib/security/US_export_policy.jar +%config(noreplace) %{_jvmdir}/%{jredir %%1}/lib/security/local_policy.jar +%config(noreplace) %{_jvmdir}/%{jredir %%1}/lib/security/java.policy +%config(noreplace) %{_jvmdir}/%{jredir %%1}/lib/security/java.security +%config(noreplace) %{_jvmdir}/%{jredir %%1}/lib/security/blacklisted.certs +%config(noreplace) %{_jvmdir}/%{jredir %%1}/lib/logging.properties +%{_mandir}/man1/java-%{uniquesuffix %%1}.1* +%{_mandir}/man1/jjs-%{uniquesuffix %%1}.1* +%{_mandir}/man1/keytool-%{uniquesuffix %%1}.1* +%{_mandir}/man1/orbd-%{uniquesuffix %%1}.1* +%{_mandir}/man1/pack200-%{uniquesuffix %%1}.1* +%{_mandir}/man1/rmid-%{uniquesuffix %%1}.1* +%{_mandir}/man1/rmiregistry-%{uniquesuffix %%1}.1* +%{_mandir}/man1/servertool-%{uniquesuffix %%1}.1* +%{_mandir}/man1/tnameserv-%{uniquesuffix %%1}.1* +%{_mandir}/man1/unpack200-%{uniquesuffix %%1}.1* +%config(noreplace) %{_jvmdir}/%{jredir %%1}/lib/security/nss.cfg +%{_jvmdir}/%{jredir %%1}/lib/audio/ +%ifarch %{jit_arches} +%attr(664, root, root) %ghost %{_jvmdir}/%{jredir %%1}/lib/%{archinstall}/server/classes.jsa +%attr(664, root, root) %ghost %{_jvmdir}/%{jredir %%1}/lib/%{archinstall}/client/classes.jsa +%endif +%{_jvmdir}/%{jredir %%1}/lib/%{archinstall}/server/ +%{_jvmdir}/%{jredir %%1}/lib/%{archinstall}/client/ +} + +%global files_devel() %{expand: +%defattr(-,root,root,-) +%doc %{buildoutputdir %%1}/images/%{j2sdkimage}/ASSEMBLY_EXCEPTION +%doc %{buildoutputdir %%1}/images/%{j2sdkimage}/LICENSE +%doc %{buildoutputdir %%1}/images/%{j2sdkimage}/THIRD_PARTY_README +%dir %{_jvmdir}/%{sdkdir %%1}/bin +%dir %{_jvmdir}/%{sdkdir %%1}/include +%dir %{_jvmdir}/%{sdkdir %%1}/lib +%if %{with_systemtap} +%dir %{_jvmdir}/%{sdkdir %%1}/tapset +%endif +%{_jvmdir}/%{sdkdir %%1}/bin/* +%{_jvmdir}/%{sdkdir %%1}/include/* +%{_jvmdir}/%{sdkdir %%1}/lib/* +%if %{with_systemtap} +%{_jvmdir}/%{sdkdir %%1}/tapset/*.stp +%endif +%{_jvmjardir}/%{sdkdir %%1} +%{_datadir}/applications/*jconsole%1.desktop +%{_mandir}/man1/appletviewer-%{uniquesuffix %%1}.1* +%{_mandir}/man1/extcheck-%{uniquesuffix %%1}.1* +%{_mandir}/man1/idlj-%{uniquesuffix %%1}.1* +%{_mandir}/man1/jar-%{uniquesuffix %%1}.1* +%{_mandir}/man1/jarsigner-%{uniquesuffix %%1}.1* +%{_mandir}/man1/javac-%{uniquesuffix %%1}.1* +%{_mandir}/man1/javadoc-%{uniquesuffix %%1}.1* +%{_mandir}/man1/javah-%{uniquesuffix %%1}.1* +%{_mandir}/man1/javap-%{uniquesuffix %%1}.1* +%{_mandir}/man1/jconsole-%{uniquesuffix %%1}.1* +%{_mandir}/man1/jcmd-%{uniquesuffix %%1}.1* +%{_mandir}/man1/jdb-%{uniquesuffix %%1}.1* +%{_mandir}/man1/jdeps-%{uniquesuffix %%1}.1* +%{_mandir}/man1/jhat-%{uniquesuffix %%1}.1* +%{_mandir}/man1/jinfo-%{uniquesuffix %%1}.1* +%{_mandir}/man1/jmap-%{uniquesuffix %%1}.1* +%{_mandir}/man1/jps-%{uniquesuffix %%1}.1* +%{_mandir}/man1/jrunscript-%{uniquesuffix %%1}.1* +%{_mandir}/man1/jsadebugd-%{uniquesuffix %%1}.1* +%{_mandir}/man1/jstack-%{uniquesuffix %%1}.1* +%{_mandir}/man1/jstat-%{uniquesuffix %%1}.1* +%{_mandir}/man1/jstatd-%{uniquesuffix %%1}.1* +%{_mandir}/man1/native2ascii-%{uniquesuffix %%1}.1* +%{_mandir}/man1/policytool-%{uniquesuffix %%1}.1* +%{_mandir}/man1/rmic-%{uniquesuffix %%1}.1* +%{_mandir}/man1/schemagen-%{uniquesuffix %%1}.1* +%{_mandir}/man1/serialver-%{uniquesuffix %%1}.1* +%{_mandir}/man1/wsgen-%{uniquesuffix %%1}.1* +%{_mandir}/man1/wsimport-%{uniquesuffix %%1}.1* +%{_mandir}/man1/xjc-%{uniquesuffix %%1}.1* +%if %{with_systemtap} +%{tapsetroot} +%endif +} + +%global files_demo() %{expand: +%defattr(-,root,root,-) +%doc %{buildoutputdir %%1}/images/%{j2sdkimage}/jre/LICENSE +} + +%global files_src() %{expand: +%defattr(-,root,root,-) +%doc README.src +%{_jvmdir}/%{sdkdir %%1}/src.zip +} + +%global files_javadoc() %{expand: +%defattr(-,root,root,-) +%doc %{_javadocdir}/%{uniquejavadocdir %%1} +%doc %{buildoutputdir %%1}/images/%{j2sdkimage}/jre/LICENSE +} + +%global files_accessibility() %{expand: +%{_jvmdir}/%{jredir %%1}/lib/%{archinstall}/libatk-wrapper.so +%{_jvmdir}/%{jredir %%1}/lib/ext/java-atk-wrapper.jar +%{_jvmdir}/%{jredir %%1}/lib/accessibility.properties +} + +# not-duplicated requires/provides/obsolate for normal/debug packages +%global java_rpo() %{expand: +Requires: fontconfig +Requires: xorg-x11-fonts-Type1 + +# Requires rest of java +Requires: %{name}-headless%1 = %{epoch}:%{version}-%{release} +OrderWithRequires: %{name}-headless%1 = %{epoch}:%{version}-%{release} + + +# Standard JPackage base provides. +Provides: jre-%{javaver}-%{origin}%1 = %{epoch}:%{version}-%{release} +Provides: jre-%{origin}%1 = %{epoch}:%{version}-%{release} +Provides: jre-%{javaver}%1 = %{epoch}:%{version}-%{release} +Provides: java-%{javaver}%1 = %{epoch}:%{version}-%{release} +Provides: jre = %{javaver}%1 +Provides: java-%{origin}%1 = %{epoch}:%{version}-%{release} +Provides: java%1 = %{epoch}:%{javaver} +# Standard JPackage extensions provides. +Provides: java-fonts%1 = %{epoch}:%{version} + +Obsoletes: java-1.7.0-openjdk%1 +Obsoletes: java-1.5.0-gcj%1 +Obsoletes: sinjdoc +} + +%global java_headless_rpo() %{expand: +# Require /etc/pki/java/cacerts. +Requires: ca-certificates +# Require jpackage-utils for ownership of /usr/lib/jvm/ +Requires: jpackage-utils +# Require zoneinfo data provided by tzdata-java subpackage. +Requires: tzdata-java >= 2014f-1 +# Post requires alternatives to install tool alternatives. +Requires(post): %{_sbindir}/alternatives +# Postun requires alternatives to uninstall tool alternatives. +Requires(postun): %{_sbindir}/alternatives + +# Standard JPackage base provides. +Provides: jre-%{javaver}-%{origin}-headless%1 = %{epoch}:%{version}-%{release} +Provides: jre-%{origin}-headless%1 = %{epoch}:%{version}-%{release} +Provides: jre-%{javaver}-headless%1 = %{epoch}:%{version}-%{release} +Provides: java-%{javaver}-headless%1 = %{epoch}:%{version}-%{release} +Provides: jre-headless%1 = %{epoch}:%{javaver} +Provides: java-%{origin}-headless%1 = %{epoch}:%{version}-%{release} +Provides: java-headless%1 = %{epoch}:%{javaver} +# Standard JPackage extensions provides. +Provides: jndi%1 = %{epoch}:%{version} +Provides: jndi-ldap%1 = %{epoch}:%{version} +Provides: jndi-cos%1 = %{epoch}:%{version} +Provides: jndi-rmi%1 = %{epoch}:%{version} +Provides: jndi-dns%1 = %{epoch}:%{version} +Provides: jaas%1 = %{epoch}:%{version} +Provides: jsse%1 = %{epoch}:%{version} +Provides: jce%1 = %{epoch}:%{version} +Provides: jdbc-stdext%1 = 4.1 +Provides: java-sasl%1 = %{epoch}:%{version} + +Obsoletes: java-1.7.0-openjdk-headless%1 +} + +%global java_devel_rpo() %{expand: +# Require base package. +Requires: %{name}%1 = %{epoch}:%{version}-%{release} +OrderWithRequires: %{name}-headless%1 = %{epoch}:%{version}-%{release} +# Post requires alternatives to install tool alternatives. +Requires(post): %{_sbindir}/alternatives +# Postun requires alternatives to uninstall tool alternatives. +Requires(postun): %{_sbindir}/alternatives + +# Standard JPackage devel provides. +Provides: java-sdk-%{javaver}-%{origin}%1 = %{epoch}:%{version} +Provides: java-sdk-%{javaver}%1 = %{epoch}:%{version} +Provides: java-sdk-%{origin}%1 = %{epoch}:%{version} +Provides: java-sdk%1 = %{epoch}:%{javaver} +Provides: java-%{javaver}-devel%1 = %{epoch}:%{version} +Provides: java-devel-%{origin}%1 = %{epoch}:%{version} +Provides: java-devel%1 = %{epoch}:%{javaver} + +Obsoletes: java-1.7.0-openjdk-devel%1 +Obsoletes: java-1.5.0-gcj-devel%1 +} + + +%global java_demo_rpo() %{expand: +Requires: %{name}%1 = %{epoch}:%{version}-%{release} +OrderWithRequires: %{name}-headless%1 = %{epoch}:%{version}-%{release} + +Obsoletes: java-1.7.0-openjdk-demo%1 +} + +%global java_javadoc_rpo() %{expand: +OrderWithRequires: %{name}-headless%1 = %{epoch}:%{version}-%{release} +# Post requires alternatives to install javadoc alternative. +Requires(post): %{_sbindir}/alternatives +# Postun requires alternatives to uninstall javadoc alternative. +Requires(postun): %{_sbindir}/alternatives + +# Standard JPackage javadoc provides. +Provides: java-javadoc%1 = %{epoch}:%{version}-%{release} +Provides: java-%{javaver}-javadoc%1 = %{epoch}:%{version}-%{release} + +Obsoletes: java-1.7.0-openjdk-javadoc%1 + +} + +%global java_src_rpo() %{expand: +Requires: %{name}-headless%1 = %{epoch}:%{version}-%{release} + +Obsoletes: java-1.7.0-openjdk-src%1 +} + +%global java_accessibility_rpo() %{expand: +Requires: java-atk-wrapper +Requires: %{name}%1 = %{epoch}:%{version}-%{release} +OrderWithRequires: %{name}-headless%1 = %{epoch}:%{version}-%{release} + +Obsoletes: java-1.7.0-openjdk-accessibility%1 +} + # Prevent brp-java-repack-jars from being run. %global __jar_repack 0 Name: java-%{javaver}-%{origin} Version: %{javaver}.%{updatever} -Release: 5.%{buildver}%{?dist} +Release: 21.%{buildver}%{?dist} # java-1.5.0-ibm from jpackage.org set Epoch to 1 for unknown reasons, # and this change was brought into RHEL-4. java-1.5.0-ibm packages # also included the epoch in their virtual provides. This created a @@ -143,7 +657,7 @@ URL: http://openjdk.java.net/ # Source from upstrem OpenJDK8 project. To regenerate, use # ./generate_source_tarball.sh jdk8u jdk8u jdk8u%%{updatever}-%%{buildver} # ./generate_source_tarball.sh aarch64-port jdk8 %%{aarch64_hg_tag} -Source0: jdk8u-jdk8u%{updatever}-%{buildver}.tar.xz +Source0: jdk8u40-jdk8u%{updatever}-%{buildver}.tar.xz Source1: jdk8-jdk8u%{aarch64_updatever}-%{aarch64_buildver}-%{aarch64_changesetid}.tar.xz # Custom README for -src subpackage @@ -190,14 +704,12 @@ Patch6: disable-doclint-by-default.patch # Include all sources in src.zip Patch7: include-all-srcs.patch # Problem discovered with make 4.0 -Patch11: hotspot-build-j-directive.patch Patch12: removeSunEcProvider-RH1154143.patch +Patch13: libjpeg-turbo-1.4-compat.patch # # OpenJDK specific patches # -# Allow icedtea-web to build -Patch99: applet-hole.patch # JVM heap size changes for s390 (thanks to aph) Patch100: %{name}-s390-java-opts.patch @@ -207,17 +719,12 @@ Patch102: %{name}-size_t.patch Patch201: system-libjpeg.patch Patch202: system-libpng.patch Patch203: system-lcms.patch +Patch204: zero-interpreter-fix.patch Patch300: jstack-pr1845.patch -# Fixed in upstream 9. See upstream bug: -# https://bugs.openjdk.java.net/browse/JDK-8064815 Patch400: ppc_stack_overflow_fix.patch -# Fixed in upstream 9. See upstream bug: -# https://bugs.openjdk.java.net/browse/JDK-8067330 Patch401: fix_ZERO_ARCHDEF_ppc.patch -# Fixed in upstream 9. See upstream bug: -# https://bugs.openjdk.java.net/browse/JDK-8067331 Patch402: atomic_linux_zero.inline.hpp.patch Patch9999: enableArm64.patch @@ -266,150 +773,147 @@ BuildRequires: prelink BuildRequires: systemtap-sdt-devel %endif -Requires: fontconfig -Requires: xorg-x11-fonts-Type1 - -# Requires rest of java -Requires: %{name}-headless = %{epoch}:%{version}-%{release} -OrderWithRequires: %{name}-headless = %{epoch}:%{version}-%{release} +# this is built always, also during debug-only build +# when it is built in debug-only, then this package is just placeholder +%{java_rpo %{nil}} -# Standard JPackage base provides. -Provides: jre-%{javaver}-%{origin} = %{epoch}:%{version}-%{release} -Provides: jre-%{origin} = %{epoch}:%{version}-%{release} -Provides: jre-%{javaver} = %{epoch}:%{version}-%{release} -Provides: java-%{javaver} = %{epoch}:%{version}-%{release} -Provides: jre = %{javaver} -Provides: java-%{origin} = %{epoch}:%{version}-%{release} -Provides: java = %{epoch}:%{javaver} -# Standard JPackage extensions provides. -Provides: java-fonts = %{epoch}:%{version} +%description +The OpenJDK runtime environment. -Obsoletes: java-1.7.0-openjdk -Obsoletes: java-1.5.0-gcj -Obsoletes: sinjdoc +%if %{include_debug_build} +%package debug +Summary: OpenJDK Runtime Environment %{debug_on} +Group: Development/Languages -%description +%{java_rpo %{debug_suffix_unquoted}} +%description debug The OpenJDK runtime environment. +%{debug_warning} +%endif +%if %{include_normal_build} %package headless Summary: OpenJDK Runtime Environment Group: Development/Languages -# Require /etc/pki/java/cacerts. -Requires: ca-certificates -# Require jpackage-utils for ownership of /usr/lib/jvm/ -Requires: jpackage-utils -# Require zoneinfo data provided by tzdata-java subpackage. -Requires: tzdata-java >= 2014f-1 -# Post requires alternatives to install tool alternatives. -Requires(post): %{_sbindir}/alternatives -# Postun requires alternatives to uninstall tool alternatives. -Requires(postun): %{_sbindir}/alternatives - -# Standard JPackage base provides. -Provides: jre-%{javaver}-%{origin}-headless = %{epoch}:%{version}-%{release} -Provides: jre-%{origin}-headless = %{epoch}:%{version}-%{release} -Provides: jre-%{javaver}-headless = %{epoch}:%{version}-%{release} -Provides: java-%{javaver}-headless = %{epoch}:%{version}-%{release} -Provides: jre-headless = %{epoch}:%{javaver} -Provides: java-%{origin}-headless = %{epoch}:%{version}-%{release} -Provides: java-headless = %{epoch}:%{javaver} -# Standard JPackage extensions provides. -Provides: jndi = %{epoch}:%{version} -Provides: jndi-ldap = %{epoch}:%{version} -Provides: jndi-cos = %{epoch}:%{version} -Provides: jndi-rmi = %{epoch}:%{version} -Provides: jndi-dns = %{epoch}:%{version} -Provides: jaas = %{epoch}:%{version} -Provides: jsse = %{epoch}:%{version} -Provides: jce = %{epoch}:%{version} -Provides: jdbc-stdext = 4.1 -Provides: java-sasl = %{epoch}:%{version} - -Obsoletes: java-1.7.0-openjdk-headless +%{java_headless_rpo %{nil}} %description headless The OpenJDK runtime environment without audio and video support. +%endif + +%if %{include_debug_build} +%package headless-debug +Summary: OpenJDK Runtime Environment %{debug_on} +Group: Development/Languages + +%{java_headless_rpo %{debug_suffix_unquoted}} + +%description headless-debug +The OpenJDK runtime environment without audio and video support. +%{debug_warning} +%endif +%if %{include_normal_build} %package devel Summary: OpenJDK Development Environment Group: Development/Tools -# Require base package. -Requires: %{name} = %{epoch}:%{version}-%{release} -OrderWithRequires: %{name}-headless = %{epoch}:%{version}-%{release} -# Post requires alternatives to install tool alternatives. -Requires(post): %{_sbindir}/alternatives -# Postun requires alternatives to uninstall tool alternatives. -Requires(postun): %{_sbindir}/alternatives +%{java_devel_rpo %{nil}} -# Standard JPackage devel provides. -Provides: java-sdk-%{javaver}-%{origin} = %{epoch}:%{version} -Provides: java-sdk-%{javaver} = %{epoch}:%{version} -Provides: java-sdk-%{origin} = %{epoch}:%{version} -Provides: java-sdk = %{epoch}:%{javaver} -Provides: java-%{javaver}-devel = %{epoch}:%{version} -Provides: java-devel-%{origin} = %{epoch}:%{version} -Provides: java-devel = %{epoch}:%{javaver} +%description devel +The OpenJDK development tools. +%endif -Obsoletes: java-1.7.0-openjdk-devel -Obsoletes: java-1.5.0-gcj-devel +%if %{include_debug_build} +%package devel-debug +Summary: OpenJDK Development Environment %{debug_on} +Group: Development/Tools -%description devel +%{java_devel_rpo %{debug_suffix_unquoted}} + +%description devel-debug The OpenJDK development tools. +%{debug_warning} +%endif +%if %{include_normal_build} %package demo Summary: OpenJDK Demos Group: Development/Languages -Requires: %{name} = %{epoch}:%{version}-%{release} -OrderWithRequires: %{name}-headless = %{epoch}:%{version}-%{release} - -Obsoletes: java-1.7.0-openjdk-demo +%{java_demo_rpo %{nil}} %description demo The OpenJDK demos. +%endif + +%if %{include_debug_build} +%package demo-debug +Summary: OpenJDK Demos %{debug_on} +Group: Development/Languages +%{java_demo_rpo %{debug_suffix_unquoted}} + +%description demo-debug +The OpenJDK demos. +%{debug_warning} +%endif + +%if %{include_normal_build} %package src Summary: OpenJDK Source Bundle Group: Development/Languages -Requires: %{name} = %{epoch}:%{version}-%{release} - -Obsoletes: java-1.7.0-openjdk-src +%{java_src_rpo %{nil}} %description src The OpenJDK source bundle. +%endif + +%if %{include_debug_build} +%package src-debug +Summary: OpenJDK Source Bundle %{for_debug} +Group: Development/Languages +%{java_src_rpo %{debug_suffix_unquoted}} + +%description src-debug +The OpenJDK source bundle %{for_debug}. +%endif + +%if %{include_normal_build} %package javadoc Summary: OpenJDK API Documentation Group: Documentation Requires: jpackage-utils BuildArch: noarch -OrderWithRequires: %{name}-headless = %{epoch}:%{version}-%{release} -# Post requires alternatives to install javadoc alternative. -Requires(post): %{_sbindir}/alternatives -# Postun requires alternatives to uninstall javadoc alternative. -Requires(postun): %{_sbindir}/alternatives - -# Standard JPackage javadoc provides. -Provides: java-javadoc = %{epoch}:%{version}-%{release} -Provides: java-%{javaver}-javadoc = %{epoch}:%{version}-%{release} - -Obsoletes: java-1.7.0-openjdk-javadoc +%{java_javadoc_rpo %{nil}} %description javadoc The OpenJDK API documentation. +%endif + +%if %{include_debug_build} +%package javadoc-debug +Summary: OpenJDK API Documentation %{for_debug} +Group: Documentation +Requires: jpackage-utils +BuildArch: noarch + +%{java_javadoc_rpo %{debug_suffix_unquoted}} +%description javadoc-debug +The OpenJDK API documentation %{for_debug}. +%endif + +%if %{include_normal_build} %package accessibility Summary: OpenJDK accessibility connector -Requires: java-atk-wrapper -Requires: %{name} = %{epoch}:%{version}-%{release} -OrderWithRequires: %{name}-headless = %{epoch}:%{version}-%{release} -Obsoletes: java-1.7.0-openjdk-accessibility +%{java_accessibility_rpo %{nil}} %description accessibility Enables accessibility support in OpenJDK by using java-atk-wrapper. This allows @@ -420,10 +924,36 @@ Please note, the java-atk-wrapper is still in beta, and OpenJDK itself is still being tuned to be working with accessibility features. There are known issues with accessibility on, so please do not install this package unless you really need to. +%endif + +%if %{include_debug_build} +%package accessibility-debug +Summary: OpenJDK accessibility connector %{for_debug} +%{java_accessibility_rpo %{debug_suffix_unquoted}} + +%description accessibility-debug +See normal java-%{version}-openjdk-accessibility description. +%endif %prep -%setup -q -c -n %{uniquesuffix} -T -a 0 +if [ %{include_normal_build} -eq 0 -o %{include_normal_build} -eq 1 ] ; then + echo "include_normal_build is %{include_normal_build}" +else + echo "include_normal_build is %{include_normal_build}, thats invalid. Use 1 for yes or 0 for no" + exit 11 +fi +if [ %{include_debug_build} -eq 0 -o %{include_debug_build} -eq 1 ] ; then + echo "include_debug_build is %{include_debug_build}" +else + echo "include_debug_build is %{include_debug_build}, thats invalid. Use 1 for yes or 0 for no" + exit 12 +fi +if [ %{include_debug_build} -eq 0 -a %{include_normal_build} -eq 0 ] ; then + echo "you have disabled both include_debug_build and include_debug_build. no go." + exit 13 +fi +%setup -q -c -n %{uniquesuffix ""} -T -a 0 # https://bugzilla.redhat.com/show_bug.cgi?id=1189084 prioritylength=`expr length %{priority}` if [ $prioritylength -ne 7 ] ; then @@ -457,6 +987,9 @@ sh %{SOURCE12} %patch201 %patch202 %patch203 +%ifnarch %{aarch64} +%patch204 +%endif %patch1 %patch3 @@ -464,10 +997,8 @@ sh %{SOURCE12} %patch5 %patch6 %patch7 -%patch11 %patch12 - -%patch99 +%patch13 # s390 build fixes %ifarch s390 @@ -488,29 +1019,39 @@ tar xzf %{SOURCE8} %patch300 -for file in tapset/*.in; do +%if %{include_debug_build} +cp -r tapset tapset%{debug_suffix} +%endif + +for suffix in %{build_loop} ; do + for file in "tapset"$suffix/*.in; do OUTPUT_FILE=`echo $file | sed -e s:%{javaver}\.stp\.in$:%{version}-%{release}.%{_arch}.stp:g` - sed -e s:@ABS_SERVER_LIBJVM_SO@:%{_jvmdir}/%{sdkdir}/jre/lib/%{archinstall}/server/libjvm.so:g $file > $file.1 + sed -e s:@ABS_SERVER_LIBJVM_SO@:%{_jvmdir}/%{sdkdir $suffix}/jre/lib/%{archinstall}/server/libjvm.so:g $file > $file.1 # TODO find out which architectures other than i686 have a client vm %ifarch %{ix86} - sed -e s:@ABS_CLIENT_LIBJVM_SO@:%{_jvmdir}/%{sdkdir}/jre/lib/%{archinstall}/client/libjvm.so:g $file.1 > $OUTPUT_FILE + sed -e s:@ABS_CLIENT_LIBJVM_SO@:%{_jvmdir}/%{sdkdir $suffix}/jre/lib/%{archinstall}/client/libjvm.so:g $file.1 > $OUTPUT_FILE %else sed -e '/@ABS_CLIENT_LIBJVM_SO@/d' $file.1 > $OUTPUT_FILE %endif - sed -i -e s:@ABS_JAVA_HOME_DIR@:%{_jvmdir}/%{sdkdir}:g $OUTPUT_FILE + sed -i -e s:@ABS_JAVA_HOME_DIR@:%{_jvmdir}/%{sdkdir $suffix}:g $OUTPUT_FILE sed -i -e s:@INSTALL_ARCH_DIR@:%{archinstall}:g $OUTPUT_FILE - + done done - -%endif +# systemtap tapsets ends +%endif # Prepare desktop files +for suffix in %{build_loop} ; do for file in %{SOURCE9} %{SOURCE10} ; do - OUTPUT_FILE=`basename $file | sed -e s:\.in$::g` - sed -e s:#JAVA_HOME#:%{sdkbindir}:g $file > $OUTPUT_FILE - sed -i -e s:#JRE_HOME#:%{jrebindir}:g $OUTPUT_FILE - sed -i -e s:#ARCH#:%{version}-%{release}.%{_arch}:g $OUTPUT_FILE + FILE=`basename $file | sed -e s:\.in$::g` + EXT="${FILE##*.}" + NAME="${FILE%.*}" + OUTPUT_FILE=$NAME$suffix.$EXT + sed -e s:#JAVA_HOME#:%{sdkbindir $suffix}:g $file > $OUTPUT_FILE + sed -i -e s:#JRE_HOME#:%{jrebindir $suffix}:g $OUTPUT_FILE + sed -i -e s:#ARCH#:%{version}-%{release}.%{_arch}$suffix:g $OUTPUT_FILE +done done %build @@ -528,8 +1069,8 @@ export CFLAGS="$CFLAGS -mieee" EXTRA_CFLAGS="-fstack-protector-strong" #see https://bugzilla.redhat.com/show_bug.cgi?id=1120792 -EXTRA_CFLAGS="$EXTRA_CFLAGS -fno-devirtualize" -EXTRA_CPP_FLAGS="-fno-devirtualize" +EXTRA_CFLAGS="$EXTRA_CFLAGS -fno-devirtualize -Wno-return-local-addr" +EXTRA_CPP_FLAGS="-fno-devirtualize -Wno-return-local-addr" # PPC/PPC64 needs -fno-tree-vectorize since -O3 would # otherwise generate wrong code producing segfaults. %ifarch %{power64} ppc @@ -543,9 +1084,15 @@ export EXTRA_CFLAGS bash ./autogen.sh ) -mkdir -p %{buildoutputdir} +for suffix in %{build_loop} ; do +if [ "$suffix" = "%{debug_suffix}" ] ; then +debugbuild=%{debugbuild_parameter} +else +debugbuild=%{normalbuild_parameter} +fi -pushd %{buildoutputdir} +mkdir -p %{buildoutputdir $suffix} +pushd %{buildoutputdir $suffix} bash ../../configure \ %ifnarch %{jit_arches} @@ -562,7 +1109,7 @@ bash ../../configure \ --with-user-release-suffix="aarch64-%{aarch64_updatever}-%{aarch64_buildver}-%{aarch64_changesetid}" \ %endif --with-boot-jdk=/usr/lib/jvm/java-openjdk \ - --with-debug-level=%{debugbuild} \ + --with-debug-level=$debugbuild \ --enable-unlimited-crypto \ --with-zlib=system \ --with-libjpeg=system \ @@ -590,17 +1137,17 @@ make \ # the build (erroneously) removes read permissions from some jars # this is a regression in OpenJDK 7 (our compiler): # http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1437 -find images/j2sdk-image -iname '*.jar' -exec chmod ugo+r {} \; -chmod ugo+r images/j2sdk-image/lib/ct.sym +find images/%{j2sdkimage} -iname '*.jar' -exec chmod ugo+r {} \; +chmod ugo+r images/%{j2sdkimage}/lib/ct.sym # remove redundant *diz and *debuginfo files -find images/j2sdk-image -iname '*.diz' -exec rm {} \; -find images/j2sdk-image -iname '*.debuginfo' -exec rm {} \; +find images/%{j2sdkimage} -iname '*.diz' -exec rm {} \; +find images/%{j2sdkimage} -iname '*.debuginfo' -exec rm {} \; popd >& /dev/null # Install nss.cfg right away as we will be using the JRE above -export JAVA_HOME=$(pwd)/%{buildoutputdir}/images/j2sdk-image +export JAVA_HOME=$(pwd)/%{buildoutputdir $suffix}/images/%{j2sdkimage} # Install nss.cfg right away as we will be using the JRE above install -m 644 %{SOURCE11} $JAVA_HOME/jre/lib/security/ @@ -641,51 +1188,56 @@ $JAVA_HOME/bin/javap -l java.nio.ByteBuffer | grep "Compiled from" $JAVA_HOME/bin/javap -l java.nio.ByteBuffer | grep LineNumberTable $JAVA_HOME/bin/javap -l java.nio.ByteBuffer | grep LocalVariableTable +#build cycles +done + %install rm -rf $RPM_BUILD_ROOT STRIP_KEEP_SYMTAB=libjvm* +for suffix in %{build_loop} ; do # Install symlink to default soundfont -install -d -m 755 $RPM_BUILD_ROOT%{_jvmdir}/%{jredir}/lib/audio -pushd $RPM_BUILD_ROOT%{_jvmdir}/%{jredir}/lib/audio +install -d -m 755 $RPM_BUILD_ROOT%{_jvmdir}/%{jredir $suffix}/lib/audio +pushd $RPM_BUILD_ROOT%{_jvmdir}/%{jredir $suffix}/lib/audio ln -s %{_datadir}/soundfonts/default.sf2 popd -pushd %{buildoutputdir}/images/j2sdk-image +pushd %{buildoutputdir $suffix}/images/%{j2sdkimage} #install jsa directories so we can owe them -mkdir -p $RPM_BUILD_ROOT%{_jvmdir}/%{jredir}/lib/%{archinstall}/server/ -mkdir -p $RPM_BUILD_ROOT%{_jvmdir}/%{jredir}/lib/%{archinstall}/client/ +mkdir -p $RPM_BUILD_ROOT%{_jvmdir}/%{jredir $suffix}/lib/%{archinstall}/server/ +mkdir -p $RPM_BUILD_ROOT%{_jvmdir}/%{jredir $suffix}/lib/%{archinstall}/client/ # Install main files. - install -d -m 755 $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir} - cp -a bin include lib src.zip $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir} - install -d -m 755 $RPM_BUILD_ROOT%{_jvmdir}/%{jredir} - cp -a jre/bin jre/lib $RPM_BUILD_ROOT%{_jvmdir}/%{jredir} + install -d -m 755 $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir $suffix} + cp -a bin include lib src.zip $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir $suffix} + install -d -m 755 $RPM_BUILD_ROOT%{_jvmdir}/%{jredir $suffix} + cp -a jre/bin jre/lib $RPM_BUILD_ROOT%{_jvmdir}/%{jredir $suffix} %if %{with_systemtap} # Install systemtap support files. - install -dm 755 $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir}/tapset - cp -a $RPM_BUILD_DIR/%{uniquesuffix}/tapset/*.stp $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir}/tapset/ + install -dm 755 $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir $suffix}/tapset + # note, that uniquesuffix is in BUILD dir in this case + cp -a $RPM_BUILD_DIR/%{uniquesuffix ""}/tapset$suffix/*.stp $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir $suffix}/tapset/ install -d -m 755 $RPM_BUILD_ROOT%{tapsetdir} pushd $RPM_BUILD_ROOT%{tapsetdir} - RELATIVE=$(%{abs2rel} %{_jvmdir}/%{sdkdir}/tapset %{tapsetdir}) + RELATIVE=$(%{abs2rel} %{_jvmdir}/%{sdkdir $suffix}/tapset %{tapsetdir}) ln -sf $RELATIVE/*.stp . popd %endif # Install cacerts symlink. - rm -f $RPM_BUILD_ROOT%{_jvmdir}/%{jredir}/lib/security/cacerts - pushd $RPM_BUILD_ROOT%{_jvmdir}/%{jredir}/lib/security + rm -f $RPM_BUILD_ROOT%{_jvmdir}/%{jredir $suffix}/lib/security/cacerts + pushd $RPM_BUILD_ROOT%{_jvmdir}/%{jredir $suffix}/lib/security RELATIVE=$(%{abs2rel} %{_sysconfdir}/pki/java \ - %{_jvmdir}/%{jredir}/lib/security) + %{_jvmdir}/%{jredir $suffix}/lib/security) ln -sf $RELATIVE/cacerts . popd # Install extension symlinks. - install -d -m 755 $RPM_BUILD_ROOT%{jvmjardir} - pushd $RPM_BUILD_ROOT%{jvmjardir} - RELATIVE=$(%{abs2rel} %{_jvmdir}/%{jredir}/lib %{jvmjardir}) + install -d -m 755 $RPM_BUILD_ROOT%{jvmjardir $suffix} + pushd $RPM_BUILD_ROOT%{jvmjardir $suffix} + RELATIVE=$(%{abs2rel} %{_jvmdir}/%{jredir $suffix}/lib %{jvmjardir $suffix}) ln -sf $RELATIVE/jsse.jar jsse-%{version}.jar ln -sf $RELATIVE/jce.jar jce-%{version}.jar ln -sf $RELATIVE/rt.jar jndi-%{version}.jar @@ -707,15 +1259,15 @@ mkdir -p $RPM_BUILD_ROOT%{_jvmdir}/%{jredir}/lib/%{archinstall}/client/ popd # Install JCE policy symlinks. - install -d -m 755 $RPM_BUILD_ROOT%{_jvmprivdir}/%{uniquesuffix}/jce/vanilla + install -d -m 755 $RPM_BUILD_ROOT%{_jvmprivdir}/%{uniquesuffix $suffix}/jce/vanilla # Install versioned symlinks. pushd $RPM_BUILD_ROOT%{_jvmdir} - ln -sf %{jredir} %{jrelnk} + ln -sf %{jredir $suffix} %{jrelnk $suffix} popd pushd $RPM_BUILD_ROOT%{_jvmjardir} - ln -sf %{sdkdir} %{jrelnk} + ln -sf %{sdkdir $suffix} %{jrelnk $suffix} popd # Remove javaws man page @@ -729,21 +1281,24 @@ mkdir -p $RPM_BUILD_ROOT%{_jvmdir}/%{jredir}/lib/%{archinstall}/client/ iconv -f ISO_8859-1 -t UTF8 $manpage -o $manpage.tmp mv -f $manpage.tmp $manpage install -m 644 -p $manpage $RPM_BUILD_ROOT%{_mandir}/man1/$(basename \ - $manpage .1)-%{uniquesuffix}.1 + $manpage .1)-%{uniquesuffix $suffix}.1 done # Install demos and samples. - cp -a demo $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir} + cp -a demo $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir $suffix} mkdir -p sample/rmi - mv bin/java-rmi.cgi sample/rmi - cp -a sample $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir} + if [ ! -e sample/rmi/java-rmi.cgi ] ; then + # hack to allow --short-circuit on install + mv bin/java-rmi.cgi sample/rmi + fi + cp -a sample $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir $suffix} popd # Install Javadoc documentation. install -d -m 755 $RPM_BUILD_ROOT%{_javadocdir} -cp -a %{buildoutputdir}/docs $RPM_BUILD_ROOT%{_javadocdir}/%{uniquejavadocdir} +cp -a %{buildoutputdir $suffix}/docs $RPM_BUILD_ROOT%{_javadocdir}/%{uniquejavadocdir $suffix} # Install icons and menu entries. for s in 16 24 32 48 ; do @@ -754,8 +1309,8 @@ done # Install desktop files. install -d -m 755 $RPM_BUILD_ROOT%{_datadir}/{applications,pixmaps} -for e in jconsole policytool ; do - desktop-file-install --vendor=%{uniquesuffix} --mode=644 \ +for e in jconsole$suffix policytool$suffix ; do + desktop-file-install --vendor=%{uniquesuffix $suffix} --mode=644 \ --dir=$RPM_BUILD_ROOT%{_datadir}/applications $e.desktop done @@ -764,26 +1319,26 @@ done mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/.java/.systemPrefs # Find JRE directories. -find $RPM_BUILD_ROOT%{_jvmdir}/%{jredir} -type d \ +find $RPM_BUILD_ROOT%{_jvmdir}/%{jredir $suffix} -type d \ | grep -v jre/lib/security \ | sed 's|'$RPM_BUILD_ROOT'|%dir |' \ - > %{name}.files-headless + > %{name}.files-headless"$suffix" # Find JRE files. -find $RPM_BUILD_ROOT%{_jvmdir}/%{jredir} -type f -o -type l \ +find $RPM_BUILD_ROOT%{_jvmdir}/%{jredir $suffix} -type f -o -type l \ | grep -v jre/lib/security \ | sed 's|'$RPM_BUILD_ROOT'||' \ - > %{name}.files.all + > %{name}.files.all"$suffix" #split %%{name}.files to %%{name}.files-headless and %%{name}.files #see https://bugzilla.redhat.com/show_bug.cgi?id=875408 NOT_HEADLESS=\ -"%{_jvmdir}/%{uniquesuffix}/jre/lib/%{archinstall}/libjsoundalsa.so -%{_jvmdir}/%{uniquesuffix}/jre/lib/%{archinstall}/libpulse-java.so -%{_jvmdir}/%{uniquesuffix}/jre/lib/%{archinstall}/libsplashscreen.so -%{_jvmdir}/%{uniquesuffix}/jre/lib/%{archinstall}/libawt_xawt.so -%{_jvmdir}/%{uniquesuffix}/jre/lib/%{archinstall}/libjawt.so -%{_jvmdir}/%{uniquesuffix}/jre/bin/policytool" +"%{_jvmdir}/%{uniquesuffix $suffix}/jre/lib/%{archinstall}/libjsoundalsa.so +%{_jvmdir}/%{uniquesuffix $suffix}/jre/lib/%{archinstall}/libpulse-java.so +%{_jvmdir}/%{uniquesuffix $suffix}/jre/lib/%{archinstall}/libsplashscreen.so +%{_jvmdir}/%{uniquesuffix $suffix}/jre/lib/%{archinstall}/libawt_xawt.so +%{_jvmdir}/%{uniquesuffix $suffix}/jre/lib/%{archinstall}/libjawt.so +%{_jvmdir}/%{uniquesuffix $suffix}/jre/bin/policytool" #filter %%{name}.files from %%{name}.files.all to %%{name}.files-headless -ALL=`cat %{name}.files.all` +ALL=`cat %{name}.files.all"$suffix"` for file in $ALL ; do INLCUDE="NO" ; for blacklist in $NOT_HEADLESS ; do @@ -795,61 +1350,66 @@ for file in $ALL ; do fi; done if [ "x$INLCUDE" = "xNO" ]; then - echo "$file" >> %{name}.files-headless + echo "$file" >> %{name}.files-headless"$suffix" else - echo "$file" >> %{name}.files + echo "$file" >> %{name}.files"$suffix" fi done # Find demo directories. -find $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir}/demo \ - $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir}/sample -type d \ +find $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir $suffix}/demo \ + $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir $suffix}/sample -type d \ | sed 's|'$RPM_BUILD_ROOT'|%dir |' \ - > %{name}-demo.files + > %{name}-demo.files"$suffix" # FIXME: remove SONAME entries from demo DSOs. See # https://bugzilla.redhat.com/show_bug.cgi?id=436497 # Find non-documentation demo files. -find $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir}/demo \ - $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir}/sample \ +find $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir $suffix}/demo \ + $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir $suffix}/sample \ -type f -o -type l | sort \ | grep -v README \ | sed 's|'$RPM_BUILD_ROOT'||' \ - >> %{name}-demo.files + >> %{name}-demo.files"$suffix" # Find documentation demo files. -find $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir}/demo \ - $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir}/sample \ +find $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir $suffix}/demo \ + $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir $suffix}/sample \ -type f -o -type l | sort \ | grep README \ | sed 's|'$RPM_BUILD_ROOT'||' \ | sed 's|^|%doc |' \ - >> %{name}-demo.files + >> %{name}-demo.files"$suffix" # intentionally after the files generation, as it goes to separate package # Create links which leads to separately installed java-atk-bridge and allow configuration # links points to java-atk-wrapper - an dependence - pushd $RPM_BUILD_ROOT/%{_jvmdir}/%{jredir}/lib/%{archinstall} + pushd $RPM_BUILD_ROOT/%{_jvmdir}/%{jredir $suffix}/lib/%{archinstall} ln -s %{_libdir}/java-atk-wrapper/libatk-wrapper.so.0 libatk-wrapper.so popd - pushd $RPM_BUILD_ROOT/%{_jvmdir}/%{jredir}/lib/ext + pushd $RPM_BUILD_ROOT/%{_jvmdir}/%{jredir $suffix}/lib/ext ln -s %{_libdir}/java-atk-wrapper/java-atk-wrapper.jar java-atk-wrapper.jar popd - pushd $RPM_BUILD_ROOT/%{_jvmdir}/%{jredir}/lib/ + pushd $RPM_BUILD_ROOT/%{_jvmdir}/%{jredir $suffix}/lib/ echo "#Config file to enable java-atk-wrapper" > accessibility.properties echo "" >> accessibility.properties echo "assistive_technologies=org.GNOME.Accessibility.AtkWrapper" >> accessibility.properties echo "" >> accessibility.properties popd -bash %{SOURCE20} $RPM_BUILD_ROOT/%{_jvmdir}/%{jredir} %{javaver} +bash %{SOURCE20} $RPM_BUILD_ROOT/%{_jvmdir}/%{jredir $suffix} %{javaver} + +# end, dual install +done +%if %{include_normal_build} +# intentioanlly only for non-debug %pretrans headless -p -- see https://bugzilla.redhat.com/show_bug.cgi?id=1038092 for whole issue local posix = require "posix" -local currentjvm = "%{uniquesuffix}" -local jvmdir = "%{_jvmdir}" +local currentjvm = "%{uniquesuffix %{nil}}" +local jvmdir = "%{_jvmdir %{nil}}" local jvmDestdir = jvmdir local origname = "%{name}" local origjavaver = "%{javaver}" @@ -1013,412 +1573,179 @@ for i,file in pairs(caredFiles) do end end - %post -update-desktop-database %{_datadir}/applications &> /dev/null || : -/bin/touch --no-create %{_datadir}/icons/hicolor &>/dev/null || : -exit 0 - +%{post_script %{nil}} -# FIXME: identical binaries are copied, not linked. This needs to be -# fixed upstream. %post headless -# The pretrans lua scriptlet prevents an unmodified java.security -# from being replaced via an update. It gets created as -# java.security.rpmnew instead. This invalidates the patch of -# JDK-8061210 of the January 2015 CPU. We fix this via a -# post scriptlet which runs on updates. -if [ "$1" -gt 1 ]; then - javasecurity="%{_jvmdir}/%{uniquesuffix}/jre/lib/security/java.security" - sum=$(md5sum "${javasecurity}" | cut -d' ' -f1) - # Check against md5sum's of shipped and unmodified java.security files: - # java-1.8.0-openjdk-headless >= 1.8.0.25-2.b18: e63335add7d93bc42637d2a90880da57 - # java-1.8.0-openjdk-headless < 1.8.0.25-2.b18: 1690ac33955594f71dc952c9e83fd396 - if [ "${sum}" = '1690ac33955594f71dc952c9e83fd396' ] || [ "${sum}" = 'e63335add7d93bc42637d2a90880da57' ]; then - if [ -f "${javasecurity}.rpmnew" ]; then - mv -f "${javasecurity}.rpmnew" "${javasecurity}" - fi - fi -fi - -%ifarch %{jit_arches} -%ifnarch %{ppc64le} -#see https://bugzilla.redhat.com/show_bug.cgi?id=513605 -%{jrebindir}/java -Xshare:dump >/dev/null 2>/dev/null -%endif -%endif - -ext=.gz -alternatives \ - --install %{_bindir}/java java %{jrebindir}/java %{priority} \ - --slave %{_jvmdir}/jre jre %{_jvmdir}/%{jredir} \ - --slave %{_jvmjardir}/jre jre_exports %{_jvmjardir}/%{jrelnk} \ - --slave %{_bindir}/jjs jjs %{jrebindir}/jjs \ - --slave %{_bindir}/keytool keytool %{jrebindir}/keytool \ - --slave %{_bindir}/orbd orbd %{jrebindir}/orbd \ - --slave %{_bindir}/pack200 pack200 %{jrebindir}/pack200 \ - --slave %{_bindir}/rmid rmid %{jrebindir}/rmid \ - --slave %{_bindir}/rmiregistry rmiregistry %{jrebindir}/rmiregistry \ - --slave %{_bindir}/servertool servertool %{jrebindir}/servertool \ - --slave %{_bindir}/tnameserv tnameserv %{jrebindir}/tnameserv \ - --slave %{_bindir}/unpack200 unpack200 %{jrebindir}/unpack200 \ - --slave %{_mandir}/man1/java.1$ext java.1$ext \ - %{_mandir}/man1/java-%{uniquesuffix}.1$ext \ - --slave %{_mandir}/man1/jjs.1$ext jjs.1$ext \ - %{_mandir}/man1/jjs-%{uniquesuffix}.1$ext \ - --slave %{_bindir}/policytool policytool %{jrebindir}/policytool \ - --slave %{_mandir}/man1/keytool.1$ext keytool.1$ext \ - %{_mandir}/man1/keytool-%{uniquesuffix}.1$ext \ - --slave %{_mandir}/man1/orbd.1$ext orbd.1$ext \ - %{_mandir}/man1/orbd-%{uniquesuffix}.1$ext \ - --slave %{_mandir}/man1/pack200.1$ext pack200.1$ext \ - %{_mandir}/man1/pack200-%{uniquesuffix}.1$ext \ - --slave %{_mandir}/man1/rmid.1$ext rmid.1$ext \ - %{_mandir}/man1/rmid-%{uniquesuffix}.1$ext \ - --slave %{_mandir}/man1/rmiregistry.1$ext rmiregistry.1$ext \ - %{_mandir}/man1/rmiregistry-%{uniquesuffix}.1$ext \ - --slave %{_mandir}/man1/servertool.1$ext servertool.1$ext \ - %{_mandir}/man1/servertool-%{uniquesuffix}.1$ext \ - --slave %{_mandir}/man1/tnameserv.1$ext tnameserv.1$ext \ - %{_mandir}/man1/tnameserv-%{uniquesuffix}.1$ext \ - --slave %{_mandir}/man1/unpack200.1$ext unpack200.1$ext \ - %{_mandir}/man1/unpack200-%{uniquesuffix}.1$ext - -for X in %{origin} %{javaver} ; do - alternatives \ - --install %{_jvmdir}/jre-"$X" \ - jre_"$X" %{_jvmdir}/%{jredir} %{priority} \ - --slave %{_jvmjardir}/jre-"$X" \ - jre_"$X"_exports %{_jvmdir}/%{jredir} -done - -update-alternatives --install %{_jvmdir}/jre-%{javaver}-%{origin} jre_%{javaver}_%{origin} %{_jvmdir}/%{jrelnk} %{priority} \ ---slave %{_jvmjardir}/jre-%{javaver} jre_%{javaver}_%{origin}_exports %{jvmjardir} - -update-desktop-database %{_datadir}/applications &> /dev/null || : - -/bin/touch --no-create %{_datadir}/icons/hicolor &>/dev/null || : - -exit 0 +%{post_headless %{nil}} %postun -update-desktop-database %{_datadir}/applications &> /dev/null || : - -if [ $1 -eq 0 ] ; then - /bin/touch --no-create %{_datadir}/icons/hicolor &>/dev/null - /usr/bin/gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : -fi - -exit 0 - +%{postun_script %{nil}} %postun headless - alternatives --remove java %{jrebindir}/java - alternatives --remove jre_%{origin} %{_jvmdir}/%{jredir} - alternatives --remove jre_%{javaver} %{_jvmdir}/%{jredir} - alternatives --remove jre_%{javaver}_%{origin} %{_jvmdir}/%{jrelnk} - +%{postun_headless %{nil}} %posttrans -/usr/bin/gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : +%{posttrans_script %{nil}} %post devel -ext=.gz -alternatives \ - --install %{_bindir}/javac javac %{sdkbindir}/javac %{priority} \ - --slave %{_jvmdir}/java java_sdk %{_jvmdir}/%{sdkdir} \ - --slave %{_jvmjardir}/java java_sdk_exports %{_jvmjardir}/%{sdkdir} \ - --slave %{_bindir}/appletviewer appletviewer %{sdkbindir}/appletviewer \ - --slave %{_bindir}/extcheck extcheck %{sdkbindir}/extcheck \ - --slave %{_bindir}/idlj idlj %{sdkbindir}/idlj \ - --slave %{_bindir}/jar jar %{sdkbindir}/jar \ - --slave %{_bindir}/jarsigner jarsigner %{sdkbindir}/jarsigner \ - --slave %{_bindir}/javadoc javadoc %{sdkbindir}/javadoc \ - --slave %{_bindir}/javah javah %{sdkbindir}/javah \ - --slave %{_bindir}/javap javap %{sdkbindir}/javap \ - --slave %{_bindir}/jcmd jcmd %{sdkbindir}/jcmd \ - --slave %{_bindir}/jconsole jconsole %{sdkbindir}/jconsole \ - --slave %{_bindir}/jdb jdb %{sdkbindir}/jdb \ - --slave %{_bindir}/jdeps jdeps %{sdkbindir}/jdeps \ - --slave %{_bindir}/jhat jhat %{sdkbindir}/jhat \ - --slave %{_bindir}/jinfo jinfo %{sdkbindir}/jinfo \ - --slave %{_bindir}/jmap jmap %{sdkbindir}/jmap \ - --slave %{_bindir}/jps jps %{sdkbindir}/jps \ - --slave %{_bindir}/jrunscript jrunscript %{sdkbindir}/jrunscript \ - --slave %{_bindir}/jsadebugd jsadebugd %{sdkbindir}/jsadebugd \ - --slave %{_bindir}/jstack jstack %{sdkbindir}/jstack \ - --slave %{_bindir}/jstat jstat %{sdkbindir}/jstat \ - --slave %{_bindir}/jstatd jstatd %{sdkbindir}/jstatd \ - --slave %{_bindir}/native2ascii native2ascii %{sdkbindir}/native2ascii \ - --slave %{_bindir}/rmic rmic %{sdkbindir}/rmic \ - --slave %{_bindir}/schemagen schemagen %{sdkbindir}/schemagen \ - --slave %{_bindir}/serialver serialver %{sdkbindir}/serialver \ - --slave %{_bindir}/wsgen wsgen %{sdkbindir}/wsgen \ - --slave %{_bindir}/wsimport wsimport %{sdkbindir}/wsimport \ - --slave %{_bindir}/xjc xjc %{sdkbindir}/xjc \ - --slave %{_mandir}/man1/appletviewer.1$ext appletviewer.1$ext \ - %{_mandir}/man1/appletviewer-%{uniquesuffix}.1$ext \ - --slave %{_mandir}/man1/extcheck.1$ext extcheck.1$ext \ - %{_mandir}/man1/extcheck-%{uniquesuffix}.1$ext \ - --slave %{_mandir}/man1/idlj.1$ext idlj.1$ext \ - %{_mandir}/man1/idlj-%{uniquesuffix}.1$ext \ - --slave %{_mandir}/man1/jar.1$ext jar.1$ext \ - %{_mandir}/man1/jar-%{uniquesuffix}.1$ext \ - --slave %{_mandir}/man1/jarsigner.1$ext jarsigner.1$ext \ - %{_mandir}/man1/jarsigner-%{uniquesuffix}.1$ext \ - --slave %{_mandir}/man1/javac.1$ext javac.1$ext \ - %{_mandir}/man1/javac-%{uniquesuffix}.1$ext \ - --slave %{_mandir}/man1/javadoc.1$ext javadoc.1$ext \ - %{_mandir}/man1/javadoc-%{uniquesuffix}.1$ext \ - --slave %{_mandir}/man1/javah.1$ext javah.1$ext \ - %{_mandir}/man1/javah-%{uniquesuffix}.1$ext \ - --slave %{_mandir}/man1/javap.1$ext javap.1$ext \ - %{_mandir}/man1/javap-%{uniquesuffix}.1$ext \ - --slave %{_mandir}/man1/jcmd.1$ext jcmd.1$ext \ - %{_mandir}/man1/jcmd-%{uniquesuffix}.1$ext \ - --slave %{_mandir}/man1/jconsole.1$ext jconsole.1$ext \ - %{_mandir}/man1/jconsole-%{uniquesuffix}.1$ext \ - --slave %{_mandir}/man1/jdb.1$ext jdb.1$ext \ - %{_mandir}/man1/jdb-%{uniquesuffix}.1$ext \ - --slave %{_mandir}/man1/jdeps.1$ext jdeps.1$ext \ - %{_mandir}/man1/jdeps-%{uniquesuffix}.1$ext \ - --slave %{_mandir}/man1/jhat.1$ext jhat.1$ext \ - %{_mandir}/man1/jhat-%{uniquesuffix}.1$ext \ - --slave %{_mandir}/man1/jinfo.1$ext jinfo.1$ext \ - %{_mandir}/man1/jinfo-%{uniquesuffix}.1$ext \ - --slave %{_mandir}/man1/jmap.1$ext jmap.1$ext \ - %{_mandir}/man1/jmap-%{uniquesuffix}.1$ext \ - --slave %{_mandir}/man1/jps.1$ext jps.1$ext \ - %{_mandir}/man1/jps-%{uniquesuffix}.1$ext \ - --slave %{_mandir}/man1/jrunscript.1$ext jrunscript.1$ext \ - %{_mandir}/man1/jrunscript-%{uniquesuffix}.1$ext \ - --slave %{_mandir}/man1/jsadebugd.1$ext jsadebugd.1$ext \ - %{_mandir}/man1/jsadebugd-%{uniquesuffix}.1$ext \ - --slave %{_mandir}/man1/jstack.1$ext jstack.1$ext \ - %{_mandir}/man1/jstack-%{uniquesuffix}.1$ext \ - --slave %{_mandir}/man1/jstat.1$ext jstat.1$ext \ - %{_mandir}/man1/jstat-%{uniquesuffix}.1$ext \ - --slave %{_mandir}/man1/jstatd.1$ext jstatd.1$ext \ - %{_mandir}/man1/jstatd-%{uniquesuffix}.1$ext \ - --slave %{_mandir}/man1/native2ascii.1$ext native2ascii.1$ext \ - %{_mandir}/man1/native2ascii-%{uniquesuffix}.1$ext \ - --slave %{_mandir}/man1/policytool.1$ext policytool.1$ext \ - %{_mandir}/man1/policytool-%{uniquesuffix}.1$ext \ - --slave %{_mandir}/man1/rmic.1$ext rmic.1$ext \ - %{_mandir}/man1/rmic-%{uniquesuffix}.1$ext \ - --slave %{_mandir}/man1/schemagen.1$ext schemagen.1$ext \ - %{_mandir}/man1/schemagen-%{uniquesuffix}.1$ext \ - --slave %{_mandir}/man1/serialver.1$ext serialver.1$ext \ - %{_mandir}/man1/serialver-%{uniquesuffix}.1$ext \ - --slave %{_mandir}/man1/wsgen.1$ext wsgen.1$ext \ - %{_mandir}/man1/wsgen-%{uniquesuffix}.1$ext \ - --slave %{_mandir}/man1/wsimport.1$ext wsimport.1$ext \ - %{_mandir}/man1/wsimport-%{uniquesuffix}.1$ext \ - --slave %{_mandir}/man1/xjc.1$ext xjc.1$ext \ - %{_mandir}/man1/xjc-%{uniquesuffix}.1$ext +%{post_devel %{nil}} -for X in %{origin} %{javaver} ; do - alternatives \ - --install %{_jvmdir}/java-"$X" \ - java_sdk_"$X" %{_jvmdir}/%{sdkdir} %{priority} \ - --slave %{_jvmjardir}/java-"$X" \ - java_sdk_"$X"_exports %{_jvmjardir}/%{sdkdir} -done - -update-alternatives --install %{_jvmdir}/java-%{javaver}-%{origin} java_sdk_%{javaver}_%{origin} %{_jvmdir}/%{sdkdir} %{priority} \ ---slave %{_jvmjardir}/java-%{javaver}-%{origin} java_sdk_%{javaver}_%{origin}_exports %{_jvmjardir}/%{sdkdir} +%postun devel +%{postun_devel %{nil}} -update-desktop-database %{_datadir}/applications &> /dev/null || : -/bin/touch --no-create %{_datadir}/icons/hicolor &>/dev/null || : +%posttrans devel +%{posttrans_devel %{nil}} -exit 0 +%post javadoc +%{post_javadoc %{nil}} -%postun devel - alternatives --remove javac %{sdkbindir}/javac - alternatives --remove java_sdk_%{origin} %{_jvmdir}/%{sdkdir} - alternatives --remove java_sdk_%{javaver} %{_jvmdir}/%{sdkdir} - alternatives --remove java_sdk_%{javaver}_%{origin} %{_jvmdir}/%{sdkdir} +%postun javadoc +%{postun_javadoc %{nil}} +%endif -update-desktop-database %{_datadir}/applications &> /dev/null || : +%if %{include_debug_build} +%post debug +%{post_script %{debug_suffix_unquoted}} -if [ $1 -eq 0 ] ; then - /bin/touch --no-create %{_datadir}/icons/hicolor &>/dev/null - /usr/bin/gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : -fi +%post headless-debug +%{post_headless %{debug_suffix_unquoted}} -exit 0 +%postun debug +%{postun_script %{debug_suffix_unquoted}} -%posttrans devel -/usr/bin/gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : +%postun headless-debug +%{postun_headless %{debug_suffix_unquoted}} +%posttrans debug +%{posttrans_script %{debug_suffix_unquoted}} -%post javadoc -alternatives \ - --install %{_javadocdir}/java javadocdir %{_javadocdir}/%{uniquejavadocdir}/api \ - %{priority} +%post devel-debug +%{post_devel %{debug_suffix_unquoted}} -exit 0 +%postun devel-debug +%{postun_devel %{debug_suffix_unquoted}} -%postun javadoc - alternatives --remove javadocdir %{_javadocdir}/%{uniquejavadocdir}/api +%posttrans devel-debug +%{posttrans_devel %{debug_suffix_unquoted}} -exit 0 +%post javadoc-debug +%{post_javadoc %{debug_suffix_unquoted}} +%postun javadoc-debug +%{postun_javadoc %{debug_suffix_unquoted}} +%endif +%if %{include_normal_build} %files -f %{name}.files -%{_datadir}/icons/hicolor/*x*/apps/java-%{javaver}.png -%{_datadir}/applications/*policytool.desktop +# main package builds always +%{files_jre %{nil}} +%else +%files +# placeholder +%endif + +%if %{include_normal_build} +%files headless -f %{name}.files-headless # important note, see https://bugzilla.redhat.com/show_bug.cgi?id=1038092 for whole issue # all config/norepalce files (and more) have to be declared in pretrans. See pretrans -%files headless -f %{name}.files-headless -%defattr(-,root,root,-) -%doc %{buildoutputdir}/images/j2sdk-image/jre/ASSEMBLY_EXCEPTION -%doc %{buildoutputdir}/images/j2sdk-image/jre/LICENSE -%doc %{buildoutputdir}/images/j2sdk-image/jre/THIRD_PARTY_README -%dir %{_jvmdir}/%{sdkdir} -%{_jvmdir}/%{jrelnk} -%{_jvmjardir}/%{jrelnk} -%{_jvmprivdir}/* -%{jvmjardir} -%dir %{_jvmdir}/%{jredir}/lib/security -%{_jvmdir}/%{jredir}/lib/security/cacerts -%config(noreplace) %{_jvmdir}/%{jredir}/lib/security/US_export_policy.jar -%config(noreplace) %{_jvmdir}/%{jredir}/lib/security/local_policy.jar -%config(noreplace) %{_jvmdir}/%{jredir}/lib/security/java.policy -%config(noreplace) %{_jvmdir}/%{jredir}/lib/security/java.security -%config(noreplace) %{_jvmdir}/%{jredir}/lib/security/blacklisted.certs -%config(noreplace) %{_jvmdir}/%{jredir}/lib/logging.properties -%{_mandir}/man1/java-%{uniquesuffix}.1* -%{_mandir}/man1/jjs-%{uniquesuffix}.1* -%{_mandir}/man1/keytool-%{uniquesuffix}.1* -%{_mandir}/man1/orbd-%{uniquesuffix}.1* -%{_mandir}/man1/pack200-%{uniquesuffix}.1* -%{_mandir}/man1/rmid-%{uniquesuffix}.1* -%{_mandir}/man1/rmiregistry-%{uniquesuffix}.1* -%{_mandir}/man1/servertool-%{uniquesuffix}.1* -%{_mandir}/man1/tnameserv-%{uniquesuffix}.1* -%{_mandir}/man1/unpack200-%{uniquesuffix}.1* -%config(noreplace) %{_jvmdir}/%{jredir}/lib/security/nss.cfg -%{_jvmdir}/%{jredir}/lib/audio/ -%ifarch %{jit_arches} -%attr(664, root, root) %ghost %{_jvmdir}/%{jredir}/lib/%{archinstall}/server/classes.jsa -%attr(664, root, root) %ghost %{_jvmdir}/%{jredir}/lib/%{archinstall}/client/classes.jsa -%endif - -%{_jvmdir}/%{jredir}/lib/%{archinstall}/server/ -%{_jvmdir}/%{jredir}/lib/%{archinstall}/client/ +%{files_jre_headless %{nil}} %files devel -%defattr(-,root,root,-) -%doc %{buildoutputdir}/images/j2sdk-image/ASSEMBLY_EXCEPTION -%doc %{buildoutputdir}/images/j2sdk-image/LICENSE -%doc %{buildoutputdir}/images/j2sdk-image/THIRD_PARTY_README -%dir %{_jvmdir}/%{sdkdir}/bin -%dir %{_jvmdir}/%{sdkdir}/include -%dir %{_jvmdir}/%{sdkdir}/lib -%if %{with_systemtap} -%dir %{_jvmdir}/%{sdkdir}/tapset -%endif -%{_jvmdir}/%{sdkdir}/bin/* -%{_jvmdir}/%{sdkdir}/include/* -%{_jvmdir}/%{sdkdir}/lib/* -%if %{with_systemtap} -%{_jvmdir}/%{sdkdir}/tapset/*.stp -%endif -%{_jvmjardir}/%{sdkdir} -%{_datadir}/applications/*jconsole.desktop -%{_mandir}/man1/appletviewer-%{uniquesuffix}.1* -%{_mandir}/man1/extcheck-%{uniquesuffix}.1* -%{_mandir}/man1/idlj-%{uniquesuffix}.1* -%{_mandir}/man1/jar-%{uniquesuffix}.1* -%{_mandir}/man1/jarsigner-%{uniquesuffix}.1* -%{_mandir}/man1/javac-%{uniquesuffix}.1* -%{_mandir}/man1/javadoc-%{uniquesuffix}.1* -%{_mandir}/man1/javah-%{uniquesuffix}.1* -%{_mandir}/man1/javap-%{uniquesuffix}.1* -%{_mandir}/man1/jconsole-%{uniquesuffix}.1* -%{_mandir}/man1/jcmd-%{uniquesuffix}.1* -%{_mandir}/man1/jdb-%{uniquesuffix}.1* -%{_mandir}/man1/jdeps-%{uniquesuffix}.1* -%{_mandir}/man1/jhat-%{uniquesuffix}.1* -%{_mandir}/man1/jinfo-%{uniquesuffix}.1* -%{_mandir}/man1/jmap-%{uniquesuffix}.1* -%{_mandir}/man1/jps-%{uniquesuffix}.1* -%{_mandir}/man1/jrunscript-%{uniquesuffix}.1* -%{_mandir}/man1/jsadebugd-%{uniquesuffix}.1* -%{_mandir}/man1/jstack-%{uniquesuffix}.1* -%{_mandir}/man1/jstat-%{uniquesuffix}.1* -%{_mandir}/man1/jstatd-%{uniquesuffix}.1* -%{_mandir}/man1/native2ascii-%{uniquesuffix}.1* -%{_mandir}/man1/policytool-%{uniquesuffix}.1* -%{_mandir}/man1/rmic-%{uniquesuffix}.1* -%{_mandir}/man1/schemagen-%{uniquesuffix}.1* -%{_mandir}/man1/serialver-%{uniquesuffix}.1* -%{_mandir}/man1/wsgen-%{uniquesuffix}.1* -%{_mandir}/man1/wsimport-%{uniquesuffix}.1* -%{_mandir}/man1/xjc-%{uniquesuffix}.1* -%if %{with_systemtap} -%{tapsetroot} -%endif +%{files_devel %{nil}} %files demo -f %{name}-demo.files -%defattr(-,root,root,-) -%doc %{buildoutputdir}/images/j2sdk-image/jre/LICENSE +%{files_demo %{nil}} %files src -%defattr(-,root,root,-) -%doc README.src -%{_jvmdir}/%{sdkdir}/src.zip +%{files_src %{nil}} %files javadoc -%defattr(-,root,root,-) -%doc %{_javadocdir}/%{uniquejavadocdir} -%doc %{buildoutputdir}/images/j2sdk-image/jre/LICENSE +%{files_javadoc %{nil}} %files accessibility -%{_jvmdir}/%{jredir}/lib/%{archinstall}/libatk-wrapper.so -%{_jvmdir}/%{jredir}/lib/ext/java-atk-wrapper.jar -%{_jvmdir}/%{jredir}/lib/accessibility.properties +%{files_accessibility %{nil}} +%endif + +%if %{include_debug_build} +%files debug -f %{name}.files-debug +%{files_jre %{debug_suffix_unquoted}} + +%files headless-debug -f %{name}.files-headless-debug +%{files_jre_headless %{debug_suffix_unquoted}} + +%files devel-debug +%{files_devel %{debug_suffix_unquoted}} + +%files demo-debug -f %{name}-demo.files-debug +%{files_demo %{debug_suffix_unquoted}} + +%files src-debug +%{files_src %{debug_suffix_unquoted}} + +%files javadoc-debug +%{files_javadoc %{debug_suffix_unquoted}} + +%files accessibility-debug +%{files_accessibility %{debug_suffix_unquoted}} +%endif + %changelog -* Thu Feb 12 2015 Jiri Vanek - 1:1.8.0.25-4.b12 +* Tue Mar 03 2015 Severin Gehwolf - 1:1.8.0.40-21.b25 +- Added compiler no-warn- + +* Fri Feb 20 2015 Omair Majid - 1:1.8.0.40-21.b25 +- Fix zero interpreter build. + +* Thu Feb 12 2015 Omair Majid - 1:1.8.0.40-21.b25 +- Fix building with gcc 5 by ignoring return-local-addr warning +- Include additional debugging info for java class files and test that they are + present + +* Thu Feb 12 2015 Jiri Vanek - 1:1.8.0.40-20.b25 +- bumped to b25 +- removed upstreamed patch11 hotspot-build-j-directive.patch - policies repacked to stop spamming yum update - added and used source20 repackReproduciblePolycies.sh - added mehanism to force priority size -* Thu Jan 22 2015 Severin Gehwolf - 1:1.8.0.31-3.b13 -- Check for one additional md5sum in post scriptlet. +* Fri Jan 09 2015 Dan Horák - 1:1.8.0.40-19.b12 +- refresh s390 patches -* Wed Jan 21 2015 Severin Gehwolf - 1:1.8.0.31-2.b13 -- Replace unmodified java.security file via headless post scriptlet. - -* Mon Jan 12 2015 Severin Gehwolf - 1:1.8.0.31-1.b13 -- Update to January CPU patch update. - -* Fri Nov 07 2014 Jiri Vanek - 1:1.8.0.25-5.b12 +* Fri Nov 07 2014 Jiri Vanek - 1:1.8.0.40-18.b12 - updated arm64 tarball to jdk8-jdk8u40-b12-aarch64-1263.tar.xz -* Fri Nov 07 2014 Jiri Vanek - 1:1.8.0.25-4.b12 +* Fri Nov 07 2014 Jiri Vanek - 1:1.8.0.40-17.b12 - obsoleted gcj and sindoc. rh1149674 and rh1149675 +- removed backup/restore on images and docs in favor of reconfigure in different directory + +* Mon Nov 03 2014 Jiri Vanek - 1:1.8.0.40-16.b12 +- updated both noral and aarch64 tarballs to u40b12 + +* Mon Nov 03 2014 Jiri Vanek - 1:1.8.0.40-15.b02 +- enabled debug packages - removed all provides duplicating package name +- comments about files moved inside files section (to prevent different javadoc postuns) + - see (RH1160693) + +* Fri Oct 31 2014 Omair Majid - 1:1.8.0.40-13.b02 +- Build against libjpeg-turbo-1.4 -* Mon Nov 03 2014 Jiri Vanek - 1:1.8.0.25-3.b12 -- updated aarch64 tarball to u40b12 +* Fri Oct 24 2014 Jiri Vanek - 1:1.8.0.40-13.b02 +- preparing for parallel debug+normal build +- files and scripelts moved to extendable macros as first step to dual build +- install and build may be done in loop for both release and slowdebug +- debugbuild off untill its completed -* Fri Oct 24 2014 Jiri Vanek - 1:1.8.0.25-2.b18 +* Fri Oct 24 2014 Jiri Vanek - 1:1.8.0.40-12.b02 - added patch12,removeSunEcProvider-RH1154143 - xdump excluded from ppc64le (rh1156151) - Add check for src.zip completeness. See RH1130490 (by sgehwolf@redhat.com) - Resolves: rhbz#1125260 -* Wed Oct 15 2014 Jiri Vanek - 1:1.8.0.25-0.b18 -- updated to security u25 - -* Thu Oct 02 2014 Dan Horák - 1:1.8.0.20-12.b26 -- refresh the size_t patch for u20 from rhel7 - -* Thu Sep 25 2014 Jiri Vanek - 1:1.8.0.20-11.b26 +* Thu Sep 25 2014 Jiri Vanek - 1:1.8.0.40-11.b02 - fixing flags usages (thanx to jerboaa!) * Thu Sep 25 2014 Jiri Vanek - 1:1.8.0.20-10.b26 @@ -1436,7 +1763,7 @@ exit 0 - Update aarch64 hotspot to latest upstream version * Fri Sep 05 2014 Omair Majid - 1:1.8.0.40-6.b26 -- Use %%{power64} instead of %%{ppc64} +- Use %%{power64} instead of %%{ppc64}. * Thu Sep 04 2014 Jiri Vanek - 1:1.8.0.40-5.b26 - Update aarch64 hotspot to jdk7u40-b02 to match the rest of the JDK @@ -1453,20 +1780,22 @@ exit 0 - requirement Requires: javazi-1.8/tzdb.dat changed to tzdata-java >= 2014f-1 - see RH1130800#c5 -* Wed Aug 27 2014 Jiri Vanek - 1:1.8.0.20-1.b26 -- updated to u20-b26 -- adapted patch9999 enableArm64.patch -- adapted patch100 s390-java-opts.patch -- adapted patch102 size_t.patch +* Wed Aug 27 2014 Jiri Vanek - 1:1.8.0.40-1.b02 +- adapted aarch64 patch - removed upstreamed patch 0001-PPC64LE-arch-support-in-openjdk-1.8.patch -* Wed Aug 27 2014 Jiri Vanek - 1:1.8.0.20-1.b23 -- updated to u20-b23 +* Wed Aug 27 2014 Jiri Vanek - 1:1.8.0.40-1.b02 +- updated to u40-b02 +- adapted aarch64 patches + +* Wed Aug 27 2014 Jiri Vanek - 1:1.8.0.40-1.b01 +- updated to u40-b01 - adapted java-1.8.0-openjdk-accessible-toolkit.patch - adapted system-lcms.patch - removed patch8 set-active-window.patch - removed patch9 javadoc-error-jdk-8029145.patch - removed patch10 javadoc-error-jdk-8037484.patch +- removed patch99 applet-hole.patch - itw 1.5.1 is able to ive without it * Tue Aug 19 2014 Jiri Vanek - 1:1.8.0.11-19.b12 - fixed desktop icons diff --git a/libjpeg-turbo-1.4-compat.patch b/libjpeg-turbo-1.4-compat.patch new file mode 100644 index 0000000..26ffc7b --- /dev/null +++ b/libjpeg-turbo-1.4-compat.patch @@ -0,0 +1,33 @@ +Remove uses of FAR in jpeg code + +Upstream libjpeg-trubo removed the (empty) FAR macro: +http://sourceforge.net/p/libjpeg-turbo/code/1312/ + +Adjust our code to not use the undefined FAR macro anymore. + +diff --git a/src/share/native/sun/awt/image/jpeg/imageioJPEG.c b/src/share/native/sun/awt/image/jpeg/imageioJPEG.c +--- jdk8/jdk/src/share/native/sun/awt/image/jpeg/imageioJPEG.c ++++ jdk8/jdk/src/share/native/sun/awt/image/jpeg/imageioJPEG.c +@@ -1385,7 +1385,7 @@ + /* and fill it in */ + dst_ptr = icc_data; + for (seq_no = first; seq_no < last; seq_no++) { +- JOCTET FAR *src_ptr = icc_markers[seq_no]->data + ICC_OVERHEAD_LEN; ++ JOCTET *src_ptr = icc_markers[seq_no]->data + ICC_OVERHEAD_LEN; + unsigned int length = + icc_markers[seq_no]->data_length - ICC_OVERHEAD_LEN; + +diff --git a/src/share/native/sun/awt/image/jpeg/jpegdecoder.c b/src/share/native/sun/awt/image/jpeg/jpegdecoder.c +--- jdk8/jdk/src/share/native/sun/awt/image/jpeg/jpegdecoder.c ++++ jdk8/jdk/src/share/native/sun/awt/image/jpeg/jpegdecoder.c +@@ -41,9 +41,8 @@ + #include "jni.h" + #include "jni_util.h" + +-/* undo "system_boolean" hack and undef FAR since we don't use it anyway */ ++/* undo "system_boolean" hack since we don't use it anyway */ + #undef boolean +-#undef FAR + #include + #include "jerror.h" + diff --git a/sources b/sources index 17b1b2c..7675598 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -10be98f014ee6c280f41a54b6824fce6 jdk8u-jdk8u31-b13.tar.xz +3a7c67223ec3d78d5d36f3ead9d37718 jdk8u40-jdk8u40-b25.tar.xz 94ca5a45c3cb3b85c4577d0891166007 systemtap-tapset.tar.gz -ea497b7a37fa2cf4e4e68fafda059c49 jdk8-jdk8u40-b12-aarch64-hs3135441ed942.tar.xz +f3ac4f72d7563cbba4f25751056a9bc3 jdk8-jdk8u40-b12-aarch64-1263.tar.xz diff --git a/zero-interpreter-fix.patch b/zero-interpreter-fix.patch new file mode 100644 index 0000000..8fdbd90 --- /dev/null +++ b/zero-interpreter-fix.patch @@ -0,0 +1,25 @@ +# HG changeset patch +# User roland +# Date 1418632606 -3600 +# Node ID a733dad6fc1e2572ed227e898da35e0053cbb7c5 +# Parent db035d4ba1bd25ac8803bb2d177cb35681eb6907 +8067231: Zero builds fails after JDK-6898462 +Summary: Interpreter::remove_activation_entry() is not defined for the C++ interpreter +Reviewed-by: roland, coleenp +Contributed-by: Severin Gehwolf + +--- jdk8/hotspot/src/share/vm/interpreter/interpreterRuntime.cpp Sat Dec 13 01:24:10 2014 +0300 ++++ jdk8/hotspot/src/share/vm/interpreter/interpreterRuntime.cpp Mon Dec 15 09:36:46 2014 +0100 +@@ -394,7 +394,11 @@ + // during deoptimization so the interpreter needs to skip it when + // the frame is popped. + thread->set_do_not_unlock_if_synchronized(true); ++#ifdef CC_INTERP ++ return (address) -1; ++#else + return Interpreter::remove_activation_entry(); ++#endif + } + + // Need to do this check first since when _do_not_unlock_if_synchronized +