Courier-AuthLib Configure Script Not Finding Installed ltdl.h Files

classic Classic list List threaded Threaded
7 messages Options
Reply | Threaded
Open this post in threaded view
|

Courier-AuthLib Configure Script Not Finding Installed ltdl.h Files

Michael S. Scaramella, Esq.
Dear Courier Users:

I am a new list subscriber working toward email independence based upon the Courier Mail Server. This transition was prompted by Verizon’s recent decision to block all outgoing email not sent from email addresses at its own domain. I am building a VPS hosted by DigitalOcean running FreeBSD 11.0. While trying to install the full Courier system I encountered an impasse. Any assistance from experienced Courier administrators would be most appreciated.

I have been unable to complete installation of the Courier Authentication Library 0.66.4. When I run the configure script, it nearly finishes, but fails. The following are relevant excerpts from the terminal session:

checking if libtool supports shared libraries... yes
checking whether libtool supports -dlopen/-dlpreopen... yes
checking for ltdl.h... no
checking where to find libltdl headers... -I$(top_srcdir)/libltdl
checking where to find libltdl library... $(top_build_prefix)libltdl/libltdlc.la
checking for ltdl.h... (cached) no
configure: error: Unable to find ltdl.h. Please install Libtool's ltdl library

I had originally installed Libtool 2.4.6 (including the ltdl.h file), Courier Unicode 1.4, and the Courier Authentication Library 0.66.3 from the FreeBSD ports system. That produced an unusable system that needed some manual repair, so I deinstalled everything, and reinstalled from freshly downloaded source code.

Libtool 2.4.6 and Courier Unicode 1.4 are now reinstalled from source. I ran the Libtool configure script as “./configure --prefix=/usr/local --exec-prefix=/usr/local --sysconfdir=/usr/local/etc/libtool --localstatedir=/var --includedir=/usr/local/include/libtool” which completed successfully. Running gmake and gmake install installed two copies of ldtl.h, one at /usr/local/share/libtool/, and another at /usr/local/include/libtool/. The following are relevant excerpts from the terminal session:

 /usr/bin/install -c -m 644 './libltdl/ltdl.h' '/usr/local/share/libtool/ltdl.h'
 /usr/bin/install -c -m 644 libltdl/ltdl.h '/usr/local/include/libtool'

I confirmed the installation of both ltdl.h files with root:wheel 0644 permissions.

I reviewed the courier-authlib configure script and found the following code excerpts that seem to be triggering the error:

if test yes != "$with_included_ltdl"; then
  # We are not being forced to use the included libltdl sources, so
  # decide whether there is a useful installed version we can use.
  ac_fn_c_check_header_compile "$LINENO" "ltdl.h" "ac_cv_header_ltdl_h" "$ac_includes_default

"
if test "x$ac_cv_header_ltdl_h" = xyes; then :
  ac_fn_c_check_decl "$LINENO" "lt_dlinterface_register" "ac_cv_have_decl_lt_dlinterface_register" "$ac_includes_default
    #include <ltdl.h>
"

ac_fn_c_check_header_mongrel "$LINENO" "ltdl.h" "ac_cv_header_ltdl_h" "$ac_includes_default"
if test "x$ac_cv_header_ltdl_h" = xyes; then :
   :
else
  as_fn_error $? "Unable to find ltdl.h. Please install Libtool's ltdl library" "$LINENO" 5
fi

A full understanding of this code is beyond my current skill level, so I cannot determine why neither of the installed ltdl.h files are being found. Also, the leading “if” statement above suggests that it may be possible to compile courier-authlib using included libltdl sources by adding --with_included_ltdl to the ./configure command as an option. Assuming that this is even possible, it seems undesirable since ltdl.h files are actually available to be found.

Thank you in advance for any help offered. I should note that I have not yet received any mail from this list, so a mail filter that I do not control may be blocking messages. So I do not miss anything, please also send a copy of any posted replies to MSS (at) ScaraHoof.com.

Sincerely yours,

Michael

<+>-=-<+>-=-<+>-=-<+>-=-<+>-=-<+>-=-<+>

SCARAMELLA & HOOFNAGLE
Computer Division
 ~  *  ~
Voice: 856-424-2100

<+>-=-<+>-=-<+>-=-<+>-=-<+>-=-<+>-=-<+>


------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
_______________________________________________
courier-users mailing list
[hidden email]
Unsubscribe: https://lists.sourceforge.net/lists/listinfo/courier-users
Reply | Threaded
Open this post in threaded view
|

Re: Courier-AuthLib Configure Script Not Finding Installed ltdl.h Files

Sam Varshavchik
Michael S. Scaramella, Esq. writes:

> Libtool 2.4.6 and Courier Unicode 1.4 are now reinstalled from source. I ran  
> the Libtool configure script as “./configure --prefix=/usr/local --exec-
> prefix=/usr/local --sysconfdir=/usr/local/etc/libtool --localstatedir=/var --
> includedir=/usr/local/include/libtool” which completed successfully. Running  
> gmake and gmake install installed two copies of ldtl.h, one at  
> /usr/local/share/libtool/, and another at /usr/local/include/libtool/. The  
> following are relevant excerpts from the terminal session:

Just because you installed some files in some directory doesn't mean that  
your compiler will automatically find them.

Typically, a compiler searches for header files in /usr/include, and maybe  
/usr/local/include. If you stick something somewhere else, you have to tell  
the compiler, it won't find it for you. You can pass CPPFLAGS to configure,  
to specify an additional compilation flags.

However, your approach is overall wrong. I'm sure that libtool is already  
properly packaged for FreeBSD. I'm sure it's somewhere in the ports tree,  
and all you have to do is install it, and it will be properly installed in  
/usr/include, /usr/lib, and all the usual default system directories, where  
all applications will find them, by default.



------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
_______________________________________________
courier-users mailing list
[hidden email]
Unsubscribe: https://lists.sourceforge.net/lists/listinfo/courier-users

attachment0 (817 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: Courier-AuthLib Configure Script Not Finding Installed ltdl.h Files

Michael S. Scaramella, Esq.
Dear Sam:

Thank you for replying. I tried to keep my original message brief, and must have tried too hard. I also had thought that I should use a preconfigured installation. I originally installed the FreeBSD libtool package, then installed the port, and finally installed from source as a last resort. The courier-auth configure script never could find any of the three installed ltdl.h files. All ltdl.h files are still installed, and are identical. I tried copying the original ltdl.h file from /user/local/include to /usr/include, which does include other header files, but the courier-authlib configure script still fails with the same error: Unable to find ltdl.h.

You mentioned that I could “pass CPPFLAGS to configure.” Unless you have a better suggestion about what to try next, please point me toward any documentation available about how to appropriately pass CPPFLAGS to the configure script.

With continuing appreciation,

Michael

On Dec 12, 2016, at 5:22 PM, Sam Varshavchik <[hidden email]> wrote:

Michael S. Scaramella, Esq. writes:

Libtool 2.4.6 and Courier Unicode 1.4 are now reinstalled from source. I ran the Libtool configure script as “./configure --prefix=/usr/local --exec-prefix=/usr/local --sysconfdir=/usr/local/etc/libtool --localstatedir=/var --includedir=/usr/local/include/libtool” which completed successfully. Running gmake and gmake install installed two copies of ldtl.h, one at /usr/local/share/libtool/, and another at /usr/local/include/libtool/. The following are relevant excerpts from the terminal session:

Just because you installed some files in some directory doesn't mean that your compiler will automatically find them.

Typically, a compiler searches for header files in /usr/include, and maybe /usr/local/include. If you stick something somewhere else, you have to tell the compiler, it won't find it for you. You can pass CPPFLAGS to configure, to specify an additional compilation flags.

However, your approach is overall wrong. I'm sure that libtool is already properly packaged for FreeBSD. I'm sure it's somewhere in the ports tree, and all you have to do is install it, and it will be properly installed in /usr/include, /usr/lib, and all the usual default system directories, where all applications will find them, by default.

<+>-=-<+>-=-<+>-=-<+>-=-<+>-=-<+>-=-<+>

SCARAMELLA & HOOFNAGLE
Computer Division
 ~  *  ~
Voice: 856-424-2100

<+>-=-<+>-=-<+>-=-<+>-=-<+>-=-<+>-=-<+>


------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
_______________________________________________
courier-users mailing list
[hidden email]
Unsubscribe: https://lists.sourceforge.net/lists/listinfo/courier-users
Reply | Threaded
Open this post in threaded view
|

Re: Courier-AuthLib Configure Script Not Finding Installed ltdl.h Files

Sam Varshavchik
Michael S. Scaramella, Esq. writes:

> Dear Sam:
>
> Thank you for replying. I tried to keep my original message brief, and must  
> have tried too hard. I also had thought that I should use a preconfigured  
> installation. I originally installed the FreeBSD libtool package, then  
> installed the port, and finally installed from source as a last resort. The  
> courier-auth configure script never could find any of the three installed  
> ltdl.h files. All ltdl.h files are still installed, and are identical. I  
> tried copying the original ltdl.h file from /user/local/include to  
> /usr/include, which does include other header files, but the courier-authlib  
> configure script still fails with the same error: Unable to find ltdl.h.
Randomly copying files around is unlikely to have productive results.

> You mentioned that I could “pass CPPFLAGS to configure.” Unless you have a  
> better suggestion about what to try next, please point me toward any  
> documentation available about how to appropriately pass CPPFLAGS to the  
> configure script.

./configure "CPPFLAGS=-I<directory>"

You do not appear to have a tecnical background. This isn't very  
complicated, but some technical knowledge is needed to build software from  
source. Perhaps you should ask someone else in your organization for  
assistance, here.

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
_______________________________________________
courier-users mailing list
[hidden email]
Unsubscribe: https://lists.sourceforge.net/lists/listinfo/courier-users

attachment0 (817 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: Courier-AuthLib Configure Script Not Finding Installed ltdl.h Files

Matus UHLAR - fantomas
>Michael S. Scaramella, Esq. writes:
>>You mentioned that I could “pass CPPFLAGS to configure.” Unless you
>>have a better suggestion about what to try next, please point me
>>toward any documentation available about how to appropriately pass
>>CPPFLAGS to the configure script.

On 13.12.16 07:01, Sam Varshavchik wrote:
>You do not appear to have a tecnical background. This isn't very
>complicated, but some technical knowledge is needed to build software
>from source. Perhaps you should ask someone else in your organization
>for assistance, here.

or, someone form FreeBSD to help you with installing libtool and courier
packages the FreeBSD way (ports), not manually from sources.

--
Matus UHLAR - fantomas, [hidden email] ; http://www.fantomas.sk/
Warning: I wish NOT to receive e-mail advertising to this address.
Varovanie: na tuto adresu chcem NEDOSTAVAT akukolvek reklamnu postu.
"The box said 'Requires Windows 95 or better', so I bought a Macintosh".

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
_______________________________________________
courier-users mailing list
[hidden email]
Unsubscribe: https://lists.sourceforge.net/lists/listinfo/courier-users
Reply | Threaded
Open this post in threaded view
|

Re: Configure Scripts Not Finding Resources Installed on FreeBSD

Michael S. Scaramella, Esq.
In reply to this post by Sam Varshavchik
Dear Sam, Matus, et al.:

My project to install and configure Courier on our DigitalOcean hosted FreeBSD 11.0 based VPS is now substantially further along. This message is to report what installation steps work reliably on a current FreeBSD system. I have updated the subject header of this message to better reflect its scope.

Matus appropriately suggested that I seek help from the FreeBSD community. Unfortunately, FreeBSD support for Courier seems stalled at version 0.65.3_4, which I discovered has problems on FreeBSD 11. The FreeBSD courier-unicode package is current at version 1.4, but using it as the basis for installing courier-authlib causes that installation to fail without any reported error. The FreeBSD courier-authlib package is now at version 0.66.3, which is behind the current 0.66.4 version. I tried to install the current Courier version 0.76.3 atop the FreeBSD courier-unicode and courier-authlib packages, but that failed. Ultimately, I found that it was necessary to install the current courier-unicode-devel package atop courier-unicode 1.4 before courier-authlib could be installed successfully. This was suggested as a possibility by the courier-authlib configure script. I should note that the static message displayed by the script still references “Courier Unicode Library 1.2.”

Making the courier installation scripts work properly required abandonment of expectations that the scripts would be able to automatically find all necessary resources installed in standard ways on a FreeBSD 11 system. Adoption of Sam’s helpful suggestion about passing CPPFLAGS to the configure scripts made it possible to move beyond the impasse that I initially wrote about. Long and careful review of the configure scripts enabled me to develop configure commands that should work with any standard FreeBSD system. (For anyone curious about the differences between Linux distributions and FreeBSD, DigitalOcean publishes [a] Comparative Introduction to FreeBSD for Linux Users, which is a good resource.)

The following configure commands presume that several users and groups have been created on the FreeBSD system. As suggested in the Courier installation instructions, I created a user and user group named “courier.” I also created users and user groups for the roles of Courier Administrator and Courier Webmail. Those two user accounts have home directories where the respective website files are stored. Those sites are securely hosted by Apache running on the same VPS.

The following configure command can be used to configure the installation from source code of both courier-unicode and courier-unicode-dev:

./configure \
CPPFLAGS="-I/usr/include -I/usr/local/include -I/usr/local/include/courier" \
LDFLAGS="-L/usr/lib -L/usr/local/lib -L/usr/local/lib/courier" \
--prefix=/usr/local \
--exec-prefix=/usr/local \
--sysconfdir=/usr/local/etc/courier \
--localstatedir=/var \
--includedir=/usr/local/include/courier \
--libdir=/usr/local/lib/courier \
--enable-dependency-tracking

Next, the following configure command can be used to configure the installation from source code of courier-authlib:

./configure \
CPPFLAGS="-I/usr/include -I/usr/local/include -I/usr/local/include/libidn -I/usr/local/include/courier" \
LDFLAGS="-L/usr/lib -L/usr/local/lib -L/usr/local/lib/courier" \
--prefix=/usr/local \
--exec-prefix=/usr/local \
--sysconfdir=/usr/local/etc/courier \
--localstatedir=/var \
--includedir=/usr/local/include/courier \
--libdir=/usr/local/lib/courier \
--enable-dependency-tracking \
--enable-ltdl-install \
--with-ltdl-include=/usr/local/include \
--with-ltdl-lib=/usr/local/lib \
--with-mailuser=courier \
--with-mailgroup=courier

Then, the following configure command can be used to configure the installation from source code of courier:

./configure \
CPPFLAGS="-I/usr/include -I/usr/local/include -I/usr/local/include/libidn -I/usr/local/include/courier" \
LDFLAGS="-L/usr/lib -L/usr/local/lib -L/usr/local/lib/courier -L/usr/local/lib/courier/courier-authlib" \
COURIERAUTHLIB=/usr/local/lib/courier/courier-authlib \
--prefix=/usr/local/ \
--exec-prefix=/usr/local/ \
--sysconfdir=/usr/local/etc/courier \
--localstatedir=/var \
--includedir=/usr/local/include/courier \
--libdir=/usr/local/lib/courier \
--with-cachedir=/var/cache/webmail-logincache \
--with-webadmindir=/usr/home/courier-admin/courierwebadmin \
--with-certsdir=/usr/home/courier-admin/.pki-certs \
--enable-imageurl=/home/courier-webmail/www/docs/images \
--enable-https \
--enable-mimecharset=UTF-8 \
--enable-mimetypes=/usr/local/etc/mime.types

 I hope that these commands serve as helpful examples for others trying to install or upgrade courier installations on systems with standard BSD directory hierarchies.

On Dec 12, 2016, at 5:22 PM, Sam Varshavchik <[hidden email]> wrote:

Typically, a compiler searches for header files in /usr/include, and maybe /usr/local/include. If you stick something somewhere else, you have to tell the compiler, it won't find it for you. You can pass CPPFLAGS to configure, to specify an additional compilation flags.

However, your approach is overall wrong. I'm sure that libtool is already properly packaged for FreeBSD. I'm sure it's somewhere in the ports tree, and all you have to do is install it, and it will be properly installed in /usr/include, /usr/lib, and all the usual default system directories, where all applications will find them, by default.

Sam, thank you again for suggesting that I use CPPFLAGS. They made it possible to move forward. I also felt sure that using the FreeBSD packaged or ported libtool would work. I tried both, but the configure scripts could not find libtool without the CPPFLAGS options.

On Dec 13, 2016, at 7:10 AM, Matus UHLAR - fantomas <[hidden email]> wrote:

On 13.12.16 07:01, Sam Varshavchik wrote:

…Perhaps you should ask someone else in your organization for assistance, here.

or, someone form FreeBSD to help you with installing libtool and courier
packages the FreeBSD way (ports), not manually from sources.

If I succeed in installing and configuring Courier on our FreeBSD system, I will pass along information about what works to the FreeBSD maintainers. That might encourage better and more current support for Courier from the FreeBSD community.

Sincerely yours,

Michael

PS: For anyone who wants to tinker with or test a FreeBSD virtual system hosted by DigitalOcean, upon your request, I can reply with or post a referral hyperlink that if used will provide a $10 credit that would cover the cost of two months of fees for a base $5 virtual private server (“droplet” in DigitalOcean parlance). Note that droplet creation defaults to a larger $10 per month VPS, so changing the size to the minimum stretches the credit.

<+>-=-<+>-=-<+>-=-<+>-=-<+>-=-<+>-=-<+>

SCARAMELLA & HOOFNAGLE
Computer Division
 ~  *  ~
Voice: 856-424-2100

<+>-=-<+>-=-<+>-=-<+>-=-<+>-=-<+>-=-<+>


------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
_______________________________________________
courier-users mailing list
[hidden email]
Unsubscribe: https://lists.sourceforge.net/lists/listinfo/courier-users
Reply | Threaded
Open this post in threaded view
|

Re: Configure Scripts Not Finding Resources Installed on FreeBSD

Gordon Messmer-2
On 12/26/2016 08:57 PM, Michael S. Scaramella, Esq. wrote:
My project to install and configure Courier on our DigitalOcean hosted FreeBSD 11.0 based VPS is now substantially further along.


It's a little late to be of help, but I've sent patches for the courier-authlib and courier "ports" to their respective maintainers.  Hopefully they'll be up to date soon.


------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
_______________________________________________
courier-users mailing list
[hidden email]
Unsubscribe: https://lists.sourceforge.net/lists/listinfo/courier-users

ports-courier.patch.gz (2K) Download Attachment
ports-courier-authlib.patch.gz (686 bytes) Download Attachment
ports-courier-files.patch.gz (5K) Download Attachment