diff mbox series

[bug#39998] gnu: Add circos.

Message ID 5eea17e0e66700927f0eb796b824b752f0295d37.camel@gnu.org
State Accepted
Headers show
Series [bug#39998] gnu: Add circos. | expand

Checks

Context Check Description
cbaines/comparison success View comparision
cbaines/git branch success View Git branch
cbaines/applying patch fail View Laminar job

Commit Message

Roel Janssen March 9, 2020, 2:26 p.m. UTC
Dear Guix,

We've had a recipe for "circos" for a while in our staging repository. 
It's quite involved, but nevertheless it has been battle-tested in our
group.

So without further ado, the attached patch adds Circos.  I hope I
didn't forget anything.

Kind regards,
Roel Janssen

Comments

Ludovic Courtès March 18, 2020, 9:51 a.m. UTC | #1
Hi Roel,

Roel Janssen <roel@gnu.org> skribis:

> From 3354081946899a7573c0af520ba4a29eaa818584 Mon Sep 17 00:00:00 2001
> From: Roel Janssen <roel@gnu.org>
> Date: Mon, 9 Mar 2020 15:21:43 +0100
> Subject: [PATCH] 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.

[...]

> --- /dev/null
> +++ b/gnu/packages/patches/circos-remove-findbin.patch
> @@ -0,0 +1,538 @@
> +diff -crB circos-0.69-6/bin/circos circos-0.69-6-new/bin/circos

Could you add a sentence or two explaining what this patch does, along
with provenance information and its upstream status (link to bug report,
upstream commit, etc.)?

Otherwise LGTM, thanks!

Ludo’.
Roel Janssen March 23, 2020, 10:46 a.m. UTC | #2
On Wed, 2020-03-18 at 10:51 +0100, Ludovic Courtès wrote:
> Hi Roel,
> 
> Roel Janssen <roel@gnu.org> skribis:
> 
> > From 3354081946899a7573c0af520ba4a29eaa818584 Mon Sep 17 00:00:00 2001
> > From: Roel Janssen <roel@gnu.org>
> > Date: Mon, 9 Mar 2020 15:21:43 +0100
> > Subject: [PATCH] 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.
> 
> [...]
> 
> > --- /dev/null
> > +++ b/gnu/packages/patches/circos-remove-findbin.patch
> > @@ -0,0 +1,538 @@
> > +diff -crB circos-0.69-6/bin/circos circos-0.69-6-new/bin/circos
> 
> Could you add a sentence or two explaining what this patch does, along
> with provenance information and its upstream status (link to bug report,
> upstream commit, etc.)?
> 
> Otherwise LGTM, thanks!
> 
> Ludo’.
> 

Sorry for the delay.  I've added provenance information, and a description for
the patch and pushed it in 7ff6395.

Thanks!

Kind regards,
Roel Janssen
diff mbox series

Patch

From 3354081946899a7573c0af520ba4a29eaa818584 Mon Sep 17 00:00:00 2001
From: Roel Janssen <roel@gnu.org>
Date: Mon, 9 Mar 2020 15:21:43 +0100
Subject: [PATCH] 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 +
 .../patches/circos-remove-findbin.patch       | 538 ++++++++++++++++++
 gnu/packages/perl.scm                         |  96 ++++
 3 files changed, 635 insertions(+)
 create mode 100644 gnu/packages/patches/circos-remove-findbin.patch

diff --git a/gnu/local.mk b/gnu/local.mk
index 2f0768f036..e742cdd572 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -770,6 +770,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..aeb8103a5c
--- /dev/null
+++ b/gnu/packages/patches/circos-remove-findbin.patch
@@ -0,0 +1,538 @@ 
+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 a6b087240c..160a4002e9 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")
+                 (("<<include etc") (string-append "<<include " etc)))
+               (substitute* '("etc/colors.conf" "etc/image.black.conf"
+                              "etc/patterns.conf" "etc/image.conf")
+                 (("<<include ") (string-append "<<include " etc "/")))
+               (substitute* '("etc/fonts.conf" "fonts/README.fonts")
+                 (("= fonts") (string-append "= " fonts)))
+               (substitute* "etc/patterns.conf"
+                 (("= tiles") (string-append "= " tiles)))
+               (substitute* "lib/Circos/Error.pm"
+                 (("error/configuration.missing.txt")
+                  (string-append error "/configuration.missing.txt")))
+               (substitute* "etc/housekeeping.conf"
+                 (("# data_path = /home/martink/circos-tutorials ")
+                  (string-append "data_path = " datapath)))
+               (substitute* "lib/Circos/Configuration.pm"
+                 (("my @possibilities = \\(")
+                  (string-append "my @possibilities = ("
+                                 "catfile( \"" datapath "\", $arg ), "
+                                 "catfile( \"" etc "\", $arg ), "
+                                 "catfile( \"" etc "/tracks\", $arg ), ")))
+               (for-each install-directory
+                         (list "error" "fonts" "data" "tiles" "etc" "lib")
+                         (list error fonts data tiles etc lib))
+               (install-file "bin/circos" bin)
+               #t))))))
+    (propagated-inputs
+     `(("perl" ,perl)
+       ("perl-carp" ,perl-carp)
+       ("perl-clone" ,perl-clone)
+       ("perl-config-general" ,perl-config-general)
+       ("perl-digest-md5" ,perl-digest-md5)
+       ("perl-file-temp" ,perl-file-temp)
+       ("perl-font-ttf" ,perl-font-ttf)
+       ("perl-gd" ,perl-gd)
+       ("perl-getopt-long" ,perl-getopt-long)
+       ("perl-list-allutils" ,perl-list-allutils)
+       ("perl-math-bezier" ,perl-math-bezier)
+       ("perl-math-round" ,perl-math-round)
+       ("perl-math-vecstat" ,perl-math-vecstat)
+       ("perl-memoize" ,perl-memoize)
+       ("perl-number-format" ,perl-number-format)
+       ("perl-params-validate" ,perl-params-validate)
+       ("perl-readonly" ,perl-readonly)
+       ("perl-regexp-common" ,perl-regexp-common)
+       ("perl-set-intspan" ,perl-set-intspan)
+       ("perl-statistics-basic" ,perl-statistics-basic)
+       ("perl-svg" ,perl-svg)
+       ("perl-text-balanced" ,perl-text-balanced)
+       ("perl-text-format" ,perl-text-format)
+       ("perl-time-hires" ,perl-time-hires)))
+    (home-page "http://circos.ca/")
+    (synopsis "Generation of circularly composited renditions")
+    (description
+     "Circos is a program for the generation of publication-quality, circularly
+composited renditions of genomic data and related annotations.")
+    (license gpl2+)))
+
 (define-public perl-class-accessor
   (package
     (name "perl-class-accessor")
-- 
2.25.1