Build ISO images for xenserver patches AND Fedora / CentOS packaging fix for the ISO generation.

Build ISO images for xenserver patches

Fedora / CentOS packaging fix for the ISO generation.
This commit is contained in:
Manuel Amador (Rudd-O) 2010-08-26 18:58:38 -07:00
parent cebd1da99c
commit 7875de7303
2 changed files with 79 additions and 56 deletions

View File

@ -481,46 +481,17 @@ fi
%doc README.html %doc README.html
%doc debian/copyright %doc debian/copyright
%if %{_premium}
%files agent-scripts %files agent-scripts
%defattr(-,root,root,-) %defattr(-,root,root,-)
%{_libdir}/%{name}/agent/scripts/* %{_libdir}/%{name}/agent/scripts/*
%{_libdir}/%{name}/agent/vms/systemvm.zip %{_libdir}/%{name}/agent/vms/systemvm.zip
%{_libdir}/%{name}/agent/vms/systemvm.iso
%doc README %doc README
%doc INSTALL %doc INSTALL
%doc HACKING %doc HACKING
%doc README.html %doc README.html
%doc debian/copyright %doc debian/copyright
%else
%files agent-scripts
%defattr(-,root,root,-)
%{_libdir}/%{name}/agent/scripts/installer/*
%{_libdir}/%{name}/agent/scripts/network/domr/*.sh
%{_libdir}/%{name}/agent/scripts/storage/*.sh
%{_libdir}/%{name}/agent/scripts/storage/zfs/*
%{_libdir}/%{name}/agent/scripts/storage/qcow2/*
%{_libdir}/%{name}/agent/scripts/storage/secondary/*
%{_libdir}/%{name}/agent/scripts/util/*
%{_libdir}/%{name}/agent/scripts/vm/*.sh
%{_libdir}/%{name}/agent/scripts/vm/storage/nfs/*
%{_libdir}/%{name}/agent/scripts/vm/storage/iscsi/*
%{_libdir}/%{name}/agent/scripts/vm/network/*
%{_libdir}/%{name}/agent/scripts/vm/hypervisor/*.sh
%{_libdir}/%{name}/agent/scripts/vm/hypervisor/kvm/*
%{_libdir}/%{name}/agent/scripts/vm/hypervisor/xen/*
%{_libdir}/%{name}/agent/vms/systemvm.zip
%{_libdir}/%{name}/agent/scripts/vm/hypervisor/xenserver/*
%doc README
%doc INSTALL
%doc HACKING
%doc README.html
%doc debian/copyright
%endif
%files daemonize %files daemonize
%defattr(-,root,root,-) %defattr(-,root,root,-)
%attr(755,root,root) %{_bindir}/%{name}-daemonize %attr(755,root,root) %{_bindir}/%{name}-daemonize
@ -724,8 +695,7 @@ fi
%{_javadir}/%{name}-server-extras.jar %{_javadir}/%{name}-server-extras.jar
%{_sysconfdir}/%{name}/management/commands-ext.properties %{_sysconfdir}/%{name}/management/commands-ext.properties
%{_sysconfdir}/%{name}/management/components-premium.xml %{_sysconfdir}/%{name}/management/components-premium.xml
%{_libdir}/%{name}/agent/scripts/vm/hypervisor/xenserver/* %{_libdir}/%{name}/agent/vms/systemvm-premium.iso
%{_libdir}/%{name}/agent/vms/systemvm-premium.zip
%{_datadir}/%{name}/setup/create-database-premium.sql %{_datadir}/%{name}/setup/create-database-premium.sql
%{_datadir}/%{name}/setup/create-schema-premium.sql %{_datadir}/%{name}/setup/create-schema-premium.sql
%doc README %doc README

View File

@ -229,21 +229,22 @@ def tar_up(task):
z.close() z.close()
return 0 return 0
if bld.env.DISTRO != "Windows": for virttech in [ _basename(x) for x in _glob(_join("patches","*")) ]:
for virttech in [ _basename(x) for x in _glob(_join("patches","*")) ]: if virttech == "shared":
if virttech == "shared": continue
continue patchfiles = filelist('patches/%s/** patches/shared/**'%virttech,src=True,bld=True,dir=False,flat=True)
patchfiles = filelist('patches/%s/** patches/shared/**'%virttech,src=True,bld=True,dir=False,flat=True) tgen = bld(
tgen = bld( rule = tar_up,
rule = tar_up, source = patchfiles,
source = patchfiles, target = '%s-patch.tgz'%virttech,
target = '%s-patch.tgz'%virttech, name = '%s-patch_tgz'%virttech,
name = '%s-patch_tgz'%virttech, root = "patches/%s"%virttech,
root = "patches/%s"%virttech, rename = lambda x: re.sub(".subst$","",x),
rename = lambda x: re.sub(".subst$","",x), after = 'patchsubst',
after = 'patchsubst', )
) bld.process_after(tgen)
bld.process_after(tgen) if virttech != "xenserver":
# xenserver uses the patch.tgz file later to make an ISO, so we do not need to install it
bld.install_as("${AGENTLIBDIR}/scripts/vm/hypervisor/%s/patch.tgz"%virttech, "%s-patch.tgz"%virttech) bld.install_as("${AGENTLIBDIR}/scripts/vm/hypervisor/%s/patch.tgz"%virttech, "%s-patch.tgz"%virttech)
# ================== End creation of patch.tgz's ==================== # ================== End creation of patch.tgz's ====================
@ -338,6 +339,8 @@ def zip_up(task):
z.close() z.close()
return 0 return 0
bld.path.ensure_dir_node_from_path("target/oss")
bld.path.ensure_dir_node_from_path("target/premium")
if bld.env.DISTRO not in ["Windows","Mac"]: if bld.env.DISTRO not in ["Windows","Mac"]:
tgen = bld( tgen = bld(
rule = copydeps, rule = copydeps,
@ -348,30 +351,80 @@ if bld.env.DISTRO not in ["Windows","Mac"]:
tgen = bld( tgen = bld(
rule = zip_up, rule = zip_up,
source = " ".join( [sources,artifacts,deps,systems] ), source = " ".join( [sources,artifacts,deps,systems] ),
target = 'systemvm.zip', target = 'target/oss/systemvm.zip',
name = 'systemvm_zip', name = 'systemvm_zip',
after = 'copydeps getsystemjars runant', after = 'getsystemjars runant',
) )
bld.process_after(tgen) bld.process_after(tgen)
bld.install_files("${AGENTLIBDIR}/vms", "target/oss/systemvm.zip")
if buildpremium: if buildpremium:
tgen = bld( tgen = bld(
rule = zip_up, rule = zip_up,
source = " ".join( [premiumsources,premiumartifacts,thirdparties] ), source = " ".join( [premiumsources,premiumartifacts,thirdparties] ),
target = 'systemvm-premium.zip', target = 'target/premium/systemvm.zip',
name = 'systemvm-premium_zip', name = 'systemvm-premium_zip',
after = 'runant', after = 'runant',
) )
bld.process_after(tgen) bld.process_after(tgen)
#no need to install the premium one, we have ISOs below
if bld.env.DISTRO not in [ "Windows", "Mac"]: #bld.install_files("${AGENTLIBDIR}/vms", "systemvm-premium.zip")
bld.install_files("${AGENTLIBDIR}/vms", "systemvm.zip")
if buildpremium:
bld.install_files("${AGENTLIBDIR}/vms", "systemvm-premium.zip")
# ================== End systemvm patch creation ==================== # ================== End systemvm patch creation ====================
# ================== systemvm ISO creation ====================
if bld.env.DISTRO not in ["Windows","Mac"]: # mkisofs only on windows
def iso_up(task):
tgt = task.outputs[0].bldpath(task.env)
if _exists(tgt): _unlink(tgt)
inps = []
for inp in task.inputs:
if inp.id&3==Node.BUILD:
src = inp.bldpath(task.env)
srcname = src
srcname = "/".join(srcname.split("/")[1:]) # chop off default/
else:
src = inp.srcpath(task.env)
srcname = src
srcname = "/".join(srcname.split("/")[1:]) # chop off ../
# post-process the paths
inps.append(src)
return Utils.exec_command(
[
#"echo",
"mkisofs",
"-quiet",
"-r",
"-o",tgt,
] + inps)
tgen = bld(
rule = iso_up,
source = "xenserver-patch.tgz target/oss/systemvm.zip",
target = 'target/oss/systemvm.iso',
name = 'systemvm_iso',
after = 'systemvm_zip xenserver-patch_tgz',
)
bld.process_after(tgen)
bld.install_as("${AGENTLIBDIR}/vms/systemvm.iso", "target/oss/systemvm.iso")
if buildpremium:
tgen = bld(
rule = iso_up,
source = "xenserver-patch.tgz target/premium/systemvm.zip",
target = 'target/premium/systemvm.iso',
name = 'systemvm-premium_iso',
after = 'systemvm-premium_zip xenserver-patch_tgz',
)
bld.process_after(tgen)
bld.install_as("${AGENTLIBDIR}/vms/systemvm-premium.iso", "target/premium/systemvm.iso")
# ================== End systemvm ISO creation ====================
# =================== Empty directory / symlink creation on install target ==================== # =================== Empty directory / symlink creation on install target ====================
# 7. make log and cache dirs (this actually runs first) # 7. make log and cache dirs (this actually runs first)