Bumped to 4.0.0.0.pre.0.4540d3a0592ee857e7d3da348cfb7d64d207fcdd

To solve Packaging scriptlets assume global 'arg' in Lua environment
https://bugzilla.redhat.com/show_bug.cgi?id=1892224
This commit is contained in:
Jiri 2021-04-27 17:49:56 +02:00
parent 0327d7e42b
commit 988593295e
3 changed files with 125 additions and 81 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 bf480d4217342a54d3f1103365d21f6e399c4932
Version: 3.7 Version: 3.9
Release: 8%{?dist} Release: 4.0.pre.0.bf480d4217342a54d3f1103365d21f6e399c4932%{?dist}
Summary: JDKs configuration files copier Summary: JDKs configuration files copier
License: BSD License: BSD
@ -72,6 +72,9 @@ rm "%{rpm_state_dir}/%{file}" 2> /dev/null || :
%license LICENSE %license LICENSE
%changelog %changelog
* Thu Apr 29 2021 Fedora Release Engineering <releng@fedoraproject.org> - 3.9-4.0.pre.0.bf480d4217342a54d3f1103365d21f6e399c4932%{?dist}
- 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,9 +1,77 @@
#!/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 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", local caredFiles = {"jre/lib/calendars.properties",
"jre/lib/content-types.properties", "jre/lib/content-types.properties",
"jre/lib/flavormap.properties", "jre/lib/flavormap.properties",
@ -35,6 +103,7 @@ local caredFiles = {"jre/lib/calendars.properties",
"jre/lib/ext", "jre/lib/ext",
"jre/lib/security/blacklist", "jre/lib/security/blacklist",
"jre/lib/security/javaws.policy", "jre/lib/security/javaws.policy",
"jre/lib/security/nss.fips.cfg",
"lib/security", "lib/security",
"conf", "conf",
"lib/ext"} "lib/ext"}
@ -57,7 +126,6 @@ local jvmDestdir = nil
local origname = nil local origname = nil
local origjavaver = nil local origjavaver = nil
local arch = nil local arch = nil
local debug = false;
local temp = nil; local temp = nil;
local dry = false; local dry = false;
@ -144,65 +212,12 @@ if (debug) then
print(debug); print(debug);
end end
local function debugOneLinePrint(string)
if (debug) then
print(string)
end;
end
--trasnform substitute names to lua patterns --trasnform substitute names to lua patterns
local name = string.gsub(string.gsub(origname, "%-", "%%-"), "%.", "%%.") local name = string.gsub(string.gsub(origname, "%-", "%%-"), "%.", "%%.")
local javaver = string.gsub(origjavaver, "%.", "%%.") local javaver = string.gsub(origjavaver, "%.", "%%.")
local jvms = { } local jvms = { }
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
debugOneLinePrint("started") debugOneLinePrint("started")
@ -212,7 +227,7 @@ if (foundJvms == nil) then
return return
end end
debugOneLinePrint("found "..#foundJvms.."jvms") debugOneLinePrint("found "..#foundJvms.." jvms")
for i,p in pairs(foundJvms) do for i,p in pairs(foundJvms) do
-- regex similar to %{_jvmdir}/%{name}-%{javaver}*%{_arch} bash command -- regex similar to %{_jvmdir}/%{name}-%{javaver}*%{_arch} bash command
@ -326,3 +341,13 @@ for i,file in pairs(caredFiles) do
debugOneLinePrint(SOURCE.." does not exists") debugOneLinePrint(SOURCE.." does not exists")
end end
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