Solved

Upgrade issue - hash problems

Posted on 2004-10-27
1,420 Views
Last Modified: 2013-12-17
Hi All,

I am attempting to update sendmail from 8.11.redhat.version (no more updates) to latest 8.13.1

All builds great, and I built sendmail.cf from my existing sendmail.mc (with a few changes to suit).

I get these errors on starting:

554 5.0.0 /etc/mail/sendmail.cf: line 158: readcf: map mailertable: class hash not available
554 5.0.0 /etc/mail/sendmail.cf: line 161: readcf: map virtuser: class hash not available
554 5.0.0 /etc/mail/sendmail.cf: line 166: readcf: map access: class hash not available

The files all exist in /etc/mail/ as existing sendmail loads them at start.

Ideas what I need to correct this?  All I need is a receiving/sending sendmail server (one user, me) tied down with no relaying.

TIA,

Nick
0
Question by:Nick
    14 Comments
     
    LVL 34

    Expert Comment

    by:PsiCop
    According to my copy of _Sendmail_3rd_Edition_ by Bryan Costales (ISBN 1-56592-839-3), on page 888 (S23.7.7), the hash database map is only available if sendmail is compiled with NEWDB defined and the Berkeley or Sleepycat db(3) library linked.
    0
     
    LVL 34

    Expert Comment

    by:PsiCop
    So, go to http://www.sleepycat.com/download/db/index.shtml and download the database, compile and install it.

    Then, when you rebuild sendmail, in the ./devtools/Site/site.config.m4 file, put:

    APPENDDEF(`confLIBDIRS', `-L/path/to/BerkeleyDB/lib')
    APPENDDEF(`confINCDIRS', `-I/path/to/BerkeleyDB/include')
    APPENDDEF(`confENVDEF', `-DNEWDB')

    Sendmail will be rebuilt with the appropriate support.
    0
     
    LVL 1

    Author Comment

    by:Nick
    I have just spent 2 hours fighting this... I must have the Berkley DB as existing sendmail uses it, and I built the access.db using makemap ages ago.

    Also, sendmail info states that if 'libdb.so' exists, it will build NEWDB anyway.

    I have:

    /usr/lib/libdb.so.2 -> libdb1.so.2
    /usr/lib/libdb.so -> /usr/lib/libdb2.so.3

    If I build with the in /devtools/Site/site.config.m4 I get:

    defines../../include/sm/bdb.h:17:17: db.h: No such file or directory

    I tried hooking a symlink libdb.so to point to either of those files, but same build error arises.

    So it looks like I am missing headers.

    I am not sure to update and install berkley DB, as it could break my existing sendmail.

    ...and I thought configuring sendmail to work was hard... heh.

    OK, lets change the tact on this question.  I am a home user, using sendmail just to receive and send mail from my hosted domain here.  Do I need to use DB's at all?

    Nick

    0
     
    LVL 1

    Author Comment

    by:Nick
    Typo:

    /usr/lib/libdb.so -> /usr/lib/libdb2.so.3

    should have been:
    /usr/lib/libdb.so.3 -> libdb2.so.3

    I cut and paste wrong line in scroll.

    Nick
    0
     
    LVL 2

    Expert Comment

    by:ChrisDrake
    Hash is only used in table lookups, like the "virtusertable" and "access" etc - you probably don't need it, but I suspect something somewhere will need to be fixed if you try to run without it.

    Perhaps you're building wrongly?  Here's how you should be doing it:-

    cd /usr/src/redhat/SPECS/
    rpmbuild -bc sendmail.spec

    Why do you need 8.13.1 ?  Maybe something else will work too?
    0
     
    LVL 34

    Accepted Solution

    by:
    Generally, any version from 8.12.10 on should be OK. Nothing wrong with him using 8.13.1, tho - it is the latest.

    Yes, I agree, it looks like you're missing some headers.

    Installing a new Berkeley DB should NOT break your existing sendmail if you install it someplace different than the existing db. The once you get the new sendmail running, you can remove the old one (assuming nothing else uses it).
    0
     
    LVL 1

    Author Comment

    by:Nick
    --> Chris, I haven't got Redhat source - as I said, Redhat stopped free up2date ages ago - I am using sendmail 8.13.1 source.


    OK, I managed to get a berkley db_deveL RPM to the db installed.  That then allowed berkley* db to build correctly.

    A bit of faffing about with sendmail.mc to get it all to work, and all OK.

    After this, I just upgraded an old server at work... running Linux 2.2.26 - I got through sendmail install in about 10 minutes now I know what to do/what gotcha's on the way.

    Thanks,

    Nick
    Great word Berk... Cockney Rhyming slang -> Berkley Hunt...
    0
     
    LVL 34

    Expert Comment

    by:PsiCop
    Nick,

    I appreciate you accepting my answer, but I don't understand the rather low grade of C. What did I do wrong?
    0
     
    LVL 1

    Author Comment

    by:Nick
    Nothing, really, but I marked lowest grade as I guessed DB headers were missing (the problem), and also as I read and stated here sendmail auto-builds -NEWDB if it finds libdb.so - which it did.

    So you confirmed what I found out and learnt before your initial comment.

    No offence meant ;).

    C == average BTW, not poor.  I also thought my 500 points was a bit high for this type of question too, so it's swings and roundabouts.

    Nick
    0
     
    LVL 34

    Expert Comment

    by:PsiCop
    If you solved the issue on your own, then it would have been better to post a (free) Question in the Community Support TA (http://www.experts-exchange.com/Community_Support/) and request that this Question be PAQed and your points refunded. A grade of C means that I didn't do a good job of providing an answer. You can still make that request (be sure to include a link to this Question).
    0
     
    LVL 1

    Author Comment

    by:Nick
    No, I will not do that.  Your help is very much appreciated, and two heads are better than one - it's nice to have a conference.

    I am bound to have further questions, so I will repay :)

    Grade C == you answered the question!  You didn't do a 'bad job' (leave the politicians to do that) - at the time I thought because with a 'little' help I sussed it, you maybe shouldn't get a 'good' or 'great' mark - all grades are winners in my eyes?

    I have no qualms about 'modding up' so to speak - can that be done?

    Nick
    0
     
    LVL 34

    Expert Comment

    by:PsiCop
    I appreciate your feedback.

    If you'd like to change the grade (which does NOT affect the amount of points you spend), then post a Question in the Community Support TA (as described above) and request a Grade Change. A moderator can do it for you (or re-open the Question and let you grade it again).
    0
     
    LVL 1

    Author Comment

    by:Nick
    I have already mailed a mod... you will get a B soon :)

    Nick
    P.S. get ready for my next question (a work question - not a home question)... it's a stinker! ;)
    0
     

    Expert Comment

    by:RomMod
    The grade has been changed as requested.

    RomMod
    Community Support Moderator
    0

    Write Comment

    Please enter a first name

    Please enter a last name

    We will never share this with anyone.

    Featured Post

    Are your corporate email signatures appalling?

    Is it scary how unprofessional your email signatures look? Do users create their own terrible designs and give themselves stupid job titles? You can make this a lot easier for yourself by choosing an email signature management solution from Exclaimer today.

    Getting postfix to support IPv6 is a relatively simple matter (when you know how - or - have read this Article). First of all you must ensure that your server has IPv6 connectivity to the Internet. By default postfix will listen only on IPv4, …
    Automapping, a wonderful feature with Exchange 2010 (SP2 onwards I believe), allows additional/Shared mailboxes that a user has access to be automatically mapped on Outlook client, simplifying the process by adding them while Outlook launches. Ho…
    Familiarize people with the process of retrieving data from SQL Server using an Access pass-thru query. Microsoft Access is a very powerful client/server development tool. One of the ways that you can retrieve data from a SQL Server is by using a pa…
    In this video we show how to create a User Mailbox in Exchange 2013. We show this process by using the Exchange Admin Center. Log into Exchange Admin Center.: First we need to log into the Exchange Admin Center. Navigate to the Recipients >> Mailb…

    884 members asked questions and received personalized solutions in the past 7 days.

    Join the community of 500,000 technology professionals and ask your questions.

    Join & Ask a Question

    Need Help in Real-Time?

    Connect with top rated Experts

    18 Experts available now in Live!

    Get 1:1 Help Now