#4884: registerPackage fails with multiple command line --package-conf= flags
-----------------------+----------------------------------------------------
    Reporter:  r6      |       Owner:                             
        Type:  bug     |      Status:  new                        
    Priority:  normal  |   Component:  ghc-pkg                    
     Version:  6.12.3  |    Keywords:                             
    Testcase:          |   Blockedby:                             
          Os:  Linux   |    Blocking:                             
Architecture:  x86     |     Failure:  Incorrect result at runtime
-----------------------+----------------------------------------------------
 in registerPackage the database to operate on is filtered, whereas the
 databases to validate are *truncated*.  The trucation can be seen in the
 code:

    let truncated_stack = dropWhile ((/= to_modify).location) db_stack
    -- truncate the stack for validation, because we don't allow
    -- packages lower in the stack to refer to those higher up.
    validatePackageConfig pkg truncated_stack auto_ghci_libs update  force

 notice the use of dropWhile instead of filter.  The problem is that if I
 want to update a package with a command with multiple --package-conf=
 parameters, then these parameters get ignored during validation and if the
 package being installed depends on the packages in these databases, the
 installation will fail (unless --force is used).  For example if you run
 the command

     ghc-pkg --package-conf=myPkg1 --package-conf=myPkg2 --package-
 conf=myPkg3 --global --user update newPkg.conf

 then the command will fail with the error ""something" doesn't exist (use
 --force to override)" if newPkg.conf depends on something in on of myPkgs.

 In fact, with the above command, the truncated_stack consists of only two
 packages: [the-user-pkg,the-global-pkg].

 I think the fix is to use a filter instead of dropWhile, but maybe there
 is some purpose behind using dropWhile.  In any case a bug does exist
 because the above ghc-pkg command should succeed.

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

_______________________________________________
Glasgow-haskell-bugs mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs

Reply via email to