diff mbox

WIP spamassassin - perl problems - shared library dependencies missing in perl extension modules

Message ID 20160725101301.735ed756@scratchpost.org
State New
Headers show

Commit Message

Danny Milosavljevic July 25, 2016, 8:13 a.m. UTC
Hi,

I'm trying to package spamassassin. Unfortunately I have a few problems with it.

How do I add a dependency to the dynamic libraries to the Perl extension modules (which are themselves shared libraries)?

The package spec patches are:


I get:

Can't load 'blib/arch/auto/Crypt/OpenSSL/Bignum/Bignum.so' for module Crypt::OpenSSL::Bignum: blib/arch/auto/Crypt/OpenSSL/Bignum/Bignum.so: undefined symbol: BN_dec2bn at /gnu/store/abgjh1qaxd5fmg24d4wl3p1q8naskz4p-perl-5.22.1/lib/perl5/5.22.1/x86_64-linux/DynaLoader.pm line 193.
 at test.pl line 10.
Compilation failed in require at test.pl line 10.
BEGIN failed--compilation aborted at test.pl line 10.
Makefile:1022: recipe for target 'test_dynamic' failed
make: *** [test_dynamic] Error 2
phase `check' failed after 0.1 seconds
builder for `/gnu/store/v4n4mydmik4bpykgmlriihkwi92x3vsm-perl-crypt-openssl-bignum-0.06.drv' failed with exit code 1
cannot build derivation `/gnu/store/9xh5cijziq0ym9pzy8q3sp5c15dczk7p-perl-crypt-openssl-rsa-0.28.drv': 1 dependencies couldn't be built
cannot build derivation `/gnu/store/xn5i9bgf4dpjr3yk9p0nwpzg98bni90k-perl-mail-dkim-0.40.drv': 1 dependencies couldn't be built
cannot build derivation `/gnu/store/m25byhw7qnn6aksqbda0kwwgx5hyjj6f-spamassassin-3.4.1.drv': 1 dependencies couldn't be built
guix package: error: build failed: build of `/gnu/store/m25byhw7qnn6aksqbda0kwwgx5hyjj6f-spamassassin-3.4.1.drv' failed

I get as well:

phase `build' succeeded after 2.1 seconds
starting phase `check'
Running Mkbootstrap for DB_File ()
chmod 644 "DB_File.bs"
PERL_DL_NONLAZY=1 "/gnu/store/abgjh1qaxd5fmg24d4wl3p1q8naskz4p-perl-5.22.1/bin/perl" "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness(0, 'blib/lib', 'blib/arch')" t/*.t
Can't load '/tmp/guix-build-perl-db_file-1.838.drv-0/DB_File-1.838/blib/arch/auto/DB_File/DB_File.so' for module DB_File: /tmp/guix-build-perl-db_file-1.838.drv-0/DB_File-1.838/blib/arch/auto/DB_File/DB_File.so: undefined symbol: db_create at /gnu/store/abgjh1qaxd5fmg24d4wl3p1q8naskz4p-perl-5.22.1/lib/perl5/5.22.1/x86_64-linux/DynaLoader.pm line 193.
 at t/db-btree.t line 32.
Compilation failed in require at t/db-btree.t line 32.
BEGIN failed--compilation aborted at t/db-btree.t line 32.
t/db-btree.t .. 
Dubious, test returned 2 (wstat 512, 0x200)
No subtests run 
Can't load '/tmp/guix-build-perl-db_file-1.838.drv-0/DB_File-1.838/blib/arch/auto/DB_File/DB_File.so' for module DB_File: /tmp/guix-build-perl-db_file-1.838.drv-0/DB_File-1.838/blib/arch/auto/DB_File/DB_File.so: undefined symbol: db_create at /gnu/store/abgjh1qaxd5fmg24d4wl3p1q8naskz4p-perl-5.22.1/lib/perl5/5.22.1/x86_64-linux/DynaLoader.pm line 193.
 at t/db-hash.t line 16.
Compilation failed in require at t/db-hash.t line 16.
BEGIN failed--compilation aborted at t/db-hash.t line 16.
t/db-hash.t ... 
Dubious, test returned 2 (wstat 512, 0x200)
No subtests run 
Can't load '/tmp/guix-build-perl-db_file-1.838.drv-0/DB_File-1.838/blib/arch/auto/DB_File/DB_File.so' for module DB_File: /tmp/guix-build-perl-db_file-1.838.drv-0/DB_File-1.838/blib/arch/auto/DB_File/DB_File.so: undefined symbol: db_create at /gnu/store/abgjh1qaxd5fmg24d4wl3p1q8naskz4p-perl-5.22.1/lib/perl5/5.22.1/x86_64-linux/DynaLoader.pm line 193.
 at t/db-recno.t line 15.
Compilation failed in require at t/db-recno.t line 15.
BEGIN failed--compilation aborted at t/db-recno.t line 15.
t/db-recno.t .. 
Dubious, test returned 2 (wstat 512, 0x200)
No subtests run 
t/pod.t ....... ok

Test Summary Report
-------------------
t/db-btree.t (Wstat: 512 Tests: 0 Failed: 0)
  Non-zero exit status: 2
  Parse errors: No plan found in TAP output
t/db-hash.t (Wstat: 512 Tests: 0 Failed: 0)
  Non-zero exit status: 2
  Parse errors: No plan found in TAP output
t/db-recno.t (Wstat: 512 Tests: 0 Failed: 0)
  Non-zero exit status: 2
  Parse errors: No plan found in TAP output
Files=4, Tests=1,  1 wallclock secs ( 0.03 usr  0.00 sys +  0.20 cusr  0.02 csys =  0.25 CPU)
Result: FAIL
Failed 3/4 test programs. 0/1 subtests failed.
Makefile:1027: recipe for target 'test_dynamic' failed
make: *** [test_dynamic] Error 255
phase `check' failed after 0.4 seconds
note: keeping build directory `/tmp/guix-build-perl-db_file-1.838.drv-0'
builder for `/gnu/store/14wryd0pmv8k8kbiflrxcy0ikq5ajszv-perl-db_file-1.838.drv' failed with exit code 1
cannot build derivation `/gnu/store/m25byhw7qnn6aksqbda0kwwgx5hyjj6f-spamassassin-3.4.1.drv': 1 dependencies couldn't be built
guix package: error: build failed: build of `/gnu/store/m25byhw7qnn6aksqbda0kwwgx5hyjj6f-spamassassin-3.4.1.drv' failed

$ ldd /tmp/DB_File.so 
	linux-vdso.so.1 (0x00007ffca6950000)
	libgcc_s.so.1 => /gnu/store/v39bh3ln3ncnzhyw0kd12d46kww9747v-gcc-4.9.3-lib/lib/libgcc_s.so.1 (0x00007fb81a9b3000)
	libc.so.6 => /gnu/store/8m00x5x8ykmar27s9248cmhnkdb2n54a-glibc-2.22/lib/libc.so.6 (0x00007fb81a60d000)
	/gnu/store/8m00x5x8ykmar27s9248cmhnkdb2n54a-glibc-2.22/lib/ld-linux-x86-64.so.2 (0x0000558014d0c000)
diff mbox

Patch

diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm
index 5a3ebf0..13cb1be 100644
--- a/gnu/packages/mail.scm
+++ b/gnu/packages/mail.scm
@@ -15,6 +15,7 @@ 
 ;;; Copyright © 2016 Lukas Gradl <lgradl@openmailbox.org>
 ;;; Copyright © 2016 Alex Kost <alezost@gmail.com>
 ;;; Copyright © 2016 Troy Sankey <sankeytms@gmail.com>
+;;; Copyright © 2016 Danny Milosavljevic <dannym+a@scratchpost.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -70,10 +71,11 @@ 
   #:use-module (gnu packages gdb)
   #:use-module (gnu packages samba)
   #:use-module (gnu packages tls)
+  #:use-module (gnu packages web) ; lots of perl packages misclassified there
   #:use-module (gnu packages xml)
   #:use-module (gnu packages xorg)
   #:use-module ((guix licenses)
-                #:select (gpl2 gpl2+ gpl3 gpl3+ lgpl2.1 lgpl2.1+ lgpl3+
+                #:select (gpl2 gpl2+ gpl3 gpl3+ lgpl2.1 lgpl2.1+ lgpl3+ asl2.0
                            non-copyleft (expat . license:expat)))
   #:use-module (guix packages)
   #:use-module (guix download)
@@ -1260,3 +1262,89 @@  synchronizing with a remote address book, @command{vdirsyncer} is recommended.
 Khard can also be used from within the email client @command{mutt}.")
     (home-page "https://github.com/scheibler/khard")
     (license gpl3+)))
+
+(define-public perl-mailtools
+ (package
+  (name "perl-mailtools")
+  (version "2.18")
+  (source
+    (origin
+      (method url-fetch)
+      (uri (string-append
+             "mirror://cpan/authors/id/M/MA/MARKOV/MailTools-"
+             version
+             ".tar.gz"))
+      (sha256
+        (base32
+          "09xm6ymyqwawb21v15wyy721ps2rfxiqx5qdy8912dsp09vrxvnz"))))
+  (build-system perl-build-system)
+  (inputs `(("perl-timedate" ,perl-timedate)))
+  (home-page
+    "http://search.cpan.org/dist/MailTools")
+  (synopsis "Various e-mail related modules")
+  (description "MailTools contain E-Mail related modules.")
+  (license (package-license perl))))
+
+(define-public perl-mail-dkim
+ (package
+  (name "perl-mail-dkim")
+  (version "0.40")
+  (source
+    (origin
+      (method url-fetch)
+      (uri (string-append
+             "mirror://cpan/authors/id/J/JA/JASLONG/Mail-DKIM-"
+             version
+             ".tar.gz"))
+      (sha256
+        (base32
+          "1wd6mab4fp47v1nh85jfxsjmysnyv5mwvfv47cn5m2h2lb1s0piw"))))
+  (build-system perl-build-system)
+  (inputs
+    `(("perl-crypt-openssl-rsa"
+       ,perl-crypt-openssl-rsa)
+      ("perl-mailtools" ,perl-mailtools)
+      ("perl-net-dns" ,perl-net-dns)))
+  (home-page
+    "http://search.cpan.org/dist/Mail-DKIM")
+  (synopsis
+    "Signs/verifies Internet mail with DKIM/DomainKey signatures")
+  (description "Mail::DKIM signs/verifies internet mail with DKIM DomainKey signatures.")
+  (license #f)))
+
+(define-public spamassassin
+  (package
+    (name "spamassassin")
+    (version "3.4.1")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "http://mirror.klaus-uwe.me/apache/spamassassin/source/Mail-SpamAssassin-" version ".tar.bz2"))
+              (sha256
+               (base32
+                "0la6s5ilamf9129kyjckcma8cr6fpb6b5f2fb64v7106iy0ckhd0"))))
+    (build-system perl-build-system)
+    (inputs `(("perl-html-parser" ,perl-html-parser)
+              ("perl-net-dns" ,perl-net-dns)
+              ("perl-netaddr-ip" ,perl-netaddr-ip)
+              ("perl-digest-sha1" ,perl-digest-sha1)
+              ("perl-db_file" ,perl-db_file)
+              ("perl-mail-spf" ,perl-mail-spf)
+              ("perl-geo-ip" ,perl-geo-ip)
+              ("perl-net-cidr-lite" ,perl-net-cidr-lite)
+              ; FIXME find and re-add ("perl-razor2" ,perl-razor2)
+              ("perl-io-socket-inet6" ,perl-io-socket-inet6)
+              ("perl-io-socket-ssl" ,perl-io-socket-ssl)
+              ("perl-mail-dkim" ,perl-mail-dkim)
+              ("perl-dbi" ,perl-dbi)
+              ; FIXME find and re-add ("perl-lwp-useragent" ,perl-lwp-useragent)
+              ("perl-http-date" ,perl-http-date)
+              ("perl-encode-detect" ,perl-encode-detect)
+              ("perl-net-patricia" ,perl-net-patricia)
+              ; FIXME find and re-add ("perl-net-dns-nameserver" ,perl-net-dns-nameserver)
+))
+    ; TODO optional binaries: gpg wget curl fetch
+    (synopsis "Spam Filter")
+    (description "SpamAssassin is a complete spam checker, featuring local tests, remote tests, Bayesian filtering, and more.")
+    (home-page "http://spamassassin.apache.org/")
+    (license asl2.0) ; FIXME check
+))
diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm
index 5502a0f..722a7ec 100644
--- a/gnu/packages/web.scm
+++ b/gnu/packages/web.scm
@@ -3389,3 +3389,245 @@  playback of HTTP request/response traces.")
 can easily be invoked on a single file.  Your partner can access the file with
 tools they trust (e.g. wget).")
     (license l:gpl2+)))
+
+(define-public perl-net-dns
+ (package
+  (name "perl-net-dns")
+  (version "1.06")
+  (source
+    (origin
+      (method url-fetch)
+      (uri (string-append
+             "mirror://cpan/authors/id/N/NL/NLNETLABS/Net-DNS-"
+             version
+             ".tar.gz"))
+      (sha256
+        (base32
+          "07m5331132h9xkh1i6jv9d80f571yva27iqa31aq4sm31iw7nn53"))))
+  (build-system perl-build-system)
+  (inputs
+    `(("perl-digest-hmac" ,perl-digest-hmac)))
+  (home-page "http://search.cpan.org/dist/Net-DNS")
+  (synopsis
+    "Perl Interface to the Domain Name System")
+  (description "Net::DNS is the Perl Interface to the Domain Name System.")
+  (license l:x11)))
+
+(define-public perl-netaddr-ip
+(package
+  (name "perl-netaddr-ip")
+  (version "4.079")
+  (source
+    (origin
+      (method url-fetch)
+      (uri (string-append
+             "mirror://cpan/authors/id/M/MI/MIKER/NetAddr-IP-"
+             version
+             ".tar.gz"))
+      (sha256
+        (base32
+          "1rx0dinrz9fk9qcg4rwqq5n1dm3xv2arymixpclcv2q2nzgq4npc"))))
+  (build-system perl-build-system)
+  (home-page
+    "http://search.cpan.org/dist/NetAddr-IP")
+  (synopsis
+    "Manages IPv4 and IPv6 addresses and subnets")
+  (description "NetAddr::IP manages IPv4 and IPv6 addresses and subsets.")
+  (license #f)))
+
+(define-public perl-net-dns-resolver-programmable
+ (package
+  (name "perl-net-dns-resolver-programmable")
+  (version "v0.003")
+  (source
+    (origin
+      (method url-fetch)
+      (uri (string-append
+             "mirror://cpan/authors/id/J/JM/JMEHNLE/net-dns-resolver-programmable/"
+             "Net-DNS-Resolver-Programmable-" version ".tar.gz"))
+      (sha256
+        (base32
+          "1v3nl2kaj4fs55n1617n53q8sa3mir06898vpy1rq98zjih24h4d"))))
+  (build-system perl-build-system)
+  (native-inputs
+    `(("perl-module-build" ,perl-module-build)))
+  (inputs `(("perl-net-dns" ,perl-net-dns)))
+  (home-page
+    "http://search.cpan.org/dist/Net-DNS-Resolver-Programmable")
+  (synopsis
+    "programmable DNS resolver class for offline
+emulation of DNS")
+  (description "Net::DNS::Resolver::Programmable is a programmable DNS resolver for
+offline emulation of DNS.")
+  (license (package-license perl))))
+
+
+(define-public perl-mail-spf
+ (package
+  (name "perl-mail-spf")
+  (version "v2.9.0")
+  (source
+    (origin
+      (method url-fetch)
+      (uri (string-append
+             "mirror://cpan/authors/id/J/JM/JMEHNLE/mail-spf/Mail-SPF-"
+             version
+             ".tar.gz"))
+      (sha256
+        (base32
+          "0qk1rfgfm5drj4iyniiabrasrpqv570vzhgz66lwgb67y4amkjv1"))))
+  (build-system perl-build-system)
+  (native-inputs
+    `(("perl-module-build" ,perl-module-build)
+      ("perl-net-dns-resolver-programmable"
+       ,perl-net-dns-resolver-programmable)))
+  (inputs
+    `(("perl-error" ,perl-error)
+      ("perl-net-dns" ,perl-net-dns)
+      ("perl-netaddr-ip" ,perl-netaddr-ip)
+      ("perl-uri" ,perl-uri)))
+  (home-page
+    "http://search.cpan.org/dist/Mail-SPF")
+  (synopsis
+    "An object-oriented implementation of Sender Policy Framework")
+  (description "Sender Policy Framework.")
+  (license l:bsd-3)))
+
+(define-public perl-geo-ip
+ (package
+  (name "perl-geo-ip")
+  (version "1.45")
+  (source
+    (origin
+      (method url-fetch)
+      (uri (string-append
+             "mirror://cpan/authors/id/M/MA/MAXMIND/Geo-IP-"
+             version
+             ".tar.gz"))
+      (sha256
+        (base32
+          "0qinkq2br1cjicbgqb5bvrhm73h7f9f4fgc6bjfs5r6x7316bdqf"))))
+  (build-system perl-build-system)
+  (home-page "http://search.cpan.org/dist/Geo-IP")
+  (synopsis
+    "Look up location and network information by IP Address")
+  (description "Geo::IP looks up location and network information by IP Address.")
+  (license (package-license perl))))
+
+(define-public perl-net-cidr-lite
+ (package
+  (name "perl-net-cidr-lite")
+  (version "0.21")
+  (source
+    (origin
+      (method url-fetch)
+      (uri (string-append
+             "mirror://cpan/authors/id/D/DO/DOUGW/Net-CIDR-Lite-"
+             version
+             ".tar.gz"))
+      (sha256
+        (base32
+          "14shj73zbqmfjbp0qz1fs9j4p2dpvz5hfkm4qfdjbydflbl2b8fg"))))
+  (build-system perl-build-system)
+  (home-page
+    "http://search.cpan.org/dist/Net-CIDR-Lite")
+  (synopsis
+    "Perl extension for merging IPv4 or IPv6 CIDR addresses")
+  (description "Net::CIDR::Lite merges IPv4 or IPv6 CIDR addresses.")
+  (license #f)))
+
+(define-public perl-io-socket-inet6
+ (package
+  (name "perl-io-socket-inet6")
+  (version "2.72")
+  (source
+    (origin
+      (method url-fetch)
+      (uri (string-append
+             "mirror://cpan/authors/id/S/SH/SHLOMIF/IO-Socket-INET6-"
+             version
+             ".tar.gz"))
+      (sha256
+        (base32
+          "1fqypz6qa5rw2d5y2zq7f49frwra0aln13nhq5gi514j2zx21q45"))))
+  (build-system perl-build-system)
+  (native-inputs
+    `(("perl-module-build" ,perl-module-build)))
+  (inputs `(("perl-socket6" ,perl-socket6)))
+  (home-page
+    "http://search.cpan.org/dist/IO-Socket-INET6")
+  (synopsis
+    "Object interface for AF_INET/AF_INET6 domain sockets")
+  (description "IO::Socket::INET6 is an interface for AF_INET/AFINET6 domain sockets.")
+  (license (package-license perl))))
+
+(define-public perl-encode-detect
+ (package
+  (name "perl-encode-detect")
+  (version "1.01")
+  (source
+    (origin
+      (method url-fetch)
+      (uri (string-append
+             "mirror://cpan/authors/id/J/JG/JGMYERS/Encode-Detect-"
+             version
+             ".tar.gz"))
+      (sha256
+        (base32
+          "1wdv9ffgs4xyfh5dnh09dqkmmlbf5m1hxgdgb3qy6v6vlwx8jkc3"))))
+  (build-system perl-build-system)
+  (inputs
+    `(("perl-module-build" ,perl-module-build)))
+  (home-page
+    "http://search.cpan.org/dist/Encode-Detect")
+  (synopsis
+    "An Encode::Encoding subclass that detects the encoding of data")
+  (description "Encode::Detect detects the encoding of data.")
+  (license #f)))
+
+(define-public perl-net-patricia
+ (package
+  (name "perl-net-patricia")
+  (version "1.22")
+  (source
+    (origin
+      (method url-fetch)
+      (uri (string-append
+             "mirror://cpan/authors/id/G/GR/GRUBER/Net-Patricia-"
+             version
+             ".tar.gz"))
+      (sha256
+        (base32
+          "0ln5f57vc8388kyh9vhx2infrdzfhbpgyby74h1qsnhwds95m0vh"))))
+  (build-system perl-build-system)
+  (inputs
+    `(("perl-net-cidr-lite" ,perl-net-cidr-lite)
+      ("perl-socket6" ,perl-socket6)))
+  (home-page
+    "http://search.cpan.org/dist/Net-Patricia")
+  (synopsis
+    "Patricia Trie perl module for fast IP address lookups")
+  (description "Net::Patricia does IP address lookups quickly.")
+  (license #f)))
+
+(define-public perl-socket6
+ (package
+  (name "perl-socket6")
+  (version "0.28")
+  (source
+    (origin
+      (method url-fetch)
+      (uri (string-append
+             "mirror://cpan/authors/id/U/UM/UMEMOTO/Socket6-"
+             version
+             ".tar.gz"))
+      (sha256
+        (base32
+          "11j5jzqbzmwlws9zals43ry2f1nw9qy6im7yhn9ck5rikywrmm5z"))))
+  (build-system perl-build-system)
+  (home-page "http://search.cpan.org/dist/Socket6")
+  (synopsis
+    "IPv6 related part of the C socket.h defines and structure manipulators")
+  (description "Socket6 binds the IPv6 related part of the C socket header
+definitions and structure manipulators.")
+  (license #f)))
diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm
index 86cf883..d161885 100644
--- a/gnu/packages/databases.scm
+++ b/gnu/packages/databases.scm
@@ -1013,3 +1013,26 @@  trees (LSM), for sustained throughput under random insert workloads.")
     (license gpl3) ; or GPL-2
     ;; configure.ac: WiredTiger requires a 64-bit build.
     (supported-systems '("x86_64-linux" "mips64el-linux"))))
+
+(define-public perl-db_file
+ (package
+  (name "perl-db_file")
+  (version "1.838")
+  (source
+    (origin
+      (method url-fetch)
+      (uri (string-append
+             "mirror://cpan/authors/id/P/PM/PMQS/DB_File-"
+             version
+             ".tar.gz"))
+      (sha256
+        (base32
+          "0yp5d5zr8dk9g6xdh7ygi5bq63q7nxvhd58dk2i3ki4nb7yv2yh9"))))
+  (build-system perl-build-system)
+  (inputs `(("bdb" ,bdb)))
+  (native-inputs `(("perl-test-pod" ,perl-test-pod)))
+  (home-page "http://search.cpan.org/dist/DB_File")
+  (synopsis
+    "Perl5 access to Berkeley DB version 1.x")
+  (description "DB_File provides access to Berkeley DB version 1.x.")
+  (license (package-license perl))))
diff --git a/gnu/packages/tls.scm b/gnu/packages/tls.scm
index bdc1d7c..d3634d8 100644
--- a/gnu/packages/tls.scm
+++ b/gnu/packages/tls.scm
@@ -527,3 +527,75 @@  finally access to the SSL api of the SSLeay/OpenSSL package so you can write
 servers or clients for more complicated applications.")
     (license (package-license perl))
     (home-page "http://search.cpan.org/~mikem/Net-SSLeay-1.66/")))
+
+(define-public perl-crypt-openssl-bignum
+ (package
+  (name "perl-crypt-openssl-bignum")
+  (version "0.06")
+  (source
+    (origin
+      (method url-fetch)
+      (uri (string-append
+             "mirror://cpan/authors/id/K/KM/KMX/Crypt-OpenSSL-Bignum-"
+             version
+             ".tar.gz"))
+      (sha256
+        (base32
+          "05yzrdglrrzp191krf77zrwfkmzrfwrsrx1vyskbj94522lszk67"))))
+  (build-system perl-build-system)
+  (inputs `(("openssl" ,openssl)))
+  (home-page
+    "http://search.cpan.org/dist/Crypt-OpenSSL-Bignum")
+  (synopsis
+    "OpenSSL's multiprecision integer arithmetic")
+  (description "Crypt::OpenSSL::Bignum provides multiprecision integer arithmetic.")
+  (license #f)))
+
+(define-public perl-crypt-openssl-random
+ (package
+  (name "perl-crypt-openssl-random")
+  (version "0.11")
+  (source
+    (origin
+      (method url-fetch)
+      (uri (string-append
+             "mirror://cpan/authors/id/R/RU/RURBAN/Crypt-OpenSSL-Random-"
+             version
+             ".tar.gz"))
+      (sha256
+        (base32
+          "0yjcabkibrkafywvdkmd1xpi6br48skyk3l15ni176wvlg38335v"))))
+  (build-system perl-build-system)
+  (home-page
+    "http://search.cpan.org/dist/Crypt-OpenSSL-Random")
+  (synopsis
+    "OpenSSL/LibreSSL pseudo-random number generator access")
+  (description "Crypt::OpenSSL::Random is a OpenSSL/LibreSSL pseudo-random number generator")
+  (license (package-license perl))))
+
+(define-public perl-crypt-openssl-rsa
+ (package
+  (name "perl-crypt-openssl-rsa")
+  (version "0.28")
+  (source
+    (origin
+      (method url-fetch)
+      (uri (string-append
+             "mirror://cpan/authors/id/P/PE/PERLER/Crypt-OpenSSL-RSA-"
+             version
+             ".tar.gz"))
+      (sha256
+        (base32
+          "1gnpvv09b2gpifwdzc5jnhama3d1a4c39lzj9hcaicsb8rvzjmsk"))))
+  (build-system perl-build-system)
+  (inputs
+    `(("perl-crypt-openssl-bignum"
+       ,perl-crypt-openssl-bignum)
+      ("perl-crypt-openssl-random"
+       ,perl-crypt-openssl-random)))
+  (home-page
+    "http://search.cpan.org/dist/Crypt-OpenSSL-RSA")
+  (synopsis
+    "RSA encoding and decoding, using the openSSL libraries")
+  (description "Crypt::OpenSSL::RSA does RSA encoding and decoding (using the OpenSSL libraries).")
+  (license (package-license perl))))