[GHC] #12194: ghc-pkg, package database path containing a trailing slash, and ${pkgroot}

GHC ghc-devs at haskell.org
Thu Jun 16 01:01:21 UTC 2016


#12194: ghc-pkg, package database path containing a trailing slash, and ${pkgroot}
-------------------------------------+-------------------------------------
           Reporter:  dudebout       |             Owner:
               Type:  bug            |            Status:  new
           Priority:  normal         |         Milestone:
          Component:  ghc-pkg        |           Version:  8.0.1
           Keywords:  pkgroot        |  Operating System:  Unknown/Multiple
       Architecture:                 |   Type of failure:  Incorrect result
  Unknown/Multiple                   |  at runtime
          Test Case:                 |        Blocked By:
           Blocking:                 |   Related Tickets:
Differential Rev(s):                 |         Wiki Page:
-------------------------------------+-------------------------------------
 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/12194>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler


More information about the ghc-tickets mailing list