cygport: KEEPDIRS not working, doenv and tcsh

Corinna Vinschen
Sat Apr 28 09:44:00 GMT 2012

Hi Yaakov,

I'm just converting the OpenSSL package to cygport packaging.  I
stumbled over two problems using cygport 0.10.10-1:

- Neither keepdir nor KEEPDIRS seem to do their job.

  The OpenSSL package installs two empty dirs which are supposed to
  be kept in the tar archive.  So I tried

    src_install() {
      keepdir usr/ssl/certs
      keepdir usr/ssl/private

  as well as on the top level:

    KEEPDIRS="usr/ssl/certs usr/ssl/private"

  but to no avail:

    cygport openssl-1.0.1b-1.cygport install
    *** Info: Removing empty directory: /usr/ssl/certs
    *** Info: Removing empty directory: /usr/ssl/private

  Is there something else I have to do?

- Another problem I found is the way the `doenv' command works.
  I like the idea, but it's not working well for tcsh scripts.

  Assuming I want to extend the MANPATH variable, as for OpenSSL:

    doenv MANPATH '${MANPATH}:/usr/ssl/man'

  The result for tcsh looks like this:

    setenv MANPATH "${MANPATH}:/usr/ssl/man"

  The problem is this.  If the MANPATH variable is not set at the time,
  tcsh will choke on it:

    $ setenv MANPATH "${MANPATH}:/usr/ssl/man"
    MANPATH: Undefined variable.

  A more generic solution, which takes potential self-referencing into
  account should first set the variable to an empty string if it doesn't

    if ( $?MANPATH ) setenv MANPATH ""
    setenv MANPATH "${MANPATH}:/usr/ssl/man"


Corinna Vinschen                  Please, send mails regarding Cygwin to
Cygwin Project Co-Leader          cygwin AT cygwin DOT com
Red Hat

More information about the Cygwin-apps mailing list