Sync from fedora/el8.5

This commit is contained in:
Jiri 2021-06-08 15:49:31 +02:00
parent d9cd335a36
commit 8fa4686806
3 changed files with 377 additions and 325 deletions

View File

@ -6,9 +6,9 @@
Name: copy-jdk-configs Name: copy-jdk-configs
# hash relevant to version tag # hash relevant to version tag
%global htag 1d18ce8b5dec47a0468136ab6cdadfb93defe2c4 %global htag 88d3ed89f30d8b0eb4877d860fa8d951f224f156
Version: 3.7 Version: 4.0
Release: 9%{?dist} Release: 1%{?dist}
Summary: JDKs configuration files copier Summary: JDKs configuration files copier
License: BSD License: BSD
@ -24,6 +24,9 @@ BuildArch: noarch
Requires: lua Requires: lua
Requires: lua-posix Requires: lua-posix
# rh1965305 - copy-jdk-configs script uses find and xargs but RPM does not depend on them
Requires: findutils
OrderWithRequires: findutils
%description %description
Utility script to transfer JDKs configuration files between updates or for Utility script to transfer JDKs configuration files between updates or for
@ -72,8 +75,11 @@ rm "%{rpm_state_dir}/%{file}" 2> /dev/null || :
%license LICENSE %license LICENSE
%changelog %changelog
* Thu Apr 15 2021 Mohan Boddu <mboddu@redhat.com> - 3.7-9 * Tue Jun 08 2021 Fedora Release Engineering <releng@fedoraproject.org> - 4.0-1
- Rebuilt for RHEL 9 BETA on Apr 15th 2021. Related: rhbz#1947937 - added requires and orderWithRequires of findutils to provide find and xargs (rh1965305)
* Thu Apr 29 2021 Fedora Release Engineering <releng@fedoraproject.org> - 4.0-0
- bumped to 4.0 to resolve remvoed rpm 4.17 removing arg from global table
* Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 3.7-8 * Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 3.7-8
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild - Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild

View File

@ -1,174 +1,35 @@
#!/usr/bin/lua #!/usr/bin/lua
-- rpm call -- rpm call
-- lua -- copy_jdk_configs.lua --currentjvm "%{uniquesuffix %{nil}}" --jvmdir "%{_jvmdir %{nil}}" --origname "%{name}" --origjavaver "%{javaver}" --arch "%{_arch}" --debug true -- debug=true lua -- copy_jdk_configs.lua --currentjvm "%{uniquesuffix %{nil}}" --jvmdir "%{_jvmdir %{nil}}" --origname "%{name}" --origjavaver "%{javaver}" --arch "%{_arch}"
--test call --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 -- 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 caredFiles = {"jre/lib/calendars.properties", local M = {}
"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",
"lib/security",
"conf",
"lib/ext"}
-- before import to allow run from spec if (os.getenv("debug") == "true") then
if (arg[1] == "--list") then debug = true;
for i,file in pairs(caredFiles) do else
print(file) debug = false;
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 debug = false;
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")
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 end
local function debugOneLinePrint(string) local function debugOneLinePrint(string)
if (debug) then if (debug) then
print(string) print(string)
end; end ;
end end
function getPath(str, sep)
--trasnform substitute names to lua patterns sep = sep or '/'
local name = string.gsub(string.gsub(origname, "%-", "%%-"), "%.", "%%.") return str:match("(.*" .. sep .. ")")
local javaver = string.gsub(origjavaver, "%.", "%%.")
local jvms = { }
function getPath(str,sep)
sep=sep or '/'
return str:match("(.*"..sep..")")
end end
function splitToTable(source, pattern) function splitToTable(source, pattern)
local i1 = string.gmatch(source, pattern) local i1 = string.gmatch(source, pattern)
local l1 = {} local l1 = {}
for i in i1 do for i in i1 do
table.insert(l1, i) table.insert(l1, i)
end end
return l1 return l1
end end
local function slurp(path) local function slurp(path)
@ -179,150 +40,319 @@ local function slurp(path)
end end
function trim(s) function trim(s)
return (s:gsub("^%s*(.-)%s*$", "%1")) return (s:gsub("^%s*(.-)%s*$", "%1"))
end end
local function dirWithParents(path) local function dirWithParents(path)
local s = "" local s = ""
local dirs = splitToTable(path, "[^/]+") local dirs = splitToTable(path, "[^/]+")
for i,d in pairs(dirs) do for i, d in pairs(dirs) do
if (i == #dirs) then if (i == #dirs) then
break break
end end
s = s.."/"..d s = s .. "/" .. d
local stat2 = posix.stat(s, "type"); local stat2 = posix.stat(s, "type");
if (stat2 == nil) then if (stat2 == nil) then
debugOneLinePrint(s.." does not exists, creating") debugOneLinePrint(s .. " does not exists, creating")
if (not dry) then if (not dry) then
posix.mkdir(s) posix.mkdir(s)
end end
else else
debugOneLinePrint(s.." exists,not creating") debugOneLinePrint(s .. " exists,not creating")
end
end
end
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
end
else
debugOneLinePrint("executing "..exe)
if (not dry) then
os.execute(exe)
end
end end
else
debugOneLinePrint(SOURCE.." does not exists")
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

View File

@ -2,23 +2,38 @@
config=$1 config=$1
target=$2 target=$2
debug="false"
rma=""
if [ "x$debug" == "xtrue" ] ; then
rma="-v"
fi
debug(){ debug(){
if [ "x$debug" == "xtrue" ] ; then if [ "x$debug" == "xtrue" ] ; then
echo "$1" echo "$@"
fi fi
} }
debug "cjc: bash debug is on"
cmdvDebug() {
if [ "x$debug" == "xtrue" ] ; then
"$@" -v
else
"$@" 1>/dev/null 2>&1
fi
}
mvDebug() {
cmdvDebug mv "$@"
}
rmDebug() {
cmdvDebug rm "$@"
}
rmdirDebug() {
cmdvDebug rmdir "$@"
}
#we should be pretty strict about removing once used (even "used" [with fail]) config file, as it may corrupt another installation #we should be pretty strict about removing once used (even "used" [with fail]) config file, as it may corrupt another installation
clean(){ clean(){
debug "cleanup: removing $config" debug "cleanup: removing $config"
rm -rf $config rmDebug -rf $config
} }
if [ "x" == "x$config" ] ; then if [ "x" == "x$config" ] ; then
@ -133,23 +148,23 @@ work(){
if [ $? -gt 0 ] ; then if [ $? -gt 0 ] ; then
if [ "X$1" == "Xrpmnew" ] ; then if [ "X$1" == "Xrpmnew" ] ; then
debug "$sf2 was NOT modified, removing possibly corrupted $sf1 and renaming from $file" debug "$sf2 was NOT modified, removing possibly corrupted $sf1 and renaming from $file"
mv $rma -f $file $sf1 mvDebug -f $file $sf1
if [ $? -eq 0 ] ; then if [ $? -eq 0 ] ; then
echo "restored $file to $sf1" echo "restored $file to $sf1"
else else
echo "FAILED to restore $file to $sf1" debug "FAILED to restore $file to $sf1"
fi fi
fi fi
if [ "X$1" == "Xrpmorig" ] ; then if [ "X$1" == "Xrpmorig" ] ; then
debug "$sf2 was NOT modified, removing possibly corrupted $file" debug "$sf2 was NOT modified, removing possibly corrupted $file"
rm $rma $file rmDebug $file
fi fi
else else
debug "$sf2 was modified, keeping $file, and removing the duplicated original" debug "$sf2 was modified, keeping $file, and removing the duplicated original"
# information is now backuped, in new directory anyway. Removing future rpmsave to allow rpm -e # information is now backuped, in new directory anyway. Removing future rpmsave to allow rpm -e
rm -f $rma $sf2 rmDebug -f $sf2
# or its corresponding backup # or its corresponding backup
rm -f $rma $sf2.$1 rmDebug -f $sf2.$1
fi fi
done done
} }
@ -169,9 +184,9 @@ files=`find $sourceSearchPath | grep "\\.rpmorig$"`
rpmsaveTarget=`echo $file | sed "s/$srcName/$targetName/"` rpmsaveTarget=`echo $file | sed "s/$srcName/$targetName/"`
debug "relocating $file to $rpmsaveTarget" debug "relocating $file to $rpmsaveTarget"
if [ -e $rpmsaveTarget ] ; then if [ -e $rpmsaveTarget ] ; then
rm $rma $file rmDebug $file
else else
mv $rma $file $rpmsaveTarget mvDebug $file $rpmsaveTarget
fi fi
done done
@ -181,9 +196,9 @@ files=`find $sourceSearchPath | grep "\\.rpmsave$"`
rpmsaveTarget=`echo $file | sed "s/$srcName/$targetName/"` rpmsaveTarget=`echo $file | sed "s/$srcName/$targetName/"`
debug "relocating $file to $rpmsaveTarget" debug "relocating $file to $rpmsaveTarget"
if [ -e $rpmsaveTarget ] ; then if [ -e $rpmsaveTarget ] ; then
rm $rma $file rmDebug $file
else else
mv $rma $file $rpmsaveTarget mvDebug $file $rpmsaveTarget
fi fi
done done
@ -211,20 +226,21 @@ done
debug "cleaning legacy leftowers" debug "cleaning legacy leftowers"
if [ "x$debug" == "xtrue" ] ; then if [ "x$debug" == "xtrue" ] ; then
find $sourceSearchPath -empty -type d -delete find $sourceSearchPath -empty -type d -delete
rmdir $rma $sourceSearchPath
else else
find $sourceSearchPath -empty -type d -delete 2>/dev/null >/dev/null find $sourceSearchPath -empty -type d -delete 2>/dev/null >/dev/null
rmdir $rma $sourceSearchPath 2>/dev/null >/dev/null
fi fi
rmdirDebug $sourceSearchPath
# and remove placeholders # and remove placeholders
for blackdir in $blackdirs; do for blackdir in $blackdirs; do
if [ -e $blackdir ] ; then if [ -e $blackdir ] ; then
debug "nasty $blackdir exists, cleaning placeholder" debug "nasty $blackdir exists, cleaning placeholder"
rm $blackdir/C-J-C_placeholder rmDebug $blackdir/C-J-C_placeholder
else else
debug "nasty $blackdir DONT exists, ignoring again" debug "nasty $blackdir DONT exists, ignoring again"
fi fi
done done
clean clean
exit 0