+

Perl software in
GNU Guix

Through Guix you can...

Get and use Perl

Get and use Perl modules

Get and use tools and applications written in Perl

Getting Perl

→ guix install perl

...

→ perl --version

This is perl 5, version 28, subversion 0 (v5.28.0) built for
x86_64-linux-thread-multi

...

Using Perl modules

→ guix install perl perl-uri

...

→ echo $PERL5LIB
/gnu/store/h3ryiwyhp8qcxyf74sxyv746171zpazr-profile/lib/perl5/site_perl

→ ls /gnu/store/h3r...azr-profile/lib/perl5/site_perl/5.28.0/
URI  URI.pm  x86_64-linux-thread-multi
Ikiwiki
  • Wiki compiler
  • Static site generator
  • I occasionally use it for blogging
cbaines pushed a change to branch master
in repository guix.

      from  921bb35   gnu: linux-libre@4.9: Fix hash.
       new  31d3a7c   gnu: Add discount.
       new  9d46919   gnu: Add perl-text-markdown-discount.
       new  19d81cf   gnu: Add perl-test-cpan-meta-json.
       new  d5b5020   gnu: Add perl-test-cpan-meta.
       new  b4387d8   gnu: Add perl-devel-cycle.
       new  3d74955   gnu: Add perl-test-memory-cycle.
       new  8800255   gnu: Add perl-test-notabs.
       new  7d1f9c9   gnu: Add perl-test-eol.
       new  4f0ee1b   gnu: Add perl-html-scrubber.
       new  86bd64b   gnu: Add perl-yaml-libyaml.
       new  f0539b6   gnu: Add perl-cgi-session.
       new  909dcf5   gnu: Add ikiwiki.
          
(define-public ikiwiki
  (package
    (name "ikiwiki")
    (version "3.20190228")
    (source
     (origin
       (method url-fetch)
       (uri (string-append "http://snapshot.debian.org/archive/debian/"
                           "20190301T035241Z/pool/main/i/ikiwiki/ikiwiki_"
                           version ".orig.tar.xz"))
       (sha256
        (base32
         "17pyblaqhkb61lxl63bzndiffism8k859p54k3k4sghclq6lsynh"))))
  ...
(define-public ikiwiki
  (package
    ...
    (build-system perl-build-system)
    (arguments
     `(#:phases
        (modify-phases %standard-phases
         (add-after 'unpack 'include-PERL5LIB-in-wrapper
           (lambda _
             (substitute* "IkiWiki/Wrapper.pm"
               (("^@wrapper\\_hooks")
                (string-append
                 "@wrapper_hooks\n"
                 "        addenv(\"PERL5LIB\", \""
                 (getenv "PERL5LIB")
                 "\");")))))
         (add-after 'patch-source-shebangs 'patch-Makefile
           (lambda _
             (substitute* "Makefile.PL"
               (("SYSCONFDIR\\?=") "SYSCONFDIR?=$(PREFIX)"))
             #t))
         (add-after 'install 'wrap-programs
           (lambda* (#:key outputs #:allow-other-keys)
             (let* ((out  (assoc-ref outputs "out"))
                    (bin  (string-append out "/bin/"))
                    (path (getenv "PERL5LIB")))
               (for-each (lambda (file)
                           (wrap-program file
                             `("PERL5LIB" ":" prefix (,path))))
                         (find-files bin))
             #t))))))
  ...
(define-public ikiwiki
  (package
    ...
    (native-inputs
     `(("which" ,which)
       ("perl-html-tagset" ,perl-html-tagset)
       ("perl-timedate" ,perl-timedate)
       ("perl-xml-sax" ,perl-xml-sax)
       ("perl-xml-simple" ,perl-xml-simple)
       ("gettext" ,gettext-minimal)
       ("subversion" ,subversion)
       ("git" ,git)
       ("bazaar" ,bazaar)
       ("cvs" ,cvs)
       ("mercurial" ,mercurial)))
    (inputs
     `(("python" ,python-wrapper)
       ("perl-cgi-formbuilder" ,perl-cgi-formbuilder)
       ("perl-cgi-session" ,perl-cgi-session)
       ("perl-cgi-simple" ,perl-cgi-simple)
       ("perl-db-file" ,perl-db-file)
       ("perl-html-parser" ,perl-html-parser)
       ("perl-html-scrubber" ,perl-html-scrubber)
       ("perl-html-template" ,perl-html-template)
       ("perl-image-magick" ,perl-image-magick)
       ("perl-json" ,perl-json)
       ("perl-text-markdown-discount" ,perl-text-markdown-discount)
       ("perl-uri" ,perl-uri)
       ("perl-yaml-libyaml" ,perl-yaml-libyaml)))
  ...
(define-public ikiwiki
  (package
    ...
    (home-page "https://ikiwiki.info/")
    (synopsis "Wiki compiler, capable of generating HTML")
    (description
     "Ikiwiki is a wiki compiler, capable of generating a static set of web
pages, but also incorporating dynamic features like a web based editor and
commenting.")
    (license license:gpl2+)))
→ guix build ikiwiki

...

/gnu/store/hcrv2cqzbisdb35hg2xmbxp1r2z7ijzd-ikiwiki-3.20190228
          
/gnu/store/hcrv2cqzbisdb35hg2xmbxp1r2z7ijzd-ikiwiki-3.20190228
├── bin
│   ├── ikiwiki
│   ├── ikiwiki-calendar
│   ├── ikiwiki-comment
│   ├── ikiwiki-makerepo
│   ├── ikiwiki-transition
│   └── ikiwiki-update-wikilist
├── etc
│   └── ikiwiki
│       └── ...
├── lib
│   ├── ikiwiki
│   │   └── ...
│   ├── perl5
│   │   └── ...
│   └── w3m
│       └── cgi-bin
│           └── ikiwiki-w3m.cgi
├── sbin
│   └── ikiwiki-mass-rebuild
└── share
    ├── ikiwiki
    │   └── ...
    ├── locale
    │   └── ...
    └── man
        ├── man1
        │   └── ...
        └── man8
            └── ikiwiki-mass-rebuild.8.gz
          
Sqitch
  • Sensible database change management
cbaines pushed a change to branch master
in repository guix.

      from  1b7436a   gnu: wine-staging: Update to 4.6.
       new  41c685f   gnu: Add perl-http-tinyish.
       new  ef9902d   gnu: Add perl-config-gitlike.
       new  366b76c   gnu: Add perl-cpan-distnameinfo.
       new  54a5178   gnu: Add perl-tie-handle-offset.
       new  f73d4b1   gnu: Add perl-io-pager.
       new  e748fbe   gnu: Add perl-string-formatter.
       new  9273ebf   gnu: Add perl-template-tiny.
       new  ce6bea4   gnu: Add perl-uri-nested.
       new  618d52a   gnu: Add perl-uri-db.
       new  c1a4e78   gnu: Add perl-test-checkdeps.
       new  9c5551c   gnu: Add perl-test-dir.
       new  402cfeb   gnu: Add perl-test-file.
       new  709a9e9   gnu: Add perl-test-file-contents.
       new  3840c51   gnu: Add perl-test-version.
       new  55916fa   gnu: Add perl-mysql-config.
       new  7b23313   gnu: Add perl-string-shellquote.
       new  cabe8f1   gnu: Add sqitch.
→ guix import cpan HTTP::Tinyish

Starting download of /tmp/guix-file.f6bYLw
From http://www.cpan.org/authors/id/M/MI/MIYAGAWA/HTTP-Tinyish-0.15.tar.gz...
 …-0.15.tar.gz  16KiB                 722KiB/s 00:00 [##################] 100.0%
(package
  (name "perl-http-tinyish")
  (version "0.15")
  (source
    (origin
      (method url-fetch)
      (uri (string-append
             "mirror://cpan/authors/id/M/MI/MIYAGAWA/HTTP-Tinyish-"
             version
             ".tar.gz"))
      (sha256
        (base32
          "199sa722amvwhq0czjfb7psj3hbqmvni5vxkrm579r5943pg0rax"))))
  (build-system perl-build-system)
  (propagated-inputs
    `(("perl-file-which" ,perl-file-which)
      ("perl-ipc-run3" ,perl-ipc-run3)))
  (home-page
    "https://metacpan.org/release/HTTP-Tinyish")
  (synopsis
    "HTTP::Tiny compatible HTTP client wrappers")
  (description fill-in-yourself!)
  (license perl-license))

Recap: Through Guix you can...

Get and use Perl

Get and use Perl modules

Get and use tools and applications written in Perl