From mboxrd@z Thu Jan 1 00:00:00 1970 From: Leo Famulari Subject: Crude diffoscope report generator Date: Thu, 4 Feb 2016 15:27:03 -0500 Message-ID: <20160204202703.GA7693@jasmine> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="VS++wcV0S1rZb1Fb" Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:48175) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aRQUc-0002Od-C1 for guix-devel@gnu.org; Thu, 04 Feb 2016 15:27:07 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aRQUY-0000TU-Qa for guix-devel@gnu.org; Thu, 04 Feb 2016 15:27:06 -0500 Received: from out4-smtp.messagingengine.com ([66.111.4.28]:51956) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aRQUX-0000TH-T4 for guix-devel@gnu.org; Thu, 04 Feb 2016 15:27:02 -0500 Received: from localhost (c-69-249-5-231.hsd1.pa.comcast.net [69.249.5.231]) by mail.messagingengine.com (Postfix) with ESMTPA id 79CC1C00013 for ; Thu, 4 Feb 2016 15:27:01 -0500 (EST) Content-Disposition: inline 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 --VS++wcV0S1rZb1Fb Content-Type: text/plain; charset=us-ascii Content-Disposition: inline I have been investigating some reproducibility problems using Guix and diffoscope. We have all the tools to make possible but it's not automated yet. I've attached the crude shell script I've been using to build, rebuild, and generate a diffoscope report. Perhaps it will help others and inspire more work in this area :) You use it from within your Guix checkout, and the only argument it accepts is the name of a package. BTW, the rsync options are adapted from --archive, but modified to alter symlinks so that they do not point into the store. I'm sure they could be improved. --VS++wcV0S1rZb1Fb Content-Type: text/plain; charset=us-ascii Content-Disposition: attachment; filename=checker #!/bin/sh set -u set -e main() { if [ $# -lt 1 ]; then printf "Give a package name.\n" exit 1 fi package=$1 shift if [ $# -ne 0 ]; then printf "Unknown parameter %s\n" "$1" exit 1 fi mkdir a mkdir b mypath="$(./pre-inst-env guix build --no-substitutes $package)" \ && rsync -rLptgoD "$mypath" ./a \ && guix gc -d "$mypath" \ && mypath="$(./pre-inst-env guix build --no-substitutes $package)" \ && rsync -rLptgoD "$mypath" ./b \ && guix gc -d "$mypath" \ && diffoscope --html ./report ./a ./b } main "$@" --VS++wcV0S1rZb1Fb--