From mboxrd@z Thu Jan 1 00:00:00 1970 From: ludo@gnu.org (Ludovic =?utf-8?Q?Court=C3=A8s?=) Subject: Re: reproducible builds and debugging information Date: Sat, 28 Mar 2015 18:41:21 +0100 Message-ID: <87ego93tq6.fsf@gnu.org> References: <20150322172632.GB3826@venom> <87zj72xftt.fsf@gnu.org> <20150325003352.GA5247@venom> <87pp7vqwtc.fsf@gnu.org> <20150326215115.GF19723@venom.suse.cz> <87619m9lrt.fsf@gnu.org> <20150327215546.GJ19723@venom.suse.cz> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:60489) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Ybujg-0004Jj-B3 for guix-devel@gnu.org; Sat, 28 Mar 2015 13:41:29 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Ybujc-0006Ge-AP for guix-devel@gnu.org; Sat, 28 Mar 2015 13:41:28 -0400 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:46380) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Ybujc-0006Ga-7i for guix-devel@gnu.org; Sat, 28 Mar 2015 13:41:24 -0400 Received: from reverse-83.fdn.fr ([80.67.176.83]:46631 helo=pluto) by fencepost.gnu.org with esmtpsa (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1Ybujb-0005gQ-Kn for guix-devel@gnu.org; Sat, 28 Mar 2015 13:41:24 -0400 In-Reply-To: <20150327215546.GJ19723@venom.suse.cz> (=?utf-8?B?IlRvbcOh?= =?utf-8?B?xaEgxIxlY2giJ3M=?= message of "Fri, 27 Mar 2015 22:55:46 +0100") 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-bounces+gcggd-guix-devel=m.gmane.org@gnu.org To: guix-devel@gnu.org Tom=C3=A1=C5=A1 =C4=8Cech skribis: > On Fri, Mar 27, 2015 at 10:24:22PM +0100, Ludovic Court=C3=A8s wrote: >>Tom=C3=A1=C5=A1 =C4=8Cech skribis: >> >>> On Thu, Mar 26, 2015 at 10:21:35PM +0100, Ludovic Court=C3=A8s wrote: >> >>[...] >> >>>>> On openSUSE you have available all the subpackage providing stripped >>>>> debug informations and subpackage providing source code from the >>>>> moment of build (so DWARF information in debug part can match the sou= rce). >>>> >>>>You mean there=E2=80=99s a =E2=80=98-debug=E2=80=99 package for every s= ingle package? >>> >>> For every single binary package, yes. You can suppress it too. Why it >>> is so surprising? >> >>It=E2=80=99s just that I didn=E2=80=99t know, and my recollection is that= Debian doesn=E2=80=99t >>have -dbg packages for every package. >> >>> I would like to move the decision whether to keep or to drop debug >>> information outside of the build itself to keep the hash the same. >>> >>> Imagine situation where you added "debug" output to every package and >>> after each build the newly generated store with debug information is >>> deleted (carefully, not to corrupt database, of course). Your hash >>> still will be the same. >> >>I see what you mean, but again, that=E2=80=99s not how it works, and I wo= uld >>argue that it=E2=80=99s not desirable. > > Yes, I know that it works differently now - that was the reason I > initiated this thread. If you considered this option and refused it, > I'm fine with that. Different distributions set different goals. I'd > like to hear the arguments against the general idea sometime but lets > not waste more time on this topic. To be clear: I=E2=80=99m not rejecting the idea of having debugging symbols= for everything. What I=E2=80=99m saying here is that there are deep design cho= ices that make it impossible to just =E2=80=9Cmake a debug package and keep the = hash unchanged.=E2=80=9D A key design idea of Nix and Guix is that the store file name contains a hash of all the inputs of the build process that led to this store item (info "(guix) Introduction"). =E2=80=9CAll the inputs=E2=80=9D really mean= s everything, including build scripts and command-line options. Obviously the processes that keep debugging symbols does different things from the one that discards them, so it has a different hash. This is really at the core of the design and I think it=E2=80=99s a strengt= h. I don=E2=80=99t think this specific use case would justify changing it, esp. = since we can achieve basically the same goal differently. I hope this clarifies the discussion. >>To move forward, a possible action would be to try to have =E2=80=98outpu= ts=E2=80=99 >>default to '("out" "debug") and see (1) how much breaks, and (2) how >>much space. >> >>Would you like to give it a try? > > Good idea, yes. I'll do that. Cool, thank you! Ludo=E2=80=99.