Source: fastx-toolkit Version: 0.0.14-1 Severity: wishlist Tags: patch User: reproducible-bui...@lists.alioth.debian.org Usertags: buildpath X-Debbugs-Cc: reproducible-bui...@lists.alioth.debian.org
Hi, Whilst working on the Reproducible Builds effort [0], we noticed that fastx-toolkit could not be built reproducibly. Patch attached. I ended up patching upstream sources instead of fixing/extending the regexes in debian/rules; the result is subjectively far cleaner and objectively less brittle. [0] https://reproducible-builds.org/ Regards, -- ,''`. : :' : Chris Lamb `. `'` la...@debian.org / chris-lamb.co.uk `-
--- a/debian/patches/reproducible_build.patch 1970-01-01 01:00:00.000000000 +0100 --- b/debian/patches/reproducible_build.patch 2016-10-08 20:23:06.570045323 +0100 @@ -0,0 +1,61 @@ +Description: Make the build reproducible +Author: Chris Lamb <la...@debian.org> +Last-Update: 2016-10-08 + +--- fastx-toolkit-0.0.14.orig/scripts/fasta_clipping_histogram.pl ++++ fastx-toolkit-0.0.14/scripts/fasta_clipping_histogram.pl +@@ -21,13 +21,16 @@ use warnings; + use GD::Graph::bars; + use Data::Dumper; + use PerlIO::gzip; ++use File::Basename; + + if (scalar @ARGV==0) { ++ my $name = basename($0); ++ + print<<END; + + Create a Linker Clipping Information Histogram + +-usage: $0 INPUT_FILE.FA OUTPUT_FILE.PNG ++usage: $name INPUT_FILE.FA OUTPUT_FILE.PNG + + INPUT_FILE.FA = input file (in FASTA format, can be GZIPped) + OUTPUT_FILE.PNG = histogram image +--- fastx-toolkit-0.0.14.orig/scripts/fastx_barcode_splitter.pl ++++ fastx-toolkit-0.0.14/scripts/fastx_barcode_splitter.pl +@@ -22,6 +22,7 @@ use IO::Handle; + use Data::Dumper; + use Getopt::Long; + use Carp; ++use File::Basename; + + ## + ## This program splits a FASTQ/FASTA file into several smaller files, +@@ -349,6 +350,8 @@ sub open_and_detect_input_format + + sub usage() + { ++ my $name = basename($0); ++ + print<<EOF; + Barcode Splitter, by Assaf Gordon (gordon\@cshl.edu), 11sep2008 + +@@ -358,7 +361,7 @@ FASTA/FASTQ data is read from STDIN (for + Output files will be writen to disk. + Summary will be printed to STDOUT. + +-usage: $0 --bcfile FILE --prefix PREFIX [--suffix SUFFIX] [--bol|--eol] ++usage: $name --bcfile FILE --prefix PREFIX [--suffix SUFFIX] [--bol|--eol] + [--mismatches N] [--exact] [--partial N] [--help] [--quiet] [--debug] + + Arguments: +@@ -388,7 +391,7 @@ Arguments: + Example (Assuming 's_2_100.txt' is a FASTQ file, 'mybarcodes.txt' is + the barcodes file): + +- \$ cat s_2_100.txt | $0 --bcfile mybarcodes.txt --bol --mismatches 2 \\ ++ \$ cat s_2_100.txt | $name --bcfile mybarcodes.txt --bol --mismatches 2 \\ + --prefix /tmp/bla_ --suffix ".txt" + + Barcode file format --- a/debian/patches/series 1970-01-01 01:00:00.000000000 +0100 --- b/debian/patches/series 2016-10-08 20:23:02.930001236 +0100 @@ -0,0 +1 @@ +reproducible_build.patch --- a/debian/rules 2016-10-08 19:50:11.450507911 +0100 --- b/debian/rules 2016-10-08 20:20:45.800340710 +0100 @@ -86,20 +86,6 @@ help2man --no-info --no-discard-stderr --version-string='$(ver)' --help-option='-h' \ --name='FASTA/Q Uncollapser' \ $(bindir)/fastx_uncollapser > $(mandir)/fastx_uncollapser.1 - - # Perl scripts add the full path to usage advise which needs to be removed - # The script fasta_clipping_histogram.pl does not feature a '-h' option - help2man --no-info --no-discard-stderr --version-string='$(ver)' -h '' \ - --name='Create a Linker Clipping Information Histogram' \ - $(bindir)/fasta_clipping_histogram.pl | \ - sed -e 's?^usage: .*\([^/]\+\.pl\)?usage: \1?' \ - > $(mandir)/fasta_clipping_histogram.pl.1 - help2man --no-info --no-discard-stderr --version-string='$(ver)' --help-option='-h' \ - --name='FASTX Barcode Splitter' \ - $(bindir)/fastx_barcode_splitter.pl | \ - sed -e 's?^usage: .*\([^/]\+\.pl\)?usage: \1?' \ - > $(mandir)/fastx_barcode_splitter.pl.1 - help2man --no-info --no-discard-stderr --version-string='$(ver)' --help-option='-h' \ --name='Solexa-Quality BoxPlot plotter' \ $(bindir)/fastq_quality_boxplot_graph.sh > $(mandir)/fastq_quality_boxplot_graph.sh.1