aboutsummaryrefslogtreecommitdiff
path: root/index.html
diff options
context:
space:
mode:
authorChristopher Baines <mail@cbaines.net>2019-06-19 08:07:35 +0100
committerChristopher Baines <mail@cbaines.net>2019-06-19 08:07:35 +0100
commit90b7876a3e7a5c183017b4e515ad89bd5034dc46 (patch)
treefbe5a3baa0db294969c06f78dff8097d320095c2 /index.html
parent33bed47daca3f08c396215415e6ece005970734a (diff)
downloadperl-software-in-gnu-guix-90b7876a3e7a5c183017b4e515ad89bd5034dc46.tar
perl-software-in-gnu-guix-90b7876a3e7a5c183017b4e515ad89bd5034dc46.tar.gz
WIP
Diffstat (limited to 'index.html')
-rw-r--r--index.html421
1 files changed, 375 insertions, 46 deletions
diff --git a/index.html b/index.html
index f938be5..195046e 100644
--- a/index.html
+++ b/index.html
@@ -1,49 +1,378 @@
<!doctype html>
<html>
- <head>
- <meta charset="utf-8">
- <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
-
- <title>reveal.js</title>
-
- <link rel="stylesheet" href="css/reset.css">
- <link rel="stylesheet" href="css/reveal.css">
- <link rel="stylesheet" href="css/theme/black.css">
-
- <!-- Theme used for syntax highlighting of code -->
- <link rel="stylesheet" href="lib/css/monokai.css">
-
- <!-- Printing and PDF exports -->
- <script>
- var link = document.createElement( 'link' );
- link.rel = 'stylesheet';
- link.type = 'text/css';
- link.href = window.location.search.match( /print-pdf/gi ) ? 'css/print/pdf.css' : 'css/print/paper.css';
- document.getElementsByTagName( 'head' )[0].appendChild( link );
- </script>
- </head>
- <body>
- <div class="reveal">
- <div class="slides">
- <section>Slide 1</section>
- <section>Slide 2</section>
- </div>
- </div>
-
- <script src="js/reveal.js"></script>
-
- <script>
- // More info about config & dependencies:
- // - https://github.com/hakimel/reveal.js#configuration
- // - https://github.com/hakimel/reveal.js#dependencies
- Reveal.initialize({
- dependencies: [
- { src: 'plugin/markdown/marked.js' },
- { src: 'plugin/markdown/markdown.js' },
- { src: 'plugin/notes/notes.js', async: true },
- { src: 'plugin/highlight/highlight.js', async: true }
- ]
- });
- </script>
- </body>
+ <head>
+ <meta charset="utf-8">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
+
+ <title>GNU Guix, package manager, system distribution and more</title>
+
+ <link rel="stylesheet" href="css/reveal.css">
+ <link rel="stylesheet" href="css/theme/black.css">
+ <style>
+ .reveal h1 {
+ text-transform: unset;
+ }
+
+ .reveal h2 {
+ text-transform: unset;
+ }
+
+ .reveal h3 {
+ text-transform: unset;
+ }
+
+ img {
+ background: none !important;
+ border: none !important;
+ box-shadow: none !important;
+ }
+
+ pre {
+ background: none !important;
+ border: none !important;
+ box-shadow: none !important;
+ }
+
+ .caption {
+ display: block;
+ clear: both;
+ font-size: large !important;
+ }
+
+ .string {
+ color: #00cc99;
+ }
+
+ .yellow-keyboard {
+ color: #ffff33;
+ }
+ </style>
+
+ <!-- Theme used for syntax highlighting of code -->
+ <link rel="stylesheet" href="lib/css/zenburn.css">
+
+ <!-- Printing and PDF exports -->
+ <script>
+ var link = document.createElement( 'link' );
+ link.rel = 'stylesheet';
+ link.type = 'text/css';
+ link.href = window.location.search.match( /print-pdf/gi ) ? 'css/print/pdf.css' : 'css/print/paper.css';
+ document.getElementsByTagName( 'head' )[0].appendChild( link );
+ </script>
+ </head>
+ <body>
+ <div class="reveal">
+ <div class="slides">
+ <section>
+ <span style="font-size: 4em;">
+ &nbsp;&nbsp;<img src="perl.svg" style="background: unset; margin: unset; border: unset; box-shadow: unset; width: 1.05em;"><span style="vertical-align: 0.2em; margin-left: 0.15em;">&plus;</span><img src="Guix.svg" style="background: unset; margin: unset; border: unset; box-shadow: unset;">
+ </span>
+ <h1>Perl software in<br>GNU Guix</h1>
+
+ <aside class="notes" data-markdown>
+ Hello, my name is Chris, and I'm talking about package
+ management with GNU Guix.
+
+ I first found out about Guix sometime in late 2015, early
+ 2016.
+
+ I remember installing it the night before FOSDEM back in
+ 2016 and I started using and contributing to Guix soon
+ after.
+ </section>
+
+ <section>
+ <h2>Through Guix you can...</h2>
+ <p>Get and use Perl</p>
+
+ <p>Get and use Perl modules</p>
+
+ <p>Get and use tools and applications written in Perl</p>
+ </section>
+
+ <section>
+ <h2>Getting Perl</h2>
+
+ <pre>→ guix install perl
+
+→ perl --version
+
+This is perl 5, version 28, subversion 0 (v5.28.0) built for
+x86_64-linux-thread-multi
+
+...</pre>
+ </section>
+
+ <section>
+ <h2>Using Perl modules</h2>
+
+ <pre style="font-size: 0.48em;">
+→ 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</pre>
+ </section>
+
+ <section data-background="white">
+ <img src="ikiwiki.svg" alt="Ikiwiki" style="width: 14em;" />
+
+ <ul>
+ <li>Wiki compiler</li>
+ <li>Static site generator</li>
+ <li>I occasionally use it for blogging</li>
+ </ul>
+ </section>
+
+ <section>
+ <pre>
+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.
+ </pre>
+ </section>
+
+ <section>
+ <pre>
+<span class="fragment fade-in-then-semi-out">(<span class="yellow-keyboard">define-public</span> ikiwiki
+ (package</span>
+ <span class="fragment fade-in-then-semi-out">(name <span class="string">"ikiwiki"</span>)
+ (version <span class="string">"3.20190228"</span>)</span>
+ <span class="fragment fade-in-then-semi-out">(source
+ (origin
+ (method url-fetch)
+ (uri (string-append <span class="string">"http://snapshot.debian.org/archive/debian/"</span>
+ <span class="string">"20190301T035241Z/pool/main/i/ikiwiki/ikiwiki_"</span>
+ version <span class="string">".orig.tar.xz"</span>))
+ (sha256
+ (base32
+ <span class="string">"17pyblaqhkb61lxl63bzndiffism8k859p54k3k4sghclq6lsynh"</span>))))</span>
+<span class="fragment fade-in">...</span>
+</pre></section>
+
+ <section>
+ <pre>
+<span style="opacity: 0.5;">(<span class="yellow-keyboard">define-public</span> ikiwiki
+ (package</span>
+ ...
+ <span class="fragment fade-in-then-semi-out">(build-system perl-build-system)</span>
+ <span class="fragment fade-in-then-semi-out">(arguments
+ `(#:phases
+ (modify-phases %standard-phases</span>
+ <span class="fragment fade-in-then-semi-out">(add-after 'unpack 'include-PERL5LIB-in-wrapper
+ (<span class="yellow-keyboard">lambda</span> _
+ (substitute* <span class="string">"IkiWiki/Wrapper.pm"</span>
+ ((<span class="string">"^@wrapper\\_hooks"</span>)
+ (string-append
+ <span class="string">"@wrapper_hooks\n"</span>
+ <span class="string">" addenv(\"PERL5LIB\", \""</span>
+ (getenv <span class="string">"PERL5LIB"</span>)
+ <span class="string">"\");"</span>)))))</span>
+ <span class="fragment fade-in-then-semi-out">(add-after 'patch-source-shebangs 'patch-Makefile
+ (<span class="yellow-keyboard">lambda</span> _
+ (substitute* <span class="string">"Makefile.PL"</span>
+ ((<span class="string">"SYSCONFDIR\\?="</span>) <span class="string">"SYSCONFDIR?=$(PREFIX)"</span>))
+ #t))</span>
+ <span class="fragment fade-in-then-semi-out">(add-after 'install 'wrap-programs
+ (<span class="yellow-keyboard">lambda*</span> (#:key outputs #:allow-other-keys)
+ (<span class="yellow-keyboard">let*</span> ((out (assoc-ref outputs <span class="string">"out"</span>))
+ (bin (string-append out <span class="string">"/bin/"</span>))
+ (path (getenv <span class="string">"PERL5LIB"</span>)))
+ (for-each (lambda (file)
+ (wrap-program file
+ `(<span class="string">"PERL5LIB"</span> <span class="string">":"</span> prefix (,path))))
+ (find-files bin))
+ #t))))))</span>
+<span class="fragment fade-in">...</span></pre></section>
+
+ <section>
+<pre><span style="opacity: 0.5;">(<span class="yellow-keyboard">define-public</span> ikiwiki
+ (package</span>
+ ...
+ <span class="fragment fade-in-then-semi-out">(native-inputs
+ `((<span class="string">"which"</span> ,which)
+ (<span class="string">"perl-html-tagset"</span> ,perl-html-tagset)
+ (<span class="string">"perl-timedate"</span> ,perl-timedate)
+ (<span class="string">"perl-xml-sax"</span> ,perl-xml-sax)
+ (<span class="string">"perl-xml-simple"</span> ,perl-xml-simple)
+ (<span class="string">"gettext"</span> ,gettext-minimal)
+ (<span class="string">"subversion"</span> ,subversion)
+ (<span class="string">"git"</span> ,git)
+ (<span class="string">"bazaar"</span> ,bazaar)
+ (<span class="string">"cvs"</span> ,cvs)
+ (<span class="string">"mercurial"</span> ,mercurial)))</span>
+ <span class="fragment fade-in-then-semi-out">(inputs
+ `((<span class="string">"python"</span> ,python-wrapper)
+ (<span class="string">"perl-cgi-formbuilder"</span> ,perl-cgi-formbuilder)
+ (<span class="string">"perl-cgi-session"</span> ,perl-cgi-session)
+ (<span class="string">"perl-cgi-simple"</span> ,perl-cgi-simple)
+ (<span class="string">"perl-db-file"</span> ,perl-db-file)
+ (<span class="string">"perl-html-parser"</span> ,perl-html-parser)
+ (<span class="string">"perl-html-scrubber"</span> ,perl-html-scrubber)
+ (<span class="string">"perl-html-template"</span> ,perl-html-template)
+ (<span class="string">"perl-image-magick"</span> ,perl-image-magick)
+ (<span class="string">"perl-json"</span> ,perl-json)
+ (<span class="string">"perl-text-markdown-discount"</span> ,perl-text-markdown-discount)
+ (<span class="string">"perl-uri"</span> ,perl-uri)
+ (<span class="string">"perl-yaml-libyaml"</span> ,perl-yaml-libyaml)))</span>
+<span class="fragment fade-in">...</span></pre></section>
+
+ <section>
+<pre><span style="opacity: 0.5;">(<span class="yellow-keyboard">define-public</span> ikiwiki
+ (package</span>
+ ...
+ <span class="fragment fade-in-then-semi-out">(home-page <span class="string">"https://ikiwiki.info/"</span>)
+ (synopsis <span class="string">"Wiki compiler, capable of generating HTML"</span>)
+ (description
+ <span class="string">"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."</span>)
+ (license license:gpl2+)))</span>
+ </pre>
+ </section>
+
+ <section>
+ <pre>
+→ guix build ikiwiki
+
+<span class="fragment fade-in-then-semi-out">...</span>
+
+<span class="fragment fade-right">/gnu/store/hcrv2cqzbisdb35hg2xmbxp1r2z7ijzd-ikiwiki-3.20190228</span>
+ </pre>
+ </section>
+
+ <section>
+ <pre style="font-size: 0.4em;">
+/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
+ </pre>
+ </section>
+
+ <section data-background="white">
+ <img src="sqitch-logo.svg" alt="Sqitch" style="width: 15em;" />
+ </section>
+
+ <section>
+ <pre>
+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.</pre>
+ </section>
+
+ <section>
+ <pre>
+→ 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 <span class="string">"perl-http-tinyish"</span>)
+ (version <span class="string">"0.15"</span>)
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ <span class="string">"mirror://cpan/authors/id/M/MI/MIYAGAWA/HTTP-Tinyish-"</span>
+ version
+ <span class="string">".tar.gz"</span>))
+ (sha256
+ (base32
+ <span class="string">"199sa722amvwhq0czjfb7psj3hbqmvni5vxkrm579r5943pg0rax"</span>))))
+ (build-system perl-build-system)
+ (propagated-inputs
+ `((<span class="string">"perl-file-which"</span> ,perl-file-which)
+ (<span class="string">"perl-ipc-run3"</span> ,perl-ipc-run3)))
+ (home-page
+ <span class="string">"https://metacpan.org/release/HTTP-Tinyish"</span>)
+ (synopsis
+ <span class="string">"HTTP::Tiny compatible HTTP client wrappers"</span>)
+ (description fill-in-yourself!)
+ (license perl-license))</pre>
+ </div>
+ </div>
+
+ <script src="lib/js/head.min.js"></script>
+ <script src="js/reveal.js"></script>
+
+ <script>
+ // More info about config & dependencies:
+ // - https://github.com/hakimel/reveal.js#configuration
+ // - https://github.com/hakimel/reveal.js#dependencies
+ Reveal.initialize({
+ controls: false,
+ history: true,
+ showNotes: true,
+ dependencies: [
+ { src: 'plugin/markdown/marked.js' },
+ { src: 'plugin/markdown/markdown.js' },
+ { src: 'plugin/notes/notes.js', async: true },
+ { src: 'plugin/highlight/highlight.js', async: true, callback: function() { hljs.initHighlightingOnLoad(); } },
+ { src: 'plugin/tagcloud/tagcloud.js', async: true }
+ ]
+ });
+ </script>
+ </body>
</html>