|
|
|
@ -25,7 +25,8 @@ from os import path
|
|
|
|
|
from cl_utils import runOsCommand,appendProgramToEnvFile, \
|
|
|
|
|
removeProgramToEnvFile,pathJoin, \
|
|
|
|
|
scanDirectory,process,getTupleVersion, \
|
|
|
|
|
detectDeviceForPartition,listDirectory
|
|
|
|
|
detectDeviceForPartition,listDirectory, \
|
|
|
|
|
cmpVersion
|
|
|
|
|
|
|
|
|
|
from cl_kernel_utils import KernelConfig,InitRamFs
|
|
|
|
|
|
|
|
|
@ -801,7 +802,35 @@ class cl_install(color_print, SignalInterrupt):
|
|
|
|
|
else:
|
|
|
|
|
return dirsFiles
|
|
|
|
|
|
|
|
|
|
def printInfo(self):
|
|
|
|
|
def cmpInstallVersion(self):
|
|
|
|
|
"""Compare current and install version(build)
|
|
|
|
|
|
|
|
|
|
Return:
|
|
|
|
|
1 - new version above current and installed
|
|
|
|
|
0 - new version equal current or installed
|
|
|
|
|
-1 - new version less current or installed
|
|
|
|
|
-2 - installed versin above current and new
|
|
|
|
|
"""
|
|
|
|
|
rootdev = self.clVars.Get('os_install_root_dev')
|
|
|
|
|
d = DistributiveRepository()._getfromcontent(rootdev)
|
|
|
|
|
curver = self.clVars.Get('os_linux_ver')
|
|
|
|
|
curbuild = self.clVars.Get('os_linux_build')
|
|
|
|
|
curver = (getTupleVersion(curver),curbuild)
|
|
|
|
|
nextver = self.clVars.Get('os_install_linux_ver')
|
|
|
|
|
nextbuild = self.clVars.Get('os_install_linux_build')
|
|
|
|
|
nextver = (getTupleVersion(nextver),nextbuild)
|
|
|
|
|
curnextres = cmp(nextver,curver)
|
|
|
|
|
if d and "ver" in d:
|
|
|
|
|
installedver = (getTupleVersion(d["ver"]),
|
|
|
|
|
d["build"])
|
|
|
|
|
if installedver > curver:
|
|
|
|
|
instnextres = cmp(nextver,installedver)
|
|
|
|
|
if instnextres <= 0 and curnextres == 1:
|
|
|
|
|
return -2
|
|
|
|
|
return instnextres
|
|
|
|
|
return curnextres
|
|
|
|
|
|
|
|
|
|
def printInfo(self,update=False):
|
|
|
|
|
self.printSUCCESS(_("Installation") + " Calculate Linux")
|
|
|
|
|
self.defaultPrint("%s\n"%_("System information"))
|
|
|
|
|
self.printSUCCESS(_("Computer name")+": %s"%
|
|
|
|
@ -871,13 +900,18 @@ class cl_install(color_print, SignalInterrupt):
|
|
|
|
|
if buildvar:
|
|
|
|
|
build = " (build %s)"%buildvar
|
|
|
|
|
|
|
|
|
|
if self.clVars.Get('cl_image'):
|
|
|
|
|
if update:
|
|
|
|
|
cmpres = self.cmpInstallVersion()
|
|
|
|
|
if self.clVars.Get('cl_image') and ( not update or cmpres > 0):
|
|
|
|
|
self.printSUCCESS(_("Found update")+": %s %s%s%s\n"%
|
|
|
|
|
(self.clVars.Get('os_install_linux_name'),
|
|
|
|
|
self.clVars.Get('os_install_linux_ver'),
|
|
|
|
|
subname,build))
|
|
|
|
|
else:
|
|
|
|
|
self.printWARNING(_("No update available."))
|
|
|
|
|
if update and cmpres == -2:
|
|
|
|
|
self.printWARNING(_("Update already has installed."))
|
|
|
|
|
else:
|
|
|
|
|
self.printWARNING(_("No update available."))
|
|
|
|
|
|
|
|
|
|
def prepareBoot(self,targetDistr):
|
|
|
|
|
"""Prepare system for boot"""
|
|
|
|
@ -1834,7 +1868,7 @@ class cl_install(color_print, SignalInterrupt):
|
|
|
|
|
self.printByResult(True)
|
|
|
|
|
|
|
|
|
|
def installSystem(self, force=False, bootDisk=None, stdinReadPwd=False,
|
|
|
|
|
builder=False, flagSpinner=True):
|
|
|
|
|
builder=False, flagSpinner=True, update=False):
|
|
|
|
|
"""install System by current variable enviroment"""
|
|
|
|
|
sourceDistr = None
|
|
|
|
|
targetDistr = None
|
|
|
|
@ -1851,7 +1885,7 @@ class cl_install(color_print, SignalInterrupt):
|
|
|
|
|
rootPartIsFormat=rootPartCmdDict['isFormat']
|
|
|
|
|
rootPartSystemId=rootPartCmdDict['systemId']
|
|
|
|
|
|
|
|
|
|
self.printInfo()
|
|
|
|
|
self.printInfo(update=update)
|
|
|
|
|
|
|
|
|
|
targetDistr = self.getTargetDistributive(rootPartdev,
|
|
|
|
|
buildermode=builder,
|
|
|
|
@ -1869,7 +1903,7 @@ class cl_install(color_print, SignalInterrupt):
|
|
|
|
|
_("Installation is supported for system not less version"
|
|
|
|
|
" %s")%minver)
|
|
|
|
|
distName = ""
|
|
|
|
|
if distName:
|
|
|
|
|
if distName and (not update or self.cmpInstallVersion()>0):
|
|
|
|
|
# print info
|
|
|
|
|
sourceDistr = distRep.getDistributiveByFile(distName)
|
|
|
|
|
if not force:
|
|
|
|
|