cluster/containers/getmail/getmail-read-exec-from-path.patch

74 lines
3.3 KiB
Diff
Raw Normal View History

diff --git a/getmailcore/baseclasses.py b/getmailcore/baseclasses.py
index 7143886..e94ba0d 100755
--- a/getmailcore/baseclasses.py
+++ b/getmailcore/baseclasses.py
@@ -261,7 +261,7 @@ class ConfFile(ConfString):
if val is None:
return None
val = expand_user_vars(val)
- if not os.path.isfile(val):
+ if not os.path.isfile(val) and not self.name == 'path' and not self.name == 'password_command':
raise getmailConfigurationError(
'%s: specified file "%s" does not exist' % (self.name, val)
)
@@ -473,7 +473,7 @@ class ForkingBase(object):
stdout, stderr, args, nolog=False):
self._pipemail(msg, delivered_to, received, unixfrom, stdout, stderr)
nolog or self.log.debug('about to execl() with args %s\n' % str(args))
- os.execl(*args)
+ os.execlp(*args)
def forkchild(self, childfun, with_out=True):
self.child = child = Namespace()
diff --git a/getmailcore/destinations.py b/getmailcore/destinations.py
index 2d25558..d7adeba 100755
--- a/getmailcore/destinations.py
+++ b/getmailcore/destinations.py
@@ -607,9 +607,9 @@ class MDA_external(DeliverySkeleton, ForkingBase):
def initialize(self):
self.log.trace()
self.conf['command'] = os.path.basename(self.conf['path'])
- if not os.access(self.conf['path'], os.X_OK):
- raise getmailConfigurationError('%s not executable'
- % self.conf['path'])
+ # if not os.access(self.conf['path'], os.X_OK):
+ # raise getmailConfigurationError('%s not executable'
+ # % self.conf['path'])
if type(self.conf['arguments']) != tuple:
raise getmailConfigurationError(
'incorrect arguments format; see documentation (%s)'
diff --git a/getmailcore/filters.py b/getmailcore/filters.py
index e118e8e..014970a 100755
--- a/getmailcore/filters.py
+++ b/getmailcore/filters.py
@@ -193,10 +193,10 @@ class Filter_external(FilterSkeleton, ForkingBase):
def initialize(self):
self.log.trace()
self.conf['command'] = os.path.basename(self.conf['path'])
- if not os.access(self.conf['path'], os.X_OK):
- raise getmailConfigurationError(
- '%s not executable' % self.conf['path']
- )
+ # if not os.access(self.conf['path'], os.X_OK):
+ # raise getmailConfigurationError(
+ # '%s not executable' % self.conf['path']
+ # )
if type(self.conf['arguments']) != tuple:
raise getmailConfigurationError(
'incorrect arguments format; see documentation (%s)'
@@ -332,10 +332,10 @@ class Filter_TMDA(FilterSkeleton, ForkingBase):
def initialize(self):
self.log.trace()
self.conf['command'] = os.path.basename(self.conf['path'])
- if not os.access(self.conf['path'], os.X_OK):
- raise getmailConfigurationError(
- '%s not executable' % self.conf['path']
- )
+ # if not os.access(self.conf['path'], os.X_OK):
+ # raise getmailConfigurationError(
+ # '%s not executable' % self.conf['path']
+ # )
self.exitcodes_keep = (0, )
self.exitcodes_drop = (99, )