Hi, >> What I’m imagining is something roughly like this: >> >> (source >> (origin >> (method url-fetch) >> (uri “https://hackage.haskell.org/package-sources.tar.gz”)) >> (sha256 …)) >> (origin >> (destination “package.cabal”) >> (method url-fetch) >> (uri “https://hackage.haskell.org/package/1.cabal”) >> (sha256 …))) >> >> probably with some way to specify how the sources should be >> combined, by default unpacking over the previous result >> sequentially. Would that be possible? A good idea even? > > This makes sense, but I’m not sure it’s a common enough use case to > warrant a specialized interface. Besides these Cabal revisions, only a > handful of packages (that I’ve seen) need to download extra non-patch > stuff.
One notorious class of packages that could benefit from a general mechanism like this: the TeX Live packages. They consist of various subsets of a big SVN repository. Currently, we pick an arbitrary directory of the SVN repository as the main source and add all the other locations as native inputs. I wanted to add a procedure that accepts multiple locations in the SVN repository, creates a union, and computes the single hash of the union. This would make the texlive-* packages a lot simpler. -- Ricardo
