Ticket #97 (closed defect: fixed)

Opened 7 years ago

Last modified 6 years ago

Should not create empty directories in setup install/copy

Reported by: duncan Owned by: ijones
Priority: low Milestone: Cabal-1.2
Component: Cabal library Version: 1.1.6
Severity: normal Keywords:
Cc: Gregory Wright <gwright@…> Difficulty: normal
GHC Version: 6.4.2 Platform: Mac OS

Description

When installing a library, in this case MissingH 0.16, I get the error:

ghc-pkg: /opt/local/lib/MissingH-0.16.0/ghc-6.6/include doesn't exist or isn't a directory (use --force to override)
Error: Target com.apple.activate returned: shell command "/opt/local/libexec/missingh/register.sh" returned error 1
Command output: Reading package info from stdin ... done.
ghc-pkg: /opt/local/lib/MissingH-0.16.0/ghc-6.6/include doesn't exist or isn't a directory (use --force to override)

Warning: the following items did not execute (for missingh):  
com.apple.activate
Error: Status 1 encountered during processing.

(the above is the output of the MacPorts? portfile.)

The problem is that when the build is staged into a temporary location so the files can be inventoried, an empty directory, <prefix>/lib/MissingH-0.16.0/ghc-6.6/include is created. MacPorts? deletes this empty directory (along with a number of other unused directories it creates in the staging process). The registration process requires the empty directory to be present and fails, as shown above, if it is not.

Change History

Changed 6 years ago by ross@…

  • priority changed from normal to low

It is untidy of Cabal to create an unnecessary directory, but it is clearly a bug for MacPorts? to remove a directory it did not create.

Changed 6 years ago by duncan

  • status changed from new to closed
  • resolution set to fixed

The include dir will now only be made and noted in the package registration info if we actually install some include files.

Note: See TracTickets for help on using tickets.