From mboxrd@z Thu Jan 1 00:00:00 1970 From: Federico Beffa Subject: Re: updating many haskell packages Date: Fri, 17 Feb 2017 09:00:04 +0100 Message-ID: References: <148639459210.5455.4004512896538726304@what> <148641482905.2874.1459989202091260937@what> <148718709098.32672.6688568200387118544@what> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:38625) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cedSY-0003r0-Kx for guix-devel@gnu.org; Fri, 17 Feb 2017 03:00:07 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1cedSX-0002BU-PV for guix-devel@gnu.org; Fri, 17 Feb 2017 03:00:06 -0500 Received: from mail-ua0-x232.google.com ([2607:f8b0:400c:c08::232]:34698) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1cedSX-0002BL-Km for guix-devel@gnu.org; Fri, 17 Feb 2017 03:00:05 -0500 Received: by mail-ua0-x232.google.com with SMTP id 35so25807558uak.1 for ; Fri, 17 Feb 2017 00:00:05 -0800 (PST) In-Reply-To: <148718709098.32672.6688568200387118544@what> List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org Sender: "Guix-devel" To: Troy Sankey Cc: Guix-devel On Wed, Feb 15, 2017 at 8:31 PM, Troy Sankey wrote: > Quoting Troy Sankey (2017-02-06 16:00:29) >> Quoting Federico Beffa (2017-02-06 15:34:47) >> > I would consider a discrepancy between a cabal file on Hackage and the >> > actual cabal file included in a tar archive a bug. It may be helpful >> > to report it to the author. >> >> I found this issue on the hackage github: >> >> https://github.com/haskell/hackage-server/issues/503 >> >> It looks like it's a feature of hackage and/or cabal to allow multiple >> revisions of cabal files per tarball release. IIUC, the `cabal get` >> utility takes care of automatically updating the cabal file to the >> latest revision. >> >> I'll have to look more into this later. > > Indeed the .cabal files can be revised between releases. Somehow the > new revisions get pushed to the all-cabal-files repository [0] with an > additional "x-revision" key [1], and Hackage picks up the new cabal > file. The `cabal` and `stack` utilities substitute the .cabal file from > the release tarball with the revised .cabal file from Hackage if it is > newer. > > In theory, anything in the .cabal file could be modified, not just > dependency bounds. I think guix should use the updated .cabal files for > better consistency with the rest of the haskell ecosystem, and also for > less per-package maintenance cost. > > How can guix adapt? Should we somehow incorporate the all-cabal-files > repository in the haskell build system, adding a post-unpack phase to > substitute the entire .cabal file? Packages are build in isolated environments without network. Therefore it's not possible to access Hackage with a phase of the build system. Even if it were possible it would be undesirable because it would make things non reproducible. Files not included in the tar can be added as origin inputs to a package definition (see the testsuite for GHC in the ghc package). However, they are verified with hashes. Any change to those files will break the package. Fede