Comments (7)
@peti: Any idea here?
from nixpkgs.
I'm a bit puzzled here. It looks like the assertion is triggered simply because the name-matching tries to evaluate the meta-information of that file, and the platform check fails. However, similar patterns are used all over the place. How would this assertion-check be different from the assertion check in, say, opera?
Two questions: (1) if you install via -iA, does the error go away? (2) does ghc-6.10.1-binary actually get installed on your system as a part of installing cabal2nix?
from nixpkgs.
It does install with -iA and ghc-6.10.1-binary does not get installed.
In addition an error in 6.10.1-binary.nix being triggered while evaluating ghc.meta.platforms in 6.10.4.nix surprised me:
practice:~ $ nix-env -i cabal2nix --show-trace
error: while evaluating the attribute `ghc.meta.platforms' at
`/Users/<>/code/nixpkgs/pkgs/development/compilers/ghc/6.10.4.nix:26:5':
while evaluating the function at `/Users/<>/code/nixpkgs/pkgs/lib/meta.nix:41:13':
while evaluating the function at `/Users/<>/code/nixpkgs/pkgs/lib/meta.nix:13:28':
while evaluating the function at `/Users/<>/code/nixpkgs/pkgs/lib/customisation.nix:98:35':
while evaluating the function at `/Users/<>/code/nixpkgs/pkgs/lib/customisation.nix:59:24':
while evaluating the builtin function `isAttrs':
while evaluating the function at `/Users/<>/code/nixpkgs/pkgs/development/compilers/ghc/6.10.1-binary.nix:1:1':
assertion failed at `/Users/<>/code/nixpkgs/pkgs/development/compilers/ghc/6.10.1-binary.nix:7:1'
from nixpkgs.
I think I see the problem. If a derivation's name attribute can be evaluated without an assertion failing but any of the meta attributes cause a failed assertion during evaluation, this issue will occur. So the problem isn't directly the assertion in 6.10.1-binary.nix, but the fact that meta.platforms in 6.10.4.nix and 6.12.3.nix is set to ghc.meta.platforms, where ghc is presumably 6.10.1-binary.nix.
I see two solutions we can implement right away: move the common meta information outside of the assertion and the binary and final derivations reference that same place, or build these versions of ghc with a binary that works on all platforms(which is not a good solution IMO)
Additionally, it's possible some change to nix could ameliorate this, but I'd have to investigate exactly where the AssertionError is being thrown and why. @kosmikus are either of the two solutions above palatable?
from nixpkgs.
Ok, traced the problem to https://github.com/NixOS/nix/blob/master/src/nix-env/nix-env.cc#L194 . Basically, due to lack of laziness in GetDrvs.cc all of meta gets evaluated to evaluate meta.priority. So I see three solutions in nix itself: a) Make queryMetaInfo more lazy (already implemented as part of PR 31 on nix), so that only if meta.priority tripped a failed assertion would this issue occur, b) handle the AssertionError in queryMetaInfo (presumably just not adding that attribute to the set), or c) handle the AssertionError in getPriority (presumably acting as if the meta attribute weren't set). @edolstra: Thoughts?
from nixpkgs.
@edolstra, do you have an idea how to remedy this issue?
from nixpkgs.
Can this issue be closed for obsolescence? cabal2nix does now build on OS X, albeit not with GHC 6.10, which isn't supported anymore.
from nixpkgs.
Related Issues (20)
- Unable to build profile. There is a conflict [cinnamon, 24.05] HOT 1
- pipewire has a huge build-time closure HOT 3
- Build failure: k3d
- imhex: Pattern files not found if used from nix-shell
- odamex: missing desktop files HOT 1
- Build failure: couchdb3 HOT 1
- Stuck at boot on "Network time syncronization"
- Package request: keyviz HOT 1
- Build failure: pkgsLLVM.perl538Packages.XMLSAX
- Build failure: selenium-wire
- Duplicate Package: neocities & neocities-cli
- Missing `xdotool` dependency in `smile` package
- homeassistant: aiohttp_fast_zlib: zlib_ng not available, performance degraded HOT 1
- Boot failure after update
- Build failure: dooit HOT 4
- switcheroo: Error While Processing: "cannot generate command"
- Update request: memray 1.11.0 → 1.13.4 HOT 1
- Package request: PyGlossary A tool for converting dictionary files aka glossaries. HOT 1
- Package request: bpytop HOT 1
- cannot pass in spaces with --add-flags with makeBinaryWrapper HOT 7
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from nixpkgs.