[arch-haskell] Missing "dyn" libraries for possibly many packages

Magnus Therning magnus at therning.org
Sat Oct 12 07:37:56 UTC 2013


On 08/01/11 22:37, gdweber at iue.edu wrote:
> Now that bauerbill is building again, I'm starting to get errors
> about missing "dyn" libraries for a number of packages:
>
> [haskell-sdl-gfx]:
>
>     Graphics/UI/SDL/Rotozoomer.hs:19:7:
>         Could not find module `Graphics.UI.SDL.Types':
>           Perhaps you haven't installed the "dyn" libraries for package
>           `SDL-0.6.2'?
>           Use -v to see a list of the files searched for.
>         Aborting...
>     ERROR: makepkg exited with an error (512)
>
> (Having previously failed to build this because of a missing
> external library, SDL_gfx, my first thought was: What -- another
> missing library, SDL_dyn?  What's that?) :-)
>
> [haskell-zip-archive]:
>
>     Codec/Archive/Zip.hs:69:17:
>         Could not find module `Data.Digest.CRC32':
>           Perhaps you haven't installed the "dyn" libraries for package
>           `digest-0.0.0.8'?
>           Use -v to see a list of the files searched for.
>         Aborting...
>
> Searching around, I've found a couple of other instances of this:
>
> -   Comments on haskell-missingh:
>     http://aur.archlinux.org/packages.php?ID=17845
> -   Comments on haskell-digest:
>     http://aur.archlinux.org/packages.php?ID=23078
>
> Although these comments are automatically posted on the arch-haskell
> mailing list, it's easy to overlook them because their subjects
> refer to specific packages -- since I'm not interested in missingh
> or digest, I deleted them without reading, and probably many others
> did too.
>
> So, to consolidate the information here, I'll repost peti's advice
> on the haskell-digest package:
>
> Comment by: peti on Sun, 26 Dec 2010 15:19:40 +0000
>
>     Hi Frabjous, apparently, you are using the "haskell-bytestring"
>     package from AUR. That package is kind of obsolete, because it
>     became a part of GHC in version 6.12.3 or so. You probably
>     installed it a while ago, before 6.12.3 was available? Anyway,
>     this is no big deal, and the problem with the missing shared
>     libraries that caused your build failure has been fixed. Still, I
>     would recommend that you clean up your Haskell installation to
>     make sure that everything conforms to the current state of the
>     art. The best way to accomlish that is to run the commands "pacman
>     -R --cascade ghc", then "rm -rf /usr/lib/ghc-*", and then to
>     re-install everything that you actually need from scratch. It's
>     optional to do that, of course. In any case, thanks for the bug
>     report. I'm glad the problem is now fixed.
>
> I do wonder, though, about a few things.
> 1.  Why the dyn libraries are now needed.
>     Is it because of a new version of GHC which does this by default?
>     Or a change in the way Arch Haskell defines packages?

The PKGBUILDs generated by cabal2arch where changed to create dyn libraries.
This had the unfortunate effect of requiring a lot of re-compilation.  AFAIK
the same has been done for the packages in [extra]/[community].

> 2.  Does it still build static libraries as well?

Indeed it does, and executables are actually only linked against the
static so
the use of makedepends for those packages is still correct.  It is of course
easy to check this for yourself:

  % pacman -Ql haskell-archlinux|grep '\.a$'
  haskell-archlinux
/usr/lib/archlinux-0.3.5/ghc-6.12.3/libHSarchlinux-0.3.5.a

> 3.  If I build an executable program, without any special flags,
>     is it going to use the dynamic or static libraries?

It links against the static libs, as mentioned above.  Again, you can check
this easily yourself:

   % ldd /usr/bin/cabal2arch
	linux-vdso.so.1 =>  (0x00007fff86d77000)
	librt.so.1 => /lib/librt.so.1 (0x00007f8f24fa0000)
	libutil.so.1 => /lib/libutil.so.1 (0x00007f8f24d9d000)
	libdl.so.2 => /lib/libdl.so.2 (0x00007f8f24b99000)
	libgmp.so.10 => /usr/lib/libgmp.so.10 (0x00007f8f2492c000)
	libm.so.6 => /lib/libm.so.6 (0x00007f8f246aa000)
	libc.so.6 => /lib/libc.so.6 (0x00007f8f2434e000)
	libpthread.so.0 => /lib/libpthread.so.0 (0x00007f8f24131000)
	/lib/ld-linux-x86-64.so.2 (0x00007f8f251a8000)

> 4.  Is it possible for users to control whether dynamic or static
>     libraries are built, or both, using tools such as bauerbill?

I don't think so, but Peter knows more about the details on the dyn libs and
when they are used.  He reported all about it to this list, check the
archive
please.

/M

-- 
Magnus Therning                      OpenPGP: 0xAB4DFBA4
email: magnus at therning.org   jabber: magnus at therning.org
twitter: magthe               http://therning.org/magnus

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 262 bytes
Desc: OpenPGP digital signature
URL: <http://www.haskell.org/pipermail/arch-haskell/attachments/20131012/2fea57df/attachment.sig>


More information about the arch-haskell mailing list