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