[GHC] #12196: ghc-pkg should drop trailing path separator when computing package database root

GHC ghc-devs at haskell.org
Thu Jun 16 09:49:23 UTC 2016


#12196: ghc-pkg should drop trailing path separator when computing package database
root
-------------------------------------+-------------------------------------
           Reporter:  bgamari        |             Owner:
               Type:  bug            |            Status:  new
           Priority:  normal         |         Milestone:  8.0.2
          Component:  Package        |           Version:  8.0.1
  system                             |
           Keywords:                 |  Operating System:  Unknown/Multiple
       Architecture:                 |   Type of failure:  None/Unknown
  Unknown/Multiple                   |
          Test Case:                 |        Blocked By:
           Blocking:                 |   Related Tickets:
Differential Rev(s):                 |         Wiki Page:
-------------------------------------+-------------------------------------
 Reported on `ghc-devs@`,


 Nicolas Dudebout <nicolas.dudebout at gmail.com> writes,

 > When passing a package database to ghc-pkg via `GHC_PACKAGE_PATH` or
 `--package-db`, `${pkgroot}` does not get computed properly if the input
 path contains a trailing slash.
 >
 > Default behavior:
 > {{{
 >     $ ghc-pkg describe base | grep pkgroot
 >     pkgroot: "/usr/lib/ghc-7.10.2"
 > }}}
 >
 > Correct behavior (no trailing slash):
 > {{{
 >     $ ghc-pkg --package-db /usr/lib/ghc-7.10.2/package.conf.d describe
 base
 > | grep pkgroot
 >     pkgroot: "/usr/lib/ghc-7.10.2"
 >
 >     $ GHC_PACKAGE_PATH=/usr/lib/ghc-7.10.2/package.conf.d ghc-pkg
 describe
 > base | grep pkgroot
 >     pkgroot: "/usr/lib/ghc-7.10.2"
 > }}}
 >
 > Incorrect behavior (with trailing slash):
 > {{{
 >     $ ghc-pkg --package-db /usr/lib/ghc-7.10.2/package.conf.d/ describe
 > base | grep pkgroot
 >     pkgroot: "/usr/lib/ghc-7.10.2/package.conf.d"
 >
 >     $ GHC_PACKAGE_PATH=/usr/lib/ghc-7.10.2/package.conf.d/ ghc-pkg
 describe
 > base | grep pkgroot
 >     pkgroot: "/usr/lib/ghc-7.10.2/package.conf.d"
 > }}}
 >
 > When this bug happens, `ghc-pkg` check complains about missing files for
 > packages using `${pkgroot}`.
 >
 > This bug happens because `${pkgroot}` is computed using `takeDirectory`.
 It
 > should instead use `(takeDirectory . dropTrailingPathSeparator)`.

--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/12196>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler


More information about the ghc-tickets mailing list