From mboxrd@z Thu Jan 1 00:00:00 1970 From: Robert Vollmert Subject: Re: git-fetch origin output is read-only - and reproducibility Date: Tue, 30 Jul 2019 09:37:14 +0200 Message-ID: References: <20190729165743.04e6a516@scratchpost.org> <87k1c07sdf.fsf@elephly.net> <87ftmo7reo.fsf@elephly.net> Mime-Version: 1.0 (Mac OS X Mail 12.4 \(3445.104.11\)) Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Return-path: Received: from eggs.gnu.org ([2001:470:142:3::10]:43066) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hsMhQ-0003dK-Ag for guix-devel@gnu.org; Tue, 30 Jul 2019 03:37:33 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hsMhP-00044o-73 for guix-devel@gnu.org; Tue, 30 Jul 2019 03:37:32 -0400 Received: from mx1.mailbox.org ([2001:67c:2050:104:0:1:25:1]:53896) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1hsMhP-00043P-0R for guix-devel@gnu.org; Tue, 30 Jul 2019 03:37:31 -0400 In-Reply-To: <87ftmo7reo.fsf@elephly.net> 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: Ricardo Wurmus Cc: guix-devel@gnu.org Hi, On 29. Jul 2019, at 18:10, Ricardo Wurmus wrote: > Most build systems inherit from the gnu-build-system, so they=E2=80=99ll= get to > reuse the =E2=80=9Cunpack=E2=80=9D phase, which conveniently checks if = the source is a > tarball. In the case of Java archives it doesn=E2=80=99t do the right = thing, > because it doesn=E2=80=99t know about Jars, so the ant-build-system = overrides > that phase, etc. >=20 > Dealing with sources sometimes requires special knowledge and the = build > system might be best equipped to employ that knowledge. >=20 > What would you suggest the fetchers implement to guarantee that the > sources will always be of some expected form? I would suggest that they specify the archive type, and either - repack the archive to a standard format, e.g. .tar.gz (this should = then also apply to sources that are local directory trees) - unpack the archive to a directory tree An alternative change that would make the whole setup a bit less = confusing would be to factor all the =E2=80=9Cstandard=E2=80=9D build system stuff = out of gnu-build-system and into a base-build-system that provides source unpacking and phase = handling and nothing else. I originally ran into this surprise by basing things on = trivial-build-system, getting things to work with a local directory, then seeing that my = apparently functioning build system failed once I referred to a git checkout = because that packs to a tarball. Robert