used extracted lua scripts., now depnding on copy-jdk-configs, config files persisting in pre instead of %pretrans
This commit is contained in:
		
							parent
							
								
									07a5b28e18
								
							
						
					
					
						commit
						4cecfa01fb
					
				| @ -593,6 +593,8 @@ Requires: javapackages-tools | |||||||
| Requires: tzdata-java >= 2015d | Requires: tzdata-java >= 2015d | ||||||
| # libsctp.so.1 is being `dlopen`ed on demand | # libsctp.so.1 is being `dlopen`ed on demand | ||||||
| Requires: lksctp-tools | Requires: lksctp-tools | ||||||
|  | # tool to copy jdk's configs | ||||||
|  | Requires(pre): copy-jdk-configs | ||||||
| # Post requires alternatives to install tool alternatives. | # Post requires alternatives to install tool alternatives. | ||||||
| Requires(post):   %{_sbindir}/alternatives | Requires(post):   %{_sbindir}/alternatives | ||||||
| # in version 1.7 and higher for --family switch | # in version 1.7 and higher for --family switch | ||||||
| @ -697,7 +699,7 @@ Obsoletes: java-1.7.0-openjdk-accessibility%1 | |||||||
| 
 | 
 | ||||||
| Name:    java-%{javaver}-%{origin} | Name:    java-%{javaver}-%{origin} | ||||||
| Version: %{javaver}.%{updatever} | Version: %{javaver}.%{updatever} | ||||||
| Release: 7.%{buildver}%{?dist} | Release: 8.%{buildver}%{?dist} | ||||||
| # java-1.5.0-ibm from jpackage.org set Epoch to 1 for unknown reasons, | # 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 | # 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 | # also included the epoch in their virtual provides.  This created a | ||||||
| @ -1459,174 +1461,10 @@ done | |||||||
| 
 | 
 | ||||||
| %if %{include_normal_build}  | %if %{include_normal_build}  | ||||||
| # intentioanlly only for non-debug | # intentioanlly only for non-debug | ||||||
| %pretrans headless -p <lua> | %pre headless | ||||||
| -- see https://bugzilla.redhat.com/show_bug.cgi?id=1038092 for whole issue  | # see https://bugzilla.redhat.com/show_bug.cgi?id=1038092 for whole issue | ||||||
|  | %{_libexecdir}/copy_jdk_configs.lua   --currentjvm "%{uniquesuffix %{nil}}" --jvmdir "%{_jvmdir %{nil}}" --origname "%{name}" --origjavaver "%{javaver}" --arch "%{_arch}" | ||||||
| 
 | 
 | ||||||
| local posix = require "posix" |  | ||||||
| 
 |  | ||||||
| local currentjvm = "%{uniquesuffix %{nil}}" |  | ||||||
| local jvmdir = "%{_jvmdir %{nil}}" |  | ||||||
| local jvmDestdir = jvmdir |  | ||||||
| local origname = "%{name}" |  | ||||||
| local origjavaver = "%{javaver}" |  | ||||||
| --trasnform substitute names to lua patterns |  | ||||||
| --all percentages must be doubled for case of RPM escapingg |  | ||||||
| local name = string.gsub(string.gsub(origname, "%%-", "%%%%-"), "%%.", "%%%%.") |  | ||||||
| local javaver = string.gsub(origjavaver, "%%.", "%%%%.") |  | ||||||
| local arch ="%{_arch}" |  | ||||||
| local  debug = false; |  | ||||||
| 
 |  | ||||||
| local jvms = { } |  | ||||||
| 
 |  | ||||||
| local caredFiles = {"jre/lib/calendars.properties", |  | ||||||
|               "jre/lib/content-types.properties", |  | ||||||
|               "jre/lib/flavormap.properties", |  | ||||||
|               "jre/lib/logging.properties", |  | ||||||
|               "jre/lib/net.properties", |  | ||||||
|               "jre/lib/psfontj2d.properties", |  | ||||||
|               "jre/lib/sound.properties", |  | ||||||
|               "jre/lib/deployment.properties", |  | ||||||
|               "jre/lib/deployment.config", |  | ||||||
|               "jre/lib/security/US_export_policy.jar", |  | ||||||
|               "jre/lib/security/java.policy", |  | ||||||
|               "jre/lib/security/java.security", |  | ||||||
|               "jre/lib/security/local_policy.jar", |  | ||||||
|               "jre/lib/security/nss.cfg,", |  | ||||||
|               "jre/lib/ext"} |  | ||||||
| 
 |  | ||||||
| function splitToTable(source, pattern) |  | ||||||
|   local i1 = string.gmatch(source, pattern)  |  | ||||||
|   local l1 = {} |  | ||||||
|   for i in i1 do |  | ||||||
|     table.insert(l1, i) |  | ||||||
|   end |  | ||||||
|   return l1 |  | ||||||
| end |  | ||||||
| 
 |  | ||||||
| if (debug) then |  | ||||||
|   print("started") |  | ||||||
| end; |  | ||||||
| 
 |  | ||||||
| foundJvms = posix.dir(jvmdir); |  | ||||||
| if (foundJvms == nil) then |  | ||||||
|   if (debug) then |  | ||||||
|     print("no, or nothing in "..jvmdir.." exit") |  | ||||||
|   end; |  | ||||||
|   return |  | ||||||
| end |  | ||||||
| 
 |  | ||||||
| if (debug) then |  | ||||||
|   print("found "..#foundJvms.."jvms") |  | ||||||
| end; |  | ||||||
| 
 |  | ||||||
| for i,p in pairs(foundJvms) do |  | ||||||
| -- regex similar to %{_jvmdir}/%{name}-%{javaver}*%{_arch} bash command |  | ||||||
| --all percentages must be doubled for case of RPM escapingg |  | ||||||
|   if (string.find(p, name.."%%-"..javaver..".*"..arch) ~= nil ) then |  | ||||||
|     if (debug) then |  | ||||||
|       print("matched:  "..p) |  | ||||||
|     end; |  | ||||||
|     if (currentjvm ==  p) then |  | ||||||
|       if (debug) then |  | ||||||
|         print("this jdk is already installed. exiting lua script") |  | ||||||
|       end; |  | ||||||
|       return |  | ||||||
|     end ; |  | ||||||
|     table.insert(jvms, p) |  | ||||||
|   else |  | ||||||
|     if (debug) then |  | ||||||
|       print("NOT matched:  "..p) |  | ||||||
|     end; |  | ||||||
|   end |  | ||||||
| end |  | ||||||
| 
 |  | ||||||
| if (#jvms <=0) then  |  | ||||||
|   if (debug) then |  | ||||||
|     print("no matching jdk in "..jvmdir.." exit") |  | ||||||
|   end; |  | ||||||
|   return |  | ||||||
| end; |  | ||||||
| 
 |  | ||||||
| if (debug) then |  | ||||||
|   print("matched "..#jvms.." jdk in "..jvmdir) |  | ||||||
| end; |  | ||||||
| 
 |  | ||||||
| --full names are like java-1.7.0-openjdk-1.7.0.60-2.4.5.1.fc20.x86_64 |  | ||||||
| table.sort(jvms , function(a,b)  |  | ||||||
| -- version-sort |  | ||||||
| -- split on non word: . -  |  | ||||||
|   local l1 = splitToTable(a, "[^%.-]+")  |  | ||||||
|   local l2 = splitToTable(b, "[^%.-]+")  |  | ||||||
|   for x = 1, math.min(#l1, #l2) do |  | ||||||
|     local l1x = tonumber(l1[x]) |  | ||||||
|     local l2x = tonumber(l2[x]) |  | ||||||
|     if (l1x ~= nil and l2x ~= nil)then |  | ||||||
| --if hunks are numbers, go with them  |  | ||||||
|       if (l1x < l2x) then return true; end |  | ||||||
|       if (l1x > l2x) then return false; end |  | ||||||
|     else |  | ||||||
|       if (l1[x] < l2[x]) then return true; end |  | ||||||
|       if (l1[x] > l2[x]) then return false; end |  | ||||||
|     end |  | ||||||
| -- if hunks are equals then move to another pair of hunks |  | ||||||
|   end |  | ||||||
| return a<b |  | ||||||
| 
 |  | ||||||
| end) |  | ||||||
| 
 |  | ||||||
| if (debug) then |  | ||||||
|   print("sorted lsit of jvms") |  | ||||||
|   for i,file in pairs(jvms) do |  | ||||||
|     print(file) |  | ||||||
|   end |  | ||||||
| end |  | ||||||
| 
 |  | ||||||
| latestjvm = jvms[#jvms] |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| for i,file in pairs(caredFiles) do |  | ||||||
|   local SOURCE=jvmdir.."/"..latestjvm.."/"..file |  | ||||||
|   local DEST=jvmDestdir.."/"..currentjvm.."/"..file |  | ||||||
|   if (debug) then |  | ||||||
|     print("going to copy "..SOURCE) |  | ||||||
|     print("to  "..DEST) |  | ||||||
|   end; |  | ||||||
|   local stat1 = posix.stat(SOURCE, "type"); |  | ||||||
|   if (stat1 ~= nil) then |  | ||||||
|   if (debug) then |  | ||||||
|     print(SOURCE.." exists") |  | ||||||
|   end; |  | ||||||
|   local s = "" |  | ||||||
|   local dirs = splitToTable(DEST, "[^/]+")  |  | ||||||
|   for i,d in pairs(dirs) do |  | ||||||
|     if (i == #dirs) then |  | ||||||
|       break |  | ||||||
|     end |  | ||||||
|     s = s.."/"..d |  | ||||||
|     local stat2 = posix.stat(s, "type"); |  | ||||||
|     if (stat2 == nil) then |  | ||||||
|       if (debug) then |  | ||||||
|         print(s.." does not exists, creating") |  | ||||||
|       end; |  | ||||||
|       posix.mkdir(s) |  | ||||||
|     else |  | ||||||
|       if (debug) then |  | ||||||
|         print(s.." exists,not creating") |  | ||||||
|       end; |  | ||||||
|     end |  | ||||||
|   end |  | ||||||
| -- Copy with -a to keep everything intact |  | ||||||
|     local exe = "cp".." -ar "..SOURCE.." "..DEST |  | ||||||
|     if (debug) then |  | ||||||
|       print("executing "..exe) |  | ||||||
|     end;     |  | ||||||
|     os.execute(exe) |  | ||||||
|   else |  | ||||||
|     if (debug) then |  | ||||||
|       print(SOURCE.." does not exists") |  | ||||||
|     end; |  | ||||||
|   end |  | ||||||
| end |  | ||||||
| 
 | 
 | ||||||
| %post  | %post  | ||||||
| %{post_script %{nil}} | %{post_script %{nil}} | ||||||
| @ -1747,6 +1585,11 @@ end | |||||||
| %endif | %endif | ||||||
| 
 | 
 | ||||||
| %changelog | %changelog | ||||||
|  | * Tue Dec 08 2015 Jiri Vanek <jvanek@redhat.com> - 1:1.8.0.65-8.b17 | ||||||
|  | - used extracted lua scripts. | ||||||
|  | - now depnding on copy-jdk-configs | ||||||
|  | - config files persisting in pre instead of %pretrans | ||||||
|  | 
 | ||||||
| * Tue Dec 08 2015 Jiri Vanek <jvanek@redhat.com> - 1:1.8.0.65-7.b17 | * Tue Dec 08 2015 Jiri Vanek <jvanek@redhat.com> - 1:1.8.0.65-7.b17 | ||||||
| - changed way of generating the sources. As result: | - changed way of generating the sources. As result: | ||||||
| - "updated" to aarch64-jdk8u65-b17 (from aarch64-port/jdk8u60) | - "updated" to aarch64-jdk8u65-b17 (from aarch64-port/jdk8u60) | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user