PICCORO McKAY Lenz | 26 Mar 23:01 2015
Picon

webmlmd error: list is owned by root!

i have installed webmlmd and created a list in /home/list/users, then list in rc config file

when restarted a message of error out in console:

Restarting webmlmd daemon: /home/lists/users: is owned by root!

the manpage are very squeak around how to setup, many of the steps are very focused to the mta?

there's a more focused case use of how-to around the coureir mail list manager?

i want to install coureir mail list manager with pam only!

Lenz McKAY Gerardo (PICCORO)
------------------------------------------------------------------------------
Dive into the World of Parallel Programming The Go Parallel Website, sponsored
by Intel and developed in partnership with Slashdot Media, is your hub for all
things parallel software development, from weekly thought leadership blogs to
news, videos, case studies, tutorials and more. Take a look and join the 
conversation now. http://goparallel.sourceforge.net/
_______________________________________________
courier-users mailing list
courier-users <at> lists.sourceforge.net
Unsubscribe: https://lists.sourceforge.net/lists/listinfo/courier-users
Lindsay Haisley | 22 Mar 00:09 2015

Final patch on ratelimit.py

Based on a bit of research and information from Sam, here's my final
submission of a unified diff patch against ratelimit.py.  This fixes two
problems:

1.  When limitNetwork = True, the IP address is now properly parsed from
the Received-From-MTA string for both v4 and v6 addresses and an
identifier for /24 (v4) or /48 (v6) address groups is generated.

2.  When limitNetwork = True, the address identifier is used internally
to identify network matches, but the full Received-From-MTA string is
now returned from the module for logging and the SMTP dialog.

Gordon, this is in your ballpark now.  I've got it working the way it
should and I'm not going to mess with it anymore :)  I'd suggest that
unless you see something nasty, this patch should be incorporated into
the next release of ratelimit.py

Sincere thanks to both Gordon Messmer and Sam Varshavchik.

--- ratelimit.py-1.9.orig	2015-03-18 10:41:48.000000000 -0500
+++ ratelimit.py		2015-03-19 13:12:10.000000000 -0500
 <at>  <at>  -65,12 +65,14  <at>  <at> 
         return '451 Internal failure locating control files'

     if limitNetwork:
-        if '.' in sender:
+        if '.' in sender[sender.rindex("["):]:
             # For IPv4, use the first three octets
-            sender = sender[:sender.rindex('.')]
+            senderID = sender[sender.rindex("["):sender.rindex('.')]
         else:
             # For IPv6, expand the address and then use the first three hextets
-            sender = courier.config.explodeIP6(sender)[:14]
+            senderID = courier.config.explodeIP6(sender)[sender.rindex("["):][:16] 
+    else:
+        senderID = sender

     _sendersLock.acquire()
     try:
 <at>  <at>  -87,16 +89,16  <at>  <at> 
         # First, add this connection to the bucket:
         if not _senders.has_key(now):
             _senders[now] = {}
-        if not _senders[now].has_key(sender):
-            _senders[now][sender] = 1
+        if not _senders[now].has_key(senderID):
+            _senders[now][senderID] = 1
         else:
-            _senders[now][sender] = _senders[now][sender] + 1
+            _senders[now][senderID] = _senders[now][senderID] + 1

         # Now count the number of connections from this sender
         connections = 0
         for i in range(0, interval):
-            if _senders.has_key(now - i) and _senders[now - i].has_key(sender):
-                connections = connections + _senders[now - i][sender]
+            if _senders.has_key(now - i) and _senders[now - i].has_key(senderID):
+                connections = connections + _senders[now - i][senderID]

         # If the connection count is higher than the maxConnections setting,
         # return a soft failure.

--

-- 
Lindsay Haisley       | "Real programmers use butterflies"
FMP Computer Services |
512-259-1190          |       - xkcd
http://www.fmp.com    |

------------------------------------------------------------------------------
Dive into the World of Parallel Programming The Go Parallel Website, sponsored
by Intel and developed in partnership with Slashdot Media, is your hub for all
things parallel software development, from weekly thought leadership blogs to
news, videos, case studies, tutorials and more. Take a look and join the 
conversation now. http://goparallel.sourceforge.net/
_______________________________________________
courier-users mailing list
courier-users <at> lists.sourceforge.net
Unsubscribe: https://lists.sourceforge.net/lists/listinfo/courier-users

Lindsay Haisley | 21 Mar 21:12 2015

"Received-From-MTA" information

I'm looking at Gordon Messmer's new (1.9) ratelimit.py module for his
excellent pythonfilter suite.

Ratelimit.py pulls information about the origin of an email from the
Received-From-MTA data for it stored locally.  This information is
defined in RFC 1894.  The first field in this data is the mta-name-type,
which is "dns" in all the mails I've seen accepted by courier.  The
second field, mta-name, is formatted according to RFC 3461 (9.3)
defining the format for the "dns" mta-name-type as:

	MTA names of type "dns" SHOULD be valid Internet domain names.
        If such domain names are not available, a domain-literal
        containing the internet protocol address is acceptable.  Such
        domain names generally conform to the following syntax:

                domain = real-domain / domain-literal

                real-domain = sub-domain *("." sub-domain)

                sub-domain = atom

                domain-literal = "[" 1*3DIGIT 3("." 1*3DIGIT) "]"

        where "atom" and "DIGIT" are defined in [2].

Gordon's ratelimit.py from courier-pythonfilter-1.9 is optionally
network-aware, but if the network-aware code is to work properly it MUST
assume that the Received-From-MTA data is purely of the form
domain-literal, as defined above, without real-domain data, which is
optional ("SHOULD") but always present in what I see here.

Received-From-MTA data here is always of the form:

    dns; real-domain (domain-literal)

or

    dns; real-domain (real-domain domain-literal)

Under what condition(s) in the courier configuration is this true?  Is
this version-dependent?  Is there a courier config setting under which
this is simply:

    dns; (domain-literal)

... as requrired by ratelimit.py 1.9?

It would be good to know if perhaps Gordon and I are looking at
different courier behaviors before I make further suggestions about his
code.  As courier is configured here, ratelimit.py requires patching to
be network aware, but this may not always be the case if courier is
configured differently.

--

-- 
Lindsay Haisley       | "The only unchanging certainty
FMP Computer Services |    is the certainty of change"
512-259-1190          |
http://www.fmp.com    | - Ancient wisdom, all cultures

------------------------------------------------------------------------------
Dive into the World of Parallel Programming The Go Parallel Website, sponsored
by Intel and developed in partnership with Slashdot Media, is your hub for all
things parallel software development, from weekly thought leadership blogs to
news, videos, case studies, tutorials and more. Take a look and join the 
conversation now. http://goparallel.sourceforge.net/
_______________________________________________
courier-users mailing list
courier-users <at> lists.sourceforge.net
Unsubscribe: https://lists.sourceforge.net/lists/listinfo/courier-users

Lindsay Haisley | 21 Mar 18:03 2015

pythonfilter module precedence question

I'm using pythonfilter modules whitelist_relayclients, spamassassin and
ratelimit for a server installation of courier.  If I whitelist IP
address ranges using webadmin in Inbound ESMTP under "Manual netblock
blacklist/whitelist" is this sufficient to exempt these addresses from
ratelimiting, or do I need to tag these addresses with RELAYCLIENT as
well to exempt them?

I'd rather not do this, since there's no reason to allow them to relay
off of our server, but I want them exempted from the ratelimit and
spamassassin modules.

--

-- 
Lindsay Haisley       | "UNIX is user-friendly, it just
FMP Computer Services |       chooses its friends."
512-259-1190          |          -- Andreas Bogk
http://www.fmp.com    |

------------------------------------------------------------------------------
Dive into the World of Parallel Programming The Go Parallel Website, sponsored
by Intel and developed in partnership with Slashdot Media, is your hub for all
things parallel software development, from weekly thought leadership blogs to
news, videos, case studies, tutorials and more. Take a look and join the 
conversation now. http://goparallel.sourceforge.net/
_______________________________________________
courier-users mailing list
courier-users <at> lists.sourceforge.net
Unsubscribe: https://lists.sourceforge.net/lists/listinfo/courier-users

Lucio Crusca | 19 Mar 11:24 2015

Planning migration

Hello all,

I have a production courier-mta server (along with imap and pop) with a number 
of domains and mailboxes, authentication through userdb. It's a old Debian 
GNU/Linux 6.0 server with packaged courier-mta 0.65. I plan to migrate it to a 
new server with Debian GNU/Linux 8.0 and packaged courier-mta 0.73.

What's the best live migration path that ensures no messages are lost in the 
move? My idea is:

1. Install new server & configure all domains & accounts
2. Make old server send a copy of incoming messages to the new server
3. manually copy old messages
4. switch DNS records & wait propagation
5. shutdown old server

Assuming my idea makes sense, what's the simplest way to configure courier-mta 
for point 2?

------------------------------------------------------------------------------
Dive into the World of Parallel Programming The Go Parallel Website, sponsored
by Intel and developed in partnership with Slashdot Media, is your hub for all
things parallel software development, from weekly thought leadership blogs to
news, videos, case studies, tutorials and more. Take a look and join the 
conversation now. http://goparallel.sourceforge.net/
_______________________________________________
courier-users mailing list
courier-users <at> lists.sourceforge.net
Unsubscribe: https://lists.sourceforge.net/lists/listinfo/courier-users

Lindsay Haisley | 17 Mar 06:30 2015

IPv6 problem with pythonfilter whitelist_relayclients module

I ran into a problem with one of my Mailman mailing lists which was
sending mail from IP address ::1, the IPv6 localhost address.  These
emails were intercepted by the ratelimit module.  I whitelisted this IP
address in /etc/courier/smtpaccess/webadmin using the Courier web UI,
and webadmin has "::1     allow,BLOCK,RELAYCLIENT" in it, and although
I'm running the pythonfilter whitelist_relayclents module, this address
is still getting intercepted by ratelimit.py.  I had to do some (very
ugly!) hacks to ratelimit.py to excempt this address from rate limiting.
Is this a bug in whitelist_relayclients?  It works as expected for IPv4
addresses.

--

-- 
Lindsay Haisley       | "UNIX is user-friendly, it just
FMP Computer Services |       chooses its friends."
512-259-1190          |          -- Andreas Bogk
http://www.fmp.com    |

------------------------------------------------------------------------------
Dive into the World of Parallel Programming The Go Parallel Website, sponsored
by Intel and developed in partnership with Slashdot Media, is your hub for all
things parallel software development, from weekly thought leadership blogs to
news, videos, case studies, tutorials and more. Take a look and join the 
conversation now. http://goparallel.sourceforge.net/
_______________________________________________
courier-users mailing list
courier-users <at> lists.sourceforge.net
Unsubscribe: https://lists.sourceforge.net/lists/listinfo/courier-users

Lindsay Haisley | 16 Mar 20:00 2015

ratelimit.py - updated patch

Here's an updated patch which supersedes the one I posted last Friday,
13 Mar.  I've been using ratelimit.py with my earlier patch and it's
made a huge difference in the amount of spam that slips through our
filters here.  This patch addresses several comments which Gordon made
on the patch I posted last Friday.

*  "use_blocks" is now "use_groups" to avoid the double-meaning of the
word "block"

*  As per Gordon's suggestion, I've simplified the code that's executed
on a per-message basis.  I didn't eliminate regexp usage (sorry, 
Gordon!) but I don't believe the performance hit will be substantial and
what's generated with regexp methods is an address group identifier, not
a functional address.

*  The address group identifier (which is simply the full IP address if
use_groups=False) is now the 2nd level dictionary index, i.e. instead of
the per message counter being _sender[now][SendersMta] it's
_sender[now][address_group_id] and the full SendersMta information is
only used for logging and for the SMTP dialog with the sending system.
This information is useful for researching spam sources.

*  IPv6 is supported.  Whether to rate limit based on a /48 or /64 group
is a configuration option.  There are potential issues parsing a v6
address containing the shorthand "::" notation if this spans more than
one hex 16 bit portion of the address.  Someone correct me if I'm wrong,
but I don't think this is found in the network portion of real-world
assigned v6 addresses.

--- ratelimit.py.orig	2015-03-16 11:05:32.000000000 -0500
+++ ratelimit.py	2015-03-16 13:00:25.000000000 -0500
 <at>  <at>  -1,4 +1,5  <at>  <at> 
 #!/usr/bin/python
+# vim: set expandtab ai ts=4:
 # ratelimit -- Courier filter which limits the rate of messages from any IP
 # Copyright (C) 2003-2008  Gordon Messmer <gordon <at> dragonsdawn.net>
 #
 <at>  <at>  -21,12 +22,21  <at>  <at> 
 import thread
 import time
 import courier.control
+import re

 
 # The rate is measured in messages / interval in minutes
 maxConnections = 60
 interval = 1

+# Limit rate for all addresses in a /24 address group for IPv4 and a
+# /64 group for IPv6
+use_groups = False
+
+# If use_groups = True, use ratelimting for all IPv6 addresses in a
+# /48 group insted of a /64 group
+v6_groupsize48 = True
+
 # The senders lists will be scrubbed at the interval indicated in
 # seconds.  All records older than the "interval" number of minutes
 # will be removed from the lists.
 <at>  <at>  -41,6 +51,19  <at>  <at> 
     global _sendersLock
     global _senders
     global _sendersLastPurged
+    global _igroup4
+    global _igroup6
+    range4 = 3
+    if v6_groupsize48:
+        range6 = 3
+    else:
+        range6 = 4
+
+    if use_groups:
+        _pat4 = re.compile("((:?\d{1,3}\.){%s})" % (range4,))
+        _pat6 = re.compile('((:?[0-9a-f]{0,4}:{,1}){%s})' % (range6,))
+        _igroup4 = lambda a: _pat4.match(a).group(1)
+        _igroup6 = lambda a: _pat6.match(a).group(1)
     _sendersLock = thread.allocate_lock()
     _senders = {}
     _sendersLastPurged    = 0
 <at>  <at>  -48,6 +71,14  <at>  <at> 
     # Record in the system log that this filter was initialized.
     sys.stderr.write('Initialized the ratelimit python filter\n')

+def getSenderGroup(ip):
+    if use_groups:
+        try:
+            return _igroup4(ip)
+        except AttributeError:
+            return _igroup6(ip)
+    else:
+        return ip

 def doFilter(bodyFile, controlFileList):
     """Track the number of connections from each IP and temporarily fail
 <at>  <at>  -56,10 +87,13  <at>  <at> 
     global _sendersLastPurged

     try:
-        sender = courier.control.getSendersMta(controlFileList)
+        senderMta = courier.control.getSendersMta(controlFileList)
+        senderIP = courier.control.getSendersIP(controlFileList)
     except:
         return '451 Internal failure locating control files'

+    sender = getSenderGroup(senderIP)
+
     _sendersLock.acquire()
     try:
         now = int(time.time() / 60)
 <at>  <at>  -78,18 +112,18  <at>  <at> 
         if not _senders[now].has_key(sender):
             _senders[now][sender] = 1
         else:
-            _senders[now][sender] = _senders[now][sender] + 1
+            _senders[now][sender] += 1

         # Now count the number of connections from this sender
         connections = 0
         for i in range(0, interval):
             if _senders.has_key(now - i) and _senders[now - i].has_key(sender):
-                connections = connections + _senders[now - i][sender]
+                connections += _senders[now - i][sender]

         # If the connection count is higher than the maxConnections setting,
         # return a soft failure.
         if connections > maxConnections:
-            status = '421 Too many messages from %s, slow down.' % sender
+            status = '421 Too many messages from %s, slow down.' % (senderMta,)
         else:
             status = ''
     finally:

The matching configuration block in pythonfilter-modules.conf is:

[ratelimit.py]
maxConnections = 60
interval = 1
sendersPurgeInterval = 60 * 60 * 12
# Limit rate for all addresses in a /24 address group for IPv4 and a /64 group for IPv6
use_groups = True
# If use_groups = True, ratelimit on a /48 group instead of a /64 group
v6_groupsize48 = True

I hope others find this patch as useful as I do here, and again,
suggestions and comments are welcome.

--

-- 
Lindsay Haisley       | "UNIX is user-friendly, it just
FMP Computer Services |       chooses its friends."
512-259-1190          |          -- Andreas Bogk
http://www.fmp.com    |

------------------------------------------------------------------------------
Dive into the World of Parallel Programming The Go Parallel Website, sponsored
by Intel and developed in partnership with Slashdot Media, is your hub for all
things parallel software development, from weekly thought leadership blogs to
news, videos, case studies, tutorials and more. Take a look and join the 
conversation now. http://goparallel.sourceforge.net/
_______________________________________________
courier-users mailing list
courier-users <at> lists.sourceforge.net
Unsubscribe: https://lists.sourceforge.net/lists/listinfo/courier-users

Lindsay Haisley | 14 Mar 17:52 2015

IPv6 spam patterns

Spamming engines using IPv4 addresses frequently cycle through IP
addresses in order to defeat rate limiting filters.  These are all
generally within the same /24 block.  What's the equivalent invariant
network part generally seen in IPv6 addressed spam?  Generally address
providers will give out a /64 or even a /48 for the asking.  We don't
publish any MX's tied to AAAA records so we don't see any IPv6 spam, but
I assume it exists.

--

-- 
Lindsay Haisley       | "UNIX is user-friendly, it just
FMP Computer Services |       chooses its friends."
512-259-1190          |          -- Andreas Bogk
http://www.fmp.com    |

------------------------------------------------------------------------------
Dive into the World of Parallel Programming The Go Parallel Website, sponsored
by Intel and developed in partnership with Slashdot Media, is your hub for all
things parallel software development, from weekly thought leadership blogs to
news, videos, case studies, tutorials and more. Take a look and join the 
conversation now. http://goparallel.sourceforge.net/
_______________________________________________
courier-users mailing list
courier-users <at> lists.sourceforge.net
Unsubscribe: https://lists.sourceforge.net/lists/listinfo/courier-users

Lindsay Haisley | 13 Mar 16:58 2015

Block awareness in ratelimit.py

Here's a suggested patch to Gordon Messmer's ratelimit module for
pythonfilter.

It's a common practice these days among spammers to cycle through a
number of originating IP addresses when sending out a spam spew, which
tends to defeat per-IP rate limiting.  Although there may be exceptions,
I've noted that these IP addresses are almost always in the same /24
address group.

This patch isolates the first three octets of the originating IP address
from the sender information returned by courier.control.getSendersMta()
and stores these in the connection history data structure.  If block
awareness is enabled in the module, the connection count is based on a
match of these three-octet identifiers rather than the entire sender
information string.

One new configuration variable is introduced.  use_blocks is a boolean
which determines whether ratelimit.py detects address group matches or
simply sender matches as is the case now.

I will welcome any corrections, improvements or comments on this code.
I'm aware that the three octet data stored in the connection history
structure doesn't constitute normalized related data, but my
understanding is that it's less expensive of processing time to store
this information once and recall it than to compute it from the stored
sender string with each incoming email.

I've tested this to determine that it works as expected with email from
a single IP address with use_blocks set both False and True.  I haven't
tested it sending emails from a multi-homed platform, but if it works
from a single IP with use_blocks=True then it should work as expected to
rate limit email from a /24 address group.

--- ratelimit.py	2015-03-13 10:08:23.000000000 -0500
+++ ratelimit.py.new	2015-03-13 10:09:50.000000000 -0500
 <at>  <at>  -23,11 +23,13  <at>  <at> 
 import thread
 import time
 import courier.control
+import re

 
 # The rate is measured in messages / interval in minutes
 maxConnections = 60
 interval = 1
+use_blocks = True

 # The senders lists will be scrubbed at the interval indicated in
 # seconds.  All records older than the "interval" number of minutes
 <at>  <at>  -43,6 +45,10  <at>  <at> 
     global _sendersLock
     global _senders
     global _sendersLastPurged
+    global _pat    
+    global _igroup
+    _pat = re.compile(".*?\[.*?(\d{1,3}\.\d{1,3}\.\d{1,3})\.\d{1,3}\].*$")
+    _igroup = lambda a: _pat.match(a).group(1)
     _sendersLock = thread.allocate_lock()
     _senders = {}
     _sendersLastPurged    = 0
 <at>  <at>  -78,14 +84,24  <at>  <at> 
         if not _senders.has_key(now):
             _senders[now] = {}
         if not _senders[now].has_key(sender):
-            _senders[now][sender] = 1
+            _senders[now][sender] = []
+            _senders[now][sender].append(1)
+            _senders[now][sender].append(_igroup(sender))
         else:
-            _senders[now][sender] = _senders[now][sender] + 1
+            _senders[now][sender][0] += 1
+                
         # Now count the number of connections from this sender
         connections = 0
         for i in range(0, interval):
-            if _senders.has_key(now - i) and _senders[now - i].has_key(sender):
-                connections = connections + _senders[now - i][sender]
+            if _senders.has_key(now - i):
+                if use_blocks:
+                    for j in _senders[now - i]:
+                        if _igroup(sender) == _senders[now - i][j][1]:
+                            connections += _senders[now - i][j][0]
+                else:
+                    if _senders[now - i].has_key(sender):
+                        connections += _senders[now - i][sender][0]
+    
         # If the connection count is higher than the maxConnections setting,
         # return a soft failure.
         if connections > maxConnections:

--

-- 
Lindsay Haisley       | "UNIX is user-friendly, it just
FMP Computer Services |       chooses its friends."
512-259-1190          |          -- Andreas Bogk
http://www.fmp.com    |

------------------------------------------------------------------------------
Dive into the World of Parallel Programming The Go Parallel Website, sponsored
by Intel and developed in partnership with Slashdot Media, is your hub for all
things parallel software development, from weekly thought leadership blogs to
news, videos, case studies, tutorials and more. Take a look and join the 
conversation now. http://goparallel.sourceforge.net/
_______________________________________________
courier-users mailing list
courier-users <at> lists.sourceforge.net
Unsubscribe: https://lists.sourceforge.net/lists/listinfo/courier-users

Trevor van der Linden | 10 Mar 22:51 2015
Picon

file not found error building courier-imap-4.16.0

Hi,

 

Error is:

 

File not found: /home/ec2-user/rpm/BUILDROOT/courier-imap-4.16.0-1.x86_64/usr/lib/courier-imap/share/courier-imap.sysvinit

 

File does exist in different location:

[ec2-user <at> koala downloads]$ sudo find / -name courier-imap.sysvinit -print

/home/ec2-user/rpm/BUILD/courier-imap-4.16.0/packaging/systemd/courier-imap.sysvinit

 

More text of the build process leading up to failure

fails with the following output soon after “Generating DH parameters, 2048 bit long safe prime, generator 2.  This is going to take a long time

. . .  

Processing files: courier-imap-4.16.0-1.x86_64

error: File not found: /home/ec2-user/rpm/BUILDROOT/courier-imap-4.16.0-1.x86_64/usr/lib/courier-imap/share/courier-imap.sysvinit

Executing(%doc): /bin/sh -e /var/tmp/rpm-tmp.54W4pb

+ umask 022

+ cd /home/ec2-user/rpm/BUILD

+ cd courier-imap-4.16.0

+ DOCDIR=/home/ec2-user/rpm/BUILDROOT/courier-imap-4.16.0-1.x86_64/usr/share/doc/courier-imap-4.16.0

+ export DOCDIR

+ /bin/mkdir -p /home/ec2-user/rpm/BUILDROOT/courier-imap-4.16.0-1.x86_64/usr/share/doc/courier-imap-4.16.0

+ cp -pr NEWS /home/ec2-user/rpm/BUILDROOT/courier-imap-4.16.0-1.x86_64/usr/share/doc/courier-imap-4.16.0

+ cp -pr AUTHORS /home/ec2-user/rpm/BUILDROOT/courier-imap-4.16.0-1.x86_64/usr/share/doc/courier-imap-4.16.0

+ cp -pr COPYING /home/ec2-user/rpm/BUILDROOT/courier-imap-4.16.0-1.x86_64/usr/share/doc/courier-imap-4.16.0

+ cp -pr libs/imap/BUGS /home/ec2-user/rpm/BUILDROOT/courier-imap-4.16.0-1.x86_64/usr/share/doc/courier-imap-4.16.0

+ cp -pr README /home/ec2-user/rpm/BUILDROOT/courier-imap-4.16.0-1.x86_64/usr/share/doc/courier-imap-4.16.0

+ cp -pr README.imap /home/ec2-user/rpm/BUILDROOT/courier-imap-4.16.0-1.x86_64/usr/share/doc/courier-imap-4.16.0

+ cp -pr README.maildirquota /home/ec2-user/rpm/BUILDROOT/courier-imap-4.16.0-1.x86_64/usr/share/doc/courier-imap-4.16.0

+ cp -pr README.sharedfolders /home/ec2-user/rpm/BUILDROOT/courier-imap-4.16.0-1.x86_64/usr/share/doc/courier-imap-4.16.0

+ cp -pr README.proxy README.proxy.html /home/ec2-user/rpm/BUILDROOT/courier-imap-4.16.0-1.x86_64/usr/share/doc/courier-imap-4.16.0

+ exit 0

 

 

RPM build errors:

    File not found: /home/ec2-user/rpm/BUILDROOT/courier-imap-4.16.0-1.x86_64/usr/lib/courier-imap/share/courier-imap.sysvinit

[ec2-user <at> koala downloads]$

 

How I got there:

sudo yum install rpm-build gcc mysql-devel openssl-devel cyrus-sasl-devel pkgconfig zlib-devel pcre-devel openldap-devel postgresql-devel expect libtool-ltdl-devel openldap-servers libtool gdbm-devel pam-devel gamin-devel libidn-devel sqlite-devel gcc-c++ redhat-rpm-config -y

mkdir $HOME/rpm

mkdir $HOME/rpm/SOURCES

mkdir $HOME/rpm/SPECS

mkdir $HOME/rpm/BUILD

mkdir $HOME/rpm/BUILDROOT

mkdir $HOME/rpm/SRPMS

mkdir $HOME/rpm/RPMS

mkdir $HOME/rpm/RPMS/i386

mkdir $HOME/rpm/RPMS/x86_64

echo "%_topdir $HOME/rpm" >> $HOME/.rpmmacros

mkdir $HOME/downloads

cd $HOME/downloads

wget --no-check-certificate https://sourceforge.net/projects/courier/files/authlib/0.66.1/courier-authlib-0.66.1.tar.bz2

wget --no-check-certificate https://sourceforge.net/projects/courier/files/imap/4.16.0/courier-imap-4.16.0.tar.bz2

wget --no-check-certificate https://sourceforge.net/projects/courier/files/maildrop/2.8.1/maildrop-2.8.1.tar.bz2

wget --no-check-certificate https://sourceforge.net/projects/courier/files/courier-unicode/1.1/courier-unicode-1.1.tar.bz2

sudo rpmbuild -ta courier-authlib-0.66.1.tar.bz2

sudo ls -l /usr/src/rpm/RPMS/x86_64

sudo rpm -ivh /usr/src/rpm/RPMS/x86_64/courier-authlib-0.66.1-1.amzn1.x86_64.rpm /usr/src/rpm/RPMS/x86_64/courier-authlib-mysql-0.66.1-1.amzn1.x86_64.rpm /usr/src/rpm/RPMS/x86_64/courier-authlib-devel-0.66.1-1.amzn1.x86_64.rpm

sudo rpmbuild -ta courier-unicode-1.1.tar.bz2

sudo rpm -ivh /usr/src/rpm/RPMS/x86_64/courier-unicode-1.1-1.amzn1.x86_64.rpm /usr/src/rpm/RPMS/x86_64/courier-unicode-devel-1.1-1.amzn1.x86_64.rpm

cd $HOME/downloads

sudo mkdir -p /var/cache/ccache/tmp

sudo chmod o+rwx /var/cache/ccache/

sudo chmod 777 /var/cache/ccache/tmp

rpmbuild -ta courier-imap-4.16.0.tar.bz2

 

Sever is an Amazon Web Services t2.micro with the AMI (Amazon Machine Image) image called Amazon Linux AMI 2014.09.2 (HVM) - ami-146e2a7c

 

Any suggestions or assistance would be great.  Tried the development release from the download page but that needs Unicode 1.2 which is pushing the envelope of dev code to far for a production server.

 

Thanks.

-Trevor

 

------------------------------------------------------------------------------
Dive into the World of Parallel Programming The Go Parallel Website, sponsored
by Intel and developed in partnership with Slashdot Media, is your hub for all
things parallel software development, from weekly thought leadership blogs to
news, videos, case studies, tutorials and more. Take a look and join the 
conversation now. http://goparallel.sourceforge.net/
_______________________________________________
courier-users mailing list
courier-users <at> lists.sourceforge.net
Unsubscribe: https://lists.sourceforge.net/lists/listinfo/courier-users
Picon

SMTP TLS, mta sends to our mta

Hello  <at> ll,

I have sometimes problems when somebody send us email over starttls 
(sometimes it works). As followed a snippet from mail.log:

Mar  6 13:38:08 localhost courieresmtpd: started,ip=[::ffff:x.x.x.x]
Mar  6 13:38:09 localhost courieresmtpd: courieresmtpd: STARTTLS failed: 
couriertls: accept: error:1408F10B:SSL routines:SSL3_GET_RECORD:wrong 
version number

These are the config-files

#/etc/courier/esmtpd
TLS_PROTOCOL=TLS1
TLS_CIPHER_LIST is unconfigured
PORT=smtp

#/etc/courier/esmtpd-ssl
ESMTPDSSLSTART="NO"
TLS_PROTOCOL=TLS1
TLS_CIPHER_LIST is unconfigured
SSLPORT=465
ESMTPDSSLSTART="NO"

I am not sure if senders mta is the problem or our configuration (Maybe 
TLS_CIPHER_LIST)? Could it be that some ciphers of TLS1 and SSLv3 are 
the same?

Cheers

Michael
-- 
InterNetworX Ltd. & Co. KG
Prinzessinnenstr. 30
10969 Berlin
Germany

Phone +49 30 983 212 - 0
Fax +49 30 983 212 - 90

support <at> inwx.de
www.inwx.de

Amtsgericht: Berlin-Charlottenburg, HRA 36889 B
Geschäftsführung: InterNetworX Ltd. vertreten durch Mario Peschel
USt-IdNr.: DE814537105

------------------------------------------------------------------------------
Dive into the World of Parallel Programming The Go Parallel Website, sponsored
by Intel and developed in partnership with Slashdot Media, is your hub for all
things parallel software development, from weekly thought leadership blogs to
news, videos, case studies, tutorials and more. Take a look and join the 
conversation now. http://goparallel.sourceforge.net/
_______________________________________________
courier-users mailing list
courier-users <at> lists.sourceforge.net
Unsubscribe: https://lists.sourceforge.net/lists/listinfo/courier-users

Gmane