copy-jdk-configs-2.2-3.el7$>AfoHm k>_></?/d  = +NT\l t |  P Tdx(8 9 :f G HH XI hX lY p\ |] ^ b (d e f l t u v w lx |y  ./}//Ccopy-jdk-configs2.23.el7JDKs configuration files copierUtility script to transfer JDKs configuration files between updates or for archiving. With script to fix incorrectly created rpmnew filesYc1bm.rdu2.centos.org3CentOSBSDCentOS BuildSystem Unspecifiedhttps://pagure.io/copy_jdk_configslinuxnoarch DӁA큤YHYHYYHa63ff318ac7fb731aa9235e30f6e2f2087efdadce0e5d31cb33c78f468baf2b0160e19d8a796518c73bb646c4653612379896feb8ef741b65ef57bc6b9544eb0386eaf71633bf096e6c17471f50e867dabdf14d38a157ca27a0425dc583eb9ferootrootrootrootrootrootrootrootcopy-jdk-configs-2.2-3.el7.src.rpmcopy-jdk-configs@      /bin/bash/bin/shluarpmlib(BuiltinLuaScripts)rpmlib(CompressedFileNames)rpmlib(FileDigests)rpmlib(PayloadFilesHavePrefix)rpmlib(PayloadIsXz)4.2.2-13.0.4-14.6.0-14.0-15.2-14.11.3YGY?X@WWW @W @VVqR@VUJiri Vanek - 2.2-3Jiri Vanek - 2.2-1Jiri Vanek - 1.3-1Jiri Vanek - 1.2-1Jiri Vanek - 1.1-5Jiri Vanek - 1.1-3Jiri Vanek - 1.1-3Jiri Vanek - 1.1-3Jiri Vanek - 1.1-2Jiri Vanek - 1.1-1- updated to latest head - Resolves: rhbz#1427463- added "jre/lib/security/blacklisted.certs" to cared files - moved to newest release 2.1 - moved to new upstream at pagure.io - added new script of copy_jdk_configs_fixFiles.sh - copy_jdk_configs.lua aligned to it - Resolves: rhbz#1427463- updated to upstream 1.3 (adding jre/lib/security/cacerts file) - Resolves: rhbz#1399719- updated to 1,3 which fixing nss minor issue - Resolves: rhbz#1296430- posttrans silenced, the error is appearing only in state, when there is nothing to copy - Resolves: rhbz#1296430- commented requires on lua posix to stop blocking composes. - changed it to 644 to dont mislead by executable flags - Resolves: rhbz#1296430- inital commit to rhel - Resolves: rhbz#1296430- pretrasn lua call now done in pcall (protected call) - also posttrans now always return 0- package now "installs" also during pretrans, so pretrasn scripts can use it - pretrasn "install" is removed in postrans- initial package2.2-3.el7copy_jdk_configs.luacopy_jdk_configs_fixFiles.shcopy-jdk-configs-2.2LICENSE/usr/libexec//usr/share/licenses//usr/share/licenses/copy-jdk-configs-2.2/-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=genericdrpmxz2noarch-redhat-linux-gnuLua script, ASCII text executableBourne-Again shell script, ASCII text executabledirectoryASCII textRfunction createPretransScript() -- the sript must be available during pretrans, so multiply it to tmp os.execute("mkdir -p /var/lib/rpm-state") temp_path="/var/lib/rpm-state/copy_jdk_configs.lua" -- print("generating " .. temp_path) file = io.open(temp_path, "w") file:write([[#!/usr/bin/lua -- rpm call -- lua -- copy_jdk_configs.lua --currentjvm "%{uniquesuffix %{nil}}" --jvmdir "%{_jvmdir %{nil}}" --origname "%{name}" --origjavaver "%{javaver}" --arch "%{_arch}" --debug true --test call --lua -- copy_jdk_configs.lua --currentjvm "java-1.8.0-openjdk-1.8.0.65-3.b17.fc22.x86_64" --jvmdir "/usr/lib/jvm" --origname "java-1.8.0-openjdk" --origjavaver "1.8.0" --arch "x86_64" --debug true --jvmDestdir /home/jvanek/Desktop -- yum install lua-posix local posix = require "posix" -- the one we are installing local currentjvm = nil local jvmdir = nil local jvmDestdir = nil local origname = nil local origjavaver = nil local arch = nil local debug = false; local temp = nil; for i=1,#arg,2 do if (arg[i] == "--help" or arg[i] == "-h") then print("all but jvmDestdir and debug are mandatory") print(" --currentjvm") print(" NVRA of currently installed java") print(" --jvmdir") print(" Directory where to find this kind of virtual machine. Generally /usr/lib/jvm") print(" --origname") print(" convinient switch to determine jdk. Generally java-1.X.0-vendor") print(" --origjavaver") print(" convinient switch to determine jdk's version. Generally 1.X.0") print(" --arch") print(" convinient switch to determine jdk's arch") print(" --jvmDestdir") print(" Migration/testing switch. Target Mostly same as jvmdir, but you may wont to copy ouside it.") print(" --debug") print(" Enables printing out whats going on. true/false") print(" --temp") print(" optional file to save intermediate result - directory configs were copied from") os.exit(0) end if (arg[i] == "--currentjvm") then currentjvm=arg[i+1] end if (arg[i] == "--jvmdir") then jvmdir=arg[i+1] end if (arg[i] == "--origname") then origname=arg[i+1] end if (arg[i] == "--origjavaver") then origjavaver=arg[i+1] end if (arg[i] == "--arch") then arch=arg[i+1] end if (arg[i] == "--jvmDestdir") then jvmDestdir=arg[i+1] end if (arg[i] == "--debug") then --no string, boolean, workaround if (arg[i+1] == "true") then debug = true end end if (arg[i] == "--temp") then temp=arg[i+1] end end if (jvmDestdir == nil) then jvmDestdir = jvmdir end if (debug) then print("--currentjvm:"); print(currentjvm); print("--jvmdir:"); print(jvmdir); print("--jvmDestdir:"); print(jvmDestdir); print("--origname:"); print(origname); print("--origjavaver:"); print(origjavaver); print("--arch:"); print(arch); print("--debug:"); print(debug); end --trasnform substitute names to lua patterns local name = string.gsub(string.gsub(origname, "%-", "%%-"), "%.", "%%.") local javaver = string.gsub(origjavaver, "%.", "%%.") 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/security/cacerts", "jre/lib/security/blacklisted.certs", "jre/lib/ext", "lib/calendars.properties", "lib/content-types.properties", "lib/flavormap.properties", "lib/logging.properties", "lib/net.properties", "lib/psfontj2d.properties", "lib/sound.properties", "lib/deployment.properties", "lib/deployment.config", "lib/security/US_export_policy.jar", "lib/security/java.policy", "lib/security/java.security", "lib/security/local_policy.jar", "lib/security/nss.cfg", "lib/security/cacerts", "lib/security/blacklisted.certs", "lib/security/default.policy", "conf/security/policy/limited/exempt_local.policy", "conf/security/policy/limited/default_local.policy", "conf/security/policy/limited/default_US_export.policy", "conf/security/policy/unlimited/default_local.policy", "conf/security/policy/unlimited/default_US_export.policy", "conf/security/java.policy", "conf/security/java.security", "conf/logging.properties", "conf/security/nss.cfg", "conf/management/jmxremote.access", "conf/management/jmxremote.password.template", "conf/management/management.properties", "conf/net.properties", "conf/sound.properties", "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 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 ; if (string.match(p, ".*-debug$")) then print(p.." matched but seems to be debug variant. Skipping") else table.insert(jvms, p) end 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 /dev/null || :/bin/sh?@7zXZ !PH6a ]"k%wHvX1ڋNHRFHh13S_T&``~X]83.`VVIL^̉pVc.8Ыq&j%wڠhV}"| S{턗ۡ6s$ a'{ v]:Zgф3~ Mn œYc^m0wC*ϥ4u^'c* ^щq |P/ ɐUd c_2$2+}$|, z؀ ь ٌ7KI DoG W>> HmC߸M`QG~w!N4&r:,G3YԪ`: .gKjK"*9&:͠ao)A\]4b ]We&eó^X1<&Xϭ.UxKIsRX;ns,lM\dˆjk3zըnN})T 9sjmY}Uǣ<ZiE$}~1L$,|/--{(E9[d㑊waIB䄏aX>ٍeY.cSѺL]y2GHC"$B Ǧ M20[VՕ2;p 5iW&ŗLr$ b&]Z-{QDnJhC8#ڟW&INǹ!d6?;@ʳc%L`k{%'LynŁ Ф XSϔLRs=,W'fҪ_a6ĕz7cE8i _<_PMZ]*<*%ig^x SR侶 ;.k",l` yHUOwT]1ɑa({NIܴ"0gv07=qb$vҗ9Ħ9L%JXqhU4 SWEygz=! r#; 0vvSvLYuWj8OЃ1GEmU.Ŝzlr@g8hZ慥N ~bUYzpf eb>"{4V?Nn: @.vVyHmR^0دudDG*/qDҩoF\y]Pj7AL5\b +'(f%Ci~~fPGSd Ar(oz%@ηHk07o@#Մ7b(p2\t8XT0P]t 9rqտnmC84d5Uoixo ;"Ӭۙ~1!繖Gݩi'ޓS1ll˛`_g,H1$GʲxpNm*Ճ[5GcS(`1-U{lvg˳iݗ?zt(_Nh.Іl/z1"ITq^=8{P#L0&$xH>$*3Z6Dq14 0 lfH]KqXQć}u{&c7pG9iyҀ <_0jZ騉@.0OJQ{uutTqYX )@}@ece7rE[?Nh.f={GNp٠A2adh)oro,~t`3Ri.=`a2# ~^RwgdLU3hT\kx=|ž#%Y͇Jk 9}mv_Dl-nԢa{We*H~e7jnȽ'IHܫ5b5ÏxulBB&(PKwmF $ /o.X_$`ʤm"l?U"̃\ '! ýwr·,4«RSf]kȂ`M4;br]Qz_3 UBzHc+4=y`pkr2fU՘ͣ\* }Ȧ'ӕr*<jr;l][  uxz#B)TW,%sn`Loո*6N`' Htٹ䍒ئXH>ټIdEZ>;O?7ߘ"RH(ּB] :w1F̲M ~M@6 Yq's,xc9fW\a ɧRό{wF>X 5={~Tk)䩓\-ˣ+aa۷ *ޫ1ڋǚ Yޙ[ԧ$];?Ҳ CdcW+HdwFs@d5PI+_\r T(CxTrMN,rtP/eM p`urkVC `v;->)Eט`x|K )ӌ^nY~*U`U`l]tt'vx/j湺g|75UD7r8tv8< +HJpIұwI<ɍ pg)R+ɼOP"KGH]* +n 1{|q_/rƮ{bK q~nI@ScҴɺt]2Yy"jSbL*krG:B?;B)v6'GlN8Ƕ<[N. 17_$c%%j-.GNvO )PK=H>q]g&CKBA`Ͳ軮D§mAGh7VrB GZP{C%xBE G4{J`D9ם`b|Rໄ]ƨ[qsC]I}f#3gʴYI$ -jqh$-9:m{ Ah8JŪ[=oĐ~GML('fRk"gaDrLY1cdg!!%a9Mum Nvj~rݟ'sk_BrptqQZ'wp0_&`/9-Ж9R$͛]gA}  ˂tbS`KAiQ^GJ3ƹm'd/S&D|{&WѲG J@OJ>yEak]V&C>W'I$Us,p#ԘQ,;ͤ{|}M ޓ"TAlJ3q"e7{NNƀ4= t X"'2E\k *b[Š@N+܆a }%59 ˿6hұ%SђU,%oAKo8 {={'s. :Uڞlke+.w{"?7M=^ν"<7wƶ YZ