[arch-haskell] Checksum failures when building all packages
Richard Wallace
rwallace at thewallacepack.net
Sun Apr 27 22:18:34 UTC 2014
Aha! I understand now. I was overusing the -c option. Things are going
much more smoothly now. Thanks!
On Sun, Apr 27, 2014 at 2:08 PM, Magnus Therning <magnus at therning.org>wrote:
> On Sun, Apr 27, 2014 at 01:23:18PM -0700, Richard Wallace wrote:
> > Right, sorry for not including more details. So what I'm trying to do is
> > get all the needed packages for adding taffybar built. The first I tried
> > with was HStringTemplate. My last attempt at doing this looking a bit
> like
> >
> > # just getting started, making sure I can build from a clean repo
> > $ git clone git://github.com/archhaskell/habs.git
> > $ cd habs
> > $ cblrepo sync
> > $ cblrepo pkgbuild --ghc-version 7.8.2-1 $(cblrepo build base|tail -n +2)
> > $ ./makeahpkg -c -- $(cblrepo build base | tail -n +2)
> >
> > # that worked, no problem, so now I try adding HStringTemplate
> > $ cblrepo add HStringTemplate,0.7.3
> > $ cblrepo pkgbuild --ghc-version 7.8.2-1 HStringTemplate
> > $ ./makeahpkg -c -- HStringTemplate
> >
> > This ended up giving me a checksum error on the haskell-mtl package.
> >
> > If I instead do the last step with the `./makeahpkg -c -- $(cblrepo build
> > base | tail -n +2)` everything builds without a hitch. At first I
> thought
> > I had to clean out all the previously built packages using `git clean
> -fd`,
> > but that turns out to not be the case. Do I just need to include all the
> > HStringTemplate dependencies when trying to build it?
>
> Now things are a bit clearer to me :)
>
> A few things that might clear things up a bit:
>
> 1. The packages in HABS are available pre-built in the [haskell-core]
> repo[^1].
> 2. The chroot that `makeahpkg` creates is already pointing to
> [haskell-core] and thus will download any missing Haskell packages
> from there.
> 3. `makeahpkg` keeps two chroots, one 'root' and one 'build'. All
> packages are built in 'build'.
> 4. The argument '-c' will sync 'root' and 'build', i.e. any packages
> that have been built and installed in 'build' will effectively be
> removed by using `makeahpkg -c`.
> 5. If `makeahpkg` finds that a package has already been built, it will
> skip building and installing it again.
>
> This means that you never really *need* to build all of HABS. It also
> means that if you are adding several packages but building them one at
> a time you really shouldn't use the '-c' argument, since you then will
> have to first remove any already built packages in the habs/ area, and
> then rebuild all dependencies for the package you really wanted.
>
> I believe, but please correct me if I'm wrong, that the installing of
> the package at the end means the package ends up in the local pacman
> cache. If that's the case then what you see is explained by:
>
> 1. You build all of HABS locally, which means it's all in your local
> pacman cache.
> 2. You clean out the build chroot.
> 3. The package you want to build (HStringTemplate) now depends on
> uninstalled packages.
> 4. Pacman tries the locally cached packages, but finds they don't
> match what comes from [haskell-core] -- checksum error!
>
> The reson that it works the second time is that the cache is cleansed
> of non-matching packages as they are found.
>
> /M
>
> [^1]: http://is.gd/DDV64T
>
> --
> Magnus Therning OpenPGP: 0xAB4DFBA4
> email: magnus at therning.org jabber: magnus at therning.org
> twitter: magthe http://therning.org/magnus
>
> Most software today is very much like an Egyptian pyramid with
> millions of bricks piled on top of each other, with no structural
> integrity, but just done by brute force and thousands of slaves.
> -- Alan Kay
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.haskell.org/pipermail/arch-haskell/attachments/20140427/473fac32/attachment.html>
More information about the arch-haskell
mailing list