Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Please add support for uhc-util 0.1.6.0 #60

Closed
peti opened this issue Aug 8, 2015 · 6 comments
Closed

Please add support for uhc-util 0.1.6.0 #60

peti opened this issue Aug 8, 2015 · 6 comments

Comments

@peti
Copy link

peti commented Aug 8, 2015

After upgrading uhc-util, the uhc build fails in NixOS: http://hydra.cryp.to/build/1054359/log/raw.

@atzedijkstra
Copy link
Member

The current uhc release is still supposed to only work with uhc-util < 0.1.6.0, the new (not yet released, under development) version of uhc limits the uhc-util version range to >=0.1.6.0 && < 0.1.7, I have set this up this way because uhc and uhc-util are somewhat tied up in the uhc-util API assumed by uhc. There is not yet a way to enforce these constraints also at ./configure time, only later when cabal gets its turn this is checked. Compiling against the head of the github repo should be ok therefore, but that is work in progress as it is.

@phile314
Copy link
Member

As far as I can see, the root cause is that NixOS contains only the latest version of most hackage packages, including uhc-util. So NixOS contains only uhc-util 1.6.0.0, but not 1.5.6.0.

I see the following options:

  1. Make NixOS not use the latest released uhc-util version, instead lock it to the
    latest version working with current UHC release.
  2. Make NixOS track UHC Head
  3. Only release uhc-util and UHC together

I think option 2 is a bad idea, not sure which one of the other options is better.

@atzedijkstra
Copy link
Member

I have not yet released a new version of UHC, so option 3 not really does apply. Also, option 3 requires the UHC + uhc-util maintainer to do the job cabal actually is doing (i.e. sorting out which package version combinations can/should be used), an additional manually maintained constraint/invariant I'd rather avoid. The idea currently already is that uhc-util and UHC already are coupled based on version numbers, but constraining the Head of repositories and releases also to be coupled in the same way is a bit awkward to uphold.

Additional options:
4. ./configure could check for compatible versions before building, I did encounter https://hackage.haskell.org/package/cabalvchk-0.3 which might do this, but it is an older package, not actively maintained, means an additional dependency which might break. Cabal itself seems not to have this functionality.
5. let ./configure (or something in between ./configure and make invocations) set up a cabal sandbox (see also issue #47) and install dependencies only

@peti
Copy link
Author

peti commented Aug 17, 2015

As far as option (1) is concerned, we can lock a package version to something older than the latest version from Hackage, but that requires constant manual maintenance which I'm unwilling to invest. If someone else steps up, then this approach would work fine, of course.

(4) would not help fix the build error; it would just detect the build error sooner -- which is good, but it doesn't really help us much.

(5) is not going to work in NixOS, because builds take place in a chroot environment that cannot access the network.

peti added a commit to peti/nixpkgs that referenced this issue Aug 17, 2015
manpages pushed a commit to manpages/nixpkgs-haskell-injection that referenced this issue Aug 18, 2015
@atzedijkstra
Copy link
Member

All in all option 3 seems to be best and workable. I'll stick to it starting with the next release of UHC.

@atzedijkstra
Copy link
Member

As of now with uhc-util-0.1.6.2 and uhc-1.1.9.1 there should be (once more) consistency as promised.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants