From owner-freebsd-questions@FreeBSD.ORG Sun Nov 15 16:07:31 2009 Return-Path: Delivered-To: freebsd-questions@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 17451106566C for ; Sun, 15 Nov 2009 16:07:31 +0000 (UTC) (envelope-from christopher-ml@telting.org) Received: from smtpauth19.prod.mesa1.secureserver.net (smtpauth19.prod.mesa1.secureserver.net [64.202.165.30]) by mx1.freebsd.org (Postfix) with SMTP id E8C608FC1C for ; Sun, 15 Nov 2009 16:07:30 +0000 (UTC) Received: (qmail 30189 invoked from network); 15 Nov 2009 16:07:30 -0000 Received: from unknown (76.169.198.42) by smtpauth19.prod.mesa1.secureserver.net (64.202.165.30) with ESMTP; 15 Nov 2009 16:07:30 -0000 Message-ID: <4B002741.4000403@telting.org> Date: Sun, 15 Nov 2009 08:07:29 -0800 From: Chris User-Agent: Thunderbird 2.0.0.23 (X11/20091108) MIME-Version: 1.0 To: "b. f." References: In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: freebsd-questions@FreeBSD.org Subject: Re: Produce identical packages for checksum comparison? X-BeenThere: freebsd-questions@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: User questions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 15 Nov 2009 16:07:31 -0000 b. f. wrote: > Chris wrote: > >> I'm also thinking of building a simple checksum database to track what actually changes >> and what my options were when I compiled it. It would allow me to better make >> regression decisions. I could also be free to delete packages and know if I recompile >> it later that it was the exact same package with the exact same options. Very simple >> script to do that. Also if say there was an option when compiling ports to produce files >> with specific time/dates it would be helpful in pinpointing which of my port branches >> a specific file came from. >> > > The elusive "reproducible build". Many people are interested in doing > this, and it's not as easy as it seems. Even if you edited your > filesystem or archives to change the timestamps of package files, the > I think that could be accomplished though the port makefiles. > toolchain used to create the binary files in packages often injects > random seeds, timestamps, file paths, uid/gid information, etc. that > I can understand file paths with debug info. Timestamps? Ok sure for a timestamp file being generated during a make that auto increments version numbers. What would change about uid/gid? I can't imagine why that might be in the binaries. As far as tar a simple utility could capture all the owner and group info into a text file as strings and set files to neutral values for uid/gid. A hack for the fact that packages are using tar files. Why would the build tools be injecting random numbers into binaries? I'll look into it. > creates differences from one build to the next. You may have to hack > several base system utilities, and then directly compare the checksums > of binaries in archives after unpacking, or use a more intelligent > comparison. See, for instance, one Japanese developer's attempt to do > this in NetBSD in order to create better quality control for a > commercial product: > > http://mail-index.netbsd.org/tech-toolchain/2009/02/17/msg000577.html > > Your description of your system's problems sounds bad. I think you > should concentrate on fixing those first. What can I say? I multitask. If I concentrated on one problem at a time I would never get anything done. For my systems problem I think I'm going to have to either abandon jails or maybe try nfs instead of nullfs. Otherwise I'll have to learn the kernel code and how to debug the Freebsd kernel. Thanks for the confirmation that I'm not the only one to think about it and the link. Enjoy the day. Chris