* Crude diffoscope report generator
@ 2016-02-04 20:27 Leo Famulari
0 siblings, 0 replies; only message in thread
From: Leo Famulari @ 2016-02-04 20:27 UTC (permalink / raw)
To: guix-devel
[-- Attachment #1: Type: text/plain, Size: 584 bytes --]
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.
[-- Attachment #2: checker --]
[-- Type: text/plain, Size: 532 bytes --]
#!/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 "$@"
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2016-02-04 20:27 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-02-04 20:27 Crude diffoscope report generator Leo Famulari
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/guix.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).