#66 installation dir options require ending slash

v2.3.2
open
nobody
3
2009-06-01
2007-10-23
Chris Behrens
No

The devtools/README file shows directories as defaults that do not
contain ending slashes. Ie, confLIBDIR shows default of '/usr/lib'.

Assuming that confLIBDIR does not require an ending slash, setting that variable to a value such as '/usr/local/lib' and using shared library building, 'Build install' creates /usr/local/liblibdkim.so, which is not what was desired. Adding a final slash to the config variable fixes the problem. Either this should be documented or fixed :)

Discussion

  • Logged In: YES
    user_id=1048957
    Originator: NO

    Referred to the devtools guys at Sendmail.

     
    • priority: 5 --> 3
    • assigned_to: nobody --> sm-msk
     
  • Logged In: YES
    user_id=1048957
    Originator: NO

    I tried this on BSD and Solaris and both times it ran an install command that just named the directory into which the shared object should go. For example, I set confLIBDIR to /usr/lib/comstud (no trailing slash), and it did this on Solaris:

    Making in /home/msk/dev4/obj.SunOS.5.9.sun4/libdkim
    ../../devtools/bin/install.sh -c -o root -g bin -m 0444 libdkim.a /usr/lib/comstud
    cp: cannot create /usr/lib/comstud: Permission denied

    ...which looks like it would do the right thing. BSD did something similar.

    What was the exact install command your attempt produced?

     
    • status: open --> pending
     
  • Logged In: YES
    user_id=1048957
    Originator: NO

    Found some more about this. This problem only occurs when "library" is changed to "sharedlib" in the Makefile.m4. In that case, the installation actually happens properly, but the symlink cleanup/setup afterwards will fail. This is because the commands use this construction:

    rm -f ${DESTDIR}${SHAREDLIBDIR}${SHAREDLIB_LINK}
    ${LN} ${LNOPTS} ${DESTDIR}${SHAREDLIBDIR}${SHAREDLIB} ${DESTDIR}${SHAREDLIBDIR}${SHAREDLIB_LINK}

    Obviously there, SHAREDLIBDIR has to include a trailing "/" (or be empty, in which case DESTDIR has to have the trailing "/") for the path construction to be correct.

     
    • status: pending --> open
     
  • Logged In: YES
    user_id=1048957
    Originator: NO

    devtools/README has been updated to indicate the required trailing slash, and this will be visible in the next release.

    Moreover, I'm trying to write some code into devtools/M4/UNIX/sharedlib.m4 that will detect the absence of the trailing slash and append it, but M4 is tricky stuff...

     
    • assigned_to: sm-msk --> nobody