better_cleaning_perl_packages patch applied
This commit is contained in:
@@ -27,6 +27,8 @@ from pisi.actionsapi.shelltools import system
|
|||||||
from pisi.actionsapi.shelltools import can_access_file
|
from pisi.actionsapi.shelltools import can_access_file
|
||||||
from pisi.actionsapi.shelltools import export
|
from pisi.actionsapi.shelltools import export
|
||||||
from pisi.actionsapi.shelltools import unlink
|
from pisi.actionsapi.shelltools import unlink
|
||||||
|
from pisi.actionsapi.shelltools import unlinkDir
|
||||||
|
|
||||||
|
|
||||||
class ConfigureError(pisi.actionsapi.Error):
|
class ConfigureError(pisi.actionsapi.Error):
|
||||||
def __init__(self, value=''):
|
def __init__(self, value=''):
|
||||||
@@ -34,18 +36,21 @@ class ConfigureError(pisi.actionsapi.Error):
|
|||||||
self.value = value
|
self.value = value
|
||||||
ctx.ui.error(value)
|
ctx.ui.error(value)
|
||||||
|
|
||||||
|
|
||||||
class MakeError(pisi.actionsapi.Error):
|
class MakeError(pisi.actionsapi.Error):
|
||||||
def __init__(self, value=''):
|
def __init__(self, value=''):
|
||||||
pisi.actionsapi.Error.__init__(self, value)
|
pisi.actionsapi.Error.__init__(self, value)
|
||||||
self.value = value
|
self.value = value
|
||||||
ctx.ui.error(value)
|
ctx.ui.error(value)
|
||||||
|
|
||||||
|
|
||||||
class InstallError(pisi.actionsapi.Error):
|
class InstallError(pisi.actionsapi.Error):
|
||||||
def __init__(self, value=''):
|
def __init__(self, value=''):
|
||||||
pisi.actionsapi.Error.__init__(self, value)
|
pisi.actionsapi.Error.__init__(self, value)
|
||||||
self.value = value
|
self.value = value
|
||||||
ctx.ui.error(value)
|
ctx.ui.error(value)
|
||||||
|
|
||||||
|
|
||||||
def configure(parameters = ''):
|
def configure(parameters = ''):
|
||||||
'''configure source with given parameters.'''
|
'''configure source with given parameters.'''
|
||||||
export('PERL_MM_USE_DEFAULT', '1')
|
export('PERL_MM_USE_DEFAULT', '1')
|
||||||
@@ -56,6 +61,7 @@ def configure(parameters = ''):
|
|||||||
if system('perl Makefile.PL %s PREFIX=/usr INSTALLDIRS=vendor DESTDIR=%s' % (parameters, get.installDIR())):
|
if system('perl Makefile.PL %s PREFIX=/usr INSTALLDIRS=vendor DESTDIR=%s' % (parameters, get.installDIR())):
|
||||||
raise ConfigureError(_('Configure failed.'))
|
raise ConfigureError(_('Configure failed.'))
|
||||||
|
|
||||||
|
|
||||||
def make(parameters = ''):
|
def make(parameters = ''):
|
||||||
'''make source with given parameters.'''
|
'''make source with given parameters.'''
|
||||||
if can_access_file('Makefile'):
|
if can_access_file('Makefile'):
|
||||||
@@ -65,6 +71,7 @@ def make(parameters = ''):
|
|||||||
if system('perl Build %s' % parameters):
|
if system('perl Build %s' % parameters):
|
||||||
raise MakeError(_('perl build failed.'))
|
raise MakeError(_('perl build failed.'))
|
||||||
|
|
||||||
|
|
||||||
def install(parameters = 'install'):
|
def install(parameters = 'install'):
|
||||||
'''install source with given parameters.'''
|
'''install source with given parameters.'''
|
||||||
if can_access_file('Makefile'):
|
if can_access_file('Makefile'):
|
||||||
@@ -75,12 +82,34 @@ def install(parameters = 'install'):
|
|||||||
raise MakeError(_('perl install failed.'))
|
raise MakeError(_('perl install failed.'))
|
||||||
|
|
||||||
removePacklist()
|
removePacklist()
|
||||||
|
removePodfiles()
|
||||||
|
|
||||||
def removePacklist():
|
|
||||||
|
def removePacklist(path='usr/lib/perl5/'):
|
||||||
''' cleans .packlist file from perl packages '''
|
''' cleans .packlist file from perl packages '''
|
||||||
path = '%s/%s' % (get.installDIR(), "/usr/lib/perl5/vendor_perl/%s/%s-linux-thread-multi/auto/" % (get.curPERL(), get.HOST().split("-")[0]))
|
full_path = '%s/%s' % (get.installDIR(), path)
|
||||||
for root, dirs, files in os.walk(path):
|
for root, dirs, files in os.walk(full_path):
|
||||||
for packFile in files:
|
for packFile in files:
|
||||||
if packFile == ".packlist":
|
if packFile == ".packlist":
|
||||||
if can_access_file('%s/%s' % (root, packFile)):
|
if can_access_file('%s/%s' % (root, packFile)):
|
||||||
unlink('%s/%s' % (root, packFile))
|
unlink('%s/%s' % (root, packFile))
|
||||||
|
removeEmptydirs(root)
|
||||||
|
|
||||||
|
|
||||||
|
def removePodfiles(path='usr/lib/perl5/'):
|
||||||
|
''' cleans *.pod files from perl packages '''
|
||||||
|
full_path = '%s/%s' % (get.installDIR(), path)
|
||||||
|
for root, dirs, files in os.walk(full_path):
|
||||||
|
for packFile in files:
|
||||||
|
if packFile.endswith(".pod"):
|
||||||
|
if can_access_file('%s/%s' % (root, packFile)):
|
||||||
|
unlink('%s/%s' % (root, packFile))
|
||||||
|
removeEmptydirs(root)
|
||||||
|
|
||||||
|
|
||||||
|
def removeEmptydirs(d):
|
||||||
|
''' remove empty dirs from perl package if exists after deletion .pod and .packlist files '''
|
||||||
|
if not os.listdir(d) and not d == get.installDIR():
|
||||||
|
unlinkDir(d)
|
||||||
|
d = d[:d.rfind("/")]
|
||||||
|
removeEmptydirs(d)
|
||||||
|
|||||||
Reference in New Issue
Block a user