From 7ff639510096ff762b9cced5fba6db254a961af9 Mon Sep 17 00:00:00 2001 From: Roel Janssen Date: Mon, 23 Mar 2020 11:42:36 +0100 Subject: gnu: Add circos. * gnu/local.mk: Register circos-remove-findbin.patch. * gnu/packages/patches/circos-remove-findbin.patch: New file. * gnu/packages/perl.scm: New variable. --- gnu/local.mk | 1 + gnu/packages/patches/circos-remove-findbin.patch | 544 +++++++++++++++++++++++ gnu/packages/perl.scm | 96 ++++ 3 files changed, 641 insertions(+) create mode 100644 gnu/packages/patches/circos-remove-findbin.patch (limited to 'gnu') diff --git a/gnu/local.mk b/gnu/local.mk index a080745220..7cce60b7c0 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -777,6 +777,7 @@ dist_patch_DATA = \ %D%/packages/patches/calibre-remove-test-unrar.patch \ %D%/packages/patches/casync-renameat2-declaration.patch \ %D%/packages/patches/catdoc-CVE-2017-11110.patch \ + %D%/packages/patches/circos-remove-findbin.patch \ %D%/packages/patches/cdparanoia-fpic.patch \ %D%/packages/patches/cdrtools-3.01-mkisofs-isoinfo.patch \ %D%/packages/patches/ceph-disable-cpu-optimizations.patch \ diff --git a/gnu/packages/patches/circos-remove-findbin.patch b/gnu/packages/patches/circos-remove-findbin.patch new file mode 100644 index 0000000000..5675172e5d --- /dev/null +++ b/gnu/packages/patches/circos-remove-findbin.patch @@ -0,0 +1,544 @@ +This patch was created by Roel Janssen . + +Circos uses paths relative to the "circos" script to find its Perl modules. +This patch removes that mechanism, and instead expects the 'Circos' modules +to be available in the global Perl path. + +diff -crB circos-0.69-6/bin/circos circos-0.69-6-new/bin/circos +*** circos-0.69-6/bin/circos 2016-02-19 01:42:59.000000000 +0100 +--- circos-0.69-6-new/bin/circos 2018-01-12 09:59:25.662731269 +0100 +*************** +*** 474,486 **** + + use strict; + use warnings; +- use FindBin; + use Getopt::Long qw(:config pass_through posix_default auto_abbrev); + use Pod::Usage; + +- use lib "$FindBin::RealBin"; +- use lib "$FindBin::RealBin/../lib"; +- use lib "$FindBin::RealBin/lib"; + use Circos; + + use Cwd; +--- 474,482 ---- +diff -crB circos-0.69-6/lib/Circos/Colors.pm circos-0.69-6-new/lib/Circos/Colors.pm +*** circos-0.69-6/lib/Circos/Colors.pm 2015-03-17 01:25:43.000000000 +0100 +--- circos-0.69-6-new/lib/Circos/Colors.pm 2018-01-12 10:10:39.174797379 +0100 +*************** +*** 49,55 **** + + use Carp qw( carp confess croak ); + use Digest::MD5 qw(md5_hex); +- use FindBin; + use File::Basename; + use File::Spec::Functions; + use File::Temp qw(tempdir); +--- 49,54 ---- +*************** +*** 65,74 **** + #use Time::HiRes qw(gettimeofday tv_interval); + #use List::Util qw( max min ); + +- use lib "$FindBin::RealBin"; +- use lib "$FindBin::RealBin/../lib"; +- use lib "$FindBin::RealBin/lib"; +- + use POSIX qw(pow); + + use Circos::Configuration; +--- 64,69 ---- +diff -crB circos-0.69-6/lib/Circos/Configuration.pm circos-0.69-6-new/lib/Circos/Configuration.pm +*** circos-0.69-6/lib/Circos/Configuration.pm 2015-03-17 22:11:01.000000000 +0100 +--- circos-0.69-6-new/lib/Circos/Configuration.pm 2018-01-12 10:11:41.064008273 +0100 +*************** +*** 59,68 **** + use Params::Validate qw(:all); + use List::MoreUtils qw(uniq); + +- use lib "$FindBin::RealBin"; +- use lib "$FindBin::RealBin/../lib"; +- use lib "$FindBin::RealBin/lib"; +- + use Circos::Constants; + use Circos::Debug; + use Circos::Utils; +--- 59,64 ---- +diff -crB circos-0.69-6/lib/Circos/DataPoint.pm circos-0.69-6-new/lib/Circos/DataPoint.pm +*** circos-0.69-6/lib/Circos/DataPoint.pm 2014-05-12 18:20:19.000000000 +0200 +--- circos-0.69-6-new/lib/Circos/DataPoint.pm 2018-01-12 10:11:54.888270731 +0100 +*************** +*** 38,51 **** + + use Carp qw( carp confess croak ); + use Data::Dumper; +- use FindBin; + use GD::Image; + use Params::Validate qw(:all); + +- use lib "$FindBin::RealBin"; +- use lib "$FindBin::RealBin/../lib"; +- use lib "$FindBin::RealBin/lib"; +- + use Circos::Configuration; # qw(%CONF $DIMS); + use Circos::Constants; + use Circos::Debug; +--- 38,46 ---- +diff -crB circos-0.69-6/lib/Circos/Debug.pm circos-0.69-6-new/lib/Circos/Debug.pm +*** circos-0.69-6/lib/Circos/Debug.pm 2015-03-24 01:26:13.000000000 +0100 +--- circos-0.69-6-new/lib/Circos/Debug.pm 2018-01-12 10:12:07.192502006 +0100 +*************** +*** 63,75 **** + + use Carp qw( carp confess croak ); + use Data::Dumper; +- use FindBin; + use Memoize; + use List::MoreUtils qw(uniq); + use Time::HiRes qw(gettimeofday tv_interval); +- use lib "$FindBin::RealBin"; +- use lib "$FindBin::RealBin/../lib"; +- use lib "$FindBin::RealBin/lib"; + + use Circos::Constants; + +--- 63,71 ---- +diff -crB circos-0.69-6/lib/Circos/Division.pm circos-0.69-6-new/lib/Circos/Division.pm +*** circos-0.69-6/lib/Circos/Division.pm 2015-11-17 00:55:58.000000000 +0100 +--- circos-0.69-6-new/lib/Circos/Division.pm 2018-01-12 10:12:21.544769084 +0100 +*************** +*** 37,52 **** + our @EXPORT = qw(); + + use Carp qw( carp confess croak ); +- use FindBin; + use GD; + use Math::Round; + use List::MoreUtils qw(uniq); + use Params::Validate qw(:all); + +- use lib "$FindBin::RealBin"; +- use lib "$FindBin::RealBin/../lib"; +- use lib "$FindBin::RealBin/lib"; +- + use Circos::Configuration; + use Circos::Constants; + use Circos::Debug; +--- 37,47 ---- +diff -crB circos-0.69-6/lib/Circos/Error.pm circos-0.69-6-new/lib/Circos/Error.pm +*** circos-0.69-6/lib/Circos/Error.pm 2015-03-17 22:46:36.000000000 +0100 +--- circos-0.69-6-new/lib/Circos/Error.pm 2018-01-12 10:12:32.472970548 +0100 +*************** +*** 44,53 **** + use Params::Validate; + use Text::Format; + +- use lib "$FindBin::RealBin"; +- use lib "$FindBin::RealBin/../lib"; +- use lib "$FindBin::RealBin/lib"; +- + use Circos::Constants; + use Circos::Debug; + use Circos::Utils; +--- 44,49 ---- +diff -crB circos-0.69-6/lib/Circos/Expression.pm circos-0.69-6-new/lib/Circos/Expression.pm +*** circos-0.69-6/lib/Circos/Expression.pm 2015-11-30 23:49:36.000000000 +0100 +--- circos-0.69-6-new/lib/Circos/Expression.pm 2018-01-12 10:12:41.953144015 +0100 +*************** +*** 39,55 **** + + use Carp qw( carp confess croak ); + use Data::Dumper; +- use FindBin; + use Params::Validate qw(:all); + use Math::Round; + use Math::VecStat qw(average); + use List::Util qw(min max); + use Text::Balanced qw(extract_bracketed); + +- use lib "$FindBin::RealBin"; +- use lib "$FindBin::RealBin/../lib"; +- use lib "$FindBin::RealBin/lib"; +- + use Circos::Configuration; + use Circos::Constants; + use Circos::Debug; +--- 39,50 ---- +diff -crB circos-0.69-6/lib/Circos/Font.pm circos-0.69-6-new/lib/Circos/Font.pm +*** circos-0.69-6/lib/Circos/Font.pm 2014-05-12 18:20:19.000000000 +0200 +--- circos-0.69-6-new/lib/Circos/Font.pm 2018-01-12 10:12:51.657320357 +0100 +*************** +*** 45,59 **** + ); + + use Carp qw( carp confess croak ); +- use FindBin; + use GD::Image; + use Font::TTF::Font; + use Params::Validate qw(:all); + +- use lib "$FindBin::RealBin"; +- use lib "$FindBin::RealBin/../lib"; +- use lib "$FindBin::RealBin/lib"; +- + use Circos::Configuration; # qw(%CONF $DIMS fetch_conf); + use Circos::Constants; + use Circos::Colors; +--- 45,54 ---- +diff -crB circos-0.69-6/lib/Circos/Geometry.pm circos-0.69-6-new/lib/Circos/Geometry.pm +*** circos-0.69-6/lib/Circos/Geometry.pm 2014-05-12 18:20:19.000000000 +0200 +--- circos-0.69-6-new/lib/Circos/Geometry.pm 2018-01-12 10:12:58.961452282 +0100 +*************** +*** 41,54 **** + ); + + use Carp qw( carp confess croak ); +- use FindBin; + use GD::Image; + use Params::Validate qw(:all); + +- use lib "$FindBin::RealBin"; +- use lib "$FindBin::RealBin/../lib"; +- use lib "$FindBin::RealBin/lib"; +- + use Circos::Configuration; # qw(%CONF $DIMS fetch_conf); + use Circos::Constants; + use Circos::Debug; +--- 41,49 ---- +diff -crB circos-0.69-6/lib/Circos/Heatmap.pm circos-0.69-6-new/lib/Circos/Heatmap.pm +*** circos-0.69-6/lib/Circos/Heatmap.pm 2016-03-30 22:08:12.000000000 +0200 +--- circos-0.69-6-new/lib/Circos/Heatmap.pm 2018-01-12 10:13:09.953649538 +0100 +*************** +*** 24,40 **** + use Carp qw( carp confess croak ); + use Clone; + use Data::Dumper; +- use FindBin; + use GD::Image; + use Math::VecStat qw(min max); + use Params::Validate qw(:all); + use List::MoreUtils qw(uniq); + use Regexp::Common qw(number); + +- use lib "$FindBin::RealBin"; +- use lib "$FindBin::RealBin/../lib"; +- use lib "$FindBin::RealBin/lib"; +- + use Circos::Configuration; + use Circos::Constants; + use Circos::Colors; +--- 24,35 ---- +diff -crB circos-0.69-6/lib/Circos/Ideogram.pm circos-0.69-6-new/lib/Circos/Ideogram.pm +*** circos-0.69-6/lib/Circos/Ideogram.pm 2015-11-17 01:18:53.000000000 +0100 +--- circos-0.69-6-new/lib/Circos/Ideogram.pm 2018-01-12 10:13:22.045864798 +0100 +*************** +*** 40,46 **** + + use Carp qw( carp confess croak ); + use Cwd; +- use FindBin; + use File::Spec::Functions; + use Math::Round; + use Math::VecStat qw(max); +--- 40,45 ---- +*************** +*** 50,59 **** + + use POSIX qw(floor ceil); + +- use lib "$FindBin::RealBin"; +- use lib "$FindBin::RealBin/../lib"; +- use lib "$FindBin::RealBin/lib"; +- + use Circos::Configuration; + use Circos::Constants; + use Circos::Debug; +--- 49,54 ---- +diff -crB circos-0.69-6/lib/Circos/Image.pm circos-0.69-6-new/lib/Circos/Image.pm +*** circos-0.69-6/lib/Circos/Image.pm 2014-05-12 18:20:19.000000000 +0200 +--- circos-0.69-6-new/lib/Circos/Image.pm 2018-01-12 10:13:31.094024696 +0100 +*************** +*** 45,58 **** + ); + + use Carp qw( carp confess croak ); +- use FindBin; + use GD::Image; + use Params::Validate qw(:all); + +- use lib "$FindBin::RealBin"; +- use lib "$FindBin::RealBin/../lib"; +- use lib "$FindBin::RealBin/lib"; +- + use Circos::Configuration; + use Circos::Colors; + use Circos::Constants; +--- 45,53 ---- +diff -crB circos-0.69-6/lib/Circos/IO.pm circos-0.69-6-new/lib/Circos/IO.pm +*** circos-0.69-6/lib/Circos/IO.pm 2015-12-03 05:51:11.000000000 +0100 +--- circos-0.69-6-new/lib/Circos/IO.pm 2018-01-12 10:13:41.686210640 +0100 +*************** +*** 39,45 **** + use Carp qw( carp confess croak ); + use Storable qw(dclone); + use Cwd; +- use FindBin; + use Data::Dumper; + use File::Spec::Functions; + use Math::Round; +--- 39,44 ---- +*************** +*** 49,58 **** + + use POSIX qw(floor ceil); + +- use lib "$FindBin::RealBin"; +- use lib "$FindBin::RealBin/../lib"; +- use lib "$FindBin::RealBin/lib"; +- + use Circos::Constants; + use Circos::Colors; + use Circos::Configuration; +--- 48,53 ---- +diff -crB circos-0.69-6/lib/Circos/Karyotype.pm circos-0.69-6-new/lib/Circos/Karyotype.pm +*** circos-0.69-6/lib/Circos/Karyotype.pm 2014-09-09 00:15:58.000000000 +0200 +--- circos-0.69-6-new/lib/Circos/Karyotype.pm 2018-01-12 10:13:53.318413330 +0100 +*************** +*** 38,44 **** + + use Carp qw( carp confess croak ); + use Cwd; +- use FindBin; + use Math::Round; + use Math::VecStat qw(max); + use Params::Validate qw(:all); +--- 38,43 ---- +*************** +*** 48,57 **** + #use Regexp::Common qw(number); + #use POSIX qw(floor ceil); + +- use lib "$FindBin::RealBin"; +- use lib "$FindBin::RealBin/../lib"; +- use lib "$FindBin::RealBin/lib"; +- + use Circos::Configuration; + use Circos::Constants; + use Circos::Debug; +--- 47,52 ---- +diff -crB circos-0.69-6/lib/Circos/PNG.pm circos-0.69-6-new/lib/Circos/PNG.pm +*** circos-0.69-6/lib/Circos/PNG.pm 2014-09-17 05:33:06.000000000 +0200 +--- circos-0.69-6-new/lib/Circos/PNG.pm 2018-01-12 10:14:31.011059637 +0100 +*************** +*** 37,51 **** + our @EXPORT = qw(); + + use Carp qw( carp confess croak ); +- use FindBin; + use GD; + use Math::VecStat qw(min max); + use Params::Validate qw(:all); + +- use lib "$FindBin::RealBin"; +- use lib "$FindBin::RealBin/../lib"; +- use lib "$FindBin::RealBin/lib"; +- + use Circos::Configuration; + use Circos::Colors; + use Circos::Constants; +--- 37,46 ---- +diff -crB circos-0.69-6/lib/Circos/Rule.pm circos-0.69-6-new/lib/Circos/Rule.pm +*** circos-0.69-6/lib/Circos/Rule.pm 2014-10-02 01:14:25.000000000 +0200 +--- circos-0.69-6-new/lib/Circos/Rule.pm 2018-01-12 10:14:38.195181067 +0100 +*************** +*** 38,51 **** + + use Carp qw( carp confess croak ); + use Data::Dumper; +- use FindBin; + use GD::Image; + use Params::Validate qw(:all); + +- use lib "$FindBin::RealBin"; +- use lib "$FindBin::RealBin/../lib"; +- use lib "$FindBin::RealBin/lib"; +- + use Circos::Configuration; # qw(%CONF $DIMS); + use Circos::Constants; + use Circos::DataPoint; +--- 38,46 ---- +diff -crB circos-0.69-6/lib/Circos/SVG.pm circos-0.69-6-new/lib/Circos/SVG.pm +*** circos-0.69-6/lib/Circos/SVG.pm 2015-11-30 23:23:52.000000000 +0100 +--- circos-0.69-6-new/lib/Circos/SVG.pm 2018-01-12 10:14:47.803342631 +0100 +*************** +*** 26,39 **** + ); + + use Carp qw( carp confess croak ); +- use FindBin; + use GD::Image; + use Params::Validate qw(:all); + +- use lib "$FindBin::RealBin"; +- use lib "$FindBin::RealBin/../lib"; +- use lib "$FindBin::RealBin/lib"; +- + use Circos::Configuration; + use Circos::Colors; + use Circos::Constants; +--- 26,34 ---- +diff -crB circos-0.69-6/lib/Circos/Text.pm circos-0.69-6-new/lib/Circos/Text.pm +*** circos-0.69-6/lib/Circos/Text.pm 2014-05-12 18:20:19.000000000 +0200 +--- circos-0.69-6-new/lib/Circos/Text.pm 2018-01-12 10:14:57.083497772 +0100 +*************** +*** 42,55 **** + ); + + use Carp qw( carp confess croak ); +- use FindBin; + use GD::Image; + use Params::Validate qw(:all); + +- use lib "$FindBin::RealBin"; +- use lib "$FindBin::RealBin/../lib"; +- use lib "$FindBin::RealBin/lib"; +- + use Circos::Configuration; # qw(%CONF $DIMS); + use Circos::Constants; + use Circos::Colors; +--- 42,50 ---- +diff -crB circos-0.69-6/lib/Circos/Track/Highlight.pm circos-0.69-6-new/lib/Circos/Track/Highlight.pm +*** circos-0.69-6/lib/Circos/Track/Highlight.pm 2014-10-01 00:43:27.000000000 +0200 +--- circos-0.69-6-new/lib/Circos/Track/Highlight.pm 2018-01-12 10:15:06.795659206 +0100 +*************** +*** 37,50 **** + our @EXPORT = qw(); + + use Carp qw( carp confess croak ); +- use FindBin; + use GD::Image; + use Params::Validate qw(:all); + +- use lib "$FindBin::RealBin"; +- use lib "$FindBin::RealBin/../lib"; +- use lib "$FindBin::RealBin/lib"; +- + use Circos::Configuration; # qw(%CONF $DIMS); + use Circos::Constants; + #use Circos::Colors; +--- 37,45 ---- +diff -crB circos-0.69-6/lib/Circos/Track/Link.pm circos-0.69-6-new/lib/Circos/Track/Link.pm +*** circos-0.69-6/lib/Circos/Track/Link.pm 2014-05-12 18:20:19.000000000 +0200 +--- circos-0.69-6-new/lib/Circos/Track/Link.pm 2018-01-12 10:15:17.387834198 +0100 +*************** +*** 37,50 **** + our @EXPORT = qw(); + + use Carp qw( carp confess croak ); +- use FindBin; + use GD::Image; + use Params::Validate qw(:all); + +- use lib "$FindBin::RealBin"; +- use lib "$FindBin::RealBin/../lib"; +- use lib "$FindBin::RealBin/lib"; +- + use Circos::Configuration; # qw(%CONF $DIMS); + use Circos::Constants; + #use Circos::Colors; +--- 37,45 ---- +diff -crB circos-0.69-6/lib/Circos/Track.pm circos-0.69-6-new/lib/Circos/Track.pm +*** circos-0.69-6/lib/Circos/Track.pm 2014-09-16 05:31:46.000000000 +0200 +--- circos-0.69-6-new/lib/Circos/Track.pm 2018-01-12 10:15:29.628035063 +0100 +*************** +*** 41,56 **** + + use Carp qw( carp confess croak ); + use Data::Dumper; +- use FindBin; + use GD::Image; + use List::MoreUtils qw(uniq); + use Math::VecStat qw(min max); + use Params::Validate qw(:all); + use Regexp::Common; + use Statistics::Basic qw(average stddev); +- use lib "$FindBin::RealBin"; +- use lib "$FindBin::RealBin/../lib"; +- use lib "$FindBin::RealBin/lib"; + + use Circos::Configuration; # qw(%CONF $DIMS); + use Circos::Constants; +--- 41,52 ---- +diff -crB circos-0.69-6/lib/Circos/Unit.pm circos-0.69-6-new/lib/Circos/Unit.pm +*** circos-0.69-6/lib/Circos/Unit.pm 2014-05-12 18:20:19.000000000 +0200 +--- circos-0.69-6-new/lib/Circos/Unit.pm 2018-01-12 10:15:37.892169871 +0100 +*************** +*** 46,60 **** + ); + + use Carp qw( carp confess croak ); +- use FindBin; + use Data::Dumper; + use Params::Validate qw(:all); + use Regexp::Common qw(number); + +- use lib "$FindBin::RealBin"; +- use lib "$FindBin::RealBin/../lib"; +- use lib "$FindBin::RealBin/lib"; +- + use Circos::Configuration qw(%CONF $DIMS); + use Circos::Constants; + use Circos::Debug; +--- 46,55 ---- +diff -crB circos-0.69-6/lib/Circos/URL.pm circos-0.69-6-new/lib/Circos/URL.pm +*** circos-0.69-6/lib/Circos/URL.pm 2014-05-12 18:20:19.000000000 +0200 +--- circos-0.69-6-new/lib/Circos/URL.pm 2018-01-12 10:15:46.092303006 +0100 +*************** +*** 39,52 **** + ); + + use Carp qw( carp confess croak ); +- use FindBin; + use GD; + use Params::Validate qw(:all); + +- use lib "$FindBin::RealBin"; +- use lib "$FindBin::RealBin/../lib"; +- use lib "$FindBin::RealBin/lib"; +- + use Circos::Configuration; + #use Circos::Colors; + use Circos::Constants; +--- 39,47 ---- +diff -crB circos-0.69-6/lib/Circos/Utils.pm circos-0.69-6-new/lib/Circos/Utils.pm +*** circos-0.69-6/lib/Circos/Utils.pm 2014-10-01 21:36:19.000000000 +0200 +--- circos-0.69-6-new/lib/Circos/Utils.pm 2018-01-12 10:16:11.576712858 +0100 +*************** +*** 105,114 **** + + use POSIX qw(floor ceil); + +- use lib "$FindBin::RealBin"; +- use lib "$FindBin::RealBin/../lib"; +- use lib "$FindBin::RealBin/lib"; +- + use Circos::Constants; + use Circos::Debug; + use Circos::Error; +--- 105,110 ---- +diff -crB circos-0.69-6/lib/Circos.pm circos-0.69-6-new/lib/Circos.pm +*** circos-0.69-6/lib/Circos.pm 2016-06-25 00:19:27.000000000 +0200 +--- circos-0.69-6-new/lib/Circos.pm 2018-01-12 10:16:35.801097176 +0100 +*************** +*** 49,57 **** + + use strict; + use warnings; +- use lib "$FindBin::RealBin"; +- use lib "$FindBin::RealBin/../lib"; +- use lib "$FindBin::RealBin/lib"; + + BEGIN { + require Circos::Modules; +--- 49,54 ---- diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm index 7e27ea01e7..0d4dcd6fe0 100644 --- a/gnu/packages/perl.scm +++ b/gnu/packages/perl.scm @@ -52,6 +52,7 @@ #:use-module (gnu packages base) #:use-module (gnu packages compression) #:use-module (gnu packages freedesktop) + #:use-module (gnu packages gd) #:use-module (gnu packages less) #:use-module (gnu packages ncurses) #:use-module (gnu packages perl-check) @@ -870,6 +871,101 @@ the Carp.pm module doesn't help.") ;; Either GPLv2 or the "Artistic" license. (license (list gpl2 artistic2.0)))) +(define-public circos + (package + (name "circos") + (version "0.69-9") + (source (origin + (method url-fetch) + (uri (string-append + "http://circos.ca/distribution/circos-" version ".tgz")) + (sha256 + (base32 "1ll9yxbk0v64813np0qz6h8bc53qlnhg9y1053b57xgkxgmxgn1l")) + (patches (list (search-patch "circos-remove-findbin.patch"))))) + (build-system gnu-build-system) + (arguments + `(#:tests? #f ; There are no tests. + #:phases + (modify-phases %standard-phases + (delete 'configure) + (delete 'build) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (bin (string-append out "/bin")) + (datapath (string-append out "/share/Circos")) + (error (string-append out "/share/Circos/error")) + (fonts (string-append out "/share/Circos/fonts")) + (data (string-append out "/share/Circos/data")) + (tiles (string-append out "/share/Circos/tiles")) + (etc (string-append out "/share/Circos/etc")) + (lib (string-append out "/lib/perl5/site_perl/" + ,(package-version perl))) + (install-directory (lambda (source target) + (mkdir-p target) + (copy-recursively source target)))) + ;; Circos looks into a relative path for its configuration + ;; files. We need to provide an absolute path towards the + ;; corresponding paths in the store. + (substitute* '("bin/circos" "etc/colors_fonts_patterns.conf" + "etc/gddiag.conf" "etc/brewer.conf" "README") + (("<