
Hi, I've seen the following strange build errors a few times now, but I am at a loss how to explain it. Can someone help me? I run a clean build using Remy's toolchain as follows: scripts/setup-chroots && manycabal2arch PKGLIST ~/.cabal/packages/hackage.haskell.org/00-index.tar habs && sudo ./makeworld The build fine for the most part, until ... | ==> Making package: haskell-haxml 1.20.2-1 (Sun Oct 24 12:24:41 UTC 2010) | ==> Checking Runtime Dependencies... | ==> Installing missing dependencies... | resolving dependencies... | looking for inter-conflicts... | | Targets (1): haskell-polyparse-1.4-1 | | Total Download Size: 0.00 MB | Total Installed Size: 2.34 MB | | Proceed with installation? [Y/n] | checking package integrity... | :: File haskell-polyparse-1.4-1-i686.pkg.tar.xz is corrupted. Do you want to delete it? [Y/n] | error: failed to commit transaction (invalid or corrupted package) | haskell-polyparse-1.4-1-i686.pkg.tar.xz is invalid or corrupted | Errors occurred, no packages were upgraded. | ==> ERROR: 'pacman' failed to install missing dependencies. | Build failed, check /home/simons/src/archhaskell-build/chroot-i686/copy/build | Begin building haskell-non-negative... | :: Synchronizing package databases... | core is up to date | extra is up to date | community is up to date | repo is up to date | :: Starting full system upgrade... | there is nothing to do The thing is, though, that haskell-polyparse *is* available. It was build before haskell-haxml, and the build log shows no errors: | Begin building haskell-polyparse... | :: Synchronizing package databases... | core is up to date | extra is up to date | community is up to date | repo 1.4K 4.7M/s 00:00:00 | :: Starting full system upgrade... | there is nothing to do | ==> Making package: haskell-polyparse 1.4-1 (Sun Oct 24 12:15:30 UTC 2010) | ==> Checking Runtime Dependencies... | ==> Checking Buildtime Dependencies... | ==> Retrieving Sources... | -> Found polyparse-1.4.tar.gz | ==> Validating source files with md5sums... | polyparse-1.4.tar.gz ... Passed | ==> Extracting Sources... | -> Extracting polyparse-1.4.tar.gz with bsdtar | ==> Starting build()... | Configuring polyparse-1.4... | Preprocessing library polyparse-1.4... | Building polyparse-1.4... | [ 1 of 11] Compiling Text.ParserCombinators.HuttonMeijerWallace ( src/Text/ParserCombinators/HuttonMeijerWallace.hs, dist/build/Text/ParserCombinators/HuttonMeijerWallace.o ) | [ 2 of 11] Compiling Text.ParserCombinators.HuttonMeijer ( src/Text/ParserCombinators/HuttonMeijer.hs, dist/build/Text/ParserCombinators/HuttonMeijer.o ) | [ 3 of 11] Compiling Text.ParserCombinators.Poly.Base ( src/Text/ParserCombinators/Poly/Base.hs, dist/build/Text/ParserCombinators/Poly/Base.o ) | [ 4 of 11] Compiling Text.ParserCombinators.Poly.Plain ( src/Text/ParserCombinators/Poly/Plain.hs, dist/build/Text/ParserCombinators/Poly/Plain.o ) | [ 5 of 11] Compiling Text.ParserCombinators.Poly.Lazy ( src/Text/ParserCombinators/Poly/Lazy.hs, dist/build/Text/ParserCombinators/Poly/Lazy.o ) | [ 6 of 11] Compiling Text.ParserCombinators.Poly.State ( src/Text/ParserCombinators/Poly/State.hs, dist/build/Text/ParserCombinators/Poly/State.o ) | [ 7 of 11] Compiling Text.ParserCombinators.Poly.StateLazy ( src/Text/ParserCombinators/Poly/StateLazy.hs, dist/build/Text/ParserCombinators/Poly/StateLazy.o ) | [ 8 of 11] Compiling Text.ParserCombinators.Poly ( src/Text/ParserCombinators/Poly.hs, dist/build/Text/ParserCombinators/Poly.o ) | [ 9 of 11] Compiling Text.Parse ( src/Text/Parse.hs, dist/build/Text/Parse.o ) | [10 of 11] Compiling Text.ParserCombinators.Poly.ByteString ( src/Text/ParserCombinators/Poly/ByteString.hs, dist/build/Text/ParserCombinators/Poly/ByteString.o ) | [11 of 11] Compiling Text.Parse.ByteString ( src/Text/Parse/ByteString.hs, dist/build/Text/Parse/ByteString.o ) | Registering polyparse-1.4... | Running Haddock for polyparse-1.4... | Preprocessing library polyparse-1.4... | Warning: The documentation for the following packages are not installed. No | links will be generated to these packages: ffi-1.0, rts-1.0 | Warning: Text.ParserCombinators.HuttonMeijerWallace: could not find link destinations for: | Text.ParserCombinators.HuttonMeijerWallace.ParseResult | Warning: Text.ParserCombinators.HuttonMeijer: could not find link destinations for: | Text.ParserCombinators.HuttonMeijer.Token | Documentation created: dist/doc/html/polyparse/index.html | Creating package registration script: register.sh | Unregistering polyparse-1.4... | ==> Entering fakeroot environment... | ==> Starting package()... | Installing library in /build/pkg/usr/lib/polyparse-1.4/ghc-6.12.3 | ==> Tidying install... | -> Purging other files... | -> Compressing man and info pages... | -> Stripping unneeded symbols from binaries and libraries... | ==> Creating package... | -> Generating .PKGINFO file... | -> Adding install script... | -> Compressing package... | ==> Leaving fakeroot environment. | ==> Finished making: haskell-polyparse 1.4-1 (Sun Oct 24 12:17:33 UTC 2010) | ==> Extracting database to a temporary location... | ==> Adding package 'haskell-polyparse-1.4-1-i686.pkg.tar.xz' | -> Creating 'desc' db entry... | -> Computing md5 checksums... | -> Creating 'depends' db entry... | ==> Creating updated database file 'repo.db.tar.gz' | Begin building haskell-safe... | :: Synchronizing package databases... | core is up to date | extra is up to date | community is up to date | repo 1.6K 4.7M/s 00:00:00 | :: Starting full system upgrade... | there is nothing to do Now, the error is gone when I run "makeworld" *again*. It appears that this problem occurs every time I perform a clean build from scratch. An incremental build, i.e. one that's run with a previously existing sandbox, however, seems to work. Does anyone know to explain that? Could there be a race condition somewhere? Take care, Peter

Hi, I figured out why I got these build errors every now and then: | ==> Making package: haskell-haxml 1.20.2-1 (Sun Oct 24 12:24:41 UTC 2010) | ==> Checking Runtime Dependencies... | ==> Installing missing dependencies... | resolving dependencies... | looking for inter-conflicts... | | Targets (1): haskell-polyparse-1.4-1 | | Total Download Size: 0.00 MB | Total Installed Size: 2.34 MB | | Proceed with installation? [Y/n] | checking package integrity... | :: File haskell-polyparse-1.4-1-i686.pkg.tar.xz is corrupted. Do you want to delete it? [Y/n] | error: failed to commit transaction (invalid or corrupted package) | haskell-polyparse-1.4-1-i686.pkg.tar.xz is invalid or corrupted | Errors occurred, no packages were upgraded. | ==> ERROR: 'pacman' failed to install missing dependencies. | Build failed, check /home/simons/src/archhaskell-build/chroot-i686/copy/build | Begin building haskell-non-negative... | :: Synchronizing package databases... | core is up to date | extra is up to date | community is up to date | repo is up to date | :: Starting full system upgrade... | there is nothing to do What happened is that I built the binary package, and installed it. At that point, haskell-polyparse-1.4-1-i686.pkg.tar.xz had been cached in /var/cache/pacman/pkg. Later, I built the package again (because I was testing the build system), and this lead to two different versions of the same archive being available to Pacman, hence the inconsistency. Wiping /var/cache/pacman/pkg fixed the problem for good. Take care, Peter
participants (1)
-
Peter Simons