<html>
  <head>

    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p>Hi there.</p>
    <p>I've recently upgraded my email relay, which has amavisd-new
      installed, and when amavis starts up it logs all the file types
      which it doesn't have decoders for. Looking at the amavisd-new
      script, I can see that @decoders is set to:</p>
    <blockquote><font face="monospace">  @decoders = (
</font><br>
      <font face="monospace">    ['mail',
        \&Amavis::Unpackers::do_mime_decode],
</font><br>
      <font face="monospace">#   [[qw(asc uue hqx ync)],
        \&Amavis::Unpackers::do_ascii],  # not safe
</font><br>
      <font face="monospace">    ['F',   
        \&Amavis::Unpackers::do_uncompress, \$unfreeze],
</font><br>
      <font face="monospace">             # ['unfreeze', 'freeze -d',
        'melt', 'fcat'] ],
</font><br>
      <font face="monospace">    ['Z',   
        \&Amavis::Unpackers::do_uncompress, \$uncompress],
</font><br>
      <font face="monospace">             # ['uncompress', 'gzip -d',
        'zcat'] ],
</font><br>
      <font face="monospace">    ['gz',  
        \&Amavis::Unpackers::do_uncompress, \$gunzip],
</font><br>
      <font face="monospace">    ['gz',  
        \&Amavis::Unpackers::do_gunzip],
</font><br>
      <font face="monospace">    ['bz2', 
        \&Amavis::Unpackers::do_uncompress, \$bunzip2],
</font><br>
      <font face="monospace">    ['xz',  
        \&Amavis::Unpackers::do_uncompress,
</font><br>
      <font face="monospace">             ['xzdec', 'xz -dc', 'unxz -c',
        'xzcat'] ],
</font><br>
      <font face="monospace">    ['lzma',
        \&Amavis::Unpackers::do_uncompress,
</font><br>
      <font face="monospace">             ['lzmadec', 'xz -dc
        --format=lzma',
</font><br>
      <font face="monospace">              'lzma -dc', 'unlzma -c',
        'lzcat', 'lzmadec'] ],
</font><br>
      <font face="monospace">    ['lrz', 
        \&Amavis::Unpackers::do_uncompress,
</font><br>
      <font face="monospace">             ['lrzip -q -k -d -o -',
        'lrzcat -q -k'] ],
</font><br>
      <font face="monospace">    ['lzo', 
        \&Amavis::Unpackers::do_uncompress, \$unlzop],
</font><br>
      <font face="monospace">    ['lz4', 
        \&Amavis::Unpackers::do_uncompress, ['lz4c -d'] ],
</font><br>
      <font face="monospace">    ['rpm', 
        \&Amavis::Unpackers::do_uncompress, \$rpm2cpio],
</font><br>
      <font face="monospace">             # ['rpm2cpio.pl', 'rpm2cpio']
        ],
</font><br>
      <font face="monospace">    [['cpio','tar'],
        \&Amavis::Unpackers::do_pax_cpio, \$pax],
</font><br>
      <font face="monospace">             #
        ['/usr/local/heirloom/usr/5bin/pax', 'pax', 'gcpio', 'cpio'] ],
</font><br>
      <font face="monospace">#   ['tar', 
        \&Amavis::Unpackers::do_tar],  # no longer supported
</font><br>
      <font face="monospace">    ['deb', 
        \&Amavis::Unpackers::do_ar, \$ar],
</font><br>
      <font face="monospace">#   ['a',   
        \&Amavis::Unpackers::do_ar, \$ar], #unpacking .a seems an
        overkill
</font><br>
      <font face="monospace">    ['rar', 
        \&Amavis::Unpackers::do_unrar, \$unrar],  # ['unrar',
        'rar']
</font><br>
      <font face="monospace">    ['arj', 
        \&Amavis::Unpackers::do_unarj, \$unarj],  # ['unarj',
        'arj']
</font><br>
      <font face="monospace">    ['arc', 
        \&Amavis::Unpackers::do_arc,   \$arc],    # ['nomarch',
        'arc']
</font><br>
      <font face="monospace">    ['zoo', 
        \&Amavis::Unpackers::do_zoo,   \$zoo],    # ['zoo',
        'unzoo']
</font><br>
      <font face="monospace">    ['doc', 
        \&Amavis::Unpackers::do_ole,   \$ripole],
</font><br>
      <font face="monospace">    ['cab', 
        \&Amavis::Unpackers::do_cabextract, \$cabextract],
</font><br>
      <font face="monospace">    ['tnef',
        \&Amavis::Unpackers::do_tnef_ext, \$tnef],
</font><br>
      <font face="monospace">    ['tnef',
        \&Amavis::Unpackers::do_tnef],
</font><br>
      <font face="monospace">#   ['lha', 
        \&Amavis::Unpackers::do_lha,   \$lha],  # not safe, use 7z
        instead
</font><br>
      <font face="monospace">#   ['sit', 
        \&Amavis::Unpackers::do_unstuff, \$unstuff],  # not safe
</font><br>
      <font face="monospace">    [['zip','kmz'],
        \&Amavis::Unpackers::do_7zip,  ['7za', '7z'] ],
</font><br>
      <font face="monospace">    [['zip','kmz'],
        \&Amavis::Unpackers::do_unzip],
</font><br>
      <font face="monospace">    ['7z',  
        \&Amavis::Unpackers::do_7zip,  ['7zr', '7za', '7z'] ],
</font><br>
      <font face="monospace">    [[qw(gz bz2 Z tar)],
</font><br>
      <font face="monospace">            
        \&Amavis::Unpackers::do_7zip,  ['7za', '7z'] ],
</font><br>
      <font face="monospace">    [[qw(xz lzma jar cpio arj rar swf lha
        iso cab deb rpm)],
</font><br>
      <font face="monospace">            
        \&Amavis::Unpackers::do_7zip,  '7z' ],
</font><br>
      <font face="monospace">    ['exe', 
        \&Amavis::Unpackers::do_executable, \$unrar, \$lha,
        \$unarj],
</font><br>
      <font face="monospace">  );
</font></blockquote>
    <p>Which seems to say that 7z can be used for the following file
      extensions:<br>
    </p>
    <blockquote><font face="monospace">zip kmz</font><br>
      <font face="monospace">7z</font><br>
      <font face="monospace">gz bz2 Z tar</font><br>
      <font face="monospace">xz lzma jar cpio arj rar swf lha iso cab
        deb rpm</font></blockquote>
    <p>So after installing p7zip-full and p7zip-rar packages, which
      provide the 7z program (and also 7zr and 7za), I'm curious why I
      still see warnings for rpm, rar, arj and cab:<br>
    </p>
    <blockquote>
      <p><font face="monospace">Aug 29 13:13:39 mx amavis[10781]: No ext
          program for   .rpm, tried: rpm2cpio.pl, rpm2cpio
<br>
          Aug 29 13:13:39 mx amavis[10781]: No ext program for   .rar,
          tried: unrar-free
<br>
          Aug 29 13:13:39 mx amavis[10781]: No ext program for   .arj,
          tried: arj, unarj
<br>
          Aug 29 13:13:39 mx amavis[10781]: No ext program for   .cab,
          tried: cabextract
</font><br>
      </p>
    </blockquote>
    <p>Does this mean that 7z isn't going to be used for these file
      types? And if so, is there something I can do to get amavis to use
      7z for these file types?</p>
    <p>Or should these messages just be ignored?</p>
    <p>And on a related note, I know (on Windows at least) 7-zip can
      handle self-extracting exe files, although I notice that the "man
      7z" manual page doesn't mention EXE files. So I wonder whether exe
      should or shouldn't be added to the list of files that 7z can
      handle in a future version of amavis?<br>
    </p>
    <p>Thanks,</p>
    <p>Nick.<br>
    </p>
    <p><br>
    </p>
  </body>
</html>