Skip to content

Cannot install pango with new-build when using local copy of gtk2hs-buildtools #5164

@RyanGlScott

Description

@RyanGlScott

I'm experiencing this issue with both:

$ cabal --version
cabal-install version 2.0.0.1
compiled using version 2.0.1.1 of the Cabal library 
$ cabal-head --version
cabal-install version 2.1.0.0
compiled using version 2.1.0.0 of the Cabal library

To trigger the issue:

$ cabal get pango-0.13.4.0
Unpacking to pango-0.13.4.0/
$ cd pango-0.13.4.0/
$ cabal get gtk2hs-buildtools-0.13.3.1
Unpacking to gtk2hs-buildtools-0.13.3.1/
$ cat > cabal.project << EOF
> packages: .
>           ./gtk2hs-buildtools-0.13.3.1
> EOF
$ cabal new-build all
Resolving dependencies...
In order, the following will be built (use -v for more details):
 - gtk2hs-buildtools-0.13.3.1 (lib) (first run)
 - gtk2hs-buildtools-0.13.3.1 (exe:gtk2hsTypeGen) (first run)
 - gtk2hs-buildtools-0.13.3.1 (exe:gtk2hsHookGenerator) (first run)
 - gtk2hs-buildtools-0.13.3.1 (exe:gtk2hsC2hs) (first run)
 - glib-0.13.5.0 (lib:glib) (requires build)
 - cairo-0.13.4.2 (lib:cairo) (requires build)
 - pango-0.13.4.0 (lib:pango) (first run)
Configuring library for gtk2hs-buildtools-0.13.3.1..
Preprocessing library for gtk2hs-buildtools-0.13.3.1..
<build output elided>
[1 of 1] Compiling Main             ( /home/rgscott/Documents/Hacking/Haskell/pango-0.13.4.0/dist-newstyle/build/x86_64-linux/ghc-8.2.2/pango-0.13.4.0/setup/setup.hs, /home/rgscott/Documents/Hacking/Haskell/pango-0.13.4.0/dist-newstyle/build/x86_64-linux/ghc-8.2.2/pango-0.13.4.0/setup/Main.o )

/home/rgscott/Documents/Hacking/Haskell/pango-0.13.4.0/dist-newstyle/build/x86_64-linux/ghc-8.2.2/pango-0.13.4.0/setup/setup.hs:51:18: warning: [-Wdeprecations]
    In the use of ‘autogenModulesDir’
    (imported from Distribution.Simple.BuildPaths):
    Deprecated: "If you can, use 'autogenComponentModulesDir' instead, but if you really wanted package-global generated modules, use 'autogenPackageModulesDir'.  In Cabal 2.0, we avoid using autogenerated files which apply to all components, because the information you often want in these files, e.g., dependency information, is best specified per component, so that reconfiguring a different component (e.g., enabling tests) doesn't force the entire to be rebuilt.  'autogenPackageModulesDir' still provides a place to put files you want to apply to the entire package, but most users of 'autogenModulesDir' should seriously consider 'autogenComponentModulesDir' if you really wanted the module to apply to one component."
   |
51 |     targetDir  = autogenModulesDir lbi
   |                  ^^^^^^^^^^^^^^^^^

/home/rgscott/Documents/Hacking/Haskell/pango-0.13.4.0/dist-newstyle/build/x86_64-linux/ghc-8.2.2/pango-0.13.4.0/setup/setup.hs:55:3: warning: [-Wdeprecations]
    In the use of ‘die’ (imported from Distribution.Simple.Utils):
    Deprecated: "Messages thrown with die can't be controlled with Verbosity; use die' instead, or dieNoVerbosity if Verbosity truly is not available"
   |
55 |   die $ "unexpected pango version number: " ++ display version
   |   ^^^
Linking /home/rgscott/Documents/Hacking/Haskell/pango-0.13.4.0/dist-newstyle/build/x86_64-linux/ghc-8.2.2/pango-0.13.4.0/setup/setup ...
Configuring pango-0.13.4.0...
/u/rgscott/.cabal/share/x86_64-linux-ghc-8.2.2/gtk2hs-buildtools-0.13.3.1/hierarchyGen/Hierarchy.chs.template: openFile: does not exist (No such file or directory)cabal: Failed to build pango-0.13.4.0. The failure occurred during the
configure step.

Note that this bug will not be triggered if you have installed gtk2hs-buildtools-0.13.3.1 previously using cabal install, as that will cause ~/.cabal/share/x86_64-linux-ghc-8.2.2/gtk2hs-buildtools-0.13.3.1/hierarchyGen/Hierarchy.chs.template to have been created.

Moreover, this bug does not occur if gtk2hs-buildtools-0.13.3.1 is not put into cabal.project and is instead downloaded from Hackage.

I suspect the issue may have something to do with this line of code in gtk2hs-buildtools-0.13.3.1:

templateFile <- getDataFileName "hierarchyGen/Hierarchy.chs.template"

Metadata

Metadata

Assignees

No one assigned

    Labels

    cabal-install: v2-build systemAffecting v2-build and related commands that use v2-architecture (aka "nix local builds").type: bug

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions