Bug 746325

Summary: No way to get backtraces without installing the whole development files
Product: [Fedora] Fedora Reporter: Kevin Kofler <kevin>
Component: ghc-rpm-macrosAssignee: Jens Petersen <petersen>
Status: CLOSED NOTABUG QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: unspecified    
Version: 15CC: bos, fedora, haskell-devel, petersen
Target Milestone: ---Keywords: Regression
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2011-10-24 02:09:05 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:

Description Kevin Kofler 2011-10-14 19:01:16 UTC
Description of problem:
Since GHC does not generate DWARF debugging information, the only way to get backtraces for Haskell programs is to use the profiling cost centers (through the
-xc option), which were in the -prof subpackages. Now, those -prof subpackages were merged into the -devel subpackages, which means we now have to install the whole -devel files to get backtraces.

Version-Release number of selected component (if applicable):
ghc-7.0.2-16.5.fc15

How reproducible:
Always.

Steps to Reproduce:
Try to get a backtrace for a Haskell program using the -xc option:
http://www.haskell.org/haskellwiki/FAQ#How_can_I_get_a_stack_backtrace_when_my_program_throws_an_exception.3F
http://www.haskell.org/ghc/docs/latest/html/users_guide/runtime-control.html#rts-options-debugging
  
Actual results:
You have to install the -devel package.

Expected results:
You have to install only a -prof package.

Additional info:
This is just as broken as if *-debuginfo were part of *-devel for C/C++ programs.

Comment 1 Kevin Kofler 2011-10-14 19:02:07 UTC
For Fedora 15, this is a regression in an update, introduced by FEDORA-2011-13443.

But Fedora 16 and Rawhide are affected, too.

Comment 2 Ben Boeckel 2011-10-14 21:55:42 UTC
ghc-rpm-macros changed a while ago. The commit is here[1], but things could change back again I suppose. Other packaging changes happened as well since then. There's also a ghc bug[2] for generating DWARF debugging, but it's targeted at 7.4.1 which is almost certainly "not soon".

[1]http://pkgs.fedoraproject.org/gitweb/?p=ghc-rpm-macros.git;a=commit;h=1bc67af711426c41245fc27a735aca5be2244617
[2]http://hackage.haskell.org/trac/ghc/ticket/3693

Comment 3 Jens Petersen 2011-10-15 10:02:05 UTC
Prof packages have always required devel packages:
there is no dependency regression wrt to profiling with this change.

Note also that profiling is different to debugging.
GHC profiling can give you information about time and space
usage of a program (built with profiling), which is normally
related to performance analysis not debugging.
Note also that programs have to be rebuilt explicitly
completely with profiling enabled in order
to get profiling information, so this is not that cheap.

The main difference now is that we get profiling
libraries installed with devel packages.  This change
was introduced to F16 in May 2011 to reduce the large number
of subpackages and simply build dependencies and packaging,
so I see this as a step forward.  But if you have more
concrete concerns I would like to hear them.  You may also
want to subscribe to the haskell-devel list if you wish
to follow Fedora Haskell development more closely.
In future I will try to cc announcements of large
Haskell packaging changes also to devel list.
Noone on the haskell-devel list has complained to
date anyway yet about this change.

The ghc-rpm-macros change has already been in F15
for quite a while and all new updates built for F15
don't have prof subpackages either (the same is also
true for F14).  Since F16 has been without prof subpackages
now for 5 months and it seems stable and working well
I thought it was about time also to push ghc with merged
prof subpackages to F15.

I hope this explains the background a bit.

Comment 4 Jens Petersen 2011-10-15 10:12:51 UTC
From https://admin.fedoraproject.org/updates/FEDORA-2011-13443

  kkofler - 2011-10-15 04:45:42 (karma 0)
             [..] The -xc option, which provides backtraces for
             exceptions, requires binaries built for profiling,
             i.e. exactly what the -prof subpackages contain.

             kkofler - 2011-10-15 04:46:12 (karma 0)
             (Now if -prof always required -devel, that was always
             broken.)

Ok, I see I am not familiar with this use case.

But I assume you are building with -package or --make
for this which requires libraries' .conf files which are provided
by the devel subpackages: I think what you want is
an upstream RFE to support dyn, static and prof
libraries separately.  /usr/bin/ghc and ghc-pkg
doesn't really known about the different flavours
of libraries, as far as they are concerned
a library is either installed or not.
I believe there is an upstream bug/rfe/todo
to separate them out but not sure if anyone is
working on this presently.

I don't think ghc does what you want yet though
I am happy to be proven wrong.