copy-jdk-configs-4.0-1.el8 >  A `}U]hЏg\)RØ"a_u<ˋ]+1@Jo*:;]@< -UJ@@7>N|ǻI  \= 0[Ӛ|<_?gn1ӖD/ڝ dg8r&SCnݵ6$&dg<6 reL%F77Q:)%ԓj$]_'ycn-U+BӱϘr˴[3'燁/ wsMTnG>7iE]L-5?Rh-mX35ҹw1QZ,+1;X r9UFvQl_7p{3lP<T6xby.Vҥ-/I8]3Ֆ7^FRS %]_cHsuF!E޾ R+( Q5VҴ@PDO^jXSbR@ Ps+PzVHтރ$_o6`I?Zt@wZ#}?Y TֶJcԲ˅؅xcW;\a6[ Ml~P8>pCG?Gd  = (KQXh p x  L P`t   (898:GTHdItXxY|\]^b,defltuvw\xly|FGRGXG`GdGnGpGtGzGCcopy-jdk-configs4.01.el8JDKs configuration files copierUtility script to transfer JDKs configuration files between updates or for archiving. With script to fix incorrectly created rpmnew files`}/x86-01.mbox.centos.orgMZCentOSCentOSBSDCentOS Buildsys Unspecifiedhttps://pagure.io/copy_jdk_configslinuxnoarch1ӁA큤`|`|`}/`|8a81cc8d2d07d525c97b56f4bf5d1457ce716b3c1de1e103e6acb4c9a1ffd5a463e5ebdd6bc16626b0b985f74d5de92c3dc06ab12f42ead06d353e15489064cf386eaf71633bf096e6c17471f50e867dabdf14d38a157ca27a0425dc583eb9ferootrootrootrootrootrootrootrootcopy-jdk-configs-4.0-1.el8.src.rpmcopy-jdk-configs@      /bin/bash/bin/shfindutilslualua-posixrpmlib(BuiltinLuaScripts)rpmlib(CompressedFileNames)rpmlib(FileDigests)rpmlib(PayloadFilesHavePrefix)rpmlib(PayloadIsXz)4.2.2-13.0.4-14.6.0-14.0-15.2-14.14.3`[___Z@Z@Z@Z@ZlZz@YB@YB@YYYx@X}@X}@X@XpXWWVVVqR@VUJiri Vanek - 4.0-1Jiri Vanek - 3.7-3Jiri Vanek - 3.7-3Jiri Vanek - 3.7-2Jiri Vanek - 3.7-1Jiri Vanek - 3.3-12Jiri Vanek - 3.3-11Jiri Vanek - 3.3-10Jiri Vanek - 3.3-5Fedora Release Engineering - 3.3-3Jiri Vanek - 3.3-2Jiri Vanek - 3.3-1Jiri Vanek - 3.1-1Jiri Vanek - 3.0-1Fedora Release Engineering - 2.3-2Fedora Release Engineering - 2.2.3Fedora Release Engineering - 2.2.2Fedora Release Engineering - 2.1-2Jiri Vanek - 2.1-1Jiri Vanek - 2.0-1Jiri Vanek - 1.2-1Jiri Vanek - 1.1-5Fedora Release Engineering - 1.1-4Jiri Vanek - 1.1-3Jiri Vanek - 1.1-2Jiri Vanek - 1.1-1- rebased to 4.0 - Resolves: rhbz#1953923- added link to http://hydra.brq.redhat.com:8080/view/c~j~c/#projectstatus - removed source check from test.yaml - added gating.yaml - Resolves: rhbz#1855374- added gatnig placeholder - Resolves: rhbz#1855374- added nss.fips.cfg to cared files - Resolves: rhbz#1855374- udpated to latst relase - configurable blacklist - listed all java keystores- blackidrs put on single line- added more files to balcklist based on oralce and ibm jdks- added javaws.policy and blacklist - fixed rhbz#1541838- fixed rhbz#1541838- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild- added another subdirs for policies files- handled new paths for policies files- moved to newest release 3.1 whcih conf and lib/security as directories- moved to newest release 3.0 whcih support linked configs- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild- updated to latest head- added "jre/lib/security/blacklisted.certs" to cared files- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild- moved to newest release 2.1- moved to new upstream at pagure.io - moved to newest release 2.0 - added new script of copy_jdk_configs_fixFiles.sh - copy_jdk_configs.lua aligned to it- updated to 1,3 which fixing nss minor issue- posttrans silenced, the error is appearing only in state, when there is nothing to copy- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild- 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 package4.0-1.el8copy_jdk_configs.luacopy_jdk_configs_fixFiles.shcopy-jdk-configsLICENSE/usr/libexec//usr/share/licenses//usr/share/licenses/copy-jdk-configs/-O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m32 -march=x86-64 -mtune=generic -mfpmath=sse -mstackrealign -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protectioncpioxz2noarch-redhat-linux-gnua /usr/bin/lua 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 -- debug=true lua -- copy_jdk_configs.lua --currentjvm "%{uniquesuffix %{nil}}" --jvmdir "%{_jvmdir %{nil}}" --origname "%{name}" --origjavaver "%{javaver}" --arch "%{_arch}" --test call -- debug=true 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" --jvmDestdir /home/jvanek/Desktop local M = {} if (os.getenv("debug") == "true") then debug = true; else debug = false; end local function debugOneLinePrint(string) if (debug) then print(string) end ; end function getPath(str, sep) sep = sep or '/' return str:match("(.*" .. sep .. ")") end 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 local function slurp(path) local f = io.open(path) local s = f:read("*a") f:close() return s end function trim(s) return (s:gsub("^%s*(.-)%s*$", "%1")) end local function dirWithParents(path) local s = "" local dirs = splitToTable(path, "[^/]+") 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 debugOneLinePrint(s .. " does not exists, creating") if (not dry) then posix.mkdir(s) end else debugOneLinePrint(s .. " exists,not creating") end end end -- main function, -- formelry main body -- move to function resolved -- https://bugzilla.redhat.com/show_bug.cgi?id=1892224 -- for readability not indented, todo, indent once tuned function M.mainProgram(arg) debugOneLinePrint("cjc: lua debug on") 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/unlimited/US_export_policy.jar", "jre/lib/security/limited/US_export_policy.jar", "jre/lib/security/policy/unlimited/US_export_policy.jar", "jre/lib/security/policy/limited/US_export_policy.jar", "jre/lib/security/java.policy", "jre/lib/security/java.security", "jre/lib/security/local_policy.jar", "jre/lib/security/unlimited/local_policy.jar", "jre/lib/security/limited/local_policy.jar", "jre/lib/security/policy/unlimited/local_policy.jar", "jre/lib/security/policy/limited/local_policy.jar", "jre/lib/security/nss.cfg", "jre/lib/security/cacerts", "jre/lib/security/blacklisted.certs", "jre/lib/security/jssecacerts", "jre/lib/security/trusted.certs", "jre/lib/security/trusted.jssecerts", "jre/lib/security/trusted.clientcerts", "jre/lib/ext", "jre/lib/security/blacklist", "jre/lib/security/javaws.policy", "jre/lib/security/nss.fips.cfg", "lib/security", "conf", "lib/ext" } -- before import to allow run from spec if (arg[1] == "--list") then for i, file in pairs(caredFiles) do print(file) end return 0; end -- 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 temp = nil; local dry = false; 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 or $debug") print(" Enables printing out whats going on. true/false. False by default") print(" --temp") print(" optional file to save intermediate result - directory configs were copied from") print(" --dry") print(" true/fase if true, then no changes will be written to disk except one tmp file. False by default") print(" **** specil parasm ****") print(" --list") print(" if present on cmdline, list all cared files and exists") 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] == "--dry") then --no string, boolean, workaround if (arg[i + 1] == "true") then dry = 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 = { } debugOneLinePrint("started") foundJvms = posix.dir(jvmdir); if (foundJvms == nil) then debugOneLinePrint("no, or nothing in " .. jvmdir .. " exit") return end debugOneLinePrint("found " .. #foundJvms .. " jvms") 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 debugOneLinePrint("matched: " .. p) if (currentjvm == p) then debugOneLinePrint("this jdk is already installed. exiting lua script") 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 debugOneLinePrint("NOT matched: " .. p) end end if (#jvms <= 0) then debugOneLinePrint("no matching jdk in " .. jvmdir .. " exit") return end ; debugOneLinePrint("matched " .. #jvms .. " jdk in " .. jvmdir) --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] if (temp ~= nil) then src = jvmdir .. "/" .. latestjvm debugOneLinePrint("temp declared as " .. temp .. " saving used dir of " .. src) file = io.open(temp, "w") file:write(src) file:close() end local readlinkOutput = os.tmpname() for i, file in pairs(caredFiles) do local SOURCE = jvmdir .. "/" .. latestjvm .. "/" .. file local DEST = jvmDestdir .. "/" .. currentjvm .. "/" .. file debugOneLinePrint("going to copy " .. SOURCE) debugOneLinePrint("to " .. DEST) local stat1 = posix.stat(SOURCE, "type"); if (stat1 ~= nil) then debugOneLinePrint(SOURCE .. " exists") dirWithParents(DEST) -- Copy with -a to keep everything intact local exe = "cp" .. " -ar " .. SOURCE .. " " .. DEST local linkExe = "readlink" .. " -f " .. SOURCE .. " > " .. readlinkOutput debugOneLinePrint("executing " .. linkExe) os.remove(readlinkOutput) os.execute(linkExe) local link = trim(slurp(readlinkOutput)) debugOneLinePrint(" ...link is " .. link) if (not ((link) == (SOURCE))) then debugOneLinePrint("WARNING link " .. link .. " where file " .. SOURCE .. " expected!") debugOneLinePrint("Will try to copy link target rather then link itself!") --replacing any NVRA by future NVRA (still execting to have NVRA for any multiple-installable targets -- lua stubbornly consider dash as inteval. Replacing by dot to match X-Y more correct as X.Y rather then not at all local linkDest = string.gsub(link, latestjvm:gsub("-", "."), currentjvm) debugOneLinePrint("attempting to copy " .. link .. " to " .. linkDest) if (link == linkDest) then debugOneLinePrint("Those are identical files! Nothing to do!") else local exe2 = "cp" .. " -ar " .. link .. " " .. linkDest dirWithParents(linkDest) debugOneLinePrint("executing " .. exe2) if (not dry) then os.execute(exe2) end end else debugOneLinePrint("executing " .. exe) if (not dry) then os.execute(exe) end end else debugOneLinePrint(SOURCE .. " does not exists") end end end --unindented main function if (arg == nil) then debugOneLinePrint("arg variable is nil, you have to call mainProgram manually") -- this can actually not be invoked, as the debug is set via arg else M.mainProgram(arg) end return M]]) file:close() end -- in netinst, the above call may fail. pcall should save instalation (as there is nothing to copy anyway) -- https://bugzilla.redhat.com/show_bug.cgi?id=1295701 -- todo, decide whether to check for {rpm_state_dir} and skip on not-existing, or keep creating if pcall(createPretransScript) then -- ok else -- print("Error running copy-jdk-configs pretrans.") end# remove file created in pretrans # echo "removing /var/lib/rpm-state/copy_jdk_configs.lua" || : rm "/var/lib/rpm-state/copy_jdk_configs.lua" 2> /dev/null || :/bin/shfindutilsutf-8600a5f5e9916bd1a7f51aa1283734ec852c13ad8fe38dc6aeeab03017d5ec82a?7zXZ !#,P7R] b2u Q{LQ7 k R~pu.X0jGQ ζ bSJg І|埱⟉kCTO->aBHz⻋žIl"am"U7DmgZ3G zJÆkdcQ%vY+&;Az*v bqkw庩!bVI₧ж]VVѺojZ:,W#HӰrBl=Hᢪ e[%JUARB7w)*s$ gCvpE~f[l-OvNQUE< DYR^KF\kj r|?9Bs_d;.|_~u{I@tT$;ގ=ȼs (>VQjMn2,]S0(i71YD8ՉfiyŬ]|3J3рO3 HA@_|sFx#v2n(?t A'Sָ:Ɉ F$Bub{?zS^]CJz▬czI7E{dR F…BD[G!L%7e5\2J|M`h(FwP JNp5/!kuLK.$HڝO~)oV:µz"q'%c bv]}Q -qył)*=2$66j.69&xB.{ |wTQT3)0B08бХ,wE{8?LpGWNN*e@']֞-W>w=N^fVvmx 08JT}˵ڒO =!ⴵi N`A"V{<_n9Ģ^wvYÌ^KsDn 5m~-RZmU3Q:7H2A\vĄ(z-'|`p-j.Sxw\XɀbrYMA5Շ EAhdypLѽL%tX#'oհ1)CWKC['O3h7`jk !b֪p^ L1#}PcBp<.f\Yb+xsF,,بםqXL٥O2Q*~eF DQ3*9kwEʓ#>_QHߤ>,z戯S?%ވ綍mu=ю[sYvf$SԵ%۵WCFbBA^oNѹX"\mk#eGD&A[qɂ~h}Z4^$x3P9%=T {7vh/kT}{9UMx4Q` ؕ\UJJHYGaRΟrL P9㏄,wVАp8zϕ`2.v+MP?%rb?BBL@=^Ѝ'2-nA[F;)1^'lotu~Hxh†5oOh7>ѣ"=,WL>ՐwI|)ܦg疔S?hG84O㧕qJ{:aRWSNbȑ3tbTCOH,!qh , fLH,s\޵QK1[r]/=(8>YP6&.ȷ@0-q:AN}NoН'c׮@z" tTě()įK\? ?ΈsW |yln;U胦YL$:gIfS5Lgv7!b0rUВ1.ΐTF|d@]+^w$a9$1^o3]|mQkkxGҧ`cr" )qbRl=nSU1P1{ F|?KqY܄]pY 8I:'p*VDbͣ`#z_VEt36W\;C6Zxc~ l{7ן+0i'-e.6WΨNo\ CwQ,4fM~$WB.1`xnRWU˸($l,㌹Zʦc}B ]nnƺD5jJrx/Z@oIHU9ufk83*W߶L2+o؛Eó_}H_G9c &q>]5,rGe]K~D}D'zϾKz]L*o>#~\97V|ϐ.|m,;jԯPAc8E`C]-4 v6u8Yޕ*<CXpOYgЬvbq 00shEmR-nI\qΠ6h`Cҍ7hoG&Ds!zy fIHܬ$U+o\[T()HU?wJ0 S;Ye|a;YM`#sh魛#^)ҬyhEۤ멺j! ]-E hbcZ|Iwĥ~26Ӌ3C)*9frC}ܔ<|q]ً/9b;Q % tX[BG*!sπXT0F`%R_TlnvVHYx:!L; L35x3WX-k$DW/5#sq3 c1}װgg!"OR{OTMiHݝ c<6J'Jmwݓe7#É5 ^YjT`Q 99W٨3\>3F&Ѕu"N?bG K0r`$AbإÜL˾;-j2rwa&|tN(3/* iijLxFejWI6Y[hDiŀCYCVXdm2uu> F? SО&\0涵bUW}T7b{ ME$jH՞aL}j`)Xph"Qĩ&s)jn=r1Fׂ?EF}::VrYEpPmHjDٌ$[Zy:sNMF9V_V1lo*{,ef%g_砌:m Smс~Nn|e-B&C A!8rżnYz㭟xeO1SV jEvDZ^\ 3("(攊1u0[%wDzg,~? qrn)5L _|~YciŎV\C7f TnɵXU V>VJ/ng01?p ڎ}ND7z6*v)}?l81TE* fg/j_]f4A U\}_pX̴ τ' 浀z[KGb"rٙ6FLhV5]IZVsĦpg Rȍ9TɪIzeu$[u4C"xFg{ܤ ۚ@7ywF =78l*PuEӷ:ig aJmV,܍(8yn\ TJQw(4qTWԩ\5_θ)r6$G,+dccW*H0WG>5*7lP[ߝ+CYg5XzcbbZh!BpbNܒs^/LvˋNΰK\0-tmn QۦXkdؿ(SX' 왧f D蝆jR?Bzp O]_~/WȯjX{GHƛDxґaƫPS?j,_ ^P#]Wyo>m|C\uƑJhpI掜p`sz#}OIN t#)l[;Έ3+> ?jIkOƽa>A ͪ#h] CN6 &(W)|G\pW2͉Z.Bzq&a4C8r>e8%x]MhEecawwȂxmb綹z1R1u(SpŸ z֢޵;WO:mY؁o{MW=;Ahoz:^ښ$"Dl,ݐy;ؤMӯ <-P'aX }),h7϶񂽊s~gm<2JŇ}S@<70$m+z۠sk~HGgsRrY v6Hp 1ڇzqàMuOD#Irs2IQ`D^^ JլrL\l|ZDwYQ97uow6'kgJt̓`L')+CXm[̈΢gŇ4R[42Z|/ej`Fk=! dis, Z  kϊ*LYmԸ PZGhFG5 gh\4c:ě-AY5HLnu30Nʳeũ7`O b#јq'8~@ESL<`