Hello everyone,

I've been using courier-authlib for a while on my server, and while it's
been relatively convenient to use rpmbuild to build from the source tarball,
I decided it would be more convenient to package courier-authlib for Fedora
19.  Towards that end, I've created a spec file customized for Fedora and a
corresponding source RPM using the spec file shipped with the
courier-authlib source and the information at
https://bugzilla.redhat.com/show_bug.cgi?id=486570.

While working on the spec file, I ran into a couple issues whose fixes I
think should be ported back upstream to the main courier-authlib source.  If
any of the below have been addressed in a prior email, I apologize, but I
couldn't find anything searching the archives.

1) The Makefile's install-configure target doesn't install the
authsqliterc.dist file, but it does install authdaemonrc.dist,
authmysqlrc.dist, authpgsqlrc.dist, and authldap.dist.  This looks like an
oversight to me, so I've created a patch to add installation of
authsqliterc.dist into my rpm.  You can find the patch file at
http://fedorapackages.flippedperspective.com/SOURCES/courier-authlib-0.66.0-
sqliterc.patch.

I patched both the Makefile.am and the Makefile.in, although if my
understanding is correct, only the Makefile.in needs to be patched for my
rpm, and only the Makefile.am needs to be patched upstream, as the next run
of automake upstream will fix the Makefile.in if Makefile.am is patched.

If there is a better way to fix this, or there's a reason authsqliterc.dist
was intentionally left out, please let me know.

2) The system unit file provided with the source does not have an Install
section.  This means the service cannot be enabled (set to start at boot).
In my experience, it also does not get started automatically when programs
that rely on it (e.g. courier-imap  or appropriately configured postfix)
start.  I've created a patch that adds an Install section so the unit can be
enabled.  You can find the patch at
http://fedorapackages.flippedperspective.com/SOURCES/courier-authlib-0.66.0-
service.patch.

Again, if there's a better way to fix this, or if there's intentionally no
Install section, please let me know.

3) When running rpmlint against the built rpms, it generates some warnings
about missing man pages for some installed binaries.

3a) pw2userdb: One of the binaries it complains about is pw2userdb.  It
appears that the man file for makeuserdb also documents pw2userdb.  I've
added a line to my spec file to install the makeuserdb man page for
pw2userdb as well, but I think it would be better to update the Makefile to
install it along with the rest of the installed man pages.  (However, that
could be bad manpage practice, and I just don't know it, in which case,
please just let me know.)

3b) authenumerate: I couldn't find a man page in the source that covered
authenumerate, but the documentation does discuss it and Ubuntu has a man
page for it, suggesting Fedora should as well.  For the time being, I've
copied the Ubuntu man page, but that is from the 0.63.0 release of
courier-authlib, and is thus potentially out of date.  I think it would be
useful to add a man page for authenumerate into the source, and update the
Makefile to install it.  Especially since it looks like authenumerate is
something that users may want to interact with (even if just in scripts they
write).

3c) authdaemond: I could not find a man page for authdaemond anywhere, and I
suspect this is one binary that may not need documentation, as it doesn't
seem like it's designed for users to run it.

3d) courierauthconfig: It appears that the man file for authlib documents
courierauthconfig.  I've added a line to my spec file to install the authlib
man page for courierauthconfig as well, but I think it would be better to
update the Makefile to install it along with the rest of the installed man
pages.  (However, that could be bad manpage practice, and I just don't know
it, in which case, please just let me know.)

3e) userdb-test-cram-md5: I also couldn't find a man page for
userdb-test-cram-md5, but it looks to me like a tool designed to help
sysadmins test their cram-md5 setup.  If that's the case, I think it would
be highly beneficial to create a man page for userdb-test-cram-md5
documenting its purpose and usage, especially since it does not respond to
--help, -h, or print a usage message when given no arguments.

If any of the above should not have a man page, please let me know so I can
make sure to not include one in my rpm.

4) The reviewer for previous attempts to package courier-authlib for Fedora
(see the above link to Fedora's bugzilla) questioned why the core
courier-authlib libraries (libcourierauth*) were not installed to the
library directory but instead to the courier-authlib subdirectory.  I tried
to make the packages install to the base library directory, but when
compiled without the -rpath flag, libtool refused to install them
(complaining that they must be installed to a directory ending with
/usr/lib(64)/courier-authlib.  When I removed the -rpath flag from the
Makefile for the core courier-authlib libraries (again, libcourierauth*), I
received link errors on the various authentication modules.

At that point, rather than keep muddling around, I decided it was much
easier to just create an ld.so.conf.d entry for courier-authlib.  However, I
do still wonder, is there a reason for not putting the core libraries into
the base library directory?

5) The explicitly versioned shared libraries (lib*.so.0) seem to be symlinks
to the nonversioned shared libraries.  From what I can tell from the Fedora
packaging guidelines and other searches on the internet, this seems to be
backwards.  When searching through the mail archives, I found the following
email (http://sourceforge.net/mailarchive/message.php?msg_id=19833501) which
states that the versioned symlinks are there for backwards compatibility and
should be removed in version 0.62.  Since courier-authlib is now on version
0.66, is there a reason I should leave them installed by the rpm?  Also,
should they no longer be created by the source Makefiles as suggested by
that email?

6) There is an out of date address for the Free Software Foundation listed
in authldaplib.c.  This looks to be because the GPL v2 license included in
the file predates the recent move of the FSF headquarters.  The out of date
address is:
59 Temple Place - Suite 330
Boston, MA 02111-1307, USA

The current address of the FSF is:
51 Franklin Street, Fifth Floor
Boston, MA 02110-1301

Thanks so much for any help, advice, and responses.  If you'd like to look
over my spec file, and RPM, you can find the spec file at
http://fedorapackages.flippedperspective.com/SPECS/courier-authlib.spec and
the SRPM at
http://fedorapackages.flippedperspective.com/SRPMS/courier-authlib-0.66.0-1.
fc19.src.rpm

I look forward to being an active part of the courier community.

--Zvi "Viz" Effron


------------------------------------------------------------------------------
October Webinars: Code for Performance
Free Intel webinars can help you accelerate application performance.
Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from 
the latest Intel processors and coprocessors. See abstracts and register >
http://pubads.g.doubleclick.net/gampad/clk?id=60134791&iu=/4140/ostg.clktrk
_______________________________________________
courier-users mailing list
courier-users@lists.sourceforge.net
Unsubscribe: https://lists.sourceforge.net/lists/listinfo/courier-users

Reply via email to